{"documents":[{"path":"lib/gui/divEditable/onMouseDown/fixDoubleClickLineEnd/_selectLastWord/select.ls","text":"(function(){\n  return function(n){\n    var start, end, r, s;\n    start = n.textContent.lastIndexOf(\" \") + 1;\n    end = n.textContent.length;\n    r = document.createRange();\n    r.setStart(n, start);\n    r.setEnd(n, end);\n    s = window.getSelection();\n    s.removeAllRanges();\n    return s.addRange(r);\n  };\n})();","updated":"2021-03-03T13:34:27.105365"},{"path":"lib/gui/divEditable/onMouseDown/fixDoubleClickLineEnd/fixMissingLastWordSelect/fix.ls","text":"(function(){\n  return function(s, n, d, e){\n    d.debug(\"fixDoubleClickMissingLastWordSelect\");\n    return inc(\"../_selectLastWord/select\")(n);\n  };\n})();","updated":"2021-03-03T13:34:27.105365"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/input/input.ls","text":"(function(){\n  return function(o){\n    var onSubmit, onReset, onChange, onStart, onStop, div, input, b;\n    onSubmit = function(){\n      var value;\n      value = input.getValue();\n      value = value.trim();\n      input.setValue(value);\n      if (value === \"\" || value.length === 1) {\n        return;\n      }\n      if (!input.isDesktop()) {\n        input.stop();\n      }\n      if (o.searchQuery === value) {\n        return;\n      }\n      return o.search();\n    };\n    onReset = function(){\n      o.hideSuggestions();\n      input.start();\n      delete app.currentPage.params.searchQuery;\n      return o.showStartQueries();\n    };\n    onChange = function(){\n      var value;\n      value = input.getValue();\n      if (value === \"\") {\n        return o.showStartQueries();\n      } else {\n        return inc(\"showSuggestionOverlay/show\")(value, o);\n      }\n    };\n    onStart = function(){\n      var ref$;\n      o.keywords = (ref$ = inc(\"/lib/util/cache/get/get\")(\"searchKeywords\")) != null ? ref$.keywords : void 8;\n      if (input.getValue() === \"\") {\n        return o.showStartQueries();\n      }\n    };\n    onStop = function(){\n      var ref$;\n      return (ref$ = body.findFirst(\".menuSearchList\")) != null ? ref$.css({\n        paddingBottom: 0\n      }) : void 8;\n    };\n    div = Div({\n      flex: \"1 1 auto\",\n      display: \"flex\",\n      pointerEvents: \"auto\"\n    }).addClass(\"safeAreaMarginLeft\").append(input = inc(\"/lib/gui/inputEditable/input\")({\n      onStart: onStart,\n      onStop: onStop,\n      onSubmit: onSubmit,\n      onChange: onChange,\n      showResetIcon: true,\n      showSearchIcon: true,\n      autoCapCorSpelCom: \"sentences on false none\",\n      maxLength: 50,\n      onSoftKeyboardHeightChange: function(h){\n        var ref$;\n        return (ref$ = body.findFirst(\".menuSearchList\")) != null ? ref$.css({\n          paddingBottom: h + \"px\"\n        }) : void 8;\n      }\n    }).addClass(\"searchInput\").css({\n      flex: \"1 1 auto\",\n      backgroundColor: Color.grey[75],\n      borderTop: b = \"1px solid \" + Color.grey[300],\n      borderBottom: b\n    }));\n    o.input = input;\n    input.findFirst(\".searchIcon\").css({\n      paddingLeft: \"0.5em\"\n    });\n    return div;\n  };\n})();","updated":"2025-06-25T10:26:13.504513"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/input/showSuggestionOverlay/onDone/on.ls","text":"(function(){\n  return function(o, query, result){\n    var ref$, parent;\n    if (result == null || !query || result.length === 0 || ((ref$ = o.lastValue) != null ? ref$.toLowerCase() : void 8) === query.toLowerCase()) {\n      o.hideSuggestions();\n      return;\n    }\n    parent = body.findFirst(\".menuSearchResult\");\n    if (!parent) {\n      return;\n    }\n    return parent.html(inc(\"background/background\")(o), inc(\"rows/rows\")(o, result)).css({\n      maxHeight: inc(\"calcMaxHeight/calc\")(o)\n    });\n  };\n})();","updated":"2025-06-25T10:26:13.504513"},{"path":"addons/topbarLevel/calculator/calculator/clear/clear.ls","text":"(function(){\n  return function(o){\n    o.lastResult = null;\n    o.lastResultDiv.update();\n    return o.content.mathInput.setValue(\"\");\n  };\n})();","updated":"2021-04-23T09:51:14.718193"},{"path":"pages/support/help/chat/_t.ls","text":"(function(){\n  return {\n    helpChat: {\n      de: \"Hilfe-Chat\",\n      en: \"Support Chat\",\n      fr: \"Chat d'assistance\",\n      es: \"Chat de ayuda\",\n      pt: \"Chat de ajuda\"\n    },\n    youAreOffline: {\n      de: \"Du bist gerade offline.<br>Deine Nachricht wird gesendet, sobald du wieder online bist.\",\n      en_gb: \"You are currently offline.<br>Your message will be sent when you go online again.\",\n      en: \"You are currently offline.<br>Your message will be sent when you get back online.\",\n      fr: \"Tu n'es pas en ligne actuellement. <br>Ton message sera envoyé quand tu seras en ligne.\",\n      es: \"Estás desconectado. <b>Tu mensaje se enviará en cuanto tengas conexión a internet.</b>\",\n      pt: \"Você está desconectado. <b>Sua mensagem será enviada assim que sua conexão for reestabelecida.</b>\"\n    },\n    sendButton: {\n      de: \"Senden\",\n      en: \"Send\",\n      fr: \"Envoyer\",\n      es: \"Enviar\",\n      pt: \"Enviar\"\n    },\n    writeHerePlaceholder: {\n      de: \"Schreibe hier ...\",\n      en: \"Write here ...\",\n      fr: \"Écris ici…\",\n      es: \"Escribir aquí...\",\n      pt: \"Escreva aqui...\"\n    },\n    welcomeToHelpChat: {\n      de: \"Willkommen $1!<br><br>Hier kannst du dem Team von ANTON schreiben, wenn du Probleme in der App oder Verbesserungsvorschläge hast.<br><br>\",\n      en: \"Welcome $1!<br><br>You can write to the ANTON team here if you have problems with the platform or suggestions for improvement.<br><br>\",\n      fr: \"Bienvenue $1&nbsp;!<br><br>Ici tu peux écrire à l'équipe ANTON si tu as des problèmes dans l'appli ou des idées d'amélioration.<br><br>\",\n      es: \"Te damos la bienvenida al chat de ayuda de ANTON.<br><br>Aquí puedes dejarle mensajes al equipo de ANTON si tienes alguna duda o algún problema con la aplicación.<br><br>\",\n      pt: \"Seja bem-vindo(a)!<br><br>Aqui você pode entrar em contato com a equipe do ANTON caso tenha problemas com o aplicativo ou sugestões de melhorias.<br><br>\"\n    },\n    introMessage: {\n      de: \"Wir erhalten viele Nachrichten, die wir alle persönlich und ohne KI-Chat-Tools bearbeiten. Deshalb können wir nicht alle Nachrichten immer sofort beantworten.Schau doch mal in den <i>Häufigen Fragen</i>, vielleicht ist dein Problem dort bereits beschrieben. Wenn du keine Antwort findest, schreibe uns bitte möglichst detailliert, wie dein Problem zustande kam und was du beobachten kannst.\",\n      en: \"We receive many messages and therefore can not answer all of them immediately. Have a look at the <i>Frequently Asked Questions</i>; there might be a solution to your problem there. If you don't find an answer, please write us a detailed message, including how your problem came about and what you see on your screen.\",\n      fr: \"Nous recevons beaucoup de messages et ne pouvons pas toujours répondre immédiatement. Nous te conseillons de regarder d'abord notre section <i>Aide/FAQ</i>. Tu y trouveras peut-être une réponse à ta question. Si ce n'est pas le cas, tu peux nous écrire pour décrire ton problème en détail, expliquer comment il s'est produit et ce que tu vois sur ton écran.\",\n      es: \"Actualmente nos están llegando muchos mensajes al día y no podemos responderlos todos inmediatamente. ¿Ya buscaste tu problema en las <i>preguntas frecuentes</i>? Si no encontraste una solución, descríbenos tu problema lo más detalladamente posible.\",\n      pt: \"Nós recebemos muitas mensagens diariamente e, portanto, não podemos respondê-las imediatamente. Você já procurou sua dúvida nas <i>Perguntas Frequentes</i>? Se você não conseguir encontrar uma resposta por lá, por favor, escreva para nós com o máximo de detalhes possível.\"\n    },\n    christmasDaysDelay: {\n      de: \"Es kann ein paar Tage dauern, bis wir auf deine Nachricht antworten. Das ANTON-Team ist gerade in den Weihnachtsferien. :)\",\n      en_gb: \"It might take a few days until we reply to your message. The ANTON Team is currently on their Christmas holidays. :)\",\n      en: \"It might take a few days until we reply to your message. The ANTON Team is currently on Christmas vacation. :)\",\n      fr: \"Nous aurons peut-être besoin de quelques jours pour répondre à ton message. L'équipe ANTON est en vacances. :)\",\n      es: \"Puede ser que tardemos un par de días en responderte. El equipo de ANTON está de vacaciones. :)\",\n      pt: \"Pode ser que demore alguns dias para respondermos à sua mensagem. A equipe ANTON está de férias. :)\"\n    },\n    yesterday: {\n      de: \"Gestern\",\n      en: \"Yesterday\",\n      fr: \"Hier\",\n      es: \"Ayer\",\n      pt: \"Ontem\"\n    },\n    today: {\n      de: \"Heute\",\n      en: \"Today\",\n      fr: \"Aujourd'hui\",\n      es: \"Hoy\",\n      pt: \"Hoje\"\n    },\n    saveDraft: {\n      de: \"Deine Nachricht ist noch nicht abgeschickt, möchtest du den Entwurf speichern?\",\n      en: \"Your message hasn’t been sent yet. Do you want to save it as a draft?\",\n      fr: \"Ton message n'a pas encore été envoyé. Veux-tu l'enregistrer comme brouillon&nbsp;?\",\n      es: \"Tu mensaje aún no ha sido enviado. ¿Quieres guardar el borrador?\",\n      pt: \"Sua mensagem ainda não foi enviada. Gostaria de salvá-la como rascunho?\"\n    },\n    helpChatUrl: {\n      de: \"hilfe-chat\",\n      en: \"help-chat\",\n      fr: \"chat-dassistance\",\n      es: \"chat-de-ayuda\",\n      pt: \"chat-de-ajuda\"\n    }\n  };\n})();","updated":"2026-02-26T14:39:39.739268"},{"path":"pages/support/help/_topbar/topbar.ls","text":"(function(){\n  return function(page, onSearch, searchPlaceholder){\n    return inc(\"/addons/topbar2/topbar\")({\n      close: true,\n      closeLabel: T(\"closeButton\"),\n      title: !page.params.isStandaloneFaqPage\n        ? T(\"help\")\n        : T(\"faq\"),\n      tabMenuItems: !page.params.isStandaloneFaqPage ? function(){\n        return inc(\"tabMenuItems/tabMenuItems\")(page);\n      } : void 8,\n      onSearch: onSearch,\n      searchPlaceholder: searchPlaceholder\n    });\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/chat/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"helpChatUrl\"),\n      title: T(\"helpChat\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/02_page_loginCode/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      margin: \"0 auto 1em\",\n      width: \"30em\",\n      maxWidth: \"90%\"\n    }).html(T(\"writeDownCode\"), engine.isMobileApp\n      ? T(\"makeScreenshot\")\n      : T(\"printIt\"), T(\"dontLoseAccess\"));\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/static/antonPlus/0_stopDownloadPopup/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      margin: \"0 0 1em\"\n    }).html(T(\"antonPlusNeeded\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/_t.ls","text":"(function(){\n  return {\n    antonPlusNoBreak: {\n      de: \"ANTON-&#65279;Plus\",\n      en: \"ANTON&nbsp;Plus\",\n      fr: \"ANTON-&#65279;Plus\",\n      es: \"ANTON-&#65279;Plus\",\n      pt: \"ANTON-&#65279;Plus\"\n    },\n    buttonContinue: {\n      de: \"Weiter\",\n      en: \"Select\",\n      fr: \"Choisir\",\n      es: \"Siguiente\",\n      pt: \"Continuar\"\n    },\n    buttonUpgrade: {\n      de: \"Upgrade\",\n      en: \"Upgrade\",\n      fr: \"Modifier<br>mon abonnement\",\n      es: \"Contratar\",\n      pt: \"Contratar\"\n    },\n    text: {\n      de: \"Mit dem Kauf von ANTON-Plus unterstützt du die Weiterentwicklung neuer Funktionen, Lerninhalte und Spiele bei ANTON.\",\n      en: \"Your ANTON&nbsp;Plus purchase helps us develop new features, content, and games for all learners.\",\n      fr: \"En achetant ANTON&#65279;-&#65279;Plus, tu contribues au développement de nouvelles fonctionnalités, de nouveaux contenus d'apprentissage et de nouveaux jeux.\",\n      es: \"¡ANTON-&#65279;Plus te ofrece más funciones y con tu contribución colaboras con el desarrollo de nuevas funciones, contenidos y juegos en ANTON!\",\n      pt: \"Ao adquirir o ANTON-Plus, você contribui com o desenvolvimento de novas funções, de novos conteúdos didáticos e de novos jogos no ANTON.\"\n    },\n    antonPlusTitle: {\n      de: \"ANTON-Plus\",\n      en: \"ANTON Plus\",\n      fr: \"ANTON-Plus\",\n      es: \"ANTON-Plus\",\n      pt: \"ANTON-Plus\"\n    },\n    paymentInfoPopup: {\n      de: \"Die Zahlung von $1 inkl. MwSt. erfolgt alle 12 Monate. Du kannst jederzeit mit einer Frist von 24 Stunden zum Ende der Laufzeit kündigen.\",\n      en: \"The payment of $1 incl. VAT is made every 12 months. Your $2 automatically renews every 12 months unless you cancel it at least 24 hours before the end of the current period.\",\n      fr: \"Le paiement de $1 TTC est effectué tous les 12 mois et peut être résilié à tout moment avec un délai de 24 heures jusqu'à la fin du terme.\",\n      es: \"El pago de $1 incluye IVA/VAT. El cargo se hará cada 12 meses. Puedes cancelar tu suscripción en cualquier momento y hasta 24 horas antes de que se renueve automáticamente.\",\n      pt: \"O pagamento de $1 incluindo o IVA é feito a cada 12 meses. Você pode cancelar a qualquer momento, avisando até 24 horas antes da renovação automática.\"\n    },\n    'new': {\n      de: \"NEU\",\n      en: \"NEW\",\n      fr: \"NOUVEAU\",\n      es: \"NUEVO\",\n      pt: \"NOVO\"\n    },\n    price: {\n      de: \"<b>$1</b> inkl. MwSt. für 12 Monate\",\n      en: \"<b>$1</b> incl. VAT for 12 months\",\n      fr: \"<b>$1</b> TTC pour 12 mois\",\n      es: \"<b>$1</b> IVA/VAT incluido por 12 meses\",\n      pt: \"<b>$1</b> com IVA incluído por 12 meses\"\n    },\n    singleTitle: {\n      de: \"ANTON-Plus\",\n      en: \"ANTON Plus\",\n      fr: \"ANTON-Plus\",\n      es: \"ANTON-Plus\",\n      pt: \"ANTON-Plus\"\n    },\n    single2: {\n      de: \"Du kannst mit der ANTON-App auf Mobilgeräten <b>offline lernen</b>.\",\n      en: \"Learn offline on mobile devices with ANTON.\",\n      fr: \"Avec l'appli ANTON tu peux <b>apprendre hors ligne</b> sur tes appareils mobiles.\",\n      es: \"Descarga contenidos y <b>aprende sin conexión</b> en dispositivos móviles.\",\n      pt: \"Você pode baixar conteúdos no seu celular e <b>aprender offline</b>.\"\n    },\n    single3: {\n      de: \"Du kannst deinen <b>Avatar mit Tieren, Robotern und mehr</b> gestalten.\",\n      en: \"New designs for your avatar: animals, robots and many more.\",\n      fr: \"Découvre de nouvelles options pour ton avatar&nbsp;: des animaux, des robots et bien plus.\",\n      es: \"Descubre los nuevos diseños para tu avatar: animales, robots y muchos más.\",\n      pt: \"Descubra novos designs para seu avatar: animais, robôs e muito mais.\"\n    },\n    popupTitle: {\n      de: \"$1 für:\",\n      en: \"$1 for:\",\n      fr: \"$1 pour&nbsp;:\",\n      es: \"$1 por:\",\n      pt: \"$1 por:\"\n    },\n    familyTitle: {\n      de: \"ANTON-Plus Familie\",\n      en: \"ANTON Plus Family\",\n      fr: \"ANTON-Plus Famille\",\n      es: \"ANTON-Plus Familia\",\n      pt: \"ANTON-Plus Família\"\n    },\n    family2: {\n      de: \"Eltern können eine Familiengruppe mit bis zu <b>5 Mitgliedern</b> anlegen. Alle erhalten <b>ANTON-Plus</b>.\",\n      en: \"Parents can create a family group with up to <b>5 members</b>. All members receive <b>ANTON Plus</b>.\",\n      fr: \"Les parents peuvent créer un groupe familial comptant jusqu'à <b>5 membres</b> qui bénéficient tous d'<b>ANTON-Plus</b>.\",\n      es: \"El padre y la madre pueden crear grupos familiares de hasta <b>5 integrantes</b>. Todos/as adquieren <b>ANTON-Plus</b>.\",\n      pt: \"Os pais podem criar um grupo familiar contendo até <b>5 membros</b>, onde todos adquirem <b>ANTON-Plus</b>.\"\n    },\n    family3: {\n      de: \"In der Familiengruppe kann der <b>Report</b> eingesehen werden und <b>Pins</b> können für die einzelnen Kinder gesetzt werden.\",\n      en_gb: \"In the family group, parents can view the <b>report</b> and <b>pin</b> individual learning material for their children.\",\n      en: \"In the family group, parents can view <b>reports</b> and <b>assign</b> individual exercises to their children.\",\n      fr: \"Dans le groupe familial, les parents peuvent voir le <b>rapport d'apprentissage</b> et <b>épingler</b> des exercices pour leurs enfants.\",\n      es: \"En el grupo familiar se puede ver el <b>progreso de aprendizaje</b> y se pueden <b>asignar ejercicios</b> particularmente para cada integrante.\",\n      pt: \"No grupo familiar é possível visualizar o <b>progresso de aprendizagem</b> e também <b>atribuir tarefas</b> individualmente para cada integrante.\"\n    },\n    family4: {\n      de: \"<b>Spiele und Münzbelohnungen</b> können in der Familiengruppe <b>gesperrt</b> werden.\",\n      en: \"Access to <b>games</b> and <b>coins</b> can be <b>restricted</b> in the family group.\",\n      fr: \"Il est possible de <b>limiter</b> l'accès aux <b>jeux</b> et aux <b>pièces</b> dans le groupe familial.\",\n      es: \"Dentro del grupo familiar se pueden restringir las <b>fichas</b> y el acceso a los <b>juegos</b>.\",\n      pt: \"Dentro do grupo familiar é possível restringir <b>moedas</b> e o acesso aos <b>jogos</b>.\"\n    },\n    teacherTitle: {\n      de: \"ANTON-Plus Lehrer\",\n      en: \"ANTON Plus Teacher\",\n      fr: \"ANTON-Plus Prof\",\n      es: \"ANTON-Plus Docente\",\n      pt: \"ANTON-Plus Professores\"\n    },\n    teacher2: {\n      de: \"Lehrkräfte können bei bis zu <b>5 Gruppen</b> alle <b>erweiterten Gruppen-Funktionen</b> nutzen.\",\n      en: \"Teachers can use <b>advanced group features</b> in up to <b>5 groups</b>.\",\n      fr: \"Les professeurs bénéficient de <b>fonctions avancées</b> sur <b>5</b> de leurs groupes.\",\n      es: \"Los y las docentes pueden utilizar todas las <b>funciones avanzadas</b> en hasta 5 de sus grupos.\",\n      pt: \"Professores podem selecionar até <b>5 grupos</b> para desbloquear funções avançadas.\"\n    },\n    teacher3: {\n      de: \"In diesen Gruppen kann der <b>Report</b> eingesehen werden und <b>Pins</b> für einzelne Schüler/innen und <b>Untergruppen</b> gesetzt werden.\",\n      en_gb: \"Teachers can access the <b>report feature</b> in these groups and pin material for individual pupils and <b>subgroups</b>.\",\n      en: \"Teachers can access <b>reports</b> in these groups and assign exercises to individual students and <b>subgroups</b>.\",\n      fr: \"Les professeur·es peuvent utiliser les fonctions de <b>rapport d'apprentissage</b> dans ces groupes et attribuer des exercices à des élèves en particulier ou à des <b>sous-groupes</b>.\",\n      es: \"En estos grupos es posible ver el <b>progreso de aprendizaje</b>. Además se pueden <b>asignar ejercicios</b> a estudiantes en particular y a los distintos <b>subgrupos</b>.\",\n      pt: \"Nestes grupos é possível visualizar o <b>progresso de aprendizagem</b>, <b>atribuir tarefas</b> para alunos em particular e também para <b>subgrupos</b>.\"\n    },\n    teacher4: {\n      de: \"Zusätzlich bekommen Lehrkräfte <b>ANTON-Plus Familie</b> und können eine Familiengruppe mit bis zu <b>5 Mitgliedern</b> erstellen, von denen alle <b>ANTON-Plus</b> erhalten.\",\n      en: \"Teachers also receive <b>ANTON Plus Family</b>, covering up to <b>5 family members</b> with <b>ANTON Plus</b> benefits.\",\n      fr: \"Les professeur·es reçoivent également <b>ANTON-Plus Famille</b> et peuvent créer un groupe familial comptant jusqu'à <b>5 membres</b> qui bénéficient tous d'<b>ANTON-Plus</b>.\",\n      es: \"Adicionalmente, los y las docentes adquieren <b>ANTON-Plus Familia</b> y pueden crear un grupo familiar de hasta <b>5 integrantes</b>. Todos/as los integrantes adquieren <b>ANTON-Plus</b>.\",\n      pt: \"Adicionalmente, os professores adquirem <b>ANTON-Plus Família</b> e podem criar um grupo familiar de até <b>5 membros</b>, onde todos os membros adquirem <b>ANTON-Plus</b>.\"\n    },\n    schoolLicence1: {\n      de: \"Für Schulen gibt es auch eine \",\n      en: \"For schools, we also offer an \",\n      fr: \"Pour les écoles, nous proposons aussi une \",\n      es: \"Para las escuelas también ofrecemos una \",\n      pt: \"Para escolas também oferecemos uma \"\n    },\n    schoolLicence2: {\n      de: \"ANTON-Schullizenz\",\n      en_gb: \"ANTON School Licence\",\n      en: \"ANTON School License\",\n      fr: \"licence scolaire ANTON\",\n      es: \"Licencia Escolar ANTON\",\n      pt: \"Licença Escolar ANTON\"\n    },\n    payAntonPlus: {\n      de: \"ANTON-Plus bezahlen\",\n      en: \"Buy ANTON Plus\",\n      fr: \"Acheter ANTON-PLUS\",\n      es: \"Comprar ANTON-Plus\",\n      pt: \"Comprar ANTON-Plus\"\n    },\n    productAndPrice: {\n      de: \"$1 für $2\",\n      en: \"$1 for $2\",\n      fr: \"$1 pour $2\",\n      es: \"$1 por $2\",\n      pt: \"$1 por $2\"\n    },\n    paypalErrorText: {\n      de: \"Ups, hier ist ein Fehler aufgetreten. Bitte wende dich an unseren Hilfe-Chat.\",\n      en: \"Oops, an error occurred. Please contact us on our support chat.\",\n      fr: \"Oups… une erreur s'est produite. Merci de nous contacter sur notre chat d'assistance.\",\n      es: \"¡Ups! Algo salió mal. Por favor, contáctanos en el chat de ayuda.\",\n      pt: \"Ops! Ocorreu um erro aqui. Por favor, fale conosco através do nosso chat de ajuda.\"\n    },\n    purchased: {\n      de: \"Der Kauf wurde dir gutgeschrieben.\",\n      en: \"Purchase successful.\",\n      fr: \"L'achat a bien été effectué.\",\n      es: \"Se realizó la compra.\",\n      pt: \"Compra realizada.\"\n    },\n    alreadyPurchased: {\n      de: \"Dieser Kauf wurde dir bereits gutgeschrieben.\",\n      en: \"You have already purchased this item.\",\n      fr: \"Tu as déjà acheté ce produit.\",\n      es: \"Ya has adquirido este producto.\",\n      pt: \"Você já adquiriu este produto.\"\n    },\n    alreadyPurchasedByAnother: {\n      de: \"Dieser Kauf wurde bereits einem anderen Nutzerkonto gutgeschrieben.\",\n      en: \"This purchase has already been made by another account.\",\n      fr: \"Cet achat a déjà été effectué par un autre compte.\",\n      es: \"Esta compra ya se ha realizado a través de otra cuenta.\",\n      pt: \"Esta compra já foi realizada através de outra conta.\"\n    },\n    appstoreError: {\n      de: \"Fehler beim Kaufvorgang im $1:<br><br>\",\n      en: \"Purchasing error in the $1:<br><br>\",\n      fr: \"Erreur lors de l'achat dans le $1&nbsp;:<br><br>\",\n      es: \"Error en el proceso de compra en $1:<br><br>\",\n      pt: \"Erro ao processar compra em $1:<br><br>\"\n    },\n    validUntil: {\n      de: \"gültig bis<br>$1\",\n      en: \"valid until<br>$1\",\n      fr: \"valable jusqu'au<br>$1\",\n      es: \"Válido hasta<br>$1\",\n      pt: \"Válido até<br>$1\"\n    },\n    antonPlusUrl: {\n      de: \"anton-plus\",\n      en: \"anton-plus\",\n      fr: \"anton-plus\",\n      es: \"anton-plus\",\n      pt: \"anton-plus\"\n    }\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/static/antonPlus/4_thanksWhy/options/options.ls","text":"(function(){\n  return function(page){\n    var o;\n    return Div().append(Div().css({\n      display: \"inline-block\"\n    }).append((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = _.shuffle(page.options)).length; i$ < len$; ++i$) {\n        o = ref$[i$];\n        results$.push(inc(\"option/option\")(o));\n      }\n      return results$;\n    }())));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"lib/gui/screenKeyboard/createKeys/keys/_div/colors/colors.ls","text":"(function(){\n  return {\n    white: {\n      c1: Color.white,\n      c2: Color.grey[300]\n    },\n    grey0: {\n      c1: Color.grey[150],\n      c2: Color.grey[250]\n    },\n    grey1: {\n      c1: Color.grey[250],\n      c2: Color.grey[400]\n    },\n    grey2: {\n      c1: Color.grey[300],\n      c2: Color.grey[400]\n    },\n    grey3: {\n      c1: Color.grey[350],\n      c2: Color.grey[400]\n    },\n    grey4: {\n      c1: Color.grey[400],\n      c2: Color.grey[500]\n    }\n  };\n})();","updated":"2021-04-23T09:51:14.718193"},{"path":"lib/gui/divEditable/_shared/getParentLine/get.ls","text":"(function(){\n  return function(node){\n    var el, lineDiv;\n    el = node;\n    while (el && el.nodeName !== \"DIV\") {\n      el = el.parentElement;\n    }\n    if (el != null && el.isDivEditable) {\n      return;\n    }\n    return lineDiv = el;\n  };\n})();","updated":"2020-12-10T14:10:03.489842"},{"path":"lib/gui/divEditable/onMutation/fixEmpty/fix.ls","text":"(function(){\n  return function(d){\n    var lineDiv, r, s;\n    d.debug(\"fixEmpty\");\n    lineDiv = Div().append(\"<br>\");\n    lineDiv.appendTo(d.div);\n    d.cleanupLine(lineDiv);\n    d.totalHeight = undefined;\n    r = document.createRange();\n    r.setStart(lineDiv, 0);\n    s = window.getSelection();\n    s.removeAllRanges();\n    return s.addRange(r);\n  };\n})();","updated":"2020-12-01T12:57:35.647787"},{"path":"lib/util/calcAppType/calcPlatform/calc.ls","text":"(function(){\n  return function(){\n    var userAgent, platform, mac, win, ios, os, e;\n    try {\n      userAgent = window.navigator.userAgent;\n      platform = window.navigator.platform;\n      mac = [\"Macintosh\", \"MacIntel\", \"MacPPC\", \"Mac68K\"];\n      win = [\"Win32\", \"Win64\", \"Windows\", \"WinCE\"];\n      ios = [\"iPhone\", \"iPad\", \"iPod\", \"iPod touch\"];\n      os = mac.indexOf(platform) !== -1\n        ? navigator.maxTouchPoints > 1 ? \"iOS\" : \"MacOS\"\n        : ios.indexOf(platform) !== -1\n          ? \"iOS\"\n          : win.indexOf(platform) !== -1\n            ? \"Windows\"\n            : /Android/.test(userAgent)\n              ? \"Android\"\n              : !os && /Linux/.test(platform) ? \"Linux\" : \"other\";\n      return os;\n    } catch (e$) {\n      e = e$;\n      return \"unknown\";\n    }\n  };\n})();","updated":"2020-12-01T12:57:35.647787"},{"path":"pages/level/afterFinish/pages/antonPlus/page1Intro/link/link.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/gui/link/link\")({\n      label: T(\"notNow\"),\n      iconColor: \"black\"\n    }).css({\n      marginTop: \"1em\",\n      padding: \"0.5em\"\n    }).tap(function(){\n      inc(\"/lib/util/logPromo/log\")({\n        event: \"promoPlus_afterFinish1_skip\"\n      });\n      return startPage({\n        history: function(path){\n          return !_.includes(path, \"/level\");\n        },\n        animation: \"fadeIn\"\n      });\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page1Intro/_preloadMedia/preloadMedia.ls","text":"(function(){\n  var media;\n  media = {\n    init: false,\n    aborted: false,\n    isReady: function(){\n      return media.sound != null;\n    },\n    clear: function(){\n      media.init = false;\n      return media.sound = undefined;\n    }\n  };\n  return function(){\n    if (!media.init || media.aborted) {\n      media.init = true;\n      media.aborted = false;\n      inc(\"loadSound/load\")(media);\n    }\n    return media;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/gui/input2/click/selectOnMultiClick/selectLine/select.ls","text":"(function(){\n  return function(target){\n    var prev, next, results$ = [];\n    prev = target.previousSibling;\n    while (prev) {\n      if (!inc(\"char/char\")(prev, false)) {\n        break;\n      }\n      prev = prev.previousSibling;\n    }\n    next = target.nextSibling;\n    while (next) {\n      if (!inc(\"char/char\")(next, true)) {\n        break;\n      }\n      results$.push(next = next.nextSibling);\n    }\n    return results$;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/gui/input2/click/selectOnMultiClick/selectWord/select.ls","text":"(function(){\n  return function(target){\n    var prev, next, results$ = [];\n    prev = target.previousSibling;\n    while (prev) {\n      if (!inc(\"char/char\")(prev)) {\n        break;\n      }\n      prev = prev.previousSibling;\n    }\n    next = target.nextSibling;\n    while (next) {\n      if (!inc(\"char/char\")(next)) {\n        break;\n      }\n      results$.push(next = next.nextSibling);\n    }\n    return results$;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/gui/input2/icons/reset/reset.ls","text":"(function(){\n  return function(o){\n    var click, div;\n    click = function(){\n      o.setValue(\"\");\n      o.iconReset.hide();\n      return typeof o.onReset == 'function' ? o.onReset() : void 8;\n    };\n    return div = Div().addClass(\"resetIcon\").css({\n      display: \"inline-flex\",\n      height: \"100%\",\n      width: \"1.5em\",\n      verticalAlign: \"top\"\n    }).append(inc(\"icon/icon\")()).tap({\n      up: click,\n      disableCancel: true\n    }).hide();\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/adventCalendarPromo/_preloadMedia/preloadMedia.ls","text":"(function(){\n  var media;\n  media = {\n    init: false,\n    isReady: function(){\n      return media.image != null;\n    }\n  };\n  return function(){\n    if (media.init === false) {\n      inc(\"loadImage/load\")(media);\n      media.init = true;\n    }\n    return media;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page1Intro/_preloadMedia/loadSound/load.ls","text":"(function(){\n  return function(media){\n    return inc(\"/lib/util/downloadSound/download\")({\n      text: T(\"soundText\"),\n      voiceLang: engine.guiLanguage === \"de\" ? \"de\" : \"en\",\n      voice: engine.guiLanguage === \"de\" ? \"m3\" : \"m5Us\",\n      fileFolder: \"media/afterFinish\",\n      etag: \"any\",\n      onError: function(){\n        return media.aborted = true;\n      },\n      onOffline: function(){\n        return media.aborted = true;\n      },\n      onLoaded: function(sound){\n        return media.sound = sound;\n      }\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page1Intro/logPromo/log.ls","text":"(function(){\n  return function(page){\n    return inc(\"/lib/util/logPromo/log\")({\n      event: \"promoPlus_afterFinish1\",\n      isReferrer: true,\n      isBack: _.includes(app.lastPagePath, \"static/antonPlus\"),\n      details: {\n        testVariantAfterFinishSound2: page.testVariantSound\n      }\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/_preloadMedia/preloadMedia.ls","text":"(function(){\n  var media;\n  media = {\n    init: false,\n    aborted: false,\n    isReady: function(){\n      return media.sound != null && media.image != null;\n    },\n    clear: function(){\n      media.init = false;\n      media.sound = undefined;\n      return media.image = undefined;\n    }\n  };\n  return function(){\n    if (!media.init || media.aborted) {\n      media.init = true;\n      media.aborted = false;\n      inc(\"loadSound/load\")(media);\n      inc(\"loadImage/load\")(media);\n    }\n    return media;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/_preloadMedia/loadImage/load.ls","text":"(function(){\n  return function(media){\n    return inc(\"/lib/util/downloadContentFile/download\")({\n      fileId: \"image/lorenz_antonPlusAvatarGallery1\",\n      fileFolder: \"media/afterFinish\",\n      etag: \"5b8c-122025\",\n      returnFileContent: true,\n      onError: function(){\n        return media.abort = true;\n      },\n      onLoaded: function(base64){\n        return media.image = base64;\n      }\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/link/link.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/gui/link/link\")({\n      label: T(\"notNow\"),\n      iconColor: \"black\"\n    }).css({\n      marginTop: \"0.8em\",\n      padding: \"0.5em\"\n    }).tap(function(){\n      inc(\"/lib/util/logPromo/log\")({\n        event: \"promoPlus_afterFinish1_skip\"\n      });\n      return startPage({\n        history: function(path){\n          return !_.includes(path, \"/level\");\n        },\n        animation: \"fadeIn\"\n      });\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/logPromo/log.ls","text":"(function(){\n  return function(page){\n    return inc(\"/lib/util/logPromo/log\")({\n      event: \"promoPlus_afterFinish2Avatars\",\n      isReferrer: true,\n      isBack: _.includes(app.lastPagePath, \"static/antonPlus\"),\n      details: {\n        testVariantAfterFinishSound2: page.testVariantSound\n      }\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page3NewFamily/button/button.ls","text":"(function(){\n  return function(){\n    return Button(T(\"moreAboutAntonPlusFamily\")).tap(function(){\n      inc(\"/lib/util/logPromo/log\")({\n        event: \"promoPlus_afterFinish3NewFamily_click\"\n      });\n      return startPage({\n        path: path(\"/pages/static/antonPlus/1_products/page\"),\n        animation: \"slideUp\",\n        params: {\n          referrer: \"afterFinish3NewFamily\",\n          highlight: \"plusFamily\"\n        }\n      });\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page3NewFamily/link/link.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/gui/link/link\")({\n      label: T(\"notNow\"),\n      iconColor: \"black\"\n    }).css({\n      marginTop: \"0.8em\",\n      padding: \"0.5em\"\n    }).tap(function(){\n      inc(\"/lib/util/logPromo/log\")({\n        event: \"promoPlus_afterFinish3NewFamily_skip\"\n      });\n      return startPage({\n        history: function(path){\n          return !_.includes(path, \"/level\");\n        },\n        animation: \"fadeIn\"\n      });\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page3NewFamily/logPromo/log.ls","text":"(function(){\n  return function(page){\n    return inc(\"/lib/util/logPromo/log\")({\n      event: \"promoPlus_afterFinish3NewFamily\",\n      isReferrer: true,\n      isBack: _.includes(app.lastPagePath, \"static/antonPlus\"),\n      details: {\n        testVariantAfterFinishSound2: page.testVariantSound\n      }\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/levelRating/01_rating/buttons/buttonWrite/button.ls","text":"(function(){\n  return function(click){\n    return inc(\"/lib/gui/link/link\")({\n      label: T(\"giveFeedback\")\n    }).tap(click);\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/levelRating/02_feedback/input/input.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/gui/inputEditable/input\")({\n      multiline: true,\n      maxLength: 500\n    }).css({\n      margin: \"1em auto\",\n      width: \"20em\",\n      maxWidth: \"90%\",\n      height: \"12em\"\n    });\n  };\n})();","updated":"2021-05-27T13:32:43.850575"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/01_rating/page.ls","text":"(function(){\n  return function(page){\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      start: function(){\n        var p, clickContinue, onChoose, text, stars, buttons;\n        p = page.params;\n        clickContinue = function(){\n          var pagePath;\n          buttons.css({\n            pointerEvents: \"none\"\n          });\n          pagePath = p.stars < 4\n            ? path(\"../02_1-3/page\")\n            : p.stars < 5\n              ? path(\"../02_4/page\")\n              : (typeof AppRate != 'undefined' && AppRate !== null) && engine.isMobileApp\n                ? path(\"../02_5-mobile/page\")\n                : path(\"../02_5-desktop/page\");\n          return setTimeout(function(){\n            return startPage({\n              path: pagePath,\n              params: {\n                stars: p.stars\n              }\n            });\n          }, 500);\n        };\n        onChoose = function(index){\n          p.stars = index + 1;\n          return buttons.css({\n            visibility: \"visible\"\n          });\n        };\n        return page.append(text = inc(\"text/text\")(), stars = inc(\"stars/stars\")(onChoose), buttons = inc(\"buttons/buttons\")(clickContinue));\n      }\n    };\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/01_rating/stars/stars.ls","text":"(function(){\n  return function(onChoose){\n    var choose, div, stars, i;\n    choose = function(index){\n      var i$, i;\n      for (i$ = 0; i$ <= index; ++i$) {\n        i = i$;\n        stars[i].setSelected(true);\n      }\n      for (i$ = index + 1; i$ < 5; ++i$) {\n        i = i$;\n        stars[i].setSelected(false);\n      }\n      return onChoose(index);\n    };\n    div = Div().css({\n      padding: \"1.5em 0 1em\"\n    }).append(stars = (function(){\n      var i$, results$ = [];\n      for (i$ = 0; i$ < 5; ++i$) {\n        i = i$;\n        results$.push(inc(\"star/star\")(i, choose));\n      }\n      return results$;\n    }()));\n    div.stars = stars;\n    div.choose = choose;\n    return div;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_4/page.ls","text":"(function(){\n  return function(page){\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      start: function(){\n        var p, click, button;\n        p = page.params;\n        click = function(){\n          button.css({\n            pointerEvents: \"none\"\n          });\n          inc(\"../00_shared/logRating/log\")({\n            stars: p.stars\n          });\n          return setTimeout(function(){\n            return startPage({\n              history: function(path){\n                return !_.includes(path, \"/level\");\n              }\n            });\n          }, 500);\n        };\n        return page.append(inc(\"text/text\")(), button = inc(\"buttonContinue/button\")(click));\n      }\n    };\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-desktop/page.ls","text":"(function(){\n  return function(page){\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      start: function(){\n        var p, click, button;\n        p = page.params;\n        click = function(){\n          button.css({\n            pointerEvents: \"none\"\n          });\n          inc(\"../00_shared/logRating/log\")({\n            stars: p.stars,\n            appRateAvailable: false\n          });\n          return setTimeout(function(){\n            return startPage({\n              history: function(path){\n                return !_.includes(path, \"/level\");\n              }\n            });\n          }, 500);\n        };\n        return page.append(inc(\"text/text\")(), Div(), button = inc(\"buttonContinue/button\")(click));\n      }\n    };\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-mobile/page.ls","text":"(function(){\n  return function(){\n    return {\n      start: function(page){\n        var p, onFinish, clickNoRate, clickRate, buttonRate, buttonNoRate;\n        p = page.params;\n        onFinish = function(){\n          buttonRate.css({\n            pointerEvents: \"none\"\n          });\n          buttonNoRate.css({\n            pointerEvents: \"none\"\n          });\n          return setTimeout(function(){\n            return startPage({\n              history: function(path){\n                return !_.includes(path, \"/level\");\n              }\n            });\n          }, 500);\n        };\n        clickNoRate = function(){\n          inc(\"log/log\")({\n            appRateChoice: \"no\"\n          });\n          return onFinish();\n        };\n        clickRate = function(){\n          inc(\"openAppRatePlugin/open\")();\n          inc(\"log/log\")({\n            appRateChoice: \"yes\"\n          });\n          return onFinish();\n        };\n        return page.append(inc(\"text/text\")(), Div().css({\n          height: \"1em\"\n        }), buttonRate = inc(\"buttonRate/button\")(clickRate), Div().css({\n          height: \"1em\"\n        }), buttonNoRate = inc(\"buttonNoRate/button\")(clickNoRate));\n      }\n    };\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/finishLevel/_shared/calcCharacter/characters/characters-fr.ls","text":"(function(){\n  return function(){\n    var characters, now, charactersXmas;\n    if (engine.isDebug) {\n      characters = [\n        {\n          pixi: 'female',\n          voice: \"f1\"\n        }, {\n          pixi: 'male-asia',\n          voice: \"m1\"\n        }, {\n          pixi: 'male',\n          voice: \"m1\"\n        }, {\n          pixi: 'female-afro',\n          voice: \"f1\"\n        }, {\n          pixi: 'male-india',\n          voice: \"m1\"\n        }, {\n          pixi: 'male-afro',\n          voice: \"m1\"\n        }, {\n          pixi: 'female-asia',\n          voice: \"f1\"\n        }, {\n          pixi: 'female-india',\n          voice: \"f1\"\n        }, {\n          pixi: 'pig',\n          voice: \"m1\"\n        }, {\n          pixi: 'cow',\n          voice: \"m1\"\n        }, {\n          pixi: 'super-f',\n          voice: \"f1\"\n        }, {\n          pixi: 'super',\n          voice: \"m1\"\n        }\n      ];\n    } else {\n      characters = [\n        {\n          pixi: 'female',\n          voice: \"f1\"\n        }, {\n          pixi: 'male-asia',\n          voice: \"m1\"\n        }, {\n          pixi: 'male',\n          voice: \"m1\"\n        }, {\n          pixi: 'female-afro',\n          voice: \"f1\"\n        }, {\n          pixi: 'male-india',\n          voice: \"m1\"\n        }, {\n          pixi: 'male-afro',\n          voice: \"m1\"\n        }, {\n          pixi: 'female-asia',\n          voice: \"f1\"\n        }, {\n          pixi: 'female-india',\n          voice: \"f1\"\n        }, {\n          pixi: 'pig',\n          voice: \"m1\"\n        }, {\n          pixi: 'cow',\n          voice: \"m1\"\n        }, {\n          pixi: 'super-f',\n          voice: \"f1\"\n        }, {\n          pixi: 'super',\n          voice: \"m1\"\n        }\n      ];\n    }\n    now = inc(\"/lib/util/formatDate2/format\")();\n    if (now.specialDays.isChristmasPeriod) {\n      if (engine.isDebug) {\n        charactersXmas = [\n          {\n            pixi: 'xmas',\n            voice: \"m1\"\n          }, {\n            pixi: 'xmas-f',\n            voice: \"f1\"\n          }\n        ];\n      } else {\n        charactersXmas = [\n          {\n            pixi: 'xmas',\n            voice: \"m1\"\n          }, {\n            pixi: 'xmas-f',\n            voice: \"f1\"\n          }\n        ];\n      }\n      characters = charactersXmas.concat(characters);\n    }\n    return characters;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/finishLevel/bulb/bulb.ls","text":"(function(){\n  return function(){\n    var svg, lights, i$, len$;\n    inc(\"/lib/util/soundEffectPlay/soundEffectPlay\")(\"finish4\");\n    svg = Svg({\n      svg: path(\"/lib/svg/shape/bulb.svg\"),\n      color: Color.yellow[600],\n      width: \"140px\",\n      height: \"140px\"\n    }).animation({\n      css: {\n        transform: \"scale(1.1, 1.1) translateY(-0.5em)\"\n      },\n      autoReverse: true,\n      duration: 300\n    });\n    lights = [svg.findFirst(\".light1\").hide(), svg.findFirst(\".light2\").hide(), svg.findFirst(\".light3\").hide(), svg.findFirst(\".light4\").hide(), svg.findFirst(\".light5\").hide(), svg.findFirst(\".light6\").hide()];\n    for (i$ = 0, len$ = lights.length; i$ < len$; ++i$) {\n      (fn$.call(this, i$, lights[i$]));\n    }\n    return svg;\n    function fn$(i, light){\n      setTimeout(function(){\n        return light.fadeIn();\n      }, i * 150);\n    }\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/finishLevel/calcCoins/calcCoins.ls","text":"(function(){\n  return function(){\n    var coinData;\n    coinData = inc(\"firstLevelFinishCoin/calc\")();\n    if (!coinData.gotCoin) {\n      coinData = inc(\"newCoin/calc\")();\n    }\n    if (coinData.gotCoin) {\n      inc(\"/data/user/coin/add/add\")();\n    }\n    return coinData;\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"pages/level/finishLevel/calcCoins/newCoin/totalStarsNeeded/totalStarsNeeded.ls","text":"(function(){\n  return function(totalStars){\n    var starsNeeded, ref$, lastStars, ref1$, ref2$;\n    starsNeeded = (ref$ = log.findLast(\"setNextCoinTotalStars\")) != null ? ref$.value : void 8;\n    if (starsNeeded == null) {\n      lastStars = (ref1$ = (ref2$ = log.findLast(\"finishLevel\")) != null ? ref2$.score : void 8) != null ? ref1$ : 0;\n      starsNeeded = inc(\"../../_shared/setNextTotalStarsNeeded/set\")(totalStars - Math.floor(+lastStars));\n    }\n    return starsNeeded;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/finishLevel/loadLevel/load.ls","text":"(function(){\n  return function(page, onDone){\n    return inc(\"/lib/util/loadLevel/load\")({\n      path: page.params.levelPath,\n      onLoaded: onDone,\n      onError: function(level){\n        return inc(\"/lib/offline/offlinePageWithLogging/offlinePage\")({\n          page: page,\n          reason: \"levelFinishLoadLevelFailed\",\n          buttonClick: function(){\n            return startPage({\n              history: function(path){\n                return !_.includes(path, \"/level\");\n              }\n            });\n          },\n          buttonLabel: T(\"continueButton\"),\n          reasonDetails: {\n            level: level\n          },\n          isTechnicalProblem: true\n        });\n      }\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/finishLevel/pixiSpineCanvas/pixiSpineCanvas.ls","text":"(function(){\n  return function(o){\n    var isReady, start, onDone, emInPx, pixiSize, pixiScale, spineCanvas;\n    isReady = false;\n    start = function(){\n      var animation;\n      animation = o.score === 3\n        ? _.sample(['party', 'dance'])\n        : o.score > 1.8 ? _.sample(['cool', 'thumbs-up']) : 'damn';\n      if (!isReady) {\n        if (spineCanvas.isVisible()) {\n          setTimeout(start, 500);\n        }\n        return;\n      }\n      return spineCanvas.spine.state.setAnimation(0, animation, true);\n    };\n    onDone = function(){\n      isReady = true;\n      return spineCanvas.spine.state.setAnimation(0, \"idle\", true);\n    };\n    emInPx = inc(\"/lib/util/emToPx/emToPx\")();\n    pixiSize = emInPx * 11.5;\n    pixiScale = pixiSize / 200 * 0.3;\n    spineCanvas = inc(\"/lib/gui/pixiSpineCanvas/pixiSpineCanvas\")({\n      width: pixiSize,\n      height: pixiSize,\n      projectFolder: \"/../sprites/human1\",\n      skin: o.character.pixi,\n      scale: pixiScale,\n      onDone: onDone\n    }).css({\n      position: \"relative\",\n      display: \"inline-flex\"\n    }).onDomRemove(function(){\n      return this.remove();\n    });\n    spineCanvas.start = start;\n    return spineCanvas;\n  };\n})();","updated":"2021-08-16T13:54:45.613584"},{"path":"pages/level/play/showOffline/showOffline.ls","text":"(function(){\n  return function(page){\n    return function(o){\n      var ref$;\n      if ((ref$ = body.findFirst(\".topbarAntonPlus\")) != null) {\n        ref$.hide();\n      }\n      o.reasonDetails == null && (o.reasonDetails = {});\n      o.reasonDetails.levelPath = page.params.levelPath;\n      return inc(\"/lib/offline/offlinePageWithLogging/offlinePage\")({\n        page: page,\n        reason: o.reason,\n        reasonDetails: o.reasonDetails,\n        isTechnicalProblem: _.startsWith(o.reason, \"technicalProblem\"),\n        showAntonPlusHint: true\n      });\n    };\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/util/calcAppType/calcBrowserName/calc.ls","text":"(function(){\n  return function(){\n    var isIE, isEdge, a, browserName;\n    isIE = false || !!document.documentMode;\n    isEdge = !isIE && !!window.StyleMedia;\n    a = navigator.userAgent;\n    return browserName = _.includes(a, \"Edge\") || _.includes(a, \"Edg/\")\n      ? \"Edge\"\n      : (_.includes(a, \"Chrome\") || _.includes(a, \"CriOS\")) && !isEdge\n        ? \"Chrome\"\n        : _.includes(a, \"GSA/\")\n          ? \"GoogleSearchApp\"\n          : _.includes(a, \"Safari\") && !isEdge\n            ? \"Safari\"\n            : _.includes(a, \"Firefox\")\n              ? \"Firefox\"\n              : _.includes(a, \"MSIE\") || !!document.documentMode === true\n                ? \"IE\"\n                : isEdge ? \"Edge\" : \"Other\";\n  };\n})();","updated":"2020-12-02T11:48:15.724869"},{"path":"pages/misc/_shared/confirmAge16AndPrivacy/popups/privacy1/popup.ls","text":"(function(){\n  return function(onYes){\n    var clickYes, div, popup;\n    log.log({\n      event: \"debugShowAcceptPrivacy1Popup\"\n    });\n    clickYes = function(){\n      return onYes();\n    };\n    div = Div().css({\n      margin: \"1em 0\"\n    }).append(inc(\"text/text\")(), inc(\"../_debugOnlyInfo/info\")(\"setAcceptPrivacy\"), inc(\"button/button\")(T(\"showPolicy\"), clickYes));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/misc/_shared/confirmAge16AndPrivacy/popups/privacy2/popup.ls","text":"(function(){\n  return function(onYes){\n    var clickYes, div, popup;\n    log.log({\n      event: \"debugShowAcceptPrivacy1Popup\"\n    });\n    clickYes = function(){\n      log.log({\n        event: \"setAcceptPrivacy\",\n        value: true\n      });\n      return onYes();\n    };\n    div = Div().css({\n      margin: \"1em 0\"\n    }).append(inc(\"text/text\")(), inc(\"../_debugOnlyInfo/info\")(\"setAcceptPrivacy\"), inc(\"button/button\")(T(\"accept\"), clickYes));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/misc/phoneNumber/show/withNumber/withNumber.ls","text":"(function(){\n  return function(page, number, isVerified){\n    var hiddenNumber;\n    hiddenNumber = inc(\"/../app01/lib/util/calcHiddenPhoneNumber/calc\")(number);\n    return Div().html(inc(\"title/title\")(), inc(\"number/number\")(hiddenNumber), inc(\"verifyText/verifyText\")(isVerified), inc(\"notVerifiedWarning/warning\")(isVerified), inc(\"buttons/buttons\")(isVerified));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/util/formatDateAsAgeString/_t.ls","text":"(function(){\n  return {\n    minute: {\n      de: \"Minute\",\n      en: \"minute\",\n      fr: \"minute\",\n      es: \"minuto\",\n      pt: \"minuto\"\n    },\n    minutes: {\n      de: \"Minuten\",\n      en: \"minutes\",\n      fr: \"minutes\",\n      es: \"minutos\",\n      pt: \"minutos\"\n    },\n    hour: {\n      de: \"Stunde\",\n      en: \"hour\",\n      fr: \"heure\",\n      es: \"hora\",\n      pt: \"hora\"\n    },\n    hours: {\n      de: \"Stunden\",\n      en: \"hours\",\n      fr: \"heures\",\n      es: \"horas\",\n      pt: \"horas\"\n    },\n    day: {\n      de: \"Tag\",\n      en: \"day\",\n      fr: \"jour\",\n      es: \"día\",\n      pt: \"dia\"\n    },\n    days: {\n      de: \"Tage\",\n      en: \"days\",\n      fr: \"jours\",\n      es: \"días\",\n      pt: \"dias\"\n    },\n    month: {\n      de: \"Monat\",\n      en: \"month\",\n      fr: \"mois\",\n      es: \"mes\",\n      pt: \"mês\"\n    },\n    months: {\n      de: \"Monate\",\n      en: \"months\",\n      fr: \"mois\",\n      es: \"meses\",\n      pt: \"meses\"\n    },\n    year: {\n      de: \"Jahr\",\n      en: \"year\",\n      fr: \"an\",\n      es: \"año\",\n      pt: \"ano\"\n    },\n    years: {\n      de: \"Jahre\",\n      en: \"years\",\n      fr: \"ans\",\n      es: \"años\",\n      pt: \"anos\"\n    },\n    m: {\n      de: \" Min\",\n      en: \" min\",\n      fr: \" min\",\n      es: \" min\",\n      pt: \" min\"\n    },\n    h: {\n      de: \" Std\",\n      en: \" hr\",\n      fr: \" h\",\n      es: \" hr\",\n      pt: \" h\"\n    },\n    d: {\n      de: \" T\",\n      en: \" day\",\n      fr: \" j\",\n      es: \" d\",\n      pt: \" d\"\n    },\n    M: {\n      de: \" Mon\",\n      en: \" mo\",\n      fr: \" mois\",\n      es: \" mes\",\n      pt: \" mês\"\n    },\n    J: {\n      de: \" J\",\n      en: \" yr\",\n      fr: \" an\",\n      es: \" a\",\n      pt: \" a\"\n    },\n    less2Minutes: {\n      de: \"< 2 Minuten\",\n      en: \"< 2 minutes\",\n      fr: \"< 2 minutes\",\n      es: \"< 2 minutos\",\n      pt: \"< 2 minutos\"\n    },\n    less1Day: {\n      de: \"< 1 Tag\",\n      en: \"< 1 day\",\n      fr: \"< 1 jour\",\n      es: \"< 1 día\",\n      pt: \"< 1 dia\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/misc/_shared/_t.ls","text":"(function(){\n  return {\n    pleaseAcceptPrivacyPolicy: {\n      de: \"Bitte stimme noch unseren Datenschutzbestimmungen zu.\",\n      en: \"Please agree to our privacy policy.\",\n      fr: \"Merci d'accepter notre politique de protection des données personnelles.\",\n      es: \"Por favor, acepta nuestra política de privacidad.\",\n      pt: \"Por favor, aceite nossa política de privacidade.\"\n    },\n    showPolicy: {\n      de: \"Bestimmungen ansehen\",\n      en: \"View terms\",\n      fr: \"Voir nos conditions\",\n      es: \"Ver condiciones\",\n      pt: \"Ver condições\"\n    },\n    accept: {\n      de: \"Zustimmen\",\n      en: \"Agree\",\n      fr: \"Accepter\",\n      es: \"Aceptar\",\n      pt: \"Aceitar\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/numberPuzzle/_t.ls","text":"(function(){\n  return {\n    manual: {\n      de: \"Schiebe die Zahlen in die richtige Reihenfolge. Es geht oben links mit der 1 los. Eine ausführliche Spielanleitung findest du in der Erklärung.\",\n      en: \"Move the numbers into the correct order. Begin in the top left with the number 1. You can find detailed instructions in the explanation.\",\n      fr: \"Remets les nombres dans le bon ordre en commençant par le nombre 1 en haut à gauche. Tu peux apprendre comment le faire dans les explications.\",\n      es: \"Recorre los números para acomodarlos en orden sucesivo. Empieza con el 1 en la esquina superior izquierda. Si aún tienes dudas, consulta el manual de juego.\\\"\",\n      pt: \"Mova os números trazendo-os para a ordem correta. Inicie pelo numero 1 no canto superior esquerdo. Uma explicação mais detalhada você encontra no manual do jogo.\"\n    },\n    explanation: {\n      de: \"Erklärung\",\n      en: \"Explanation\",\n      fr: \"Explications\",\n      es: \"Manual de juego\",\n      pt: \"Manual do jogo\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/broadJump/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Klicke mit der Maus oder drücke schnell eine Taste, um Anlauf zu nehmen. Innerhalb der Sprungzone springst du durch Klicken ab. Je später du abspringst, desto weiter wirst du fliegen.\",\n      en_gb: \"Click repeatedly with the mouse or any key to start the run-up. To jump, click with the mouse or any key when inside the jump zone. The later you jump, the farther you will go.\",\n      en: \"Click repeatedly with the mouse or any key to start the run-up. To jump, click with the mouse or any key inside the jump zone. The later you jump, the farther you will go.\",\n      fr: \"Appuie plein de fois sur la souris ou sur n'importe quelle touche du clavier pour courir. Pour sauter, appuie une fois sur la souris ou sur n'importe quelle touche quand tu es dans la zone de saut. Plus tu attends pour sauter, plus loin tu iras.\",\n      es: \"Presion el ratón o cualquier tecla lo más rápido que puedas para tomar impulso. Haz clic en la zona de salto para saltar. Entre más tarde brinques, más lejos llegarás.\",\n      pt: \"Clique com o mouse ou pressione rapidamente uma tecla para pegar impulso. Para saltar, clique dentro da zona de salto. Quanto mais tarde saltar, mais longe conseguirá chegar.\"\n    },\n    manual: {\n      de: \"Tippe auf den Bildschirm, um Anlauf zu nehmen. Innerhalb der Sprungzone springst du ab, indem du einmal tippst. Je später du abspringst, desto weiter wirst du fliegen.\",\n      en_gb: \"Tap the screen repeatedly to start the run-up. To jump, tap the screen when inside the jump zone. The later you jump, the farther you will go.\",\n      en: \"Tap the screen repeatedly to start the run-up. To jump, tap the screen inside the jump zone. The later you jump, the farther you will go.\",\n      fr: \"Appuie sur l'écran plein de fois pour courir. Pour sauter, appuie une fois sur l'écran quand tu es dans la zone de saut. Plus tu attends pour sauter, plus loin tu iras.\",\n      es: \"Toca la pantalla repetidas veces para tomar impulso. En la zona de salto toca la pantalla una sola vez para saltar. Entre más tarde brinques, más lejos llegarás.\",\n      pt: \"Toque repetidamente na tela para pegar impulso. Para saltar, toque na tela dentro da zona de salto. Quanto mais tarde saltar, mais longe você conseguirá chegar. \"\n    },\n    title: {\n      de: \"ANTON Sports: Weitsprung\",\n      en: \"ANTON Sports: Long Jump\",\n      fr: \"ANTON Sports&nbsp;: Saut en longueur\",\n      es: \"ANTON Sports: Salto de longitud\",\n      pt: \"ANTON Sports: Salto em distância\"\n    }\n  };\n})();","updated":"2022-01-06T16:25:58.469716"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/superRacer/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Klicke auf eine Spur oder benutze die Pfeiltasten, um die Spur zu wechseln.\\nVersuche keinen Unfall zu verursachen und so schnell wie möglich im Ziel zu sein. \\nSammle Münzen für einen Geschwindigkeitsschub.\",\n      en_gb: \"Use the mouse or the arrow keys to switch between lanes.\\nTry to reach the finish line as quickly as possible without crashing.\\nCollect the coins to boost your speed.\",\n      en: \"Use the mouse or the arrow keys to switch between lanes.\\nTry not to crash and reach the finish line as quickly as possible.\\nCollect the coins to boost your speed.\",\n      fr: \"Utilise la souris ou les flèches du clavier pour changer de voie.\\nEssaie de ne pas avoir d'accident et d'atteindre la ligne d'arrivée aussi vite que possible.\\nCollecte les pièces pour aller plus vite.\",\n      es: \"Usa el ratón o las flechas de tu teclado para cambiar de carril. Llega lo más rápido que \\npuedas a la meta sin ocasionar accidentes.\",\n      pt: \"Use o mouse ou as setas do teclado para mudar de pista. Tente chegar à linha de chegada o mais rápido possível sem causar um acidente. \\nColete moedas para aumentar a velocidade.\"\n    },\n    manual: {\n      de: \"Tippe auf eine Spur, um auf sie zu wechseln.\\nVersuche keinen Unfall zu verursachen und so schnell wie möglich im Ziel zu sein. \\nSammle Münzen für einen Geschwindigkeitsschub.\",\n      en_gb: \"Tap the screen to switch between lanes.\\nTry to reach the finish line as quickly as possible without crashing.\\nCollect the coins to boost your speed.\",\n      en: \"Tap the screen to switch between lanes.\\nTry not to crash and reach the finish line as quickly as possible.\\nCollect the coins to boost your speed.\",\n      fr: \"Appuie sur l'écran pour changer de voie.\\nEssaie de ne pas avoir d'accident et d'atteindre la ligne d'arrivée aussi vite que possible.\\nCollecte les pièces pour aller plus vite.\",\n      es: \"Presiona la pantalla para cambiar de carril. Llega lo más rápido que \\npuedas a la meta sin ocasionar accidentes.\",\n      pt: \"Toque na tela para mudar de pista. \\nTente chegar à linha de chegada o mais rápido possível sem causar um acidente. \\nColete moedas para aumentar a velocidade.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/treasureHook/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Hilf dem Piraten die wertvollen Schätze aus dem Meer zu bergen, bevor die Sonne untergeht.      \\nBeweise ein gutes Auge und Geschick und klicke mit der Maus oder drücke eine Taste, um den Haken auszuwerfen.\\nSammle so in kurzer Zeit möglichst viele Gegenstände ein.\",\n      en: \"Use the mouse or any key to throw the hook.\\nThrow the hook at the right moment to get the best treasure.      \",\n      fr: \"Aide le pirate à récupérer les trésors de la mer avant le coucher du soleil.\\nUtilise la souris ou n'importe quelle touche du clavier pour lancer ton ancre au bon moment.\\nCollecte le plus vite possible autant d'objets que tu peux.      \",\n      es: \"Haz clic con el ratón o presiona cualquier tecla para lanzar el gancho al mar. Lanza el gancho \\nen el momento preciso para atrapar los objetos.  Ayúdale al pirata a rescatar tantos \\ntesoros como sea posible antes de que caiga el sol. \",\n      pt: \"Ajude o pirata a recuperar os tesouros preciosos do mar antes do pôr do sol. \\nUse o mouse ou qualquer tecla do teclado para lançar sua âncora no momento certo. \\nColete o máximo de itens que puder o mais rápido possível. \"\n    },\n    manual: {\n      de: \"Hilf dem Piraten die wertvollen Schätze aus dem Meer zu bergen, bevor die Sonne untergeht.      \\nBeweise ein gutes Auge und Geschick und tippe auf den Bildschirm, um den Haken auszuwerfen.\\nSammle so in kurzer Zeit möglichst viele Gegenstände ein.\",\n      en: \"Tap the screen to throw the hook.\\nThrow the hook at the right moment to get the best treasure.\\nIn each level you are given an extra 30 seconds.\",\n      fr: \"Aide le pirate à récupérer les trésors de la mer avant le coucher du soleil.\\nAppuie sur l'écran pour lancer ton ancre au bon moment.\\nCollecte le plus vite possible autant d'objets que tu peux.      \",\n      es: \"Toca la pantalla para lanzar el gancho al mar. Lanza el gancho \\nen el momento preciso para atrapar los objetos.  Ayuda al pirata a rescatar tantos \\ntesoros como sea posible antes de que caiga el sol. \",\n      pt: \"Ajude o pirata a recuperar os tesouros preciosos do mar antes do pôr do sol. \\nToque na tela para lançar sua âncora no momento certo. \\nColete o máximo de itens que puder o mais rápido possível. \"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/echoMaster/_t.ls","text":"(function(){\n  return {\n    easyViolin: {\n      de: \"Geige (Einfach)\",\n      en: \"Violin (Easy)\",\n      fr: \"Violon (Facile)\",\n      es: \"Violín (Fácil)\",\n      pt: \"Violino (Fácil)\"\n    },\n    mediumGuitar: {\n      de: \"Gitarre (Mittel)\",\n      en: \"Guitar (Medium)\",\n      fr: \"Guitare (Moyen)\",\n      es: \"Guitarra (Medio)\",\n      pt: \"Violão (Médio)\"\n    },\n    hardPiano: {\n      de: \"Klavier (Schwierig)\",\n      en: \"Piano (Hard)\",\n      fr: \"Piano (Difficile)\",\n      es: \"Piano (Difícil)\",\n      pt: \"Piano (Difícil)\"\n    },\n    veryHardChimes: {\n      de: \"Glockenspiel (Sehr schwer)\",\n      en_gb: \"Glockenspiel (Very Hard)\",\n      en: \"Chimes (Very Hard)\",\n      fr: \"Carillon (Très difficile)\",\n      es: \"Campanillas (Muy difícil)\",\n      pt: \"Carrilhão (Muito difícil)\"\n    },\n    manual: {\n      de: \"Die bunten Felder leuchten abwechselnd und geben dabei einen Ton ab. Merke dir diese Reihenfolge und wiederhole danach die vorgespielte Melodie. \",\n      en: \"Pay attention as the buttons light up and play a melody. When the music stops, try to repeat the melody by clicking on the buttons in the correct order.\",\n      fr: \"Fais attention aux boutons qui s'allument et jouent une mélodie. Quand la musique s'arrête, essaie de reproduire la mélodie en cliquant sur les boutons dans le bon ordre.\",\n      es: \"Observa como se iluminan las zonas de colores al sonar la melodía. Memoriza la secuencia e intenta reproducir la melodía.\",\n      pt: \"Observe como as zonas coloridas se iluminam e tocam um som. Memorize a sequência e tente reproduzir a melodia.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/spaceBlox/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Benutze die Maus oder die Pfeiltasten, um das Raumschiff zu steuern.\\nLass den Ball nicht runterfallen und probiere alle Blöcke oben zu treffen.\",\n      en: \"Direct the spaceship with the mouse or the arrow keys.\\nTry to hit all the blocks without letting the ball fall down.\",\n      fr: \"Dirige le vaisseau avec la souris ou les flèches du clavier.\\nEssaie de détruire tous les blocs sans laisser tomber la balle.\",\n      es: \"Mueve la nave espacial con el ratón o las flechas de tu teclado. Destruye los bloques en la \\nparte de arriba sin que se te caiga la pelota.\",\n      pt: \"Use o mouse ou as setas do teclado para pilotar a nave. \\nDestrua os blocos na parte de cima, mas não deixe a bola cair.\"\n    },\n    manual: {\n      de: \"Bewege den Finger auf dem Bildschirm, um das Raumschiff zu steuern.\\nLass den Ball nicht runterfallen und probiere alle Blöcke oben zu treffen.\",\n      en: \"Use your finger to direct the spaceship.\\nTry to hit all the blocks without letting the ball fall down.\",\n      fr: \"Dirige le vaisseau avec ton doigt.\\nEssaie de détruire tous les blocs sans laisser tomber la balle.\",\n      es: \"Dirige la nave espacial arrastrando el dedo sobre la pantalla. Destruye los bloques en la \\nparte de arriba sin que se te caiga la pelota.\",\n      pt: \"Pilote a nave deslizando o dedo sobre a tela. \\nDestrua os blocos na parte de cima, mas não deixe a bola cair.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/towerBuilder/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Klicke auf den Bildschirm, um die Blöcke übereinander zu stapeln.\",\n      en: \"Click on the screen to stack the blocks on top of each other.\",\n      fr: \"Clique sur l'écran pour empiler les blocs les uns sur les autres.\",\n      es: \"Haz clic sobre la pantalla para apilar los bloques.\",\n      pt: \"Clique na tela para empilhar os blocos.\"\n    },\n    manual: {\n      de: \"Tippe auf den Bildschirm, um die Blöcke übereinander zu stapeln.\",\n      en: \"Tap the screen to stack the blocks on top of each other.\",\n      fr: \"Appuie sur l'écran pour empiler les blocs les uns sur les autres.\",\n      es: \"Presiona la pantalla para apilar los bloques.\",\n      pt: \"Toque na tela para empilhar os blocos.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/crazyCobras/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Lenke mit den Pfeiltasten. Versuche dein Gebiet so groß wie möglich auszuweiten, aber pass auf, dass dir niemand über den Schwanz fährt (auch du selbst nicht). Erschließe neue Gebiete, indem du erst aus deinem eigenen herausfährst und dann wieder zu ihm zurückkehrst.\",\n      en: \"Use the arrow keys to guide your cobra. Try to make your territory as large as possible but be careful that nobody crosses your tail. Also beware of crossing your own tail! To expand your territory, guide your cobra out from your existing territory and back in again.\",\n      fr: \"Utilise les flèches du clavier pour guider ton cobra. Essaie d'étendre ton territoire au maximum mais fais attention que personne ne croise ta queue. Fais aussi attention à ne pas croiser ta propre queue&nbsp;! Pour étendre ton territoire, guide ton cobra en dehors de ton territoire et fais-le rentrer à nouveau.\",\n      es: \"Dirige la cobra con las flechas del teclado y expande tu territorio lo más que puedas. Cuida que las demás cobras no te muerdan la cola y ¡ten cuidado de no mordértela tú! Para expandir tu territorio debes salir de él y volver.\",\n      pt: \"Use as setas do teclado para guiar a cobra. Tente expandir o seu território o máximo possível. Tome cuidado para não deixar ninguém passar sobre sua cauda, nem mesmo você! Para aumentar seu território, você deverá sair dele e depois voltar para ele.\"\n    },\n    manual: {\n      de: \"Lenke, indem du in die gewünschte Richtung wischst. Versuche dein Gebiet so groß wie möglich auszuweiten, aber pass auf, dass dir niemand über den Schwanz fährt (auch du selbst nicht). Erschließe neue Gebiete, indem du erst aus deinem eigenen herausfährst und dann wieder zu ihm zurückkehrst.\",\n      en: \"Swipe the screen to guide your cobra. Try to make your territory as large as possible but be careful that nobody crosses your tail. Also beware of crossing your own tail! To expand your territory, guide your cobra out from your existing territory and back in again.\",\n      fr: \"Fais glisser ton doigt sur l'écran pour guider ton cobra. Essaie d'étendre ton territoire au maximum mais fais attention que personne ne croise ta queue. Fais aussi attention à ne pas croiser ta propre queue&nbsp;! Pour étendre ton territoire, guide ton cobra en dehors de ton territoire et fais-le rentrer à nouveau.\",\n      es: \"Dirige la cobra deslizando el dedo sobre la pantalla y expande tu territorio lo más que puedas. Cuida que las demás cobras no te muerdan la cola y ¡ten cuidado de no mordértela tú mismo! Para expandir tu territorio debes salir de él y volver.\",\n      pt: \"Guie a cobra deslizando o dedo sobre a tela. Tente expandir seu território o máximo possível. Tome cuidado para não deixar ninguém passar sobre sua cauda, nem mesmo você! Para aumentar seu território, você deverá sair dele e depois voltar para ele. \"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/cityJumper/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Springe mit der Leertaste oder der Maustaste über die Häuser. Sammle Sterne und versuche so weit wie möglich zu kommen.\",\n      en: \"Use the space bar or click with the mouse to jump from house to house. Collect the stars and try to go as far as possible.\",\n      fr: \"Utilise la barre d'espace ou clique avec la souris pour sauter de toit en toit. Collecte les étoiles et essaie d'aller le plus loin possible.\",\n      es: \"Usa el ratón o la barra espaciadora para brincar de un edificio a otro. Recolecta las estrellas e intenta llegar lo más lejos posible. \",\n      pt: \"Salte sobre as casas usando o botão do mouse ou a barra de espaço. Colete estrelas e tente chegar o mais longe possível. \"\n    },\n    manual: {\n      de: \"Tippe auf den Bildschirm, um von Haus zu Haus zu springen. Sammle Sterne und versuche so weit wie möglich zu kommen.\",\n      en: \"Tap the screen to jump from house to house. Collect the stars and try to go as far as possible.\",\n      fr: \"Appuie sur l'écran pour sauter de toit en toit. Collecte les étoiles et essaie d'aller le plus loin possible.\",\n      es: \"Presiona la pantalla para brincar de un edificio a otro. Recolecta las estrellas e intenta llegar lo más lejos posible. \",\n      pt: \" Pressione a tela para saltar sobre as casas. Colete as estrelas e tente chegar o mais longe possível.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/02_page_loginCode/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        var loginCode;\n        loginCode = log.findLast(\"setLoginCode\").value;\n        page.userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n        return page.html(inc(\"text/text\")(), inc(\"loginCode/loginCode\")(loginCode), inc(\"buttonPrintOrSave/button\")(page, loginCode), inc(\"buttonDone/button\")());\n      }\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/start/startUser/07_extraPages/showLoginCodeOnce/page/buttonPrint/button.ls","text":"(function(){\n  return function(loginCode){\n    var d, print;\n    d = inc(\"/data/user/calcUserDescription/calc\")();\n    print = function(){\n      var userCard;\n      userCard = inc(\"/../qrcode/userCard/userCard\")({\n        loginCode: loginCode,\n        name: d.displayName || d.name\n      });\n      return inc(\"/lib/util/print/print\")({\n        div: userCard,\n        title: T(\"loginCode\")\n      });\n    };\n    return Button({\n      label: T(\"print\"),\n      icon: path(\"/lib/svg/shape/print.svg\"),\n      iconColor: Color.grey[600]\n    }).css({\n      marginTop: \"1.5em\",\n      marginRight: \"1em\"\n    }).tap(print);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/schoolSearch/04_schoolSearch/_t.ls","text":"(function(){\n  return {\n    noSchoolFoundWith: {\n      de: \"Es wurde keine Schule mit '$1' gefunden.\",\n      en: \"No school found matching \\\"$1\\\".\",\n      fr: \"Aucune école correspondant à “$1” n'a été trouvée.\",\n      es: \"No se encontró ninguna escuela que corresponda a “$1”\",\n      pt: \"Nenhuma escola com “$1” foi encontrada.\"\n    },\n    selectSchool: {\n      de: \"Wie heißt deine Schule?\",\n      en: \"What’s the name of your school?\",\n      fr: \"Comment s'appelle ton école&nbsp;?\",\n      es: \"¿Cómo se llama la escuela?\",\n      pt: \"Qual o nome da sua escola?\"\n    },\n    cantFindSchool: {\n      de: \"Ich finde meine Schule nicht\",\n      en: \"I can't find my school\",\n      fr: \"Je ne trouve pas mon école\",\n      es: \"No encuentro mi escuela\",\n      pt: \"Não encontro minha escola\"\n    }\n  };\n})();","updated":"2021-10-01T11:32:23.568117"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupGameResult/text/text.ls","text":"(function(){\n  return function(lastScoreIsHighscore, bestUserScore){\n    var label;\n    label = engine.guiLanguage === \"en_gb\"\n      ? inc(\"/lib/util/calcOrdinalEn/calc\")(bestUserScore.position)\n      : bestUserScore.position;\n    return Div({\n      marginTop: \"0.3em\",\n      marginBottom: \"0.5em\"\n    }).html(!lastScoreIsHighscore\n      ? T(\"notImproved\")\n      : bestUserScore.position <= 3\n        ? T(\"topPositionReached\", label)\n        : T(\"positionReached\", label));\n  };\n})();","updated":"2021-10-01T11:32:23.568117"},{"path":"pages/static/antonPlus/1_products/productBlock/_logPromoClick/log.ls","text":"(function(){\n  return function(product){\n    return inc(\"/lib/util/logPromo/log\")({\n      event: \"promoPlus_products_click\",\n      sku: product.sku,\n      price: product.displayPrice\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/debugShowProductsLink/link.ls","text":"(function(){\n  return function(page){\n    var d, ref$;\n    d = page.userDescription;\n    if (((ref$ = page.activeProduct) != null && ref$.name) || d.isDPASchoolMember || d.isPlusSchoolMember) {\n      return inc(\"/lib/gui/link/link\")(\"Debug: Show all products\").css({\n        color: Color.grey[400],\n        fontSize: \"0.9em\",\n        padding: \"0.5em\"\n      }).tap(function(){\n        page.params.debugShowAllProducts = true;\n        return startPage({\n          history: 0\n        });\n      });\n    }\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_checkOnlineOrProblem/popupProblem/popup.ls","text":"(function(){\n  return function(p){\n    var storeName;\n    storeName = engine.isiOsApp ? \"App&nbsp;Store\" : \"Play&nbsp;Store\";\n    return inc(\"/lib/gui/errorPopup/popup\")({\n      label: p === \"isAmazonDevice\"\n        ? T(\"isAmazonDevice\")\n        : p === \"noStorePlugin\"\n          ? T(\"noStorePlugin\")\n          : p === \"productsMissing\"\n            ? T(\"productsMissing\", storeName)\n            : p === \"storeNotReady\" ? T(\"storeNotReady\", storeName) : void 8\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popup.ls","text":"(function(){\n  return function(p, animationOnShow){\n    return inc(\"popupParentalGate/popup\")(p);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupParentalGate/input/input.ls","text":"(function(){\n  return function(p){\n    return Div().css({\n      display: \"flex\",\n      padding: \"0.2em 0 0.4em\",\n      fontSize: \"0.95em\"\n    }).append(T(\"birthYear\"), p.input = inc(\"/lib/gui/input2/input\")({\n      keyboardParentDiv: app.currentPage.popupBottom,\n      keyboardLayout: \"numbers\",\n      onSubmit: p.submit,\n      keyboardSubmitLabel: T(\"continueButton\"),\n      fixedLength: 4\n    }).css({\n      width: \"5em\"\n    })).onDomAppend(function(){\n      return p.input.start();\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupParentalGate/popup.ls","text":"(function(){\n  return function(p){\n    var div;\n    p.submit = function(){\n      var year;\n      year = +p.input.getValue().trim();\n      p.input.stop();\n      return inc(\"validate/validate\")(year, function(){\n        return inc(\"../popupPurchase/popup\")(p);\n      });\n    };\n    div = Div().css({\n      padding: \"0.2em 0.6em 0.6em 0.6em\"\n    }).append(inc(\"../_shared/text/text\")(T(\"textParents\", p.productName)).css({\n      borderBottom: \"\",\n      paddingBottom: \"0.2em\"\n    }), inc(\"input/input\")(p), inc(\"button/button\")(p));\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      animationOnShow: true,\n      animationOnClose: false,\n      animationDisableBackground: true\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupParentalGate/validate/validate.ls","text":"(function(){\n  var lp;\n  lp = inc(\"/lib/util/logPromo/log\");\n  return function(year, onSuccess){\n    var minAge, currentYear, ref$;\n    minAge = 18;\n    currentYear = new Date().getFullYear();\n    if (_.isNaN(year) || year < 1900 || year > currentYear || year > currentYear - (minAge + 1)) {\n      lp(\"promoPlus_birthYearInvalid\");\n      return inc(\"/lib/gui/errorPopup/popup\")({\n        label: T(\"invalidBirthYear\"),\n        animationDisableBackground: true,\n        animationOnShow: false\n      });\n    } else {\n      lp(\"promoPlus_birthYearOk\");\n      if ((ref$ = app.currentPopup) != null) {\n        ref$.close();\n      }\n      return onSuccess();\n    }\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/popup.ls","text":"(function(){\n  return function(p, animationOnShow){\n    var div;\n    div = Div().css({\n      padding: \"0.6em\"\n    }).append(inc(\"title/title\")(p.title), inc(\"user/user\")(), inc(\"../_shared/text/text\")(p.text1), inc(\"../_shared/text/text\")(p.text2), inc(\"termsAndPrivacyDiv/div\")(p), inc(\"buttonBuy/button\")(p));\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      animationOnShow: animationOnShow,\n      animationOnClose: false,\n      animationDisableBackground: true\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"lib/util/loadGroupContent/calcPinEvents/calc.ls","text":"(function(){\n  return function(groupCode){\n    var result, groupLog, blockEvents, learnListEvents, eventsAll, events, ref$;\n    result = {};\n    groupLog = window.groupLogs[groupCode];\n    blockEvents = groupLog.list({\n      event: \"pinGroupBlock\"\n    });\n    learnListEvents = groupLog.list({\n      event: \"pinGroupLearnList\"\n    });\n    eventsAll = _.concat(blockEvents, learnListEvents);\n    events = _.orderBy(eventsAll, [\n      function(e){\n        return e.weekStartAt;\n      }, function(e){\n        return e.event.created;\n      }\n    ], [\"asc\", \"asc\"]);\n    return {\n      total: events.length,\n      lastEventCreated: (ref$ = groupLog.findLast()) != null ? ref$.created : void 8,\n      events: events\n    };\n  };\n})();","updated":"2021-05-17T13:03:44.842719"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/termsAndPrivacyDiv/div.ls","text":"(function(){\n  return function(p){\n    var div;\n    return div = Div().css({\n      display: \"inline-block\",\n      lineHeight: \"1.6em\",\n      maxWidth: \"90%\",\n      width: \"30em\",\n      fontSize: \"0.95em\",\n      margin: \"0.5em 0 0.8em 0\"\n    }).html(T(\"iAgree\", T(\"buttonBuy\")) + \" \", inc(\"termsLink/link\")(p, T(\"terms\")), \" \" + T(\"andThe\") + \" \", inc(\"privacyLink/link\")(p, T(\"privacyPolicy\")), T(\"to\"));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/termsAndPrivacyDiv/privacyLink/link.ls","text":"(function(){\n  return function(p, label){\n    var click;\n    click = function(){\n      return inc(\"popupPrivacy/popup\")(p);\n    };\n    return inc(\"../link/link\")(label, click);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/termsAndPrivacyDiv/privacyLink/popupPrivacy/popup.ls","text":"(function(){\n  return function(p){\n    var div, popup;\n    div = Div().css({\n      width: \"35em\",\n      margin: \"1em 0\",\n      textAlign: \"left\"\n    }).append(Div().css({\n      fontWeight: \"bold\",\n      textAlign: \"center\"\n    }).html(T(\"antonPrivacy\")), inc(\"/pages/static/privacy/div/div\")());\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      animationOnShow: true,\n      animationOnClose: false,\n      onClose: function(){\n        return inc(\"../../../popup\")(p, false);\n      }\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/termsAndPrivacyDiv/termsLink/link.ls","text":"(function(){\n  return function(p, label){\n    var click;\n    click = function(){\n      return inc(\"popupTerms/popup\")(p);\n    };\n    return inc(\"../link/link\")(label, click);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/termsAndPrivacyDiv/termsLink/popupTerms/popup.ls","text":"(function(){\n  return function(p){\n    var div, popup;\n    div = Div().css({\n      width: \"35em\",\n      margin: \"1em 0\",\n      textAlign: \"left\"\n    }).append(Div().css({\n      fontWeight: \"bold\",\n      textAlign: \"center\"\n    }).html(T(\"antonTerms\")), inc(\"/pages/static/terms/div/div\")());\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      animationOnShow: true,\n      animationOnClose: false,\n      onClose: function(){\n        return inc(\"../../../popup\")(p, false);\n      }\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_purchase/purchase.ls","text":"(function(){\n  return function(product, referrer){\n    var onProductPurchased;\n    onProductPurchased = function(product){\n      var ref$;\n      return startPage({\n        path: path(\"../../../3_thanks/page\"),\n        history: 0,\n        params: {\n          sku: (ref$ = product != null ? product.id : void 8) != null\n            ? ref$\n            : product != null ? product.sku : void 8,\n          alias: product != null ? product.alias : void 8\n        }\n      });\n    };\n    if (product.paypal) {\n      return inc(\"paypalPopup/popup\")(product, referrer, onProductPurchased);\n    } else {\n      if (engine.isAmazonDevice && window.amazonStore != null) {\n        return inc(\"amazonStore/amazonStore\")(product, referrer, onProductPurchased);\n      } else {\n        return inc(\"appstore/appstore\")(product, referrer, onProductPurchased);\n      }\n    }\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/block.ls","text":"(function(){\n  return function(p){\n    var block;\n    block = Div().css({\n      borderTop: \"1px solid \" + Color.grey[200],\n      lineHeight: \"1.5em\",\n      padding: \"0.4em\",\n      textAlign: \"left\"\n    }).css(p.isDisabled ? {\n      opacity: 0.35,\n      pointerEvents: \"none\"\n    } : void 8).append(inc(\"head/head\")(p), inc(\"list/list\")(p));\n    block.highlight = function(){\n      return inc(\"highlight/highlight\")(block);\n    };\n    return block;\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/head/button/newTag/newTag.ls","text":"(function(){\n  return function(isNew){\n    if (!isNew) {\n      return;\n    }\n    return Div().html(T(\"new\")).css({\n      position: \"absolute\",\n      top: \"-0.4em\",\n      right: \"-0.6em\",\n      transform: \"rotate(20deg)\",\n      background: Color.blue[500],\n      color: \"white\",\n      fontSize: \"0.7em\",\n      padding: \"0 0.2em 0 \"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/head/name/name.ls","text":"(function(){\n  return function(p){\n    return Div().css({\n      flex: \"1 1 auto\",\n      padding: \"0.5em 0.3em 0.5em 0\",\n      fontWeight: \"bold\",\n      fontSize: \"1.1em\",\n      textAlign: \"left\",\n      width: \"80%\"\n    }).html(p.title);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/highlight/highlight.ls","text":"(function(){\n  return function(block){\n    app.currentPage.scrollElementIntoView(block, {\n      center: true,\n      instant: true\n    });\n    return block.keyframeAnimate({\n      delay: 500,\n      duration: 1000,\n      keyframes: {\n        \"0%\": {\n          background: \"white\"\n        },\n        \"50%\": {\n          background: Color.blue[50]\n        },\n        \"100%\": {\n          background: Color.grey[50]\n        }\n      }\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/cancelDeletionDirAdmin/01b_askAge/popup.ls","text":"(function(){\n  return function(onYes){\n    var logAndClose, clickYes, clickNo, div, popup;\n    logAndClose = function(is16){\n      log.log({\n        event: \"clickConfirmAge16\",\n        value: is16\n      });\n      return popup.close();\n    };\n    clickYes = function(){\n      logAndClose(true);\n      return onYes();\n    };\n    clickNo = function(){\n      logAndClose(false);\n      return inc(\"/lib/gui/infoPopup/popup\")({\n        label: T(\"askParents\")\n      });\n    };\n    div = Div().css({\n      margin: \"1em 0\"\n    }).append(inc(\"text/text\")(), inc(\"button/button\")(T(\"yes\"), clickYes), inc(\"button/button\")(T(\"no\"), clickNo));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/5_productInfo/title/title.ls","text":"(function(){\n  return function(page){\n    return Div().css({\n      marginBottom: \"0.8em\",\n      fontWeight: \"bold\"\n    }).html(T(\"hint\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/cancelDeletionDirAdmin/00_shared/linkBack/link.ls","text":"(function(){\n  return function(){\n    return Div().html(inc(\"/lib/gui/link/link\")({\n      label: T(\"back\"),\n      direction: \"left\"\n    }).tap(function(){\n      return startPage({\n        history: -1,\n        animation: \"slideRight\"\n      });\n    }).css({\n      margin: \"0.2em\",\n      padding: \"0.4em\"\n    }));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/checkboxTeacherPrivacy/privacyLink/link.ls","text":"(function(){\n  return function(label){\n    var click;\n    click = function(){\n      return inc(\"popupPrivacy/popup\")();\n    };\n    return inc(\"../link/link\")(label, click);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/checkboxTeacherPrivacy/privacyLink/popupPrivacy/popup.ls","text":"(function(){\n  return function(onYes){\n    var div, popup;\n    div = Div().css({\n      width: \"35em\",\n      margin: \"1em 0\",\n      textAlign: \"left\"\n    }).append(Div().css({\n      fontWeight: \"bold\",\n      textAlign: \"center\"\n    }).html(T(\"antonPrivacy\")), inc(\"/pages/static/privacy/div/div\")());\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/checkboxTeacherPrivacy/termsLink/link.ls","text":"(function(){\n  return function(label){\n    var click;\n    click = function(){\n      return inc(\"popupTerms/popup\")();\n    };\n    return inc(\"../link/link\")(label, click);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/checkboxTeacherPrivacy/termsLink/popupTerms/popup.ls","text":"(function(){\n  return function(onYes){\n    var div, popup;\n    div = Div().css({\n      width: \"35em\",\n      margin: \"1em 0\",\n      textAlign: \"left\"\n    }).append(Div().css({\n      fontWeight: \"bold\",\n      textAlign: \"center\"\n    }).html(T(\"antonTerms\")), inc(\"/pages/static/terms/div/div\")());\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/popupCheckMissing/popup.ls","text":"(function(){\n  return function(){\n    var div, popup;\n    div = Div().css({\n      padding: \"1em\",\n      lineHeight: \"1.5em\"\n    }).append(T(\"agreeToTermsAndPrivacyPolicy\"));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/start.ls","text":"(function(){\n  return function(){\n    if (log.findLast(\"setAcceptPrivacy\") && log.findLast(\"setAcceptTerms\")) {\n      inc(\"../03_email/start\")();\n      return;\n    }\n    return startPage({\n      path: path(\"page\"),\n      animation: \"fadeIn\"\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/03_email/start.ls","text":"(function(){\n  return function(){\n    if (log.findLast(\"setEMail\")) {\n      inc(\"../04_cancelDeletion/start\")();\n      return;\n    }\n    return startPage({\n      path: path(\"page\"),\n      animation: \"slideLeft\"\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"lib/gui/input2/clipboardCopy/copy.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var text;\n      text = o.getSelectedValue();\n      if (window.getSelection().toString() && !text) {\n        return;\n      }\n      return inc(\"/lib/util/clipboard/set\")(text, function(error){\n        if (error) {\n          return inc(\"/lib/gui/toast/toast\")({\n            label: T(\"noClipboard\")\n          });\n        }\n      });\n    };\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/gui/input2/clipboardCut/cut.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var text;\n      text = o.getSelectedValue();\n      inc(\"/lib/util/clipboard/set\")(text, function(error){\n        if (error) {\n          return inc(\"/lib/gui/toast/toast\")({\n            label: T(\"noClipboard\")\n          });\n        }\n      });\n      o.deleteSelection();\n      return o.start();\n    };\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/gui/input2/divChars/divChars.ls","text":"(function(){\n  return function(o){\n    var div;\n    return div = Div().css({\n      display: \"inline-block\",\n      lineHeight: \"inherit\",\n      verticalAlign: \"baseline\"\n    }).appendTo(o.div);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/enable/enable.ls","text":"(function(){\n  return function(o){\n    return function(){\n      o.enabled = true;\n      return o.div.css({\n        cursor: \"text\"\n      });\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/getSelectedValue/getSelectedValue.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var value, i$, ref$, len$, e, v;\n      value = \"\";\n      for (i$ = 0, len$ = (ref$ = o.div.find(\".inputChar.select\")).length; i$ < len$; ++i$) {\n        e = ref$[i$];\n        v = e.getValue();\n        if (v === \"<br>\") {\n          value += \"\\n\";\n        } else {\n          value += v;\n        }\n      }\n      return value;\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/getValue/getValue.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var value, i$, ref$, len$, e, v;\n      value = \"\";\n      for (i$ = 0, len$ = (ref$ = o.div.find(\".inputChar\")).length; i$ < len$; ++i$) {\n        e = ref$[i$];\n        v = e.getValue();\n        if (v === \"<br>\") {\n          value += \"\\n\";\n        } else {\n          value += v;\n        }\n      }\n      return value;\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/createKeys/row/key/key.ls","text":"(function(){\n  return function(key, o){\n    var div, ref$, key$;\n    return div = (typeof (ref$ = o.keys)[key$ = key.value] == 'function' ? ref$[key$](key, o) : void 8) || o.keys.char(key, o);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/createKeys/keys/toggle/key.ls","text":"(function(){\n  return function(key, o){\n    var up, div;\n    up = function(){\n      o.toggleState = o.toggleState === \"main\" ? \"toggle\" : \"main\";\n      return o.start();\n    };\n    div = inc(\"../_div/div\")({\n      o: o,\n      key: key,\n      keyDivHtml: _.replace(key.value, \"toggle\", \"\"),\n      color: \"grey2\",\n      up: up\n    }).css({\n      flex: \"1 0 auto\"\n    });\n    div.keyDiv.css({\n      padding: \"0 0.3em\"\n    });\n    return div;\n  };\n})();","updated":"2022-12-01T11:59:17.355716"},{"path":"lib/offline/offlinePageWithLogging/text/text.ls","text":"(function(){\n  return function(o){\n    return Div().css({\n      padding: \"0.5em 0.5em 1em\",\n      lineHeight: \"1.5em\",\n      margin: \"0 auto\",\n      width: \"30em\",\n      maxWidth: \"90%\"\n    }).html(o.isTechnicalProblem\n      ? T(\"technicalProblemError\")\n      : T(\"offlineError\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/logDeviceStartEvents/projectVersions/calcProjectVersions/calc.ls","text":"(function(){\n  return function(){\n    var i, v, name, p;\n    i = projects.info();\n    v = {};\n    for (name in i) {\n      p = i[name];\n      v[name] = p.versionDate;\n    }\n    return v;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/logDeviceStartEvents/restartOnResume/log.ls","text":"(function(){\n  return function(){\n    var o;\n    o = Store(\"deviceRestartOnResume\");\n    if (!o) {\n      return;\n    }\n    Store.remove(\"deviceRestartOnResume\");\n    return deviceLog.log({\n      event: \"deviceRestartOnResume\",\n      restartedAt: o.restartedAt,\n      idleDuration: o.idleDuration\n    });\n  };\n})();","updated":"2021-04-23T09:51:14.718193"},{"path":"lib/init/logDeviceStartEvents/setEngineVersion/log.ls","text":"(function(){\n  return function(){\n    var e, version;\n    e = deviceLog.findLast(\"deviceSetEngineVersion\");\n    version = engine.clientVersion;\n    if ((e != null ? e.value : void 8) !== version) {\n      return deviceLog.log({\n        event: \"deviceSetEngineVersion\",\n        value: version\n      });\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/logDeviceStartEvents/setRememberUser/log.ls","text":"(function(){\n  return function(){\n    var e, remember, ref$;\n    e = deviceLog.findLast(\"deviceSetRememberUser\");\n    remember = (ref$ = Store(\"deviceRememberUser\")) != null ? ref$ : true;\n    if (!e) {\n      return deviceLog.log({\n        event: \"deviceSetRememberUser\",\n        value: remember\n      });\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/divEditable/_shared/lineCharPosition/calcPosition/calc.ls","text":"(function(){\n  return function(node, offset){\n    var calcNodeLength, getNodeBefore, pos, nodeBefore;\n    if (!node) {\n      return;\n    }\n    calcNodeLength = inc(\"calcNodeLength/calc\");\n    getNodeBefore = inc(\"getNodeBefore/get\");\n    pos = 0;\n    if (node.nodeType === 3) {\n      pos += offset;\n      nodeBefore = getNodeBefore(node);\n      while (nodeBefore) {\n        pos += calcNodeLength(nodeBefore);\n        nodeBefore = getNodeBefore(nodeBefore);\n      }\n      return pos;\n    } else {\n      nodeBefore = node.childNodes[offset - 1] || getNodeBefore(node);\n      while (nodeBefore) {\n        pos += calcNodeLength(nodeBefore);\n        nodeBefore = getNodeBefore(nodeBefore);\n      }\n      return pos;\n    }\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"lib/svg/icon/arrow-left-mini.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m94.8 99.4-7.1 7.1L61.2 80l26.5-26.5 7.1 7.1L75.4 80z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/init/logDeviceStartEvents/setScreenSize/log.ls","text":"(function(){\n  return function(){\n    var e, offset;\n    e = deviceLog.findLast(\"deviceSetScreenSize\");\n    offset = body.offset();\n    if ((e != null ? e.width : void 8) !== offset.width || (e != null ? e.height : void 8) !== offset.height) {\n      return deviceLog.log({\n        event: \"deviceSetScreenSize\",\n        width: offset.width,\n        height: offset.height,\n        devicePixelRatio: window.devicePixelRatio\n      });\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/logDeviceStartEvents/setSourceLevelRound/log.ls","text":"(function(){\n  return function(){\n    var e, value;\n    e = deviceLog.findLast(\"deviceSetSourceLevelRound\");\n    value = Store(\"sourceLevelRound\") || 0;\n    if ((e != null ? e.value : void 8) !== value) {\n      return deviceLog.log({\n        event: \"deviceSetSourceLevelRound\",\n        value: value\n      });\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/logDeviceStartEvents/setUserAgent/log.ls","text":"(function(){\n  return function(){\n    var e, agent;\n    e = deviceLog.findLast(\"deviceSetUserAgent\");\n    agent = navigator.userAgent;\n    if ((e != null ? e.value : void 8) !== agent) {\n      return deviceLog.log({\n        event: \"deviceSetUserAgent\",\n        value: agent\n      });\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/divEditable/onMutation/fixLonelyNodes/fix.ls","text":"(function(){\n  return function(d){\n    var lonelyNodes, sel, lineCharPosition, lineDiv, n, r;\n    d.debug(\"lonelyNodes\");\n    lonelyNodes = _.filter(d.div.childNodes, function(n){\n      return n.tagName !== \"DIV\";\n    });\n    if (lonelyNodes.length === 0) {\n      return;\n    }\n    sel = window.getSelection();\n    lineCharPosition = sel.anchorNode.nodeType === 3 ? sel.anchorOffset : 0;\n    lineDiv = Div();\n    lonelyNodes[0].replaceWith(lineDiv);\n    lineDiv.append(lonelyNodes);\n    n = inc(\"../../_shared/lineCharPosition/getNode/get\")(lineDiv, lineCharPosition);\n    r = document.createRange();\n    r.setStart(n.node, n.offset);\n    sel.removeAllRanges();\n    return sel.addRange(r);\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"lib/gui/popup/close/animation/animation.ls","text":"(function(){\n  return function(o, onDone){\n    o.background.keyframeAnimate({\n      keyframes: {\n        \"0%\": {\n          opacity: 1\n        },\n        \"100%\": {\n          opacity: 0\n        }\n      },\n      duration: 150\n    });\n    return o.popup.keyframeAnimate({\n      keyframes: {\n        \"0%\": {\n          transform: \"scale(1, 1)\"\n        },\n        \"100%\": {\n          transform: \"scale(0.9, 0.9)\"\n        }\n      },\n      duration: 150,\n      onCompleted: onDone\n    });\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"lib/gui/popup/close/close.ls","text":"(function(){\n  return function(o){\n    return function(type, disableCloseAnimation){\n      var ref$, onDone;\n      if (type === \"outside\" && ((ref$ = app.lastPopupInput) != null && ref$.isVisible()) && app.lastPopupInput.getValue() !== \"\") {\n        return;\n      }\n      if (o.isClosing) {\n        return;\n      }\n      o.isClosing = true;\n      onDone = function(){\n        var ref$, ref1$;\n        app.currentPage.popupBottom.empty().hide();\n        app.currentPage.popupWrapper.empty().hide();\n        inc(\"/lib/util/freezeIOSScrollDivs/enable/enable\")();\n        app.currentPopup = undefined;\n        if ((ref$ = app.lastPopupInput) != null) {\n          ref$.stop();\n        }\n        if ((ref1$ = app.lastInput) != null) {\n          ref1$.start();\n        }\n        return typeof o.onClose == 'function' ? o.onClose(type) : void 8;\n      };\n      o.popup.css({\n        pointerEvents: \"none\"\n      });\n      if (o.animationOnClose && o.isStarted && disableCloseAnimation !== true) {\n        return inc(\"animation/animation\")(o, onDone);\n      } else {\n        return onDone();\n      }\n    };\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"lib/svg/icon/bin.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M15 50h130V40H15zM100 25v15h10V15H55v25h10V25zM125 135H35V50H25v95h110V50h-10z\"/>\n  <path d=\"M100 60v65h10V60zM75 60v65h10V60zM50 60v65h10V60z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showResult/row/row.ls","text":"(function(){\n  return function(o){\n    var pds, rowFunction;\n    pds = _.keyBy(inc(\"/data/content/calcPlanDescriptions/calc\")(), \"project\");\n    return rowFunction = function(result, i){\n      var project, pd, onClick, row;\n      project = result.project;\n      pd = pds[project];\n      onClick = function(){\n        body.findFirst(\".searchInput\").stop();\n        o.hideSuggestions();\n        return inc(\"/data/content/setCurrentPlan/set\")(pd.planPath);\n      };\n      return row = result.rowType === \"topic\"\n        ? inc(\"topicRow/row\")(o, pd, onClick, result)\n        : result.rowType === \"plan\"\n          ? inc(\"planRow/row\")(o, i, pd, onClick, result)\n          : result.rowType === \"block\" ? inc(\"blockRow/blockRow\")(o, pd, onClick, result) : void 8;\n    };\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"lib/svg/icon/menu-small.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M35.6 120.4v-10h85v10zM35.6 87.3v-10h85v10zM35.6 54.3v-10h85v10z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/flip-x.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"160\" height=\"160\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <polygon fill=\"#000\" fill-rule=\"nonzero\" points=\"42.291 60.61 35.22 53.539 8.759 80 35.22 106.461 42.291 99.39 22.901 80\"/>\n    <polygon fill=\"#000\" fill-rule=\"nonzero\" points=\"118.209 99.39 125.28 106.461 151.741 80 125.28 53.539 118.209 60.61 137.599 80\"/>\n    <polygon fill=\"#000\" fill-rule=\"nonzero\" points=\"20.5 85 145.004 85 145.004 75 20.5 75\"/>\n    <polygon fill=\"#000\" fill-rule=\"nonzero\" points=\"75 20.5 75 145.004 85 145.004 85 20.5\"/>\n  </g>\n</svg>\n","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/start/login/relogin/01_choose/linkRemove/popup/popup.ls","text":"(function(){\n  return function(page){\n    return inc(\"/lib/gui/confirmPopup/popup\")({\n      label: T(\"removeQuestion\"),\n      noLabel: T(\"cancelButton\"),\n      yesLabel: T(\"yes\"),\n      onConfirm: function(){\n        inc(\"/lib/util/storedUsers/removeUser/remove\")(page.logId);\n        delete window.userLogs[page.logId];\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      }\n    });\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"pages/start/login/relogin/02_form/form/form.ls","text":"(function(){\n  return function(page){\n    return Div({\n      width: \"17em\",\n      maxWidth: \"95%\",\n      margin: \"0 auto\"\n    }).append(page.form = inc(\"/lib/gui/multiform/multiform\")({\n      onSubmit: function(){\n        return inc(\"../submit/submit\")(page);\n      },\n      fields: [\n        {\n          id: \"value\",\n          type: \"input\",\n          isPassword: page.type === \"password\",\n          onChange: function(){\n            return page.form.setValues({\n              error: \"\"\n            });\n          }\n        }, {\n          id: \"error\",\n          type: \"error\",\n          css: {\n            minHeight: \"1.8em\"\n          }\n        }, {\n          id: \"button\",\n          label: T(\"login\"),\n          type: \"button\"\n        }\n      ]\n    }));\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"pages/start/login/relogin/02_form/title/title.ls","text":"(function(){\n  return function(page){\n    return Div().html(page.type === \"loginCode\"\n      ? T(\"pleaseEnterLoginCode\")\n      : T(\"pleaseEnterPw\"));\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"lib/util/setGuiLanguageDevice/set.ls","text":"(function(){\n  return function(language){\n    if (Store(\"deviceGuiLanguage\") === language) {\n      return;\n    }\n    deviceLog.changeEvent({\n      to: {\n        event: \"deviceSetGuiLanguage\",\n        value: language\n      }\n    });\n    return Store(\"deviceGuiLanguage\", language);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/basketball/_t.ls","text":"(function(){\n  return {\n    manualDesktop: \"Klicke mit der Maus oder drücke eine Taste, um die Wurfrichtung zu bestimmen. Lasse dann los, wenn die Stärke den gewünschten Wert erreicht hat, um zu werfen. Wirf möglichst viele Körbe innerhalb einer Minute.\",\n    manual: \"Tippe auf den Bildschirm, um die Wurfrichtung zu bestimmen. Lasse dann los, wenn die Stärke den gewünschten Wert erreicht hat, um zu werfen. Wirf möglichst viele Körbe innerhalb einer Minute.\",\n    title: \"ANTON Sports: Basketball\"\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/updateUrlDescription/init.ls","text":"(function(){\n  return function(pw){\n    return pw.page.updateUrlDescription = function(){\n      var urlDescription, ref$;\n      urlDescription = typeof (ref$ = pw.pageCode).urlDescription == 'function' ? ref$.urlDescription() : void 8;\n      if (!urlDescription) {\n        urlDescription = {\n          title: \"\",\n          metaDescription: \"\",\n          pageUrl: \"\"\n        };\n      }\n      if (!urlDescription.disabled) {\n        return inc(\"/lib/util/browser/setUrlDescription/set\")(urlDescription);\n      }\n    };\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/avatarSuperstar/_t.ls","text":"(function(){\n  return {\n    myAvatars: {\n      de: \"Meine Avatare\",\n      en: \"My Avatars\",\n      fr: \"Mes avatars\",\n      es: \"Mis avatares\",\n      pt: \"Meus avatares\"\n    },\n    newAvatars: {\n      de: \"Neue Avatare\",\n      en: \"New Avatars\",\n      fr: \"Nouveaux avatars\",\n      es: \"Nuevos avatares\",\n      pt: \"Novos avatares\"\n    },\n    popularAvatars: {\n      de: \"Beliebte Avatare\",\n      en: \"Popular Avatars\",\n      fr: \"Avatars populaires\",\n      es: \"Avatares populares\",\n      pt: \"Avatares populares\"\n    },\n    antonFavorites: {\n      de: \"ANTON-Lieblings-Avatare\",\n      en_gb: \"ANTON Favourite Avatars\",\n      en: \"ANTON Favorite Avatars\",\n      fr: \"Les avatars favoris sur ANTON\",\n      es: \"Los avatares favoritos de ANTON\",\n      pt: \"Os avatares preferidos de ANTON\"\n    },\n    manual: {\n      de: \"Schieße ein Foto von deinem Avatar und veröffentliche es in der Galerie. Vielleicht wirst du ja der nächste Avatar-Superstar!\",\n      en: \"Take a picture of your avatar and publish it in the gallery. You might become the next avatar superstar!\",\n      fr: \"Prends une photo de ton avatar et publie-la dans la galerie. Tu pourrais devenir la prochaine superstar des avatars&nbsp;!\",\n      es: \"Toma una foto de tu avatar y publícala en la galería. ¡Podrías convertirte en el siguiente “Avatar superstar”!\",\n      pt: \"Tire uma foto do seu avatar e publique na galeria. Você pode se tornar o próximo avatar superstar!\"\n    }\n  };\n})();","updated":"2021-10-04T14:36:33.789173"},{"path":"pages/static/antonPlus/0_stopDownloadPopup/_t.ls","text":"(function(){\n  return {\n    contineToPlusButton: {\n      de: \"Weiter zu ANTON-&#65279;Plus\",\n      en: \"Continue to ANTON&nbsp;Plus\",\n      fr: \"Découvrir ANTON-&#65279;Plus\",\n      es: \"Descubre ANTON-&#65279;Plus\",\n      pt: \"Descubra ANTON-&#65279;Plus\"\n    },\n    antonPlusNeeded: {\n      de: \"Für diese Funktion wird ANTON-&#65279;Plus benötigt.\",\n      en: \"You need ANTON&nbsp;Plus to use this feature.\",\n      fr: \"Cette fonction est disponible avec-&#65279;Plus\",\n      es: \"Para esta función necesitas tener ANTON-&#65279;Plus\",\n      pt: \"Para utilizar esta função, você precisa ter ANTON-&#65279;Plus.\"\n    }\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/static/pixelPaintImageShared/_t.ls","text":"(function(){\n  return {\n    pixelpaintImage: {\n      de: \"PixelPaint-Bild\",\n      en: \"PixelPaint picture\",\n      fr: \"Dessin PixelPaint\",\n      es: \"Dessin PixelPaint\",\n      pt: \"Imagem Pixel-Paint\"\n    }\n  };\n})();","updated":"2021-10-04T14:36:33.789173"},{"path":"pages/static/privacy/_t.ls","text":"(function(){\n  return {\n    privacy: {\n      de: \"Datenschutz\",\n      en: \"Privacy\",\n      fr: \"Politique de protection des données personnelles\",\n      es: \"Privacidad\",\n      pt: \"Privacidade\"\n    },\n    privacyPolicy: {\n      de: \"Datenschutzbestimmungen\",\n      en: \"Privacy policy\",\n      fr: \"Politique de protection des données personnelles\",\n      es: \"Política de privacidad\",\n      pt: \"Política de privacidade\"\n    },\n    privacyTitle: {\n      de: \"Datenschutz\",\n      en: \"Privacy\",\n      fr: \"Données personnelles\",\n      es: \"Privacidad\",\n      pt: \"Privacidade\"\n    },\n    privacyDescription: {\n      de: \"Alle personenbezogenen Daten werden mit größter Sorgfalt behandelt.\",\n      en_gb: \"All personal data are treated with great care.\",\n      en: \"All personal data are treated with the utmost care.\",\n      fr: \"Toutes les données personnelles sont traitées avec le plus grand soin.\",\n      es: \"Todos los datos proporcionados son tratados con absoluta precaución.\",\n      pt: \"Todos os dados pessoais são tratados com o absoluta precaução.\"\n    },\n    acceptPrivacy: {\n      de: \"Datenschutzbestimmungen zustimmen\",\n      en: \"Agree to the privacy policy\",\n      fr: \"Accepter la politique de protection des données personnelles\",\n      es: \"Aceptar la politica de privacidad\",\n      pt: \"Aceitar a política de privacidade\"\n    },\n    privacyAccepted: {\n      de: \"Datenschutzbestimmungen zugestimmt\",\n      en: \"Agreed to the privacy policy\",\n      fr: \"Politique de protection des données personnelles acceptée\",\n      es: \"Politica de privacidad aceptada\",\n      pt: \"Política de privacidade aceita\"\n    },\n    privacyUrl: {\n      de: \"datenschutz\",\n      en: \"privacy\",\n      fr: \"donnees-personnelles\",\n      es: \"privacidad\",\n      pt: \"privacidade\"\n    }\n  };\n})();","updated":"2021-10-04T14:36:33.789173"},{"path":"lib/init/errorHandler/calcErrorDescription/formatStack/format.ls","text":"(function(){\n  return function(stack){\n    var s, r, i$, len$, a, res$, ref$;\n    if (!stack) {\n      return;\n    }\n    s = stack.toString();\n    r = [[\"at HTMLDivElement.\", \"at \"], [\"at HTMLBodyElement.\", \"at \"], [\"at Object.\", \"at \"], [\"at fn$\", \"\"], [\"$$\", \"\"], [\"$S\", \"/\"], [\"$D\", \".\"], [\"$M\", \"-\"], [\"$B\", \" \"], [\"$P\", \":\"]];\n    for (i$ = 0, len$ = r.length; i$ < len$; ++i$) {\n      a = r[i$];\n      s = s.split(a[0]).join(a[1]);\n    }\n    res$ = [];\n    for (i$ = 0, len$ = (ref$ = s.split(\"\\n\")).length; i$ < len$; ++i$) {\n      s = ref$[i$];\n      res$.push(s.split(\" (eval\")[0].trim());\n    }\n    a = res$;\n    return s = a.join(\"\\n\");\n  };\n})();","updated":"2021-10-04T14:36:33.789173"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/fromHSB.ls","text":"(function(){\n  return function(h, s, b){\n    var i, f, p, q, t, r, g;\n    i = Math.floor(h * 6);\n    f = h * 6 - i;\n    p = b * (1 - s);\n    q = b * (1 - f * s);\n    t = b * (1 - (1 - f) * s);\n    switch (i % 6) {\n    case 0:\n      r = b;\n      g = t;\n      b = p;\n      break;\n    case 1:\n      r = q;\n      g = b;\n      b = p;\n      break;\n    case 2:\n      r = p;\n      g = b;\n      b = t;\n      break;\n    case 3:\n      r = p;\n      g = q;\n      b = b;\n      break;\n    case 4:\n      r = t;\n      g = p;\n      b = b;\n      break;\n    case 5:\n      r = b;\n      g = p;\n      b = q;\n    }\n    return inc(\"fromRGB\")(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255));\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/fromRGB.ls","text":"(function(){\n  return function(r, g, b){\n    r = Math.max(0, Math.min(255, r));\n    g = Math.max(0, Math.min(255, g));\n    b = Math.max(0, Math.min(255, b));\n    return r << 16 | g << 8 | b;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/getBlue.ls","text":"(function(){\n  return function(color){\n    return inc(\"getComponent\")(color, inc(\"components\")().BLUE);\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/getComponent.ls","text":"(function(){\n  return function(color, component){\n    return color >> component & 0xff;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/getComponents.ls","text":"(function(){\n  return function(color){\n    var comps, c;\n    comps = inc(\"components\")();\n    c = {};\n    c[comps.RED] = inc(\"getRed\")();\n    c[comps.GREEN] = inc(\"getGreen\")();\n    c[comps.BLUE] = inc(\"getBlue\")();\n    return c;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/getGreen.ls","text":"(function(){\n  return function(color){\n    return inc(\"getComponent\")(color, inc(\"components\")().GREEN);\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/getRed.ls","text":"(function(){\n  return function(color){\n    return inc(\"getComponent\")(color, inc(\"components\")().RED);\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/toHexString.ls","text":"(function(){\n  return function(color){\n    var c;\n    c = color.toString(16);\n    while (c.length < 6) {\n      c = \"0\" + c;\n    }\n    return c;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Convenience/add.ls","text":"(function(){\n  return function(){\n    return PIXI.Helper.Convenience = {\n      removeDeadSpritesFromArray: inc(\"functions/removeDeadSpritesFromArray\"),\n      isInSceneBounds: inc(\"functions/isInSceneBounds\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"lib/util/compareVersionString/compare.ls","text":"(function(){\n  return function(s1, s2){\n    var segments1, segments2, maxLength, i$, i, diff, ref$;\n    segments1 = _.map(s1.split(\".\"), _.parseInt);\n    segments2 = _.map(s2.split(\".\"), _.parseInt);\n    if (_.find(segments1, _.isNaN) != null || _.find(segments2, _.isNaN) != null) {\n      throw new Error(\"NaN encountered in version string comparison between \" + s1 + \" and \" + s2);\n    }\n    maxLength = Math.max(segments1.length, segments2.length);\n    for (i$ = 0; i$ < maxLength; ++i$) {\n      i = i$;\n      diff = ((ref$ = segments1[i]) != null ? ref$ : 0) - ((ref$ = segments2[i]) != null ? ref$ : 0);\n      if (diff !== 0) {\n        return (diff > 0) - (diff < 0) || +diff;\n      }\n    }\n    return 0;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/darkenColor/parseColor/parse.ls","text":"(function(){\n  return function(div, color){\n    var values, alpha;\n    if (!div.style.color.split(/s+/).join(\"\").toLowerCase()) {\n      debug(color + \" is not a valid color\");\n      return;\n    }\n    color = getComputedStyle(div).color;\n    if (!_.includes(color, \"rgba\")) {\n      values = color.split(\"(\")[1].split(\")\")[0];\n      color = \"rgba(\" + values + \", 1)\";\n    }\n    values = color.match(/[.0-9]+/g);\n    values = _.map(values, function(v){\n      return v.trim() * 1;\n    });\n    alpha = values.pop();\n    return {\n      values: values,\n      alpha: alpha\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadBlob/download.ls","text":"(function(){\n  return function(name, blob){\n    var url, a;\n    url = URL.createObjectURL(blob);\n    a = document.createElement('a');\n    a.href = url;\n    a.download = name;\n    document.body.appendChild(a);\n    a.click();\n    return document.body.removeChild(a);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadManager/completePlan/complete.ls","text":"(function(){\n  return function(manager, id){\n    var p;\n    p = manager.planInfos[id];\n    p.status = \"completed\";\n    p.lastCompletedAt = {\n      completedAt: new Date(),\n      versionDate: p.plan.versionDate,\n      etag: p.plan.etag\n    };\n    deviceLog.log({\n      event: \"deviceDownloadManagerCompleted\",\n      id: p.id,\n      loadedLevels: p.pendingLevelsCompletedTotal,\n      versionDate: p.plan.versionDate,\n      etag: p.plan.etag\n    });\n    return manager.updateDom(id);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadManager/enablePlan/enable.ls","text":"(function(){\n  return function(manager, id){\n    deviceLog.log({\n      event: \"deviceDownloadManagerEnabled\",\n      id: id,\n      value: true\n    });\n    manager.initPlan(id);\n    return manager.preparePlan(id);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/divEditable/cleanupLine/removeEndBR/remove.ls","text":"(function(){\n  return function(d, lineDiv){\n    var el;\n    el = _.last(lineDiv.childNodes);\n    if (el && el.tagName === \"BR\" && lineDiv.childNodes.length > 1) {\n      d.debug(\"remove end BR\");\n      return el.remove();\n    }\n  };\n})();","updated":"2020-12-04T05:56:06.084158"},{"path":"pages/level/afterFinish/pages/antonPlus/page3NewFamily/text1/text1.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      paddingBottom: \"1.5em\"\n    }).html(T(\"text1\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/levelRating/_t.ls","text":"(function(){\n  return {\n    giveFeedback: {\n      de: \"Schreib deine Meinung\",\n      en: \"Give feedback\",\n      fr: \"Écrire un commentaire\",\n      es: \"Escríbenos un comentario\",\n      pt: \"Escreva sua opinião\"\n    },\n    thanksForFeedback: {\n      de: \"Danke für deine Bewertung!\",\n      en: \"Thank you for your feedback!\",\n      fr: \"Merci pour ton message&nbsp;!\",\n      es: \"¡Gracias por tu comentario!\",\n      pt: \"Agradecemos pela sua avaliação!\"\n    },\n    howDidYouLike: {\n      de: \"$1, wie gut hat dir die Übung gefallen?\",\n      en: \"$1, how much did you like this lesson?\",\n      fr: \"$1, est-ce que cet exercice t'a plu&nbsp;?\",\n      es: \"$1, ¿qué te pareció este ejercicio?\",\n      pt: \"$1, o que achou deste exercício?\"\n    },\n    send: {\n      de: \"Abschicken\",\n      en: \"Send\",\n      fr: \"Envoyer\",\n      es: \"Enviar\",\n      pt: \"Enviar\"\n    },\n    writeYourFeedback: {\n      de: \"Schreib uns hier deine Meinung:\",\n      en: \"Write your feedback here:\",\n      fr: \"Écris ton commentaire ici&nbsp;:\",\n      es: \"Escribe aquí tu opinión:\",\n      pt: \"Escreva aqui sua opinião:\"\n    },\n    yourOpinion: {\n      de: \"Deine Meinung\",\n      en: \"Your feedback\",\n      fr: \"Ton commentaire\",\n      es: \"Tu comentario\",\n      pt: \"Seu comentário\"\n    },\n    thanksForReporting: {\n      de: \"Danke für deine Meinung!\",\n      en: \"Thanks for letting us know!\",\n      fr: \"Merci pour ton message&nbsp;!\",\n      es: \"¡Gracias por tu comentario!\",\n      pt: \"Agradecemos pelo seu comentário!\"\n    }\n  };\n})();","updated":"2021-10-12T09:11:02.968152"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_1-3/_t.ls","text":"(function(){\n  return {\n    thanksForRating: {\n      de: \"Vielen Dank für deine Bewertung. Bitte schreib uns, wie wir ANTON verbessern können.\",\n      en: \"Thank you for your rating. Please tell us how we can improve ANTON.\",\n      fr: \"Merci pour ton évaluation. Selon toi, comment pouvons-nous améliorer ANTON&nbsp;?\",\n      es: \"Gracias por tu evaluación ¿Qué nos sugieres mejorar?\",\n      pt: \"Agradecemos pela sua avaliação. Por favor, diga-nos como podemos melhorar ANTON.\"\n    },\n    send: {\n      de: \"Abschicken\",\n      en: \"Send\",\n      fr: \"Envoyer\",\n      es: \"Enviar\",\n      pt: \"Enviar\"\n    }\n  };\n})();","updated":"2021-10-12T09:11:02.968152"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-desktop/_t.ls","text":"(function(){\n  return {\n    thanksRating2: {\n      de: \"Danke für deine Bewertung!<br>Und nun viel Spaß beim Weiterlernen mit&nbsp;ANTON!\",\n      en: \"Thank you for your rating!<br>Keep going, more fun learning awaits!\",\n      fr: \"Merci pour ton évaluation&nbsp;! Continue à apprendre en t'amusant avec ANTON&nbsp;!\",\n      es: \"Gracias por tu evaluación ¡Sigue aprendiendo y divirtiéndote con ANTON!\",\n      pt: \"Agradecemos pela sua avaliação! Continue aprendendo e se divertindo com ANTON!\"\n    }\n  };\n})();","updated":"2021-10-12T09:11:02.968152"},{"path":"pages/level/afterFinish/pages/disabledCoins/_t.ls","text":"(function(){\n  return {\n    text: {\n      de: \"Die Lehrkraft der Gruppe <b>$1</b><br>hat die Münzen für diese Aufgaben abgestellt.\",\n      en: \"The teacher of the group <b>$1</b><br>deactivated the coins for these exercises.\",\n      fr: \"Le·La professeur·e du groupe <b>$1</b><br> a désactivé les pièces pour ces exercices.\",\n      es: \"El/la docente del grupo <b>$1</b><br> desactivó las fichas para este ejercicio.\",\n      pt: \"O(a) professor(a) do grupo <b>$1</b><br> desativou as moedas para este exercício.\"\n    },\n    textFamily: {\n      de: \"Dein Familien-Admin hat die Münzen für diese Aufgaben abgestellt.\",\n      en: \"Your family admin deactivated the coins for these exercises.\",\n      fr: \"L'admin du groupe familial a désactivé les pièces pour ces exercices.\",\n      es: \"El/la administrador/a del grupo desactivó las fichas para este ejercicio.\",\n      pt: \"O(a) administrador(a) do grupo familiar desativou as moedas para este exercício.\"\n    }\n  };\n})();","updated":"2021-10-12T09:11:02.968152"},{"path":"pages/schoolSearch/02_countrySearch/_t.ls","text":"(function(){\n  return {\n    enterSearch: {\n      de: \"Gib deine Suche über die Tastatur ein.\",\n      en: \"Enter your search using the keyboard.\",\n      fr: \"Utilise le clavier pour ta recherche.\",\n      es: \"Ingresa tu búsqueda usando el teclado.\",\n      pt: \"Digite sua busca utilizando o teclado.\"\n    },\n    noCountryFoundWith: {\n      de: \"Es wurde kein Land mit \\\"$1\\\" gefunden.\",\n      en: \"No country found matching \\\"$1\\\".\",\n      fr: \"Aucun pays correspondant à “$1” n'a été trouvé.\",\n      es: \"No se encontró ningún país que corresponda a \\\"$1\\\".\",\n      pt: \"Não foi encontrado nenhum país com \\\"$1\\\".\"\n    },\n    whichCountry: {\n      de: \"In welchem Land liegt deine Schule?\",\n      en: \"Which country is your school in?\",\n      fr: \"Dans quel pays est ton école&nbsp;?\",\n      es: \"¿En qué país está tu escuela?\",\n      pt: \"Em qual país está a sua escola?\"\n    }\n  };\n})();","updated":"2021-10-12T09:11:02.968152"},{"path":"lib/gui/input2/fixedLength/fixedLength.ls","text":"(function(){\n  return function(o){\n    var i;\n    return o.div.append(Div().addClass(\"fixedLengthDiv\").css({\n      height: 0,\n      overflow: \"hidden\",\n      visibility: \"hidden\",\n      pointerEvents: \"none\"\n    }).append((function(){\n      var i$, to$, results$ = [];\n      for (i$ = 1, to$ = o.fixedLength; i$ <= to$; ++i$) {\n        i = i$;\n        results$.push(\"&nbsp;\");\n      }\n      return results$;\n    }())));\n  };\n})();","updated":"2020-11-27T17:00:32.953832"},{"path":"lib/gui/inputEditable/placeholderOverlay/overlay.ls","text":"(function(){\n  return function(i){\n    var p, div, update, overlay;\n    p = i.params.placeholder;\n    if (!p) {\n      return;\n    }\n    div = i.divEditable;\n    update = function(){\n      if (div.isEmpty()) {\n        return overlay.show();\n      } else {\n        return overlay.hide();\n      }\n    };\n    div.bind(\"input\", update);\n    div.bind(\"setValue\", update);\n    return overlay = Div({\n      position: \"absolute\",\n      left: 0,\n      right: 0,\n      top: 0,\n      pointerEvents: \"none\",\n      textAlign: \"left\",\n      lineHeight: i.params.lineHeight,\n      padding: i.params.linePadding,\n      color: Color.grey[400],\n      border: \"1px solid transparent\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      whiteSpace: \"nowrap\"\n    }).html(p);\n  };\n})();","updated":"2020-12-04T16:20:32.269491"},{"path":"lib/gui/divEditable/isEmpty/isEmpty.ls","text":"(function(){\n  return function(d){\n    var ref$, ref1$;\n    if (d.div.childNodes.length > 1) {\n      return false;\n    }\n    return !(((ref$ = d.div.findFirst(\"div\")) != null ? (ref1$ = ref$.firstChild) != null ? ref1$.nodeType : void 8 : void 8) === 3);\n  };\n})();","updated":"2020-12-10T14:10:03.489842"},{"path":"lib/util/fontSize/setFontScale/set.ls","text":"(function(){\n  return function(fontScale){\n    var fontSize;\n    fontScale == null && (fontScale = 1);\n    if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n      deviceLog.log({\n        event: \"deviceSetFontScale\",\n        value: fontScale\n      });\n    }\n    fontSize = fontScale * inc(\"../calcDefaultFontSize/calc\")();\n    return inc(\"../setFontSize/set\")(fontSize);\n  };\n})();","updated":"2021-05-27T13:32:43.850575"},{"path":"pages/level/afterFinish/pages/levelRating/02_feedback/buttonContinue/button.ls","text":"(function(){\n  return function(click){\n    return Button({\n      label: T(\"send\"),\n      action: click,\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\"\n    });\n  };\n})();","updated":"2021-05-27T13:32:43.850575"},{"path":"pages/level/afterFinish/pages/levelRating/02_feedback/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"/addons/topbar2/topbar\")({\n          close: true,\n          title: T(\"yourOpinion\")\n        });\n      },\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      start: function(){\n        var submit, input;\n        submit = function(){\n          var v;\n          v = input.getValue();\n          if (!v) {\n            input.start();\n            return;\n          }\n          page.params.ratingFeedback = v;\n          page.css({\n            pointerEvents: \"none\"\n          });\n          return setTimeout(function(){\n            inc(\"../00_shared/logRating/log\")(page);\n            startPage({\n              history: function(path){\n                return !_.includes(path, \"/level\");\n              }\n            });\n            return inc(\"/lib/gui/toast/toast\")({\n              label: T(\"thanksForReporting\")\n            });\n          }, 300);\n        };\n        page.append(inc(\"text/text\")(), input = inc(\"input/input\")(), inc(\"buttonContinue/button\")(submit));\n        return input.start();\n      }\n    };\n  };\n})();","updated":"2021-05-27T13:32:43.850575"},{"path":"pages/support/help/chat/bottom/bottom.ls","text":"(function(){\n  return function(page){\n    var isMobile, div, iOSTooltipFix;\n    isMobile = !inc(\"/lib/util/isDesktop/isDesktop\")() || deviceLog['var'](\"showScreenKeyboard\");\n    div = Div().css({\n      background: Color.grey[100]\n    }).append(Div().css({\n      flex: \"0 0 auto\",\n      alignItems: \"stretch\",\n      display: \"flex\",\n      backgroundColor: Color.grey[100],\n      width: \"35em\",\n      maxWidth: \"100%\",\n      margin: \"0 auto\",\n      flexDirection: isMobile ? \"column\" : void 8\n    }).append(isMobile ? inc(\"buttonsMobileSendOrDown/buttons\")(page).css({\n      zIndex: 1\n    }) : void 8, iOSTooltipFix = Div().css({\n      flex: \"1 1 auto\",\n      borderTop: \"60px solid rgba(200,20,20, 0)\",\n      transform: \"translateY(-60px)\",\n      marginBottom: \"-60px\"\n    }).append(inc(\"input/input\")(page, isMobile)), !isMobile ? inc(\"buttonDesktopSend/button\")(page) : void 8));\n    return div;\n  };\n})();","updated":"2021-05-27T13:32:43.850575"},{"path":"pages/support/help/chat/bottom/input/input.ls","text":"(function(){\n  return function(page, isMobile){\n    var value, onStart, onStop, cacheText, input, b;\n    value = inc(\"/lib/util/cache/get/get\")(\"helpChatText\") || \"\";\n    onStart = function(){\n      var ref$;\n      return (ref$ = page.downButton) != null ? ref$.show() : void 8;\n    };\n    onStop = function(){\n      var ref$;\n      return (ref$ = page.downButton) != null ? ref$.hide() : void 8;\n    };\n    cacheText = function(){\n      var v;\n      v = input.getValue();\n      return inc(\"/lib/util/cache/set/set\")(\"helpChatText\", v);\n    };\n    input = inc(\"/lib/gui/inputEditable/input\")({\n      value: value,\n      multiline: true,\n      autoCapCorSpelCom: \"sentences on false none\",\n      placeholder: T(\"writeHerePlaceholder\"),\n      lineHeight: \"1.6em\",\n      linePadding: \"0 0.2em\",\n      onStart: onStart,\n      onStop: onStop,\n      maxLength: 5000\n    }).css({\n      flex: \"1 1 auto\",\n      borderLeft: b = \"1px solid \" + Color.grey[300],\n      borderRight: b,\n      borderTop: !isMobile ? b : void 8,\n      backgroundColor: Color.grey[75],\n      minHeight: \"4em\",\n      maxHeight: \"12em\"\n    }).onElementClass(\"onPageFinish\", cacheText);\n    page.input = input;\n    return input;\n  };\n})();","updated":"2021-05-27T13:32:43.850575"},{"path":"addons/navbar/calcCachedTabSize/calc.ls","text":"(function(){\n  return function(items){\n    var c, ref$, s;\n    c = (ref$ = inc(\"/lib/util/cache/get/get\")(\"cachedTabSizes\")) != null\n      ? ref$\n      : {};\n    s = c[body.width() + items.join(\"\")];\n    if (s) {\n      app.lastNavbarTabSize = s;\n      return s;\n    } else {\n      return undefined;\n    }\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/spacer/spacer.ls","text":"(function(){\n  return function(){\n    if (app.navbarPosition === \"top\") {\n      return Div({\n        display: \"flex\",\n        flex: \"1 1 auto\",\n        justifyContent: \"flex-end\",\n        background: Color.grey[150]\n      });\n    }\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/_tab/tap/tap.ls","text":"(function(){\n  return function(div, item){\n    var lastNavCategory;\n    if (typeof vibrate == 'function') {\n      vibrate(VIBRATION_TYPES.selection);\n    }\n    lastNavCategory = app.currentPage.navCategory;\n    item.tap(div);\n    if (item.navCategory === lastNavCategory) {\n      return;\n    }\n    return typeof log != 'undefined' && log !== null ? log.log({\n      event: \"setLastNavCategory\",\n      value: item.navCategory\n    }) : void 8;\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/_tab/title/title.ls","text":"(function(){\n  return function(item, tabSize){\n    if (!item.title || tabSize === \"mini\") {\n      return;\n    }\n    return Div({\n      display: \"flex\",\n      flex: \"0 1 auto\",\n      margin: \"0 0.4em\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      color: item.selected\n        ? Color.blue[500]\n        : Color.grey[800],\n      fontSize: app.navbarPosition === \"top\"\n        ? tabSize === \"normal\" ? \"0.9em\" : \"0.7em\"\n        : tabSize === \"normal\" ? \"0.9em\" : \"0.7em\"\n    }).html(item.title);\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/content/item.ls","text":"(function(){\n  return function(tabSize){\n    var c;\n    return {\n      navCategory: c = \"content\",\n      title: T(\"subjectsTitle\"),\n      icon: path(\"/lib/svg/shape/book.svg\"),\n      tap: function(){\n        return startPage({\n          navCategory: c,\n          onNavCategoryNotFound: function(){\n            return inc(\"/pages/content/start\")();\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/games/item.ls","text":"(function(){\n  return function(){\n    var c;\n    return {\n      navCategory: c = \"games\",\n      title: T(\"gamesTitle\"),\n      icon: path(\"/lib/svg/shape/games.svg\"),\n      tap: function(){\n        return startPage({\n          navCategory: c,\n          onNavCategoryNotFound: function(){\n            return startPage({\n              path: path(\"/pages/games/01_gamesList/page\"),\n              animation: \"fadeIn\"\n            });\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/more/moreMenu/background/background.ls","text":"(function(){\n  return function(){\n    var div;\n    return div = Div({\n      position: \"fixed\",\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0,\n      zIndex: 10\n    }).tap({\n      up: function(){\n        return div.parent().remove();\n      },\n      animation: \"none\"\n    }).css({\n      cursor: \"default\"\n    });\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/more/moreMenu/slideUp/row/_setCustomNavbarItems/set.ls","text":"(function(){\n  return function(bar){\n    var newItems, i$, ref$, len$, el, that, ref1$, item;\n    newItems = [];\n    for (i$ = 0, len$ = (ref$ = bar.childrenAll()).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      if (that = (ref1$ = el.item) != null ? ref1$.navCategory : void 8) {\n        newItems.push(that);\n      }\n    }\n    for (i$ = 0, len$ = (ref$ = bar.items).length; i$ < len$; ++i$) {\n      item = ref$[i$];\n      if (!in$(item, newItems)) {\n        newItems.push(item);\n      }\n    }\n    return inc(\"/lib/util/cache/set/set\")(\"navbarCustomItems\", newItems);\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/more/moreMenu/slideUp/row/tapSimple/tap.ls","text":"(function(){\n  return function(div, moreDiv){\n    div.offsetSave();\n    div.closest(\".moreMenu\").remove();\n    div.css({\n      background: \"\"\n    });\n    return div.item.tap();\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/more/moreMenu/slideUp/row/tapSmart1/tap.ls","text":"(function(){\n  return function(div, moreDiv){\n    var totalItems;\n    div.offsetSave();\n    div.closest(\".moreMenu\").remove();\n    div.css({\n      background: \"\"\n    });\n    totalItems = _.indexOf(div.item.barDiv.items, \"more\") + 1;\n    if (totalItems < 4) {\n      moreDiv.before(div);\n    } else {\n      moreDiv.previousSibling.replaceWith(div);\n    }\n    div.offsetAnimate(300);\n    inc(\"../_setCustomNavbarItems/set\")(div.closest(\".bar\"));\n    return setTimeout(div.item.tap, 300);\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/more/moreMenu/slideUp/slideUp.ls","text":"(function(){\n  return function(moreDiv){\n    var moreItems, isTop, item;\n    moreItems = moreDiv.item.moreItems;\n    isTop = app.navbarPosition === \"top\";\n    return Div({\n      position: \"absolute\",\n      left: \"-3em\",\n      right: \"-3em\",\n      zIndex: 11,\n      display: \"flex\",\n      pointerEvents: \"none\"\n    }).css(isTop\n      ? {\n        top: moreDiv.height() - 2 + \"px\"\n      }\n      : {\n        bottom: \"-2px\"\n      }).html(Div({\n      background: Color.grey[150],\n      minWidth: moreDiv.height() + \"px\",\n      pointerEvents: \"auto\",\n      border: \"1px solid \" + Color.grey[300]\n    }).keyframeAnimate({\n      duration: 200,\n      keyframes: {\n        \"0%\": {\n          transform: isTop ? \"translateY(-100%)\" : \"translateY(100%)\"\n        },\n        \"100%\": {\n          transform: \"translateY(0%)\"\n        }\n      }\n    }).html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = moreItems).length; i$ < len$; ++i$) {\n        item = ref$[i$];\n        results$.push(inc(\"row/row\")(item, moreDiv));\n      }\n      return results$;\n    }())));\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/schoolAdmin/item.ls","text":"(function(){\n  return function(tabSize){\n    var c;\n    return {\n      navCategory: c = \"schoolAdmin\",\n      title: T(\"schoolTitle\"),\n      icon: path(\"/lib/svg/shape/school.svg\"),\n      tap: function(){\n        return inc(\"/pages/schoolAdmin/start\")();\n      }\n    };\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/search/item.ls","text":"(function(){\n  return function(){\n    var c;\n    return {\n      navCategory: c = \"search\",\n      title: T(\"search\"),\n      icon: path(\"/lib/svg/shape/search.svg\"),\n      tap: function(){\n        return startPage({\n          navCategory: c,\n          onNavCategoryNotFound: function(){\n            return inc(\"/pages/search/start\")();\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tab/tab.ls","text":"(function(){\n  return function(item, barDiv){\n    var i;\n    i = inc(item + \"/item\")(barDiv);\n    i.tabSize = barDiv.tabSize;\n    i.barDiv = barDiv;\n    i.item = item;\n    return inc(\"_tab/tab\")(i, barDiv);\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/tabs/tabs.ls","text":"(function(){\n  return function(barDiv){\n    var tabs, i$, ref$, len$, item;\n    tabs = [];\n    for (i$ = 0, len$ = (ref$ = barDiv.items).length; i$ < len$; ++i$) {\n      item = ref$[i$];\n      tabs.push(inc(\"tab/tab\")(item, barDiv));\n      if (item === \"more\") {\n        break;\n      }\n    }\n    return tabs;\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/_menu/items/animate/animate.ls","text":"(function(){\n  return function(div){\n    return div.keyframeAnimate({\n      duration: 200,\n      keyframes: app.navbarPosition === \"top\"\n        ? {\n          \"0%\": {\n            transform: \"translateY(-20px)\",\n            opacity: 0\n          },\n          \"70%\": {\n            transform: \"translateY(3px)\",\n            opacity: 1\n          },\n          \"100%\": {\n            transform: \"translateY(0px)\",\n            opacity: 1\n          }\n        }\n        : {\n          \"0%\": {\n            transform: \"translateY(20px)\",\n            opacity: 0\n          },\n          \"70%\": {\n            transform: \"translateY(-3px)\",\n            opacity: 1\n          },\n          \"100%\": {\n            transform: \"translateY(0px)\",\n            opacity: 1\n          }\n        }\n    });\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/_menu/items/corner/corner.ls","text":"(function(){\n  return function(o){\n    return o.corner = Div().css({\n      position: \"absolute\",\n      top: \"-7px\",\n      marginLeft: \"-7px\",\n      left: \"0px\",\n      width: \"14px\",\n      height: \"14px\",\n      transform: \"rotate(45deg)\",\n      backgroundColor: \"white\"\n    });\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/_menu/items/updateMaxHeight/update.ls","text":"(function(){\n  return function(div2){\n    var h, ref$, ref1$, ref2$;\n    h = body.height() - ((ref$ = (ref1$ = body.findFirst(\".navBottom\")) != null ? ref1$.height() : void 8) != null ? ref$ : 0) - ((ref$ = (ref2$ = body.findFirst(\".navTop\")) != null ? ref2$.height() : void 8) != null ? ref$ : 0);\n    return div2.css({\n      maxHeight: h * 0.9 + \"px\"\n    });\n  };\n})();","updated":"2023-11-21T09:42:30.396932"},{"path":"addons/navbar/bar/user/user/avatar/avatar.ls","text":"(function(){\n  return function(userDescription, tabSize){\n    return Div({\n      display: \"flex\",\n      flex: \"0 0 auto\",\n      height: \"1em\"\n    }).html(inc(\"avatar/avatar\")(userDescription, tabSize), inc(\"badge/badge\")(tabSize), inc(\"alert/alert\")(userDescription));\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/avatar/avatar/avatar.ls","text":"(function(){\n  return function(ud, tapSize){\n    return inc(\"/lib/gui/avatar/avatar\")(ud).css({\n      borderRadius: \"999px\",\n      margin: \"0 0.2em\"\n    }).css(tapSize === \"normal\"\n      ? {\n        width: \"1.4em\",\n        height: \"1.4em\",\n        marginTop: \"-0.3em\"\n      }\n      : {\n        width: \"1.2em\",\n        height: \"1.2em\",\n        marginTop: \"-0.26em\"\n      });\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/avatar/badge/calcBadgeNumber/oldAvatar/oldAvatar.ls","text":"(function(){\n  return function(){\n    var d, ref$;\n    d = inc(\"/data/user/calcUserDescription/calc\")();\n    if ((d != null ? (ref$ = d.avatar) != null ? ref$.version : void 8 : void 8) !== 2) {\n      return 1;\n    } else {\n      return 0;\n    }\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/header/header.ls","text":"(function(){\n  return function(o){\n    var userDescription;\n    userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    return Div().css({\n      flex: \"0 0 auto\",\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      padding: \"0.7em 0.4em 0.7em\",\n      borderBottom: \"1px solid \" + Color.grey[200],\n      backgroundColor: Color.grey[100]\n    }).append(inc(\"avatar/avatar\")(userDescription), inc(\"details/details\")(userDescription)).tap(function(){\n      return startPage({\n        path: path(\"/../app01-settings/page\"),\n        animation: \"slideUp\"\n      });\n    });\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/debugItems/spinnerOverlay/overlay.ls","text":"(function(){\n  return function(close){\n    var overlay, spinnerDiv;\n    overlay = Div().css({\n      display: \"flex\",\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0,\n      backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n      pointerEvents: \"auto\"\n    }).appendTo(body).append(spinnerDiv = Div().css({\n      backgroundColor: \"rgba(0, 0, 0, 0.3)\",\n      borderRadius: \"0.5em\",\n      padding: \"1em\"\n    }).append(inc(\"/lib/gui/spinner/spinner\")({\n      color: \"white\"\n    }).css({\n      width: \"2em\",\n      height: \"2em\"\n    })).hide()).tap({\n      down: function(){\n        overlay.remove();\n        return close();\n      }\n    });\n    if (!app.currentPopup) {\n      overlay.fadeIn(500);\n    }\n    setTimeout(function(){\n      return spinnerDiv.fadeIn(500);\n    }, 1000);\n    return overlay;\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/header/avatar/avatar.ls","text":"(function(){\n  return function(d){\n    return Div().append(inc(\"/lib/gui/avatar/avatar\")(d, \"half\").css({\n      width: \"4em\",\n      height: \"4em\",\n      flex: \"0 0 auto\",\n      marginRight: \"0.4em\",\n      borderRadius: \"999px\"\n    }), inc(\"plusIcon/icon\")(d));\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/items/itemHelp/item.ls","text":"(function(){\n  return function(){\n    return {\n      label: T(\"help\"),\n      icon: path(\"/lib/svg/shape/help.svg\"),\n      click: function(){\n        return startPage({\n          path: path(\"/pages/support/help/faqList/page\"),\n          animation: \"slideUp\"\n        });\n      },\n      badge: function(){\n        return inc(\"badge/badge\")();\n      }\n    };\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/items/itemNews/item.ls","text":"(function(){\n  return function(){\n    return {\n      label: T(\"antonNews\"),\n      icon: path(\"/lib/svg/shape/megaphone.svg\"),\n      click: function(){\n        return startPage({\n          path: path(\"/pages/support/news/page\"),\n          animation: \"slideUp\"\n        });\n      },\n      badge: function(){\n        return inc(\"badge/badge\")();\n      }\n    };\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/items/itemPlusVersion/logPromo/log.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/util/logPromo/log\")({\n      event: \"promoPlus_userMenu_click\",\n      isReferrer: true\n    });\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/items/itemSchoolAdmin/item.ls","text":"(function(){\n  return function(){\n    var sds;\n    sds = inc(\"/data/school/calcSchoolDescriptions/calc\")();\n    if (!_.find(sds, function(sd){\n      return (sd != null ? sd.isAdmin : void 8) && sd.hasDirAccess;\n    })) {\n      return;\n    }\n    return {\n      label: T(\"schoolAdmin\"),\n      icon: path(\"/lib/svg/shape/school.svg\"),\n      click: function(){\n        inc(\"/lib/util/cache/set/set\")(\"showSchoolTab\", true);\n        return inc(\"/pages/schoolAdmin/start\")();\n      }\n    };\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/items/itemSettings/badge/calcBadgeNumber/calc.ls","text":"(function(){\n  return function(){\n    var d, ref$;\n    d = inc(\"/data/user/calcUserDescription/calc\")();\n    if (d != null && d.markForDelete) {\n      return 1;\n    } else if ((d != null ? (ref$ = d.avatar) != null ? ref$.version : void 8 : void 8) !== 2) {\n      return 1;\n    } else {\n      return 0;\n    }\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/line/line.ls","text":"(function(){\n  return function(){\n    return Div({\n      position: \"absolute\",\n      left: 0,\n      top: \"17%\",\n      bottom: \"17%\",\n      borderLeft: \"1px solid \" + Color.grey[300]\n    });\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/bar/user/user/title/title.ls","text":"(function(){\n  return function(userDescription, tabSize){\n    if (tabSize === \"mini\") {\n      return;\n    }\n    return Div({\n      flex: \"0 1 auto\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      color: Color.grey[800],\n      maxWidth: \"calc(var(--screenWidth) * 0.20)\",\n      whiteSpace: \"nowrap\",\n      padding: tabSize === \"normal\" ? \"0 0.8em 0 0\" : \"0 0.8em\",\n      fontSize: app.navbarPosition === \"top\"\n        ? tabSize === \"normal\" ? \"0.9em\" : \"0.7em\"\n        : tabSize === \"normal\" ? \"0.9em\" : \"0.7em\"\n    }).secureHtml(userDescription.displayName);\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"addons/navbar/decideBar/decide.ls","text":"(function(){\n  return function(div){\n    var bars, i$, len$, b, selectedBar, c, ref$, cacheId, b2, results$ = [];\n    bars = div.childrenAll();\n    for (i$ = 0, len$ = bars.length; i$ < len$; ++i$) {\n      b = bars[i$];\n      if (!inc(\"isTextEllipsed/is\")(b)) {\n        break;\n      }\n    }\n    selectedBar = b;\n    c = (ref$ = inc(\"/lib/util/cache/get/get\")(\"cachedTabSizes\")) != null\n      ? ref$\n      : {};\n    cacheId = body.width() + selectedBar.items.join(\"\");\n    c[cacheId] = b.tabSize;\n    inc(\"/lib/util/cache/set/set\")(\"cachedTabSizes\", c);\n    app.lastNavbarTabSize = b.tabSize;\n    for (i$ = 0, len$ = bars.length; i$ < len$; ++i$) {\n      b2 = bars[i$];\n      if (b2 === b) {\n        results$.push(b2.css({\n          opacity: 1,\n          pointerEvents: \"auto\"\n        }));\n      } else {\n        results$.push(b2.remove());\n      }\n    }\n    return results$;\n  };\n})();","updated":"2021-10-13T10:45:27.638904"},{"path":"lib/gui/input2/externalKeyboard/externalKeyboard.ls","text":"(function(){\n  return function(o){\n    var enableInput;\n    enableInput = inc(\"_calcEnableInput/calc\")();\n    return {\n      start: function(){\n        var listener;\n        return o.externalKeyboardWrapperDiv = Div({\n          position: \"fixed\",\n          top: \"-1000px\"\n        }).html(listener = enableInput\n          ? inc(\"hiddenInput/hiddenInput\")(o)\n          : inc(\"keyDownDiv/keyDownDiv\")(o)).onDomAppend(function(){\n          return inc(\"_onFrame/onFrame\")(listener);\n        }).appendTo(body);\n      },\n      stop: function(){\n        return o.externalKeyboardWrapperDiv.remove();\n      }\n    };\n  };\n})();","updated":"2021-10-13T13:13:13.39846"},{"path":"lib/gui/input2/div/div.ls","text":"(function(){\n  return function(o){\n    return Div().addClass(\"input\").css({\n      display: \"inline-block\",\n      backgroundColor: Color.grey[100],\n      lineHeight: \"inherit\",\n      minWidth: \"2em\",\n      textAlign: o.textAlign,\n      maxHeight: o.isDesktop ? \"40vh\" : \"25vh\",\n      cursor: o.enabled ? \"text\" : void 8\n    }).css(o.multiline\n      ? {\n        whiteSpace: \"pre-wrap\",\n        overflowY: \"auto\",\n        overflowX: \"hidden\",\n        padding: \"0.5em\"\n      }\n      : {\n        whiteSpace: \"pre\",\n        padding: \"0.5em 0.7em 0.5em 0.5em\"\n      }).heapInfo(\"input2\").onDomRemove(function(){\n      var ref$;\n      return (ref$ = o.externalKeyboardWrapperDiv) != null ? ref$.remove() : void 8;\n    });\n  };\n})();","updated":"2021-10-13T13:13:13.39846"},{"path":"lib/gui/input2/externalKeyboard/keyDownDiv/keyDownDiv.ls","text":"(function(){\n  return function(o){\n    var onKeyDown;\n    onKeyDown = function(e){\n      var functionKey;\n      if (e.key == null) {\n        return;\n      }\n      functionKey = inc(\"../_calcFunctionKey/calc\")(e, o);\n      if (functionKey) {\n        o.onKey(functionKey, true);\n      } else if (e.key.length === 1) {\n        o.onKey(e.key, false);\n      }\n      return e.preventDefault();\n    };\n    return Div({\n      pointerEvents: \"none\"\n    }).attr({\n      tabindex: 0\n    }).bind(\"keydown\", onKeyDown);\n  };\n})();","updated":"2021-10-13T13:13:13.39846"},{"path":"addons/navbar/navbar.ls","text":"(function(){\n  return function(){\n    var bar, items, cachedTabSize, div, that;\n    app.lastNavbarTabSize == null && (app.lastNavbarTabSize = \"normal\");\n    bar = inc(\"bar/bar\");\n    items = inc(\"items/items\")();\n    cachedTabSize = inc(\"calcCachedTabSize/calc\")(items);\n    return div = Div({\n      height: \"2.7em\"\n    }).addClass(\"androidBackCloseApp\").html((that = cachedTabSize)\n      ? bar(items, that)\n      : [bar(items, \"normal\"), bar(items, \"small\"), bar(items, \"mini\")]).onDomAppend(function(){\n      if (!cachedTabSize) {\n        return inc(\"decideBar/decide\")(div);\n      }\n    }).onWindowResize(function(){\n      var f;\n      f = function(){\n        if (body.width() !== body.findFirst(\".pageWrapper\").width()) {\n          return requestAnimationFrame(f);\n        } else if (div.isVisible()) {\n          return div.replaceWith(inc(THISFILE)());\n        }\n      };\n      return f();\n    });\n  };\n})();","updated":"2021-10-13T13:27:15.677838"},{"path":"pages/support/help/chat/list/calcData/calc.ls","text":"(function(){\n  return function(page){\n    var data, lastDate, i$, ref$, len$, i, m, date, ref1$;\n    data = [];\n    lastDate = \"\";\n    data.push({\n      type: \"space\"\n    });\n    for (i$ = 0, len$ = (ref$ = page.messages).length; i$ < len$; ++i$) {\n      i = i$;\n      m = ref$[i$];\n      date = (ref1$ = m.messageAt) != null ? ref1$.substr(0, 10) : void 8;\n      if (date && date !== lastDate) {\n        lastDate = date;\n        data.push({\n          type: \"date\",\n          date: date\n        });\n      }\n      data.push(m);\n    }\n    data.push({\n      type: \"space\"\n    });\n    return data;\n  };\n})();","updated":"2020-12-09T09:34:04.864482"},{"path":"pages/support/help/chat/list/row/message/center/text/text.ls","text":"(function(){\n  return function(message){\n    return Div().secureHtml(message.message);\n  };\n})();","updated":"2020-12-09T09:34:04.864482"},{"path":"pages/support/help/chat/list/row/message/center/unreadStar/setReadAt/set.ls","text":"(function(){\n  return function(message){\n    var e;\n    e = message;\n    log.log({\n      event: \"supportChat\",\n      from: e.from,\n      fromShort: e.fromShort,\n      messageAt: e.messageAt,\n      message: e.message,\n      readAt: new Date().toISOString()\n    });\n    return log.deleteEvent(e);\n  };\n})();","updated":"2020-12-09T09:34:04.864482"},{"path":"pages/support/help/chat/list/row/message/corner/corner.ls","text":"(function(){\n  return function(message){\n    return Div().css({\n      flex: \"0 0 auto\",\n      width: \"0.3em\"\n    }).append(Div().css({\n      width: \"0.7em\",\n      height: \"0.7em\",\n      transform: \"rotate(45deg)\",\n      marginTop: \"0.5em\",\n      border: message.from === \"support\"\n        ? \"1px solid \" + Color.grey[200]\n        : \"1px solid \" + Color.grey[300],\n      borderRadius: \"3px\"\n    }).css(message.from === \"support\"\n      ? {\n        marginRight: \"-0.4em\",\n        backgroundColor: Color.grey[75]\n      }\n      : {\n        marginLeft: \"-0.4em\",\n        backgroundColor: Color.grey[150]\n      }), Div().css({\n      position: \"absolute\",\n      top: 0,\n      left: message.from === \"support\" ? \"1px\" : void 8,\n      right: message.from !== \"support\" ? \"1px\" : void 8,\n      width: \"0.7em\",\n      height: \"0.7em\",\n      transform: \"rotate(45deg)\",\n      marginTop: \"0.5em\",\n      borderRadius: \"3px\",\n      boxSizing: \"content-box\",\n      zIndex: 1\n    }).css(message.from === \"support\"\n      ? {\n        marginRight: \"-0.4em\",\n        backgroundColor: Color.grey[75]\n      }\n      : {\n        marginLeft: \"-0.4em\",\n        backgroundColor: Color.grey[150]\n      }));\n  };\n})();","updated":"2020-12-09T09:34:04.864482"},{"path":"pages/support/help/chat/list/row/message/row.ls","text":"(function(){\n  return function(page, message){\n    return Div({\n      width: \"100%\"\n    }).append(Div({\n      display: \"flex\",\n      padding: \"0.4em 0\",\n      maxWidth: \"35em\",\n      margin: \"0 auto\",\n      alignItems: \"flex-start\",\n      justifyContent: \"flex-start\",\n      flexDirection: message.from === \"support\" ? \"row\" : \"row-reverse\"\n    }).html(inc(\"avatar/avatar\")(page, message), inc(\"corner/corner\")(message), inc(\"center/center\")(message), inc(\"space/space\")(message)));\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/chat/list/row/message/space/space.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      flex: \"0 1 auto\",\n      width: \"3em\",\n      minWidth: \"3em\"\n    });\n  };\n})();","updated":"2020-12-09T09:34:04.864482"},{"path":"pages/support/help/chat/list/row/space/row.ls","text":"(function(){\n  return function(){\n    return Div({\n      width: \"100%\",\n      height: \"2em\"\n    });\n  };\n})();","updated":"2020-12-09T09:34:04.864482"},{"path":"pages/support/help/chat/onNewLogEvents/calcInsertPosition/calc.ls","text":"(function(){\n  return function(page, e){\n    var data, i$, i, d;\n    data = page.data;\n    if (data.length === 3) {\n      return 3;\n    }\n    for (i$ = data.length - 1; i$ >= 0; --i$) {\n      i = i$;\n      d = data[i];\n      if (d.messageAt === e.messageAt) {\n        page.list.removeRow(i);\n        return i;\n      }\n      if (d.messageAt < e.messageAt) {\n        return i + 1;\n      }\n    }\n  };\n})();","updated":"2020-12-09T09:34:04.864482"},{"path":"pages/support/help/chat/bottom/buttonsMobileSendOrDown/sendButton/button.ls","text":"(function(){\n  return function(page, isIos){\n    return inc(\"../../_shared/sendButton/button\")(page, isIos).css({\n      padding: \"0.3em\"\n    });\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/chat/bottom/_shared/sendButton/send/send.ls","text":"(function(){\n  return function(page){\n    var message, e;\n    message = page.input.getValue();\n    message = _.trim(message);\n    if (message.length === 0) {\n      return;\n    }\n    inc(\"/lib/util/cache/set/set\")(\"helpChatText\", \"\");\n    e = {\n      event: \"supportChat\",\n      from: \"user\",\n      messageAt: new Date().toISOString(),\n      message: message\n    };\n    log.log(e);\n    inc(\"checkOnline/check\")();\n    page.onNewLogEvents([e]);\n    return page.input.setValue(\"\");\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/schoolSearch/02_countrySearch/notFound/notFound.ls","text":"(function(){\n  return function(page){\n    return Div({\n      padding: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"noCountryFoundWith\", page.params.search));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/05_createNewSchool/title/title.ls","text":"(function(){\n  return function(){\n    return Div({\n      padding: \"0 0 0.8em\",\n      margin: \"0 auto\",\n      width: \"30em\",\n      maxWidth: \"90%\"\n    }).html(T(\"enterSchoolNameAndLocation\"));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/01_countrySelect/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"/addons/topbar2/topbar\")({\n          close: true,\n          title: T(\"whichCountry\")\n        });\n      },\n      start: function(){\n        return page.html(inc(\"buttons/buttons\")());\n      }\n    };\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/00_shared/calcCityLabel/calc.ls","text":"(function(){\n  return function(city){\n    var a, stateCode;\n    if (!city) {\n      return;\n    }\n    a = city.split(\"[[stateCode=\");\n    if (a.length === 1) {\n      return city;\n    }\n    stateCode = a[1].split(\"]]\")[0];\n    return a[0] + \", \" + stateCode;\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/02_countrySearch/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      title: T(\"whichCountry\")\n    }).append(inc(\"../../00_shared/topSearchInput/input\")(page));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/03_citySearch/notFound/notFound.ls","text":"(function(){\n  return function(page){\n    return Div({\n      padding: \"1em\",\n      lineHeight: \"1.5em\",\n      margin: \"0 auto\",\n      width: \"30em\",\n      maxWidth: \"90%\"\n    }).html(T(\"noCityFoundWith\", page.params.search), \"<br><br>\", inc(\"../createNewSchoolLink/link\")(page));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/02_countrySearch/list/row/name/name.ls","text":"(function(){\n  return function(c){\n    return Div({\n      flex: \"1 1 auto\",\n      textAlign: \"left\"\n    }).html(c.countryName);\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/02_countrySearch/list/row/row.ls","text":"(function(){\n  return function(page){\n    return function(country){\n      var tap, b;\n      tap = function(){\n        return startPage({\n          path: path(\"../../../03_citySearch/page\"),\n          animation: \"slideLeft\",\n          params: {\n            countryCode: country.countryCode,\n            countryName: country.countryName\n          }\n        });\n      };\n      return Div({\n        display: \"flex\"\n      }).html(Div({\n        display: \"flex\",\n        padding: \"1.2em 0.5em\",\n        textAlign: \"left\",\n        maxWidth: \"100%\",\n        width: \"35em\",\n        margin: \"-2px auto\",\n        borderTop: b = \"1px solid \" + Color.grey[200],\n        borderBottom: b,\n        background: \"white\"\n      }).html(inc(\"name/name\")(country), inc(\"arrowIcon/icon\")()).tap(tap));\n    };\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/02_countrySearch/load/load.ls","text":"(function(){\n  return function(p){\n    var page;\n    page = p.page;\n    page.html(inc(\"/lib/gui/spinner/spinner\")());\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/schoolSearch/searchCountry/search\"),\n      params: {\n        search: page.params.search,\n        guiLanguage: engine.guiLanguage\n      },\n      requiredVisibleDiv: page,\n      onError: function(){\n        return page.html(T(\"errorMessage\"));\n      },\n      onOffline: function(){\n        return page.html(T(\"offlineError\"));\n      },\n      onCompleted: function(result){\n        var countries;\n        countries = result.countries || [];\n        return p.onLoaded(countries);\n      }\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/02_countrySearch/startText/text.ls","text":"(function(){\n  return function(page){\n    return Div({\n      padding: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"enterSearch\"));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/03_citySearch/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      backLabel: page.params.countryName,\n      title: T(\"whichCity\"),\n      topRightCustom: function(){\n        return inc(\"../../00_shared/topbarAbort/abort\")();\n      }\n    }).append(inc(\"../../00_shared/topSearchInput/input\")(page));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/03_citySearch/startText/text.ls","text":"(function(){\n  return function(page){\n    return Div({\n      padding: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"enterSearch\"));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/03_citySearch/createNewSchoolLink/link.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      var p;\n      p = page.params;\n      return startPage({\n        path: path(\"../../05_createNewSchool/page\"),\n        animation: \"slideLeft\",\n        params: {\n          countryCode: p.countryCode,\n          countryName: p.countryName,\n          city: p.search\n        }\n      });\n    };\n    return Div({\n      padding: \"0.5em\",\n      textAlign: \"center\",\n      color: Color.blue[700]\n    }).html(T(\"cantFindCity\")).tap(tap);\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/04_schoolSearch/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      backLabel: inc(\"../../00_shared/calcCityLabel/calc\")(page.params.city),\n      title: T(\"selectSchool\"),\n      topRightCustom: function(){\n        return inc(\"../../00_shared/topbarAbort/abort\")();\n      }\n    }).append(inc(\"../../00_shared/topSearchInput/input\")(page));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/03_citySearch/list/row/name/name.ls","text":"(function(){\n  return function(city){\n    var label;\n    label = inc(\"../../../../00_shared/calcCityLabel/calc\")(city);\n    return Div({\n      flex: \"1 1 auto\",\n      textAlign: \"left\"\n    }).html(label);\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/03_citySearch/load/load.ls","text":"(function(){\n  return function(p){\n    var page;\n    page = p.page;\n    page.html(inc(\"/lib/gui/spinner/spinner\")());\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/schoolSearch/searchCity/query\"),\n      params: {\n        search: page.params.search,\n        countryCode: page.params.countryCode,\n        guiLanguage: engine.guiLanguage\n      },\n      requiredVisibleDiv: page,\n      onError: function(){\n        return page.html(T(\"errorMessage\"));\n      },\n      onOffline: function(){\n        return page.html(T(\"offlineError\"));\n      },\n      onCompleted: function(result){\n        var cities;\n        cities = result.cities || [];\n        return p.onLoaded(cities);\n      }\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/03_citySearch/list/row/row.ls","text":"(function(){\n  return function(page){\n    return function(city){\n      var tap, b;\n      tap = function(){\n        return startPage({\n          path: path(\"../../../04_schoolSearch/page\"),\n          animation: \"slideLeft\",\n          params: {\n            countryCode: page.params.countryCode,\n            countryName: page.params.countryName,\n            city: city\n          }\n        });\n      };\n      return Div({\n        display: \"flex\"\n      }).html(Div({\n        display: \"flex\",\n        padding: \"1.2em 0.5em\",\n        textAlign: \"left\",\n        maxWidth: \"100%\",\n        width: \"35em\",\n        margin: \"-2px auto\",\n        borderTop: b = \"1px solid \" + Color.grey[200],\n        borderBottom: b,\n        background: \"white\"\n      }).html(inc(\"name/name\")(city), inc(\"arrowIcon/icon\")()).tap(tap));\n    };\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/04_schoolSearch/createNewSchoolLink/link.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      var p;\n      p = page.params;\n      return startPage({\n        path: path(\"../../05_createNewSchool/page\"),\n        animation: \"slideLeft\",\n        params: {\n          countryCode: p.countryCode,\n          countryName: p.countryName,\n          city: p.city,\n          name: p.search\n        }\n      });\n    };\n    return Div({\n      padding: \"0.5em\",\n      textAlign: \"center\",\n      color: Color.blue[700]\n    }).html(T(\"cantFindSchool\")).tap(tap);\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/04_schoolSearch/list/row/icon/icon.ls","text":"(function(){\n  return function(school){\n    return inc(\"/pages/school/_shared/schoolIcon/icon\")({\n      schoolDescription: {\n        imageId: school.imageId\n      }\n    }).css({\n      marginRight: \"0.5em\"\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/04_schoolSearch/list/row/main/location/location.ls","text":"(function(){\n  return function(school){\n    var c, that;\n    c = app.currentPage.params.city;\n    c = inc(\"../../../../../00_shared/calcCityLabel/calc\")(c);\n    return Div({\n      flex: \"1 1 auto\",\n      textAlign: \"left\",\n      userSelect: \"text\"\n    }).html((that = school.zip) != null ? that + \" \" + c : c);\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/04_schoolSearch/list/row/main/main.ls","text":"(function(){\n  return function(school){\n    return Div({\n      flex: \"1 1 auto\"\n    }).html(inc(\"name/name\")(school), inc(\"location/location\")(school));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/04_schoolSearch/list/row/row.ls","text":"(function(){\n  return function(page){\n    return function(school){\n      var tap, b;\n      tap = function(){\n        var p;\n        p = page.params;\n        return startPage({\n          path: path(\"../../../06_confirm/page\"),\n          animation: \"slideLeft\",\n          params: {\n            countryCode: p.countryCode,\n            countryName: p.countryName,\n            city: p.city,\n            schoolCode: school.schoolCode,\n            name: school.name\n          }\n        });\n      };\n      return Div({\n        display: \"flex\"\n      }).html(Div({\n        display: \"flex\",\n        padding: \"1.2em 0.5em\",\n        textAlign: \"left\",\n        maxWidth: \"100%\",\n        width: \"35em\",\n        margin: \"-2px auto\",\n        borderTop: b = \"1px solid \" + Color.grey[200],\n        borderBottom: b,\n        background: \"white\"\n      }).html(inc(\"icon/icon\")(school), inc(\"main/main\")(school), inc(\"totalMembers/total\")(school), inc(\"arrowIcon/icon\")()).tap(tap));\n    };\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/06_confirm/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      backLabel: inc(\"../../00_shared/calcCityLabel/calc\")(page.params.city),\n      title: T(\"confirmSchool\"),\n      topRightCustom: function(){\n        return inc(\"../../00_shared/topbarAbort/abort\")();\n      }\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/04_schoolSearch/load/load.ls","text":"(function(){\n  return function(p){\n    var page, params;\n    page = p.page;\n    params = page.params;\n    page.html(inc(\"/lib/gui/spinner/spinner\")());\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/schoolSearch/searchSchool/search\"),\n      params: {\n        search: params.search,\n        countryCode: params.countryCode,\n        city: params.city,\n        guiLanguage: engine.guiLanguage\n      },\n      requiredVisibleDiv: page,\n      onError: function(){\n        return page.html(T(\"errorMessage\"));\n      },\n      onOffline: function(){\n        return page.html(T(\"offlineError\"));\n      },\n      onCompleted: function(result){\n        var schools;\n        schools = result.schools || [];\n        return p.onLoaded(schools);\n      }\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/04_schoolSearch/notFound/notFound.ls","text":"(function(){\n  return function(page){\n    var s;\n    s = page.params.search;\n    return Div({\n      padding: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"noSchoolFoundWith\", s), \"<br><br>\", inc(\"../createNewSchoolLink/link\")(page));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/05_createNewSchool/_topbar/topbar.ls","text":"(function(){\n  return function(){\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      title: T(\"createSchool\"),\n      topRightCustom: function(){\n        return inc(\"../../00_shared/topbarAbort/abort\")();\n      }\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/06_confirm/button/button.ls","text":"(function(){\n  return function(page, school){\n    var tap;\n    if (school.joinType != null) {\n      return;\n    }\n    tap = function(){\n      if (!inc(\"/lib/util/isOnline/isOnline\")()) {\n        return inc(\"/lib/offline/offlinePopup/popup\")();\n      } else {\n        page.html(inc(\"/lib/gui/spinner/spinner\")());\n        return inc(\"../../finish\")(school);\n      }\n    };\n    return Button(T(\"buttonConfirmSchool\")).tap(tap);\n  };\n})();","updated":"2021-07-15T10:32:11.610601"},{"path":"pages/schoolSearch/06_confirm/load/load.ls","text":"(function(){\n  return function(p){\n    var t;\n    t = p.page.type;\n    if (t === \"schoolCode\") {\n      return inc(\"loadSchoolCodeDetails/load\")(p);\n    } else if (t === \"newGooglePlace\") {\n      return inc(\"calcNewGooglePlaceDetails/calc\")(p);\n    } else if (t === \"newCustom\") {\n      return inc(\"calcNewCustomDetails/calc\")(p);\n    }\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/05_createNewSchool/page.ls","text":"(function(){\n  return function(page){\n    page.params.city = inc(\"../00_shared/calcCityLabel/calc\")(page.params.city);\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        var submit, showSuggestPopup, startConfirmPage;\n        submit = function(v){\n          var p;\n          p = page.params;\n          p.name = v.name;\n          p.city = v.city;\n          return inc(\"loadSuggestedSchool/load\")({\n            page: page,\n            onLoaded: showSuggestPopup\n          });\n        };\n        showSuggestPopup = function(){\n          var ref$;\n          if (!page.suggestedSchool) {\n            return startConfirmPage();\n          } else {\n            if ((ref$ = document.activeElement) != null) {\n              ref$.blur();\n            }\n            return inc(\"popupSuggestSchool/popup\")({\n              page: page,\n              onDone: startConfirmPage\n            });\n          }\n        };\n        startConfirmPage = function(){\n          var s, pa, p;\n          s = page.suggestedSchool;\n          pa = page.params;\n          p = {\n            countryCode: pa.countryCode,\n            countryName: pa.countryName\n          };\n          if (s != null && s.schoolCode) {\n            p.schoolCode = s.schoolCode;\n            p.name = s.name;\n          } else if (s) {\n            p.googlePlaceId = s.id;\n            p.name = s.name;\n            p.address = s.address;\n            p.lat = s.lat;\n            p.lng = s.lng;\n          } else {\n            p.name = pa.name;\n            p.city = pa.city;\n          }\n          return startPage({\n            path: path(\"../06_confirm/page\"),\n            animation: \"slideLeft\",\n            params: p\n          });\n        };\n        return page.html(inc(\"title/title\")(), inc(\"form/form\")(page, submit));\n      }\n    };\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/05_createNewSchool/popupSuggestSchool/popup.ls","text":"(function(){\n  return function(p){\n    var div;\n    div = Div({\n      padding: \"1em\"\n    }).html(inc(\"title/title\")(), inc(\"school/school\")(p), inc(\"buttons/buttons\")(p));\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/05_createNewSchool/popupSuggestSchool/school/school.ls","text":"(function(){\n  return function(p){\n    var s, b;\n    s = p.page.suggestedSchool;\n    return Div().css({\n      borderTop: b = \"1px solid \" + Color.grey[150],\n      borderBottom: b,\n      padding: \"0.3em\",\n      margin: \"0.8em\",\n      textAlign: \"left\"\n    }).html(s.name, \"<br>\", s.address);\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/05_createNewSchool/popupSuggestSchool/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"suggestTitle\"));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/06_confirm/debug/debug.ls","text":"(function(){\n  return function(s){\n    if (!engine.isDebug) {\n      return;\n    }\n    return Div({\n      color: Color.grey[300],\n      fontSize: \"0.7em\",\n      padding: \"0 0 0.4em\",\n      userSelect: \"text\"\n    }).html(s.type === \"schoolCode\"\n      ? s.schoolCode + \" (hasDir=\" + (s.hasDir || 'false') + \")\"\n      : s.type);\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/06_confirm/load/calcNewCustomDetails/calc.ls","text":"(function(){\n  return function(p){\n    var pa;\n    pa = p.page.params;\n    return p.onLoaded({\n      type: p.page.type,\n      name: pa.name,\n      city: pa.city\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/06_confirm/load/calcNewGooglePlaceDetails/calc.ls","text":"(function(){\n  return function(p){\n    var pa;\n    pa = p.page.params;\n    return p.onLoaded({\n      type: p.page.type,\n      name: pa.name,\n      city: pa.address,\n      googlePlace: {\n        id: pa.googlePlaceId,\n        name: pa.name,\n        address: pa.address,\n        lat: pa.lat,\n        lng: pa.lng\n      }\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/06_confirm/load/loadSchoolCodeDetails/load.ls","text":"(function(){\n  return function(p){\n    var page, params;\n    page = p.page;\n    params = page.params;\n    page.html(inc(\"/lib/gui/spinner/spinner\")());\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/schoolSearch/getSchoolDetails/get\"),\n      params: {\n        schoolCode: params.schoolCode,\n        guiLanguage: engine.guiLanguage\n      },\n      requiredVisibleDiv: page,\n      onError: function(){\n        return page.html(T(\"errorMessage\"));\n      },\n      onOffline: function(){\n        return page.html(T(\"offlineError\"));\n      },\n      onCompleted: function(result){\n        var s;\n        s = result.school;\n        s.type = page.type;\n        return p.onLoaded(s);\n      }\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/06_confirm/location/location.ls","text":"(function(){\n  return function(school){\n    var that;\n    return Div({\n      userSelect: \"text\",\n      padding: \"0 1em 2em\"\n    }).secureHtml((that = school.zip)\n      ? that + \" \" + school.city\n      : school.city);\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/06_confirm/name/name.ls","text":"(function(){\n  return function(school){\n    return Div({\n      display: \"flex\",\n      padding: \"0.5em\",\n      fontSize: \"1.1em\",\n      lineHeight: \"1.4em\"\n    }).secureHtml(school.name);\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/06_confirm/protectedText/text.ls","text":"(function(){\n  return function(school){\n    if (!school.joinType) {\n      return;\n    }\n    return Div({\n      lineHeight: \"1.5em\",\n      background: Color.grey[150],\n      padding: \"0.3em\",\n      margin: \"1em 0\"\n    }).html(T(\"contactSchoolPersonInCharge\"));\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/schoolSearch/06_confirm/schoolIcon/icon.ls","text":"(function(){\n  return function(school){\n    return inc(\"/pages/school/_shared/schoolIcon/icon\")({\n      size: \"medium\",\n      schoolDescription: {\n        imageId: school.imageId\n      }\n    }).css({\n      margin: \"auto\"\n    });\n  };\n})();","updated":"2021-03-09T14:55:24.26743"},{"path":"pages/static/security/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"securityUrl\"),\n      title: T(\"security\"),\n      metaDescription: T(\"security\")\n    };\n  };\n})();","updated":"2021-03-10T12:07:16.815402"},{"path":"pages/static/security/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      start: function(){\n        var h, p;\n        h = function(t){\n          return Div({\n            padding: \"1em 0 0.3em\",\n            fontWeight: \"bold\",\n            lineHeight: \"1.5em\",\n            userSelect: \"text\"\n          }).html(t);\n        };\n        p = function(t){\n          return Div({\n            padding: \"0.5em 0\",\n            lineHeight: \"1.5em\",\n            userSelect: \"text\"\n          }).html(t);\n        };\n        return page.css({\n          margin: \"1em auto\",\n          maxWidth: \"90%\",\n          width: \"30em\",\n          textAlign: \"left\"\n        }).append(h(\"Informationen zu geschlossener Sicherheitslücke bei ANTON\"), p(\"Am 03. März 2021 um 18:01 erhielten wir einen Hinweis auf eine Sicherheitslücke bei Programmierschnittstellen unserer App ANTON. Die Sicherheitslücke wurde von uns am 03. März 2021 um 20:41 geschlossen. Das wurde vom Hinweisgeber bestätigt.\"), p(\"Wir haben keinerlei Anzeichen dafür, dass die Sicherheitslücke vor der Meldung und ihrer Beseitigung ausgenutzt wurde. Nach derzeitigem Kenntnisstand ist kein unberechtigter Zugriff auf personenbezogene Daten erfolgt.\"), p(\"Da diese aber mindestens durch den Hinweisgeber abgerufen werden konnten, handelt es sich um einen meldepflichtigen Vorfall. Wir haben den Vorfall bei der zuständigen Datenschutzbehörde gemeldet.\"), p(\"Wir untersuchen, ob es in der Vergangenheit Versuche gegeben hat, die Sicherheitslücke auszunutzen. Sollten wir Anzeichen für einen Missbrauch finden, werden wir betroffene Schulen, Nutzer/innen und die Datenschutzbeauftragten umgehend informieren.\"), p(\"ANTON ist weiterhin für alle Nutzer/innen sicher und uneingeschränkt nutzbar.\"), h(\"Welche Sicherheitslücke hat bestanden und wie wurde diese durch das ANTON-Team beseitigt?\"), p(\"Es wäre einem potenziellen Angreifer möglich gewesen, durch Modifikation der Anfragen an Programmierschnittstellen den Authentifizierungsmechanismus zu umgehen und unautorisiert einzelne Datensätze abzurufen.\"), p(\"Die Ausnutzung der Lücke hätte nicht einfach per menschlicher Interaktion mit der App erfolgen können, weder gezielt noch zufällig. Es hätte einer geschickten Vorgehensweise mithilfe von Programmiercode bedurft, für die man Kenntnisse von Webtechnologie, gute analytische Fähigkeiten sowie Programmierkenntnisse benötigt.\"), p(\"Es wäre theoretisch möglich gewesen, für bestimmte Nutzerkonten den Spitznamen, die Schulzugehörigkeit und die Gruppen- bzw. Klassenzugehörigkeit einzusehen. Sofern angegeben, hätte man auch Vor- und Nachnamen einsehen können.\"), p(\"In Einzelfällen wäre es möglich gewesen, die Daten von vorbereiteten, aber noch nicht aktiven Gruppenmitgliedern durch manuell modifizierte Anfragen an die Programmierschnittstellen abzufragen. Es handelte sich hierbei um vorbereite Mitglieder, die sich aber bisher noch nie als ANTON-Nutzer angemeldet haben und nicht Mitglied einer Schullizenz-Schule sind.\"), p(\"In dem sehr seltenen Fall von Gruppen mit mind. 2 Lehrkräften, bei denen die zweite Lehrkraft noch kein/e aktive/r ANTON-Nutzer/in war und der Angreifer Mitglied der Gruppe selbst sein muss, konnte die vorbereitete Lehrkraft unberechtigt aktiviert werden. Damit konnten die erweiterten Funktionen dieses Lehrkraft-Nutzers ausgenutzt werden, um etwa den Lernfortschritt einzelner Schüler/innen einzusehen, Aufgaben zu pinnen und eine Gruppennachricht als Text in die Gruppe einzustellen.\"), h(\"Was bedeuten die potenziellen Sicherheitslücken für die Nutzer/innen?\"), p(\"Wir gehen davon aus, dass die Sicherheitslücke nur vom Hinweisgeber zu Testzwecken ausgenutzt wurde und keine Nutzer/innen von einem Missbrauch betroffen sind.\"), p(\"Nutzer/innen und Schulen müssen nichts unternehmen. Es ist kein Update der App und keine Neuinstallation notwendig. Bei Fragen schreiben Sie uns gerne an support@anton.app\"), h(\"Wie stellt das ANTON-Team den Schutz der Daten von Nutzer/innen sicher?\"), p(\"Der Datenschutz und die Sicherheit von Nutzerdaten ist uns ein wichtiges Anliegen. Wir verwenden daher u.a. kein Performance-Marketing, keine Trackinganbieter und ermöglichen die Nutzung von ANTON ohne die Angabe persönlicher Daten. Das Datenschutzkonzept von ANTON wurde in Zusammenarbeit mit schulischen Datenschutzbeauftragten entwickelt.\"), p(\"Nutzer/innen können ANTON verwenden, ohne ihren Namen, ihre E-Mail-Adresse oder ihre Telefonnummer anzugeben. Nutzer/innen und Schulen können selbst entscheiden, ob sie weitere Daten anlegen und haben immer die Möglichkeit, vollständig mit Pseudonymen zu arbeiten.\"), p(\"Zur Sicherstellung der IT-Sicherheit und frühzeitigen Erkennung möglicher Schwachstellen arbeiten wir eng mit externen IT-Sicherheitsexperten zusammen und führen regelmäßige Tests unserer Systeme durch.\"), p(\"Bei komplexen IT-Systemen lassen sich Schwachstellen leider nie zu 100% ausschließen. Deshalb haben wir eigens hierfür entwickelte Technologie und klare Prozesse, mit denen wir mögliche Fehler und Probleme – wie auch in diesem Fall – sehr schnell erkennen und beheben können.\"), p(\"Wir entwickeln die Lerninhalte, Funktionen und Technologie von ANTON ständig mit viel Einsatz weiter und bemühen uns, ANTON noch zuverlässiger für alle Schüler/innen und Lehrer/innen zu machen.\"));\n      }\n    };\n  };\n})();","updated":"2023-05-02T11:04:27.85259"},{"path":"pages/level/finishLevel/_shared/playSoundText/play.ls","text":"(function(){\n  return function(o, loadOnly){\n    var downloadSound, onLoaded;\n    downloadSound = function(){\n      return inc(\"/lib/util/downloadSound/download\")({\n        fileFolder: \"media/levelFinish/_sounds\",\n        voiceLang: engine.guiLanguage.split(\"_\")[0],\n        voice: o.character.voice,\n        text: o.text.replace(/\\&nbsp\\;/g, \"\"),\n        onError: function(){},\n        onOffline: function(){},\n        onLoaded: onLoaded\n      });\n    };\n    onLoaded = function(sound){\n      if (sound.loadDuration < 1500 && loadOnly !== true) {\n        return sound.play();\n      }\n    };\n    return downloadSound();\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/start/startUser/07_extraPages/connectToOpenId/_t.ls","text":"(function(){\n  return {\n    successMessage: {\n      deDev: \"Dein Nutzerkonto wurde erfolgreich verknüpft.\",\n      enDev: \"Your account has been successfully linked.\",\n      frDev: \"Votre compte a été lié avec succès.\",\n      esDev: \"Su cuenta ha sido vinculada con éxito.\",\n      ptDev: \"Sua conta foi vinculada com sucesso.\"\n    }\n  };\n})();","updated":"2025-09-17T13:10:11.715597"},{"path":"pages/start/login/openId/createPreparedUser/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"topbar/topbar\")(page);\n      },\n      start: function(){\n        return page.css({\n          width: \"25em\",\n          maxWidth: \"90%\",\n          margin: \"0 auto\"\n        }).html(inc(\"textExistingUser/text\")(), inc(\"buttonExistingUser/button\")(page), Div({\n          margin: \"1.5em 0\",\n          width: \"100%\",\n          height: \"1px\",\n          backgroundColor: Color.grey[300]\n        }), inc(\"textNewUser/text\")(), inc(\"buttonNewUser/button\")(page));\n      }\n    };\n  };\n})();","updated":"2025-09-17T13:39:20.383143"},{"path":"pages/prestart/engineOutdated/warning/page.ls","text":"(function(){\n  return function(page){\n    return {\n      start: function(){\n        deviceLog.log({\n          event: \"deviceDebugWarningOutdatedEngine\",\n          stopDate: page.params.stopDate,\n          engineVersion: engine.clientVersion\n        });\n        return page.append(inc(\"text/text\")(page.params.stopDate), inc(\"/lib/gui/buttonOpenAppStore/button\")(), \"<br>\", inc(\"buttonContinue/button\")());\n      }\n    };\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/schoolAdmin/loadingPage/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var topbar;\n    topbar = inc(\"/addons/topbar2/topbar\")({\n      title: \"&nbsp;\",\n      tabMenuItems: function(){\n        var items;\n        return items = [\n          {\n            label: T(\"member\"),\n            selected: false\n          }, {\n            label: T(\"settings\"),\n            selected: false\n          }\n        ];\n      }\n    });\n    topbar.findFirst(\".tabMenu\").css({\n      opacity: 0.3\n    });\n    return topbar;\n  };\n})();","updated":"2021-05-04T09:15:33.849643"},{"path":"lib/svg/icon/dot-active.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <circle cx=\"80\" cy=\"80\" r=\"27.5\" fill-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"pages/prestart/appOutdated/warning/buttonReload/button.ls","text":"(function(){\n  return function(){\n    return Button(T(\"restart\")).css({\n      margin: \"1em\"\n    }).tap(function(){\n      return location.reload();\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/prestart/appOutdated/warning/buttonSkip/button.ls","text":"(function(){\n  return function(){\n    return Button(T(\"notNow\")).css({\n      margin: \"1em\"\n    }).tap(function(){\n      return inc(\"/lib/init/startFirstPage/start\")();\n    });\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/init/idle/showOverlay/overlays/silent/overlay.ls","text":"(function(){\n  return function(o){\n    return {\n      onActivity: function(){\n        o.logSessionStart(\"continueSilent\");\n        o.overlay = null;\n        o.endedAt = null;\n        o.lastActivityAt = new Date();\n        return o.createInterval();\n      },\n      remove: function(){}\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/classKit/setContent/setClassKitData/calcClassKitPlan/calcContextTopic/calc.ls","text":"(function(){\n  return function(subject){\n    var t;\n    t = {\n      MAT: \"CLSContextTopicMath\",\n      NATDEU: \"CLSContextTopicLiteracyAndWriting\",\n      ENG: \"CLSContextTopicWorldLanguage\",\n      SLDEU: \"CLSContextTopicWorldLanguage\",\n      SCI: \"CLSContextTopicScience\",\n      MUS: \"CLSContextTopicArtsAndMusic\"\n    };\n    return t[subject];\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/classKit/setContent/setClassKitData/calcClassKitPlan/removeHtml/remove.ls","text":"(function(){\n  return function(s){\n    var tagRegex;\n    tagRegex = /(<(?:.|\\R)*?>)/g;\n    return s.replace(tagRegex, \"\");\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/blockPuzzle/_t.ls","text":"(function(){\n  return {\n    manual: {\n      de: \"Fülle mit den Blöcken die vorgezeichnete Fläche aus.\",\n      en: \"Try to fit the blocks perfectly into the square.\",\n      fr: \"Essaie de faire tenir tous les blocs dans le carré.\",\n      es: \"Logra que encajen todas las piezas en el cuadrado.\",\n      pt: \"Tente encaixar todas as peças dentro do quadrado.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/prestart/appOutdated/warning/page.ls","text":"(function(){\n  return function(page){\n    return {\n      start: function(){\n        return page.append(inc(\"text/text\")(page.params.age), inc(\"buttonReload/button\")(), inc(\"buttonSkip/button\")());\n      }\n    };\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"addons/topbarLevel/hint/hint/background/divEnterKey/div.ls","text":"(function(){\n  return function(close){\n    return Div().addClass(\"keyManager-enter\").bind(\"keyManager\", close);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/buttonsSubmitCancel/linkCancel/link.ls","text":"(function(){\n  return function(o){\n    var click;\n    if (o.cancel === false) {\n      return;\n    }\n    click = function(){\n      if (o.cancel) {\n        return o.cancel();\n      } else {\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      }\n    };\n    return inc(\"/lib/gui/link/link\")({\n      label: o.cancelLabel || T(\"backButton\"),\n      direction: \"left\"\n    }).tap(click).css({\n      margin: \"0 0.25em\"\n    });\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"lib/gui/buttonsSubmitCancel/spinner/spinner.ls","text":"(function(){\n  return function(div){\n    div.showSpinner = function(){\n      return div.append(Div().addClass(\"spinnerOverlay\").css({\n        display: \"flex\",\n        position: \"absolute\",\n        left: \"-1px\",\n        right: \"-1px\",\n        top: \"-1px\",\n        bottom: \"-1px\",\n        backgroundColor: \"white\"\n      }).append(inc(\"/lib/gui/spinner/spinner\")()));\n    };\n    return div.hideSpinner = function(){\n      var ref$;\n      return (ref$ = div.find(\".spinnerOverlay\")[0]) != null ? ref$.remove() : void 8;\n    };\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"lib/gui/divEditable/cleanupLine/addBRtoEmptyLine/add.ls","text":"(function(){\n  return function(d, lineDiv){\n    if (lineDiv.childNodes.length === 0) {\n      lineDiv.append(\"<br>\");\n      return d.debug(\"add BR to empty line\");\n    }\n  };\n})();","updated":"2020-12-31T18:35:35.154976"},{"path":"lib/util/startPage/animations/none/start.ls","text":"(function(){\n  return function(oldPW, newPW, o, onFinish){\n    onFinish();\n    oldPW.remove();\n    newPW.css({\n      opacity: 1\n    });\n    newPW.top.css({\n      opacity: 1\n    });\n    newPW.page.css({\n      opacity: 1\n    });\n    newPW.bottom.css({\n      opacity: 1\n    });\n    return newPW.pageScrollWrapper.css({\n      opacity: 1\n    });\n  };\n})();","updated":"2021-01-04T13:19:29.946952"},{"path":"lib/util/startPage/onPopState/onPopState.ls","text":"(function(){\n  return function(){\n    return window.onpopstate = function(e){\n      var pos, state;\n      pos = app.pageHistory.length + -2;\n      if (pos < 0) {\n        return window.history.go(pos);\n      } else {\n        state = app.pageHistory[pos];\n        return startPage({\n          history: -1,\n          isBrowserBack: true,\n          path: state.path,\n          params: state.params,\n          animation: \"fadeIn\"\n        });\n      }\n    };\n  };\n})();","updated":"2021-01-04T13:19:29.946952"},{"path":"lib/util/startPage/pageSwipe/swipeTransition/animation/animation.ls","text":"(function(){\n  return function(oldPW, newPW, onFinish){\n    var percentage, newPageSpacer, oldPageSpacer, oldTopbar, newTopbar, oldBottomBar, newBottomBar, done;\n    percentage = 0;\n    newPageSpacer = newPW.pageSpacer || newPW.page;\n    oldPageSpacer = oldPW.pageSpacer || oldPW.page;\n    oldTopbar = oldPW.findFirst(\".topBarMain\");\n    newTopbar = newPW.findFirst(\".topBarMain\");\n    oldBottomBar = oldPW.bottom;\n    newBottomBar = newPW.bottom;\n    oldPW.css({\n      zIndex: 1\n    });\n    oldPageSpacer.css({\n      boxShadow: \"0px 0px 13px rgba(0,0,0,0.1)\"\n    });\n    newPageSpacer.css({\n      opacity: 1,\n      transform: \"translateX(-20%)\"\n    });\n    if (newTopbar != null) {\n      newTopbar.css({\n        opacity: 1,\n        transform: \"translateX(-20%)\"\n      });\n    }\n    if (newBottomBar != null) {\n      newBottomBar.css({\n        opacity: 1,\n        transform: \"translateY(100%)\"\n      });\n    }\n    newPW.css({\n      opacity: 1\n    });\n    done = function(completed){\n      newPageSpacer.css({\n        transform: \"\",\n        transition: \"\"\n      });\n      if (newTopbar != null) {\n        newTopbar.css({\n          transform: \"\",\n          transition: \"\"\n        });\n      }\n      if (newBottomBar != null) {\n        newBottomBar.css({\n          transform: \"\",\n          transition: \"\"\n        });\n      }\n      oldPageSpacer.css({\n        transform: \"\",\n        transition: \"\",\n        boxShadow: \"\"\n      });\n      if (oldTopbar != null) {\n        oldTopbar.css({\n          transition: \"\",\n          transform: \"\"\n        });\n      }\n      if (oldBottomBar != null) {\n        oldBottomBar.css({\n          transition: \"\",\n          transform: \"\"\n        });\n      }\n      oldPW.css({\n        zIndex: 0\n      });\n      onFinish(completed);\n      if (completed) {\n        return oldPW.remove();\n      } else {\n        return newPW.remove();\n      }\n    };\n    return {\n      update: function(newPercentage){\n        percentage = newPercentage;\n        oldPageSpacer.css({\n          transform: \"translateX(\" + percentage * 100 + \"%)\"\n        });\n        if (oldTopbar != null) {\n          oldTopbar.css({\n            transform: \"translateX(\" + percentage * 100 + \"%)\"\n          });\n        }\n        if (oldBottomBar != null) {\n          oldBottomBar.css({\n            transform: \"translateY(\" + percentage * 100 + \"%)\"\n          });\n        }\n        newPageSpacer.css({\n          transform: \"translateX(-\" + (1 - percentage) * 20 + \"%)\"\n        });\n        if (newTopbar != null) {\n          newTopbar.css({\n            transform: \"translateX(-\" + (1 - percentage) * 20 + \"%)\"\n          });\n        }\n        return newBottomBar != null ? newBottomBar.css({\n          transform: \"translateY(\" + (1 - percentage) * 100 + \"%)\"\n        }) : void 8;\n      },\n      finish: function(){\n        var duration;\n        duration = Math.max((1 - percentage) * 300, 20);\n        oldPageSpacer.css({\n          transform: \"translateX(100%)\",\n          transition: \"transform \" + duration + \"ms ease-out\"\n        });\n        if (oldTopbar != null) {\n          oldTopbar.css({\n            transform: \"translateX(100%)\",\n            transition: \"transform \" + duration + \"ms ease-out\"\n          });\n        }\n        if (oldBottomBar != null) {\n          oldBottomBar.css({\n            transform: \"translateY(100%)\",\n            transition: \"transform \" + duration + \"ms ease-out\"\n          });\n        }\n        newPageSpacer.css({\n          transform: \"translateX(0%)\",\n          transition: \"transform \" + duration + \"ms ease-out\"\n        });\n        if (newTopbar != null) {\n          newTopbar.css({\n            transform: \"translateX(0%)\",\n            transition: \"transform \" + duration + \"ms ease-out\"\n          });\n        }\n        if (newBottomBar != null) {\n          newBottomBar.css({\n            transform: \"translateY(0%)\",\n            transition: \"transform \" + duration + \"ms ease-out\"\n          });\n        }\n        return setTimeout(function(){\n          return done(true);\n        }, duration);\n      },\n      cancel: function(){\n        var duration;\n        duration = Math.max(percentage * 300, 20);\n        oldPageSpacer.css({\n          transform: \"translateX(0%)\",\n          transition: \"transform \" + duration + \"ms ease-out\"\n        });\n        if (oldTopbar != null) {\n          oldTopbar.css({\n            transform: \"translateX(0%)\",\n            transition: \"transform \" + duration + \"ms ease-out\"\n          });\n        }\n        if (oldBottomBar != null) {\n          oldBottomBar.css({\n            transform: \"translateY(0%)\",\n            transition: \"transform \" + duration + \"ms ease-out\"\n          });\n        }\n        newPageSpacer.css({\n          transform: \"translateX(-20%)\",\n          transition: \"transform \" + duration + \"ms ease-out\"\n        });\n        if (newTopbar != null) {\n          newTopbar.css({\n            transform: \"translateX(-20%)\",\n            transition: \"transform \" + duration + \"ms ease-out\"\n          });\n        }\n        if (newBottomBar != null) {\n          newBottomBar.css({\n            transform: \"translateY(-100%)\",\n            transition: \"transform \" + duration + \"ms ease-out\"\n          });\n        }\n        return setTimeout(function(){\n          return done(false);\n        }, duration);\n      }\n    };\n  };\n})();","updated":"2021-01-04T13:19:29.946952"},{"path":"lib/gui/inputEditable/calcDiff/calc.ls","text":"(function(){\n  var lastValue;\n  lastValue = \"\";\n  return function(i, params){\n    var v, diff, i$, ref$, len$, c;\n    v = i.div.getValue();\n    diff = v;\n    if (diff.length > lastValue.length) {\n      for (i$ = 0, len$ = (ref$ = lastValue).length; i$ < len$; ++i$) {\n        c = ref$[i$];\n        diff = diff.replace(c, \"\");\n      }\n    } else {\n      diff = \"back\";\n    }\n    lastValue = v;\n    return diff;\n  };\n})();","updated":"2021-05-28T15:17:26.199722"},{"path":"lib/gui/input2/externalKeyboard/_calcEnableInput/calc.ls","text":"(function(){\n  return function(){\n    if (inc(\"/lib/util/isDesktop/isDesktop\")()) {\n      return true;\n    } else {\n      return false;\n    }\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/gui/input2/externalKeyboard/_calcFunctionKey/calc.ls","text":"(function(){\n  return function(e, o){\n    var shift, cmd, functionKeys, ref$;\n    e = inc(\"/lib/util/keyboardEventNormalize/normalize\")(e);\n    shift = e._shift;\n    cmd = e._cmd;\n    functionKeys = {\n      esc: \"esc\",\n      left: \"left\",\n      right: \"right\",\n      up: \"up\",\n      down: \"down\",\n      backspace: \"back\",\n      tab: \"submit\",\n      enter: o.multiline ? \"newline\" : \"submit\",\n      a: cmd ? \"cmd-a\" : void 8,\n      x: cmd ? \"cmd-x\" : void 8,\n      c: cmd ? \"cmd-c\" : void 8,\n      v: cmd ? \"cmd-v\" : void 8,\n      z: cmd && shift\n        ? \"cmd-shift-z\"\n        : cmd ? \"cmd-z\" : void 8\n    };\n    return functionKeys[(ref$ = e._key) != null ? ref$.toLowerCase() : void 8];\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/gui/input2/externalKeyboard/_onFrame/onFrame.ls","text":"(function(){\n  return function(listener){\n    if (!listener.isVisible()) {\n      return;\n    }\n    if (document.hasFocus() && document.activeElement !== listener) {\n      listener.focus();\n    }\n    return requestAnimationFrame(function(){\n      return inc(THISFILE)(listener);\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/util/keyManager/trigger/calcScopeDivs/calc.ls","text":"(function(){\n  return function(){\n    var divs, i$, ref$, len$, el;\n    divs = [];\n    for (i$ = 0, len$ = (ref$ = body.find(\".keyManagerScope\")).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      if (el.isVisible()) {\n        divs.push(el);\n      }\n    }\n    if (divs.length === 0) {\n      divs.push(body);\n    } else {\n      for (i$ = 0, len$ = (ref$ = body.find(\".keyManagerScopeAlways\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        if (el.isVisible()) {\n          divs.push(el);\n        }\n      }\n    }\n    return divs;\n  };\n})();","updated":"2021-01-07T14:41:44.832472"},{"path":"lib/util/keyboardEventNormalize/normalize.ls","text":"(function(){\n  var isMac;\n  isMac = navigator.platform.match(\"Mac\");\n  return function(e){\n    var key, ref$, k;\n    key = (ref$ = e.key) != null ? ref$.toLowerCase() : void 8;\n    k = {\n      escape: \"esc\",\n      arrowup: \"up\",\n      arrowleft: \"left\",\n      arrowdown: \"down\",\n      arrowright: \"right\",\n      \" \": \"space\"\n    };\n    e._key = k[key] || key;\n    e._cmd = isMac\n      ? e.metaKey\n      : e.ctrlKey;\n    e._shift = e.shiftKey;\n    return e;\n  };\n})();","updated":"2021-01-16T06:25:41.263111"},{"path":"lib/gui/svgPieChart/svgPieChart.ls","text":"(function(){\n  return function(slices){\n    var totalPercent, calcCoordinates, create, svg;\n    totalPercent = 0;\n    calcCoordinates = function(p){\n      var x, y;\n      return [x = Math.cos(2 * Math.PI * p), y = Math.sin(2 * Math.PI * p)];\n    };\n    create = function(t){\n      return document.createElementNS(\"http://www.w3.org/2000/svg\", t);\n    };\n    svg = create(\"svg\").attr({\n      viewBox: \"-1 -1 2 2\",\n      style: \"transform: rotate(-90deg)\"\n    });\n    _.each(slices, function(slice){\n      var c, startX, startY, endX, endY, largeArcFlag, pathData;\n      c = calcCoordinates(totalPercent);\n      startX = c[0];\n      startY = c[1];\n      totalPercent += slice.percent;\n      c = calcCoordinates(totalPercent);\n      endX = c[0];\n      endY = c[1];\n      largeArcFlag = slice.percent > 0.5 ? 1 : 0;\n      pathData = ['M ' + startX + ' ' + startY, 'A 1 1 0 ' + largeArcFlag + ' 1 ' + endX + ' ' + endY, 'L 0 0'].join(' ');\n      return create(\"path\").attr({\n        d: pathData,\n        fill: slice.color\n      }).appendTo(svg);\n    });\n    return svg;\n  };\n})();","updated":"2021-01-07T14:41:44.832472"},{"path":"lib/init/onNewLogEvents/deviceSetDebug/deviceSetDebug.ls","text":"(function(){\n  return function(events){\n    var isDebug, ref$, event;\n    isDebug = (ref$ = Store(\"debug\")) != null ? ref$ : false;\n    event = _.last(events);\n    if (event.value !== isDebug) {\n      if (event.value) {\n        Store(\"debug\", true);\n      } else {\n        Store.remove(\"debug\");\n      }\n      deviceLog.log({\n        event: \"debugRemoteDebugChange\",\n        from: isDebug,\n        to: event.value\n      });\n      body.triggerCustomEvent({\n        event: \"toggleDebug\"\n      });\n      return startPage({\n        history: 0\n      });\n    }\n  };\n})();","updated":"2021-01-22T11:20:58.13419"},{"path":"pages/start/startUser/07_extraPages/showLoginCodeOnce/show.ls","text":"(function(){\n  return function(o){\n    var e, createdMethod;\n    if ((typeof log != 'undefined' && log !== null) && log.findLast(\"showLoginCodeOnce\")) {\n      return false;\n    }\n    e = typeof log != 'undefined' && log !== null ? log.findLast(\"setNewUser\") : void 8;\n    if (e && (e != null ? e.created : void 8) < new Date(\"2020-03-30\")) {\n      return false;\n    }\n    createdMethod = e != null ? e.createdMethod : void 8;\n    if (createdMethod !== \"funnel\") {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0,\n      params: _.omit(o, [\"page\", \"progressBar\"])\n    });\n    return true;\n  };\n})();","updated":"2021-01-07T14:41:44.832472"},{"path":"pages/start/startUser/07_extraPages/showLoginCodeOnce/page/buttonDone/button.ls","text":"(function(){\n  return function(page){\n    var click;\n    click = function(){\n      var o;\n      log.log({\n        event: \"showLoginCodeOnce\"\n      });\n      o = {\n        startNavCategory: page.params.startNavCategory\n      };\n      return inc(\"../../../_onExtraPageDone/on\")(o);\n    };\n    return Button(T(\"okDone\")).css({\n      marginTop: \"1em\"\n    }).tap(click);\n  };\n})();","updated":"2024-04-03T15:40:10.18043"},{"path":"lib/gui/input2/click/positionCursor/positionMultiline/position.ls","text":"(function(){\n  return function(e, o){\n    var pageX, ref$, pageY, ref1$, allChars, charsWithCorrectY, res$, i$, len$, el, offset, ref2$, last;\n    pageX = ((ref$ = e.touches) != null ? ref$[0].pageX : void 8) || e.pageX;\n    pageY = ((ref1$ = e.touches) != null ? ref1$[0].pageY : void 8) || e.pageY;\n    allChars = o.div.findAll(\".inputChar\");\n    res$ = [];\n    for (i$ = 0, len$ = allChars.length; i$ < len$; ++i$) {\n      el = allChars[i$];\n      offset = el.offset();\n      if (offset.bottom < pageY) {\n        continue;\n      }\n      if (offset.top > pageY) {\n        break;\n      }\n      res$.push(el);\n    }\n    charsWithCorrectY = res$;\n    if (charsWithCorrectY.length === 0) {\n      if ((ref2$ = _.last(allChars)) != null) {\n        ref2$.after(o.cursor);\n      }\n      return;\n    }\n    for (i$ = 0, len$ = charsWithCorrectY.length; i$ < len$; ++i$) {\n      el = charsWithCorrectY[i$];\n      if (pageX < el.offset().left + el.width() / 2) {\n        el.before(o.cursor);\n        return;\n      }\n    }\n    last = _.last(charsWithCorrectY);\n    if (last.innerHTML === \"<br>\") {\n      return last.before(o.cursor);\n    } else {\n      return last.after(o.cursor);\n    }\n  };\n})();","updated":"2023-11-22T16:41:30.472733"},{"path":"lib/util/calcBrowser/calc.ls","text":"(function(){\n  return function(){\n    var ua, M, tem;\n    ua = navigator.userAgent;\n    M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n    if (/trident/i.test(M[1])) {\n      tem = /\\brv[:]+(\\d+)/g.exec(ua) || [];\n      return {\n        name: \"IE\",\n        version: tem[1] || \"\"\n      };\n    }\n    if (M[1] === \"Chrome\") {\n      tem = ua.match(/\\bOPR|Edge\\/(\\d+)/);\n      if (tem !== null) {\n        return {\n          name: \"Opera\",\n          version: tem[1]\n        };\n      }\n    }\n    M = M[2]\n      ? [M[1], M[2]]\n      : [navigator.appName, navigator.appVersion, \"-?\"];\n    if (tem = ua.match(/version\\/(\\d+)/i) !== null) {\n      M.splice(1, 1, tem[1]);\n    }\n    return {\n      name: M[0],\n      version: M[1]\n    };\n  };\n})();","updated":"2023-11-22T16:41:30.472733"},{"path":"lib/gui/input2/cursor/cursor.ls","text":"(function(){\n  return function(o){\n    var interval, onInterval, start, stop, goLeft, goRight, endReached, getCharIndexInLine, prevLine, goUp, nextLine, goDown, deletePrevious, cursor, inner;\n    interval = null;\n    onInterval = function(){\n      if (!o.div.isVisible()) {\n        clearInterval(interval);\n        interval = null;\n        return;\n      }\n      return inner.css({\n        visibility: o.enabled === false || !document.hasFocus()\n          ? \"hidden\"\n          : inner.css(\"visibility\") === \"hidden\" ? \"visible\" : \"hidden\"\n      });\n    };\n    start = function(){\n      clearInterval(interval);\n      interval = setInterval(onInterval, 500);\n      cursor.css({\n        visibility: \"visible\"\n      });\n      return inner.css({\n        visibility: document.hasFocus() ? \"visible\" : \"hidden\"\n      });\n    };\n    stop = function(){\n      clearInterval(interval);\n      interval = null;\n      return inner.css({\n        visibility: \"hidden\"\n      });\n    };\n    goLeft = function(){\n      var firstSelectedChar, prev;\n      firstSelectedChar = _.first(o.selection.chars());\n      prev = o.cursor.previousSibling;\n      if (firstSelectedChar) {\n        firstSelectedChar.before(cursor);\n        o.selection.unselect();\n      } else if (prev != null && prev.hasClass(\"inputChar\")) {\n        prev.before(cursor);\n      }\n      return start();\n    };\n    goRight = function(){\n      var lastSelectedChar, next;\n      lastSelectedChar = _.last(o.selection.chars());\n      next = cursor.nextSibling;\n      if (lastSelectedChar) {\n        lastSelectedChar.after(cursor);\n        o.selection.unselect();\n      } else if (next != null && next.hasClass(\"inputChar\")) {\n        next.after(cursor);\n      }\n      return start();\n    };\n    endReached = function(elem, isDebug){\n      var r;\n      r = !elem || elem.hasClass(\"fixedLengthDiv\") || elem.innerHTML === \"<br>\";\n      if (isDebug) {\n        debug(elem.outerHtml(), r);\n      }\n      return r;\n    };\n    getCharIndexInLine = function(){\n      var elem, counter;\n      elem = cursor;\n      counter = -1;\n      while (!endReached(elem)) {\n        counter += 1;\n        elem = elem.previousSibling;\n      }\n      return counter;\n    };\n    prevLine = function(charIndex){\n      var elem, counter;\n      elem = cursor;\n      while (!endReached(elem)) {\n        elem = elem.previousSibling;\n      }\n      if (elem.previousSibling) {\n        elem = elem.previousSibling;\n        while (!endReached(elem)) {\n          elem = elem.previousSibling;\n        }\n      }\n      counter = -1;\n      while (++counter !== charIndex && !endReached(elem.nextSibling)) {\n        elem = elem.nextSibling;\n      }\n      return elem.after(cursor);\n    };\n    goUp = function(){\n      var firstSelectedChar, charIndex;\n      if (!o.multiline) {\n        return;\n      }\n      firstSelectedChar = _.first(o.selection.chars());\n      if (firstSelectedChar) {\n        o.selection.unselect();\n      }\n      charIndex = getCharIndexInLine(cursor);\n      prevLine(charIndex);\n      return start();\n    };\n    nextLine = function(charIndex){\n      var elem, counter;\n      elem = cursor;\n      while (!endReached(elem)) {\n        elem = elem.nextSibling;\n      }\n      if (elem) {\n        counter = -1;\n        while (++counter !== charIndex && !endReached(elem.nextSibling)) {\n          elem = elem.nextSibling;\n        }\n        return elem.after(cursor);\n      }\n    };\n    goDown = function(){\n      var firstSelectedChar, charIndex;\n      if (!o.multiline) {\n        return;\n      }\n      firstSelectedChar = _.first(o.selection.chars());\n      if (firstSelectedChar) {\n        o.selection.unselect();\n      }\n      charIndex = getCharIndexInLine(cursor);\n      nextLine(charIndex);\n      return start();\n    };\n    deletePrevious = function(){\n      var firstSelectedChar, prev;\n      firstSelectedChar = _.first(o.selection.chars());\n      prev = cursor.previousSibling;\n      if (firstSelectedChar) {\n        firstSelectedChar.before(cursor);\n        o.selection['delete']();\n      } else if (prev != null && prev.hasClass(\"inputChar\")) {\n        prev.remove();\n      }\n      return start();\n    };\n    cursor = Div({\n      display: \"inline-block\",\n      width: \"0px\",\n      visibility: \"hidden\"\n    }).addClass(\"cursor\").html(inner = Div({\n      display: \"inline-block\",\n      width: \"2px\",\n      backgroundColor: Color.grey[700],\n      pointerEvents: \"none\",\n      visibility: \"hidden\"\n    }).addClass(\"cursor-inner\").html(\"&nbsp;\")).appendTo(o.div);\n    cursor.start = start;\n    cursor.stop = stop;\n    cursor.goLeft = goLeft;\n    cursor.goRight = goRight;\n    cursor.goUp = goUp;\n    cursor.goDown = goDown;\n    cursor.deletePrevious = deletePrevious;\n    o.cursor = cursor;\n    return cursor;\n  };\n})();","updated":"2023-11-22T16:41:30.472733"},{"path":"lib/init/ideDebugOutput/init.ls","text":"(function(){\n  return function(fromSettings){\n    var enabled, ref$, ref1$;\n    if (!engine.isDebug || !engine.debugContainer || !window.parent) {\n      return;\n    }\n    enabled = typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog['var'](\"useIdeDebugOutput\") : void 8;\n    if (enabled) {\n      engine.debugContainer._appendMessage = engine.debugContainer.appendMessage;\n      engine.debugContainer._appendError = engine.debugContainer.appendError;\n      engine.debugContainer.appendMessage = function(){\n        var ref$;\n        return (ref$ = window.parent) != null ? ref$.postMessage({\n          type: \"app01Debug\",\n          args: inc(\"convertToSerializable/convert\")(Array.from(arguments))\n        }, \"*\") : void 8;\n      };\n      return engine.debugContainer.appendError = function(){\n        var ref$;\n        return (ref$ = window.parent) != null ? ref$.postMessage({\n          type: \"app01Error\",\n          args: Array.from(arguments)\n        }, \"*\") : void 8;\n      };\n    } else if (fromSettings && engine.debugContainer._appendMessage) {\n      engine.debugContainer.appendMessage = engine.debugContainer._appendMessage;\n      engine.debugContainer.appendError = engine.debugContainer._appendError;\n      delete engine.debugContainer._appendMessage;\n      return ref1$ = (ref$ = engine.debugContainer)._appendError, delete ref$._appendError, ref1$;\n    }\n  };\n})();","updated":"2023-11-22T16:41:30.472733"},{"path":"lib/gui/divEditable/selectionPositions/set/set.ls","text":"(function(){\n  var getNode;\n  getNode = inc(\"../../_shared/lineCharPosition/getNode/get\");\n  return function(d, selPos){\n    var sel, pos, lines, startLineDiv, endLineDiv, startNode, endNode, r;\n    sel = window.getSelection();\n    if (!sel) {\n      return;\n    }\n    pos = {};\n    pos.start = selPos.start || selPos;\n    pos.end == null && (pos.end = selPos.end || pos.start);\n    lines = d.div.findAll(\".lineDiv\");\n    if (pos.start.line === \"first\") {\n      pos.start.line = 0;\n    }\n    if (pos.start.line === \"last\") {\n      pos.start.line = lines.length - 1;\n    }\n    if (pos.end.line === \"first\") {\n      pos.end.line = 0;\n    }\n    if (pos.end.line === \"last\") {\n      pos.end.line = lines.length - 1;\n    }\n    startLineDiv = lines[pos.start.line];\n    endLineDiv = lines[pos.end.line];\n    if (!startLineDiv || !endLineDiv) {\n      return;\n    }\n    startNode = getNode(startLineDiv, pos.start.charPos);\n    endNode = getNode(endLineDiv, pos.end.charPos);\n    r = document.createRange();\n    r.setStart(startNode.node, startNode.offset);\n    r.setEnd(endNode.node, endNode.offset);\n    sel.removeAllRanges();\n    return sel.addRange(r);\n  };\n})();","updated":"2021-10-19T13:50:57.209314"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/init/updateUrlDescription/init.ls","text":"(function(){\n  return function(pw){\n    return pw.page.updateUrlDescription = function(){\n      var urlDescription, ref$;\n      urlDescription = typeof (ref$ = pw.pageCode).urlDescription == 'function' ? ref$.urlDescription() : void 8;\n      if (!urlDescription) {\n        urlDescription = {\n          title: \"\",\n          metaDescription: \"\",\n          pageUrl: \"\"\n        };\n      }\n      if (!urlDescription.disabled) {\n        return inc(\"/lib/util/browser/setUrlDescription/set\")(urlDescription);\n      }\n    };\n  };\n})();","updated":"2024-03-28T14:30:33.659284"},{"path":"lib/gui/divEditable/insertAtCursor/noneFake/insert.ls","text":"(function(){\n  return function(d, v){\n    var selPos;\n    d.div.attr({\n      contenteditable: \"true\"\n    }).focus({\n      preventScroll: true\n    });\n    inc(\"../contentEditable/insert\")(d, v);\n    selPos = d.getSelectionPositions();\n    d.div.attr({\n      contenteditable: \"false\"\n    }).blur();\n    d.setSelectionPositions(selPos);\n    return d.onSelectionChange();\n  };\n})();","updated":"2022-03-16T14:14:41.816215"},{"path":"lib/gui/divEditable/keyBack/keyBack.ls","text":"(function(){\n  return function(d){\n    var isFake, sel, r;\n    if (!d.isStarted) {\n      return;\n    }\n    isFake = d.softKeyboardMode === \"noneFake\";\n    if (isFake) {\n      d.div.attr({\n        contenteditable: \"true\"\n      }).focus({\n        preventScroll: true\n      });\n    }\n    document.execCommand(\"delete\");\n    if (isFake) {\n      sel = window.getSelection();\n      r = sel.getRangeAt(0);\n      d.div.attr({\n        contenteditable: \"false\"\n      }).blur();\n      sel.removeAllRanges();\n      sel.addRange(r);\n    }\n    return d.onSelectionChange();\n  };\n})();","updated":"2022-03-16T14:14:41.816215"},{"path":"lib/gui/divEditable/createLineNodes/image/tap/tap.ls","text":"(function(){\n  return function(image, e){\n    var divE;\n    divE = image.closest(\".divEditable\");\n    return setTimeout(function(){\n      var r, sel, ref$;\n      r = document.createRange();\n      r.setStartAfter(image);\n      r.setEndAfter(image);\n      sel = window.getSelection();\n      sel.removeAllRanges();\n      sel.addRange(r);\n      divE.stop();\n      return typeof (ref$ = divE.d.params).onImageTap == 'function' ? ref$.onImageTap(image, divE, e) : void 8;\n    });\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"data/user/coin/remove/remove.ls","text":"(function(){\n  return function(v){\n    var userDescriptionBefore, snapshot, snapshotDate, ref$, ref1$, adjustEvents, userDescriptionAfter;\n    userDescriptionBefore = inc(\"/data/user/calcUserDescription/calc\")();\n    userDescriptionBefore = _.cloneDeep(userDescriptionBefore);\n    if (typeof log != 'undefined' && log !== null) {\n      log.log({\n        event: \"adjustCoins\",\n        value: -1 * v\n      });\n    }\n    snapshot = typeof log != 'undefined' && log !== null ? log.findLast({\n      event: \"snapshot\"\n    }) : void 8;\n    snapshotDate = new Date((ref$ = snapshot != null ? (ref1$ = snapshot.adjustCoins) != null ? ref1$.lastInserted : void 8 : void 8) != null\n      ? ref$\n      : (ref$ = snapshot != null ? snapshot.inserted : void 8) != null ? ref$ : 0);\n    adjustEvents = _.filter(log.list(\"adjustCoins\"), function(e){\n      return !e.inserted || new Date(e.inserted) > snapshotDate;\n    });\n    userDescriptionAfter = inc(\"/data/user/calcUserDescription/calc\")();\n    return typeof log != 'undefined' && log !== null ? log.log({\n      event: \"debugCoins\",\n      adjustBy: -1 * v,\n      coinsBefore: userDescriptionBefore.totalCoins,\n      coinsAfter: userDescriptionAfter.totalCoins,\n      numFilteredAdjust: adjustEvents.length,\n      snapshotDate: snapshotDate,\n      coinChecksum: userDescriptionAfter.totalCoins - userDescriptionBefore.totalCoins\n    }) : void 8;\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"pages/level/finishLevel/_shared/calcText/quotes/quotes-de.ls","text":"(function(){\n  return function(){\n    return {\n      notGoodWords: [\"Glaub an dich!\", \"Nur Geduld!\", \"Jetzt nur nicht aufgeben!\", \"Gib nicht auf!\", \"Bleib am Ball!\", \"Nicht ärgern!\", \"Kopf hoch!\", \"Noch nicht ganz!\"],\n      notGood: [\"Beim nächsten Mal klappt es bestimmt besser.\", \"Das bekommst du noch besser hin.\", \"Übung macht's.\", \"Das kannst du besser.\", \"Probiere es gleich nochmal.\", \"Probiere es weiter.\", \"Da ist noch Luft nach oben.\", \"Alle Superhelden fangen klein an.\", \"Übung macht den Meister.\", \"Beim nächsten Versuch klappt es besser.\", \"Versuch's doch nochmal.\", \"Du kannst mehr, als du denkst.\", \"Es ist noch kein Meister vom Himmel gefallen.\", \"Am besten gleich nochmal.\"],\n      averageWords: [\"Gut!\", \"Gut gemacht!\", \"Nicht übel!\", \"Schön!\", \"Das war gut!\", \"Nicht schlecht!\", \"Schon ziemlich gut!\", \"Das hast du gut gemacht!\", \"Gute Arbeit!\"],\n      average: [\"Nächstes Mal wird's noch besser.\", \"Jetzt bloß nicht das Ziel aus den Augen verlieren.\", \"Jetzt bloß nicht aufgeben.\", \"Aber ich weiß, du kannst mehr.\", \"Probiere es am besten gleich nochmal.\", \"Aber kannst du es noch besser?\", \"Es wird immer besser.\", \"Gleich nochmal.\", \"Probiere es gleich nochmal.\", \"Es wird immer besser.\", \"Bleib am Ball.\", \"Übe fleißig weiter.\", \"Noch ein bisschen üben und der 3. Stern ist da.\"],\n      almostPerfectWords: [\"Geschafft!\", \"Schön!\", \"Yay!\", \"Kompliment!\", \"Toll!\", \"Gute Arbeit!\", \"Wow!\", \"Fast perfekt!\", \"Nicht schlecht, Herr Specht!\", \"Glückwunsch!\", \"Sehr schön!\"],\n      almostPerfect: [\"Fast alles richtig.\", \"Das war stark.\", \"Das hast du wirklich gut gemacht.\", \"Das war raketenstark.\", \"Weiter so.\", \"Fast alles richtig.\", \"Das war stark.\", \"Weiter geht's.\", \"Du bist ein schlaues Köpfchen.\", \"Das bekommt nicht jeder hin.\", \"Du hast es drauf.\", \"Weiter so.\", \"Sauber abgeliefert.\", \"Bald hast du dir eine Krone verdient.\", \"Drei Sterne auf einmal.\", \"Drei Sterne sind da.\", \"Drei Sterne am Start.\"],\n      perfectWords: [\"Super!\", \"Hurra!\", \"Yeah!\", \"Grandios!\", \"Fantastisch!\", \"Großartig!\", \"Astrein!\", \"Spitzenmäßig!\", \"Brillant!\", \"Prima!\", \"Perfekt!\", \"Fabelhaft!\", \"Ay Caramba!\", \"Bravo!\", \"Kompliment!\", \"Boom Shaka Laka!\", \"Genial!\", \"Strike!\"],\n      perfect: [\"Weiter so.\", \"Starke Leistung.\", \"Das ist nicht mehr zu toppen.\", \"Willkommen im Einsteinclub.\", \"Besser geht es nicht.\", \"Alles richtig.\", \"Du hast voll abgerockt.\", \"Das Lernen hat sich gelohnt.\", \"Du hast den Durchblick.\", \"Das war monstermäßig.\", \"Du kannst das.\", \"Du hast es geschafft.\", \"Die Krone steht dir.\", \"Das hast du spitze gemacht.\", \"Alles richtig.\", \"Fehlerfrei.\", \"Das war galaktisch gut.\", \"Du bist ein echter Profi.\"],\n      testFailed: [\"Test leider nicht bestanden.\", \"Leider hast du den Test nicht geschafft.\", \"Test leider nicht geschafft.\", \"Leider hast du den Test nicht bestanden.\", \"Du hast den Test leider nicht bestanden.\", \"Du hast den Test leider nicht geschafft.\", \"Diesmal hast du den Test leider nicht bestanden.\", \"Diesmal hast du den Test leider nicht geschafft.\"],\n      testDone: [\"Test geschafft.\", \"Test bestanden.\", \"Du hast den Test bestanden.\", \"Du hast den Test geschafft.\"],\n      testPerfect: [\"Du hast den Test perfekt bestanden.\", \"Du hast den Test gerockt.\", \"Alles richtig im Test.\", \"Besser kann man den Test nicht machen.\", \"Du hast den Test fehlerfrei bestanden.\", \"Du hast den Test sehr gut bestanden.\", \"Test fehlerfrei geschafft.\", \"Test perfekt geschafft.\", \"Test sehr gut geschafft.\", \"Du hast den Test sehr gut gemacht.\", \"Du hast den Test mit 1+ erledigt.\"],\n      bulb: [\"Geschafft.\", \"Erledigt.\", \"Fertig.\"]\n    };\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"addons/topbarLevel/abortIcon/icon.ls","text":"(function(){\n  return function(page){\n    var params, tap, finish;\n    params = page.params;\n    tap = function(){\n      var player, that, ref$, ref1$, ref2$;\n      if (window.log == null) {\n        return;\n      }\n      player = page.levelPlayer;\n      if (typeof vibrate == 'function') {\n        vibrate(VIBRATION_TYPES.impactMedium);\n      }\n      if (that = player != null ? (ref$ = player.currentSlide) != null ? ref$.onAbortIconTap : void 8 : void 8) {\n        return that(finish);\n      } else if ((player != null ? (ref1$ = player.currentSlide) != null ? ref1$.score.totalScoredAtoms() : void 8 : void 8) > 0 || (player != null ? player.currentSlideIndex : void 8) > 0) {\n        if ((ref2$ = page.topbar.calculator) != null) {\n          ref2$.close();\n        }\n        return inc(\"popup/popup\")(finish);\n      } else {\n        return finish();\n      }\n    };\n    finish = function(){\n      var ref$, ref1$;\n      if ((ref$ = page.levelPlayer) != null) {\n        ref$.abort();\n      }\n      if (((ref1$ = params.context) === \"assistantMath\" || ref1$ === \"assistantMathWithPreschoolProgressBar\") && params.incPathOnLevelAbort != null) {\n        return inc(params.incPathOnLevelAbort)();\n      } else {\n        return startPage({\n          history: function(path){\n            return !_.includes(path, \"/level\");\n          },\n          animation: \"fadeIn\"\n        });\n      }\n    };\n    return Div({\n      flex: \"0 0 2.5em\",\n      display: \"flex\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/iconModern/close.svg\"),\n      color: Color.grey[900],\n      size: \"1.3em\"\n    })).tap({\n      up: tap,\n      tapZone: \"0 1em 1em 0\",\n      animation: \"hover\"\n    }).attr({\n      \"aria-label\": T(\"cancelButton\"),\n      role: \"button\"\n    }).addClass(\"keyManager-esc androidBack\").bind(\"androidBack\", tap).bind(\"keyManager\", tap);\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"pages/level/previewNoUser/_topbarNext/calcBreadcrumbs/calc.ls","text":"(function(){\n  return function(page){\n    return _.compact([\n      {\n        title: T(\"subjects\")\n      }, {\n        title: inc(\"/lib/seo/element/a2/a\")({\n          html: page.planDescription.displayName,\n          pageUrl: inc(\"/data/content/calcBlockPageUrl/calc\")(page.planDescription.planPath)\n        }),\n        tap: function(){\n          return startPage({\n            path: path(\"/pages/content/plan/page\"),\n            params: {\n              blockPath: page.planDescription.planPath,\n              history: -2,\n              animation: \"slideRight\"\n            }\n          });\n        }\n      }, page.level ? {\n        title: inc(\"/lib/seo/element/a2/a\")({\n          html: page.level.parentBlock.title,\n          pageUrl: inc(\"/data/content/calcBlockPageUrl/calc\")(page.level.parentBlock.path)\n        }),\n        tap: function(){\n          var ref$;\n          return startPage({\n            path: path(\"/../app01-block-page/pages/block/page\"),\n            params: {\n              blockPath: (ref$ = page.level) != null ? ref$.parentBlock.path : void 8,\n              history: -1,\n              animation: \"slideRight\"\n            }\n          });\n        }\n      } : void 8\n    ]);\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"lib/init/classKit/handleDeeplinks/startActivity/startBlockPage/start.ls","text":"(function(){\n  return function(blockPuid){\n    var history, i$, ref$, len$, i, p;\n    history = 1;\n    for (i$ = 0, len$ = (ref$ = app.pageHistory).length; i$ < len$; ++i$) {\n      i = i$;\n      p = ref$[i$];\n      if (p.navCategory === \"content\") {\n        history = i - app.pageHistory.length + 1;\n        break;\n      }\n    }\n    return startPage({\n      path: path(\"/../app01-block-page/pages/block/page\"),\n      animation: \"fadeIn\",\n      history: history,\n      params: {\n        blockPuid: blockPuid,\n        isDeepLink: true,\n        context: \"plan\"\n      }\n    });\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"lib/init/startFirstPage/deepLinkContent/level/level.ls","text":"(function(){\n  return function(pageUrl, planDescription){\n    var levelPath, calcLevelPath, checkIfLevelExists, fixBackNavigation, startLevelPage, onNotFound;\n    levelPath = null;\n    calcLevelPath = function(){\n      levelPath = inc(\"calcLevelPath/calc\")(pageUrl, planDescription);\n      return checkIfLevelExists();\n    };\n    checkIfLevelExists = function(){\n      return inc(\"/lib/util/loadLevel/load\")({\n        path: levelPath,\n        onLoaded: engine.isBotMode ? startLevelPage : fixBackNavigation,\n        onError: onNotFound\n      });\n    };\n    fixBackNavigation = function(){\n      var blockPageUrl, blockPath;\n      blockPageUrl = pageUrl.split(\"/\");\n      blockPageUrl.pop();\n      blockPageUrl = blockPageUrl.join(\"/\");\n      blockPath = inc(\"/lib/init/startFirstPage/deepLinkContent/block/calcBlockPath/calc\")(blockPageUrl, planDescription);\n      app.pageHistory = [{\n        path: path(\"/../app01-block-page/pages/block/page\"),\n        navCategory: \"content\",\n        params: {\n          blockPath: blockPath,\n          context: \"plan\",\n          isDeepLink: true\n        },\n        animation: \"fadeIn\"\n      }];\n      return startLevelPage();\n    };\n    startLevelPage = function(){\n      return startPage({\n        path: engine.isBotMode\n          ? path(\"/pages/level/previewNoUser/page\")\n          : path(\"/pages/level/play/page\"),\n        history: engine.isBotMode ? -(app.pageHistory.length - 1) : void 8,\n        animation: \"none\",\n        params: {\n          levelPath: levelPath,\n          context: \"plan\",\n          isDeepLink: true\n        }\n      });\n    };\n    onNotFound = function(){\n      debug(\"content deeplink unknown level \" + pageUrl);\n      return inc(\"../../unknownUrl/unknownUrl\")();\n    };\n    return calcLevelPath();\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"lib/init/startFirstPage/deepLinkContent/block/block.ls","text":"(function(){\n  return function(pageUrl, planDescription){\n    var blockPath, calcBlockPath, checkIfBlockExists, startBlockPage, onNotFound;\n    blockPath = null;\n    calcBlockPath = function(){\n      blockPath = inc(\"calcBlockPath/calc\")(pageUrl, planDescription);\n      return checkIfBlockExists();\n    };\n    checkIfBlockExists = function(){\n      return inc(\"/lib/util/loadBlock/load\")({\n        path: blockPath,\n        onLoaded: startBlockPage,\n        onError: onNotFound\n      });\n    };\n    startBlockPage = function(){\n      return startPage({\n        path: path(\"/../app01-block-page/pages/block/page\"),\n        history: -(app.pageHistory.length - 1),\n        params: {\n          blockPath: blockPath,\n          context: \"plan\",\n          isDeepLink: true\n        }\n      });\n    };\n    onNotFound = function(){\n      debug(\"content deeplink unknown block \" + pageUrl);\n      return inc(\"../../unknownUrl/unknownUrl\")();\n    };\n    return calcBlockPath();\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"pages/content/plan/topics/topic/blockRow/blockRow.ls","text":"(function(){\n  return function(block, page){\n    return inc(\"/../app01-content-row/row/blockRow/row\")({\n      page: page,\n      block: block,\n      context: page.context === \"idePreview\"\n        ? \"idePreview\"\n        : page.context === \"searchDeep\" ? \"searchDeep\" : \"plan\"\n    });\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"lib/util/previewIdeFilePath/startPage/start.ls","text":"(function(){\n  return function(filePath, branch, previewTrainerIndex){\n    var projectName, params, that, project;\n    projectName = filePath.split(\"/\")[2];\n    if (filePath.match(/\\/level[^/]*?$/)) {\n      params = {\n        levelPath: filePath,\n        context: \"idePreview\"\n      };\n      if ((that = previewTrainerIndex) != null) {\n        params.previewTrainerIndex = +that;\n      }\n      startPage({\n        path: path(\"/pages/level/play/page\"),\n        params: params,\n        animation: \"fadeIn\",\n        replace: _.includes(app.currentPagePath, \"pages/level\")\n      });\n      return inc(\"/lib/util/loadLevel/load\")({\n        path: filePath,\n        onLoaded: function(level){\n          return inc(\"checkContent/check\")(level, \"level\");\n        }\n      });\n    } else if (filePath.match(/\\/plan$/)) {\n      return startPage({\n        path: path(\"/pages/content/plan/page\"),\n        params: {\n          planPath: filePath,\n          context: \"idePreview\"\n        },\n        animation: \"fadeIn\",\n        replace: _.includes(app.currentPagePath, \"pages/content/plan\")\n      });\n    } else if (filePath.match(/\\/topic$/)) {\n      return startPage({\n        path: path(\"previewTopic/page\"),\n        params: {\n          topicPath: filePath\n        },\n        animation: \"fadeIn\",\n        replace: _.includes(app.currentPagePath, \"previewTopic/page\")\n      });\n    } else if (filePath.match(/\\/block$/)) {\n      return startPage({\n        path: path(\"/../app01-block-page/pages/block/page\"),\n        params: {\n          blockPath: filePath,\n          context: \"idePreview\"\n        },\n        animation: \"fadeIn\",\n        replace: _.includes(app.currentPagePath, \"pages/content/block\")\n      });\n    } else if (filePath.match(/\\/page$/)) {\n      project = {\n        name: projectName,\n        branch: branch,\n        server: \"https://ide-server.solocode.com\"\n      };\n      return inc(\"/lib/util/loadProject/load\")(project, function(){\n        return startPage({\n          path: filePath,\n          animation: \"none\",\n          replace: true\n        });\n      });\n    } else if (_.startsWith(_.last(filePath.split(\"/\")), \"snip\") || _.startsWith(_.last(filePath.split(\"/\")), \"concept\")) {\n      project = {\n        name: \"snip-shared\"\n      };\n      return inc(\"/lib/util/loadProject/load\")(project, function(){\n        return startPage({\n          path: \"/../snip-shared/sharedPages/idePreview/page\",\n          animation: \"none\",\n          params: {\n            filePath: filePath,\n            branch: branch\n          }\n        });\n      });\n    } else {\n      debug(\"preview file type unknown\");\n      return debug(filePath);\n    }\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"lib/util/isTouchDevice/isTouchDevice.ls","text":"(function(){\n  return function(){\n    return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"lib/gui/input2/onKey/onKey.ls","text":"(function(){\n  return function(o){\n    return function(v, special){\n      if (o.enabled === false) {\n        return;\n      }\n      if (!special) {\n        o.addChar(v);\n        o.change(v);\n      } else if (v === \"newline\") {\n        o.addChar(\"<br>\");\n        o.change(v);\n      } else if (v === \"left\") {\n        o.cursor.goLeft();\n      } else if (v === \"right\") {\n        o.cursor.goRight();\n      } else if (v === \"up\") {\n        o.cursor.goUp();\n      } else if (v === \"down\") {\n        o.cursor.goDown();\n      } else if (v === \"back\") {\n        o.cursor.deletePrevious();\n        o.change(v);\n      } else if (v === \"cmd-a\") {\n        o.selection.selectAll();\n        o.change(v);\n      } else if (v === \"cmd-x\") {\n        o.cut();\n      } else if (v === \"cmd-c\") {\n        o.copy();\n      } else if (v === \"cmd-v\") {\n        o.paste();\n      } else if (v === \"cmd-z\") {\n        o.history.undo();\n      } else if (v === \"cmd-shift-z\") {\n        o.history.redo();\n      } else if (v === \"submit\") {\n        setTimeout(function(){\n          return o.submit();\n        });\n      } else if (v === \"esc\") {\n        setTimeout(function(){\n          return o.stop();\n        });\n      }\n      if (o.multiline) {\n        return o.scrollToCursor();\n      }\n    };\n  };\n})();","updated":"2021-01-12T14:43:29.786908"},{"path":"lib/init/idle/showOverlay/overlays/_shared/overlay/overlay.ls","text":"(function(){\n  return function(){\n    var ref$, ref1$;\n    if ((ref$ = app.lastInput) != null) {\n      ref$.stop();\n    }\n    if ((ref1$ = app.currentPopup) != null) {\n      ref1$.close();\n    }\n    return Div({\n      display: \"flex\",\n      position: \"fixed\",\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0,\n      backgroundColor: \"rgba(255, 255, 255, 0.95)\",\n      zIndex: \"10000\"\n    }).addClass(\"idleOverlay keyManagerScope\").appendTo(body).fadeIn();\n  };\n})();","updated":"2021-01-12T14:43:29.786908"},{"path":"lib/util/startPage/pageStart/handleGuiLanguageChange/changeFont/change.ls","text":"(function(){\n  return function(l){\n    var project;\n    project = l === \"en_us\" || l === \"en_gb\" ? \"font-solocode-set-en-us\" : \"font-solocode-set\";\n    return inc(\"/lib/util/loadProjects/load\")({\n      projectDescriptions: [{\n        project: project\n      }],\n      onProjectMissingError: function(){\n        return typeof log != 'undefined' && log !== null ? log.log({\n          event: \"debugOnProjectMissingErrorChangeFont\",\n          value: project\n        }) : void 8;\n      },\n      onDone: function(){\n        return inc(\"/../\" + project + \"/init\")();\n      }\n    });\n  };\n})();","updated":"2021-05-03T14:25:01.224594"},{"path":"lib/util/pllsCall/clearUrl/clear.ls","text":"(function(){\n  return function(o){\n    return function(){\n      if (_.includes(o.url, \"high\")) {\n        return app.pllsCallUrlHighscore = null;\n      } else {\n        return app.pllsCallUrlDb2 = null;\n      }\n    };\n  };\n})();","updated":"2021-07-29T10:53:02.183061"},{"path":"data/user/calcUserDescription/avatar/calc.ls","text":"(function(){\n  return function(d){\n    var ref$;\n    return (ref$ = d.log.findLast(\"setAvatar\")) != null ? ref$.value : void 8;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/hasAntonPlusHidden/calc.ls","text":"(function(){\n  return function(d){\n    return deviceLog['var'](\"enableHasAntonPlusHidden\") || (!d.hasPlusAccess && inc(\"calcHideByCountryAndLang/calc\")(d)) || false;\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"data/user/calcUserDescription/totalTrophies/calc.ls","text":"(function(){\n  return function(d){\n    var events, t;\n    events = _.filter(d.log.list(\"finishLevel\"), function(e){\n      return e.isTest || e.type === \"test\";\n    });\n    events = _.filterLastInGroup(events, \"puid\");\n    t = _.sumBy(events, function(e){\n      return +e.score;\n    });\n    return t = _.round(t);\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/uniqName/calc.ls","text":"(function(){\n  return function(d){\n    var ref$;\n    return (ref$ = d.log.findLast(\"setUniqName\")) != null ? ref$.value : void 8;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/uniqNameCreated/calc.ls","text":"(function(){\n  return function(d){\n    var ref$;\n    return (ref$ = d.log.findLast(\"setUniqName\")) != null ? ref$.created : void 8;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"lib/util/keyManager/trigger/trigger.ls","text":"(function(){\n  return function(key){\n    var targets, e, res$, i$, len$, el, scopeDivs, lresult$, j$, len1$, div, results$ = [];\n    targets = (function(){\n      try {\n        return body.findAll(\".keyManager-any, .keyManager-\" + (key.charCode || key.functionKey) + \"\");\n      } catch (e$) {\n        e = e$;\n        return body.findAll(\".keyManager-any\");\n      }\n    }());\n    res$ = [];\n    for (i$ = 0, len$ = targets.length; i$ < len$; ++i$) {\n      el = targets[i$];\n      if (!el.isVisible() || getComputedStyle(el).getPropertyValue(\"pointer-events\") === \"none\") {\n        continue;\n      }\n      res$.push(el);\n    }\n    targets = res$;\n    if (targets.length === 0) {\n      return;\n    }\n    scopeDivs = inc(\"calcScopeDivs/calc\")();\n    for (i$ = 0, len$ = targets.length; i$ < len$; ++i$) {\n      el = targets[i$];\n      lresult$ = [];\n      for (j$ = 0, len1$ = scopeDivs.length; j$ < len1$; ++j$) {\n        div = scopeDivs[j$];\n        if (div.contains(el)) {\n          el.triggerCustomEvent({\n            event: \"keyManager\",\n            bubbles: false,\n            detail: {\n              charCode: key.charCode,\n              char: String.fromCharCode(key.charCode),\n              functionKey: key.functionKey,\n              event: key.event\n            }\n          });\n          break;\n        }\n      }\n      results$.push(lresult$);\n    }\n    return results$;\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/gui/divEditable/getSelectedLineDiv/get.ls","text":"(function(){\n  return function(d){\n    var n, lineDiv;\n    n = window.getSelection().anchorNode;\n    return lineDiv = inc(\"../_shared/getParentLine/get\")(n);\n  };\n})();","updated":"2021-01-18T06:07:13.544153"},{"path":"lib/util/pllsCall/onOffline/onOffline.ls","text":"(function(){\n  return function(o){\n    return function(message, additionalData){\n      var ref$;\n      o.clearUrl();\n      o.logDebugEvent(\"offline, \" + message, additionalData);\n      return typeof (ref$ = o.params).onOffline == 'function' ? ref$.onOffline(o.isSamePage()) : void 8;\n    };\n  };\n})();","updated":"2021-07-29T10:53:02.183061"},{"path":"lib/util/pllsCall/calcUrl/calcDb2/calc.ls","text":"(function(){\n  return function(){\n    var that, a, r, url;\n    if (that = app.pllsCallUrlDb2) {\n      return that;\n    }\n    a = \"abcdef\";\n    r = a[_.random(0, a.length - 1)];\n    url = r + \"-apis-db.anton.app/\";\n    return app.pllsCallUrlDb2 = url;\n  };\n})();","updated":"2021-01-19T11:33:28.982162"},{"path":"lib/util/pllsCall/calcUrl/calcHighscore/calc.ls","text":"(function(){\n  return function(){\n    var that, a, r, url;\n    if (that = app.pllsCallUrlHighscore) {\n      return that;\n    }\n    a = \"abcd\";\n    r = a[_.random(0, a.length - 1)];\n    url = r + \"-apis-db-highscore.anton.app/\";\n    return app.pllsCallUrlHighscore = url;\n  };\n})();","updated":"2021-01-19T11:33:28.982162"},{"path":"lib/util/downloadManager/getDownloadBar/bar/bar.ls","text":"(function(){\n  return function(){\n    return Div({\n      width: \"100%\",\n      height: \"100%\",\n      transform: \"scaleX(0)\",\n      transformOrigin: \"left\",\n      transition: \"transform 0.25sec\"\n    });\n  };\n})();","updated":"2023-04-24T09:23:04.816768"},{"path":"lib/gui/screenKeyboard/event/down/down.ls","text":"(function(){\n  return function(o){\n    var onStart;\n    onStart = function(e){\n      var key, ref$;\n      e.preventDefault();\n      if (!document.hasFocus()) {\n        window.focus();\n      }\n      key = inc(\"../_calcKeyFromEvent/calc\")(e);\n      if (o.currentKey) {\n        o.currentKey.up();\n      }\n      o.currentKey = key;\n      if ((ref$ = o.currentKey) != null) {\n        ref$.down();\n      }\n      if (o.currentKey != null) {\n        if (typeof vibrate == 'function') {\n          vibrate(VIBRATION_TYPES.selection);\n        }\n        if (typeof vibrate == 'function') {\n          vibrate(VIBRATION_TYPES.gestureSelectionStart);\n        }\n      }\n      if (e.type === \"mousedown\") {\n        o.mouseBackground.show();\n      }\n      return inc(\"../downLong/setTimeout\")(o);\n    };\n    return o.div.bind(\"touchstart mousedown\", onStart, false);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/event/cancel/cancel.ls","text":"(function(){\n  return function(o){\n    var onCancel;\n    onCancel = function(e){\n      var key, ref$;\n      e.preventDefault();\n      key = inc(\"../_calcKeyFromEvent/calc\")(e);\n      if ((ref$ = o.currentKey) != null) {\n        ref$.cancel();\n      }\n      o.currentKey = null;\n      o.currentTooltip = null;\n      o.mouseBackground.hide();\n      return typeof vibrate == 'function' ? vibrate(VIBRATION_TYPES.gestureSelectionEnd) : void 8;\n    };\n    return o.div.bind(\"touchcancel\", onCancel);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/chat/bottom/buttonsMobileSendOrDown/buttons.ls","text":"(function(){\n  return function(page){\n    var isIos, b;\n    isIos = _.includes(inc(\"/lib/util/calcAppType/calc\")().toLowerCase(), \"ios\");\n    return Div().css({\n      display: \"flex\",\n      borderBottom: b = \"1px solid \" + Color.grey[300],\n      borderLeft: b,\n      borderRight: b,\n      width: \"100%\",\n      alignItems: \"stretch\"\n    }).append(inc(\"downButton/button\")(page, isIos), Div({\n      flex: \"1 1 auto\"\n    }), inc(\"sendButton/button\")(page, isIos));\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/chat/list/row/date/row.ls","text":"(function(){\n  return function(page, data){\n    var d;\n    d = inc(\"/lib/util/formatDate2/format\")(data.date);\n    return Div({\n      width: \"100%\",\n      padding: \"1.5em 0 0.5em\",\n      fontWeight: \"bold\"\n    }).append(d.formats.date);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/util/downloadManager/getDownloadBar/label/label.ls","text":"(function(){\n  return function(options){\n    var div;\n    div = Div({\n      position: \"absolute\",\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0,\n      display: \"flex\",\n      fontSize: \"0.7em\"\n    }).html(\"&nbsp;\");\n    if (options.showLoadingOnly) {\n      div.hide();\n    }\n    return div;\n  };\n})();","updated":"2023-04-24T09:23:04.816768"},{"path":"pages/start/startUser/02_subscribeUserLog/checkAndSyncLog/showErrorPage/show.ls","text":"(function(){\n  return function(userLog, error, o){\n    var params;\n    if (_.startsWith(userLog.authToken, \"T-invalid\")) {\n      if (Store(\"debugLoggerReadOnly\")) {\n        debug(\"Please use the Support Login Feature in the debug popup or the IDE app to log in to a user\");\n      }\n      error == null && (error = {});\n      error.authTokenError = userLog.authToken;\n    }\n    inc(\"../../../00_shared/logSubscribeError/log\")({\n      error: \"user\",\n      log: userLog\n    });\n    params = _.omit(o, [\"page\", \"progressBar\"]);\n    params.error = {\n      error: error,\n      log: userLog.id()\n    };\n    return startPage({\n      path: path(\"../../../00_shared/errorPage/page\"),\n      params: params,\n      replace: true\n    });\n  };\n})();","updated":"2021-07-15T10:32:11.610601"},{"path":"addons/topbar2/close/label/label.ls","text":"(function(){\n  return function(o){\n    var label;\n    label = o.closeLabel || T(\"closeButton\");\n    return Div({\n      flex: \"0 1 auto\",\n      fontSize: \"0.9em\",\n      textAlign: \"left\",\n      whiteSpace: \"nowrap\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\"\n    }).addClass(\"label\").secureHtml(label);\n  };\n})();","updated":"2022-03-17T16:29:05.808317"},{"path":"lib/gui/inputEditable/warnDisplayValue/warn.ls","text":"(function(){\n  return function(i){\n    return setTimeout(function(){\n      var d;\n      d = i.div.style.display;\n      if (d !== \"flex\" && d !== \"inline-flex\" && d !== \"none\") {\n        return debug(\"inputEditable must be flex\");\n      }\n    });\n  };\n})();","updated":"2021-01-29T14:59:29.385264"},{"path":"lib/util/memberCategories/_t.ls","text":"(function(){\n  return {\n    pupilSing: {\n      de: \"Schüler\",\n      en_gb: \"Pupil\",\n      en: \"Student\",\n      fr: \"Élève\",\n      es: \"Estudiante\",\n      pt: \"Aluno(a)\"\n    },\n    pupilSingGendered: {\n      de: \"Schüler/in\",\n      en_gb: \"Pupil\",\n      en: \"Student\",\n      fr: \"Élève\",\n      es: \"Estudiante\",\n      pt: \"Aluno(a)\"\n    },\n    pupilPlur: {\n      de: \"Schüler\",\n      en_gb: \"Pupils\",\n      en: \"Students\",\n      fr: \"Élèves\",\n      es: \"Estudiantes\",\n      pt: \"Alunos\"\n    },\n    pupilPlurGendered: {\n      de: \"Schüler/innen\",\n      en_gb: \"Pupils\",\n      en: \"Students\",\n      fr: \"Élèves\",\n      es: \"Estudiantes\",\n      pt: \"Alunos\"\n    },\n    teacherSing: {\n      de: \"Lehrkraft\",\n      en: \"Teacher\",\n      fr: \"Professeur\",\n      es: \"Docente\",\n      pt: \"Professor(a)\"\n    },\n    teacherSingGendered: {\n      de: \"Lehrkraft\",\n      en: \"Teacher\",\n      fr: \"Professeur·e\",\n      es: \"Docente\",\n      pt: \"Professor(a)\"\n    },\n    teacherPlur: {\n      de: \"Lehrkräfte\",\n      en: \"Teachers\",\n      fr: \"Professeurs\",\n      es: \"Docentes\",\n      pt: \"Professores\"\n    },\n    teacherPlurGendered: {\n      de: \"Lehrkräfte\",\n      en: \"Teachers\",\n      fr: \"Professeur·es\",\n      es: \"Docentes\",\n      pt: \"Professores\"\n    },\n    adminSing: {\n      de: \"Admin\",\n      en: \"Admin\",\n      fr: \"Admin\",\n      es: \"Admin\",\n      pt: \"Admin\"\n    },\n    adminPlur: {\n      de: \"Admins\",\n      en: \"Admins\",\n      fr: \"Admins\",\n      es: \"Admins\",\n      pt: \"Admins\"\n    },\n    adminPlurGendered: {\n      de: \"Admins\",\n      en: \"Admins\",\n      fr: \"Admins\",\n      es: \"Admins\",\n      pt: \"Admins\"\n    }\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"lib/gui/spinner/initKeyframeAnimation/init.ls","text":"(function(){\n  return function(){\n    var style;\n    if (document.head.findFirst('#spinnerAnimation')) {\n      return;\n    }\n    style = Style();\n    style.setAttribute(\"id\", \"spinnerAnimation\");\n    style.innerHTML = \"\\n    .spinnerAnimation {\\n      animation: 3s rotate linear infinite;\\n    }\\n\\n    @keyframes rotate {\\n      from {transform: rotate(0deg);}\\n      to {transform: rotate(360deg);}\\n    }\\n\";\n    return document.head.appendChild(style);\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"lib/util/print/before/addHeaderMedia/add.ls","text":"(function(){\n  return function(){\n    var id, s, tag;\n    id = \"headerMediaPrint\";\n    s = '  \\n    @media print {\\n    \\n      body {height : auto;}\\n      \\n      .noPrint {visibility: hidden;}\\n      \\n      .print {visibility: visible;}\\n\\n    \\n    }\\n\\n    @media screen {\\n    \\n      .noPrint {visibility: visible;}\\n    \\n      .print {visibility: hidden;}\\n\\n    }\\n';\n    if (document.getElementById(id)) {\n      return;\n    }\n    tag = Style();\n    tag.innerHTML = s;\n    tag.attr({\n      id: id\n    });\n    return document.head.appendChild(tag);\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"pages/misc/askPushPermissioniOs/headline/headline.ls","text":"(function(){\n  return function(){\n    return Div({\n      margin: \"0.7em\",\n      fontSize: \"1.2em\"\n    }).html(T(\"shouldSendNotifications\"));\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"pages/level/afterFinish/start/start.ls","text":"(function(){\n  return function(level){\n    if (level.coinData.type === \"firstLevelFinishCoin\" && level.coinData.pagePath) {\n      startPage({\n        path: level.coinData.pagePath,\n        params: level.coinData.pageParams\n      });\n      return;\n    }\n    if (inc(\"showAskPushPermission/show\")()) {\n      return;\n    }\n    if (level.coinData.type === \"newCoin\" && level.coinData.pagePath) {\n      startPage({\n        path: level.coinData.pagePath,\n        params: level.coinData.pageParams\n      });\n      return;\n    }\n    if (inc(\"showAntonPlus1Intro/show\")()) {\n      return;\n    }\n    if (inc(\"showAntonPlus2Avatars/show\")()) {\n      return;\n    }\n    if (inc(\"showAntonPlus3NewFamily/show\")()) {\n      return;\n    }\n    if (inc(\"showAdventCalendar/show\")()) {\n      return;\n    }\n    if (inc(\"showLevelRatingPage/show\")(level)) {\n      return;\n    }\n    return inc(\"close/close\")();\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"pages/misc/askPushPermissioniOs/page.ls","text":"(function(){\n  return function(page){\n    return {\n      start: function(){\n        return page.html(inc(\"image/image\")(), inc(\"headline/headline\")(), inc(\"text/text\")(), inc(\"buttons/buttons\")(page.params.backPage));\n      }\n    };\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"lib/init/debugIcons/developContent/developContent.ls","text":"(function(){\n  return function(){\n    var d, div;\n    d = deviceLog['var'](\"loadDevelopContent\");\n    div = Div({\n      position: \"absolute\",\n      bottom: \"-3px\",\n      right: 0,\n      fontSize: \"0.6em\",\n      pointerEvents: \"none\",\n      color: Color.grey[400]\n    }).addClass(\"debugDevelopContentIcon\").html(d ? \"D\" : \"\");\n    div.refresh = function(){\n      return div.replaceWith(inc(THISFILE)());\n    };\n    return div;\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"pages/misc/askPushPermissioniOs/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"inline-flex\",\n      flexDirection: \"column\",\n      margin: \"0 0.7em 1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"askPushText\"));\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"lib/gui/divEditable/onSelectionChange/on.ls","text":"(function(){\n  return function(d){\n    var sel, ref$, ref1$;\n    sel = window.getSelection();\n    if (!d.isStarted || !d.div.contains(sel.anchorNode) || !d.div.contains(sel.focusNode)) {\n      return;\n    }\n    d.lastSelectionAt = !sel.isCollapsed ? new Date() : void 8;\n    inc(\"fixEmptySelectAll/fix\")(d);\n    inc(\"fixCaretPositionAfterBR/fix\")(d);\n    d.updateCustomCursor();\n    d.lastSelectionPositions = d.getSelectionPositions();\n    if ((ref$ = d.overlayDiv) != null) {\n      ref$.onCursorChange();\n    }\n    return typeof (ref1$ = d.params).onCursorChange == 'function' ? ref1$.onCursorChange() : void 8;\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"lib/gui/screenKeyboard/calcMap/calc.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var template, row, keys, v, width, key;\n      template = inc(\"calcTemplate/calc\")(o);\n      if (!template) {\n        throw Error(\"screenkeyboard template '\" + o.layout + \"' doesn't exist\");\n      }\n      return o.map = (function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = template).length; i$ < len$; ++i$) {\n          row = ref$[i$];\n          results$.push(keys = (fn$()));\n        }\n        return results$;\n        function fn$(){\n          var i$, ref$, len$, results$ = [];\n          for (i$ = 0, len$ = (ref$ = row.split(\"|\")).length; i$ < len$; ++i$) {\n            v = ref$[i$];\n            if (_.includes(v, \"[\")) {\n              v = v.replace(\"]\", \"\");\n              v = v.split(\"[\");\n              width = v[1];\n              v = v[0];\n            } else {\n              width = 1;\n            }\n            if (v === \"submit\" && !o.showSubmit) {\n              continue;\n            }\n            if (v === \"newline\" && !o.showNewLine) {\n              continue;\n            }\n            results$.push(key = {\n              value: v,\n              width: width\n            });\n          }\n          return results$;\n        }\n      }());\n    };\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"pages/standards/start/start.ls","text":"(function(){\n  return function(page){\n    var onError, url, regStandard, regRootSubject, that;\n    onError = function(){\n      return startPage({\n        path: path(\"/pages/static/unknownUrl/page\"),\n        history: -(app.pageHistory.length - 1)\n      });\n    };\n    url = page.deepLinkUrl;\n    regStandard = new RegExp(\"standards/([^/]+)/([^/]+)\");\n    regRootSubject = new RegExp(\"standards/([^/]+)\");\n    if (url.match(regStandard)) {\n      return inc(\"startStandardsPage/start\")(page, onError);\n    } else if (that = url.match(regRootSubject)) {\n      return inc(\"startOverviewSubjects/start\")(page, that, onError);\n    } else {\n      return inc(\"startOverviewRoots/start\")(page);\n    }\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"lib/gui/divEditable/onSelectionChange/fixCaretPositionAfterBR/fix.ls","text":"(function(){\n  return function(d){\n    var sel, n, o, prevNode;\n    sel = window.getSelection();\n    n = sel.anchorNode;\n    o = sel.anchorOffset;\n    if (!sel.isCollapsed || !n.isLineDiv) {\n      return;\n    }\n    prevNode = n.childNodes[o - 1];\n    if ((prevNode != null ? prevNode.tagName : void 8) === \"BR\") {\n      sel.setPosition(n, o - 1);\n      return d.debug(\"fix caret position after br element\");\n    }\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"pages/level/afterFinish/start/showAskPushPermission/show.ls","text":"(function(){\n  return function(){\n    var osVersion, ref$, e, duration, age;\n    osVersion = (ref$ = typeof device != 'undefined' && device !== null ? device.version : void 8) != null ? ref$ : 0;\n    if (!(engine.isiOsApp || (engine.isAndroidApp && inc(\"/lib/util/compareVersionString/compare\")(osVersion, \"13\") >= 0))) {\n      return false;\n    }\n    if (deviceLog.findLast(\"deviceSetPushId\")) {\n      return false;\n    }\n    e = deviceLog.findLast(\"deviceAskPushPermissioniOs\") || deviceLog.findLast(\"deviceAskPushPermissionAndroid\");\n    duration = 1000 * 3600 * 24 * 14;\n    age = new Date() - (e != null ? e.created : void 8);\n    if (e && age < duration) {\n      return false;\n    }\n    startPage({\n      path: path(\"/pages/misc/askPushPermissioniOs/page\"),\n      params: {\n        backPage: {\n          history: \"/level\",\n          animation: \"fadeIn\"\n        }\n      }\n    });\n    return true;\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/basketball/basketball.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"basketball\",\n      project: \"app01-game-basketball\",\n      title: T(\"title\"),\n      category: \"skill\",\n      grade: 2,\n      price: 1,\n      iconPosition: \"50% 10%\",\n      numberOfTries: 3,\n      highscoreDisabled: false,\n      highscoreAscending: false,\n      disabled: false,\n      debugOnly: true,\n      newBadge: true,\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/cityJumper/cityJumper.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"cityJumper\",\n      project: \"game-side-scroller\",\n      title: \"City Jumper\",\n      category: \"skill\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-city-jumper-cover-2\",\n      iconPosition: \"50% 15%\",\n      numberOfTries: 3,\n      highscoreDisabled: false,\n      disabled: false,\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/crazyCobras/crazyCobras.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"crazyCobras\",\n      project: \"app01-game-snake\",\n      title: \"Crazy Cobras\",\n      category: \"skill\",\n      grade: 4,\n      price: 1,\n      icon: \"solocode_game-crazy-cobras-new\",\n      iconPosition: \"0% 0%\",\n      numberOfTries: 3,\n      highscoreAscending: false,\n      highscoreType: \"percentage\",\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"addons/topbarLevel/calculator/calculator/animations/animations.ls","text":"(function(){\n  return function(o){\n    return {\n      intro: function(onCompleted){\n        return o.div2.keyframeAnimate({\n          keyframes: {\n            \"70%\": {\n              transform: \"translateY(-27px) rotate(5deg)\"\n            },\n            \"100%\": {\n              transform: \"translateY(-30px) rotate(0deg)\"\n            }\n          },\n          delay: 1000,\n          duration: 400,\n          onCompleted: onCompleted\n        });\n      },\n      outro: function(onCompleted){\n        return o.div2.keyframeAnimate({\n          keyframes: {\n            \"100%\": {\n              transform: \"translateY(-100%)\"\n            }\n          },\n          delay: 0,\n          duration: 400,\n          onCompleted: onCompleted\n        });\n      },\n      open: function(){\n        o.label.content.keyframeAnimate({\n          keyframes: {\n            \"100%\": {\n              paddingLeft: \"0.7em\",\n              paddingRight: \"0.7em\",\n              paddingBottom: \"0.7em\"\n            }\n          },\n          duration: 300\n        });\n        return requestAnimationFrame(function(){\n          var h;\n          h = o.content.height();\n          o.content.css({\n            transform: \"translateY(\" + h * 0.5 + \"px)\",\n            transformOrigin: \"50% 100%\",\n            opacity: 0\n          });\n          return o.content.keyframeAnimate({\n            keyframes: {\n              \"0%\": {\n                transform: \"translateY(\" + h * 0.5 + \"px)\",\n                opacity: 0\n              },\n              \"50%\": {\n                transform: \"translateY(\" + h * 0.1 + \"px)\"\n              },\n              \"70%\": {\n                transform: \"translateY(\" + h * 0.03 + \"px)\"\n              },\n              \"100%\": {\n                transform: \"translateY(0px)\",\n                opacity: 1\n              }\n            },\n            duration: 300,\n            onCompleted: function(){\n              return o.content.css({\n                transform: \"\"\n              });\n            }\n          });\n        });\n      },\n      close: function(){\n        o.label.content.keyframeAnimate({\n          keyframes: {\n            \"100%\": {\n              paddingLeft: 0,\n              paddingRight: 0,\n              paddingBottom: 0\n            }\n          },\n          duration: 200\n        });\n        return o.content.keyframeAnimate({\n          keyframes: {\n            \"90%\": {\n              opacity: 0.9\n            },\n            \"100%\": {\n              transform: \"translateY(\" + o.content.height() * 0.5 + \"px)\",\n              opacity: 0\n            }\n          },\n          timing: \"ease-in-out\",\n          duration: 200\n        });\n      }\n    };\n  };\n})();","updated":"2021-07-05T10:49:41.118208"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/dragonHunter/dragonHunter.ls","text":"(function(){\n  return function(){\n    var tips;\n    return {\n      id: \"dragonHunter\",\n      project: \"app01-game-dragon-hunter\",\n      title: \"Dragon Hunter\",\n      price: 1,\n      category: \"puzzle\",\n      grade: 4,\n      icon: \"solocode_game-dragon-hunter-cover-1_crop-48-51-300-300\",\n      iconPosition: \"50% 40%\",\n      numberOfTries: 3,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }, {\n          value: 3,\n          title: T(\"easyFixed\")\n        }, {\n          value: 4,\n          title: T(\"mediumFixed\")\n        }, {\n          value: 5,\n          title: T(\"hardFixed\")\n        }\n      ],\n      newBadge: true,\n      debugOnly: true,\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\"),\n      tips: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? tips = [T(\"tip1Desktop\"), T(\"tip2\"), T(\"tip3Desktop\"), T(\"tip4Desktop\"), T(\"tip5\")]\n        : tips = [T(\"tip1\"), T(\"tip2\"), T(\"tip3\"), T(\"tip4\"), T(\"tip5\")]\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/misc/phoneNumber/show/withoutNumber/buttonAdd/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      return inc(\"/pages/misc/_shared/confirmAge16AndPrivacy/confirm\")(function(){\n        return startPage({\n          path: path(\"/pages/misc/phoneNumber/edit/page\"),\n          animation: \"slideUp\"\n        });\n      });\n    };\n    return Button({\n      label: T(\"addPhoneNumber\"),\n      action: tap\n    }).css({\n      width: \"15em\",\n      borderRadius: \"8px\",\n      marginBottom: \"1.2em\"\n    });\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/marbleMaze/marbleMaze.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"marbleMaze\",\n      project: \"game-maze\",\n      title: \"Marble Maze\",\n      category: \"skill\",\n      grade: 3,\n      price: 1,\n      icon: \"solocode_game-marble-maze-cover-3\",\n      iconPosition: \"50% 50%\",\n      numberOfTries: 3,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      debugOnly: false,\n      newBadge: false,\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }, {\n          value: 10,\n          title: T(\"impossible\"),\n          debugOnly: true\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/pearlParty/pearlParty.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"pearlParty\",\n      project: \"app01-game-colorballs\",\n      title: \"Pearl Party\",\n      category: \"puzzle\",\n      grade: 3,\n      price: 1,\n      icon: \"solocode_game-pearl-party-cover-final\",\n      iconPosition: \"0% 0%\",\n      numberOfTries: 3,\n      highscoreAscending: false,\n      plusOnly: true,\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manualMobile\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/snowballBattle/snowballBattle.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"snowballBattle\",\n      project: \"game-snowball-battle\",\n      title: \"Snowball Fight\",\n      category: \"skill\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-snowball-battle-cover-new\",\n      iconPosition: \"50% 5%\",\n      numberOfTries: 3,\n      highscoreAscending: false,\n      highscoreDisabled: false,\n      disabled: false,\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/spaceBlox/spaceBlox.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"spaceBlox\",\n      project: \"app01-game-space-blox\",\n      title: \"Space Blox\",\n      category: \"skill\",\n      grade: 3,\n      price: 1,\n      icon: \"solocode_game-space-blox-cover-3\",\n      iconPosition: \"50% 40%\",\n      numberOfTries: 3,\n      highscoreAscending: false,\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/stroobTest/stroobTest.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"stroobTest\",\n      project: \"app01-game-stroob-test\",\n      title: \"Stroop Test\",\n      category: \"brain\",\n      grade: 3,\n      price: 1,\n      icon: \"solocode_app-game-stroop-cover-9\",\n      iconPosition: \"50% 50%\",\n      numberOfTries: 3,\n      pagePath: path(\"/../app01-game-stroob-test/pages/game/page\"),\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/superBubble/superBubble.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"superBubble\",\n      project: \"app01-game-star-trip\",\n      title: \"Super Bubble\",\n      category: \"skill\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-super-bubble\",\n      iconPosition: \"50% 20%\",\n      numberOfTries: 3,\n      highscoreAscending: false,\n      debugOnly: false,\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDektop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/superRacer/superRacer.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"superRacer\",\n      project: \"game-super-racer\",\n      title: \"Super Racer\",\n      category: \"skill\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-super-racer-cover-2\",\n      iconPosition: \"50% 40%\",\n      numberOfTries: 3,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/towerBuilder/towerBuilder.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"towerBuilder\",\n      project: \"app01-game-tower-builder\",\n      title: \"Tower Builder\",\n      category: \"skill\",\n      grade: 4,\n      price: 1,\n      icon: \"solocode_game-tower-builder-4\",\n      numberOfTries: 3,\n      highscoreAscending: false,\n      highscoreDisabled: false,\n      disabled: false,\n      debugOnly: false,\n      newBadge: false,\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"addons/navbar/bar/user/user/_menu/items/item/new/new.ls","text":"(function(){\n  return function(item){\n    if (!item.isNew) {\n      return;\n    }\n    return Div({\n      background: Color.blue[500],\n      color: Color.white,\n      fontSize: \"0.7em\",\n      padding: \"0 0.2em\",\n      borderRadius: \"0.1em\"\n    }).html(T(\"new\"));\n  };\n})();","updated":"2021-10-25T12:34:10.726624"},{"path":"addons/topbarGame/header/center/gameScore/title/title.ls","text":"(function(){\n  return function(o){\n    var div;\n    o.updateGameScore = function(){\n      if (!o.gameScore && o.gameScore !== \"0\") {\n        div.empty();\n        return;\n      }\n      return div.html(o.gameScore);\n    };\n    return div = Div({\n      flex: \"0 1 auto\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      padding: \"0.3em 0\",\n      whiteSpace: \"nowrap\",\n      color: o.gameTextColor\n    });\n  };\n})();","updated":"2023-08-23T16:20:37.702218"},{"path":"pages/start/login/relogin/02_form/page.ls","text":"(function(){\n  return function(page){\n    var p;\n    p = page.params;\n    page.logId = p.logId;\n    page.type = p.type;\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        return page.html(inc(\"title/title\")(page), inc(\"form/form\")(page));\n      }\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"lib/init/logDeviceStartEvents/androidInstallReferrer/log.ls","text":"(function(){\n  return function(){\n    var eventName;\n    if (!window.InstallReferrer) {\n      return;\n    }\n    if (!engine.isAndroidApp) {\n      return;\n    }\n    eventName = \"deviceAndroidInstallReferrer\";\n    if (deviceLog.findLast(eventName)) {\n      return;\n    }\n    return InstallReferrer.getReferrer(function(data){\n      return deviceLog.log({\n        event: eventName,\n        value: data\n      });\n    }, function(e){\n      return deviceLog.log({\n        event: eventName,\n        error: e\n      });\n    });\n  };\n})();","updated":"2021-08-25T14:30:57.763866"},{"path":"addons/topbarLevel/feedbackIcon/00_shared/button/button.ls","text":"(function(){\n  return function(label, click){\n    return Button(label).css({\n      minWidth: \"5em\",\n      margin: \"0.5em\"\n    }).tap(click);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbarLevel/progressBar/element/element.ls","text":"(function(){\n  return function(type, totalProgressElements){\n    var color, div;\n    color = type === \"green\"\n      ? Color.green[500]\n      : type === \"red\"\n        ? Color.red[500]\n        : type === \"grey\" ? Color.grey[350] : void 8;\n    div = Div().css({\n      display: \"inline-block\",\n      height: \"100%\",\n      width: 0,\n      verticalAlign: \"top\"\n    }).append(Div().css({\n      position: \"absolute\",\n      left: \"-1px\",\n      right: \"-1px\",\n      top: \"-1px\",\n      bottom: \"-1px\",\n      backgroundColor: color\n    }));\n    div.count = 1;\n    div.type = type;\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/divEditable/cleanupLine/unwrapSpans/unwrap.ls","text":"(function(){\n  return function(d, lineDiv){\n    var spans, selPos, i$, len$, span;\n    spans = lineDiv.findAll(\"span\");\n    if (spans.length === 0) {\n      return;\n    }\n    selPos = d.getSelectionPositions();\n    for (i$ = 0, len$ = spans.length; i$ < len$; ++i$) {\n      span = spans[i$];\n      d.debug(\"unwrap span\");\n      span.unwrap();\n    }\n    lineDiv.normalize();\n    return d.setSelectionPositions(selPos);\n  };\n})();","updated":"2020-12-01T12:57:35.647787"},{"path":"lib/util/previewIdeFilePath/startPage/previewTopic/blocks/blocks.ls","text":"(function(){\n  return function(page){\n    var block;\n    return Div({\n      margin: \"0 auto\",\n      width: \"35em\",\n      maxWidth: \"95%\"\n    }).append((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = page.blocks).length; i$ < len$; ++i$) {\n        block = ref$[i$];\n        results$.push(inc(\"/../app01-content-row/row/blockRow/row\")({\n          page: page,\n          block: block,\n          context: \"idePreview\"\n        }));\n      }\n      return results$;\n    }()));\n  };\n})();","updated":"2026-04-15T11:18:29.991457"},{"path":"pages/misc/password/reset/04_resetPasswordPassword/validate/validate.ls","text":"(function(){\n  return function(form){\n    var value1, value2;\n    value1 = form.input1.getValue();\n    value2 = form.input2.getValue();\n    if (value1 === \"\") {\n      form.error.html(T(\"emptyPassword\"));\n      form.input1.start();\n      return false;\n    }\n    if (value2 === \"\") {\n      form.error.html(T(\"emptyPassword\"));\n      return false;\n    }\n    if (value1 !== value2) {\n      form.error.html(T(\"passwordsNotEqual\"));\n      form.input2.selectAll();\n      return false;\n    }\n    return true;\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/05_resetPasswordDone/_t.ls","text":"(function(){\n  return {\n    passwordResetSuccess: {\n      de: \"Du hast dein Passwort erfolgreich neu gesetzt.\",\n      en: \"You have successfully reset your password.\",\n      fr: \"Tu as bien réinitialisé ton mot de passe.\",\n      es: \"Restableciste tu contraseña exitosamente.\",\n      pt: \"Você redefiniu sua senha com sucesso.\"\n    }\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/gui/input2/clipboardPaste/paste.ls","text":"(function(){\n  return function(o){\n    return function(){\n      return inc(\"/lib/util/clipboard/get\")(function(error, result){\n        if (error) {\n          return inc(\"/lib/gui/toast/toast\")({\n            label: T(\"noClipboard\")\n          });\n        } else {\n          return o.setSelectedValue(result);\n        }\n      });\n    };\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/gui/input2/disable/disable.ls","text":"(function(){\n  return function(o){\n    return function(){\n      o.enabled = false;\n      return o.div.css({\n        cursor: \"default\"\n      });\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/formatDate2/addDateFormats/add.ls","text":"(function(){\n  return function(o, now, date){\n    var ensureDate, ref$, isToday, isYesterday, isTomorrow, dateFull, dateShort, h, time;\n    ensureDate = (ref$ = o.params.ensureDate) != null ? ref$ : false;\n    isToday = now.getDate() === +o.d && now.getMonth() + 1 === +o.m && now.getFullYear() === +o.Y;\n    isYesterday = now.getDate() - 1 === +o.d && now.getMonth() + 1 === +o.m && now.getFullYear() === +o.Y;\n    isTomorrow = now.getDate() + 1 === +o.d && now.getMonth() + 1 === +o.m && now.getFullYear() === +o.Y;\n    dateFull = isToday && !ensureDate\n      ? T(\"today\")\n      : isYesterday && !ensureDate\n        ? T(\"yesterday\")\n        : isTomorrow && !ensureDate\n          ? T(\"tomorrow\")\n          : twitch({\n            de: o.D + \". \" + o.MM + \" \" + o.Y,\n            en: o.MM + \" \" + o.D + \", \" + o.Y,\n            en_gb: o.d + \" \" + o.MM + \" \" + o.Y,\n            fr: o.d + \" \" + o.MM + \" \" + o.Y,\n            es: o.d + \" de \" + o.MM + \" de \" + o.Y,\n            pt: o.d + \" de \" + o.MM + \" de \" + o.Y\n          });\n    dateShort = isToday && !ensureDate\n      ? T(\"today\")\n      : isYesterday && !ensureDate\n        ? T(\"yesterday\")\n        : isTomorrow && !ensureDate\n          ? T(\"tomorrow\")\n          : twitch({\n            de: o.D + \".\" + o.M + \".\" + o.y,\n            en: o.M + \"/\" + o.D + \"/\" + o.y,\n            en_gb: o.D + \"/\" + o.M + \"/\" + o.y,\n            fr: o.D + \"/\" + o.M + \"/\" + o.y,\n            es: o.D + \"/\" + o.M + \"/\" + o.y,\n            pt: o.D + \".\" + o.M + \".\" + o.y\n          });\n    h = date.getHours();\n    time = twitch({\n      de: o.TH + \":\" + o.TM,\n      en: h >= 12\n        ? (h === 12\n          ? 12\n          : h - 12) + \":\" + o.TM + \"pm\"\n        : (h === 0 ? 12 : h) + \":\" + o.TM + \"am\",\n      fr: o.TH + \"h\" + o.TM,\n      es: o.TH + \":\" + o.TM,\n      pt: o.TH + \"h\" + o.TM\n    });\n    return o.formats = {\n      full: dateFull + T(\"dateTimeSeparator\") + time,\n      fullShort: dateShort + T(\"dateTimeSeparator\") + time,\n      time: time,\n      date: dateFull,\n      dateShort: dateShort\n    };\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/content/plansNext/plansByCategory/row/header/lastViewed/lastViewed.ls","text":"(function(){\n  return function(categoryData){\n    var e;\n    if (categoryData.isExpanded) {\n      return;\n    }\n    e = typeof log != 'undefined' && log !== null ? log.findLast({\n      event: \"setCurrentPlan\"\n    }) : void 8;\n    if (!e || !_.find(categoryData.plans, {\n      planPath: e.plan\n    })) {\n      return;\n    }\n    return Div({\n      position: \"absolute\",\n      top: \"0.1em\",\n      right: \"0.3em\",\n      fontSize: \"0.7em\",\n      color: Color.grey[600]\n    }).html(T(\"lastViewed\"));\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/content/plansNext/plansByCategory/row/plans/planRow/lastViewed/lastViewed.ls","text":"(function(){\n  return function(plan){\n    var e;\n    e = typeof log != 'undefined' && log !== null ? log.findLast({\n      event: \"setCurrentPlan\"\n    }) : void 8;\n    if (!e || plan.planPath !== e.plan) {\n      return;\n    }\n    return Div({\n      position: \"absolute\",\n      top: \"0.1em\",\n      right: \"0.3em\",\n      fontSize: \"0.7em\",\n      color: Color.grey[600]\n    }).html(T(\"lastViewed\"));\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/level/previewNoUser/_topbarNext/_t.ls","text":"(function(){\n  return {\n    subjects: {\n      de: \"Fächer\",\n      en: \"Subjects\",\n      fr: \"Matières\",\n      es: \"Materias\",\n      pt: \"Disciplinas\"\n    }\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/misc/email/edit/onOffline/onOffline.ls","text":"(function(){\n  return function(page){\n    return function(){\n      page.form.hideSpinner();\n      page.form.input.start();\n      return inc(\"/lib/offline/offlinePopup/popup\")();\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"lib/gui/inputForm/inputForm2x.ls","text":"(function(){\n  return function(o){\n    var trimInput, onStart1, onSubmit1, onChange1, onStart2, onSubmit2, onChange2, showSpinner, hideSpinner, div;\n    o.submitLabel == null && (o.submitLabel = T(\"continueButton\"));\n    trimInput = function(input){\n      if (!o.isPassword) {\n        return input.setValue(input.getValue().trim());\n      }\n    };\n    onStart1 = function(){\n      return typeof o.start1 == 'function' ? o.start1() : void 8;\n    };\n    onSubmit1 = function(){\n      var ref$, ref1$;\n      trimInput(o.input1);\n      o.input1.stop();\n      if ((ref$ = o.error) != null) {\n        ref$.html(\"&nbsp;\");\n      }\n      return (ref1$ = o.input2) != null ? ref1$.start() : void 8;\n    };\n    onChange1 = function(key){\n      var ref$;\n      if ((ref$ = o.error) != null) {\n        ref$.html(\"&nbsp;\");\n      }\n      return typeof o.change == 'function' ? o.change(key) : void 8;\n    };\n    onStart2 = function(){\n      return typeof o.start2 == 'function' ? o.start2() : void 8;\n    };\n    onSubmit2 = function(){\n      var ref$;\n      trimInput(o.input2);\n      if ((ref$ = o.error) != null) {\n        ref$.html(\"&nbsp;\");\n      }\n      return o.submit();\n    };\n    onChange2 = function(key){\n      var ref$;\n      if ((ref$ = o.error) != null) {\n        ref$.html(\"&nbsp;\");\n      }\n      return typeof o.change == 'function' ? o.change(key) : void 8;\n    };\n    showSpinner = function(){\n      var ref$;\n      div.css({\n        pointerEvents: \"none\"\n      });\n      o.input1.disable();\n      o.input2.disable();\n      if ((ref$ = o.spinner) != null) {\n        ref$.remove();\n      }\n      return o.error.append(o.spinner = inc(\"spinner/spinner\")());\n    };\n    hideSpinner = function(){\n      div.css({\n        pointerEvents: \"\"\n      });\n      o.input1.enable();\n      o.input2.enable();\n      return o.spinner.remove();\n    };\n    div = Div().append(o.label1 = inc(\"label/label\")(o.label1), o.input1 = inc(\"input/input\")(onStart1, onSubmit1, onChange1, o, o.value1), o.label2 = inc(\"label/label\")(o.label2), o.input2 = inc(\"input/input\")(onStart2, onSubmit2, onChange2, o, o.value2), Div().append(o.error = inc(\"error/error\")()), o.forceShowButtons === true || o.input1.isDesktop() ? inc(\"/lib/gui/buttonsSubmitCancel/buttons\")({\n      submit: o.submit,\n      submitLabel: o.submitLabel,\n      cancel: o.cancel\n    }).css({\n      marginTop: \"2.5em\"\n    }) : void 8);\n    div.input1 = o.input1;\n    div.input2 = o.input2;\n    div.error = o.error;\n    div.isDesktop = o.input1.isDesktop;\n    div.showSpinner = showSpinner;\n    div.hideSpinner = hideSpinner;\n    return div;\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"lib/gui/screenKeyboard/createKeys/keys/left/key.ls","text":"(function(){\n  return function(key, o){\n    var down, up, cancel, div;\n    down = function(){\n      return inc(\"repeater/start\")(o, key, 500);\n    };\n    up = function(){\n      return cancel();\n    };\n    cancel = function(){\n      return clearTimeout(key.repeaterTimeout);\n    };\n    return div = inc(\"../_div/div\")({\n      o: o,\n      key: key,\n      keyDivHtml: inc(\"icon/icon\")(),\n      color: \"grey1\",\n      down: down,\n      up: up,\n      cancel: cancel\n    });\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/event/_calcKeyFromEvent/calc.ls","text":"(function(){\n  return function(e){\n    var x, ref$, y, div, key;\n    x = (ref$ = e.clientX) != null\n      ? ref$\n      : e.changedTouches[0].clientX;\n    x = Math.max(x, 0);\n    y = (ref$ = e.clientY) != null\n      ? ref$\n      : e.changedTouches[0].clientY;\n    y = Math.max(y, 0);\n    div = document.elementFromPoint(x, y);\n    return key = div != null ? div.key : void 8;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/previewNoUser/_topbarNext/calcTitle/calc.ls","text":"(function(){\n  return function(page){\n    if (page.level) {\n      return T(\"level\") + \": \" + page.level.title;\n    } else {\n      return \"&nbsp;\";\n    }\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/level/previewNoUser/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    var topbar;\n    topbar = inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"hamburger\",\n      title: inc(\"calcTitle/calc\")(page),\n      breadcrumbs: inc(\"calcBreadcrumbs/calc\")(page)\n    });\n    topbar.update = function(){\n      return topbar.replaceWith(inc(THISFILE)(page));\n    };\n    return topbar;\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"lib/init/classKit/levelPlayer/abort/abort.ls","text":"(function(){\n  return function(){\n    if (typeof ClassKitPlugin == 'undefined' || ClassKitPlugin === null) {\n      return;\n    }\n    ClassKitPlugin.endActivity(function(error){});\n    return ClassKitPlugin.save(function(error){});\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/misc/qrScanner/bottom/bottom.ls","text":"(function(){\n  return function(toggleCamera){\n    var backCamera, b2;\n    backCamera = true;\n    return Div({\n      padding: \"0.5em\",\n      textAlign: \"center\"\n    }).html(Div({\n      margin: \"0 auto\"\n    }).html(b2 = Button({\n      label: T(\"backCamera\"),\n      icon: path(\"/../app01/lib/svg/shape/flip.svg\")\n    }).tap(function(){\n      backCamera = !backCamera;\n      toggleCamera();\n      if (backCamera) {\n        return b2.setLabel(T(\"backCamera\"));\n      } else {\n        return b2.setLabel(T(\"frontCamera\"));\n      }\n    }).css({\n      margin: \"0.5em\"\n    })));\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"lib/util/pllsCall/call.ls","text":"(function(){\n  return function(p){\n    var o;\n    o = {};\n    o.params = p;\n    o.startedAt = new Date();\n    o.requestTimeout = null;\n    o.isDone = false;\n    o.currentPage = app.currentPage;\n    o.xhr = new XMLHttpRequest();\n    o.url = inc(\"calcUrl/calc\")(o);\n    o.clearUrl = inc(\"clearUrl/clear\")(o);\n    o.isVisible = inc(\"isVisible/isVisible\")(o);\n    o.isSamePage = inc(\"isSamePage/isSamePage\")(o);\n    o.logDebugEvent = inc(\"logDebugEvent/log\")(o);\n    o.send = inc(\"send/send\")(o);\n    o.resend = inc(\"resend/resend\")(o);\n    o.onLoaded = inc(\"onLoaded/onLoaded\")(o);\n    o.onOffline = inc(\"onOffline/onOffline\")(o);\n    o.onError = inc(\"onError/onError\")(o);\n    o.showCaptcha = inc(\"showCaptcha/show\")(o);\n    o.setTimeout = inc(\"setTimeout/setTimeout\")(o);\n    if (engine.simulateOffline) {\n      return o.onOffline(\"simulateOffline\");\n    } else if (engine.simulateError) {\n      return o.onError(\"simulateError\");\n    } else {\n      o.send();\n      return o.setTimeout();\n    }\n  };\n})();","updated":"2022-03-28T09:49:10.847164"},{"path":"pages/misc/qrScanner/overlayDiv/div.ls","text":"(function(){\n  return function(){\n    return Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0,\n      background: \"white\",\n      width: \"100%\",\n      height: \"var(--centerHeight)\",\n      display: \"flex\",\n      alignItems: \"center\"\n    }).html(inc(\"/lib/gui/spinner/spinner\")());\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/content/plansNext/calcPlansData/calc.ls","text":"(function(){\n  var plansDataCached;\n  plansDataCached = {};\n  return function(page){\n    var plans, plansBySubject, plansData, res$, subject;\n    if (page.params.history < 0 && plansDataCached.plans && plansDataCached.language === engine.guiLanguage) {\n      return plansDataCached.plans;\n    }\n    plans = inc(\"/../app01/data/content/calcPlanDescriptions/calc\")();\n    plans = _.filter(plans, \"subject\");\n    plansBySubject = _.groupBy(plans, \"subject\");\n    res$ = [];\n    for (subject in plansBySubject) {\n      plans = plansBySubject[subject];\n      res$.push({\n        title: plans[0].subjectName || \"Debug\",\n        subject: subject,\n        items: _.map(plans, fn$)\n      });\n    }\n    plansData = res$;\n    inc(\"pimpPreschool/pimp\")(plansData);\n    plansDataCached = {\n      language: engine.guiLanguage,\n      plans: plansData\n    };\n    return plansData;\n    function fn$(plan){\n      return {\n        rowType: \"plan\",\n        plan: plan\n      };\n    }\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"lib/init/logDeviceStartEvents/setMobileDeviceId/log.ls","text":"(function(){\n  return function(){\n    var e, uuid;\n    if (!((typeof device != 'undefined' && device !== null) && device.uuid)) {\n      return;\n    }\n    e = deviceLog.findLast(\"deviceSetMobileDeviceUuid\");\n    uuid = device.uuid;\n    if ((e != null ? e.value : void 8) !== uuid) {\n      return deviceLog.log({\n        event: \"deviceSetMobileDeviceUuid\",\n        value: uuid\n      });\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/misc/qrScanner/topbar/topbar.ls","text":"(function(){\n  return function(startDate){\n    return inc(\"/addons/topbar2/topbar\")({\n      title: T(\"scanQRCode\"),\n      close: function(){\n        var duration;\n        duration = new Date() - startDate;\n        deviceLog.log({\n          event: \"debugQrcodeAbort\",\n          duration: duration\n        });\n        return startPage({\n          history: -1,\n          animation: \"slideDown\"\n        });\n      }\n    });\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"lib/init/deviceCleanup/_getFreeSpace/get.ls","text":"(function(){\n  return function(onDone){\n    if (!engine.isMobileApp) {\n      onDone();\n      return;\n    }\n    return cordova.exec(onDone, onDone, \"File\", \"getFreeDiskSpace\", []);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"data/user/calcUserDescription/hasAntonPlusHidden/calcHideByCountryAndLang/calc.ls","text":"(function(){\n  return function(d){\n    var e, ref$, ref1$;\n    e = d.log.findLast(\"setNewUser\");\n    if (!e) {\n      return false;\n    }\n    return ((ref$ = (ref1$ = e.value.country) != null ? ref1$.toLowerCase() : void 8) === \"ca\" || ref$ === \"gb\" || ref$ === \"us\" || ref$ === \"au\" || ref$ === \"co\" || ref$ === \"mx\" || ref$ === \"es\") && engine.guiLanguage !== \"de\";\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/hasPlusAccess/calc.ls","text":"(function(){\n  return function(d){\n    return d.isPlus || d.isPlusFamily || d.isPlusTeacher || d.isPlusFamilyMember || d.isPlusSchoolMember;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/hasPlusFamilyAccess/calc.ls","text":"(function(){\n  return function(d){\n    return d.isPlusFamily || d.isPlusTeacher;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"lib/init/deviceCleanup/_removeFilesAsync/remove.ls","text":"(function(){\n  return function(oldFiles, onDone){\n    var i, deleteFile;\n    if (oldFiles == null) {\n      onDone();\n      return;\n    }\n    i = -1;\n    if (oldFiles.length === 0) {\n      onDone();\n      return;\n    }\n    deleteFile = function(){\n      var file;\n      i++;\n      file = oldFiles[i];\n      if (file) {\n        return app.fileSystem.removeFile(file.fullPath, function(){\n          return setTimeout(deleteFile, 100);\n        });\n      } else {\n        return onDone();\n      }\n    };\n    return deleteFile();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"data/user/calcUserDescription/isPlus/calc.ls","text":"(function(){\n  return function(d){\n    var e;\n    e = d.log.findLast({\n      event: \"setProduct\",\n      productName: \"plus\"\n    });\n    return e != null && new Date() < new Date(e.validUntil);\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/debug/calcDebugCode/calc.ls","text":"(function(){\n  return function(){\n    var changeInterval, d, r, s, a, i$, to$, i, validFor;\n    changeInterval = 60 * 1000;\n    d = new Date().getTime();\n    d = Math.floor(d / changeInterval);\n    _.setRandomSeed(d);\n    r = _.randomWithSeed(1048576, 16777215);\n    s = r.toString(16);\n    a = [];\n    for (i$ = 0, to$ = s.length; i$ < to$; ++i$) {\n      i = i$;\n      a.push(s[i]);\n    }\n    a = _.shuffleWithSeed(a);\n    validFor = changeInterval - (new Date().getTime() - d * changeInterval);\n    return {\n      code: a.join(\"\"),\n      validFor: validFor,\n      changeInterval: changeInterval\n    };\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/isPlusFamily/calc.ls","text":"(function(){\n  return function(d){\n    var e;\n    e = d.log.findLast({\n      event: \"setProduct\",\n      productName: \"plusFamily\"\n    });\n    return e != null && new Date() < new Date(e.validUntil);\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/school/calcDirDisplayName/calc.ls","text":"(function(){\n  return function(o, format){\n    var a, s;\n    if (!(o != null && o.dirRole) && !(o != null && o.dirName)) {\n      return;\n    }\n    format == null && (format = \"long\");\n    a = [];\n    if (o.dirTitle) {\n      a.push(o.dirTitle);\n    }\n    if (o.dirName) {\n      a.push(o.dirName);\n    }\n    if (o.dirSurname) {\n      a.push(o.dirSurname);\n    }\n    s = a.join(\" \");\n    if (format === \"short\") {\n      return s;\n    }\n    if (o.dirClass) {\n      s += \", \" + o.dirClass;\n    }\n    if (o.dirReference) {\n      s += \", \" + o.dirReference;\n    }\n    return \"@&nbsp;\" + s;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/school/calcSchoolDescription/calcHasAntonPlus/calc.ls","text":"(function(){\n  return function(schoolLog){\n    var e;\n    e = schoolLog.findLast(\"setSchoolHasAntonPlus\");\n    if (!(e != null && e.value)) {\n      return false;\n    }\n    if (e.validUntil) {\n      return new Date(e.validUntil) > new Date();\n    }\n    return true;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/school/calcSchoolDescription/calcName/calc.ls","text":"(function(){\n  return function(schoolLog, schoolDescription){\n    var name, ref$;\n    name = (ref$ = schoolLog.findLast(\"setSchoolName\")) != null ? ref$.value : void 8;\n    if (name == null) {\n      name = \"\";\n    }\n    if (!_.isString(name)) {\n      name = name[engine.guiLanguage] || _.values(name)[0];\n    }\n    return schoolDescription.name = name;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/school/calcSchoolName/calc.ls","text":"(function(){\n  return function(school){\n    var that, guiLanguage;\n    if (_.isString(school.name)) {\n      return school.name;\n    }\n    if (that = school.name[engine.guiLanguage]) {\n      return that;\n    }\n    guiLanguage = engine.guiLanguage.split(\"_\")[0];\n    if (that = _.find(_.keys(school.name), function(k){\n      return _.startsWith(k, guiLanguage);\n    })) {\n      return school.name[that];\n    }\n    return _.first(_.values(school.name));\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/school/memberRemove/remove.ls","text":"(function(){\n  return function(o){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/school/members/remove/remove\"),\n      params: {\n        schoolCode: o.schoolCode,\n        publicId: o.publicId\n      },\n      onCompleted: function(result){\n        if (result.status !== \"ok\") {\n          return inc(\"/lib/gui/errorPopup/popup\")();\n        } else {\n          return o.onCompleted();\n        }\n      },\n      onError: function(error){\n        inc(\"/lib/gui/errorPopup/popup\")();\n        return debug(error);\n      },\n      onOffline: function(){\n        return typeof o.onOffline == 'function' ? o.onOffline() : void 8;\n      }\n    });\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"data/user/calcBlockStats/calcLevelFinishEventsByPuid/calc.ls","text":"(function(){\n  var cache;\n  cache = null;\n  return function(){\n    var events, eventsByPuid, i$, len$, e;\n    if (new Date() - (cache != null ? cache.createdAt : void 8) < 3000) {\n      return cache.eventsByPuid;\n    }\n    events = log.list(\"finishLevel\");\n    eventsByPuid = {};\n    for (i$ = 0, len$ = events.length; i$ < len$; ++i$) {\n      e = events[i$];\n      if (eventsByPuid[e.puid]) {\n        eventsByPuid[e.puid] = e;\n      } else {\n        eventsByPuid[e.puid] = e;\n      }\n    }\n    cache = {\n      eventsByPuid: eventsByPuid,\n      createdAt: new Date()\n    };\n    return eventsByPuid;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/_defineProperty/define.ls","text":"(function(){\n  return function(d, name, func){\n    return Object.defineProperty(d, name, {\n      configurable: true,\n      enumerable: true,\n      get: function(){\n        if (d._[name] != null) {\n          return d._[name];\n        } else {\n          return d._[name] = func(d);\n        }\n      }\n    });\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"lib/init/deviceLogId/deviceLogId.ls","text":"(function(){\n  return function(){\n    var sourceId, deviceLogId;\n    sourceId = Store(\"sourceId\");\n    deviceLogId = Store(\"deviceLogId\");\n    if ((deviceLogId != null ? deviceLogId.indexOf(\"D-\" + sourceId) : void 8) !== 0) {\n      deviceLogId = \"D-\" + sourceId + \"-\" + helpers.guid(27);\n      Store(\"deviceLogId\", deviceLogId);\n      return Store(\"deviceFirstStart\", true);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/engineIsDebug/engineIsDebug.ls","text":"(function(){\n  return function(){\n    return Object.defineProperty(engine, \"isDebug\", {\n      configurable: true,\n      enumerable: true,\n      get: function(){\n        var debug;\n        debug = typeof Store == 'function' ? Store(\"debug\") : void 8;\n        if (debug == null) {\n          debug = false;\n        } else if (!debug || !_.isBoolean(debug)) {\n          debug = false;\n          if (typeof Store != 'undefined' && Store !== null) {\n            Store.remove(\"debug\");\n          }\n        }\n        return debug;\n      }\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"data/user/calcUserDescription/displayName/calc.ls","text":"(function(){\n  return function(d){\n    if (d.title) {\n      return d.title + \" \" + (d.surname || d.name);\n    } else if (d.surname) {\n      return d.name + \" \" + d.surname;\n    } else {\n      return d.name;\n    }\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/isPlusTeacher/calc.ls","text":"(function(){\n  return function(d){\n    var e;\n    e = d.log.findLast({\n      event: \"setProduct\",\n      productName: \"plusTeacher\"\n    });\n    return e != null && new Date() < new Date(e.validUntil);\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/isSolocodeMember/calc.ls","text":"(function(){\n  return function(d){\n    return d.log.findLast({\n      event: \"isGroupMember\",\n      groupCode: \"GROUP-F1BY-HR4P\"\n    }) != null;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/markForDelete/calc.ls","text":"(function(){\n  return function(d){\n    var event;\n    event = d.log.findLast(\"markForDelete\");\n    if (event) {\n      return {\n        dueDate: new Date(event.dueDate),\n        reason: event.reason\n      };\n    }\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/name/calc.ls","text":"(function(){\n  return function(d){\n    var ref$;\n    return (ref$ = d.log.findLast(\"setName\")) != null ? ref$.value : void 8;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/nameCreated/calc.ls","text":"(function(){\n  return function(d){\n    var ref$;\n    return (ref$ = d.log.findLast(\"setName\")) != null ? ref$.created : void 8;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/publicId/calc.ls","text":"(function(){\n  return function(d){\n    var ref$;\n    return (ref$ = d.log.findLast(\"setPublicId\")) != null ? ref$.value : void 8;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/surname/calc.ls","text":"(function(){\n  return function(d){\n    var ref$;\n    return (ref$ = d.log.findLast(\"setSurname\")) != null ? ref$.value : void 8;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/surnameCreated/calc.ls","text":"(function(){\n  return function(d){\n    var ref$;\n    return (ref$ = d.log.findLast(\"setSurname\")) != null ? ref$.created : void 8;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/title/calc.ls","text":"(function(){\n  return function(d){\n    var ref$;\n    return (ref$ = d.log.findLast(\"setTitle\")) != null ? ref$.value : void 8;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/totalBulbs/calc.ls","text":"(function(){\n  return function(d){\n    var events;\n    events = _.filter(d.log.list(\"finishLevel\"), function(e){\n      return e.type === \"bulb\";\n    });\n    events = _.filterLastInGroup(events, \"puid\");\n    return events.length;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/totalCrowns/calc.ls","text":"(function(){\n  return function(d){\n    var events, t;\n    events = _.filter(d.log.list(\"finishLevel\"), function(e){\n      return e.type !== \"bulb\";\n    });\n    events = _.filterLastInGroup(events, \"puid\");\n    events = _.filter(events, function(e){\n      return +e.score === 3;\n    });\n    return t = events.length;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/calcUserDescription/totalStars/calc.ls","text":"(function(){\n  return function(d){\n    var events, t;\n    events = _.filter(d.log.list(\"finishLevel\"), function(e){\n      return !e.isTest && (e.type == null || e.type === \"normal\");\n    });\n    events = _.filterLastInGroup(events, \"puid\");\n    t = _.sumBy(events, function(e){\n      return +e.score;\n    });\n    return t = _.round(t);\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/coin/add/add.ls","text":"(function(){\n  return function(){\n    return typeof log != 'undefined' && log !== null ? log.log({\n      event: \"adjustCoins\",\n      value: 1\n    }) : void 8;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"lib/init/engineTranslate/replaceTranslation/replace.ls","text":"(function(){\n  return function(string, replacements){\n    var numberPattern, pluralPattern, lastNumber, getNumberFromPlural, replaceNumber, selectPluralForm, replacePlural, replacedString, pluralMatch, numberMatch, max;\n    numberPattern = /\\$[0-9]+/;\n    pluralPattern = /\\(\\((.*?)\\)\\)/;\n    lastNumber = null;\n    getNumberFromPlural = function(m){\n      var numberMatch;\n      numberMatch = m[0].match(numberPattern);\n      if (!numberMatch) {\n        debug('no replacement number found in pluralisation', m[0]);\n      }\n      return +numberMatch[0].replace('$', '') - 1;\n    };\n    replaceNumber = function(s, m){\n      var position, rep;\n      if (!m) {\n        return s;\n      }\n      position = +m[0].replace('$', '') - 1;\n      rep = s.replace(numberPattern, replacements[position]);\n      lastNumber = +replacements[position];\n      return rep;\n    };\n    selectPluralForm = function(number, m){\n      var pluralNumber, pluralForms, formNumber;\n      pluralNumber = +replacements[number];\n      pluralForms = m[0].replace('))', '').replace('((', '').split(/\\|/);\n      if (pluralNumber == null || pluralNumber === NaN) {\n        debug('no number found for pluralization', m[0], 'take first as default');\n        formNumber = 0;\n      } else {\n        if (pluralForms.length === 3) {\n          if (pluralNumber === 0) {\n            formNumber = 0;\n          } else if (pluralNumber === 1) {\n            formNumber = 1;\n          } else {\n            formNumber = 2;\n          }\n        } else {\n          formNumber = pluralNumber === 1 ? 0 : 1;\n        }\n      }\n      return pluralForms[formNumber].trim();\n    };\n    replacePlural = function(s, m){\n      var number, replacementForm, numberInFormMatch;\n      if (!m) {\n        return s;\n      }\n      number = getNumberFromPlural(m);\n      replacementForm = selectPluralForm(number, m);\n      numberInFormMatch = replacementForm.match(numberPattern);\n      replacementForm = replaceNumber(replacementForm, numberInFormMatch);\n      return s.replace(pluralPattern, replacementForm);\n    };\n    replacedString = '';\n    pluralMatch = string.match(pluralPattern);\n    numberMatch = string.match(numberPattern);\n    while (pluralMatch != null || numberMatch != null) {\n      if (numberMatch != null && pluralMatch == null) {\n        max = numberMatch.index + numberMatch[0].length;\n        replacedString += replaceNumber(string.slice(0, max), numberMatch);\n        string = string.slice(max);\n      } else if (pluralMatch != null && numberMatch == null) {\n        max = pluralMatch.index + pluralMatch[0].length;\n        replacedString += replacePlural(string.slice(0, max), pluralMatch);\n        string = string.slice(max);\n      } else {\n        if (pluralMatch.index < numberMatch.index) {\n          max = pluralMatch.index + pluralMatch[0].length;\n          replacedString += replacePlural(string.slice(0, max), pluralMatch);\n          string = string.slice(max);\n        } else {\n          max = numberMatch.index + numberMatch[0].length;\n          replacedString += replaceNumber(string.slice(0, max), numberMatch);\n          string = string.slice(max);\n        }\n      }\n      pluralMatch = string.match(pluralPattern);\n      numberMatch = string.match(numberPattern);\n    }\n    replacedString += string;\n    return replacedString;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/engineTranslate/init.ls","text":"(function(){\n  return function(){\n    return engine.translate = inc('translate');\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/idle/showOverlay/overlays/_shared/buttonContinue/button.ls","text":"(function(){\n  return function(o){\n    var click;\n    click = function(){\n      var ref$;\n      o.logSessionStart(\"continueOverlayButton\");\n      if ((ref$ = o.overlay) != null) {\n        ref$.fadeOut(500, function(){\n          return this.remove();\n        });\n      }\n      o.overlay = null;\n      o.endedAt = null;\n      o.lastActivityAt = new Date();\n      return o.createInterval();\n    };\n    return Button(T(\"continueLearning\")).css({\n      marginLeft: \"1em\"\n    }).tap(click);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/offline/offlinePageWithLogging/button/button.ls","text":"(function(){\n  return function(o){\n    var tap;\n    tap = function(){\n      app.currentPage.empty();\n      if (o.buttonClick) {\n        return o.buttonClick();\n      } else {\n        return startPage({\n          history: 0\n        });\n      }\n    };\n    return Button(o.buttonLabel\n      ? o.buttonLabel\n      : o.isTechnicalProblem\n        ? T(\"tryAgain\")\n        : T(\"loadAgain\")).css({\n      marginTop: \"1em\"\n    }).tap(tap);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/loadInitProjects/logAppliedProjects/log.ls","text":"(function(){\n  return function(pds){\n    var appliedProjects, deviceLogId, i, e;\n    appliedProjects = _.filter(pds, {\n      updateApplied: true\n    });\n    if (appliedProjects.length === 0) {\n      return;\n    }\n    deviceLogId = Store(\"deviceLogId\");\n    i = projects.info();\n    e = {\n      event: \"deviceAppliedProjects\",\n      projects: _.map(appliedProjects, function(pd){\n        var ref$;\n        return {\n          projectName: pd.projectName,\n          versionDate: (ref$ = i[pd.projectName]) != null ? ref$.versionDate : void 8\n        };\n      })\n    };\n    if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n      return typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog.log(e) : void 8;\n    } else if (deviceLogId != null) {\n      return helpers.postEvent(deviceLogId, e);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/loadInitProjects/logTimeoutProjects/log.ls","text":"(function(){\n  return function(pds){\n    var timeoutProjects, deviceLogId, e;\n    timeoutProjects = _.filter(pds, {\n      doneTimeout: true\n    });\n    if (timeoutProjects.length === 0) {\n      return;\n    }\n    deviceLogId = Store(\"deviceLogId\");\n    e = {\n      event: \"deviceTimeoutProjects\",\n      projects: _.map(timeoutProjects, function(pd){\n        return pd.projectName;\n      })\n    };\n    if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n      return typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog.log(e) : void 8;\n    } else if (deviceLogId != null) {\n      return helpers.postEvent(deviceLogId, e);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/loadInitProjects/pleaseRead.ls","text":"(function(){})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/logDeviceStartEvents/engineInitEvents/log.ls","text":"(function(){\n  return function(){\n    var events;\n    events = engine.initEvents || [];\n    if (_.find(events, {\n      event: \"loadProjectApp01\"\n    })) {\n      return deviceLog.log({\n        event: \"deviceDebugEngineInitEvents\",\n        events: events\n      });\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/logDeviceStartEvents/projectVersions/calcProjectChecksum/calc.ls","text":"(function(){\n  return function(projectName){\n    var total, length, key, ref$, doc, ref1$, checksum;\n    total = 0;\n    length = 0;\n    for (key in ref$ = projects.documentCache[projectName]) {\n      doc = ref$[key];\n      if (key !== \"_info\") {\n        total++;\n        length += (ref1$ = doc.text.length) != null ? ref1$ : 0;\n      }\n    }\n    return checksum = total + \"-\" + length;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/logDeviceStartEvents/setDebug/log.ls","text":"(function(){\n  return function(){\n    var e, isDebug;\n    e = deviceLog.findLast(\"deviceSetDebug\");\n    isDebug = engine.isDebug;\n    if ((e != null ? e.value : void 8) !== isDebug) {\n      return deviceLog.log({\n        event: \"deviceSetDebug\",\n        value: isDebug\n      });\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/svg/icon/arrow-up.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m153.2 118.4 6.8-6.8-80-80-80 80 6.8 6.8L80 45.2z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/edit.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m39.4 107.7-6.5 19.4 19.4-6.5L127.9 45 115 32l-75.6 75.7zM115 17.9 142 45l-84.3 84.4-40.6 13.5 13.5-40.6L115 17.9z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/move-x-y.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"160\" height=\"160\" viewBox=\"0 0 160 160\">\n  <g>\n    <polygon points=\"42.291 60.61 35.22 53.539 8.759 80 35.22 106.461 42.291 99.39 22.901 80\"/>\n    <polygon points=\"118.209 99.39 125.28 106.461 151.741 80 125.28 53.539 118.209 60.61 137.599 80\"/>\n    <polygon points=\"20.5 85 145.004 85 145.004 75 20.5 75\"/>\n    <polygon points=\"99.39 42.291 106.461 35.22 80 8.759 53.539 35.22 60.61 42.291 80 22.901\"/>\n    <polygon points=\"60.61 118.209 53.539 125.28 80 151.741 106.461 125.28 99.39 118.209 80 137.599\"/>\n    <polygon points=\"75 20.5 75 145.004 85 145.004 85 20.5\"/>\n  </g>\n</svg>\n","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/svg/logo/anton-logo-square.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 594 593\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <path fill=\"#FFF\" d=\"M.906.375h592.5v592.5H.906z\"/>\n    <path fill=\"#000\" d=\"M226.236 195.955a17.393 17.393 0 0 1-3.52-.36 16.7 16.7 0 0 1-1.71-.43c-.56-.17-1.12-.37-1.66-.59-.54-.23-1.08-.48-1.59-.76a17.84 17.84 0 0 1-1.52-.9 18.605 18.605 0 0 1-2.74-2.24 18.368 18.368 0 0 1-2.23-2.73c-.33-.49-.63-1-.9-1.52-.28-.51-.53-1.05-.76-1.59-.22-.54-.42-1.1-.59-1.66-.17-.56-.32-1.14-.43-1.71a17.195 17.195 0 0 1-.36-3.52 17.065 17.065 0 0 1 .36-3.51c.11-.57.26-1.15.43-1.71.17-.56.37-1.12.59-1.66.23-.54.48-1.08.76-1.59.27-.52.57-1.03.9-1.52a18.353 18.353 0 0 1 2.23-2.73c.42-.42.86-.82 1.32-1.19.45-.37.93-.73 1.42-1.05.49-.32 1-.63 1.52-.9.51-.28 1.05-.53 1.59-.76.54-.22 1.1-.42 1.66-.59.56-.17 1.13-.32 1.71-.43.57-.12 1.16-.21 1.74-.27 1.18-.12 2.37-.12 3.55 0 .58.06 1.17.15 1.74.27.58.11 1.15.26 1.71.43.56.17 1.12.37 1.66.59.54.23 1.08.48 1.59.76.52.27 1.03.58 1.52.9.49.32.96.68 1.42 1.05.45.37.9.77 1.31 1.19.42.41.82.86 1.19 1.31.37.46.72.93 1.05 1.42.32.49.63 1 .9 1.52.28.51.53 1.05.75 1.59.23.54.43 1.1.6 1.66.17.56.31 1.14.43 1.71.12.57.2 1.16.26 1.74a17.613 17.613 0 0 1 0 3.54c-.06.59-.14 1.17-.26 1.75-.12.57-.26 1.15-.43 1.71-.17.56-.37 1.12-.6 1.66-.22.54-.47 1.08-.75 1.59-.27.52-.58 1.03-.9 1.52-.33.48-.68.96-1.05 1.42-.37.45-.77.9-1.19 1.31-.41.42-.86.82-1.31 1.19-.46.37-.93.72-1.42 1.05-.49.32-1 .63-1.52.9-.51.28-1.05.53-1.59.76-.54.22-1.1.42-1.66.59-.56.17-1.14.32-1.71.43a17.344 17.344 0 0 1-3.51.36m145.34 0a17.379 17.379 0 0 1-3.51-.36 16.7 16.7 0 0 1-1.71-.43c-.56-.17-1.12-.37-1.66-.59-.54-.23-1.08-.48-1.59-.76a17.84 17.84 0 0 1-1.52-.9c-.49-.33-.96-.68-1.42-1.05-.45-.37-.901-.77-1.31-1.19-.42-.41-.82-.86-1.19-1.31-.37-.46-.73-.94-1.05-1.42-.32-.49-.63-1-.9-1.52-.28-.51-.53-1.05-.75-1.59-.23-.54-.43-1.1-.6-1.66-.17-.56-.32-1.14-.43-1.71-.12-.58-.211-1.16-.26-1.75a17.342 17.342 0 0 1 0-3.54c.049-.58.14-1.17.26-1.74.11-.57.26-1.15.43-1.71.17-.56.37-1.12.6-1.66.22-.54.47-1.08.75-1.59.27-.52.58-1.03.9-1.52.32-.49.68-.96 1.05-1.42.37-.45.77-.9 1.19-1.31.409-.42.86-.82 1.31-1.19.46-.37.93-.73 1.42-1.05.49-.32 1-.63 1.52-.9.51-.28 1.05-.53 1.59-.76.54-.22 1.1-.42 1.66-.59.56-.17 1.13-.32 1.71-.43.57-.12 1.159-.21 1.739-.27a17.46 17.46 0 0 1 5.29.27c.58.11 1.15.26 1.71.43.56.17 1.12.37 1.66.59.54.23 1.08.48 1.59.76.52.27 1.03.58 1.52.9.49.32.97.68 1.42 1.05.46.37.9.77 1.31 1.19.42.41.82.86 1.19 1.31.37.46.73.93 1.05 1.42.32.49.63 1 .9 1.52.28.51.53 1.05.76 1.59.22.54.42 1.1.59 1.66.17.56.32 1.14.43 1.71.12.57.21 1.16.27 1.74a17.633 17.633 0 0 1 0 3.54c-.06.59-.15 1.17-.27 1.75-.11.57-.26 1.15-.43 1.71-.17.56-.37 1.12-.59 1.66-.23.54-.48 1.08-.76 1.59-.27.52-.58 1.03-.9 1.52-.33.48-.68.96-1.05 1.42-.37.45-.77.9-1.19 1.31-3.35 3.35-7.99 5.28-12.73 5.28m-72.669 263.773c-51.948 0-99.338-27.49-120.733-70.034-2.605-5.181-.517-11.492 4.663-14.099 5.18-2.603 11.492-.516 14.098 4.663 17.862 35.52 57.889 58.47 101.972 58.47 44.084 0 84.11-22.95 101.972-58.47 2.607-5.18 8.921-7.264 14.098-4.663 5.181 2.607 7.269 8.917 4.663 14.1-21.395 42.543-68.786 70.034-120.733 70.034M100.622 253.764l13.878 39.012H86.803c2.82-7.811 10.892-30.213 13.819-39.012zm10.072-15.561a10.679 10.679 0 0 0-10.018-6.858 10.679 10.679 0 0 0-10.015 6.852l-35.692 91.76a8.233 8.233 0 0 0 .878 7.64 8.234 8.234 0 0 0 6.8 3.59c3.387 0 6.479-2.125 7.694-5.287l10.513-27.373h39.076l10.602 27.289a8.37 8.37 0 0 0 7.848 5.37 8.417 8.417 0 0 0 7.848-11.467l-35.534-91.515zm221.882-6.424h-67.34c-4.324 0-7.84 3.517-7.84 7.84 0 4.322 3.516 7.84 7.84 7.84h25.109v85.058c0 4.781 3.889 8.67 8.669 8.67 4.78 0 8.669-3.889 8.669-8.67v-85.058h24.893c4.324 0 7.84-3.518 7.84-7.84 0-4.323-3.516-7.84-7.84-7.84m88.21 54.561c0 14.678-2.387 24.449-7.51 30.748-5.747 7.065-12.56 10.078-22.782 10.078-9.942 0-16.134-2.865-22.084-10.22-5.59-6.903-8.423-17.202-8.423-30.606 0-13.354 2.832-23.588 8.417-30.422 5.949-7.28 12.184-10.117 22.236-10.117 10.222 0 17.014 2.982 22.709 9.969 5.074 6.23 7.437 15.943 7.437 30.57m-30.146-56.22c-15.582 0-26.192 4.437-35.478 14.835-8.733 9.78-13.161 23.653-13.161 41.239 0 17.732 4.452 31.705 13.233 41.528 9.336 10.45 19.882 14.907 35.26 14.907 15.18 0 25.664-4.536 35.053-15.168 8.823-9.99 13.297-23.826 13.297-41.121 0-17.393-4.463-31.241-13.265-41.162-9.362-10.555-19.812-15.057-34.94-15.057m-152.863 1.658c-4.522 0-8.2 3.678-8.2 8.201v73.55l-14.274-22.222-34.598-53.482-.326-.514a11.849 11.849 0 0 0-10.058-5.533c-6.566 0-11.906 5.342-11.906 11.906v89.373c0 4.483 3.646 8.13 8.128 8.13s8.13-3.647 8.13-8.13v-73.601l49.158 76.218a11.985 11.985 0 0 0 10.113 5.512c6.635 0 12.033-5.398 12.033-12.034V239.98c0-4.523-3.679-8.2-8.2-8.2m302.627 45.179v-36.98c0-4.522-3.679-8.2-8.2-8.2-4.522 0-8.2 3.678-8.2 8.2v73.549l-14.273-22.219-34.598-53.482-.327-.516a11.85 11.85 0 0 0-10.056-5.532c-6.566 0-11.908 5.342-11.908 11.907v89.373c0 4.482 3.647 8.129 8.128 8.129 4.482 0 8.128-3.647 8.128-8.129v-47.475h.001v-26.127l49.16 76.219a11.987 11.987 0 0 0 10.113 5.512c6.635 0 12.032-5.399 12.032-12.034v-52.195z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/astro-bang-rock.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M121 121h-20.5v20.6H39V121H18.4V59.5H39V18.4h61.5V39h41.1v61.5H121z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/gui/divEditable/setSoftKeyboardEnabled/calcMode/calc.ls","text":"(function(){\n  return function(enabled){\n    var supportsInputMode;\n    supportsInputMode = inc(\"calcSupportsInputMode/calc\")();\n    if (enabled) {\n      return \"text\";\n    } else if (supportsInputMode) {\n      return \"none\";\n    } else {\n      return \"noneFake\";\n    }\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"lib/gui/divEditable/setSoftKeyboardEnabled/set.ls","text":"(function(){\n  return function(d, enabled){\n    var mode, isStarted;\n    if (enabled == null) {\n      enabled = true;\n    }\n    mode = inc(\"calcMode/calc\")(enabled);\n    if (d.softKeyboardMode === mode) {\n      return;\n    }\n    if (d.isStarted) {\n      isStarted = true;\n      d.stop();\n    }\n    d.div.attr({\n      inputmode: mode,\n      contenteditable: mode === \"noneFake\" ? \"false\" : \"true\"\n    });\n    d.softKeyboardMode = mode;\n    if (d.isStarted) {\n      return d.start();\n    }\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"lib/gui/divEditable/tapCustomSelect/calcNodeWithOffset/image/image.ls","text":"(function(){\n  return function(e, rectOnPoint){\n    var r, leftDif, rightDif, parentNode, i$, ref$, len$, i, n, offset;\n    r = rectOnPoint.rect;\n    leftDif = e.clientX - r.left;\n    rightDif = r.right - e.clientX;\n    parentNode = rectOnPoint.node.parentNode;\n    for (i$ = 0, len$ = (ref$ = parentNode.childNodes).length; i$ < len$; ++i$) {\n      i = i$;\n      n = ref$[i$];\n      if (n === rectOnPoint.node) {\n        break;\n      }\n    }\n    offset = e.clientX > r.right\n      ? i + 1\n      : rightDif < leftDif ? i + 1 : i;\n    return {\n      node: parentNode,\n      offset: offset\n    };\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"lib/gui/divEditable/tapCustomSelect/calcNodeWithOffset/text/text.ls","text":"(function(){\n  return function(e, rectOnPoint){\n    var n, text, i$, to$, i, r, r2, leftDif, rightDif, offset;\n    n = rectOnPoint.node;\n    text = n.textContent;\n    for (i$ = rectOnPoint.fromOffset, to$ = rectOnPoint.toOffset - 1; i$ <= to$; ++i$) {\n      i = i$;\n      r = document.createRange();\n      r.setStart(n, i);\n      r.setEnd(n, i + 1);\n      r2 = r.getClientRects()[0];\n      if (e.clientX <= r2.right) {\n        break;\n      }\n    }\n    leftDif = e.clientX - r2.left;\n    rightDif = r2.right - e.clientX;\n    offset = e.clientX > r2.right\n      ? rectOnPoint.toOffset\n      : leftDif <= rightDif\n        ? i\n        : i + 1;\n    return {\n      type: \"text\",\n      char: text.substr(offset, 1),\n      node: n,\n      offset: offset\n    };\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"lib/gui/divEditable/tapCustomSelect/calcRectAtPoint/calc.ls","text":"(function(){\n  return function(lineDiv, sublines, e){\n    var r, x, y, i$, len$, line, ref$, rect;\n    r = lineDiv.getClientRects()[0];\n    x = e.layerX + r.left;\n    y = e.layerY + r.top;\n    for (i$ = 0, len$ = sublines.length; i$ < len$; ++i$) {\n      line = sublines[i$];\n      if ((y >= (ref$ = line.top) && ref$ <= y) && line.bottom >= y) {\n        break;\n      }\n    }\n    for (i$ = 0, len$ = (ref$ = line.rects).length; i$ < len$; ++i$) {\n      rect = ref$[i$];\n      if (x <= rect.rect.right) {\n        break;\n      }\n    }\n    return rect;\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"lib/gui/divEditable/tapCustomSelect/calcRectangles/calcImage/calc.ls","text":"(function(){\n  return function(n){\n    return {\n      type: \"image\",\n      rect: n.getClientRects()[0],\n      node: n\n    };\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"lib/gui/divEditable/tapCustomSelect/calcRectangles/calcTextNode/calcRects/calc.ls","text":"(function(){\n  return function(n, fromOffset, toOffset){\n    var r;\n    r = document.createRange();\n    r.setStart(n, fromOffset);\n    r.setEnd(n, toOffset);\n    return r.getClientRects();\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"lib/gui/divEditable/tapCustomSelect/drawDebugDivs/draw.ls","text":"(function(){\n  return function(d, sublines, rectAtPoint){\n    var ref$, r, l, i, rect;\n    if ((ref$ = d.cursorWrapper.findFirst(\".debugDivs\")) != null) {\n      ref$.remove();\n    }\n    r = d.div.getClientRects()[0];\n    Div({\n      position: \"absolute\",\n      pointerEvents: \"none\",\n      top: -r.top + \"px\",\n      left: -r.left + \"px\",\n      opacity: 0.05\n    }).addClass(\"debugDivs\").html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = sublines).length; i$ < len$; ++i$) {\n        l = ref$[i$];\n        results$.push(l.debugDiv = Div({\n          border: \"1px solid blue\",\n          position: \"absolute\",\n          opacity: \"0.5\",\n          top: l.top + \"px\",\n          left: l.left + \"px\",\n          height: l.bottom - l.top + \"px\",\n          width: l.right - l.left + \"px\"\n        }));\n      }\n      return results$;\n    }()), (function(){\n      var i$, ref$, len$, lresult$, j$, ref1$, len1$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = sublines).length; i$ < len$; ++i$) {\n        l = ref$[i$];\n        lresult$ = [];\n        for (j$ = 0, len1$ = (ref1$ = l.rects).length; j$ < len1$; ++j$) {\n          i = j$;\n          rect = ref1$[j$];\n          r = rect.rect;\n          lresult$.push(rect.debugDiv = Div({\n            border: \"1px solid blue\",\n            position: \"absolute\",\n            left: r.left + \"px\",\n            width: r.width + \"px\",\n            top: r.top + \"px\",\n            height: r.height + \"px\"\n          }));\n        }\n        results$.push(lresult$);\n      }\n      return results$;\n    }())).appendTo(d.cursorWrapper);\n    return rectAtPoint.debugDiv.css({\n      background: \"green\"\n    });\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"lib/gui/divEditable/tapCustomSelect/getFlatNodes/get.ls","text":"(function(){\n  return function(el){\n    var a, i$, ref$, len$, node, a2, j$, ref1$, len1$, n;\n    a = [];\n    for (i$ = 0, len$ = (ref$ = el.childNodes).length; i$ < len$; ++i$) {\n      node = ref$[i$];\n      if (node.nodeType === 3 || node.tagName === \"IMG\") {\n        a.push(node);\n      } else {\n        a2 = inc(THISFILE)(node);\n        for (j$ = 0, len1$ = (ref1$ = inc(THISFILE)(node)).length; j$ < len1$; ++j$) {\n          n = ref1$[j$];\n          a.push(n);\n        }\n      }\n    }\n    return a;\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"lib/gui/divEditable/tapCustomSelect/getRectangles/get.ls","text":"(function(){\n  return function(n){\n    var r;\n    if (n.tagName === \"IMG\") {\n      return n.getClientRects();\n    } else if (n.nodeType === 3) {\n      r = document.createRange();\n      r.setStart(n, 0);\n      r.setEnd(n, n.textContent.length);\n      return r.getClientRects();\n    }\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"addons/topbarLevel/hint/hint/label/animations/animations.ls","text":"(function(){\n  return function(div, div2){\n    return {\n      intro: function(onCompleted){\n        return div2.keyframeAnimate({\n          keyframes: {\n            \"70%\": {\n              transform: \"translateY(-27px) rotate(5deg)\"\n            },\n            \"100%\": {\n              transform: \"translateY(-30px) rotate(0deg)\"\n            }\n          },\n          delay: 1000,\n          duration: 400,\n          onCompleted: onCompleted\n        });\n      },\n      outro: function(onCompleted){\n        return div2.keyframeAnimate({\n          keyframes: {\n            \"100%\": {\n              transform: \"translateY(-100%)\"\n            }\n          },\n          delay: 0,\n          duration: 400,\n          onCompleted: onCompleted\n        });\n      },\n      open: function(){\n        var avatarTalk;\n        avatarTalk = div2.findFirst(\".avatarTalk\");\n        if (avatarTalk) {\n          avatarTalk.setSize(\"3.2em\", 300);\n          return div2.keyframeAnimate({\n            keyframes: {\n              \"100%\": {\n                paddingLeft: \"0.3em\"\n              }\n            },\n            duration: 300\n          });\n        }\n      },\n      close: function(){\n        var avatarTalk;\n        avatarTalk = div2.findFirst(\".avatarTalk\");\n        if (avatarTalk) {\n          avatarTalk.setSize(\"2em\", 300);\n          return div2.keyframeAnimate({\n            keyframes: {\n              \"100%\": {\n                paddingLeft: 0\n              }\n            },\n            duration: 300\n          });\n        }\n      }\n    };\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/start/login/_t.ls","text":"(function(){\n  return {\n    unknownUser: {\n      de: \"Dieses Nutzerkonto ist unbekannt.\",\n      en: \"This account is unknown.\",\n      fr: \"Compte inconnu.\",\n      es: \"Esta cuenta no existe.\",\n      pt: \"Esta conta não existe.\"\n    },\n    unknownError: {\n      de: \"Es ist ein Fehler aufgetreten. Bitte versuche es später nochmal.\",\n      en: \"An error has occurred. Please try again later.\",\n      fr: \"Une erreur s'est produite. Merci de réessayer plus tard.\",\n      es: \"Ocurrió un error. Inéntalo de nuevo un poco más tarde.\",\n      pt: \"Ocorreu um erro. Por favor, tente novamente mais tarde.\"\n    },\n    invalidPassword: {\n      de: \"Das Passwort ist nicht gültig.\",\n      en: \"The password is not valid.\",\n      fr: \"Le mot de passe n'est pas valide.\",\n      es: \"La contraseña no es válida.\",\n      pt: \"A senha não é válida.\"\n    }\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"addons/topbarLevel/hint/hint/hint.ls","text":"(function(){\n  return function(page, slide, atom, adjust){\n    var hint, isClosed, animationRunning, open, close, toggle, div, background, div2, content, label, topbar;\n    hint = slide.getParam(\"hint\", atom || slide.atom);\n    isClosed = true;\n    animationRunning = false;\n    open = function(){\n      var ref$;\n      if (!isClosed || animationRunning) {\n        return;\n      }\n      if ((ref$ = topbar.calculator) != null) {\n        ref$.hide();\n      }\n      isClosed = false;\n      animationRunning = true;\n      if (hint.autoplay !== false) {\n        setTimeout(function(){\n          var ref$;\n          if (!isClosed) {\n            return (ref$ = content.speaker) != null ? ref$.play() : void 8;\n          }\n        }, 700);\n      }\n      background.fadeIn(300);\n      div2.keyframeAnimate({\n        keyframes: {\n          \"70%\": {\n            transform: \"translateY(10px)\"\n          },\n          \"100%\": {\n            transform: \"translateY(0px)\"\n          }\n        },\n        duration: 300\n      });\n      label.animations.open();\n      return setTimeout(function(){\n        return animationRunning = false;\n      }, 300);\n    };\n    close = function(){\n      var ref$, ref1$;\n      if (isClosed || animationRunning) {\n        return;\n      }\n      if ((ref$ = topbar.calculator) != null) {\n        ref$.show();\n      }\n      isClosed = true;\n      animationRunning = true;\n      if ((ref1$ = content.speaker) != null) {\n        ref1$.stop();\n      }\n      background.fadeOut(300);\n      div2.keyframeAnimate({\n        keyframes: {\n          \"100%\": {\n            transform: \"translateY(-\" + content.height() + \"px)\"\n          }\n        },\n        duration: 300,\n        timing: \"ease-in\"\n      });\n      label.animations.close();\n      return setTimeout(function(){\n        return animationRunning = false;\n      }, 300);\n    };\n    toggle = function(){\n      if (isClosed) {\n        return open();\n      } else {\n        return close();\n      }\n    };\n    div = Div({\n      position: \"absolute\",\n      left: 0,\n      right: 0,\n      top: \"100%\",\n      height: \"calc(var(--screenHeight) - var(--topHeight)\",\n      overflow: \"hidden\",\n      pointerEvents: \"none\",\n      zIndex: 0\n    }).addClass(\"topHint\").html(background = inc(\"background/background\")(close), div2 = Div({\n      width: \"35em\",\n      maxWidth: \"100%\",\n      margin: \"0 auto\"\n    }).html(content = inc(\"content/content\")(hint, slide), label = inc(\"label/label\")(toggle, hint, slide)));\n    topbar = page.topbar;\n    topbar.append(div);\n    topbar.topHint = div;\n    div2.css({\n      transform: \"translateY(-\" + content.height() + \"px)\"\n    });\n    label.animations.intro(function(){\n      adjust();\n      if (engine.isMobileApp) {\n        return inc(\"enableDrag/enableDrag\")(div2, content, open, close);\n      }\n    });\n    div.hint = hint;\n    div.animateOut = label.animations.outro;\n    return div;\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/level/previewNoUser/page.ls","text":"(function(){\n  return function(page){\n    page.planDescription = inc(\"/data/content/calcPlanDescription/calc\")(page.params.levelPath);\n    return {\n      top: function(){\n        var ref$;\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          return inc(\"_topbarNext/topbar\")(page);\n        }\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescriptionWithLevel/description\")(page);\n      },\n      navCategory: \"content\",\n      start: function(){\n        var loadLevel, loadTrainerProjects, generateSlides, loadMediaFiles, onError, create;\n        loadLevel = function(){\n          return inc(\"/lib/util/loadLevel/load\")({\n            path: page.params.levelPath,\n            onError: onError,\n            onLoaded: function(l){\n              page.level = l;\n              return loadTrainerProjects();\n            }\n          });\n        };\n        loadTrainerProjects = function(){\n          return inc(\"../_shared/loadTrainerProjects/load\")({\n            levels: page.level,\n            onAbort: onError,\n            onDone: generateSlides\n          });\n        };\n        generateSlides = function(){\n          _.setRandomSeed(0);\n          inc(\"../_shared/generateSlides/generate\")(page.level);\n          return loadMediaFiles();\n        };\n        loadMediaFiles = function(){\n          return inc(\"../_shared/loadMediaFiles/load\")({\n            level: page.level,\n            onError: function(){\n              return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n            },\n            onLoaded: create\n          });\n        };\n        onError = function(){\n          return startPage({\n            path: path(\"/pages/static/unknownUrl/page\"),\n            history: 0\n          });\n        };\n        create = function(){\n          var div, slide;\n          page.topbar.update();\n          page.breadcrumbs.show();\n          page.html(div = Div({\n            width: \"45em\",\n            maxWidth: \"90%\",\n            margin: \"3em auto\",\n            opacity: 0\n          }).html((function(){\n            var i$, ref$, len$, results$ = [];\n            for (i$ = 0, len$ = (ref$ = page.level.slides).length; i$ < len$; ++i$) {\n              slide = ref$[i$];\n              results$.push([inc(\"line/line\")(), inc(\"slideDiv/slideDiv\")(slide)]);\n            }\n            return results$;\n          }())));\n          return inc(\"/lib/util/waitFrames/wait\")(2, function(){\n            div.css({\n              opacity: 1\n            });\n            return page.updateUrlDescription();\n          });\n        };\n        page.breadcrumbs.hide();\n        page.html(inc(\"/lib/gui/spinner/spinner\")());\n        return loadLevel();\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/content/plansNext/calcPlansData/pimpPreschool/_t.ls","text":"(function(){\n  return {\n    simple: {\n      de: \"einfach\",\n      en: \"easy\",\n      fr: \"facile\",\n      es: \"fácil\",\n      pt: \"fácil\"\n    },\n    intermediate: {\n      de: \"mittelschwer\",\n      en: \"medium\",\n      fr: \"intermédiaire\",\n      es: \"medio\",\n      pt: \"médio\"\n    },\n    advanced: {\n      de: \"schwer\",\n      en: \"hard\",\n      fr: \"avancé\",\n      es: \"difícil\",\n      pt: \"difícil\"\n    },\n    divText: {\n      de: \"Die gemischten Übungen sind so konzipiert, dass ein Kind sie eigenständig bearbeiten kann. <br><br>Zur Motivation sind die Übungen in kleinen Puzzle-Figuren angeordnet, deren Teile nach und nach freigeschaltet werden.<br><br>Die Übungen sind eine abwechslungs&shy;reiche Zusammenstellung aus den sortierten Vorschulübungen.\",\n      en_gb: \"The mixed exercises are structured so that a child can work through them independently.<br><br>To encourage motivation, the exercises are grouped into small puzzles, whose pieces are revealed a bit at a time.<br><br>The exercises are a diverse assortment of the ordered Reception exercises.\",\n      en: \"The mixed exercises are structured so that a child can work through them independently.<br><br>To encourage motivation, the exercises are grouped into small puzzles, whose pieces are revealed a bit at a time.<br><br>The exercises are a diverse assortment of the ordered preschool exercises.\",\n      fr: \"Les activités mélangées sont organisées pour qu'un enfant apprenne en toute autonomie.<br><br>Pour motiver l'apprentissage, les activités sont regroupées en petits puzzles dont les pièces se dévoilent une à une.<br><br>Les activités accessibles en format puzzle sont les mêmes que celles accessibles par thèmes.\",\n      es: \"Los ejercicios combinados están diseñados para que los niños y niñas aprendan de forma autónoma. <br><br>Para motivar el aprendizaje, los ejercicios están organizados en rompecabezas  cuyas piezas se van revelando una por una.<br><br>Los rompecabezas combinan los ejercicios que también encuentras clasificados por tema.\",\n      pt: \"Os exercícios mistos foram desenvolvidos para que a criança consiga resolvê-los de forma autônoma.<br><br>Para tornar o aprendizado mais envolvente, eles são apresentados como figuras em estilo quebra-cabeça, com peças que se desbloqueiam progressivamente.<br><br>Cada quebra-cabeça reúne uma seleção diversificada de atividades da Educação Infantil, que também podem ser encontradas por áreas do conhecimento.\"\n    },\n    puzzleHeader: {\n      de: \"Gemischte Übungen zum Selbstlernen empfohlen:\",\n      en_gb: \"Mixed exercises recommended for independent learning:\",\n      en: \"Mixed exercises recommended for independent learning:\",\n      fr: \"Activités mélangées recommandées pour l'apprentissage en autonomie&nbsp;:\",\n      es: \"Ejercicios mixtos para el aprendizaje autónomo:\",\n      pt: \"Quebra-cabeças com exercícios mistos para o aprendizado autônomo:\"\n    },\n    normalPlansHeader: {\n      de: \"Sortierte Übungen:\",\n      en_gb: \"Exercises sorted by topic:\",\n      en: \"Exercises sorted by topic:\",\n      fr: \"Activités par thèmes&nbsp;:\",\n      es: \"Ejercicios por tema:\",\n      pt: \"Exercícios organizados por tópicos:\"\n    }\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/superAnton/superAnton.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"superAnton\",\n      project: \"app01-game-super-anton\",\n      title: \"Super Anton\",\n      category: \"arcade\",\n      grade: 2,\n      icon: \"solocode_game-super-anton-cover-2\",\n      highscoreDisabled: true,\n      debugOnly: true,\n      newBadge: true,\n      difficulties: [\n        {\n          title: T(\"myLevels\"),\n          icon: path(\"/lib/svg/shape/avatar.svg\"),\n          page: path(\"/../app01-game-super-anton/pages/myLevels/page\")\n        }, {\n          title: T(\"newLevels\"),\n          icon: path(\"/lib/svg/shape/badge.svg\"),\n          page: path(\"/../app01-game-super-anton/pages/newLevels/page\")\n        }, {\n          title: T(\"popularLevels\"),\n          icon: path(\"/lib/svg/shape/heart.svg\"),\n          page: path(\"/../app01-game-super-anton/pages/popularLevels/page\")\n        }, {\n          title: T(\"favouriteLevels\"),\n          icon: path(\"/lib/svg/shape/anton-app.svg\"),\n          page: path(\"/../app01-game-super-anton/pages/favouriteLevels/page\")\n        }\n      ]\n    };\n  };\n})();","updated":"2021-04-16T16:11:53.059235"},{"path":"pages/games/00_shared/pixiGame/pixi/draggableSprite/draggableSprite.ls","text":"(function(){\n  return function(o){\n    var sprite, touchStart, origin, onTouchDown, onTouchMove, onTouchUp;\n    sprite = inc(\"/pages/games/00_shared/pixiGame/pixi/sprite/create\")(o);\n    onTouchDown = function(event){\n      origin = {\n        x: sprite.position.x,\n        y: sprite.position.y\n      };\n      touchStart = {\n        x: event.data.global.x,\n        y: event.data.global.y\n      };\n      sprite.parent.setChildIndex(this, this.parent.children.length - 1);\n      return typeof o.onDragStart == 'function' ? o.onDragStart(sprite) : void 8;\n    };\n    onTouchMove = function(event){\n      if (touchStart != null) {\n        sprite.x = origin.x + (event.data.global.x - touchStart.x) / sprite.parent.scale.x;\n        sprite.y = origin.y + (event.data.global.y - touchStart.y) / sprite.parent.scale.y;\n        return typeof o.onDragMove == 'function' ? o.onDragMove(sprite) : void 8;\n      }\n    };\n    onTouchUp = function(event){\n      if (touchStart == null) {\n        return;\n      }\n      touchStart = undefined;\n      origin = undefined;\n      return typeof o.onDragEnd == 'function' ? o.onDragEnd(sprite) : void 8;\n    };\n    sprite.on('pointerdown', onTouchDown);\n    sprite.on('pointermove', onTouchMove);\n    sprite.on('pointerup', onTouchUp);\n    sprite.on('pointerupoutside', onTouchUp);\n    sprite.interactive = true;\n    return sprite;\n  };\n})();","updated":"2021-04-16T16:11:53.059235"},{"path":"pages/misc/qrScanner/videoDiv/div.ls","text":"(function(){\n  return function(page, q){\n    var div;\n    div = Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0,\n      height: \"var(--centerHeight)\",\n      background: \"white\"\n    }).html(q.video = Video().attr({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0,\n      width: \"100%\",\n      height: \"100%\",\n      autoplay: true,\n      playsinline: true,\n      muted: true\n    }).css({\n      objectFit: \"cover\",\n      overflow: \"hidden\",\n      transform: \"scaleX(-1)\",\n      background: Color.grey[75]\n    })).onDomRemove(function(){\n      var ref$, ref1$, ref2$, ref3$;\n      if ((ref$ = q.qrScanner) != null) {\n        ref$.stop();\n      }\n      if ((ref1$ = q.qrScanner) != null) {\n        ref1$.destroy();\n      }\n      return (ref2$ = q.video) != null ? (ref3$ = ref2$.srcObject) != null ? ref3$.getVideoTracks().forEach(function(track){\n        return track.stop();\n      }) : void 8 : void 8;\n    });\n    q.toggleCamera = async function(){\n      if (q.cameraFacingMode === \"environment\") {\n        q.cameraFacingMode = \"user\";\n      } else {\n        q.cameraFacingMode = \"environment\";\n      }\n      return (await q.qrScanner.setCamera(q.cameraFacingMode));\n    };\n    q.videoDiv = div;\n    return div;\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/schoolAdmin/loadingPage/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    var topbar;\n    return topbar = inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"hamburger\",\n      title: \"&nbsp;\"\n    });\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/static/start/edlink/_t.ls","text":"(function(){\n  return {\n    title: \"Edlink\",\n    pageUrl: \"start/edlink\"\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/static/start/edlink/_topbar/title/title.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\"\n    }).append(inc(\"/lib/seo/element/h1/h1\")(T(\"title\")));\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/static/start/edlink/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../../_shared/topbarDeeplink/topbar\")(page, inc(\"title/title\")());\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/static/start/edlink/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"pageUrl\"),\n      title: T(\"title\"),\n      metaDescription: T(\"title\"),\n      noIndex: true\n    };\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"addons/topbarLevel/skipIcon/_t.ls","text":"(function(){\n  return {\n    skipLevel: {\n      de: \"Level überspringen?\",\n      en: \"Skip level?\",\n      fr: \"Sauter le level&nbsp;?\",\n      es: \"¿Saltar el nivel?\",\n      pt: \"Pular de nível?\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"addons/topbarLevel/skipIcon/popup/button/button.ls","text":"(function(){\n  return function(label, keyCode, skipFakeResult, player){\n    var tap;\n    tap = function(){\n      app.currentPopup.close();\n      player.skipFakeResult = skipFakeResult;\n      return player.finish();\n    };\n    return Button(label).css({\n      display: \"block\",\n      width: \"8em\",\n      maxWidth: \"90%\",\n      margin: \"0.5em auto\"\n    }).addClass(\"keyManager-\" + keyCode).bind(\"keyManager\", tap).tap(tap);\n  };\n})();","updated":"2021-03-24T11:07:55.85259"},{"path":"lib/util/baseToBlob/baseToBlob.ls","text":"(function(){\n  return function(base64, mimeType, sliceSize){\n    var byteCharacters, byteArrays, offset, byteSlice, byteNumbers, i, byteArray, blob;\n    sliceSize = sliceSize || 512;\n    mimeType = mimeType || \"\";\n    byteCharacters = atob(base64);\n    byteArrays = [];\n    offset = 0;\n    while (offset < byteCharacters.length) {\n      byteSlice = byteCharacters.slice(offset, offset + sliceSize);\n      byteNumbers = new Array(byteSlice.length);\n      i = 0;\n      while (i < byteSlice.length) {\n        byteNumbers[i] = byteSlice.charCodeAt(i);\n        i++;\n      }\n      byteArray = new Uint8Array(byteNumbers);\n      byteArrays.push(byteArray);\n      offset += sliceSize;\n    }\n    blob = new Blob(byteArrays, {\n      type: mimeType\n    });\n    return blob;\n  };\n})();","updated":"2021-03-24T11:07:55.85259"},{"path":"pages/schoolSearch/05_createNewSchool/popupSuggestSchool/buttons/buttons.ls","text":"(function(){\n  return function(p){\n    var tap, css;\n    tap = function(v){\n      p.page.chooseSchool = v === \"no\" ? p.page.suggestedSchool = undefined : void 8;\n      return p.onDone();\n    };\n    return Div({\n      display: \"inline-block\",\n      margin: \"0 auto\"\n    }).html(Button({\n      label: T(\"yesSuggest\"),\n      labelAllowWrap: true\n    }).css(css = {\n      display: \"block\",\n      margin: \"0.5em 0\",\n      minWidth: \"3em\"\n    }).tap(function(){\n      return tap(\"yes\");\n    }), Button({\n      label: T(\"noSuggest\"),\n      labelAllowWrap: true\n    }).css(css).tap(function(){\n      return tap(\"no\");\n    }));\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"lib/util/storedAuthToken/removeFromMemory/remove.ls","text":"(function(){\n  return function(logId){\n    var ref$, ref1$;\n    return (ref$ = engine.authToken) != null ? (ref1$ = ref$[logId], delete ref$[logId], ref1$) : void 8;\n  };\n})();","updated":"2021-03-26T11:20:19.439349"},{"path":"lib/init/idle/showOverlay/overlays/dontRemember/overlay.ls","text":"(function(){\n  return function(o){\n    var userDescription;\n    userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    if (Store(\"useAuthToken\")) {\n      inc(\"/lib/util/storedAuthToken/removeFromMemory/remove\")(typeof log != 'undefined' && log !== null ? log.id() : void 8);\n    }\n    return inc(\"../_shared/overlay/overlay\")().append(Div({\n      width: \"20em\",\n      maxWidth: \"90%\",\n      padding: \"1em\",\n      textAlign: \"center\",\n      borderRadius: \"1em\"\n    }).html(inc(\"avatar/avatar\")(userDescription), inc(\"text/text\")(userDescription), inc(\"../_shared/buttonExit/button\")(o)));\n  };\n})();","updated":"2021-03-26T11:20:19.439349"},{"path":"pages/start/exitUser/page.ls","text":"(function(){\n  return function(page){\n    return {\n      start: function(){\n        var ref$;\n        deviceLog.log({\n          event: \"deviceUserLogout\",\n          logID: (ref$ = typeof log != 'undefined' && log !== null ? log.id() : void 8) != null ? ref$ : \"notFound\",\n          type: page.params.logoutType\n        });\n        if (Store(\"useAuthToken\")) {\n          inc(\"/lib/util/storedAuthToken/removeFromMemory/remove\")(typeof log != 'undefined' && log !== null ? log.id() : void 8);\n        }\n        window.log = undefined;\n        inc(\"/lib/util/orientation/unlock\")();\n        inc(\"/lib/util/browser/setPageUrl/set\")(\"\");\n        return inc(\"/lib/init/startFirstPage/start\")();\n      }\n    };\n  };\n})();","updated":"2021-03-26T11:20:19.439349"},{"path":"pages/start/startUser/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        var p, o;\n        p = page.params;\n        if (Store(\"useAuthToken\") && p.authToken) {\n          inc(\"/lib/util/storedAuthToken/set/set\")(p.logId, p.authToken);\n        }\n        o = {\n          logId: p.logId,\n          loginType: p.loginType,\n          rememberUser: p.rememberUser,\n          startNavCategory: p.startNavCategory,\n          page: page\n        };\n        return inc(\"01_rememberUser/rememberUser\")(o);\n      }\n    };\n  };\n})();","updated":"2021-03-26T11:20:19.439349"},{"path":"lib/util/print/_t.ls","text":"(function(){\n  return {\n    printDisabled: {\n      de: \"Die Druck-Funktion wurde vom Browser deaktiviert.<br>Bitte starte ANTON neu.\",\n      en: \"The print function was disabled by the browser.<br>Please restart ANTON.\",\n      fr: \"La fonction d'impression a été désactivée par le navigateur.<br>Merci de redémarrer ANTON.\",\n      es: \"La función de impresión ha sido deshabilitada.<br>Por favor, reinicia ANTON.\",\n      pt: \"A função de impressão foi desabilitada pelo navegador.<br>Por favor, reinicie ANTON.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"addons/topbarLevel/hint/hint/content/content/text/text.ls","text":"(function(){\n  return function(slide, part){\n    var text, that;\n    return text = _.isString(part)\n      ? part\n      : (that = part.text) ? that : void 8;\n  };\n})();","updated":"2021-09-06T16:48:37.309955"},{"path":"lib/gui/input2/externalKeyboard/hiddenInput/hiddenInput.ls","text":"(function(){\n  return function(o){\n    var onInput, onKeyDown, input;\n    onInput = function(e){\n      var t, i$, ref$, len$, c;\n      t = input.value;\n      if (o.compositionActive || t === \"\") {\n        return;\n      }\n      for (i$ = 0, len$ = (ref$ = Array.from(t)).length; i$ < len$; ++i$) {\n        c = ref$[i$];\n        o.onKey(c, false);\n      }\n      return input.value = \"\";\n    };\n    onKeyDown = function(e){\n      var functionKey;\n      functionKey = inc(\"../_calcFunctionKey/calc\")(e, o);\n      if (!functionKey) {\n        return;\n      }\n      o.onKey(functionKey, true);\n      return e.preventDefault();\n    };\n    return input = Input({\n      pointerEvents: \"none\",\n      width: \"1em\"\n    }).attr({\n      type: \"text\",\n      autocapitalize: \"off\",\n      autocorrect: \"off\",\n      spellcheck: \"false\",\n      autocomplete: \"off\"\n    }).bind(\"keydown\", onKeyDown).bind(\"input\", onInput).bind(\"compositionstart\", function(){\n      return o.compositionActive = true;\n    }).bind(\"compositionend\", function(){\n      o.compositionActive = false;\n      return onInput();\n    });\n  };\n})();","updated":"2021-10-13T13:13:13.39846"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/astroBang/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Fliege mit den Pfeiltasten, schieße mit der Leertaste. Versuche alle Asteroiden zu zerstören. Aber pass auf, dass du nicht in sie hineinfliegst.\",\n      en_gb: \"Use the arrow keys to steer and fly. Use the space bar to shoot. Try to destroy all the asteroids. Be careful not to crash into any of them!\",\n      en: \"Use the arrow keys to steer and fly and the space bar to shoot. Try to destroy all the asteroids. Be careful not to crash into any of them!\",\n      fr: \"Utilise les flèches du clavier pour diriger et voler, et la barre espace pour tirer. Essaie de détruire tous les astéroïdes. Fais attention&nbsp;: ils ne doivent pas te toucher&nbsp;!\",\n      es: \"Usa las flechas para volar y disparar con la barra espaciadora. Intenta destruir todos los asteroides sin estrellarte con ellos.\",\n      pt: \"Use as setas para voar e a barra de espaço para atirar. Tente destruir todos os asteróides, mas tome cuidado para não colidir com eles.\"\n    },\n    manual: {\n      de: \"Drehe dein Raumschiff mit den blauen Tasten. Mit der orangenen beschleunigst du. Schieße mit der pinken Taste. Versuche alle Asteroiden zu zerstören. Aber pass auf, dass du nicht in sie hineinfliegst.\",\n      en: \"Turn with the blue keys. Accelerate with the orange key. Shoot with the pink key. Try to destroy all the asteroids. Be careful not to crash into any of them!\",\n      fr: \"Tourne avec les touches bleues. Accélère avec la touche orange. Tire avec la touche rose. Essaie de détruire tous les astéroïdes. Fais attention&nbsp;: ils ne doivent pas te toucher&nbsp;!\",\n      es: \"Gira con las teclas azules, acelera con la tecla naranja y dispara con la tecla rosa para destruir los asteroides. ¡Ten cuidado! No te estrelles con ellos.\",\n      pt: \"Gire a espaçonave com as teclas azuis, acelere com a tecla laranja e dispare com a tecla rosa para destruir os asteróides. Mas tenha cuidado para não colidir com nenhum deles.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/pearlParty/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Ziele und schieße mit der Maus. Immer wenn du drei oder mehr gleichfarbige Bälle verbindest, bekommst du Punkte. Versuche zu verhindern, dass die Bälle das Ende des Pfades erreichen.\",\n      en_gb: \"Use the mouse to aim and shoot. Points are gained by connecting three or more balls of the same colour. Try to avoid the balls reaching the end of the path.\",\n      en: \"Use the mouse to aim and shoot. Points are gained by connecting three or more balls of the same color. Try to avoid the balls reaching the end of the path.\",\n      fr: \"Utilise la souris pour viser et tirer. Tu gagnes des points en collectant 3 perles de la même couleur ou plus. Essaie de ne pas laisser les perles arriver à la fin de chemin.\",\n      es: \"Apunta y dispara con el ratón. Logra unir tres o más pelotas del mismo color para ganar puntos. Evita que las pelotas lleguen al final del camino.\",\n      pt: \"Use o mouse para mirar e atirar. Sempre que você conectar três ou mais bolas da mesma cor, você ganha pontos. Tente evitar que as bolas cheguem ao fim do caminho.\"\n    },\n    manualMobile: {\n      de: \"Ziele und schieße, indem du mit dem Finger über den Bildschirm wischst. Immer wenn du drei oder mehr gleichfarbige Bälle verbindest, bekommst du Punkte. Versuche zu verhindern, dass die Bälle das Ende des Pfades erreichen.\",\n      en_gb: \"Swipe the screen to aim and shoot. Points are gained by connecting three or more balls of the same colour. Try to avoid the balls reaching the end of the path.\",\n      en: \"Swipe the screen to aim and shoot. Points are gained by connecting three or more balls of the same color. Try to avoid the balls reaching the end of the path.\",\n      fr: \"Fais glisser ton doigt sur l'écran pour viser et tirer. Tu gagnes des points en collectant 3 perles de la même couleur ou plus. Essaie de ne pas laisser les perles arriver à la fin de chemin.\",\n      es: \"Apunta y dispara deslizando el dedo sobre la pantalla. Logra unir tres o más pelotas del mismo color para ganar puntos. Evita que las pelotas lleguen al final del camino.\",\n      pt: \"Deslize o dedo sobre a tela para mirar e atirar. Sempre que você conectar três ou mais bolas da mesma cor, você ganha pontos. Tente evitar que as bolas cheguem ao fim do caminho.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/stroobTest/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Klicke auf den Button, auf dem die Farbe des Wortes geschrieben steht. \\nAber Vorsicht: Verwechsle die Farbe nicht mit dem Text des Wortes.\",\n      en_gb: \"Click on the button that says the colour of the word shown.\\nBe careful not to mix up what the word says with the colour of the word.\",\n      en: \"Click on the button that says the color of the word shown.\\nBe careful not to mix up what the word says with the color of the word.\",\n      fr: \"Clique sur le bouton qui correspond à la couleur des lettres du mot.\\nAttention à ne pas mélanger le mot avec la couleur de ses lettres.\",\n      es: \"Haz clic sobre el botón en el que está escrito el color de la palabra, pero ¡ten cuidado! \\nNo confundas el color de las letras con el significado de la palabra.\",\n      pt: \"Clique no botão em que está escrita a cor da palavra. Mas tenha cuidado para não confundir a cor das letras com o significado da palavra.\"\n    },\n    manual: {\n      de: \"Tippe auf den Button, auf dem die Farbe des Wortes geschrieben steht. \\nAber Vorsicht: Verwechsle die Farbe nicht mit dem Text des Wortes.\",\n      en_gb: \"Tap on the button that says the colour of the word shown.\\nBe careful not to mix up what the word says with the colour of the word.\",\n      en: \"Tap on the button that says the color of the word shown.\\nBe careful not to mix up what the word says with the color of the word.\",\n      fr: \"Appuie sur le bouton qui correspond à la couleur du mot.\\nAttention à ne pas mélanger le mot avec la couleur du mot.\",\n      es: \"Presiona el botón en el que está escrito el color de la palabra, pero ¡ten cuidado! \\nNo confundas el color de las letras con el significado de la palabra.\",\n      pt: \"Toque no botão onde está escrita a cor da palavra. Mas tenha cuidado: Não confunda a  cor das letras com o significado da palavra.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/superBubble/_t.ls","text":"(function(){\n  return {\n    manualDektop: {\n      de: \"Bewege das Raumschiff mit der Maus. Bring die Blasen mit deinem Laser zum Zerplatzen und sammle alle Früchte auf. Aber Vorsicht: Wenn du mit einer Blase zusammenstößt, verlierst du&nbsp;ein&nbsp;Leben.\",\n      en_gb: \"Use the mouse to direct the spaceship. Burst the bubbles with your laser and collect the fruit that falls out of them. Be careful: if you crash into a bubble you will lose a life.\",\n      en: \"Use the mouse to direct the spaceship. Burst the bubbles with your laser and collect the fruits that fall out of them. Be careful: if you crash into a bubble you will lose a life.\",\n      fr: \"Utilise la souris pour diriger le vaisseau. Fais éclater les bulles avec ton laser et collecte les fruits qui en tombent. Fais attention&nbsp;: si tu t'écrases contre une bulle tu perds une vie.\",\n      es: \"Mueve la nave con el mouse. Revienta las burbujas con tu láser y recolecta las frutas. ¡Ten cuidado! si chocas con una de las burbujas, perderás una vida.\",\n      pt: \"Use o mouse para mover a nave. Use seu laser para estourar as bolhas e coletar todas as frutas. Mas tenha cuidado: se você colidir com uma bolha, perderá uma vida.\"\n    },\n    manual: {\n      de: \"Bewege das Raumschiff mit deinem Finger. Bring die Blasen mit deinem Laser zum Zerplatzen und sammle alle Früchte auf. Aber Vorsicht: Wenn du mit einer Blase zusammenstößt, verlierst du&nbsp;ein&nbsp;Leben.\",\n      en_gb: \"Use your finger to direct the spaceship. Burst the bubbles with your laser and collect the fruit that falls out of them. Be careful: if you crash into a bubble you will lose a life.\",\n      en: \"Use your finger to direct the spaceship. Burst the bubbles with your laser and collect the fruits that fall out of them. Be careful: if you crash into a bubble you will lose a life.\",\n      fr: \"Utilise ton doigt pour diriger le vaisseau. Fais éclater les bulles avec ton laser et collecte les fruits qui en tombent. Fais attention&nbsp;: si tu t'écrases contre une bulle tu perds une vie.\",\n      es: \"Dirige la nave con el dedo. Revienta las burbujas con tu láser y recolecta las frutas. ¡Ten cuidado! Si chocas con una de las burbujas, perderás una vida.\",\n      pt: \"Deslize o dedo sobre a tela para mover a nave. Use seu laser para estourar as bolhas e coletar todas as frutas. Mas tenha cuidado: se você colidir com uma bolha, perderá uma vida.\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"lib/util/apiCall/calcUrl/calcUrlParams/calc.ls","text":"(function(){\n  return function(params){\n    return Object.keys(params).map(function(key){\n      return key + \"=\" + encodeURIComponent(params[key]);\n    }).join(\"&\");\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/apiCall/checkRequired/check.ls","text":"(function(){\n  return function(o){\n    if (o.requiredSamePopup) {\n      if (!o.requiredSamePopupInitValue.isVisible()) {\n        return false;\n      }\n    }\n    if (o.requiredSamePage) {\n      if (!o.requiredSamePageInitValue.isVisible()) {\n        return false;\n      }\n    }\n    return true;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/support/help/_t.ls","text":"(function(){\n  return {\n    faq: {\n      de: \"Häufige Fragen\",\n      en: \"FAQs\",\n      fr: \"Foire aux questions\",\n      es: \"Preguntas frecuentes\",\n      pt: \"Perguntas Frequentes\"\n    },\n    lastSeen: {\n      de: \"Zuletzt angesehen\",\n      en: \"Last viewed\",\n      fr: \"Vu en dernier\",\n      es: \"Visto por última vez\",\n      pt: \"Visto por último\"\n    },\n    informationNotFound: {\n      de: \"Welche Informationen hast du vermisst?\",\n      en: \"What information is missing?\",\n      fr: \"Quelles informations te manquent&nbsp;?\",\n      es: \"¿Qué información te hizo falta?\",\n      pt: \"Qual informação te fez falta?\"\n    },\n    sendButton: {\n      de: \"Senden\",\n      en: \"Send\",\n      fr: \"Envoyer\",\n      es: \"Enviar\",\n      pt: \"Enviar\"\n    },\n    thanksForGoodRating: {\n      de: \"Danke für deine gute Bewertung!\",\n      en: \"Thank you for your positive rating!\",\n      fr: \"Merci pour cette évaluation positive&nbsp;!\",\n      es: \"¡Gracias por tu evaluación!\",\n      pt: \"Agradecemos pela sua avaliação positiva!\"\n    },\n    thanksForRating: {\n      de: \"Danke für deine Bewertung!\",\n      en: \"Thank you for your rating!\",\n      fr: \"Merci pour cette évaluation&nbsp;!\",\n      es: \"¡Gracias por tu evaluación!\",\n      pt: \"Agradecemos pela sua avaliação!\"\n    },\n    helpful: {\n      de: \"Hilfreich\",\n      en: \"Helpful\",\n      fr: \"Utile\",\n      es: \"Útil\",\n      pt: \"Útil\"\n    },\n    notHelpful: {\n      de: \"Wenig hilfreich\",\n      en: \"Not helpful\",\n      fr: \"Pas utile\",\n      es: \"No muy útil\",\n      pt: \"Não muito útil\"\n    },\n    help: {\n      de: \"Hilfe\",\n      en: \"Help\",\n      fr: \"Aide/FAQ\",\n      es: \"Ayuda\",\n      pt: \"Ajuda/FAQ\"\n    },\n    chat: {\n      de: \"Nachrichten\",\n      en: \"Support chat\",\n      fr: \"Tchat d'assistance\",\n      es: \"Mensajes\",\n      pt: \"Chat de ajuda\"\n    },\n    helpChatDescription: {\n      de: \"Die Nachrichten-Funktion ist nur für Erwachsene.\",\n      en: \"Messaging is for adults only.\",\n      fr: \"La fonction chat est seulement accessible aux adultes.\",\n      es: \"La función de chat es solo para adultos.\",\n      pt: \"A função de chat é somente para adultos.\"\n    },\n    sendMessage: {\n      de: \"Nachricht&nbsp;schicken\",\n      en: \"write&nbsp;us&nbsp;a&nbsp;message\",\n      fr: \"nous&nbsp;écrire&nbsp;un&nbsp;message\",\n      es: \"enviarnos un mensaje\",\n      pt: \"enviar-nos uma mensagem\"\n    },\n    noAnswerFoundA: {\n      de: \"Dein Suchbegriff wurde leider nicht gefunden.\",\n      en: \"Unfortunately, your search was not successful.\",\n      fr: \"Malheureusement, ta recherche n'a pas abouti.\",\n      es: \"Desgraciadamente, tu búsqueda no ha dado resultados.\",\n      pt: \"Infelizmente, não houve resultados para sua busca.\"\n    },\n    noAnswerFoundB: {\n      de: \"Falls du keine Antwort auf deine Frage findest, kannst du uns auch eine \",\n      en: \"If you don’t find an answer to your question, you can also \",\n      fr: \"Si tu ne trouves pas de réponse à ta question, tu peux aussi \",\n      es: \"Si no encontraste la respuesta a tu pregunta, también puedes \",\n      pt: \"Caso você não encontre uma resposta para sua dúvida, você também pode\"\n    },\n    startPageBack: {\n      de: \"Zur ANTON-Startseite\",\n      en: \"To the ANTON homepage\",\n      fr: \"Retour à l'accueil d'ANTON\",\n      es: \"Volver a la página de Inicio de ANTON\",\n      pt: \"Voltar à página inicial do ANTON\"\n    },\n    faqUrl: {\n      de: \"faq\",\n      en: \"faq\",\n      fr: \"faq\",\n      es: \"faq\",\n      pt: \"faq\"\n    },\n    searchPlaceholder: {\n      de: \"Suche nach Frage oder Text\",\n      en: \"Search by question or text\",\n      fr: \"Rechercher par question ou mot\",\n      es: \"Busca por pregunta o por término\",\n      pt: \"Buscar por pergunta ou texto\"\n    },\n    backToFaqList: {\n      de: \"Zurück zu den Häufigen Fragen\",\n      en: \"Back to the FAQs\",\n      fr: \"Retour à la page FAQ\",\n      es: \"Volver a Preguntas frecuentes\",\n      pt: \"Voltar para Perguntas Frequentes\"\n    },\n    faqNotFound: {\n      de: \"Diese Frage konnte nicht gefunden werden.\",\n      en: \"This question could not be found.\",\n      fr: \"Nous n'avons pas de réponse pour cette question.\",\n      es: \"No se obtuvieron resultados para esta pregunta.\",\n      pt: \"Nenhum resultado foi encontrado para esta pergunta.\"\n    },\n    faqNotFoundTitle: {\n      de: \"Frage nicht gefunden\",\n      en: \"Question not found\",\n      fr: \"Question introuvable\",\n      es: \"No se encontró la pregunta\",\n      pt: \"Pergunta não encontrada\"\n    },\n    searchHoverLabel: {\n      deDev: \"Häufige Fragen durchsuchen\",\n      en_gb: \"Search FAQs\",\n      enDev: \"Search frequently asked questions\",\n      frDev: \"Rechercher des questions fréquentes\",\n      esDev: \"Buscar preguntas frecuentes\",\n      ptDev: \"Pesquisar perguntas frequentes\"\n    }\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"pages/games/00_shared/pixiGame/basePage/topbar/topbar.ls","text":"(function(){\n  return function(o){\n    var topBar;\n    topBar = inc(\"/addons/topbarGame/topbar\")({\n      close: o.close\n    });\n    if (o.showHelp != null) {\n      topBar.showHelp = o.showHelp;\n    }\n    return topBar;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/pushShrinkGrow.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.newScene.sceneWidth;\n    h = o.newScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.oldScene.scale.set(1 - percentage);\n      o.newScene.scale.set(percentage);\n      o.oldScene.y = (h - o.oldScene.sceneHeight * o.oldScene.scale.y) / 2;\n      o.newScene.y = (h - o.newScene.sceneHeight * o.newScene.scale.y) / 2;\n      o.oldScene.x = (w - o.oldScene.sceneWidth * o.oldScene.scale.x) / 2 - percentage * w / 4;\n      o.newScene.x = (w - o.newScene.sceneWidth * o.newScene.scale.x) / 2 + w / 4 - percentage * w / 4;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/slideFromBottom.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.y = o.newScene.sceneHeight * (1 - percentage);\n      o.oldScene.y = -o.oldScene.sceneHeight * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/rotateZoomIn.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.newScene.sceneWidth;\n    h = o.newScene.sceneHeight;\n    o.newScene.pivot.set(w / 2, h / 2);\n    transition.updateState = function(percentage){\n      o.newScene.scale.set(percentage);\n      o.newScene.rotation = -percentage * 4 * Math.PI;\n      o.newScene.x = w / 2;\n      o.newScene.y = h / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/rotateZoomOut.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.oldScene.sceneWidth;\n    h = o.oldScene.sceneHeight;\n    o.oldScene.pivot.set(w / 2, h / 2);\n    transition.updateState = function(percentage){\n      o.oldScene.scale.set(1 - percentage);\n      o.oldScene.rotation = percentage * 4 * Math.PI;\n      o.oldScene.x = w / 2;\n      o.oldScene.y = h / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/slideFromLeft.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.x = -o.newScene.sceneWidth * (1 - percentage);\n      o.oldScene.x = o.oldScene.sceneWidth * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/slideFromRight.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.x = o.newScene.sceneWidth * (1 - percentage);\n      o.oldScene.x = -o.oldScene.sceneWidth * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/slideFromTop.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.y = -o.newScene.sceneHeight * (1 - percentage);\n      o.oldScene.y = o.oldScene.sceneHeight * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/slideToBottom.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.y = o.oldScene.sceneHeight * percentage;\n      o.newScene.y = -o.newScene.sceneHeight * (1 - percentage);\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/slideToLeft.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.x = -o.oldScene.sceneWidth * percentage;\n      o.newScene.x = o.newScene.sceneWidth - o.newScene.sceneWidth * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/toBottom.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.y = o.oldScene.sceneHeight * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/slideToRight.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.x = o.oldScene.sceneWidth * percentage;\n      o.newScene.x = -o.newScene.sceneWidth + o.newScene.sceneWidth * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/slideToTop.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.y = -o.oldScene.sceneHeight * percentage;\n      o.newScene.y = o.oldScene.sceneHeight * (1 - percentage);\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/toRight.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.x = o.oldScene.sceneWidth * percentage;\n      o.newScene.x = -o.newScene.sceneWidth / 3 + o.newScene.sceneWidth * percentage / 3;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/toTop.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.y = -o.oldScene.sceneHeight * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/transitions.ls","text":"(function(){\n  return function(){\n    var Transitions;\n    return Transitions = {\n      NONE: inc(\"baseTransiton\"),\n      PUSH: {\n        FROM_RIGHT: inc(\"fromRight\"),\n        FROM_LEFT: inc(\"fromLeft\"),\n        FROM_TOP: inc(\"fromTop\"),\n        FROM_BOTTOM: inc(\"fromBottom\"),\n        FADE_IN: inc(\"fadeIn\"),\n        FADE_OUT_IN: inc(\"fadeOutIn\"),\n        ZOOM_IN: inc(\"zoomIn\"),\n        ALPHA_ZOOM_IN: inc(\"alphaZoomIn\"),\n        SHRINK_GROW_PUSH: inc(\"pushShrinkGrow\"),\n        ROTATE_ZOOM_IN: inc(\"rotateZoomIn\"),\n        SLIDE_FROM_LEFT: inc(\"slideFromLeft\"),\n        SLIDE_FROM_RIGHT: inc(\"slideFromRight\"),\n        SLIDE_FROM_TOP: inc(\"slideFromTop\"),\n        SLIDE_FROM_BOTTOM: inc(\"slideFromBottom\")\n      },\n      POP: {\n        TO_RIGHT: inc(\"toRight\"),\n        TO_LEFT: inc(\"toLeft\"),\n        TO_TOP: inc(\"toTop\"),\n        TO_BOTTOM: inc(\"toBottom\"),\n        FADE_OUT: inc(\"fadeOut\"),\n        FADE_OUT_IN: inc(\"fadeOutIn\"),\n        ZOOM_OUT: inc(\"zoomOut\"),\n        ALPHA_ZOOM_OUT: inc(\"alphaZoomOut\"),\n        SHRINK_GROW_POP: inc(\"popShrinkGrow\"),\n        ROTATE_ZOOM_OUT: inc(\"rotateZoomOut\"),\n        SLIDE_TO_LEFT: inc(\"slideToLeft\"),\n        SLIDE_TO_RIGHT: inc(\"slideToRight\"),\n        SLIDE_TO_BOTTOM: inc(\"slideToBottom\"),\n        SLIDE_TO_TOP: inc(\"slideToTop\")\n      }\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/zoomIn.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.newScene.sceneWidth;\n    h = o.newScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.newScene.scale.set(percentage);\n      o.newScene.x = (w - o.newScene.sceneWidth * o.newScene.scale.x) / 2;\n      o.newScene.y = (h - o.newScene.sceneHeight * o.newScene.scale.y) / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/zoomOut.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.oldScene.sceneWidth;\n    h = o.oldScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.oldScene.scale.set(1 - percentage);\n      o.oldScene.x = (w - o.oldScene.sceneWidth * o.oldScene.scale.x) / 2;\n      o.oldScene.y = (h - o.oldScene.sceneHeight * o.oldScene.scale.y) / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/content/plan/topics/topic/title/newTag/tag.ls","text":"(function(){\n  return function(topic){\n    var ref$;\n    return (ref$ = inc(\"/lib/gui/newTag/newTag\")(topic.isNewUntil)) != null ? ref$.css({\n      marginLeft: \"0.5em\"\n    }) : void 8;\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"pages/content/plan/topics/topic/title/searchTag/tag.ls","text":"(function(){\n  return function(topic){\n    var tags, q, matchedTag, label;\n    tags = topic.tags;\n    if (q = app.currentPage.params.searchQuery) {\n      matchedTag = _.find(tags, function(tag){\n        return _.includes(tag.toLowerCase(), q.toLowerCase());\n      });\n      if (matchedTag) {\n        label = inc(\"/lib/util/tagSearchInString/tagSearchInString\")(matchedTag, q, \"<m-blue>\");\n        return Div().css({\n          fontWeight: \"normal\",\n          display: \"inline-flex\",\n          padding: \"0.4em\",\n          color: Color.grey[600],\n          fontSize: \"0.8em\"\n        }).html(\"(\" + label + \")\");\n      }\n    }\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"pages/content/plan/topics/topic/title/title/title.ls","text":"(function(){\n  return function(topic){\n    var q, title;\n    if (engine.isBotMode) {\n      return T(\"topic\", topic.title);\n    } else if (q = app.currentPage.params.searchQuery) {\n      if (_.includes(topic.title.toLowerCase(), q.toLowerCase())) {\n        return title = inc(\"/lib/util/tagSearchInString/tagSearchInString\")(topic.title, q, \"<m-blue>\");\n      } else {\n        return topic.title;\n      }\n    } else {\n      return topic.title;\n    }\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"pages/games/01_gamesList/row/plusStopPopup/logPromo/log.ls","text":"(function(){\n  return function(){\n    var a;\n    a = app.currentPagePath.split(\"/\").reverse();\n    return inc(\"/lib/util/logPromo/log\")({\n      event: \"promoPlus_popupStopGame\",\n      isReferrer: true,\n      page: a[2] + \"/\" + a[1]\n    });\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/support/help/faqList/category/category.ls","text":"(function(){\n  return function(page, category){\n    if (category.isDebug && !engine.isDebug) {\n      return;\n    }\n    return Div().addClass(\"category_\" + category.uid).css({\n      width: \"35em\",\n      maxWidth: \"90%\",\n      margin: \"1em auto\"\n    }).append(inc(\"name/name\")(category), inc(\"questions/questions\")(page, category));\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"pages/games/01_gamesList/row/plusStopPopup/popup.ls","text":"(function(){\n  return function(gd){\n    var div;\n    inc(\"logPromo/log\")();\n    div = Div({\n      padding: \"1em\"\n    }).html(inc(\"icon/icon\")(gd), inc(\"text/text\")(), inc(\"button/button\")());\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(type){\n        if (type === \"outside\" || type === \"icon\") {\n          return inc(\"/lib/util/logPromo/log\")({\n            event: \"promoPlus_popupStopGame_close\"\n          });\n        }\n      }\n    });\n  };\n})();","updated":"2021-04-16T16:11:53.059235"},{"path":"pages/static/privacy/div/divEs/div.ls","text":"(function(){\n  return function(options){\n    var isPrint, ref$, s, p, section;\n    isPrint = (ref$ = options != null ? options.isPrint : void 8) != null ? ref$ : false;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div().addClass(\"privacyDiv\").append(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3em\"\n    }) : void 8, isPrint ? Div().css({\n      fontSize: \"1.4em\"\n    }).html(T(\"privacy\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. General\",\n      content: [p(\"ANTON es una aplicación de aprendizaje digital que puede ser descargada o utilizada en https://anton.app.\"), p(\"El operador y responsable en términos de protección de datos es solocode GmbH, Mehringdamm 61, 10961 Berlín. \"), p(\"Si tienes alguna pregunta sobre la privacidad, puedes escribirnos a privacy@anton.app.\"), p(\"La protección de tus datos es particularmente importante para nosotros.\"), p(\"Recopilamos la menor cantidad de datos posible, los borramos automáticamente en caso de inactividad, los almacenamos sólo en servidores seguros en Europa y no los compartimos con terceros.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. ¿Qué datos almacena ANTON?\",\n      content: [\n        section({\n          isExpanded: isPrint,\n          header: \"2.1. Los datos que compartes con nosotros\",\n          content: [p(\"Si eres estudiante, te pediremos tu apodo, tu escuela (opcional) y la asignatura con la que te gustaría empezar en cada curso. Si te asignas a una escuela, el administrador de la escuela puede añadir tu usuario al directorio de la escuela y añadir datos sobre ti, como el nombre y la clase.\"), p(\"Si eres docente, te pediremos tu nombre, apellido, título y voluntariamente tu escuela y tu dirección de correo electrónico.\"), p(\"Si eres docente o miembro del personal de una escuela y creas un grupo y claves de acceso para sus estudiantes y/o docentes, tu o tu escuela son responsables de la protección de datos. Por favor, utiliza únicamente apodos que no permitan a un tercero identificar a los estudiantes u obtener el consentimiento de los padres.\"), p(\"Si eres docente y te asignas a una escuela, permites que el administrador de esta escuela añada tu usuario al directorio de la escuela, que gestione tu usuario y los usuarios con las claves de acceso creados por ti, que añada datos personales, que vea la clave de acceso y que marque a los usuarios para su eliminación.\"), p(\"Si eliges que tu información de usuario se almacene en tu dispositivo, nosotros la almacenaremos en él.\"), p(\"De vez en cuando te preguntamos cuánto te gusta ANTON y el contenido de aprendizaje, y cómo podemos mejorarlo.\"), p(\"Tienes la opción de introducir tu dirección de correo electrónico o número de teléfono móvil en la configuración si tienes al menos 16 años. Entonces podemos restaurar tu acceso en caso de que pierdas tus datos de acceso.\"), p(\"Si te pones en contacto con nosotros a través del chat de ayuda o del correo electrónico, almacenaremos estos mensajes y la fecha y la hora de los mismos para poder comunicarnos contigo.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"2.2. La información que recibimos automáticamente a través de tu uso de ANTON\",\n          content: [p(\"Cuando utilizas ANTON, ANTON almacena datos sobre tu uso en el dispositivo y los sincroniza con nuestro servidor cuando se conecta a Internet. Esto te permite usar ANTON con tu usuario en múltiples dispositivos.\"), p(\"Esto incluye: páginas de aplicaciones que has lanzado y tu progreso de aprendizaje, los resultados de tus juegos, tu membresía en grupos, contenido que has creado, como imágenes y listas de aprendizaje, tu tipo de dispositivo, sistema operativo y navegador de Internet y tu dirección IP anónima.\"), p(\"No guardamos los últimos tres dígitos de tu dirección IP en nuestro sistema para que puedas permanecer en el anonimato.\")]\n        })\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. ¿Para qué se utilizan estos datos?\",\n      content: p(\"Los datos almacenados serán utilizados exclusivamente, para ayudarte en caso de problemas con ANTON, y para desarrollar ANTON según las necesidades de nuestros usuarios.\")\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. ¿Cuánto tiempo se almacenarán los datos?\",\n      content: [p(\"Tus datos de usuario serán almacenados mientras uses ANTON. Si dejas de utilizar ANTON y no eres miembro de un directorio gestionado por la escuela, borraremos automáticamente tus datos de usuario 12 meses después de tu última conexión o después de que termine tu afiliación a ANTON Plus.\"), p(\"Tus datos personales serán eliminados o bloqueados tan pronto como el propósito del almacenamiento deje de ser aplicable. Los datos también pueden almacenarse si así lo ha dispuesto el legislador europeo o nacional en los reglamentos, leyes u otras disposiciones de la Unión a las que esté sujeto el responsable del tratamiento. También se bloquearán o suprimirán los datos si expira el período de almacenamiento prescrito por las normas mencionadas, a menos que haya necesidad de seguir almacenando los datos para la conclusión o el cumplimiento de un contrato.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. ¿Comparte ANTON datos con terceros?\",\n      content: [p(\"No, no compartimos tus datos con terceros a menos que el usuario haya dado previamente su consentimiento expreso o exista una obligación legal de transmitir los datos.\"), p(\"No usamos Google, Facebook, Amazon o cualquier otra integración de productos en ANTON, lo que significa que tus datos realmente sólo se quedan en nuestros servidores.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. ¿Cómo se garantiza la seguridad de los datos?\",\n      content: [p(\"Todos los datos se almacenan exclusivamente en servidores físicos en la Union Europea y se transmiten en forma cifrada. Los centros de datos cumplen con los más altos estándares de seguridad y están certificados de acuerdo a ISO/IEC 27001.\"), p(\"Al mismo tiempo, el usuario debe ser consciente de que, debido a la constante aparición de nuevos virus y otros medios de atacar los sistemas de datos seguros de los servicios de Internet, no se puede garantizar una protección al cien por cien contra los ataques.\"), p(\"Perseguiremos cualquier ataque descubierto por hackers y similares bajo el derecho civil y penal e informaremos al usuario sobre cualquier compromiso de sus datos.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. ¿Qué datos pueden ver otros usuarios?\",\n      content: [p(\"Otros usuarios pueden ver tu apodo, avatar y puntuación en los juegos. Si tu mismo generas el contenido, como imágenes o listas de aprendizaje, puedes decidir si deseas hacerlo público para otros usuarios.\"), p(\"Tu docente de grupo y, en caso de que tu escuela utilice el directorio escolar, el administrador de la escuela y los docentes autorizados por él en tu escuela pueden ver tu nombre y tu progreso de aprendizaje y buscar tu clave de acceso por ti.\"), p(\"Cuando te registras como docente y seleccionas una escuela, el administrador del directorio de esa escuela podrá ver tus datos y la clave de acceso y añadirte al directorio de la escuela. Esto también se aplica si has dado información falsa sobre ti o tu afiliación a la escuela.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Tus derechos\",\n      content: [\n        section({\n          isExpanded: isPrint,\n          header: \"8.1. Derecho a la información\",\n          content: p(\"Todo usuario tiene derecho a recibir información gratuita sobre los datos personales almacenados sobre él. Por favor, envíanos un correo electrónico a privacy@anton.app con la siguiente información de identificación: apodo, clave de acceso, nombre, dirección de correo electrónico, dirección postal y fecha de nacimiento.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.2. Derecho de rectificación\",\n          content: p(\"Tienes derecho a rectificar y/o completar si los datos personales procesados que te conciernen son inexactos o están incompletos.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.3. Derecho a restringir el procesamiento\",\n          content: [p(\"Puedes solicitar la restricción del tratamiento de los datos personales que te conciernen en las siguientes condiciones:\"), p(\"a. Si disputas la exactitud de los datos personales relacionados contigo durante un período de tiempo que nos permita verificar la exactitud de los datos personales.\"), p(\"b. El procesamiento es ilegal y te opones al borrado de los datos personales para solicitar en su lugar la restricción del uso de los datos personales.\"), p(\"c. Ya no necesitamos los datos personales para el procesamiento, pero tu los necesitas para hacer valer, ejercer o defender tus derechos legales.\"), p(\"d. Si te has opuesto a la tramitación de conformidad con el artículo 21 1) de la DSGVO y todavía no está claro si los motivos legítimos del controlador prevalecen sobre tus motivos.\"), p(\"e. Cuando se haya restringido el tratamiento de los datos personales que te conciernen, éstos sólo podrán tratarse, con excepción de su almacenamiento, con tu consentimiento o para el establecimiento, ejercicio o defensa de demandas judiciales o para la protección de los derechos de otra persona física o jurídica o por razones de interés público sustancial de la Unión o de un Estado miembro. Si la restricción del procesamiento ha sido restringida de acuerdo con las condiciones anteriores, te informaremos antes de que se levante la restricción.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.4. Derecho de eliminación\",\n          content: [p(\"Si lo deseas, podemos eliminar tus datos de usuario. Por favor, envíanos un correo electrónico a privacy@anton.app con la siguiente información para identificarlo: nombre de usuario, clave de acceso, nombre y apellido.\"), p(\"Para eliminar los datos de usuario almacenados en tus dispositivos, puedes desinstalar ANTON o hacer clic en cerrar sesión, en los ajustes de la aplicación, y seleccionar el perfil del usuario que deseas eliminar.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.5. Derecho a la portabilidad de los datos\",\n          content: [p(\"Las escuelas pueden marcar las cuentas de usuario que han creado o cuya administración es su responsabilidad de suprimir después de un período de transición de 60 días. Los usuarios, y si es necesario sus tutores legales, deben ser informados por la escuela. Los usuarios tendrán la oportunidad de transferir los datos almacenados en la cuenta del usuario a una nueva cuenta en un plazo de 60 días y de seguir utilizándola de forma independiente. Después de este período, las cuentas de usuario se eliminarán automáticamente.\"), p(\"Tienes derecho a solicitar una copia de tus datos personales en formato electrónico y el derecho a transferir esos datos personales para utilizarlos al servicio de otra persona. Si lo solicitas, te enviaremos un archivo con tus datos personales. Para ello, envíanos un correo electrónico a privacy@anton.app con la siguiente información de identificación: nombre de usuario, clave de acceso, nombre y apellido, posiblemente apellido de soltero, dirección de correo electrónico, dirección postal y fecha de nacimiento.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.6. Derecho de objeción\",\n          content: p(\"Tienes derecho a oponerte en cualquier momento, por motivos derivados de tu situación particular, al tratamiento de los datos personales que te conciernen y que se efectúe sobre la base del artículo 6 1) e) o f) de la DSGVO.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.7. Derecho a revocar la declaración de consentimiento en virtud de la ley de protección de datos\",\n          content: p(\"Tienes derecho a revocar tu consentimiento de protección de datos en cualquier momento. La revocación del consentimiento no afecta a la legalidad del tratamiento realizado sobre la base del consentimiento hasta la revocación.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.8. Derecho a quejarse ante una autoridad de supervisión\",\n          content: p(\"Sin perjuicio de cualquier otro recurso administrativo o judicial, tienes derecho a presentar una denuncia ante una autoridad de supervisión, en particular en el Estado miembro de tu residencia, lugar de trabajo o lugar de la presunta infracción, si consideras que el tratamiento de los datos personales que te conciernen infringe la RPI. La autoridad de supervisión a la que se haya presentado la denuncia informará al denunciante sobre la situación y el resultado de la misma, incluida la posibilidad de un recurso judicial en virtud del artículo 78 de la RDPI.\")\n        })\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. ¿Cuál es la base jurídica de la tramitación?\",\n      content: [p(\"En la medida en que obtengamos el consentimiento del interesado para las operaciones de tratamiento de datos personales, el artículo 6 1) a) del Reglamento general de protección de datos de la UE (DSGVO) sirve de base jurídica.\"), p(\"En el tratamiento de los datos personales necesarios para la ejecución de un contrato en el que el interesado sea parte, el artículo 6 1) lit. b DSGVO sirve de base jurídica. Esto también se aplica a las operaciones de procesamiento necesarias para la ejecución de medidas precontractuales.\"), p(\"En la medida en que el tratamiento de los datos personales sea necesario para el cumplimiento de una obligación legal a la que nuestra empresa esté sujeta, el artículo 6 (1) lit. c DSGVO sirve de base legal.\"), p(\"Si el tratamiento es necesario para proteger un interés legítimo de nuestra empresa o de un tercero y los intereses, los derechos y las libertades fundamentales del interesado no prevalecen sobre el primer interés mencionado, el apartado 1 del artículo 6, letra f), de la DSGVO sirve de base jurídica para el tratamiento.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. Explicación de los términos\",\n      content: [p(\"EU GDPR: Reglamento (UE) 2016/679 del Parlamento Europeo y del Consejo, de 27 de abril de 2016, relativo a la protección de las personas físicas en lo que respecta al tratamiento de datos personales y a la libre circulación de estos datos, y por el que se deroga la Directiva 95/46/CE (Reglamento general sobre protección de datos).\"), p(\"Datos personales: De conformidad con el artículo 4 1) del Reglamento sobre el PIB de la UE, toda información relativa a una persona física identificada o identificable; una persona física identificable es aquella que puede ser identificada, directa o indirectamente, en particular mediante referencia a un identificador, como un nombre, un número de identificación, datos de localización, un identificador en línea o a uno o más factores específicos de la identidad física, fisiológica, genética, mental, económica, cultural o social de esa persona física.\")]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/support/help/faqList/category/questions/question/title/title.ls","text":"(function(){\n  return function(page, question){\n    var label, q;\n    label = (q = page.params.search)\n      ? inc(\"/lib/util/tagSearchInString/tagSearchInString\")(question.title, q, \"<m-blue>\")\n      : question.title;\n    return Div().css({\n      flex: \"1 1 auto\",\n      padding: \"0.5em 0\",\n      textAlign: \"left\",\n      lineHeight: \"1.5em\"\n    }).append(label, inc(\"../../../../../_debugIcon/icon\")(question));\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"pages/support/help/faqList/clickOpenChat/click.ls","text":"(function(){\n  return function(page){\n    return function(){\n      var openChat;\n      openChat = function(){\n        return startPage({\n          path: path(\"../../chat/page\"),\n          animation: \"fadeIn\",\n          replace: true\n        });\n      };\n      if (inc(\"/lib/util/cache/get/get\")(\"chatParentalGatePassed\")) {\n        return openChat();\n      } else {\n        return inc(\"/lib/gui/parentalGate/parentalGate\")(function(){\n          openChat();\n          return inc(\"/lib/util/cache/set/set\")(\"chatParentalGatePassed\", true);\n        }, {\n          title: T(\"helpChatDescription\"),\n          forceShow: true\n        });\n      }\n    };\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"pages/support/help/faqQuestion/create/backLink/link.ls","text":"(function(){\n  return function(page){\n    return Button({\n      label: T(\"backToFaqList\"),\n      icon: path(\"/lib/svg/icon/arrow-left-small.svg\")\n    }).css({\n      marginTop: \"0.8em\"\n    }).tap(function(){\n      return page.backToFaqList();\n    });\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"pages/support/help/faqQuestion/calcFaqDeeplinkUid/calc.ls","text":"(function(){\n  return function(){\n    var url, r, uid;\n    url = inc(\"/lib/util/browser/getPageUrl/get\")();\n    r = url.match(T(\"faqUrl\") + \"/([^/]+)\");\n    return uid = r != null ? r[1] : void 8;\n  };\n})();","updated":"2021-06-11T13:11:30.332156"},{"path":"pages/support/help/faqQuestion/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      backLabel: page.params.context !== \"welcome-page\" ? T(\"faq\") : void 8,\n      title: Div().addClass(\"categoryName\").html(page.params.categoryName),\n      backDeepLink: page.params.isDeepLink ? function(){\n        return page.backToFaqList();\n      } : void 8\n    });\n  };\n})();","updated":"2025-06-16T09:32:02.932058"},{"path":"pages/support/news/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      title: T(\"antonNews\"),\n      close: function(){\n        return startPage({\n          history: -1,\n          animation: \"slideDown\"\n        });\n      }\n    });\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"lib/util/downloadContentFile/addJobToQueue/add.ls","text":"(function(){\n  return function(job, queue){\n    var existingJob;\n    existingJob = _.find(queue, function(j){\n      return j.fileId === job.fileId && j.fileApi === job.fileApi && j.fileFolder === job.fileFolder;\n    });\n    if (existingJob) {\n      if (job.returnFileContent) {\n        existingJob.returnFileContent = true;\n      }\n      return existingJob.jobs.push(job);\n    } else {\n      return queue.push({\n        fileId: job.fileId,\n        fileFolder: job.fileFolder,\n        fileApi: job.fileApi,\n        etag: job.etag,\n        returnFileContent: job.returnFileContent,\n        calcDetailsOnly: job.calcDetailsOnly,\n        jobs: [job]\n      });\n    }\n  };\n})();","updated":"2023-04-24T09:23:04.816768"},{"path":"lib/util/loadGroupContent/subscribeGroupLog/subscribe.ls","text":"(function(){\n  return function(groupCode, onDone){\n    return Logger.subscribe({\n      logId: groupCode,\n      filter: \"subscribeGroup\",\n      removeOldEvents: true,\n      onSubscribe: function(groupLog){\n        window.groupLogs[groupCode] = groupLog;\n        return onDone();\n      }\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/hideSuggestions/hide.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var ref$, ref1$, ref2$;\n      if ((ref$ = o.suggestionDiv) != null) {\n        ref$.hide();\n      }\n      if ((ref1$ = o.suggestionsBackground) != null) {\n        ref1$.hide();\n      }\n      return (ref2$ = body.findFirst(\".menuSearchResult\")) != null ? ref2$.css({\n        opacity: 1\n      }) : void 8;\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/init/init.ls","text":"(function(){\n  return function(o){\n    return inc(\"../loadPlans/load\")({\n      onDone: function(plans){\n        return inc(\"initKeywordSearch/init\")(plans);\n      },\n      onError: function(){}\n    });\n  };\n})();","updated":"2021-10-25T12:34:10.726624"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/_external/fuse/fuse.min.js","text":"/**\n * @license\n * Fuse - Lightweight fuzzy-search\n *\n * Copyright (c) 2012-2016 Kirollos Risk <kirollos@gmail.com>.\n * All Rights Reserved. Apache Software License 2.0\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\")\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n!function(t){\"use strict\";function e(){console.log.apply(console,arguments)}function s(t,e){var s;this.list=t,this.options=e=e||{};for(s in r)r.hasOwnProperty(s)&&(\"boolean\"==typeof r[s]?this.options[s]=s in e?e[s]:r[s]:this.options[s]=e[s]||r[s])}function n(t,e,s){var o,r,h,a,c,p;if(e){if(h=e.indexOf(\".\"),-1!==h?(o=e.slice(0,h),r=e.slice(h+1)):o=e,a=t[o],null!==a&&void 0!==a)if(r||\"string\"!=typeof a&&\"number\"!=typeof a)if(i(a))for(c=0,p=a.length;p>c;c++)n(a[c],r,s);else r&&n(a,r,s);else s.push(a)}else s.push(t);return s}function i(t){return\"[object Array]\"===Object.prototype.toString.call(t)}function o(t,e){e=e||{},this.options=e,this.options.location=e.location||o.defaultOptions.location,this.options.distance=\"distance\"in e?e.distance:o.defaultOptions.distance,this.options.threshold=\"threshold\"in e?e.threshold:o.defaultOptions.threshold,this.options.maxPatternLength=e.maxPatternLength||o.defaultOptions.maxPatternLength,this.pattern=e.caseSensitive?t:t.toLowerCase(),this.patternLen=t.length,this.patternLen<=this.options.maxPatternLength&&(this.matchmask=1<<this.patternLen-1,this.patternAlphabet=this._calculatePatternAlphabet())}var r={id:null,caseSensitive:!1,include:[],shouldSort:!0,searchFn:o,sortFn:function(t,e){return t.score-e.score},getFn:n,keys:[],verbose:!1,tokenize:!1,matchAllTokens:!1,tokenSeparator:/ +/g,minMatchCharLength:1,findAllMatches:!1};s.VERSION=\"2.6.0\",s.prototype.set=function(t){return this.list=t,t},s.prototype.search=function(t){this.options.verbose&&e(\"\\nSearch term:\",t,\"\\n\"),this.pattern=t,this.results=[],this.resultMap={},this._keyMap=null,this._prepareSearchers(),this._startSearch(),this._computeScore(),this._sort();var s=this._format();return s},s.prototype._prepareSearchers=function(){var t=this.options,e=this.pattern,s=t.searchFn,n=e.split(t.tokenSeparator),i=0,o=n.length;if(this.options.tokenize)for(this.tokenSearchers=[];o>i;i++)this.tokenSearchers.push(new s(n[i],t));this.fullSeacher=new s(e,t)},s.prototype._startSearch=function(){var t,e,s,n,i=this.options,o=i.getFn,r=this.list,h=r.length,a=this.options.keys,c=a.length,p=null;if(\"string\"==typeof r[0])for(s=0;h>s;s++)this._analyze(\"\",r[s],s,s);else for(this._keyMap={},s=0;h>s;s++)for(p=r[s],n=0;c>n;n++){if(t=a[n],\"string\"!=typeof t){if(e=1-t.weight||1,this._keyMap[t.name]={weight:e},t.weight<=0||t.weight>1)throw new Error(\"Key weight has to be > 0 and <= 1\");t=t.name}else this._keyMap[t]={weight:1};this._analyze(t,o(p,t,[]),p,s)}},s.prototype._analyze=function(t,s,n,o){var r,h,a,c,p,l,u,f,d,g,m,y,v,k,S,b=this.options,M=!1;if(void 0!==s&&null!==s){h=[];var _=0;if(\"string\"==typeof s){if(r=s.split(b.tokenSeparator),b.verbose&&e(\"---------\\nKey:\",t),this.options.tokenize){for(k=0;k<this.tokenSearchers.length;k++){for(f=this.tokenSearchers[k],b.verbose&&e(\"Pattern:\",f.pattern),d=[],y=!1,S=0;S<r.length;S++){g=r[S],m=f.search(g);var L={};m.isMatch?(L[g]=m.score,M=!0,y=!0,h.push(m.score)):(L[g]=1,this.options.matchAllTokens||h.push(1)),d.push(L)}y&&_++,b.verbose&&e(\"Token scores:\",d)}for(c=h[0],l=h.length,k=1;l>k;k++)c+=h[k];c/=l,b.verbose&&e(\"Token score average:\",c)}u=this.fullSeacher.search(s),b.verbose&&e(\"Full text score:\",u.score),p=u.score,void 0!==c&&(p=(p+c)/2),b.verbose&&e(\"Score average:\",p),v=this.options.tokenize&&this.options.matchAllTokens?_>=this.tokenSearchers.length:!0,b.verbose&&e(\"Check Matches\",v),(M||u.isMatch)&&v&&(a=this.resultMap[o],a?a.output.push({key:t,score:p,matchedIndices:u.matchedIndices}):(this.resultMap[o]={item:n,output:[{key:t,score:p,matchedIndices:u.matchedIndices}]},this.results.push(this.resultMap[o])))}else if(i(s))for(k=0;k<s.length;k++)this._analyze(t,s[k],n,o)}},s.prototype._computeScore=function(){var t,s,n,i,o,r,h,a,c,p=this._keyMap,l=this.results;for(this.options.verbose&&e(\"\\n\\nComputing score:\\n\"),t=0;t<l.length;t++){for(n=0,i=l[t].output,o=i.length,a=1,s=0;o>s;s++)r=i[s].score,h=p?p[i[s].key].weight:1,c=r*h,1!==h?a=Math.min(a,c):(n+=c,i[s].nScore=c);1===a?l[t].score=n/o:l[t].score=a,this.options.verbose&&e(l[t])}},s.prototype._sort=function(){var t=this.options;t.shouldSort&&(t.verbose&&e(\"\\n\\nSorting....\"),this.results.sort(t.sortFn))},s.prototype._format=function(){var t,s,n,i,o,r=this.options,h=r.getFn,a=[],c=this.results,p=r.include;for(r.verbose&&e(\"\\n\\nOutput:\\n\\n\",c),i=r.id?function(t){c[t].item=h(c[t].item,r.id,[])[0]}:function(){},o=function(t){var e,s,n,i,o,r=c[t];if(p.length>0){if(e={item:r.item},-1!==p.indexOf(\"matches\"))for(n=r.output,e.matches=[],s=0;s<n.length;s++)i=n[s],o={indices:i.matchedIndices},i.key&&(o.key=i.key),e.matches.push(o);-1!==p.indexOf(\"score\")&&(e.score=c[t].score)}else e=r.item;return e},s=0,n=c.length;n>s;s++)i(s),t=o(s),a.push(t);return a},o.defaultOptions={location:0,distance:100,threshold:.6,maxPatternLength:32},o.prototype._calculatePatternAlphabet=function(){var t={},e=0;for(e=0;e<this.patternLen;e++)t[this.pattern.charAt(e)]=0;for(e=0;e<this.patternLen;e++)t[this.pattern.charAt(e)]|=1<<this.pattern.length-e-1;return t},o.prototype._bitapScore=function(t,e){var s=t/this.patternLen,n=Math.abs(this.options.location-e);return this.options.distance?s+n/this.options.distance:n?1:s},o.prototype.search=function(t){var e,s,n,i,o,r,h,a,c,p,l,u,f,d,g,m,y,v,k,S,b,M,_,L=this.options;if(t=L.caseSensitive?t:t.toLowerCase(),this.pattern===t)return{isMatch:!0,score:0,matchedIndices:[[0,t.length-1]]};if(this.patternLen>L.maxPatternLength){if(v=t.match(new RegExp(this.pattern.replace(L.tokenSeparator,\"|\"))),k=!!v)for(b=[],e=0,M=v.length;M>e;e++)_=v[e],b.push([t.indexOf(_),_.length-1]);return{isMatch:k,score:k?.5:1,matchedIndices:b}}for(i=L.findAllMatches,o=L.location,n=t.length,r=L.threshold,h=t.indexOf(this.pattern,o),S=[],e=0;n>e;e++)S[e]=0;for(-1!=h&&(r=Math.min(this._bitapScore(0,h),r),h=t.lastIndexOf(this.pattern,o+this.patternLen),-1!=h&&(r=Math.min(this._bitapScore(0,h),r))),h=-1,m=1,y=[],p=this.patternLen+n,e=0;e<this.patternLen;e++){for(a=0,c=p;c>a;)this._bitapScore(e,o+c)<=r?a=c:p=c,c=Math.floor((p-a)/2+a);for(p=c,l=Math.max(1,o-c+1),u=i?n:Math.min(o+c,n)+this.patternLen,f=Array(u+2),f[u+1]=(1<<e)-1,s=u;s>=l;s--)if(g=this.patternAlphabet[t.charAt(s-1)],g&&(S[s-1]=1),0===e?f[s]=(f[s+1]<<1|1)&g:f[s]=(f[s+1]<<1|1)&g|((d[s+1]|d[s])<<1|1)|d[s+1],f[s]&this.matchmask&&(m=this._bitapScore(e,s-1),r>=m)){if(r=m,h=s-1,y.push(h),!(h>o))break;l=Math.max(1,2*o-h)}if(this._bitapScore(e+1,o)>r)break;d=f}return b=this._getMatchedIndices(S),{isMatch:h>=0,score:0===m?.001:m,matchedIndices:b}},o.prototype._getMatchedIndices=function(t){for(var e,s=[],n=-1,i=-1,o=0,r=t.length;r>o;o++)e=t[o],e&&-1===n?n=o:e||-1===n||(i=o-1,i-n+1>=this.options.minMatchCharLength&&s.push([n,i]),n=-1);return t[o-1]&&o-1-n+1>=this.options.minMatchCharLength&&s.push([n,o-1]),s},\"object\"==typeof exports?module.exports=s:\"function\"==typeof define&&define.amd?define(function(){return s}):t.Fuse=s}(this);\n","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/content/plan/_urlDescription/calcBreadcrumbs/calc.ls","text":"(function(){\n  return function(page){\n    var p, s;\n    p = page.planDescription;\n    if (page.plan && p) {\n      s = p.subjectName;\n      return [\n        {\n          name: T(\"learn\"),\n          pageUrl: \"\",\n          pageAnchor: T(\"learn\")\n        }, {\n          name: s,\n          pageUrl: \"\",\n          pageAnchor: s.toLowerCase()\n        }, {\n          name: p.displayName.replace(s + \" \", \"\") || s,\n          pageUrl: p.pageUrl\n        }\n      ];\n    }\n  };\n})();","updated":"2021-01-29T14:59:29.385264"},{"path":"pages/content/plan/_urlDescription/calcMetaDescription/calc.ls","text":"(function(){\n  return function(page){\n    var m, ref$, topicTitles;\n    if (!page.plan) {\n      m = T(\"learnWithOnlineLessonsFor\", (ref$ = page.planDescription) != null ? ref$.displayName : void 8);\n      return m;\n    }\n    topicTitles = _.map(page.plan.topics, \"title\");\n    m = topicTitles.join(\" | \");\n    if (m.length > 300) {\n      m = m.substring(0, 300);\n      m = m.substring(0, m.lastIndexOf(\"|\"));\n    }\n    return m;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/content/plan/calcLastViewedBlockPath/calc.ls","text":"(function(){\n  return function(page){\n    var e, lastViewBlockPath;\n    e = typeof log != 'undefined' && log !== null ? log.findLast({\n      event: \"setCurrentBlock\",\n      plan: page.params.planPath\n    }) : void 8;\n    return lastViewBlockPath = e != null ? e.block : void 8;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/treasureHook/treasureHook.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"treasureHook\",\n      project: \"app01-game-treasure-hook\",\n      title: \"Treasure Hook\",\n      category: \"skill\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-treasure-hook-cover\",\n      numberOfTries: 3,\n      highscoreAscending: false,\n      plusOnly: true,\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupError/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"yourResult\")).css({\n      fontSize: \"1.3em\",\n      marginBottom: \"1em\",\n      marginTop: \"1em\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupGameResult/lastScore/lastScore.ls","text":"(function(){\n  return function(o){\n    var score;\n    score = inc(\"../../calc/formattedScore/calc\")(o.lastUserScore, o.highscoreType);\n    return Div().html(T(\"yourScore\", score)).css({\n      fontSize: \"1.3em\",\n      marginBottom: \"0.35em\"\n    });\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/rows/rowUser/score/score.ls","text":"(function(){\n  return function(score, o){\n    score = inc(\"../../../../calc/formattedScore/calc\")(score.score, o.highscoreType);\n    return Div({\n      flex: \"0 0 auto\",\n      width: \"3em\",\n      marginRight: \"0.3em\"\n    }).html(score);\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/fromHexString.ls","text":"(function(){\n  return function(string){\n    return parseInt(string, 16);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Convenience/functions/isInSceneBounds.ls","text":"(function(){\n  return function(sprite, scene){\n    var gx, gy, anchor, ref$;\n    gx = sprite.getGlobalPosition().x;\n    gy = sprite.getGlobalPosition().y;\n    anchor = (ref$ = sprite.anchor) != null\n      ? ref$\n      : (ref$ = sprite.pivot) != null\n        ? ref$\n        : {\n          x: 0,\n          y: 0\n        };\n    return gx - sprite.width * sprite.anchor.x >= 0 && gx + sprite.width * (1 - sprite.anchor.x) < scene.sceneWidth && gy + sprite.height * (1 - sprite.anchor.y >= 0) && gy - sprite.height * sprite.anchor.y <= scene.sceneHeight;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Circle/containsPoint.ls","text":"(function(){\n  return function(circle, point){\n    var dist;\n    dist = inc(\"../Point/distance\")(circle.position, point);\n    return dist < circle.radius;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Convenience/functions/removeDeadSpritesFromArray.ls","text":"(function(){\n  return function(array){\n    var i;\n    i = 0;\n    while (i < array.length) {\n      if (!array[i].alive) {\n        array[i].parent.removeChild(array[i]);\n        array.splice(i, 1);\n      } else {\n        i++;\n      }\n    }\n    return array;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Circle/intersectsCircle.ls","text":"(function(){\n  return function(circle1, circle2){\n    var dist;\n    dist = inc(\"../Point/distance\")(circle1.position, circle2.position);\n    return dist < circle1.radius + circle2.radius;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Line/betweenPoints.ls","text":"(function(){\n  return function(p1, p2){\n    var line;\n    return line = {\n      start: p1,\n      end: p2\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/toLeft.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.x = -o.oldScene.sceneWidth * percentage;\n      o.newScene.x = o.newScene.sceneWidth / 3 - o.newScene.sceneWidth * percentage / 3;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"lib/util/setGuiLanguageUser/set.ls","text":"(function(){\n  return function(language){\n    var e;\n    e = log.findLast(\"setGuiLanguage\");\n    if ((e != null ? e.value : void 8) === language) {\n      return;\n    }\n    return log.changeEvent({\n      to: {\n        event: \"setGuiLanguage\",\n        value: language\n      }\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/browser/_replaceTags/replace.ls","text":"(function(){\n  return function(s){\n    var i$, ref$, len$, tag;\n    if (!(s != null && s.length) > 0) {\n      return s;\n    }\n    for (i$ = 0, len$ = (ref$ = [\"<b>\", \"</b>\", \"<u>\", \"</u>\", \"<i>\", \"</i>\"]).length; i$ < len$; ++i$) {\n      tag = ref$[i$];\n      s = _.replaceAll(s, tag, \"'\");\n    }\n    return s;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/01_gamesList/row/plusStopPopup/button/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      app.currentPopup.close();\n      inc(\"/lib/util/logPromo/log\")({\n        event: \"promoPlus_popupStopGame_click\"\n      });\n      return startPage({\n        path: path(\"/pages/static/antonPlus/1_products/page\"),\n        animation: \"slideUp\",\n        params: {\n          referrer: \"stopGamePopup\"\n        }\n      });\n    };\n    return Button(T(\"continueToAntonPlus\")).tap(tap);\n  };\n})();","updated":"2021-04-16T16:11:53.059235"},{"path":"pages/games/02_gameDetails/difficulties/row/arrow/arrow.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      color: Color.grey[400]\n    }).css({\n      flex: \"0 0 1em\",\n      marginLeft: \"0em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/support/help/_topbar/tabMenuItems/tabMenuItems.ls","text":"(function(){\n  return function(page){\n    var isBannedFromChat, ref$, items;\n    isBannedFromChat = (typeof log != 'undefined' && log !== null ? (ref$ = log.findLast(\"isBannedFromChat\")) != null ? ref$.value : void 8 : void 8) === true;\n    return items = [\n      {\n        label: T(\"faq\"),\n        selected: _.includes(app.currentPagePath, \"faqList\"),\n        click: function(){\n          return startPage({\n            path: path(\"/pages/support/help/faqList/page\"),\n            replace: true\n          });\n        }\n      }, !isBannedFromChat ? {\n        label: inc(\"chatLabel/label\")(),\n        selected: _.includes(app.currentPagePath, \"chat\"),\n        click: function(){\n          return page.clickOpenChat();\n        }\n      } : void 8\n    ];\n  };\n})();","updated":"2021-11-03T15:42:06.802583"},{"path":"addons/navbar/bar/user/user/header/details/details.ls","text":"(function(){\n  return function(userDescription){\n    return Div({\n      flex: \"1 1 auto\",\n      display: \"flex\",\n      flexDirection: \"column\",\n      alignItems: \"stretch\",\n      pointerEvents: \"none\"\n    }).append(inc(\"name/name\")(userDescription), inc(\"/lib/gui/userStarsTrophiesCoinsDiv/div\")(userDescription));\n  };\n})();","updated":"2021-11-03T15:42:06.802583"},{"path":"addons/navbar/bar/user/user/header/details/name/name.ls","text":"(function(){\n  return function(userDescription){\n    return Div({\n      flex: \"1 1 auto\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      whiteSpace: \"nowrap\",\n      marginBottom: \"0.5em\",\n      maxWidth: \"9em\"\n    }).secureHtml(userDescription.displayName);\n  };\n})();","updated":"2021-11-03T15:42:06.802583"},{"path":"pages/support/help/_topbar/tabMenuItems/chatLabel/badge/badge.ls","text":"(function(){\n  return function(){\n    var badgeNumber, div;\n    badgeNumber = inc(\"/data/user/chat/calcUnreadMessagesCount/calc\")();\n    div = Div({\n      display: \"flex\"\n    }).addClass(\"onNewLogEvents_supportChat\");\n    div.onNewLogEvents = function(){\n      return div.replaceWith(inc(THISFILE)());\n    };\n    if (badgeNumber === 0) {\n      return div;\n    } else {\n      return div.css({\n        position: \"absolute\",\n        top: \"-8px\",\n        right: \"-7px\",\n        backgroundColor: Color.red[600],\n        color: \"white\",\n        fontSize: \"0.6em\",\n        width: \"1.4em\",\n        height: \"1.4em\",\n        borderRadius: \"8px\",\n        filter: \"drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.4))\"\n      }).html(badgeNumber).onDomAppend(function(){\n        return div.closest(\".tab\").css({\n          overflow: \"\"\n        });\n      });\n    }\n  };\n})();","updated":"2021-11-03T15:42:06.802583"},{"path":"pages/support/help/_topbar/tabMenuItems/chatLabel/label.ls","text":"(function(){\n  return function(){\n    var chatLabel;\n    return chatLabel = Div({\n      display: \"inline-block\"\n    }).html(T(\"chat\"), inc(\"badge/badge\")());\n  };\n})();","updated":"2021-11-03T15:42:06.802583"},{"path":"pages/level/_shared/checkMinLevelPlayerVersion/check.ls","text":"(function(){\n  return function(o){\n    var levelVersion, levelPlayerVersion;\n    levelVersion = o.level.minLevelPlayerVersion;\n    if (levelVersion == null) {\n      return false;\n    }\n    if (!(typeof levelVersion.match == 'function' && levelVersion.match(/^v[1-9][0-9]*\\.[0-9]$/))) {\n      debug(\"Warning: wrong format for minLevelPlayerVersion (must be something like \\\"v1.0\\\" or \\\"v12.3\\\")\");\n      return false;\n    }\n    levelPlayerVersion = inc(\"/../app01-trainers/_levelPlayerVersion/version\")();\n    if (levelVersion > levelPlayerVersion) {\n      log.log({\n        event: \"debugLevelPlayerVersionAbort\",\n        levelVersion: levelVersion,\n        playerVersion: levelPlayerVersion,\n        levelPath: o.level.path\n      });\n      inc(\"/lib/gui/errorPopup/popup\")({\n        label: inc(\"label/label\")(o.level, levelPlayerVersion),\n        onClose: o.afterWarning\n      });\n      return true;\n    }\n    return false;\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"addons/navbar/decideBar/isTextEllipsed/is.ls","text":"(function(){\n  return function(div){\n    var a, res$, i$, ref$, len$, el;\n    res$ = [];\n    for (i$ = 0, len$ = (ref$ = div.childrenAll()).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      if (el.isTextEllipsed != null) {\n        res$.push(el.isTextEllipsed());\n      } else {\n        continue;\n      }\n    }\n    a = res$;\n    for (i$ = 0, len$ = (ref$ = div.childrenAll()).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      if (typeof el.isTextEllipsed == 'function' && el.isTextEllipsed()) {\n        return true;\n      }\n    }\n    return false;\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/content/plan/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    var p;\n    p = page.planDescription;\n    return {\n      pageUrl: p != null ? p.pageUrl : void 8,\n      title: T(\"lessons2\", p != null ? p.displayName : void 8),\n      metaDescription: inc(\"calcMetaDescription/calc\")(page),\n      breadcrumbs: inc(\"calcBreadcrumbs/calc\")(page),\n      pageReady: page.plan != null\n    };\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"lib/util/resetNavCategoryPageHistory/reset.ls","text":"(function(){\n  return function(navCategory){\n    if (!navCategory) {\n      return;\n    }\n    return app.pageHistory = _.filter(app.pageHistory, function(p){\n      return p.navCategory !== navCategory;\n    });\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/level/finishLevel/calcCoins/newCoin/calcShowDisabledCoinsPage/calc.ls","text":"(function(){\n  return function(totalStars){\n    var totalStarsNeeded, ref$;\n    totalStarsNeeded = ((ref$ = log.findLast(\"starsNeededForDisabledCoinsPage\")) != null ? ref$.value : void 8) || 0;\n    if (totalStarsNeeded <= totalStars) {\n      log.log({\n        event: \"starsNeededForDisabledCoinsPage\",\n        value: totalStars - totalStars % 6 + 6\n      });\n      return true;\n    }\n    return false;\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/schoolAdmin/loadingPage/_t.ls","text":"(function(){\n  return {\n    member: {\n      de: \"Mitglieder\",\n      en: \"Member\",\n      fr: \"Membre\",\n      es: \"Miembro\",\n      pt: \"Membro\"\n    },\n    settings: {\n      de: \"Einstellungen\",\n      en: \"Settings\",\n      fr: \"Paramètres\",\n      es: \"Ajustes\",\n      pt: \"Configurações\"\n    }\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"data/content/calcLevelPageUrl/calc.ls","text":"(function(){\n  return function(levelPath){\n    var project, planDescription, s, pageUrl;\n    project = levelPath.split(\"/\")[2];\n    planDescription = inc(\"../calcPlanDescription/calc\")(levelPath);\n    if (!planDescription) {\n      return \"\";\n    }\n    s = _.replace(levelPath, \"/../\" + project, \"\");\n    s = _.replace(s, \"/topic\", T(\"topicURLReplacement\"));\n    s = _.replace(s, \"/block\", T(\"blockURLReplacement\"));\n    s = _.replace(s, \"/level\", T(\"levelURLReplacement\"));\n    s = inc(\"../_replacePreschoolRemotePlanPart/replace\")(s);\n    return pageUrl = planDescription.pageUrl + s;\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"lib/svg/shape/gear.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M36.74 139.95a2.93 2.93 0 0 1-4.07-.03l-14.84-14.85a2.92 2.92 0 0 1-.04-4.08l8.2-8.53a4.7 4.7 0 0 0 .88-4.69l-5.2-12.57a4.71 4.71 0 0 0-3.95-2.69l-11.83-.23a2.94 2.94 0 0 1-2.85-2.92l-.01-20.98a2.92 2.92 0 0 1 2.86-2.92l11.82-.23a4.74 4.74 0 0 0 3.95-2.69l5.2-12.57c.6-1.45.22-3.55-.89-4.7l-8.18-8.53a2.93 2.93 0 0 1 .03-4.07l14.85-14.84a2.92 2.92 0 0 1 4.07-.04l8.54 8.2a4.7 4.7 0 0 0 4.69.88l12.57-5.2a4.72 4.72 0 0 0 2.68-3.95l.24-11.83a2.94 2.94 0 0 1 2.92-2.85l20.98-.01a2.92 2.92 0 0 1 2.92 2.86l.23 11.82a4.74 4.74 0 0 0 2.69 3.95l12.57 5.2c1.45.6 3.54.22 4.7-.89l8.52-8.18a2.92 2.92 0 0 1 4.08.03l14.84 14.85a2.92 2.92 0 0 1 .04 4.07l-8.2 8.54a4.7 4.7 0 0 0-.88 4.69l5.2 12.57a4.72 4.72 0 0 0 3.95 2.69l11.83.23a2.94 2.94 0 0 1 2.85 2.92v20.98a2.92 2.92 0 0 1-2.85 2.92l-11.82.23a4.74 4.74 0 0 0-3.96 2.69l-5.2 12.57a4.72 4.72 0 0 0 .9 4.7l8.18 8.52a2.92 2.92 0 0 1-.03 4.08l-14.85 14.84a2.92 2.92 0 0 1-4.08.04l-8.53-8.2a4.7 4.7 0 0 0-4.69-.88l-12.57 5.2a4.71 4.71 0 0 0-2.69 3.95l-.23 11.83a2.94 2.94 0 0 1-2.92 2.85l-20.98.01a2.92 2.92 0 0 1-2.92-2.86l-.24-11.82a4.74 4.74 0 0 0-2.68-3.95l-12.58-5.2a4.71 4.71 0 0 0-4.68.88l-8.54 8.2zm27.94-26.83A37.08 37.08 0 1 0 93.05 44.6a37.08 37.08 0 0 0-28.37 68.52z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"pages/level/afterFinish/pages/adventCalendarPromo/page.ls","text":"(function(){\n  return function(page){\n    page.media = inc(\"_preloadMedia/preloadMedia\")();\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      start: function(){\n        var d, previewMode, mode, todoLevelsToday, totalLevelsToday;\n        if (inc(\"_waitForMedia/wait\")(page)) {\n          return;\n        }\n        d = inc(\"/lib/util/formatDate2/format\")();\n        previewMode = engine.isDebug && d.m === 11;\n        mode = previewMode ? \"preview\" : \"live\";\n        todoLevelsToday = page.params.todoLevelsToday;\n        totalLevelsToday = page.params.totalLevelsToday;\n        log.log({\n          event: \"showPromoAdventCalendar\",\n          year: d.Y,\n          mode: mode,\n          todoLevelsToday: todoLevelsToday\n        });\n        return page.css({\n          lineHeight: \"1.5em\",\n          maxWidth: \"90%\",\n          width: \"35em\",\n          margin: \"0 auto\"\n        }).append(inc(\"title/title\")(), inc(\"image/image\")(page), inc(\"text/text\")(totalLevelsToday), inc(\"button/button\")(totalLevelsToday, mode), \"<br>\", inc(\"link/link\")(totalLevelsToday));\n      }\n    };\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/level/afterFinish/pages/adventCalendarPromo/button/button.ls","text":"(function(){\n  return function(totalLevelsToday, mode){\n    var div;\n    if (totalLevelsToday < 3) {\n      return Button(T(\"continueButton\")).tap(function(){\n        return startPage({\n          history: function(path){\n            return !_.includes(path, \"/level\");\n          },\n          animation: \"fadeIn\"\n        });\n      });\n    } else {\n      div = Button(T(\"openAdventCalendar\"));\n      return div.tap(function(){\n        var overlay;\n        div.css({\n          pointerEvents: \"none\"\n        });\n        overlay = inc(\"/lib/gui/spinnerOverlay/overlay\")();\n        return inc(\"/lib/util/loadProjects/load\")({\n          projectDescriptions: [\n            {\n              project: \"app01-advent-calendar\"\n            }, {\n              project: \"app01-avatar\"\n            }\n          ],\n          onDone: function(doneProjects, projectsByStatus){\n            var that, i;\n            if (that = projectsByStatus != null ? projectsByStatus.timeout : void 8) {\n              deviceLog.log({\n                event: \"deviceDebugAdventProjectTimeout\",\n                timeout: that\n              });\n            }\n            overlay.close();\n            i = projects.info()[\"app01-advent-calendar\"];\n            if (i.branch === \"master\" && i.version < 43) {\n              return inc(\"/lib/offline/offlinePopup/popup\")();\n            } else {\n              return log.sync(function(error){\n                if (mode === \"preview\") {\n                  debug(\"Advent calendar preview mode: Displaying advent calendar for debug users during november already.\");\n                }\n                return startPage({\n                  path: path(\"/../app01-advent-calendar/page/overview/page\"),\n                  history: function(path){\n                    return _.includes(path, \"/level/play\");\n                  },\n                  animation: \"slideUp\"\n                });\n              });\n            }\n          },\n          onProjectMissingError: function(){\n            overlay.close();\n            div.css({\n              pointerEvents: \"\"\n            });\n            return inc(\"/lib/offline/offlinePopup/popup\")();\n          }\n        });\n      });\n    }\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"lib/gui/confirmPopup/popup.ls","text":"(function(){\n  return function(o){\n    var label, done, onConfirm, yesLabel, noLabel, enterTap, escTap, div, c, popup;\n    o == null && (o = {});\n    label = o.label;\n    done = o.done;\n    onConfirm = o.onConfirm;\n    yesLabel = o.yesLabel || T(\"yes\");\n    noLabel = o.noLabel || T(\"no\");\n    enterTap = function(){\n      popup.close(\"yesButton\");\n      if (typeof onConfirm == 'function') {\n        onConfirm();\n      }\n      return typeof done == 'function' ? done(true) : void 8;\n    };\n    escTap = function(){\n      popup.close();\n      return typeof done == 'function' ? done() : void 8;\n    };\n    div = Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      justifyContent: \"flex-start\",\n      padding: \"1em\"\n    }).html(Div({\n      marginBottom: \"0.5em\",\n      lineHeight: \"1.5em\"\n    }).secureHtml(label), Div().html(Button(noLabel).css(c = {\n      margin: \"0.5em\",\n      minWidth: \"5em\"\n    }).tap(escTap), Button(yesLabel).css(c).tap(enterTap).addClass(\"keyManager-enter\").bind(\"keyManager\", enterTap)));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: o.onClose,\n      animationOnShow: o.animationOnShow,\n      animationOnClose: o.animationOnClose,\n      animationDisableBackground: o.animationDisableBackground\n    });\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"lib/gui/divEditable/onPaste/onPasteImage/on.ls","text":"(function(){\n  return function(d, c){\n    var onPasteImage, file, r;\n    onPasteImage = d.params.onPasteImage;\n    file = c.files[0];\n    if (!onPasteImage || !_.startsWith(file.type, \"image\")) {\n      return;\n    }\n    r = new FileReader;\n    r.onload = function(e){\n      var blob;\n      blob = e.target.result;\n      return d.params.onPasteImage(blob, d.div);\n    };\n    return r.readAsDataURL(file);\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"lib/gui/drawerMenu/menuRows/rowLabel/label/label.ls","text":"(function(){\n  return function(l){\n    return Div({\n      maxWidth: \"100%\",\n      flex: \"0 0 auto\",\n      padding: \"0.3em 0.7em\",\n      fontSize: \"0.9em\",\n      color: Color.grey[700],\n      lineHeight: \"1.4em\"\n    }).html(l);\n  };\n})();","updated":"2024-05-30T10:02:50.760723"},{"path":"addons/navbar/bar/user/user/tab.ls","text":"(function(){\n  return function(barDiv){\n    var tabSize, userDescription, longDown, tap, div;\n    tabSize = barDiv.tabSize;\n    userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    longDown = function(){\n      var o;\n      if (typeof vibrate == 'function') {\n        vibrate(VIBRATION_TYPES.notificationSuccess);\n      }\n      o = inc(\"_menu/menu\")({\n        items: inc(\"debugItems/items\")(),\n        div: div\n      });\n      if (app.navbarPosition === \"top\") {\n        return o.corner.css({\n          backgroundColor: Color.grey[100]\n        });\n      }\n    };\n    tap = function(){\n      var o;\n      o = inc(\"_menu/menu\")(inc(\"/data/user/isPreschoolFocusMode/is\")()\n        ? {\n          items: inc(\"items/itemsPreschool\")(),\n          div: div\n        }\n        : {\n          header: inc(\"header/header\")(),\n          items: inc(\"items/items\")(),\n          div: div\n        });\n      if (app.navbarPosition === \"top\") {\n        return o.corner.css({\n          backgroundColor: Color.grey[100]\n        });\n      }\n    };\n    return div = Div({\n      display: \"flex\",\n      flex: \"0 1 auto\",\n      padding: \"0 0.3em\",\n      maxWidth: \"12em\"\n    }).css(tabSize === \"normal\"\n      ? {\n        flexDirection: \"row\"\n      }\n      : {\n        flexDirection: \"column\",\n        alignItems: \"stretch\"\n      }).html(inc(\"line/line\")(), inc(\"avatar/avatar\")(userDescription, tabSize), inc(\"title/title\")(userDescription, tabSize)).tap({\n      up: tap,\n      longDown: userDescription.isSolocodeMember ? longDown : void 8\n    });\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"addons/navbar/bar/tabs/tab/_tab/tab.ls","text":"(function(){\n  return function(item){\n    var navCategory, tabSize, div, title;\n    navCategory = app.currentPage.navCategory;\n    item.selected == null && (item.selected = item.navCategory === navCategory);\n    tabSize = item.tabSize;\n    div = Div({\n      display: \"flex\",\n      background: Color.grey[150]\n    }).addClass(\"tab\").css(app.navbarPosition === \"top\"\n      ? {\n        flex: tabSize === \"normal\" ? \"0 1 auto\" : \"1 1 auto\",\n        padding: tabSize === \"normal\"\n          ? \"0 0.7em\"\n          : tabSize === \"small\" ? \"0 0em\" : \"0 0.7em\"\n      }\n      : {\n        flex: \"1 1 auto\",\n        padding: tabSize === \"normal\"\n          ? \"0 0.7em\"\n          : tabSize === \"small\" ? \"0 0em\" : \"0 0.7em\"\n      }).css(tabSize === \"normal\"\n      ? {\n        flexDirection: \"row\"\n      }\n      : {\n        flexDirection: \"column\",\n        alignItems: \"stretch\"\n      }).attr({\n      \"aria-label\": item.title,\n      role: \"button\"\n    }).tap({\n      up: function(){\n        return inc(\"tap/tap\")(div, item);\n      },\n      longDown: function(){\n        return typeof item.longDown == 'function' ? item.longDown() : void 8;\n      }\n    });\n    div.html(inc(\"iconWithBadge/icon\")(item), title = inc(\"title/title\")(item, tabSize));\n    div.item = item;\n    div.isTextEllipsed = function(){\n      return (title != null ? title.offsetWidth : void 8) < (title != null ? title.scrollWidth : void 8);\n    };\n    return div;\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"data/content/_replacePreschoolRemotePlanPart/replace.ls","text":"(function(){\n  return function(s){\n    var a, project, pd, p;\n    a = s.split(\"/\");\n    if (!_.startsWith(a[1], \"remote_c-pre\")) {\n      return s;\n    }\n    project = a[1].replace(\"remote_\", \"\");\n    pd = inc(\"../calcPlanDescription/calc\")(\"/../\" + project);\n    if (!pd) {\n      return s;\n    }\n    p = pd.pageUrl.replace(\"lernen/vorschule-\", \"\").replace(\"-deutsch\", \"\");\n    a[1] = p;\n    return s = a.join(\"/\");\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"data/user/isPreschoolFocusMode/is.ls","text":"(function(){\n  return function(){\n    var ref$;\n    return app.currentPage.enablePreschoolFocus && (typeof log != 'undefined' && log !== null ? (ref$ = log.findLast(\"setPreschoolFocusModeEnabled\")) != null ? ref$.value : void 8 : void 8) === true;\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"lib/gui/drawerMenu/menuRows/rowDiv/row.ls","text":"(function(){\n  return function(o, item){\n    return item.div;\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"lib/gui/drawerMenu/menuRows/rowFolder/isNewTag/calcNewestUntil/calc.ls","text":"(function(){\n  return function(item){\n    var newestUntil, ref$;\n    return newestUntil = (ref$ = _(item.items).map(function(elem){\n      if (_.isObject(elem.isNewUntil)) {\n        return twitch(elem.isNewUntil);\n      } else if (elem.isNewUntil != null) {\n        return elem.isNewUntil;\n      }\n    }).compact().value().sort())[ref$.length - 1];\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/content/plan/_topbar/menu/items/pimpPreschool/divInfo/div.ls","text":"(function(){\n  return function(){\n    var tap, div;\n    tap = function(){\n      return inc(\"tooltipInfo/tooltip\")(div);\n    };\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-end\",\n      margin: \"-0.2em 0.2em -0.4em 0\"\n    }).html(div = Div({\n      fontSize: \"0.85em\",\n      color: Color.blue[500],\n      padding: \"0.4em\"\n    }).html(T(\"explanationHint\")).tap(tap));\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/content/plan/_topbar/menu/items/pimpPreschool/divInfo/tooltipInfo/background/background.ls","text":"(function(){\n  return function(){\n    var div;\n    return div = Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0,\n      background: \"rgba(0,0,0,0.1)\"\n    }).tap({\n      up: function(){\n        return div.remove();\n      },\n      animation: \"none\"\n    }).appendTo(body.findFirst(\".mainMenu\")).fadeIn().onWindowResize(function(){\n      return div.remove();\n    });\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/content/plan/_topbar/menu/items/pimpPreschool/divInfo/tooltipInfo/corner/corner.ls","text":"(function(){\n  return function(parentDiv){\n    var o, top, left;\n    o = parentDiv.offset();\n    top = o.bottom;\n    left = o.left + o.width / 2 - 8;\n    return Div({\n      position: \"absolute\",\n      top: top + \"px\",\n      left: left + \"px\",\n      width: \"16px\",\n      height: \"16px\",\n      background: \"white\",\n      transform: \"rotate(45deg)\"\n    });\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/content/plan/_topbar/menu/items/pimpPreschool/divInfo/tooltipInfo/divText/div.ls","text":"(function(){\n  return function(parentDiv){\n    var updatePosition, div;\n    updatePosition = function(){\n      return inc(\"updatePosition/update\")(div, parentDiv);\n    };\n    div = Div({\n      position: \"absolute\",\n      width: \"18em\",\n      maxWidth: \"80vw\",\n      background: \"white\",\n      padding: \"0.5em\",\n      lineHeight: \"1.5em\",\n      fontSize: \"0.9em\",\n      whiteSpace: \"normal\"\n    }).html(T(\"divText\")).onDomAppend(updatePosition);\n    updatePosition();\n    return div;\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/content/plan/_topbar/menu/items/pimpPreschool/divInfo/tooltipInfo/divText/updatePosition/update.ls","text":"(function(){\n  return function(div, parentDiv){\n    var o, o2, d;\n    o = parentDiv.offset();\n    div.css({\n      top: o.bottom + 5 + \"px\",\n      left: o.left + \"px\"\n    });\n    o2 = div.offset();\n    d = (body.offsetWidth - 20) - o2.right;\n    if (d < 0) {\n      return div.css({\n        left: o.left + d + \"px\"\n      });\n    }\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/content/plan/_topbar/menu/items/pimpPreschool/divInfo/tooltipInfo/tooltip.ls","text":"(function(){\n  return function(parentDiv){\n    return inc(\"background/background\")().html(inc(\"corner/corner\")(parentDiv), inc(\"divText/div\")(parentDiv));\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/content/plan/_urlDescription/_t.ls","text":"(function(){\n  return {\n    learn: {\n      de: \"Lernen\",\n      en: \"Learning\",\n      fr: \"Apprendre\",\n      es: \"Aprende\",\n      pt: \"Aprender\"\n    },\n    learnWithOnlineLessonsFor: {\n      de: \"Lerne mit online Übungen: für $1\",\n      en: \"Learn with online exercises: for $1\",\n      fr: \"Apprends avec des exercices en ligne&nbsp;: $1\",\n      es: \"Aprende con ejercicios en línea: $1\",\n      pt: \"Aprenda com exercícios on line: para $1\"\n    },\n    lessons2: {\n      de: \"Übungen - $1\",\n      en: \"Lessons - $1\",\n      fr: \"Exercices - $1\",\n      es: \"Ejercicios - $1\",\n      pt: \"Exercícios - $1\"\n    }\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/level/finishLevel/calcCoins/newCoin/debugMissingStars/debug.ls","text":"(function(){\n  return function(totalStarsNeededForCoin, totalStars){\n    var diff;\n    diff = totalStarsNeededForCoin - totalStars;\n    if (diff > 6) {\n      return typeof log != 'undefined' && log !== null ? log.log({\n        event: \"debugMissingStars\",\n        totalStars: totalStars,\n        totalStarsNeededForCoin: totalStarsNeededForCoin,\n        diff: diff,\n        version: 2\n      }) : void 8;\n    }\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/level/finishLevel/calcCoins/newCoin/setTotalStarsNeededCoinsDisabled/set.ls","text":"(function(){\n  return function(totalStarsNeededForCoin){\n    var lastLevelFinish, lastScore, ref$, lastLevelFinishs, prevLastScore, ref1$, diff;\n    lastLevelFinish = log.findLast(\"finishLevel\");\n    lastScore = (ref$ = lastLevelFinish != null ? lastLevelFinish.score : void 8) != null ? ref$ : 0;\n    lastScore = Math.floor(+lastScore);\n    lastLevelFinishs = log.list({\n      event: \"finishLevel\",\n      puid: lastLevelFinish != null ? lastLevelFinish.puid : void 8\n    });\n    prevLastScore = (ref$ = (ref1$ = lastLevelFinishs[lastLevelFinishs.length - 2]) != null ? ref1$.score : void 8) != null ? ref$ : 0;\n    prevLastScore = Math.floor(+prevLastScore);\n    diff = Math.max(0, lastScore - prevLastScore);\n    return inc(\"../../_shared/setNextTotalStarsNeeded/set\")(totalStarsNeededForCoin, diff);\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/level/play/checkMedia/checkMediaFilesOfflineAvailable/check.ls","text":"(function(){\n  return function(p){\n    var fileIds, missingFileIds, totalDone, calcFileIds, checkFilesExist, onFileCheckDone, finish;\n    fileIds = [];\n    missingFileIds = [];\n    totalDone = 0;\n    calcFileIds = function(){\n      var m, a;\n      m = p.level.mediaFiles;\n      a = _.concat(m.images, m.svgs, _.filter(m.lsgs, function(d){\n        return !_.endsWith(d.fileId, \".lsr\");\n      }), _.filter(m.sounds, function(d){\n        return d.isMultiSound !== true;\n      }));\n      fileIds = _.map(a, \"fileId\");\n      if (fileIds.length === 0) {\n        return p.onOk();\n      } else {\n        return checkFilesExist();\n      }\n    };\n    checkFilesExist = function(){\n      var i$, ref$, len$, fileId, results$ = [];\n      for (i$ = 0, len$ = (ref$ = fileIds).length; i$ < len$; ++i$) {\n        fileId = ref$[i$];\n        results$.push(inc(\"checkFileExists/check\")(p.level, fileId, onFileCheckDone));\n      }\n      return results$;\n    };\n    onFileCheckDone = function(exists, fileId){\n      if (!exists) {\n        missingFileIds.push(fileId);\n      }\n      totalDone++;\n      if (totalDone === fileIds.length) {\n        return finish();\n      }\n    };\n    finish = function(){\n      if (missingFileIds.length > 0) {\n        return p.onOffline({\n          totalMissingFiles: missingFileIds.length,\n          firstMissingFile: missingFileIds[0]\n        });\n      } else {\n        return p.onOk();\n      }\n    };\n    if (!p.level.mediaFiles) {\n      return p.onOk();\n    } else {\n      return calcFileIds();\n    }\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/level/play/checkMedia/checkMediaFilesOfflineAvailable/checkFileExists/check.ls","text":"(function(){\n  return function(level, fileId, onDone){\n    var project, fileHash, fileType, startsWith;\n    project = level.path.split(\"/\")[2];\n    fileHash = inc(\"/lib/util/md5/md5\")(fileId).substr(0, 10);\n    fileType = fileId.split(\"/\")[0];\n    startsWith = \"content/\" + project + \"/_\" + fileType + \"s/\" + fileHash;\n    return inc(\"/lib/util/fileDirectoryList/search/search\")({\n      startsWith: startsWith,\n      onDone: function(fileNames){\n        var exists;\n        exists = fileNames.length > 0;\n        return onDone(exists, fileId);\n      }\n    });\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"pages/level/play/checkMinLevelPlayerVersion/check.ls","text":"(function(){\n  return function(page, onDone){\n    if (!inc(\"../../_shared/checkMinLevelPlayerVersion/check\")({\n      level: page.level,\n      afterWarning: function(){\n        return startPage({\n          history: -1\n        });\n      }\n    })) {\n      return onDone();\n    }\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"lib/util/browser/setNoIndex/set.ls","text":"(function(){\n  return function(noIndex){\n    var i$, ref$, len$, el, m;\n    if (engine.isMobileApp || location.host === \"preview.anton.app\") {\n      return;\n    }\n    for (i$ = 0, len$ = (ref$ = document.head.find(\"meta\")).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      if (el.name === \"robots\") {\n        el.remove();\n      }\n    }\n    noIndex = noIndex != null ? noIndex : false;\n    m = document.createElement(\"meta\").attr({\n      name: \"robots\",\n      content: noIndex ? \"noarchive, noindex\" : \"noarchive\"\n    });\n    return document.head.prepend(m);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/schoolSearch/05_createNewSchool/_t.ls","text":"(function(){\n  return {\n    createSchool: {\n      de: \"Neue Schule anlegen\",\n      en: \"Create new school\",\n      fr: \"Créer une nouvelle école\",\n      es: \"Agrega una escuela nueva\",\n      pt: \"Adicionar nova escola\"\n    },\n    'continue': {\n      de: \"Weiter\",\n      en: \"Continue\",\n      fr: \"Continuer\",\n      es: \"Continuar\",\n      pt: \"Continuar\"\n    },\n    enterSchoolNameAndLocation: {\n      de: \"Bitte gib den Namen und den Ort deiner&nbsp;Schule&nbsp;ein.\",\n      en: \"Please enter the name and location of your school.\",\n      fr: \"Écris le nom de ton école et la ville/le village où elle se trouve.\",\n      es: \"Ingresa el nombre y la ciudad o localidad de tu escuela.\",\n      pt: \"Por favor, digite o nome e a cidade da sua escola.\"\n    },\n    city: {\n      de: \"Ort/Stadt\",\n      en_gb: \"Town\",\n      en: \"City\",\n      fr: \"Ville/Village\",\n      es: \"Localidad\",\n      pt: \"Cidade\"\n    },\n    name: {\n      de: \"Name\",\n      en: \"Name\",\n      fr: \"Nom\",\n      es: \"Nombre\",\n      pt: \"Nome\"\n    },\n    errorNameEmpty: {\n      de: \"Der Name darf nicht leer sein.\",\n      en: \"Name cannot be left blank.\",\n      fr: \"Le nom ne peut pas rester vide.\",\n      es: \"El nombre no puede quedar en blanco.\",\n      pt: \"O nome não pode ficar em branco.\"\n    },\n    errorCityEmpty: {\n      de: \"Der Ort darf nicht leer sein.\",\n      en_gb: \"The town cannot be left blank.\",\n      en: \"City cannot be left blank.\",\n      fr: \"La ville/Le village ne peut pas rester vide.\",\n      es: \"La ciudad/localidad no puede quedar en blanco.\",\n      pt: \"A cidade não pode ficar em branco.\"\n    },\n    yesSuggest: {\n      de: \"Ja, weiter mit diesem Vorschlag\",\n      en: \"Yes, continue with this suggestion\",\n      fr: \"Oui, continuer avec cette suggestion\",\n      es: \"Sí, continuar con esta sugerencia\",\n      pt: \"Sim, continuar com esta sugestão\"\n    },\n    noSuggest: {\n      de: \"Nein, weiter mit meinen Angaben\",\n      en: \"No, continue with my information\",\n      fr: \"Non, continuer avec mon information\",\n      es: \"No, continuar con mi información\",\n      pt: \"Não, continuar com minha informação\"\n    },\n    suggestTitle: {\n      de: \"Meinst du vielleicht diese Schule?\",\n      en: \"Do you mean this school?\",\n      fr: \"S'agit-il de cette école&nbsp;?\",\n      es: \"¿Te refieres a esta escuela?\",\n      pt: \"Você que dizer esta escola?\"\n    }\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"lib/util/chunkify/chunkify.ls","text":"(function(){\n  return function(a, n, balanced){\n    var len, out, i, size;\n    if (n < 2) {\n      return [a];\n    }\n    len = a.length;\n    out = [];\n    i = 0;\n    size = undefined;\n    if (len % n === 0) {\n      size = Math.floor(len / n);\n      while (i < len) {\n        out.push(a.slice(i, i += size));\n      }\n    } else if (balanced) {\n      while (i < len) {\n        size = Math.ceil((len - i) / n--);\n        out.push(a.slice(i, i += size));\n      }\n    } else {\n      n--;\n      size = Math.floor(len / n);\n      if (len % size === 0) {\n        size--;\n      }\n      while (i < size * n) {\n        out.push(a.slice(i, i += size));\n      }\n      out.push(a.slice(size * n));\n    }\n    return out;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/calcWeekStartAt/calc.ls","text":"(function(){\n  return function(date){\n    var weekDay, dif, mondayDate, weekStartAt;\n    date == null && (date = new Date());\n    weekDay = date.getDay();\n    dif = weekDay === 0\n      ? -6\n      : weekDay === 1\n        ? 0\n        : -weekDay + 1;\n    mondayDate = new Date(date.getTime() + dif * 86400000);\n    return weekStartAt = inc(\"/lib/util/calcDateString/calc\")(mondayDate);\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"lib/util/dataUrlToFile/dataUrlToFile.ls","text":"(function(){\n  return function(dataurl, filename){\n    var arr, mime, bstr, n, u8arr;\n    arr = dataurl.split(',');\n    mime = arr[0].match(/:(.*?);/)[1];\n    bstr = atob(arr[1]);\n    n = bstr.length;\n    u8arr = new Uint8Array(n);\n    while (n--) {\n      u8arr[n] = bstr.charCodeAt(n);\n    }\n    return new File([u8arr], filename, {\n      type: mime\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/mobileFallback/saveFile/save.ls","text":"(function(){\n  return function(p){\n    var localFilePath, save, onSaved;\n    localFilePath = p.job.filePath + \"_\" + p.job.responseEtag;\n    save = function(){\n      return app.fileSystem.writeFile(localFilePath, p.blob, 0, onSaved);\n    };\n    onSaved = function(error){\n      return p.onDone(p.blob);\n    };\n    return save();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadManager/getPlanInfo/get.ls","text":"(function(){\n  return function(manager, id){\n    var planInfo, planInfoFake;\n    planInfo = manager.planInfos[id];\n    if (planInfo) {\n      return planInfo;\n    } else {\n      planInfoFake = {\n        id: id,\n        enabled: false,\n        status: \"disabled\",\n        currentlyLoadingLevelsTotal: 0\n      };\n      return planInfoFake;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadManager/initEnabledPlans/init.ls","text":"(function(){\n  return function(manager){\n    var events, i$, len$, e, results$ = [];\n    manager.planInfos = {};\n    events = deviceLog.list(\"deviceDownloadManagerEnabled\");\n    for (i$ = 0, len$ = events.length; i$ < len$; ++i$) {\n      e = events[i$];\n      results$.push(manager.initPlan(e.id));\n    }\n    return results$;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadManager/preparePlans/prepare.ls","text":"(function(){\n  return function(manager){\n    var i$, ref$, plan, ref1$, results$ = [];\n    for (i$ in ref$ = _.filter(manager.planInfos, {\n      priority: true\n    })) {\n      plan = ref$[i$];\n      if ((ref1$ = plan.status) === \"initialized\" || ref1$ === \"offline\") {\n        manager.preparePlan(plan.id);\n      }\n    }\n    for (i$ in ref$ = manager.planInfos) {\n      plan = ref$[i$];\n      if ((ref1$ = plan.status) === \"initialized\" || ref1$ === \"offline\") {\n        results$.push(manager.preparePlan(plan.id));\n      }\n    }\n    return results$;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/start/startUser/07_extraPages/showBWStateLicenseInfo/page/_t.ls","text":"(function(){\n  return {\n    title: {\n      de: \"Landeslizenz in Baden-Württemberg\"\n    },\n    subtitle: {\n      de: \"ANTON-Schullizenz Plus kostenlos für alle Schulen\"\n    },\n    infoText1: {\n      de: \"Im Jahr 2023 hat das Land Baden-Württemberg eine Landeslizenz für ANTON erworben, die es seither allen Schulen in Baden-Württemberg ermöglicht, kostenfrei die ANTON-Schullizenz Plus zu nutzen. Diese unterstützt Schulen mit vielen wichtigen Funktionen, z.B. einer übersichtlichen Schulverwaltung, erweiterten Gruppen- und Report-Funktionen, Offline-Nutzung und vielem mehr.\"\n    },\n    infoText2: {\n      de: \"Die ANTON-Landeslizenz wurde nun um zwei weitere Jahre verlängert, und zwar bis Ende 2026. Deine Schulleitung kann die Schule hier für die kostenfreie Landeslizenz anmelden:\"\n    },\n    label1: {\n      de: \"Zur Anmeldung\"\n    },\n    infoText3: {\n      de: \"Zuvor bereits erstellte Nutzerkonten, Gruppen und Lernfortschritte können ohne Probleme in die Schullizenz aufgenommen und weiter verwendet werden.\"\n    },\n    infoText4: {\n      de: \"Weitere Informationen zur ANTON-Landeslizenz findet ihr außerdem auf den Seiten des LMZ:\"\n    },\n    label2: {\n      de: \"Zur LMZ-Seite\"\n    }\n  };\n})();","updated":"2025-08-04T12:34:45.856063"},{"path":"pages/start/startUser/07_extraPages/showBWStateLicenseInfo/page/button/button.ls","text":"(function(){\n  return function(o){\n    return Button({\n      label: o.label\n    }).css({\n      marginBottom: \"1em\"\n    }).tap(function(){\n      log.log({\n        event: \"debugBWStateLicenseInfoButtonClick\",\n        id: o.id\n      });\n      return window.open(o.link, \"_system\");\n    });\n  };\n})();","updated":"2025-08-04T12:34:45.856063"},{"path":"pages/start/startUser/07_extraPages/showBWStateLicenseInfo/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")({\n          close: function(){\n            return inc(\"../../_onExtraPageDone/on\")();\n          }\n        });\n      },\n      start: function(){\n        var t, b;\n        log.log({\n          event: \"showBWStateLicenseInfo\"\n        });\n        t = inc(\"text/text\");\n        b = inc(\"button/button\");\n        return page.html(Div({\n          margin: \"2em auto\",\n          width: \"30em\",\n          maxWidth: \"90%\"\n        }).html(inc(\"title/title\")(), inc(\"subtitle/subtitle\")(), t(T(\"infoText1\")), t(T(\"infoText2\")), b({\n          id: \"register\",\n          label: T(\"label1\"),\n          link: \"https://lp.anton.app/lp/baden-wuerttemberg\"\n        }), t(T(\"infoText3\")), t(T(\"infoText4\")), b({\n          id: \"info\",\n          label: T(\"label2\"),\n          link: \"https://www.lmz-bw.de/landesmedienzentrum/aktuelles/aktuelle-meldungen/detailseite/hurra-die-lernportale-anton-und-onilo-weiterhin-ueber-sesam-kostenlos-nutzen\"\n        }), inc(\"buttonNotNow/button\")()));\n      }\n    };\n  };\n})();","updated":"2025-08-04T12:34:45.856063"},{"path":"pages/level/afterFinish/pages/adventCalendarPromo/_waitForMedia/wait.ls","text":"(function(){\n  return function(page){\n    if (!page.media.isReady()) {\n      return setTimeout(function(){\n        if (app.currentPage === page) {\n          return page.pageCode.start();\n        }\n      }, 100);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/_preloadMedia/loadSound/load.ls","text":"(function(){\n  return function(media){\n    return inc(\"/lib/util/downloadSound/download\")({\n      text: T(\"soundText\"),\n      voiceLang: engine.guiLanguage === \"de\" ? \"de\" : \"en\",\n      voice: engine.guiLanguage === \"de\" ? \"m3\" : \"m5Us\",\n      fileFolder: \"media/afterFinish\",\n      etag: \"any\",\n      onError: function(){\n        return media.abort = true;\n      },\n      onOffline: function(){\n        return media.abort = true;\n      },\n      onLoaded: function(sound){\n        return media.sound = sound;\n      }\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page3NewFamily/_preloadMedia/loadSound/load.ls","text":"(function(){\n  return function(media){\n    return inc(\"/lib/util/downloadSound/download\")({\n      text: T(\"soundText\"),\n      voiceLang: engine.guiLanguage === \"de\" ? \"de\" : \"en\",\n      voice: engine.guiLanguage === \"de\" ? \"m3\" : \"m5Us\",\n      fileFolder: \"media/afterFinish\",\n      etag: \"any\",\n      onError: function(){\n        return media.abort = true;\n      },\n      onOffline: function(){\n        return media.abort = true;\n      },\n      onLoaded: function(sound){\n        return media.sound = sound;\n      }\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page3NewFamily/_preloadMedia/preloadMedia.ls","text":"(function(){\n  var media;\n  media = {\n    init: false,\n    aborted: false,\n    isReady: function(){\n      return media.sound != null;\n    },\n    clear: function(){\n      media.init = false;\n      return media.sound = undefined;\n    }\n  };\n  return function(){\n    if (!media.init || media.aborted) {\n      media.init = true;\n      media.aborted = false;\n      inc(\"loadSound/load\")(media);\n    }\n    return media;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page3NewFamily/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"title\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/misc/_shared/confirmAge16AndPrivacy/popups/privacy2/button/button.ls","text":"(function(){\n  return function(label, tap){\n    return Button(label).tap(tap);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/previewNoUser/line/line.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      borderBottom: \"1px solid \" + Color.grey[200]\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/misc/_shared/confirmAge16AndPrivacy/popups/privacy1/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      padding: \"0 1em 1em 1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"pleaseAcceptPrivacyPolicy\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/physicsEngine/physicsEngine.ls","text":"(function(){\n  return function(o){\n    var physicsEngine, velocityIterations, ref$, positionIterations, ref1$, ref2$, contactListener;\n    physicsEngine = {\n      scaleFactor: o.scaleFactor || 1\n    };\n    velocityIterations = (ref$ = o.velocityIterations) != null ? ref$ : 1;\n    positionIterations = (ref$ = o.positionIterations) != null ? ref$ : 1;\n    physicsEngine.world = new box2d.b2World(new box2d.b2Vec2((ref$ = (ref1$ = o.gravity) != null ? ref1$.x : void 8) != null ? ref$ : 0, (ref$ = (ref2$ = o.gravity) != null ? ref2$.y : void 8) != null ? ref$ : 0), true);\n    physicsEngine.addSprite = function(sprite, bodyOptions, fixDef){\n      var ref$, bodyDef;\n      bodyOptions = bodyOptions || {};\n      if (bodyOptions.position == null) {\n        if (sprite.anchor != null) {\n          bodyOptions.position = [(sprite.x + sprite.width * (0.5 - ((ref$ = sprite.anchor.x) != null ? ref$ : 0.5))) / o.scaleFactor, (sprite.y + sprite.height * (0.5 - ((ref$ = sprite.anchor.y) != null ? ref$ : 0.5))) / o.scaleFactor];\n        } else {\n          bodyOptions.position = [sprite.x / o.scaleFactor, sprite.y / o.scaleFactor];\n        }\n        bodyOptions.position[0] = +bodyOptions.position[0].toFixed(10);\n        bodyOptions.position[1] = +bodyOptions.position[1].toFixed(10);\n        console.log('body pos', sprite.x, sprite.y, sprite.width, sprite.height);\n        console.log('body pos', bodyOptions.position);\n      }\n      bodyDef = new box2d.b2BodyDef();\n      if (bodyOptions['static']) {\n        bodyDef.type = box2d.b2BodyType.b2_staticBody;\n      } else {\n        bodyDef.type = box2d.b2BodyType.b2_dynamicBody;\n      }\n      bodyDef.position.x = bodyOptions.position[0];\n      bodyDef.position.y = bodyOptions.position[1];\n      sprite.body = physicsEngine.world.CreateBody(bodyDef);\n      if (fixDef.shape != null) {\n        sprite.body.CreateFixture(fixDef);\n      } else {\n        sprite.body.CreateFixture(fixDef, 0);\n      }\n      sprite.body.sprite = sprite;\n    };\n    physicsEngine.removeSprite = function(sprite){\n      return physicsEngine.world.DestroyBody(sprite.body);\n    };\n    physicsEngine.update = function(dt){\n      var body, sprite, pos;\n      physicsEngine.world.Step(dt, velocityIterations, positionIterations);\n      body = physicsEngine.world.GetBodyList();\n      while (body) {\n        if (sprite = body.sprite) {\n          pos = body.GetWorldCenter();\n          if (sprite.anchor != null) {\n            sprite.x = pos.x * o.scaleFactor - sprite.width * (0.5 - sprite.anchor.x);\n            sprite.y = pos.y * o.scaleFactor - sprite.height * (0.5 - sprite.anchor.y);\n          } else {\n            sprite.x = pos.x * o.scaleFactor;\n            sprite.y = pos.y * o.scaleFactor;\n          }\n          sprite.rotation = body.GetAngle();\n        }\n        body = body.GetNext();\n      }\n    };\n    contactListener = new box2d.b2ContactListener();\n    contactListener.BeginContact = function(contact){\n      var s1, s2;\n      s1 = contact.GetFixtureA().GetBody().sprite;\n      s2 = contact.GetFixtureB().GetBody().sprite;\n      return physicsEngine.onBeginContact(s1, s2);\n    };\n    contactListener.EndContact = function(contact){\n      var s1, s2;\n      s1 = contact.GetFixtureA().GetBody().sprite;\n      s2 = contact.GetFixtureB().GetBody().sprite;\n      return physicsEngine.onEndContact(s1, s2);\n    };\n    physicsEngine.world.SetContactListener(contactListener);\n    physicsEngine.onBeginContact = function(s1, s2){};\n    physicsEngine.onEndContact = function(s1, s2){};\n    physicsEngine.cleanup = function(){\n      var ref$;\n      physicsEngine.world.SetContactListener(undefined);\n      delete physicsEngine.world;\n      delete contactListener.BeginContact;\n      delete contactListener.EndContact;\n      contactListener = undefined;\n      delete physicsEngine.onBeginContact;\n      return ref$ = physicsEngine.onEndContact, delete physicsEngine.onEndContact, ref$;\n    };\n    return physicsEngine;\n  };\n})();","updated":"2021-02-26T13:57:59.916029"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/init/initKeywordSearch/init.ls","text":"(function(){\n  return function(plans){\n    var keywordCache, keywords;\n    if (window.fuse == null) {\n      inc(\"../../_external/fuse/fuse.min.js\");\n    }\n    keywordCache = inc(\"/lib/util/cache/get/get\")(\"searchKeywords\");\n    if (keywordCache == null || keywordCache.guiLanguage !== engine.guiLanguage) {\n      keywords = [];\n      _.forEach(plans, function(p){\n        keywords = _.concat(keywords, p.displayName);\n        return _.forEach(p.topics, function(t){\n          return _.forEach(t.blocks, function(b){\n            var ref$;\n            if (((ref$ = b.tags) != null ? ref$.length : void 8) > 0) {\n              return keywords = _.concat(keywords, b.tags);\n            }\n          });\n        });\n      });\n      keywords = _.compact(keywords);\n      keywords = _.uniqBy(keywords, function(k){\n        return typeof k.toLowerCase == 'function' ? k.toLowerCase() : void 8;\n      });\n      keywordCache = {\n        guiLanguage: engine.guiLanguage,\n        keywords: keywords\n      };\n      inc(\"/lib/util/cache/set/set\")(\"searchKeywords\", keywordCache);\n      return window.fuse = new Fuse(keywords, {\n        shouldSort: true,\n        threshold: 0.4\n      });\n    }\n  };\n})();","updated":"2021-10-25T12:34:10.726624"},{"path":"pages/school/_shared/schoolIcon/image/image.ls","text":"(function(){\n  return function(imageId){\n    return inc(\"/lib/gui/image/image\")({\n      id: imageId,\n      fileFolder: \"media/schools/_images\"\n    }).css({\n      width: \"101%\",\n      height: \"101%\"\n    });\n  };\n})();","updated":"2021-05-04T09:15:33.849643"},{"path":"pages/support/help/faqList/filterCategories/logSearch/log.ls","text":"(function(){\n  return function(query, filteredCategories){\n    var eventName, l;\n    if (typeof log != 'undefined' && log !== null) {\n      eventName = \"debugFaqSearch\";\n      l = log;\n    } else {\n      eventName = \"deviceDebugFaqSearch\";\n      l = deviceLog;\n    }\n    return l.log({\n      event: eventName,\n      query: query,\n      matches: _.flatMap(filteredCategories, \"questions\").length,\n      guiLanguage: engine.guiLanguage\n    });\n  };\n})();","updated":"2021-06-11T13:11:30.332156"},{"path":"pages/support/help/faqList/loadCategories/_t.ls","text":"(function(){\n  return {\n    restartError: {\n      de: \"Ups, hier ist ein Problem aufgetreten.<br>Wir kümmern uns darum.<br><br>ANTON wird neu gestartet.\",\n      en: \"Oops, an error occurred.<br>We are taking care of it.<br><br>ANTON will be restarted.\",\n      fr: \"Oups… une erreur s'est produite.<br>On s'en occupe&nbsp;!<br><br>ANTON va être redémarré.\",\n      es: \"¡Ups! Surgió un problema. Lo estamos resolviendo. ANTON se reiniciará.\",\n      pt: \"Ops! Ocorreu um erro. Nós cuidaremos disso. ANTON será reiniciado.\"\n    }\n  };\n})();","updated":"2021-10-04T14:36:33.789173"},{"path":"pages/support/help/faqQuestion/create/log/log.ls","text":"(function(){\n  return function(page){\n    var eventName, l, question, params;\n    if (typeof log != 'undefined' && log !== null) {\n      eventName = \"debugShowFaq\";\n      l = log;\n    } else {\n      eventName = \"deviceDebugShowFaq\";\n      l = deviceLog;\n    }\n    question = page.question;\n    params = page.params;\n    return l.log({\n      event: eventName,\n      path: (question != null ? question.path : void 8) || \"not_found\",\n      deeplinkUid: params.deepLinkUid,\n      searchQuery: params.searchQuery,\n      guiLanguage: engine.guiLanguage\n    });\n  };\n})();","updated":"2021-06-11T13:11:30.332156"},{"path":"pages/support/help/faqList/category/questions/question/question.ls","text":"(function(){\n  var lastPath;\n  lastPath = null;\n  return function(page, category, question){\n    var click, setLastViewed, div, title;\n    if (question.isDebug && !engine.isDebug) {\n      return;\n    }\n    click = function(){\n      lastPath = question.path;\n      return startPage({\n        path: path(\"../../../../faqQuestion/page\"),\n        animation: \"slideLeft\",\n        params: {\n          searchQuery: page.params.search,\n          questionPath: question.path,\n          categoryName: category.name,\n          isStandaloneFaqPage: page.params.isStandaloneFaqPage\n        }\n      });\n    };\n    setLastViewed = function(){\n      lastPath = question.path;\n      return title.append(inc(\"lastViewed/lastViewed\")(lastPath, question));\n    };\n    div = Div().addClass(\"question\").addClass(\"question_\" + question.uid).css({\n      display: \"flex\",\n      alignItems: \"stretch\",\n      padding: \"0.5em\",\n      borderBottom: \"1px solid \" + Color.grey[200]\n    }).append(title = inc(\"title/title\")(page, question).append(inc(\"lastViewed/lastViewed\")(lastPath, question)), inc(\"arrowIcon/arrowIcon\")()).tap(click);\n    div.path = question.path;\n    div.setLastViewed = setLastViewed;\n    return div;\n  };\n})();","updated":"2021-06-11T13:11:30.332156"},{"path":"pages/support/help/faqList/category/questions/questions.ls","text":"(function(){\n  return function(page, category){\n    var question;\n    return Div({\n      marginBottom: \"1em\"\n    }).append((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = category.questions).length; i$ < len$; ++i$) {\n        question = ref$[i$];\n        results$.push(inc(\"question/question\")(page, category, question));\n      }\n      return results$;\n    }()));\n  };\n})();","updated":"2021-06-11T13:11:30.332156"},{"path":"pages/support/help/faqQuestion/rating/rating.ls","text":"(function(){\n  return function(page){\n    var refresh, logRating, click, div, b1, b2;\n    refresh = function(soft){\n      var e;\n      e = log.findLast({\n        event: \"debugFaqRating\",\n        uid: page.question.uid\n      });\n      if (e) {\n        div.hide();\n        if (soft) {\n          page.feedback.fadeIn();\n        } else {\n          page.feedback.show();\n        }\n        return page.feedback.html(inc(\"checkIcon/check\")(), e.value === \"good\"\n          ? T(\"thanksForGoodRating\")\n          : T(\"thanksForRating\"));\n      }\n    };\n    logRating = function(value, feedback){\n      var question, e;\n      question = page.question;\n      e = {\n        event: \"debugFaqRating\",\n        question: question.title,\n        uid: question.uid,\n        path: question.path,\n        guiLanguage: engine.guiLanguage,\n        value: value\n      };\n      if (feedback) {\n        e.feedback = feedback;\n      }\n      return log.log(e);\n    };\n    click = function(value){\n      if (value === \"good\") {\n        logRating(value);\n        return refresh(true);\n      } else {\n        return inc(\"feedbackPopup/popup\")(page.question.title, function(feedback){\n          logRating(value, feedback);\n          return refresh(true);\n        });\n      }\n    };\n    div = Div().css({\n      paddingTop: \"1em\"\n    }).append(b1 = Button({\n      label: T(\"helpful\"),\n      icon: path(\"/lib/svg/shape/thumb-up.svg\"),\n      iconColor: Color.grey[550]\n    }).css({\n      margin: \"0.3em\"\n    }).tap(function(){\n      return click(\"good\");\n    }), b2 = Button({\n      label: T(\"notHelpful\"),\n      icon: path(\"/lib/svg/shape/thumb-down.svg\"),\n      iconColor: Color.grey[550]\n    }).css({\n      margin: \"0.3em\"\n    }).tap(function(){\n      return click(\"bad\");\n    }));\n    refresh();\n    return div;\n  };\n})();","updated":"2021-06-11T13:11:30.332156"},{"path":"lib/gui/inputEditable/handleMaxLength/handle.ls","text":"(function(){\n  return function(i, params){\n    var v, maxLength;\n    v = i.div.getValue();\n    maxLength = params.maxLength;\n    if (maxLength != null && v.length > maxLength) {\n      if (_.includes(v, \"\\n\")) {\n        maxLength -= 1;\n      }\n      return i.setValue(v.slice(0, maxLength));\n    }\n  };\n})();","updated":"2021-06-11T16:52:34.453485"},{"path":"addons/topbarLevel/hint/hint/content/content/image/image.ls","text":"(function(){\n  return function(slide, part){\n    var image;\n    image = slide.getParam(\"image\", part);\n    return Div({\n      textAlign: image.textAlign || \"center\"\n    }).html(inc(\"/../app01-trainers/shared/image/image\")({\n      image: image,\n      slide: slide\n    }).css({\n      margin: \"0.2em 0\"\n    }));\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"lib/init/debugToggle/rememberPopup/rememberPopup.ls","text":"(function(){\n  return function(onSuccess){\n    var div, popup;\n    div = Div({\n      paddingBottom: \"1em\",\n      paddingTop: \"1em\"\n    }).html(Div({\n      paddingBottom: \"0.5em\"\n    }).html(\"Möchtest du die Einstellung auf diesem Gerät merken?\"), Button(\"Ja\").css({\n      margin: \"0.5em\"\n    }).tap(function(){\n      return typeof onSuccess == 'function' ? onSuccess(true) : void 8;\n    }), Button(\"Nein\").css({\n      margin: \"0.5em\"\n    }).tap(function(){\n      return typeof onSuccess == 'function' ? onSuccess(false) : void 8;\n    }));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(type){\n        if (type === \"outside\" || type === \"icon\") {\n          return typeof onSuccess == 'function' ? onSuccess(false) : void 8;\n        }\n      }\n    });\n  };\n})();","updated":"2024-06-13T10:27:02.204022"},{"path":"lib/gui/multiform/div/div.ls","text":"(function(){\n  return function(p){\n    return Div({\n      width: \"15em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto\"\n    }).html(p.fieldDivs);\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"lib/gui/pager/element/element.ls","text":"(function(){\n  return function(content){\n    return Div({\n      display: \"flex\",\n      position: \"absolute\",\n      left: 0,\n      top: 0,\n      width: \"100%\",\n      height: \"100%\",\n      overflow: \"scroll\"\n    }).html(content);\n  };\n})();","updated":"2022-02-08T08:47:17.546844"},{"path":"lib/gui/pager/scroll/scrollhelper/scrollhelper.ls","text":"(function(){\n  return function(o){\n    var damping, velocityStrength, autoScrollSpeed, scrollToTargetSpeed, scrollhelper, lastTouchX, lastDown, targetScrollPosition, isDown, xFromEvent, move, scrollToTarget;\n    damping = 0.96;\n    velocityStrength = 80;\n    autoScrollSpeed = 0.3;\n    scrollToTargetSpeed = 20;\n    scrollhelper = {\n      scrollPosition: 0,\n      isScrollingToTarget: false,\n      velocity: 0\n    };\n    lastTouchX = undefined;\n    lastDown = undefined;\n    targetScrollPosition = undefined;\n    isDown = false;\n    xFromEvent = function(e){\n      var ref$, ref1$, ref2$;\n      return (ref$ = (ref1$ = e.touches) != null ? (ref2$ = ref1$[0]) != null ? ref2$.clientX : void 8 : void 8) != null\n        ? ref$\n        : e.clientX;\n    };\n    scrollhelper.touchDown = function(e){\n      isDown = true;\n      lastTouchX = xFromEvent(e);\n      return lastDown = performance.now();\n    };\n    scrollhelper.touchUp = function(e){\n      isDown = false;\n      lastTouchX = undefined;\n      return lastDown = undefined;\n    };\n    scrollhelper.touchMove = function(e){\n      var touchX, delta;\n      if (!isDown) {\n        return;\n      }\n      touchX = xFromEvent(e);\n      delta = touchX - lastTouchX;\n      lastTouchX = touchX;\n      return move(delta);\n    };\n    scrollhelper.wheelMove = function(e){\n      return move(e.wheelDeltaX);\n    };\n    move = function(delta){\n      var didScroll;\n      didScroll = false;\n      if (delta !== 0) {\n        scrollhelper.scrollPosition += delta;\n        if (lastDown != null) {\n          scrollhelper.velocity = velocityStrength * delta / (performance.now() - lastDown);\n        }\n        didScroll = true;\n      }\n      lastDown = performance.now();\n      return didScroll;\n    };\n    scrollhelper.autoscroll = function(){\n      var speed;\n      if (scrollhelper.isScrollingToTarget) {\n        scrollToTarget();\n        return;\n      }\n      if (Math.abs(scrollhelper.velocity) > autoScrollSpeed) {\n        speed = scrollhelper.velocity * autoScrollSpeed;\n        scrollhelper.velocity *= damping;\n      } else {\n        speed = -autoScrollSpeed;\n        scrollhelper.velocity = 0;\n      }\n      return scrollhelper.scrollPosition += speed;\n    };\n    scrollToTarget = function(){\n      var difference;\n      difference = targetScrollPosition - scrollhelper.scrollPosition;\n      if (difference >= scrollToTargetSpeed) {\n        difference = scrollToTargetSpeed;\n      } else if (difference <= -scrollToTargetSpeed) {\n        difference = -scrollToTargetSpeed;\n      } else {\n        scrollhelper.isScrollingToTarget = false;\n      }\n      return scrollhelper.scrollPosition += difference;\n    };\n    scrollhelper.scroll = function(dx){\n      return scrollhelper.scrollPosition += dx;\n    };\n    scrollhelper.targetScrollTo = function(scrollPos, animated){\n      targetScrollPosition = scrollPos;\n      scrollhelper.isScrollingToTarget = true;\n      if (animated) {\n        return scrollToTargetSpeed = Math.abs(scrollhelper.scrollPosition - targetScrollPosition) / 10;\n      } else {\n        return scrollToTargetSpeed = 999999999999;\n      }\n    };\n    return scrollhelper;\n  };\n})();","updated":"2022-02-08T08:47:17.546844"},{"path":"lib/gui/multiform/getValues/get.ls","text":"(function(){\n  return function(p){\n    return function(){\n      var values, i$, ref$, len$, el, d;\n      values = {};\n      for (i$ = 0, len$ = (ref$ = p.div.findAll(\".field\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        d = el.getValue();\n        values[d.id] = d.value;\n      }\n      return values;\n    };\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"lib/gui/multiform/setValues/set.ls","text":"(function(){\n  return function(p){\n    return function(values){\n      var fieldDivs, k, v, field, results$ = [];\n      fieldDivs = p.div.findAll(\".field\");\n      for (k in values) {\n        v = values[k];\n        field = _.find(fieldDivs, fn$);\n        results$.push(field != null ? field.setValue(v) : void 8);\n      }\n      return results$;\n      function fn$(d){\n        return d.getId() === k;\n      }\n    };\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"lib/gui/multiform/start/start.ls","text":"(function(){\n  return function(p){\n    return function(){\n      var ref$;\n      return (ref$ = p.div.findFirst(\".input\")) != null ? ref$.start() : void 8;\n    };\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"lib/gui/multiform/submit/trimOnSubmit/trim.ls","text":"(function(){\n  return function(p){\n    var k, ref$, v, field, v2, fieldDiv, results$ = [];\n    for (k in ref$ = p.getValues()) {\n      v = ref$[k];\n      field = _.find(p.params.fields, {\n        id: k\n      });\n      if (field.type !== \"input\" || field.disableTrim) {\n        continue;\n      }\n      v2 = v.trim();\n      if (v2 === v) {\n        continue;\n      }\n      fieldDiv = _.find(p.fieldDivs, fn$);\n      results$.push(fieldDiv.setValue(v2));\n    }\n    return results$;\n    function fn$(f){\n      return f.getId() === k;\n    }\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"lib/gui/multiform/buttonSpinner/hide/hide.ls","text":"(function(){\n  return function(p){\n    return function(){\n      var button;\n      if (!p.spinner) {\n        return;\n      }\n      p.spinner.remove();\n      delete p.spinner;\n      button = p.div.findFirst(\".button\");\n      if (button != null) {\n        button.setState(\"normal\");\n      }\n      return p.div.css({\n        pointerEvents: \"\"\n      });\n    };\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"lib/gui/pager/scroll/scroll.ls","text":"(function(){\n  return function(container, elements, infinite, onPageChanged){\n    var scrollhelper, wheelTimeout, currentPage, contentWidth, didScroll, touchDown, touchUp, touchMove, onWheel, snapToPage, tick, layoutElements, onResize;\n    if (elements.length <= 1) {\n      return;\n    }\n    scrollhelper = inc(\"scrollhelper/scrollhelper\")();\n    wheelTimeout = undefined;\n    currentPage = 0;\n    contentWidth = 0;\n    didScroll = false;\n    touchDown = function(e){\n      didScroll = false;\n      return scrollhelper.touchDown(e);\n    };\n    touchUp = function(e){\n      scrollhelper.touchUp(e);\n      e.preventDefault();\n      if (didScroll) {\n        return snapToPage(scrollhelper.velocity / 20);\n      }\n    };\n    touchMove = function(e){\n      var ref$, ref1$;\n      if (!e.buttons && !((ref$ = e.touches) != null && ref$.length) && !((ref1$ = e.changedTouches) != null && ref1$.length)) {\n        return;\n      }\n      if (scrollhelper.touchMove(e)) {\n        e.stopPropagation();\n        e.preventDefault();\n        didScroll = true;\n        container.dispatchEvent(new Event('scroll'));\n        return layoutElements();\n      }\n    };\n    onWheel = function(e){\n      if (scrollhelper.wheelMove(e)) {\n        e.stopPropagation();\n        e.preventDefault();\n        container.dispatchEvent(new Event('scroll'));\n        layoutElements();\n        clearTimeout(wheelTimeout);\n        return wheelTimeout = setTimeout(snapToPage, 66);\n      }\n    };\n    snapToPage = function(pageOff){\n      var width, scrollpos;\n      width = container.offset().width;\n      scrollpos = pageOff >= 1 && scrollhelper.scrollPosition % width < -width / 2\n        ? scrollhelper.scrollPosition + width\n        : pageOff <= -1 && scrollhelper.scrollPosition % width > -width / 2\n          ? scrollhelper.scrollPosition - width\n          : scrollhelper.scrollPosition;\n      if (infinite || (width - contentWidth <= scrollpos && scrollpos <= 0)) {\n        return scrollhelper.targetScrollTo(Math.round(scrollpos / width) * width, true);\n      } else {\n        if (scrollpos > 0) {\n          return scrollhelper.targetScrollTo(0, true);\n        } else {\n          return scrollhelper.targetScrollTo(width - contentWidth, true);\n        }\n      }\n    };\n    tick = function(){\n      if (scrollhelper.isScrollingToTarget) {\n        scrollhelper.autoscroll();\n        layoutElements();\n      }\n      if (container.isVisible()) {\n        return requestAnimationFrame(tick);\n      } else {\n        return window.removeEventListener(\"resize\", onResize);\n      }\n    };\n    layoutElements = function(){\n      var x, width, limit, diff, pageIndex, ref$, i$, len$, el, xx, results$ = [];\n      x = scrollhelper.scrollPosition;\n      width = container.offset().width;\n      contentWidth = width * elements.length;\n      if (width === 0) {\n        return;\n      }\n      if (!infinite) {\n        limit = width / 10;\n        if (x < width - contentWidth) {\n          diff = x - (width - contentWidth);\n          x = (width - contentWidth) - Math.log(1 - diff / limit, 10) * limit;\n        } else if (x > 0) {\n          x = Math.log(1 + x / limit, 10) * limit;\n        }\n      }\n      pageIndex = ((Math.round(-x / width)) % (ref$ = elements.length) + ref$) % ref$;\n      if (pageIndex !== currentPage) {\n        currentPage = pageIndex;\n        if (typeof onPageChanged == 'function') {\n          onPageChanged(currentPage);\n        }\n      }\n      if (infinite) {\n        while (x < -contentWidth) {\n          x += contentWidth;\n        }\n        while (x > contentWidth) {\n          x -= contentWidth;\n        }\n      }\n      for (i$ = 0, len$ = (ref$ = elements).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        xx = x;\n        if (infinite) {\n          if (xx > width) {\n            xx -= contentWidth;\n          } else if (xx + width < 0) {\n            xx += contentWidth;\n          }\n        }\n        el.css({\n          transform: \"translateX(\" + xx + \"px)\"\n        });\n        results$.push(x += width);\n      }\n      return results$;\n    };\n    onResize = function(){\n      var offset, width;\n      offset = scrollhelper.scrollPosition / contentWidth;\n      width = container.offset().width;\n      contentWidth = width * elements.length;\n      scrollhelper.scrollPosition = offset * contentWidth;\n      return layoutElements();\n    };\n    requestAnimationFrame(function(){\n      layoutElements();\n      return tick();\n    });\n    container.bind(\"touchstart mousedown\", touchDown).bind(\"touchmove mousemove\", touchMove).bind(\"touchend mouseup\", touchUp).bind(\"mousewheel\", onWheel);\n    window.addEventListener(\"resize\", onResize);\n    return {\n      scrollToPage: function(p, animated){\n        var pageOff, xOff, x;\n        pageOff = currentPage - p;\n        xOff = container.offset().width * pageOff;\n        x = Math.round(scrollhelper.scrollPosition + xOff);\n        return scrollhelper.targetScrollTo(x, animated);\n      }\n    };\n  };\n})();","updated":"2022-02-08T08:47:17.546844"},{"path":"lib/gui/multiform/buttonSpinner/show/show.ls","text":"(function(){\n  return function(p){\n    return function(){\n      var button;\n      if (p.spinner) {\n        return;\n      }\n      p.spinner = Div({\n        display: \"flex\",\n        alignSelf: \"stretch\",\n        width: 0,\n        flex: \"0 0 auto\",\n        opacity: 0\n      }).addClass(\"buttonSpinner\").html(inc(\"/lib/gui/spinner/spinner\")({\n        color: Color.grey[400],\n        small: true\n      }).css({\n        marginLeft: \"2em\"\n      })).keyframeAnimate({\n        delay: 500,\n        duration: 1000,\n        keyframes: {\n          \"100%\": {\n            opacity: 1\n          }\n        }\n      });\n      button = p.div.findFirst(\".button\");\n      if (button != null) {\n        button.setState(\"disabled\");\n      }\n      if (button != null) {\n        button.after(p.spinner);\n      }\n      return p.div.css({\n        pointerEvents: \"none\"\n      });\n    };\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/notFound/contentFeedbackButton/popupInput/form/form.ls","text":"(function(){\n  return function(query){\n    var submit, form;\n    submit = function(){\n      var v;\n      v = form.getValues();\n      if (v.topic === \"\" || v.subjectGrade === \"\") {\n        inc(\"/lib/gui/toast/toast\")({\n          label: T(\"fillBothFields\")\n        });\n        return;\n      }\n      if (typeof log != 'undefined' && log !== null) {\n        log.log({\n          event: \"debugSendContentFeedback\",\n          topic: v.topic,\n          subjectGrade: v.subjectGrade,\n          query: query\n        });\n      }\n      return inc(\"../../popupDone/popup\")();\n    };\n    form = inc(\"/lib/gui/multiform/multiform\")({\n      onSubmit: submit,\n      screenKeyboard: {\n        parentDiv: app.currentPage.popupBottom\n      },\n      fields: [\n        {\n          id: \"topic\",\n          label: T(\"whichTopic\"),\n          type: \"input\"\n        }, {\n          id: \"subjectGrade\",\n          label: T(\"whichSubjectAndGrade\"),\n          type: \"input\"\n        }, {\n          id: \"button\",\n          label: T(\"send\"),\n          type: \"button\"\n        }\n      ]\n    });\n    form.setValues({\n      topic: query\n    });\n    return form;\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"pages/schoolSearch/05_createNewSchool/form/form.ls","text":"(function(){\n  return function(page, submit){\n    var onSubmit, div, f;\n    onSubmit = function(values){\n      var v, ok;\n      v = values;\n      ok = true;\n      if (!v.name) {\n        ok = false;\n        f.setValues({\n          errorName: T(\"errorNameEmpty\")\n        });\n      }\n      if (!v.city) {\n        ok = false;\n        f.setValues({\n          errorCity: T(\"errorCityEmpty\")\n        });\n      }\n      if (ok) {\n        return submit(values);\n      }\n    };\n    div = Div({\n      width: \"20em\",\n      maxWidth: \"95%\",\n      margin: \"0 auto\",\n      textAlign: \"left\"\n    }).html(f = inc(\"/lib/gui/multiform/multiform\")({\n      onSubmit: onSubmit,\n      fields: [\n        {\n          id: \"name\",\n          label: T(\"name\"),\n          type: \"input\",\n          value: page.params.name,\n          onChange: function(){\n            return f != null ? f.setValues({\n              errorName: \"\"\n            }) : void 8;\n          }\n        }, {\n          id: \"errorName\",\n          type: \"error\"\n        }, {\n          id: \"city\",\n          label: T(\"city\"),\n          type: \"input\",\n          value: page.params.city,\n          onChange: function(){\n            return f != null ? f.setValues({\n              errorCity: \"\"\n            }) : void 8;\n          }\n        }, {\n          id: \"errorCity\",\n          type: \"error\"\n        }, {\n          id: \"button\",\n          label: T(\"continue\"),\n          type: \"button\"\n        }\n      ]\n    }));\n    page.form = f;\n    return div;\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"pages/schoolSearch/05_createNewSchool/loadSuggestedSchool/load.ls","text":"(function(){\n  return function(p){\n    var page, params;\n    page = p.page;\n    params = page.params;\n    page.form.showSpinner();\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/schoolSearch/suggestSchool/suggest\"),\n      params: {\n        countryCode: params.countryCode,\n        guiLanguage: engine.guiLanguage,\n        name: params.name,\n        city: params.city\n      },\n      requiredVisibleDiv: page,\n      onError: function(){\n        page.form.hideSpinner();\n        return inc(\"/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        page.form.hideSpinner();\n        return inc(\"/lib/offline/offlinePopup/popup\")();\n      },\n      onCompleted: function(result){\n        page.form.hideSpinner();\n        p.page.suggestedSchool = result.suggestedSchool;\n        return p.onLoaded();\n      }\n    });\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"pages/start/login/relogin/02_form/submit/submit.ls","text":"(function(){\n  return function(page){\n    var form, v;\n    form = page.form;\n    v = form.getValues().value;\n    if (v.length === 0) {\n      form.setValues({\n        error: T(\"emptyFieldError\")\n      });\n      return;\n    }\n    form.showSpinner();\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/login/relogin/relogin\"),\n      params: {\n        logId: page.logId,\n        type: page.type,\n        value: v\n      },\n      requiredVisibleDiv: form,\n      onError: function(error){\n        form.hideSpinner();\n        return inc(\"/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        form.hideSpinner();\n        return inc(\"/lib/offline/offlinePopup/popup\")();\n      },\n      onCompleted: inc(\"onCompleted/onCompleted\")(form)\n    });\n  };\n})();","updated":"2021-06-16T13:18:12.456561"},{"path":"pages/start/startUser/07_extraPages/calcShowDirTeacherDirCanceledWarning/calc.ls","text":"(function(){\n  return function(onDone){\n    var sds, dirSds;\n    sds = inc(\"/data/school/calcSchoolDescriptions/calc\")();\n    dirSds = _.filter(sds, function(d){\n      var ref$;\n      return (ref$ = d != null ? d.dirRole : void 8) === \"teacher\" || ref$ === \"staff\";\n    });\n    if (dirSds.length === 0) {\n      return onDone([]);\n    } else {\n      return inc(\"calcIsDirCanceled/calc\")(dirSds, onDone);\n    }\n  };\n})();","updated":"2022-02-08T08:47:17.546844"},{"path":"pages/start/startUser/07_extraPages/showDirTeacherDirCanceledWarning/page/page.ls","text":"(function(){\n  return function(page){\n    page.userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    page.school = page.params.school;\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        return page.append(Div({\n          margin: \"1em auto\"\n        }).append(inc(\"icon/icon\")(), inc(\"title/title\")(), inc(\"text/text\")(page), inc(\"buttonDone/button\")(page)));\n      }\n    };\n  };\n})();","updated":"2022-02-08T08:47:17.546844"},{"path":"pages/start/startUser/07_extraPages/showDirTeacherDirCanceledWarning/page/text/text.ls","text":"(function(){\n  return function(page){\n    var displayName, date, schoolName;\n    displayName = page.userDescription.displayName;\n    date = inc(\"/lib/util/formatDate2/format\")(page.school.validUntil);\n    schoolName = inc(\"/data/school/calcSchoolDescription/calc\")(page.school.schoolCode).name;\n    return Div({\n      margin: \"1em auto 1.5em\",\n      width: \"35em\",\n      maxWidth: \"90%\",\n      lineHeight: \"1.7em\",\n      hyphens: \"auto\",\n      textAlign: \"justify\"\n    }).secureHtml(T(\"infoText\", displayName, schoolName, date.formats.date));\n  };\n})();","updated":"2022-02-08T08:47:17.546844"},{"path":"pages/start/startUser/07_extraPages/showDirTeacherDirCanceledWarning/page/title/title.ls","text":"(function(){\n  return function(){\n    return Div({\n      width: \"20em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto\",\n      lineHeight: \"1.4em\",\n      fontWeight: \"bold\"\n    }).html(T(\"title\"));\n  };\n})();","updated":"2022-02-08T08:47:17.546844"},{"path":"pages/start/startUser/07_extraPages/showDirTeacherDirCanceledWarning/show.ls","text":"(function(){\n  return function(o){\n    var school, lastEvent, d, now, oneWeek, validUntil, isWithinLastWeek;\n    if (o.canceledDirSchools.length === 0) {\n      return false;\n    }\n    school = o.canceledDirSchools[0];\n    lastEvent = log.findLast(\"showDirTeacherDirCanceledWarning\");\n    d = new Date(lastEvent != null ? lastEvent.created : void 8);\n    now = new Date();\n    oneWeek = 1000 * 60 * 60 * 24 * 7;\n    validUntil = school.validUntil;\n    isWithinLastWeek = new Date(validUntil) - now < oneWeek;\n    if (!isWithinLastWeek && lastEvent && now - d < oneWeek) {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0,\n      params: {\n        school: school\n      }\n    });\n    return true;\n  };\n})();","updated":"2022-02-08T08:47:17.546844"},{"path":"pages/level/finishLevel/icons/play/play.ls","text":"(function(){\n  return function(o, icons, backIcons, crownIcon, w, s, done){\n    var playSoundEffect, color;\n    playSoundEffect = inc(\"/lib/util/soundEffectPlay/soundEffectPlay\");\n    color = o.isTest\n      ? Color.yellow[600]\n      : Color.green[500];\n    setTimeout(function(){\n      playSoundEffect(\"finish1\");\n      icons[0].setColor(color);\n      icons[0].css({\n        transform: \"scale(1.2)\"\n      });\n      setTimeout(function(){\n        return icons[0].css({\n          transform: \"scale(1)\",\n          transition: \"all \" + s / 4 + \"ms linear\"\n        });\n      }, 100);\n      if (o.score <= 1) {\n        return setTimeout(done, s * 1);\n      }\n    }, s * 0);\n    if (o.score > 1) {\n      setTimeout(function(){\n        playSoundEffect(\"finish2\");\n        icons[1].setColor(color);\n        icons[1].css({\n          transform: \"scale(1.2)\"\n        });\n        setTimeout(function(){\n          return icons[1].css({\n            transform: \"scale(1)\",\n            transition: \"all \" + s / 4 + \"ms linear\"\n          });\n        }, 100);\n        if (o.score <= 2) {\n          return setTimeout(done, s * 1);\n        }\n      }, s * 1);\n    }\n    if (o.score > 2) {\n      setTimeout(function(){\n        playSoundEffect(\"finish3\");\n        icons[2].setColor(color);\n        icons[2].css({\n          transform: \"scale(1.2)\"\n        });\n        setTimeout(function(){\n          return icons[2].css({\n            transform: \"scale(1)\",\n            transition: \"all \" + s / 4 + \"ms linear\"\n          });\n        }, 100);\n        if (o.score < 3) {\n          return setTimeout(done, s * 1);\n        }\n      }, s * 1.7);\n    }\n    if (o.score === 3) {\n      return setTimeout(function(){\n        playSoundEffect(\"finish4\");\n        crownIcon.css(o.isTest\n          ? {\n            top: \"-\" + w * 0.55 + \"em\",\n            right: \"-\" + w * 0.25 + \"em\",\n            transform: \"rotate(30deg) scale(1)\",\n            opacity: 1\n          }\n          : {\n            top: \"-\" + w * 0.3 + \"em\",\n            right: \"-\" + w * 0.15 + \"em\",\n            transform: \"rotate(30deg) scale(1)\",\n            opacity: 1\n          });\n        return setTimeout(done, s * 1);\n      }, s * 3.5);\n    }\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/gui/divEditable/onMouseDown/fixDoubleClickLineEnd/fix.ls","text":"(function(){\n  return function(d, e){\n    var age;\n    age = new Date() - d.lastMouseDownAt || 1000;\n    d.lastMouseDownAt = new Date();\n    if (age > 500) {\n      return;\n    }\n    return setTimeout(function(){\n      var s, n, ref$;\n      s = window.getSelection();\n      n = s.anchorNode;\n      if (s.type === \"Range\" && ((ref$ = s.focusNode) != null ? ref$.tagName : void 8) === \"DIV\" && s.focusOffset === 0 && s.toString() === \"\\n\") {\n        return inc(\"fixSelectedLineBreak/fix\")(s, n, d, e);\n      } else if (s.type === \"Caret\" && n.nodeType === Node.TEXT_NODE && s.anchorOffset > 0 && s.anchorOffset === n.textContent.length) {\n        return inc(\"fixMissingLastWordSelect/fix\")(s, n, d, e);\n      }\n    });\n  };\n})();","updated":"2021-03-03T13:34:27.105365"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/_t.ls","text":"(function(){\n  return {\n    title: {\n      de: \"Übrigens, mit ANTON-Plus kannst du deinen Avatar aus 32 Tieren und 16 Robotern auswählen!\",\n      en: \"With ANTON Plus you can choose from 32 animals and 16 robots for your avatar!\",\n      fr: \"Avec ANTON-Plus, tu peux choisir ton avatar parmi 32 animaux et 16 robots&nbsp;!\",\n      es: \"¡Con ANTON-Plus puedes escoger entre 32 animales y 16 robots para tu avatar!\",\n      pt: \"A propósito, com ANTON-Plus você pode escolher entre 32 animais e 16 robôs para seu avatar!\"\n    },\n    text1: {\n      de: \"Außerdem ermöglicht dein ANTON-Plus-Beitrag die Weiterentwicklung von ANTON.\",\n      en: \"Moreover, your ANTON Plus contribution supports the further development of ANTON!\",\n      fr: \"De plus, ta contribution te permet de participer au développement d'ANTON&nbsp;!\",\n      es: \"Además, con ANTON-Plus contribuyes a que ANTON se siga desarrollando.\",\n      pt: \"Além disso, com ANTON-Plus você contribui para que ANTON continue se desenvolvendo!\"\n    },\n    soundText: {\n      de: \"ssml:\\n<break time='300ms'/>\\nÜbrigens.\\n<break time='100ms'/>\\nMit ANTON-Plus kannst Du deinen Avatar aus \\n32 Tieren und 16 Robotern auswählen!\\n<break time='500ms'/>\\nAußerdem ermöglicht dein ANTON-Plus-Beitrag \\ndie Weiterentwicklung von ANTON!\",\n      en: \"ssml:\\n<break time='300ms'/>\\nBy the way.\\n<break time='100ms'/>\\nWith ANTON Plus you can choose from 32 animals and 16 robots for your avatar!\\n<break time='500ms'/>\\nMoreover, your ANTON Plus contribution supports the further development of ANTON! \",\n      fr: \"ssml:\\nAvec ANTON-Plus, tu peux choisir ton avatar parmi 32 animaux et 16 robots !\\n<break time='500ms'/>\\nDe plus, ta contribution te permet de participer au développement d'ANTON ! \",\n      es: \"ssml:\\nPor cierto,\\n<break time='100ms'/>\\n¡Con ANTON-Plus puedes escoger entre 32 animales y 16 robots para tu avatar!\\n<break time='500ms'/>\\nAdemás, con tu aportación contribuyes a que ANTON se siga desarrollando.\",\n      pt: \"ssml:\\nA propósito.\\n<break time='100ms'/>\\nCom ANTON-Plus você pode escolher entre 32 animais e 16 robôs para seu \\navatar!\\n<break time='500ms'/>\\nAlém disso, sua contribuição com ANTON-Plus possibilita que ANTON continue se desenvolvendo!\"\n    }\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/checkboxTeacherPrivacy/checkbox.ls","text":"(function(){\n  return function(page){\n    var click, div;\n    click = function(){\n      page.params.acceptPrivacy = !page.params.acceptPrivacy;\n      return div.replaceWith(inc(THISFILE)(page));\n    };\n    return div = Div({\n      display: \"inline-block\",\n      marginBottom: \"2em\",\n      lineHeight: \"1.6em\",\n      maxWidth: \"90%\",\n      width: \"30em\"\n    }).append(inc(\"checkIcon/icon\")(page.params.acceptPrivacy), T(\"iAgree\"), inc(\"termsLink/link\")(T(\"terms\")), T(\"andThe\"), inc(\"privacyLink/link\")(T(\"privacyPolicy\")), T(\"to\")).tap(click);\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/static/antonPlus/1_products/productBlock/_checkOnlineOrProblem/popupProblem/_t.ls","text":"(function(){\n  return {\n    isAmazonDevice: {\n      de: \"ANTON-&#65279;Plus ist neu und kann noch nicht auf Amazon-Fire-Geräten gekauft werden.<br><br>Bitte benutze deinen Browser, um ANTON-&#65279;Plus zu&nbsp;kaufen.\",\n      en: \"ANTON&nbsp;Plus is new and can't be purchased on Amazon Fire devices yet.<br><br>Please use your browser to purchase ANTON-&#65279;Plus.\",\n      fr: \"ANTON-&#65279;Plus est nouveau et ne peut pas encore être acheté sur les appareils Amazon Fire.<br><br>Merci d'utiliser ton navigateur pour acheter ANTON-&#65279;Plus.\",\n      es: \"ANTON-&#65279;Plus es todavía muy nuevo y aún no se puede adquirir en los dispositivos de Amazon Fire.<br><br>Por favor, utiliza tu navegador para comprar ANTON-&#65279;Plus. \",\n      pt: \"ANTON-&#65279;Plus ainda é muito novo e não pode ser adquirido pelos dispositivos do Amazon-Fire.<br><br>Por favor, utilize seu navegador para comprar ANTON-&#65279;Plus. \"\n    },\n    noStorePlugin: {\n      de: \"Bitte aktualisiere deine App, um ANTON-&#65279;Plus zu&nbsp;kaufen.\",\n      en: \"Please update your app to purchase ANTON&nbsp;Plus.\",\n      fr: \"Tu dois mettre ton application à jour pour acheter ANTON-&#65279;Plus.\",\n      es: \"Por favor, actualiza tu aplicación para comprar ANTON-&#65279;Plus.\",\n      pt: \"Por favor, atualize seu aplicativo para comprar ANTON-&#65279;Plus.\"\n    },\n    productsMissing: {\n      de: \"Unerwarteter Fehler: $1\",\n      en: \"Unexpected error: $1\",\n      fr: \"Erreur inattendue&nbsp;: $1\",\n      es: \"Error inesperado: $1\",\n      pt: \"Erro inesperado: $1\"\n    },\n    storeNotReady: {\n      de: \"Du kannst ANTON-&#65279;Plus auf diesem Gerät nicht&nbsp;kaufen.<br><br>Die Verbindung mit dem $1 funktioniert nicht, weil keine Zahlungsdaten hinterlegt wurden oder nicht darauf zugegriffen werden darf.\",\n      en: \"You can't buy ANTON&nbsp;Plus on this device. <br><br>The connection with the $1 isn't working because no payment details have been given or the payment details cannot be accessed.\",\n      fr: \"Tu ne peux pas acheter ANTON-&#65279;Plus sur cet appareil. <br><br>La connexion avec $1 ne fonctionne pas car aucun détails de  paiement n'ont été fournis ou que les détails de paiement ne sont pas accessibles.\",\n      es: \"No es posible comprar ANTON-&#65279;Plus en este dispositivo.<br><br> La conexión con $1 no está funcionando porque no se han registrado los datos de pago o no puedes acceder a ellos.\",\n      pt: \"Não é possível comprar ANTON-&#65279;Plus com este dispositivo.<br><br>A conexão com o $1 não funciona porque nenhum dado de pagamento foi registrado ou não pôde ser acessado.\"\n    }\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/static/antonPlus/3_thanks/_t.ls","text":"(function(){\n  return {\n    antonPlusTitleNoBreak: {\n      de: \"ANTON-&#65279;Plus\",\n      en: \"ANTON&nbsp;Plus\",\n      fr: \"ANTON-&#65279;Plus\",\n      es: \"ANTON-&#65279;Plus\",\n      pt: \"ANTON-&#65279;Plus\"\n    },\n    antonPlusTitle: {\n      de: \"ANTON-Plus\",\n      en: \"ANTON Plus\",\n      fr: \"ANTON-Plus\",\n      es: \"ANTON-Plus\",\n      pt: \"ANTON-Plus\"\n    },\n    antonPlusFamilyNoBreak: {\n      de: \"ANTON-&#65279;Plus&nbsp;Familie\",\n      en: \"ANTON&nbsp;Plus&nbsp;Family\",\n      fr: \"ANTON-&#65279;Plus&nbsp;Famille\",\n      es: \"ANTON-&#65279;Plus&nbsp;Familia\",\n      pt: \"ANTON-&#65279;Plus&nbsp;Familia\"\n    },\n    subscribedUntil: {\n      de: \"Dein $1 läuft bis zum<br>$2.\",\n      en: \"Your $1 lasts until<br>$2.\",\n      fr: \"Ton $1 dure jusqu'au<br>$2.\",\n      es: \"Tu $1 está activo hasta el<br>$2.\",\n      pt: \"Seu $1 está ativo até o <br>$2.\"\n    },\n    thanksForYourSupport: {\n      de: \"Vielen Dank, dass du ANTON unterstützt!\",\n      en: \"Thanks for your support!\",\n      fr: \"Merci de ton aide&nbsp;!\",\n      es: \"¡Gracias por tu apoyo!\",\n      pt: \"Agradecemos por contribuir com ANTON!\"\n    },\n    activationSuccess: {\n      de: \"$1 wurde erfolgreich aktiviert!\",\n      en: \"$1 was successfully activated!\",\n      fr: \"$1 a bien été activé&nbsp;!\",\n      es: \"¡$1 ha sido activado!\",\n      pt: \"$1 foi ativado com sucesso!\"\n    },\n    antonPlusTeacherNoBreak: {\n      de: \"ANTON-&#65279;Plus&nbsp;Lehrer\",\n      en: \"ANTON&nbsp;Plus&nbsp;Teacher\",\n      fr: \"ANTON-&#65279;Plus&nbsp;Prof\",\n      es: \"ANTON-&#65279;Plus&nbsp;Docente\",\n      pt: \"ANTON-&#65279;Plus&nbsp;Professor\"\n    },\n    antonPlusUrl: {\n      de: \"anton-plus\",\n      en: \"anton-plus\",\n      fr: \"anton-plus\",\n      es: \"anton-plus\",\n      pt: \"anton-plus\"\n    }\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/static/antonPlus/4_thanksWhy/_t.ls","text":"(function(){\n  return {\n    antonPlusTitleNoBreak: {\n      de: \"ANTON-&#65279;Plus\",\n      en: \"ANTON&nbsp;Plus\",\n      fr: \"ANTON-&#65279;Plus\",\n      es: \"ANTON-&#65279;Plus\",\n      pt: \"ANTON-&#65279;Plus\"\n    },\n    antonPlusTitle: {\n      de: \"ANTON-Plus\",\n      en: \"ANTON Plus\",\n      fr: \"ANTON-Plus\",\n      es: \"ANTON-Plus\",\n      pt: \"ANTON-Plus\"\n    },\n    helpWhatsImportantText: {\n      de: \"Deine Angabe hilft uns, besser zu verstehen, was dir wichtig&nbsp;ist.\",\n      en: \"Your information helps us to understand what's important to you.\",\n      fr: \"Ces informations nous permettent de comprendre ce qui est important pour toi.\",\n      es: \"Tu información nos ayuda a entender mejor lo que es importante para ti.\",\n      pt: \"Sua informação nos ajuda a compreender melhor o que é importante para você.\"\n    },\n    whyBought: {\n      de: \"Was war dein Hauptgrund, warum du gekauft&nbsp;hast?\",\n      en: \"What was the main reason for your purchase?\",\n      fr: \"Quelle était la raison principale de ton achat&nbsp;?\",\n      es: \"¿Cuál fue el motivo principal de tu compra?\",\n      pt: \"Qual foi o motivo principal da sua compra?\"\n    },\n    optionOffline: {\n      de: \"Download/Offline-Funktion\",\n      en: \"Download/offline features\",\n      fr: \"Fonction hors ligne/téléchargement\",\n      es: \"Descarga/Funciones fuera de línea\",\n      pt: \"Baixar/Função offline\"\n    },\n    optionBetterAvatar: {\n      de: \"Bessere Avatar-Funktionen\",\n      en: \"Better avatar features\",\n      fr: \"Options pour l'avatar\",\n      es: \"Más opciones par el avatar\",\n      pt: \"Mais funções para o avatar\"\n    },\n    optionSupportAnton: {\n      de: \"ANTON unterstützen\",\n      en: \"Support ANTON\",\n      fr: \"Aider ANTON\",\n      es: \"Ayuda ANTON\",\n      pt: \"Ajuda ANTON\"\n    },\n    antonPlusUrl: {\n      de: \"anton-plus\",\n      en: \"anton-plus\",\n      fr: \"anton-plus\",\n      es: \"anton-plus\",\n      pt: \"anton-plus\"\n    }\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"addons/navbar/bar/tabs/tab/more/item.ls","text":"(function(){\n  return function(barDiv){\n    var i, moreItems;\n    i = _.indexOf(barDiv.items, \"more\") + 1;\n    moreItems = _.slice(barDiv.items, i);\n    return {\n      navCategory: \"more\",\n      title: T(\"more\"),\n      selected: in$(app.currentPage.navCategory, moreItems),\n      icon: path(\"/lib/svg/icon/menu-dots-small.svg\"),\n      moreItems: moreItems,\n      tap: function(div){\n        return inc(\"moreMenu/menu\")(div);\n      }\n    };\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2021-11-16T15:05:26.508539"},{"path":"lib/init/blockOldBrowsers/detectOldFirefox/detect.ls","text":"(function(){\n  return function(agent){\n    var isFirefox, r, v, ref$;\n    isFirefox = _.includes(agent, \"Firefox\") && !_.includes(agent, \"Seamonkey\");\n    if (!isFirefox) {\n      return false;\n    }\n    r = new RegExp(\"Firefox/([0-9]+).\");\n    v = (ref$ = r.exec(agent)) != null ? ref$[1] : void 8;\n    if (_.parseInt(v) < 49) {\n      return true;\n    }\n    return false;\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"lib/init/blockOldBrowsers/detectOldSafari/detect.ls","text":"(function(){\n  return function(agent){\n    var isIE, isEdge, isSafari;\n    if (_.includes(agent.toLowerCase(), \"bing\")) {\n      return false;\n    }\n    isIE = false || !!document.documentMode;\n    isEdge = !isIE && !!window.StyleMedia;\n    isSafari = _.includes(agent, \"Safari\") && !isEdge && !_.includes(agent, \"CriOS\") && !_.includes(agent, \"Chrome\");\n    if (!isSafari) {\n      return false;\n    }\n    if (!/Version\\/[1-8]\\./.test(agent)) {\n      return false;\n    }\n    return true;\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/01_page_email/avatar/avatar.ls","text":"(function(){\n  return function(page){\n    var avatar;\n    avatar = page.userDescription.avatar;\n    if (!avatar) {\n      return;\n    }\n    return inc(\"/lib/gui/avatar/avatar\")(avatar, \"half\").css({\n      marginBottom: \"0.1em\",\n      width: \"5em\",\n      height: \"5em\",\n      borderRadius: \"999px\"\n    });\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/02_page_loginCode/buttonPrintOrSave/button.ls","text":"(function(){\n  return function(page, loginCode){\n    var ud, tap;\n    if (engine.isMobileApp) {\n      return;\n    }\n    ud = page.userDescription;\n    tap = function(){\n      var userCard;\n      userCard = inc(\"/../qrcode/userCard/userCard\")({\n        loginCode: loginCode,\n        name: ud.displayName || ud.name\n      });\n      return inc(\"/lib/util/print/print\")({\n        div: userCard,\n        title: T(\"myLoginCode\")\n      });\n    };\n    return Button({\n      label: T(\"print\"),\n      icon: path(\"/lib/svg/shape/print.svg\"),\n      iconColor: Color.grey[600]\n    }).css({\n      marginTop: \"1.5em\",\n      marginRight: \"1em\"\n    }).tap(tap);\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"lib/gui/divEditable/setSoftKeyboardEnabled/calcMode/calcSupportsInputMode/calc.ls","text":"(function(){\n  return function(){\n    var ua, isIOS, v, chromeVersion;\n    ua = navigator.userAgent;\n    isIOS = ua.match(/(iPhone|iPad|iPod)/);\n    v = ua.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n    if (isIOS && (+(v != null ? v[1] : void 8) > 12 || +(v != null ? v[1] : void 8) === 12 && +v[2] >= 5)) {\n      return true;\n    }\n    chromeVersion = ua.match(/(Chrome|Chromium|CriOS)\\/([0-9]+)\\./);\n    if (+(chromeVersion != null ? chromeVersion[2] : void 8) > 65) {\n      return true;\n    }\n    return false;\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/tooltip/_tooltip/tooltip.ls","text":"(function(){\n  return function(o){\n    var startedAt, remove, div, div1, div2, div3;\n    startedAt = new Date();\n    remove = function(duration){\n      var d;\n      duration == null && (duration = 0);\n      d = Math.max(0, duration - (new Date() - startedAt));\n      return setTimeout(function(){\n        return div.remove();\n      }, d);\n    };\n    div = Div({\n      position: \"absolute\",\n      bottom: 0,\n      left: 0,\n      right: 0,\n      height: \"100%\",\n      display: \"flex\",\n      flexDirection: \"column\",\n      justifyContent: \"flex-end\",\n      pointerEvents: \"none\",\n      filter: \"drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.4))\",\n      zIndex: 3000\n    }).html(div1 = inc(\"div1/div1\")(o), div2 = inc(\"div2/div2\")(o), div3 = inc(\"div3/div3\")(o));\n    div.div1 = div1;\n    div.removeTooltip = remove;\n    return div;\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/cornerNew/corner.ls","text":"(function(){\n  return function(key, o){\n    if (!key.tooltipMulti) {\n      return;\n    }\n    return Div({\n      position: \"absolute\",\n      top: \"0.2em\",\n      right: \"0.2em\",\n      background: Color.grey[350],\n      width: \"4px\",\n      height: \"4px\",\n      borderRadius: \"50%\"\n    });\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/fromTop.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.y = -o.newScene.sceneHeight * (1 - percentage);\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/fromLeft.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.x = -o.newScene.sceneWidth * (1 - percentage);\n      o.oldScene.x = o.oldScene.sceneWidth * percentage / 4;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/fromRight.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.x = o.newScene.sceneWidth * (1 - percentage);\n      o.oldScene.x = -o.oldScene.sceneWidth * percentage / 4;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/popShrinkGrow.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.newScene.sceneWidth;\n    h = o.newScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.oldScene.scale.set(1 - percentage);\n      o.newScene.scale.set(percentage);\n      o.oldScene.y = (h - o.oldScene.sceneHeight * o.oldScene.scale.y) / 2;\n      o.newScene.y = (h - o.newScene.sceneHeight * o.newScene.scale.y) / 2;\n      o.newScene.x = (w - o.newScene.sceneWidth * o.newScene.scale.x) / 2 - (1 - percentage) * w / 4;\n      o.oldScene.x = (w - o.oldScene.sceneWidth * o.oldScene.scale.x) / 2 + w / 4 + (1 - percentage) * w / 4;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/start/startUser/02_subscribeUserLog/progressBar/progressBar.ls","text":"(function(){\n  return function(){\n    var update, div, fill;\n    update = function(total, totalDone){\n      var w;\n      if (total === 0) {\n        return;\n      }\n      div.css({\n        visibility: \"visible\"\n      });\n      w = _.round(totalDone / total * 100) + \"%\";\n      return fill.css({\n        width: w\n      });\n    };\n    div = Div().css({\n      margin: \"0.5em auto 0\",\n      width: \"5em\",\n      height: \"0.6em\",\n      backgroundColor: Color.grey[100],\n      borderRadius: \"5px\",\n      overflow: \"hidden\",\n      opacity: 0.99\n    }).append(fill = Div().css({\n      width: \"0\",\n      backgroundColor: Color.grey[300],\n      height: \"100%\",\n      transition: \"width 200ms\"\n    }));\n    div.update = update;\n    return div;\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/start/startUser/03_subscribeGroupsAndSchools/_calcUseOnInitDone/calc.ls","text":"(function(){\n  return function(){\n    var useOnInitDone;\n    return useOnInitDone = engine.isMobileApp && engine.networkConnection.isOnline != null && engine.networkConnection.isOnline === false;\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/start/startUser/03_subscribeGroupsAndSchools/subscribeGroupLog/checkAndSyncLog/checkAndSyncLog.ls","text":"(function(){\n  return function(groupCode, groupLog, onDone){\n    var logOk, handleDeletedLog, syncLog, onLogDone;\n    logOk = function(){\n      return (groupLog != null ? groupLog.findLast(\"setGroupCode\") : void 8) != null;\n    };\n    handleDeletedLog = function(){\n      var e;\n      if (groupLog.findLast(\"groupIsDeleted\") == null) {\n        return false;\n      }\n      e = log.findLast({\n        event: \"isGroupMember\",\n        groupCode: groupLog.id()\n      });\n      log.deleteEvent(e);\n      log.log({\n        event: \"debugDeletedIsGroupMemberEvent\",\n        groupCode: groupLog.id()\n      });\n      return true;\n    };\n    syncLog = function(){\n      return groupLog.sync(function(error){\n        if (!logOk() || error) {\n          if (handleDeletedLog()) {\n            return onLogDone();\n          } else {\n            return onDone({\n              error: \"group\",\n              log: groupLog\n            });\n          }\n        } else {\n          return onLogDone();\n        }\n      });\n    };\n    onLogDone = function(){\n      window.groupLogs[groupCode] = groupLog;\n      return onDone();\n    };\n    if (logOk()) {\n      return onLogDone();\n    } else {\n      return syncLog();\n    }\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/start/startUser/03_subscribeGroupsAndSchools/subscribeGroupLog/subscribe.ls","text":"(function(){\n  return function(groupCode, onDone){\n    var useOnInitDone, checkAndSync;\n    useOnInitDone = inc(\"../_calcUseOnInitDone/calc\")();\n    checkAndSync = function(groupLog){\n      return inc(\"checkAndSyncLog/checkAndSyncLog\")(groupCode, groupLog, onDone);\n    };\n    return Logger.subscribe({\n      logId: groupCode,\n      filter: \"subscribeGroup\",\n      removeOldEvents: true,\n      onInitDone: useOnInitDone ? checkAndSync : void 8,\n      onSubscribe: !useOnInitDone ? checkAndSync : void 8\n    });\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/start/startUser/03_subscribeGroupsAndSchools/subscribeSchoolLog/checkAndSyncLog/checkAndSyncLog.ls","text":"(function(){\n  return function(schoolCode, schoolLog, onDone){\n    var logOk, handleDeletedLog, syncLog, onLogDone;\n    logOk = function(){\n      return (schoolLog != null ? schoolLog.findLast(\"setSchoolCode\") : void 8) != null;\n    };\n    handleDeletedLog = function(){\n      var e;\n      if (schoolLog.findLast(\"schoolIsDeleted\") == null) {\n        return false;\n      }\n      e = log.findLast({\n        event: \"isSchoolMember\",\n        schoolCode: schoolLog.id()\n      });\n      log.deleteEvent(e);\n      log.log({\n        event: \"debugDeletedIsSchoolMemberEvent\",\n        schoolCode: schoolLog.id()\n      });\n      return true;\n    };\n    syncLog = function(){\n      return schoolLog.sync(function(error){\n        if (!logOk() || error) {\n          if (handleDeletedLog()) {\n            return onLogDone();\n          } else {\n            return onDone({\n              error: \"school\",\n              log: schoolLog\n            });\n          }\n        } else {\n          return onLogDone();\n        }\n      });\n    };\n    onLogDone = function(){\n      window.schoolLogs[schoolCode] = schoolLog;\n      return onDone();\n    };\n    if (logOk()) {\n      return onLogDone();\n    } else {\n      return syncLog();\n    }\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/start/startUser/03_subscribeGroupsAndSchools/subscribeSchoolLog/subscribe.ls","text":"(function(){\n  return function(schoolCode, onDone){\n    var useOnInitDone, checkAndSync;\n    useOnInitDone = inc(\"../_calcUseOnInitDone/calc\")();\n    checkAndSync = function(schoolLog){\n      return inc(\"checkAndSyncLog/checkAndSyncLog\")(schoolCode, schoolLog, onDone);\n    };\n    return Logger.subscribe({\n      logId: schoolCode,\n      filter: \"subscribeSchool\",\n      removeOldEvents: true,\n      onInitDone: useOnInitDone ? checkAndSync : void 8,\n      onSubscribe: !useOnInitDone ? checkAndSync : void 8\n    });\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/start/startUser/04_logStartEvents/debugDeviceLogDetails/log.ls","text":"(function(){\n  return function(){\n    return typeof deviceLog != 'undefined' && deviceLog !== null ? typeof deviceLog.getDetails == 'function' ? deviceLog.getDetails(function(d){\n      return log.log({\n        event: \"debugDeviceLogDetails\",\n        details: _.omit(d, \"logInfo\")\n      });\n    }) : void 8 : void 8;\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/start/startUser/04_logStartEvents/deviceLogin/log.ls","text":"(function(){\n  return function(logId, loginType){\n    return deviceLog.log({\n      event: \"deviceUserLogin\",\n      value: {\n        logId: logId,\n        loginType: loginType\n      }\n    });\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/start/startUser/04_logStartEvents/currentPlan/log.ls","text":"(function(){\n  return function(){\n    var planPath;\n    return planPath = inc(\"/data/content/calcCurrentPlan/calc\")();\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"data/school/calcSchoolDescription/calcIsAdminAndDirValues/calc.ls","text":"(function(){\n  return function(userLog, schoolDescription){\n    var sd, e, properties, i$, len$, p, v;\n    sd = schoolDescription;\n    e = log.findLast({\n      event: \"isSchoolMember\",\n      schoolCode: sd.schoolCode\n    });\n    if (!(e != null && e.dirRole)) {\n      return;\n    }\n    properties = [\"isAdmin\", \"dirRole\", \"dirTitle\", \"dirName\", \"dirSurname\", \"dirClass\", \"dirReference\"];\n    for (i$ = 0, len$ = properties.length; i$ < len$; ++i$) {\n      p = properties[i$];\n      if (v = e[p]) {\n        sd[p] = v;\n      }\n    }\n    if (sd.dirRole != null) {\n      sd.dirDisplayName = inc(\"/data/school/calcDirDisplayName/calc\")(sd, \"long\");\n    }\n    return sd;\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/calc/formattedScore/calc.ls","text":"(function(){\n  return function(score, highscoreType){\n    return inc(highscoreType + \"/format\")(score);\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/calc/lastUserScore/calc.ls","text":"(function(){\n  return function(o){\n    var eventName, e;\n    eventName = inc(\"../eventName/calc\")(o.gameId);\n    e = log.findLast({\n      event: eventName,\n      difficulty: o.difficulty\n    });\n    if (!e && o.difficulty === 2) {\n      e = _.findLast(log.list({\n        event: eventName\n      }), function(event){\n        return event.difficulty == null;\n      });\n    }\n    return o.lastUserScore = e != null ? e.score : void 8;\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/load/load.ls","text":"(function(){\n  return function(o, onCompleted){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/games/highscores5/get\"),\n      params: {\n        gameId: o.gameId,\n        difficulty: o.difficulty,\n        logId: log.id(),\n        ascending: o.ascending,\n        firstBlockLength: 20,\n        userBlockLength: 21,\n        lastBlockLength: 10,\n        latestUserScore: o.showLastUserScore ? o.lastUserScore : void 8,\n        period: o.period,\n        users: o.users\n      },\n      queryInfo: {\n        gameId: o.gameId,\n        difficulty: o.difficulty,\n        period: o.period,\n        users: o.users\n      },\n      onCompleted: function(result){\n        o.highscores = result.highscores;\n        o.bestUserScore = result.bestUserScore;\n        return onCompleted();\n      },\n      onError: function(error){\n        debug(error);\n        return inc(\"../popupError/popup\")(o, \"error\");\n      },\n      onOffline: function(){\n        return inc(\"../popupError/popup\")(o, \"offline\");\n      }\n    });\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupGameResult/avatar/avatar.ls","text":"(function(){\n  return function(){\n    var userDescription;\n    userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    return inc(\"/lib/gui/avatar/avatar\")(userDescription.avatar, \"half\").css({\n      display: \"inline-block\",\n      width: \"7em\",\n      height: \"7em\",\n      borderRadius: \"999px\",\n      filter: 'drop-shadow(0 0 0.5em rgba(0, 0, 0, 0.2))'\n    });\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupGameResult/bestScore/bestScore.ls","text":"(function(){\n  return function(o){\n    var score;\n    score = inc(\"../../calc/formattedScore/calc\")(o.bestUserScore.score, o.highscoreType);\n    return Div().html(T(\"bestScore\", score)).css({\n      marginBottom: \"1em\"\n    });\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupGameResult/popup.ls","text":"(function(){\n  return function(o){\n    var bestUserScore, lastScoreIsHighscore, close, html, popup;\n    bestUserScore = o.bestUserScore;\n    lastScoreIsHighscore = bestUserScore.score === o.lastUserScore;\n    close = function(){\n      return inc('../popupHighscores/popup')(o);\n    };\n    html = Div().append(inc(\"title/title\")(), lastScoreIsHighscore && bestUserScore.position < 3\n      ? inc(\"medal/medal\")(bestUserScore.position)\n      : inc(\"avatar/avatar\")(), inc(\"text/text\")(lastScoreIsHighscore, bestUserScore), inc(\"lastScore/lastScore\")(o), !lastScoreIsHighscore ? inc(\"bestScore/bestScore\")(o) : void 8, inc(\"button/button\")(close));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: html,\n      onClose: close\n    });\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/header/click/click.ls","text":"(function(){\n  return function(o){\n    var click;\n    return click = function(item){\n      var that;\n      if ((that = item.period) != null) {\n        o.period = that;\n      }\n      if ((that = item.users) != null) {\n        o.users = that;\n      }\n      log.log({\n        event: \"setHighscoreFilter\",\n        period: o.period,\n        users: o.users\n      });\n      o.showLastUserScore = false;\n      o.animationOnShow = false;\n      return inc(\"../../../show\")(o);\n    };\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/rows/rowUser/row.ls","text":"(function(){\n  return function(score, o){\n    return Div().cssClass({\n      display: \"flex\",\n      borderBottom: \"1px solid  \" + Color.grey[300],\n      padding: \"0.2em 0 0.3em\",\n      minHeight: \"3em\",\n      background: score.isUserScore ? Color.grey[200] : void 8\n    }).addClass(score.isUserScore ? \"currentUser\" : void 8).append(inc(\"position/position\")(score, o), inc(\"avatar/avatar\")(score), inc(\"name/name\")(score), inc(\"score/score\")(score, o));\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/score.ls","text":"(function(){\n  return function(o){\n    var e, key, ref$, value;\n    e = {\n      event: inc(\"calc/eventName/calc\")(o.gameId),\n      score: o.score,\n      isDebug: engine.isDebug\n    };\n    if (o.additionalData != null) {\n      for (key in ref$ = o.additionalData) {\n        value = ref$[key];\n        e[key] = value;\n      }\n    }\n    return log.log(e);\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"addons/topbar2/tools/download/icon/smallDownloadBar/bar.ls","text":"(function(){\n  return function(manager, id){\n    return manager.getDownloadBar(id, {\n      showLoadingOnly: true\n    }).css({\n      width: \"1em\",\n      height: \"0.3em\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbar2/tools/topRightCustom/topRightCustom.ls","text":"(function(){\n  return function(o){\n    if (o.topRightCustom == null) {\n      return;\n    }\n    return o.topRightCustom();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbarGame/top/top.ls","text":"(function(){\n  return function(o){\n    if (!o.top) {} else {\n      return o.top;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"data/user/isBeta/get.ls","text":"(function(){\n  return function(){\n    var ref$, ref1$;\n    return (ref$ = typeof log != 'undefined' && log !== null ? (ref1$ = log.findLast(\"isBeta\")) != null ? ref1$.value : void 8 : void 8) != null ? ref$ : false;\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"lib/lottie/anton-logo.json","text":"{\"v\":\"5.1.7\",\"fr\":25,\"ip\":0,\"op\":50,\"w\":488,\"h\":310,\"nm\":\"anton-logo\",\"ddd\":0,\"assets\":[],\"layers\":[{\"ddd\":0,\"ind\":1,\"ty\":4,\"nm\":\"Shape Layer 1\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[244,155,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ty\":\"rc\",\"d\":1,\"s\":{\"a\":0,\"k\":[116.27,90.031],\"ix\":2},\"p\":{\"a\":0,\"k\":[0,0],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":4},\"nm\":\"Rectangle Path 1\",\"mn\":\"ADBE Vector Shape - Rect\",\"hd\":false},{\"ty\":\"st\",\"c\":{\"a\":0,\"k\":[1,1,1,1],\"ix\":3},\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":0,\"ix\":5},\"lc\":1,\"lj\":1,\"ml\":4,\"nm\":\"Stroke 1\",\"mn\":\"ADBE Vector Graphic - Stroke\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[1,1,1,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[-218.865,-140.984],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Rectangle 1\",\"np\":3,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":50,\"st\":0,\"bm\":0},{\"ddd\":0,\"ind\":2,\"ty\":4,\"nm\":\"anton-logo Outlines\",\"sr\":1,\"ks\":{\"o\":{\"a\":0,\"k\":100,\"ix\":11},\"r\":{\"a\":0,\"k\":0,\"ix\":10},\"p\":{\"a\":0,\"k\":[244,157,0],\"ix\":2},\"a\":{\"a\":0,\"k\":[244,152.5,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100,100],\"ix\":6}},\"ao\":0,\"shapes\":[{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[0,0],[0,0],[0,0],[4.521,0],[0,-4.522],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[4.101,0],[0,-6.566],[0,0],[0,0],[0,0],[-4.481,0],[0,4.483],[0,0],[0,0],[0,0],[0,0],[-4.107,0],[0,6.635],[0,0]],\"o\":[[0,0],[0,0],[0,-4.522],[-4.522,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.195,-3.464],[-6.566,0],[0,0],[0,0],[0,0],[0,4.483],[4.482,0],[0,0],[0,0],[0,0],[0,0],[2.226,3.451],[6.635,0],[0,0],[0,0]],\"v\":[[43.781,-9.525],[43.781,-9.525],[43.781,-46.503],[35.581,-54.704],[27.381,-46.503],[27.381,-9.525],[27.38,-9.525],[27.38,27.046],[13.108,4.827],[-21.49,-48.656],[-21.817,-49.171],[-31.873,-54.704],[-43.781,-42.796],[-43.781,-31.775],[-43.781,-0.9],[-43.781,46.576],[-35.653,54.704],[-27.525,46.576],[-27.525,-0.9],[-27.524,-0.9],[-27.524,-27.027],[21.636,49.193],[31.749,54.704],[43.781,42.671],[43.781,29.85]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[443.403,130.075],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Group 1\",\"np\":2,\"cix\":2,\"ix\":1,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[4.522,0],[0,-4.522],[0,0],[0,0],[0,0],[0,0],[0,0],[4.102,0],[0,-6.565],[0,0],[0,0],[0,0],[-4.482,0],[0,4.482],[0,0],[0,0],[0,0],[0,0],[-4.106,0],[0,6.635],[0,0]],\"o\":[[-4.521,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.196,-3.465],[-6.566,0],[0,0],[0,0],[0,0],[0,4.482],[4.482,0],[0,0],[0,0],[0,0],[0,0],[2.225,3.451],[6.635,0],[0,0],[0,-4.522]],\"v\":[[35.58,-54.704],[27.38,-46.503],[27.38,-9.524],[27.38,27.046],[13.107,4.826],[-21.491,-48.657],[-21.817,-49.171],[-31.875,-54.704],[-43.781,-42.797],[-43.781,-31.774],[-43.781,-0.899],[-43.781,46.576],[-35.653,54.704],[-27.524,46.576],[-27.524,-0.899],[-27.524,-6.2],[-27.524,-27.026],[21.635,49.193],[31.748,54.704],[43.781,42.671],[43.781,-46.503]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[148.976,130.075],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Group 2\",\"np\":2,\"cix\":2,\"ix\":2,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[0,-14.626],[5.123,-6.299],[10.222,0],[5.95,7.353],[0,13.405],[-5.585,6.833],[-10.052,0],[-5.695,-6.987]],\"o\":[[0,14.679],[-5.747,7.064],[-9.942,0],[-5.589,-6.904],[0,-13.353],[5.949,-7.28],[10.222,0],[5.074,6.23]],\"v\":[[30.363,-0.036],[22.853,30.714],[0.071,40.792],[-22.013,30.572],[-30.436,-0.036],[-22.019,-30.456],[0.217,-40.574],[22.926,-30.605]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ind\":1,\"ty\":\"sh\",\"ix\":2,\"ks\":{\"a\":0,\"k\":{\"i\":[[15.127,0],[9.286,-10.398],[0,-17.585],[-8.781,-9.823],[-15.378,0],[-9.389,10.631],[0,17.295],[8.802,9.92]],\"o\":[[-15.582,0],[-8.733,9.779],[0,17.732],[9.336,10.451],[15.181,0],[8.823,-9.991],[0,-17.392],[-9.362,-10.555]],\"v\":[[0.217,-56.255],[-35.261,-41.419],[-48.422,-0.182],[-35.189,41.346],[0.071,56.255],[35.124,41.087],[48.421,-0.036],[35.156,-41.197]],\"c\":true},\"ix\":2},\"nm\":\"Path 2\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"mm\",\"mm\":1,\"nm\":\"Merge Paths 1\",\"mn\":\"ADBE Vector Filter - Merge\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[337.203,129.967],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Group 3\",\"np\":4,\"cix\":2,\"ix\":3,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[4.324,0],[0,0],[0,-4.323],[-4.324,0],[0,0],[0,0],[-4.779,0],[0,4.78],[0,0],[0,0],[0,4.323]],\"o\":[[0,0],[-4.324,0],[0,4.323],[0,0],[0,0],[0,4.78],[4.782,0],[0,0],[0,0],[4.324,0],[0,-4.323]],\"v\":[[33.67,-54.704],[-33.67,-54.704],[-41.51,-46.864],[-33.67,-39.024],[-8.561,-39.024],[-8.561,46.035],[0.107,54.704],[8.777,46.035],[8.777,-39.024],[33.67,-39.024],[41.51,-46.864]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[245.687,130.075],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Group 4\",\"np\":2,\"cix\":2,\"ix\":4,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[-2.927,8.798],[0,0],[0,0]],\"o\":[[0,0],[0,0],[2.821,-7.81]],\"v\":[[0.013,-32.503],[13.891,6.508],[-13.806,6.508]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ind\":1,\"ty\":\"sh\",\"ix\":2,\"ks\":{\"a\":0,\"k\":{\"i\":[[0,0],[4.467,0],[1.619,-4.162],[0,0],[-1.537,-2.246],[-2.722,0],[-1.215,3.162],[0,0],[0,0],[0,0],[-3.5,0],[-1.57,2.294],[1.006,2.591]],\"o\":[[-1.618,-4.165],[-4.465,0],[0,0],[-0.987,2.537],[1.537,2.249],[3.386,0],[0,0],[0,0],[0,0],[1.268,3.262],[2.78,0],[1.57,-2.294],[0,0]],\"v\":[[10.085,-48.064],[0.068,-54.921],[-9.947,-48.069],[-45.639,43.693],[-44.761,51.331],[-37.96,54.921],[-30.267,49.633],[-19.754,22.26],[19.322,22.26],[29.924,49.549],[37.772,54.921],[44.719,51.257],[45.62,43.454]],\"c\":true},\"ix\":2},\"nm\":\"Path 2\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"mm\",\"mm\":1,\"nm\":\"Merge Paths 1\",\"mn\":\"ADBE Vector Filter - Merge\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[47.39,129.858],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Group 5\",\"np\":4,\"cix\":2,\"ix\":5,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[0.59,0],[0.59,0.06],[0.57,0.12],[0.56,0.17],[0.54,0.22],[0.51,0.28],[0.49,0.32],[0.45,0.37],[0.41,0.42],[0.37,0.46],[0.32,0.49],[0.28,0.52],[0.23,0.54],[0.17,0.56],[0.11,0.58],[0.06,0.58],[0,0.58],[-0.06,0.59],[-0.12,0.57],[-0.17,0.56],[-0.22,0.54],[-0.27,0.51],[-0.33,0.49],[-0.37,0.45],[-0.42,0.41],[-0.46,0.37],[-0.49,0.32],[-0.52,0.27],[-0.54,0.23],[-0.56,0.17],[-0.58,0.11],[-0.58,0.06],[-1.17,-0.12],[-0.58,-0.12],[-0.56,-0.17],[-0.54,-0.22],[-0.52,-0.28],[-0.48,-0.33],[-0.46,-0.37],[-0.41,-0.42],[-0.37,-0.46],[-0.33,-0.49],[-0.27,-0.52],[-0.22,-0.54],[-0.17,-0.56],[-0.12,-0.58],[-0.05,-0.58],[0,-0.59],[0.06,-0.59],[0.12,-0.57],[0.17,-0.56],[0.23,-0.54],[0.28,-0.51],[0.32,-0.49],[0.37,-0.45],[0.42,-0.41],[0.45,-0.37],[0.5,-0.32],[0.52,-0.27],[0.54,-0.23],[0.56,-0.17],[0.57,-0.11],[0.59,-0.06]],\"o\":[[-0.58,0],[-0.58,-0.06],[-0.58,-0.11],[-0.56,-0.17],[-0.54,-0.23],[-0.52,-0.27],[-0.49,-0.32],[-0.46,-0.37],[-0.42,-0.41],[-0.37,-0.45],[-0.33,-0.49],[-0.27,-0.51],[-0.22,-0.54],[-0.17,-0.56],[-0.12,-0.57],[-0.06,-0.59],[0,-0.59],[0.06,-0.58],[0.11,-0.58],[0.17,-0.56],[0.23,-0.54],[0.28,-0.52],[0.32,-0.49],[0.37,-0.46],[0.41,-0.42],[0.45,-0.37],[0.49,-0.33],[0.51,-0.28],[0.54,-0.22],[0.56,-0.17],[0.57,-0.12],[1.18,-0.12],[0.59,0.06],[0.57,0.11],[0.56,0.17],[0.54,0.23],[0.52,0.27],[0.5,0.32],[0.45,0.37],[0.42,0.41],[0.37,0.45],[0.32,0.49],[0.28,0.51],[0.23,0.54],[0.17,0.56],[0.12,0.57],[0.06,0.59],[0,0.58],[-0.05,0.58],[-0.12,0.58],[-0.17,0.56],[-0.22,0.54],[-0.27,0.52],[-0.33,0.49],[-0.37,0.46],[-0.41,0.42],[-0.46,0.37],[-0.48,0.32],[-0.52,0.28],[-0.54,0.22],[-0.56,0.17],[-0.58,0.12],[-0.58,0.06]],\"v\":[[0,17.773],[-1.77,17.683],[-3.51,17.413],[-5.22,16.983],[-6.88,16.393],[-8.47,15.633],[-9.99,14.733],[-11.41,13.683],[-12.72,12.493],[-13.91,11.183],[-14.96,9.763],[-15.87,8.243],[-16.62,6.653],[-17.21,4.993],[-17.64,3.283],[-17.91,1.543],[-18,-0.227],[-17.91,-2.007],[-17.64,-3.747],[-17.21,-5.457],[-16.62,-7.117],[-15.87,-8.707],[-14.96,-10.227],[-13.91,-11.647],[-12.72,-12.957],[-11.41,-14.147],[-9.99,-15.197],[-8.47,-16.097],[-6.88,-16.857],[-5.22,-17.447],[-3.51,-17.877],[-1.77,-18.147],[1.77,-18.147],[3.52,-17.877],[5.23,-17.447],[6.89,-16.857],[8.48,-16.097],[9.99,-15.197],[11.42,-14.147],[12.73,-12.957],[13.92,-11.647],[14.97,-10.227],[15.87,-8.707],[16.62,-7.117],[17.22,-5.457],[17.65,-3.747],[17.91,-2.007],[18,-0.227],[17.91,1.543],[17.65,3.283],[17.22,4.993],[16.62,6.653],[15.87,8.243],[14.97,9.763],[13.92,11.183],[12.73,12.493],[11.42,13.683],[9.99,14.733],[8.48,15.633],[6.89,16.393],[5.23,16.983],[3.52,17.413],[1.77,17.683]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"mm\",\"mm\":4,\"nm\":\"Merge Paths 1\",\"mn\":\"ADBE Vector Filter - Merge\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[168.007,17.773],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833,0.833],\"y\":[0.833,0.833]},\"o\":{\"x\":[0.167,0.167],\"y\":[0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":14,\"s\":[0,0],\"e\":[120,120]},{\"i\":{\"x\":[0.833,0.833],\"y\":[0.833,0.833]},\"o\":{\"x\":[0.167,0.167],\"y\":[0.167,0.167]},\"n\":[\"0p833_0p833_0p167_0p167\",\"0p833_0p833_0p167_0p167\"],\"t\":19,\"s\":[120,120],\"e\":[100,100]},{\"t\":21}],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Group 8\",\"np\":3,\"cix\":2,\"ix\":6,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[0.58,0],[0.591,0.06],[0.57,0.12],[0.559,0.17],[0.54,0.22],[0.509,0.28],[0.49,0.32],[0.46,0.37],[0.409,0.42],[0.37,0.45],[0.321,0.49],[0.27,0.52],[0.231,0.54],[0.17,0.56],[0.109,0.58],[0.05,0.58],[0,0.58],[-0.06,0.58],[-0.121,0.57],[-0.17,0.56],[-0.22,0.54],[-0.279,0.51],[-0.32,0.49],[-0.37,0.45],[-0.42,0.41],[-0.46,0.37],[-0.49,0.32],[-0.521,0.27],[-0.54,0.23],[-0.561,0.17],[-0.58,0.11],[-0.58,0.06],[-1.181,-0.11],[-0.57,-0.12],[-0.56,-0.17],[-0.54,-0.22],[-0.51,-0.28],[-0.49,-0.32],[-0.45,-0.37],[-0.409,-0.42],[-0.37,-0.46],[-0.32,-0.49],[-0.28,-0.52],[-0.23,-0.54],[-0.17,-0.56],[-0.11,-0.58],[-0.059,-0.59],[0,-0.59],[0.06,-0.59],[0.12,-0.57],[0.17,-0.56],[0.22,-0.54],[0.27,-0.51],[0.33,-0.49],[0.37,-0.46],[0.42,-0.41],[0.46,-0.37],[0.49,-0.33],[0.52,-0.27],[0.54,-0.23],[0.56,-0.17],[0.58,-0.11],[0.58,-0.06]],\"o\":[[-0.59,0],[-0.58,-0.06],[-0.58,-0.11],[-0.561,-0.17],[-0.54,-0.23],[-0.521,-0.27],[-0.49,-0.33],[-0.46,-0.37],[-0.42,-0.41],[-0.37,-0.46],[-0.32,-0.49],[-0.279,-0.51],[-0.22,-0.54],[-0.17,-0.56],[-0.121,-0.57],[-0.06,-0.59],[0,-0.59],[0.05,-0.59],[0.109,-0.58],[0.17,-0.56],[0.231,-0.54],[0.27,-0.52],[0.321,-0.49],[0.37,-0.46],[0.409,-0.42],[0.46,-0.37],[0.49,-0.32],[0.509,-0.28],[0.54,-0.22],[0.559,-0.17],[0.57,-0.12],[1.18,-0.11],[0.58,0.06],[0.58,0.11],[0.56,0.17],[0.54,0.23],[0.52,0.27],[0.49,0.32],[0.46,0.37],[0.42,0.41],[0.37,0.45],[0.33,0.49],[0.27,0.51],[0.22,0.54],[0.17,0.56],[0.12,0.57],[0.06,0.58],[0,0.58],[-0.059,0.58],[-0.11,0.58],[-0.17,0.56],[-0.23,0.54],[-0.28,0.52],[-0.32,0.49],[-0.37,0.45],[-0.409,0.42],[-0.45,0.37],[-0.49,0.32],[-0.51,0.28],[-0.54,0.22],[-0.56,0.17],[-0.57,0.12],[-0.591,0.06]],\"v\":[[0,17.773],[-1.78,17.683],[-3.52,17.413],[-5.229,16.983],[-6.89,16.393],[-8.479,15.633],[-10,14.733],[-11.42,13.683],[-12.729,12.493],[-13.92,11.183],[-14.97,9.763],[-15.87,8.243],[-16.63,6.653],[-17.22,4.993],[-17.649,3.283],[-17.91,1.543],[-18,-0.227],[-17.91,-1.997],[-17.649,-3.747],[-17.22,-5.457],[-16.63,-7.117],[-15.87,-8.707],[-14.97,-10.227],[-13.92,-11.647],[-12.729,-12.957],[-11.42,-14.147],[-10,-15.197],[-8.479,-16.097],[-6.89,-16.857],[-5.229,-17.447],[-3.52,-17.877],[-1.78,-18.147],[1.771,-18.147],[3.51,-17.877],[5.22,-17.447],[6.88,-16.857],[8.47,-16.097],[9.99,-15.197],[11.41,-14.147],[12.72,-12.957],[13.91,-11.647],[14.96,-10.227],[15.87,-8.707],[16.62,-7.117],[17.21,-5.457],[17.64,-3.747],[17.91,-1.997],[18,-0.227],[17.91,1.543],[17.64,3.283],[17.21,4.993],[16.62,6.653],[15.87,8.243],[14.96,9.763],[13.91,11.183],[12.72,12.493],[11.41,13.683],[9.99,14.733],[8.47,15.633],[6.88,16.393],[5.22,16.983],[3.51,17.413],[1.771,17.683]],\"c\":true},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"mm\",\"mm\":4,\"nm\":\"Merge Paths 1\",\"mn\":\"ADBE Vector Filter - Merge\",\"hd\":false},{\"ty\":\"fl\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":4},\"o\":{\"a\":0,\"k\":100,\"ix\":5},\"r\":1,\"nm\":\"Fill 1\",\"mn\":\"ADBE Vector Graphic - Fill\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[323.367,17.773],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.833,0.833],\"y\":[0.901,0.901]},\"o\":{\"x\":[0.167,0.167],\"y\":[0.167,0.167]},\"n\":[\"0p833_0p901_0p167_0p167\",\"0p833_0p901_0p167_0p167\"],\"t\":25,\"s\":[0,0],\"e\":[120,120]},{\"i\":{\"x\":[0.833,0.833],\"y\":[0.833,0.833]},\"o\":{\"x\":[0.167,0.167],\"y\":[-0.238,-0.238]},\"n\":[\"0p833_0p833_0p167_-0p238\",\"0p833_0p833_0p167_-0p238\"],\"t\":30,\"s\":[120,120],\"e\":[100,100]},{\"t\":32}],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Group 7\",\"np\":3,\"cix\":2,\"ix\":7,\"mn\":\"ADBE Vector Group\",\"hd\":false},{\"ty\":\"gr\",\"it\":[{\"ind\":0,\"ty\":\"sh\",\"ix\":1,\"ks\":{\"a\":0,\"k\":{\"i\":[[0,0],[-49.658,0],[-18.885,37.553]],\"o\":[[18.885,37.553],[49.657,0],[0,0]],\"v\":[[-111.352,-32.126],[0.001,32.126],[111.352,-32.126]],\"c\":false},\"ix\":2},\"nm\":\"Path 1\",\"mn\":\"ADBE Vector Shape - Group\",\"hd\":false},{\"ty\":\"tm\",\"s\":{\"a\":0,\"k\":0,\"ix\":1},\"e\":{\"a\":1,\"k\":[{\"i\":{\"x\":[0.345],\"y\":[0.929]},\"o\":{\"x\":[0.113],\"y\":[0.095]},\"n\":[\"0p345_0p929_0p113_0p095\"],\"t\":38,\"s\":[0],\"e\":[100]},{\"t\":47.919921875}],\"ix\":2},\"o\":{\"a\":0,\"k\":0,\"ix\":3},\"m\":1,\"ix\":2,\"nm\":\"Trim Paths 1\",\"mn\":\"ADBE Vector Filter - Trim\",\"hd\":false},{\"ty\":\"st\",\"c\":{\"a\":0,\"k\":[0,0,0,1],\"ix\":3},\"o\":{\"a\":0,\"k\":100,\"ix\":4},\"w\":{\"a\":0,\"k\":21,\"ix\":5},\"lc\":2,\"lj\":1,\"ml\":10,\"nm\":\"Stroke 1\",\"mn\":\"ADBE Vector Graphic - Stroke\",\"hd\":false},{\"ty\":\"tr\",\"p\":{\"a\":0,\"k\":[245.687,260.694],\"ix\":2},\"a\":{\"a\":0,\"k\":[0,0],\"ix\":1},\"s\":{\"a\":0,\"k\":[100,100],\"ix\":3},\"r\":{\"a\":0,\"k\":0,\"ix\":6},\"o\":{\"a\":0,\"k\":100,\"ix\":7},\"sk\":{\"a\":0,\"k\":0,\"ix\":4},\"sa\":{\"a\":0,\"k\":0,\"ix\":5},\"nm\":\"Transform\"}],\"nm\":\"Group 6\",\"np\":3,\"cix\":2,\"ix\":8,\"mn\":\"ADBE Vector Group\",\"hd\":false}],\"ip\":0,\"op\":50,\"st\":0,\"bm\":0}],\"markers\":[]}","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/svg/illustration/medal-bronce.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <path fill=\"#E3A276\" d=\"M135.407 23.584c30.81 30.81 30.81 80.76 0 111.572-30.81 30.81-80.761 30.81-111.572 0-30.81-30.811-30.81-80.763 0-111.572 30.81-30.81 80.763-30.81 111.572 0\"/>\n    <path fill=\"#E6D0BF\" d=\"M135.932 24.108c-.263-.26-.508-.51-.77-.77.262.256.507.512.77.77\"/>\n    <path fill=\"#DE9266\" d=\"M79.622 158.262c-20.179 0-40.355-7.691-55.757-23.077.142.14.286.277.427.417a81.795 81.795 0 0 1-1.54-1.61c11.628 5.782 24.323 8.672 37.024 8.672l.699-.003a66.536 66.536 0 0 0 19.147 2.811c16.934 0 33.872-6.446 46.76-19.339 12.895-12.893 19.34-29.828 19.34-46.764 0-6.456-.933-12.911-2.81-19.144a83.155 83.155 0 0 0-8.666-37.726 80.122 80.122 0 0 1 1.608 1.54c-.14-.14-.274-.284-.413-.424 15.38 15.4 23.075 35.579 23.075 55.754 0 20.19-7.701 40.381-23.109 55.787-15.402 15.404-35.595 23.106-55.785 23.106\"/>\n    <path fill=\"#FCFAF6\" d=\"m23.865 135.185-.03-.03C8.43 119.75.728 99.56.728 79.37c0 20.19 7.702 40.381 23.107 55.787l.03.03M135.44 23.615c-.011-.012-.023-.02-.034-.032l.034.031\"/>\n    <path fill=\"#F3D5A8\" d=\"M23.835 135.156C8.43 119.75.728 99.56.728 79.369c0-20.19 7.702-40.38 23.107-55.785C39.24 8.179 59.431.476 79.622.476c20.084 0 40.166 7.623 55.54 22.863a76.558 76.558 0 0 0-.967-.938l.05.098C119.124 8.42 99.824 1.38 80.519 1.38c-20.187 0-40.378 7.703-55.78 23.105-30.131 30.13-30.792 78.57-1.987 109.507l-.099-.05c.39.407.783.813 1.183 1.214\"/>\n    <path fill=\"#F1CF9C\" d=\"M24.292 135.602c-.141-.14-.285-.276-.427-.417l-.03-.03c-.4-.4-.792-.806-1.183-1.212l.1.049a81.795 81.795 0 0 0 1.54 1.61M135.854 24.04a80.122 80.122 0 0 0-1.608-1.54l-.05-.1c.323.311.647.623.966.939l.245.245.034.031c.14.14.273.284.413.425\"/>\n    <path fill=\"#DE9064\" d=\"M126.383 126.133c-25.784 25.785-67.74 25.785-93.525 0-25.785-25.785-25.785-67.742 0-93.528 25.785-25.785 67.741-25.785 93.525 0 25.789 25.786 25.789 67.743 0 93.528\"/>\n    <path fill=\"#EFC48F\" d=\"M79.622 145.472c-16.905 0-33.81-6.424-46.694-19.269.683.68 1.38 1.341 2.085 1.986a58.92 58.92 0 0 1-.438-.483c12.524 11.241 28.336 16.862 44.15 16.862 16.932 0 33.87-6.446 46.759-19.337 24.934-24.933 25.755-64.978 2.474-90.91.162.145.324.292.485.44a68.456 68.456 0 0 0-2.06-2.156c12.894 12.893 19.339 29.828 19.339 46.764 0 16.936-6.445 33.871-19.34 46.764-12.888 12.893-29.826 19.34-46.76 19.34\"/>\n    <path fill=\"#D8855B\" d=\"m32.928 126.203-.07-.07c-25.785-25.785-25.785-67.742 0-93.528-25.785 25.786-25.785 67.743 0 93.528l.07.07\"/>\n    <path fill=\"#D3784E\" d=\"M34.575 127.706a66.426 66.426 0 0 1-2.162-2.03c.149.152.295.306.445.457-25.785-25.785-25.785-67.742 0-93.528 12.893-12.892 29.828-19.338 46.764-19.338 16.934 0 33.872 6.446 46.76 19.338-.15-.15-.3-.295-.452-.445a72.95 72.95 0 0 1 2.028 2.16c-12.526-11.229-28.325-16.84-44.13-16.84-16.932 0-33.869 6.447-46.76 19.337-24.925 24.926-25.754 64.956-2.493 90.89\"/>\n    <path fill=\"#E59D6B\" d=\"M35.013 128.189a66.905 66.905 0 0 1-2.085-1.986l-.07-.07c-.15-.15-.296-.305-.445-.457.709.696 1.43 1.373 2.162 2.03l.438.483m93.43-93.428a86.626 86.626 0 0 0-.485-.44 72.95 72.95 0 0 0-2.028-2.161c.151.15.302.295.453.445.709.707 1.39 1.427 2.06 2.156\"/>\n    <path fill=\"#BF5E26\" d=\"M59.925 96.471a29.626 29.626 0 0 0 6.895 4.995c2.498 1.303 5.23 1.955 8.199 1.955 3.402 0 6.117-.706 8.143-2.118 2.027-1.411 3.04-3.42 3.04-6.026 0-1.52-.27-2.896-.814-4.127-.542-1.23-1.502-2.262-2.877-3.094-1.375-.833-3.258-1.484-5.647-1.955-2.388-.47-5.465-.706-9.23-.706V74.103c3.114 0 5.701-.218 7.765-.652 2.063-.434 3.728-1.068 4.995-1.9 1.266-.833 2.171-1.81 2.714-2.932.543-1.122.815-2.37.815-3.746 0-2.39-.724-4.253-2.172-5.592-1.448-1.34-3.547-2.01-6.298-2.01-2.461 0-4.687.544-6.678 1.63-1.99 1.085-4.072 2.57-6.244 4.452l-8.035-9.773c3.185-2.75 6.533-4.905 10.044-6.46 3.511-1.557 7.402-2.336 11.673-2.336 3.547 0 6.787.417 9.718 1.25 2.932.832 5.43 2.062 7.493 3.691a17.342 17.342 0 0 1 4.832 5.918c1.158 2.317 1.737 4.995 1.737 8.035 0 3.62-.995 6.678-2.986 9.176-1.99 2.497-4.832 4.542-8.524 6.135v.434c3.982 1.159 7.257 3.131 9.827 5.918 2.57 2.787 3.855 6.425 3.855 10.913 0 3.185-.688 6.026-2.063 8.524a19.252 19.252 0 0 1-5.538 6.298c-2.317 1.701-5.031 3.004-8.144 3.909-3.113.905-6.407 1.357-9.881 1.357-5.647 0-10.424-.886-14.334-2.66-3.909-1.774-7.13-4.144-9.664-7.112l7.384-10.099z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/bottom/init.ls","text":"(function(){\n  return function(pw){\n    if (pw.pageCode.bottom != null) {\n      return pw.bottom.append(pw.pageCode.bottom()).show();\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/03_gameLoading/text/text.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"gameLoading\")).css({\n      display: \"block\",\n      marginBottom: \"1em\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/levelRating/02_feedback/text/text.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"writeYourFeedback\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/_shared/textError/text.ls","text":"(function(){\n  return function(error){\n    return Div({\n      margin: \"2em 1em 1em 1em\"\n    }).html(error === \"pixelPaint_not_found\"\n      ? T(\"imageNotFound\")\n      : T(\"errorText\"));\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"pages/support/help/faqList/onSearch/onSearch.ls","text":"(function(){\n  return function(page){\n    return function(searchQuery){\n      page.setBottomFreeze(0);\n      page.params.search = searchQuery;\n      return page.loadCategories();\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/createKeys/keys/space/key.ls","text":"(function(){\n  return function(key, o){\n    var up, div;\n    up = function(){\n      return o.onKey(\" \");\n    };\n    return div = inc(\"../_div/div\")({\n      o: o,\n      key: key,\n      keyDivHtml: \"&nbsp;\",\n      color: \"white\",\n      up: up\n    });\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/faqQuestion/feedback/feedback.ls","text":"(function(){\n  return function(page){\n    var div;\n    div = Div().css({\n      minHeight: \"2.8em\",\n      marginTop: \"1em\"\n    }).hide();\n    page.feedback = div;\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/0_stopDownloadPopup/button/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      app.currentPopup.close();\n      inc(\"/lib/util/logPromo/log\")({\n        event: \"promoPlus_popupStopDownload_click\"\n      });\n      return startPage({\n        path: path(\"../../1_products/page\"),\n        animation: \"slideUp\",\n        params: {\n          referrer: \"stopDownloadPopup\"\n        }\n      });\n    };\n    return Button({\n      label: T(\"contineToPlusButton\"),\n      labelAllowWrap: true\n    }).tap(tap);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/01b_askAge/button/button.ls","text":"(function(){\n  return function(label, tap){\n    return Button(label).css({\n      margin: \"0.3em\",\n      minWidth: \"5em\"\n    }).tap(tap);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/logEvents/log.ls","text":"(function(){\n  return function(){\n    var i$, ref$, len$, event, results$ = [];\n    for (i$ = 0, len$ = (ref$ = [\"setAcceptPrivacy\", \"setAcceptTerms\"]).length; i$ < len$; ++i$) {\n      event = ref$[i$];\n      if (!log.findLast(event)) {\n        results$.push(log.log({\n          event: event,\n          value: true\n        }));\n      }\n    }\n    return results$;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/newsletter/_shared/iconNews/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/news.svg\"),\n      width: '5em',\n      height: '5em'\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbarLevel/progressBar/sublevel/sublevel.ls","text":"(function(){\n  return function(total){\n    var i$, i, results$ = [];\n    for (i$ = 1; i$ <= total; ++i$) {\n      i = i$;\n      results$.push(Div().css({\n        flex: \"1 1 auto\",\n        display: \"inline-block\",\n        height: \"12px\",\n        backgroundColor: Color.grey[250],\n        margin: \"0 1px\",\n        opacity: 0.6\n      }));\n    }\n    return results$;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/networkConnection/initBrowser/init.ls","text":"(function(){\n  return function(triggerListener){\n    var updateConnection;\n    updateConnection = function(){\n      var isOnline;\n      isOnline = navigator.onLine == null || navigator.onLine;\n      engine.networkConnection.type = isOnline ? \"unknown\" : \"none\";\n      engine.networkConnection.isOnline = isOnline;\n      return triggerListener();\n    };\n    window.addEventListener('online', updateConnection);\n    window.addEventListener('offline', updateConnection);\n    return updateConnection();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/svg/shape/space-blox-block.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M24.5 32.1v95.7l-12 12.2V20zM135.4 32.1v95.7l12.2 12.2V20zM34 25.6l93.9-1 12-12.2H21zM32 135.5H128l12 12.1H20zM35.8 35.5h88.5V124H35.8z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"pages/content/plan/loadPlan/load.ls","text":"(function(){\n  return function(page, onDone){\n    var load, onLoaded, onError;\n    load = function(){\n      return inc(\"/lib/util/loadPlan/load\")({\n        path: page.params.planPath,\n        onLoaded: onLoaded,\n        onError: onError,\n        fileApi: deviceLog['var'](\"loadDevelopContent\") ? \"filesCalcDevelop\" : \"files\"\n      });\n    };\n    onLoaded = function(plan){\n      return onDone(plan);\n    };\n    onError = function(error){\n      var technicalError;\n      technicalError = error.error !== \"offline\";\n      return inc(\"/lib/offline/offlinePage/offlinePage\")(page, void 8, technicalError);\n    };\n    return load();\n  };\n})();","updated":"2021-10-25T12:34:10.726624"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupGameResult/button/button.ls","text":"(function(){\n  return function(click){\n    return Button({\n      label: T(\"continueButton\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\"\n    }).css({\n      marginBottom: \"1em\"\n    }).tap(click);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupError/text/text.ls","text":"(function(){\n  return function(type){\n    return Div({\n      margin: \"0.3em 0.5em 0.8em\",\n      lineHeight: \"1.5em\"\n    }).html(type === \"offline\"\n      ? T(\"noHighscoreOffline\")\n      : T(\"noHighscoreError\"));\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/00_shared/pixiGame/pixi/spineTextureConverter/convert.ls","text":"(function(){\n  return function(o){\n    var fps, texture, calculateSize, size, textures, i$, ref$, len$, anim, animEnd, numFrames, frameLength, animTextures, j$, to$, frame, text, obj;\n    fps = o.fps || 10;\n    texture = function(renderer, spine, size){\n      var resolution, brt, rt;\n      resolution = window.devicePixelRatio;\n      brt = new PIXI.BaseRenderTexture(size.width, size.height, PIXI.SCALE_MODES.LINEAR, resolution);\n      rt = new PIXI.RenderTexture(brt);\n      spine.x = size.width / 2;\n      spine.y = size.height;\n      renderer.render(spine, rt);\n      return rt;\n    };\n    calculateSize = function(){\n      var width, height, i$, ref$, len$, anim, animEnd, numFrames, frameLength, j$, to$, frame, size;\n      width = 0;\n      height = 0;\n      for (i$ = 0, len$ = (ref$ = o.animations).length; i$ < len$; ++i$) {\n        anim = ref$[i$];\n        o.spine.state.setAnimation(0, anim, false);\n        animEnd = o.spine.state.tracks[0].animationEnd;\n        numFrames = Math.floor(animEnd / (1 / fps));\n        frameLength = animEnd / numFrames;\n        for (j$ = 0, to$ = numFrames - 1; j$ <= to$; ++j$) {\n          frame = j$;\n          o.spine.state.tracks[0].time = frame * frameLength;\n          width = Math.max(width, o.spine.width);\n          height = Math.max(height, o.spine.height);\n        }\n      }\n      return size = {\n        width: width,\n        height: height\n      };\n    };\n    size = calculateSize();\n    textures = {};\n    for (i$ = 0, len$ = (ref$ = o.animations).length; i$ < len$; ++i$) {\n      anim = ref$[i$];\n      o.spine.state.setAnimation(0, anim, false);\n      animEnd = o.spine.state.tracks[0].animationEnd;\n      numFrames = Math.floor(animEnd / (1 / fps));\n      frameLength = animEnd / numFrames;\n      animTextures = [];\n      for (j$ = 0, to$ = numFrames - 1; j$ <= to$; ++j$) {\n        frame = j$;\n        o.spine.state.tracks[0].time = frame * frameLength;\n        text = texture(o.renderer, o.spine, size);\n        animTextures.push(text);\n      }\n      textures[anim] = {\n        time: animEnd,\n        maxFrames: numFrames,\n        frames: animTextures\n      };\n    }\n    obj = {\n      textures: textures,\n      size: size\n    };\n    return o.callback(obj);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/memberCategories/categories.ls","text":"(function(){\n  return function(){\n    var p, t, a;\n    p = {\n      labelSingular: T(\"pupilSing\"),\n      labelSingularGendered: T(\"pupilSingGendered\"),\n      labelPlural: T(\"pupilPlur\"),\n      labelPluralGendered: T(\"pupilPlurGendered\")\n    };\n    t = {\n      labelSingular: T(\"teacherSing\"),\n      labelSingularGendered: T(\"teacherSingGendered\"),\n      labelPlural: T(\"teacherPlur\"),\n      labelPluralGendered: T(\"teacherPlurGendered\")\n    };\n    a = {\n      labelSingular: T(\"adminSing\"),\n      labelSingularGendered: T(\"adminSing\"),\n      labelPlural: T(\"adminPlur\"),\n      labelPluralGendered: T(\"adminPlurGendered\")\n    };\n    return {\n      dirPupil: p,\n      dirTeacher: t,\n      dirAdmin: a,\n      nonDirPupil: p,\n      nonDirTeacher: t\n    };\n  };\n})();","updated":"2021-02-26T13:57:59.916029"},{"path":"lib/util/browser/setCanonical/set.ls","text":"(function(){\n  return function(pageUrl){\n    var url, ref$, l;\n    if (engine.isMobileApp || location.host === \"preview.anton.app\") {\n      return;\n    }\n    url = \"https://anton.app/\" + engine.guiLanguage + \"/\";\n    if (pageUrl.length > 0) {\n      url += pageUrl + \"/\";\n    }\n    if ((ref$ = document.head.findFirst('#canonical')) != null) {\n      ref$.remove();\n    }\n    l = document.createElement(\"link\").attr({\n      id: \"canonical\",\n      rel: \"canonical\",\n      href: url\n    });\n    return document.head.prepend(l);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadManager/initPlan/init.ls","text":"(function(){\n  return function(manager, id){\n    var planInfo, e;\n    planInfo = manager.planInfos[id];\n    if (planInfo) {\n      planInfo.status = \"initialized\";\n      planInfo.enabled = true;\n    } else {\n      planInfo = {\n        id: id,\n        status: \"initialized\",\n        enabled: true,\n        currentlyLoadingLevelsTotal: 0,\n        currentlyPreparingPlansTotal: 0\n      };\n    }\n    e = deviceLog.findLast({\n      event: \"deviceDownloadCompleted\",\n      id: id\n    });\n    planInfo.lastCompletedAt = e ? {\n      completedAt: e.created,\n      etag: e.etag\n    } : void 8;\n    manager.planInfos[id] = planInfo;\n    manager.updateDom(id);\n    return planInfo;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/misc/_shared/confirmAge16AndPrivacy/popups/privacy1/button/button.ls","text":"(function(){\n  return function(label, tap){\n    return Button(label).css({\n      margin: \"0.3em\",\n      minWidth: \"5em\"\n    }).tap(tap);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/tooltip/multi/chars/char/char.ls","text":"(function(){\n  return function(char){\n    var select, unselect, div;\n    select = function(){\n      return div.css({\n        backgroundColor: Color.grey[200]\n      });\n    };\n    unselect = function(){\n      return div.css({\n        backgroundColor: \"\"\n      });\n    };\n    div = Div().css({\n      display: \"flex\",\n      padding: \"0.2em 0.6em\",\n      backgroundColor: \"pink\",\n      minWidth: \"1.2em\"\n    }).html(char);\n    div.char = char;\n    div.select = select;\n    div.unselect = unselect;\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/tooltip/multi/move/move.ls","text":"(function(){\n  return function(e, key){\n    var x, ref$, i$, len$, c, offset, results$ = [];\n    x = (ref$ = e.clientX) != null\n      ? ref$\n      : e.changedTouches[0].clientX;\n    for (i$ = 0, len$ = (ref$ = key.charDivs).length; i$ < len$; ++i$) {\n      c = ref$[i$];\n      offset = c.offset();\n      if (x < offset.left || x < offset.left + offset.width) {\n        key.currentChar = c.char;\n        key.updateChars();\n        break;\n      }\n    }\n    return results$;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/loadTopic/loadFromPlan/findTopic/find.ls","text":"(function(){\n  return function(o, plan){\n    var i$, ref$, len$, t, t2;\n    for (i$ = 0, len$ = (ref$ = plan.topics).length; i$ < len$; ++i$) {\n      t = ref$[i$];\n      if (o.path != null && o.path === t.path) {\n        t2 = _.cloneDeep(t);\n        return t2;\n      }\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/md5/external/md5.min.js","text":"!function(n){\"use strict\";function t(n,t){var r=(65535&n)+(65535&t),e=(n>>16)+(t>>16)+(r>>16);return e<<16|65535&r}function r(n,t){return n<<t|n>>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<<r%32,n[(r+64>>>9<<4)+14]=r;var e,i,a,h,d,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e<n.length;e+=16)i=l,a=g,h=v,d=m,l=o(l,g,v,m,n[e],7,-680876936),m=o(m,l,g,v,n[e+1],12,-389564586),v=o(v,m,l,g,n[e+2],17,606105819),g=o(g,v,m,l,n[e+3],22,-1044525330),l=o(l,g,v,m,n[e+4],7,-176418897),m=o(m,l,g,v,n[e+5],12,1200080426),v=o(v,m,l,g,n[e+6],17,-1473231341),g=o(g,v,m,l,n[e+7],22,-45705983),l=o(l,g,v,m,n[e+8],7,1770035416),m=o(m,l,g,v,n[e+9],12,-1958414417),v=o(v,m,l,g,n[e+10],17,-42063),g=o(g,v,m,l,n[e+11],22,-1990404162),l=o(l,g,v,m,n[e+12],7,1804603682),m=o(m,l,g,v,n[e+13],12,-40341101),v=o(v,m,l,g,n[e+14],17,-1502002290),g=o(g,v,m,l,n[e+15],22,1236535329),l=u(l,g,v,m,n[e+1],5,-165796510),m=u(m,l,g,v,n[e+6],9,-1069501632),v=u(v,m,l,g,n[e+11],14,643717713),g=u(g,v,m,l,n[e],20,-373897302),l=u(l,g,v,m,n[e+5],5,-701558691),m=u(m,l,g,v,n[e+10],9,38016083),v=u(v,m,l,g,n[e+15],14,-660478335),g=u(g,v,m,l,n[e+4],20,-405537848),l=u(l,g,v,m,n[e+9],5,568446438),m=u(m,l,g,v,n[e+14],9,-1019803690),v=u(v,m,l,g,n[e+3],14,-187363961),g=u(g,v,m,l,n[e+8],20,1163531501),l=u(l,g,v,m,n[e+13],5,-1444681467),m=u(m,l,g,v,n[e+2],9,-51403784),v=u(v,m,l,g,n[e+7],14,1735328473),g=u(g,v,m,l,n[e+12],20,-1926607734),l=c(l,g,v,m,n[e+5],4,-378558),m=c(m,l,g,v,n[e+8],11,-2022574463),v=c(v,m,l,g,n[e+11],16,1839030562),g=c(g,v,m,l,n[e+14],23,-35309556),l=c(l,g,v,m,n[e+1],4,-1530992060),m=c(m,l,g,v,n[e+4],11,1272893353),v=c(v,m,l,g,n[e+7],16,-155497632),g=c(g,v,m,l,n[e+10],23,-1094730640),l=c(l,g,v,m,n[e+13],4,681279174),m=c(m,l,g,v,n[e],11,-358537222),v=c(v,m,l,g,n[e+3],16,-722521979),g=c(g,v,m,l,n[e+6],23,76029189),l=c(l,g,v,m,n[e+9],4,-640364487),m=c(m,l,g,v,n[e+12],11,-421815835),v=c(v,m,l,g,n[e+15],16,530742520),g=c(g,v,m,l,n[e+2],23,-995338651),l=f(l,g,v,m,n[e],6,-198630844),m=f(m,l,g,v,n[e+7],10,1126891415),v=f(v,m,l,g,n[e+14],15,-1416354905),g=f(g,v,m,l,n[e+5],21,-57434055),l=f(l,g,v,m,n[e+12],6,1700485571),m=f(m,l,g,v,n[e+3],10,-1894986606),v=f(v,m,l,g,n[e+10],15,-1051523),g=f(g,v,m,l,n[e+1],21,-2054922799),l=f(l,g,v,m,n[e+8],6,1873313359),m=f(m,l,g,v,n[e+15],10,-30611744),v=f(v,m,l,g,n[e+6],15,-1560198380),g=f(g,v,m,l,n[e+13],21,1309151649),l=f(l,g,v,m,n[e+4],6,-145523070),m=f(m,l,g,v,n[e+11],10,-1120210379),v=f(v,m,l,g,n[e+2],15,718787259),g=f(g,v,m,l,n[e+9],21,-343485551),l=t(l,i),g=t(g,a),v=t(v,h),m=t(m,d);return[l,g,v,m]}function a(n){var t,r=\"\",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCharCode(n[t>>5]>>>t%32&255);return r}function h(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+=1)r[t]=0;var e=8*n.length;for(t=0;t<e;t+=8)r[t>>5]|=(255&n.charCodeAt(t/8))<<t%32;return r}function d(n){return a(i(h(n),8*n.length))}function l(n,t){var r,e,o=h(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length>16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(h(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e=\"0123456789abcdef\",o=\"\";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),o+=e.charAt(t>>>4&15)+e.charAt(15&t);return o}function v(n){return unescape(encodeURIComponent(n))}function m(n){return d(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}\"function\"==typeof define&&define.amd?define(function(){return A}):\"object\"==typeof module&&module.exports?module.exports=A:n.md5=A}(this);\n","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/md5/md5.ls","text":"(function(){\n  return function(s){\n    if (!window.md5) {\n      inc(\"external/md5.min.js\");\n    }\n    return md5(s);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"pages/static/terms/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"termsUrl\"),\n      title: T(\"termsOfService\"),\n      metaDescription: T(\"termsOfService\"),\n      noIndex: true\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/pager/pager.ls","text":"(function(){\n  return function(o){\n    var infinite, ref$, div, elements, scroll;\n    infinite = (ref$ = o.infinite) != null ? ref$ : false;\n    div = Div();\n    elements = _.map(o.elements, function(p){\n      return inc(\"element/element\")(p);\n    });\n    div.append(elements);\n    scroll = inc(\"scroll/scroll\")(div, elements, infinite, o.onIndexChanged);\n    div.scrollToPage = function(p, animated){\n      animated == null && (animated = true);\n      return scroll.scrollToPage(p, animated);\n    };\n    return div;\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/buttonsSubmitCancel/buttonSubmit/button.ls","text":"(function(){\n  return function(o){\n    var click;\n    if (o.submit === false) {\n      return;\n    }\n    click = function(){\n      return o.submit();\n    };\n    return Button({\n      label: o.submitLabel || T(\"continueButton\"),\n      type: \"primary\"\n    }).css({\n      margin: \"0 0.25em\"\n    }).tap(click);\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"lib/gui/buttonsSubmitCancel/buttons.ls","text":"(function(){\n  return function(o){\n    var div;\n    div = Div().addClass(\"buttonsSubmitCancel\").css({\n      display: \"flex\",\n      margin: \"0.5em 0 0.3em\"\n    }).html(inc(\"linkCancel/link\")(o), inc(\"buttonSubmit/button\")(o));\n    inc(\"spinner/spinner\")(div);\n    return div;\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"lib/gui/buttonOpenAppStore/button.ls","text":"(function(){\n  return function(){\n    var store, click;\n    store = engine.isAndroidApp\n      ? T(\"playStore\")\n      : T(\"appStore\");\n    click = function(){\n      return inc(\"openStore/open\")();\n    };\n    return Button(T(\"openStore\", store)).tap(click);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/inputForm/label/label.ls","text":"(function(){\n  return function(label){\n    return Div().css({\n      lineHeight: \"1.5em\",\n      margin: \"0 auto\",\n      width: \"30em\",\n      maxWidth: \"95%\"\n    }).html(label);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbar2/actions/search/spacer/spacer.ls","text":"(function(){\n  return function(o){\n    var ref$;\n    return Div().css({\n      flex: \"1 1 auto\",\n      height: \"2em\",\n      textAlign: \"left\",\n      lineHeight: \"2em\",\n      color: Color.grey[400],\n      paddingRight: \"0.3em\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      whiteSpace: \"nowrap\",\n      fontSize: \"0.9em\"\n    }).tap({\n      up: o.toggleSearchInput,\n      animation: \"none\"\n    }).html((ref$ = o.searchPlaceholder) != null ? ref$ : \"\");\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbar2/back/label/label.ls","text":"(function(){\n  return function(o){\n    var label;\n    label = o.backLabel || T(\"backButton\");\n    return Div().addClass(\"label\").css({\n      flex: \"0 1 auto\",\n      fontSize: \"0.9em\",\n      textAlign: \"left\",\n      whiteSpace: \"nowrap\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\"\n    }).secureHtml(label);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbar2/disturber/disturber.ls","text":"(function(){\n  return function(o){\n    if (!o.disturber) {\n      return;\n    }\n    return Div().css({\n      backgroundColor: o.disturber.color || Color.blue[50],\n      lineHeight: \"1.4em\",\n      padding: \"0.7em\",\n      textAlign: \"center\"\n    }).addClass(\"disturber\").append(Div().css({\n      maxWidth: \"20em\",\n      margin: \"0 auto\"\n    }).html(o.disturber.text)).tap(o.disturber.action);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbar2/menu/label/label.ls","text":"(function(){\n  return function(o){\n    var label;\n    label = o.menuLabel || T(\"menu\");\n    return Div().addClass(\"label\").css({\n      flex: \"0 1 auto\",\n      fontSize: \"0.9em\",\n      textAlign: \"left\",\n      whiteSpace: \"nowrap\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      paddingLeft: \"0.2em\",\n      color: Color.grey[800]\n    }).html(label);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbar2/tools/coins/number/number.ls","text":"(function(){\n  return function(totalCoins){\n    return Div().css({\n      flex: \"0 0 auto\",\n      color: Color.yellow[700]\n    }).html(totalCoins);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbarGame/game/game.ls","text":"(function(){\n  return function(o, div){\n    div.setScore = function(score){\n      o.gameScore = score;\n      o.updateGameScore();\n      return o.updateGameScoreIcon();\n    };\n    div.setScoreIcon = function(icon){\n      o.gameScoreIcon = icon;\n      o.updateGameScore();\n      return o.updateGameScoreIcon();\n    };\n    div.setTriesIcon = function(icon){\n      o.gameTriesIcon = icon;\n      return o.updateGameTries();\n    };\n    div.setTriesIconColor = function(color){\n      o.gameTriesIconColor = color;\n      return o.updateGameTries();\n    };\n    div.setTotalTries = function(totalTries){\n      o.gameTotalTries = totalTries;\n      o.updateGameTries();\n      return o.updateGameTriesSpacer();\n    };\n    div.setTries = function(tries){\n      o.gameTries = tries;\n      return o.updateGameTries();\n    };\n    div.setTextColor = function(color){\n      o.gameTextColor = color;\n      o.updateHeaderColor();\n      o.updateGameScoreIcon();\n      o.updateGameTries();\n      o.updateCloseIcon();\n      if (typeof o.updateSoundIcon == 'function') {\n        o.updateSoundIcon();\n      }\n      if (typeof o.updateHelpIcon == 'function') {\n        o.updateHelpIcon();\n      }\n      return typeof StatusBar != 'undefined' && StatusBar !== null ? StatusBar.setTextColor(color) : void 8;\n    };\n    div.setBackgroundColor = function(color){\n      o.gameBackgroundColor = color;\n      o.updateHeaderColor();\n      return typeof StatusBar != 'undefined' && StatusBar !== null ? StatusBar.setBackgroundColor(color) : void 8;\n    };\n    o.resumeGameSound = function(){\n      return typeof div.resumeGameSound == 'function' ? div.resumeGameSound() : void 8;\n    };\n    o.showHelp = function(){\n      return typeof div.showHelp == 'function' ? div.showHelp() : void 8;\n    };\n    return o.stopGameSound = function(){\n      return typeof div.stopGameSound == 'function' ? div.stopGameSound() : void 8;\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbarGame/_t.ls","text":"(function(){\n  return {\n    helpButton: {\n      de: \"Hilfe\",\n      en: \"Help\",\n      fr: \"Aide\",\n      es: \"Ayuda\",\n      pt: \"Ajuda\"\n    },\n    sound: {\n      de: \"Sound\",\n      en: \"Sound\",\n      fr: \"Son\",\n      es: \"Sonido\",\n      pt: \"Som\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"addons/topbarGame/header/center/gameScore/gameScore.ls","text":"(function(){\n  return function(o){\n    return Div().addClass(\"topBarHeaderTitle\").css({\n      flex: \"1 1 auto\",\n      display: \"flex\",\n      padding: \"0 0.5em\",\n      pointerEvents: \"none\"\n    }).append(inc(\"icon/icon\")(o), inc(\"title/title\")(o));\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"addons/topbarGame/header/spacer/spacer.ls","text":"(function(){\n  return function(o, width){\n    var div;\n    o.updateGameTriesSpacer = function(){\n      var totalTries;\n      totalTries = o.gameTotalTries;\n      return div.css({\n        flex: \"0 0 \" + totalTries * 1.1 + \"em\"\n      });\n    };\n    return div = Div().css({\n      flex: \"0 0 \" + width\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbarLevel/calculator/calculator/close/close.ls","text":"(function(){\n  return function(o){\n    var ref$, ref1$;\n    if (o.isClosed || o.animationRunning) {\n      return;\n    }\n    o.isClosed = true;\n    o.animationRunning = true;\n    o.background.fadeOut(200);\n    o.animations.close();\n    o.label.icon.close();\n    o.content.mathInput.stop();\n    if ((ref$ = o.lastInput) != null) {\n      ref$.start();\n    }\n    if (o.lastGap) {\n      if ((ref1$ = app.currentPage.levelPlayer) != null) {\n        ref1$.currentGap = o.lastGap;\n      }\n    }\n    return setTimeout(function(){\n      o.animationRunning = false;\n      return o.content.hide();\n    }, 200);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/cancelDeletionDirAdmin/03_email/submit/onCompleted/onCompleted.ls","text":"(function(){\n  return function(result, form, onDone, onError){\n    if (result.status !== \"ok\") {\n      return onError(result);\n    } else {\n      form.hideSpinner();\n      return onDone();\n    }\n  };\n})();","updated":"2021-03-24T11:07:55.85259"},{"path":"lib/gui/input2/click/selectOnMultiClick/selectLine/char/char.ls","text":"(function(){\n  return function(char, includeLineBreak){\n    var v;\n    if (!char) {\n      return false;\n    }\n    if (!char.hasClass(\"inputChar\")) {\n      return true;\n    }\n    v = char.getValue();\n    if (v === \"<br>\") {\n      if (includeLineBreak) {\n        char.select();\n      }\n      return false;\n    } else {\n      char.select();\n      return true;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"addons/topbarLevel/hint/_t.ls","text":"(function(){\n  return {\n    hint: {\n      de: \"Tipp\",\n      en: \"Hint\",\n      fr: \"Aide\",\n      es: \"Nota\",\n      pt: \"Dica\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"addons/topbarLevel/hint/hint/content/content/lsg/lsg.ls","text":"(function(){\n  return function(slide, part){\n    var lsg;\n    lsg = slide.getParam(\"lsg\", part);\n    return Div({\n      textAlign: lsg.textAlign || \"center\"\n    }).html(inc(\"/../app01-trainers/shared/lsg/lsg\")({\n      lsg: lsg,\n      slide: slide\n    }).css({\n      margin: \"0.2em 0\"\n    }));\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"pages/level/previewNoUser/_topbar/backLabel/label.ls","text":"(function(){\n  return function(page){\n    var b;\n    if (page.level) {\n      b = page.level.parentBlock;\n      return inc(\"/lib/seo/element/a2/a\")({\n        html: b.title,\n        pageUrl: inc(\"/data/content/calcBlockPageUrl/calc\")(b.path)\n      });\n    }\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"addons/topbarLevelFinish/topbar.ls","text":"(function(){\n  return function(page){\n    var div;\n    div = Div().addClass(\"topBar\").css({\n      display: \"flex\",\n      justifyContent: \"flex-end\",\n      alignItems: \"stretch\",\n      minHeight: \"2.4em\"\n    }).append(inc(\"../topbarLevel/feedbackIcon/icon\")(page));\n    app.currentPage.top.css({\n      boxShadow: \"\"\n    });\n    return app.currentPage.topbar = div;\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"data/user/audioVolume/get.ls","text":"(function(){\n  return function(){\n    var currentVolume, ref$, ref1$;\n    return currentVolume = (ref$ = typeof log != 'undefined' && log !== null ? (ref1$ = log.findLast({\n      event: \"setAudioVolume\"\n    })) != null ? ref1$.value : void 8 : void 8) != null ? ref$ : 1;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/audioVolume/set.ls","text":"(function(){\n  return function(audioVolume){\n    return log.log({\n      event: \"setAudioVolume\",\n      value: audioVolume\n    });\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"lib/gui/divEditable/updateCustomCursor/restartAnimation/restart.ls","text":"(function(){\n  return function(cursor){\n    var i$, ref$, len$, kc;\n    cursor.show();\n    for (i$ = 0, len$ = (ref$ = cursor.classList).length; i$ < len$; ++i$) {\n      kc = ref$[i$];\n      if (_.startsWith(kc, \"keyframe\")) {\n        break;\n      }\n    }\n    cursor.removeClass(kc);\n    return requestAnimationFrame(function(){\n      return cursor.addClass(kc);\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"data/user/chat/calcUnreadMessagesCount/calc.ls","text":"(function(){\n  return function(){\n    var ref$, events;\n    if ((typeof log == 'undefined' || log === null) || ((ref$ = log.findLast(\"isBannedFromChat\")) != null ? ref$.value : void 8) === true) {\n      return 0;\n    }\n    events = log.list(\"supportChat\");\n    events = _.filterLastInGroup(events, \"messageAt\");\n    events = _.filter(events, function(e){\n      return e.from === \"support\" && !e.readAt;\n    });\n    return events.length;\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"data/user/isBeta/set.ls","text":"(function(){\n  return function(isBeta){\n    return log.log({\n      event: \"isBeta\",\n      value: isBeta\n    });\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"data/user/isTeacher/get.ls","text":"(function(){\n  return function(){\n    var ref$, ref1$;\n    return (ref$ = typeof log != 'undefined' && log !== null ? (ref1$ = log.findLast(\"isTeacher\")) != null ? ref1$.value : void 8 : void 8) != null ? ref$ : false;\n  };\n})();","updated":"2021-02-10T16:51:09.461693"},{"path":"lib/gui/avatar/overlay/background/background.ls","text":"(function(){\n  return function(p, s){\n    var enter, exit, div;\n    enter = function(){\n      return div.css({\n        borderRadius: 0,\n        top: 0,\n        left: 0,\n        width: body.width() + \"px\",\n        height: body.height() + \"px\"\n      });\n    };\n    exit = function(){\n      return div.css({\n        borderRadius: \"999px\",\n        top: p.top + \"px\",\n        left: p.left + \"px\",\n        width: p.width + \"px\",\n        height: p.height + \"px\"\n      });\n    };\n    div = Div().css({\n      position: \"fixed\",\n      backgroundColor: Color.white,\n      borderRadius: \"999px\",\n      top: p.top + \"px\",\n      left: p.left + \"px\",\n      width: p.width + \"px\",\n      height: p.height + \"px\",\n      transition: \"all \" + s + \"ms\"\n    });\n    div.enter = enter;\n    div.exit = exit;\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/avatar/overlay/clickBlocker/clickBlocker.ls","text":"(function(){\n  return function(exit){\n    return Div().css({\n      position: \"absolute\",\n      borderRadius: 0,\n      top: 0,\n      left: 0,\n      width: body.width() + \"px\",\n      height: body.height() + \"px\",\n      pointerEvents: \"auto\"\n    }).addClass(\"keyManager-esc androidBack\").bind(\"androidBack\", exit).bind(\"keyManager\", exit).tap({\n      down: exit,\n      animation: \"none\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/avatar/overlay/name/name.ls","text":"(function(){\n  return function(userDescription){\n    var bh, bw, os;\n    bh = body.height();\n    bw = body.width();\n    os = (bh - bw) / 2;\n    return Div().css({\n      display: \"block\",\n      position: \"absolute\",\n      top: (os + bw) + \"px\",\n      textAlign: \"center\",\n      padding: \"1em\",\n      width: \"100%\",\n      fontSize: \"1.6em\",\n      marginTop: \"-2em\"\n    }).secureHtml((userDescription != null ? userDescription.displayName : void 8) || \"&nbsp;\").hide();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/avatar/overlay/overlay/overlay.ls","text":"(function(){\n  return function(p, s){\n    var enter, exit, div;\n    enter = function(){\n      return div.css({\n        top: 0,\n        left: 0,\n        width: body.width() + \"px\",\n        height: body.height() + \"px\"\n      });\n    };\n    exit = function(){\n      return div.css({\n        top: p.top + \"px\",\n        left: p.left + \"px\",\n        width: p.width + \"px\",\n        height: p.height + \"px\"\n      });\n    };\n    div = Div().css({\n      position: \"fixed\",\n      top: p.top + \"px\",\n      left: p.left + \"px\",\n      width: p.width + \"px\",\n      height: p.height + \"px\",\n      transition: \"all \" + s + \"ms\",\n      pointerEvents: \"auto\"\n    });\n    div.enter = enter;\n    div.exit = exit;\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/icons/reset/icon/icon.ls","text":"(function(){\n  return function(o){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/close-small.svg\"),\n      width: \"1em\",\n      height: \"1em\"\n    }).css({\n      pointerEvents: \"none\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/divEditable/debug/debug.ls","text":"(function(){\n  return function(d){\n    return function(){\n      if (d.isDebug) {\n        return debug.apply(null, arguments);\n      }\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/tooltip/_tooltip/div1/div1.ls","text":"(function(){\n  return function(o){\n    var div;\n    div = Div({\n      display: \"flex\",\n      minWidth: \"130%\",\n      minHeight: \"100%\",\n      backgroundColor: \"white\",\n      fontSize: \"1.5em\",\n      padding: \"0.2em\",\n      borderRadius: o.newDesign ? \"5px\" : \"2px\"\n    });\n    inc(\"fixOutsidePosition/fix\")(div, o);\n    return div;\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"lib/init/idle/logSessionEnd/log.ls","text":"(function(){\n  return function(o){\n    return function(type){\n      o.endedAt = new Date();\n      return typeof log != 'undefined' && log !== null ? log.log({\n        event: \"sessionEnd\",\n        type: type\n      }) : void 8;\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/drawerMenu/menuRows/rowDefault/newTag/tag.ls","text":"(function(){\n  return function(item){\n    var ref$;\n    return (ref$ = inc(\"/lib/gui/newTag/newTag\")(item.isNewUntil)) != null ? ref$.css({\n      marginRight: \"0.4em\"\n    }) : void 8;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"lib/gui/drawerMenu/move/move.ls","text":"(function(){\n  return function(div, x, onEnded){\n    requestAnimationFrame(function(){\n      return div.css({\n        transform: \"translateX(\" + x + \")\",\n        transition: \"300ms\"\n      });\n    });\n    return setTimeout(function(){\n      div.css({\n        transition: \"\"\n      });\n      return typeof onEnded == 'function' ? onEnded() : void 8;\n    }, 300);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/click/click.ls","text":"(function(){\n  return function(o){\n    var click;\n    click = function(e){\n      if (!o.enabled) {\n        return;\n      }\n      o.selection.unselect();\n      inc(\"positionCursor/positionCursor\")(e, o);\n      if (!o.isStarted) {\n        o.start();\n      } else {\n        o.cursor.start();\n      }\n      return inc(\"selectOnMultiClick/select\")(e, o);\n    };\n    o.div.bind(\"touchstart mousedown\", click);\n    return click;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/gui/input2/click/positionCursor/positionCursor.ls","text":"(function(){\n  return function(e, o){\n    if (o.multiline !== true) {\n      return inc(\"positionSingleline/position\")(e, o);\n    } else {\n      return inc(\"positionMultiline/position\")(e, o);\n    }\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"lib/gui/input2/addChar/char/htmlNormal/html.ls","text":"(function(){\n  return function(value){\n    return value;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/addChar/char/htmlPassword/html.ls","text":"(function(){\n  return function(value, o){\n    var hideChar, div, ref$;\n    hideChar = function(){\n      return div.html(\"&bull;\");\n    };\n    div = Div().addClass(\"password\").css({\n      display: \"inline-block\",\n      pointerEvents: \"none\",\n      padding: \"0 0.04em\"\n    });\n    if (o.isDesktop) {\n      hideChar();\n    } else {\n      div.html(value);\n      setTimeout(function(){\n        return div.hideChar();\n      }, 800);\n    }\n    if ((ref$ = o.lastPasswordCharDiv) != null) {\n      ref$.hideChar();\n    }\n    o.lastPasswordCharDiv = div;\n    div.hideChar = hideChar;\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/change/change.ls","text":"(function(){\n  return function(o){\n    return function(key, p){\n      var value, ref$, ref1$, ref2$, ref3$;\n      value = o.getValue();\n      if (value.length === 0) {\n        if ((ref$ = o.iconReset) != null) {\n          ref$.hide();\n        }\n        if ((ref1$ = o.placeholder) != null) {\n          ref1$.css({\n            visibility: \"visible\"\n          });\n        }\n      } else {\n        if ((ref2$ = o.iconReset) != null) {\n          ref2$.show();\n        }\n        if ((ref3$ = o.placeholder) != null) {\n          ref3$.css({\n            visibility: \"hidden\"\n          });\n        }\n      }\n      if (typeof o.onChange == 'function') {\n        o.onChange(key);\n      }\n      if ((p != null ? p.disableTimeout : void 8) !== true && o.autoSubmitDelay != null) {\n        if (o.timeout) {\n          clearTimeout(o.timeout);\n        }\n        o.timeout = setTimeout(function(){\n          return o.submit(true);\n        }, o.autoSubmitDelay);\n      }\n      if (!(p != null && p.disableHistory)) {\n        return o.history.set(value);\n      }\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/click/selectOnMultiClick/selectWord/char/char.ls","text":"(function(){\n  return function(char){\n    var v;\n    if (!char) {\n      return false;\n    }\n    if (!char.hasClass(\"inputChar\")) {\n      return true;\n    }\n    v = char.getValue();\n    if (v === \" \" || v === \"<br>\") {\n      return false;\n    } else {\n      char.select();\n      return true;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/click/positionCursor/positionSingleline/position.ls","text":"(function(){\n  return function(e, o){\n    var pageX, ref$, pageY, ref1$, allChars, i$, len$, el, ref2$;\n    pageX = ((ref$ = e.touches) != null ? ref$[0].pageX : void 8) || e.pageX;\n    pageY = ((ref1$ = e.touches) != null ? ref1$[0].pageY : void 8) || e.pageY;\n    allChars = o.div.findAll(\".inputChar\");\n    for (i$ = 0, len$ = allChars.length; i$ < len$; ++i$) {\n      el = allChars[i$];\n      if (pageX < el.offset().left + el.width() / 2) {\n        el.before(o.cursor);\n        return;\n      }\n    }\n    return (ref2$ = _.last(allChars)) != null ? ref2$.after(o.cursor) : void 8;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/click/selectOnDoubleClick/selectChar/select.ls","text":"(function(){\n  return function(char){\n    var v;\n    if (!char) {\n      return false;\n    }\n    if (!char.hasClass(\"inputChar\")) {\n      return true;\n    }\n    v = char.getValue();\n    if (v === \" \" || v === \"<br>\") {\n      return false;\n    } else {\n      char.select();\n      return true;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/inputForm/error/error.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      color: Color.red[700],\n      width: \"30em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto\"\n    }).html(\"&nbsp;\");\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/history/history.ls","text":"(function(){\n  return function(o){\n    var undoHistory, redoHistory, prevValue;\n    undoHistory = [];\n    redoHistory = [];\n    prevValue = null;\n    return {\n      set: function(value){\n        if (prevValue || prevValue === \"\") {\n          undoHistory.push(prevValue);\n        }\n        redoHistory = [];\n        return prevValue = value;\n      },\n      undo: function(){\n        var newValue;\n        if (undoHistory.length) {\n          redoHistory.push(o.getValue());\n          newValue = undoHistory.pop();\n          return o.setValue(newValue, {\n            disableHistory: true\n          });\n        }\n      },\n      redo: function(){\n        var newValue;\n        if (redoHistory.length) {\n          undoHistory.push(o.getValue());\n          newValue = redoHistory.pop();\n          return o.setValue(newValue, {\n            disableHistory: true\n          });\n        }\n      }\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/placeholder/placeholder.ls","text":"(function(){\n  return function(o){\n    var div;\n    if (!o.placeholder) {\n      return;\n    }\n    o.div.append(div = Div().css({\n      position: \"absolute\",\n      top: o.showSearchIcon ? \"0.35em\" : \"0.6em\",\n      left: o.showSearchIcon ? \"2.1em\" : \"0.6em\",\n      color: Color.grey[400],\n      pointerEvents: \"none\"\n    }).html(o.placeholder));\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/scrollToCursor/scroll.ls","text":"(function(){\n  return function(o){\n    var f;\n    f = function(){\n      var cursorPosition;\n      cursorPosition = o.cursor.offset().top - o.div.offset().top + o.cursor.height();\n      if (cursorPosition > o.div.height()) {\n        return o.div.scrollTop = o.cursor.offsetTop;\n      }\n    };\n    return _.throttle(f, 200);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/selection/selection.ls","text":"(function(){\n  return function(o){\n    var selectedChars;\n    selectedChars = function(){\n      return o.div.find(\".select\");\n    };\n    return {\n      chars: selectedChars,\n      unselect: function(){\n        var i$, ref$, len$, char, results$ = [];\n        for (i$ = 0, len$ = (ref$ = selectedChars()).length; i$ < len$; ++i$) {\n          char = ref$[i$];\n          results$.push(char.unselect());\n        }\n        return results$;\n      },\n      'delete': function(){\n        var i$, ref$, len$, char, results$ = [];\n        for (i$ = 0, len$ = (ref$ = selectedChars()).length; i$ < len$; ++i$) {\n          char = ref$[i$];\n          results$.push(char.remove());\n        }\n        return results$;\n      },\n      selectAll: function(){\n        var i$, ref$, len$, char, results$ = [];\n        for (i$ = 0, len$ = (ref$ = o.div.find(\".inputChar\")).length; i$ < len$; ++i$) {\n          char = ref$[i$];\n          results$.push(typeof char.select == 'function' ? char.select() : void 8);\n        }\n        return results$;\n      }\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/inputEditable/onPasswordDoubleClick/on.ls","text":"(function(){\n  return function(i){\n    if (i.params.textMode !== \"password\") {\n      return;\n    }\n    return i.div.gestureTapSequence({\n      tapSequence: \"..\",\n      maxDelay: 400,\n      onEnded: function(){\n        return i.div.selectAll();\n      }\n    });\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"lib/gui/inputEditable/divWrapper/cssScroller/css.ls","text":"(function(){\n  return function(){\n    var s;\n    s = Style();\n    s.innerHTML = '.scroller::-webkit-scrollbar{\\n  display : none;\\n}';\n    return s;\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"lib/gui/input2/submit/submit.ls","text":"(function(){\n  return function(o){\n    return function(autosubmit){\n      if (typeof o.onSubmit == 'function') {\n        o.onSubmit(autosubmit);\n      }\n      return clearTimeout(o.timeout);\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/input2/start/start.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var setLastInput, popup, ref$;\n      setLastInput = function(){\n        if ((typeof popup != 'undefined' && popup !== null ? popup.contains(o.div) : void 8) !== true) {\n          return app.lastInput = o.div;\n        } else if (popup.contains(o.div)) {\n          return app.lastPopupInput = o.div;\n        }\n      };\n      popup = app.currentPopup;\n      if (app.lastInput != null && app.lastInput !== o.div) {\n        app.lastInput.stop();\n      }\n      if (app.lastPopupInput != null && app.lastPopupInput !== o.div) {\n        app.lastPopupInput.stop();\n      }\n      if (!o.enabled || !o.div.isVisible()) {\n        return;\n      }\n      if (popup != null && !popup.contains(o.div)) {\n        setLastInput();\n        return;\n      }\n      o.screenKeyboard.start();\n      o.cursor.start();\n      o.externalKeyboard.start();\n      o.isStarted = true;\n      if (typeof o.onStart == 'function') {\n        o.onStart();\n      }\n      if (typeof (ref$ = app.currentPage).updateLayout == 'function') {\n        ref$.updateLayout();\n      }\n      return setLastInput();\n    };\n  };\n})();","updated":"2022-03-03T10:03:29.939799"},{"path":"lib/gui/inputEditable/passwordOverlay/overlay.ls","text":"(function(){\n  return function(i){\n    var update, div;\n    if (i.params.textMode !== \"password\") {\n      return;\n    }\n    update = function(){\n      var l, a, res$, i$, j;\n      l = i.divEditable.getValue().length;\n      res$ = [];\n      for (i$ = 1; i$ <= l; ++i$) {\n        j = i$;\n        res$.push(\"•\");\n      }\n      a = res$;\n      return div.html(a.join(\"\"));\n    };\n    div = Div({\n      position: \"absolute\",\n      left: 0,\n      top: \"0.1em\",\n      pointerEvents: \"none\",\n      lineHeight: i.params.lineHeight,\n      padding: i.params.linePadding,\n      fontFamily: \"monospace\",\n      letterSpacing: \"-0.1em\"\n    });\n    div.update = update;\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/repairAndroidLocalStorage/calcUserLogIds/calc.ls","text":"(function(){\n  return function(events, storedLogIds){\n    var allUserLogIds, i$, len$, e;\n    allUserLogIds = [];\n    for (i$ = 0, len$ = events.length; i$ < len$; ++i$) {\n      e = events[i$];\n      allUserLogIds = _.concat(allUserLogIds, e.value);\n    }\n    allUserLogIds = _.concat(allUserLogIds, storedLogIds);\n    return allUserLogIds = _.uniq(allUserLogIds);\n  };\n})();","updated":"2021-03-24T11:07:55.85259"},{"path":"lib/gui/karaokeText/karaokeText.ls","text":"(function(){\n  return function(o){\n    var text, active, interval, progress, charDivs, update, reset, stop, start, toggle, div, word, char;\n    text = o.text;\n    active = false;\n    interval = null;\n    progress = 0;\n    charDivs = [];\n    update = function(p, d, a){\n      var visibleChars, i$, ref$, len$, i, charDiv, w, results$ = [];\n      visibleChars = p / d * charDivs.length * 1.03;\n      for (i$ = 0, len$ = (ref$ = charDivs).length; i$ < len$; ++i$) {\n        i = i$;\n        charDiv = ref$[i$];\n        if (Math.floor(visibleChars) > i) {\n          results$.push(charDiv.css({\n            opacity: 1,\n            width: \"\"\n          }));\n        } else if (Math.floor(visibleChars) === i) {\n          w = visibleChars - Math.floor(visibleChars) * 100;\n          results$.push(charDiv.css({\n            opacity: 1,\n            width: w + \"%\"\n          }));\n        } else {\n          results$.push(charDiv.css({\n            opacity: 0,\n            width: \"\"\n          }));\n        }\n      }\n      return results$;\n    };\n    reset = function(){\n      return update(null, null, 0);\n    };\n    stop = function(){\n      active = false;\n      progress = 0;\n      clearInterval(interval);\n      return reset();\n    };\n    start = function(){\n      active = true;\n      clearInterval(interval);\n      return interval = setInterval(function(){\n        progress += 2;\n        if (progress < 100) {\n          return update(progress, 100);\n        } else {\n          return stop();\n        }\n      }, 100);\n    };\n    toggle = function(){\n      active = !active;\n      if (active) {\n        return start();\n      } else {\n        return stop();\n      }\n    };\n    div = Div().append(Div().append((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = text.split(\" \")).length; i$ < len$; ++i$) {\n        word = ref$[i$];\n        results$.push(Div().css({\n          display: \"inline-block\"\n        }).append((fn$())));\n      }\n      return results$;\n      function fn$(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = (word + \" \").split(\"\")).length; i$ < len$; ++i$) {\n          char = ref$[i$];\n          results$.push(Div().css({\n            display: \"inline-block\",\n            overflow: \"hidden\",\n            verticalAlign: \"top\"\n          }).html(char.replace(\" \", \"&nbsp;\")));\n        }\n        return results$;\n      }\n    }())), Div().css({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0\n    }).css({\n      color: Color.blue[500]\n    }).append((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = text.split(\" \")).length; i$ < len$; ++i$) {\n        word = ref$[i$];\n        results$.push(Div().css({\n          display: \"inline-block\"\n        }).append((fn$())));\n      }\n      return results$;\n      function fn$(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = (word + \" \").split(\"\")).length; i$ < len$; ++i$) {\n          char = ref$[i$];\n          div = Div().css({\n            display: \"inline-block\",\n            overflow: \"hidden\",\n            verticalAlign: \"top\"\n          }).html(char.replace(\" \", \"&nbsp;\"));\n          charDivs.push(div);\n          results$.push(div);\n        }\n        return results$;\n      }\n    }())));\n    div.update = update;\n    div.reset = reset;\n    div.start = start;\n    div.stop = stop;\n    div.toggle = toggle;\n    reset();\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/idle/logSessionStart/log.ls","text":"(function(){\n  return function(o){\n    return function(type){\n      return typeof log != 'undefined' && log !== null ? log.log({\n        event: \"sessionStart\",\n        type: type\n      }) : void 8;\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/vanillaInitProjectFailed/log/log.ls","text":"(function(){\n  return function(failedProjects){\n    var deviceLogId, e;\n    deviceLogId = Store(\"deviceLogId\");\n    e = {\n      event: \"deviceDebugInitProjectFailed\",\n      failedProjects: failedProjects\n    };\n    if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n      return deviceLog.log(e);\n    } else if (deviceLogId != null) {\n      return helpers.postEvent(deviceLogId, e);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/newTag/_t.ls","text":"(function(){\n  return {\n    'new': {\n      de: \"NEU\",\n      en: \"NEW\",\n      fr: \"NOUVEAU\",\n      es: \"NUEVO\",\n      pt: \"NOVO\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/verticalBarCanvas/createCanvas/row/row.ls","text":"(function(){\n  return function(yFrom, yTo, width, stat, context){\n    var w, xFrom, xTo;\n    w = stat.width;\n    if (w === 0) {\n      return;\n    }\n    w = +w.substr(0, w.length - 1);\n    xFrom = 0;\n    xTo = _.round(w * width / 100);\n    context.fillStyle = stat.color;\n    return context.fillRect(xFrom, yFrom, xTo, yTo - yFrom);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/promptPopup/_t.ls","text":"(function(){\n  return {\n    confirmButton: {\n      de: \"Bestätigen\",\n      en: \"Confirm\",\n      fr: \"Confirmer\",\n      es: \"Confirmar\",\n      pt: \"Confirmar\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/popup/show/show.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var ref$, p;\n      inc(\"/lib/util/freezeIOSScrollDivs/disable/disable\")();\n      if ((ref$ = app.lastInput) != null) {\n        ref$.stop();\n      }\n      p = app.currentPage;\n      p.popupWrapper.html(o.background).show();\n      p.popupBottom.empty();\n      app.currentPopup = o.popup;\n      if (o.animationOnShow) {\n        return inc(\"animation/animation\")(o);\n      } else {\n        return o.isStarted = true;\n      }\n    };\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_1-3/buttonContinue/button.ls","text":"(function(){\n  return function(click){\n    return Button({\n      label: T(\"send\"),\n      action: click,\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/createKeys/create.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var row;\n      o.keys = inc(\"keys/keys\")(o);\n      o.div.html(o.mouseBackground);\n      o.calcMap();\n      o.calcRowHeight();\n      return o.div.append(typeof o.keyboardHeader == 'function' ? o.keyboardHeader(o) : void 8, (function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = o.map).length; i$ < len$; ++i$) {\n          row = ref$[i$];\n          results$.push(inc(\"row/row\")(o, row));\n        }\n        return results$;\n      }()));\n    };\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/createKeys/keys/back/repeater/start.ls","text":"(function(){\n  return function(o, key, delay){\n    var minDelay, ref$;\n    minDelay = 50;\n    if (((ref$ = o.currentKey) != null ? ref$.key : void 8) === key) {\n      o.onKey(\"back\", true);\n      delay = Math.max(minDelay, delay);\n      return key.repeaterTimeout = setTimeout(function(){\n        return inc(THISFILE)(o, key, delay - 100);\n      }, delay);\n    }\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/cornerChar/cornerChar.ls","text":"(function(){\n  return function(key, o){\n    var r;\n    if (!key.tooltipMulti) {\n      return;\n    }\n    r = o.rowHeight.replace(\"em\", \"\");\n    return Div({\n      position: \"absolute\",\n      top: \"0.15em\",\n      right: \"0.4em\",\n      color: Color.grey[450],\n      fontSize: r < 3\n        ? \"0.6em\"\n        : r < 3.5 ? \"0.7em\" : \"0.8em\"\n    }).html(key.value.charAt(1));\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/calcShiftedValue/calc.ls","text":"(function(){\n  return function(value){\n    var a, res$, i$, len$, s;\n    res$ = [];\n    for (i$ = 0, len$ = value.length; i$ < len$; ++i$) {\n      s = value[i$];\n      if (s === \"ß\") {\n        res$.push(s);\n      } else {\n        res$.push(s.toUpperCase());\n      }\n    }\n    a = res$;\n    return a.join(\"\");\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/createKeys/keys/back/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/key/backspace.svg\"),\n      width: '1.2em',\n      height: '1.2em'\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/screenKeyboard/event/downLong/setTimeout.ls","text":"(function(){\n  return function(o){\n    var onLongDownTimeout;\n    onLongDownTimeout = function(){\n      var ref$;\n      if (o.longDownKey === o.currentKey) {\n        if (((ref$ = o.currentKey) != null ? ref$.downLong : void 8) != null) {\n          o.currentKey.downLong();\n          return typeof vibrate == 'function' ? vibrate(VIBRATION_TYPES.notificationSuccess) : void 8;\n        }\n      }\n    };\n    clearTimeout(o.longDownTimeout);\n    o.longDownTimeout = setTimeout(onLongDownTimeout, 600);\n    return o.longDownKey = o.currentKey;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/event/move/calcMouseDown/calc.ls","text":"(function(){\n  return function(e){\n    if (e.buttons == null) {\n      return e.which === 1;\n    }\n    return e.buttons === 1;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/fakeKeyStrokes/fake.ls","text":"(function(){\n  return function(o){\n    return function(p){\n      var delay, stroke;\n      delay = p.delay || 700;\n      o.minDuration = p.minDuration || 400;\n      stroke = function(s){\n        var nextChar, div;\n        nextChar = s.charAt(0);\n        div = o.div.findFirst(\".key-\" + nextChar);\n        div.key.down();\n        div.key.up();\n        if (s.length > 1) {\n          return setTimeout(function(){\n            return stroke(s.substring(1));\n          }, delay);\n        } else {\n          return typeof p.onDone == 'function' ? p.onDone() : void 8;\n        }\n      };\n      return stroke(p.text);\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/onWindowResize/onResize.ls","text":"(function(){\n  return function(o){\n    var onResize;\n    onResize = function(){\n      var h;\n      h = o.rowHeight;\n      o.calcRowHeight();\n      if (h === o.rowHeight) {\n        return;\n      }\n      o.createKeys();\n      if (o.div.isVisible()) {\n        return app.currentPage.setBottomFreeze(0);\n      }\n    };\n    return o.div.onWindowResize(onResize);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/start/start.ls","text":"(function(){\n  return function(o){\n    var start;\n    start = function(){\n      var ref$;\n      o.createKeys();\n      o.div.show();\n      return (ref$ = app.currentPage.navBottom) != null ? ref$.hide() : void 8;\n    };\n    return o.div.start = start;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/screenKeyboard/mouseBackground/background.ls","text":"(function(){\n  return function(o){\n    return Div({\n      position: \"absolute\",\n      bottom: 0,\n      left: 0,\n      right: 0,\n      height: \"var(--screenHeight)\"\n    }).hide();\n  };\n})();","updated":"2022-12-01T11:59:17.355716"},{"path":"lib/gui/slider/background/background.ls","text":"(function(){\n  return function(color){\n    return Div().css({\n      position: \"absolute\",\n      left: 0,\n      top: 0,\n      bottom: 0,\n      right: 0,\n      display: \"flex\"\n    }).append(Div().css({\n      width: \"100%\",\n      height: \"4px\",\n      borderRadius: \"2px\",\n      backgroundColor: color\n    }));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/gui/slider/knob/knob.ls","text":"(function(){\n  return function(onChange, onEnd){\n    var initialOffset, minLeft, maxLeft, startDrag, endDrag, updatePosition, div;\n    minLeft = 0;\n    maxLeft = 0;\n    startDrag = function(gr){\n      var offset, parentoff;\n      offset = gr.target.offset();\n      parentoff = gr.target.parent().offset();\n      minLeft = -offset.width / 2;\n      maxLeft = parentoff.width - offset.width / 2;\n      initialOffset = {\n        left: offset.left - parentoff.left\n      };\n    };\n    endDrag = function(gr){\n      onEnd();\n    };\n    updatePosition = function(gr){\n      var left;\n      left = Math.min(maxLeft, Math.max(minLeft, initialOffset.left + gr.translation.x));\n      gr.target.css({\n        left: left + \"px\"\n      });\n      onChange();\n    };\n    return div = Div().css({\n      position: \"absolute\",\n      top: \"calc(50% - 22px)\",\n      left: \"-22px\",\n      width: \"44px\",\n      height: \"44px\",\n      display: \"flex\"\n    }).append(Div().css({\n      width: \"50%\",\n      height: \"50%\",\n      margin: \"0 auto\",\n      borderRadius: \"50%\",\n      backgroundColor: \"white\",\n      border: \"1px solid \" + Color.grey[300],\n      boxShadow: \"1px 1px 2px rgba(0,0,0,0.2)\"\n    })).gesturePan({\n      id: \"drag\",\n      onStart: startDrag,\n      onChanged: updatePosition,\n      onEnded: endDrag,\n      onCancel: endDrag,\n      preventDefault: false\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/classKit/levelPlayer/start/calcIdentifierPath/calc.ls","text":"(function(){\n  return function(p, o){\n    var planPuid, topicPuid, blockPuid;\n    planPuid = o.plan.puid;\n    topicPuid = p.level.parentTopic.puid;\n    blockPuid = p.level.parentBlock.puid;\n    return o.identifierPath = [_.replace(planPuid, \"/\", \"-\"), _.replace(topicPuid, \"/\", \"-\"), _.replace(blockPuid, \"/\", \"-\")];\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/backupLocalStorage/init.ls","text":"(function(){\n  return function(done){\n    var oldStore, k, v, saveStoreToDisk, saveStoreToDiskDebounced, saveAndQuit, readLocalStorageFile, parseLocalStorageData, writeLocalStorageData, own$ = {}.hasOwnProperty;\n    if (Store.version === 2) {\n      done();\n      return;\n    }\n    oldStore = window.Store;\n    window.Store = function(key, value){\n      var result;\n      if (deepEq$(key, false, '===')) {\n        helpers.postEvent(Store('deviceLogId'), {\n          event: 'deviceDebugLocalStorageFalseCall',\n          value: value\n        });\n        return null;\n      }\n      result = oldStore.apply(oldStore, arguments);\n      if (value != null && engine.isMobileApp) {\n        saveStoreToDiskDebounced();\n      }\n      return result;\n    };\n    for (k in oldStore) if (own$.call(oldStore, k)) {\n      v = oldStore[k];\n      window.Store[k] = v;\n    }\n    window.Store.remove = function(key){\n      var result;\n      result = oldStore.remove(key);\n      if (engine.isMobileApp) {\n        saveStoreToDiskDebounced();\n      }\n      return result;\n    };\n    saveStoreToDisk = function(cb){\n      localStorage.isSaved = true;\n      return app.fileSystem.writeFile(\"localStorageSave/localStorage.json\", JSON.stringify(localStorage), 0, function(err, res){\n        return typeof cb == 'function' ? cb() : void 8;\n      });\n    };\n    saveStoreToDiskDebounced = _.debounce(saveStoreToDisk, 500);\n    saveAndQuit = function(){\n      return saveStoreToDisk(done);\n    };\n    readLocalStorageFile = function(){\n      return app.fileSystem.readFile(\"localStorageSave/localStorage.json\", function(err, res){\n        if (err) {\n          return saveAndQuit();\n        } else {\n          return parseLocalStorageData(res.data);\n        }\n      });\n    };\n    parseLocalStorageData = function(data){\n      var e;\n      try {\n        data = JSON.parse(data);\n      } catch (e$) {\n        e = e$;\n        return saveAndQuit();\n      }\n      return writeLocalStorageData(data);\n    };\n    writeLocalStorageData = function(data){\n      var currData, key, value;\n      currData = JSON.parse(JSON.stringify(localStorage));\n      for (key in data) {\n        value = data[key];\n        localStorage[key] = value;\n      }\n      helpers.postEvent(Store('deviceLogId'), {\n        event: 'deviceDebugRecoverLocalStorage',\n        recoveredData: data,\n        currentData: currData\n      });\n      return done();\n    };\n    if (!Store('isSaved') && engine.isMobileApp) {\n      return readLocalStorageFile();\n    } else {\n      return done();\n    }\n  };\n})();\nfunction deepEq$(x, y, type){\n  var toString = {}.toString, hasOwnProperty = {}.hasOwnProperty,\n      has = function (obj, key) { return hasOwnProperty.call(obj, key); };\n  var first = true;\n  return eq(x, y, []);\n  function eq(a, b, stack) {\n    var className, length, size, result, alength, blength, r, key, ref, sizeB;\n    if (a == null || b == null) { return a === b; }\n    if (a.__placeholder__ || b.__placeholder__) { return true; }\n    if (a === b) { return a !== 0 || 1 / a == 1 / b; }\n    className = toString.call(a);\n    if (toString.call(b) != className) { return false; }\n    switch (className) {\n      case '[object String]': return a == String(b);\n      case '[object Number]':\n        return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);\n      case '[object Date]':\n      case '[object Boolean]':\n        return +a == +b;\n      case '[object RegExp]':\n        return a.source == b.source &&\n               a.global == b.global &&\n               a.multiline == b.multiline &&\n               a.ignoreCase == b.ignoreCase;\n    }\n    if (typeof a != 'object' || typeof b != 'object') { return false; }\n    length = stack.length;\n    while (length--) { if (stack[length] == a) { return true; } }\n    stack.push(a);\n    size = 0;\n    result = true;\n    if (className == '[object Array]') {\n      alength = a.length;\n      blength = b.length;\n      if (first) {\n        switch (type) {\n        case '===': result = alength === blength; break;\n        case '<==': result = alength <= blength; break;\n        case '<<=': result = alength < blength; break;\n        }\n        size = alength;\n        first = false;\n      } else {\n        result = alength === blength;\n        size = alength;\n      }\n      if (result) {\n        while (size--) {\n          if (!(result = size in a == size in b && eq(a[size], b[size], stack))){ break; }\n        }\n      }\n    } else {\n      if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) {\n        return false;\n      }\n      for (key in a) {\n        if (has(a, key)) {\n          size++;\n          if (!(result = has(b, key) && eq(a[key], b[key], stack))) { break; }\n        }\n      }\n      if (result) {\n        sizeB = 0;\n        for (key in b) {\n          if (has(b, key)) { ++sizeB; }\n        }\n        if (first) {\n          if (type === '<<=') {\n            result = size < sizeB;\n          } else if (type === '<==') {\n            result = size <= sizeB\n          } else {\n            result = size === sizeB;\n          }\n        } else {\n          first = false;\n          result = size === sizeB;\n        }\n      }\n    }\n    stack.pop();\n    return result;\n  }\n}","updated":"2021-04-30T13:57:22.867401"},{"path":"lib/init/classKit/levelPlayer/start/beginActivityPath/begin.ls","text":"(function(){\n  return function(o){\n    if (ClassKitPlugin.beginActivityAtPath.length < 4) {\n      return ClassKitPlugin.beginActivityAtPath(o.identifierPath, false, function(error){});\n    } else {\n      return ClassKitPlugin.beginActivityAtPath(o.identifierPath, false, o.content, function(error){});\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/deviceCleanup/calcMbSpace/calc.ls","text":"(function(){\n  return function(space){\n    var spaceInMb;\n    return spaceInMb = engine.isiOsApp\n      ? space / 1024 / 1024\n      : engine.isAndroidApp ? space / 1024 : void 8;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/deviceCleanup/deleteIndexedDBLogs/delete.ls","text":"(function(){\n  return function(o, onDone){\n    var databases, totalToDelete, totalDone, startDate, removeDatabases, removeDatabase, removeDone;\n    databases = [];\n    totalToDelete = 0;\n    totalDone = 0;\n    startDate = new Date();\n    o.logs.oldLogsIndexedDB = {};\n    removeDatabases = function(dbs){\n      var i$, len$, db, results$ = [];\n      dbs = _.filter(dbs, function(db){\n        return _.startsWith(db.name, \"logger_events\") || db.name === \"logger_info\";\n      });\n      totalToDelete = dbs.length;\n      if (totalToDelete === 0) {\n        o.logs.oldLogsIndexedDB = \"no files\";\n        onDone();\n        return;\n      }\n      o.cleanup = true;\n      for (i$ = 0, len$ = dbs.length; i$ < len$; ++i$) {\n        db = dbs[i$];\n        results$.push(removeDatabase(db));\n      }\n      return results$;\n    };\n    removeDatabase = function(db){\n      var req;\n      req = indexedDB.deleteDatabase(db.name);\n      req.onsuccess = function(){\n        return removeDone();\n      };\n      req.onerror = function(err){\n        var ref$;\n        (ref$ = o.logs.oldLogsIndexedDB).errors == null && (ref$.errors = []);\n        o.logs.oldLogsIndexedDB.errors.push({\n          name: db.name,\n          message: err.message\n        });\n        return removeDone();\n      };\n      return req.onblocked = function(){\n        var ref$;\n        (ref$ = o.logs.oldLogsIndexedDB).errors == null && (ref$.errors = []);\n        o.logs.oldLogsIndexedDB.errors.push({\n          name: db.name,\n          message: \"blocked\"\n        });\n        return removeDone();\n      };\n    };\n    removeDone = function(){\n      totalDone++;\n      if (totalDone === totalToDelete) {\n        o.logs.oldLogsIndexedDB.duration = new Date() - startDate;\n        o.logs.oldLogsIndexedDB.total = totalToDelete;\n        return onDone();\n      }\n    };\n    return indexedDB.databases().then(function(result){\n      return removeDatabases(result);\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/deviceCleanup/deleteOldContentFolders/deleteFolder/delete.ls","text":"(function(){\n  return function(o, folderPath, callback){\n    return app.fileSystem.existsDir(folderPath, function(exists){\n      var cordovaDir, localFolder;\n      if (!exists) {\n        o.logs.oldContentFiles[folderPath] = null;\n        callback();\n        return;\n      }\n      o.cleanup = true;\n      cordovaDir = cordova.file.externalDataDirectory || cordova.file.dataDirectory;\n      localFolder = _.replace(cordovaDir, \"file://\", \"\") + folderPath;\n      return SolocodePlugin.listFilesInDirectory(localFolder, function(files){\n        o.logs.oldContentFiles[folderPath] = files.length;\n        return SolocodePlugin.removeDirectory(localFolder, callback, function(error){\n          deviceLog.log({\n            event: \"deviceCleanupAborted\",\n            reason: folderPath + \" remove error\",\n            error: error\n          });\n          return callback();\n        });\n      }, function(error){\n        return deviceLog.log({\n          event: \"deviceCleanupAborted\",\n          reason: \"listFilesInDirectory plugin error\",\n          error: error\n        });\n      });\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/idle/createInterval/createInterval.ls","text":"(function(){\n  return function(o){\n    var onInterval;\n    onInterval = function(){\n      var idleDuration;\n      idleDuration = (new Date() - o.lastActivityAt) / 1000;\n      if (idleDuration > o.timeoutSecs) {\n        clearInterval(o.interval);\n        o.interval = null;\n        return o.onTimeout();\n      }\n    };\n    return function(){\n      clearInterval(o.interval);\n      return o.interval = setInterval(onInterval, 5000);\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/errorHandler/calcApp01Checksum/calc.ls","text":"(function(){\n  return function(){\n    var total, length, i$, ref$, doc, ref1$, checksum;\n    total = 0;\n    length = 0;\n    for (i$ in ref$ = projects.documentCache[\"app01\"]) {\n      doc = ref$[i$];\n      total++;\n      length += (ref1$ = doc.text.length) != null ? ref1$ : 0;\n    }\n    return checksum = total + \"-\" + length;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/errorHandler/calcErrorDescription/objectifyError/objectify.ls","text":"(function(){\n  return function(error){\n    var recursivePropertyFinder;\n    try {\n      recursivePropertyFinder = function(obj){\n        var copy;\n        copy = function(result, value, key){\n          if (_.isFunction(obj[value]) === false) {\n            if (_.isObject(obj[value])) {\n              result[value] = recursivePropertyFinder(obj[value]);\n            } else {\n              result[value] = obj[value];\n            }\n          }\n          return result;\n        };\n        if (deepEq$(obj, Object.prototype, '===')) {\n          return {};\n        } else {\n          return _.reduce(Object.getOwnPropertyNames(obj), copy, recursivePropertyFinder(Object.getPrototypeOf(obj)));\n        }\n      };\n      return recursivePropertyFinder(error);\n    } catch (e$) {}\n  };\n})();\nfunction deepEq$(x, y, type){\n  var toString = {}.toString, hasOwnProperty = {}.hasOwnProperty,\n      has = function (obj, key) { return hasOwnProperty.call(obj, key); };\n  var first = true;\n  return eq(x, y, []);\n  function eq(a, b, stack) {\n    var className, length, size, result, alength, blength, r, key, ref, sizeB;\n    if (a == null || b == null) { return a === b; }\n    if (a.__placeholder__ || b.__placeholder__) { return true; }\n    if (a === b) { return a !== 0 || 1 / a == 1 / b; }\n    className = toString.call(a);\n    if (toString.call(b) != className) { return false; }\n    switch (className) {\n      case '[object String]': return a == String(b);\n      case '[object Number]':\n        return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);\n      case '[object Date]':\n      case '[object Boolean]':\n        return +a == +b;\n      case '[object RegExp]':\n        return a.source == b.source &&\n               a.global == b.global &&\n               a.multiline == b.multiline &&\n               a.ignoreCase == b.ignoreCase;\n    }\n    if (typeof a != 'object' || typeof b != 'object') { return false; }\n    length = stack.length;\n    while (length--) { if (stack[length] == a) { return true; } }\n    stack.push(a);\n    size = 0;\n    result = true;\n    if (className == '[object Array]') {\n      alength = a.length;\n      blength = b.length;\n      if (first) {\n        switch (type) {\n        case '===': result = alength === blength; break;\n        case '<==': result = alength <= blength; break;\n        case '<<=': result = alength < blength; break;\n        }\n        size = alength;\n        first = false;\n      } else {\n        result = alength === blength;\n        size = alength;\n      }\n      if (result) {\n        while (size--) {\n          if (!(result = size in a == size in b && eq(a[size], b[size], stack))){ break; }\n        }\n      }\n    } else {\n      if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) {\n        return false;\n      }\n      for (key in a) {\n        if (has(a, key)) {\n          size++;\n          if (!(result = has(b, key) && eq(a[key], b[key], stack))) { break; }\n        }\n      }\n      if (result) {\n        sizeB = 0;\n        for (key in b) {\n          if (has(b, key)) { ++sizeB; }\n        }\n        if (first) {\n          if (type === '<<=') {\n            result = size < sizeB;\n          } else if (type === '<==') {\n            result = size <= sizeB\n          } else {\n            result = size === sizeB;\n          }\n        } else {\n          first = false;\n          result = size === sizeB;\n        }\n      }\n    }\n    stack.pop();\n    return result;\n  }\n}","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/errorHandler/calcFileUpdatedAt/calc.ls","text":"(function(){\n  return function(filePath){\n    var project, file, updated, ref$;\n    project = filePath.split(\"/\")[2];\n    file = filePath.replace(\"/../\" + project + \"/\", \"\");\n    if (file.indexOf(\".ls\") === -1) {\n      file += \".ls\";\n    }\n    return updated = ((ref$ = projects.documentCache[project][file]) != null ? ref$.updated : void 8) || \"2000-01-01\";\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/errorHandler/detectRecurrentError/detect.ls","text":"(function(){\n  var o;\n  o = {\n    user: {\n      recurrentErrors: 0,\n      timeout: null,\n      timeoutStart: null,\n      lastRecurrentErrorAt: null,\n      lastError: null,\n      lastErrorAt: null\n    },\n    device: {\n      recurrentErrors: 0,\n      timeout: null,\n      timeoutStart: null,\n      lastRecurrentErrorAt: null,\n      lastError: null,\n      lastErrorAt: null\n    }\n  };\n  return function(e2, type){\n    var p, logRecurrentError, onTimeout;\n    p = o[type];\n    logRecurrentError = function(){\n      var l, event;\n      if (type === \"user\") {\n        l = log;\n        event = \"recurrentError\";\n      } else {\n        l = deviceLog;\n        event = \"deviceRecurrentError\";\n      }\n      return l != null ? l.log({\n        event: event,\n        error: e2,\n        quantity: p.recurrentErrors,\n        timeoutStart: p.timeoutStart,\n        lastRecurrentError: p.lastRecurrentErrorAt\n      }) : void 8;\n    };\n    onTimeout = function(){\n      if (p.lastRecurrentErrorAt > p.timeoutStart && p.timeoutStart > new Date() - 1000 * 60 * 60) {\n        p.timeout = setTimeout(onTimeout, 10000);\n        return p.timeoutStart = new Date();\n      } else {\n        logRecurrentError();\n        p.timeout = null;\n        p.timeoutStart = null;\n        return p.recurrentErrors = 0;\n      }\n    };\n    if (p.lastError != null && _.isEqual(p.lastError, e2) && new Date() - p.lastErrorAt < 10000) {\n      p.recurrentErrors++;\n      p.lastRecurrentErrorAt = new Date();\n    } else {\n      if (p.timeout) {\n        clearTimeout(p.timeout);\n        p.timeout = null;\n        p.timeoutStart = null;\n        if (p.recurrentErrors > 0) {\n          logRecurrentError();\n          p.recurrentErrors = 0;\n        }\n      }\n      p.lastRecurrentErrorAt = null;\n      p.recurrentErrors = 0;\n    }\n    p.lastError = _.clone(e2);\n    p.lastErrorAt = new Date();\n    if (p.recurrentErrors >= 5) {\n      if (p.timeout == null) {\n        p.timeout = setTimeout(onTimeout, 10000);\n        p.timeoutStart = new Date();\n      }\n      return true;\n    }\n    return false;\n  };\n})();","updated":"2021-03-29T11:31:33.932854"},{"path":"lib/init/errorHandler/showVanillaError/show.ls","text":"(function(){\n  return function(d){\n    var ref$, div, s;\n    if (typeof navigator != 'undefined' && navigator !== null) {\n      if ((ref$ = navigator.splashscreen) != null) {\n        if (typeof ref$.hide == 'function') {\n          ref$.hide();\n        }\n      }\n    }\n    div = document.createElement(\"div\");\n    div.innerHTML = \"\" + d.message + \"\\n<br>\\n\" + d.file + \"\\n<br>\\n\" + d.codeLineBefore + \"\\n<br>\\n\" + d.codeLine + \"\\n<br>\\n\" + d.codeLineAfter;\n    s = div.style;\n    s.color = \"red\";\n    return document.body.appendChild(div);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/extendLowDash/seededRandom/random.ls","text":"(function(){\n  return function(seed){\n    var randA, randB, randC, randValue, rand, random, copyArray, shuffleInPlace, shuffle, sample;\n    randA = 1303613;\n    randB = 20249;\n    randC = 2147483648;\n    randValue = seed != null ? seed : 0;\n    seed = function(seed){\n      randValue = seed;\n      return rand();\n    };\n    rand = function(){\n      randValue = (randA * randValue + randB) % randC;\n      return randValue;\n    };\n    random = function(lower, upper, floating){\n      var tmp, value;\n      if ((lower != null ? lower.setSeed : void 8) != null) {\n        seed(lower.setSeed);\n        return;\n      }\n      if (floating == null) {\n        if (typeof upper === 'boolean') {\n          floating = upper;\n          upper = undefined;\n        } else if (typeof lower === 'boolean') {\n          floating = lower;\n          lower = undefined;\n        }\n      }\n      if (lower === undefined && upper === undefined) {\n        lower = 0;\n        upper = randC;\n      } else {\n        if (upper === undefined) {\n          upper = lower;\n          lower = 0;\n        }\n      }\n      if (lower > upper) {\n        tmp = lower;\n        lower = upper;\n        upper = tmp;\n      }\n      value = lower + (rand() / randC) * (upper - lower);\n      if (floating) {\n        return value;\n      }\n      return Math.floor(value);\n    };\n    copyArray = function(source){\n      var array, i$, to$, i;\n      array = Array(source.length);\n      for (i$ = 0, to$ = source.length; i$ < to$; ++i$) {\n        i = i$;\n        array[i] = source[i];\n      }\n      return array;\n    };\n    shuffleInPlace = function(array){\n      var i$, to$, index, r, tmp;\n      for (i$ = 0, to$ = array.length; i$ < to$; ++i$) {\n        index = i$;\n        r = random(index, array.length);\n        tmp = array[index];\n        array[index] = array[r];\n        array[r] = tmp;\n      }\n      return array;\n    };\n    shuffle = function(array){\n      var copy;\n      if (!_.isArray(array)) {\n        return undefined;\n      }\n      if (array.length === 0) {\n        return [];\n      }\n      copy = copyArray(array);\n      shuffleInPlace(copy);\n      return copy;\n    };\n    sample = function(array){\n      var index;\n      index = random(array.length);\n      return array[index];\n    };\n    rand();\n    return {\n      seed: seed,\n      random: random,\n      shuffle: shuffle,\n      sample: sample\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/fileSystem/fileSystem.ls","text":"(function(){\n  return function(onDone){\n    var that;\n    if (that = engine.fileSystem) {\n      app.fileSystem = that;\n      return typeof onDone == 'function' ? onDone() : void 8;\n    } else if (engine.isMobileApp) {\n      app.fileSystem = fileSystem.create();\n      return app.fileSystem.init(onDone);\n    } else {\n      return typeof onDone == 'function' ? onDone() : void 8;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/fixChromeBorderRadiusBug/fix.ls","text":"(function(){\n  return function(){\n    return body.append(Div().css({\n      width: \"1em\",\n      height: \"1em\",\n      border: \"4px solid white\",\n      borderStyle: \"dotted\",\n      borderRadius: \"50%\"\n    }));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/idle/onActivity/onActivity.ls","text":"(function(){\n  return function(o){\n    var onActivity;\n    return onActivity = function(){\n      var ref$;\n      if (o.overlay) {\n        if (typeof (ref$ = o.overlay).onActivity == 'function') {\n          ref$.onActivity();\n        }\n        return;\n      }\n      if (!o.interval) {\n        o.createInterval();\n      }\n      return o.lastActivityAt = new Date();\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/idle/onDebugRefresh/refresh.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var ref$;\n      if (o.endedAt) {\n        o.logSessionStart(\"debugRefresh\");\n      }\n      if ((ref$ = o.overlay) != null) {\n        ref$.remove();\n      }\n      o.overlay = null;\n      o.endedAt = null;\n      o.lastActivityAt = new Date();\n      return o.createInterval();\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/idle/onResume/deleteLastEndEvent/deleteLastEndEvent.ls","text":"(function(){\n  return function(){\n    var e;\n    e = log.findLast({\n      event: \"sessionEnd\",\n      src: Store('sourceId')\n    });\n    return log.deleteEvent(e);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/idle/onSuspend/onSuspend.ls","text":"(function(){\n  return function(o){\n    return function(){\n      if (o.overlay) {\n        return;\n      }\n      if (o.endedAt) {\n        return;\n      }\n      if (!window.log) {\n        return;\n      }\n      o.endedAt = new Date();\n      return o.logSessionEnd(\"suspend\");\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/idle/onTimeout/onTimeout.ls","text":"(function(){\n  return function(o){\n    return function(){\n      if (o.overlay) {\n        return;\n      }\n      if (o.endedAt) {\n        return;\n      }\n      if (!window.log) {\n        return;\n      }\n      o.logSessionEnd(\"timeout\");\n      return o.showOverlay();\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/idle/showOverlay/overlays/multiRemember/text/text.ls","text":"(function(){\n  return function(userDescription){\n    var name;\n    name = userDescription.displayName;\n    if (!name) {\n      name = T(\"hello\");\n    }\n    return Div().css({\n      lineHeight: \"1.5em\",\n      padding: \"1em 0\"\n    }).secureHtml(name, \", \", T(\"multiRememberText\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/idle/showOverlay/overlays/_shared/buttonExit/button.ls","text":"(function(){\n  return function(o){\n    var tap;\n    tap = function(){\n      var ref$;\n      if ((ref$ = o.overlay) != null) {\n        ref$.remove();\n      }\n      o.overlay = null;\n      o.endedAt = null;\n      o.interval = null;\n      o.lastActivityAt = new Date();\n      return startPage({\n        path: path(\"/pages/start/exitUser/page\"),\n        params: {\n          logoutType: \"idle_overlay\"\n        }\n      });\n    };\n    return Button(T(\"end\")).tap(tap);\n  };\n})();","updated":"2021-03-26T11:20:19.439349"},{"path":"lib/init/idle/showOverlay/overlays/dontRemember/text/text.ls","text":"(function(){\n  return function(userDescription){\n    var name;\n    name = userDescription.displayName;\n    if (!name) {\n      name = T(\"hello\");\n    }\n    return Div().css({\n      lineHeight: \"1.5em\",\n      padding: \"1em 0\"\n    }).secureHtml(name, \", \", T(\"dontRememberText\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/networkConnection/initMobile/init.ls","text":"(function(){\n  return function(triggerListener){\n    var updateConnection, timerId;\n    updateConnection = function(type){\n      engine.networkConnection.type = navigator.connection.type;\n      engine.networkConnection.isOnline = engine.networkConnection.type !== Connection.NONE;\n      return triggerListener();\n    };\n    document.addEventListener(\"offline\", updateConnection, false);\n    document.addEventListener(\"online\", updateConnection, false);\n    cordova.exec(function(info){\n      navigator.connection.type = info;\n      if (info === \"none\") {\n        return timerId = setTimeout(function(){\n          cordova.fireDocumentEvent('offline');\n          return timerId = null;\n        }, 500);\n      } else {\n        if (timerId != null) {\n          clearTimeout(timerId);\n          timerId = undefined;\n        }\n        return cordova.fireDocumentEvent('online');\n      }\n    }, function(error){\n      return debug(\"error initializing network connection \" + error);\n    }, \"NetworkStatus\", \"getConnectionInfo\");\n    return updateConnection();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/onNewLogEvents/deviceRemoteUserLogout/deviceRemoteUserLogout.ls","text":"(function(){\n  return function(events){\n    var userLogIds, localIds, that, needsRestart, i$, len$, e;\n    events = _.filter(events, function(e){\n      return !e.done;\n    });\n    userLogIds = _.map(events, function(e){\n      return e.userLogId;\n    });\n    localIds = inc(\"/lib/util/storedUsers/logIds/logIds\")();\n    if (that = typeof log != 'undefined' && log !== null ? log.id() : void 8) {\n      localIds.push(that);\n    }\n    needsRestart = _.some(userLogIds, function(id){\n      return _.includes(localIds, id);\n    });\n    for (i$ = 0, len$ = events.length; i$ < len$; ++i$) {\n      e = events[i$];\n      inc(\"/lib/init/checkRemoteLogout/logoutUser/logout\")(e);\n    }\n    if (needsRestart) {\n      return setTimeout(function(){\n        return location.reload();\n      }, 1000);\n    }\n  };\n})();","updated":"2021-03-24T11:07:55.85259"},{"path":"lib/init/onNewLogEvents/isGroupMember/isGroupMember.ls","text":"(function(){\n  return function(events){\n    return _.each(events, function(event){\n      if (window.groupLogs[event.groupCode] != null) {\n        return;\n      }\n      return Logger.subscribe({\n        logId: event.groupCode,\n        filter: \"subscribeGroup\",\n        removeOldEvents: true,\n        onSubscribe: function(groupLog){\n          return window.groupLogs[event.groupCode] = groupLog;\n        }\n      });\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/onNewLogEvents/isSchoolMember/isSchoolMember.ls","text":"(function(){\n  return function(events){\n    return _.each(events, function(event){\n      if (window.schoolLogs[event.schoolCode] != null) {\n        return;\n      }\n      return Logger.subscribe({\n        logId: event.schoolCode,\n        filter: \"subscribeSchool\",\n        removeOldEvents: true,\n        onSubscribe: function(schoolLog){\n          return window.schoolLogs[event.schoolCode] = schoolLog;\n        }\n      });\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/push/notification/notification.ls","text":"(function(){\n  return function(notification){\n    var logId, ref$, userLog;\n    logId = (ref$ = notification.additionalData.json) != null ? ref$.logId : void 8;\n    if (!logId) {\n      return;\n    }\n    userLog = window.userLogs[logId];\n    if (userLog) {\n      return userLog.log({\n        event: 'pushReceive',\n        notification: notification\n      });\n    } else {\n      return deviceLog.log({\n        event: 'devicePushReceive',\n        notification: notification\n      });\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/push/registration/registration.ls","text":"(function(){\n  return function(o){\n    var pushId;\n    pushId = o.registrationId;\n    return PushNotification.hasPermission(function(data){\n      var enabled, e;\n      enabled = data.isEnabled;\n      e = deviceLog.findLast({\n        event: \"deviceSetPushId\"\n      });\n      if (!e || !(e.value === pushId && e.enabled === enabled)) {\n        return deviceLog.log({\n          event: \"deviceSetPushId\",\n          value: pushId,\n          enabled: enabled\n        });\n      }\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/repairAndroidLocalStorage/findDeviceLogIds/find.ls","text":"(function(){\n  return function(onDone){\n    return app.fileSystem.listDir(\"/logger/\", function(error, dir){\n      var n, deviceLogIds, res$, i$, len$, name;\n      n = _.map(dir, \"name\");\n      n = _.filter(n, function(f){\n        return _.startsWith(f, \"events_D-\");\n      });\n      n = _.filter(n, function(f){\n        return !_.includes(f, \"unsent\");\n      });\n      n = _.filter(n, function(f){\n        return !_.endsWith(f, \"_tmp\");\n      });\n      res$ = [];\n      for (i$ = 0, len$ = n.length; i$ < len$; ++i$) {\n        name = n[i$];\n        res$.push(name.replace(\"events_\", \"\").replace(\".json\", \"\"));\n      }\n      deviceLogIds = res$;\n      deviceLogIds.push(Store(\"deviceLogId\"));\n      deviceLogIds = _.uniq(deviceLogIds);\n      return onDone(deviceLogIds);\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/push/error/error.ls","text":"(function(){\n  return function(error){\n    return deviceLog.log({\n      event: 'devicePushError',\n      error: error,\n      message: error.message\n    });\n  };\n})();","updated":"2023-10-24T08:06:59.581855"},{"path":"lib/init/repairAndroidLocalStorage/loadEvents/load.ls","text":"(function(){\n  return function(deviceLogId, onEventsLoaded){\n    var filename, loadFile, findEvents;\n    filename = \"/logger/events_\" + deviceLogId + \".json\";\n    loadFile = function(){\n      return app.fileSystem.readFile(filename, function(error, result){\n        var eventsByKey, e;\n        try {\n          eventsByKey = JSON.parse(result.data);\n        } catch (e$) {\n          e = e$;\n          eventsByKey = {};\n        }\n        return findEvents(eventsByKey);\n      });\n    };\n    findEvents = function(eventsByKey){\n      var resultEvents, i$, e;\n      resultEvents = [];\n      for (i$ in eventsByKey) {\n        e = eventsByKey[i$];\n        if (e.data.event === \"deviceSetUserLogIds\") {\n          resultEvents.push(e.data);\n        }\n      }\n      return onEventsLoaded(resultEvents);\n    };\n    return loadFile();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/restartIfRequired/logProjectsInfo/checkInconsistentProjectsInfos/rebuildProjectsFile/rebuild.ls","text":"(function(){\n  return function(onDone){\n    var jsonObject, filePath, filePathTemp, buildJsonObject, writeTempFile, onWriteDone, replaceCurrentFile, finish;\n    jsonObject = {};\n    filePath = \"projects/info.json\";\n    filePathTemp = filePath + \"_temp\";\n    buildJsonObject = function(){\n      var projectName, ref$, info;\n      for (projectName in ref$ = projects.info()) {\n        info = ref$[projectName];\n        jsonObject[projectName] = {\n          key: projectName,\n          branch: info.branch,\n          version: info.version,\n          versionDate: info.versionDate,\n          versionDownloadedAt: info.versionDownloadedAt,\n          checksum: info.currentChecksum,\n          server: info.server,\n          rebuildAt: new Date().toISOString()\n        };\n      }\n      return writeTempFile();\n    };\n    writeTempFile = function(){\n      var fileContent;\n      fileContent = JSON.stringify(jsonObject);\n      return app.fileSystem.writeFile(filePathTemp, fileContent, 0, onWriteDone);\n    };\n    onWriteDone = function(error){\n      return trySafe(function(){\n        if (error) {\n          return onDone(false);\n        } else {\n          return replaceCurrentFile();\n        }\n      });\n    };\n    replaceCurrentFile = function(){\n      return app.fileSystem.moveFile(filePathTemp, filePath, function(){\n        return finish();\n      });\n    };\n    finish = function(){\n      return trySafe(function(){\n        return onDone(true);\n      });\n    };\n    return buildJsonObject();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/restartIfRequired/waitUntilProjectSave/wait.ls","text":"(function(){\n  return function(onDone){\n    var f, idleTime;\n    f = function(){\n      var duration;\n      if (_.keys(window.loadProjectActiveSaveJobs).length > 0 || projects.activeStoreJobs != null) {\n        return setTimeout(f, 100);\n      } else {\n        duration = new Date() - idleTime;\n        return onDone(duration);\n      }\n    };\n    idleTime = new Date();\n    return f();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/setiOSAppAudioCategory/set.ls","text":"(function(){\n  return function(category){\n    return typeof AVAudioSession != 'undefined' && AVAudioSession !== null ? AVAudioSession.setCategoryWithOptions(category != null\n      ? category\n      : AVAudioSession.Categories.PLAYBACK, AVAudioSession.CategoryOptions.DUCK_OTHERS) : void 8;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/sourceId/sourceId.ls","text":"(function(){\n  return function(){\n    var sourceId;\n    sourceId = Store('sourceId');\n    if ((sourceId != null ? sourceId.length : void 8) !== 4) {\n      return sourceId = Store('sourceId', helpers.guid(4));\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/startFirstPage/deepLinkContent/level/calcLevelPath/calc.ls","text":"(function(){\n  return function(pageUrl, planDescription){\n    var p;\n    p = pageUrl.split(planDescription.pageUrl)[1];\n    p = _.replace(p, T(\"topicURLReplacement\"), \"/topic\");\n    p = _.replace(p, T(\"blockURLReplacement\"), \"/block\");\n    p = _.replace(p, T(\"levelURLReplacement\"), \"/level\");\n    p = \"/../\" + planDescription.project + p;\n    return p;\n  };\n})();","updated":"2023-02-09T16:45:35.225441"},{"path":"lib/init/startFirstPage/deepLinkContent/plan/plan.ls","text":"(function(){\n  return function(pageUrl, planDescription){\n    return startPage({\n      path: path(\"/pages/content/plan/page\"),\n      history: -(app.pageHistory.length - 1),\n      params: {\n        planPath: planDescription.planPath,\n        isDeepLink: true\n      }\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/seo/element/breadcrumbs/breadcrumb/breadcrumb.ls","text":"(function(){\n  return function(b, showArrow){\n    return Span().css({\n      flex: \"0 0 auto\",\n      color: Color.blue[800],\n      fontSize: \"0.8em\",\n      whiteSpace: \"nowrap\"\n    }).append(inc(\"/lib/seo/element/a2/a\")({\n      html: b.name,\n      pageUrl: b.pageUrl,\n      pageAnchor: b.pageAnchor\n    }), showArrow ? Span().css({\n      padding: \"0 0.4em\",\n      color: Color.grey[400]\n    }).html(\"›\") : void 8);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/init/subscribeDeviceAndUserLogs/subscribeDeviceLog/_fake/fake.ls","text":"(function(){\n  return function(){\n    return window.deviceLog = {\n      id: function(){},\n      'var': function(){},\n      findFirst: function(){},\n      findLast: function(){},\n      log: function(){},\n      deleteEvent: function(){},\n      changeEvent: function(){},\n      getDetails: function(){},\n      list: function(){\n        return [];\n      }\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/subscribeDeviceAndUserLogs/subscribeUserLogs/_fake/fake.ls","text":"(function(){\n  return function(){\n    window.userLogs = {};\n    window.groupLogs = {};\n    return window.schoolLogs = {};\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/twitch/twitch.ls","text":"(function(){\n  return function(){\n    return window.twitch = function(o){\n      var l, that, ref$;\n      if (!o) {\n        return undefined;\n      }\n      l = engine.guiLanguage;\n      if (that = o[l]) {\n        return that;\n      }\n      if (l.length > 2) {\n        if (that = o[l.substring(0, 2)]) {\n          return that;\n        }\n      }\n      return (ref$ = o['default']) != null\n        ? ref$\n        : o.def;\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/vanillaDebug/debug.ls","text":"(function(){\n  return function(){\n    return projects.includeInjections.debug = function(filePath){\n      return window.debug = function(o){\n        var ref$;\n        if (engine.isDebug) {\n          if (typeof navigator != 'undefined' && navigator !== null) {\n            if ((ref$ = navigator.splashscreen) != null) {\n              if (typeof ref$.hide == 'function') {\n                ref$.hide();\n              }\n            }\n          }\n          return alert(\"DEBUG\\n \" + JSON.stringify(o, null, \" \"));\n        }\n      };\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/vanillaInitErrorHandler/log/log.ls","text":"(function(){\n  return function(error){\n    var deviceLogId, e;\n    deviceLogId = Store(\"deviceLogId\");\n    e = {\n      event: \"deviceDebugInitErrorShown\",\n      error: error\n    };\n    if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n      return typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog.log(e) : void 8;\n    } else if (deviceLogId != null) {\n      return helpers.postEvent(deviceLogId, e);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/vanillaInitErrorHandler/logDebugEvent/log.ls","text":"(function(){\n  return function(e){\n    var deviceLogId;\n    deviceLogId = Store(\"deviceLogId\");\n    e = {\n      event: \"deviceDebugCatchInitError\",\n      error: e\n    };\n    if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n      return typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog.log(e) : void 8;\n    } else if (deviceLogId != null) {\n      return helpers.postEvent(deviceLogId, e);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/vanillaInitErrorHandler/text/text.ls","text":"(function(){\n  return function(){\n    var div, s;\n    div = document.createElement(\"div\");\n    s = div.style;\n    s.maxWidth = \"25em\";\n    s.textAlign = \"center\";\n    s.fontSize = \"17px\";\n    s.lineHeight = \"1.5em\";\n    div.innerHTML = T(\"errorMessage\");\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/vanillaInitProjectFailed/button/button.ls","text":"(function(){\n  return function(){\n    var isClicked, click, div, s;\n    isClicked = false;\n    click = function(e){\n      if (isClicked) {\n        return;\n      }\n      isClicked = true;\n      return location.reload();\n    };\n    div = document.createElement(\"div\");\n    s = div.style;\n    s.display = \"inline-block\";\n    s.padding = \"0.6em\";\n    s.marginTop = \"2em\";\n    s.fontSize = \"17px\";\n    s.lineHeight = \"1.5em\";\n    s.backgroundColor = '#EEE';\n    s.cursor = \"pointer\";\n    div.innerHTML = T(\"tryAgain\");\n    div.addEventListener(\"mousedown\", click);\n    div.addEventListener(\"touchstart\", click);\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/vanillaInitProjectFailed/calcFailedProjects/calc.ls","text":"(function(){\n  return function(projectDescriptions){\n    var i$, len$, pd, results$ = [];\n    for (i$ = 0, len$ = projectDescriptions.length; i$ < len$; ++i$) {\n      pd = projectDescriptions[i$];\n      if (!pd.error) {\n        continue;\n      }\n      results$.push(_.omit(pd.result, [\"failed\", \"logs\"]));\n    }\n    return results$;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/vanillaInitProjectFailed/debugDetails/debugDetails.ls","text":"(function(){\n  return function(projectDescriptions){\n    var click, div, s;\n    click = function(e){\n      var errorResults, res$, i$, ref$, len$, pd;\n      res$ = [];\n      for (i$ = 0, len$ = (ref$ = projectDescriptions).length; i$ < len$; ++i$) {\n        pd = ref$[i$];\n        if (pd.error) {\n          res$.push(pd.result);\n        } else {\n          continue;\n        }\n      }\n      errorResults = res$;\n      div.parentNode.style.display = \"block\";\n      s.textAlign = \"left\";\n      s.fontSize = \"12px\";\n      return div.innerHTML = \"<pre>\" + JSON.stringify(errorResults, null, \" \") + \"</pre>\";\n    };\n    div = document.createElement(\"div\");\n    s = div.style;\n    s.padding = \"1em\";\n    s.marginTop = \"2em\";\n    s.fontSize = \"17px\";\n    s.color = \"grey\";\n    s.lineHeight = \"1.5em\";\n    div.innerHTML = \"Debug Details\";\n    div.addEventListener(\"mousedown\", click);\n    div.addEventListener(\"touchstart\", click);\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/init/vanillaInitProjectFailed/text/text.ls","text":"(function(){\n  return function(){\n    var div, s;\n    div = document.createElement(\"div\");\n    s = div.style;\n    s.width = \"25em\";\n    s.maxWidth = \"90%\";\n    s.textAlign = \"center\";\n    s.fontSize = \"17px\";\n    s.lineHeight = \"1.5em\";\n    div.innerHTML = T(\"offlineMessage\");\n    return div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/svg/icon/menu-mini.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M52.2 107.6v-10h55.6v10zM52.2 84.9v-10h55.6v10zM52.2 62.2v-10h55.6v10z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/init/vibrate/init.ls","text":"(function(){\n  return function(){\n    window.VIBRATION_TYPES = {\n      selection: \"Use to indicate a change in selection\",\n      notificationError: \"Use to indicate Failure\",\n      notificationSuccess: \"Use to indicate Success\",\n      notificationWarning: \"Use to indicate Warnings\",\n      impactLight: \"Indicate a light Impact\",\n      impactMedium: \"Indicate a medium Impact\",\n      impactStrong: \"Indicate a strong Impact\",\n      gestureSelectionStart: \"prepare for many selection feedbacks during a gesture\",\n      gestureSelectionEnd: \"call when the gesture is finished\",\n      gestureSelectionChanged: \"triggers a selection, call gestureSelectionStart first\"\n    };\n    return window.vibrate = function(type){\n      var enabled, ref$;\n      enabled = (ref$ = deviceLog['var'](\"enableVibrationEffects\")) != null ? ref$ : true;\n      if (!enabled) {\n        return;\n      }\n      if (window.TapticEngine != null) {\n        if (type === VIBRATION_TYPES.gestureSelectionChanged) {\n          return TapticEngine.gestureSelectionChanged();\n        } else if (type === VIBRATION_TYPES.selection) {\n          return TapticEngine.selection();\n        } else if (type === VIBRATION_TYPES.notificationError) {\n          return TapticEngine.notification({\n            type: \"error\"\n          });\n        } else if (type === VIBRATION_TYPES.notificationSuccess) {\n          return TapticEngine.notification({\n            type: \"success\"\n          });\n        } else if (type === VIBRATION_TYPES.notificationWarning) {\n          return TapticEngine.notification({\n            type: \"warning\"\n          });\n        } else if (type === VIBRATION_TYPES.impactLight) {\n          return TapticEngine.impact({\n            style: \"light\"\n          });\n        } else if (type === VIBRATION_TYPES.impactMedium) {\n          return TapticEngine.impact({\n            style: \"medium\"\n          });\n        } else if (type === VIBRATION_TYPES.impactStrong) {\n          return TapticEngine.impact({\n            style: \"heavy\"\n          });\n        } else if (type === VIBRATION_TYPES.gestureSelectionStart) {\n          return TapticEngine.gestureSelectionStart();\n        } else if (type === VIBRATION_TYPES.gestureSelectionEnd) {\n          return TapticEngine.gestureSelectionEnd();\n        }\n      } else if (engine.isAndroidApp) {\n        if (type === VIBRATION_TYPES.selection) {\n          return navigator.vibrate(20);\n        } else if (type === VIBRATION_TYPES.notificationError) {\n          return navigator.vibrate([20, 50, 30]);\n        } else if (type === VIBRATION_TYPES.notificationSuccess) {\n          return navigator.vibrate(30);\n        } else if (type === VIBRATION_TYPES.notificationWarning) {\n          return navigator.vibrate(25);\n        } else if (type === VIBRATION_TYPES.impactLight) {\n          return navigator.vibrate(25);\n        } else if (type === VIBRATION_TYPES.impactMedium) {\n          return navigator.vibrate(30);\n        } else if (type === VIBRATION_TYPES.impactStrong) {\n          return navigator.vibrate(35);\n        }\n      }\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadContentFile/startJob/_shared/calcUrl/calc.ls","text":"(function(){\n  return function(job){\n    var server, url;\n    server = inc(\"server/server\")(job);\n    url = server + (\"/\" + job.fileApi) + (\"/?fileId=\" + encodeURIComponent(job.fileId)) + (\"&etag=\" + job.etag);\n    return url;\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/offline/offlinePage/offlinePage.ls","text":"(function(){\n  return function(page, retry, isTechnicalProblem){\n    var clickRetry, div;\n    clickRetry = function(){\n      div.hide();\n      if (retry != null) {\n        return retry();\n      } else {\n        return startPage({\n          history: 0\n        });\n      }\n    };\n    page.setBottomFreeze(0);\n    return page.html(div = Div().html(Div({\n      paddingBottom: \"1.5em\",\n      lineHeight: \"1.5em\",\n      margin: \"0 auto\",\n      width: \"30em\",\n      maxWidth: \"90%\"\n    }).html(isTechnicalProblem\n      ? T(\"technicalProblemError\")\n      : T(\"offlineError\")), inc(\"/lib/gui/maintenanceMessage/message\")(\"showOnOffline\"), Button(isTechnicalProblem\n      ? T(\"tryAgain\")\n      : T(\"loadAgain\")).tap(clickRetry)));\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"lib/seo/element/a2/tooltip/tooltip.ls","text":"(function(){\n  return function(a, url){\n    var toolTip, mouseout;\n    toolTip = Div().css({\n      position: \"absolute\",\n      left: a.offset().left + \"px\",\n      top: Math.max(0, a.offset().top - 30) + \"px\",\n      pointerEvents: \"none\",\n      display: \"flex\"\n    }).append(Div().css({\n      fontSize: \"0.7em\",\n      padding: \"0.3em\",\n      backgroundColor: Color.grey[100],\n      opacity: 0.8,\n      filter: 'drop-shadow(1px 1px 1px #bbb)'\n    }).html(url)).appendTo(body);\n    mouseout = function(){\n      toolTip.remove();\n      return a.unbind(\"mouseout\", mouseout);\n    };\n    return a.bind(\"mouseout\", mouseout);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/seo/element/breadcrumbs/ldjsonTag/tag.ls","text":"(function(){\n  return function(breadcrumbList){\n    var o, i, b, s;\n    o = {\n      \"@context\": \"http://schema.org\",\n      \"@type\": \"BreadcrumbList\",\n      \"itemListElement\": (function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = breadcrumbList).length; i$ < len$; ++i$) {\n          i = i$;\n          b = ref$[i$];\n          results$.push({\n            \"@type\": \"ListItem\",\n            \"position\": i + 1,\n            \"name\": b.name,\n            \"item\": b.url\n          });\n        }\n        return results$;\n      }())\n    };\n    s = document.createElement(\"script\").attr({\n      type: \"application/ld+json\"\n    });\n    s.appendChild(document.createTextNode(JSON.stringify(o)));\n    return s;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/seo/element/h1/tooltip/tooltip.ls","text":"(function(){\n  return function(h1){\n    var d, ref$, breadcrumbs, toolTip, mouseout;\n    d = typeof (ref$ = app.currentPage.pageCode).urlDescription == 'function' ? ref$.urlDescription() : void 8;\n    if (!d) {\n      return;\n    }\n    breadcrumbs = \"https://anton.app > \" + _.map(d.breadcrumbs, \"name\").join(\" > \");\n    toolTip = Div().css({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      pointerEvents: \"none\",\n      display: \"flex\",\n      zIndex: 3\n    }).append(Div().css({\n      fontSize: \"0.7em\",\n      padding: \"0.6em\",\n      backgroundColor: Color.grey[100],\n      width: \"35em\",\n      whiteSpace: \"wrap\",\n      filter: 'drop-shadow(1px 1px 1px #bbb)',\n      color: \"black\",\n      opacity: 0.8\n    }).html(\"Title (\" + d.title.length + \"/70):\\n\" + d.title + \"\\n\\nBreadcrumbs (\" + breadcrumbs.length + \"/90):\\n\" + breadcrumbs + \"\\n\\nMeta description (\" + d.metaDescription.length + \"/300):\\n\" + d.metaDescription)).appendTo(body);\n    mouseout = function(){\n      toolTip.remove();\n      return h1.unbind(\"mouseout\", mouseout);\n    };\n    return h1.bind(\"mouseout\", mouseout);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/svg/icon/folder.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M25 125h110V55H67V35H25v90zM15 25h62v20h68v90H15V25z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/menu-dots-small-vertical.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"evenodd\">\n    <path d=\"M90 50H70V30h20zM90 90H70V70h20zM90 130H70v-20h20z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/refresh.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"160\" height=\"160\" viewBox=\"0 0 160 160\">\n  <g>\n    <path d=\"M137.225 49.55C119.469 18.798 80.145 8.26 49.39 26.017 18.637 43.77 8.1 83.096 25.855 113.85c17.756 30.753 57.08 41.29 87.835 23.535a64.205 64.205 0 0 0 16.635-13.774l-7.585-6.517a54.206 54.206 0 0 1-14.05 11.63c-25.971 14.995-59.18 6.096-74.174-19.874C19.52 82.879 28.42 49.67 54.39 34.676c25.97-14.994 59.18-6.096 74.173 19.875l8.66-5z\"/>\n    <polygon points=\"100 48.805 100 58.805 141.805 58.805 141.805 17 131.805 17 131.805 48.805\"/>\n  </g>\n</svg>\n","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/svg/icon/select.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M52.4 25H25v27.4H15V15h37.4zM108 25h27.4v27.4h10V15H108zM52.4 135H25v-27.4H15V145h37.4zM108 135h27.4v-27.4h10V145H108z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/medal-gold.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <path fill=\"#F5D377\" d=\"M135.642 23.584c30.81 30.81 30.81 80.76 0 111.572-30.81 30.81-80.762 30.81-111.573 0-30.81-30.811-30.81-80.763 0-111.572 30.81-30.81 80.763-30.81 111.573 0\"/>\n    <path fill=\"#F0E2C1\" d=\"M136.125 24.065c-.236-.237-.47-.471-.71-.706.24.235.474.47.71.706\"/>\n    <path fill=\"#F8CB67\" d=\"M79.856 158.262c-20.178 0-40.356-7.691-55.757-23.077l.427.417a80.349 80.349 0 0 1-1.542-1.611c11.628 5.782 24.326 8.673 37.026 8.673.233 0 .467-.001.699-.003a66.536 66.536 0 0 0 19.147 2.811c16.935 0 33.87-6.446 46.764-19.339 12.892-12.893 19.338-29.828 19.338-46.764a66.5 66.5 0 0 0-2.81-19.144c.108-12.933-2.781-25.885-8.67-37.727a81.82 81.82 0 0 1 1.61 1.542c-.14-.142-.276-.285-.416-.426C151.06 39.015 158.75 59.191 158.75 79.37c0 20.19-7.702 40.381-23.107 55.787-15.405 15.404-35.595 23.106-55.786 23.106\"/>\n    <path fill=\"#FEFCF6\" d=\"m24.099 135.185-.03-.03C8.665 119.75.962 99.56.962 79.37c0 20.19 7.703 40.381 23.107 55.787l.03.03M135.672 23.613l-.03-.03.03.03\"/>\n    <path fill=\"#F8EFA5\" d=\"M24.07 135.156C8.664 119.75.961 99.56.961 79.369c0-20.19 7.703-40.38 23.107-55.785C39.475 8.179 59.665.476 79.856.476c20.092 0 40.184 7.628 55.56 22.883a88.446 88.446 0 0 0-.987-.958l.049.097C119.354 8.418 100.056 1.38 80.752 1.38c-20.187 0-40.378 7.703-55.78 23.105C-5.16 54.615-5.82 103.053 22.984 133.99a5.186 5.186 0 0 1-.097-.048c.39.406.782.812 1.182 1.213\"/>\n    <path fill=\"#F8ED9C\" d=\"M24.526 135.602c-.142-.14-.285-.276-.427-.417l-.03-.03c-.4-.4-.792-.806-1.182-1.212l.097.048a77.78 77.78 0 0 0 1.542 1.61M136.088 24\"/>\n    <path fill=\"#F6C755\" d=\"M126.62 126.133c-25.786 25.785-67.742 25.785-93.528 0-25.785-25.785-25.785-67.742 0-93.528 25.785-25.785 67.742-25.785 93.528 0 25.785 25.786 25.785 67.743 0 93.528\"/>\n    <path fill=\"#F9E87B\" d=\"M79.856 145.472c-16.904 0-33.808-6.422-46.692-19.268.683.68 1.378 1.341 2.083 1.985a60.02 60.02 0 0 1-.439-.484c12.524 11.242 28.337 16.863 44.152 16.863 16.932 0 33.866-6.446 46.757-19.337 24.93-24.93 25.75-64.973 2.478-90.905.16.144.32.288.48.435a68.899 68.899 0 0 0-2.055-2.156c12.892 12.893 19.338 29.828 19.338 46.764 0 16.936-6.446 33.871-19.338 46.764-12.893 12.893-29.829 19.34-46.764 19.34\"/>\n    <path fill=\"#F2C158\" d=\"m33.164 126.204-.072-.07c-25.785-25.786-25.786-67.743 0-93.529-25.785 25.786-25.785 67.743 0 93.528l.072.071\"/>\n    <path fill=\"#EFB641\" d=\"M34.808 127.705a67.599 67.599 0 0 1-2.162-2.03c.15.153.295.307.446.458-25.785-25.785-25.785-67.742 0-93.528C45.984 19.713 62.92 13.267 79.855 13.267c16.936 0 33.872 6.446 46.765 19.338-.152-.15-.305-.295-.458-.445.698.71 1.374 1.431 2.033 2.166-12.521-11.232-28.325-16.847-44.133-16.847-16.932 0-33.869 6.447-46.76 19.337-24.923 24.924-25.75 64.955-2.494 90.89\"/>\n    <path fill=\"#F6D359\" d=\"M35.247 128.189a66.783 66.783 0 0 1-2.083-1.985l-.072-.07c-.15-.152-.296-.306-.446-.458.71.696 1.43 1.371 2.162 2.03.146.162.291.322.439.483m93.428-93.428c-.16-.147-.32-.291-.48-.435a65.992 65.992 0 0 0-2.033-2.166c.153.15.306.295.458.445a68.899 68.899 0 0 1 2.055 2.156\"/>\n    <path fill=\"#D99800\" d=\"M58.63 98.615h14.984V58.764H60.692v-9.881c3.765-.724 6.95-1.593 9.556-2.606a52.516 52.516 0 0 0 7.6-3.692h11.728v56.03h12.922v12.922H58.629V98.615z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/medal-silver.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <path fill=\"#C9D8D9\" d=\"M133.354 22.91c29.93 29.93 29.93 78.454 0 108.384-29.93 29.93-78.454 29.93-108.385 0-29.93-29.93-29.93-78.455 0-108.384 29.93-29.93 78.455-29.93 108.385 0\"/>\n    <path fill=\"#BBCED1\" d=\"M79.162 153.74c-19.602 0-39.202-7.471-54.164-22.417.138.136.278.269.414.404a79.536 79.536 0 0 1-1.497-1.565 80.783 80.783 0 0 0 36.647 8.423 64.635 64.635 0 0 0 18.6 2.73c16.452 0 32.903-6.261 45.427-18.786 12.525-12.524 18.787-28.976 18.787-45.428 0-6.272-.91-12.542-2.73-18.596.105-12.563-2.702-25.145-8.422-36.648.526.49 1.047.989 1.563 1.496-.136-.138-.267-.277-.404-.414C148.33 37.9 155.802 57.5 155.802 77.102c0 19.613-7.483 39.227-22.448 54.192-14.965 14.965-34.578 22.447-54.192 22.447\"/>\n    <path fill=\"#FFFDFC\" d=\"m24.998 131.323-.029-.03C10.005 116.33 2.522 96.716 2.522 77.103c0 19.613 7.483 39.227 22.447 54.192l.029.029M133.383 22.939l-.029-.029.03.03\"/>\n    <path fill=\"#F6F8F7\" d=\"M24.97 131.294C10.004 116.329 2.521 96.715 2.521 77.102c0-19.614 7.483-39.227 22.447-54.192C39.934 7.945 59.55.462 79.162.462c19.506 0 39.012 7.402 53.946 22.203-.309-.305-.62-.605-.932-.904l.048.096C117.532 8.178 98.784 1.34 80.032 1.34c-19.61 0-39.224 7.482-54.186 22.444-29.27 29.27-29.913 76.324-1.931 106.377l-.094-.046c.378.395.76.789 1.148 1.178\"/>\n    <path fill=\"#F3F5F5\" d=\"M25.412 131.727c-.136-.135-.276-.268-.414-.404l-.029-.03c-.389-.388-.77-.782-1.148-1.177l.094.046c.49.527.99 1.05 1.497 1.565M133.787 23.353a79.367 79.367 0 0 0-1.563-1.496l-.048-.096c.312.299.623.599.932.904l.246.245.03.03c.136.136.267.275.403.413\"/>\n    <path fill=\"#B7CBCF\" d=\"M124.59 122.53c-25.05 25.048-65.807 25.048-90.856 0-25.049-25.05-25.049-65.808 0-90.857 25.05-25.047 65.807-25.047 90.855 0 25.05 25.05 25.05 65.807 0 90.856\"/>\n    <path fill=\"#F2F5F5\" d=\"M124.67 31.753a3.818 3.818 0 0 1-.118-.117l.117.117\"/>\n    <path fill=\"#EDF2F1\" d=\"M79.162 141.316c-16.421 0-32.843-6.239-45.358-18.718a63.11 63.11 0 0 0 2.024 1.928 57.281 57.281 0 0 1-.426-.469c12.166 10.92 27.527 16.38 42.89 16.38 16.448 0 32.899-6.261 45.421-18.784 24.218-24.219 25.016-63.12 2.404-88.31.158.14.312.28.469.425a67.586 67.586 0 0 0-1.997-2.095c12.525 12.525 18.787 28.977 18.787 45.428 0 16.452-6.262 32.904-18.787 45.428-12.524 12.525-28.975 18.787-45.427 18.787\"/>\n    <path fill=\"#B0C4C9\" d=\"M33.804 122.598c-.024-.022-.046-.046-.07-.069-12.524-12.524-18.786-28.976-18.786-45.428 0 16.452 6.262 32.904 18.786 45.428l.07.07\"/>\n    <path fill=\"#A2B9BF\" d=\"M35.402 124.057a65.703 65.703 0 0 1-2.1-1.972c.145.148.286.298.432.444-12.524-12.524-18.786-28.976-18.786-45.428 0-16.451 6.262-32.903 18.786-45.428C46.26 19.15 62.71 12.888 79.162 12.888c16.435 0 32.87 6.249 45.39 18.748-.134-.133-.272-.262-.407-.395a66.94 66.94 0 0 1 1.972 2.101C113.954 22.434 98.602 16.98 83.248 16.98c-16.448 0-32.901 6.262-45.423 18.784-24.212 24.212-25.016 63.1-2.423 88.293\"/>\n    <path fill=\"#CCDADB\" d=\"M35.828 124.526a64.292 64.292 0 0 1-2.094-1.997c-.146-.146-.287-.296-.433-.444.69.676 1.39 1.333 2.1 1.972.142.157.283.313.427.47m90.758-90.76a48.824 48.824 0 0 0-.47-.425 65.145 65.145 0 0 0-1.971-2.1c.135.132.273.261.407.394l.037.037a67.586 67.586 0 0 1 1.997 2.095\"/>\n    <path fill=\"#8AA1A6\" d=\"M55.055 100.122c4.29-4.008 8.21-7.753 11.762-11.234 3.551-3.48 6.61-6.75 9.177-9.81 2.566-3.059 4.57-5.907 6.012-8.544 1.442-2.637 2.163-5.151 2.163-7.542 0-3.305-.844-5.82-2.532-7.542-1.688-1.723-4.008-2.584-6.962-2.584-2.461 0-4.641.685-6.54 2.057a36.061 36.061 0 0 0-5.38 4.8l-8.438-8.334c3.305-3.516 6.68-6.17 10.126-7.964 3.446-1.793 7.56-2.69 12.342-2.69 3.305 0 6.311.51 9.019 1.53 2.707 1.02 5.045 2.46 7.014 4.324 1.97 1.864 3.481 4.097 4.536 6.699 1.055 2.602 1.582 5.52 1.582 8.755 0 2.813-.597 5.678-1.793 8.597-1.195 2.918-2.795 5.836-4.8 8.755-2.004 2.918-4.29 5.836-6.856 8.755a228.173 228.173 0 0 1-7.964 8.597 143.59 143.59 0 0 1 5.644-.58c2.074-.176 3.92-.264 5.537-.264h13.502v13.08h-47.15v-8.86z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/backspace.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"160\" height=\"160\" viewBox=\"0 0 160 160\">\n  <g>\n    <path d=\"M59.646 116h81.34V44H59.592L29.097 79.635 59.647 116zm-43.66-36.424l39-45.576h96v92h-96l-39-46.424z\"/>\n    <polygon points=\"77.706 62.346 119.217 103.857 126.288 96.786 84.777 55.275\"/>\n    <polygon points=\"119.217 55.275 77.706 96.786 84.777 103.857 126.288 62.346\"/>\n  </g>\n</svg>\n","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/svg/illustration/super-anton.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 272 618\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"Page-1\">\n    <g class=\"Group\">\n      <path fill=\"#ECBE81\" d=\"M70.7 256.5c-6.2 9.2-25.1 36.3-43.5 38.6-18.2 2.2-11.8-20.4-.4-39.8 16.6-28 22.2-32.8 36-45.2 15.6-14.1 30.2 13.1 7.9 46.4z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M70.7 256.5c-5 7.3-18.3 26.6-32.8 34.8 12-11.5 15.7-17.5 32.7-34.8zm-43.9-1.2c16.6-28 22.2-32.8 36-45.2-12.6 15.6-26.6 33-36 45.2z\" class=\"Shape\" opacity=\".5\"/>\n      <path fill=\"#FBC02E\" d=\"M65.2 208.8 16.8 477.5c-.3 2.3 28.7-20.2 105.5-16.2s108.5 13.4 110.3 16.4c1.5 2.4-53-272-53-272l-114.5 3h.1z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".4\" d=\"M68.2 208.8 16.8 477.5c-.3 2.2 28.7-20.2 105.5-16.2s108.5 13.4 110.3 16.4c1.5 2.4-50-272-50-272l-114.4 3z\" class=\"Path\"/>\n      <path fill=\"#FBC02E\" fill-rule=\"nonzero\" d=\"M.6 448.4c.6 25.8 17.6 46 33 46 0 0-13.8-44.2 41-264 1.2-5-11.8 0-11.8 0S0 422.4.6 448.3zm248.7 0c-.6 25.8-17.6 46-32.9 46 0 0 15.8-47.7-39-267.5-1.3-5 11.7 0 11.7 0s60.8 195.7 60.2 221.5z\" class=\"Shape\"/>\n      <g class=\"Path\">\n        <path fill=\"#ECBE81\" d=\"M104.7 202.7s1.1-6 1.8-12c1.5-11.8 3-29.2 3-29.2h32l3.2 41.5-40-.4z\"/>\n        <path fill=\"#010101\" fill-opacity=\".1\" d=\"m106.8 190.3 2.7-28.8h31.9l1.2 15.5z\" opacity=\".5\"/>\n      </g>\n      <path fill=\"#CB9663\" d=\"M65.7 212.5c-10 16-7.8 132 4.7 161 12.5 29.2 96.4 29.2 108.4 1s17-151 4-166\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".2\" fill-rule=\"nonzero\" d=\"M127 353c-.6 0-1.3 0-2 .2a3 3 0 0 0-1.7 2 5 5 0 0 0 .8 4 3 3 0 0 0 4.2.3c.5-.4.9-1 1-1.5.5-1.4.3-2.8-.5-4-.5-.5-1-.8-1.7-1zm-26.6-104.4H99c-.5.3-.8.7-1 1.3-.2.8 0 1.6.5 2.3.4.5 1 .8 1.6.7a2 2 0 0 0 1.5-1.4c.3-.8.1-1.6-.3-2.3a2 2 0 0 0-1-.6zm52 0H151c-.5.3-.8.7-1 1.3-.2.8 0 1.6.5 2.3.4.5 1 .8 1.6.7a2 2 0 0 0 1.5-1.4c.3-.8.1-1.6-.3-2.3a2 2 0 0 0-1-.6z\" class=\"Shape\"/>\n      <path fill=\"#010101\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M178.8 374.5c12-41 17-151 4-166 1 30.8-2.3 140.4-4 166zm-113-162c-10.2 16-6.6 122 4.6 161-3-36.6-4-128-4.7-161z\" class=\"Shape\"/>\n      <g fill=\"#2F72B9\" class=\"Path\">\n        <path d=\"M60.3 270.2c.1 42.2 1 84.3 2.3 126.5l125.8.6s5.2-106.8 2.4-131.6c-31.2-12.3-24.5-66.7-24.5-66.7l-7.5-2s1 53.2-33.3 54.4c-34.3 1.3-35-53.4-35-53.4l-7.5 2.7s5 50-22.7 69.5h.1z\"/>\n        <path d=\"M89.2 198.5c3.1-1 10-2.5 10.7-2.8 5.2 8 17.6 12.8 27.2 12.4 8.4-.4 18.5-5.6 23.5-12.4 2 0 5.6 1 8.8 1.4 38.8 9 32.2 44.5 32.1 80.5L88.3 255.5l1-57.1z\"/>\n      </g>\n      <path fill=\"#EF7D12\" d=\"m98.5 244.2 52.9-.8 15.5 42.4-42.3 50.6-41.1-48.9 15-43.3\" class=\"Path\"/>\n      <path fill=\"#FBC02E\" d=\"m146.6 251.9 12.6 33.1-34.5 39.7-33.5-38.3 12.3-33.9z\" class=\"Path\"/>\n      <path fill=\"#EF7D12\" fill-rule=\"nonzero\" d=\"m124 261.6 7.4 20.8h-14.6c1.5-4.2 5.8-16.1 7.3-20.8zm5.4-8.3a5.7 5.7 0 0 0-10.7 0l-18.9 48.9a4.4 4.4 0 1 0 8.2 3.2l5.6-14.6h20.8l5.6 14.4a4.5 4.5 0 0 0 8.6-2.8l-.2-.4-19-48.8z\" class=\"Shape\"/>\n      <path fill=\"#FBC02E\" d=\"M134.3 203.5c-3-1.6-7.4-1.4-9.5 1.2-1.7 5-1 10.5 1.8 15a37 37 0 0 0 10.6 10c4.8 3.4 10 6.9 15.7 8.2a90.3 90.3 0 0 0-11.5-27 20 20 0 0 0-7-7.4z\" class=\"Path\"/>\n      <path fill=\"#FBC02E\" d=\"M103.7 215.4c-4.7 6.3-7 13.8-9.5 21.2a49.6 49.6 0 0 0 21.4-10.5c3.3-2.7 6-6 8-9.8 1.5-4 2-8.5 0-12.3-8 0-15.3 5-19.9 11.4z\" class=\"Path\"/>\n      <path fill=\"#ECBE81\" d=\"M249 173.6c-14.8 12.4-27.4-6.7-24-26.7 4-23 6.4-40.6 10-47.2 6.4-11.2 22.6-6.7 24 1.5 1.8 7.8 2.7 62-10 72.5v-.1z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M235 99.6c-3.5 6.7-6 24.4-10 47.2a288 288 0 0 0 10-47.2zm24.1 1.7a412.4 412.4 0 0 1-10 72.3c12.4-10.4 11.5-64.6 9.9-72.3z\" class=\"Shape\" opacity=\".5\"/>\n      <path fill=\"#ECBE81\" d=\"M193.6 187.8c7.1-8.5 29-33.4 47.4-33.6 18.5-.3 9.6 21.5-4 39.5-19.5 26.2-25.5 30.3-40.6 41-17 12.4-28.6-16.3-2.8-47z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M193.7 187.9c18.8-15.4 23-21 36.3-31-15.3 6.6-30.7 24.2-36.4 31zm2.7 47c15.1-10.9 21.1-15 40.7-41-10.6 10.9-26.5 26.7-40.7 40.9z\" class=\"Shape\" opacity=\".5\"/>\n      <path fill=\"#2F72B9\" d=\"M214.1 223c-12 11.3-35.5 24.7-44.8 19.9-4.1-2.3-2.2-16.3.7-22.9 16.4-36.1 48.5-58.2 48.5-58.2l28.7 22.3a421.2 421.2 0 0 1-33 39z\" class=\"Path\"/>\n      <g fill=\"#EF7D12\" class=\"Path\">\n        <path d=\"M256 115.6c-9.6 6.4-23-5.3-26-10.2-2.4-3.9-5.6-7.6-7.8-12.5-5.7-13-5.6-25.6.5-28.1 3.1-1.5 7.4.2 11.5 4.1 5.3-7.9 13-12.6 20.5-11.2 11.8 2 18.7 17.3 15.7 34.1a39 39 0 0 1-14.4 23.8z\"/>\n        <path d=\"m264 144.5-45.4-8.5s7.4-27.3 9.6-31.5c5.2-9.5 30.2-6.4 31.8.6.5 2.8 4 39.4 4 39.4z\"/>\n      </g>\n      <path fill=\"#ECBE81\" d=\"M180.6 119.1a81 81 0 0 1-8.7 24.6c-12 20.3-36 34.6-46.5 34.2-10.5-.4-26.3-6.4-41.5-23.6a71.8 71.8 0 0 1-13-28.4 155 155 0 0 1-4.6-50.7c5.7-40.6 25.6-46 54.3-50.9 28.7-4.8 58.5 12 61.5 30.1 2 13 3.3 41-1.5 64.7\" class=\"Path\"/>\n      <path fill=\"#ECBE81\" fill-rule=\"nonzero\" d=\"M67.6 99c-3.1-1.3-6.7.2-8.8 3-2 2.7-3 6-3 9.3a19.3 19.3 0 0 0 5 14.4c3.7 3.7 10 4.7 14 1.4L67.7 99M182 99c3-1.2 6.8.3 8.8 3 2 2.8 3 6 3 9.4a19 19 0 0 1-5 14.4c-3.7 3.7-10 4.7-14 1.4L182 99\" class=\"Shape\"/>\n      <path fill=\"#010101\" fill-opacity=\".3\" d=\"M118.9 123c-.7.1-1.4.3-2 .6-.5.4-.3 1.1 0 1.7a20 20 0 0 0 6 4.4 6 6 0 0 0 2.7.8c1.5 0 2.7-.9 3.9-1.7 2-1.4 5.5-3.5 4.4-5.3-3-1.5-9.7-1.4-15-.5z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".3\" d=\"M131.2 159c-2.3 1.5-4.1 1.6-6.2 2-2.2.2-4.4-.6-6-2 4 .6 8 .6 12 0h.2zm-23-11a49 49 0 0 0 35-.2c.2-.8-.2-.5.4-1 .6-.5.9 2.3.8 4.4-.4.4-.8-1.2-1.6-1.3-1.6 0-3.2.4-4.7 1a37.7 37.7 0 0 1-17 1.6c-5.7-.5-11.4-2.3-13-2.5-.4 0-1-.4-1.4-.2-.5 0-1 .7-1.4.5l-.1-.6v-.6l.9-2.8h.7c-.2 1 .8 1.3 1.5 1.6l-.1.1z\" class=\"Shape\"/>\n      <g class=\"Path\">\n        <path fill=\"#FFF\" d=\"M102.9 92c3.6.8 6.6 3 7.8 6.6.8 2.2 0 10-3.3 13a10 10 0 0 1-5.2 2.6c-3.3.4-8.5.6-11.2-1.7a12 12 0 0 1-4.2-8c-.3-2.5-.6-5 .6-7.2 2-3.7 6.5-5 10.5-6l4.9.7\"/>\n        <path fill=\"#5A4322\" d=\"M92.7 109a10.4 10.4 0 0 1-.7-12 8.6 8.6 0 0 1 3.7-3 7 7 0 0 1 5-.4c2.7.8 4 3.4 4.6 5.8.9 3.8.2 8.3-3.2 11a6.2 6.2 0 0 1-9.4-1.4z\"/>\n        <path fill=\"#6E4831\" d=\"M85.2 101.9c.8-3.9 3.3-6.9 8.5-9 3.3-1.5 7.1-1.6 10.5-.1 2 .8 4.4 3.2 5.7 6.5.4 1 1.5.9 1.7.2-.4-6.4-6.2-10-10.1-11a15.8 15.8 0 0 0-16.3 7 10 10 0 0 0-1.7 5c0 1.8 1.5 2.4 1.7 1.4\"/>\n        <path fill=\"#FFF\" d=\"M146.9 92c-3.6.8-6.6 3-7.8 6.6-.8 2.2 0 10 3.3 13a10 10 0 0 0 5.2 2.6c3.3.4 8.5.6 11.2-1.7 2.3-2 3.8-4.9 4.2-8 .3-2.5.6-5-.6-7.2-2-3.7-6.5-5-10.5-6l-5 .7\"/>\n        <path fill=\"#5A4322\" d=\"M157 109c2.7-3.5 3-8.2.7-11.9A8.6 8.6 0 0 0 154 94a7 7 0 0 0-5-.4c-2.7.8-4 3.4-4.6 5.8-1 3.8-.2 8.3 3.2 11a6.2 6.2 0 0 0 9.4-1.4z\"/>\n        <path fill=\"#6E4831\" d=\"M164.6 101.9c-1-3.8-3.3-6.8-8.5-9a13.2 13.2 0 0 0-10.5-.1c-2.1.8-4.4 3.2-5.7 6.5-.4 1-1.5.9-1.7.2.4-6.4 6.2-10 10-11a15.8 15.8 0 0 1 16.4 7 10 10 0 0 1 1.7 5c0 1.8-1.5 2.4-1.7 1.4\"/>\n      </g>\n      <path fill=\"#9A6444\" d=\"M85.4 76.3c-3 2.2-5.7 6-4.6 9.4l20.4-1.7 5-.4c1.2 0 3 .1 3.9-.5 2-1.4 2-5.9 1.6-7.9 0-.3-.2-.7-.5-.9-.5-.4-1.3.2-1.8.7-.5.5-1.2 1-1.8.6 0-.9-.7-1.7-1.5-2-.9-.4-1.8-.6-2.7-.6-3 0-6.5-.8-9.5-.3-3.1.6-6 1.8-8.5 3.6m80 0c3 2.2 5.7 6 4.6 9.4L149.6 84l-5.1-.4c-1.1 0-3 .1-3.8-.5-2-1.4-2-5.9-1.6-7.9 0-.3.2-.7.5-.9.5-.4 1.3.2 1.8.7.5.5 1.2 1 1.8.6 0-.9.6-1.7 1.5-2a6 6 0 0 1 2.7-.6c3 0 6.5-.8 9.5-.3 3 .6 6 1.8 8.5 3.6\" class=\"Shape\"/>\n      <path fill=\"#6E4831\" d=\"M169.9 43.4c-.2 4-9 12-12 13.8-10.3 6.6-37 18.4-51 23l7.5-6.9c-4 3.6-15.2 7.4-22.5 12.6-18.1 12.7-17.7 21.6-17 33.5 0 0-8.7-7.3-14.2-34.8-1.8-8.3-7.8-37.8 3.3-53.2C75.3 16 127.5-4.6 145.8 1c5 1.6 22.7 8.4 26.2 12.3 1.6 2 2.9 4.1 3.9 6.4.2.6 1.7 6.5 1.4 6.5 5 .5 7.7 2 11 5.8 4.6 5.6 4 16.4 4 23.5a168 168 0 0 1-5 43c-.5 2.6-1 7.3-3 9.4 0 0-15-40.2-14.5-64.4\" class=\"Path\"/>\n      <path fill=\"#3C81C3\" fill-rule=\"nonzero\" d=\"M170.8 102.7c-1 5-3.7 10-8.8 12-3.8 1.3-8 1.2-11.7-.3-8.8-3-12.3-8.3-13-10.2-1.2-3.2 1.4-6.6 4.4-8.7a27.6 27.6 0 0 1 19.2-4.4c3.7.5 7.7 2 9.3 5 1.2 2.1 1 4.4.7 6.6h-.1zm-57.8 1.5c-.7 2-4.2 7.1-13 10.2-3.8 1.2-8 1.7-11.7.2-5.2-2-8-7-9-11.9-.5-2.1-.3-4.4.7-6.5 1.7-3 5.6-4.6 9.4-5a27 27 0 0 1 19 4.3c3 2.1 5.7 5.5 4.6 8.7zM90.7 76c-27-1.4-27 21.2-25.2 30.3 1 5 12 18.6 24.9 19.6 9.7.7 24.6-10.2 33.5-12.3l1.3-.2c.4 0 .9 0 1.3.2 8.9 2 19.9 12.4 32 12.4 10.2 0 25.4-14.8 26.4-19.7 1.8-9.1 1.8-31.7-25.3-30.3-23 .8-46 .8-68.8 0h-.1z\" class=\"Shape\"/>\n      <path fill=\"#CB9663\" d=\"M131 495c4.2 32.1 43 27.3 44 .6l3-67.6c2.6-33.8-58.4-34.3-54.7 3.7.3 3.5 7.6 60.5 7.9 63.2h-.2z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M131 495a31 31 0 0 0 3.6 11.2c2-1.2-8.2-84.2-10-87a28 28 0 0 0-1.5 12.5l8 63.1v.1zm41.3 11c1.7-3.2 2.7-6.7 2.8-10.4l2.7-67.5a23 23 0 0 0-1.4-10.7c-4.4 3.3-7.1 83.1-4 88.6h-.1z\" class=\"Shape\"/>\n      <path fill=\"#CB9663\" d=\"M136.7 561.4c1.2 19.6 34.4 21.1 35.5-.6l2.1-50.5c1.2-29-42.9-26.2-42.4-1.2 0 2.4 4.8 50.2 4.9 52.3h-.1z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M136.8 561.4a15 15 0 0 0 4.7 10.2c-2.8-19.8-3.9-42.4-6-73.9a18 18 0 0 0-3.6 11.3c0 2.5 4.6 50.3 4.8 52.4h.1zm31.5 9.6a16 16 0 0 0 3.9-10l2-50.5a20 20 0 0 0-2-11.3c-2.6 41-3.5 39.4-3.7 71.8h-.2z\" class=\"Shape\"/>\n      <g class=\"Path\">\n        <path fill=\"#CB9663\" d=\"M137.3 589c.1 5.7 5.2 11 15.5 15.5 7.9 4 16.2 7 24.7 9.2 7.8 2 23.6 2.6 27.2-1.5 6.7-7 .2-16.3-12.8-23.3-6.4-3.4-13-6.2-20-8.4v-9c-.2-12.9-35.3-15.4-35 1.3l.3 16h.1v.1z\"/>\n        <path fill=\"#010101\" fill-opacity=\".1\" d=\"M204.7 612.2c6.8-7 0-16.3-12.8-23.3-6.4-3.3-13.1-6-20-8.3v-9c-.1-4.8-3.5-1-2.4 11.4 12.4 3.3 38.7 10 35.2 29.2zm-67.4-23.3c.1 5.9 5.2 11 15.6 15.7 7.9 3.8 16.2 7 24.7 9.2 7.8 1.9 23.6 2.6 27.2-1.5-15.6 3-50-5.5-62-17.1-7.8-13.6-3.4-24-5.7-22.3l.3 16h-.1z\"/>\n      </g>\n      <path fill=\"#CB9663\" d=\"M116.7 495c-4.1 32.1-42.9 27.3-44 .6L69.9 428c-2.7-33.8 58.3-34.3 54.6 3.7-.3 3.5-7.6 60.5-7.9 63.2h.1z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M116.7 495a31 31 0 0 1-3.5 11.2c-2-1.2 8.2-84.2 10-87 1.4 4 2 8.3 1.5 12.5l-8 63.1v.1zm-41.2 11a23.8 23.8 0 0 1-2.8-10.4L70 428.1a23 23 0 0 1 1.4-10.7c4.4 3.3 7.1 83.1 4 88.6h.1z\" class=\"Shape\"/>\n      <path fill=\"#CB9663\" d=\"M111 561.4c-1 19.6-34.2 21.1-35.3-.6l-2.2-50.5c-1.2-29 42.9-26.2 42.4-1.2 0 2.4-4.8 50.2-5 52.3h.2z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M111 561.4a15 15 0 0 1-4.7 10.2c2.8-19.8 3.9-42.4 6-73.9a18 18 0 0 1 3.6 11.3c0 2.5-4.6 50.3-4.8 52.4h-.1zM79.5 571a16.2 16.2 0 0 1-3.9-10l-2-50.5a20 20 0 0 1 2-11.3c2.6 41 3.5 39.4 3.7 71.8h.2z\" class=\"Shape\"/>\n      <g class=\"Path\">\n        <path fill=\"#CB9663\" d=\"M110.5 589c-.1 5.7-5.2 11-15.5 15.5-7.9 4-16.2 7-24.7 9.2-7.8 2-23.6 2.6-27.2-1.5-6.7-7-.2-16.3 12.8-23.3 6.4-3.4 13-6.2 20-8.4v-9c.2-12.9 35.3-15.4 35 1.3l-.3 16h-.1v.1z\"/>\n        <path fill=\"#010101\" fill-opacity=\".1\" d=\"M43 612.2c-6.6-7 0-16.2 13-23.2 6.4-3.3 13.1-6 20-8.3v-9c0-4.8 3.5-1 2.4 11.4-12.5 3.2-38.8 9.9-35.4 29.1zm67.5-23.3c-.1 5.9-5.2 11-15.6 15.7-7.9 3.8-16.2 7-24.7 9.2-7.8 1.9-23.6 2.6-27.2-1.5 15.6 3 50-5.5 62-17.1 7.8-13.6 3.4-24 5.7-22.3l-.3 16h.1z\"/>\n      </g>\n      <g fill=\"#FBC02E\" class=\"Shape\">\n        <path d=\"M115.8 574.7c-.6 13.7-43 13-42.7-.3l-.3-13.9c-1.2-17 44.7-21 43.8-2.8l-.8 17zm19.2 0c.6 13.7 43 13 42.7-.3l.3-13.9c1.2-17-44.7-21-43.8-2.8l.8 17z\"/>\n        <path d=\"M116.2 564.5c-2 18-42.7 17.8-43.4-2.3l-2.2-69c-.6-26.8 51-22.2 49.8.6 0 2.2-3.9 68.8-4.2 70.7zm18.4 0c2 18 42.7 17.8 43.4-2.3l2.2-69c.6-26.8-51-22.2-49.8.6 0 2.2 3.9 68.8 4.2 70.7z\"/>\n      </g>\n      <path fill=\"#2F72B9\" d=\"M192.7 586.9c15.8 7 26.5 20 19.7 27.7-3.8 4.5-26 2.7-34.5 1-9.8-1.7-16.3-4.5-28-9.3a33.7 33.7 0 0 1-15.5-12.2c-3.2-5.6-3.7-11.3 1.2-15.8 10-9.5 45.2 1.5 57.2 8.7l-.1-.1zm-136.6 0c-15.8 7-26.5 20-19.7 27.7 3.8 4.5 26 2.7 34.5 1 9.8-1.7 16.3-4.5 28-9.3a33.7 33.7 0 0 0 15.5-12.3c3.2-5.6 3.7-11.3-1.2-15.8-10-9.5-45.2 1.5-57.2 8.7v-.1z\" class=\"Shape\"/>\n      <path fill=\"#FBC02E\" d=\"M68.6 397.6c-.1 1.4 0 2.8.1 4.2.3 2.3 2.2 91 2.2 91l49.6 2s2.4-18.6 4.9-41.5c2.5 22.9 4.9 41.5 4.9 41.5l49.6-2s1.9-88.7 2.2-91c.2-1.4.2-2.8.1-4.2H68.6zM230.6 219c-19.4 0-67 29.5-65-6.6.6-9 7-15.7 14.1-14a231.1 231.1 0 0 1 51 20.7z\" class=\"Path\"/>\n      <path fill=\"#ECBE81\" d=\"M17.2 276.7c13.4-14 28 3.7 26.7 24-1.4 23.2-1.9 41-4.8 48-5 11.8-21.5 9-24 1-2.5-7.5-9.3-61.3 2-73.1h.1z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M44 300.7c-1.5 23.2-2 41-4.9 48a286 286 0 0 1 4.8-48zm-26.8-24a413.1 413.1 0 0 0-2.2 73c-2.4-7.5-9.2-61.3 2.2-73z\" class=\"Shape\" opacity=\".5\"/>\n      <path fill=\"#EF7D12\" d=\"m5.3 307.2 46.2 3.5s-4.4 28-6.2 32.4c-4 10-29.3 9.6-31.6 2.9-.9-2.7-8.4-38.8-8.4-38.8z\" class=\"Path\"/>\n      <path fill=\"#CB9663\" d=\"M18.2 337.5c8-6.8 21.6 2.5 24.8 6.8 2.5 3.3 6 6.2 8.3 10.5 6.5 11.2 7.7 22.9 2.5 25.9-2.8 1.6-6.8.3-10.8-2.7-4 7.8-10.5 12.7-17.6 12.2-10.9-.7-18.8-14-17.8-29.5a36 36 0 0 1 10.7-23v-.2z\" class=\"Path\"/>\n      <path fill=\"#010101\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M43 344.3c2.5 3.3 6 6.2 8.3 10.5 6.5 11.2 7.7 22.9 2.5 25.9-2.8 1.6-6.8.3-10.8-2.7 17.5 3.5 11.7-16.7.2-33.6v-.1zm-24.8-6.8c-7 14.5-15.6 36.4 7 52.5-10.8-.6-18.7-14-17.7-29.3.7-10 6.3-19.3 10.7-23v-.2z\" class=\"Shape\"/>\n      <path fill=\"#EF7D12\" d=\"M16.5 335c8.8-7.3 23.5 2.8 27 7.4 2.8 3.6 6.4 6.9 9.1 11.6 7.1 12.2 8.3 24.8 2.6 28-3 1.8-7.4.6-11.9-3-4.4 8.7-11.5 14-19.2 13.5-11.9-.8-20.5-15.2-19.3-32.2A39 39 0 0 1 16.5 335z\" class=\"Path\"/>\n      <path fill=\"#2F72B9\" d=\"M45.7 224.7A419 419 0 0 0 17.1 267l31 19s29.5-25.4 41.8-63.1c2.2-7 2.6-21-1.8-22.8-9.7-3.8-31.6 12-42.4 24.5z\" class=\"Path\"/>\n      <path fill=\"#FBC02E\" d=\"M19.6 222c7.6-4.3 31.2-15.8 51-20.6 7-1.7 13.4 5 14 14 2.1 36-45.6 6.7-65 6.7z\" class=\"Path\"/>\n      <path fill=\"#FBC02E\" d=\"M83 196.9c-9 3.3-30.4 5-26.2 21.5 10 39 39.8-11.5 67-12.2 29-.8 70.8 47.7 65.2 3.3-1.6-10.1-16.6-11.4-21-12.8-5-1.6-15.8-2.5-22.5-2.7-2.5 3-8.3 5.3-19 5.3-11 0-17-2.5-19-5.7 0 0-17.4.7-24.4 3.3z\" class=\"Path\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/android/transferFile/validateFileSize/validate.ls","text":"(function(){\n  return function(p){\n    var fileByteLength, etagByteLength;\n    fileByteLength = parseInt(p.result.size);\n    etagByteLength = parseInt(p.etag.split(\"-\")[1]);\n    if (fileByteLength === etagByteLength) {\n      return p.onOk();\n    } else {\n      return p.onError(\"corrupted\");\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/svg/shape/front.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"160\" height=\"160\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"front\">\n    <polygon fill=\"#9B9B9B\" points=\"54.1 54.1 139.4 54.1 139.4 139.4 54.1 139.4\" class=\"Rectangle\"/>\n    <polygon fill=\"#9B9B9B\" points=\"52.9 -12.9 72.4 -12.9 72.4 72.4 52.9 72.4\" class=\"Rectangle-Copy-2\" transform=\"rotate(90 62.7 29.7)\"/>\n    <polygon fill=\"#9B9B9B\" points=\"52.9 54.1 72.4 54.1 72.4 139.4 52.9 139.4\" class=\"Rectangle-Copy-3\" transform=\"rotate(90 62.7 96.8)\"/>\n    <polygon fill=\"#9B9B9B\" points=\"20 20 39.5 20 39.5 105.3 20 105.3\" class=\"Rectangle-Copy\"/>\n    <polygon fill=\"#9B9B9B\" points=\"87.1 20 106.5 20 106.5 105.3 87.1 105.3\" class=\"Rectangle-Copy-4\"/>\n  </g>\n</svg>\n","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/calcMonthsLabel/calc.ls","text":"(function(){\n  return function(){\n    var months;\n    return months = [T(\"jan\"), T(\"feb\"), T(\"mar\"), T(\"apr\"), T(\"may\"), T(\"june\"), T(\"july\"), T(\"aug\"), T(\"sep\"), T(\"oct\"), T(\"nov\"), T(\"dec\")];\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/svg/shape/trapeze-2.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M120.5 33h-82L0 128h160z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/util/cache/del/del.ls","text":"(function(){\n  return function(category, v1){\n    var logId, ref$, ref1$, ref2$;\n    logId = (typeof log != 'undefined' && log !== null ? log.id() : void 8) || \"\";\n    if (((ref$ = engine.utilCache) != null ? ref$.logId : void 8) !== logId) {\n      engine.utilCache = {\n        logId: logId\n      };\n    }\n    if (engine.utilCache[category] == null) {\n      engine.utilCache[category] = {};\n    }\n    if (v1 != null) {\n      return ref2$ = (ref1$ = engine.utilCache[category])[v1], delete ref1$[v1], ref2$;\n    } else {\n      return ref2$ = (ref1$ = engine.utilCache)[category], delete ref1$[category], ref2$;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/cache/get/get.ls","text":"(function(){\n  return function(category, v1){\n    var logId, ref$, ref1$, ref2$, ref3$;\n    logId = (typeof log != 'undefined' && log !== null ? log.id() : void 8) || \"\";\n    if (((ref$ = engine.utilCache) != null ? ref$.logId : void 8) !== logId) {\n      engine.utilCache = {\n        logId: logId\n      };\n    }\n    if (v1 != null) {\n      return (ref1$ = engine.utilCache) != null ? (ref2$ = ref1$[category]) != null ? ref2$[v1] : void 8 : void 8;\n    } else {\n      return (ref3$ = engine.utilCache) != null ? ref3$[category] : void 8;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/cache/set/set.ls","text":"(function(){\n  return function(category, v1, v2){\n    var logId, ref$;\n    logId = (typeof log != 'undefined' && log !== null ? log.id() : void 8) || \"\";\n    if (((ref$ = engine.utilCache) != null ? ref$.logId : void 8) !== logId) {\n      engine.utilCache = {\n        logId: logId\n      };\n    }\n    if (engine.utilCache[category] == null) {\n      engine.utilCache[category] = {};\n    }\n    if (v1 != null && v2 != null) {\n      return engine.utilCache[category][v1] = v2;\n    } else if (v1 != null && v2 == null) {\n      return engine.utilCache[category] = v1;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/calcMaintenanceMessage/calc.ls","text":"(function(){\n  return function(){\n    var now, messages;\n    now = new Date();\n    messages = engine.maintenanceMessages;\n    return _.find(messages, function(m){\n      var start, end;\n      start = new Date(m.start);\n      end = new Date(m.end);\n      return start < now && end > now;\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/calcDateString/calc.ls","text":"(function(){\n  return function(t){\n    var year, month, date;\n    if (!t) {\n      return;\n    }\n    year = t.getFullYear();\n    month = t.getMonth() + 1;\n    if (month < 10) {\n      month = \"0\" + month;\n    }\n    date = t.getDate();\n    if (date < 10) {\n      date = \"0\" + date;\n    }\n    return year + \"-\" + month + \"-\" + date;\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"lib/util/calcOrdinalEn/calc.ls","text":"(function(){\n  return function(i){\n    var j, k;\n    j = i % 10;\n    k = i % 100;\n    if (j === 1 && k !== 11) {\n      return i + \"st\";\n    }\n    if (j === 2 && k !== 12) {\n      return i + \"nd\";\n    }\n    if (j === 3 && k !== 13) {\n      return i + \"rd\";\n    }\n    return i + \"th\";\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/convertTimeString/convert.ls","text":"(function(){\n  return function(t){\n    var a;\n    a = t.split(\" \");\n    a[0] = a[0] + \"T\";\n    if (!a[1]) {\n      a.push(\"00:00:00.000Z\");\n    } else if (a[1].length === 5) {\n      a[1] = a[1] + \":00.000Z\";\n    } else if (a[1].length === 7) {\n      a[1] = a[1] + \".000Z\";\n    }\n    return new Date(a[0] + a[1]);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/darkenColor/darken/darken.ls","text":"(function(){\n  return function(values, m){\n    var red, green, blue;\n    m *= -1;\n    red = values[0];\n    green = values[1];\n    blue = values[2];\n    if (m < 0) {\n      m += 1;\n      red = red * m;\n      green = green * m;\n      blue = blue * m;\n    } else {\n      red = (255 - red) * m + red;\n      green = (255 - green) * m + green;\n      blue = (255 - blue) * m + blue;\n    }\n    return _.map([red, green, blue], function(v){\n      return _.round(v);\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/_antonDebug/antonDebug.ls","text":"(function(){\n  return function(antonDebug, job){\n    if (engine.isDebug) {\n      return debug(\"content file error: \" + job.fileId, antonDebug);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadManager/preparePlan/prepare.ls","text":"(function(){\n  return function(manager, id){\n    var plan;\n    plan = manager.planInfos[id];\n    plan.status = \"prepareWaiting\";\n    manager.updateDom(id);\n    if (!manager.isPreparingPlans) {\n      return inc(\"prepareNextPlan/prepare\")(manager);\n    }\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/ios/transferFile/validateFileSize/validate.ls","text":"(function(){\n  return function(p){\n    return p.fileEntry.getMetadata(function(meta){\n      var fileByteLength, etagByteLength;\n      fileByteLength = meta.size;\n      etagByteLength = parseInt(p.etag.split(\"-\")[1]);\n      if (fileByteLength === etagByteLength) {\n        return p.onOk();\n      } else {\n        return p.onError(\"corrupted\");\n      }\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadManager/preparePlan/prepareNextPlan/preparePlan/autoDisablePlan/disable.ls","text":"(function(){\n  return function(plan, manager, error){\n    deviceLog.log({\n      event: \"deviceDebugDownloadManagerAutoDisabledPlan\",\n      error: error,\n      id: plan.id\n    });\n    return manager.disablePlan(plan.id);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadContentFile/startJob/_shared/readFileContent/readBlob/read.ls","text":"(function(){\n  return function(p){\n    var readBlob, finish;\n    readBlob = function(){\n      var reader;\n      reader = new FileReader();\n      if (p.fileType === \"base64\") {\n        reader.readAsDataURL(p.blob);\n      } else {\n        reader.readAsText(p.blob, \"utf-8\");\n      }\n      return reader.onloadend = function(e){\n        return finish(reader.result);\n      };\n    };\n    finish = function(fileContent){\n      var fileContentJSON;\n      if (p.fileType !== \"json\") {\n        return p.onLoaded(fileContent);\n      } else {\n        try {\n          fileContentJSON = JSON.parse(fileContent);\n        } catch (e$) {}\n        if (!fileContentJSON) {\n          return p.onError(\"readFileContent blob JSON parse failed \" + p.job.fileId);\n        } else {\n          return p.onLoaded(fileContentJSON);\n        }\n      }\n    };\n    return readBlob();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadContentFile/startJob/_shared/readFileContent/readFile/loadAndroidLocalFileUrl/load.ls","text":"(function(){\n  return function(o){\n    var cordovaDir, localFilePath, xhr, load, onReadyStateChange;\n    cordovaDir = (typeof cordova != 'undefined' && cordova !== null ? cordova.file.externalDataDirectory : void 8) || (typeof cordova != 'undefined' && cordova !== null ? cordova.file.dataDirectory : void 8) || \"\";\n    localFilePath = cordovaDir + o.filePath;\n    xhr = new XMLHttpRequest();\n    load = function(){\n      var url;\n      url = localFilePath;\n      xhr.open(\"GET\", url);\n      xhr.onreadystatechange = onReadyStateChange;\n      xhr.responseType = \"blob\";\n      return xhr.send();\n    };\n    onReadyStateChange = function(){\n      var blob;\n      if (xhr.readyState !== 4) {\n        return;\n      }\n      blob = xhr.response;\n      if (!blob) {\n        if (typeof log != 'undefined' && log !== null) {\n          log.log({\n            event: \"debugReadFileContentError\",\n            version: 6,\n            filePath: o.filePath,\n            fileType: o.fileType,\n            cordovaDir: cordovaDir,\n            readyState: xhr.readyState,\n            errorPosition: \"no file found\"\n          });\n        }\n      }\n      return o.onLoaded(blob);\n    };\n    return load();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadContentFile/startJob/_shared/readFileContent/readFile/onErrorDebugging/onErrorDebugging.ls","text":"(function(){\n  return function(p, reader, file){\n    var e, reader2, onDone;\n    e = {\n      event: \"debugReadFileContentError\",\n      version: 6,\n      filePath: p.filePath,\n      fileType: p.fileType,\n      modifiedAgo: new Date() - file.lastModifiedDate,\n      fileSize: file.size,\n      name: reader.error.name,\n      code: reader.error.code,\n      message: reader.error.message\n    };\n    reader2 = new FileReader();\n    if (p.fileType === \"base64\") {\n      reader2.readAsDataURL(file);\n    } else {\n      reader2.readAsText(file);\n    }\n    reader2.onload = function(e){\n      return onDone(\"loaded\");\n    };\n    reader2.onerror = function(e){\n      return onDone(\"error\");\n    };\n    return onDone = function(type){\n      var retryResult;\n      retryResult = {\n        type: type,\n        fileSize: file.size,\n        modifiedAgo: new Date() - file.lastModifiedDate\n      };\n      if (type === \"error\") {\n        retryResult.name = reader2.error.name;\n        retryResult.code = reader2.error.code;\n        retryResult.message = reader2.error.message;\n      }\n      e.retryResult = retryResult;\n      return typeof log != 'undefined' && log !== null ? log.log(e) : void 8;\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadManager/setPriority/set.ls","text":"(function(){\n  return function(manager, id){\n    var i$, ref$, plan, results$ = [];\n    for (i$ in ref$ = manager.planInfos) {\n      plan = ref$[i$];\n      if (plan.id !== id) {\n        results$.push(plan.priority = false);\n      } else {\n        results$.push(plan.priority = true);\n      }\n    }\n    return results$;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/downloadManager/updateDom/update.ls","text":"(function(){\n  return function(manager, id){\n    var planDetails, elements, i$, len$, el, results$ = [];\n    planDetails = manager.planInfos[id];\n    elements = body.getElementsByClassName(\"onDownloadManagerUpdate-\" + id);\n    for (i$ = 0, len$ = elements.length; i$ < len$; ++i$) {\n      el = elements[i$];\n      results$.push(el.onDownloadManagerUpdate(planDetails));\n    }\n    return results$;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/dragDown/dragDown.ls","text":"(function(){\n  return function(o){\n    var div, handle, height, didStart, initialDy, dy, getInitialTransform, start, reset, hide;\n    div = o.div;\n    handle = o.handle || div;\n    requestAnimationFrame(function(){\n      var extendedCss, css, extendedDiv;\n      if (o.minY == null) {\n        o.minY = -div.offset().height;\n      }\n      if (o.maxY == null) {\n        o.maxY = 0;\n      }\n      extendedCss = {\n        height: \"10em\",\n        position: \"absolute\",\n        bottom: \"calc(100% - 2px)\",\n        left: 0,\n        right: 0\n      };\n      css = o.extendedBackgroundCss || {};\n      css = import$(css, extendedCss);\n      if (css.backgroundColor == null) {\n        css.backgroundColor = div.css(\"backgroundColor\");\n      }\n      return div.prepend(extendedDiv = Div().css(css));\n    });\n    getInitialTransform = function(){\n      var y, transform, transforms, i$, len$, i, t;\n      y = 0;\n      transform = div.style.transform;\n      transforms = transform != null ? transform.split(/[()]/) : void 8;\n      for (i$ = 0, len$ = transforms.length; i$ < len$; ++i$) {\n        i = i$;\n        t = transforms[i$];\n        if (t.trim() === \"translateY\") {\n          y = +transforms[i + 1].replace(\"px\", \"\").trim();\n          break;\n        } else if (t.trim() === \"matrix\") {\n          y = +_.last(transforms[i + 1].split(\",\")).trim();\n        }\n      }\n      return y;\n    };\n    start = function(){\n      var offset;\n      didStart = false;\n      offset = div.offset();\n      height = offset.height;\n      return initialDy = getInitialTransform();\n    };\n    reset = function(){\n      div.animation({\n        css: {\n          transform: \"translateY(\" + o.maxY + \"px\"\n        },\n        duration: 100,\n        easing: \"bounce\"\n      });\n      return typeof o.onDone == 'function' ? o.onDone(true) : void 8;\n    };\n    hide = function(){\n      div.animation({\n        css: {\n          transform: \"translateY(\" + o.minY + \"px\"\n        },\n        duration: 100,\n        easing: \"linear\"\n      });\n      return typeof o.onDone == 'function' ? o.onDone(false) : void 8;\n    };\n    return handle.gesturePan({\n      preventDefault: true,\n      onStart: function(gr){\n        return start();\n      },\n      onCancel: function(gr){\n        if (!didStart) {\n          return;\n        }\n        return reset();\n      },\n      onEnded: function(gr){\n        if (!didStart) {\n          return;\n        }\n        didStart = false;\n        if (dy < -height / 2 || gr.velocity.y > 0.3) {\n          return hide();\n        } else {\n          return reset();\n        }\n      },\n      onChanged: function(gr){\n        dy = gr.translation.y;\n        if (!didStart) {\n          if (Math.abs(dy) > 5) {\n            didStart = true;\n            if (typeof o.onStart == 'function') {\n              o.onStart();\n            }\n          } else {\n            return;\n          }\n        }\n        if (Math.abs(dy) > 10) {\n          body.dispatchEvent(new Event('scroll'));\n        }\n        dy += initialDy;\n        if (dy > o.maxY) {\n          dy = Math.pow(dy, 0.75);\n        }\n        return div.css({\n          transform: \"translateY(\" + dy + \"px)\"\n        });\n      }\n    });\n  };\n})();\nfunction import$(obj, src){\n  var own = {}.hasOwnProperty;\n  for (var key in src) if (own.call(src, key)) obj[key] = src[key];\n  return obj;\n}","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/fileDirectoryList/list/startJob/startJob.ls","text":"(function(){\n  return function(job, onJobDone){\n    var folderPath, cordovaDir, localFolder, getListFromPlugin, getList, finish;\n    folderPath = job.folderPath;\n    cordovaDir = cordova.file.externalDataDirectory || cordova.file.dataDirectory;\n    localFolder = _.replace(cordovaDir, \"file://\", \"\") + folderPath;\n    getListFromPlugin = function(){\n      return SolocodePlugin.listFilesInDirectory(localFolder, finish, function(error){\n        return getList();\n      });\n    };\n    getList = function(){\n      return app.fileSystem.listDir(folderPath, function(error, dir){\n        var fileNames;\n        if (error) {\n          return finish([]);\n        } else {\n          fileNames = _.map(dir, \"name\");\n          return finish(fileNames);\n        }\n      });\n    };\n    finish = function(fileNames){\n      return trySafe(function(){\n        job.onDone(fileNames);\n        return onJobDone(job, fileNames);\n      });\n    };\n    if ((typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null) && SolocodePlugin.listFilesInDirectory) {\n      return getListFromPlugin();\n    } else {\n      return getList();\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/fileDirectoryList/list/trimFolderPath/trim.ls","text":"(function(){\n  return function(f){\n    if (_.startsWith(f, \"/\")) {\n      f = f.substr(1);\n    }\n    if (_.endsWith(f, \"/\")) {\n      f = f.substr(0, f.length - 2);\n    }\n    return f;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/formatDate2/addSpecialDays/isChristmas/isChristmas.ls","text":"(function(){\n  return function(o, date, startDay){\n    var christmasStart, christmasEnd, isChristmas;\n    christmasStart = new Date(o.Y + \"-12-\" + startDay);\n    christmasEnd = new Date(o.Y + \"-12-30\");\n    return isChristmas = christmasStart < date && christmasEnd > date;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/formatDate2/addSpecialDays/isEaster/isEaster.ls","text":"(function(){\n  return function(o, date){\n    var year, f, G, C, H, I, J, L, month, day, easter, easterStart, easterEnd, isEaster;\n    year = o.Y;\n    f = Math.floor;\n    G = year % 19;\n    C = f(year / 100);\n    H = (C - f(C / 4) - f((8 * C + 13) / 25) + 19 * G + 15) % 30;\n    I = H - f(H / 28) * (1 - f(29 / (H + 1)) * f((21 - G) / 11));\n    J = (year + f(year / 4) + I + 2 - C + f(C / 4)) % 7;\n    L = I - J;\n    month = 3 + f((L + 40) / 44);\n    day = L + 28 - 31 * f(month / 4);\n    easter = {\n      m: month,\n      d: day\n    };\n    easterStart = new Date(year + \"-\" + easter.m + \"-\" + (easter.d - 2));\n    easterEnd = new Date(year + \"-\" + easter.m + \"-\" + (easter.d + 1));\n    return isEaster = easterStart < date && easterEnd > date;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/formatDate2/addSpecialDays/isHalloween/isHalloween.ls","text":"(function(){\n  return function(o){\n    var isHalloween;\n    return isHalloween = o.d > 26 && o.m === 10;\n  };\n})();","updated":"2021-10-29T12:48:07.887581"},{"path":"lib/util/formatDate2/addTimeAgo/add.ls","text":"(function(){\n  return function(o, now, date){\n    var secsAgo, minsAgo, hoursAgo, daysAgo, monthsAgo, yearsAgo, labelShort;\n    secsAgo = _.round((now - date) / 1000);\n    minsAgo = _.round(secsAgo / 60);\n    hoursAgo = _.round(secsAgo / (60 * 60));\n    daysAgo = _.round(secsAgo / (60 * 60 * 24));\n    monthsAgo = _.round(secsAgo / (60 * 60 * 24 * 31));\n    yearsAgo = _.round(secsAgo / (60 * 60 * 24 * 31 * 12));\n    return o.timeAgo = {\n      ts: secsAgo,\n      tm: minsAgo,\n      th: hoursAgo,\n      d: daysAgo,\n      m: monthsAgo,\n      y: yearsAgo,\n      labelLong: (function(){\n        switch (false) {\n        case !(secsAgo < 60):\n          return T(\"justNow\");\n        case minsAgo !== 1:\n          return T(\"oneMinuteAgo\");\n        case !(secsAgo < 60 * 60):\n          return T(\"numMinutesAgo\", minsAgo);\n        case hoursAgo !== 1:\n          return T(\"oneHourAgo\");\n        case !(secsAgo < 60 * 60 * 24):\n          return T(\"numHoursAgo\", hoursAgo);\n        case daysAgo !== 1:\n          return T(\"yesterday\");\n        case !(secsAgo < 60 * 60 * 24 * 31):\n          return T(\"numDaysAgo\", daysAgo);\n        case monthsAgo !== 1:\n          return T(\"oneMonthAgo\");\n        case !(secsAgo < 60 * 60 * 24 * 31 * 12):\n          return T(\"numMonthsAgo\", monthsAgo);\n        case yearsAgo !== 1:\n          return T(\"oneYearAgo\");\n        default:\n          return T(\"numYearsAgo\", yearsAgo);\n        }\n      }()),\n      labelShort: labelShort = (function(){\n        switch (false) {\n        case !(secsAgo < 60 * 60):\n          return minsAgo + \"m\";\n        case !(secsAgo < 60 * 60 * 24):\n          return hoursAgo + \"h\";\n        case !(secsAgo < 60 * 60 * 24 * 31):\n          return daysAgo + \"d\";\n        case !(secsAgo < 60 * 60 * 24 * 31 * 12):\n          return monthsAgo + \"m\";\n        default:\n          return yearsAgo + \"y\";\n        }\n      }()),\n      label: (function(){\n        switch (false) {\n        case !(secsAgo < 60 * 60):\n          return labelShort.slice(0, -1) + \" \" + (minsAgo === 1\n            ? T(\"minute\")\n            : T(\"minutes\"));\n        case !(secsAgo < 60 * 60 * 24):\n          return labelShort.slice(0, -1) + \" \" + (hoursAgo === 1\n            ? T(\"hour\")\n            : T(\"hours\"));\n        case !(secsAgo < 60 * 60 * 24 * 31):\n          return labelShort.slice(0, -1) + \" \" + (daysAgo === 1\n            ? T(\"day\")\n            : T(\"days\"));\n        case !(secsAgo < 60 * 60 * 24 * 31 * 12):\n          return labelShort.slice(0, -1) + \" \" + (monthsAgo === 1\n            ? T(\"month\")\n            : T(\"months\"));\n        default:\n          return labelShort.slice(0, -1) + \" \" + (yearsAgo === 1\n            ? T(\"year\")\n            : T(\"years\"));\n        }\n      }())\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/formatDate2/addSpecialDays/isNewYear/isNewYear.ls","text":"(function(){\n  return function(o){\n    var isNewYear;\n    return isNewYear = (o.d === 30 && o.m === 12) || (o.d === 31 && o.m === 12) || (o.d === 1 && o.m === 1) || (o.d === 2 && o.m === 1) || (o.d === 3 && o.m === 1) || (o.d === 4 && o.m === 1) || (o.d === 5 && o.m === 1);\n  };\n})();","updated":"2020-12-31T18:36:52.374424"},{"path":"lib/util/formatDateRange/format.ls","text":"(function(){\n  return function(startDate, endDate){\n    var s, e, months;\n    s = startDate.split(\"-\");\n    e = endDate.split(\"-\");\n    months = [T(\"jan\"), T(\"feb\"), T(\"mar\"), T(\"apr\"), T(\"may\"), T(\"jun\"), T(\"jul\"), T(\"aug\"), T(\"sep\"), T(\"oct\"), T(\"nov\"), T(\"dec\")];\n    s = parseInt(s[2]) + \". \" + months[parseInt(s[1] - 1)];\n    e = parseInt(e[2]) + \". \" + months[parseInt(e[1] - 1)];\n    return s + \" - \" + e;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/formatPhoneNumber/format.ls","text":"(function(){\n  return function(number){\n    return number.slice(0, 3) + \"&nbsp;\" + number.slice(3, 6) + \"&nbsp;\" + number.slice(6);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/getMobileUnsentLogFileInfos/getFileInfo/get.ls","text":"(function(){\n  return function(fileEntry, onDone){\n    return fileEntry.getMetadata(function(m){\n      return trySafe(function(){\n        var info;\n        return onDone(info = {\n          fileSize: m.size,\n          name: fileEntry.name,\n          logId: fileEntry.name.replace(\"events_\", \"\").replace(\"_unsent.json\", \"\")\n        });\n      });\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/heapInfo/info.ls","text":"(function(){\n  return function(n){\n    var n2, heapInfo;\n    if (!engine.isDebug) {\n      return;\n    }\n    n = _.replaceAll(n, \"/../\", \"\");\n    n = _.replaceAll(n, \"-\", \"_\");\n    n = _.replaceAll(n, \"/\", \"_\");\n    n2 = \"heap_info_\" + n;\n    heapInfo = eval(\"function \" + n2 + \"(){};\\nnew \" + n2 + \"();\");\n    n = _.replaceAll(n, \"page_app01_pages_\", \"\");\n    heapInfo[n] = new XMLSerializer();\n    return heapInfo;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/isiOs/isiOs.ls","text":"(function(){\n  return function(){\n    if (/iPad|iPhone|iPod/.test(navigator.platform)) {\n      return true;\n    } else if (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1) {\n      return true;\n    } else {\n      return false;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/js2ls/js2ls.ls","text":"(function(){\n  var js2ls;\n  return js2ls = function(object, indent, inArray){\n    var result, spaces, index;\n    indent = indent || 1;\n    result = '';\n    spaces = Array(indent).join('  ');\n    if (_.isString(object)) {\n      if (object.indexOf(\"function:\") === 0) {\n        result = object.replace(\"function:\", \"\");\n      } else {\n        result = [\"'\", object, \"'\"].join('');\n      }\n    } else if (_.isArray(object)) {\n      _.each(object, function(val, index){\n        var lr;\n        lr = inArray && index === 0\n          ? ''\n          : '\\n' + spaces;\n        result += [lr, '* ', js2ls(val, indent + 1, true)].join('');\n        if (object.length === 1) {\n          return result += ['\\n', spaces, '...'].join('');\n        }\n      });\n    } else if (_.isObject(object)) {\n      index = 0;\n      _.each(object, function(val, key){\n        var lr;\n        lr = inArray && index === 0\n          ? ''\n          : '\\n' + spaces;\n        result += [lr, key, ': ', js2ls(val, indent + 1)].join('');\n        return index++;\n      });\n    } else {\n      result = object;\n    }\n    return result;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/loadTopic/load.ls","text":"(function(){\n  return function(o){\n    if (o.idePreview) {\n      return inc(\"loadIdePreview/load\")(o);\n    } else {\n      return inc(\"loadFromPlan/load\")(o);\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/input/_t.ls","text":"(function(){\n  return {\n    search: {\n      de: \"Suchen\",\n      en: \"Search\",\n      fr: \"Rechercher\",\n      es: \"Buscar\",\n      pt: \"Buscar\"\n    }\n  };\n})();","updated":"2021-10-12T09:11:02.968152"},{"path":"lib/util/pllsCall/isSamePage/isSamePage.ls","text":"(function(){\n  return function(o){\n    return function(){\n      return o.currentPage === app.currentPage;\n    };\n  };\n})();","updated":"2021-07-29T10:53:02.183061"},{"path":"lib/util/pllsCall/isVisible/isVisible.ls","text":"(function(){\n  return function(o){\n    return function(){\n      return o.params.requiredVisibleDiv == null || o.params.requiredVisibleDiv.isVisible();\n    };\n  };\n})();","updated":"2021-07-29T10:53:02.183061"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showResult/row/_shared/tag/tag.ls","text":"(function(){\n  return function(title, query){\n    return Div({\n      display: \"inline-block\",\n      marginLeft: \"0.3em\",\n      fontSize: \"0.8em\",\n      padding: \"0.1em 0.2em\",\n      color: Color.grey[600],\n      flex: \"1 1 auto\"\n    }).html(inc(\"/lib/util/tagSearchInString/tagSearchInString\")(title, query.split(/\\s+/), \"<m-blue>\"));\n  };\n})();","updated":"2023-05-02T11:04:27.85259"},{"path":"lib/util/projectPath/path.ls","text":"(function(){\n  return function(p){\n    if (!p) {\n      return;\n    }\n    if (p.indexOf(\"/../\") === 0) {\n      return \"/\" + p.split(\"/\").slice(3).join(\"/\");\n    } else {\n      return p;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/shareApp/share.ls","text":"(function(){\n  return function(){\n    var ref$, shareId, ref1$, addToEvent, onDone, onError;\n    if (((ref$ = window.plugins) != null ? ref$.socialsharing : void 8) == null) {\n      return;\n    }\n    shareId = (ref1$ = log.findLast(\"setShareId\")) != null ? ref1$.value : void 8;\n    if (shareId == null) {\n      shareId = helpers.guid(7);\n      log.log({\n        event: \"setShareId\",\n        value: shareId\n      });\n    }\n    log.log({\n      event: \"debugShareApp\",\n      shareId: shareId,\n      deviceType: engine.isiOsApp\n        ? \"iOS\"\n        : engine.isAndroidApp ? \"android\" : \"other\"\n    });\n    addToEvent = function(props){\n      var e, e2, k, v;\n      e = log.findLast({\n        event: \"debugShareApp\"\n      });\n      e2 = _.cloneDeep(e);\n      for (k in props) {\n        v = props[k];\n        e2[k] = v;\n      }\n      delete e2.created;\n      delete e2.inserted;\n      delete e2.seq;\n      log.log(e2);\n      return log.deleteEvent(e);\n    };\n    onDone = function(res){\n      var o;\n      o = {\n        completed: res.completed\n      };\n      if (res.app !== \"\") {\n        o.app = res.app;\n      }\n      return addToEvent(o);\n    };\n    onError = function(error){\n      var o;\n      o = {\n        error: error\n      };\n      return addToEvent(o);\n    };\n    return window.plugins.socialsharing.shareWithOptions({\n      subject: T(\"shareSubject\"),\n      message: T(\"shareText\"),\n      url: \"https://anton.app/download?shareId=\" + shareId\n    }, onDone, onError);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/startPage/clickCatcher/clickCatcher.ls","text":"(function(){\n  return function(){\n    return Div({\n      position: \"fixed\",\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0,\n      zIndex: 1000\n    }).addClass(\"startPageClickCatcher\").hide().appendTo(body);\n  };\n})();","updated":"2021-01-04T13:19:29.946952"},{"path":"lib/util/waitFrames/wait.ls","text":"(function(){\n  return function(totalFrames, callback){\n    var counter, f;\n    counter = 0;\n    f = function(){\n      return requestAnimationFrame(function(){\n        counter = counter + 1;\n        if (counter === totalFrames) {\n          return callback();\n        } else {\n          return requestAnimationFrame(f);\n        }\n      });\n    };\n    return f();\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/scrollTop/init.ls","text":"(function(){\n  return function(pw, pagePath){\n    var scrollTop;\n    if (app.currentPage.params.history <= 0) {\n      scrollTop = app.pageScrollPositions[pagePath] || 0;\n      return pw.pageScrollWrapper.scrollTop = scrollTop;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/scopeRender/init.ls","text":"(function(){\n  return function(pw){\n    return pw.page.scopeRender = function(params){\n      var that;\n      if (that = pw.pageScrollWrapper.setScopeRender) {\n        return that(params);\n      } else {\n        return pw.pageScrollWrapper.scopeRender = params;\n      }\n    };\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/top/init.ls","text":"(function(){\n  return function(pw){\n    var color, c, shadow, ref$;\n    color = (c = pw.pageCode.statusBarColor)\n      ? c\n      : pw.pageCode.top != null ? Color.grey[75] : '#ffffff';\n    shadow = pw.pageCode.top != null ? \"0px 0px 7px rgba(0,0,0,0.1)\" : \"\";\n    pw.top.css({\n      backgroundColor: color,\n      borderBottom: \"1px solid \" + color,\n      boxShadow: shadow\n    });\n    return pw.top.append(typeof (ref$ = pw.pageCode).top == 'function' ? ref$.top() : void 8);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/statusBar/init.ls","text":"(function(){\n  return function(pw){\n    var color, that;\n    if (typeof StatusBar == 'undefined' || StatusBar === null) {\n      return;\n    }\n    color = (that = pw.pageCode.statusBarColor)\n      ? that\n      : pw.pageCode.top != null\n        ? Color.grey[75]\n        : Color.white;\n    if (typeof StatusBar != 'undefined' && StatusBar !== null) {\n      StatusBar.styleDefault();\n    }\n    return StatusBar.setBackgroundColor(color);\n  };\n})();","updated":"2022-01-20T16:30:03.828802"},{"path":"lib/util/startPage/pageSwipe/event/normalize.ls","text":"(function(){\n  return function(e){\n    var ref$, ref1$, ref2$, ref3$, ref4$, ref5$, ref6$, ref7$, ref8$;\n    return {\n      clientX: e.clientX || ((ref$ = e.changedTouches) != null ? (ref1$ = ref$[0]) != null ? ref1$.clientX : void 8 : void 8) || ((ref2$ = e.touches) != null ? (ref3$ = ref2$[0]) != null ? ref3$.clientX : void 8 : void 8) || 0,\n      clientY: e.clientY || ((ref4$ = e.changedTouches) != null ? (ref5$ = ref4$[0]) != null ? ref5$.clientY : void 8 : void 8) || ((ref6$ = e.touches) != null ? (ref7$ = ref6$[0]) != null ? ref7$.clientY : void 8 : void 8) || 0,\n      numberOfTouches: ((ref8$ = e.touches) != null ? ref8$.length : void 8) || 1\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"lib/util/tagSearchInString/tagSearchInString.ls","text":"(function(){\n  return function(string, searchValues, tag){\n    var i$, ref$, len$, s, reg, replace;\n    tag == null && (tag = \"<m-yellow>\");\n    for (i$ = 0, len$ = (ref$ = _.ensureArray(searchValues)).length; i$ < len$; ++i$) {\n      s = ref$[i$];\n      s = _.replace(s, /[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n      reg = new RegExp(s, 'gi');\n      replace = fn$;\n      string = string.replace(reg, replace);\n    }\n    return string;\n    function fn$(s){\n      return tag + s + \"</\" + tag.substr(1);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/misc/email/_urlDescription/_t.ls","text":"(function(){\n  return {\n    email: {\n      de: \"E-Mail\",\n      en: \"Email\",\n      fr: \"E-mail\",\n      es: \"Correo electrónico\",\n      pt: \"E-mail\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/level/afterFinish/pages/newCoin/firstCoinExplainGameMenu/page.ls","text":"(function(){\n  return function(page){\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      start: function(){\n        return page.append(inc(\"icon/icon\")(), inc(\"text/text\")(), inc(\"button/button\")());\n      }\n    };\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/start/close/close.ls","text":"(function(){\n  return function(){\n    return startPage({\n      history: function(path){\n        return !_.includes(path, \"/level\");\n      },\n      animation: \"fadeIn\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupError/avatar/avatar.ls","text":"(function(){\n  return function(){\n    var userDescription;\n    userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    return inc(\"/lib/gui/avatar/avatar\")(userDescription.avatar, \"half\").css({\n      display: \"inline-block\",\n      width: \"7em\",\n      height: \"7em\",\n      borderRadius: \"999px\",\n      filter: 'drop-shadow(0 0 0.5em rgba(0, 0, 0, 0.2))'\n    });\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupError/button/button.ls","text":"(function(){\n  return function(){\n    return Button({\n      label: T(\"continueButton\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\"\n    }).css({\n      marginBottom: \"1em\"\n    }).tap(function(){\n      return app.currentPopup.close();\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/notFound/notFound.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var parent;\n      o.showSearch();\n      parent = body.findFirst(\".menuSearchResult\");\n      return parent != null ? parent.html(Div().css({\n        padding: \"1em\",\n        textAlign: \"center\"\n      }).html(T(\"nothingFound\")), inc(\"contentFeedbackButton/button\")(o)) : void 8;\n    };\n  };\n})();","updated":"2021-08-30T10:52:54.890581"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/search/loadSearchResult/calcSearchResult/calc.ls","text":"(function(){\n  return function(plans, searchQuery, onDone){\n    var searchResult, i$, len$, plan, j$, ref$, len1$, topic, result, k$, ref1$, len2$, block, l$, ref2$, len3$, level;\n    searchResult = [];\n    for (i$ = 0, len$ = plans.length; i$ < len$; ++i$) {\n      plan = plans[i$];\n      if (plan.displayName === searchQuery) {\n        searchResult.push({\n          matchType: \"plan\",\n          project: plan.project\n        });\n        break;\n      }\n      for (j$ = 0, len1$ = (ref$ = plan.topics).length; j$ < len1$; ++j$) {\n        topic = ref$[j$];\n        if (topic.blocks == null || topic.blocks.length === 0) {\n          continue;\n        }\n        result = inc(\"calcTopicResult/calc\")(topic, plan, searchQuery);\n        if (result) {\n          result = _.cloneDeep(result);\n          searchResult.push(result);\n          delete result.topic.blocks;\n          if (result.blocks != null) {\n            for (k$ = 0, len2$ = (ref1$ = result.blocks).length; k$ < len2$; ++k$) {\n              block = ref1$[k$];\n              for (l$ = 0, len3$ = (ref2$ = block.levels).length; l$ < len3$; ++l$) {\n                level = ref2$[l$];\n                delete level.path;\n                delete level.title;\n              }\n            }\n          }\n        }\n      }\n    }\n    return onDone(searchResult);\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/calc/formattedScore/percentage/format.ls","text":"(function(){\n  return function(score){\n    return score.toFixed(1) + \"%\";\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupError/popup.ls","text":"(function(){\n  return function(o, type){\n    var ref$, html, popup;\n    if ((ref$ = o.spinner) != null) {\n      ref$.remove();\n    }\n    html = Div().append(inc(\"title/title\")(), inc(\"avatar/avatar\")(), inc(\"text/text\")(type), inc(\"result/result\")(o), inc(\"button/button\")());\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: html,\n      onClose: o.onClose\n    });\n  };\n})();","updated":"2021-04-08T15:07:22.077204"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/search/loadSearchResult/load.ls","text":"(function(){\n  return function(p){\n    var loadPlans, calcSearchResult, finish;\n    loadPlans = function(){\n      var page;\n      page = app.currentPage;\n      return inc(\"../../loadPlans/load\")({\n        onDone: function(plans){\n          if (page !== app.currentPage) {\n            return;\n          }\n          return calcSearchResult(plans);\n        },\n        onError: p.onError\n      });\n    };\n    calcSearchResult = function(plans){\n      return inc(\"calcSearchResult/calc\")(plans, p.searchQuery, finish);\n    };\n    finish = function(searchResult){\n      return p.onLoaded({\n        searchQuery: p.searchQuery,\n        searchResult: searchResult\n      });\n    };\n    return loadPlans();\n  };\n})();","updated":"2021-10-25T12:34:10.726624"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showResult/calcDataRows/calc.ls","text":"(function(){\n  return function(searchResult){\n    var dataRows, lastPlanProject, i$, len$, r, planProject, j$, ref$, len1$, block;\n    dataRows = [];\n    lastPlanProject = null;\n    for (i$ = 0, len$ = searchResult.length; i$ < len$; ++i$) {\n      r = searchResult[i$];\n      if (r.matchType === \"plan\") {\n        dataRows.push({\n          rowType: \"plan\",\n          project: r.project\n        });\n        continue;\n      }\n      planProject = r.topic.path.split(\"/\")[2];\n      if (planProject !== lastPlanProject) {\n        dataRows.push({\n          rowType: \"plan\",\n          project: planProject\n        });\n        lastPlanProject = planProject;\n      }\n      dataRows.push({\n        rowType: \"topic\",\n        topic: r.topic,\n        topicTag: r.topicTag,\n        project: planProject,\n        matchedBlocks: r.blocks,\n        matchType: r.matchType\n      });\n      if (r.blocks != null) {\n        for (j$ = 0, len1$ = (ref$ = r.blocks).length; j$ < len1$; ++j$) {\n          block = ref$[j$];\n          dataRows.push({\n            rowType: \"block\",\n            blockTags: r.blockTags,\n            block: block,\n            topic: r.topic,\n            project: planProject\n          });\n        }\n      }\n    }\n    return dataRows;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showSuggestions/show.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var parent, ref$;\n      parent = body.findFirst(\".menuSearchResult\");\n      o.suggestionsBackground == null && (o.suggestionsBackground = Div().addClass(\"suggestionsBackground\").css({\n        position: \"absolute\",\n        top: 0,\n        bottom: 0,\n        left: 0,\n        right: 0\n      }).tap({\n        up: function(e){\n          return o.hideSuggestions();\n        },\n        animation: \"none\"\n      }).css({\n        cursor: \"default\"\n      }).appendTo(parent));\n      o.suggestionsBackground.show();\n      if ((ref$ = o.suggestionDiv) != null) {\n        ref$.show();\n      }\n      return parent != null ? parent.css({\n        opacity: 0.3\n      }) : void 8;\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/stop/stop.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var ref$;\n      if ((ref$ = body.findFirst(\".searchInput\")) != null) {\n        ref$.stop();\n      }\n      return o.hideSuggestions();\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/calc/formattedScore/points/format.ls","text":"(function(){\n  return function(score){\n    return parseInt(score) + \"\";\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/components.ls","text":"(function(){\n  return function(){\n    var components;\n    return components = {\n      RED: 16,\n      GREEN: 8,\n      BLUE: 0\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/astroBang/astroBang.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"astroBang\",\n      project: \"app01-game-asteroids\",\n      title: \"Astro Bang\",\n      category: \"space\",\n      grade: 4,\n      price: 1,\n      icon: \"solocode_game-astro-bang-cover-2\",\n      iconPosition: \"0% 0%\",\n      numberOfTries: 3,\n      highscoreAscending: false,\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"gamesUrl\"),\n      title: T(\"games\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Vector/substract.ls","text":"(function(){\n  return function(vec1, vec2){\n    var vec;\n    return vec = {\n      x: vec1.x - vec2.x,\n      y: vec1.y - vec2.y\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/avatarSuperstar/avatarSuperstar.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"avatarSuperstar\",\n      project: \"app01-avatar-superstar\",\n      title: \"Avatar Superstar\",\n      category: \"creative\",\n      grade: 2,\n      icon: \"solocode_game-avatar-superstar-cover-4\",\n      highscoreDisabled: true,\n      difficulties: [\n        {\n          title: T(\"myAvatars\"),\n          icon: path(\"/lib/svg/shape/avatar.svg\"),\n          page: path(\"/../app01-avatar-superstar/pages/gallery/page\")\n        }, {\n          title: T(\"newAvatars\"),\n          icon: path(\"/lib/svg/shape/badge.svg\"),\n          page: path(\"/../app01-avatar-superstar/pages/latest/page\")\n        }, {\n          title: T(\"popularAvatars\"),\n          icon: path(\"/lib/svg/shape/heart.svg\"),\n          page: path(\"/../app01-avatar-superstar/pages/best/page\")\n        }, {\n          title: T(\"antonFavorites\"),\n          debugOnly: true,\n          icon: path(\"/lib/svg/shape/anton-app.svg\"),\n          page: path(\"/../app01-avatar-superstar/pages/favourites/page\")\n        }\n      ],\n      manual: T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-01T11:43:17.753139"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/calc/formattedScore/time/format.ls","text":"(function(){\n  return function(score){\n    var t, endingZero, leadingZero, string;\n    t = Math.round(score * 100);\n    endingZero = t % 100 === 0\n      ? \".00\"\n      : t % 10 === 0 ? \"0\" : \"\";\n    leadingZero = t < 1000 ? \"0\" : \"\";\n    string = leadingZero + t / 100 + endingZero;\n    return string.replace(\".\", \":\");\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/batCave/batCave.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"batCave\",\n      project: \"app01-game-helicopter\",\n      title: \"Bat Cave\",\n      category: \"skill\",\n      grade: 3,\n      price: 1,\n      icon: \"solocode_solocode-game-bat-cave-2\",\n      iconPosition: \"50% 47%\",\n      numberOfTries: 3,\n      highscoreAscending: false,\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/blockPuzzle/blockPuzzle.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"blockPuzzle\",\n      project: \"app01-game-block-puzzle\",\n      title: \"Block Puzzle\",\n      category: \"puzzle\",\n      grade: 4,\n      price: 1,\n      icon: \"solocode_game-block-puzzle-cover-3\",\n      iconPosition: \"50% 55%\",\n      numberOfTries: 3,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      newBadge: false,\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }\n      ],\n      manual: T(\"manual\")\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/echoMaster/echoMaster.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"echoMaster\",\n      project: \"app01-anton-sings\",\n      title: \"Echo Master\",\n      category: \"brain\",\n      grade: 4,\n      price: 1,\n      icon: \"solocode_game-echo-machine-cover\",\n      iconPosition: \"50% 50%\",\n      numberOfTries: 3,\n      pagePath: path(\"/../app01-anton-sings/pages/game/page\"),\n      difficulties: [\n        {\n          value: 3,\n          title: T(\"easyViolin\")\n        }, {\n          value: 4,\n          title: T(\"mediumGuitar\")\n        }, {\n          value: 5,\n          title: T(\"hardPiano\")\n        }, {\n          value: 6,\n          title: T(\"veryHardChimes\")\n        }\n      ],\n      manual: T(\"manual\")\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/calc/periodAndUsersFilter/calc.ls","text":"(function(){\n  return function(o){\n    var e;\n    e = log.findLast({\n      event: \"setHighscoreFilter\"\n    });\n    if (!(e != null && e.period)) {\n      e = undefined;\n    }\n    o.period = (e != null ? e.period : void 8) || \"week\";\n    o.users = (e != null ? e.users : void 8) || \"all\";\n    if (o.period === \"all\") {\n      return o.period = \"week\";\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/numberPuzzle/numberPuzzle.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"numberPuzzle\",\n      project: \"app01-game-number-puzzle\",\n      title: \"Number Puzzle\",\n      category: \"puzzle\",\n      grade: 4,\n      price: 1,\n      icon: \"solocode_game-number-puzzle-cover-2\",\n      iconPosition: \"50% 57%\",\n      numberOfTries: 3,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      difficulties: [\n        {\n          value: 1,\n          title: T(\"explanation\"),\n          page: path(\"/../app01-game-number-puzzle/pages/tutorial/page\"),\n          highscoreDisabled: true\n        }, {\n          value: 0,\n          title: \"3x3\"\n        }, {\n          value: 1,\n          title: \"4x4\"\n        }, {\n          value: 2,\n          title: \"5x5\"\n        }\n      ],\n      manual: T(\"manual\")\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/pixelPuzzle/pixelPuzzle.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"pixelPuzzle\",\n      project: \"app01-game-pixelPuzzle\",\n      title: \"Pixel Puzzle\",\n      category: \"puzzle\",\n      grade: 4,\n      price: 1,\n      numberOfTries: 3,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      debugOnly: true,\n      newBadge: true,\n      difficulties: [\n        {\n          value: 0,\n          title: \"4x4\"\n        }, {\n          value: 1,\n          title: \"5x5\"\n        }, {\n          value: 2,\n          title: \"6x6\"\n        }\n      ],\n      manual: T(\"manual\")\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/princessJourney/princessJourney.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"princessJourney\",\n      project: \"app01-game-princess-journey\",\n      title: \"A princess' journey\",\n      category: \"skill\",\n      grade: 2,\n      price: 1,\n      numberOfTries: 3,\n      highscoreAscending: false,\n      debugOnly: true,\n      newBadge: true,\n      manual: T(\"manual\"),\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }\n      ]\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/swarm/swarm.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"swarm\",\n      project: \"app01-game-swarm\",\n      title: \"Swarm\",\n      category: \"strategy\",\n      grade: 4,\n      price: 1,\n      numberOfTries: 3,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      debugOnly: true,\n      newBadge: true,\n      difficulties: [\n        {\n          value: 0,\n          title: T(\"easy\")\n        }, {\n          value: 1,\n          title: T(\"medium\")\n        }, {\n          value: 2,\n          title: T(\"hard\")\n        }\n      ],\n      manual: T(\"manual\")\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/lockedGamesInfo/text/text.ls","text":"(function(){\n  return function(d){\n    var groupName;\n    groupName = d.groupDescription.name;\n    return T(\"gamesLocked\", d.label, groupName);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/debugGameEvent/send.ls","text":"(function(){\n  return function(gameName, type, eventData){\n    var e, key, value;\n    e = {\n      event: \"debugGame\",\n      game: gameName || \"unknown\",\n      eventType: type || \"unknown\",\n      isDebug: engine.isDebug\n    };\n    if (eventData != null) {\n      for (key in eventData) {\n        value = eventData[key];\n        e[key] = value;\n      }\n    }\n    return typeof log != 'undefined' && log !== null ? log.log(e) : void 8;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/calc/eventName/calc.ls","text":"(function(){\n  return function(gameId){\n    var upperCased;\n    upperCased = gameId.charAt(0).toUpperCase() + gameId.substr(1);\n    return \"finishGame\" + upperCased;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/calc/formattedScore/float/format.ls","text":"(function(){\n  return function(score){\n    return score + \"\";\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/fpsLabel/create.ls","text":"(function(){\n  return function(width, height, ticker){\n    var fpsContainer, background, style, label, minFPS, maxFPS, resetCounter, deltaMax, resetMinMax;\n    fpsContainer = new PIXI.Container();\n    background = inc(\"../../sprite/create\")({\n      texture: PIXI.Texture.WHITE,\n      tint: 0,\n      anchorY: 0.5,\n      anchorX: 0.5\n    });\n    background.alpha = 0.5;\n    background.width = width;\n    background.height = height;\n    fpsContainer.addChild(background);\n    style = new PIXI.TextStyle({\n      fontFamily: 'Source Sans Pro Solocode',\n      fontSize: 15,\n      fill: '#ffffff',\n      strokeThickness: 0,\n      dropShadow: false\n    });\n    label = new PIXI.Text('FPS: 0.0', style);\n    label.anchor.x = 0;\n    label.anchor.y = 0.5;\n    label.x = -width / 2 + 10;\n    label.y = 0;\n    fpsContainer.addChild(label);\n    fpsContainer.x = 0;\n    fpsContainer.y = 0;\n    minFPS = 999;\n    maxFPS = 0;\n    resetCounter = 5;\n    deltaMax = 0;\n    resetMinMax = function(){\n      minFPS = ticker.FPS;\n      maxFPS = ticker.FPS;\n      return deltaMax = 0;\n    };\n    fpsContainer.update = function(delta){\n      var fps;\n      resetCounter -= delta;\n      if (resetCounter <= 0) {\n        resetMinMax();\n        resetCounter = 5;\n      }\n      fps = ticker.FPS;\n      if (fps < minFPS) {\n        minFPS = fps;\n      }\n      if (fps > maxFPS) {\n        maxFPS = fps;\n      }\n      if (deltaMax < delta) {\n        deltaMax = delta;\n      }\n      return label.text = \"FPS: \" + fps.toFixed(1) + \" MIN: \" + minFPS.toFixed(1) + \" MAX: \" + maxFPS.toFixed(1) + \" DT: \" + deltaMax;\n    };\n    return fpsContainer;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupGameResult/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"yourResult\")).css({\n      fontSize: \"1.3em\",\n      marginBottom: \"1em\",\n      marginTop: \"1em\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/header/calcCurrentPeriodIndex/calc.ls","text":"(function(){\n  return function(o, options){\n    var index;\n    index = _.findIndex(options.period, function(p){\n      return p.period === o.period;\n    });\n    if (index === -1) {\n      index = 1;\n    }\n    return index;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/header/calcCurrentUsersIndex/calc.ls","text":"(function(){\n  return function(o, options){\n    var index;\n    index = _.findIndex(options.users, function(p){\n      return p.users === o.users;\n    });\n    if (index === -1) {\n      index = 0;\n    }\n    return index;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/scene/create.ls","text":"(function(){\n  return function(o){\n    var scene, pointerdown, pointermove, pointerup, keyboard, bg;\n    scene = new PIXI.Container();\n    scene.sceneWidth = o.width;\n    scene.sceneHeight = o.height;\n    scene.paused = false;\n    scene.isRunning = false;\n    scene.start = function(){};\n    scene.update = function(delta){};\n    scene.onTouchDown = function(x, y){};\n    scene.onTouchMove = function(x, y, isDrag){};\n    scene.onTouchUp = function(x, y){};\n    scene.onKeyDown = function(keyCode){};\n    scene.onKeyUp = function(keyCode){};\n    scene.onCleanUp = function(){};\n    scene.resumeSound = function(){};\n    scene.onRetrySelected = function(){};\n    scene.onPause = function(){};\n    scene.onResume = function(){};\n    pointerdown = function(event){\n      if (!scene.paused && scene.isRunning) {\n        scene.onTouchDown(event.data.global.x, event.data.global.y);\n      }\n    };\n    pointermove = function(event){\n      var isDrag;\n      if (!scene.paused && scene.isRunning) {\n        isDrag = event.data.identifier !== \"MOUSE\" || event.data.buttons > 0;\n        scene.onTouchMove(event.data.global.x, event.data.global.y, isDrag);\n      }\n    };\n    pointerup = function(event){\n      if (!scene.paused && scene.isRunning) {\n        scene.onTouchUp(event.data.global.x, event.data.global.y);\n      }\n    };\n    scene.cleanup = function(){\n      scene.onCleanUp();\n      keyboard.cleanup();\n      keyboard = undefined;\n      bg.off('pointerdown', pointerdown);\n      bg.off('pointermove', pointermove);\n      bg.off('pointerup', pointerup);\n      pointerup = undefined;\n      pointerdown = undefined;\n      pointermove = undefined;\n      scene.destroy({\n        children: true,\n        texture: false,\n        baseTexture: false\n      });\n      return \"baseSceneCleanupDone\";\n    };\n    keyboard = inc(\"../keyboard/addListener\")({\n      onKeyUp: function(keyCode){\n        if (scene.isRunning) {\n          scene.onKeyUp(keyCode);\n        }\n      },\n      onKeyDown: function(keyCode){\n        if (scene.isRunning) {\n          scene.onKeyDown(keyCode);\n        }\n      }\n    });\n    bg = inc(\"../sprite/create\")({\n      texture: PIXI.Texture.WHITE,\n      tint: o.backgroundColor,\n      anchorX: 0,\n      anchorY: 0\n    });\n    bg.interactive = true;\n    bg.on('pointerdown', pointerdown);\n    bg.on('pointermove', pointermove);\n    bg.on('pointerup', pointerup);\n    bg.width = scene.sceneWidth;\n    bg.height = scene.sceneHeight;\n    scene.addChild(bg);\n    scene.backgroundSprite = bg;\n    return scene;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/header/title/title.ls","text":"(function(){\n  return function(o){\n    return Div({\n      fontSize: \"1.3em\"\n    }).html(o.popupTitle || T(\"highscore\"));\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/rows/rowSeparator/row.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\",\n      borderBottom: \"1px solid  \" + Color.grey[300],\n      padding: \"0.2em 0 0.3em 0.5em\",\n      color: Color.grey[600],\n      minHeight: \"3em\"\n    }).html(\"...\");\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/rows/rowUser/name/name.ls","text":"(function(){\n  return function(score){\n    return Div({\n      flex: \"1 1 auto\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      textAlign: \"left\",\n      paddingLeft: \"0.4em\",\n      whiteSpace: \"nowrap\"\n    }).text(score.name);\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Rect/containsPoint.ls","text":"(function(){\n  return function(rect, point){\n    return point.x > rect.x && point.y > rect.y && point.x < rect.x + rect.width && point.y < rect.y + rect.height;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Rect/intersectsRect.ls","text":"(function(){\n  return function(rect1, rect2){\n    return rect1.x + rect1.width > rect2.x && rect1.x < rect2.x + rect2.width && rect1.y < rect2.y + rect2.height && rect2.y < rect1.y + rect1.height;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Vector/add.ls","text":"(function(){\n  return function(vec1, vec2){\n    var vec;\n    return vec = {\n      x: vec1.x + vec2.x,\n      y: vec1.y + vec2.y\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Vector/fromRadians.ls","text":"(function(){\n  return function(rad){\n    var vec;\n    return vec = {\n      x: Math.sin(rad),\n      y: Math.cos(rad)\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Vector/length.ls","text":"(function(){\n  return function(vec){\n    return Math.sqrt(vec.x * vec.x + vec.y * vec.y);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Vector/multiply.ls","text":"(function(){\n  return function(vec, a){\n    var v;\n    return v = {\n      x: vec.x * a,\n      y: vec.y * a\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Vector/orthogonal.ls","text":"(function(){\n  return function(vec){\n    var v;\n    return v = {\n      x: -vec.y,\n      y: vec.x\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/03_gameLoading/startGame/startGame.ls","text":"(function(){\n  return function(page){\n    var gameDescription;\n    gameDescription = page.gameDescription;\n    gameDescription.difficulty = page.params.difficulty;\n    return startPage({\n      path: gameDescription.pagePath || gameDescription.difficulty.page || path(\"/../\" + gameDescription.project + \"/pages/game/page\"),\n      params: {\n        gameDescription: gameDescription\n      },\n      replace: true\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/animatedSprite/create.ls","text":"(function(){\n  return function(o){\n    var sprite, ax, ref$, ay, adjustAnimationTime;\n    sprite = new PIXI.extras.AnimatedSprite(o.textures.textures[o.animation].frames);\n    sprite.width = o.textures.size.width / window.devicePixelRatio;\n    sprite.height = o.textures.size.height / window.devicePixelRatio;\n    ax = (ref$ = o.anchorX) != null ? ref$ : 0.5;\n    ay = (ref$ = o.anchorY) != null ? ref$ : 0.5;\n    sprite.anchor.set(ax, ay);\n    sprite.x = (ref$ = o.x) != null ? ref$ : 0;\n    sprite.y = (ref$ = o.y) != null ? ref$ : 0;\n    sprite.dx = (ref$ = o.dx) != null ? ref$ : 0;\n    sprite.dy = (ref$ = o.dy) != null ? ref$ : 0;\n    if (o.tint != null) {\n      sprite.tint = o.tint;\n    }\n    sprite.initialScale = {\n      x: sprite.scale.x,\n      y: sprite.scale.y\n    };\n    sprite.animationTimeScale = 1;\n    sprite.allTextures = o.textures.textures;\n    sprite.currentAnimation = o.animation;\n    adjustAnimationTime = function(){\n      var maxFrame, maxTime, fps;\n      maxFrame = sprite.allTextures[sprite.currentAnimation].maxFrames;\n      maxTime = sprite.allTextures[sprite.currentAnimation].time;\n      fps = maxFrame / maxTime;\n      return sprite.animationSpeed = fps * sprite.animationTimeScale / 50;\n    };\n    sprite.setAnimation = function(animation){\n      sprite.currentAnimation = animation;\n      sprite.textures = sprite.allTextures[animation].frames;\n      adjustAnimationTime();\n      return sprite.play();\n    };\n    sprite.setAnimationTimeScale = function(timeScale){\n      sprite.animationTimeScale = timeScale;\n      return adjustAnimationTime();\n    };\n    adjustAnimationTime();\n    sprite.play();\n    return sprite;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/add.ls","text":"(function(){\n  return function(){\n    PIXI.Helper == null && (PIXI.Helper = {});\n    inc(\"Color/add\")();\n    inc(\"Math/add\")();\n    return inc(\"Convenience/add\")();\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/hintLabel/create.ls","text":"(function(){\n  return function(pixiApp, color){\n    var fontSize, hint;\n    fontSize = Math.min(pixiApp.width, pixiApp.height) * 0.04;\n    hint = new PIXI.Text(\"\", new PIXI.TextStyle({\n      fontFamily: \"Source Sans Pro Solocode\",\n      stroke: color,\n      fill: color,\n      fontSize: fontSize,\n      wordWrap: true,\n      wordWrapWidth: pixiApp.width * 0.9,\n      align: \"center\"\n    }));\n    hint.anchor.set(0.5, 1);\n    hint.x = pixiApp.width / 2;\n    hint.y = pixiApp.height - fontSize;\n    hint.changeHint = function(){\n      return hint.text = T(\"hint\") + _.sample(pixiApp.gameDescription.tips);\n    };\n    return hint;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/keyboard/addListener.ls","text":"(function(){\n  return function(o){\n    var keyboard, keys;\n    keyboard = {};\n    keys = {};\n    keyboard.onKeyDown = function(event){\n      var ref$;\n      if ((ref$ = keys[event.keyCode]) != null ? ref$ : true) {\n        if (typeof o.onKeyDown == 'function') {\n          o.onKeyDown(event.keyCode);\n        }\n        keys[event.keyCode] = false;\n      }\n      event.preventDefault();\n    };\n    keyboard.onKeyUp = function(event){\n      if (!keys[event.keyCode]) {\n        o.onKeyUp(event.keyCode);\n        keys[event.keyCode] = true;\n      }\n      event.preventDefault();\n    };\n    window.addEventListener(\"keydown\", keyboard.onKeyDown, false);\n    window.addEventListener(\"keyup\", keyboard.onKeyUp, false);\n    keyboard.cleanup = function(){\n      window.removeEventListener(\"keydown\", keyboard.onKeyDown);\n      window.removeEventListener(\"keyup\", keyboard.onKeyUp);\n    };\n    return keyboard;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/onScreenControl/control.ls","text":"(function(){\n  return function(tint, radius){\n    var control, startX, startY, outerCircle, innerCircle;\n    tint == null && (tint = 0xffffff);\n    radius == null && (radius = 50);\n    control = new PIXI.Container();\n    startX = 0;\n    startY = 0;\n    control.dx = 0;\n    control.dy = 0;\n    control.angle = 0;\n    outerCircle = new PIXI.Graphics();\n    outerCircle.lineStyle(4, tint, 0.5);\n    outerCircle.drawCircle(0, 0, radius);\n    control.addChild(outerCircle);\n    innerCircle = new PIXI.Graphics();\n    innerCircle.beginFill(tint, 1);\n    innerCircle.drawCircle(0, 0, radius / 3);\n    innerCircle.endFill(tint, 1);\n    control.addChild(innerCircle);\n    control.start = function(x, y){\n      startX = x;\n      startY = y;\n      control.x = x;\n      control.y = y;\n      return control.alpha = 1;\n    };\n    control.update = function(x, y){\n      var v, l, d;\n      if (control.alpha === 0) {\n        return;\n      }\n      v = {\n        x: x - startX,\n        y: y - startY\n      };\n      l = Math.sqrt(Math.pow(v.x, 2) + Math.pow(v.y, 2));\n      if (l === 0) {\n        control.dx = 0;\n        control.dy = 0;\n      } else {\n        d = Math.min(1, l / radius);\n        v.x /= l;\n        v.y /= l;\n        control.dx = v.x * d;\n        control.dy = v.y * d;\n      }\n      control.angle = -Math.atan2(control.dx, control.dy) + Math.PI / 2;\n      innerCircle.x = control.dx * radius;\n      return innerCircle.y = control.dy * radius;\n    };\n    control.end = function(){\n      control.alpha = 0;\n      control.dx = 0;\n      control.dy = 0;\n      return innerCircle.position.set(0);\n    };\n    control.alpha = 0;\n    return control;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/baseTransiton.ls","text":"(function(){\n  return function(o){\n    var resetScene, prepareScene, transition;\n    resetScene = function(scene){\n      scene.rotation = 0;\n      scene.scale.set(1);\n      scene.alpha = 1;\n      scene.pivot.set(0);\n      scene.x = 0;\n      scene.y = 0;\n      scene.removeChild(scene.mask);\n      scene.mask = null;\n    };\n    prepareScene = function(scene){\n      var mask;\n      mask = new PIXI.Graphics();\n      mask.beginFill(0);\n      mask.drawRect(0, 0, scene.sceneWidth, scene.sceneHeight);\n      mask.endFill();\n      scene.addChild(mask);\n      scene.mask = mask;\n    };\n    transition = {};\n    transition.time = 0;\n    transition.duration = o.duration;\n    transition.updateState = function(percentComplete){};\n    transition.update = function(delta){\n      var percentComplete;\n      transition.time += delta;\n      if (transition.duration === 0) {\n        percentComplete = 1;\n      } else {\n        percentComplete = Math.min(1, transition.time / transition.duration);\n      }\n      transition.updateState(percentComplete);\n      if (percentComplete === 1) {\n        resetScene(o.newScene);\n        resetScene(o.oldScene);\n        o.transitionCompleted();\n      }\n    };\n    transition.prepare = function(){\n      prepareScene(o.newScene);\n      prepareScene(o.oldScene);\n      transition.updateState(0);\n    };\n    return transition;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/sprite/create.ls","text":"(function(){\n  return function(o){\n    var sprite, ax, ref$, ay;\n    sprite = PIXI.Sprite.from(o.texture);\n    sprite.width = o.texture.width / window.devicePixelRatio;\n    sprite.height = o.texture.height / window.devicePixelRatio;\n    ax = (ref$ = o.anchorX) != null ? ref$ : 0.5;\n    ay = (ref$ = o.anchorY) != null ? ref$ : 0.5;\n    sprite.anchor.set(ax, ay);\n    sprite.x = (ref$ = o.x) != null ? ref$ : 0;\n    sprite.y = (ref$ = o.y) != null ? ref$ : 0;\n    sprite.dx = (ref$ = o.dx) != null ? ref$ : 0;\n    sprite.dy = (ref$ = o.dy) != null ? ref$ : 0;\n    if (o.tint != null) {\n      sprite.tint = o.tint;\n    }\n    sprite.alive = true;\n    sprite.initialScale = {\n      x: sprite.scale.x,\n      y: sprite.scale.y\n    };\n    return sprite;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/spriteCache/cacheAgressive/cache.ls","text":"(function(){\n  return function(o){\n    var cache, maxCacheSize, currentIndex;\n    cache = [];\n    maxCacheSize = o.maxSize;\n    currentIndex = 0;\n    return {\n      get: function(construct){\n        var c;\n        c = cache[currentIndex];\n        if (!c) {\n          c = construct();\n          cache[currentIndex] = c;\n        }\n        currentIndex = (currentIndex + 1) % maxCacheSize;\n        return c;\n      }\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/00_shared/pixiGame/pixi/spriteCache/cacheFailing/cache.ls","text":"(function(){\n  return function(o){\n    var cache, maxCacheSize, currentIndex;\n    cache = [];\n    maxCacheSize = o.maxSize;\n    currentIndex = 0;\n    return {\n      get: function(construct){\n        var c;\n        c = cache[currentIndex];\n        if (!c) {\n          c = construct();\n          cache[currentIndex] = c;\n        } else if (c.alive) {\n          return undefined;\n        }\n        currentIndex = (currentIndex + 1) % maxCacheSize;\n        return c;\n      }\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/04_gameEnd/page.ls","text":"(function(){\n  return function(page){\n    return {\n      start: function(){\n        var project, ref$;\n        if (project = (ref$ = page.params.gameDescription) != null ? ref$.project : void 8) {\n          if (typeof projects.unload == 'function') {\n            projects.unload(project);\n          }\n        }\n        return startPage({\n          history: -1,\n          animation: \"fadeIn\"\n        });\n      }\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/01_gamesList/row/plusStopPopup/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      margin: \"0.5em 0 1em\"\n    }).html(T(\"antonPlusNeeded\"));\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/01_gamesList/row/text/title/title.ls","text":"(function(){\n  return function(gd){\n    return Div({\n      flex: \"1 1 auto\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      hyphens: \"auto\"\n    }).html(gd.title);\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/adjustHeight/adjust.ls","text":"(function(){\n  return function(div){\n    return setTimeout(function(){\n      if (div.scrollHeight > div.clientHeight) {\n        return div.input.css({\n          height: \"\"\n        });\n      }\n    }, 5);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/games/02_gameDetails/difficulties/row/text/text.ls","text":"(function(){\n  return function(difficulty){\n    return Div({\n      flex: \"1 1 auto\",\n      textAlign: \"left\",\n      padding: \"0.3em\"\n    }).html(difficulty.title);\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/icons/icon/animate/animate.ls","text":"(function(){\n  return function(div){\n    div.css({\n      transform: \"rotate(360deg)\",\n      transition: \"transform 800ms\"\n    });\n    return setTimeout(function(){\n      return div.css({\n        transition: \"\",\n        transform: \"\"\n      });\n    }, 800);\n  };\n})();","updated":"2023-01-04T17:05:57.850901"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      paddingBottom: \"0.5em\"\n    }).html(T(\"howDoYoyLikeTheGame\"));\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/title/title.ls","text":"(function(){\n  return function(title){\n    return Div({\n      fontSize: \"1.3em\"\n    }).html(title);\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/03_gameLoading/_t.ls","text":"(function(){\n  return {\n    gameLoading: {\n      de: \"Spiel wird geladen ...\",\n      en: \"Game loading ...\",\n      fr: \"Chargement du jeu…\",\n      es: \"Juego en descarga…\",\n      pt: \"Carregando jogo...\"\n    },\n    games: {\n      de: \"Spiele\",\n      en: \"Games\",\n      fr: \"Jeux\",\n      es: \"Juegos\",\n      pt: \"Jogos\"\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/level/afterFinish/pages/antonPlus/_shared/playSound/play.ls","text":"(function(){\n  return function(page){\n    var ref$;\n    if (page.testVariantSound === \"enabled\" && !_.includes(app.lastPagePath, \"static/antonPlus\")) {\n      return (ref$ = page.media.sound) != null ? ref$.play() : void 8;\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/antonPlus/_shared/waitForMedia/wait.ls","text":"(function(){\n  return function(page){\n    if (!page.media.isReady()) {\n      return setTimeout(function(){\n        if (app.currentPage === page) {\n          return page.pageCode.start();\n        }\n      }, 100);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/00_shared/logRating/log.ls","text":"(function(){\n  return function(o){\n    var e, k, v;\n    deviceLog.log({\n      event: \"hasSeenAppRatePage\"\n    });\n    log.log({\n      event: \"hasSeenAppRatePage\"\n    });\n    e = {\n      event: \"appRating\"\n    };\n    for (k in o) {\n      v = o[k];\n      if (v != null) {\n        e[k] = v;\n      }\n    }\n    return log.log(e);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/antonPlus/_shared/calcTestVariantSound/calc.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/util/calcTestVariant/calc\")({\n      testName: \"afterFinishSound2\",\n      testVariants: [\"enabled\", \"disabled\"]\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/01_rating/buttons/buttons.ls","text":"(function(){\n  return function(clickContinue){\n    return Div().append(inc(\"buttonContinue/button\")(clickContinue)).css({\n      visibility: \"hidden\",\n      marginTop: \"1em\"\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/antonPlus/page1Intro/button/button.ls","text":"(function(){\n  return function(){\n    return Button(T(\"moreAboutAntonPlus\")).tap(function(){\n      inc(\"/lib/util/logPromo/log\")({\n        event: \"promoPlus_afterFinish1_click\"\n      });\n      return startPage({\n        path: path(\"/pages/static/antonPlus/1_products/page\"),\n        animation: \"slideUp\",\n        params: {\n          referrer: \"afterFinishAntonPlus1\"\n        }\n      });\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/01_rating/buttons/buttonContinue/button.ls","text":"(function(){\n  return function(click){\n    return Button({\n      label: T(\"continueButton\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\",\n      action: click,\n      key: \"enter\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/levelRating/01_rating/buttons/buttons.ls","text":"(function(){\n  return function(clickWrite, clickContinue){\n    return Div().append(inc(\"buttonWrite/button\")(clickWrite), Div().css({\n      height: \"1.3em\"\n    }), inc(\"buttonContinue/button\")(clickContinue)).css({\n      opacity: 0\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/_shared/_urlDescriptionWithLevel/calcBreadcrumbs/calc.ls","text":"(function(){\n  return function(page, pageUrl){\n    var p, breadcrumbs, t;\n    if (!page.level || !page.planDescription) {\n      return;\n    }\n    p = page.planDescription;\n    return breadcrumbs = [\n      {\n        name: p.displayName,\n        pageUrl: p.pageUrl\n      }, {\n        name: t = page.level.parentTopic.title,\n        pageUrl: p.pageUrl,\n        pageAnchor: t ? _.replaceAll(t, \" \", \"-\").toLowerCase() : void 8\n      }, {\n        name: page.level.parentBlock.title,\n        pageUrl: inc(\"/data/content/calcBlockPageUrl/calc\")(page.level.parentBlock.path)\n      }\n    ];\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/levelRating/01_rating/buttons/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      marginBottom: \"0.5em\"\n    }).html(T(\"thanksForFeedback\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/_shared/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: T(\"learnUrl\"),\n      title: T(\"learn\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/_shared/_urlDescriptionWithLevel/calcMetaDescription/calc.ls","text":"(function(){\n  return function(page){\n    var i, ref$;\n    if (!page.level) {\n      return \"\";\n    }\n    i = ((ref$ = page.level.trainers[0]) != null ? ref$.instruction : void 8) || page.level.instruction;\n    i = _.isString(i)\n      ? i\n      : (i != null ? i.text : void 8) != null\n        ? i.text\n        : (i != null ? i.sound : void 8) != null\n          ? i.sound\n          : T(\"solveTheExercise\");\n    return T(\"learnOnlineWithFunForFree\", i);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/learnList/start.ls","text":"(function(){\n  return function(p){\n    return inc(\"/../app01-learn-list/start/start\")(p);\n  };\n})();","updated":"2021-10-25T12:34:10.726624"},{"path":"pages/level/afterFinish/pages/adventCalendarPromo/image/image.ls","text":"(function(){\n  return function(page){\n    return inc(\"/lib/gui/image/image\")({\n      base64: page.media.image\n    }).css({\n      width: 8 * 1.5 + \"em\",\n      height: 8 * 1.5 + \"em\",\n      margin: \"1em 0\"\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/adventCalendarPromo/link/link.ls","text":"(function(){\n  return function(totalLevelsToday){\n    if (totalLevelsToday < 3) {\n      return;\n    }\n    return inc(\"/lib/gui/link/link\")({\n      label: T(\"notNow\"),\n      iconColor: \"black\"\n    }).css({\n      marginTop: \"0.8em\",\n      padding: \"0.5em\"\n    }).tap(function(){\n      return startPage({\n        history: function(path){\n          return !_.includes(path, \"/level\");\n        },\n        animation: \"fadeIn\"\n      });\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/adventCalendarPromo/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"adventCalendar\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/antonPlus/page1Intro/text1/text1.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      paddingBottom: \"2em\",\n      maxWidth: \"30em\",\n      lineHeight: \"1.5em\",\n      margin: \"0 auto\"\n    }).html(T(\"text1\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/antonPlus/page1Intro/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"title\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/button/button.ls","text":"(function(){\n  return function(){\n    return Button(T(\"moreAboutAntonPlus\")).tap(function(){\n      inc(\"/lib/util/logPromo/log\")({\n        event: \"promoPlus_afterFinish2Avatars_click\"\n      });\n      return startPage({\n        path: path(\"/pages/static/antonPlus/1_products/page\"),\n        animation: \"slideUp\",\n        params: {\n          referrer: \"afterFinishAntonPlus2\"\n        }\n      });\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/levelRating/01_rating/icons/icon/animate/animate.ls","text":"(function(){\n  return function(div){\n    div.css({\n      transform: \"rotate(360deg)\",\n      transition: \"transform 800ms\",\n      pointerEvents: \"none\"\n    });\n    return setTimeout(function(){\n      return div.css({\n        transition: \"\",\n        transform: \"\",\n        pointerEvents: \"\"\n      });\n    }, 800);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/text1/text1.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      paddingBottom: \"1.5em\"\n    }).html(T(\"text1\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"title\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/image/image.ls","text":"(function(){\n  return function(page){\n    return inc(\"/lib/gui/image/image\")({\n      base64: page.media.image\n    }).css({\n      width: 8 * 1.5 + \"em\",\n      height: 7 * 1.5 + \"em\",\n      margin: \"1em 0\"\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/disabledCoins/page.ls","text":"(function(){\n  return function(page){\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      start: function(){\n        return page.append(inc(\"coinWithCross/coinWithCross\")(), inc(\"text/text\")(page), inc(\"button/button\")());\n      }\n    };\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/disabledCoins/button/button.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      return startPage({\n        history: function(path){\n          return !_.includes(path, \"/level\");\n        },\n        animation: \"fadeIn\"\n      });\n    };\n    return Button({\n      label: T(\"continueButton\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\"\n    }).tap(tap);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/levelRating/01_rating/buttons/buttonContinue/button.ls","text":"(function(){\n  return function(click){\n    return Button({\n      label: T(\"continueButton\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\",\n      action: click,\n      key: \"enter\"\n    });\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/level/afterFinish/pages/levelRating/00_shared/logRating/log.ls","text":"(function(){\n  return function(page){\n    var p, e, e2;\n    p = page.params;\n    e = log.findLast({\n      event: \"finishLevel\"\n    });\n    e2 = _.cloneDeep(e);\n    e2.rating = p.rating;\n    if (p.ratingFeedback) {\n      e2.ratingFeedback = p.ratingFeedback;\n    }\n    delete e2.created;\n    delete e2.inserted;\n    delete e2.seq;\n    log.log(e2);\n    return log.deleteEvent(e);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/disabledCoins/text/text.ls","text":"(function(){\n  return function(page){\n    var d;\n    d = inc(\"calcDisabledGroupDescription/calc\")(page);\n    return Div().css({\n      maxWidth: \"90%\",\n      width: \"30em\",\n      margin: \"0 auto 1em\",\n      lineHeight: \"1.5em\"\n    }).secureHtml((d != null ? d.type : void 8) === \"family\"\n      ? T(\"textFamily\")\n      : T(\"text\", d != null ? d.name : void 8));\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/levelRating/01_rating/text/text.ls","text":"(function(){\n  return function(){\n    var name, ref$;\n    name = (ref$ = log.findLast(\"setName\")) != null ? ref$.value : void 8;\n    return Div().css({\n      display: \"inline-block\",\n      maxWidth: \"90%\"\n    }).html(T(\"howDidYouLike\", name));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/01_rating/buttons/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      marginBottom: \"0.5em\"\n    }).html(T(\"thanksForYourRating\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/01_rating/text/text.ls","text":"(function(){\n  return function(){\n    var name, ref$;\n    name = (ref$ = log.findLast(\"setName\")) != null ? ref$.value : void 8;\n    return Div().css({\n      display: \"inline-block\",\n      maxWidth: \"90%\"\n    }).html(T(\"howDoYouLikeAnton\", name));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_1-3/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      margin: \"0 auto 0.5em\",\n      width: \"30em\",\n      maxWidth: \"90%\"\n    }).html(T(\"thanksForRating\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_4/buttonContinue/button.ls","text":"(function(){\n  return function(click){\n    return Button({\n      label: T(\"continueButton\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\",\n      action: click,\n      key: \"enter\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_4/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      margin: \"0 auto 1.5em\",\n      width: \"30em\",\n      maxWidth: \"90%\"\n    }).html(T(\"thanks4Stars\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-desktop/buttonContinue/button.ls","text":"(function(){\n  return function(click){\n    return Button({\n      label: T(\"continueButton\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\",\n      action: click,\n      key: \"enter\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-desktop/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      margin: \"0 auto 1.5em\",\n      width: \"30em\",\n      maxWidth: \"90%\"\n    }).html(T(\"thanksRating2\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-mobile/buttonNoRate/button.ls","text":"(function(){\n  return function(click){\n    return inc(\"/lib/gui/link/link\")({\n      label: T(\"continueWithoutRating\")\n    }).tap(click);\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-mobile/buttonRate/button.ls","text":"(function(){\n  return function(click){\n    return Button({\n      label: T(\"rateNow\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\",\n      action: click,\n      key: \"enter\"\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/firstCoinExplainGameMenu/button/button.ls","text":"(function(){\n  return function(totalCoins){\n    var click;\n    click = function(){\n      return startPage({\n        history: function(path){\n          return !_.includes(path, \"/level\");\n        },\n        animation: \"fadeIn\"\n      });\n    };\n    return Button({\n      label: T(\"ok\")\n    }).css({\n      minWidth: \"5em\",\n      textAlign: \"center\"\n    }).tap(click);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-mobile/log/log.ls","text":"(function(){\n  return function(o){\n    o = o || {};\n    o.stars = 5;\n    o.appRateAvailable = true;\n    inc(\"../../00_shared/logRating/log\")(o);\n    return startPage({\n      history: function(path){\n        return !_.includes(path, \"/level\");\n      }\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/finishLevel/calcCoins/_shared/setNextTotalStarsNeeded/set.ls","text":"(function(){\n  return function(totalStars, starsUntilNextCoin){\n    var totalStarsNeeded;\n    totalStars == null && (totalStars = 0);\n    starsUntilNextCoin == null && (starsUntilNextCoin = 6);\n    if (starsUntilNextCoin === 0) {\n      return;\n    }\n    totalStarsNeeded = totalStars - totalStars % starsUntilNextCoin + starsUntilNextCoin;\n    log.log({\n      event: \"setNextCoinTotalStars\",\n      value: totalStarsNeeded\n    });\n    return totalStarsNeeded;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/finishLevel/_shared/calcFinishLevelEvent/calc.ls","text":"(function(){\n  return function(){\n    return log.findLast(function(e){\n      return e.event === \"finishLevel\" && e.src === Store(\"sourceId\");\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/finishLevel/_shared/calcText/quotes/quotes-en.ls","text":"(function(){\n  return function(){\n    return {\n      notGoodWords: [\"Believe in yourself!\", \"Patience!\", \"Keep at it!\", \"Don't give up!\", \"Stick at it!\", \"Don't worry!\", \"Chin up!\", \"Not quite!\"],\n      notGood: [\"Next time it'll be better for sure.\", \"You can do better than that.\", \"Practice makes perfect.\", \"Keep trying.\", \"Hang in there.\", \"Keep practicing.\", \"Everyone has to start somewhere.\", \"You'll do better next time.\", \"Just try again.\", \"You're better than you think.\", \"All it takes is practice.\"],\n      averageWords: [\"Good!\", \"Well done!\", \"Good effort!\", \"Nice!\", \"That was great!\", \"Not bad!\", \"Pretty good!\", \"Nice job!\", \"Decent effort!\", \"Good job!\", \"Nice work!\", \"Nicely done!\", \"Pretty decent!\"],\n      average: [\"Next time you'll do even better.\", \"Keep your eyes on the prize.\", \"But I know you can do even better.\", \"But can you do even better?\", \"It gets better and better.\", \"Stick at it.\", \"Keep up the good work.\", \"A bit more practice and you'll get that 3rd star.\"],\n      almostPerfectWords: [\"You did it!\", \"Nice!\", \"Yay!\", \"Great!\", \"Wow!\", \"Almost perfect!\", \"Hip hip hooray!\", \"Congratulations!\", \"Very nice!\"],\n      almostPerfect: [\"You got almost everything right.\", \"That's the way to do it.\", \"You did really well.\", \"Couldn't have done it better myself.\", \"More of the same.\", \"You make it look easy.\", \"You must have been practicing.\", \"Onwards and upwards.\", \"Aren't you clever?\", \"Keep up the good work.\", \"You've got the hang of this.\", \"Soon you'll have earned that crown.\", \"Soon that crown will be yours.\"],\n      perfectWords: [\"Super!\", \"Hooray!\", \"Yeah!\", \"Terrific!\", \"Fantastic!\", \"Amazing!\", \"Super duper!\", \"Excellent!\", \"Brilliant!\", \"Outstanding!\", \"Perfect!\", \"Bravo!\", \"Strike!\"],\n      perfect: [\"Keep it up.\", \"Great effort.\", \"You can't beat that.\", \"You can't do better than that.\", \"You got everything right.\", \"You rocked.\", \"All that learning was worth it.\", \"You know what you're doing.\", \"You did it.\", \"The crown suits you.\", \"Flawless.\", \"You're a real professional.\"],\n      testFailed: [\"Unfortunately you've failed the test.\"],\n      testDone: [\"Test completed.\", \"Test passed.\", \"You've passed the test.\", \"You've completed the test.\"],\n      testPerfect: [\"You can't do the test any better.\", \"You've passed the test with no mistakes.\", \"You've passed the test with an A+.\"],\n      bulb: [\"Done\"]\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/finishLevel/_shared/calcText/quotes/quotes-fr.ls","text":"(function(){\n  return function(){\n    return {\n      notGoodWords: [\"Garde confiance&nbsp;!\", \"Patience&nbsp;!\", \"N'abandonne pas&nbsp;!\", \"Ne t'arrête pas là&nbsp;!\", \"Ne baisse pas les bras&nbsp;!\", \"Ne t'inquiète pas&nbsp;!\", \"Garde la tête haute&nbsp;!\", \"Ça va venir&nbsp;!\"],\n      notGood: [\"Ce sera mieux la prochaine fois.\", \"Tout est question de pratique.\", \"Continue à t'entraîner.\", \"Tu peux faire mieux.\", \"Réessaye.\", \"Tu vas t'améliorer.\", \"Il faut bien commencer quelque part.\", \"C'est en forgeant qu'on devient forgeron.\", \"La prochaine fois tu feras mieux.\", \"Allez, on réessaye.\", \"On sait que tu peux faire mieux.\", \"Il suffit de s'entraîner.\"],\n      averageWords: [\"Bien&nbsp;!\", \"Bien joué&nbsp;!\", \"Bel effort&nbsp;!\", \"C'est bien&nbsp;!\", \"C'était bien&nbsp;!\", \"Pas mal&nbsp;!\", \"Plutôt bien&nbsp;!\", \"Beau travail&nbsp;!\", \"Pas mal du tout&nbsp;!\", \"Tu es sur la bonne voie&nbsp;!\"],\n      average: [\"Tu feras encore mieux la prochaine fois.\", \"Garde le cap.\", \"Continue sur ta lancée.\", \"On sait que tu peux faire encore mieux.\", \"Réessaye pour faire encore mieux.\", \"Tu penses pouvoir faire mieux&nbsp;?\", \"C'est de mieux en mieux.\", \"Encore une fois&nbsp;?\", \"On recommence&nbsp;?\", \"Tu peux encore t'améliorer.\", \"On ne lâche rien.\", \"Continue comme ça.\", \"Encore un petit effort et la 3e étoile est pour toi.\"],\n      almostPerfectWords: [\"C'est dans la poche&nbsp;!\", \"Magnifique&nbsp;!\", \"Youhou&nbsp;!\", \"Félicitations&nbsp;!\", \"Super&nbsp;!\", \"Beau travail&nbsp;!\", \"Waouh&nbsp;!\", \"Presque parfait&nbsp;!\", \"Facile&nbsp;!\", \"Hip, hip, hip, hourra&nbsp;!\", \"Félicitations&nbsp;!\", \"Très bien&nbsp;!\"],\n      almostPerfect: [\"Tu as presque tout réussi.\", \"Tu as fait fort.\", \"Tu as fait très fort.\", \"Impressionnant.\", \"Continue comme ça.\", \"C'était super.\", \"Ne t'arrête pas là&nbsp;!\", \"Il y en a là-dedans&nbsp;!\", \"Ne t'arrête pas en si bon chemin.\", \"Tu tiens le bon bout.\", \"Ce n'est que le début.\", \"Tu mériteras bientôt ta couronne.\", \"La couronne sera bientôt à toi.\"],\n      perfectWords: [\"Joli&nbsp;!\", \"Hourra&nbsp;!\", \"Oh yeah&nbsp;!\", \"Extra&nbsp;!\", \"Fantastique&nbsp;!\", \"Génial&nbsp;!\", \"La classe&nbsp;!\", \"Excellent&nbsp;!\", \"Sensationnel&nbsp;!\", \"Exceptionnel&nbsp;!\", \"Parfait&nbsp;!\", \"C'est fabuleux&nbsp;!\", \"On t'applaudit&nbsp;!\", \"Bravo&nbsp;!\", \"Tous nos compliments&nbsp;!\", \"Boom&nbsp;!\", \"Quel talent&nbsp;!\", \"Bingo&nbsp;!\", \"Impressionnant&nbsp;!\"],\n      perfect: [\"Continue comme ça.\", \"Belle performance.\", \"Tu ne pouvais pas faire mieux.\", \"Tu as ta place chez les pros.\", \"Il n'y a pas meilleur score.\", \"Tu as tout juste.\", \"Tu as assuré.\", \"Ça valait le coup d'apprendre.\", \"Tu maîtrises.\", \"Rien ne peut t'arrêter.\", \"Tu gères.\", \"Tu as réussi.\", \"La couronne te va bien.\", \"Rien à redire.\", \"Tout est juste.\", \"Impeccable.\", \"C'est du travail de pro.\", \"Ne change rien.\", \"C'est un sans faute.\"],\n      testFailed: [\"Tu n'as malheureusement pas réussi.\", \"C'est raté pour cette fois.\", \"Malheureusement, tu as raté le test cette fois-ci.\"],\n      testDone: [\"Test réussi.\", \"Tu as réussi le test.\"],\n      testPerfect: [\"Tu as réussi le test à la perfection.\", \"Tu as assuré pour le test.\", \"Test réussi haut la main.\", \"Ton résultat ne pourrait pas être meilleur.\", \"Tu as réussi le test sans faire la moindre erreur.\", \"Test 100&nbsp;% réussi.\", \"Test réussi&nbsp;: 20/20.\"],\n      bulb: [\"Fait\"]\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/finishLevel/text/text.ls","text":"(function(){\n  return function(o){\n    var div;\n    return div = Div().css({\n      margin: \"0 1em 1em\"\n    }).html(o.text);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/level/previewNoUser/_t.ls","text":"(function(){\n  return {\n    level: {\n      de: \"Übung\",\n      en: \"Exercise\",\n      fr: \"Exercice\",\n      es: \"Ejercicio\",\n      pt: \"Exercícios\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/level/previewBlockPopup/loadLevels/load.ls","text":"(function(){\n  return function(p){\n    var block, totalDone, errors, loadLevels, onLevelLoaded, finish;\n    block = p.block;\n    totalDone = 0;\n    errors = [];\n    loadLevels = function(){\n      var i$, ref$, len$, index, level, results$ = [];\n      for (i$ = 0, len$ = (ref$ = p.block.levels).length; i$ < len$; ++i$) {\n        index = i$;\n        level = ref$[i$];\n        results$.push(inc(\"loadLevel/load\")(level, block, index, onLevelLoaded));\n      }\n      return results$;\n    };\n    onLevelLoaded = function(error){\n      if (error) {\n        errors.push(error);\n      }\n      totalDone++;\n      if (totalDone === block.levels.length) {\n        return finish();\n      }\n    };\n    finish = function(){\n      if (errors.length > 0) {\n        return p.onError(errors);\n      } else {\n        return p.onLoaded();\n      }\n    };\n    return loadLevels();\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/previewBlockPopup/loadLevels/loadLevel/load.ls","text":"(function(){\n  return function(level, block, index, onDone){\n    return inc(\"/lib/util/loadLevel/load\")({\n      path: level.path,\n      onError: function(error){\n        return onDone(error);\n      },\n      onLoaded: function(levelFull){\n        block.levels[index] = levelFull;\n        return onDone();\n      }\n    });\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/previewDocumentationDiv/line/line.ls","text":"(function(){\n  return function(){\n    return Div({\n      borderBottom: \"1px solid \" + Color.grey[200]\n    });\n  };\n})();","updated":"2023-09-21T09:26:46.076485"},{"path":"pages/level/previewDocumentationDiv/generateSlides/generate.ls","text":"(function(){\n  return function(level){\n    var slides, i$, ref$, len$, trainer, path, trainerParams, levelParams;\n    slides = [];\n    for (i$ = 0, len$ = (ref$ = _.ensureArray(level.trainers)).length; i$ < len$; ++i$) {\n      trainer = ref$[i$];\n      path = \"/../app01-trainers/trainers/\" + trainer.trainer + \"/generateSlides\";\n      trainerParams = trainer;\n      levelParams = level;\n      slides = slides.concat(inc(path)(trainerParams, levelParams));\n    }\n    return slides;\n  };\n})();","updated":"2021-03-04T17:00:43.02477"},{"path":"pages/level/previewNoUser/slideDiv/slideDiv.ls","text":"(function(){\n  return function(slide){\n    slide.div = Div().css({\n      pointerEvents: \"none\"\n    });\n    requestAnimationFrame(function(){\n      slide.init();\n      return typeof slide.preview == 'function' ? slide.preview() : void 8;\n    });\n    return slide.div;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/prestart/appOutdated/warning/text/text.ls","text":"(function(){\n  return function(age){\n    var days;\n    days = _.round(age / (1000 * 60 * 60 * 24));\n    days = Math.max(1, _.round(days));\n    return Div().css({\n      width: \"35em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto 0.8em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"restartOnlineText2\", days));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/misc/_shared/confirmAge16AndPrivacy/popups/_debugOnlyInfo/info.ls","text":"(function(){\n  return function(eventName){\n    var ref$;\n    if (engine.isDebug && ((ref$ = log.findLast(eventName)) != null && ref$.value)) {\n      return Div().css({\n        fontSize: \"0.8em\",\n        color: Color.grey[500],\n        marginBottom: \"1em\",\n        marginTop: \"-0.3em\"\n      }).html(\"(Already agreed, skipped for non-debug.)\");\n    }\n  };\n})();","updated":"2020-12-22T15:35:15.899042"},{"path":"pages/misc/email/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: \"email\",\n      title: T(\"email\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2021-01-29T14:59:29.385264"},{"path":"pages/misc/askPushPermissioniOs/image/image.ls","text":"(function(){\n  return function(){\n    return SvgIcon(path(\"/lib/svg/illustration/avatar-headphones.svg\")).css({\n      width: \"7em\",\n      height: \"7em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/misc/email/show/withMail/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"yourEmail\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/misc/email/show/withMail/email/email.ls","text":"(function(){\n  return function(mail){\n    return Div({\n      margin: \"0.5em 1em 0.7em\",\n      fontSize: \"1.3em\",\n      userSelect: \"text\",\n      wordWrap: \"break-word\"\n    }).secureHtml(mail);\n  };\n})();","updated":"2026-02-27T15:45:37.083053"},{"path":"pages/misc/email/show/_topbar/topbar.ls","text":"(function(){\n  return function(){\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      backLabel: T(\"settings\"),\n      title: T(\"emailAddress\")\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/misc/phoneNumber/_urlDescription/_t.ls","text":"(function(){\n  return {\n    phoneNumber: {\n      de: \"Telefonnummer\",\n      en_gb: \"Mobile phone number\",\n      en: \"Cell phone number\",\n      fr: \"Numéro de téléphone\",\n      es: \"Número de teléfono\",\n      pt: \"Número de telefone\"\n    },\n    phoneNumberUrl: {\n      de: \"telefonnummer\",\n      en: \"phone-number\",\n      fr: \"numero-de-telephone\",\n      es: \"numero-de-telefono\",\n      pt: \"numero-de-telefone\"\n    }\n  };\n})();","updated":"2021-10-01T11:32:23.568117"},{"path":"pages/misc/phoneNumber/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"phoneNumberUrl\"),\n      title: T(\"phoneNumber\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2021-01-29T14:59:29.385264"},{"path":"pages/school/_shared/schoolIcon/base64/base64.ls","text":"(function(){\n  return function(base64){\n    return inc(\"/lib/gui/image/image\")({\n      base64: base64\n    }).css({\n      width: \"101%\",\n      height: \"101%\"\n    });\n  };\n})();","updated":"2021-05-04T09:15:33.849643"},{"path":"pages/prestart/appOutdated/stop/button/button.ls","text":"(function(){\n  return function(){\n    return Button(T(\"restart\")).tap(function(){\n      return location.reload();\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/prestart/appOutdated/stop/page.ls","text":"(function(){\n  return function(page){\n    return {\n      start: function(){\n        return page.append(inc(\"text/text\")(), inc(\"button/button\")());\n      }\n    };\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/prestart/appOutdated/stop/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      width: \"35em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto 2em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"restartOnlineText\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/prestart/engineOutdated/softWarning/buttonContinue/button.ls","text":"(function(){\n  return function(){\n    var click;\n    click = function(){\n      return inc(\"/lib/init/startFirstPage/start\")();\n    };\n    return inc(\"/lib/gui/link/link\")(T(\"notNow\")).css({\n      margin: \"0.2em\",\n      padding: \"0.3em\"\n    }).tap(click);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/prestart/engineOutdated/stop/text/text.ls","text":"(function(){\n  return function(){\n    var store;\n    store = engine.isAndroidApp\n      ? T(\"playStore2\")\n      : T(\"appStore2\");\n    return Div().css({\n      width: \"35em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto 0.5em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"updateAppForced\", store));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/start/startUser/00_shared/logSubscribeError/log.ls","text":"(function(){\n  return function(o){\n    var ref$;\n    return (ref$ = o.log) != null ? typeof ref$.getDetails == 'function' ? ref$.getDetails(function(d){\n      return typeof log != 'undefined' && log !== null ? log.log({\n        event: \"debugSubscribeError\",\n        logType: o.error,\n        details: _.omit(d, \"logInfo\")\n      }) : void 8;\n    }) : void 8 : void 8;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/start/startUser/07_extraPages/cancelDeletion/cancel.ls","text":"(function(){\n  return function(){\n    var e;\n    e = typeof log != 'undefined' && log !== null ? log.findLast(\"markForDelete\") : void 8;\n    if (e == null) {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0\n    });\n    return true;\n  };\n})();","updated":"2023-03-30T08:36:55.754584"},{"path":"pages/start/startUser/07_extraPages/cancelDeletion/page/buttons/buttons.ls","text":"(function(){\n  return function(onContinue, cancelDeletion){\n    return Div().html(Button(T(\"continue\")).css({\n      margin: \"0.5em\",\n      minWidth: \"5em\"\n    }).tap(onContinue), Button(T(\"abortDeletion\")).css({\n      margin: \"0.5em\"\n    }).tap(cancelDeletion));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/00_shared/logEvent/log.ls","text":"(function(){\n  return function(type){\n    return log.log({\n      event: \"showSuggestRecoveryOption\",\n      type: type\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/01_page_email/text/text.ls","text":"(function(){\n  return function(page){\n    var text;\n    text = T(\"saveEmailText\");\n    return Div({\n      margin: \"1em auto\",\n      width: \"35em\",\n      maxWidth: \"90%\",\n      lineHeight: \"1.7em\"\n    }).html(text);\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/01_page_email/title/title.ls","text":"(function(){\n  return function(page){\n    var displayName;\n    displayName = page.userDescription.displayName;\n    return Div({\n      width: \"20em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto\",\n      lineHeight: \"1.4em\"\n    }).secureHtml(T(\"hello\", displayName));\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/02_page_loginCode/loginCode/loginCode.ls","text":"(function(){\n  return function(loginCode){\n    return Div({\n      margin: \"0.5em\",\n      fontSize: \"1.3em\"\n    }).html(T(\"loginCode\"), Span().css({\n      userSelect: \"text\"\n    }).secureHtml(loginCode.toLowerCase()));\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/static/download/redirectToStore/log/log.ls","text":"(function(){\n  return function(page){\n    return typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog.log({\n      event: \"deviceDebugClickShareLink\",\n      shareId: page.shareId,\n      userAgent: navigator.userAgent,\n      screenSize: body.width() + \"x\" + body.height()\n    }) : void 8;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/_shared/section/content/content.ls","text":"(function(){\n  return function(o){\n    if (o.isExpanded) {\n      return Div().css({\n        marginLeft: \"1em\"\n      }).append(o.content);\n    }\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/_shared/styles/styles.ls","text":"(function(){\n  return function(){\n    return {\n      title: function(text){\n        return Div({\n          fontSize: \"1.2em\",\n          marginBottom: \"1em\"\n        }).html(text);\n      },\n      headline: function(text){\n        return Div({\n          marginBottom: \"0.3em\"\n        }).html(text);\n      },\n      paragraph: function(text){\n        return Div({\n          marginBottom: \"1.2em\"\n        }).html(text);\n      },\n      bullet: function(text){\n        return Div({\n          paddingLeft: \"1em\"\n        }).append(Div({\n          position: \"absolute\",\n          top: \"-0.05em\",\n          left: \"0.1em\"\n        }).html(\"•\"), text);\n      },\n      mail: function(text){\n        return Div({\n          display: \"inline-block\",\n          textDecoration: \"underline\",\n          cursor: \"pointer\",\n          padding: \"0.1em 0.5em 0.2em\",\n          borderRadius: \"0.3em\",\n          marginLeft: \"-0.5em\",\n          marginTop: \"-0.1em\"\n        }).html(text).tap(function(){\n          return window.location.href = \"mailto:\" + text;\n        });\n      }\n    };\n  };\n})();","updated":"2022-02-21T10:13:52.077429"},{"path":"pages/static/about/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"imprintUrl\"),\n      title: T(\"imprint\"),\n      metaDescription: T(\"metaDescription\"),\n      noIndex: true\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/about/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../_shared/topbarDeeplink/topbar\")(page, T(\"imprint\"));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/_topbar/info/info.ls","text":"(function(){\n  return function(value){\n    return Div().css({\n      borderTop: \"1px solid \" + Color.grey[250],\n      textAlign: \"center\",\n      background: Color.blue[50],\n      padding: \"0.4em 1em\"\n    }).html(Div().css({\n      width: \"35em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto\",\n      lineHeight: \"1.5em\"\n    }).html(value));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"antonPlusUrl\"),\n      title: T(\"antonPlusTitle\"),\n      metaDescription: \"\",\n      noIndex: true\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/list/listElement/text/text.ls","text":"(function(){\n  return function(t){\n    return Div().css({\n      flex: \"1 1 auto\",\n      fontSize: \"0.95em\",\n      textAlign: \"left\",\n      justifyContent: \"flex-start\",\n      paddingLeft: \"0.3em\"\n    }).html(Div().css({\n      flex: \"1 1 auto\"\n    }).html(t));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/_shared/text/text.ls","text":"(function(){\n  return function(t){\n    if (!t) {\n      return;\n    }\n    return Div().css({\n      padding: \"0.6em 0\",\n      borderBottom: \"1px solid \" + Color.grey[200],\n      lineHeight: \"1.5em\",\n      fontSize: \"0.95em\"\n    }).html(t);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupParentalGate/button/button.ls","text":"(function(){\n  return function(p){\n    return Div().append(Button(T(\"continueButton\")).css({\n      marginTop: \"0.5em\"\n    }).tap(p.submit));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/buttonBuy/button.ls","text":"(function(){\n  return function(p){\n    return Div().append(Button(T(\"buttonBuy\")).tap(p.onSuccess));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/termsAndPrivacyDiv/link/link.ls","text":"(function(){\n  return function(label, click){\n    return Span().css({\n      textDecoration: \"underline\",\n      padding: \"0.2em 0\"\n    }).html(label).tap({\n      animation: \"none\",\n      down: function(){\n        return this.css({\n          backgroundColor: Color.grey[150]\n        });\n      },\n      up: function(){\n        this.css({\n          backgroundColor: \"\"\n        });\n        return click();\n      },\n      cancel: function(){\n        return this.css({\n          backgroundColor: \"\"\n        });\n      }\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/title/title.ls","text":"(function(){\n  return function(t){\n    return Div().css({\n      fontWeight: \"bold\"\n    }).html(t);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/productBlock/_purchase/_shared/logPaymentTrackingEvent/log.ls","text":"(function(){\n  return function(o){\n    var n, event;\n    n = {\n      \"initiated\": \"internalPurchaseInitiated\",\n      \"cancelled\": \"internalPurchaseCancelled\",\n      \"success\": \"internalPurchaseSuccess\",\n      \"restored\": \"internalPurchaseRestored\",\n      \"error\": \"internalPurchaseError\"\n    };\n    event = n[o.event];\n    if (event == null) {\n      return;\n    }\n    o.event = event;\n    o.store = engine.isiOsApp\n      ? \"appstore\"\n      : engine.isAndroidApp ? \"playstore\" : \"paypal\";\n    return log.log(o);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/cancelDeletionDirAdmin/01b_askAge/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      padding: \"0 1em 1em 1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"min16Years\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/1_products/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      padding: \"0 0 1.5em\",\n      textAlign: \"left\"\n    }).html(T(\"text\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/newsletter/disable/linkEnableAgain/link.ls","text":"(function(){\n  return function(page){\n    return Button(T(\"resubscribe\")).css({\n      margin: \"1em auto\"\n    }).tap(function(){\n      return startPage({\n        path: path(\"../../enable/page\"),\n        history: 0,\n        params: {\n          publicId: page.publicId,\n          isDeepLink: page.params.isDeepLink\n        },\n        animation: \"fadeIn\"\n      });\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/3_thanks/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"antonPlusUrl\"),\n      title: T(\"antonPlusTitle\"),\n      metaDescription: \"\",\n      noIndex: true\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/3_thanks/button/button.ls","text":"(function(){\n  return function(page){\n    var startPageParams;\n    startPageParams = page.product === \"plus\"\n      ? {\n        path: path(\"../../4_thanksWhy/page\"),\n        history: 0,\n        animation: \"fadeIn\",\n        params: {\n          product: page.product,\n          productName: page.productName\n        }\n      }\n      : page.product === \"plusFamily\"\n        ? {\n          path: path(\"../../5_productInfo/page\"),\n          history: 0,\n          animation: \"fadeIn\",\n          params: {\n            product: page.product,\n            productName: page.productName\n          }\n        }\n        : {\n          history: -1,\n          animation: \"slideDown\"\n        };\n    return Button(T(\"continueButton\")).tap(function(){\n      return startPage(startPageParams);\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/3_thanks/calcProduct/calc.ls","text":"(function(){\n  return function(page){\n    var ref$, ref1$, ref2$;\n    return (ref$ = (ref1$ = page.params.alias) != null ? (ref2$ = ref1$.split(\".\")) != null ? ref2$[0] : void 8 : void 8) != null ? ref$ : \"plus\";\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/3_thanks/calcProductName/calc.ls","text":"(function(){\n  return function(page){\n    var name;\n    return name = page.product === \"plusFamily\"\n      ? T(\"antonPlusFamilyNoBreak\")\n      : page.product === \"plusTeacher\"\n        ? T(\"antonPlusTeacherNoBreak\")\n        : T(\"antonPlusTitleNoBreak\");\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/3_thanks/calcValidUntil/calc.ls","text":"(function(){\n  return function(page){\n    var e, now, inOneYear, validUntil;\n    e = log.findLast({\n      event: \"setProduct\",\n      productName: page.productName\n    });\n    now = new Date();\n    inOneYear = new Date(now.setYear(now.getFullYear() + 1));\n    return validUntil = e != null && e.validUntil ? new Date(e != null ? e.validUntil : void 8) : inOneYear;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/4_thanksWhy/options/option/name/name.ls","text":"(function(){\n  return function(option){\n    return Div().css({\n      flex: \"1 1 auto\",\n      padding: \"0 1em 0 0.4em\",\n      textAlign: \"left\"\n    }).html(option.name);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/3_thanks/textThanks/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      marginBottom: \"1.5em\"\n    }).html(T(\"thanksForYourSupport\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/3_thanks/title/title.ls","text":"(function(){\n  return function(page){\n    return Div().css({\n      marginBottom: \"1em\",\n      fontWeight: \"bold\"\n    }).html(T(\"activationSuccess\", page.productName));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/4_thanksWhy/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"antonPlusUrl\"),\n      title: T(\"antonPlusTitle\"),\n      metaDescription: \"\",\n      noIndex: true\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/4_thanksWhy/textHelp/text.ls","text":"(function(){\n  return function(page){\n    return Div().css({\n      marginBottom: \"1em\",\n      lineHeight: \"1.5em\",\n      fontSize: \"0.9em\"\n    }).html(T(\"helpWhatsImportantText\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/4_thanksWhy/title/title.ls","text":"(function(){\n  return function(page){\n    return Div().css({\n      marginBottom: \"1em\",\n      fontWeight: \"bold\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"whyBought\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/5_productInfo/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"antonPlusUrl\"),\n      title: T(\"antonPlusTitle\"),\n      metaDescription: \"\",\n      noIndex: true\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/antonPlus/5_productInfo/button/button.ls","text":"(function(){\n  return function(page){\n    return Button(T(\"continueButton\")).css({\n      minWidth: \"5em\"\n    }).tap(function(){\n      return startPage({\n        history: -1,\n        animation: \"slideDown\"\n      });\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/checkboxTeacherPrivacy/link/link.ls","text":"(function(){\n  return function(label, click){\n    return Span().css({\n      textDecoration: \"underline\",\n      padding: \"0.2em\",\n      margin: \"0 0.1em\"\n    }).html(label).tap({\n      animation: \"none\",\n      down: function(){\n        return this.css({\n          backgroundColor: Color.grey[150]\n        });\n      },\n      up: function(){\n        this.css({\n          backgroundColor: \"\"\n        });\n        return click();\n      },\n      cancel: function(){\n        return this.css({\n          backgroundColor: \"\"\n        });\n      }\n    });\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"../00_shared/topbar/topbar\")();\n      },\n      start: function(){\n        var click, checkbox, button;\n        page.params.acceptPrivacy = log.findLast(\"setAcceptPrivacy\") && log.findLast(\"setAcceptTerms\");\n        click = function(){\n          if (page.params.acceptPrivacy) {\n            inc(\"logEvents/log\")();\n            return inc(\"../03_email/start\")();\n          } else {\n            return inc(\"popupCheckMissing/popup\")();\n          }\n        };\n        page.append(checkbox = inc(\"checkboxTeacherPrivacy/checkbox\")(page), \"<br>\", button = Button(T(\"continue\")).tap(click), inc(\"../00_shared/linkBack/link\")());\n        if (page.params.acceptPrivacy) {\n          return checkbox.css({\n            opacity: 0.5,\n            pointerEvents: \"none\"\n          }).append(Div().css({\n            marginTop: \"0.5em\"\n          }).html(T(\"alreadyAccepted\")));\n        }\n      }\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/newsletter/disable/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: \"disableNewsletter/\" + page.publicId,\n      title: T(\"antonNewsMailOff\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/cancelDeletionDirAdmin/03_email/submit/submit.ls","text":"(function(){\n  return function(page, oldMail, form, onDone){\n    var mail, onError, onOffline;\n    mail = form.input.getValue();\n    if (mail === oldMail) {\n      onDone();\n      return;\n    }\n    if (mail === \"\") {\n      form.error.html(T(\"emptyEmail\"));\n      form.input.start();\n      return;\n    }\n    form.error.html(\"&nbsp;\");\n    form.showSpinner();\n    onError = function(error){\n      var message;\n      form.hideSpinner();\n      message = error.status === \"error_invalid\"\n        ? T(\"invalidEmail\")\n        : error.status === \"error_unavailable\"\n          ? T(\"unavailableEmail\")\n          : T(\"errorMessage\");\n      return form.error.html(message);\n    };\n    onOffline = function(){\n      form.hideSpinner();\n      form.input.start();\n      return inc(\"/lib/offline/offlinePopup/popup\")();\n    };\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/user/setEmail/set\"),\n      params: {\n        email: mail,\n        logId: log.id()\n      },\n      onCompleted: function(result){\n        return inc(\"onCompleted/onCompleted\")(result, form, onDone, onError);\n      },\n      onError: onError,\n      onOffline: onOffline\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/03b_password/start.ls","text":"(function(){\n  return function(){\n    if (log.findLast(\"setPasswordSetAt\")) {\n      inc(\"../04_cancelDeletion/start\")();\n      return;\n    }\n    return startPage({\n      path: path(\"page\"),\n      animation: \"slideLeft\"\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/04_showLoginCodeAndFinish/buttonDone/button.ls","text":"(function(){\n  return function(onClick){\n    return Button(T(\"okDone\")).css({\n      marginTop: \"1em\"\n    }).tap(onClick);\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/cancelDeletionDirAdmin/04_showLoginCodeAndFinish/buttonPrint/button.ls","text":"(function(){\n  return function(loginCode){\n    var d, print;\n    d = inc(\"/data/user/calcUserDescription/calc\")();\n    print = function(){\n      var userCard;\n      userCard = inc(\"/../qrcode/userCard/userCard\")({\n        loginCode: loginCode,\n        name: d.displayName || d.name\n      });\n      return inc(\"/lib/util/print/print\")({\n        div: userCard,\n        title: T(\"loginCode\")\n      });\n    };\n    return Button({\n      label: T(\"print\"),\n      icon: path(\"/lib/svg/shape/print.svg\"),\n      iconColor: Color.grey[600]\n    }).css({\n      marginTop: \"1.5em\",\n      marginRight: \"1em\"\n    }).tap(print);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/privacy/div/divEn/div.ls","text":"(function(){\n  return function(options){\n    var isPrint, ref$, s, p, section;\n    isPrint = (ref$ = options != null ? options.isPrint : void 8) != null ? ref$ : false;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div().addClass(\"privacyDiv\").html(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3em\"\n    }) : void 8, isPrint ? Div({\n      fontSize: \"1.4em\"\n    }).html(T(\"privacy\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. General\",\n      content: [p(\"Last updated: July 27th, 2023.\"), p(\"ANTON is a digital learning app that can be downloaded or used in the browser.\"), p(\"ANTON is developed and operated by solocode GmbH, Mehringdamm 61, 10961 Berlin, Germany (”Solocode”, ”we”, “us”, “our”, and our subsidiaries or affiliates).\"), p(\"This Privacy Policy applies whether you log-in to ANTON in the browser at https://anton.app  (the “Web-App”) and our mobile applications (the “Apps”), or any of our other products or services that link to this Privacy Policy that we may provide now or in the future (collectively, the “Service(s)”).\"), p(\"This Privacy Policy does not apply to websites with information about ANTON that are not located at https://anton.app and that do not link to this Privacy Policy.\"), p(\"This Privacy Policy does not apply to websites or services or practices of companies that We do not own or control, such as third-party services you might access through links or other features (e.g. e-mails or notifications) on ANTON. Please note that such other services may have their own privacy policies. We recommend reviewing their policies before sharing any personal information with them.\"), p(\"By using ANTON, you acknowledge that you accept and agree to this Privacy Policy and our Terms of Service (”Terms”) that can be found at http://anton.app/en_us/terms.\"), p(\"ANTON is COPPA-compliant, and our policies and practices help schools meet their FERPA obligations.\"), p(\"If you have any questions regarding this Privacy Policy or data protection in general, please send us an e-mail at privacy@anton.app.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. What is ANTON and how can it be used?\",\n      content: [p(\"ANTON is a digital learning app. It can be used as a mobile app or as a web-app in the browser. \"), p(\"ANTON can be used in two ways:\"), p(\"a) On your own outside of school: you can download the ANTON mobile app or visit anton.app in the browser and create your own account. In this case, Solocode will generally act as the data controller for the user data.\"), p(\"b) With a teacher as a member of a group and/or school: a teacher or a school prepares an access code for you and you use that code to sign in. In this case, the data controller is the school. We act as a data processor (or service provider as defined under CCPA) on behalf of the school and will process such data only at the direction and control of the school. Additionally, we will only delete records per the school’s specific instructions and will request that users make any requests for access, correction or deletion of personal information through the school. We will assist the school in responding to such requests as needed. We offer a Data Privacy Addendum (DPA), an agreement we enter into with schools or districts that further describes our duties, responsibilities, and commitments with respect to user data that we collect or receive.\"), p(\"In both cases, it is possible to use ANTON without entering any personally identifiable information. \"), p(\"More information on how the Service operates can be found in our frequently asked questions at anton.app/faq, and your taking part and use of the Service is governed by our Terms of Service at http://anton.app/en_us/terms.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. What data does ANTON store?\",\n      content: [p(\"3.1 Data that you or your school provide us with\"), p(\"If you are a student, we will ask you for a nickname, your school (optional) and which subject and grade level you would like to start with.\"), p(\"If you are a teacher, we will ask you for your first name, surname, salutation and, optionally, your school and e-mail address.\"), p(\"If you are a teacher or an employee of a school, when you create a group and login-codes for your students and/or co-teachers, your school is responsible for privacy. You should get parental consent first and we provide informational resources that you can use to inform parents and request their consent. When creating accounts, we recommend that you only use nicknames that cannot be used to identify the students.\"), p(\"If you are a teacher and you assign your account to a school, you allow the administrator of that school to add your user to the school directory, manage your user and users with the login-codes you create, add your first name, last name and class to your directory entry, view the login-code and mark your user account(s) for deletion.\"), p(\"If you decide that your user should be stored on your device, we will store this information on your device.\"), p(\"We will occasionally ask you how much you like ANTON and the learning content and how we can improve it.\"), p(\"If you are at least 16 years old, you may enter your e-mail address or mobile phone number under Settings. We can then restore your access in case you lose your credentials.\"), p(\"If you contact us via help chat or e-mail, these messages and the date and time of the messages will be stored so that we can communicate with you.\"), p(\"3.2 Information that we automatically receive through your use of ANTON\"), p(\"When you use ANTON, we will store data about your use on your device and sync it with our server when an internet connection is available. This enables you to use ANTON with your user account on multiple devices.\"), p(\"This data includes: app pages launched and your learning progress, your game results, your membership in groups and schools if provided, content created by you such as pictures and learning lists, your device type, operating system and internet browser as well as your pseudonymized IP-address.\"), p(\"We do not store the last three digits of your IP-address in our system, so it cannot be used to identify you.\"), p(\"We will <b>not</b> store or track your device location.  Because we do not store your full IP-address, it can also not be used to identify your precise location. We use your pseudonymized IP-address to get a very broad approximation of your location that is reliable on the country level but not on a city level.\"), p(\"ANTON does not use any third-party tracking services or cookies.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. What is this data used for?\",\n      content: [p(\"We do <b>not</b> sell or rent any of your, or your child’s, personal information to any third-party for any purpose - including for advertising or marketing purposes. Third-party advertising is not permitted in ANTON and student-data is never used for behaviorally-targeted advertising. \"), p(\"We use the personal information we collect only to provide and improve ANTON, for educational purposes, security, and safety purposes. This includes contacting you to provide customer support or essential information about using the product. ANTON does not contact users for the purpose of marketing or promoting its services, but only as necessary to answer your requests or as required by law.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. How long is the data stored?\",\n      content: [p(\"Your personal data will be deleted as soon as the purpose for which it was stored ceases to apply. \"), p(\"Your user data will be stored for as long as you have an active user account at ANTON. If you no longer use ANTON and are not a member of a school directory administered by a school, we will automatically delete your user data 12 months after you last logged in or after your ANTON Plus membership ends.\"), p(\"If you are a member of a school directory, the school is responsible for deleting your user account via our user interface when the purpose for which it was stored ceases to apply (e.g. when you leave the school). \"), p(\"We do not retain a user’s&nbsp;personal information&nbsp;for any longer than is necessary for&nbsp;educational purposes&nbsp;or legal obligations, or to provide the Service for which we receive or collect the user’s personal information. Additionally, we only keep a user’s personal information for as long as her or his user account is&nbsp;active, unless we are required by law or the user’s school to retain it, need it to ensure the security of our community or our Service, or to enforce our Terms.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Does ANTON share data with third parties?\",\n      content: [p(\"We do <b>not</b> sell or rent any of your, or your child’s, personal information to any third-party for any purpose - including for advertising or marketing purposes. Third-party advertising is not permitted in ANTON and student-data is never used for behaviorally-targeted advertising. \"), p(\"Moreover, we do <b>not</b> share personal information with any third-parties except in the limited circumstances described in this Privacy Policy and as stated below:\"), p(\"a) Other Users You Interact with on ANTON: \"), p(\"No student, teacher or parent profiles are made available to the general public through ANTON. \"), p(\"Other users can see your nickname, avatar and score in the high score list of the games in the games section. If you generate content such as painting a picture or creating a learning lists yourself, you can decide whether you want to share this content with other users (the default setting is “no”).\"), p(\"Your group teacher(s) and - if your school uses the school directory - the school administrator and the teachers at your school who have been authorized by him/her can see your name and learning progress and look up your login-code for you.\"), p(\"When you register as a teacher and select a school, the school directory administrator of that school can view your name and registration code and add you to the school directory. \"), p(\"Please remember that information (including personal Information) or content that you voluntarily share with others - including with other ANTON users - can be viewed, copied, saved, and used by the people you share it with. We cannot control what people do with the information you choose to share with them and we are not responsible for how others collect, use, or share that information or content.\"), p(\"b) Trusted Service Providers: We work with vendors, service providers, and other partners to help us provide ANTON by performing tasks on our behalf. These companies have only limited access to data and are contractually bound to process the data solely on our behalf and only for the purpose for which it was disclosed. They are not third parties as defined in the GDPR but data processors (or service providers as defined under CCPA) on our behalf. We may need to share or provide information (including personal information) to them to help them perform these functions, for example sending e-mails on our behalf, hosting, and security. We may also authorize these companies to collect information on our behalf. These service providers must adhere to strict confidentiality and security obligations in a way that is consistent with this Privacy Policy. \"), p(\"c) Legal Requirements: We may disclose information if we have a good faith belief that doing so is necessary to comply with the law, such as complying with a subpoena or other legal process. We may need to disclose personal information if, in good faith, we believe it is necessary to protect the rights, property, or safety of ANTON, our employees, our community, or others, or to prevent violations of our Terms of Service or other agreements. This can include, without limitation, responding to law enforcement and requests by the government. Where appropriate, we notify users about the legal requests, unless providing notice is prohibited by the legal process itself, by court order, or by applicable law; or if we believe that providing notice would be ineffective, create a risk of injury or bodily harm to an individual or group, or create or increase a risk of fraud upon ANTON, or its users. In cases where we have to comply with legal requests without notice for these reasons, we will attempt to notify the user about the request after the fact where appropriate and where we believe in good faith that we are no longer prevented from doing so.\"), p(\"d) Sharing with Solocode companies: In the future, Solocode may grow and reorganize. We may need to share your personal information with our affiliated companies, such as our parent company, subsidiaries, joint venture partners, or other companies that we control or that are under common control with us. If we do so, we will require these companies to agree to use your personal information in accordance with this Privacy Policy.\"), p(\"e) Change of control: The&nbsp;Student Privacy Pledge&nbsp;requires us (and all other signatories) to ensure that successor entities that may acquire part or all of our organization in the future will act in accordance with the pledge principles or allow users a choice whether to share information with the future entity or have their information deleted. In accordance with the Student Privacy Pledge and applicable state and federal laws, and in connection with such a change to our organization, this Privacy Policy will continue to apply to your information, and any acquirer would only be able to handle your personal information as stated in this policy (unless the school, parent or eligible user consent to a new policy). We will inform you of an acquisition within 30 days following the completion of such a transaction, by posting on our homepage, or by e-mail to your e-mail address if you provided one to us. If you do not consent to the use of your personal information by such a successor company, subject to applicable law, you may request its deletion. We may also make information, including personal information, available to a potential investor or acquirer (or their advisors) in advance of any such transaction completion.\"), p(\"f) In the unlikely event that Solocode goes out of business, or files for bankruptcy, we will protect your&nbsp;personal information, and will not&nbsp;sell&nbsp;it to any third-party. \"), p(\"g) With your consent: Other than in the cases above, we won’t disclose any personal information for any purpose other than with parental or eligible user consent, or in cases where we process the data on behalf of a school with agreement or under the direction of the school.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. How is the security of the data guaranteed?\",\n      content: [p(\"Your ANTON account is protected by a password and/or a login-code. To protect against unauthorized access to your account, keep your password and login-code secret at all times. The security of your personal information is important to us. We are committed to protecting your data and have implemented technical, physical and administrative security measures to prevent unauthorized use, disclosure, or access to personal information, in particular:\"), p(\"Privacy by design and default: Our engineering team is committed to ensuring the security of your personal information. When we develop new features, we do this with privacy and security in mind from the outset.\"), p(\"We perform security testing; penetration testing; conduct risk assessments, and ensure compliance with our security policies.\"), p(\"We periodically review our data processing practices to guard against unauthorized access to systems.\"), p(\"When you enter any information anywhere on ANTON, we encrypt the transmission of that information using secure socket layer technology (SSL/TLS) by default.\"), p(\"We make sure passwords are stored and transferred securely using salted hashing and encryption.\"), p(\"Data centers meet the highest security standards and are certified according to DIN ISO/IEC 27001.\"), p(\"We automatically delete inactive accounts and user data 12 months after you last logged in or after your ANTON Plus membership ends and you are not a member of a school directory administered by a school.\"), p(\"We limit access to personal information to employees and independent contractors who are authorized to process it for us. These individuals are bound by strict confidentiality obligations and may face disciplinary action or termination if they fail to meet these obligations. \"), p(\"While we strive to maintain the security of personal information and work hard to ensure the integrity and security of our systems, no system is 100% immune and we cannot guarantee the security of information. User information may be compromised due to outages, attacks, human error, system failure, unauthorized use, or other factors beyond our control. We have an incident response management in place that ensures that we can respond in an adequate and timely manner to mitigate risks and inform users. \"), p(\"If we learn of a security breach, we will attempt to notify you electronically (subject to any applicable laws and school reporting requirements) so that you can take appropriate protective steps; e.g., we may post a notice on our homepage (anton.app) or elsewhere on the Service, and may send e-mail to you at the e-mail address you have provided to us. Depending on where you live, you may have a legal right to receive notice of a security breach in writing.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Our commitments to transparency and your rights\",\n      content: [p(\"You have control over the personal information you share with us, and you can access or correct this information at any time. You can also delete your account. \"), p(\"We provide ways to object, restrict or withdraw consent (where applicable) for the use of personal information you have provided to us. We make it easy for you to contact us and to transfer the personal information you have shared through the Service.\"), p(\"To exercise any of these rights, send an e-mail to privacy@anton.app. Please note that we may ask you to verify your identity before taking any further action on your request and we may require acceptable forms of personal identification.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Canada\",\n      content: p(\"We strive to provide privacy protection that is consistent with Canada’s private sector privacy laws, including the Personal Information Protection and Electronic Documents Act (“PIPEDA”). For any questions regarding how we comply with PIPEDA, please contact us at privacy@anton.app\")\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. California Privacy Disclosures\",\n      content: [p(\"As a California resident, you have the right to request information about how we collected and used your personal information in the last 12 months. If you are a resident of California, you have certain rights regarding your personal information under the CCPA. You can request that we disclose the specific pieces of information that we have collected about you, and you can also request that we delete your personal information that we have collected or maintained. We provide these rights to all of our users and you can find more information on your rights and how to exercise them in 8 Our commitments to transparency and your rights\"), p(\"We will <b>not</b> discriminate against you for exercising any of your rights under CCPA. Unless in accordance with the CCPA, we will <b>not</b> do any of the following: deny you goods or services, charge you different prices or rates for goods or services, including granting discounts or other benefits, or imposing penalties, suggest that you may receive a different price or rate for goods or services or a different level or quality of goods or services.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"11. General Data Protection Regulation (GDPR)\",\n      content: [p(\"Residents in the European Union or in the United Kingdom are entitled to certain rights with respect to personal information that we hold about them under the General Data Protection Regulation (GDPR) or in the UK under the Data Protection Act 2018 respectively:\"), p(\"11.1 Right to information\"), p(\"Every user has the right to receive free information about the personal data stored about him/her. Please send us an e-mail to privacy@anton.app with the following information for your identification: user name, registration code, name, e-mail address, postal address and date of birth.\"), p(\"11.2 Right to correction\"), p(\"You have the right to rectification and/or integration if the personal data processed concerning you is incorrect or incomplete.\"), p(\"11.3 Right to limit processing\"), p(\"Under the following conditions, you may request the restriction of the processing of personal data concerning you:\"), p(\"a) If you dispute the accuracy of the personal data concerning you for a period of time that allows us to verify the accuracy of the personal data.\"), p(\"b) If the processing is unlawful and you object to the deletion of the personal data and instead demand the restriction of the use of the personal data.\"), p(\"c) We no longer need the personal data for the purposes of the processing, but you need the personal data to assert, exercise or defend legal claims.\"), p(\"d) If you have lodged an objection to the processing in accordance with Art. 21 GDPR and it has not yet been established whether the legitimate reasons of the controller in relation to your reasons outweigh the others.\"), p(\"e) If the processing of personal data relating to you has been restricted, such data may be processed, with the exception of storage, only with your consent or for the purpose of asserting, exercising or defending legal claims or protecting the rights of another natural or legal person or on grounds of an important public interest of the Union or a Member State. If the restriction on processing has been restricted under the above conditions, you will be informed by us before the restriction is lifted.\"), p(\"11.4 Right of deletion\"), p(\"You can delete your user data by clicking the “delete user” button in your settings. We will delete all your user data stored on our servers after a safety period of 30 days.\"), p(\"To delete the user data stored on your devices, you may uninstall ANTON or click on Logout in the app under Settings and select the user profile to be deleted.\"), p(\"11.5 Right to data transferability\"), p(\"Schools can mark user accounts that they have created or for which they are responsible for administration for deletion after a transition period of 60 days. The users - and if necessary their legal guardians - must be informed by the school. The users are given the opportunity to transfer the data stored in the user account to a new account and to continue using it independently within a period of 60 days. After this period the user accounts will be automatically deleted.\"), p(\"You have the right to request a copy of your personal data in electronic format and the right to transfer this personal data for use in another's service. Upon request, we will send you a file containing your personal data. To do so, please send us an e-mail to privacy@anton.app with the following information for your identification: user name, registration code, first and last name, possibly maiden name, e-mail address, postal address and date of birth.\"), p(\"11.6 Right of objection\"), p(\"You have the right to object at any time, for reasons arising from your particular situation, to the processing of personal data concerning you, which is carried out on the basis of Art. 6, paragraph 1, letter e or f GDPR.\"), p(\"11.7 Right to revoke the declaration of consent under data protection law\"), p(\"You have the right to revoke your data protection declaration of consent at any time. Revocation of your consent does not affect the legality of the processing that has taken place on the basis of your consent until revocation.\"), p(\"11.8 Right of appeal to a supervisory authority\"), p(\"Without prejudice to any other administrative or judicial remedy, you have the right to appeal to a supervisory authority, in particular in the Member State of your residence, workplace or the location of the probable offense if you believe that the processing of personal data concerning you is in breach of the GDPR. The supervisory authority to which the complaint has been submitted will inform the complainant of the status and the results of the complaint, including the possibility of a judicial remedy under Art. 78 GDPR.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"12. What is the legal basis for the processing under GDPR?\",\n      content: [p(\"Insofar as we obtain the consent of the data subject for the processing of personal data, Art. 6 (1) (a) of the Basic Data Protection Regulation (GDPR) serves as the legal basis.\"), p(\"When processing personal data which is necessary for the performance of a contract to which the data subject is a party, Article 6 (1) lit. b GDPR serves as the legal basis. This also applies to processing operations which are necessary to carry out pre-contractual measures.\"), p(\"Insofar as processing of personal data is necessary to fulfil a legal obligation to which our company is subject, Art. 6 para. 1 lit. c GDPR serves as the legal basis.\"), p(\"If the processing is necessary to safeguard a legitimate interest of our company or of a third party and if the interests, fundamental rights and freedoms of the data subject do not outweigh the former interest, Art. 6 para. 1 lit. f GDPR serves as the legal basis for the processing.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"13. How will I be notified about changes to this policy?\",\n      content: [p(\"We may occasionally update this Privacy Policy as our practices and legal requirements evolve or to further protect our users. Please see “last updated” at the top of this page for the date it was last updated. We will not reduce your rights under this Privacy Policy without your explicit consent. If we make any significant changes, we will notify you by posting a notice on the Service and/or sending an e-mail (using the e-mail address you provided), so you can review any edits and make sure you are informed about them.\"), p(\"Furthermore, if we ever make material changes to the types of personal information we collect from children, or how we use it, we will notify parents in order to obtain parental consent or notice for those new practices and provide schools with the necessary information about these changes where they have obtained parental consent (or acted as the agent of the parent and provided consent on their behalf).\"), p(\"We encourage you to review this Privacy Policy from regularly, to stay informed about our processing of personal information through the Service. If you don’t agree with any changes to the Privacy Policy, you may delete your account. By continuing to use the Service after the updated Privacy Policy has become effective, you acknowledge that you accept and agree to the current version of the Privacy Policy.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"14. How can I contact ANTON with questions?\",\n      content: [p(\"If you have any questions or concerns about this Privacy Policy or how we protect user data, please contact us at privacy@anton.app\"), p(\"You may also write to us at:\"), p(\"solocode GmbH, Mehringdamm 61, 10961 Berlin\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"15. Explanation of terms\",\n      content: [p(\"GDPR: Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of individuals with regard to the processing of personal data and on the free movement of such data and repealing Directive 95/46/EC (basic data protection regulation).\"), p(\"UK DPA 2018: The Data Protection Act 2018 controls how your personal information is used by organisations, businesses or the government. It is the UK's implementation of the GDPR.\"), p(\"CCPA: The California Consumer Privacy Act is a state statute with the aim to enhance privacy rights and consumer protection for residents of the state of California in the United States.\"), p(\"Personal data: According to Art. 4(1) GDPR, any information relating to an identified or identifiable natural person; an identifiable person is one who can be identified, directly or indirectly, in particular by reference to an identifier such as a name, an identification number, location data, an online identifier, or one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person.\")]\n    }));\n  };\n})();","updated":"2026-04-23T06:07:50.829171"},{"path":"pages/static/privacy/div/divDe/div.ls","text":"(function(){\n  return function(options){\n    var isPrint, ref$, s, p, section;\n    isPrint = (ref$ = options != null ? options.isPrint : void 8) != null ? ref$ : false;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div().addClass(\"privacyDiv\").append(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3em\"\n    }) : void 8, isPrint ? Div().css({\n      fontSize: \"1.4em\"\n    }).html(T(\"privacy\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. Allgemeines\",\n      content: [p(\"ANTON ist eine digitale Lern-App, die man herunterladen oder auf https://anton.app verwenden kann.\"), p(\"Betreiber und Verantwortlicher im Sinne des Datenschutzes ist die solocode GmbH, Mehringdamm 61, 10961 Berlin. \"), p(\"Bei Fragen zum Datenschutz kannst du uns unter privacy@anton.app schreiben.\"), p(\"Unseren Datenschutzbeauftragten kannst du unter folgenden Kontaktdaten erreichen:<br>E-Mail: dsb@anton.app<br>Herting Oberbeck Datenschutz GmbH<br>https://www.datenschutzkanzlei.de\"), p(\"Der Schutz deiner Daten ist uns besonders wichtig.\"), p(\"Wir sammeln so wenig Daten wie möglich, löschen diese automatisch bei Inaktivität, speichern diese nur auf sicheren Servern in Europa und geben sie nicht an Dritte weiter.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. Welche Daten speichert ANTON?\",\n      content: [\n        section({\n          isExpanded: isPrint,\n          header: \"2.1. Daten, die du uns mitteilst\",\n          content: [p(\"Wenn du Schüler/in bist, fragen wir dich nach deinem Spitznamen, deiner Schule (freiwillig) und mit welchem Fach in welcher Klassenstufe du beginnen möchtest. Wenn du dich einer Schule zuordnest, kann der Schul-Administrator deinen Nutzer ins Schulverzeichnis aufnehmen und Daten zu deiner Person wie z.B. Name und Klasse ergänzen.\"), p(\"Wenn du Lehrer/in bist, fragen wir dich nach deinem Vornamen, Nachnamen, Anrede und freiwillig nach deiner Schule und E-Mail-Adresse.\"), p(\"Wenn du als Lehrer/in oder Mitarbeiter/in einer Schule eine Gruppe und Anmelde-Codes für deine Schüler/innen und/oder Lehrer/innen anlegst, bist du bzw. deine Schule für den Datenschutz verantwortlich. Bitte verwende nur Spitznamen, mit denen ein Dritter die Schüler/innen nicht identifizieren könnte oder hole die Zustimmung der Eltern ein.\"), p(\"Wenn du Lehrer/in bist und dich einer Schule zuordnest, erlaubst du dem Administrator dieser Schule, deinen Nutzer ins Schulverzeichnis aufzunehmen, deinen Nutzer und Nutzer mit den durch dich erstellten Anmelde-Codes zu verwalten, Daten zur Person zu ergänzen, den Anmelde-Code einzusehen und Nutzer zur Löschung vorzumerken.\"), p(\"Wenn du entscheidest, dass dein/e Nutzer/in auf deinem Gerät gespeichert werden soll, speichern wir diese Information auf deinem Gerät.\"), p(\"Wir fragen dich gelegentlich, wie gut dir ANTON und die Lerninhalte gefallen, und wie wir diese verbessern können.\"), p(\"Du hast die Möglichkeit, unter Einstellungen deine E-Mail-Adresse oder Handynummer anzugeben, wenn du mindestens 16 Jahre alt bist. Dann können wir dir deinen Zugang wiederherstellen, falls du deine Zugangsdaten verlierst.\"), p(\"Wenn du mit uns per Hilfe-Chat oder per E-Mail Kontakt aufnimmst, werden diese Nachrichten und das Datum und die Uhrzeit der Nachrichten gespeichert, damit wir mit dir kommunizieren können.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"2.2. Informationen, die wir durch deine Nutzung von ANTON automatisch erhalten\",\n          content: [p(\"Wenn du ANTON verwendest, speichert ANTON Daten über deine Nutzung auf deinem Gerät und gleicht diese bei bestehender Internetverbindung mit unserem Server ab. So kannst du ANTON mit deinem Nutzer auf mehreren Geräten verwenden.\"), p(\"Dies beinhaltet: gestartete App-Seiten und deinen Lernfortschritt, deine Spiel-Ergebnisse, deine Mitgliedschaft in Gruppen, von dir erstellte Inhalte wie z.B. Bilder und Lernlisten, dein Gerätetyp, Betriebssystem und Internetbrowser sowie deine anonymisierte IP-Adresse.\"), p(\"Wir speichern die letzten drei Ziffern deiner IP-Adresse nicht in unserem System, damit du anonym bleiben kannst.\")]\n        })\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. Wofür werden diese Daten verwendet?\",\n      content: p(\"Die gespeicherten Daten werden ausschließlich dazu verwendet, um dir ANTON anbieten zu können, um dir bei Problemen mit ANTON helfen zu können, und um ANTON nach den Bedürfnissen unserer Nutzer/innen weiterzuentwickeln.\")\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. Wie lange werden die Daten gespeichert?\",\n      content: [p(\"Deine Nutzerdaten werden solange gespeichert, wie du ANTON nutzt. Wenn du ANTON nicht mehr verwendest und kein Mitglied eines von einer Schule verwalteten Schulverzeichnisses bist, löschen wir deine Nutzerdaten 12 Monate nachdem du dich das letzte Mal eingeloggt hast bzw. nachdem deine ANTON-Plus-Mitgliedschaft endet, automatisch.\"), p(\"Deine personenbezogenen Daten werden gelöscht oder gesperrt, sobald der Zweck der Speicherung entfällt. Eine Speicherung kann darüber hinaus erfolgen, wenn dies durch den europäischen oder nationalen Gesetzgeber in unionsrechtlichen Verordnungen, Gesetzen oder sonstigen Vorschriften, denen der Verantwortliche unterliegt, vorgesehen wurde. Eine Sperrung oder Löschung der Daten erfolgt auch dann, wenn eine durch die genannten Normen vorgeschriebene Speicherfrist abläuft, es sei denn, dass eine Erforderlichkeit zur weiteren Speicherung der Daten für einen Vertragsabschluss oder eine Vertragserfüllung besteht.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. Gibt ANTON Daten an Dritte weiter?\",\n      content: [p(\"Nein, wir geben deine Daten nicht an Dritte weiter, es sei denn, der/die Nutzer/in hat vorher seine ausdrückliche Einwilligung erklärt oder es besteht eine gesetzliche Verpflichtung zur Datenweitergabe.\"), p(\"Wir benutzen keine Google, Facebook, Amazon oder sonstige Produkt-Integrationen in ANTON,  d.h. deine Daten bleiben wirklich nur auf unseren Servern.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Wie wird die Sicherheit der Daten gewährleistet?\",\n      content: [p(\"Sämtliche Daten werden ausschließlich auf Servern in der EU gespeichert und verschlüsselt übertragen. Die Rechenzentren erfüllen höchste Sicherheitsstandards und sind nach DIN ISO/IEC 27001 zertifiziert.\"), p(\"Zugleich sollte sich der/die Nutzer/in der Tatsache bewusst sein, dass aufgrund ständig neu auftauchender Viren und anderer Mittel zum Angriff auf gesicherte Datensysteme von Internet-Diensten ein hundertprozentiger Schutz vor Angriffen nicht gewährleistet werden kann.\"), p(\"Wir werden jeden entdeckten Angriff durch Hacker u.ä. zivilrechtlich und strafrechtlich verfolgen und den/die Nutzer/in über eine Kompromittierung seiner Daten informieren.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. Welche Daten können andere Nutzer/innen sehen?\",\n      content: [p(\"Andere Nutzer können deinen Spitznamen, deinen Avatar und deine Punktzahl bei Spielen sehen. Falls du selbst Inhalte wie z.B. Bilder oder Lernlisten generierst, kannst du entscheiden, ob du diese für andere Nutzer veröffentlichen möchtest.\"), p(\"Dein/e Gruppen-Lehrer/in und - falls deine Schule das Schulverzeichnis nutzt - der Schuladministrator und die durch ihn berechtigten Lehrer/innen deiner Schule können deinen Namen und deinen Lernfortschritt einsehen und deinen Anmelde-Code für dich nachsehen.\"), p(\"Wenn du dich als Lehrer/in anmeldest und eine Schule auswählst, kann der Administrator des Schulverzeichnisses dieser Schule deine Daten und deinen Anmelde-Code einsehen und dich dem Schulverzeichnis hinzufügen. Dies gilt auch falls du falsche Angaben zu deiner Person oder deiner Zugehörigkeit zu der Schule gemacht haben solltest.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Deine Rechte\",\n      content: [\n        section({\n          isExpanded: isPrint,\n          header: \"8.1. Auskunftsrecht\",\n          content: p(\"Jede/r Nutzer/in hat das Recht, kostenlos Auskunft über die zu seiner Person gespeicherten personenbezogenen Daten zu erhalten. Schicke uns bitte eine E-Mail an privacy@anton.app mit folgenden Angaben zu deiner Identifizierung: Benutzername, Anmelde-Code, Name, E-Mail-Adresse, Postanschrift und Geburtsdatum.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.2. Recht auf Berichtigung\",\n          content: p(\"Du hast ein Recht auf Berichtigung und/oder Vervollständigung, sofern die verarbeiteten personenbezogenen Daten, die dich betreffen, unrichtig oder unvollständig sind.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.3. Recht auf Einschränkung der Verarbeitung\",\n          content: [p(\"Unter den folgenden Voraussetzungen kannst du die Einschränkung der Verarbeitung der dich betreffenden personenbezogenen Daten verlangen:\"), p(\"a. Wenn du die Richtigkeit der dich betreffenden personenbezogenen Daten für eine Dauer bestreitest, die es uns ermöglicht, die Richtigkeit der personenbezogenen Daten zu überprüfen.\"), p(\"b. Die Verarbeitung unrechtmäßig ist und du die Löschung der personenbezogenen Daten ablehnen und stattdessen die Einschränkung der Nutzung der personenbezogenen Daten verlangst.\"), p(\"c. Wir die personenbezogenen Daten für die Zwecke der Verarbeitung nicht länger benötigen, du diese jedoch zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen benötigst.\"), p(\"d. Wenn du Widerspruch gegen die Verarbeitung gemäß Art. 21 Abs. 1 DSGVO eingelegt hast und noch nicht feststeht, ob die berechtigten Gründe des Verantwortlichen gegenüber deinen Gründen überwiegen.\"), p(\"e. Wurde die Verarbeitung der dich betreffenden personenbezogenen Daten eingeschränkt, dürfen diese Daten – von ihrer Speicherung abgesehen – nur mit deiner Einwilligung oder zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der Rechte einer anderen natürlichen oder juristischen Person oder aus Gründen eines wichtigen öffentlichen Interesses der Union oder eines Mitgliedstaats verarbeitet werden. Wurde die Einschränkung der Verarbeitung nach den o.g. Voraussetzungen eingeschränkt, wirst du von uns unterrichtet, bevor die Einschränkung aufgehoben wird.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.4. Recht auf Löschung\",\n          content: [p(\"Auf Wunsch löschen wir deine Nutzerdaten. Schicke uns dazu bitte eine E-Mail an privacy@anton.app mit folgenden Angaben zu deiner Identifizierung: Benutzername, Anmelde-Code, Vor- und Zuname.\"), p(\"Um deine auf deinen Geräten gespeicherten Nutzerdaten zu löschen, kannst du ANTON deinstallieren oder in der App unter Einstellungen auf Abmelden klicken und dort das zu löschende Nutzerprofil auswählen.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.5. Recht auf Datenübertragbarkeit\",\n          content: [p(\"Schulen können Nutzeraccounts, die sie erstellt haben oder deren Verwaltung in ihre Verantwortung fällt, zur Löschung nach Ablauf einer Übergangsfrist von 60 Tagen vormerken. Die Nutzer - und falls notwendig deren Erziehungsberechtigte - sind durch die Schule zu informieren. Die Nutzer erhalten die Möglichkeit, innerhalb einer Frist von 60 Tagen die in dem Nutzeraccount gespeicherten Daten in einen neuen Account zu überführen und eigenständig weiter zu verwenden. Nach Ablauf der Frist werden die Nutzerkonten automatisch gelöscht.\"), p(\"Du hast das Recht, eine Kopie deiner personenbezogenen Daten im elektronischen Format zu verlangen und das Recht, diese personenbezogenen Daten für die Nutzung in dem Dienst eines anderen zu übertragen. Auf Wunsch senden wir dir eine Datei mit deinen personenbezogenen Daten. Schicke uns dazu bitte eine E-Mail an privacy@anton.app mit folgenden Angaben zu deiner Identifizierung: Benutzername, Anmelde-Code, Vor- und Zuname, evtl. Geburtsname, E-Mail-Adresse, Postanschrift und Geburtsdatum.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.6. Widerspruchsrecht\",\n          content: p(\"Du hast das Recht, aus Gründen, die sich aus deiner besonderen Situation ergeben, jederzeit gegen die Verarbeitung der dich betreffenden personenbezogenen Daten, die aufgrund von Art. 6 Abs. 1 lit. e oder f DSGVO erfolgt, Widerspruch einzulegen.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.7. Recht auf Widerruf der datenschutzrechtlichen Einwilligungserklärung\",\n          content: p(\"Du hast das Recht, deine datenschutzrechtliche Einwilligungserklärung jederzeit zu widerrufen. Durch den Widerruf der Einwilligung wird die Rechtmäßigkeit der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.8. Recht auf Beschwerde bei einer Aufsichtsbehörde\",\n          content: p(\"Unbeschadet eines anderweitigen verwaltungsrechtlichen oder gerichtlichen Rechtsbehelfs steht dir das Recht auf Beschwerde bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat deines Aufenthaltsorts, Arbeitsplatzes oder des Ortes des mutmaßlichen Verstoßes, zu, wenn du der Ansicht bist, dass die Verarbeitung der dich betreffenden personenbezogenen Daten gegen die DSGVO verstößt. Die Aufsichtsbehörde, bei der die Beschwerde eingereicht wurde, unterrichtet den Beschwerdeführer über den Stand und die Ergebnisse der Beschwerde einschließlich der Möglichkeit eines gerichtlichen Rechtsbehelfs nach Art. 78 DSGVO.\")\n        })\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Was ist die Rechtsgrundlage für die Verarbeitung?\",\n      content: [p(\"Soweit wir für Verarbeitungsvorgänge personenbezogener Daten eine Einwilligung der betroffenen Person einholen, dient Art. 6 Abs. 1 lit. a EU-Datenschutzgrundverordnung (DSGVO) als Rechtsgrundlage.\"), p(\"Bei der Verarbeitung von personenbezogenen Daten, die zur Erfüllung eines Vertrages, dessen Vertragspartei die betroffene Person ist, erforderlich ist, dient Art. 6 Abs. 1 lit. b DSGVO als Rechtsgrundlage. Dies gilt auch für Verarbeitungsvorgänge, die zur Durchführung vorvertraglicher Maßnahmen erforderlich sind.\"), p(\"Soweit eine Verarbeitung personenbezogener Daten zur Erfüllung einer rechtlichen Verpflichtung erforderlich ist, der unser Unternehmen unterliegt, dient Art. 6 Abs. 1 lit. c DSGVO als Rechtsgrundlage.\"), p(\"Ist die Verarbeitung zur Wahrung eines berechtigten Interesses unseres Unternehmens oder eines Dritten erforderlich und überwiegen die Interessen, Grundrechte und Grundfreiheiten des Betroffenen das erstgenannte Interesse nicht, so dient Art. 6 Abs. 1 lit. f DSGVO als Rechtsgrundlage für die Verarbeitung.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. Begriffserläuterung\",\n      content: [p(\"EU-DSGVO: Die Verordnung (EU) 2016/679 des Europäischen Parlaments und des Rates vom 27. April 2016 zum Schutz natürlicher Personen bei der Verarbeitung personenbezogener Daten, zum freien Datenverkehr und zur Aufhebung der Richtlinie 95/46/EG (Datenschutz-Grundverordnung).\"), p(\"Personenbezogene Daten: Gemäß Art. 4 Ziffer 1 EU-DSGVO alle Informationen, die sich auf eine identifizierte oder identifizierbare natürliche Person beziehen; als identifizierbar wird eine natürliche Person angesehen, die direkt oder indirekt, insbesondere mittels Zuordnung zu einer Kennung wie einem Namen, zu einer Kennnummer, zu Standortdaten, zu einer Online-Kennung oder zu einem oder mehreren besonderen Merkmalen identifiziert werden kann, die Ausdruck der physischen, physiologischen, genetischen, psychischen, wirtschaftlichen, kulturellen oder sozialen Identität dieser natürlichen Person sind.\")]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/download/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: T(\"downloadUrl\") + \"/\" + (page.shareId || \"\"),\n      title: T(\"downloadAnton\"),\n      metaDescription: \"\",\n      noIndex: true\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/download/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../_shared/topbarDeeplink/topbar\")(page, T(\"downloadAnton\"));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/newsletter/disable/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      margin: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"youHaveUnsubscribed\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/newsletter/disable/title/title.ls","text":"(function(){\n  return function(displayName){\n    return Div().css({\n      fontSize: \"1.5em\"\n    }).secureHtml(T(\"bummer\", displayName));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/newsletter/enable/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: \"enableNewsletter/\" + page.publicId,\n      title: T(\"antonNewsMailOn\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/newsletter/disable/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../../_shared/topbarDeeplink/topbar\")(page, T(\"antonNewsMailOff\"));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/newsletter/enable/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      margin: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"youHaveSubscribed\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/newsletter/enable/title/title.ls","text":"(function(){\n  return function(displayName){\n    return Div().css({\n      fontSize: \"1.5em\"\n    }).secureHtml(T(\"hello\", displayName));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/privacy/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"privacyUrl\"),\n      title: T(\"privacyTitle\"),\n      metaDescription: T(\"privacyDescription\"),\n      noIndex: true\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/static/terms/_t.ls","text":"(function(){\n  return {\n    termsOfService: {\n      de: \"Allgemeine Nutzungs- und Geschäftsbedingungen\",\n      en: \"General terms and conditions of use\",\n      fr: \"Conditions générales d'utilisation\",\n      es: \"Condiciones generales de uso\",\n      pt: \"Condições gerais de uso\"\n    },\n    termsUrl: {\n      de: \"agb\",\n      en: \"terms\",\n      fr: \"cgu\",\n      es: \"cgu\",\n      pt: \"cgu\"\n    }\n  };\n})();","updated":"2021-10-04T14:36:33.789173"},{"path":"pages/static/schoolLicense/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"licenseUrl\"),\n      title: T(\"license\"),\n      metaDescription: T(\"info\")\n    };\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/unknownUrl/_t.ls","text":"(function(){\n  return {\n    unknownPage: {\n      de: \"Unbekannte Seite\",\n      en: \"Unknown page\",\n      fr: \"Page inconnue\",\n      es: \"Página desconocida\",\n      pt: \"Página desconhecida\"\n    },\n    pageDoesNotExist: {\n      de: \"Diese Seite gibt es leider nicht.\",\n      en: \"This page doesn't exist.\",\n      fr: \"Cette page n'existe pas.\",\n      es: \"Esta página no existe.\",\n      pt: \"Esta página não existe.\"\n    }\n  };\n})();","updated":"2021-10-04T14:36:33.789173"},{"path":"pages/support/help/_faqUrlDescription/description.ls","text":"(function(){\n  return function(o){\n    var url, that;\n    url = T(\"faqUrl\");\n    if (o != null && o.question) {\n      if (that = o.question.uid) {\n        url += \"/\" + that;\n      }\n      if (that = o.question.urlTitle) {\n        url += \"/\" + that.toLowerCase().replace(/ /g, \"\");\n      }\n    }\n    return {\n      pageUrl: url,\n      title: T(\"faq\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2021-01-21T16:08:23.287713"},{"path":"pages/support/help/faqList/category/questions/question/lastViewed/lastViewed.ls","text":"(function(){\n  return function(lastPath, question){\n    if (lastPath !== question.path) {\n      return;\n    }\n    return Div().append(Div().css({\n      display: \"inline-block\",\n      backgroundColor: Color.grey[200],\n      padding: \"0.2em 0.5em\",\n      fontSize: \"0.8em\",\n      color: \"black\",\n      marginTop: \"0.3em\"\n    }).html(T(\"lastSeen\")));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/support/help/faqQuestion/backToFaqList/back.ls","text":"(function(){\n  return function(page){\n    return function(){\n      var ref$;\n      return startPage({\n        history: -1,\n        animation: \"slideRight\",\n        path: path(\"../../faqList/page\"),\n        params: {\n          isStandaloneFaqPage: true,\n          isDeepLink: true,\n          questionUid: (ref$ = page.question) != null ? ref$.uid : void 8\n        }\n      });\n    };\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/support/help/faqQuestion/create/checkUids/check.ls","text":"(function(){\n  return function(categories){\n    var uids, i$, len$, cat, j$, ref$, len1$, q, uid, results$ = [];\n    uids = [];\n    for (i$ = 0, len$ = categories.length; i$ < len$; ++i$) {\n      cat = categories[i$];\n      if (!cat.uid) {\n        debug(\"warning category without uid\", cat);\n      } else {\n        uids.push(cat.uid);\n      }\n      for (j$ = 0, len1$ = (ref$ = cat.questions).length; j$ < len1$; ++j$) {\n        q = ref$[j$];\n        if (!q.uid) {\n          debug(\"warning question without uid\", q);\n        } else {\n          uids.push(q.uid);\n        }\n      }\n    }\n    for (i$ = 0, len$ = (ref$ = _.sortBy(_.uniq(uids))).length; i$ < len$; ++i$) {\n      uid = ref$[i$];\n      if (_.indexOf(uids, uid) !== _.lastIndexOf(uids, uid)) {\n        results$.push(debug(\"warning, duplicate uid found, \" + uid));\n      }\n    }\n    return results$;\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/support/help/faqQuestion/notFoundDiv/div.ls","text":"(function(){\n  return function(page){\n    return Div().css({\n      lineHeight: \"1.5em\",\n      marginBottom: \"0.3em\"\n    }).html(T(\"faqNotFound\"));\n  };\n})();","updated":"2020-11-24T11:00:34.527672"},{"path":"pages/support/help/faqQuestion/loadCategories/load.ls","text":"(function(){\n  return function(page){\n    return function(){\n      if (!page.params.isDeepLink) {\n        page.create();\n        return;\n      }\n      return inc(\"../../faqList/loadCategories/load\")(page)();\n    };\n  };\n})();","updated":"2021-06-07T08:14:46.316973"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/notFound/contentFeedbackButton/popupDone/_t.ls","text":"(function(){\n  return {\n    thanksForReporting: {\n      de: \"Danke für deine Meldung!\",\n      en: \"Thanks for letting us know!\",\n      fr: \"Merci pour ton message&nbsp;!\",\n      es: \"¡Gracias por tu comentario!\",\n      pt: \"Agradecemos pelo seu comentário!\"\n    }\n  };\n})();","updated":"2021-10-12T09:11:02.968152"},{"path":"pages/start/login/relogin/02_form/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbarWhiteBack/topbar\")({\n      back: true\n    });\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/start/login/relogin/01_choose/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"pleaseRelogin\"));\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Line/intersectsWithCircle.ls","text":"(function(){\n  return function(line, circle){\n    var orth, o1, orthLine, cross, result, distance;\n    orth = inc(\"../Vector/orthogonal\")(inc(\"../Vector/betweenPoints\")(line.start, line.end));\n    o1 = inc(\"../Vector/add\")(circle.position, inc(\"../Vector/multiply\")(orth, 100000));\n    o1 = inc(\"../Vector/add\")(circle.position, inc(\"../Vector/multiply\")(orth, -100000));\n    orthLine = inc(\"betweenPoints\")(o1, o2);\n    cross = inc(\"intersectionWithLine\")(line, orthLine);\n    result = false;\n    if (cross != null) {\n      distance = inc(\"../Point/distance\")(circle.position, cross);\n      result = distance < circle.radius;\n    }\n    return result;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Line/length.ls","text":"(function(){\n  return function(line){\n    return inc(\"../Point/distance\")(line.end, line.start);\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Point/distance.ls","text":"(function(){\n  return function(p1, p2){\n    var v;\n    v = inc(\"../Vector/substract\")(p2, p1);\n    return inc(\"../Vector/length\");\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Vector/betweenPoints.ls","text":"(function(){\n  return function(p1, p2){\n    return inc(\"substract\")(p2, p1);\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Vector/norm.ls","text":"(function(){\n  return function(vec){\n    var l, result;\n    l = inc(\"length\")(vec);\n    result = vec;\n    if (l > 0) {\n      result = inc(\"multiply\")(vec, 1 / l);\n    }\n    return result;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Vector/radiansBetweenVectors.ls","text":"(function(){\n  return function(vec1, vec2){\n    var length1, length2;\n    length1 = inc(\"length\")(vec1);\n    length2 = inc(\"length\")(vec2);\n    return Math.acos((vec1.x * vec2.x + vec1.y * vec2.y) / (length1 * length2));\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"lib/init/setCssSafeArea/androidNext/set.ls","text":"(function(){\n  return function(){\n    var getGestureMode, getInsets, onResult;\n    getGestureMode = function(){\n      return SolocodePlugin.isInGestureNavigationMode(getInsets, function(){\n        return getInsets(false);\n      });\n    };\n    getInsets = function(enabled){\n      if (enabled) {\n        return SolocodePlugin.getSafeAreaInsets(onResult);\n      } else {\n        return SolocodePlugin.getCutoutInsets(onResult);\n      }\n    };\n    onResult = function(insets){\n      return inc(\"../_setCssValues/set\")({\n        valueFunction: function(pLow, tLow){\n          return pLow + \"-\" + tLow + \" : \" + insets[tLow] + \"px;\";\n        }\n      });\n    };\n    getGestureMode();\n    return window.addEventListener(\"orientationchange\", getGestureMode);\n  };\n})();","updated":"2025-09-15T09:08:49.182048"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/add.ls","text":"(function(){\n  return function(){\n    return PIXI.Helper.Math = {\n      Vector: {\n        length: inc(\"Vector/length\"),\n        multiply: inc(\"Vector/multiply\"),\n        norm: inc(\"Vector/norm\"),\n        orthogonal: inc(\"Vector/orthogonal\"),\n        add: inc(\"Vector/add\"),\n        substract: inc(\"Vector/substract\"),\n        betweenPoints: inc(\"Vector/betweenPoints\"),\n        radiansBetweenVectors: inc(\"Vector/radiansBetweenVectors\"),\n        fromRadians: inc(\"Vector/fromRadians\")\n      },\n      Line: {\n        betweenPoints: inc(\"Line/betweenPoints\"),\n        length: inc(\"Line/length\"),\n        intersectionWithLine: inc(\"Line/intersectionWithLine\"),\n        intersectsWithCircle: inc(\"Line/intersectsWithCircle\")\n      },\n      Point: {\n        distance: inc(\"Point/distance\")\n      },\n      Circle: {\n        containsPoint: inc(\"Circle/containsPoint\"),\n        intersectsCircle: inc(\"Circle/intersectsCircle\")\n      },\n      Rect: {\n        containsPoint: inc(\"Rect/containsPoint\"),\n        intersectsRect: inc(\"Rect/intersectsRect\")\n      }\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/alphaZoomOut.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.oldScene.sceneWidth;\n    h = o.oldScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.oldScene.alpha = 1 - percentage;\n      o.oldScene.scale.set(1.5 - 0.5 * (1 - percentage));\n      o.oldScene.x = (w - o.oldScene.sceneWidth * o.oldScene.scale.x) / 2;\n      o.oldScene.y = (h - o.oldScene.sceneHeight * o.oldScene.scale.y) / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/fadeIn.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.alpha = percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/start/login/relogin/01_choose/buttons/buttons.ls","text":"(function(){\n  return function(page){\n    var b, tap;\n    b = inc(\"button/button\");\n    tap = function(type){\n      return startPage({\n        path: path(\"../../02_form/page\"),\n        animation: \"slideLeft\",\n        params: {\n          logId: page.logId,\n          type: type\n        }\n      });\n    };\n    return Div({\n      display: \"inline-block\",\n      margin: \"2em auto\"\n    }).html(b().html(T(\"enterLoginCode\")).tap(function(){\n      return tap(\"loginCode\");\n    }), b().html(T(\"enterPw\")).tap(function(){\n      return tap(\"password\");\n    }));\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"pages/start/login/relogin/01_choose/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbarWhiteBack/topbar\")({\n      back: true\n    });\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/start/login/relogin/01_choose/buttons/button/button.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"block\",\n      margin: \"0.5em\",\n      padding: \"0.7em 1em\",\n      background: Color.grey[300]\n    });\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/fadeOut.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.alpha = 1 - percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/start/login/relogin/01_choose/linkRemove/link.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      return inc(\"popup/popup\")(page);\n    };\n    return Div().html(inc(\"/lib/gui/link/link\")({\n      label: T(\"dontShowUser\")\n    }).css({\n      fontSize: \"0.9em\",\n      color: Color.grey[600]\n    }).tap(tap));\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/fadeOutIn.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.alpha = 1 - Math.min(1, 2 * percentage);\n      o.newScene.alpha = Math.max(0, 2 * (percentage - 0.5));\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/soundPlayer/create.ls","text":"(function(){\n  return function(sounds){\n    var soundPlayer, ref$, key, sound, s;\n    soundPlayer = {\n      soundsEnabled: !((ref$ = log.findLast('setGameSoundDisabled')) != null && ref$.value)\n    };\n    soundPlayer.sounds = {};\n    for (key in sounds) {\n      sound = sounds[key];\n      s = inc(\"/lib/util/sound/sound\")({\n        base64: inc(sound.filename),\n        volume: sound.volume || 1,\n        isLoop: sound.isLoop\n      });\n      soundPlayer.sounds[key] = s;\n    }\n    soundPlayer.play = function(name, looping){\n      var ref$;\n      if (!soundPlayer.soundsEnabled) {\n        return;\n      }\n      looping = looping || false;\n      if ((ref$ = soundPlayer.sounds[name]) != null) {\n        ref$.play();\n      }\n    };\n    soundPlayer.stop = function(name){\n      var ref$;\n      if ((ref$ = soundPlayer.sounds[name]) != null) {\n        ref$.stop();\n      }\n    };\n    soundPlayer.stopAll = function(){\n      var key, ref$, sound;\n      for (key in ref$ = soundPlayer.sounds) {\n        sound = ref$[key];\n        if (typeof sound.stop == 'function') {\n          sound.stop();\n        }\n      }\n    };\n    soundPlayer.setSoundsEnabled = function(enabled){\n      soundPlayer.soundsEnabled = enabled;\n      if (!enabled) {\n        soundPlayer.stopAll();\n      }\n    };\n    return soundPlayer;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/add.ls","text":"(function(){\n  return function(){\n    return PIXI.Helper.Color = {\n      fromRgbaString: inc(\"functions/fromRgbaString\"),\n      fromRGB: inc(\"functions/fromRGB\"),\n      fromHSB: inc(\"functions/fromHSB\"),\n      darkerColor: inc(\"functions/darkerColor\"),\n      lighterColor: inc(\"functions/lighterColor\"),\n      toHexString: inc(\"functions/toHexString\"),\n      fromHexString: inc(\"functions/fromHexString\"),\n      getRed: inc(\"functions/getRed\"),\n      getGreen: inc(\"functions/getGreen\"),\n      getBlue: inc(\"functions/getBlue\"),\n      Components: inc(\"functions/components\")(),\n      getComponents: inc(\"functions/getComponents\")\n    };\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/adjustedColor.ls","text":"(function(){\n  return function(color, ratio){\n    var r, g, b;\n    r = inc(\"getRed\")(color) * ratio;\n    g = inc(\"getGreen\")(color) * ratio;\n    b = inc(\"getBlue\")(color) * ratio;\n    return inc(\"fromRGB\")(r, g, b);\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/darkerColor.ls","text":"(function(){\n  return function(color, ratio){\n    var adjustment;\n    adjustment = 1 - ratio;\n    return inc(\"adjustedColor\")(color, adjustment);\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/fromRgbaString.ls","text":"(function(){\n  return function(string){\n    var a, r, g, b;\n    a = string.split(/\\,|\\(|\\)/);\n    r = a[1];\n    g = a[2];\n    b = a[3];\n    return inc(\"fromRGB\")(r, g, b);\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/lighterColor.ls","text":"(function(){\n  return function(color, ratio){\n    var adjustment;\n    adjustment = 1 + ratio;\n    return inc(\"adjustedColor\")(color, adjustment);\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/Helper/Math/Line/intersectionWithLine.ls","text":"(function(){\n  return function(line1, line2, allowEndpoints){\n    var l1Vec, l2Vec, l2l1Vec, determinant, s, t, intersects, intersection;\n    allowEndpoints = !!alloallowEndpoints;\n    l1Vec = inc(\"../Vector/betweenPoints\")(line1.start, line1.end);\n    l2Vec = inc(\"../Vector/betweenPoints\")(line2.start, line2.end);\n    l2l1Vec = inc(\"../Vector/betweenPoints\")(line2.start, line1.start);\n    determinant = -l2Vec.x * l1Vec.y + l1Vec.x * l2Vec.y;\n    s = (function(it){\n      return it - l1Vec.y * l2l1Vec.x + l1Vec.x * l2l1Vec.y;\n    }) / determinant;\n    t = (l2Vec.x * l2l1Vec.y - l2Vec.y * l2l1Vec.x) / determinant;\n    if (allowIntersectionAtEndPoints) {\n      intersects = s >= 0 && s <= 1 && t >= 0 && t <= 1;\n    } else {\n      intersects = s > 0 && s < 1 && t > 0 && t < 1;\n    }\n    intersection = undefined;\n    if (intersects) {\n      intersection = inc(\"../Vector/add\")(l1.startPoint, inc(\"../Vector/multiply\")(l1Vec, t));\n    }\n    return intersection;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/fromBottom.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.y = o.newScene.sceneHeight * (1 - percentage);\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/button/create.ls","text":"(function(){\n  return function(o){\n    var button, ax, ay, backgroundVisible, needsSize, makeState, style, text, ref$;\n    button = new PIXI.Container();\n    button.texture = o.texture;\n    ax = 0.5;\n    if (o.anchorX != null) {\n      ax = o.anchorX;\n    }\n    ay = 0.5;\n    if (o.anchorY != null) {\n      ay = o.anchorY;\n    }\n    button.pivot.set(ax, ay);\n    button.alive = true;\n    button.dx = 0;\n    button.dy = 0;\n    if (o.x != null) {\n      button.x = o.x;\n    }\n    if (o.y != null) {\n      button.y = o.y;\n    }\n    backgroundVisible = o.tint != null || o.texture != null;\n    if (o.texture == null) {\n      o.texture = PIXI.Texture.WHITE;\n      needsSize = true;\n    }\n    button.background = inc(\"../sprite/create\")(o);\n    button.background.anchor.set(0.5);\n    button.background.x = 0;\n    button.background.y = 0;\n    if (!backgroundVisible) {\n      button.background.visible = false;\n    }\n    button.addChild(button.background);\n    makeState = function(highlighted){\n      if (highlighted) {\n        if (o.highlightedTexture != null) {\n          button.texture = o.highlightedTexture;\n        } else {\n          button.alpha = 0.5;\n        }\n      } else {\n        if (o.highlightedTexture != null) {\n          button.texture = o.texture;\n        } else {\n          button.alpha = 1;\n        }\n      }\n    };\n    if (o.text != null) {\n      if (o.textStyle != null) {\n        style = o.textStyle;\n      } else {\n        style = new PIXI.TextStyle({\n          fontFamily: 'Source Sans Pro Solocode',\n          fontSize: 30,\n          fill: '#ffffff'\n        });\n      }\n      text = new PIXI.Text(o.text, style);\n      text.anchor.set(0.5);\n      button.addChild(text);\n      if (!!needsSize) {\n        button.background.width = text.width + 20 + ((ref$ = o.padding) != null ? ref$ : 0);\n        button.background.height = text.height + ((ref$ = o.padding) != null ? ref$ : 0);\n      }\n    }\n    button.interactive = true;\n    button.on('pointerdown', function(){\n      makeState(true);\n    });\n    button.on('pointerup', function(){\n      makeState(false);\n      o.onClick(button);\n    });\n    button.on('pointerupoutside', function(){\n      makeState(false);\n    });\n    return button;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/createAtlas/create.ls","text":"(function(){\n  return function(o, callback){\n    var svgs, total, loaded, textures, resolution, load, onTextureUpdate, done;\n    svgs = inc(o.projectFolder + \"/images/*.svg\", {\n      returnAsObject: true\n    });\n    total = _.keys(svgs).length;\n    loaded = 0;\n    textures = {};\n    resolution = o.renderer.resolution;\n    load = function(){\n      var path, ref$, svg, div, width, height, src, texture, p, filename, name, results$ = [];\n      for (path in ref$ = svgs) {\n        svg = ref$[path];\n        div = Div();\n        div.innerHTML = svg;\n        svg = div.firstChild;\n        width = Math.max(1, +svg.attr(\"width\") * resolution * o.scale);\n        height = Math.max(1, +svg.attr(\"height\") * resolution * o.scale);\n        svg.attr({\n          width: width,\n          height: height\n        });\n        svg = svg.outerHTML;\n        src = 'data:image/svg+xml;base64,' + window.btoa(svg);\n        texture = PIXI.Texture.fromImage(src);\n        p = path.split(\"/\");\n        filename = p[p.length - 1];\n        name = filename.replace(\".svg\", \"\");\n        textures[name] = texture;\n        if (texture.baseTexture.hasLoaded) {\n          results$.push(onTextureUpdate());\n        } else {\n          results$.push(texture.on(\"update\", onTextureUpdate));\n        }\n      }\n      return results$;\n    };\n    onTextureUpdate = function(texture){\n      if (texture != null) {\n        texture.off(\"update\", onTextureUpdate);\n      }\n      loaded = loaded + 1;\n      if (loaded === total) {\n        return done();\n      }\n    };\n    done = function(){\n      var atlas;\n      atlas = new PIXI.spine.core.TextureAtlas();\n      atlas.addTextureHash(textures, true);\n      o.atlas = atlas;\n      return callback();\n    };\n    return load();\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/transitions/alphaZoomIn.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.newScene.sceneWidth;\n    h = o.newScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.newScene.alpha = percentage;\n      o.newScene.scale.set(1.5 - 0.5 * percentage);\n      o.newScene.x = (w - o.newScene.sceneWidth * o.newScene.scale.x) / 2;\n      o.newScene.y = (h - o.newScene.sceneHeight * o.newScene.scale.y) / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/spineSprite/create.ls","text":"(function(){\n  var cache;\n  cache = {};\n  return function(o){\n    var calculateScale;\n    calculateScale = function(){\n      var json, width, height;\n      json = JSON.parse(inc(o.projectFolder + \"/skeleton.json\"));\n      width = json.skeleton.width;\n      height = json.skeleton.height;\n      return Math.min(o.width / width, o.height / height);\n    };\n    o.scale = calculateScale();\n    return inc(\"../createAtlas/create\")(o, function(){\n      var spine;\n      spine = inc(\"/lib/gui/pixiSpineCanvas/createSpine/create\")(o);\n      if (o.skin) {\n        spine.skeleton.setSkinByName(o.skin);\n      }\n      spine.state.clearTracks();\n      spine.skeleton.setToSetupPose();\n      spine.autoUpdate = true;\n      spine.update(0);\n      spine.alive = true;\n      spine.dx = 0;\n      spine.dy = 0;\n      return o.onDone(spine);\n    });\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/spriteCache/cache.ls","text":"(function(){\n  return function(o){\n    var caches, k, v;\n    caches = {};\n    for (k in o) {\n      v = o[k];\n      caches[k] = v.strategy === \"failing\"\n        ? inc(\"cacheFailing/cache\")(v)\n        : v.strategy === \"aggressive\" ? inc(\"cacheAgressive/cache\")(v) : void 8;\n    }\n    caches.get = function(key, construct){\n      if (caches[key]) {\n        return caches[key].get(construct);\n      } else {\n        return debug(\"no cache found '\" + key + \"'\");\n      }\n    };\n    return caches;\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"pages/games/00_shared/pixiGame/pixi/svgTextureLoader/load.ls","text":"(function(){\n  return function(o){\n    var svgs, key, ref$, data, total, loaded, textures, resolution, load, onTextureUpdate, done;\n    svgs = {};\n    for (key in ref$ = o.svgs) {\n      data = ref$[key];\n      svgs[key] = {\n        svg: inc(data.svg),\n        width: data.width,\n        height: data.height\n      };\n    }\n    total = _.keys(svgs).length;\n    loaded = 0;\n    textures = {};\n    resolution = o.renderer.resolution;\n    load = function(){\n      var key, ref$, svgData, div, svg, scale, src, texture, results$ = [];\n      for (key in ref$ = svgs) {\n        svgData = ref$[key];\n        div = Div();\n        div.innerHTML = svgData.svg;\n        svg = div.firstChild;\n        scale = Math.min(svgData.width / +svg.attr(\"width\"), svgData.height / +svg.attr(\"height\"));\n        svg.attr({\n          width: Math.max(1, +svg.attr(\"width\") * resolution * scale),\n          height: Math.max(1, +svg.attr(\"height\") * resolution * scale)\n        });\n        svg = svg.outerHTML;\n        src = \"data:image/svg+xml;base64,\" + window.btoa(svg);\n        texture = PIXI.Texture.fromImage(src);\n        textures[key] = texture;\n        if (texture.baseTexture.hasLoaded) {\n          results$.push(onTextureUpdate());\n        } else {\n          results$.push(texture.on(\"update\", onTextureUpdate));\n        }\n      }\n      return results$;\n    };\n    onTextureUpdate = function(texture){\n      if (texture != null) {\n        texture.off(\"update\", onTextureUpdate);\n      }\n      loaded = loaded + 1;\n      if (loaded === total) {\n        return done();\n      }\n    };\n    done = function(){\n      return o.callback(textures);\n    };\n    return load();\n  };\n})();","updated":"2021-04-15T13:43:45.202869"},{"path":"lib/util/downloadTextToFile/download.ls","text":"(function(){\n  return function(text, fileName){\n    var url, a;\n    url = \"data:text/txt;charset=utf-8,\" + encodeURIComponent(text);\n    a = document.createElement('a');\n    a.href = url;\n    a.download = fileName || 'download.txt';\n    document.body.appendChild(a);\n    a.click();\n    return document.body.removeChild(a);\n  };\n})();","updated":"2021-04-16T10:29:57.544577"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/notFound/contentFeedbackButton/button.ls","text":"(function(){\n  return function(o){\n    return Div({\n      textAlign: \"center\"\n    }).html(Button({\n      label: T(\"contentFeedbackButtonLabel\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\",\n      labelAllowWrap: true\n    }).css({\n      fontSize: \"0.85em\"\n    }).tap(function(){\n      body.findFirst(\".mainMenu\").remove();\n      return inc(\"popupInput/popup\")(o.searchQuery);\n    }));\n  };\n})();","updated":"2021-08-30T10:52:54.890581"},{"path":"lib/init/idle/onResume/onResume.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var idleDuration;\n      idleDuration = _.round((new Date() - o.lastActivityAt) / 1000);\n      if (engine.isMobileApp) {\n        inc(\"/lib/init/networkConnection/init\")();\n      }\n      if (idleDuration > 60 * 60 * 8) {\n        Store(\"deviceRestartOnResume\", {\n          restartedAt: new Date(),\n          idleDuration: idleDuration\n        });\n        return location.reload();\n      } else if (o.overlay || !window.log) {} else if (idleDuration < o.timeoutSecs) {\n        inc(\"/lib/gui/showMaintainancePopupOnce/show\")();\n        o.endedAt = null;\n        return o.createInterval();\n      } else {\n        return o.showOverlay();\n      }\n    };\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"data/user/calcUserDescription/isDirTeacher/calc.ls","text":"(function(){\n  return function(){\n    var schools;\n    schools = inc(\"/data/school/calcSchoolDescriptions/calc\")();\n    schools = _.filter(schools, function(d){\n      var ref$;\n      return (ref$ = d != null ? d.dirRole : void 8) === \"teacher\" || ref$ === \"staff\";\n    });\n    return schools.length > 0;\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"lib/util/orientation/unlock.ls","text":"(function(){\n  return function(){\n    var unlocked, ref$;\n    if (!engine.isMobileApp) {\n      return;\n    }\n    unlocked = engine.isiOsApp ? \"xxunlocked\" : \"unlocked\";\n    return (ref$ = cordova.plugins.screenorientation) != null ? ref$.setOrientation(unlocked) : void 8;\n  };\n})();","updated":"2026-02-18T12:51:34.062617"},{"path":"pages/level/_shared/_urlDescriptionWithLevel/calcTitle/calc.ls","text":"(function(){\n  return function(page){\n    var title;\n    title = page.level != null\n      ? T(\"exercise2\", page.level.title)\n      : T(\"exercise\");\n    title = inc(\"/lib/util/removeHtmlTags/remove\")(title);\n    return title;\n  };\n})();","updated":"2024-01-24T14:32:33.928193"},{"path":"addons/topbar2/tabMenu/tabMenu.ls","text":"(function(){\n  return function(o){\n    var items, index, item;\n    if (!o.tabMenuItems) {\n      return;\n    }\n    items = o.tabMenuItems();\n    return Div().addClass(\"tabMenu\").css({\n      flex: \"1 1 auto\",\n      display: \"flex\",\n      marginTop: \"-0.4em\",\n      fontSize: \"0.95em\"\n    }).append((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = items).length; i$ < len$; ++i$) {\n        index = i$;\n        item = ref$[i$];\n        results$.push(inc(\"tab/tab\")(item));\n      }\n      return results$;\n    }()));\n  };\n})();","updated":"2021-04-23T09:51:14.718193"},{"path":"addons/topbar2/title/title.ls","text":"(function(){\n  return function(o){\n    if (!o.title) {\n      return;\n    }\n    return Div().css({\n      pointerEvents: \"none\",\n      padding: \"0 5% 0.4em\",\n      textAlign: \"center\",\n      fontWeight: \"bold\",\n      alignSelf: \"stretch\",\n      color: Color.grey[800],\n      fontSize: \"1.05em\"\n    }).secureHtml(_.isString(o.title)\n      ? inc(\"/lib/seo/element/h1/h1\")(o.title)\n      : o.title);\n  };\n})();","updated":"2021-04-23T09:51:14.718193"},{"path":"data/user/calcBlockStats/calc.ls","text":"(function(){\n  return function(block){\n    var eventsByPuid, stats, level, e;\n    if (window.log == null) {\n      return;\n    }\n    eventsByPuid = inc(\"calcLevelFinishEventsByPuid/calc\")();\n    return stats = (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = block.levels).length; i$ < len$; ++i$) {\n        level = ref$[i$];\n        e = eventsByPuid[level.puid];\n        results$.push({\n          levelPuid: level.puid,\n          width: !e\n            ? 0\n            : e.type === \"bulb\"\n              ? \"100%\"\n              : (e != null ? e.score : void 8) / 3 * 100 + \"%\",\n          color: !e\n            ? \"\"\n            : level.type === \"test\"\n              ? Color.yellow[400]\n              : Color.green[400]\n        });\n      }\n      return results$;\n    }());\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"data/user/calcUserDescription/isDPASchoolMember/calc.ls","text":"(function(){\n  return function(d){\n    var schoolCodes, i$, len$, schoolCode, e2;\n    schoolCodes = inc(\"/data/school/calcSchoolCodes/calc\")(d.log);\n    for (i$ = 0, len$ = schoolCodes.length; i$ < len$; ++i$) {\n      schoolCode = schoolCodes[i$];\n      e2 = d.log.findLast({\n        event: \"isSchoolMember\",\n        schoolCode: schoolCode\n      });\n      if (e2.dirRole != null) {\n        return true;\n      }\n    }\n    return false;\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"data/user/news/calcUnreadNewsCount/calc.ls","text":"(function(){\n  return function(){\n    var newsList;\n    if (window.log == null) {\n      return 0;\n    }\n    newsList = inc(\"/lib/util/calcNewsList/calc\")();\n    newsList = _.filter(newsList, function(news){\n      return !news.isRead;\n    });\n    return newsList.length;\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"lib/gui/screenKeyboard/createKeys/keys/mathKeys/tap/tap.ls","text":"(function(){\n  return function(o, v){\n    return function(){\n      var ref$;\n      o.onKey(v.k, v.special);\n      if (((ref$ = v.k) !== \"submit\" && ref$ !== \"left\" && ref$ !== \"right\") && o.shiftStatus) {\n        o.shiftStatus = false;\n        o.toggleState = \"main\";\n        return o.start();\n      }\n    };\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"lib/gui/screenKeyboard/createKeys/keys/mathKeys/calcKeys/toggleShift/key.ls","text":"(function(){\n  return function(key, o){\n    var up, div;\n    up = function(){\n      o.toggleState = o.toggleState === \"main\" ? \"toggle\" : \"main\";\n      o.shiftStatus = !o.shiftStatus;\n      return o.start();\n    };\n    div = inc(\"../../../_div/div\")({\n      o: o,\n      key: key,\n      keyDivHtml: _.replace(key.value, \"toggle\", \"\"),\n      color: o.shiftStatus ? \"grey4\" : \"grey2\",\n      up: up\n    });\n    return div;\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"addons/topbar2/actions/search/search.ls","text":"(function(){\n  return function(o){\n    var isActive, onSubmit, onSearch, div, icon, input, spacer;\n    isActive = false;\n    o.toggleSearchInput = function(){\n      if (isActive) {\n        isActive = false;\n        spacer.show();\n        input.setValue(\"\");\n        input.hide();\n        input.stop();\n        div.findFirst(\".abort\").css({\n          height: 0,\n          visibility: \"hidden\"\n        });\n        return o.onSearch();\n      } else {\n        isActive = true;\n        spacer.hide();\n        input.show();\n        input.start();\n        return div.findFirst(\".abort\").css({\n          height: \"auto\",\n          visibility: \"visible\"\n        });\n      }\n    };\n    o.setSearchValue = function(value, stopInput){\n      input.setValue(value);\n      if (!isActive) {\n        o.toggleSearchInput();\n      }\n      if (stopInput) {\n        return input.stop();\n      }\n    };\n    onSubmit = function(autoSubmit){\n      var value;\n      if (!autoSubmit) {\n        input.stop();\n      }\n      value = input.getValue();\n      return o.onSearch(value, autoSubmit);\n    };\n    onSearch = function(){\n      var value;\n      value = input.getValue();\n      return o.onSearch(value);\n    };\n    return div = Div({\n      flex: \"1 1 auto\",\n      display: \"flex\",\n      color: Color.grey[800],\n      padding: \"0.2em\",\n      justifyContent: \"flex-start\"\n    }).addClass(\"searchTopbar\").html(icon = inc(\"iconWithAbort/iconWithAbort\")(o), input = inc(\"input/input\")(o, onSubmit, onSearch), spacer = inc(\"spacer/spacer\")(o)).addClass(\"keyManager-esc\").bind(\"keyManager\", function(e){\n      if (isActive) {\n        return o.toggleSearchInput();\n      }\n    });\n  };\n})();","updated":"2021-09-06T16:48:37.309955"},{"path":"addons/topbar2/actions/actions.ls","text":"(function(){\n  return function(o){\n    var div;\n    if (!o.onSearch && !o.actions) {\n      return;\n    }\n    o.updateActions = function(a){\n      var action;\n      if (a) {\n        o.actions = a;\n      }\n      if (o.actions) {\n        return o.actionsDiv.html((function(){\n          var i$, ref$, len$, results$ = [];\n          for (i$ = 0, len$ = (ref$ = _.ensureArray(o.actions)).length; i$ < len$; ++i$) {\n            action = ref$[i$];\n            if (action) {\n              results$.push(inc(\"action/action\")(action));\n            }\n          }\n          return results$;\n        }()));\n      }\n    };\n    div = Div().css({\n      padding: \"0.4em\",\n      backgroundColor: Color.grey[75],\n      textAlign: \"right\",\n      borderTop: \"1px solid \" + Color.grey[300],\n      display: \"flex\",\n      height: \"2.6em\"\n    }).append(o.onSearch\n      ? inc(\"search/search\")(o)\n      : Div().css({\n        flex: \"1 1 auto\"\n      }), o.actions ? o.actionsDiv = Div().css({\n      flex: \"0 0 auto\"\n    }) : void 8);\n    o.updateActions();\n    return div;\n  };\n})();","updated":"2021-04-23T09:51:14.718193"},{"path":"addons/topbar2/actions/search/input/input.ls","text":"(function(){\n  return function(o, onSubmit, onSearch){\n    return inc(\"/lib/gui/inputEditable/input\")({\n      showResetIcon: true,\n      showSearchIcon: false,\n      onSubmit: onSubmit,\n      onReset: onSearch,\n      autoSubmitDelay: 1000,\n      keyboardSubmitLabel: T(\"search\"),\n      maxLength: 50\n    }).css({\n      flex: \"1 1 auto\",\n      width: \"100%\",\n      marginTop: \"0.1em\",\n      textAlign: \"left\",\n      backgroundColor: \"white\",\n      border: \"1px solid \" + Color.grey[200],\n      overflow: \"hidden\"\n    }).hide();\n  };\n})();","updated":"2021-05-27T13:32:43.850575"},{"path":"addons/topbar2/tools/download/icon/icon.ls","text":"(function(){\n  return function(manager, id){\n    return Div({\n      display: \"flex\",\n      flexDirection: \"column\"\n    }).append(inc(\"arrowIcon/icon\")(manager, id), inc(\"smallDownloadBar/bar\")(manager, id));\n  };\n})();","updated":"2022-03-03T10:03:29.939799"},{"path":"addons/topbarLevel/calculator/calculator/open/fixKeyboardLayout/fix.ls","text":"(function(){\n  return function(o){\n    var screenKeyboard;\n    screenKeyboard = o.content.findFirst(\".screenKeyboard\");\n    return screenKeyboard.css({\n      flex: \"1 1 auto\",\n      width: \"100%\",\n      fontSize: body.width() < 350 ? \"0.9em\" : void 8\n    });\n  };\n})();","updated":"2021-04-23T09:51:14.718193"},{"path":"lib/gui/screenKeyboard/createKeys/keys/keys.ls","text":"(function(){\n  return function(o){\n    var keys;\n    keys = {\n      back: inc(\"back/key\"),\n      shift: inc(\"shift/key\"),\n      space: inc(\"space/key\"),\n      newline: inc(\"newline/key\"),\n      submit: inc(\"submit/key\"),\n      toggle123: inc(\"toggle/key\"),\n      toggleABC: inc(\"toggle/key\"),\n      char: inc(\"char/key\"),\n      left: inc(\"left/key\"),\n      right: inc(\"right/key\"),\n      spacer: inc(\"spacer/key\")\n    };\n    if (_.startsWith(o.layout, \"mathDiv\")) {\n      inc(\"mathKeys/keys\")(keys);\n    }\n    return keys;\n  };\n})();","updated":"2021-04-23T09:51:14.718193"},{"path":"pages/static/cancelDeletionDirAdmin/04_showLoginCodeAndFinish/start.ls","text":"(function(){\n  return function(loginCode){\n    return startPage({\n      path: path(\"page\"),\n      animation: \"slideLeft\",\n      params: {\n        loginCode: loginCode\n      }\n    });\n  };\n})();","updated":"2021-04-23T13:12:57.671968"},{"path":"lib/gui/audioSpectralMeter/audioSpectralMeter.ls","text":"(function(){\n  return function(o){\n    var reset, update, div, fftDiv;\n    o == null && (o = {});\n    o.color == null && (o.color = Color.green[500]);\n    reset = function(){\n      var fftChildren, i$, len$, i, div, results$ = [];\n      fftChildren = fftDiv.childrenAll();\n      for (i$ = 0, len$ = fftChildren.length; i$ < len$; ++i$) {\n        i = i$;\n        div = fftChildren[i$];\n        results$.push(div.animation({\n          css: {\n            height: \"0%\"\n          }\n        }));\n      }\n      return results$;\n    };\n    update = function(analyserData){\n      var fft, width;\n      fft = analyserData != null ? analyserData.fft : void 8;\n      if (!fft) {\n        return;\n      }\n      width = 100 / fft.length * 2;\n      return fftDiv.empty().append((function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = fft).length; i$ < len$; ++i$) {\n          results$.push((fn$.call(this, i$, ref$[i$])));\n        }\n        return results$;\n        function fn$(i, vol){\n          var height, left;\n          if (i > 6) {\n            return [];\n          }\n          height = Math.round(vol * 100);\n          left = i * 14 + 2.5;\n          return Div().css({\n            position: \"absolute\",\n            width: \"9.5%\",\n            height: height + \"%\",\n            left: left + \"%\",\n            bottom: 0,\n            backgroundColor: o.color,\n            borderRadius: \"999px\"\n          });\n        }\n      }.call(this)));\n    };\n    div = Div().append(Div().css({\n      position: \"absolute\",\n      width: \"100%\",\n      height: \"100%\"\n    }), fftDiv = Div().css({\n      position: \"absolute\",\n      width: \"100%\",\n      height: \"100%\",\n      bottom: \"15%\",\n      left: 0,\n      overflow: \"hidden\"\n    }));\n    div.update = update;\n    div.reset = reset;\n    return div;\n  };\n})();","updated":"2021-04-23T13:12:57.671968"},{"path":"pages/static/cancelDeletionDirAdmin/04_showLoginCodeAndFinish/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"../00_shared/topbar/topbar\")();\n      },\n      start: function(){\n        var onPageFinished, loginCode;\n        onPageFinished = function(){\n          var finishFunctionPath;\n          finishFunctionPath = inc(\"/lib/util/cache/get/get\")(\"finishFunctionPath\");\n          return inc(finishFunctionPath)();\n        };\n        loginCode = page.params.loginCode;\n        if (loginCode == null) {\n          onPageFinished();\n          return;\n        }\n        return page.append(Div({\n          margin: \"0 auto\",\n          width: \"30em\",\n          maxWidth: \"90%\"\n        }).append(Div({\n          marginBottom: \"1em\",\n          lineHeight: \"1.5em\"\n        }).html(T(\"text\")), Div({\n          fontSize: \"1.3em\"\n        }).html(T(\"loginCode\"), Span().css({\n          userSelect: \"text\",\n          marginLeft: \"0.2em\"\n        }).html(loginCode.toLowerCase())), inc(\"buttonPrint/button\")(loginCode), inc(\"buttonDone/button\")(onPageFinished)));\n      }\n    };\n  };\n})();","updated":"2021-11-16T15:05:26.508539"},{"path":"pages/static/cancelDeletionDirAdmin/04_cancelDeletion/start.ls","text":"(function(){\n  return function(){\n    if (!log.findLast(\"markForDelete\")) {\n      inc(\"../04_showLoginCodeAndFinish/start\")();\n      return;\n    }\n    return startPage({\n      path: path(\"page\"),\n      animation: \"slideLeft\"\n    });\n  };\n})();","updated":"2021-04-23T13:12:57.671968"},{"path":"lib/gui/drawerMenu/wrapper/wrapper.ls","text":"(function(){\n  return function(o){\n    var div;\n    div = Div().tap({\n      animation: \"none\"\n    }).css({\n      position: \"absolute\",\n      left: 0,\n      top: 0,\n      bottom: 0,\n      width: o.width,\n      backgroundColor: Color.grey[75],\n      boxShadow: \"2px 2px 2px rgba(0,0,0,0.1)\",\n      transform: \"translateX(-\" + o.width + \")\",\n      overflow: \"hidden\",\n      cursor: \"default\"\n    }).appendTo(o.background);\n    return o.wrapper = div;\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"lib/gui/drawerMenu/show/show.ls","text":"(function(){\n  return function(o){\n    var ref$, div;\n    inc(\"/lib/util/freezeIOSScrollDivs/disable/disable\")();\n    if ((ref$ = app.lastInput) != null) {\n      ref$.stop();\n    }\n    div = inc(\"../menuDiv/menuDiv\")().appendTo(o.wrapper).css({\n      transform: \"translateX(0)\"\n    });\n    div.append(typeof o.header == 'function' ? o.header(o) : void 8, o.menuRows = inc(\"../menuRows/rows\")(o), inc(\"../searchResult/searchResult\")(o));\n    if (typeof o.onOpen == 'function') {\n      o.onOpen();\n    }\n    return inc(\"../move/move\")(o.wrapper, 0);\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"data/content/setCurrentPlan/set.ls","text":"(function(){\n  return function(planPath){\n    var e, planHistory;\n    if (!window.log) {\n      return;\n    }\n    planPath == null && (planPath = inc(\"/data/content/calcCurrentPlan/calc\")());\n    e = log.findLast(\"setCurrentPlan\");\n    if (planPath === (e != null ? e.plan : void 8)) {\n      return;\n    }\n    planHistory = inc(\"calcPlanHistory/calc\")(planPath, e);\n    return log.log({\n      event: \"setCurrentPlan\",\n      plan: planPath,\n      planHistory: planHistory\n    });\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"lib/gui/drawerMenu/background/background.ls","text":"(function(){\n  return function(o){\n    var tap, div;\n    tap = function(){\n      return o.close({\n        move: true\n      });\n    };\n    div = Div().addClass(\"mainMenu keyManagerScope\").tap({\n      down: tap,\n      animation: \"none\"\n    }).css({\n      position: \"fixed\",\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0,\n      backgroundColor: \"rgba(255, 255, 255, 0.6)\",\n      cursor: \"default\"\n    }).appendTo(body);\n    div.o = o;\n    return o.background = div;\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"data/content/calcCurrentPlan/calcFallbackPlan/calc.ls","text":"(function(){\n  return function(){\n    return twitch({\n      de: \"/../c-mat-1/plan\",\n      en_us: \"/../c-mat-k-us/plan\",\n      en_gb: \"/../c-mat-1-gb/plan\",\n      fr: \"/../c-mat-1-fr/plan\",\n      es: \"/../c-mat-1-es/plan\",\n      pt: \"/../c-mat-1-pt/plan\"\n    });\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"data/content/calcCurrentPlan/calcFromLastLevelFinish/calc.ls","text":"(function(){\n  return function(plans){\n    var e, project, ref$, plan;\n    try {\n      e = log.findLast(\"finishLevel\");\n      project = (ref$ = e.puid) != null ? ref$.split(\"/\")[0] : void 8;\n      plan = _.find(plans, {\n        project: project\n      });\n      return plan.planPath;\n    } catch (e$) {}\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"data/content/setCurrentPlan/calcPlanHistory/calc.ls","text":"(function(){\n  return function(planPath, e){\n    var h;\n    h = (e != null ? e.planHistory : void 8) || [];\n    h = _.without(h, planPath);\n    h.push(planPath);\n    while (h.length > 3) {\n      h.shift();\n    }\n    return h;\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"lib/gui/drawerMenu/scrollPosition/_key/key.ls","text":"(function(){\n  return function(o){\n    return \"drawerMenuScrollPosition_\" + o.context;\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"lib/gui/drawerMenu/scrollPosition/save/save.ls","text":"(function(){\n  return function(o){\n    var pos;\n    if (o.itemsFolder) {\n      return;\n    }\n    pos = o.menuRows.scrollTop;\n    return inc(\"/lib/util/cache/set/set\")(inc(\"../_key/key\")(o), pos);\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"lib/gui/drawerMenu/scrollPosition/scrollToLast/scrollTo.ls","text":"(function(){\n  return function(o){\n    var pos;\n    pos = inc(\"/lib/util/cache/get/get\")(inc(\"../_key/key\")(o));\n    if (pos) {\n      return o.menuRows.scrollTop = pos;\n    }\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"addons/topbarLevel/feedbackIcon/02_popupChoices/buttons/buttons.ls","text":"(function(){\n  return function(onClick){\n    var isBannedFromLevelFeedback, ref$, css, buttons;\n    isBannedFromLevelFeedback = (typeof log != 'undefined' && log !== null ? (ref$ = log.findLast(\"isBannedFromLevelFeedback\")) != null ? ref$.value : void 8 : void 8) === true;\n    css = {\n      display: \"block\"\n    };\n    buttons = [\n      inc(\"../../00_shared/button/button\")(T(\"tooHard\"), function(){\n        return onClick(\"too-hard\");\n      }).css(css), inc(\"../../00_shared/button/button\")(T(\"tooEasy\"), function(){\n        return onClick(\"too-easy\");\n      }).css(css), inc(\"../../00_shared/button/button\")(T(\"noSound\"), function(){\n        return onClick(\"no-sound\");\n      }).css(css), !isBannedFromLevelFeedback ? inc(\"../../00_shared/button/button\")(T(\"hasMistake\"), function(){\n        return onClick(\"has-mistake\");\n      }).css(css) : void 8\n    ];\n    return buttons = _.compact(buttons);\n  };\n})();","updated":"2022-03-30T16:03:19.738945"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/popup.ls","text":"(function(){\n  return function(o){\n    var div, popup;\n    div = Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      alignItems: \"stretch\"\n    }).append(inc(\"header/header\")(o), inc(\"rows/rows\")(o), inc(\"button/button\")(o));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: o.onClose,\n      animationOnShow: o.animationOnShow,\n      animationDisableBackground: true\n    }).css({\n      opacity: 0\n    });\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"lib/init/subscribeDeviceAndUserLogs/migrateUserAuthTokens/log/log.ls","text":"(function(){\n  return function(users){\n    var usersInvalid;\n    usersInvalid = _.filter(users, function(u){\n      return _.startsWith(u.t, \"T-invalid\");\n    });\n    return helpers.postEvent(Store(\"deviceLogId\"), {\n      event: \"deviceDebugMigrateUserAuthTokens\",\n      total: users.length,\n      totalInvalid: usersInvalid.length,\n      invalid: usersInvalid\n    });\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/rows/rowUser/avatar/avatar.ls","text":"(function(){\n  return function(score){\n    return Div({\n      flex: \"0 0 auto\",\n      width: \"2em\",\n      height: \"2em\"\n    }).onScopeRender(function(){\n      var avatar;\n      this.append(avatar = inc(\"/lib/gui/avatar/avatar\")(score.avatar, \"portrait\").css({\n        width: \"2em\",\n        height: \"2em\"\n      }));\n      if (avatar.zoom) {\n        return this.parent().tap(avatar.zoom);\n      }\n    });\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"lib/init/logDeviceStartEvents/setUseAuthToken/log.ls","text":"(function(){\n  return function(){\n    var u, e;\n    u = Store(\"useAuthToken\");\n    e = deviceLog.findLast(\"deviceSetUseAuthToken\");\n    if (u != null && u !== (e != null ? e.value : void 8)) {\n      return deviceLog.log({\n        event: \"deviceSetUseAuthToken\",\n        value: u\n      });\n    }\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"lib/init/logDeviceStartEvents/setUserLogIds/log.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/util/storedUsers/logIfChanged/log\")();\n  };\n})();","updated":"2021-05-26T08:45:05.095407"},{"path":"lib/util/storedUsersUseAuthToken/users/users.ls","text":"(function(){\n  return function(){\n    var users, users2;\n    users = Store(\"users\");\n    if (!_.isArray(users)) {\n      Store(\"users\", []);\n      users = [];\n    }\n    users2 = _.compact(_.uniqBy(users, \"l\"));\n    if (users.length !== users2.length) {\n      users = users2;\n      Store(\"users\", users);\n    }\n    return users;\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"lib/gui/screenKeyboard/createKeys/keys/mathKeys/cornerChar/cornerChar.ls","text":"(function(){\n  return function(h, o){\n    var r;\n    r = o.rowHeight.replace(\"em\", \"\");\n    return Div().css({\n      position: \"absolute\",\n      top: \"0.15em\",\n      right: \"0.4em\",\n      color: Color.grey[450],\n      fontSize: r < 3.1\n        ? \"0.6em\"\n        : r < 3.5 ? \"0.7em\" : \"0.8em\"\n    }).html(_.isFunction(h) ? h(Color.grey[400]) : h);\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"lib/util/serverUrl/serverUrl.ls","text":"(function(){\n  return function(name){\n    var serverUrls;\n    serverUrls = {\n      apis2: \"https://apis-2.anton.app\",\n      apis2Debug: \"https://apis-2-debug.solocode.com\",\n      payment: \"https://apis-payment.anton.app\",\n      files: \"https://files.anton.app\",\n      images: \"https://images.solocode.com\",\n      sounds: \"https://sounds.solocode.com\",\n      svgs: \"https://svgs.solocode.com\",\n      imagesCdn: \"https://images.anton.app\",\n      soundsCdn: \"https://sounds.anton.app\"\n    };\n    return serverUrls[name] || name;\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"pages/games/00_shared/pixiGame/basePage/closeConfirmationPopup/popup.ls","text":"(function(){\n  return function(pixiApp){\n    var div, popup;\n    div = Div({\n      width: \"20em\",\n      margin: \"1em 0\"\n    }).append(Div().html(T(\"reallyCloseGame\")).css({\n      margin: \"0 0.5em 0.5em 0.5em\"\n    }), Button({\n      label: T(\"no\"),\n      type: \"secondary\",\n      action: function(){\n        return popup.close();\n      }\n    }).css({\n      textAlign: \"center\",\n      width: \"5.5em\",\n      margin: \"0.5em\"\n    }), Button({\n      label: T(\"close\"),\n      action: function(){\n        if (pixiApp != null) {\n          pixiApp.sendDebugGameEvent(\"gameClosed\", {\n            type: \"topBar\"\n          });\n        }\n        popup.close();\n        return startPage({\n          path: path(\"../../../../04_gameEnd/page\"),\n          replace: true,\n          animation: \"fadeIn\",\n          params: app.currentPage.params\n        });\n      }\n    }).css({\n      textAlign: \"center\",\n      width: \"5.5em\",\n      margin: \"0.5em\"\n    }));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(){\n        var ref$;\n        return pixiApp != null ? (ref$ = pixiApp.sceneManager) != null ? ref$.resume() : void 8 : void 8;\n      }\n    });\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupError/result/result.ls","text":"(function(){\n  return function(o){\n    var score;\n    if (o.lastUserScore != null) {\n      score = inc(\"../../calc/formattedScore/calc\")(o.lastUserScore, o.highscoreType);\n    }\n    return Div({\n      fontSize: \"1.2em\",\n      margin: \"0.3em 0 1.5em\"\n    }).html(score != null\n      ? o.showLastUserScore\n        ? T(\"yourScore\", score)\n        : T(\"lastResult\", score)\n      : T(\"noScoreYet\"));\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/games/02_gameDetails/difficulties/row/popupNoCoins/popup.ls","text":"(function(){\n  return function(){\n    var html, popup;\n    html = Div({\n      margin: \"1em\"\n    }).html(Div({\n      height: \"6em\",\n      width: \"6em\",\n      margin: \"0 auto\",\n      marginBottom: \"1em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/illustration/coin.svg\"),\n      height: \"6em\",\n      width: \"6em\"\n    }).css({\n      position: \"absolute\",\n      top: 0,\n      left: 0\n    }), SvgIcon({\n      svg: path(\"/lib/svg/shape/cross.svg\"),\n      color: Color.red[500],\n      height: \"4em\",\n      width: \"4em\"\n    }).css({\n      position: \"absolute\",\n      top: \"1em\",\n      left: \"1em\"\n    })), T(\"noCoinsLeft\"), T(\"learnThenPlay\"), \"<br>\", Button().css({\n      width: \"6em\",\n      marginTop: \"1em\"\n    }).html(T(\"ok\")).tap(function(){\n      return popup.close();\n    }));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: html\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/start/login/01_step1/submit/debugLoginOfflineProblems/debug.ls","text":"(function(){\n  return function(loginStartedAt){\n    var onOfflineDuration, results, ping, pingAntonApp, onDone;\n    onOfflineDuration = new Date() - loginStartedAt;\n    debug(\"Login failed with offline message even though you're online, please tell the devs\");\n    results = {};\n    ping = function(url, key, pingDone){\n      var startedAt;\n      startedAt = new Date();\n      return helpers.httpRequest.get(url, null, function(error, data){\n        results[key] = {\n          error: error,\n          data: data,\n          duration: new Date() - startedAt\n        };\n        return pingDone();\n      });\n    };\n    pingAntonApp = function(){\n      return ping(\"https://anton.app/ping\", \"pingAntonApp\", onDone);\n    };\n    onDone = function(){\n      return helpers.postEvent(Store('deviceLogId'), {\n        event: 'deviceDebugLoginOfflineProblem',\n        pingResults: results,\n        onOfflineDuration: onOfflineDuration\n      });\n    };\n    return pingAntonApp();\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/start/login/relogin/01_choose/page.ls","text":"(function(){\n  return function(page){\n    page.logId = page.params.logId;\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        return page.css({\n          maxWidth: \"90%\",\n          width: \"35em\",\n          margin: \"0 auto\"\n        }).html(inc(\"title/title\")(), inc(\"buttons/buttons\")(page), inc(\"linkRemove/link\")(page));\n      }\n    };\n  };\n})();","updated":"2021-04-30T13:57:22.867401"},{"path":"pages/static/terms/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var onPrint;\n    onPrint = function(){\n      var printPage;\n      printPage = inc(\"../div/div\")({\n        isExpanded: true,\n        showLogo: true\n      }).css({\n        fontFamily: \"sans-serif\"\n      });\n      return inc(\"/lib/util/print/print\")({\n        div: printPage,\n        title: T(\"termsOfService\")\n      });\n    };\n    return inc(\"../../_shared/topbarDeeplink/topbar\")(page, T(\"termsOfService\"), onPrint);\n  };\n})();","updated":"2022-01-17T10:28:11.933432"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/sendFeedback/send.ls","text":"(function(){\n  return function(o){\n    var e, that;\n    e = {\n      event: \"debugSendGameFeedback\",\n      gameId: o.gameId,\n      width: body.width(),\n      height: body.height(),\n      appType: inc(\"/lib/util/calcAppType/calc\")()\n    };\n    if (that = o.rating) {\n      e.rating = that;\n    }\n    if (that = o.text) {\n      e.text = that;\n    }\n    if (engine.isDebug) {\n      e.isDebug = true;\n    }\n    return log.log(e);\n  };\n})();","updated":"2023-01-04T17:05:57.850901"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/input/input.ls","text":"(function(){\n  return function(send){\n    var input;\n    return input = inc(\"/lib/gui/inputEditable/input\")({\n      multiline: true,\n      lineHeight: \"1.5em\",\n      linePadding: \"0 0.3em\",\n      maxLength: 500\n    }).css({\n      margin: \"0.5em auto\",\n      height: \"5em\",\n      width: \"95%\"\n    });\n  };\n})();","updated":"2023-01-04T17:05:57.850901"},{"path":"lib/gui/rating/thumbs/thumbs.ls","text":"(function(){\n  return function(up, down, small){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\"\n    }).html(Div({\n      display: \"inline-flex\"\n    }).html(Div({\n      color: Color.grey[500],\n      marginRight: \"0.4em\",\n      fontSize: small ? \"0.9em\" : void 8\n    }).html(T(\"like\")), inc(\"button/button\")(\"up\", up, small), inc(\"button/button\")(\"down\", down, small)));\n  };\n})();","updated":"2023-01-04T17:05:57.850901"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/errorLabel/label.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"inline-block\",\n      color: Color.red[700]\n    }).html(T(\"selectEmojiOrWrite\")).hide();\n  };\n})();","updated":"2023-01-04T17:05:57.850901"},{"path":"lib/gui/rating/popup/popup.ls","text":"(function(){\n  return function(value, done){\n    var div, input, okButton, popup;\n    div = Div({\n      margin: \"1em\"\n    }).html(Div({\n      paddingBottom: \"0.5em\"\n    }).html(T(\"didntLike\")), input = inc(\"/lib/gui/inputEditable/input\")({\n      multiline: true,\n      lineHeight: \"1.5em\",\n      linePadding: \"0 0.3em\",\n      maxLength: 500\n    }).css({\n      margin: \"0.5em auto\",\n      height: \"5em\",\n      width: \"95%\"\n    }), okButton = Button(T(\"send\")).css({\n      marginTop: \"1em\"\n    }).tap(function(){\n      return popup.close();\n    }));\n    requestAnimationFrame(function(){\n      return input.start();\n    });\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(type){\n        input.stop();\n        return done(input.getValue());\n      }\n    });\n  };\n})();","updated":"2023-01-04T17:05:57.850901"},{"path":"lib/gui/rating/rating.ls","text":"(function(){\n  var completed;\n  completed = inc(\"completed/completed\");\n  return function(event, ratingId, small){\n    var e, finish, up, down, div;\n    e = ratingId\n      ? log.findLast({\n        event: event,\n        ratingId: ratingId\n      })\n      : log.findLast({\n        event: event\n      });\n    if (e) {\n      return completed(e.value, small);\n    }\n    finish = function(value){\n      return div.replaceWith(completed(value, small));\n    };\n    up = function(){\n      log.log({\n        event: event,\n        ratingId: ratingId,\n        value: \"good\"\n      });\n      return finish();\n    };\n    down = function(){\n      return inc(\"popup/popup\")(event, function(message){\n        log.log({\n          event: event,\n          ratingId: ratingId,\n          value: \"bad\",\n          message: message\n        });\n        return finish();\n      });\n    };\n    div = inc(\"thumbs/thumbs\")(up, down, small);\n    return div;\n  };\n})();","updated":"2023-01-04T17:05:57.850901"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/button/button.ls","text":"(function(){\n  return function(send){\n    return Div({\n      margin: \"1em 0 0.4em\"\n    }).html(Button(T(\"send\")).tap(send));\n  };\n})();","updated":"2023-01-04T17:05:57.850901"},{"path":"lib/gui/input2/addChar/char/char.ls","text":"(function(){\n  return function(o, value){\n    var html, getValue, select, unselect, div;\n    html = o.textMode === \"password\" && !o.showPassword\n      ? inc(\"htmlPassword/html\")(value, o)\n      : inc(\"htmlNormal/html\")(value);\n    getValue = function(){\n      return value;\n    };\n    select = function(){\n      o.cursor.stop();\n      return div.addClass(\"select\").css({\n        backgroundColor: Color.grey[300]\n      });\n    };\n    unselect = function(){\n      return div.removeClass(\"select\").css({\n        backgroundColor: \"\"\n      });\n    };\n    div = Div().addClass(\"inputChar\").css({\n      display: value === \"<br>\" ? \"inline\" : \"inline-block\"\n    }).html(html);\n    div.getValue = getValue;\n    div.select = select;\n    div.unselect = unselect;\n    return div;\n  };\n})();","updated":"2022-02-28T14:52:59.373711"},{"path":"pages/start/login/01_step1/form/form.ls","text":"(function(){\n  return function(page){\n    return page.form = inc(\"/lib/gui/inputForm/inputForm\")({\n      label: T(\"enterCode\"),\n      submitLabel: T(\"continueButton\"),\n      submit: page.submit,\n      isPassword: true,\n      showPassword: true,\n      cancel: false,\n      screenKeyboardLayout: twitch({\n        de: \"login\",\n        en: \"loginEN\",\n        fr: \"loginFR\",\n        es: \"loginES\",\n        pt: \"loginPT\"\n      })\n    }).css({\n      display: \"inline-block\",\n      width: \"100%\",\n      maxWidth: \"18em\"\n    });\n  };\n})();","updated":"2022-02-28T14:52:59.373711"},{"path":"data/school/calcSchoolCodes/calc.ls","text":"(function(){\n  return function(userLog){\n    var events, schoolCodes;\n    userLog == null && (userLog = log);\n    events = (userLog != null ? userLog.list(\"isSchoolMember\") : void 8) || [];\n    schoolCodes = _.uniq(_.map(events, \"schoolCode\"));\n    return schoolCodes;\n  };\n})();","updated":"2022-11-22T09:01:18.445888"},{"path":"data/user/calcCurrentSurveys/calc.ls","text":"(function(){\n  return function(){\n    var i$, ref$, len$, survey, results$ = [];\n    for (i$ = 0, len$ = (ref$ = inc(\"_getCurrentSurveys/get\")()).length; i$ < len$; ++i$) {\n      survey = ref$[i$];\n      if (!inc(\"isInvited/\" + survey.surveyId + \"/is\")()) {\n        continue;\n      }\n      if (!inc(\"isPending/is\")(survey)) {\n        continue;\n      }\n      results$.push(survey);\n    }\n    return results$;\n  };\n})();","updated":"2026-03-27T15:01:58.734204"},{"path":"data/user/calcCurrentSurveys/isInvited/2026-03-30-groupAndPinUsage/is.ls","text":"(function(){\n  return function(){\n    var isDirTeacher, isTeacher;\n    if (engine.guiLanguage !== \"de\") {\n      return false;\n    }\n    isDirTeacher = inc(\"/data/user/calcUserDescription/isDirTeacher/calc\")();\n    if (isDirTeacher) {\n      return false;\n    }\n    isTeacher = inc(\"/data/user/isTeacher/get\")();\n    if (!isTeacher) {\n      return false;\n    }\n    return true;\n  };\n})();","updated":"2026-03-27T15:01:58.734204"},{"path":"data/user/calcCurrentSurveys/isPending/is.ls","text":"(function(){\n  return function(survey){\n    var today;\n    today = new Date();\n    if (new Date(survey.startDate) > today) {\n      return false;\n    }\n    if (new Date(survey.endDate) < today) {\n      return false;\n    }\n    if (log.findLast(\"surveySkipped_\" + survey.surveyId)) {\n      return false;\n    }\n    if (log.findLast(\"surveyCompleted_\" + survey.surveyId)) {\n      return false;\n    }\n    return true;\n  };\n})();","updated":"2026-03-27T15:01:58.734204"},{"path":"pages/support/help/chat/calcMessages/calc.ls","text":"(function(){\n  return function(page){\n    var events, messages;\n    events = log.list({\n      event: \"supportChat\"\n    });\n    events = _.filterLastInGroup(events, \"messageAt\");\n    events = _.orderBy(events, \"messageAt\", \"asc\");\n    return messages = _.concat(inc(\"introMessage/introMessage\")(page), events);\n  };\n})();","updated":"2021-06-29T13:42:12.667865"},{"path":"pages/support/help/chat/calcMessages/introMessage/introMessage.ls","text":"(function(){\n  return function(page){\n    var now, message;\n    now = inc(\"/lib/util/formatDate2/format\")();\n    message = T(\"welcomeToHelpChat\", page.userDescription.displayName) + (now.specialDays.isChristmasDays || now.specialDays.isNewYear\n      ? T(\"christmasDaysDelay\")\n      : T(\"introMessage\"));\n    return {\n      from: \"support\",\n      readAt: new Date(),\n      message: message\n    };\n  };\n})();","updated":"2021-06-29T13:42:12.667865"},{"path":"lib/util/copyToClipboard/copy.ls","text":"(function(){\n  return function(s){\n    var element, selected;\n    element = document.createElement(\"textarea\");\n    element.value = s;\n    element.setAttribute(\"readonly\", \"\");\n    element.style.position = \"absolute\";\n    element.style.left = \"-9999px\";\n    document.body.appendChild(element);\n    selected = document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;\n    element.select();\n    document.execCommand('copy');\n    document.body.removeChild(element);\n    if (selected) {\n      document.getSelection().removeAllRanges();\n      return document.getSelection().addRange(selected);\n    }\n  };\n})();","updated":"2021-05-17T13:03:44.842719"},{"path":"lib/util/pllsCall/logDebugEvent/log.ls","text":"(function(){\n  return function(o){\n    return function(message, additionalData){\n      var l;\n      l = log || deviceLog;\n      return l != null ? l.log({\n        event: \"debugPllsCall\",\n        message: message,\n        duration: new Date() - o.startedAt,\n        appType: inc(\"/lib/util/calcAppType/calc\")(),\n        payload: {\n          path: o.params.path,\n          url: o.url,\n          network: engine.networkConnection.type,\n          navigatorOnline: navigator.onLine,\n          additionalData: additionalData\n        }\n      }) : void 8;\n    };\n  };\n})();","updated":"2021-07-29T10:53:02.183061"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/notFound/_t.ls","text":"(function(){\n  return {\n    contentFeedbackButtonLabel: {\n      de: \"Hast du einen Themenwunsch?\",\n      en: \"Is there a topic<br>you'd like to request?\",\n      fr: \"Veux-tu qu'on ajoute un thème&nbsp;?\",\n      es: \"¿Te gustaría<br>que agregáramos algún tema?\",\n      pt: \"Você gostaria<br>de escolher um tema?\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"pages/start/startUser/02_subscribeUserLog/checkAndSyncLog/checkAndSyncLog.ls","text":"(function(){\n  return function(o, userLog, callback){\n    var logOk, syncLog;\n    logOk = function(userLog){\n      return userLog.findLast(\"setPublicId\") != null;\n    };\n    syncLog = function(userLog){\n      return userLog.sync(function(error){\n        if (!logOk(userLog) || error) {\n          return inc(\"showErrorPage/show\")(userLog, error, o);\n        } else {\n          return callback();\n        }\n      });\n    };\n    window.log = userLog;\n    if (logOk(userLog)) {\n      return callback();\n    } else {\n      return syncLog(userLog);\n    }\n  };\n})();","updated":"2021-07-15T10:32:11.610601"},{"path":"pages/start/startUser/03_subscribeGroupsAndSchools/onDone/onDone.ls","text":"(function(){\n  return function(o, callback){\n    return function(error){\n      var params;\n      if (error && !o.errorShown) {\n        inc(\"../../00_shared/logSubscribeError/log\")(error);\n        o.errorShown = true;\n        params = _.omit(o, [\"page\", \"progressBar\"]);\n        params.error = {\n          error: error.error,\n          log: error.log.id()\n        };\n        startPage({\n          path: path(\"../../00_shared/errorPage/page\"),\n          params: params,\n          replace: true\n        });\n        return;\n      }\n      o.totalGroupAndSchoolDone++;\n      o.progressBar.update(o.totalGroupAndSchool, o.totalGroupAndSchoolDone);\n      if (o.totalGroupAndSchoolDone === o.totalGroupAndSchool) {\n        return setTimeout(function(){\n          if (o.page === app.currentPage) {\n            return callback();\n          }\n        }, 100);\n      }\n    };\n  };\n})();","updated":"2021-07-05T10:49:41.118208"},{"path":"pages/static/antonPlus/0_stopDownloadPopup/logPromo/log.ls","text":"(function(){\n  return function(){\n    var a;\n    a = app.currentPagePath.split(\"/\").reverse();\n    return inc(\"/lib/util/logPromo/log\")({\n      event: \"promoPlus_popupStopDownload\",\n      isReferrer: true,\n      page: a[2] + \"/\" + a[1]\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/list/listElement/listElement.ls","text":"(function(){\n  return function(p){\n    return Div().css({\n      display: \"flex\",\n      alignItems: \"flex-start\",\n      paddingBottom: \"0.7em\",\n      marginLeft: \"-0.1em\"\n    }).append(inc(\"icon/icon\")(p.icon).css({\n      flex: \"0 0 1.7em\"\n    }), inc(\"text/text\")(p.text));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/3_thanks/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      title: page.productName\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/3_thanks/logPromo/log.ls","text":"(function(){\n  return function(page){\n    return inc(\"/lib/util/logPromo/log\")({\n      event: \"promoPlus_thanks\",\n      sku: page.params.sku\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/newsletter/_shared/calcPublicId/calc.ls","text":"(function(){\n  return function(page){\n    var pageUrl, publicId;\n    pageUrl = inc(\"/lib/util/browser/getPageUrl/get\")();\n    publicId = page.params.publicId || pageUrl.split(\"/\")[1] || inc(\"/lib/util/browser/getPageUrlParam/get\")(\"publicId\");\n    inc(\"/lib/util/browser/removePageUrlParam/remove\")(\"publicId\");\n    return publicId;\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/unknownUrl/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: inc(\"/lib/util/browser/getPageUrl/get\")(),\n      title: T(\"unknownPage\"),\n      metaDescription: \"\",\n      noIndex: true,\n      responseStatusCode: 404\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/misc/_shared/confirmAge16AndPrivacy/confirm.ls","text":"(function(){\n  return function(onOk){\n    var confirmAge16, acceptPrivacy1, acceptPrivacy2, finish;\n    confirmAge16 = function(){\n      return inc(\"/lib/gui/parentalGate/parentalGate\")(acceptPrivacy1, {\n        forceShow: true\n      });\n    };\n    acceptPrivacy1 = function(){\n      var ref$;\n      if (((ref$ = log.findLast(\"setAcceptPrivacy\")) != null && ref$.value) && engine.isDebug !== true) {\n        return finish();\n      } else {\n        return inc(\"popups/privacy1/popup\")(acceptPrivacy2);\n      }\n    };\n    acceptPrivacy2 = function(){\n      return inc(\"popups/privacy2/popup\")(finish);\n    };\n    finish = function(){\n      return onOk();\n    };\n    return confirmAge16();\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/misc/phoneNumber/edit/onOffline/onOffline.ls","text":"(function(){\n  return function(page){\n    return function(){\n      page.form.hideSpinner();\n      page.form.input.start();\n      return inc(\"/lib/offline/offlinePopup/popup\")();\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/misc/phoneNumber/show/_topbar/topbar.ls","text":"(function(){\n  return function(){\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      backLabel: T(\"settings\"),\n      title: T(\"phoneNumber\")\n    });\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/start/startUser/07_extraPages/cancelDeletion/00_shared/topbar/topbar.ls","text":"(function(){\n  return function(){\n    return inc(\"/addons/topbarWhiteBack/topbar\")({\n      back: function(){\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      }\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/start/startUser/07_extraPages/cancelDeletion/page/avatar/avatar.ls","text":"(function(){\n  return function(d){\n    return inc(\"/lib/gui/avatar/avatar\")(d, \"half\").css({\n      width: \"8em\",\n      height: \"8em\",\n      borderRadius: \"999px\"\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/start/startUser/07_extraPages/cancelDeletion/00_shared/cancel/cancel.ls","text":"(function(){\n  return function(onCompleted, onError){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/user/markForDelete/mark\"),\n      params: {\n        mark: false\n      },\n      onCompleted: function(){\n        return log.sync(function(){\n          return inc(\"/lib/gui/infoPopup/popup\")({\n            label: T(\"deletionCancelledText\"),\n            buttonLabel: T(\"continue\"),\n            onClose: onCompleted\n          });\n        });\n      },\n      onError: function(error){\n        inc(\"/lib/gui/errorPopup/popup\")();\n        return onError();\n      },\n      onOffline: function(){\n        inc(\"/lib/offline/offlinePopup/popup\")();\n        return onError();\n      }\n    });\n  };\n})();","updated":"2021-07-29T10:53:02.183061"},{"path":"pages/static/antonPlus/0_stopDownloadPopup/popup.ls","text":"(function(){\n  return function(){\n    var div;\n    inc(\"logPromo/log\")();\n    div = Div().css({\n      padding: \"1em\"\n    }).html(inc(\"icon/icon\")(), inc(\"text/text\")(), inc(\"button/button\")());\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(type){\n        if (type === \"outside\" || type === \"icon\") {\n          return inc(\"/lib/util/logPromo/log\")({\n            event: \"promoPlus_popupStopDownload_close\"\n          });\n        }\n      }\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/_shared/section/header/header.ls","text":"(function(){\n  return function(o, toggle){\n    return Div({\n      display: \"flex\",\n      padding: \"0.7em 0\",\n      alignItems: \"flex-start\"\n    }).html(inc(\"arrowIcon/icon\")(o), inc(\"text/text\")(o)).tap(o.toggle);\n  };\n})();","updated":"2023-06-26T10:04:37.588485"},{"path":"pages/static/antonPlus/1_products/calcActiveProduct/calc.ls","text":"(function(){\n  return function(page){\n    var d, name, e, date, activeProduct;\n    d = page.userDescription;\n    name = d.isPlusTeacher\n      ? \"plusTeacher\"\n      : d.isPlusFamily\n        ? \"plusFamily\"\n        : d.isPlus ? \"plus\" : void 8;\n    if (!name) {\n      return {};\n    }\n    e = log.findLast({\n      event: \"setProduct\",\n      productName: name\n    });\n    date = inc(\"/lib/util/formatDate2/format\")(e != null ? e.validUntil : void 8);\n    return activeProduct = {\n      name: name,\n      validUntil: date != null ? date.formats.dateShort : void 8\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/calcProducts/calc.ls","text":"(function(){\n  return function(){\n    var products, plus, plusFamily, plusTeacher, getProducts, problem, ref$, i$, ref1$, len$, p, storeData, fallbackPrice, c;\n    getProducts = function(storeIdentifier){\n      var products;\n      products = inc(\"/lib/init/setupAppstore/products/products\")(storeIdentifier);\n      plus = _.find(products, {\n        alias: \"plus.12months.sub4\"\n      });\n      plusFamily = _.find(products, {\n        alias: \"plusFamily.12months.sub1\"\n      });\n      return plusTeacher = _.find(products, {\n        alias: \"plusTeacher.12months.sub1\"\n      });\n    };\n    getProducts();\n    if (engine.isAmazonDevice && window.amazonStore == null) {\n      problem = \"isAmazonDevice\";\n    } else if (engine.isMobileApp && !engine.isAmazonDevice && (typeof store != 'undefined' && store !== null ? store.CONSUMABLE : void 8) == null) {\n      problem = \"noStorePlugin\";\n    } else if (engine.isAmazonDevice && !amazonStore.ready()) {\n      problem = \"storeNotReady\";\n    } else if (engine.isMobileApp && !engine.isAmazonDevice && !store.ready()) {\n      if (((ref$ = window.device) != null ? ref$.manufacturer : void 8) === \"HUAWEI\") {\n        getProducts(\"paypal\");\n      } else {\n        problem = \"storeNotReady\";\n      }\n    } else if (engine.isMobileApp) {\n      if (engine.isAmazonDevice && window.amazonStore != null) {\n        for (i$ = 0, len$ = (ref1$ = _.compact([plus, plusFamily, plusTeacher])).length; i$ < len$; ++i$) {\n          p = ref1$[i$];\n          storeData = amazonStore.get(p.sku);\n          if (storeData) {\n            p.price = storeData.price;\n            p.title = storeData.title;\n            p.description = storeData.description;\n          }\n        }\n      } else {\n        plus = store.get(plus.alias);\n        plusFamily = store.get(plusFamily.alias);\n        plusTeacher = store.get(plusTeacher.alias);\n      }\n    }\n    if (problem == null && (!(plus != null && plus.price) || !(plusFamily != null && plusFamily.price) || !(plusTeacher != null && plusTeacher.price))) {\n      problem = \"productsMissing\";\n    }\n    if (problem) {\n      fallbackPrice = function(price){\n        var ref$;\n        if ((ref$ = engine.guiLanguage) === \"de\" || ref$ === \"fr\") {\n          return price + \" €\";\n        } else if (engine.guiLanguage === \"en_gb\") {\n          return \"£\" + price;\n        } else {\n          return \"$\" + price;\n        }\n      };\n      plus = {\n        displayPrice: fallbackPrice(10)\n      };\n      plusFamily = {\n        displayPrice: fallbackPrice(20)\n      };\n      plusTeacher = {\n        displayPrice: fallbackPrice(40)\n      };\n    } else {\n      c = inc(\"calcDisplayPrice/calc\");\n      plus.displayPrice = c(plus);\n      plusFamily.displayPrice = c(plusFamily);\n      plusTeacher.displayPrice = c(plusTeacher);\n    }\n    return {\n      plus: plus,\n      plusFamily: plusFamily,\n      plusTeacher: plusTeacher,\n      problem: problem\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/page.ls","text":"(function(){\n  return function(page){\n    page.userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    page.products = inc(\"calcProducts/calc\")();\n    page.activeProduct = inc(\"calcActiveProduct/calc\")(page);\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      finish: function(newState){\n        if (newState.params.history < 0) {\n          return inc(\"/lib/util/logPromo/log\")({\n            event: \"promoPlus_products_back\"\n          });\n        }\n      },\n      start: function(){\n        inc(\"/lib/util/logPromo/log\")({\n          event: \"promoPlus_products\",\n          isBack: page.params.history <= 0\n        });\n        return page.css({\n          textAlign: \"center\",\n          margin: \"2em auto\",\n          maxWidth: \"90%\",\n          width: \"35em\",\n          lineHeight: \"1.5em\"\n        }).append(inc(\"text/text\")(), inc(\"productBlock/plus/plus\")(page), inc(\"productBlock/plusFamily/plusFamily\")(page), inc(\"productBlock/plusTeacher/plusTeacher\")(page), inc(\"schoolLicence/schoolLicence\")(), engine.isDebug ? inc(\"debugShowProductsLink/link\")(page) : void 8);\n      }\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/head/head.ls","text":"(function(){\n  return function(p){\n    return Div().css({\n      display: \"flex\",\n      minHeight: \"4em\"\n    }).append(inc(\"name/name\")(p), p.validUntil\n      ? inc(\"validUntil/validUntil\")(p)\n      : !p.isDisabled ? inc(\"button/button\")(p) : void 8);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/list/list.ls","text":"(function(){\n  return function(p){\n    var el;\n    return Div().append((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = p.list).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        results$.push(inc(\"listElement/listElement\")(el));\n      }\n      return results$;\n    }()));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_purchase/amazonStore/amazonStore.ls","text":"(function(){\n  return function(product, referrer, onProductPurchased){\n    var spinnerOverlay, hideSpinner, showSpinner, onSuccess, onError;\n    hideSpinner = function(){\n      if (spinnerOverlay != null) {\n        spinnerOverlay.close();\n      }\n      return spinnerOverlay = undefined;\n    };\n    showSpinner = function(){\n      return spinnerOverlay = inc(\"/lib/gui/spinnerOverlay/overlay\")(void 8, false, true);\n    };\n    onSuccess = function(purchase){\n      var data;\n      if (purchase.status === \"FAILED\") {\n        inc(\"../_shared/logPaymentTrackingEvent/log\")({\n          event: \"cancelled\",\n          sku: product.sku,\n          price: product.price,\n          title: product.title,\n          step: \"onApprove\",\n          details: purchase,\n          referrer: referrer\n        });\n        return;\n      }\n      if (purchase.status !== \"SUCCESSFUL\") {\n        onError({});\n        return;\n      }\n      showSpinner();\n      return helpers.httpRequest.post(inc(\"/lib/util/serverUrl/serverUrl\")(\"payment\") + \"/purchase\", data = {\n        logId: log.id(),\n        transactionId: purchase.purchaseReceipt.receiptId,\n        receipt64: {\n          receipt: purchase.purchaseReceipt,\n          userData: purchase.amazonUserData\n        },\n        store: \"amazon-appstore\",\n        product: product.sku,\n        priceMicros: product.priceMicros,\n        currency: product.currency\n      }, function(error, result){\n        if (error != null) {\n          inc(\"../_shared/logPaymentTrackingEvent/log\")({\n            event: \"error\",\n            sku: product.sku,\n            price: product.price,\n            title: product.title,\n            step: \"onApprove\",\n            message: error.message,\n            details: purchase,\n            referrer: referrer\n          });\n          hideSpinner();\n          inc(\"/lib/gui/errorPopup/popup\")({\n            label: T(\"paypalErrorText\")\n          });\n          return debug(\"error\", error);\n        } else {\n          if (result.status === \"ok\") {\n            amazonStore.notifyFulfillment(function(res){}, function(err){}, purchase.purchaseReceipt.receiptId);\n            if (!result.isValid) {\n              inc(\"../_shared/logPaymentTrackingEvent/log\")({\n                event: \"error\",\n                sku: product.sku,\n                price: product.price,\n                title: product.title,\n                step: \"onApprove\",\n                message: \"purchase couldn't be validated\",\n                details: purchase,\n                referrer: referrer\n              });\n              hideSpinner();\n              return inc(\"/lib/gui/errorPopup/popup\")({\n                label: T(\"paypalErrorText\")\n              });\n            } else {\n              if (result.isNewPurchase) {\n                inc(\"../_shared/logPaymentTrackingEvent/log\")({\n                  event: \"success\",\n                  sku: product.sku,\n                  transactionId: purchase.purchaseReceipt.receiptId,\n                  price: product.price,\n                  title: product.title,\n                  referrer: referrer\n                });\n              } else {\n                inc(\"../_shared/logPaymentTrackingEvent/log\")({\n                  event: \"restored\",\n                  sku: product.sku,\n                  transactionId: purchase.purchaseReceipt.receiptId,\n                  price: product.price,\n                  title: product.title,\n                  referrer: referrer\n                });\n              }\n              product.validationResult = result;\n              return log.sync(function(error){\n                hideSpinner();\n                return onProductPurchased(product);\n              });\n            }\n          } else {\n            hideSpinner();\n            inc(\"../_shared/logPaymentTrackingEvent/log\")({\n              event: \"error\",\n              sku: product.sku,\n              price: product.price,\n              title: product.title,\n              step: \"onApprove\",\n              message: \"non ok status received from purchase api\",\n              details: purchase,\n              referrer: referrer\n            });\n            inc(\"/lib/gui/errorPopup/popup\")({\n              label: T(\"paypalErrorText\")\n            });\n            return debug(\"error inserting payment\", result);\n          }\n        }\n      });\n    };\n    onError = function(e){\n      inc(\"../_shared/logPaymentTrackingEvent/log\")({\n        event: \"error\",\n        message: e.message,\n        code: e.code,\n        step: \"beforebuy\",\n        referrer: referrer\n      });\n      return inc(\"/lib/gui/errorPopup/popup\")({\n        label: e.message\n      });\n    };\n    inc(\"../_shared/logPaymentTrackingEvent/log\")({\n      event: \"initiated\",\n      type: \"buy\",\n      sku: product.sku,\n      price: product.price,\n      title: product.title,\n      referrer: referrer\n    });\n    return amazonStore.purchase(onSuccess, onError, product.sku);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_purchase/paypalPopup/popup.ls","text":"(function(){\n  return function(product, referrer, onProductPurchased){\n    var environment, isConsumable, clientId, s, currentSubscriptionID, div, buttonContainer, spinner, renderButtons, popup;\n    environment = deviceLog['var'](\"usePayPalSandbox\") ? \"sandbox\" : \"live\";\n    isConsumable = product.type.toLowerCase() === \"consumable\";\n    clientId = {\n      sandbox: \"AQ0f5cn7ZJn6QNlJLl7eJ69xh_JLs0QnyLx3GgKFM0H4fOl4RCfAglVv3qZbFhrob6lM3UAmhpphr5XK\",\n      live: \"AVjYBfFTxSLyDcrpdpT6qzNV9Z6OKCp_91mRmIwIOukJ1eqhR-fUtOZqamsxOB1ucpB1dXkBelxgZ_on\"\n    };\n    if (window.paypal == null) {\n      s = document.createElement(\"script\").attr({\n        src: \"https://www.paypal.com/sdk/js?currency=\" + (product.currency || \"EUR\") + \"&client-id=\" + clientId[environment] + \"&disable-funding=credit&vault=true\"\n      });\n      body.append(s);\n    }\n    currentSubscriptionID = undefined;\n    div = Div().css({\n      padding: \"1.3em\"\n    }).append(Div().css({\n      marginBottom: \"1em\",\n      fontWeight: \"bold\"\n    }).html(T(\"payAntonPlus\")), Div().css({\n      marginBottom: \"1.3em\"\n    }).html(T(\"productAndPrice\", product.title, product.displayPrice)), buttonContainer = Div().append(spinner = inc(\"/lib/gui/spinner/spinner\")()));\n    buttonContainer.setAttribute(\"id\", \"paypal-button-container\");\n    renderButtons = function(){\n      if (!div.isVisible()) {\n        return;\n      }\n      if (window.paypal == null) {\n        requestAnimationFrame(renderButtons);\n        return;\n      }\n      buttonContainer.empty();\n      return paypal.Buttons({\n        createOrder: isConsumable ? function(data, actions){\n          inc(\"../_shared/logPaymentTrackingEvent/log\")({\n            event: \"initiated\",\n            type: \"buy\",\n            sku: product.sku,\n            price: product.price,\n            title: product.title,\n            referrer: referrer\n          });\n          return new Promise(function(resolve, reject){\n            var data;\n            return helpers.httpRequest.post(inc(\"/lib/util/serverUrl/serverUrl\")(\"payment\") + \"/createPaypalOrder\", data = {\n              environment: environment,\n              sku: product.sku\n            }, function(error, response){\n              if (error != null) {\n                return reject(error);\n              } else {\n                return resolve(response);\n              }\n            });\n          }).then(function(result){\n            return result.result.orderId;\n          }, function(error){\n            inc(\"../_shared/logPaymentTrackingEvent/log\")({\n              event: \"error\",\n              sku: product.sku,\n              price: product.price,\n              title: product.title,\n              step: \"createOrder\",\n              message: error.message,\n              referrer: referrer\n            });\n            inc(\"/lib/gui/errorPopup/popup\")({\n              label: error != null ? error.message : void 8\n            });\n            return debug(error);\n          });\n        } : void 8,\n        createSubscription: !isConsumable ? function(data, actions){\n          inc(\"../_shared/logPaymentTrackingEvent/log\")({\n            event: \"initiated\",\n            type: \"buy\",\n            sku: product.sku,\n            price: product.price,\n            title: product.title,\n            referrer: referrer\n          });\n          return new Promise(function(resolve, reject){\n            var data;\n            return helpers.httpRequest.post(inc(\"/lib/util/serverUrl/serverUrl\")(\"payment\") + \"/paypalSubscriptionCreate\", data = {\n              environment: environment,\n              sku: product.sku\n            }, function(error, response){\n              if (error != null) {\n                return reject(error);\n              } else {\n                return resolve(response);\n              }\n            });\n          }).then(function(result){\n            currentSubscriptionID = result.result.subscriptionId;\n            return currentSubscriptionID;\n          }, function(error){\n            inc(\"../_shared/logPaymentTrackingEvent/log\")({\n              event: \"error\",\n              sku: product.sku,\n              price: product.price,\n              title: product.title,\n              step: \"createOrder\",\n              message: error.message,\n              referrer: referrer\n            });\n            inc(\"/lib/gui/errorPopup/popup\")({\n              label: error != null ? error.message : void 8\n            });\n            return debug(error);\n          });\n        } : void 8,\n        onCancel: function(data){\n          return inc(\"../_shared/logPaymentTrackingEvent/log\")({\n            event: \"cancelled\",\n            sku: product.sku,\n            price: product.price,\n            title: product.title,\n            referrer: referrer,\n            subscriptionID: currentSubscriptionID\n          });\n        },\n        onError: function(error){\n          inc(\"../_shared/logPaymentTrackingEvent/log\")({\n            event: \"error\",\n            sku: product.sku,\n            price: product.price,\n            title: product.title,\n            step: \"onError\",\n            message: error.message,\n            referrer: referrer,\n            subscriptionID: currentSubscriptionID\n          });\n          inc(\"/lib/gui/errorPopup/popup\")({\n            label: error != null ? error.message : void 8\n          });\n          return debug(error);\n        },\n        onApprove: function(data, actions){\n          var getPurchaseDetails;\n          buttonContainer.css({\n            opacity: 0\n          });\n          popup.append(inc(\"/lib/gui/spinner/spinner\")().css({\n            position: \"absolute\",\n            top: \"50%\",\n            left: \"50%\",\n            marginLeft: \"-0.5em\",\n            marginTop: \"1.3em\"\n          }));\n          getPurchaseDetails = function(data, callback){\n            if (isConsumable) {\n              return actions.order.capture().then(callback);\n            } else {\n              return callback(data);\n            }\n          };\n          return getPurchaseDetails(data, function(details){\n            var data;\n            return helpers.httpRequest.post(inc(\"/lib/util/serverUrl/serverUrl\")(\"payment\") + \"/purchase\", data = {\n              logId: log.id(),\n              transactionId: isConsumable\n                ? details.id\n                : details.subscriptionID,\n              receipt64: JSON.stringify(details),\n              store: environment === \"sandbox\" ? \"paypal_sandbox\" : \"paypal\",\n              product: isConsumable\n                ? details.purchase_units[0].custom_id\n                : product.sku,\n              priceMicros: isConsumable\n                ? (+details.purchase_units[0].amount.value) * 1000000\n                : (+product.price) * 1000000,\n              currency: isConsumable\n                ? details.purchase_units[0].amount.currency_code\n                : product.currency\n            }, function(error, result){\n              if (error != null) {\n                inc(\"../_shared/logPaymentTrackingEvent/log\")({\n                  event: \"error\",\n                  sku: product.sku,\n                  price: product.price,\n                  title: product.title,\n                  step: \"onApprove\",\n                  message: error.message,\n                  details: details,\n                  referrer: referrer\n                });\n                inc(\"/lib/gui/errorPopup/popup\")({\n                  label: T(\"paypalErrorText\")\n                });\n                debug(\"error\");\n                return debug(error);\n              } else {\n                if (result.status === \"ok\") {\n                  if (!result.isValid) {\n                    inc(\"../_shared/logPaymentTrackingEvent/log\")({\n                      event: \"error\",\n                      sku: product.sku,\n                      price: product.price,\n                      title: product.title,\n                      step: \"onApprove\",\n                      message: \"purchase couldn't be validated\",\n                      details: details,\n                      referrer: referrer\n                    });\n                    return inc(\"/lib/gui/errorPopup/popup\")({\n                      label: T(\"paypalErrorText\")\n                    });\n                  } else {\n                    if (result.isNewPurchase) {\n                      inc(\"../_shared/logPaymentTrackingEvent/log\")({\n                        event: \"success\",\n                        sku: product.sku,\n                        transactionId: isConsumable\n                          ? details.id\n                          : details.subscriptionID,\n                        price: product.price,\n                        title: product.title,\n                        referrer: referrer\n                      });\n                    } else {\n                      inc(\"../_shared/logPaymentTrackingEvent/log\")({\n                        event: \"restored\",\n                        sku: product.sku,\n                        transactionId: isConsumable\n                          ? details.id\n                          : details.subscriptionID,\n                        price: product.price,\n                        title: product.title,\n                        referrer: referrer\n                      });\n                    }\n                    product.validationResult = result;\n                    return log.sync(function(error){\n                      return onProductPurchased(product);\n                    });\n                  }\n                } else {\n                  inc(\"../_shared/logPaymentTrackingEvent/log\")({\n                    event: \"error\",\n                    sku: product.sku,\n                    price: product.price,\n                    title: product.title,\n                    step: \"onApprove\",\n                    message: \"non ok status received from purchase api\",\n                    details: details,\n                    referrer: referrer\n                  });\n                  inc(\"/lib/gui/errorPopup/popup\")({\n                    label: T(\"paypalErrorText\")\n                  });\n                  return debug(\"error inserting payment\", result);\n                }\n              }\n            });\n          });\n        }\n      }).render('#paypal-button-container');\n    };\n    setTimeout(renderButtons, 1000);\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/5_productInfo/page.ls","text":"(function(){\n  return function(page){\n    page.product = page.params.product;\n    page.productName = page.params.productName;\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      start: function(){\n        return page.css({\n          margin: \"0 auto\",\n          width: \"30em\",\n          maxWidth: \"95%\",\n          padding: \"1em\"\n        }).append(inc(\"icon/icon\")(), inc(\"title/title\")(page), inc(\"info/info\")(page), inc(\"button/button\")(page));\n      }\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/1_products/productBlock/_purchase/appstore/appstore.ls","text":"(function(){\n  return function(product, referrer, onProductPurchased){\n    var spinnerOverlay, logEvent, unRegister, onSuccess, onError, onUnverified, onCancelled, hideSpinner, showSpinner, additionalData, products, ref$;\n    logEvent = inc(\"../_shared/logPaymentTrackingEvent/log\");\n    unRegister = function(){\n      store.off(onSuccess);\n      store.off(onUnverified);\n      store.off(onCancelled);\n      return store.off(onError);\n    };\n    onSuccess = function(p){\n      var ref$, ref1$, ref2$;\n      p.sku = p.id;\n      unRegister();\n      if (((ref$ = p.validationResult) != null && ref$.isValid) && ((ref1$ = p.validationResult) != null && ref1$.isNewPurchase)) {\n        logEvent({\n          event: \"success\",\n          sku: p.sku,\n          price: p.price,\n          title: p.title,\n          referrer: referrer\n        });\n        hideSpinner();\n        return onProductPurchased(p);\n      } else {\n        logEvent({\n          event: \"error\",\n          message: (ref2$ = p.validationResult) != null ? ref2$.message : void 8,\n          sku: p.sku,\n          price: p.price,\n          title: p.title,\n          referrer: referrer,\n          validationResult: p.validationResult\n        });\n        inc(\"../_shared/validationResultPopup/popup\")({\n          validationResult: p.validationResult\n        });\n        return hideSpinner();\n      }\n    };\n    onError = function(e){\n      var store;\n      debug(\"buy_error: \" + e.message);\n      debug(\"code: \" + e.code);\n      logEvent({\n        event: \"error\",\n        message: e.message,\n        code: e.code,\n        referrer: referrer\n      });\n      unRegister();\n      hideSpinner();\n      store = engine.isAndroidApp\n        ? T(\"playStore\")\n        : T(\"appStore\");\n      return inc(\"/lib/gui/errorPopup/popup\")({\n        label: T(\"appstoreError\", store) + e.message\n      });\n    };\n    onUnverified = function(p){\n      p.sku = p.id;\n      logEvent({\n        event: \"error\",\n        message: \"unverified\",\n        sku: p.sku,\n        price: p.price,\n        title: p.title,\n        referrer: referrer\n      });\n      unRegister();\n      return hideSpinner();\n    };\n    onCancelled = function(p){\n      p.sku = p.id;\n      logEvent({\n        event: \"cancelled\",\n        sku: p.sku,\n        price: p.price,\n        title: p.title,\n        owned: p.owned,\n        referrer: referrer\n      });\n      unRegister();\n      return hideSpinner();\n    };\n    hideSpinner = function(){\n      if (spinnerOverlay != null) {\n        spinnerOverlay.close();\n      }\n      return spinnerOverlay = undefined;\n    };\n    showSpinner = function(){\n      return spinnerOverlay = inc(\"/lib/gui/spinnerOverlay/overlay\")(void 8, false, true);\n    };\n    logEvent({\n      event: \"initiated\",\n      type: \"buy\",\n      sku: product.id,\n      price: product.price,\n      title: product.title,\n      referrer: referrer\n    });\n    showSpinner();\n    store.when(product.alias).verified(onSuccess).unverified(onUnverified).cancelled(onCancelled);\n    store.error(onError);\n    additionalData = engine.isAndroidApp && product.type !== store.CONSUMABLE ? (products = inc(\"/lib/init/setupAppstore/products/products\")(), {\n      oldPurchasedSkus: _.flatMap(products, function(p){\n        var productInfo;\n        productInfo = store.get(p.alias);\n        if (productInfo.type === product.type && productInfo.valid && (productInfo.owned || !productInfo.canPurchase && productInfo.state === store.APPROVED)) {\n          return productInfo.id;\n        } else {\n          return [];\n        }\n      })\n    }) : void 8;\n    if ((additionalData != null ? (ref$ = additionalData.oldPurchasedSkus) != null ? ref$.length : void 8 : void 8) > 1) {\n      additionalData.oldPurchasedSkus = [additionalData.oldPurchasedSkus[0]];\n    }\n    return store.order(product.alias, additionalData);\n  };\n})();","updated":"2022-02-10T17:37:13.030249"},{"path":"pages/static/antonPlus/3_thanks/page.ls","text":"(function(){\n  return function(page){\n    page.product = inc(\"calcProduct/calc\")(page);\n    page.productName = inc(\"calcProductName/calc\")(page);\n    page.validUntil = inc(\"calcValidUntil/calc\")(page);\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      start: function(){\n        inc(\"logPromo/log\")(page);\n        return page.css({\n          margin: \"0 auto\",\n          width: \"30em\",\n          maxWidth: \"95%\",\n          padding: \"1em\"\n        }).append(inc(\"icon/icon\")(), inc(\"title/title\")(page), inc(\"textDuration/text\")(page), inc(\"textThanks/text\")(), inc(\"button/button\")(page));\n      }\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/3_thanks/textDuration/text.ls","text":"(function(){\n  return function(page){\n    var d;\n    d = inc(\"/lib/util/formatDate2/format\")(page.validUntil);\n    return Div().css({\n      marginBottom: \"1em\"\n    }).html(T(\"subscribedUntil\", page.productName, d.formats.date));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/4_thanksWhy/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      title: page.productName\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/cancelDeletionDirAdmin/00_shared/topbar/topbar.ls","text":"(function(){\n  return function(){\n    return inc(\"/addons/topbar2/topbar\")({\n      title: T(\"abortDeletion\"),\n      close: function(){\n        return startPage({\n          history: function(path){\n            return !_.includes(path, \"cancelDeletionDirAdmin\");\n          },\n          animation: \"slideDown\"\n        });\n      }\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/4_thanksWhy/linkContinue/link.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      var result, i$, ref$, len$, o;\n      result = {};\n      for (i$ = 0, len$ = (ref$ = page.options).length; i$ < len$; ++i$) {\n        o = ref$[i$];\n        result[o.name] = o.selected;\n      }\n      inc(\"/lib/util/logPromo/log\")({\n        event: \"promoPlus_thanksWhy\",\n        result: result\n      });\n      return startPage(page.product === \"plus\"\n        ? {\n          path: path(\"../../5_productInfo/page\"),\n          history: 0,\n          animation: \"fadeIn\",\n          params: {\n            product: page.product,\n            productName: page.productName\n          }\n        }\n        : {\n          history: -1,\n          animation: \"slideDown\"\n        });\n    };\n    return inc(\"/lib/gui/link/link\")(T(\"continueButton\")).css({\n      fontSize: \"1em\",\n      padding: \"0.6em\",\n      marginTop: \"0.5em\"\n    }).tap(tap);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/4_thanksWhy/options/option/option.ls","text":"(function(){\n  return function(option){\n    var tap, div;\n    option.selected = false;\n    tap = function(){\n      option.selected = !option.selected;\n      if (option.selected) {\n        div.findFirst(\".select\").show();\n        return div.findFirst(\".unselect\").hide();\n      } else {\n        div.findFirst(\".select\").hide();\n        return div.findFirst(\".unselect\").show();\n      }\n    };\n    return div = Div().css({\n      display: \"flex\",\n      padding: \"0.5em\",\n      background: Color.grey[150],\n      margin: \"0.2em\",\n      minHeight: \"2.5em\"\n    }).append(inc(\"check/check\")(option), inc(\"name/name\")(option)).tap({\n      down: tap\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/4_thanksWhy/page.ls","text":"(function(){\n  return function(page){\n    page.product = page.params.product;\n    page.productName = page.params.productName;\n    page.options = [\n      {\n        name: T(\"optionOffline\")\n      }, {\n        name: T(\"optionBetterAvatar\")\n      }, {\n        name: T(\"optionSupportAnton\")\n      }\n    ];\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      start: function(){\n        return page.css({\n          margin: \"0 auto\",\n          width: \"30em\",\n          maxWidth: \"95%\",\n          padding: \"1em\"\n        }).append(inc(\"title/title\")(), inc(\"textHelp/text\")(), inc(\"options/options\")(page), inc(\"linkContinue/link\")(page));\n      }\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/5_productInfo/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      title: page.productName\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/5_productInfo/info/info.ls","text":"(function(){\n  return function(page){\n    var p;\n    p = page.product;\n    if (p === \"plus\") {\n      return inc(\"plus/plus\")(page);\n    } else if (p === \"plusFamily\") {\n      return inc(\"plusFamily/plusFamily\")(page);\n    }\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/antonPlus/5_productInfo/info/plus/plus.ls","text":"(function(){\n  return function(page){\n    return Div().css({\n      width: \"30em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"plusInfoText1\"), inc(\"icon/icon\")());\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/download/calcDeviceType/calc.ls","text":"(function(){\n  return function(){\n    var p, isAmazonFire;\n    p = inc(\"/lib/util/calcAppType/calcPlatform/calc\")();\n    if (p === \"Android\") {\n      isAmazonFire = navigator.userAgent.indexOf(\"Silk\") !== -1;\n      if (isAmazonFire) {\n        return \"amazon\";\n      } else {\n        return \"android\";\n      }\n    } else if (p === \"iOS\") {\n      return \"iOS\";\n    } else {\n      return \"other\";\n    }\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/download/calcShareId/calc.ls","text":"(function(){\n  return function(page){\n    var pageUrl, shareId;\n    pageUrl = inc(\"/lib/util/browser/getPageUrl/get\")();\n    shareId = pageUrl.split(\"/\")[1] || inc(\"/lib/util/browser/getPageUrlParam/get\")(\"shareId\");\n    inc(\"/lib/util/browser/removePageUrlParam/remove\")(\"shareId\");\n    return shareId;\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/download/redirectToStore/redirect.ls","text":"(function(){\n  return function(page, type){\n    return function(){\n      var url;\n      inc(\"log/log\")(page);\n      url = type === \"amazon\"\n        ? \"amzn://apps/android?p=com.solocode.anton\"\n        : type === \"android\"\n          ? \"https://play.app.goo.gl/?link=https://play.google.com/store/apps/details?id=com.solocode.anton\"\n          : type === \"iOS\" ? \"itms-apps://itunes.apple.com/app/id1180554775\" : void 8;\n      if (!url) {\n        return;\n      }\n      return window.open(url, \"_self\");\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/newsletter/disable/page.ls","text":"(function(){\n  return function(page){\n    page.publicId = inc(\"../_shared/calcPublicId/calc\")(page);\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        var submit, onSuccess, onError;\n        submit = function(){\n          return inc(\"submit/submit\")({\n            publicId: page.publicId,\n            onSuccess: onSuccess,\n            onError: onError\n          });\n        };\n        onSuccess = function(displayName){\n          return page.empty().append(inc(\"../_shared/iconNews/icon\")(), inc(\"title/title\")(displayName), inc(\"text/text\")(), inc(\"linkEnableAgain/link\")(page), inc(\"../../_shared/linkToStart/link\")());\n        };\n        onError = function(){\n          return page.empty().append(inc(\"../_shared/iconNews/icon\")(), inc(\"../../_shared/textError/text\")(), inc(\"../../_shared/linkToStart/link\")());\n        };\n        page.css({\n          margin: \"2em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\"\n        }).append(inc(\"/lib/gui/spinner/spinner\")());\n        return submit();\n      }\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/newsletter/disable/submit/submit.ls","text":"(function(){\n  return function(o){\n    if (!o.publicId) {\n      o.onError();\n      return;\n    }\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/newsletter/disable/disable\"),\n      params: {\n        publicId: o.publicId\n      },\n      onCompleted: function(result){\n        if (result.status === \"ok\") {\n          return o.onSuccess(result.displayName);\n        } else {\n          debug(result);\n          return o.onError();\n        }\n      },\n      onError: function(error){\n        debug(error);\n        return o.onError();\n      },\n      onOffline: function(){\n        return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n      }\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/newsletter/enable/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../../_shared/topbarDeeplink/topbar\")(page, T(\"antonNewsMailOn\"));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/newsletter/enable/submit/submit.ls","text":"(function(){\n  return function(o){\n    if (!o.publicId) {\n      o.onError();\n      return;\n    }\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/newsletter/enable/enable\"),\n      params: {\n        publicId: o.publicId\n      },\n      onCompleted: function(result){\n        if (result.status === \"ok\") {\n          return o.onSuccess(result.displayName);\n        } else {\n          debug(result);\n          return o.onError();\n        }\n      },\n      onError: function(error){\n        debug(error);\n        return o.onError();\n      },\n      onOffline: function(){\n        return inc(\"/lib/offline/offlinePage/offlinePage\")(o.page);\n      }\n    });\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/pixelPaintImageShared/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../_shared/topbarDeeplink/topbar\")(page, T(\"pixelpaintImage\"));\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/pixelPaintImageShared/calcImageId/calc.ls","text":"(function(){\n  return function(){\n    var pageUrl, imageId;\n    pageUrl = inc(\"/lib/util/browser/getPageUrl/get\")();\n    return imageId = pageUrl.split(\"/\")[1] || \"jBgU\";\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/privacy/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var onPrint;\n    onPrint = function(){\n      var printPage;\n      printPage = inc(\"../div/div\")({\n        isPrint: true\n      }).css({\n        fontFamily: \"sans-serif\"\n      });\n      return inc(\"/lib/util/print/print\")({\n        div: printPage,\n        title: T(\"privacyPolicy\")\n      });\n    };\n    return inc(\"../../_shared/topbarDeeplink/topbar\")(page, T(\"privacyPolicy\"), onPrint);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/privacy/acceptPrivacyDiv/div.ls","text":"(function(){\n  return function(){\n    var e;\n    e = log.findLast(\"setAcceptPrivacy\");\n    return Div().css({\n      textAlign: \"center\"\n    }).append(e\n      ? Div().css({\n        display: \"inline-block\",\n        color: Color.grey[600],\n        fontStyle: \"italic\",\n        margin: \"1em\"\n      }).html(T(\"privacyAccepted\"))\n      : inc(\"/lib/gui/link/link\")({\n        label: T(\"acceptPrivacy\"),\n        iconColor: \"black\"\n      }).css({\n        margin: \"1em\"\n      })).tap(!e ? function(){\n      return inc(\"/pages/misc/_shared/confirmAge16AndPrivacy/confirm\")(function(){\n        return startPage({\n          history: 0\n        });\n      });\n    } : void 8);\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/privacy/div/divFr/div.ls","text":"(function(){\n  return function(options){\n    var isPrint, ref$, s, p, section;\n    isPrint = (ref$ = options != null ? options.isPrint : void 8) != null ? ref$ : false;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div().addClass(\"privacyDiv\").append(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3em\"\n    }) : void 8, isPrint ? Div().css({\n      fontSize: \"1.4em\"\n    }).html(T(\"privacy\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. Généralités\",\n      content: [p(\"ANTON est une application d'apprentissage numérique qui peut être téléchargée ou utilisée à l'adresse https://anton.app.\"), p(\"L'opérateur et responsable en matière de protection des données est la société Solocode GmbH, Mehringdamm 61, 10961 Berlin.\"), p(\"Si vous avez des questions concernant la protection des données, veuillez nous écrire à l'adresse privacy@anton.app.\"), p(\"La protection de vos données est particulièrement importante pour nous.\"), p(\"Nous recueillons le moins de données possible, les supprimons automatiquement lorsqu'elles sont inactives, les stockons uniquement sur des serveurs sécurisés en Europe et ne les transmettons pas à des tiers.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. Quelles sont les données stockées par ANTON ?\",\n      content: [\n        section({\n          isExpanded: isPrint,\n          header: \"2.1 Données que vous nous fournissez\",\n          content: [p(\"Si vous êtes élève, nous vous demanderons votre surnom, votre école (facultative), la matière par laquelle vous souhaitez commencer, dans quel niveau scolaire. Lorsque vous sélectionnez une école, l'administrateur·rice de l'école peut ajouter votre utilisateur·rice au répertoire de l'école et ajouter des informations personnelles vous concernant telles que votre nom et votre classe.\"), p(\"Si vous êtes enseignant·e, nous vous demanderons votre prénom, votre nom, votre titre et, uniquement si vous souhaitez les communiquer, votre école et votre adresse électronique.\"), p(\"Si vous êtes enseignant·e ou employé·e d'une école, si vous créez un groupe et des codes de connexion pour vos élèves et/ou vos enseignant·es, vous ou votre école êtes responsables de la protection de ces données. Veuillez n'utiliser que des surnoms qu'un tiers ne pourrait pas utiliser pour identifier les élèves ou obtenir l'autorisation des parents.\"), p(\"Si vous êtes enseignant·e et que vous êtes affecté·e à une école, vous autorisez l'administrateur·rice de cette école à ajouter votre utilisateur·rice au répertoire de l'école, à gérer votre utilisateur·rice et les utilisateur·rices avec les codes de connexion que vous créez, à ajouter des informations personnelles, à consulter le code de connexion et à engager la suppression des utilisateur·rices.\"), p(\"Si vous décidez que votre utilisateur·rice doit être stocké·e sur votre appareil, nous stockerons ces informations sur votre appareil.\"), p(\"Nous vous demanderons de temps en temps si vous aimez ANTON et le contenu d'apprentissage et comment nous pouvons l'améliorer.\"), p(\"Si vous avez 16 ans ou plus, vous pouvez saisir votre adresse électronique ou votre numéro de téléphone portable sous la rubrique “Paramètres”. Nous serons alors en mesure de rétablir votre accès si vous perdez vos données d'accès.\"), p(\"Si vous nous contactez via le chat d’assistance ou par e-mail, ces messages ainsi que la date et l'heure des messages seront stockés afin que nous puissions communiquer avec vous.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"2.2 Informations que nous recevons automatiquement par le biais de votre utilisation d'ANTON\",\n          content: [p(\"Si vous utilisez ANTON, ANTON enregistre les données relatives à votre utilisation sur votre appareil et les compare avec notre serveur lorsqu'une connexion Internet est disponible. Cela vous permet d'utiliser ANTON avec votre utilisateur·rice sur plusieurs appareils.\"), p(\"Cela comprend : les pages d'application lancées et vos progrès d'apprentissage, vos résultats de jeu, votre appartenance à des groupes, le contenu que vous avez créé comme des images et des listes d'apprentissage, votre type d'appareil, votre système d'exploitation et votre navigateur Internet ainsi que votre adresse IP anonyme.\"), p(\"Nous ne conservons pas les trois derniers chiffres de votre adresse IP dans notre système, vous pouvez donc rester anonyme.\")]\n        })\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. À quoi servent ces données ?\",\n      content: p(\"Les données stockées seront utilisées uniquement pour vous proposer ANTON, pour vous aider à résoudre les problèmes que vous pourriez rencontrer avec ANTON et pour développer ANTON en fonction des besoins de nos utilisateur·rices.\")\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. Combien de temps les données sont-elles conservées ?\",\n      content: [p(\"Vos données d'utilisateur·rice seront conservées aussi longtemps que vous utiliserez ANTON. Si vous n'utilisez plus ANTON et n'êtes pas membre d'un répertoire scolaire géré par une école, nous supprimerons automatiquement vos données d'utilisateur·rice 12 mois après votre dernière connexion ou après la fin de votre adhésion à ANTON Plus.\"), p(\"Vos données personnelles seront supprimées ou bloquées dès que la finalité pour laquelle elles ont été stockées cessera d'être applicable. En outre, le stockage peut être effectué s'il est prévu par le législateur européen ou national dans les ordonnances, lois ou autres règlements de l'UE auxquels la personne responsable est soumise. Les données seront également bloquées ou effacées si une période de conservation prescrite par les normes susmentionnées expire, à moins qu'il ne soit nécessaire de les conserver plus longtemps pour conclure ou exécuter un contrat.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. ANTON transmet-elle des données à des tiers ?\",\n      content: [p(\"Non, nous ne transmettrons pas vos données à des tiers, sauf si l'utilisateur·rice a donné son consentement préalable explicite ou s'il existe une obligation légale de transmettre des données.\"), p(\"Nous n'utilisons pas Google, Facebook, Amazon ou d'autres intégrations de produits dans ANTON, c'est-à-dire que vos données ne resteront réellement que sur nos serveurs.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Comment la sécurité des données est-elle garantie ?\",\n      content: [p(\"Toutes les données sont stockées exclusivement sur des serveurs situés dans l'Union Européenne et transmises sous forme cryptée. Les centres de données répondent aux normes de sécurité les plus strictes et sont certifiés selon la norme DIN ISO/IEC 27001.\"), p(\"Dans le même temps, l'utilisateur·rice doit être conscient·e qu'en raison de l'émergence constante de nouveaux virus et d'autres moyens d'attaquer les systèmes de données sécurisés des services Internet, une protection à 100 % contre les attaques ne peut être garantie.\"), p(\"Nous poursuivrons toute attaque découverte par des pirates informatiques et autres en vertu du droit civil et pénal et informerons l'utilisateur·rice de toute compromission de ses données.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. Quelles données les autres utilisateur·rices peuvent-ils consulter ?\",\n      content: [p(\"Les autres utilisateur·rices peuvent voir votre surnom, votre avatar et votre score dans les jeux. Si vous générez vous-même des contenus tels que des images ou des listes d'apprentissage, vous pouvez décider de les publier pour d'autres utilisateur·rices.\"), p(\"Le(s) enseignant·e(s) de votre groupe et - si votre école utilise le répertoire scolaire - l'administrateur·rice de l'école et les enseignant·es de votre école qui ont été autorisé·es par lui·elle peuvent voir votre nom et vos progrès d'apprentissage et rechercher votre code de connexion pour vous.\"), p(\"Lorsque vous vous inscrivez en tant qu'enseignant·e et que vous sélectionnez une école, l'administrateur·rice du répertoire de cette école peut consulter vos coordonnées et votre code de connexion et vous ajouter au répertoire de l'école. Cela vaut également si vous avez donné de fausses informations sur vous-même ou sur votre affiliation à l'école.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Vos droits\",\n      content: [\n        section({\n          isExpanded: isPrint,\n          header: \"8.1 Droit à l'information\",\n          content: p(\"Chaque utilisateur·rice a le droit de recevoir gratuitement des informations sur les données personnelles stockées à son sujet. Veuillez nous envoyer un e-mail à privacy@anton.app en indiquant les informations suivantes pour votre identification : nom d'utilisateur·rice, code de connexion, nom, adresse e-mail, adresse postale et date de naissance.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.2 Droit de rectification\",\n          content: p(\"Vous disposez d'un droit de rectification et/ou d'intégration si les données à caractère personnel traitées vous concernant sont incorrectes ou incomplètes.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.3 Droit de limiter le traitement\",\n          content: [p(\"Dans les conditions suivantes, vous pouvez demander la limitation du traitement des données à caractère personnel vous concernant :\"), p(\"a. Si vous contestez l'exactitude des données à caractère personnel vous concernant pendant une période de temps qui nous permet de vérifier l'exactitude des données à caractère personnel.\"), p(\"b. Si le traitement est illégal et que vous vous opposez à la suppression des données à caractère personnel et que vous demandez à la place la limitation de l'utilisation des données à caractère personnel.\"), p(\"c. Nous n'avons plus besoin des données personnelles pour les besoins du traitement, mais vous avez besoin des données personnelles pour faire valoir, exercer ou défendre vos droits en justice.\"), p(\"d. Si vous avez formulé une objection au traitement conformément à l'article 21, paragraphe 1, du RGPD et qu'il n'est pas encore clair si les raisons légitimes du responsable du traitement l'emportent sur vos motifs.\"), p(\"e. Si le traitement des données à caractère personnel vous concernant a été restreint, ces données ne peuvent être traitées - hormis leur stockage - qu'avec votre consentement ou dans le but de faire valoir, d'exercer ou de défendre des droits légaux ou de protéger les droits d'une autre personne physique ou morale ou pour des raisons d'intérêt public important de l'Union ou d'un État membre. Si la limitation du traitement a été restreinte dans les conditions susmentionnées, nous vous en informerons avant que la limitation ne soit levée.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.4 Droit de suppression\",\n          content: [p(\"Nous supprimerons vos données d'utilisateur·rice sur demande. Pour ce faire, veuillez nous envoyer un e-mail à privacy@anton.app avec les informations suivantes pour vous identifier : nom d'utilisateur·rice, code de connexion, prénom et nom de famille.\"), p(\"Pour supprimer les données utilisateur·rice stockées sur vos appareils, vous pouvez désinstaller ANTON ou cliquer sur “Supprimer le compte” dans l'application sous Paramètres et sélectionner le profil utilisateur·rice à supprimer.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.5 Droit à la transférabilité des données\",\n          content: [p(\"Les écoles peuvent engager la suppression des comptes d'utilisateur·rices qu'elles ont créés ou dont elles sont responsables de l'administration après une période de transition de 60 jours. Les utilisateur·rices - et si nécessaire leurs tuteur·rices légaux·ales - doivent être informé·es par l'école. Les utilisateur·rices ont la possibilité de transférer les données stockées dans le compte d'utilisateur·rice vers un nouveau compte et de continuer à les utiliser de manière indépendante dans un délai de 60 jours. Après cette période, les comptes seront automatiquement supprimés.\"), p(\"Vous avez le droit de demander une copie de vos données personnelles sous format électronique et le droit de transférer ces données personnelles pour les utiliser dans un autre service. Sur demande, nous vous enverrons un fichier contenant vos données personnelles. Pour ce faire, veuillez nous envoyer un courrier électronique à privacy@anton.app avec les informations suivantes pour votre identification : nom d'utilisateur·rice, code de connexion, prénom et nom, éventuellement nom de jeune fille, adresse électronique, adresse postale et date de naissance.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.6 Droit d'opposition\",\n          content: p(\"Vous avez le droit de vous opposer à tout moment, pour des raisons découlant de votre situation particulière, au traitement des données à caractère personnel vous concernant, qui est effectué sur la base de l'article 6, paragraphe 1, lettre e ou f du RGPD.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.7 Droit de révoquer la déclaration de consentement en vertu de la loi sur la protection des données\",\n          content: p(\"Vous avez le droit de révoquer votre déclaration de consentement à la protection des données à tout moment. La révocation de votre consentement n'affecte pas la légalité du traitement qui a eu lieu sur la base de votre consentement jusqu'à la révocation.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.8 Droit de porter plainte auprès d'une autorité de contrôle\",\n          content: p(\"Sans préjudice de tout autre recours administratif ou judiciaire, vous avez le droit de porter plainte auprès d'une autorité de contrôle, notamment dans l'État membre dans lequel vous résidez, travaillez ou sur le lieu de l'infraction présumée, si vous estimez que le traitement des données à caractère personnel vous concernant est contraire au RGPD. L'autorité de contrôle saisie de la plainte informe le plaignant de l'état et des résultats de la plainte, y compris de la possibilité d'un recours judiciaire en vertu de l'article 78 du RGPD.\")\n        })\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Quelle est la base juridique du traitement ?\",\n      content: [p(\"Dans la mesure où nous obtenons le consentement de la personne concernée pour le traitement des données à caractère personnel, l'article 6, paragraphe 1, point a), du règlement de base de l'UE sur la protection des données (RGPD) sert de base juridique.\"), p(\"Lorsque le traitement de données à caractère personnel est nécessaire à l'exécution d'un contrat auquel la personne concernée est partie, l'article 6, paragraphe 1, point b), du RGPD sert de base juridique. Cela s'applique également aux traitements nécessaires à l'exécution des mesures précontractuelles.\"), p(\"Dans la mesure où le traitement des données personnelles est nécessaire pour remplir une obligation légale à laquelle notre entreprise est soumise, l'art. 6 al. 1 lit. c du RGPD sert de base légale.\"), p(\"Si le traitement est nécessaire à la sauvegarde d'un intérêt légitime de notre entreprise ou d'un tiers et si les intérêts, les droits et les libertés fondamentaux de la personne concernée ne l'emportent pas sur le premier intérêt, l'art. 6 al. 1 lit. f du RGPD sert de base légale au traitement.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. Explication des termes\",\n      content: [p(\"RGPD : Règlement (UE) 2016/679 du Parlement européen et du Conseil du 27 avril 2016 relatif à la protection des personnes physiques à l'égard du traitement des données à caractère personnel et à la libre circulation de ces données et abrogeant la directive 95/46/CE (règlement de base sur la protection des données).\"), p(\"Données personnelles : Conformément à l'article 4, paragraphe 1, du RGPD, toute information concernant une personne physique identifiée ou identifiable ; est réputée identifiable une personne qui peut être identifiée, directement ou indirectement, notamment par référence à un élément d'identification tel qu'un nom, un numéro d'identification, des données de localisation, un identifiant en ligne ou une ou plusieurs caractéristiques particulières qui expriment les caractéristiques physiques, physiologiques, mentales ou physiques d'une personne, l'identité génétique, psychologique, économique, culturelle ou sociale de cette personne physique.\")]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/schoolLicense/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../_shared/topbarDeeplink/topbar\")(page, inc(\"title/title\")());\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/security/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../_shared/topbarDeeplink/topbar\")(page, inc(\"title/title\")());\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"pages/static/template/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: inc(\"/lib/util/browser/getPageUrl/get\")(),\n      title: \"Anton.app\",\n      metaDescription: \"\",\n      noIndex: true,\n      responseStatusCode: 200,\n      pageReady: false\n    };\n  };\n})();","updated":"2021-07-14T11:10:20.614039"},{"path":"lib/util/isOnline/isOnline.ls","text":"(function(){\n  return function(){\n    var ref$, ref1$;\n    if (engine.simulateOffline) {\n      return false;\n    }\n    if (engine.isMobileApp) {\n      return (ref$ = (ref1$ = engine.networkConnection) != null ? ref1$.isOnline : void 8) != null ? ref$ : true;\n    } else {\n      return (ref$ = navigator.onLine) != null ? ref$ : true;\n    }\n  };\n})();","updated":"2021-07-15T10:32:11.610601"},{"path":"pages/static/antonPlus/1_products/productBlock/_checkOnlineOrProblem/check.ls","text":"(function(){\n  var lp;\n  lp = inc(\"/lib/util/logPromo/log\");\n  return function(page){\n    var p;\n    if (!inc(\"/lib/util/isOnline/isOnline\")()) {\n      lp(\"promoPlus_problem_offline\");\n      inc(\"/lib/offline/offlinePopup/popup\")();\n      return true;\n    } else if (p = page.products.problem) {\n      lp(\"promoPlus_problem_\" + p);\n      inc(\"popupProblem/popup\")(p);\n      return true;\n    }\n  };\n})();","updated":"2021-07-15T10:32:11.610601"},{"path":"pages/support/help/chat/bottom/_shared/sendButton/send/checkOnline/check.ls","text":"(function(){\n  return function(){\n    if (!inc(\"/lib/util/isOnline/isOnline\")()) {\n      return setTimeout(function(){\n        return inc(\"/lib/gui/toast/toast\")({\n          label: T(\"youAreOffline\")\n        });\n      }, 1000);\n    }\n  };\n})();","updated":"2021-07-15T10:32:11.610601"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-mobile/_t.ls","text":"(function(){\n  return {\n    thanksRating3: {\n      de: \"Unterstütze uns mit einer guten Bewertung im $1, damit ANTON kostenlos bleibt!\",\n      en: \"We would appreciate if you left a positive rating in the $1, so that ANTON can continue as a free learning platform!\",\n      fr: \"Tu peux nous laisser une note positive dans $1 pour qu'ANTON puisse rester une plateforme d'apprentissage gratuite&nbsp;! \",\n      es: \"¡Apóyanos! Evalúanos positivamente en el $1 para que ANTON siga siendo una plataforma gratuita.\",\n      pt: \"Apoie-nos! Deixe uma avaliação positiva em $1 para que ANTON continue sendo um aplicativo de aprendizagem gratuito.\"\n    },\n    continueWithoutRating: {\n      de: \"Weiter ohne Bewerten\",\n      en: \"Continue without rating\",\n      fr: \"Continuer sans évaluer\",\n      es: \"Continuar sin evaluar\",\n      pt: \"Continuar sem avaliar\"\n    }\n  };\n})();","updated":"2022-02-10T14:01:10.632115"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-mobile/text/text.ls","text":"(function(){\n  return function(){\n    var store;\n    store = engine.isAndroidApp\n      ? T(\"playStore\")\n      : T(\"appStore\");\n    return Div({\n      margin: \"0 auto 1.5em\",\n      width: \"30em\",\n      maxWidth: \"90%\"\n    }).html(T(\"thanksRating3\", store));\n  };\n})();","updated":"2022-02-10T14:01:10.632115"},{"path":"pages/prestart/engineOutdated/softWarning/text/text.ls","text":"(function(){\n  return function(){\n    var store;\n    store = engine.isAndroidApp\n      ? T(\"playStore\")\n      : T(\"appStore\");\n    return Div({\n      width: \"35em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto 0.8em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"updateAppWarning\", store));\n  };\n})();","updated":"2022-02-10T14:01:10.632115"},{"path":"lib/gui/avatar/overlay/overlay.ls","text":"(function(){\n  return function(parent, avatar, description){\n    var o, p, s, isExiting, init, exit, resize;\n    o = {};\n    p = parent.offset();\n    s = 300;\n    isExiting = false;\n    init = function(){\n      o.overlayDiv.enter();\n      o.backgroundDiv.enter();\n      return setTimeout(function(){\n        var ref$, ref1$;\n        if (!isExiting) {\n          o.nameDiv.fadeIn();\n          o.closeIconDiv.show();\n          if ((ref$ = o.debugCopyDiv) != null) {\n            ref$.show();\n          }\n          return (ref1$ = o.debugSaveDiv) != null ? ref1$.show() : void 8;\n        }\n      }, s);\n    };\n    exit = function(e, originalEvent){\n      var ref$, ref1$;\n      if (originalEvent != null) {\n        if (typeof originalEvent.stopPropagation == 'function') {\n          originalEvent.stopPropagation();\n        }\n      }\n      isExiting = true;\n      o.overlayDiv.exit();\n      o.backgroundDiv.exit();\n      o.closeIconDiv.hide();\n      if ((ref$ = o.debugCopyDiv) != null) {\n        ref$.hide();\n      }\n      if ((ref1$ = o.debugSaveDiv) != null) {\n        ref1$.hide();\n      }\n      o.nameDiv.hide();\n      return setTimeout(function(){\n        app.currentPage.avatarOverlayWrapper.hide();\n        return o.overlayDiv.remove();\n      }, s);\n    };\n    resize = function(){\n      o.overlayDiv.enter();\n      return o.backgroundDiv.enter();\n    };\n    app.currentPage.avatarOverlayWrapper.html(o.overlayDiv = inc(\"overlay/overlay\")(p, s).addClass(\"keyManagerScope\").append(inc(\"clickBlocker/clickBlocker\")(exit), o.backgroundDiv = inc(\"background/background\")(p, s), o.closeIconDiv = inc(\"closeIcon/icon\")(), o.nameDiv = inc(\"name/name\")(description), o.avatarDiv = inc(\"avatar/avatar\")(o, avatar), engine.isDebug && !engine.isMobileApp ? o.debugCopyDiv = inc(\"debugCopy/copy\")(o, avatar) : void 8, engine.isDebug ? o.debugSaveDiv = inc(\"debugSave/save\")(o, avatar) : void 8).tap({\n      down: exit,\n      animation: \"none\"\n    }).onWindowResize(resize)).show();\n    return init();\n  };\n})();","updated":"2022-02-10T14:01:10.632115"},{"path":"pages/content/plan/scrollToPosition/scrollToSearchResult/highlightBlockRow/highlight.ls","text":"(function(){\n  return function(blockRow){\n    return blockRow.keyframeAnimate({\n      duration: 2000,\n      keyframes: {\n        \"40%\": {\n          backgroundColor: Color.blue[50]\n        },\n        \"100%\": {\n          backgroundColor: \"\"\n        }\n      }\n    });\n  };\n})();","updated":"2021-09-08T12:41:39.41797"},{"path":"pages/content/plan/scrollToPosition/scrollToSearchResult/scroll.ls","text":"(function(){\n  return function(page){\n    var p, topicRow, scrollRow;\n    p = page.params;\n    if (p.blockPath) {\n      topicRow = _.find(page.findAll(\".topicRow\"), function(r){\n        return r.topicPath === p.topicPath;\n      });\n      scrollRow = _.find(topicRow != null ? topicRow.findAll(\".blockRow\") : void 8, function(r){\n        return r.blockPath === p.blockPath;\n      });\n    } else if (p.topicPath) {\n      scrollRow = _.find(page.findAll(\".topicRow\"), function(r){\n        return r.topicPath === p.topicPath;\n      });\n      scrollRow = scrollRow != null ? scrollRow.firstChild : void 8;\n    }\n    if (scrollRow) {\n      inc(\"highlightBlockRow/highlight\")(scrollRow);\n      return page.scrollElementIntoView(scrollRow, {\n        top: true,\n        instant: true,\n        padding: 100\n      });\n    }\n  };\n})();","updated":"2021-09-08T12:41:39.41797"},{"path":"pages/content/plan/_topbar/searchDeepBackBar/bar.ls","text":"(function(){\n  return function(page){\n    if (page.context === \"searchDeep\") {\n      return inc(\"/../app01-search/lib/topSearchDeepBackBar/bar\")();\n    }\n  };\n})();","updated":"2021-09-08T12:41:39.41797"},{"path":"addons/topbarGame/header/right/right.ls","text":"(function(){\n  return function(o){\n    return Div().css({\n      flex: \"0 0 auto\",\n      display: \"flex\",\n      padding: \"0 0.5em\",\n      paddingRight: \"0.3em\",\n      alignItems: \"stretch\"\n    }).append(inc(\"tries/tries\")(o), inc(\"sound/sound\")(o), inc(\"help/help\")(o));\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"addons/topbarGame/topbar.ls","text":"(function(){\n  return function(o){\n    var div;\n    div = Div().addClass(\"topBar gameTopBar\").css({\n      textAlign: \"center\",\n      marginBottom: \"-1px\"\n    });\n    inc(\"game/game\")(o, div);\n    div.append(div.header = inc(\"header/header\")(o));\n    return app.currentPage.topbar = div;\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"addons/topbarLevel/calculator/calculator/label/label.ls","text":"(function(){\n  return function(toggle, slide, o){\n    var hintWidth, h, div, content, icon;\n    hintWidth = (h = app.currentPage.topbar.topHint) ? h.findFirst(\".dragHandle\").width() + 10 + \"px\" : 0;\n    div = Div().addClass(\"dragHandle\").css({\n      width: \"35em\",\n      maxWidth: \"100%\",\n      margin: \"0 auto\",\n      textAlign: \"right\",\n      marginTop: \"-1px\"\n    }).append(content = Div().css({\n      display: \"inline-flex\",\n      backgroundColor: Color.grey[75],\n      border: \"1px solid \" + Color.grey[250],\n      borderTop: \"\",\n      marginRight: hintWidth,\n      pointerEvents: \"auto\",\n      paddingTop: \"30px\",\n      backgroundClip: \"border-box\"\n    }).append(o.lastResultDiv = inc(\"lastResultDiv/div\")(o), icon = inc(\"icon/icon\")(slide)).tap({\n      animation: \"none\",\n      up: toggle\n    }));\n    div.icon = icon;\n    div.content = content;\n    return div;\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"addons/topbarLevel/feedbackIcon/03b_noSoundInfoPopup/popup.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/gui/infoPopup/popup\")({\n      animationOnShow: false,\n      label: [\n        inc(\"/lib/util/isDesktop/isDesktop\")()\n          ? T(\"soundInfoBrowser\")\n          : inc(\"/lib/util/isiOs/isiOs\")()\n            ? T(\"soundInfoIOS\")\n            : T(\"soundInfoAndroid\"), \"<br><br>\", T(\"soundInfoAll\")\n      ]\n    });\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"addons/topbarLevel/hint/hint/background/background.ls","text":"(function(){\n  return function(close){\n    return Div().css({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      height: \"var(--screenHeight)\",\n      backgroundColor: \"rgba(0, 0, 0, 0.2)\",\n      pointerEvents: \"auto\"\n    }).addClass(\"keyManagerScope\").tap({\n      up: close,\n      animation: \"none\"\n    }).css({\n      cursor: \"default\"\n    }).append(inc(\"divEnterKey/div\")(close)).hide();\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"addons/topbarLevel/hint/hint/content/content/content.ls","text":"(function(){\n  return function(hint, slide){\n    var parts, content, part;\n    parts = _.ensureArray(hint.text);\n    return content = (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = parts).length; i$ < len$; ++i$) {\n        part = ref$[i$];\n        if (_.isString(part) || part.text) {\n          results$.push(inc(\"text/text\")(slide, part));\n        } else if (part.lsg) {\n          results$.push(inc(\"lsg/lsg\")(slide, part));\n        } else if (part.image) {\n          results$.push(inc(\"image/image\")(slide, part));\n        }\n      }\n      return results$;\n    }());\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"addons/topbarLevel/hint/hint/enableDrag/enableDrag.ls","text":"(function(){\n  return function(div2, content, open, close){\n    return inc(\"/lib/util/dragDown/dragDown\")({\n      div: div2,\n      minY: -content.height(),\n      handle: div2.findFirst(\".dragHandle\"),\n      extendedBackgroundCss: {\n        backgroundColor: Color.grey[75],\n        border: \"1px solid \" + Color.grey[250],\n        borderBottom: \"\"\n      },\n      onDone: function(showing){\n        if (showing) {\n          return open();\n        } else {\n          return close();\n        }\n      }\n    });\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"data/school/groupAdd/add.ls","text":"(function(){\n  return function(o){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/school/group/add/add\"),\n      params: {\n        schoolCode: o.schoolCode,\n        groupCode: o.groupCode\n      },\n      onCompleted: function(result){\n        if (result.status !== \"ok\") {\n          return typeof o.onError == 'function' ? o.onError(result) : void 8;\n        } else {\n          return o.onCompleted(result);\n        }\n      },\n      onError: function(error){\n        return typeof o.onError == 'function' ? o.onError(error) : void 8;\n      },\n      onOffline: function(){\n        return typeof o.onOffline == 'function' ? o.onOffline() : void 8;\n      }\n    });\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"data/school/schoolCreate/create.ls","text":"(function(){\n  return function(o){\n    var ref$;\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/school/create/create\"),\n      params: {\n        name: o.name,\n        location: o.location,\n        googlePlace: o.googlePlace,\n        creatorPublicId: o.creatorPublicId,\n        addCreatorAsMember: (ref$ = o.addCreatorAsMember) != null ? ref$ : true,\n        groupCode: o.groupCode\n      },\n      onCompleted: function(result){\n        if (result.status !== \"ok\") {\n          return typeof o.onError == 'function' ? o.onError(result) : void 8;\n        } else {\n          return o.onCompleted(result);\n        }\n      },\n      onError: function(error){\n        return typeof o.onError == 'function' ? o.onError(error) : void 8;\n      },\n      onOffline: function(){\n        return typeof o.onOffline == 'function' ? o.onOffline() : void 8;\n      }\n    });\n  };\n})();","updated":"2021-07-22T13:30:42.438715"},{"path":"pages/support/help/faqList/filterCategories/filter.ls","text":"(function(){\n  return function(page){\n    var filteredCategories, query, ref$;\n    filteredCategories = _.clone(page.categories);\n    query = (ref$ = page.params.search) != null ? ref$.toLowerCase() : void 8;\n    filteredCategories = _.filter(filteredCategories, function(cat){\n      return cat.guiLanguages == null || _.includes(cat.guiLanguages, engine.guiLanguage);\n    });\n    inc(\"filterQuestions/filter\")(query, filteredCategories);\n    filteredCategories = _.filter(filteredCategories, function(c){\n      return c.questions.length > 0;\n    });\n    if (query && page.params.history !== -1) {\n      inc(\"logSearch/log\")(query, filteredCategories);\n    }\n    return filteredCategories;\n  };\n})();","updated":"2023-05-02T11:04:27.85259"},{"path":"lib/util/pllsCall/onError/onError.ls","text":"(function(){\n  return function(o){\n    return function(errorMessage, additionalData){\n      var ref$;\n      window.onerror(\"pllsError \" + errorMessage, \"plls:\" + o.params.path, null, null, errorMessage);\n      o.clearUrl();\n      o.logDebugEvent(\"error, \" + errorMessage, additionalData);\n      return typeof (ref$ = o.params).onError == 'function' ? ref$.onError(errorMessage, o.isSamePage()) : void 8;\n    };\n  };\n})();","updated":"2021-07-29T10:53:02.183061"},{"path":"lib/util/pllsCall/send/send.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var data;\n      o.xhr.open(\"post\", o.url);\n      o.xhr.responseType = \"json\";\n      o.xhr.setRequestHeader(\"Content-type\", \"application/json\");\n      data = {\n        params: o.params.params,\n        queryInfo: o.params.queryInfo,\n        path: o.params.path,\n        logId: typeof log != 'undefined' && log !== null ? log.id() : void 8,\n        deviceLogId: Store(\"deviceLogId\"),\n        isDebug: engine.isDebug,\n        useAuthToken: Store(\"useAuthToken\"),\n        dbMode: o.params.dbMode || (Store(\"debugLoggerReadOnly\") ? \"masterRollback\" : void 8),\n        authToken: Store(\"useAuthToken\") ? inc(\"/lib/util/storedAuthToken/get/get\")(typeof log != 'undefined' && log !== null ? log.id() : void 8) || \"noStoredAuthTokenFound\" : void 8\n      };\n      o.xhr.send((function(){\n        try {\n          return JSON.stringify(data);\n        } catch (e$) {}\n      }()));\n      return o.xhr.onreadystatechange = function(){\n        if (o.xhr.readyState !== 4) {\n          return;\n        }\n        return trySafe(o.onLoaded);\n      };\n    };\n  };\n})();","updated":"2021-07-29T10:53:02.183061"},{"path":"lib/util/pllsCall/setTimeout/setTimeout.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var onTimeout, ref$;\n      onTimeout = function(){\n        if (!o.isVisible()) {\n          return;\n        }\n        o.isDone = true;\n        return o.onOffline(\"timeout\");\n      };\n      return o.requestTimeout = setTimeout(onTimeout, (ref$ = o.params.timeout) != null ? ref$ : 30000);\n    };\n  };\n})();","updated":"2021-07-29T10:53:02.183061"},{"path":"pages/level/finishLevel/_shared/calcCharacter/characters/characters-es.ls","text":"(function(){\n  return function(){\n    var characters, now, charactersXmas;\n    characters = [\n      {\n        pixi: 'female',\n        voice: \"f1EsUs_override_VF\"\n      }, {\n        pixi: 'male-asia',\n        voice: \"m1_override_FV\"\n      }, {\n        pixi: 'male',\n        voice: \"m1_override_RG\"\n      }, {\n        pixi: 'female-afro',\n        voice: \"f1EsUs_override_AD\"\n      }, {\n        pixi: 'male-india',\n        voice: \"m1_override_ER\"\n      }, {\n        pixi: 'male-afro',\n        voice: \"m1_override_MP\"\n      }, {\n        pixi: 'female-asia',\n        voice: \"f1EsUs_override_VF\"\n      }, {\n        pixi: 'female-india',\n        voice: \"f1EsUs_override_AD\"\n      }, {\n        pixi: 'pig',\n        voice: \"m1_override_RK\"\n      }, {\n        pixi: 'cow',\n        voice: \"m1_override_RG\"\n      }, {\n        pixi: 'super-f',\n        voice: \"f1EsUs_override_AD\"\n      }, {\n        pixi: 'super',\n        voice: \"m1_override_MP\"\n      }\n    ];\n    now = inc(\"/lib/util/formatDate2/format\")();\n    if (now.specialDays.isChristmasPeriod) {\n      charactersXmas = [\n        {\n          pixi: 'xmas',\n          voice: \"m1_override_MP\"\n        }, {\n          pixi: 'xmas-f',\n          voice: \"f1EsUs_override_VF\"\n        }\n      ];\n      characters = charactersXmas.concat(characters);\n    }\n    return characters;\n  };\n})();","updated":"2021-08-30T10:52:54.890581"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/showTrialsOverlay/rows/rows.ls","text":"(function(){\n  return function(p, level, events){\n    var rows;\n    return rows = (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = events).length; i$ < len$; ++i$) {\n        results$.push((fn$.call(this, i$, ref$[i$])));\n      }\n      return results$;\n      function fn$(i, e){\n        return {\n          label: inc(\"row/row\")(p, e, i, events),\n          click: function(){\n            return p.update(e.round);\n          }\n        };\n      }\n    }.call(this));\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/progressBar/progressBar.ls","text":"(function(){\n  return function(event){\n    var div;\n    return div = Div({\n      display: \"inline-flex\",\n      background: Color.grey[300],\n      height: \"11px\",\n      width: \"2em\",\n      overflow: \"hidden\",\n      borderRadius: \"5px\",\n      margin: \"0 0.5em\"\n    }).onDomAppend(function(){\n      inc(\"fakeProgressColors/fake\")(event);\n      return div.append(inc(\"canvas/canvas\")(div, event));\n    });\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"pages/level/reviewOrPreviewPopup/_shared/calcDateLabel/calc.ls","text":"(function(){\n  return function(p, e){\n    var date, isSelf, ref$, isSmall, dateLabel, date2;\n    date = inc(\"/lib/util/formatDate2/format\")(e.created);\n    isSelf = p.publicId == null || p.publicId === ((ref$ = log.findLast(\"setPublicId\")) != null ? ref$.value : void 8);\n    isSmall = body.width() < 500;\n    dateLabel = isSelf\n      ? isSmall\n        ? date.formats.fullShort\n        : date.formats.full\n      : isSmall\n        ? date.formats.dateShort\n        : date.formats.date;\n    if (!isSelf && (date.specialDays.isToday || date.specialDays.isYesterday)) {\n      date2 = inc(\"/lib/util/formatDate2/format\")(e.created, {\n        ensureDate: true\n      });\n      dateLabel += isSmall\n        ? \" \" + date2.formats.dateShort\n        : \" \" + date2.formats.date;\n    }\n    return dateLabel;\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"pages/level/reviewOrPreviewPopup/calcReviewEvents/addLocalEvents/add.ls","text":"(function(){\n  return function(serverEvents, puid){\n    var i$, ref$, len$, eventName, events;\n    for (i$ = 0, len$ = (ref$ = [\"score\", \"finishLevel\", \"abortLevel\"]).length; i$ < len$; ++i$) {\n      eventName = ref$[i$];\n      events = _.filter(log.list({\n        event: eventName,\n        puid: puid\n      }), fn$);\n      if (events.length > 0) {\n        serverEvents = serverEvents.concat(events);\n      }\n    }\n    return serverEvents;\n    function fn$(e){\n      return !e.inserted && !_.find(serverEvents, function(e2){\n        return e2.event === e.event && e2.round === e.round;\n      });\n    }\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/showTrialsOverlay/rows/row/row.ls","text":"(function(){\n  return function(p, e, i, events){\n    var dateLabel;\n    dateLabel = inc(\"../../../../../_shared/calcDateLabel/calc\")(p, e);\n    return Div({\n      display: \"flex\",\n      padding: \"0.2em\",\n      justifyContent: \"space-between\"\n    }).addClass(\"row\" + i).html(Div({\n      display: \"inline\"\n    }).html(dateLabel), inc(\"../../../progressBar/progressBar\")(e));\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"pages/level/reviewOrPreviewPopup/calcReviewScores/getScoreEvents/calcScoreEvents/calc.ls","text":"(function(){\n  return function(o){\n    var e, scoreEvents;\n    if (o.round) {\n      e = _.find(o.events, function(e2){\n        var ref$;\n        return ((ref$ = e2.event) === \"finishLevel\" || ref$ === \"abortLevel\") && e2.round === o.round;\n      });\n    } else {\n      e = _.findLast(o.events, {\n        event: \"finishLevel\"\n      });\n      o.round = e != null ? e.round : void 8;\n    }\n    if (!e) {\n      o.onLoaded([], null);\n      return;\n    }\n    _.setRandomSeed(o.round);\n    o.level.startedAt = new Date(new Date(e.created) - e.duration * 1000);\n    o.level.finishedAt = e.created;\n    if (e.isSkipped) {\n      o.level.isSkipped = true;\n    } else {\n      delete o.level.isSkipped;\n    }\n    scoreEvents = _.filter(o.events, {\n      event: \"score\",\n      round: e.round,\n      src: e.src\n    });\n    return o.onLoaded(scoreEvents, e);\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/progressBar/canvas/canvas.ls","text":"(function(){\n  return function(div, event){\n    var canvas, ctx;\n    canvas = inc(\"canvas/canvas\")(div);\n    ctx = canvas.getContext(\"2d\");\n    inc(\"drawProgressColors/draw\")(0, canvas.height, 0, canvas.width, event.progressColors, event.total, ctx);\n    return canvas;\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/progressBar/canvas/canvas/canvas.ls","text":"(function(){\n  return function(div){\n    var dpr, w, h;\n    dpr = window.devicePixelRatio;\n    w = _.round(div.width() * dpr);\n    h = _.round(div.height() * dpr);\n    return document.createElement(\"canvas\").attr({\n      width: w,\n      height: h\n    }).css({\n      width: w / dpr + \"px\",\n      height: h / dpr + \"px\"\n    });\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/progressBar/canvas/drawProgressColors/draw.ls","text":"(function(){\n  return function(yFrom, yTo, xFrom, xTo, progressColors, totalElements, ctx){\n    var s, parts, total, res$, i$, len$, i, p, t, scoreWidth, colors, xFrom2, xDelta, results$ = [];\n    s = progressColors;\n    if (!s) {\n      return;\n    }\n    s = s.split(\"g\").join(\"g|\");\n    s = s.split(\"r\").join(\"r|\");\n    s = s.split(\"b\").join(\"b|\");\n    parts = s.split(\"|\");\n    parts = parts.filter(function(p){\n      return p.length > 0;\n    });\n    total = 0;\n    res$ = [];\n    for (i$ = 0, len$ = parts.length; i$ < len$; ++i$) {\n      i = i$;\n      p = parts[i$];\n      if (p.length === 1) {\n        total++;\n        parts[i] = 1 + p;\n        res$.push({\n          color: p,\n          total: 1,\n          start: total - 1\n        });\n      } else {\n        t = +p.substr(0, p.length - 1);\n        total += t;\n        res$.push({\n          color: _.last(p),\n          total: t,\n          start: total - t\n        });\n      }\n    }\n    parts = res$;\n    if (totalElements > total) {\n      total = totalElements;\n    }\n    scoreWidth = (xTo - xFrom) / total;\n    colors = {\n      g: Color.green[400],\n      r: Color.red[400],\n      b: Color.grey[450]\n    };\n    for (i$ = 0, len$ = parts.length; i$ < len$; ++i$) {\n      p = parts[i$];\n      xFrom2 = xFrom + p.start * scoreWidth;\n      xDelta = p.total * scoreWidth;\n      ctx.fillStyle = colors[p.color];\n      results$.push(ctx.fillRect(xFrom2, yFrom, xDelta, yTo - yFrom));\n    }\n    return results$;\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/progressBar/fakeProgressColors/fake.ls","text":"(function(){\n  return function(event){\n    var c, that;\n    if (event.progressColors != null) {\n      return;\n    }\n    c = \"\";\n    if (that = event.corrects) {\n      c += that + \"g\";\n    }\n    if (that = event.mistakes) {\n      c += that + \"r\";\n    }\n    return event.progressColors = c;\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"lib/util/downloadManager/preparePlan/prepareNextPlan/preparePlan/1_loadPlan/loadGroupPlan/checkObsoleteGroup/check.ls","text":"(function(){\n  return function(groupCode, onOk, onError){\n    var userLogs, key$, i$, userLog, e;\n    userLogs = _.clone(window.userLogs);\n    userLogs[key$ = log.id()] == null && (userLogs[key$] = log);\n    for (i$ in userLogs) {\n      userLog = userLogs[i$];\n      e = userLog.findLast({\n        event: \"isGroupMember\",\n        groupCode: groupCode\n      });\n      if (e) {\n        onOk();\n        return;\n      }\n    }\n    return onError(\"no local user is group member\");\n  };\n})();","updated":"2021-08-12T11:44:55.139072"},{"path":"pages/level/reviewOrPreviewPopup/calcReviewEvents/calc.ls","text":"(function(){\n  return function(o){\n    var ref$;\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/level/reviewReport/get\"),\n      params: {\n        levelPuid: o.level.puid,\n        publicId: o.publicId || ((ref$ = log.findLast(\"setPublicId\")) != null ? ref$.value : void 8)\n      },\n      requiredVisibleDiv: o.div,\n      onCompleted: function(result){\n        var events, ref$;\n        if (result.status !== \"ok\") {\n          return o.onError();\n        } else {\n          events = _.orderBy(result.events, \"created\");\n          if (o.publicId == null || o.publicId === ((ref$ = log.findLast(\"setPublicId\")) != null ? ref$.value : void 8)) {\n            events = inc(\"addLocalEvents/add\")(events, o.level.puid);\n          }\n          return o.onDone(events);\n        }\n      },\n      onError: o.onError,\n      onOffline: function(){\n        return o.onError({\n          error: \"offline\"\n        });\n      }\n    });\n  };\n})();","updated":"2021-08-12T15:02:48.052806"},{"path":"lib/gui/pixiSpineCanvas/createSpine/create.ls","text":"(function(){\n  return function(o){\n    var skeletonJson, skeletonData;\n    skeletonJson = new PIXI.spine.core.SkeletonJson(new PIXI.spine.core.AtlasAttachmentLoader(o.atlas));\n    skeletonJson.scale = o.scale;\n    skeletonData = skeletonJson.readSkeletonData(JSON.parse(inc(o.projectFolder + \"/skeleton.json\")));\n    return new PIXI.spine.Spine(skeletonData);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/prestart/engineOutdated/stop/page.ls","text":"(function(){\n  return function(page){\n    return {\n      start: function(){\n        deviceLog.log({\n          event: \"deviceDebugStopOutdatedEngine\",\n          stopDate: page.params.stopDate,\n          engineVersion: engine.clientVersion\n        });\n        return page.append(inc(\"text/text\")(), inc(\"/lib/gui/buttonOpenAppStore/button\")());\n      }\n    };\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/static/terms/_shared/openUrl/open.ls","text":"(function(){\n  return function(url){\n    return inc(\"/lib/gui/parentalGate/parentalGate\")(function(){\n      return window.open(url, \"_system\");\n    });\n  };\n})();","updated":"2024-01-10T09:56:20.242678"},{"path":"pages/prestart/engineOutdated/warning/buttonContinue/button.ls","text":"(function(){\n  return function(){\n    var click;\n    click = function(){\n      return inc(\"/lib/init/startFirstPage/start\")();\n    };\n    return inc(\"/lib/gui/link/link\")(T(\"notNow\")).css({\n      margin: \"0.2em\",\n      padding: \"0.3em\"\n    }).tap(click);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/createKeys/keys/submit/key.ls","text":"(function(){\n  return function(key, o){\n    var up, div;\n    up = function(){\n      return o.onKey(\"submit\", true);\n    };\n    div = inc(\"../_div/div\")({\n      o: o,\n      key: key,\n      color: \"grey3\",\n      up: up,\n      keyDivHtml: Div().css({\n        flex: \"1 1 auto\",\n        overflow: \"hidden\",\n        textOverflow: \"ellipsis\",\n        fontSize: \"0.9em\"\n      }).html(o.submitLabel)\n    });\n    return div;\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/avatar/overlay/avatar/avatar.ls","text":"(function(){\n  return function(o, avatar){\n    return Div().css({\n      width: \"100%\",\n      height: \"100%\",\n      display: \"flex\",\n      flexDirection: \"column\"\n    }).append(o.avatarSvg = inc(\"/../app01-avatar/avatar/avatar\")({\n      avatar: avatar,\n      view: \"full\"\n    }).css({\n      borderRadius: \"999px\",\n      filter: 'drop-shadow(0 0 0.5em rgba(0, 0, 0, 0.2))',\n      height: \"100%\",\n      width: \"100%\"\n    }));\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/buttonOpenAppStore/openStore/open.ls","text":"(function(){\n  return function(){\n    var p, type, url;\n    p = inc(\"/lib/util/calcAppType/calcPlatform/calc\")();\n    type = p === \"Android\"\n      ? engine.isAmazonDevice || navigator.userAgent.indexOf(\"Silk\") !== -1 ? \"amazon\" : \"android\"\n      : p === \"iOS\" ? \"iOS\" : void 8;\n    url = type === \"amazon\"\n      ? \"amzn://apps/android?p=com.solocode.anton\"\n      : type === \"android\"\n        ? \"https://play.app.goo.gl/?link=https://play.google.com/store/apps/details?id=com.solocode.anton\"\n        : type === \"iOS\" ? \"itms-apps://itunes.apple.com/app/id1180554775\" : void 8;\n    if (!url) {\n      return;\n    }\n    return window.open(url, \"_system\");\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/lottie/lottie.ls","text":"(function(){\n  return function(o){\n    var div;\n    o = _.cloneDeep(o);\n    if (_.isString(o)) {\n      o = {\n        path: o,\n        loop: true,\n        autoplay: true\n      };\n    }\n    div = Div();\n    div.addClass(\"lottie\").css({\n      display: \"inline-block\",\n      width: o.width || o.height,\n      height: o.height || o.width,\n      boxSizing: \"content-box\"\n    }).onDomAppend(function(){\n      var lottieAnimation, ref$, b;\n      lottieAnimation = lottie.loadAnimation({\n        container: div,\n        renderer: \"canvas\",\n        loop: (ref$ = o.loop) != null ? ref$ : true,\n        autoplay: (ref$ = o.autoplay) != null ? ref$ : true,\n        animationData: JSON.parse(inc(o.path)),\n        name: o.name\n      });\n      b = function(e, f){\n        if (f) {\n          return lottieAnimation.addEventListener(e, f);\n        }\n      };\n      b(\"complete\", o.onComplete);\n      b(\"loopComplete\", o.onLoopComplete);\n      b(\"enterFrame\", o.onEnterFrame);\n      b(\"segmentStart\", o.onSegmentStart);\n      return div.lottieAnimation = lottieAnimation;\n    }).onDomRemove(function(){\n      div.lottieAnimation.destroy();\n      return div.remove();\n    });\n    return div;\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/maintenanceMessage/message.ls","text":"(function(){\n  return function(type){\n    var ref$, message, lang, ref1$;\n    if (type === \"showOnOffline\" && ((ref$ = engine.networkConnection) != null ? ref$.isOnline : void 8) === false) {\n      return;\n    }\n    message = inc(\"/lib/util/calcMaintenanceMessage/calc\")();\n    lang = (ref1$ = engine.guiLanguage.substr(0, 2)) != null ? ref1$ : \"de\";\n    if (message != null && message[type]) {\n      return Div().css({\n        padding: \"0.7em\",\n        background: Color.red[100],\n        maxWidth: \"90%\",\n        width: \"30em\",\n        margin: \"0 auto 1.5em\"\n      }).html(message.text[lang]);\n    }\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/pixiSpineCanvas/createAtlas/create.ls","text":"(function(){\n  return function(o, callback){\n    var svgs, total, loaded, textures, resolution, load, onTextureUpdate, done;\n    svgs = inc(o.projectFolder + \"/images/*.svg\", {\n      returnAsObject: true\n    });\n    total = _.keys(svgs).length;\n    loaded = 0;\n    textures = {};\n    resolution = o.renderer.resolution;\n    load = function(){\n      var path, ref$, svg, div, src, texture, p, filename, name, results$ = [];\n      for (path in ref$ = svgs) {\n        svg = ref$[path];\n        div = Div();\n        div.innerHTML = svg;\n        svg = div.firstChild;\n        svg.attr({\n          width: Math.max(1, +svg.attr(\"width\") * resolution * o.scale),\n          height: Math.max(1, +svg.attr(\"height\") * resolution * o.scale)\n        });\n        svg = svg.outerHTML;\n        src = \"data:image/svg+xml;base64,\" + window.btoa(svg);\n        texture = PIXI.Texture.fromImage(src);\n        p = path.split(\"/\");\n        filename = p[p.length - 1];\n        name = filename.replace(\".svg\", \"\");\n        textures[name] = texture;\n        if (texture.baseTexture.hasLoaded) {\n          results$.push(onTextureUpdate(\"hasLoaded\"));\n        } else {\n          results$.push(texture.on(\"update\", onTextureUpdate));\n        }\n      }\n      return results$;\n    };\n    onTextureUpdate = function(){\n      loaded = loaded + 1;\n      if (loaded === total) {\n        return trySafe(function(){\n          return done();\n        });\n      }\n    };\n    done = function(){\n      var atlas;\n      atlas = new PIXI.spine.core.TextureAtlas();\n      atlas.addTextureHash(textures, true);\n      o.atlas = atlas;\n      return callback();\n    };\n    return load();\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/tooltip/multi/chars/chars.ls","text":"(function(){\n  return function(key){\n    var div, char;\n    key.updateChars = function(){\n      var i$, ref$, len$, c, results$ = [];\n      for (i$ = 0, len$ = (ref$ = key.charDivs).length; i$ < len$; ++i$) {\n        c = ref$[i$];\n        if (c.char === key.currentChar) {\n          results$.push(c.select());\n        } else {\n          results$.push(c.unselect());\n        }\n      }\n      return results$;\n    };\n    div = Div().css({\n      display: \"flex\"\n    }).append(key.charDivs = (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = key.value).length; i$ < len$; ++i$) {\n        char = ref$[i$];\n        results$.push(inc(\"char/char\")(char));\n      }\n      return results$;\n    }()));\n    key.updateChars();\n    return div;\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/tooltip/multi/show.ls","text":"(function(){\n  return function(key, o, div){\n    var tooltip, ref$;\n    tooltip = inc(\"../_tooltip/tooltip\")(o);\n    tooltip.div1.html(inc(\"chars/chars\")(key));\n    if ((ref$ = o.currentTooltip) != null) {\n      ref$.removeTooltip();\n    }\n    o.currentTooltip = tooltip;\n    tooltip.move = function(e){\n      return inc(\"move/move\")(e, key);\n    };\n    return div.keyDiv.append(tooltip);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/tooltip/single/show.ls","text":"(function(){\n  return function(key, o, div){\n    var tooltip, ref$;\n    tooltip = inc(\"../_tooltip/tooltip\")(o);\n    tooltip.div1.html(Div().css({\n      padding: \"0.2em 0.6em\"\n    }).html(key.value.charAt(0)));\n    if ((ref$ = o.currentTooltip) != null) {\n      ref$.removeTooltip();\n    }\n    o.currentTooltip = tooltip;\n    return div.keyDiv.append(tooltip);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/createKeys/keys/left/repeater/start.ls","text":"(function(){\n  return function(o, key, delay){\n    var minDelay, ref$;\n    minDelay = 50;\n    if (((ref$ = o.currentKey) != null ? ref$.key : void 8) === key) {\n      o.onKey(\"left\", true);\n      delay = Math.max(minDelay, delay);\n      return key.repeaterTimeout = setTimeout(function(){\n        return inc(THISFILE)(o, key, delay - 100);\n      }, delay);\n    }\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/createKeys/keys/right/repeater/start.ls","text":"(function(){\n  return function(o, key, delay){\n    var minDelay, ref$;\n    minDelay = 50;\n    if (((ref$ = o.currentKey) != null ? ref$.key : void 8) === key) {\n      o.onKey(\"right\", true);\n      delay = Math.max(minDelay, delay);\n      return key.repeaterTimeout = setTimeout(function(){\n        return inc(THISFILE)(o, key, delay - 100);\n      }, delay);\n    }\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/createKeys/keys/spacer/key.ls","text":"(function(){\n  return function(key, o){\n    var up, div;\n    up = function(){\n      return o.onKey(\"+\");\n    };\n    return div = inc(\"../_div/div\")({\n      o: o,\n      key: key,\n      keyDivHtml: \"+\",\n      color: \"grey3\",\n      up: up\n    }).css({\n      visibility: \"hidden\"\n    });\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/event/move/move.ls","text":"(function(){\n  return function(o){\n    var onMove;\n    onMove = function(e){\n      var ref$, mousePressed, key, ref1$, ref2$, ref3$;\n      e.preventDefault();\n      if ((ref$ = o.currentTooltip) != null && ref$.move) {\n        o.currentTooltip.move(e);\n        return;\n      }\n      mousePressed = inc(\"calcMouseDown/calc\")(e);\n      key = inc(\"../_calcKeyFromEvent/calc\")(e);\n      if (!e.touches && !mousePressed) {\n        return;\n      }\n      if (((ref1$ = e.touches) != null ? ref1$.length : void 8) > 1) {} else if (key === o.currentKey) {} else if (o.currentKey !== key) {\n        if ((ref2$ = o.currentKey) != null) {\n          ref2$.cancel();\n        }\n        o.currentKey = key;\n        if ((ref3$ = o.currentKey) != null) {\n          ref3$.down();\n        }\n        if (typeof vibrate == 'function') {\n          vibrate(VIBRATION_TYPES.gestureSelectionChanged);\n        }\n        return inc(\"../downLong/setTimeout\")(o);\n      }\n    };\n    return o.div.bind(\"touchmove mousemove\", onMove);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/screenKeyboard/event/up/up.ls","text":"(function(){\n  return function(o){\n    var onEnd;\n    onEnd = function(e){\n      var key, ref$;\n      e.preventDefault();\n      key = inc(\"../_calcKeyFromEvent/calc\")(e);\n      if ((ref$ = o.currentKey) != null) {\n        ref$.up();\n      }\n      o.currentKey = null;\n      o.currentTooltip = null;\n      o.mouseBackground.hide();\n      return typeof vibrate == 'function' ? vibrate(VIBRATION_TYPES.gestureSelectionEnd) : void 8;\n    };\n    return o.div.bind(\"touchend mouseup\", onEnd);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/showMaintainancePopupOnce/show.ls","text":"(function(){\n  return function(){\n    var message, e, popup;\n    if (!log) {\n      return;\n    }\n    message = inc(\"/lib/util/calcMaintenanceMessage/calc\")();\n    if (message != null && message.showOnceOnResume) {\n      e = log.findLast({\n        event: \"maintainanceMessagePopupShown\",\n        value: message.id\n      });\n      if (!e) {\n        log.log({\n          event: \"maintainanceMessagePopupShown\",\n          value: message.id\n        });\n        return popup = inc(\"/lib/gui/popup/popup\")({\n          html: Div().css({\n            margin: \"1em\"\n          }).append(inc(\"/lib/gui/maintenanceMessage/message\")(\"showOnceOnResume\"), Button().html(T(\"continueButton\")).tap(function(){\n            return popup.close();\n          }))\n        });\n      }\n    }\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/slider/slider.ls","text":"(function(){\n  return function(o){\n    var currentPercentage, onKnobChange, onKnobEnd, slider, background, backgroundFill, knob;\n    currentPercentage = 0;\n    onKnobChange = function(){\n      var offset, parentOff, mid;\n      offset = knob.offset();\n      parentOff = slider.offset();\n      mid = offset.left + offset.width / 2 - parentOff.left;\n      backgroundFill.css({\n        right: (parentOff.width - mid) + \"px\"\n      });\n      currentPercentage = mid / parentOff.width;\n      return typeof o.onChange == 'function' ? o.onChange(currentPercentage) : void 8;\n    };\n    onKnobEnd = function(){\n      return typeof o.onEnd == 'function' ? o.onEnd(currentPercentage) : void 8;\n    };\n    slider = Div().append(background = inc(\"background/background\")(Color.grey[300]), backgroundFill = inc(\"background/background\")(Color.blue[500]), knob = inc(\"knob/knob\")(onKnobChange, onKnobEnd)).css({\n      display: \"inline-block\",\n      height: \"1em\",\n      width: \"10em\"\n    });\n    slider.setPercentage = function(percentage){\n      var currentPercentage, offset, parentOff, mid;\n      currentPercentage = Math.min(1, Math.max(0, percentage));\n      offset = knob.offset();\n      parentOff = slider.offset();\n      mid = offset.left + offset.width / 2 - parentOff.left;\n      if (currentPercentage > 0) {\n        mid = currentPercentage * parentOff.width;\n        knob.css({\n          left: (mid - offset.width / 2) + \"px\"\n        });\n      }\n      return backgroundFill.css({\n        right: (parentOff.width - mid) + \"px\"\n      });\n    };\n    requestAnimationFrame(function(){\n      var ref$;\n      return slider.setPercentage((ref$ = o.initialPercentage) != null ? ref$ : 0);\n    });\n    return slider;\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/prestart/engineOutdated/warning/text/text.ls","text":"(function(){\n  return function(stopDate){\n    var d, store;\n    d = inc(\"/lib/util/convertTimeString/convert\")(stopDate) - new Date();\n    d = _.round(d / (1000 * 60 * 60 * 24));\n    d = Math.max(1, _.round(d));\n    store = engine.isAndroidApp\n      ? T(\"playStore2\")\n      : T(\"appStore2\");\n    return Div().css({\n      width: \"35em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto 0.8em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"appSupportWillEndText\", d, store));\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/toast/toast.ls","text":"(function(){\n  return function(o){\n    var i$, ref$, len$, t, div;\n    for (i$ = 0, len$ = (ref$ = body.findAll(\".toast\")).length; i$ < len$; ++i$) {\n      t = ref$[i$];\n      t.remove();\n    }\n    div = inc(\"div/div\")(o).appendTo(body);\n    return inc(\"animation/animation\")(o, div);\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"lib/gui/verticalBarCanvas/createCanvas/create.ls","text":"(function(){\n  return function(div, stats){\n    var dpr, width, height, canvas, context, rowHeight, i$, len$, i, stat, yFrom, yTo;\n    dpr = window.devicePixelRatio;\n    width = _.round(div.width() * dpr);\n    height = _.round(div.height() * dpr);\n    canvas = document.createElement(\"canvas\").attr({\n      width: width,\n      height: height\n    }).css({\n      backgroundColor: Color.grey[200],\n      width: width / dpr + \"px\",\n      height: height / dpr + \"px\"\n    });\n    context = canvas.getContext(\"2d\");\n    rowHeight = height / stats.length;\n    for (i$ = 0, len$ = stats.length; i$ < len$; ++i$) {\n      i = i$;\n      stat = stats[i$];\n      yFrom = _.round(i * rowHeight);\n      yTo = _.round((i + 1) * rowHeight);\n      inc(\"row/row\")(yFrom, yTo, width, stat, context);\n    }\n    return canvas;\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"lib/gui/verticalBarCanvas/verticalBarCanvas.ls","text":"(function(){\n  return function(stats){\n    var div;\n    return div = Div().css({\n      width: \"0.6em\",\n      height: \"2em\",\n      margin: \"0 0.4em\"\n    }).onDomAppend(function(){\n      if (!div.canvas) {\n        return div.append(div.canvas = inc(\"createCanvas/create\")(div, stats));\n      }\n    });\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/level/afterFinish/pages/levelRating/01_rating/icons/icons.ls","text":"(function(){\n  return function(onChoose){\n    var selected, choose, iconProperties, div, icons, i, icon;\n    selected = -1;\n    choose = function(index){\n      var i$, ref$, len$, i, icon;\n      onChoose(index);\n      for (i$ = 0, len$ = (ref$ = icons).length; i$ < len$; ++i$) {\n        i = i$;\n        icon = ref$[i$];\n        if (i === index) {\n          icon.animate();\n          icon.css({\n            opacity: 1\n          });\n        } else {\n          icon.css({\n            opacity: 0.2\n          });\n        }\n      }\n      return selected = index;\n    };\n    iconProperties = [\n      {\n        path: path(\"/lib/svg/emoticon/cry.svg\"),\n        color: Color.red[500]\n      }, {\n        path: path(\"/lib/svg/emoticon/sad.svg\"),\n        color: Color.orange[600]\n      }, {\n        path: path(\"/lib/svg/emoticon/neutral.svg\"),\n        color: Color.yellow[600]\n      }, {\n        path: path(\"/lib/svg/emoticon/smile.svg\"),\n        color: Color.lime[500]\n      }, {\n        path: path(\"/lib/svg/emoticon/laugh.svg\"),\n        color: Color.green[500]\n      }\n    ];\n    div = Div({\n      padding: \"1.5em 0 1em\"\n    }).html(icons = (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = iconProperties).length; i$ < len$; ++i$) {\n        i = i$;\n        icon = ref$[i$];\n        results$.push(inc(\"icon/icon\")(icon, i, choose));\n      }\n      return results$;\n    }()));\n    div.icons = icons;\n    div.choose = choose;\n    return div;\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/level/afterFinish/pages/levelRating/01_rating/page.ls","text":"(function(){\n  return function(page){\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      start: function(){\n        var p, init, clickWrite, clickContinue, onChoose, icons, buttons;\n        p = page.params;\n        init = function(){\n          if (p.rating > -1) {\n            return icons.choose(p.rating);\n          }\n        };\n        clickWrite = function(){\n          return startPage({\n            path: path(\"../02_feedback/page\"),\n            params: {\n              rating: p.rating\n            },\n            animation: \"slideUp\"\n          });\n        };\n        clickContinue = function(){\n          page.css({\n            pointerEvents: \"none\"\n          });\n          return setTimeout(function(){\n            inc(\"../00_shared/logRating/log\")(page);\n            return startPage({\n              history: function(path){\n                return !_.includes(path, \"/level\");\n              }\n            });\n          }, 500);\n        };\n        onChoose = function(index){\n          buttons.fadeIn();\n          return p.rating = index;\n        };\n        page.append(inc(\"text/text\")(), icons = inc(\"icons/icons\")(onChoose), buttons = inc(\"buttons/buttons\")(clickWrite, clickContinue));\n        return init();\n      }\n    };\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/prestart/engineOutdated/softWarning/page.ls","text":"(function(){\n  return function(page){\n    return {\n      start: function(){\n        deviceLog.log({\n          event: \"deviceDebugSoftWarningOutdatedEngine\",\n          engineVersion: engine.clientVersion\n        });\n        return page.append(inc(\"text/text\")(), inc(\"/lib/gui/buttonOpenAppStore/button\")(), \"<br>\", inc(\"buttonContinue/button\")());\n      }\n    };\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/chat/bottom/buttonDesktopSend/button.ls","text":"(function(){\n  return function(page){\n    return inc(\"../_shared/sendButton/button\")(page);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/chat/list/row/message/center/center.ls","text":"(function(){\n  return function(message){\n    return Div().css({\n      flex: \"0 1 auto\",\n      padding: \"0.8em 0.4em\",\n      paddingTop: message.messageAt ? \"1em\" : void 8,\n      lineHeight: \"1.4em\",\n      textAlign: \"left\",\n      hyphens: \"wrap\",\n      userSelect: \"text\",\n      wordWrap: \"break-word\",\n      minWidth: \"10em\",\n      borderRadius: \"5px\",\n      border: message.from === \"support\"\n        ? \"1px solid \" + Color.grey[200]\n        : \"1px solid \" + Color.grey[300]\n    }).css(message.from === \"support\"\n      ? {\n        backgroundColor: Color.grey[75],\n        marginRight: \"1em\"\n      }\n      : {\n        backgroundColor: Color.grey[150],\n        marginLeft: \"1em\"\n      }).append(inc(\"text/text\")(message), inc(\"unreadStar/unreadStar\")(message), inc(\"date/date\")(message));\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/chat/list/row/message/center/date/date.ls","text":"(function(){\n  return function(message){\n    var date;\n    if (!message.messageAt) {\n      return;\n    }\n    date = inc(\"/lib/util/formatDate2/format\")(message.messageAt);\n    return Div().css({\n      position: \"absolute\",\n      right: message.from === \"user\" ? \"7px\" : void 8,\n      left: message.from !== \"user\" ? \"7px\" : void 8,\n      top: \"2px\",\n      fontSize: \"0.7em\",\n      color: Color.grey[500],\n      zIndex: 2\n    }).html(date.formats.time);\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/chat/list/row/row.ls","text":"(function(){\n  return function(page){\n    return function(data){\n      if (data.type === \"date\") {\n        return inc(\"date/row\")(page, data);\n      } else if (data.type === \"space\") {\n        return inc(\"space/row\")();\n      } else {\n        return inc(\"message/row\")(page, data);\n      }\n    };\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/support/help/chat/onNewLogEvents/on.ls","text":"(function(){\n  return function(page){\n    page.addClass(\"onNewLogEvents_supportChat\");\n    return page.onNewLogEvents = function(events){\n      var dataLength, events2, i$, len$, e, insertPosition, dataLength2;\n      dataLength = page.data.length;\n      events2 = _.filter(events, function(e){\n        return !e.logId || e.logId === log.id();\n      });\n      for (i$ = 0, len$ = events2.length; i$ < len$; ++i$) {\n        e = events2[i$];\n        insertPosition = inc(\"calcInsertPosition/calc\")(page, e);\n        if (insertPosition > 0) {\n          page.list.insertRow({\n            position: insertPosition,\n            data: e\n          });\n        }\n      }\n      dataLength2 = page.data.length;\n      if (dataLength2 > dataLength) {\n        return requestAnimationFrame(function(){\n          return page.list.scrollRowIntoView(dataLength2 - 1);\n        });\n      }\n    };\n  };\n})();","updated":"2021-08-20T08:46:38.472999"},{"path":"pages/static/cancelDeletionDirAdmin/04_cancelDeletion/cancelDeletion/cancel.ls","text":"(function(){\n  return function(onDone, onError){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/user/cancelDeletionDirAdmin/cancel\"),\n      params: {\n        logId: log.id(),\n        deviceId: deviceLog.id()\n      },\n      onCompleted: function(result){\n        if (result.status === \"ok\") {\n          return log.sync(function(){\n            return onDone(result.loginCode);\n          });\n        } else {\n          debug(result);\n          return onError(result);\n        }\n      },\n      onError: onError,\n      onOffline: function(){\n        return onError(\"offline\");\n      }\n    });\n  };\n})();","updated":"2021-08-23T15:15:18.579851"},{"path":"pages/level/_shared/checkMinLevelPlayerVersion/label/label.ls","text":"(function(){\n  return function(level, levelPlayerVersion){\n    return Div().append(T(\"restartOnline\"), engine.isDebug ? Div({\n      fontSize: \"0.7em\",\n      color: Color.grey[500]\n    }).html(\"<br>Debug:<br>levelVersion: \" + level.minLevelPlayerVersion + \"<br>playerVersion: \" + levelPlayerVersion + \"\") : void 8);\n  };\n})();","updated":"2021-08-23T15:34:50.918565"},{"path":"lib/init/logDeviceStartEvents/log.ls","text":"(function(){\n  return function(){\n    inc(\"firstStartDetails/log\")();\n    inc(\"restartOnResume/log\")();\n    inc(\"start/log\")();\n    inc(\"setAppType/log\")();\n    inc(\"setEngineVersion/log\")();\n    inc(\"setUserAgent/log\")();\n    inc(\"setScreenSize/log\")();\n    inc(\"setUserLogIds/log\")();\n    inc(\"setRememberUser/log\")();\n    inc(\"setDebug/log\")();\n    inc(\"setGuiLanguage/log\")();\n    inc(\"setMobileDeviceId/log\")();\n    inc(\"setMobileDeviceInfo/log\")();\n    inc(\"setSourceLevelRound/log\")();\n    inc(\"setUseAuthToken/log\")();\n    inc(\"projectVersions/log\")();\n    inc(\"engineInitEvents/log\")();\n    return inc(\"androidInstallReferrer/log\")();\n  };\n})();","updated":"2021-08-25T14:13:21.356259"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/superAnton/_t.ls","text":"(function(){\n  return {\n    myLevels: {\n      de: \"Meine Levels\",\n      en: \"My levels\",\n      fr: \"Mes niveaux\",\n      es: \"Mis niveles\",\n      pt: \"Meus níveis\"\n    },\n    newLevels: {\n      de: \"Neue Levels\",\n      en: \"New levels\",\n      fr: \"Nouveaux niveaux\",\n      es: \"Nuevos niveles\",\n      pt: \"Novos níveis\"\n    },\n    popularLevels: {\n      de: \"Beliebte Levels\",\n      en: \"Popular levels\",\n      fr: \"Niveaux populaires\",\n      es: \"Niveles populares\",\n      pt: \"Níveis populares\"\n    },\n    favouriteLevels: {\n      de: \"ANTON-Lieblings-Levels\",\n      en_gb: \"ANTON Favourite levels\",\n      en: \"ANTON Favorite levels\",\n      fr: \"Les niveaux préférés sur ANTON\",\n      es: \"Los niveles favoritos de ANTON\",\n      pt: \"Níveis favoritos de ANTON\"\n    }\n  };\n})();","updated":"2021-09-30T10:43:47.494227"},{"path":"lib/util/startPage/log/log.ls","text":"(function(){\n  var round, ref$, enabled;\n  return function(){};\n  round = (ref$ = Store(\"sourceLevelRound\")) != null ? ref$ : 0;\n  enabled = engine.guiLanguage !== \"de\" && round < 3;\n  return function(o){\n    var pagePath, e;\n    if (!enabled) {\n      return;\n    }\n    pagePath = helpers.resolvePath(o.path);\n    e = {\n      page: pagePath.file.replace(\".ls\", \"\"),\n      params: !_.isEmpty(o.params) ? o.params : void 8\n    };\n    if (pagePath.project !== \"app01\") {\n      e.project = pagePath.project;\n    }\n    if (window.log) {\n      e.event = \"page\";\n      return log.log(e);\n    } else if (window.deviceLog) {\n      e.event = \"devicePage\";\n      return window.deviceLog.log(e);\n    }\n  };\n})();","updated":"2024-04-11T12:51:45.720671"},{"path":"lib/gui/divEditable/disable/disable.ls","text":"(function(){\n  return function(d){\n    d.enabled = false;\n    d.div.attr({\n      contenteditable: \"false\"\n    });\n    if (d.isStarted) {\n      return d.stop();\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/divEditable/enable/enable.ls","text":"(function(){\n  return function(d){\n    d.enabled = true;\n    if (d.softKeyboardMode !== \"noneFake\") {\n      return d.div.attr({\n        contenteditable: \"true\"\n      });\n    }\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/head/validUntil/validUntil.ls","text":"(function(){\n  return function(p){\n    return Div({\n      color: Color.green[500],\n      textAlign: \"right\",\n      fontSize: \"0.9em\"\n    }).html(T(\"validUntil\", p.validUntil)).tap(engine.isDebug ? {\n      longDown: p.onButtonLongTap\n    } : void 8);\n  };\n})();","updated":"2021-09-14T09:02:13.176241"},{"path":"pages/static/antonPlus/1_products/productBlock/plus/plus.ls","text":"(function(){\n  return function(page){\n    var product, referrer, activeProduct, userDescription, ref$;\n    product = page.products.plus;\n    referrer = page.params.referrer;\n    activeProduct = page.activeProduct;\n    userDescription = page.userDescription;\n    return inc(\"../_block/block\")({\n      title: T(\"singleTitle\"),\n      list: [\n        {\n          text: T(\"price\", product.displayPrice)\n        }, {\n          text: T(\"single2\"),\n          icon: \"download\"\n        }, {\n          text: T(\"single3\"),\n          icon: \"avatar\"\n        }\n      ],\n      isDisabled: !page.params.debugShowAllProducts && (userDescription.isDPASchoolMember || userDescription.isPlusSchoolMember || ((ref$ = activeProduct.name) === \"plusFamily\" || ref$ === \"plusTeacher\")),\n      isUpgrade: false,\n      validUntil: activeProduct.name === \"plus\" ? activeProduct.validUntil : void 8,\n      onButtonTap: function(){\n        inc(\"../_logPromoClick/log\")(product);\n        if (inc(\"../_checkOnlineOrProblem/check\")(page)) {\n          return;\n        }\n        return inc(\"../_popupDetailsAndParentalGate/popup\")({\n          title: T(\"popupTitle\", T(\"singleTitle\")),\n          productName: T(\"singleTitle\"),\n          text1: T(\"paymentInfoPopup\", product.displayPrice, T(\"singleTitle\")),\n          onSuccess: function(){\n            return inc(\"../_purchase/purchase\")(product, referrer);\n          }\n        });\n      },\n      onButtonLongTap: engine.isDebug ? function(){\n        return inc(\"../../openDebugAfterPurchasePopup/popup\")(product);\n      } : void 8\n    });\n  };\n})();","updated":"2021-09-14T09:02:13.176241"},{"path":"pages/misc/email/edit/_t.ls","text":"(function(){\n  return {\n    setEmail: {\n      de: \"E-Mail-Adresse hinzufügen\",\n      en: \"Add email\",\n      fr: \"Ajouter une adresse e-mail\",\n      es: \"Agregar correo electrónico\",\n      pt: \"Inserir e-mail\"\n    },\n    changeEmail: {\n      de: \"E-Mail-Adresse ändern\",\n      en: \"Change email address\",\n      fr: \"Changer d'adresse e-mail\",\n      es: \"Cambiar dirección de correo electrónico\",\n      pt: \"Modificar endereço de e-mail\"\n    },\n    enterNewEmail: {\n      de: \"Gib deine neue E-Mail-Adresse ein:\",\n      en: \"Enter your new email:\",\n      fr: \"Écris ta nouvelle adresse&nbsp;:\",\n      es: \"Ingresa tu nuevo correo electrónico:\",\n      pt: \"Digite seu novo endereço de e-mail:\"\n    },\n    enterEmail: {\n      de: \"Gib deine E-Mail-Adresse ein:\",\n      en: \"Enter your email:\",\n      fr: \"Écris ton adresse e-mail&nbsp;:\",\n      es: \"Ingresa tu correo electrónico:\",\n      pt: \"Digite seu e-mail:\"\n    },\n    save: {\n      de: \"Speichern\",\n      en: \"Save\",\n      fr: \"Enregistrer\",\n      es: \"Guardar\",\n      pt: \"Salvar\"\n    },\n    'delete': {\n      de: \"Löschen\",\n      en: \"Delete email address\",\n      fr: \"Effacer l'adresse e-mail\",\n      es: \"Borrar\",\n      pt: \"Excluir\"\n    },\n    errorEmpty: {\n      de: \"Die E-Mail-Adresse darf nicht leer sein!\",\n      en_gb: \"This box cannot be left empty.\",\n      en: \"The email cannot be left blank!\",\n      fr: \"L'e-mail ne peut pas rester vide.\",\n      es: \"El correo electrónico no puede quedar vacío.\",\n      pt: \"O e-mail não pode ficar vazio.\"\n    },\n    errorInvalid: {\n      de: \"Diese E-Mail-Adresse ist ungültig.\",\n      en: \"This email address is invalid.\",\n      fr: \"Cette adresse e-mail n'est pas valide.\",\n      es: \"Este correo electrónico no es válido.\",\n      pt: \"Este e-mail não é válido.\"\n    },\n    errorUnavailable: {\n      de: \"Diese E-Mail-Adresse ist bereits vergeben.\",\n      en: \"This email address is already in use.\",\n      fr: \"Cette adresse e-mail est déjà utilisée.\",\n      es: \"Este correo electrónico ya existe.\",\n      pt: \"Este endereço de e-mail não existe.\"\n    },\n    reallyDeleteEmail: {\n      de: \"Möchtest du wirklich deine<br>E-&#65279;Mail-Adresse löschen?\",\n      en: \"Are you sure you want to delete your<br>email?\",\n      fr: \"Tu veux vraiment effacer ton <br>e-&#65279;mail&nbsp;?\",\n      es: \"¿Realmente quieres borrar tu correo electrónico?\",\n      pt: \"Tem certeza que deseja apagar seu <br>e-mail?\"\n    },\n    emailDeleteWarning: {\n      de: \"<br><br>Achtung! Du hast deinen Anmelde-Code mit Passwort abgesichert. Solltest du deinen Anmelde-Code oder Passwort vergessen, benötigst du eine verifizierte E-Mail-Adresse oder Telefonnummer, um den Zugang zu deinem Konto wiederherzustellen.<br>Jetzt E-Mail-Adresse löschen?\",\n      en_gb: \"<br><br>Warning! You have secured your login code with a password. If you forget either your login code or your password, you will need a verified email address or mobile phone number to recover your account.<br>Do you still want to delete your email address?\",\n      en: \"<br><br>Warning! You secured your login code with a password. If you forget either your login code or your password, you will need a verified email address or cell phone number to recover your account.<br>Do you still want to delete your email address?\",\n      fr: \"<br><br>Attention&nbsp;! Tu as protégé ton code de connexion avec un mot de passe. Si tu oublies ton code de connexion ou ton mot de passe, tu auras besoin d'une adresse e-mail ou d'un numéro de téléphone pour récupérer ton compte.<br>Effacer ton adresse e-mail maintenant&nbsp;?\",\n      es: \"<br><br>¡Atención! Protegiste tu clave de acceso con tu contraseña. Si olvidas tu clave de acceso o tu contraseña, necesitas haber registrado una dirección de correo&nbsp;e o un número de teléfono para recuperar el acceso a tu cuenta.<br>¿Eliminar dirección de correo ahora?\",\n      pt: \"<br><br>Atenção! Você assegurou seu código de login com sua senha. Se você esquecer seu código de login ou senha, você precisará de um endereço de e-mail validado ou número de telefone para recuperar o acesso à sua conta.<br>Tem certeza que deseja excluir seu endereço de e-mail?\"\n    }\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/head/button/button.ls","text":"(function(){\n  return function(p){\n    return Button({\n      label: Div({\n        textAlign: \"center\"\n      }).html(p.isUpgrade\n        ? T(\"buttonUpgrade\")\n        : T(\"buttonContinue\"))\n    }).append(inc(\"newTag/newTag\")(p.isNew)).tap({\n      up: p.onButtonTap,\n      longDown: engine.isDebug ? p.onButtonLongTap : void 8\n    });\n  };\n})();","updated":"2021-09-14T09:02:13.176241"},{"path":"pages/static/antonPlus/1_products/productBlock/plusFamily/plusFamily.ls","text":"(function(){\n  return function(page){\n    var product, referrer, activeProduct, userDescription, block;\n    product = page.products.plusFamily;\n    referrer = page.params.referrer;\n    activeProduct = page.activeProduct;\n    userDescription = page.userDescription;\n    block = inc(\"../_block/block\")({\n      title: T(\"familyTitle\"),\n      list: [\n        {\n          text: T(\"price\", product.displayPrice)\n        }, {\n          text: T(\"family2\"),\n          icon: \"family-plus\"\n        }, {\n          text: T(\"family3\"),\n          icon: \"pin-report\"\n        }, {\n          text: T(\"family4\"),\n          icon: \"disable\"\n        }\n      ],\n      isDisabled: !page.params.debugShowAllProducts && (userDescription.isDPASchoolMember || userDescription.isPlusSchoolMember || activeProduct.name === \"plusTeacher\"),\n      isUpgrade: activeProduct.name === \"plus\",\n      validUntil: activeProduct.name === \"plusFamily\" ? activeProduct.validUntil : void 8,\n      onButtonTap: function(){\n        inc(\"../_logPromoClick/log\")(product);\n        if (inc(\"../_checkOnlineOrProblem/check\")(page)) {\n          return;\n        }\n        return inc(\"../_popupDetailsAndParentalGate/popup\")({\n          title: T(\"popupTitle\", T(\"familyTitle\")),\n          productName: T(\"familyTitle\"),\n          text1: T(\"paymentInfoPopup\", product.displayPrice, T(\"familyTitle\")),\n          onSuccess: function(){\n            return inc(\"../_purchase/purchase\")(product, referrer);\n          }\n        });\n      },\n      onButtonLongTap: engine.isDebug ? function(){\n        return inc(\"../../openDebugAfterPurchasePopup/popup\")(product);\n      } : void 8\n    });\n    if (page.params.highlight === \"plusFamily\") {\n      block.highlight();\n    }\n    return block;\n  };\n})();","updated":"2021-09-14T09:02:13.176241"},{"path":"pages/static/antonPlus/1_products/productBlock/plusTeacher/plusTeacher.ls","text":"(function(){\n  return function(page){\n    var product, referrer, activeProduct, userDescription, list, block, ref$;\n    product = page.products.plusTeacher;\n    referrer = page.params.referrer;\n    activeProduct = page.activeProduct;\n    userDescription = page.userDescription;\n    list = [\n      {\n        text: T(\"price\", product.displayPrice)\n      }, {\n        text: T(\"teacher2\"),\n        icon: \"group\"\n      }, {\n        text: T(\"teacher3\"),\n        icon: \"pin-report\"\n      }\n    ];\n    list.push({\n      text: T(\"teacher4\"),\n      icon: \"family-plus\"\n    });\n    block = inc(\"../_block/block\")({\n      title: T(\"teacherTitle\"),\n      list: list,\n      isDisabled: !page.params.debugShowAllProducts && (userDescription.isDPASchoolMember || userDescription.isPlusSchoolMember),\n      isUpgrade: (ref$ = activeProduct.name) === \"plus\" || ref$ === \"plusFamily\",\n      validUntil: activeProduct.name === \"plusTeacher\" ? activeProduct.validUntil : void 8,\n      onButtonTap: function(){\n        inc(\"../_logPromoClick/log\")(product);\n        if (inc(\"../_checkOnlineOrProblem/check\")(page)) {\n          return;\n        }\n        return inc(\"../_popupDetailsAndParentalGate/popup\")({\n          title: T(\"popupTitle\", T(\"teacherTitle\")),\n          productName: T(\"teacherTitle\"),\n          text1: T(\"paymentInfoPopup\", product.displayPrice, T(\"teacherTitle\")),\n          onSuccess: function(){\n            return inc(\"../_purchase/purchase\")(product, referrer);\n          }\n        });\n      },\n      onButtonLongTap: engine.isDebug ? function(){\n        return inc(\"../../openDebugAfterPurchasePopup/popup\")(product);\n      } : void 8\n    });\n    if (page.params.highlight === \"plusTeacher\") {\n      block.highlight();\n    }\n    return block;\n  };\n})();","updated":"2021-09-14T09:02:13.176241"},{"path":"pages/misc/email/edit/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var params, ref$;\n    params = {\n      title: (ref$ = page.oldEvent) != null && ref$.value\n        ? T(\"changeEmail\")\n        : T(\"setEmail\")\n    };\n    if (page.context === \"startUser\") {\n      params.back = true;\n    } else {\n      params.close = true;\n    }\n    return inc(\"/addons/topbar2/topbar\")(params);\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/divEditable/onSelectionChange/fixEmptySelectAll/fix.ls","text":"(function(){\n  return function(d){\n    var sel, ref$, ref1$, fix;\n    sel = window.getSelection();\n    if (sel.anchorNode === d.div && sel.focusNode === d.div && sel.anchorOffset === 0 && sel.focusOffset === 1 && d.div.firstChild.tagName === \"DIV\" && ((ref$ = d.div.firstChild) != null ? (ref1$ = ref$.firstChild) != null ? ref1$.tagName : void 8 : void 8) === \"BR\") {\n      fix = true;\n    } else if (sel.isCollapsed && sel.type === \"Range\") {\n      fix = true;\n    }\n    if (fix) {\n      d.debug(\"fix empty select all\");\n      return d.setSelectionPositions({\n        line: 0,\n        charPos: 0\n      });\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/divEditable/selectAll/select.ls","text":"(function(){\n  return function(d){\n    return d.setSelectionPositions({\n      start: {\n        line: \"first\",\n        charPos: 0\n      },\n      end: {\n        line: \"last\",\n        charPos: 100000000\n      }\n    });\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/divEditable/insertAtCursor/insert.ls","text":"(function(){\n  return function(d, v){\n    if (!d.isStarted) {\n      return;\n    }\n    if (d.softKeyboardMode === \"noneFake\") {\n      return inc(\"noneFake/insert\")(d, v);\n    } else if (d.parseMode === \"topic\") {\n      return inc(\"contentEditableNoExec/insert\")(d, v);\n    } else {\n      return inc(\"contentEditable/insert\")(d, v);\n    }\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/enableObserver/enable.ls","text":"(function(){\n  return function(d){\n    var o, config;\n    o = new MutationObserver(d.onMutation);\n    config = {\n      childList: true,\n      subtree: true,\n      attributes: false,\n      characterData: true,\n      characterDataOldValue: false\n    };\n    o.observe(d.div, config);\n    return d.observer = o;\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/errorPopup/_t.ls","text":"(function(){\n  return {\n    errorMessage: {\n      de: \"Ups, hier ist ein Fehler aufgetreten.<br>Wir kümmern uns darum!\",\n      en: \"Oops, something went wrong here. We are taking care of it!\",\n      fr: \"Oups… une erreur s'est produite ici. On s'en occupe très vite !\",\n      es: \"¡Ups! Ocurrió un error. Lo estamos resolviendo.\",\n      pt: \"Ops, ocorreu um erro aqui. Nós cuidaremos disso!\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/input2/_t.ls","text":"(function(){\n  return {\n    noClipboard: {\n      de: \"Diese Funktion ist für deinen Browser zurzeit deaktiviert. Wir arbeiten daran, sie in Zukunft zu unterstützen.\",\n      en_gb: \"This feature is currently deactivated for your browser. We are working on being able to support it in the future.\",\n      en: \"This feature is currently deactivated for your browser. We are working on supporting it in the future.\",\n      fr: \"Cette fonction est actuellement désactivée pour ton navigateur. Nous cherchons une solution pour pouvoir l'activer.\",\n      es: \"Esta función está actualmente desactivada en tu navegador. Estamos buscando una solución para poder activarla.\",\n      pt: \"Esta função está atualmente desativada para o seu navegador. Estamos buscando uma solução para poder ativá-la.\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"data/content/_t.ls","text":"(function(){\n  return {\n    topicURLReplacement: {\n      de: \"/thema\",\n      en: \"/topic\",\n      fr: \"/theme\",\n      es: \"/tema\",\n      pt: \"/tema\"\n    },\n    blockURLReplacement: {\n      de: \"/uebungen\",\n      en: \"/exercises\",\n      fr: \"/exercices\",\n      es: \"/ejercicios\",\n      pt: \"/exercicios\"\n    },\n    levelURLReplacement: {\n      de: \"/uebung\",\n      en: \"/exercise\",\n      fr: \"/exercice\",\n      es: \"/ejercicio\",\n      pt: \"/exercicio\"\n    },\n    contentURLReplacement: {\n      de: \"lernen/\",\n      en: \"learn/\",\n      fr: \"apprendre/\",\n      es: \"aprender/\",\n      pt: \"aprender/\"\n    },\n    learnUrl: {\n      de: \"lernen\",\n      en: \"learn\",\n      fr: \"apprendre\",\n      es: \"aprender\",\n      pt: \"aprender\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"pages/misc/email/edit/setEmail/set.ls","text":"(function(){\n  return function(page){\n    return function(password, dryRun){\n      page.form.showSpinner();\n      return inc(\"/lib/util/pllsCall/call\")({\n        path: path(\"/../server-apis-db2/apis/user/setEmail/set\"),\n        params: {\n          email: page.newMail,\n          password: password,\n          dryRun: dryRun,\n          logId: log.id()\n        },\n        onCompleted: function(result){\n          if (result.status !== \"ok\") {\n            return page.onError(result);\n          } else {\n            if (dryRun) {\n              return page.confirmPassword();\n            } else {\n              return page.onCompleted(result);\n            }\n          }\n        },\n        onError: page.onError,\n        onOffline: page.onOffline\n      });\n    };\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"pages/misc/email/edit/confirmPassword/confirm.ls","text":"(function(){\n  return function(page){\n    return function(){\n      var ref$;\n      if (!((ref$ = page.oldEvent) != null && ref$.isVerified)) {\n        return page.setEmail();\n      }\n      return inc(\"/lib/gui/confirmPasswordPopup/popup\")({\n        label: T(\"enterPassword\", T(\"yourMail\")),\n        onDone: function(isCorrect, password){\n          if (!isCorrect) {\n            return page.onError({\n              status: \"error_wrongPassword\"\n            });\n          } else {\n            return page.setEmail(password);\n          }\n        },\n        onOffline: page.onOffline,\n        onError: page.onError,\n        onAborted: function(){\n          page.form.hideSpinner();\n          return page.form.input.start();\n        }\n      });\n    };\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"pages/misc/phoneNumber/edit/confirmPassword/confirm.ls","text":"(function(){\n  return function(page){\n    return function(){\n      var ref$;\n      if (!((ref$ = page.oldEvent) != null && ref$.isVerified)) {\n        return page.setNumber();\n      }\n      return inc(\"/lib/gui/confirmPasswordPopup/popup\")({\n        label: T(\"enterPassword\", T(\"yourPhone\")),\n        onDone: function(isCorrect, password){\n          if (!isCorrect) {\n            return page.onError({\n              status: \"error_wrongPassword\"\n            });\n          } else {\n            return page.setNumber(password);\n          }\n        },\n        onOffline: page.onOffline,\n        onError: page.onError,\n        onAborted: function(){\n          page.form.hideSpinner();\n          return page.form.input.start();\n        }\n      });\n    };\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/buttonOpenAppStore/_t.ls","text":"(function(){\n  return {\n    playStore: {\n      de: \"Play&nbsp;Store\",\n      en: \"Play&nbsp;Store\",\n      fr: \"le Play&nbsp;Store\",\n      es: \"Play&nbsp;Store\",\n      pt: \"Play&nbsp;Store\"\n    },\n    appStore: {\n      de: \"App&nbsp;Store\",\n      en: \"App&nbsp;Store\",\n      fr: \"l'App&nbsp;Store\",\n      es: \"App&nbsp;Store\",\n      pt: \"App&nbsp;Store\"\n    },\n    openStore: {\n      de: \"$1 öffnen\",\n      en: \"Open $1\",\n      fr: \"Ouvrir $1\",\n      es: \"Abrir $1\",\n      pt: \"Abrir $1\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/divEditable/onMouseDown/fixDoubleClickLineEnd/fixSelectedLineBreak/fix.ls","text":"(function(){\n  return function(s, n, d, e){\n    var start, end, r;\n    d.debug(\"fixDoubleClickSelectedLineBreak\");\n    if (n.nodeType === Node.TEXT_NODE) {\n      inc(\"../_selectLastWord/select\")(n);\n      start = n.textContent.lastIndexOf(\" \") + 1;\n      end = n.textContent.length;\n      r = document.createRange();\n      r.setStart(n, start);\n      r.setEnd(n, end);\n      s.removeAllRanges();\n      return s.addRange(r);\n    } else if (n.lineId) {\n      return d.setSelectionPositions({\n        line: n.lineNumber,\n        charPos: 10000\n      });\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"addons/topbar2/actions/search/_t.ls","text":"(function(){\n  return {\n    abort: {\n      de: \"Abbrechen\",\n      en: \"Cancel\",\n      fr: \"Annuler\",\n      es: \"Cancelar\",\n      pt: \"Cancelar\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/util/browser/getPageUrl/get.ls","text":"(function(){\n  return function(){\n    var p, regex;\n    p = location.pathname;\n    regex = new RegExp(\"^/(de|en_us|en_gb|fr|es|pt)/\");\n    p = p.replace(regex, \"\");\n    if (p.charAt(p.length - 1) === \"/\") {\n      p = p.substr(0, p.length - 1);\n    }\n    return p;\n  };\n})();","updated":"2021-12-21T14:01:47.913673"},{"path":"lib/gui/rating/_t.ls","text":"(function(){\n  return {\n    thanksGoodRating: {\n      de: \"Vielen Dank für deine gute Bewertung!\",\n      en_gb: \"Thank you for your good rating!\",\n      en: \"Thank you for your good feedback!\",\n      fr: \"Merci pour cette évaluation&nbsp;!\",\n      es: \"¡Muchas gracias por tu reseña!\",\n      pt: \"Agradecemos pela sua avaliação positiva!\"\n    },\n    thanksRating: {\n      de: \"Vielen Dank für deine Bewertung!\",\n      en_gb: \"Thank you for your rating!\",\n      en: \"Thank you for your feedback!\",\n      fr: \"Merci pour cette évaluation&nbsp;!\",\n      es: \"¡Muchas gracias por tu reseña!\",\n      pt: \"Agradecemos pela sua avaliação positiva!\"\n    },\n    didntLike: {\n      de: \"Was hat dir nicht gefallen?\",\n      en: \"What didn't you like about it?\",\n      fr: \"Qu'est-ce qui ne t'a pas plu&nbsp;?\",\n      es: \"¿Qué es lo que no te pareció bién?\",\n      pt: \"O quê você não gostou?\"\n    },\n    send: {\n      de: \"Senden\",\n      en: \"Send\",\n      fr: \"Envoyer\",\n      es: \"Enviar\",\n      pt: \"Enviar\"\n    },\n    like: {\n      de: \"Gefällt mir\",\n      en: \"Like\",\n      fr: \"J'aime\",\n      es: \"Me gusta\",\n      pt: \"Curti\"\n    }\n  };\n})();","updated":"2021-10-12T09:11:02.968152"},{"path":"lib/gui/screenKeyboard/_t.ls","text":"(function(){\n  return {\n    'continue': {\n      de: \"Weiter\",\n      en: \"OK\",\n      fr: \"OK\",\n      es: \"OK\",\n      pt: \"Ok\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/init/startFirstPage/deepLinkContent/_t.ls","text":"(function(){\n  return {\n    topicURLReplacement: {\n      de: \"/thema\",\n      en: \"/topic\",\n      fr: \"/theme\",\n      es: \"/tema\",\n      pt: \"/tema\"\n    },\n    blockURLReplacement: {\n      de: \"/uebungen\",\n      en: \"/exercises\",\n      fr: \"/exercices\",\n      es: \"/ejercicios\",\n      pt: \"/exercicios\"\n    },\n    levelURLReplacement: {\n      de: \"/uebung\",\n      en: \"/exercise\",\n      fr: \"/exercice\",\n      es: \"/ejercicio\",\n      pt: \"/exercicio\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/util/calcWeekLabel/dates/dates.ls","text":"(function(){\n  return function(monday, sunday, sep, ordinal){\n    return twitch({\n      de: \"\" + monday.date + \".\" + sep + \"\" + sunday.date + \". \" + sunday.month + \" \" + sunday.year + \"\",\n      en: \"\" + ordinal(monday.date) + \"\" + sep + \"\" + sunday.month + \" \" + ordinal(sunday.date) + \" \" + sunday.year + \"\",\n      en_gb: \"\" + ordinal(monday.date) + \"\" + sep + \"\" + ordinal(sunday.date) + \" \" + sunday.month + \" \" + sunday.year + \"\",\n      fr: \"\" + monday.date + \"\" + sep + \"\" + sunday.date + \" \" + sunday.month + \" \" + sunday.year + \"\",\n      es: \"\" + monday.date + \"\" + sep + \"\" + sunday.date + \". \" + sunday.month + \" \" + sunday.year + \"\",\n      pt: \"\" + monday.date + \"\" + sep + \"\" + sunday.date + \". \" + sunday.month + \" \" + sunday.year + \"\"\n    });\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/util/calcMonthsLabel/_t.ls","text":"(function(){\n  return {\n    jan: {\n      de: \"Jan.\",\n      en: \"Jan.\",\n      fr: \"janv.\",\n      es: \"ene.\",\n      pt: \"jan.\"\n    },\n    feb: {\n      de: \"Feb.\",\n      en: \"Feb.\",\n      fr: \"févr.\",\n      es: \"febr.\",\n      pt: \"fev.\"\n    },\n    mar: {\n      de: \"März\",\n      en: \"Mar.\",\n      fr: \"mars\",\n      es: \"mzo.\",\n      pt: \"mar.\"\n    },\n    apr: {\n      de: \"April\",\n      en: \"Apr.\",\n      fr: \"avr.\",\n      es: \"abr.\",\n      pt: \"abr.\"\n    },\n    may: {\n      de: \"Mai\",\n      en: \"May\",\n      fr: \"mai\",\n      es: \"mayo\",\n      pt: \"maio\"\n    },\n    june: {\n      de: \"Juni\",\n      en: \"June\",\n      fr: \"juin\",\n      es: \"jun.\",\n      pt: \"jun.\"\n    },\n    july: {\n      de: \"Juli\",\n      en: \"July\",\n      fr: \"juil.\",\n      es: \"jul.\",\n      pt: \"jul.\"\n    },\n    aug: {\n      de: \"Aug.\",\n      en: \"Aug.\",\n      fr: \"août\",\n      es: \"agt.\",\n      pt: \"ago.\"\n    },\n    sep: {\n      de: \"Sept.\",\n      en: \"Sept.\",\n      fr: \"sept.\",\n      es: \"sept.\",\n      pt: \"set.\"\n    },\n    oct: {\n      de: \"Okt.\",\n      en: \"Oct.\",\n      fr: \"oct.\",\n      es: \"oct.\",\n      pt: \"out.\"\n    },\n    nov: {\n      de: \"Nov.\",\n      en: \"Nov.\",\n      fr: \"nov.\",\n      es: \"nov.\",\n      pt: \"nov.\"\n    },\n    dec: {\n      de: \"Dez.\",\n      en: \"Dec.\",\n      fr: \"déc.\",\n      es: \"dic.\",\n      pt: \"dez.\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/util/calcWeekLabel/_t.ls","text":"(function(){\n  return {\n    thisWeek: {\n      de: \"aktuelle&nbsp;Woche\",\n      en: \"this&nbsp;week\",\n      fr: \"Cette&nbsp;semaine\",\n      es: \"Esta&nbsp;semana\",\n      pt: \"Esta&nbsp;semana\"\n    },\n    nextWeek: {\n      de: \"nächste&nbsp;Woche\",\n      en: \"next&nbsp;week\",\n      fr: \"La semaine prochaine\",\n      es: \"La próxima semana\",\n      pt: \"A próxima semana\"\n    },\n    prevWeek: {\n      de: \"letzte&nbsp;Woche\",\n      en: \"last&nbsp;week\",\n      fr: \"La semaine dernière\",\n      es: \"La semana pasada\",\n      pt: \"A semana passada\"\n    }\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/util/calcWeekLabel/calc.ls","text":"(function(){\n  return function(startDate){\n    var months, ordinal, format, d1, d2, monday, sunday, sep, label, startLabel, currentYear, today, todayPlus7, todayMinus7, extra;\n    if (!startDate) {\n      return;\n    }\n    months = inc(\"../calcMonthsLabel/calc\")();\n    ordinal = inc(\"/lib/util/calcOrdinalEn/calc\");\n    format = function(t){\n      return {\n        year: t.getUTCFullYear(),\n        month: months[t.getUTCMonth()],\n        date: t.getUTCDate()\n      };\n    };\n    d1 = inc(\"/lib/util/convertTimeString/convert\")(startDate);\n    d2 = new Date(d1.getTime() + 6 * 86400000);\n    monday = format(d1);\n    sunday = format(d2);\n    sep = \"&nbsp;&ndash;&nbsp;\";\n    label = monday.year !== sunday.year\n      ? inc(\"datesOtherYear/dates\")(monday, sunday, sep, ordinal)\n      : monday.month !== sunday.month\n        ? inc(\"datesOtherMonth/dates\")(monday, sunday, sep, ordinal)\n        : inc(\"dates/dates\")(monday, sunday, sep, ordinal);\n    startLabel = twitch({\n      de: monday.date + \". \" + monday.month,\n      en: monday.month + \" \" + ordinal(monday.date),\n      en_gb: ordinal(monday.date) + \" \" + monday.month,\n      fr: monday.date + \" \" + monday.month,\n      es: monday.date + \". \" + monday.month,\n      pt: monday.date + \". \" + monday.month\n    });\n    currentYear = new Date().getFullYear();\n    label = label.replace(\" \" + currentYear, \"\");\n    today = new Date();\n    todayPlus7 = new Date(today.getTime() + 7 * 86400000);\n    todayMinus7 = new Date(today.getTime() - 7 * 86400000);\n    d2 = new Date(d2.getTime() + 86400000 - 1);\n    if (today > d1 && today < d2) {\n      extra = T(\"thisWeek\");\n    }\n    if (todayPlus7 > d1 && todayPlus7 < d2) {\n      extra = T(\"nextWeek\");\n    }\n    if (todayMinus7 > d1 && todayMinus7 < d2) {\n      extra = T(\"prevWeek\");\n    }\n    return {\n      label: label,\n      extra: extra,\n      startMonth: monday.month,\n      startDate: monday.date,\n      startLabel: startLabel,\n      labelBig: extra ? label + (\" (\" + extra + \")\") : label\n    };\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/util/calcWeekLabel/datesOtherMonth/dates.ls","text":"(function(){\n  return function(monday, sunday, sep, ordinal){\n    return twitch({\n      de: \"\" + monday.date + \". \" + monday.month + \"\" + sep + \"\" + sunday.date + \". \" + sunday.month + \" \" + sunday.year + \"\",\n      en: \"\" + monday.month + \" \" + ordinal(monday.date) + \"\" + sep + \"\" + sunday.month + \" \" + ordinal(sunday.date) + \" \" + sunday.year + \"\",\n      en_gb: \"\" + ordinal(monday.date) + \" \" + monday.month + \"\" + sep + \"\" + ordinal(sunday.date) + \" \" + sunday.month + \" \" + sunday.year + \"\",\n      fr: \"\" + monday.date + \" \" + monday.month + \"\" + sep + \"\" + sunday.date + \" \" + sunday.month + \" \" + sunday.year + \"\",\n      es: \"\" + monday.date + \". \" + monday.month + \"\" + sep + \"\" + sunday.date + \". \" + sunday.month + \" \" + sunday.year + \"\",\n      pt: \"\" + monday.date + \". \" + monday.month + \"\" + sep + \"\" + sunday.date + \". \" + sunday.month + \" \" + sunday.year + \"\"\n    });\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/util/calcWeekLabel/datesOtherYear/dates.ls","text":"(function(){\n  return function(monday, sunday, sep, ordinal){\n    return twitch({\n      de: \"\" + monday.date + \". \" + monday.month + \" \" + monday.year + \"\" + sep + \"\" + sunday.date + \". \" + sunday.month + \" \" + sunday.year + \"\",\n      en: \"\" + monday.month + \" \" + ordinal(monday.date) + \" \" + monday.year + \"\" + sep + \"\" + sunday.month + \" \" + ordinal(sunday.date) + \" \" + sunday.year + \"\",\n      en_gb: \"\" + ordinal(monday.date) + \" \" + monday.month + \" \" + monday.year + \"\" + sep + \"\" + ordinal(sunday.date) + \" \" + sunday.month + \" \" + sunday.year + \"\",\n      fr: \"\" + monday.date + \" \" + monday.month + \" \" + monday.year + \"\" + sep + \"\" + sunday.date + \" \" + sunday.month + \" \" + sunday.year + \"\",\n      es: \"\" + monday.date + \". \" + monday.month + \" \" + monday.year + \"\" + sep + \"\" + sunday.date + \". \" + sunday.month + \" \" + sunday.year + \"\",\n      pt: \"\" + monday.date + \". \" + monday.month + \" \" + monday.year + \"\" + sep + \"\" + sunday.date + \". \" + sunday.month + \" \" + sunday.year + \"\"\n    });\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/screenKeyboard/_templates/templates.ls","text":"(function(){\n  var standard, standardDE, standardSlimDE, standardSlimEN, standardSlimFR, standardSlimES, standardSlimPT, standardSlimRU, standardSlimUA, standardSlimTR, standardENG, standardSPA, standard123, standard123ENG, standardNATENG, standardNATFR, standardNATES, standardNATIT, standardNATPT, standardNATRU, standardNATUA, capitalLettersDE, capitalLettersNATENG, capitalLettersNATFR, capitalLettersNATES, capitalLettersNATPT, numbersOperatorsBasic, numbers, numbersDot, numbersComma, mathDiv, mathDivSimple, mathDivNewLine, mathDivSimpleNewLine, mathDivAdvanced, mathDivAdvancedLog, mathDivAdvancedTrig, mathDivCalculator, mathDivCalculatorShift, appEN, appFR, phoneNumber, validationCode, login, loginEN, loginFR, loginES, loginPT, templates;\n  standard = [\"q|w|eéè|r|t|z|uü|i|oö|p\", \"aä|sß|d|f|g|h|j|k|l|'\", \"shift[1.5]|y|x|c|v|b|n|m|back[2]\", \"toggle123[1]|?|!|space[5]|.|,|newline[2]|submit[3]\"];\n  standardDE = [\"q|w|e|r|t|z|u|i|o|p|ü\", \"a|s|d|f|g|h|j|k|l|ö|ä\", \"shift[1.5]|ß|y|x|c|v|b|n|m|back[1.5]\", \"toggle123[1]|.|,|?|!|space[5]|newline[2]|submit[3]\"];\n  standardSlimDE = [\"q|w|eéèëêē|r|t|z|uúùûū|iíìïîī|oóôòõœō|p|ü\", \"aáàâæãā|sß|d|f|g|h|j|k|l|ö|ä\", \"shift[1.2]|y|x|cç|v|b|nñ|m|back[1.5]\", \"toggle123[1]|space[5]|newline[2]|submit[3]\"];\n  standardSlimEN = [\"q|w|eéèëêē|r|t|y|uüúùûū|iíìïîī|oöóôòõœō|p\", \"aäáàâæãā|sß|d|f|g|h|j|k|l\", \"shift[1.2]|z|x|cç|v|b|nñ|m|back[1.5]\", \"toggle123[1]|space[5]|newline[2]|submit[3]\"];\n  standardSlimFR = [\"aäáàâæãā|z|eéèëêē|r|t|y|uüúùûū|iíìïîī|oöóôòõœō|p\", \"q|sß|d|f|g|h|j|k|l|m\", \"shift[1.2]|w|x|cç|v|b|nñ|back[1.5]\", \"toggle123[1]|space[5]|newline[2]|submit[3]\"];\n  standardSlimES = [\"q|w|eéèëêē|r|t|y|uüúùûū|iíìïîī|oöóôòõœō|p\", \"aäáàâæãā|sß|d|f|g|h|j|k|l\", \"shift[1.2]|z|x|cç|v|b|nñ|m|back[1.5]\", \"toggle123[1]|space[5]|newline[2]|submit[3]\"];\n  standardSlimPT = [\"q|w|eéèëêē|r|t|y|uüúùûū|iíìïîī|oöóôòõœō|p\", \"aäáàâæãā|sß|d|f|g|h|j|k|l|ç\", \"shift[1.2]|z|x|c|v|b|nñ|m|back[1.5]\", \"toggle123[1]|space[5]|newline[2]|submit[3]\"];\n  standardSlimRU = [\"й|ц|у|к|е|н|г|ш|щ|з|х|ъ\", \"ф|ы|в|а|п|р|о|л|д|ж|э\", \"shift[1.2]|я|ч|с|м|и|т|ь|б|ю|back[1.5]\", \"toggle123[1]|space[5]|newline[2]|submit[3]\"];\n  standardSlimUA = [\"й|ц|у|к|е|н|г|ш|щ|з|х|ї\", \"ф|і|в|а|п|р|о|л|д|ж|є\", \"shift[1.2]|ґ|я|ч|с|м|и|т|ь|б|ю|back[1.5]\", \"toggle123[1]|space[5]|newline[2]|submit[3]\"];\n  standardSlimTR = [\"q|w|e|r|t|y|uūúùû|ı|oōøóôòõœ|p|ğ|ü\", \"aâ|sßśš|d|f|g|h|j|k|l|ş|i\", \"shift[1.2]|z|x|cćč|v|b|n|m|ö|ç|back[1.5]\", \"toggle123[1]|space[5]|newline[2]|submit[3]\"];\n  standardENG = [\"q|w|e|r|t|z|u|i|o|p\", \"a|s|d|f|g|h|j|k|l\", \"shift[1.5]|?!|y|x|c|v|b|n|m|back[1.5]\", \"toggle123[1]|.|,|'|space[5]|newline[2]|submit[3]\"];\n  standardSPA = [\"q|w|eé|r|t|z|uú|ií|oó|p|ü\", \"aá|s|d|f|g|h|j|k|l|ö|ä\", \"shift[1.5]|?¿|!¡|y|x|c|v|b|nñ|m|back[1.5]\", \"toggle123[1]|.|,|space[5]|newline[2]|submit[3]\"];\n  standard123 = [\"1|2|3|4|5|6|7|8|9|0\", \"@|:|;|_|,|.|#|(|)|/\", \"+|-|=|<|>|$|&|'ʻ|back[1.5]\", \"toggleABC[1.5]|space[5]|newline[2]|submit[3]\"];\n  standard123ENG = [\"1|2|3|4|5|6|7|8|9|0\", \"@|:|;|_|,|.|'|(|)|/\", \"+|-|=|$|&|?|!|back[1.5]\", \"toggleABC[1.5]|space[5]|newline[2]|submit[3]\"];\n  standardNATENG = [\"q|w|e|r|t|y|u|i|o|p\", \"a|s|d|f|g|h|j|k|l\", \"shift[1.5]|?!|z|x|c|v|b|n|m|back[1.5]\", \"toggle123[1]|.|,|'|space[5]|newline[2]|submit[3]\"];\n  standardNATFR = [\"aàâæ|z|eéèëê|r|t|y|uùû|iïî|oôœ|p\", \"q|s|d|f|g|h|j|k|l|m\", \"shift[1.5]|?!|w|x|cç|v|b|n|back[1.5]\", \"toggle123[1]|.|,|'|space[5]|newline[2]|submit[3]\"];\n  standardNATES = [\"q|w|eé|r|t|y|uúü|ií|oó|p\", \"aá|s|d|f|g|h|j|k|l\", \"shift[1.5]|?!|z|x|c|v|b|nñ|m|back[1.5]\", \"toggle123[1]|.|,|'|space[5]|newline[2]|submit[3]\"];\n  standardNATIT = [\"q|w|e|r|t|y|u|ií|o|p|èé\", \"a|s|d|f|g|h|j|k|l|òç|à|ù\", \"shift[1.5]|?!|z|x|c|v|b|n|m|back[1.5]\", \"toggle123[1]|.|,|'|space[5]|newline[2]|submit[3]\"];\n  standardNATPT = [\"q|w|eéèê|r|t|y|uúù|iíì|oóòôõ|p\", \"aáàã|s|d|f|g|h|j|k|l|ç\", \"shift[1.5]|?!|z|x|c|v|b|n|m|back[1.5]\", \"toggle123[1]|.|,|'|space[5]|newline[2]|submit[3]\"];\n  standardNATRU = [\"й|ц|у|к|е|н|г|ш|щ|з|х|ъ\", \"ф|ы|в|а|п|р|о|л|д|ж|э\", \"shift[1.2]|?!|я|ч|с|м|и|т|ь|б|ю|back[1.5]\", \"toggle123[1]|.|,|'|space[5]|newline[2]|submit[3]\"];\n  standardNATUA = [\"й|ц|у|к|е|н|г|ш|щ|з|х|ї\", \"ф|і|в|а|п|р|о|л|д|ж|є\", \"shift[1.2]|?!|ґ|я|ч|с|м|и|т|ь|б|ю|back[1.5]\", \"toggle123[1]|.|,|'|space[5]|newline[2]|submit[3]\"];\n  capitalLettersDE = [\"Q|W|E|R|T|Z|U|I|O|P|Ü\", \"A|S|D|F|G|H|J|K|L|Ö|Ä\", \"ß|Y|X|C|V|B|N|M|back[1.5]\", \".,|?!|space[5]|newline[2]|submit[3]\"];\n  capitalLettersNATENG = [\"Q|W|E|R|T|Y|U|I|O|P\", \"A|S|D|F|G|H|J|K|L\", \"Z|X|C|V|B|N|M|back[1.5]\", \".,|?!|space[5]|newline[2]|submit[3]\"];\n  capitalLettersNATFR = [\"AÀÂÆ|Z|EÉÈËÊ|R|T|Y|UÙÛ|IÏÎ|OÔŒ|P\", \"Q|S|D|F|G|H|J|K|L|M\", \"W|X|CÇ|V|B|N|back[1.5]\", \".,|?!|space[5]|newline[2]|submit[3]\"];\n  capitalLettersNATES = [\"Q|W|EÉ|R|T|Y|UÚÜ|IÍ|OÓ|P\", \"AÁ|S|D|F|G|H|J|K|L\", \"Z|X|C|V|B|NÑ|M|back[1.5]\", \".,|?¿|!¡|space[5]|newline[2]|submit[3]\"];\n  capitalLettersNATPT = [\"Q|W|EÉ|R|T|Y|UÚÙ|IÍÌ|OÓÒÔÕ|P\", \"AÁÀÃ|S|D|F|G|H|J|K|L\", \"Z|X|C|V|B|N|M|back[1.5]\", \".,|?!|space[5]|newline[2]|submit[3]\"];\n  numbersOperatorsBasic = [\"+|-|*{⋅}|:|,\", \"1|2|3|4|5|back[2]\", \"6|7|8|9|0|submit[2]\"];\n  numbers = [\"1|2|3|4|5|back[2]\", \"6|7|8|9|0|submit[2]\"];\n  numbersDot = [\"1|2|3|4|5|.|back[2]\", \"6|7|8|9|0|submit[3.2]\"];\n  numbersComma = [\"1|2|3|4|5|,|back[2]\", \"6|7|8|9|0|submit[3.2]\"];\n  mathDiv = [\"1|2|3|4|5|plus|minus|back\", \"6|7|8|9|0|multiply|divide|separator\"];\n  mathDivSimple = [\"1|2|3|4|5|back\", \"6|7|8|9|0|separator\"];\n  mathDivNewLine = [\"1|2|3|4|5|plus|minus|back\", \"6|7|8|9|0|multiply|divide|newline\"];\n  mathDivSimpleNewLine = [\"1|2|3|4|5|back[1.2]\", \"6|7|8|9|0|newline[1.2]\"];\n  mathDivAdvanced = [\"1|2|3|4|5|plus|minus\", \"6|7|8|9|0|multiply|divide\", \"^|/|sqrt|root|()|separator|back\"];\n  mathDivAdvancedLog = [\"1|2|3|4|5|plus|minus\", \"6|7|8|9|0|multiply|divide\", \"^|/|sqrt|root|e|separator|back\", \"!|ncr|logbase|ln|()||\"];\n  mathDivAdvancedTrig = [\"1|2|3|4|5|plus|minus\", \"6|7|8|9|0|multiply|divide\", \"^|/|sqrt|root|()|separator|back\", \"sin|asin|cos|acos|tan|atan|pi\"];\n  mathDivCalculator = [\"toggleShift|moveCursorLeft|moveCursorRight|degrad[2]\", \"sin|cos|tan|ln|log\", \"()|/|^|sqrt|!\", \"7|8|9|clear|back\", \"4|5|6|multiply|divide\", \"1|2|3|plus|minus\", \"0|separator|pi|=[2]\"];\n  mathDivCalculatorShift = [\"toggleShift|moveCursorLeft|moveCursorRight|degrad[2]\", \"asin|acos|atan|ln|logbase\", \"()|/|^|root|ncr\", \"7|8|9|clear|back\", \"4|5|6|multiply|divide\", \"1|2|3|plus|minus\", \"0|separator|e|=[2]\"];\n  appEN = [\"q|w|e|r|t|y|u|i|o|p\", \"a|s|d|f|g|h|j|k|l\", \"shift[1.5]|?!|z|x|c|v|b|nñ|m|back[1.5]\", \"toggle123[1]|.|,|'|space[5]|newline[2]|submit[3]\"];\n  appFR = [\"aàâæ|z|eéèëê|r|t|y|uùû|iïî|oôœ|p\", \"q|s|d|f|g|h|j|k|l|m\", \"shift[1.5]|?!|w|x|cç|v|b|n|back[1.5]\", \"toggle123[1]|.|,|'|space[5]|newline[2]|submit[3]\"];\n  phoneNumber = [\"1|2|3\", \"4|5|6\", \"7|8|9\", \"+|0|back\", \"submit[3]\"];\n  validationCode = [\"1|2|3\", \"4|5|6\", \"7|8|9\", \"back|0|submit\"];\n  login = [\"1|2|3|4|5|6|7|8|9|0\", \"q|w|eéè|r|t|z|uü|i|oö|p\", \"aä|sß|d|f|g|h|j|k|l|@\", \"y|x|c|v|b|n|m|back[1.5]\", \"?|!|-|_|+|space[5]|.|,|newline[1.5]|submit[3]\"];\n  loginEN = [\"1|2|3|4|5|6|7|8|9|0\", \"q|w|eéè|r|t|y|uü|i|oö|p\", \"aä|sß|d|f|g|h|j|k|l|@\", \"z|x|c|v|b|n|m|back[1.5]\", \"?|!|-|_|+|space[5]|.|,|newline[1.5]|submit[3]\"];\n  loginFR = [\"1|2|3|4|5|6|7|8|9|0\", \"aä|z|eéè|r|t|y|uü|i|oö|p\", \"q|sß|d|f|g|h|j|k|l|m|@\", \"w|x|c|v|b|n|back[1.5]\", \"?|!|-|_|+|space[5]|.|,|newline[1.5]|submit[3]\"];\n  loginES = [\"1|2|3|4|5|6|7|8|9|0\", \"q|w|eé|r|t|y|uúü|ií|oóö|p\", \"aáä|s|d|f|g|h|j|k|l|@\", \"z|x|c|v|b|nñ|m|back[1.5]\", \"?|!|-|_|+|space[5]|.|,|newline[1.5]|submit[3]\"];\n  loginPT = [\"1|2|3|4|5|6|7|8|9|0\", \"q|w|eéèê|r|t|y|uúù|iíì|oóòôõ|p\", \"aáàã|s|d|f|g|h|j|k|l|ç|@\", \"z|x|c|v|b|n|m|back[1.5]\", \"?|!|-|_|+|space[5]|.|,|newline[1.5]|submit[3]\"];\n  return templates = {\n    standard: {\n      main: standard,\n      toggle: standard123\n    },\n    standardDE: {\n      main: standardDE,\n      toggle: standard123\n    },\n    standardENG: {\n      main: standardENG,\n      toggle: standard123ENG\n    },\n    standardSPA: {\n      main: standardSPA,\n      toggle: standard123\n    },\n    standardNATENG: {\n      main: standardNATENG,\n      toggle: standard123ENG\n    },\n    standardNATFR: {\n      main: standardNATFR,\n      toggle: standard123ENG\n    },\n    standardNATES: {\n      main: standardNATES,\n      toggle: standard123ENG\n    },\n    standardNATIT: {\n      main: standardNATIT,\n      toggle: standard123ENG\n    },\n    standardNATPT: {\n      main: standardNATPT,\n      toggle: standard123ENG\n    },\n    standardNATRU: {\n      main: standardNATRU,\n      toggle: standard123ENG\n    },\n    standardNATUA: {\n      main: standardNATUA,\n      toggle: standard123ENG\n    },\n    standardSlimDE: {\n      main: standardSlimDE,\n      toggle: standard123\n    },\n    standardSlimEN: {\n      main: standardSlimEN,\n      toggle: standard123\n    },\n    standardSlimFR: {\n      main: standardSlimFR,\n      toggle: standard123\n    },\n    standardSlimES: {\n      main: standardSlimES,\n      toggle: standard123\n    },\n    standardSlimPT: {\n      main: standardSlimPT,\n      toggle: standard123\n    },\n    standardSlimRU: {\n      main: standardSlimRU,\n      toggle: standard123\n    },\n    standardSlimUA: {\n      main: standardSlimUA,\n      toggle: standard123\n    },\n    standardSlimTR: {\n      main: standardSlimTR,\n      toggle: standard123\n    },\n    capitalLettersDE: {\n      main: capitalLettersDE\n    },\n    capitalLettersNATENG: {\n      main: capitalLettersNATENG\n    },\n    capitalLettersNATFR: {\n      main: capitalLettersNATFR\n    },\n    capitalLettersNATES: {\n      main: capitalLettersNATES\n    },\n    capitalLettersNATPT: {\n      main: capitalLettersNATPT\n    },\n    numbers: {\n      main: numbers\n    },\n    numbersOperatorsBasic: {\n      main: numbersOperatorsBasic\n    },\n    numbersComma: {\n      main: numbersComma\n    },\n    numbersDot: {\n      main: numbersDot\n    },\n    mathDiv: {\n      main: mathDiv\n    },\n    mathDivNumbers: {\n      main: numbers\n    },\n    mathDivSimple: {\n      main: mathDivSimple\n    },\n    mathDivNewLine: {\n      main: mathDivNewLine\n    },\n    mathDivSimpleNewLine: {\n      main: mathDivSimpleNewLine\n    },\n    mathDivAdvanced: {\n      main: mathDivAdvanced\n    },\n    mathDivAdvancedTrig: {\n      main: mathDivAdvancedTrig\n    },\n    mathDivAdvancedLog: {\n      main: mathDivAdvancedLog\n    },\n    mathDivCalculator: {\n      main: mathDivCalculator,\n      toggle: mathDivCalculatorShift\n    },\n    appDE: {\n      main: standardDE,\n      toggle: standard123\n    },\n    appEN: {\n      main: appEN,\n      toggle: standard123\n    },\n    appFR: {\n      main: appFR,\n      toggle: standard123\n    },\n    login: {\n      main: login\n    },\n    loginEN: {\n      main: loginEN\n    },\n    loginFR: {\n      main: loginFR\n    },\n    loginES: {\n      main: loginES\n    },\n    loginPT: {\n      main: loginPT\n    },\n    phoneNumber: {\n      main: phoneNumber\n    },\n    validationCode: {\n      main: validationCode\n    }\n  };\n})();","updated":"2026-02-13T09:32:36.281605"},{"path":"pages/misc/phoneNumber/edit/setNumber/set.ls","text":"(function(){\n  return function(page){\n    return function(password, dryRun){\n      var set;\n      set = function(){\n        page.form.showSpinner();\n        return inc(\"/lib/util/pllsCall/call\")({\n          path: path(\"/../server-apis-db2/apis/user/setPhoneNumber/set\"),\n          params: {\n            phoneNumber: page.newNumber,\n            password: password,\n            dryRun: dryRun,\n            logId: log.id()\n          },\n          onCompleted: function(result){\n            if (result.status !== \"ok\") {\n              return page.onError(result);\n            } else {\n              if (dryRun) {\n                return page.confirmPassword();\n              } else {\n                return page.onCompleted(result);\n              }\n            }\n          },\n          onError: page.onError,\n          onOffline: page.onOffline\n        });\n      };\n      if (page.newNumber && !page.newNumber.match(/^\\+[0-9]/)) {\n        return page.onError({\n          status: \"error_invalid_syntax\"\n        });\n      } else {\n        return set();\n      }\n    };\n  };\n})();","updated":"2021-09-23T10:13:49.926724"},{"path":"lib/gui/divEditable/updateCustomCursor/isEnabled/is.ls","text":"(function(){\n  return function(d){\n    var ref$;\n    return (ref$ = d.showCustomCursor) != null\n      ? ref$\n      : d.showCustomCursor = (typeof CSS != 'undefined' && CSS !== null ? typeof CSS.supports == 'function' ? CSS.supports(\"caret-color\", \"transparent\") : void 8 : void 8) === false ? false : true;\n  };\n})();","updated":"2021-10-28T10:30:06.757666"},{"path":"lib/init/include/include.ls","text":"(function(){\n  return function(){\n    var f;\n    projects.includeCache == null && (projects.includeCache = {});\n    f = function(absolutePath, params, injectTHISFILE){\n      var reduceErrorStack, onError, project, localPath, cache, cacheId, ref$, c, files, result, p, res$, fileString, code, injectPath, injectT, injectDebug, injectStartPage, localCache, injectInclude, n, code2, i$, ref1$, len$, i, s, compile, error;\n      params = _.isObject(params)\n        ? params\n        : params === true\n          ? {\n            returnAsObject: true,\n            silentError: false\n          }\n          : {\n            returnAsObject: false,\n            silentError: false\n          };\n      reduceErrorStack = function(error){\n        var a, i$, i;\n        a = error.stack.split(\"\\n\");\n        for (i$ = 1; i$ <= 4; ++i$) {\n          i = i$;\n          if (_.includes(a[i], \"injectInclude\")) {\n            a[i] = null;\n            break;\n          } else {\n            a[i] = null;\n          }\n        }\n        return error.stack = _.compact(a).join(\"\\n\");\n      };\n      onError = function(message, file){\n        var error, a;\n        file == null && (file = absolutePath);\n        if (params.silentError) {\n          return {\n            includeError: message,\n            file: file\n          };\n        } else {\n          error = new Error(message);\n          reduceErrorStack(error);\n          a = error.stack.split(\"\\n\");\n          a[0] += \"\\n at $$\" + file.substr(4) + \"$$\";\n          error.stack = a.join(\"\\n\");\n          error.hideErrorCodeLines = true;\n          throw error;\n        }\n      };\n      project = absolutePath.split(\"/\")[2];\n      localPath = absolutePath.substr(5 + project.length);\n      if (localPath.indexOf(\".\") === -1 && localPath.indexOf(\"*\") === -1) {\n        localPath += \".ls\";\n      }\n      absolutePath = \"/../\" + project + \"/\" + localPath;\n      cache = projects.includeCache[project];\n      if (!cache) {\n        projects.includeCache[project] = {};\n        cache = projects.includeCache[project];\n      }\n      cacheId = localPath + ((ref$ = params.returnAsObject) != null ? ref$ : \"\");\n      if (c = cache[cacheId]) {\n        return c;\n      }\n      if (absolutePath.indexOf(\"*\") > -1) {\n        files = projects.documents(project, localPath);\n        if (params.returnAsObject) {\n          result = {};\n          for (p in files) {\n            if (p === \"_info\") {\n              continue;\n            } else {\n              result[p] = f(\"/../\" + project + \"/\" + p);\n            }\n          }\n        } else {\n          res$ = [];\n          for (p in files) {\n            if (p === \"_info\") {\n              continue;\n            } else {\n              res$.push(f(\"/../\" + project + \"/\" + p));\n            }\n          }\n          result = res$;\n        }\n        return cache[cacheId] = result;\n      }\n      try {\n        fileString = (ref$ = projects.documentCache[project][localPath]) != null ? ref$.text : void 8;\n      } catch (e$) {}\n      if (!fileString) {\n        return onError(\"include file not found: \" + absolutePath, injectTHISFILE);\n      }\n      if (localPath.indexOf(\".json\") > -1 || (localPath.indexOf(\".ls\") === -1 && localPath.indexOf(\".js\") === -1)) {\n        return cache[cacheId] = fileString;\n      } else if (localPath.indexOf(\".js\") > -1) {\n        code = fileString;\n      } else {\n        if (fileString.indexOf(\"Livescript\" + \" compilation error\") > -1) {\n          return onError(\"include ls compilation error\");\n        }\n        if (fileString.indexOf(\"Error:\" + \" Parse\") > -1) {\n          return onError(\"include ls parse error\");\n        }\n        if (fileString.indexOf(\"(function\") !== 0) {\n          return onError(\"include ls start function missing error\");\n        }\n        injectTHISFILE = absolutePath;\n        injectPath = function(path){\n          return helpers.getAbsolutePath(path, absolutePath);\n        };\n        injectT = function(){\n          return typeof engine.translate == 'function' ? engine.translate({\n            project: project,\n            localPath: localPath,\n            absolutePath: absolutePath,\n            arguments: arguments\n          }) : void 8;\n        };\n        injectDebug = function(){\n          var ref$;\n          return typeof (ref$ = projects.includeInjections).debug == 'function' ? ref$.debug(absolutePath).apply(void 8, arguments) : void 8;\n        };\n        injectStartPage = function(){\n          return projects.includeInjections.startPage(absolutePath).apply(void 8, arguments);\n        };\n        localCache = {};\n        cache._localCaches == null && (cache._localCaches = {});\n        cache._localCaches[cacheId] = localCache;\n        injectInclude = function(path, params){\n          var r;\n          r = localCache[path];\n          if (r) {\n            return r;\n          }\n          r = f(injectPath(path), params, injectTHISFILE);\n          if (r != null && params == null && path.substr(0, 4) !== \"/../\") {\n            localCache[path] = r;\n          }\n          return r;\n        };\n        code = fileString;\n        n = absolutePath.substr(4);\n        n = n.split(\".\").join(\"$D\");\n        n = n.split(\"/\").join(\"$S\");\n        n = n.split(\"-\").join(\"$M\");\n        n = n.split(\" \").join(\"$B\");\n        code2 = \"\";\n        for (i$ = 0, len$ = (ref1$ = code.split(\"function(\")).length; i$ < len$; ++i$) {\n          i = i$;\n          s = ref1$[i$];\n          code2 += i === 0\n            ? s\n            : (\"function $$\" + n + \"$P\" + (i - 1) + \"$$(\") + s;\n        }\n        code = code2;\n      }\n      compile = function(THISFILE, path, include, inc, debug, startPage, T){\n        return eval(code);\n      };\n      try {\n        result = compile(injectTHISFILE, injectPath, injectInclude, injectInclude, injectDebug, injectStartPage, injectT);\n      } catch (e$) {\n        error = e$;\n        return onError(\"include js error: \" + error.message);\n      }\n      return cache[cacheId] = result;\n    };\n    return f;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/gui/pixiSpineCanvas/setRendererAndStage/onFrame/onFrame.ls","text":"(function(){\n  return function(o){\n    var f;\n    f = function(){\n      if (!o.renderer.view.isVisible()) {\n        o.stage.destroy();\n        o.renderer.destroy();\n        o.renderer = undefined;\n        return;\n      }\n      o.renderer.render(o.stage);\n      return requestAnimationFrame(f);\n    };\n    return requestAnimationFrame(f);\n  };\n})();","updated":"2021-11-25T17:31:59.583583"},{"path":"pages/start/login/01_step1/linkHelp/link.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      deviceLog.log({\n        event: \"deviceDebugLoginHelpClicked\",\n        value: {\n          input: page.form.input.getValue()\n        }\n      });\n      return startPage({\n        path: path(\"../../00_shared/help/page\")\n      });\n    };\n    return Div({\n      paddingTop: page.form.isDesktop() ? \"1em\" : void 8\n    }).append(inc(\"/lib/gui/link/link\")(T(\"needHelp\")).css({\n      marginLeft: \"0.5em\"\n    }).tap(tap));\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/init/softKeyboard/visualViewportEvents/on.ls","text":"(function(){\n  return function(){\n    var vv;\n    vv = window.visualViewport;\n    return vv.addEventListener(\"resize\", function(){\n      var h, dif;\n      h = vv.height * vv.scale;\n      dif = body.height() - h;\n      h = dif < 20\n        ? 0\n        : Math.round(dif);\n      return inc(\"../_setHeight/set\")(h);\n    });\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/init/trySafe/trySafe.ls","text":"(function(){\n  return function(){\n    return window.trySafe = engine.isiOsApp\n      ? function(f){\n        var e;\n        try {\n          return f();\n        } catch (e$) {\n          e = e$;\n          return helpers.errorHandler(e.message, e.file, e.line, e.column, e);\n        }\n      }\n      : function(f){\n        return f();\n      };\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/util/pllsCall/showCaptcha/popup/_validate/validate.ls","text":"(function(){\n  return function(o, captcha, value){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/captcha/validate/validate\"),\n      params: {\n        userResponse: value\n      },\n      onError: function(error){\n        return o.onError(\"captcha/validate error\", error);\n      },\n      onOffline: function(){\n        return o.onOffline(\"captcha/validate offline\");\n      },\n      onCompleted: function(result, samePage){\n        if (result.status === \"ok\") {\n          return o.resend();\n        } else {\n          return o.showCaptcha({\n            retry: true\n          });\n        }\n      }\n    });\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/util/pllsCall/showCaptcha/popup/buttonSend/button.ls","text":"(function(){\n  return function(validate){\n    return Div({\n      background: Color.grey[300],\n      padding: \"0.5em\",\n      minWidth: \"5em\",\n      marginLeft: \"0.5em\",\n      alignSelf: \"stretch\"\n    }).html(T(\"checkButton\")).tap(validate);\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/util/pllsCall/onLoaded/onLoaded.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var response, error, ref$;\n      if (o.isDone) {\n        return;\n      }\n      if (!o.isVisible()) {\n        o.logDebugEvent(\"requiredVisibleDiv not visible anymore\");\n        return;\n      }\n      clearTimeout(o.requestTimeout);\n      o.isDone = true;\n      response = o.xhr.response;\n      if (o.xhr.getResponseHeader(\"anton-server\") !== \"yes\") {\n        o.onOffline(\"no anton-server, status: \" + o.xhr.status);\n        return;\n      }\n      error = o.xhr.status === 403\n        ? \"auth failed\"\n        : o.xhr.status === 408\n          ? \"request timeout\"\n          : o.xhr.status !== 200\n            ? \"status not 200, it's \" + o.xhr.status\n            : !response\n              ? \"no response object\"\n              : response.executionError ? \"executionError\" : void 8;\n      if (error) {\n        o.onError(error);\n        return;\n      }\n      if (response.status === \"captcha_required\") {\n        o.showCaptcha();\n        return;\n      }\n      return typeof (ref$ = o.params).onCompleted == 'function' ? ref$.onCompleted(response, o.isSamePage()) : void 8;\n    };\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/gui/pixiRenderer/pixiRenderer.ls","text":"(function(){\n  return function(o){\n    var width, ref$, height, antialias, transparent, resolution, roundPixels, autoResize;\n    width = (ref$ = o != null ? o.width : void 8) != null ? ref$ : 100;\n    height = (ref$ = o != null ? o.height : void 8) != null ? ref$ : 100;\n    antialias = (ref$ = o != null ? o.antialias : void 8) != null ? ref$ : true;\n    transparent = (ref$ = o != null ? o.transparent : void 8) != null ? ref$ : true;\n    resolution = (o != null ? o.resolution : void 8) || window.devicePixelRatio || 1;\n    roundPixels = (ref$ = o != null ? o.roundPixels : void 8) != null ? ref$ : false;\n    autoResize = (ref$ = o.autoResize) != null ? ref$ : false;\n    return PIXI.autoDetectRenderer(width, height, {\n      antialias: antialias,\n      transparent: transparent,\n      resolution: resolution,\n      roundPixels: roundPixels,\n      autoResize: autoResize\n    });\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/util/pllsCall/resend/resend.ls","text":"(function(){\n  return function(o){\n    return function(){\n      o.startedAt = new Date();\n      o.requestTimeout = null;\n      o.isDone = false;\n      o.isResent = true;\n      o.xhr = new XMLHttpRequest();\n      o.send();\n      return o.setTimeout();\n    };\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/util/pllsCall/showCaptcha/load/load.ls","text":"(function(){\n  return function(o, onLoaded){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/captcha/get/get\"),\n      params: {},\n      onError: function(error){\n        return o.onError(\"captcha/get error\", error);\n      },\n      onOffline: function(){\n        return o.onOffline(\"captcha/get offline\");\n      },\n      onCompleted: function(result, samePage){\n        if (samePage) {\n          return onLoaded(result);\n        }\n      }\n    });\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/01_forgot/recoveryOptions/sendViaEmail/sendViaEmail.ls","text":"(function(){\n  return function(startRecovery){\n    var click;\n    click = function(){\n      return startRecovery(\"email\");\n    };\n    return Button({\n      label: T(\"byMail\")\n    }).css({\n      margin: \"0.5em\"\n    }).tap(click);\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/util/pllsCall/showCaptcha/popup/svg/svg.ls","text":"(function(){\n  return function(captcha){\n    var svg;\n    svg = Div().html(captcha.svg).firstChild;\n    return Div().html(svg.css({\n      width: \"250px\",\n      height: \"100px\",\n      margin: \"0 0 0.7em\"\n    }));\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/util/pllsCall/showCaptcha/popup/title/title.ls","text":"(function(){\n  return function(params){\n    return Div().html(params != null && params.retry\n      ? T(\"captchaIncorrectTryAgain\")\n      : T(\"captchaText\"));\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/util/pllsCall/showCaptcha/show.ls","text":"(function(){\n  return function(o){\n    return function(params){\n      var load, showPopup;\n      load = function(){\n        return inc(\"load/load\")(o, showPopup);\n      };\n      showPopup = function(captcha){\n        return inc(\"popup/popup\")(o, params, captcha);\n      };\n      return load();\n    };\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/update/calcSoftKeyboardBottom/popup/popup.ls","text":"(function(){\n  return function(pw, h){\n    pw.popupBottom.css({\n      backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n      paddingBottom: h + \"px\"\n    }).show();\n    return pw.popupWrapper.visibleSoftKeyboard = h > 0;\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/_shared/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"settingsUrl\"),\n      title: T(\"settings\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/01_forgot/recoveryOptions/sendViaSMS/sendViaSMS.ls","text":"(function(){\n  return function(startRecovery){\n    var click;\n    click = function(){\n      return startRecovery(\"sms\");\n    };\n    return Button({\n      label: T(\"byTextMessage\")\n    }).css({\n      margin: \"0.5em\"\n    }).tap(click);\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/01_forgot/_t.ls","text":"(function(){\n  return {\n    noOptions: {\n      de: \"Leider hast du keine Kontaktinformationen angegeben, damit wir dir einen Link zum Zurücksetzen deines Passworts zuschicken können.<br><br>Bitte kontaktiere uns unter<br>support@anton.app\",\n      en: \"Unfortunately you have not provided us with any contact information so we cannot send you a link to reset your password.<br><br>Please contact us at<br>support@anton.app\",\n      fr: \"Tu ne nous as malheureusement pas donné tes coordonnées et nous ne pouvons pas t'envoyer de lien pour redéfinir ton mot de passe.<br><br>Merci de nous contacter à<br>support@anton.app\",\n      es: \"Lamentablemente, no tenemos ningún contacto tuyo al cual enviarte el vínculo para restablecer tu contraseña. <br><br>Por favor, envíanos un correo a<br>support@anton.app\",\n      pt: \"Infelizmente, você não forneceu nenhuma informação de contato para que possamos enviar um link para redefinir sua senha.<br><br>Por favor, entre em contato conosco através de<br>support@anton.app\"\n    },\n    askTeacher: {\n      de: \"Du kannst auch deine/n Lehrer/in nach deinem Anmelde-&#65279;Code fragen.\",\n      en: \"You can also ask your teacher for your login-&#65279;code.\",\n      fr: \"Tu peux aussi demander ton code de connexion à ton·ta professeur·e.\",\n      es: \"También, puedes preguntarle a tu docente por tu clave de acceso.\",\n      pt: \"Você também pode perguntar para seu/sua professor(a) o seu código de acesso.\"\n    },\n    noOptionsAskTeacher: {\n      de: \"Leider hast du keine Kontaktinformationen angegeben, damit wir dir einen Link zum Zurücksetzen deines Passworts zuschicken können.<br><br>Du kannst aber deine/n Lehrer/in nach deinem Anmelde-&#65279;Code fragen.\",\n      en: \"Unfortunately you have not provided us with any contact information so we cannot send you a link to reset your password.<br><br>You can ask your teacher for your login code.\",\n      fr: \"Tu ne nous as malheureusement pas donné tes coordonnées et nous ne pouvons pas t'envoyer de lien pour réinitialiser ton mot de passe.<br><br>Tu peux demander ton code de connexion à ton·ta professeur·e.\",\n      es: \"Lamentablemente, no tenemos ningún contacto tuyo al cual enviarte el vínculo para restablecer tu contraseña.<br><br>Puedes preguntarle tu clave de acceso a tu docente.\",\n      pt: \"Infelizmente, você não forneceu nenhuma informação de contato para que possamos enviar um link para redefinir sua senha.<br><br>Mas você pode pedir o seu código de acesso ao/à seu/sua professor(a).\"\n    },\n    howToContact: {\n      de: \"Bitte sag uns, wie wir dich benachrichtigen sollen.\",\n      en: \"Please tell us how you would like to be contacted.\",\n      fr: \"Merci de nous dire comment tu veux qu'on te contacte.\",\n      es: \"¿Cómo quieres que te contactemos?\",\n      pt: \"Por favor, diga-nos como devemos contatá-lo.\"\n    },\n    byMail: {\n      de: \"per E-&#65279;Mail\",\n      en: \"by email\",\n      fr: \"par e-mail\",\n      es: \"Por correo electrónico\",\n      pt: \"por e-mail\"\n    },\n    byTextMessage: {\n      de: \"per SMS\",\n      en: \"by text\",\n      fr: \"par SMS\",\n      es: \"por SMS\",\n      pt: \"por SMS\"\n    }\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/01_forgot/noOptions/noOptions.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      maxWidth: \"90%\",\n      width: \"30em\",\n      margin: \"0 auto\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"noOptions\"));\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/01_forgot/recoveryOptions/askTeacher/askTeacher.ls","text":"(function(){\n  return function(hasOtherOptions){\n    var text;\n    text = hasOtherOptions\n      ? T(\"askTeacher\")\n      : T(\"noOptionsAskTeacher\");\n    return Div().css({\n      margin: \"0.5em auto 0\",\n      width: \"30em\",\n      maxWidth: \"90%\"\n    }).html(text);\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/01_forgot/recoveryOptions/question/question.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      margin: \"0.5em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"howToContact\"));\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/01_forgot/recoveryOptions/recoveryOptions.ls","text":"(function(){\n  return function(onStartRecovery){\n    var params, hasPhone, hasEMail, hasTeacher, spinner, setFieldsVisible, onOffline, onError, onCompleted, div, question, email, phone, teacher;\n    params = app.currentPage.params;\n    hasPhone = params.recoveryOptions.hasPhone;\n    hasEMail = params.recoveryOptions.hasEMail;\n    hasTeacher = params.recoveryOptions.hasGroupTeacher;\n    if (!hasPhone && !hasEMail && !hasTeacher) {\n      return undefined;\n    }\n    spinner = null;\n    setFieldsVisible = function(visible){\n      if (visible) {\n        if (typeof email != 'undefined' && email !== null) {\n          email.show();\n        }\n        if (typeof phone != 'undefined' && phone !== null) {\n          phone.show();\n        }\n        if (typeof teacher != 'undefined' && teacher !== null) {\n          teacher.show();\n        }\n        return typeof question != 'undefined' && question !== null ? question.show() : void 8;\n      } else {\n        if (typeof email != 'undefined' && email !== null) {\n          email.hide();\n        }\n        if (typeof phone != 'undefined' && phone !== null) {\n          phone.hide();\n        }\n        if (typeof teacher != 'undefined' && teacher !== null) {\n          teacher.hide();\n        }\n        return typeof question != 'undefined' && question !== null ? question.hide() : void 8;\n      }\n    };\n    onOffline = function(){\n      setFieldsVisible(true);\n      spinner.remove();\n      return inc(\"/lib/offline/offlinePopup/popup\")();\n    };\n    onError = function(error){\n      debug(error);\n      setFieldsVisible(true);\n      return spinner.remove();\n    };\n    onCompleted = function(recoveryOption){\n      setFieldsVisible(false);\n      params.recoveryOption = recoveryOption;\n      return onStartRecovery(params);\n    };\n    return div = Div().append(hasPhone || hasEMail ? question = inc(\"question/question\")() : void 8, Div().html(hasEMail ? email = inc(\"sendViaEmail/sendViaEmail\")(onCompleted) : void 8, hasPhone ? phone = inc(\"sendViaSMS/sendViaSMS\")(onCompleted) : void 8, hasTeacher ? teacher = inc(\"askTeacher/askTeacher\")(hasPhone || hasEMail) : void 8));\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/01_forgot/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbar2/topbar\")({\n          close: true\n        });\n      },\n      start: function(){\n        var validateRecovery;\n        validateRecovery = function(params){\n          return startPage({\n            path: path(\"../02_enterRecoveryMailOrPhone/page\"),\n            params: params\n          });\n        };\n        page.append(inc(\"recoveryOptions/recoveryOptions\")(validateRecovery) || inc(\"noOptions/noOptions\")(page));\n        return page.top.css({\n          boxShadow: \"\"\n        });\n      }\n    };\n  };\n})();","updated":"2021-11-29T15:08:12.694289"},{"path":"pages/misc/password/reset/02_enterRecoveryMailOrPhone/inputForm/inputForm.ls","text":"(function(){\n  return function(option, onSubmit){\n    var label;\n    label = option === \"email\"\n      ? T(\"email\")\n      : T(\"cellNumber\");\n    return inc(\"/lib/gui/inputForm/inputForm\")({\n      label: T(\"inputMailOrPhone\", label),\n      submitLabel: T(\"continueButton\"),\n      submit: onSubmit,\n      cancel: false,\n      native: true,\n      placeholder: label.replace(\"&#65279;\", \"\"),\n      screenKeyboardLayout: option === \"email\" ? twitch({\n        de: \"login\",\n        en: \"loginEN\",\n        fr: \"loginFR\",\n        es: \"loginES\",\n        pt: \"loginPT\"\n      }) : \"phoneNumber\"\n    }).css({\n      display: \"inline-block\",\n      width: \"100%\",\n      maxWidth: \"18em\"\n    });\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/03_resetPasswordCode/_t.ls","text":"(function(){\n  return {\n    inputEmailOrPhoneCode: {\n      de: \"Bitte trage den Code ein, den wir soeben an deine $1 geschickt haben.\",\n      en: \"Please enter the code that we just sent to your $1.\",\n      fr: \"Merci d'entrer le code que nous venons d'envoyer à ton $1.\",\n      es: \"Por favor, ingresa el código que acabamos de enviarte a tu $1.\",\n      pt: \"Por favor, digite o código que acabamos de enviar para seu $1.\"\n    },\n    errorInvalidCode: {\n      de: \"Dein Code ist nicht gültig. Bitte überprüfe deine Eingabe oder fordere einen neuen an.\",\n      en_gb: \"Your code is not valid. Please check your entry or request a new one.\",\n      en: \"Your code is not valid. Please check your input or request a new one.\",\n      fr: \"Ton code n'est pas valide. Merci de le vérifier ou d'en demander un nouveau.\",\n      es: \"Tu código no es válido. Por favor, verifica una vez más o vuelve a pedirlo.\",\n      pt: \"Seu código não é válido. Por favor, verifique mais uma vez ou solicite um novo código.\"\n    },\n    errorMessage: {\n      de: \"Ups, etwas ist schief gegangen!\",\n      en: \"Oops, something has gone wrong!\",\n      fr: \"Oups… Il y a eu un problème&nbsp;!\",\n      es: \"¡Ups! Algo salió mal.\",\n      pt: \"Ops! Algo deu errado!\"\n    }\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/02_enterRecoveryMailOrPhone/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        var params, recoveryOption, onError, onSubmit;\n        params = page.params;\n        recoveryOption = params.recoveryOption;\n        onError = function(error){\n          var message, minutes, that;\n          page.form.hideSpinner();\n          message = error.status === \"error_no_user_found\"\n            ? T(\"errorUserNotFound\")\n            : error.status === \"error_wrong_recovery_option\"\n              ? recoveryOption === \"email\"\n                ? T(\"errorWrongOptionEmail\")\n                : T(\"errorWrongOptionPhone\")\n              : error.status === \"error_blocked\"\n                ? T(\"errorBlocked\")\n                : error.status === \"error_captcha_failed\"\n                  ? T(\"errorCaptchaFailed\")\n                  : error.status === \"error_too_many_codes_requested\"\n                    ? (minutes = _.ceil((new Date(error.blockedUntil) - new Date()) / (1000 * 60)), T(\"errorTooManyRequested\", minutes))\n                    : (that = error.message)\n                      ? that\n                      : T(\"errorMessage\");\n          page.form.error.html(message);\n          page.form.error.css({\n            minHeight: page.form.error.height() + \"px\"\n          });\n          page.form.input.start();\n          return page.form.input.selectAll();\n        };\n        onSubmit = function(){\n          var value;\n          page.form.showSpinner();\n          value = page.form.input.getValue();\n          if (value === \"\") {\n            return onError({\n              message: T(\"emptyField\")\n            });\n          }\n          return inc(\"requestResetPassword/request\")({\n            uniqName: params.uniqName,\n            email: params.email,\n            phone: params.phone,\n            loginCode: params.loginCode,\n            recoveryOption: recoveryOption,\n            recoveryValue: value,\n            requiredVisibleDiv: page,\n            onError: onError,\n            onOffline: function(){\n              return inc(\"/lib/offline/offlinePopup/popup\")();\n            },\n            onCompleted: function(){\n              return startPage({\n                path: path(\"../03_resetPasswordCode/page\"),\n                params: params\n              });\n            }\n          });\n        };\n        page.append(page.form = inc(\"inputForm/inputForm\")(recoveryOption, onSubmit));\n        return page.form.input.start();\n      }\n    };\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"pages/misc/password/reset/03_resetPasswordCode/inputForm/inputForm.ls","text":"(function(){\n  return function(onSubmit){\n    var validate, change, submit, form;\n    validate = function(value, key){\n      value = value.replace(/[^0-9]/g, '');\n      value = value.toUpperCase();\n      if (key === \"back\" && value.length === 3) {\n        value = value.slice(0, 3);\n      } else if (value.length > 2) {\n        value = value.slice(0, 3) + '-' + value.slice(3);\n      }\n      if (value.length > 7) {\n        value = value.slice(0, 7);\n      }\n      return value;\n    };\n    change = function(key){\n      var value, validated;\n      value = form.input.getValue();\n      validated = validate(value, key);\n      if (value !== validated) {\n        return form.input.setValue(validated);\n      }\n    };\n    submit = function(){\n      var code;\n      code = form.input.getValue();\n      if (code === \"\") {\n        form.input.start();\n        return;\n      }\n      code = code.replace(\"-\", \"\");\n      return onSubmit(code);\n    };\n    form = inc(\"/lib/gui/inputForm/inputForm\")({\n      fixedLength: 7,\n      change: change,\n      submit: submit,\n      submitLabel: T(\"continueButton\"),\n      screenKeyboardLayout: \"validationCode\",\n      screenKeyboardShiftStatus: true\n    }).css({\n      marginTop: \"0.5em\"\n    });\n    form.input.css({\n      minWidth: \"8em\"\n    });\n    return form;\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/04_resetPasswordPassword/_t.ls","text":"(function(){\n  return {\n    errorInvalidCode: {\n      de: \"Dein Code ist nicht mehr gültig. Bitte fordere einen neuen an.\",\n      en_gb: \"Your code is not valid any more. Please request a new one.\",\n      en: \"Your code is not valid anymore. Please request a new one.\",\n      fr: \"Ton code n'est plus valide. Merci d'en demander un nouveau.\",\n      es: \"Tu código ya no es válido. Por favor, pide uno nuevo.\",\n      pt: \"Seu código não é mais válido. Por favor, solicite um novo.\"\n    }\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/reset/03_resetPasswordCode/requestCheckCode/request.ls","text":"(function(){\n  return function(o){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/login/passwordReset/checkCode/check\"),\n      params: {\n        uniqName: o.uniqName,\n        email: o.email,\n        phone: o.phone,\n        code: o.code,\n        loginCode: o.loginCode,\n        checkCaptcha: true\n      },\n      requiredVisibleDiv: o.requiredVisibleDiv,\n      onError: function(error){\n        return o.onError(error);\n      },\n      onOffline: function(){\n        return o.onOffline();\n      },\n      onCompleted: function(result){\n        if (result.status !== \"ok\") {\n          return o.onError(result);\n        } else {\n          return o.onCompleted();\n        }\n      }\n    });\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"pages/misc/password/reset/_t.ls","text":"(function(){\n  return {\n    errorUserNotFound: {\n      de: \"Wir konnten dein Nutzerkonto leider nicht finden.\",\n      en: \"We couldn't find your account.\",\n      fr: \"Nous n'avons pas trouvé ton compte.\",\n      es: \"No pudimos encontrar tu cuenta.\",\n      pt: \"Não foi possível encontrar sua conta.\"\n    },\n    email: {\n      de: \"E-&#65279;Mail-Adresse\",\n      en: \"email address\",\n      fr: \"adresse e-mail\",\n      es: \"correo electrónico\",\n      pt: \"endereço de e-mail\"\n    },\n    cellNumber: {\n      de: \"Handynummer\",\n      en_gb: \"mobile phone number\",\n      en: \"cell phone number\",\n      fr: \"numéro de téléphone\",\n      es: \"número de teléfono\",\n      pt: \"número de telefone\"\n    }\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/set/errorDiv/div.ls","text":"(function(){\n  return function(){\n    return Div({\n      color: Color.red[600],\n      marginTop: \"0.5em\",\n      textAlign: \"center\",\n      minHeight: \"3em\"\n    });\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/set/submit/submit.ls","text":"(function(){\n  return function(page, values, onDone){\n    var onError, onOffline, onCompleted;\n    page.form.showSpinner();\n    onError = function(error){\n      var message;\n      page.form.hideSpinner();\n      message = error.status === \"error_invalid_length\"\n        ? T(\"errorInvalidLength\", error.count)\n        : error.status === \"error_invalid_character\"\n          ? T(\"errorInvalidCharacter\", error.character)\n          : error.status === \"error_oldPassword\"\n            ? T(\"errorOldPassword\")\n            : T(\"errorMessage\");\n      return page.errorDiv.html(message);\n    };\n    onOffline = function(){\n      page.form.hideSpinner();\n      page.form.start();\n      return inc(\"/lib/offline/offlinePopup/popup\")();\n    };\n    onCompleted = function(result){\n      if (result.status !== \"ok\") {\n        return onError(result);\n      } else {\n        return log.sync(function(error){\n          if (error) {\n            return onOffline();\n          } else {\n            return onDone();\n          }\n        });\n      }\n    };\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/user/setPassword/set\"),\n      params: {\n        oldPassword: values.oldPw,\n        password: values.newPw1,\n        logId: log.id()\n      },\n      requiredVisibleDiv: page.form,\n      onCompleted: onCompleted,\n      onError: onError,\n      onOffline: onOffline\n    });\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"pages/misc/password/set/validate/validate.ls","text":"(function(){\n  return function(page, firstTime, values){\n    var vOld, vNew1, vNew2;\n    vOld = values.oldPw;\n    vNew1 = values.newPw1;\n    vNew2 = values.newPw2;\n    if (vOld != null && !vOld) {\n      page.errorDiv.html(T(\"emptyOldPassword\"));\n      return false;\n    }\n    if (vNew1 === \"\" || vNew2 === \"\") {\n      page.errorDiv.html(firstTime\n        ? T(\"emptyPassword\")\n        : T(\"emptyNewPassword\"));\n      return false;\n    }\n    if (vNew1 !== vNew2) {\n      page.errorDiv.html(firstTime\n        ? T(\"passwordsNotEqual\")\n        : T(\"newPasswordsNotEqual\"));\n      return false;\n    }\n    return true;\n  };\n})();","updated":"2021-11-22T14:24:13.7845"},{"path":"lib/util/pllsCall/showCaptcha/popup/input/input.ls","text":"(function(){\n  return function(validate){\n    var f, input;\n    f = inc(\"/lib/util/isDesktop/isDesktop\")() || deviceLog['var'](\"useInputEditable\")\n      ? inc(\"/lib/gui/inputEditable/input\")\n      : inc(\"/lib/gui/input2/input\");\n    return input = f({\n      keyboardParentDiv: app.currentPage.popupBottom,\n      keyboardLayout: twitch({\n        de: \"login\",\n        en: \"loginEN\",\n        fr: \"loginFR\",\n        es: \"loginES\",\n        pt: \"loginPT\"\n      }),\n      linePadding: \"0.4em\",\n      onSubmit: validate,\n      maxLength: 4\n    }).css({\n      width: \"6em\"\n    });\n  };\n})();","updated":"2021-11-22T15:00:42.015533"},{"path":"pages/level/afterFinish/start/showAdventCalendar/show.ls","text":"(function(){\n  return function(){\n    var date, previewMode, mode, events, totalLevelsToday, todoLevelsToday, todayDateString, e, preloadMedia;\n    date = inc(\"/lib/util/formatDate2/format\")();\n    previewMode = engine.isDebug && date.m === 11;\n    if (date.m !== 12 && !previewMode) {\n      return false;\n    }\n    if (date.d > 24) {\n      return false;\n    }\n    mode = previewMode ? \"preview\" : \"live\";\n    events = log.list({\n      event: \"showPromoAdventCalendar\",\n      year: date.Y,\n      mode: mode\n    });\n    if ((events != null ? events.length : void 8) > 6) {\n      return false;\n    }\n    totalLevelsToday = inc(\"calcTotalLevelsToday/calc\")();\n    todoLevelsToday = Math.max(3 - totalLevelsToday, 0);\n    todayDateString = new Date().toDateString();\n    if (_.find(events, function(e){\n      return new Date(e.created).toDateString() === todayDateString && e.todoLevelsToday === todoLevelsToday;\n    })) {\n      return false;\n    }\n    e = log.findLast({\n      event: \"setAdventCalendarOpened\",\n      day: new Date().getDate(),\n      year: new Date().getFullYear(),\n      mode: mode\n    });\n    if (e) {\n      return false;\n    }\n    preloadMedia = inc(\"../../pages/adventCalendarPromo/_preloadMedia/preloadMedia\")();\n    if (!preloadMedia.isReady()) {\n      return false;\n    }\n    startPage({\n      path: path(\"../../pages/adventCalendarPromo/page\"),\n      params: {\n        totalLevelsToday: totalLevelsToday,\n        todoLevelsToday: todoLevelsToday\n      }\n    });\n    return true;\n  };\n})();","updated":"2021-11-29T10:50:57.974049"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/03_done/icon/icon.ls","text":"(function(){\n  return function(page){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/security.svg\"),\n      size: \"4em\",\n      color: Color.blue[500]\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/util/pllsCall/showCaptcha/popup/popup.ls","text":"(function(){\n  return function(o, params, captcha){\n    var validate, div, input, button, popup;\n    validate = function(){\n      var v;\n      v = input.getValue().trim();\n      if (v.length === 0) {\n        return;\n      }\n      input.stop();\n      popup.close();\n      return inc(\"_validate/validate\")(o, captcha, v);\n    };\n    div = Div({\n      padding: \"1em\"\n    }).html(inc(\"title/title\")(params), inc(\"svg/svg\")(captcha), Div({\n      display: \"flex\"\n    }).html(input = inc(\"input/input\")(validate), button = inc(\"buttonSend/button\")(validate)));\n    popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(type){\n        var ref$;\n        if (type === \"outside\" || type === \"icon\") {\n          return typeof (ref$ = o.params).onCompleted == 'function' ? ref$.onCompleted({\n            status: \"error_captcha_failed\"\n          }, o.isSamePage()) : void 8;\n        }\n      }\n    });\n    return input.start();\n  };\n})();","updated":"2021-11-23T10:42:03.073424"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/03_done/text/text.ls","text":"(function(){\n  return function(page){\n    return Div({\n      margin: \"1em auto\",\n      width: \"35em\",\n      maxWidth: \"90%\",\n      lineHeight: \"1.7em\"\n    }).html(T(\"successText\"));\n  };\n})();","updated":"2021-11-23T10:42:03.073424"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/02_page_setLoginCodeNeedsPassword/activateButton/button.ls","text":"(function(){\n  return function(page){\n    return Button({\n      label: T(\"continueButton\")\n    }).tap(function(){\n      return inc(\"../submit/submit\")(page);\n    });\n  };\n})();","updated":"2021-11-25T17:31:59.583583"},{"path":"addons/topbarLevel/feedbackIcon/_t.ls","text":"(function(){\n  return {\n    sendFeedback: {\n      de: \"Möchtest du uns ein Problem melden?\",\n      en: \"Would you like to report a problem?\",\n      fr: \"Tu veux nous signaler un problème&nbsp;?\",\n      es: \"¿Quieres reportar algún problema?\",\n      pt: \"Gostaria de reportar um problema?\"\n    },\n    send: {\n      de: \"Senden\",\n      en: \"Send\",\n      fr: \"Envoyer\",\n      es: \"Enviar\",\n      pt: \"Enviar\"\n    },\n    hasMistake: {\n      de: \"hat einen Fehler\",\n      en: \"contains a mistake\",\n      fr: \"a une erreur\",\n      es: \"tiene un error\",\n      pt: \"há um erro\"\n    },\n    noSound: {\n      de: \"hat keinen Ton\",\n      en: \"is without sound\",\n      fr: \"n'a pas de son\",\n      es: \"no hay sonido\",\n      pt: \"não há som\"\n    },\n    tooEasy: {\n      de: \"ist zu leicht\",\n      en: \"is too easy\",\n      fr: \"est trop facile\",\n      es: \"es demasiado fácil\",\n      pt: \"é muito fácil\"\n    },\n    tooHard: {\n      de: \"ist zu schwer\",\n      en: \"is too difficult\",\n      fr: \"est trop difficile\",\n      es: \"es demasiado difícil\",\n      pt: \"é muito difícil\"\n    },\n    theExercise: {\n      de: \"Die Aufgabe ...\",\n      en: \"The exercise ...\",\n      fr: \"L'exercice…\",\n      es: \"El ejercicio...\",\n      pt: \"O exercício...\"\n    },\n    soundInfoBrowser: {\n      de: \"Bitte überprüfe, ob die Lautstärke auf deinem Gerät hochgedreht ist.\",\n      en: \"Please check whether the volume on your device is turned up.\",\n      fr: \"N'oublie pas de vérifier que le son de ton appareil est activé.\",\n      es: \"Verifica que el modo silencio no esté activado (también revisa el interruptor al costado del dispositivo).\",\n      pt: \"Por favor, verifique se o volume do seu dispositivo está ativado.\"\n    },\n    soundInfoAndroid: {\n      de: \"Bitte überprüfe, ob die Lautstärke für Medien auf deinem Gerät hochgedreht ist.\",\n      en: \"Please check whether the volume for media on your device is turned up.\",\n      fr: \"N'oublie pas de vérifier que le son pour les média est activé sur ton appareil.\",\n      es: \"Por favor, verifica en tu dispositivo que el volumen de medios esté activado.\",\n      pt: \"Por favor, verifique se o volume de mídia em seu dispositivo está ativado.\"\n    },\n    soundInfoIOS: {\n      de: \"Auf iPhones und iPads muss der Stummschalter ausgeschaltet sein, damit du bei ANTON Ton hören kannst. Dieser ist entweder an der Seite deines Gerätes oder im Kontrollzentrum (dort, wo du auch die Helligkeit einstellst).\",\n      en: \"On iPhones and iPads, the mute button must be disabled in order to be able to hear sounds in ANTON. This button is located either on the side of your device or is marked as a crossed-out sound symbol in the control center (where you set the brightness).\",\n      fr: \"Sur les iPhones et les iPads, le mode silencieux doit être désactivé pour entendre le son sur ANTON. Ça se fait soit grâce un bouton latéral, soit dans les réglages (où tu définis aussi la luminosité).\",\n      es: \"Tanto en iPhones como en iPads es necesario desactivar el modo silencioso para poder escuchar el sonido de ANTON. Esto lo logras usando el botón lateral de tu dispositivo o en el centro de control (en donde también ajustas el brillo de tu pantalla).\",\n      pt: \"Tanto em iPhones como em iPads, é necessário desativar o botão mudo para que você possa ouvir o som do ANTON. Este botão você encontra ou na lateral do seu dispositivo ou no centro de controle (no mesmo lugar onde você ajusta o brilho do seu aparelho).\"\n    },\n    soundInfoAll: {\n      de: \"Hörst du immer noch keinen Ton? Dann probiere es bitte einmal mit Kopfhörern. <br><br>Falls es immer noch nicht klappt, klicke bitte erneut auf den Smiley und dann auf <i><b>hat einen Fehler</b></i> und beschreibe uns dein Problem möglichst genau.\",\n      en_gb: \"Still no sound? Then please try it using headphones.<br><br>If it still doesn't work, please click on the smiley again and then on <i><b>contains a mistake</b></i> and describe the problem in as much detail as possible.\",\n      en: \"Still no sound? Then please try it using headphones.<br><br>If it still doesn't work, please click on the smiley again and then on <i><b>contains a mistake</b></i> and describe the problem as detailed as possible.\",\n      fr: \"Toujours pas de son&nbsp;? Tu peux essayer avec un casque ou des écouteurs. <br><br>Si ça ne marche toujours pas, alors appuie encore sur le smiley et sur <i><b>a une erreur</b></i>, puis décris le problème avec autant de détails que possible.\",\n      es: \"¿Aún no funciona el sonido? Favor de intentarlo con audífonos.<br><br>Si aún no funciona, por favor, presiona nuevamente la carita feliz y después, en vez de presionar <i>no tiene sonido</i>, presiona <i><b>tiene un error</b></i>. Descríbenos tu problema lo más detalladamente posible.\",\n      pt: \"Ainda sem som? Por favor, experimente usar fones de ouvido.<br><br>Se ainda não funciona, por favor, clique novamente no smiley. Depois clique em <i><b>tem um erro</b></i> e nos descreva o problema o mais detalhadamente possível.\"\n    }\n  };\n})();","updated":"2025-09-30T07:14:51.606212"},{"path":"pages/misc/password/set/page.ls","text":"(function(){\n  return function(page){\n    var context;\n    context = page.params.context;\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(context);\n      },\n      urlDescription: function(){\n        return inc(\"../_shared/_urlDescription/description\")();\n      },\n      start: function(){\n        var firstTime, finish;\n        firstTime = page.params.firstTime;\n        finish = function(password){\n          var that;\n          if (that = page.params.finishFunctionPath) {\n            return inc(that)();\n          } else {\n            return startPage({\n              history: -2,\n              animation: \"slideRight\"\n            });\n          }\n        };\n        page.submit = function(values){\n          values == null && (values = page.form.getValues());\n          if (inc(\"validate/validate\")(page, firstTime, values)) {\n            return inc(\"submit/submit\")(page, values, function(){\n              if (context === \"settings\") {\n                inc(\"/lib/gui/toast/toast\")({\n                  label: firstTime\n                    ? T(\"setSuccessFirstTime\")\n                    : T(\"setSuccess\")\n                });\n              }\n              return finish();\n            });\n          }\n        };\n        page.append(Div({\n          width: \"20em\",\n          maxWidth: \"95%\",\n          margin: \"0 auto\",\n          textAlign: \"left\"\n        }).append(page.form = inc(\"/lib/gui/multiform/multiform\")({\n          onSubmit: page.submit,\n          fields: [\n            !firstTime ? {\n              id: \"oldPw\",\n              label: T(\"oldPassword\"),\n              type: \"input\",\n              isPassword: true\n            } : void 8, {\n              id: \"newPw1\",\n              label: firstTime\n                ? T(\"passwordInput\")\n                : T(\"newPasswordInput\"),\n              type: \"input\",\n              isPassword: true\n            }, {\n              id: \"newPw2\",\n              label: firstTime\n                ? T(\"confirmPassword\")\n                : T(\"confirmNewPassword\"),\n              type: \"input\",\n              isPassword: true\n            }, {\n              id: \"button\",\n              type: \"button\",\n              label: T(\"send\")\n            }\n          ]\n        }), page.errorDiv = inc(\"errorDiv/div\")()));\n        return page.form.start();\n      }\n    };\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/misc/password/_t.ls","text":"(function(){\n  return {\n    settings: {\n      de: \"Einstellungen\",\n      en: \"Settings\",\n      fr: \"Paramètres\",\n      es: \"Ajustes\",\n      pt: \"Configurações\"\n    },\n    settingsUrl: {\n      de: \"einstellungen\",\n      en: \"settings\",\n      fr: \"parametres\",\n      es: \"ajustes\",\n      pt: \"configuracoes\"\n    },\n    passwordInput: {\n      de: \"Passwort:\",\n      en: \"Password:\",\n      fr: \"Mot de passe&nbsp;:\",\n      es: \"Contraseña:\",\n      pt: \"Senha:\"\n    },\n    newPasswordInput: {\n      de: \"Neues Passwort:\",\n      en: \"New password:\",\n      fr: \"Nouveau mot de passe&nbsp;:\",\n      es: \"Nueva contraseña:\",\n      pt: \"Nova senha:\"\n    },\n    errorMessage: {\n      de: \"Ups, etwas ist schief gegangen.\",\n      en: \"Oops, something went wrong here.\",\n      fr: \"Oups… il y a eu un problème.\",\n      es: \"¡Ups! Algo salió mal.\",\n      pt: \"Ops! Ocorreu um erro.\"\n    },\n    errorInvalidCharacter: {\n      de: \"Das Passwort enthält ein ungültiges Zeichen: '$1'\",\n      en: \"The password contains an invalid character: '$1'\",\n      fr: \"Le mot de passe contient un caractère qui n'est pas valide&nbsp;: “$1”\",\n      es: \"Tu contraseña contiene un carácter inválido: '$1'\",\n      pt: \"Sua senha contém caracteres inválidos: '$1'\"\n    },\n    errorInvalidLength: {\n      de: \"Das Passwort muss mindestens ((ein | $1)) Zeichen beinhalten.\",\n      en: \"The password must contain at least ((one character | $1 characters)).\",\n      fr: \"Le mot de passe doit contenir au moins ((un caractère | $1 caractères)).\",\n      es: \"La contraseña debe contener por lo menos ((un carácter | $1 caracteres)).\",\n      pt: \"A senha deve conter pelo menos ((um caractere | $1 caracteres)).\"\n    },\n    errorOldPassword: {\n      de: \"Das alte Passwort ist nicht korrekt.\",\n      en: \"The old password is not correct.\",\n      fr: \"L'ancien mot de passe n'est pas correct.\",\n      es: \"La contraseña anterior es incorrecta.\",\n      pt: \"A senha antiga está incorreta.\"\n    },\n    emptyPassword: {\n      de: \"Das Passwort darf nicht leer sein.\",\n      en: \"The password cannot be left blank.\",\n      fr: \"Le mot de passe ne peut pas rester vide.\",\n      es: \"La contraseña no puede quedar en blanco.\",\n      pt: \"A senha não pode ficar em branco.\"\n    },\n    emptyNewPassword: {\n      de: \"Das neue Passwort darf nicht leer sein.\",\n      en: \"The new password cannot be left blank.\",\n      fr: \"Le nouveau mot de passe ne peut pas rester vide.\",\n      es: \"La contraseña nueva no puede quedar en blanco.\",\n      pt: \"A senha nova não pode ficar em branco.\"\n    },\n    emptyOldPassword: {\n      de: \"Das alte Passwort darf nicht leer sein.\",\n      en: \"The old password cannot be left blank.\",\n      fr: \"L'ancien mot de passe ne peut pas rester vide.\",\n      es: \"La contraseña anterior no puede quedar en blanco.\",\n      pt: \"A senha antiga não pode ficar em branco.\"\n    },\n    passwordsNotEqual: {\n      de: \"Die Passwörter stimmen nicht überein!\",\n      en: \"The passwords do not match.\",\n      fr: \"Les mots de passe ne sont pas identiques&nbsp;!\",\n      es: \"Las contraseñas no coinciden.\",\n      pt: \"As senhas não coincidem.\"\n    },\n    newPasswordsNotEqual: {\n      de: \"Die neuen Passwörter stimmen nicht überein!\",\n      en: \"The new passwords do not match.\",\n      fr: \"Les nouveaux mots de passe ne sont pas identiques&nbsp;!\",\n      es: \"Las contraseñas nuevas no coinciden.\",\n      pt: \"As senhas novas não coincidem.\"\n    },\n    setPassword: {\n      de: \"Passwort setzen\",\n      en: \"Set password\",\n      fr: \"Établir un mot de passe\",\n      es: \"Establecer contraseña\",\n      pt: \"Definir senha\"\n    },\n    confirmPassword: {\n      de: \"Passwort bestätigen:\",\n      en: \"Confirm password:\",\n      fr: \"Confirmation du mot de passe&nbsp;:\",\n      es: \"Confirmar contraseña:\",\n      pt: \"Confirmar senha:\"\n    },\n    confirmNewPassword: {\n      de: \"Neues Passwort bestätigen:\",\n      en: \"Confirm new password:\",\n      fr: \"Confirmation du nouveau mot de passe&nbsp;:\",\n      es: \"Confirmar nueva contraseña:\",\n      pt: \"Confirmar nova senha:\"\n    },\n    oldPassword: {\n      de: \"Altes Passwort:\",\n      en: \"Old password:\",\n      fr: \"Ancien mot de passe&nbsp;:\",\n      es: \"Contraseña anterior:\",\n      pt: \"Senha antiga\"\n    },\n    send: {\n      de: \"Senden\",\n      en: \"Send\",\n      fr: \"Envoyer\",\n      es: \"Enviar\",\n      pt: \"Enviar\"\n    },\n    setSuccess: {\n      de: \"Du hast dein Passwort erfolgreich neu gesetzt!\",\n      en: \"You have successfully reset your password.\",\n      fr: \"Ton mot de passe a bien été réinitialisé&nbsp;!\",\n      es: \"¡Restableciste tu contraseña exitosamente!\",\n      pt: \"Você redefiniu sua senha com sucesso!\"\n    },\n    setSuccessFirstTime: {\n      de: \"Du hast dein Passwort erfolgreich gesetzt!\",\n      en: \"You have successfully set your password.\",\n      fr: \"Ton mot de passe a bien été établi&nbsp;!\",\n      es: \"¡Estableciste tu contraseña exitosamente!\",\n      pt: \"Você definiu sua senha com sucesso!\"\n    }\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/03_done/finishButton/button.ls","text":"(function(){\n  return function(page){\n    var finishType;\n    finishType = page.userHasPassword ? \"finishButton_userHasPassword\" : \"finishButton_newPassword\";\n    return Button({\n      label: T(\"closeButton\")\n    }).css({\n      marginTop: \"0.5em\"\n    }).tap(function(){\n      return inc(\"../../00_shared/logEventAndFinish/logEventAndFinish\")(finishType);\n    });\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/01_page_info/_t.ls","text":"(function(){\n  return {\n    setPassword: {\n      de: \"Passwort setzen\",\n      en: \"Set password\",\n      fr: \"Établir un mot de passe\",\n      es: \"Establecer contraseña\",\n      pt: \"Definir senha\"\n    },\n    saveAccount: {\n      de: \"Sicheres Nutzerkonto\",\n      en: \"Secure account\",\n      fr: \"Sécurité du compte\",\n      es: \"Cuenta segura\",\n      pt: \"Segurança da conta\"\n    }\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/01_page_info/page.ls","text":"(function(){\n  return function(page){\n    page.userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    page.userHasPassword = (typeof log != 'undefined' && log !== null ? log.findLast(\"setPasswordSetAt\") : void 8) != null;\n    inc(\"/lib/util/cache/set/set\")(\"userHasPassword\", page.userHasPassword);\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        var ref$, finishType;\n        if (((ref$ = log.findLast(\"setLoginCodeNeedsPassword\")) != null ? ref$.value : void 8) === true) {\n          finishType = inc(\"/lib/util/cache/get/get\")(\"userHasPassword\") ? \"finishTopbar_userHasPassword\" : \"finishTopbar_newPassword\";\n          inc(\"../00_shared/logEventAndFinish/logEventAndFinish\")(finishType);\n          return;\n        }\n        return page.css({\n          margin: \"1em 0\"\n        }).append(inc(\"icon/icon\")(page), inc(\"title/title\")(page), inc(\"text/text\")(page), !page.userHasPassword\n          ? inc(\"setPasswordButton/button\")()\n          : inc(\"setLoginCodeNeedsPasswordButton/button\")(), inc(\"skipButton/button\")(page));\n      }\n    };\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/01_page_info/setLoginCodeNeedsPasswordButton/button.ls","text":"(function(){\n  return function(page){\n    return Button({\n      label: T(\"continueButton\")\n    }).tap(function(){\n      return startPage({\n        path: path(\"../../02_page_setLoginCodeNeedsPassword/page\"),\n        animation: \"slideUp\",\n        params: {\n          userHasPassword: true\n        }\n      });\n    });\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/01_page_info/setPasswordButton/button.ls","text":"(function(){\n  return function(){\n    return Button({\n      label: T(\"setPassword\")\n    }).tap(function(){\n      return startPage({\n        path: path(\"/pages/misc/password/set/page\"),\n        animation: \"slideUp\",\n        params: {\n          finishFunctionPath: path(\"../../02_page_setLoginCodeNeedsPassword/start\"),\n          firstTime: true,\n          context: \"startUser\"\n        }\n      });\n    });\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/01_page_info/skipButton/button.ls","text":"(function(){\n  return function(page){\n    return Div({\n      margin: \"0 auto\"\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"notNow\"),\n      iconColor: Color.grey[500]\n    }).css({\n      color: Color.grey[500],\n      marginTop: \"0.5em\",\n      padding: \"0.5em\"\n    }).tap(function(){\n      return inc(\"../../00_shared/logEventAndFinish/logEventAndFinish\")(\"skipInfoPage\");\n    }));\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/01_page_info/title/title.ls","text":"(function(){\n  return function(page){\n    return Div({\n      width: \"20em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto\",\n      lineHeight: \"1.4em\",\n      fontWeight: \"bold\"\n    }).secureHtml(T(\"saveAccount\"));\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/03_done/page.ls","text":"(function(){\n  return function(page){\n    page.userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    page.userHasPassword = inc(\"/lib/util/cache/get/get\")(\"userHasPassword\");\n    return {\n      top: function(){\n        return inc(\"/addons/topbar2/topbar\")({\n          close: true,\n          title: T(\"accountSecure\")\n        });\n      },\n      start: function(){\n        return page.append(inc(\"icon/icon\")(page), inc(\"text/text\")(page), inc(\"finishButton/button\")(page));\n      }\n    };\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/02_page_setLoginCodeNeedsPassword/start.ls","text":"(function(){\n  return function(){\n    return log.sync(function(){\n      return startPage({\n        path: path(\"page\"),\n        history: 0,\n        animation: \"fadeIn\",\n        params: {\n          userHasPassword: true\n        }\n      });\n    });\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/02_page_setLoginCodeNeedsPassword/text/text.ls","text":"(function(){\n  return function(page){\n    return Div({\n      margin: \"1em auto\",\n      width: \"35em\",\n      maxWidth: \"90%\",\n      lineHeight: \"1.7em\",\n      hyphens: \"auto\",\n      textAlign: \"justify\"\n    }).html(page.userHasPassword\n      ? T(\"infoTextPw\")\n      : T(\"infoTextNoPw\"));\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/02_page_setLoginCodeNeedsPassword/page.ls","text":"(function(){\n  return function(page){\n    page.userHasPassword = inc(\"/lib/util/cache/get/get\")(\"userHasPassword\");\n    return {\n      top: function(){\n        return inc(\"/addons/topbar2/topbar\")({\n          close: true,\n          title: T(\"secureLoginCode\")\n        });\n      },\n      start: function(){\n        return page.append(inc(\"text/text\")(page), page.buttons = Div().html(page.buttonActivate = inc(\"activateButton/button\")(page)));\n      }\n    };\n  };\n})();","updated":"2021-11-25T17:31:59.583583"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/03_done/_t.ls","text":"(function(){\n  return {\n    successText: {\n      de: \"Dein Nutzerkonto ist nun erfolgreich abgesichert!\",\n      en: \"Your account has been successfully secured!\",\n      fr: \"Ton compte ANTON a bien été sécurisé&nbsp;!\",\n      es: \"¡Tu cuenta está protegida!\",\n      pt: \"Sua conta está protegida!\"\n    },\n    accountSecure: {\n      de: \"Nutzerkonto abgesichert\",\n      en: \"Account secured\",\n      fr: \"Compte sécurisé\",\n      es: \"Cuenta protegida\",\n      pt: \"Conta protegida\"\n    }\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"pages/misc/password/set/_topbar/topbar.ls","text":"(function(){\n  return function(context){\n    var params;\n    params = context === \"startUser\"\n      ? {\n        close: true\n      }\n      : {\n        back: true,\n        backLabel: T(\"backButton\")\n      };\n    params.title = T(\"setPassword\");\n    return inc(\"/addons/topbar2/topbar\")(params);\n  };\n})();","updated":"2021-11-25T11:06:51.414217"},{"path":"pages/level/afterFinish/pages/adventCalendarPromo/text/text.ls","text":"(function(){\n  return function(totalLevelsToday){\n    var totalLevelsTodo;\n    totalLevelsTodo = 3 - totalLevelsToday;\n    return Div({\n      paddingBottom: \"1.5em\",\n      lineHeight: \"1.5em\",\n      margin: \"0 auto\",\n      maxWidth: \"90%\",\n      width: \"30em\"\n    }).html(totalLevelsToday < 3\n      ? T(\"adventCalendarText1\", totalLevelsTodo)\n      : T(\"adventCalendarText2\"));\n  };\n})();","updated":"2021-11-25T17:31:59.583583"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/02_page_setLoginCodeNeedsPassword/skipButton/button.ls","text":"(function(){\n  return function(page){\n    return Div({\n      margin: \"0 auto\"\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"notNow\"),\n      iconColor: Color.grey[500]\n    }).css({\n      marginTop: \"0.5em\",\n      padding: \"0.5em\",\n      color: Color.grey[500]\n    }).tap(function(){\n      return inc(\"../../00_shared/logEventAndFinish/logEventAndFinish\")(\"skipSetLoginCodeNeedsPassword\");\n    }));\n  };\n})();","updated":"2021-11-25T17:31:59.583583"},{"path":"pages/start/startUser/00_shared/errorPage/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"/addons/topbar2/topbar\")({\n          closeLabel: T(\"closeButton\"),\n          close: function(){\n            return startPage({\n              history: function(path){\n                return !_.includes(path, \"/startUser\");\n              }\n            });\n          }\n        });\n      },\n      start: function(){\n        var p, clickRetry;\n        p = page.params;\n        clickRetry = function(){\n          return startPage({\n            path: path(\"/pages/start/startUser/page\"),\n            params: {\n              logId: p.logId,\n              authToken: p.authToken,\n              rememberUser: p.rememberUser,\n              loginType: p.loginType,\n              startNavCategory: p.startNavCategory\n            }\n          });\n        };\n        return page.html(Div().html(Div({\n          paddingBottom: \"1.5em\",\n          lineHeight: \"1.5em\",\n          margin: \"0 auto\",\n          width: \"30em\",\n          maxWidth: \"90%\"\n        }).html(T(\"subscribeError\")), Button(T(\"tryAgain\")).tap(clickRetry), engine.isDebug ? inc(\"errorInfo/info\")(p) : void 8, inc(\"errorId/id\")()));\n      }\n    };\n  };\n})();","updated":"2021-11-26T15:21:19.346698"},{"path":"lib/util/formatDate2/addSpecialDays/add.ls","text":"(function(){\n  return function(o, now, date){\n    var isToday, isYesterday;\n    isToday = now.getDate() === +o.d && now.getMonth() + 1 === +o.m && now.getFullYear() === +o.Y;\n    isYesterday = now.getDate() - 1 === +o.d && now.getMonth() + 1 === +o.m && now.getFullYear() === +o.Y;\n    return o.specialDays = {\n      isToday: isToday,\n      isYesterday: isYesterday,\n      isEaster: inc(\"isEaster/isEaster\")(o, date),\n      isHalloween: inc(\"isHalloween/isHalloween\")(o),\n      isChristmasPeriod: inc(\"isChristmas/isChristmas\")(o, date, \"01\"),\n      isChristmasDays: inc(\"isChristmas/isChristmas\")(o, date, \"23\"),\n      isNewYear: inc(\"isNewYear/isNewYear\")(o)\n    };\n  };\n})();","updated":"2021-11-26T15:21:19.346698"},{"path":"pages/start/startUser/00_shared/errorPage/errorId/id.ls","text":"(function(){\n  return function(){\n    return Div({\n      marginTop: \"2em\",\n      fontSize: \"0.8em\",\n      color: Color.grey[500],\n      userSelect: \"text\"\n    }).html(\"Error \" + inc(\"/lib/util/calcErrorSrc/calc\")());\n  };\n})();","updated":"2023-08-15T10:38:32.239008"},{"path":"pages/level/afterFinish/start/showAdventCalendar/calcTotalLevelsToday/calc.ls","text":"(function(){\n  return function(){\n    var now, timezoneOffsetMs, nowDate, nowMonth, nowYear, isToday, events, totalEvents;\n    now = new Date();\n    timezoneOffsetMs = now.getTimezoneOffset() * 60 * 1000;\n    nowDate = now.getDate();\n    nowMonth = now.getMonth();\n    nowYear = now.getFullYear();\n    isToday = function(d){\n      return d.getDate() === nowDate && d.getMonth() === nowMonth && d.getFullYear() === nowYear;\n    };\n    events = log.list({\n      event: \"finishLevel\"\n    });\n    events = _.filter(events, function(e){\n      var d1, d2;\n      if (e.inserted) {\n        d1 = new Date(e.inserted);\n        d2 = new Date(d1.getTime() - timezoneOffsetMs);\n        return isToday(d2);\n      } else {\n        return true;\n      }\n    });\n    events = _.uniqBy(events, \"puid\");\n    return totalEvents = events.length;\n  };\n})();","updated":"2021-11-29T10:50:57.974049"},{"path":"addons/topbar2/tools/download/download.ls","text":"(function(){\n  return function(o){\n    var d, id, ref$, ref1$, downloadManager, click, div;\n    if (!o.download) {\n      return;\n    }\n    if (!engine.isMobileApp && !engine.isDebug) {\n      return;\n    }\n    d = inc(\"/data/user/calcUserDescription/calc\")();\n    if (d.hasAntonPlusHidden) {\n      return;\n    }\n    id = ((ref$ = app.currentPage.groupDescription) != null ? ref$.groupCode : void 8) || ((ref1$ = app.currentPage.planDescription) != null ? ref1$.project : void 8);\n    downloadManager = inc(\"/lib/util/downloadManager/manager\")();\n    downloadManager.setPriority(id);\n    downloadManager.preparePlans();\n    click = function(){\n      if (!engine.isMobileApp && engine.isDebug) {\n        debug(\"download on desktop is only visible for debug users and is for testing only!\");\n      }\n      if (d.hasPlusAccess) {\n        return inc(\"overlay/overlay\")({\n          downloadManager: downloadManager,\n          div: div,\n          id: id\n        });\n      } else {\n        return inc(\"/pages/static/antonPlus/0_stopDownloadPopup/popup\")();\n      }\n    };\n    div = Div({\n      display: \"flex\",\n      padding: \"0.2em 0.5em 0.2em 0.3em\"\n    }).html(inc(\"icon/icon\")(downloadManager, id));\n    inc(\"../../_tap/tap\")(div, \"0.3em 0em 1.1em 0.5em\", click, null, Color.grey[600]);\n    return div;\n  };\n})();","updated":"2021-11-29T15:08:12.694289"},{"path":"data/user/calcUserDescription/calc.ls","text":"(function(){\n  return function(userLog){\n    var d, properties, i$, len$, p;\n    userLog == null && (userLog = log);\n    if (!userLog) {\n      return {};\n    }\n    d = {\n      _: {},\n      log: userLog\n    };\n    properties = [\"publicId\", \"title\", \"name\", \"nameCreated\", \"surname\", \"surnameCreated\", \"uniqName\", \"uniqNameCreated\", \"displayName\", \"avatar\", \"totalStars\", \"totalCoins\", \"totalTrophies\", \"totalBulbs\", \"totalCrowns\", \"isSolocodeMember\", \"isPlus\", \"isPlusFamily\", \"isPlusTeacher\", \"isPlusFamilyMember\", \"isPlusSchoolMember\", \"isDPASchoolMember\", \"isDirTeacher\", \"hasPlusAccess\", \"hasPlusFamilyAccess\", \"hasAntonPlusHidden\", \"markForDelete\"];\n    for (i$ = 0, len$ = properties.length; i$ < len$; ++i$) {\n      p = properties[i$];\n      inc(\"_defineProperty/define\")(d, p, inc(p + \"/calc\"));\n    }\n    return d;\n  };\n})();","updated":"2021-11-29T15:08:12.694289"},{"path":"addons/topbar2/spacer/spacer.ls","text":"(function(){\n  return function(){\n    return Div({\n      flex: \"1 1 auto\"\n    });\n  };\n})();","updated":"2021-11-29T15:08:12.694289"},{"path":"pages/start/startUser/07_extraPages/cancelDeletion/page/name/name.ls","text":"(function(){\n  return function(d){\n    return Div({\n      marginTop: \"0.5em\",\n      fontWeight: \"bold\"\n    }).secureHtml(d.displayName);\n  };\n})();","updated":"2021-11-29T15:08:12.694289"},{"path":"addons/topbar2/menu/menu.ls","text":"(function(){\n  return function(o){\n    var click, div;\n    if (!o.menu) {\n      return;\n    }\n    click = function(){\n      return o.menu();\n    };\n    div = Div({\n      flex: \"0 1 auto\",\n      display: \"flex\",\n      padding: \"0 1em 0 0.4em\"\n    }).html(inc(\"label/label\")(o), inc(\"icon/icon\")(o)).attr({\n      \"aria-label\": o.menuLabel || T(\"menu\"),\n      role: \"button\"\n    });\n    div.showMenu = click;\n    inc(\"../_tap/tap\")(div, \"0em 0em 1.3em 0em\", click, null, Color.grey[800]);\n    return div;\n  };\n})();","updated":"2021-11-29T15:08:12.694289"},{"path":"addons/topbar2/back/back.ls","text":"(function(){\n  return function(o){\n    var click, div;\n    if (!o.back) {\n      return;\n    }\n    click = function(){\n      if (app.currentPage.params.isDeepLink) {\n        return o.backDeepLink();\n      } else if (_.isFunction(o.back)) {\n        return o.back();\n      } else {\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      }\n    };\n    div = Div({\n      flex: \"0 1 auto\",\n      display: \"flex\",\n      padding: \"0 1em 0 0.2em\"\n    }).html(inc(\"icon/icon\")(o), inc(\"label/label\")(o)).addClass(\"keyManager-esc androidBack\").bind(\"androidBack\", click).bind(\"keyManager\", click).attr({\n      \"aria-label\": o.backLabel || T(\"backButton\"),\n      role: \"button\"\n    });\n    inc(\"../_tap/tap\")(div, \"0em 0em 1.3em 0em\", click);\n    return div;\n  };\n})();","updated":"2021-11-29T15:08:12.694289"},{"path":"addons/topbar2/close/close.ls","text":"(function(){\n  return function(o){\n    var click, onKey, div;\n    if (!o.close) {\n      return;\n    }\n    click = function(e){\n      if (app.currentPage.params.isDeepLink) {\n        return o.closeDeepLink(e);\n      } else if (_.isFunction(o.close)) {\n        return o.close(e);\n      } else {\n        return startPage({\n          history: -1,\n          animation: \"slideDown\"\n        });\n      }\n    };\n    onKey = function(e){\n      return click(e);\n    };\n    div = Div({\n      flex: \"0 1 auto\",\n      display: \"flex\",\n      padding: \"0 1em 0 0.2em\"\n    }).html(inc(\"icon/icon\")(), inc(\"label/label\")(o)).addClass(\"keyManager-esc androidBack\").bind(\"androidBack\", click).bind(\"keyManager\", onKey).attr({\n      \"aria-label\": o.closeLabel || T(\"cancelButton\"),\n      role: \"button\"\n    });\n    inc(\"../_tap/tap\")(div, \"0em 0em 1.3em 0em\", click);\n    return div;\n  };\n})();","updated":"2021-11-29T15:08:12.694289"},{"path":"addons/topbar2/tools/tools.ls","text":"(function(){\n  return function(o){\n    return Div({\n      flex: \"0 0 auto\",\n      display: \"flex\"\n    }).append(inc(\"subMenu/subMenu\")(o), inc(\"preview/preview\")(o), inc(\"download/download\")(o), inc(\"coins/coins\")(o), inc(\"right/right\")(o), inc(\"topRightCustom/topRightCustom\")(o));\n  };\n})();","updated":"2021-11-29T15:08:12.694289"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/01_page_info/text/text.ls","text":"(function(){\n  return function(page){\n    var displayName;\n    displayName = page.userDescription.displayName;\n    return Div({\n      margin: \"1em auto 1.5em\",\n      width: \"35em\",\n      maxWidth: \"90%\",\n      lineHeight: \"1.7em\",\n      hyphens: \"auto\",\n      textAlign: \"justify\"\n    }).secureHtml(T(\"saveEmailText\", displayName), Div({\n      height: \"0.8em\"\n    }), !page.userHasPassword\n      ? T(\"saveEmailSubtext1\")\n      : T(\"saveEmailSubtext2\"), Div(), T(\"saveEmailText2\"));\n  };\n})();","updated":"2021-11-29T15:08:12.694289"},{"path":"pages/level/afterFinish/pages/adventCalendarPromo/_preloadMedia/loadImage/load.ls","text":"(function(){\n  return function(media){\n    return inc(\"/lib/util/downloadContentFile/download\")({\n      fileFolder: \"media/afterFinish\",\n      fileId: twitch({\n        de: \"image/solocode_advent-calendar-white-de\",\n        en: \"image/solocode_advent-calendar-white-en\",\n        fr: \"image/solocode_advent-calendar-white-fr\",\n        es: \"image/solocode_advent-calendar-brown-es\",\n        pt: \"image/solocode_advent-calendar-brown-pt\",\n        'default': \"image/solocode_advent-calendar-white-en\"\n      }),\n      etag: \"any\",\n      returnFileContent: true,\n      onError: function(){},\n      onLoaded: function(base64){\n        return media.image = base64;\n      }\n    });\n  };\n})();","updated":"2021-11-30T19:52:39.107344"},{"path":"lib/util/formatDate2/format.ls","text":"(function(){\n  return function(date, params){\n    var now, o;\n    date == null && (date = new Date());\n    date = _.isString(date) ? new Date(date) : date;\n    now = new Date();\n    o = {\n      params: params != null\n        ? params\n        : {}\n    };\n    inc(\"addTimeLiterals/add\")(o, now, date);\n    inc(\"addDateFormats/add\")(o, now, date);\n    inc(\"addTimeAgo/add\")(o, now, date);\n    inc(\"addSpecialDays/add\")(o, now, date);\n    return o;\n  };\n})();","updated":"2022-02-15T13:22:02.588557"},{"path":"addons/navbar/bar/user/user/items/itemAdventCalendar/item.ls","text":"(function(){\n  return function(){\n    var d, previewMode;\n    d = inc(\"/lib/util/formatDate2/format\")();\n    previewMode = engine.isDebug && d.m === 11;\n    if (d.m !== 12 && !previewMode) {\n      return;\n    }\n    return {\n      label: T(\"adventCalendar\"),\n      icon: path(\"/lib/svg/shape/xmas.svg\"),\n      click: function(){\n        var overlay;\n        if (previewMode) {\n          debug(\"Advent calendar preview mode: Displaying advent calendar for debug users during november already.\");\n        }\n        overlay = inc(\"/lib/gui/spinnerOverlay/overlay\")();\n        return inc(\"/lib/util/loadProjects/load\")({\n          projectDescriptions: [\n            {\n              project: \"app01-advent-calendar\"\n            }, {\n              project: \"app01-avatar\"\n            }\n          ],\n          onDone: function(doneProjects, projectsByStatus){\n            var that, i;\n            if (that = projectsByStatus != null ? projectsByStatus.timeout : void 8) {\n              deviceLog.log({\n                event: \"deviceDebugAdventProjectTimeout\",\n                timeout: that\n              });\n            }\n            overlay.close();\n            i = projects.info()[\"app01-advent-calendar\"];\n            if (i.branch === \"master\" && i.version < 43) {\n              return inc(\"/lib/offline/offlinePopup/popup\")();\n            } else {\n              return log.sync(function(error){\n                return startPage({\n                  path: path(\"/../app01-advent-calendar/page/overview/page\"),\n                  animation: \"slideUp\"\n                });\n              });\n            }\n          },\n          onProjectMissingError: function(){\n            overlay.close();\n            return inc(\"/lib/offline/offlinePopup/popup\")();\n          }\n        });\n      },\n      badge: function(){\n        return inc(\"badge/badge\")();\n      }\n    };\n  };\n})();","updated":"2021-12-01T18:14:00.565551"},{"path":"addons/navbar/bar/user/user/avatar/badge/calcBadgeNumber/adventCalendar/adventCalendar.ls","text":"(function(){\n  return function(){\n    var d, previewMode, mode, e;\n    if (window.log == null) {\n      return 0;\n    }\n    if (inc(\"/data/user/isTeacher/get\")()) {\n      return 0;\n    }\n    d = inc(\"/lib/util/formatDate2/format\")();\n    previewMode = engine.isDebug && d.m === 11;\n    if (previewMode) {\n      mode = \"preview\";\n    } else {\n      mode = \"live\";\n    }\n    if (d.m !== 12 && !previewMode) {\n      return 0;\n    }\n    if (d.d > 24) {\n      return 0;\n    }\n    e = log.findLast({\n      event: \"setAdventCalendarOpened\",\n      day: d.d,\n      year: d.Y,\n      mode: mode\n    });\n    if (e) {\n      return 0;\n    } else {\n      return 1;\n    }\n  };\n})();","updated":"2021-12-01T18:24:51.454376"},{"path":"pages/misc/email/show/_t.ls","text":"(function(){\n  return {\n    settings: {\n      de: \"Einstellungen\",\n      en: \"Settings\",\n      fr: \"Paramètres\",\n      es: \"Ajustes\",\n      pt: \"Configurações\"\n    },\n    emailAddress: {\n      de: \"E-Mail-Adresse\",\n      en: \"Email address\",\n      fr: \"Adresse e-mail\",\n      es: \"Correo electrónico\",\n      pt: \"Endereço de e-mail\"\n    },\n    recommendEmailText: {\n      de: \"Hier kannst du deine E-Mail-Adresse eintragen.<br><br>Dann können wir dir deinen Anmelde-Code zusenden, falls du ihn verlierst.<br><br>Deine E-Mail wird nie an Dritte weitergegeben!<br><br>Achtung: Du musst mind. 16 Jahre alt sein und den Datenschutzbestimmungen zustimmen.\",\n      en: \"You can enter your email address here.<br><br>We can then send you your login code if you lose it.<br><br>Your email will never be shared with third parties!<br><br>Attention: You must be at least 16 years old and agree to our privacy policy.\",\n      fr: \"Tu peux écrire ton adresse e-mail ici.<br><br>Nous pouvons ainsi t'envoyer ton code de connexion si tu le perds.<br><br>Nous ne partagerons jamais ton adresse e-mail avec des tiers&nbsp;!<br><br>Attention&nbsp;: Tu dois avoir 16 ans ou plus et accepter notre politique de protection des données personnelles.\",\n      es: \"Ingresa tu correo electrónico en este campo<br><br>para que podamos enviarte tu clave de acceso si la pierdes u olvidas.<br><br>Jamás compartiremos tu dirección de correo electrónico con terceros.<br><br>Atención: debes tener al menos 16 años de edad y aceptar nuestra política de privacidad.\",\n      pt: \"Você pode inserir seu endereço de e-mail aqui.<br> <br>Dessa forma podemos te enviar seu código de acesso, caso você o perca. Isso também possibilitará que você se inscreva no Jornal do ANTON. <br> <br>Seu e-mail nunca será repassado a terceiros!<br> <br>Atenção: Você deve ter pelo menos 16 anos de idade e aceitar nossa política de privacidade.\"\n    },\n    addEmail: {\n      deDev: \"E-Mail-Adresse hinzufügen\",\n      en: \"Add email\",\n      fr: \"Ajouter une adresse\",\n      esDev: \"Agregar correo electrónico\",\n      pt: \"Adicionar e-mail\"\n    },\n    yourEmail: {\n      de: \"Deine E-Mail-Adresse:\",\n      en: \"Your email:\",\n      fr: \"Ton adresse e-mail&nbsp;:\",\n      es: \"Tu correo electrónico:\",\n      pt: \"Seu e-mail:\"\n    },\n    verified: {\n      de: \"Bestätigt.\",\n      en: \"Verified\",\n      fr: \"Confirmée\",\n      es: \"Confirmar\",\n      pt: \"Verificado\"\n    },\n    notVerified: {\n      de: \"Noch nicht bestätigt.\",\n      en: \"Not verified\",\n      fr: \"Pas encore confirmée\",\n      es: \"Aún sin confirmar.\",\n      pt: \"Ainda não verificado\"\n    },\n    verifyWarning: {\n      de: \"Achtung, bitte verifiziere deine E-Mail-Adresse, damit du den Zugang zu deinem Konto nicht verlieren kannst.\",\n      en: \"Attention: Please verify your email address so that you don’t lose access to your account.\",\n      fr: \"Attention&nbsp;: Merci de confirmer ton adresse e-mail pour ne jamais perdre l'accès à ton compte.\",\n      es: \"¡Atención!: por favor, verifica tu correo electrónico para que no pierdas el acceso a tu cuenta.\",\n      pt: \"Atenção! Por favor, verifique seu e-mail para não perder o acesso à sua conta.\"\n    },\n    verifyEmail: {\n      deDev: \"E-Mail bestätigen\",\n      en: \"Verify email\",\n      fr: \"Vérifier l'adresse\",\n      esDev: \"Verificar el correo electrónico\",\n      pt: \"Verificar e-mail\"\n    },\n    changeEmail: {\n      deDev: \"E-Mail ändern\",\n      en: \"Change email\",\n      frDev: \"Changer l'adresse\",\n      esDev: \"Cambiar el correo electrónico\",\n      pt: \"Mudar o e-mail\"\n    }\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"lib/util/loadLevel/load.ls","text":"(function(){\n  return function(o){\n    var project, ref$, fileFolder, calcEtagAndFileId, loadLevel, loadPlanDescription;\n    project = ((ref$ = o.path) != null ? ref$.split(\"/\")[2] : void 8) || o.puid.split(\"/\")[0];\n    fileFolder = \"content/\" + project + \"/levels\";\n    o.onError == null && (o.onError = function(){});\n    calcEtagAndFileId = function(){\n      return inc(\"calcEtagAndFileId/calc\")({\n        project: project,\n        levelPuid: o.puid,\n        levelPath: o.path,\n        onError: o.onError,\n        onDone: loadLevel\n      });\n    };\n    loadLevel = function(etag, fileId){\n      return inc(\"/lib/util/downloadContentFile/download\")({\n        fileId: fileId,\n        fileFolder: fileFolder,\n        etag: etag,\n        returnFileContent: true,\n        onLoaded: loadPlanDescription,\n        onError: o.onError\n      });\n    };\n    loadPlanDescription = function(level){\n      var pd;\n      pd = inc(\"/data/content/calcPlanDescription/calc\")(project);\n      if (pd) {\n        level.contentLanguagePrimary = pd.contentLanguagePrimary;\n        level.contentLanguageSecondary = pd.contentLanguageSecondary;\n      }\n      return o.onLoaded(level);\n    };\n    return calcEtagAndFileId();\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"lib/gui/divEditable/getValue/get.ls","text":"(function(){\n  return function(d){\n    var a, res$, i$, ref$, len$, lineDiv, r;\n    res$ = [];\n    for (i$ = 0, len$ = (ref$ = d.div.childrenAll()).length; i$ < len$; ++i$) {\n      lineDiv = ref$[i$];\n      r = inc(\"../_shared/parseLineDiv/parse\")(d, lineDiv);\n      res$.push(r.resultPlain);\n    }\n    a = res$;\n    return a.join(\"\\n\");\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"pages/static/pixelPaintImageShared/info/likes/likes.ls","text":"(function(){\n  return function(image){\n    return Div({\n      color: image.likes\n        ? Color.pink[500]\n        : Color.grey[400],\n      marginRight: \"0.3em\"\n    }).html(image.likes);\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"pages/static/pixelPaintImageShared/info/name/name.ls","text":"(function(){\n  return function(image){\n    return Div({\n      marginRight: \"0.5em\"\n    }).html(image.userName);\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"pages/static/pixelPaintImageShared/image/image.ls","text":"(function(){\n  return function(image){\n    return Div().html(inc(\"/lib/gui/image/image\")({\n      id: \"pixelPaint_\" + image.uid,\n      fileFolder: \"media/pixelPaint\"\n    }).css({\n      width: \"22em\",\n      height: \"22em\",\n      boxShadow: \"0px 2px 5px 0px rgba(0,0,0,0.2)\",\n      margin: \"0.5em\"\n    }));\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"pages/static/pixelPaintImageShared/info/info.ls","text":"(function(){\n  return function(image){\n    return Div({\n      display: \"inline-flex\",\n      margin: \"1em 0 0.5em\"\n    }).html(inc(\"avatar/avatar\")(image), inc(\"name/name\")(image), inc(\"likes/likes\")(image), inc(\"heartIcon/icon\")(image));\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"pages/misc/askPushPermissioniOs/_t.ls","text":"(function(){\n  return {\n    shouldSendNotifications: {\n      de: \"Soll ANTON dir eine Benachrichtigung&nbsp;schicken?\",\n      en: \"Should ANTON send you a notification?\",\n      fr: \"Veux-tu recevoir une notification d'ANTON&nbsp;?\",\n      es: \"¿Quieres que ANTON te envíe una notificación?\",\n      pt: \"Quer que ANTON te envie uma notificação?\"\n    },\n    askPushText: {\n      de: \"Wenn es ein neues Spiel gibt?<br>Wenn es neue Fächer und Aufgaben gibt?<br>Wenn es einen Wettbewerb gibt?<br>\",\n      en: \"If there is a new game?<br>If there are new subjects and lessons?<br>If there is a competition?<br>\",\n      fr: \"Quand il y a un nouveau jeu&nbsp;?<br>Quand il y a de nouvelles matières et exercices&nbsp;?<br>Quand il y a un challenge&nbsp;?<br>\",\n      es: \"¿Cuando apearezca un nuevo juego?<br> ¿Cuando se publiquen nuevas materias y ejercicios?<br> ¿Cuando haya alguna competencia?<br> \",\n      pt: \"Quando há um novo jogo?<br>Quando há novas disciplinas e exercícios?<br>Quando há uma competição?<br>\"\n    }\n  };\n})();","updated":"2021-12-03T14:30:41.650766"},{"path":"pages/static/antonPlus/5_productInfo/_t.ls","text":"(function(){\n  return {\n    hint: {\n      de: \"Tipp:\",\n      en: \"Info:\",\n      fr: \"À noter&nbsp;:\",\n      es: \"Nota:\",\n      pt: \"Nota:\"\n    },\n    antonPlusTitle: {\n      de: \"ANTON-Plus\",\n      en: \"ANTON Plus\",\n      fr: \"ANTON-Plus\",\n      es: \"ANTON-Plus\",\n      pt: \"ANTON-Plus\"\n    },\n    plusInfoText1: {\n      de: \"Um offline zu lernen, lade zunächst die gewünschten Lerninhalte herunter. Gehe dafür auf <b>Fächer</b> und klicke oben rechts auf den Pfeil.\",\n      en: \"In order to learn offline, first download the desired learning material. In order to do this go to <b>subjects</b> and click on the arrow in the upper right-hand corner.\",\n      fr: \"Pour apprendre hors ligne, télécharge d'abord le contenu qui t'intéresse. Pour le faire, tu dois aller dans <b>Matières</b> et appuyer sur la flèche située en haut à droite.\",\n      es: \"Para poder aprender fuera de línea necesitas descargar primero el contenido que te interese. Esto lo logras en <b>Materias</b> presionando la flecha que está en la esquina superior izquierda.\",\n      pt: \"Para poder aprender offline, você precisa primeiro baixar o conteúdo desejado. Para fazer isso, vá até <b>Disciplinas</b> e clique na seta que está no canto superior esquerdo.\"\n    },\n    plusFamilyInfoTextNoGroups: {\n      de: \"Um deine Familienmitglieder für ANTON-Plus freizuschalten, gehe auf <b>Gruppen</b> und erstelle dann eine Familiengruppe. Zu dieser kannst du deine Familienmitglieder dann hinzufügen.\",\n      en: \"In order to give your family access to ANTON Plus, go to <b>Groups</b> and create a family group. You will then be able to add members to your family group.\",\n      fr: \"Pour que ta famille ait accès à ANTON-Plus, va dans <b>Groupes</b> et crée un groupe familial. Tu pourras ensuite ajouter des membres à ce groupe.\",\n      es: \"Para darle acceso de ANTON-Plus a los miembros de tu familia, debes ir a <b>Grupos</b> y crear un grupo familiar. Después podrás agregar a los miembros de tu familia a ese grupo.\",\n      pt: \"Para liberar o acesso ao ANTON-Plus aos membros da sua família,vá até <b>Grupos</b> e crie um grupo familiar.Você poderá então agregar os membros da sua família a esse grupo.\"\n    },\n    plusFamilyInfoTextExistingGroups: {\n      de: \"Um deine Familienmitglieder für ANTON-Plus freizuschalten, gehe auf <b>Gruppen</b>, klicke oben links auf <b>Gruppe wechseln</b> und erstelle dann eine Familiengruppe. Zu dieser kannst du deine Familienmitglieder dann hinzufügen.\",\n      en: \"In order to give your family access to ANTON Plus, go to <b>Groups</b>, click in the upper left-hand corner on <b>Change group</b> and create a family group. You will then be able to add members to your family group.\",\n      fr: \"Pour que ta famille ait accès à ANTON-Plus, va dans <b>Groupes</b>, appuie sur <b>Changer de groupe</b> en haut à gauche et crée un groupe familial. Tu pourras ensuite ajouter des membres à ce groupe.\",\n      es: \"Para darle acceso de ANTON-Plus a los miembros de tu familia, debes ir a <b>Grupos</b>, luego presionar <b>Cambiar de grupo</b> y crear un grupo familiar. Después podrás agregar a los miembros de tu familia a ese grupo.\",\n      pt: \"Para liberar o acesso ao ANTON-Plus aos membros da sua família,vá até <b>Grupos</b> e crie um grupo familiar.Você poderá, então, adicionar os membros da sua família a esse grupo.\"\n    },\n    antonPlusUrl: {\n      de: \"anton-plus\",\n      en: \"anton-plus\",\n      fr: \"anton-plus\",\n      es: \"anton-plus\",\n      pt: \"anton-plus\"\n    }\n  };\n})();","updated":"2022-01-06T16:25:58.469716"},{"path":"lib/gui/divEditable/onCopyOrCut/on.ls","text":"(function(){\n  return function(d, e){\n    var sel, range, content, nodes, ref$, lineDiv, n, s, a, res$, i$, len$;\n    sel = document.getSelection();\n    range = sel.getRangeAt(0);\n    content = range.cloneContents();\n    nodes = content.childNodes;\n    if (nodes.length === 0) {\n      return;\n    }\n    if (e.type === \"cut\") {\n      document.execCommand(\"delete\");\n    }\n    if (((ref$ = nodes[0]) != null ? ref$.tagName : void 8) !== \"DIV\") {\n      lineDiv = Div().append((function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = nodes).length; i$ < len$; ++i$) {\n          n = ref$[i$];\n          results$.push(n);\n        }\n        return results$;\n      }()));\n      s = inc(\"../_shared/parseLineDiv/parse\")(d, lineDiv).resultPlain;\n    } else {\n      res$ = [];\n      for (i$ = 0, len$ = nodes.length; i$ < len$; ++i$) {\n        lineDiv = nodes[i$];\n        res$.push(inc(\"../_shared/parseLineDiv/parse\")(d, lineDiv).resultPlain);\n      }\n      a = res$;\n      s = a.join(\"\\n\");\n    }\n    e.clipboardData.setData(\"text/plain\", s);\n    return e.preventDefault();\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"pages/static/pixelPaintImageShared/info/avatar/avatar.ls","text":"(function(){\n  return function(image){\n    return inc(\"/lib/gui/avatar/avatar\")(image.userAvatar).css({\n      width: \"1.5em\",\n      height: \"1.5em\"\n    });\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"pages/static/pixelPaintImageShared/loadImage/load.ls","text":"(function(){\n  return function(p){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/pixelPaint/getMetaData/get\"),\n      params: {\n        imageId: p.imageId\n      },\n      onCompleted: function(result){\n        if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n          deviceLog.log({\n            event: \"deviceDebugSharePixelPaintImageClickSuccess\",\n            imageId: p.imageId\n          });\n        }\n        if (result.images[0]) {\n          return p.onLoaded(result.images[0]);\n        } else {\n          return p.onError(\"pixelPaint_not_found\");\n        }\n      },\n      onOffline: function(){\n        return inc(\"/lib/offline/offlinePage/offlinePage\")(p.page);\n      },\n      onError: function(error){\n        if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n          deviceLog.log({\n            event: \"deviceDebugSharePixelPaintImageClickError\",\n            imageId: p.imageId\n          });\n        }\n        return p.onError();\n      }\n    });\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"pages/static/pixelPaintImageShared/page.ls","text":"(function(){\n  return function(page){\n    page.imageId = inc(\"calcImageId/calc\")();\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        var loadImage, onLoaded, onError;\n        loadImage = function(){\n          return inc(\"loadImage/load\")({\n            imageId: page.imageId,\n            onLoaded: onLoaded,\n            onError: onError,\n            page: page\n          });\n        };\n        onLoaded = function(image){\n          return page.html(inc(\"info/info\")(image), inc(\"image/image\")(image), inc(\"../_shared/linkToStart/link\")());\n        };\n        onError = function(error){\n          return page.html(inc(\"../_shared/textError/text\")(error), inc(\"../_shared/linkToStart/link\")());\n        };\n        page.css({\n          margin: \"2em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\"\n        }).append(inc(\"/lib/gui/spinner/spinner\")());\n        return loadImage();\n      }\n    };\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"lib/gui/divEditable/_shared/convertPlainString/convert.ls","text":"(function(){\n  return function(t, parseMode){\n    if (parseMode === \"normal\") {\n      return inc(\"normal/convert\")(t);\n    } else if (parseMode === \"topic\") {\n      return inc(\"normal/convert\")(t);\n    } else if (parseMode === \"learnListEditor\") {\n      return inc(\"learnList/convert\")(t, parseMode);\n    } else if (parseMode === \"learnListCell\") {\n      return inc(\"learnList/convert\")(t, parseMode);\n    }\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/_shared/convertPlainString/normal/convert.ls","text":"(function(){\n  return function(t){\n    return t;\n  };\n})();","updated":"2021-12-06T15:47:10.978823"},{"path":"lib/gui/divEditable/_shared/parseLineDiv/br/br.ls","text":"(function(){\n  return function(d, lineDiv){\n    if (lineDiv.childNodes.length === 1) {\n      return {\n        result: \"\",\n        resultPlain: \"\",\n        resultCharPos: \"\"\n      };\n    } else {\n      d.debug(\"lineDiv with extra BR element\");\n      return {\n        result: \"BAD <BR>\",\n        resultPlain: \"\",\n        resultCharPos: \"\"\n      };\n    }\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/_shared/parseLineDiv/image/image.ls","text":"(function(){\n  return function(d, node){\n    var id, t;\n    id = node.attr(\"image_id\");\n    t = \"[[image=\" + id + \"]]\";\n    return {\n      result: t,\n      resultPlain: t,\n      resultCharPos: \" \"\n    };\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/_shared/parseLineDiv/specialTag/specialTag.ls","text":"(function(){\n  return function(d, node){\n    var specialType, text;\n    specialType = node.attr(\"specialType\");\n    text = node.textContent;\n    return {\n      result: \"[[special=\" + specialType + \", text=\" + text + \"]]\",\n      resultPlain: text,\n      resultCharPos: text\n    };\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/cleanupLine/initLine/init.ls","text":"(function(){\n  return function(d, lineDiv){\n    if (lineDiv.lineId) {\n      return;\n    }\n    lineDiv.addClass(\"lineDiv\");\n    lineDiv.isLineDiv = true;\n    lineDiv.ignoreGhostMouseEvents = false;\n    lineDiv.lineId = d.nextLineId++;\n    lineDiv.lineNumber = -1;\n    if (d.isDebug) {\n      return lineDiv.css({\n        borderBottom: \"1px solid rgba(0,0,0,0.05)\",\n        marginBottom: \"-1px\"\n      });\n    }\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/onMutation/on.ls","text":"(function(){\n  return function(d, mutationRecords){\n    var hasLonelyNodes, changed, topLineChange, i$, len$, m, ref$, ref1$, j$, ref2$, len1$, node, lineDiv;\n    hasLonelyNodes = false;\n    changed = false;\n    topLineChange = false;\n    for (i$ = 0, len$ = mutationRecords.length; i$ < len$; ++i$) {\n      m = mutationRecords[i$];\n      if (((ref$ = m.addedNodes[0]) != null && ref$.ignoreOnMutation) || ((ref1$ = m.removedNodes[0]) != null && ref1$.ignoreOnMutation)) {\n        continue;\n      } else if (m.target === d.div) {\n        if (m.type === \"childList\") {\n          changed = true;\n          topLineChange = true;\n          for (j$ = 0, len1$ = (ref2$ = m.addedNodes).length; j$ < len1$; ++j$) {\n            node = ref2$[j$];\n            if (node.nodeName === \"DIV\") {\n              d.cleanupLine(node);\n            } else if (node.parentNode != null) {\n              hasLonelyNodes = true;\n            }\n          }\n        }\n      } else {\n        lineDiv = inc(\"../_shared/getParentLine/get\")(m.target);\n        if (lineDiv) {\n          changed = true;\n          d.cleanupLine(lineDiv);\n        }\n      }\n    }\n    if (hasLonelyNodes) {\n      inc(\"fixLonelyNodes/fix\")(d);\n    }\n    if (d.div.childrenAll().length === 0) {\n      inc(\"fixEmpty/fix\")(d);\n    }\n    inc(\"detectHeightChange/detect\")(d);\n    if (topLineChange) {\n      d.updateLineNumbers();\n    }\n    if (changed && d.isStarted) {\n      d.lastChangeSelectionPositions = d.getSelectionPositions();\n      if (typeof (ref2$ = d.params).onChange == 'function') {\n        ref2$.onChange();\n      }\n      d.saveHistoryDebounce();\n      return inc(\"onChangeWord/on\")(d);\n    }\n  };\n})();","updated":"2022-04-14T10:29:08.784852"},{"path":"lib/gui/divEditable/selectionPositions/get/get.ls","text":"(function(){\n  var calcPos, getParentLine;\n  calcPos = inc(\"../../_shared/lineCharPosition/calcPosition/calc\");\n  getParentLine = inc(\"../../_shared/getParentLine/get\");\n  return function(d){\n    var sel, lineDivs, startLineDiv, endLineDiv, selPos;\n    sel = window.getSelection();\n    lineDivs = d.div.childrenAll();\n    startLineDiv = getParentLine(sel.anchorNode);\n    endLineDiv = getParentLine(sel.focusNode);\n    return selPos = {\n      start: {\n        charPos: calcPos(sel.anchorNode, sel.anchorOffset),\n        line: lineDivs.indexOf(startLineDiv) || 0,\n        lineDiv: startLineDiv\n      },\n      end: {\n        charPos: calcPos(sel.focusNode, sel.focusOffset),\n        line: lineDivs.indexOf(endLineDiv) || 0,\n        lineDiv: endLineDiv\n      }\n    };\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/history/onRedo/on.ls","text":"(function(){\n  return function(d){\n    var snapshot;\n    if (d.redoHistory.length === 0) {\n      return;\n    }\n    snapshot = d.redoHistory.pop();\n    d.history.push(snapshot);\n    return inc(\"../_applySnapshot/apply\")(d, snapshot);\n  };\n})();","updated":"2021-12-09T15:59:37.604388"},{"path":"lib/gui/divEditable/history/onUndo/on.ls","text":"(function(){\n  return function(d){\n    var currentSnapshot, lastSnapshot;\n    d.saveHistory();\n    if (d.history.length < 2) {\n      return;\n    }\n    currentSnapshot = d.history.pop();\n    currentSnapshot.selectionPositions = d.getSelectionPositions();\n    d.redoHistory.push(currentSnapshot);\n    lastSnapshot = _.last(d.history);\n    return inc(\"../_applySnapshot/apply\")(d, lastSnapshot);\n  };\n})();","updated":"2021-12-09T15:59:37.604388"},{"path":"lib/gui/divEditable/history/save/save.ls","text":"(function(){\n  return function(d){\n    var lastSnapshot, hasChanged, lines, res$, i$, ref$, len$, i, lineDiv, s, ref1$, snapshot;\n    d.history == null && (d.history = []);\n    d.redoHistory == null && (d.redoHistory = []);\n    lastSnapshot = _.last(d.history);\n    hasChanged = false;\n    res$ = [];\n    for (i$ = 0, len$ = (ref$ = d.div.childrenAll()).length; i$ < len$; ++i$) {\n      i = i$;\n      lineDiv = ref$[i$];\n      s = lineDiv.cleanString;\n      if (!lastSnapshot) {\n        hasChanged = true;\n      } else if (s !== ((ref1$ = lastSnapshot.lines[i]) != null ? ref1$.cleanString : void 8)) {\n        hasChanged = true;\n      }\n      res$.push({\n        lineNumber: lineDiv.lineNumber,\n        cleanString: s\n      });\n    }\n    lines = res$;\n    if (!hasChanged) {\n      return;\n    }\n    snapshot = {\n      lines: lines,\n      selectionPositions: d.lastChangeSelectionPositions || d.getSelectionPositions()\n    };\n    d.history.push(snapshot);\n    return d.redoHistory = [];\n  };\n})();","updated":"2021-12-09T15:59:37.604388"},{"path":"lib/util/formatDateRange/_t.ls","text":"(function(){\n  return {\n    jan: {\n      de: \"Jan\",\n      en: \"Jan\",\n      fr: \"janv.\",\n      es: \"ene.\",\n      pt: \"jan.\"\n    },\n    feb: {\n      de: \"Feb\",\n      en: \"Feb\",\n      fr: \"févr.\",\n      es: \"feb.\",\n      pt: \"fev.\"\n    },\n    mar: {\n      de: \"Mrz\",\n      en: \"Mar\",\n      fr: \"mars\",\n      es: \"mar.\",\n      pt: \"mar.\"\n    },\n    apr: {\n      de: \"Apr\",\n      en: \"Apr\",\n      fr: \"avr.\",\n      es: \"abr.\",\n      pt: \"abr.\"\n    },\n    may: {\n      de: \"Mai\",\n      en: \"May\",\n      fr: \"mai\",\n      es: \"may.\",\n      pt: \"maio\"\n    },\n    jun: {\n      de: \"Jun\",\n      en: \"Jun\",\n      fr: \"juin\",\n      es: \"jun.\",\n      pt: \"jun.\"\n    },\n    jul: {\n      de: \"Jul\",\n      en: \"Jul\",\n      fr: \"juil.\",\n      es: \"jul.\",\n      pt: \"jul.\"\n    },\n    aug: {\n      de: \"Aug\",\n      en: \"Aug\",\n      fr: \"août\",\n      es: \"ago.\",\n      pt: \"ago.\"\n    },\n    sep: {\n      de: \"Sep\",\n      en: \"Sep\",\n      fr: \"sept.\",\n      es: \"sept.\",\n      pt: \"set.\"\n    },\n    oct: {\n      de: \"Okt\",\n      en: \"Oct\",\n      fr: \"oct.\",\n      es: \"oct.\",\n      pt: \"out.\"\n    },\n    nov: {\n      de: \"Nov\",\n      en: \"Nov\",\n      fr: \"nov.\",\n      es: \"nov.\",\n      pt: \"nov.\"\n    },\n    dec: {\n      de: \"Dez\",\n      en: \"Dec\",\n      fr: \"déc.\",\n      es: \"dic.\",\n      pt: \"dez.\"\n    }\n  };\n})();","updated":"2023-05-24T08:43:57.545059"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/key.ls","text":"(function(){\n  return function(key, o){\n    var down, downLong, up, cancel, div;\n    if (o.shiftStatus) {\n      key.value = inc(\"calcShiftedValue/calc\")(key.value);\n    }\n    key.currentChar = key.value.charAt(0);\n    key.displayChar = key.value.charAt(1) === \"{\"\n      ? key.value.charAt(2)\n      : key.currentChar;\n    key.tooltipMulti = key.value.length > 1 && key.value.charAt(1) !== \"{\";\n    down = function(){\n      key.currentChar = key.value.charAt(0);\n      if (body.width() < 700) {\n        return inc(\"tooltip/single/show\")(key, o, div);\n      }\n    };\n    downLong = function(){\n      return inc(\"tooltip/multi/show\")(key, o, div);\n    };\n    up = function(){\n      var ref$;\n      o.onKey(key.currentChar);\n      if ((ref$ = o.currentTooltip) != null) {\n        ref$.removeTooltip(o.minDuration);\n      }\n      if (o.shiftStatus) {\n        o.shiftStatus = false;\n        return o.start();\n      }\n    };\n    cancel = function(){\n      var ref$;\n      return (ref$ = o.currentTooltip) != null ? ref$.removeTooltip() : void 8;\n    };\n    return div = inc(\"../_div/div\")({\n      o: o,\n      key: key,\n      keyDivHtml: [\n        Div(o.newDesign ? {\n          fontSize: \"1.2em\"\n        } : void 8).html(key.displayChar), o.newDesign\n          ? inc(\"cornerNew/corner\")(key, o)\n          : inc(\"cornerChar/cornerChar\")(key, o)\n      ],\n      color: \"white\",\n      up: up,\n      down: down,\n      downLong: key.tooltipMulti ? downLong : void 8,\n      cancel: cancel\n    }).addClass(\"key-\" + key.displayChar);\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"lib/gui/screenKeyboard/createKeys/keys/_div/div.ls","text":"(function(){\n  return function(p){\n    var downAt, upAt, colors, c, c1, c2, div, keyDiv;\n    downAt = null;\n    upAt = null;\n    colors = inc(\"colors/colors\");\n    c = p.color;\n    c1 = colors[c].c1;\n    c2 = colors[c].c2;\n    div = Div({\n      display: \"flex\",\n      flex: p.key.width + \" 1\",\n      alignItems: \"stretch\"\n    }).html(keyDiv = Div({\n      display: \"flex\",\n      flex: \"1 1 auto\",\n      backgroundColor: c1,\n      borderRadius: \"2px\",\n      boxShadow: \"0px 1px 2px \" + Color.grey[400],\n      pointerEvents: \"none\",\n      margin: \"4px\"\n    }).css(p.o.newDesign ? {\n      borderRadius: \"5px\",\n      boxShadow: \"\"\n    } : void 8).html(p.keyDivHtml));\n    div.keyDiv = keyDiv;\n    div.key = {\n      up: function(){\n        upAt = new Date();\n        if (typeof p.up == 'function') {\n          p.up();\n        }\n        return setTimeout(function(){\n          if (upAt >= downAt) {\n            return keyDiv.css({\n              backgroundColor: c1\n            });\n          }\n        }, Math.max(0, p.o.minDuration - (new Date() - downAt)));\n      },\n      cancel: function(){\n        if (typeof p.cancel == 'function') {\n          p.cancel();\n        }\n        return keyDiv.css({\n          backgroundColor: c1\n        });\n      },\n      down: function(){\n        if (typeof p.down == 'function') {\n          p.down();\n        }\n        downAt = new Date();\n        return keyDiv.css({\n          backgroundColor: c2\n        });\n      },\n      downLong: p.downLong,\n      key: p.key\n    };\n    return div;\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"lib/gui/confirmPasswordPopup/popup.ls","text":"(function(){\n  return function(o){\n    if (log.findLast(\"setPasswordSetAt\") == null) {\n      o.onDone(true);\n      return;\n    }\n    if (!inc(\"/lib/util/isOnline/isOnline\")()) {\n      if (typeof o.onOffline == 'function') {\n        o.onOffline();\n      }\n      return;\n    }\n    return inc(\"/lib/gui/promptPopup/popup\")({\n      label: o.label,\n      textMode: \"password\",\n      done: function(password){\n        if (password === \"\") {\n          if (typeof o.onError == 'function') {\n            o.onError({\n              status: \"error_emptyPassword\"\n            });\n          }\n          return;\n        } else if (!password) {\n          if (typeof o.onAborted == 'function') {\n            o.onAborted();\n          }\n          return;\n        }\n        return inc(\"/lib/util/pllsCall/call\")({\n          path: path(\"/../server-apis-db2/apis/user/checkPassword/check\"),\n          params: {\n            password: password,\n            logId: log.id(),\n            checkCaptcha: true\n          },\n          onError: function(){\n            return typeof o.onError == 'function' ? o.onError() : void 8;\n          },\n          onOffline: function(){\n            return typeof o.onOffline == 'function' ? o.onOffline() : void 8;\n          },\n          onCompleted: function(result){\n            if (result.status === \"error_password_invalid\") {\n              return o.onDone(false, password);\n            } else if (result.status === \"ok\") {\n              return o.onDone(true, password);\n            } else {\n              return typeof o.onError == 'function' ? o.onError(result) : void 8;\n            }\n          }\n        });\n      }\n    });\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"lib/init/idle/_t.ls","text":"(function(){\n  return {\n    dontRememberText: {\n      de: \"du hast längere Zeit nichts gemacht und wirst jetzt abgemeldet.\",\n      en: \"you have been inactive for a while and will now be logged out.\",\n      fr: \"ça fait longtemps que tu n'es pas actif·ve. Tu vas être déconnecté·e.\",\n      es: \"llevas mucho tiempo inactivo/a. Tu sesión se cerrará en breve.\",\n      pt: \"você esteve inativo(a) por bastante tempo e será desconectado(a).\"\n    },\n    multiRememberText: {\n      de: \"du hast längere Zeit nichts gemacht.\",\n      en: \"you have been inactive for a while.\",\n      fr: \"Ça fait longtemps que tu n'es plus actif·ve.\",\n      es: \"llevas mucho tiempo inactivo.\",\n      pt: \"você está inativo(a) há bastante tempo.\"\n    },\n    continueLearning: {\n      de: \"Weiterlernen\",\n      en: \"Continue learning\",\n      fr: \"Continuer à apprendre\",\n      es: \"Continuar aprendiendo\",\n      pt: \"Continuar aprendendo\"\n    },\n    end: {\n      de: \"Beenden\",\n      en_gb: \"Quit\",\n      en: \"Exit\",\n      fr: \"Quitter\",\n      es: \"Salir\",\n      pt: \"Sair\"\n    },\n    hello: {\n      de: \"Hallo\",\n      en: \"Hello\",\n      fr: \"Salut\",\n      es: \"Hola\",\n      pt: \"Olá\"\n    }\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"pages/misc/password/reset/02_enterRecoveryMailOrPhone/requestResetPassword/request.ls","text":"(function(){\n  return function(o){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/login/passwordReset/sendCode/send\"),\n      params: {\n        uniqName: o.uniqName,\n        email: o.email,\n        phone: o.phone,\n        loginCode: o.loginCode,\n        recoveryOption: o.recoveryOption,\n        recoveryValue: o.recoveryValue,\n        checkCaptcha: true\n      },\n      requiredVisibleDiv: o.requiredVisibleDiv,\n      onError: function(error){\n        return o.onError(error);\n      },\n      onOffline: function(){\n        return o.onOffline();\n      },\n      onCompleted: function(result){\n        if (result.status !== \"ok\") {\n          return o.onError(result);\n        } else {\n          return o.onCompleted();\n        }\n      }\n    });\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"pages/misc/password/reset/03_resetPasswordCode/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        var submit;\n        submit = function(code){\n          var params;\n          page.form.showSpinner();\n          params = page.params;\n          params.code = code;\n          return inc(\"requestCheckCode/request\")({\n            uniqName: params.uniqName,\n            email: params.email,\n            phone: params.phone,\n            loginCode: params.loginCode,\n            code: params.code,\n            requiredVisibleDiv: page,\n            onError: function(error){\n              var message;\n              page.form.hideSpinner();\n              message = error.status === \"error_user_not_found\"\n                ? T(\"errorUserNotFound\")\n                : error.status === \"error_invalid_code\"\n                  ? T(\"errorInvalidCode\")\n                  : error.status === \"error_captcha_failed\"\n                    ? T(\"errorCaptchaFailed\")\n                    : T(\"errorMessage\");\n              page.form.error.html(message);\n              page.form.error.css({\n                minHeight: page.form.error.height() + \"px\"\n              });\n              page.form.input.start();\n              return page.form.input.selectAll();\n            },\n            onOffline: function(){\n              return inc(\"/lib/offline/offlinePopup/popup\")();\n            },\n            onCompleted: function(){\n              return startPage({\n                path: path(\"../04_resetPasswordPassword/page\"),\n                params: params\n              });\n            }\n          });\n        };\n        page.append(Div({\n          width: \"30em\",\n          margin: \"0 auto\",\n          maxWidth: \"90%\"\n        }).html(T(\"inputEmailOrPhoneCode\", page.params.recoveryOption === 'email'\n          ? T(\"email\")\n          : T(\"cellNumber\"))), page.form = inc(\"inputForm/inputForm\")(submit));\n        return page.form.input.start();\n      }\n    };\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"lib/util/pllsCall/_t.ls","text":"(function(){\n  return {\n    captchaText: {\n      de: \"Tippe aus Sicherheitsgründen die Zeichen ab, um fortzufahren.\",\n      en: \"For security reasons, please type the letters or numbers you see below.\",\n      fr: \"Pour des raisons de sécurité, merci de recopier les lettres ou chiffres écrites ci-dessous.\",\n      es: \"Por motivos de seguridad ingresa las letras o números que reconoces abajo.\",\n      pt: \"Por motivos de segurança, digite os caracteres para continuar.\"\n    },\n    captchaIncorrectTryAgain: {\n      de: \"Deine Eingabe war nicht korrekt.<br>Bitte versuche es noch einmal:\",\n      en: \"Your entry was incorrect.<br>Please try again:\",\n      fr: \"C'est malheureusement incorrect.<br>Merci de recommencer&nbsp;:\",\n      es: \"Tu respuesta es incorrecta.<br>inténtalo de nuevo:\",\n      pt: \"Sua resposta está incorreta.<br>Por favor, tente novamente:\"\n    }\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"pages/misc/password/reset/04_resetPasswordPassword/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        var submit;\n        submit = function(){\n          var params;\n          if (inc(\"validate/validate\")(page.form)) {\n            params = page.params;\n            params.password = page.form.input1.getValue();\n            page.form.showSpinner();\n            return inc(\"submit/submit\")(params, {\n              onError: function(){\n                page.form.hideSpinner();\n                page.form.error.html(T(\"errorOccurred\"));\n                return page.form.input1.start();\n              },\n              onOffline: function(){\n                page.form.hideSpinner();\n                page.form.input1.start();\n                return inc(\"/lib/offline/offlinePopup/popup\")();\n              },\n              onCompleted: function(result){\n                var s, message;\n                if (result.status === \"ok\") {\n                  return startPage({\n                    path: path(\"../05_resetPasswordDone/page\")\n                  });\n                } else {\n                  page.form.hideSpinner();\n                  s = result.status;\n                  message = s === \"error_user_not_found\"\n                    ? T(\"errorUserNotFound\")\n                    : s === \"error_captcha_failed\"\n                      ? T(\"errorCaptchaFailed\")\n                      : s === \"error_invalid_code\"\n                        ? T(\"errorInvalidCode\")\n                        : s === \"error_invalid_length\"\n                          ? T(\"errorInvalidLength\", result.count)\n                          : s === \"error_invalid_character\"\n                            ? T(\"errorInvalidCharacter\", result.character)\n                            : T(\"errorOccurred\");\n                  page.form.error.html(message);\n                  return page.form.input1.start();\n                }\n              }\n            });\n          }\n        };\n        page.append(page.form = inc(\"/lib/gui/inputForm/inputForm2x\")({\n          label1: T(\"newPasswordInput\"),\n          label2: T(\"confirmNewPassword\"),\n          submit: submit,\n          isPassword: true\n        }));\n        return page.form.input1.start();\n      }\n    };\n  };\n})();","updated":"2021-12-14T15:23:21.976961"},{"path":"pages/static/privacy/div/divPt/div.ls","text":"(function(){\n  return function(options){\n    var isPrint, ref$, s, p, section;\n    isPrint = (ref$ = options != null ? options.isPrint : void 8) != null ? ref$ : false;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div().addClass(\"privacyDiv\").append(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3em\"\n    }) : void 8, isPrint ? Div().css({\n      fontSize: \"1.4em\"\n    }).html(T(\"privacy\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. Geral\",\n      content: [p(\"ANTON é um aplicativo digital de aprendizagem que pode ser baixado ou utilizado em https://anton.app.\"), p(\"O operador e responsável pela proteção de dados é a solocode GmbH, Mehringdamm 61, 10961 Berlim. \"), p(\"Se você tiver alguma dúvida sobre privacidade, pode nos escrever em privacy@anton.app.\"), p(\"A proteção de seus dados é particularmente importante para nós.\"), p(\"Coletamos o mínimo possível de dados, apagamos automaticamente em caso de inatividade, armazenamos apenas em servidores seguros na Europa e não os compartilhamos com terceiros.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. Quais dados a ANTON armazena?\",\n      content: [\n        section({\n          isExpanded: isPrint,\n          header: \"2.1. Os dados que você compartilha conosco\",\n          content: [p(\"Se você é estudante, pediremos seu apelido, o nome da sua escola (opcional) e a disciplina com a qual você gostaria de começar. Quando você seleciona uma escola, a pessoa administradora desta escola poderá adicionar sua conta ao Diretório Escolar e adicionar informações sobre você, como seu nome e turma.\"), p(\"Se você é professor(a), pediremos seu primeiro nome, sobrenome, título e, somente se você quiser fornecer, sua escola e seu endereço de e-mail.\"), p(\"Se você é professor(a) ou funcionário(a) de uma escola e criar grupos e códigos de acesso para seus alunos e/ou professores, você ou sua escola são responsáveis pela proteção desses dados. Por favor, utilize somente apelidos que não permitam que terceiros identifiquem os alunos ou obter a autorização dos pais.\"), p(\"Se você é um(a) professor(a) e foi atrubuído(a) a uma escola, você autoriza que a pessoa administradora desta escola adicione sua conta ao Diretório Escolar, gerencie seu usuário e também outros usuários que tiveram os códigos de acesso gerados por você, adicione dados pessoais, visualize o código de acesso e marque usuários para exclusão.\"), p(\"Se você optar por ter suas informações de usuário armazenadas em seu dispositivo, armazenaremos essas informações em seu dispositivo.\"), p(\"Pediremos ocasionalmente sua opinião sobre o ANTON e o conteúdo de aprendizado, e como podemos melhorá-lo.\"), p(\"Se você tiver 16 anos ou mais, poderá inserir seu endereço de e-mail ou número de telefone nas 'Configurações'. Isso nos permitirá recuperar seu acesso se você perder seus dados de login.\"), p(\"Se você entrar em contato conosco via chat de suporte ou por e-mail, essas mensagens, juntamente com a data e hora das mensagens, serão armazenadas para que possamos nos comunicar com você.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"2.2. As informações que recebemos automaticamente através de seu uso de ANTON\",\n          content: [p(\"Quando você usa o ANTON, ANTON armazena dados sobre seu uso no dispositivo e os sincroniza com nosso servidor quando conectado à Internet. Isto permite utilizar ANTON com sua conta de usuário em múltiplos dispositivos.\"), p(\"Isto inclui: páginas de aplicativos que você lançou e seu progresso de aprendizagem, os resultados de seus jogos, sua participação em grupos, conteúdo que você criou, como imagens e listas de aprendizagem, seu tipo de dispositivo, sistema operacional e navegador de Internet e seu endereço IP anônimo.\"), p(\"Não armazenamos os últimos três dígitos de seu endereço IP em nosso sistema para que você possa permanecer anônimo.\")]\n        })\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. Para que são utilizados estes dados?\",\n      content: p(\"Os dados armazenados serão utilizados exclusivamente para ajudá-lo(a) em caso de problemas com ANTON e para desenvolver ANTON de acordo com as necessidades de nossos usuários.\")\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. Por quanto tempo os dados serão armazenados?\",\n      content: [p(\"Seus dados de usuário serão armazenados enquanto você usar ANTON. Se você deixar de usar ANTON e não for membro de um diretório administrado pela escola, apagaremos automaticamente seus dados de usuário 12 meses após seu último login ou após o término de sua adesão ao ANTON Plus.\"), p(\"Seus dados pessoais serão excluídos ou bloqueados assim que a finalidade do armazenamento não for mais aplicável. Os dados também podem ser armazenados se isso tiver sido previsto pelo legislador europeu ou nacional em regulamentos, leis ou outras disposições da União às quais o controlador está sujeito. Os dados também serão bloqueados ou apagados se o período de armazenamento prescrito pelas regras acima mencionadas expirar, a menos que haja necessidade de armazenamento adicional dos dados para a conclusão ou execução de um contrato.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. ANTON compartilha dados com terceiros?\",\n      content: [p(\"Não, não compartilhamos seus dados com terceiros a menos que você tenha dado seu consentimento expresso previamente ou que exista uma obrigação legal de transferir os dados.\"), p(\"Não utilizamos o Google, Facebook, Amazon ou qualquer outra integração de produtos no ANTON, o que significa que seus dados realmente só ficam em nossos servidores.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Como é garantida a segurança dos dados?\",\n      content: [p(\"Todos os dados são armazenados exclusivamente em servidores físicos na União Européia e transmitidos de forma criptografada. Os centros de dados atendem aos mais altos padrões de segurança e são certificados de acordo com a ISO/IEC 27001.\"), p(\"Ao mesmo tempo, o usuário deve estar ciente de que, devido ao constante surgimento de novos vírus e outros meios de ataque aos sistemas de dados seguros dos serviços de Internet, não é possível garantir uma proteção cem por cento contra ataques.\"), p(\"Perseguiremos qualquer ataque descoberto por hackers e similares sob o direito civil e criminal e informaremos o usuário sobre qualquer comprometimento de seus dados.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. Que dados os outros usuários podem ver?\",\n      content: [p(\"Outros usuários podem ver seu apelido, avatar e pontuação do jogo. Se você mesmo gera conteúdo, como imagens ou listas de aprendizagem, você pode decidir se quer torná-lo público para outros usuários.\"), p(\"Seu professor de grupo, caso sua escola utilize o Diretório Escolar, o administrador da escola e os professores autorizados por ele em sua escola podem ver seu nome e seu progresso no aprendizado e procurar sua senha para você.\"), p(\"Quando você se registrar como professor(a) e selecionar uma escola, a pessoa administradora do diretório dessa escola poderá ver seus dados e senha e adicioná-los ao Diretório Escolar. Isto também se aplica se você tiver dado informações falsas sobre você ou sua filiação à escola.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Seus direitos\",\n      content: [\n        section({\n          isExpanded: isPrint,\n          header: \"8.1. Direito à informação\",\n          content: p(\"Todo usuário tem o direito de receber gratuitamente informações sobre os dados pessoais armazenados a seu respeito. Favor nos enviar um e-mail para privacy@anton.app com as seguintes informações de identificação: apelido, senha, nome, endereço de e-mail, endereço postal e data de nascimento.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.2. Direito de retificação\",\n          content: p(\"Você tem o direito de retificar e/ou completar se os dados pessoais processados a seu respeito estiverem imprecisos ou incompletos.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.3. Direito de restringir o processamento\",\n          content: [p(\"Você pode solicitar a restrição do processamento dos dados pessoais que lhe dizem respeito sob as seguintes condições:\"), p(\"a. Se você contestar a exatidão dos dados pessoais relativos a você por um período de tempo que nos permita verificar a exatidão dos dados pessoais.\"), p(\"b. O processamento é ilegal e você se opõe ao apagamento dos dados pessoais e solicita, em seu lugar, a restrição do uso dos dados pessoais.\"), p(\"c. Não precisamos mais dos dados pessoais para o processamento, mas você precisa deles para fazer valer, exercer ou defender seus direitos legais.\"), p(\"d. Se você se opôs ao processamento de acordo com § 21(1) DSGVO e ainda não está claro se as razões legítimas do controlador se sobrepõem às suas razões.\"), p(\"e. Quando o processamento dos dados pessoais que lhe dizem respeito tiver sido restrito, os dados pessoais somente poderão ser processados, com exceção do seu armazenamento, com seu consentimento ou para o estabelecimento, exercício ou defesa de ações judiciais ou para a proteção dos direitos de outra pessoa física ou jurídica ou por razões de interesse público substancial da União ou de um Estado Membro. Se a restrição ao processamento tiver sido restringida de acordo com as condições acima, nós o informaremos antes que a restrição seja levantada.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.4. Direito de exclusão\",\n          content: [p(\"Se você desejar, podemos apagar seus dados de usuário. Favor nos enviar um e-mail para privacy@anton.app com as seguintes informações para identificá-lo: nome de usuário, senha, primeiro nome e sobrenome.\"), p(\"Para excluir os dados de usuário armazenados em seus dispositivos, você pode desinstalar o ANTON ou clicar em log out nas configurações do aplicativo e selecionar o perfil de usuário que deseja excluir.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.5. Direito à portabilidade dos dados\",\n          content: [p(\"As escolas podem marcar as contas de usuários que criaram ou cuja administração é de sua responsabilidade de apagar após um período de transição de 60 dias. Os usuários, e se necessário seus tutores legais, devem ser informados pela escola. Os usuários terão a oportunidade de transferir os dados armazenados na conta do usuário para uma nova conta dentro de 60 dias e de continuar a usá-la independentemente. Após este período, as contas de usuário serão automaticamente apagadas.\"), p(\"Você tem o direito de solicitar uma cópia de seus dados pessoais em formato eletrônico e o direito de transferir esses dados pessoais para uso ao serviço de outra pessoa. Mediante solicitação, nós lhe enviaremos um arquivo contendo seus dados pessoais. Para isso, favor nos enviar um e-mail para privacy@anton.app com as seguintes informações de identificação: nome de usuário, senha, primeiro e último nome, possivelmente nome de solteiro(a), endereço de e-mail, endereço postal e data de nascimento.\")]\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.6. Direito de objeção\",\n          content: p(\"Você tem o direito de se opor a qualquer momento, por motivos relacionados à sua situação particular, ao processamento de dados pessoais que lhe digam respeito que seja realizado com base na Seção 6(1)(e) ou (f) do DSGVO.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.7. Direito de revogar a declaração de consentimento nos termos da lei de proteção de dados.\",\n          content: p(\"Você tem o direito de revogar seu consentimento de proteção de dados a qualquer momento. A revogação do consentimento não afeta a legalidade do processamento realizado com base no consentimento até a revogação.\")\n        }), section({\n          isExpanded: isPrint,\n          header: \"8.8. Direito de reclamar a uma autoridade de supervisão.\",\n          content: p(\"Sem prejuízo de qualquer outro recurso administrativo ou judicial, você tem o direito de apresentar queixa a uma autoridade de supervisão, em particular no Estado-Membro de sua residência, local de trabalho ou local da suposta infração, se considerar que o processamento de dados pessoais que lhe dizem respeito viola o GDPR. A autoridade de supervisão à qual a reclamação foi apresentada informará o reclamante sobre a situação e o resultado da reclamação, incluindo a possibilidade de um recurso judicial nos termos do artigo 78 do GDPR.\")\n        })\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Qual é a base legal para o processamento?\",\n      content: [p(\"Na medida em que obtivermos o consentimento da pessoa interessada para operações de processamento de dados pessoais, o Artigo 6(1)(a) do Regulamento Geral de Proteção de Dados da UE (GDPR) serve como base legal.\"), p(\"No processamento de dados pessoais necessários para a execução de um contrato do qual o envolvido é parte, a Seção 6 (1) lit. b DSGVO serve como base legal. Isto também se aplica às operações de processamento necessárias para a execução de medidas pré-contratuais.\"), p(\"Na medida em que o processamento de dados pessoais é necessário para o cumprimento de uma obrigação legal à qual nossa empresa está sujeita, § 6 (1) lit. c DSGVO serve como base legal.\"), p(\"Se o processamento for necessário para proteger um interesse legítimo de nossa empresa ou de terceiros e os interesses, direitos e liberdades fundamentais do envolvido não se sobrepuserem ao primeiro interesse mencionado, a Seção 6(f)(1) da GDPR serve como base legal para o processamento.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. Explicação dos termos\",\n      content: [p(\"PIBR da UE: Regulamento (UE) 2016/679 do Parlamento Europeu e do Conselho de 27 de abril de 2016 relativo à proteção das pessoas físicas no que diz respeito ao processamento de dados pessoais e à livre circulação desses dados, e que revoga a Diretiva 95/46/CE (Regulamento Geral de Proteção de Dados).\"), p(\"Dados pessoais: De acordo com o Artigo 4(1) do PIBR da UE, qualquer informação relativa a uma pessoa natural identificada ou identificável; uma pessoa natural identificável é aquela que pode ser identificada, direta ou indiretamente, em particular por referência a um identificador, como um nome, um número de identificação, dados de localização, um identificador on-line, ou a um ou mais fatores específicos da identidade física, fisiológica, genética, mental, econômica, cultural ou social dessa pessoa natural.\")]\n    }));\n  };\n})();","updated":"2025-12-16T14:44:01.194054"},{"path":"pages/level/finishLevel/_shared/calcText/quotes/quotes-pt.ls","text":"(function(){\n  return function(){\n    return {\n      notGoodWords: [\"Mantenha a cabeça erguida!\", \"Tenha paciência!\", \"Mãos à obra!\", \"Está tudo bem!\", \"Continue tentando!\", \"Você consegue!\", \"Não desanime!\", \"Anime-se!\"],\n      notGood: [\"Da próxima vez será melhor!\", \"Tente novamente!\", \"A prática é o caminho para o sucesso!\", \"Todos os super-heróis tropeçaram no início!\", \"Tente mais uma vez.\", \"Da próxima vez será melhor.\", \"Você é capaz de muito mais do que imagina.\", \"É tudo uma questão de prática.\", \"Nós aprendemos com nossos erros.\", \"Você só precisa praticar mais um pouco.\"],\n      averageWords: [\"Muito bem!\", \"Nada mal!\", \"Você foi muito bem!\", \"É assim que se faz!\", \"Você está no caminho certo!\", \"Bom trabalho!\"],\n      average: [\"Da próxima vez será ainda melhor.\", \"Mantenha o foco no seu objetivo.\", \"Mantenha sua motivação nas alturas!\", \"Mantenha seu entusiasmo e concentração.\", \"Você está cada vez melhor\", \"Mantenha a animação!\", \"Siga com esse entusiasmo!\", \"Continue praticando!\", \"Pratique mais um pouco para conseguir as três estrelas.\"],\n      almostPerfectWords: [\"Você conseguiu!\", \"É isso aí!\", \"Parabéns!\", \"Excelente!\", \"Bom trabalho!\", \"Uau!\", \"Ótimo!\"],\n      almostPerfect: [\"Quase tudo perfeito!\", \"Você está se concentrando bem!\", \"Continue neste ritmo!\", \"Você tem praticado muito!\", \"Você está no caminho certo!\", \"Você está aprendendo muito!\"],\n      perfectWords: [\"Fabuloso!\", \"Magnífico!\", \"Fenomenal!\", \"Ótimo!\", \"Fantástico!\", \"Impecável!\", \"Brilhante!\", \"Que maravilha!\", \"Sensacional!\", \"A coroa é sua!\", \"Uau!\"],\n      perfect: [\"Mantenha essa concentração!\", \"Você acertou tudo!\", \"Você conseguiu!\", \"Você já está profissional!\", \"Você aprendeu direitinho!\", \"Três estrelas!\"],\n      testFailed: [\"Infelizmente você não passou no teste.\", \"Desta vez você não passou no teste.\", \"Que pena, não foi desta vez.\"],\n      testDone: [\"Você acertou toda a prova!\", \"Você passou no teste!\"],\n      testPerfect: [\"Você passou no teste com zero erros!\", \"Nem um único erro!\", \"Este teste não poderia ter sido feito melhor!\", \"Você passou no teste sem um único erro!\", \"Você conseguiu!\", \"Você resolveu o teste perfeitamente!\", \"Você tirou 10!\", \"Nota 10 para você!\"],\n      bulb: [\"Pronto!\", \"Resolvido!\"]\n    };\n  };\n})();","updated":"2022-01-05T09:32:45.359114"},{"path":"pages/misc/password/reset/04_resetPasswordPassword/submit/submit.ls","text":"(function(){\n  return function(params, o){\n    var p;\n    p = params;\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/login/passwordReset/resetPassword/reset\"),\n      params: {\n        password: p.password,\n        code: p.code,\n        uniqName: p.uniqName,\n        email: p.email,\n        phone: p.phone,\n        loginCode: p.loginCode,\n        checkCaptcha: true\n      },\n      onCompleted: o.onCompleted,\n      onError: o.onError,\n      onOffline: o.onOffline\n    });\n  };\n})();","updated":"2021-12-14T16:02:39.115615"},{"path":"lib/init/checkRemoteLogout/logoutUser/logout.ls","text":"(function(){\n  return function(e){\n    var userLogId, storedLogIds, e2;\n    userLogId = e.userLogId;\n    storedLogIds = inc(\"/lib/util/storedUsers/logIds/logIds\")();\n    if (!_.includes(storedLogIds, userLogId)) {\n      deviceLog.deleteEvent(e);\n      return;\n    }\n    inc(\"/lib/util/storedUsers/removeUser/remove\")(userLogId);\n    delete window.userLogs[userLogId];\n    e2 = _.cloneDeep(e);\n    e2.done = true;\n    delete e2.created;\n    delete e2.inserted;\n    deviceLog.log(e2);\n    deviceLog.deleteEvent(e);\n    return true;\n  };\n})();","updated":"2021-12-15T15:28:23.476911"},{"path":"pages/level/finishLevel/_shared/calcCharacter/calc.ls","text":"(function(){\n  return function(o){\n    var characters, counter, character;\n    if (Store(\"finishPageCharacterCounter\") == null) {\n      Store(\"finishPageCharacterCounter\", 0);\n    }\n    characters = twitch({\n      de: inc(\"characters/characters-de\")(),\n      en: inc(\"characters/characters-en\")(),\n      en_gb: inc(\"characters/characters-en_gb\")(),\n      fr: inc(\"characters/characters-fr\")(),\n      es: inc(\"characters/characters-es\")(),\n      pt: inc(\"characters/characters-pt\")()\n    });\n    counter = Store(\"finishPageCharacterCounter\");\n    if (!characters[counter]) {\n      counter = 0;\n    }\n    character = characters[counter];\n    if (++counter === characters.length) {\n      counter = 0;\n    }\n    Store(\"finishPageCharacterCounter\", counter);\n    return character;\n  };\n})();","updated":"2024-04-02T09:41:34.360516"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/_t.ls","text":"(function(){\n  return {\n    iAgree: {\n      de: \"Ich stimme den\",\n      en: \"I agree to the\",\n      fr: \"J'accepte la\",\n      es: \"Acepto la\",\n      pt: \"Eu aceito a\"\n    },\n    privacyPolicy: {\n      de: \"Datenschutzbestimmungen\",\n      en: \"privacy policy\",\n      fr: \"politique de protection des données personnelles\",\n      es: \"política de privacidad\",\n      pt: \"política de privacidade\"\n    },\n    to: {\n      de: \"zu.\",\n      en: \".\",\n      fr: \".\",\n      es: \".\",\n      pt: \".\"\n    },\n    agreeToTermsAndPrivacyPolicy: {\n      de: \"Bitte stimme den Nutzungsbedingungen und den Datenschutzbestimmungen&nbsp;zu.\",\n      en: \"Please agree to the terms of use and to the privacy policy.\",\n      fr: \"Merci d'accepter nos conditions d'utilisation et notre politique de protection des données personnelles.\",\n      es: \"Por favor, acepta nuestras condiciones de uso y nuestra política de privacidad.\",\n      pt: \"Por favor, aceite nossos termos de uso e nossa política de privacidade.\"\n    },\n    andThe: {\n      de: \"und den\",\n      en: \"and the\",\n      fr: \"et les\",\n      es: \"y las\",\n      pt: \"e os\"\n    },\n    terms: {\n      de: \"Nutzungsbedingungen\",\n      en: \"terms of use\",\n      fr: \"conditions d'utilisation\",\n      es: \"condiciones de uso\",\n      pt: \"termos de uso\"\n    },\n    antonPrivacy: {\n      de: \"ANTON-Datenschutzbestimmungen\",\n      en: \"ANTON privacy policy\",\n      fr: \"politique de protection des données personnelles d'ANTON\",\n      es: \"política de privacidad de ANTON\",\n      pt: \"política de privacidade de ANTON\"\n    },\n    antonTerms: {\n      de: \"ANTON-Nutzungsbedingungen\",\n      en: \"ANTON terms of use\",\n      fr: \"conditions d'utilisation d'ANTON\",\n      es: \"condiciones de uso de ANTON\",\n      pt: \"termos de uso de ANTON\"\n    },\n    alreadyAccepted: {\n      de: \"<i>Bereits zugestimmt</i>\",\n      en: \"<i>Already accepted</i>\",\n      fr: \"<i>Déjà acceptées</i>\",\n      es: \"<i>Ya han sido aceptadas</i>\",\n      pt: \"<i>Já foram aceitas</i>\"\n    }\n  };\n})();","updated":"2023-05-24T08:43:57.545059"},{"path":"data/user/calcCurrentSurveys/_getCurrentSurveys/get.ls","text":"(function(){\n  return function(){\n    return [{\n      surveyId: \"2026-03-30-groupAndPinUsage\",\n      surveyDisplayName: \"Umfrage für Lehrkräfte\",\n      startDate: \"2026-03-30T12:00:00\",\n      endDate: \"2026-03-31T12:00:00\"\n    }];\n  };\n})();","updated":"2026-03-27T15:22:20.117345"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hauntedHouse/hauntedHouse.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"hauntedHouse\",\n      project: \"app01-game-haunted-house\",\n      title: \"Haunted House\",\n      category: \"puzzle\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-haunted-house-cover\",\n      iconPosition: \"50% 45%\",\n      numberOfTries: 3,\n      highscoreAscending: false,\n      newBadge: false,\n      manual: T(\"manual\")\n    };\n  };\n})();","updated":"2021-12-21T14:01:47.913673"},{"path":"lib/util/calcGuiLanguage/calc.ls","text":"(function(){\n  return function(){\n    var lang, enGbCountryCodes;\n    lang = navigator.userLanguage || navigator.language || \"de\";\n    lang = lang.toLowerCase();\n    enGbCountryCodes = [\"en-gb\", \"en-au\", \"en-bz\", \"en-ie\", \"en-jm\", \"en-nz\", \"en-za\", \"en-tt\", \"en-zw\"];\n    return lang = _.some(enGbCountryCodes, function(c){\n      return _.startsWith(lang, c);\n    })\n      ? \"en_gb\"\n      : _.startsWith(lang, \"en\")\n        ? \"en_us\"\n        : _.startsWith(lang, \"de\")\n          ? \"de\"\n          : _.startsWith(lang, \"fr\")\n            ? \"fr\"\n            : _.startsWith(lang, \"es\")\n              ? \"es\"\n              : _.startsWith(lang, \"pt\") ? \"pt\" : \"en_us\";\n  };\n})();","updated":"2021-12-21T14:01:47.913673"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/update/freezeMinHeight/freeze.ls","text":"(function(){\n  return function(pw){\n    var p, v, screenSize;\n    p = pw.page;\n    if (p.freezeMinHeight) {\n      v = pw.lastCssVars;\n      screenSize = v.screenWidth + \"\" + v.screenHeight;\n      requestAnimationFrame(function(){\n        return p.css({\n          minHeight: p.freezeMinHeightLastScreenSize != null && p.freezeMinHeightLastScreenSize !== screenSize\n            ? \"\"\n            : p.height() + \"px\"\n        });\n      });\n      return p.freezeMinHeightLastScreenSize = screenSize;\n    }\n  };\n})();","updated":"2021-12-21T14:01:47.913673"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/termsAndPrivacyDiv/_t.ls","text":"(function(){\n  return {\n    antonPrivacy: {\n      de: \"ANTON-Datenschutzbestimmungen\",\n      en: \"ANTON privacy policy\",\n      fr: \"Politique de protection des données personnelles d'ANTON\",\n      es: \"Política de privacidad de ANTON\",\n      pt: \"Política de privacidade de ANTON\"\n    },\n    antonTerms: {\n      de: \"ANTON-Nutzungsbedingungen\",\n      en: \"ANTON terms of use\",\n      fr: \"Conditions générales d'utilisation d'ANTON\",\n      es: \"ANTON condiciones de uso\",\n      pt: \"ANTON termos de uso\"\n    },\n    iAgree: {\n      de: \"Durch Klick auf „$1“ stimmst du den\",\n      en: \"By clicking on “$1”, you agree to the\",\n      fr: \"En appuyant sur “$1”, tu acceptes\",\n      es: \"Al presionar “$1”, aceptas la\",\n      pt: \"Ao presionar “$1”, você aceita os\"\n    },\n    privacyPolicy: {\n      de: \"Datenschutzbestimmungen\",\n      en: \"privacy policy\",\n      fr: \"la politique de protection des données personnelles\",\n      es: \"política de privacidad\",\n      pt: \"política de privacidade\"\n    },\n    to: {\n      de: \" zu.\",\n      en: \".\",\n      fr: \".\",\n      es: \".\",\n      pt: \".\"\n    },\n    andThe: {\n      de: \"und den\",\n      en: \"and the\",\n      fr: \"et\",\n      es: \"y las\",\n      pt: \"e a\"\n    },\n    terms: {\n      de: \"Nutzungsbedingungen\",\n      en: \"terms of use\",\n      fr: \"les conditions d'utilisation\",\n      es: \"condiciones de uso\",\n      pt: \"termos de uso\"\n    }\n  };\n})();","updated":"2021-12-21T16:09:07.960647"},{"path":"pages/static/_shared/section/section.ls","text":"(function(){\n  return function(o){\n    var div;\n    o.isExpanded == null && (o.isExpanded = false);\n    o.toggle = function(){\n      var scroller;\n      o.isExpanded = !o.isExpanded;\n      scroller = body.findFirst(\".popupContent\") || body.findFirst(\".pageScrollWrapper\");\n      body.findFirst(\".privacyDiv\").css({\n        minHeight: scroller.scrollTop + scroller.height() + \"px\"\n      });\n      return div.replaceWith(inc(THISFILE)(o));\n    };\n    return div = Div().html(inc(\"header/header\")(o), inc(\"content/content\")(o));\n  };\n})();","updated":"2023-05-24T08:43:57.545059"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/_t.ls","text":"(function(){\n  return {\n    textParents: {\n      de: \"$1 darf nur von Erwachsenen gekauft werden. Trage hier das Geburtsjahr des Käufers oder der Käuferin&nbsp;ein.\",\n      en: \"$1 can only be purchased by adults. Please enter the buyer's year of birth.\",\n      fr: \"$1 ne peut être acheté que par des adultes. Merci d'entrer l'année de naissance de la personne qui va effectuer le paiement.\",\n      es: \"$1 solo puede ser adquirido por adultos. Por favor, ingresa la fecha de nacimiento de la persona que va a efectuar el pago.\",\n      pt: \"$1 só pode ser adquirido por adultos. Por favor, digite aqui o ano de nascimento da pessoa que vai efetuar o pagamento.\"\n    },\n    invalidBirthYear: {\n      de: \"Dieses Geburtsjahr ist nicht zulässig.\",\n      en: \"This birth year is not accepted.\",\n      fr: \"Cette année de naissance n'est pas acceptée.\",\n      es: \"No se acepta esta fecha de nacimiento.\",\n      pt: \"Este ano de nascimento não é aceito.\"\n    },\n    buttonBuy: {\n      de: \"Jetzt kaufen\",\n      en: \"Buy now\",\n      fr: \"Acheter maintenant\",\n      es: \"Comprar ahora\",\n      pt: \"Comprar agora\"\n    },\n    birthYear: {\n      de: \"Geburtsjahr: \",\n      en: \"Year of birth: \",\n      fr: \"Année de naissance&nbsp;: \",\n      es: \"Año de nacimiento: \",\n      pt: \"Ano de nascimento:\"\n    }\n  };\n})();","updated":"2023-05-24T08:43:57.545059"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/broadJump/broadJump.ls","text":"(function(){\n  return function(){\n    return {\n      id: \"broadJump\",\n      project: \"app01-game-broad-jump\",\n      title: T(\"title\"),\n      category: \"skill\",\n      grade: 2,\n      price: 1,\n      icon: twitch({\n        de: \"solocode_game-anton-sports-broad-jump-cover\",\n        en: \"solocode_game-anton-sports-weitsprung-cover-en-2\",\n        fr: \"solocode_game-anton-sports-long-jump-fr\",\n        es: \"solocode_game-anton-sports-long-jump-es\",\n        pt: \"solocode_game-anton-sports-long-jump-pt-2\"\n      }),\n      iconPosition: \"50% 10%\",\n      numberOfTries: 3,\n      highscoreDisabled: false,\n      highscoreType: \"float\",\n      disabled: false,\n      debugOnly: false,\n      newBadge: false,\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2021-12-23T14:07:56.278594"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hauntedHouse/_t.ls","text":"(function(){\n  return {\n    manual: {\n      de: \"Erforsche mit der kleinen Hexe das Spukhaus und sammel alle 13 Truhen.\\nDrehe eine Karte, indem du darauf tippst und platziere sie, indem du ein leeres Feld auswählst.\\nBahne dir so einen Weg zu der Schatztruhe. Aber Vorsicht! Wenn du einem Geist den Weg zu dir öffnest, wird er dich verfluchen.\",\n      en: \"Explore the haunted house with the little witch and collect all 13 chests.\\nRotate each card by tapping it and place it by selecting an empty spot.\\nThe goal is to create an open path to the treasure. Beware of ghosts! They’ll haunt you and make you lose health.\",\n      fr: \"Explore la maison hantée avec la petite sorcière et collecte les 13 coffres.\\nAppuie sur une carte pour la faire tourner et place-la en appuyant sur la case de ton choix.\\nFais-toi un chemin vers le trésor. Attention aux fantômes… ils vont te hanter&nbsp;!\",\n      es: \"Explora la casa encantada y recolecta los 13 baúles. Para girar tu carta presionla brevemente, luego colócala en el tablero presionando la casilla deseada. ¡Ten mucho cuidado con los fantasmas!\",\n      pt: \" Explore a casa mal-assombrada com a bruxinha e colete os 13 baús, construindo seu caminho até eles. Para girar uma carta, clique nela e depois selecione o campo no tabuleiro onde deseja colocá-la. \\nCuidado com os fantasmas! Eles podem te assombrar e roubar sua energia.\"\n    },\n    manualDesktop: {\n      de: \"Erforsche mit der kleinen Hexe das Spukhaus und sammel alle 13 Truhen.\\nDrehe eine Karte, indem du darauf klickst und platziere sie, indem du ein leeres Feld auswählst.\\nBahne dir so einen Weg zu der Schatztruhe. Aber Vorsicht! Wenn du einem Geist den Weg zu dir öffnest, wird er dich verfluchen.\",\n      en: \"Explore the haunted house with the little witch and collect all 13 chests.\\nRotate each card by clicking on it and place it by selecting an empty spot.\\nThe goal is to create an open path to the treasure. Beware of ghosts! They’ll haunt you and make you lose health.\",\n      fr: \"Explore la maison hantée avec la petite sorcière et collecte les 13 coffres.\\nClique sur une carte pour la faire tourner et place-la en cliquant sur la case de ton choix.\\nFais-toi un chemin vers le trésor. Attention aux fantômes… ils vont te hanter&nbsp;!\",\n      es: \"Explora la casa encantada y encuentra los 13 baúles con ayuda de la pequeña bruja. Para girar la carta, en la parte inferior, presiónala brevemente con el cursor. Para colocarla posteriormente en el tablero, presiona la casilla deseada y ¡Ten mucho cuidado con los fantasmas!\",\n      pt: \"Explore a casa mal-assombrada com a bruxinha e colete todos os 13 baús, construindo seu caminho até eles. Para girar uma carta, clique nela e selecione depois o campo no tabuleiro onde deseja colocá-la. Cuidado com os fantasmas! Eles podem te assombrar e roubar sua energia.\"\n    }\n  };\n})();","updated":"2022-01-06T16:25:58.469716"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/batCave/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Lass eine Taste gedrückt, um nach oben zu fliegen. Lass los, um nach unten zu fliegen. Weiche den Hindernissen aus und versuche so weit wie möglich zu kommen.\",\n      en: \"Hold any key to fly upwards. Release the key to fall. Try to fly for as long as possible without hitting any obstacles.\",\n      fr: \"Appuie sur n'importe quelle touche pour monter. Lâche la touche pour descendre. Essaie de voler aussi longtemps que possible sans heurter les obstacles.\",\n      es: \"Deja una tecla presionada para volar hacia arriba. Suelta la tecla para caer. Esquiva los obstáculos e intenta llegar lo más lejos posible.\",\n      pt: \"Mantenha uma tecla pressionada para voar para cima. Libere a tecla para voar para baixo. Desvie dos obstáculos e tente voar o mais longe possivel.\"\n    },\n    manual: {\n      de: \"Berühre den Bildschirm, um nach oben zu fliegen. Lass los, um nach unten zu fliegen. Weiche den Hindernissen aus und versuche so weit wie möglich zu kommen.\",\n      en: \"Tap the screen to fly upwards. Release to fall. Try to fly for as long as possible without hitting any obstacles.\",\n      fr: \"Appuie sur l'écran pour monter. Lâche pour descendre. Essaie de voler aussi longtemps que possible sans heurter les obstacles.\",\n      es: \"Presiona la pantalla para volar hacia arriba. Suelta la pantalla para caer. Esquiva los obstáculos e intenta llegar lo más lejos posible.\",\n      pt: \"Pressione a tela para voar para cima. Solte para voar para baixo. Desvie dos obstáculos e tente voar o mais longe possível. \"\n    }\n  };\n})();","updated":"2022-01-06T16:25:58.469716"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/notFound/contentFeedbackButton/popupInput/_t.ls","text":"(function(){\n  return {\n    whichTopic: {\n      de: \"Welches Thema oder welche Übung wünschst du dir?\",\n      en: \"What topic or exercise would you like to see?\",\n      fr: \"Quel thème ou exercice veux-tu qu'on ajoute&nbsp;?\",\n      es: \"¿Qué tema o qué ejercicio deseas que agreguemos?\",\n      pt: \"Qual tema ou qual exercício você gostaria de escolher?\"\n    },\n    whichSubjectAndGrade: {\n      de: \"In welchem Fach und Klassenstufe?\",\n      en_gb: \"In which subject and year group?\",\n      en: \"In what subject and grade level?\",\n      fr: \"Dans quelle matière et pour quelle classe&nbsp;?\",\n      es: \"¿En qué materia y para que grado escolar?\",\n      pt: \"Em qual disciplina e para qual série?\"\n    },\n    fillBothFields: {\n      de: \"Bitte fülle beide Felder aus.\",\n      en: \"Please complete both fields.\",\n      fr: \"Tu dois répondre aux 2 questions.\",\n      es: \"Por favor, rellena los dos campos.\",\n      pt: \"Por favor, preencha os dois campos.\"\n    },\n    send: {\n      de: \"Senden\",\n      en: \"Send\",\n      fr: \"Envoyer\",\n      es: \"Enviar\",\n      pt: \"Enviar\"\n    }\n  };\n})();","updated":"2022-01-06T16:25:58.469716"},{"path":"addons/navbar/bar/user/user/items/itemShare/item.ls","text":"(function(){\n  return function(){\n    var ref$;\n    if (((ref$ = window.plugins) != null ? ref$.socialsharing : void 8) == null) {\n      return;\n    }\n    return {\n      label: T(\"recommendAnton\"),\n      selected: false,\n      icon: engine.isAndroidApp\n        ? path(\"/lib/svg/iconModern/share-android.svg\")\n        : path(\"/lib/svg/iconModern/share.svg\"),\n      click: function(){\n        var share;\n        share = inc(\"/lib/util/shareApp/share\");\n        return inc(\"/lib/gui/parentalGate/parentalGate\")(share);\n      }\n    };\n  };\n})();","updated":"2026-04-17T10:20:15.28764"},{"path":"addons/topbarLevel/calculator/calculator/label/icon/icon.ls","text":"(function(){\n  return function(slide){\n    var div, upIcon, downIcon;\n    div = Div().css({\n      display: \"flex\",\n      padding: \"0.3em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/iconModern/calculator.svg\"),\n      color: Color.grey[600],\n      size: \"1.69em\"\n    }).addClass(\"icon\"), upIcon = SvgIcon({\n      svg: path(\"/lib/svg/icon/close-small.svg\"),\n      width: \"1.3em\",\n      height: \"1.3em\",\n      color: Color.grey[700]\n    }).css({\n      marginLeft: \"0.1em\"\n    }).hide(), downIcon = SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-down-small.svg\"),\n      width: \"1.3em\",\n      height: \"1.3em\",\n      color: Color.grey[700]\n    }).css({\n      marginLeft: \"0.1em\"\n    }));\n    div.open = function(){\n      upIcon.show();\n      return downIcon.hide();\n    };\n    div.close = function(){\n      downIcon.show();\n      return upIcon.hide();\n    };\n    return div;\n  };\n})();","updated":"2026-04-17T10:20:15.28764"},{"path":"pages/snipTrees/loadingPage/page.ls","text":"(function(){\n  return function(page){\n    return {\n      navCategory: \"snipTrees\",\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.html(inc(\"/lib/gui/spinner/spinner\")());\n        return projects.loadProjects({\n          projectDescriptions: [{\n            project: \"app01-snip-trees\"\n          }],\n          onProjectMissingError: function(){\n            return debug(\"app01-snip-trees missing\");\n          },\n          onDone: function(){\n            return startPage({\n              history: 0,\n              path: page.params.type === \"packTrees\"\n                ? path(\"/../app01-snip-trees/pages/03_treePacks/page\")\n                : path(\"/../app01-snip-trees/pages/02_treeNext/page\")\n            });\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2026-04-17T10:20:15.28764"},{"path":"pages/snipTrees/start.ls","text":"(function(){\n  return function(p){\n    var ref$;\n    p == null && (p = {});\n    if ((ref$ = projects.info()[\"app01-snip-trees\"]) != null && ref$.isLoaded) {\n      return startPage({\n        history: 0,\n        path: p.type === \"packTrees\"\n          ? path(\"/../app01-snip-trees/pages/03_treePacks/page\")\n          : path(\"/../app01-snip-trees/pages/02_treeNext/page\")\n      });\n    } else {\n      return startPage({\n        path: path(\"loadingPage/page\"),\n        params: {\n          type: p.type\n        }\n      });\n    }\n  };\n})();","updated":"2026-04-17T10:20:15.28764"},{"path":"lib/svg/iconModern/calculator.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M72.25 15.25a.5.5 0 0 0-.5-.5h-47.5a.5.5 0 0 0-.5.5v65.5a.5.5 0 0 0 .5.5h47.5a.5.5 0 0 0 .5-.5zm7.5 65.5a8 8 0 0 1-8 8h-47.5a8 8 0 0 1-8-8v-65.5a8 8 0 0 1 8-8h47.5a8 8 0 0 1 8 8z\"/>\n  <path fill=\"#373737\" d=\"M28 23c0-1.105.874-2 1.951-2H66.05c1.077 0 1.951.895 1.951 2v8c0 1.105-.874 2-1.951 2h-36.1c-1.076 0-1.95-.895-1.95-2zm1 18a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2zm14 0a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2zm14 0a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2zM29 55a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2zm14 0a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2zM29 69a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2zm14 0a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2zm14 0a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2zm0-14a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2z\"/>\n</svg>\n","updated":"2026-04-17T10:20:15.28764"},{"path":"lib/svg/iconModern/file-import.svg","text":"<svg width=\"96\" height=\"96\" viewBox=\"0 0 96 96\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M58.4756 7C59.5404 7 60.5617 7.42463 61.3125 8.17969L78.8369 25.8037C79.586 26.5572 80.0044 27.5781 80 28.6406L79.7881 79.7812C79.7692 84.3205 76.0847 88 71.5381 88H24.25C19.6936 88 16 84.3064 16 79.75V68.1895C16 65.9803 17.7909 64.1895 20 64.1895C22.2091 64.1895 24 65.9803 24 68.1895V79.75C24 79.8881 24.1119 80 24.25 80H71.5381C71.672 80 71.7875 79.8894 71.7881 79.748L71.9834 32.624H59.6924C56.9565 32.624 54.7282 30.4251 54.6924 27.6895L54.5273 15H24.25C24.1119 15 24 15.1119 24 15.25V29C24 31.2091 22.2091 33 20 33C17.7909 33 16 31.2091 16 29V15.25C16 10.6937 19.6937 7 24.25 7H58.4756ZM37.8564 33.0732C39.4727 31.3745 42.1605 31.3078 43.8594 32.9238L57.1416 45.5605C57.1529 45.5713 57.1636 45.5829 57.1748 45.5938C57.2029 45.621 57.2305 45.6487 57.2578 45.6768C57.2805 45.7001 57.3031 45.7233 57.3252 45.7471C57.3506 45.7744 57.3757 45.8021 57.4004 45.8301C57.4218 45.8543 57.4431 45.8786 57.4639 45.9033C57.4913 45.9359 57.5175 45.9695 57.5439 46.0029C57.5594 46.0224 57.5748 46.0418 57.5898 46.0615C57.6157 46.0953 57.6412 46.1295 57.666 46.1641C57.6837 46.1887 57.7016 46.2132 57.7188 46.2383C58.1871 46.9209 58.4619 47.7473 58.4619 48.6377C58.4617 49.6822 58.0828 50.6375 57.457 51.377C57.4459 51.3902 57.4342 51.4029 57.4229 51.416C57.3372 51.5147 57.2476 51.6098 57.1533 51.7002C57.1505 51.7029 57.1483 51.7063 57.1455 51.709L43.8633 64.3789C42.1665 65.9972 39.4789 65.9339 37.8604 64.2373C36.2423 62.5406 36.3055 59.8528 38.002 58.2344L43.6123 52.8828H11.001C8.65613 52.8828 6.75501 50.9815 6.75488 48.6367C6.75491 46.2918 8.65604 44.3906 11.001 44.3906H43.5928L38.0068 39.0762C36.3082 37.4599 36.2404 34.7721 37.8564 33.0732Z\" fill=\"#373737\"/>\n</svg>\n","updated":"2026-04-17T10:20:15.28764"},{"path":"lib/svg/iconModern/share-android.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"96\" height=\"96\" fill=\"none\">\n  <path fill=\"#373737\" d=\"M68.3647 12c6.4452 0 11.6758 5.2266 11.6758 11.6758s-5.2306 11.6758-11.6758 11.6758c-3.2857-.0001-6.2537-1.3607-8.3759-3.5469L34.2056 46.4541c.0669.506.1054 1.0216.1054 1.5459 0 .5556-.0421 1.1018-.1172 1.6367l25.5547 14.8096c2.1353-2.3339 5.2056-3.7978 8.6162-3.7979 6.4451 0 11.6757 5.2267 11.6758 11.6758S74.8099 84 68.3647 84c-6.445-.0001-11.6757-5.2266-11.6757-11.6758q0-.3244.0175-.6445L30.5874 56.543c-2.0854 1.942-4.8794 3.1328-7.9521 3.1328-6.4452 0-11.6758-5.2266-11.6758-11.6758s5.2306-11.6758 11.6758-11.6758c3.1054 0 5.9263 1.2164 8.0185 3.1953l26.0801-14.8183a11.8 11.8 0 0 1-.0449-1.0254c0-6.4492 5.2307-11.6757 11.6757-11.6758\"/>\n</svg>","updated":"2026-04-17T10:20:15.28764"},{"path":"pages/level/afterFinish/pages/newCoin/firstCoinExplainGameMenuNavigationNext/closeIcon/icon.ls","text":"(function(){\n  return function(){\n    return Div({\n      position: \"absolute\",\n      right: 0,\n      top: 0,\n      display: \"flex\",\n      padding: \"0.7em\",\n      zIndex: 1\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/iconModern/close.svg\"),\n      size: \"1.1em\",\n      color: Color.grey[900]\n    })).tap({\n      up: function(){\n        return startPage({\n          history: function(path){\n            return !_.includes(path, \"/level\");\n          },\n          animation: \"fadeIn\"\n        });\n      },\n      tapZone: \"0 1em 1em 0\"\n    }).attr({\n      \"aria-label\": T(\"closeButton\"),\n      role: \"button\"\n    });\n  };\n})();","updated":"2026-04-17T10:20:15.28764"},{"path":"pages/level/afterFinish/pages/newCoin/firstCoinExplainGameMenuNavigationNext/content/content.ls","text":"(function(){\n  return function(showContent){\n    return Div({\n      display: \"flex\",\n      flexDirection: \"column\"\n    }).html(inc(\"image/image\")(showContent), inc(\"text/text\")(), Button(T(\"ok\")).css({\n      minWidth: \"5em\",\n      borderRadius: \"8px\",\n      marginBottom: \"1.5em\"\n    }).tap(function(){\n      return startPage({\n        history: function(path){\n          return !_.includes(path, \"/level\");\n        },\n        animation: \"fadeIn\"\n      });\n    }));\n  };\n})();","updated":"2026-04-17T10:20:15.28764"},{"path":"pages/level/afterFinish/pages/newCoin/firstCoinExplainGameMenuNavigationNext/content/image/image.ls","text":"(function(){\n  return function(showContent){\n    var language, ref$, div, onImageLoaded, onImageError, timeout;\n    language = (ref$ = engine.guiLanguage) === \"en_us\" || ref$ === \"en_gb\"\n      ? \"en\"\n      : engine.guiLanguage;\n    div = Div({\n      width: \"100%\",\n      padding: \"1em 0\",\n      maxHeight: \"24em\",\n      alignContent: \"center\"\n    });\n    onImageLoaded = function(){\n      clearTimeout(timeout);\n      return showContent();\n    };\n    onImageError = function(){\n      clearTimeout(timeout);\n      div.hide();\n      return setTimeout(function(){\n        return showContent();\n      });\n    };\n    timeout = setTimeout(onImageError, 2000);\n    div.html(inc(\"/lib/gui/image/image\")({\n      id: \"solocode_info-coins-\" + language + \"!original\",\n      fileFolder: \"media/extraPages/_images\",\n      onLoaded: onImageLoaded,\n      onError: onImageError\n    }).css({\n      maxWidth: \"90vw\",\n      maxHeight: \"calc(90vw / 1.35)\",\n      height: \"16em\",\n      width: \"calc(16em * 1.35)\"\n    }));\n    return div;\n  };\n})();","updated":"2026-04-17T10:20:15.28764"},{"path":"pages/level/afterFinish/pages/newCoin/firstCoinExplainGameMenuNavigationNext/content/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      lineHeight: \"1.5em\",\n      maxWidth: \"95%\",\n      width: \"30em\",\n      justifySelf: \"center\",\n      marginBottom: \"1em\",\n      padding: \"1em\"\n    }).html(T(\"canPlayWithCoinsNext\"));\n  };\n})();","updated":"2026-04-17T10:20:15.28764"},{"path":"pages/level/afterFinish/pages/newCoin/firstCoinExplainGameMenuNavigationNext/page.ls","text":"(function(){\n  return function(page){\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      top: function(){\n        var div;\n        return div = Div().html(inc(\"closeIcon/icon\")());\n      },\n      start: function(){\n        var showContent, content;\n        showContent = function(){\n          if (!page.isVisible()) {\n            return;\n          }\n          return page.html(content);\n        };\n        content = inc(\"content/content\")(showContent);\n        return page.html(inc(\"/../app01/lib/gui/spinner/spinner\")().fadeIn(500));\n      }\n    };\n  };\n})();","updated":"2026-04-17T10:20:15.28764"},{"path":"pages/level/finishLevel/_t.ls","text":"(function(){\n  return {\n    totalMistakes: {\n      de: \"$1 Fehler\",\n      en: \"$1 mistakes\",\n      fr: \"$1 erreurs\",\n      es: \"$1 errores\",\n      pt: \"$1 erros\"\n    },\n    again: {\n      de: \"Nochmal\",\n      en_gb: \"Practise again\",\n      en: \"Practice again\",\n      fr: \"À revoir\",\n      es: \"Otra vez\",\n      pt: \"Tentar de novo\"\n    }\n  };\n})();","updated":"2023-04-03T14:48:00.205447"},{"path":"pages/level/reviewOrPreviewPopup/_t.ls","text":"(function(){\n  return {\n    debugInfo: {\n      de: \"von insgesamt: $1\",\n      en_gb: \"from a total of: $1\",\n      en: \"of in total: $1\",\n      fr: \"Sur un total de&nbsp;$1\",\n      es: \"de un total de: $1\",\n      pt: \"de um total de: $1\"\n    },\n    levelAborted: {\n      de: \"Übung abgebrochen\",\n      en: \"Exercise cancelled\",\n      fr: \"Exercice arrêté\",\n      es: \"Ejercicios interrumpidos\",\n      pt: \"Exercícios interrompidos\"\n    },\n    levelSkipped: {\n      de: \"Übung geskipped (debug)\",\n      en: \"Exercise skipped (debug)\",\n      fr: \"Exercice sauté (debug)\",\n      es: \"Ejercicio saltado (debug)\",\n      pt: \"Exercício pulado (debug)\"\n    }\n  };\n})();","updated":"2023-04-03T14:48:00.205447"},{"path":"pages/static/terms/div/div.ls","text":"(function(){\n  return function(isPrint){\n    return twitch({\n      de: inc(\"divDe/div\")(isPrint),\n      en: inc(\"divEn/div\")(isPrint),\n      en_gb: inc(\"divEnGb/div\")(isPrint),\n      fr: inc(\"divFr/div\")(isPrint),\n      es: inc(\"divEs/div\")(isPrint),\n      pt: inc(\"divPt/div\")(isPrint)\n    });\n  };\n})();","updated":"2022-01-17T10:28:11.933432"},{"path":"pages/static/privacy/div/div.ls","text":"(function(){\n  return function(options){\n    return twitch({\n      de: inc(\"divDe/div\")(options),\n      en: inc(\"divEn/div\")(options),\n      en_gb: inc(\"divEnGb/div\")(options),\n      fr: inc(\"divFr/div\")(options),\n      es: inc(\"divEs/div\")(options),\n      pt: inc(\"divPt/div\")(options)\n    });\n  };\n})();","updated":"2022-01-17T10:28:11.933432"},{"path":"pages/static/terms/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      start: function(){\n        return page.append(Div({\n          margin: \"0em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\",\n          lineHeight: \"1.5em\",\n          textAlign: 'left'\n        }).html(inc(\"div/div\")()));\n      }\n    };\n  };\n})();","updated":"2022-01-17T10:28:11.933432"},{"path":"lib/init/debugIcons/framesPerSecond/framesPerSecond.ls","text":"(function(){\n  return function(){\n    var div;\n    div = Div({\n      display: \"flex\",\n      position: \"absolute\",\n      left: \"0.7em\",\n      top: \"0.75em\",\n      pointerEvents: \"none\"\n    });\n    div.update = function(){\n      return inc(\"update/update\")(div);\n    };\n    return div;\n  };\n})();","updated":"2022-01-20T16:30:03.828802"},{"path":"lib/init/debugIcons/simulateError/update/update.ls","text":"(function(){\n  return function(div, iconOff, iconOn){\n    return function(){\n      if ((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"showSimulateError\")) {\n        div.show();\n        if (engine.simulateError) {\n          iconOn.show();\n          return iconOff.hide();\n        } else {\n          iconOn.hide();\n          return iconOff.show();\n        }\n      } else {\n        return div.hide();\n      }\n    };\n  };\n})();","updated":"2022-01-17T10:28:11.933432"},{"path":"lib/init/debugIcons/simulateOffline/update/update.ls","text":"(function(){\n  return function(div, iconOff, iconOn){\n    return function(){\n      if ((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"showSimulateOffline\")) {\n        div.show();\n        if (engine.simulateOffline) {\n          iconOff.show();\n          return iconOn.hide();\n        } else {\n          iconOff.hide();\n          return iconOn.show();\n        }\n      } else {\n        return div.hide();\n      }\n    };\n  };\n})();","updated":"2022-01-17T10:28:11.933432"},{"path":"pages/level/_t.ls","text":"(function(){\n  return {\n    myResults: {\n      de: \"Meine Ergebnisse\",\n      en: \"My results\",\n      fr: \"Mes réponses\",\n      es: \"Mis resultados\",\n      pt: \"Meus resultados\"\n    },\n    preview: {\n      de: \"Vorschau\",\n      en: \"Preview\",\n      fr: \"Aperçu\",\n      es: \"Vista previa\",\n      pt: \"Pré-visualização\"\n    }\n  };\n})();","updated":"2023-04-03T14:48:00.205447"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/marbleMaze/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Löse das Labyrinth und erreiche so schnell wie möglich das Ziel. Steuere, indem du deine Maus in die gewünschte Richtung ziehst, und weiche den Löchern aus.\",\n      en: \"Find your way to the end of the maze. Drag your mouse to direct the ball. Make sure you avoid the holes.\",\n      fr: \"Trouve ton chemin pour sortir du labyrinthe. Fais bouger ta souris pour diriger la balle. Attention à éviter les trous&nbsp;!\",\n      es: \"Encuentra la salida del laberinto lo más rápido que puedas. Dirige la pelota usando el ratón ¡Cuidado con los agujeros!\",\n      pt: \"Encontre a saída do labirinto o mais rápido possível. Use o mouse para guiar a bola, mas tome cuidado para não cair nos buracos!\"\n    },\n    manual: {\n      de: \"Löse das Labyrinth und erreiche so schnell wie möglich das Ziel. Steuere, indem du dein Gerät neigst, und weiche den Löchern aus. Wird der Neigungssensor deines Gerätes nicht unterstützt, kannst du mit deinem Finger auf dem Bildschirm wischen, um zu steuern.\",\n      en: \"Find your way to the end of the maze. Tilt your device to direct the ball. Make sure you avoid the holes. If the tilt sensor on your device is not supported, you can swipe the screen to direct the ball.\",\n      fr: \"Trouve ton chemin pour sortir du labyrinthe. Incline ton appareil pour diriger la balle. Attention à éviter les trous&nbsp;! Si le capteur d'inclinaison de ton appareil n'est pas pris en charge, tu peux faire glisser ton doigt sur l'écran pour te diriger.\",\n      es: \"Encuentra la salida del laberinto lo más rápido que puedas. Inclina tu dispositivo para \\ndirigir la pelota. ¡Cuidado con los agujeros! En caso de que el sensor de inclinación no sea \\ncompatible con tu dispositivo, puedes dirigir la pelota arrastrando el dedo sobre la \\npantalla.\",\n      pt: \"Encontre a saída do labirinto o mais rápido possível. Incline o seu dispositivo para guiar a bola, mas tome cuidado para não cair nos buracos! Caso o sensor de inclinação não seja compatível com seu dispositivo, você também pode guiar a bola deslizando o dedo sobre a tela.\"\n    },\n    impossible: {\n      de: \"Unmöglich\",\n      en: \"Impossible\",\n      fr: \"Impossible\",\n      es: \"Imposible\",\n      pt: \"Impossível\"\n    }\n  };\n})();","updated":"2022-01-20T16:30:03.828802"},{"path":"lib/init/debugIcons/framesPerSecond/update/update.ls","text":"(function(){\n  return function(div){\n    if ((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"showFramesPerSecond\")) {\n      if (div.firstChild) {} else {\n        return div.html(inc(\"divFps/div\")());\n      }\n    } else {\n      return div.empty();\n    }\n  };\n})();","updated":"2022-01-20T16:30:03.828802"},{"path":"lib/init/debugIcons/framesPerSecond/update/divFps/div.ls","text":"(function(){\n  return function(){\n    var counter, last, onFrame, div;\n    counter = 0;\n    last = new Date;\n    onFrame = function(){\n      var now, dif, fps;\n      if (counter < 10) {\n        counter++;\n        return;\n      }\n      now = new Date();\n      dif = now - last;\n      fps = parseInt(1000 / dif * counter);\n      counter = 0;\n      last = now;\n      return div.html(fps).css({\n        color: fps < 10\n          ? Color.red[500]\n          : Color.grey[400]\n      });\n    };\n    return div = Div({\n      fontFamily: \"monospace\",\n      fontSize: \"0.65em\"\n    }).onAnimationFrame(onFrame);\n  };\n})();","updated":"2022-01-20T16:30:03.828802"},{"path":"pages/games/02_gameDetails/difficulties/row/isLockedBySchoolAdmin/is.ls","text":"(function(){\n  return function(){\n    var schoolCodes, i$, len$, sc, schoolLog, ref$;\n    schoolCodes = _.map(log.list(\"isSchoolMember\"), \"schoolCode\");\n    for (i$ = 0, len$ = schoolCodes.length; i$ < len$; ++i$) {\n      sc = schoolCodes[i$];\n      schoolLog = window.schoolLogs[sc];\n      if (schoolLog != null && ((ref$ = schoolLog.findLast(\"setSchoolLockGames\")) != null && ref$.isLocked)) {\n        return true;\n      }\n    }\n    return false;\n  };\n})();","updated":"2025-03-21T10:57:33.604705"},{"path":"lib/gui/input2/stop/stop.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var ref$;\n      if (!o.isStarted) {\n        return;\n      }\n      o.cursor.stop();\n      o.screenKeyboard.stop();\n      o.externalKeyboard.stop();\n      o.selection.unselect();\n      o.isStarted = false;\n      if (typeof o.onStop == 'function') {\n        o.onStop();\n      }\n      return typeof (ref$ = app.currentPage).updateLayout == 'function' ? ref$.updateLayout() : void 8;\n    };\n  };\n})();","updated":"2022-03-03T10:03:29.939799"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/onResizeObserver/on.ls","text":"(function(){\n  return function(pw, elements){\n    var onResize, ro, i$, len$, el;\n    onResize = function(){\n      return pw.page.updateLayout();\n    };\n    ro = new ResizeObserver(onResize);\n    elements.push(body);\n    for (i$ = 0, len$ = elements.length; i$ < len$; ++i$) {\n      el = elements[i$];\n      ro.observe(el);\n    }\n    return pw.onDomRemove(function(){\n      return ro.disconnect();\n    });\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/util/emToPx/emToPx.ls","text":"(function(){\n  return function(em){\n    var temp, px;\n    em == null && (em = 1);\n    temp = Div({\n      width: em + \"em\",\n      height: em + \"em\"\n    }).appendTo(body);\n    px = temp.width();\n    temp.remove();\n    return px;\n  };\n})();","updated":"2022-06-01T12:49:26.305329"},{"path":"pages/level/afterFinish/pages/newCoin/_t.ls","text":"(function(){\n  return {\n    receiveNewCoin: {\n      de: \"Du bekommst eine neue Münze für dein gutes&nbsp;Lernen!\",\n      en: \"You get one new coin for your good&nbsp;work!\",\n      fr: \"Tu gagnes une nouvelle pièce pour ce bon&nbsp;travail&nbsp;!\",\n      es: \"¡Ganaste una ficha por tu buen&nbsp;trabajo!\",\n      pt: \"Você ganhou uma moeda pelo ótimo&nbsp;trabalho!\"\n    },\n    thanksForYourRating: {\n      de: \"Danke für deine Bewertung!\",\n      en: \"Thank you for your rating!\",\n      fr: \"Merci pour ton évaluation&nbsp;!\",\n      es: \"¡Gracias por tu evaluación!\",\n      pt: \"Agradecemos pela sua avaliação!\"\n    },\n    thanks4Stars: {\n      de: \"Danke für deine Bewertung!<br>Viel Spaß beim Weiterlernen mit ANTON!\",\n      en: \"Thank you for your rating!<br>Keep going, more fun learning awaits!\",\n      fr: \"Merci pour ton évaluation&nbsp;! Continue à apprendre en t'amusant avec ANTON&nbsp;!\",\n      es: \"¡Gracias por tu evaluación!<br>¡Sigue aprendiendo con ANTON!\",\n      pt: \"Agradecemos pela sua avaliação!<br>Continue aprendendo e se divertindo com o ANTON!\"\n    },\n    howDoYouLikeAnton: {\n      de: \"$1, wie gut gefällt dir ANTON?\",\n      en: \"$1, how much do you like ANTON?\",\n      fr: \"$1, est-ce qu'ANTON te plaît&nbsp;?\",\n      es: \"$1, ¿qué tanto te gusta ANTON?\",\n      pt: \"$1, o que está achando do ANTON?\"\n    },\n    canPlayWithCoins: {\n      de: \"Du bekommst immer nach 6 vollen Sternen oder Pokalen eine Münze. Mit den Münzen kannst du dann Spiele spielen.<br><br>Klicke dafür auf der nächsten Seite $1 auf&nbsp;<b><i>Spiele</i></b>.\",\n      en: \"You get a coin for every 6 full stars or trophies you earn in ANTON. You can use your coins to play games.<br><br>Just click on <b><i>Games</i></b> at the $1 of the following page.\",\n      fr: \"Tu obtiens une pièce à chaque fois que tu as collecté 6 étoiles ou trophées. Tu peux utiliser tes pièces pour jouer sur ANTON.<br><br>Pour jouer, appuie sur <b><i>Jeux</i></b> $1 la page suivante.\",\n      es: \"Cada vez que juntas 6 estrellas o trofeos completos, recibes una ficha. Puedes utilizar tus fichas para jugar juegos.<br><br>Presiona <b><i>juegos</i></b> en la $1 de la siguiente página.  \",\n      pt: \"Após ganhar 6 estrelas completas ou um troféu, você sempre receberá uma moeda. Você pode utilizar suas moedas para jogar jogos.<br><br>Para isso, selecione <b><i>Jogos</i></b> $1 na próxima página.\"\n    },\n    bottom: {\n      de: \"unten\",\n      en: \"bottom of\",\n      fr: \"au bas de\",\n      es: \"parte inferior\",\n      pt: \"abaixo\"\n    },\n    top: {\n      de: \"oben\",\n      en: \"top of\",\n      fr: \"en haut de\",\n      es: \"parte superior\",\n      pt: \"acima\"\n    },\n    canPlayWithCoinsNext: {\n      de: \"Du bekommst immer nach 6 vollen Sternen oder Pokalen eine Münze. Mit den Münzen kannst du dann Spiele spielen.\",\n      en: \"You get a coin for every 6 full stars or trophies you earn in ANTON. You can use your coins to play games.\",\n      fr: \"Tu obtiens une pièce à chaque fois que tu as collecté 6 étoiles ou trophées. Tu peux utiliser tes pièces pour jouer sur ANTON.\",\n      es: \"Por cada 6 estrellas o trofeos completos que recibes, ganas una ficha. ¡Gástala en la sección de juegos o adquiere artículos de lujo para tu avatar!\",\n      pt: \"Cada vez que você junta 6 estrelas completas ou um troféu, você recebe uma moeda no ANTON.Você pode utilizar suas moedas para jogar jogos.\"\n    },\n    pleaseRate: {\n      de: \"Bitte bewerte %@ im $1\",\n      en: \"Please rate %@ in $1\",\n      fr: \"Merci d'évaluer %@ dans $1\",\n      es: \"Por favor, evalúa %@ en $1\",\n      pt: \"Por favor, avalie %@ em $1\"\n    },\n    pleaseRateMessage: {\n      de: \"Unterstütze uns, damit %@ kostenlos bleibt.\",\n      en: \"Support us, so that %@ stays free.\",\n      fr: \"Apporte-nous ton soutien pour que %@ reste gratuit.\",\n      es: \"Apóyanos para que %@ siga siendo gratuito.\",\n      pt: \"Apoie-nos, para que o %@ continue gratuito.\"\n    },\n    noThanks: {\n      de: \"Nein, danke\",\n      en: \"No, thanks\",\n      fr: \"Non merci\",\n      es: \"No, gracias\",\n      pt: \"Não, obrigado\"\n    },\n    rateLater: {\n      de: \"Später bewerten\",\n      en: \"Rate later\",\n      fr: \"Évaluer plus tard\",\n      es: \"Evaluar más tarde\",\n      pt: \"Avaliar mais tarde\"\n    },\n    rateNow: {\n      de: \"Jetzt bewerten\",\n      en: \"Rate now\",\n      fr: \"Évaluer maintenant\",\n      es: \"Evaluar ahora\",\n      pt: \"Avaliar agora\"\n    },\n    yes: {\n      de: \"Ja\",\n      en: \"Yes\",\n      fr: \"Oui\",\n      es: \"Sí\",\n      pt: \"Sim\"\n    },\n    no: {\n      de: \"Nein\",\n      en: \"No\",\n      fr: \"Non\",\n      es: \"No\",\n      pt: \"Não\"\n    },\n    pleaseRateGood: {\n      de: \"Bitte gib uns eine gute Bewertung\",\n      en: \"Please give us a good rating\",\n      fr: \"Nous apprécierions beaucoup une bonne note\",\n      es: \"Por favor, déjanos una buena reseña\",\n      pt: \"Por favor, nos dê uma avaliação positiva\"\n    },\n    pleaseGiveFeedback: {\n      de: \"Bitte gib uns Feedback\",\n      en: \"Please give us feedback\",\n      fr: \"Nous apprécierions beaucoup un commentaire\",\n      es: \"Por favor, déjanos un comentario\",\n      pt: \"Por favor, deixe seu comentário\"\n    },\n    pleaseRatePrompt: {\n      de: \"Bitte bewerte %@\",\n      en: \"Please rate %@\",\n      fr: \"Merci d'évaluer %@\",\n      es: \"Favor de evaluar %@\",\n      pt: \"Favor avaliar %@\"\n    },\n    games: {\n      de: \"Spiele\",\n      en: \"Games\",\n      fr: \"Jeux\",\n      es: \"Juegos\",\n      pt: \"Jogos\"\n    }\n  };\n})();","updated":"2026-05-07T07:02:46.684869"},{"path":"pages/start/startUser/07_extraPages/showDirTeacherDirCanceledWarning/_t.ls","text":"(function(){\n  return {\n    infoText: {\n      de: \"Hallo $1, die Schullizenz deiner Schule <b>$2</b> wurde gekündigt und läuft noch bis zum $3. An diesem Datum werden aus Datenschutzgründen deine Gruppen gelöscht und können nicht wieder hergestellt werden. Gruppenmitglieder werden zur Löschung markiert und können entscheiden, ihr Nutzerkonto unabhängig von der Schule weiterzuführen.\",\n      en_gb: \"Hello $1, the School Licence for your school <b>$2</b> has been cancelled and will run until $3. For data protection reasons, your groups will be deleted on this date and will not be able to be retrieved. Group members accounts will be marked for deletion and the users can decide whether to continue their account independently of the school.\",\n      en: \"Hello $1, the School License for your school <b>$2</b> has been cancelled and will run until $3. For data protection reasons, your groups will be deleted on this date and will not be able to be retrieved. Group members will be marked for deletion and can decide whether tocontinue their accounts independently of the school.\",\n      fr: \"Bonjour $1, la licence scolaire de ton école <b>$2</b> a été résiliée et s'arrêtera le $3. Pour des raisons de protection des données, les groupes seront supprimés à cette date et ne pourront pas être récupérés. La suppression des comptes des membres du groupe sera engagée et les utilisateur·rices pourront décider de continuer ou non à utiliser leur compte ANTON indépendamment de l'école.\",\n      es: \"Hola $1, la licencia escolar de tu escuela <b>$2</b> ha sido cancelada y estará activa hasta el $3. A partir de esta fecha, por razones de protección de datos, se borrarán todos los grupos y no podrán ser recuperados. Las cuentas de los grupos se marcarán para su eliminación y los/as usuarios/as serán notificados/as. Estos/as podrán interrumpir la eliminación si desean continuar utilizando sus cuentas independientemente de la escuela.\",\n      pt: \"Olá $1, a Licença Escolar da sua escola <b>$2</b> foi cancelada e estará ativa até $3. Nesta data, por razões de proteção de dados, seus grupos serão excluídos e não poderão ser restaurados. Os membros do grupo serão marcados para exclusão e podem decidir se desejam continuar sua conta de usuário independentemente da escola.\"\n    },\n    title: {\n      de: \"Schullizenz gekündigt\",\n      en_gb: \"School Licence cancelled\",\n      en: \"School License cancelled\",\n      fr: \"Licence scolaire résiliée\",\n      es: \"Licencia escolar cancelada\",\n      pt: \"Licença escolar cancelada\"\n    }\n  };\n})();","updated":"2022-02-23T09:57:50.148466"},{"path":"lib/util/calcRelativeSvgRects/calc.ls","text":"(function(){\n  return function(parent, selector, type){\n    var parentRect, positions, t, r, o;\n    type = type || \"percent\";\n    parentRect = parent.offset();\n    return positions = (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = parent.findAll(selector)).length; i$ < len$; ++i$) {\n        t = ref$[i$];\n        r = t.offset();\n        o = type === \"percent\"\n          ? {\n            left: (r.left - parentRect.left) / parentRect.width * 100 + \"%\",\n            top: (r.top - parentRect.top) / parentRect.height * 100 + \"%\",\n            width: r.width / parentRect.width * 100 + \"%\",\n            height: r.height / parentRect.height * 100 + \"%\"\n          }\n          : type === \"fixed\"\n            ? {\n              left: r.left,\n              top: r.top,\n              width: r.width,\n              height: r.height\n            }\n            : type === \"absolute\" ? {\n              left: r.left - parentRect.left,\n              top: r.top - parentRect.top,\n              width: r.width,\n              height: r.height\n            } : void 8;\n        o.classes = t.classes();\n        results$.push(o);\n      }\n      return results$;\n    }());\n  };\n})();","updated":"2022-02-22T15:40:38.130128"},{"path":"lib/gui/divEditable/onMutation/detectHeightChange/detect.ls","text":"(function(){\n  return function(d){\n    var l, h, ref$;\n    l = d.div.lastChild;\n    h = l.offsetTop + l.offsetHeight;\n    if (h === d.totalHeight) {\n      return;\n    }\n    d.totalHeight = h;\n    d.updateCustomCursor();\n    return typeof (ref$ = d.params).onHeightChange == 'function' ? ref$.onHeightChange() : void 8;\n  };\n})();","updated":"2023-09-08T14:36:38.714039"},{"path":"pages/misc/phoneNumber/show/_t.ls","text":"(function(){\n  return {\n    settings: {\n      de: \"Einstellungen\",\n      en: \"Settings\",\n      fr: \"Paramètres\",\n      es: \"Ajustes\",\n      pt: \"Configurações\"\n    },\n    phoneNumber: {\n      de: \"Telefonnummer\",\n      en_gb: \"Mobile phone number\",\n      en: \"Cell phone number\",\n      fr: \"Numéro de téléphone\",\n      es: \"Número de telefono\",\n      pt: \"Número de telefone\"\n    },\n    recommendPhoneNumberText: {\n      de: \"Hier kannst du deine Telefonnummer eintragen.<br><br>Dann können wir dir deinen Anmelde-Code per SMS zusenden, falls du ihn verlierst.<br><br>Deine Telefonnummer wird nie an Dritte weitergegeben!<br><br>Achtung: Du musst mind. 16 Jahre alt sein und den Datenschutzbestimmungen zustimmen.\",\n      en_gb: \"You can enter your mobile phone number here.<br><br>We can then text you your login code if you lose it. <br><br>Your mobile phone number will never be shared with third parties!<br><br>Attention: You must be at least 16 years old and agree to our privacy policy.\",\n      en: \"You can enter your cell phone number here.<br><br>We can then text you your login code if you lose it. <br><br>Your cell phone number will never be shared with third parties!<br><br>Attention: You must be at least 16 years old and agree to our privacy policy.\",\n      fr: \"Tu peux écrire ton numéro de téléphone ici.<br><br>Nous pouvons ainsi t'envoyer ton code de connexion par SMS si tu le perds. <br><br>Nous ne partagerons jamais ton numéro de téléphone avec des tiers&nbsp;!<br><br>Attention&nbsp;: Tu dois avoir 16 ans ou plus et accepter notre politique de protection des données personnelles.\",\n      es: \"Ingresa tu número de teléfono en este campo<br><br>para que podamos mandarte tu clave de acceso por SMS si la pierdes u olvidas.<br><br>Jamás compartiremos tu número de teléfono con terceros.<br><br>Atención: debes tener al menos 16 años de edad y aceptar nuestra política de privacidad.\",\n      pt: \"Você pode inserir seu número de celular aqui.<br> <br>Assim, poderemos enviar seu código de acesso por SMS, caso você o perca.<br> <br>Seu número de telefone nunca será fornecido a terceiros!<br> <br>Atenção: você deve ter pelo menos 16 anos de idade e aceitar nossa política de privacidade.\"\n    },\n    addPhoneNumber: {\n      deDev: \"Telefonnummer hinzufügen\",\n      en: \"Add phone number\",\n      fr: \"Ajouter un numéro\",\n      es: \"Agregar número\",\n      pt: \"Adicionar número\"\n    },\n    yourPhoneNumber: {\n      de: \"Deine Telefonnummer:\",\n      en: \"Your number:\",\n      fr: \"Ton numéro&nbsp;:\",\n      es: \"Tu número de teléfono:\",\n      pt: \"Seu número:\"\n    },\n    verified: {\n      de: \"Bestätigt.\",\n      en: \"Verified\",\n      fr: \"Confirmé.\",\n      es: \"Confirmado.\",\n      pt: \"Verificado\"\n    },\n    notVerified: {\n      de: \"Noch nicht bestätigt.\",\n      en: \"Not verified\",\n      fr: \"Pas encore confirmé.\",\n      es: \"Sin confirmar.\",\n      pt: \"Ainda não verificado\"\n    },\n    verifyWarning: {\n      de: \"Achtung, bitte verifiziere deine Telefonnummer, damit du den Zugang zu deinem Konto nicht verlieren kannst.\",\n      en_gb: \"Attention: Please verify your mobile phone number so that you don’t lose access to your account.\",\n      en: \"Attention: Please verify your cell phone number so that you don’t lose access to your account.\",\n      fr: \"Attention&nbsp;: Merci de confirmer ton numéro de téléphone  pour ne jamais perdre l'accès à ton compte.\",\n      es: \"¡Atención!: por favor, verifica tu número de teléfono para que no pierdas el acceso a tu cuenta.\",\n      pt: \"Atenção! Por favor, faça a verificação do seu número de telefone para não perder o acesso à sua conta.\"\n    },\n    verifyPhoneNumber: {\n      deDev: \"Telefonnummer überprüfen\",\n      en: \"Verify phone number\",\n      fr: \"Vérifier le numéro\",\n      es: \"Verificar el número de teléfono\",\n      pt: \"Verificar o número de telefone\"\n    },\n    changePhoneNumber: {\n      deDev: \"Telefonnummer ändern\",\n      en: \"Change phone number\",\n      fr: \"Changer le numéro\",\n      es: \"Cambiar número de teléfono\",\n      pt: \"Modificar o número de telefone\"\n    }\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/start/login/sesamLogin/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: \"sesam/login/\",\n      title: T(\"sesamLogin\"),\n      metaDescription: \"\",\n      noIndex: true\n    };\n  };\n})();","updated":"2023-08-31T15:58:37.713812"},{"path":"pages/static/newsletter/enable/page.ls","text":"(function(){\n  return function(page){\n    page.publicId = inc(\"../_shared/calcPublicId/calc\")(page);\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        var submit, onSuccess, onError;\n        submit = function(){\n          return inc(\"submit/submit\")({\n            publicId: page.publicId,\n            onSuccess: onSuccess,\n            onError: onError,\n            page: page\n          });\n        };\n        onSuccess = function(displayName){\n          return page.html(inc(\"../_shared/iconNews/icon\")(), inc(\"title/title\")(displayName), inc(\"text/text\")(), inc(\"../../_shared/linkToStart/link\")());\n        };\n        onError = function(){\n          return page.html(inc(\"../_shared/iconNews/icon\")(), inc(\"../../_shared/textError/text\")(), inc(\"../../_shared/linkToStart/link\")());\n        };\n        page.css({\n          margin: \"2em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\"\n        }).append(inc(\"/lib/gui/spinner/spinner\")());\n        return submit();\n      }\n    };\n  };\n})();","updated":"2022-02-02T15:02:25.926282"},{"path":"lib/gui/divEditable/_shared/lineCharPosition/calcPosition/calcNodeLength/calc.ls","text":"(function(){\n  return function(n){\n    var l, i$, ref$, len$, n2;\n    if (n.nodeType === 3) {\n      return n.textContent.length;\n    } else if (typeof n.attr == 'function' && n.attr(\"special_element\")) {\n      return 1;\n    } else {\n      l = 0;\n      for (i$ = 0, len$ = (ref$ = n.childNodes).length; i$ < len$; ++i$) {\n        n2 = ref$[i$];\n        l += inc(THISFILE)(n2);\n      }\n      return l;\n    }\n  };\n})();","updated":"2022-04-20T13:28:35.820187"},{"path":"lib/gui/input2/click/selectOnMultiClick/select.ls","text":"(function(){\n  return function(e, o){\n    var target, now, duration;\n    target = e.target;\n    now = new Date();\n    duration = now - o.lastClickAt;\n    o.lastClickAt = now;\n    if (!duration || duration > 400) {\n      delete o.multiClickCount;\n      return;\n    }\n    if ((o.textMode === \"password\" && !o.showPassword) || target.hasClass(\"inputChar\") === false) {\n      o.selection.selectAll();\n      return;\n    }\n    if (target.hasClass(\"passwordToggle\") || target.hasClass(\"resetIcon\")) {\n      return;\n    }\n    if (target.select == null) {\n      return;\n    }\n    if (!o.multiClickCount) {\n      o.multiClickCount = 2;\n    } else {\n      o.multiClickCount++;\n    }\n    o.selection.unselect();\n    target.select();\n    if (o.multiClickCount === 2) {\n      return inc(\"selectWord/select\")(target);\n    } else {\n      delete o.multiClickCount;\n      return inc(\"selectLine/select\")(target);\n    }\n  };\n})();","updated":"2022-02-28T14:52:59.373711"},{"path":"lib/gui/input2/click/selectOnDoubleClick/select.ls","text":"(function(){\n  return function(e, o){\n    var target, now, duration, prev, next, results$ = [];\n    target = e.target;\n    now = new Date();\n    duration = now - o.lastClickAt;\n    o.lastClickAt = now;\n    if (!duration || duration > 400) {\n      return;\n    }\n    if ((o.textMode === \"password\" && !o.showPassword) || target.hasClass(\"inputChar\") === false) {\n      o.selection.selectAll();\n      return;\n    }\n    if (target.hasClass(\"passwordToggle\") || target.hasClass(\"resetIcon\")) {\n      return;\n    }\n    if (target.select == null) {\n      return;\n    }\n    o.selection.unselect();\n    target.select();\n    prev = target.previousSibling;\n    while (prev) {\n      if (!inc(\"selectChar/select\")(prev)) {\n        break;\n      }\n      prev = prev.previousSibling;\n    }\n    next = target.nextSibling;\n    while (next) {\n      if (!inc(\"selectChar/select\")(next)) {\n        break;\n      }\n      results$.push(next = next.nextSibling);\n    }\n    return results$;\n  };\n})();","updated":"2022-02-28T14:52:59.373711"},{"path":"lib/gui/input2/icons/icons.ls","text":"(function(){\n  return function(o){\n    var paddingRight, div;\n    if (o.showSearchIcon === true) {\n      o.iconSearch = inc(\"search/search\")(o);\n    }\n    if (o.showResetIcon || o.textMode === \"password\") {\n      paddingRight = 0;\n      div = Div({\n        position: \"absolute\",\n        right: 0,\n        top: 0,\n        bottom: 0\n      }).append(o.showResetIcon ? (paddingRight = 1.5, o.iconReset = inc(\"reset/reset\")(o)) : void 8, o.textMode === \"password\" ? (paddingRight += 2.4, o.iconPassword = inc(\"passwordToggle/toggle\")(o)) : void 8).appendTo(o.div);\n      o.div.css({\n        paddingRight: paddingRight + \"em\"\n      });\n    }\n    return div;\n  };\n})();","updated":"2022-02-28T14:52:59.373711"},{"path":"lib/gui/input2/icons/passwordToggle/toggle.ls","text":"(function(){\n  return function(o){\n    var click, div;\n    click = function(e){\n      var value;\n      o.showPassword = !o.showPassword;\n      value = o.getValue();\n      o.setValue(value);\n      return div.replaceWith(inc(THISFILE)(o));\n    };\n    return div = Div({\n      display: \"inline-flex\",\n      width: \"2.2em\",\n      height: \"100%\",\n      borderLeft: \"2px solid white\"\n    }).addClass(\"passwordToggle\").html(Div({\n      pointerEvents: \"none\"\n    }).html(inc(\"icon/icon\")(o))).tap({\n      up: click,\n      disableCancel: true\n    });\n  };\n})();","updated":"2022-02-28T14:52:59.373711"},{"path":"lib/gui/inputForm/input/input.ls","text":"(function(){\n  return function(onStart, onSubmit, onChange, o, value){\n    var useInputEditable, input, ref$;\n    useInputEditable = inc(\"/lib/util/isDesktop/isDesktop\")() || deviceLog['var'](\"useInputEditable\");\n    input = useInputEditable\n      ? inc(\"/lib/gui/inputEditable/input\")({\n        value: value,\n        onStart: onStart,\n        onSubmit: onSubmit,\n        onChange: onChange,\n        autoCapCorSpelCom: o.autoCapCorSpelCom,\n        showResetIcon: (ref$ = o.showResetIcon) != null ? ref$ : true,\n        placeholder: o.placeholder,\n        maxLength: !o.isPassword ? 100 : void 8,\n        textMode: o.isPassword ? \"password\" : void 8,\n        showPassword: (ref$ = o.showPassword) != null ? ref$ : false\n      })\n      : inc(\"/lib/gui/input2/input\")({\n        maxLength: 100,\n        value: value,\n        onStart: onStart,\n        onSubmit: onSubmit,\n        onChange: onChange,\n        keyboardSubmitLabel: o.submitLabel,\n        keyboardLayout: o.screenKeyboardLayout,\n        keyboardShiftStatus: o.screenKeyboardShiftStatus,\n        showResetIcon: (ref$ = o.showResetIcon) != null ? ref$ : true,\n        keyboardParentDiv: o.keyboardParentDiv,\n        textMode: o.isPassword ? \"password\" : void 8,\n        showPassword: (ref$ = o.showPassword) != null ? ref$ : false\n      });\n    return input.css(useInputEditable ? {\n      width: \"15em\"\n    } : void 8).css({\n      maxWidth: \"95%\",\n      minWidth: \"15em\",\n      margin: o.label2 ? \"0.8em 0 1.2em\" : \"1.4em 0 1.1em\"\n    });\n  };\n})();","updated":"2022-02-28T14:52:59.373711"},{"path":"lib/gui/input2/input.ls","text":"(function(){\n  return function(o){\n    var ref$, div;\n    o == null && (o = {});\n    o.isStarted = false;\n    o.maxLength = (ref$ = o.fixedLength) != null\n      ? ref$\n      : o.maxLength;\n    o.enabled == null && (o.enabled = true);\n    o.textAlign == null && (o.textAlign = \"left\");\n    o.textMode == null && (o.textMode = \"normal\");\n    o.showResetIcon == null && (o.showResetIcon = false);\n    o.showSearchIcon == null && (o.showSearchIcon = false);\n    o.showPassword == null && (o.showPassword = false);\n    o.isDesktop = inc(\"isDesktop/isDesktop\")(o);\n    o.div = inc(\"div/div\")(o);\n    o.fixedLength = inc(\"fixedLength/fixedLength\")(o);\n    o.cursor = inc(\"cursor/cursor\")(o);\n    o.placeholder = inc(\"placeholder/placeholder\")(o);\n    o.icons = inc(\"icons/icons\")(o);\n    o.screenKeyboard = inc(\"screenKeyboard/screenKeyboard\")(o);\n    o.externalKeyboard = inc(\"externalKeyboard/externalKeyboard\")(o);\n    o.enable = inc(\"enable/enable\")(o);\n    o.disable = inc(\"disable/disable\")(o);\n    o.start = inc(\"start/start\")(o);\n    o.stop = inc(\"stop/stop\")(o);\n    o.click = inc(\"click/click\")(o);\n    o.onKey = inc(\"onKey/onKey\")(o);\n    o.addChar = inc(\"addChar/addChar\")(o);\n    o.change = inc(\"change/change\")(o);\n    o.submit = inc(\"submit/submit\")(o);\n    o.setValue = inc(\"setValue/setValue\")(o);\n    o.getValue = inc(\"getValue/getValue\")(o);\n    o.setSelectedValue = inc(\"setSelectedValue/setSelectedValue\")(o);\n    o.getSelectedValue = inc(\"getSelectedValue/getSelectedValue\")(o);\n    o.selection = inc(\"selection/selection\")(o);\n    o.scrollToCursor = inc(\"scrollToCursor/scroll\")(o);\n    o.cut = inc(\"clipboardCut/cut\")(o);\n    o.copy = inc(\"clipboardCopy/copy\")(o);\n    o.paste = inc(\"clipboardPaste/paste\")(o);\n    o.history = inc(\"history/history\")(o);\n    o.deleteSelection = function(){\n      return o.selection['delete']();\n    };\n    div = o.div;\n    div.start = o.start;\n    div.stop = o.stop;\n    div.setValue = o.setValue;\n    div.getValue = o.getValue;\n    div.setSelectedValue = o.setSelectedValue;\n    div.getSelectedValue = o.getSelectedValue;\n    div.addChar = o.addChar;\n    div.submit = o.submit;\n    div.isDesktop = function(){\n      return o.isDesktop;\n    };\n    div.isStarted = function(){\n      return o.isStarted && o.div.isVisible();\n    };\n    div.selectAll = function(){\n      return o.selection.selectAll();\n    };\n    div.deleteSelection = o.deleteSeclection;\n    div.enable = o.enable;\n    div.disable = o.disable;\n    div.cut = o.cut;\n    div.copy = o.copy;\n    div.paste = o.paste;\n    div.undo = o.history.undo;\n    div.redo = o.history.redo;\n    if (o.value) {\n      div.setValue(o.value);\n    }\n    return div;\n  };\n})();","updated":"2022-02-28T14:52:59.373711"},{"path":"lib/gui/input2/setValue/setValue.ls","text":"(function(){\n  return function(o){\n    return function(v, p){\n      var i$, ref$, len$, el;\n      v = v != null ? v : \"\";\n      v = v + \"\";\n      for (i$ = 0, len$ = (ref$ = o.div.find(\".inputChar\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        el.remove();\n      }\n      while (v.length > 0) {\n        if (v.indexOf(\"\\n\") === 0) {\n          if (o.multiline) {\n            o.addChar(\"<br>\");\n          } else {\n            o.addChar(\" \");\n          }\n          v = v.slice(1);\n        } else {\n          o.addChar(v.charAt(0));\n          v = v.slice(1);\n        }\n      }\n      if (o.textMode === \"password\" && !o.showPassword) {\n        if ((ref$ = _.last(o.div.find(\".password\"))) != null) {\n          ref$.hideChar();\n        }\n      }\n      o.change(v, {\n        disableTimeout: true,\n        disableHistory: p != null ? p.disableHistory : void 8\n      });\n      return o.div;\n    };\n  };\n})();","updated":"2022-02-28T14:52:59.373711"},{"path":"lib/gui/input2/setSelectedValue/setSelectedValue.ls","text":"(function(){\n  return function(o){\n    return function(v){\n      var i$, ref$, len$, c;\n      o.selection['delete']();\n      v = v != null ? v : \"\";\n      v = v + \"\";\n      for (i$ = 0, len$ = (ref$ = Array.from(v)).length; i$ < len$; ++i$) {\n        c = ref$[i$];\n        if (c === \"\\n\") {\n          if (o.multiline) {\n            o.addChar(\"<br>\");\n          } else {\n            o.addChar(\" \");\n          }\n        } else {\n          o.addChar(c);\n        }\n      }\n      if (o.textMode === \"password\" && !o.showPassword) {\n        if ((ref$ = _.last(o.div.find(\".password\"))) != null) {\n          ref$.hideChar();\n        }\n      }\n      o.change(v, {\n        disableTimeout: true\n      });\n      return o.div;\n    };\n  };\n})();","updated":"2022-02-28T14:52:59.373711"},{"path":"lib/gui/divEditable/onMouseDown/on.ls","text":"(function(){\n  var isDesktop;\n  isDesktop = inc(\"/lib/util/isDesktop/isDesktop\")();\n  return function(d, e){\n    d.start();\n    if (!isDesktop) {\n      return;\n    }\n    if (d.softKeyboardMode === \"noneFake\") {\n      return d.tapCustomSelect(e);\n    } else {\n      return inc(\"fixDoubleClickLineEnd/fix\")(d, e);\n    }\n  };\n})();","updated":"2024-05-22T14:13:54.890684"},{"path":"pages/static/jobs/image/image.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/gui/image/image\")({\n      id: \"solocode_anton-employees4\",\n      fileFolder: \"media/static/_images\"\n    }).css({\n      width: \"15em\",\n      height: \"15em\",\n      marginBottom: \"0.8em\"\n    });\n  };\n})();","updated":"2022-03-03T10:03:29.939799"},{"path":"lib/util/startPage/pageFinish/finish.ls","text":"(function(){\n  return function(oldPW){\n    var p, ref$, ref1$, i$, ref2$, len$, el;\n    p = oldPW;\n    if (!p.pageScrollWrapper) {\n      return;\n    }\n    app.pageScrollPositions[app.lastPagePath] = p.pageScrollWrapper.scrollTop;\n    p.removeClass(\"pageWrapper\").addClass(\"pageWrapperOld\");\n    p.page.removeClass(\"page\").addClass(\"pageOld\");\n    p.pageScrollWrapper.removeClass(\"pageScrollWrapper\").addClass(\"pageScrollWrapperOld\");\n    p.pageSpacer.removeClass(\"pageSpacer\").addClass(\"pageSpacerOld\");\n    if ((ref$ = p.findFirst(\".topBar\")) != null) {\n      ref$.removeClass(\"topBar\").addClass(\"topBarOld\");\n    }\n    if ((ref1$ = p.findFirst(\".bottomBar\")) != null) {\n      ref1$.removeClass(\"bottomBar\").addClass(\"bottomBarOld\");\n    }\n    for (i$ = 0, len$ = (ref2$ = p.find(\".hideOnNextPageStart\")).length; i$ < len$; ++i$) {\n      el = ref2$[i$];\n      el.hide();\n    }\n    return p;\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"pages/level/finishLevel/buttonRepeat/button.ls","text":"(function(){\n  return function(level){\n    var click;\n    click = function(){\n      return startPage({\n        history: -1\n      });\n    };\n    return Button({\n      icon: path(\"/lib/svg/icon/refresh.svg\"),\n      action: click,\n      key: 49\n    }).css({\n      margin: \"0.25em\",\n      marginTop: level.type === \"bulb\" ? \"1em\" : void 8\n    }).attr({\n      \"aria-label\": T(\"again\"),\n      role: \"button\"\n    });\n  };\n})();","updated":"2022-03-03T10:03:29.939799"},{"path":"pages/static/jobs/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: \"jobs\",\n      title: T(\"urlTitle\"),\n      metaDescription: T(\"metaDescr\"),\n      noIndex: true\n    };\n  };\n})();","updated":"2022-03-03T10:03:29.939799"},{"path":"pages/level/finishLevel/calcCoins/firstLevelFinishCoin/calc.ls","text":"(function(){\n  return function(){\n    var isFirstLevelFinish;\n    isFirstLevelFinish = log.list(\"finishLevel\").length <= 1 && log.findLast(\"adjustCoins\") == null;\n    if (!isFirstLevelFinish) {\n      return {\n        type: \"firstLevelFinishCoin\",\n        gotCoin: false\n      };\n    }\n    inc(\"../_shared/setNextTotalStarsNeeded/set\")();\n    return {\n      type: \"firstLevelFinishCoin\",\n      gotCoin: true,\n      pagePath: path(\"/pages/level/afterFinish/pages/newCoin/addCoin/page\"),\n      pageParams: {\n        isFirstCoinEver: true\n      }\n    };\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/init/classKit/setContent/setContent.ls","text":"(function(){\n  return function(cb){\n    var lastSetAt, d;\n    if (cb == null) {\n      lastSetAt = Store(\"classKitContentSetAt\");\n      if (lastSetAt != null && (d = new Date(lastSetAt))) {\n        if (new Date() - d < 24 * 60 * 60 * 1000) {\n          return;\n        }\n      }\n    }\n    Store(\"classKitContentSetAt\", new Date().toISOString());\n    return inc(\"setClassKitData/set\")(cb);\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/init/classKit/init.ls","text":"(function(){\n  return function(){\n    var ref$;\n    if (!engine.isiOsApp || !((ref$ = window.ClassKitPlugin) != null && ref$.isSupported)) {\n      delete window.ClassKitPlugin;\n    }\n    if (window.ClassKitPlugin == null) {\n      return;\n    }\n    inc(\"setContent/setContent\")();\n    return inc(\"handleDeeplinks/handle\")();\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/init/classKit/handleDeeplinks/handle.ls","text":"(function(){\n  return function(){\n    return window.ClassKitPlugin.subscribe(function(identifierPath, error){\n      if (error != null) {\n        return;\n      }\n      return inc(\"startActivity/start\")(identifierPath);\n    });\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/init/classKit/handleDeeplinks/startActivity/start.ls","text":"(function(){\n  return function(identifierPath){\n    var formatPuid, blockPuid, ref$;\n    if (identifierPath.length < 3) {\n      debug(\"classkit identifierPath doesn't contain all the needed information\");\n      debug(identifierPath);\n      return;\n    }\n    formatPuid = function(s){\n      var last;\n      s = s.split(\"-\");\n      last = s.pop();\n      return s.join(\"-\") + \"/\" + last;\n    };\n    blockPuid = formatPuid(identifierPath[2]);\n    if (typeof log != 'undefined' && log !== null) {\n      log.log({\n        event: \"debugClassKitStartActivity\",\n        blockPuid: blockPuid\n      });\n      inc(\"startBlockPage/start\")(blockPuid);\n      delete ClassKitPlugin.lastIdentifierPath;\n      return ref$ = ClassKitPlugin.lastIdentifierDate, delete ClassKitPlugin.lastIdentifierDate, ref$;\n    } else {\n      deviceLog.log({\n        event: \"deviceDebugClassKitStartActivity\",\n        blockPuid: blockPuid\n      });\n      ClassKitPlugin.lastIdentifierPath = identifierPath;\n      return ClassKitPlugin.lastIdentifierDate = new Date();\n    }\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/init/classKit/levelPlayer/finish/calcResult/calc.ls","text":"(function(){\n  return function(p, onDone){\n    var block, events, loadBlock, getEvents, calcResult;\n    block = null;\n    events = [];\n    loadBlock = function(){\n      return inc(\"/lib/util/loadBlock/load\")({\n        path: p.level.parentBlock.path,\n        fileApi: deviceLog['var'](\"loadDevelopContent\") ? \"filesCalcDevelop\" : \"files\",\n        onLoaded: function(b){\n          block = b;\n          return getEvents();\n        },\n        onError: function(error){\n          return debug(error);\n        }\n      });\n    };\n    getEvents = function(){\n      var i$, ref$, len$, level, e;\n      for (i$ = 0, len$ = (ref$ = block.levels).length; i$ < len$; ++i$) {\n        level = ref$[i$];\n        e = typeof log != 'undefined' && log !== null ? log.findLast({\n          event: \"finishLevel\",\n          puid: level.puid\n        }) : void 8;\n        if (e) {\n          events.push(e);\n        }\n      }\n      return calcResult();\n    };\n    calcResult = function(){\n      var levelsWithScore, result;\n      levelsWithScore = _.filter(events, function(e){\n        return +e.score > 0;\n      }).length;\n      result = {\n        progress: levelsWithScore / block.levels.length,\n        maxStars: _.sumBy(block.levels, function(l){\n          if (l.type === \"bulb\") {\n            return 1;\n          } else {\n            return 3;\n          }\n        }),\n        stars: _.sumBy(events, function(e){\n          return +e.score;\n        })\n      };\n      return onDone(result);\n    };\n    return loadBlock();\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/init/classKit/setContent/setClassKitData/calcClassKitPlan/calc.ls","text":"(function(){\n  return function(plan, i){\n    var removeHtml, data, ref$;\n    removeHtml = inc(\"../../../_shared/removeHtmlFormatting/remove\");\n    data = {\n      id: (ref$ = plan.puid) != null ? ref$.replace(\"/\", \"-\") : void 8,\n      title: removeHtml(plan.title),\n      contextType: \"CLSContextTypeChapter\",\n      contextTopic: inc(\"../../../_shared/calcContextTopic/calc\")(plan.subject),\n      displayOrder: i,\n      children: _.flatMap(plan.topics, function(topic, j){\n        var id, ref$, title;\n        id = (ref$ = topic.puid) != null ? ref$.replace(\"/\", \"-\") : void 8;\n        title = removeHtml(topic.title);\n        if (!id || !title) {\n          return;\n        }\n        return {\n          id: id,\n          title: title,\n          contextType: \"CLSContextTypeChapter\",\n          displayOrder: j,\n          children: _.flatMap(topic.blocks, function(block, k){\n            var id, ref$, title;\n            id = (ref$ = block.puid) != null ? ref$.replace(\"/\", \"-\") : void 8;\n            title = removeHtml(block.title);\n            if (!id || !title) {\n              return [];\n            }\n            return {\n              id: id,\n              title: title,\n              contextType: \"CLSContextTypeLesson\",\n              displayOrder: k\n            };\n          })\n        };\n      })\n    };\n    return data;\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"pages/misc/password/reset/02_enterRecoveryMailOrPhone/_t.ls","text":"(function(){\n  return {\n    emptyField: {\n      de: \"Bitte trage etwas ein.\",\n      en: \"Please enter something.\",\n      fr: \"Merci d'entrer quelque chose.\",\n      es: \"Por favor, escribe algo.\",\n      pt: \"Por favor, escreva algo.\"\n    },\n    inputMailOrPhone: {\n      de: \"Bitte trage deine hinterlegte $1 ein:\",\n      en: \"Please enter your given $1.\",\n      fr: \"Merci d'entrer ton $1.\",\n      es: \"Por favor, ingresa tu $1.\",\n      pt: \"Por favor, digite seu $1.\"\n    },\n    errorWrongOptionEmail: {\n      de: \"Die angegebene E-&#65279;Mail-Adresse ist nicht in deinem ANTON-Konto gespeichert.\",\n      en: \"This email address is not connected to your account.\",\n      fr: \"Cette adresse e-mail n'est pas connectée à ton compte.\",\n      es: \"Este correo electrónico no está registrada en tu cuenta.\",\n      pt: \"Este endereço de e-mail não está registrado em sua conta.\"\n    },\n    errorWrongOptionPhone: {\n      de: \"Die angegebene Handynummer ist nicht in deinem ANTON-Konto gespeichert.\",\n      en_gb: \"This mobile phone number is not connected to your account.\",\n      en: \"This cell phone number is not connected to your account.\",\n      fr: \"Ce numéro de téléphone n'est pas connecté à ton compte.\",\n      es: \"Este número de teléfono no está registrado en tu cuenta.\",\n      pt: \"Este número de telefone não está registrado em sua conta.\"\n    },\n    errorMessage: {\n      de: \"Ups, etwas ist schief gegangen!\",\n      en: \"Oops, something has gone wrong!\",\n      fr: \"Oups… Il y a eu un problème&nbsp;!\",\n      es: \"¡Ups! Algo salió mal\",\n      pt: \"Ops! Algo deu errado!\"\n    },\n    errorTooManyRequested: {\n      de: \"Aus Sicherheitsgründen kannst du erst in (($1 Minute | $1 Minuten)) einen neuen Code anfordern.\",\n      en: \"Due to security reasons, you will need to wait (($1 minute | $1 minutes)) before you are able to request a new code.\",\n      fr: \"Pour des raisons de sécurité, tu dois attendre (($1 minute | $1 minutes)) avant de pouvoir demander un nouveau code.\",\n      es: \"Por motivos de seguridad, debes esperar (($1 minuto | $1 minutos)) antes de solicitar un nuevo código.\",\n      pt: \"Por motivos de segurança, você só poderá solicitar um novo código em (($1 minuto | $1 minutos)).\"\n    }\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"pages/level/finishLevel/buttonContinue/button.ls","text":"(function(){\n  return function(level){\n    var up, longDown;\n    up = function(){\n      return inc(\"../../afterFinish/start/start\")(level);\n    };\n    longDown = function(){\n      return inc(\"../../afterFinish/startDebugPopup/popup\")(level);\n    };\n    return Button({\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      label: T(\"continueButton\"),\n      iconPosition: \"right\"\n    }).css({\n      margin: \"0.25em\"\n    }).tap({\n      up: up,\n      longDown: engine.isDebug ? longDown : void 8\n    }).addClass(\"keyManager-enter\").bind(\"keyManager\", up).attr({\n      \"aria-label\": T(\"continueButton\"),\n      role: \"button\"\n    });\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/gui/noPlusFamilyPopup/button/button.ls","text":"(function(){\n  return function(){\n    return Button({\n      label: T(\"ok\")\n    }).css({\n      minWidth: \"6em\",\n      marginBottom: \"0.2em\"\n    }).tap(function(){\n      return app.currentPopup.close();\n    });\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/gui/noSchoolLicensePopup/_t.ls","text":"(function(){\n  return {\n    needAntonSchool: {\n      de: \"Diese Funktion kannst du mit ANTON-&#65279;Plus&nbsp;Lehrer oder der ANTON-&#65279;Schullizenz nutzen.\",\n      en_gb: \"You can use this function with ANTON&nbsp;Plus&nbsp;Teacher or an ANTON School Licence.\",\n      en: \"You can use this function with ANTON&nbsp;Plus&nbsp;Teacher or an ANTON School License.\",\n      fr: \"Tu peux utiliser cette fonction avec ANTON-Plus&nbsp;Prof ou avec une licence scolaire ANTON.\",\n      es: \"Puedes acceder a esta función con ANTON-&#65279;Plus&nbsp;Docente o con la Licencia Escolar ANTON.\",\n      pt: \"Você pode utilizar esta função com ANTON-&#65279;Plus&nbsp;Docente ou com a Licença Escolar ANTON.\"\n    },\n    moreInfo: {\n      de: \"Mehr zur ANTON-Schullizenz\",\n      en_gb: \"More information about the ANTON School Licence\",\n      en: \"More info about the ANTON School License\",\n      fr: \"En savoir plus sur la licence scolaire ANTON\",\n      es: \"Más información sobre la Licencia Escolar ANTON\",\n      pt: \"Mais informações sobre a Licença Escolar ANTON\"\n    }\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/gui/noSchoolLicensePopup/popup.ls","text":"(function(){\n  return function(infoText){\n    var div;\n    infoText == null && (infoText = T(\"needAntonSchool\"));\n    div = Div({\n      padding: \"1em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/illustration/school-license.svg\"),\n      size: \"4em\"\n    }), Div({\n      margin: \"1em 0\",\n      lineHeight: \"1.5em\"\n    }).html(infoText), inc(\"button/button\")());\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/noSchoolLicensePopup/button/button.ls","text":"(function(){\n  return function(){\n    return Button({\n      label: T(\"moreInfo\"),\n      labelAllowWrap: true\n    }).tap(function(){\n      return startPage({\n        path: path(\"/pages/static/schoolLicense/page\"),\n        animation: \"slideUp\"\n      });\n    });\n  };\n})();","updated":"2022-04-13T07:10:54.967303"},{"path":"lib/svg/shape/arrow-down-sort.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 170 234\">\n  <path d=\"M101 140V35H71v105H26l60 59 59-59h-44Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"addons/navbar/bar/user/user/items/itemExit/item.ls","text":"(function(){\n  return function(){\n    var savedUsers, userIsSaved;\n    savedUsers = inc(\"/lib/util/storedUsers/users/users\")();\n    userIsSaved = _.some(savedUsers, {\n      l: typeof log != 'undefined' && log !== null ? log.id() : void 8\n    });\n    return {\n      label: userIsSaved\n        ? T(\"switchAccount\")\n        : T(\"logout\"),\n      selected: false,\n      icon: path(\"/lib/svg/shape/exit.svg\"),\n      click: function(){\n        if (typeof log != 'undefined' && log !== null) {\n          log.log({\n            event: \"sessionEnd\",\n            type: \"manual\"\n          });\n        }\n        return startPage({\n          path: path(\"/pages/start/exitUser/page\"),\n          params: {\n            logoutType: \"main_menu\"\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2023-05-31T20:42:53.894637"},{"path":"lib/gui/errorPopup/popup.ls","text":"(function(){\n  return function(o){\n    var div, popup;\n    o == null && (o = {});\n    o.label == null && (o.label = T(\"errorMessage\"));\n    div = Div({\n      margin: \"1em 0\"\n    }).html(Div({\n      padding: \"0 1em\",\n      lineHeight: \"1.5em\"\n    }).html(o.label), Button({\n      label: T(\"closeButton\")\n    }).css({\n      marginTop: \"1em\",\n      minWidth: \"6em\"\n    }).tap({\n      up: function(){\n        return popup.close();\n      },\n      key: \"esc\"\n    }));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: o.onClose,\n      animationOnShow: o.animationOnShow,\n      animationOnClose: o.animationOnClose,\n      animationDisableBackground: o.animationDisableBackground\n    });\n  };\n})();","updated":"2022-03-16T14:14:41.816215"},{"path":"lib/gui/divEditable/_shared/parseLineDiv/parse.ls","text":"(function(){\n  return function(d, lineDiv){\n    var a, res$, i$, ref$, len$, node, resultCharPos, resultPlain, result, errors, sPlain, sCharPos, s, sClean;\n    res$ = [];\n    for (i$ = 0, len$ = (ref$ = lineDiv.childNodes).length; i$ < len$; ++i$) {\n      node = ref$[i$];\n      if (node.nodeType === Node.TEXT_NODE) {\n        res$.push(inc(\"textNode/textNode\")(d, node));\n      } else if (node.attr(\"image_id\")) {\n        res$.push(inc(\"image/image\")(d, node));\n      } else if (node.attr(\"specialType\")) {\n        res$.push(inc(\"specialTag/specialTag\")(d, node));\n      } else if (node.attr(\"special_element\") === \"lineError\") {\n        res$.push(inc(\"lineError/lineError\")(d, node));\n      } else if (node.attr(\"special_element\") === \"userTag\") {\n        res$.push(inc(\"userTag/userTag\")(d, node));\n      } else if (node.attr(\"special_element\") === \"video\") {\n        res$.push(inc(\"video/video\")(d, node));\n      } else if (node.tagName === \"BR\") {\n        res$.push(inc(\"br/br\")(d, lineDiv));\n      } else if (node.nodeType === Node.ELEMENT_NODE) {\n        res$.push(inc(\"unsupportedElement/element\")(d, node));\n      }\n    }\n    a = res$;\n    resultCharPos = _.flatten(_.map(a, \"resultCharPos\"));\n    resultPlain = _.flatten(_.map(a, \"resultPlain\"));\n    result = _.flatten(_.map(a, \"result\"));\n    errors = _.flatten(_.map(a, \"errors\"));\n    sPlain = resultPlain.join(\"\");\n    sCharPos = resultCharPos.join(\"\");\n    s = result.join(\"\");\n    sClean = inc(\"../convertPlainString/convert\")(sPlain, d.parseMode);\n    lineDiv.charPosString = sCharPos;\n    lineDiv.cleanStringBefore = lineDiv.cleanString;\n    lineDiv.cleanString = sClean;\n    return {\n      resultPlain: sPlain,\n      resultClean: sClean,\n      resultCharPos: sCharPos,\n      result: s,\n      isConsistent: s === sClean\n    };\n  };\n})();","updated":"2022-05-25T14:12:51.988433"},{"path":"lib/gui/divEditable/cleanupLine/onChangeLine/on.ls","text":"(function(){\n  return function(d, lineDiv){\n    if (d.params.onChangeLine != null && d.isStarted && lineDiv.cleanString !== lineDiv.cleanStringBefore) {\n      return d.params.onChangeLine(lineDiv);\n    }\n  };\n})();","updated":"2022-03-16T14:14:41.816215"},{"path":"lib/gui/divEditable/_shared/parseLineDiv/lineError/lineError.ls","text":"(function(){\n  return function(d, node){\n    var errorText, t;\n    errorText = node.attr(\"lineError\");\n    t = \"[[lineError=\" + errorText + \"]]\";\n    return {\n      result: t,\n      resultPlain: t,\n      resultCharPos: \" \"\n    };\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/init/errorHandler/calcWarning/calc.ls","text":"(function(){\n  return function(d){\n    var warnings, isWarning, e;\n    warnings = [\"http request failed\", \"create lawnchair\", \"ResizeObserver\"];\n    isWarning = _.some(warnings, function(w){\n      return _.includes(d.message, w);\n    });\n    if (isWarning) {\n      try {\n        e = {\n          event: \"warning\",\n          message: d.message\n        };\n        if (typeof log != 'undefined' && log !== null) {\n          log.log(e);\n        }\n      } catch (e$) {}\n      try {\n        e = {\n          event: \"deviceWarning\",\n          message: d.message\n        };\n        if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n          deviceLog.log(e);\n        }\n      } catch (e$) {}\n      return true;\n    }\n  };\n})();","updated":"2022-03-17T13:14:03.076522"},{"path":"lib/gui/divEditable/cleanupLine/bindHandlerToNewImages/bind.ls","text":"(function(){\n  return function(lineDiv){\n    var images, i$, len$, image, results$ = [];\n    images = lineDiv.findAll(\"img\");\n    images = _.filter(images, function(i){\n      return !i.fixed;\n    });\n    for (i$ = 0, len$ = images.length; i$ < len$; ++i$) {\n      image = images[i$];\n      image.fixed = true;\n      results$.push(inc(\"../../createLineNodes/image/bindHandler/bind\")(image));\n    }\n    return results$;\n  };\n})();","updated":"2022-04-14T10:29:08.784852"},{"path":"pages/level/_shared/_urlDescriptionWithLevel/description.ls","text":"(function(){\n  return function(page){\n    var pageUrl;\n    if (page.params.context === \"idePreview\") {\n      return;\n    }\n    return {\n      pageUrl: pageUrl = inc(\"/data/content/calcLevelPageUrl/calc\")(page.params.levelPath),\n      title: inc(\"calcTitle/calc\")(page),\n      metaDescription: inc(\"calcMetaDescription/calc\")(page),\n      breadcrumbs: inc(\"calcBreadcrumbs/calc\")(page, pageUrl),\n      pageReady: page.level != null\n    };\n  };\n})();","updated":"2024-01-24T14:32:33.928193"},{"path":"lib/gui/divEditable/createLineNodes/lineError/lineError.ls","text":"(function(){\n  return function(part){\n    var errorText;\n    errorText = part.text.replace(\"[[lineError=\", \"\").replace(\"]]\", \"\");\n    return Div({\n      fontSize: \"0.85em\",\n      pointerEvents: \"none\",\n      userSelect: \"none\",\n      background: Color.red[50],\n      color: Color.red[500],\n      padding: \"0 0.3em\"\n    }).addClass(\"lineError\").attr({\n      lineError: errorText,\n      special_element: \"lineError\",\n      contenteditable: \"false\"\n    }).html(errorText);\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/createLineNodes/specialTag/specialTag.ls","text":"(function(){\n  return function(part){\n    var t, specialType, text, el;\n    t = part.text;\n    specialType = t.split(\"special=\")[1].split(\",\")[0];\n    text = t.split(\", text=\")[1];\n    text = text.substr(0, text.length - 2);\n    el = document.createElement(\"specialTag\").attr({\n      specialType: specialType\n    }).css({\n      display: \"inline\",\n      color: specialType === \"bracket\"\n        ? Color.grey[500]\n        : specialType === \"equal\" ? Color.red[600] : void 8\n    }).html(text);\n    el.ignoreGhostMouseEvents = false;\n    return el;\n  };\n})();","updated":"2022-04-14T10:29:08.784852"},{"path":"lib/gui/divEditable/getSelectionRange/get.ls","text":"(function(){\n  return function(d, positions){\n    var getNode, p, r, n1, n2;\n    getNode = inc(\"../_shared/lineCharPosition/getNode/get\");\n    p = positions;\n    r = document.createRange();\n    n1 = getNode(p.start.lineDiv, p.start.charPos);\n    n2 = getNode(p.end.lineDiv, p.end.charPos);\n    r.setStart(n1.node, n1.offset);\n    r.setEnd(n2.node, n2.offset);\n    return r;\n  };\n})();","updated":"2022-04-14T10:29:08.784852"},{"path":"lib/gui/divEditable/onMutation/onChangeWord/on.ls","text":"(function(){\n  return function(d){\n    var p, s, s2, a, currentWord;\n    if (d.params.onChangeWord == null) {\n      return;\n    }\n    p = d.lastChangeSelectionPositions;\n    s = p.start.lineDiv.charPosString;\n    if (!s) {\n      return;\n    }\n    s2 = s.substr(0, p.start.charPos);\n    a = s2.split(\" \");\n    currentWord = _.last(a);\n    return d.params.onChangeWord(currentWord, d);\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/newTag/newTag.ls","text":"(function(){\n  return function(isNewUntil){\n    var d, ref$;\n    d = inc(\"/lib/util/convertTimeString/convert\")(_.isObject(isNewUntil)\n      ? (ref$ = twitch(isNewUntil)) != null ? ref$ : \"\"\n      : isNewUntil != null ? isNewUntil : \"\");\n    if (arguments.length === 0 || d > new Date()) {\n      return Div({\n        display: \"inline-flex\",\n        color: \"white\",\n        backgroundColor: Color.blue[500],\n        padding: \"0 0.15em\",\n        lineHeight: \"1.3em\",\n        borderRadius: \"2px\",\n        fontSize: \"0.7em\",\n        fontStyle: \"normal\",\n        fontWeight: \"normal\",\n        verticalAlign: \"0.15em\"\n      }).html(T(\"new\"));\n    }\n  };\n})();","updated":"2022-09-01T12:42:01.851253"},{"path":"lib/gui/divEditable/insertAtCursor/contentEditable/insert.ls","text":"(function(){\n  return function(d, v){\n    var text, lines, i$, len$, i, line, html, results$ = [];\n    text = v;\n    if (text.length === 0) {\n      return;\n    }\n    lines = text.split(\"\\n\");\n    for (i$ = 0, len$ = lines.length; i$ < len$; ++i$) {\n      i = i$;\n      line = lines[i$];\n      if (i > 0) {\n        document.execCommand(\"insertParagraph\", false);\n      }\n      if (line.length > 0) {\n        html = d.createLineNodes(line, {\n          returnHtml: true\n        });\n        results$.push(document.execCommand(\"insertHtml\", false, html));\n      }\n    }\n    return results$;\n  };\n})();","updated":"2022-04-14T10:29:08.784852"},{"path":"lib/gui/divEditable/history/_applySnapshot/apply.ls","text":"(function(){\n  return function(d, snapshot){\n    var i$, ref$, len$, i, lineDiv, historyLine, totalVisibleLines, totalHistoryLines, s;\n    for (i$ = 0, len$ = (ref$ = d.div.childrenAll()).length; i$ < len$; ++i$) {\n      i = i$;\n      lineDiv = ref$[i$];\n      historyLine = snapshot.lines[i];\n      if (!historyLine) {\n        lineDiv.remove();\n      } else if (lineDiv.cleanString !== historyLine.cleanString) {\n        lineDiv.html(d.createLineNodes(historyLine.cleanString));\n      }\n    }\n    totalVisibleLines = d.div.childrenAll().length;\n    totalHistoryLines = snapshot.lines.length;\n    if (totalVisibleLines < snapshot.lines.length) {\n      d.div.append((function(){\n        var i$, to$, results$ = [];\n        for (i$ = totalVisibleLines, to$ = totalHistoryLines - 1; i$ <= to$; ++i$) {\n          i = i$;\n          s = snapshot.lines[i].cleanString;\n          lineDiv = Div().html(d.createLineNodes(s));\n          d.cleanupLine(lineDiv);\n          results$.push(lineDiv);\n        }\n        return results$;\n      }()));\n    }\n    return d.setSelectionPositions(snapshot.selectionPositions);\n  };\n})();","updated":"2022-04-14T10:29:08.784852"},{"path":"lib/gui/drawerMenu/menuRows/rowFolder/row.ls","text":"(function(){\n  return function(o, item){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      paddingLeft: \"1em\"\n    }).html(inc(\"label/label\")(item), inc(\"isDebugIcon/isDebugIcon\")(item), inc(\"isNewTag/tag\")(item)).tap({\n      animation: \"hover\",\n      up: function(){\n        return o.openFolder(item);\n      }\n    });\n  };\n})();","updated":"2022-08-30T13:13:36.645667"},{"path":"lib/gui/drawerMenu/menuRows/rowFolder/isNewTag/tag.ls","text":"(function(){\n  return function(item){\n    var newestUntil, ref$;\n    if (item.newTag) {\n      return inc(\"/lib/gui/newTag/newTag\")().css({\n        marginRight: \"0.5em\"\n      });\n    } else {\n      newestUntil = inc(\"calcNewestUntil/calc\")(item);\n      return (ref$ = inc(\"/lib/gui/newTag/newTag\")(newestUntil)) != null ? ref$.css({\n        marginRight: \"0.5em\"\n      }) : void 8;\n    }\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"lib/gui/divEditable/_shared/parseLineDiv/textNode/textNode.ls","text":"(function(){\n  return function(d, node){\n    var t, a;\n    t = node.textContent;\n    a = t.split(\"\\n\");\n    if (a.length > 1) {\n      d.debug(\"linebreak(s) inside textNode\");\n      return {\n        result: \"BAD LINEBREAK\" + t,\n        resultPlain: a.join(\"\")\n      };\n    }\n    return {\n      result: t,\n      resultPlain: t,\n      resultCharPos: t\n    };\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/_shared/parseLineDiv/unsupportedElement/element.ls","text":"(function(){\n  return function(d, node){\n    var p;\n    d.debug(\"flatten unsupported element <\" + node.tagName + \">\");\n    p = inc(\"../parse\")(d, node);\n    return {\n      result: \"FLATTEN UNSUPPORTED ELEMENT\" + p.result,\n      resultPlain: p.resultPlain,\n      resultCharPos: p.resultPlain\n    };\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/insertAtCursor/contentEditableNoExec/restOfLineElements/append/append.ls","text":"(function(){\n  return function(prevElement, restOfLineElements){\n    var el2, i$, len$, el, results$ = [];\n    el2 = prevElement;\n    for (i$ = 0, len$ = restOfLineElements.length; i$ < len$; ++i$) {\n      el = restOfLineElements[i$];\n      el2.after(el);\n      results$.push(el2 = el);\n    }\n    return results$;\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/insertAtCursor/contentEditableNoExec/setCursorsAfterElement/set.ls","text":"(function(){\n  return function(el){\n    var sel, r, i$, ref$, len$, index, n;\n    sel = window.getSelection();\n    r = document.createRange();\n    if (el.isLineDiv) {\n      r.setStart(el, 0);\n    } else {\n      for (i$ = 0, len$ = (ref$ = el.parentNode.childNodes).length; i$ < len$; ++i$) {\n        index = i$;\n        n = ref$[i$];\n        if (n === el) {\n          break;\n        }\n      }\n      r.setStart(el.parentNode, index + 1);\n    }\n    sel.removeAllRanges();\n    return sel.addRange(r);\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/_shared/lineCharPosition/getNode/get.ls","text":"(function(){\n  return function(lineDiv, pos){\n    var flatNodes, offset, i$, len$, node, nodeOffset, index;\n    flatNodes = inc(\"getFlatNodes/get\")(lineDiv);\n    offset = 0;\n    for (i$ = 0, len$ = flatNodes.length; i$ < len$; ++i$) {\n      node = flatNodes[i$];\n      offset += node.nodeType === 3\n        ? node.textContent.length\n        : typeof node.attr == 'function' && node.attr(\"special_element\")\n          ? 1\n          : node.textContent.length;\n      if (offset >= pos) {\n        break;\n      }\n    }\n    if (offset < pos) {\n      pos = offset;\n    }\n    if (flatNodes.length === 0) {\n      node = lineDiv;\n      nodeOffset = 0;\n    } else if (node.nodeType === 3) {\n      nodeOffset = pos - (offset - node.textContent.length);\n    } else if (typeof node.attr == 'function' && node.attr(\"special_element\")) {\n      index = _.indexOf(lineDiv.childNodes, node);\n      node = lineDiv;\n      nodeOffset = offset === pos ? index + 1 : index;\n    }\n    return {\n      node: node,\n      offset: nodeOffset\n    };\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/_shared/lineCharPosition/calcPosition/getNodeBefore/get.ls","text":"(function(){\n  return function(n){\n    var that, p;\n    if (n.isLineDiv) {\n      return undefined;\n    } else if (n.isDivEditable) {\n      return undefined;\n    } else if (that = n.previousSibling) {\n      return that;\n    } else {\n      p = n.parentNode;\n      if (p != null) {\n        return inc(THISFILE)(p);\n      } else {\n        return undefined;\n      }\n    }\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/insertAtCursor/contentEditableNoExec/restOfLineElements/get/get.ls","text":"(function(){\n  return function(prevElement){\n    var rest, lineDiv, nodes, index, res$, i$, to$, i;\n    if (prevElement.isLineDiv) {\n      rest = prevElement.childNodes;\n    } else {\n      lineDiv = inc(\"../../../../_shared/getParentLine/get\")(prevElement);\n      nodes = lineDiv.childNodes;\n      index = _.indexOf(lineDiv.childNodes, prevElement);\n      res$ = [];\n      for (i$ = index + 1, to$ = nodes.length - 1; i$ <= to$; ++i$) {\n        i = i$;\n        res$.push(nodes[i]);\n      }\n      rest = res$;\n    }\n    return _.filter(rest, function(el){\n      return el.tagName !== \"BR\";\n    });\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/_shared/lineCharPosition/getNode/getFlatNodes/get.ls","text":"(function(){\n  return function(el){\n    var a, i$, ref$, len$, node, a2, j$, ref1$, len1$, n;\n    a = [];\n    for (i$ = 0, len$ = (ref$ = el.childNodes).length; i$ < len$; ++i$) {\n      node = ref$[i$];\n      if (node.nodeType === 3 || node.attr(\"special_element\")) {\n        a.push(node);\n      } else {\n        a2 = inc(THISFILE)(node);\n        for (j$ = 0, len1$ = (ref1$ = inc(THISFILE)(node)).length; j$ < len1$; ++j$) {\n          n = ref1$[j$];\n          a.push(n);\n        }\n      }\n    }\n    return a;\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/insertAtCursor/contentEditableNoExec/insert.ls","text":"(function(){\n  return function(d, v){\n    var text, lines, prevElement, restOfLineElements, i$, len$, i, line, insertNodes, j$, len1$, el;\n    text = v;\n    if (text.length === 0) {\n      return;\n    }\n    inc(\"deleteSelectionRang/delete\")(d);\n    lines = text.split(\"\\n\");\n    prevElement = inc(\"getPrevElement/get\")();\n    restOfLineElements = inc(\"restOfLineElements/get/get\")(prevElement);\n    for (i$ = 0, len$ = lines.length; i$ < len$; ++i$) {\n      i = i$;\n      line = lines[i$];\n      if (i > 0) {\n        prevElement = inc(\"addNewLineDiv/add\")(d, prevElement);\n      }\n      insertNodes = d.createLineNodes(line);\n      for (j$ = 0, len1$ = insertNodes.length; j$ < len1$; ++j$) {\n        el = insertNodes[j$];\n        if (prevElement.isLineDiv) {\n          prevElement.prepend(el);\n        } else {\n          prevElement.after(el);\n        }\n        prevElement = el;\n      }\n    }\n    if (lines.length > 0) {\n      inc(\"restOfLineElements/append/append\")(prevElement, restOfLineElements);\n    }\n    return inc(\"setCursorsAfterElement/set\")(prevElement);\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"lib/gui/divEditable/insertAtCursor/contentEditableNoExec/addNewLineDiv/add.ls","text":"(function(){\n  return function(d, prevElement){\n    var lastLineDiv, lineDiv;\n    lastLineDiv = prevElement.isLineDiv\n      ? prevElement\n      : inc(\"../../../_shared/getParentLine/get\")(prevElement);\n    lineDiv = Div();\n    lineDiv.isLineDiv = true;\n    lastLineDiv.after(lineDiv);\n    return lineDiv;\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/insertAtCursor/contentEditableNoExec/deleteSelectionRang/delete.ls","text":"(function(){\n  return function(d){\n    var sel, s;\n    sel = window.getSelection();\n    if (sel.isCollapsed) {\n      return;\n    }\n    document.execCommand(\"delete\");\n    s = d.getSelectionPositions();\n    d.cleanupLine(d.start.lineDiv);\n    return d.setSelectionPositions(s);\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/insertAtCursor/contentEditableNoExec/getPrevElement/get.ls","text":"(function(){\n  return function(){\n    var sel, node, offset, t, tLeft, tRight, nodeLeft, lineDiv;\n    sel = window.getSelection();\n    node = sel.anchorNode;\n    offset = sel.anchorOffset;\n    if (node.nodeType === 3) {\n      t = node.textContent;\n      tLeft = t.substr(0, offset);\n      tRight = t.substr(offset);\n      nodeLeft = document.createTextNode(tLeft);\n      node.textContent = tRight;\n      node.before(nodeLeft);\n      return nodeLeft;\n    } else if (offset === 0) {\n      lineDiv = node;\n      return lineDiv;\n    } else {\n      return node.childNodes[offset - 1];\n    }\n  };\n})();","updated":"2022-04-19T12:40:41.62866"},{"path":"lib/gui/divEditable/_shared/parseLineDiv/userTag/userTag.ls","text":"(function(){\n  return function(d, node){\n    var id, t;\n    id = node.attr(\"user_tag\");\n    t = \"[[userTag=\" + id + \"]]\";\n    return {\n      result: t,\n      resultPlain: t,\n      resultCharPos: \" \"\n    };\n  };\n})();","updated":"2022-04-20T13:28:35.820187"},{"path":"lib/gui/divEditable/createLineNodes/userTag/userTag.ls","text":"(function(){\n  return function(part, d){\n    var userId;\n    if (d.specialElements.userTag != null) {\n      return d.specialElements.userTag(part, d);\n    }\n    userId = part.text.replace(\"[[userTag=\", \"\").replace(\"]]\", \"\");\n    return Div().css({\n      display: \"inline-flex\",\n      userSelect: \"all\",\n      background: Color.blue[50],\n      margin: \"0 0.1em\"\n    }).addClass(\"user\").attr({\n      user_tag: userId,\n      special_element: \"userTag\",\n      contenteditable: \"false\"\n    }).html(part.text);\n  };\n})();","updated":"2022-04-20T13:28:35.820187"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/freezeMinHeight/init.ls","text":"(function(){\n  return function(pw){\n    var p;\n    p = pw.page;\n    p.enableFreezeMinHeight = function(){\n      return p.freezeMinHeight = true;\n    };\n    return p.disableFreezeMinHeight = function(){\n      p.css({\n        minHeight: \"\"\n      });\n      return p.freezeMinHeight = false;\n    };\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"lib/gui/inputEditable/setValue/set.ls","text":"(function(){\n  return function(i, v){\n    var ref$;\n    i.divEditable.setValue(v);\n    if ((ref$ = i.resetIcon) != null) {\n      ref$.update();\n    }\n    i.div.scrollLeft = 0;\n    return i.div.scrollTop = 0;\n  };\n})();","updated":"2024-04-23T09:55:49.362153"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/scrollElementIntoView/init.ls","text":"(function(){\n  return function(pw){\n    return pw.page.scrollElementIntoView = function(el, options){\n      requestAnimationFrame(function(){\n        return pw.page.updateLayout();\n      });\n      return pw.pageScrollWrapper.scrollElementIntoView(el, options);\n    };\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"lib/gui/inputEditable/start/start.ls","text":"(function(){\n  return function(selPos, i){\n    var pageWrapper, tempDiv;\n    pageWrapper = i.div.closest(\".pageWrapper\");\n    if (!engine.isDebug || !pageWrapper || pageWrapper.pageAnimationDone) {\n      i.divEditable.start(selPos);\n      return;\n    }\n    tempDiv = i.divEditable.cloneNode().css({\n      position: \"fixed\",\n      top: \"-10px\",\n      right: \"-10px\",\n      width: \"0em\",\n      height: \"0em\"\n    }).appendTo(body);\n    tempDiv.focus();\n    tempDiv.originalDivEditable = i.divEditable;\n    i.tempDiv = tempDiv;\n    i.div.onElementClass(\"onPageAnimationDone\", function(){\n      var ref$;\n      i.div.removeClass(\"onPageAnimationDone\");\n      if (i.divEditable.isVisible()) {\n        i.divEditable.start(selPos);\n      }\n      tempDiv.remove();\n      return ref$ = i.tempDiv, delete i.tempDiv, ref$;\n    });\n    return i.div.onDomRemove(function(){\n      return tempDiv.remove();\n    });\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"lib/gui/inputEditable/stop/stop.ls","text":"(function(){\n  return function(i){\n    var ref$;\n    if (i.div.hasClass(\"onPageAnimationDone\")) {\n      i.div.removeClass(\"onPageAnimationDone\");\n      if ((ref$ = i.tempDiv) != null) {\n        ref$.remove();\n      }\n      delete i.tempDiv;\n    }\n    return i.divEditable.stop();\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"lib/util/startPage/animations/start.ls","text":"(function(){\n  return function(o, oldPW, newPW){\n    var animation, start, finish;\n    animation = _.isString(o.animation)\n      ? o.animation\n      : o.animation.name;\n    start = function(){\n      newPW.addClass(\"keyManagerScope\");\n      app.startPageClickCatcher.show();\n      return inc(animation + \"/start\")(oldPW, newPW, o.animation, finish);\n    };\n    finish = function(){\n      var ref$, i$, ref1$, len$, el, results$ = [];\n      if ((ref$ = app.startPageClickCatcher) != null) {\n        ref$.hide();\n      }\n      newPW.removeClass(\"keyManagerScope\");\n      newPW.pageAnimationDone = true;\n      for (i$ = 0, len$ = (ref1$ = (newPW != null ? newPW.findAll(\".onPageAnimationDone\") : void 8) || []).length; i$ < len$; ++i$) {\n        el = ref1$[i$];\n        results$.push(el.onPageAnimationDone());\n      }\n      return results$;\n    };\n    return start();\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/init/bottom/init.ls","text":"(function(){\n  return function(pw){\n    if (!pw.pageCode.bottom) {\n      return;\n    }\n    return pw.bottom.html(pw.pageCode.bottom()).show();\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/init/navbar/init.ls","text":"(function(){\n  return function(pw){\n    var div;\n    if (!pw.pageCode.navCategory) {\n      app.navbar = null;\n      return;\n    }\n    div = app.navbarPosition === \"top\"\n      ? pw.navTop\n      : pw.navBottom;\n    return div.html(app.navbar = inc(\"/addons/navbar/navbar\")()).show();\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/init/scrollTop/init.ls","text":"(function(){\n  return function(pw, pagePath){\n    var scrollTop;\n    if (app.currentPage.params.history <= 0) {\n      scrollTop = app.pageScrollPositions[pagePath] || 0;\n      return pw.pageScrollWrapper.scrollTop = scrollTop;\n    }\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/init/statusBar/init.ls","text":"(function(){\n  return function(pw){\n    var color, that;\n    if (typeof StatusBar == 'undefined' || StatusBar === null) {\n      return;\n    }\n    color = (that = pw.pageCode.statusBarColor)\n      ? that\n      : pw.pageCode.top != null\n        ? Color.grey[75]\n        : Color.white;\n    StatusBar.styleDefault();\n    return StatusBar.setBackgroundColor(color);\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/init/top/init.ls","text":"(function(){\n  return function(pw){\n    var c;\n    c = pw.pageCode;\n    if (!c.top) {\n      return;\n    }\n    return pw.top.css({\n      boxShadow: \"0px 0px 7px rgba(0,0,0,0.1)\",\n      backgroundColor: c.statusBarColor || Color.grey[75]\n    }).html(c.top());\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/init/scrollElementIntoView/init.ls","text":"(function(){\n  return function(pw){\n    return pw.page.scrollElementIntoView = function(el, options){\n      var wait, scroll;\n      wait = function(){\n        var centerDuration, changeAt, age;\n        centerDuration = pw.page.centerDuration;\n        changeAt = pw.lastPageTopChangeAt;\n        age = new Date() - changeAt;\n        if (centerDuration === 0 || !changeAt || age > centerDuration) {\n          return scroll();\n        } else {\n          return scroll();\n        }\n      };\n      scroll = function(){\n        requestAnimationFrame(function(){\n          return pw.page.updateLayout();\n        });\n        return pw.pageScrollWrapper.scrollElementIntoView(el, options);\n      };\n      return requestAnimationFrame(function(){\n        return wait();\n      });\n    };\n  };\n})();","updated":"2022-06-15T13:22:27.970972"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcSoftKeyboardBottom/popup/popup.ls","text":"(function(){\n  return function(pw, h){\n    pw.popupBottom.css({\n      backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n      paddingBottom: h + \"px\"\n    }).show();\n    return pw.popupWrapper.visibleSoftKeyboard = h > 0;\n  };\n})();","updated":"2022-05-09T11:10:59.830354"},{"path":"pages/static/jobs/row/row.ls","text":"(function(){\n  return function(o){\n    return Div({\n      margin: \"0 auto 0.5em\",\n      padding: \"0.1em 0.5em 0.2em\"\n    }).html(inc(\"/lib/seo/element/a2/a\")({\n      html: o.label,\n      pageUrl: o.pageUrl\n    })).tap(function(){\n      return startPage({\n        path: o.pagePath,\n        animation: \"slideLeft\"\n      });\n    });\n  };\n})();","updated":"2022-05-09T13:42:18.320419"},{"path":"lib/init/errorHandler/logUserError/log.ls","text":"(function(){\n  return function(e){\n    var e2, isRecurrentError;\n    try {\n      e2 = _.omit(e, [\"logId\", \"src\", \"created\"]);\n      isRecurrentError = inc(\"../detectRecurrentError/detect\")(e2, \"user\");\n      if (!isRecurrentError) {\n        return log.log(e2);\n      }\n    } catch (e$) {}\n  };\n})();","updated":"2025-09-25T13:40:14.718379"},{"path":"data/content/setCurrentBlock/set.ls","text":"(function(){\n  return function(o){\n    var e;\n    if (!window.log) {\n      return;\n    }\n    e = log.findLast({\n      event: \"setCurrentBlock\",\n      plan: o.planPath\n    });\n    if (o.blockPath !== (e != null ? e.block : void 8)) {\n      return log.log({\n        event: \"setCurrentBlock\",\n        plan: o.planPath,\n        block: o.blockPath\n      });\n    }\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"data/content/setCurrentBlockGroup/set.ls","text":"(function(){\n  return function(o){\n    var e;\n    e = log.findLast({\n      event: \"setCurrentBlockGroup\",\n      groupCode: o.groupCode\n    });\n    if (o.blockPath !== (e != null ? e.block : void 8)) {\n      return log.log({\n        event: \"setCurrentBlockGroup\",\n        block: o.blockPath,\n        groupCode: o.groupCode\n      });\n    }\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showSearch/show.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var menu, ref$, ref1$, resultDiv;\n      menu = body.findFirst(\".mainMenu\");\n      if (!menu) {\n        return;\n      }\n      if ((ref$ = menu.findFirst(\".menuRows\")) != null) {\n        ref$.hide();\n      }\n      if ((ref1$ = body.findFirst(\".menuTop\")) != null) {\n        ref1$.setTopMode(\"search\");\n      }\n      resultDiv = menu.findFirst(\".menuSearchResult\");\n      return resultDiv != null ? resultDiv.show() : void 8;\n    };\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"lib/gui/drawerMenu/menuRows/rowLabel/row.ls","text":"(function(){\n  return function(o, item){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      minHeight: \"2.4em\"\n    }).append(inc(\"label/label\")(item.label));\n  };\n})();","updated":"2022-11-17T09:44:49.063192"},{"path":"lib/gui/drawerMenu/menuRows/rowLine/row.ls","text":"(function(){\n  return function(o, item){\n    if (item.isDebug && engine.isDebug === false) {\n      return;\n    }\n    return Div({\n      display: \"flex\",\n      overflow: \"hidden\",\n      height: item.label ? \"2.2em\" : \"0.8em\"\n    }).html(inc(\"line/line\")(), inc(\"label/label\")(item), inc(\"line/line\")());\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/hideSearch/hide.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var menu, ref$;\n      menu = body.findFirst(\".mainMenu\");\n      if (!menu) {\n        return;\n      }\n      menu.findFirst(\".menuRows\").show();\n      menu.findFirst(\".menuSearchResult\").empty().hide();\n      if ((ref$ = body.findFirst(\".menuTop\")) != null) {\n        ref$.setTopMode(menu.o.itemsFolder ? \"folder\" : \"plans\");\n      }\n      delete app.currentPage.params.searchQuery;\n      o.hideSuggestions();\n      o.input.setValue(\"\");\n      return o.input.stop();\n    };\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"lib/gui/drawerMenu/menuRows/rowDefault/row.ls","text":"(function(){\n  return function(o, item){\n    return Div({\n      display: \"flex\",\n      backgroundColor: item.selected ? Color.grey[250] : void 8\n    }).html(inc(\"icon/icon\")(item), inc(\"label/label\")(item), inc(\"newTag/tag\")(item), inc(\"isDebugIcon/isDebugIcon\")(item), typeof item.badge == 'function' ? item.badge() : void 8, typeof item.download == 'function' ? item.download(o, item) : void 8).tap({\n      animation: \"hover\",\n      up: function(){\n        return item.click(o);\n      },\n      longDown: item.longDown ? item.longDown : void 8\n    });\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"lib/gui/drawerMenu/menuRows/rowDefault/label/label.ls","text":"(function(){\n  return function(item){\n    return Div({\n      flex: \"1 1 auto\",\n      overflow: \"hidden\",\n      padding: \"0.4em 0.2em 0.4em 0\"\n    }).css(!item.labelAllowWrap ? {\n      textOverflow: \"ellipsis\",\n      whiteSpace: \"nowrap\"\n    } : void 8).secureHtml(item.label);\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"lib/gui/drawerMenu/menuRows/rowLine/label/label.ls","text":"(function(){\n  return function(item){\n    var label;\n    if (label = item.label) {\n      return Div({\n        flex: \"0 0 auto\",\n        paddingLeft: \"0.4em\",\n        paddingRight: \"0.4em\",\n        fontSize: \"0.9em\",\n        color: Color.grey[700]\n      }).html(label);\n    }\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"lib/gui/drawerMenu/menuRows/rowLine/line/line.ls","text":"(function(){\n  return function(){\n    return Div({\n      flex: \"1 1 auto\",\n      borderBottom: \"1px solid \" + Color.grey[250]\n    });\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"lib/gui/drawerMenu/onKeyBack/onKeyBack.ls","text":"(function(){\n  return function(o){\n    var close;\n    close = function(){\n      return o.close({\n        move: true\n      });\n    };\n    return o.wrapper.addClass(\"androidBack keyManager-esc\").bind(\"keyManager\", close).bind(\"androidBack\", close);\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"lib/gui/drawerMenu/menuRows/rowDefault/isDebugIcon/isDebugIcon.ls","text":"(function(){\n  return function(item){\n    if (item.isDebug && engine.isDebug) {\n      return SvgIcon({\n        svg: path(\"/lib/svg/shape/debug.svg\")\n      }).css({\n        flex: \"0 0 auto\",\n        margin: \"0 0.5em\"\n      });\n    }\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/debugToggle/codePopup/codePopup.ls","text":"(function(){\n  return function(onSuccess){\n    var onSubmit, div, input, popup;\n    onSubmit = function(){\n      var code, validCode;\n      input.stop();\n      code = input.getValue().trim();\n      validCode = inc(\"/data/debug/calcDebugCode/calc\")().code;\n      if (code === validCode) {\n        return typeof onSuccess == 'function' ? onSuccess() : void 8;\n      } else {\n        return popup.close();\n      }\n    };\n    div = Div({\n      paddingBottom: \"1em\",\n      paddingTop: \"1em\"\n    }).html(Div({\n      paddingBottom: \"0.5em\"\n    }).html(\"DebugCode\"), input = inc(\"/lib/gui/input2/input\")({\n      onSubmit: onSubmit,\n      keyboardParentDiv: app.currentPage.popupBottom,\n      keyboardLayout: \"login\"\n    }).css({\n      display: \"block\",\n      margin: \"0.5em auto\",\n      width: \"95%\"\n    }));\n    requestAnimationFrame(input.start);\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"addons/topbarLevel/feedbackIcon/01_popupStart/popup.ls","text":"(function(){\n  return function(){\n    var pageClone, clickYes, clickNo, div, popup;\n    pageClone = body.findFirst(\".pageWrapper\").clone(true);\n    clickYes = function(){\n      return inc(\"../02_popupChoices/popup\")(pageClone);\n    };\n    clickNo = function(){\n      return popup.close();\n    };\n    div = Div({\n      width: \"20em\",\n      margin: \"1em 0em 0.5em\"\n    }).html(Div({\n      padding: \"0 0.5em 0.5em\"\n    }).html(T(\"sendFeedback\")), inc(\"../00_shared/button/button\")(T(\"yes\"), clickYes), inc(\"../00_shared/button/button\")(T(\"no\"), clickNo));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"lib/gui/drawerMenu/folder/close/close.ls","text":"(function(){\n  return function(o, item){\n    var d1, d2;\n    o.itemsFolder = undefined;\n    d1 = o.menuRows;\n    d2 = inc(\"../../menuRows/rows\")(o);\n    o.menuRows = d2;\n    inc(\"../_moveReplace/moveReplace\")(d1, d2, \"right\");\n    o.scrollToLastPosition();\n    return body.findFirst(\".menuTop\").setTopMode(\"plans\");\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"lib/gui/drawerMenu/menuRows/rowFolder/label/label.ls","text":"(function(){\n  return function(item){\n    return Div({\n      flex: \"1 1 auto\",\n      overflow: \"hidden\",\n      padding: \"0.4em 0.2em 0.4em 0\"\n    }).css(!item.labelAllowWrap ? {\n      textOverflow: \"ellipsis\",\n      whiteSpace: \"nowrap\"\n    } : void 8).secureHtml(item.label);\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"lib/gui/drawerMenu/folder/open/open.ls","text":"(function(){\n  return function(o, item){\n    var d1, d2;\n    o.saveScrollPosition();\n    o.itemsFolder = _.clone(item.items);\n    d1 = o.menuRows;\n    d2 = inc(\"../../menuRows/rows\")(o);\n    o.menuRows = d2;\n    inc(\"../_moveReplace/moveReplace\")(d1, d2, \"left\");\n    return body.findFirst(\".menuTop\").setTopMode(\"folder\");\n  };\n})();","updated":"2022-05-03T13:16:01.036724"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/top/_div/icon/icon.ls","text":"(function(){\n  return function(p){\n    return p.icon;\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/top/_div/title/title.ls","text":"(function(){\n  return function(p){\n    return Div({\n      marginLeft: \"0.5em\",\n      color: Color.grey[800],\n      marginBottom: \"-0.15em\"\n    }).html(p.title);\n  };\n})();","updated":"2022-04-27T11:11:55.96548"},{"path":"lib/gui/screenKeyboard/calcMap/calcTemplate/calc.ls","text":"(function(){\n  return function(o){\n    var layout, ref$;\n    layout = o.layout === \"standardGuiLanguage\"\n      ? twitch({\n        de: \"standardSlimDE\",\n        en: \"standardSlimEN\",\n        fr: \"standardSlimFR\",\n        es: \"standardSlimES\",\n        pt: \"standardSlimPT\"\n      })\n      : o.layout;\n    return (ref$ = o.templates[layout]) != null ? ref$[o.toggleState] : void 8;\n  };\n})();","updated":"2022-06-23T13:07:52.251955"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/_setCssVars/set.ls","text":"(function(){\n  return function(v, pw){\n    var newValues, hasNewValues, name, value;\n    newValues = {};\n    hasNewValues = false;\n    for (name in v) {\n      value = v[name];\n      if (pw.lastCssVars[name] !== value) {\n        hasNewValues = true;\n        newValues[name] = _.isNumber(value) ? value + \"px\" : value;\n      }\n    }\n    if (hasNewValues) {\n      pw.cssVar(newValues);\n    }\n    return pw.lastCssVars = v;\n  };\n})();","updated":"2022-05-11T13:46:56.40734"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/avatarOverlayWrapper/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      zIndex: 8,\n      height: \"calc(var(--screenHeight) - var(--popupBottomHeight))\",\n      pointerEvents: \"none\"\n    }).addClass(\"avatarOverlayWrapper\").hide();\n    return pw.elements.avatarOverlayWrapper = div;\n  };\n})();","updated":"2022-05-11T13:46:56.40734"},{"path":"lib/gui/inputEditable/icons/password/icon.ls","text":"(function(){\n  return function(i){\n    var update, tap, showPassword, ref$, s1, s2;\n    if (i.params.textMode !== \"password\") {\n      return;\n    }\n    update = function(showOverlay){\n      if (showOverlay) {\n        i.passwordOverlay.show();\n        i.divEditable.css({\n          color: \"transparent\",\n          fontFamily: \"monospace\",\n          letterSpacing: \"-0.1em\"\n        });\n        s1.show();\n        s2.hide();\n        return i.divEditable.d.updateCustomCursor();\n      } else {\n        i.passwordOverlay.hide();\n        i.divEditable.css({\n          color: \"\",\n          fontFamily: \"inherit\",\n          letterSpacing: \"0\"\n        });\n        s1.hide();\n        s2.show();\n        return i.divEditable.d.updateCustomCursor();\n      }\n    };\n    tap = function(){\n      var v, ref$;\n      v = (ref$ = i.visiblePassword) != null ? ref$ : showPassword;\n      update(v);\n      i.visiblePassword = !v;\n      return i.divEditable.start();\n    };\n    showPassword = (ref$ = i.params.showPassword) != null ? ref$ : false;\n    return Div({\n      display: \"flex\",\n      padding: \"0 0.4em\",\n      borderLeft: \"2px solid white\"\n    }).append(s1 = SvgIcon(path(\"/lib/svg/icon/hide.svg\")).hide(), s2 = SvgIcon(path(\"/lib/svg/icon/show.svg\")).hide()).onDomAppend(function(){\n      return update(!showPassword);\n    }).tap(tap);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/softKeyboardZone/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      position: \"fixed\",\n      bottom: 0,\n      left: 0,\n      right: 0,\n      zIndex: 5,\n      height: 0,\n      pointerEvents: \"none\"\n    }).addClass(\"softKeyboardZone\");\n    return pw.elements.softKeyboardZone = div;\n  };\n})();","updated":"2022-05-11T13:46:56.40734"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/onMutationObserver/on.ls","text":"(function(){\n  return function(pw, elementName){\n    var element, onMutation, mo;\n    element = pw[elementName];\n    onMutation = function(entries){\n      var h, h2, ref$;\n      h = element.offsetHeight;\n      h2 = (ref$ = pw.lastCssVars) != null ? ref$[elementName + \"Height\"] : void 8;\n      if (h !== h2 || elementName === \"popupWrapper\") {\n        return pw.page.updateLayout();\n      }\n    };\n    mo = new MutationObserver(onMutation);\n    pw.onDomAppend(function(){\n      return mo.observe(element, {\n        childList: true,\n        subtree: true,\n        attributes: true\n      });\n    });\n    return pw.onDomRemove(function(){\n      return mo.disconnect();\n    });\n  };\n})();","updated":"2022-05-11T13:46:56.40734"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/popupWrapper/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      zIndex: 7,\n      height: \"var(--popupWrapperHeight)\",\n      pointerEvents: \"none\"\n    }).addClass(\"popupWrapper safeAreaPaddingTop safeAreaPaddingBottom safeAreaPaddingLeft safeAreaPaddingRight\").hide();\n    return pw.elements.popupWrapper = div;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcSoftKeyboardBottom/fixIOsBrowserWindowScroll/fix.ls","text":"(function(){\n  var t, isIosBrowser;\n  t = inc(\"/lib/util/calcAppType/calc\")();\n  isIosBrowser = _.includes(t, \"iOS\") && _.includes(t, \"browser\");\n  return function(h){\n    if (isIosBrowser && h > 0 && window.visualViewport != null) {\n      return window.scrollTo(0, 0);\n    }\n  };\n})();","updated":"2022-05-11T13:46:56.40734"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcSoftKeyboardBottom/page/page.ls","text":"(function(){\n  return function(pw, h){\n    var b, c, n;\n    b = pw.bottom;\n    if (b.firstChild) {\n      c = b.style.background || b.style.backgroundColor;\n      b.css({\n        borderBottom: h + \"px solid \" + c,\n        visibility: \"visible\"\n      });\n    } else {\n      if (h > 0) {\n        b.css({\n          borderBottom: h + \"px solid transparent\",\n          visibility: \"hidden\"\n        }).show();\n      } else {\n        b.css({\n          borderBottom: \"\",\n          visibility: \"visible\"\n        }).hide();\n      }\n    }\n    n = pw.navBottom;\n    if (n.firstChild != null) {\n      if (h === 0) {\n        n.show();\n      } else {\n        n.hide();\n      }\n    }\n    pw.visibleSoftKeyboard = h > 0;\n    if (h === 0) {\n      return pw.page.setBottomFreeze(0);\n    }\n  };\n})();","updated":"2022-05-11T13:46:56.40734"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/isResize/calc.ls","text":"(function(){\n  var height, width;\n  height = undefined;\n  width = undefined;\n  return function(v, pw){\n    if (v.screenHeight !== height || v.screenWidth !== width) {\n      height = v.screenHeight;\n      width = v.screenWidth;\n      return true;\n    }\n  };\n})();","updated":"2022-05-11T13:46:56.40734"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/pageTopTransition/calc.ls","text":"(function(){\n  return function(v, pw){\n    var d, t;\n    d = pw.page.centerDuration;\n    return t = d > 0 ? \"height \" + d + \"ms\" : \"\";\n  };\n})();","updated":"2022-05-11T13:46:56.40734"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/popupWrapperHeight/calc.ls","text":"(function(){\n  return function(v, pw){\n    var h;\n    return h = v.screenHeight - v.popupBottomHeight;\n  };\n})();","updated":"2022-05-11T13:46:56.40734"},{"path":"lib/gui/noPlusFamilyPopup/_t.ls","text":"(function(){\n  return {\n    plusFamilyExpired: {\n      de: \"Dein Abo für ANTON-Plus Familie ist ausgelaufen. Du kannst diese Funktion deshalb nicht verwenden.\",\n      en: \"Your ANTON Plus Family subscription has expired. You can no longer use this feature.\",\n      fr: \"Ton abonnement ANTON-Plus Famille a expiré. Tu ne peux donc plus utiliser cette fonction.\",\n      es: \"Ya no puedes utilizar esta función porque tu suscripción a ANTON-Plus Familia se ha agotado.\",\n      pt: \"Sua assinatura do ANTON-Plus Família expirou.Por isso, esta função não pode mais ser utilizada.\"\n    }\n  };\n})();","updated":"2022-05-12T14:59:57.887309"},{"path":"pages/start/startUser/07_extraPages/connectToSesam/page/buttonConnect/button.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      return page.submit();\n    };\n    return Button({\n      label: T(\"connect\"),\n      icon: path(\"/lib/svg/icon/link.svg\")\n    }).css({\n      marginTop: \"1.5em\"\n    }).tap(tap);\n  };\n})();","updated":"2023-02-09T16:45:35.225441"},{"path":"pages/level/afterFinish/start/showLevelRatingPage/show.ls","text":"(function(){\n  return function(level){\n    var levelRatingProjects, projectInfixes, project, previousLevelFinishs, lastEvents, r;\n    levelRatingProjects = inc(\"calcLevelRatingProjects/calc\")();\n    projectInfixes = [\"-eng-\", \"-us\", \"-nateng-\", \"-gb\", \"-fr\", \"-natfra-\", \"-es\", \"-nates-\", \"-pt\", \"-natpt-\", \"-mono-\"];\n    project = level.level.puid.split(\"/\")[0];\n    if (!_.includes(levelRatingProjects, project) && !_.some(projectInfixes, function(v){\n      return _.includes(project, v);\n    })) {\n      return false;\n    }\n    previousLevelFinishs = log.list({\n      event: \"finishLevel\",\n      puid: level.level.puid\n    });\n    if (previousLevelFinishs.length > 1) {\n      return false;\n    }\n    lastEvents = log.list(\"finishLevel\").slice(-21);\n    if (_.find(lastEvents, \"rating\") != null) {\n      return false;\n    }\n    r = _.random(1, true);\n    if (r > 1 / 5) {\n      return false;\n    }\n    startPage({\n      path: path(\"../../pages/levelRating/01_rating/page\")\n    });\n    return true;\n  };\n})();","updated":"2024-04-23T09:55:49.362153"},{"path":"lib/util/print/after/after.ls","text":"(function(){\n  return function(p){\n    var n, f;\n    n = [\"scroll\", \"mousedown\", \"touchstart\", \"keydown\"];\n    f = function(){\n      var i$, ref$, len$, e, el;\n      for (i$ = 0, len$ = (ref$ = n).length; i$ < len$; ++i$) {\n        e = ref$[i$];\n        window.removeEventListener(e, f, true);\n      }\n      for (i$ = 0, len$ = (ref$ = body.findAll(\".print\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        el.remove();\n      }\n      for (i$ = 0, len$ = (ref$ = body.findAll(\".noPrint\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        el.removeClass(\"noPrint\");\n      }\n      return document.title = p.originalTitle;\n    };\n    return setTimeout(function(){\n      var i$, ref$, len$, e, results$ = [];\n      for (i$ = 0, len$ = (ref$ = n).length; i$ < len$; ++i$) {\n        e = ref$[i$];\n        results$.push(window.addEventListener(e, f, true));\n      }\n      return results$;\n    });\n  };\n})();","updated":"2024-04-23T09:55:49.362153"},{"path":"pages/search/loadingPage/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var topbar;\n    topbar = inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      backLabel: \"Suche beenden\",\n      onSearch: function(){}\n    });\n    topbar.findFirst(\".searchTopbar\").css({\n      opacity: 0,\n      pointerEvents: \"none\"\n    });\n    return topbar;\n  };\n})();","updated":"2022-08-31T07:47:13.868536"},{"path":"lib/gui/inputEditable/divWrapper/div.ls","text":"(function(){\n  return function(i){\n    var multi, wrap;\n    multi = i.params.multiline;\n    wrap = i.params.lineWrapping;\n    return Div({\n      display: multi ? \"flex\" : \"inline-flex\",\n      background: Color.grey[100],\n      minWidth: \"2em\",\n      alignItems: \"stretch\",\n      overflow: \"hidden\"\n    }).addClass(\"input inputEditable\").html(inc(\"cssScroller/css\")(), i.searchIcon, Div({\n      display: \"flex\",\n      flex: \"1 1 auto\",\n      alignItems: \"stretch\",\n      justifyContent: \"stretch\"\n    }).addClass(\"scroller\").css({\n      marginRight: \"-30px\",\n      paddingRight: \"30px\"\n    }).css(!multi && !wrap && i.params.showResetIcon ? {\n      margin: \"0 0 -30px 0\",\n      paddingBottom: \"30px\"\n    } : void 8).css(multi\n      ? {\n        overflowY: \"auto\",\n        overflowX: \"hidden\"\n      }\n      : wrap\n        ? {\n          overflowY: \"hidden\",\n          overflowX: \"hidden\"\n        }\n        : {\n          overflowY: \"hidden\",\n          overflowX: \"auto\"\n        }).html(i.divEditable.css({\n      flex: multi || wrap ? \"1 1 auto\" : \"1 0 auto\"\n    }), i.passwordOverlay, i.placeholderOverlay), i.resetIcon, i.passwordIcon);\n  };\n})();","updated":"2024-04-23T09:55:49.362153"},{"path":"pages/static/privacy/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      bottom: function(){\n        if (window.log != null) {\n          return inc(\"acceptPrivacyDiv/div\")();\n        }\n      },\n      start: function(){\n        return page.css({\n          minHeight: \"var(--centerHeight)\"\n        }).html(Div({\n          margin: \"0em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\",\n          lineHeight: \"1.5em\",\n          textAlign: \"left\"\n        }).html(inc(\"div/div\")()));\n      }\n    };\n  };\n})();","updated":"2022-05-16T08:53:59.464555"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/pageTopMax/calc.ls","text":"(function(){\n  return function(v, pw){\n    var vl, max, ref$;\n    vl = pw.lastCssVars;\n    if (v.isResize) {\n      return 10000;\n    }\n    return max = Math.min((ref$ = vl.pageTop) != null ? ref$ : 10000, (ref$ = vl.pageTopMax) != null ? ref$ : 10000);\n  };\n})();","updated":"2022-05-16T08:53:59.464555"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/centerHeight/calc.ls","text":"(function(){\n  return function(v, pw){\n    var h;\n    h = v.screenHeight - v.topHeight - v.bottomHeight - v.navBottomHeight - v.navTopHeight;\n    if (h !== pw.lastCssVars.centerHeight) {\n      pw.cssVar({\n        centerHeight: h + \"px\"\n      });\n    }\n    return h;\n  };\n})();","updated":"2022-06-15T13:22:27.970972"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/pageTop/calc.ls","text":"(function(){\n  return function(v, pw){\n    var d, p;\n    d = v.centerHeight - v.pageContentHeight;\n    p = pw.page.disablePageVerticalCenter\n      ? 0\n      : d < 0\n        ? 0\n        : _.round(d / 2);\n    if (p < v.pageTopMax) {\n      v.pageTopMax = p;\n    } else {\n      p = v.pageTopMax;\n    }\n    if (pw.page.centerDuration > 0 && pw.lastCssVars.pageTop !== p) {\n      pw.lastPageTopChangeAt = new Date();\n      inc(\"updateScrollDivDuringAnimation/update\")(pw);\n    }\n    return p;\n  };\n})();","updated":"2022-06-15T13:22:27.970972"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/suggest.ls","text":"(function(){\n  return function(o){\n    var ref$, ref1$, ref2$, ud, lastEvent, d, now, oneWeek;\n    if (window.log == null) {\n      return false;\n    }\n    if (((ref$ = log.findLast(\"setLoginCodeNeedsPassword\")) != null ? ref$.value : void 8) === true) {\n      return false;\n    }\n    if (!(((ref1$ = log.findLast(\"setEMail\")) != null && ref1$.isVerified) || ((ref2$ = log.findLast(\"setPhoneNumber\")) != null && ref2$.isVerified))) {\n      return false;\n    }\n    ud = inc(\"/data/user/calcUserDescription/calc\")();\n    if (!ud.isDirTeacher) {\n      return false;\n    }\n    lastEvent = log.findLast(\"showDirTeacherSuggestSecureAccount\");\n    d = new Date(lastEvent != null ? lastEvent.created : void 8);\n    now = new Date();\n    oneWeek = 1000 * 60 * 60 * 24 * 7;\n    if ((lastEvent != null ? lastEvent.type : void 8) === \"skipInfoPage\" && now - d < oneWeek) {\n      return false;\n    }\n    startPage({\n      path: path(\"01_page_info/page\"),\n      history: 0\n    });\n    return true;\n  };\n})();","updated":"2024-04-11T12:51:45.720671"},{"path":"pages/content/plan/fixPlanPath/fix.ls","text":"(function(){\n  return function(page){\n    var allowedPlans;\n    if (page.params.context === \"idePreview\") {\n      return;\n    }\n    allowedPlans = _.map(inc(\"/data/content/calcPlanDescriptions/calc\")(), \"planPath\");\n    if (!in$(page.params.planPath, allowedPlans)) {\n      return page.params.planPath = inc(\"/data/content/calcCurrentPlan/calc\")();\n    }\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2022-08-31T07:47:13.868536"},{"path":"pages/static/cancelDeletionDirAdmin/_t.ls","text":"(function(){\n  return {\n    cancelInfo: {\n      de: \"Um die Löschung abzubrechen, musst du mindestens 16 Jahre alt sein oder deine Eltern bitten, die folgenden Schritte durchzuführen. Wenn du fertig bist, erhältst du einen neuen Anmelde-Code und kannst dein Nutzerkonto unabhängig von der Schule weiternutzen.\",\n      en: \"To stop the deletion process, you have to be at least 16 years old or ask your parents to go through the following steps for you. When you are done, you will receive a new login code and you will be able to use ANTON separately from your school.\",\n      fr: \"Pour arrêter le processus de suppression, tu dois avoir 16 ans ou plus. Si ce n'est pas le cas, tu dois demander à tes parents de suivre les étapes suivantes pour toi. Quand c'est fait, tu recevras un nouveau code de connexion et tu pourras utiliser ANTON indépendamment de ton école.\",\n      es: \"Para suspender el proceso de eliminación debes tener por lo menos 16 años o preguntarle a algún adulto responsable, que lleve a cabo los siguientes pasos. Cuando hayas terminado, recibirás una nueva clave de acceso y podrás utilizar tu cuenta independientemente de la escuela.\",\n      pt: \"Para cancelar a exclusão, você deve ter pelo menos 16 anos ou pedir a seus pais que concluam as etapas a seguir. Ao terminar, você receberá um novo código de acesso e poderá continuar como usuário(a), independentemente da escola.\"\n    },\n    begin: {\n      de: \"Beginnen\",\n      en: \"Begin\",\n      fr: \"Commencer\",\n      es: \"Comenzar\",\n      pt: \"Começar\"\n    },\n    min16Years: {\n      de: \"Bist du mindestens 16 Jahre alt?\",\n      en: \"Are you at least 16 years old?\",\n      fr: \"Est-ce que tu as 16 ans ou plus&nbsp;?\",\n      es: \"¿Tienes por lo menos 16 años de edad?\",\n      pt: \"Você tem pelo menos 16 anos?\"\n    },\n    pleaseAcceptPrivacyPolicy: {\n      de: \"Bitte stimme noch unseren Datenschutzbestimmungen zu.\",\n      en: \"Please agree to our privacy policy.\",\n      fr: \"Merci d'accepter notre politique de protection des données personnelles.\",\n      es: \"Por favor, acepta nuestra política de privacidad.\",\n      pt: \"Por favor, aceite nossa política de privacidade.\"\n    },\n    showPolicy: {\n      de: \"Bestimmungen ansehen\",\n      en: \"View terms\",\n      fr: \"Voir les conditions\",\n      es: \"Ver condiciones\",\n      pt: \"Ver condições\"\n    },\n    accept: {\n      de: \"Zustimmen\",\n      en: \"Agree\",\n      fr: \"Accepter\",\n      es: \"Aceptar\",\n      pt: \"Aceitar\"\n    },\n    pleaseAcceptTerms: {\n      de: \"Bitte stimme noch unseren Nutzungsbedingungen zu.\",\n      en: \"Please agree to our terms.\",\n      fr: \"Merci d'accepter nos conditions.\",\n      es: \"Por favor, acepta nuestras condiciones.\",\n      pt: \"Por favor, aceite nossos termos de uso.\"\n    },\n    emailPrompt: {\n      de: \"Bitte trage deine E-Mail-Adresse ein:\",\n      en: \"Please enter your email address:\",\n      fr: \"Merci d'entrer ton adresse e-mail&nbsp;:\",\n      es: \"Por favor, ingresa tu correo electrónico:\",\n      pt: \"Por favor, digite seu endereço de e-mail:\"\n    },\n    'continue': {\n      de: \"Weiter\",\n      en: \"Continue\",\n      fr: \"Continuer\",\n      es: \"Continuar\",\n      pt: \"Continuar\"\n    },\n    askParents: {\n      de: \"Bitte frage deine Eltern, ob sie die nächsten Schritte für dich durchführen können.\",\n      en: \"Please ask your parents to go through the following steps for you.\",\n      fr: \"Merci de demander à tes parents de suivre les étapes suivantes pour toi.\",\n      es: \"Por favor, pídele a tu padre o a tu madre que lleven a cabo los siguientes pasos por ti.\",\n      pt: \"Por favor, pergunte ao seu responsável quem poderia fazer as próximas etapas para você.\"\n    },\n    abortDeletion: {\n      de: \"Löschung abbrechen\",\n      en: \"Cancel deletion\",\n      fr: \"Annuler la suppression\",\n      es: \"Cancelar la eliminación\",\n      pt: \"Cancelar exclusão\"\n    },\n    back: {\n      de: \"Zurück\",\n      en: \"Back\",\n      fr: \"Retour\",\n      es: \"Anterior\",\n      pt: \"Voltar\"\n    }\n  };\n})();","updated":"2025-11-14T09:32:26.404908"},{"path":"lib/init/errorHandler/calcErrorDescription/calc.ls","text":"(function(){\n  return function(message, file, line, col, error){\n    var d, f, e, localPath, fileString, codeLines;\n    d = {\n      message: message,\n      line: line,\n      stack: inc(\"formatStack/format\")(error != null ? error.stack : void 8),\n      error: inc(\"objectifyError/objectify\")(error)\n    };\n    try {\n      f = error.stack.toString().split(\"$$\")[1];\n      f = inc(\"formatStack/format\")(f);\n      d.file = \"/../\" + f.split(\":\")[0];\n      d.project = d.file.split(\"/\")[2];\n    } catch (e$) {\n      e = e$;\n      d.file = file;\n      d.project = \"unknown\";\n    }\n    try {\n      if (line > 0 && _.includes(d.file, \"/../\") && !error.hideErrorCodeLines) {\n        localPath = d.file.substr(5 + d.project.length);\n        fileString = projects.documents(d.project, localPath)[localPath];\n        codeLines = fileString.split(\"\\n\");\n        d.codeLineBefore = (((line - 1) + \": \") + _.trim(codeLines[line - 2])).substr(0, 200);\n        d.codeLine = ((line + \": \") + _.trim(codeLines[line - 1])).substr(0, 200);\n        d.codeLineAfter = (((line + 1) + \": \") + _.trim(codeLines[line])).substr(0, 200);\n      }\n    } catch (e$) {}\n    return d;\n  };\n})();","updated":"2024-04-11T12:51:45.720671"},{"path":"pages/schoolSearch/00_shared/topbarAbort/popupAbort/_t.ls","text":"(function(){\n  return {\n    popupAbort: {\n      de: \"Möchtest du die Schulsuche beenden?\",\n      en: \"Would you like to quit searching for a school?\",\n      fr: \"Veux-tu abandonner la recherche d'école&nbsp;?\",\n      es: \"¿Quieres interrumpir la búsqueda de escuela?\",\n      pt: \"Tem certeza que deseja interromper a busca da escola?\"\n    },\n    cancelButton: {\n      de: \"Abbrechen\",\n      en: \"Cancel\",\n      fr: \"Annuler\",\n      es: \"Cancelar\",\n      pt: \"Cancelar\"\n    },\n    quitButton: {\n      de: \"Ja, beenden\",\n      en: \"Yes, quit\",\n      fr: \"Oui, abandonner\",\n      es: \"Sí, interrumpir\",\n      pt: \"Sim, interromper\"\n    }\n  };\n})();","updated":"2024-04-08T13:36:28.677352"},{"path":"pages/games/_t.ls","text":"(function(){\n  return {\n    easy: {\n      de: \"Einfach\",\n      en: \"Easy\",\n      fr: \"Facile\",\n      es: \"Fácil\",\n      pt: \"Fácil\"\n    },\n    medium: {\n      de: \"Mittel\",\n      en: \"Medium\",\n      fr: \"Moyen\",\n      es: \"Medio\",\n      pt: \"Médio\"\n    },\n    hard: {\n      de: \"Schwierig\",\n      en: \"Hard\",\n      fr: \"Difficile\",\n      es: \"Difícil\",\n      pt: \"Difícil\"\n    }\n  };\n})();","updated":"2022-11-23T14:19:12.790311"},{"path":"lib/gui/popup/show/animation/animation.ls","text":"(function(){\n  return function(o){\n    if (o.animationDisableBackground !== true) {\n      o.background.keyframeAnimate({\n        keyframes: {\n          \"0%\": {\n            opacity: 0\n          },\n          \"100%\": {\n            opacity: 1\n          }\n        },\n        duration: 150\n      });\n    }\n    return o.popup.keyframeAnimate({\n      keyframes: {\n        \"0%\": {\n          transform: \"scale(0.9, 0.9)\"\n        },\n        \"100%\": {\n          transform: \"scale(1, 1)\"\n        }\n      },\n      duration: 150,\n      onCompleted: function(){\n        return o.isStarted = true;\n      }\n    });\n  };\n})();","updated":"2022-05-25T14:12:51.988433"},{"path":"lib/gui/divEditable/_shared/convertPlainString/learnList/convert.ls","text":"(function(){\n  return function(t, parseMode){\n    var t2, inBracket, i$, len$, i, s, parts, res$, ref$, result, p;\n    t2 = \"\";\n    inBracket = false;\n    for (i$ = 0, len$ = t.length; i$ < len$; ++i$) {\n      i = i$;\n      s = t[i$];\n      if (s === \"(\" && !inBracket && t.indexOf(\")\", i) > -1) {\n        inBracket = true;\n        t2 += \"||$START$\" + s;\n      } else if (s === \")\" && inBracket) {\n        inBracket = false;\n        t2 += s + \"||\";\n      } else {\n        t2 += s;\n      }\n    }\n    res$ = [];\n    for (i$ = 0, len$ = (ref$ = t2.split(\"||\")).length; i$ < len$; ++i$) {\n      s = ref$[i$];\n      if (!s) {\n        continue;\n      }\n      res$.push({\n        inBracket: _.startsWith(s, \"$START$\"),\n        text: s.replace(\"$START$\", \"\")\n      });\n    }\n    parts = res$;\n    result = \"\";\n    for (i$ = 0, len$ = parts.length; i$ < len$; ++i$) {\n      p = parts[i$];\n      s = p.text;\n      if (!p.inBracket) {\n        if (parseMode === \"learnListEditor\") {\n          s = _.replaceAll(s, \"[[image=\", \"[[image!!!\");\n          s = _.replaceAll(s, \"[[lineError=\", \"[[lineError!!!\");\n          s = _.replaceAll(s, \"=\", \"[[special=equal, text==]]\");\n          s = _.replaceAll(s, \"[[lineError!!!\", \"[[lineError=\");\n          s = _.replaceAll(s, \"[[image!!!\", \"[[image=\");\n        }\n      }\n      if (p.inBracket) {\n        s = \"[[special=bracket, text=\" + s + \"]]\";\n      }\n      result += s;\n    }\n    return result;\n  };\n})();","updated":"2022-05-25T14:12:51.988433"},{"path":"lib/gui/divEditable/createLineNodes/create.ls","text":"(function(){\n  return function(d, l, params){\n    var parts, nodes, res$, i$, len$, part, lineDiv, n;\n    params == null && (params = {});\n    params.d = d;\n    parts = inc(\"_calcLineParts/calc\")(l);\n    res$ = [];\n    for (i$ = 0, len$ = parts.length; i$ < len$; ++i$) {\n      part = parts[i$];\n      if (part.type === \"text\") {\n        res$.push(document.createTextNode(part.text));\n      } else if (part.type === \"image\") {\n        res$.push(inc(\"image/image\")(part.imageId, params));\n      } else if (part.type === \"special\") {\n        res$.push(inc(\"specialTag/specialTag\")(part));\n      } else if (part.type === \"lineError\") {\n        res$.push(inc(\"lineError/lineError\")(part));\n      } else if (part.type === \"userTag\") {\n        res$.push(inc(\"userTag/userTag\")(part, d));\n      } else if (part.type === \"video\") {\n        res$.push(inc(\"video/video\")(part, d));\n      }\n    }\n    nodes = res$;\n    if (nodes.length === 0) {\n      nodes = [document.createElement(\"br\")];\n    }\n    if (params != null && params.returnHtml) {\n      lineDiv = Div().append((function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = nodes).length; i$ < len$; ++i$) {\n          n = ref$[i$];\n          results$.push(n);\n        }\n        return results$;\n      }()));\n      return lineDiv.innerHTML;\n    } else {\n      return nodes;\n    }\n  };\n})();","updated":"2022-05-25T14:12:51.988433"},{"path":"lib/gui/divEditable/createLineNodes/_calcLineParts/calc.ls","text":"(function(){\n  return function(line){\n    var s, parts, res$, i$, len$, i, p;\n    s = line;\n    s = _.replaceAll(s, \"[[\", \"$__$[[\");\n    s = _.replaceAll(s, \"]]\", \"]]$__$\");\n    parts = s.split(\"$__$\");\n    res$ = [];\n    for (i$ = 0, len$ = parts.length; i$ < len$; ++i$) {\n      i = i$;\n      p = parts[i$];\n      if (p.length === 0) {\n        continue;\n      } else if (p.indexOf(\"[[image=\") === 0) {\n        res$.push({\n          type: \"image\",\n          imageId: p.substr(8, p.length - 10)\n        });\n      } else if (p.indexOf(\"[[special=\") === 0) {\n        res$.push({\n          type: \"special\",\n          text: p\n        });\n      } else if (p.indexOf(\"[[lineError=\") === 0) {\n        res$.push({\n          type: \"lineError\",\n          text: p\n        });\n      } else if (p.indexOf(\"[[userTag=\") === 0) {\n        res$.push({\n          type: \"userTag\",\n          text: p\n        });\n      } else if (p.indexOf(\"[[video=\") === 0) {\n        res$.push({\n          type: \"video\",\n          text: p\n        });\n      } else {\n        res$.push({\n          type: \"text\",\n          text: p\n        });\n      }\n    }\n    parts = res$;\n    return parts;\n  };\n})();","updated":"2022-05-25T14:12:51.988433"},{"path":"lib/gui/divEditable/_shared/parseLineDiv/video/video.ls","text":"(function(){\n  return function(d, node){\n    var t;\n    t = node.attr(\"special_data\");\n    return {\n      result: t,\n      resultPlain: t,\n      resultCharPos: \" \"\n    };\n  };\n})();","updated":"2022-05-25T14:12:51.988433"},{"path":"lib/gui/divEditable/createLineNodes/video/video.ls","text":"(function(){\n  return function(part, d){\n    if (d.specialElements.video != null) {\n      return d.specialElements.video(part, d);\n    }\n    return Div().css({\n      display: \"inline-flex\",\n      userSelect: \"all\",\n      background: Color.pink[50],\n      margin: \"0 0.1em\"\n    }).addClass(\"video\").attr({\n      special_element: \"video\",\n      special_data: part.text,\n      contenteditable: \"false\"\n    }).html(part.text);\n  };\n})();","updated":"2022-05-25T14:12:51.988433"},{"path":"lib/util/downloadContentFile/redecideContentServer/redecide.ls","text":"(function(){\n  return function(onDone){\n    var status, ref$, lastContentServer, lastDecision;\n    if (app.decideContentServer == null) {\n      onDone();\n      return;\n    }\n    status = ((ref$ = app.contentServerDecision) != null ? ref$.status : void 8) || {};\n    if (status.content !== \"ok\" && status.content2 !== \"ok\") {\n      lastContentServer = app.contentServer;\n      lastDecision = app.contentServerDecision;\n      return app.decideContentServer(function(){\n        inc(\"logRedecide/log\")(lastContentServer, lastDecision);\n        return onDone();\n      });\n    } else {\n      return onDone();\n    }\n  };\n})();","updated":"2023-04-12T10:55:58.970434"},{"path":"pages/schoolSearch/start.ls","text":"(function(){\n  return function(o){\n    inc(\"/lib/util/cache/set/set\")(\"schoolFinish\", o);\n    return startPage({\n      path: path(\"01_countrySelect/page\"),\n      animation: \"slideUp\"\n    });\n  };\n})();","updated":"2023-03-20T15:38:49.365974"},{"path":"data/content/calcPlanDescription/calcDescription/calcSubjectName/calc.ls","text":"(function(){\n  return function(subject){\n    var subjectNames, that;\n    subjectNames = inc(\"/data/content/_subjects/subjects\")();\n    if (that = subjectNames[subject]) {\n      return that;\n    } else {\n      return \"\";\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/init/setBottomFreezeDummy/init.ls","text":"(function(){\n  return function(pw){\n    return pw.page.setBottomFreeze = function(h){};\n  };\n})();","updated":"2022-06-08T13:29:47.028386"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/pageWrapper.ls","text":"(function(){\n  return function(page, pageCode){\n    var pw, n, ref$, el;\n    pw = Div({\n      display: \"flex\",\n      position: \"fixed\",\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0,\n      overflow: \"hidden\",\n      opacity: 0,\n      zIndex: 0,\n      flexDirection: \"column\",\n      alignItems: \"stretch\"\n    }).addClass(\"pageWrapper\");\n    pw.page = page;\n    pw.pageCode = pageCode;\n    pw.lastCssVars = {};\n    pw.elements = {\n      pageWrapper: pw\n    };\n    pw.html(inc(\"navTop/div\")(pw), inc(\"top/div\")(pw), inc(\"pageScrollWrapper/div\")(pw), inc(\"bottom/div\")(pw), inc(\"navBottom/div\")(pw), inc(\"bottomIconsLeft/div\")(pw), inc(\"softKeyboardZone/div\")(pw), inc(\"popupWrapper/div\")(pw), inc(\"popupBottom/div\")(pw), inc(\"avatarOverlayWrapper/div\")(pw));\n    for (n in ref$ = pw.elements) {\n      el = ref$[n];\n      page[n] = el;\n      pw[n] = el;\n    }\n    return pw;\n  };\n})();","updated":"2022-06-08T13:29:47.028386"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/pageScrollWrapper/pageCenter/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      background: \"white\",\n      width: \"var(--screenWidth)\",\n      minHeight: \"var(--centerHeight)\"\n    }).addClass(\"pageCenter pageSpacer\").html(inc(\"pageTop/div\")(pw), inc(\"pageContent/div\")(pw));\n    pw.elements.pageCenter = div;\n    return pw.elements.pageSpacer = div;\n  };\n})();","updated":"2022-06-23T13:07:52.251955"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/pageScrollWrapper/pageCenter/pageContent/div.ls","text":"(function(){\n  return function(pw){\n    var div, breadcrumbs;\n    div = Div().html(Div({\n      height: \"1px\",\n      marginBottom: \"-1px\"\n    }), pw.page.css({\n      textAlign: \"center\"\n    }).addClass(\"page\"), breadcrumbs = Div({\n      textAlign: \"center\"\n    }).addClass(\"breadcrumbs\"), Div({\n      height: \"1px\",\n      marginTop: \"-1px\"\n    }));\n    pw.elements.breadcrumbs = breadcrumbs;\n    return pw.elements.pageContent = div;\n  };\n})();","updated":"2022-06-08T13:29:47.028386"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/pageScrollWrapper/pageCenter/pageTop/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      height: \"var(--pageTop)\",\n      transition: \"var(--pageTopTransition)\"\n    }).addClass(\"pageTop\");\n    return pw.elements.pageTop = div;\n  };\n})();","updated":"2022-06-08T13:29:47.028386"},{"path":"data/content/calcPlanDescription/calc.ls","text":"(function(){\n  return function(contentPath){\n    var project, p, ref$, pd;\n    project = contentPath.indexOf(\"/\") === -1\n      ? contentPath\n      : contentPath.split(\"/\")[2];\n    p = app.plansListByProject[project];\n    if (!p && ((ref$ = app.currentPage.params) != null ? ref$.context : void 8) === \"idePreview\") {\n      return {\n        subjectName: \"\",\n        displayName: \"\"\n      };\n    }\n    if (!p) {\n      return;\n    }\n    pd = p != null ? p.planDescription : void 8;\n    if (!pd || pd.guiLanguage !== engine.guiLanguage) {\n      pd = inc(\"calcDescription/calc\")(p);\n      if (p != null) {\n        p.planDescription = pd;\n      }\n    }\n    return pd;\n  };\n})();","updated":"2022-06-10T14:07:04.731938"},{"path":"pages/static/unknownUrl/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    if (!engine.isBotMode && window.log != null) {\n      return inc(\"/addons/topbar2/topbar\")({\n        title: T(\"unknownPage\"),\n        close: function(){\n          return inc(\"/pages/content/start\")({\n            history: 0\n          });\n        }\n      });\n    } else {\n      return inc(\"../../_shared/topbarDeeplink/topbar\")(page, T(\"unknownPage\"));\n    }\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"pages/static/privacy/div/divEnGb/div.ls","text":"(function(){\n  return function(options){\n    var isPrint, ref$, s, p, section;\n    isPrint = (ref$ = options != null ? options.isPrint : void 8) != null ? ref$ : false;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div().addClass(\"privacyDiv\").html(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3em\"\n    }) : void 8, isPrint ? Div({\n      fontSize: \"1.4em\"\n    }).html(T(\"privacy\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. General\",\n      content: [p(\"Last updated: July 27th, 2023.\"), p(\"ANTON is a digital learning app that can be downloaded or used in the browser.\"), p(\"ANTON is developed and operated by solocode GmbH, Mehringdamm 61, 10961 Berlin, Germany (”Solocode”, ”we”, “us”, “our”, and our subsidiaries or affiliates).\"), p(\"This Privacy Policy applies whether you log-in to ANTON in the browser at https://anton.app  (the “Web-App”) and our mobile applications (the “Apps”), or any of our other products or services that link to this Privacy Policy that we may provide now or in the future (collectively, the “Service(s)”).\"), p(\"This Privacy Policy does not apply to websites with information about ANTON that are not located at https://anton.app and that do not link to this Privacy Policy.\"), p(\"This Privacy Policy does not apply to websites or services or practices of companies that We do not own or control, such as third-party services you might access through links or other features (e.g. e-mails or notifications) on ANTON. Please note that such other services may have their own privacy policies. We recommend reviewing their policies before sharing any personal information with them.\"), p(\"By using ANTON, you acknowledge that you accept and agree to this Privacy Policy and our Terms of Service (”Terms”) that can be found at http://anton.app/en_us/terms.\"), p(\"ANTON is COPPA-compliant, and our policies and practices help schools meet their FERPA obligations.\"), p(\"If you have any questions regarding this Privacy Policy or data protection in general, please send us an e-mail at privacy@anton.app.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. What is ANTON and how can it be used?\",\n      content: [p(\"ANTON is a digital learning app. It can be used as a mobile app or as a web-app in the browser. \"), p(\"ANTON can be used in two ways:\"), p(\"a) On your own outside of school: you can download the ANTON mobile app or visit anton.app in the browser and create your own account. In this case, Solocode will generally act as the data controller for the user data.\"), p(\"b) With a teacher as a member of a group and/or school: a teacher or a school prepares an access code for you and you use that code to sign in. In this case, the data controller is the school. We act as a data processor (or service provider as defined under CCPA) on behalf of the school and will process such data only at the direction and control of the school. Additionally, we will only delete records per the school’s specific instructions and will request that users make any requests for access, correction or deletion of personal information through the school. We will assist the school in responding to such requests as needed. We offer a Data Privacy Addendum (DPA), an agreement we enter into with schools or districts that further describes our duties, responsibilities, and commitments with respect to user data that we collect or receive.\"), p(\"In both cases, it is possible to use ANTON without entering any personally identifiable information. \"), p(\"More information on how the Service operates can be found in our frequently asked questions at anton.app/faq, and your taking part and use of the Service is governed by our Terms of Service at http://anton.app/en_us/terms.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. What data does ANTON store?\",\n      content: [p(\"3.1 Data that you or your school provide us with\"), p(\"If you are a student, we will ask you for a nickname, your school (optional) and which subject and grade level you would like to start with.\"), p(\"If you are a teacher, we will ask you for your first name, surname, salutation and, optionally, your school and e-mail address.\"), p(\"If you are a teacher or an employee of a school, when you create a group and login-codes for your students and/or co-teachers, your school is responsible for privacy. You should get parental consent first and we provide informational resources that you can use to inform parents and request their consent. When creating accounts, we recommend that you only use nicknames that cannot be used to identify the students.\"), p(\"If you are a teacher and you assign your account to a school, you allow the administrator of that school to add your user to the school directory, manage your user and users with the login-codes you create, add your first name, last name and class to your directory entry, view the login-code and mark your user account(s) for deletion.\"), p(\"If you decide that your user should be stored on your device, we will store this information on your device.\"), p(\"We will occasionally ask you how much you like ANTON and the learning content and how we can improve it.\"), p(\"If you are at least 16 years old, you may enter your e-mail address or mobile phone number under Settings. We can then restore your access in case you lose your credentials.\"), p(\"If you contact us via help chat or e-mail, these messages and the date and time of the messages will be stored so that we can communicate with you.\"), p(\"3.2 Information that we automatically receive through your use of ANTON\"), p(\"When you use ANTON, we will store data about your use on your device and sync it with our server when an internet connection is available. This enables you to use ANTON with your user account on multiple devices.\"), p(\"This data includes: app pages launched and your learning progress, your game results, your membership in groups and schools if provided, content created by you such as pictures and learning lists, your device type, operating system and internet browser as well as your pseudonymized IP-address.\"), p(\"We do not store the last three digits of your IP-address in our system, so it cannot be used to identify you.\"), p(\"We will <b>not</b> store or track your device location.  Because we do not store your full IP-address, it can also not be used to identify your precise location. We use your pseudonymized IP-address to get a very broad approximation of your location that is reliable on the country level but not on a city level.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. What is this data used for?\",\n      content: [p(\"We do <b>not</b> sell or rent any of your, or your child’s, personal information to any third-party for any purpose - including for advertising or marketing purposes. Third-party advertising is not permitted in ANTON and student-data is never used for behaviorally-targeted advertising. \"), p(\"We use the personal information we collect only to provide and improve ANTON, for educational purposes, security, and safety purposes, to answer your requests and questions send to our customer service or as allowed or required by law.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. How long is the data stored?\",\n      content: [p(\"Your personal data will be deleted as soon as the purpose for which it was stored ceases to apply. \"), p(\"Your user data will be stored for as long as you have an active user account at ANTON. If you no longer use ANTON and are not a member of a school directory administered by a school, we will automatically delete your user data 12 months after you last logged in or after your ANTON Plus membership ends.\"), p(\"If you are a member of a school directory, the school is responsible for deleting your user account via our user interface when the purpose for which it was stored ceases to apply (e.g. when you leave the school). \"), p(\"We do not retain a user’s&nbsp;personal information&nbsp;for any longer than is necessary for&nbsp;educational purposes&nbsp;or legal obligations, or to provide the Service for which we receive or collect the user’s personal information. Additionally, we only keep a user’s personal information for as long as her or his user account is&nbsp;active, unless we are required by law or the user’s school to retain it, need it to ensure the security of our community or our Service, or to enforce our Terms.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Does ANTON share data with third parties?\",\n      content: [p(\"We do <b>not</b> sell or rent any of your, or your child’s, personal information to any third-party for any purpose - including for advertising or marketing purposes. Third-party advertising is not permitted in ANTON and student-data is never used for behaviorally-targeted advertising. \"), p(\"Moreover, we do <b>not</b> share personal information with any third-parties except in the limited circumstances described in this Privacy Policy and as stated below:\"), p(\"a) Other Users You Interact with on ANTON: \"), p(\"No student, teacher or parent profiles are made available to the general public through ANTON. \"), p(\"Other users can see your nickname, avatar and score in the high score list of the games in the games section. If you generate content such as painting a picture or creating a learning lists yourself, you can decide whether you want to share this content with other users (the default setting is “no”).\"), p(\"Your group teacher(s) and - if your school uses the school directory - the school administrator and the teachers at your school who have been authorized by him/her can see your name and learning progress and look up your login-code for you.\"), p(\"When you register as a teacher and select a school, the school directory administrator of that school can view your name and registration code and add you to the school directory. \"), p(\"Please remember that information (including personal Information) or content that you voluntarily share with others - including with other ANTON users - can be viewed, copied, saved, and used by the people you share it with. We cannot control what people do with the information you choose to share with them and we are not responsible for how others collect, use, or share that information or content.\"), p(\"b) Trusted Service Providers: We work with vendors, service providers, and other partners to help us provide ANTON by performing tasks on our behalf. These companies have only limited access to data and are contractually bound to process the data solely on our behalf and only for the purpose for which it was disclosed. They are not third parties as defined in the GDPR but data processors (or service providers as defined under CCPA) on our behalf. We may need to share or provide information (including personal information) to them to help them perform these functions, for example sending e-mails on our behalf, hosting, and security. We may also authorize these companies to collect information on our behalf. These service providers must adhere to strict confidentiality and security obligations in a way that is consistent with this Privacy Policy. \"), p(\"c) Legal Requirements: We may disclose information if we have a good faith belief that doing so is necessary to comply with the law, such as complying with a subpoena or other legal process. We may need to disclose personal information if, in good faith, we believe it is necessary to protect the rights, property, or safety of ANTON, our employees, our community, or others, or to prevent violations of our Terms of Service or other agreements. This can include, without limitation, responding to law enforcement and requests by the government. Where appropriate, we notify users about the legal requests, unless providing notice is prohibited by the legal process itself, by court order, or by applicable law; or if we believe that providing notice would be ineffective, create a risk of injury or bodily harm to an individual or group, or create or increase a risk of fraud upon ANTON, or its users. In cases where we have to comply with legal requests without notice for these reasons, we will attempt to notify the user about the request after the fact where appropriate and where we believe in good faith that we are no longer prevented from doing so.\"), p(\"d) Sharing with Solocode companies: In the future, Solocode may grow and reorganize. We may need to share your personal information with our affiliated companies, such as our parent company, subsidiaries, joint venture partners, or other companies that we control or that are under common control with us. If we do so, we will require these companies to agree to use your personal information in accordance with this Privacy Policy.\"), p(\"e) Change of control: The&nbsp;Student Privacy Pledge&nbsp;requires us (and all other signatories) to ensure that successor entities that may acquire part or all of our organization in the future will act in accordance with the pledge principles or allow users a choice whether to share information with the future entity or have their information deleted. In accordance with the Student Privacy Pledge and applicable state and federal laws, and in connection with such a change to our organization, this Privacy Policy will continue to apply to your information, and any acquirer would only be able to handle your personal information as stated in this policy (unless the school, parent or eligible user consent to a new policy). We will inform you of an acquisition within 30 days following the completion of such a transaction, by posting on our homepage, or by e-mail to your e-mail address if you provided one to us. If you do not consent to the use of your personal information by such a successor company, subject to applicable law, you may request its deletion. We may also make information, including personal information, available to a potential investor or acquirer (or their advisors) in advance of any such transaction completion.\"), p(\"f) In the unlikely event that Solocode goes out of business, or files for bankruptcy, we will protect your&nbsp;personal information, and will not&nbsp;sell&nbsp;it to any third-party. \"), p(\"g) With your consent: Other than in the cases above, we won’t disclose any personal information for any purpose other than with parental or eligible user consent, or in cases where we process the data on behalf of a school with agreement or under the direction of the school.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. How is the security of the data guaranteed?\",\n      content: [p(\"Your ANTON account is protected by a password and/or a login-code. To protect against unauthorized access to your account, keep your password and login-code secret at all times. The security of your personal information is important to us. We are committed to protecting your data and have implemented technical, physical and administrative security measures to prevent unauthorized use, disclosure, or access to personal information, in particular:\"), p(\"Privacy by design and default: Our engineering team is committed to ensuring the security of your personal information. When we develop new features, we do this with privacy and security in mind from the outset.\"), p(\"We perform security testing; penetration testing; conduct risk assessments, and ensure compliance with our security policies.\"), p(\"We periodically review our data processing practices to guard against unauthorized access to systems.\"), p(\"When you enter any information anywhere on ANTON, we encrypt the transmission of that information using secure socket layer technology (SSL/TLS) by default.\"), p(\"We make sure passwords are stored and transferred securely using salted hashing and encryption.\"), p(\"Data centers meet the highest security standards and are certified according to DIN ISO/IEC 27001.\"), p(\"We automatically delete inactive accounts and user data 12 months after you last logged in or after your ANTON Plus membership ends and you are not a member of a school directory administered by a school.\"), p(\"We limit access to personal information to employees and independent contractors who are authorized to process it for us. These individuals are bound by strict confidentiality obligations and may face disciplinary action or termination if they fail to meet these obligations. \"), p(\"While we strive to maintain the security of personal information and work hard to ensure the integrity and security of our systems, no system is 100% immune and we cannot guarantee the security of information. User information may be compromised due to outages, attacks, human error, system failure, unauthorized use, or other factors beyond our control. We have an incident response management in place that ensures that we can respond in an adequate and timely manner to mitigate risks and inform users. \"), p(\"If we learn of a security breach, we will attempt to notify you electronically (subject to any applicable laws and school reporting requirements) so that you can take appropriate protective steps; e.g., we may post a notice on our homepage (anton.app) or elsewhere on the Service, and may send e-mail to you at the e-mail address you have provided to us. Depending on where you live, you may have a legal right to receive notice of a security breach in writing.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Our commitments to transparency and your rights\",\n      content: [p(\"You have control over the personal information you share with us, and you can access or correct this information at any time. You can also delete your account. \"), p(\"We provide ways to object, restrict or withdraw consent (where applicable) for the use of personal information you have provided to us. We make it easy for you to contact us and to transfer the personal information you have shared through the Service.\"), p(\"To exercise any of these rights, send an e-mail to privacy@anton.app. Please note that we may ask you to verify your identity before taking any further action on your request and we may require acceptable forms of personal identification.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Canada\",\n      content: p(\"We strive to provide privacy protection that is consistent with Canada’s private sector privacy laws, including the Personal Information Protection and Electronic Documents Act (“PIPEDA”). For any questions regarding how we comply with PIPEDA, please contact us at privacy@anton.app\")\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. California Privacy Disclosures\",\n      content: [p(\"As a California resident, you have the right to request information about how we collected and used your personal information in the last 12 months. If you are a resident of California, you have certain rights regarding your personal information under the CCPA. You can request that we disclose the specific pieces of information that we have collected about you, and you can also request that we delete your personal information that we have collected or maintained. We provide these rights to all of our users and you can find more information on your rights and how to exercise them in 8 Our commitments to transparency and your rights\"), p(\"We will <b>not</b> discriminate against you for exercising any of your rights under CCPA. Unless in accordance with the CCPA, we will <b>not</b> do any of the following: deny you goods or services, charge you different prices or rates for goods or services, including granting discounts or other benefits, or imposing penalties, suggest that you may receive a different price or rate for goods or services or a different level or quality of goods or services.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"11. General Data Protection Regulation\",\n      content: [p(\"Residents in the European Union or in the United Kingdom are entitled to certain rights with respect to personal information that we hold about them under the General Data Protection Regulation (GDPR) or in the UK under the Data Protection Act 2018 respectively:\"), p(\"11.1 Right to information\"), p(\"Every user has the right to receive free information about the personal data stored about him/her. Please send us an e-mail to privacy@anton.app with the following information for your identification: user name, registration code, name, e-mail address, postal address and date of birth.\"), p(\"11.2 Right to correction\"), p(\"You have the right to rectification and/or integration if the personal data processed concerning you is incorrect or incomplete.\"), p(\"11.3 Right to limit processing\"), p(\"Under the following conditions, you may request the restriction of the processing of personal data concerning you:\"), p(\"a) If you dispute the accuracy of the personal data concerning you for a period of time that allows us to verify the accuracy of the personal data.\"), p(\"b) If the processing is unlawful and you object to the deletion of the personal data and instead demand the restriction of the use of the personal data.\"), p(\"c) We no longer need the personal data for the purposes of the processing, but you need the personal data to assert, exercise or defend legal claims.\"), p(\"d) If you have lodged an objection to the processing in accordance with Art. 21 GDPR and it has not yet been established whether the legitimate reasons of the controller in relation to your reasons outweigh the others.\"), p(\"e) If the processing of personal data relating to you has been restricted, such data may be processed, with the exception of storage, only with your consent or for the purpose of asserting, exercising or defending legal claims or protecting the rights of another natural or legal person or on grounds of an important public interest of the Union or a Member State. If the restriction on processing has been restricted under the above conditions, you will be informed by us before the restriction is lifted.\"), p(\"11.4 Right of deletion\"), p(\"You can delete your user data by clicking the “delete user” button in your settings. We will delete all your user data stored on our servers after a safety period of 30 days.\"), p(\"To delete the user data stored on your devices, you may uninstall ANTON or click on Logout in the app under Settings and select the user profile to be deleted.\"), p(\"11.5 Right to data transferability\"), p(\"Schools can mark user accounts that they have created or for which they are responsible for administration for deletion after a transition period of 60 days. The users - and if necessary their legal guardians - must be informed by the school. The users are given the opportunity to transfer the data stored in the user account to a new account and to continue using it independently within a period of 60 days. After this period the user accounts will be automatically deleted.\"), p(\"You have the right to request a copy of your personal data in electronic format and the right to transfer this personal data for use in another's service. Upon request, we will send you a file containing your personal data. To do so, please send us an e-mail to privacy@anton.app with the following information for your identification: user name, registration code, first and last name, possibly maiden name, e-mail address, postal address and date of birth.\"), p(\"11.6 Right of objection\"), p(\"You have the right to object at any time, for reasons arising from your particular situation, to the processing of personal data concerning you, which is carried out on the basis of Art. 6, paragraph 1, letter e or f GDPR.\"), p(\"11.7 Right to revoke the declaration of consent under data protection law\"), p(\"You have the right to revoke your data protection declaration of consent at any time. Revocation of your consent does not affect the legality of the processing that has taken place on the basis of your consent until revocation.\"), p(\"11.8 Right of appeal to a supervisory authority\"), p(\"Without prejudice to any other administrative or judicial remedy, you have the right to appeal to a supervisory authority, in particular in the Member State of your residence, workplace or the location of the probable offense if you believe that the processing of personal data concerning you is in breach of the GDPR. The supervisory authority to which the complaint has been submitted will inform the complainant of the status and the results of the complaint, including the possibility of a judicial remedy under Art. 78 GDPR.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"12. What is the legal basis for the processing under GDPR?\",\n      content: [p(\"Insofar as we obtain the consent of the data subject for the processing of personal data, Art. 6 (1) (a) of the Basic Data Protection Regulation (GDPR) serves as the legal basis.\"), p(\"When processing personal data which is necessary for the performance of a contract to which the data subject is a party, Article 6 (1) lit. b GDPR serves as the legal basis. This also applies to processing operations which are necessary to carry out pre-contractual measures.\"), p(\"Insofar as processing of personal data is necessary to fulfil a legal obligation to which our company is subject, Art. 6 para. 1 lit. c GDPR serves as the legal basis.\"), p(\"If the processing is necessary to safeguard a legitimate interest of our company or of a third party and if the interests, fundamental rights and freedoms of the data subject do not outweigh the former interest, Art. 6 para. 1 lit. f GDPR serves as the legal basis for the processing.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"13. How will I be notified about changes to this policy?\",\n      content: [p(\"We may occasionally update this Privacy Policy as our practices and legal requirements evolve or to further protect our users. Please see “last updated” at the top of this page for the date it was last updated. We will not reduce your rights under this Privacy Policy without your explicit consent. If we make any significant changes, we will notify you by posting a notice on the Service and/or sending an e-mail (using the e-mail address you provided), so you can review any edits and make sure you are informed about them.\"), p(\"Furthermore, if we ever make material changes to the types of personal information we collect from children, or how we use it, we will notify parents in order to obtain parental consent or notice for those new practices and provide schools with the necessary information about these changes where they have obtained parental consent (or acted as the agent of the parent and provided consent on their behalf).\"), p(\"We encourage you to review this Privacy Policy from regularly, to stay informed about our processing of personal information through the Service. If you don’t agree with any changes to the Privacy Policy, you may delete your account. By continuing to use the Service after the updated Privacy Policy has become effective, you acknowledge that you accept and agree to the current version of the Privacy Policy.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"14. How can I contact ANTON with questions?\",\n      content: [p(\"If you have any questions or concerns about this Privacy Policy or how we protect user data, please contact us at privacy@anton.app\"), p(\"You may also write to us at:\"), p(\"solocode GmbH, Mehringdamm 61, 10961 Berlin\"), p(\"Our representative under the UK GDPR is:\"), p(\"GRCI Law Limited, Unit 3, Clive Court, Bartholomew’s Walk, Cambridgeshire Business Park, Ely, CB7 4EA, UK\"), p(\"ukrep@grcilaw.com\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"15. Explanation of terms\",\n      content: [p(\"GDPR: Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of individuals with regard to the processing of personal data and on the free movement of such data and repealing Directive 95/46/EC (basic data protection regulation).\"), p(\"UK DPA 2018: The Data Protection Act 2018 controls how your personal information is used by organisations, businesses or the government. It is the UK's implementation of the GDPR.\"), p(\"CCPA: The California Consumer Privacy Act is a state statute with the aim to enhance privacy rights and consumer protection for residents of the state of California in the United States.\"), p(\"Personal data: According to Art. 4(1) GDPR, any information relating to an identified or identifiable natural person; an identifiable person is one who can be identified, directly or indirectly, in particular by reference to an identifier such as a name, an identification number, location data, an online identifier, or one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person.\")]\n    }));\n  };\n})();","updated":"2026-02-24T12:02:31.672979"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/02_page_setLoginCodeNeedsPassword/_t.ls","text":"(function(){\n  return {\n    enterPassword: {\n      de: \"Um diese Funktion zu aktivieren, gib bitte dein Passwort ein:\",\n      en: \"Please enter your password to activate this feature.\",\n      fr: \"Tu dois entrer ton mot de passe pour activer cette fonction&nbsp;:\",\n      es: \"Ingresa tu contraseña para activar esta función:\",\n      pt: \"Por favor, insira sua senha para ativar esta função:\"\n    },\n    infoTextPw: {\n      de: \"Um deinen Anmelde-Code mit Passwort abzusichern, musst du zunächst dein Passwort eingeben. Falls du das vergessen haben solltest, kannst du es in deinen Einstellungen unter <b>Passwort</b> zurücksetzen. Die Funktion <b>Anmelde-Code mit Passwort absichern</b> findest du ebenfalls in den Einstellungen.\",\n      en: \"To secure your login code with your password, you must enter this password here. If you have forgotten your password, you can reset it in your settings under <b>Password</b>. You can also secure your login code later in your settings.\",\n      fr: \"Pour sécuriser ton code de connexion avec un mot de passe, tu dois d'abord entrer le mot de passe que tu as déjà établi.<br><br>Si tu l'as oublié tu peux le réinitialiser dans <b>Mot de passe</b>. Tu peux aussi trouver la fonction <b>Sécuriser le code de connexion</b> dans tes paramètres.\",\n      es: \"Para asegurar tu clave de acceso con contraseña, necesitarás ingresar tu contraseña. En caso de que la hayas olvidado, puedes restaurarla en los ajustes bajo el inciso <b>Contraseña</b>. La función <b>Proteger clave de acceso con contraseña</b> también está en los ajustes.\",\n      pt: \"Para proteger seu código de acesso com uma senha, você deve primeiro inserir sua senha. Se você a esqueceu, você pode redefini-la nas configurações em <b>Senha</b>. A função <b>Proteger código de acesso com senha</b> também pode ser encontrada nas configurações.\"\n    },\n    infoTextNoPw: {\n      de: \"Aktiviere nun bitte die Funktion <b>Anmelde-Code mit Passwort absichern</b>.<br>Dadurch ist der Zugriff zu deinem Nutzerkonto nur noch zusammen mit deinem Passwort möglich und dein Nutzerkonto ist besser geschützt.\",\n      en: \"Please activate the feature <b>Secure login code with password</b>.<br>This step further protects your ANTON account as access can only be obtained with a password.\",\n      fr: \"Nous te demandons d'activer maintenant la fonction <b>Sécuriser le code de connexion</b>.<br>L'accès à ton compte sera ainsi possible uniquement à l'aide de ton mot de passe et ton compte est mieux protégé.\",\n      es: \"Ahora, por favor, activa la función <b>Proteger clave de acceso con contraseña</b><br>De este modo sólo se podrá acceder a tu cuenta después de ingresar tu contraseña y tu cuenta estará mejor protegida. \",\n      pt: \"Agora, por favor, ative a função <b>Proteger código de acesso com senha</b>.<br>Desta forma, o acesso à sua conta de usuário só será possível com sua senha e, assim, sua conta estará mais protegida.\"\n    },\n    secureLoginCode: {\n      de: \"Anmelde-Code mit Passwort absichern\",\n      en: \"Secure login code with password\",\n      fr: \"Sécuriser le code de connexion\",\n      es: \"Proteger clave de acceso con contraseña\",\n      pt: \"Proteger código de acesso com senha\"\n    },\n    emptyPassword: {\n      de: \"Das Passwort darf nicht leer sein.\",\n      en: \"The password cannot be left blank.\",\n      fr: \"Le mot de passe ne peut pas rester vide.\",\n      es: \"La contraseña no puede quedar en blanco.\",\n      pt: \"A senha não pode ficar em branco.\"\n    }\n  };\n})();","updated":"2026-02-24T12:02:31.672979"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/resetLayout/reset.ls","text":"(function(){\n  return function(pw){\n    return pw.page.resetLayout = function(params){\n      var lv;\n      lv = pw.lastCssVars;\n      lv.pageTopMax = 10000;\n      lv.pageTop = 10000;\n      pw.page.centerDuration = 0;\n      pw.page.updateLayout();\n      pw.pageScrollWrapper.resetScrollBackStop();\n      if (!(params != null && params.keepScrollTop)) {\n        return pw.pageScrollWrapper.scrollTop = 0;\n      }\n    };\n  };\n})();","updated":"2024-02-13T10:33:55.852185"},{"path":"lib/gui/image/image.ls","text":"(function(){\n  return function(o){\n    var load, onLoaded, onError, div;\n    o.fileId = \"image/\" + o.id;\n    o.etag == null && (o.etag = \"any\");\n    load = function(){\n      return inc(\"load/load\")(o, onLoaded, onError);\n    };\n    onLoaded = function(base64, fileDetails){\n      var image;\n      if (engine.isBotMode) {\n        image = Img().css({\n          width: \"100%\",\n          height: \"100%\",\n          objectFit: \"cover\"\n        });\n        image.src = (fileDetails != null ? fileDetails.url : void 8) || base64;\n        image.attr({\n          alt: o.alt || \"\"\n        });\n        image.appendTo(div);\n      } else {\n        div.css({\n          backgroundImage: \"url(\" + base64 + \")\"\n        });\n      }\n      return requestAnimationFrame(function(){\n        return typeof o.onLoaded == 'function' ? o.onLoaded(base64, fileDetails) : void 8;\n      });\n    };\n    onError = function(){\n      div.append(inc(\"errorIcon/icon\")());\n      return requestAnimationFrame(function(){\n        return typeof o.onError == 'function' ? o.onError() : void 8;\n      });\n    };\n    div = Div({\n      display: \"inline-block\",\n      verticalAlign: \"bottom\",\n      width: \"10em\",\n      height: \"10em\",\n      backgroundSize: \"cover\",\n      backgroundPosition: \"50% 50%\",\n      backgroundRepeat: \"no-repeat\"\n    });\n    if (o.base64) {\n      onLoaded(o.base64, {\n        url: o.url\n      });\n    } else if (o.id) {\n      load();\n    } else {\n      onError();\n    }\n    return div;\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/seo/element/h1/h1.ls","text":"(function(){\n  var show;\n  show = typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog['var'](\"showSeoElements\") : void 8;\n  return function(html){\n    var h1;\n    h1 = document.createElement(\"h1\");\n    h1.css({\n      display: \"inline-block\",\n      fontSize: \"inherit\",\n      fontWeight: \"inherit\",\n      lineHeight: \"inherit\",\n      padding: 0,\n      margin: 0\n    }).secureHtml(html);\n    if (show || engine.isBotMode) {\n      h1.css({\n        pointerEvents: \"auto\",\n        color: Color.blue[800]\n      }).bind(\"mouseover\", function(){\n        return inc(\"tooltip/tooltip\")(h1);\n      });\n    }\n    return h1;\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/util/browser/setBreadcrumbs/set.ls","text":"(function(){\n  return function(breadcrumbs){\n    if (engine.isBotMode !== true && !((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"showSeoElements\"))) {\n      return;\n    }\n    return app.currentPage.breadcrumbs.html(inc(\"/lib/seo/element/breadcrumbs/breadcrumbs\")(breadcrumbs));\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/seo/element/a2/a.ls","text":"(function(){\n  var show;\n  show = typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog['var'](\"showSeoElements\") : void 8;\n  return function(p){\n    var a, href;\n    a = document.createElement(\"a\").css({\n      color: \"inherit\",\n      textDecoration: \"inherit\"\n    }).secureHtml(p.html).bind(\"click dragstart\", function(e){\n      e.preventDefault();\n      return false;\n    });\n    if (show || engine.isBotMode) {\n      href = \"https://anton.app/\" + engine.guiLanguage + \"/\" + p.pageUrl;\n      if (href.charAt(href.length - 1) !== \"/\") {\n        href += \"/\";\n      }\n      if (p.pageAnchor) {\n        href += \"#\" + p.pageAnchor;\n      }\n      a.css({\n        pointerEvents: \"auto\",\n        color: Color.blue[800],\n        textDecoration: \"underline\"\n      }).attr({\n        href: href\n      }).bind(\"mouseover\", function(){\n        return inc(\"tooltip/tooltip\")(a, href);\n      });\n    }\n    return a;\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"addons/navbar/bar/tabs/tab/learnList/item.ls","text":"(function(){\n  return function(){\n    return {\n      navCategory: \"learnList\",\n      title: T(\"learnListsTitle\"),\n      icon: path(\"/lib/svg/shape/learn-list.svg\"),\n      tap: function(){\n        if (!engine.isBotMode) {\n          return inc(\"/pages/learnList/start\")();\n        }\n      }\n    };\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/init/isBotMode/is.ls","text":"(function(){\n  return function(){\n    var a, isBotMode;\n    a = navigator.userAgent;\n    isBotMode = _.includes(window.location.href.toLowerCase(), \"gb=true\") || _.includes(window.location.href.toLowerCase(), \"botMode=true\") || _.includes(a, \"Googlebot\") || _.includes(a, \"Chrome/41.0\");\n    if (isBotMode) {\n      document.body.setAttribute(\"botmode\", \"true\");\n    }\n    return isBotMode;\n  };\n})();","updated":"2023-11-21T09:42:30.396932"},{"path":"pages/level/finishLevel/_shared/calcText/quotes/quotes-es.ls","text":"(function(){\n  return function(){\n    return {\n      notGoodWords: [\"¡Mantén la cabeza en alto!\", \"¡Paciencia!\", \"¡Manos a la obra!\", \"¡No pasa nada!\", \"¡Sigue intentando!\", \"¡Tú puedes!\", \"¡No te desanimes!\", \"¡Ánimo!\"],\n      notGood: [\"La próxima vez seguramente lo harás mejor.\", \"Acabas de mejorar y seguirás mejorando.\", \"La práctica hace al maestro.\", \"Poquito a poquito se llena el jarrito.\", \"Paso a paso se llega muy lejos.\", \"Inténtalo de nuevo.\", \"La práctica es el camino al éxito.\", \"Todos los superhéroes se tropezaban al principio.\", \"Prueba otra vez, de una vez.\", \"La próxima vez te saldrá mejor.\", \"Puedes mucho más de lo que tú crees.\", \"Todo es cuestión de práctica.\", \"Los errores nos enseñan a ser mejores.\", \"Los aciertos y los errores nos ayudan a ser mejores.\", \"Sólo tienes que seguir practicando.\"],\n      averageWords: [\"¡Bien!\", \"¡Bien hecho!\", \"¡Nada mal!\", \"¡Vamos bien!\", \"¡Así se hace!\", \"¡Vas por buen camino!\", \"¡Buen trabajo!\", \"¡Por ahí va!\", \"¡Bien jugado!\"],\n      average: [\"A la siguiente te saldrá todavía mejor.\", \"Mantén tu meta en la mira.\", \"Mantén la motivación en alto.\", \"Ahora hazlo otra vez.\", \"Arriba el entusiasmo y la concentración.\", \"¿Lo puedes hacer mejor?\", \"Estás mejorando.\", \"Prueba de nuevo.\", \"No bajes la guardia.\", \"Vas cada vez mejor.\", \"Síguele.\", \"Sigue practicando.\", \"Practica un poco más para juntar las tres estrellas.\"],\n      almostPerfectWords: [\"¡Lo lograste!\", \"¡Así se hace!\", \"¡Lo tienes!\", \"¡Mis respetos!\", \"¡Excelente!\", \"¡Buen trabajo!\", \"¡Wow!\", \"¡Lo conseguiste!\", \"¡Nada mal!\", \"¡Bravo!\", \"¡Felicidades!\", \"¡Estupendo!\"],\n      almostPerfect: [\"Casi todo bien.\", \"Te estás concentrando mucho.\", \"Sigue así.\", \"Casi ningún error.\", \"No te frenes.\", \"Se nota que has practicado mucho.\", \"No cualquiera.\", \"Vas por muy buen camino.\", \"Aquí huele a campeón.\", \"Estás aprendiendo mucho.\", \"Te estás acercando a la corona.\", \"Tres estrellas de una sola vez.\", \"Tres estrellas.\", \"Estas tres estrellas son todas tuyas.\"],\n      perfectWords: [\"¡Fabuloso!\", \"¡Magnífico!\", \"¡Fenomenal!\", \"¡Grandioso!\", \"¡Fantástico!\", \"¡Sensacional!\", \"¡Impecable!\", \"¡Brillante!\", \"¡Increíble!\", \"¡Insuperable!\", \"¡Maravilloso!\", \"¡Ay caramba!\", \"¡Goool!\", \"¡Genial!\", \"¡Sensacional!\", \"¡Tirititíto!\", \"¡Fantabuloso!\"],\n      perfect: [\"Sigue con esa concentración.\", \"No cometiste ni un solo error.\", \"Ya eres parte del club de Einstein.\", \"Arrasaste con todo.\", \"Ya te lo sabes.\", \"Ya te lo aprendiste.\", \"Lo hiciste como un profesional.\", \"Tú sí que puedes.\", \"Qué bien te queda esa corona.\", \"No te equivocaste ni una vez.\", \"Ya sabes cómo se hace.\", \"Qué bien te lo sabes.\"],\n      testFailed: [\"No aprobaste el test.\", \"No lograste pasar el test.\", \"Desafortunadamente, no lograste pasar el test.\", \"Desafortunadamente, no aprobaste el test.\", \"Lamentablemente, no aprobaste el test.\", \"Lamentablemente, no lograste pasar el test\", \"Esta vez no lograste pasar el test.\", \"Esta vez no aprobaste el test.\"],\n      testDone: [\"Pasaste el test.\", \"Aprobaste el test.\"],\n      testPerfect: [\"Pasaste el test a la perfección.\", \"Aprobaste el test con cero errores.\", \"Ni un solo error.\", \"Este test no se puede hacer mejor.\", \"Aprobaste el test sin un sólo error.\", \"Lograste pasar el test sin errores.\", \"Test resuelto a la perfección.\", \"Resolviste el test a la perfección.\", \"Sacaste 10.\"],\n      bulb: [\"Listo.\", \"Resuelto.\"]\n    };\n  };\n})();","updated":"2025-05-19T14:42:42.016121"},{"path":"pages/search/start.ls","text":"(function(){\n  return function(p){\n    var ref$;\n    p == null && (p = {});\n    if ((ref$ = projects.info()[\"app01-search\"]) != null && ref$.isLoaded) {\n      return inc(\"/../app01-search/start/start\")(p);\n    } else {\n      inc(\"/lib/util/cache/set/set\")(\"searchStartParams\", p);\n      return startPage({\n        path: path(\"loadingPage/page\")\n      });\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/update/update.ls","text":"(function(){\n  return function(pw){\n    var ref$;\n    if (pw.page !== app.currentPage) {\n      return;\n    }\n    inc(\"calcBottomFreeze/calc\")(pw);\n    inc(\"calcSoftKeyboardBottom/calc\")(pw);\n    inc(\"calcCssVars/calc\")(pw);\n    inc(\"freezeMinHeight/freeze\")(pw);\n    if (typeof (ref$ = pw.pageScrollWrapper).refresh == 'function') {\n      ref$.refresh();\n    }\n    return app.debugIcons.update();\n  };\n})();","updated":"2025-05-19T14:46:52.967299"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/pageWrapper/pageWrapper.ls","text":"(function(){\n  return function(page, pageCode){\n    var div, pageScrollWrapper, pageSpacer, pageCenterFix, pageMarginCollapseFix, breadcrumbs, navTop, top, bottom, navBottom, bottomFreeze, softKeyboardZone, popupWrapper, popupBottom, avatarOverlayWrapper;\n    div = Div({\n      position: \"fixed\",\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0,\n      overflow: \"hidden\",\n      opacity: 0,\n      zIndex: 0\n    }).addClass(\"pageWrapper\").html(pageScrollWrapper = ScrollDiv({\n      scrollbarMargins: {\n        top: \"calc(var(--topHeight) + var(--navTopHeight))\",\n        bottom: \"calc(var(--screenHeight) - var(--topHeight) - var(--navTopHeight) - var(--centerHeight))\"\n      }\n    }).addClass(\"pageScrollWrapper\").addClass(\"allowBackSwipe\").addClass(\"onStatusBarTap\").css({\n      position: \"absolute\",\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0,\n      zIndex: 0\n    }).html(pageSpacer = Div({\n      backgroundColor: \"white\",\n      width: \"var(--screenWidth)\",\n      minHeight: \"var(--screenHeight)\",\n      paddingTop: \"calc(var(--topHeight) + var(--navTopHeight))\",\n      paddingBottom: \"var(--bottomFreezeHeight)\",\n      maxWidth: \"100%\"\n    }).addClass(\"pageSpacer\").html(pageCenterFix = Div({\n      height: \"var(--centerFixHeight)\"\n    }).addClass(\"pageCenterFix\"), pageMarginCollapseFix = Div().html(Div({\n      height: \"1px\",\n      marginBottom: \"-1px\"\n    }), page.css({\n      textAlign: \"center\"\n    }).addClass(\"page\"), breadcrumbs = Div({\n      textAlign: \"center\"\n    }).addClass(\"breadcrumbs\"), Div({\n      height: \"1px\",\n      marginTop: \"-1px\"\n    })))), navTop = Div({\n      position: \"fixed\",\n      top: 0,\n      left: 0,\n      right: 0,\n      zIndex: 5,\n      borderBottom: \"1px solid \" + Color.grey[250],\n      backgroundClip: \"border-box\",\n      backgroundColor: Color.grey[150]\n    }).addClass(\"navTop safeAreaPaddingTop safeAreaPaddingLeft safeAreaPaddingRight\"), top = Div({\n      position: \"fixed\",\n      top: \"var(--navTopHeight)\",\n      left: 0,\n      right: 0,\n      zIndex: 4,\n      backgroundClip: \"border-box\",\n      backgroundColor: Color.grey[75],\n      borderBottom: \"1px solid \" + Color.grey[250],\n      boxShadow: \"0px 0px 7px rgba(0,0,0,0.1)\"\n    }).addClass(\"top safeAreaPaddingLeft safeAreaPaddingRight\").addClass(app.navbarPosition === \"bottom\" || !pageCode.navCategory ? \"safeAreaPaddingTop\" : void 8), bottom = Div({\n      position: \"fixed\",\n      bottom: \"var(--navBottomHeight)\",\n      left: 0,\n      right: 0,\n      zIndex: 2,\n      backgroundClip: \"border-box\",\n      backgroundColor: Color.grey[75],\n      borderTop: \"1px solid \" + Color.grey[250]\n    }).addClass(\"bottom bottomBar safeAreaPaddingBottom safeAreaPaddingLeft safeAreaPaddingRight\").hide(), navBottom = Div({\n      position: \"fixed\",\n      bottom: 0,\n      left: 0,\n      right: 0,\n      zIndex: 5,\n      backgroundColor: Color.grey[150],\n      backgroundClip: \"border-box\",\n      boxShadow: \"0px 0px 7px rgba(0,0,0,0.1)\",\n      borderTop: \"1px solid \" + Color.grey[250]\n    }).addClass(\"navBottom safeAreaPaddingBottom safeAreaPaddingLeft safeAreaPaddingRight\"), bottomFreeze = Div().addClass(\"bottomFreeze\").css({\n      position: \"fixed\",\n      bottom: 0,\n      left: 0,\n      right: 0,\n      zIndex: 5,\n      height: 0,\n      pointerEvents: \"none\"\n    }).html((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"showBottomFreeze\") ? Div({\n      position: \"absolute\",\n      left: 0,\n      top: \"-5px\",\n      width: \"10px\",\n      height: \"5px\",\n      background: \"pink\"\n    }) : void 8), softKeyboardZone = Div().addClass(\"softKeyboardZone\").css({\n      position: \"fixed\",\n      bottom: 0,\n      left: 0,\n      right: 0,\n      zIndex: 5,\n      height: 0,\n      pointerEvents: \"none\"\n    }).html((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"showBottomFreeze\") ? Div({\n      position: \"absolute\",\n      right: 0,\n      top: \"-5px\",\n      width: \"10px\",\n      height: \"5px\",\n      background: \"yellow\"\n    }) : void 8), popupWrapper = Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      zIndex: 7,\n      height: \"calc(var(--screenHeight) - var(--popupBottomHeight))\",\n      pointerEvents: \"none\"\n    }).addClass(\"popupWrapper safeAreaPaddingTop safeAreaPaddingBottom safeAreaPaddingLeft safeAreaPaddingRight\").hide(), popupBottom = Div({\n      position: \"absolute\",\n      bottom: 0,\n      left: 0,\n      right: 0,\n      backgroundColor: Color.grey[150],\n      borderTop: \"1px solid \" + Color.grey[250],\n      zIndex: 7\n    }).addClass(\"popupBottom safeAreaPaddingBottom safeAreaPaddingLeft safeAreaPaddingRight\").hide(), avatarOverlayWrapper = Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      zIndex: 8,\n      height: \"calc(var(--screenHeight) - var(--popupBottomHeight))\",\n      pointerEvents: \"none\"\n    }).addClass(\"avatarOverlayWrapper\").hide());\n    pageScrollWrapper.onStatusBarTap = function(){\n      return pageScrollWrapper.scrollToTop();\n    };\n    div.page = page;\n    div.pageSpacer = pageSpacer;\n    div.pageScrollWrapper = pageScrollWrapper;\n    div.pageCenterFix = pageCenterFix;\n    div.pageMarginCollapseFix = pageMarginCollapseFix;\n    div.breadcrumbs = breadcrumbs;\n    div.top = top;\n    div.bottom = bottom;\n    div.bottomFreeze = bottomFreeze;\n    div.softKeyboardZone = softKeyboardZone;\n    div.navTop = navTop;\n    div.navBottom = navBottom;\n    div.popupWrapper = popupWrapper;\n    div.popupBottom = popupBottom;\n    div.avatarOverlayWrapper = avatarOverlayWrapper;\n    page.pageWrapper = div;\n    page.pageSpacer = pageSpacer;\n    page.pageScrollWrapper = pageScrollWrapper;\n    page.pageCenterFix = pageCenterFix;\n    page.pageMarginCollapseFix = pageMarginCollapseFix;\n    page.breadcrumbs = breadcrumbs;\n    page.top = top;\n    page.bottom = bottom;\n    page.bottomFreeze = bottomFreeze;\n    page.softKeyboardZone = softKeyboardZone;\n    page.navTop = navTop;\n    page.navBottom = navBottom;\n    page.popupWrapper = popupWrapper;\n    page.popupBottom = popupBottom;\n    page.avatarOverlayWrapper = avatarOverlayWrapper;\n    return div;\n  };\n})();","updated":"2025-05-19T14:42:42.016121"},{"path":"lib/util/startPage/pageStart/calcNavbarPosition/calc.ls","text":"(function(){\n  return function(){\n    if (engine.isMacApp) {\n      return \"top\";\n    } else if (((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"showScreenKeyboard\")) || engine.isMobileApp) {\n      return \"bottom\";\n    } else {\n      return \"top\";\n    }\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"addons/navbar/bar/user/user/_menu/background/background.ls","text":"(function(){\n  return function(o){\n    var tap, div;\n    tap = function(){\n      return o.close();\n    };\n    div = Div({\n      position: \"fixed\",\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0,\n      cursor: \"default\",\n      zIndex: 101\n    }).addClass(\"mainMenu keyManagerScope\").html(Div({\n      position: \"absolute\",\n      top: 0,\n      bottom: 0,\n      width: \"100%\",\n      backgroundColor: Color.grey[700],\n      opacity: 0.2,\n      cursor: \"default\"\n    }).bind(\"touchstart\", function(e){\n      return e.preventDefault();\n    }).tap({\n      up: tap,\n      animation: \"none\"\n    }).css({\n      cursor: \"default\"\n    }), Div().addClass(\"keyManager-esc\").bind(\"keyManager\", tap));\n    return div;\n  };\n})();","updated":"2022-08-31T11:42:24.605126"},{"path":"addons/navbar/bar/user/user/items/itemsPreschool.ls","text":"(function(){\n  return function(){\n    var items;\n    return items = [inc(\"itemSettings/item\")(true), inc(\"itemExit/item\")()];\n  };\n})();","updated":"2022-08-31T11:42:24.605126"},{"path":"lib/init/blockOldBrowsers/detectOldChrome/detect.ls","text":"(function(){\n  return function(agent){\n    var isIE, isEdge, isChrome, r, v, ref$;\n    isIE = false || !!document.documentMode;\n    isEdge = !isIE && !!window.StyleMedia;\n    isChrome = _.includes(agent, \"Chrome\") && !isEdge;\n    if (!isChrome) {\n      return false;\n    }\n    if (engine.isBotMode) {\n      return false;\n    }\n    r = new RegExp(\"Chrome/([0-9]+).\");\n    v = (ref$ = r.exec(agent)) != null ? ref$[1] : void 8;\n    if (_.parseInt(v) < 51) {\n      return true;\n    }\n    return false;\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/util/logPromo/log.ls","text":"(function(){\n  app.logPromo == null && (app.logPromo = {\n    referrer: \"not set\",\n    lastCreated: undefined\n  });\n  return function(p){\n    var lastEvent, count, e, ref$, n, v;\n    if (engine.isBotMode) {\n      return;\n    }\n    if (_.isString(p)) {\n      p = {\n        event: p\n      };\n    }\n    if (p.isIgnored) {\n      return;\n    }\n    if (!_.startsWith(p.event, \"promoPlus_\")) {\n      debug(\"logPromo must start with 'promoPlus_'\");\n      return;\n    }\n    lastEvent = log.findLast(p.event);\n    count = p.isBack && lastEvent\n      ? lastEvent.count\n      : lastEvent ? lastEvent.count + 1 : 1;\n    if (p.isReferrer && p.isBack !== true) {\n      app.logPromo.referrer = p.event + \"/\" + count;\n      delete app.logPromo.details;\n    }\n    e = {\n      event: p.event,\n      referrer: app.logPromo.referrer,\n      count: count\n    };\n    if (!p.isReferrer || p.isBack) {\n      e.duration = parseInt((new Date() - app.logPromo.lastCreated) / 1000);\n    }\n    if (p.isBack) {\n      e.back = true;\n    }\n    if (p.isReferrer && !p.isBack) {\n      e.isReferrer = true;\n    }\n    if (p.details) {\n      (ref$ = app.logPromo).details == null && (ref$.details = {});\n      for (n in ref$ = p.details) {\n        v = ref$[n];\n        app.logPromo.details[n] = v;\n      }\n    }\n    if (app.logPromo.details != null) {\n      e.details = app.logPromo.details;\n    }\n    for (n in ref$ = _.omit(p, [\"event\", \"isReferrer\", \"isIgnored\", \"isBack\", \"details\"])) {\n      v = ref$[n];\n      e[n] = v;\n    }\n    if (typeof log != 'undefined' && log !== null) {\n      log.log(e);\n    }\n    app.logPromo.lastCreated = new Date();\n    if (deviceLog['var'](\"showLogPromoEvents\")) {\n      return debug(_.omit(e, [\"created\", \"duration\", \"src\"]));\n    }\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/gui/image/load/load.ls","text":"(function(){\n  return function(o, onLoaded, onError){\n    return inc(\"/lib/util/downloadContentFile/download\")({\n      fileId: o.fileId,\n      fileFolder: o.fileFolder,\n      etag: o.etag,\n      returnFileContent: true,\n      calcDetailsOnly: engine.isBotMode,\n      onError: onError,\n      onLoaded: onLoaded\n    });\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/init/startFirstPage/unknownUrl/unknownUrl.ls","text":"(function(){\n  return function(){\n    return startPage({\n      path: path(\"/pages/static/unknownUrl/page\"),\n      history: -(app.pageHistory.length - 1),\n      params: {\n        isDeepLink: engine.isBotMode || window.log == null\n      }\n    });\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/seo/element/h2/h2.ls","text":"(function(){\n  var show;\n  show = typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog['var'](\"showSeoElements\") : void 8;\n  return function(html){\n    var h2;\n    h2 = document.createElement(\"h2\");\n    return h2.css({\n      display: \"inline-block\",\n      fontSize: \"inherit\",\n      fontWeight: \"inherit\",\n      lineHeight: \"inherit\",\n      padding: 0,\n      margin: 0\n    }).css(show || engine.isBotMode ? {\n      color: Color.blue[800]\n    } : void 8).secureHtml(html);\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/init/freezeMinHeight/init.ls","text":"(function(){\n  return function(pw){\n    var p;\n    p = pw.page;\n    p.enableFreezeMinHeight = function(){};\n    return p.disableFreezeMinHeight = function(){};\n  };\n})();","updated":"2022-06-14T11:00:11.687375"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/header/dropdown/dropdown.ls","text":"(function(){\n  return function(o, items, index){\n    var div;\n    div = Div({\n      display: \"inline-flex\",\n      margin: \"0 0.2em\",\n      padding: \"0.5em\"\n    }).append(Div().html(items[index].label).css({\n      flex: \"1 1 auto\"\n    }), SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-down-mini.svg\"),\n      color: Color.grey[400]\n    }).css({\n      flex: \"0 0 1em\"\n    }));\n    div.tap(function(){\n      return OverlayMenu({\n        referenceDiv: div,\n        items: items,\n        direction: \"down left\",\n        adjustXY: \"-8 -12\"\n      });\n    });\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/school/_shared/schoolIcon/icon.ls","text":"(function(){\n  return function(o){\n    var d, imageId, size, base64, config, a, s, b;\n    o == null && (o = {});\n    d = o.schoolCode\n      ? inc(\"/data/school/calcSchoolDescription/calc\")(o.schoolCode)\n      : o.schoolDescription;\n    imageId = d != null ? d.imageId : void 8;\n    size = o.size || \"small\";\n    base64 = o.base64;\n    config = {\n      big: \"10em 6px\",\n      medium: \"6em 5px\",\n      small: \"3em 3px\",\n      mini: \"1.4em 2px\",\n      micro: \"1.2em 2px\"\n    };\n    a = config[size].split(\" \");\n    s = a[0];\n    b = a[1];\n    return Div({\n      flex: \"0 0 auto\",\n      width: s,\n      height: s,\n      borderRadius: \"999px\",\n      overflow: \"hidden\",\n      display: \"flex\",\n      backgroundColor: Color.grey[50],\n      border: b + \" solid \" + Color.grey[250],\n      zIndex: 0\n    }).append(base64\n      ? inc(\"base64/base64\")(base64, s)\n      : imageId\n        ? inc(\"image/image\")(imageId)\n        : inc(\"svg/svg\")());\n  };\n})();","updated":"2022-06-15T13:22:27.970972"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/pageTop/updateScrollDivDuringAnimation/update.ls","text":"(function(){\n  return function(pw){\n    var f;\n    f = function(){\n      var age;\n      age = new Date() - pw.lastPageTopChangeAt;\n      if (pw.page.centerDuration > 0 && age < pw.page.centerDuration) {\n        return requestAnimationFrame(f);\n      }\n    };\n    return f();\n  };\n})();","updated":"2024-02-13T10:33:55.852185"},{"path":"pages/static/schoolLicense/_t.ls","text":"(function(){\n  return {\n    antonLicense: {\n      de: \"ANTON-Schullizenz\",\n      en_gb: \"ANTON School Licence\",\n      en: \"ANTON School/District License\",\n      fr: \"Licence scolaire ANTON\",\n      es: \"Licencia Escolar ANTON\",\n      pt: \"Licença Escolar ANTON\"\n    },\n    license: {\n      de: \"Schullizenz\",\n      en_gb: \"School Licence\",\n      en: \"School License\",\n      fr: \"Licence scolaire\",\n      es: \"Licencia Escolar\",\n      pt: \"Licença Escolar\"\n    },\n    info: {\n      de: \"Viele zusätzliche Funktionen für Lehrkräfte, Schüler/innen und Verwaltung\",\n      en_gb: \"The ANTON School Licence gives your school access to many new features\",\n      en: \"Unlock the full ANTON experience for your school or district\",\n      fr: \"La licence scolaire ANTON permet à ton école d'avoir accès à de nombreuses fonctions supplémentaires.\",\n      es: \"La Licencia Escolar ANTON le da acceso a tu escuela a muchas funciones adicionales.\",\n      pt: \"A Licença Escolar ANTON dá à sua escola acesso a muitas funções adicionais.\"\n    },\n    schoolAdminFeature: {\n      de: \"Schulverwaltung: ANTON einfach für die ganze Schule einrichten\",\n      en: \"School admin: set up ANTON for the whole school easily\",\n      fr: \"Administration de l'école&nbsp;: mets facilement en place ANTON pour toute l'école.\",\n      es: \"Administración de la escuela: activa ANTON para toda la comunidad educativa sin complicaciones.\",\n      pt: \"Administração da escola: configure o ANTON para toda a comunidade escolar, sem complicações.\"\n    },\n    schoolDirectoryFeature: {\n      de: \"Schulverzeichnis: erleichtert den Einstieg für alle Lehrkräfte\",\n      en: \"School directory: find all users and add them to groups easily\",\n      fr: \"Répertoire scolaire&nbsp;: constitue rapidement des groupes d'élèves.\",\n      es: \"Directorio escolar: encuentra fácilmente a los y las usuarias para formar grupos.\",\n      pt: \"Diretório Escolar: encontre usuários facilmente para formar grupos.\"\n    },\n    assignExercisesFeature: {\n      de: \"Pinnen: für einzelne Schüler/innen und Untergruppen\",\n      en_gb: \"Pins: assign exercises to individual pupils and subgroups\",\n      en: \"Differentiated Assignments: Assign content at the classroom, small group, or individual student level.\",\n      fr: \"Épingles&nbsp;: attribue des exercices à un élève à la fois ou à un sous-groupe.\",\n      es: \"Asignar: asigna contenidos a grupos o estudiantes en particular.\",\n      pt: \"Atribuir tarefas: para grupos, subgrupos e alunos individualmente.\"\n    },\n    learningProgressFeature: {\n      de: \"Report: Lernerfolg aller Schüler/innen auf einen Blick\",\n      en_gb: \"Reports: detailed reports on the progress of all pupils\",\n      en: \"Reports: detailed reports on the progress of all students\",\n      fr: \"Rapports&nbsp;: suis de près les progrès de ta classe.\",\n      es: \"Progreso: informe detallado del aprendizaje de cada estudiante.\",\n      pt: \"Progresso de aprendizagem: informação detalhada do aprendizado de todos os alunos.\"\n    },\n    antonPlusFeature: {\n      de: \"ANTON-Plus für alle Schulmitglieder (ab Schullizenz-Plus)\",\n      en_gb: \"School Licence Plus: ANTON Plus for all pupils and teachers at your school\",\n      en: \"ANTON Plus for all students and teachers at your school\",\n      fr: \"Licence scolaire Plus&nbsp;: ANTON-Plus pour tous les membres de l'école.\",\n      es: \"Licencia Escolar Plus: ANTON-Plus para todos los miembros de la escuela.\",\n      pt: \"ANTON-Plus para todos os professores e alunos da escola.\"\n    },\n    certificatesFeature: {\n      de: \"ANTON-Urkunden: Erstellen, herunterladen, drucken und teilen.\",\n      en_gb: \"ANTON certificates: create, download, print and share\",\n      en: \"ANTON Certificates: Generate, download, print, and share achievement certificates for students.\",\n      fr: \"Certificats ANTON&nbsp;: crée, télécharge et imprime les diplômes des élèves.\",\n      es: \"Certificados ANTON: diseña, descarga, comparte e imprime certificados para los estudiantes.\",\n      pt: \"Certificados ANTON: crie, baixe, imprima e compartilhe.\"\n    },\n    integrationsFeature: {\n      de: \"Integrationen: Verbinde ANTON in wenigen Minuten mit deinen bestehenden SIS-, LMS- und SSO-Anbietern.\",\n      en: \"Integrations: Connect ANTON to your existing SIS, LMS, and SSO providers in minutes.\",\n      fr: \"Intégrations&nbsp;: connecte ANTON à tes fournisseurs SIS, LMS et SSO existants en quelques minutes.\",\n      es: \"Integraciones: conecta ANTON con tus proveedores actuales de SIS, LMS y SSO en cuestión de minutos.\",\n      pt: \"Integrações: conecte o ANTON aos seus provedores de SIS, LMS e SSO existentes em poucos minutos.\"\n    },\n    districtAdminFeature: {\n      de: \"Schulträgerverwaltung: Verwalte alle Schulen über ein zentrales Dashboard mit zentralisierten Kontrollen und Berechtigungen.\",\n      en: \"District Administration: Manage schools from a single dashboard with centralized controls and permissions.\",\n      fr: \"Administration du district&nbsp;: gère plusieurs écoles depuis un tableau de bord unique, avec des contrôles et des autorisations centralisés.\",\n      es: \"Administración del distrito: gestiona varias escuelas desde un único panel con controles y permisos centralizados.\",\n      pt: \"Administração do distrito: gerencie várias escolas a partir de um único painel com controles e permissões centralizados.\"\n    },\n    districtAnalyticsFeature: {\n      de: \"Schulträger-Analysen: Erfasse Nutzungs- und Leistungsdaten deiner gesamten Schule oder deines Schulträgers – nicht nur einzelner Klassen.\",\n      en: \"District-Level Analytics: Track usage and performance data across your school or district, not just individual classrooms.\",\n      fr: \"Analyses au niveau du district&nbsp;: suis les données d'utilisation et de performance pour toute ton école ou ton district, et pas seulement pour chaque classe.\",\n      es: \"Analíticas a nivel de distrito: realiza un seguimiento del uso y el rendimiento en toda tu escuela o distrito, no solo en cada aula.\",\n      pt: \"Análises do distrito: acompanhe os dados de uso e desempenho em toda a sua escola ou distrito, e não apenas em salas de aula individuais.\"\n    },\n    extrasFeature: {\n      de: \"Bonus-Funktionen: Schalte zusätzliche Spiele, Avatare und Engagement-Extras für alle Schüler/innen und Lehrkräfte schul- und schulträgerweit frei.\",\n      en: \"Bonus Features: Unlock additional games, avatars, and engagement add-ons for all students and teachers school and district-wide.\",\n      fr: \"Fonctionnalités bonus&nbsp;: débloque des jeux, des avatars et des outils d'engagement supplémentaires pour tous les élèves et enseignants de l'école et du district.\",\n      es: \"Funciones extra: desbloquea juegos, avatares y complementos de motivación adicionales para todos los estudiantes y docentes de la escuela y el distrito.\",\n      pt: \"Funções bônus: desbloqueie jogos, avatares e complementos de engajamento adicionais para todos os alunos e professores da escola e do distrito.\"\n    },\n    price: {\n      de: \"Preis: ab 250 € inkl. MwSt. pro Jahr (siehe&nbsp;Info-Broschüre)\",\n      en: \"Price: from £250 incl. VAT per year (see&nbsp;info brochure)\",\n      fr: \"Prix&nbsp;: à partir de 250&nbsp;€&nbsp;TTC par an (voir notre&nbsp;brochure). \",\n      es: \"Precio: desde 250 € / US$ 250 al año IVA/VAT incluido (ver folleto informativo).\",\n      pt: \"Preço por ano para toda a escola:<br>• até 500 alunos = R$3.500<br>• mais de 500 alunos = R$6.000<br>(consulte o <i>Folheto informativo</i>)\"\n    },\n    extraPriceInfoFR: {\n      de: false,\n      en: false,\n      fr: \"Ton établissement compte moins de 100&nbsp;élèves au total&nbsp;? Nous soutenons les petits établissements avec une réduction de 30&nbsp;%. Écris-nous à licence-scolaire@anton.app pour faire ta demande.\",\n      es: false,\n      pt: false\n    },\n    infoBrochure: {\n      de: \"Info-Broschüre (PDF)\",\n      en: \"Info brochure (PDF)\",\n      fr: \"Brochure (PDF)\",\n      es: \"Folleto informativo (PDF)\",\n      pt: \"Folheto informativo (PDF)\"\n    },\n    onlineOrder: {\n      de: \"Online bestellen\",\n      en_gb: \"Order Online\",\n      en: \"Request Quote\",\n      fr: \"Commander en ligne\",\n      es: \"Pedido en línea\",\n      pt: \"Pedido on-line\"\n    },\n    activationInfoDE: {\n      de: \"Bestellungen werden im Moment innerhalb von 2 bis 5 Tagen (auch am Wochenende) bearbeitet. Wenn deine Schule freigeschaltet ist, erhältst du von uns eine E-&#65279;Mail mit einer Startanleitung. Eine Eingangs&shy;bestätigung deiner Bestellung können wir dir derzeit leider nicht zukommen lassen.\",\n      en: false,\n      fr: false,\n      es: false,\n      pt: false\n    },\n    other: {\n      de: \"Anderes Land\",\n      en: \"Other\",\n      fr: \"Autre\",\n      es: \"Otro\",\n      pt: \"Outro\"\n    },\n    licenseUrl: {\n      de: \"schullizenz\",\n      en_gb: \"school-licence\",\n      en: \"school-license\",\n      fr: \"licence-scolaire\",\n      es: \"licencia-escolar\",\n      pt: \"licenca-escolar\"\n    },\n    mobilePrintInfo: {\n      de: \"Am Ende der Online-Bestellung wirst du gebeten, das fertig ausgefüllte Formular zu drucken.<br><br><b>Hast du mit diesem Gerät Verbindung zu einem Drucker?</b><br><br>Falls nicht, nutze bitte stattdessen ein anderes Gerät.\",\n      en: \"At the end of your online order, you will be asked to print the completed form. <br><br><b>Is your device connected to a printer?</b> <br><br>If not, please use another device instead.\",\n      fr: \"À la fin de ta commande en ligne, tu devras imprimer le formulaire complété. <br><br><b>Ton appareil est-il connecté à une imprimante&nbsp;?</b> <br><br>Si ce n'est pas le cas, merci d'utiliser un autre appareil.\",\n      es: \"Al finalizar tu pedido en línea, se te pedirá que imprimas el formulario lleno. <br><br><b>¿Estás conectado a una impresora con este dispositivo?</b> <br><br>De no ser así, favor de utilizar otro dispositivo.\",\n      pt: \"Ao finalizar o seu pedido online, será pedido que você imprima o formulário preenchido. <br><br><b>Este dispositivo está conectado a alguma impressora?</b> <br><br>Se não estiver, por favor, utilize um outro dispositivo.\"\n    },\n    continueButton: {\n      de: \"Fortfahren\",\n      en: \"Continue\",\n      fr: \"Continuer\",\n      es: \"Continuar\",\n      pt: \"Continuar\"\n    },\n    cancelButton: {\n      de: \"Abbrechen\",\n      en: \"Cancel\",\n      fr: \"Annuler\",\n      es: \"Interrumpir\",\n      pt: \"Cancelar\"\n    }\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"lib/gui/multiform/submit/submit.ls","text":"(function(){\n  return function(p){\n    return function(id){\n      var ref$, ref1$, values, ref2$;\n      if ((ref$ = document.activeElement) != null) {\n        ref$.blur();\n      }\n      if ((ref1$ = app.lastInput) != null) {\n        ref1$.stop();\n      }\n      inc(\"trimOnSubmit/trim\")(p);\n      values = p.getValues();\n      if (_.isFunction(p.params.onSubmit)) {\n        return p.params.onSubmit(values, id);\n      } else {\n        if (id) {\n          return typeof (ref2$ = p.params.onSubmit)[id] == 'function' ? ref2$[id](values) : void 8;\n        } else {\n          return (ref2$ = p.div.closest(\".scrollDiv\")) != null ? ref2$.scrollElementIntoView(p.div.lastChild) : void 8;\n        }\n      }\n    };\n  };\n})();","updated":"2023-10-19T08:08:22.224599"},{"path":"lib/init/onNewLogEvents/debugOpenFileFromIDE/debugOpenFileFromIDE.ls","text":"(function(){\n  return function(events){\n    var e;\n    e = _.last(events);\n    if (e.logId !== (typeof log != 'undefined' && log !== null ? log.id() : void 8)) {\n      return;\n    }\n    return inc(\"/lib/util/previewIdeFilePath/preview\")(e.ideFilePath);\n  };\n})();","updated":"2023-10-19T08:08:22.224599"},{"path":"lib/util/previewIdeFilePath/enableDebugChallenge/enable.ls","text":"(function(){\n  return function(){\n    if (engine.isDebug) {\n      return;\n    }\n    return engine.isDebugChallenge = true;\n  };\n})();","updated":"2023-10-19T08:08:22.224599"},{"path":"lib/util/previewIdeFilePath/startPage/previewTopic/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      backLabel: \"topic\" + page.params.topicPath.split(\"/topic\")[1],\n      title: \"Topic Preview\"\n    });\n  };\n})();","updated":"2023-10-19T08:08:22.224599"},{"path":"lib/util/previewIdeFilePath/startPage/previewTopic/loadBlocks/load.ls","text":"(function(){\n  return function(onDone){\n    var load, onLoaded;\n    load = function(){\n      return inc(\"/lib/util/loadTopic/load\")({\n        path: app.currentPage.params.topicPath,\n        idePreview: true,\n        onLoaded: onLoaded\n      });\n    };\n    onLoaded = function(topic){\n      return onDone(topic.blocks);\n    };\n    return load();\n  };\n})();","updated":"2023-10-19T08:08:22.224599"},{"path":"lib/gui/promptPopup/popup.ls","text":"(function(){\n  return function(o){\n    var label, done, prefill, textMode, labelCancel, labelConfirm, submit, div, input, popup;\n    label = o.label;\n    done = o.done;\n    prefill = o.prefill;\n    textMode = o.textMode;\n    labelCancel = o.labelCancel;\n    labelConfirm = o.labelConfirm;\n    submit = function(){\n      popup.close(\"submit\");\n      return done(input.getValue().trim());\n    };\n    div = Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      padding: \"1em\"\n    }).append(Div({\n      marginBottom: \"1em\"\n    }).html(label), input = inc(\"/lib/gui/inputEditable/input\")({\n      onSubmit: submit,\n      value: prefill,\n      textMode: textMode\n    }).css({\n      marginBottom: \"1em\",\n      width: \"15em\",\n      maxWidth: \"90%\",\n      overflow: \"hidden\"\n    }), Div().html(Button(labelCancel || T(\"cancelButton\")).css({\n      margin: \"0.5em\"\n    }).tap({\n      up: function(){\n        return popup.close();\n      },\n      key: \"esc\"\n    }), Button(labelConfirm || T(\"confirmButton\")).css({\n      margin: \"0.5em\"\n    }).tap({\n      up: submit,\n      key: \"enter\"\n    })));\n    popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(type){\n        if (type !== \"submit\") {\n          return done();\n        }\n      }\n    });\n    input.start();\n    return popup;\n  };\n})();","updated":"2022-07-20T05:44:22.261496"},{"path":"lib/gui/drawerMenu/menuRows/rowFolder/isDebugIcon/isDebugIcon.ls","text":"(function(){\n  return function(item){\n    if (_.every(item.items, \"isDebug\") && engine.isDebug) {\n      return SvgIcon({\n        svg: path(\"/lib/svg/shape/debug.svg\")\n      }).css({\n        flex: \"0 0 auto\",\n        margin: \"0 0.5em\"\n      });\n    }\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/calcShowAppRatePage/calc.ls","text":"(function(){\n  return function(){\n    var ref$;\n    return engine.isMobileApp && (typeof AppRate != 'undefined' && AppRate !== null) && ((ref$ = Store(\"deviceRememberUser\")) != null ? ref$ : true) && deviceLog.findLast(\"hasSeenAppRatePage\") == null && log.findLast(\"hasSeenAppRatePage\") == null && inc(\"hasAtLeastFourCoins/hasAtLeastFourCoins\")();\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/page.ls","text":"(function(){\n  return function(page){\n    page.userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    page.isFirstCoinEver = page.params.isFirstCoinEver;\n    page.showAppRatePage = inc(\"calcShowAppRatePage/calc\")();\n    page.totalCoins = page.userDescription.totalCoins;\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      start: function(){\n        page.html(inc(\"totalAndCoin/totalAndCoin\")(page), inc(\"text/text\")(), inc(\"button/button\")(page));\n        return inc(\"/lib/util/soundEffectPlay/soundEffectPlay\")(\"notification\");\n      }\n    };\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"lib/gui/divEditable/onPaste/on.ls","text":"(function(){\n  return function(d, e){\n    var c, ref$, ref1$, s;\n    e.preventDefault();\n    c = (ref$ = e.clipboardData) != null\n      ? ref$\n      : {};\n    if (_.includes((ref$ = c.files) != null ? (ref1$ = ref$[0]) != null ? ref1$.type : void 8 : void 8, \"image\")) {\n      inc(\"onPasteImage/on\")(d, c);\n      return;\n    }\n    s = c.getData(\"text/plain\") || c.getData(\"Text\") || \"\";\n    s = _.replaceAll(s, \"\\r\\n\", \"\\n\");\n    if (!d.multilinePaste) {\n      s = s.split(\"\\n\")[0];\n    }\n    d.insertAtCursor(s);\n    return d.onSelectionChange();\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      width: \"25em\",\n      maxWidth: \"90%\",\n      margin: \"1.5em auto\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"receiveNewCoin\"));\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"addons/topbarLevel/feedbackIcon/00_shared/sendFeedback/send.ls","text":"(function(){\n  return function(o){\n    var e, p, ref$, ref1$, fle, proj, uid, id, fileName, html, req, url, onResult;\n    e = {\n      event: \"sendFeedback\",\n      type: o.type,\n      pagePath: app.currentPagePath,\n      scrollTop: app.currentPage.pageScrollWrapper.scrollTop,\n      width: body.width(),\n      height: body.height(),\n      appType: inc(\"/lib/util/calcAppType/calc\")()\n    };\n    if (p = app.currentPage.levelPlayer) {\n      e.currentSlideIndex = p.currentSlideIndex;\n      e.trainer = (ref$ = p.currentSlide) != null ? (ref1$ = ref$.trainerParams) != null ? ref1$.trainer : void 8 : void 8;\n      e.level = p.level.path;\n      e.puid = p.level.puid;\n    } else if (fle = app.currentPage.finishLevelEvent) {\n      proj = fle.puid.split(\"/\")[0];\n      uid = fle.puid.split(\"/\")[1];\n      e.level = \"/../\" + proj + fle.level;\n      e.puid = fle.puid;\n    }\n    if (o.text) {\n      e.text = o.text;\n    }\n    if (engine.isDebug) {\n      e.isDebug = true;\n    }\n    id = Math.round(Math.random() * 10e20).toString(16);\n    fileName = \"feedbackScreenshot_\" + id + \".html\";\n    html = inc(\"generateHtml/generate\")(o);\n    req = {\n      fileName: fileName,\n      uploader: log.id().slice(0, 5),\n      data: html,\n      mimeType: \"text/html\"\n    };\n    url = inc(\"/lib/util/serverUrl/serverUrl\")(\"apis2\");\n    onResult = function(error, data){\n      var ref$;\n      if (!error && data.status !== \"error\" && !((ref$ = data.filePath) != null && ref$.error)) {\n        e.path = fileName;\n      }\n      return typeof log != 'undefined' && log !== null ? log.log(e) : void 8;\n    };\n    return helpers.httpRequest.post(url + \"/feedbackImageUpload\", req, onResult);\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/content/plan/page.ls","text":"(function(){\n  return function(page){\n    inc(\"fixPlanPath/fix\")(page);\n    if (_.includes(page.params.planPath, \"c-preschool-shapes\")) {\n      return inc(\"/../app01-preschool/pages/plan/page\")(page);\n    }\n    page.context = page.params.context;\n    page.planDescription = inc(\"/data/content/calcPlanDescription/calc\")(page.params.planPath);\n    return {\n      navCategory: inc(\"calcNavCategory/calc\")(),\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        var loadPlan, create;\n        loadPlan = function(){\n          return inc(\"loadPlan/load\")(page, create);\n        };\n        create = function(plan){\n          page.plan = plan;\n          page.lastViewedBlockPath = inc(\"calcLastViewedBlockPath/calc\")(page);\n          page.updateUrlDescription();\n          page.html(inc(\"topics/topics\")(page));\n          inc(\"scrollToPosition/scroll\")(page);\n          return page.scopeRender({\n            enabled: true,\n            debug: false,\n            maxDurations: \"50 20 10\",\n            nearScopeSize: 0.5\n          });\n        };\n        if (page.params.history === -1) {\n          return loadPlan();\n        } else {\n          page.append(page.spinner = inc(\"/lib/gui/spinner/spinner\")());\n          return inc(\"/lib/util/waitFrames/wait\")(4, loadPlan);\n        }\n      }\n    };\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/content/plan/_topbar/params/params.ls","text":"(function(){\n  return function(page){\n    var params, ref$, ref1$;\n    if (deviceLog['var'](\"enableLearnBetaTab\")) {\n      return inc(\"paramsLearnTabBeta\")(page);\n    }\n    params = {\n      download: true,\n      title: engine.isBotMode\n        ? T(\"lessons\") + ((ref$ = page.planDescription) != null ? ref$.displayName : void 8)\n        : (ref1$ = page.planDescription) != null ? ref1$.displayName : void 8\n    };\n    if (engine.isBotMode) {\n      return params;\n    }\n    if (page.params.context === \"searchDeep\") {\n      params.back = true;\n    } else if (page.params.context === \"searchResult\" && page.params.searchQuery) {\n      params.back = function(){\n        return inc(\"../menu/menu\")(\"search\");\n      };\n      params.backLabel = T(\"backToSearch\");\n    } else {\n      params.menu = function(){\n        return inc(\"../menu/menu\")(\"plan\");\n      };\n      params.menuLabel = T(\"changeSubject\");\n    }\n    return params;\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/static/messageCategory/disable/page.ls","text":"(function(){\n  return function(page){\n    page.publicId = inc(\"../_shared/calcPublicId/calc\")(page);\n    page.messageCategory = inc(\"../_shared/calcMessageCategory/calc\")(page);\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        var submit, onSuccess, onError;\n        submit = function(){\n          return inc(\"submit/submit\")(page, onSuccess, onError);\n        };\n        onSuccess = function(displayName){\n          return page.html(inc(\"../_shared/iconCross/icon\")(), inc(\"title/title\")(displayName), inc(\"text/text\")(), inc(\"linkEnableAgain/link\")(page), inc(\"../../_shared/linkToStart/link\")());\n        };\n        onError = function(){\n          return page.html(inc(\"../../_shared/iconError/icon\")(), inc(\"../../_shared/textError/text\")(), inc(\"../../_shared/linkToStart/link\")());\n        };\n        page.css({\n          margin: \"2em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\"\n        }).html(inc(\"/lib/gui/spinner/spinner\")());\n        return submit();\n      }\n    };\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/static/messageCategory/enable/page.ls","text":"(function(){\n  return function(page){\n    page.publicId = inc(\"../_shared/calcPublicId/calc\")(page);\n    page.messageCategory = inc(\"../_shared/calcMessageCategory/calc\")(page);\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        var submit, onSuccess, onError;\n        submit = function(){\n          return inc(\"submit/submit\")(page, onSuccess, onError);\n        };\n        onSuccess = function(displayName){\n          return page.html(inc(\"../_shared/iconCheck/icon\")(), inc(\"title/title\")(displayName), inc(\"text/text\")(), inc(\"../../_shared/linkToStart/link\")());\n        };\n        onError = function(){\n          return page.html(inc(\"../../_shared/iconError/icon\")(), inc(\"../../_shared/textError/text\")(), inc(\"../../_shared/linkToStart/link\")());\n        };\n        page.css({\n          margin: \"2em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\"\n        }).html(inc(\"/lib/gui/spinner/spinner\")());\n        return submit();\n      }\n    };\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/static/messageCategory/enable/submit/submit.ls","text":"(function(){\n  return function(page, onSuccess, onError){\n    var publicId, messageCategory;\n    publicId = page.publicId;\n    messageCategory = page.messageCategory;\n    if (!publicId || !messageCategory) {\n      onError();\n      return;\n    }\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/messageCategory/enable/enable\"),\n      params: {\n        publicId: publicId,\n        messageCategory: messageCategory\n      },\n      onCompleted: function(result){\n        if (result.status === \"ok\") {\n          return onSuccess(result.displayName);\n        } else {\n          debug(result);\n          return onError();\n        }\n      },\n      onError: function(error){\n        debug(error);\n        return onError();\n      },\n      onOffline: function(){\n        return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n      }\n    });\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/learnBeta/loadingPage/page.ls","text":"(function(){\n  return function(page){\n    return {\n      navCategory: \"learnBeta\",\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.html(inc(\"/lib/gui/spinner/spinner\")());\n        return inc(\"/lib/util/loadProject/load\")(\"app01-learn-beta\", function(){\n          var ref$;\n          if ((ref$ = projects.info()[\"app01-learn-beta\"]) != null && ref$.isLoaded) {\n            return inc(\"/../app01-learn-beta/start/start\")({\n              history: 0\n            });\n          } else {\n            return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/learnBeta/start.ls","text":"(function(){\n  return function(p){\n    var ref$;\n    p == null && (p = {});\n    if ((ref$ = projects.info()[\"app01-learn-beta\"]) != null && ref$.isLoaded) {\n      return inc(\"/../app01-learn-beta/start/start\")({\n        history: 0\n      });\n    } else {\n      return startPage({\n        path: path(\"loadingPage/page\")\n      });\n    }\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"addons/topbarLevel/feedbackIcon/00_shared/sendFeedback/generateHtml/generate.ls","text":"(function(){\n  return function(o){\n    var html, ref$, htmlElement, styleTags, i$, len$, t, className;\n    if (!o.div) {\n      return;\n    }\n    html = (ref$ = o.div) != null ? ref$.outerHTML : void 8;\n    htmlElement = Div().html(html).firstChild;\n    styleTags = document.head.getElementsByTagName(\"style\");\n    styleTags = _.filter(styleTags, {\n      isCssClassStyle: true\n    });\n    for (i$ = 0, len$ = styleTags.length; i$ < len$; ++i$) {\n      t = styleTags[i$];\n      className = t.attr(\"id\");\n      if (htmlElement.findFirst(\".\" + className)) {\n        htmlElement.prepend(t.outerHTML);\n      }\n    }\n    return html = htmlElement.outerHTML;\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/content/plan/calcNavCategory/calc.ls","text":"(function(){\n  return function(){\n    if (deviceLog['var'](\"enableLearnBetaTab\")) {\n      return \"learnBeta\";\n    } else {\n      return \"content\";\n    }\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/level/reviewOrPreviewPopup/calcReviewScores/assignScoreEventToAtoms/assign.ls","text":"(function(){\n  return function(level, scoreEvents){\n    var allTrainers, allAtoms, i$, ref$, len$, t, j$, ref1$, len1$, a, e, matchingAtom, lastMatchingAtom, matchingTrainer, lastMatchingTrainer;\n    level.unassignedScoreEvents = [];\n    allTrainers = [];\n    allAtoms = [];\n    for (i$ = 0, len$ = (ref$ = _.ensureArray(level.trainers)).length; i$ < len$; ++i$) {\n      t = ref$[i$];\n      allTrainers.push({\n        trainer: t\n      });\n      for (j$ = 0, len1$ = (ref1$ = _.ensureArray(t.atoms)).length; j$ < len1$; ++j$) {\n        a = ref1$[j$];\n        delete a.scoreEvent;\n        allAtoms.push({\n          atom: a,\n          trainer: t\n        });\n      }\n    }\n    for (i$ = 0, len$ = scoreEvents.length; i$ < len$; ++i$) {\n      e = scoreEvents[i$];\n      if (e.atom) {\n        matchingAtom = _.find(allAtoms, fn$);\n        if (matchingAtom) {\n          lastMatchingAtom = matchingAtom;\n          matchingAtom.isAssigned = true;\n          e.matchingAtom = matchingAtom.atom;\n          e.matchingTrainer = matchingAtom.trainer;\n        }\n      } else if (e.atoms) {\n        matchingTrainer = _.find(allTrainers, fn1$);\n        if (matchingTrainer) {\n          lastMatchingTrainer = matchingTrainer;\n          matchingTrainer.isAssigned = true;\n          e.matchingTrainer = matchingTrainer.trainer;\n        }\n      }\n    }\n    return level.scoreEvents = scoreEvents;\n    function fn$(a){\n      return a.isAssigned !== true && e.trainer === a.trainer.trainer && _.isEqual(e.atom, a.atom);\n    }\n    function fn1$(t){\n      return t.isAssigned !== true && e.trainer === t.trainer.trainer && _.xorBy(e.atoms, _.ensureArray(t.trainer.atoms), _.isEqual).length === 0;\n    }\n  };\n})();","updated":"2022-08-10T13:52:35.015255"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/calcShowAppRatePage/hasAtLeastFourCoins/hasAtLeastFourCoins.ls","text":"(function(){\n  return function(){\n    var snapshot, ref$, events, collectedCoins, ref1$, ref2$;\n    snapshot = log.findLast({\n      event: \"snapshot\"\n    });\n    if ((snapshot != null ? (ref$ = snapshot.adjustCoins) != null ? ref$.positiveSum : void 8 : void 8) >= 4) {\n      return true;\n    }\n    events = _.filter(log.list(\"adjustCoins\"), function(e){\n      var ref$, ref1$;\n      return !e.inserted || new Date(e.inserted) > new Date((ref$ = snapshot != null ? (ref1$ = snapshot.adjustCoins) != null ? ref1$.lastInserted : void 8 : void 8) != null\n        ? ref$\n        : (ref$ = snapshot != null ? snapshot.inserted : void 8) != null\n          ? ref$\n          : new Date(0).toISOString());\n    });\n    collectedCoins = _.reduce(_.filter(_.map(events, \"value\"), function(v){\n      return v > 0;\n    }), function(a, b){\n      return a + b;\n    }, (ref1$ = snapshot != null ? (ref2$ = snapshot.adjustCoins) != null ? ref2$.positiveSum : void 8 : void 8) != null ? ref1$ : 0);\n    return collectedCoins >= 4;\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"data/user/calcUserDescription/totalCoins/calc.ls","text":"(function(){\n  return function(d){\n    var snapshot, minInserted, ref$, ref1$, events, t, ref2$, i$, len$, e;\n    snapshot = d.log.findLast(\"snapshot\");\n    minInserted = new Date((ref$ = snapshot != null ? (ref1$ = snapshot.adjustCoins) != null ? ref1$.lastInserted : void 8 : void 8) != null\n      ? ref$\n      : (ref$ = snapshot != null ? snapshot.inserted : void 8) != null\n        ? ref$\n        : new Date(0));\n    events = _.filter(d.log.list(\"adjustCoins\"), function(e){\n      return !e.inserted || e.inserted > minInserted;\n    });\n    t = (ref$ = snapshot != null ? (ref2$ = snapshot.adjustCoins) != null ? ref2$.value : void 8 : void 8) != null ? ref$ : 0;\n    for (i$ = 0, len$ = events.length; i$ < len$; ++i$) {\n      e = events[i$];\n      t += +e.value;\n    }\n    if (_.isNaN(t)) {\n      return 0;\n    }\n    return t;\n  };\n})();","updated":"2023-12-05T15:24:26.254625"},{"path":"lib/svg/illustration/treasure-chest.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 161\">\n  <path fill=\"#F49842\" d=\"M158.488 73.715v30.015c-2.269 5.073-4.524 10.15-7.573 14.824-2.23 3.415-4.515 6.784-7.433 9.668q.012-18.062.022-36.129c.458-.288.676-.758.884-1.222 1.419-3.157 2.857-6.308 4.229-9.487.652-1.505.593-1.539-1.145-1.539h-54c-.605 0-1.232-.095-1.778.292l-.31.046-.308-.101c-.144-.058-.288-.12-.433-.178-.719.037-1.124-.203-1.096-1.023.055-1.704.052-3.409.074-5.114l14.968-.088c3.839.53 7.697.248 11.548.273 2.073.015 4.155.209 6.222-.15 3.461.273 6.922.291 10.381-.028 2.865.436 5.721.172 8.58-.099l17.18.04z\"/>\n  <path fill=\"#FDC652\" d=\"m158.488 73.716-17.18-.04c.295-.75 1.035-1.085 1.554-1.625 1.831-1.907 2.291-4.177 1.232-6.548-.74-1.658-2.076-2.693-3.701-3.403 1.419-.46 2.73-1.164 2.865-2.791.231-2.764.467-5.547-.052-8.314l-.092-1.16c-.089-2.599-.458-5.154-1.161-7.66-.215-1.625-.719-3.164-1.403-4.647-.962-2.672-2.264-5.16-4.067-7.368-1.342-1.934-2.976-3.565-4.953-4.852-2.66-2.14-5.805-3.237-9.014-4.195 3.75-.025 7.5-.043 11.246-.08.59-.006 1.229.178 1.745-.298h.307c.172.344.513.264.798.313 3.25.587 6.29 1.717 9.048 3.547 6.517 4.325 9.874 10.685 11.563 18.08.516 2.26.848 4.564 1.262 6.846v24.195z\"/>\n  <path fill=\"#B65535\" d=\"M38.983 20.732h.919c.525.454 1.166.298 1.762.3q38.379.01 76.758 0c.596 0 1.238.154 1.763-.3h.614c.399.568 1.087.172 1.569.467-.067 1.41.32 2.757.572 4.124H31.097c-.655 0-1.337.13-1.926-.307.4-.298.78-.623 1.2-.894 2.366-1.514 5.025-2.3 7.694-3.058.329-.047.728.1.918-.332\"/>\n  <path fill=\"#FDC652\" d=\"M38.065 21.064c-2.669.758-5.329 1.544-7.693 3.058-.418.268-.802.593-1.201.894-2.319 1.216-4.033 3.087-5.547 5.166a24.6 24.6 0 0 0-4.017 7.361c-.835 1.653-1.323 3.41-1.563 5.24-.645 1.895-.587 3.922-1.109 5.838-.208-.458-.436-.91-.62-1.376-1.272-3.261-5.123-5.233-8.541-4.49-2.604.565-4.18 2.334-5.602 4.355.108-2.669.762-5.233 1.585-7.745 2.9-8.88 8.378-15.24 17.64-17.868.86-.243 1.813-.188 2.571-.765h.614c.517.476 1.158.295 1.748.298 3.913.024 7.825.024 11.738.034z\"/>\n  <path fill=\"#EF7C20\" d=\"M143.479 128.219c2.921-2.88 5.206-6.252 7.433-9.665 3.049-4.674 5.307-9.75 7.573-14.824v34.913c-.86 1.158-1.815 2.144-3.418 2.131-3.91-.027-7.822-.03-11.732-.046q.073-6.254.141-12.509z\"/>\n  <path fill=\"#CE804F\" d=\"M120.185 20.732c-.526.454-1.167.298-1.763.3q-38.379.01-76.758 0c-.596 0-1.238.154-1.763-.3z\"/>\n  <path fill=\"#FFDB94\" d=\"M122.365 21.199c-.482-.295-1.167.101-1.569-.467h14.708c-.516.476-1.155.292-1.745.298-3.75.04-7.5.055-11.246.08a1 1 0 0 0-.151.086zm-84.3-.135c-3.913-.01-7.825-.01-11.738-.034-.59-.003-1.232.178-1.748-.298H38.98c-.19.43-.59.282-.918.332z\"/>\n  <path fill=\"#F8AD44\" d=\"M91.687 80.134c.544-.387 1.174-.292 1.779-.292q27-.005 54 0c1.738 0 1.796.034 1.145 1.539-1.373 3.179-2.81 6.33-4.229 9.487-.209.464-.427.93-.884 1.222-.019-1.677 0-3.357-.065-5.034-.089-2.168-1.449-3.525-3.593-3.528-8.298-.016-16.597-.013-24.892.018-2.248.01-3.581 1.376-3.618 3.646-.03 1.931.016 3.866.028 5.798-.003 7.018 0 14.035-.012 21.053-.009 5.949-.04 11.901-.062 17.849-.626.326-1.277.608-1.876.98-4.195 2.607-8.599 4.745-13.378 6.059-.019-.663-.05-1.323-.05-1.987 0-14.425.013-28.853.004-43.278 0-.633.242-1.33-.273-1.898 1.489-2.34 1.547-4.785.515-7.303-.869-2.12-2.665-3.271-4.542-4.334z\"/>\n  <path fill=\"#A3422B\" d=\"M111.361 92.99c-.012-1.932-.058-3.866-.027-5.798.036-2.27 1.366-3.636 3.617-3.646 8.299-.03 16.597-.033 24.892-.018 2.144.003 3.504 1.36 3.593 3.529.068 1.677.047 3.356.065 5.033l-.022 36.129-.141 12.509q-.236 0-.473.006c-.617-.347-1.293-.242-1.95-.245-7.094-.006-14.186 0-21.28-.019-.513 0-1.115.243-1.603-.341 1.766-2.06 3.83-3.811 5.537-5.909 4.466-5.488 7.718-11.605 9.883-18.319 2.396-7.423 3.16-15.006 2.411-22.773-.147-1.535-.614-1.999-2.113-1.98-5.562.067-11.124.086-16.686 0-2.165-.034-4.155.144-5.706 1.845z\"/>\n  <path fill=\"#FDEF74\" d=\"M89.608 73.765c-.021 1.704-.018 3.409-.074 5.113-.027.82.381 1.06 1.1 1.023l.433.178.307.101c-.755 5.58-3.501 10.068-7.748 13.63-3.142 2.638-6.76 4.349-10.919 4.727-.62-.716-.85-1.61-1.105-2.485-.132-.458-.206-.78-.89-.663-2.448.408-4.62-.35-6.582-1.806q-.151-.263-.301-.531c.97-.292 1.965-.523 2.911-.888 5.273-2.036 9.803-5.07 13.028-9.822 2.405-.823 3.222-1.907 3.28-4.33.012-.507.043-1.01.068-1.517 2.77-6.093 2.945-12.355 1.259-18.753-.977-3.697-2.905-6.91-4.988-10.054 2.209-.237 3.867.924 5.498 2.158.829 1.204 1.738 2.365 1.95 3.883.077.552.424.792.977.641 1.772-.479 3.384.16 5.012.704 2.478 1.655 3.943 3.91 4.124 6.931-.245 3.357-1.744 5.875-4.92 7.233-2.558 1.093-2.567 1.078-2.472 3.922.006.202.034.402.052.605\"/>\n  <path fill=\"#FFDF5A\" d=\"M122.344 73.801c-2.067.357-4.15.163-6.223.15-3.848-.027-7.708.256-11.547-.272-.169-.59-.725-.827-1.121-1.201-.86-.811-1.591-1.683-1.929-2.85-.933-3.225.39-5.759 3.959-7.515 5.617-.243 11.237-.178 16.858-.043q-.497.341-.999.678c-3.66 2.454-4.007 6.668-.774 9.662.55.51 1.18.934 1.773 1.395z\"/>\n  <path fill=\"#FDEF74\" d=\"M122.344 73.802c-.593-.464-1.223-.885-1.772-1.395-3.234-2.991-2.887-7.208.774-9.662q.5-.337.998-.678l.918-.148.7-.095c2.565.01 5.129.015 7.693.025l.464.08.614.131c.292.2.572.424.882.593 3.314 1.849 4.21 5.857 1.996 8.904-.746 1.028-1.895 1.514-2.887 2.214-3.461.32-6.919.3-10.38.027z\"/>\n  <path fill=\"#FFDF5A\" d=\"M72.708 98.537c4.158-.378 7.776-2.089 10.918-4.727 4.247-3.562 6.992-8.05 7.748-13.63q.158-.022.31-.046c1.877 1.066 3.673 2.218 4.543 4.334 1.031 2.518.973 4.963-.517 7.303-1.698 2.724-4.188 3.894-7.349 3.676-.94-.065-1.357.141-1.674 1.182-.96 3.145-3.23 5.092-6.467 5.495-3.148.39-5.79-.756-7.513-3.587\"/>\n  <path fill=\"#FDC652\" d=\"M105.486 62.11c-3.572 1.76-4.895 4.293-3.962 7.515.338 1.167 1.069 2.039 1.929 2.85.396.375.952.611 1.121 1.2q-7.484.043-14.969.09c-.018-.203-.046-.403-.052-.605-.095-2.844-.086-2.826 2.472-3.922 3.176-1.358 4.671-3.876 4.92-7.233q1.21 0 2.42.006l6.124.096z\"/>\n  <path fill=\"#FFDF5A\" d=\"M132.727 73.77c.989-.7 2.138-1.185 2.887-2.214 2.215-3.046 1.321-7.054-1.996-8.903-.307-.172-.587-.396-.881-.593a57 57 0 0 1 7.656.04c1.625.71 2.958 1.745 3.701 3.403 1.059 2.371.596 4.64-1.232 6.548-.519.54-1.256.875-1.554 1.624-2.856.27-5.715.535-8.581.099z\"/>\n  <path fill=\"#A3422B\" d=\"M18.044 42.78c.242-1.83.73-3.584 1.566-5.24.866.013 1.735.034 2.601.034l99.822.01c-.159 1.274-.623 2.472-1.111 3.635-.464 1.106-.338 1.58.976 1.573 6.21-.028 12.417-.012 18.627-.015.553 0 1.152.073 1.428-.602.706 2.506 1.072 5.06 1.161 7.66l-26.642-.072c.915-1.581 1.882-3.138 2.736-4.754 1.17-2.208 1.136-2.23-1.367-2.23zm5.58-12.598c1.514-2.08 3.228-3.95 5.547-5.166.59.433 1.271.307 1.925.307 30.614.003 61.23 0 91.843 0 .037 1.268.04 2.528.206 3.8.145 1.117.621 1.433 1.677 1.421 3.406-.043 6.815-.015 10.221-.018.51 0 1.023.003 1.443-.363 1.803 2.208 3.105 4.696 4.067 7.368q-9.125-.002-18.255-.01c.212-1.406.488-2.81.62-4.225.252-2.684.147-2.764-2.515-2.764-31.467 0-62.938 0-94.405-.01-.798 0-1.643.206-2.37-.34zM140.393 62.1a57 57 0 0 0-7.656-.04l-.615-.132q-.231-.041-.463-.08l-7.694-.024-.7.095-.918.148c-5.62-.136-11.241-.2-16.858.042l-6.124-.095c.19-.648.777-.758 1.302-.93 3.431-1.137 6.508-2.915 9.358-5.108.261-.2.682-.31.507-.9H92.821c-1.628-.543-3.24-1.179-5.013-.703-.55.148-.896-.089-.976-.642-.215-1.517-1.121-2.678-1.95-3.882l31.052.022c-1.133 1.889-2.718 3.409-4.579 5.163h8.67c7.14 0 14.281-.028 21.421.024 1.349.01 1.865-.442 1.739-1.772-.071-.755.009-1.526.021-2.291.519 2.767.283 5.55.052 8.314-.135 1.63-1.446 2.33-2.865 2.791\"/>\n  <path fill=\"#813A2D\" d=\"M143.206 50.995c-.012.765-.092 1.536-.021 2.291.126 1.33-.387 1.781-1.739 1.772-7.14-.052-14.281-.024-21.421-.024h-8.67c1.861-1.75 3.446-3.271 4.579-5.163.178-.037.356-.07.535-.108l26.642.071.092 1.161zm-20.911-13.473q9.125.002 18.255.01c.687 1.482 1.188 3.021 1.406 4.646-.276.675-.875.602-1.428.602-6.21.003-12.417-.016-18.627.015-1.314.006-1.44-.467-.976-1.572.488-1.167.949-2.362 1.112-3.637l.261-.061zm14.188-7.362c-.417.366-.93.363-1.443.363-3.406 0-6.815-.028-10.221.018-1.056.012-1.529-.304-1.677-1.422-.166-1.268-.169-2.53-.205-3.799l8.593-.015c1.974 1.287 3.611 2.92 4.953 4.852z\"/>\n  <path fill=\"#A3422B\" d=\"m131.529 25.308-8.593.015c-.255-1.367-.638-2.715-.571-4.125a.7.7 0 0 1 .151-.085c3.209.958 6.354 2.054 9.013 4.195\"/>\n  <path fill=\"#B65535\" d=\"M122.295 37.522a8 8 0 0 1-.261.061c-33.273 0-66.55-.003-99.822-.009-.866 0-1.736-.021-2.602-.034a24.6 24.6 0 0 1 4.017-7.361c.728.546 1.573.34 2.371.34 31.467.01 62.938.01 94.405.01 2.659 0 2.764.08 2.515 2.764-.132 1.416-.408 2.816-.62 4.226zm-5.823 12.242-.535.107-31.052-.022c-1.628-1.234-3.286-2.398-5.498-2.159-2.263-.224-4.044.839-5.724 2.156-18.894 0-37.788-.006-56.682-.006q-.022-.61-.049-1.219c.525-1.916.464-3.943 1.109-5.838h99.797c2.503 0 2.54.021 1.367 2.23-.857 1.615-1.821 3.169-2.736 4.754z\"/>\n  <path fill=\"#FFDF5A\" d=\"M16.932 48.618q.023.61.05 1.22c-.084 1.728-.234 3.457-.071 5.192-.019 1.167-.074 2.338-.05 3.502.05 2.156 1.122 3.237 3.305 3.353 1.265.068 2.537.086 3.805.126v.341c-4.225 1.616-5.282 6.52-2.119 9.739.522.531 1.272.86 1.514 1.649-4.71.402-9.416.405-14.112-.212-.958-.55-1.938-1.066-2.871-1.655-2.709-1.708-3.907-4.404-4.736-7.331.025-5.42-.34-10.848.267-16.259.043-.396.17-.786.255-1.176 1.422-2.024 2.998-3.79 5.602-4.355 3.418-.743 7.27 1.225 8.54 4.49.182.467.412.918.621 1.376\"/>\n  <path fill=\"#F8AD44\" d=\"M63.829 93.051c.101.175.2.354.3.529q.024 2.766.044 5.534-.017 20.785-.03 41.571H48.745c.013-17.791.031-35.585.031-53.377 0-2.435-1.36-3.786-3.79-3.79q-12.242-.01-24.483.019c-2.442.006-3.76 1.305-3.82 3.787-.047 1.885.015 3.771.03 5.657.037 1.32.108 2.641.108 3.965.009 13.82.003 27.64.009 41.463 0 .765.049 1.527.074 2.291-3.723 0-7.445.016-11.167 0-2.982-.012-4.14-1.194-4.137-4.192.003-2.549.03-5.095.05-7.644.285.596.54 1.21.865 1.785 1.456 2.564 4.214 3.691 7.217 2.972 2.522-.602 4.672-3.071 4.7-5.764.06-6.118-.016-12.236-.034-18.356q0-5.62.006-11.244c.018-2.334.15-4.677.024-7.005-.147-2.694-1.71-4.64-4.143-5.534-2.33-.857-4.674-.642-6.612 1.332-.921.94-1.486 2.037-2.024 3.185V79.833c21.296 0 42.591 0 63.886.01.756 0 1.539-.151 2.255.248-6.21 1.926-8.117 8.166-3.962 12.957z\"/>\n  <path fill=\"#B65535\" d=\"M111.361 92.99c1.551-1.704 3.541-1.883 5.707-1.846 5.561.09 11.123.07 16.685 0 1.499-.018 1.966.449 2.113 1.981.749 7.77-.015 15.35-2.411 22.773-2.168 6.716-5.417 12.834-9.883 18.319-1.707 2.098-3.771 3.848-5.537 5.909.488.581 1.09.338 1.603.341 7.094.018 14.186.012 21.28.018.657 0 1.333-.101 1.95.246l-31.442-.015-.138-8.827c.021-5.949.052-11.9.061-17.849.012-7.018.009-14.035.012-21.053zM16.908 140.7c-.025-.764-.074-1.526-.074-2.291-.003-13.82 0-27.64-.01-41.463 0-1.321-.07-2.642-.11-3.965 1.081-.922 2.122-1.837 3.713-1.825 6.376.04 12.755.031 19.13 0 1.07-.006 1.496.314 1.607 1.46.476 4.889.405 9.75-.32 14.612-1.477 9.904-5.35 18.759-11.6 26.572-1.765 2.208-3.626 4.339-5.712 6.32.663.54 1.3.344 1.88.344 6.938.015 13.875.009 20.813.015.657 0 1.333-.104 1.95.24q-15.635-.015-31.27-.025z\"/>\n  <path fill=\"#A3422B\" d=\"M48.178 140.725c-.617-.344-1.293-.24-1.95-.24-6.938-.006-13.876 0-20.813-.015-.58 0-1.216.197-1.88-.344 2.082-1.984 3.947-4.115 5.713-6.32 6.25-7.813 10.122-16.671 11.6-26.572.724-4.862.795-9.723.319-14.613-.11-1.145-.54-1.465-1.607-1.458-6.375.027-12.754.04-19.13 0-1.594-.01-2.632.903-3.713 1.824-.015-1.886-.077-3.771-.03-5.657.06-2.482 1.378-3.78 3.82-3.787q12.241-.03 24.483-.018c2.43 0 3.79 1.354 3.79 3.79 0 17.791-.018 35.585-.03 53.376l-.572.037z\"/>\n  <path fill=\"#B65535\" d=\"M64.142 140.688q.017-20.786.03-41.57c1.883 1.034 3.781 2.124 6.036 1.743 1.032-.171 1.32.228 1.594 1.094 1.12 3.556 3.802 5.46 7.552 5.454 3.633-.006 6.203-1.935 7.349-5.525.163-.507.08-1.225.927-1.118.854.108.959.747.999 1.465.088 1.542-.197 3.056-.421 4.558-1.895 12.616-7.43 23.396-16.49 32.379-.322.319-.9.544-.718 1.296h24.932q.037.128.055.261c-8.624.015-17.25.034-25.875.037-1.99 0-3.977-.046-5.967-.071z\"/>\n  <path fill=\"#F49842\" d=\"M67.79 80.094c-.715-.399-1.498-.248-2.254-.248-21.295-.01-42.59-.01-63.886-.01q0-3.04.006-6.08c2.53-.154 5.08.254 7.601-.228 4.696.614 9.401.614 14.112.212 5.403.387 10.805.344 16.21.043 3.885.353 7.767.304 11.646-.098l17.65.089c.027 1.717.043 3.433.086 5.147.021.826-.335 1.225-1.17 1.173\"/>\n  <path fill=\"#FDC652\" d=\"M14.399 109.504c.018 6.117.095 12.238.033 18.356-.027 2.69-2.177 5.163-4.699 5.765-3.003.718-5.761-.409-7.217-2.973-.325-.575-.58-1.189-.866-1.785v-20.22q.226.484.449.967c1.98 4.361 7.287 5.261 10.644 1.852.608-.617.83-1.542 1.656-1.959z\"/>\n  <path fill=\"#FFDF5A\" d=\"M14.399 109.504c-.827.417-1.048 1.342-1.656 1.959-3.357 3.412-8.66 2.509-10.644-1.852q-.222-.483-.449-.967v-9.52c.15-.323.304-.643.452-.968 1.999-4.368 7.278-5.264 10.644-1.852.608.617.82 1.548 1.659 1.953q0 5.62-.006 11.244z\"/>\n  <path fill=\"#FDC652\" d=\"M14.405 98.26c-.839-.405-1.05-1.336-1.659-1.953-3.366-3.415-8.645-2.518-10.644 1.852q-.224.483-.452.967v-8.885c.538-1.148 1.103-2.245 2.024-3.184 1.938-1.975 4.281-2.193 6.612-1.333 2.433.897 3.996 2.844 4.143 5.534.13 2.328-.006 4.668-.024 7.005z\"/>\n  <path fill=\"#F49842\" d=\"M95.987 140.722a2 2 0 0 0-.055-.261l.101-1.53c4.779-1.314 9.183-3.455 13.378-6.059.599-.372 1.25-.657 1.876-.98l.139 8.827q-7.718 0-15.44.006z\"/>\n  <path fill=\"#FDC652\" d=\"M9.257 73.528c-2.521.482-5.07.07-7.6.227q-.001-4.606-.007-9.213c.83 2.927 2.03 5.623 4.736 7.33.934.59 1.913 1.106 2.871 1.656\"/>\n  <path fill=\"#A3422B\" d=\"m96.033 138.935-.101 1.529H71c-.181-.752.396-.977.719-1.296 9.06-8.983 14.597-19.763 16.489-32.379.224-1.502.51-3.013.42-4.558-.043-.718-.147-1.357-.998-1.465-.85-.107-.764.611-.927 1.118-1.146 3.593-3.716 5.519-7.35 5.525-3.75.006-6.43-1.898-7.551-5.454-.274-.866-.562-1.265-1.594-1.093-2.255.377-4.153-.71-6.035-1.745q-.025-2.767-.043-5.534c1.96 1.456 4.13 2.214 6.581 1.806.685-.114.759.209.89.663.256.878.486 1.77 1.106 2.485 1.723 2.831 4.365 3.977 7.513 3.587 3.237-.403 5.506-2.35 6.467-5.495.32-1.04.737-1.25 1.674-1.182 3.16.221 5.651-.952 7.35-3.676.516.571.273 1.265.273 1.898.01 14.425 0 28.853-.003 43.279 0 .663.034 1.323.049 1.987z\"/>\n  <path fill=\"#FEF6C6\" d=\"M67.79 80.094c.836.052 1.192-.347 1.17-1.173-.042-1.717-.058-3.434-.085-5.147.03-.912.03-1.825.098-2.734.061-.847-.246-1.222-1.115-1.45-3.968-1.05-5.863-3.402-6.265-7.588.123-3.059 1.643-5.286 4.15-6.916 1.572-.608 3.184-.974 4.88-.673.626.11.954-.092 1.053-.715.24-1.5 1.12-2.672 1.984-3.852 1.683-1.317 3.46-2.38 5.724-2.156 2.082 3.142 4.011 6.355 4.985 10.055 1.686 6.398 1.51 12.66-1.26 18.753-.024-1.732-.006-3.465-.088-5.194-.108-2.328-1.757-3.964-3.855-3.921-2.128.043-3.688 1.707-3.719 4.035-.03 2.14-.012 4.281-.006 6.422.01 3.019 1.299 4.358 4.321 4.508-3.228 4.755-7.758 7.786-13.028 9.822-.943.365-1.938.596-2.911.887-4.156-4.794-2.248-11.031 3.961-12.957z\"/>\n  <path fill=\"#823E2F\" d=\"M79.768 82.342c-3.022-.15-4.312-1.49-4.32-4.508-.007-2.14-.025-4.281.005-6.422.031-2.328 1.591-3.992 3.72-4.035 2.097-.043 3.746 1.597 3.854 3.921.08 1.73.061 3.462.089 5.194-.022.507-.055 1.01-.068 1.517-.058 2.423-.875 3.507-3.28 4.33z\"/>\n  <path fill=\"#B85935\" d=\"M92.824 55.077h17.711c.175.59-.246.7-.507.9-2.853 2.192-5.93 3.97-9.358 5.107-.528.175-1.111.282-1.302.93q-1.21 0-2.42-.006c-.181-3.019-1.646-5.276-4.124-6.931m38.834 6.768q.233.043.464.08z\"/>\n  <path fill=\"#A3422B\" d=\"M73.663 49.843c-.866 1.18-1.748 2.353-1.984 3.852-.098.623-.427.826-1.054.715-1.692-.3-3.304.065-4.88.673-.817-.019-1.63-.05-2.447-.05l-46.384-.006c-.163-1.732-.012-3.46.07-5.193 18.894 0 37.788.006 56.682.006z\"/>\n  <path fill=\"#B65535\" d=\"M16.91 55.03q23.192-.002 46.384.007c.817 0 1.631.03 2.448.049-2.506 1.63-4.026 3.857-4.149 6.916l-10.98.092c-3.958-.35-7.92-.227-11.885-.107-4.524-.224-9.05-.2-13.574-.013l-.682.056q-.094-.064-.19 0l-.31-.016c-1.27-.04-2.538-.058-3.806-.126-2.183-.116-3.252-1.194-3.304-3.353-.028-1.167.03-2.334.049-3.501z\"/>\n  <path fill=\"#FDEF74\" d=\"M25.157 61.971c4.523-.187 9.05-.209 13.574.013 4.318 1.25 6.216 4.84 4.484 8.479-.762 1.6-2.156 2.506-3.636 3.32-5.402.3-10.808.344-16.21-.043-.242-.79-.995-1.118-1.514-1.65-3.163-3.218-2.107-8.123 2.12-9.738l.31-.328a.16.16 0 0 1 .19.002z\"/>\n  <path fill=\"#FDDB59\" d=\"m24.281 62.027-.31.328v-.34q.159.006.31.015z\"/>\n  <path fill=\"#FDC652\" d=\"M50.617 62.091 61.597 62c.401 4.19 2.296 6.538 6.264 7.589.87.23 1.177.605 1.115 1.45-.067.909-.067 1.82-.098 2.733l-17.65-.09c.365-.828 1.188-1.225 1.769-1.854 2.027-2.205 2.125-5.412.212-7.638-.74-.86-1.665-1.477-2.592-2.1z\"/>\n  <path fill=\"#FDDB59\" d=\"M50.617 62.091c.927.623 1.852 1.238 2.592 2.1 1.913 2.227 1.815 5.433-.212 7.639-.578.63-1.404 1.025-1.77 1.855-3.878.405-7.76.454-11.648.098 1.48-.814 2.875-1.72 3.636-3.32 1.732-3.64-.166-7.23-4.484-8.48 3.962-.12 7.927-.242 11.886.108\"/>\n</svg>\n","updated":"2024-11-22T13:30:15.929922"},{"path":"lib/util/formatDate2/addTimeLiterals/add.ls","text":"(function(){\n  return function(o, now, date){\n    var months;\n    o.ts = date.getSeconds();\n    o.tm = date.getMinutes();\n    o.th = date.getHours();\n    o.TS = _.padStart(date.getSeconds(), 2, 0);\n    o.TM = _.padStart(date.getMinutes(), 2, 0);\n    o.TH = _.padStart(date.getHours(), 2, 0);\n    if (_.startsWith(engine.guiLanguage, \"en\")) {\n      o.dord = inc(\"/lib/util/calcOrdinalEn/calc\")(date.getDate());\n    }\n    o.d = date.getDate();\n    o.m = date.getMonth() + 1;\n    o.y = +(date.getFullYear() + \"\").slice(-2);\n    o.D = _.padStart(date.getDate(), 2, 0);\n    o.M = _.padStart(date.getMonth() + 1, 2, 0);\n    o.Y = date.getFullYear();\n    o.MM = (function(){\n      switch (date.getMonth()) {\n      case 0:\n        return T(\"january\");\n      case 1:\n        return T(\"february\");\n      case 2:\n        return T(\"march\");\n      case 3:\n        return T(\"april\");\n      case 4:\n        return T(\"may\");\n      case 5:\n        return T(\"june\");\n      case 6:\n        return T(\"july\");\n      case 7:\n        return T(\"august\");\n      case 8:\n        return T(\"september\");\n      case 9:\n        return T(\"october\");\n      case 10:\n        return T(\"november\");\n      case 11:\n        return T(\"december\");\n      }\n    }());\n    months = inc(\"/lib/util/calcMonthsLabel/calc\")();\n    o.MS = months[date.getMonth()];\n    return o.DD = (function(){\n      switch (date.getDay()) {\n      case 1:\n        return T(\"monday\");\n      case 2:\n        return T(\"tuesday\");\n      case 3:\n        return T(\"wednesday\");\n      case 4:\n        return T(\"thurstday\");\n      case 5:\n        return T(\"friday\");\n      case 6:\n        return T(\"sasturday\");\n      case 0:\n        return T(\"sunday\");\n      }\n    }());\n  };\n})();","updated":"2024-03-11T15:32:24.901088"},{"path":"lib/svg/iconModern/edit.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M61.084 8.966a8 8 0 0 1 11.313 0l14.587 14.586a8 8 0 0 1 0 11.314l-42.32 42.32a4 4 0 0 1-1.747 1.023l-27.08 7.603a4.002 4.002 0 0 1-4.967-4.805l6.839-27.847a4 4 0 0 1 1.056-1.875zM21.25 72.277l2.891 2.893 10.034-2.817-10.392-10.39zm5.999-18.163 14.587 14.587L68.46 42.075 53.874 27.488zM59.53 21.831l14.587 14.588 7.209-7.21L66.74 14.624z\"/>\n</svg>\n","updated":"2025-10-23T12:49:55.429299"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/suggest.ls","text":"(function(){\n  return function(o){\n    var show, decide;\n    show = function(){\n      return startPage({\n        path: path(\"01_page_email/page\"),\n        history: 0\n      });\n    };\n    decide = function(){\n      var ud, setNewUserEvent, setNewUserWithin20Minutes, createdMethod, ref$, groups, isGroupTeacher;\n      if ((typeof log != 'undefined' && log !== null) && log.findLast(\"setEMail\")) {\n        return false;\n      }\n      ud = inc(\"/data/user/calcUserDescription/calc\")();\n      setNewUserEvent = typeof log != 'undefined' && log !== null ? log.findLast(\"setNewUser\") : void 8;\n      setNewUserWithin20Minutes = new Date() - new Date(setNewUserEvent != null ? setNewUserEvent.created : void 8) < 20 * 60 * 1000;\n      if (ud.isDirTeacher && !setNewUserWithin20Minutes) {\n        show();\n        return true;\n      }\n      if ((typeof log != 'undefined' && log !== null) && log.findLast(\"showSuggestRecoveryOption\")) {\n        return false;\n      }\n      createdMethod = typeof log != 'undefined' && log !== null ? (ref$ = log.findLast(\"setNewUser\")) != null ? ref$.createdMethod : void 8 : void 8;\n      if (createdMethod !== \"funnel\") {\n        return false;\n      }\n      groups = inc(\"/../app01-group/data/calcGroupDescriptions/calc\")();\n      isGroupTeacher = inc(\"/data/user/isTeacher/get\")() && _.find(groups, function(g){\n        return g.userRoles.teacher === true;\n      }) != null;\n      if (!isGroupTeacher) {\n        return false;\n      }\n      show();\n      return true;\n    };\n    return decide();\n  };\n})();","updated":"2025-05-21T06:45:55.43569"},{"path":"lib/util/audioContext/init/_playSilence/playSilence.ls","text":"(function(){\n  return function(){\n    var s, g;\n    if (sound.audioContext == null) {\n      return;\n    }\n    s = sound.audioContext.createBufferSource();\n    s.buffer = sound.audioContext.createBuffer(1, 1, 44100);\n    s.connect(sound.audioContext.destination);\n    g = sound.audioContext.createGain();\n    g.gain.value = 0;\n    g.connect(sound.audioContext.destination);\n    s.connect(g);\n    s.start(0);\n    return s.disconnect();\n  };\n})();","updated":"2022-09-13T14:00:04.709129"},{"path":"lib/util/pllsCall/calcUrl/calc.ls","text":"(function(){\n  return function(o){\n    var url, that, apiPath;\n    url = \"https://\" + ((that = o.params.server)\n      ? that\n      : deviceLog['var'](\"useApisDbDebug\")\n        ? \"a-apis-db-debug.anton.app\"\n        : _.includes(o.params.path, \"highscores\")\n          ? inc(\"calcHighscore/calc\")()\n          : inc(\"calcDb2/calc\")());\n    apiPath = o.params.path;\n    apiPath = apiPath.replace(/\\/\\.\\.\\/[^\\/]*\\/apis\\//, \"\");\n    url += \"?p=\" + apiPath;\n    return url;\n  };\n})();","updated":"2025-11-28T13:14:53.271867"},{"path":"addons/topbar2/tools/download/overlay/items/items.ls","text":"(function(){\n  return function(downloadManager, id){\n    var div, items;\n    div = Div({\n      maxWidth: \"17em\"\n    }).html(inc(\"checkAndLabel/checkAndLabel\")(downloadManager, id), inc(\"text/text\")(), inc(\"downloadBar/bar\")(downloadManager, id), inc(\"more/more\")());\n    return items = {\n      div: div\n    };\n  };\n})();","updated":"2025-04-01T08:46:53.219128"},{"path":"addons/topbar2/tools/download/overlay/items/checkAndLabel/label/label.ls","text":"(function(){\n  return function(){\n    return Div({\n      flex: \"1 1 auto\"\n    }).html(T(\"activateDownload\"));\n  };\n})();","updated":"2025-04-01T08:46:53.219128"},{"path":"addons/topbar2/tools/download/overlay/items/_t.ls","text":"(function(){\n  return {\n    activateDownload: {\n      de: \"Download aktivieren\",\n      en: \"Download\",\n      fr: \"Activer le téléchargement\",\n      es: \"Activar descarga\",\n      pt: \"Ativar download\"\n    },\n    downloadExplanationPlan: {\n      de: \"Die Lerninhalte von diesem Fach werden heruntergeladen und können offline gelernt werden.\",\n      en_gb: \"This subject's content will be downloaded and will be accessible offline.\",\n      en: \"This subject's content will be downloaded and can then be accessed offline.\",\n      fr: \"Le contenu d'apprentissage de cette matière sera téléchargé et accessible sans connexion Internet.\",\n      es: \"Se descargará el contenido de esta materia y podrá utilizarse sin conexión.\",\n      pt: \"Os conteúdos desta matéria serão baixados e poderão ser estudados em modo offline.\"\n    },\n    downloadExplanationGroup: {\n      de: \"Die Lerninhalte von dieser Gruppe werden heruntergeladen und können offline gelernt werden.\",\n      en_gb: \"This group's content will be downloaded and will be accessible offline.\",\n      en: \"This group's content will be downloaded and can then be accessed offline.\",\n      fr: \"Le contenu d'apprentissage de ce groupe sera téléchargé et accessible sans connexion Internet.\",\n      es: \"Se descargará el contenido del grupo y podrá utilizarse sin conexión.\",\n      pt: \"Os conteúdos deste grupo serão baixados e poderão ser estudados em modo offline.\"\n    },\n    more: {\n      de: \"mehr\",\n      en: \"more\",\n      fr: \"plus\",\n      es: \"más\",\n      pt: \"mais\"\n    }\n  };\n})();","updated":"2025-04-01T08:46:53.219128"},{"path":"lib/gui/divEditable/start/setLastInput/set.ls","text":"(function(){\n  return function(d){\n    var ref$, ref1$, ref2$;\n    if (app.lastInput !== d.div) {\n      if ((ref$ = app.lastInput) != null) {\n        ref$.stop();\n      }\n    }\n    if (app.lastPopupInput !== d.div) {\n      if ((ref1$ = app.lastPopupInput) != null) {\n        ref1$.stop();\n      }\n    }\n    if ((ref2$ = app.currentPopup) != null && (typeof ref2$.contains == 'function' && ref2$.contains(d.div))) {\n      return app.lastPopupInput = d.div;\n    } else {\n      return app.lastInput = d.div;\n    }\n  };\n})();","updated":"2022-09-15T15:18:35.246437"},{"path":"pages/level/previewDocumentationDiv/slideDiv/slideDiv.ls","text":"(function(){\n  return function(slide){\n    slide.div = Div({\n      pointerEvents: \"none\"\n    });\n    requestAnimationFrame(function(){\n      slide.init();\n      return typeof slide.preview == 'function' ? slide.preview() : void 8;\n    });\n    return slide.div;\n  };\n})();","updated":"2023-09-21T09:26:46.076485"},{"path":"addons/navbar/bar/user/user/_menu/items/item/item.ls","text":"(function(){\n  return function(o, item, index){\n    var tap;\n    if (item.isDebug && engine.isDebug !== true) {\n      return;\n    }\n    tap = function(){\n      o.close();\n      return item.click();\n    };\n    return Div({\n      display: \"flex\",\n      padding: \"0.6em\",\n      maxWidth: \"90vw\",\n      lineHeight: \"1.4em\",\n      alignItems: \"stretch\",\n      borderTop: index > 0 ? \"1px solid \" + Color.grey[200] : void 8\n    }).html(Div().html(inc(\"icon/icon\")(item), typeof item.badge == 'function' ? item.badge() : void 8), inc(\"label/label\")(item), inc(\"new/new\")(item), inc(\"isDebugIcon/isDebugIcon\")(item)).tap({\n      up: tap,\n      animation: \"hover\"\n    });\n  };\n})();","updated":"2023-03-06T10:31:17.264557"},{"path":"data/content/calcPlanDescription/calcDescription/calcPageUrl/calc.ls","text":"(function(){\n  return function(plan){\n    var lang, pageUrl, that, ref$, ref1$;\n    lang = engine.guiLanguage;\n    pageUrl = _.isString(plan.pageUrl)\n      ? plan.pageUrl\n      : (that = (ref$ = plan.pageUrl) != null ? ref$[lang] : void 8)\n        ? that\n        : (that = (ref1$ = plan.pageUrl) != null ? ref1$[lang.slice(0, 2)] : void 8) ? that : \"\";\n    return T(\"learnUrl\") + \"/\" + pageUrl;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"addons/navbar/bar/tabs/tab/more/moreMenu/menu.ls","text":"(function(){\n  return function(moreDiv){\n    var moreMenu;\n    moreMenu = body.findFirst(\".moreMenu\");\n    if (moreMenu) {\n      moreMenu.remove();\n      return;\n    }\n    return moreDiv.append(Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      zIndex: -1\n    }).addClass(\"moreMenu\").html(inc(\"background/background\")(), inc(\"slideUp/slideUp\")(moreDiv)));\n  };\n})();","updated":"2024-01-25T14:49:53.390222"},{"path":"addons/navbar/bar/tabs/tab/more/moreMenu/slideUp/row/row.ls","text":"(function(){\n  return function(item, moreDiv){\n    var tabSize, divWrapper, div;\n    tabSize = moreDiv.item.tabSize === \"normal\" ? \"normal\" : \"small\";\n    divWrapper = Div({\n      padding: tabSize === \"normal\" ? \"0.8em 0\" : \"0.6em\"\n    }).html(div = inc(\"../../../../tab\")(item, moreDiv.item.barDiv).css({\n      pointerEvents: \"none\"\n    }));\n    divWrapper.tap(function(){\n      return inc(\"tapSmart1/tap\")(div, moreDiv);\n    });\n    return divWrapper;\n  };\n})();","updated":"2024-01-25T14:49:53.390222"},{"path":"pages/static/messageCategory/_shared/calcMessageCategory/calc.ls","text":"(function(){\n  return function(page){\n    var pageUrl, messageCategory;\n    pageUrl = inc(\"/lib/util/browser/getPageUrl/get\")();\n    messageCategory = page.params.messageCategory || pageUrl.split(\"/\")[1] || inc(\"/lib/util/browser/getPageUrlParam/get\")(\"messageCategory\");\n    inc(\"/lib/util/browser/removePageUrlParam/remove\")(\"messageCategory\");\n    return messageCategory;\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/static/messageCategory/_shared/calcPublicId/calc.ls","text":"(function(){\n  return function(page){\n    var pageUrl, publicId;\n    pageUrl = inc(\"/lib/util/browser/getPageUrl/get\")();\n    publicId = page.params.publicId || pageUrl.split(\"/\")[2] || inc(\"/lib/util/browser/getPageUrlParam/get\")(\"publicId\");\n    inc(\"/lib/util/browser/removePageUrlParam/remove\")(\"publicId\");\n    return publicId;\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/static/messageCategory/disable/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../../_shared/topbarDeeplink/topbar\")(page, T(\"messageCategoryOff\"));\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/static/messageCategory/disable/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: \"disableMessageCategory/\" + page.messageCategory + \"/\" + page.publicId,\n      title: T(\"messageCategoryOff\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/static/messageCategory/disable/linkEnableAgain/link.ls","text":"(function(){\n  return function(page){\n    return Button(T(\"resubscribe\")).css({\n      margin: \"1em auto\"\n    }).tap(function(){\n      return startPage({\n        path: path(\"../../enable/page\"),\n        history: 0,\n        params: {\n          publicId: page.publicId,\n          messageCategory: page.messageCategory,\n          isDeepLink: page.params.isDeepLink\n        },\n        animation: \"fadeIn\"\n      });\n    });\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/static/_shared/iconError/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/alert.svg\"),\n      width: '5em',\n      height: '5em'\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/messageCategory/disable/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      margin: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"youHaveUnsubscribed\"));\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/static/messageCategory/disable/title/title.ls","text":"(function(){\n  return function(displayName){\n    return Div().css({\n      fontSize: \"1.5em\"\n    }).secureHtml(T(\"hello\", displayName));\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/static/messageCategory/enable/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../../_shared/topbarDeeplink/topbar\")(page, T(\"messageCategoryOn\"));\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/static/messageCategory/enable/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: \"enableMessageCategory/\" + page.messageCategory + \"/\" + page.publicId,\n      title: T(\"messageCategoryOn\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/static/messageCategory/disable/submit/submit.ls","text":"(function(){\n  return function(page, onSuccess, onError){\n    var publicId, messageCategory;\n    publicId = page.publicId;\n    messageCategory = page.messageCategory;\n    if (!publicId || !messageCategory) {\n      onError();\n      return;\n    }\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/messageCategory/disable/disable\"),\n      params: {\n        publicId: publicId,\n        messageCategory: messageCategory\n      },\n      onCompleted: function(result){\n        if (result.status === \"ok\") {\n          return onSuccess(result.displayName);\n        } else {\n          debug(result);\n          return onError();\n        }\n      },\n      onError: function(error){\n        debug(error);\n        return onError();\n      },\n      onOffline: function(){\n        return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n      }\n    });\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/static/messageCategory/enable/text/text.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      margin: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"youHaveSubscribed\"));\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/static/messageCategory/enable/title/title.ls","text":"(function(){\n  return function(displayName){\n    return Div().css({\n      fontSize: \"1.5em\"\n    }).secureHtml(T(\"hello\", displayName));\n  };\n})();","updated":"2022-10-04T15:41:56.528245"},{"path":"pages/misc/email/show/withMail/verifyText/text/text.ls","text":"(function(){\n  return function(isVerified){\n    return Div({\n      color: Color.grey[550]\n    }).html(isVerified\n      ? T(\"verified\")\n      : T(\"notVerified\"));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/email/edit/submit/deletePopup/popup.ls","text":"(function(){\n  return function(form, onDone){\n    var clickYes, html, ref$, popup;\n    clickYes = function(){\n      return popup.close(\"confirm\");\n    };\n    html = Div({\n      margin: \"1em 0.5em\"\n    }).html(Div({\n      marginBottom: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"reallyDeleteEmail\"), ((ref$ = log.findLast(\"setLoginCodeNeedsPassword\")) != null ? ref$.value : void 8) === true ? T(\"emailDeleteWarning\") : void 8), Button(T(\"cancelButton\")).css({\n      margin: \"0.2em\"\n    }).tap(function(){\n      return popup.close();\n    }), Button(T(\"yesDelete\")).css({\n      margin: \"0.2em\"\n    }).tap(clickYes).addClass(\"keyManager-enter\").bind(\"keyManager\", clickYes));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: html,\n      onClose: function(type){\n        return onDone(type === \"confirm\");\n      }\n    });\n  };\n})();","updated":"2023-04-12T10:06:07.73437"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/tooltip/_tooltip/div2/div2.ls","text":"(function(){\n  return function(){\n    return Div({\n      backgroundColor: \"white\",\n      width: \"100%\",\n      height: \"30%\",\n      marginTop: \"-1px\"\n    });\n  };\n})();","updated":"2022-09-20T14:56:10.616568"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/tooltip/_tooltip/div3/div3.ls","text":"(function(){\n  return function(o){\n    return Div({\n      width: \"100%\",\n      backgroundColor: \"white\",\n      height: \"100%\",\n      marginTop: \"-1px\",\n      borderRadius: o.newDesign ? \"0 0 5px 5px\" : \"0 0 2px 2px\"\n    });\n  };\n})();","updated":"2022-09-20T14:56:10.616568"},{"path":"lib/gui/screenKeyboard/createKeys/keys/char/tooltip/_tooltip/div1/fixOutsidePosition/fix.ls","text":"(function(){\n  return function(div, o){\n    return setTimeout(function(){\n      var offset, left, right, diff;\n      offset = div.offset();\n      left = offset.left;\n      right = body.width() - offset.right;\n      diff = o.newDesign ? 4 : 6;\n      if (left < 0) {\n        return div.css({\n          marginLeft: (-left * 2 + diff) + \"px\"\n        });\n      } else if (right < 0) {\n        return div.css({\n          marginRight: (-right * 2 + diff) + \"px\"\n        });\n      }\n    });\n  };\n})();","updated":"2022-09-20T14:56:10.616568"},{"path":"lib/gui/screenKeyboard/createKeys/row/row.ls","text":"(function(){\n  return function(o, row){\n    var key;\n    return Div({\n      display: \"flex\",\n      alignItems: \"stretch\",\n      height: o.rowHeight,\n      margin: \"0 auto\"\n    }).html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = row).length; i$ < len$; ++i$) {\n        key = ref$[i$];\n        results$.push(inc(\"key/key\")(key, o));\n      }\n      return results$;\n    }()));\n  };\n})();","updated":"2022-09-20T14:56:10.616568"},{"path":"lib/gui/screenKeyboard/div/div.ls","text":"(function(){\n  return function(o){\n    return Div({\n      textAlign: \"center\",\n      zIndex: 2,\n      padding: \"2px\",\n      maxWidth: \"40em\",\n      margin: \"0 auto\"\n    }).addClass(\"screenKeyboard\");\n  };\n})();","updated":"2022-09-20T14:56:10.616568"},{"path":"lib/util/soundEffectPlay/sounds/sounds.ls","text":"(function(){\n  return function(){\n    var s, volume;\n    s = inc(\"/lib/util/sound/sound\");\n    volume = inc(\"/data/user/audioVolume/get\")();\n    return {\n      correct: s({\n        base64: inc(\"/../sounds/correct.mp3.base64\"),\n        isSoundEffect: true,\n        volume: volume * 0.2\n      }),\n      wrong: s({\n        base64: inc(\"/../sounds/wrong.mp3.base64\"),\n        isSoundEffect: true,\n        volume: volume * 0.2\n      }),\n      wrongPreschool: s({\n        base64: inc(\"/../sounds/wrongPreschool.mp3.base64\"),\n        isSoundEffect: true,\n        volume: volume * 0.4\n      }),\n      notification: s({\n        base64: inc(\"/../sounds/notification.mp3.base64\"),\n        isSoundEffect: true,\n        volume: volume * 0.07\n      }),\n      finish1: s({\n        base64: inc(\"/../sounds/finish1.mp3.base64\"),\n        isSoundEffect: true,\n        volume: volume * 0.07\n      }),\n      finish2: s({\n        base64: inc(\"/../sounds/finish2.mp3.base64\"),\n        isSoundEffect: true,\n        volume: volume * 0.07\n      }),\n      finish3: s({\n        base64: inc(\"/../sounds/finish3.mp3.base64\"),\n        isSoundEffect: true,\n        volume: volume * 0.07\n      }),\n      finish4: s({\n        base64: inc(\"/../sounds/finish4.mp3.base64\"),\n        isSoundEffect: true,\n        volume: volume * 0.07\n      })\n    };\n  };\n})();","updated":"2022-11-01T10:21:23.570893"},{"path":"lib/util/downloadContentFile/redecideContentServer/logRedecide/log.ls","text":"(function(){\n  var isLogged;\n  isLogged = false;\n  return function(lastContentServer, lastDecision){\n    var _log, event;\n    if (isLogged) {\n      return;\n    }\n    isLogged = true;\n    _log = log || deviceLog;\n    event = log ? \"debugRedecideContentServer\" : \"deviceDebugRedecideContentServer\";\n    return _log.log({\n      event: event,\n      lastContentServer: lastContentServer,\n      lastDecision: lastDecision,\n      newContentServer: app.contentServer,\n      newDecision: app.contentServerDecision\n    });\n  };\n})();","updated":"2023-04-12T11:06:59.467288"},{"path":"lib/util/calcNewsList/calcNewsEntry/calc.ls","text":"(function(){\n  return function(newsId){\n    var date, d, debugOnly, isRead;\n    date = newsId.split(\"_\")[0];\n    d = inc(\"/lib/util/formatDate2/format\")(date);\n    debugOnly = d.timeAgo.ts < 0 && engine.isDebug;\n    isRead = log.findLast({\n      event: \"newsRead\",\n      value: newsId\n    }) != null;\n    if (d.timeAgo.d > 14) {\n      isRead = true;\n    }\n    return {\n      includePath: \"/../app01-news/news/\" + newsId + \"/news\",\n      newsId: newsId,\n      isRead: isRead,\n      debugOnly: debugOnly,\n      date: date\n    };\n  };\n})();","updated":"2022-09-28T10:23:55.393289"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/loadPlans/load.ls","text":"(function(){\n  return function(p){\n    var loadAllPlans, filterPlans;\n    loadAllPlans = function(){\n      return inc(\"/lib/util/loadPlansAll/load\")({\n        onLoaded: filterPlans,\n        onError: p.onError\n      });\n    };\n    filterPlans = function(plans){\n      var allowedPlanDescriptions, filteredPlans, i$, len$, plan, that;\n      allowedPlanDescriptions = inc(\"/data/content/calcPlanDescriptions/calc\")();\n      allowedPlanDescriptions = _.filter(allowedPlanDescriptions, function(p){\n        return !_.startsWith(p.project, \"c-preschool-shapes\");\n      });\n      filteredPlans = [];\n      for (i$ = 0, len$ = plans.length; i$ < len$; ++i$) {\n        plan = plans[i$];\n        if (that = _.find(allowedPlanDescriptions, {\n          project: plan.project\n        })) {\n          plan.displayName = that.displayName;\n          filteredPlans.push(plan);\n        }\n      }\n      return p.onDone(filteredPlans);\n    };\n    return loadAllPlans();\n  };\n})();","updated":"2023-04-12T14:34:50.066442"},{"path":"addons/topbarLevel/_shared/adjustFirstVisibleDivMargin/adjust.ls","text":"(function(){\n  return function(page){\n    return function(){\n      var slideDiv, div;\n      slideDiv = page.findFirst(\".slide\");\n      div = _.find(slideDiv != null ? slideDiv.childrenAll() : void 8, function(c){\n        return c.isVisible();\n      });\n      if (!div || div.textContent.trim() === \"\") {\n        return;\n      }\n      return requestAnimationFrame(function(){\n        var divTop, maxAllowedTop;\n        divTop = div.offset().top;\n        maxAllowedTop = inc(\"/lib/util/emToPx/emToPx\")(5);\n        if (divTop - maxAllowedTop < 5) {\n          return div.css({\n            marginTop: div.hasClass(\"instruction\") || div.findFirst(\".instruction\") ? \"1.7em\" : \"3em\"\n          });\n        }\n      });\n    };\n  };\n})();","updated":"2023-10-24T08:06:59.581855"},{"path":"lib/init/engineTranslate/translate.ls","text":"(function(){\n  return function(o){\n    var propertyName, replacements, td, l, lang, ref$;\n    propertyName = o.arguments[0];\n    replacements = _.values(o.arguments).slice(1);\n    td = inc(\"findTranslationDetails/find\")(propertyName, o.project, o.localPath);\n    if (!td) {\n      return propertyName + \"_NOT_FOUND\";\n    }\n    if (_.isString(td)) {\n      l = td;\n    } else {\n      lang = engine.guiLanguage.split(\"_\")[0];\n      l = (ref$ = td[engine.guiLanguage]) != null\n        ? ref$\n        : (ref$ = td[lang]) != null\n          ? ref$\n          : (ref$ = td[engine.guiLanguage + \"Dev\"]) != null\n            ? ref$\n            : td[lang + \"Dev\"];\n    }\n    if (l === false) {\n      return undefined;\n    }\n    if (!l) {\n      return propertyName + (\"_NO_\" + engine.guiLanguage.toUpperCase());\n    }\n    if (replacements != null && replacements.length) {\n      l = inc(\"replaceTranslation/replace\")(l, replacements);\n    }\n    return l;\n  };\n})();","updated":"2023-10-24T08:06:59.581855"},{"path":"lib/gui/avatar/defaultHead/head.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/avatar.svg\"),\n      color: Color.blueGrey[250]\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/mobileFallback/xhrRequest/xhrRequest.ls","text":"(function(){\n  return function(p, retry){\n    var job, xhr, load, onReadyStateChange, onError;\n    job = p.job;\n    xhr = new XMLHttpRequest();\n    load = function(){\n      var url;\n      url = job.url;\n      xhr.open(\"GET\", url);\n      xhr.onreadystatechange = onReadyStateChange;\n      xhr.responseType = \"blob\";\n      return xhr.send();\n    };\n    onReadyStateChange = function(){\n      var etag, antonServer, antonDebug, blob;\n      if (xhr.readyState !== 4) {\n        return;\n      }\n      etag = xhr.getResponseHeader(\"anton-etag\");\n      antonServer = xhr.getResponseHeader(\"anton-server\");\n      antonDebug = xhr.getResponseHeader(\"anton-debug\");\n      blob = xhr.response;\n      if (antonDebug) {\n        inc(\"../../_antonDebug/antonDebug\")(antonDebug, p.job);\n        retry = true;\n      }\n      if (xhr.status === 0 && !retry) {\n        return inc(THISFILE)(p, true);\n      } else if (antonServer !== \"yes\") {\n        return onError(\"offline\");\n      } else if (xhr.status === 404) {\n        return onError(\"not_found\");\n      } else if (!blob) {\n        return onError(\"not_found\");\n      } else if (blob.size !== parseInt(etag != null ? etag.split(\"-\")[1] : void 8)) {\n        if (typeof log != 'undefined' && log !== null) {\n          log.log({\n            event: \"debugCorruptedFileSize\",\n            url: job.url,\n            blobSize: blob.size,\n            etag: etag,\n            retry: retry\n          });\n        }\n        if (!retry) {\n          return inc(THISFILE)(p, true);\n        } else {\n          return onError(\"corrupted\");\n        }\n      } else {\n        job.responseEtag = etag;\n        return p.onLoaded(blob);\n      }\n    };\n    onError = function(error){\n      return p.onError(error);\n    };\n    return load();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/mobileFallback/download.ls","text":"(function(){\n  return function(p){\n    var job, xhrRequest, saveFile, addFilePath, clearOutdatedFiles, readFileContent, finish;\n    job = p.job;\n    xhrRequest = function(){\n      return inc(\"xhrRequest/xhrRequest\")({\n        job: job,\n        onError: p.onError,\n        onLoaded: saveFile\n      });\n    };\n    saveFile = function(blob){\n      p.blob = blob;\n      return inc(\"saveFile/save\")({\n        job: p.job,\n        blob: blob,\n        onError: p.onError,\n        onDone: addFilePath\n      });\n    };\n    addFilePath = function(){\n      return inc(\"/lib/util/fileDirectoryList/fileAdd/add\")({\n        filePath: job.filePath + \"_\" + job.responseEtag,\n        onDone: clearOutdatedFiles\n      });\n    };\n    clearOutdatedFiles = function(){\n      return inc(\"../_clearOutdatedFiles/clear\")({\n        job: job,\n        onDone: readFileContent\n      });\n    };\n    readFileContent = function(){\n      if (job.returnFileContent) {\n        return inc(\"../../readFileContent/read\")({\n          job: job,\n          blob: p.blob,\n          onLoaded: finish,\n          onError: p.onError\n        });\n      } else {\n        return finish();\n      }\n    };\n    finish = function(){\n      var ref$;\n      if (job.returnFileContent && !job.fileContent) {\n        if (typeof log != 'undefined' && log !== null) {\n          log.log({\n            event: \"debugFileContentEmpty\",\n            url: job.url,\n            responseEtag: job.responseEtag,\n            blobSize: (ref$ = p.blob) != null ? ref$.size : void 8\n          });\n        }\n      }\n      return p.onLoaded();\n    };\n    return xhrRequest();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/web/download.ls","text":"(function(){\n  return function(p){\n    var job, xhrRequest, readFileContent, finish;\n    job = p.job;\n    xhrRequest = function(){\n      return inc(\"xhrRequest/xhrRequest\")({\n        job: job,\n        onError: p.onError,\n        onLoaded: readFileContent\n      });\n    };\n    readFileContent = function(blob){\n      if (job.returnFileContent) {\n        return inc(\"../../readFileContent/read\")({\n          job: job,\n          blob: blob,\n          onLoaded: finish,\n          onError: p.onError\n        });\n      } else {\n        return finish();\n      }\n    };\n    finish = function(){\n      return p.onLoaded();\n    };\n    return xhrRequest();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/ios/download.ls","text":"(function(){\n  return function(p){\n    var job, transferFile, addFilePath, clearOutdatedFiles, readFileContent, finish;\n    job = p.job;\n    transferFile = function(){\n      return inc(\"transferFile/transfer\")({\n        job: job,\n        onError: p.onError,\n        onLoaded: addFilePath\n      });\n    };\n    addFilePath = function(){\n      return inc(\"/lib/util/fileDirectoryList/fileAdd/add\")({\n        filePath: job.filePath + \"_\" + job.responseEtag,\n        onDone: clearOutdatedFiles\n      });\n    };\n    clearOutdatedFiles = function(){\n      return inc(\"../_clearOutdatedFiles/clear\")({\n        job: job,\n        onDone: readFileContent\n      });\n    };\n    readFileContent = function(){\n      if (job.returnFileContent) {\n        return inc(\"../../readFileContent/read\")({\n          job: job,\n          onLoaded: finish,\n          onError: p.onError\n        });\n      } else {\n        return finish();\n      }\n    };\n    finish = function(){\n      return p.onLoaded();\n    };\n    return transferFile();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"pages/static/download/_t.ls","text":"(function(){\n  return {\n    downloadAnton: {\n      de: \"Download ANTON\",\n      en: \"Download ANTON\",\n      fr: \"Télécharger ANTON\",\n      es: \"Descargar ANTON\",\n      pt: \"Baixar ANTON\"\n    },\n    appStore: {\n      de: \"App Store\",\n      en: \"App Store\",\n      fr: \"App Store\",\n      es: \"App Store\",\n      pt: \"App Store\"\n    },\n    amazonAppStore: {\n      de: \"Amazon App Store\",\n      en: \"Amazon App Store\",\n      fr: \"Amazon Appstore\",\n      es: \"Amazon Appstore\",\n      pt: \"Amazon Appstore\"\n    },\n    playStore: {\n      de: \"Play Store\",\n      en: \"Play Store\",\n      fr: \"Play Store\",\n      es: \"Play Store\",\n      pt: \"Play Store\"\n    },\n    openStoreAgain: {\n      de: \"$1 nochmal öffnen\",\n      en: \"Reopen $1\",\n      fr: \"Rouvrir $1\",\n      es: \"Abrir $1 nuevamente\",\n      pt: \"Abrir $1 novamente\"\n    },\n    youCanUseAntonInBrowser: {\n      de: \"Du kannst ANTON natürlich auch hier im Browser nutzen.\",\n      en: \"You can also use ANTON here in the browser.\",\n      fr: \"Tu peux aussi utiliser ANTON ici dans le navigateur.\",\n      es: \"También puedes usar ANTON aquí en el navegador.\",\n      pt: \"Você também pode usar ANTON aqui no seu navegador.\"\n    },\n    downloadUrl: {\n      de: \"download\",\n      en: \"download\",\n      fr: \"telecharger\",\n      es: \"descargar\",\n      pt: \"baixar\"\n    }\n  };\n})();","updated":"2022-11-29T12:24:20.22864"},{"path":"lib/util/convertSoundString/convert.ls","text":"(function(){\n  return function(o){\n    var s, i$, ref$, len$, tag, ref1$, ref2$, r, openingTagRegex, closingTagRegex, selfClosingTagRegex, anyTagRegex, isSsml, results, part, stack, tagStack, createClosingTagForTag, getClosingTagsForStack, popTagStack, fixTags, m, res, cur, voice, voiceLang, ref3$, gain, ref4$;\n    s = o.sound || o.text;\n    if (!s) {\n      return [o];\n    }\n    if (/<break[^/]*?>/.test(s)) {\n      debug(\"Wrong sound syntax! break-tag isnt closed!\", s);\n    }\n    for (i$ = 0, len$ = (ref$ = [\"prosody\", \"voice\"]).length; i$ < len$; ++i$) {\n      tag = ref$[i$];\n      if (((ref1$ = s.match(new RegExp(\"<\" + tag, \"g\"))) != null ? ref1$.length : void 8) !== ((ref2$ = s.match(new RegExp(\"</\" + tag, \"g\"))) != null ? ref2$.length : void 8)) {\n        debug(\"Wrong sound syntax! Opening and closing tags dont match\", s);\n      }\n    }\n    r = new RegExp(\"\\\\<\\\\/?voice[^\\\\>]*\\\\>\");\n    openingTagRegex = /(<[^(><.)\\/]+>)/;\n    closingTagRegex = /(<\\/[^(><.)]+>)/;\n    selfClosingTagRegex = /(<[^(><.)]+\\/>)/;\n    anyTagRegex = /(<[^(><.)]+>)/g;\n    isSsml = false;\n    results = [];\n    part = {\n      voice: o.voice,\n      voiceLang: o.voiceLang\n    };\n    stack = [{\n      voice: o.voice,\n      voiceLang: o.voiceLang\n    }];\n    tagStack = [];\n    createClosingTagForTag = function(tag){\n      var t;\n      if (tag == null) {\n        return null;\n      }\n      t = tag.replace('<', '').replace('>', '').split(' ')[0];\n      return \"</\" + t + \">\";\n    };\n    getClosingTagsForStack = function(){\n      return _.map(tagStack, createClosingTagForTag).join('');\n    };\n    popTagStack = function(closingTag){\n      var lastTag, s, ct, ot;\n      lastTag = tagStack.pop();\n      if (createClosingTagForTag(lastTag) !== closingTag) {\n        s = o.sound || o.text;\n        s = s.replace(/</g, '&lt;').replace(/>/g, '&gt;');\n        ct = closingTag != null ? closingTag.replace('<', '&lt;').replace('>', '&gt;') : void 8;\n        ot = lastTag != null ? lastTag.replace('<', '&lt;').replace('>', '&gt;') : void 8;\n        throw new Error(\"unexpected closing tag: \" + ct + \" <br/> in string: \" + s + \" <br/> last opened tag was: \" + ot + \" \");\n      }\n    };\n    fixTags = function(s){\n      var pretags, tags;\n      pretags = tagStack.join('');\n      tags = s.match(anyTagRegex);\n      _.each(tags, function(tag){\n        if (openingTagRegex.test(tag)) {\n          tagStack.push(tag);\n        }\n        if (closingTagRegex.test(tag)) {\n          return popTagStack(tag);\n        }\n      });\n      return pretags + s + getClosingTagsForStack();\n    };\n    if (r.test(s)) {\n      if (s.indexOf('ssml:') === 0) {\n        isSsml = true;\n      }\n      while (s.length) {\n        m = r.exec(s);\n        if (m) {\n          res = m[0];\n          part.text = s.slice(0, m.index);\n          part.text = fixTags(part.text);\n          s = s.slice(m.index + res.length);\n          if (part.text.indexOf('ssml:') !== 0 && isSsml) {\n            part.text = 'ssml: ' + part.text;\n          }\n          results.push(part);\n          if (res[1] === '/') {\n            stack.pop();\n          } else {\n            cur = _.last(stack);\n            voice = ((ref$ = /voice=.([^'\"]*)./.exec(m[0])) != null ? ref$[1] : void 8) || cur.voice;\n            voiceLang = ((ref3$ = /voiceLang=.([^'\"]*)./.exec(m[0])) != null ? ref3$[1] : void 8) || cur.voiceLang;\n            gain = ((ref4$ = /gain=.([^'\"]*)./.exec(m[0])) != null ? ref4$[1] : void 8) || cur.gain;\n            stack.push({\n              voice: voice,\n              voiceLang: voiceLang,\n              gain: gain\n            });\n          }\n          cur = _.last(stack);\n          part = {\n            voice: cur.voice,\n            voiceLang: cur.voiceLang,\n            gain: cur.gain\n          };\n        } else {\n          part.text = fixTags(s);\n          if (part.text.indexOf('ssml:') !== 0 && isSsml) {\n            part.text = 'ssml: ' + part.text;\n          }\n          s = '';\n          results.push(part);\n        }\n      }\n    } else {\n      part.text = s;\n      results.push(part);\n    }\n    _.each(results, function(result){\n      var ref$;\n      if (result.voice === 'custom') {\n        result.text = result.text.replace('ssml: ', '').replace(anyTagRegex, '');\n      }\n      if (result.gain === \"0\") {\n        return result.gain = 0;\n      } else if (result.gain) {\n        return result.gain = result.gain * 1;\n      } else {\n        return ref$ = result.gain, delete result.gain, ref$;\n      }\n    });\n    return results = _.filter(results, function(s){\n      var ref$, ref1$;\n      return ((ref$ = s.text) != null ? ref$.length : void 8) > 0 && ((ref1$ = s.text) != null ? ref1$.replace('ssml:', '').trim().length : void 8) > 0;\n    });\n  };\n})();","updated":"2022-11-29T12:24:20.22864"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/web/xhrRequest/xhrRequest.ls","text":"(function(){\n  return function(p, retry){\n    var job, xhr, load, onReadyStateChange, onError;\n    job = p.job;\n    xhr = new XMLHttpRequest();\n    load = function(){\n      var url;\n      url = job.url;\n      xhr.open(\"GET\", url);\n      xhr.onreadystatechange = onReadyStateChange;\n      xhr.responseType = \"blob\";\n      return xhr.send();\n    };\n    onReadyStateChange = function(){\n      var etag, antonServer, antonDebug, blob;\n      if (xhr.readyState !== 4) {\n        return;\n      }\n      etag = xhr.getResponseHeader(\"anton-etag\");\n      antonServer = xhr.getResponseHeader(\"anton-server\");\n      antonDebug = xhr.getResponseHeader(\"anton-debug\");\n      blob = xhr.response;\n      if (antonDebug) {\n        inc(\"../../_antonDebug/antonDebug\")(antonDebug, p.job);\n      }\n      if (xhr.status === 0 && !retry) {\n        return inc(THISFILE)(p, true);\n      } else if (antonServer !== \"yes\") {\n        return onError(\"offline\");\n      } else if (xhr.status === 404) {\n        if (typeof log != 'undefined' && log !== null) {\n          log.log({\n            event: \"debugDownloadContentError404\",\n            fileId: job.fileId\n          });\n        }\n        return onError(\"not_found\");\n      } else if (!blob) {\n        return onError(\"not_found\");\n      } else {\n        job.responseEtag = etag;\n        return p.onLoaded(blob);\n      }\n    };\n    onError = function(error){\n      return p.onError(error);\n    };\n    return load();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/_shared/loadLocalFile/load.ls","text":"(function(){\n  return function(p){\n    var job, findFile, onFile, readFileContent, finish;\n    job = p.job;\n    findFile = function(){\n      return inc(\"findFile/find\")(job, onFile);\n    };\n    onFile = function(filePath){\n      if (!filePath) {\n        return p.onError();\n      } else {\n        return readFileContent(filePath);\n      }\n    };\n    readFileContent = function(filePath){\n      job.responseEtag = _.last(filePath.split(\"_\"));\n      if (job.returnFileContent) {\n        return inc(\"../readFileContent/read\")({\n          job: job,\n          onLoaded: finish,\n          onError: p.onError\n        });\n      } else {\n        return finish();\n      }\n    };\n    finish = function(){\n      return p.onLoaded();\n    };\n    return findFile();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/gui/toast/animation/animation.ls","text":"(function(){\n  return function(o, div){\n    var height;\n    height = div.offset().height;\n    return div.css({\n      opacity: 0,\n      transform: \"translate(0, -\" + height + \"px)\"\n    }).animation({\n      css: {\n        opacity: 1,\n        transform: \"translate(0, 0)\"\n      },\n      onCompleted: function(){\n        return setTimeout(div.hideAnimated, +o.duration || 3000);\n      }\n    });\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"pages/start/login/00_shared/finishLogin/finish.ls","text":"(function(){\n  return function(o){\n    var storedLogIds;\n    storedLogIds = inc(\"/lib/util/storedUsers/logIds/logIds\")();\n    return startPage({\n      path: path(\"/pages/start/startUser/page\"),\n      history: o.history,\n      params: {\n        logId: o.logId,\n        authToken: o.authToken,\n        loginType: o.loginType,\n        displayName: o.displayName,\n        avatar: o.avatar,\n        rememberUser: _.includes(storedLogIds, o.logId) ? \"no\" : \"ask\"\n      }\n    });\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"lib/util/splitDataUrl/split.ls","text":"(function(){\n  return function(dataUrl){\n    var d, mimeType, base64;\n    d = dataUrl.split(\",\");\n    mimeType = d[0].match(/[^:\\s*]\\w+\\/[\\w-+\\d.]+(?=[;| ])/)[0];\n    base64 = d[1];\n    return {\n      mimeType: mimeType,\n      base64: base64\n    };\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"lib/util/browser/removePageUrlParam/remove.ls","text":"(function(){\n  return function(paramName){\n    var s, a, a2, url;\n    s = location.href.split(\"?\")[1];\n    if (!s) {\n      return;\n    }\n    a = s.split(\"&\");\n    a2 = _.filter(a, function(s){\n      return s.indexOf(paramName) !== 0;\n    });\n    s = a2.join(\"&\");\n    url = location.href.split(\"?\")[0] + \"?\" + s;\n    return history.replaceState(history.state, \"\", url);\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"lib/gui/screenKeyboard/stop/stop.ls","text":"(function(){\n  return function(o){\n    var stop;\n    stop = function(){\n      var ref$;\n      o.div.hide();\n      if (app.navbarPosition !== \"top\" && app.currentPage.pageWrapper.pageCode.navCategory) {\n        return (ref$ = app.currentPage.navBottom) != null ? ref$.show() : void 8;\n      }\n    };\n    return o.div.stop = stop;\n  };\n})();","updated":"2022-11-30T10:34:21.622959"},{"path":"lib/util/soundEffectPlay/soundEffectPlay.ls","text":"(function(){\n  var sounds;\n  sounds = inc(\"sounds/sounds\")();\n  return function(name){\n    var ref$, sound;\n    if (name == null) {\n      return;\n    }\n    if ((typeof log != 'undefined' && log !== null ? (ref$ = log.findLast(\"setEnableSoundEffects\")) != null ? ref$.value : void 8 : void 8) === false) {\n      return;\n    }\n    sound = sounds[name];\n    return sound.play();\n  };\n})();","updated":"2022-12-13T13:59:46.645067"},{"path":"addons/topbarLevel/calculator/calculator/background/background.ls","text":"(function(){\n  return function(o){\n    var div;\n    return div = Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      height: \"var(--screenHeight)\",\n      backgroundColor: \"rgba(0, 0, 0, 0.2)\",\n      pointerEvents: \"auto\"\n    }).addClass(\"calculatorBackground\").tap({\n      up: o.close,\n      animation: \"none\"\n    }).css({\n      cursor: \"default\"\n    }).hide();\n  };\n})();","updated":"2022-12-01T11:59:17.355716"},{"path":"lib/gui/screenKeyboard/createKeys/keys/mathKeys/keys.ls","text":"(function(){\n  return function(keys){\n    var mathKeys, i$, results$ = [];\n    mathKeys = inc(\"calcKeys/calc\")();\n    for (i$ in mathKeys) {\n      results$.push((fn$.call(this, i$, mathKeys[i$])));\n    }\n    return results$;\n    function fn$(key, v){\n      return keys[key] = function(k, o){\n        var that, keyDivHtml, cornerChar, p, div;\n        if (that = v.div) {\n          return that(k, o);\n        }\n        keyDivHtml = _.isFunction(v.h)\n          ? v.h()\n          : v.h;\n        if (o.layout === \"mathDivCalculator\") {\n          if (v.alt) {\n            cornerChar = inc(\"cornerChar/cornerChar\")(mathKeys[v.alt].h, o);\n            keyDivHtml = [cornerChar, keyDivHtml];\n          }\n        }\n        p = {\n          o: o,\n          keyDivHtml: keyDivHtml,\n          color: v.c || \"grey0\",\n          key: k\n        };\n        if (v.k) {\n          p.up = inc(\"tap/tap\")(o, v);\n        }\n        div = inc(\"../_div/div\")(p);\n        if (!p.up) {\n          div.css({\n            pointerEvents: \"none\"\n          });\n        }\n        return div;\n      };\n    }\n  };\n})();","updated":"2022-12-01T11:59:17.355716"},{"path":"lib/gui/screenKeyboard/createKeys/keys/mathKeys/calcKeys/degRad/key.ls","text":"(function(){\n  var value;\n  return function(k, o){\n    var mathDiv, c1, c2, tap, div1, div2;\n    mathDiv = o.input;\n    value = mathDiv.getTrigMode();\n    c1 = Color.grey[350];\n    c2 = Color.black;\n    tap = function(){\n      value = value === \"deg\" ? \"rad\" : \"deg\";\n      mathDiv.setTrigMode(value);\n      if (typeof vibrate == 'function') {\n        vibrate(VIBRATION_TYPES.selection);\n      }\n      if (typeof vibrate == 'function') {\n        vibrate(VIBRATION_TYPES.gestureSelectionStart);\n      }\n      div1.css({\n        color: value === \"deg\" ? c2 : c1\n      });\n      return div2.css({\n        color: value === \"rad\" ? c2 : c1\n      });\n    };\n    return Div({\n      display: \"flex\",\n      flex: k.width + \" 1\",\n      alignItems: \"stretch\"\n    }).html(Div({\n      display: \"flex\",\n      flex: \"1 1 auto\",\n      backgroundColor: Color.grey[300],\n      borderRadius: \"5px\",\n      margin: \"4px\"\n    }).html(div1 = Div({\n      display: \"flex\",\n      flex: \"1 1 auto\",\n      color: value === \"deg\" ? c2 : c1\n    }).html(\"deg\"), Div({\n      height: \"80%\",\n      width: \"2px\",\n      backgroundColor: Color.grey[350],\n      marginLeft: \"-2px\"\n    }), div2 = Div({\n      display: \"flex\",\n      flex: \"1 1 auto\",\n      color: value === \"rad\" ? c2 : c1\n    }).html(\"rad\"))).tap({\n      up: tap,\n      animation: \"none\"\n    }).css({\n      cursor: \"default\"\n    });\n  };\n})();","updated":"2022-12-01T11:59:17.355716"},{"path":"lib/gui/screenKeyboard/createKeys/keys/back/key.ls","text":"(function(){\n  return function(key, o){\n    var down, up, cancel, div;\n    down = function(){\n      return inc(\"repeater/start\")(o, key, 500);\n    };\n    up = function(){\n      return cancel();\n    };\n    cancel = function(){\n      return clearTimeout(key.repeaterTimeout);\n    };\n    return div = inc(\"../_div/div\")({\n      o: o,\n      key: key,\n      keyDivHtml: inc(\"icon/icon\")(),\n      color: \"grey1\",\n      down: down,\n      up: up,\n      cancel: cancel\n    });\n  };\n})();","updated":"2022-12-01T11:59:17.355716"},{"path":"lib/gui/screenKeyboard/createKeys/keys/newline/key.ls","text":"(function(){\n  return function(key, o){\n    var down, div;\n    down = function(){\n      return o.onKey(\"newline\", true);\n    };\n    return div = inc(\"../_div/div\")({\n      o: o,\n      key: key,\n      keyDivHtml: inc(\"icon/icon\")(),\n      color: \"grey2\",\n      down: down\n    });\n  };\n})();","updated":"2022-12-01T11:59:17.355716"},{"path":"lib/gui/screenKeyboard/createKeys/keys/right/key.ls","text":"(function(){\n  return function(key, o){\n    var down, up, cancel, div;\n    down = function(){\n      return inc(\"repeater/start\")(o, key, 500);\n    };\n    up = function(){\n      return cancel();\n    };\n    cancel = function(){\n      return clearTimeout(key.repeaterTimeout);\n    };\n    return div = inc(\"../_div/div\")({\n      o: o,\n      key: key,\n      keyDivHtml: inc(\"icon/icon\")(),\n      color: \"grey2\",\n      down: down,\n      up: up,\n      cancel: cancel\n    });\n  };\n})();","updated":"2022-12-01T11:59:17.355716"},{"path":"lib/gui/screenKeyboard/createKeys/keys/shift/key.ls","text":"(function(){\n  return function(key, o){\n    var up, div;\n    up = function(){\n      o.shiftStatus = !o.shiftStatus;\n      return o.start();\n    };\n    return div = inc(\"../_div/div\")({\n      o: o,\n      key: key,\n      keyDivHtml: inc(\"icon/icon\")(o),\n      color: \"grey2\",\n      up: up\n    });\n  };\n})();","updated":"2022-12-01T11:59:17.355716"},{"path":"pages/misc/teacherDirCode/_t.ls","text":"(function(){\n  return {\n    topbarTitle: {\n      de: \"Schulverzeichnis-Lehrer-Code eintragen\",\n      en: \"Enter school directory teacher code\",\n      fr: \"Rejoindre un répertoire scolaire avec un code\",\n      es: \"Ingresar clave-docente en el directorio escolar\",\n      pt: \"Inserir código-professores do Diretório Escolar\"\n    },\n    errorEmpty: {\n      de: \"Das Feld darf nicht leer sein.\",\n      en: \"This field cannot be left blank.\",\n      fr: \"Ce champ ne peut pas rester vide.\",\n      es: \"Este campo no puede quedar en blanco.\",\n      pt: \"Este campo não pode ficar em branco.\"\n    },\n    errorInvalidCode: {\n      de: \"Der Code ist ungültig.\",\n      en: \"This code is invalid.\",\n      fr: \"Ce code n'est pas valide.\",\n      es: \"La clave no es válida.\",\n      pt: \"O código é inválido.\"\n    },\n    errorCodeAssigned: {\n      de: \"Der Code ist schon einem Nutzer zugeordnet.\",\n      en: \"This code is already assigned to an account.\",\n      fr: \"Ce code est déjà attribué à un·e utilisateur·rice.\",\n      es: \"La clave ya ha sido asignada a otro u otra usuaria.\",\n      pt: \"Este código foi designado à outro(a) usuário(a).\"\n    },\n    errorMustBeTeacher: {\n      de: \"Der Code ist nur für Lehrkräfte gültig.\",\n      en: \"This code is only valid for teachers.\",\n      fr: \"Le code est valable uniquement pour des professeur·es.\",\n      es: \"La clave sólo es válida para docentes.\",\n      pt: \"O código só é válido para professores.\"\n    },\n    errorDirMember: {\n      de: \"Du hast schon einen Schulverzeichnis-Eintrag.\",\n      en: \"You already have a school directory entry.\",\n      fr: \"Tu as déjà une entrée dans le répertoire scolaire.\",\n      es: \"Ya tienes una entrada en el directorio escolar.\",\n      pt: \"Você já possui uma entrada no Diretório Escolar.\"\n    },\n    errorNotTeacher: {\n      de: \"Der Nutzer muss Lehrkraft sein!\",\n      en: \"The user must be a teacher\",\n      fr: \"L'utilisateur·rice doit être professeur·e.\",\n      es: \"El o la usuaria tiene que ser docente.\",\n      pt: \"A conta deve ser de um(a) professor(a).\"\n    },\n    errorAlreadyMember: {\n      de: \"Der Nutzer ist bereits im Schulverzeichnis.\",\n      en: \"This user is already in the school directory.\",\n      fr: \"L'utilisateur·rice est déjà dans le répertoire scolaire.\",\n      es: \"El o la usuaria ya existe en el directorio escolar.\",\n      pt: \"Esta conta já existe no Diretório Escolar.\"\n    },\n    errorPupilCode: {\n      de: \"Dies ist ein Schüler-Code. Du benötigst einen Lehrer-Code, um dem Schulverzeichnis als Lehrkraft beizutreten.\",\n      en_gb: \"This is a pupil code. You need a teacher code to join the school directory as a teacher.\",\n      en: \"This is a student code. You need a teacher code to join the school directory as a teacher.\",\n      fr: \"Il s'agit d'un code-élève. Tu dois avoir un code-professeur pour rejoindre le répertoire scolaire en tant que professeur·e.\",\n      es: \"Esta es una clave-estudiante. Necesitas una clave-docente para unirte al directorio escolar como docente.\",\n      pt: \"Este é um código-alunos. Você precisa de um código-professores para poder entrar no Diretório Escolar como professor(a).\"\n    },\n    errorNoSubscription: {\n      de: \"Du kannst dem Schulverzeichnis nicht beitreten. Eventuell ist deine Schullizenz erst ab einem zukünftigen Datum oder nicht mehr gültig. Bei weiteren Fragen wende dich an support@anton.app.\",\n      en_gb: \"You are unable to join the school directory. This may be due to the fact that your school licence is not yet valid or your school licence has expired. If you have further questions, please contact support@anton.app.\",\n      en: \"You are unable to join the school directory. This may be due to the fact that your school license will not be valid until a future date or is no longer valid. If you have further questions, please contact support@anton.app.\",\n      fr: \"Tu ne peux pas rejoindre le répertoire scolaire. La licence scolaire de l'école n'est peut-être pas encore active ou elle n'est plus valide. En cas de question, tu peux nous écrire à support@anton.app.\",\n      es: \"No te puedes unir al directorio escolar. Tal vez, la validez de tu licencia escolar aún no comienza o ya expiró. Si tienes dudas, envíanos un correo a support@anton.app.\",\n      pt: \"Você não pode entrar no Diretório Escolar. A validade da sua Licença Escolar pode ainda não ter começado ou talvez ela já tenha expirado. Se você tiver alguma dúvida, envie-nos um e-mail para support@anton.app.\"\n    }\n  };\n})();","updated":"2025-06-26T06:59:26.258669"},{"path":"lib/init/errorHandler/sendPuppeteerError/send.ls","text":"(function(){\n  return function(d){\n    var error;\n    try {\n      error = _.clone(d);\n      error.page = typeof app != 'undefined' && app !== null ? app.currentPagePath : void 8;\n      return document.dispatchEvent(new CustomEvent(\"pageError\", {\n        bubbles: true,\n        detail: {\n          error: error\n        }\n      }));\n    } catch (e$) {}\n  };\n})();","updated":"2023-11-15T04:03:44.15596"},{"path":"lib/init/logDeviceStartEvents/firstStartDetails/log.ls","text":"(function(){\n  return function(){\n    if (!Store(\"deviceFirstStart\")) {\n      return;\n    }\n    if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n      deviceLog.log({\n        event: \"deviceFirstStartDetails\",\n        userAgent: navigator.userAgent,\n        url: location.href,\n        appVersionDate: projects.info()[\"app01\"].versionDate,\n        isMobileApp: engine.isMobileApp,\n        engineVersion: engine.clientVersion\n      });\n    }\n    return Store.remove(\"deviceFirstStart\");\n  };\n})();","updated":"2023-11-15T04:56:47.454224"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/_clearOutdatedFiles/clear.ls","text":"(function(){\n  return function(p){\n    var job, filePath, responseEtag, searchFilePaths, calcOutdatedFilePaths, removeFiles, finish;\n    job = p.job;\n    filePath = job.filePath;\n    responseEtag = job.responseEtag;\n    searchFilePaths = function(){\n      return inc(\"/lib/util/fileDirectoryList/search/search\")({\n        startsWith: filePath,\n        onDone: function(filePaths){\n          if (filePaths.length === 0) {\n            return finish();\n          } else {\n            return calcOutdatedFilePaths(filePaths);\n          }\n        }\n      });\n    };\n    calcOutdatedFilePaths = function(filePaths){\n      var outdatedFilePaths;\n      outdatedFilePaths = _.filter(filePaths, function(fp){\n        return !_.startsWith(fp, filePath + \"_\" + responseEtag);\n      });\n      if (outdatedFilePaths.length === 0) {\n        return finish();\n      } else {\n        return removeFiles(outdatedFilePaths);\n      }\n    };\n    removeFiles = function(outdatedFilePaths){\n      var totalDone, i$, len$, fp, results$ = [];\n      totalDone = 0;\n      for (i$ = 0, len$ = outdatedFilePaths.length; i$ < len$; ++i$) {\n        fp = outdatedFilePaths[i$];\n        results$.push(app.fileSystem.removeFile(fp, fn$));\n      }\n      return results$;\n      function fn$(){\n        return inc(\"/lib/util/fileDirectoryList/fileRemove/remove\")({\n          filePath: fp,\n          onDone: function(){\n            totalDone++;\n            if (totalDone === outdatedFilePaths.length) {\n              return finish();\n            }\n          }\n        });\n      }\n    };\n    finish = function(){\n      return p.onDone();\n    };\n    return searchFilePaths();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/android/download.ls","text":"(function(){\n  return function(p){\n    var job, transferFile, addFilePath, clearOutdatedFiles, readFileContent, finish;\n    job = p.job;\n    transferFile = function(){\n      return inc(\"transferFile/transfer\")({\n        job: job,\n        onError: p.onError,\n        onLoaded: addFilePath\n      });\n    };\n    addFilePath = function(){\n      return inc(\"/lib/util/fileDirectoryList/fileAdd/add\")({\n        filePath: job.filePath + \"_\" + job.responseEtag,\n        onDone: clearOutdatedFiles\n      });\n    };\n    clearOutdatedFiles = function(){\n      return inc(\"../_clearOutdatedFiles/clear\")({\n        job: job,\n        onDone: readFileContent\n      });\n    };\n    readFileContent = function(){\n      if (job.returnFileContent) {\n        return inc(\"../../readFileContent/read\")({\n          job: job,\n          onLoaded: finish,\n          onError: p.onError\n        });\n      } else {\n        return finish();\n      }\n    };\n    finish = function(){\n      return p.onLoaded();\n    };\n    return transferFile();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/android/transferFile/transfer.ls","text":"(function(){\n  return function(p){\n    var job, url, cordovaDir, filePath, fileName, parentFolder, localParentFolder, timeout, transfer, onTransferred, onTransferError, validateFileSize, onError;\n    job = p.job;\n    url = job.url;\n    cordovaDir = (typeof cordova != 'undefined' && cordova !== null ? cordova.file.externalDataDirectory : void 8) || (typeof cordova != 'undefined' && cordova !== null ? cordova.file.dataDirectory : void 8) || \"\";\n    cordovaDir = _.replace(cordovaDir, \"file://\", \"\");\n    filePath = job.filePath;\n    fileName = _.last(filePath.split(\"/\"));\n    parentFolder = filePath.substr(0, filePath.length - fileName.length - 1);\n    localParentFolder = _.replace(cordovaDir, \"file://\", \"\") + \"/\" + parentFolder;\n    timeout = undefined;\n    transfer = function(){\n      var antonServerOnly;\n      antonServerOnly = true;\n      okhttp.downloadFile(url, localParentFolder, fileName, onTransferred, onTransferError, antonServerOnly);\n      return timeout = setTimeout(function(){\n        return okhttp.abortRequest(url);\n      }, 30000);\n    };\n    onTransferred = function(result){\n      var responseHeaders, antonDebug;\n      clearTimeout(timeout);\n      responseHeaders = result.responseHeaders;\n      antonDebug = responseHeaders != null ? responseHeaders.antonDebug : void 8;\n      if (antonDebug) {\n        inc(\"../../_antonDebug/antonDebug\")(antonDebug, p.job);\n      }\n      job.responseEtag = responseHeaders != null ? responseHeaders[\"anton-etag\"] : void 8;\n      return validateFileSize(result);\n    };\n    onTransferError = function(error){\n      var responseHeaders, antonDebug;\n      clearTimeout(timeout);\n      responseHeaders = error.responseHeaders;\n      antonDebug = responseHeaders != null ? responseHeaders[\"anton-debug\"] : void 8;\n      if (antonDebug) {\n        inc(\"../../_antonDebug/antonDebug\")(antonDebug, p.job);\n      }\n      if (error.message === \"Canceled\") {\n        return onError(\"offline\");\n      } else if (!responseHeaders) {\n        return onError(\"offline\");\n      } else if (!(responseHeaders != null && responseHeaders[\"anton-server\"])) {\n        return onError(\"offline\");\n      } else {\n        return onError(\"not_found\");\n      }\n    };\n    validateFileSize = function(result){\n      return inc(\"validateFileSize/validate\")({\n        result: result,\n        etag: job.responseEtag,\n        onError: onError,\n        onOk: p.onLoaded\n      });\n    };\n    onError = function(error){\n      return p.onError(error);\n    };\n    return transfer();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/ios/transferFile/transfer.ls","text":"(function(){\n  return function(p){\n    var job, url, cordovaDir, localFilePath, fileTransfer, timeout, startedAt, transfer, onTransferred, onTransferError, validateFileSize, onError;\n    job = p.job;\n    url = job.url;\n    cordovaDir = (typeof cordova != 'undefined' && cordova !== null ? cordova.file.externalDataDirectory : void 8) || (typeof cordova != 'undefined' && cordova !== null ? cordova.file.dataDirectory : void 8) || \"\";\n    localFilePath = cordovaDir + job.filePath;\n    fileTransfer = new FileTransfer();\n    timeout = undefined;\n    startedAt = new Date();\n    transfer = function(){\n      fileTransfer.download(url, localFilePath, onTransferred, onTransferError, undefined, {\n        antonServerOnly: true\n      });\n      return timeout = setTimeout(function(){\n        return fileTransfer.abort();\n      }, 30000);\n    };\n    onTransferred = function(fileEntry){\n      var responseHeaders, antonDebug;\n      clearTimeout(timeout);\n      responseHeaders = fileEntry.responseHeaders;\n      antonDebug = responseHeaders != null ? responseHeaders.antonDebug : void 8;\n      if (antonDebug) {\n        inc(\"../../_antonDebug/antonDebug\")(antonDebug, p.job);\n      }\n      job.responseEtag = responseHeaders[\"anton-etag\"];\n      return validateFileSize(fileEntry);\n    };\n    onTransferError = function(error){\n      var responseHeaders, antonDebug, ref$;\n      clearTimeout(timeout);\n      responseHeaders = error.responseHeaders;\n      antonDebug = responseHeaders != null ? responseHeaders[\"anton-debug\"] : void 8;\n      if (antonDebug) {\n        inc(\"../../_antonDebug/antonDebug\")(antonDebug, p.job);\n      }\n      if ((ref$ = error.code) === 3 || ref$ === 4) {\n        return onError(\"offline\");\n      } else if (!(responseHeaders != null && responseHeaders[\"anton-server\"]) === \"yes\") {\n        return onError(\"offline\");\n      } else {\n        return onError(\"not_found\");\n      }\n    };\n    validateFileSize = function(fileEntry){\n      return inc(\"validateFileSize/validate\")({\n        fileEntry: fileEntry,\n        etag: fileEntry.name,\n        onOk: p.onLoaded,\n        onError: onError\n      });\n    };\n    onError = function(error){\n      return p.onError(error);\n    };\n    return transfer();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/_shared/readFileContent/read.ls","text":"(function(){\n  return function(p){\n    var job, fileType, filePath;\n    job = p.job;\n    fileType = inc(\"calcFileType/calc\")(job.fileId);\n    if (!fileType) {\n      p.onError(\"unknown readFileContent filetype \" + job.fileId);\n      return;\n    }\n    if (p.blob) {\n      return inc(\"readBlob/read\")({\n        blob: p.blob,\n        job: p.job,\n        fileType: fileType,\n        onError: p.onError,\n        onLoaded: function(fileContent){\n          job.fileContent = fileContent;\n          return p.onLoaded();\n        }\n      });\n    } else {\n      filePath = job.filePath + \"_\" + job.responseEtag;\n      return inc(\"readFile/read\")({\n        filePath: filePath,\n        fileType: fileType,\n        onError: p.onError,\n        onLoaded: function(fileContent){\n          job.fileContent = fileContent;\n          return p.onLoaded();\n        }\n      });\n    }\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/mobileEtagAny/start.ls","text":"(function(){\n  return function(job, onLoaded, onError){\n    var loadLocalFile, download;\n    loadLocalFile = function(){\n      return inc(\"../_shared/loadLocalFile/load\")({\n        job: job,\n        onLoaded: onLoaded,\n        onError: download\n      });\n    };\n    download = function(){\n      return inc(\"../_shared/download/download\")({\n        job: job,\n        onLoaded: onLoaded,\n        onError: onError\n      });\n    };\n    return loadLocalFile();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/mobileEtagExact/start.ls","text":"(function(){\n  return function(job, onLoaded, onError){\n    var downloadError, loadExactLocalFile, download, onDownloadError, loadFallbackLocalFile, onLoadedFallback, onErrorFallback;\n    downloadError = undefined;\n    loadExactLocalFile = function(){\n      return inc(\"../_shared/loadLocalFile/load\")({\n        job: job,\n        onLoaded: onLoaded,\n        onError: download\n      });\n    };\n    download = function(){\n      return inc(\"../_shared/download/download\")({\n        job: job,\n        onLoaded: onLoaded,\n        onError: onDownloadError\n      });\n    };\n    onDownloadError = function(error){\n      if (error === \"offline\") {\n        downloadError = \"offline\";\n        return loadFallbackLocalFile();\n      } else {\n        return onError(error);\n      }\n    };\n    loadFallbackLocalFile = function(){\n      job.etag = \"any\";\n      return inc(\"../_shared/loadLocalFile/load\")({\n        job: job,\n        onLoaded: onLoadedFallback,\n        onError: onErrorFallback\n      });\n    };\n    onLoadedFallback = function(fileContent){\n      job.isLocalFileWithFallbackEtag = true;\n      return onLoaded();\n    };\n    onErrorFallback = function(error){\n      return onError(downloadError);\n    };\n    return loadExactLocalFile();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/mobileEtagLatest/start.ls","text":"(function(){\n  return function(job, onLoaded, onError){\n    var downloadError, download, onDownloadError, loadLocalFile, onLoadLocalFileError;\n    downloadError = undefined;\n    download = function(){\n      return inc(\"../_shared/download/download\")({\n        job: job,\n        onLoaded: onLoaded,\n        onError: onDownloadError\n      });\n    };\n    onDownloadError = function(error){\n      if (error === \"offline\") {\n        downloadError = \"offline\";\n        return loadLocalFile();\n      } else {\n        return onError(error);\n      }\n    };\n    loadLocalFile = function(){\n      return inc(\"../_shared/loadLocalFile/load\")({\n        job: job,\n        onLoaded: onLoaded,\n        onError: onLoadLocalFileError\n      });\n    };\n    onLoadLocalFileError = function(error){\n      return onError(downloadError);\n    };\n    return download();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/web/start.ls","text":"(function(){\n  return function(job, onLoaded, onError){\n    var download;\n    download = function(){\n      return inc(\"../_shared/download/download\")({\n        job: job,\n        onLoaded: onLoaded,\n        onError: onError\n      });\n    };\n    return download();\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadContentFile/startJob/_shared/loadLocalFile/findFile/find.ls","text":"(function(){\n  return function(job, onDone){\n    var findWithEtag, findWithoutEtag;\n    findWithEtag = function(){\n      var filePath;\n      filePath = job.filePath + \"_\" + job.etag;\n      return inc(\"/lib/util/fileDirectoryList/fileExists/exists\")({\n        filePath: filePath,\n        onDone: function(exists){\n          if (exists) {\n            return onDone(filePath);\n          } else {\n            return onDone();\n          }\n        }\n      });\n    };\n    findWithoutEtag = function(){\n      var filePath;\n      filePath = job.filePath;\n      return inc(\"/lib/util/fileDirectoryList/search/search\")({\n        startsWith: filePath,\n        onDone: function(filePaths){\n          var fp;\n          fp = filePaths[0];\n          if (fp) {\n            return onDone(fp);\n          } else {\n            return onDone();\n          }\n        }\n      });\n    };\n    if (!job.etag || job.etag === \"any\" || job.etag === \"latest\") {\n      return findWithoutEtag();\n    } else {\n      return findWithEtag();\n    }\n  };\n})();","updated":"2022-10-12T10:59:23.588765"},{"path":"lib/util/downloadManager/preparePlan/prepareNextPlan/preparePlan/prepare.ls","text":"(function(){\n  return function(plan, manager, onDone){\n    var loadPlan, onLoadPlanError, calcPendingLevels, onCalcPendingLevelsDone;\n    loadPlan = function(){\n      plan.status = \"preparing\";\n      manager.updateDom(plan.id);\n      return inc(\"1_loadPlan/load\")({\n        plan: plan,\n        onLoaded: calcPendingLevels,\n        onError: onLoadPlanError\n      });\n    };\n    onLoadPlanError = function(error){\n      if (error.error === \"offline\") {\n        plan.status = \"offline\";\n        manager.updateDom(plan.id);\n        return onDone();\n      } else {\n        inc(\"autoDisablePlan/disable\")(plan, manager, error);\n        return onDone();\n      }\n    };\n    calcPendingLevels = function(){\n      return inc(\"2_calcPendingLevels/calc\")({\n        plan: plan,\n        onDone: onCalcPendingLevelsDone\n      });\n    };\n    onCalcPendingLevelsDone = function(pendingLevels, levels){\n      if (pendingLevels.length === 0) {\n        plan.pendingLevels = [];\n        plan.pendingLevelsStartTotal = 0;\n        plan.pendingLevelsCompletedTotal = 0;\n        plan.totalLevels = levels.length;\n        manager.completePlan(plan.id);\n      } else {\n        plan.pendingLevels = pendingLevels;\n        plan.pendingLevelsStartTotal = pendingLevels.length;\n        plan.pendingLevelsCompletedTotal = 0;\n        plan.totalLevels = levels.length;\n        plan.status = \"loading\";\n        manager.updateDom(plan.id);\n        if (manager.isLoadingLevels !== true) {\n          manager.loadPendingLevels();\n        }\n      }\n      return typeof onDone == 'function' ? onDone(plan) : void 8;\n    };\n    return loadPlan();\n  };\n})();","updated":"2023-04-19T15:22:48.756583"},{"path":"lib/util/downloadManager/addConnectionListener/add.ls","text":"(function(){\n  return function(manager){\n    var addListener, removeListener, onConnectionChange;\n    if (!engine.isMobileApp) {\n      return;\n    }\n    addListener = function(){\n      return engine.networkConnection.addConnectionChangeListener(onConnectionChange);\n    };\n    removeListener = function(){\n      return engine.networkConnection.removeConnectionChangeListener(onConnectionChange);\n    };\n    onConnectionChange = function(isOnline){\n      if (manager !== inc(\"../manager\")()) {\n        return removeListener();\n      } else if (!isOnline) {} else {\n        return manager.preparePlans();\n      }\n    };\n    return addListener();\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/preparePlan/prepareNextPlan/preparePlan/2_calcPendingLevels/calcLevelOk/calc.ls","text":"(function(){\n  return function(level, onDone){\n    var project, fileId, fileHash, filePath;\n    if (!engine.isMobileApp) {\n      onDone(false, level);\n      return;\n    }\n    project = level.path.split(\"/\")[2];\n    fileId = \"level/\" + level.path.substr(4);\n    fileHash = inc(\"/lib/util/md5/md5\")(fileId).substr(0, 10);\n    filePath = \"content/\" + project + \"/levels/\" + fileHash + \"_\" + level.etag + \".ok\";\n    return inc(\"/lib/util/fileDirectoryList/fileExists/exists\")({\n      filePath: filePath,\n      onDone: function(exists){\n        return onDone(exists, level);\n      }\n    });\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/loadPendingLevels/loadNextPendingLevel/loadLevelAndMedia/downloadMediaFiles/download.ls","text":"(function(){\n  return function(p, onDone){\n    var mediaFiles, totalDone, allFiles, loadFiles, onLoaded;\n    mediaFiles = p.levelFull.mediaFiles || {};\n    totalDone = 0;\n    allFiles = _.concat(mediaFiles.images || [], mediaFiles.svgs || [], _.filter(mediaFiles.lsgs || [], function(file){\n      return _.endsWith(file.fileId, \".lsr\") !== true;\n    }), _.filter(mediaFiles.sounds || [], function(file){\n      return file.isMultiSound !== true;\n    }));\n    loadFiles = function(){\n      var i$, ref$, len$, file, results$ = [];\n      for (i$ = 0, len$ = (ref$ = allFiles).length; i$ < len$; ++i$) {\n        file = ref$[i$];\n        results$.push(inc(\"loadFile/load\")({\n          p: p,\n          file: file,\n          onDone: onLoaded\n        }));\n      }\n      return results$;\n    };\n    onLoaded = function(){\n      totalDone++;\n      if (totalDone === allFiles.length) {\n        return onDone();\n      }\n    };\n    if (allFiles.length === 0) {\n      return onDone();\n    } else {\n      return loadFiles();\n    }\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/loadPendingLevels/loadNextPendingLevel/loadLevelAndMedia/load.ls","text":"(function(){\n  return function(p){\n    var downloadLevelFile, onLevelDone, downloadMediaFiles, onMediaFilesDone, saveLevelOkFile, finish, onError;\n    p.levelProject = p.level.path.split(\"/\")[2];\n    downloadLevelFile = function(){\n      return inc(\"downloadLevelFile/download\")(p, onLevelDone);\n    };\n    onLevelDone = function(){\n      var ref$;\n      if (((ref$ = p.errors) != null ? ref$.length : void 8) > 0) {\n        return onError();\n      } else {\n        return downloadMediaFiles();\n      }\n    };\n    downloadMediaFiles = function(){\n      return inc(\"downloadMediaFiles/download\")(p, onMediaFilesDone);\n    };\n    onMediaFilesDone = function(){\n      var ref$;\n      if (((ref$ = p.errors) != null ? ref$.length : void 8) > 0) {\n        return onError();\n      } else {\n        return saveLevelOkFile();\n      }\n    };\n    saveLevelOkFile = function(){\n      if (engine.isMobileApp) {\n        return inc(\"saveLevelOkFile/save\")(p, finish);\n      } else {\n        return finish();\n      }\n    };\n    finish = function(){\n      return p.onLoaded();\n    };\n    onError = function(){\n      return p.onError(p.errors);\n    };\n    return downloadLevelFile();\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/loadPendingLevels/loadNextPendingLevel/loadLevelAndMedia/saveLevelOkFile/save.ls","text":"(function(){\n  return function(p, onDone){\n    var project, fileId, fileHash, filePath, saveFile, finish;\n    project = p.level.path.split(\"/\")[2];\n    fileId = \"level/\" + p.level.path.substr(4);\n    fileHash = inc(\"/lib/util/md5/md5\")(fileId).substr(0, 10);\n    filePath = \"content/\" + project + \"/levels/\" + fileHash + \"_\" + p.levelFull.etag + \".ok\";\n    saveFile = function(){\n      return app.fileSystem.writeFile(filePath, \"ok\", 0, finish);\n    };\n    finish = function(error){\n      return inc(\"/lib/util/fileDirectoryList/fileAdd/add\")({\n        filePath: filePath,\n        onDone: onDone\n      });\n    };\n    return saveFile();\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/preparePlan/prepareNextPlan/prepare.ls","text":"(function(){\n  return function(manager){\n    var plan, findNextWaitingPlan, preparePlan, onPreparedPlan, finish;\n    plan = undefined;\n    manager.isPreparingPlans = true;\n    findNextWaitingPlan = function(){\n      var nextPlan;\n      nextPlan = _.find(manager.planInfos, {\n        status: \"prepareWaiting\",\n        priority: true\n      }) || _.find(manager.planInfos, {\n        status: \"prepareWaiting\"\n      });\n      if (nextPlan) {\n        return preparePlan(nextPlan);\n      } else {\n        return finish();\n      }\n    };\n    preparePlan = function(p){\n      plan = p;\n      manager.currentlyPreparingPlansTotal++;\n      return inc(\"preparePlan/prepare\")(plan, manager, onPreparedPlan);\n    };\n    onPreparedPlan = function(){\n      manager.currentlyPreparingPlansTotal--;\n      return findNextWaitingPlan();\n    };\n    finish = function(){\n      return manager.isPreparingPlans = false;\n    };\n    return findNextWaitingPlan();\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/preparePlan/prepareNextPlan/preparePlan/1_loadPlan/load.ls","text":"(function(){\n  return function(p){\n    var loadPlan, onLoaded, onError;\n    loadPlan = function(){\n      if (_.includes(p.plan.id, \"GROUP\")) {\n        return inc(\"loadGroupPlan/load\")(p, onLoaded, onError);\n      } else {\n        return inc(\"loadContentPlan/load\")(p, onLoaded, onError);\n      }\n    };\n    onLoaded = function(plan){\n      p.plan.plan = plan;\n      return p.onLoaded();\n    };\n    onError = function(error){\n      return p.onError(error);\n    };\n    return loadPlan();\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/preparePlan/prepareNextPlan/preparePlan/1_loadPlan/loadContentPlan/load.ls","text":"(function(){\n  return function(p, onLoaded, onError){\n    return inc(\"/lib/util/loadPlan/load\")({\n      path: \"/../\" + p.plan.id + \"/plan\",\n      onLoaded: onLoaded,\n      onError: onError\n    });\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/preparePlan/prepareNextPlan/preparePlan/2_calcPendingLevels/calc.ls","text":"(function(){\n  return function(p){\n    var levels, pendingLevels, totalDone, index, calcAllLevels, calcOkForAllLevels, onLevelOkDone, finish;\n    levels = [];\n    pendingLevels = [];\n    totalDone = 0;\n    index = -1;\n    calcAllLevels = function(){\n      var i$, ref$, len$, topic, j$, ref1$, len1$, block, k$, ref2$, len2$, level;\n      for (i$ = 0, len$ = (ref$ = p.plan.plan.topics).length; i$ < len$; ++i$) {\n        topic = ref$[i$];\n        for (j$ = 0, len1$ = (ref1$ = topic.blocks).length; j$ < len1$; ++j$) {\n          block = ref1$[j$];\n          for (k$ = 0, len2$ = (ref2$ = block.levels).length; k$ < len2$; ++k$) {\n            level = ref2$[k$];\n            levels.push(level);\n          }\n        }\n      }\n      if (levels.length > 0) {\n        return calcOkForAllLevels();\n      } else {\n        return finish();\n      }\n    };\n    calcOkForAllLevels = function(){\n      var i$, ref$, len$, level, results$ = [];\n      for (i$ = 0, len$ = (ref$ = levels).length; i$ < len$; ++i$) {\n        level = ref$[i$];\n        results$.push(inc(\"calcLevelOk/calc\")(level, onLevelOkDone));\n      }\n      return results$;\n    };\n    onLevelOkDone = function(isOk, level){\n      totalDone++;\n      if (isOk !== true) {\n        pendingLevels.push(level);\n      }\n      if (totalDone === levels.length) {\n        return finish();\n      }\n    };\n    finish = function(){\n      return p.onDone(pendingLevels, levels);\n    };\n    return calcAllLevels();\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/loadPendingLevels/loadNextPendingLevel/loadLevelAndMedia/downloadLevelFile/download.ls","text":"(function(){\n  return function(p, onDone){\n    var project, fileId, fileFolder, download, onLoaded, onError;\n    project = p.level.path.split(\"/\")[2];\n    fileId = \"level/\" + p.level.path.substr(4);\n    fileFolder = \"content/\" + project + \"/levels\";\n    download = function(){\n      return inc(\"/lib/util/downloadContentFile/download\")({\n        fileId: fileId,\n        fileFolder: fileFolder,\n        etag: p.level.etag,\n        returnFileContent: true,\n        onLoaded: onLoaded,\n        onError: onError\n      });\n    };\n    onLoaded = function(level, details){\n      if (details.isLocalFileWithFallbackEtag) {\n        return onError({\n          error: \"offline\"\n        });\n      } else {\n        p.levelFull = level;\n        return onDone();\n      }\n    };\n    onError = function(error){\n      p.errors == null && (p.errors = []);\n      p.errors.push(error);\n      return onDone();\n    };\n    return download();\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/loadPendingLevels/loadNextPendingLevel/loadLevelAndMedia/downloadMediaFiles/loadFile/load.ls","text":"(function(){\n  return function(o){\n    var p, file, etag, fileId, project, fileFolder, download, onLoaded, onError;\n    p = o.p;\n    file = o.file;\n    etag = file.etag;\n    fileId = file.fileId;\n    project = p.level.path.split(\"/\")[2];\n    fileFolder = \"content/\" + project;\n    fileFolder += _.startsWith(fileId, \"lsg/\")\n      ? \"/_lsgs\"\n      : _.startsWith(fileId, \"svg/\")\n        ? \"/_svgs\"\n        : _.startsWith(fileId, \"image/\")\n          ? \"/_images\"\n          : _.startsWith(fileId, \"sound/\") ? \"/_sounds\" : void 8;\n    download = function(){\n      return inc(\"/lib/util/downloadContentFile/download\")({\n        fileId: fileId,\n        fileFolder: fileFolder,\n        etag: etag,\n        returnFileContent: false,\n        onLoaded: onLoaded,\n        onError: onError\n      });\n    };\n    onLoaded = function(arg$, details){\n      if (details.isLocalFileWithFallbackEtag) {\n        return onError({\n          error: \"offline\"\n        });\n      } else {\n        return o.onDone();\n      }\n    };\n    onError = function(error){\n      p.errors == null && (p.errors = []);\n      p.errors.push(error);\n      return o.onDone();\n    };\n    return download();\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"lib/util/downloadManager/preparePlan/prepareNextPlan/preparePlan/1_loadPlan/loadGroupPlan/load.ls","text":"(function(){\n  return function(p, onLoaded, onError){\n    var groupCode, checkObsoleteGroup, loadGroupContent, createPlan, finish;\n    groupCode = p.plan.id;\n    checkObsoleteGroup = function(){\n      return inc(\"checkObsoleteGroup/check\")(groupCode, loadGroupContent, onError);\n    };\n    loadGroupContent = function(){\n      return inc(\"/lib/util/loadGroupContent/load\")({\n        groupCode: groupCode,\n        onLoaded: createPlan\n      });\n    };\n    createPlan = function(groupContent){\n      var gd, blockRows, blocks, plan;\n      gd = app.currentPage.groupDescription;\n      if (_.find(groupContent.rows, {\n        type: \"learnList\"\n      }) && _.includes(app.currentPagePath, \"group/content/\") && groupCode === (gd != null ? gd.groupCode : void 8)) {\n        debug(\"Download manager info: Pinned learnLists found in group '\" + gd.name + \"', but offline download for pinned learnLists doesn't work yet.\");\n      }\n      blockRows = _.filter(groupContent.rows, {\n        type: \"block\"\n      });\n      blocks = _.map(blockRows, \"block\");\n      plan = {\n        versionDate: groupContent.lastEventCreated,\n        topics: [{\n          title: \"dummy topic\",\n          blocks: _.ensureArray(blocks != null\n            ? blocks\n            : [])\n        }]\n      };\n      inc(\"/lib/util/addJSONEtag/add\")(plan);\n      return finish(plan);\n    };\n    finish = function(plan){\n      return onLoaded(plan);\n    };\n    return checkObsoleteGroup();\n  };\n})();","updated":"2022-12-07T10:26:27.800534"},{"path":"data/content/calcBlockPageUrl/calc.ls","text":"(function(){\n  return function(blockPath, pd){\n    var project, s, pageUrl;\n    pd == null && (pd = inc(\"../calcPlanDescription/calc\")(blockPath));\n    if (!pd) {\n      return \"\";\n    }\n    project = blockPath.split(\"/\")[2];\n    s = blockPath;\n    s = _.replace(s, \"block.ls\", \"block\");\n    s = _.replace(s, \"/../\" + project, \"\");\n    s = s.substr(0, s.length - 6);\n    s = _.replace(s, \"/topic\", T(\"topicURLReplacement\"));\n    s = _.replace(s, \"/block\", T(\"blockURLReplacement\"));\n    s = inc(\"../_replacePreschoolRemotePlanPart/replace\")(s);\n    return pageUrl = pd.pageUrl + s;\n  };\n})();","updated":"2023-02-09T16:45:35.225441"},{"path":"lib/init/startFirstPage/deepLinkContent/block/calcBlockPath/calc.ls","text":"(function(){\n  return function(pageUrl, planDescription){\n    var p;\n    p = pageUrl.split(planDescription.pageUrl)[1];\n    p = _.replace(p, T(\"topicURLReplacement\"), \"/topic\");\n    p = _.replace(p, T(\"blockURLReplacement\"), \"/block\");\n    p = p + \"/block\";\n    p = \"/../\" + planDescription.project + p;\n    return p;\n  };\n})();","updated":"2023-02-09T16:45:35.225441"},{"path":"pages/start/startUser/07_extraPages/connectToSesam/page/submit/submit.ls","text":"(function(){\n  return function(page){\n    return function(){\n      var onCompleted, onError;\n      onCompleted = function(result){\n        if (result.status !== \"ok\") {\n          onError(result.status);\n          return;\n        }\n        return inc(\"/lib/gui/infoPopup/popup\")({\n          label: T(\"successMessage\"),\n          onClose: page.finish\n        });\n      };\n      onError = function(error){\n        var errorMessage;\n        errorMessage = error === \"error_blocked\"\n          ? T(\"errorBlocked\")\n          : error === \"error_captcha_failed\"\n            ? T(\"errorCaptchaFailed\")\n            : error === \"error_invalid_token\"\n              ? T(\"errorInvalidToken\")\n              : error === \"error_offline\"\n                ? T(\"offlineError\")\n                : error === \"error_already_connected\"\n                  ? T(\"errorAlreadyConnected\")\n                  : error === \"error_not_eligible\"\n                    ? inc(\"/data/user/isTeacher/get\")()\n                      ? inc(\"calcTeacherErrorMessage/calc\")()\n                      : T(\"errorNotEligiblePupil\")\n                    : T(\"errorMessage\");\n        page.errorDiv.show().html(errorMessage);\n        return page.spinner.stop();\n      };\n      page.spinner = inc(\"/lib/gui/spinnerDivOverlay/overlay\")(page.buttonConnect);\n      return inc(\"/lib/util/pllsCall/call\")({\n        path: path(\"/../server-apis-db2/apis/sso/sesam/connectUser/query\"),\n        params: {\n          data: app.sesamData\n        },\n        onCompleted: onCompleted,\n        onError: onError,\n        onOffline: function(){\n          return onError(\"error_offline\");\n        }\n      });\n    };\n  };\n})();","updated":"2023-02-09T16:45:35.225441"},{"path":"pages/start/startUser/07_extraPages/connectToSesam/page/errorDiv/div.ls","text":"(function(){\n  return function(page){\n    return Div({\n      color: Color.red[500],\n      margin: \"0.5em\"\n    }).hide();\n  };\n})();","updated":"2023-02-09T16:45:35.225441"},{"path":"pages/start/startUser/07_extraPages/connectToSesam/page/linkSkip/link.ls","text":"(function(){\n  return function(page){\n    return Div({\n      margin: \"1em 0\",\n      color: Color.grey[450]\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"skip\"),\n      direction: \"right\"\n    }).css({\n      padding: \"0.5em\"\n    }).tap(page.finish));\n  };\n})();","updated":"2023-02-09T16:45:35.225441"},{"path":"pages/start/startUser/07_extraPages/connectToSesam/page/submit/calcTeacherErrorMessage/calc.ls","text":"(function(){\n  return function(){\n    var schoolDescriptions, schoolsWithDirectory;\n    schoolDescriptions = inc(\"/data/school/calcSchoolDescriptions/calc\")();\n    if (schoolDescriptions.length === 0) {\n      return T(\"errorNotEligibleTeacherNoSchool\");\n    }\n    schoolsWithDirectory = _.filter(schoolDescriptions, \"hasDir\");\n    if (schoolsWithDirectory.length === 0) {\n      return T(\"errorNotEligibleTeacherNoDirSchool\");\n    }\n    if (!_.some(schoolsWithDirectory, function(sd){\n      return sd.dirRole === \"teacher\";\n    })) {\n      return T(\"errorNotEligibleTeacherNoDirTeacher\");\n    }\n    return T(\"errorNotEligibleTeacherNoSchool\");\n  };\n})();","updated":"2023-02-09T16:45:35.225441"},{"path":"pages/level/afterFinish/pages/adventCalendarPromo/_t.ls","text":"(function(){\n  return {\n    adventCalendar: {\n      de: \"<b>ANTON-Adventskalender</b>\",\n      en: \"<b>ANTON Advent Calendar</b>\",\n      fr: \"<b>Le calendrier de l'Avent ANTON</b>\",\n      es: \"<b>Calendario de adviento ANTON</b>\",\n      pt: \"<b>Calendário do Advento ANTON</b>\"\n    },\n    adventCalendarText1: {\n      de: \"Du kannst bis Weihnachten jeden Tag ein Türchen des Adventskalenders öffnen und tolle Geschenke bekommen, wenn du <b>drei&nbsp;Übungen</b> erledigt hast.<br><br>Dir ((fehlt nur noch <b>eine Übung</b> | fehlen nur noch <b>$1 Übungen</b>))!\",\n      en_gb: \"In the run up to Christmas, you can open one door of the advent calendar every day to receive amazing gifts. You have to complete at least <b>three&nbsp;exercises</b> to receive your gift.<br><br>You have <b>((one more exercise | $1 more exercises))</b> to complete!\",\n      en: \"Until Christmas you can open one door of the advent calendar every day and get amazing gifts, as long as you have completed at least <b>three&nbsp;exercises</b>.<br><br>You have <b>((one more exercise | $1 more exercises))</b> to complete!\",\n      fr: \"Jusqu'à Noël, tu peux ouvrir une porte du calendrier chaque jour et gagner des cadeaux, si tu as fait au moins <b>trois&nbsp;exercices</b>.<br><br>Tu dois encore faire <b>((un exercice | $1 autres exercices))</b>&nbsp;!\",\n      es: \"¡Todos los días puedes abrir una puerta y recibir increíbles regalos hasta Nochebuena! Siempre y cuando resuelvas, por lo menos, <b>tres&nbsp;ejercicios</b>.<br><br>¡Resuelve <b>((un ejercicio más | $1 ejercicios más))!</b> \",\n      pt: \"Todos os dias até o Natal, você pode abrir uma janelinha do Calendário do Advento e ganhar ótimos presentes. Para isso, você deve resolver pelo menos <b>três&nbsp;exercícios</b>.<br><br>Resolva <b>((mais um exercício | mais $1 exercícios))!</b>\"\n    },\n    adventCalendarText2: {\n      de: \"Du hast heute schon deine <b>drei Übungen</b> erledigt und kannst jetzt ein Türchen des Adventskalenders öffnen!\",\n      en_gb: \"You have completed <b>three exercises</b> today so you may now open a door on the advent calendar!\",\n      en: \"You have completed at least <b>three exercises</b> today and may now open a door on the advent calendar!\",\n      fr: \"Tu as déjà fait tes <b>trois exercices</b> aujourd'hui. Tu peux ouvrir une porte du calendrier de l'Avent&nbsp;!\",\n      es: \"¡Resolviste <b>tres ejercicios</b> el día de hoy y puedes abrir una de las puertas del calendario de adviento!\",\n      pt: \"Você já resolveu seus <b>três exercícios</b> de hoje e já pode abrir uma das janelinhas do calendário do Advento!\"\n    },\n    notNow: {\n      de: \"Jetzt nicht\",\n      en: \"Not now\",\n      fr: \"Plus tard\",\n      es: \"Más tarde\",\n      pt: \"Agora não\"\n    },\n    openAdventCalendar: {\n      de: \"Zum Adventkalender\",\n      en: \"Show Advent Calendar\",\n      fr: \"Voir le calendrier\",\n      es: \"Ir al calendario\",\n      pt: \"Ir para o Calendário do Advento\"\n    }\n  };\n})();","updated":"2022-12-07T16:50:01.153733"},{"path":"lib/util/loadProject/load.ls","text":"(function(){\n  var pendingCallbacks;\n  pendingCallbacks = {};\n  return function(project, callback){\n    var id, projectName, load, onDone;\n    id = JSON.stringify(project);\n    projectName = _.isString(project)\n      ? project\n      : project.name;\n    load = function(){\n      return inc(\"../loadProjects/load\")({\n        projectDescriptions: [{\n          project: projectName,\n          branch: project.branch,\n          server: project.server\n        }],\n        logResults: false,\n        timeout: project.timeout || \"60,30\",\n        onDone: onDone,\n        onProjectMissingError: onDone\n      });\n    };\n    onDone = function(){\n      var callbacks, i$, len$, callback, results$ = [];\n      callbacks = pendingCallbacks[id];\n      pendingCallbacks[id] = undefined;\n      for (i$ = 0, len$ = callbacks.length; i$ < len$; ++i$) {\n        callback = callbacks[i$];\n        results$.push(callback());\n      }\n      return results$;\n    };\n    if (pendingCallbacks[id] == null) {\n      pendingCallbacks[id] = [callback];\n      return load();\n    } else {\n      return pendingCallbacks[id].push(callback);\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"pages/games/00_shared/pixiGame/pixi/sceneManager/create.ls","text":"(function(){\n  return function(stage){\n    var DEFAULT_TRANSITION_DURATION, sceneManager;\n    DEFAULT_TRANSITION_DURATION = 0.3;\n    sceneManager = {};\n    sceneManager.Transitions = inc(\"transitions/transitions\")();\n    sceneManager.paused = false;\n    sceneManager.stack = [];\n    sceneManager.currentScene = null;\n    sceneManager.stage = stage;\n    sceneManager.transition = undefined;\n    sceneManager.cleanScene = function(scene){\n      sceneManager.stage.removeChild(scene);\n      if (scene.cleanup() !== \"baseSceneCleanupDone\") {\n        debug(\"did you overwrite scene.cleanup()? use onCleanUp() instead!\");\n      }\n    };\n    sceneManager.cleanup = function(){\n      sceneManager.cleanStack();\n    };\n    sceneManager.cleanStack = function(){\n      var i$, ref$, len$, scene;\n      for (i$ = 0, len$ = (ref$ = sceneManager.stack).length; i$ < len$; ++i$) {\n        scene = ref$[i$];\n        sceneManager.cleanScene(scene);\n      }\n      sceneManager.stack = [];\n      sceneManager.currentScene = null;\n    };\n    sceneManager.showScene = function(scene){\n      sceneManager.stage.addChild(scene);\n    };\n    sceneManager.setScene = function(scene){\n      sceneManager.cleanStack();\n      sceneManager.currentScene = scene;\n      sceneManager.stack = [sceneManager.currentScene];\n      sceneManager.showScene(scene);\n      sceneManager.currentScene.isRunning = true;\n      sceneManager.currentScene.start();\n    };\n    sceneManager.pushScene = function(scene, transition, duration){\n      if (deepEq$(transition, undefined, '===')) {\n        transition = sceneManager.Transitions.NONE;\n        duration = 0;\n      }\n      if (transition !== sceneManager.Transitions.NONE) {\n        if (deepEq$(duration, undefined, '===')) {\n          duration = DEFAULT_TRANSITION_DURATION;\n        }\n      }\n      scene.paused = true;\n      sceneManager.currentScene.paused = true;\n      sceneManager.currentScene.isRunning = false;\n      sceneManager.showScene(scene);\n      sceneManager.transition = transition({\n        newScene: scene,\n        oldScene: sceneManager.currentScene,\n        duration: duration,\n        transitionCompleted: function(){\n          sceneManager.transition = undefined;\n          sceneManager.stage.removeChild(sceneManager.currentScene);\n          sceneManager.currentScene = scene;\n          sceneManager.stack.push(scene);\n          sceneManager.currentScene.paused = false;\n          sceneManager.currentScene.isRunning = true;\n          return sceneManager.currentScene.start();\n        }\n      });\n    };\n    sceneManager.replaceScene = function(scene, transition, duration){\n      if (deepEq$(transition, undefined, '===')) {\n        transition = sceneManager.Transitions.NONE;\n        duration = 0;\n      }\n      if (transition !== sceneManager.Transitions.NONE) {\n        if (deepEq$(duration, undefined, '===')) {\n          duration = DEFAULT_TRANSITION_DURATION;\n        }\n      }\n      scene.paused = true;\n      sceneManager.currentScene.paused = true;\n      sceneManager.currentScene.isRunning = false;\n      sceneManager.showScene(scene);\n      sceneManager.transition = transition({\n        newScene: scene,\n        oldScene: sceneManager.currentScene,\n        duration: duration,\n        transitionCompleted: function(){\n          var ref$, ref1$;\n          sceneManager.transition = undefined;\n          if ((ref$ = PIXI.actionManager) != null) {\n            ref$.actions = [];\n          }\n          sceneManager.cleanScene(sceneManager.currentScene);\n          sceneManager.currentScene = scene;\n          (ref1$ = sceneManager.stack)[ref1$.length - 1] = scene;\n          sceneManager.currentScene.paused = false;\n          sceneManager.currentScene.isRunning = true;\n          return sceneManager.currentScene.start();\n        }\n      });\n    };\n    sceneManager.popScene = function(transition, duration){\n      var oldScene;\n      if (sceneManager.stack.length < 2) {\n        debug(\"can't pop scene, stacksize is only \" + sceneManager.stack.length);\n        return;\n      }\n      if (deepEq$(transition, undefined, '===')) {\n        transition = sceneManager.Transitions.NONE;\n        duration = 0;\n      }\n      if (transition !== sceneManager.Transitions.NONE) {\n        if (deepEq$(duration, undefined, '===')) {\n          duration = DEFAULT_TRANSITION_DURATION;\n        }\n      }\n      oldScene = sceneManager.stack.pop();\n      sceneManager.currentScene = sceneManager.stack[sceneManager.stack.length - 1];\n      sceneManager.stage.addChild(sceneManager.currentScene);\n      sceneManager.stage.swapChildren(oldScene, sceneManager.currentScene);\n      oldScene.paused = true;\n      oldScene.isRunning = false;\n      sceneManager.currentScene.paused = true;\n      sceneManager.transition = transition({\n        newScene: sceneManager.currentScene,\n        oldScene: oldScene,\n        duration: duration,\n        transitionCompleted: function(){\n          sceneManager.transition = undefined;\n          sceneManager.cleanScene(oldScene);\n          sceneManager.currentScene.paused = false;\n          sceneManager.currentScene.isRunning = true;\n          return sceneManager.currentScene.start();\n        }\n      });\n    };\n    sceneManager.pause = function(){\n      var ref$, ref1$;\n      sceneManager.paused = true;\n      if ((ref$ = sceneManager.currentScene) != null) {\n        ref$.isRunning = false;\n      }\n      if ((ref1$ = sceneManager.currentScene) != null) {\n        ref1$.onPause();\n      }\n    };\n    sceneManager.resume = function(){\n      var ref$, ref1$;\n      sceneManager.paused = false;\n      if ((ref$ = sceneManager.currentScene) != null) {\n        ref$.isRunning = true;\n      }\n      if ((ref1$ = sceneManager.currentScene) != null) {\n        ref1$.onResume();\n      }\n    };\n    sceneManager.update = function(delta){\n      var ref$, ref1$;\n      if (sceneManager.paused) {\n        return;\n      }\n      if (sceneManager.transition != null) {\n        sceneManager.transition.update(delta);\n        return;\n      }\n      if (!((ref$ = sceneManager.currentScene) != null && ref$.paused)) {\n        if ((ref1$ = sceneManager.currentScene) != null) {\n          ref1$.update(delta);\n        }\n      }\n    };\n    return sceneManager;\n  };\n})();\nfunction deepEq$(x, y, type){\n  var toString = {}.toString, hasOwnProperty = {}.hasOwnProperty,\n      has = function (obj, key) { return hasOwnProperty.call(obj, key); };\n  var first = true;\n  return eq(x, y, []);\n  function eq(a, b, stack) {\n    var className, length, size, result, alength, blength, r, key, ref, sizeB;\n    if (a == null || b == null) { return a === b; }\n    if (a.__placeholder__ || b.__placeholder__) { return true; }\n    if (a === b) { return a !== 0 || 1 / a == 1 / b; }\n    className = toString.call(a);\n    if (toString.call(b) != className) { return false; }\n    switch (className) {\n      case '[object String]': return a == String(b);\n      case '[object Number]':\n        return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);\n      case '[object Date]':\n      case '[object Boolean]':\n        return +a == +b;\n      case '[object RegExp]':\n        return a.source == b.source &&\n               a.global == b.global &&\n               a.multiline == b.multiline &&\n               a.ignoreCase == b.ignoreCase;\n    }\n    if (typeof a != 'object' || typeof b != 'object') { return false; }\n    length = stack.length;\n    while (length--) { if (stack[length] == a) { return true; } }\n    stack.push(a);\n    size = 0;\n    result = true;\n    if (className == '[object Array]') {\n      alength = a.length;\n      blength = b.length;\n      if (first) {\n        switch (type) {\n        case '===': result = alength === blength; break;\n        case '<==': result = alength <= blength; break;\n        case '<<=': result = alength < blength; break;\n        }\n        size = alength;\n        first = false;\n      } else {\n        result = alength === blength;\n        size = alength;\n      }\n      if (result) {\n        while (size--) {\n          if (!(result = size in a == size in b && eq(a[size], b[size], stack))){ break; }\n        }\n      }\n    } else {\n      if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) {\n        return false;\n      }\n      for (key in a) {\n        if (has(a, key)) {\n          size++;\n          if (!(result = has(b, key) && eq(a[key], b[key], stack))) { break; }\n        }\n      }\n      if (result) {\n        sizeB = 0;\n        for (key in b) {\n          if (has(b, key)) { ++sizeB; }\n        }\n        if (first) {\n          if (type === '<<=') {\n            result = size < sizeB;\n          } else if (type === '<==') {\n            result = size <= sizeB\n          } else {\n            result = size === sizeB;\n          }\n        } else {\n          first = false;\n          result = size === sizeB;\n        }\n      }\n    }\n    stack.pop();\n    return result;\n  }\n}","updated":"2022-12-09T20:38:47.442594"},{"path":"lib/util/calcNewsList/calc.ls","text":"(function(){\n  return function(){\n    var list, newsList, res$, i$, len$, newsId;\n    if (typeof log == 'undefined' || log === null) {\n      return [];\n    }\n    list = inc(\"/../app01-news-list/calcNewsList/calc\")();\n    res$ = [];\n    for (i$ = 0, len$ = list.length; i$ < len$; ++i$) {\n      newsId = list[i$];\n      res$.push(inc(\"calcNewsEntry/calc\")(newsId));\n    }\n    newsList = res$;\n    newsList.reverse();\n    if (!engine.isDebug) {\n      newsList = _.filter(newsList, function(el){\n        var d;\n        d = inc(\"/lib/util/formatDate2/format\")(el.date);\n        return d.timeAgo.ts > 0;\n      });\n    }\n    return newsList;\n  };\n})();","updated":"2022-12-13T13:59:46.645067"},{"path":"lib/util/calcAppType/calc.ls","text":"(function(){\n  var type;\n  type = undefined;\n  return function(){\n    if (type) {\n      return type;\n    }\n    return type = engine.isAndroidApp\n      ? \"app_Android\"\n      : engine.isiOsApp\n        ? \"app_iOs\"\n        : \"browser\" + \"_\" + inc(\"calcBrowserName/calc\")() + \"_\" + inc(\"calcPlatform/calc\")();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/offline/offlinePageWithLogging/offlinePage.ls","text":"(function(){\n  return function(o){\n    inc(\"log/log\")(o);\n    o.page.setBottomFreeze(0);\n    o.page.html(inc(\"text/text\")(o), inc(\"antonPlusHint/hint\")(o), inc(\"/lib/gui/maintenanceMessage/message\")(\"showOnOffline\"), inc(\"button/button\")(o), inc(\"debugText/debugText\")(o));\n    try {\n      return inc(\"logExtraPing/log\")(o);\n    } catch (e$) {}\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsers/logIfChanged/log.ls","text":"(function(){\n  return function(){\n    return inc(\"../../storedUsersUseAuthToken/logIfChanged/log\")();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsersUseAuthToken/_storeUsers/store.ls","text":"(function(){\n  return function(users){\n    Store(\"users\", users);\n    return inc(\"../logIfChanged/log\")();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/log/subscribeUser/subscribe.ls","text":"(function(){\n  return function(p){\n    var logId, authToken, ref$;\n    logId = p.logId;\n    if (Store(\"useAuthToken\")) {\n      authToken = (ref$ = inc(\"../../storedAuthToken/get/get\")(logId)) != null ? ref$ : \"missing\";\n    }\n    return Logger.subscribe({\n      logId: logId,\n      authToken: authToken,\n      deviceLogId: Store(\"deviceLogId\"),\n      filter: \"subscribeUser\",\n      removeOldEvents: true,\n      onInitDone: function(userLog){\n        return typeof p.onInitDone == 'function' ? p.onInitDone(userLog) : void 8;\n      },\n      onSubscribe: function(userLog){\n        var t;\n        t = userLog.authToken;\n        if (Store(\"useAuthToken\") && t !== authToken) {\n          inc(\"../../storedAuthToken/set/set\")(logId, t);\n        }\n        if (_.startsWith(t, \"T-invalid\")) {\n          userLog.unsubscribe();\n        }\n        return typeof p.onSubscribe == 'function' ? p.onSubscribe(userLog) : void 8;\n      }\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/addJSONEtag/add.ls","text":"(function(){\n  return function(o){\n    var jsonString, shortMd5, byteLength, digits;\n    delete o.etag;\n    jsonString = JSON.stringify(o);\n    shortMd5 = inc(\"../md5/md5\")(jsonString);\n    shortMd5 = shortMd5.substr(0, 4);\n    byteLength = new Blob([jsonString]).size;\n    byteLength = byteLength + 15;\n    digits = (\"\" + byteLength).length;\n    if ((\"\" + (byteLength + digits)).length > digits) {\n      digits++;\n    }\n    byteLength = byteLength + digits;\n    return o.etag = shortMd5 + \"-\" + byteLength;\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/apiCall/calcUrl/calc.ls","text":"(function(){\n  return function(o){\n    var serverName, urlServer, urlPath, url, urlParams;\n    serverName = o.serverName || \"apis2\";\n    urlServer = inc(\"/lib/util/serverUrl/serverUrl\")(serverName);\n    urlPath = o.path.split(\"/\").slice(4, -1).join(\"/\");\n    url = urlServer + \"/\" + urlPath;\n    if (o.requestMethod === \"GET\" && o.params) {\n      urlParams = inc(\"calcUrlParams/calc\")(o.params);\n      url += \"?\" + urlParams;\n    }\n    return url;\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/browser/setTitle/set.ls","text":"(function(){\n  return function(title){\n    var i$, ref$, len$, el, m1, m2;\n    title = inc(\"../_replaceTags/replace\")(title);\n    document.title = _.some([\"plan/\", \"block/\", \"level/\"], function(p){\n      return _.includes(app.currentPagePath, p);\n    })\n      ? title\n      : (title != null ? title.length : void 8) > 0 ? \"ANTON - \" + title : \"ANTON\";\n    for (i$ = 0, len$ = (ref$ = document.head.find(\"meta[property='og:title'], meta[property='twitter:title']\")).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      el.remove();\n    }\n    m1 = document.createElement(\"meta\").attr({\n      property: \"og:title\",\n      content: document.title\n    });\n    m2 = m1.clone().attr({\n      property: \"twitter:title\"\n    });\n    return document.head.prepend(m1, m2);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/startPage/animations/slideDown/start.ls","text":"(function(){\n  return function(oldPW, newPW, o, onFinish){\n    var animationDuration, init, play, finish;\n    animationDuration = 300;\n    init = function(){\n      newPW.css({\n        opacity: 1\n      });\n      return oldPW.css({\n        zIndex: 1\n      });\n    };\n    play = function(){\n      return oldPW.css({\n        transform: \"translateY(100%)\",\n        transition: animationDuration + \"ms ease-out\"\n      });\n    };\n    finish = function(){};\n    init();\n    return inc(\"/lib/util/waitFrames/wait\")(3, function(){\n      play();\n      return setTimeout(function(){\n        finish();\n        onFinish();\n        return oldPW.remove();\n      }, animationDuration);\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsersUseAuthToken/logIfChanged/log.ls","text":"(function(){\n  return function(){\n    var e1, ref$, e2, usersInvalid;\n    if (!window.deviceLog) {\n      return;\n    }\n    e1 = (ref$ = deviceLog.findLast(\"deviceSetUserLogIds\")) != null\n      ? ref$\n      : {};\n    e1 = _.omit(e1, [\"created\", \"src\", \"inserted\"]);\n    e2 = {\n      event: \"deviceSetUserLogIds\",\n      value: inc(\"/lib/util/storedUsers/logIds/logIds\")()\n    };\n    if (Store(\"useAuthToken\")) {\n      e2.useAuthToken = true;\n      usersInvalid = _.filter(inc(\"/lib/util/storedUsers/users/users\")(), function(u){\n        return _.startsWith(u.t, \"T-invalid\");\n      });\n      if (usersInvalid.length > 0) {\n        e2.invalidAuthTokens = _.map(usersInvalid, \"l\");\n      }\n    }\n    if (_.isEqual(e1, e2)) {\n      return;\n    }\n    return deviceLog.log(e2);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/offline/offlinePageWithLogging/antonPlusHint/hint.ls","text":"(function(){\n  return function(o){\n    var d, tap;\n    if (!o.showAntonPlusHint) {\n      return;\n    }\n    if (o.isTechnicalProblem) {\n      return;\n    }\n    d = inc(\"/data/user/calcUserDescription/calc\")();\n    if (d.hasPlusAccess) {\n      return;\n    }\n    if (d.isDPASchoolMember) {\n      return;\n    }\n    if (d.hasAntonPlusHidden) {\n      return;\n    }\n    inc(\"logPromo/log\")();\n    tap = function(){\n      inc(\"/lib/util/logPromo/log\")({\n        event: \"promoPlus_levelOfflineStart_click\"\n      });\n      return startPage({\n        path: path(\"/pages/static/antonPlus/1_products/page\"),\n        animation: \"slideUp\",\n        params: {\n          referrer: \"offlinePage\"\n        }\n      });\n    };\n    return Div().append(Div().css({\n      display: \"inline-block\",\n      fontSize: \"0.9em\",\n      padding: \"0.5em\",\n      margin: \"0.3em 1em 1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"learnOfflineWithPlus\")).tap(tap));\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/loadTopic/loadFromPlan/load.ls","text":"(function(){\n  return function(o){\n    var project, ref$, ref1$, planPath, loadPlan, findTopic;\n    project = ((ref$ = o.puid) != null ? ref$.split(\"/\")[0] : void 8) || ((ref1$ = o.path) != null ? ref1$.split(\"/\")[2] : void 8);\n    planPath = \"/../\" + project + \"/plan.ls\";\n    loadPlan = function(){\n      return inc(\"/lib/util/loadPlan/load\")({\n        path: planPath,\n        onError: o.onError,\n        onLoaded: findTopic\n      });\n    };\n    findTopic = function(plan){\n      var topic;\n      topic = inc(\"findTopic/find\")(o, plan);\n      if (topic) {\n        return o.onLoaded(topic);\n      } else {\n        return o.onError(\"not topic found\");\n      }\n    };\n    return loadPlan();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/loadTopic/loadIdePreview/load.ls","text":"(function(){\n  return function(p){\n    var project, fileId, fileFolder;\n    project = p.path.split(\"/\")[2];\n    fileId = \"topic/\" + p.path.substr(4);\n    fileFolder = \"content/\" + project + \"/topics\";\n    return inc(\"/lib/util/downloadContentFile/download\")({\n      fileId: fileId,\n      fileFolder: fileFolder,\n      fileApi: \"filesCalcDevelop\",\n      etag: \"latest\",\n      returnFileContent: true,\n      onError: p.onError,\n      onLoaded: p.onLoaded\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/startPage/pageSwipe/swipeTransition/swipeTransition.ls","text":"(function(){\n  return function(){\n    var animation, oldPW, newPW, path, params, oldHistory, oldLastPagePath, oldCurrentPage, oldCurrentPagePath, updateTransition, finishTransition, cancelTransition, onAnimationComplete, initTransition, transition;\n    animation = null;\n    oldPW = null;\n    newPW = null;\n    path = null;\n    params = null;\n    oldHistory = null;\n    oldLastPagePath = null;\n    oldCurrentPage = null;\n    oldCurrentPagePath = null;\n    updateTransition = function(percentage){\n      return animation.update(percentage);\n    };\n    finishTransition = function(){\n      return animation.finish();\n    };\n    cancelTransition = function(){\n      return animation.cancel();\n    };\n    onAnimationComplete = function(completed){\n      var ref$, ref1$, ref2$, ref3$, ref4$, ref5$, ref6$, i$, ref7$, len$, el, results$ = [];\n      app.startPageClickCatcher.hide();\n      if (completed) {\n        oldPW.removeClass(\"keyManagerScope\");\n        newPW.addClass(\"keyManagerScope\");\n        if ((ref$ = oldPW.pageCode) != null) {\n          if (typeof ref$.finish == 'function') {\n            ref$.finish();\n          }\n        }\n        return inc(\"../../log/log\")({\n          path: path,\n          params: params\n        });\n      } else {\n        app.currentPage = oldCurrentPage;\n        app.pageHistory = oldHistory;\n        app.lastPagePath = oldLastPagePath;\n        app.currentPagePath = oldCurrentPagePath;\n        newPW.removeClass(\"keyManagerScope\");\n        oldPW.addClass(\"keyManagerScope\");\n        oldPW.addClass(\"pageWrapper\");\n        oldPW.removeClass(\"pageWrapperOld\");\n        if ((ref1$ = oldPW.top) != null) {\n          ref1$.addClass(\"addons\");\n        }\n        if ((ref2$ = oldPW.page) != null) {\n          ref2$.addClass(\"page\");\n        }\n        if ((ref3$ = oldPW.topBar) != null) {\n          ref3$.addClass(\"topBar\");\n        }\n        if ((ref4$ = oldPW.bottom) != null) {\n          ref4$.addClass(\"bottomBar\");\n        }\n        if ((ref5$ = oldPW.pageScrollWrapper) != null) {\n          ref5$.addClass(\"pageScrollWrapper\");\n        }\n        if ((ref6$ = oldPW.pageSpacer) != null) {\n          ref6$.addClass(\"pageSpacer\");\n        }\n        for (i$ = 0, len$ = (ref7$ = oldPW.find(\".hideOnNextPageStart\")).length; i$ < len$; ++i$) {\n          el = ref7$[i$];\n          results$.push(el.show());\n        }\n        return results$;\n      }\n    };\n    initTransition = function(){\n      var pos, historyState, newState, ref$;\n      oldHistory = _.cloneDeep(app.pageHistory);\n      pos = app.pageHistory.length - 2;\n      historyState = app.pageHistory[pos];\n      path = historyState.path;\n      params = historyState.params || {};\n      params.history = -1;\n      newState = {\n        path: path,\n        params: params,\n        animation: historyState.animation || params.animation,\n        navCategory: historyState.navCategory\n      };\n      app.pageHistory.splice(pos, app.pageHistory.length, newState);\n      if ((ref$ = app.lastSound) != null) {\n        ref$.stop();\n      }\n      app.lastSound = null;\n      app.lastInput = null;\n      oldCurrentPage = app.currentPage;\n      oldLastPagePath = app.lastPagePath;\n      app.lastPagePath = app.currentPagePath;\n      oldCurrentPagePath = app.currentPagePath;\n      app.currentPagePath = path;\n      app.currentPopup = null;\n      oldPW = app.currentPage.pageWrapper;\n      inc(\"../../pageFinish/finish\")(oldPW);\n      newPW = inc(\"../../pageStart/start\")(path, params);\n      app.startPageClickCatcher.show();\n      return animation = inc(\"animation/animation\")(oldPW, newPW, onAnimationComplete);\n    };\n    initTransition();\n    return transition = {\n      updateTransition: updateTransition,\n      finishTransition: finishTransition,\n      cancelTransition: cancelTransition\n    };\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/startPage/animations/slideLeft/start.ls","text":"(function(){\n  return function(oldPW, newPW, o, onFinish){\n    if (body.width() < body.height()) {\n      return inc(\"portrait/start\")(oldPW, newPW, o, onFinish);\n    } else {\n      return inc(\"landscape/start\")(oldPW, newPW, o, onFinish);\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/startPage/animations/slideRight/start.ls","text":"(function(){\n  return function(oldPW, newPW, o, onFinish){\n    if (body.width() < body.height()) {\n      return inc(\"portrait/start\")(oldPW, newPW, o, onFinish);\n    } else {\n      return inc(\"landscape/start\")(oldPW, newPW, o, onFinish);\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/startPage/animations/slideUp/start.ls","text":"(function(){\n  return function(oldPW, newPW, o, onFinish){\n    var animationDuration, init, play, finish;\n    animationDuration = 300;\n    init = function(){\n      return newPW.css({\n        opacity: 1,\n        transform: \"translateY(100%)\"\n      });\n    };\n    play = function(){\n      return newPW.css({\n        transform: \"translateY(0)\",\n        transition: animationDuration + \"ms ease-out\"\n      });\n    };\n    finish = function(){\n      return newPW.css({\n        transform: \"\",\n        transition: \"\"\n      });\n    };\n    init();\n    return inc(\"/lib/util/waitFrames/wait\")(3, function(){\n      play();\n      return setTimeout(function(){\n        finish();\n        onFinish();\n        return oldPW.remove();\n      }, animationDuration);\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/keyManager/blockAndroidEsc/block.ls","text":"(function(){\n  return function(){\n    if (!engine.isAndroidApp) {\n      return;\n    }\n    return body.bind(\"keyup\", function(e){\n      e = inc(\"/lib/util/keyboardEventNormalize/normalize\")(e);\n      if (e._key !== \"esc\") {\n        return;\n      }\n      if (!body.findFirst(\".androidBack\") && body.findFirst(\".androidBackCloseApp\")) {\n        return;\n      }\n      e.preventDefault();\n      return e.stopImmediatePropagation();\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/keyManager/keyManager.ls","text":"(function(){\n  return function(){\n    inc(\"onKeyDown/onKeyDown\")();\n    return inc(\"blockAndroidEsc/block\")();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/keyManager/onKeyDown/onKeyDown.ls","text":"(function(){\n  var isDesktop, trigger;\n  isDesktop = inc(\"/lib/util/isDesktop/isDesktop\")();\n  trigger = inc(\"../trigger/trigger\");\n  return function(){\n    return body.bind(\"keydown\", function(e){\n      var ref$, key, charCode;\n      e = inc(\"/lib/util/keyboardEventNormalize/normalize\")(e);\n      if (!e._key) {\n        return;\n      }\n      if (e._key === \"r\" && e._cmd) {\n        e.preventDefault();\n      }\n      if (e._key === \"backspace\" && e.target === body && isDesktop) {\n        e.preventDefault();\n      }\n      if ((ref$ = e._key) === \"alt\" || ref$ === \"control\" || ref$ === \"meta\" || ref$ === \"shift\") {\n        return;\n      }\n      if (e._key.length > 1 || e._cmd) {\n        key = e._key;\n        if (e._shift) {\n          key = \"shift-\" + key;\n        }\n        if (e._cmd) {\n          key = \"cmd-\" + key;\n        }\n        return trigger({\n          functionKey: key,\n          event: e\n        });\n      } else {\n        charCode = e.charCode\n          ? e.charCode\n          : e.key && e.key.length === 1 ? e.key.charCodeAt(0) : void 8;\n        return trigger({\n          charCode: charCode,\n          event: e\n        });\n      }\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/gui/divEditable/tapCustomSelect/calcNodeWithOffset/calc.ls","text":"(function(){\n  return function(e, rectOnPoint){\n    var node;\n    node = rectOnPoint.node;\n    if (node.nodeType === 3) {\n      return inc(\"text/text\")(e, rectOnPoint);\n    } else if (node.tagName === \"IMG\") {\n      return inc(\"image/image\")(e, rectOnPoint);\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/gui/divEditable/tapCustomSelect/calcRectangles/calc.ls","text":"(function(){\n  return function(flatNodes){\n    var rectangles, res$, i$, len$, n;\n    res$ = [];\n    for (i$ = 0, len$ = flatNodes.length; i$ < len$; ++i$) {\n      n = flatNodes[i$];\n      if (n.tagName === \"IMG\") {\n        res$.push(inc(\"calcImage/calc\")(n));\n      } else if (n.nodeType === 3) {\n        res$.push(inc(\"calcTextNode/calc\")(n));\n      }\n    }\n    rectangles = res$;\n    return _.flatten(rectangles);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsers/removeAll/remove.ls","text":"(function(){\n  return function(){\n    if (Store(\"useAuthToken\")) {\n      return inc(\"/lib/util/storedUsersUseAuthToken/removeAll/remove\")();\n    }\n    return Store(\"userLogIds\", []);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsersUseAuthToken/logIds/logIds.ls","text":"(function(){\n  return function(){\n    var users, logIds;\n    users = inc(\"../users/users\")();\n    return logIds = _.map(users, \"l\");\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsersUseAuthToken/removeAll/remove.ls","text":"(function(){\n  return function(){\n    return inc(\"../_storeUsers/store\")([]);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsersUseAuthToken/removeUser/remove.ls","text":"(function(){\n  return function(logId){\n    var users;\n    users = inc(\"../users/users\")();\n    users = _.filter(users, function(u){\n      return u.l !== logId;\n    });\n    return inc(\"../_storeUsers/store\")(users);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsers/addUser/add.ls","text":"(function(){\n  return function(logId){\n    var logIds, logIds2, i$, len$;\n    if (Store(\"useAuthToken\")) {\n      return inc(\"/lib/util/storedUsersUseAuthToken/addUser/add\")(logId);\n    }\n    if (!logId) {\n      throw Error(\"logId cannot be undefined\");\n    }\n    logIds = _.isArray(logId)\n      ? logId\n      : [logId];\n    logIds2 = inc(\"../logIds/logIds\")();\n    for (i$ = 0, len$ = logIds.length; i$ < len$; ++i$) {\n      logId = logIds[i$];\n      if (!_.includes(logIds2, logId)) {\n        logIds2.push(logId);\n      }\n    }\n    return Store(\"userLogIds\", logIds2);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsers/logIds/logIds.ls","text":"(function(){\n  return function(){\n    var logIds, logIds2;\n    if (Store(\"useAuthToken\")) {\n      return inc(\"/lib/util/storedUsersUseAuthToken/logIds/logIds\")();\n    }\n    logIds = Store(\"userLogIds\");\n    if (!_.isArray(logIds)) {\n      Store(\"userLogIds\", []);\n      logIds = [];\n    }\n    logIds2 = _.compact(_.uniq(logIds));\n    if (logIds.length !== logIds2.length) {\n      logIds = logIds2;\n      Store(\"userLogIds\", logIds);\n    }\n    return logIds;\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsers/removeUser/remove.ls","text":"(function(){\n  return function(logId){\n    var logIds;\n    if (Store(\"useAuthToken\")) {\n      return inc(\"/lib/util/storedUsersUseAuthToken/removeUser/remove\")(logId);\n    }\n    logIds = inc(\"../logIds/logIds\")();\n    return Store(\"userLogIds\", _.without(logIds, logId));\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/print/before/before.ls","text":"(function(){\n  return function(p){\n    var i$, ref$, len$, el;\n    inc(\"addHeaderMedia/add\")();\n    for (i$ = 0, len$ = (ref$ = body.findAll(\".print\")).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      el.remove();\n    }\n    for (i$ = 0, len$ = (ref$ = body.childrenAll()).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      el.addClass(\"noPrint\");\n    }\n    return Div({\n      width: \"100%\",\n      fontSize: \"13px\",\n      webkitPrintColorAdjust: \"exact\",\n      colorAdjust: \"exact\"\n    }).addClass(\"print\").html(p.div.clone(true)).appendTo(body);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/loadBlock/loadIdePreview/load.ls","text":"(function(){\n  return function(p){\n    var project, fileId, fileFolder;\n    project = p.path.split(\"/\")[2];\n    fileId = \"block/\" + p.path.substr(4);\n    fileFolder = \"content/\" + project + \"/blocks\";\n    return inc(\"/lib/util/downloadContentFile/download\")({\n      fileId: fileId,\n      fileFolder: fileFolder,\n      fileApi: \"filesCalcDevelop\",\n      etag: \"latest\",\n      returnFileContent: true,\n      onError: p.onError,\n      onLoaded: p.onLoaded\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/isPlusPromotionTime/calcTestVariantDisablePlusPromotionTime/calc.ls","text":"(function(){\n  return function(){\n    var testVariant, n, e;\n    testVariant = inc(\"/lib/util/calcTestVariant/calc\")({\n      testName: \"disablePlusPromotionTime\",\n      testVariants: [\"yes\", \"no\"]\n    });\n    n = \"deviceTestDisablePlusPromotionTime\";\n    e = deviceLog.findLast(n);\n    if (!e) {\n      deviceLog.log({\n        event: n,\n        testVariant: testVariant\n      });\n    }\n    return testVariant;\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/browser/setUrlDescription/set.ls","text":"(function(){\n  return function(urlDescription){\n    app.currentUrlDescription = urlDescription;\n    if (!urlDescription) {\n      return;\n    }\n    inc(\"../setPageUrl/set\")(urlDescription.pageUrl);\n    inc(\"../setMetaDescription/set\")(urlDescription.metaDescription);\n    inc(\"../setTitle/set\")(urlDescription.title);\n    inc(\"../setBreadcrumbs/set\")(urlDescription.breadcrumbs);\n    inc(\"../setCanonical/set\")(urlDescription.pageUrl);\n    inc(\"../setNoIndex/set\")(urlDescription.noIndex);\n    return inc(\"../triggerPageReady/trigger\")(urlDescription);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/browser/setMetaDescription/set.ls","text":"(function(){\n  return function(metaDescription){\n    var i$, ref$, len$, el, m;\n    metaDescription = inc(\"../_replaceTags/replace\")(metaDescription);\n    for (i$ = 0, len$ = (ref$ = document.head.find(\"meta\")).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      if (el.name === \"description\") {\n        el.remove();\n      }\n    }\n    m = document.createElement(\"meta\").attr({\n      name: \"description\",\n      content: metaDescription\n    });\n    return document.head.prepend(m);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsersUseAuthToken/addUser/add.ls","text":"(function(){\n  return function(logId){\n    var logIds, users, i$, len$;\n    if (!logId) {\n      throw Error(\"logId cannot be undefined\");\n    }\n    logIds = _.isArray(logId)\n      ? logId\n      : [logId];\n    users = inc(\"../users/users\")();\n    for (i$ = 0, len$ = logIds.length; i$ < len$; ++i$) {\n      logId = logIds[i$];\n      if (!_.find(users, {\n        l: logId\n      })) {\n        users.push({\n          l: logId,\n          t: inc(\"../../storedAuthToken/get/get\")(logId)\n        });\n      }\n    }\n    return inc(\"../_storeUsers/store\")(users);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/fileDirectoryList/clearListCache/clear.ls","text":"(function(){\n  return function(){\n    return inc(\"../list/list\")({\n      clearCache: true\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/fileDirectoryList/fileAdd/add.ls","text":"(function(){\n  return function(p){\n    var fileName, folderPath, getList, onList;\n    fileName = _.last(p.filePath.split(\"/\"));\n    folderPath = p.filePath.substr(0, p.filePath.length - fileName.length - 1);\n    getList = function(){\n      return inc(\"../list/list\")({\n        folderPath: folderPath,\n        onDone: onList\n      });\n    };\n    onList = function(fileNames){\n      var exists;\n      exists = _.find(fileNames, function(n){\n        return n === fileName;\n      }) != null;\n      if (!exists) {\n        fileNames.push(fileName);\n      }\n      return p.onDone();\n    };\n    return getList();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/fileDirectoryList/fileExists/exists.ls","text":"(function(){\n  return function(p){\n    var fileName, folderPath, getList, onList;\n    fileName = _.last(p.filePath.split(\"/\"));\n    folderPath = p.filePath.substr(0, p.filePath.length - fileName.length - 1);\n    getList = function(){\n      return inc(\"../list/list\")({\n        folderPath: folderPath,\n        onDone: onList\n      });\n    };\n    onList = function(fileNames){\n      var exists;\n      exists = _.find(fileNames, function(n){\n        return n === fileName;\n      }) != null;\n      return p.onDone(exists);\n    };\n    return getList();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/fileDirectoryList/fileRemove/remove.ls","text":"(function(){\n  return function(p){\n    var fileName, folderPath, getList, onList;\n    fileName = _.last(p.filePath.split(\"/\"));\n    folderPath = p.filePath.substr(0, p.filePath.length - fileName.length - 1);\n    getList = function(){\n      return inc(\"../list/list\")({\n        folderPath: folderPath,\n        onDone: onList\n      });\n    };\n    onList = function(fileNames){\n      _.remove(fileNames, function(f){\n        return f === fileName;\n      });\n      return p.onDone();\n    };\n    return getList();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/offline/offlinePageWithLogging/antonPlusHint/logPromo/log.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/util/logPromo/log\")({\n      event: \"promoPlus_levelOfflineStart\",\n      isReferrer: true,\n      isIgnored: app.currentPage.params.history === 0\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/seo/element/breadcrumbs/breadcrumbs.ls","text":"(function(){\n  return function(breadcrumbList){\n    var domain, i$, len$, b, i, showArrow;\n    if (!breadcrumbList) {\n      return;\n    }\n    breadcrumbList = _.ensureArray(breadcrumbList);\n    domain = \"https://anton.app\";\n    for (i$ = 0, len$ = breadcrumbList.length; i$ < len$; ++i$) {\n      b = breadcrumbList[i$];\n      b.url = domain + \"/\" + engine.guiLanguage + \"/\";\n      if (b.pageUrl) {\n        b.url += b.pageUrl + \"/\";\n      }\n      if (b.pageAnchor) {\n        b.url += \"#\" + b.pageAnchor;\n      }\n    }\n    return Div().css({\n      display: \"flex\",\n      padding: \"2em 0 1em\",\n      flexWrap: \"wrap\"\n    }).append(inc(\"breadcrumb/breadcrumb\")({\n      name: \"anton.app\",\n      url: domain + (\"/\" + engine.guiLanguage + \"/\"),\n      pageUrl: \"\"\n    }, true), (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = breadcrumbList).length; i$ < len$; ++i$) {\n        i = i$;\n        b = ref$[i$];\n        showArrow = i !== breadcrumbList.length - 1;\n        results$.push(inc(\"breadcrumb/breadcrumb\")(b, showArrow));\n      }\n      return results$;\n    }()), inc(\"ldjsonTag/tag\")(breadcrumbList));\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/darkenColor/darken.ls","text":"(function(){\n  return function(color, m){\n    var div, rgb, alpha;\n    if (!(-1 <= m && m <= 1)) {\n      debug(\"the correction factor must be between -1 and 1\");\n      return;\n    }\n    body.append(div = Div().css({\n      visibility: \"hidden\",\n      color: color\n    }));\n    color = inc(\"parseColor/parse\")(div, color);\n    rgb = color.values;\n    alpha = color.alpha;\n    rgb = inc(\"darken/darken\")(rgb, m);\n    div.remove();\n    return \"rgba(\" + rgb.join(', ') + \", \" + alpha + \")\";\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/downloadSound/download.ls","text":"(function(){\n  return function(p){\n    var soundDescriptions, totalDone, startedAt, errors, extractMultiSounds, downloadSoundFiles, onSoundDone, finish;\n    soundDescriptions = [];\n    totalDone = 0;\n    startedAt = new Date();\n    errors = [];\n    extractMultiSounds = function(){\n      return inc(\"extractMultiSounds/extract\")(p, downloadSoundFiles);\n    };\n    downloadSoundFiles = function(d){\n      var i$, len$, soundDescription, results$ = [];\n      soundDescriptions = d;\n      for (i$ = 0, len$ = soundDescriptions.length; i$ < len$; ++i$) {\n        soundDescription = soundDescriptions[i$];\n        results$.push(inc(\"downloadSoundFile/download\")(p, soundDescription, onSoundDone));\n      }\n      return results$;\n    };\n    onSoundDone = function(error){\n      if (error) {\n        errors.push(error);\n      }\n      totalDone++;\n      if (totalDone === soundDescriptions.length) {\n        return finish();\n      }\n    };\n    finish = function(){\n      var base64, res$, i$, ref$, len$, d, sound;\n      if (_.find(errors, {\n        error: \"offline\"\n      })) {\n        return p.onOffline(errors);\n      } else if (errors.length > 0) {\n        return p.onError(errors);\n      } else {\n        res$ = [];\n        for (i$ = 0, len$ = (ref$ = soundDescriptions).length; i$ < len$; ++i$) {\n          d = ref$[i$];\n          res$.push({\n            base64: d.base64\n          });\n        }\n        base64 = res$;\n        sound = inc(\"/lib/util/sound/sound\")({\n          base64: base64,\n          volume: inc(\"/data/user/audioVolume/get\")()\n        });\n        sound.loadDuration = new Date() - startedAt;\n        return p.onLoaded(sound);\n      }\n    };\n    return extractMultiSounds();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/downloadSound/extractMultiSounds/extract.ls","text":"(function(){\n  return function(p, onDone){\n    var soundDescriptions;\n    soundDescriptions = inc(\"/lib/util/convertSoundString/convert\")(p);\n    return onDone(soundDescriptions);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/fileDirectoryList/search/search.ls","text":"(function(){\n  return function(p){\n    var startsWith, fileName, folderPath, getList, onList;\n    startsWith = p.startsWith;\n    fileName = _.last(startsWith.split(\"/\"));\n    folderPath = startsWith.substr(0, startsWith.length - fileName.length - 1);\n    getList = function(){\n      return inc(\"../list/list\")({\n        folderPath: folderPath,\n        onDone: onList\n      });\n    };\n    onList = function(fileNames){\n      var matchingFileNames, matchingFilePaths, res$, i$, len$, n;\n      matchingFileNames = _.filter(fileNames, function(f){\n        return _.startsWith(f, fileName);\n      });\n      res$ = [];\n      for (i$ = 0, len$ = matchingFileNames.length; i$ < len$; ++i$) {\n        n = matchingFileNames[i$];\n        res$.push(folderPath + \"/\" + n);\n      }\n      matchingFilePaths = res$;\n      return p.onDone(matchingFilePaths);\n    };\n    return getList();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/formatDateAsAgeString/format.ls","text":"(function(){\n  return function(t){\n    var d, minutes, labelLong, labelUserActivity;\n    if (!t) {\n      return;\n    }\n    d = inc(\"/lib/util/formatDate2/format\")(t);\n    minutes = d.timeAgo.tm;\n    labelLong = d.timeAgo.label;\n    labelUserActivity = minutes < 2\n      ? {\n        color: Color.green[400],\n        label: T(\"less2Minutes\")\n      }\n      : minutes <= 60\n        ? {\n          color: Color.amber[600],\n          label: labelLong\n        }\n        : 60 < minutes && minutes < 60 * 24\n          ? {\n            color: Color.amber[600],\n            label: T(\"less1Day\")\n          }\n          : {\n            color: Color.grey[500],\n            label: labelLong\n          };\n    return {\n      labelLong: labelLong,\n      labelUserActivity: labelUserActivity,\n      minutes: minutes\n    };\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/getMobileUnsentLogFileInfos/get.ls","text":"(function(){\n  return function(onDone){\n    return setTimeout(function(){\n      return app.fileSystem.listDir(\"/logger/\", function(error, dir){\n        return trySafe(function(){\n          var unsentFileEntries, total, totalDone, fileInfos, onInfo, i$, len$, fileEntry, results$ = [];\n          unsentFileEntries = _.filter(dir, function(entry){\n            return _.includes(entry.name, \"unsent\");\n          });\n          total = unsentFileEntries.length;\n          totalDone = 0;\n          fileInfos = [];\n          if (total === 0) {\n            onDone(fileInfos);\n            return;\n          }\n          onInfo = function(info){\n            totalDone++;\n            fileInfos.push(info);\n            if (totalDone === total) {\n              return onDone(fileInfos);\n            }\n          };\n          for (i$ = 0, len$ = unsentFileEntries.length; i$ < len$; ++i$) {\n            fileEntry = unsentFileEntries[i$];\n            results$.push(inc(\"getFileInfo/get\")(fileEntry, onInfo));\n          }\n          return results$;\n        });\n      });\n    }, 1000);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/loadPlan/lookupEtag/lookup.ls","text":"(function(){\n  return function(p){\n    var loadPlanVersion, onLoaded;\n    if (p.fileApi !== \"files\") {\n      p.onDone(\"latest\");\n      return;\n    }\n    loadPlanVersion = function(){\n      return inc(\"/lib/util/loadPlansList/load\")({\n        project: p.project,\n        onError: p.onError,\n        onLoaded: onLoaded\n      });\n    };\n    onLoaded = function(planVersion){\n      if (!planVersion) {\n        return p.onError(\"not found\");\n      } else {\n        return p.onDone(planVersion.etag);\n      }\n    };\n    return loadPlanVersion();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/downloadSound/downloadSoundFile/download.ls","text":"(function(){\n  return function(p, soundDescription, onDone){\n    var fileId, ref$;\n    fileId = \"sound/\" + soundDescription.voiceLang + \"/\" + soundDescription.voice + \"/\" + soundDescription.text;\n    return inc(\"/lib/util/downloadContentFile/download\")({\n      fileId: fileId,\n      fileFolder: p.fileFolder,\n      etag: (ref$ = p.etag) != null ? ref$ : \"any\",\n      returnFileContent: true,\n      onError: onDone,\n      onLoaded: function(base64){\n        soundDescription.base64 = base64;\n        return onDone();\n      }\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedAuthToken/set/set.ls","text":"(function(){\n  return function(logId, authToken){\n    var users, user;\n    if (!logId || !authToken) {\n      return;\n    }\n    engine.authToken == null && (engine.authToken = {});\n    engine.authToken[logId] = authToken;\n    users = inc(\"../../storedUsers/users/users\")();\n    user = _.find(users, {\n      l: logId\n    });\n    if (user) {\n      user.t = authToken;\n      return Store(\"users\", users);\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedAuthToken/get/get.ls","text":"(function(){\n  return function(logId){\n    var t, ref$, users, user, t2;\n    t = (ref$ = engine.authToken) != null ? ref$[logId] : void 8;\n    if (t) {\n      return t;\n    }\n    users = inc(\"../../storedUsers/users/users\")();\n    user = _.find(users, {\n      l: logId\n    });\n    t2 = user != null ? user.t : void 8;\n    if (t2) {\n      engine.authToken == null && (engine.authToken = {});\n      engine.authToken[logId] = t2;\n    }\n    return t2;\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/storedUsers/users/users.ls","text":"(function(){\n  return function(){\n    if (Store(\"useAuthToken\")) {\n      return inc(\"/lib/util/storedUsersUseAuthToken/users/users\")();\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/offline/offlinePageWithLogging/logExtraPing/log.ls","text":"(function(){\n  return function(o){\n    var url, startedAt;\n    if (!inc(\"/lib/util/isOnline/isOnline\")()) {\n      return;\n    }\n    url = inc(\"/lib/util/serverUrl/serverUrl\")(\"apis2\") + \"/ping\";\n    startedAt = new Date();\n    return helpers.httpRequest.get(url, null, function(error, data){\n      return typeof log != 'undefined' && log !== null ? log.log({\n        event: \"debugShowOfflinePageExtraPing\",\n        duration: new Date() - startedAt,\n        status: data != null ? data.status : void 8\n      }) : void 8;\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/gui/divEditable/fixiOsCaretColor/fix.ls","text":"(function(){\n  return function(){\n    var t, i;\n    t = inc(\"/lib/util/calcAppType/calc\")().toLowerCase();\n    if (app.divEditableCaretColorFixed || !_.endsWith(t, \"ios\")) {\n      return;\n    }\n    i = Input().attr({\n      inputMode: \"none\"\n    }).appendTo(body);\n    i.focus();\n    i.blur();\n    i.remove();\n    return app.divEditableCaretColorFixed = true;\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/update/calcSoftKeyboardBottom/fixIOsBrowserWindowScroll/fix.ls","text":"(function(){\n  var t, isIosBrowser;\n  t = inc(\"/lib/util/calcAppType/calc\")();\n  isIosBrowser = _.includes(t, \"iOS\") && _.includes(t, \"browser\");\n  return function(h){\n    if (isIosBrowser && h > 0 && window.visualViewport != null) {\n      return window.scrollTo(0, 0);\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/gui/pixiSpineCanvas/setRendererAndStage/set.ls","text":"(function(){\n  return function(o){\n    o.renderer = inc(\"/lib/gui/pixiRenderer/pixiRenderer\")({\n      width: o.width,\n      height: o.height\n    });\n    if (!o.renderer) {\n      return;\n    }\n    o.renderer.view.style.width = o.width + \"px\";\n    o.renderer.view.style.height = o.height + \"px\";\n    o.renderer.view.style.background = \"\";\n    o.stage = new PIXI.Container();\n    return inc(\"onFrame/onFrame\")(o);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/gui/divEditable/tapCustomSelect/calcRectangles/calcTextNode/calc.ls","text":"(function(){\n  return function(n){\n    var text, length, partLength, totalParts, resultRects, i$, to$, i, fromOffset, toOffset, rects, j$, to1$, j;\n    text = n.textContent;\n    length = text.length;\n    partLength = 5;\n    totalParts = parseInt(length / partLength);\n    if (length % partLength > 0) {\n      totalParts++;\n    }\n    resultRects = [];\n    for (i$ = 0, to$ = totalParts - 1; i$ <= to$; ++i$) {\n      i = i$;\n      fromOffset = i * partLength;\n      toOffset = (i + 1) * partLength;\n      toOffset = Math.min(length, (i + 1) * partLength);\n      rects = inc(\"calcRects/calc\")(n, fromOffset, toOffset);\n      if (rects.length === 1) {\n        resultRects.push({\n          type: \"text\",\n          rect: rects[0],\n          node: n,\n          fromOffset: fromOffset,\n          toOffset: toOffset,\n          text: text.substring(fromOffset, toOffset)\n        });\n      } else {\n        for (j$ = fromOffset, to1$ = toOffset - 1; j$ <= to1$; ++j$) {\n          j = j$;\n          rects = inc(\"calcRects/calc\")(n, j, j + 1);\n          resultRects.push({\n            type: \"textSingle\",\n            rect: rects[1] || rects[0],\n            node: n,\n            fromOffset: j,\n            toOffset: j + 1,\n            text: text.substring(j, j + 1)\n          });\n        }\n      }\n    }\n    return resultRects;\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/startPage/animations/fadeIn/start.ls","text":"(function(){\n  return function(oldPW, newPW, o, onFinish){\n    var newPageSpacer, init, play, finish;\n    newPageSpacer = newPW.pageSpacer || newPW.page;\n    init = function(){\n      return newPageSpacer.css({\n        opacity: 0\n      });\n    };\n    play = function(){\n      oldPW.css({\n        opacity: 0\n      });\n      newPW.css({\n        opacity: 1\n      });\n      return newPageSpacer.css({\n        opacity: 1,\n        transition: \"opacity 200ms ease-in\"\n      });\n    };\n    finish = function(){\n      return newPageSpacer.css({\n        transform: \"\",\n        transition: \"\",\n        opacity: \"\"\n      });\n    };\n    init();\n    return inc(\"/lib/util/waitFrames/wait\")(3, function(){\n      play();\n      return setTimeout(function(){\n        finish();\n        onFinish();\n        return oldPW.remove();\n      }, 200);\n    });\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/loadPlansList/load.ls","text":"(function(){\n  var cache;\n  cache = undefined;\n  return function(p){\n    var etag, load, onLoaded, finish, cacheAge, maxCacheAge;\n    etag = p.etag || \"latest\";\n    load = function(){\n      return inc(\"/lib/util/downloadContentFile/download\")({\n        fileId: \"list/plans\",\n        fileFolder: \"content/_plans\",\n        fileApi: \"files\",\n        etag: etag,\n        returnFileContent: true,\n        onLoaded: onLoaded,\n        onError: p.onError\n      });\n    };\n    onLoaded = function(result){\n      var i$, ref$, len$, p;\n      cache = {\n        plans: result.plans\n      };\n      app.plansListByProject = {};\n      for (i$ = 0, len$ = (ref$ = result.plans).length; i$ < len$; ++i$) {\n        p = ref$[i$];\n        app.plansListByProject[p.project] = p;\n      }\n      if (etag !== \"any\") {\n        cache.cachedAt = new Date();\n      }\n      return finish();\n    };\n    finish = function(){\n      var planDetails;\n      if (!p.project) {\n        return p.onLoaded(cache.plans);\n      } else {\n        planDetails = _.find(cache.plans, {\n          project: p.project\n        });\n        return p.onLoaded(planDetails);\n      }\n    };\n    cacheAge = new Date() - (cache != null ? cache.cachedAt : void 8);\n    maxCacheAge = 1000 * 60 * 60 * 8;\n    if (cache != null && cacheAge < maxCacheAge && p.clearCache !== true) {\n      return finish();\n    } else {\n      return load();\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/startPage/pageSwipe/swipe.ls","text":"(function(){\n  return function(){\n    var bodyWidth, transition, didMove, startX, velocity, lastX, lastTime, hasAllowedClass, canStartSwipeTransition, down, up, cancelOtherTaps, stopActiveDivEditable, move;\n    if (!inc(\"/lib/util/isiOs/isiOs\")()) {\n      return;\n    }\n    bodyWidth = 0;\n    transition = undefined;\n    didMove = false;\n    startX = 0;\n    velocity = 0;\n    lastX = 0;\n    lastTime = null;\n    hasAllowedClass = function(element){\n      var parent;\n      if (!element || element === body) {\n        return false;\n      }\n      if (typeof element.hasClass == 'function' && element.hasClass(\"allowBackSwipe\")) {\n        return true;\n      }\n      parent = element.parent();\n      return hasAllowedClass(parent);\n    };\n    canStartSwipeTransition = function(e){\n      var ref$, ref1$;\n      return transition == null && ((ref$ = (ref1$ = app.pageHistory)[ref1$.length - 1]) != null ? ref$.animation : void 8) === \"slideLeft\" && hasAllowedClass(e.target);\n    };\n    down = function(e){\n      var ee;\n      if (!canStartSwipeTransition(e)) {\n        return;\n      }\n      ee = inc(\"event/normalize\")(e);\n      if (ee.clientX < 40) {\n        e.preventDefault();\n        velocity = 0;\n        lastTime = performance.now();\n        startX = ee.clientX;\n        lastX = startX;\n        didMove = false;\n        bodyWidth = body.offset().width;\n        body.bind(\"touchend touchcancel mouseup\", up, true);\n        return body.bind(\"touchmove mousemove\", move, true, false);\n      }\n    };\n    up = function(e){\n      var percentage;\n      body.unbind(\"touchend touchcancel mouseup\", up, true);\n      body.unbind(\"touchmove mousemove\", move, true, false);\n      if (!didMove) {\n        return;\n      }\n      e.stopPropagation();\n      e = inc(\"event/normalize\")(e);\n      percentage = e.clientX / bodyWidth;\n      if ((percentage > 0.5 && velocity > -0.3) || velocity > 0.3) {\n        transition.finishTransition();\n      } else {\n        transition.cancelTransition();\n      }\n      return transition = undefined;\n    };\n    cancelOtherTaps = function(){\n      return body.dispatchEvent(new Event('scroll'));\n    };\n    stopActiveDivEditable = function(){\n      var el;\n      el = document.activeElement;\n      if (el.isDivEditable) {\n        return el.stop();\n      }\n    };\n    move = function(e){\n      var t, percentage;\n      e.stopPropagation();\n      e.preventDefault();\n      e = inc(\"event/normalize\")(e);\n      t = performance.now();\n      velocity = velocity * 0.3 + ((e.clientX - lastX) / (t - lastTime)) * 0.7;\n      lastX = e.clientX;\n      lastTime = t;\n      if (!didMove && e.clientX > startX) {\n        stopActiveDivEditable();\n        cancelOtherTaps();\n        transition = inc(\"swipeTransition/swipeTransition\")();\n        didMove = true;\n      }\n      if (didMove) {\n        percentage = e.clientX / bodyWidth;\n        return transition.updateTransition(percentage);\n      }\n    };\n    return body.bind(\"touchstart mousedown\", down, undefined, false);\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/apiCall/call.ls","text":"(function(){\n  return function(o){\n    var ref$, ref1$, url, xhr, load, onReadyStateChange;\n    if (o.requiredSamePopup) {\n      o.requiredSamePopupInitValue = app.currentPopup;\n    }\n    if (o.requiredSamePage) {\n      o.requiredSamePageInitValue = app.currentPage;\n    }\n    o.requestMethod = ((ref$ = o.method) != null ? ref$.toUpperCase() : void 8) || \"GET\";\n    if ((ref1$ = o.requestMethod) !== \"GET\" && ref1$ !== \"POST\") {\n      throw new Error(\"only \\\"get\\\" and \\\"post\\\" supported\");\n    }\n    url = inc(\"calcUrl/calc\")(o);\n    xhr = new XMLHttpRequest();\n    load = function(){\n      xhr.open(o.requestMethod, url);\n      xhr.responseType = \"json\";\n      xhr.timeout = o.timeout;\n      xhr.onreadystatechange = function(){\n        return trySafe(onReadyStateChange);\n      };\n      xhr.setRequestHeader(\"Content-type\", \"application/json\");\n      if (log) {\n        xhr.setRequestHeader(\"logId\", log.id());\n      }\n      return xhr.send(o.requestMethod === \"POST\" ? (function(){\n        try {\n          return JSON.stringify(o.params);\n        } catch (e$) {}\n      }()) : void 8);\n    };\n    onReadyStateChange = function(){\n      var json;\n      if (xhr.readyState !== 4) {\n        return;\n      }\n      json = xhr.response;\n      if (xhr.getResponseHeader(\"anton-server\") !== \"yes\") {\n        if (inc(\"checkRequired/check\")(o)) {\n          return o.onOffline();\n        }\n      } else if (xhr.status === 404) {\n        if (inc(\"checkRequired/check\")(o)) {\n          return o.onError(\"not_found\");\n        }\n      } else {\n        if (inc(\"checkRequired/check\")(o)) {\n          return o.onCompleted(json);\n        }\n      }\n    };\n    if (engine.simulateOffline) {\n      return o.onOffline();\n    } else if (engine.simulateError) {\n      return o.onError();\n    } else {\n      return load();\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/loadBlock/load.ls","text":"(function(){\n  return function(o){\n    if (o.idePreview) {\n      return inc(\"loadIdePreview/load\")(o);\n    } else {\n      return inc(\"loadFromPlan/load\")(o);\n    }\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/loadBlock/loadFromPlan/load.ls","text":"(function(){\n  return function(o){\n    var project, ref$, ref1$, planPath, loadPlan, findBlock;\n    project = ((ref$ = o.puid) != null ? ref$.split(\"/\")[0] : void 8) || ((ref1$ = o.path) != null ? ref1$.split(\"/\")[2] : void 8);\n    planPath = \"/../\" + project + \"/plan.ls\";\n    loadPlan = function(){\n      return inc(\"/lib/util/loadPlan/load\")({\n        path: planPath,\n        fileApi: o.fileApi,\n        onError: o.onError,\n        onLoaded: findBlock\n      });\n    };\n    findBlock = function(plan){\n      var block;\n      block = inc(\"findBlock/find\")(o, plan);\n      if (block) {\n        return o.onLoaded(block);\n      } else {\n        return o.onError(\"no block found\");\n      }\n    };\n    return loadPlan();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/offline/offlinePageWithLogging/log/log.ls","text":"(function(){\n  return function(o){\n    var e, that, ref$;\n    e = {\n      event: \"debugShowOfflinePage\",\n      isOnline: inc(\"/lib/util/isOnline/isOnline\")()\n    };\n    if (that = (ref$ = engine.networkConnection) != null ? ref$.type : void 8) {\n      e.networkType = that;\n    }\n    if (that = o.reason) {\n      e.reason = that;\n    }\n    if (that = o.reasonDetails) {\n      e.reasonDetails = that;\n    }\n    return typeof log != 'undefined' && log !== null ? log.log(e) : void 8;\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/util/startPage/startPage.ls","text":"(function(){\n  return function(){\n    app.pageHistory = [];\n    app.pageScrollPositions = {};\n    history.pushState({}, \"\", window.location.href);\n    app.startPageClickCatcher = inc(\"clickCatcher/clickCatcher\")();\n    projects.includeInjections.startPage = function(fromPath){\n      var startPage;\n      return startPage = function(o){\n        var that, i$, ref$, len$, index, state, originalAnimation, pos, historyState, pageFunction, message, newState, oldPW, oldPageCode, ref1$, ref2$, ref3$, el, newPW;\n        if ((o != null ? o.navCategory : void 8) != null) {\n          inc(\"startNavCategory/start\")(o, fromPath);\n          return;\n        }\n        if (_.isString(o)) {\n          o = {\n            path: o\n          };\n        }\n        if (_.isObject(o.history) && !_.isFunction(o.history)) {\n          if ((that = o.history.absolute) != null) {\n            o.history = that - app.pageHistory.length;\n          } else if ((that = o.history.relative) != null) {\n            o.history = that;\n          } else {\n            debug(\"unsupported history type:\");\n            debug(o.history);\n          }\n        }\n        if (_.isFunction(o.history)) {\n          for (i$ = 0, len$ = (ref$ = _.reverse(app.pageHistory.slice())).length; i$ < len$; ++i$) {\n            index = i$;\n            state = ref$[i$];\n            if (o.history(state.path, state.params, state.animation)) {\n              break;\n            }\n          }\n          o.history = -index;\n        }\n        originalAnimation = undefined;\n        if (o.history != null && !o.path) {\n          pos = app.pageHistory.length - 1 + o.history;\n          if (pos < 0) {\n            window.history.go(pos);\n            return;\n          }\n          historyState = app.pageHistory[pos];\n          o.path = historyState.path;\n          o.params == null && (o.params = historyState.params);\n          originalAnimation = historyState.animation;\n        }\n        o.path = helpers.resolvePath(o.path, fromPath).path;\n        o.path = o.path.replace(\".ls\", \"\");\n        o.params == null && (o.params = {});\n        if ((that = o.history) != null) {\n          o.params.history = that;\n        }\n        if (o.history === 0) {\n          o.animation == null && (o.animation = \"none\");\n        }\n        o.animation == null && (o.animation = \"fadeIn\");\n        if (o.path) {\n          pageFunction = inc(o.path, {\n            silentError: true\n          });\n          if (pageFunction.includeError) {\n            message = pageFunction.includeError.replace(\"include\", \"startPage\");\n            helpers.errorHandler(message, fromPath, 0);\n            return;\n          }\n        }\n        if (_.isNumber(o.history)) {\n          pos = app.pageHistory.length + o.history - 1;\n          app.pageHistory.splice(pos, 100);\n        }\n        newState = {\n          path: o.path,\n          params: o.params,\n          animation: originalAnimation || o.params.animation || o.animation\n        };\n        if (o.replace === true) {\n          app.pageHistory[app.pageHistory.length - 1] = newState;\n        } else {\n          app.pageHistory.push(newState);\n        }\n        try {\n          if (o.isBrowserBack === true) {\n            history.pushState(newState, \"\");\n          } else {\n            history.replaceState(newState, \"\");\n          }\n        } catch (e$) {}\n        inc(\"log/log\")(o);\n        oldPW = ((ref$ = app.currentPage) != null ? ref$.pageWrapper : void 8) || Div();\n        oldPageCode = (ref1$ = app.currentPage) != null ? ref1$.pageCode : void 8;\n        if ((ref2$ = app.lastSound) != null) {\n          ref2$.stop();\n        }\n        app.lastSound = null;\n        app.lastInput = null;\n        app.lastPagePath = app.currentPagePath;\n        app.currentPagePath = o.path;\n        app.currentPopup = null;\n        for (i$ = 0, len$ = (ref3$ = body.find(\".pageWrapperOld , .mainMenu, .spinnerOverlay\")).length; i$ < len$; ++i$) {\n          el = ref3$[i$];\n          el.remove();\n        }\n        inc(\"pageFinish/finish\")(oldPW);\n        if (oldPageCode != null) {\n          if (typeof oldPageCode.finish == 'function') {\n            oldPageCode.finish(newState);\n          }\n        }\n        for (i$ = 0, len$ = (ref3$ = (oldPW != null ? oldPW.findAll(\".onPageFinish\") : void 8) || []).length; i$ < len$; ++i$) {\n          el = ref3$[i$];\n          el.onPageFinish(newState);\n        }\n        if (oldPW != null) {\n          oldPW.removeClass(\"keyManagerScope\");\n        }\n        newPW = inc(\"pageStart/start\")(o.path, o.params);\n        newState.navCategory = newPW.pageCode.navCategory;\n        return inc(\"animations/start\")(o, oldPW, newPW);\n      };\n    };\n    inc(\"onPopState/onPopState\")();\n    return inc(\"pageSwipe/swipe\")();\n  };\n})();","updated":"2023-03-22T09:54:39.351272"},{"path":"lib/init/logDeviceStartEvents/projectVersions/log.ls","text":"(function(){\n  return function(){\n    var e, versions, app01Checksum;\n    e = deviceLog.findLast(\"deviceProjectVersions\");\n    versions = inc(\"calcProjectVersions/calc\")();\n    app01Checksum = inc(\"calcProjectChecksum/calc\")(\"app01\");\n    if (!_.isEqual(e != null ? e.versions : void 8, versions) || (e != null ? e.app01Checksum : void 8) !== app01Checksum) {\n      return deviceLog.log({\n        event: \"deviceProjectVersions\",\n        versions: versions,\n        app01Checksum: app01Checksum\n      });\n    }\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/restartIfRequired/restart.ls","text":"(function(){\n  return function(currentInitVersion){\n    var mustRestart, i;\n    mustRestart = false;\n    if (engine.initVersion !== currentInitVersion) {\n      deviceLog.log({\n        event: \"deviceDebugReloadInitChanged\",\n        'new': currentInitVersion,\n        old: engine.initVersion\n      });\n      mustRestart = true;\n    }\n    i = projects.info()[\"app01-engine-start\"];\n    if (!engine.isMobileApp && i.branch === \"master\" && i.version < 107) {\n      deviceLog.log({\n        event: \"deviceDebugReloadFrozenEngineStart\",\n        version: i.version\n      });\n      mustRestart = true;\n    }\n    if (mustRestart) {\n      inc(\"waitUntilProjectSave/wait\")(function(duration){\n        return inc(\"logProjectsInfo/log\")(duration, function(infoEvent){\n          return setTimeout(function(){\n            if (infoEvent != null && infoEvent.projectsFileRebuild) {\n              return inc(\"logProjectsInfo/checkInconsistentProjectsInfos/rebuildProjectsFile/rebuild\")(function(){\n                return location.reload();\n              });\n            } else {\n              return location.reload();\n            }\n          }, 500);\n        });\n      });\n    }\n    return mustRestart;\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/engineGuiLanguage/engineGuiLanguage.ls","text":"(function(){\n  return function(){\n    return Object.defineProperty(engine, \"guiLanguage\", {\n      configurable: true,\n      enumerable: true,\n      get: function(){\n        var ref$, ref1$;\n        return ((ref$ = app.currentPage) != null ? ref$.guiLanguageCustom : void 8) || (typeof log != 'undefined' && log !== null ? (ref1$ = log.findLast(\"setGuiLanguage\")) != null ? ref1$.value : void 8 : void 8) || (typeof Store == 'function' ? Store(\"deviceGuiLanguage\") : void 8) || inc(\"/lib/util/calcGuiLanguage/calc\")();\n      }\n    });\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/deviceCleanup/logFinishEvent/log.ls","text":"(function(){\n  return function(o, freeSpace, freeSpace2){\n    var spaceDiff, spaceDiffInMb, spaceInMb;\n    spaceDiff = freeSpace2 - freeSpace;\n    spaceDiffInMb = inc(\"../calcMbSpace/calc\")(spaceDiff);\n    spaceInMb = inc(\"../calcMbSpace/calc\")(freeSpace2);\n    o.logs.summary = {\n      durationInMs: new Date() - o.startTime,\n      spaceDiffInMb: _.round(spaceDiffInMb, 1),\n      spaceInMb: _.round(spaceInMb, 1)\n    };\n    return deviceLog.log({\n      event: \"deviceCleanupDone\",\n      logs: o.logs,\n      version: 4\n    });\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/deviceCleanup/logStartEvent/log.ls","text":"(function(){\n  return function(space){\n    var spaceInMb;\n    spaceInMb = inc(\"../calcMbSpace/calc\")(space);\n    return deviceLog.log({\n      event: \"deviceCleanupStart\",\n      spaceInMb: _.round(spaceInMb, 1),\n      version: 4\n    });\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/engineTranslate/findTranslationDetails/find.ls","text":"(function(){\n  return function(propertyName, project, localPath){\n    var a, f;\n    a = localPath.split(\"/\");\n    f = function(){\n      var p, exists, absolutPath, t, td;\n      a[a.length - 1] = \"_t.ls\";\n      p = a.join(\"/\");\n      exists = projects.documentCache[project][p] != null;\n      if (exists) {\n        absolutPath = \"/../\" + project + \"/\" + p;\n        t = inc(absolutPath);\n      }\n      td = t != null ? t[propertyName] : void 8;\n      if (td) {\n        return td;\n      } else {\n        a.pop();\n        if (a.length > 0) {\n          return f();\n        }\n      }\n    };\n    return f();\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/logDeviceStartEvents/setAppType/log.ls","text":"(function(){\n  return function(){\n    var e, type;\n    e = deviceLog.findLast(\"deviceSetAppType\");\n    type = inc(\"/lib/util/calcAppType/calc\")();\n    if ((e != null ? e.value : void 8) !== type) {\n      return deviceLog.log({\n        event: \"deviceSetAppType\",\n        value: type\n      });\n    }\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/deviceCleanup/deleteOldLogsFromFileSystem/delete.ls","text":"(function(){\n  return function(o, onDone){\n    var startDate, listFiles, filterLogs, removeFiles;\n    o.logs.oldLogsFilesystem = {};\n    startDate = new Date();\n    listFiles = function(){\n      return app.fileSystem.listDir(\"/logger/\", function(error, files){\n        if (error) {\n          deviceLog.log({\n            event: \"deviceCleanupAborted\",\n            reason: \"oldLogs listDir error\",\n            error: error\n          });\n          return;\n        }\n        if (!files || files.length === 0) {\n          o.logs.oldLogsFilesystem = \"no dir\";\n          onDone();\n          return;\n        }\n        return filterLogs(files);\n      });\n    };\n    filterLogs = function(files){\n      var userFiles, storedLogIds, unusedUserFiles;\n      userFiles = _.filter(files, function(f){\n        return _.startsWith(f.name, \"events\") && !_.startsWith(f.name, \"events_GROUP\") && !_.startsWith(f.name, \"events_SCHOOL\") && !_.startsWith(f.name, \"events_D-\") && f.name !== \"logger_info\";\n      });\n      storedLogIds = inc(\"/lib/util/storedUsers/logIds/logIds\")();\n      unusedUserFiles = _.filter(userFiles, function(f){\n        var logId;\n        logId = f.name.split(\"events_\")[1];\n        logId = logId.split(\"_unsent\")[0];\n        logId = logId.split(\".json\")[0];\n        return !_.includes(storedLogIds, logId);\n      });\n      if (unusedUserFiles.length === 0) {\n        o.logs.oldLogsFilesystem = \"no files\";\n        onDone();\n        return;\n      }\n      o.cleanup = true;\n      o.logs.oldLogsFilesystem.total = unusedUserFiles.length;\n      return removeFiles(unusedUserFiles);\n    };\n    removeFiles = function(files){\n      return inc(\"../_removeFilesAsync/remove\")(files, function(){\n        var f;\n        o.logs.oldLogsFilesystem.deletedLogs = (function(){\n          var i$, ref$, len$, results$ = [];\n          for (i$ = 0, len$ = (ref$ = files).length; i$ < len$; ++i$) {\n            f = ref$[i$];\n            results$.push(f.name);\n          }\n          return results$;\n        }());\n        o.logs.oldLogsFilesystem.duration = new Date() - startDate;\n        return onDone();\n      });\n    };\n    return listFiles();\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/subscribeDeviceAndUserLogs/subscribeUserLogs/subscribe/subscribe.ls","text":"(function(){\n  return function(o){\n    var removeDeletedUser;\n    removeDeletedUser = function(userLog){\n      var ref$, key$, ref1$;\n      if ((userLog != null && userLog.findLast(\"userIsDeleted\")) || userLog.authToken === \"T-unknownUser\") {\n        inc(\"/lib/util/storedUsers/removeUser/remove\")(o.logId);\n        return ref1$ = (ref$ = window.userLogs)[key$ = o.logId], delete ref$[key$], ref1$;\n      }\n    };\n    return inc(\"/lib/util/log/subscribeUser/subscribe\")({\n      logId: o.logId,\n      onInitDone: function(userLog){\n        window.userLogs[o.logId] = userLog;\n        removeDeletedUser(userLog);\n        return o.onInitDone(userLog);\n      },\n      onSubscribe: function(userLog){\n        removeDeletedUser(userLog);\n        return o.onSubscribe(userLog);\n      }\n    });\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/subscribeDeviceAndUserLogs/subscribe.ls","text":"(function(){\n  return function(done){\n    var total, f, init, deviceLogChar;\n    total = 0;\n    f = function(){\n      total++;\n      if (total === 2) {\n        return done();\n      }\n    };\n    init = function(){\n      var ref$;\n      inc(\"/../logger01/init\")();\n      return Logger.init({\n        memoryOnly: !engine.isMobileApp,\n        readOnly: (ref$ = Store(\"debugLoggerReadOnly\")) != null ? ref$ : false\n      }, function(){\n        inc(\"subscribeDeviceLog/subscribe\")(f);\n        return inc(\"subscribeUserLogs/subscribe\")(f);\n      });\n    };\n    deviceLogChar = (Store(\"deviceLogId\") || \"\").substr(2, 1).toLowerCase();\n    if (!Store(\"useAuthToken\") && Store(\"users\") == null) {\n      return inc(\"migrateUserAuthTokens/migrate\")(init);\n    } else {\n      return init();\n    }\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/subscribeDeviceAndUserLogs/migrateUserAuthTokens/migrate.ls","text":"(function(){\n  return function(done){\n    var logIds, ref$, l, url, xhr, send, onLoaded;\n    logIds = (ref$ = Store(\"userLogIds\")) != null\n      ? ref$\n      : [];\n    l = \"abcd\"[_.random(0, 3)];\n    url = \"https://\" + l + \"-apis-db.anton.app/migrateUserAuthTokens\";\n    xhr = new XMLHttpRequest();\n    send = function(){\n      xhr.open(\"post\", url);\n      xhr.responseType = \"json\";\n      xhr.timeout = 10000;\n      xhr.setRequestHeader(\"Content-type\", \"application/json\");\n      xhr.send((function(){\n        try {\n          return JSON.stringify({\n            path: path(\"/../server-apis-db2/apisLogger/migrateUserAuthTokens/migrate\"),\n            deviceLogId: Store(\"deviceLogId\"),\n            params: {\n              logIds: logIds\n            }\n          });\n        } catch (e$) {}\n      }()));\n      return xhr.onreadystatechange = function(){\n        return trySafe(function(){\n          var users, ref$;\n          if (xhr.readyState !== 4) {\n            return;\n          }\n          users = (ref$ = xhr.response) != null ? ref$.users : void 8;\n          return onLoaded(users);\n        });\n      };\n    };\n    onLoaded = function(users){\n      if (!_.isArray(users)) {\n        done();\n        return;\n      }\n      Store(\"users\", users);\n      Store(\"useAuthToken\", true);\n      if (users.length > 0) {\n        inc(\"log/log\")(users);\n      }\n      return done();\n    };\n    if (logIds.length === 0) {\n      return onLoaded([]);\n    } else {\n      return send();\n    }\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/subscribeDeviceAndUserLogs/subscribeUserLogs/subscribe/deleteUser/delete.ls","text":"(function(){\n  return function(log){\n    return inc(\"/lib/util/storedUsers/removeUser/remove\")(log.id());\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/networkConnection/init.ls","text":"(function(){\n  var connectionChangeListener;\n  connectionChangeListener = [];\n  return function(){\n    var triggerConnectionChangeListeners;\n    engine.networkConnection = {\n      type: \"none\",\n      isOnline: false\n    };\n    engine.networkConnection.addConnectionChangeListener = function(cb){\n      if (!_.isFunction(cb)) {\n        throw new Error(\"connectionChangeListener must be a function\");\n      }\n      return connectionChangeListener.push(cb);\n    };\n    engine.networkConnection.removeConnectionChangeListener = function(cb){\n      return connectionChangeListener = _.filter(connectionChangeListener, function(c){\n        return c !== cb;\n      });\n    };\n    triggerConnectionChangeListeners = function(){\n      var i$, ref$, len$, listener, results$ = [];\n      for (i$ = 0, len$ = (ref$ = connectionChangeListener).length; i$ < len$; ++i$) {\n        listener = ref$[i$];\n        results$.push(listener(engine.networkConnection.isOnline, engine.networkConnection.type));\n      }\n      return results$;\n    };\n    if (typeof Connection != 'undefined' && Connection !== null) {\n      inc(\"initMobile/init\")(triggerConnectionChangeListeners);\n    } else if (engine.isAndroidApp) {\n      engine.networkConnection.type = \"unsupported\";\n      engine.networkConnection.isOnline = true;\n    } else {\n      inc(\"initBrowser/init\")(triggerConnectionChangeListeners);\n    }\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/androidBack/androidBack.ls","text":"(function(){\n  return function(){\n    if (window.onAndroidBack != null) {\n      return;\n    }\n    window.onAndroidBack = function(){\n      var elements, i$, len$, e, results$ = [];\n      if (app.currentPopup) {\n        app.currentPopup.close();\n        return;\n      }\n      elements = body.findAll(\".androidBack\");\n      if (elements.length > 0) {\n        for (i$ = 0, len$ = elements.length; i$ < len$; ++i$) {\n          e = elements[i$];\n          results$.push(e.triggerCustomEvent({\n            event: \"androidBack\"\n          }));\n        }\n        return results$;\n      } else if (body.findFirst(\".androidBackCloseApp\")) {\n        return inc(\"exitApp/exit\")();\n      }\n    };\n    return document.addEventListener(\"backbutton\", window.onAndroidBack, false);\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/checkRemoteLogout/check.ls","text":"(function(){\n  return function(){\n    var events, i$, len$, e, results$ = [];\n    events = deviceLog.list(\"deviceRemoteUserLogout\");\n    events = _.filter(events, function(e){\n      return !e.done;\n    });\n    if (events.length === 0) {\n      return;\n    }\n    for (i$ = 0, len$ = events.length; i$ < len$; ++i$) {\n      e = events[i$];\n      results$.push(inc(\"logoutUser/logout\")(e));\n    }\n    return results$;\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"pages/start/startUser/07_extraPages/connectToSesam/page/_t.ls","text":"(function(){\n  return {\n    text: \"Dein Nutzerkonto ist noch nicht mit SESAM verknüpft. <br>Klicke bitte auf den Button, um dich zu verknüpfen. <br>Erst dann kannst du dich direkt über SESAM bei ANTON einloggen.\",\n    connect: \"Verknüpfen\",\n    skip: \"Überspringen\",\n    successMessage: \"Dein Nutzerkonto wurde erfolgreich mit SESAM verknüpft. Du kannst dich ab sofort direkt aus SESAM bei ANTON einloggen.\",\n    errorInvalidToken: \"Fehler, der SESAM-Token konnte nicht verifiziert werden. Bitte versuche es erneut.\",\n    errorAlreadyConnected: \"Fehler, diese SESAM-ID ist bereits mit einem bestehenden Nutzerkonto verknüpft. Bitte versuche dich erneut, mit SESAM einzuloggen.\",\n    errorNotEligiblePupil: \"Es können nur ANTON-Nutzerkonten von Lehrkräften mit einem SESAM-Nutzerkonto verknüpft werden.\",\n    errorNotEligibleTeacherNoSchool: \"Dein ANTON-Nutzerkonto ist noch nicht Mitglied im Schulverzeichnis deiner Schule. Bitte den ANTON-Admin deiner Schule, dich dort aufzunehmen. Danach kannst du dein Nutzerkonto mit deinem SESAM-Nutzerkonto verknüpfen.<br>Falls deine Schule noch keine Schullizenz hat, könnt ihr euch für eine kostenfreie Lizenz registrieren unter https://lp.anton.app/lp/baden-wuerttemberg\",\n    errorNotEligibleTeacherNoDirSchool: \"Deine in ANTON hinterlegte Schule ist noch nicht für die Schullizenz freigeschaltet. Falls deine Schule noch keine Schullizenz hat, könnt ihr euch für eine kostenfreie Lizenz registrieren unter https://lp.anton.app/lp/baden-wuerttemberg\",\n    errorNotEligibleTeacherNoDirTeacher: \"Dein ANTON-Nutzerkonto ist noch nicht Mitglied im Schulverzeichnis deiner Schule. Bitte den ANTON-Admin deiner Schule, dich dort aufzunehmen. Danach kannst du dein Nutzerkonto mit deinem SESAM-Nutzerkonto verknüpfen.\"\n  };\n})();","updated":"2023-02-14T10:44:54.955688"},{"path":"lib/init/deviceCleanup/_writeDummyEvents/write.ls","text":"(function(){\n  return function(){};\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/deviceCleanup/cleanup.ls","text":"(function(){\n  return function(){\n    var ref$, deviceCreatedDate, ref1$, ref2$, todayDate, o, freeSpaceStart, init, deleteOldContentFolders, deleteLogs, onDone;\n    if (((ref$ = deviceLog.findLast(\"deviceCleanupDone\")) != null ? ref$.version : void 8) === 4) {\n      return;\n    }\n    deviceCreatedDate = (ref1$ = deviceLog.findFirst()) != null ? (ref2$ = ref1$.created) != null ? ref2$.toISOString().substring(0, 10) : void 8 : void 8;\n    todayDate = new Date().toISOString().substring(0, 10);\n    if (deviceCreatedDate === todayDate) {\n      return;\n    }\n    o = {};\n    o.logs = {};\n    o.startTime = new Date();\n    freeSpaceStart = 0;\n    init = function(){\n      return inc(\"_getFreeSpace/get\")(function(space){\n        freeSpaceStart = space;\n        inc(\"logStartEvent/log\")(space);\n        return deleteOldContentFolders();\n      });\n    };\n    deleteOldContentFolders = function(){\n      var ref$;\n      if (deviceLog.findLast(\"deviceCleanupDone\") != null || ((ref$ = deviceLog.findFirst()) != null ? ref$.created : void 8) > new Date(\"2019-06-01\") || !engine.isMobileApp) {\n        deleteLogs();\n        return;\n      }\n      return inc(\"deleteOldContentFolders/delete\")(o, deleteLogs);\n    };\n    deleteLogs = function(){\n      var ref$;\n      if (engine.isMobileApp) {\n        return inc(\"deleteOldLogsFromFileSystem/delete\")(o, onDone);\n      } else if (((ref$ = window.indexedDB) != null ? ref$.databases : void 8) != null) {\n        return inc(\"deleteIndexedDBLogs/delete\")(o, onDone);\n      } else {\n        return onDone();\n      }\n    };\n    onDone = function(){\n      return inc(\"_getFreeSpace/get\")(function(space){\n        return inc(\"logFinishEvent/log\")(o, freeSpaceStart, space);\n      });\n    };\n    return setTimeout(init);\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/deviceCleanup/deleteOldContentFolders/delete.ls","text":"(function(){\n  return function(o, onDone){\n    var removeImages, removeSounds, removeSvgs;\n    if (SolocodePlugin.removeDirectory == null) {\n      deviceLog.log({\n        event: \"deviceCleanupAborted\",\n        reason: \"removeDirectory plugin missing\"\n      });\n      onDone();\n      return;\n    }\n    if (deviceLog.findLast(\"deviceCleanupAborted\") != null) {\n      onDone();\n      return;\n    }\n    o.logs.oldContentFiles = {};\n    removeImages = function(){\n      return inc(\"deleteFolder/delete\")(o, \"base64Images\", removeSounds);\n    };\n    removeSounds = function(){\n      return inc(\"deleteFolder/delete\")(o, \"base64Sounds\", removeSvgs);\n    };\n    removeSvgs = function(){\n      return inc(\"deleteFolder/delete\")(o, \"svgs\", onDone);\n    };\n    return removeImages();\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/idle/showOverlay/overlays/multiRemember/overlay.ls","text":"(function(){\n  return function(o){\n    var userDescription;\n    userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    return inc(\"../_shared/overlay/overlay\")().append(Div().css({\n      width: \"20em\",\n      maxWidth: \"90%\",\n      padding: \"1em\",\n      textAlign: \"center\",\n      borderRadius: \"1em\"\n    }).append(inc(\"avatar/avatar\")(userDescription), inc(\"text/text\")(userDescription), inc(\"../_shared/buttonExit/button\")(o), inc(\"../_shared/buttonContinue/button\")(o)));\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/idle/showOverlay/overlays/dontRemember/avatar/avatar.ls","text":"(function(){\n  return function(userDescription){\n    return inc(\"/lib/gui/avatar/avatar\")(userDescription, \"half\").css({\n      display: \"block\",\n      margin: \"0 auto\",\n      width: \"5em\",\n      height: \"5em\",\n      borderRadius: \"999px\",\n      filter: 'drop-shadow(0 0 0.5em rgba(0, 0, 0, 0.2))'\n    });\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/idle/showOverlay/overlays/multiRemember/avatar/avatar.ls","text":"(function(){\n  return function(userDescription){\n    return inc(\"/lib/gui/avatar/avatar\")(userDescription, \"half\").css({\n      display: \"block\",\n      margin: \"0 auto\",\n      width: \"5em\",\n      height: \"5em\",\n      borderRadius: \"999px\",\n      filter: 'drop-shadow(0 0 0.5em rgba(0, 0, 0, 0.2))'\n    });\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/restartIfRequired/logProjectsInfo/checkInconsistentProjectsInfos/check.ls","text":"(function(){\n  return function(e, onDone){\n    var projectsInfo, projectsFile, project, o, o2;\n    projectsInfo = e.projectsInfo;\n    projectsFile = e.projectsFile;\n    if (!projectsFile) {\n      e.projectFileMissing = true;\n      onDone();\n      return;\n    }\n    for (project in projectsInfo) {\n      o = projectsInfo[project];\n      o2 = projectsFile[project];\n      if (!o2 || o.branch !== o2.branch || o.server !== o2.server || o.checksum !== o2.checksum || o.version !== o2.version) {\n        e.inconsistentProjects == null && (e.inconsistentProjects = []);\n        e.inconsistentProjects.push(project);\n      }\n    }\n    if (e.inconsistentProjects != null) {\n      projects.projectStore.save = function(o){\n        return deviceLog.log({\n          event: \"deviceDebugDisabledProjectStoreSave\",\n          params: o\n        });\n      };\n      return inc(\"rebuildProjectsFile/rebuild\")(function(rebuildSuccessful){\n        e.projectsFileRebuild = rebuildSuccessful;\n        return onDone();\n      });\n    } else {\n      return onDone();\n    }\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/restartIfRequired/logProjectsInfo/log.ls","text":"(function(){\n  return function(duration, onDone){\n    if (!engine.isMobileApp || projects.loadProjects != null) {\n      onDone();\n      return;\n    }\n    return app.fileSystem.readFile(\"projects/info.json\", function(error, result){\n      return trySafe(function(){\n        var e;\n        e = {\n          event: \"deviceDebugLogProjectsInfo\",\n          duration: duration,\n          version: 12\n        };\n        try {\n          e.projectsInfo = projects.info();\n          e.projectsFile = JSON.parse(result != null ? result.data : void 8);\n          return inc(\"checkInconsistentProjectsInfos/check\")(e, function(){\n            deviceLog.log(e);\n            return onDone(e);\n          });\n        } catch (e$) {}\n      });\n    });\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/setupAppstore/setup.ls","text":"(function(){\n  return function(){\n    var products, logDebugEvent, onRequested, onCancelled, onApproved, onVerified, onFinished, i$, len$, p;\n    if (engine.isAmazonDevice) {\n      inc(\"setupAmazonAppstore/setup\")();\n      return;\n    }\n    if ((typeof store != 'undefined' && store !== null ? store.CONSUMABLE : void 8) == null) {\n      return;\n    }\n    if (typeof store.resetRegisteredCallbacks == 'function') {\n      store.resetRegisteredCallbacks();\n    }\n    store.transactionsAwaitingVerification == null && (store.transactionsAwaitingVerification = []);\n    products = inc(\"products/products\")();\n    products = _.filter(products, function(p){\n      return !p.isDummy;\n    });\n    logDebugEvent = function(p, event, data){\n      return typeof log != 'undefined' && log !== null ? log.log({\n        event: \"debugPurchase\" + event,\n        sku: p != null ? p.id : void 8,\n        data: data\n      }) : void 8;\n    };\n    onRequested = function(p){\n      return logDebugEvent(p, \"Requested\");\n    };\n    onCancelled = function(p){\n      return logDebugEvent(p, \"Aborted\");\n    };\n    onApproved = function(p){\n      delete p.validationResult;\n      if (!p.transaction) {\n        return;\n      }\n      if (typeof log != 'undefined' && log !== null) {\n        return p.verify();\n      } else if (p.type === store.CONSUMABLE) {\n        return store.transactionsAwaitingVerification.push(p);\n      }\n    };\n    onVerified = function(p){\n      return p.finish();\n    };\n    onFinished = function(p){\n      var ref$;\n      return ref$ = p.validationResult, delete p.validationResult, ref$;\n    };\n    store.resetRegisteredCallbacks = function(){\n      store.off(onRequested);\n      store.off(onCancelled);\n      store.off(onApproved);\n      store.off(onVerified);\n      return store.off(onFinished);\n    };\n    store.validator = inc(\"validate/validate\");\n    for (i$ = 0, len$ = products.length; i$ < len$; ++i$) {\n      p = products[i$];\n      store.register(p);\n      store.when(p.alias).requested(onRequested);\n      store.when(p.alias).cancelled(onCancelled);\n      store.when(p.alias).approved(onApproved);\n      store.when(p.alias).verified(onVerified);\n      store.when(p.alias).finished(onFinished);\n    }\n    return store.refresh();\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/setupAppstore/setupAmazonAppstore/setup.ls","text":"(function(){\n  return function(){\n    var userDataCallbacks, productDataCallbacks, purchaseCallbacks, purchaseUpdatesCallbacks, cachedProductData, getUserDataHandler, getProductDataHandler, purchaseHandler, getPurchaseUpdatesHandler, isReady;\n    if (!engine.isAmazonDevice) {\n      return;\n    }\n    if (window.AmazonIapV2 == null) {\n      return;\n    }\n    userDataCallbacks = {};\n    productDataCallbacks = {};\n    purchaseCallbacks = {};\n    purchaseUpdatesCallbacks = {};\n    cachedProductData = {};\n    getUserDataHandler = function(event){\n      var key$, ref$;\n      event = event.response;\n      if (typeof userDataCallbacks[key$ = event.requestId] == 'function') {\n        userDataCallbacks[key$](event);\n      }\n      return ref$ = userDataCallbacks[key$ = event.requestId], delete userDataCallbacks[key$], ref$;\n    };\n    getProductDataHandler = function(event){\n      var k, ref$, v, key$;\n      event = event.response;\n      for (k in ref$ = event.productDataMap) {\n        v = ref$[k];\n        cachedProductData[k] = v;\n      }\n      if (typeof productDataCallbacks[key$ = event.requestId] == 'function') {\n        productDataCallbacks[key$](event);\n      }\n      return ref$ = productDataCallbacks[key$ = event.requestId], delete productDataCallbacks[key$], ref$;\n    };\n    purchaseHandler = function(event){\n      var key$, ref$;\n      event = event.response;\n      if (typeof purchaseCallbacks[key$ = event.requestId] == 'function') {\n        purchaseCallbacks[key$](event);\n      }\n      return ref$ = purchaseCallbacks[key$ = event.requestId], delete purchaseCallbacks[key$], ref$;\n    };\n    getPurchaseUpdatesHandler = function(event){\n      var key$, ref$;\n      event = event.response;\n      if (typeof purchaseUpdatesCallbacks[key$ = event.requestId] == 'function') {\n        purchaseUpdatesCallbacks[key$](event);\n      }\n      return ref$ = purchaseUpdatesCallbacks[key$ = event.requestId], delete purchaseUpdatesCallbacks[key$], ref$;\n    };\n    AmazonIapV2.addListener(\"getUserDataResponse\", getUserDataHandler);\n    AmazonIapV2.addListener(\"getProductDataResponse\", getProductDataHandler);\n    AmazonIapV2.addListener(\"purchaseResponse\", purchaseHandler);\n    AmazonIapV2.addListener(\"getPurchaseUpdatesResponse\", getPurchaseUpdatesHandler);\n    isReady = false;\n    window.amazonStore = {\n      getUserData: function(cb, onError){\n        return AmazonIapV2.getUserData(function(operationResponse){\n          return userDataCallbacks[operationResponse.requestId] = cb;\n        }, onError);\n      },\n      purchase: function(cb, onError, sku){\n        return AmazonIapV2.purchase(function(operationResponse){\n          return purchaseCallbacks[operationResponse.requestId] = cb;\n        }, onError, [{\n          sku: sku\n        }]);\n      },\n      getProductData: function(cb, onError, skus){\n        var cachedResponse, productDataMap, i$, len$, v;\n        cachedResponse = _.flatMap(skus, function(sku){\n          var that;\n          if (that = cachedProductData[sku]) {\n            return that;\n          } else {\n            return [];\n          }\n        });\n        if (cachedResponse.length === skus.length) {\n          productDataMap = {};\n          for (i$ = 0, len$ = cachedResponse.length; i$ < len$; ++i$) {\n            v = cachedResponse[i$];\n            productDataMap[v.sku] = v;\n          }\n          return cb({\n            productDataMap: productDataMap\n          });\n        } else {\n          return AmazonIapV2.getProductData(function(operationResponse){\n            return productDataCallbacks[operationResponse.requestId] = cb;\n          }, onError, [{\n            skus: skus\n          }]);\n        }\n      },\n      get: function(sku){\n        return cachedProductData[sku];\n      },\n      getPurchaseUpdates: function(cb, onError, reset){\n        return AmazonIapV2.getPurchaseUpdates(function(operationResponse){\n          return purchaseUpdatesCallbacks[operationResponse.requestId] = cb;\n        }, onError, [{\n          reset: reset\n        }]);\n      },\n      notifyFulfillment: function(cb, onError, receiptId){\n        return AmazonIapV2.notifyFulfillment(function(operationResponse){\n          return typeof cb == 'function' ? cb(operationResponse) : void 8;\n        }, onError, [{\n          receiptId: receiptId,\n          fulfillmentResult: \"FULFILLED\"\n        }]);\n      },\n      refresh: function(cb, onError){\n        var products, skus, ref$;\n        products = inc(\"../products/products\")();\n        skus = _.map(products, \"sku\");\n        return (ref$ = window.amazonStore) != null ? ref$.getProductData(function(){\n          isReady = true;\n          return typeof cb == 'function' ? cb() : void 8;\n        }, onError, skus) : void 8;\n      },\n      ready: function(){\n        return isReady;\n      }\n    };\n    amazonStore.refresh(function(){}, function(){});\n    return engine.networkConnection.addConnectionChangeListener(function(isOnline){\n      if (isOnline) {\n        return amazonStore.refresh(function(){}, function(){});\n      }\n    });\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/vanillaInitErrorHandler/button/button.ls","text":"(function(){\n  return function(){\n    var isClicked, click, div, s;\n    isClicked = false;\n    click = function(e){\n      if (isClicked) {\n        return;\n      }\n      isClicked = true;\n      document.body.innerHTML = \"\";\n      inc(\"/lib/init/vanillaSpinner/spinner\")();\n      return location.reload();\n    };\n    div = document.createElement(\"div\");\n    s = div.style;\n    s.padding = \"0.6em\";\n    s.marginTop = \"2em\";\n    s.fontSize = \"17px\";\n    s.lineHeight = \"1.5em\";\n    s.backgroundColor = '#EEE';\n    s.cursor = \"pointer\";\n    s.textAlign = \"center\";\n    div.innerHTML = T(\"tryAgain\");\n    div.addEventListener(\"mousedown\", click);\n    div.addEventListener(\"touchstart\", click);\n    return div;\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/vanillaInitProjectMissing/show.ls","text":"(function(){\n  return function(projectDescriptions){\n    return inc(\"../vanillaInitProjectFailed/show\")(projectDescriptions);\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/repairAndroidLocalStorage/repair.ls","text":"(function(){\n  return function(skip){\n    var deviceLogIds, events, totalLoaded, findDeviceLogIds, loadEvents, onEventsLoaded, finish;\n    deviceLogIds = [];\n    events = [];\n    totalLoaded = 0;\n    findDeviceLogIds = function(){\n      return inc(\"findDeviceLogIds/find\")(loadEvents);\n    };\n    loadEvents = function(foundDeviceLogIds){\n      var i$, len$, deviceLogId, results$ = [];\n      if (foundDeviceLogIds.length === 1) {\n        deviceLog.log({\n          event: \"repairAndroidLocalStorage\",\n          skip: true\n        });\n        return skip();\n      } else {\n        deviceLogIds = foundDeviceLogIds;\n        for (i$ = 0, len$ = deviceLogIds.length; i$ < len$; ++i$) {\n          deviceLogId = deviceLogIds[i$];\n          results$.push(inc(\"loadEvents/load\")(deviceLogId, onEventsLoaded));\n        }\n        return results$;\n      }\n    };\n    onEventsLoaded = function(resultEvents){\n      events = _.concat(events, resultEvents);\n      totalLoaded++;\n      if (totalLoaded === deviceLogIds.length) {\n        return finish();\n      }\n    };\n    finish = function(){\n      var storedLogIds, userLogIds;\n      storedLogIds = inc(\"/lib/util/storedUsers/logIds/logIds\")();\n      userLogIds = inc(\"calcUserLogIds/calc\")(events, storedLogIds);\n      deviceLog.log({\n        event: \"repairAndroidLocalStorage\",\n        deviceLogIds: deviceLogIds,\n        events: events,\n        newUserLogIds: userLogIds,\n        currentUserLogIds: storedLogIds,\n        userAgent: navigator.userAgent\n      });\n      inc(\"/lib/util/storedUsers/removeAll/remove\")();\n      inc(\"/lib/util/storedUsers/addUser/add\")(userLogIds);\n      return setTimeout(function(){\n        return location.reload();\n      }, 800);\n    };\n    if (!engine.isAndroidApp || Store.version === 2 || Store(\"useAuthToken\") || deviceLog.findLast(\"repairAndroidLocalStorage\") != null) {\n      return skip();\n    } else {\n      return findDeviceLogIds();\n    }\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/setupAppstore/validate/validate.ls","text":"(function(){\n  return function(product, callback){\n    var ref$, data, ref1$;\n    if (product.type === \"application\") {\n      callback(true, product);\n      return;\n    }\n    if (!((ref$ = window.log) != null && ref$.id)) {\n      callback(false, {\n        code: store.CONNECTION_FAILED,\n        error: {\n          message: T(\"error\")\n        }\n      });\n      return;\n    }\n    return helpers.httpRequest.post(inc(\"/lib/util/serverUrl/serverUrl\")(\"payment\") + \"/purchase\", data = {\n      logId: log.id(),\n      transactionId: product.transaction.id,\n      receipt64: (ref1$ = product.transaction.receipt) != null\n        ? ref1$\n        : (ref1$ = product.transaction.appStoreReceipt) != null\n          ? ref1$\n          : product.transaction.transactionReceipt,\n      store: product.transaction.type,\n      product: product.id,\n      priceMicros: product.priceMicros,\n      currency: product.currency,\n      countryCode: product.countryCode\n    }, function(error, result){\n      var ref$;\n      if (error != null) {\n        return callback(false, {\n          code: store.CONNECTION_FAILED,\n          error: {\n            message: (ref$ = error != null ? error.message : void 8) != null\n              ? ref$\n              : T(\"error\")\n          }\n        });\n      } else {\n        if (result.status === \"ok\") {\n          product.validationResult = result;\n          return log.sync(function(error){\n            return callback(true, product);\n          });\n        } else {\n          return callback(false, {\n            code: store.INVALID_PAYLOAD,\n            error: {\n              message: \"Non-ok status received from api.\",\n              originalResult: result\n            }\n          });\n        }\n      }\n    });\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/idle/showOverlay/show.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var storedLogIds;\n      storedLogIds = inc(\"/lib/util/storedUsers/logIds/logIds\")();\n      return o.overlay = !_.includes(storedLogIds, log.id())\n        ? inc(\"overlays/dontRemember/overlay\")(o)\n        : storedLogIds.length === 1 || engine.isDebug\n          ? inc(\"overlays/silent/overlay\")(o)\n          : inc(\"overlays/multiRemember/overlay\")(o);\n    };\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/forceCanvasForSpecificDevices/force.ls","text":"(function(){\n  return function(config){\n    var testRenderer, gpuParam, ref$, ref1$, gpu, ref2$, gpuList;\n    return;\n    testRenderer = inc(\"/lib/gui/pixiRenderer/pixiRenderer\")({\n      width: 1,\n      height: 1\n    });\n    gpuParam = testRenderer != null ? (ref$ = testRenderer.gl) != null ? (ref1$ = ref$.getExtension(\"WEBGL_debug_renderer_info\")) != null ? ref1$.UNMASKED_RENDERER_WEBGL : void 8 : void 8 : void 8;\n    if (gpuParam) {\n      gpu = testRenderer != null ? (ref2$ = testRenderer.gl) != null ? ref2$.getParameter(gpuParam) : void 8 : void 8;\n    }\n    if (testRenderer != null) {\n      testRenderer.destroy();\n    }\n    if (gpu == null) {\n      return;\n    }\n    gpuList = [\"Mali-G71\", \"Mali-G72\"];\n    if (_.indexOf(gpuList, gpu) >= 0) {\n      return config.forceCanvas = true;\n    }\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"pages/static/jobs/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../_shared/topbarDeeplink/topbar\")(page, T(\"jobs\"));\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"lib/init/push/push.ls","text":"(function(){\n  return function(){\n    var init, osVersion, ref$, e;\n    if (!engine.isMobileApp) {\n      return;\n    }\n    init = function(){\n      var p;\n      p = PushNotification.init({\n        android: {\n          senderID: engine.gcmSenderId,\n          iconColor: '#A4A8AE',\n          icon: \"notification\"\n        },\n        ios: {\n          alert: \"true\",\n          badge: \"true\",\n          sound: \"true\"\n        }\n      });\n      app.pushNotification = p;\n      p.on(\"registration\", inc(\"registration/registration\"));\n      p.on(\"notification\", inc(\"notification/notification\"));\n      return p.on(\"error\", inc(\"error/error\"));\n    };\n    osVersion = (ref$ = typeof device != 'undefined' && device !== null ? device.version : void 8) != null ? ref$ : 0;\n    if (engine.isAndroidApp && inc(\"/lib/util/compareVersionString/compare\")(osVersion, \"13\") === -1) {\n      return init();\n    } else if (deviceLog.findLast(\"deviceSetPushId\") != null) {\n      return init();\n    } else {\n      e = deviceLog.findLast(\"deviceAskPushPermissioniOs\") || deviceLog.findLast(\"deviceAskPushPermissionAndroid\");\n      if ((e != null ? e.answer : void 8) === \"yes\") {\n        return init();\n      }\n    }\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"pages/static/messageCategory/_t.ls","text":"(function(){\n  return {\n    messageCategoryOff: {\n      de: \"Mail-Benachrichtigungen abbestellen\",\n      en: \"Unsubscribe from notifications\",\n      fr: \"Désactiver les notifications\",\n      es: \"Desactivar notificaciones\",\n      pt: \"Desativar as notificações\"\n    },\n    messageCategoryOn: {\n      de: \"Mail-Benachrichtigungen abonnieren\",\n      en: \"Subscribe to notifications\",\n      fr: \"S’abonner aux notifications\",\n      es: \"Desactivar notificaciones\",\n      pt: \"Ativar as notificações\"\n    },\n    resubscribe: {\n      de: \"Ich möchte mich wieder anmelden\",\n      en: \"I would like to resubscribe.\",\n      fr: \"Je veux me réabonner.\",\n      es: \"Quiero volver a suscribirme.\",\n      pt: \"Quero me inscrever novamente.\"\n    },\n    youHaveUnsubscribed: {\n      de: \"Diese Mail-Benachrichtigungen wurden erfolgreich abbestellt.\",\n      en: \"You have unsubscribed from these email notifications.\",\n      fr: \"L’abonnement à ces notifications par e-mail est confirmé.\",\n      es: \"Desactivaste exitosamente este tipo de notificaciones.\",\n      pt: \"As notificações por e-mail foram desativadas com sucesso.\"\n    },\n    youHaveSubscribed: {\n      de: \"Diese Mail-Benachrichtigungen wurden erfolgreich abonniert.\",\n      en: \"You have subscribed to these email notifications.\",\n      fr: \"Ces notifications par e-mail ont bien été désactivées.\",\n      es: \"Activaste exitosamente este tipo de notificaciones.\",\n      pt: \"Você se inscreveu para receber as notificações por e-mail.\"\n    },\n    hello: {\n      de: \"Hallo $1\",\n      en: \"Hello $1\",\n      fr: \"Bonjour $1\",\n      es: \"Hola $1\",\n      pt: \"Olá $1\"\n    }\n  };\n})();","updated":"2022-10-18T09:48:06.42025"},{"path":"pages/level/reviewOrPreviewPopup/calcReviewScores/calc.ls","text":"(function(){\n  return function(o){\n    var getScoreEvents, assignScoreEventToAtoms;\n    getScoreEvents = function(){\n      return inc(\"getScoreEvents/get\")({\n        events: o.events,\n        publicId: o.publicId,\n        round: o.round,\n        level: o.level,\n        onLoaded: assignScoreEventToAtoms\n      });\n    };\n    assignScoreEventToAtoms = function(scoreEvents, e, round){\n      inc(\"assignScoreEventToAtoms/assign\")(o.level, scoreEvents);\n      return o.onDone(e, round);\n    };\n    return getScoreEvents();\n  };\n})();","updated":"2022-10-20T10:49:09.932899"},{"path":"pages/level/reviewOrPreviewPopup/calcReviewScores/getScoreEvents/get.ls","text":"(function(){\n  return function(o){\n    var e, scoreEvents;\n    if (o.publicId != null) {\n      return inc(\"calcScoreEvents/calc\")(o);\n    } else {\n      e = o.round\n        ? _.find(o.events, function(e2){\n          var ref$;\n          return ((ref$ = e2.event) === \"abortLevel\" || ref$ === \"finishLevel\") && e2.round === o.round;\n        })\n        : _.findLast(o.events, {\n          event: \"finishLevel\"\n        });\n      if (!e) {\n        return o.onLoaded([], null, o.round);\n      } else {\n        o.level.startedAt = new Date(new Date(e.created).getTime() - e.duration * 100);\n        o.level.finishedAt = e.created;\n        if (e.isSkipped) {\n          o.level.isSkipped = true;\n        } else {\n          delete o.level.isSkipped;\n        }\n        scoreEvents = _.cloneDeep(log.list({\n          event: \"score\",\n          levelPuid: o.level.puid,\n          round: e.round\n        }));\n        if (scoreEvents.length === 0) {\n          return inc(\"calcScoreEvents/calc\")(o);\n        } else {\n          o.round = e.round;\n          _.setRandomSeed(o.round);\n          return o.onLoaded(scoreEvents, e, o.round);\n        }\n      }\n    }\n  };\n})();","updated":"2022-10-20T10:49:09.932899"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/rows/slideDiv/slideDiv.ls","text":"(function(){\n  return function(slide, i, p){\n    var popupType;\n    popupType = p.popupType;\n    slide.div = Div({\n      pointerEvents: \"none\"\n    });\n    requestAnimationFrame(function(){\n      if (p.round) {\n        _.setRandomSeed(p.round * 100 + i);\n      }\n      slide.init();\n      if (popupType === \"preview\") {\n        return slide.preview();\n      } else if (popupType === \"review\") {\n        return slide.review();\n      }\n    });\n    return slide.div;\n  };\n})();","updated":"2022-10-20T10:49:09.932899"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_1-3/page.ls","text":"(function(){\n  return function(page){\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      start: function(){\n        var p, submit, input, buttonContinue;\n        p = page.params;\n        submit = function(){\n          buttonContinue.css({\n            pointerEvents: \"none\"\n          });\n          if (typeof buttonSpeech != 'undefined' && buttonSpeech !== null) {\n            buttonSpeech.css({\n              pointerEvents: \"none\"\n            });\n          }\n          input.stop();\n          return setTimeout(function(){\n            inc(\"../00_shared/logRating/log\")({\n              stars: p.stars,\n              feedback: input.getValue()\n            });\n            return startPage({\n              history: function(path){\n                return !_.includes(path, \"/level\");\n              }\n            });\n          }, 300);\n        };\n        page.append(inc(\"text/text\")(), input = inc(\"input/input\")(), Div(), buttonContinue = inc(\"buttonContinue/button\")(submit));\n        return input.start();\n      }\n    };\n  };\n})();","updated":"2023-01-18T12:22:15.419523"},{"path":"lib/util/clipboard/set.ls","text":"(function(){\n  return function(text, done){\n    var ref$, ref1$;\n    if ((typeof cordova != 'undefined' && cordova !== null) && ((ref$ = cordova.plugins) != null && ref$.clipboard)) {\n      cordova.plugins.clipboard.copy(text);\n      return typeof done == 'function' ? done() : void 8;\n    } else if (((ref1$ = navigator.clipboard) != null ? ref1$.writeText : void 8) != null) {\n      return navigator.clipboard.writeText(text).then(function(res){\n        return typeof done == 'function' ? done() : void 8;\n      })['catch'](function(error){\n        return debug(\"Clipboard copy failed\", error);\n      });\n    } else {\n      return typeof done == 'function' ? done('clipboard not supported') : void 8;\n    }\n  };\n})();","updated":"2023-01-18T12:22:15.419523"},{"path":"pages/support/help/faqQuestion/rating/feedbackPopup/popup.ls","text":"(function(){\n  return function(question, onClose){\n    var sendFeedback, div, input, okButton, popup;\n    sendFeedback = function(){\n      onClose(input.getValue());\n      return popup.close();\n    };\n    div = Div({\n      margin: \"1em\"\n    }).html(Div({\n      paddingBottom: \"0.5em\"\n    }).html(T(\"informationNotFound\")), input = inc(\"/lib/gui/inputEditable/input\")({\n      multiline: true,\n      lineHeight: \"1.5em\",\n      linePadding: \"0 0.3em\",\n      maxLength: 500\n    }).css({\n      margin: \"0.5em auto\",\n      height: \"5em\",\n      width: \"95%\"\n    }), okButton = Button(T(\"sendButton\")).css({\n      marginTop: \"1em\"\n    }).tap(sendFeedback));\n    requestAnimationFrame(function(){\n      return input.start();\n    });\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(type){\n        if (type === \"outside\" || type === \"icon\") {\n          return onClose();\n        }\n      }\n    });\n  };\n})();","updated":"2023-01-18T12:22:15.419523"},{"path":"lib/util/clipboard/get.ls","text":"(function(){\n  return function(done){\n    var ref$, ref1$;\n    if ((typeof cordova != 'undefined' && cordova !== null) && ((ref$ = cordova.plugins) != null && ref$.clipboard)) {\n      return cordova.plugins.clipboard.paste(function(text){\n        return done(null, text);\n      });\n    } else if (((ref1$ = navigator.clipboard) != null ? ref1$.readText : void 8) != null) {\n      return navigator.clipboard.readText().then(function(text){\n        return done(null, text);\n      })['catch'](function(error){\n        return debug(\"clipboard paste failed\", error);\n      });\n    } else {\n      return typeof done == 'function' ? done('clipboard not supported') : void 8;\n    }\n  };\n})();","updated":"2023-01-18T12:22:15.419523"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_1-3/input/input.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/gui/inputEditable/input\")({\n      multiline: true,\n      lineHeight: \"1.5em\",\n      linePadding: \"0 0.3em\"\n    }).css({\n      margin: \"1em auto\",\n      minHeight: \"10em\",\n      width: \"20em\",\n      maxWidth: \"90%\"\n    });\n  };\n})();","updated":"2023-01-18T12:22:15.419523"},{"path":"lib/util/loadBlock/loadFromPlan/findBlock/find.ls","text":"(function(){\n  return function(o, plan){\n    var i$, ref$, len$, t, j$, ref1$, len1$, b, b2;\n    for (i$ = 0, len$ = (ref$ = plan.topics).length; i$ < len$; ++i$) {\n      t = ref$[i$];\n      for (j$ = 0, len1$ = (ref1$ = t.blocks).length; j$ < len1$; ++j$) {\n        b = ref1$[j$];\n        if ((o.path != null && o.path === b.path) || (o.puid != null && o.puid === b.puid)) {\n          b2 = _.cloneDeep(b);\n          b2.parentTopic = _.cloneDeep(t);\n          return b2;\n        }\n      }\n    }\n  };\n})();","updated":"2022-10-26T15:43:02.490166"},{"path":"lib/util/isDesktop/isDesktop.ls","text":"(function(){\n  return function(){\n    var a, isDesktop;\n    a = navigator.userAgent.toLowerCase();\n    isDesktop = _.includes(a, \"android\") || _.includes(a, \"ipad\") || _.includes(a, \"iphone\")\n      ? false\n      : navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1 ? false : true;\n    return isDesktop;\n  };\n})();","updated":"2022-10-26T15:43:02.490166"},{"path":"addons/topbarGame/header/right/help/help.ls","text":"(function(){\n  return function(o){\n    var div, onClick;\n    if (o.helpButtonHidden) {\n      return Div().css({\n        width: \"1em\"\n      });\n    }\n    div = null;\n    o.updateHelpIcon = function(){\n      return div.css({\n        color: o.gameTextColor\n      });\n    };\n    onClick = function(){\n      return o.showHelp();\n    };\n    return div = Div({\n      flex: \"0 0 auto\",\n      display: \"flex\",\n      paddingRight: \"0.5em\",\n      paddingLeft: \"0.3em\",\n      color: o.gameTextColor\n    }).html(\"?\").tap(onClick).attr({\n      \"aria-label\": T(\"helpButton\"),\n      role: \"button\"\n    });\n  };\n})();","updated":"2023-01-23T11:16:54.801293"},{"path":"lib/util/downloadContentFile/startJob/startJob.ls","text":"(function(){\n  return function(job, onDone){\n    var startedAt, onLoaded, onError;\n    job.fileHash = inc(\"/lib/util/md5/md5\")(job.fileId).substr(0, 10);\n    job.filePath = job.fileFolder + \"/\" + job.fileHash;\n    job.url = inc(\"_shared/calcUrl/calc\")(job);\n    startedAt = new Date();\n    onLoaded = function(){\n      var i$, ref$, len$, j, results$ = [];\n      job.loadDuration = new Date() - startedAt;\n      onDone(job);\n      for (i$ = 0, len$ = (ref$ = job.jobs).length; i$ < len$; ++i$) {\n        j = ref$[i$];\n        results$.push(j.onLoaded(job.fileContent, job));\n      }\n      return results$;\n    };\n    onError = function(error){\n      var errorDescription, i$, ref$, len$, j, results$ = [];\n      job.loadDuration = new Date() - startedAt;\n      onDone(job);\n      errorDescription = {\n        error: error,\n        fileId: job.fileId,\n        fileFolder: job.fileFolder,\n        fileApi: job.fileApi,\n        filePath: job.filePath,\n        etag: job.etag,\n        responseEtag: job.responseEtag,\n        loadDuration: job.loadDuration\n      };\n      for (i$ = 0, len$ = (ref$ = job.jobs).length; i$ < len$; ++i$) {\n        j = ref$[i$];\n        results$.push(j.onError(errorDescription));\n      }\n      return results$;\n    };\n    if (!job.fileFolder) {\n      debug(\"fileFolder missing \" + job.fileId);\n      return onError(\"fileFolder missing\");\n    } else if (job.calcDetailsOnly) {\n      return onLoaded();\n    } else if (!engine.isMobileApp) {\n      return inc(\"web/start\")(job, onLoaded, onError);\n    } else if (job.etag === \"latest\") {\n      return inc(\"mobileEtagLatest/start\")(job, onLoaded, onError);\n    } else if (job.etag === \"any\") {\n      return inc(\"mobileEtagAny/start\")(job, onLoaded, onError);\n    } else if (_.includes(job.etag, \"-\")) {\n      return inc(\"mobileEtagExact/start\")(job, onLoaded, onError);\n    } else {\n      debug(\"etag property missing \" + job.fileId);\n      return onError(\"etag property missing\");\n    }\n  };\n})();","updated":"2023-01-24T12:07:16.05181"},{"path":"lib/util/survey/survey.ls","text":"(function(){\n  return function(p){\n    var spinner, project;\n    p.surveyId = _.nth(p.surveyPath.split(\"/\"), -2);\n    p.checkDoneEvents == null && (p.checkDoneEvents = true);\n    p.logEvents == null && (p.logEvents = true);\n    if (_.isFunction(p.startCondition) && p.startCondition() !== true) {\n      p.onEnded(\"startConditionFailed\");\n      return;\n    }\n    if (!inc(\"../isOnline/isOnline\")()) {\n      p.onEnded(\"offline\");\n      return;\n    }\n    if (p.checkDoneEvents) {\n      if (log.findLast(\"surveyCompleted_\" + p.surveyId) || log.findLast(\"surveySkipped_\" + p.surveyId)) {\n        p.onEnded(\"alreadyDone\");\n        return;\n      }\n    }\n    spinner = inc(\"/lib/gui/spinnerOverlay/overlay\")(void 8, false, false);\n    project = {\n      name: \"app01-surveys\",\n      timeout: \"8, 8\"\n    };\n    return inc(\"../loadProject/load\")(project, function(){\n      var f, e;\n      spinner.remove();\n      f = inc(p.surveyPath, {\n        silentError: true\n      });\n      if (!_.isFunction(f)) {\n        log.log({\n          event: e = \"debugSurveyLoadProjectFailed\",\n          surveyId: p.surveyPath\n        });\n        debug(\"invalid surveyPath: \" + p.surveyPath);\n        return p.onEnded(\"loadFailed\");\n      } else {\n        return f(p);\n      }\n    });\n  };\n})();","updated":"2023-01-24T12:07:16.05181"},{"path":"addons/topbarLevel/progressBar/playSound/play.ls","text":"(function(){\n  return function(o, type){\n    var w, s;\n    w = {\n      normal: \"wrong\",\n      preschool: \"wrongPreschool\"\n    };\n    s = {\n      green: \"correct\",\n      red: w[o.progressBarMode],\n      grey: \"correct\"\n    };\n    return inc(\"/lib/util/soundEffectPlay/soundEffectPlay\")(s[type]);\n  };\n})();","updated":"2023-01-25T11:06:06.617717"},{"path":"pages/static/about/_t.ls","text":"(function(){\n  return {\n    imprint: {\n      de: \"Impressum\",\n      en: \"Legal Notice\",\n      fr: \"Mentions légales\",\n      es: \"Menciones legales\",\n      pt: \"Informações legais\"\n    },\n    metaDescription: {\n      de: \"Solocode GmbH, Mehringdamm 61, 10961 Berlin, ANTON wird kofinanziert durch den Europäischen Fonds für regionale Entwicklung.\",\n      en: \"Solocode GmbH, Mehringdamm 61, 10961 Berlin, ANTON is cofinanced by the European Regional Development Fund.\",\n      fr: \"Solocode GmbH, Mehringdamm 61, 10961 Berlin, ANTON est cofinancé par le Fonds européen de développement régional.\",\n      es: \"Solocode GmbH, Mehringdamm 61, 10961 Berlin, ANTON es cofinanciado por el Fondo Europeo de Desarrollo Regional.\",\n      pt: \"Solocode GmbH, Mehringdamm 61, 10961 Berlim, ANTON é co-financiado pelo Fundo Europeu de Desenvolvimento Regional.\"\n    },\n    antonIs: {\n      de: \"ANTON ist eine universelle Lern‐Plattform (Web & Mobile) für Schule und Schüler/innen, die sowohl zum eigenständigen Selbstlernen  als auch zum interaktiven Lernen im Klassenraum‐Kontext eingesetzt werden kann.<br>\",\n      en_gb: \"ANTON is a universal learning platform (web & mobile) for both independent learning and for pupils and schools who want to learn interactively in a classroom setting.<br>\",\n      en: \"ANTON is a universal learning platform (web & mobile) for both independent learning and for students and schools who want to learn interactively in a classroom setting.<br>\",\n      fr: \"ANTON est une plateforme d'apprentissage universelle (web & mobile) conçue à la fois pour les élèves qui souhaitent apprendre de façon indépendante et pour les professeurs qui veulent offrir un apprentissage interactif dans leur classe.<br>\",\n      es: \"ANTON es una plataforma de aprendizaje universal (web & mobile) tanto para estudiantes que quieran aprender de manera independiente y autodidacta, como para docentes que quieran implementar el aprendizaje interactivo en el salón de clases.<br> \",\n      pt: \"ANTON é uma plataforma de aprendizagem universal (web e móvel) tanto para alunos que desejam aprender de forma independente e autodidata, quanto para professores que desejam implementar o aprendizado interativo em sala de aula.<br>\"\n    },\n    coronaInfo: {\n      de: \"Wir erhalten zurzeit täglich sehr viele Anfragen und können deshalb im Moment nicht jede Anfrage zeitnah bearbeiten. Wenn du eine Frage hast, bitte versuche zunächst, eine Lösung in den Häufigen Fragen zu finden. Wenn du dort keine Antwort findest, bitte beschreibe uns möglichst detailliert, wie dein Problem zustande kam und was du beobachten kannst.<br>\",\n      en: \"We are currently receiving many inquiries every day and therefore cannot process every inquiry as quickly as normal. If you have a question, please try to find a solution in our FAQs first. If you can't find an answer there, please send us a message describing the problem with as much detail as possible.<br>\",\n      fr: \"Nous recevons actuellement énormément de demandes et ne pouvons pas répondre aussi rapidement que nous le souhaiterions. Pour toute question, merci de commencer par consulter notre section Aide/FAQ. Si aucune réponse satisfaisante n'est disponible, merci de nous écrire en décrivant le problème en détail.<br>\",\n      es: \"Actualmente, nos están llegando muchos mensajes al día y no podemos procesarlos todos a la velocidad que quisiéramos. Ayúdanos consultando primero las preguntas frecuentes. Si no encuentras una solución ahí, descríbenos tu problema lo más detalladamente posible.<br>\",\n      pt: \"Atualmente, estamos recebendo muitas mensagens por dia e não podemos respondê-las tão rapidamente quanto gostaríamos. Se você tiver alguma dúvida, por favor, tente primeiro encontrar uma solução nas perguntas frequentes. Caso não encontre uma resposta lá, descreva seu problema com o máximo de detalhes possível.<br>\"\n    },\n    solocodeAdress: {\n      de: \"solocode GmbH<br>Mehringdamm 61<br>10961 Berlin<br>support@anton.app<br>030-549091885<br>Geschäftsführer: Lorenz&nbsp;Heine,&nbsp;David&nbsp;Hörmeyer<br>Amtsgericht Berlin-Charlottenburg: HRB&nbsp;179956&nbsp;B<br>UST ID: DE308493342 Berlin<br>\",\n      en: \"solocode GmbH<br>Mehringdamm 61<br>10961 Berlin<br>support@anton.app<br>Managing Directors: Lorenz&nbsp;Heine,&nbsp;David&nbsp;Hörmeyer<br>District Court Berlin-Charlottenburg: HRB&nbsp;179956&nbsp;B<br>VAT ID: DE308493342 Berlin<br>\",\n      fr: \"solocode GmbH<br>Mehringdamm 61<br>10961 Berlin<br>support@anton.app<br>Dirigeants&nbsp;: Lorenz&nbsp;Heine,&nbsp;David&nbsp;Hörmeyer<br>Registre du commerce Berlin-Charlottenburg&nbsp;: HRB&nbsp;179956&nbsp;B<br>N° de TVA&nbsp;: DE308493342 Berlin<br>\",\n      es: \"solocode GmbH<br>Mehringdamm 61<br>10961 Berlin<br>support@anton.app<br>Directores ejecutivos: Lorenz&nbsp;Heine,&nbsp;David&nbsp;Hörmeyer<br>Registro mercantil/Amtsgericht Berlin-Charlottenburg: HRB&nbsp;179956&nbsp;B<br>VAT ID: DE308493342 Berlin<br>\",\n      pt: \"solocode GmbH<br>Mehringdamm 61<br>10961 Berlim<br>support@anton.app<br>Diretores executivos: Lorenz&nbsp;Heine,&nbsp;David&nbsp;Hörmeyer<br>Registro mercantil/Amtsgericht Berlin-Charlottenburg: HRB&nbsp;179956&nbsp;B<br>VAT ID: DE308493342 Berlin<br>\"\n    },\n    antonProjectDescription: {\n      de: \"Das Projekt „ANTON – Lernplattform für die Schule“ wird kofinanziert durch den Europäischen Fonds für regionale Entwicklung&nbsp;(EFRE).\",\n      en: \"The project “ANTON - the learning platform for school” is cofinanced by the European Regional Development Fund&nbsp;(ERDF).\",\n      fr: \"Le projet “ANTON - la plateforme d'apprentissage pour l'école” est co-financé par le Fonds européen de développement régional&nbsp;(FEDER).\",\n      es: \"“ANTON - La plataforma de aprendizaje para la escuela” es un proyecto cofinanciado por el Fondo Europeo de Desarrollo Regional&nbsp;(FEDER).\",\n      pt: \"O projeto “ANTON - A plataforma de aprendizagem para a escola” é co-financiado pelo Fundo Europeu de Desenvolvimento Regional&nbsp;(FEDER).\"\n    },\n    imprintUrl: {\n      de: \"impressum\",\n      en: \"legal-notice\",\n      fr: \"mentions-legales\",\n      es: \"menciones-legales\",\n      pt: \"informacoes-legais\"\n    },\n    euInfo1: {\n      de: \"Die Europäische Kommission stellt eine Plattform für die außergerichtliche Online-Streitbeilegung&nbsp;(OS-Plattform) bereit, aufrufbar unter \",\n      en: \"The EU-Commission offers a platform for online dispute resolution&nbsp;(ODR) at \",\n      fr: \"La Commission européenne offre une plateforme européenne de règlement en ligne des litiges&nbsp;(RLL) à \",\n      es: \"La Comisión Europea ofrece una plataforma de resolución de litigios en línea&nbsp;(RLL) en \",\n      pt: \"A Comissão Europeia fornece uma plataforma para resolução de litígios online&nbsp;(plataforma RLL), disponível em \"\n    },\n    euInfo2: {\n      de: \"Der Anbieter nimmt an keinem Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle im Sinne des Verbraucherstreitbeilegungsgesetzes teil.\",\n      en: \"The provider does not take part in any dispute settlement proceedings before a consumer arbitration board within the meaning of the Consumer Dispute Settlement Act.\",\n      fr: \"Le fournisseur ne participe à aucune procédure de règlement des différends devant un conseil d'arbitrage de consommation au sens de la loi sur le règlement des différends de consommation.\",\n      es: \"El proveedor no participará en ningún procedimiento de resolución de disputas ante una audiencia de consumidores, conforme a la Ley de resolución de disputas de consumidores.\",\n      pt: \"O provedor não participa de nenhum procedimento de solução de controvérsias perante o conselho de arbitragem de consumidores, de acordo com a Lei de Solução de Controvérsias do Consumidor.\"\n    }\n  };\n})();","updated":"2024-04-23T09:55:49.362153"},{"path":"addons/topbarLevel/progressBar/updateElementsWidth/normal/normal.ls","text":"(function(){\n  return function(o, elements, noTransition){\n    var segmentWidth, i$, len$, el, w, results$ = [];\n    segmentWidth = 100 / o.totalProgressElements;\n    for (i$ = 0, len$ = elements.length; i$ < len$; ++i$) {\n      el = elements[i$];\n      w = el.count * segmentWidth;\n      if (el.currentWidth !== w) {\n        el.currentWidth = w;\n        results$.push(el.css({\n          width: w + \"%\",\n          transition: !noTransition ? \"width 300ms\" : void 8\n        }));\n      }\n    }\n    return results$;\n  };\n})();","updated":"2023-01-25T11:06:06.617717"},{"path":"addons/topbarLevel/progressBar/updateElementsWidth/preschool/preschool.ls","text":"(function(){\n  return function(o, elements, noTransition){\n    var segmentWidth, i$, len$, el, w, results$ = [];\n    segmentWidth = 100 / (o.totalProgressElements - o.totalRed);\n    for (i$ = 0, len$ = elements.length; i$ < len$; ++i$) {\n      el = elements[i$];\n      w = el.count * segmentWidth;\n      if (el.currentWidth !== w) {\n        el.currentWidth = w;\n        if (el.type === \"red\") {\n          results$.push(el.css({\n            visibility: \"hidden\"\n          }));\n        } else {\n          results$.push(el.css({\n            width: w + \"%\",\n            transition: !noTransition ? \"width 300ms\" : void 8\n          }));\n        }\n      }\n    }\n    return results$;\n  };\n})();","updated":"2023-01-25T11:06:06.617717"},{"path":"addons/topbarLevel/progressBar/updateElementsWidth/update.ls","text":"(function(){\n  return function(o, elements, noTransition){\n    var m;\n    m = o.progressBarMode;\n    return setTimeout(function(){\n      if (m === \"normal\") {\n        return inc(\"normal/normal\")(o, elements, noTransition);\n      } else if (m === \"preschoolShape\") {\n        return inc(\"preschool/preschool\")(o, elements, noTransition);\n      }\n    });\n  };\n})();","updated":"2023-01-25T11:06:06.617717"},{"path":"pages/start/startUser/06_loadPlansList/logPlansListError/log.ls","text":"(function(){\n  return function(error){\n    return log.log({\n      event: \"debugStartUserLoadPlansListFailed\",\n      error: error\n    });\n  };\n})();","updated":"2023-01-24T16:41:58.386953"},{"path":"pages/static/pixelPaintImageShared/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: \"pixelPaintImage/\" + page.imageId,\n      title: T(\"pixelpaintImage\"),\n      metaDescription: \"\",\n      noIndex: true\n    };\n  };\n})();","updated":"2023-04-13T16:19:22.120911"},{"path":"pages/misc/askPushPermissioniOs/buttons/buttons.ls","text":"(function(){\n  return function(backPage){\n    var backParams, ref$, tap, css;\n    backParams = {\n      animation: backPage != null ? backPage.animation : void 8,\n      history: _.isString(backPage != null ? backPage.history : void 8)\n        ? function(path){\n          return !_.includes(path, backPage.history) && !_.includes(path, _.dropRight(THISFILE.split(\"/\"), 2).join(\"/\"));\n        }\n        : (ref$ = backPage != null ? backPage.history : void 8) != null\n          ? ref$\n          : -1\n    };\n    tap = function(answer){\n      inc(\"log/log\")(answer);\n      if (answer === \"yes\") {\n        inc(\"/lib/init/push/push\")();\n      }\n      return startPage(backParams);\n    };\n    return Div({\n      display: \"flex\"\n    }).html(Button(T(\"no\")).css(css = {\n      margin: \"0.5em\",\n      minWidth: \"5em\"\n    }).tap(function(){\n      return tap(\"no\");\n    }), Button(T(\"yes\")).css(css).tap(function(){\n      return tap(\"yes\");\n    }));\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"pages/misc/askPushPermissioniOs/buttons/log/log.ls","text":"(function(){\n  return function(answer){\n    var deviceEventName, debugEventName;\n    deviceEventName = engine.isiOsApp ? \"deviceAskPushPermissioniOs\" : \"deviceAskPushPermissionAndroid\";\n    deviceLog.log({\n      event: deviceEventName,\n      answer: answer,\n      userPublicId: inc(\"/data/user/calcUserDescription/calc\")().publicId\n    });\n    debugEventName = engine.isiOsApp ? \"debugDeviceAskPushPermissioniOs\" : \"debugDeviceAskPushPermissionAndroid\";\n    return log.log({\n      event: debugEventName,\n      answer: answer\n    });\n  };\n})();","updated":"2023-01-25T14:41:39.996027"},{"path":"pages/static/cancelDeletionDirAdmin/03_email/skipLink/link.ls","text":"(function(){\n  return function(onDone){\n    return inc(\"/lib/gui/link/link\")({\n      label: T(\"notNow\")\n    }).css({\n      marginLeft: \"0.5em\",\n      marginTop: \"1em\"\n    }).tap(onDone);\n  };\n})();","updated":"2023-11-28T09:46:34.176923"},{"path":"pages/static/cancelDeletionDirAdmin/03b_password/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"../00_shared/topbar/topbar\")();\n      },\n      start: function(){\n        var onDone, submit, form;\n        onDone = function(){\n          return inc(\"../04_cancelDeletion/start\")();\n        };\n        submit = function(){\n          return inc(\"submit/submit\")(form, onDone);\n        };\n        page.html(form = inc(\"/lib/gui/inputForm/inputForm\")({\n          label: T(\"inputPassword\"),\n          isPassword: true,\n          submitLabel: T(\"continueButton\"),\n          submit: submit,\n          cancel: false,\n          forceShowButtons: true\n        }), inc(\"../00_shared/linkBack/link\")());\n        return form.input.start();\n      }\n    };\n  };\n})();","updated":"2023-11-28T09:46:34.176923"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/button/button.ls","text":"(function(){\n  return function(o){\n    var click;\n    click = function(){\n      var ref$;\n      return (ref$ = app.currentPopup) != null ? ref$.close() : void 8;\n    };\n    return Div({\n      flex: \"0 0 auto\",\n      borderTop: \"1px solid \" + Color.grey[300],\n      background: Color.white,\n      marginTop: \"-2px\"\n    }).html(Button({\n      label: T(\"closeButton\")\n    }).css({\n      flex: \"0 0 2em\",\n      margin: \"0.5em 0 1em\"\n    }).tap(click));\n  };\n})();","updated":"2023-11-28T09:46:34.176923"},{"path":"pages/static/cancelDeletionDirAdmin/04_cancelDeletion/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"../00_shared/topbar/topbar\")();\n      },\n      start: function(){\n        var spinner, cancelDeletion, onDone, onError;\n        spinner = null;\n        cancelDeletion = function(){\n          spinner = inc(\"/lib/gui/spinnerDivOverlay/overlay\")(this);\n          return inc(\"cancelDeletion/cancel\")(onDone, onError);\n        };\n        onDone = function(loginCode){\n          return inc(\"../04_showLoginCodeAndFinish/start\")(loginCode);\n        };\n        onError = function(error){\n          spinner.stop();\n          if (error.message === \"no markForDelete found\") {\n            return onDone();\n          } else if (error === \"offline\") {\n            return inc(\"/lib/offline/offlinePopup/popup\")();\n          } else {\n            return inc(\"/lib/gui/errorPopup/popup\")();\n          }\n        };\n        return page.html(Div({\n          maxWidth: \"25em\",\n          lineHeight: \"1.7em\",\n          margin: \"0 auto 1em\"\n        }).html(T(\"exportAndDeleteNow\")), Button(T(\"yesComplete\")).tap(cancelDeletion));\n      }\n    };\n  };\n})();","updated":"2023-11-28T09:46:34.176923"},{"path":"pages/static/cancelDeletionDirAdmin/03b_password/submit/submit.ls","text":"(function(){\n  return function(form, onPageComplete){\n    var password, onOffline;\n    password = form.input.getValue();\n    if (password === \"\") {\n      form.error.html(T(\"emptyPassword\"));\n      form.input.start();\n      return;\n    }\n    form.showSpinner();\n    onOffline = function(){\n      form.input.start();\n      form.hideSpinner();\n      return inc(\"/lib/offline/offlinePopup/popup\")();\n    };\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/user/setPassword/set\"),\n      params: {\n        password: password,\n        logId: log.id()\n      },\n      onCompleted: function(result){\n        var message;\n        if (result.status !== \"ok\") {\n          form.hideSpinner();\n          message = result.status === \"error_invalid_length\"\n            ? T(\"errorInvalidLength\", result.count)\n            : result.status === \"error_invalid_length\"\n              ? T(\"errorInvalidCharacter\", result.character)\n              : T(\"errorMessage\");\n          return form.error.html(message);\n        } else {\n          return log.sync(function(error){\n            if (error) {\n              return onOffline();\n            } else {\n              return onPageComplete();\n            }\n          });\n        }\n      },\n      onError: function(error){\n        form.error.html(T(\"errorMessage\"));\n        return form.hideSpinner();\n      },\n      onOffline: onOffline\n    });\n  };\n})();","updated":"2023-11-28T09:46:34.176923"},{"path":"lib/gui/sectionTitle/sectionTitle.ls","text":"(function(){\n  return function(label){\n    return Div({\n      padding: \"2em 0 1em\",\n      fontWeight: \"bold\"\n    }).html(label);\n  };\n})();","updated":"2023-11-28T09:46:34.176923"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/rows/rowNoData/row.ls","text":"(function(){\n  return function(){\n    return Div({\n      marginTop: \"0.8em\",\n      paddingBottom: \"0.8em\",\n      borderBottom: \"1px solid \" + Color.grey[300]\n    }).html(T(\"noHighscoreData\"));\n  };\n})();","updated":"2023-11-28T09:46:34.176923"},{"path":"data/user/calcWeeklySpecialData/calcAssistantName/calc.ls","text":"(function(){\n  return function(){\n    var assistantName, ref$, debugVar, currentAssistants, assistant;\n    assistantName = typeof log != 'undefined' && log !== null ? (ref$ = log.findLast(\"assistantTest\")) != null ? ref$.assistantName : void 8 : void 8;\n    debugVar = deviceLog['var'](\"enableMathWeeklySpecial\");\n    if (!assistantName && debugVar && debugVar !== \"none\") {\n      currentAssistants = inc(\"../_getCurrentAssistants/get\")();\n      assistant = _.find(currentAssistants, function(assistant){\n        return _.includes(assistant.assistantName, debugVar);\n      });\n      if (assistant) {\n        assistantName = assistant.assistantName;\n      }\n    }\n    return assistantName;\n  };\n})();","updated":"2025-03-26T10:56:13.302131"},{"path":"addons/navbar/bar/user/user/items/itemMathWeeklySpecial/item.ls","text":"(function(){\n  return function(){\n    var weeklySpecialData;\n    weeklySpecialData = inc(\"/data/user/calcWeeklySpecialData/calc\")();\n    if (!weeklySpecialData.isInvited) {\n      return;\n    }\n    if (weeklySpecialData.status === \"hidden\" && (!deviceLog['var'](\"enableMathWeeklySpecial\") || deviceLog['var'](\"enableMathWeeklySpecial\") === \"none\")) {\n      return;\n    }\n    if (weeklySpecialData.status === \"not started\") {\n      inc(\"logInviteShownEvent/log\")(weeklySpecialData.assistantName);\n    }\n    return {\n      badge: function(){\n        return inc(\"badge/badge\")();\n      },\n      click: function(){\n        return inc(\"tap/tap\")(weeklySpecialData.assistantName);\n      },\n      label: inc(\"label/label\")(weeklySpecialData)\n    };\n  };\n})();","updated":"2025-03-26T10:56:13.302131"},{"path":"pages/misc/timeline/topbar/topbarRightCustom/topbarRightCustom.ls","text":"(function(){\n  return function(page){\n    var tap;\n    if (!_.includes(app.currentPagePath, \"timeline\")) {\n      return;\n    }\n    tap = function(){\n      var ref$;\n      return (ref$ = page.timelineDiv) != null ? ref$.openPrintPopup() : void 8;\n    };\n    return Div({\n      fontSize: \"0.9em\",\n      color: Color.blue[600],\n      padding: \"0.1em 0.7em 0.1em 0\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/print.svg\"),\n      size: \"0.8em\",\n      color: Color.blue[600]\n    }).css({\n      marginRight: \"0.2em\"\n    }), T(\"print\")).tap({\n      up: tap,\n      tapZone: \"0.5em 0\"\n    });\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/svg/iconModern/rotate-image.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M55.9 19.17a8 8 0 0 1 8 8v40.46a8 8 0 0 1-8 8H15.47a8 8 0 0 1-8-8V27.17a8 8 0 0 1 8-8zM15.47 67.63H55.9V27.17H15.46zM67.58 4.32a19.6 19.6 0 0 1 19.6 19.6v3h6.02c.8 0 1.3.88.89 1.57l-9.07 15.25c-.4.68-1.38.68-1.79 0L74.16 28.5c-.41-.69.09-1.56.9-1.56h6.13v-3c0-7.52-6.1-13.61-13.6-13.61h-2.36a3 3 0 1 1 0-6z\"/>\n</svg>","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/svg/iconModern/zoom-in.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M41 10a30 30 0 0 1 23.2 49.02L84.34 78.9a4 4 0 1 1-5.62 5.7l-20.4-20.12A30 30 0 1 1 41 10m0 8a22 22 0 1 0 0 44 22 22 0 0 0 0-44m0 6a4 4 0 0 1 4 4v8h8a4 4 0 0 1 0 8h-8v8a4 4 0 0 1-8 0v-8h-8a4 4 0 0 1 0-8h8v-8a4 4 0 0 1 4-4\"/>\n</svg>","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/svg/iconModern/zoom-out.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M41 10a30 30 0 0 1 23.2 49.02L84.34 78.9a4 4 0 1 1-5.62 5.7l-20.4-20.12A30 30 0 1 1 41 10m0 8a22 22 0 1 0 0 44 22 22 0 0 0 0-44m12 18a4 4 0 0 1 0 8H29a4 4 0 0 1 0-8z\"/>\n</svg>","updated":"2025-10-15T11:09:00.606796"},{"path":"pages/static/antonPlus/1_products/_topbar/_t.ls","text":"(function(){\n  return {\n    textDPA: {\n      de: \"Du kannst mit diesem Nutzerkonto nicht ANTON-Plus kaufen.\",\n      en: \"You cannot purchase ANTON Plus with this account.\",\n      fr: \"Tu ne peux pas acheter ANTON-Plus avec ce compte.\",\n      es: \"No puedes comprar ANTON-Plus con esta cuenta.\",\n      pt: \"Você não pode comprar ANTON-Plus com esta conta.\"\n    },\n    textPlusSchool: {\n      de: \"Dein Nutzerkonto hat schon ANTON-Plus über deine Schule.\",\n      en: \"Your account already has ANTON Plus through your school.\",\n      fr: \"Ton compte a déjà ANTON-Plus grâce à ton école.\",\n      es: \"Tu cuenta ya ha adquirido ANTON-Plus a través de tu escuela.\",\n      pt: \"Sua conta já adquiriu ANTON-Plus através da sua escola.\"\n    }\n  };\n})();","updated":"2023-01-26T11:14:16.228507"},{"path":"pages/static/antonPlus/1_products/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      close: true,\n      title: T(\"antonPlusNoBreak\")\n    }).append(page.userDescription.isPlusSchoolMember\n      ? inc(\"info/info\")(T(\"textPlusSchool\"))\n      : page.userDescription.isDPASchoolMember ? inc(\"info/info\")(T(\"textDPA\")) : void 8);\n  };\n})();","updated":"2023-01-26T11:14:16.228507"},{"path":"lib/svg/subjects/life.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#BA68C8\" d=\"M251.1 147.2 263 178c.8 2 .7 4.2-.5 6a6.4 6.4 0 0 1-5 3l-11 1.8a2.8 2.8 0 0 0-2.4 2.4l-3.5 35.4c-.6 5.6-5 10-10.8 10.3-11 .5-35 .3-42-.8l-7.4 28.6a2 2 0 0 1-2 1.6H91.8a2 2 0 0 1-1.5-.8 2 2 0 0 1-.3-1.8c8.8-27.8 17.7-48.7 3.4-68.2-9-12.6-23.8-33.6-23.8-58.9A90.1 90.1 0 0 1 166.7 46a88.5 88.5 0 0 1 56.8 26.5 89 89 0 0 1 25.7 57.3 47 47 0 0 1-.3 8 18 18 0 0 0 2.2 9.4Z\" opacity=\".8\"/>\n  <path fill=\"#E1BEE7\" d=\"m238.5 141.5 11.7 26.4c.8 2 .7 4-.4 5.8-1.1 1.7-3 2.8-5 2.9l-10.9 1.7a2.7 2.7 0 0 0-2.2 2.3l-3.6 34a11 11 0 0 1-10.5 9.9c-11 .6-34.5.3-41.5-.7l-7.8 28.9a2 2 0 0 1-1.8 1.5H85.9c-.6 0-1.2-.3-1.6-.8-.3-.5-.4-1-.2-1.7 8.7-26.8 9.6-47.4-4.5-66.2-8.8-12.1-20.6-30-20.6-54.2 0-24.3 9.9-46.9 27.9-63.5a89.1 89.1 0 0 1 67.7-23.6 90 90 0 0 1 56.7 25.5c15 14.8 24 34.4 25.3 55.1.1 2.3 0 4.7-.3 7.7-.3 3.3.8 6 2.2 9Z\"/>\n  <mask id=\"a\" width=\"114\" height=\"102\" x=\"105\" y=\"18\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#FF1744\" fill-rule=\"evenodd\" d=\"M218.2 49.1v5.2l-.2 1.1a44.4 44.4 0 0 1-5.3 16.2c-2.3 4-5 7.7-8 11.1-3.9 4.6-8 8.9-12.5 12.8-4 3.7-8.1 6.4-12.4 9.7-5.6 4.4-13.1 9.3-18.9 13.5a1 1 0 0 1-1.4 0c-5-3.6-8.7-7.2-13.6-11-5.2-4.1-10.2-8.4-15.2-12.8-6.3-5.6-12-11.8-17-18.7a44.7 44.7 0 0 1-7.6-17.4 56 56 0 0 1-.9-4.3v-5.4l.2-.9c.5-2.3.8-4.6 1.5-7 2.4-7.6 7.6-15 14.4-18.8a30 30 0 0 1 21.2-3.9 46.1 46.1 0 0 1 22.3 15.2l3.1-3.2C173.8 25 178.1 19 186.2 19a32.4 32.4 0 0 1 31 24.8c.5 1.7.7 3.6 1 5.4Z\" clip-rule=\"evenodd\"/>\n  </mask>\n  <g mask=\"url(#a)\">\n    <path fill=\"#880E4F\" fill-rule=\"evenodd\" d=\"M222 45.4V51l-.2 1.2a50 50 0 0 1-5.6 17.8 83.2 83.2 0 0 1-8.6 12.3c-4.1 5-8.6 9.7-13.3 14.1-4.3 4-8.7 8-13.2 11.5-6 4.9-12.3 9.4-18.5 14a1 1 0 0 1-1.5 0c-5.4-4-11-7.8-16.2-12.1-5.5-4.5-10.8-9.3-16.2-14.1-6.7-6.1-12.8-13-18-20.6-4-5.7-6.8-12.2-8.2-19.2l-1-4.7v-6l.2-1c.6-2.5.9-5 1.7-7.6 2.5-8.5 8-15.6 15.3-20a32.7 32.7 0 0 1 42.1 7.4c.3.3.5.7.6 1.1l3.4-3.5a32.9 32.9 0 0 1 23-9.7c8.6 0 16.9 3.4 23.2 9.6a36 36 0 0 1 10 17.7l1 6Z\" clip-rule=\"evenodd\"/>\n  </g>\n  <path fill=\"#F50057\" fill-rule=\"evenodd\" d=\"M209.9 47.6v5l-.2 1a41.5 41.5 0 0 1-5.2 15.4c-2.3 3.8-5 7.4-8 10.7a128 128 0 0 1-12.2 12.2c-4 3.5-8 6.9-12.2 10-5.6 4.2-11.4 8.1-17 12.2a1 1 0 0 1-1.4 0c-5-3.5-10.1-6.9-15-10.6-5-3.9-10-8-14.9-12.2a108.6 108.6 0 0 1-16.7-17.8 42 42 0 0 1-7.5-16.7l-.9-4v-5.2l.2-.8c.5-2.2.8-4.5 1.5-6.7a30.3 30.3 0 0 1 14.2-17.3c6.2-3.6 13.6-5 20.8-3.6 7 1.1 13.3 4.7 18 10l.6 1 3-3A31.3 31.3 0 0 1 209 42.4l1 5.2Z\" clip-rule=\"evenodd\"/>\n  <mask id=\"b\" width=\"112\" height=\"97\" x=\"98\" y=\"18\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#F50057\" fill-rule=\"evenodd\" d=\"M209.9 47.6v5l-.2 1a41.5 41.5 0 0 1-5.2 15.4c-2.3 3.8-5 7.4-8 10.7a128 128 0 0 1-12.2 12.2c-4 3.5-8 6.9-12.2 10-5.6 4.2-11.4 8.1-17 12.2a1 1 0 0 1-1.4 0c-5-3.5-10.1-6.9-15-10.6-5-3.9-10-8-14.9-12.2a108.6 108.6 0 0 1-16.7-17.8 42 42 0 0 1-7.5-16.7l-.9-4v-5.2l.2-.8c.5-2.2.8-4.5 1.5-6.7a30.3 30.3 0 0 1 14.2-17.3c6.2-3.6 13.6-5 20.8-3.6 7 1.1 13.3 4.7 18 10l.6 1 3-3A31.3 31.3 0 0 1 209 42.4l1 5.2Z\" clip-rule=\"evenodd\"/>\n  </mask>\n  <g mask=\"url(#b)\">\n    <ellipse cx=\"143.6\" cy=\"33.9\" fill=\"#FCE4EC\" opacity=\".3\" rx=\"50.5\" ry=\"56.9\" transform=\"rotate(40 143.6 34)\"/>\n  </g>\n  <path fill=\"#fff\" d=\"M134.6 29c3.8.4 7.3 2 10.2 4a31 31 0 0 0-30 30.8 21.5 21.5 0 0 1 19.8-34.9Z\" opacity=\".8\"/>\n  <path fill=\"#4A148C\" fill-rule=\"evenodd\" d=\"M92.9 95.5c1.4 1 5.4 2.6 7 3.6v11.1L111 118l3-7.8 7.1 3.5 9.2 16.5-9.2 6.7 1 13.8 3.6 1.8 6.4 3.6-7 17.3-11-3-10.1 9.4L106 191l-18.7 5.7-6.1-4.2 2.4-6.6-13.7-2-8.2 8.2-6.1-4-3.2-16.5-6.8-12-12.2-.3-6-4 5.5-14.8 11.3-2.2 5-12.8-6.5-9.2 11.2-11.7 8.6 7.3 15.7-4.8 3.2-11 11.5-.6ZM80.8 129a19 19 0 1 0 0 37.9 19 19 0 0 0 0-37.9Z\" clip-rule=\"evenodd\" opacity=\".9\"/>\n  <path fill=\"#9C27B0\" d=\"m92.9 95.4-.5 11.4 11.3 7.8 10.5-4.4 9.1 16.2-9 6.7.8 13.7 10 5.5-7 17.2-10.9-3-10 9.3L99 187l-17.8 5.3-4.5-10.4-13.6-2-7.5 8.3-15.2-10.5 5.3-10-6.8-12-11.3-.5-1.3-18.6 11.2-2 5-12.9-6.5-9.2L49.7 100l8.5 7.4 13.2-4 3-10.9 18.5 3ZM74.7 125a18.8 18.8 0 1 0 0 37.7 18.8 18.8 0 0 0 0-37.7Z\"/>\n</svg>\n","updated":"2025-09-15T10:34:49.883096"},{"path":"pages/start/login/sesamLogin/_t.ls","text":"(function(){\n  return {\n    sesamLogin: \"SESAM-Login\",\n    errorInvalidToken: \"Fehler, der SESAM-Token konnte nicht verifiziert werden.\",\n    infoRedirectToLogin: \"Um dein ANTON-Nutzerkonto mit SESAM nutzen zu können, logge dich bitte zunächst ein. Anschließend siehst du eine Seite, auf der du dein ANTON-Nutzerkonto mit SESAM verknüpfen kannst.\"\n  };\n})();","updated":"2023-02-14T10:44:54.955688"},{"path":"pages/start/login/sesamLogin/calcData/calc.ls","text":"(function(){\n  return function(){\n    var data;\n    data = inc(\"/lib/util/browser/getPageUrlParam/get\")(\"data\");\n    if (data) {\n      data = decodeURIComponent(data);\n    }\n    inc(\"/lib/util/browser/removePageUrlParams/remove\")();\n    return data;\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"pages/start/login/relogin/02_form/submit/onCompleted/onCompleted.ls","text":"(function(){\n  return function(form){\n    return function(r){\n      var errorMessage;\n      if (r.status !== \"ok\") {\n        form.hideSpinner();\n        errorMessage = r.status === \"error_blocked\"\n          ? T(\"errorBlocked\")\n          : r.status === \"error_password_wrong\"\n            ? T(\"invalidPassword\")\n            : r.status === \"error_login_code\"\n              ? T(\"invalidLoginCode\")\n              : T(\"unknownError\");\n        return form.setValues({\n          error: errorMessage\n        });\n      } else if (r.logId) {\n        return inc(\"../../../../00_shared/finishLogin/finish\")({\n          logId: r.logId,\n          authToken: r.authToken,\n          loginType: \"relogin\",\n          displayName: r.displayName,\n          avatar: r.avatar\n        });\n      } else {\n        return startPage({\n          path: path(\"../../../../02_step2/page\"),\n          animation: \"slideLeft\",\n          params: {\n            uniqName: r.uniqName,\n            email: r.email,\n            phone: r.phone,\n            loginCode: r.loginCode,\n            recoveryOptions: r.recoveryOptions\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"lib/util/browser/getPageUrlParam/get.ls","text":"(function(){\n  return function(paramName){\n    var s, a, s2;\n    s = location.href.split(\"?\")[1];\n    if (!s) {\n      return;\n    }\n    a = s.split(\"&\");\n    s2 = _.find(a, function(s){\n      return s.indexOf(paramName + \"=\") === 0;\n    });\n    return s2 != null ? s2.split(\"=\")[1] : void 8;\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"lib/init/blockOldBrowsers/block.ls","text":"(function(){\n  return function(){\n    var agent, name, detectedBrowser, block, s;\n    agent = navigator.userAgent;\n    name = navigator.appName;\n    detectedBrowser = {\n      safari: inc(\"detectOldSafari/detect\")(agent),\n      chrome: inc(\"detectOldChrome/detect\")(agent),\n      firefox: inc(\"detectOldFirefox/detect\")(agent)\n    };\n    block = _.values(detectedBrowser).indexOf(true) > -1;\n    if (block) {\n      if (engine.isMobileApp) {\n        helpers.postEvent(\"INT-blockedBrowser\", {\n          event: \"blockedBrowserMobileAppNoBlock\",\n          userAgent: agent,\n          url: location.href,\n          detectedBrowser: _.pickBy(detectedBrowser, function(v, k){\n            return v === true;\n          })\n        });\n        return false;\n      }\n      s = T(\"oldBrowser\");\n      if (engine.isDebug) {\n        s += \"<br><br>------------<br><br>Debug info:<br>user agent: \" + agent + \"<br>app name: \" + name + \"<br>detected browser: \";\n        s += _.keys(_.pickBy(detectedBrowser, function(v, k){\n          return v === true;\n        })).join(\", \");\n      }\n      document.write(s);\n      helpers.postEvent(\"INT-blockedBrowser\", {\n        event: \"blockedBrowser\",\n        userAgent: agent,\n        url: location.href,\n        detectedBrowser: _.pickBy(detectedBrowser, function(v, k){\n          return v === true;\n        })\n      });\n    }\n    return block;\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"pages/start/login/02_step2/submit/submit.ls","text":"(function(){\n  return function(form){\n    var params, password;\n    params = app.currentPage.params;\n    password = form.input.getValue();\n    if (password === \"\") {\n      form.error.html(T(\"emptyPassword\"));\n      form.input.start();\n      return;\n    }\n    form.showSpinner();\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/login/step2/step2\"),\n      params: {\n        password: password,\n        uniqName: params.uniqName,\n        email: params.email,\n        phone: params.phone,\n        loginCode: params.loginCode,\n        checkCaptcha: true\n      },\n      requiredVisibleDiv: form.input,\n      onError: function(error){\n        form.hideSpinner();\n        inc(\"/lib/gui/errorPopup/popup\")();\n        return debug(error);\n      },\n      onOffline: function(){\n        form.hideSpinner();\n        return inc(\"/lib/offline/offlinePopup/popup\")();\n      },\n      onCompleted: function(result){\n        var errorMessage, loginType;\n        if (result.status !== \"ok\") {\n          errorMessage = result.status === \"error_blocked\"\n            ? T(\"errorBlocked\")\n            : result.status === \"error_captcha_failed\"\n              ? T(\"errorCaptchaFailed\")\n              : params.loginCode != null\n                ? T(\"invalidPassword\")\n                : T(\"invalidPasswordLong\");\n          form.hideSpinner();\n          form.error.html(errorMessage);\n        } else {\n          loginType = params.uniqName != null\n            ? \"uniqName\"\n            : params.email != null\n              ? \"email\"\n              : params.phone != null\n                ? \"phone\"\n                : params.loginCode != null ? \"loginCodeWithPassword\" : void 8;\n          return inc(\"../../00_shared/finishLogin/finish\")({\n            logId: result.logId,\n            authToken: result.authToken,\n            loginType: loginType,\n            displayName: result.displayName,\n            avatar: result.avatar\n          });\n        }\n      }\n    });\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"lib/util/browser/removePageUrlParams/remove.ls","text":"(function(){\n  return function(paramName){\n    var s, url;\n    s = location.href.split(\"?\")[1];\n    if (!s) {\n      return;\n    }\n    url = location.href.split(\"?\")[0];\n    return history.replaceState(history.state, \"\", url);\n  };\n})();","updated":"2023-01-31T13:53:37.981074"},{"path":"pages/start/login/sesamLogin/login/login.ls","text":"(function(){\n  return function(page, data){\n    var onCompleted, onError;\n    onCompleted = function(result){\n      if (result.status !== \"ok\") {\n        onError(result.status);\n        return;\n      }\n      if (!result.logId) {\n        app.sesamData = data;\n        inc(\"/lib/gui/infoPopup/popup\")({\n          label: T(\"infoRedirectToLogin\"),\n          onClose: function(){\n            return startPage({\n              path: path(\"/pages/start/login/01_step1/page\"),\n              animation: \"fadeIn\"\n            });\n          }\n        });\n        return;\n      }\n      return inc(\"/pages/start/login/00_shared/finishLogin/finish\")({\n        logId: result.logId,\n        authToken: result.authToken,\n        loginType: \"SSO\",\n        displayName: result.displayName,\n        avatar: result.avatar,\n        history: 0\n      });\n    };\n    onError = function(error){\n      var errorMessage;\n      debug(error);\n      page.topbar.show();\n      errorMessage = error === \"error_blocked\"\n        ? T(\"errorBlocked\")\n        : error === \"error_captcha_failed\"\n          ? T(\"errorCaptchaFailed\")\n          : error === \"error_invalid_token\"\n            ? T(\"errorInvalidToken\")\n            : error === \"error_offline\"\n              ? T(\"offlineError\")\n              : T(\"errorMessage\");\n      return page.html(errorMessage);\n    };\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/sso/sesam/login/query\"),\n      params: {\n        data: data\n      },\n      onCompleted: onCompleted,\n      onError: onError,\n      onOffline: function(){\n        return onError(\"error_offline\");\n      }\n    });\n  };\n})();","updated":"2023-02-07T11:23:22.73945"},{"path":"pages/start/startUser/07_extraPages/connectToSesam/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        page.submit = inc(\"submit/submit\")(page);\n        page.finish = inc(\"finish/finish\")(page);\n        return page.append(Div({\n          margin: \"0 auto\",\n          width: \"30em\",\n          maxWidth: \"90%\"\n        }).html(Div({\n          marginBottom: \"1em\",\n          lineHeight: \"1.5em\"\n        }).html(T(\"text\")), page.errorDiv = inc(\"errorDiv/div\")(page), page.buttonConnect = inc(\"buttonConnect/button\")(page), page.linkSkip = inc(\"linkSkip/link\")(page)));\n      }\n    };\n  };\n})();","updated":"2023-02-09T16:45:35.225441"},{"path":"pages/start/startUser/07_extraPages/connectToSesam/connect.ls","text":"(function(){\n  return function(o){\n    if (!app.sesamData) {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0,\n      params: _.omit(o, [\"page\", \"progressBar\"])\n    });\n    return true;\n  };\n})();","updated":"2023-02-10T09:10:35.570274"},{"path":"lib/util/audioContext/init/createAudioContextOnFirstInteraction/create.ls","text":"(function(){\n  return function(){\n    var init;\n    init = function(){\n      document.removeEventListener(\"touchend\", init);\n      document.removeEventListener(\"mousedown\", init);\n      app.audioContextDebugEvents.push({\n        event: \"createOnFirstInteraction\",\n        created: new Date()\n      });\n      inc(\"../../refresh/refresh\")();\n      return inc(\"../_playSilence/playSilence\")();\n    };\n    document.addEventListener(\"touchend\", init);\n    return document.addEventListener(\"mousedown\", init);\n  };\n})();","updated":"2023-03-23T09:56:32.788745"},{"path":"lib/util/audioContext/init/keepAliveAndroid/keepAliveAndroid.ls","text":"(function(){\n  return function(){\n    return setInterval(function(){\n      app.audioContextDebugEvents.push({\n        event: \"playSilenceAndroidCrosswalk\",\n        created: new Date()\n      });\n      return inc(\"../_playSilence/playSilence\")();\n    }, 30000);\n  };\n})();","updated":"2023-03-23T09:56:32.788745"},{"path":"lib/util/audioContext/init/pauseAndResume/pauseAndResume.ls","text":"(function(){\n  return function(){\n    var onPause, onResume;\n    onPause = function(){\n      var ref$;\n      app.audioContextDebugEvents.push({\n        event: \"onPause\",\n        created: new Date()\n      });\n      return (ref$ = window.sound.audioContext) != null ? typeof ref$.suspend == 'function' ? ref$.suspend() : void 8 : void 8;\n    };\n    onResume = function(){\n      app.audioContextDebugEvents.push({\n        event: \"onResume\",\n        created: new Date()\n      });\n      inc(\"../../refresh/refresh\")();\n      return inc(\"/lib/init/setiOSAppAudioCategory/set\")();\n    };\n    document.addEventListener(\"resume\", onResume, false);\n    return document.addEventListener(\"pause\", onPause, false);\n  };\n})();","updated":"2023-03-23T09:56:32.788745"},{"path":"lib/svg/iconModern/award.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#292C36\" d=\"M86.358 37.256 68.5 68.096v21.48c0 4.641-5.31 7.279-9.008 4.476l-11.52-8.73-11.456 8.715c-3.64 2.768-8.85.256-9.012-4.254l-.004-.217V68.552L9.378 37.256 28.628 4h38.481zM34.5 70.5v16.274l13.466-10.24L61.5 86.79V70.5zM18.622 37.254 33.24 62.5h29.256l14.618-25.246L62.496 12H33.241zm34.37-7.731L64.6 31.206l-8.4 8.183 1.983 11.57L47.8 45.497 37.417 50.96 39.4 39.39 31 31.207l11.608-1.683L47.8 19z\"/>\n</svg>\n","updated":"2025-11-04T14:41:30.472593"},{"path":"lib/svg/iconModern/progress.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#292C36\" d=\"M48.056 6c23.203 0 42 18.829 42 42s-18.797 42-42 42a4 4 0 1 1 0-8c18.781 0 34-15.243 34-34s-15.219-34-34-34a4 4 0 1 1 0-8M24.492 78.876a4 4 0 0 1 5.468-1.45l.086.049a4 4 0 0 1-3.998 6.93l-.106-.061a4 4 0 0 1-1.45-5.468m-12.43-15.388a4 4 0 0 1 5.464 1.466l.05.085a4 4 0 0 1-6.919 4.018l-.06-.105a4 4 0 0 1 1.466-5.464m50.462-32.213a4 4 0 0 1 5.858 5.45l-26.512 28.5a4 4 0 0 1-5.757.103l-9.941-9.941a4 4 0 0 1 5.656-5.657l7.009 7.008zM9.006 43.945A4 4 0 0 1 13 47.95v.1a4 4 0 1 1-8 .01v-.12a4 4 0 0 1 4.006-3.996m1.651-17.002a4 4 0 0 1 6.918 4.018l-.049.085a4 4 0 0 1-6.93-3.998zm15.39-15.347a4 4 0 0 1 3.999 6.93l-.086.048a4 4 0 0 1-4.018-6.918z\"/>\n</svg>\n","updated":"2025-11-04T14:41:30.472593"},{"path":"lib/svg/iconModern/xmas-tree.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M65.84 90.1a3.5 3.5 0 0 0 0-7h-4.987l-1.433-9.973.194-.13a10.5 10.5 0 0 1 9.723-1.013l1.01.405c7.496 2.997 13.84-6.16 8.62-12.164a2457 2457 0 0 1-7.14-8.25 8.45 8.45 0 0 0 2.722-2.849c1.543-2.66 1.802-6.558-.898-9.508a222 222 0 0 1-8.333-9.646c.57-1.824.365-3.908-.974-5.738L51.593 6.817l-.203-.26c-2.164-2.602-6.268-2.443-8.205.405L30.23 26.005c-1.488 2.187-1.09 4.57.233 6.204l-7.312 7.55c-2.442 2.522-2.355 5.936-1.203 8.333.678 1.41 1.859 2.75 3.425 3.553l-8.472 8.775c-5.065 5.245-.573 13.944 6.53 13.112 3.199-.374 6.478-.755 9.367-1.116a11.3 11.3 0 0 1 3.63.135 4 4 0 0 0-.088.422L34.887 83.1H30a3.5 3.5 0 0 0 0 7zM25.987 12.27a3.983 3.983 0 0 0 5.426-1.448l.05-.084a3.943 3.943 0 0 0-1.441-5.403 3.983 3.983 0 0 0-5.43 1.433l-.06.103a3.94 3.94 0 0 0 1.456 5.4m43.2 0a3.983 3.983 0 0 0 5.475-1.532 3.943 3.943 0 0 0-1.44-5.403 3.983 3.983 0 0 0-5.43 1.434l-.06.103a3.94 3.94 0 0 0 1.456 5.399M48.84 29.378a1.86 1.86 0 0 1-2.701-.202l-.122-.15a9.03 9.03 0 0 0-7.095-3.35l8.575-12.606 10.558 14.424q-.672-.129-1.35-.265c-2.778-.565-5.716.185-7.865 2.15M6.787 26.671c1.9 1.09 4.33.442 5.427-1.448l.048-.084a3.94 3.94 0 0 0-1.44-5.404 3.983 3.983 0 0 0-5.43 1.433l-.06.104a3.943 3.943 0 0 0 1.455 5.399m76.801 4.8c1.9 1.09 4.33.442 5.426-1.448l.048-.084a3.94 3.94 0 0 0-1.44-5.404 3.983 3.983 0 0 0-5.43 1.434l-.06.102a3.943 3.943 0 0 0 1.456 5.4M45.901 47.166a6.62 6.62 0 0 1-7.397.245c-2.834-1.776-6.121-2.364-9.225-2.068l-.702.063c-.012.002-.016.007-.057-.02a.8.8 0 0 1-.262-.326.8.8 0 0 1-.09-.394c.004-.04.006-.03.012-.036l11.47-11.845c.352.12.677.337.927.647l.121.15c3.212 3.963 9.098 4.404 12.864.962a2 2 0 0 1 1.747-.457q1.253.254 2.46.485a6.6 6.6 0 0 0 2.3.04 229 229 0 0 0 8.42 9.732.75.75 0 0 1 .212.499 1.44 1.44 0 0 1-.207.77c-.159.275-.356.434-.497.502-.103.05-.211.076-.402.024l-7.55-2.073A15.45 15.45 0 0 0 46.9 46.444zM6.787 50.67c1.9 1.09 4.33.443 5.427-1.448l.048-.084a3.94 3.94 0 0 0-1.44-5.402 3.983 3.983 0 0 0-5.43 1.432l-.06.104a3.94 3.94 0 0 0 1.455 5.398m81.6 4.8a3.983 3.983 0 0 0 5.475-1.531 3.943 3.943 0 0 0-1.44-5.404 3.983 3.983 0 0 0-5.43 1.434l-.06.102a3.943 3.943 0 0 0 1.456 5.4M54.897 67.73c-3.395 2.263-7.826 2.344-11.32.209-3.503-2.14-7.63-2.97-11.645-2.468-2.855.357-6.1.733-9.314 1.11a.6.6 0 0 1-.41-.075.94.94 0 0 1-.346-.389.9.9 0 0 1-.102-.49.56.56 0 0 1 .178-.345l11.971-12.397q.46.198.878.458a13.62 13.62 0 0 0 15.217-.504l.998-.723a8.45 8.45 0 0 1 7.19-1.3l4.462 1.225.394.46 2.42 2.818c2.06 2.392 4.938 5.727 8.218 9.498.164.19.178.313.178.386a.8.8 0 0 1-.155.442.76.76 0 0 1-.354.288c-.061.02-.176.049-.407-.043l-1.01-.404a17.5 17.5 0 0 0-16.205 1.687zm-11.835 7.69a17.57 17.57 0 0 0 9.71.67l1.008 7.01H41.96z\"/>\n</svg>\n","updated":"2025-11-04T14:41:30.472593"},{"path":"lib/gui/inputForm/inputForm.ls","text":"(function(){\n  return function(o){\n    var trimInput, onStart, onSubmit, onChange, showSpinner, hideSpinner, div;\n    o.submitLabel == null && (o.submitLabel = T(\"continueButton\"));\n    trimInput = function(){\n      if (!o.isPassword) {\n        return o.input.setValue(o.input.getValue().trim());\n      }\n    };\n    onStart = function(){\n      return typeof o.start == 'function' ? o.start() : void 8;\n    };\n    onSubmit = function(){\n      var ref$;\n      trimInput();\n      o.input.stop();\n      if ((ref$ = o.error) != null) {\n        ref$.html(\"&nbsp;\");\n      }\n      return typeof o.submit == 'function' ? o.submit() : void 8;\n    };\n    onChange = function(key){\n      var ref$;\n      if ((ref$ = o.error) != null) {\n        ref$.html(\"&nbsp;\");\n      }\n      return typeof o.change == 'function' ? o.change(key) : void 8;\n    };\n    showSpinner = function(){\n      var ref$;\n      div.css({\n        pointerEvents: \"none\"\n      });\n      o.input.disable();\n      if ((ref$ = o.spinner) != null) {\n        ref$.remove();\n      }\n      return o.error.append(o.spinner = inc(\"spinner/spinner\")());\n    };\n    hideSpinner = function(){\n      var ref$;\n      div.css({\n        pointerEvents: \"\"\n      });\n      o.input.enable();\n      return (ref$ = o.spinner) != null ? ref$.remove() : void 8;\n    };\n    div = Div().html(o.label != null ? o.label = inc(\"label/label\")(o.label) : void 8, o.input = inc(\"input/input\")(onStart, onSubmit, onChange, o, o.value), Div().html(o.error = inc(\"error/error\")()), o.forceShowButtons || o.input.isDesktop() ? inc(\"/lib/gui/buttonsSubmitCancel/buttons\")({\n      submit: onSubmit,\n      submitLabel: o.submitLabel,\n      cancel: o.cancel\n    }).css({\n      marginTop: \"2.5em\"\n    }) : void 8);\n    div.input = o.input;\n    div.label = o.label;\n    div.error = o.error;\n    div.isDesktop = o.input.isDesktop;\n    div.showSpinner = showSpinner;\n    div.hideSpinner = hideSpinner;\n    div.submit = onSubmit;\n    return div;\n  };\n})();","updated":"2023-02-22T09:49:36.753084"},{"path":"lib/gui/divEditable/cleanupLine/splitLineWithBRinside/split.ls","text":"(function(){\n  return function(d, lineDiv){\n    var elements, elementsBefore, elementsAfter, brElement, i$, len$, i, el, newLineDiv, sel, r;\n    elements = lineDiv.childNodes;\n    elementsBefore = [];\n    elementsAfter = [];\n    brElement = null;\n    for (i$ = 0, len$ = elements.length; i$ < len$; ++i$) {\n      i = i$;\n      el = elements[i$];\n      if (el.tagName === \"BR\" && el.nextSibling != null) {\n        brElement = el;\n      } else if (brElement) {\n        elementsAfter.push(el);\n      } else {\n        elementsBefore.push(el);\n      }\n    }\n    if (!brElement) {\n      return;\n    }\n    d.debug(\"split line with BR inside\");\n    if (elementsBefore.length > 0) {\n      brElement.remove();\n    }\n    newLineDiv = Div().html(elementsAfter);\n    lineDiv.after(newLineDiv);\n    sel = window.getSelection();\n    r = document.createRange();\n    r.setStart(newLineDiv, 0);\n    sel.removeAllRanges();\n    return sel.addRange(r);\n  };\n})();","updated":"2023-02-22T09:49:36.753084"},{"path":"addons/topbarLevel/calculator/calculator/open/open.ls","text":"(function(){\n  return function(o){\n    var ref$;\n    if (!o.isClosed || o.animationRunning || app.currentPage.levelPlayer == null) {\n      return;\n    }\n    o.lastGap = app.currentPage.levelPlayer.currentGap;\n    o.isClosed = false;\n    o.animationRunning = true;\n    o.background.fadeIn(300);\n    o.animations.open();\n    o.label.icon.open();\n    o.content.show();\n    if ((ref$ = app.lastInput) != null && ref$.isVisible()) {\n      o.lastInput = app.lastInput;\n      o.lastInput.stop();\n    }\n    if (o.lastResult) {\n      o.content.mathInput.setValue(o.lastResult.label);\n    }\n    o.content.mathInput.start();\n    inc(\"fixKeyboardLayout/fix\")(o);\n    return setTimeout(function(){\n      return o.animationRunning = false;\n    }, 300);\n  };\n})();","updated":"2023-02-22T12:07:10.286976"},{"path":"pages/standards/_t.ls","text":"(function(){\n  return {\n    standardDescriptions: {\n      en: \"State Standards Alignment\",\n      es: \"Correlación curricular\"\n    },\n    standards: {\n      en: \"standards\",\n      es: \"competencias\"\n    }\n  };\n})();","updated":"2025-01-21T11:27:58.559179"},{"path":"pages/standards/loadingPage/calcStandardDeeplinkUrl/calc.ls","text":"(function(){\n  return function(){\n    var url;\n    url = inc(\"/lib/util/browser/getPageUrl/get\")();\n    return url.replace(T(\"standards\"), \"standards\");\n  };\n})();","updated":"2025-01-21T11:27:58.559179"},{"path":"lib/util/refresh/loadCurrentProjects/load.ls","text":"(function(){\n  return function(currentProjects, onDone){\n    return inc(\"/lib/util/loadProjects/load\")({\n      projectDescriptions: currentProjects,\n      logResults: false,\n      onDone: onDone,\n      onProjectMissingError: function(projects){\n        return debug(\"refresh projects missing\", projects);\n      }\n    });\n  };\n})();","updated":"2023-05-11T09:12:15.095247"},{"path":"lib/gui/inputEditable/onInput/onInput.ls","text":"(function(){\n  return function(i){\n    if (i.params.multiline) {\n      return;\n    }\n    return i.div.bind(\"input\", function(){\n      var v, v2;\n      v = i.div.getValue();\n      if (_.includes(v, \"\\n\")) {\n        v2 = _.replaceAll(v, \"\\n\", \"\");\n        i.div.setValue(v2);\n        return i.submit();\n      }\n    });\n  };\n})();","updated":"2025-04-22T07:31:41.075766"},{"path":"lib/gui/inputEditable/onKey/onKey.ls","text":"(function(){\n  return function(i, params){\n    return i.divEditable.bind(\"keydown\", function(e){\n      if (e.keyCode === 13 && !params.multiline) {\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        return i.submit();\n      }\n    });\n  };\n})();","updated":"2025-04-22T07:31:41.075766"},{"path":"lib/util/downloadContentFile/startJob/_shared/readFileContent/readFile/read.ls","text":"(function(){\n  return function(p){\n    var loadFileSystemFile, loadAndroidLocalFileUrl, validateFileSize, readFile, finish;\n    loadFileSystemFile = function(){\n      return app.fileSystem.existsFile(p.filePath, function(exists, fileEntry){\n        if (exists !== true) {\n          return p.onError(\"readFileContent file not found \" + p.filePath);\n        } else {\n          return fileEntry.file(validateFileSize);\n        }\n      });\n    };\n    loadAndroidLocalFileUrl = function(){\n      return trySafe(function(){\n        return inc(\"loadAndroidLocalFileUrl/load\")({\n          filePath: p.filePath,\n          fileType: p.fileType,\n          onError: p.onError,\n          onLoaded: function(file){\n            if (!file) {\n              return p.onError(\"readFileContent file not found \" + p.filePath);\n            } else {\n              return validateFileSize(file);\n            }\n          }\n        });\n      });\n    };\n    validateFileSize = function(file){\n      return trySafe(function(){\n        var etag, etagSize;\n        etag = _.last(p.filePath.split(\"_\"));\n        etagSize = parseInt(_.last(etag.split(\"-\")));\n        if (file.size !== etagSize) {\n          return p.onError(\"readFileContent wrong filesize wrong \" + p.filePath);\n        } else {\n          return readFile(file);\n        }\n      });\n    };\n    readFile = function(file){\n      return trySafe(function(){\n        var reader;\n        reader = new FileReader();\n        if (p.fileType === \"base64\") {\n          reader.readAsDataURL(file);\n        } else {\n          reader.readAsText(file);\n        }\n        reader.onerror = function(e){\n          return trySafe(function(){\n            p.onError(\"readFileContent readFile onerror \" + p.filePath);\n            return setTimeout(function(){\n              return inc(\"onErrorDebugging/onErrorDebugging\")(p, reader, file);\n            }, 2000);\n          });\n        };\n        return reader.onload = function(e){\n          return trySafe(function(){\n            return finish(reader.result);\n          });\n        };\n      });\n    };\n    finish = function(fileContent){\n      var fileContentJSON;\n      if (p.fileType !== \"json\") {\n        return p.onLoaded(fileContent);\n      } else {\n        try {\n          fileContentJSON = JSON.parse(fileContent);\n        } catch (e$) {}\n        if (!fileContentJSON) {\n          return p.onError(\"readFileContent file JSON parse failed \" + p.filePath);\n        } else {\n          return p.onLoaded(fileContentJSON);\n        }\n      }\n    };\n    if (engine.isAndroidApp) {\n      return loadAndroidLocalFileUrl();\n    } else {\n      return loadFileSystemFile();\n    }\n  };\n})();","updated":"2024-11-01T13:37:37.058528"},{"path":"lib/offline/offlinePageWithLogging/debugText/debugText.ls","text":"(function(){\n  return function(o){\n    var that;\n    if (!engine.isDebug) {\n      return;\n    }\n    return Div().html(Div({\n      display: \"inline-block\",\n      marginTop: \"3em\",\n      padding: \"1em\",\n      color: Color.grey[400],\n      fontSize: \"0.8em\"\n    }).html(o.reason, o.reasonDetails ? \" (tap to see details)\" : void 8).tap((that = o.reasonDetails) ? function(){\n      return debug(that);\n    } : void 8));\n  };\n})();","updated":"2023-03-06T10:31:17.264557"},{"path":"addons/navbar/bar/user/user/_menu/menu.ls","text":"(function(){\n  return function(o){\n    inc(\"/lib/util/freezeIOSScrollDivs/disable/disable\")();\n    o.close = function(){\n      inc(\"/lib/util/freezeIOSScrollDivs/enable/enable\")();\n      return o.background.remove();\n    };\n    body.append(o.background = inc(\"background/background\")(o).keyframeAnimate({\n      duration: 200,\n      keyframes: {\n        \"0%\": {\n          opacity: 0\n        },\n        \"100%\": {\n          opacity: 1\n        }\n      }\n    }).append(inc(\"items/items\")(o)));\n    return o;\n  };\n})();","updated":"2023-03-06T10:31:17.264557"},{"path":"addons/topbarLevel/hint/hint.ls","text":"(function(){\n  return function(page){\n    var adjust, setTrainerHint;\n    adjust = inc(\"../_shared/adjustFirstVisibleDivMargin/adjust\")(page);\n    setTrainerHint = function(slide, atom){\n      var hint, lastHint;\n      hint = slide.getParam(\"hint\", atom || slide.atom);\n      lastHint = page.topbar.topHint;\n      if (hint && _.isEqual(lastHint != null ? lastHint.hint : void 8, hint)) {\n        adjust();\n        return;\n      }\n      if (hint) {\n        adjust();\n        inc(\"hint/hint\")(page, slide, atom, adjust);\n      } else {\n        page.topbar.topHint = null;\n      }\n      return lastHint != null ? lastHint.animateOut(function(){\n        return lastHint.remove();\n      }) : void 8;\n    };\n    page.setTrainerHint = setTrainerHint;\n    return null;\n  };\n})();","updated":"2023-05-11T09:12:15.095247"},{"path":"addons/topbarLevel/calculator/calculator.ls","text":"(function(){\n  return function(page){\n    var adjust, setCalculator;\n    adjust = inc(\"../_shared/adjustFirstVisibleDivMargin/adjust\")(page);\n    setCalculator = function(slide, atom){\n      var calculator, lastCalculator, curHint, ref$;\n      calculator = slide.getParam(\"calculator\", atom || slide.atom);\n      lastCalculator = page.topbar.calculator;\n      curHint = page.topbar.topHint;\n      if (calculator && (lastCalculator != null && lastCalculator.calculator) && (curHint != null) === ((lastCalculator != null ? lastCalculator.lastHint : void 8) != null) && (curHint != null ? curHint.hint.label : void 8) === (lastCalculator != null ? (ref$ = lastCalculator.lastHint) != null ? ref$.hint.label : void 8 : void 8)) {\n        adjust();\n        if (lastCalculator.slideIndex !== page.levelPlayer.currentSlideIndex) {\n          lastCalculator.slideIndex = page.levelPlayer.currentSlideIndex;\n          lastCalculator.clear();\n        }\n        return;\n      }\n      if (calculator) {\n        adjust();\n        inc(\"calculator/calculator\")(page, slide, atom, adjust);\n      } else {\n        page.topbar.calculator = null;\n      }\n      return lastCalculator != null ? lastCalculator.animateOut(function(){\n        return lastCalculator.remove();\n      }) : void 8;\n    };\n    page.setCalculator = setCalculator;\n    return null;\n  };\n})();","updated":"2023-05-11T09:12:15.095247"},{"path":"lib/util/loadProjects/load.ls","text":"(function(){\n  return function(params){\n    var ref$;\n    if ((ref$ = projects.projectVersions) != null) {\n      ref$.setAt = new Date();\n    }\n    return projects.loadProjects(params);\n  };\n})();","updated":"2023-03-09T16:45:02.639215"},{"path":"lib/util/browser/setPageUrl/set.ls","text":"(function(){\n  return function(pageUrl){\n    var pathname, urlParams;\n    if (engine.isMobileApp) {\n      return;\n    }\n    pageUrl == null && (pageUrl = \"\");\n    pathname = \"/\" + engine.guiLanguage + \"/\" + pageUrl;\n    if (pathname.charAt(pathname.length - 1) !== \"/\") {\n      pathname += \"/\";\n    }\n    urlParams = location.href.split(\"?\")[1];\n    if (urlParams) {\n      pathname += \"?\" + urlParams;\n    }\n    try {\n      return history.replaceState(history.state, \"\", pathname);\n    } catch (e$) {}\n  };\n})();","updated":"2023-03-09T11:17:30.854932"},{"path":"pages/start/login/deeplinkLogin/_urlDescription/description.ls","text":"(function(){\n  return function(page){\n    return {\n      pageUrl: \"login/\",\n      title: T(\"login\"),\n      metaDescription: \"\"\n    };\n  };\n})();","updated":"2023-03-09T11:41:20.955479"},{"path":"pages/start/login/deeplinkLogin/calcData/calc.ls","text":"(function(){\n  return function(){\n    var code;\n    code = inc(\"/lib/util/browser/getPageUrlParam/get\")(\"code\");\n    if (code) {\n      code = decodeURIComponent(code);\n    }\n    inc(\"/lib/util/browser/removePageUrlParams/remove\")();\n    return {\n      loginCode: code\n    };\n  };\n})();","updated":"2023-03-09T11:41:20.955479"},{"path":"pages/start/login/deeplinkLogin/_t.ls","text":"(function(){\n  return {\n    login: \"Login\"\n  };\n})();","updated":"2023-03-09T16:45:02.639215"},{"path":"pages/static/_shared/_t.ls","text":"(function(){\n  return {\n    errorText: {\n      de: \"Ups, es ist ein Fehler aufgetreten.\",\n      en: \"Oops, an error occurred.\",\n      fr: \"Oups… une erreur s'est produite.\",\n      es: \"¡Ups! Algo salió mal.\",\n      pt: \"Ops! Ocorreu um erro.\"\n    },\n    startPageBack: {\n      de: \"Zur ANTON-Startseite\",\n      en: \"To the ANTON homepage\",\n      fr: \"Aller à la page d'accueil d'ANTON\",\n      es: \"Ir a la página de inicio de ANTON\",\n      pt: \"Ir para a página inicial do ANTON\"\n    },\n    settings: {\n      de: \"Einstellungen\",\n      en: \"Settings\",\n      fr: \"Paramètres\",\n      es: \"Ajustes\",\n      pt: \"Configurações\"\n    },\n    close: {\n      de: \"Schließen\",\n      en: \"Close\",\n      fr: \"Fermer\",\n      es: \"Cerrar\",\n      pt: \"Fechar\"\n    },\n    print: {\n      de: \"Drucken\",\n      en: \"Print\",\n      fr: \"Imprimer\",\n      es: \"Imprimir\",\n      pt: \"Imprimir\"\n    },\n    imageNotFound: {\n      de: \"Das Bild konnte nicht gefunden werden.\",\n      en: \"This image could not be found.\",\n      fr: \"Cette image est introuvable.\",\n      es: \"No se encontró la imagen.\",\n      pt: \"Não foi possível encontrar a imagem.\"\n    }\n  };\n})();","updated":"2026-02-23T18:43:09.084739"},{"path":"pages/start/startUser/01_rememberUser/_t.ls","text":"(function(){\n  return {\n    dontSave: {\n      de: \"Nein, nicht speichern\",\n      en: \"No, don't save\",\n      fr: \"Non, ne pas enregistrer\",\n      es: \"No, no guardar\",\n      pt: \"Não, não salvar\"\n    },\n    save: {\n      de: \"Ja, speichern\",\n      en: \"Yes, save\",\n      fr: \"Oui, enregistrer\",\n      es: \"Sí, guardar\",\n      pt: \"Sim, salvar\"\n    },\n    saveUserQuestion: {\n      de: \"Soll dein Nutzerkonto auf der Startseite gespeichert werden?<br><br><b>Hinweis:</b> Bei der Auswahl von <b><i>Ja, speichern</i></b> auf Schulgeräten und Geräten mit mehreren Nutzer/innen besteht das Risiko, dass andere Personen Zugriff auf dein Nutzerkonto erhalten. \",\n      en: \"Would you like to save your account on this device?<br><br><b>Note:</b> By selecting <b><i>Yes, save</i></b> on shared school devices or other devices with multiple users, there is a risk that other people will be able to gain access to your account.\",\n      fr: \"Veux-tu enregistrer ce compte sur cet appareil&nbsp;?<br><br><b>À noter&nbsp;:</b> Si tu es sur un appareil appartenant à ton école ou partagé avec d'autres, en choisissant <b><i>Oui, enregistrer</i></b>, il est possible que d'autres personnes accèdent à ton compte ANTON et l'utilisent.\",\n      es: \"¿Quieres que tu cuenta permanezca registrada en la página de inicio?<br><br><b>Observación:</b> al seleccionar <b><i>Sí, guardar</i></b> en un dispositivo escolar o que compartes con más personas, las personas que usen el dispositivo podrán acceder a tu cuenta.\",\n      pt: \"Você deseja que sua conta fique salva na tela inicial?<br><br><b>Observação:</b> ao selecionar <b><i>Sim, salvar</i></b> em dispositivos escolares compartilhados ou outros dispositivos com vários usuários, existe o risco de outras pessoas conseguirem acessar sua conta.\"\n    },\n    helloName: {\n      de: \"Hallo $1!\",\n      en: \"Hello $1!\",\n      fr: \"Bonjour $1&nbsp;!\",\n      es: \"¡Hola $1!\",\n      pt: \"Olá $1!\"\n    }\n  };\n})();","updated":"2026-02-23T18:43:09.084739"},{"path":"pages/level/_shared/loadTrainerProjects/calcPlaygroundBranch/calc.ls","text":"(function(){\n  return function(){\n    var p, c;\n    p = \"app01-playground-trainers\";\n    c = helpers.resolveProject(p);\n    if (c.branch === \"master\") {\n      return \"develop_ide\";\n    } else {\n      return c.branch + \"_ide\";\n    }\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"pages/level/_shared/loadTrainerProjects/hasTrainerName/has.ls","text":"(function(){\n  return function(levels, name){\n    var i$, len$, level, j$, ref$, len1$, t;\n    for (i$ = 0, len$ = levels.length; i$ < len$; ++i$) {\n      level = levels[i$];\n      for (j$ = 0, len1$ = (ref$ = _.ensureArray(level.trainers)).length; j$ < len1$; ++j$) {\n        t = ref$[j$];\n        if (_.startsWith(t.trainer, name)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"pages/level/play/loadLevel/load/assistantMath/load.ls","text":"(function(){\n  return function(p, finish, onError){\n    return inc(p.incPathLoadLevel)({\n      onError: onError,\n      onLoaded: finish\n    });\n  };\n})();","updated":"2024-10-22T06:43:05.567514"},{"path":"pages/level/_shared/loadTrainerProjects/load.ls","text":"(function(){\n  return function(p){\n    var levels, pds;\n    levels = _.ensureArray(p.levels);\n    pds = [];\n    if (inc(\"hasTrainerName/has\")(levels, \"playground/\")) {\n      pds.push({\n        project: \"app01-playground-trainers\",\n        branch: inc(\"calcPlaygroundBranch/calc\")(),\n        timeout: \"12,7\"\n      });\n    }\n    if (inc(\"hasTrainerName/has\")(levels, \"sentenceTranslate\")) {\n      pds.push({\n        project: \"app01-trainer-sentence-translate\",\n        timeout: \"12,7\"\n      });\n    }\n    if (inc(\"hasTrainerName/has\")(levels, \"assistant-math/\")) {\n      pds.push({\n        project: \"app01-assistant-math-trainers\",\n        timeout: \"12,7\"\n      });\n    }\n    if (pds.length === 0) {\n      return p.onDone();\n    } else {\n      return inc(\"/lib/util/loadProjectSyncNext/load\")({\n        project: pds,\n        logResults: false,\n        onProjectMissingError: function(r){\n          return debug(\"playground error\", r);\n        },\n        onLoaded: function(){\n          return p.onDone();\n        },\n        onAbort: function(){\n          return typeof p.onAbort == 'function' ? p.onAbort() : void 8;\n        }\n      });\n    }\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"pages/level/afterFinish/pages/newCoin/firstCoinExplainGameMenu/text/text.ls","text":"(function(){\n  return function(){\n    var position;\n    position = app.navbarPosition === \"bottom\"\n      ? T(\"bottom\")\n      : T(\"top\");\n    return Div({\n      width: \"25em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto 1.5em\"\n    }).html(T(\"canPlayWithCoins\", position));\n  };\n})();","updated":"2023-07-19T13:42:21.901151"},{"path":"lib/init/classKit/levelPlayer/finish/finish.ls","text":"(function(){\n  return function(p){\n    if (typeof ClassKitPlugin == 'undefined' || ClassKitPlugin === null) {\n      return;\n    }\n    if (_.includes(p.level.path, \"learnList\")) {\n      return;\n    }\n    if (_.includes(p.level.path, \"assistantMath\")) {\n      return;\n    }\n    return inc(\"calcResult/calc\")(p, function(result){\n      ClassKitPlugin.setProgress(result.progress, function(error){});\n      ClassKitPlugin.addScoreItem(\"blockStars\", \"Sterne\", result.stars, result.maxStars, true, function(error){});\n      ClassKitPlugin.endActivity(function(error){});\n      return ClassKitPlugin.save(function(error){});\n    });\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"pages/standards/loadingPage/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var topbar;\n    topbar = inc(\"/addons/topbar2/topbar\")({\n      title: T(\"standardDescriptions\"),\n      close: true,\n      closeDeepLink: function(){\n        return startPage({\n          path: path(\"/../app01-welcome/pages/welcome/page\")\n        });\n      }\n    });\n    if (page.params.isDeepLink) {\n      topbar.css({\n        visibility: \"hidden\"\n      });\n    }\n    return topbar;\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"pages/standards/loadingPage/page.ls","text":"(function(){\n  return function(page){\n    page.deepLinkUrl = inc(\"calcStandardDeeplinkUrl/calc\")();\n    return {\n      top: function(){\n        return page.topbar = inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        var startedAt, loadProject, onError, loadListStandards, start;\n        startedAt = new Date();\n        page.html(inc(\"/lib/gui/spinner/spinner\")());\n        loadProject = function(){\n          var ref$;\n          if ((ref$ = projects.info()[\"app01-standards\"]) != null && ref$.isLoaded) {\n            return loadListStandards();\n          } else {\n            return inc(\"/lib/util/loadProject/load\")(\"app01-standards\", loadListStandards);\n          }\n        };\n        onError = function(error){\n          page.topbar.css({\n            visibility: \"visible\"\n          });\n          if ((error != null ? error.error : void 8) === \"offline\") {\n            return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n          } else {\n            return inc(\"/lib/offline/offlinePage/offlinePage\")(page, void 8, true);\n          }\n        };\n        loadListStandards = function(){\n          var guiLanguage;\n          guiLanguage = engine.guiLanguage.slice(-2);\n          return inc(\"/lib/util/downloadContentFile/download\")({\n            fileId: \"list/standards-\" + guiLanguage,\n            fileFolder: \"content/_standards\",\n            fileApi: \"files\",\n            etag: \"latest\",\n            returnFileContent: true,\n            onLoaded: start,\n            onError: onError\n          });\n        };\n        start = function(result){\n          var loadingTime, delay;\n          loadingTime = new Date() - startedAt;\n          delay = loadingTime < 700 ? 700 - loadingTime : 0;\n          return setTimeout(function(){\n            page.standards = result;\n            return inc(\"../start/start\")(page);\n          }, delay);\n        };\n        return loadProject();\n      }\n    };\n  };\n})();","updated":"2025-01-21T11:27:58.559179"},{"path":"lib/init/checkProjectsSync/check/check.ls","text":"(function(){\n  var logInfos, calcAsyncInfos;\n  logInfos = inc(\"log/log\");\n  calcAsyncInfos = inc(\"calcAsyncInfo/calc\");\n  return function(loadedProjects){\n    var projectVersions, isSynced, versionInfos, projectsInfo, i$, len$, p, i, ref$, v1, v2, asyncInfo;\n    projectVersions = projects.projectVersions;\n    if (!projectVersions) {\n      return {\n        isSynced: true\n      };\n    }\n    isSynced = true;\n    versionInfos = {};\n    loadedProjects = _.ensureArray(loadedProjects);\n    projectsInfo = projects.info();\n    for (i$ = 0, len$ = loadedProjects.length; i$ < len$; ++i$) {\n      p = loadedProjects[i$];\n      i = projectsInfo[p.project];\n      if (!i || ((ref$ = i.branch) !== \"master\" && ref$ !== \"develop\")) {\n        continue;\n      }\n      v1 = i.version;\n      v2 = (ref$ = projectVersions[p.project]) != null ? ref$[i.branch] : void 8;\n      if (!v2) {\n        continue;\n      }\n      if (v1 !== v2) {\n        versionInfos[p.project] = {\n          vProject: v1,\n          vProjectVersions: v2\n        };\n        isSynced = false;\n      }\n    }\n    if (!isSynced) {\n      asyncInfo = calcAsyncInfos(versionInfos);\n      versionInfos.asyncInfo = asyncInfo;\n      logInfos(versionInfos);\n    }\n    return {\n      isSynced: isSynced,\n      asyncInfo: asyncInfo\n    };\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"pages/level/previewDocumentationDiv/div.ls","text":"(function(){\n  return function(level){\n    var loadTrainerProjects, generateSlides, loadMediaFiles, create, div;\n    level = _.cloneDeep(level);\n    loadTrainerProjects = function(){\n      return inc(\"../_shared/loadTrainerProjects/load\")({\n        levels: level,\n        onAbort: function(){\n          return debug(\"loadMediaFiles error\");\n        },\n        onDone: generateSlides\n      });\n    };\n    generateSlides = function(){\n      _.setRandomSeed(0);\n      inc(\"../_shared/generateSlides/generate\")(level);\n      return loadMediaFiles();\n    };\n    loadMediaFiles = function(){\n      return inc(\"../_shared/loadMediaFiles/load\")({\n        level: level,\n        onError: function(){\n          return debug(\"loadMediaFiles error\");\n        },\n        onLoaded: create\n      });\n    };\n    create = function(){\n      var slide;\n      return div.html((function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = level.slides).length; i$ < len$; ++i$) {\n          slide = ref$[i$];\n          results$.push([inc(\"line/line\")(), inc(\"slideDiv/slideDiv\")(slide)]);\n        }\n        return results$;\n      }()));\n    };\n    div = Div({\n      padding: \"1em\"\n    });\n    loadTrainerProjects();\n    return div;\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"pages/level/previewBlockPopup/popup.ls","text":"(function(){\n  return function(block){\n    var levelFull, spinnerOverlay, isCancelled, showSpinnerOverlay, loadLevels, loadTrainerProjects, checkMinPlayerVersion, createLevelFullWithSlides, loadMediaFiles, showSlidesPopup, onOffline, onError;\n    block = _.cloneDeep(block);\n    levelFull = null;\n    spinnerOverlay = null;\n    isCancelled = false;\n    _.setRandomSeed(0);\n    showSpinnerOverlay = function(){\n      spinnerOverlay = inc(\"/lib/gui/spinnerOverlay/overlay\")(function(){\n        return isCancelled = true;\n      });\n      return loadLevels();\n    };\n    loadLevels = function(){\n      return inc(\"loadLevels/load\")({\n        block: block,\n        onError: onError,\n        onLoaded: loadTrainerProjects\n      });\n    };\n    loadTrainerProjects = function(){\n      return inc(\"../_shared/loadTrainerProjects/load\")({\n        levels: block.levels,\n        onAbort: onError,\n        onDone: checkMinPlayerVersion\n      });\n    };\n    checkMinPlayerVersion = function(){\n      var i$, ref$, len$, level;\n      for (i$ = 0, len$ = (ref$ = block.levels).length; i$ < len$; ++i$) {\n        level = ref$[i$];\n        if (inc(\"../_shared/checkMinLevelPlayerVersion/check\")({\n          level: level\n        })) {\n          spinnerOverlay.remove();\n          return;\n        }\n      }\n      return createLevelFullWithSlides();\n    };\n    createLevelFullWithSlides = function(){\n      levelFull = {\n        title: \"dummy\",\n        slides: inc(\"generateSlides/generate\")(block)\n      };\n      return loadMediaFiles();\n    };\n    loadMediaFiles = function(){\n      if (!isCancelled) {\n        return inc(\"../_shared/loadMediaFiles/load\")({\n          level: levelFull,\n          onError: onError,\n          onLoaded: showSlidesPopup\n        });\n      }\n    };\n    showSlidesPopup = function(){\n      if (!isCancelled) {\n        spinnerOverlay.remove();\n        return inc(\"../reviewOrPreviewPopup/showSlidesPopup/show\")(levelFull, {\n          popupType: \"preview\"\n        });\n      }\n    };\n    onOffline = function(){\n      spinnerOverlay.remove();\n      return inc(\"/lib/offline/offlinePopup/popup\")();\n    };\n    onError = function(errors){\n      if (_.find(errors, {\n        error: \"offline\"\n      })) {\n        return onOffline();\n      } else {\n        spinnerOverlay.remove();\n        return inc(\"/lib/gui/errorPopup/popup\")();\n      }\n    };\n    if (typeof log != 'undefined' && log !== null) {\n      log.log({\n        event: \"debugClickOpenBlockPreviewPopup\",\n        path: block.path\n      });\n    }\n    return showSpinnerOverlay();\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"pages/static/terms/div/divEs/div.ls","text":"(function(){\n  return function(isPrint){\n    var s, p, section;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div({\n      minHeight: \"var(--centerHeight)\"\n    }).addClass(\"privacyDiv\").html(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3.5em\"\n    }) : void 8, isPrint ? Div({\n      fontSize: \"1.4em\"\n    }).html(T(\"termsOfService\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. General\",\n      content: [p(\"ANTON te da la bienvenida - ¡Que alegría que estés aquí! ANTON es una aplicación de aprendizaje para estudiantes, docentes y familias. ANTON es desarrollado y proporcionado por solocode GmbH, Mehringdamm 61, 10961 Berlín (en adelante: el Proveedor).\"), p(\"Puedes usar ANTON en www.anton.app y también a través de las aplicaciones móviles para Android, iOS y Amazon Fire.\"), p(\"Las presentes condiciones generales de uso y de negocio (en adelante: “CGC”) constituyen el marco legal definitivo de todos los servicios de ANTON destinados a los consumidores o a las escuelas (en adelante: “el servicio”). Los acuerdos subsidiarios verbales o las enmiendas al contrato sólo son efectivos si son confirmados por el proveedor por escrito o por correo electrónico.\"), p(\"Estas condiciones generales se aplican por igual a la oferta gratuita y a las ofertas adicionales sujetas a un cargo.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. Servicios ofrecidos, ámbito de aplicación\",\n      content: [p(\"2.1. ANTON es un sistema de aprendizaje en línea que permite a los estudiantes estudiar para la escuela de una manera simple, moderna y eficiente.\"), p(\"2.2. Los docentes y tutores de la familia pueden usar ANTON para guiar y apoyar a los y las estudiantes en su aprendizaje.\"), p(\"2.3. Las escuelas pueden usar ANTON como parte de sus lecciones, como tarea o como una oportunidad de aprendizaje adicional.\"), p(\"2.4. Muchas funciones están disponibles para el usuario de forma gratuita. Los servicios que están sujetos a un cargo están claramente indicados como tales y pueden utilizarse después de hacer el pago de los respectivos honorarios o precios.\"), p(\"2.5. El proveedor se reserva el derecho de hacer accesibles partes de su oferta únicamente a los docentes u otros usuarios encargados de tareas educativas.\"), p(\"2.6 El usuario está obligado a no proporcionar ninguna información no veraz al registrarse en línea, en particular en lo que respecta a su función como estudiante o docente y a su afiliación escolar. Si el usuario proporciona datos falsos, el proveedor puede, en la medida en que se haya celebrado un contrato, retirarse del mismo. La retirada es - si es posible - declarada por escrito. La forma escrita también se cumple enviando un correo electrónico. Si se proporcionan datos falsos, se puede conceder a un administrador de la escuela el derecho a gestionar la cuenta de usuario creada con datos falsos, a ver la clave de acceso y a activar el proceso de eliminación del usuario.\"), p(\"2.7. Además del servicio gratuito, los consumidores también pueden activar ANTON-Plus, un servicio de pago con funciones adicionales.\"), p(\"2.8. Las escuelas pueden sacar una Licencia Escolar ANTON y así activar más funciones que mejoren el uso en la escuela. Además de la Licencia Escolar ANTON, las escuelas pueden activar ANTON-Plus para todos los alumnos y profesores de la escuela.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. Oferta gratuita y ANTON-Plus\",\n      content: [p(\"3.1. El usuario puede crear una cuenta de usuario con ANTON de forma gratuita.\"), p(\"3.2. Después de crear una cuenta de usuario, se puede hacer uso de las funciones básicas gratuitas (“contrato básico”). Sin embargo, el usuario no tiene ningún derecho legal a la libre disponibilidad de esos contenidos y funciones.\"), p(\"3.3. Los contratos básicos se pueden rescindir en cualquier momento con un preaviso de 14 días.\"), p(\"3.4. El proveedor también ofrece a los consumidores el servicio facturable ANTON-Plus (“contrato premium”) según varios modelos de precios. En la medida en que los precios se indican en ANTON, éstos incluyen el impuesto sobre el valor añadido legal aplicable en ese momento.\"), p(\"3.5. Al reservar un contrato de prima, el usuario recibe acceso a funciones adicionales dentro del ámbito del respectivo contrato de prima para todo el período del contrato.\"), p(\"3.6. El tipo de facturación, el precio y el plazo se enumeran en cada caso como parte del proceso de pedido y se resumen en su totalidad antes de completar el pedido. El contrato de prima entra en vigor con un clic en el botón “comprar” (o similar).\"), p(\"3.7. Los contratos de prima se celebran por el plazo fijo elegido por el usuario. Los precios para todo el período deben ser pagados al concluir el contrato.\"), p(\"3.8. El Proveedor se comunicará con el Usuario principalmente a través del chat de soporte localizado en la aplicación o - si se ha proporcionado una dirección de correo electrónico - también a través de ésta, y puede en particular notificar al Usuario las declaraciones de intención relevantes para el contrato (por ejemplo, avisos de terminación) por este medio. El usuario puede proporcionar al Proveedor una dirección de correo electrónico actual en cualquier momento.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. Duración, renovación y terminación de los contratos para los consumidores\",\n      content: [p(\"4.1. Mientras no se haya celebrado ningún contrato de prima con gastos, el usuario podrá rescindir el contrato básico en cualquier momento de conformidad con el apartado 3.3.\"), p(\"4.2. Salvo que se indique lo contrario en el momento de la celebración del contrato, los contratos de prima de ANTON Plus son suscripciones continuas que se prorrogan automáticamente de forma recurrente por el plazo convenido contractualmente en cada caso, a menos que el usuario o el proveedor rescinda el respectivo contrato de prima hasta 24 horas antes del vencimiento del plazo correspondiente. Los honorarios por los plazos de renovación también se facturarán por adelantado. Todos los contratos pueden ser rescindidos al final del respectivo período.\"), p(\"4.3. Los contratos de prima que se adquieren mediante “pago único” se designan expresamente como de duración limitada o ilimitada. Si están limitados en el tiempo, el contrato termina al final del plazo sin necesidad de rescindirlo. Si son ilimitados, los siguientes párrafos se aplican a ellos en consecuencia.\"), p(\"4.4. La cancelación de los contratos Premium adquiridos a través de la Apple App Store, la Google Play Store o a través de Paypal se lleva a cabo de acuerdo con los términos y condiciones aplicables del proveedor de servicios respectivo. El procedimiento exacto se describe en la página web de la Apple App Store, la Google Play Store o Paypal.\"), p(\"4.5. El derecho de rescisión por causa justificada no se ve afectado.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. Derecho de desistimiento de los consumidores\",\n      content: [\n        p(\"5.1. Los consumidores tienen derecho a cancelar este contrato dentro de los 14 días sin dar ninguna razón. El período de revocación es de 14 días a partir del día de la conclusión del contrato. Para ejercer el derecho de rescisión, el consumidor debe informar al proveedor (solocode GmbH, Mehringdamm 61, 10961 Berlín, Alemania, correo electrónico: support@anton.app) de su decisión de rescindir el presente contrato mediante una declaración clara (por ejemplo, una carta o un correo electrónico enviado por correo). A tal fin, los consumidores pueden utilizar el formulario modelo de retiro adjunto, que, sin embargo, no es obligatorio.\"), p(\"5.2. Para cumplir con el plazo de revocación, basta con que la notificación del ejercicio del derecho de revocación se envíe antes de que expire el plazo de revocación.\"), Button(\"Formulario para revocación\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://files.anton.app/files/ANTON-formulario-para-revocacion.pdf\");\n        }).css({\n          marginBottom: \"1em\",\n          marginTop: \"-0.5em\"\n        }), p(\"5.3. Consecuencias de la rescisión: Si los consumidores se retiran de este contrato, el proveedor deberá reembolsar todos los pagos recibidos del consumidor, incluidos los gastos de entrega (con excepción de los gastos adicionales derivados del hecho de que el consumidor haya elegido un tipo de entrega distinto de la entrega estándar más barata ofrecida por el proveedor) sin demora y, a más tardar, en un plazo de 14 días a partir de la fecha en que el proveedor haya recibido la notificación de la rescisión de este contrato. Para este reembolso, el Proveedor utilizará el mismo medio de pago que el consumidor utilizó para la transacción original, a menos que se acuerde expresamente lo contrario; en ningún caso se cobrarán derechos por este reembolso.\")\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Modalidades de pago\",\n      content: [p(\"6.1. A menos que se indique lo contrario en el proceso de pedido, los honorarios de los contratos de prima deben pagarse por adelantado durante todo el período de vigencia del contrato.\"), p(\"6.2. El pago se puede realizar a través de todos los métodos de pago que se detallan en el sitio web sin cargos adicionales. Como parte del proceso de pago, el Proveedor encarga a un proveedor de servicios de pago externo que procese los datos de pago introducidos por el Usuario.\"), p(\"6.3. Después de seleccionar el sistema de pago deseado, el usuario introduce los datos necesarios en los campos de datos correspondientes. El proveedor de servicios de pago encargado está autorizado a aceptar pagos en nombre del proveedor. El proveedor se reserva el derecho de restringir los sistemas de pago ofrecidos.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. Ofertas de pago para las escuelas: Licencia escolar ANTON\",\n      content: [p(\"7.1. Las escuelas pueden desbloquear características adicionales para el personal de la escuela, los docentes y los estudiantes mediante la compra de una oferta premium.\"), p(\"7.2. Sólo con el envío del pedido, la escuela o el cliente hace una oferta vinculante para concluir un contrato con el proveedor. El proveedor puede aceptar la oferta en un plazo de 2 días hábiles enviando una confirmación de pedido, una factura o activando la oferta.\"), p(\"7.3. Las cotizaciones del proveedor en el momento de la celebración del contrato son exclusivamente decisivas.\"), p(\"7.4. El término se muestra al cliente en el momento de la compra. La licencia puede ser rescindida por cualquiera de las partes en cualquier momento después de la conclusión del contrato al final del período de ejecución. Si no se termina antes del final del período de ejecución, se prorrogará un año más. La notificación de la terminación debe hacerse por correo electrónico o por escrito.\"), p(\"7.5. El alcance de los servicios se basa en la descripción del producto y también forma parte del contrato.\"), p(\"7.6. El importe de la factura debe pagarse sin deducciones 14 días después de la fecha de la factura.\"), p(\"7.7. El cliente se encuentra en mora si no realiza el pago en respuesta a un recordatorio enviado por el proveedor después de la fecha de vencimiento. Incluso sin un recordatorio, el incumplimiento se producirá a más tardar 30 días después de la fecha de vencimiento y la recepción de la factura.\"), p(\"7.8. Las escuelas e instituciones sólo pueden permitir que los profesores o el personal pedagógico empleado por ellos accedan a las funciones de profesor y administrador de la Licencia Escolar. La junta escolar sólo puede registrar escuelas bajo su patrocinio para el uso de una licencia de la junta escolar.\"), p(\"7.9. Las escuelas e instituciones están obligadas a proporcionar información veraz sobre el número de estudiantes, profesores y personal de la escuela y sólo pueden permitir que los miembros activos accedan a la oferta de la prima o a partes de ella.\"), p(\"7.10. El proveedor tiene derecho a bloquear temporalmente el acceso de los usuarios a ANTON, en su totalidad o en parte, y a rescindir el acuerdo de licencia escolar sin previo aviso con efecto inmediato si existe una sospecha razonable de que los usuarios no pertenecen al grupo de personas autorizadas a utilizar el servicio, o que el servicio ha sido mal utilizado, utilizado para cometer actos ilegales o en violación de los derechos de terceros, o se han utilizado en incumplimiento de contrato o se ha permitido ese uso, terceros no autorizados han tenido conocimiento de los datos de acceso, en particular de la contraseña de un usuario administrador o de otros usuarios, porque no se ha observado el cuidado necesario en el manejo de esos datos, en particular los principios reconocidos de seguridad de los datos. El proveedor sólo ejercerá este derecho teniendo en cuenta los intereses legítimos del usuario y notificará a la escuela el bloqueo, ya sea por escrito, o por correo electrónico.\"), p(\"7.11. Las escuelas pueden marcar las cuentas de usuario que han creado, o que son responsables de administrar, para que sean suprimidas después de un período de transición de 60 días. Los usuarios, y si es necesario sus tutores legales, deben ser informados por las escuelas. Se les dará la oportunidad de transferir los datos almacenados en la cuenta del usuario a una nueva cuenta en un plazo de 60 días y de seguir utilizándolas de manera independiente. Después de este período, las cuentas de usuario se eliminarán automáticamente.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Accesibilidad de la oferta, limitación de la responsabilidad\",\n      content: [p(\"8.1. El proveedor utiliza para sus servicios las tecnologías actuales y de uso general. Para poder utilizar ANTON en toda su extensión, los usuarios también deben utilizar estas tecnologías (por ejemplo, la tecnología actual de los navegadores, los webckets) o permitir su uso en su ordenador o dispositivo móvil (por ejemplo, la activación de JavaScript). Si se utilizan tecnologías más antiguas o tecnologías que no son de uso general, el usuario sólo podrá utilizar ANTON de forma limitada.\"), p(\"8.2. Los servicios de Internet necesarios para el uso de ANTON y el equipo requerido para este fin son responsabilidad exclusiva del usuario y, en su caso, de la escuela, en lo que respecta a los costos incurridos, la disponibilidad y la seguridad de la conexión de datos.\"), p(\"8.3. El proveedor no garantiza expresamente que los servicios ofrecidos sean adecuados para los objetivos específicamente perseguidos por el usuario individual.\"), p(\"8.4. Quedan excluidas las reclamaciones de los usuarios y clientes por daños y perjuicios. Quedan excluidas las reclamaciones por daños y perjuicios derivados de lesiones a la vida, la integridad física o la salud o del incumplimiento de obligaciones contractuales esenciales (obligaciones cardinales), así como la responsabilidad por otros daños y perjuicios basados en el incumplimiento intencional o por negligencia grave de las obligaciones por parte del proveedor, sus representantes legales o agentes indirectos. Las obligaciones contractuales materiales son aquellas cuyo cumplimiento es necesario para alcanzar el objetivo del contrato. Una “obligación cardinal” u “obligaciones contractuales esenciales” son obligaciones cuyo cumplimiento hace posible, en primer lugar, la correcta ejecución del contrato y en cuya observancia se basa y puede confiar regularmente la parte contractual. En caso de pérdida de datos, el Proveedor será responsable, como máximo, del esfuerzo necesario para la reconstrucción en caso de que los usuarios y clientes hagan una copia de seguridad adecuada de los datos.\"), p(\"8.5. En caso de incumplimiento de obligaciones contractuales importantes, el proveedor sólo será responsable de los daños previsibles típicos del contrato si dichos daños fueron causados por simple negligencia, a menos que las reclamaciones por daños se basen en lesiones a la vida, el cuerpo o la salud.\"), p(\"8.6. Las restricciones de los párrafos 8.4 y 8.5 se aplicarán también a favor de los representantes legales y agentes indirectos del proveedor si se presentan reclamaciones directamente contra ellos.\"), p(\"8.7. Disponibilidad: Los productos en línea del proveedor están generalmente disponibles las 24 horas del día. Sin embargo, debido a la labor de servicio necesaria en el sistema de información, puede haber períodos de no disponibilidad.\"), p(\"8.8. Las perturbaciones del acceso a Internet y del tráfico de datos en Internet debidas a hechos de los que el proveedor no es responsable y que dificultan o imposibilitan el acceso (por ejemplo, debido a la configuración de un cortafuegos) no afectarán a la reclamación de remuneración del Proveedor. Queda excluida la responsabilidad del proveedor por falta de disponibilidad en los casos de la sección 8.1 y la sección 8.2. El derecho de los usuarios y clientes a una terminación extraordinaria no se ve afectado.\"), p(\"8.9. Queda excluida cualquier otra responsabilidad por daños que no esté prevista en las secciones 8.4 y 8.5, independientemente de la naturaleza jurídica de la reclamación presentada. A este respecto, el proveedor no será responsable, en particular, de los daños indirectos, como el lucro cesante y otras pérdidas financieras de los usuarios y clientes. Las disposiciones obligatorias de la Ley de responsabilidad por productos defectuosos no se ven afectadas.\"), p(\"8.10. Las reclamaciones de reembolso de los gastos de los usuarios y clientes se limitan al importe del interés que tienen en el cumplimiento del contrato.\"), p(\"8.11. Los usuarios y clientes indemnizan al proveedor por todas las reclamaciones presentadas por otros usuarios y clientes u otros terceros contra el proveedor debido a la violación de sus derechos por el uso de las ofertas del usuario o cliente respectivo o de los usuarios admitidos por el proveedor. En este contexto, el usuario o cliente también asume los costos de la defensa legal necesaria del proveedor, incluyendo todos los honorarios del tribunal y del abogado. Esto no se aplica si el usuario o cliente no es responsable de la infracción.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Indemnización\",\n      content: [p(\"9.1. La oferta sólo puede ser utilizada de acuerdo con estos TCG. En particular, los usuarios no están autorizados a realizar ingeniería inversa, descompilar, desensamblar, modificar o desarrollar obras derivadas basadas en ANTON o cualquier parte de ella; a eludir las medidas de protección utilizadas por el proveedor o sus licenciatarios para proteger el contenido al que se puede acceder a través de ANTON; Copiar, almacenar, editar, desarrollar trabajos derivados basados en, o modificar de cualquier forma, cualquier contenido puesto a disposición a través de ANTON; Alquilar o sublicenciar la cuenta de usuario; Compartir la cuenta de usuario con otras personas y/o conceder a otras personas el acceso a los servicios de pago de ANTON; Utilizar ANTON de cualquier otra forma impropia que viole estas TAS.\"), p(\"9.2. En los casos descritos en la sección 9.1, así como en todos los demás casos de uso indebido, el usuario se compromete a mantener indemne al proveedor. En cualquier caso, el proveedor se reserva el derecho de bloquear las cuentas de los usuarios sin previo aviso en cuanto haya indicios de uso indebido o abusivo y el proveedor tenga un interés legítimo en el bloqueo.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. Derechos de propiedad intelectual\",\n      content: [p(\"10.1. Todos los textos, imágenes y otros contenidos y obras con derechos de autor que se ponen a disposición en el marco de ANTON están protegidos por derechos de autor. Toda utilización no prevista en el contrato, en particular con fines comerciales u operativos, requiere el consentimiento previo del proveedor en forma de texto.\"), p(\"10.2. En el caso de los contenidos que se ponen a disposición de forma expresa a través de una licencia Creative Commons, se aplican los términos de la licencia Creative Commons aplicable.\"), p(\"10.3. Todo uso de todas las marcas, diseños y nombres comerciales utilizados por el proveedor en el marco de la oferta requiere también el consentimiento previo del proveedor por escrito\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"11. Contenido generado por el usuario\",\n      content: [p(\"11.1. Si los usuarios generan contenidos por sí mismos, por ejemplo, crean una lista de aprendizaje, crean una imagen o ponen a disposición materiales a través de ANTON, son totalmente responsables de la naturaleza de estos contenidos y de cualquier daño resultante. Esto es así independientemente de que el contenido en cuestión consista en texto, gráficos, archivos de audio, programas informáticos o cualquier otro formato.\"), p(\"11.2. Los usuarios sólo pueden almacenar en ANTON contenidos que sean adecuados para el aprendizaje y el estudio. El proveedor se reserva el derecho de tomar medidas contra los usuarios que violen esta disposición. Esas medidas pueden incluir, entre otras, la eliminación del contenido en cuestión, la cancelación de las cuentas de las personas en cuestión o la adopción de otras medidas legales. El Contenido prohibido incluye, pero no se limita a, el contenido que viola los derechos del proveedor o de terceros, es de naturaleza ofensiva o comercial, o viola las leyes y reglamentos aplicables.\"), p(\"11.3. Cuando los usuarios crean o cargan contenido o cualquier otro material a ANTON, conceden al proveedor una licencia mundial, perpetua y libre de regalías (con derecho a sublicenciar) para utilizar, copiar, reproducir, procesar, adaptar, modificar, publicar, transmitir, mostrar y distribuir dicho contenido o material en o a través de todos los medios o métodos de distribución (existentes o desarrollados posteriormente). Se permiten usos adicionales por parte del proveedor u otras compañías o individuos que actúen como afiliados del proveedor sin compensación a los usuarios por el contenido que envíen, publiquen o pongan a disposición de cualquier otro modo a través del Servicio.\"), p(\"11.4. Al poner a disposición contenidos a través de ANTON, los usuarios declaran y garantizan que no están infringiendo los derechos de terceros y que los contenidos no contienen ni instalan malware o material censurable.\"), p(\"11.5. El proveedor no revisa ni puede revisar todo el material publicado en el servicio y, por lo tanto, no puede ser responsable del contenido, el uso o los efectos de dicho material. El hecho de que el proveedor opere el servicio no significa, ni implica, que el proveedor respalde el material publicado en el servicio, o que considere que dicho material no contiene errores, es útil o no es perjudicial.\"), p(\"11.6. El contenido generado por el usuario, como las listas de aprendizaje, puede contener material potencialmente ofensivo, indecente o de otro modo objetable, así como contenido en el que pueden producirse errores técnicos, de hecho, ortográficos o de otro tipo.\"), p(\"11.7. El Servicio puede contener material que viole o infrinja la propiedad intelectual y otros derechos de propiedad de terceros, o en el que la descarga, la copia o el uso puedan estar sujetos a términos y condiciones adicionales escritos o no escritos. El proveedor renuncia a toda responsabilidad por cualquier daño que resulte del uso del servicio por parte de los visitantes, o de la descarga de cualquier contenido allí publicado. Si los usuarios descubren contenidos u otros materiales que violan estos términos y condiciones, el sitio web del provedor tinen funciones que les permiten informar al proveedor.\"), p(\"11.8. El Proveedor respeta la propiedad intelectual de los demás. Si cree que el material publicado o enlazado en el sitio web de ANTON o en las aplicaciones para móviles infringe sus derechos de autor, por favor notifíquenoslo. El proveedor, si es necesario, eliminará el contenido ofensivo o desactivará todos los enlaces al contenido. Si un usuario comete una infracción única o repetida de los derechos de autor u otros derechos de propiedad intelectual de ANTON u otros, el Proveedor podrá, a su entera discreción, cancelar o denegar el acceso o el uso del Servicio. En el caso de dicha terminación, el Proveedor no estará obligado en modo alguno a reembolsar las cantidades pagadas por adelantado por el usuario en cuestión.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"12. Disposiciones finales\",\n      content: [\n        p(\"12.1. La relación contractual entre el proveedor y el usuario o cliente está sujeta a la ley alemana, en la medida en que sea legalmente permisible. Si la ley del país en el que está domiciliado el consumidor prevé una mayor protección del consumidor, ésta no se verá afectada.\"), p(\"12.2. El proveedor no participa en ningún procedimiento de resolución de controversias ante una junta de arbitraje de consumidores en el sentido de la Ley de resolución de controversias de consumidores.\"), p(\"12.3. La Comisión Europea ofrece una plataforma para la solución extrajudicial de controversias en línea (plataforma ODR), a la que se puede acceder en:\"), Div({\n          textDecoration: \"underline\",\n          marginBottom: \"1.2em\"\n        }).html(\"https://ec.europa.eu/consumers/odr\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://ec.europa.eu/consumers/odr/main/index.cfm?lng=ES\");\n        }).css({\n          marginBottom: \"1em\"\n        }), p(\"12.4. El contrato seguirá siendo vinculante en sus partes restantes, incluso si algunos puntos son jurídicamente inválidos. Los puntos inválidos serán sustituidos por las disposiciones legales, si las hubiera. Sin embargo, en la medida en que esto represente una dificultad excesiva para una de las partes contratantes, el contrato en su conjunto quedará sin efecto.\"), p(\"12.5. El proveedor se reserva el derecho de modificar estos TCG por razones objetivas (por ejemplo, debido a cambios en la situación jurídica o en la propia oferta del proveedor, avances técnicos, etc.). Esto se aplica en particular si las nuevas ofertas del proveedor requieren nuevas regulaciones.\"), p(\"12.6. Los TCG enmendados se enviarán al usuario o cliente por adelantado por correo electrónico o por medio de otro formulario adecuado o se mostrarán en el sitio web y en las aplicaciones móviles. Si el usuario no se opone a los TCG modificados en el plazo de seis semanas, se considerarán aceptados. En caso de objeción, el Proveedor puede bloquear la cuenta del usuario, por lo que los pagos ya efectuados se reembolsarán proporcionalmente al plazo restante. El proveedor se referirá a estas consecuencias jurídicas por separado en el mensaje con el TGC modificado.\")\n      ]\n    }));\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"addons/navbar/bar/user/user/items/itemMathWeeklySpecial/badge/badge.ls","text":"(function(){\n  return function(){\n    var levelCount;\n    levelCount = inc(\"/data/user/calcWeeklySpecialData/calc\")().todoLevelCount;\n    return inc(\"../../../_badge/badge\")({\n      badgeNumber: levelCount,\n      onNewLogEventNames: [\"assistantLevelFinish\", \"assistantExpired\", \"assistantIntroShown\", \"assistantStart\", \"assistantCompleted\"],\n      onNewLogEvents: function(div){\n        return div.replaceWith(inc(THISFILE)());\n      }\n    });\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"addons/navbar/bar/user/user/items/itemMathWeeklySpecial/logInviteShownEvent/log.ls","text":"(function(){\n  return function(assistantName){\n    return log.log({\n      event: \"assistantInviteShown\",\n      assistantName: assistantName,\n      isDebug: engine.isDebug ? true : void 8\n    });\n  };\n})();","updated":"2024-10-16T09:56:10.496135"},{"path":"lib/util/loadProjectSyncNext/load.ls","text":"(function(){\n  return function(params){\n    var page, project;\n    page = app.currentPage;\n    project = params.project;\n    return inc(\"/lib/util/loadProjects/load\")({\n      projectDescriptions: _.isString(project)\n        ? [{\n          project: project\n        }]\n        : _.ensureArray(project),\n      logResults: false,\n      onProjectMissingError: function(){\n        return inc(\"popup/popup\")(\"reloadOnline\", params);\n      },\n      onDone: function(pds){\n        var result;\n        if (page !== app.currentPage) {\n          return;\n        }\n        result = inc(\"/lib/init/checkProjectsSync/check/check\")(pds);\n        if (result.asyncInfo === \"projectVersions_deprecated\") {\n          return inc(\"popup/popup\")(\"restartApp\", params);\n        } else if (result.asyncInfo === \"loadedProjects_deprecated\") {\n          return inc(\"popup/popup\")(\"reloadOnline\", params);\n        } else if (result.isSynced) {\n          return params.onLoaded();\n        }\n      }\n    });\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"lib/util/loadProjectSyncNext/popup/popup.ls","text":"(function(){\n  return function(type, params){\n    var text, label, tap, div, popup;\n    if (type === \"restartApp\") {\n      text = T(\"restartApp\");\n      label = T(\"buttonRestartApp\");\n      tap = function(){\n        return location.reload();\n      };\n    } else if (type === \"reloadOnline\") {\n      text = T(\"offlineMessage\");\n      label = T(\"buttonReloadPage\");\n      tap = function(){\n        popup.close();\n        return inc(\"../load\")(params);\n      };\n    }\n    div = Div({\n      margin: \"0.2em 0.5em 1.2em\"\n    }).html(Div({\n      margin: \"1em auto\",\n      lineHeight: \"1.5em\"\n    }).html(text), Button(label).tap(tap));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(type){\n        if (type === \"outside\" || type === \"icon\") {\n          return typeof params.onAbort == 'function' ? params.onAbort() : void 8;\n        }\n      }\n    });\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"pages/start/login/relogin/_t.ls","text":"(function(){\n  return {\n    removeQuestion: {\n      de: \"Soll dieses Nutzerkonto jetzt von der Startseite auf diesem Gerät entfernt werden?\",\n      en: \"Should this user now be removed from the homepage of this device?\",\n      fr: \"Veux-tu retirer dès maintenant ce compte de la page d'accueil de cet appareil&nbsp;?\",\n      es: \"¿Quieres que esta cuenta desaparezca de la página de inicio en este dispositivo?\",\n      pt: \"Você gostaria de remover esta conta da tela inicial neste dispositivo?\"\n    },\n    dontShowUser: {\n      de: \"Dieses Nutzerkonto nicht mehr anzeigen\",\n      en_gb: \"No longer display user\",\n      en: \"Don't display this user anymore.\",\n      fr: \"Ne plus afficher ce compte.\",\n      es: \"Ya no mostrar esta cuenta.\",\n      pt: \"Não mostrar mais esta conta.\"\n    },\n    pleaseRelogin: {\n      de: \"Bitte melde dich aus Sicherheitsgründen erneut an.\",\n      en: \"For security reasons, please log in again.\",\n      fr: \"Pour des questions de sécurité, tu dois te reconnecter.\",\n      es: \"Por medidas de seguridad, es necesario que vuelvas a iniciar sesión.\",\n      pt: \"Por favor, faça seu login novamente por medidas de segurança.\"\n    },\n    login: {\n      de: \"Anmelden\",\n      en: \"Log in\",\n      fr: \"Connexion\",\n      es: \"Iniciar sesión\",\n      pt: \"Fazer login\"\n    },\n    enterLoginCode: {\n      de: \"Anmelde-Code eingeben\",\n      en: \"Enter login code\",\n      fr: \"Entrer le code de connexion\",\n      es: \"Ingresa tu clave de acceso\",\n      pt: \"Digite seu código de acesso\"\n    },\n    enterPw: {\n      de: \"Passwort eingeben\",\n      en: \"Enter password\",\n      fr: \"Entrer le mot de passe\",\n      es: \"Ingresa tu contraseña\",\n      pt: \"Digitar senha\"\n    },\n    pleaseEnterLoginCode: {\n      de: \"Bitte trage deinen Anmelde-Code ein.\",\n      en: \"Please enter your login code.\",\n      fr: \"Tu dois entrer ton code de connexion.\",\n      es: \"Por favor, ingresa to clave de acceso.\",\n      pt: \"Por favor, digite seu código de acesso.\"\n    },\n    pleaseEnterPw: {\n      de: \"Bitte trage dein Passwort ein.\",\n      en: \"Please enter your login code.\",\n      fr: \"Tu dois entrer ton mot de passe.\",\n      es: \"Por favor, ingresa tu contraseña.\",\n      pt: \"Por favor, digite sua senha.\"\n    },\n    invalidLoginCode: {\n      de: \"Der Anmelde-Code ist nicht gültig.\",\n      en: \"The login code is not valid.\",\n      fr: \"Le code de connexion n'est pas valide.\",\n      es: \"La clave de acceso no es válida.\",\n      pt: \"Este código de acesso não é válido.\"\n    }\n  };\n})();","updated":"2026-02-23T18:43:09.084739"},{"path":"lib/init/classKit/_shared/removeHtmlFormatting/remove.ls","text":"(function(){\n  return function(s){\n    var tagRegex;\n    if (!s) {\n      return \"\";\n    }\n    tagRegex = /(<(?:.|\\R)*?>)/g;\n    return s.replace(tagRegex, \"\");\n  };\n})();","updated":"2023-06-27T09:33:01.186676"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/pixelPaint/_t.ls","text":"(function(){\n  return {\n    myPictures: {\n      de: \"Meine Bilder\",\n      en: \"My Pictures\",\n      fr: \"Mes dessins\",\n      es: \"Mis imágenes\",\n      pt: \"Minhas imagens\"\n    },\n    newPictures: {\n      de: \"Neue Bilder\",\n      en: \"New Pictures\",\n      fr: \"Nouveaux dessins\",\n      es: \"Imágenes nuevas\",\n      pt: \"Imagens novas\"\n    },\n    popularPictures: {\n      de: \"Beliebte Bilder\",\n      en: \"Popular Pictures\",\n      fr: \"Dessins populaires\",\n      es: \"Imágenes populares\",\n      pt: \"Imagens populares\"\n    },\n    groupPictures: {\n      de: \"Gruppen-Bilder\",\n      en: \"Group Pictures\",\n      fr: \"Dessins du groupe\",\n      pt: \"Imagens do grupo\",\n      es: \"Imágenes de grupo\"\n    },\n    antonFavourites: {\n      de: \"ANTON-Lieblingsbilder\",\n      en_gb: \"ANTON Favourite Pictures\",\n      en: \"ANTON Favorite Pictures\",\n      fr: \"Les dessins favoris sur ANTON\",\n      es: \"Las Imágenes favoritas de ANTON\",\n      pt: \"Imagens favoritas de ANTON\"\n    },\n    manualDesktop: {\n      de: \"Fülle jedes Pixel mit einer Form. Eine Form kann zwei Farben haben und gedreht oder gespiegelt werden. <br><br>Man übermalt oder löscht die Pixel einfach mit der Maus und im Experten-Modus kann man zudem beliebige Pixel auswählen, um dann alle zusammen zu drehen, zu spiegeln, zu färben, etc.\",\n      en_gb: \"Fill each pixel with a design. A design can have two colours and be both rotated and reflected. <br><br>You can paint over or delete your pixels by simply clicking on them with the mouse. In expert mode it is possible to select multiple pixels to colour, rotate or reflect all at the same time.\",\n      en: \"Fill each pixel with a design. A design can have two colors and be both rotated and reflected. <br><br>You can paint over or delete your pixels by simply clicking on them with the mouse. In expert mode it is possible to select multiple pixels to color, rotate or reflect all at the same time.\",\n      fr: \"Remplis chaque pixel avec une forme. Une forme peut avoir 2 couleurs. Tu peux la faire tourner ou l'inverser. <br><br>Tu peux facilement remplacer un pixel ou l'effacer en cliquant dessus avec ta souris. En mode expert il est possible de choisir plusieurs pixels pour les colorier, les faire tourner ou les inverser tous en même temps.\",\n      es: \"Selecciona una de las formas disponibles para rellenar cada pixel.  Puedes elegir dos colores distintos para cada forma, también las puedes rotar e invertir. <br><br>Para remplazar o borrar los pixeles simplemente presiónalos con el cursor. En modo experto, puedes elegir varios pixeles para rotarlos, invertirlos o colorearlos al mismo tiempo.\",\n      pt: \"Preencha cada pixel com uma forma. Uma forma pode ter duas cores e pode ser girada ou espelhada. <br><br> Você pode pintar ou apagar os pixels simplesmente clicando com o mouse. No modo avançado, você poderá selecionar vários pixels para girá-los, invertê-los ou colori-los ao mesmo tempo.\"\n    },\n    manual: {\n      de: \"Fülle jedes Pixel mit einer Form. Eine Form kann zwei Farben haben und gedreht oder gespiegelt werden. <br><br>Man übermalt oder löscht die Pixel einfach mit dem Finger und im Experten-Modus kann man zudem beliebige Pixel auswählen, um dann alle zusammen zu drehen, zu spiegeln, zu färben, etc.\",\n      en_gb: \"Fill each pixel with a design. A design can have two colours and be both rotated and reflected. <br><br>You can paint over or delete your pixels by simply tapping them with your finger. In expert mode it is possible to select multiple pixels to colour, rotate or reflect all at the same time.\",\n      en: \"Fill each pixel with a design. A design can have two colors and be both rotated and reflected. <br><br>You can paint over or delete your pixels by simply tapping them with your finger. In expert mode it is possible to select multiple pixels to color, rotate or reflect all at the same time.\",\n      fr: \"Remplis chaque pixel avec une forme. Une forme peut avoir 2 couleurs. Tu peux la faire tourner ou l'inverser. <br><br>Tu peux facilement remplacer un pixel ou l'effacer en appuyant dessus avec ton doigt. En mode expert il est possible de choisir plusieurs pixels pour les colorier, les faire tourner ou les inverser tous en même temps.\",\n      es: \"Selecciona una de las formas disponibles para rellenar cada pixel. Puedes elegir dos colores distintos para cada forma, también las puedes rotar e invertir. <br><br>Para reemplazar o borrar los pixeles simplemente presiónalos con el dedo. En modo experto, puedes elegir varios pixeles para rotarlos, invertirlos o colorearlos al mismo tiempo.\",\n      pt: \" Preencha cada pixel com uma forma. Uma forma pode ter duas cores e pode ser girada ou espelhada. <br><br> Você pode pintar ou apagar os pixels simplesmente deslizando o dedo sobre a tela. No modo avançado, você poderá selecionar vários pixels para girá-los, invertê-los ou colori-los ao mesmo tempo.\"\n    }\n  };\n})();","updated":"2023-11-30T11:30:00.78351"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/header/header.ls","text":"(function(){\n  return function(o){\n    var click, options, currentPeriodIndex, currentUsersIndex;\n    click = inc(\"click/click\")(o);\n    options = inc(\"options/options\")(click);\n    currentPeriodIndex = inc(\"calcCurrentPeriodIndex/calc\")(o, options);\n    currentUsersIndex = inc(\"calcCurrentUsersIndex/calc\")(o, options);\n    return Div({\n      width: \"100%\",\n      marginTop: \"1em\",\n      borderBottom: \"1px solid \" + Color.grey[300]\n    }).html(inc(\"title/title\")(o), Div({\n      paddingBottom: \"0.4em\"\n    }).html(inc(\"dropdown/dropdown\")(o, options.period, currentPeriodIndex), inc(\"dropdown/dropdown\")(o, options.users, currentUsersIndex)));\n  };\n})();","updated":"2023-11-29T13:58:27.8752"},{"path":"lib/init/loadMaintenanceMessages/load.ls","text":"(function(){\n  return function(onDone){\n    var url, load, onLoaded;\n    url = app.contentServer + \"/files/?fileId=maintenance\";\n    if (engine.isDebug) {\n      url += \"/ide\";\n    }\n    load = function(){\n      var xhr;\n      xhr = new XMLHttpRequest();\n      xhr.responseType = \"json\";\n      xhr.onload = function(){\n        return onLoaded(xhr.response);\n      };\n      xhr.open(\"get\", url);\n      return xhr.send();\n    };\n    onLoaded = function(r){\n      var that;\n      if (that = r != null ? r.maintenanceMessages : void 8) {\n        return engine.maintenanceMessages = that;\n      }\n    };\n    if (!engine.maintenanceMessages) {\n      return load();\n    }\n  };\n})();","updated":"2023-03-15T16:11:11.050822"},{"path":"lib/init/windowSetUrl/setUrl.ls","text":"(function(){\n  return function(){\n    return window.setUrl = function(newUrl){\n      body.removeClass(\"pageReady\");\n      history.replaceState(history.state, \"\", newUrl);\n      return inc(\"../startFirstPage/start\")();\n    };\n  };\n})();","updated":"2023-03-22T09:59:46.97085"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/totalAndCoin/totalAndCoin.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      margin: \"1em\"\n    }).html(inc(\"total/total\")(page.totalCoins), inc(\"coin/coin\")(page.totalCoins), inc(\"spacer/spacer\")());\n  };\n})();","updated":"2024-02-01T11:11:12.926254"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/totalAndCoin/coin/animated/animated.ls","text":"(function(){\n  return function(){\n    var icon;\n    icon = inc(\"../static/static\")().css({\n      transform: \"translateY(-100vh)\"\n    });\n    icon.animation({\n      css: {\n        transform: \"translateY(0)\"\n      },\n      easing: \"ease-in\",\n      onCompleted: function(){\n        return icon.animation({\n          css: {\n            transform: \"scaleY(0.95)\",\n            transformOrigin: \"50% 100%\"\n          },\n          easing: \"ease-out\",\n          duration: 100,\n          onCompleted: function(){\n            return icon.animation({\n              css: {\n                transform: \"scaleY(1)\"\n              },\n              easing: \"ease-in\",\n              duration: 100,\n              onCompleted: function(){\n                return icon.hide();\n              }\n            });\n          }\n        });\n      }\n    });\n    return icon;\n  };\n})();","updated":"2023-04-19T15:22:48.756583"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/totalAndCoin/coin/coin.ls","text":"(function(){\n  return function(totalCoins){\n    return Div({\n      display: \"inline-block\",\n      width: \"5em\",\n      height: \"5em\"\n    }).html(inc(\"animated/animated\")(), inc(\"static/static\")().css({\n      opacity: totalCoins > 0 ? 1 : 0\n    }).animation({\n      css: {\n        transform: \"scale(1.1)\"\n      },\n      easing: \"ease-out\",\n      autoReverse: true,\n      delay: 500,\n      duration: 150\n    }));\n  };\n})();","updated":"2023-04-19T15:22:48.756583"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/totalAndCoin/spacer/spacer.ls","text":"(function(){\n  return function(){\n    return Div({\n      fontSize: \"1.2em\",\n      width: \"2em\"\n    });\n  };\n})();","updated":"2023-04-19T15:22:48.756583"},{"path":"lib/util/loadPlansAll/load.ls","text":"(function(){\n  return function(o){\n    var planVersions, index, totalDone, errors, loadPlansList, loadPlans, onPlanDone, finish;\n    planVersions = undefined;\n    index = -1;\n    totalDone = 0;\n    errors = [];\n    loadPlansList = function(){\n      return inc(\"../loadPlansList/load\")({\n        onError: function(error){\n          errors.push(error);\n          return finish();\n        },\n        onLoaded: function(planVersions2){\n          planVersions = planVersions2;\n          return loadPlans();\n        }\n      });\n    };\n    loadPlans = function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = planVersions).length; i$ < len$; ++i$) {\n        results$.push((fn$.call(this, ref$[i$])));\n      }\n      return results$;\n      function fn$(planVersion){\n        return inc(\"../loadPlan/load\")({\n          path: \"/../\" + planVersion.project + \"/plan\",\n          fileApi: \"files\",\n          onLoaded: function(plan){\n            planVersion.plan = plan;\n            return onPlanDone();\n          },\n          onError: function(error){\n            errors.push(error);\n            return onPlanDone();\n          }\n        });\n      }\n    };\n    onPlanDone = function(){\n      totalDone++;\n      if (totalDone === planVersions.length) {\n        return finish();\n      }\n    };\n    finish = function(){\n      var plans;\n      if (errors.length > 0) {\n        return o.onError(errors);\n      } else {\n        plans = _.map(planVersions, \"plan\");\n        return o.onLoaded(plans);\n      }\n    };\n    return loadPlansList();\n  };\n})();","updated":"2023-04-19T15:22:48.756583"},{"path":"pages/start/startUser/07_extraPages/showDirTeacherDirCanceledWarning/page/buttonDone/button.ls","text":"(function(){\n  return function(page){\n    var click;\n    click = function(){\n      log.log({\n        event: \"showDirTeacherDirCanceledWarning\"\n      });\n      return inc(\"../../../_onExtraPageDone/on\")();\n    };\n    return Button(T(\"continueButton\")).css({\n      marginTop: \"1em\"\n    }).tap(click);\n  };\n})();","updated":"2023-03-30T08:36:55.754584"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/01_page_email/page.ls","text":"(function(){\n  return function(page){\n    page.userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        if (log.findLast(\"setEMail\")) {\n          page.html(T(\"emailSet\"), Div({\n            height: \"1em\"\n          }), Button(T(\"continueButton\")).tap(function(){\n            inc(\"../00_shared/logEvent/log\")(\"email set\");\n            return inc(\"../../_onExtraPageDone/on\")();\n          }));\n          return;\n        }\n        return page.append(inc(\"avatar/avatar\")(page), inc(\"title/title\")(page), inc(\"text/text\")(page), inc(\"setEmailButton/button\")(page), inc(\"skipButton/button\")(page));\n      }\n    };\n  };\n})();","updated":"2023-03-30T08:36:55.754584"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/02_page_loginCode/buttonDone/button.ls","text":"(function(){\n  return function(){\n    return Button({\n      label: T(\"okDone\")\n    }).css({\n      marginTop: \"1em\"\n    }).tap(function(){\n      inc(\"../../00_shared/logEvent/log\")(\"login code\");\n      return inc(\"../../../_onExtraPageDone/on\")();\n    });\n  };\n})();","updated":"2023-03-30T08:36:55.754584"},{"path":"lib/util/startPage/pageStart/handleGuiLanguageChange/handle.ls","text":"(function(){\n  var lastGuiLanguage;\n  lastGuiLanguage = engine.guiLanguage;\n  return function(){\n    var l;\n    l = engine.guiLanguage;\n    if (l === lastGuiLanguage) {\n      return;\n    }\n    document.documentElement.setAttribute(\"lang\", l.slice(0, 2));\n    inc(\"changeFont/change\")(l);\n    return lastGuiLanguage = l;\n  };\n})();","updated":"2023-03-30T08:36:55.754584"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/00_shared/logEventAndFinish/logEventAndFinish.ls","text":"(function(){\n  return function(type){\n    log.log({\n      event: \"showDirTeacherSuggestSecureAccount\",\n      type: type\n    });\n    inc(\"/lib/util/cache/del/del\")(\"userHasPassword\");\n    return inc(\"../../../_onExtraPageDone/on\")();\n  };\n})();","updated":"2023-03-30T08:36:55.754584"},{"path":"pages/start/startUser/07_extraPages/connectToSesam/page/finish/finish.ls","text":"(function(){\n  return function(page){\n    return function(){\n      delete app.sesamData;\n      return inc(\"../../../_onExtraPageDone/on\")();\n    };\n  };\n})();","updated":"2023-03-30T08:36:55.754584"},{"path":"pages/start/startUser/07_extraPages/showInfoMessagePopup/show.ls","text":"(function(){\n  return function(o){\n    var events, ref$, event;\n    events = (ref$ = typeof log != 'undefined' && log !== null ? log.list(\"infoMessage\") : void 8) != null\n      ? ref$\n      : [];\n    events = _.filter(events, function(e){\n      return !e.readAt && e.type === \"loginPopup\";\n    });\n    if (events.length === 0) {\n      return false;\n    }\n    event = events[0];\n    inc(\"/lib/gui/infoPopup/popup\")({\n      label: event.message,\n      buttonLabel: T(\"continueButton\"),\n      onClose: function(){\n        var event2;\n        event2 = _.cloneDeep(event);\n        event2.event = \"infoMessageRead\";\n        event2.readAt = new Date().toISOString();\n        delete event2.created;\n        delete event2.inserted;\n        log.log(event2);\n        log.deleteEvent(event);\n        return inc(\"../_onExtraPageDone/on\")(o);\n      }\n    });\n    return true;\n  };\n})();","updated":"2023-03-30T08:36:55.754584"},{"path":"pages/start/startUser/07_extraPages/_onExtraPageDone/on.ls","text":"(function(){\n  return function(o){\n    return inc(\"../extraPages\")(o);\n  };\n})();","updated":"2023-03-30T08:36:55.754584"},{"path":"pages/start/startUser/07_extraPages/_onFinish/on.ls","text":"(function(){\n  return function(o){\n    delete app.extraPageIndex;\n    return inc(\"../../08_start/start\")(o);\n  };\n})();","updated":"2023-03-30T08:36:55.754584"},{"path":"pages/content/plan/_topbar/menu/items/lastViewedItems/items.ls","text":"(function(){\n  return function(){\n    var e, planHistory, that, items, res$, i$, len$, planPath, pd, item;\n    e = log.findLast(\"setCurrentPlan\");\n    planHistory = (that = e != null ? e.planHistory : void 8)\n      ? _.clone(that)\n      : (that = e != null ? e.plan : void 8)\n        ? [that]\n        : [];\n    res$ = [];\n    for (i$ = 0, len$ = planHistory.length; i$ < len$; ++i$) {\n      planPath = planHistory[i$];\n      pd = inc(\"/data/content/calcPlanDescription/calc\")(planPath);\n      if (!_.includes(pd != null ? pd.guiLanguages : void 8, engine.guiLanguage)) {\n        continue;\n      }\n      if (pd.isOutdated) {\n        continue;\n      }\n      res$.push(item = inc(\"../item/item\")(pd));\n    }\n    items = res$;\n    return items.reverse();\n  };\n})();","updated":"2024-06-06T14:44:14.950962"},{"path":"lib/init/startFirstPage/deepLinkContent/deepLinkContent.ls","text":"(function(){\n  return function(pageUrl){\n    var pds, planDescription, totalSlashes;\n    pageUrl == null && (pageUrl = inc(\"/lib/util/browser/getPageUrl/get\")());\n    if (!_.startsWith(pageUrl, T(\"learnUrl\"))) {\n      return false;\n    }\n    pds = inc(\"/data/content/calcPlanDescriptions/calc\")(true);\n    planDescription = _.find(pds, function(pd){\n      return pageUrl.split(\"/\")[1] === pd.pageUrl.split(\"/\")[1];\n    });\n    totalSlashes = pageUrl.split(\"/\").length - 1;\n    if (_.startsWith(planDescription != null ? planDescription.project : void 8, \"c-preschool-shapes\")) {\n      inc(\"plan/plan\")(pageUrl, planDescription);\n      return true;\n    }\n    if (!planDescription) {\n      debug(\"content deeplink unknown plan description for \" + pageUrl);\n      inc(\"../unknownUrl/unknownUrl\")();\n    } else if (totalSlashes === 1) {\n      inc(\"plan/plan\")(pageUrl, planDescription);\n    } else if (totalSlashes === 3) {\n      inc(\"block/block\")(pageUrl, planDescription);\n    } else if (totalSlashes === 4) {\n      inc(\"level/level\")(pageUrl, planDescription);\n    } else {\n      inc(\"../unknownUrl/unknownUrl\")();\n    }\n    return true;\n  };\n})();","updated":"2024-06-06T14:44:14.950962"},{"path":"lib/init/startFirstPage/deepLinkMobile/deepLinkMobile.ls","text":"(function(){\n  return function(){\n    var handleMobileDeepLink;\n    if (engine.isMobileApp) {\n      handleMobileDeepLink = inc(\"/lib/util/handleMobileDeepLink/handleMobileDeepLink\");\n      document.addEventListener(\"resume\", handleMobileDeepLink, false);\n    }\n    if (engine.isMobileApp && engine.mobileDeepLink) {\n      handleMobileDeepLink();\n      return true;\n    }\n  };\n})();","updated":"2024-06-06T14:44:14.950962"},{"path":"lib/init/resetCss/reset.ls","text":"(function(){\n  return function(){\n    var s, id, ref$, tag, meta;\n    s = '\\n  * {\\n    -webkit-tap-highlight-color : transparent;\\n    -webkit-touch-callout       : none;\\n    line-height                 : inherit;\\n    box-sizing                  : border-box;\\n  }\\n\\n  html {\\n    -webkit-text-size-adjust : 100%;\\n    overflow                 : hidden;\\n    height                   : 100%;\\n    background-color         : #fff;\\n  }\\n  \\n  body {\\n    background          : white;\\n    color               : black;\\n    font-family         : Source Sans Pro Solocode, Source Sans Pro, sans-serif;\\n    user-select         : none;\\n    -webkit-user-select : none;\\n    overflow            : auto;\\n    margin              : 0;\\n    height              : 100%;\\n  }\\n  \\n  div {\\n    line-height     : 1.3em;\\n    margin          : 0;\\n    padding         : 0;\\n    outline         : 0;\\n    border          : 0;\\n    display         : block;\\n    position        : relative;\\n    box-sizing      : border-box;\\n    background-clip : padding-box;\\n    min-width       : 0;\\n    min-height      : 0;\\n    align-items     : center;\\n    justify-content : center;\\n    flex            : 0 0 auto;\\n  }\\n  \\n  svg {\\n    box-sizing : content-box;\\n  }\\n  \\n  .hideIEScrollBar{\\n    -ms-overflow-style : none;\\n  }\\n  .hideWebkitScrollBar::-webkit-scrollbar{\\n    display : none;\\n  }\\n  \\n  hr {\\n    height           : 2px; \\n    border           : none;\\n    color            : rgb(224,224,224);\\n    background-color : rgb(224,224,224);\\n    width            : 66.66%;\\n    text-align       : center; \\n    margin           : 0 auto;\\n  }\\n';\n    id = \"resetCss\";\n    if ((ref$ = document.getElementById(id)) != null) {\n      ref$.remove();\n    }\n    tag = document.createElement(\"style\");\n    tag.setAttribute(\"id\", id);\n    tag.innerHTML = s;\n    document.head.appendChild(tag);\n    document.body.setAttribute(\"class\", \"notranslate\");\n    document.body.setAttribute(\"translate\", \"no\");\n    meta = document.createElement(\"meta\");\n    meta.name = \"google\";\n    meta.content = \"notranslate\";\n    document.head.appendChild(meta);\n    return document.documentElement.setAttribute(\"lang\", engine.guiLanguage.substring(0, 2));\n  };\n})();","updated":"2024-06-06T14:44:14.950962"},{"path":"pages/support/help/faqList/create/create.ls","text":"(function(){\n  return function(page){\n    return function(categories){\n      var isStandalone, isBannedFromChat, ref$, category, that;\n      isStandalone = page.params.isStandaloneFaqPage;\n      isBannedFromChat = (typeof log != 'undefined' && log !== null ? (ref$ = log.findLast(\"isBannedFromChat\")) != null ? ref$.value : void 8 : void 8) === true;\n      page.categories = categories;\n      if (page.categories.length === 0) {\n        inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n        return;\n      }\n      page.categories = inc(\"../filterCategories/filter\")(page);\n      if (page.params.search && _.flatMap(page.categories, \"questions\").length === 0) {\n        inc(\"showNotFoundMessage/show\")(page);\n        return;\n      }\n      page.html((function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = page.categories).length; i$ < len$; ++i$) {\n          category = ref$[i$];\n          results$.push(inc(\"../category/category\")(page, category));\n        }\n        return results$;\n      }()), !isStandalone && !isBannedFromChat ? inc(\"../notFoundMessage/message\")(T(\"noAnswerFoundB\"), page.clickOpenChat).css({\n        textAlign: \"left\",\n        margin: \"1.5em auto\"\n      }) : void 8);\n      if (that = page.params.questionUid) {\n        return inc(\"handleQuestionUid/handle\")(page, that);\n      }\n    };\n  };\n})();","updated":"2023-05-31T12:28:28.245496"},{"path":"lib/gui/divEditable/createLineNodes/image/bindHandler/bind.ls","text":"(function(){\n  return function(image){\n    image.ignoreGhostMouseEvents = false;\n    image.bind(\"contextmenu\", function(e){\n      return e.preventDefault();\n    });\n    return image.bind(\"mousedown\", function(e){\n      e.preventDefault();\n      return inc(\"../tap/tap\")(image, e);\n    });\n  };\n})();","updated":"2023-09-13T14:09:53.705919"},{"path":"lib/init/startFirstPage/fixBrowserUrlLanguageAndLastSlash/fix.ls","text":"(function(){\n  return function(){\n    var p, redirects, k, v, languages, that, language, urlParams;\n    if (engine.isMobileApp || location.host === \"preview.anton.app\") {\n      return;\n    }\n    p = location.pathname;\n    if (p.charAt(p.length - 1) !== \"/\") {\n      p = p + \"/\";\n    }\n    redirects = {\n      en: \"en_us\",\n      gb: \"en_gb\",\n      uk: \"en_gb\",\n      mx: \"es\",\n      br: \"pt\"\n    };\n    for (k in redirects) {\n      v = redirects[k];\n      if (_.startsWith(p, \"/\" + k + \"/\")) {\n        p = p.replace(\"/\" + k + \"/\", \"/\" + v + \"/\");\n        break;\n      }\n    }\n    languages = [\"de\", \"en_us\", \"en_gb\", \"fr\", \"es\", \"pt\"];\n    if (that = _.find(languages, function(l){\n      return _.startsWith(p, \"/\" + l + \"/\");\n    })) {\n      language = that;\n      inc(\"/lib/util/setGuiLanguageDevice/set\")(language);\n      p = p.replace(\"/\" + language + \"/\", \"/\");\n    }\n    language == null && (language = engine.guiLanguage);\n    if (p === \"/\") {\n      p = language + \"/\";\n    } else if (p.indexOf(\"/\" + language + \"/\") !== 0) {\n      p = language + p;\n    }\n    urlParams = location.href.split(\"?\")[1] || \"\";\n    if (urlParams) {\n      p += \"?\" + urlParams;\n    }\n    return history.replaceState(history.state, \"\", p);\n  };\n})();","updated":"2023-08-09T13:09:48.317472"},{"path":"pages/support/help/faqList/create/handleQuestionUid/handle.ls","text":"(function(){\n  return function(page, questionUid){\n    var fromQuestion;\n    fromQuestion = page.findFirst(\".question_\" + questionUid);\n    delete page.params.questionUid;\n    if (fromQuestion) {\n      fromQuestion.setLastViewed();\n      return page.scrollElementIntoView(fromQuestion, {\n        center: true,\n        instant: true\n      });\n    }\n  };\n})();","updated":"2023-05-31T12:28:28.245496"},{"path":"pages/support/help/faqList/create/showNotFoundMessage/show.ls","text":"(function(){\n  return function(page){\n    var isStandalone, isBannedFromChat, ref$, label;\n    isStandalone = page.params.isStandaloneFaqPage;\n    isBannedFromChat = (typeof log != 'undefined' && log !== null ? (ref$ = log.findLast(\"isBannedFromChat\")) != null ? ref$.value : void 8 : void 8) === true;\n    label = T(\"noAnswerFoundA\");\n    if (isStandalone || isBannedFromChat) {\n      return page.html(inc(\"../../notFoundMessage/message\")(label));\n    } else {\n      label += \"<br>\" + T(\"noAnswerFoundB\");\n      return page.html(inc(\"../../notFoundMessage/message\")(label, page.clickOpenChat));\n    }\n  };\n})();","updated":"2023-05-31T12:28:28.245496"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/search/loadSearchResult/calcSearchResult/calcTopicResult/calcMatchedBlocks/calc.ls","text":"(function(){\n  return function(blocks, query){\n    var queryParts, matchedBlocks, i$, len$, i, block, uid, blockTitle, ref$, blockTitleMatch, matchedBlockTags;\n    queryParts = query.split(/\\s+/);\n    matchedBlocks = [];\n    for (i$ = 0, len$ = blocks.length; i$ < len$; ++i$) {\n      i = i$;\n      block = blocks[i$];\n      if (engine.isDebug) {\n        uid = _.last(block.puid.split(\"/\"));\n        if (_.startsWith(uid, query) || _.some(block.levels, fn$)) {\n          matchedBlocks.push(block);\n          continue;\n        }\n      }\n      blockTitle = _.deburr((ref$ = block.title) != null ? ref$.toLowerCase().trim().replace(/<[^>]+>/g, \"\") : void 8);\n      blockTitleMatch = queryParts.length === 1\n        ? _.includes(blockTitle, query)\n        : _.every(queryParts, fn1$);\n      if (blockTitleMatch) {\n        block.matchType = \"title\";\n        matchedBlocks.push(block);\n        continue;\n      }\n      matchedBlockTags = _.find(_.sortBy(_.ensureArray(block.tags)), fn2$);\n      if (matchedBlockTags) {\n        block.matchType = \"tags\";\n        block.matchedTags = matchedBlockTags;\n        matchedBlocks.push(block);\n      }\n    }\n    return matchedBlocks;\n    function fn$(l){\n      return _.startsWith(_.last(l.puid.split(\"/\")), query);\n    }\n    function fn1$(p){\n      return _.includes(blockTitle, p);\n    }\n    function fn2$(t){\n      return _.includes(_.deburr(t.toLowerCase()), query);\n    }\n  };\n})();","updated":"2023-05-02T11:04:27.85259"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/search/loadSearchResult/calcSearchResult/calcTopicResult/calc.ls","text":"(function(){\n  return function(topic, plan, searchQuery){\n    var query, queryParts, topicTitle, ref$, uid, topicTitleMatch, matchedTopicTag, matchedBlocks;\n    query = _.deburr(searchQuery.toLowerCase());\n    queryParts = query.split(/\\s+/);\n    topicTitle = _.deburr((ref$ = topic.title) != null ? ref$.toLowerCase().trim().replace(/<[^>]+>/g, \"\") : void 8);\n    if (engine.isDebug) {\n      uid = _.last(topic.puid.split(\"/\"));\n      if (_.startsWith(uid, query)) {\n        return {\n          topic: topic,\n          matchType: \"debugUid\"\n        };\n      }\n    }\n    topicTitleMatch = queryParts.length === 1\n      ? _.includes(topicTitle, query)\n      : _.every(queryParts, function(p){\n        return _.includes(topicTitle, p);\n      });\n    if (topicTitleMatch) {\n      return {\n        topic: topic,\n        matchType: \"topicTitle\"\n      };\n    }\n    matchedTopicTag = _.find(_.sortBy(_.ensureArray(topic.tags)), function(t){\n      return _.includes(_.deburr(t.toLowerCase()), query);\n    });\n    if (matchedTopicTag) {\n      return {\n        topic: topic,\n        topicTag: matchedTopicTag,\n        matchType: \"topicTag\"\n      };\n    }\n    matchedBlocks = inc(\"calcMatchedBlocks/calc\")(topic.blocks, query);\n    if (matchedBlocks.length > 0) {\n      return {\n        topic: topic,\n        blocks: matchedBlocks,\n        matchType: \"block\"\n      };\n    }\n  };\n})();","updated":"2023-05-02T11:04:27.85259"},{"path":"pages/static/security/_t.ls","text":"(function(){\n  return {\n    securityUrl: \"sicherheit\",\n    security: \"Status und Sicherheit\"\n  };\n})();","updated":"2023-05-02T11:04:27.85259"},{"path":"pages/support/help/faqList/loadCategories/calcCategories/calc.ls","text":"(function(){\n  return function(){\n    var categories, res$, i$, ref$, len$, c, f, j$, len1$, i, q, question, that;\n    res$ = [];\n    for (i$ = 0, len$ = (ref$ = inc(\"/../app01-faq/categories\")()).length; i$ < len$; ++i$) {\n      c = ref$[i$];\n      f = inc(c.path, {\n        silentError: true\n      });\n      if (f.includeError) {\n        debug(\"warning: category \" + c.path + \" cannot be included\");\n        continue;\n      }\n      c.questions = _.ensureArray(f());\n      res$.push(c);\n    }\n    categories = res$;\n    for (i$ = 0, len$ = categories.length; i$ < len$; ++i$) {\n      c = categories[i$];\n      for (j$ = 0, len1$ = (ref$ = c.questions).length; j$ < len1$; ++j$) {\n        i = j$;\n        q = ref$[j$];\n        f = inc(q.path, {\n          silentError: true\n        });\n        if (f.includeError) {\n          debug(\"warning: faq \" + q.path + \" cannot be included\");\n          c.questions.splice(i, 1);\n          continue;\n        }\n        question = f();\n        question.path = q.path;\n        question.category = c.path.split(\"/\")[3];\n        if (that = q.guiLanguages) {\n          question.guiLanguages = that;\n        }\n        c.questions[i] = question;\n      }\n    }\n    return categories;\n  };\n})();","updated":"2023-05-02T11:04:27.85259"},{"path":"pages/support/help/faqList/filterCategories/filterQuestions/filter.ls","text":"(function(){\n  return function(query, filteredCategories){\n    var i$, len$, i, category, filteredQuestions, question, results$ = [];\n    for (i$ = 0, len$ = filteredCategories.length; i$ < len$; ++i$) {\n      i = i$;\n      category = filteredCategories[i$];\n      filteredQuestions = query\n        ? (fn$())\n        : category.questions;\n      filteredQuestions = _.compact(filteredQuestions);\n      filteredQuestions = _.filter(filteredQuestions, fn1$);\n      results$.push(category.questions = filteredQuestions);\n    }\n    return results$;\n    function fn$(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = category.questions).length; i$ < len$; ++i$) {\n        question = ref$[i$];\n        results$.push(inc(\"filterBySearchQuery/filter\")(category, question, query));\n      }\n      return results$;\n    }\n    function fn1$(question){\n      return question.guiLanguages == null || in$(engine.guiLanguage, question.guiLanguages);\n    }\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2023-05-02T11:04:27.85259"},{"path":"lib/init/logDeviceStartEvents/setMobileDeviceInfo/log.ls","text":"(function(){\n  return function(){\n    var e, deviceOld, deviceNew;\n    if (typeof device == 'undefined' || device === null) {\n      return;\n    }\n    e = deviceLog.findLast(\"deviceSetMobileDeviceInfo\");\n    deviceOld = e != null ? e.value : void 8;\n    deviceNew = _.omit(device, \"getInfo\");\n    if (e == null || !_.isEqual(deviceNew, deviceOld)) {\n      return deviceLog.log({\n        event: \"deviceSetMobileDeviceInfo\",\n        value: device\n      });\n    }\n  };\n})();","updated":"2024-05-28T14:36:13.98121"},{"path":"lib/util/loadPlan/load.ls","text":"(function(){\n  var cache;\n  cache = {};\n  return function(o){\n    var project, fileId, fileFolder, fileApi, lookupEtag, loadPlan, finish, cachedPlan, cacheAge, maxCacheAge;\n    project = o.path.split(\"/\")[2];\n    fileId = \"plan/\" + project;\n    fileFolder = \"content/\" + project + \"/plan\";\n    fileApi = o.fileApi || \"files\";\n    lookupEtag = function(){\n      return inc(\"lookupEtag/lookup\")({\n        project: project,\n        fileApi: fileApi,\n        onDone: loadPlan,\n        onError: o.onError\n      });\n    };\n    loadPlan = function(etag){\n      return inc(\"/lib/util/downloadContentFile/download\")({\n        fileId: fileId,\n        fileFolder: fileFolder,\n        fileApi: fileApi,\n        etag: etag,\n        returnFileContent: true,\n        onError: o.onError,\n        onLoaded: finish\n      });\n    };\n    finish = function(plan){\n      cache[project] = {\n        fileApi: fileApi,\n        plan: plan,\n        cachedAt: new Date()\n      };\n      return o.onLoaded(plan);\n    };\n    cachedPlan = cache[project];\n    cacheAge = new Date() - (cachedPlan != null ? cachedPlan.cachedAt : void 8);\n    maxCacheAge = 1000 * 60 * 30;\n    if ((cachedPlan != null ? cachedPlan.fileApi : void 8) === fileApi && cacheAge < maxCacheAge && o.clearCache !== true) {\n      return o.onLoaded(cachedPlan.plan);\n    } else {\n      return lookupEtag();\n    }\n  };\n})();","updated":"2023-05-04T13:31:42.376375"},{"path":"lib/gui/multiform/fields/field/input/input.ls","text":"(function(){\n  return function(field, p){\n    var sk, ref$, showResetIcon, showPassword, submit, onChange, onStart, div, input;\n    sk = _.clone((ref$ = field.screenKeyboard) != null\n      ? ref$\n      : p.params.screenKeyboard) || {};\n    sk.layout == null && (sk.layout = twitch({\n      de: \"standard\",\n      en: \"appEN\",\n      fr: \"appFR\",\n      es: \"standardNATES\",\n      pt: \"standardNATPT\"\n    }));\n    sk.parentDiv == null && (sk.parentDiv = null);\n    sk.header == null && (sk.header = null);\n    sk.submitLabel == null && (sk.submitLabel = null);\n    sk.shiftStatus == null && (sk.shiftStatus = false);\n    showResetIcon = (ref$ = field.showResetIcon) != null\n      ? ref$\n      : (ref$ = p.params.showResetIcon) != null ? ref$ : false;\n    showPassword = (ref$ = field.showPassword) != null\n      ? ref$\n      : (ref$ = p.params.showPassword) != null ? ref$ : false;\n    submit = function(){\n      var elements, inputIndex;\n      elements = p.div.findAll(\".input\");\n      inputIndex = _.findIndex(elements, input);\n      if (inputIndex + 1 < elements.length) {\n        return elements[inputIndex + 1].start();\n      } else {\n        return p.submit();\n      }\n    };\n    onChange = function(){\n      var ref$;\n      if (typeof field.onChange == 'function') {\n        field.onChange(field);\n      }\n      return typeof (ref$ = p.params).onChange == 'function' ? ref$.onChange(field) : void 8;\n    };\n    onStart = function(){\n      var ref$;\n      if (deviceLog['var'](\"useInputEditable\")) {\n        inc(\"showKeyboardBottom/show\")(input, sk);\n      }\n      return (ref$ = div.closest(\".scrollDiv\")) != null ? ref$.scrollElementIntoView(input) : void 8;\n    };\n    div = Div({\n      padding: \"0.3em 0\"\n    }).addClass(\"field\").html(Div({\n      padding: \"0.4em 0.4em 0.2em\",\n      fontSize: \"0.9em\",\n      color: Color.grey[800],\n      textAlign: \"left\"\n    }).html(field.label), input = (inc(\"/lib/util/isDesktop/isDesktop\")() || deviceLog['var'](\"useInputEditable\")\n      ? inc(\"/lib/gui/inputEditable/input\")\n      : inc(\"/lib/gui/input2/input\"))({\n      value: field.value,\n      onSubmit: submit,\n      onChange: onChange,\n      onStart: onStart,\n      keyboardParentDiv: sk.parentDiv,\n      keyboardLayout: sk.layout,\n      keyboardHeader: sk.header,\n      keyboardSubmitLabel: sk.submitLabel,\n      keyboardShiftStatus: sk.shiftStatus,\n      showResetIcon: showResetIcon,\n      showPassword: showPassword,\n      textMode: field.isPassword ? \"password\" : void 8,\n      maxLength: !field.isPassword ? 100 : void 8\n    }).css({\n      width: \"100%\"\n    }));\n    div.getValue = function(){\n      return {\n        id: field.id,\n        value: input.getValue()\n      };\n    };\n    div.setValue = function(v){\n      var hasChanged;\n      hasChanged = v !== input.getValue();\n      field.value = v;\n      input.setValue(v);\n      if (hasChanged) {\n        return onChange();\n      }\n    };\n    return div;\n  };\n})();","updated":"2025-04-03T11:28:11.509002"},{"path":"addons/topbarLevel/calculator/calculator/submit/submit.ls","text":"(function(){\n  return function(o){\n    var mathInput, value, ref$, newValue, v, s, r, s1, s2, vRounded;\n    mathInput = o.content.mathInput;\n    value = mathInput.getValue();\n    if (value === \"\") {\n      return;\n    }\n    if (_.includes(value, (ref$ = o.lastResult) != null ? ref$.label : void 8)) {\n      newValue = value.replace(o.lastResult.label, o.lastResult.value);\n      mathInput.setValue(newValue);\n    }\n    v = mathInput.eval();\n    if ((v != null ? v.result : void 8) != null) {\n      v = v.result;\n    }\n    if (v > 9999999999) {\n      s = v.toExponential();\n    } else {\n      s = v + \"\";\n    }\n    if (r = s.match(\"(e[+-][0-9]+)\")) {\n      s1 = _.round(s.substr(0, r.index), 6);\n      s2 = r[0];\n      s2 = s2.replace(/e\\+([0-9]+)/, \"*10^$1\");\n      s2 = s2.replace(/e\\-([0-9]+)/, \"*10^(-$1)\");\n      s = s1 + s2;\n    } else {\n      vRounded = _.round(v, 6);\n      s = vRounded + \"\";\n    }\n    log.log({\n      event: \"debugCalculatorSubmit\",\n      input: value,\n      resultValue: v,\n      resultString: s\n    });\n    if (v != null && !_.isNaN(v) && !_.isNaN(vRounded) && _.isFinite(v)) {\n      mathInput.setValue(s);\n      o.lastResult = {\n        value: v,\n        label: s\n      };\n    } else {\n      o.lastResult = null;\n      mathInput.css({\n        backgroundColor: Color.red[200],\n        transition: \"100ms\"\n      });\n      setTimeout(function(){\n        return mathInput.css({\n          backgroundColor: Color.grey[150],\n          transition: \"50ms\"\n        });\n      }, 300);\n    }\n    return o.lastResultDiv.update();\n  };\n})();","updated":"2023-07-18T09:48:58.952593"},{"path":"pages/schoolSearch/02_countrySearch/list/list.ls","text":"(function(){\n  return function(page){\n    return page.list = ListDiv({\n      data: page.countries,\n      row: inc(\"row/row\")(page),\n      nearScopeSize: 1,\n      nearScopeDelay: 1000,\n      debug: false,\n      scopeRender: {\n        enabled: true,\n        debug: false,\n        maxDurations: \"200 5 5\",\n        nearScopeSize: 1\n      }\n    }).css({\n      flex: \"1 1 auto\"\n    });\n  };\n})();","updated":"2023-10-24T16:08:52.422199"},{"path":"pages/schoolSearch/03_citySearch/list/list.ls","text":"(function(){\n  var lastListPosition;\n  lastListPosition = null;\n  return function(page){\n    return page.list = ListDiv({\n      data: page.cities,\n      row: inc(\"row/row\")(page),\n      nearScopeSize: 1,\n      nearScopeDelay: 1000,\n      debug: false,\n      scopeRender: {\n        enabled: true,\n        debug: false,\n        maxDurations: \"200 5 5\",\n        nearScopeSize: 1\n      },\n      listPosition: page.params.history <= 0 ? lastListPosition : void 8\n    }).css({\n      flex: \"1 1 auto\",\n      height: \"var(--centerHeight)\"\n    }).onElementClass(\"onPageFinish\", function(){\n      return lastListPosition = page.list.getListPosition();\n    });\n  };\n})();","updated":"2023-10-24T16:08:52.422199"},{"path":"pages/schoolSearch/04_schoolSearch/list/list.ls","text":"(function(){\n  var lastListPosition;\n  lastListPosition = null;\n  return function(page){\n    return page.list = ListDiv({\n      data: page.schools,\n      row: inc(\"row/row\")(page),\n      nearScopeSize: 1,\n      nearScopeDelay: 1000,\n      debug: false,\n      scopeRender: {\n        enabled: true,\n        debug: false,\n        maxDurations: \"200 5 5\",\n        nearScopeSize: 1\n      },\n      listPosition: page.params.history <= 0 ? lastListPosition : void 8\n    }).css({\n      flex: \"1 1 auto\",\n      height: \"var(--centerHeight)\"\n    }).onElementClass(\"onPageFinish\", function(){\n      return lastListPosition = page.list.getListPosition();\n    });\n  };\n})();","updated":"2023-10-24T16:08:52.422199"},{"path":"pages/support/help/chat/list/list.ls","text":"(function(){\n  return function(page){\n    page.data = inc(\"calcData/calc\")(page);\n    return page.list = ListDiv({\n      data: page.data,\n      row: inc(\"row/row\")(page),\n      nearScopeSize: 1,\n      nearScopeDelay: 1000,\n      debug: false,\n      scopeRender: {\n        enabled: true,\n        debug: false,\n        maxDurations: \"200 5 5\",\n        nearScopeSize: 1\n      },\n      listPosition: {\n        rowIndex: 10000,\n        bottomOffset: 0\n      }\n    }).css({\n      height: \"var(--centerHeight)\"\n    });\n  };\n})();","updated":"2023-10-24T16:08:52.422199"},{"path":"lib/gui/screenKeyboard/createKeys/keys/newline/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/key/enter.svg\"),\n      width: '1.2em',\n      height: '1.2em'\n    }).css({\n      marginTop: \"0.2em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbar2/_tap/tap.ls","text":"(function(){\n  return function(div, tapZone, click, longClick, defaultColor){\n    var downAt, setColor;\n    defaultColor == null && (defaultColor = \"black\");\n    setColor = function(color){\n      var i$, ref$, len$, el, results$ = [];\n      for (i$ = 0, len$ = (ref$ = div.findAll(\".topbarIcon\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        el.setColor(color);\n      }\n      for (i$ = 0, len$ = (ref$ = div.findAll(\".label\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        results$.push(el.css({\n          color: color\n        }));\n      }\n      return results$;\n    };\n    return div.tap({\n      up: function(){\n        var duration;\n        setTimeout(click, 30);\n        duration = Math.max(0, 70 - (new Date() - downAt));\n        return setTimeout(function(){\n          return setColor(defaultColor);\n        }, duration);\n      },\n      down: function(){\n        setColor(Color.blue[600]);\n        return downAt = new Date();\n      },\n      cancel: function(){\n        return setColor(defaultColor);\n      },\n      longDown: function(){\n        setColor(defaultColor);\n        return typeof longClick == 'function' ? longClick() : void 8;\n      },\n      animation: \"none\",\n      tapZone: tapZone\n    });\n  };\n})();","updated":"2023-10-24T16:08:52.422199"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showResult/show.ls","text":"(function(){\n  var lastListPosition, lastSearchQuery;\n  return function(o){\n    return function(searchResult){\n      var parent, div;\n      parent = body.findFirst(\".menuSearchResult\");\n      div = ListDiv({\n        data: inc(\"calcDataRows/calc\")(searchResult),\n        row: inc(\"row/row\")(o, i),\n        nearScopeSize: 2,\n        nearScopeDelay: 1000,\n        debug: false,\n        scopeRender: {\n          enabled: true,\n          debug: false,\n          maxDurations: \"200 5 5\",\n          nearScopeSize: 1\n        }\n      }).addClass(\"menuSearchList\").css({\n        width: \"100%\"\n      }).tap({\n        up: function(){\n          return o.input.stop();\n        },\n        animation: \"none\"\n      }).css({\n        cursor: \"\"\n      }).onDomAppend(function(){\n        return div.css({\n          height: parent.height() + \"px\"\n        });\n      }).onDomRemove(function(){\n        lastListPosition = div.getListPosition();\n        return lastSearchQuery = o.searchQuery;\n      });\n      if (lastListPosition && lastSearchQuery === o.searchQuery) {\n        div.setListPosition(lastListPosition);\n      }\n      return parent != null ? parent.html(div) : void 8;\n    };\n  };\n})();","updated":"2023-10-24T16:08:52.422199"},{"path":"pages/static/jobs/_t.ls","text":"(function(){\n  return {\n    jobs: {\n      de: \"Jobs\",\n      en: \"Jobs\",\n      fr: \"Emploi\",\n      es: \"Ofertas de trabajo\",\n      pt: \"Vagas\"\n    },\n    urlTitle: {\n      de: \"Jobs, Stellenangebote und Praktikumsplätze\",\n      en: \"Jobs, vacancies and internships\",\n      fr: \"Offres d'emploi et stages\",\n      es: \"Empleos, trabajos y pasantías\",\n      pt: \"Empregos e estágios\"\n    },\n    metaDescr: {\n      de: \"Erfinde und entwickle die Zukunft des digitalen Lernens und bewirb dich bei uns. Wir sind ein kleines, modernes und motiviertes Team mit vielen Freiheiten und hoher Professionalität.\",\n      en: \"Create and develop the future of digital learning by applying to work with us. We are a small, modern and motivated team with a lot of freedom and a high level of professionalism.\",\n      fr: \"Invente et développe le futur de l’apprentissage numérique avec nous. Nous sommes une petite équipe moderne, motivée, très flexible et qui fait preuve d'un grand professionnalisme. Nous attendons ta candidature !\",\n      es: \"Inventa y diseña el futuro del aprendizaje digital con nosotros. Somos un equipo pequeño, moderno, motivado, muy flexible y altamente profesional. ¡Envíanos tu solicitud!\",\n      pt: \"Invente e projete o futuro da aprendizagem digital conosco. Somos uma equipe pequena, moderna, motivada, muito flexível e altamente profissional. Candidate-se!\"\n    },\n    jobOffer: {\n      de: \"Stellenausschreibung\",\n      en: \"Job listing\",\n      fr: \"Description du poste\",\n      es: \"Descripción del puesto\",\n      pt: \"Descrição da vaga\"\n    },\n    title: {\n      de: \"Hilf uns, mit ANTON das Lernen für die Schule noch einfacher zu machen.\",\n      en: \"Help us make learning for school even easier with ANTON.\",\n      fr: \"Aide-nous à rendre l'apprentissage encore plus facile et amusant avec ANTON.\",\n      es: \"Ayúdanos a que aprender para la escuela con ANTON sea aún más fácil y divertido.\",\n      pt: \"Ajude-nos a tornar o aprendizado nas escolas ainda mais fácil com ANTON.\"\n    },\n    openExternalJobsPage: {\n      de: \"Zu den Stellenangeboten\",\n      en: \"Go to vacancies\",\n      fr: \"Voir les offres d'emploi\",\n      es: \"Ver ofertas de trabajo\",\n      pt: \"Ver ofertas de trabalho\"\n    }\n  };\n})();","updated":"2023-10-24T16:08:52.422199"},{"path":"lib/gui/spinnerDivOverlay/overlay.ls","text":"(function(){\n  return function(parent, color){\n    var stop, div;\n    if (parent == null) {\n      return {\n        stop: function(){}\n      };\n    }\n    color == null && (color = Color.grey[500]);\n    stop = function(){\n      parent.css({\n        pointerEvents: \"\"\n      });\n      return div.remove();\n    };\n    parent.css({\n      pointerEvents: \"none\"\n    }).append(div = Div({\n      display: \"flex\",\n      position: \"absolute\",\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0,\n      backgroundColor: parent.css(\"backgroundColor\") || \"white\"\n    }).html(inc(\"/lib/gui/spinner/spinner\")({\n      color: color\n    })));\n    div.stop = stop;\n    return div;\n  };\n})();","updated":"2023-06-08T10:30:09.802961"},{"path":"lib/init/fixBodyScale/fix.ls","text":"(function(){\n  return function(){\n    var r;\n    if (!engine.isMobileApp) {\n      return;\n    }\n    if (engine.isAndroidApp && !_.includes(navigator.userAgent, \"Crosswalk\")) {\n      return;\n    }\n    r = window.devicePixelRatio;\n    if (1 < r && r < 1.5) {\n      return body.setBodyScale(1 / r);\n    }\n  };\n})();","updated":"2023-06-08T10:30:09.802961"},{"path":"lib/offline/offlinePopup/popup.ls","text":"(function(){\n  return function(o){\n    var label, clickOk, div, popup;\n    if (_.isString(o)) {\n      o = {\n        label: o\n      };\n    }\n    o == null && (o = {});\n    label = o.label || T(\"offlineError2\");\n    clickOk = function(){\n      return popup.close();\n    };\n    div = Div({\n      margin: \"1em 0\"\n    }).html(Div({\n      padding: \"0 1em\",\n      marginBottom: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(label), inc(\"/lib/gui/maintenanceMessage/message\")(\"showOnOffline\"), Button({\n      label: T(\"ok\"),\n      action: clickOk\n    }).css({\n      width: \"5em\",\n      textAlign: \"center\"\n    }));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: o.onClose\n    });\n  };\n})();","updated":"2024-05-28T14:36:13.98121"},{"path":"lib/gui/screenKeyboard/createKeys/keys/mathKeys/calcKeys/expMinus1/div.ls","text":"(function(){\n  return function(color, label){\n    return Div({\n      display: \"flex\",\n      color: color != null\n        ? color\n        : Color.black\n    }).html(label, Span({\n      fontSize: \"0.6em\",\n      alignSelf: \"flex-start\",\n      margin: \"-0.3em 0.2em 0 0.2em\"\n    }).html(\"-1\"));\n  };\n})();","updated":"2023-06-14T11:36:18.491173"},{"path":"data/school/calcSchoolDescription/calcHasProAccess/calc.ls","text":"(function(){\n  return function(schoolLog){\n    var i$, ref$, len$, productName, e;\n    for (i$ = 0, len$ = (ref$ = [\"schoolPro\", \"schoolProPlus\", \"schoolProComplete\"]).length; i$ < len$; ++i$) {\n      productName = ref$[i$];\n      e = schoolLog.findLast({\n        event: \"setSchoolProduct\",\n        productName: productName\n      });\n      if (e && new Date(e.validUntil) > new Date()) {\n        return true;\n      }\n    }\n    return false;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/static/unknownUrl/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        helpers.postEvent(\"INT-unkownUrl\", {\n          event: \"unknownUrl\",\n          userAgent: navigator.userAgent,\n          url: location.href\n        });\n        deviceLog.log({\n          event: \"deviceDebugUnknownUrl\",\n          pageUrl: inc(\"/lib/util/browser/getPageUrl/get\")()\n        });\n        return page.css({\n          margin: \"2em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\"\n        }).html(inc(\"text/text\")(), inc(\"../_shared/linkToStart/link\")());\n      }\n    };\n  };\n})();","updated":"2023-07-27T19:48:13.809118"},{"path":"pages/static/download/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      margin: \"0.5em\",\n      marginTop: \"2em\"\n    }).html(T(\"youCanUseAntonInBrowser\"));\n  };\n})();","updated":"2023-07-27T19:48:13.809118"},{"path":"lib/gui/screenKeyboard/calcRowHeight/calc.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var sizes, h, n, i$, len$, v, rowHeight;\n      sizes = [2.3, 2.5, 2.7, 2.8, 2.8, 2.8, 2.9, 3.2, 3.4, 3.6, 3.8, 4.0];\n      h = body.height();\n      n = 400;\n      for (i$ = 0, len$ = sizes.length; i$ < len$; ++i$) {\n        v = sizes[i$];\n        if (o.map.length > 5) {\n          v *= 0.8;\n        }\n        rowHeight = v + \"em\";\n        if (h < n) {\n          break;\n        }\n        n += 50;\n      }\n      o.div.cssVar({\n        specialKeyHeight: rowHeight\n      });\n      return o.rowHeight = rowHeight;\n    };\n  };\n})();","updated":"2023-07-27T19:48:13.809118"},{"path":"pages/static/unknownUrl/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      padding: \"1em\",\n      fontSize: \"1.2em\"\n    }).html(T(\"pageDoesNotExist\"));\n  };\n})();","updated":"2023-07-27T19:48:13.809118"},{"path":"pages/static/about/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      start: function(){\n        return page.html(Div({\n          margin: \"1em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\"\n        }).html(inc(\"aboutDiv/div\")()));\n      }\n    };\n  };\n})();","updated":"2023-07-27T19:48:13.809118"},{"path":"pages/static/download/linkToStore/link.ls","text":"(function(){\n  return function(type, onClick){\n    var store;\n    if (type === \"other\") {\n      return;\n    }\n    store = type === \"iOS\"\n      ? T(\"appStore\")\n      : type === \"amazon\"\n        ? T(\"amazonAppStore\")\n        : type === \"android\" ? T(\"playStore\") : void 8;\n    return inc(\"/lib/gui/link/link\")(T(\"openStoreAgain\", store)).css({\n      margin: \"1em 0.5em 0.5em 0.5em\",\n      color: Color.grey[600]\n    }).tap(onClick);\n  };\n})();","updated":"2023-07-27T19:48:13.809118"},{"path":"pages/static/download/page.ls","text":"(function(){\n  return function(page){\n    page.shareId = inc(\"calcShareId/calc\")(page);\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        var deviceType, redirect;\n        deviceType = inc(\"calcDeviceType/calc\")();\n        redirect = inc(\"redirectToStore/redirect\")(page, deviceType);\n        page.css({\n          margin: \"2em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\"\n        }).html(inc(\"text/text\")(), inc(\"../_shared/linkToStart/link\")(), inc(\"linkToStore/link\")(deviceType, redirect));\n        return redirect();\n      }\n    };\n  };\n})();","updated":"2023-07-27T19:48:13.809118"},{"path":"lib/init/startFirstPage/deepLinkBrowser/deepLinkBrowser.ls","text":"(function(){\n  return function(){\n    var pageUrl, links, i$, len$, l, pagePath, params, ref$;\n    pageUrl = inc(\"/lib/util/browser/getPageUrl/get\")();\n    links = inc(\"links/links\")();\n    for (i$ = 0, len$ = links.length; i$ < len$; ++i$) {\n      l = links[i$];\n      if (inc(\"calcLinkMatches/calc\")(l, pageUrl)) {\n        pagePath = l.pagePath;\n        break;\n      }\n    }\n    if (pagePath) {\n      params = (ref$ = l.pageParams) != null\n        ? ref$\n        : {};\n      params.isDeepLink = true;\n      startPage({\n        path: pagePath,\n        history: -(app.pageHistory.length - 1),\n        params: params\n      });\n      return true;\n    }\n  };\n})();","updated":"2023-07-27T19:48:13.809118"},{"path":"lib/init/startFirstPage/deepLinkBrowser/calcLinkMatches/calc.ls","text":"(function(){\n  return function(l, pageUrl){\n    var linkMatches;\n    return linkMatches = (l.is != null && pageUrl === l.is) || (l['in'] != null && in$(pageUrl, l['in'])) || (l.startsWith != null && _.startsWith(pageUrl, l.startsWith)) || (l.startsWithAny != null && _.some(l.startsWithAny, function(a){\n      return _.startsWith(pageUrl, a);\n    }));\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2023-07-27T19:48:13.809118"},{"path":"pages/standards/start/startStandardsPage/start.ls","text":"(function(){\n  return function(page, onError){\n    var fileId, standard, rootUrl;\n    fileId = \"standard/\" + engine.guiLanguage + \"/\" + page.deepLinkUrl.replace(\"standards/\", \"\");\n    standard = _.find(page.standards.standards, {\n      fileId: fileId\n    });\n    rootUrl = standard.rootUrl;\n    if (!standard) {\n      onError();\n      return;\n    }\n    return startPage({\n      path: path(\"/../app01-standards/pages/03_standard/page\"),\n      history: 0,\n      params: {\n        standard: _.pick(standard, [\"fileId\", \"etag\"]),\n        rootUrl: rootUrl,\n        isDeepLink: page.params.isDeepLink\n      }\n    });\n  };\n})();","updated":"2023-10-11T15:36:08.314693"},{"path":"pages/standards/start/startOverviewRoots/start.ls","text":"(function(){\n  return function(page){\n    return startPage({\n      path: path(\"/../app01-standards/pages/01_standardsOverviewRoots/page\"),\n      history: 0,\n      params: {\n        isDeepLink: page.params.isDeepLink\n      }\n    });\n  };\n})();","updated":"2023-07-27T19:48:13.809118"},{"path":"lib/util/downloadCsvToFile/download.ls","text":"(function(){\n  return function(csv, fileName){\n    var universalBOM, url, b, a;\n    universalBOM = \"\\uFEFF\";\n    url = \"data:text/csv;charset=utf-8,\" + encodeURIComponent(universalBOM + csv);\n    fileName == null && (fileName = \"download.csv\");\n    if ((typeof navigator != 'undefined' && navigator !== null ? navigator.msSaveBlob : void 8) != null) {\n      b = new Blob([universalBOM + csv], {\n        type: \"text/csv\"\n      });\n      return navigator.msSaveBlob(b, fileName);\n    } else {\n      a = document.createElement(\"a\");\n      a.href = url;\n      a.download = fileName;\n      body.append(a);\n      a.click();\n      return a.remove();\n    }\n  };\n})();","updated":"2023-06-20T08:22:51.755381"},{"path":"lib/gui/spinnerOverlay/overlay.ls","text":"(function(){\n  return function(onClose, disableFade, disableTap){\n    var overlay, spinnerDiv;\n    overlay = Div({\n      display: \"flex\",\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0,\n      backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n      pointerEvents: \"auto\"\n    }).addClass(\"spinnerOverlay\").appendTo(body).html(spinnerDiv = Div({\n      backgroundColor: \"rgba(0, 0, 0, 0.3)\",\n      borderRadius: \"0.5em\",\n      padding: \"1em\"\n    }).html(inc(\"/lib/gui/spinner/spinner\")({\n      color: \"white\"\n    }).css({\n      width: \"2em\",\n      height: \"2em\"\n    })).hide()).tap(!disableTap ? {\n      animation: \"none\",\n      down: function(){\n        overlay.remove();\n        return typeof onClose == 'function' ? onClose() : void 8;\n      }\n    } : void 8).css({\n      cursor: \"default\"\n    });\n    if (!app.currentPopup && !disableFade) {\n      overlay.fadeIn(500);\n    }\n    setTimeout(function(){\n      return spinnerDiv.fadeIn(500);\n    }, 1000);\n    overlay.close = function(){\n      overlay.remove();\n      return typeof onClose == 'function' ? onClose() : void 8;\n    };\n    return overlay;\n  };\n})();","updated":"2023-06-20T08:22:51.755381"},{"path":"pages/static/_shared/section/header/text/text.ls","text":"(function(){\n  return function(o){\n    return Div({\n      flex: \"1 1 auto\"\n    }).html(o.header);\n  };\n})();","updated":"2023-06-26T10:04:37.588485"},{"path":"lib/gui/drawerMenu/close/close.ls","text":"(function(){\n  return function(p, o){\n    var ref$;\n    o.saveScrollPosition();\n    if (typeof o.onClose == 'function') {\n      o.onClose();\n    }\n    delete app.currentDrawerMenu;\n    inc(\"/lib/util/freezeIOSScrollDivs/enable/enable\")();\n    if (!o.wrapper.contains(app.lastInput)) {\n      if ((ref$ = app.lastInput) != null) {\n        ref$.start();\n      }\n    }\n    if ((p != null ? p.move : void 8) === true) {\n      o.background.css({\n        backgroundColor: \"\"\n      });\n      return inc(\"../move/move\")(o.wrapper, \"-\" + o.width, function(){\n        return o.background.remove();\n      });\n    } else {\n      return o.background.remove();\n    }\n  };\n})();","updated":"2023-06-26T10:04:37.588485"},{"path":"pages/static/cancelDeletionDirAdmin/01_start/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"../00_shared/topbar/topbar\")();\n      },\n      start: function(){\n        var tap, onDone;\n        inc(\"/lib/util/cache/set/set\")(\"finishFunctionPath\", page.params.finishFunctionPath);\n        tap = function(){\n          if (!inc(\"/lib/util/isOnline/isOnline\")()) {\n            inc(\"/lib/offline/offlinePopup/popup\")();\n            return;\n          }\n          return inc(\"../01b_askAge/popup\")(onDone);\n        };\n        onDone = function(){\n          return inc(\"../02_termsAndPrivacy/start\")();\n        };\n        return page.html(Div({\n          margin: \"0 auto 1em\",\n          width: \"30em\",\n          maxWidth: \"90%\",\n          lineHeight: \"1.7em\",\n          textAlign: \"justify\",\n          hyphens: \"auto\",\n          whiteSpace: \"normal\"\n        }).html(T(\"cancelInfo\")), Button(T(\"begin\")).tap(tap));\n      }\n    };\n  };\n})();","updated":"2023-06-26T10:04:37.588485"},{"path":"lib/gui/drawerMenu/menu.ls","text":"(function(){\n  return function(o){\n    o.background = inc(\"background/background\")(o);\n    o.wrapper = inc(\"wrapper/wrapper\")(o);\n    o.close = function(p){\n      return inc(\"close/close\")(p, o);\n    };\n    o.show = function(){\n      return inc(\"show/show\")(o);\n    };\n    o.openFolder = function(i){\n      return inc(\"folder/open/open\")(o, i);\n    };\n    o.closeFolder = function(i){\n      return inc(\"folder/close/close\")(o, i);\n    };\n    inc(\"onKeyBack/onKeyBack\")(o);\n    o.saveScrollPosition = function(){\n      return inc(\"scrollPosition/save/save\")(o);\n    };\n    o.scrollToLastPosition = function(){\n      return inc(\"scrollPosition/scrollToLast/scrollTo\")(o);\n    };\n    o.show();\n    o.scrollToLastPosition();\n    app.currentDrawerMenu = o;\n    return o;\n  };\n})();","updated":"2023-06-26T10:04:37.588485"},{"path":"pages/misc/password/reset/05_resetPasswordDone/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        return page.append(Div({\n          padding: \"0 0.5em\",\n          marginBottom: \"1em\"\n        }).html(T(\"passwordResetSuccess\")), Button(T(\"closeButton\")).tap(function(){\n          return startPage({\n            history: function(path){\n              return !_.includes(path, \"/password/reset\");\n            },\n            animation: \"slideDown\"\n          });\n        }));\n      }\n    };\n  };\n})();","updated":"2026-04-20T07:58:38.015702"},{"path":"addons/topbarLevel/hint/hint/content/content.ls","text":"(function(){\n  return function(hint, slide){\n    var speakerMode, ref$, click, div, speaker, content;\n    speakerMode = (ref$ = hint.speaker) != null\n      ? ref$\n      : (ref$ = hint.sound != null) != null ? ref$ : false;\n    click = function(){\n      if (!speaker.isPlaying()) {\n        return speaker.play();\n      } else {\n        return speaker.stop();\n      }\n    };\n    div = ScrollDiv({\n      scrollbarMode: \"show\"\n    }).css({\n      display: \"flex\",\n      pointerEvents: \"auto\",\n      backgroundColor: Color.grey[75],\n      border: \"1px solid \" + Color.grey[250],\n      maxHeight: body.height() / 3 + \"px\",\n      borderTop: \"\",\n      backgroundClip: \"border-box\"\n    }).html(Div({\n      flex: \"0 1 auto\",\n      textAlign: \"left\",\n      lineHeight: \"1.5em\",\n      padding: \"0.85em 0.5em 0.8em\"\n    }).html(speaker = inc(\"speaker/speaker\")(hint, speakerMode, slide), content = inc(\"content/content\")(hint, slide)).tap(speakerMode !== false ? {\n      up: click,\n      animation: \"none\"\n    } : void 8));\n    div.speaker = speaker;\n    return div;\n  };\n})();","updated":"2024-02-19T11:12:11.973904"},{"path":"pages/static/start/berlin/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"../../../_shared/topbarDeeplink/topbar\")(page, inc(\"title/title\")());\n  };\n})();","updated":"2023-08-03T12:39:59.189162"},{"path":"pages/static/start/berlin/_t.ls","text":"(function(){\n  return {\n    title: \"Berlin\",\n    pageUrl: \"start/berlin\"\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"pages/start/login/openId/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: \"openId/login/\",\n      title: T(\"openIdLogin\"),\n      metaDescription: \"\",\n      noIndex: true\n    };\n  };\n})();","updated":"2023-08-31T15:58:37.713812"},{"path":"pages/static/start/berlin/_urlDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      pageUrl: T(\"pageUrl\"),\n      title: T(\"title\"),\n      metaDescription: T(\"title\"),\n      noIndex: true\n    };\n  };\n})();","updated":"2023-08-31T15:58:37.713812"},{"path":"lib/init/ideDebugOutput/convertToSerializable/convert.ls","text":"(function(){\n  return function(object){\n    var notOwnPropertiesToShow, maxDepth, convert;\n    notOwnPropertiesToShow = [\"outerHTML\"];\n    maxDepth = 10;\n    convert = function(obj, depth){\n      var arr, k, p, v, i$, ref$, len$, propName, own$ = {}.hasOwnProperty;\n      if (depth > maxDepth) {\n        return \"...max depth exceeded...\";\n      }\n      if (obj === undefined) {\n        return obj;\n      }\n      if (_.isFunction(obj)) {\n        return obj.toString().replaceAll(\"$M\", \"-\").replaceAll(\"$S\", \"/\").replaceAll(\"$D\", \".\").replaceAll(\"$$\", \"\").replaceAll(\"$P\", \"/\").split(\"{\")[0] + \"{...}\";\n      }\n      if (_.isArray(obj)) {\n        return arr = (function(){\n          var i$, ref$, len$, results$ = [];\n          for (i$ = 0, len$ = (ref$ = obj).length; i$ < len$; ++i$) {\n            k = ref$[i$];\n            results$.push(convert(k, depth + 1));\n          }\n          return results$;\n        }());\n      }\n      if (_.isObject(obj)) {\n        p = {};\n        for (k in obj) if (own$.call(obj, k)) {\n          v = obj[k];\n          p[k] = convert(v, depth + 1);\n        }\n        for (i$ = 0, len$ = (ref$ = notOwnPropertiesToShow).length; i$ < len$; ++i$) {\n          propName = ref$[i$];\n          if (obj[propName] != null && !obj.hasOwnProperty(propName)) {\n            p[propName] = convert(obj[propName], depth + 1);\n          }\n        }\n        return p;\n      }\n      return JSON.parse(JSON.stringify(obj));\n    };\n    return convert(object, 0);\n  };\n})();","updated":"2023-12-05T15:24:26.254625"},{"path":"addons/topbarLevel/skipIcon/popup/popup.ls","text":"(function(){\n  return function(player){\n    var b, t, one, many, div;\n    b = inc(\"button/button\");\n    t = player.level.type;\n    one = t === \"test\"\n      ? \"trophy\"\n      : t === \"bulb\" ? \"bulb\" : \"star\";\n    many = t === \"test\"\n      ? \"trophies\"\n      : t === \"bulb\" ? \"bulbs\" : \"stars\";\n    div = Div({\n      width: \"14em\",\n      padding: \"1em\"\n    }).html(T(\"skipLevel\"), b(\"1.0 \" + one, 49, 1.0, player).css({\n      marginTop: \"1em\"\n    }), b(\"1.9 \" + many, 49, 1.9, player), b(\"2.5 \" + many, 50, 2.5, player), b(\"3.0 \" + many, 51, 3.0, player));\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2023-08-15T10:38:32.239008"},{"path":"addons/topbarLevel/skipIcon/icon.ls","text":"(function(){\n  return function(page, type){\n    var tap, skip, longDown, onFrame, skipListener, div;\n    if (!engine.isDebug) {\n      return;\n    }\n    tap = function(){\n      return skip(type);\n    };\n    skip = function(t){\n      var ref$, slide, ref1$;\n      if ((ref$ = app.lastSound) != null) {\n        ref$.stop();\n      }\n      slide = (ref1$ = page.levelPlayer) != null ? ref1$.currentSlide : void 8;\n      if (!slide) {\n        return;\n      }\n      if (t === \"forwards\") {\n        return slide.skip();\n      } else {\n        return slide.skipBackwards();\n      }\n    };\n    longDown = function(){\n      if (type === \"backwards\") {\n        return;\n      }\n      if (typeof vibrate == 'function') {\n        vibrate(VIBRATION_TYPES.notificationSuccess);\n      }\n      return inc(\"popup/popup\")(page.levelPlayer);\n    };\n    onFrame = function(){\n      return inc(\"onFrame/on\")(page, div);\n    };\n    skipListener = function(event){\n      if (type === \"forwards\" && event.data.type === \"levelSkipForwards\") {\n        return skip(\"forwards\");\n      } else if (type === \"backwards\" && event.data.type === \"levelSkipBackwards\") {\n        return skip(\"backwards\");\n      }\n    };\n    div = inc(\"div/div\")(type, tap, longDown, skipListener);\n    window.addEventListener(\"message\", skipListener);\n    requestAnimationFrame(onFrame);\n    return div;\n  };\n})();","updated":"2023-08-15T10:38:32.239008"},{"path":"lib/init/vanillaInitErrorHandler/handler.ls","text":"(function(){\n  return function(){\n    return window.onErrorCustomHandler = function(e){\n      var ref$, ref1$, ref2$, ref3$, div, s, srcDiv;\n      if (app.initCrashed) {\n        return;\n      }\n      if ((e != null ? (ref$ = e.file) != null ? ref$.indexOf(\"moz-extension\") : void 8 : void 8) === 0) {\n        inc(\"logDebugEvent/log\")(e);\n        return;\n      }\n      if ((e != null ? (ref1$ = e.message) != null ? ref1$.indexOf(\"Maximum call stack\") : void 8 : void 8) !== -1) {\n        inc(\"logDebugEvent/log\")(e);\n        return;\n      }\n      inc(\"log/log\")(e);\n      Store(\"lastInitCrashed\", true);\n      app.initCrashed = true;\n      if ((ref2$ = document.getElementById(\"vanillaSpinner\")) != null) {\n        ref2$.remove();\n      }\n      if (typeof navigator != 'undefined' && navigator !== null) {\n        if ((ref3$ = navigator.splashscreen) != null) {\n          if (typeof ref3$.hide == 'function') {\n            ref3$.hide();\n          }\n        }\n      }\n      div = document.createElement(\"div\");\n      s = div.style;\n      s.position = \"absolute\";\n      s.display = \"flex\";\n      s.flexDirection = \"column\";\n      s.left = 0;\n      s.right = 0;\n      s.top = 0;\n      s.bottom = 0;\n      document.body.appendChild(div);\n      srcDiv = document.createElement(\"div\");\n      s = srcDiv.style;\n      s.position = \"absolute\";\n      s.textAlign = \"center\";\n      s.left = \"5px\";\n      s.right = \"5px\";\n      s.top = \"5px\";\n      s.fontSize = \"13px\";\n      s.userSelect = \"text\";\n      s.color = \"rgb(207, 207, 207)\";\n      srcDiv.innerText = \"Error \" + inc(\"/lib/util/calcErrorSrc/calc\")();\n      document.body.appendChild(srcDiv);\n      div.appendChild(inc(\"text/text\")());\n      div.appendChild(inc(\"button/button\")());\n      return document.body.classList.add(\"pageReady\");\n    };\n  };\n})();","updated":"2023-08-15T10:38:32.239008"},{"path":"addons/topbarLevel/hideDebugIconsDiv/div.ls","text":"(function(){\n  return function(page){\n    var iconsHidden, bind;\n    if (!engine.isDebug || !deviceLog['var'](\"allowToggleLevelDebugButtons\")) {\n      return;\n    }\n    iconsHidden = false;\n    bind = function(){\n      var icons, i$, len$, icon, results$ = [];\n      iconsHidden = !iconsHidden;\n      icons = body.findAll(\".skipIcon, .debugIcons, .levelDebugIcon\");\n      for (i$ = 0, len$ = icons.length; i$ < len$; ++i$) {\n        icon = icons[i$];\n        results$.push(icon.css({\n          visibility: iconsHidden ? \"hidden\" : \"visible\"\n        }));\n      }\n      return results$;\n    };\n    return Div({\n      visibility: \"hidden\"\n    }).addClass(\"keyManager-cmd-i hideLevelDebugIconsDiv\").bind(\"keyManager\", bind);\n  };\n})();","updated":"2023-08-15T10:38:32.239008"},{"path":"lib/util/calcErrorSrc/calc.ls","text":"(function(){\n  return function(){\n    var d, month, day;\n    d = new Date();\n    month = _.padStart(d.getMonth() + 1, 2, \"0\");\n    day = _.padStart(d.getDate(), 2, \"0\");\n    return month + day + \"_\" + Store(\"sourceId\");\n  };\n})();","updated":"2023-08-15T10:38:32.239008"},{"path":"pages/level/finishLevel/_shared/calcCharacter/characters/characters-pt.ls","text":"(function(){\n  return function(){\n    var characters, now, charactersXmas;\n    if (engine.isDebug) {\n      characters = [\n        {\n          pixi: 'female',\n          voice: \"f7\"\n        }, {\n          pixi: 'male-asia',\n          voice: \"m2\"\n        }, {\n          pixi: 'male',\n          voice: \"m7\"\n        }, {\n          pixi: 'female-afro',\n          voice: \"f8\"\n        }, {\n          pixi: 'male-india',\n          voice: \"m4\"\n        }, {\n          pixi: 'male-afro',\n          voice: \"m8\"\n        }, {\n          pixi: 'female-asia',\n          voice: \"f6\"\n        }, {\n          pixi: 'female-india',\n          voice: \"f7\"\n        }, {\n          pixi: 'pig',\n          voice: \"m9\"\n        }, {\n          pixi: 'cow',\n          voice: \"m2\"\n        }, {\n          pixi: 'super-f',\n          voice: \"f8\"\n        }, {\n          pixi: 'super',\n          voice: \"m2\"\n        }\n      ];\n    } else {\n      characters = [\n        {\n          pixi: 'female',\n          voice: \"f11\"\n        }, {\n          pixi: 'male-asia',\n          voice: \"m2\"\n        }, {\n          pixi: 'male',\n          voice: \"m7\"\n        }, {\n          pixi: 'female-afro',\n          voice: \"f8\"\n        }, {\n          pixi: 'male-india',\n          voice: \"m5\"\n        }, {\n          pixi: 'male-afro',\n          voice: \"m2\"\n        }, {\n          pixi: 'female-asia',\n          voice: \"f6\"\n        }, {\n          pixi: 'female-india',\n          voice: \"f7\"\n        }, {\n          pixi: 'pig',\n          voice: \"m2\"\n        }, {\n          pixi: 'cow',\n          voice: \"m6\"\n        }, {\n          pixi: 'super-f',\n          voice: \"f7\"\n        }, {\n          pixi: 'super',\n          voice: \"m2\"\n        }\n      ];\n    }\n    now = inc(\"/lib/util/formatDate2/format\")();\n    if (now.specialDays.isChristmasPeriod) {\n      if (engine.isDebug) {\n        charactersXmas = [\n          {\n            pixi: 'xmas',\n            voice: \"m7\"\n          }, {\n            pixi: 'xmas-f',\n            voice: \"f7\"\n          }\n        ];\n      } else {\n        charactersXmas = [\n          {\n            pixi: 'xmas',\n            voice: \"m2\"\n          }, {\n            pixi: 'xmas-f',\n            voice: \"f7\"\n          }\n        ];\n      }\n      characters = charactersXmas.concat(characters);\n    }\n    return characters;\n  };\n})();","updated":"2023-08-23T16:20:37.702218"},{"path":"pages/start/login/01_step1/submit/submit.ls","text":"(function(){\n  return function(page){\n    var form, value, startedAt;\n    form = page.form;\n    value = form.input.getValue();\n    if (value.length === 0) {\n      form.input.start();\n      form.hideSpinner();\n      form.error.html(T(\"emptyField\"));\n      return;\n    }\n    form.showSpinner();\n    startedAt = new Date();\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/login/step1/step1\"),\n      params: {\n        value: value,\n        checkCaptcha: true\n      },\n      requiredVisibleDiv: form.input,\n      onError: function(error){\n        form.hideSpinner();\n        return inc(\"/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        if (inc(\"/lib/util/isOnline/isOnline\")()) {\n          inc(\"debugLoginOfflineProblems/debug\")(startedAt);\n        }\n        form.input.start();\n        form.hideSpinner();\n        return inc(\"/lib/offline/offlinePopup/popup\")();\n      },\n      onCompleted: inc(\"onCompleted/onCompleted\")(form)\n    });\n  };\n})();","updated":"2023-08-23T16:20:37.702218"},{"path":"pages/start/login/02_step2/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        var submit;\n        submit = function(){\n          return inc(\"submit/submit\")(page.form);\n        };\n        page.html(page.form = inc(\"/lib/gui/inputForm/inputForm\")({\n          label: T(\"enterPassword\"),\n          submitLabel: T(\"continueButton\"),\n          submit: submit,\n          isPassword: true\n        }), inc(\"forgot/forgot\")(page));\n        return page.form.input.start();\n      }\n    };\n  };\n})();","updated":"2023-08-23T16:20:37.702218"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/rows/rows.ls","text":"(function(){\n  return function(o){\n    var highscores, tableData, maxPosition, ref$, scrollDiv, d;\n    highscores = o.highscores;\n    tableData = highscores.firstBlock || [];\n    if (highscores.userBlock) {\n      tableData = _.concat(tableData, {\n        isSeparator: true\n      }, highscores.userBlock);\n    }\n    if (highscores.lastBlock) {\n      tableData = _.concat(tableData, {\n        isSeparator: true\n      }, highscores.lastBlock);\n    }\n    maxPosition = Math.max((ref$ = _.last(tableData)) != null ? ref$.position : void 8, 100);\n    o.positionWidth = (\"\" + maxPosition).length * 0.7 + \"em\";\n    scrollDiv = ScrollDiv().css({\n      flex: \"0 1 auto\"\n    }).append(tableData.length === 0\n      ? inc(\"rowNoData/row\")()\n      : (function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = tableData).length; i$ < len$; ++i$) {\n          d = ref$[i$];\n          if (d.isSeparator) {\n            results$.push(inc(\"rowSeparator/row\")());\n          } else {\n            results$.push(inc(\"rowUser/row\")(d, o));\n          }\n        }\n        return results$;\n      }()));\n    requestAnimationFrame(function(){\n      scrollDiv.scrollElementIntoView(scrollDiv.findFirst(\".currentUser\"), {\n        instant: true,\n        center: true\n      });\n      return requestAnimationFrame(function(){\n        var params, ref$;\n        params = {\n          enabled: true,\n          debug: false,\n          maxDurations: \"500 20 10\",\n          nearScopeSize: 1000\n        };\n        if (scrollDiv.setScopeRender != null) {\n          scrollDiv.setScopeRender(params);\n        } else {\n          scrollDiv.scopeRender = params;\n        }\n        return (ref$ = app.currentPopup) != null ? ref$.css({\n          opacity: 1\n        }) : void 8;\n      });\n    });\n    return scrollDiv;\n  };\n})();","updated":"2024-02-19T11:12:11.973904"},{"path":"lib/gui/divEditable/cleanupLine/splitTextNodeWithNewLine/split.ls","text":"(function(){\n  return function(d, lineDiv){\n    var el, elements, elementsBefore, elementsAfter, textNode, i$, len$, i, a, newLineDiv, sel, r;\n    el = _.last(lineDiv.childNodes);\n    elements = Array.from(lineDiv.childNodes);\n    elementsBefore = [];\n    elementsAfter = [];\n    textNode = null;\n    for (i$ = 0, len$ = elements.length; i$ < len$; ++i$) {\n      i = i$;\n      el = elements[i$];\n      if (el.nodeType === Node.TEXT_NODE && _.includes(el.textContent, \"\\n\")) {\n        if (!textNode) {\n          textNode = el;\n        } else {\n          el.remove();\n        }\n      } else if (!textNode) {\n        elementsBefore.push(el);\n      } else {\n        elementsAfter.push(el);\n      }\n    }\n    if (!textNode) {\n      return;\n    }\n    d.debug(\"split textNode with new line\");\n    a = textNode.textContent.split(\"\\n\");\n    if (a[0] !== \"\") {\n      textNode.textContent = a[1];\n    } else if (elementsBefore.length === 0) {\n      textNode.replaceWith(document.createElement(\"BR\"));\n    } else {\n      textNode.remove();\n    }\n    newLineDiv = Div();\n    if (a[1] !== \"\") {\n      newLineDiv.html(a[1], elementsAfter);\n    } else if (elementsAfter.length === 0) {\n      newLineDiv.html(\"<br>\");\n    } else {\n      newLineDiv.html(elementsAfter);\n    }\n    lineDiv.after(newLineDiv);\n    sel = window.getSelection();\n    r = document.createRange();\n    r.setStart(newLineDiv, 0);\n    sel.removeAllRanges();\n    return sel.addRange(r);\n  };\n})();","updated":"2023-08-28T10:43:38.578599"},{"path":"pages/start/startUser/_t.ls","text":"(function(){\n  return {\n    subscribeError: {\n      de: \"Ups, es gab ein Problem beim Anmelden. Bitte probier es nochmal und stell sicher, dass du online bist!\",\n      en_gb: \"Oops, an error occurred while logging in. Please try again and make sure you are connected to the internet!\",\n      en: \"Oops, an error occurred while logging in. Please try again and make sure you are online!\",\n      fr: \"Oups… Une erreur s'est produite pendant la connexion. Merci de réessayer en t'assurant que tu es en ligne&nbsp;!\",\n      es: \"¡Ups! Hubo un problema con tu registro. Por favor, inténtalo nuevamente y asegúrate de que estés conectado.\",\n      pt: \"Ops! Ocorreu um erro ao efetuar o login. Por favor, tente novamente e certifique-se de que você está online.\"\n    }\n  };\n})();","updated":"2023-08-28T14:27:24.021439"},{"path":"lib/offline/_t.ls","text":"(function(){\n  return {\n    technicalProblemError: {\n      de: \"Ups, es ist ein technisches Problem aufgetreten.<br>Wir kümmern uns darum.\",\n      en: \"Oops, something went wrong here.<br>We are taking care of it.\",\n      fr: \"Oups… petit problème technique. On s'en occupe&nbsp;!\",\n      es: \"¡Ups! Hay un problema técnico.<br>Lo estamos resolviendo.\",\n      pt: \"Ops, ocorreu um problema técnico.<br>Nós cuidaremos disso.\"\n    },\n    learnOfflineWithPlus: {\n      de: \"Tipp: Mit <u>ANTON&#8209;Plus</u> kannst du auch offline&nbsp;lernen.\",\n      en: \"Tip: With <u>ANTON&#8209;Plus</u> you can also learn offline.\",\n      fr: \"À noter&nbsp;: Avec <u>ANTON&#8209;Plus</u> tu peux aussi apprendre hors ligne.\",\n      es: \"Nota: Con <u>ANTON&#8209;Plus</u> puedes seguir aprendiendo sin conexión.\",\n      pt: \"Dica: Com <u>ANTON&#8209;Plus</u> você pode continuar aprendendo sem conexão.\"\n    },\n    loadAgain: {\n      de: \"Nochmal laden\",\n      en: \"Reload\",\n      fr: \"Réessayer\",\n      es: \"Volver a cargar\",\n      pt: \"Carregar novamente\"\n    }\n  };\n})();","updated":"2023-08-28T14:27:24.021439"},{"path":"lib/init/vanillaInitProjectFailed/show.ls","text":"(function(){\n  var f;\n  f = {\n    calcFailedProjects: inc(\"calcFailedProjects/calc\"),\n    log: inc(\"log/log\"),\n    text: inc(\"text/text\"),\n    button: inc(\"button/button\"),\n    debugDetails: inc(\"debugDetails/debugDetails\"),\n    calcErrorSrc: inc(\"/lib/util/calcErrorSrc/calc\")\n  };\n  return function(projectDescriptions){\n    var failedProjects, ref$, ref1$, div, s, srcDiv;\n    if (projectDescriptions) {\n      failedProjects = f.calcFailedProjects(projectDescriptions);\n      f.log(failedProjects);\n    }\n    if ((ref$ = document.getElementById(\"vanillaSpinner\")) != null) {\n      ref$.remove();\n    }\n    if (typeof navigator != 'undefined' && navigator !== null) {\n      if ((ref1$ = navigator.splashscreen) != null) {\n        if (typeof ref1$.hide == 'function') {\n          ref1$.hide();\n        }\n      }\n    }\n    div = document.createElement(\"div\");\n    s = div.style;\n    s.position = \"absolute\";\n    s.display = \"flex\";\n    s.flexDirection = \"column\";\n    s.textAlign = \"center\";\n    s.left = 0;\n    s.right = 0;\n    s.top = 0;\n    s.bottom = 0;\n    document.body.appendChild(div);\n    div.appendChild(f.text());\n    div.appendChild(f.button());\n    if (engine.isDebug && projectDescriptions) {\n      div.appendChild(f.debugDetails(projectDescriptions));\n    }\n    srcDiv = document.createElement(\"div\");\n    s = srcDiv.style;\n    s.position = \"absolute\";\n    s.textAlign = \"center\";\n    s.left = \"5px\";\n    s.right = \"5px\";\n    s.top = \"5px\";\n    s.fontSize = \"13px\";\n    s.userSelect = \"text\";\n    s.color = \"rgb(207, 207, 207)\";\n    srcDiv.innerText = \"Error \" + f.calcErrorSrc();\n    document.body.appendChild(srcDiv);\n    return document.body.classList.add(\"pageReady\");\n  };\n})();","updated":"2023-08-28T14:27:24.021439"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/update/calcBottomFreeze/calc.ls","text":"(function(){\n  return function(pw){\n    var h;\n    if (engine.isDebug && !pw.page.enableBottomFreeze) {\n      return;\n    }\n    h = pw.bottom.height() + pw.navBottom.height();\n    if (h < 3) {\n      h = 0;\n    }\n    if (h > pw.bottomFreeze.height()) {\n      return pw.page.setBottomFreeze(h + \"px\");\n    }\n  };\n})();","updated":"2025-12-01T11:26:00.103895"},{"path":"pages/start/login/openId/login/calcUrlParams/calc.ls","text":"(function(){\n  return function(){\n    var params, that;\n    params = inc(\"/lib/util/browser/getPageUrlParams/get\")() || {};\n    if (that = params.code) {\n      params.code = decodeURIComponent(that);\n    }\n    if (that = params.state) {\n      try {\n        params.state = JSON.parse(atob(decodeURIComponent(that)));\n      } catch (e$) {}\n    }\n    return params;\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"pages/start/login/openId/onError/logError/log.ls","text":"(function(){\n  return function(page, error){\n    return deviceLog.log({\n      event: \"deviceDebugOpenIdLoginError\",\n      error: error,\n      url: location.href,\n      urlParams: page.urlParams\n    });\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"pages/static/start/berlin/_topbar/title/title.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\"\n    }).append(inc(\"/lib/seo/element/h1/h1\")(T(\"title\")));\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"pages/start/startUser/01_rememberUser/buttons/buttons.ls","text":"(function(){\n  return function(o, callback){\n    var loggerReadOnly, ref$, clickYes, clickNo;\n    loggerReadOnly = (ref$ = Store(\"debugLoggerReadOnly\")) != null ? ref$ : false;\n    clickYes = function(){\n      o.rememberUser = \"yes\";\n      inc(\"../remember/remember\")(o);\n      return callback();\n    };\n    clickNo = function(){\n      o.rememberUser = \"no\";\n      return callback();\n    };\n    return Div({\n      display: \"inline-block\"\n    }).html(Button({\n      label: T(\"dontSave\"),\n      action: clickNo\n    }).css({\n      textAlign: \"center\",\n      display: \"block\",\n      padding: \"0.8em\"\n    }), \"<br>\", loggerReadOnly !== true ? Button({\n      label: T(\"save\"),\n      action: clickYes\n    }).css({\n      textAlign: \"center\",\n      display: \"block\",\n      padding: \"0.8em\"\n    }) : void 8);\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"lib/util/browser/getPageUrlParams/get.ls","text":"(function(){\n  return function(){\n    var s, params, o, i$, len$, param, ref$, k, v;\n    s = location.href.split(\"?\")[1];\n    if (!s) {\n      return;\n    }\n    params = s.split(\"&\");\n    o = {};\n    for (i$ = 0, len$ = params.length; i$ < len$; ++i$) {\n      param = params[i$];\n      ref$ = param.split(\"=\"), k = ref$[0], v = ref$[1];\n      if (o[k] != null) {\n        debug(\"getPageUrlParams warning: '\" + k + \"' property appearing more than once in url\");\n      }\n      o[k] == null && (o[k] = v);\n    }\n    return o;\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/01_page_email/skipButton/button.ls","text":"(function(){\n  return function(page){\n    var isDirTeacher, tap;\n    isDirTeacher = page.userDescription.isDirTeacher;\n    tap = function(){\n      if (!isDirTeacher || ((typeof log != 'undefined' && log !== null ? log.findLast(\"showSuggestRecoveryOption\") : void 8) == null && !((typeof log != 'undefined' && log !== null) && log.findLast(\"showLoginCodeOnce\")))) {\n        return startPage({\n          path: path(\"../../02_page_loginCode/page\"),\n          animation: \"slideLeft\"\n        });\n      } else {\n        return inc(\"../../../_onExtraPageDone/on\")();\n      }\n    };\n    return Div({\n      margin: \"0 auto\"\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"notNow\"),\n      iconColor: \"black\"\n    }).css({\n      marginTop: \"1em\",\n      padding: \"0.5em\"\n    }).tap(tap));\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"pages/start/login/openId/createPreparedUser/page/topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbarWhiteBack/topbar\")({\n      back: function(){\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      }\n    });\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"pages/start/login/openId/createPreparedUser/page/buttonNewUser/button.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      app.openIdData = {\n        newUser: true\n      };\n      return startPage({\n        path: path(\"/pages/start/login/01_step1/page\"),\n        animation: \"slideLeft\",\n        params: {\n          qrCodeScanData: page.params.loginCode\n        }\n      });\n    };\n    return Button(T(\"buttonNewUser\")).css({\n      padding: \"0.7em\"\n    }).tap(tap);\n  };\n})();","updated":"2025-09-17T13:10:11.715597"},{"path":"pages/start/login/openId/createPreparedUser/page/buttonExistingUser/button.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      app.openIdData = {\n        loginCode: page.params.loginCode\n      };\n      return startPage({\n        path: path(\"/pages/start/login/01_step1/page\"),\n        animation: \"slideLeft\"\n      });\n    };\n    return Button(T(\"buttonExistingUser\")).css({\n      padding: \"0.7em\"\n    }).tap(tap);\n  };\n})();","updated":"2025-09-17T13:39:20.383143"},{"path":"pages/start/startUser/07_extraPages/connectToOpenId/connect.ls","text":"(function(){\n  return function(o){\n    var ref$;\n    if (!((ref$ = app.openIdData) != null && ref$.loginCode)) {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0,\n      params: _.omit(o, [\"page\", \"progressBar\"])\n    });\n    return true;\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"pages/start/startUser/07_extraPages/connectToOpenId/page/finish/finish.ls","text":"(function(){\n  return function(page){\n    return function(){\n      delete app.openIdData;\n      return inc(\"../../../_onExtraPageDone/on\")();\n    };\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"pages/start/startUser/07_extraPages/connectToOpenId/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")().hide();\n      },\n      start: function(){\n        page.submit = inc(\"submit/submit\")(page);\n        page.finish = inc(\"finish/finish\")(page);\n        page.html(page.spinner = inc(\"/lib/gui/spinner/spinner\")());\n        return page.submit();\n      }\n    };\n  };\n})();","updated":"2023-08-31T10:21:47.420421"},{"path":"pages/start/login/openId/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"/pages/static/_shared/topbarDeeplink/topbar\")(page, T(\"openIdLogin\")).hide();\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      start: function(){\n        page.onError = inc(\"onError/on\")(page);\n        return inc(\"login/login\")(page);\n      }\n    };\n  };\n})();","updated":"2023-08-31T15:58:37.713812"},{"path":"pages/start/startUser/07_extraPages/connectToOpenId/page/submit/submit.ls","text":"(function(){\n  return function(page){\n    return function(){\n      var onCompleted, onError, publicId;\n      onCompleted = function(result){\n        if (result.status !== \"ok\") {\n          onError(result.status);\n          return;\n        }\n        return inc(\"/lib/gui/infoPopup/popup\")({\n          label: T(\"successMessage\"),\n          onClose: page.finish\n        });\n      };\n      onError = function(error){\n        var errorMessage;\n        errorMessage = error === \"error_offline\"\n          ? T(\"offlineError\")\n          : T(\"errorMessage\");\n        inc(\"/lib/gui/errorPopup/popup\")({\n          label: errorMessage\n        });\n        page.spinner.remove();\n        return page.topbar.show();\n      };\n      publicId = inc(\"/data/user/calcUserDescription/calc\")().publicId;\n      return inc(\"/lib/util/pllsCall/call\")({\n        path: path(\"/../server-apis-db2/apis/school/admin/combineUserWithPreparedUser/combine\"),\n        params: {\n          userPublicId: publicId,\n          preparedUserLoginCode: app.openIdData.loginCode\n        },\n        onCompleted: onCompleted,\n        onError: onError,\n        onOffline: function(){\n          return onError(\"error_offline\");\n        }\n      });\n    };\n  };\n})();","updated":"2023-08-31T15:58:37.713812"},{"path":"addons/navbar/bar/user/user/items/itemTeacherProgress/_t.ls","text":"(function(){\n  return {\n    teacherProgress: {\n      deDev: \"Lehrkraft Fortschritte\",\n      en_gb: \"Teacher progress\",\n      en: \"Teacher Progress\",\n      fr: \"Guide et réussites\",\n      es: \"Avance del docente\",\n      pt: \"Jornada docente\"\n    }\n  };\n})();","updated":"2025-12-10T07:44:49.246401"},{"path":"pages/level/play/page.ls","text":"(function(){\n  return function(page){\n    var params;\n    params = page.params;\n    page.showOffline = inc(\"showOffline/showOffline\")(page);\n    page.context = page.params.context;\n    page.planDescription = inc(\"/data/content/calcPlanDescription/calc\")(params.levelPath);\n    return {\n      top: function(){\n        return inc(\"/addons/topbarLevel/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescriptionWithLevel/description\")(page);\n      },\n      start: function(){\n        var loadLevel, checkMedia, checkMinLevelPlayerVersion, loadTrainerProjects, play, onFinish;\n        loadLevel = function(){\n          return inc(\"loadLevel/load\")(page, checkMedia);\n        };\n        checkMedia = function(){\n          return inc(\"checkMedia/check\")(page, checkMinLevelPlayerVersion);\n        };\n        checkMinLevelPlayerVersion = function(){\n          return inc(\"checkMinLevelPlayerVersion/check\")(page, loadTrainerProjects);\n        };\n        loadTrainerProjects = function(){\n          return inc(\"../_shared/loadTrainerProjects/load\")({\n            levels: page.level,\n            onAbort: function(){\n              return startPage({\n                history: -1\n              });\n            },\n            onDone: play\n          });\n        };\n        play = function(){\n          return inc(\"play/play\")(page, onFinish);\n        };\n        onFinish = function(){\n          return inc(\"onFinish/onFinish\")(page, params);\n        };\n        page.enableBottomFreeze = true;\n        page.pageScrollWrapper.setScrollbarMode(\"show\");\n        page.html(inc(\"/lib/gui/spinner/spinner\")());\n        return loadLevel();\n      }\n    };\n  };\n})();","updated":"2025-12-01T11:26:00.103895"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/setBottomFreeze/init.ls","text":"(function(){\n  return function(pw){\n    return pw.page.setBottomFreeze = function(h){\n      if (engine.isDebug && !pw.page.enableBottomFreeze) {\n        return;\n      }\n      pw.bottomFreeze.css({\n        height: h\n      });\n      return requestAnimationFrame(function(){\n        return pw.page.updateLayout();\n      });\n    };\n  };\n})();","updated":"2025-12-01T11:26:00.103895"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/notFound/contentFeedbackButton/popupInput/popup.ls","text":"(function(){\n  return function(query){\n    var div, form;\n    div = Div({\n      padding: \"1em 0.5em\"\n    }).append(form = inc(\"form/form\")(query));\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2024-03-05T09:00:47.725362"},{"path":"addons/navbar/bar/user/user/_menu/items/item/label/label.ls","text":"(function(){\n  return function(item){\n    if (_.isString(item.label)) {\n      return Div().css({\n        flex: \"1 1 auto\",\n        padding: \"0.03em 0.8em 0 0\"\n      }).html(item.label);\n    } else {\n      return item.label;\n    }\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"addons/navbar/bar/user/user/items/itemHelp/badge/badge.ls","text":"(function(){\n  return function(){\n    var badgeNumber;\n    badgeNumber = inc(\"/data/user/chat/calcUnreadMessagesCount/calc\")();\n    return inc(\"../../../_badge/badge\")({\n      badgeNumber: badgeNumber,\n      onNewLogEventNames: [\"supportChat\"],\n      onNewLogEvents: function(div){\n        return div.replaceWith(inc(THISFILE)());\n      }\n    });\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"addons/navbar/bar/user/user/items/itemNews/badge/badge.ls","text":"(function(){\n  return function(){\n    var badgeNumber;\n    badgeNumber = inc(\"/data/user/news/calcUnreadNewsCount/calc\")();\n    return inc(\"../../../_badge/badge\")({\n      badgeNumber: badgeNumber,\n      onNewLogEventNames: [\"newsRead\"],\n      onNewLogEvents: function(div){\n        return div.replaceWith(inc(THISFILE)());\n      }\n    });\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"addons/navbar/bar/user/user/items/itemPlusVersion/label/label.ls","text":"(function(){\n  return function(){\n    return Div({\n      flex: \"1 1 auto\",\n      padding: \"0.03em 0.8em 0 0\"\n    }).append(T(\"getAntonPlus\"), \"<br>\", Div().html(T(\"getAntonPlusNewTag\")).css({\n      display: \"inline-block\",\n      background: Color.blue[500],\n      color: \"white\",\n      fontSize: \"0.75em\",\n      padding: \"0 0.3em 0.05em\",\n      borderRadius: \"0.1em\"\n    }));\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"addons/navbar/bar/user/user/items/itemSettings/badge/badge.ls","text":"(function(){\n  return function(){\n    var badgeNumber;\n    badgeNumber = inc(\"calcBadgeNumber/calc\")();\n    return inc(\"../../../_badge/badge\")({\n      badgeNumber: badgeNumber\n    });\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"addons/navbar/bar/user/user/items/itemAdventCalendar/badge/badge.ls","text":"(function(){\n  return function(){\n    var badgeNumber;\n    badgeNumber = inc(\"../../../avatar/badge/calcBadgeNumber/adventCalendar/adventCalendar\")();\n    return inc(\"../../../_badge/badge\")({\n      badgeNumber: badgeNumber,\n      onNewLogEventNames: [\"setAdventCalendarOpened\"],\n      onNewLogEvents: function(div){\n        return div.replaceWith(inc(THISFILE)());\n      }\n    });\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"addons/navbar/bar/user/user/avatar/badge/badge.ls","text":"(function(){\n  return function(tabSize){\n    var badgeNumber, ref$, div;\n    if (inc(\"/data/user/isPreschoolFocusMode/is\")()) {\n      return;\n    }\n    badgeNumber = inc(\"calcBadgeNumber/calc\")();\n    if (badgeNumber === 0) {\n      if ((ref$ = app.pushNotification) != null) {\n        ref$.setApplicationIconBadgeNumber(function(){}, function(){}, 0);\n      }\n    }\n    div = inc(\"../../_badge/badge\")({\n      badgeNumber: badgeNumber,\n      onNewLogEventNames: [\"supportChat\", \"newsRead\", \"setAdventCalendarOpened\", \"assistantLevelFinish\", \"assistantExpired\", \"assistantIntroShown\", \"assistantStart\", \"assistantCompleted\"],\n      onNewLogEvents: function(div){\n        return div.replaceWith(inc(THISFILE)(tabSize));\n      }\n    });\n    div.css(tabSize === \"normal\"\n      ? {\n        top: \"-8px\",\n        left: \"-1px\"\n      }\n      : tabSize === \"mini\"\n        ? {\n          top: \"-9px\",\n          left: \"-1px\"\n        }\n        : {\n          top: \"-3px\",\n          left: \"5px\"\n        });\n    return div;\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"lib/init/errorHandler/reportUnhandledPromiseErrors/report.ls","text":"(function(){\n  return function(){\n    window.removeEventListener(\"unhandledrejection\", window.onUnhandledRejection);\n    window.onUnhandledRejection = function(event){\n      var error;\n      error = event.reason;\n      if (typeof window.reportError == 'function') {\n        window.reportError(error);\n      }\n      return event.preventDefault();\n    };\n    return window.addEventListener(\"unhandledrejection\", window.onUnhandledRejection);\n  };\n})();","updated":"2025-04-22T11:37:50.604036"},{"path":"addons/navbar/bar/user/dummy/tab.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\",\n      padding: \"0 0.3em\",\n      textAlign: \"center\",\n      fontSize: \"0.7em\"\n    }).html(T(\"notLoggedIn\"));\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"addons/navbar/bar/user/user/_menu/items/updatePosition/update.ls","text":"(function(){\n  return function(div, o){\n    var offset, offset2, left, right, adjustLeft1, adjustLeft2;\n    if (!o.div.isVisible()) {\n      o.background.remove();\n      return;\n    }\n    offset = o.div.offset();\n    offset2 = div.offset();\n    left = offset.left + offset.width / 2 - offset2.width / 2;\n    right = body.width() - left - offset2.width;\n    adjustLeft1 = right < 20 ? -(20 - right) : 0;\n    left += adjustLeft1;\n    adjustLeft2 = left < 20 ? 20 - left : 0;\n    left += adjustLeft2;\n    div.css({\n      left: left + \"px\"\n    }).css(app.navbarPosition === \"top\"\n      ? {\n        top: offset.top + offset.height + 5 + \"px\",\n        bottom: \"\"\n      }\n      : {\n        top: \"\",\n        bottom: body.height() - offset.top + 10 + \"px\"\n      });\n    return o.corner.css({\n      left: offset2.width / 2 - adjustLeft1 - adjustLeft2 + \"px\"\n    }).css(app.navbarPosition === \"top\"\n      ? {\n        top: \"-7px\",\n        bottom: \"\"\n      }\n      : {\n        top: \"\",\n        bottom: \"-7px\"\n      });\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/fields.ls","text":"(function(){\n  return function(p){\n    var i$, ref$, len$, field, results$ = [];\n    for (i$ = 0, len$ = (ref$ = p.params.fields).length; i$ < len$; ++i$) {\n      field = ref$[i$];\n      if (!field) {\n        continue;\n      }\n      results$.push(inc(\"field/field\")(field, p));\n    }\n    return results$;\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"pages/games/00_shared/_t.ls","text":"(function(){\n  return {\n    games: {\n      de: \"Spiele\",\n      en: \"Games\",\n      fr: \"Jeux\",\n      es: \"juegos\",\n      pt: \"Jogos\"\n    },\n    gamesLocked: {\n      de: \"Die Spiele sind noch $1<br>gesperrt für <b>$2</b>.\",\n      en: \"The games will be locked<br>for the next $1 for <b>$2</b>.\",\n      fr: \"Les jeux sont désactivés<br> pendant encore $1 pour le groupe <b>$2</b>.\",\n      es: \"Los juegos siguen desactivados<br>por $1 para el grupo <b>$2</b>.\",\n      pt: \"Os jogos estão desativados <br>por $1 para o grupo <b>$2</b>.\"\n    },\n    reallyCloseGame: {\n      de: \"Möchtest du das Spiel wirklich beenden?\",\n      en: \"Do you really want to quit the game?\",\n      fr: \"Tu veux vraiment quitter le jeu&nbsp;?\",\n      es: \"¿Quieres salir del juego realmente?\",\n      pt: \"Você quer mesmo sair do jogo?\"\n    },\n    close: {\n      de: \"Beenden\",\n      en: \"Quit\",\n      fr: \"Quitter\",\n      es: \"Salir\",\n      pt: \"Sair\"\n    },\n    bestScore: {\n      de: \"Dein bestes Ergebnis: $1\",\n      en: \"Your high score: $1\",\n      fr: \"Ton meilleur score&nbsp;: $1\",\n      es: \"Tu récord: $1\",\n      pt: \"Seu recorde: $1\"\n    },\n    yourScore: {\n      de: \"Dein Ergebnis: $1\",\n      en: \"Your score: $1\",\n      fr: \"Ton score&nbsp;: $1\",\n      es: \"Puntuación: $1\",\n      pt: \"Pontuação: $1\"\n    },\n    notImproved: {\n      de: \"Du hast dich leider nicht verbessert.\",\n      en: \"You didn't manage to beat your high score.\",\n      fr: \"Tu n'as pas réussi à battre ton meilleur score.\",\n      es: \"No lograste superar tu récord.\",\n      pt: \"Você ainda não bateu seu recorde.\"\n    },\n    topPositionReached: {\n      de: \"Super, du hast Platz $1 erreicht!\",\n      en_gb: \"Great, you reached $1 place!\",\n      en: \"Great, you reached rank $1!\",\n      fr: \"Bravo, tu as atteint la place n° $1&nbsp;!\",\n      es: \"¡Felicidades! Quedaste en el puesto número: $1\",\n      pt: \"Parabéns! Você alcançou a posição número: $1!\"\n    },\n    positionReached: {\n      de: \"Du hast Platz $1 erreicht.\",\n      en_gb: \"You reached $1 place.\",\n      en: \"You reached rank $1.\",\n      fr: \"Tu as atteint la place n° $1.\",\n      es: \"Quedaste en el puesto número: $1.\",\n      pt: \"Você alcançou a posição número: $1.\"\n    },\n    yourResult: {\n      de: \"Dein Ergebnis\",\n      en: \"Your score\",\n      fr: \"Ton score\",\n      es: \"Puntuación\",\n      pt: \"Sua pontuação\"\n    },\n    school: {\n      de: \"Schule\",\n      en: \"School\",\n      fr: \"École\",\n      es: \"Escuela\",\n      pt: \"Escola\"\n    },\n    myGroups: {\n      de: \"Meine Gruppen\",\n      en: \"My groups\",\n      fr: \"Mes groupes\",\n      es: \"Mis grupos\",\n      pt: \"Meus grupos\"\n    },\n    everybody: {\n      de: \"Alle\",\n      en: \"All\",\n      fr: \"Tous\",\n      es: \"Todos\",\n      pt: \"Todos\"\n    },\n    sevenDays: {\n      de: \"7 Tage\",\n      en: \"7 days\",\n      fr: \"7 jours\",\n      es: \"7 días\",\n      pt: \"7 dias\"\n    },\n    today: {\n      de: \"Heute\",\n      en: \"Today\",\n      fr: \"Aujourd'hui\",\n      es: \"Hoy\",\n      pt: \"Hoje\"\n    },\n    highscore: {\n      de: \"Bestenliste\",\n      en: \"High scores\",\n      fr: \"Meilleurs scores\",\n      es: \"Récords\",\n      pt: \"Recordes\"\n    },\n    lastResult: {\n      de: \"Dein letztes Ergebnis: $1\",\n      en: \"Your last score: $1\",\n      fr: \"Ton dernier score&nbsp;: $1\",\n      es: \"Tu última puntuación: $1\",\n      pt: \"Sua última pontuação: $1\"\n    },\n    noScoreYet: {\n      de: \"Du hast noch kein Ergebnis.\",\n      en: \"You don't have a score yet.\",\n      fr: \"Tu n'as pas encore de score.\",\n      es: \"Aún no tienes ningún récord.\",\n      pt: \"Você ainda não tem pontuação.\"\n    },\n    noHighscoreData: {\n      de: \"Keine Highscores für den ausgewählten Zeitraum vorhanden.\",\n      en_gb: \"No high scores available for the selected period.\",\n      en: \"No high scores available for the selected period.\",\n      fr: \"Aucun score n'a été trouvé pour la période sélectionnée.\",\n      es: \"No hay puntuaciones para el periodo seleccionado.\",\n      pt: \"Nenhuma pontuação disponível para o período selecionado.\"\n    },\n    noHighscoreOffline: {\n      de: \"Du bist gerade offline, wir können dir daher keine Bestenliste anzeigen.\",\n      en: \"You can't see the high scores as you are currently offline.\",\n      fr: \"Tu ne peux pas voir les meilleurs scores parce que tu n'es pas en ligne.\",\n      es: \"No te podemos mostrar los récords porque estás desconectado.\",\n      pt: \"Não podemos te mostrar seus recordes, pois você está desconectado.\"\n    },\n    noHighscoreError: {\n      de: \"Es ist ein Fehler aufgetreten, wir können dir daher keine Bestenliste anzeigen. Wir kümmern uns darum!\",\n      en: \"An error occurred, so you can't see the high scores. We are taking care of it!\",\n      fr: \"Une erreur s'est produite et tu ne peux pas voir les meilleurs scores. On s'occupe de ça très vite&nbsp;!\",\n      es: \"Ocurrió un error y no te podemos mostrar los récords. Lo estamos resolviendo.\",\n      pt: \"Ocorreu um erro e não foi possível te mostrar seus recordes. Nós cuidaremos disso!\"\n    },\n    hint: {\n      de: \"Tipp: \",\n      en: \"Hint: \",\n      fr: \"À noter : \",\n      es: \"Nota: \",\n      pt: \"Dica: \"\n    },\n    gamesUrl: {\n      de: \"spiele\",\n      en: \"games\",\n      fr: \"jeux\",\n      es: \"juegos\",\n      pt: \"jogos\"\n    }\n  };\n})();","updated":"2023-11-30T11:30:00.78351"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/onMutationObserver/on.ls","text":"(function(){\n  return function(pw, elements){\n    var onMutation, mo, i$, len$, el;\n    onMutation = function(entries){\n      var e, ref$;\n      e = entries[0];\n      if ((entries != null ? entries.length : void 8) === 1 && ((typeof (ref$ = e.target).hasClass == 'function' && ref$.hasClass(\"scrollDiv_bar\")) || e.target.hasClass(\"button\") || e.target.hasClass(\"cursor-inner\") || ((ref$ = e.addedNodes[0]) != null && (typeof ref$.hasClass == 'function' && ref$.hasClass(\"tap-overlay\"))))) {\n        return;\n      }\n      return pw.page.updateLayout();\n    };\n    mo = new MutationObserver(onMutation);\n    for (i$ = 0, len$ = elements.length; i$ < len$; ++i$) {\n      el = elements[i$];\n      mo.observe(el, {\n        childList: true,\n        subtree: true,\n        attributes: true\n      });\n    }\n    pw.onWindowResize(function(){\n      return onMutation([]);\n    });\n    return pw.onDomRemove(function(){\n      return mo.disconnect();\n    });\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/speakerIconPlayer/speakerIconPlayer.ls","text":"(function(){\n  return function(o){\n    var sound, isPlaying, onDoneCallback, onProgressCallback, setSound, onEnded, onProgress, play, stop, toggle, div;\n    o == null && (o = {});\n    sound = o.sound;\n    isPlaying = false;\n    onDoneCallback = null;\n    onProgressCallback = null;\n    setSound = function(newSound){\n      if (sound != null) {\n        sound.stop();\n      }\n      sound = newSound;\n      isPlaying = false;\n      return div.reset();\n    };\n    onEnded = function(){\n      isPlaying = false;\n      if (typeof onDoneCallback == 'function') {\n        onDoneCallback();\n      }\n      onDoneCallback = null;\n      return div.reset();\n    };\n    onProgress = function(progress, total){\n      var percent;\n      div.update(progress, total);\n      if (onProgressCallback) {\n        onProgressCallback(progress, total);\n        return;\n      }\n      return percent = progress / total;\n    };\n    play = function(done, progress){\n      if (!sound) {\n        if (typeof done == 'function') {\n          done();\n        }\n        return;\n      }\n      isPlaying = true;\n      onDoneCallback = done;\n      onProgressCallback = progress;\n      return sound.play(onEnded, onProgress);\n    };\n    stop = function(){\n      if (sound != null) {\n        sound.stop();\n      }\n      return onEnded();\n    };\n    toggle = function(){\n      if (isPlaying) {\n        return stop();\n      } else {\n        return play();\n      }\n    };\n    div = inc(\"/lib/gui/speakerAnimate/speakerAnimate\")({\n      speakerType: \"123\",\n      outline: o.outline,\n      size: o.size\n    });\n    div.tap({\n      up: toggle,\n      animation: \"none\"\n    });\n    div.play = play;\n    div.stop = stop;\n    div.toggle = toggle;\n    div.setSound = setSound;\n    div.isPlaying = function(){\n      return isPlaying;\n    };\n    return div;\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/field/button/button.ls","text":"(function(){\n  return function(field, p){\n    var tap;\n    tap = function(){\n      return p.submit(field.id);\n    };\n    return Div({\n      display: \"flex\",\n      margin: \"0.8em auto\"\n    }).html(Button(field.label).tap(tap));\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/field/error/error.ls","text":"(function(){\n  return function(field){\n    var div;\n    div = Div({\n      marginTop: \"-0.2em\",\n      padding: \"0em 0.4em 0.3em\",\n      lineHeight: \"1.3em\",\n      color: Color.red[500],\n      fontSize: \"0.9em\",\n      textAlign: \"left\"\n    }).css(field.css).addClass(\"field\");\n    div.getValue = function(){\n      return {\n        id: field.id,\n        value: field.value\n      };\n    };\n    div.setValue = function(v){\n      var ref$;\n      field.value = v;\n      div.html(v);\n      if (v) {\n        return div.fadeIn();\n      } else if (!((ref$ = field.css) != null && ref$.minHeight)) {\n        return div.hide();\n      }\n    };\n    div.setValue(field.value);\n    return div;\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/field/field.ls","text":"(function(){\n  return function(field, p){\n    var m, func, ref$, el;\n    m = {\n      check: inc(\"check/check\"),\n      radioButton: inc(\"radioButton/radioButton\"),\n      text: inc(\"text/text\"),\n      button: inc(\"button/button\"),\n      input: inc(\"input/input\"),\n      error: inc(\"error/error\"),\n      div: function(field){\n        return field.div;\n      }\n    };\n    func = (ref$ = m[field.type]) != null\n      ? ref$\n      : m.input;\n    el = func(field, p);\n    if (field.id) {\n      el.addClass(\"field_\" + field.id);\n    }\n    el.getField = function(){\n      return field;\n    };\n    el.getId = function(){\n      return field.id;\n    };\n    el.getType = function(){\n      return field.type;\n    };\n    return el;\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/field/input/showKeyboardBottom/_header/_key/key.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\",\n      background: Color.grey[250],\n      borderRadius: \"5px\",\n      margin: \"0.2em\",\n      height: \"2.2em\",\n      width: \"2.2em\"\n    });\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/field/input/showKeyboardBottom/_header/cssNoSpecialKeys/css.ls","text":"(function(){\n  return function(){\n    return {\n      position: \"absolute\",\n      left: \"0.2em\",\n      top: \"-2.8em\",\n      height: \"2em\"\n    };\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/field/input/showKeyboardBottom/big/bottom.ls","text":"(function(){\n  return function(input, sk){\n    var div;\n    div = Div().html(inc(\"../_header/header\")(input, sk), inc(\"screenKeyboard/keyboard\")(input, sk).css({\n      background: Color.grey[150]\n    }));\n    app.currentPage.bottom.css({\n      background: Color.grey[150]\n    });\n    return input.bottomKeys = div;\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/field/input/showKeyboardBottom/show.ls","text":"(function(){\n  return function(input, sk){\n    var divEd, type, f, bottom;\n    divEd = input.findFirst(\".divEditable\");\n    type = inc(\"/lib/util/cache/get/get\")(\"inputKeyboardBottomType\");\n    if (!type) {\n      type = \"small\";\n      inc(\"/lib/util/cache/set/set\")(\"inputKeyboardBottomType\", type);\n    }\n    divEd.setSoftKeyboardEnabled(type === \"small\");\n    f = type === \"big\"\n      ? inc(\"big/bottom\")\n      : inc(\"small/bottom\");\n    bottom = f(input, sk);\n    bottom.onAnimationFrame(function(){\n      if (divEd.d.isStarted) {\n        return bottom.show();\n      } else {\n        return bottom.hide();\n      }\n    });\n    inc(\"stopEvents/stop\")(bottom, input);\n    app.currentPage.bottom.fadeIn(150).html(bottom);\n    return input.keyboardBottom = bottom;\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/field/input/showKeyboardBottom/small/bottom.ls","text":"(function(){\n  return function(input, sk){\n    var div;\n    div = inc(\"../_header/header\")(input, sk);\n    app.currentPage.bottom.css({\n      background: Color.grey[50]\n    });\n    return input.bottomKeys = div;\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/field/input/showKeyboardBottom/stopEvents/stop.ls","text":"(function(){\n  return function(div, input){\n    return div.bind(\"touchstart\", function(e){\n      e.preventDefault();\n      e.stopImmediatePropagation();\n      return input.css({\n        pointerEvents: \"none\"\n      });\n    }).bind(\"touchend\", function(e){\n      e.preventDefault();\n      e.stopImmediatePropagation();\n      return input.css({\n        pointerEvents: \"auto\"\n      });\n    }).bind(\"mousedown\", function(e){\n      e.preventDefault();\n      return e.stopImmediatePropagation();\n    });\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"lib/gui/multiform/fields/field/text/text.ls","text":"(function(){\n  return function(field){\n    return Div({\n      textAlign: \"left\",\n      margin: \"0.4em auto 0.2em\"\n    }).append(field.label);\n  };\n})();","updated":"2023-11-09T11:17:46.013545"},{"path":"pages/school/_shared/schoolRow/row.ls","text":"(function(){\n  return function(school, isFirst, showBadge){\n    var location, div, b;\n    location = (school != null && school.zip) && (school != null && school.city)\n      ? school.zip + \" \" + school.city\n      : school.location;\n    return div = Div({\n      display: \"flex\",\n      padding: \"1em\",\n      borderBottom: b = \"1px solid \" + Color.grey[250],\n      borderTop: isFirst ? b : void 8,\n      maxWidth: \"100%\",\n      width: \"35em\",\n      margin: \"0 auto\"\n    }).html(inc(\"../schoolIcon/icon\")({\n      schoolDescription: school\n    }).css({\n      marginRight: \"0.4em\"\n    }), Div({\n      display: \"flex\",\n      flex: \"1 1 auto\",\n      textAlign: \"left\",\n      alignItems: \"flex-start\",\n      flexDirection: \"column\"\n    }).html(Div({\n      flex: \"1 1 auto\",\n      textAlign: \"left\"\n    }).secureHtml(school.name), Div({\n      flex: \"1 1 auto\",\n      color: Color.grey[400],\n      textAlign: \"left\",\n      paddingRight: \"0.5em\"\n    }).secureHtml(location)), school.membersTotal ? Div({\n      display: \"flex\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/user.svg\"),\n      color: Color.grey[400]\n    }).css({\n      flex: \"0 0 auto\"\n    }), Div({\n      flex: \"0 0 auto\",\n      color: Color.grey[400]\n    }).html(school.membersTotal)) : void 8, showBadge ? Div({\n      flex: \"0 0 auto\",\n      borderRadius: \"999px\",\n      backgroundColor: Color.red[500],\n      color: Color.white,\n      fontSize: \"0.7em\",\n      width: \"1.35em\",\n      height: \"1.35em\"\n    }).html(\"1\") : void 8, SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      color: Color.grey[400]\n    }).css({\n      flex: \"0 0 auto\"\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/schoolSearch/finish.ls","text":"(function(){\n  return function(school){\n    var totalPages, i$, ref$, len$, h, o;\n    totalPages = 0;\n    for (i$ = 0, len$ = (ref$ = app.pageHistory.slice().reverse()).length; i$ < len$; ++i$) {\n      h = ref$[i$];\n      if (_.includes(h.path, \"schoolSearch\")) {\n        totalPages++;\n      } else {\n        break;\n      }\n    }\n    if (school.city) {\n      school.location = school.city;\n      delete school.city;\n    }\n    o = inc(\"/lib/util/cache/get/get\")(\"schoolFinish\");\n    o.totalPages = totalPages;\n    o.school = school;\n    return inc(o.finishFunctionPath)(o);\n  };\n})();","updated":"2023-09-14T10:20:51.058197"},{"path":"lib/util/audioContextNext/_shared/checkAndFixAudioContext/checkAndFix.ls","text":"(function(){\n  return function(){\n    var audioContext, state;\n    if (sound.audioContextCheckInProgress || sound.appPaused) {\n      return;\n    }\n    sound.audioContextCheckInProgress = true;\n    audioContext = sound.audioContext;\n    state = audioContext != null ? audioContext.state : void 8;\n    if (!audioContext || state === \"closed\") {\n      app.audioContextDebugEvents.push({\n        event: \"checkAndFix\",\n        type: \"audioContext \" + state,\n        created: new Date()\n      });\n      inc(\"createNewAudioContext/create\")();\n      return sound.audioContextCheckInProgress = false;\n    } else if (state === \"running\") {\n      return inc(\"checkFrozenAudioContext/check\")();\n    } else if (state === \"suspended\" || state === \"interrupted\") {\n      app.audioContextDebugEvents.push({\n        event: \"checkAndFix\",\n        type: \"audioContext \" + state,\n        created: new Date()\n      });\n      return audioContext.resume().then(function(){\n        return sound.audioContextCheckInProgress = false;\n      })['catch'](function(error){\n        sound.audioContextCheckInProgress = false;\n        inc(\"logAudioContextDebugEvents/log\")(error);\n        if (error.message !== \"Failed to start the audio device\") {\n          throw error;\n        }\n      });\n    } else {\n      sound.audioContextCheckInProgress = false;\n      throw new Error(\"Unknown audioContext state: \" + state);\n    }\n  };\n})();","updated":"2026-01-28T13:50:04.421024"},{"path":"lib/gui/divEditable/getSelectedLineDivs/get.ls","text":"(function(){\n  return function(d){\n    var get, sel, lineDiv1, lineDiv2, delta, lineDivs, div;\n    get = inc(\"../_shared/getParentLine/get\");\n    sel = window.getSelection();\n    lineDiv1 = get(sel.anchorNode);\n    lineDiv2 = get(sel.focusNode);\n    if (lineDiv1 === lineDiv2) {\n      return [lineDiv1];\n    }\n    delta = lineDiv2.lineNumber - lineDiv1.lineNumber;\n    lineDivs = [lineDiv1];\n    div = lineDiv1;\n    for (;;) {\n      div = delta > 0\n        ? div.nextSibling\n        : div.previousSibling;\n      lineDivs.push(div);\n      if (div === lineDiv2 || !div) {\n        break;\n      }\n    }\n    return lineDivs;\n  };\n})();","updated":"2023-09-15T04:42:02.940882"},{"path":"pages/start/login/00_shared/help/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        return page.append(Style().html(\"a {text-decoration: none; color: rgb(25, 118, 210)}\"), Div({\n          padding: \"1em\",\n          lineHeight: \"1.5em\",\n          width: \"35em\",\n          maxWidth: \"95%\",\n          margin: \"1em auto\",\n          textAlign: \"justify\",\n          hyphens: \"auto\"\n        }).html(T(\"helpPage\")));\n      }\n    };\n  };\n})();","updated":"2024-06-28T10:29:25.647639"},{"path":"pages/start/login/00_shared/help/_t.ls","text":"(function(){\n  return {\n    helpPage: {\n      de: \"    <b>Hast du schon einmal auf einem anderen Gerät mit ANTON&nbsp;gelernt?</b>\\n    <br>\\n    Dann klicke dort auf „Einstellungen“, um deinen Anmelde-&#65279;Code zu finden.\\n    <br><br>\\n\\n    <b>Hast du schon einmal mit ANTON in der Schule&nbsp;gelernt?</b>\\n    <br>\\n    Dann frage deinen Lehrer oder deine Lehrerin nach deinem Anmelde-&#65279;Code.\\n    <br><br>\\n\\n    <b>Bist du neu bei ANTON?</b>\\n    <br>\\n    Dann gehe zurück und erstelle ein neues Nutzerkonto.\\n    <br><br>\\n\\n    <b>Hast du eine E-Mail oder Handynummer hinterlegt?</b>\\n    <br>\\n    Dann gehe zurück und trage diese in das Feld ein. Klicke dann auf „Weiter“ und gib dein Passwort ein.\\n    <br>\\n    Wenn du dein Passwort vergessen oder noch keines vergeben hast, klicke auf „Passwort vergessen“ und folge den Anweisungen. \\n    <br><br>\\n    \\n    <b>Wunderst du dich, dass du beim Login keine Großbuchstaben tippen kannst?</b>\\n    <br>\\n    Beim Login benötigst du nur Kleinbuchstaben. \\n    Wenn dein Lehrer oder deine Lehrerin dir ein Nutzerkonto vorbereitet hat, \\n    funktioniert die erste Anmeldung ausschließlich über den Anmelde-Code im Format xxxx-xxxx. \\n    Gib diesen in das erste Feld ein, ohne vorher einen Namen oder ähnliches einzutragen.\\n    <br><br>\\n\\n    <b>Hast du ein anderes&nbsp;Problem?</b>\\n    <br>\\n    Dann schaue bitte in die Häufigen Fragen. Diese findest du auf der ANTON-Startseite ganz unten \\n    oder im Browser unter \\n    <a href='https://anton.app/faq' target='_blank'>anton.app/faq</a>. \",\n      en_gb: \"    <b>Have you already used ANTON on another device?</b>\\n    <br>\\n    Then go to “Settings” on that device to find your login code.\\n    <br><br>\\n\\n    <b>Have you already used ANTON at school?</b>\\n    <br>\\n    Then ask your teacher for your login code.\\n    <br><br>\\n\\n    <b>Is this your first time using ANTON?</b>\\n    <br>\\n    Then go back and create a new account.\\n    <br><br>\\n   \\n    <b>Have you previously assigned an email or a phone number to your account?</b>\\n    <br>\\n    Then go back and enter it in the field. Then select \\\"Continue\\\" and type your password.\\n    <br>\\n    If you forgot your password or haven't assigned one yet, select \\\"Forgot your password?\\\" and follow the instructions. \\n    <br><br>\\n    \\n    <b>Are you wondering why you can't type capital letters when you log in?</b>\\n    <br>\\n    You only need lowercase letters when logging in. \\n    If your teacher has created an account for you, \\n    the first login will work only with the login code (in the format xxxx-xxxx). \\n    Enter it in the first field without entering a name or anything else beforehand.\\n    <br><br>\\n    <b>Do you have a different problem?</b>\\n    <br>\\n    Then please take a look at the Frequently Asked Questions. You can find them at the bottom of the ANTON home page or in your browser at \\n    <a href='https://anton.app/faq' target='_blank'>anton.app/faq</a>. \",\n      en: \"    <b>Have you already used ANTON on another device?</b>\\n    <br>\\n    Then go to “Settings” on that device to find your login code.\\n    <br><br>\\n\\n    <b>Have you already used ANTON at school?</b>\\n    <br>\\n    Then ask your teacher for your login code.\\n    <br><br>\\n\\n    <b>Is this your first time using ANTON?</b>\\n    <br>\\n    Then go back and create a new account.\\n    <br><br>\\n   \\n    <b>Have you previously assigned an email or cell phone number to your account?</b>\\n    <br>\\n    Then go back and enter it in the field. Then select \\\"Continue\\\" and type your password.\\n    <br>\\n    If you forgot your password or haven't assigned one yet, select \\\"Forgot your password?\\\" and follow the instructions. \\n    <br><br>\\n    \\n    <b>Are you wondering why you can't type capital letters when you log in?</b>\\n    <br>\\n    You only need lowercase letters when logging in. \\n    If your teacher has created an account for you, \\n    the first login will work only with the login code (in the format xxxx-xxxx). \\n    Enter it in the first field without entering a name or anything else beforehand.\\n    <br><br>\\n    <b>Do you have a different problem?</b>\\n    <br>\\n    Then please take a look at the Frequently Asked Questions. You can find them at the bottom of the ANTON home page or in your browser at \\n    <a href='https://anton.app/faq' target='_blank'>anton.app/faq</a>. \",\n      fr: \"    <b>Tu as déjà utilisé ANTON sur un autre appareil&nbsp;?</b>\\n    <br>\\n    Tu peux donc retrouver ton code de connexion en appuyant sur “Paramètres”.\\n    <br><br>\\n\\n    <b>Tu as déjà utilisé ANTON à l'école&nbsp;?</b>\\n    <br>\\n    Dans ce cas, tu peux demander ton code de connexion à ton·ta professeur·e.\\n    <br><br>\\n\\n    <b>C'est la première fois que tu utilises ANTON&nbsp;?</b>\\n    <br>\\n    Alors recommence depuis le début pour créer un nouveau compte.\\n    <br><br>\\n\\n    <b>Tu as une adresse e-mail ou un numéro de téléphone portable&nbsp;?</b>\\n    <br>\\n    Dans ce cas, reviens en arrière et complète le champ correspondant. Appuie ensuite sur “Continuer” et entre ton mot de passe.\\n    <br>\\n    Si tu as oublié ton mot de passe ou que tu n'en as pas encore établi un, appuie sur “Mot de passe oublié” et suis les indications données. \\n    <br><br>\\n\\n    <b>Tu te demandes pourquoi tu ne peux pas utiliser de lettres majuscules&nbsp;?</b>\\n    <br>\\n    Tu as uniquement besoin de lettres minuscules pour te connecter. \\n    Si c'est ton·ta professeur·e qui a préparé un compte pour toi, lors de ta toute première connexion, tu dois utiliser le code de connexion dont le format est xxxx-xxxx. \\n    Entre ce code dans le premier champ que tu vois, sans aucune autre information supplémentaire.\\n    <br><br>\\n\\n    <b>Tu as un autre problème&nbsp;?</b>\\n    <br>\\n    Nous te conseillons de consulter notre rubrique aide/FAQ. Tu la trouveras au bas de la page d'accueil ANTON ou à \\n    <a href='https://anton.app/faq' target='_blank'>anton.app/faq</a> \\n    dans ton navigateur.\",\n      es: \"    <b>¿Ya has utilizado ANTON en otro dispositivo?</b>\\n    <br>\\n    Entonces ve a los “ajustes” en ese dispositivo y busca ahí tu clave de acceso.\\n    <br><br>\\n\\n    <b>¿Has utilizado ANTON en la escuela?</b>\\n    <br>\\n    Entonces pregúntale a tu docente si tiene tu clave de acceso.\\n    <br><br>\\n\\n    <b>¿Es la primera vez que utilizas ANTON?</b>\\n    <br>\\n    Entonces vuelve al inicio y crea una cuenta nueva.\\n    <br><br>\\n\\n    <b>¿Ya registraste tu correo electrónico o número de teléfono?</b>\\n    <br>\\n    Entonces, ingrésalo aquí. Luego presiona „Continuar“ e ingresa tu contraseña.\\n    <br>\\n    Si olvidaste tu contraseña o aún no la has registrado, presiona „¿Olvidaste tu contraseña?“ Luego sigue las instrucciones. \\n    <br><br>\\n\\n    <b>¿Te parece extraño que no puedas escribir con mayúsculas al iniciar sesión?</b>\\n    <br>\\n    El teclado en la página de inicio no diferencía entre mayúsculas y minúsculas porque para iniciar sesión sólo necesitas minúsculas. \\n    En caso de que tu docente haya preparado una cuenta para ti, sólo te puedes registrar con clave de acceso. Presiona \\\"iniciar sesión con clave\\\", luego \\n    ingresa únicamente la clave que te proporcionó tu docente con el formato xxxx-xxxx, sin ingresar ninguna otra información en el mismo campo. \\n    <br><br>\\n\\n    <b>¿Tienes algún otro problema?</b>\\n    <br>\\n    Por favor, revisa nuestra sección de preguntas frecuentes. \\n    Las preguntas frecuentes las encuentras en la página de inicio, recorriendo la pantalla hasta abajo. \\n    También puedes consultarlas en tu navegador entrando a \\n    <a href='https://anton.app/faq' target='_blank'>anton.app/faq</a>. \\n    <br>\\n    Si no encuentras la respuesta que buscas ahí, mándanos un correo a <br>support@anton.app\",\n      pt: \"    <b>Você já utilizou ANTON em outro dispositivo?</b>\\n    <br>\\n    Então clique em “configurações” nesse dispositivo para encontrar o seu código de acesso.\\n    <br><br>\\n    \\n    <b>Você já utilizou ANTON na escola?</b>\\n    <br>\\n    Então pergunte para seu/sua professor(a) se ele(a) tem seu código de acesso.\\n    <br><br>\\n    \\n    <b>É a primeira vez que está usando ANTON?</b>\\n    <br>\\n    Então volte à página inicial e crie uma conta nova.\\n    <br><br>\\n    \\n    <b>Você já registrou seu endereço de e-mail e seu número de telefone?</b>\\n    <br>\\n    Então registre-os aqui. Depois clique em “Continuar” e registre sua senha.\\n    <br>\\n    Se você esqueceu sua senha ou ainda não está registrado, clique em “Esqueci minha senha” e siga as instruções.\\n    <br><br>\\n    \\n    <b>Você está se perguntando por que que não consegue digitar letras maiúsculas ao efeturar login?</b>\\n    <br>\\n    Você só precisa de letras minúsculas para efetuar seu login.\\n    Se seu/sua professor(a) preparou uma conta de usuário para você, o primeiro registro funciona exclusivamente com o \\n    código de acesso no formato xxxx-xxxx que ele(a) irá te entregar. Insira esse código no primeiro campo sem \\n    acrescentar nenhuma outra informação.\\n    <br><br>\\n\\n    <b>Você tem algum outro problema?</b>\\n    <br>\\n    Por favor, revise nossa sessão de perguntas frequentes. Você irá encontrá-las na parte inferior da \\n    tela inicial. Se preferir, também pode consultar as perguntas frequentes em seu navegador em \\n    <a href='https://anton.app/faq' target='_blank'>anton.app/faq</a>. \\n    <br>\\n    Se ainda não encontrar resposta para sua dúvida, escreva um e-mail para <br>support@anton.app\"\n    }\n  };\n})();","updated":"2026-02-18T12:51:34.062617"},{"path":"pages/level/afterFinish/start/showLevelRatingPage/calcLevelRatingProjects/calc.ls","text":"(function(){\n  return function(){\n    return [\"c-mat-7\", \"c-mat-8\", \"c-mat-9\", \"c-mat-11-algebra\", \"c-mat-11-analysis\", \"c-mat-11-stochastic\", \"c-natdeu-11\", \"c-eng-6\", \"c-eng-7\", \"c-eng-8\", \"c-eng-9\", \"c-eng-10\", \"c-eng-11\", \"c-sci\", \"c-sci-1\", \"c-bio-7\", \"c-bio-9\", \"c-chem-7\", \"c-phy-5\", \"c-phy-7\", \"c-inf-5\", \"c-his\", \"c-mus\", \"c-mus-1\", \"c-geo-5\", \"c-alpha-deu\", \"c-deu-a1\"];\n  };\n})();","updated":"2025-04-22T13:59:21.973148"},{"path":"pages/level/reviewOrPreviewPopup/loadLevel/load.ls","text":"(function(){\n  return function(p){\n    if (_.startsWith(p.levelPath, \"/learnList/\") || _.startsWith(p.levelPuid, \"/learnList/\")) {\n      return inc(\"/../app01-learn-list/data/loadLevel/load\")({\n        levelPath: p.levelPath || p.levelPuid,\n        startConfig: p.startConfig,\n        onError: p.onError,\n        onLoaded: p.onLoaded\n      });\n    } else if (_.startsWith(p.levelPath, \"/assistantMath/\") || _.startsWith(p.levelPuid, \"/assistantMath/\")) {\n      return inc(\"/../app01-assistant-math/generateLevel/generate\")({\n        levelPath: p.levelPath || p.levelPuid,\n        randomSeed: p.round,\n        onError: p.onError,\n        onDone: p.onLoaded\n      });\n    } else if (_.startsWith(p.levelPath, \"/mathPractice/\")) {\n      return inc(\"/../app01-math-practice/data/loadLevel/load\")({\n        levelPath: p.levelPath,\n        onError: p.onError,\n        onLoaded: p.onLoaded\n      });\n    } else {\n      return inc(\"/lib/util/loadLevel/load\")({\n        path: p.levelPath,\n        puid: p.levelPuid,\n        onError: p.onError,\n        onLoaded: p.onLoaded\n      });\n    }\n  };\n})();","updated":"2024-10-16T09:56:10.496135"},{"path":"pages/static/cancelDeletionDirAdmin/04_showLoginCodeAndFinish/_t.ls","text":"(function(){\n  return {\n    text: {\n      de: \"Dies ist dein neuer Anmelde-Code. Bitte schreibe ihn auf oder drucke ihn aus, damit du den Zugang zu deinem Konto nicht verlieren kannst. Du kannst ihn auch jederzeit in den Einstellungen unter&nbsp;<b><i>Kontodaten > Anmelde-&#65279;Code</i></b> nachschauen.\",\n      en: \"This is your new login code. Please write it down or print it out so that you don’t lose access to your account. You can always find it in your settings under <b><i>Login code</i></b>.\",\n      fr: \"Voici ton nouveau code de connexion. Nous te conseillons de le noter quelque part ou de l'imprimer pour ne pas perdre l'accès à ton compte. Tu peux toujours le trouver dans tes paramètres à <b><i>Code de connexion</i></b>.\",\n      es: \"Esta es tu nueva clave de acceso. Te aconsejamos anotarla o imprimirla para que no pierdas el acceso a tu cuenta. Puedes consultar tu clave en cualquier momento en los ajustes bajo <b><i>clave de acceso</i></b>.\",\n      pt: \"Este é o seu novo código de acesso. Anote ou imprima-o para não perder o acesso à sua conta. Vocêtambém pode consultá-lo a qualquer momento nas configurações, em <b><i>código de acesso</i></b>.\"\n    },\n    loginCode: {\n      de: \"Anmelde-Code:\",\n      en: \"Login code:\",\n      fr: \"Code de connexion&nbsp;:\",\n      es: \"Clave de acceso\",\n      pt: \"Código de acesso:\"\n    },\n    okDone: {\n      de: \"Fertig\",\n      en: \"Done\",\n      fr: \"OK\",\n      es: \"Listo\",\n      pt: \"Pronto\"\n    },\n    print: {\n      de: \"Drucken\",\n      en: \"Print\",\n      fr: \"Imprimer\",\n      es: \"Imprimir\",\n      pt: \"Imprimir\"\n    }\n  };\n})();","updated":"2026-03-06T09:42:55.56616"},{"path":"pages/level/finishLevel/linkReview/link.ls","text":"(function(){\n  return function(o){\n    var tap, longDown, linkDiv;\n    tap = function(){\n      return inc(\"/pages/level/reviewOrPreviewPopup/popup\")({\n        level: o.level,\n        popupType: \"review\"\n      });\n    };\n    longDown = function(){\n      return inc(\"debugPopup/popup\")(o);\n    };\n    return Div().html(linkDiv = inc(\"/lib/gui/link/link\")({\n      label: T(\"myResults\"),\n      iconColor: \"black\"\n    }).css({\n      margin: \"0.3em 0 1em 0.2em\"\n    }).tap({\n      up: tap,\n      longDown: engine.isDebug ? longDown : void 8\n    }).attr({\n      \"aria-label\": T(\"myResults\"),\n      role: \"button\"\n    }));\n  };\n})();","updated":"2023-09-21T09:26:46.076485"},{"path":"pages/level/finishLevel/linkReview/debugPopup/popup.ls","text":"(function(){\n  return function(o){\n    var b, div, popup;\n    b = function(s){\n      return Button(s).css({\n        display: \"block\",\n        margin: \"0 auto 0.5em\",\n        maxWidth: \"15em\"\n      });\n    };\n    div = Div({\n      margin: \"2em\"\n    }).html(inc(\"title/title\")(), b(\"Review\").tap(function(){\n      return inc(\"/pages/level/reviewOrPreviewPopup/popup\")({\n        level: o.level,\n        popupType: \"review\"\n      });\n    }), b(\"Preview\").tap(function(){\n      return inc(\"/pages/level/reviewOrPreviewPopup/popup\")({\n        level: o.level,\n        popupType: \"preview\"\n      });\n    }), b(\"PreviewDocumentationDiv\").tap(function(){\n      return inc(\"/lib/gui/popup/popup\")({\n        html: inc(\"/pages/level/previewDocumentationDiv/div\")(o.level)\n      });\n    }), b(\"PreviewNoUser\").tap(function(){\n      return inc(\"/pages/content/block/levels/level/_shared/actions/previewNoUser/preview\")(o);\n    }));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2023-09-21T09:26:46.076485"},{"path":"pages/level/previewBlockPopup/generateSlides/generate.ls","text":"(function(){\n  return function(block){\n    var slides, totalLevels, i$, ref$, len$, level, firstTrainer, t, path, trainerSlides;\n    slides = [];\n    totalLevels = block.levels.length;\n    for (i$ = 0, len$ = (ref$ = block.levels).length; i$ < len$; ++i$) {\n      level = ref$[i$];\n      firstTrainer = level.trainers[0];\n      t = firstTrainer.trainer;\n      path = \"/../\" + (_.startsWith(t, \"kid\")\n        ? \"app01-kid-trainers/trainers/\" + t\n        : _.startsWith(t, \"playground\")\n          ? \"app01-playground-trainers/trainers/\" + t.replace(\"playground/\", \"\")\n          : \"app01-trainers/trainers/\" + t) + \"/generateSlides\";\n      trainerSlides = inc(path)(firstTrainer, level);\n      slides.push(_.ensureArray(trainerSlides)[0]);\n    }\n    return slides;\n  };\n})();","updated":"2023-09-25T12:57:06.265587"},{"path":"lib/gui/divEditable/cleanupLine/removeEmptyEndTextNode/remove.ls","text":"(function(){\n  return function(d, lineDiv){\n    var el;\n    el = _.last(lineDiv.childNodes);\n    if (el && el.nodeType === 3 && el.textContent === \"\") {\n      d.debug(\"remove empty end textNode\");\n      return el.remove();\n    }\n  };\n})();","updated":"2023-09-25T12:57:06.265587"},{"path":"pages/level/reviewOrPreviewPopup/popup.ls","text":"(function(){\n  return function(p){\n    var levelPuid, levelPath, ref$, startConfig, publicId, round, popupType, level, spinnerOverlay, isCancelled, showSpinnerOverlay, loadLevel, loadTrainerProjects, checkMinPlayerVersion, calcReviewEvents, calcReviewScores, generateSlides, loadMediaFiles, showSlidesPopup, onError;\n    levelPuid = p.levelPuid;\n    levelPath = (ref$ = p.level) != null ? ref$.path : void 8;\n    startConfig = p.startConfig;\n    publicId = p.publicId;\n    round = p.round;\n    popupType = p.popupType;\n    level = null;\n    spinnerOverlay = null;\n    isCancelled = false;\n    _.setRandomSeed(0);\n    showSpinnerOverlay = function(){\n      spinnerOverlay = inc(\"/lib/gui/spinnerOverlay/overlay\")(function(){\n        return isCancelled = true;\n      });\n      return loadLevel();\n    };\n    loadLevel = function(){\n      if (isCancelled) {\n        return;\n      }\n      return inc(\"loadLevel/load\")({\n        levelPuid: levelPuid,\n        levelPath: levelPath,\n        startConfig: startConfig,\n        round: round,\n        onError: onError,\n        onLoaded: function(l){\n          level = l;\n          return loadTrainerProjects();\n        }\n      });\n    };\n    loadTrainerProjects = function(){\n      return inc(\"../_shared/loadTrainerProjects/load\")({\n        levels: level,\n        onAbort: onError,\n        onDone: checkMinPlayerVersion\n      });\n    };\n    checkMinPlayerVersion = function(){\n      if (inc(\"../_shared/checkMinLevelPlayerVersion/check\")({\n        level: level\n      })) {\n        return spinnerOverlay.remove();\n      } else if (popupType === \"review\") {\n        return calcReviewEvents();\n      } else {\n        return generateSlides();\n      }\n    };\n    calcReviewEvents = function(){\n      if (isCancelled) {\n        return;\n      }\n      return inc(\"calcReviewEvents/calc\")({\n        level: level,\n        publicId: publicId,\n        onError: onError,\n        onDone: function(events){\n          p.events = events;\n          return calcReviewScores();\n        }\n      });\n    };\n    calcReviewScores = function(){\n      if (isCancelled) {\n        return;\n      }\n      return inc(\"calcReviewScores/calc\")({\n        events: p.events,\n        level: level,\n        publicId: publicId,\n        round: round,\n        onDone: function(e, round){\n          p.levelEvent = e;\n          p.round = round;\n          return generateSlides();\n        }\n      });\n    };\n    generateSlides = function(){\n      inc(\"../_shared/generateSlides/generate\")(level);\n      return loadMediaFiles();\n    };\n    loadMediaFiles = function(){\n      if (isCancelled) {\n        return;\n      }\n      return inc(\"../_shared/loadMediaFiles/load\")({\n        level: level,\n        onError: onError,\n        onLoaded: showSlidesPopup\n      });\n    };\n    showSlidesPopup = function(){\n      if (isCancelled) {\n        return;\n      }\n      spinnerOverlay.remove();\n      return inc(\"showSlidesPopup/show\")(level, p);\n    };\n    onError = function(errors){\n      errors = _.ensureArray(errors);\n      spinnerOverlay.remove();\n      if (_.find(errors, function(error){\n        var ref$;\n        return (ref$ = error.error) === \"offline\" || ref$ === \"no_etag_found\";\n      })) {\n        return inc(\"/lib/offline/offlinePopup/popup\")();\n      } else {\n        return inc(\"/lib/gui/errorPopup/popup\")();\n      }\n    };\n    p.update = function(r){\n      spinnerOverlay = inc(\"/lib/gui/spinnerOverlay/overlay\")(function(){\n        return isCancelled = true;\n      });\n      round = r;\n      return calcReviewScores(p.events);\n    };\n    return showSpinnerOverlay();\n  };\n})();","updated":"2024-12-18T10:08:14.317099"},{"path":"lib/gui/divEditable/cleanupLine/ignoreEmptyLineWithoutParent/ignore.ls","text":"(function(){\n  return function(lineDiv){\n    if (lineDiv.childNodes.length === 0 && !lineDiv.parentNode) {\n      return true;\n    }\n  };\n})();","updated":"2023-09-25T13:19:19.073888"},{"path":"lib/init/onNewLogEvents/userIsDeleted/userIsDeleted.ls","text":"(function(){\n  return function(events){\n    var i$, len$, e, logId, currentLogId, ref$, results$ = [];\n    for (i$ = 0, len$ = events.length; i$ < len$; ++i$) {\n      e = events[i$];\n      logId = e.logId;\n      window.userLogs = _.omit(window.userLogs, logId);\n      inc(\"/lib/util/storedUsers/removeUser/remove\")(logId);\n      currentLogId = (ref$ = window.log) != null ? ref$.id() : void 8;\n      if (currentLogId === logId || !window.log) {\n        results$.push(setTimeout(fn$, 1000));\n      }\n    }\n    return results$;\n    function fn$(){\n      return location.reload();\n    }\n  };\n})();","updated":"2023-09-26T15:19:13.874272"},{"path":"pages/content/plan/scrollToPosition/scroll.ls","text":"(function(){\n  return function(page){\n    var ref$, lastElement;\n    if (page.params.history < 0) {\n      return requestAnimationFrame(function(){\n        return page.pageScrollWrapper.scrollTop = app.pageScrollPositions[app.currentPagePath] || 0;\n      });\n    } else if ((ref$ = page.params.context) === \"searchResult\" || ref$ === \"searchDeep\") {\n      return inc(\"scrollToSearchResult/scroll\")(page);\n    } else {\n      lastElement = page.findFirst(\".lastViewed\");\n      if (lastElement) {\n        return page.scrollElementIntoView(lastElement, {\n          center: true,\n          instant: true\n        });\n      }\n    }\n  };\n})();","updated":"2023-09-26T15:19:13.874272"},{"path":"data/content/calcCurrentPlan/calc.ls","text":"(function(){\n  return function(){\n    var setCurrentPlanEvent, plans, planPath, ref$;\n    setCurrentPlanEvent = typeof log != 'undefined' && log !== null ? log.findLast(\"setCurrentPlan\") : void 8;\n    plans = inc(\"/data/content/calcPlanDescriptions/calc\")();\n    planPath = ((ref$ = _.find(plans, function(p){\n      return p.planPath === (setCurrentPlanEvent != null ? setCurrentPlanEvent.plan : void 8);\n    })) != null ? ref$.planPath : void 8) || inc(\"calcFromLastLevelFinish/calc\")(plans) || inc(\"calcFromSetNewUser/calc\")(plans) || inc(\"calcFallbackPlan/calc\")();\n    if (planPath !== (setCurrentPlanEvent != null ? setCurrentPlanEvent.plan : void 8)) {\n      inc(\"../setCurrentPlan/set\")(planPath);\n    }\n    return planPath;\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"pages/standards/start/startOverviewSubjects/start.ls","text":"(function(){\n  return function(page, urlMatch, onError){\n    var rootUrl, standard;\n    rootUrl = urlMatch[1];\n    standard = _.find(page.standards.standards, {\n      rootUrl: rootUrl\n    });\n    if (!standard) {\n      onError();\n      return;\n    }\n    return startPage({\n      path: path(\"/../app01-standards/pages/02_standardsOverviewSubjects/page\"),\n      history: 0,\n      params: {\n        isDeepLink: page.params.isDeepLink,\n        root: {\n          root: standard.root,\n          rootUrl: standard.rootUrl\n        }\n      }\n    });\n  };\n})();","updated":"2023-09-26T15:19:13.874272"},{"path":"lib/init/onStatusBarTap/onStatusBarTap.ls","text":"(function(){\n  return function(){\n    var onTap;\n    onTap = function(){\n      var i$, ref$, len$, el, hasChildren, results$ = [];\n      for (i$ = 0, len$ = (ref$ = body.findAll(\".onStatusBarTap\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        hasChildren = el.findFirst(\".onStatusBarTap\") != null;\n        if (!hasChildren) {\n          results$.push(typeof el.onStatusBarTap == 'function' ? el.onStatusBarTap() : void 8);\n        }\n      }\n      return results$;\n    };\n    return window.addEventListener(\"statusTap\", onTap);\n  };\n})();","updated":"2023-12-14T16:46:55.412786"},{"path":"lib/init/statusBar/statusBar.ls","text":"(function(){\n  return function(){\n    var formatHexColor, toggleStatusBar;\n    if (!engine.isMobileApp) {\n      return;\n    }\n    formatHexColor = function(color){\n      var ref$, ref1$, ref2$, ref3$;\n      if (color.indexOf(\"rgba\") >= 0) {\n        color = inc(\"/pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/fromRgbaString\")(color);\n        color = inc(\"/pages/games/00_shared/pixiGame/pixi/Helper/Color/functions/toHexString\")(color);\n      }\n      if (color.indexOf('#') === 0) {\n        color = color.substring(1);\n      }\n      if (color.length === 1) {\n        color = (ref$ = color[0] + \"\") + ref$ + ref$ + ref$ + ref$ + ref$;\n      } else if (color.length === 3) {\n        color = ((ref1$ = color[0] + \"\") + ref1$) + ((ref2$ = color[1] + \"\") + ref2$) + ((ref3$ = color[2] + \"\") + ref3$);\n      }\n      if (color.indexOf('#') !== 0) {\n        color = '#' + color;\n      }\n      return color;\n    };\n    if (typeof StatusBar != 'undefined' && StatusBar !== null) {\n      StatusBar.setBackgroundColor = function(color){\n        color = formatHexColor(color);\n        return StatusBar.backgroundColorByHexString(color);\n      };\n    }\n    if (typeof StatusBar != 'undefined' && StatusBar !== null) {\n      StatusBar.setTextColor = function(color){\n        var brightThreshold;\n        color = formatHexColor(color);\n        brightThreshold = \"66\";\n        if ([color[1], color[2]] < brightThreshold && [color[3], color[4]] < brightThreshold && [color[5], color[6]] < brightThreshold) {\n          return typeof StatusBar != 'undefined' && StatusBar !== null ? StatusBar.styleDefault() : void 8;\n        } else {\n          return typeof StatusBar != 'undefined' && StatusBar !== null ? StatusBar.styleBlackOpaque() : void 8;\n        }\n      };\n    }\n    toggleStatusBar = inc(\"/lib/util/toggleStatusBar/toggleStatusBar\");\n    return document.addEventListener(\"resume\", function(){\n      return setTimeout(toggleStatusBar, 10);\n    }, false);\n  };\n})();","updated":"2023-12-14T16:46:55.412786"},{"path":"lib/util/browser/triggerPageReady/trigger.ls","text":"(function(){\n  return function(urlDescription){\n    var pageReady, ref$;\n    pageReady = (ref$ = urlDescription.pageReady) != null ? ref$ : true;\n    if (pageReady && engine.isBotMode) {\n      return setTimeout(function(){\n        return body.addClass(\"pageReady\");\n      }, 300);\n    }\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/init/subscribeDeviceAndUserLogs/subscribeDeviceLog/subscribe.ls","text":"(function(){\n  return function(onDone){\n    var deviceLogId, cb;\n    if (engine.isBotMode) {\n      inc(\"_fake/fake\")();\n      onDone();\n      return;\n    }\n    deviceLogId = Store(\"deviceLogId\");\n    cb = function(deviceLog){\n      window.deviceLog = deviceLog;\n      deviceLog['var'] = inc(\"var/var\");\n      return onDone();\n    };\n    return Logger.subscribe({\n      logId: deviceLogId,\n      filter: \"subscribeDevice\",\n      removeOldEvents: true,\n      onSubscribe: !engine.isMobileApp ? cb : void 8,\n      onInitDone: engine.isMobileApp ? cb : void 8\n    });\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"lib/init/subscribeDeviceAndUserLogs/subscribeUserLogs/subscribe.ls","text":"(function(){\n  return function(onDone){\n    var userLogIds, totalInitDone, totalSubscribeDone, i$, len$, logId, results$ = [];\n    if (engine.isBotMode) {\n      inc(\"_fake/fake\")();\n      onDone();\n      return;\n    }\n    window.userLogs = {};\n    userLogIds = inc(\"/lib/util/storedUsers/logIds/logIds\")();\n    if (userLogIds.length === 0) {\n      onDone();\n      return;\n    }\n    totalInitDone = 0;\n    totalSubscribeDone = 0;\n    for (i$ = 0, len$ = userLogIds.length; i$ < len$; ++i$) {\n      logId = userLogIds[i$];\n      results$.push(inc(\"subscribe/subscribe\")({\n        logId: logId,\n        onInitDone: fn$,\n        onSubscribe: fn1$\n      }));\n    }\n    return results$;\n    function fn$(userLog){\n      totalInitDone++;\n      if (totalInitDone === userLogIds.length) {\n        return onDone();\n      }\n    }\n    function fn1$(userLog){\n      var i$, ref$, len$, el, results$ = [];\n      totalSubscribeDone++;\n      if (totalSubscribeDone === userLogIds.length) {\n        for (i$ = 0, len$ = (ref$ = (typeof body != 'undefined' && body !== null ? body.findAll(\".onSubscribeLogsDone\") : void 8) || []).length; i$ < len$; ++i$) {\n          el = ref$[i$];\n          results$.push(typeof el.update == 'function' ? el.update() : void 8);\n        }\n        return results$;\n      }\n    }\n  };\n})();","updated":"2023-11-15T11:32:25.206444"},{"path":"data/school/calcSchoolDescription/calcHasChat/calc.ls","text":"(function(){\n  return function(schoolLog){\n    var e;\n    e = schoolLog.findLast(\"setSchoolHasChat\");\n    if (!(e != null && e.value)) {\n      return false;\n    }\n    if (e.validUntil) {\n      return new Date(e.validUntil) > new Date();\n    }\n    return true;\n  };\n})();","updated":"2024-02-08T08:43:57.621338"},{"path":"pages/start/startUser/01_rememberUser/title/title.ls","text":"(function(){\n  return function(o){\n    var name;\n    name = o.page.params.displayName || o.page.params.name;\n    return Div({\n      paddingBottom: \"0.3em\",\n      width: \"30em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto\"\n    }).secureHtml(T(\"helloName\", name));\n  };\n})();","updated":"2024-04-04T12:54:53.020113"},{"path":"pages/start/startUser/01_rememberUser/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      width: \"30em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto\",\n      paddingBottom: \"1.3em\"\n    }).html(T(\"saveUserQuestion\"));\n  };\n})();","updated":"2024-04-04T12:54:53.020113"},{"path":"pages/start/startUser/05_calcGuiLanguage/calc.ls","text":"(function(){\n  return function(o){\n    var callback, e, guiLanguage;\n    callback = function(){\n      return inc(\"../06_loadPlansList/load\")(o);\n    };\n    e = log.findLast(\"setGuiLanguage\");\n    guiLanguage = (e != null ? e.value : void 8) || \"de\";\n    inc(\"/lib/util/setGuiLanguageUser/set\")(guiLanguage);\n    return callback();\n  };\n})();","updated":"2024-04-04T12:54:53.020113"},{"path":"pages/static/antonPlus/5_productInfo/info/plusFamily/icon/icon.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      padding: \"1em\",\n      marginBottom: \"0.3em\"\n    }).append(Div().css({\n      display: \"inline-flex\",\n      backgroundColor: Color.grey[100],\n      width: \"4em\",\n      height: \"2.7em\",\n      borderRadius: \"1.5em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/plus.svg\"),\n      width: \"1.5em\",\n      height: \"1.3em\"\n    })));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/divEditable/onWindowResize/on.ls","text":"(function(){\n  return function(d){\n    d.updateCustomCursor();\n    return window.dispatchEvent(new Event(\"editDivWindowResize\"));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/navbar/bar/user/user/_menu/items/item/isDebugIcon/isDebugIcon.ls","text":"(function(){\n  return function(item){\n    if (item.isDebug) {\n      return SvgIcon({\n        svg: path(\"/lib/svg/shape/debug.svg\")\n      }).css({\n        flex: \"0 0 auto\",\n        margin: \"0 0.3em\"\n      });\n    }\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/schoolSearch/04_schoolSearch/list/row/totalMembers/total.ls","text":"(function(){\n  return function(school){\n    return Div({\n      flex: \"0 0 auto\",\n      display: \"flex\",\n      flexDirection: \"column\",\n      padding: \"0.2em 0.2em 0\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/group.svg\"),\n      color: Color.grey[550]\n    }), Div({\n      fontSize: \"0.85em\",\n      color: Color.grey[650]\n    }).html(school.total));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/schoolSearch/06_confirm/totalMembers/total.ls","text":"(function(){\n  return function(school){\n    if (school.totalMembers == null) {\n      return;\n    }\n    return Div({\n      display: \"flex\",\n      padding: \"0.6em 0.2em 0\"\n    }).html(Div({\n      color: Color.grey[650],\n      paddingRight: \"0.3em\"\n    }).html(school.totalMembers), SvgIcon({\n      svg: path(\"/lib/svg/shape/group.svg\"),\n      color: Color.grey[550]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/school/_shared/schoolIcon/svg/svg.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/school.svg\"),\n      color: Color.grey[350]\n    }).css({\n      width: \"65%\",\n      height: \"65%\",\n      marginTop: \"-9%\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupGameResult/medal/medal.ls","text":"(function(){\n  return function(position){\n    return SvgIcon({\n      svg: (function(){\n        switch (position) {\n        case 1:\n          return path('/lib/svg/illustration/medal-gold.svg');\n        case 2:\n          return path('/lib/svg/illustration/medal-silver.svg');\n        case 3:\n          return path('/lib/svg/illustration/medal-bronce.svg');\n        }\n      }()),\n      width: \"5em\",\n      height: \"5em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/spinner/spinner.ls","text":"(function(){\n  return function(o){\n    var small, color;\n    small = o != null ? o.small : void 8;\n    color = (o != null ? o.color : void 8) || Color.grey[350];\n    inc(\"initKeyframeAnimation/init\")();\n    return SvgIcon({\n      svg: small\n        ? path(\"/lib/svg/icon/spinner.svg\")\n        : path(\"/lib/svg/icon/spinner-big.svg\"),\n      color: color,\n      size: small ? \"1em\" : \"1.5em\"\n    }).addClass(\"spinnerAnimation\").addClass(\"spinner\");\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/start/startUser/07_extraPages/showDirTeacherDirCanceledWarning/page/icon/icon.ls","text":"(function(){\n  return function(page){\n    return SvgIcon({\n      svg: path(\"/lib/svg/illustration/school-license.svg\"),\n      size: \"4em\"\n    }).css({\n      margin: \"0.5em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/afterFinish/startDebugPopup/popup.ls","text":"(function(){\n  return function(){\n    var b, div, popup;\n    b = function(l){\n      return Button(l).css({\n        minWidth: \"6em\",\n        margin: \"0.3em\"\n      });\n    };\n    div = Div().css({\n      margin: \"0.8em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\")\n    }).css({\n      marginRight: \"0.3em\"\n    }), \"Wähle eine afterFinish-Seite aus:<br><br>\", b(\"First Coin\").tap(function(){\n      return startPage({\n        path: path(\"../pages/newCoin/firstCoinExplainGameMenu/page\")\n      });\n    }), b(\"New Coin\").tap(function(){\n      return startPage({\n        path: path(\"../pages/newCoin/addCoin/page\")\n      });\n    }), b(\"Level Rating\").tap(function(){\n      return startPage({\n        path: path(\"../pages/levelRating/01_rating/page\")\n      });\n    }), b(\"App rating\").tap(function(){\n      return startPage({\n        path: path(\"../pages/newCoin/appRating/01_rating/page\")\n      });\n    }), b(\"AntonPlus1\").tap(function(){\n      return startPage({\n        path: path(\"../pages/antonPlus/page1Intro/page\")\n      });\n    }), b(\"AntonPlus2Avatars\").tap(function(){\n      return startPage({\n        path: path(\"../pages/antonPlus/page2Avatars/page\")\n      });\n    }), b(\"AntonPlus3NewFamily\").tap(function(){\n      return startPage({\n        path: path(\"../pages/antonPlus/page3NewFamily/page\")\n      });\n    }), b(\"AdventCalendarPromo\").tap(function(){\n      return startPage({\n        path: path(\"../pages/adventCalendarPromo/page\")\n      });\n    }));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/finishLevel/voice/voice.ls","text":"(function(){\n  return function(voice){\n    return Div().css({\n      display: \"flex\",\n      marginTop: \"-0.8em\",\n      marginBottom: \"0.4em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\"),\n      color: Color.grey[500],\n      width: \"0.6em\",\n      height: \"0.6em\",\n      flex: \"0 auto\"\n    }).css({\n      marginRight: \"0.2em\"\n    }), Div().css({\n      fontSize: \"0.6em\",\n      color: Color.grey[500],\n      flex: \"0 auto\"\n    }).html(voice));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/antonPlus/3_thanks/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/illustration/anton-plus.svg\"),\n      width: \"5em\",\n      height: \"5em\"\n    }).css({\n      verticalAlign: \"0.5em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/antonPlus/4_thanksWhy/options/option/check/check.ls","text":"(function(){\n  return function(){\n    var s;\n    return Div().css({\n      padding: \"0.5em 0.4em 0.4em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/checkbox.svg\"),\n      color: Color.grey[650],\n      width: s = \"0.85em\",\n      height: s\n    }).addClass(\"select\").hide(), SvgIcon({\n      svg: path(\"/lib/svg/shape/square.svg\"),\n      color: Color.grey[650],\n      width: s,\n      height: s\n    }).addClass(\"unselect\").show());\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/antonPlus/5_productInfo/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/bulb.svg\"),\n      width: \"4em\",\n      height: \"4em\",\n      color: Color.yellow[600]\n    }).css({\n      marginBottom: \"0.5em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/antonPlus/5_productInfo/info/plus/icon/icon.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      padding: \"1em\",\n      marginBottom: \"0.3em\"\n    }).append(Div().css({\n      display: \"inline-flex\",\n      backgroundColor: Color.grey[100],\n      width: \"4em\",\n      height: \"2.7em\",\n      borderRadius: \"1.5em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/arrow-download.svg\"),\n      width: \"1.5em\",\n      height: \"1.3em\"\n    })));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/support/help/_debugIcon/icon.ls","text":"(function(){\n  return function(o){\n    if (o.isDebug !== true) {\n      return;\n    }\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\")\n    }).css({\n      display: \"inline-block\",\n      marginLeft: \"0.3em\",\n      verticalAlign: \"-0.2em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/cancelDeletionDirAdmin/02_termsAndPrivacy/checkboxTeacherPrivacy/checkIcon/icon.ls","text":"(function(){\n  return function(acceptPrivacy){\n    return SvgIcon({\n      svg: acceptPrivacy\n        ? path(\"/lib/svg/icon/check-on.svg\")\n        : path(\"/lib/svg/icon/check-off.svg\")\n    }).css({\n      marginRight: \"0.4em\",\n      verticalAlign: \"-0.18em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/support/help/faqList/category/questions/question/arrowIcon/arrowIcon.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      flex: \"0 0 auto\",\n      display: \"flex\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      color: Color.grey[400]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/support/help/faqQuestion/rating/checkIcon/check.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/check.svg\"),\n      color: Color.grey[500],\n      width: \"1.3em\"\n    }).css({\n      marginRight: \"0.2em\",\n      verticalAlign: \"-0.25em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/noPlusFamilyPopup/popup.ls","text":"(function(){\n  return function(infoText){\n    var div, popup;\n    infoText == null && (infoText = T(\"plusFamilyExpired\"));\n    div = Div({\n      padding: \"1em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/illustration/family-plus.svg\"),\n      size: \"4em\"\n    }), Div({\n      margin: \"0.5em 0 1em\",\n      lineHeight: \"1.5em\"\n    }).html(infoText), inc(\"button/button\")());\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/top/search/top.ls","text":"(function(){\n  return function(){\n    return inc(\"../_div/div\")({\n      title: T(\"quitSearch\"),\n      icon: SvgIcon({\n        svg: path(\"/lib/svg/icon/close-small.svg\"),\n        color: Color.grey[800]\n      }).css({\n        verticalAlign: \"-0.15em\",\n        marginRight: \"0.15em\"\n      }),\n      tap: function(){\n        var ref$;\n        return (ref$ = body.findFirst(\".menuSearch\")) != null ? ref$.hideSearch() : void 8;\n      }\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/afterFinish/pages/antonPlus/page1Intro/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/illustration/anton-plus.svg\"),\n      width: \"5em\",\n      height: \"5em\"\n    }).css({\n      margin: \"2em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/input2/icons/passwordToggle/icon/icon.ls","text":"(function(){\n  return function(o){\n    return SvgIcon({\n      svg: o.textMode === \"password\" && o.showPassword\n        ? path(\"/lib/svg/icon/show.svg\")\n        : path(\"/lib/svg/icon/hide.svg\"),\n      size: \"1em\"\n    }).css({\n      margin: \"0.2em 0.2em -0.05em\",\n      pointerEvents: \"none\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbar2/tools/right/right.ls","text":"(function(){\n  return function(o){\n    var click, div;\n    if (o.right == null) {\n      return;\n    }\n    click = function(){\n      var ref$;\n      return typeof (ref$ = o.right).click == 'function' ? ref$.click() : void 8;\n    };\n    div = Div({\n      diplay: \"flex\",\n      padding: \"0 0.5em\"\n    }).html(SvgIcon({\n      svg: o.right.icon,\n      color: Color.grey[600]\n    }).addClass(\"topbarIcon\").css({\n      marginTop: \"0.2em\"\n    }));\n    if (o.right.click) {\n      inc(\"../../_tap/tap\")(div, \"0.3em 0em 1.1em 0.5em\", click, null, Color.grey[600]);\n    }\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/softKeyboard/android5To8/init.ls","text":"(function(){\n  return function(){\n    var a, i$, len$, n, results$ = [];\n    a = [\"keyboardWillShow\", \"keyboardWillHide\", \"editDivStart\", \"editDivStop\", \"editDivWindowResize\"];\n    for (i$ = 0, len$ = a.length; i$ < len$; ++i$) {\n      n = a[i$];\n      results$.push(window.addEventListener(n, fn$));\n    }\n    return results$;\n    function fn$(e){\n      return inc(\"detectHeight/detect\")();\n    }\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/softKeyboard/android9/init.ls","text":"(function(){\n  return function(){\n    var i$, ref$, len$, n, results$ = [];\n    for (i$ = 0, len$ = (ref$ = [\"keyboardWillShow\", \"keyboardWillHide\"]).length; i$ < len$; ++i$) {\n      n = ref$[i$];\n      results$.push(window.addEventListener(n, fn$));\n    }\n    return results$;\n    function fn$(e){\n      var ref$;\n      return inc(\"../_setHeight/set\")((ref$ = e.keyboardHeight) != null ? ref$ : 0);\n    }\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/inputForm/spinner/spinner.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0,\n      backgroundColor: \"white\",\n      display: \"flex\"\n    }).append(inc(\"/lib/gui/spinner/spinner\")());\n  };\n})();","updated":"2023-11-21T09:42:30.396932"},{"path":"pages/start/login/02_step2/forgot/forgot.ls","text":"(function(){\n  return function(page){\n    var click;\n    click = function(){\n      var params;\n      params = app.currentPage.params;\n      return startPage({\n        path: path(\"/pages/misc/password/reset/01_forgot/page\"),\n        animation: \"slideUp\",\n        params: {\n          context: \"login\",\n          uniqName: params.uniqName,\n          email: params.email,\n          phone: params.phone,\n          loginCode: params.loginCode,\n          recoveryOptions: params.recoveryOptions\n        }\n      });\n    };\n    return Div({\n      paddingTop: page.form.isDesktop() ? \"3em\" : \"0.5em\"\n    }).html(Button(T(\"forgotPassword\")).css({\n      backgroundColor: \"white\",\n      textDecoration: \"underline\"\n    }).tap(click));\n  };\n})();","updated":"2023-11-21T09:42:30.396932"},{"path":"pages/misc/_t.ls","text":"(function(){\n  return {\n    errorPassword: {\n      de: \"Das Passwort ist nicht korrekt.\",\n      en: \"The password is not correct.\",\n      fr: \"Le mot de passe n'est pas correct.\",\n      es: \"La contraseña es incorrecta.\",\n      pt: \"A senha não está correta.\"\n    },\n    yesDelete: {\n      de: \"Ja, löschen\",\n      en: \"Yes, delete\",\n      fr: \"Oui, retirer\",\n      es: \"Sí, retirar\",\n      pt: \"Sim, apagar\"\n    },\n    emptyPassword: {\n      de: \"Das Passwort darf nicht leer sein.\",\n      en: \"The password cannot be left blank.\",\n      fr: \"Le mot de passe ne peut pas rester vide.\",\n      es: \"La contraseña no pueda quedar en blanco.\",\n      pt: \"A senha não pode ficar em branco.\"\n    },\n    yourMail: {\n      de: \"deine E-&#65279;Mail-&#65279;Adresse\",\n      en: \"your email address\",\n      fr: \"ton adresse e-mail\",\n      es: \"tu correo electrónico\",\n      pt: \"seu endereço de e-mail\"\n    },\n    yourPhone: {\n      de: \"deine Telefonnummer\",\n      en_gb: \"your mobile phone number\",\n      en: \"your cell phone number\",\n      fr: \"ton numéro de portable\",\n      es: \"tu número de teléfono\",\n      pt: \"seu número de telefone\"\n    },\n    enterPassword: {\n      de: \"Bitte gib aus Sicherheitsgründen dein Passwort ein, um $1 zu ändern:\",\n      en: \"For security reasons, please enter your password to change $1:\",\n      fr: \"Pour des raisons de sécurité, tu dois entrer ton mot de passe pour changer $1:\",\n      es: \"Por razones de seguridad, necesitas ingresar tu contraseña para cambiar $1:\",\n      pt: \"Por razões de segurança, digite sua senha para modificar $1. \"\n    },\n    settings: {\n      de: \"Einstellungen\",\n      en: \"Settings\",\n      fr: \"Paramètres\",\n      es: \"Ajustes\",\n      pt: \"Configurações\"\n    }\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"pages/start/startUser/01_rememberUser/remember/remember.ls","text":"(function(){\n  return function(o){\n    inc(\"/lib/util/storedUsers/addUser/add\")(o.logId);\n    return inc(\"/lib/init/logDeviceStartEvents/setUserLogIds/log\")();\n  };\n})();","updated":"2024-04-04T12:54:53.020113"},{"path":"pages/start/startUser/01_rememberUser/avatar/avatar.ls","text":"(function(){\n  return function(o){\n    var avatar;\n    avatar = o.page.params.avatar;\n    if (!avatar) {\n      return;\n    }\n    return inc(\"/lib/gui/avatar/avatar\")(avatar, \"half\").css({\n      marginBottom: \"0.1em\",\n      width: \"6em\",\n      height: \"6em\",\n      borderRadius: \"999px\"\n    });\n  };\n})();","updated":"2024-04-04T12:54:53.020113"},{"path":"pages/start/startUser/02_subscribeUserLog/subscribe.ls","text":"(function(){\n  return function(o){\n    var callback, logId, userLog, authTokenIsInvalid;\n    callback = function(){\n      return inc(\"../03_subscribeGroupsAndSchools/subscribe\")(o);\n    };\n    o.page.html(inc(\"/lib/gui/spinner/spinner\")(), o.progressBar = inc(\"progressBar/progressBar\")());\n    logId = o.logId;\n    userLog = window.userLogs[logId];\n    authTokenIsInvalid = _.startsWith(userLog != null ? userLog.authToken : void 8, \"T-invalid\");\n    if (userLog && !authTokenIsInvalid) {\n      return inc(\"checkAndSyncLog/checkAndSyncLog\")(o, userLog, callback);\n    } else {\n      return inc(\"/lib/util/log/subscribeUser/subscribe\")({\n        logId: logId,\n        onSubscribe: function(userLog){\n          var storedLogIds;\n          storedLogIds = inc(\"/lib/util/storedUsers/logIds/logIds\")();\n          if (_.includes(storedLogIds, logId)) {\n            window.userLogs[logId] = userLog;\n          }\n          return inc(\"checkAndSyncLog/checkAndSyncLog\")(o, userLog, callback);\n        }\n      });\n    }\n  };\n})();","updated":"2024-04-04T12:54:53.020113"},{"path":"pages/start/startUser/06_loadPlansList/load.ls","text":"(function(){\n  return function(o){\n    var callback;\n    callback = function(){\n      return inc(\"../07_extraPages/extraPages\")(o);\n    };\n    return inc(\"/lib/util/loadPlansList/load\")({\n      etag: \"any\",\n      onLoaded: callback,\n      onError: function(error){\n        var params;\n        params = _.omit(o, [\"page\", \"progressBar\"]);\n        params.error = error;\n        inc(\"logPlansListError/log\")(error);\n        return startPage({\n          path: path(\"../00_shared/errorPage/page\"),\n          params: params,\n          replace: true\n        });\n      }\n    });\n  };\n})();","updated":"2024-04-04T12:54:53.020113"},{"path":"pages/start/startUser/01_rememberUser/rememberUser.ls","text":"(function(){\n  return function(o){\n    var callback, deviceRememberUser, ref$;\n    callback = function(){\n      return inc(\"../02_subscribeUserLog/subscribe\")(o);\n    };\n    deviceRememberUser = (ref$ = Store(\"deviceRememberUser\")) != null ? ref$ : true;\n    if (deviceRememberUser === false) {\n      return callback();\n    } else if (o.rememberUser === \"no\") {\n      return callback();\n    } else if (o.rememberUser === \"yes\") {\n      inc(\"remember/remember\")(o);\n      return callback();\n    } else if (o.rememberUser === \"ask\") {\n      return o.page.html(inc(\"avatar/avatar\")(o), inc(\"title/title\")(o), inc(\"text/text\")(), inc(\"buttons/buttons\")(o, callback));\n    }\n  };\n})();","updated":"2024-04-04T12:54:53.020113"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/update.ls","text":"(function(){\n  return function(pw){\n    inc(\"calcSoftKeyboardBottom/calc\")(pw);\n    inc(\"calcCssVars/calc\")(pw);\n    return app.debugIcons.update();\n  };\n})();","updated":"2024-02-13T10:33:55.852185"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/init/scopeRender/init.ls","text":"(function(){\n  return function(pw){\n    return pw.page.scopeRender = function(params){\n      if (pw.pageScrollWrapper.setScopeRender != null) {\n        return pw.pageScrollWrapper.setScopeRender(params);\n      } else {\n        return pw.pageScrollWrapper.scopeRender = params;\n      }\n    };\n  };\n})();","updated":"2024-02-13T10:33:55.852185"},{"path":"lib/init/checkProjectsSync/check/calcAsyncInfo/calc.ls","text":"(function(){\n  return function(versionInfos){\n    var i$, i;\n    for (i$ in versionInfos) {\n      i = versionInfos[i$];\n      if (i.vProject > i.vProjectVersions) {\n        return \"projectVersions_deprecated\";\n      }\n    }\n    return \"loadedProjects_deprecated\";\n  };\n})();","updated":"2024-02-13T10:33:55.852185"},{"path":"lib/init/checkProjectsSync/check/log/log.ls","text":"(function(){\n  return function(versionInfos){\n    var deviceLogId, e;\n    deviceLogId = Store(\"deviceLogId\");\n    e = {\n      event: \"deviceDebugProjectSyncFailed\",\n      versionInfos: versionInfos,\n      isOnline: inc(\"/lib/util/isOnline/isOnline\")()\n    };\n    if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n      return deviceLog.log(e);\n    } else if (deviceLogId != null) {\n      return helpers.postEvent(deviceLogId, e);\n    }\n  };\n})();","updated":"2024-02-13T10:33:55.852185"},{"path":"lib/init/checkProjectsSync/showAsyncPopup/show.ls","text":"(function(){\n  return function(syncResult, onDone){\n    var reload, popupText, buttonText, tryReload, div, errorDiv;\n    switch (syncResult.asyncInfo) {\n    case \"projectVersions_deprecated\":\n      reload = function(){\n        return location.reload();\n      };\n      popupText = T(\"restartApp\");\n      buttonText = T(\"buttonRestartApp\");\n      break;\n    case \"loadedProjects_deprecated\":\n      reload = onDone;\n      popupText = T(\"offlineMessage\");\n      buttonText = T(\"buttonReloadPage\");\n    }\n    tryReload = function(){\n      if (!inc(\"/lib/util/isOnline/isOnline\")()) {\n        return errorDiv.show();\n      } else {\n        return reload();\n      }\n    };\n    div = Div({\n      margin: \"0.2em 0.5em 1.2em\"\n    }).html(Div({\n      margin: \"1em auto\",\n      lineHeight: \"1.5em\"\n    }).html(popupText), errorDiv = Div({\n      margin: \"1em auto\",\n      color: Color.red[500]\n    }).html(T(\"goOnline\")).hide(), Button(buttonText).tap(tryReload));\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: reload\n    });\n  };\n})();","updated":"2024-02-13T10:33:55.852185"},{"path":"lib/util/freezeIOSScrollDivs/disable/disable.ls","text":"(function(){\n  return function(){\n    var i$, ref$, len$, el, results$ = [];\n    if (inc(\"/lib/util/calcAppType/calcPlatform/calc\")() === \"iOS\") {\n      for (i$ = 0, len$ = (ref$ = body.find(\".scrollContainerDiv\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        results$.push(el.css({\n          pointerEvents: \"none\"\n        }));\n      }\n      return results$;\n    }\n  };\n})();","updated":"2024-02-13T16:49:55.756398"},{"path":"lib/util/freezeIOSScrollDivs/enable/enable.ls","text":"(function(){\n  return function(){\n    var i$, ref$, len$, el, results$ = [];\n    if (inc(\"/lib/util/calcAppType/calcPlatform/calc\")() === \"iOS\") {\n      for (i$ = 0, len$ = (ref$ = body.find(\".scrollContainerDiv\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        results$.push(el.css({\n          pointerEvents: \"\"\n        }));\n      }\n      return results$;\n    }\n  };\n})();","updated":"2024-02-13T16:49:55.756398"},{"path":"lib/init/startFirstPage/_t.ls","text":"(function(){\n  return {\n    learnUrl: {\n      de: \"lernen\",\n      en: \"learn\",\n      fr: \"apprendre\",\n      es: \"aprender\",\n      pt: \"aprender\"\n    },\n    learnListUrl: {\n      de: \"lernlisten\",\n      en: \"study-list\",\n      fr: \"listes\",\n      es: \"listas\",\n      pt: \"listas-de-estudo\"\n    }\n  };\n})();","updated":"2025-11-24T11:36:07.488887"},{"path":"lib/init/startFirstPage/start.ls","text":"(function(){\n  return function(){\n    inc(\"fixBrowserUrlLanguageAndLastSlash/fix\")();\n    if (inc(\"deepLinkMobile/deepLinkMobile\")()) {\n      return;\n    }\n    if (inc(\"welcome/welcome\")()) {\n      return;\n    }\n    if (inc(\"deepLinkBrowser/deepLinkBrowser\")()) {\n      return;\n    }\n    if (inc(\"deepLinkContent/deepLinkContent\")()) {\n      return;\n    }\n    if (inc(\"deepLinkLearnList/deepLinkLearnList\")()) {\n      return;\n    }\n    return inc(\"unknownUrl/unknownUrl\")();\n  };\n})();","updated":"2025-11-24T11:36:07.488887"},{"path":"pages/static/jobs/page.ls","text":"(function(){\n  return function(page){\n    return {\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        return page.html(Div({\n          margin: \"2em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\",\n          lineHeight: \"1.5em\"\n        }).html(inc(\"image/image\")(), Div({\n          margin: \"0 auto 1.3em\",\n          maxWidth: \"20em\"\n        }).html(T(\"title\")), Div({\n          display: \"inline-block\",\n          textAlign: \"left\",\n          marginLeft: \"1em\"\n        }).html(Button(T(\"openExternalJobsPage\")).tap(function(){\n          return window.open(\"https://anton.jobs.personio.com/\", \"_system\");\n        }))));\n      }\n    };\n  };\n})();","updated":"2024-01-10T09:56:20.242678"},{"path":"pages/static/about/aboutDiv/div.ls","text":"(function(){\n  return function(){\n    return Div({\n      lineHeight: \"1.5em\"\n    }).html(T(\"antonIs\"), Div({\n      height: \"1em\"\n    }), T(\"coronaInfo\"), Div({\n      height: \"1em\"\n    }), T(\"solocodeAdress\"), Div({\n      height: \"1em\"\n    }), inc(\"/lib/gui/image/image\")({\n      id: twitch({\n        de: \"eu_efre-logo-de\",\n        en: \"eu_efre-logo-en\",\n        fr: \"eu_efre-logo-fr\",\n        es: \"eu_efre-logo-es\",\n        pt: \"eu_efre-logo-pt\"\n      }),\n      fileFolder: \"media/about/_images\"\n    }).css({\n      width: \"16em\",\n      height: twitch({\n        de: \"2.3em\",\n        en: \"2.7em\",\n        fr: \"2.4em\",\n        es: \"2.3em\",\n        pt: \"2.3em\"\n      }),\n      marginBottom: \"1em\"\n    }), Div(), T(\"antonProjectDescription\"), Div({\n      height: \"0.8em\"\n    }), T(\"euInfo1\"), Div({\n      textDecoration: \"underline\",\n      display: \"inline-block\"\n    }).html(\"https://ec.europa.eu/consumers/odr\").tap(function(){\n      return inc(\"/lib/gui/parentalGate/parentalGate\")(function(){\n        return window.open(\"https://ec.europa.eu/consumers/odr\", \"_system\");\n      });\n    }), Div({\n      height: \"0.8em\"\n    }), T(\"euInfo2\"));\n  };\n})();","updated":"2024-01-10T09:56:20.242678"},{"path":"addons/topbar2/tools/download/overlay/items/downloadBar/bar.ls","text":"(function(){\n  return function(manager, id){\n    return Div({\n      marginTop: \"0.5em\"\n    }).html(manager.getDownloadBar(id));\n  };\n})();","updated":"2025-04-01T08:46:53.219128"},{"path":"lib/gui/popup/background/clickDiv/div.ls","text":"(function(){\n  return function(o){\n    return Div({\n      position: \"absolute\",\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0\n    }).tap({\n      up: !o.preventClose ? function(){\n        return o.close(\"outside\");\n      } : void 8,\n      animation: \"none\"\n    }).css({\n      cursor: \"default\"\n    });\n  };\n})();","updated":"2024-01-17T16:01:42.283871"},{"path":"lib/util/startPage/pageStart/start.ls","text":"(function(){\n  return function(pagePath, pageParams){\n    var page, pageCode, pageWrapper;\n    inc(\"handleGuiLanguageChange/handle\")();\n    page = Div();\n    app.currentPage = page;\n    app.navbarPosition = inc(\"calcNavbarPosition/calc\")();\n    page.params = pageParams;\n    pageCode = inc(pagePath)(page);\n    page.pageCode = pageCode;\n    page.navCategory = pageCode != null ? pageCode.navCategory : void 8;\n    return pageWrapper = (typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"enablePageWrapperNext\")\n      ? inc(\"defaultPageWrapperNext/default\")(page, pageCode, pagePath)\n      : inc(\"defaultPageWrapper/default\")(page, pageCode, pagePath);\n  };\n})();","updated":"2024-01-17T16:01:42.283871"},{"path":"pages/level/play/play/play.ls","text":"(function(){\n  return function(page, onDone){\n    return inc(\"/../app01-trainers/shared/levelPlayer/player\")({\n      level: page.level,\n      onFinish: onDone,\n      progressBar: page.progressBar,\n      page: page,\n      context: page.params.context,\n      previewTrainerIndex: page.params.previewTrainerIndex\n    });\n  };\n})();","updated":"2024-01-17T16:01:42.283871"},{"path":"addons/topbarLevel/calculator/calculator/onWindowResize/onWindowResize.ls","text":"(function(){\n  return function(o){\n    var availH, tempNewH, ref$, scale;\n    if (o.isClosed) {\n      return;\n    }\n    o.content.mathInput.stop();\n    o.content.mathInput.start();\n    availH = body.height() - body.findFirst(\".top\").height();\n    tempNewH = (ref$ = o.content.findFirst(\".keyboardParentDiv\")) != null ? ref$.height({\n      withMargins: true\n    }) : void 8;\n    scale = Math.min(_.round((availH - 100) / tempNewH, 2), 1);\n    return o.content.css({\n      fontSize: scale + \"em\"\n    });\n  };\n})();","updated":"2024-01-17T16:01:42.283871"},{"path":"lib/gui/popup/popup.ls","text":"(function(){\n  return function(o){\n    o.preventClose == null && (o.preventClose = false);\n    o.animationOnShow == null && (o.animationOnShow = true);\n    o.animationOnClose == null && (o.animationOnClose = true);\n    o.background = inc(\"background/background\")(o);\n    o.popup = inc(\"popup/popup\")(o);\n    o.show = inc(\"show/show\")(o);\n    o.close = inc(\"close/close\")(o);\n    o.show();\n    o.popup.close = o.close;\n    return o.popup;\n  };\n})();","updated":"2024-01-17T16:01:42.283871"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/showTrialsOverlay/show.ls","text":"(function(){\n  return function(parent, level, p){\n    var events, menu, items, scrollDiv, currentIndex, currentItem;\n    events = _.filter(p.events, function(e){\n      var ref$;\n      return (ref$ = e.event) === \"finishLevel\" || ref$ === \"abortLevel\";\n    });\n    menu = OverlayMenu({\n      referenceDiv: parent,\n      items: inc(\"rows/rows\")(p, level, events),\n      maxHeight: \"15em\",\n      direction: \"down left\",\n      adjustXY: \"0 -1\"\n    });\n    items = menu.findAll(\".itemDiv\");\n    scrollDiv = menu.findFirst(\".scrollDiv\");\n    currentIndex = _.findIndex(events, function(e){\n      return _.isEqual(new Date(e.created), new Date(level.finishedAt));\n    });\n    currentItem = items[currentIndex];\n    currentItem.css({\n      backgroundColor: Color.grey[150]\n    });\n    return scrollDiv.scrollElementIntoView(currentItem, {\n      instant: true,\n      center: true\n    });\n  };\n})();","updated":"2024-01-17T16:01:42.283871"},{"path":"lib/util/previewIdeFilePath/preview.ls","text":"(function(){\n  return function(ideFilePath, previewTrainerIndex){\n    var branch, filePath, isCodeChallenge, ref$;\n    branch = ideFilePath.split(\"/\")[1];\n    filePath = \"/../\" + ideFilePath;\n    filePath = filePath.replace(\".ls\", \"\");\n    filePath = _.pull(filePath.split(\"/\"), branch).join(\"/\");\n    isCodeChallenge = _.includes(filePath, \"coding-challenges\");\n    debug(\"clear\");\n    if (!window.log && !isCodeChallenge) {\n      debug(\"please start a user first!\");\n      return;\n    }\n    if (isCodeChallenge) {\n      inc(\"enableDebugChallenge/enable\")();\n    } else {\n      if (branch === \"master\") {\n        debug(\"Info: You're previewing from the default config. If you're a content author, switch your config to CONTENT-IDE, set 'loadDevelopContent' to true and turn debug mode on! (more infos in the ContentAuthors-Cheatsheet)\");\n      }\n      if (branch === \"develop-translation_ide\") {\n        debug(\"Warning, you're previewing content with the translation config, you might want to switch to CONTENT-IDE\");\n      }\n      if (_.startsWith(ideFilePath, \"c-\") && !deviceLog['var'](\"loadDevelopContent\")) {\n        debug(\"Please switch to 'loadDevelopContent' to preview the develop file version.\");\n      }\n    }\n    if ((ref$ = app.lastSound) != null) {\n      ref$.stop();\n    }\n    return inc(\"startPage/start\")(filePath, branch, previewTrainerIndex);\n  };\n})();","updated":"2024-01-17T16:01:42.283871"},{"path":"addons/topbarLevel/calculator/calculator/calculator.ls","text":"(function(){\n  return function(page, slide, atom, adjust){\n    var o, toggle, topbar;\n    o = {};\n    o.isClosed = true;\n    o.animationRunning = false;\n    o.lastInput = null;\n    o.open = function(){\n      return inc(\"open/open\")(o);\n    };\n    o.close = function(){\n      return inc(\"close/close\")(o);\n    };\n    o.submit = function(){\n      return inc(\"submit/submit\")(o);\n    };\n    o.clear = function(){\n      return inc(\"clear/clear\")(o);\n    };\n    toggle = function(){\n      if (o.isClosed) {\n        return o.open();\n      } else {\n        return o.close();\n      }\n    };\n    o.div = Div({\n      position: \"absolute\",\n      left: 0,\n      right: 0,\n      top: \"calc(100% + 1px)\",\n      height: \"calc(var(--screenHeight) - var(--topHeight)\",\n      overflow: \"hidden\",\n      pointerEvents: \"none\",\n      zIndex: 0\n    }).addClass(\"calculator\").html(o.background = inc(\"background/background\")(o), o.div2 = Div({\n      width: \"35em\",\n      maxWidth: \"100%\",\n      margin: \"0 auto\"\n    }).html(o.label = inc(\"label/label\")(toggle, slide, o)), o.content = inc(\"content/content\")(o).css({\n      position: \"absolute\",\n      bottom: 0,\n      left: 0,\n      right: 0\n    }).onWindowResize(function(){\n      return inc(\"onWindowResize/onWindowResize\")(o);\n    }));\n    topbar = page.topbar;\n    topbar.append(o.div);\n    topbar.calculator = o.div;\n    o.animations = inc(\"animations/animations\")(o);\n    o.div2.css({\n      transform: \"translateY(-\" + o.label.height() + \"px)\"\n    });\n    o.animations.intro(function(){\n      return adjust();\n    });\n    o.div.calculator = true;\n    o.div.lastHint = page.topbar.topHint;\n    o.div.close = o.close;\n    o.div.clear = o.clear;\n    o.div.animateOut = o.animations.outro;\n    o.div.slideIndex = page.levelPlayer.currentSlideIndex;\n    return o.div;\n  };\n})();","updated":"2024-01-17T16:01:42.283871"},{"path":"addons/topbarLevel/calculator/calculator/content/content.ls","text":"(function(){\n  return function(o){\n    var div, div2, keyboardParentDiv;\n    div = Div({\n      display: \"flex\",\n      backgroundColor: Color.grey[50],\n      pointerEvents: \"auto\"\n    }).addClass(\"keyManagerScope\");\n    div.html(div2 = Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      alignItems: \"stretch\",\n      padding: \"0.5em 0.5em 0.5em\",\n      width: \"35em\",\n      maxWidth: \"100%\"\n    }).html(Div({\n      display: \"flex\",\n      margin: \"0.5em 7px 0.6em\"\n    }).html(inc(\"mathInput/mathInput\")(o, div), inc(\"undoIcon/icon\")(div)), keyboardParentDiv = Div())).hide();\n    div.mathInput.m.params.keyboardParentDiv = keyboardParentDiv;\n    return div;\n  };\n})();","updated":"2024-01-17T16:01:42.283871"},{"path":"addons/topbarLevel/calculator/calculator/content/mathInput/mathInput.ls","text":"(function(){\n  return function(o, div){\n    return div.mathInput = MathDiv2({\n      enabled: true,\n      keyboardLayout: \"mathDivCalculator\",\n      mode: \"input\",\n      submit: o.submit,\n      clear: o.clear,\n      showDigit3Space: false,\n      enableHorizontalScroll: true,\n      paddingContent: \"0.5em 1.2em 0.5em 0.2em\",\n      undoDomClass: \"undoCalculator\"\n    }).css({\n      flex: \"1 1 auto\",\n      backgroundColor: Color.grey[100],\n      border: \"1px solid \" + Color.grey[250]\n    });\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"addons/topbarLevel/calculator/calculator/content/undoIcon/icon.ls","text":"(function(){\n  return function(div, enabled){\n    var iconDiv;\n    iconDiv = Div({\n      display: \"flex\",\n      alignSelf: \"stretch\",\n      padding: \"0.5em\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/undo.svg\"),\n      size: \"0.9em\",\n      color: enabled\n        ? Color.lightBlue[700]\n        : Color.grey[300]\n    })).addClass(\"undoCalculator\").tap(enabled ? function(){\n      return div.mathInput.m.history.undo();\n    } : void 8);\n    iconDiv.update = function(enabled2){\n      if (enabled2 !== enabled) {\n        return iconDiv.replaceWith(inc(THISFILE)(div, enabled2));\n      }\n    };\n    return iconDiv;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/util/removeHtmlTags/remove.ls","text":"(function(){\n  return function(s){\n    s = s.replace(/<\\/?[^> ]*>/g, \"\");\n    s = s.replace(/&[^;]+;/g, \"\");\n    return s;\n  };\n})();","updated":"2024-01-24T14:32:33.928193"},{"path":"addons/navbar/items/content/item.ls","text":"(function(){\n  return function(){\n    if (!deviceLog['var'](\"enableLearnBetaTab\")) {\n      return \"content\";\n    }\n  };\n})();","updated":"2024-01-25T14:49:53.390222"},{"path":"addons/navbar/items/games/item.ls","text":"(function(){\n  return function(){\n    return \"games\";\n  };\n})();","updated":"2024-01-25T14:49:53.390222"},{"path":"addons/navbar/items/groups/item.ls","text":"(function(){\n  return function(){\n    return \"groups\";\n  };\n})();","updated":"2024-01-25T14:49:53.390222"},{"path":"addons/navbar/items/learnBeta/item.ls","text":"(function(){\n  return function(){\n    if (deviceLog['var'](\"enableLearnBetaTab\")) {\n      return \"learnBeta\";\n    }\n  };\n})();","updated":"2024-01-25T14:49:53.390222"},{"path":"addons/navbar/items/learnList/item.ls","text":"(function(){\n  return function(){\n    if (!deviceLog['var'](\"enableLearnBetaTab\")) {\n      return \"learnList\";\n    }\n  };\n})();","updated":"2024-01-25T14:49:53.390222"},{"path":"addons/navbar/items/schoolAdmin/item.ls","text":"(function(){\n  return function(){\n    if (inc(\"/lib/util/cache/get/get\")(\"showSchoolTab\")) {\n      return \"schoolAdmin\";\n    }\n  };\n})();","updated":"2024-01-25T14:49:53.390222"},{"path":"pages/learnBeta/loadingPage/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var topbar;\n    topbar = inc(\"/addons/topbar2/topbar\")({\n      title: \"&nbsp;\",\n      tabMenuItems: function(){\n        ({\n          label: \"Placeholder1 \",\n          selected: false\n        });\n        return {\n          label: \"Placeholder2\",\n          selected: false\n        };\n      }\n    });\n    topbar.findFirst(\".tabMenu\").css({\n      opacity: 0.3\n    });\n    return topbar;\n  };\n})();","updated":"2024-01-25T14:49:53.390222"},{"path":"addons/navbar/bar/tabs/tab/learnBeta/item.ls","text":"(function(){\n  return function(){\n    var c;\n    return {\n      navCategory: c = \"learnBeta\",\n      title: \"Lernen\",\n      icon: path(\"/lib/svg/shape/home.svg\"),\n      tap: function(){\n        return startPage({\n          navCategory: c,\n          onNavCategoryNotFound: function(){\n            return inc(\"/pages/learnBeta/start\")();\n          },\n          animation: app.currentPage.navCategory === c ? \"slideRight\" : \"none\"\n        });\n      }\n    };\n  };\n})();","updated":"2024-02-19T11:12:11.973904"},{"path":"pages/misc/_shared/confirmAge16AndPrivacy/popups/privacy2/text/text.ls","text":"(function(){\n  return function(){\n    var div;\n    return div = ScrollDiv().css({\n      padding: \"0 1em 1em 1em\",\n      lineHeight: \"1.5em\",\n      maxHeight: \"20em\",\n      border: \"1px solid \" + Color.grey[200],\n      textAlign: \"left\",\n      marginBottom: \"1em\",\n      backgroundColor: Color.grey[75]\n    }).html(inc(\"/pages/static/privacy/div/div\")());\n  };\n})();","updated":"2024-02-19T11:12:11.973904"},{"path":"lib/util/startPage/startNavCategory/start.ls","text":"(function(){\n  return function(o, fromPath){\n    var pageHistory, navCategory, isCurrentCategory, i, ref$, h, firstIndex, lastIndex;\n    pageHistory = app.pageHistory;\n    navCategory = o.navCategory;\n    isCurrentCategory = _.last(pageHistory).navCategory === navCategory;\n    if (isCurrentCategory) {\n      i = -1;\n      while (((ref$ = pageHistory[pageHistory.length + i]) != null ? ref$.navCategory : void 8) === navCategory) {\n        i--;\n      }\n      h = i + 2;\n      if (h < 0) {\n        return startPage({\n          history: h,\n          animation: o.animation\n        });\n      } else {\n        return app.currentPage.pageScrollWrapper.scrollToTop();\n      }\n    } else {\n      firstIndex = _.findIndex(pageHistory, function(h){\n        return h.navCategory === navCategory;\n      });\n      lastIndex = _.findLastIndex(pageHistory, function(h){\n        return h.navCategory === navCategory;\n      });\n      if (firstIndex >= 0) {\n        app.pageHistory = _.concat(pageHistory.slice(0, firstIndex), pageHistory.slice(lastIndex + 1, pageHistory.length), pageHistory.slice(firstIndex, lastIndex + 1));\n        return startPage({\n          history: 0,\n          animation: o.animation\n        });\n      } else if (o.onNavCategoryNotFound != null) {\n        return o.onNavCategoryNotFound();\n      } else {\n        return helpers.errorHandler(\"No pageHistory found for navCategory: \" + navCategory, fromPath, 0);\n      }\n    }\n  };\n})();","updated":"2024-02-19T11:12:11.973904"},{"path":"lib/gui/drawerMenu/folder/_moveReplace/moveReplace.ls","text":"(function(){\n  return function(d1, d2, direction){\n    d1.setScrollbarMode(\"hide\");\n    d1.css({\n      position: \"absolute\",\n      top: d1.offsetTop - 1 + \"px\",\n      left: d1.offsetLeft + \"px\",\n      width: d1.offsetWidth + \"px\",\n      height: d1.offsetHeight + \"px\",\n      pointerEvents: \"none\"\n    }).keyframeAnimate({\n      duration: 401,\n      onCompleted: function(){\n        return d1.remove();\n      },\n      keyframes: {\n        \"0%\": {\n          transform: \"translateX(0)\"\n        },\n        \"100%\": {\n          transform: direction === \"left\" ? \"translateX(-100%)\" : \"translateX(100%)\"\n        }\n      }\n    });\n    d1.after(d2);\n    return d2.keyframeAnimate({\n      duration: 400,\n      keyframes: {\n        \"0%\": {\n          transform: direction === \"left\" ? \"translateX(100%)\" : \"translateX(-100%)\"\n        },\n        \"100%\": {\n          transform: \"translateX(0)\"\n        }\n      }\n    });\n  };\n})();","updated":"2024-02-19T11:12:11.973904"},{"path":"addons/navbar/bar/user/user/_menu/items/items.ls","text":"(function(){\n  return function(o){\n    var updateMaxHeightAndPosition, div, div2, index, item;\n    updateMaxHeightAndPosition = function(){\n      inc(\"updateMaxHeight/update\")(div2);\n      return inc(\"updatePosition/update\")(div, o);\n    };\n    div = Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      alignItems: \"stretch\",\n      position: \"absolute\",\n      backgroundColor: \"white\",\n      textAlign: \"left\"\n    }).html(inc(\"corner/corner\")(o), div2 = ScrollDiv({\n      scrollbarMode: \"show\"\n    }).html(o.header, (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = o.items).length; i$ < len$; ++i$) {\n        index = i$;\n        item = ref$[i$];\n        if (!item) {\n          continue;\n        } else {\n          results$.push(inc(\"item/item\")(o, item, index));\n        }\n      }\n      return results$;\n    }()))).onWindowResize(updateMaxHeightAndPosition);\n    inc(\"animate/animate\")(div);\n    requestAnimationFrame(function(){\n      return updateMaxHeightAndPosition();\n    });\n    return div;\n  };\n})();","updated":"2024-02-19T11:12:11.973904"},{"path":"lib/util/fileDirectoryList/list/list.ls","text":"(function(){\n  var queue, isActive, cache;\n  queue = [];\n  isActive = false;\n  cache = {};\n  return function(job){\n    var addToQueue, startNext, onJobDone;\n    job.folderPath = inc(\"trimFolderPath/trim\")(job.folderPath);\n    addToQueue = function(){\n      queue.push(job);\n      return startNext();\n    };\n    startNext = function(){\n      var nextJob, cachedFileNames, results$ = [];\n      if (isActive) {\n        return;\n      }\n      for (;;) {\n        nextJob = queue.shift();\n        if (!nextJob) {\n          break;\n        } else if (cachedFileNames = cache[nextJob.folderPath]) {\n          nextJob.onDone(cachedFileNames);\n          continue;\n        } else {\n          isActive = true;\n          inc(\"startJob/startJob\")(nextJob, onJobDone);\n          break;\n        }\n      }\n      return results$;\n    };\n    onJobDone = function(jobDone, fileNames){\n      cache[jobDone.folderPath] = fileNames;\n      isActive = false;\n      return startNext();\n    };\n    if (job.clearCache) {\n      cache = {};\n    }\n    if (job.folderPath) {\n      return addToQueue();\n    }\n  };\n})();","updated":"2025-11-05T10:06:42.34982"},{"path":"lib/util/calcSubjectIcon/calc.ls","text":"(function(){\n  return function(subject){\n    var svg;\n    return svg = (function(){\n      var ref$;\n      switch (subject) {\n      case \"bio\":\n        return path(\"/lib/svg/subjects/biology.svg\");\n      case \"chem\":\n        return path(\"/lib/svg/subjects/chemistry.svg\");\n      case \"natfra\":\n      case \"natdeu\":\n      case \"nateng\":\n      case \"natpt\":\n      case \"nates\":\n        return path(\"/lib/svg/subjects/first-language.svg\");\n      case \"deu\":\n        return path(\"/lib/svg/subjects/language-de.svg\");\n      case \"eng\":\n        if ((ref$ = engine.guiLanguage) === \"en_us\" || ref$ === \"pt\" || ref$ === \"es\") {\n          return path(\"/lib/svg/subjects/language-en-us.svg\");\n        } else {\n          return path(\"/lib/svg/subjects/language-en-gb.svg\");\n        }\n      case \"fra\":\n        return path(\"/lib/svg/subjects/language-fr.svg\");\n      case \"geo\":\n        return path(\"/lib/svg/subjects/geography.svg\");\n      case \"his\":\n        return path(\"/lib/svg/subjects/history.svg\");\n      case \"com\":\n        return path(\"/lib/svg/subjects/informatics.svg\");\n      case \"ita\":\n        return path(\"/lib/svg/subjects/language-it.svg\");\n      case \"mat\":\n        return path(\"/lib/svg/subjects/maths.svg\");\n      case \"mus\":\n        return path(\"/lib/svg/subjects/music.svg\");\n      case \"phy\":\n        return path(\"/lib/svg/subjects/physics.svg\");\n      case \"rus\":\n        return path(\"/lib/svg/subjects/language-ru.svg\");\n      case \"ukr\":\n        return path(\"/lib/svg/subjects/language-ukr.svg\");\n      case \"cat\":\n        return path(\"/lib/svg/subjects/language-es-ct.svg\");\n      case \"pt\":\n        if (engine.guiLanguage === \"es\") {\n          return path(\"/lib/svg/subjects/language-br.svg\");\n        } else {\n          return path(\"/lib/svg/subjects/language-pt.svg\");\n        }\n      case \"nahu\":\n        return path(\"/lib/svg/subjects/language-nahua.svg\");\n      case \"mix\":\n        return path(\"/lib/svg/subjects/language-mixteco.svg\");\n      case \"soc\":\n        return path(\"/lib/svg/subjects/social-studies.svg\");\n      case \"lang1\":\n        return path(\"/lib/svg/subjects/world-language.svg\");\n      case \"lang2\":\n        return path(\"/lib/svg/subjects/language-en-us-es.svg\");\n      case \"sel\":\n        return path(\"/lib/svg/subjects/sel.svg\");\n      case \"life\":\n        return path(\"/lib/svg/subjects/life.svg\");\n      case \"sci\":\n        if ((ref$ = engine.guiLanguage) === \"en_us\" || ref$ === \"en_gb\") {\n          return path(\"/lib/svg/subjects/science.svg\");\n        } else {\n          return path(\"/lib/svg/subjects/science-sun-cloud.svg\");\n        }\n      case \"es\":\n        return path(\"/lib/svg/subjects/language-es.svg\");\n      case \"tur\":\n        return path(\"/lib/svg/subjects/language-tur.svg\");\n      case \"preschool\":\n        return path(\"/lib/svg/subjects/preschool.svg\");\n      case \"debug\":\n        return path(\"/lib/svg/shape/debug.svg\");\n      default:\n        return path(\"/lib/svg/subjects/maths.svg\");\n      }\n    }());\n  };\n})();","updated":"2025-11-05T10:06:42.34982"},{"path":"pages/level/play/loadLevel/load/learnList/load.ls","text":"(function(){\n  return function(p, finish, onError){\n    return inc(\"/../app01-learn-list/data/loadLevel/load\")({\n      levelPath: p.levelPath,\n      etag: p.etag,\n      startConfig: {\n        autoSubmit: p.autoSubmit,\n        autoRecord: p.autoRecord,\n        shuffleAtoms: p.shuffleAtoms,\n        switchAB: p.switchAB,\n        soundMode: p.soundMode\n      },\n      onError: onError,\n      onLoaded: finish\n    });\n  };\n})();","updated":"2025-11-05T10:06:42.34982"},{"path":"lib/svg/subjects/language-mixteco.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#000\" d=\"M47.618 75.773a8.81 8.81 0 0 1 8.238-9.028L266.503 53.11c5.183-.336 9.53 3.861 9.377 9.052l-5.022 170.266a8.81 8.81 0 0 1-9.214 8.542l-93.081-4.3 5.976 61.235c.165 1.685-1.909 2.61-3.053 1.362l-58.162-63.478-53.554-3.685a8.81 8.81 0 0 1-8.203-8.555z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.332 69.605a8.81 8.81 0 0 1 8.238-9.028l210.647-13.635c5.183-.336 9.529 3.861 9.376 9.052l-5.022 170.266a8.81 8.81 0 0 1-9.213 8.542l-93.081-4.3 5.976 61.235c.165 1.685-1.909 2.61-3.053 1.362l-58.162-63.478-53.554-3.685a8.81 8.81 0 0 1-8.203-8.555z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M62.579 206.501a8.81 8.81 0 0 0 8.81 8.811h170.929a8.81 8.81 0 0 0 8.811-8.811V83.151a8.81 8.81 0 0 0-8.811-8.811H71.389a8.81 8.81 0 0 0-8.81 8.81z\" clip-rule=\"evenodd\" opacity=\".22\"/>\n  <g clip-path=\"url(#4284217017__a)\">\n    <path fill=\"#122C9B\" fill-rule=\"evenodd\" d=\"M187 212h61V73h-61z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" d=\"M187 211V73h-63v138z\"/>\n    <path fill=\"#122C9B\" d=\"M124.454 210.282V74.693H62.905v135.589z\"/>\n    <path fill=\"#FCC217\" d=\"m168.811 139.422-.578-2.512a.07.07 0 0 1 .074-.086l2.441.188a.07.07 0 0 1 .055.107l-1.476 2.388a.283.283 0 0 1-.516-.085m-27.947-.842-.593-2.573a.07.07 0 0 1 .084-.085l2.538.554a.07.07 0 0 1 .041.112l-1.569 2.098a.282.282 0 0 1-.501-.106\"/>\n    <path fill=\"#2BAFA1\" d=\"m142.709 134.073.28 2.333a.07.07 0 0 1-.083.078l-2.582-.455a.071.071 0 0 1-.039-.119l1.941-2a.282.282 0 0 1 .483.163m27.459.514.801 2.806a.07.07 0 0 1-.079.089l-2.782-.464a.07.07 0 0 1-.047-.109l1.6-2.401a.283.283 0 0 1 .507.079\"/>\n    <path fill=\"#942526\" d=\"M140 140.349q0-.728.064-1.439a1 1 0 0 1 1.993.18q-.057.621-.057 1.259c0 7.549 6.054 13.651 13.5 13.651s13.5-6.102 13.5-13.651q0-.533-.04-1.055a1 1 0 0 1 1.995-.15q.045.597.045 1.205c0 8.634-6.93 15.651-15.5 15.651s-15.5-7.017-15.5-15.651\"/>\n    <path fill=\"#2BAFA1\" d=\"M169 139.5a.5.5 0 0 1 .5.5c0 7.991-6.251 14.5-14 14.5s-14-6.509-14-14.5a.5.5 0 0 1 1 0q0 .25.01.5l.991.001-.001-.501a.5.5 0 0 1 1 0v1.5h-1.92c.115 1.079.351 2.119.695 3.104.279-.019.617-.044.915-.061l.311-.017-.001-1.026a.5.5 0 0 1 1 0v1.499l.001.475-.475.025-.001-.001h-.003l-.012.001-.045.003-.168.009c-.142.007-.337.019-.549.031-.192.011-.396.026-.589.038a13.6 13.6 0 0 0 1.694 2.858l.941-.939-.648-.645a.502.502 0 0 1 .708-.708l1.354 1.354-1.711 1.709q.737.82 1.595 1.505.008-.014.018-.026l.656-.82-.198-.172a.5.5 0 1 1 .657-.754l.56.488.362.315-1.252 1.56c.833.565 1.73 1.034 2.68 1.391l.313-.944-.611-.306a.5.5 0 0 1 .446-.894l.999.498.388.194-.586 1.767c1.041.299 2.134.466 3.261.485v-.997l-1.035.001a.5.5 0 0 1-.001-1.001h2.036v1.975a12.5 12.5 0 0 0 3.475-.718l-.522-1.132-.407.147a.501.501 0 0 1-.338-.942l.42-.149.419-.151.43-.155.925 2.006a13 13 0 0 0 2.444-1.451l-.735-.953-.606.431a.5.5 0 1 1-.579-.815l1.391-.988 1.304 1.692a13.4 13.4 0 0 0 1.599-1.677l-1.135-.755-.165.184a.5.5 0 0 1-.743-.67l.456-.504.288-.32.36.238 1.499 1 .033.027q.622-.906 1.095-1.915l-1.47-.735-.276.554a.5.5 0 0 1-.895-.448l.5-1 .224-.448 2.31 1.156c.309-.807.544-1.654.699-2.53l-1.229-.413-.304.612a.5.5 0 0 1-.896-.447l.5-1.001.195-.389 1.874.631q.073-.713.075-1.446a.5.5 0 0 1 .5-.5m-28.43-7.756a.5.5 0 0 1 .685-.175c.142.085.263.161.374.233.484.313.838.807.964 1.381l.096.439a.5.5 0 0 1-.977.214l-.096-.44a1.22 1.22 0 0 0-.531-.755 9 9 0 0 0-.34-.212.5.5 0 0 1-.175-.685\"/>\n    <path fill=\"#000\" d=\"m159.912 142.854-.541 1.053 1.475 1.625-1.169 1.061-2.207-2.433 1.038-2.025zm-4.897.237-2.779 4.055-.651-.445-.65-.446 2.779-4.057z\"/>\n    <path fill=\"#C0890F\" d=\"m157.11 147.748 1.969-1.595a.07.07 0 0 1 .042-.017l1.519-.104a.076.076 0 0 1 .077.098l-.441 1.424a.08.08 0 0 1-.065.053l-3.047.274c-.074.007-.111-.087-.054-.133\"/>\n    <path fill=\"#942526\" d=\"M154.494 143.321h-2.018a.075.075 0 0 1-.072-.097l2.208-7.102a.07.07 0 0 1 .068-.052l4.244-.183a.075.075 0 0 1 .076.056l1.876 7.284a.075.075 0 0 1-.073.094z\"/>\n    <path fill=\"#C0890F\" d=\"m148.214 147.112 3.211-1.195.021-.005 1.5-.102c.06-.004.1.06.07.113l-.956 1.639a.08.08 0 0 1-.072.037l-3.755-.342c-.079-.007-.094-.117-.019-.145\"/>\n    <path fill=\"#FCC217\" d=\"m159.296 137.263 1.465-2.44a.3.3 0 0 1 .196-.145l1.483-.371a.32.32 0 0 1 .387.387l-.389 1.557a.3.3 0 0 0-.008.109l.502 5.025a.32.32 0 0 1-.199.328l-2.08.832a.32.32 0 0 1-.432-.234l-.964-4.821a.33.33 0 0 1 .039-.227\"/>\n    <path fill=\"#942526\" d=\"M161.268 140.426a.45.45 0 0 1 .498.326l.355 1.317a.447.447 0 1 1-.864.233l-.356-1.317a.45.45 0 0 1 .367-.559\"/>\n    <path fill=\"#0072C5\" d=\"M162.249 139c0-.542-.618-1.249-1.749-1.249s-1.749.707-1.749 1.249.618 1.249 1.749 1.249V141c-1.381 0-2.5-.895-2.5-2s1.119-2 2.5-2 2.5.895 2.5 2-1.119 2-2.5 2v-.751c1.131 0 1.749-.707 1.749-1.249\"/>\n    <path fill=\"#FCC217\" d=\"m152.413 134.69.746-1.372a.37.37 0 0 0-.032-.407l-.632-.827a.374.374 0 0 1 .029-.489l.863-.892a.4.4 0 0 1 .087-.067l1.379-.77a.38.38 0 0 1 .373.004l3.975 2.327a.375.375 0 0 1 .052.611l-1.858 1.564a.38.38 0 0 0-.127.213l-.251 1.26a.38.38 0 0 1-.369.302h-1.298a.4.4 0 0 1-.22-.072l-1.042-.758a.4.4 0 0 0-.221-.072h-1.124a.376.376 0 0 1-.33-.555\"/>\n    <path fill=\"#0072C5\" d=\"m157.369 137.785-.531-2.178a.376.376 0 0 0-.365-.287h-.159a.376.376 0 0 0-.373.333l-.251 2.178a.376.376 0 0 0 .373.419h.941a.376.376 0 0 0 .365-.465\"/>\n    <path fill=\"#942526\" d=\"M151.095 145.725a.45.45 0 0 1 .45-.451h2.104a.45.45 0 0 1 0 .902h-2.104a.45.45 0 0 1-.45-.451m7.476 0c0-.249.202-.451.451-.451h2.103a.451.451 0 0 1 0 .902h-2.103a.45.45 0 0 1-.451-.451\"/>\n    <path fill=\"#0072C5\" d=\"M153.564 130.276a.6.6 0 0 1 .85 0l3.568 3.568a.6.6 0 1 1-.85.85l-3.568-3.569a.6.6 0 0 1 0-.849\"/>\n    <path fill=\"#942526\" d=\"M148.527 145.257v-7.888h1.201v7.888a.6.6 0 0 1-1.201 0\"/>\n    <path fill=\"#C0890F\" d=\"m154.939 137.658-2.659 1.596-.493.295-3.152-1.891.985-1.642 2.167 1.299 2.167-1.299z\"/>\n    <path fill=\"#0072C5\" d=\"M149.52 130.388c.33.031.574.323.544.654l-.338 3.68a.601.601 0 0 1-1.197-.109l.338-3.681a.6.6 0 0 1 .653-.544\"/>\n    <path fill=\"#FCC217\" d=\"M151.255 136.305a2.128 2.128 0 1 1-4.257 0 2.128 2.128 0 0 1 4.257 0\"/>\n    <path fill=\"#942526\" d=\"M154.139 135.208h-1.164c0 .551.18 1.675.901 1.765s1.177-.513 1.315-.826z\"/>\n    <path fill=\"#C58E2D\" d=\"M152 127a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"/>\n    <path fill=\"#000\" d=\"M151.883 127a.884.884 0 1 0-.883.883V128a1 1 0 1 1 0-2 1 1 0 0 1 0 2v-.117a.884.884 0 0 0 .883-.883\"/>\n    <path fill=\"#C58E2D\" d=\"M154 127a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"/>\n    <path fill=\"#000\" d=\"M153.883 127a.884.884 0 1 0-.883.883V128a1 1 0 1 1 0-2 1 1 0 0 1 0 2v-.117a.884.884 0 0 0 .883-.883\"/>\n    <path fill=\"#C58E2D\" d=\"M156 127a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"/>\n    <path fill=\"#000\" d=\"M155.883 127a.884.884 0 1 0-.883.883V128a1 1 0 1 1 0-2 1 1 0 0 1 0 2v-.117a.884.884 0 0 0 .883-.883\"/>\n    <path fill=\"#C58E2D\" d=\"M158 127a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"/>\n    <path fill=\"#000\" d=\"M157.883 127a.884.884 0 1 0-.883.883V128a1 1 0 1 1 0-2 1 1 0 0 1 0 2v-.117a.884.884 0 0 0 .883-.883\"/>\n    <path fill=\"#C58E2D\" d=\"M160 127a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"/>\n    <path fill=\"#000\" d=\"M159.883 127a.884.884 0 1 0-.883.883V128a1 1 0 1 1 0-2 1 1 0 0 1 0 2v-.117a.884.884 0 0 0 .883-.883\"/>\n    <path fill=\"#C58E2D\" d=\"M162 127a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"/>\n    <path fill=\"#000\" d=\"M161.883 127a.884.884 0 1 0-.883.883V128a1 1 0 1 1 0-2 1 1 0 0 1 0 2v-.117a.884.884 0 0 0 .883-.883\"/>\n    <path fill=\"#2F70BF\" d=\"M174 140.5c0-10.217-8.283-18.5-18.5-18.5s-18.5 8.283-18.5 18.5 8.283 18.5 18.5 18.5 18.5-8.283 18.5-18.5m6 0c0 13.531-10.969 24.5-24.5 24.5S131 154.031 131 140.5s10.969-24.5 24.5-24.5 24.5 10.969 24.5 24.5\"/>\n    <path fill=\"#63211D\" d=\"M153.991 116.5a2.51 2.51 0 0 1 2.509 2.5v1.413c1.742.077 3.427.376 5.025.87l.428-1.279a1.51 1.51 0 0 0-.957-1.9 1.49 1.49 0 0 0-1.653.502l.206.07a.5.5 0 0 1 .317.633.5.5 0 0 1-.633.315l-.74-.246a.52.52 0 0 1-.328-.657 2.49 2.49 0 0 1 3.147-1.566 2.51 2.51 0 0 1 1.59 3.165l-.429 1.284a20 20 0 0 1 4.552 2.369l.731-.974a1.507 1.507 0 0 0-.306-2.105 1.49 1.49 0 0 0-1.727-.046l.174.131a.5.5 0 0 1-.6.799l-.625-.468a.52.52 0 0 1-.103-.727 2.49 2.49 0 0 1 3.48-.489 2.51 2.51 0 0 1 .507 3.506l-.725.965a20.2 20.2 0 0 1 3.662 3.68l.822-.568c.679-.47.848-1.411.375-2.095a1.49 1.49 0 0 0-1.624-.59l.124.18a.5.5 0 1 1-.822.568l-.444-.641a.52.52 0 0 1 .132-.723 2.49 2.49 0 0 1 3.456.637 2.51 2.51 0 0 1-.628 3.486l-.803.555a20 20 0 0 1 2.156 4.056l.661-.191a1.51 1.51 0 0 0 1.019-1.868 1.49 1.49 0 0 0-1.354-1.073l.061.209a.5.5 0 0 1-.96.279l-.218-.749a.52.52 0 0 1 .353-.644 2.49 2.49 0 0 1 3.077 1.698 2.507 2.507 0 0 1-1.698 3.108l-.599.174a20 20 0 0 1 1.011 5.624l1.158-.076a1.5 1.5 0 0 0 1.4-1.443l-.002-.153-.016-.232a1.27 1.27 0 0 0-.861-1.118l.014.204a.5.5 0 1 1-.998.066l-.052-.78a.517.517 0 0 1 .482-.551 2.27 2.27 0 0 1 2.413 2.114l.015.23.005.257a2.5 2.5 0 0 1-2.334 2.403l-1.213.079a20 20 0 0 1-.573 4.493l.717.27a1.507 1.507 0 0 0 1.935-.882c.23-.61.033-1.278-.438-1.671l-.077.204a.5.5 0 0 1-.936-.354l.275-.729a.52.52 0 0 1 .67-.303 2.49 2.49 0 0 1 1.442 3.205 2.51 2.51 0 0 1-3.225 1.466l-.627-.236a20 20 0 0 1-1.84 4.257l1.09.686c.698.44 1.631.226 2.074-.478a1.49 1.49 0 0 0-.095-1.724l-.117.184a.5.5 0 1 1-.846-.533l.416-.66a.52.52 0 0 1 .717-.163 2.49 2.49 0 0 1 .771 3.43 2.51 2.51 0 0 1-3.453.791l-1.079-.68a20 20 0 0 1-3.328 3.926l.678.698a1.51 1.51 0 0 0 2.128.023 1.49 1.49 0 0 0 .313-1.699l-.155.153a.501.501 0 0 1-.698-.717l.559-.545a.52.52 0 0 1 .735.011 2.49 2.49 0 0 1-.056 3.514 2.51 2.51 0 0 1-3.542-.043l-.719-.739a20 20 0 0 1-3.668 2.401l.735 1.158a1.38 1.38 0 0 0 1.907.424l.051-.033c.471-.3.687-.848.586-1.365l-.135.086a.5.5 0 0 1-.537-.844l.619-.393a.52.52 0 0 1 .716.159 2.32 2.32 0 0 1-.713 3.201l-.051.033a2.38 2.38 0 0 1-3.286-.731l-.801-1.261a19.9 19.9 0 0 1-6.248 1.636l.332 1.328a1.5 1.5 0 0 0 2.947-.496l-.271.067a.5.5 0 0 1-.243-.97l.754-.188a.52.52 0 0 1 .598.28l.036.101.06.237a2.5 2.5 0 1 1-4.852 1.21l-.375-1.5q-.434.02-.873.021c-1.848 0-3.637-.253-5.336-.722l-.106 1.385a1.5 1.5 0 0 0 2.93.549l-.263-.02a.5.5 0 1 1 .077-.997l.776.059a.523.523 0 0 1 .48.561l-.013.157a2.5 2.5 0 1 1-4.984-.386l.123-1.606a20 20 0 0 1-4.923-2.435l-.525 1.245c-.32.759.045 1.646.813 1.97a1.49 1.49 0 0 0 1.677-.368l-.2-.084a.5.5 0 1 1 .389-.922l.719.304a.52.52 0 0 1 .276.682c-.532 1.261-1.997 1.839-3.25 1.31-1.268-.535-1.883-2.005-1.345-3.281l.613-1.456a20 20 0 0 1-3.087-2.9l-1.056 1.202a1.5 1.5 0 0 0 .137 2.117l.077.067c.452.398 1.089.45 1.589.178l-.16-.141a.5.5 0 1 1 .66-.751l.587.516a.52.52 0 0 1 .047.731 2.397 2.397 0 0 1-3.383.218l-.077-.067a2.5 2.5 0 0 1-.228-3.529l1.165-1.326a20 20 0 0 1-2.647-4.521l-1.263.736a1.5 1.5 0 0 0 1.154 2.741l-.125-.215a.5.5 0 0 1 .864-.503l.392.672a.52.52 0 0 1-.187.712l-.083.049a2.5 2.5 0 0 1-2.518-4.32l1.398-.816a20 20 0 0 1-1.156-5.711l-1.709.357a1.5 1.5 0 0 0 .518 2.952l-.06-.289a.501.501 0 0 1 .979-.204l.159.76a.526.526 0 0 1-.305.587l-.102.032-.371.078a2.5 2.5 0 0 1-1.023-4.895l1.886-.394v-.068c0-2.281.382-4.473 1.085-6.515l-1.298-.15a1.51 1.51 0 0 0-1.665 1.326 1.49 1.49 0 0 0 .83 1.514l.026-.216a.5.5 0 1 1 .993.116l-.09.774a.52.52 0 0 1-.576.456 2.49 2.49 0 0 1-2.176-2.76 2.51 2.51 0 0 1 2.774-2.204l1.542.18a20 20 0 0 1 2.468-4.408l-1.393-.652a1.51 1.51 0 0 0-1.999.731c-.276.59-.131 1.27.309 1.699l.092-.197a.5.5 0 0 1 .906.425l-.331.706a.52.52 0 0 1-.691.25 2.49 2.49 0 0 1-1.19-3.307 2.51 2.51 0 0 1 3.328-1.213l1.6.749a20.2 20.2 0 0 1 3.553-3.378l-.93-.883a1.51 1.51 0 0 0-2.127.061 1.49 1.49 0 0 0-.246 1.71l.15-.158a.5.5 0 0 1 .725.688l-.537.567a.52.52 0 0 1-.735.018 2.49 2.49 0 0 1-.083-3.513 2.51 2.51 0 0 1 3.541-.098l1.076 1.021a20 20 0 0 1 5.172-2.456l-.678-1.275a1.51 1.51 0 0 0-2.038-.615 1.495 1.495 0 0 0-.774 1.545l.193-.103a.5.5 0 1 1 .469.883l-.688.366a.52.52 0 0 1-.703-.215 2.49 2.49 0 0 1 1.033-3.359 2.51 2.51 0 0 1 3.391 1.028l.781 1.469a20 20 0 0 1 4.806-.606V119c0-.825-.678-1.5-1.509-1.5-.652 0-1.207.42-1.408 1h.217a.5.5 0 0 1 0 1h-.78a.52.52 0 0 1-.52-.52 2.49 2.49 0 0 1 2.491-2.48m1.614 5.893c-9.941 0-18 8.058-18 18s8.059 18 18 18c9.941-.001 18-8.059 18-18s-8.059-18-18-18\"/>\n    <g clip-path=\"url(#4284217017__b)\">\n      <path fill=\"#000\" d=\"M161.409 169.862q1.032-.194 1.65.09c.41.187.707.567.875 1.122l-1.556.398q-.129-.359-.364-.49c-.157-.085-.35-.111-.586-.063-.19.04-.336.104-.415.212a.4.4 0 0 0-.089.336q.022.135.167.216.138.083.6.095c.757.024 1.31.082 1.66.187q.517.156.8.479.282.321.369.777.094.533-.11 1.029a1.8 1.8 0 0 1-.68.829q-.477.33-1.258.477c-.916.178-1.591.117-2.012-.18q-.631-.437-.855-1.261l.013.006 1.568-.405c.086.258.19.443.322.563.212.188.478.257.803.193.241-.049.411-.14.521-.275a.51.51 0 0 0 .118-.435q-.038-.213-.257-.349c-.144-.086-.447-.141-.915-.156q-1.144-.045-1.693-.368a1.36 1.36 0 0 1-.67-.975 1.5 1.5 0 0 1 .09-.846q.174-.425.614-.734c.293-.207.73-.36 1.29-.472m-11.664.152-.49 3.381q-.07.452.143.746c.142.197.358.313.647.361q.437.063.719-.151c.187-.144.307-.371.347-.673l.49-3.38.02.012 1.675.251-.479 3.302a2.8 2.8 0 0 1-.287.906 2 2 0 0 1-.583.694 1.8 1.8 0 0 1-.744.354c-.343.072-.747.074-1.204.006a8 8 0 0 1-.859-.19 2.3 2.3 0 0 1-.75-.345 2 2 0 0 1-.509-.568 1.8 1.8 0 0 1-.269-.696 3.6 3.6 0 0 1-.023-.959l.481-3.302zm21.682 2.669-1.669.624-.572-.768-1.809.674.062.964-1.631.609.041-5.989 1.737-.653zm-27.549-4.319-1.098 3.227c-.098.291-.096.539.002.758q.149.325.569.475.419.151.73-.008c.214-.106.367-.301.465-.598l1.098-3.228.007.007 1.603.567-1.074 3.155q-.158.468-.443.832c-.19.242-.427.435-.697.569a2 2 0 0 1-.794.212q-.526.018-1.187-.224a6.5 6.5 0 0 1-.807-.349 2.3 2.3 0 0 1-.678-.477 2 2 0 0 1-.396-.652 1.8 1.8 0 0 1-.137-.733c.019-.373.065-.688.158-.946l1.075-3.154zm23.433 3.584 1.132-.421.006-.007-1.255-1.677zm7.762-1.353-1.601.922-4.514-3.832 1.539-.889 3.03 2.89-.89-4.126 1.499-.866zm-36.778-5.034.286 3.738 1.515-2.688 1.388.817-2.734 4.862-1.39-.81-.284-3.712-1.504 2.668-1.388-.81 2.735-4.869zm40.849 2.167-1.358 1.05-3.331-4.468 1.358-1.049zm-10.186-.043-.004.003v-.006zm-30.17-3.154a.7.7 0 0 1 .573.057.7.7 0 0 1 .197.156c.06.057.155.177.296.362.141.183.248.297.334.346a.19.19 0 0 0 .173.02q.085-.031.186-.19l-.007-.006.517.301c-.03.059-.06.106-.077.152-.139.247-.306.397-.502.463a.69.69 0 0 1-.586-.07q-.209-.119-.534-.548c-.134-.171-.227-.278-.293-.315q-.097-.057-.18-.027-.083.033-.173.184l-.511-.295q.043-.08.078-.14c.132-.233.3-.39.509-.45\"/>\n    </g>\n  </g>\n  <defs>\n    <clipPath id=\"4284217017__a\">\n      <rect width=\"184.762\" height=\"135.589\" x=\"62.905\" y=\"74.692\" fill=\"#fff\" rx=\"8.811\"/>\n    </clipPath>\n    <clipPath id=\"4284217017__b\">\n      <path fill=\"#fff\" d=\"M134 164.669 178.97 163l.444 11.992-44.969 1.669z\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-11-05T10:06:42.34982"},{"path":"pages/level/play/loadLevel/load/content/load.ls","text":"(function(){\n  return function(p, finish, onError){\n    return inc(\"/lib/util/loadLevel/load\")({\n      path: p.levelPath,\n      onError: onError,\n      onLoaded: finish\n    });\n  };\n})();","updated":"2024-02-23T14:59:57.17029"},{"path":"pages/level/play/loadLevel/load/mathPractice/load.ls","text":"(function(){\n  return function(p, finish, onError){\n    return inc(\"/../app01-math-practice/data/loadLevel/load\")({\n      levelPath: p.levelPath,\n      onError: onError,\n      onLoaded: finish\n    });\n  };\n})();","updated":"2024-02-23T14:59:57.17029"},{"path":"lib/init/logDeviceStartEvents/setGuiLanguage/log.ls","text":"(function(){\n  return function(){\n    var deviceCreated, ref$, lang;\n    if (Store(\"deviceGuiLanguage\") == null) {\n      deviceCreated = (ref$ = deviceLog.findFirst()) != null ? ref$.created : void 8;\n      if (deviceCreated > new Date() - 1000 * 60) {\n        lang = inc(\"/lib/util/calcGuiLanguage/calc\")();\n        deviceLog.getDetails(function(d){\n          var e;\n          return deviceLog.log(e = {\n            event: \"deviceDebugGuiLanguageFirstStart\",\n            value: lang,\n            navigatorUserLanguage: navigator.userLanguage,\n            navigatorLanguage: navigator.language,\n            navigatorLanguages: navigator.languages,\n            deviceLogDetails: d\n          });\n        });\n      } else {\n        lang = \"de\";\n      }\n      return inc(\"/lib/util/setGuiLanguageDevice/set\")(lang);\n    }\n  };\n})();","updated":"2024-04-29T15:33:45.846257"},{"path":"lib/gui/divEditable/createLineNodes/image/image.ls","text":"(function(){\n  return function(id, params){\n    var ref$, image, a;\n    if ((ref$ = params.d.parseMode) !== \"learnListEditor\" && ref$ !== \"topic\") {\n      return;\n    }\n    image = document.createElement(\"img\").attr({\n      image_id: id,\n      special_element: \"image\"\n    }).css({\n      display: \"inline-block\",\n      border: \"1px solid \" + Color.grey[250],\n      verticalAlign: \"bottom\",\n      background: Color.grey[150],\n      cursor: \"pointer\"\n    }).addClass(\"image_\" + _.kebabCase(id));\n    image.css(_.includes(id, \"size:small\")\n      ? {\n        width: \"3em\",\n        height: \"3em\",\n        margin: \"0.5em\",\n        objectFit: \"cover\"\n      }\n      : _.includes(id, \"size:medium\")\n        ? {\n          width: \"5em\",\n          height: \"5em\",\n          margin: \"0.5em\",\n          objectFit: \"cover\"\n        }\n        : _.includes(id, \"size:large\")\n          ? {\n            width: \"10em\",\n            height: \"10em\",\n            margin: \"0.5em\",\n            objectFit: \"cover\"\n          }\n          : _.includes(id, \"size:mini\")\n            ? {\n              width: params.d.lineHeight,\n              height: params.d.lineHeight,\n              margin: \"0 0.2em\",\n              objectFit: \"cover\"\n            }\n            : _.includes(id, \"size:\")\n              ? (a = id.split(\"size:\")[1].split(\"x\"), image.attr({\n                width: a[0],\n                height: a[1]\n              }), {\n                width: a[0] + \"px\",\n                height: \"auto\",\n                margin: \"0 0.2em\",\n                maxWidth: \"100%\"\n              })\n              : {\n                width: \"1.5em\",\n                height: \"1.5em\",\n                margin: \"0.1em\"\n              });\n    inc(\"loadLearnListImage/load\")(id, image);\n    return image;\n  };\n})();","updated":"2026-04-22T14:13:22.533296"},{"path":"lib/gui/divEditable/createLineNodes/image/loadLearnListImage/getCachedImage/get.ls","text":"(function(){\n  return function(imageId){\n    var listItems, item;\n    listItems = inc(\"/lib/util/cache/get/get\")(\"listItems\");\n    item = _.find(listItems, function(i){\n      var ref$;\n      return ((ref$ = i.image) != null ? ref$.imageId : void 8) === imageId;\n    });\n    return item != null ? item.image.base64 : void 8;\n  };\n})();","updated":"2026-04-22T14:13:22.533296"},{"path":"lib/gui/divEditable/createLineNodes/image/loadLearnListImage/load.ls","text":"(function(){\n  return function(id, image){\n    var imageId, cachecImageSrc, that;\n    imageId = id.split(\",\")[0];\n    cachecImageSrc = inc(\"getCachedImage/get\")(imageId);\n    if (that = cachecImageSrc) {\n      return image.src = that;\n    } else {\n      return inc(\"/lib/util/downloadContentFile/download\")({\n        fileId: \"image/\" + imageId,\n        fileFolder: \"learnLists/\" + app.currentPage.listCode + \"/_images\",\n        etag: \"any\",\n        returnFileContent: true,\n        onError: function(){\n          return debug(\"error\");\n        },\n        onLoaded: function(base64){\n          var images, i$, len$, img, results$ = [];\n          images = body.findAll(\".image_\" + _.kebabCase(id));\n          for (i$ = 0, len$ = images.length; i$ < len$; ++i$) {\n            img = images[i$];\n            results$.push(img.src = base64);\n          }\n          return results$;\n        }\n      });\n    }\n  };\n})();","updated":"2026-04-22T14:13:22.533296"},{"path":"pages/schoolSearch/00_shared/topbarAbort/popupAbort/popup.ls","text":"(function(){\n  return function(page){\n    return inc(\"/lib/gui/confirmPopup/popup\")({\n      label: T(\"popupAbort\"),\n      yesLabel: T(\"quitButton\"),\n      noLabel: T(\"cancelButton\"),\n      onConfirm: function(){\n        return startPage({\n          history: function(p){\n            return !_.includes(p, \"schoolSearch\");\n          },\n          animation: \"slideDown\"\n        });\n      }\n    });\n  };\n})();","updated":"2024-03-18T16:16:23.648137"},{"path":"lib/init/logDeviceStartEvents/start/log.ls","text":"(function(){\n  return function(){\n    var i, e, b, ref$;\n    i = projects.info()[\"app01\"];\n    e = deviceLog.findLast(\"deviceStart\");\n    b = inc(\"/lib/util/calcBrowser/calc\")();\n    return deviceLog.log({\n      event: \"deviceStart\",\n      networkType: engine.networkConnection.type,\n      isOnline: engine.networkConnection.isOnline,\n      engineVersion: engine.clientVersion,\n      isDebug: engine.isDebug,\n      appType: inc(\"/lib/util/calcAppType/calc\")(),\n      appBranch: i.branch,\n      appVersion: i.version,\n      appDate: (ref$ = i.versionDate) != null ? ref$.substr(0, 19).replace(\"T\", \" \") : void 8,\n      browser: b.name + \" \" + b.version,\n      contentServer: app.contentServer,\n      engineStartTime: typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.engineStartTime : void 8,\n      initDuration: engine.initDoneAt - engine.initStartAt,\n      isReload: (typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.engineStartTime : void 8) != null && (e != null ? e.engineStartTime : void 8) === (typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.engineStartTime : void 8)\n    });\n  };\n})();","updated":"2024-03-18T16:16:23.648137"},{"path":"pages/static/terms/div/divPt/div.ls","text":"(function(){\n  return function(isPrint){\n    var s, p, section;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div({\n      minHeight: \"var(--centerHeight)\"\n    }).addClass(\"privacyDiv\").html(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3.5em\"\n    }) : void 8, isPrint ? Div({\n      fontSize: \"1.4em\"\n    }).html(T(\"termsOfService\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. Geral\",\n      content: [p(\"ANTON lhe dá as boas-vindas - Estamos felizes por você estar aqui! ANTON é um aplicativo de aprendizagem para alunos, professores e famílias. ANTON é desenvolvido e fornecido por solocode GmbH, Mehringdamm 61, 10961 Berlin (doravante: o Provedor).\"), p(\"Você pode usar ANTON em www.anton.app e também através dos aplicativos móveis para Android, iOS e Amazon Fire.\"), p(\"Estes termos e condições gerais de uso e comerciais (doravante: \\\"TCG\\\") constituem o quadro legal definitivo para todos os serviços ANTON destinados a consumidores ou escolas (doravante: \\\"o serviço\\\"). Os acordos subsidiários verbais ou emendas ao contrato só são efetivos se confirmados pelo provedor por escrito ou por e-mail.\"), p(\"Estes termos e condições gerais aplicam-se igualmente à oferta gratuita e às ofertas adicionais sujeitas a uma taxa.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. Serviços oferecidos, âmbito de aplicação\",\n      content: [p(\"2.1. ANTON é um sistema de aprendizagem on-line que permite aos alunos estudarem para a escola de uma maneira simples, moderna e eficiente.\"), p(\"2.2. Os professores e tutores familiares podem usar ANTON para orientar e apoiar os alunos em seu aprendizado.\"), p(\"2.3. As escolas podem usar ANTON como parte de suas lições, como lição de casa ou como uma oportunidade adicional de aprendizado.\"), p(\"2.4. Muitas funções estão disponíveis para o usuário gratuitamente. Os serviços que estão sujeitos a uma taxa são claramente indicados como tal e podem ser utilizados após o pagamento das respectivas taxas ou preços.\"), p(\"2.5. O provedor se reserva o direito de tornar partes de sua oferta acessíveis somente a professores ou outros usuários encarregados de tarefas educacionais.\"), p(\"2.6 O usuário é obrigado a não fornecer qualquer informação inverídica ao se registrar on-line, em particular no que diz respeito ao seu papel como estudante ou professor e sua afiliação escolar. Se o usuário fornecer dados falsos, o provedor poderá, na medida em que um contrato tenha sido celebrado, rescindir o contrato. A retirada é - se possível - declarada por escrito. O formulário escrito também é preenchido com o envio de um e-mail. Se forem fornecidos dados falsos, um administrador da escola pode ter o direito de gerenciar a conta de usuário criada com dados falsos, visualizar a senha e ativar o procedimento de exclusão do usuário.\"), p(\"2.7. Além do serviço gratuito, os consumidores também podem ativar o ANTON-Plus, um serviço pago com características adicionais.\"), p(\"2.8. As escolas podem adquirir uma Licença Escolar ANTON e, assim, ativar mais recursos que melhoram o uso na escola. Além da licença escolar ANTON, as escolas podem ativar o ANTON-Plus para todos os alunos e professores da escola.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. Oferta gratuita e ANTON-Plus\",\n      content: [p(\"3.1. O usuário pode criar uma conta de usuário em ANTON gratuitamente.\"), p(\"3.2. Após criar uma conta de usuário, é possível fazer uso das funções básicas gratuitas (\\\"contrato básico\\\"). Entretanto, o usuário não tem direito legal à livre disponibilidade desses conteúdos e funções.\"), p(\"3.3. Os contratos básicos podem ser rescindidos a qualquer momento com 14 dias de aviso prévio.\"), p(\"3.4. O provedor também oferece aos consumidores o serviço ANTON-Plus (\\\"contrato premium\\\") cobrável de acordo com vários modelos de preços. Na medida em que os preços são indicados na ANTON, eles incluem o imposto sobre o valor agregado estatutário aplicável naquele momento.\"), p(\"3.5. Ao reservar um contrato premium, o usuário recebe acesso a funções adicionais dentro do escopo do respectivo contrato premium por todo o período do contrato.\"), p(\"3.6. O tipo de faturamento, preço e prazo são listados em cada caso como parte do processo de pedido e são resumidos por completo antes de o pedido ser concluído. O contrato premium entra em vigor com um clique no botão \\\"comprar\\\" (ou similar).\"), p(\"3.7. Os contratos Premium são celebrados pelo prazo fixo escolhido pelo usuário. Os preços para todo o período devem ser pagos na conclusão do contrato.\"), p(\"3.8. O Provedor deverá se comunicar com o Usuário principalmente através do chat de suporte localizado no aplicativo ou - se um endereço de e-mail tiver sido fornecido - também via e-mail, e poderá, em particular, notificar o Usuário sobre declarações de intenção relevantes ao contrato (por exemplo, avisos de rescisão) por este meio. O Usuário pode fornecer ao Provedor um endereço de e-mail atual a qualquer momento.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. Duração, renovação e rescisão de contratos para os consumidores.\",\n      content: [p(\"4.1. Desde que não tenha sido celebrado um contrato de prêmio com custos, o usuário pode rescindir o contrato básico a qualquer momento, de acordo com a Seção 3.3.\"), p(\"4.2. Salvo que se indique o contrário no momento da conclusão do contrato, os contratos Premium ANTON Plus são assinaturas contínuas que são renovadas automaticamente em base recorrente para o prazo contratualmente acordado em cada caso, a menos que o usuário ou o provedor rescinda o respectivo contrato de prêmio até 24 horas antes do vencimento do respectivo prazo. As taxas para períodos de renovação também devem ser faturadas antecipadamente. Todos os contratos podem ser rescindidos no final do respectivo período.\"), p(\"4.3. Os contratos Premium que são comprados em uma base de \\\"montante fixo\\\" são expressamente designados como sendo de duração limitada ou ilimitada. Se eles forem limitados no tempo, o contrato termina no final do prazo sem necessidade de rescisão. Se forem ilimitados, os parágrafos seguintes se aplicam a eles de acordo.\"), p(\"4.4. O cancelamento de Contratos Premium adquiridos via Apple App Store, Google Play Store ou via Paypal é realizado de acordo com os termos e condições aplicáveis do respectivo prestador de serviços. O procedimento exato está descrito no site da Apple App Store, da Google Play Store ou do Paypal.\"), p(\"4.5. O direito de rescisão por justa causa permanece inalterado.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. Direito de rescisão do consumidor.\",\n      content: [\n        p(\"5.1. Os consumidores têm o direito de cancelar este contrato dentro de 14 dias sem dar nenhum motivo. O período de revogação é de 14 dias a partir do dia da conclusão do contrato. Para exercer o direito de rescisão, o consumidor deve informar o provedor (solocode GmbH, Mehringdamm 61, 10961 Berlin, Alemanha, e-mail: support@anton.app) de sua decisão de rescindir este contrato por meio de uma declaração clara (por exemplo, um e-mail ou uma carta ou enviada pelo correio). Para este fim, os consumidores podem utilizar o modelo de formulário de retirada anexo, que, no entanto, não é obrigatório.\"), p(\"5.2. Para cumprir o período de revogação, basta que a notificação do exercício do direito de revogação seja enviada antes da expiração do período de revogação.\"), Button(\"Formulário de revogação\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://files.anton.app/files/ANTON-formulario-para-revocacion.pdf\");\n        }).css({\n          marginBottom: \"1em\",\n          marginTop: \"-0.5em\"\n        }), p(\"5.3. Consequências da rescisão: Se o consumidor rescindir este contrato, o provedor deverá reembolsar todos os pagamentos recebidos do consumidor, incluindo os custos de entrega (com exceção dos custos adicionais resultantes do fato de o consumidor ter escolhido um tipo de entrega diferente da entrega padrão mais barata oferecida pelo provedor) sem demora e no prazo máximo de 14 dias a partir da data em que o provedor tiver recebido a notificação de rescisão deste contrato. Para este reembolso, o Fornecedor deverá utilizar o mesmo meio de pagamento que o consumidor utilizou para a transação original, salvo acordo expresso em contrário; em nenhum caso serão cobradas taxas por este reembolso.\")\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Formas de pagamento\",\n      content: [p(\"6.1. Ao menos que se indique o contrário no processo de pedido, as taxas para contratos premium devem ser pagas antecipadamente por toda a duração do contrato.\"), p(\"6.2. O pagamento pode ser feito através de todas as formas de pagamento listadas no site sem custos adicionais. Como parte do processo de pagamento, o provedor comissiona um prestador de serviços de pagamento externo para processar os dados de pagamento inseridos pelo Usuário.\"), p(\"6.3. Após selecionar o sistema de pagamento desejado, o usuário insere os dados necessários nos campos de dados correspondentes. O prestador de serviços de pagamento comissionado está autorizado a aceitar pagamentos em nome do provedor. O provedor se reserva o direito de restringir os sistemas de pagamento oferecidos.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. Ofertas de pagamento para escolas: Licença escolar ANTON\",\n      content: [p(\"7.1. As escolas podem desbloquear recursos adicionais para o pessoal escolar, professores e alunos, comprando uma oferta premium.\"), p(\"7.2. Somente com o envio do pedido, a escola ou o cliente faz uma oferta vinculativa para celebrar um contrato com o provedor. O provedor pode aceitar a oferta dentro de 2 dias úteis enviando uma confirmação de pedido, uma fatura ou ativando a oferta.\"), p(\"7.3. As cotações do provedor no momento da conclusão do contrato são exclusivamente decisivas.\"), p(\"7.4. O termo é mostrado ao cliente no momento da compra. A licença pode ser rescindida por qualquer uma das partes a qualquer momento após a conclusão do contrato, no final do período de execução. Se não for encerrado antes do final do período de desempenho, será prorrogado por mais um ano. O aviso de rescisão deve ser feito por e-mail ou por escrito.\"), p(\"7.5. O alcance dos serviços é baseado na descrição do produto e também faz parte do contrato.\"), p(\"7.6. O valor da fatura deve ser pago sem deduções 14 dias após a data da fatura.\"), p(\"7.7. O cliente está em inadimplência se ele não fizer o pagamento em resposta a um lembrete enviado pelo provedor após a data de vencimento. Mesmo sem um lembrete, a inadimplência deve ocorrer no máximo 30 dias após a data de vencimento e o recebimento da fatura.\"), p(\"7.8. As escolas e instituições só podem permitir que professores ou pessoal pedagógico empregado por eles tenham acesso às funções de professor e administrador da Licença Escolar. A diretoria da escola só pode registrar escolas sob seu patrocínio para o uso de uma licença da diretoria escolar.\"), p(\"7.9. As escolas e instituições são obrigadas a fornecer informações verdadeiras sobre o número de alunos, professores e funcionários da escola e só podem permitir que os membros ativos tenham acesso à oferta de premium ou a partes dela.\"), p(\"7.10. O provedor tem o direito de bloquear temporariamente o acesso dos usuários à ANTON, no todo ou em parte, e de rescindir o contrato de licença escolar sem aviso prévio com efeito imediato se houver suspeita razoável de que os usuários não pertencem ao grupo de pessoas autorizadas a utilizar o serviço, ou que o serviço foi mal utilizado, utilizado para cometer atos ilegais ou em violação dos direitos de terceiros, ou foi utilizada em violação de contrato ou foi permitida a sua utilização por terceiros não autorizados a tomaram conhecimento dos dados de acesso, em particular a senha de um usuário administrador ou outros usuários, porque o cuidado necessário não foi observado no manuseio de tais dados, em particular os princípios reconhecidos de segurança de dados. O provedor somente exercerá este direito levando em conta os interesses legítimos do usuário e notificará a escola sobre o bloqueio, por escrito ou por e-mail.\"), p(\"7.11. As escolas podem marcar as contas de usuários que criaram, ou são responsáveis pela administração, para eliminação após um período de transição de 60 dias. Os usuários, e se necessário seus tutores legais, devem ser informados pelas escolas. Eles terão a oportunidade de transferir os dados armazenados na conta do usuário para uma nova conta dentro de 60 dias e de continuar a usá-los independentemente. Após este período, as contas de usuário serão automaticamente apagadas.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Acessibilidade da oferta, limitação da responsabilidade.\",\n      content: [p(\"8.1. O provedor utiliza tecnologias atuais e comumente utilizadas para seus serviços. Para poder utilizar ANTON em toda a sua extensão, os usuários também devem utilizar estas tecnologias (por exemplo, a tecnologia atual do navegador, websockets) ou permitir seu uso em seu computador ou dispositivo móvel (por exemplo, ativação do JavaScript). Se forem utilizadas tecnologias mais antigas ou tecnologias que não são de uso geral, o usuário só poderá utilizar ANTON de forma limitada.\"), p(\"8.2. Os serviços de Internet necessários para o uso da ANTON e os equipamentos necessários para este fim são de responsabilidade exclusiva do usuário e, quando aplicável, da escola, no que diz respeito aos custos incorridos, à disponibilidade e segurança da conexão de dados.\"), p(\"8.3. O prestador não garante expressamente que os serviços oferecidos sejam adequados para os fins específicos perseguidos pelo usuário individual.\"), p(\"8.4. Estão excluídos os pedidos de indenização por danos por parte de usuários e clientes. Estão excluídos os pedidos de indenização por danos resultantes de danos à vida, ao corpo ou à saúde ou do descumprimento de obrigações contratuais essenciais (obrigações cardinais), bem como a responsabilidade por outros danos baseados no descumprimento intencional ou por negligência grosseira das obrigações por parte do provedor, seus representantes legais ou agentes indiretos. As obrigações contratuais materiais são aquelas cujo cumprimento é necessário para atingir o objetivo do contrato. Uma \\\"obrigação cardinal\\\" ou \\\"obrigações contratuais essenciais\\\" são obrigações cujo cumprimento torna possível a boa execução do contrato em primeiro lugar e em cujo cumprimento a parte contratual depende e pode confiar regularmente. Em caso de perda de dados, o Fornecedor será responsável, no máximo, pelo esforço necessário para a reconstrução no caso de usuários e clientes fazerem uma cópia de segurança adequada dos dados.\"), p(\"8.5. Em caso de violação de obrigações contratuais materiais, o Fornecedor só será responsável pelos danos previsíveis típicos do contrato se tais danos forem causados por simples negligência, a menos que as reclamações de danos sejam baseadas em danos à vida, ao corpo ou à saúde.\"), p(\"8.6. As restrições dos parágrafos 8.4 e 8.5 também se aplicam a favor dos representantes legais e agentes indiretos do provedor, caso sejam apresentadas reclamações diretamente contra eles.\"), p(\"8.7. Disponibilidade: Os produtos on-line do provedor estão geralmente disponíveis 24 horas por dia. Entretanto, devido ao trabalho de serviço necessário no sistema de informação, pode haver períodos de indisponibilidade.\"), p(\"8.8. As interrupções no acesso à Internet e no tráfego de dados na Internet devido a eventos pelos quais o Provedor não é responsável e que tornam o acesso difícil ou impossível (por exemplo, devido à configuração de um firewall) não afetarão a reivindicação de remuneração por parte do Provedor. A responsabilidade do Provedor por indisponibilidade nos casos da seção 8.1 e seção 8.2 está excluída. O direito dos usuários e clientes à rescisão extraordinária permanece inalterado.\"), p(\"8.9. Qualquer outra responsabilidade por danos que não esteja prevista nas seções 8.4 e 8.5 está excluída, independentemente da natureza jurídica da reclamação reivindicada. Neste sentido, o Fornecedor não será responsável, em particular, por danos indiretos, tais como lucros cessantes e outras perdas financeiras dos usuários e clientes. As disposições obrigatórias da Lei de Responsabilidade pelo Produto permanecem inalteradas.\"), p(\"8.10. Os pedidos de reembolso de custos pelos usuários e clientes são limitados ao valor do interesse que eles têm na execução do contrato.\"), p(\"8.11. Os usuários e clientes indenizam o provedor por todas as reclamações apresentadas por outros usuários e clientes ou outros terceiros contra o provedor devido à violação de seus direitos pelo uso das ofertas do respectivo usuário ou cliente ou dos usuários admitidos pelo provedor. Neste contexto, o usuário ou cliente também assume os custos da defesa legal necessária do provedor, incluindo todos os honorários advocatícios e judiciais. Isto não se aplica se o usuário ou cliente não for responsável pela infração.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Indenização\",\n      content: [p(\"9.1. A oferta só pode ser utilizada de acordo com estes TCG. Em particular, os usuários não estão autorizados a fazer engenharia reversa, descompilar, desmontar, modificar ou desenvolver trabalhos derivados baseados na ANTON ou qualquer parte dela; para contornar qualquer medida de proteção utilizada pelo provedor ou seus licenciadores para proteger o conteúdo acessível através da ANTON; Copiar, armazenar, editar, desenvolver trabalhos derivados baseados em, ou modificar de qualquer forma, qualquer conteúdo disponibilizado através da ANTON; Alugar ou sublicenciar a conta de usuário; Compartilhar a conta de usuário com outros e/ou conceder a outros acesso aos serviços pagos da ANTON; Usar a ANTON de qualquer outra forma inadequada que viole estes Termos de Serviço.\"), p(\"9.2. Nos casos descritos na seção 9.1, bem como em todos os outros casos de mau uso, o usuário se compromete a manter o provedor inofensivo. Em qualquer caso, o provedor se reserva o direito de bloquear contas de usuários sem aviso prévio assim que houver indícios de mau uso ou abuso e o provedor tiver um interesse legítimo no bloqueio.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. Direitos de propriedade intelectual\",\n      content: [p(\"10.1. Todos os textos, imagens e outros conteúdos e obras protegidas por direitos autorais disponibilizados no âmbito da ANTON são protegidos por direitos autorais. Qualquer uso não previsto no contrato, em particular para fins comerciais ou operacionais, requer o consentimento prévio do provedor em forma de texto.\"), p(\"10.2. No caso de conteúdo que é expressamente disponibilizado através de uma licença Creative Commons, aplicam-se os termos da licença Creative Commons aplicáveis.\"), p(\"10.3. Qualquer uso de todas as marcas, desenhos e nomes comerciais utilizados pelo provedor no âmbito da oferta também requer o consentimento prévio por escrito do provedor.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"11. Conteúdo gerado pelo usuário.\",\n      content: [p(\"11.1. Se os próprios usuários gerarem conteúdo, por exemplo, criar uma lista de aprendizagem, criar uma imagem ou disponibilizar materiais via ANTON, eles são totalmente responsáveis pela natureza desse conteúdo e por qualquer dano resultante. Isto é verdade independentemente de o conteúdo em questão consistir de texto, gráficos, arquivos de áudio, software ou qualquer outro formato.\"), p(\"11.2. Os usuários só podem armazenar conteúdo em ANTON que seja adequado para o aprendizado e estudo. O provedor se reserva o direito de tomar medidas contra os usuários que violarem esta disposição. Tal ação pode incluir, mas não está limitada a, remoção do conteúdo em questão, encerramento das contas das pessoas envolvidas ou outra ação legal. Conteúdo proibido inclui, mas não está limitado a, conteúdo que viola os direitos do provedor ou de terceiros, é ofensivo ou de natureza comercial, ou viola as leis e regulamentos aplicáveis.\"), p(\"11.3. Quando os usuários criam ou carregam conteúdo ou outro material para a ANTON, eles concedem ao fornecedor uma licença mundial, perpétua e livre de royalties (com o direito de sublicenciar) para usar, copiar, reproduzir, processar, adaptar, modificar, publicar, transmitir, exibir e distribuir tal conteúdo ou material em ou através de todas as mídias ou métodos de distribuição (seja agora existente ou desenvolvida posteriormente). Usos adicionais pelo provedor ou outras empresas ou indivíduos agindo como afiliados do provedor são permitidos sem compensação aos usuários pelo conteúdo que eles enviam, postam ou de outra forma disponibilizam através do Serviço.\"), p(\"11.4. Ao disponibilizar conteúdo através da ANTON, os usuários representam e garantem que não estão infringindo os direitos de terceiros e que o conteúdo não contém ou instala malware ou material censurável.\"), p(\"11.5. O fornecedor não revisa nem pode revisar todo o material postado no serviço e, portanto, não pode ser responsável pelo conteúdo, uso ou efeitos desse material. A operação do serviço não significa ou implica que o fornecedor endossa o material lá postado, ou que ele acredita que tal material esteja livre de erros, útil ou não prejudicial.\"), p(\"11.6. O conteúdo gerado pelo usuário, como listas de aprendizagem, pode conter material potencialmente ofensivo, indecente ou de outra forma censurável, bem como conteúdo no qual podem ocorrer erros técnicos, factuais, ortográficos ou outros erros.\"), p(\"11.7. O Serviço pode conter material que viole ou infrinja a propriedade intelectual e outros direitos de propriedade de terceiros, ou onde o download, cópia ou uso possa estar sujeito a termos e condições adicionais escritos ou não escritos. O provedor se isenta de qualquer responsabilidade por qualquer dano resultante do uso do serviço pelos visitantes, ou de qualquer download feito por aqueles visitantes do conteúdo ali publicado. Se os usuários descobrirem conteúdo ou outros materiais que violem estes termos e condições, o website do provedor tem características que lhes permitem relatá-lo ao provedor.\"), p(\"11.8. O Provedor respeita a propriedade intelectual dos outros. Se você acredita que o material postado ou vinculado no site do ANTON ou em aplicativos móveis infringe seus direitos autorais, favor nos notificar. O provedor removerá, se necessário, o conteúdo ofensivo ou desativará todos os links para o conteúdo. Se um usuário cometer uma violação única ou repetida dos direitos autorais ou outros direitos de propriedade intelectual da ANTON ou de terceiros, o Provedor poderá, a seu critério exclusivo, terminar ou negar o acesso ou uso do Serviço. No caso de tal rescisão, o Provedor não será de forma alguma obrigado a reembolsar quaisquer valores pagos antecipadamente pelo usuário em questão.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"12. Disposições finais\",\n      content: [\n        p(\"12.1. A relação contratual entre o fornecedor e o usuário ou cliente está sujeita à lei alemã, na medida em que isso seja legalmente permitido. Se a lei do país em que o consumidor está domiciliado prevê uma maior proteção ao consumidor, esta não será afetada.\"), p(\"12.2. O fornecedor não participa de nenhum processo de resolução de disputas perante um conselho de arbitragem do consumidor, no sentido da Lei de Resolução de Disputas do Consumidor.\"), p(\"12.3. A Comissão Européia oferece uma plataforma para resolução extrajudicial de disputas on-line (plataforma ODR), que pode ser acessada em:\"), Div({\n          textDecoration: \"underline\",\n          marginBottom: \"1.2em\"\n        }).html(\"https://ec.europa.eu/consumers/odr\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://ec.europa.eu/consumers/odr/main/index.cfm?lng=ES\");\n        }).css({\n          marginBottom: \"1em\"\n        }), p(\"12.4. O contrato permanecerá obrigatório em suas partes restantes, mesmo que alguns pontos sejam legalmente inválidos. Os pontos inválidos devem ser substituídos pelas disposições estatutárias, se houver. Entretanto, na medida em que isso represente uma dificuldade indevida para uma das partes contratantes, o contrato como um todo ficará sem efeito.\"), p(\"12.5. O fornecedor se reserva o direito de alterar estes TCG por razões objetivas (por exemplo, devido a mudanças na situação legal ou na própria oferta do fornecedor, desenvolvimentos técnicos, etc.). Isto se aplica especialmente se novas ofertas do fornecedor exigirem novas regulamentações.\"), p(\"12.6. Os TCG alterados serão enviados ao usuário ou cliente antecipadamente por e-mail ou outro formulário adequado ou serão exibidos no website e nas aplicações móveis. Se o usuário não se opuser às TCG emendadas dentro de seis semanas, elas serão consideradas aceitas. Em caso de objeção, o Provedor poderá bloquear a conta do usuário, sendo que os pagamentos já efetuados serão reembolsados proporcionalmente ao prazo restante. O Provedor deverá se referir a essas conseqüências legais separadamente na mensagem com os TCG emendados.\")\n      ]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/androidBack/exitApp/exit.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/gui/confirmPopup/popup\")({\n      label: T(\"exitApp\"),\n      yesLabel: T(\"closeButton\"),\n      noLabel: T(\"cancelButton\"),\n      done: function(confirmed){\n        var ref$;\n        if (confirmed) {\n          return (ref$ = navigator.app) != null ? typeof ref$.exitApp == 'function' ? ref$.exitApp() : void 8 : void 8;\n        }\n      }\n    });\n  };\n})();","updated":"2024-03-18T16:16:23.648137"},{"path":"lib/init/classKit/levelPlayer/start/start.ls","text":"(function(){\n  return function(p){\n    var o, loadPlan, calcIdentifierPathAndContent, beginActivityAtPath;\n    if (typeof ClassKitPlugin == 'undefined' || ClassKitPlugin === null) {\n      return;\n    }\n    if (_.includes(p.level.path, \"learnList\")) {\n      return;\n    }\n    if (_.includes(p.level.path, \"mathPractice\")) {\n      return;\n    }\n    if (_.includes(p.level.path, \"assistantMath\")) {\n      return;\n    }\n    o = {\n      planDescription: inc(\"/data/content/calcPlanDescription/calc\")(p.level.path)\n    };\n    if (!o.planDescription.planPath) {\n      return;\n    }\n    loadPlan = function(){\n      return inc(\"/lib/util/loadPlan/load\")({\n        path: o.planDescription.planPath,\n        onError: function(){},\n        onLoaded: function(plan){\n          o.plan = plan;\n          return calcIdentifierPathAndContent();\n        }\n      });\n    };\n    calcIdentifierPathAndContent = function(){\n      inc(\"calcIdentifierPath/calc\")(p, o);\n      inc(\"calcContent/calc\")(p, o);\n      return beginActivityAtPath();\n    };\n    beginActivityAtPath = function(){\n      return inc(\"beginActivityPath/begin\")(o);\n    };\n    if (o.planDescription) {\n      return setTimeout(loadPlan);\n    }\n  };\n})();","updated":"2024-10-11T12:51:56.863777"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/update.ls","text":"(function(){\n  return function(pw){\n    var elements;\n    pw.page.updateLayout = function(){\n      return inc(\"update/update\")(pw);\n    };\n    elements = [pw.page, pw.top, pw.bottom, pw.navTop, pw.navBottom, pw.softKeyboardZone, pw.popupWrapper, pw.popupBottom];\n    return setTimeout(function(){\n      return pw.page.updateLayoutMode = window.ResizeObserver != null\n        ? (inc(\"onResizeObserver/on\")(pw, elements), \"resize\")\n        : window.MutationObserver != null ? (inc(\"onMutationObserver/on\")(pw, elements), \"mutation\") : void 8;\n    });\n  };\n})();","updated":"2024-03-18T16:16:23.648137"},{"path":"pages/schoolSearch/03_citySearch/_t.ls","text":"(function(){\n  return {\n    enterSearch: {\n      de: \"Gib deine Suche über die Tastatur ein.\",\n      en: \"Enter your search using the keyboard.\",\n      fr: \"Utilise le clavier pour ta recherche.\",\n      es: \"Usa el teclado para ingresar tu búsqueda.\",\n      pt: \"Digite sua busca utilizando o teclado.\"\n    },\n    noCityFoundWith: {\n      de: \"Es wurde keine Stadt mit \\\"$1\\\" gefunden. Bitte gib weitere Zeichen ein oder probiere den nächstgrößeren Ort aus.\",\n      en_gb: \"No town found matching \\\"$1\\\". Please try your nearest larger town.\",\n      en: \"No city found matching \\\"$1\\\". Please try your nearest larger city.\",\n      fr: \"Aucune ville correspondant à “$1” n'a été trouvée. Essaie la grande ville la plus proche.\",\n      es: \"No se encontró ninguna ciudad/localidad que corresponda a “$1”. Intenta ingresar una localidad cercana más grande.\",\n      pt: \"Não foi encontrada nenhuma cidade com \\\"$1\\\". Por favor, tente colocar a maior cidade mais próxima de você.\"\n    },\n    cantFindCity: {\n      de: \"Ich finde meinen Ort nicht\",\n      en_gb: \"I can't find my town\",\n      en: \"I can't find my city\",\n      fr: \"Je ne trouve pas ma ville\",\n      es: \"No encuentro mi localidad\",\n      pt: \"Não encontro minha cidade.\"\n    },\n    whichCity: {\n      de: \"In welchem Ort liegt deine Schule?\",\n      en_gb: \"Which town is your school in?\",\n      en: \"Which city is your school in?\",\n      fr: \"Dans quelle ville est ton école&nbsp;?\",\n      es: \"¿En qué ciudad o localidad está tu escuela?\",\n      pt: \"Em qual cidade está a sua escola?\"\n    }\n  };\n})();","updated":"2024-05-07T13:42:05.414932"},{"path":"lib/init/debugToggle/debugToggle.ls","text":"(function(){\n  return function(){\n    var showDebugPopup, showCodePopup, showRememberPopup;\n    showDebugPopup = function(remember){\n      if (remember) {\n        if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n          deviceLog['var'](\"debugToggleEnabled\", true);\n        }\n      }\n      return inc(\"popup/popup\")();\n    };\n    showCodePopup = function(){\n      if (typeof vibrate == 'function') {\n        vibrate(VIBRATION_TYPES.notificationSuccess);\n      }\n      if ((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"debugToggleEnabled\")) {\n        return showDebugPopup();\n      } else {\n        return inc(\"codePopup/codePopup\")(showRememberPopup);\n      }\n    };\n    showRememberPopup = function(){\n      return inc(\"rememberPopup/rememberPopup\")(showDebugPopup);\n    };\n    return window.document.body.gestureTapSequence({\n      tapSequence: \"....-\",\n      longPressTime: 2000,\n      maxDelay: 400,\n      onEnded: function(){\n        if (_.some([\"game/page\", \"level/play/page\"], function(v){\n          return _.endsWith(app.currentPagePath, v);\n        })) {\n          return;\n        }\n        if (app.currentPagePath === \"/../app01-settings/rows/about/page/page\") {\n          return showDebugPopup();\n        } else {\n          return showCodePopup();\n        }\n      }\n    });\n  };\n})();","updated":"2024-06-12T08:52:04.664155"},{"path":"lib/util/downloadContentFile/startJob/_shared/readFileContent/calcFileType/calc.ls","text":"(function(){\n  return function(fileId){\n    var t, fileType;\n    t = {\n      lsg: \"json\",\n      level: \"json\",\n      plan: \"json\",\n      image: \"base64\",\n      sound: \"base64\",\n      svg: \"text\",\n      list: \"json\",\n      block: \"json\",\n      topic: \"json\",\n      learnList: \"json\",\n      standard: \"json\",\n      packTree: \"json\",\n      pack: \"json\"\n    };\n    fileType = t[fileId.split(\"/\")[0]];\n    if (!fileType) {\n      debug(\"unknown filetype \" + fileId);\n      return undefined;\n    }\n    return fileType;\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/start/startUser/04_logStartEvents/sessionStart/log.ls","text":"(function(){\n  return function(loginType){\n    var i, e, ref$;\n    i = projects.info()[\"app01\"];\n    e = {\n      event: \"sessionStart\",\n      appBranch: i.branch,\n      appVersion: i.version,\n      appDate: (ref$ = i.versionDate) != null ? ref$.substr(0, 19).replace(\"T\", \" \") : void 8,\n      appType: inc(\"/lib/util/calcAppType/calc\")(),\n      isDebug: engine.isDebug,\n      loginType: loginType,\n      networkType: engine.networkConnection.type,\n      isOnline: engine.networkConnection.isOnline,\n      engineVersion: engine.clientVersion,\n      engineStartTime: typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.engineStartTime : void 8,\n      isReload: engine.isReload,\n      screenSize: screen.width + \"x\" + screen.height,\n      windowSize: window.innerWidth + \"x\" + window.innerHeight,\n      devicePixelRatio: window.devicePixelRatio\n    };\n    engine.isReload = false;\n    return log.log(e);\n  };\n})();","updated":"2024-02-26T08:52:30.313403"},{"path":"lib/init/setCssViewportAttributes/set.ls","text":"(function(){\n  return function(){\n    if (!(engine.isiOsApp || (typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.getCutoutInsets : void 8) != null)) {\n      return;\n    }\n    return document.querySelector(\"meta[name=viewport]\").setAttribute(\"content\", \"viewport-fit=cover, width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\");\n  };\n})();","updated":"2024-04-30T08:57:37.999736"},{"path":"pages/prestart/appOutdated/_t.ls","text":"(function(){\n  return {\n    restart: {\n      de: \"Neu starten\",\n      en: \"Restart\",\n      fr: \"Redémarrer\",\n      es: \"Reiniciar\",\n      pt: \"Reiniciar\"\n    },\n    restartOnlineText: {\n      de: \"<b>Achtung!</b><br><br>Starte deine ANTON-App bitte <u>online</u> neu, um sie weiter nutzen zu können.\",\n      en: \"<b>Attention!</b><br><br>To continue using ANTON, please restart the platform <u>online</u>.\",\n      fr: \"<b>Attention&nbsp;!</b><br><br>Pour continuer à utiliser ANTON, tu dois redémarrer l'application <u>en ligne</u>.\",\n      es: \"<b>¡Atención!</b><br><br>Para poder seguir usando ANTON reinicia la aplicación <u>en línea</u>.\",\n      pt: \"<b>Atenção!</b><br><br>Para continuar usando ANTON reinicie o aplicativo <u>online</u>.\"\n    },\n    notNow: {\n      de: \"Nicht jetzt\",\n      en: \"Not now\",\n      fr: \"Pas maintenant\",\n      es: \"En otro momento\",\n      pt: \"Agora não\"\n    },\n    restartOnlineText2: {\n      de: \"<b>Hinweis:</b><br><br>Du hast deine ANTON-App seit ((einem Tag | $1 Tagen)) nicht mehr online neu gestartet.<br><br>Bitte gehe <u>online</u> und starte die App neu.\",\n      en: \"<b>Note:</b><br><br>You have not restarted ANTON <u>online</u> for ((one day | $1 days)).<br><br>Please go <u>online</u> and restart the platform.\",\n      fr: \"<b>Note&nbsp;:</b><br><br>Ça fait ((un jour | $1 jours)) que tu n'as pas redémarré ton application ANTON <u>en ligne</u>.<br><br>Merci de passer <u>en ligne</u> et de redémarrer l'application.\",\n      es: \"<b>Nota:</b><br><br>Hace más de ((un día | $1 días)) que no reinicias ANTON <u>en línea</u>.<br><br>Por favor, <u>conéctate a internet</u> y reinicia la aplicación.\",\n      pt: \"<b>Nota:</b><br><br>Faz ((um dia | $1 dias)) que você não reinicia seu aplicativo ANTON online.<br><br>Por favor, <u>conecte-se à internet</u> e reinicie o aplicativo.\"\n    }\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/static/cancelDeletionDirAdmin/03b_password/_t.ls","text":"(function(){\n  return {\n    notNow: {\n      de: \"Jetzt nicht\",\n      en: \"Not now\",\n      fr: \"Pas maintenant\",\n      es: \"En otro momento\",\n      pt: \"Agora não\"\n    },\n    emptyPassword: {\n      de: \"Das Passwort darf nicht leer sein!\",\n      en: \"The password cannot be left blank!\",\n      fr: \"Le mot de passe ne peut pas rester vide.\",\n      es: \"La contraseña no puede quedar en blanco.\",\n      pt: \"A senha não pode ficar em branco.\"\n    },\n    errorMessage: {\n      de: \"Ups, etwas ist schief gegangen.\",\n      en: \"Oops, something has gone wrong.\",\n      fr: \"Oups… il y a eu un problème.\",\n      es: \"¡Ups! Algo no funcionó.\",\n      pt: \"Ops! Algo deu errado aqui.\"\n    },\n    errorInvalidLength: {\n      de: \"Das Passwort muss mindestens ((ein | $1)) Zeichen beinhalten.\",\n      en: \"The password must contain at least ((one character | $1 characters)).\",\n      fr: \"Le mot de passe doit contenir au moins ((un caractère | $1 caractères)).\",\n      es: \"La contraseña debe contener por lo menos ((un carácter | $1 caracteres)).\",\n      pt: \"A senha deve conter pelo menos ((um caractere | $1 caracteres)).\"\n    },\n    errorInvalidCharacter: {\n      de: \"Das Passwort enthält ein ungültiges Zeichen: '$1'\",\n      en: \"The password contains an invalid character: '$1'\",\n      fr: \"Le mot de passe contient un caractère non valide&nbsp;: “$1”\",\n      es: \"La contraseña contiene un carácter no válido: '$1'\",\n      pt: \"A senha deve conter um caractere válido: '$1'\"\n    },\n    inputPassword: {\n      de: \"Wie soll das Passwort für diese E-Mail-Adresse lauten?\",\n      en: \"What should be the password for this email address?\",\n      fr: \"Quel mot de passe veux-tu pour aller avec cette adresse e-mail&nbsp;?\",\n      es: \"¿Cuál quieres que sea la contraseña para este correo electrónico?\",\n      pt: \"Qual deve ser a senha para este endereço de e-mail?\"\n    },\n    password: {\n      de: \"Passwort\",\n      en: \"Password\",\n      fr: \"Mot de passe\",\n      es: \"Contraseña\",\n      pt: \"Senha\"\n    }\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"pages/start/startUser/07_extraPages/_t.ls","text":"(function(){\n  return {\n    confirmButton: {\n      de: \"Jetzt bestätigen\",\n      en: \"Confirm now\",\n      fr: \"Confirmer maintenant\",\n      es: \"Confirmar ahora\",\n      pt: \"Confirmar agora\"\n    },\n    changeButton: {\n      de: \"Ändern\",\n      en: \"Change\",\n      fr: \"Changer\",\n      es: \"Cambiar\",\n      pt: \"Modificar\"\n    },\n    notNowButton: {\n      de: \"Jetzt nicht\",\n      en: \"Not now\",\n      fr: \"Pas maintenant\",\n      es: \"En otro momento\",\n      pt: \"Agora não\"\n    },\n    confirmEmail: {\n      de: \"Hallo $1,<br>bitte bestätige deine E-Mail:\",\n      en: \"Hello $1,<br>please confirm your email:\",\n      fr: \"Bonjour $1,<br>merci de confirmer ton adresse e-mail&nbsp;:\",\n      es: \"¡Hola $1!<br>Por favor, confirma tu correo electrónico:\",\n      pt: \"Olá $1, <br>por favor, confirme seu endereço de e-mail:\"\n    },\n    emailConfirmed: {\n      de: \"Schön, deine E-Mail ist nun bestätigt!\",\n      en: \"Nice, your email is now confirmed!\",\n      fr: \"Parfait, ton adresse est confirmée&nbsp;!\",\n      es: \"¡Perfecto! Tu correo ha sido confirmado.\",\n      pt: \"Perfeito! Seu e-mail está confirmado!\"\n    },\n    confirmPhoneNumber: {\n      de: \"Hallo $1,<br>bitte bestätige deine Telefonnummer:\",\n      en_gb: \"Hello $1,<br>please confirm your mobile phone number:\",\n      en: \"Hello $1,<br>please confirm your cell phone number:\",\n      fr: \"Bonjour $1,<br>merci de confirmer ton numéro de téléphone&nbsp;:\",\n      es: \"¡Hola $1!<br>Por favor, confirma tu número de teléfono:\",\n      pt: \"Olá $1!<br>Por favor, confirme o número do seu celular:\"\n    },\n    phoneNumberConfirmed: {\n      de: \"Schön, deine Telefonnummer ist nun bestätigt!\",\n      en_gb: \"Nice, your mobile phone number is now confirmed!\",\n      en: \"Nice, your cell phone number is now confirmed!\",\n      fr: \"Parfait, ton numéro de téléphone est confirmé&nbsp;!\",\n      es: \"¡Perfecto! Tu número de teléfono has sido confirmado.\",\n      pt: \"Perfeito! Seu número de celular está confirmado!\"\n    }\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"data/school/calcSchoolDescriptions/calc.ls","text":"(function(){\n  return function(userLog){\n    var schoolCodes, schoolDescriptions, schoolCode;\n    userLog == null && (userLog = log);\n    schoolCodes = inc(\"../calcSchoolCodes/calc\")(userLog);\n    return schoolDescriptions = (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = schoolCodes).length; i$ < len$; ++i$) {\n        schoolCode = ref$[i$];\n        results$.push(inc(\"../calcSchoolDescription/calc\")(schoolCode, userLog));\n      }\n      return results$;\n    }());\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/_t.ls","text":"(function(){\n  return {\n    notNow: {\n      de: \"Jetzt nicht\",\n      en: \"Not now\",\n      fr: \"Pas maintenant\",\n      es: \"En otro momento\",\n      pt: \"Agora não\"\n    },\n    errorPassword: {\n      de: \"Das Passwort ist nicht korrekt.\",\n      en: \"The password is not correct.\",\n      fr: \"Le mot de passe n'est pas correct.\",\n      es: \"La contraseña es incorrecta.\",\n      pt: \"A senha não está correta.\"\n    },\n    saveEmailText: {\n      de: \"Hallo $1, als Schulverzeichnis-Lehrkraft hast du besondere Zugriffsrechte zu den Daten deiner Schüler/innen.\",\n      en_gb: \"Hello $1, as a school directory teacher you have special access to the data of your pupils.\",\n      en: \"Hello $1, as a school directory teacher you have special access to the data of your students.\",\n      fr: \"Bonjour $1, en tant que professeur·e du répertoire scolaire tu disposes de droits d'accès spéciaux aux données de tes élèves.\",\n      es: \"Hola $1, como docente del directorio escolar tienes acceso especial a los datos de tus estudiantes.\",\n      pt: \"Olá $1, como professor(a) do Diretório Escolar, você tem acesso especial aos dados de seus alunos.\"\n    },\n    saveEmailSubtext1: {\n      de: \"Bitte schütze dein ANTON-Nutzerkonto mit einem <b>Passwort</b> und aktiviere die Funktion <b>Anmelde-Code mit Passwort absichern</b>.\",\n      en: \"Please protect your ANTON account with a <b>password</b> and activate the feature <b>Secure login code with password</b>.\",\n      fr: \"Nous te demandons de protéger ton compte ANTON avec un <b>mot de passe</b> et d'activer la fonction <b>Sécuriser le code de connexion</b>.\",\n      es: \"Por favor, protege tu cuenta en ANTON con una <b>contraseña</b> y activa la función <b>Proteger clave de acceso con contraseña</b>\",\n      pt: \"Por favor, proteja sua conta ANTON com uma <b>senha</b> e ative a função <b>Proteger código de acesso com senha</b>.\"\n    },\n    saveEmailSubtext2: {\n      de: \"Aktiviere bitte die Funktion <b>Anmelde-Code mit Passwort absichern</b>.\",\n      en: \"Please activate the feature <b>Secure login code with password</b>.\",\n      fr: \"Merci d'activer la fonction <b>Sécuriser le code de connexion</b>.\",\n      es: \"Por favor, activa la función <b>Proteger clave de acceso con contraseña</b>. \",\n      pt: \"Por favor, ative a função <b>Proteger código de acesso com senha</b>.\"\n    },\n    saveEmailText2: {\n      de: \"Dadurch ist der Zugriff zu deinem Nutzerkonto nur noch zusammen mit deinem Passwort möglich und dein Nutzerkonto ist besser geschützt.\",\n      en: \"This step further protects your ANTON account as access can only be obtained with a password.\",\n      fr: \"L'accès à ton compte sera ainsi possible uniquement à l'aide de ton mot de passe et ton compte est mieux protégé.\",\n      es: \"De este modo el acceso a tu cuenta solo será posible tras ingresar tu contraseña y tu cuenta quedará mejor protegida. \",\n      pt: \"Desta forma, o acesso à sua conta só será possível após inserir sua senha e sua conta ficará mais protegida.\"\n    }\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"pages/level/afterFinish/pages/antonPlus/_t.ls","text":"(function(){\n  return {\n    moreAboutAntonPlus: {\n      de: \"Mehr zu ANTON-Plus\",\n      en: \"More about ANTON Plus\",\n      fr: \"En savoir plus sur ANTON-Plus\",\n      es: \"Más sobre ANTON-Plus\",\n      pt: \"Mais sobre ANTON-Plus\"\n    },\n    moreAboutAntonPlusFamily: {\n      de: \"Mehr zu ANTON-Plus Familie\",\n      en: \"More about ANTON Plus Family\",\n      fr: \"En savoir plus sur ANTON-Plus Famille\",\n      es: \"Más sobre ANTON-Plus Familia\",\n      pt: \"Mais sobre ANTON-Plus Família\"\n    },\n    notNow: {\n      de: \"Jetzt nicht\",\n      en: \"Not now\",\n      fr: \"Pas maintenant\",\n      es: \"En otro momento\",\n      pt: \"Agora não\"\n    }\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"pages/prestart/engineOutdated/_t.ls","text":"(function(){\n  return {\n    notNow: {\n      de: \"Nicht jetzt\",\n      en: \"Not now\",\n      fr: \"Pas maintenant\",\n      es: \"En otro momento\",\n      pt: \"Agora não\"\n    },\n    updateAppWarning: {\n      de: \"<b>Hinweis:</b><br><br>Deine ANTON-&#65279;App ist veraltet.<br>Bitte öffne den $1 und suche dort nach ANTON. Klicke dann auf <b><i>Aktualisieren</i></b>.<br><br>Dein Nutzerkonto bleibt in der aktualisierten App erhalten.\",\n      en: \"<b>Note:</b><br><br>Your ANTON-&#65279;App is out of date.<br>Please open the $1 and search for ANTON. Then click on <b><i>Update</i></b>.<br><br>Your account will appear in the updated app.\",\n      fr: \"<b>Note&nbsp;:</b><br><br>Ton application ANTON n'est plus à jour.<br>Pour l'actualiser, tu dois ouvrir $1 et chercher ANTON. Appuie ensuite sur <b><i>Mettre à jour</i></b>.<br><br>Ton compte reste le même dans la version actualisée.\",\n      es: \"<b>Nota:</b><br><br>Tu ANTON-&#65279;App no está actualizada.<br>Por favor, abre el $1 y busca ANTON. Después haz clic en <b><i>Actualizar</i></b>.<br><br>Tu cuenta permanecerá igual en la versión actualizada.\",\n      pt: \"<b>Nota:</b><br><br>Seu ANTON-&#65279;App está desatualizado.<br>Por favor, abra o $1 e pesquise por ANTON. Depois clique em <b><i>Atualizar</i></b>.<br><br>Sua conta permanecerá igual na versão actualizada.\"\n    },\n    updateAppForced: {\n      de: \"<b>Achtung!</b><br><br>Deine ANTON-&#65279;App ist veraltet und wird nicht mehr unterstützt.<br><br>Bitte öffne den $1 und suche dort nach ANTON. Klicke dann auf <i><b>Aktualisieren</b></i>.<br><br>Dein Nutzerkonto bleibt in der aktualisierten App erhalten.\",\n      en: \"<b>Attention!</b><br><br>Your ANTON-&#65279;App is out of date and no longer supported.<br><br>Please open the $1 and search for ANTON. Then click on <b><i>Update</i></b>.<br><br>You can keep your account in the updated app.\",\n      fr: \"<b>Attention&nbsp;!</b><br><br>Ton application ANTON n'est plus à jour et n'est plus prise en charge.<br><br>Pour l'actualiser, tu dois ouvrir $1 et chercher ANTON. Appuie ensuite sur <b><i>Mettre à jour</i></b>.<br><br>Ton compte reste le même dans la version actualisée.\",\n      es: \"<b>¡Atención!</b><br><br>Tu ANTON-&#65279;App no está al día y ya no tiene soporte.<br>Por favor, abre el $1 y busca ANTON. Después presiona <b><i>Actualizar</i></b>.<br><br>Tu cuenta permanecerá igual en la versión actualizada.\",\n      pt: \"<b>Atenção!</b><br><br>Seu ANTON-&#65279;App não está atualizado e não tem mais suporte.<br>Por favor, abra a $1 e pesquise por ANTON. Depois clique em <b><i>Atualizar</i></b>.<br><br>Sua conta permanecerá igual na versão actualizada. \"\n    },\n    playStore2: {\n      de: \"Play Store\",\n      en: \"Play Store\",\n      fr: \"le Play Store\",\n      es: \"Play Store\",\n      pt: \"Play Store\"\n    },\n    appStore2: {\n      de: \"App Store\",\n      en: \"App Store\",\n      fr: \"l'App Store\",\n      es: \"App Store\",\n      pt: \"App Store\"\n    },\n    appSupportWillEndText: {\n      de: \"<b>Hinweis:</b><br><br>Deine ANTON-&#65279;App ist veraltet und wird nur noch <i><b>(($1 Tag | $1 Tage))</b></i> unterstützt. Danach wirst du mit dieser App-Version nicht mehr lernen können.<br><br>Bitte öffne den $2 und suche dort nach ANTON. Klicke dann auf <b><i>Aktualisieren</i></b>.<br><br>Dein Nutzerkonto bleibt in der aktualisierten App erhalten.\",\n      en_gb: \"<b>Note:</b><br><br>Your ANTON-&#65279;App is out of date and will only be supported for the next <i><b>(($1 day | $1 days))</b></i>. After that you will not be able to learn with this app version any more.<br><br>Please open $2 and search for ANTON. Then click on <b><i>Update</i></b>.<br><br>You can keep your account in the updated app.\",\n      en: \"<b>Note:</b><br><br>Your ANTON-&#65279;App is out of date and will only be supported for the next <i><b>(($1 day | $1 days))</b></i>. After that you will not be able to learn with this app version anymore.<br><br>Please open $2 and search for ANTON. Then click on <b><i>Update</i></b>.<br><br>You can keep your account in the updated app.\",\n      fr: \"<b>Note&nbsp;:</b><br><br>Ton application ANTON n'est plus à jour et sera prise en charge encore <i><b>(($1 jour | $1 jours)) seulement</b></i>. Tu ne pourras ensuite plus apprendre avec cette version de l'application.<br><br>Pour l'actualiser, tu dois ouvrir $2 et chercher ANTON. Appuie ensuite sur <b><i>Mettre à jour</i></b>.<br><br>Ton compte reste le même dans la version actualisée.\",\n      es: \" <b>¡Atención!</b><br><br>Tu ANTON-&#65279;App no está al día y se quedará sin soporte en<i><b>(($1 día | $1 días))</b></i>. Después tendrás que actualizar ANTON para seguir aprendiendo. <br><br>Para actualizar, abre el $2 y busca ANTON. Después, presiona <b><i>Actualizar</i></b>.<br><br>Tu cuenta permanecerá igual en la versión actualizada.\",\n      pt: \"<b>Atenção!</b><br><br>Seu ANTON-&#65279;App não está atualizado e só receberá suporte por <i><b>(($1 dia | $1 dias))</b></i>. Depois disso, você não poderá mais utilizar o aplicativo com esta versão.<br><br>Para atualizar, abra o $2 e pesquise por ANTON.Depois, clique em <b><i>Atualizar</i></b>.<br><br>Sua conta permanecerá igual na versão actualizada. \"\n    }\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"pages/static/cancelDeletionDirAdmin/03_email/_t.ls","text":"(function(){\n  return {\n    emptyEmail: {\n      de: \"Die E-Mail darf nicht leer sein!\",\n      en: \"The email cannot be left blank!\",\n      fr: \"L'e-mail ne peut pas rester vide.\",\n      es: \"El correo electrónico no puede quedar vacío.\",\n      pt: \"O endereço de e-mail não pode ficar vazio.\"\n    },\n    errorMessage: {\n      de: \"Ups, hier ist etwas schief gelaufen.\",\n      en: \"Oops, something went wrong here.\",\n      fr: \"Oups… il y a eu un problème.\",\n      es: \"¡Ups! Algo no salió bien.\",\n      pt: \"Ops! Algo deu errado aqui.\"\n    },\n    invalidEmail: {\n      de: \"Diese E-Mail-Adresse ist ungültig.\",\n      en: \"This email address is invalid.\",\n      fr: \"Cette adresse e-mail n'est pas valide.\",\n      es: \"Esta dirección de correo no es válida.\",\n      pt: \"Este endereço de e-mail não é válido.\"\n    },\n    unavailableEmail: {\n      de: \"Diese E-Mail-Adresse ist bereits vergeben.\",\n      en: \"This email address has already been taken.\",\n      fr: \"Cette adresse e-mail est déjà prise.\",\n      es: \"Esta dirección de correo ya está en uso.\",\n      pt: \"Este endereço de e-mail já está sendo utilizado.\"\n    },\n    enterEmail: {\n      de: \"Damit du dein Konto stets wiederherstellen kannst, gib bitte deine E-&#65279;Mail-Adresse ein:\",\n      en: \"So that your account can always be recovered, please enter your email:\",\n      fr: \"Merci d'entrer ton adresse e-mail pour t'assurer de toujours pouvoir retrouver ton compte.\",\n      es: \"Por favor, ingresa tu correo electrónico para que eventualmente puedas restaurar tu cuenta.\",\n      pt: \"Por favor, digite seu endereço de e-mail para que você possa eventualmente restaurar sua conta.\"\n    },\n    save: {\n      de: \"Speichern\",\n      en: \"Save\",\n      fr: \"Enregistrer\",\n      es: \"Guardar\",\n      pt: \"Salvar\"\n    },\n    notNow: {\n      de: \"Nicht jetzt\",\n      en: \"Not now\",\n      fr: \"Pas maintenant\",\n      es: \"En otro momento\",\n      pt: \"Agora não\"\n    }\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"lib/util/previewIdeFilePath/startPage/checkContent/check.ls","text":"(function(){\n  return function(level, type){\n    var check, isLoaded, ref$;\n    check = function(){\n      var result, message;\n      result = inc(\"/../content-syntax-checker/check/check\")(null, level, type);\n      if (result != null && result.message) {\n        message = \"content syntax warning: \" + result.message;\n        if (result.prop) {\n          return debug(message, result.prop);\n        } else {\n          return debug(message);\n        }\n      }\n    };\n    isLoaded = (ref$ = projects.info()[\"content-syntax-checker\"]) != null ? ref$.isLoaded : void 8;\n    if (!isLoaded) {\n      return inc(\"/lib/util/loadProject/load\")(\"content-syntax-checker\", check);\n    } else {\n      return check();\n    }\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"pages/static/cancelDeletionDirAdmin/04_cancelDeletion/_t.ls","text":"(function(){\n  return {\n    notNow: {\n      de: \"Jetzt nicht\",\n      en: \"Not now\",\n      fr: \"Pas maintenant\",\n      es: \"En otro momento\",\n      pt: \"Agora não\"\n    },\n    emptyPassword: {\n      de: \"Das Passwort darf nicht leer sein!\",\n      en: \"The password cannot be left blank!\",\n      fr: \"Le mot de passe ne peut pas rester vide.\",\n      es: \"La contraseña no puede quedar en blanco.\",\n      pt: \"A senha não pode ficar em branco.\"\n    },\n    errorMessage: {\n      de: \"Ups, etwas ist schief gegangen.\",\n      en: \"Oops, something has gone wrong.\",\n      fr: \"Oups… il y a eu une erreur.\",\n      es: \"¡Ups! Algo salió mal.\",\n      pt: \"Ops! Algo deu errado aqui.\"\n    },\n    errorInvalidLength: {\n      de: \"Das Passwort muss mindestens ((ein | $1)) Zeichen beinhalten.\",\n      en: \"The password must contain at least ((one character | $1 characters)).\",\n      fr: \"Le mot de passe doit contenir au moins ((un caractère | $1 caractères)).\",\n      es: \"La contraseña debe de contener por lo menos ((un carácter | $1 caracteres)).\",\n      pt: \"A senha deve conter pelo menos ((um caractere | $1 caracteres)).\"\n    },\n    errorInvalidCharacter: {\n      de: \"Das Passwort enthält ein ungültiges Zeichen: '$1'\",\n      en: \"The password contains an invalid character: '$1'\",\n      fr: \"Le mot de passe contient un caractère non valide&nbsp;: “$1”\",\n      es: \"La contraseña contiene un carácter no válido: '$1'\",\n      pt: \"A senha contém um caractere inválido: '$1'\"\n    },\n    inputPassword: {\n      de: \"Wie soll das Passwort für diese E-Mail-Adresse lauten?\",\n      en: \"What should be the password for this email address?\",\n      fr: \"Quel mot de passe veux-tu pour aller avec cette adresse e-mail&nbsp;?\",\n      es: \"¿Qué contraseña quieres que se le asigne a este correo electrónico?\",\n      pt: \"Qual deve ser a senha para este endereço de e-mail?\"\n    },\n    password: {\n      de: \"Passwort\",\n      en: \"Password\",\n      fr: \"Mot de passe\",\n      es: \"Contraseña\",\n      pt: \"Senha\"\n    },\n    exportAndDeleteNow: {\n      de: \"Klicke auf <b>Fertig</b>, um den Prozess jetzt abzuschließen und die Löschung abzubrechen.\",\n      en: \"Click on <b>Done</b> to finish the process and cancel the deletion.\",\n      fr: \"Appuie sur <b>Fini</b> pour terminer le processus et annuler la suppression.\",\n      es: \"Presiona <b>Listo</b> para terminar el proceso y cancelar la eliminación.\",\n      pt: \"Clique em <b>Pronto</b> para terminar o processo e cancelar sua exclusão.\"\n    },\n    yesComplete: {\n      de: \"Fertig\",\n      en: \"Done\",\n      fr: \"Fini\",\n      es: \"Listo\",\n      pt: \"Pronto\"\n    }\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"addons/topbarLevel/calculator/calculator/label/lastResultDiv/div.ls","text":"(function(){\n  return function(o){\n    var update, div;\n    update = function(){\n      if (!o.lastResult) {\n        div.empty();\n        return div.hide();\n      } else {\n        return div.html(MathDiv2({\n          value: o.lastResult.label,\n          enabled: false,\n          showDigit3Space: false,\n          color: Color.grey[600]\n        })).show();\n      }\n    };\n    div = Div().css({\n      display: \"inline-block\",\n      color: Color.grey[600],\n      marginLeft: \"0.6em\",\n      marginRight: \"-0.2em\",\n      maxWidth: \"8em\",\n      overflowX: \"hidden\",\n      textOverflow: \"ellipsis\"\n    }).hide();\n    div.update = update;\n    return div;\n  };\n})();","updated":"2024-03-04T13:42:01.989814"},{"path":"lib/svg/icon/paste.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\n  <path d=\"M128 184c0-31 25-56 56-56h136V56c0-13-11-24-24-24h-81a64 64 0 0 0-110 0H24C11 32 0 43 0 56v336c0 13 11 24 24 24h104V184zm32-144a24 24 0 1 1 0 48 24 24 0 0 1 0-48zm184 248h104v200c0 13-11 24-24 24H184c-13 0-24-11-24-24V184c0-13 11-24 24-24h136v104c0 13 11 24 24 24zm104-38v6h-96v-96h6a24 24 0 0 1 17 7l66 66a24 24 0 0 1 7 17z\"/>\n</svg>","updated":"2024-03-04T13:42:01.989814"},{"path":"pages/content/plan/_topbar/menu/menu.ls","text":"(function(){\n  return function(type){\n    var open, onClose, onOpen;\n    open = function(){\n      return inc(\"/lib/gui/drawerMenu/menu\")({\n        items: inc(\"items/items\")(),\n        context: \"plan\",\n        width: \"15.5em\",\n        onClose: onClose,\n        onOpen: onOpen,\n        header: inc(\"headerWithSearch/header\")\n      });\n    };\n    onClose = function(){\n      var ref$;\n      return (ref$ = body.findFirst(\".searchInput\")) != null ? ref$.stop() : void 8;\n    };\n    onOpen = function(){\n      var that, resultDiv, menuSearch;\n      if (that = app.currentPage.params.searchQuery) {\n        resultDiv = body.findFirst(\".menuSearchResult\");\n        resultDiv.spinner = inc(\"/lib/gui/spinnerDivOverlay/overlay\")(resultDiv);\n        menuSearch = body.findFirst(\".menuSearch\");\n        if (menuSearch != null) {\n          menuSearch.showSearch();\n        }\n        return menuSearch != null ? menuSearch.search(that) : void 8;\n      }\n    };\n    if (inc(\"/data/user/isPreschoolFocusMode/is\")()) {\n      return inc(\"/lib/gui/parentalGatePreschool/parentalGate\")(open);\n    } else {\n      return open();\n    }\n  };\n})();","updated":"2024-03-05T09:00:47.725362"},{"path":"addons/navbar/bar/user/user/items/itemSettings/item.ls","text":"(function(){\n  return function(parentalGate){\n    return {\n      label: T(\"settings\"),\n      selected: false,\n      icon: path(\"/lib/svg/shape/gear.svg\"),\n      badge: inc(\"badge/badge\"),\n      click: function(){\n        var f;\n        f = function(){\n          return startPage({\n            path: path(\"/../app01-settings/page\"),\n            animation: \"slideUp\"\n          });\n        };\n        if (!parentalGate) {\n          return f();\n        } else {\n          return inc(\"/lib/gui/parentalGatePreschool/parentalGate\")(f);\n        }\n      }\n    };\n  };\n})();","updated":"2024-03-05T09:00:47.725362"},{"path":"lib/gui/parentalGatePreschool/parentalGate.ls","text":"(function(){\n  return function(onDone, onFail){\n    var n1, n2, sum;\n    n1 = _.random(20, 50);\n    n2 = _.random(20, 50);\n    sum = n1 + n2;\n    return inc(\"/lib/gui/promptPopup/popup\")({\n      label: T(\"label\", n1, n2),\n      labelConfirm: T(\"continueButton\"),\n      done: function(v){\n        var result;\n        result = {\n          inputValue: v,\n          challenge: n1 + \"+\" + n2 + \"=\" + sum\n        };\n        if (+v === sum) {\n          return onDone(result);\n        } else {\n          return typeof onFail == 'function' ? onFail(result) : void 8;\n        }\n      }\n    });\n  };\n})();","updated":"2024-03-05T09:00:47.725362"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/notFound/contentFeedbackButton/popupDone/popup.ls","text":"(function(){\n  return function(){\n    var tap, div, popup;\n    tap = function(){\n      return popup.close();\n    };\n    div = Div({\n      width: \"18em\",\n      margin: \"1em 0\"\n    }).append(Div().css({\n      paddingBottom: \"0.8em\"\n    }).html(T(\"thanksForReporting\")), Button(T(\"ok\")).css({\n      minWidth: \"8em\"\n    }).tap(tap));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      animationOnShow: false\n    });\n  };\n})();","updated":"2024-03-05T09:00:47.725362"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/02_page_setLoginCodeNeedsPassword/submit/submit.ls","text":"(function(){\n  return function(page){\n    var spinner, showSpinner, hideSpinner, onOffline, onError, checkPassword, submit;\n    showSpinner = function(){\n      return spinner = inc(\"/lib/gui/spinnerDivOverlay/overlay\")(page.buttonActivate);\n    };\n    hideSpinner = function(){\n      return spinner != null ? spinner.stop() : void 8;\n    };\n    onOffline = function(){\n      page.buttons.css({\n        pointerEvents: \"\"\n      });\n      hideSpinner();\n      return inc(\"/lib/offline/offlinePopup/popup\")();\n    };\n    onError = function(error){\n      var status, label;\n      page.buttons.css({\n        pointerEvents: \"\"\n      });\n      hideSpinner();\n      status = error.status;\n      label = status === \"error_wrongPassword\"\n        ? T(\"errorPassword\")\n        : status === \"error_emptyPassword\"\n          ? T(\"emptyPassword\")\n          : status === \"error_captcha_failed\" ? T(\"errorCaptchaFailed\") : void 8;\n      return inc(\"/lib/gui/errorPopup/popup\")({\n        label: label\n      });\n    };\n    checkPassword = function(){\n      page.buttons.css({\n        pointerEvents: \"none\"\n      });\n      return inc(\"/lib/gui/confirmPasswordPopup/popup\")({\n        label: T(\"enterPassword\"),\n        onDone: function(isCorrect, password){\n          if (!isCorrect) {\n            return onError({\n              status: \"error_wrongPassword\"\n            });\n          } else {\n            return submit(password);\n          }\n        },\n        onOffline: onOffline,\n        onError: onError,\n        onAborted: function(){\n          return page.buttons.css({\n            pointerEvents: \"\"\n          });\n        }\n      });\n    };\n    submit = function(password){\n      showSpinner();\n      return inc(\"/lib/util/pllsCall/call\")({\n        path: path(\"/../server-apis-db2/apis/user/setLoginCodeNeedsPassword/set\"),\n        params: {\n          logId: log.id(),\n          password: password,\n          value: true\n        },\n        requiredVisibleDiv: page,\n        onCompleted: function(){\n          return log.sync(function(){\n            return startPage({\n              path: path(\"../../03_done/page\"),\n              history: 0\n            });\n          });\n        },\n        onError: onError,\n        onOffline: onOffline\n      });\n    };\n    return checkPassword();\n  };\n})();","updated":"2024-03-05T09:00:47.725362"},{"path":"pages/start/startUser/07_extraPages/calcShowDirTeacherDirCanceledWarning/calcIsDirCanceled/calc.ls","text":"(function(){\n  return function(dirSds, onDone){\n    var schoolsDone, schoolsTotal, canceledSchoolsInfos, now, inThreeMonths, calcDetails, calcDone, i$, len$, s, results$ = [];\n    schoolsDone = 0;\n    schoolsTotal = dirSds.length;\n    canceledSchoolsInfos = [];\n    now = new Date();\n    inThreeMonths = new Date();\n    inThreeMonths.setMonth(inThreeMonths.getMonth() + 3);\n    calcDetails = function(schoolCode){\n      return inc(\"/lib/util/pllsCall/call\")({\n        path: path(\"/../server-apis-db2/apis/school/admin/subscriptionDetails/get\"),\n        params: {\n          schoolCode: schoolCode\n        },\n        onError: function(error){\n          return calcDone({\n            status: \"error\",\n            error: error\n          });\n        },\n        onOffline: function(){\n          return calcDone({\n            status: \"offline\"\n          });\n        },\n        onCompleted: function(result){\n          return calcDone(result);\n        }\n      });\n    };\n    calcDone = function(result){\n      var sub, ref$;\n      if (result.status !== \"ok\") {\n        debug(result);\n      } else if (!result.subscription) {\n        debug(\"missing subscription, aborting showDirTeacherDirCanceledWarning\");\n      } else {\n        sub = result.subscription;\n        if (!sub.autoRenew && (now < (ref$ = new Date(sub.validUntil)) && ref$ < inThreeMonths)) {\n          canceledSchoolsInfos.push({\n            schoolCode: result.schoolCode,\n            validUntil: sub.validUntil\n          });\n        }\n      }\n      schoolsDone++;\n      if (schoolsDone === schoolsTotal) {\n        return onDone(canceledSchoolsInfos);\n      }\n    };\n    for (i$ = 0, len$ = dirSds.length; i$ < len$; ++i$) {\n      s = dirSds[i$];\n      results$.push(calcDetails(s.schoolCode));\n    }\n    return results$;\n  };\n})();","updated":"2024-03-05T09:00:47.725362"},{"path":"lib/gui/multiform/fields/field/input/showKeyboardBottom/big/screenKeyboard/keyboard.ls","text":"(function(){\n  return function(input, sk){\n    var onKey, k;\n    onKey = function(k){\n      var ref$;\n      if (!((ref$ = input.divEditable) != null && ref$.d.isStarted)) {\n        return;\n      }\n      if (k === \"back\") {\n        input.divEditable.keyBack();\n        return;\n      }\n      if (k === \"submit\" || k === \"newline\") {\n        k = \"\\n\";\n      }\n      return input.divEditable.insertAtCursor(k);\n    };\n    k = inc(\"/lib/gui/screenKeyboard/keyboard\")({\n      onKey: onKey,\n      layout: sk.layout,\n      shiftStatus: sk.shiftStatus,\n      showNewLine: false,\n      showSubmit: true,\n      newDesign: true\n    }).css({\n      maxWidth: \"60em\",\n      margin: \"0 auto\"\n    });\n    k.start();\n    return k;\n  };\n})();","updated":"2024-03-05T09:00:47.725362"},{"path":"pages/content/plan/_topbar/params/paramsLearnTabBeta.ls","text":"(function(){\n  return function(page){\n    var params, ref$, ref1$, lastPagePath;\n    params = {\n      download: true,\n      title: engine.isBotMode\n        ? T(\"lessons\") + ((ref$ = page.planDescription) != null ? ref$.displayName : void 8)\n        : (ref1$ = page.planDescription) != null ? ref1$.displayName : void 8\n    };\n    if (engine.isBotMode) {\n      return params;\n    }\n    params.back = true;\n    lastPagePath = app.pageHistory[app.pageHistory.length - 2].path;\n    if (_.endsWith(lastPagePath, \"learn/page\")) {\n      params.backLabel = SvgIcon({\n        svg: path(\"/lib/svg/shape/home.svg\"),\n        color: Color.grey[650],\n        size: \"0.9em\"\n      }).css({\n        padding: \"0.6em 0 0.4em\"\n      });\n    } else if (_.endsWith(lastPagePath, \"subjects/page\")) {\n      params.backLabel = \"Übungen nach Schulfach\";\n    } else if (_.endsWith(lastPagePath, \"grades/page\")) {\n      params.backLabel = \"Übungen nach Klassenstufe\";\n    }\n    return params;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/idle/idle.ls","text":"(function(){\n  return function(){\n    var o, i$, ref$, len$, e;\n    o = {};\n    app.idle = o;\n    o.timeoutSecs = 60 * 10;\n    o.interval = null;\n    o.overlay = null;\n    o.lastActivityAt = new Date();\n    o.endedAt = null;\n    o.logSessionEnd = inc(\"logSessionEnd/log\")(o);\n    o.logSessionStart = inc(\"logSessionStart/log\")(o);\n    o.createInterval = inc(\"createInterval/createInterval\")(o);\n    o.onActivity = inc(\"onActivity/onActivity\")(o);\n    o.onTimeout = inc(\"onTimeout/onTimeout\")(o);\n    o.onSuspend = inc(\"onSuspend/onSuspend\")(o);\n    o.onResume = inc(\"onResume/onResume\")(o);\n    o.showOverlay = inc(\"showOverlay/show\")(o);\n    o.onDebugRefresh = inc(\"onDebugRefresh/refresh\")(o);\n    for (i$ = 0, len$ = (ref$ = [\"touchstart\", \"mousedown\", \"keydown\", \"wheel\"]).length; i$ < len$; ++i$) {\n      e = ref$[i$];\n      body.addEventListener(e, o.onActivity, true);\n    }\n    if (engine.isMobileApp) {\n      document.addEventListener(\"pause\", o.onSuspend);\n      document.addEventListener(\"resume\", o.onResume);\n    } else {\n      window.addEventListener(\"blur\", o.onSuspend);\n      window.addEventListener(\"focus\", o.onResume);\n    }\n    return o.createInterval();\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"pages/prestart/appOutdated/appOutdated.ls","text":"(function(){\n  return function(){\n    var pv, downloadedAt, age, day, warningAge, stopAge, appVersionDate;\n    pv = projects.projectVersions;\n    downloadedAt = (pv != null ? pv.downloadetAt : void 8) || (pv != null ? pv.downloadedAt : void 8);\n    if (!downloadedAt || !engine.isMobileApp) {\n      return false;\n    }\n    age = new Date() - downloadedAt;\n    day = 1000 * 60 * 60 * 24;\n    warningAge = day * 23;\n    stopAge = day * 30;\n    appVersionDate = projects.info()[\"app01\"].versionDate;\n    if (age > stopAge) {\n      deviceLog.log({\n        event: \"deviceDebugStopOutdatedApp\",\n        age: age,\n        appVersionDate: appVersionDate,\n        projectVersionDownloadedAt: downloadedAt\n      });\n      startPage({\n        path: path(\"stop/page\")\n      });\n      return true;\n    } else if (age > warningAge) {\n      deviceLog.log({\n        event: \"deviceDebugWarningOutdatedApp\",\n        age: age,\n        appVersionDate: appVersionDate,\n        projectVersionDownloadedAt: downloadedAt\n      });\n      startPage({\n        path: path(\"warning/page\"),\n        params: {\n          age: age\n        }\n      });\n      return true;\n    } else {\n      return false;\n    }\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"lib/util/fontSize/calcFontScale/calc.ls","text":"(function(){\n  return function(){\n    var e, ref$;\n    e = typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog.findLast({\n      event: \"deviceSetFontScale\"\n    }) : void 8;\n    return (ref$ = e != null ? e.value : void 8) != null ? ref$ : 1;\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"lib/util/loadLevel/calcEtagAndFileId/calc.ls","text":"(function(){\n  return function(p){\n    var loadPlan, findLevelInPlan, etag, fileId;\n    loadPlan = function(){\n      return inc(\"/lib/util/loadPlan/load\")({\n        path: \"/../\" + p.project + \"/plan\",\n        onLoaded: findLevelInPlan,\n        onError: p.onError\n      });\n    };\n    findLevelInPlan = function(plan){\n      var i$, ref$, len$, topic, j$, ref1$, len1$, block, k$, ref2$, len2$, level, etag, fileId;\n      for (i$ = 0, len$ = (ref$ = plan.topics).length; i$ < len$; ++i$) {\n        topic = ref$[i$];\n        for (j$ = 0, len1$ = (ref1$ = topic.blocks).length; j$ < len1$; ++j$) {\n          block = ref1$[j$];\n          for (k$ = 0, len2$ = (ref2$ = block.levels).length; k$ < len2$; ++k$) {\n            level = ref2$[k$];\n            if ((level.path === p.levelPath || level.puid === p.levelPuid) && level.etag != null) {\n              etag = level.etag;\n              fileId = \"level/\" + level.path.substr(4);\n              p.onDone(etag, fileId);\n              break;\n            }\n          }\n        }\n      }\n      if (!etag) {\n        return p.onError({\n          error: \"no_etag_found\"\n        });\n      }\n    };\n    if (deviceLog['var'](\"loadDevelopContent\") && p.levelPath) {\n      etag = \"latest\";\n      fileId = \"level/\" + p.levelPath.substr(4);\n      return p.onDone(etag, fileId);\n    } else {\n      return loadPlan();\n    }\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"addons/navbar/bar/user/user.ls","text":"(function(){\n  return function(barDiv){\n    if (engine.isBotMode) {\n      return inc(\"dummy/tab\")();\n    } else {\n      return inc(\"user/tab\")(barDiv);\n    }\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"lib/util/downloadContentFile/startJob/_shared/download/download.ls","text":"(function(){\n  var isOldEngine;\n  isOldEngine = inc(\"/lib/util/compareVersionString/compare\")(engine.clientVersion, \"1.4\") === -1;\n  return function(p){\n    if (engine.simulateOffline) {\n      return p.onError(\"offline\");\n    } else if (engine.simulateError) {\n      return p.onError(\"error\");\n    } else if (!engine.isMobileApp) {\n      return inc(\"web/download\")(p);\n    } else if (isOldEngine) {\n      return inc(\"mobileFallback/download\")(p);\n    } else if (engine.isiOsApp) {\n      return inc(\"ios/download\")(p);\n    } else if (engine.isAndroidApp) {\n      return inc(\"android/download\")(p);\n    }\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"lib/init/vanillaSpinner/spinner.ls","text":"(function(){\n  return function(){\n    var animationId, style, ref$, div, s, container, logo, spinner;\n    animationId = \"rotate\";\n    style = document.createElement(\"style\");\n    style.innerHTML = '@keyframes rotate {\\n  to {\\n    transform: rotate(360deg);\\n  }\\n}';\n    style.setAttribute(\"id\", animationId);\n    if ((ref$ = document.getElementById(animationId)) != null) {\n      ref$.remove();\n    }\n    document.head.appendChild(style);\n    div = document.createElement(\"div\");\n    div.setAttribute(\"id\", \"vanillaSpinner\");\n    s = div.style;\n    s.position = \"absolute\";\n    s.display = \"flex\";\n    s.left = 0;\n    s.right = 0;\n    s.top = 0;\n    s.bottom = 0;\n    document.body.appendChild(div);\n    container = document.createElement(\"div\");\n    s = container.style;\n    s.display = \"flex\";\n    s.flexDirection = \"column\";\n    s.fontFamily = \"verdana\";\n    div.appendChild(container);\n    logo = document.createElement(\"div\");\n    logo.innerHTML = inc(\"/lib/svg/logo/anton-logo-vertical.svg\");\n    s = logo.firstChild.style;\n    s.width = \"200px\";\n    s.height = \"37px\";\n    container.appendChild(logo);\n    spinner = document.createElement(\"div\");\n    spinner.innerHTML = inc(\"/lib/svg/icon/spinner.svg\");\n    s = spinner.firstChild.style;\n    s.width = \"25px\";\n    s.height = \"25px\";\n    s.animation = \"rotate 2s linear infinite\";\n    s = spinner.style;\n    s.marginTop = \"20px\";\n    return container.appendChild(spinner);\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"lib/util/downloadContentFile/startJob/_shared/calcUrl/server/server.ls","text":"(function(){\n  return function(job){\n    if (job.fileApi === \"filesCalcDevelop\" && job.etag !== \"any\") {\n      return \"https://apis-content.solocode.com\";\n    } else if (job.fileApi === \"filesCalcMaster\") {\n      return \"https://apis-content.solocode.com\";\n    } else if ((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"useApisDbDebug\")) {\n      return \"https://apis-content-debug.solocode.com\";\n    } else {\n      if (engine.isDebug) {\n        return \"https://content-2.anton.app\";\n      } else {\n        return app.contentServer;\n      }\n    }\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"pages/level/play/checkMedia/check.ls","text":"(function(){\n  return function(page, onDone){\n    if (engine.isMobileApp && !deviceLog['var'](\"loadDevelopContent\") && !inc(\"/lib/util/isOnline/isOnline\")()) {\n      return inc(\"checkMediaFilesOfflineAvailable/check\")({\n        level: page.level,\n        onOk: onDone,\n        onOffline: function(details){\n          return page.showOffline({\n            reason: \"offline-checkMediaFilesOfflineAvailable\",\n            reasonDetails: details\n          });\n        }\n      });\n    } else {\n      return onDone();\n    }\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"lib/init/lazyLoadPlansList/load.ls","text":"(function(){\n  return function(){\n    if (engine.isMobileApp) {\n      return inc(\"/lib/util/loadPlansAll/load\")({\n        onLoaded: function(){},\n        onError: function(){}\n      });\n    } else if (!engine.isBotMode) {\n      return inc(\"/lib/util/loadPlansList/load\")({\n        onLoaded: function(){},\n        onError: function(){}\n      });\n    }\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"lib/util/fontSize/calcDefaultFontSize/calc.ls","text":"(function(){\n  return function(){\n    var isDesktop, h, fontSize, ref$;\n    isDesktop = inc(\"/lib/util/isDesktop/isDesktop\")();\n    h = window.innerHeight;\n    if (!isDesktop) {\n      h = Math.max(h, window.innerWidth);\n    }\n    fontSize = h <= 480\n      ? 16\n      : h <= 568\n        ? 17\n        : h <= 771\n          ? 18\n          : h <= 1024\n            ? 19\n            : h <= 1200 ? 20 : 21;\n    if (isDesktop && fontSize > 19) {\n      fontSize = 19;\n    }\n    return fontSize = fontSize / ((ref$ = document.body.bodyScale) != null ? ref$ : 1);\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"lib/util/fontSize/setFontSize/updateAppTextZoom/update.ls","text":"(function(){\n  return function(fontSize, onDone){\n    if (window.MobileAccessibility == null) {\n      onDone(fontSize);\n      return;\n    }\n    return MobileAccessibility.updateTextZoom(function(z){\n      app.lastUpdateTextZoomValue = z;\n      MobileAccessibility.setTextZoom(100);\n      z = Math.min(144, z);\n      fontSize *= z / 100;\n      return onDone(fontSize);\n    });\n  };\n})();","updated":"2024-03-05T16:15:28.79771"},{"path":"pages/games/03_gameLoading/page.ls","text":"(function(){\n  return function(page){\n    var project;\n    page.gameDescription = inc(\"../00_shared/gameDescriptions/descriptions/\" + page.params.game + \"/\" + page.params.game)();\n    page.isCancelled = false;\n    project = page.gameDescription.project;\n    return {\n      navCategory: \"games\",\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"../00_shared/_urlDescription/description\")();\n      },\n      finish: function(){\n        return page.isCancelled = true;\n      },\n      start: function(){\n        var load, loadCustom, startGame, unload;\n        load = function(){\n          return inc(\"/lib/util/loadProjectSync/load\")(page, project, loadCustom);\n        };\n        loadCustom = function(){\n          var loadFunction;\n          loadFunction = inc(path(\"/../\" + project + \"/load\"), {\n            silentError: true\n          });\n          if (page.isCancelled) {\n            return unload();\n          } else if (_.isFunction(loadFunction)) {\n            return loadFunction(startGame);\n          } else {\n            return startGame(true);\n          }\n        };\n        startGame = function(done){\n          if (page.isCancelled) {\n            return unload();\n          } else if (done) {\n            return inc(\"startGame/startGame\")(page);\n          } else {\n            return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n          }\n        };\n        unload = function(){\n          if (page.params.game === app.currentPage.params.game) {\n            return;\n          }\n          return typeof projects.unload == 'function' ? projects.unload(project) : void 8;\n        };\n        page.html(inc(\"text/text\")(), inc(\"/lib/gui/spinner/spinner\")());\n        return load();\n      }\n    };\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/init/setFontSize/set.ls","text":"(function(){\n  return function(){\n    var setFontSize;\n    setFontSize = inc(\"/lib/util/fontSize/setFontSize/set\");\n    if (inc(\"/lib/util/isDesktop/isDesktop\")()) {\n      try {\n        window.removeEventListener(\"resize\", window.setAppFontSize);\n      } catch (e$) {}\n      window.addEventListener(\"resize\", setFontSize);\n    } else {\n      try {\n        document.removeEventListener(\"resume\", window.setAppFontSize, false);\n      } catch (e$) {}\n      document.addEventListener(\"resume\", setFontSize, false);\n    }\n    window.setAppFontSize = setFontSize;\n    return setFontSize();\n  };\n})();","updated":"2024-03-06T11:58:41.969268"},{"path":"pages/start/login/01_step1/submitQRCode/submit.ls","text":"(function(){\n  return function(page, qrCodeScanData){\n    var result, loginCode, ref$, ref1$;\n    result = page.params.qrCodeScanData || qrCodeScanData;\n    loginCode = result.replace(\"anton://login/\", \"\");\n    if (!loginCode.match(/^[0-9a-z]{4}-?[0-9a-z]{4}$/i)) {\n      page.form.error.html(T(\"qrCodeInvalid\"));\n      delete page.params.qrCodeScanData;\n      return;\n    }\n    page.css({\n      opacity: 0\n    });\n    page.form.input.setValue(loginCode);\n    page.submit();\n    setTimeout(function(){\n      return page.css({\n        opacity: 1\n      });\n    }, 1000);\n    return ref1$ = (ref$ = page.params).qrCodeScanData, delete ref$.qrCodeScanData, ref1$;\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/misc/qrScanner/_t.ls","text":"(function(){\n  return {\n    backCamera: {\n      de: \"Kamera: hinten\",\n      en: \"Camera: back\",\n      fr: \"Appareil photo&nbsp;: arrière\",\n      es: \"Cámara: trasera\",\n      pt: \"Câmera: atrás\"\n    },\n    frontCamera: {\n      de: \"Kamera: vorne\",\n      en: \"Camera: front\",\n      fr: \"Appareil photo&nbsp;: avant\",\n      es: \"Cámara: frontal\",\n      pt: \"Câmera: frente\"\n    },\n    allowCameraAccess: {\n      de: \"Bitte erlaube den Zugriff auf deine Kamera, um die QR-Codes zu scannen.\",\n      en: \"Please allow access to your camera, in order to scan QR codes.\",\n      fr: \"Merci d'autoriser l'accès à ton appareil photo pour pouvoir scanner les codes QR.\",\n      es: \"Por favor, permite el acceso a tu cámara para que puedas escanear códigos QR.\",\n      pt: \"Por favor, habilite o acesso à sua câmera para escanear o código QR.\"\n    },\n    scanQRCode: {\n      de: \"QR-Code scannen\",\n      en: \"Scan QR code\",\n      fr: \"Scanner le code QR\",\n      es: \"Escanear código QR\",\n      pt: \"Escanear código QR\"\n    }\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/misc/qrScanner/onScan/on.ls","text":"(function(){\n  return function(page, q, error, data){\n    if (data) {\n      deviceLog.log({\n        event: \"debugQrcodeSuccess\",\n        duration: new Date() - q.startDate\n      });\n      q.videoDiv.css({\n        display: \"flex\",\n        alignItems: \"center\"\n      }).html(SvgIcon({\n        svg: path(\"/lib/svg/shape/validated.svg\"),\n        size: \"15em\",\n        color: Color.green[500]\n      }));\n      page.bottom.html();\n      page.top.html();\n      return setTimeout(function(){\n        var ref$;\n        if ((ref$ = page.pageWrapper.findFirst(\".pageCenterFix\")) != null) {\n          ref$.css({\n            height: \"var(--centerFixHeight)\"\n          });\n        }\n        q.onDone(data.data);\n        return q.videoDiv.remove();\n      }, 1000);\n    } else {\n      return deviceLog.log({\n        event: \"debugQrcodeError\",\n        duration: new Date() - q.startDate\n      });\n    }\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/misc/qrScanner/qrScanner.ls","text":"(function(){\n  return function(page, onDone){\n    var q, onScan, startQrScanner, ref$, overlayDiv;\n    if (!window.QrScanner) {\n      inc(\"/../qrScanner/external/qr-scanner-worker.min.js\");\n      inc(\"/../qrScanner/external/qr-scanner.min.js\");\n    }\n    q = {};\n    q.cameraFacingMode = \"environment\";\n    q.qrScanner = null;\n    q.video = null;\n    q.onDone = onDone;\n    onScan = function(error, data){\n      return inc(\"onScan/on\")(page, q, error, data);\n    };\n    startQrScanner = async function(){\n      q.qrScanner = new window.QrScanner(q.video, function(result){\n        var ref$;\n        if ((ref$ = q.qrScanner) != null) {\n          ref$.stop();\n        }\n        return onScan(null, result);\n      }, {\n        returnDetailedScanResult: true,\n        highlightScanRegion: true,\n        highlightCodeOutline: true,\n        preferredCamera: q.cameraFacingMode\n      });\n      (await q.qrScanner.start());\n      return setTimeout(function(){\n        return overlayDiv.hide();\n      }, 400);\n    };\n    if ((ref$ = page.pageWrapper.findFirst(\".pageCenterFix\")) != null) {\n      ref$.css({\n        height: 0\n      });\n    }\n    page.top.html(inc(\"topbar/topbar\")(q));\n    page.bottom.html(inc(\"bottom/bottom\")(function(){\n      return q.toggleCamera();\n    }));\n    page.append(inc(\"videoDiv/div\")(page, q), overlayDiv = inc(\"overlayDiv/div\")());\n    return startQrScanner();\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/static/start/edlink/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page).hide();\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      start: function(){\n        var params, that, loginHint, onError;\n        params = inc(\"/lib/util/browser/getPageUrlParams/get\")() || {};\n        if (that = params.login_hint) {\n          loginHint = decodeURIComponent(that);\n        }\n        onError = function(error){\n          page.topbar.show();\n          if (error === \"offline\") {\n            return inc(\"/lib/offline/offlinePopup/popup\")();\n          } else {\n            return inc(\"/lib/gui/errorPopup/popup\")();\n          }\n        };\n        return inc(\"/lib/util/pllsCall/call\")({\n          path: path(\"/../server-apis-db2/apis/sso/openId/edlink/getAuthorizationUrl/query\"),\n          params: {\n            environment: \"live\",\n            loginHint: loginHint\n          },\n          onCompleted: function(result){\n            if (result.status === \"ok\") {\n              return location.href = result.url;\n            } else {\n              debug(\"non-ok received\", result);\n              return onError(result);\n            }\n          },\n          onError: function(error){\n            debug(error);\n            return onError(error);\n          },\n          onOffline: function(){\n            return onError(\"offline\");\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/openId/createPreparedUser/create.ls","text":"(function(){\n  return function(page, params){\n    return startPage({\n      path: path(\"page/page\"),\n      animation: \"fadeIn\",\n      history: 0,\n      params: {\n        loginCode: params.loginCode,\n        type: page.type\n      }\n    });\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/openId/onError/on.ls","text":"(function(){\n  return function(page){\n    return function(error){\n      var message;\n      message = (function(){\n        switch (error) {\n        case \"missing auth-code\":\n        case \"invalid_state\":\n        case \"non-ok received\":\n        case \"error_expired_token\":\n        case \"error_getting_token\":\n        case \"error\":\n          return T(\"errorTryAgain\");\n        case \"error_no_unlocked_school\":\n          return T(\"errorNoUnlockedSchool\");\n        case \"error_creating_prepared_user\":\n          return T(\"errorCreatingPreparedUser\");\n        case \"error_no_connected_user\":\n          return T(\"errorNoConnectedUser\");\n        case \"offline\":\n          return T(\"offlineError\");\n        default:\n          return T(\"errorMessage\");\n        }\n      }());\n      if (error !== \"offline\") {\n        inc(\"logError/log\")(page, error);\n      }\n      inc(\"/lib/util/browser/removePageUrlParams/remove\")();\n      page.html(Div().html(message), Button(T(\"tryAgain\")).css({\n        marginTop: \"1.5em\"\n      }).tap(function(){\n        return location.href = page.type === \"berlin\" ? \"https://anton.app/de/start/berlin\" : \"https://anton.app/de/start/edlink\";\n      }));\n      return page.topbar.show();\n    };\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"lib/gui/popup/popup/popup.ls","text":"(function(){\n  return function(o){\n    var mL, mR, mT, mB, div, w;\n    mL = o.html.style.marginLeft || \"0px\";\n    mR = o.html.style.marginRight || \"0px\";\n    mT = o.html.style.marginTop || \"0px\";\n    mB = o.html.style.marginBottom || \"0px\";\n    Div().heapInfo(\"popup\").appendTo(o.background).html(!o.preventClose ? inc(\"closeIcon/icon\")(o, true) : void 8, div = Div({\n      padding: \"0.2em\",\n      backgroundColor: \"white\",\n      boxShadow: \"1px 1px 5px rgba(0, 0, 0, 0.1)\",\n      textAlign: \"center\",\n      whiteSpace: \"pre-wrap\",\n      borderRadius: \"6px\"\n    }).html(o.html.addClass(\"popupContent\").css({\n      width: (w = o.html.style.width === \"\") ? \"25em\" : w,\n      maxWidth: mL === \"0px\" && mR === \"0px\"\n        ? \"var(--popupMaxWidth)\"\n        : \"calc(var(--popupMaxWidth) - \" + mL + \" - \" + mR + \")\",\n      maxHeight: mT === \"0px\" && mB === \"0px\"\n        ? \"var(--popupMaxHeight)\"\n        : \"calc(var(--popupMaxHeight) - \" + mT + \" - \" + mB + \")\"\n    })), !o.preventClose ? inc(\"closeIcon/icon\")(o) : void 8);\n    if (!o.html.hasClass(\"scrollDiv\")) {\n      o.html.css({\n        overflowY: \"auto\",\n        webkitOverflowScrolling: \"touch\"\n      });\n    }\n    return div;\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/openId/_t.ls","text":"(function(){\n  return {\n    openIdLogin: {\n      deDev: \"openId-Login\",\n      en: \"openId Login\",\n      fr: \"Connexion openId\",\n      esDev: \"Inicio de sesión openId\",\n      pt: \"Login openId\"\n    },\n    errorTryAgain: {\n      deDev: \"Fehlerhafte Anfrage. Bitte versuche es erneut.\",\n      en: \"Invalid request. Please try again.\",\n      fr: \"Demande invalide. Merci de réessayer.\",\n      esDev: \"Solicitud inválida. Por favor intenta de nuevo.\",\n      pt: \"Solicitação inválida. Por favor, tente novamente.\"\n    },\n    errorNoUnlockedSchool: {\n      deDev: \"Deine Schule wurde noch nicht für Single-Sign-On über das Schulportal freigeschaltet. Bitte wende dich an den Support des Schulportals.\",\n      en: \"Your school has not been enabled for single sign-on via the school portal. Please contact the support of the school portal.\",\n      fr: \"Ton école n'a pas encore été activée pour l'authentification unique via le portail scolaire. Merci de contacter le service d'aide du portail scolaire.\",\n      esDev: \"Tu escuela aún no ha sido habilitada para el inicio de sesión único a través del portal escolar. Por favor, contacta con el soporte del portal escolar.\",\n      pt: \"Sua escola ainda não foi habilitada para o Single Sign-On através do portal escolar. Por favor, entre em contato com o suporte do portal escolar.\"\n    },\n    errorCreatingPreparedUser: {\n      deDev: \"Das ANTON-Nutzerkonto konnte nicht erfolgreich vorbereitet werden. Bitte versuche es erneut.\",\n      en: \"The account could not be successfully created. Please try again.\",\n      fr: \"Le compte utilisateur ANTON n'a pas pu être créé. Merci de réessayer.\",\n      esDev: \"No se pudo crear con éxito la cuenta de usuario ANTON. Por favor, intenta de nuevo.\",\n      pt: \"A conta de usuário no ANTON não pôde ser criada com sucesso. Por favor, tente novamente.\"\n    },\n    errorNoConnectedUser: {\n      deDev: \"Es konnte kein ANTON-Nutzerkonto gefunden werden.\",\n      en: \"No account could be found.\",\n      fr: \"Aucun compte utilisateur ANTON n'a été trouvé.\",\n      esDev: \"No se pudo encontrar ninguna cuenta de usuario ANTON.\",\n      pt: \"Nenhuma conta de usuário ANTON foi encontrada.\"\n    }\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"lib/init/startFirstPage/deepLinkBrowser/links/links.ls","text":"(function(){\n  return function(){\n    var links, ref$, welcomePageLinks;\n    links = [\n      {\n        'in': [\"sicherheit\"],\n        pagePath: path(\"/pages/static/security/page\")\n      }, {\n        'in': [\"datenschutz\", \"privacy\", \"donnees-personnelles\", \"privacidad\", \"privacidade\"],\n        pagePath: path(\"/pages/static/privacy/page\")\n      }, {\n        'in': [\"schullizenz\", \"school-license\", \"school-licence\", \"licence-scolaire\", \"licencia-escolar\", \"licenca-escolar\"],\n        pagePath: path(\"/pages/static/schoolLicense/page\")\n      }, {\n        'in': [\"faq\", \"haeufige-fragen\"],\n        pagePath: path(\"/pages/support/help/faqList/page\"),\n        pageParams: {\n          isStandaloneFaqPage: true\n        }\n      }, {\n        startsWith: \"faq\",\n        pagePath: path(\"/pages/support/help/faqQuestion/page\"),\n        pageParams: {\n          isDeepLink: true\n        }\n      }, {\n        'in': [\"terms\", \"agb\", \"cgu\"],\n        pagePath: path(\"/pages/static/terms/page\")\n      }, {\n        'in': [\"impressum\", \"legal-notice\", \"mentions-legales\", \"menciones-legales\", \"informacoes-legais\"],\n        pagePath: path(\"/pages/static/about/page\")\n      }, {\n        startsWith: \"template\",\n        pagePath: path(\"/pages/static/template/page\")\n      }, {\n        startsWithAny: [\"enableTeacherNewsletter\", \"enableNewsletter\"],\n        pagePath: path(\"/pages/static/newsletter/enable/page\")\n      }, {\n        startsWithAny: [\"disableTeacherNewsletter\", \"disableNewsletter\"],\n        pagePath: path(\"/pages/static/newsletter/disable/page\")\n      }, {\n        startsWith: \"enableMessageCategory\",\n        pagePath: path(\"/pages/static/messageCategory/enable/page\")\n      }, {\n        startsWith: \"disableMessageCategory\",\n        pagePath: path(\"/pages/static/messageCategory/disable/page\")\n      }, {\n        startsWith: \"pixelPaintImage\",\n        pagePath: path(\"/pages/static/pixelPaintImageShared/page\")\n      }, {\n        startsWith: \"sesam/login\",\n        pagePath: path(\"/pages/start/login/sesamLogin/page\")\n      }, {\n        startsWith: \"login\",\n        pagePath: path(\"/pages/start/login/deeplinkLogin/page\")\n      }, {\n        startsWith: \"edlink/login\",\n        pagePath: path(\"/pages/start/login/openId/page\")\n      }, {\n        startsWith: \"start/edlink\",\n        pagePath: path(\"/pages/static/start/edlink/page\")\n      }, {\n        startsWithAny: [\"download\", \"telecharger\", \"descargar\", \"baixar\"],\n        pagePath: path(\"/pages/static/download/page\")\n      }, {\n        is: \"jobs\",\n        pagePath: path(\"/pages/static/jobs/page\")\n      }\n    ];\n    if (engine.isDebug) {\n      links = links.concat([\n        {\n          startsWith: \"openId/login\",\n          pagePath: path(\"/pages/start/login/openId/page\")\n        }, {\n          startsWith: \"start/berlin\",\n          pagePath: path(\"/pages/static/start/berlin/page\")\n        }\n      ]);\n    }\n    if ((ref$ = engine.guiLanguage) === \"en_us\" || ref$ === \"es\") {\n      links = links.concat([{\n        startsWithAny: [\"standards\", \"competencias\"],\n        pagePath: path(\"/pages/standards/loadingPage/page\"),\n        pageParams: {\n          isDeepLink: true\n        }\n      }]);\n    }\n    welcomePageLinks = [\"lernen\", \"learn\", \"apprendre\", \"aprender\", \"anton-plus\", \"spiele\", \"games\", \"jeux\", \"juegos\", \"jogos\", \"einstellungen\", \"settings\", \"parametres\", \"ajustes\", \"configuracoes\", \"hilfe-chat\", \"help-chat\", \"chat-dassistance\", \"chat-de-ayuda\", \"chat-de-ajuda\", \"email\", \"telefonnummer\", \"phone-number\", \"numero-de-telephone\", \"numero-de-telefono\", \"numero-de-telefone\", \"gruppen\", \"groups\", \"groupes\", \"grupos\", \"schulverwaltung\", \"school-admin\", \"admin-ecole\", \"admin-escuela\", \"admin-escolar\", \"lernlisten\", \"study-list\", \"listes\", \"listas\"];\n    links.push({\n      'in': welcomePageLinks,\n      pagePath: path(\"/../app01-welcome/pages/welcome/page\")\n    });\n    return links;\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/support/help/faqQuestion/_topbarNext/_t.ls","text":"(function(){\n  return {\n    supportedLanguagesTitle: {\n      de: \"Unterstützte Sprachen\",\n      en: \"Supported languages\",\n      fr: \"Langues disponibles\",\n      es: \"\",\n      pt: \"\"\n    }\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/01_step1/linkQrcodeDesktop/link.ls","text":"(function(){\n  return function(page, hasQrScanner){\n    if (!hasQrScanner) {\n      return;\n    }\n    return Div({\n      paddingTop: \"1em\"\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: inc(\"link/link\")()\n    }).tap(function(){\n      return inc(\"/pages/misc/qrScanner/qrScanner\")(page, page.submitQRCode);\n    }));\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/01_step1/linkQrcodeDesktop/link/link.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\"\n    }).html(inc(\"icon/icon\")(), T(\"scanQr\"));\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/01_step1/linkQrcodeNext/link.ls","text":"(function(){\n  return function(page, hasQrScanner){\n    var hasPermission, onError, tap;\n    if (!hasQrScanner) {\n      return;\n    }\n    hasPermission = function(e){\n      if (!e) {\n        return inc(\"startRequestPermissionPage/start\")(page);\n      } else {\n        return inc(\"/pages/misc/qrScanner/qrScanner\")(page, page.submitQRCode);\n      }\n    };\n    onError = function(e){\n      return debug(\"Error getting camera permissions\", e);\n    };\n    tap = function(){\n      if (typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null) {\n        return SolocodePlugin.hasCameraPermission(hasPermission, onError);\n      } else {\n        return inc(\"/pages/misc/qrScanner/qrScanner\")(page, page.submitQRCode);\n      }\n    };\n    return Div({\n      margin: \"0.5em 0 0.7em\"\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: inc(\"link/link\")()\n    }).tap(tap));\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/01_step1/linkQrcodeNext/link/link.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\"\n    }).html(inc(\"icon/icon\")(), T(\"scanQr\"));\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/01_step1/linkQrcodeNext/startRequestPermissionPage/noPermissionPopup/_t.ls","text":"(function(){\n  return {\n    settings: {\n      de: \"Einstellungen\",\n      en: \"Settings\",\n      fr: \"Paramètres\",\n      es: \"Ajustes\",\n      pt: \"Configurações\"\n    },\n    noPermissionCamera: {\n      de: \"Um diese Funktion zu nutzen, erteile ANTON in deinen Geräte-Einstellungen den Zugriff auf die Kamera.\",\n      en: \"To use this function, allow ANTON to access the camera in your device settings.\",\n      fr: \"Pour utiliser cette fonction, tu dois autoriser ANTON à accéder à ta caméra dans les paramètres de ton appareil.\",\n      es: \"Para utilizar esta función, necesitas autorizar que ANTON pueda acceder a tu cámara, en los ajustes del dispositivo.\",\n      pt: \"Para utilizar esta função, conceda ao ANTON acesso à câmera nas configurações do seu dispositivo.\"\n    }\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/01_step1/linkQrcodeNext/startRequestPermissionPage/noPermissionPopup/buttonClose/button.ls","text":"(function(){\n  return function(){\n    return Button({\n      label: T(\"closeButton\"),\n      action: function(){\n        return app.currentPopup.close();\n      }\n    }).css({\n      margin: \"1em 0.5em 0\",\n      minWidth: \"10em\"\n    });\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/01_step1/linkQrcodeNext/startRequestPermissionPage/noPermissionPopup/buttonOpenSettings/button.ls","text":"(function(){\n  return function(){\n    return Button({\n      label: T(\"settings\"),\n      action: function(){\n        app.currentPopup.close();\n        return SolocodePlugin.openSettings();\n      }\n    }).css({\n      margin: \"1em 0.5em 0\",\n      minWidth: \"10em\"\n    });\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/01_step1/linkQrcodeNext/startRequestPermissionPage/noPermissionPopup/popup.ls","text":"(function(){\n  return function(requestOverlay){\n    var div;\n    requestOverlay.html(\"\");\n    div = Div({\n      padding: \"1em\"\n    }).html(inc(\"text/text\")(), inc(\"buttonOpenSettings/button\")(), inc(\"buttonClose/button\")());\n    return inc(\"/../app01/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(){\n        return requestOverlay.remove();\n      }\n    });\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/01_step1/linkQrcodeNext/startRequestPermissionPage/noPermissionPopup/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      lineHeight: \"1.5em\"\n    }).html(T(\"noPermissionCamera\"));\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/start/login/01_step1/loadQrScanner/load.ls","text":"(function(){\n  return function(start){\n    var ref$;\n    if ((ref$ = projects.info()[\"qrScanner\"]) != null && ref$.isLoaded) {\n      return start(true);\n    }\n    return inc(\"/lib/util/loadProject/load\")(\"qrScanner\", function(){\n      var hasLoaded, ref$;\n      hasLoaded = ((ref$ = projects.info()[\"qrScanner\"]) != null ? ref$.isLoaded : void 8) || false;\n      return start(hasLoaded);\n    });\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"lib/init/debugToggle/popup/popup.ls","text":"(function(){\n  return function(options){\n    var project, isLoaded, loadProject, showPopup, offlinePopup, spinner;\n    project = \"app01-debug-popup\";\n    isLoaded = function(){\n      var ref$;\n      return (ref$ = projects.info()[project]) != null ? ref$.isLoaded : void 8;\n    };\n    loadProject = function(){\n      return inc(\"/lib/util/loadProject/load\")(project, function(){\n        if (!spinner.isVisible()) {\n          return;\n        }\n        spinner.remove();\n        if (isLoaded()) {\n          return showPopup();\n        } else {\n          return offlinePopup();\n        }\n      });\n    };\n    showPopup = function(){\n      return inc(\"/../app01-debug-popup/popup/popup\")(options);\n    };\n    offlinePopup = function(){\n      return inc(\"/lib/offline/offlinePopup/popup\")();\n    };\n    if (isLoaded()) {\n      return showPopup();\n    } else {\n      spinner = inc(\"/lib/gui/spinnerOverlay/overlay\")();\n      return loadProject();\n    }\n  };\n})();","updated":"2024-06-13T10:27:02.204022"},{"path":"addons/topbarLevel/feedbackIcon/04_popupDone/popup.ls","text":"(function(){\n  return function(){\n    var close, div, popup;\n    close = function(){\n      return popup.close();\n    };\n    div = Div().css({\n      width: \"18em\",\n      margin: \"1em 0 0.5em\"\n    }).append(Div().css({\n      paddingBottom: \"0.5em\"\n    }).html(T(\"thanksForReporting\")), inc(\"../00_shared/button/button\")(T(\"continueButton\"), close));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      animationOnShow: false\n    });\n  };\n})();","updated":"2024-11-20T08:32:16.925887"},{"path":"data/user/calcWeeklySpecialData/calcVariants/calc.ls","text":"(function(){\n  return function(assistantName){\n    var treasureEvent, wordingEvent;\n    if (assistantName !== \"09_subtraction100\") {\n      return {\n        showNoMathWording: false,\n        showTreasureChest: false\n      };\n    }\n    treasureEvent = log.findLast({\n      event: \"assistantShowTreasureChest\",\n      assistantName: assistantName\n    });\n    if (!treasureEvent) {\n      treasureEvent = log.log({\n        event: \"assistantShowTreasureChest\",\n        assistantName: assistantName,\n        enabled: Math.random() > 0.5,\n        isDebug: engine.isDebug ? true : void 8\n      });\n    }\n    wordingEvent = log.findLast({\n      event: \"assistantShowNoMathWording\",\n      assistantName: assistantName\n    });\n    if (!wordingEvent) {\n      wordingEvent = log.log({\n        event: \"assistantShowNoMathWording\",\n        assistantName: assistantName,\n        enabled: Math.random() > 0.5,\n        isDebug: engine.isDebug ? true : void 8\n      });\n    }\n    return {\n      showNoMathWording: wordingEvent.enabled,\n      showTreasureChest: treasureEvent.enabled\n    };\n  };\n})();","updated":"2024-11-29T12:24:14.234685"},{"path":"lib/gui/parentalGate/parentalGate.ls","text":"(function(){\n  return function(onSuccess, o){\n    var forceShow, ref$, minAge, omitParentMention, title, submit, onChange, div, input, error, popup;\n    forceShow = (ref$ = o != null ? o.forceShow : void 8) != null ? ref$ : false;\n    minAge = (o != null ? o.minAge : void 8) || 16;\n    omitParentMention = (ref$ = o != null ? o.omitParentMention : void 8) != null ? ref$ : false;\n    title = (o != null ? o.title : void 8) || (omitParentMention\n      ? T(\"minAgeText2WithoutParents\", minAge)\n      : T(\"minAgeText2\", minAge));\n    if (!engine.isiOsApp && !forceShow) {\n      onSuccess();\n      return;\n    }\n    submit = function(){\n      var valueString, value;\n      valueString = input.getValue().trim();\n      if (!valueString) {\n        return;\n      }\n      value = +valueString;\n      if (_.isFinite(value) && (1900 < value && value <= new Date().getFullYear() - (minAge + 1))) {\n        if (valueString.length !== 4) {\n          error.show().html(T(\"numDigitsError\"));\n          return;\n        }\n        if (typeof onSuccess == 'function') {\n          onSuccess();\n        }\n      } else {\n        if (valueString.length !== 4) {\n          inc(\"/lib/gui/errorPopup/popup\")({\n            label: T(\"enterBirthYear4Digit\")\n          });\n        } else {\n          inc(\"/lib/gui/errorPopup/popup\")({\n            label: omitParentMention\n              ? T(\"minAgeTextWithoutParents\", minAge)\n              : T(\"minAgeText\", minAge)\n          });\n        }\n      }\n      return popup.close();\n    };\n    onChange = function(v){\n      var value, valueClean;\n      value = input.getValue();\n      valueClean = value.replace(/[^0-9]/, \"\");\n      if (value !== valueClean) {\n        return input.setValue(valueClean);\n      }\n    };\n    div = Div({\n      padding: \"1em\"\n    }).html(Div({\n      marginBottom: \"1em\",\n      fontWeight: \"bold\"\n    }).html(T(\"enterBirthYear\")), Div().html(title), Div({\n      display: \"flex\",\n      margin: \"1em 0\"\n    }).html(input = inc(\"/lib/gui/input2/input\")({\n      keyboardParentDiv: app.currentPage.popupBottom,\n      keyboardLayout: \"numbers\",\n      onSubmit: submit,\n      keyboardSubmitLabel: T(\"continueButton\"),\n      maxLength: 4,\n      onChange: onChange\n    })), error = Div({\n      color: Color.red[300],\n      marginBottom: \"1em\"\n    }).hide(), Button(T(\"continueButton\")).css({\n      marginTop: \"0.3em\"\n    }).tap(submit));\n    popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n    return input.start();\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/top/_div/div.ls","text":"(function(){\n  return function(p){\n    var div;\n    div = Div({\n      height: \"7.5em\",\n      marginTop: \"-5em\",\n      display: \"flex\",\n      backgroundColor: Color.grey[150],\n      justifyContent: \"flex-start\",\n      alignItems: \"flex-end\",\n      padding: \"0.5em 0 0.8em 0.8em\"\n    }).addClass(\"safeAreaMarginLeft menuTop\").html(inc(\"icon/icon\")(p), inc(\"title/title\")(p), inc(\"closeIcon/icon\")(p)).tap(p.tap ? {\n      animation: \"hover\",\n      up: p.tap\n    } : void 8);\n    if (p.onEsc) {\n      body.findFirst(\".mainMenu\").removeClass(\"keyManagerScope\");\n      div.addClass(\"keyManager-esc androidBack keyManagerScope\").bind(\"androidBack\", p.onEsc).bind(\"keyManager\", p.onEsc);\n    } else {\n      body.findFirst(\".mainMenu\").addClass(\"keyManagerScope\");\n    }\n    div.setTopMode = function(mode){\n      return div.replaceWith(inc(\"../top\")(mode));\n    };\n    return div;\n  };\n})();","updated":"2024-05-30T10:02:50.760723"},{"path":"pages/misc/phoneNumber/show/withNumber/number/number.ls","text":"(function(){\n  return function(number){\n    return Div({\n      margin: \"0.5em 1em\",\n      fontSize: \"1.5em\",\n      userSelect: \"text\",\n      wordWrap: \"break-word\"\n    }).html(number);\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"addons/topbarGame/header/header.ls","text":"(function(){\n  return function(o){\n    var div;\n    o.updateHeaderColor = function(){\n      app.currentPage.top.css({\n        backgroundColor: o.gameBackgroundColor || Color.grey[100],\n        borderBottom: \"1px solid \" + (o.gameBackgroundColor || Color.grey[100]),\n        boxShadow: \"\"\n      });\n      return div.css({\n        color: o.gameTextColor,\n        backgroundColor: o.gameBackgroundColor || Color.grey[100]\n      });\n    };\n    return div = Div({\n      display: \"flex\",\n      alignItems: \"stretch\",\n      backgroundColor: o.gameBackgroundColor || Color.grey[100],\n      minHeight: \"2.4em\"\n    }).addClass(\"topBarHeader\").html(inc(\"left/closeIcon/closeIcon\")(o), inc(\"spacer/spacer\")(o, 0), inc(\"center/gameScore/gameScore\")(o), inc(\"right/right\")(o));\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/popupBottom/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      position: \"absolute\",\n      bottom: 0,\n      left: 0,\n      right: 0,\n      backgroundColor: Color.grey[150],\n      borderTop: \"1px solid \" + Color.grey[250],\n      zIndex: 7\n    }).addClass(\"popupBottom safeAreaPaddingBottom safeAreaPaddingLeft safeAreaPaddingRight\").hide();\n    return pw.elements.popupBottom = div;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/gui/drawerMenu/menuDiv/menuDiv.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      justifyContent: \"flex-start\",\n      alignItems: \"stretch\",\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      bottom: 0,\n      right: 0\n    }).addClass(\"safeAreaPaddingBottom safeAreaPaddingTop\");\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/bottom/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      zIndex: 2,\n      backgroundClip: \"border-box\",\n      backgroundColor: Color.grey[75],\n      borderTop: \"1px solid \" + Color.grey[250]\n    }).addClass(\"bottom bottomBar safeAreaPaddingBottom safeAreaPaddingLeft safeAreaPaddingRight\").hide();\n    return pw.elements.bottom = div;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/navBottom/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      zIndex: 5,\n      backgroundColor: Color.grey[150],\n      backgroundClip: \"border-box\",\n      boxShadow: \"0px 0px 7px rgba(0,0,0,0.1)\",\n      borderTop: \"1px solid \" + Color.grey[250]\n    }).addClass(\"navBottom safeAreaPaddingBottom safeAreaPaddingLeft safeAreaPaddingRight\").hide();\n    return pw.elements.navBottom = div;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/navTop/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      zIndex: 5,\n      borderBottom: \"1px solid \" + Color.grey[250],\n      backgroundClip: \"border-box\",\n      backgroundColor: Color.grey[150]\n    }).addClass(\"navTop safeAreaPaddingTop safeAreaPaddingLeft safeAreaPaddingRight\").hide();\n    return pw.elements.navTop = div;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/top/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      zIndex: 4,\n      backgroundClip: \"border-box\"\n    }).addClass(\"top safeAreaPaddingLeft safeAreaPaddingRight\").addClass(app.navbarPosition === \"bottom\" || !pw.navCategory ? \"safeAreaPaddingTop\" : void 8);\n    return pw.elements.top = div;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcSoftKeyboardBottom/calc.ls","text":"(function(){\n  return function(pw){\n    var h;\n    h = app.softKeyboardHeight;\n    inc(\"fixIOsBrowserWindowScroll/fix\")(h);\n    if (h === pw.lastSoftKeyboardHeight) {\n      return;\n    }\n    if (h > 0) {\n      h = h - inc(\"calcSafeAreaPaddingBottom/calc\")();\n    }\n    pw.lastSoftKeyboardHeight = h;\n    if (pw.popupWrapper.contains(document.activeElement) || pw.popupWrapper.visibleSoftKeyboard) {\n      return inc(\"popup/popup\")(pw, h);\n    } else if (pw.contains(document.activeElement) || pw.contains(document.activeElement.originalDivEditable) || pw.visibleSoftKeyboard) {\n      return inc(\"page/page\")(pw, h);\n    }\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/popupMaxHeight/calc.ls","text":"(function(){\n  return function(v, pw){\n    var h;\n    return h = v.popupWrapperHeight - 60 - v.safeAreaPaddingTop - v.safeAreaPaddingBottom;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/popupMaxWidth/calc.ls","text":"(function(){\n  return function(v, pw){\n    var w;\n    return w = v.screenWidth - 60 - v.safeAreaPaddingLeft - v.safeAreaPaddingRight;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/centerBottom/calc.ls","text":"(function(){\n  return function(v){\n    var b, that;\n    return b = (that = v.navBottomHeight)\n      ? that\n      : (that = v.bottomHeight)\n        ? that + v.navBottomHeight\n        : v.safeAreaPaddingBottom;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/bottomIconsLeft/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = Div({\n      display: \"flex\",\n      position: \"absolute\",\n      bottom: \"var(--centerBottom)\",\n      left: \"var(--safeAreaPaddingLeft)\",\n      alignItems: \"stretch\"\n    }).addClass(\"bottomIconsLeft\");\n    return pw.elements.bottomIconsLeft = div;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/update/calcCssVars/calc.ls","text":"(function(){\n  return function(pageWrapper){\n    var p, v, name, value, o, results$ = [];\n    p = pageWrapper;\n    p.lastCssVars == null && (p.lastCssVars = {});\n    v = {};\n    v.screenHeight = body.height();\n    v.screenWidth = body.width();\n    if (v.screenHeight === 0) {\n      return;\n    }\n    if (p.page.updateLayoutMode === \"onFrame\" && p.page.lockLayout) {\n      return;\n    }\n    v.pageHeight = p.pageMarginCollapseFix.height();\n    v.topHeight = Math.floor(p.top.height()) || 0;\n    v.navTopHeight = p.navTop.height() || 0;\n    v.navBottomHeight = p.navBottom.height() || 0;\n    v.bottomHeight = p.bottom.height() || 0;\n    v.bottomFreezeHeight = p.bottomFreeze.height() || 0;\n    v.centerHeight = v.screenHeight - v.topHeight - v.bottomHeight - v.navBottomHeight - v.navTopHeight;\n    v.centerFreezeHeight = v.screenHeight - v.topHeight - v.bottomFreezeHeight;\n    v.centerFixHeight = p.page.disablePageVerticalCenter\n      ? 0\n      : v.bottomFreezeHeight > 0\n        ? (v.centerFreezeHeight - v.pageHeight) / 2\n        : (v.centerHeight - v.pageHeight) / 2;\n    v.centerFixHeight = _.round(Math.max(0, v.centerFixHeight));\n    v.popupMaxWidth = v.screenWidth - 60;\n    v.popupMaxWidth -= +p.popupWrapper.css(\"paddingLeft\").replace(\"px\", \"\");\n    v.popupMaxWidth -= +p.popupWrapper.css(\"paddingRight\").replace(\"px\", \"\");\n    v.popupMaxHeight = p.popupWrapper.height() - 100;\n    v.popupMaxHeight -= +p.popupWrapper.css(\"paddingTop\").replace(\"px\", \"\");\n    v.popupMaxHeight -= +p.popupWrapper.css(\"paddingBottom\").replace(\"px\", \"\");\n    v.popupBottomHeight = p.popupBottom.height() || 0;\n    p.pageCenterFix.css({\n      transition: p.page.centerDuration > 0 ? \"height \" + p.page.centerDuration + \"ms\" : \"\"\n    });\n    for (name in v) {\n      value = v[name];\n      if (p.lastCssVars[name] !== value) {\n        p.cssVar(o = {}, o[name] = value + \"px\");\n        results$.push(p.lastCssVars[name] = value);\n      }\n    }\n    return results$;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/calc.ls","text":"(function(){\n  return function(pageWrapper){\n    var pw, v;\n    pw = pageWrapper;\n    pw.lastCssVars == null && (pw.lastCssVars = {});\n    v = {};\n    v.screenHeight = body.offsetHeight;\n    v.screenWidth = body.offsetWidth;\n    v.isResize = inc(\"isResize/calc\")(v, pw);\n    v.topHeight = pw.top.offsetHeight || 0;\n    v.navTopHeight = pw.navTop.offsetHeight || 0;\n    v.navBottomHeight = pw.navBottom.offsetHeight || 0;\n    v.bottomHeight = pw.bottom.offsetHeight || 0;\n    v.popupBottomHeight = pw.popupBottom.offsetHeight || 0;\n    v.softKeyboardZoneHeight = pw.softKeyboardZone.offsetHeight || 0;\n    inc(\"setSafeAreaPaddings/set\")(v);\n    v.centerHeight = inc(\"centerHeight/calc\")(v, pw);\n    v.centerBottom = inc(\"centerBottom/calc\")(v);\n    v.pageContentHeight = pw.pageContent.offsetHeight;\n    v.scrollTop = pw.pageScrollWrapper.scrollTop;\n    v.pageTopTransition = inc(\"pageTopTransition/calc\")(v, pw);\n    v.pageTopMax = inc(\"pageTopMax/calc\")(v, pw);\n    v.pageTop = inc(\"pageTop/calc\")(v, pw);\n    v.popupWrapperHeight = inc(\"popupWrapperHeight/calc\")(v, pw);\n    v.popupMaxWidth = inc(\"popupMaxWidth/calc\")(v, pw);\n    v.popupMaxHeight = inc(\"popupMaxHeight/calc\")(v, pw);\n    return inc(\"_setCssVars/set\")(v, pw);\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"pages/static/cancelDeletionDirAdmin/03_email/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"../00_shared/topbar/topbar\")();\n      },\n      start: function(){\n        var mail, ref$, onDone, onSkip, submit, form;\n        mail = (ref$ = log.findLast(\"setEMail\")) != null ? ref$.value : void 8;\n        onDone = function(){\n          return inc(\"../03b_password/start\")();\n        };\n        onSkip = function(){\n          return inc(\"../04_cancelDeletion/start\")();\n        };\n        submit = function(){\n          return inc(\"submit/submit\")(page, mail, form, onDone);\n        };\n        return page.append(form = inc(\"/lib/gui/inputForm/inputForm\")({\n          label: T(\"enterEmail\"),\n          submitLabel: T(\"save\"),\n          submit: submit,\n          cancel: false,\n          forceShowButtons: true\n        }), !mail ? inc(\"skipLink/link\")(onSkip) : void 8, inc(\"../00_shared/linkBack/link\")());\n      }\n    };\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/gui/toast/div/div.ls","text":"(function(){\n  return function(o){\n    var div, div2;\n    div = Div();\n    div.hideAnimated = function(){\n      var height;\n      if (div.hiding) {\n        return;\n      }\n      div.hiding = true;\n      height = div.offset().height;\n      return div.animation({\n        css: {\n          opacity: 0,\n          transform: \"translate(0, -\" + height + \"px)\"\n        },\n        onCompleted: div.remove\n      });\n    };\n    return div.addClass(\"toast safeAreaPaddingTop\").css({\n      position: \"absolute\",\n      zIndex: 1000,\n      left: \"1em\",\n      top: \"1em\",\n      right: \"1em\",\n      display: \"flex\"\n    }).html(div2 = Div({\n      padding: \"1em\",\n      backgroundColor: \"white\",\n      borderRadius: \"5px\",\n      border: \"1px solid \" + Color.grey[300],\n      boxShadow: \"1px 1px 5px rgba(0, 0, 0, 0.1)\",\n      maxWidth: \"35em\",\n      textAlign: \"center\",\n      flex: \"1 1 auto\"\n    }).secureHtml(o.label).tap({\n      down: div.hideAnimated,\n      animation: \"none\"\n    }));\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"addons/topbarLevel/skipIcon/onFrame/on.ls","text":"(function(){\n  return function(page, div){\n    var lastBottom, onFrame;\n    lastBottom = null;\n    onFrame = function(){\n      var newBottom, ref$, ref1$, ref2$, ref3$, ref4$;\n      newBottom = _.max([\n        0, (page != null ? page.bottom.height() : void 8) + (page != null ? page.navBottom.height() : void 8), (ref$ = body.getElementsByClassName(\"keyboardParentDiv\").item(0)) != null ? ref$.height({\n          withMargins: true\n        }) : void 8\n      ]);\n      newBottom += \"px\";\n      div.css({\n        pointerEvents: (ref1$ = (ref2$ = page.levelPlayer) != null ? (ref3$ = ref2$.currentSlide) != null ? (ref4$ = ref3$.div) != null ? ref4$.css(\"pointerEvents\") : void 8 : void 8 : void 8) != null ? ref1$ : \"\"\n      });\n      if (div.style.bottom !== newBottom || !lastBottom) {\n        if (newBottom === \"0px\") {\n          div.addClass(\"safeAreaMarginBottom\");\n        } else {\n          div.removeClass(\"safeAreaMarginBottom\");\n        }\n        lastBottom = newBottom;\n        div.css({\n          bottom: newBottom\n        });\n      }\n      if (app.currentPage === page) {\n        return requestAnimationFrame(onFrame);\n      }\n    };\n    return onFrame();\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/gui/multiform/fields/field/input/showKeyboardBottom/_header/header.ls","text":"(function(){\n  return function(input, sk){\n    return Div(inc(\"cssNoSpecialKeys/css\")()).addClass(\"safeAreaPaddingLeft\").html(inc(\"keyboardToggle/toggle\")(input, sk));\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/init/debugIcons/debugIcons.ls","text":"(function(){\n  return function(){\n    var lastBottom, update, onToggle, div, spacer, simulateOffline, simulateError, refresh, framesPerSecond, developContent;\n    lastBottom = -1;\n    update = function(){\n      var i$, ref$, len$, el, page, newBottom, ref1$, ref2$;\n      for (i$ = 0, len$ = (ref$ = [framesPerSecond, simulateOffline, simulateError]).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        el.update();\n      }\n      page = app.currentPage;\n      newBottom = _.max([\n        0, app.softKeyboardHeight, (page != null ? (ref$ = page.bottom) != null ? ref$.height() : void 8 : void 8) + (page != null ? (ref1$ = page.navBottom) != null ? ref1$.height() : void 8 : void 8), (ref2$ = body.getElementsByClassName(\"keyboardParentDiv\").item(0)) != null ? ref2$.height({\n          withMargins: true\n        }) : void 8\n      ]);\n      if (newBottom !== lastBottom || lastBottom === -1) {\n        if (newBottom === 0) {\n          div.addClass(\"safeAreaPaddingBottom\");\n        } else {\n          div.removeClass(\"safeAreaPaddingBottom\");\n        }\n        lastBottom = newBottom;\n        return div.css({\n          bottom: lastBottom + \"px\"\n        });\n      }\n    };\n    onToggle = function(){\n      if (engine.isDebug) {\n        div.show();\n        return requestAnimationFrame(update);\n      } else {\n        return div.hide();\n      }\n    };\n    div = Div({\n      position: \"fixed\",\n      bottom: 0,\n      right: 0,\n      left: 0,\n      zIndex: 101,\n      pointerEvents: \"none\",\n      display: \"flex\",\n      margin: \"0.2em\"\n    }).addClass(\"debugIcons keyManagerScopeAlways safeAreaPaddingLeft safeAreaPaddingRight\").html(spacer = Div({\n      flex: \"1 1 auto\"\n    }), simulateOffline = inc(\"simulateOffline/simulateOffline\")(update), simulateError = inc(\"simulateError/simulateError\")(update), refresh = inc(\"refresh/refresh\")().append(framesPerSecond = inc(\"framesPerSecond/framesPerSecond\")()), developContent = inc(\"developContent/developContent\")()).bind(\"touchstart mousedown\", function(e){\n      return e.preventDefault();\n    }).appendTo(body);\n    body.bind(\"toggleDebug\", onToggle);\n    div.update = update;\n    app.debugIcons = div;\n    app.refresh = function(){\n      return inc(\"/lib/util/refresh/refresh\")();\n    };\n    if (engine.isDebug) {\n      return requestAnimationFrame(update);\n    } else {\n      return div.hide();\n    }\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/gui/popup/background/background.ls","text":"(function(){\n  return function(o){\n    return Div({\n      display: \"flex\",\n      position: \"absolute\",\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0,\n      backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n      pointerEvents: \"auto\"\n    }).addClass(\"keyManagerScope safeAreaPaddingTop safeAreaPaddingBottom safeAreaPaddingLeft safeAreaPaddingRight\").html(inc(\"clickDiv/div\")(o)).bind(\"touchstart\", function(e){\n      return e.stopPropagation();\n    });\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/gui/drawerMenu/menuRows/rows.ls","text":"(function(){\n  return function(o){\n    var items, item;\n    items = o.itemsFolder || o.items;\n    return ScrollDiv({\n      scrollbarMode: \"show\"\n    }).addClass(\"menuRows safeAreaPaddingLeft\").css({\n      flex: \"0 1 auto\"\n    }).append(Div({\n      height: \"0.5em\"\n    }), o.rows = (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = items).length; i$ < len$; ++i$) {\n        item = ref$[i$];\n        if (!item) {\n          results$.push(null);\n        } else if (item.rowType === \"label\") {\n          results$.push(inc(\"rowLabel/row\")(o, item));\n        } else if (item.rowType === \"line\") {\n          results$.push(inc(\"rowLine/row\")(o, item));\n        } else if (item.rowType === \"folder\") {\n          results$.push(inc(\"rowFolder/row\")(o, item));\n        } else if (item.rowType === \"div\") {\n          results$.push(inc(\"rowDiv/row\")(o, item));\n        } else {\n          results$.push(inc(\"rowDefault/row\")(o, item));\n        }\n      }\n      return results$;\n    }()), Div({\n      height: \"0.5em\"\n    }));\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/gui/drawerMenu/searchResult/searchResult.ls","text":"(function(){\n  return function(){\n    return ScrollDiv({\n      scrollbarMode: \"show\"\n    }).addClass(\"menuSearchResult\").addClass(\"safeAreaMarginLeft\").css({\n      flex: \"0 1 auto\",\n      height: \"100%\"\n    }).tap({\n      up: function(){\n        var ref$;\n        return (ref$ = body.findFirst(\".menuSearch\")) != null ? ref$.stop() : void 8;\n      },\n      animation: \"none\"\n    }).css({\n      cursor: \"\"\n    }).hide();\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/calcHiddenMail/calc.ls","text":"(function(){\n  return function(mail){\n    var parts, p1, p2, n;\n    parts = mail.split(\"@\");\n    p1 = parts[0];\n    p2 = parts[1];\n    n = Math.max(p1.length - 1, 5);\n    p1 = p1[0] + \"*\".repeat(n);\n    return p1 + \"@\" + p2;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/calcHiddenPhoneNumber/calc.ls","text":"(function(){\n  return function(number){\n    var p1, p2, i;\n    p1 = number.substring(0, 3);\n    p2 = number.slice(-2);\n    i = (p1 + p2).length;\n    return p1 + \"*\".repeat(number.length - i) + p2;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/setSafeAreaPaddings/helperDiv/div.ls","text":"(function(){\n  return function(){\n    var s, div;\n    s = \"safeAreaPadding\";\n    div = Div({\n      position: \"absolute\",\n      pointerEvents: \"none\"\n    }).addClass(\"safeAreaHelper \" + s + \"Left \" + s + \"Right \" + s + \"Top \" + s + \"Bottom\");\n    body.prepend(div);\n    return div;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcCssVars/setSafeAreaPaddings/set.ls","text":"(function(){\n  var lastDiv, lastPaddings, lastResizeAt;\n  lastDiv = null;\n  lastPaddings = null;\n  lastResizeAt = null;\n  return function(v){\n    var k, ref$, val, div, styles, p, i$, len$, s, style, results$ = [];\n    if (v.isResize) {\n      lastResizeAt = new Date();\n    }\n    if (new Date() - lastResizeAt > 500) {\n      for (k in ref$ = lastPaddings) {\n        val = ref$[k];\n        v[k] = val;\n      }\n      return;\n    }\n    div = lastDiv || body.findFirst(\".safeAreaHelper\") || inc(\"helperDiv/div\")();\n    styles = getComputedStyle(div);\n    p = {};\n    for (i$ = 0, len$ = (ref$ = [\"Left\", \"Right\", \"Top\", \"Bottom\"]).length; i$ < len$; ++i$) {\n      s = ref$[i$];\n      style = styles[\"padding\" + s];\n      p[\"safeAreaPadding\" + s] = +style.replace(\"px\", \"\");\n    }\n    lastDiv = div;\n    lastPaddings = p;\n    for (k in lastPaddings) {\n      val = lastPaddings[k];\n      results$.push(v[k] = val);\n    }\n    return results$;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update/calcSoftKeyboardBottom/calcSafeAreaPaddingBottom/calc.ls","text":"(function(){\n  var div;\n  div = null;\n  return function(){\n    if (div) {\n      return div.offsetHeight;\n    }\n    if (!div) {\n      div = body.findFirst(\".safeAreaPaddingBottomHelper\");\n    }\n    if (!div) {\n      body.prepend(div = Div().addClass(\"safeAreaPaddingBottomHelper safeAreaPaddingBottom\").css({\n        position: \"absolute\",\n        pointerEvents: \"none\"\n      }));\n    }\n    return div.offsetHeight;\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"lib/util/loadGroupContent/cleanupRows/cleanup.ls","text":"(function(){\n  return function(rows){\n    var rowsById, res$, i$, rowsOfId, r;\n    rowsById = _.groupBy(rows, function(r){\n      var ref$, ref1$;\n      return r.weekStartAt + ((ref$ = r.block) != null ? ref$.puid : void 8) + ((ref1$ = r.learnListDescription) != null ? ref1$.listCode : void 8);\n    });\n    res$ = [];\n    for (i$ in rowsById) {\n      rowsOfId = rowsById[i$];\n      r = rowsOfId[0];\n      res$.push({\n        type: r.type,\n        weekStartAt: r.weekStartAt,\n        block: r.block,\n        learnListDescription: r.learnListDescription,\n        subgroups: inc(\"calcSubgroups/calc\")(rowsOfId),\n        unselectedLevels: inc(\"calcUnselectedLevels/calc\")(rowsOfId)\n      });\n    }\n    rows = res$;\n    return rows = _.orderBy(rows, \"weekStartAt\", \"desc\");\n  };\n})();","updated":"2024-04-23T09:55:49.362153"},{"path":"lib/util/loadGroupContent/calcContent/calc.ls","text":"(function(){\n  var cache;\n  cache = {};\n  return function(groupCode, pinEvents, onDone){\n    var c;\n    c = cache[groupCode];\n    if (c != null && c.total === pinEvents.total && c.lastEventCreated === pinEvents.lastEventCreated && new Date() - c.cachedAt < 1000 * 60 * 30) {\n      onDone(_.cloneDeep(c));\n      return;\n    }\n    return inc(\"load/load\")(groupCode, pinEvents, function(r){\n      cache[groupCode] = {\n        rows: r.rows,\n        total: r.total,\n        lastEventCreated: r.lastEventCreated,\n        cachedAt: new Date()\n      };\n      return onDone(r);\n    });\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"lib/util/loadGroupContent/load.ls","text":"(function(){\n  return function(o){\n    var subscribeLog, calcPinEvents, calcContent, filterPublicId, cleanupRows, finish;\n    subscribeLog = function(){\n      return inc(\"subscribeGroupLog/subscribe\")(o.groupCode, calcPinEvents);\n    };\n    calcPinEvents = function(){\n      var pinEvents;\n      pinEvents = inc(\"calcPinEvents/calc\")(o.groupCode);\n      return calcContent(pinEvents);\n    };\n    calcContent = function(pinEvents){\n      return inc(\"calcContent/calc\")(o.groupCode, pinEvents, filterPublicId);\n    };\n    filterPublicId = function(r){\n      if (o.filterPublicId) {\n        r = inc(\"filterPublicId/filter\")(o, r);\n      }\n      return cleanupRows(r);\n    };\n    cleanupRows = function(r){\n      r.rows = inc(\"cleanupRows/cleanup\")(r.rows);\n      return finish(r);\n    };\n    finish = function(r){\n      return o.onLoaded(r);\n    };\n    return subscribeLog();\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"addons/topbarLevel/hint/hint/content/speaker/speaker.ls","text":"(function(){\n  return function(hint, speakerMode, slide){\n    var sound, speaker;\n    if (speakerMode === false) {\n      return;\n    }\n    sound = slide.sounds[hint.sound + hint.voice + hint.voiceLang];\n    speaker = inc(\"/lib/gui/speakerIconPlayer/speakerIconPlayer\")({\n      outline: true,\n      sound: sound,\n      size: \"1.4em\"\n    }).css({\n      verticalAlign: \"-0.2em\",\n      marginRight: \"0.1em\"\n    });\n    inc(\"updateAvatarTalk/update\")(speaker);\n    return speaker;\n  };\n})();","updated":"2024-04-02T09:41:34.360516"},{"path":"lib/util/fontSize/setFontSize/set.ls","text":"(function(){\n  var updateAppTextZoom, calcDefaultFontSize, calcFontScale;\n  updateAppTextZoom = inc(\"updateAppTextZoom/update\");\n  calcDefaultFontSize = inc(\"../calcDefaultFontSize/calc\");\n  calcFontScale = inc(\"../calcFontScale/calc\");\n  return function(){\n    var calcFontSize, setFontSize;\n    if (document.body == null) {\n      return;\n    }\n    calcFontSize = function(){\n      var fontSize;\n      fontSize = calcDefaultFontSize();\n      fontSize *= calcFontScale();\n      return updateAppTextZoom(fontSize, setFontSize);\n    };\n    setFontSize = function(fontSize){\n      var ref$;\n      fontSize = _.round(fontSize, 1);\n      document.body.style.fontSize = fontSize + \"px\";\n      return (ref$ = app.currentPage) != null ? typeof ref$.updateLayout == 'function' ? ref$.updateLayout() : void 8 : void 8;\n    };\n    return inc(\"/lib/util/waitFrames/wait\")(2, calcFontSize);\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"lib/util/loadGroupContent/calcContent/load/load.ls","text":"(function(){\n  return function(groupCode, pinEvents, onDone){\n    var events, total, totalLoaded, rows, load, onBlockDone, finish;\n    events = pinEvents.events;\n    total = pinEvents.total;\n    totalLoaded = 0;\n    rows = [];\n    load = function(){\n      var i$, ref$, len$, e, results$ = [];\n      for (i$ = 0, len$ = (ref$ = events).length; i$ < len$; ++i$) {\n        e = ref$[i$];\n        if (e.event === \"pinGroupBlock\") {\n          results$.push(inc(\"loadBlock/load\")({\n            event: e,\n            onDone: onBlockDone\n          }));\n        } else {\n          results$.push(inc(\"loadLearnListDescription/load\")({\n            event: e,\n            groupCode: groupCode,\n            onDone: onBlockDone\n          }));\n        }\n      }\n      return results$;\n    };\n    onBlockDone = function(row){\n      if (row) {\n        rows.push(row);\n      }\n      totalLoaded++;\n      if (totalLoaded === total) {\n        return finish();\n      }\n    };\n    finish = function(){\n      var groupContent;\n      groupContent = {\n        rows: _.orderBy(rows, \"weekStartAt\", \"asc\"),\n        total: total,\n        lastEventCreated: pinEvents.lastEventCreated\n      };\n      return onDone(groupContent);\n    };\n    if (total === 0) {\n      return finish();\n    } else {\n      return load();\n    }\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"lib/util/loadGroupContent/calcContent/load/loadBlock/load.ls","text":"(function(){\n  return function(o){\n    var puid, project, planPath, loadPlan, findBlock, onError, finish;\n    puid = o.event.puid;\n    project = puid.split(\"/\")[0];\n    planPath = \"/../\" + project + \"/plan.ls\";\n    loadPlan = function(){\n      return inc(\"/lib/util/loadPlan/load\")({\n        path: planPath,\n        onLoaded: findBlock,\n        onError: onError\n      });\n    };\n    findBlock = function(plan){\n      var i$, ref$, len$, topic, j$, ref1$, len1$, block;\n      for (i$ = 0, len$ = (ref$ = plan.topics).length; i$ < len$; ++i$) {\n        topic = ref$[i$];\n        for (j$ = 0, len1$ = (ref1$ = topic.blocks).length; j$ < len1$; ++j$) {\n          block = ref1$[j$];\n          if (block.puid === puid) {\n            finish(block);\n            return;\n          }\n        }\n      }\n      return onError();\n    };\n    onError = function(){\n      return o.onDone();\n    };\n    finish = function(block){\n      return o.onDone({\n        type: \"block\",\n        weekStartAt: o.event.weekStartAt,\n        event: o.event,\n        block: _.cloneDeep(block)\n      });\n    };\n    return loadPlan();\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"lib/util/loadGroupContent/calcContent/load/loadLearnListDescription/load.ls","text":"(function(){\n  return function(o){\n    var groupLog, learnListDescription, ref$;\n    groupLog = groupLogs[o.groupCode];\n    learnListDescription = (ref$ = groupLog.findLast({\n      event: \"learnListDescription\",\n      listCode: o.event.listCode\n    })) != null ? ref$.description : void 8;\n    if (!learnListDescription) {\n      return o.onDone();\n    } else {\n      return o.onDone({\n        type: \"learnList\",\n        weekStartAt: o.event.weekStartAt,\n        event: o.event,\n        learnListDescription: learnListDescription\n      });\n    }\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"lib/util/loadGroupContent/cleanupRows/calcSubgroups/calc.ls","text":"(function(){\n  return function(rows){\n    var subgroups;\n    return subgroups = _.map(rows, function(r){\n      var ref$;\n      return (ref$ = r.event.subgroup) != null ? ref$ : \"all\";\n    });\n  };\n})();","updated":"2024-03-28T13:51:22.28123"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/default.ls","text":"(function(){\n  return function(page, pageCode, pagePath){\n    var pw;\n    pw = inc(\"pageWrapper/pageWrapper\")(page, pageCode);\n    body.append(pw);\n    inc(\"init/setBottomFreezeDummy/init\")(pw);\n    inc(\"init/scrollElementIntoView/init\")(pw);\n    inc(\"init/freezeMinHeight/init\")(pw);\n    inc(\"init/updateUrlDescription/init\")(pw);\n    inc(\"init/scopeRender/init\")(pw);\n    inc(\"updateLayout/update\")(pw);\n    inc(\"resetLayout/reset\")(pw);\n    inc(\"init/statusBar/init\")(pw);\n    inc(\"init/navbar/init\")(pw);\n    inc(\"init/top/init\")(pw);\n    inc(\"init/bottom/init\")(pw);\n    pw.page.updateUrlDescription();\n    trySafe(function(){\n      return pageCode.start(page);\n    });\n    pw.page.updateLayout();\n    inc(\"init/scrollTop/init\")(pw, pagePath);\n    return pw;\n  };\n})();","updated":"2024-03-28T14:30:33.659284"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/updateLayout/update.ls","text":"(function(){\n  return function(pw){\n    var elementNames;\n    pw.page.updateLayout = function(){\n      return inc(\"update/update\")(pw);\n    };\n    elementNames = [\"pageContent\", \"top\", \"bottom\", \"navTop\", \"navBottom\", \"softKeyboardZone\", \"popupBottom\"];\n    setTimeout(function(){\n      var i$, ref$, len$, n, results$ = [];\n      for (i$ = 0, len$ = (ref$ = elementNames).length; i$ < len$; ++i$) {\n        n = ref$[i$];\n        results$.push(inc(\"onMutationObserver/on\")(pw, n));\n      }\n      return results$;\n    });\n    return pw.onWindowResize(function(){\n      return inc(\"/lib/util/waitFrames/wait\")(2, function(){\n        return pw.page.resetLayout({\n          keepScrollTop: true\n        });\n      });\n    });\n  };\n})();","updated":"2024-05-07T08:49:13.864135"},{"path":"pages/level/finishLevel/_shared/calcCharacter/characters/characters-de.ls","text":"(function(){\n  return function(){\n    var characters, now, charactersXmas;\n    characters = [\n      {\n        pixi: \"female\",\n        voice: \"f1_override_LM\"\n      }, {\n        pixi: \"male-asia\",\n        voice: \"m1_override_SK\"\n      }, {\n        pixi: \"male\",\n        voice: \"m1_override_MG\"\n      }, {\n        pixi: \"female-afro\",\n        voice: \"f1_override_TH\"\n      }, {\n        pixi: \"male-india\",\n        voice: \"m1_override_SK\"\n      }, {\n        pixi: \"male-afro\",\n        voice: \"m1_override_MG\"\n      }, {\n        pixi: \"female-asia\",\n        voice: \"f1_override_LM\"\n      }, {\n        pixi: \"female-india\",\n        voice: \"f1_override_TH\"\n      }, {\n        pixi: \"pig\",\n        voice: \"m1_override_SK\"\n      }, {\n        pixi: \"cow\",\n        voice: \"m1_override_MG\"\n      }, {\n        pixi: \"super-f\",\n        voice: \"f1_override_LM\"\n      }, {\n        pixi: \"super\",\n        voice: \"m1_override_SK\"\n      }\n    ];\n    now = inc(\"/lib/util/formatDate2/format\")();\n    if (now.specialDays.isChristmasPeriod) {\n      charactersXmas = [\n        {\n          pixi: \"xmas\",\n          voice: \"m1_override_SK\"\n        }, {\n          pixi: \"xmas-f\",\n          voice: \"m1_override_LM\"\n        }\n      ];\n      characters = charactersXmas.concat(characters);\n    }\n    return characters;\n  };\n})();","updated":"2024-04-02T09:41:34.360516"},{"path":"pages/level/finishLevel/page.ls","text":"(function(){\n  return function(page){\n    var charactersDisabled, ref$;\n    charactersDisabled = ((ref$ = log.findLast(\"setLevelFinishPageStyle\")) != null ? ref$.value : void 8) === \"simple\";\n    page.finishLevelEvent = inc(\"_shared/calcFinishLevelEvent/calc\")();\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarLevelFinish/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescriptionWithLevel/description\")(page);\n      },\n      start: function(){\n        var o, loadLevel, create, start;\n        o = {\n          page: page\n        };\n        loadLevel = function(){\n          return inc(\"loadLevel/load\")(page, create);\n        };\n        create = function(level){\n          o.level = level;\n          o.isBulb = level.type === \"bulb\";\n          o.isTest = level.type === \"test\";\n          o.score = page.finishLevelEvent.score;\n          o.corrects = page.finishLevelEvent.corrects;\n          o.total = page.finishLevelEvent.total;\n          o.coinData = inc(\"calcCoins/calcCoins\")();\n          app.animateThisLevelScore = page.params.levelPath;\n          o.text = inc(\"_shared/calcText/calc\")(o);\n          o.character = inc(\"_shared/calcCharacter/calc\")(o);\n          page.append(o.isBulb\n            ? inc(\"bulb/bulb\")()\n            : !charactersDisabled ? [o.pixi = inc(\"pixiSpineCanvas/pixiSpineCanvas\")(o), engine.isDebug ? inc(\"voice/voice\")(o.character.voice) : void 8, inc(\"text/text\")(o)] : void 8, !o.isBulb ? o.icons = inc(\"icons/icons\")(o) : void 8, !o.isBulb ? inc(\"linkReview/link\")(o) : void 8, Div({\n            marginBottom: \"3em\"\n          }).html(inc(\"buttonRepeat/button\")(o), inc(\"buttonContinue/button\")(o)));\n          return start();\n        };\n        start = function(){\n          if (!charactersDisabled) {\n            inc(\"_shared/playSoundText/play\")(o, true);\n          }\n          if (charactersDisabled && !o.isBulb) {\n            return setTimeout(function(){\n              if (app.currentPage !== page) {\n                return;\n              }\n              return o.icons.play();\n            }, 1000);\n          } else if (o.isBulb) {\n            return setTimeout(o.text.play, 1000);\n          } else {\n            return setTimeout(function(){\n              if (app.currentPage !== page) {\n                return;\n              }\n              return o.icons.play(function(){\n                if (app.currentPage !== page) {\n                  return;\n                }\n                o.pixi.start();\n                return inc(\"_shared/playSoundText/play\")(o);\n              });\n            }, 1000);\n          }\n        };\n        return loadLevel();\n      }\n    };\n  };\n})();","updated":"2024-04-02T09:41:34.360516"},{"path":"pages/level/finishLevel/_shared/calcText/calc.ls","text":"(function(){\n  return function(o){\n    var quotes, k, v, word, text;\n    quotes = twitch({\n      de: inc(\"quotes/quotes-de\")(),\n      en: inc(\"quotes/quotes-en\")(),\n      en_gb: inc(\"quotes/quotes-en_gb\")(),\n      fr: inc(\"quotes/quotes-fr\")(),\n      es: inc(\"quotes/quotes-es\")(),\n      pt: inc(\"quotes/quotes-pt\")()\n    });\n    for (k in quotes) {\n      v = quotes[k];\n      quotes[k] = _.ensureArray(v);\n    }\n    word = o.isBulb\n      ? \"\"\n      : o.isTest\n        ? _.sample(o.score === 3\n          ? quotes.perfectWords\n          : o.score > 1.8\n            ? quotes.almostPerfectWords\n            : quotes.notGoodWords)\n        : _.sample(o.score === 3\n          ? quotes.perfectWords\n          : o.score > 2.4\n            ? quotes.almostPerfectWords\n            : o.score > 1.8\n              ? quotes.averageWords\n              : quotes.notGoodWords);\n    text = _.sample(o.isBulb\n      ? quotes.bulb\n      : o.isTest\n        ? o.score === 3\n          ? quotes.testPerfect\n          : o.score > 1.8\n            ? quotes.testDone\n            : quotes.testFailed\n        : o.score === 3\n          ? quotes.perfect\n          : o.score > 2.4\n            ? quotes.almostPerfect\n            : o.score > 1.8\n              ? quotes.average\n              : quotes.notGood);\n    return \"<voice>\" + word + \"</voice> <voice>\" + text + \"</voice>\";\n  };\n})();","updated":"2024-04-02T09:41:34.360516"},{"path":"pages/start/login/01_step1/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        var start;\n        page.submit = function(){\n          return inc(\"submit/submit\")(page);\n        };\n        page.submitQRCode = function(data){\n          return inc(\"submitQRCode/submit\")(page, data);\n        };\n        start = function(hasQrScanner){\n          page.html(inc(\"form/form\")(page), inc(\"linkQrcode/link\")(page, hasQrScanner), inc(\"linkHelp/link\")(page));\n          return page.form.input.start();\n        };\n        if (page.params.qrCodeScanData) {\n          page.html(inc(\"form/form\")(page), inc(\"linkQrcode/link\")(page), inc(\"linkHelp/link\")(page));\n          page.form.input.start();\n          return inc(\"submitQRCode/submit\")(page);\n        } else {\n          return inc(\"loadQrScanner/load\")(start);\n        }\n      }\n    };\n  };\n})();","updated":"2025-08-13T07:00:12.985154"},{"path":"lib/util/loadGroupContent/cleanupRows/calcUnselectedLevels/calc.ls","text":"(function(){\n  return function(rows){\n    var puids, i$, len$, r, ul, j$, len1$, puid, keys;\n    puids = {};\n    for (i$ = 0, len$ = rows.length; i$ < len$; ++i$) {\n      r = rows[i$];\n      ul = r.event.unselectedLevels || [];\n      for (j$ = 0, len1$ = ul.length; j$ < len1$; ++j$) {\n        puid = ul[j$];\n        puids[puid] = true;\n      }\n    }\n    return keys = _.keys(puids);\n  };\n})();","updated":"2024-05-07T13:42:05.414932"},{"path":"lib/util/downloadManager/manager.ls","text":"(function(){\n  var manager;\n  manager = null;\n  return function(p){\n    var m;\n    if (manager) {\n      return manager;\n    }\n    m = {};\n    m.isPreparingPlans = false;\n    m.isLoadingLevels = false;\n    m.downloadPaused = false;\n    m.currentlyPreparingPlansTotal = 0;\n    m.currentlyLoadingLevels = 0;\n    m.planInfos = {};\n    m.updateDom = function(id){\n      return inc(\"updateDom/update\")(m, id);\n    };\n    m.completePlan = function(id){\n      return inc(\"completePlan/complete\")(m, id);\n    };\n    m.initPlan = function(id){\n      return inc(\"initPlan/init\")(m, id);\n    };\n    m.initEnabledPlans = function(){\n      return inc(\"initEnabledPlans/init\")(m);\n    };\n    m.loadPendingLevels = function(){\n      return inc(\"loadPendingLevels/load\")(m);\n    };\n    m.addConnectionListener = function(){\n      return inc(\"addConnectionListener/add\")(m);\n    };\n    m.enablePlan = function(id){\n      return inc(\"enablePlan/enable\")(m, id);\n    };\n    m.disablePlan = function(id){\n      return inc(\"disablePlan/disable\")(m, id);\n    };\n    m.getPlanInfo = function(id){\n      return inc(\"getPlanInfo/get\")(m, id);\n    };\n    m.setPriority = function(id){\n      return inc(\"setPriority/set\")(m, id);\n    };\n    m.preparePlan = function(id){\n      return inc(\"preparePlan/prepare\")(m, id);\n    };\n    m.preparePlans = function(){\n      return inc(\"preparePlans/prepare\")(m);\n    };\n    m.pauseDownload = function(){\n      return inc(\"pauseDownload/pause\")(m);\n    };\n    m.continueDownload = function(){\n      return inc(\"continueDownloads/continue\")(m);\n    };\n    m.getDownloadBar = function(id, options){\n      return inc(\"getDownloadBar/get\")(m, id, options);\n    };\n    m.removeFiles = function(id, onDone){\n      return inc(\"removeFiles/remove\")(m, id, onDone);\n    };\n    manager = m;\n    m.initEnabledPlans();\n    m.addConnectionListener();\n    return manager;\n  };\n})();","updated":"2024-08-27T08:53:00.426922"},{"path":"lib/util/downloadManager/continueDownloads/continue.ls","text":"(function(){\n  return function(manager){\n    manager.downloadPaused = false;\n    return manager.loadPendingLevels();\n  };\n})();","updated":"2024-08-27T08:53:00.426922"},{"path":"lib/util/downloadManager/pauseDownload/pause.ls","text":"(function(){\n  return function(manager){\n    return manager.downloadPaused = true;\n  };\n})();","updated":"2024-08-27T08:53:00.426922"},{"path":"pages/content/plan/_topbar/menu/items/pimpPreschool/calcShapePlanItems/calc.ls","text":"(function(){\n  return function(items){\n    var labels, items2, i$, len$, i;\n    labels = {\n      beginner: T(\"simple\"),\n      intermediate: T(\"intermediate\"),\n      advanced: T(\"advanced\")\n    };\n    items2 = _.filter(items, function(i){\n      return _.includes(i.plan.project, \"shape\");\n    });\n    items2 = _.orderBy(items2, \"plan.sortIndex\");\n    for (i$ = 0, len$ = items2.length; i$ < len$; ++i$) {\n      i = items2[i$];\n      i.label = i.plan.title + \" (\" + labels[i.plan.preschoolDifficulty] + \")\";\n    }\n    return items2;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/games/01_gamesList/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var ref$;\n    if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n      return inc(\"../_topbarNext/topbar\")(page);\n    }\n    return inc(\"/addons/topbar2/topbar\")({\n      title: T(\"games\"),\n      coins: true\n    });\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/games/02_gameDetails/difficulties/difficulties.ls","text":"(function(){\n  return function(gd){\n    var difficulty;\n    return Div({\n      padding: \"1em 0\"\n    }).html(gd.difficulties\n      ? (function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = gd.difficulties).length; i$ < len$; ++i$) {\n          difficulty = ref$[i$];\n          results$.push(inc(\"row/row\")(difficulty, gd));\n        }\n        return results$;\n      }())\n      : (difficulty = {\n        title: T(\"start\")\n      }, inc(\"row/row\")(difficulty, gd)));\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/image/image.ls","text":"(function(){\n  return function(gd){\n    var s;\n    s = \"9em\";\n    return inc(\"/lib/gui/image/image\")({\n      id: gd.icon,\n      fileFolder: \"media/gameIcons/_images\"\n    }).css({\n      width: s,\n      height: s,\n      backgroundPosition: gd.iconPosition,\n      border: \"5px solid \" + Color.grey[400],\n      borderRadius: \"50%\",\n      margin: \"0 auto\",\n      marginTop: \"1em\",\n      overflow: \"hidden\"\n    });\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/feedbackPopup/feedback.ls","text":"(function(){\n  return function(gd){\n    var tap;\n    tap = function(){\n      return inc(\"popup/popup\")(gd);\n    };\n    return Div({\n      marginTop: \"0.5em\"\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"suggestions\")\n    }).tap(tap));\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/subtitle/subtitle.ls","text":"(function(){\n  return function(gd){\n    if (!gd.subtitle) {\n      return;\n    }\n    return Div({\n      textAlign: \"center\",\n      marginBottom: \"0.5em\",\n      marginTop: \"0.8em\"\n    }).html(gd.subtitle);\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/userNoneInfo/info.ls","text":"(function(){\n  return function(){\n    return Div({\n      lineHeight: \"1.5em\",\n      maxWidth: \"20em\",\n      padding: \"0.8em\",\n      margin: \"1.5em auto\",\n      backgroundColor: Color.grey[100]\n    }).html(T(\"loginToPlay\"));\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/icons/icons.ls","text":"(function(){\n  return function(onChoose){\n    var choose, iconProperties, div, icons, i, icon;\n    choose = function(index){\n      var i$, ref$, len$, i, icon, results$ = [];\n      onChoose(index);\n      for (i$ = 0, len$ = (ref$ = icons).length; i$ < len$; ++i$) {\n        i = i$;\n        icon = ref$[i$];\n        results$.push(icon.setSelected(i === index));\n      }\n      return results$;\n    };\n    iconProperties = [\n      {\n        path: path(\"/lib/svg/emoticon/cry.svg\"),\n        color: Color.red[500]\n      }, {\n        path: path(\"/lib/svg/emoticon/sad.svg\"),\n        color: Color.orange[600]\n      }, {\n        path: path(\"/lib/svg/emoticon/neutral.svg\"),\n        color: Color.yellow[600]\n      }, {\n        path: path(\"/lib/svg/emoticon/smile.svg\"),\n        color: Color.lime[500]\n      }, {\n        path: path(\"/lib/svg/emoticon/laugh.svg\"),\n        color: Color.green[500]\n      }\n    ];\n    div = Div({\n      padding: \"0.2em 0 0.4em\"\n    }).html(icons = (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = iconProperties).length; i$ < len$; ++i$) {\n        i = i$;\n        icon = ref$[i$];\n        results$.push(inc(\"icon/icon\")(icon, i, choose));\n      }\n      return results$;\n    }()));\n    div.icons = icons;\n    div.choose = choose;\n    return div;\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/popup.ls","text":"(function(){\n  return function(gd){\n    var rating, onIconSelect, send, div, popup;\n    onIconSelect = function(i){\n      div.errorLabel.hide();\n      return rating = i + 1;\n    };\n    send = function(){\n      if (div.input.getValue() === \"\" && !(rating > -1)) {\n        div.errorLabel.show();\n        return;\n      }\n      div.errorLabel.hide();\n      inc(\"sendFeedback/send\")({\n        gameId: gd.id,\n        text: div.input.getValue(),\n        rating: rating\n      });\n      return popup.close();\n    };\n    div = Div({\n      margin: \"1em 0.5em 0.5em\"\n    });\n    div.html(div.text = inc(\"text/text\")(), div.icons = inc(\"icons/icons\")(onIconSelect), div.input = inc(\"input/input\")(send), div.errorLabel = inc(\"errorLabel/label\")(), div.button = inc(\"button/button\")(send));\n    requestAnimationFrame(function(){\n      return div.input.start();\n    });\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"addons/topbarLevel/progressBar/calcSublevels/calc.ls","text":"(function(){\n  return function(page){\n    var listCode, ld, currentId;\n    if (page.params.context !== \"learnList\") {\n      return {};\n    }\n    listCode = page.params.levelPath.split(\"/\")[2];\n    ld = inc(\"/../app01-learn-list/data/calcEnhancedLearnListDescription/calc\")({\n      listCode: listCode\n    });\n    currentId = +page.params.levelPath.split(\"/sublevel-\")[1];\n    return {\n      total: ld.totalSublevels,\n      before: currentId - 1,\n      after: ld.totalSublevels - currentId\n    };\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/rows/abortRow/row.ls","text":"(function(){\n  return function(level){\n    var css;\n    css = {\n      flex: \"1 1 auto\",\n      borderBottom: \"1px solid \" + Color.grey[200]\n    };\n    return Div().css({\n      display: \"flex\",\n      margin: \"0.5em 0\",\n      minHeight: \"5em\"\n    }).append(Div(css), Div().css({\n      padding: \"0.2em 0.5em\",\n      fontSize: \"0.9em\",\n      color: Color.grey[600]\n    }).html(level.isSkipped\n      ? T(\"levelSkipped\")\n      : T(\"levelAborted\")), Div(css));\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/00_shared/pixiGame/basePage/basePage.ls","text":"(function(){\n  return function(o){\n    var topbar;\n    if (o.page.params.gameDescription != null) {\n      o.gameDescription = o.page.params.gameDescription;\n    }\n    topbar = inc(\"topbar/topbar\")({\n      gameDescription: o.gameDescription,\n      close: function(){\n        var ref$, ref1$;\n        if ((ref$ = o.page.pixiApp) != null) {\n          if ((ref1$ = ref$.sceneManager) != null) {\n            ref1$.pause();\n          }\n        }\n        return inc(\"closeConfirmationPopup/popup\")(o.page.pixiApp);\n      },\n      showHelp: function(){\n        var ref$, ref1$;\n        if (o.gameDescription != null) {\n          if ((ref$ = o.page.pixiApp) != null) {\n            if ((ref1$ = ref$.sceneManager) != null) {\n              ref1$.pause();\n            }\n          }\n          return inc(\"/pages/games/02_gameDetails/manualPopup/popup/popup\")(o.gameDescription, function(){\n            var ref$, ref1$;\n            return (ref$ = o.page.pixiApp) != null ? (ref1$ = ref$.sceneManager) != null ? ref1$.resume() : void 8 : void 8;\n          });\n        }\n      }\n    });\n    return {\n      top: function(){\n        return topbar;\n      },\n      urlDescription: function(){\n        return inc(\"../../_urlDescription/description\")();\n      },\n      finish: function(){\n        var ref$;\n        inc(\"/lib/util/orientation/unlock\")();\n        return (ref$ = o.page.pixiApp) != null ? ref$.cleanup() : void 8;\n      },\n      start: function(){\n        var wrapper;\n        inc(\"/lib/util/orientation/lock\")();\n        o.page.append(wrapper = Div({\n          width: \"100%\",\n          height: \"var(--centerHeight)\"\n        }));\n        return inc(\"/lib/util/waitFrames/wait\")(3, function(){\n          var offset, obj, ref$;\n          offset = wrapper.offset();\n          obj = {\n            gameDescription: o.gameDescription,\n            backgroundColor: (ref$ = o.backgroundColor) != null ? ref$ : 0xffffff,\n            displayFPS: o.displayFPS,\n            width: offset.width,\n            height: offset.height,\n            sounds: typeof o.sounds == 'function' ? o.sounds() : void 8,\n            setup: function(pixiApp){\n              var cb;\n              cb = function(textures){\n                pixiApp.textures = textures;\n                o.onLoaded(pixiApp);\n                return pixiApp.onLoaded();\n              };\n              if (o.svgs == null) {\n                cb();\n                return;\n              }\n              return inc(\"../pixi/svgTextureLoader/load\")({\n                svgs: o.svgs(pixiApp.width, pixiApp.height),\n                renderer: pixiApp.renderer,\n                callback: cb\n              });\n            },\n            topBar: topbar\n          };\n          o.page.pixiApp = inc(\"../pixi/BaseGame/create\")(obj);\n          o.page.pixiApp.sendDebugGameEvent(\"gameStarted\");\n          return wrapper.append(o.page.pixiApp.view.css({\n            display: \"block\",\n            width: \"100%\",\n            height: \"100%\"\n          }));\n        });\n      }\n    };\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/difficulties/row/highscoreButton/highscoreButton.ls","text":"(function(){\n  return function(difficulty, gd){\n    var tap;\n    if ((difficulty != null && difficulty.highscoreDisabled) || gd.highscoreDisabled) {\n      return;\n    }\n    tap = function(){\n      var title, ref$;\n      title = gd.title;\n      if (gd.difficulties) {\n        title += \" (\" + difficulty.title + \")\";\n      }\n      return inc(\"/pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/show\")({\n        gameId: gd.id,\n        ascending: gd.highscoreAscending,\n        highscoreType: gd.highscoreType,\n        popupTitle: title,\n        difficulty: (ref$ = difficulty.value) != null ? ref$ : 2\n      });\n    };\n    return Div({\n      display: \"flex\",\n      alignSelf: \"stretch\",\n      padding: \"0 1em\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/icon/list.svg\")\n    })).tap({\n      up: tap,\n      animation: \"hover\"\n    });\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/feedbackPopup/popup/icons/icon/icon.ls","text":"(function(){\n  return function(icon, i, onClick){\n    var setSelected, notMobile, div;\n    setSelected = function(selected){\n      div.css({\n        opacity: selected ? 1 : 0.2,\n        pointerEvents: selected ? \"none\" : \"auto\"\n      });\n      if (selected) {\n        return inc(\"animate/animate\")(div);\n      }\n    };\n    notMobile = body.width() > 600;\n    div = Div({\n      display: \"inline-block\",\n      width: \"2.4em\",\n      height: \"2.4em\",\n      padding: \"0.4em\",\n      borderRadius: \"1.2em\",\n      margin: \"0.3em\",\n      marginBottom: 0,\n      overflow: \"hidden\",\n      backgroundColor: icon.color\n    }).tap({\n      down: function(){\n        return onClick(i);\n      },\n      animation: \"none\"\n    }).html(SvgIcon({\n      svg: icon.path,\n      color: Color.black,\n      size: notMobile ? \"2em\" : \"1.5em\"\n    }));\n    if (notMobile) {\n      div.css({\n        width: \"3.5em\",\n        height: \"3.5em\",\n        padding: \"0.75em\",\n        borderRadius: \"1.75em\",\n        margin: \"0.5em\"\n      });\n    }\n    div.setSelected = setSelected;\n    return div;\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/price/price.ls","text":"(function(){\n  return function(gd){\n    if (!gd.price) {\n      return;\n    }\n    return Div({\n      textAlign: \"center\",\n      marginTop: \"0.8em\"\n    }).html(T(\"oneGameCosts\"), Div({\n      display: \"inline-flex\",\n      marginLeft: \"0.4em\"\n    }).html(Div({\n      flex: \"1 1 auto\",\n      color: Color.yellow[700]\n    }).html(gd.price), SvgIcon({\n      svg: path(\"/lib/svg/illustration/coin.svg\"),\n      size: \"1em\"\n    }).css({\n      flex: \"0 0 1em\",\n      marginTop: \"0.1em\",\n      marginRight: \"0.7em\",\n      marginLeft: \"0.2em\"\n    })));\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/rows/rows.ls","text":"(function(){\n  return function(level, p){\n    var div, e, isAborted, isUnselectedSwitchPathSlide, totalScored, currentScored, showUnfinishedScores, slides, i$, len$, i, slide;\n    div = ScrollDiv().css({\n      flex: \"0 1 auto\"\n    }).addClass(\"reviewRows\");\n    if (p.popupType === \"review\") {\n      e = p.levelEvent;\n      isAborted = (e != null ? e.event : void 8) === \"abortLevel\" || ((e != null ? e.event : void 8) === \"finishLevel\" && e.isSkipped);\n      isUnselectedSwitchPathSlide = inc(\"isUnselectedSwitchPathSlide/is\");\n      if (isAborted) {\n        totalScored = e.corrects + e.resolved;\n        currentScored = 0;\n        showUnfinishedScores = _.find(level.scoreEvents, {\n          unfinished: true\n        });\n      }\n      if (engine.isDebug) {\n        div.append(inc(\"debugInfo/info\")(level, p));\n      }\n    }\n    slides = p.popupType === \"review\"\n      ? _.filter(level.slides, function(slide){\n        return !isUnselectedSwitchPathSlide(slide, e);\n      })\n      : level.slides;\n    for (i$ = 0, len$ = slides.length; i$ < len$; ++i$) {\n      i = i$;\n      slide = slides[i$];\n      if (isAborted) {\n        currentScored += slide.totalProgressElements;\n        if (currentScored > totalScored) {\n          if (showUnfinishedScores) {\n            showUnfinishedScores = false;\n          } else {\n            div.append(inc(\"abortRow/row\")(level));\n            break;\n          }\n        }\n      }\n      div.append(inc(\"header/header\")(slide, i, p), inc(\"slideDiv/slideDiv\")(slide, i, p));\n    }\n    return div;\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"addons/topbarLevel/progressBar/progressBar.ls","text":"(function(){\n  return function(page){\n    var o, elements, soundEnabled, sublevels, init, removeLastAdded, updateElementsWidth, addElement, removeElement, showElement, wrapper, roundWrapper, div;\n    o = {};\n    elements = [];\n    soundEnabled = true;\n    sublevels = inc(\"calcSublevels/calc\")(page);\n    init = function(totalProgressElements){\n      var slides, i$, ref$, len$, el;\n      if (_.isArray(totalProgressElements)) {\n        slides = totalProgressElements;\n        totalProgressElements = _.sumBy(slides, \"totalProgressElements\");\n      }\n      if (elements.length > 0) {\n        for (i$ = 0, len$ = (ref$ = elements).length; i$ < len$; ++i$) {\n          el = ref$[i$];\n          el.remove();\n        }\n        elements = [];\n      }\n      o.totalProgressElements = totalProgressElements;\n      o.startProgressElements = totalProgressElements;\n      o.totalGreen = 0;\n      o.totalRed = 0;\n      o.totalGrey = 0;\n      o.progressColors = [];\n      return o.progressBarMode = (ref$ = page.params.context) === \"preschoolShape\" || ref$ === \"assistantMathWithPreschoolProgressBar\" ? \"preschoolShape\" : \"normal\";\n    };\n    removeLastAdded = function(noTransition){\n      var el;\n      el = elements.pop();\n      if (el) {\n        el.count = Math.max(0, el.count - 1);\n        updateElementsWidth(noTransition);\n        if (el.count > 0) {\n          return elements.push(el);\n        } else {\n          return setTimeout(function(){\n            return el.remove();\n          }, 300);\n        }\n      }\n    };\n    updateElementsWidth = function(noTransition){\n      return inc(\"updateElementsWidth/update\")(o, elements, noTransition);\n    };\n    addElement = function(n){\n      n == null && (n = 1);\n      o.totalProgressElements = o.totalProgressElements + n;\n      updateElementsWidth();\n      return div;\n    };\n    removeElement = function(n){\n      n == null && (n = 1);\n      o.totalProgressElements = o.totalProgressElements - n;\n      updateElementsWidth();\n      return div;\n    };\n    showElement = function(type){\n      var slide, ref$, e;\n      if (type === \"green\") {\n        o.totalGreen++;\n      } else if (type === \"red\") {\n        o.totalRed++;\n      } else if (type === \"grey\") {\n        o.totalGrey++;\n      }\n      o.progressColors.push(type);\n      slide = page.levelPlayer.currentSlide;\n      if (slide == null) {\n        return;\n      }\n      slide.progressBarDetails == null && (slide.progressBarDetails = {});\n      (ref$ = slide.progressBarDetails)[type] == null && (ref$[type] = 0);\n      slide.progressBarDetails[type] += 1;\n      if (soundEnabled) {\n        inc(\"playSound/play\")(o, type);\n      }\n      if (elements.length === 0 || elements[elements.length - 1].type !== type) {\n        div.append(e = inc(\"element/element\")(type, o.totalProgressElements));\n        elements.push(e);\n      } else {\n        elements[elements.length - 1].count++;\n      }\n      updateElementsWidth();\n      return div;\n    };\n    wrapper = Div({\n      flex: \"1 1 auto\",\n      display: \"flex\"\n    }).html(roundWrapper = Div({\n      display: \"flex\",\n      borderRadius: \"6px\",\n      overflow: \"hidden\",\n      opacity: \"0.99\",\n      width: \"12em\",\n      maxWidth: \"85%\"\n    }).html(inc(\"sublevel/sublevel\")(sublevels.before), div = Div({\n      flex: \"1 1 auto\",\n      display: \"inline-block\",\n      height: \"12px\",\n      whiteSpace: \"nowrap\",\n      textAlign: \"left\",\n      margin: \"0 2px\",\n      backgroundColor: sublevels.total > 1\n        ? Color.grey[350]\n        : Color.grey[250]\n    }), inc(\"sublevel/sublevel\")(sublevels.after)));\n    roundWrapper.firstChild.css({\n      marginLeft: \"0px\"\n    });\n    roundWrapper.lastChild.css({\n      marginRight: \"0px\"\n    });\n    div.init = init;\n    div.showGreen = function(){\n      return showElement(\"green\");\n    };\n    div.showRed = function(){\n      return showElement(\"red\");\n    };\n    div.showGrey = function(){\n      return showElement(\"grey\");\n    };\n    div.addElement = addElement;\n    div.removeElement = removeElement;\n    div.removeLastAdded = removeLastAdded;\n    div.getStats = function(){\n      return o;\n    };\n    div.disableSounds = function(){\n      return soundEnabled = false;\n    };\n    div.enableSounds = function(){\n      return soundEnabled = true;\n    };\n    page.progressBar = div;\n    return wrapper;\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"addons/navbar/bar/bar.ls","text":"(function(){\n  return function(items, tabSize){\n    var barDiv;\n    barDiv = Div({\n      position: \"absolute\",\n      top: 0,\n      display: \"flex\",\n      width: \"100%\",\n      height: \"100%\",\n      alignItems: \"stretch\",\n      background: Color.grey[150],\n      justifyContent: \"flex-end\"\n    }).addClass(\"bar\").css(app.lastNavbarTabSize === tabSize\n      ? {\n        opacity: 1\n      }\n      : {\n        opacity: 0,\n        pointerEvents: \"none\"\n      });\n    barDiv.tabSize = tabSize;\n    barDiv.items = items;\n    barDiv.html(inc(\"tabs/tabs\")(barDiv), inc(\"spacer/spacer\")(), inc(\"user/user\")(barDiv));\n    return barDiv;\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/calcGameDescription/calc.ls","text":"(function(){\n  return function(page){\n    var game, gd;\n    game = page.params.game;\n    gd = inc(\"../../00_shared/gameDescriptions/descriptions/\" + game + \"/\" + game)();\n    gd.notEnoughCoins = gd.price > page.userDescription.totalCoins;\n    return gd;\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/games/02_gameDetails/manualPopup/manual.ls","text":"(function(){\n  return function(gd){\n    var tap;\n    if (gd.manual == null) {\n      return undefined;\n    }\n    tap = function(){\n      return inc(\"popup/popup\")(gd);\n    };\n    return Div({\n      marginTop: \"1em\"\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"manual\")\n    }).tap(tap));\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/manualPopup/popup/body/body.ls","text":"(function(){\n  return function(text){\n    return Div({\n      margin: \"0.5em 1em 0\"\n    }).html(text);\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/manualPopup/popup/popup.ls","text":"(function(){\n  return function(gd, onClose){\n    var div;\n    inc(\"/pages/games/00_shared/pixiGame/pixi/BaseGame/debugGameEvent/send\")(gd.id, \"helpShown\");\n    div = Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      margin: \"1em 0\"\n    }).html(inc(\"title/title\")(gd.title), inc(\"body/body\")(gd.manual));\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: onClose\n    });\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/manualPopup/popup/title/title.ls","text":"(function(){\n  return function(title){\n    return Div({\n      fontSize: \"1.3em\"\n    }).html(title);\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/rows/header/header.ls","text":"(function(){\n  return function(slide, i, p){\n    return Div({\n      marginTop: \"1em\",\n      borderTop: \"1px solid \" + Color.grey[200],\n      textAlign: \"right\"\n    }).html(Div({\n      display: \"inline-flex\",\n      padding: \"0.1em 0.7em\",\n      fontSize: \"0.7em\",\n      color: Color.grey[400]\n    }).html(inc(\"switchPath/switchPath\")(slide, p), inc(\"index/index\")(i + 1)));\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/rows/header/index/index.ls","text":"(function(){\n  return function(index){\n    return Div().html(index);\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/rows/header/switchPath/switchPath.ls","text":"(function(){\n  return function(slide, p){\n    var switchPathNames;\n    if (p.popupType === \"review\") {\n      return;\n    }\n    switchPathNames = _.ensureArray(slide.trainerParams.switchPath);\n    return Div({\n      paddingRight: \"0.5em\"\n    }).html(switchPathNames.join(\", \"));\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/rows/isUnselectedSwitchPathSlide/is.ls","text":"(function(){\n  return function(slide, e){\n    var selectedSwitchPaths, switchPathNames, i$, len$, n;\n    selectedSwitchPaths = e != null ? e.selectedSwitchPaths : void 8;\n    if (!selectedSwitchPaths) {\n      return false;\n    }\n    switchPathNames = _.ensureArray(slide.trainerParams.switchPath);\n    if (!switchPathNames) {\n      return false;\n    }\n    for (i$ = 0, len$ = switchPathNames.length; i$ < len$; ++i$) {\n      n = switchPathNames[i$];\n      if (!_.includes(selectedSwitchPaths, n)) {\n        return true;\n      }\n    }\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"addons/navbar/bar/user/user/items/itemMathWeeklySpecial/label/debugAssistantNameId/id.ls","text":"(function(){\n  return function(weeklySpecialData){\n    var id;\n    if (!engine.isDebug) {\n      return;\n    }\n    id = _.slice(weeklySpecialData.assistantName, 0, 4);\n    return Div({\n      position: \"absolute\",\n      top: \"-0.7em\",\n      right: \"-0.5em\",\n      fontSize: \"0.8em\",\n      color: Color.grey[400]\n    }).html(id);\n  };\n})();","updated":"2025-04-11T08:03:52.213197"},{"path":"pages/level/afterFinish/pages/antonPlus/page3NewFamily/icon/icon.ls","text":"(function(){\n  return function(page){\n    return SvgIcon({\n      svg: path(\"/lib/svg/illustration/family-plus.svg\"),\n      size: \"7em\"\n    }).css({\n      margin: \"1em auto\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/start/login/01_step1/linkQrcode/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/iconModern/qr-code.svg\"),\n      size: \"1.5em\",\n      color: Color.black\n    }).css({\n      marginRight: \"0.2em\"\n    });\n  };\n})();","updated":"2026-01-06T08:48:38.102475"},{"path":"addons/topbar2/close/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/close-mini.svg\")\n    }).addClass(\"topbarIcon\").css({\n      flex: \"0 0 auto\",\n      marginTop: \"0.06em\",\n      marginRight: \"-0.1em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbar2/menu/icon/icon.ls","text":"(function(){\n  return function(o){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-down-mini.svg\"),\n      color: Color.grey[800]\n    }).addClass(\"topbarIcon\");\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbar2/tools/coins/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/illustration/coin.svg\")\n    }).css({\n      flex: \"0 0 auto\",\n      marginLeft: \"0.2em\",\n      marginTop: \"0.02em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/security/_topbar/title/title.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      display: \"flex\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/security.svg\"),\n      color: Color.grey[700]\n    }).css({\n      marginRight: \"0.4em\"\n    }), inc(\"/lib/seo/element/h1/h1\")(T(\"security\")));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/pixelPaintImageShared/info/heartIcon/icon.ls","text":"(function(){\n  return function(image){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/heart.svg\"),\n      color: image.likes\n        ? Color.pink[500]\n        : Color.grey[400]\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/navbar/bar/user/user/avatar/alert/alert.ls","text":"(function(){\n  return function(userDescription){\n    var div;\n    div = Div({\n      display: \"flex\"\n    }).addClass(\"onNewLogEvents_markForDelete\");\n    div.onNewLogEvents = function(){\n      return div.replaceWith(inc(THISFILE)(inc(\"/data/user/calcUserDescription/calc\")()));\n    };\n    if (!(userDescription != null && userDescription.markForDelete)) {\n      return div;\n    }\n    return div.html(SvgIcon({\n      svg: path(\"/lib/svg/illustration/alert.svg\")\n    })).css({\n      position: \"absolute\",\n      bottom: \"-3px\",\n      left: \"-3px\",\n      width: \"1em\",\n      height: \"1em\",\n      filter: 'drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.4))'\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/navbar/bar/user/user/header/avatar/plusIcon/icon.ls","text":"(function(){\n  return function(d){\n    if (d.hasPlusAccess) {\n      return SvgIcon({\n        svg: path(\"/lib/svg/illustration/anton-plus.svg\"),\n        size: \"0.8em\"\n      }).css({\n        position: \"absolute\",\n        bottom: \"0.3em\",\n        right: \"0.9em\"\n      });\n    }\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/navbar/bar/user/user/items/itemPlusVersion/item.ls","text":"(function(){\n  return function(){\n    var d;\n    d = inc(\"/data/user/calcUserDescription/calc\")();\n    if (d.hasPlusAccess) {\n      return;\n    }\n    if (d.isDPASchoolMember) {\n      return;\n    }\n    if (d.hasAntonPlusHidden) {\n      return;\n    }\n    return {\n      label: inc(\"label/label\")(),\n      icon: SvgIcon({\n        svg: path(\"/lib/svg/illustration/anton-plus.svg\")\n      }).css({\n        margin: \"0.2em 0.4em 0 0\"\n      }),\n      click: function(){\n        inc(\"logPromo/log\")();\n        return startPage({\n          path: path(\"/pages/static/antonPlus/1_products/page\"),\n          animation: \"slideUp\",\n          params: {\n            referrer: \"userMenu\"\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/support/help/chat/bottom/buttonsMobileSendOrDown/downButton/button.ls","text":"(function(){\n  return function(page, isIos){\n    var tap, div;\n    tap = function(){\n      return page.input.stop();\n    };\n    div = Div({\n      display: \"flex\",\n      alignSelf: \"stretch\",\n      padding: \"0 1.5em 0 0.3em\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-down-small.svg\"),\n      color: Color.blue[500],\n      size: \"0.9em\"\n    })).hide();\n    if (isIos) {\n      div.bind(\"touchstart\", tap);\n    } else {\n      div.tap(tap);\n    }\n    return page.downButton = div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/schoolSearch/00_shared/topbarAbort/abort.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      var ref$;\n      if ((ref$ = document.activeElement) != null) {\n        ref$.blur();\n      }\n      return inc(\"popupAbort/popup\")(page);\n    };\n    return Div({\n      alignSelf: \"stretch\",\n      display: \"flex\",\n      padding: \"0 0.3em 0 0.3em\"\n    }).html(SvgIcon(path(\"/lib/svg/icon/close-small.svg\"))).tap(tap);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/schoolSearch/02_countrySearch/list/row/arrowIcon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      color: Color.grey[400]\n    }).css({\n      flex: \"0 0 auto\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/schoolSearch/03_citySearch/list/row/arrowIcon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      color: Color.grey[400]\n    }).css({\n      flex: \"0 0 auto\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/schoolSearch/04_schoolSearch/list/row/arrowIcon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      color: Color.grey[400]\n    }).css({\n      flex: \"0 0 auto\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/games/01_gamesList/row/debugIcon/debugIcon.ls","text":"(function(){\n  return function(gd){\n    if (!gd.debugOnly && !gd.isHidden) {\n      return;\n    }\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\"),\n      size: \"1em\"\n    }).css({\n      flex: \"0 0 auto\",\n      marginRight: \"0.3em\"\n    });\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/support/help/chat/list/row/message/avatar/avatar.ls","text":"(function(){\n  return function(page, message){\n    return Div().css({\n      flex: \"0 0 auto\",\n      display: \"flex\",\n      width: \"2em\",\n      height: \"2em\"\n    }).onScopeRender(function(){\n      return this.append(message.from === \"support\"\n        ? SvgIcon({\n          svg: path(\"/lib/svg/logo/anton-smiley.svg\"),\n          width: \"0.9em\",\n          height: \"0.9em\"\n        })\n        : inc(\"/lib/gui/avatar/avatar\")(page.userDescription).css({\n          width: \"2em\",\n          height: \"2em\"\n        }));\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbarGame/header/center/gameScore/icon/icon.ls","text":"(function(){\n  return function(o){\n    var prevIcon, prevColor, div;\n    o.updateGameScoreIcon = function(){\n      if ((!o.gameScore || !o.gameScoreIcon) && o.gameScore !== 0) {\n        div.empty();\n        return;\n      }\n      if (o.gameScoreIcon === prevIcon && o.gameTextColor === prevColor) {\n        return;\n      }\n      prevIcon = o.gameScoreIcon;\n      prevColor = o.gameTextColor;\n      return div.html(SvgIcon({\n        svg: o.gameScoreIcon,\n        color: o.gameTextColor || Color.black\n      }));\n    };\n    return div = Div({\n      flex: \"0 0 auto\",\n      display: \"flex\",\n      marginRight: \"0.3em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbarWhiteBack/closeIcon/icon.ls","text":"(function(){\n  return function(o){\n    var tap;\n    if (o.close == null) {\n      return;\n    }\n    tap = function(){\n      return o.close();\n    };\n    return Div({\n      position: \"absolute\",\n      right: 0,\n      top: 0,\n      display: \"flex\",\n      padding: \"0.7em\",\n      zIndex: 1,\n      backgroundColor: \"rgba(255,255,255,0.8)\"\n    }).html(SvgIcon(path(\"/lib/svg/icon/close-small.svg\"))).tap({\n      up: tap,\n      tapZone: \"0 1em 1em 0\"\n    }).attr({\n      \"aria-label\": T(\"closeButton\"),\n      role: \"button\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/screenKeyboard/createKeys/keys/left/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-left-small.svg\"),\n      width: '1.2em',\n      height: '1.2em'\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/userStarsTrophiesCoinsDiv/div.ls","text":"(function(){\n  return function(userDescription){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\"\n    }).append(Div({\n      flex: \"0 0 auto\",\n      color: Color.yellow[700],\n      marginRight: \"0.1em\"\n    }).html(userDescription.totalCoins), SvgIcon({\n      svg: path(\"/lib/svg/illustration/coin.svg\")\n    }).css({\n      flex: \"0 0 auto\",\n      marginRight: \"0.6em\"\n    }), Div({\n      flex: \"0 0 auto\",\n      color: Color.green[600],\n      marginRight: \"0.1em\"\n    }).html(userDescription.totalStars), SvgIcon({\n      svg: path(\"/lib/svg/shape/star.svg\"),\n      color: Color.green[500]\n    }).css({\n      flex: \"0 0 auto\",\n      marginRight: \"0.6em\"\n    }), Div({\n      flex: \"0 0 auto\",\n      color: Color.yellow[700],\n      marginRight: \"0.1em\"\n    }).html(userDescription.totalTrophies), SvgIcon({\n      svg: path(\"/lib/svg/shape/trophy.svg\"),\n      color: Color.yellow[600]\n    }).css({\n      flex: \"0 0 auto\"\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/rating/completed/completed.ls","text":"(function(){\n  return function(value, small){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\"\n    }).html(Div({\n      display: \"inline-flex\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/check.svg\"),\n      color: Color.grey[400],\n      width: !small ? \"1.3em\" : void 8\n    }).css({\n      marginRight: \"0.2em\"\n    }), Div({\n      color: Color.grey[500],\n      fontSize: small ? \"0.8em\" : void 8\n    }).html(value === \"good\"\n      ? T(\"thanksGoodRating\")\n      : T(\"thanksRating\"))));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/link/link.ls","text":"(function(){\n  return function(o){\n    var label, direction, iconColor, div;\n    label = o.label || o;\n    direction = o.direction || \"right\";\n    iconColor = o.iconColor || Color.grey[500];\n    div = Div({\n      display: \"inline-flex\",\n      marginBottom: \"0.1em\"\n    });\n    if (direction === \"right\") {\n      div.css({\n        marginLeft: \"0.4em\"\n      }).append(div.label = Div({\n        padding: \"0.2em 0 0.2em 0.3em\"\n      }).html(label), div.icon = SvgIcon({\n        svg: path(\"/lib/svg/icon/arrow-right-mini.svg\"),\n        color: iconColor\n      }));\n    } else {\n      div.css({\n        marginRight: \"0.4em\"\n      }).append(div.icon = SvgIcon({\n        svg: path(\"/lib/svg/icon/arrow-left-mini.svg\"),\n        color: iconColor\n      }), div.label = Div({\n        padding: \"0.2em 0.3em 0.2em 0\"\n      }).html(label));\n    }\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/antonPlus/0_stopDownloadPopup/icon/icon.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      display: \"inline-block\",\n      marginBottom: \"0.5em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/arrow-download.svg\"),\n      width: \"4em\",\n      height: \"4em\",\n      color: Color.green[500]\n    }), SvgIcon({\n      svg: path(\"/lib/svg/illustration/anton-plus.svg\"),\n      height: \"1.2em\",\n      width: \"1.2em\"\n    }).css({\n      position: \"absolute\",\n      top: \"2.5em\",\n      right: \"0.2em\"\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/screenKeyboard/createKeys/keys/right/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      width: '1.2em',\n      height: '1.2em'\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/screenKeyboard/createKeys/keys/shift/icon/icon.ls","text":"(function(){\n  return function(o){\n    return SvgIcon({\n      svg: o.shiftStatus\n        ? path(\"/lib/svg/key/shift-active.svg\")\n        : path(\"/lib/svg/key/shift.svg\"),\n      width: '1.2em',\n      height: '1.2em'\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/terms/div/divDe/div.ls","text":"(function(){\n  return function(isPrint){\n    var s, p, section;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div({\n      minHeight: \"var(--centerHeight)\"\n    }).addClass(\"privacyDiv\").html(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3.5em\"\n    }) : void 8, isPrint ? Div().css({\n      fontSize: \"1.4em\"\n    }).html(T(\"termsOfService\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. Allgemeines\",\n      content: [p(\"Willkommen bei ANTON - schön, dass du dabei bist! ANTON ist eine Lern-App für Schüler, Lehrer und Eltern. ANTON wird entwickelt und bereitgestellt von der solocode GmbH, Mehringdamm 61, 10961 Berlin (im Folgenden: der Anbieter).\"), p(\"Du kannst ANTON unter www.anton.app und auch über die mobilen Apps für Android, iOS und Amazon Fire nutzen.\"), p(\"Diese allgemeinen Nutzungs- und Geschäftsbedingungen (im Folgenden: “AGB”) stellen den abschließenden rechtlichen Rahmen für alle ANTON – Dienste, die für Verbraucher oder Schulen bestimmt sind (im Folgenden: “der Dienst”), dar. Mündliche Nebenabreden oder Vertragsänderungen sind nur wirksam, wenn sie vom Anbieter schriftlich oder per E-Mail bestätigt werden.\"), p(\"Diese AGB sind auf das kostenlose Angebot und auf die kostenpflichtigen Zusatzangebote gleichermaßen anwendbar.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. Angebotene Dienste, Geltungsbereich\",\n      content: [p(\"2.1. ANTON ist ein Online-Lernsystem, mit dem Schüler auf einfache, moderne und effiziente Art für die Schule lernen können.\"), p(\"2.2. Lehrer und Eltern können ANTON verwenden, um Schüler beim Lernen zu begleiten und zu unterstützen.\"), p(\"2.3. Schulen können ANTON im Rahmen des Unterrichts, als Hausaufgabe oder als zusätzliches Lern-Angebot einsetzen.\"), p(\"2.4. Viele Funktionen stehen dem Nutzer kostenlos zur Verfügung. Kostenpflichtige Dienste sind eindeutig als solche ausgewiesen und können gegen Zahlung der jeweils vorgesehenen Entgelte oder Preise in Anspruch genommen werden.\"), p(\"2.5. Der Anbieter behält sich vor, Teile seines Angebotes nur für Lehrer bzw. andere mit pädagogischen Aufgaben betraute Nutzer zugänglich zu machen.\"), p(\"2.6. Der Nutzer ist verpflichtet, bei seiner Online-Anmeldung keine nicht-wahrheitsgemäßen Angaben, insbesondere zu seiner Rolle als Schüler oder Lehrer und der Schulzugehörigkeit zu machen. Gibt der Nutzer falsche Daten an, so kann der Anbieter, soweit ein Vertrag zustande gekommen ist, vom Vertrag zurückzutreten. Der Rücktritt wird - sofern möglich - schriftlich erklärt. Die Schriftform ist auch durch Absenden einer E-Mail gewahrt. Bei Angabe falscher Daten kann ein Schul-Administrator das Recht erhalten, diesen unter falschen Angaben angelegten Nutzeraccount zu verwalten, den Anmelde-Code einzusehen und den Nutzer zur Löschung vorzumerken.\"), p(\"2.7. Zusätzlich zum kostenlosen Angebot können Verbraucher auch ANTON-Plus, einen kostenpflichtigen Dienst mit Zusatzfunktionen, freischalten.\"), p(\"2.8. Schulen können eine ANTON-Schullizenz abschließen und damit weitere Funktionen, die den Einsatz in der Schule verbessern, freischalten. Schulen können zusätzlich zur ANTON-Schullizenz auch ANTON-Plus für alle Schüler und Lehrer der Schule freischalten.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. Kostenloses Angebot und ANTON-Plus\",\n      content: [p(\"3.1. Der Nutzer kann bei ANTON kostenlos ein Nutzerkonto anlegen.\"), p(\"3.2. Nach Erstellung eines Nutzerkontos ist die Nutzung der kostenlosen Basisfunktionen verfügbar („Basisvertrag“). Der Nutzer hat jedoch keinen rechtlichen Anspruch auf die kostenlose Verfügbarkeit solcher Inhalte und Funktionen.\"), p(\"3.3. Basisverträge können jederzeit mit einer Frist von 14 Tagen ordentlich gekündigt werden.\"), p(\"3.4. Der Anbieter bietet Verbrauchern darüber hinaus den kostenpflichtigen Dienst ANTON-Plus („Premiumvertrag“) nach verschiedenen Preismodellen an. Sofern Preise bei ANTON angegeben sind, verstehen sich diese einschließlich der jeweils gültigen gesetzlichen Umsatzsteuer.\"), p(\"3.5. Durch Buchung eines Premiumvertrags erhält der Nutzer Zugriff auf zusätzliche Funktionen im Rahmen des jeweiligen Premiumvertrages für die gesamte Vertragslaufzeit.\"), p(\"3.6. Abrechnungsart, Preis und Laufzeit sind jeweils im Rahmen des Bestellprozesses aufgeführt und werden vor Abschluss der Bestellung vollständig zusammengefasst. Der Premiumvertrag kommt mit Klick auf den Button „kaufen“ (o.ä.) zu Stande.\"), p(\"3.7. Premiumverträge werden für die jeweils vom Nutzer gewählte feste Laufzeit geschlossen. Preise für die gesamte Laufzeit sind bei Vertragsschluss fällig.\"), p(\"3.8. Der Anbieter wird mit dem Nutzer vorrangig über den in der App befindlichen Support-Chat oder – falls eine Email-Adresse angegeben wurde – auch über diese kommunizieren, und kann ihm insbesondere vertragsrelevante Willenserklärungen (z.B. Kündigungen) auf diesem Wege mitteilen. Der Nutzer kann dem Anbieter jederzeit eine aktuelle E-Mail Adresse mitteilen.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. Laufzeit, Verlängerung und Kündigung der Verträge für Verbraucher\",\n      content: [p(\"4.1. Solange kein kostenpflichtiger Premiumvertrag abgeschlossen wurde, kann der Nutzer den Basisvertrag jederzeit gemäß Ziffer 3.3 kündigen.\"), p(\"4.2. Sofern nicht anders bei Vertragsschluss angegeben, sind die ANTON-Plus-Premiumverträge fortlaufende Abonnements, die sich automatisch wiederkehrend um die jeweils vertraglich vereinbarte Laufzeit verlängern, sofern der Nutzer oder der Anbieter den jeweiligen Premiumvertrag nicht bis 24 Stunden vor Ablauf der jeweiligen Laufzeit kündigt. Entgelte für Verlängerungslaufzeiten werden ebenfalls vorschüssig in Rechnung gestellt. Alle Verträge sind zum Ablauf der jeweiligen Laufzeit kündbar.\"), p(\"4.3. Premiumverträge, die durch „Einmal-Zahlung“ erworben werden, sind ausdrücklich als befristet oder unbefristet ausgewiesen. Sind sie befristet, so endet der Vertrag mit Ablauf der Laufzeit, ohne dass es einer Kündigung bedarf. Sind sie unbefristet, gelten für sie die folgenden Absätze entsprechend.\"), p(\"4.4. Die Kündigung bei Premiumverträgen, die über den Apple App Store, den Google Play Store oder über Paypal erworben wurden, erfolgt nach den jeweils gültigen Bedingungen des jeweiligen Dienstleisters. Die genaue Vorgehensweise ist auf der Webseite des Apple App Stores, des Google Play Stores oder Paypal beschrieben.\"), p(\"4.5. Das Recht auf Kündigung aus wichtigem Grund bleibt unberührt.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. Widerrufsrecht für Verbraucher\",\n      content: [\n        p(\"5.1. Verbraucher haben das Recht, diesen Vertrag binnen 14 Tagen ohne Angabe von Gründen zu widerrufen. Die Widerrufsfrist beträgt 14 Tage ab dem Tag des Vertragsschlusses. Um das Widerrufsrecht auszuüben, müssen Verbraucher dem Anbieter (solocode GmbH, Mehringdamm 61, 10961 Berlin, Deutschland, E-Mail: support@anton.app) mittels einer eindeutigen Erklärung (z.B. ein mit der Post versandter Brief oder E-Mail) über den Entschluss, diesen Vertrag zu widerrufen, informieren. Hierfür können Verbraucher das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist.\"), p(\"5.2. Zur Wahrung der Widerrufsfrist reicht es aus, dass die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist abgesendet wird.\"), Button(\"Muster-Widerrufsformular\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://files.anton.app/files/ANTON-Muster-Widerruf.pdf\");\n        }).css({\n          marginBottom: \"1em\",\n          marginTop: \"-0.5em\"\n        }), p(\"5.3. Folgen des Widerrufs: Wenn Verbraucher diesen Vertrag widerrufen, hat der Anbieter alle Zahlungen, die er vom Verbraucher erhalten hat, einschließlich der Lieferkosten (mit Ausnahme der zusätzlichen Kosten, die sich daraus ergeben, dass der Verbraucher eine andere Art der Lieferung als die vom Anbieter angebotene, günstigste Standardlieferung gewählt hat) unverzüglich und spätestens binnen 14 Tagen ab dem Tag zurückzuzahlen, an dem die Mitteilung über den Widerruf dieses Vertrages beim Anbieter eingegangen ist. Für diese Rückzahlung verwendet der Anbieter dasselbe Zahlungsmittel, das der Verbraucher bei der ursprünglichen Transaktion eingesetzt hat, es sei denn, es wurde ausdrücklich etwas anderes vereinbart; in keinem Fall werden wegen dieser Rückzahlung Entgelte berechnet.\")\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Zahlungsmodalitäten\",\n      content: [p(\"6.1. Sofern nicht anders im Bestellprozess angegeben, sind Entgelte für Premiumverträge jeweils im Voraus für die gesamte Vertragslaufzeit zur Zahlung fällig.\"), p(\"6.2. Die Zahlung kann über alle auf der Webseite im Einzelnen aufgeführten Zahlungsmethoden ohne zusätzliche Entgelte durchgeführt werden. Der Anbieter beauftragt im Rahmen des Bezahlprozesses einen externen Zahlungsdienstleister mit der Verarbeitung der vom Nutzer eingegebenen Zahldaten.\"), p(\"6.3. Nach Auswahl des gewünschten Bezahlsystems trägt der Nutzer seine erforderlichen Daten in die entsprechend vorgesehenen Datenfelder ein. Der beauftragte Zahlungsdienstleister ist berechtigt, Zahlungen für den Anbieter entgegen zu nehmen. Der Anbieter behält sich das Recht vor, angebotene Bezahlsysteme zu beschränken.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. Kostenpflichtige Angebote für Schulen: ANTON-Schullizenz\",\n      content: [p(\"7.1. Schulen können durch den Kauf eines Premiumangebots weitere Funktionen für Mitarbeiter, Lehrer und Schüler der Schule freischalten.\"), p(\"7.2. Erst mit der Absendung der Bestellung gibt die Schule bzw. der Kunde ein verbindliches Angebot zum Abschluss eines Vertrages an den Anbieter ab. Der Anbieter kann das Angebot innerhalb einer Frist von 2 Werktagen annehmen durch Zusendung einer Auftragsbestätigung, einer Rechnung oder durch Freischaltung des Angebotes.\"), p(\"7.3. Maßgeblich sind ausschließlich die Preisangaben des Anbieters im Zeitpunkt des Vertragsschlusses.\"), p(\"7.4. Die Laufzeit wird dem Kunden beim Kauf angezeigt. Die Lizenz kann nach Vertragsschluss von beiden Parteien jederzeit zum Ablauf des Leistungszeitraumes gekündigt werden. Wird sie nicht vor Ende des Leistungszeitraumes gekündigt, verlängert sie sich um ein weiteres Jahr. Die Kündigung ist per E-Mail oder schriftlich mitzuteilen.\"), p(\"7.5. Der Leistungsumfang richtet sich nach der Produktbeschreibung und wird ebenfalls Bestandteil des Vertrages.\"), p(\"7.6. Der Rechnungsbetrag ist ohne Abzüge 14 Tage nach Rechnungsdatum zur Zahlung fällig.\"), p(\"7.7. Der Kunde kommt in Zahlungsverzug, wenn er auf eine nach Fälligkeit erfolgende Mahnung des Anbieters nicht leistet. Auch ohne Mahnung tritt der Verzug spätestens 30 Tage nach Fälligkeit und Rechnungszugang ein.\"), p(\"7.8. Bei Abschluss einer ANTON-Schullizenz arbeitet der Anbieter als Auftragsverarbeiter für die Schule. Die Schule erhält mit Freischaltung des Angebotes einen Vertrag über die Auftragsverarbeitung (AV-Vertrag).\"), p(\"7.9. Schulen und Institutionen dürfen nur den bei ihr beschäftigten Lehrern bzw. pädagogischen Mitarbeitern den Zugang zu den Lehrer- und Adminfunktionen der Schullizenz ermöglichen. Ein Schulträger darf nur Schulen unter seiner Trägerschaft zur Nutzung einer Schulträgerlizenz anmelden.\"), p(\"7.10. Schulen und Institutionen sind verpflichtet wahrheitsgemäße Angaben zu der Zahl der Schüler, Lehrer und Mitarbeiter der Schule zu machen und dürfen nur den aktiven Mitgliedern den Zugang zum Premiumangebot oder Teilen dessen ermöglichen.\"), p(\"7.11. Der Anbieter ist berechtigt, den Zugang von Nutzern zu ANTON ganz oder teilweise vorübergehend zu sperren und den Schullizenz-Vertrag fristlos mit sofortiger Wirkung zu kündigen, wenn der begründete Verdacht besteht, dass Nutzer nicht zu dem zur Nutzung zugelassenen Kreis von Personen gehören oder die Angebote missbräuchlich, zur Begehung rechtswidriger Handlungen oder unter Verletzung der Rechte Dritter, oder vertragswidrig genutzt wurden oder eine solche Nutzung zugelassen wurde, nichtberechtigte Dritte von den Zugangsdaten, insbesondere vom Kennwort eines Administrator-Nutzers oder anderer Nutzer Kenntnis erlangt haben, weil die notwendige Sorgfalt im Umgang mit diesen Daten, insbesondere die anerkannten Grundsätze der Datensicherheit nicht eingehalten wurden. Der Anbieter wird von diesem Recht nur unter Berücksichtigung der berechtigten Interessen des Nutzers Gebrauch machen und die Schule schriftlich oder per E-Mail über die Sperrung benachrichtigen.\"), p(\"7.12. Schulen können Nutzeraccounts, die sie erstellt haben oder deren Verwaltung in ihre Verantwortung fällt, zur Löschung nach Ablauf einer Übergangsfrist von 60 Tagen vormerken. Die Nutzer - und falls notwendig deren Erziehungsberechtigte - sind durch die Schule zu informieren. Sie erhalten die Möglichkeit, innerhalb einer Frist von 60 Tagen die in dem Nutzeraccount gespeicherten Daten in einen neuen Account zu überführen und eigenständig weiter zu verwenden. Nach Ablauf der Frist werden die Nutzerkonten automatisch gelöscht.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Erreichbarkeit des Angebots, Haftungsbeschränkung\",\n      content: [p(\"8.1. Der Anbieter setzt für seine Dienste die aktuell und allgemein verwendeten Technologien ein. Um ANTON in vollem Umfang nutzen zu können, müssen Nutzer ebenfalls diese Technologien (z.B. aktuelle Browsertechnologie, Websockets) verwenden oder deren Verwendung auf seinem Computer oder mobilen Endgerät ermöglichen (z.B. Aktivierung von JavaScript). Bei Benutzung älterer oder nicht allgemein gebräuchlicher Technologien kann es sein, dass der Nutzer ANTON nur eingeschränkt nutzen kann.\"), p(\"8.2. Die für die Nutzung von ANTON erforderlichen Internetdienste und die dazu notwendige Ausstattung obliegt hinsichtlich der anfallenden Kosten, der Verfügbarkeit und der Sicherheit der Datenverbindung einzig dem Nutzer und - falls zutreffend - der Schule.\"), p(\"8.3. Der Anbieter garantiert ausdrücklich nicht, dass sich die angebotenen Dienste für die vom einzelnen Nutzer konkret verfolgten Ziele eignen.\"), p(\"8.4. Ansprüche von Nutzern und Kunden auf Schadensersatz sind ausgeschlossen. Hiervon ausgenommen sind Schadensersatzansprüche aus der Verletzung des Lebens, des Körpers, der Gesundheit oder aus der Verletzung wesentlicher Vertragspflichten (Kardinalpflichten) sowie die Haftung für sonstige Schäden, die auf einer vorsätzlichen oder grob fahrlässigen Pflichtverletzung seitens des Anbieters, seiner gesetzlichen Vertreter oder Erfüllungsgehilfen beruhen. Wesentliche Vertragspflichten sind solche, deren Erfüllung zur Erreichung des Ziels des Vertrages notwendig ist. Eine „Kardinalpflicht“ bzw. „wesentliche Vertragspflichten“ sind Pflichten, deren Erfüllung die ordnungsgemäße Durchführung des Vertrages überhaupt erst ermöglichen und auf deren Einhaltung der Vertragspartner regelmäßig vertraut und vertrauen darf. Bei Datenverlust haftet der Anbieter maximal für den Aufwand, der bei ordnungsgemäßer Datensicherung durch Nutzer und Kunden für die Rekonstruktion erforderlich ist.\"), p(\"8.5. Bei der Verletzung wesentlicher Vertragspflichten haftet der Anbieter nur für den vertragstypischen, vorhersehbaren Schaden, wenn dieser einfach fahrlässig verursacht wurde, es sei denn, es handelt sich um Schadensersatzansprüche aus einer Verletzung des Lebens, des Körpers oder der Gesundheit.\"), p(\"8.6. Die Einschränkungen der Absätze 8.4 und 8.5 gelten auch zugunsten der gesetzlichen Vertreter und Erfüllungsgehilfen des Anbieters, wenn Ansprüche direkt gegen diese geltend gemacht werden.\"), p(\"8.7. Verfügbarkeit: Die Online-Produkte des Anbieters sind in der Regel 24 Stunden am Tag verfügbar. Aufgrund von notwendigen Servicearbeiten am Informationssystem kann es jedoch zeitweise zur Nichterreichbarkeit kommen.\"), p(\"8.8. Störungen des Zugangs zum Internet und des Datenverkehrs im Internet aufgrund von Ereignissen, die der Anbieter nicht zu vertreten hat und die den Zugang erschweren oder unmöglich machen (z.B. durch Firewall-Konfiguration), lassen den Vergütungsanspruch des Anbieters unberührt. Eine Haftung des Anbieters wegen der Nichtverfügbarkeit in den Fällen der Ziffer 8.1 und Ziffer 8.2 ist ausgeschlossen. Das Recht der Nutzer und Kunden zur außerordentlichen Kündigung bleibt unberührt.\"), p(\"8.9. Eine weitergehende Haftung auf Schadensersatz als in Ziffern 8.4 und 8.5 vorgesehen, ist - ohne Rücksicht auf die Rechtsnatur des geltend gemachten Anspruchs - ausgeschlossen. Insoweit haftet der Anbieter insbesondere nicht für mittelbare Schäden, wie z. B. entgangener Gewinn und sonstige Vermögensschäden der Nutzers und Kunden. Die zwingenden Bestimmungen des Produkthaftungsgesetzes bleiben unberührt.\"), p(\"8.10. Aufwendungsersatzansprüche der Nutzer und Kunden sind beschränkt auf den Betrag des Interesses, welches diese an der Erfüllung des Vertrages haben.\"), p(\"8.11. Nutzer und Kunden stellen den Anbieter von sämtlichen Ansprüchen frei, die andere Nutzer und Kunden oder sonstige Dritte gegenüber dem Anbieter wegen Verletzung ihrer Rechte durch die Nutzung von Angeboten durch den betreffenden Nutzer bzw. Kunden oder die von diesem zugelassenen Nutzer geltend machen. Der Nutzer bzw. Kunde übernimmt hierbei auch die Kosten der notwendigen Rechtsverteidigung des Anbieters einschließlich sämtlicher Gerichts- und Anwaltskosten. Dies gilt nicht, soweit die Rechtsverletzung von dem Nutzer bzw. Kunden nicht zu vertreten ist.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Schadloshaltung\",\n      content: [p(\"9.1. Das Angebot darf nur in Übereinstimmung mit diesen AGB verwendet werden. Nutzer sind insbesondere nicht befugt, ANTON oder Teile hiervon zurückzuentwickeln, zu dekompilieren, disassemblieren, modifizieren oder abgeleitete Werke auf ihrer Grundlage zu entwickeln; Schutzmaßnahmen zu umgehen, die der Anbieter oder ihre Lizenzgeber einsetzen, um Inhalte zu schützen, auf die über ANTON zugegriffen werden kann; über ANTON bereitgestellte Inhalte zu kopieren, speichern, bearbeiten, abgeleitete Werke auf ihrer Grundlage zu entwickeln oder sie auf irgendeine Weise zu verändern; das eigene Nutzerkonto zu vermieten oder Unterlizenzen zu vergeben; das eigene Nutzerkonto mit anderen Personen zu teilen und/oder anderen Personen Zugang zu den kostenpflichtigen Diensten von ANTON zu gewähren; ANTON auf irgendeine andere nicht ordnungsgemäße Weise, die gegen diese AGB verstößt, zu nutzen.\"), p(\"9.2. In den unter Ziff. 9.1 beschriebenen Fällen, sowie in allen anderen Fällen unsachgemäßer Nutzung verpflichtet sich der Nutzer, den Anbieter schadlos zu halten. In jedem Fall behält sich der Anbieter das Recht vor, Nutzerkonten ohne Ankündigung zu sperren, sobald ein Hinweis auf unsachgemäße bzw. missbräuchliche Nutzung besteht und der Anbieter ein berechtigtes Interesse an der Sperrung hat.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. Rechte an geistigem Eigentum\",\n      content: [p(\"10.1. Sämtliche im Rahmen von ANTON zur Verfügung gestellte Texte, Bilder und sonstige urheberrechtsfähigen Inhalte und Werke sind urheberrechtlich geschützt. Jegliche nicht vertragsgegenständliche Nutzung, insbesondere zu gewerblichen oder betrieblichen Zwecke, bedarf einer vorherigen Zustimmung des Anbieters in Textform.\"), p(\"10.2. Für Inhalte, die ausdrücklich über eine Creative Commons Lizenz zur Verfügung gestellt werden, gelten die Bedingungen der jeweils anwendbaren Creative Commons Lizenz.\"), p(\"10.3. Eine Nutzung sämtlicher im Rahmen des Angebots durch den Anbieter genutzter Kennzeichen, Marken, Designs und Geschäftsbezeichnungen bedarf ebenfalls einer vorherigen Zustimmung des Anbieters in Textform.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"11. Von Nutzern generierte Inhalte\",\n      content: [p(\"11.1. Wenn Nutzer selbst Inhalte generieren, z.B. eine Lernliste anlegen, ein Bild erstellen oder anderweitig Materialien via ANTON zur Verfügung stellen, sind sie in vollem Umfang für die Beschaffenheit dieser Inhalte und jegliche daraus resultierenden Schäden verantwortlich. Dies ist ungeachtet dessen der Fall, ob die fraglichen Inhalte aus Text, Grafiken, Audiodateien, Computer-Software oder irgendwelchen anderen Formaten bestehen.\"), p(\"11.2. Nutzer dürfen nur zu Lern- und Studienzwecken geeignete Inhalte bei ANTON speichern. Der Anbieter behält sich das Recht vor, gegen Nutzer vorzugehen, die gegen diese Bestimmung verstoßen. Diese Maßnahmen können beispielsweise die Entfernung der betreffenden Inhalte, die Kündigung der Konten der betreffenden Personen oder die Ergreifung weiterer Rechtsmittel umfassen, ohne aber darauf beschränkt zu sein. Unzulässige Inhalte sind u.a. Inhalte, die die Rechte des Anbieters oder Dritter verletzen, anstößig oder kommerzieller Natur sind oder gegen geltende Gesetze und Vorschriften verstoßen.\"), p(\"11.3. Wenn Nutzer Inhalte oder irgendwelche anderen Materialien bei ANTON erstellen oder hochladen, gewähren sie dem Anbieter eine weltweite, unbefristete und gebührenfreie Lizenz (mit dem Recht auf Unterlizenzierung) zur Nutzung, Vervielfältigung, Reproduktion, Verarbeitung, Anpassung, Veränderung, Publikation, Übermittlung, Darstellung und Verbreitung derartiger Inhalte oder Materialien in bzw. mithilfe von jeglichen und sämtlichen (bereits vorhandenen oder zu einem späteren Zeitpunkt entwickelten) Medien oder Verbreitungsverfahren. Zusätzliche Nutzungen durch den Anbieter oder andere Unternehmen oder Einzelpersonen, die als Partner des Anbieters agieren, sind möglich, ohne dass Nutzer eine Vergütung für die von ihnen eingereichten, eingesendeten oder anderweitig über den Dienst zur Verfügung gestellten Inhalte erhalten.\"), p(\"11.4. Indem Nutzer Inhalte via ANTON verfügbar machen, erklären und gewährleisten sie, dass sie nicht die Rechte Dritter verletzen und dass der Inhalt keine Schadsoftware oder anstößiges Material enthält oder installiert.\"), p(\"11.5. Der Anbieter überprüft nicht alle an den Dienst gesendeten Inhalte, hat auch nicht die Möglichkeit zu einer solchen Überprüfung und kann daher nicht für den Inhalt, die Nutzung oder die Auswirkungen dieses Materials verantwortlich sein. Dass der Anbieter den Dienst betreibt, bedeutet nicht und impliziert auch nicht, dass der Anbieter das an den Dienst gesendete Material befürwortet oder der Meinung ist, dieses Material sei fehlerfrei, nützlich oder unschädlich.\"), p(\"11.6. Nutzergenerierte Inhalte wie z.B. Lernlisten können möglicherweise anstößiges, ungehöriges oder anderweitig zu beanstandendes Material, sowie Inhalte, in denen technische, sachliche, orthographische oder anderweitige Fehler auftreten können, beinhalten.\"), p(\"11.7. Der Dienst kann Material enthalten, welches das geistige Eigentumsrecht und andere Eigentumsrechte Dritter missachtet oder verletzt, oder bei dem das Herunterladen, die Vervielfältigung oder die Nutzung möglicherweise zusätzlichen geschriebenen oder ungeschriebenen Geschäftsbedingungen unterworfen sind. Der Anbieter lehnt jegliche Haftung für irgendwelche Schäden ab, die dadurch entstehen, dass Besucher den Dienst nutzen oder dort irgendwelche geposteten Inhalte herunterladen. Sollten Nutzer Inhalte oder andere Materialien entdecken, die gegen diese Bedingungen verstoßen, so gibt es auf der Webseite des Dienstes entsprechende Funktionen, mit denen sie beim Anbieter Meldung erstatten können.\"), p(\"11.8. Der Anbieter respektiert das geistige Eigentum anderer. Wenn du der Ansicht bist, dass auf der Webseite oder in den mobilen Apps von ANTON veröffentlichtes oder verlinktes Material dein Urheberrecht verletzt, bitten wir dich, um Benachrichtigung. Der Anbieter  wird - falls erforderlich - , die beanstandeten Inhalte entfernen oder sämtliche Links zu den diesen Inhalten deaktivieren. Sollte ein Nutzer einmalig oder wiederholt die Urheberrechte oder sonstige geistige Eigentumsrechte von ANTON oder anderen verletzen, kann der Anbieter in eigenem Ermessen den Zugriff auf den Dienst oder die Nutzung des Dienstes kündigen oder verweigern. Im Fall einer derartigen Kündigung ist der Anbieter  in keiner Weise zur Rückerstattung irgendwelcher von dem betreffenden Nutzer im Voraus gezahlter Beträge verpflichtet.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"12. Schlussbestimmungen\",\n      content: [\n        p(\"12.1. Das Vertragsverhältnis zwischen dem Anbieter und dem Nutzer bzw. Kunden unterliegt, soweit gesetzlich zulässig, deutschem Recht. Falls das Recht des Landes, in dem der Verbraucher seinen Wohnsitz hat, einen höheren Verbraucherschutz vorsieht, bleibt dieser unberührt.\"), p(\"12.2. Der Anbieter nimmt an keinem Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle im Sinne des Verbraucherstreitbeilegungsgesetzes teil.\"), p(\"12.3. Die Europäische Kommission stellt eine Plattform für die außergerichtliche Online-Streitbeilegung (OS-Plattform) bereit, aufrufbar unter: \"), Div({\n          textDecoration: \"underline\",\n          marginBottom: \"1.2em\"\n        }).html(\"https://ec.europa.eu/consumers/odr\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://ec.europa.eu/consumers/odr/main/index.cfm?lng=DE\");\n        }), p(\"12.4. Der Vertrag bleibt auch bei rechtlicher Unwirksamkeit einzelner Punkte in seinen übrigen Teilen verbindlich. Anstelle der unwirksamen Punkte treten, soweit vorhanden, die gesetzlichen Vorschriften. Soweit dies für eine Vertragspartei eine unzumutbare Härte darstellen würde, wird der Vertrag jedoch im Ganzen unwirksam.\"), p(\"12.5. Der Anbieter behält sich vor, diese AGB aus sachlichem Grund zu ändern (z. B. wegen Änderungen der Rechtslage oder des eigenen Angebots, technischer Fortentwicklungen u. Ä.). Dies gilt insbesondere dann, wenn neue Angebote des Anbieters neue Regelungen erfordern.\"), p(\"12.6. Die geänderten AGB werden dem Nutzer bzw. Kunden vorab per E-Mail oder mittels einer anderen geeigneten Form zugesandt oder auf der Webseite und in den mobilen Apps angezeigt. Widerspricht der Nutzer den geänderten AGB nicht innerhalb von sechs Wochen, gelten sie als angenommen. Im Fall eines Widerspruchs kann der Anbieter das Nutzerkonto des Nutzers sperren, wobei bereits geleistete Zahlungen anteilig im Verhältnis zur Restlaufzeit erstattet werden. Auf diese Rechtsfolgen wird der Anbieter in der Nachricht mit den geänderten AGB gesondert hinweisen.\")\n      ]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbar2/tabMenu/tab/tab.ls","text":"(function(){\n  return function(item){\n    var selected, badge, div;\n    if (!item) {\n      return;\n    }\n    selected = item.selected || false;\n    badge = item.badge || false;\n    return div = Div().addClass(\"tab\").css({\n      display: \"flex\",\n      flex: \"0 1 auto\",\n      margin: \"0 0.3em\",\n      padding: \"0.4em 0.1em 0.4em\",\n      textOverflow: \"ellipsis\",\n      color: item.color\n    }).append(item.icon ? SvgIcon({\n      svg: item.icon\n    }).css({\n      flex: \"0 0 auto\",\n      marginTop: \"0.2em\",\n      marginRight: item.label ? \"0.2em\" : void 8\n    }) : void 8, item.label || true ? Div().css({\n      flex: \"1 1 auto\"\n    }).html(item.label) : void 8, selected ? Div().css({\n      position: \"absolute\",\n      bottom: 0,\n      left: 0,\n      right: 0,\n      height: \"2px\",\n      backgroundColor: Color.grey[700]\n    }) : void 8, badge ? SvgIcon({\n      svg: path(\"/lib/svg/shape/record.svg\"),\n      color: Color.blue[500],\n      width: \"0.7em\",\n      height: \"0.7em\"\n    }).css({\n      flex: \"0 0 auto\",\n      marginLeft: \"0.2em\"\n    }) : void 8).tap(!selected ? {\n      longDown: function(){\n        return typeof item.longDown == 'function' ? item.longDown() : void 8;\n      },\n      up: function(){\n        if (typeof item.click == 'function') {\n          item.click();\n        }\n        return typeof vibrate == 'function' ? vibrate(VIBRATION_TYPES.selection) : void 8;\n      }\n    } : void 8);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbar2/tools/download/icon/arrowIcon/icon.ls","text":"(function(){\n  return function(manager, id){\n    var update, svg;\n    update = function(){\n      var planDetails, status;\n      planDetails = manager.getPlanInfo(id);\n      status = planDetails.status;\n      if (status === \"completed\") {\n        return svg.setColor(Color.green[300]);\n      } else if (status === \"disabled\") {\n        return svg.setColor(Color.grey[550]);\n      } else {\n        return svg.setColor(Color.amber[600]);\n      }\n    };\n    svg = SvgIcon({\n      svg: path(\"/lib/svg/shape/arrow-download.svg\"),\n      width: \"1em\",\n      height: \"1em\",\n      color: Color.grey[550]\n    }).addClass(\"onDownloadManagerUpdate-\" + id).css({\n      marginTop: \"0.1em\"\n    });\n    update();\n    svg.onDownloadManagerUpdate = update;\n    return svg;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbarGame/header/left/closeIcon/closeIcon.ls","text":"(function(){\n  return function(o){\n    var svg, click;\n    svg = null;\n    o.updateCloseIcon = function(){\n      return svg.setColor(o.gameTextColor || Color.black);\n    };\n    click = function(){\n      if (_.isFunction(o.close)) {\n        return o.close();\n      } else {\n        return startPage({\n          history: -1,\n          animation: \"slideDown\"\n        });\n      }\n    };\n    return Div().css({\n      flex: \"0 0 2.5em\",\n      display: \"flex\"\n    }).append(svg = SvgIcon({\n      svg: path(\"/lib/svg/icon/close-small.svg\"),\n      color: o.gameTextColor\n    })).tap({\n      up: click,\n      tapZone: \"0 1em 1em 0\"\n    }).bind(\"androidBack keyManager\", click).addClass(\"keyManager-esc androidBack\").attr({\n      \"aria-label\": T(\"closeButton\"),\n      role: \"button\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/afterFinish/pages/disabledCoins/coinWithCross/coinWithCross.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      height: \"6em\",\n      width: \"6em\",\n      margin: \"0 auto 1em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/illustration/coin.svg\"),\n      size: \"6em\"\n    }), SvgIcon({\n      svg: path(\"/lib/svg/shape/cross.svg\"),\n      color: Color.red[500],\n      size: \"4em\"\n    }).css({\n      position: \"absolute\",\n      top: \"1em\",\n      left: \"1em\"\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/afterFinish/pages/newCoin/firstCoinExplainGameMenu/icon/icon.ls","text":"(function(){\n  return function(){\n    return Div().css({\n      padding: \"1em\"\n    }).append(Div().css({\n      display: \"inline-flex\",\n      backgroundColor: Color.grey[200],\n      width: \"6.5em\",\n      height: \"3em\",\n      borderRadius: \"1.5em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/games.svg\"),\n      width: \"1.5em\",\n      height: \"1.5em\"\n    }).css({\n      marginRight: \"0.5em\"\n    }), Span().css({\n      color: Color.grey[550]\n    }).html(T(\"games\"))));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/rating/thumbs/button/button.ls","text":"(function(){\n  return function(type, action, small){\n    return Div({\n      display: \"flex\",\n      flex: \"0 0 auto\",\n      marginRight: \"0.3em\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/thumb-\" + type + \".svg\"),\n      color: Color.grey[400],\n      size: small ? \"0.9em\" : \"1.3em\"\n    }).css({\n      flex: \"0 0 auto\",\n      marginRight: type === \"down\" ? \"0.1em\" : void 8\n    }), Div({\n      flex: \"0 0 auto\",\n      color: Color.grey[500],\n      fontSize: small ? \"0.9em\" : void 8\n    }).html(type === \"up\"\n      ? T(\"yes\")\n      : T(\"no\"))).tap(action);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/games/01_gamesList/row/plusStopPopup/icon/icon.ls","text":"(function(){\n  return function(o){\n    return Div({\n      display: \"inline-block\",\n      marginBottom: \"0.5em\"\n    }).append(inc(\"/lib/gui/image/image\")({\n      id: o.icon,\n      fileFolder: \"media/gameIcons/_images\"\n    }).css({\n      width: \"4em\",\n      height: \"4em\",\n      backgroundPosition: o.iconPosition || \"50% 50%\",\n      flex: \"0 0 auto\",\n      marginRight: \"0.5em\",\n      borderRadius: \"50%\",\n      border: \"3px solid \" + Color.grey[300],\n      overflow: \"hidden\"\n    }), SvgIcon({\n      svg: path(\"/lib/svg/illustration/anton-plus.svg\"),\n      width: \"1.1em\"\n    }).css({\n      position: \"absolute\",\n      left: \"calc(50% + \" + Math.sin(Math.PI / 4) * 50 + \"% - 0.55em)\",\n      top: \"calc(50% + \" + Math.cos(Math.PI / 4) * 50 + \"% - 0.75em)\"\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/screenKeyboard/createKeys/keys/mathKeys/calcKeys/logbase/div.ls","text":"(function(){\n  return function(color){\n    return Div({\n      display: \"flex\"\n    }).html(Div({\n      marginRight: \"-2px\"\n    }).html(\"log\"), SvgIcon({\n      svg: path(\"/lib/svg/key/logbase.svg\"),\n      width: \"1.2em\",\n      height: \"1.2em\",\n      color: color != null\n        ? color\n        : Color.black\n    }).css({\n      marginTop: \"3px\"\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/navbar/bar/tabs/tab/_tab/iconWithBadge/icon.ls","text":"(function(){\n  return function(item){\n    return Div({\n      display: \"flex\",\n      height: \"1em\"\n    }).html(SvgIcon({\n      svg: item.icon,\n      size: \"0.85em\",\n      color: item.selected\n        ? Color.blue[500]\n        : Color.grey[600]\n    }).css({\n      margin: \"0.15em 0\"\n    }), typeof item.badge == 'function' ? item.badge() : void 8);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/antonPlus/1_products/productBlock/_block/list/listElement/icon/icon.ls","text":"(function(){\n  return function(icon){\n    icon == null && (icon = \"plus\");\n    return Div().css({\n      display: \"flex\"\n    }).append(icon === \"plus\"\n      ? SvgIcon({\n        svg: path(\"/lib/svg/illustration/anton-plus.svg\"),\n        size: \"1.15em\"\n      }).css({\n        marginTop: \"0.05em\"\n      })\n      : icon === \"download\"\n        ? SvgIcon({\n          svg: path(\"/lib/svg/shape/arrow-download.svg\"),\n          color: Color.green[600],\n          size: \"1.4em\"\n        }).css({\n          marginTop: \"0.05em\",\n          marginLeft: \"-0.05em\"\n        })\n        : icon === \"group\"\n          ? SvgIcon({\n            svg: path(\"/lib/svg/illustration/group.svg\"),\n            size: \"1.4em\"\n          }).css({\n            marginLeft: \"-0.1em\"\n          })\n          : icon === \"report\"\n            ? SvgIcon({\n              svg: path(\"/lib/svg/illustration/stats.svg\"),\n              size: \"1.5em\"\n            }).css({\n              marginLeft: \"-0.2em\",\n              marginTop: \"-0.1em\"\n            })\n            : icon === \"disable\"\n              ? SvgIcon({\n                svg: path(\"/lib/svg/illustration/coins-games.svg\"),\n                size: \"1.6em\"\n              }).css({\n                marginLeft: \"-0.2em\"\n              })\n              : icon === \"certificate\"\n                ? SvgIcon({\n                  svg: path(\"/lib/svg/illustration/certificate.svg\"),\n                  size: \"1.3em\"\n                }).css({\n                  marginLeft: \"-0.15em\"\n                })\n                : icon === \"avatar\"\n                  ? inc(\"/lib/gui/avatar/avatar\")({\n                    version: 2,\n                    head: {\n                      children: {\n                        human: {\n                          children: {\n                            headgear: {\n                              option: 'crown',\n                              c2: 'red.500',\n                              c3: 'cyan.300',\n                              c1: 'yellow.600'\n                            },\n                            glasses: {\n                              option: 'none',\n                              c1: 'grey.900'\n                            }\n                          }\n                        }\n                      }\n                    },\n                    body: {\n                      children: {\n                        human: {\n                          children: {\n                            necklace: {\n                              option: 'i'\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }).css({\n                    width: \"1.7em\",\n                    height: \"1.7em\",\n                    marginTop: \"-0.2em\"\n                  })\n                  : icon === \"group-report\"\n                    ? SvgIcon({\n                      svg: path(\"/lib/svg/illustration/group-report.svg\"),\n                      size: \"1.5em\"\n                    }).css({\n                      marginLeft: \"0.1em\",\n                      marginTop: \"0.1em\"\n                    })\n                    : icon === \"pin-group\"\n                      ? SvgIcon({\n                        svg: path(\"/lib/svg/illustration/pin-group.svg\"),\n                        size: \"1.5em\"\n                      }).css({\n                        marginLeft: \"0.1em\",\n                        marginTop: \"0.1em\"\n                      })\n                      : icon === \"pin-report\"\n                        ? SvgIcon({\n                          svg: path(\"/lib/svg/illustration/pin-report.svg\"),\n                          size: \"1.5em\"\n                        }).css({\n                          marginLeft: \"0.15em\",\n                          marginTop: \"0.1em\"\n                        })\n                        : icon === \"family-plus\" ? SvgIcon({\n                          svg: path(\"/lib/svg/illustration/family-plus.svg\"),\n                          size: \"1.5em\"\n                        }).css({\n                          marginLeft: \"-0.1em\"\n                        }) : void 8);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/antonPlus/1_products/productBlock/_popupDetailsAndParentalGate/popupPurchase/user/user.ls","text":"(function(){\n  return function(){\n    var d;\n    d = inc(\"/data/user/calcUserDescription/calc\")();\n    return Div().css({\n      display: \"flex\",\n      padding: \"0.1em 0 0.3em\",\n      borderBottom: \"1px solid \" + Color.grey[200]\n    }).append(Div().css({\n      width: \"3em\",\n      flex: \"0 0 auto\"\n    }).append(inc(\"/lib/gui/avatar/avatar\")(d.avatar).css({\n      width: \"2em\",\n      height: \"2em\",\n      marginBottom: \"0.1em\"\n    }), SvgIcon({\n      svg: path(\"/lib/svg/illustration/anton-plus.svg\"),\n      size: \"0.8em\"\n    }).css({\n      position: \"absolute\",\n      bottom: \"0.3em\",\n      right: \"0.3em\"\n    })), Div().css({\n      flex: \"0 1 auto\",\n      fontSize: \"1.1em\",\n      marginRight: \"1.3em\"\n    }).secureHtml(d.displayName));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/antonPlus/1_products/productBlock/_purchase/_shared/validationResultPopup/popup.ls","text":"(function(){\n  return function(o){\n    var message, div, popup;\n    if (!o.validationResult) {\n      return;\n    }\n    message = o.validationResult.isNewPurchase\n      ? T(\"purchased\")\n      : o.validationResult.user.isBuyingUser\n        ? T(\"alreadyPurchased\")\n        : T(\"alreadyPurchasedByAnother\");\n    div = Div({\n      margin: \"1em 0\"\n    }).append(Div({\n      padding: \"0 1em\",\n      lineHeight: \"1.6em\"\n    }).html(message), o.validationResult.user ? Div({\n      display: \"flex\"\n    }).append(Div({\n      width: \"3em\",\n      flex: \"0 0 auto\"\n    }).append(inc(\"/lib/gui/avatar/avatar\")(o.validationResult.user.avatar).css({\n      width: \"2.5em\",\n      height: \"2.5em\",\n      marginBottom: \"0.1em\",\n      borderRadius: \"999px\"\n    }), SvgIcon({\n      svg: path(\"/lib/svg/illustration/anton-plus.svg\"),\n      size: \"0.8em\"\n    }).css({\n      position: \"absolute\",\n      bottom: \"0.3em\",\n      right: \"0.3em\"\n    })), Div({\n      fontSize: \"1.5em\",\n      flex: \"0 1 auto\",\n      marginRight: \"1.3em\"\n    }).secureHtml(o.validationResult.user.name)) : void 8, Button({\n      label: T(\"closeButton\"),\n      action: function(){\n        return popup.close();\n      }\n    }).css({\n      marginTop: \"1em\"\n    }));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/arrow/arrow.ls","text":"(function(){\n  return function(events){\n    return Div({\n      display: \"flex\"\n    }).html(Div({\n      fontSize: \"0.8em\",\n      color: Color.grey[500]\n    }).html(events.length), SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-down-small.svg\"),\n      color: Color.grey[700]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/afterFinish/pages/levelRating/01_rating/icons/icon/icon.ls","text":"(function(){\n  return function(icon, i, onClick){\n    var animate, notMobile, div;\n    animate = function(){\n      return inc(\"animate/animate\")(div);\n    };\n    notMobile = body.width() > 600;\n    div = Div({\n      display: \"inline-block\",\n      width: \"2.4em\",\n      height: \"2.4em\",\n      padding: \"0.4em\",\n      borderRadius: \"1.2em\",\n      margin: \"0.3em\",\n      marginBottom: 0,\n      overflow: \"hidden\",\n      backgroundColor: icon.color\n    }).tap({\n      down: function(){\n        return onClick(i);\n      },\n      animation: \"none\"\n    }).append(SvgIcon({\n      svg: icon.path,\n      color: Color.black,\n      size: notMobile ? \"2em\" : \"1.5em\"\n    }));\n    if (notMobile) {\n      div.css({\n        width: \"3.5em\",\n        height: \"3.5em\",\n        padding: \"0.75em\",\n        borderRadius: \"1.75em\",\n        margin: \"0.5em\"\n      });\n    }\n    div.animate = animate;\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/support/help/chat/bottom/_shared/sendButton/button.ls","text":"(function(){\n  return function(page, isIos){\n    var tap, div;\n    tap = function(){\n      return inc(\"send/send\")(page);\n    };\n    div = Div().css({\n      display: \"flex\",\n      padding: \"0 0.5em\"\n    }).append(Div().css({\n      flex: \"0 1 auto\",\n      margin: \"0.1em 0.15em 0.1em 0.3em\",\n      color: Color.blue[500]\n    }).html(T(\"sendButton\")), SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      color: Color.blue[500],\n      size: \"0.9em\"\n    }).css({\n      marginTop: \"0.1em\"\n    }));\n    if (isIos) {\n      div.bind(\"touchstart\", tap);\n    } else {\n      div.tap(tap);\n    }\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/support/help/chat/list/row/message/center/unreadStar/unreadStar.ls","text":"(function(){\n  return function(message){\n    var setReadTimeout, div;\n    if (message.from === \"user\" || message.readAt) {\n      return;\n    }\n    setReadTimeout = function(){\n      return setTimeout(function(){\n        if (!div.isVisible()) {\n          return;\n        }\n        if (typeof document.hasFocus == 'function' && document.hasFocus()) {\n          return inc(\"setReadAt/set\")(message);\n        } else {\n          return setReadTimeout();\n        }\n      }, 3000);\n    };\n    return div = Div().css({\n      position: \"absolute\",\n      right: \"-0.25em\",\n      top: \"-0.25em\",\n      pointerEvents: \"none\",\n      width: \"1em\",\n      height: \"1em\",\n      backgroundColor: Color.blue[400],\n      borderRadius: \"0.5em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/asteriks.svg\"),\n      color: Color.white,\n      width: \"0.6em\",\n      height: \"0.6em\"\n    }).css({\n      position: \"absolute\",\n      top: \"0.2em\",\n      left: \"0.2em\"\n    })).onScopeRender(setReadTimeout);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/antonPlus/1_products/openDebugAfterPurchasePopup/popup.ls","text":"(function(){\n  return function(product){\n    var b, div, popup;\n    b = function(l){\n      return Button(l).css({\n        minWidth: \"6em\",\n        margin: \"0.3em\"\n      });\n    };\n    div = Div({\n      margin: \"0.8em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\")\n    }).css({\n      marginRight: \"0.3em\"\n    }), \"Start afterPurchase page:<br><br>\", b(\"3_thanks\").tap(function(){\n      var ref$;\n      return startPage({\n        path: path(\"../../3_thanks/page\"),\n        params: {\n          sku: (ref$ = product != null ? product.id : void 8) != null\n            ? ref$\n            : product != null ? product.sku : void 8,\n          alias: product != null ? product.alias : void 8\n        }\n      });\n    }));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/start/startUser/07_extraPages/dirTeacherSuggestSecureAccount/01_page_info/icon/icon.ls","text":"(function(){\n  return function(page){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/security.svg\"),\n      size: \"4em\",\n      color: Color.blue[500]\n    }).css({\n      margin: \"0.5em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/pixiSpineCanvas/pixiSpineCanvas.ls","text":"(function(){\n  var cache;\n  cache = {};\n  return function(o){\n    var createSpine, texturesExist, getSpine;\n    createSpine = function(onDone){\n      return inc(\"createAtlas/create\")(o, function(){\n        var spine;\n        spine = inc(\"createSpine/create\")(o);\n        cache[o.projectFolder] = spine;\n        return onDone(spine);\n      });\n    };\n    texturesExist = function(spine){\n      var i$, ref$, len$, slot, attachment, texture, ref1$;\n      if (spine == null) {\n        return false;\n      }\n      for (i$ = 0, len$ = (ref$ = spine.skeleton.slots).length; i$ < len$; ++i$) {\n        slot = ref$[i$];\n        attachment = slot.attachment;\n        if (attachment == null) {\n          continue;\n        }\n        texture = attachment != null ? (ref1$ = attachment.region) != null ? ref1$.texture : void 8 : void 8;\n        if ((texture != null ? texture.baseTexture : void 8) == null) {\n          return false;\n        }\n      }\n      return true;\n    };\n    getSpine = function(onDone){\n      var spine;\n      spine = cache[o.projectFolder];\n      if (!texturesExist(spine)) {\n        return createSpine(onDone);\n      } else {\n        return onDone(spine);\n      }\n    };\n    inc(\"setRendererAndStage/set\")(o);\n    if (!o.renderer) {\n      return SvgIcon({\n        svg: path(\"/lib/svg/illustration/super-anton.svg\"),\n        width: \"10em\"\n      }).css({\n        marginBottom: \"1em\"\n      });\n    }\n    getSpine(function(spine){\n      var container, localRect;\n      if (!o.renderer) {\n        return;\n      }\n      if (o.skin) {\n        spine.skeleton.setSkinByName(o.skin);\n      }\n      spine.state.clearTracks();\n      spine.skeleton.setToSetupPose();\n      spine.autoUpdate = true;\n      spine.update(0);\n      container = new PIXI.Container();\n      container.addChild(spine);\n      localRect = spine.getLocalBounds();\n      spine.position.set(-localRect.x, -localRect.y);\n      container.x = o.renderer.width / 2 / o.renderer.resolution - container.width / 2;\n      container.y = o.renderer.height / 2 / o.renderer.resolution - container.height / 2 * 0.9;\n      o.stage.addChild(container);\n      o.renderer.view.spine = spine;\n      return requestAnimationFrame(function(){\n        return typeof o.onDone == 'function' ? o.onDone() : void 8;\n      });\n    });\n    return o.renderer.view;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/start/startUser/07_extraPages/cancelDeletion/_t.ls","text":"(function(){\n  return {\n    userWillBeDeletedText: {\n      de: \"Dein Nutzerkonto wurde zur Löschung vorgemerkt und wird am $1&nbsp;gelöscht.\",\n      en: \"Your account was marked for deletion and will be deleted on $1.\",\n      fr: \"La suppression de ton compte a été prise en compte.<br>Il sera supprimé le $1.\",\n      es: \"Tu solicitud de eliminación de cuenta ha sido registrada.<br>Tu cuenta se eliminará el $1.\",\n      pt: \"Sua solicitação para excluir esta conta foi registrada.<br>Sua conta será excluída em $1.\"\n    },\n    'continue': {\n      de: \"Weiter\",\n      en: \"Continue\",\n      fr: \"Continuer\",\n      es: \"Continuar\",\n      pt: \"Continuar\"\n    },\n    abortDeletion: {\n      de: \"Löschung abbrechen\",\n      en: \"Cancel deletion\",\n      fr: \"Annuler la suppression\",\n      es: \"Cancelar eliminación\",\n      pt: \"Cancelar exclusão\"\n    },\n    deletionCancelledText: {\n      de: \"Dein Nutzerkonto wird nun nicht mehr gelöscht.\",\n      en: \"Your account will no longer be deleted.\",\n      fr: \"Ton compte ne sera plus supprimé.\",\n      es: \"Tu cuenta ya no será eliminada.\",\n      pt: \"Sua conta não será mais excluída.\"\n    },\n    userWillBeDeletedBySchoolText: {\n      de: \"Dein Nutzerkonto wurde von deiner Schule <b>$1</b> zur Löschung vorgemerkt und wird am $2 gelöscht.\",\n      en: \"Your account was marked for deletion by your school <b>$1</b> and will be deleted on $2.\",\n      fr: \"Ton école <b>$1</b> a demandé la suppression de ton compte. Il sera supprimé le $2.\",\n      es: \"Tu escuela <b>$1</b> ha solicitado eliminar tu cuenta. Esta se eliminará el $2.\",\n      pt: \"Sua escola <b>$1</b> solicitou a exclusão da sua conta. Esta será excluída em $2.\"\n    }\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbarWhiteBack/backIcon/icon.ls","text":"(function(){\n  return function(o){\n    var tap;\n    tap = function(){\n      if (_.isFunction(o.back)) {\n        return o.back();\n      } else {\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      }\n    };\n    return Div({\n      position: \"absolute\",\n      left: 0,\n      top: 0,\n      display: \"flex\",\n      padding: \"0.7em\",\n      zIndex: 1,\n      backgroundColor: \"rgba(255,255,255,0.8)\"\n    }).html(SvgIcon(path(\"/lib/svg/icon/arrow-left-small.svg\"))).addClass(\"keyManager-esc androidBack\").bind(\"androidBack\", tap).bind(\"keyManager\", tap).tap({\n      up: tap,\n      tapZone: \"0 1em 1em 0\"\n    }).attr({\n      \"aria-label\": T(\"backButton\"),\n      role: \"button\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/terms/div/divEnGb/div.ls","text":"(function(){\n  return function(isPrint){\n    var s, p, section;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div({\n      minHeight: \"var(--centerHeight)\"\n    }).addClass(\"privacyDiv\").html(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3.5em\"\n    }) : void 8, isPrint ? Div({\n      fontSize: \"1.4em\"\n    }).html(T(\"termsOfService\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. General\",\n      content: [p(\"Welcome to ANTON - great to have you here! ANTON is a free learning app for pupils, teachers and parents. ANTON is developed and provided by solocode GmbH, Mehringdamm 61, 10961 Berlin (hereinafter: the provider).\"), p(\"You can use ANTON at https://anton.app and also via the mobile apps for Android, iOS and Amazon Fire.\"), p(\"These general terms and conditions of use (hereinafter: “GTC”) provide the final legal framework for all ANTON services intended for consumers or schools (hereinafter: “the service”). Verbal side agreements or contract changes are only effective if they are confirmed by the provider in writing or by email.\"), p(\"These general terms and conditions apply equally to the free offer and the additional offers subject to charges.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. Services offered, scope\",\n      content: [p(\"2.1. ANTON is an online learning system that enables pupils to learn for school in a simple, modern and efficient way.\"), p(\"2.2. Teachers and parents can use ANTON to guide and support pupils in learning.\"), p(\"2.3. Schools can use ANTON as part of their lessons, as homework or as an additional learning option.\"), p(\"2.4. Many functions are available to the user free of charge. Paid services are clearly identified as such and can be used against payment of the respective fees or prices.\"), p(\"2.5. The provider reserves the right to make parts of its offer accessible only to teachers or other users entrusted with educational tasks.\"), p(\"2.6. When registering online, the user is obliged not to provide any non-truthful information, in particular regarding his role as a pupil or teacher and school affiliation. If the user enters incorrect data, the provider can, as far as a contract has been concluded, withdraw from the contract. If possible, the withdrawal will be declared in writing. The written form is also preserved by sending an email. If incorrect data is entered, a school administrator can be given the right to manage the user account created under incorrect information, to view the registration code and to mark the user for deletion.\"), p(\"2.7. In addition to the free offer, consumers can also activate ANTON-Plus, a paid service with additional functions.\"), p(\"2.8. Schools can purchase an ANTON School Licence and thus unlock additional functions that improve their use in school. In addition to the ANTON School Licence, schools can also activate ANTON-Plus for all school pupils and teachers.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. Free offer and ANTON-Plus\",\n      content: [p(\"3.1. The user can create a user account with ANTON free of charge.\"), p(\"3.2. After creating a user account, the use of the free basic functions is available (\\\"basic contract\\\"). However, the user has no legal right to the free availability of such content and functions.\"), p(\"3.3. Basic contracts can be terminated properly at any time with a notice period of 14 days.\"), p(\"3.4. The provider also offers consumers the paid service ANTON-Plus (\\\"premium contract\\\") according to various price models. If prices are given at ANTON, they include the applicable statutory sales tax.\"), p(\"3.5. By booking a premium contract, the user has access to additional functions within the framework of the respective premium contract for the entire contract term.\"), p(\"3.6. Settlement type, price and duration are listed in the course of the ordering process and are fully summarised before the order is completed. The premium contract is concluded by clicking on the \\\"pay now\\\" button (or similar).\"), p(\"3.7. Premium contracts are concluded for the fixed term chosen by the user. Prices for the entire term are due upon conclusion of the contract.\"), p(\"3.8. The provider will primarily communicate with the user via the support chat in the app or - if an email address has been specified - and via this, and can in particular inform him of contractually relevant declarations of intent (e.g. terminations). The user can provide the provider with a current email address at any time.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. Term, extension and termination of contracts for consumers\",\n      content: [p(\"4.1. As long as no premium contract has been concluded, the user can terminate the basic contract at any time in accordance with section 3.3.\"), p(\"4.2. Unless otherwise stated when the contract is concluded, the ANTON-Plus premium contracts are ongoing subscriptions, which are automatically extended by the contractually agreed term, provided the user or the provider does not cancel the respective premium contract up to 24 hours before the end of the respective term. Fees for extension periods are also invoiced in advance. All contracts can be terminated at the end of the respective term.\"), p(\"4.3. Premium contracts, which are acquired by \\\"one-off payment\\\", are expressly shown as limited or unlimited. If they are limited, the contract ends at the end of the term without the need for termination. If they are unlimited, the following paragraphs apply accordingly.\"), p(\"4.4. The termination of premium contracts that were purchased via the Apple App Store, the Google Play Store or via Paypal takes place according to the applicable conditions of the respective Service provider. The exact procedure is described on the website of the Apple App Store, the Google Play Store or Paypal.\"), p(\"4.5. The right to terminate the contract for an important reason remains unaffected.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. Right of withdrawal for consumers\",\n      content: [\n        p(\"5.1. Consumers have the right to cancel this contract within 14 days without giving a reason. The cancellation period is 14 days from the day the contract is concluded. In order to exercise the right of withdrawal, consumers must provide the provider (solocode GmbH, Mehringdamm 61, 10961 Berlin, Germany, email: support@anton.app) with a clear statement (e.g. a letter sent by post or email) that they wish to cancel this contract. For this purpose, consumers can use the attached model withdrawal form, but this is not mandatory.\"), p(\"5.2. To meet the cancellation deadline, it is sufficient that the notification of the exercise of the right of cancellation is sent before the cancellation period expires.\"), Button(\"Model withdrawal form\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://files.anton.app/files/ANTON-model-withdrawal-form.pdf\");\n        }).css({\n          marginBottom: \"1em\",\n          marginTop: \"-0.5em\"\n        }), p(\"5.3. If you withdraw from this contract, we will repay all payments we have received from you, including delivery charges (except for the additional costs arising from choosing a different delivery method than the best standard delivery we offer) immediately and at the latest within 14 days from the date on which the notification of your cancellation of this contract was received by us. For this repayment, we use the same means of payment that you used in the original transaction, unless otherwise agreed with you; in no case will you be charged for this repayment of fees.\")\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Payment arrangements\",\n      content: [p(\"6.1. Unless otherwise stated in the ordering process, fees for premium contracts are payable in advance for the entire term of the contract.\"), p(\"6.2. Payment can be made using any of the payment methods detailed on the website without additional fees. As part of the payment process, the provider commissions an external payment service provider to process the payment data entered by the user.\"), p(\"6.3. After selecting the desired payment system, the user enters the required data in the corresponding data fields. The commissioned payment service provider is entitled to accept payments for the provider. The provider reserves the right to restrict the payment systems offered.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. Paid offers for schools: ANTON-school-licence\",\n      content: [p(\"7.1. Schools can unlock additional functions for school staff, teachers and pupils by purchasing a premium offer.\"), p(\"7.2. Only when the order is sent does the school or the customer make a binding offer to conclude a contract with the provider. The provider can accept the offer within a period of 10 working days by sending an order confirmation, an invoice or by activating the product offered.\"), p(\"7.3. Only the price information of the provider at the time of the conclusion of the contract is decisive.\"), p(\"7.4. The term is shown to the customer when buying. After the contract has been concluded, both parties can terminate the licence at any time at the end of the service period. If it is not cancelled before the end of the service period, it will be extended for another year. Notice of termination must be given by email or in writing.\"), p(\"7.5. The scope of services is based on the product description and also becomes part of the contract.\"), p(\"7.6. The invoice amount is payable without deductions 14 days after the invoice date.\"), p(\"7.7.  If the provider does not receive payment within 30 days, the invoice is past due and the provider reserves the right to suspend access to the affected school account(s) and take collection action. Suspension of an account does not relieve the account-holder of its obligation to pay for the account. The provider reserves the right to charge a late fee in the amount of 1% per month or the maximum permitted by law and its reasonable attorney's fees in securing payment of past due amounts.\"), p(\"7.8. Schools and institutions may only give teachers or pedagogical staff employed by them access to the teacher and admin functions of the School Licence. A school authority may only register schools under its responsibility to use a school authority licence.\"), p(\"7.9 Schools and institutions are obliged to provide truthful information about the number of pupils, teachers and staff of the school and may only allow active members to access the Premium Offer or parts of it.\"), p(\"7.10. The Provider shall be entitled to temporarily block Users' access to ANTON in whole or in part and to terminate the School Licence Agreement without notice and with immediate effect if there are reasonable grounds to suspect that users do not belong to the group of persons permitted to use the premium offer or that the offerings are being abused, used to commit unlawful acts or in violation of the rights of third parties, or were used in breach of contract or such use was permitted or unauthorised third parties have obtained knowledge of the access data, in particular the password of an administrator user or other users, because the necessary care in handling this data, in particular the recognised principles of data security, was not observed. The provider will only make use of this right in consideration of the legitimate interests of the user and will inform the school in writing or by email about the blocking.\"), p(\"7.11. Schools can mark user accounts that they have created or for which they are responsible for administration for deletion after a transitional period of 60 days. The users - and if necessary their legal guardians - must be informed by the school. Within a period of 60 days, they will be given the opportunity to transfer the data stored in the user account to a new account and to continue using it independently. After this period the user accounts will be automatically deleted.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Accessibility of the offer, limitation of liability\",\n      content: [p(\"8.1 The provider shall use the current and generally used technologies for its services. In order to be able to use ANTON to the full extent, users must also use these technologies (e.g. current browser technology, web sockets) or use them on their computer or mobile device (e.g. activation of JavaScript). If older technologies or technologies that are not generally in use are used, users may only be able to use ANTON to a limited extent.\"), p(\"8.2 With regard to the costs incurred, availability and security of the data connection, the internet services required for the use of ANTON and the equipment necessary for such use shall be the sole responsibility of the user and - if applicable - the school.\"), p(\"8.3 The Provider expressly does not warrant that the services offered are suitable for the objectives specifically pursued by the individual user.\"), p(\"8.4 Claims of users and customers for damages are excluded. Excluded from this are claims for damages from injury to life, body, health or from the violation of essential contractual obligations (cardinal obligations) as well as the liability for other damages, which are based on an intentional or grossly negligent breach of duty on the part of the provider, his legal representatives or vicarious agents. Material contractual obligations are those whose fulfilment is necessary to achieve the objective of the contract. A \\\"cardinal obligation\\\" or \\\"essential contractual obligations\\\" are obligations, the fulfilment of which makes the proper execution of the contract possible in the first place and on the observance of which the contractual partner regularly relies and may rely. In the event of data loss, the provider shall be liable at most for the effort required for reconstruction in the event of proper data backup by users and customers.\"), p(\"8.5 In case of violation of essential contractual obligations, the provider is only liable for the contract-typical, foreseeable damage if this was caused by simple negligence, unless it is a matter of claims for damages from an injury to life, body or health.\"), p(\"8.6 The restrictions of paragraphs 8.4 and 8.5 also apply in favour of the legal representatives and vicarious agents of the provider if claims are made directly against them.\"), p(\"8.7 Availability: The online products of the provider are generally available 24 hours a day. However, due to necessary service work on the information system, it may be temporarily unavailable.\"), p(\"8.8 Disruptions to access to the internet and data traffic on the internet due to events for which the provider is not responsible and which make access difficult or impossible (e.g. due to firewall configuration) do not affect the provider's claim for remuneration. Any liability of the provider due to unavailability in the cases of clause 8.1 and clause 8.2 is excluded. The right of users and customers to extraordinary termination remains unaffected.\"), p(\"8.9 Any further liability for damages other than that provided for in sections 8.4 and 8.5 is excluded, irrespective of the legal nature of the claim asserted. In this respect, the provider is in particular not liable for indirect damages, such as loss of profit and other financial losses of users and customers. The mandatory provisions of the product liability act remain unaffected.\"), p(\"8.10. Claims for reimbursement of expenses by users and customers are limited to the amount of interest they have in the fulfilment of the contract.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Indemnification\",\n      content: [p(\"9.1 The offer may only be used in accordance with these GTC. Users shall in particular not be entitled to reverse engineer, decompile, disassemble, modify or create derivative works based on ANTON or parts thereof; to circumvent protective measures used by the provider or its licensors to protect content that can be accessed via ANTON; copy, store, edit, develop derivative works based on, or in any way modify, any content provided via ANTON; rent out or grant sublicences for its own user account; share its own user account with other persons and/or grant other persons access to ANTON's fee-based services; use ANTON in any other improper manner that violates these GTC.\"), p(\"9.2 In the cases described in Section 9.1 above, as well as in all other cases of improper use  or violation of this agreement, user agrees to indemnify and hold provider harmless to the extent permitted by applicable law, including reasonable attorneys' fees. In any case, the provider reserves the right to block user accounts without notice, as soon as there is an indication of improper or abusive use and the provider has a legitimate interest in blocking.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. Intellectual property rights\",\n      content: [p(\"10.1 All texts, images and other copyrighted content and works provided by ANTON shall be protected by copyright. Any use not covered by this agreement, in particular for commercial or operational purposes, shall require the prior written consent of the provider.\"), p(\"10.2 For content that is expressly made available through a Creative Commons licence, the terms of the applicable Creative Commons licence apply.\"), p(\"10.3 The use of all trademarks, brands, designs and business names used by the provider within the scope of the offer also requires the prior consent of the provider in text form.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"11. Content generated by users\",\n      content: [p(\"11.1 If users generate content themselves, e.g. by creating a learning list, creating a picture or otherwise making materials available via ANTON, they shall be fully responsible for the quality of such content and for any damage resulting therefrom. This shall apply regardless of whether the content in question consists of text, graphics, audio files, computer software or any other format.\"), p(\"11.2 Users may only store content suitable for learning and study purposes at ANTON. The provider reserves the right to take action against users who violate this provision. Such action may include, but is not limited to, removal of the content in question, termination of the accounts of the persons concerned, or the taking of further legal action. Prohibited content includes, but is not limited to, content that violates the rights of the provider or third parties, is offensive or commercial in nature, or violates applicable laws and regulations.\"), p(\"11.3 When users create or upload content or any other materials to ANTON, they shall grant the provider a worldwide, perpetual, royalty-free licence (with the right to sublicence) to use, copy, reproduce, process, adapt, modify, modify, publish, transmit, display and distribute such content or materials in or by means of any and all media or distribution methods (whether existing or developed at a later date). Additional uses by the provider or other companies or individuals acting as partners of the provider may be made without compensation to users for any content they submit, post or otherwise make available through the service.\"), p(\"11.4 By making content available via ANTON, users represent and warrant that such content does not infringe the rights of third parties and that such content does not contain or install any malicious software or offensive material.\"), p(\"11.5 The provider does not review all content sent to the service, does not have the opportunity to do so and therefore cannot be responsible for the content, use or effects of such material. The fact that the provider operates the service does not mean, and does not imply, that the provider endorses the material sent to the service or believes that such material is accurate, useful or harmless.\"), p(\"11.6 User-generated content, such as learning lists, pictures, writings, etc. may include material that is potentially offensive, indecent or otherwise objectionable, as well as content that may contain technical, factual, spelling or other errors.\"), p(\"11.7 The service may contain material that violates or infringes the intellectual property rights or other proprietary rights of others, or where the downloading, copying or use may be subject to additional terms and conditions, written or unwritten. The provider disclaims any liability for any damages resulting from visitors using the service or downloading any posted content from the service. If users discover content or other materials that violate these terms and conditions, there are appropriate features on the service's website that allow users to report such violations to the provider.\"), p(\"11.8 The provider respects the intellectual property of others. If you are of the opinion that material published or linked on the website or in ANTON's mobile apps infringes your copyright, please notify us. If necessary, the provider will remove the content in question or deactivate all links to such content. In the event that a user should infringe upon the copyrights or other intellectual property rights of ANTON or others on one or more occasions, the provider may, at its sole discretion, terminate or deny access to or use of the service. In the event of such termination, the provider shall not be obliged in any way to refund any amounts paid in advance by the user concerned.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"12. Final clauses\",\n      content: [\n        p(\"12.1 The contractual relationship between the provider and the user or customer is subject to German law as far as legally permissible. If the law of the country in which the consumer has his residence provides for a higher level of consumer protection, this shall remain unaffected.\"), p(\"12.2 The provider does not take part in any dispute settlement proceedings before a consumer arbitration board within the meaning of the Consumer Dispute Settlement Act.\"), p(\"12.3 The EU-Commission offers a platform for online dispute resolution (ODR) at:\"), Div({\n          textDecoration: \"underline\",\n          marginBottom: \"1.2em\"\n        }).html(\"https://ec.europa.eu/consumers/odr\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://ec.europa.eu/consumers/odr/main/index.cfm?lng=EN\");\n        }).css({\n          marginBottom: \"1em\",\n          marginTop: \"0em\"\n        }), p(\"12.4 The contract remains binding in its remaining parts even if individual points are legally ineffective. In place of the ineffective points, the legal regulations, if any, shall apply. However, if this would represent an unreasonable hardship for one of the contracting parties, the contract as a whole shall become invalid.\"), p(\"12.5 The provider reserves the right to change these general terms and conditions for objective reasons (e.g. due to changes in the legal situation or the provider's own offer, technical developments, etc.). This applies in particular if new offers of the provider require new regulations.\"), p(\"12.6 The amended GTC will be sent to the user or customer in advance by email or by another suitable form or displayed on the website and in the mobile apps. If the user does not object to the amended GTC within six weeks, they shall be deemed accepted. In the event of an objection, the provider may block the user's user account, in which case any payments already made will be refunded pro rata in relation to the remaining term. The provider will point out these legal consequences separately in the message with the amended GTC.\")\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"13. Additional Provisions Applicable for Residents of the United States of America\",\n      content: [p(\"13.1 If the user is a resident of the United States of America the provisions of this section 13 shall be applicable in addition to the provisions above or where in conflict with the provisions above, the user may choose which provisions shall be applicable.\"), p(\"13.2 Creation of a User Account and Conclusion of the Contract\"), p(\"The following additional provisions shall apply to Section 3 of the GTC:\"), p(\"3.9 The user agrees and acknowledges that the user will never access or use another person’s account without permission.\"), p(\"3.10 The user agrees and acknowledges that the user will not transfer their account to another person or entity without the provider’s prior written approval.\"), p(\"3.11 If the user selects a username or similar identifier for their account, the provider reserves the right to remove or reclaim it if the provider, in its sole discretion, believes it is inappropriate or violates the rights of a third party (including, but not limited to any applicable trademarks).\"), p(\"13.3 Content and Accessibility of the Service and Liability\"), p(\"The following shall replace and supersede Section 8 of the GTC:\"), p(\"8.1 For providing its service, the provider uses the technologies currently and commonly used in the field. To be able to make full use of the services offered by the provider, the user must likewise use these technologies (e.g. up-to-date browser technologies, web sockets) or enable their use on its computer (e.g. activate Java Script). If older or not commonly used technologies are used, the user might only be able to make limited use of the services provided by the provider. The user is solely liable for any loss or damage incurred by the user, the provider or any third party caused by the user’s failure to use up-to-date technologies when accessing ANTON.\"), p(\"13.4 Indemnification\"), p(\"The following additional provisions shall apply to Section 9 of the GTC:\"), p(\"9.1 The offer may only be used in accordance with these GTC. Users shall in particular not be entitled to reverse engineer, decompile, disassemble, modify or create derivative works based on ANTON or parts thereof; to circumvent protective measures used by the provider or its licensors to protect content that can be accessed via ANTON; copy, store, edit, develop derivative works based on, or in any way modify, any content provided via ANTON; rent out or grant sublicences for its own user account; share its own user account with other persons and/or grant other persons access to ANTON's fee-based services; not to download or copy any account information for the benefit of any other party; not to collect or make any use of any product listings, descriptions or prices; not to resell or make any commercial use of ANTON or its contents; not to reproduce, duplicate, copy, sell, resell or otherwise exploit ANTON for any commercial purpose without express written consent of the provider; not to use any meta tags or any other “hidden tag” utilizing the ANTON name or any of the provider’s trademarks without the express written consent of the provider or use ANTON in any other improper manner that violates these GTC.\"), p(\"9.3 The user agrees not to circumvent, disable or otherwise interfere with security-related features of ANTON or any associated websites and/or tablet and/or mobile applications or features that prevent or restrict use or copying of any content or enforce limitations on ANTON’s use.\"), p(\"9.4 The user agrees not to use or launch any automated system, including without limitation, “robots,” “spiders,” or “offline readers,” that accesses ANTON in a manner that sends more request messages to the provider’s servers in a given period of time than a human can reasonably produce in the same period by using a conventional on-line web browser. Notwithstanding the foregoing, the provider grants the operators of public search engines permission to use spiders to copy materials from the site for the sole purpose of and solely to the extent necessary for creating publicly available searchable indices of the materials, but not caches or archives of such materials. The provider reserves the right to revoke these exceptions either generally or in specific cases. The user agrees not to collect or harvest any personally identifiable information, including account names, from ANTON, nor to use the communication systems provided by ANTON (e.g., comments, email) for any commercial solicitation purposes. The user agrees not to solicit, for commercial purposes, any ANTON users with respect to their content. In all use of ANTON and all associated services, website and mobile and/or tablet applications, the user agrees to comply with all applicable laws and regulations.\"), p(\"13.5 Final Clauses\"), p(\"The following shall replace and supersede Section 12 of the GTC and any contradictory provisions elsewhere in the GTC:\"), p(\"12.1 Agreements between the provider and the user shall be subject to the laws of the Federal Republic of Germany. The UN Convention on Contracts for the International Sale of Goods (CISG) shall not apply. The parties agree to exclude those provisions of the German international civil law, that may cause the exclusive application of any other jurisdiction.\"), p(\"12.4 and 12.5 The provider may, in its sole discretion, modify or revise the GTC at any time, and the user agrees to be bound by all such modifications or revisions. The modified GTC will be posted at this address and so we encourage users to periodically check these GTC. If the user does not agree to any of these terms, the user should immediately stop accessing and/or using this website or any of the other ANTON services or mobile and/or tablet applications. If the user has paid for premium services and objects to the GTC, please notify the provider immediately and we will close the applicable account and issue the applicable user a full refund for the remainder of the applicable term.\"), p(\"The following additional provisions shall apply to Section 12 of the GTC:\"), p(\"12.6 Any failure of the provider to exercise or enforce any right or provision of the GTC or the privacy statement shall not constitute a waiver of such right or provision. Should individual points of these GTC or the privacy statement be legally invalid, the remaining portions hereof shall be unaffected and remain binding.\"), p(\"12.7 The user and the provider acknowledge and agree that these GTC and any other legal notices published by the provider and incorporated herein shall constitute the entire agreement between the user and the provider.\"), p(\"12.8 The parties agree on the exclusive jurisdiction of the courts at the place of business of the provider, if the user does not have a residence in Germany.\"), p(\"12.9 These GTC and any rights and licences granted hereunder, may not be transferred or assigned by the user, but may be assigned by the provider without restriction.\"), p(\"12.10 The user agrees that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to the GTC must be filed within one (1) year after such claim or cause of action arose or be forever barred.\")]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/terms/div/divEn/div.ls","text":"(function(){\n  return function(isPrint){\n    var s, p, section;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div({\n      minHeight: \"var(--centerHeight)\"\n    }).addClass(\"privacyDiv\").html(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3.5em\"\n    }) : void 8, isPrint ? Div({\n      fontSize: \"1.4em\"\n    }).html(T(\"termsOfService\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. General\",\n      content: [p(\"Welcome to ANTON - nice that you are there! ANTON is a free learning app for students, teachers and parents. ANTON is developed and provided by solocode GmbH, Mehringdamm 61, 10961 Berlin (hereinafter: the provider).\"), p(\"You can use ANTON at https://anton.app and also via the mobile apps for Android, iOS and Amazon Fire.\"), p(\"These general terms and conditions of use (hereinafter: “GTC”) provide the final legal framework for all ANTON services intended for consumers or schools (hereinafter: “the service”). Verbal side agreements or contract changes are only effective if they are confirmed by the provider in writing or by email.\"), p(\"These general terms and conditions apply equally to the free offer and the additional offers subject to charges.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. Services offered, scope\",\n      content: [p(\"2.1. ANTON is an online learning system that enables students to learn for school in a simple, modern and efficient way.\"), p(\"2.2. Teachers and parents can use ANTON to guide and support students in learning.\"), p(\"2.3. Schools can use ANTON as part of their lessons, as homework or as an additional learning option.\"), p(\"2.4. Many functions are available to the user free of charge. Paid services are clearly identified as such and can be used against payment of the respective fees or prices.\"), p(\"2.5. The provider reserves the right to make parts of its offer accessible only to teachers or other users entrusted with educational tasks.\"), p(\"2.6. When registering online, the user is obliged not to provide any non-truthful information, in particular regarding his role as a pupil or teacher and school affiliation. If the user enters incorrect data, the provider can, as far as a contract has been concluded, withdraw from the contract. If possible, the withdrawal will be declared in writing. The written form is also preserved by sending an email. If incorrect data is entered, a school administrator can be given the right to manage the user account created under incorrect information, to view the registration code and to mark the user for deletion.\"), p(\"2.7. In addition to the free offer, consumers can also activate ANTON-Plus, a paid service with additional functions.\"), p(\"2.8. Schools can purchase an ANTON school license and thus unlock additional functions that improve their use in school. In addition to the ANTON school license, schools can also activate ANTON-Plus for all school students and teachers.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. Free offer and ANTON-Plus\",\n      content: [p(\"3.1. The user can create a user account with ANTON free of charge.\"), p(\"3.2. After creating a user account, the use of the free basic functions is available (\\\"basic contract\\\"). However, the user has no legal right to the free availability of such content and functions.\"), p(\"3.3. Basic contracts can be terminated properly at any time with a notice period of 14 days.\"), p(\"3.4. The provider also offers consumers the paid service ANTON-Plus (\\\"premium contract\\\") according to various price models. If prices are given at ANTON, they include the applicable statutory sales tax.\"), p(\"3.5. By booking a premium contract, the user has access to additional functions within the framework of the respective premium contract for the entire contract term.\"), p(\"3.6. Settlement type, price and duration are listed in the course of the ordering process and are fully summarized before the order is completed. The premium contract is concluded by clicking on the \\\"pay now\\\" button (or similar).\"), p(\"3.7. Premium contracts are concluded for the fixed term chosen by the user. Prices for the entire term are due upon conclusion of the contract.\"), p(\"3.8. The provider will primarily communicate with the user via the support chat in the app or - if an email address has been specified - and via this, and can in particular inform him of contractually relevant declarations of intent (e.g. terminations). The user can provide the provider with a current email address at any time.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. Term, extension and termination of contracts for consumers\",\n      content: [p(\"4.1. As long as no premium contract has been concluded, the user can terminate the basic contract at any time in accordance with section 3.3.\"), p(\"4.2. Unless otherwise stated when the contract is concluded, the ANTON-Plus premium contracts are ongoing subscriptions, which are automatically extended by the contractually agreed term, provided the user or the provider does not cancel the respective premium contract up to 24 hours before the end of the respective term. Fees for extension periods are also invoiced in advance. All contracts can be terminated at the end of the respective term.\"), p(\"4.3. Premium contracts, which are acquired by \\\"one-off payment\\\", are expressly shown as limited or unlimited. If they are limited, the contract ends at the end of the term without the need for termination. If they are unlimited, the following paragraphs apply accordingly.\"), p(\"4.4. The termination of premium contracts that were purchased via the Apple App Store, the Google Play Store or via Paypal takes place according to the applicable conditions of the respective Service provider. The exact procedure is described on the website of the Apple App Store, the Google Play Store or Paypal.\"), p(\"4.5. The right to terminate the contract for an important reason remains unaffected.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. Right of withdrawal for consumers\",\n      content: [\n        p(\"5.1. Consumers have the right to cancel this contract within 14 days without giving a reason. The cancellation period is 14 days from the day the contract is concluded. In order to exercise the right of withdrawal, consumers must provide the provider (solocode GmbH, Mehringdamm 61, 10961 Berlin, Germany, email: support@anton.app) with a clear statement (e.g. a letter sent by post or email) that they wish to cancel this contract. For this purpose, consumers can use the attached model withdrawal form, but this is not mandatory.\"), p(\"5.2. To meet the cancellation deadline, it is sufficient that the notification of the exercise of the right of cancellation is sent before the cancellation period expires.\"), Button(\"Model withdrawal form\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://files.anton.app/files/ANTON-model-withdrawal-form.pdf\");\n        }).css({\n          marginBottom: \"1em\",\n          marginTop: \"-0.5em\"\n        }), p(\"5.3. If you withdraw from this contract, we will repay all payments we have received from you, including delivery charges (except for the additional costs arising from choosing a different delivery method than the best standard delivery we offer have) immediately and at the latest within 14 days from the date on which the notification of your cancellation of this contract was received by us. For this repayment, we use the same means of payment that you used in the original transaction, unless otherwise agreed with you; in no case will you be charged for this repayment of fees.\")\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Payment arrangements\",\n      content: [p(\"6.1. Unless otherwise stated in the ordering process, fees for premium contracts are payable in advance for the entire term of the contract.\"), p(\"6.2. Payment can be made using any of the payment methods detailed on the website without additional fees. As part of the payment process, the provider commissions an external payment service provider to process the payment data entered by the user.\"), p(\"6.3. After selecting the desired payment system, the user enters the required data in the corresponding data fields. The commissioned payment service provider is entitled to accept payments for the provider. The provider reserves the right to restrict the payment systems offered.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. Paid offers for schools: ANTON-school-license\",\n      content: [p(\"7.1. Schools can unlock additional functions for school staff, teachers and students by purchasing a premium offer.\"), p(\"7.2. Only when the order is sent does the school or the customer make a binding offer to conclude a contract with the provider. The provider can accept the offer within a period of 10 working days by sending an order confirmation, an invoice or by activating the product offered.\"), p(\"7.3. Only the price information of the provider at the time of the conclusion of the contract is decisive.\"), p(\"7.4. The term is shown to the customer when buying. After the contract has been concluded, both parties can terminate the license at any time at the end of the service period. If it is not canceled before the end of the service period, it will be extended for another year. Notice of termination must be given by email or in writing.\"), p(\"7.5. The scope of services is based on the product description and also becomes part of the contract.\"), p(\"7.6. The invoice amount is payable without deductions 14 days after the invoice date.\"), p(\"7.7.  If the provider does not receive payment within 30 days, the invoice is past due and the provider reserves the right to suspend access to the affected school account(s) and take collection action. Suspension of an account does not relieve the account-holder of its obligation to pay for the account. The provider reserves the right to charge a late fee in the amount of 1% per month or the maximum permitted by law and its reasonable attorney's fees in securing payment of past due amounts.\"), p(\"7.8. Schools and institutions may only give teachers or pedagogical staff employed by them access to the teacher and admin functions of the school license. A school authority may only register schools under its responsibility to use a school authority license.\"), p(\"7.9 Schools and institutions are obliged to provide truthful information about the number of students, teachers and staff of the school and may only allow active members to access the Premium Offer or parts of it.\"), p(\"7.10. The Provider shall be entitled to temporarily block Users' access to ANTON in whole or in part and to terminate the School License Agreement without notice and with immediate effect if there are reasonable grounds to suspect that users do not belong to the group of persons permitted to use the premium offer or that the offerings are being abused, used to commit unlawful acts or in violation of the rights of third parties, or were used in breach of contract or such use was permitted or unauthorised third parties have obtained knowledge of the access data, in particular the password of an administrator user or other users, because the necessary care in handling this data, in particular the recognised principles of data security, was not observed. The provider will only make use of this right in consideration of the legitimate interests of the user and will inform the school in writing or by email about the blocking.\"), p(\"7.11. Schools can mark user accounts that they have created or for which they are responsible for administration for deletion after a transitional period of 60 days. The users - and if necessary their legal guardians - must be informed by the school. Within a period of 60 days, they will be given the opportunity to transfer the data stored in the user account to a new account and to continue using it independently. After this period the user accounts will be automatically deleted.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Accessibility of the offer, limitation of liability\",\n      content: [p(\"8.1 The provider shall use the current and generally used technologies for its services. In order to be able to use ANTON to the full extent, users must also use these technologies (e.g. current browser technology, web sockets) or use them on their computer or mobile device (e.g. activation of JavaScript). If older technologies or technologies that are not generally in use are used, users may only be able to use ANTON to a limited extent.\"), p(\"8.2 With regard to the costs incurred, availability and security of the data connection, the internet services required for the use of ANTON and the equipment necessary for such use shall be the sole responsibility of the user and - if applicable - the school.\"), p(\"8.3 The Provider expressly does not warrant that the services offered are suitable for the objectives specifically pursued by the individual user.\"), p(\"8.4 Claims of users and customers for damages are excluded. Excluded from this are claims for damages from injury to life, body, health or from the violation of essential contractual obligations (cardinal obligations) as well as the liability for other damages, which are based on an intentional or grossly negligent breach of duty on the part of the provider, his legal representatives or vicarious agents. Material contractual obligations are those whose fulfilment is necessary to achieve the objective of the contract. A \\\"cardinal obligation\\\" or \\\"essential contractual obligations\\\" are obligations, the fulfilment of which makes the proper execution of the contract possible in the first place and on the observance of which the contractual partner regularly relies and may rely. In the event of data loss, the provider shall be liable at most for the effort required for reconstruction in the event of proper data backup by users and customers.\"), p(\"8.5 In case of violation of essential contractual obligations, the provider is only liable for the contract-typical, foreseeable damage if this was caused by simple negligence, unless it is a matter of claims for damages from an injury to life, body or health.\"), p(\"8.6 The restrictions of paragraphs 8.4 and 8.5 also apply in favour of the legal representatives and vicarious agents of the provider if claims are made directly against them.\"), p(\"8.7 Availability: The online products of the provider are generally available 24 hours a day. However, due to necessary service work on the information system, it may be temporarily unavailable.\"), p(\"8.8 Disruptions to access to the internet and data traffic on the internet due to events for which the provider is not responsible and which make access difficult or impossible (e.g. due to firewall configuration) do not affect the provider's claim for remuneration. Any liability of the provider due to unavailability in the cases of clause 8.1 and clause 8.2 is excluded. The right of users and customers to extraordinary termination remains unaffected.\"), p(\"8.9 Any further liability for damages other than that provided for in sections 8.4 and 8.5 is excluded, irrespective of the legal nature of the claim asserted. In this respect, the provider is in particular not liable for indirect damages, such as loss of profit and other financial losses of users and customers. The mandatory provisions of the product liability act remain unaffected.\"), p(\"8.10. Claims for reimbursement of expenses by users and customers are limited to the amount of interest they have in the fulfilment of the contract.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Indemnification\",\n      content: [p(\"9.1 The offer may only be used in accordance with these GTC. Users shall in particular not be entitled to reverse engineer, decompile, disassemble, modify or create derivative works based on ANTON or parts thereof; to circumvent protective measures used by the provider or its licensors to protect content that can be accessed via ANTON; copy, store, edit, develop derivative works based on, or in any way modify, any content provided via ANTON; rent out or grant sublicenses for its own user account; share its own user account with other persons and/or grant other persons access to ANTON's fee-based services; use ANTON in any other improper manner that violates these GTC.\"), p(\"9.2 In the cases described in Section 9.1 above, as well as in all other cases of improper use  or violation of this agreement, user agrees to indemnify and hold provider harmless to the extent permitted by applicable law, including reasonable attorneys' fees. In any case, the provider reserves the right to block user accounts without notice, as soon as there is an indication of improper or abusive use and the provider has a legitimate interest in blocking.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. Intellectual property rights\",\n      content: [p(\"10.1 All texts, images and other copyrighted content and works provided by ANTON shall be protected by copyright. Any use not covered by this agreement, in particular for commercial or operational purposes, shall require the prior written consent of the provider.\"), p(\"10.2 For content that is expressly made available through a Creative Commons license, the terms of the applicable Creative Commons license apply.\"), p(\"10.3 The use of all trademarks, brands, designs and business names used by the provider within the scope of the offer also requires the prior consent of the provider in text form.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"11. Content generated by users\",\n      content: [p(\"11.1 If users generate content themselves, e.g. by creating a learning list, creating a picture or otherwise making materials available via ANTON, they shall be fully responsible for the quality of such content and for any damage resulting therefrom. This shall apply regardless of whether the content in question consists of text, graphics, audio files, computer software or any other format.\"), p(\"11.2 Users may only store content suitable for learning and study purposes at ANTON. The provider reserves the right to take action against users who violate this provision. Such action may include, but is not limited to, removal of the content in question, termination of the accounts of the persons concerned, or the taking of further legal action. Prohibited content includes, but is not limited to, content that violates the rights of the provider or third parties, is offensive or commercial in nature, or violates applicable laws and regulations.\"), p(\"11.3 When users create or upload content or any other materials to ANTON, they shall grant the provider a worldwide, perpetual, royalty-free license (with the right to sublicense) to use, copy, reproduce, process, adapt, modify, modify, publish, transmit, display and distribute such content or materials in or by means of any and all media or distribution methods (whether existing or developed at a later date). Additional uses by the provider or other companies or individuals acting as partners of the provider may be made without compensation to users for any content they submit, post or otherwise make available through the service.\"), p(\"11.4 By making content available via ANTON, users represent and warrant that such content does not infringe the rights of third parties and that such content does not contain or install any malicious software or offensive material.\"), p(\"11.5 The provider does not review all content sent to the service, does not have the opportunity to do so and therefore cannot be responsible for the content, use or effects of such material. The fact that the provider operates the service does not mean, and does not imply, that the provider endorses the material sent to the service or believes that such material is accurate, useful or harmless.\"), p(\"11.6 User-generated content, such as learning lists, pictures, writings, etc. may include material that is potentially offensive, indecent or otherwise objectionable, as well as content that may contain technical, factual, spelling or other errors.\"), p(\"11.7 The service may contain material that violates or infringes the intellectual property rights or other proprietary rights of others, or where the downloading, copying or use may be subject to additional terms and conditions, written or unwritten. The provider disclaims any liability for any damages resulting from visitors using the service or downloading any posted content from the service. If users discover content or other materials that violate these terms and conditions, there are appropriate features on the service's website that allow users to report such violations to the provider.\"), p(\"11.8 The provider respects the intellectual property of others. If you are of the opinion that material published or linked on the website or in ANTON's mobile apps infringes your copyright, please notify us. If necessary, the provider will remove the content in question or deactivate all links to such content. In the event that a user should infringe upon the copyrights or other intellectual property rights of ANTON or others on one or more occasions, the provider may, at its sole discretion, terminate or deny access to or use of the service. In the event of such termination, the provider shall not be obliged in any way to refund any amounts paid in advance by the user concerned.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"12. Final clauses\",\n      content: [\n        p(\"12.1 The contractual relationship between the provider and the user or customer is subject to German law as far as legally permissible. If the law of the country in which the consumer has his residence provides for a higher level of consumer protection, this shall remain unaffected.\"), p(\"12.2 The provider does not take part in any dispute settlement proceedings before a consumer arbitration board within the meaning of the Consumer Dispute Settlement Act.\"), p(\"12.3 The EU-Commission offers a platform for online dispute resolution (ODR) at:\"), Div({\n          textDecoration: \"underline\",\n          marginBottom: \"1.2em\"\n        }).html(\"https://ec.europa.eu/consumers/odr\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://ec.europa.eu/consumers/odr/main/index.cfm?lng=EN\");\n        }).css({\n          marginBottom: \"1em\",\n          marginTop: \"0em\"\n        }), p(\"12.4 The contract remains binding in its remaining parts even if individual points are legally ineffective. In place of the ineffective points, the legal regulations, if any, shall apply. However, if this would represent an unreasonable hardship for one of the contracting parties, the contract as a whole shall become invalid.\"), p(\"12.5 The provider reserves the right to change these general terms and conditions for objective reasons (e.g. due to changes in the legal situation or the provider's own offer, technical developments, etc.). This applies in particular if new offers of the provider require new regulations.\"), p(\"12.6 The amended GTC will be sent to the user or customer in advance by email or by another suitable form or displayed on the website and in the mobile apps. If the user does not object to the amended GTC within six weeks, they shall be deemed accepted. In the event of an objection, the provider may block the user's user account, in which case any payments already made will be refunded pro rata in relation to the remaining term. The provider will point out these legal consequences separately in the message with the amended GTC.\")\n      ]\n    }), section({\n      isExpanded: isPrint,\n      header: \"13. Additional Provisions Applicable for Residents of the United States of America\",\n      content: [p(\"13.1 If the user is a resident of the United States of America the provisions of this section 13 shall be applicable in addition to the provisions above or where in conflict with the provisions above, the user may choose which provisions shall be applicable.\"), p(\"13.2 Creation of a User Account and Conclusion of the Contract\"), p(\"The following additional provisions shall apply to Section 3 of the GTC:\"), p(\"3.9 The user agrees and acknowledges that the user will never access or use another person’s account without permission.\"), p(\"3.10 The user agrees and acknowledges that the user will not transfer their account to another person or entity without the provider’s prior written approval.\"), p(\"3.11 If the user selects a username or similar identifier for their account, the provider reserves the right to remove or reclaim it if the provider, in its sole discretion, believes it is inappropriate or violates the rights of a third party (including, but not limited to any applicable trademarks).\"), p(\"13.3 Content and Accessibility of the Service and Liability\"), p(\"The following shall replace and supersede Section 8 of the GTC:\"), p(\"8.1 For providing its service, the provider uses the technologies currently and commonly used in the field. To be able to make full use of the services offered by the provider, the user must likewise use these technologies (e.g. up-to-date browser technologies, web sockets) or enable their use on its computer (e.g. activate Java Script). If older or not commonly used technologies are used, the user might only be able to make limited use of the services provided by the provider. The user is solely liable for any loss or damage incurred by the user, the provider or any third party caused by the user’s failure to use up-to-date technologies when accessing ANTON.\"), p(\"13.4 Indemnification\"), p(\"The following additional provisions shall apply to Section 9 of the GTC:\"), p(\"9.1 The offer may only be used in accordance with these GTC. Users shall in particular not be entitled to reverse engineer, decompile, disassemble, modify or create derivative works based on ANTON or parts thereof; to circumvent protective measures used by the provider or its licensors to protect content that can be accessed via ANTON; copy, store, edit, develop derivative works based on, or in any way modify, any content provided via ANTON; rent out or grant sublicenses for its own user account; share its own user account with other persons and/or grant other persons access to ANTON's fee-based services; not to download or copy any account information for the benefit of any other party; not to collect or make any use of any product listings, descriptions or prices; not to resell or make any commercial use of ANTON or its contents; not to reproduce, duplicate, copy, sell, resell or otherwise exploit ANTON for any commercial purpose without express written consent of the provider; not to use any meta tags or any other “hidden tag” utilizing the ANTON name or any of the provider’s trademarks without the express written consent of the provider or use ANTON in any other improper manner that violates these GTC.\"), p(\"9.3 The user agrees not to circumvent, disable or otherwise interfere with security-related features of ANTON or any associated websites and/or tablet and/or mobile applications or features that prevent or restrict use or copying of any content or enforce limitations on ANTON’s use.\"), p(\"9.4 The user agrees not to use or launch any automated system, including without limitation, “robots,” “spiders,” or “offline readers,” that accesses ANTON in a manner that sends more request messages to the provider’s servers in a given period of time than a human can reasonably produce in the same period by using a conventional on-line web browser. Notwithstanding the foregoing, the provider grants the operators of public search engines permission to use spiders to copy materials from the site for the sole purpose of and solely to the extent necessary for creating publicly available searchable indices of the materials, but not caches or archives of such materials. The provider reserves the right to revoke these exceptions either generally or in specific cases. The user agrees not to collect or harvest any personally identifiable information, including account names, from ANTON, nor to use the communication systems provided by ANTON (e.g., comments, email) for any commercial solicitation purposes. The user agrees not to solicit, for commercial purposes, any ANTON users with respect to their content. In all use of ANTON and all associated services, website and mobile and/or tablet applications, the user agrees to comply with all applicable laws and regulations.\"), p(\"13.5 Final Clauses\"), p(\"The following shall replace and supersede Section 12 of the GTC and any contradictory provisions elsewhere in the GTC:\"), p(\"12.1 Agreements between the provider and the user shall be subject to the laws of the Federal Republic of Germany. The UN Convention on Contracts for the International Sale of Goods (CISG) shall not apply. The parties agree to exclude those provisions of the German international civil law, that may cause the exclusive application of any other jurisdiction.\"), p(\"12.4 and 12.5 The provider may, in its sole discretion, modify or revise the GTC at any time, and the user agrees to be bound by all such modifications or revisions. The modified GTC will be posted at this address and so we encourage users to periodically check these GTC. If the user does not agree to any of these terms, the user should immediately stop accessing and/or using this website or any of the other ANTON services or mobile and/or tablet applications. If the user has paid for premium services and objects to the GTC, please notify the provider immediately and we will close the applicable account and issue the applicable user a full refund for the remainder of the applicable term.\"), p(\"The following additional provisions shall apply to Section 12 of the GTC:\"), p(\"12.6 Any failure of the provider to exercise or enforce any right or provision of the GTC or the privacy statement shall not constitute a waiver of such right or provision. Should individual points of these GTC or the privacy statement be legally invalid, the remaining portions hereof shall be unaffected and remain binding.\"), p(\"12.7 The user and the provider acknowledge and agree that these GTC and any other legal notices published by the provider and incorporated herein shall constitute the entire agreement between the user and the provider.\"), p(\"12.8 The parties agree on the exclusive jurisdiction of the courts at the place of business of the provider, if the user does not have a residence in Germany.\"), p(\"12.9 These GTC and any rights and licenses granted hereunder, may not be transferred or assigned by the user, but may be assigned by the provider without restriction.\"), p(\"12.10 The user agrees that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to the GTC must be filed within one (1) year after such claim or cause of action arose or be forever barred.\")]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/terms/div/divFr/div.ls","text":"(function(){\n  return function(isPrint){\n    var s, p, section;\n    s = inc(\"../../../_shared/styles/styles\")();\n    p = s.paragraph;\n    section = inc(\"../../../_shared/section/section\");\n    return Div({\n      minHeight: \"var(--centerHeight)\"\n    }).addClass(\"privacyDiv\").html(isPrint ? SvgIcon({\n      svg: path(\"/lib/svg/logo/anton-logo-vertical.svg\"),\n      width: \"10em\",\n      height: \"3.5em\"\n    }) : void 8, isPrint ? Div({\n      fontSize: \"1.4em\"\n    }).html(T(\"termsOfService\")) : void 8, \"<br>\", section({\n      isExpanded: isPrint,\n      header: \"1. Généralités\",\n      content: [p(\"Bienvenue sur ANTON ! ANTON est une application d'apprentissage gratuite pour les élèves, les enseignant·es et les parents. ANTON est développée et fournie par solocode GmbH, Mehringdamm 61, 10961 Berlin (ci-après dénommé le fournisseur).\"), p(\"Vous pouvez utiliser ANTON sur www.anton.app et aussi via les applications mobiles pour Android, iOS et Amazon Fire.\"), p(\"Les présentes Conditions Générales de Vente et d'Utilisation (ci-après dénommées “CGU”) constituent le cadre juridique définitif de l'ensemble des services ANTON destinés aux consommateurs ou aux écoles (ci-après dénommé “le Service”). Les accords collatéraux oraux ou les modifications contractuelles ne sont efficaces que s'ils sont confirmés par le fournisseur par écrit ou par courrier électronique. En cas de différence entre la version allemande et une version traduite des Conditions générales d’utilisation, la version allemande prévaut.\"), p(\"Les présentes CGU s'appliquent aussi bien à l'offre gratuite qu'aux offres supplémentaires payantes.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"2. Services offerts, champ d'application\",\n      content: [p(\"2.1 ANTON est un système d'apprentissage en ligne qui permet aux élèves d'apprendre pour l'école d'une manière simple, moderne et efficace.\"), p(\"2.2 Les enseignant·es et les parents peuvent utiliser ANTON pour guider et soutenir les élèves dans leur apprentissage.\"), p(\"2.3 Les écoles peuvent utiliser ANTON dans le cadre de leurs cours, comme devoir ou comme outil d'apprentissage supplémentaire.\"), p(\"2.4 De nombreuses fonctions sont mises gratuitement à la disposition des utilisateur·rices. Les services payants sont clairement identifiés comme tels et peuvent être utilisés contre le paiement des frais ou prix respectifs prévus.\"), p(\"2.5 Le fournisseur se réserve le droit de rendre certaines parties de son offre accessibles uniquement aux enseignant·es ou aux autres utilisateur·rices chargé·es de tâches éducatives.\"), p(\"2.6 L'utilisateur·rice est tenu·e de ne pas donner d'informations mensongères lors de son inscription en ligne, notamment en ce qui concerne son rôle d'élève ou d'enseignant·e et son affiliation scolaire. Si l'utilisateur·rice fournit de fausses données, le fournisseur peut se retirer du contrat, si un contrat a été conclu. Le retrait est - si possible - déclaré par écrit. La forme écrite est également valable par l'envoi d'un courrier électronique. Si des données erronées sont fournies, un·e administrateur·rice de l'école peut être autorisé·e à gérer ce compte d'utilisateur·rice créé sous de fausses données, à consulter le code d'enregistrement et à engager la suppression du compte.\"), p(\"2.7 En plus de l'offre gratuite, les consommateur·rices peuvent également activer ANTON-Plus, un service payant doté de fonctions supplémentaires.\"), p(\"2.8 Les écoles peuvent conclure une licence scolaire ANTON et ainsi activer des fonctions supplémentaires qui améliorent l'utilisation du service dans les écoles. En plus de la licence scolaire ANTON, les écoles peuvent également débloquer ANTON-Plus pour tou·tes les élèves et enseignant·es de l'école.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"3. Offre gratuite et ANTON-Plus\",\n      content: [p(\"3.1 L'utilisateur·rice peut créer gratuitement un compte sur ANTON.\"), p(\"3.2 Une fois qu'un compte d'utilisateur·rice a été créé, l'utilisation des fonctions de base gratuites est disponible (“contrat de base”). Toutefois, l'utilisateur·rice ne peut prétendre à la libre disponibilité de ces contenus et fonctions.\"), p(\"3.3 Les contrats de base peuvent être résiliés à tout moment avec un préavis de 14 jours.\"), p(\"3.4 En outre, le fournisseur doit proposer aux consommateur·rices le service ANTON-Plus (“Contrat Premium”), qui est payant, selon différents modèles de prix. Les prix indiqués par ANTON comprennent la taxe applicable sur la valeur ajoutée légale.\"), p(\"3.5 En concluant un contrat Premium, l'utilisateur·rice a accès à des fonctions supplémentaires dans le cadre du contrat Premium correspondant pendant toute la durée du contrat.\"), p(\"3.6 Le type de règlement, le prix et le délai sont précisés dans chaque cas au cours du processus de commande et sont entièrement résumés avant que la commande ne soit terminée. Le contrat Premium est conclu en cliquant sur le bouton “Payer maintenant” (ou similaire).\"), p(\"3.7 Les contrats Premium sont conclus pour la durée déterminée choisie par l'utilisateur·rice. Les prix pour toute la durée sont dus à la conclusion du contrat.\"), p(\"3.8 Le fournisseur communiquera avec l'utilisateur·rice principalement par le biais du chat d'assistance contenu dans l'application ou - si une adresse électronique a été fournie - également par cette adresse et peut notamment communiquer à l'utilisateur·rice des déclarations d'intention pertinentes pour le contrat (par exemple, des annulations) de cette manière. L'utilisateur·rice peut transmettre au fournisseur une adresse électronique actuelle à tout moment.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"4. Durée, renouvellement et résiliation des contrats pour les consommateur·rices\",\n      content: [p(\"4.1 Tant qu'aucun contrat Premium payant n'a été conclu, l'utilisateur·rice peut résilier le contrat de base à tout moment conformément au point 3.3.\"), p(\"4.2 Sauf indication contraire lors de la conclusion du contrat, les contrats Premium ANTON-Plus sont des abonnements continus qui sont automatiquement renouvelés de manière récurrente pour la durée contractuelle convenue, à moins que l'utilisateur·rice ou le fournisseur ne résilie le contrat Premium respectif au moins 48 heures avant la fin de la durée respective. Les frais pour les périodes de renouvellement sont également facturés à l'avance. Tous les contrats peuvent être résiliés à la fin de leur durée respective.\"), p(\"4.3 Les contrats Premium acquis par “paiement unique” sont expressément désignés comme étant limités ou illimités dans le temps. S'ils sont limités dans le temps, le contrat se termine à la fin du terme sans qu'il soit nécessaire de le résilier. S'ils sont illimités dans le temps, les paragraphes suivants s'appliquent en conséquence.\"), p(\"4.4 La résiliation des contrats Premium achetés sur l'Apple App Store, le Google Play Store ou Paypal est soumise aux conditions générales de vente du prestataire de services respectif. La procédure exacte est décrite sur le site web de l'Apple App Store, du Google Play Store ou de Paypal.\"), p(\"4.5 Le droit de résiliation pour motif valable reste inchangé.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"5. Droit de rétractation des consommateur·rices\",\n      content: [p(\"5.1 Les consommateur·rices ont le droit de résilier le présent contrat dans un délai de 14 jours sans avoir à en indiquer les raisons. Le délai de révocation est de 14 jours à compter de la date de conclusion du contrat. Pour exercer son droit de révocation, le·la consommateur·rice doit informer le fournisseur (solocode GmbH, Mehringdamm 61, 10961 Berlin, Allemagne, e-mail : support@anton.app) de sa décision de révoquer ce contrat au moyen d'une déclaration claire (par exemple, un e-mail ou une lettre envoyé par la poste).\"), p(\"5.2 Pour respecter le délai de révocation, il suffit que la notification de l'exercice du droit de révocation soit envoyée avant la fin du délai de révocation.\"), p(\"5.3 Conséquences de la rétractation : Si le·la consommateur·rice se rétracte du présent contrat, le fournisseur doit rembourser tous les paiements reçus du·de la consommateur·rice, y compris les frais de livraison (à l'exception des coûts supplémentaires résultant du choix par le·la consommateur·rice d'un mode de livraison autre que la livraison standard la moins chère proposée par le fournisseur), sans délai et au plus tard dans les 14 jours suivant la date à laquelle le fournisseur a reçu la notification de la rétractation du présent contrat. Pour ce remboursement, le fournisseur utilise le même moyen de paiement que celui utilisé par le·la consommateur·rice pour la transaction initiale, sauf convention contraire expresse ; en aucun cas, ce remboursement ne donne lieu à des frais.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"6. Modes de paiement\",\n      content: [p(\"6.1 Sauf indication contraire dans la procédure de commande, les honoraires pour les contrats Premium sont dus pour un paiement anticipé pendant toute la durée du contrat.\"), p(\"6.2 Le paiement peut être effectué en utilisant l'un des modes de paiement énumérés en détail sur le site web sans frais supplémentaires. Dans le cadre de la procédure de paiement, le fournisseur charge un prestataire de services de paiement externe de traiter les données de paiement saisies par l'utilisateur·rice.\"), p(\"6.3 Après avoir sélectionné le système de paiement souhaité, l'utilisateur·rice saisit les données requises dans les champs de données correspondants. Le prestataire de services de paiement mandaté est autorisé à accepter des paiements au nom du fournisseur. Le fournisseur se réserve le droit de restreindre les systèmes de paiement proposés.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"7. Offres avec frais pour les écoles : Licence scolaire ANTON\",\n      content: [p(\"7.1 Les écoles peuvent débloquer des fonctionnalités supplémentaires pour le personnel scolaire, les enseignant·es et les élèves en achetant une offre Premium.\"), p(\"7.2 L'école ou le·la client·e ne soumet une offre ferme de conclusion de contrat au fournisseur qu'au moment de l'envoi de la commande. Le fournisseur peut envoyer l'offre dans un délai de 2 jours ouvrables en envoyant une confirmation de commande, une facture ou en activant l'offre.\"), p(\"7.3 Seuls les prix proposés par le fournisseur au moment de la conclusion du contrat sont déterminants.\"), p(\"7.4 La durée du contrat est indiquée au·à la client·e au moment de l'achat. La licence peut être résiliée par les deux parties à tout moment après la conclusion du contrat jusqu'à la fin de la période d'exécution. S'il n'est pas résilié avant la fin de la période de prestation, il est prolongé d'une année supplémentaire. L'annulation doit être communiquée par courrier électronique ou par écrit.\"), p(\"7.5 L'étendue des services dépend de la description du produit et fait également partie du contrat.\"), p(\"7.6 Le montant de la facture est dû sans déduction 14 jours après la date de la facture.\"), p(\"7.7 Le·La client·e est en défaut de paiement s'il·elle ne paie pas en réponse à un rappel du fournisseur après la date d'échéance. Même sans rappel, la défaillance intervient au plus tard 30 jours après la date d'échéance et la réception de la facture.\"), p(\"7.8 Les écoles et les établissements ne peuvent autoriser l'accès aux fonctions d'enseignement et d'administration de la licence scolaire qu'aux enseignant·es ou au personnel éducatif qu'ils emploient. Une autorité scolaire ne peut enregistrer des écoles que sous son autorité pour utiliser une licence d'autorité scolaire.\"), p(\"7.9 Les écoles et les institutions sont tenues de fournir des informations véridiques sur le nombre d'étudiant·es, d'enseignant·es et d'employé·es de l'école et peuvent autoriser uniquement les membres actifs à accéder à l'offre Premium ou à des parties de celle-ci.\"), p(\"7.10. Le fournisseur est autorisé à bloquer temporairement l'accès des utilisateur·rices à ANTON, en tout ou en partie et à résilier le contrat de licence scolaire sans préavis et avec effet immédiat s'il existe des motifs raisonnables de soupçonner que les utilisateur·rices n'appartiennent pas au groupe de personnes autorisées à utiliser l'offre Premium ou que les offres sont abusées, utilisées pour commettre des actes illégaux ou en violation des droits de tiers, ou ont été utilisées en violation du contrat et de l’utilisation autorisée, que des tiers non autorisés ont eu connaissance des données d'accès, en particulier du mot de passe d'un·e utilisateur·rice administrateur·rice ou d'autres utilisateur·rices, parce que le soin nécessaire au traitement de ces données, en particulier les principes reconnus de la sécurité des données, n'a pas été respecté. Le fournisseur ne fera usage de ce droit qu'en tenant compte des intérêts légitimes de l'utilisateur·rice et informera l'école par écrit ou par courrier électronique du blocage.\"), p(\"7.11. Les écoles peuvent engager la suppression des comptes d'utilisateur·rices qu'elles ont créés ou dont elles sont responsables de l'administration après une période transitoire de 60 jours. Les utilisateur·rices - et si nécessaire leurs tuteur·rices légaux·ales - doivent être informé·es par l'école. Dans un délai de 60 jours, ils·elles auront la possibilité de transférer les données stockées dans le compte d'utilisateur·rice vers un nouveau compte et de continuer à les utiliser de manière indépendante. Après cette période, les comptes des utilisateur·rices seront automatiquement supprimés.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"8. Accessibilité de l'offre, limitation de la responsabilité\",\n      content: [p(\"8.1 Le fournisseur doit utiliser les technologies actuelles et généralement utilisées pour ses services. Afin de pouvoir utiliser ANTON dans toute son étendue, les utilisateur·rices doivent également utiliser ces technologies (par exemple, la technologie actuelle des navigateurs, les websockets) ou les utiliser sur leur ordinateur ou appareil mobile (par exemple, activation de JavaScript). Si des technologies plus anciennes ou des technologies qui ne sont pas généralement utilisées sont utilisées, l'utilisateur·rice peut ne pouvoir utiliser ANTON que dans une mesure limitée.\"), p(\"8.2 En ce qui concerne les frais encourus, la disponibilité et la sécurité de la connexion de données, les services Internet nécessaires à l'utilisation d'ANTON et les équipements nécessaires à cette utilisation sont sous la seule responsabilité de l'utilisateur·rice et - le cas échéant - de l'école.\"), p(\"8.3 Le fournisseur ne garantit pas expressément que les services offerts sont adaptés aux objectifs spécifiquement poursuivis par l'utilisateur·rice individuel·le.\"), p(\"8.4 Les demandes de dommages et intérêts des utilisateur·rices et des client·es sont exclues. Sont exclues les demandes de dommages-intérêts pour atteinte à la vie, au corps, à la santé ou pour violation d'obligations contractuelles essentielles (obligations cardinales) ainsi que la responsabilité pour d'autres dommages, qui reposent sur une violation intentionnelle ou par négligence grave d'une obligation de la part du fournisseur, de ses représentants légaux ou de ses auxiliaires d'exécution. Les obligations contractuelles matérielles sont celles dont l'exécution est nécessaire pour atteindre l'objectif du contrat. Les “obligations cardinales” ou “obligations contractuelles essentielles” sont des obligations dont l'exécution rend possible la bonne exécution du contrat et dont le partenaire contractuel dépend et peut compter sur le respect. En cas de perte de données, le fournisseur est responsable au maximum de l'effort nécessaire à la reconstruction en cas de sauvegarde correcte des données par les utilisateur·rices et les client·es.\"), p(\"8.5 En cas de violation d'obligations contractuelles essentielles, le fournisseur n'est responsable du dommage prévisible et typique du contrat que s'il a été causé par une simple négligence, sauf s'il s'agit de demandes de dommages-intérêts pour atteinte à la vie, au corps ou à la santé.\"), p(\"8.6 Les restrictions des paragraphes 8.4 et 8.5 s'appliquent également en faveur des représentants légaux et des agents d'exécution du fournisseur si les réclamations sont faites directement à leur encontre.\"), p(\"8.7 Disponibilité : les produits en ligne du fournisseur sont généralement disponibles 24 heures sur 24. Toutefois, en raison de travaux de maintenance nécessaires sur le système d'information, celui-ci peut être temporairement indisponible.\"), p(\"8.8 Les perturbations de l'accès à Internet et du trafic de données sur Internet dues à des événements dont le fournisseur n'est pas responsable et qui rendent l'accès difficile ou impossible (par exemple en raison de la configuration du pare-feu) n'affectent pas la demande de rémunération du fournisseur. Toute responsabilité du fournisseur pour cause d'indisponibilité dans les cas de la clause 8.1 et de la clause 8.2 est exclue. Le droit des utilisateur·rices et des client·es à une résiliation extraordinaire reste inchangé.\"), p(\"8.9 Toute autre responsabilité en matière de dommages-intérêts que celle prévue aux paragraphes 8.4 et 8.5 est exclue, quelle que soit la nature juridique de la demande. À cet égard, le fournisseur n'est notamment pas responsable des dommages indirects, tels que le manque à gagner et autres pertes financières des utilisateur·rices et des client·es. Les dispositions obligatoires de la loi sur la responsabilité du fait des produits restent inchangées.\"), p(\"8.10. Les demandes de remboursement des frais par les utilisateur·rices et les client·es sont limitées au montant de l'intérêt qu'ils·elles ont dans l'exécution du contrat.\"), p(\"8.11. Les utilisateur·rices et les client·es indemnisent le fournisseur de toutes les réclamations que d'autres utilisateur·rices et client·es ou d'autres tiers pourraient avoir à l'encontre du fournisseur en raison de la violation de leurs droits par l'utilisation des offres de l'utilisateur·rice ou du·de la client·e en question ou des utilisateur·rices autorisés par l'utilisateur·rice. L'utilisateur·rice ou le·la client·e assume également les coûts de la défense juridique nécessaire du fournisseur, y compris tous les frais de justice et d'avocat. Cela ne s'applique pas si l'utilisateur·rice ou le·la client·e n'est pas responsable de la violation des droits.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"9. Indemnisation\",\n      content: [p(\"9.1 L'Offre ne peut être utilisée que conformément aux présentes CGU. Les utilisateur·rices ne sont notamment pas autorisé·es à faire de l'ingénierie inverse, à décompiler, à désassembler, à modifier ou à créer des œuvres dérivées basées sur ANTON ou sur des parties de celui-ci ; à contourner les mesures de protection utilisées par le fournisseur ou ses concédants pour protéger les contenus accessibles via ANTON ; copier, stocker, éditer, développer des travaux dérivés basés sur, ou modifier de quelque manière que ce soit, tout contenu fourni via ANTON ; louer ou accorder des sous-licences pour son propre compte d'utilisateur·rice ; partager son propre compte d'utilisateur·rice avec d'autres personnes et/ou accorder à d'autres personnes l'accès aux services payants d'ANTON ; utiliser ANTON de toute autre manière inappropriée qui enfreint les présentes CGU.\"), p(\"9.2 Dans les cas décrits à la section 9.1 ci-dessus, ainsi que dans tous les autres cas d'utilisation inappropriée, l'utilisateur·rice s'engage à indemniser et à dégager le fournisseur de toute responsabilité. Dans tous les cas, le fournisseur se réserve le droit de bloquer les comptes d'utilisateur·rices sans préavis, dès qu'il y a une indication d'utilisation abusive ou inappropriée et que le fournisseur a un intérêt légitime à bloquer.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"10. Droits de propriété intellectuelle\",\n      content: [p(\"10.1 Tous les textes, images et autres contenus et œuvres protégés par le droit d'auteur fournis par ANTON sont protégés par le droit d'auteur. Toute utilisation non couverte par le présent accord, en particulier à des fins commerciales ou opérationnelles, nécessite le consentement écrit préalable du prestataire.\"), p(\"10.2 Pour le contenu qui est expressément mis à disposition par le biais d'une licence Creative Commons, les conditions de la licence Creative Commons applicable s'appliquent.\"), p(\"10.3 L'utilisation de toutes les marques déposées, marques, dessins et noms commerciaux utilisés par le fournisseur dans le cadre de l'offre requiert également le consentement préalable du fournisseur sous forme de texte.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"11. Contenus générés par les utilisateur·rices\",\n      content: [p(\"11.1 Si les utilisateur·rices génèrent eux·elles-mêmes des contenus, par exemple en créant une liste d'apprentissage, en créant une image ou en mettant d'une autre manière des matériaux à disposition via ANTON, ils·elles sont entièrement responsables de la qualité de ces contenus et de tout dommage en résultant. Cette disposition s'applique indépendamment du fait que le contenu en question consiste en du texte, des graphiques, des fichiers audio, des logiciels informatiques ou tout autre format.\"), p(\"11.2 Les utilisateur·rices ne peuvent stocker sur ANTON que des contenus adaptés à des fins d'apprentissage et d'étude. Le fournisseur se réserve le droit de prendre des mesures à l'encontre des utilisateur·rices qui enfreignent cette disposition. Ces mesures peuvent comprendre, sans s'y limiter, le retrait du contenu en question, la résiliation des comptes des personnes concernées ou l'engagement d'une nouvelle action en justice. Les contenus interdits comprennent, sans s'y limiter, les contenus qui violent les droits du fournisseur ou de tiers, qui sont de nature offensive ou commerciale, ou qui violent les lois et règlements applicables.\"), p(\"11.3 Lorsque les utilisateur·rices créent ou téléchargent un contenu ou tout autre matériel sur ANTON, ils·elles doivent accorder au fournisseur une licence mondiale, perpétuelle et libre de droits (avec le droit de sous-licence) pour utiliser, copier, reproduire, traiter, adapter, modifier, publier, transmettre, afficher et distribuer ce contenu ou ce matériel dans ou par le biais de tous les médias ou méthodes de distribution (qu'ils existent ou soient développés ultérieurement). Des utilisations supplémentaires par le fournisseur ou d'autres sociétés ou individus agissant en tant que partenaires du fournisseur peuvent être faites sans compensation aux utilisateur·rices pour tout contenu qu'ils·elles soumettent, publient ou rendent disponible de toute autre manière par le biais du service.\"), p(\"11.4 En rendant le contenu disponible via ANTON, les utilisateur·rices déclarent et garantissent que ce contenu ne porte pas atteinte aux droits de tiers et qu'il ne contient ni n'installe aucun logiciel malveillant ou matériel offensant.\"), p(\"11.5 Le fournisseur n'examine pas tout le contenu envoyé au service, n'a pas la possibilité de le faire et ne peut donc pas être responsable du contenu, de l'utilisation ou des effets de ce matériel. Le fait que le fournisseur exploite le service ne signifie pas, et n'implique pas, que le fournisseur approuve le matériel envoyé au service ou qu'il croit que ce matériel est exact, utile ou inoffensif.\"), p(\"11.6 Le contenu généré par l'utilisateur·rice, tel que les listes d'apprentissage, peut inclure du matériel potentiellement offensant, indécent ou autrement répréhensible, ainsi que du contenu pouvant contenir des erreurs techniques, factuelles, orthographiques ou autres.\"), p(\"11.7 Le service peut contenir du matériel qui viole ou enfreint les droits de propriété intellectuelle ou autres droits de propriété d'autrui, ou dont le téléchargement, la copie ou l'utilisation peuvent être soumis à des conditions supplémentaires, écrites ou non. Le fournisseur décline toute responsabilité pour tout dommage résultant de l'utilisation du service par les visiteurs ou du téléchargement de tout contenu affiché sur le service. Si les utilisateur·rices découvrent un contenu ou d'autres matériels qui violent ces conditions générales, il existe des fonctionnalités appropriées sur le site web du service qui permettent aux utilisateur·rices de signaler ces violations au fournisseur.\"), p(\"11.8 Le fournisseur respecte la propriété intellectuelle d'autrui. Si vous estimez que le matériel publié ou lié sur le site web ou dans les applications mobiles d'ANTON enfreint votre droit d'auteur, veuillez nous en informer. Le cas échéant, le fournisseur supprimera le contenu en question ou désactivera tous les liens vers ce contenu. Dans le cas où un·e utilisateur·rice enfreindrait les droits d'auteur ou autres droits de propriété intellectuelle d'ANTON ou d'autres parties en une ou plusieurs occasions, le fournisseur peut, à sa seule discrétion, mettre fin ou refuser l'accès ou l'utilisation du service. Dans le cas d'une telle résiliation, le fournisseur n'est en aucun cas tenu de rembourser les montants payés à l'avance par l'utilisateur·rice concerné·e.\")]\n    }), section({\n      isExpanded: isPrint,\n      header: \"12. Clauses finales\",\n      content: [\n        p(\"12.1 La relation contractuelle entre le fournisseur et l'utilisateur·rice ou le·la client·e est soumise au droit allemand dans la mesure où la loi le permet. Si la législation du pays dans lequel le·la consommateur·rice a sa résidence prévoit un niveau de protection plus élevé du·de la consommateur·rice, cela n'est pas affecté.\"), p(\"12.2 Le fournisseur ne prend part à aucune procédure de règlement des litiges devant une commission d'arbitrage des consommateur·rices au sens de la loi sur le règlement des litiges de consommation.\"), p(\"12.3 La Commission européenne offre une plateforme européenne de règlement en ligne des litiges (RLL) à:\"), Div({\n          textDecoration: \"underline\",\n          marginBottom: \"1.2em\"\n        }).html(\"https://ec.europa.eu/consumers/odr\").tap(function(){\n          return inc(\"../../_shared/openUrl/open\")(\"https://ec.europa.eu/consumers/odr/main/index.cfm?lng=FR\");\n        }).css({\n          marginBottom: \"1em\",\n          marginTop: \"0em\"\n        }), p(\"12.4 Le contrat reste contraignant dans ses autres clauses même si certaines clauses sont juridiquement nulles. Au lieu des clauses juridiquement nulles, les dispositions légales, s'il y en a, s'appliquent. Toutefois, si cela représente une difficulté déraisonnable pour l'une des parties contractantes, le contrat dans son intégralité devient nul.\"), p(\"12.5 Le fournisseur se réserve le droit de modifier les présentes conditions générales pour des raisons objectives (par exemple, en raison de modifications de la situation juridique ou de la propre offre du fournisseur, de développements techniques, etc.) Cela s'applique en particulier si de nouvelles offres du fournisseur nécessitent de nouvelles réglementations.\"), p(\"12.6 Les CGU modifiées seront préalablement envoyées à l'utilisateur·rice ou au·à la client·e par courrier électronique ou par un autre formulaire approprié ou affichées sur le site web et dans les applications mobiles. Si l'utilisateur·rice ne s'oppose pas aux CGU modifiées dans un délai de six semaines, celles-ci sont réputées acceptées. En cas d'objection, le fournisseur peut bloquer le compte de l'utilisateur·rice, auquel cas les paiements déjà effectués seront remboursés au prorata de la durée restante. Le fournisseur indiquera ces conséquences juridiques séparément dans le message avec les CGU modifiées.\")\n      ]\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbar2/tools/preview/preview.ls","text":"(function(){\n  return function(o){\n    var preview, div;\n    preview = typeof o.preview == 'function' ? o.preview() : void 8;\n    if (!preview) {\n      return;\n    }\n    div = Div({\n      display: \"flex\",\n      padding: \"0 0.5em\"\n    }).append(SvgIcon({\n      svg: preview.icon,\n      color: preview.iconColor\n    }).addClass(\"topbarIcon\").css({\n      marginTop: \"0.2em\"\n    })).attr({\n      \"aria-label\": T(\"preview\"),\n      role: \"button\"\n    });\n    inc(\"../../_tap/tap\")(div, \"0.3em 0em 1.1em 0.5em\", preview.click, null, preview.iconColor);\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/finishLevel/icons/icon/icon.ls","text":"(function(){\n  return function(icon, w, i, score){\n    var f, div, iconDiv;\n    f = _.floor(score) >= i + 1\n      ? 1\n      : score - _.floor(score);\n    div = Div({\n      marginRight: w * 0.05 + \"em\",\n      width: w + \"em\",\n      height: w + \"em\",\n      display: \"inline-block\"\n    }).html(Div({\n      overflow: \"hidden\",\n      width: w * f + \"em\"\n    }).html(iconDiv = SvgIcon({\n      svg: icon,\n      color: \"transparent\",\n      size: w + \"em\"\n    })));\n    div.setColor = iconDiv.setColor;\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/finishLevel/icons/icons.ls","text":"(function(){\n  return function(o){\n    var w, s, p, icons, backIcons, icon, play, div, i, crownIcon;\n    w = 3;\n    s = 275;\n    p = 1;\n    icons = [];\n    backIcons = [];\n    icon = o.isTest\n      ? path(\"/lib/svg/shape/trophy.svg\")\n      : path(\"/lib/svg/shape/star.svg\");\n    play = function(done){\n      return inc(\"play/play\")(o, icons, backIcons, crownIcon, w, s, done);\n    };\n    div = Div({\n      width: w * 3.15 + \"em\",\n      height: w + \"em\",\n      margin: \"0 auto 0.7em\",\n      marginTop: !o.isTest ? \"-0.3em\" : void 8\n    }).html(Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      whiteSpace: \"nowrap\"\n    }).html((function(){\n      var i$, results$ = [];\n      for (i$ = 0; i$ <= 2; ++i$) {\n        i = i$;\n        results$.push(backIcons[i] = SvgIcon({\n          svg: icon,\n          color: Color.grey[400],\n          size: w + \"em\"\n        }).css({\n          marginRight: w * 0.05 + \"em\"\n        }));\n      }\n      return results$;\n    }())), Div({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      whiteSpace: \"nowrap\"\n    }).html((function(){\n      var i$, results$ = [];\n      for (i$ = 0; i$ <= 2; ++i$) {\n        i = i$;\n        results$.push(icons[i] = inc(\"icon/icon\")(icon, w, i, o.score));\n      }\n      return results$;\n    }())), crownIcon = SvgIcon({\n      svg: path(\"/lib/svg/shape/crown.svg\"),\n      color: Color.yellow[700],\n      size: w * 0.92 + \"em\"\n    }).css({\n      position: \"absolute\",\n      top: \"-\" + w * 1 + \"em\",\n      right: \"-\" + w * 0.5 + \"em\",\n      opacity: 0,\n      transform: \"rotate(30deg) scale(1.2)\",\n      transition: \"all \" + s * 1 + \"ms linear\"\n    }));\n    div.play = play;\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/remoteSvg/remoteSvg.ls","text":"(function(){\n  return function(o){\n    var load, onLoaded, onError, div;\n    load = function(){\n      return inc(\"/lib/util/downloadContentFile/download\")({\n        fileId: \"svg/\" + o.svg.substr(4),\n        fileFolder: o.fileFolder,\n        etag: \"any\",\n        returnFileContent: true,\n        onError: onError,\n        onLoaded: onLoaded\n      });\n    };\n    onLoaded = function(svg){\n      return div.append(SvgIcon({\n        svg: svg\n      }).css({\n        width: \"100%\",\n        height: \"100%\"\n      }));\n    };\n    onError = function(){\n      return div.remove();\n    };\n    div = Div({\n      display: \"inline-block\",\n      width: o.width || \"5em\",\n      height: o.height || \"5em\"\n    });\n    load();\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/debugIcons/simulateOffline/simulateOffline.ls","text":"(function(){\n  return function(update){\n    var tap, div, iconOn, iconOff;\n    engine.simulateOffline = false;\n    tap = function(){\n      engine.simulateOffline = !engine.simulateOffline;\n      return update();\n    };\n    div = Div().html(iconOn = SvgIcon({\n      svg: path(\"/lib/svg/icon/wifi.svg\"),\n      color: Color.grey[400],\n      size: \"1.5em\"\n    }).css({\n      verticalAlign: \"bottom\",\n      margin: \"0.4em\"\n    }), iconOff = SvgIcon({\n      svg: path(\"/lib/svg/icon/wifi-off.svg\"),\n      color: Color.grey[400],\n      size: \"1.5em\"\n    }).css({\n      verticalAlign: \"bottom\",\n      margin: \"0.4em\"\n    })).css({\n      cursor: \"pointer\",\n      pointerEvents: \"auto\",\n      flex: \"0 1 auto\"\n    }).tap(tap);\n    div.update = inc(\"update/update\")(div, iconOff, iconOn);\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/messageCategory/_shared/iconCheck/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/check.svg\"),\n      width: '5em',\n      height: '5em'\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/messageCategory/_shared/iconCross/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/cross.svg\"),\n      width: '5em',\n      height: '5em'\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/image/errorIcon/icon.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\",\n      position: \"absolute\",\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0,\n      background: Color.grey[50]\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/image.svg\")\n    }).css({\n      width: \"50%\",\n      height: \"50%\",\n      opacity: 0.15\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/misc/email/show/withMail/verifyText/icon/icon.ls","text":"(function(){\n  return function(isVerified){\n    return SvgIcon({\n      svg: isVerified\n        ? path(\"/lib/svg/shape/validated.svg\")\n        : path(\"/lib/svg/shape/unvalidated.svg\"),\n      color: isVerified\n        ? Color.green[500]\n        : Color.red[400]\n    }).css({\n      width: \"1em\",\n      height: \"1em\",\n      marginRight: \"0.3em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/navbar/bar/user/user/_menu/items/item/icon/icon.ls","text":"(function(){\n  return function(item){\n    if (!item.icon) {\n      return;\n    }\n    if (item.icon.svgElement || item.icon.tagName) {\n      return item.icon;\n    } else if (item.icon) {\n      return SvgIcon({\n        svg: item.icon,\n        color: item.selected\n          ? Color.blue[500]\n          : Color.grey[600]\n      }).css({\n        flex: \"0 0 auto\",\n        marginRight: \"0.4em\",\n        marginTop: \"0.2em\"\n      });\n    }\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"lib/gui/drawerMenu/menuRows/rowDefault/icon/icon.ls","text":"(function(){\n  return function(item){\n    var css, div;\n    if (!item.icon) {\n      return Div({\n        width: \"1em\"\n      });\n    }\n    css = {\n      flex: \"0 0 auto\",\n      margin: \"0.4em 0.6em\",\n      width: \"1em\",\n      height: \"1em\"\n    };\n    if (item.icon) {\n      div = Div({\n        display: \"flex\"\n      }).css(css).html(SvgIcon({\n        svg: item.icon,\n        color: Color.grey[600]\n      }), item.subicon ? Div({\n        display: \"flex\",\n        position: \"absolute\",\n        padding: \"0.1em\",\n        left: \"-0.3em\",\n        bottom: \"-0.2em\",\n        borderRadius: \"50%\",\n        background: Color.grey[350]\n      }).html(SvgIcon({\n        svg: item.subicon,\n        color: Color.grey[600],\n        size: \"0.45em\"\n      })) : void 8);\n    } else {\n      div = Div(css);\n    }\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/top/folder/top.ls","text":"(function(){\n  return function(){\n    var close;\n    return inc(\"../_div/div\")({\n      title: Div({\n        color: Color.blue[600]\n      }).html(T(\"closeFolder\")),\n      icon: SvgIcon({\n        svg: path(\"/lib/svg/icon/arrow-left-small.svg\"),\n        color: Color.blue[600]\n      }),\n      tap: close = function(){\n        var that;\n        if (that = body.findFirst(\".mainMenu\")) {\n          return that.o.closeFolder();\n        }\n      },\n      onEsc: close\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/softKeyboard/init.ls","text":"(function(){\n  return function(){\n    var androidVersion, ref$;\n    app.softKeyboardHeight = 0;\n    androidVersion = ((ref$ = window.device) != null ? ref$.version : void 8) || \"0\";\n    androidVersion = +androidVersion.split(\".\")[0];\n    if (!engine.isMobileApp) {\n      if (window.visualViewport != null) {\n        return inc(\"visualViewportEvents/on\")();\n      }\n    } else if (engine.isiOsApp) {\n      return inc(\"iOs/init\")();\n    } else if (SolocodePlugin.getVisibleScreenSize == null) {\n      return inc(\"androidOldEngine/init\")();\n    } else if (androidVersion < 9) {\n      return inc(\"android5To8/init\")();\n    } else {\n      return inc(\"android9/init\")();\n    }\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbarGame/header/right/sound/sound.ls","text":"(function(){\n  return function(o){\n    var div, toggle, isDisabled, ref$, svg;\n    if (o.soundButtonHidden) {\n      return Div().css({\n        width: \"1em\"\n      });\n    }\n    div = null;\n    o.updateSoundIcon = function(){\n      return svg.setColor(o.gameTextColor);\n    };\n    toggle = function(){\n      var isDisabled, ref$;\n      isDisabled = (ref$ = log.findLast(\"setGameSoundDisabled\")) != null ? ref$.value : void 8;\n      if (isDisabled) {\n        log.log({\n          event: \"setGameSoundDisabled\",\n          value: false\n        });\n        o.resumeGameSound();\n      } else {\n        log.log({\n          event: \"setGameSoundDisabled\",\n          value: true\n        });\n        o.stopGameSound();\n      }\n      return div.replaceWith(div = inc(THISFILE)(o));\n    };\n    isDisabled = (ref$ = log.findLast(\"setGameSoundDisabled\")) != null ? ref$.value : void 8;\n    return div = Div().css({\n      flex: \"0 0 auto\",\n      display: \"flex\",\n      paddingRight: \"0.3em\",\n      paddingLeft: \"0.05em\"\n    }).append(svg = SvgIcon({\n      svg: isDisabled\n        ? path(\"/lib/svg/icon/speaker-off.svg\")\n        : path(\"/lib/svg/icon/speaker.svg\"),\n      color: o.gameTextColor\n    })).tap(toggle).attr({\n      \"aria-label\": T(\"sound\"),\n      role: \"button\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/rows/rowUser/position/position.ls","text":"(function(){\n  return function(score, o){\n    var pos;\n    pos = score.position;\n    return Div({\n      flex: \"0 0 auto\",\n      textAlign: \"center\",\n      marginRight: \"0.2em\",\n      marginLeft: \"0.4em\",\n      minWidth: o.positionWidth\n    }).html(score.position < 4\n      ? SvgIcon({\n        svg: pos === 1\n          ? path(\"/lib/svg/illustration/medal-gold.svg\")\n          : pos === 2\n            ? path(\"/lib/svg/illustration/medal-silver.svg\")\n            : path(\"/lib/svg/illustration/medal-bronce.svg\"),\n        size: \"1.5em\"\n      }).css({\n        margin: \"0.5em -0.35em -0.35em\"\n      })\n      : score.position + \".\");\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/debugIcons/refresh/refresh.ls","text":"(function(){\n  return function(){\n    var loggerReadOnly, ref$, click, longDown;\n    loggerReadOnly = (ref$ = Store(\"debugLoggerReadOnly\")) != null ? ref$ : false;\n    window.addEventListener(\"message\", function(event){\n      if (event.data.type === \"ideRefresh\") {\n        return inc(\"/lib/util/refresh/refresh\")();\n      }\n    });\n    click = function(){\n      return inc(\"/lib/util/refresh/refresh\")();\n    };\n    longDown = function(){\n      var ref$;\n      if (typeof vibrate == 'function') {\n        vibrate(VIBRATION_TYPES.notificationSuccess);\n      }\n      if ((ref$ = body.findFirst(\".mainMenu\")) != null) {\n        ref$.remove();\n      }\n      return inc(\"../../debugToggle/popup/popup\")();\n    };\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/refresh-big.svg\"),\n      color: loggerReadOnly\n        ? Color.red[500]\n        : Color.grey[400],\n      size: \"1.6em\"\n    }).css({\n      padding: \"0.3em\",\n      cursor: \"pointer\",\n      pointerEvents: \"auto\",\n      flex: \"0 0 auto\",\n      height: \"1.6em\"\n    }).addClass(\"keyManager-cmd-r\").bind(\"keyManager\", click).tap({\n      up: click,\n      longDown: longDown,\n      tapZone: \"0.3em\"\n    }).attr({\n      \"aria-label\": \"refresh\",\n      role: \"button\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/totalAndCoin/coin/static/static.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/illustration/coin.svg\")\n    }).css({\n      position: \"absolute\",\n      width: \"inherit\",\n      height: \"inherit\",\n      left: 0,\n      top: 0\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/start/startUser/07_extraPages/cancelDeletion/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")();\n      },\n      start: function(){\n        var onDone, e, ud, cancelDeletion, buttonsDiv, spinner;\n        onDone = function(){\n          return inc(\"../../_onExtraPageDone/on\")();\n        };\n        e = log.findLast(\"markForDelete\");\n        if (!e) {\n          onDone();\n          return;\n        }\n        delete engine.rememberDeletionPageRedirect;\n        ud = inc(\"/data/user/calcUserDescription/calc\")();\n        cancelDeletion = function(){\n          if (e.reason === \"dirAdminDelete\") {\n            return startPage({\n              path: path(\"/pages/static/cancelDeletionDirAdmin/01_start/page\"),\n              animation: \"slideUp\",\n              params: {\n                finishFunctionPath: path(\"../../_onExtraPageDone/on\")\n              }\n            });\n          } else {\n            spinner.show();\n            buttonsDiv.hide();\n            return inc(\"../00_shared/cancel/cancel\")(onDone, function(){\n              spinner.hide();\n              return buttonsDiv.show();\n            });\n          }\n        };\n        return page.html(Div({\n          maxWidth: \"100%\",\n          width: \"35em\",\n          margin: \"0 auto\"\n        }).html(inc(\"avatar/avatar\")(ud), inc(\"name/name\")(ud), inc(\"text/text\")(e), buttonsDiv = inc(\"buttons/buttons\")(onDone, cancelDeletion), spinner = inc(\"/lib/gui/spinner/spinner\")().hide()));\n      }\n    };\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"pages/support/help/faqQuestion/debugTags/tags.ls","text":"(function(){\n  return function(page){\n    var tags, pageUrl;\n    tags = _.ensureArray(page.question.tags);\n    pageUrl = inc(\"../../_faqUrlDescription/description\")({\n      question: page.question\n    }).pageUrl;\n    return Div({\n      margin: \"2em auto\",\n      fontSize: \"0.8em\",\n      color: Color.grey[500],\n      width: \"30em\",\n      maxWidth: \"90%\",\n      userSelect: \"text\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\")\n    }).css({\n      flex: \"0 0 auto\",\n      margin: \"0 0.3em\",\n      verticalAlign: \"-0.2em\"\n    }), \"Tags:<br>\" + tags.join(\"<br>\"), location.host === \"preview.anton.app\" ? Div({\n      marginTop: \"1.5em\"\n    }).html(\"URL:<br>anton.app/\" + engine.guiLanguage + \"/\" + pageUrl) : void 8);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/input2/icons/search/search.ls","text":"(function(){\n  return function(o){\n    return o.div.css({\n      paddingLeft: \"1.5em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/icon/magnifier.svg\"),\n      width: \"1em\",\n      height: \"1em\"\n    }).addClass(\"searchIcon\").css({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      margin: \"0.45em 0.4em 0.35em\",\n      pointerEvents: \"none\"\n    }));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/games/00_shared/lockedGamesInfo/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/lock.svg\"),\n      color: Color.grey[800]\n    }).css({\n      width: \"0.9em\",\n      height: \"0.9em\",\n      display: \"inline-block\",\n      marginRight: \"0.2em\",\n      verticalAlign: \"-0.1em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/games/02_gameDetails/difficulties/row/debugIcon/debugIcon.ls","text":"(function(){\n  return function(difficulty){\n    if (!difficulty.debugOnly) {\n      return;\n    }\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\")\n    }).css({\n      margin: \"0.3em\"\n    });\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"pages/games/02_gameDetails/difficulties/row/icon/icon.ls","text":"(function(){\n  return function(difficulty){\n    return SvgIcon({\n      svg: difficulty.icon || path(\"/lib/svg/shape/play.svg\"),\n      color: Color.grey[400]\n    }).css({\n      margin: \"0.3em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbar2/back/icon/icon.ls","text":"(function(){\n  return function(o){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-left-mini.svg\")\n    }).addClass(\"topbarIcon\").css({\n      flex: \"0 0 auto\",\n      marginTop: \"0.06em\",\n      marginRight: \"-0.1em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbarGame/header/right/tries/tries.ls","text":"(function(){\n  return function(o){\n    var div;\n    o.updateGameTries = function(){\n      var totalTries, tries, i$, i, active, results$ = [];\n      totalTries = o.gameTotalTries;\n      tries = o.gameTries;\n      if (!totalTries) {\n        return;\n      }\n      div.empty();\n      for (i$ = 0; i$ < totalTries; ++i$) {\n        i = i$;\n        active = i >= totalTries - tries;\n        results$.push(div.append(SvgIcon({\n          svg: o.gameTriesIcon || path(\"/lib/svg/shape/heart.svg\"),\n          color: o.gameTriesIconColor || Color.red[500]\n        }).css({\n          flex: \"0 0 1em\",\n          marginRight: \"0.1em\",\n          opacity: !active ? 0.4 : 1\n        })));\n      }\n      return results$;\n    };\n    return div = Div().css({\n      display: \"flex\",\n      flex: \"0 0 auto\",\n      paddingRight: \"0.3em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/content/plan/_topbar/searchScopeInfo/searchScopeInfo.ls","text":"(function(){\n  return function(){\n    var click;\n    click = function(){\n      var page, p, oldTopHeight, newTopHeight, i$, ref$, len$, el;\n      page = app.currentPage;\n      p = page.params;\n      p.context = \"plan\";\n      delete p.searchQuery;\n      oldTopHeight = page.topbar.height();\n      page.topbar.update();\n      newTopHeight = page.topbar.height();\n      for (i$ = 0, len$ = (ref$ = page.findAll(\".update\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        el.update();\n      }\n      return page.pageScrollWrapper.scrollTop -= oldTopHeight - newTopHeight;\n    };\n    return Div().css({\n      flex: \"0 0 auto\",\n      padding: \"0.5em 0\",\n      textAlign: \"center\",\n      width: \"100%\",\n      marginBottom: \"-1px\",\n      borderBottom: \"1px solid \" + Color.grey[300],\n      borderTop: \"1px solid \" + Color.grey[300],\n      fontSize: \"0.9em\"\n    }).append(T(\"searchResultsFor\", app.currentPage.params.searchQuery), Div().css({\n      display: \"inline-flex\",\n      position: \"absolute\",\n      right: 0,\n      marginTop: \"-0.5em\",\n      height: \"100%\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/icon/close-small.svg\"),\n      color: Color.grey[550]\n    }).css({\n      margin: \"0.5em 1em\"\n    })).tap(click));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/debugIcons/simulateError/simulateError.ls","text":"(function(){\n  return function(update){\n    var click, div, iconOn, iconOff;\n    engine.simulateError = false;\n    click = function(){\n      engine.simulateError = !engine.simulateError;\n      return update();\n    };\n    div = Div().append(iconOn = SvgIcon({\n      svg: path(\"/lib/svg/icon/alert.svg\"),\n      color: Color.red[500],\n      width: \"1.5em\",\n      height: \"1.5em\"\n    }).css({\n      verticalAlign: \"bottom\",\n      margin: \"0.4em\"\n    }), iconOff = SvgIcon({\n      svg: path(\"/lib/svg/icon/alert.svg\"),\n      color: Color.grey[400],\n      width: \"1.5em\",\n      height: \"1.5em\"\n    }).css({\n      verticalAlign: \"bottom\",\n      margin: \"0.4em\"\n    })).css({\n      cursor: \"pointer\",\n      pointerEvents: \"auto\",\n      flex: \"0 1 auto\"\n    }).tap(click);\n    div.update = inc(\"update/update\")(div, iconOff, iconOn);\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/screenKeyboard/createKeys/keys/mathKeys/calcKeys/calc.ls","text":"(function(){\n  return function(){\n    var svg, mathKeys, i$, i;\n    svg = function(p, color){\n      return SvgIcon({\n        svg: p,\n        size: \"1.2em\",\n        color: color != null\n          ? color\n          : Color.black\n      });\n    };\n    mathKeys = {\n      plus: {\n        h: \"+\",\n        k: \"+\",\n        c: \"grey1\"\n      },\n      minus: {\n        h: \"−\",\n        k: \"-\",\n        c: \"grey1\"\n      },\n      multiply: {\n        h: \"<mat>*</mat>\",\n        k: \"*\",\n        c: \"grey1\"\n      },\n      divide: {\n        h: \"<mat>:</mat>\",\n        k: \"÷\",\n        c: \"grey1\"\n      },\n      separator: {\n        h: \"<mat>.</mat>\",\n        k: \".\",\n        c: \"grey1\"\n      },\n      sqrt: {\n        h: function(color){\n          return svg(path(\"/lib/svg/key/sqrt.svg\"), color);\n        },\n        k: \"sqrt\",\n        alt: \"root\"\n      },\n      root: {\n        h: function(color){\n          return svg(path(\"/lib/svg/key/root.svg\"), color);\n        },\n        k: \"root\",\n        alt: \"sqrt\"\n      },\n      ln: {\n        h: \"ln\",\n        k: \"ln\"\n      },\n      log: {\n        h: \"log\",\n        k: \"log\",\n        alt: \"logbase\"\n      },\n      logbase: {\n        h: function(color){\n          return inc(\"logbase/div\")(color);\n        },\n        k: \"logbase\",\n        alt: \"log\"\n      },\n      sin: {\n        h: \"sin\",\n        k: \"sin\",\n        alt: \"asin\"\n      },\n      asin: {\n        h: function(color){\n          return inc(\"expMinus1/div\")(color, \"sin\");\n        },\n        k: \"asin\",\n        alt: \"sin\"\n      },\n      cos: {\n        h: \"cos\",\n        k: \"cos\",\n        alt: \"acos\"\n      },\n      acos: {\n        h: function(color){\n          return inc(\"expMinus1/div\")(color, \"cos\");\n        },\n        k: \"acos\",\n        alt: \"cos\"\n      },\n      tan: {\n        h: \"tan\",\n        k: \"tan\",\n        alt: \"atan\"\n      },\n      atan: {\n        h: function(color){\n          return inc(\"expMinus1/div\")(color, \"tan\");\n        },\n        k: \"atan\",\n        alt: \"tan\"\n      },\n      e: {\n        h: \"e\",\n        k: \"e\",\n        alt: \"pi\",\n        c: \"grey1\"\n      },\n      pi: {\n        h: \"π\",\n        k: \"π\",\n        alt: \"e\",\n        c: \"grey1\"\n      },\n      moveCursorLeft: {\n        h: \"←\",\n        k: \"moveCursorLeft\",\n        c: \"grey2\",\n        special: true\n      },\n      moveCursorRight: {\n        h: \"→\",\n        k: \"moveCursorRight\",\n        c: \"grey2\",\n        special: true\n      },\n      \"=\": {\n        h: \"=\",\n        k: \"submit\",\n        c: \"grey3\",\n        special: true\n      },\n      \"/\": {\n        h: function(){\n          return svg(path(\"/lib/svg/key/fraction.svg\"));\n        },\n        k: \"/\"\n      },\n      \"^\": {\n        h: function(){\n          return svg(path(\"/lib/svg/key/sup.svg\"));\n        },\n        k: \"sup\"\n      },\n      \"()\": {\n        h: \"( )\",\n        k: \"()\"\n      },\n      \"!\": {\n        h: \"!\",\n        k: \"!\",\n        alt: \"ncr\"\n      },\n      ncr: {\n        h: \"nCr\",\n        k: \"ncr\",\n        alt: \"!\"\n      },\n      clear: {\n        h: \"C\",\n        k: \"clear\",\n        c: \"grey1\",\n        special: true\n      },\n      \"\": {\n        c: \"grey0\"\n      },\n      degrad: {\n        div: inc(\"degRad/key\")\n      },\n      toggleShift: {\n        div: inc(\"toggleShift/key\")\n      }\n    };\n    for (i$ = 0; i$ <= 9; ++i$) {\n      i = i$;\n      mathKeys[i] = {\n        h: i + \"\",\n        k: i + \"\",\n        c: \"grey1\"\n      };\n    }\n    return mathKeys;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/static/_shared/section/header/arrowIcon/icon.ls","text":"(function(){\n  return function(o){\n    return SvgIcon({\n      svg: o.isExpanded\n        ? path(\"/lib/svg/icon/arrow-down-small.svg\")\n        : path(\"/lib/svg/icon/arrow-right-small.svg\")\n    }).css({\n      width: \"0.8em\",\n      height: \"0.8em\",\n      flex: \"0 0 auto\",\n      marginTop: \"0.25em\",\n      marginRight: \"0.1em\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/popup/popup/closeIcon/icon.ls","text":"(function(){\n  return function(o, showShadow){\n    var click;\n    click = function(){\n      return o.close(\"icon\");\n    };\n    return Div({\n      position: \"absolute\",\n      display: \"flex\",\n      top: \"-0.95em\",\n      right: \"-0.9em\",\n      width: \"2.0em\",\n      height: \"2.0em\",\n      borderRadius: \"999px\",\n      backgroundColor: Color.grey[250],\n      border: \"4px solid \" + Color.white,\n      zIndex: \"100\"\n    }).css(showShadow ? {\n      boxShadow: \"1px 1px 5px rgba(0, 0, 0, 0.2)\"\n    } : void 8).html(SvgIcon({\n      svg: path(\"/lib/svg/icon/close-small.svg\"),\n      color: Color.black\n    }).css({\n      fontSize: \"0.8em\",\n      flex: \"1 1 auto\"\n    })).addClass(\"keyManager-esc androidBack\").bind(\"keyManager\", click).bind(\"androidBack\", click).tap({\n      up: click,\n      animation: \"hover\",\n      tapZone: \"0.3em 0.3em 0.7em 0.7em\"\n    }).attr({\n      \"aria-label\": T(\"closeButton\"),\n      role: \"button\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/closeButton/button.ls","text":"(function(){\n  return function(p){\n    var tap;\n    tap = function(){\n      var ref$;\n      return (ref$ = app.currentPopup) != null ? ref$.close() : void 8;\n    };\n    return Div({\n      background: \"white\",\n      padding: \"0.7em\",\n      fontSize: \"0.95em\",\n      color: Color.blue[500],\n      display: \"flex\",\n      boxShadow: \"0px 0px 7px rgba(0,0,0,0.1)\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/icon/close-small.svg\"),\n      color: Color.blue[500]\n    }), Div({\n      marginLeft: \"0.3em\"\n    }).html(T(\"closeButton\"))).tap({\n      up: tap,\n      animation: \"none\"\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/start/startUser/00_shared/errorPage/errorInfo/info.ls","text":"(function(){\n  return function(p){\n    return Div({\n      marginTop: \"2em\",\n      fontSize: \"0.8em\",\n      color: Color.grey[500],\n      userSelect: \"text\"\n    }).secureHtml(SvgIcon(path(\"/lib/svg/shape/debug.svg\")).css({\n      verticalAlign: \"-0.1em\",\n      marginRight: \"0.2em\"\n    }), \"Error: \" + JSON.stringify(p.error));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/multiform/fields/field/check/check.ls","text":"(function(){\n  return function(field){\n    var tap, div;\n    field.value == null && (field.value = false);\n    tap = function(){\n      field.value = !field.value;\n      return div.replaceWith(inc(\"../field\")(field));\n    };\n    div = Div({\n      padding: \"0.7em 0\",\n      textAlign: \"left\"\n    }).addClass(\"field\").html(Div({\n      display: \"inline-flex\",\n      fontSize: \"0.9em\",\n      padding: \"0.2em 0\",\n      alignItems: \"flex-start\"\n    }).html(SvgIcon(field.value\n      ? path(\"/lib/svg/shape/checkbox.svg\")\n      : path(\"/lib/svg/shape/square.svg\")).css({\n      marginTop: \"0.2em\"\n    }), Div({\n      paddingLeft: \"0.4em\",\n      flex: \"1 1 auto\"\n    }).html(field.label)).tap(tap));\n    div.getValue = function(){\n      return {\n        id: field.id,\n        value: field.value\n      };\n    };\n    div.setValue = function(v){\n      field.value = v;\n      return div.replaceWith(inc(\"../field\")(field));\n    };\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/multiform/fields/field/radioButton/radioButton.ls","text":"(function(){\n  return function(field, p){\n    var tap, div;\n    field.value == null && (field.value = false);\n    tap = function(){\n      var i$, ref$, len$, d;\n      for (i$ = 0, len$ = (ref$ = _.filter(p.div.findAll(\".field\"), fn$)).length; i$ < len$; ++i$) {\n        d = ref$[i$];\n        if (d.getValue().value === true && d !== div) {\n          d.setValue(false);\n        }\n      }\n      if (field !== _.filter(p.params.fields, function(f){\n        return f.value === true;\n      })[0]) {\n        if (typeof field.onChange == 'function') {\n          field.onChange();\n        }\n        if (typeof (ref$ = p.params).onChange == 'function') {\n          ref$.onChange();\n        }\n      }\n      field.value = true;\n      return div.replaceWith(inc(\"../field\")(field, p));\n      function fn$(d){\n        return d.getType() === \"radioButton\";\n      }\n    };\n    div = Div({\n      padding: \"0.4em 0 0.2em\",\n      textAlign: \"left\"\n    }).addClass(\"field\").html(Div({\n      display: \"inline-flex\",\n      fontSize: \"0.9em\",\n      alignItems: \"flex-start\"\n    }).html(SvgIcon(field.value\n      ? path(\"/lib/svg/icon/radio-on.svg\")\n      : path(\"/lib/svg/icon/radio-off.svg\")).css({\n      marginTop: \"0.2em\"\n    }), Div({\n      paddingLeft: \"0.4em\",\n      flex: \"1 1 auto\",\n      lineHeight: \"1.3em\"\n    }).html(field.label)).tap(tap));\n    div.getValue = function(){\n      return {\n        id: field.id,\n        value: field.value\n      };\n    };\n    div.setValue = function(v){\n      field.value = v;\n      return div.replaceWith(inc(\"../field\")(field, p));\n    };\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/01_rating/stars/star/star.ls","text":"(function(){\n  return function(i, onClick){\n    var setSelected, svg;\n    setSelected = function(select){\n      return svg.setColor(select\n        ? Color.yellow[600]\n        : Color.grey[150]);\n    };\n    svg = SvgIcon({\n      svg: path(\"/lib/svg/shape/star.svg\"),\n      color: Color.grey[150]\n    }).css({\n      width: \"2.4em\",\n      height: \"2.4em\",\n      margin: \"0 0.3em\"\n    }).tap({\n      animation: \"none\",\n      up: function(){\n        return onClick(i);\n      }\n    });\n    svg.setSelected = setSelected;\n    return svg;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/level/finishLevel/linkReview/debugPopup/title/title.ls","text":"(function(){\n  return function(){\n    return Div({\n      marginBottom: \"1em\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\")\n    }).css({\n      marginRight: \"0.3em\"\n    }), \"Wähle eine Visualisierungsart für das Level aus:\");\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbar2/actions/action/action.ls","text":"(function(){\n  return function(o){\n    var tap, div;\n    tap = function(){\n      if (typeof o.click == 'function') {\n        o.click();\n      }\n      if (o.menuItems) {\n        return OverlayMenu({\n          referenceDiv: div,\n          items: o.menuItems,\n          direction: \"down left\",\n          adjustXY: \"-10 -5\"\n        });\n      }\n    };\n    return div = Div({\n      display: \"inline-flex\",\n      color: Color.grey[800],\n      padding: \"0.6em 0.2em\",\n      verticalAlign: \"top\"\n    }).append(o.icon ? SvgIcon({\n      svg: o.icon,\n      color: o.iconColor || Color.grey[600],\n      size: \"0.8em\"\n    }) : void 8, o.label ? Div({\n      lineHeight: \"0.9em\",\n      fontSize: \"0.9em\",\n      color: o.labelColor || Color.black,\n      marginLeft: o.icon ? \"0.1em\" : void 8\n    }).html(o.label) : void 8).tap(o.click || o.menuItems ? tap : void 8);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbar2/tools/subMenu/subMenu.ls","text":"(function(){\n  return function(o){\n    var items, longClickItems, click, longClick, div;\n    items = typeof o.subMenuItems == 'function' ? o.subMenuItems() : void 8;\n    longClickItems = typeof o.subMenuLongClickItems == 'function' ? o.subMenuLongClickItems() : void 8;\n    if (!items) {\n      return;\n    }\n    click = function(){\n      return OverlayMenu({\n        referenceDiv: div,\n        items: items,\n        direction: \"down left\",\n        adjustXY: \"-5 0\"\n      });\n    };\n    if (longClickItems) {\n      longClick = function(){\n        return OverlayMenu({\n          referenceDiv: div,\n          items: longClickItems,\n          direction: \"down left\",\n          adjustXY: \"-5 0\"\n        });\n      };\n    }\n    div = Div({\n      display: \"flex\",\n      padding: \"0 0.4em\"\n    }).html(SvgIcon({\n      svg: o.subMenuIcon || path(\"/lib/svg/shape/dots.svg\"),\n      color: Color.grey[600]\n    }).addClass(\"topbarIcon\"));\n    inc(\"../../_tap/tap\")(div, \"0.6em 0em 1.3em 0.5em\", click, longClick, Color.grey[600]);\n    return div;\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/multiform/fields/field/input/showKeyboardBottom/_header/keyboardToggle/toggle.ls","text":"(function(){\n  return function(input, sk){\n    var tap;\n    tap = function(){\n      var t;\n      t = inc(\"/lib/util/cache/get/get\")(\"inputKeyboardBottomType\") || \"small\";\n      t = t === \"small\" ? \"big\" : \"small\";\n      inc(\"/lib/util/cache/set/set\")(\"inputKeyboardBottomType\", t);\n      input.stop();\n      input.keyboardBottom.remove();\n      return inc(\"/lib/util/waitFrames/wait\")(5, function(){\n        inc(\"../../show\")(input, sk);\n        input.divEditable.setSoftKeyboardEnabled(t === \"small\");\n        input.start();\n        return app.currentPage.setBottomFreeze(0);\n      });\n    };\n    return Div({\n      alignSelf: \"stretch\",\n      display: \"flex\",\n      alignItems: \"flex-start\"\n    }).html(inc(\"../_key/key\")().html(SvgIcon({\n      svg: path(\"/lib/svg/shape/keyboard.svg\"),\n      color: Color.blue[700]\n    }).css({\n      marginTop: \"0.08em\"\n    })).tap(tap));\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/avatar/overlay/closeIcon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/close.svg\"),\n      color: Color.grey[300],\n      width: \"1.7em\",\n      height: \"1.7em\"\n    }).addClass(\"safeAreaMarginTop safeAreaMarginRight\").css({\n      position: \"absolute\",\n      right: \"1em\",\n      top: \"1em\"\n    }).hide();\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/avatar/overlay/debugSave/save.ls","text":"(function(){\n  return function(o, avatar){\n    var download;\n    download = function(){\n      log.log({\n        event: \"setAvatarFavourite\",\n        value: avatar,\n        uid: helpers.guid(4)\n      });\n      return debug(\"Avatar saved to favourites.\");\n    };\n    return Div().addClass(\"safeAreaMarginTop safeAreaMarginRight\").css({\n      position: \"absolute\",\n      left: \"1em\",\n      display: \"flex\",\n      top: engine.isMobileApp ? \"1em\" : \"2.5em\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\"),\n      color: Color.grey[300]\n    }).css({\n      marginRight: \"0.2em\"\n    }), SvgIcon({\n      svg: path(\"/lib/svg/shape/plus.svg\"),\n      color: Color.grey[300]\n    }), Div().css({\n      display: \"inline-block\",\n      verticalAlign: \"0.5em\",\n      marginLeft: \"0.1em\",\n      color: Color.grey[400]\n    }).html(\"Save to favourites\")).hide().tap(download);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/gui/avatar/overlay/debugCopy/copy.ls","text":"(function(){\n  return function(o, avatar){\n    var download;\n    download = function(){\n      var a, avatarString;\n      a = _.cloneDeep(avatar);\n      a.dataUrl = o.avatarSvg.attr(\"src\");\n      avatarString = JSON.stringify(a);\n      inc(\"/lib/util/copyToClipboard/copy\")(avatarString);\n      return debug(\"Avatar copied to clipboard.\");\n    };\n    return Div().addClass(\"safeAreaMarginTop safeAreaMarginRight\").css({\n      position: \"absolute\",\n      left: \"1em\",\n      top: \"1em\",\n      display: \"flex\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\"),\n      color: Color.grey[300]\n    }).css({\n      marginRight: \"0.2em\"\n    }), SvgIcon({\n      svg: path(\"/lib/svg/shape/arrow-download.svg\"),\n      color: Color.grey[300]\n    }), Div().css({\n      display: \"inline-block\",\n      verticalAlign: \"0.5em\",\n      marginLeft: \"0.1em\",\n      color: Color.grey[400]\n    }).html(\"Copy to clipboard\")).hide().tap(download);\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"addons/topbarLevel/skipIcon/div/div.ls","text":"(function(){\n  return function(type, tap, longDown, skipListener){\n    var div;\n    return div = Div({\n      position: \"fixed\",\n      bottom: 0,\n      left: type === \"forwards\" ? \"2em\" : 0,\n      zIndex: \"1\",\n      padding: type === \"forwards\" ? \"0.8em 1.5em 0.5em 0.5em\" : \"0.5em\"\n    }).addClass(\"safeAreaMarginLeft safeAreaMarginRight skipIcon\").addClass(type === \"forwards\" ? \"keyManager-cmd-n\" : \"keyManager-cmd-b\").bind(\"keyManager\", tap).html(SvgIcon({\n      svg: type === \"forwards\"\n        ? path(\"/lib/svg/icon/arrow-right.svg\")\n        : path(\"/lib/svg/icon/arrow-left.svg\"),\n      color: Color.grey[400]\n    })).tap({\n      up: tap,\n      longDown: longDown\n    }).onDomRemove(function(){\n      return window.removeEventListener(\"message\", skipListener);\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/softKeyboard/android5To8/detectHeight/detect.ls","text":"(function(){\n  var currentInterval;\n  currentInterval = null;\n  return function(){\n    var startedAt, check;\n    clearInterval(currentInterval);\n    startedAt = new Date();\n    check = function(){\n      if (new Date() - startedAt > 2000) {\n        return clearInterval(currentInterval);\n      } else {\n        return inc(\"onInterval/on\")();\n      }\n    };\n    currentInterval = setInterval(check, 200);\n    return check();\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"lib/init/softKeyboard/androidOldEngine/init.ls","text":"(function(){\n  return function(){\n    var a;\n    a = window.AndroidFullScreen;\n    window.addEventListener(\"keyboardWillShow\", function(e){\n      var ref$;\n      inc(\"../_setHeight/set\")((ref$ = e.keyboardHeight) != null ? ref$ : 0);\n      return a != null ? typeof a.setSystemUiVisibility == 'function' ? a.setSystemUiVisibility(a.SYSTEM_UI_FLAG_VISIBLE | a.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | a.SYSTEM_UI_FLAG_FULLSCREEN) : void 8 : void 8;\n    });\n    return window.addEventListener(\"keyboardWillHide\", function(e){\n      var ref$;\n      inc(\"../_setHeight/set\")((ref$ = e.keyboardHeight) != null ? ref$ : 0);\n      if (document.activeElement === body) {\n        return a != null ? a.immersiveMode(function(){}, function(){}) : void 8;\n      }\n    });\n  };\n})();","updated":"2024-05-21T12:35:46.26764"},{"path":"pages/start/startUser/07_extraPages/cancelDeletion/page/text/text.ls","text":"(function(){\n  return function(e){\n    var dueDate, ref$, sd, schoolName;\n    dueDate = (ref$ = inc(\"/lib/util/formatDate2/format\")(e.dueDate, {\n      ensureDate: true\n    })) != null ? ref$.formats.dateShort : void 8;\n    sd = inc(\"/data/school/calcSchoolDescription/calc\")(e.schoolCode);\n    schoolName = (sd != null ? sd.name : void 8) || \"\";\n    return Div({\n      margin: \"0.5em auto\",\n      maxWidth: \"90%\",\n      width: \"30em\",\n      lineHeight: \"1.5em\"\n    }).secureHtml(e.reason === \"dirAdminDelete\"\n      ? T(\"userWillBeDeletedBySchoolText\", schoolName, dueDate)\n      : T(\"userWillBeDeletedText\", dueDate));\n  };\n})();","updated":"2025-09-25T13:40:14.718379"},{"path":"pages/schoolSearch/06_confirm/page.ls","text":"(function(){\n  return function(page){\n    var p;\n    p = page.params;\n    page.type = p.schoolCode\n      ? \"schoolCode\"\n      : p.googlePlaceId ? \"newGooglePlace\" : \"newCustom\";\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        var load, onLoaded;\n        page.css({\n          maxWidth: \"95%\",\n          width: \"30em\",\n          margin: \"0 auto\"\n        });\n        load = function(){\n          return inc(\"load/load\")({\n            page: page,\n            onLoaded: onLoaded\n          });\n        };\n        onLoaded = function(school){\n          var s;\n          s = school;\n          return page.html(inc(\"debug/debug\")(s), inc(\"schoolIcon/icon\")(s), inc(\"totalMembers/total\")(s), inc(\"name/name\")(s), inc(\"location/location\")(s), inc(\"protectedText/text\")(s), inc(\"button/button\")(page, s));\n        };\n        return load();\n      }\n    };\n  };\n})();","updated":"2024-05-28T14:36:13.98121"},{"path":"pages/support/help/faqList/loadCategories/load.ls","text":"(function(){\n  return function(page){\n    return function(){\n      var loadProject, onLoaded, ref$;\n      loadProject = function(){\n        return inc(\"/lib/util/loadProject/load\")(\"app01-faq\", onLoaded);\n      };\n      onLoaded = function(){\n        var i, categories;\n        i = projects.info()[\"app01-faq\"];\n        if (!(i != null && i.isLoaded)) {\n          return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n        }\n        if (i.branch === \"master\" && i.version < 102) {\n          return inc(\"/lib/gui/errorPopup/popup\")({\n            label: T(\"restartError\"),\n            onClose: function(){\n              return location.reload();\n            }\n          });\n        }\n        categories = inc(\"calcCategories/calc\")();\n        return page.create(categories);\n      };\n      if ((ref$ = projects.info()[\"app01-faq\"]) != null && ref$.isLoaded) {\n        return onLoaded();\n      } else {\n        return loadProject();\n      }\n    };\n  };\n})();","updated":"2024-05-28T14:36:13.98121"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/show.ls","text":"(function(){\n  return function(o){\n    var ref$, isCancelled, load, create;\n    o.highscoreType = (ref$ = o.highscoreType) != null ? ref$ : \"points\";\n    inc(\"calc/lastUserScore/calc\")(o);\n    inc(\"calc/periodAndUsersFilter/calc\")(o);\n    isCancelled = false;\n    load = function(){\n      return inc(\"load/load\")(o, create);\n    };\n    create = function(){\n      var ref$;\n      if ((ref$ = o.spinner) != null) {\n        ref$.remove();\n      }\n      if (isCancelled) {\n        return;\n      }\n      if (o.showLastUserScore) {\n        return inc(\"popupGameResult/popup\")(o);\n      } else {\n        return inc(\"popupHighscores/popup\")(o);\n      }\n    };\n    o.spinner = inc(\"/lib/gui/spinnerOverlay/overlay\")(function(){\n      isCancelled = true;\n      return typeof o.onClose == 'function' ? o.onClose() : void 8;\n    }).css({\n      pointerEvents: \"none\"\n    });\n    setTimeout(function(){\n      return o.spinner.css({\n        pointerEvents: \"inherit\"\n      });\n    }, 1000);\n    return load();\n  };\n})();","updated":"2024-05-28T14:36:13.98121"},{"path":"pages/school/_shared/joinSchool/onCompleted/onCompleted.ls","text":"(function(){\n  return function(page, result, finish){\n    var schoolCode, checkSchoolLog;\n    schoolCode = result != null ? result.schoolCode : void 8;\n    if (!schoolCode) {\n      finish();\n      return;\n    }\n    checkSchoolLog = function(){\n      if (page !== app.currentPage) {\n        return;\n      }\n      if (!inc(\"/lib/util/isOnline/isOnline\")() || window.schoolLogs[schoolCode] != null) {\n        finish();\n        return;\n      }\n      return setTimeout(checkSchoolLog, 1000);\n    };\n    return checkSchoolLog();\n  };\n})();","updated":"2024-05-28T14:36:13.98121"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/dragonHunter/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Decke alle Felder auf, ohne dabei auf einen Drachen zu stoßen.Die Zahlen auf den Feldern geben an, wie viele Drachen sich in der Umgebung befinden.Markiere Drachen, indem du lange auf ein Feld klickst.\",\n      en: \"Uncover all the boxes without coming across a dragon.The numbers inside the boxes tell you how many dragons are in the adjacent boxes.You can mark a box that you think contains a dragon by long clicking on that box. \",\n      fr: \"Découvre toutes les cases sans tomber sur un dragon.Le nombre inscrit sur une case t'indique combien de dragons sont dans les cases avoisinantes.Si tu penses qu'une case contient un dragon, tu peux la marquer en cliquant longtemps dessus. \",\n      es: \"Descubre las celdas sin toparte con los dragones. Los números dentro de las celdas revelan cuántos dragones hay en las celdas adyacentes. Para marcar las celdas en las que creas que hay un dragón, mantén la celda presionada. \",\n      pt: \"Descubra todos os campos sem se deparar com um dragão. Os números nos campos revelam quantos dragões se encontram por perto. Você pode marcar um campo onde desconfie que há um dragão, clicando neste campo. \"\n    },\n    manual: {\n      de: \"Decke alle Felder auf, ohne dabei auf einen Drachen zu stoßen.Die Zahlen auf den Feldern geben an, wie viele Drachen sich in der Umgebung befinden.Markiere Drachen, indem du lange auf ein Feld tippst.\",\n      en: \"Uncover all the boxes without coming across a dragon.The numbers inside the boxes tell you how many dragons are in the adjacent boxes.You can mark a box that you think contains a dragon by tapping and holding on that box. \",\n      fr: \"Découvre toutes les cases sans tomber sur un dragon.Le nombre inscrit sur une case t'indique combien de dragons sont dans les cases avoisinantes.Si tu penses qu'une case contient un dragon, tu peux la marquer en cliquant longtemps dessus. \",\n      es: \"Descubre las celdas sin toparte con los dragones. Los números dentro de las celdas revelan cuántos dragones hay en las celdas adyacentes. Para marcar las celdas en las que creas que hay un dragón, mantén la celda presionada. \",\n      pt: \"Descubra todos os campos sem se deparar com um dragão. Os números nos campos revelam quantos dragões se encontram por perto. Você pode marcar um campo onde desconfie que há um dragão, mantendo esse campo pressionado. \"\n    },\n    tip1Desktop: {\n      de: \"Du kannst ein Feld markieren, indem du lange darauf klickst.\",\n      en_gb: \"You can mark a box that you think contains a dragon by long-clicking on that box.\",\n      en: \"You can mark a box that you think contains a dragon by long clicking on that box.\",\n      fr: \"Tu peux marquer une case en cliquant longtemps dessus si tu penses qu'elle contient un dragon.\",\n      es: \"Puedes marcar las celdas, en las que creas que hay un dragón, manteniendo la celda presionada.\",\n      pt: \"Você pode marcar um campo em que desconfie que há um dragão mantendo esse campo pressionado.\"\n    },\n    tip2: {\n      de: \"Die Zahlen auf den Feldern geben an, wie viele Drachen sich in der Umgebung befinden.\",\n      en: \"The numbers inside the boxes tell you how many dragons are in the adjacent boxes.\",\n      fr: \"Le nombre inscrit sur une case t'indique combien de dragons sont dans les cases avoisinantes.\",\n      es: \"Los números dentro de las celdas revelan cuántos dragones hay en las celdas adyacentes.\",\n      pt: \"Os números nos campos revelam quantos dragões se encontram por perto.\"\n    },\n    tip3Desktop: {\n      de: \"Markierte Felder kannst du nicht aus Versehen anklicken.\",\n      en: \"If you've marked a box, you can't click on it by accident.\",\n      fr: \"Si tu as marqué une case, tu ne peux pas cliquer dessus par accident.\",\n      es: \"Las celdas marcadas no se abren accidentalmente.\",\n      pt: \"Os campos marcados não poderão ser clicados sem querer.\"\n    },\n    tip4Desktop: {\n      de: \"Klicke lange auf ein Feld, um eine Markierung aufzuheben.\",\n      en_gb: \"Long-click on a box to unmark it.\",\n      en: \"Long click on a box to unmark it.\",\n      fr: \"Clique longtemps sur une case pour retirer la marque.\",\n      es: \"Mantén la celda presionada para eliminar la marca.\",\n      pt: \"Mantenha o campo pressionado para eliminar a marcação. \"\n    },\n    tip5: {\n      de: \"Das hervorgehobene Feld zeigt dir einen sicheren Startpunkt.\",\n      en: \"The highlighted box shows you a safe starting point.\",\n      fr: \"La case plus claire te montre où commencer en toute sécurité.\",\n      es: \"La celda resaltada en claro te muestra un punto de partida seguro.\",\n      pt: \"O campo em destaque te mostra um ponto de partida seguro.\"\n    },\n    tip1: {\n      de: \"Du kannst ein Feld markieren, indem du lange darauf tippst.\",\n      en: \"You can mark a box that you think contains a dragon by tapping and holding on that box.\",\n      fr: \"Tu peux marquer une case en appuyant longtemps dessus si tu penses qu'elle contient un dragon.\",\n      es: \"Puedes marcar las celdas presionándolas con el dedo hasta que aparezca la marca, si crees que contienen un dragón.\",\n      pt: \"Você pode marcar um campo mantendo-o pressionado, caso acredite que há um dragão ali.\"\n    },\n    tip3: {\n      de: \"Markierte Felder kannst du nicht aus Versehen antippen.\",\n      en: \"If you've marked a box, you can't tap on it by accident.\",\n      fr: \"Si tu as marqué une case, tu ne peux pas appuyer dessus par accident.\",\n      es: \"Marcar las celdas evita que las abras accidentalmente.\",\n      pt: \"Quando você marca um campo, você evita abrí-lo por acidente.\"\n    },\n    tip4: {\n      de: \"Tippe lange auf ein Feld, um eine Markierung aufzuheben.\",\n      en: \"Tap and hold on a box to unmark it.\",\n      fr: \"Appuie longtemps sur une case pour retirer la marque.\",\n      es: \"Mantén la celda presionada para eliminar la marca.\",\n      pt: \"Mantenha o campo pressionado para remover a marcação.\"\n    },\n    easyFixed: {\n      de: \"Einfach-Fixed\",\n      en: \"Fixed easy\",\n      fr: \"Fixed facil\",\n      es: \"Fixed fácil\",\n      pt: \"Fixed fácil\"\n    },\n    mediumFixed: {\n      de: \"Mittel-Fixed\",\n      en: \"Fixed medium\",\n      fr: \"Fixed intermédiaire\",\n      es: \"Fixed Medio\",\n      pt: \"Fixed médio\"\n    },\n    hardFixed: {\n      de: \"Schwierig-Fixed\",\n      en: \"Fixed hard\",\n      fr: \"Fixed avancé\",\n      es: \"Fixed difícil\",\n      pt: \"Fixed difícil\"\n    }\n  };\n})();","updated":"2024-05-28T14:36:13.98121"},{"path":"data/school/memberAdd/add.ls","text":"(function(){\n  return function(o){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/school/members/add/add\"),\n      params: {\n        schoolCode: o.schoolCode,\n        publicId: o.publicId\n      },\n      onCompleted: function(result){\n        if (result.status !== \"ok\") {\n          return o.onError();\n        } else {\n          return o.onCompleted(result);\n        }\n      },\n      onError: o.onError,\n      onOffline: o.onOffline\n    });\n  };\n})();","updated":"2024-05-28T14:36:13.98121"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/princessJourney/_t.ls","text":"(function(){\n  return {\n    manual: \"reiten - münzen sammeln - tippen - springen - nicht gegen schafe rennen :-)\",\n    manualDesktop: \"reiten - münzen sammeln - taste - springen - nicht gegen schafe rennen :-)\"\n  };\n})();","updated":"2024-05-28T14:36:13.98121"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/swarm/_t.ls","text":"(function(){\n  return {\n    manual: \"Hilf deinem Schwarm, alle Nester zu bevölkern. Jede Sekunde generiert ein Nest eine neue Einheit. Befehlige deinen Einheiten, das Nest zu verlassen und ein anderes anzugreifen, indem du eine Linie von deinem Nest zu einem anderen ziehst. Du kannst auch mehrere eigene Nester auswählen.\"\n  };\n})();","updated":"2024-05-28T14:36:13.98121"},{"path":"pages/content/plan/_topbar/menu/items/pimpPreschool/_t.ls","text":"(function(){\n  return {\n    simple: {\n      de: \"einfach\",\n      en: \"easy\",\n      fr: \"facile\",\n      es: \"fácil\",\n      pt: \"fácil\"\n    },\n    intermediate: {\n      de: \"mittelschwer\",\n      en: \"medium\",\n      fr: \"intermédiaire\",\n      es: \"medio\",\n      pt: \"médio\"\n    },\n    advanced: {\n      de: \"schwer\",\n      en: \"hard\",\n      fr: \"avancé\",\n      es: \"difícil\",\n      pt: \"difícil\"\n    },\n    divText: {\n      de: \"Die gemischten Übungen sind so konzipiert, dass ein Kind sie eigenständig bearbeiten kann. <br><br>Zur Motivation sind die Übungen in kleinen Puzzle-Figuren angeordnet, deren Teile nach und nach freigeschaltet werden.<br><br>Die Übungen sind eine abwechslungs&shy;reiche Zusammenstellung aus den sortierten Vorschulübungen.\",\n      en_gb: \"The mixed exercises are structured so that a child can work through them independently.<br><br>To encourage motivation, the exercises are grouped into small puzzles, whose pieces are revealed a bit at a time.<br><br>The exercises are a diverse assortment of the ordered Reception exercises.\",\n      en: \"The mixed exercises are structured so that a child can work through them independently.<br><br>To encourage motivation, the exercises are grouped into small puzzles, whose pieces are revealed a bit at a time.<br><br>The exercises are a diverse assortment of the ordered preschool exercises.\",\n      fr: \"Les activités mélangées sont organisées pour qu'un enfant apprenne en toute autonomie.<br><br>Pour motiver l'apprentissage, les activités sont regroupées en petits puzzles dont les pièces se dévoilent une à une.<br><br>Les activités accessibles en format puzzle sont les mêmes que celles accessibles par thèmes.\",\n      es: \"Los ejercicios combinados están diseñados para que los niños y niñas aprendan de forma autónoma. <br><br>Para motivar el aprendizaje, los ejercicios están organizados en rompecabezas  cuyas piezas se van revelando una por una.<br><br>Los rompecabezas combinan los ejercicios que también encuentras clasificados por tema.\",\n      pt: \"Os exercícios mistos foram desenvolvidos para que a criança consiga resolvê-los de forma autônoma.<br><br>Para tornar o aprendizado mais envolvente, eles são apresentados como figuras em estilo quebra-cabeça, com peças que se desbloqueiam progressivamente.<br><br>Cada quebra-cabeça reúne uma seleção diversificada de atividades da Educação Infantil, que também podem ser encontradas por áreas do conhecimento.\"\n    },\n    explanationHint: {\n      de: \"Was ist das?\",\n      en: \"What is this?\",\n      fr: \"Qu'est-ce que c'est&nbsp;?\",\n      es: \"¿Qué es esto?\",\n      pt: \"O que é isto?\"\n    },\n    puzzleHeader: {\n      de: \"Vorschule: gemischte Übungen<br>zum Selbstlernen empfohlen\",\n      en_gb: \"Reception: mixed exercises<br> recommended for independent learning\",\n      en: \"Preschool: mixed exercises<br> recommended for independent learning\",\n      fr: \"Maternelle&nbsp;: activités mélangées<br>recommandées pour l'apprentissage en autonomie\",\n      es: \"Preescolar: ejercicios mixtos<br>para el aprendizaje autónomo\",\n      pt: \"<i>Educação Infantil -</i> Quebra-cabeças com exercícios mistos para o aprendizado autônomo\"\n    },\n    normalPlansHeader: {\n      de: \"Vorschule: sortierte Übungen\",\n      en_gb: \"Reception: exercises sorted by topic\",\n      en: \"Preschool: exercises sorted by topic\",\n      fr: \"Maternelle&nbsp;: activités par thèmes\",\n      es: \"Preescolar: ejercicios por tema\",\n      pt: \"<i>Educação Infantil -</i> Exercícios organizados por tópicos\"\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/items/pimpPreschool/pimp.ls","text":"(function(){\n  return function(items){\n    var folderItem, hasPuzzlePlans;\n    folderItem = _.find(items, {\n      subject: \"preschool\"\n    });\n    if (!folderItem) {\n      return;\n    }\n    hasPuzzlePlans = _.find(folderItem.items, function(item){\n      return _.includes(item.plan.project, \"shapes\");\n    });\n    if (!hasPuzzlePlans) {\n      return;\n    }\n    return folderItem.items = _.concat({\n      rowType: \"div\",\n      div: inc(\"divInfo/div\")()\n    }, {\n      rowType: \"label\",\n      label: T(\"puzzleHeader\")\n    }, inc(\"calcShapePlanItems/calc\")(folderItem.items), inc(\"calcSortedPlanItems/calc\")(folderItem.items));\n  };\n})();","updated":"2024-05-30T10:02:50.760723"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/top/plans/top.ls","text":"(function(){\n  return function(){\n    return inc(\"../_div/div\")({\n      title: T(\"subjects\"),\n      icon: SvgIcon({\n        svg: path(\"/lib/svg/shape/book.svg\"),\n        color: Color.grey[700]\n      }),\n      showCloseIcon: true\n    });\n  };\n})();","updated":"2024-05-30T10:02:50.760723"},{"path":"pages/content/plan/_topbar/menu/items/pimpPreschool/calcSortedPlanItems/calc.ls","text":"(function(){\n  return function(items){\n    var items2, i$, len$, i;\n    items2 = _.filter(items, function(i){\n      return !_.includes(i.plan.project, \"shapes\");\n    });\n    if (!items2) {\n      return;\n    }\n    items2 = _.orderBy(items2, \"plan.sortIndex\");\n    for (i$ = 0, len$ = items2.length; i$ < len$; ++i$) {\n      i = items2[i$];\n      i.label = i.plan.title;\n    }\n    return _.concat({\n      rowType: \"line\"\n    }, {\n      rowType: \"label\",\n      label: T(\"normalPlansHeader\")\n    }, items2);\n  };\n})();","updated":"2024-05-30T10:02:50.760723"},{"path":"lib/init/setDevelopAndPreviewTitleAndFavicon/set.ls","text":"(function(){\n  return function(){\n    if (location.host === \"develop.anton.app\") {\n      document.title = \"ANTON (develop)\";\n      return inc(\"/lib/util/setFavicon/set\")(\"https://files.anton.app/files/favicon-anton-develop.png\");\n    } else if (location.host === \"preview.anton.app\") {\n      document.title = \"ANTON (preview)\";\n      return inc(\"/lib/util/setFavicon/set\")(\"https://files.anton.app/files/favicon-anton-preview.png\");\n    }\n  };\n})();","updated":"2024-05-30T10:02:50.760723"},{"path":"lib/util/setFavicon/set.ls","text":"(function(){\n  return function(url){\n    var link;\n    link = document.querySelector(\"link[rel~='icon']\");\n    if (!link) {\n      link = document.createElement(\"link\");\n      link.rel = \"icon\";\n      link.type = \"image/png\";\n      document.head.appendChild(link);\n    }\n    return link.href = url;\n  };\n})();","updated":"2024-05-30T10:02:50.760723"},{"path":"lib/init/classKit/setContent/setClassKitData/set.ls","text":"(function(){\n  return function(onDone){\n    var o, loadPlansAll, loadPlansList, getPlanSubject, calcClassKitPlans, setPlugInContent;\n    o = {};\n    loadPlansAll = function(){\n      return inc(\"/lib/util/loadPlansAll/load\")({\n        onLoaded: function(plans){\n          o.plans = plans;\n          return loadPlansList();\n        },\n        onError: function(){\n          return typeof onDone == 'function' ? onDone(\"loadPlansAll error\") : void 8;\n        }\n      });\n    };\n    loadPlansList = function(){\n      return inc(\"/lib/util/loadPlansList/load\")({\n        onLoaded: getPlanSubject,\n        onError: function(){\n          return typeof onDone == 'function' ? onDone(\"loadPlansList error\") : void 8;\n        }\n      });\n    };\n    getPlanSubject = function(pds){\n      var i$, ref$, len$, plan, ref1$;\n      for (i$ = 0, len$ = (ref$ = o.plans).length; i$ < len$; ++i$) {\n        plan = ref$[i$];\n        plan.subject = (ref1$ = _.find(pds, fn$)) != null ? ref1$.subject : void 8;\n      }\n      return calcClassKitPlans(o.plans);\n      function fn$(pd){\n        return pd.project === plan.project;\n      }\n    };\n    calcClassKitPlans = function(plans){\n      var classKitPlans;\n      classKitPlans = _.flatMap(plans, function(plan, i){\n        plan = inc(\"calcClassKitPlan/calc\")(plan, i);\n        if (!plan.id || !plan.title) {\n          return [];\n        }\n        return plan;\n      });\n      return setPlugInContent(classKitPlans);\n    };\n    setPlugInContent = function(classKitPlans){\n      return window.ClassKitPlugin.setContent({\n        nodes: classKitPlans\n      }, function(error){\n        return typeof onDone == 'function' ? onDone(error) : void 8;\n      });\n    };\n    return setTimeout(loadPlansAll);\n  };\n})();","updated":"2024-05-30T14:55:56.338145"},{"path":"lib/init/classKit/levelPlayer/start/calcContent/calc.ls","text":"(function(){\n  return function(p, o){\n    var removeHtml, planPuid, topic, block;\n    removeHtml = inc(\"../../../_shared/removeHtmlFormatting/remove\");\n    planPuid = o.plan.puid;\n    topic = p.level.parentTopic;\n    block = p.level.parentBlock;\n    return o.content = {\n      nodes: [{\n        id: planPuid.replace(\"/\", \"-\"),\n        title: removeHtml(o.plan.title),\n        contextType: \"CLSContextTypeChapter\",\n        contextTopic: inc(\"../../../_shared/calcContextTopic/calc\")(o.planDescription.subject),\n        children: [{\n          id: topic.puid.replace(\"/\", \"-\"),\n          title: removeHtml(topic.title),\n          contextType: \"CLSContextTypeChapter\",\n          children: [{\n            id: block.puid.replace(\"/\", \"-\"),\n            title: removeHtml(block.title),\n            contextType: \"CLSContextTypeLesson\"\n          }]\n        }]\n      }]\n    };\n  };\n})();","updated":"2024-05-30T14:55:56.338145"},{"path":"pages/static/template/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return undefined;\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        return inc(\"/lib/util/loadProject/load\")(\"app01-template-pages\", function(){\n          return inc(\"/../app01-template-pages/start\")();\n        });\n      }\n    };\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/top/_div/closeIcon/icon.ls","text":"(function(){\n  return function(p){\n    if (!p.showCloseIcon) {\n      return;\n    }\n    return SvgIcon({\n      svg: path(\"/lib/svg/icon/close-small.svg\"),\n      color: Color.grey[700]\n    }).css({\n      position: \"absolute\",\n      right: \"0.5em\"\n    }).tap({\n      up: function(){\n        var ref$;\n        return (ref$ = body.findFirst(\".mainMenu\").o) != null ? ref$.close({\n          move: true\n        }) : void 8;\n      },\n      tapZone: \"2em\",\n      animation: \"none\"\n    });\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"pages/level/afterFinish/pages/antonPlus/page1Intro/page.ls","text":"(function(){\n  return function(page){\n    page.media = inc(\"_preloadMedia/preloadMedia\")();\n    page.testVariantSound = inc(\"../_shared/calcTestVariantSound/calc\")();\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      finish: function(){\n        return page.media.clear();\n      },\n      start: function(){\n        if (inc(\"../_shared/waitForMedia/wait\")(page)) {\n          return;\n        }\n        inc(\"logPromo/log\")(page);\n        page.css({\n          lineHeight: \"1.5em\",\n          maxWidth: \"90%\",\n          width: \"35em\",\n          margin: \"0 auto\"\n        }).append(inc(\"title/title\")(), inc(\"icon/icon\")(), inc(\"text1/text1\")(), inc(\"button/button\")(), \"<br>\", inc(\"link/link\")());\n        return inc(\"../_shared/playSound/play\")(page);\n      }\n    };\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"pages/level/afterFinish/pages/antonPlus/page2Avatars/page.ls","text":"(function(){\n  return function(page){\n    page.media = inc(\"_preloadMedia/preloadMedia\")();\n    page.testVariantSound = inc(\"../_shared/calcTestVariantSound/calc\")();\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      finish: function(){\n        return page.media.clear();\n      },\n      start: function(){\n        if (inc(\"../_shared/waitForMedia/wait\")(page)) {\n          return;\n        }\n        inc(\"logPromo/log\")(page);\n        page.css({\n          lineHeight: \"1.5em\",\n          maxWidth: \"90%\",\n          width: \"35em\",\n          margin: \"0 auto\"\n        }).append(inc(\"title/title\")(), inc(\"image/image\")(page), inc(\"text1/text1\")(), inc(\"button/button\")(), \"<br>\", inc(\"link/link\")());\n        return inc(\"../_shared/playSound/play\")(page);\n      }\n    };\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"pages/level/afterFinish/pages/antonPlus/page3NewFamily/page.ls","text":"(function(){\n  return function(page){\n    page.media = inc(\"_preloadMedia/preloadMedia\")();\n    page.testVariantSound = inc(\"../_shared/calcTestVariantSound/calc\")();\n    return {\n      urlDescription: function(){\n        return inc(\"/pages/level/_shared/_urlDescription/description\")(page);\n      },\n      finish: function(){\n        return page.media.clear();\n      },\n      start: function(){\n        if (inc(\"../_shared/waitForMedia/wait\")(page)) {\n          return;\n        }\n        inc(\"logPromo/log\")(page);\n        page.css({\n          lineHeight: \"1.5em\",\n          maxWidth: \"90%\",\n          width: \"35em\",\n          margin: \"0 auto\"\n        }).append(inc(\"title/title\")(), inc(\"icon/icon\")(), inc(\"text1/text1\")(), inc(\"button/button\")(), \"<br>\", inc(\"link/link\")());\n        return inc(\"../_shared/playSound/play\")(page);\n      }\n    };\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"pages/level/afterFinish/start/showAntonPlus2Avatars/show.ls","text":"(function(){\n  return function(){\n    var e1, age, e2, calcDate, preloadMedia;\n    if (!inc(\"/lib/util/isPlusPromotionTime/is\")()) {\n      return;\n    }\n    e1 = log.findLast(\"promoPlus_afterFinish1\");\n    if (!e1) {\n      return;\n    }\n    age = new Date() - e1.created;\n    if (age < 60 * 1000 * 10) {\n      return;\n    }\n    e2 = log.findLast(\"promoPlus_afterFinish2Avatars\");\n    if ((e2 != null ? e2.count : void 8) > 2) {\n      return false;\n    }\n    calcDate = inc(\"/lib/util/calcDateString/calc\");\n    if (e2 != null && calcDate(e2.created) === calcDate(new Date())) {\n      return false;\n    }\n    preloadMedia = inc(\"../../pages/antonPlus/page2Avatars/_preloadMedia/preloadMedia\")();\n    if (preloadMedia.isReady() !== true) {\n      return false;\n    }\n    startPage({\n      path: path(\"../../pages/antonPlus/page2Avatars/page\")\n    });\n    return true;\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"pages/level/afterFinish/start/showAntonPlus3NewFamily/show.ls","text":"(function(){\n  return function(){\n    var e1, age, e2, calcDate, preloadMedia;\n    if (!inc(\"/lib/util/isPlusPromotionTime/is\")()) {\n      return;\n    }\n    e1 = log.findLast(\"promoPlus_afterFinish2Avatars\");\n    if (!e1) {\n      return;\n    }\n    age = new Date() - e1.created;\n    if (age < 60 * 1000 * 60 * 24 * 14) {\n      return;\n    }\n    e2 = log.findLast(\"promoPlus_afterFinish3NewFamily\");\n    if ((e2 != null ? e2.count : void 8) > 1) {\n      return false;\n    }\n    calcDate = inc(\"/lib/util/calcDateString/calc\");\n    if (e2 != null && calcDate(e2.created) === calcDate(new Date())) {\n      return false;\n    }\n    preloadMedia = inc(\"../../pages/antonPlus/page3NewFamily/_preloadMedia/preloadMedia\")();\n    if (preloadMedia.isReady() !== true) {\n      return false;\n    }\n    startPage({\n      path: path(\"../../pages/antonPlus/page3NewFamily/page\")\n    });\n    return true;\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"lib/gui/input2/isDesktop/isDesktop.ls","text":"(function(){\n  return function(o){\n    if (o.isDesktop != null) {\n      return o.isDesktop;\n    } else if ((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"showScreenKeyboard\")) {\n      return false;\n    } else {\n      return inc(\"/lib/util/isDesktop/isDesktop\")();\n    }\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"lib/gui/infoPopup/popup.ls","text":"(function(){\n  return function(o){\n    var label, buttonLabel, close, div, popup;\n    o == null && (o = {});\n    label = o.label;\n    buttonLabel = o.buttonLabel || T(\"ok\");\n    close = function(){\n      return popup.close();\n    };\n    div = Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      flexDirection: \"column\",\n      padding: \"1em\"\n    }).html(Div({\n      marginBottom: \"0.5em\",\n      lineHeight: \"1.5em\"\n    }).secureHtml(label), Div().html(Button({\n      label: buttonLabel\n    }).css({\n      margin: \"0.5em\",\n      minWidth: \"6em\"\n    }).tap(close).addClass(\"keyManager-enter\").bind(\"keyManager\", close)));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: o.onClose,\n      animationOnShow: o.animationOnShow,\n      animationOnClose: o.animationOnClose,\n      animationDisableBackground: o.animationDisableBackground\n    });\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"pages/level/afterFinish/start/showAntonPlus1Intro/show.ls","text":"(function(){\n  return function(){\n    var events, e, calcDate, preloadMedia;\n    if (!inc(\"/lib/util/isPlusPromotionTime/is\")()) {\n      return;\n    }\n    events = log.list(\"finishLevel\");\n    if (events.length <= 3) {\n      return false;\n    }\n    e = log.findLast(\"promoPlus_afterFinish1\");\n    if ((e != null ? e.count : void 8) > 3) {\n      return false;\n    }\n    calcDate = inc(\"/lib/util/calcDateString/calc\");\n    if (e != null && calcDate(e.created) === calcDate(new Date())) {\n      return false;\n    }\n    preloadMedia = inc(\"../../pages/antonPlus/page1Intro/_preloadMedia/preloadMedia\")();\n    if (!preloadMedia.isReady()) {\n      return false;\n    }\n    startPage({\n      path: path(\"../../pages/antonPlus/page1Intro/page\")\n    });\n    return true;\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"addons/topbar2/tools/coins/coins.ls","text":"(function(){\n  return function(o){\n    var div, update, userDescription, totalCoins;\n    if (!o.coins || !window.log) {\n      return;\n    }\n    div = null;\n    update = function(){\n      return div.replaceWith(div = inc(THISFILE)(o));\n    };\n    userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    totalCoins = userDescription.totalCoins;\n    div = Div({\n      flex: \"0 0 auto\",\n      display: \"flex\",\n      fontSize: \"0.9em\",\n      padding: \"0.43em 0.4em 0.45em 0.85em\"\n    }).html(inc(\"number/number\")(totalCoins), inc(\"icon/icon\")()).tap(engine.isDebug ? function(){\n      return inc(\"debugCoinPopup/popup\")(update);\n    } : void 8);\n    div.update = update;\n    app.currentPage.topbarCoins = div;\n    return div;\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"lib/util/isPlusPromotionTime/is.ls","text":"(function(){\n  return function(){\n    var d;\n    if (deviceLog['var'](\"showAntonPlusPromotion\")) {\n      return true;\n    }\n    d = inc(\"/data/user/calcUserDescription/calc\")();\n    if (d.hasPlusAccess) {\n      return false;\n    }\n    if (d.isDPASchoolMember) {\n      return false;\n    }\n    return false;\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"addons/topbar2/tools/coins/debugCoinPopup/button/button.ls","text":"(function(){\n  return function(p){\n    return Button(T(\"buttonAddCoins\")).tap(function(){\n      return p.addCoins();\n    });\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"addons/topbar2/tools/coins/debugCoinPopup/header/header.ls","text":"(function(){\n  return function(){\n    return Div().html(SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\")\n    }).css({\n      margin: \"0 0.3em\",\n      verticalAlign: \"-3px\"\n    }), T(\"popupTitle\"));\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"addons/topbar2/tools/coins/debugCoinPopup/input/input.ls","text":"(function(){\n  return function(p){\n    var onChange;\n    onChange = function(v){\n      var value, valueClean;\n      value = p.input.getValue();\n      valueClean = value.replace(/(?!^-)-|[^0-9-]/g, \"\");\n      if (value !== valueClean) {\n        return p.input.setValue(valueClean);\n      }\n    };\n    return inc(\"/../app01/lib/gui/inputEditable/input\")({\n      value: \"10\",\n      showResetIcon: true,\n      onChange: onChange,\n      onSubmit: p.addCoins,\n      maxLength: 6\n    }).css({\n      flex: \"1 1 auto\",\n      width: \"10em\",\n      margin: \"1em 0\",\n      backgroundColor: \"white\",\n      border: \"1px solid \" + Color.grey[200]\n    });\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"addons/topbar2/tools/coins/debugCoinPopup/popup.ls","text":"(function(){\n  return function(onDone){\n    var p, div;\n    p = {};\n    p.onDone = onDone;\n    p.addCoins = function(){\n      return inc(\"addCoins/add\")(p);\n    };\n    div = Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      padding: \"1em 3em\"\n    }).html(inc(\"header/header\")(), p.input = inc(\"input/input\")(p), p.button = inc(\"button/button\")(p));\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2024-06-26T09:03:02.787566"},{"path":"pages/static/_shared/topbarDeeplink/topbar.ls","text":"(function(){\n  return function(page, title, onPrint){\n    var actions;\n    if (onPrint) {\n      actions = [{\n        label: T(\"print\"),\n        icon: path(\"/lib/svg/shape/print.svg\"),\n        click: onPrint\n      }];\n    }\n    return inc(\"/addons/topbar2/topbar\")(page.params.isDeepLink\n      ? {\n        title: title,\n        back: true,\n        backLabel: T(\"startPageBack\"),\n        actions: actions,\n        backDeepLink: function(){\n          if (!engine.isBotMode && window.log != null) {\n            return inc(\"/pages/content/start\")({\n              history: 0\n            });\n          } else {\n            return startPage({\n              path: path(\"/../app01-welcome/pages/welcome/page\"),\n              history: 0,\n              animation: \"slideRight\"\n            });\n          }\n        }\n      }\n      : page.params.isSettingsLink\n        ? {\n          title: title,\n          back: true,\n          backLabel: T(\"settings\"),\n          actions: actions\n        }\n        : {\n          title: title,\n          close: true,\n          actions: actions\n        });\n  };\n})();","updated":"2024-06-26T14:13:38.337023"},{"path":"lib/util/handleMobileDeepLink/handleMobileDeepLink.ls","text":"(function(){\n  return function(){\n    var url, type, qrCodeScanData, ref$, ref1$;\n    if (!engine.mobileDeepLink) {\n      return;\n    }\n    url = engine.mobileDeepLink;\n    engine.mobileDeepLink = undefined;\n    type = url.split(\"//\")[1].split(\"/\")[0];\n    switch (type) {\n    case \"login\":\n      qrCodeScanData = url.replace(\"anton://login/\", \"\");\n      if (qrCodeScanData.toLowerCase() === ((ref$ = window.log) != null ? (ref1$ = ref$.findLast(\"setLoginCode\")) != null ? ref1$.value.toLowerCase() : void 8 : void 8)) {\n        return;\n      }\n      return startPage({\n        history: -(app.pageHistory.length - 1),\n        path: path(\"/pages/start/login/01_step1/page\"),\n        animation: \"fadeIn\",\n        params: {\n          qrCodeScanData: qrCodeScanData\n        }\n      });\n    case \"files.anton.app\":\n      break;\n    default:\n      return startPage({\n        history: -(app.pageHistory.length - 1),\n        path: path(\"/../app01-welcome/pages/welcome/page\"),\n        animation: \"fadeIn\"\n      });\n    }\n  };\n})();","updated":"2024-06-26T14:13:38.337023"},{"path":"pages/support/help/faqList/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var onSearch;\n    onSearch = function(query){\n      return page.onSearch(query);\n    };\n    if (page.params.isDeepLink) {\n      return inc(\"/addons/topbar2/topbar\")({\n        title: T(\"faq\"),\n        back: true,\n        backLabel: T(\"startPageBack\"),\n        backDeepLink: function(){\n          return startPage({\n            path: path(\"/../app01-welcome/pages/welcome/page\"),\n            history: 0,\n            animation: \"slideRight\"\n          });\n        },\n        onSearch: onSearch,\n        searchPlaceholder: T(\"searchPlaceholder\")\n      });\n    } else {\n      return inc(\"../../_topbar/topbar\")(page, onSearch, T(\"searchPlaceholder\"));\n    }\n  };\n})();","updated":"2024-06-26T14:13:38.337023"},{"path":"pages/static/_shared/linkToStart/link.ls","text":"(function(){\n  return function(){\n    var isAfterLogin;\n    isAfterLogin = !engine.isBotMode && window.log != null;\n    return Div().html(inc(\"/lib/gui/link/link\")(isAfterLogin\n      ? T(\"continueButton\")\n      : T(\"startPageBack\")).css({\n      marginTop: \"1em\",\n      color: Color.grey[600]\n    }).tap(function(){\n      if (isAfterLogin) {\n        return inc(\"/pages/content/start\")({\n          history: 0\n        });\n      } else {\n        return startPage({\n          path: path(\"/../app01-welcome/pages/welcome/page\"),\n          history: 0,\n          animation: \"slideDown\"\n        });\n      }\n    }));\n  };\n})();","updated":"2024-06-26T14:13:38.337023"},{"path":"pages/start/login/deeplinkLogin/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"/pages/static/_shared/topbarDeeplink/topbar\")(page, T(\"login\")).hide();\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        var abort, data;\n        abort = function(){\n          inc(\"/lib/util/browser/removePageUrlParams/remove\")();\n          return startPage({\n            history: -1,\n            path: path(\"/../app01-welcome/pages/welcome/page\")\n          });\n        };\n        data = inc(\"calcData/calc\")();\n        if (!data.loginCode) {\n          abort();\n          return;\n        }\n        return startPage({\n          history: -(app.pageHistory.length - 1),\n          path: path(\"../01_step1/page\"),\n          animation: \"fadeIn\",\n          params: {\n            qrCodeScanData: data.loginCode\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2024-06-26T14:13:38.337023"},{"path":"pages/start/login/sesamLogin/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"/pages/static/_shared/topbarDeeplink/topbar\")(page, T(\"sesamLogin\")).hide();\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")(page);\n      },\n      start: function(){\n        var abort, data;\n        abort = function(){\n          inc(\"/lib/util/browser/removePageUrlParams/remove\")();\n          return startPage({\n            history: -1,\n            path: path(\"/../app01-welcome/pages/welcome/page\")\n          });\n        };\n        data = inc(\"calcData/calc\")();\n        if (!data) {\n          abort();\n          return;\n        }\n        page.css({\n          margin: \"2em auto\",\n          width: \"35em\",\n          maxWidth: \"90%\"\n        }).html(inc(\"/lib/gui/spinner/spinner\")());\n        return inc(\"login/login\")(page, data);\n      }\n    };\n  };\n})();","updated":"2024-06-26T14:13:38.337023"},{"path":"pages/static/start/berlin/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page).hide();\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      start: function(){\n        var onError;\n        if (!engine.isDebug) {\n          startPage({\n            path: path(\"/../app01-welcome/pages/welcome/page\"),\n            history: 0\n          });\n          return;\n        }\n        onError = function(error){\n          page.topbar.show();\n          if (error === \"offline\") {\n            return inc(\"/lib/offline/offlinePopup/popup\")();\n          } else {\n            return inc(\"/lib/gui/errorPopup/popup\")();\n          }\n        };\n        return inc(\"/lib/util/pllsCall/call\")({\n          path: path(\"/../server-apis-db2/apis/sso/openId/berlin/getAuthorizationUrl/query\"),\n          params: {\n            environment: \"test\"\n          },\n          onCompleted: function(result){\n            if (result.status === \"ok\") {\n              return location.href = result.url;\n            } else {\n              debug(\"non-ok received\", result);\n              return onError(result);\n            }\n          },\n          onError: function(error){\n            debug(error);\n            return onError(error);\n          },\n          onOffline: function(){\n            return onError(\"offline\");\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2024-06-26T14:13:38.337023"},{"path":"pages/start/login/openId/login/login.ls","text":"(function(){\n  return function(page){\n    var code, state, environment, ref$, pllsPath;\n    page.urlParams = inc(\"calcUrlParams/calc\")();\n    if (page.urlParams.error) {\n      startPage({\n        path: path(\"/../app01-welcome/pages/welcome/page\"),\n        history: 0\n      });\n      return;\n    }\n    inc(\"/lib/util/browser/removePageUrlParams/remove\")();\n    inc(\"/lib/util/browser/setPageUrl/set\")(\"\");\n    code = page.urlParams.code;\n    state = page.urlParams.state;\n    page.type = state.type;\n    if (_.isString(state)) {\n      return page.onError(\"invalid_state\");\n    }\n    if (!code) {\n      return page.onError(\"missing auth-code\");\n    }\n    environment = (ref$ = state.environment) === \"test\" || ref$ === \"live\" ? state.environment : \"live\";\n    pllsPath = (function(){\n      switch (state.type) {\n      case \"berlin\":\n        return path(\"/../server-apis-db2/apis/sso/openId/berlin/login/query\");\n      case \"edlink\":\n        return path(\"/../server-apis-db2/apis/sso/openId/edlink/login/query\");\n      default:\n        return path(\"/../server-apis-db2/apis/sso/openId/edlink/login/query\");\n      }\n    }());\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: pllsPath,\n      params: {\n        environment: environment,\n        authorizationCode: code\n      },\n      onCompleted: function(result){\n        if (result.status !== \"ok\") {\n          debug(result);\n          page.onError(result.status);\n          return;\n        }\n        Store(\"deviceRememberUser\", false);\n        deviceLog.log({\n          event: \"deviceSetRememberUser\",\n          value: false\n        });\n        if (result.isPreparedUser) {\n          return inc(\"../createPreparedUser/create\")(page, result);\n        } else {\n          return inc(\"/pages/start/login/00_shared/finishLogin/finish\")({\n            logId: result.logId,\n            authToken: result.authToken,\n            loginType: \"SSO\",\n            displayName: result.displayName,\n            avatar: result.avatar,\n            history: 0\n          });\n        }\n      },\n      onError: function(error){\n        debug(error);\n        return page.onError(\"error\");\n      },\n      onOffline: function(){\n        return page.onError(\"offline\");\n      }\n    });\n  };\n})();","updated":"2025-08-15T06:20:43.727714"},{"path":"lib/util/startPage/pageStart/defaultPageWrapperNext/pageWrapper/pageScrollWrapper/div.ls","text":"(function(){\n  return function(pw){\n    var div;\n    div = ScrollDiv({\n      enableScrollBackStop: true\n    }).addClass(\"pageScrollWrapper allowBackSwipe onStatusBarTap\").css({\n      flex: \"0 1 auto\",\n      height: \"var(--centerHeight)\",\n      zIndex: 0\n    }).html(inc(\"pageCenter/div\")(pw));\n    div.onStatusBarTap = function(){\n      return div.scrollToTop();\n    };\n    return pw.elements.pageScrollWrapper = div;\n  };\n})();","updated":"2024-10-22T06:43:05.567514"},{"path":"lib/util/downloadManager/disablePlan/disable.ls","text":"(function(){\n  return function(manager, id){\n    var planInfo, e;\n    planInfo = manager.planInfos[id];\n    if (planInfo) {\n      planInfo.status = \"disabled\";\n      planInfo.enabled = false;\n      planInfo.active = false;\n    }\n    e = deviceLog.findLast({\n      event: \"deviceDownloadManagerEnabled\",\n      id: id\n    });\n    deviceLog.deleteEvent(e);\n    return manager.updateDom(id);\n  };\n})();","updated":"2024-12-04T12:34:54.803493"},{"path":"lib/util/downloadManager/loadPendingLevels/load.ls","text":"(function(){\n  return function(manager){\n    var currentIndex, calcPendingPlans, loadPendingLevelOfNextPlan, onPendingLevelDone, finish, i$, i, results$ = [];\n    currentIndex = -1;\n    calcPendingPlans = function(){\n      var plans, res$, i$, ref$, plan, ref1$, priorityPlans, nextPlan, that;\n      res$ = [];\n      for (i$ in ref$ = manager.planInfos) {\n        plan = ref$[i$];\n        if (((ref1$ = plan.pendingLevels) != null ? ref1$.length : void 8) > 0 && plan.status === \"loading\") {\n          res$.push(plan);\n        } else {\n          continue;\n        }\n      }\n      plans = res$;\n      priorityPlans = _.filter(plans, {\n        priority: true\n      });\n      if (priorityPlans.length > 0) {\n        plans = priorityPlans;\n      }\n      nextPlan = (that = _.find(plans, function(p){\n        return p.active;\n      }))\n        ? that\n        : plans[0];\n      return loadPendingLevelOfNextPlan(nextPlan);\n    };\n    loadPendingLevelOfNextPlan = function(nextPlan){\n      if (!nextPlan || manager.downloadPaused) {\n        manager.isLoadingLevels = false;\n        return finish();\n      } else if (manager !== inc(\"../manager\")()) {} else {\n        manager.isLoadingLevels = true;\n        currentIndex++;\n        nextPlan.active = true;\n        return inc(\"loadNextPendingLevel/load\")({\n          plan: nextPlan,\n          manager: manager,\n          onDone: onPendingLevelDone\n        });\n      }\n    };\n    onPendingLevelDone = function(){\n      return calcPendingPlans();\n    };\n    finish = function(){};\n    for (i$ = 1; i$ <= 5; ++i$) {\n      i = i$;\n      results$.push(calcPendingPlans());\n    }\n    return results$;\n  };\n})();","updated":"2024-12-04T12:34:54.803493"},{"path":"lib/util/downloadManager/getDownloadBar/get.ls","text":"(function(){\n  return function(m, id, options){\n    var update, div, bar, label;\n    options == null && (options = {});\n    update = function(){\n      var i, ref$, totalLoaded, totalPending;\n      i = m.getPlanInfo(id);\n      if (i.status === \"disabled\") {\n        div.hide();\n        return;\n      }\n      div.show();\n      if (options.showLoadingOnly && i.status !== \"loading\") {\n        div.hide();\n      }\n      if (i.status === \"completed\") {\n        if (_.includes(id, \"GROUP\")) {\n          label.html(T(\"done\"));\n        } else {\n          label.html(inc(\"calcSize/calc\")(id));\n        }\n        return bar.css({\n          transform: \"scaleX(1)\",\n          backgroundColor: Color.green[300]\n        });\n      } else if (((ref$ = i.status) === \"initialized\" || ref$ === \"preparing\" || ref$ === \"prepareWaiting\") || i.pendingLevelsCompletedTotal === 0) {\n        label.html(T(\"waiting\"));\n        return bar.css({\n          transform: \"scaleX(0)\"\n        });\n      } else if (i.status === \"offline\") {\n        label.html(\"...\");\n        return bar.css({\n          transform: \"scaleX(0)\"\n        });\n      } else if (i.status === \"loading\") {\n        totalLoaded = i.pendingLevelsCompletedTotal;\n        totalPending = i.pendingLevelsStartTotal;\n        label.html(totalLoaded + \"/\" + totalPending);\n        return bar.css({\n          transform: \"scaleX(\" + totalLoaded / totalPending + \")\",\n          backgroundColor: Color.amber[600]\n        });\n      }\n    };\n    div = Div({\n      width: \"8em\",\n      height: \"0.9em\",\n      backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n      margin: \"0.1em auto\",\n      overflow: \"hidden\"\n    }).addClass(\"onDownloadManagerUpdate-\" + id).html(bar = inc(\"bar/bar\")(), label = inc(\"label/label\")(options));\n    update();\n    div.onDownloadManagerUpdate = update;\n    return div;\n  };\n})();","updated":"2024-12-04T12:34:54.803493"},{"path":"lib/util/downloadManager/getDownloadBar/_t.ls","text":"(function(){\n  return {\n    done: {\n      de: \"fertig\",\n      en: \"done\",\n      fr: \"fini\",\n      es: \"listo\",\n      pt: \"pronto\"\n    },\n    loading: {\n      de: \"lädt...\",\n      en: \"loading...\",\n      fr: \"en cours…\",\n      es: \"descargando...\",\n      pt: \"baixando...\"\n    },\n    waiting: {\n      de: \"wartet…\",\n      en_gb: \"waiting…\",\n      en: \"waiting…\",\n      fr: \"en attente…\",\n      es: \"esperando...\",\n      pt: \"esperando...\"\n    }\n  };\n})();","updated":"2024-12-04T12:34:54.803493"},{"path":"lib/util/sound/createSoundParts/create.ls","text":"(function(){\n  return function(s){\n    var totalInitialized, base64, a, soundParts, res$, i$, len$, i, b, onSoundPartInitialized, onInitialized;\n    totalInitialized = 0;\n    base64 = s.params.base64;\n    a = _.isArray(base64)\n      ? base64\n      : _.isPlainObject(base64)\n        ? [base64]\n        : base64 != null\n          ? [{\n            base64: base64\n          }]\n          : (function(){\n            throw Error(\"sound base64 is missing\");\n          }());\n    res$ = [];\n    for (i$ = 0, len$ = a.length; i$ < len$; ++i$) {\n      i = i$;\n      b = a[i$];\n      res$.push(inc(\"soundPart/soundPart\")(s, b, i, fn$));\n    }\n    soundParts = res$;\n    onSoundPartInitialized = function(){\n      totalInitialized++;\n      if (totalInitialized === a.length) {\n        return onInitialized();\n      }\n    };\n    onInitialized = function(){\n      var d, i$, ref$, len$, sp, that;\n      d = 0;\n      for (i$ = 0, len$ = (ref$ = soundParts).length; i$ < len$; ++i$) {\n        sp = ref$[i$];\n        sp.startTimePosition = d;\n        d += sp.duration;\n      }\n      s.duration = d;\n      s.initialized = true;\n      if (that = s.playOnInitialized) {\n        s.play(that.onFinish, that.onProgress);\n        return ref$ = s.playOnInitialized, delete s.playOnInitialized, ref$;\n      }\n    };\n    return soundParts;\n    function fn$(){\n      return onSoundPartInitialized();\n    }\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/createAudioData/create.ls","text":"(function(){\n  return function(s, sp, onDone){\n    var generateBuffer, decode, onOk, onError;\n    generateBuffer = function(){\n      return inc(\"generateBuffer/generate\")({\n        base64: sp.base64,\n        onOk: decode,\n        onError: onError\n      });\n    };\n    decode = function(buffer){\n      return sound.audioContext.decodeAudioData(buffer, onOk, onError);\n    };\n    onOk = function(audioData){\n      return trySafe(function(){\n        sp.initialized = true;\n        sp.audioData = audioData;\n        sp.duration = _.round(audioData.duration / sp.pitchFactor * 1000);\n        return onDone();\n      });\n    };\n    onError = function(error){\n      return trySafe(function(){\n        var audioData;\n        audioData = sound.audioContext.createBuffer(1, 5000, 44100);\n        sp.initialized = true;\n        sp.hasError = true;\n        sp.audioData = audioData;\n        sp.duration = _.round(audioData.duration / sp.pitchFactor * 1000);\n        setTimeout(function(){\n          return onDone();\n        });\n        return setTimeout(function(){\n          return inc(\"logAndAnalyseError/logAndAnalyse\")(s, sp, error);\n        });\n      });\n    };\n    return generateBuffer();\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/createAudioData/generateBuffer/generate.ls","text":"(function(){\n  return function(p){\n    var data, characters, numbers, i$, len$, i, c, array, buffer, error;\n    try {\n      data = p.base64.split(\"base64,\")[1].trim();\n      characters = atob(data);\n      numbers = new Array(characters.length);\n      for (i$ = 0, len$ = characters.length; i$ < len$; ++i$) {\n        i = i$;\n        c = characters[i$];\n        numbers[i] = characters.charCodeAt(i);\n      }\n      array = new Uint8Array(numbers);\n      buffer = array.buffer;\n    } catch (e$) {\n      error = e$;\n      p.onError(error);\n      return;\n    }\n    return p.onOk(buffer);\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/createAudioData/logAndAnalyseError/logAndAnalyse.ls","text":"(function(){\n  var hasValidated;\n  hasValidated = false;\n  return function(s, sp, error){\n    var b64, fileId, soundPartIndex;\n    b64 = sp.base64;\n    fileId = s.params.fileId;\n    soundPartIndex = sp.index;\n    if (typeof log != 'undefined' && log !== null) {\n      log.log({\n        event: \"debugSoundNextError\",\n        errorMessage: error != null ? error.message : void 8,\n        fileId: fileId,\n        soundPartIndex: soundPartIndex,\n        base64Start: b64.substr(0, 30),\n        base64End: b64.substr(b64.length - 100),\n        version: 2\n      });\n    }\n    if (hasValidated) {\n      return;\n    } else {\n      hasValidated = true;\n    }\n    return inc(\"validateReencodedBase64/validate\")({\n      base64: b64,\n      onDone: function(result){\n        var e;\n        e = {\n          event: \"debugSoundNextErrorValidateReencoded\",\n          fileId: fileId,\n          soundPartIndex: soundPartIndex,\n          userAgent: window.navigator.userAgent,\n          validateResult: result\n        };\n        return typeof log != 'undefined' && log !== null ? log.log(e) : void 8;\n      }\n    });\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/createAudioData/logAndAnalyseError/validateReencodedBase64/requestNewBase64String/request.ls","text":"(function(){\n  return function(p){\n    return inc(\"/lib/util/apiCall/call\")({\n      serverName: \"https://apis-1-debug.solocode.com/soundNextRecreateMp3\",\n      path: \"/\",\n      method: \"post\",\n      params: {\n        base64String: p.base64\n      },\n      onError: function(e){\n        return p.onError(e);\n      },\n      onOffline: function(){\n        return p.onError(\"offline\");\n      },\n      onCompleted: function(result){\n        if (result.message === \"error\") {\n          return p.onError(result.error);\n        } else {\n          return p.onLoaded(result.newBase64String);\n        }\n      }\n    });\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/createAudioData/logAndAnalyseError/validateReencodedBase64/validate.ls","text":"(function(){\n  var hasValidated;\n  hasValidated = false;\n  return function(p){\n    var sendToServer, validateNewBase64, finish;\n    sendToServer = function(){\n      return inc(\"requestNewBase64String/request\")({\n        base64: p.base64,\n        onError: function(error){\n          return finish(error);\n        },\n        onLoaded: validateNewBase64\n      });\n    };\n    validateNewBase64 = function(newBase64String){\n      return inc(\"validateBase64String/validate\")({\n        base64String: newBase64String,\n        onError: function(error){\n          return finish(error);\n        },\n        onOk: function(){\n          return finish(\"newBase64IsOk\");\n        }\n      });\n    };\n    finish = function(result){\n      return p.onDone(result);\n    };\n    return sendToServer();\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/createAudioData/logAndAnalyseError/validateReencodedBase64/validateBase64String/validate.ls","text":"(function(){\n  return function(p){\n    var data, characters, numbers, i$, len$, i, c, array, error;\n    try {\n      data = p.base64String.split(\"base64,\")[1].trim();\n      characters = atob(data);\n      numbers = new Array(characters.length);\n      for (i$ = 0, len$ = characters.length; i$ < len$; ++i$) {\n        i = i$;\n        c = characters[i$];\n        numbers[i] = characters.charCodeAt(i);\n      }\n      array = new Uint8Array(numbers);\n      return sound.audioContext.decodeAudioData(array.buffer, p.onOk, p.onError);\n    } catch (e$) {\n      error = e$;\n      return p.onError(error.message);\n    }\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/sound/calcAnalyserData/calcAnalyserData.ls","text":"(function(){\n  var dataArray;\n  dataArray = new Uint8Array(32);\n  return function(analyser){\n    if (analyser.getByteFrequencyData == null) {\n      return;\n    }\n    analyser.getByteFrequencyData(dataArray);\n    return {\n      vol: _.max(dataArray) / 255,\n      fft: _.map(dataArray, function(i){\n        return i / 255;\n      }),\n      raw: dataArray\n    };\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/sound/createAnalyser/create.ls","text":"(function(){\n  return function(enableAnalyser){\n    var a;\n    if (!enableAnalyser) {\n      return;\n    }\n    a = sound.audioContext.createAnalyser();\n    a.fftSize = 64;\n    return a;\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/sound/createGain/create.ls","text":"(function(){\n  return function(gain){\n    var g;\n    g = sound.audioContext.createGain();\n    g.gain.value = gain != null ? gain : 1;\n    return g;\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/sound/createSource/create.ls","text":"(function(){\n  return function(audioData){\n    var source;\n    source = sound.audioContext.createBufferSource();\n    source.buffer = audioData;\n    return source;\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/sound/sound.ls","text":"(function(){\n  return function(p){\n    var source, gain, analyser, connectChain, disconnectChain, play, onFrame, onProgress, onTimeout, stop, fadeout;\n    source = inc(\"createSource/create\")(p.audioData);\n    gain = inc(\"createGain/create\")(p.gain);\n    analyser = inc(\"createAnalyser/create\")(p.enableAnalyser);\n    connectChain = function(){\n      source.connect(gain);\n      if (p.enableAnalyser) {\n        gain.connect(analyser);\n        return analyser.connect(sound.audioContext.destination);\n      } else {\n        return gain.connect(sound.audioContext.destination);\n      }\n    };\n    disconnectChain = function(){\n      source.disconnect(0);\n      gain.disconnect(0);\n      return analyser != null ? analyser.disconnect(0) : void 8;\n    };\n    play = function(){\n      p.startTime = new Date();\n      p.isPlaying = true;\n      source.loop = p.isLoop;\n      source.playbackRate.value = p.pitchFactor;\n      connectChain();\n      if (source.start) {\n        source.start(0);\n      } else if (source.play) {\n        source.play(0);\n      } else if (source.noteOn) {\n        source.noteOn(0);\n      }\n      if (!p.isLoop) {\n        p.timeout = setTimeout(onTimeout, p.duration);\n      }\n      return onFrame();\n    };\n    onFrame = function(){\n      p.currentTime = new Date() - p.startTime;\n      if (!p.isPlaying || p.currentTime >= p.duration) {\n        return;\n      }\n      onProgress();\n      return requestAnimationFrame(onFrame);\n    };\n    onProgress = function(){\n      var analyserData;\n      if (p.enableAnalyser) {\n        analyserData = inc(\"calcAnalyserData/calcAnalyserData\")(analyser);\n      }\n      return typeof p.onProgress == 'function' ? p.onProgress(p.currentTime, p.duration, analyserData) : void 8;\n    };\n    onTimeout = function(){\n      if (!p.isPlaying) {\n        return;\n      }\n      p.currentTime = p.duration;\n      stop();\n      return typeof p.onEnd == 'function' ? p.onEnd() : void 8;\n    };\n    stop = function(){\n      if (!p.isPlaying) {\n        return;\n      }\n      clearTimeout(p.timeout);\n      try {\n        source.stop();\n      } catch (e$) {}\n      disconnectChain();\n      onProgress();\n      return p.isPlaying = false;\n    };\n    fadeout = function(duration){\n      var step, interval;\n      if (!p.isPlaying) {\n        return;\n      }\n      p.isPlaying = false;\n      duration == null && (duration = 100);\n      step = gain.gain.value / duration;\n      return interval = setInterval(function(){\n        if (gain.gain.value > 0) {\n          return gain.gain.value -= step;\n        } else {\n          clearInterval(interval);\n          try {\n            source.stop();\n          } catch (e$) {}\n          return disconnectChain();\n        }\n      }, 1);\n    };\n    return {\n      play: play,\n      stop: stop,\n      fadeout: fadeout\n    };\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/createSoundParts/soundPart/soundPart.ls","text":"(function(){\n  return function(s, b, index, onInitialized){\n    var sp, ref$;\n    sp = {\n      index: index,\n      base64: b.base64,\n      gain: (ref$ = b.gain) != null ? ref$ : 1,\n      gainOriginal: (ref$ = b.gain) != null ? ref$ : 1,\n      pitchFactor: (ref$ = s.pitchFactor) != null ? ref$ : 1,\n      isLoop: (ref$ = s.isLoop) != null ? ref$ : false,\n      enableAnalyser: (ref$ = s.enableAnalyser) != null ? ref$ : false\n    };\n    sp.play = function(){\n      sp.sound = inc(\"sound/sound\")(sp);\n      return sp.sound.play();\n    };\n    sp.stop = function(){\n      return sp.sound.stop();\n    };\n    sp.fadeOut = function(d){\n      return sp.sound.fadeout(d);\n    };\n    inc(\"createAudioData/create\")(s, sp, onInitialized);\n    return sp;\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/logMissingAudioContext/log.ls","text":"(function(){\n  return function(){\n    var _log, eventName;\n    if (typeof log != 'undefined' && log !== null) {\n      _log = log;\n      eventName = \"debugMissingAudioContext\";\n    } else {\n      _log = deviceLog;\n      eventName = \"deviceDebugMissingAudioContext\";\n    }\n    return _log.log({\n      event: eventName,\n      page: app.currentPagePath,\n      debugEvents: app.audioContextDebugEvents\n    });\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/play/checkAndfixAudioContext/checkAndFix.ls","text":"(function(){\n  return function(onDone){\n    var a, s;\n    a = sound.audioContext;\n    s = a.state;\n    if (s === \"running\") {\n      return onDone();\n    } else if (s === \"suspended\" || s === \"interrupted\") {\n      return a.resume().then(function(){\n        return setTimeout(function(){\n          inc(\"logFix/log\")(s, a.state);\n          return onDone();\n        }, 100);\n      });\n    } else if (s === \"closed\") {\n      inc(\"/lib/util/audioContext/refresh/refresh\")();\n      return setTimeout(function(){\n        inc(\"logFix/log\")(s);\n        return onDone();\n      }, 100);\n    } else {\n      onDone();\n      return setTimeout(function(){\n        throw Error(\"unknown audioContext state\");\n      });\n    }\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"lib/util/sound/play/checkAndfixAudioContext/logFix/log.ls","text":"(function(){\n  return function(s, s2){\n    return typeof log != 'undefined' && log !== null ? log.log({\n      event: \"debugFixAudioContext\",\n      stateOld: s,\n      stateNew: sound.audioContext.state,\n      deviceLogId: Store(\"deviceLogId\")\n    }) : void 8;\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"pages/misc/deleteUser/_t.ls","text":"(function(){\n  return {\n    userWillBeDeletedText: {\n      de: \"Dein Nutzerkonto wurde zur Löschung vorgemerkt und wird am $1&nbsp;gelöscht.\",\n      en: \"Your account was marked for deletion and will be deleted on $1.\",\n      fr: \"La suppression de ton compte a été prise en compte.<br>Il sera supprimé le $1.\",\n      es: \"Tu solicitud de eliminación de cuenta ha sido registrada.<br>Tu cuenta se eliminará el $1.\",\n      pt: \"Sua solicitação para excluir esta conta foi registrada.<br>Sua conta será excluída em $1.\"\n    },\n    abortDeletion: {\n      de: \"Löschung abbrechen\",\n      en: \"Cancel deletion\",\n      fr: \"Annuler la suppression\",\n      es: \"Cancelar eliminación\",\n      pt: \"Cancelar exclusão\"\n    },\n    askAdminText: {\n      de: \"Du kannst dein Nutzerkonto nicht selbst löschen. Bitte den Administrator deiner Schule darum, dein Nutzerkonto zu löschen.\",\n      en: \"You can't delete your account by yourself. Please ask your school admin for help.\",\n      fr: \"Tu ne peux pas supprimer toi-même ton compte. Merci de demander de l'aide à la personne responsable de ton école.\",\n      es: \"No puedes eliminar tu cuenta tú solo. Por favor, pide ayuda a la administración de la escuela.\",\n      pt: \"Você não pode excluir sua conta por conta própria. Por favor, peça ajuda à administração da sua escola.\"\n    },\n    continueButton: {\n      de: \"Weiter\",\n      en: \"Continue\",\n      fr: \"Continuer\",\n      es: \"Continuar\",\n      pt: \"Continuar\"\n    },\n    confirmInfoText1Pupil: {\n      de: \"Möchtest du dein Nutzerkonto wirklich löschen?<br>Dein Lernfortschritt wird dann unwiderruflich gelöscht.\",\n      en: \"Are you sure you want to delete your account?<br>Your progress will then be irreversibly deleted.\",\n      fr: \"Tu veux vraiment supprimer ton compte&nbsp;?<br>L'historique de ce que tu as appris sera définitivement effacé.\",\n      es: \"¿Realmente quieres eliminar tu cuenta?<br>Tu progreso de aprendizaje será eliminado de manera definitiva.\",\n      pt: \"Tem certeza que deseja excluir sua conta?<br>Seu progresso de aprendizado será apagado de forma definitiva.\"\n    },\n    confirmInfoText1Teacher: {\n      de: \"Möchtest du dein Nutzerkonto wirklich löschen?<br>Alle Gruppen, in denen du die einzige Lehrkraft bist, werden dann unwiderruflich gelöscht.\",\n      en: \"Do you really want to delete your account?<br>All groups in which you are the only teacher will then be irreversibly deleted.\",\n      fr: \"Tu veux vraiment supprimer ton compte&nbsp;?<br>Tous les groupes dans lesquels tu es le·la seul·e professeur·e seront définitivement effacés.\",\n      es: \"¿Realmente quieres eliminar tu cuenta?<br>Todos los grupos en los que seas la o el único docente se borrarán de manera definitiva.\",\n      pt: \"Tem certeza que deseja excluir sua conta?      <br>Todos os grupos, nos quais você é o(a) único(a) professor(a), serão apagados de forma definitiva.\"\n    },\n    confirmInfoText2: {\n      de: \"Durch Klick auf \\\"Nutzerkonto löschen\\\" wird deine Löschung zunächst nur vorbereitet. In 30 Tagen wird dein Nutzerkonto dann endgültig gelöscht. Bis dahin hast du die Möglichkeit, den Löschvorgang jederzeit wieder abzubrechen.\",\n      en: \"Clicking on \\\"Delete account\\\" only starts the process of deleting your account. In 30 days, your account will be permanently deleted. Until this time you can cancel the deletion process and keep your account at any time.\",\n      fr: \"En appuyant sur “Supprimer le compte”, tu engages seulement la suppression de ton compte qui se fera 30 jours plus tard. Pendant 30 jours, tu pourras donc encore à tout moment annuler la suppression définitive de ton compte.\",\n      es: \"Al presionar \\\"Eliminar cuenta\\\", tu cuenta será marcada para su eliminación. Después de un periodo de 30 días, tu cuenta se eliminará definitivamente. Hasta ese momento, tienes la posibilidad de interrumpir el proceso de eliminación en cualquier momento.\",\n      pt: \"Ao clicar em \\\"Excluir conta\\\", sua conta será apenas marcada para ser excluída.Somente depois de um período de 30 dias, sua conta será excluída definitivamente.Até esse período, você terá a possibilidade de, a qualquer momento, interromper este processo.\"\n    },\n    markForDelete: {\n      de: \"Nutzerkonto löschen\",\n      en: \"Delete account\",\n      fr: \"Supprimer le compte\",\n      es: \"Eliminar cuenta\",\n      pt: \"Excluir conta\"\n    },\n    scheduledText: {\n      de: \"Dein Nutzerkonto wurde zur Löschung vorgemerkt.\",\n      en: \"Your account will be deleted in 30 days.\",\n      fr: \"Ton compte sera supprimé dans 30 jours.\",\n      es: \"Tu cuenta se eliminará en 30 días.\",\n      pt: \"Sua conta será excluída em 30 dias.\"\n    },\n    cancelledText: {\n      de: \"Dein Nutzerkonto wird nun nicht mehr gelöscht.\",\n      en: \"Your account will no longer be deleted.\",\n      fr: \"Ton compte ne sera plus supprimé.\",\n      es: \"Tu cuenta ya no será eliminada.\",\n      pt: \"Sua conta ainda não será excluída.\"\n    },\n    'continue': {\n      de: \"Weiter\",\n      en: \"Continue\",\n      fr: \"Continuer\",\n      es: \"Continuar\",\n      pt: \"Continuar\"\n    },\n    loginToDelete: {\n      de: \"Um dein Nutzerkonto zu löschen, musst du dich zuerst einloggen.\",\n      en: \"To delete your account, please log in and follow the instructions.\",\n      fr: \"Pour supprimer ton compte, tu dois d'abord te connecter.\",\n      es: \"Para eliminar tu cuenta, inicia sesión y sigue las instrucciones.\",\n      pt: \"Para excluir sua conta, primeiro você precisa efetuar o login.\"\n    }\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"pages/misc/deleteUser/page/calcDetails/calc.ls","text":"(function(){\n  return function(e, deletionDate, hasDirRole, onClose){\n    if (e) {\n      return {\n        text: T(\"userWillBeDeletedText\", deletionDate),\n        buttonLabel: T(\"abortDeletion\"),\n        tap: function(){\n          return inc(\"submit/submit\")(false, onClose);\n        }\n      };\n    } else if (hasDirRole) {\n      return {\n        text: T(\"askAdminText\"),\n        buttonLabel: T(\"continueButton\"),\n        tap: onClose\n      };\n    } else {\n      return {\n        text: [\n          inc(\"/../app01/data/user/isTeacher/get\")()\n            ? T(\"confirmInfoText1Teacher\")\n            : T(\"confirmInfoText1Pupil\"), \"<br><br>\", T(\"confirmInfoText2\")\n        ],\n        buttonLabel: T(\"markForDelete\"),\n        tap: function(){\n          return inc(\"submit/submit\")(true, onClose);\n        }\n      };\n    }\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"pages/misc/deleteUser/page/calcDetails/submit/popupResult/popup.ls","text":"(function(){\n  return function(mark, onClose){\n    return inc(\"/../app01/lib/gui/infoPopup/popup\")({\n      label: mark\n        ? T(\"scheduledText\")\n        : T(\"cancelledText\"),\n      buttonLabel: T(\"continue\"),\n      onClose: onClose\n    });\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"pages/misc/deleteUser/page/calcDetails/submit/submit.ls","text":"(function(){\n  return function(mark, onClose){\n    var spinnerOverlay;\n    spinnerOverlay = inc(\"/../app01/lib/gui/spinnerOverlay/overlay\")();\n    return inc(\"/../app01/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/user/markForDelete/mark\"),\n      params: {\n        mark: mark\n      },\n      onError: function(){\n        spinnerOverlay.remove();\n        return inc(\"/../app01/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        spinnerOverlay.remove();\n        return inc(\"/../app01/lib/offline/offlinePopup/popup\")();\n      },\n      onCompleted: function(){\n        spinnerOverlay.remove();\n        return log.sync(function(){\n          return inc(\"popupResult/popup\")(mark, onClose);\n        });\n      }\n    });\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"pages/misc/deleteUser/page/page.ls","text":"(function(){\n  return function(page){\n    var onClose;\n    onClose = function(){\n      return startPage({\n        history: -1,\n        animation: \"slideDown\"\n      });\n    };\n    return {\n      top: function(){\n        return inc(\"/addons/topbar2/topbar\")({\n          close: onClose\n        });\n      },\n      start: function(){\n        var e, deletionDate, ref$, hasDirRole, details;\n        e = log.findLast(\"markForDelete\");\n        deletionDate = (ref$ = inc(\"/../app01/lib/util/formatDate2/format\")(e != null ? e.dueDate : void 8)) != null ? ref$.formats.dateShort : void 8;\n        hasDirRole = _.find(inc(\"/../app01/data/school/calcSchoolDescriptions/calc\")(), \"dirRole\");\n        details = inc(\"calcDetails/calc\")(e, deletionDate, hasDirRole, onClose);\n        return page.css({\n          display: \"flex\",\n          flexDirection: \"column\",\n          margin: \"0 auto\",\n          maxWidth: \"30em\"\n        }).html(SvgIcon({\n          svg: path(\"/../app01/lib/svg/illustration/alert.svg\"),\n          size: \"5em\"\n        }).css({\n          padding: \"1em\"\n        }), Div({\n          padding: \"1em\"\n        }).html(details.text), Button({\n          label: details.buttonLabel\n        }).css({\n          margin: \"1em\"\n        }).tap(details.tap));\n      }\n    };\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"pages/start/startUser/08_start/isRememberDeletionPageRedirect/is.ls","text":"(function(){\n  return function(){\n    var ref$, ref1$;\n    return engine.rememberDeletionPageRedirect != null && new Date() - new Date((ref$ = engine.rememberDeletionPageRedirect) != null ? ref$.setAt : void 8) < 20 * 60 * 1000 && new Date(log.findLast(\"setNewUser\").created) - new Date((ref1$ = engine.rememberDeletionPageRedirect) != null ? ref1$.setAt : void 8) < 0;\n  };\n})();","updated":"2024-07-11T12:32:31.785794"},{"path":"pages/misc/deleteUser/start.ls","text":"(function(){\n  return function(){\n    if (typeof log != 'undefined' && log !== null) {\n      return startPage({\n        path: path(\"page/page\"),\n        animation: \"slideUp\"\n      });\n    } else {\n      engine.rememberDeletionPageRedirect = {};\n      engine.rememberDeletionPageRedirect.setAt = new Date();\n      return inc(\"/lib/gui/infoPopup/popup\")({\n        label: T(\"loginToDelete\"),\n        onClose: function(){\n          inc(\"/lib/gui/toast/toast\")({\n            label: T(\"loginToDelete\")\n          });\n          return startPage({\n            path: path(\"/../app01-welcome/pages/welcome/page\")\n          });\n        }\n      });\n    }\n  };\n})();","updated":"2024-07-11T13:39:21.665694"},{"path":"addons/_translationOverlayButtonBar/translateButton/svg/icon1.svg","text":"<svg width=\"181\" height=\"156\" viewBox=\"0 0 181 156\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M146.948 49.6964L106.491 11.3524L113.625 0.312862L180.521 63.7147H7.37213V49.6964H146.948ZM-0.00927734 92.571H173.139V106.589H33.5636L74.0208 144.933L66.8867 155.973L-0.00927734 92.571Z\" fill=\"black\"/>\n</svg>\n","updated":"2024-08-22T11:25:34.857308"},{"path":"addons/topbar2/tools/download/overlay/overlay.ls","text":"(function(){\n  return function(params){\n    var items, adjustXY;\n    items = inc(\"items/items\")(params.downloadManager, params.id);\n    adjustXY = _.includes(screen.orientation, \"landscape\") ? \"-9 -3\" : \"10 -3\";\n    return OverlayMenu({\n      referenceDiv: params.div,\n      items: items,\n      direction: \"down left\",\n      adjustXY: adjustXY\n    });\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"lib/util/downloadManager/removeFiles/remove.ls","text":"(function(){\n  return function(manager, id, onDone){\n    var fileFolder, cordovaDir, ref$, localFolder, totalTries, waitForDownloadStop, removeDir, onRemoved;\n    if (!engine.isMobileApp) {\n      if (typeof onDone == 'function') {\n        onDone();\n      }\n      return;\n    }\n    fileFolder = \"content/\" + id;\n    cordovaDir = (ref$ = cordova.file.externalDataDirectory) != null\n      ? ref$\n      : cordova.file.dataDirectory;\n    localFolder = _.replace(cordovaDir, \"file://\", \"\") + fileFolder;\n    totalTries = 0;\n    waitForDownloadStop = function(){\n      var planInfo;\n      planInfo = manager.getPlanInfo(id);\n      totalTries++;\n      if (totalTries > 40) {} else if (planInfo.status !== \"disabled\") {} else if (planInfo.currentlyLoadingLevelsTotal > 0) {\n        return setTimeout(function(){\n          return waitForDownloadStop();\n        }, 500);\n      } else {\n        return setTimeout(function(){\n          return removeDir();\n        }, 200);\n      }\n    };\n    removeDir = function(){\n      if ((typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.removeDirectory : void 8) != null) {\n        return SolocodePlugin.removeDirectory(localFolder, onRemoved, onRemoved);\n      } else {\n        return app.fileSystem.removeDir(fileFolder, onRemoved);\n      }\n    };\n    onRemoved = function(error){\n      inc(\"/lib/util/fileDirectoryList/clearListCache/clear\")();\n      return typeof onDone == 'function' ? onDone() : void 8;\n    };\n    return waitForDownloadStop();\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/snowballBattle/_t.ls","text":"(function(){\n  return {\n    manualDesktop: {\n      de: \"Ziele mit der Maus und klicke, um einen Schneeball zu werfen. Hast du keine Schneebälle mehr, klicke unten links, um neue zu formen.\",\n      en: \"Use the mouse to aim and click to throw a snowball.If you run out of snowballs, click the bottom left of the screen to make some new ones.\",\n      fr: \"Utilise la souris pour viser et clique pour lancer une boule de neige.Si tu n'as plus de boules, clique en bas à gauche de ton écran pour en faire de nouvelles.\",\n      es: \"Apunta con el cursor y presiona el ratón para lanzar una bola de nieve.Si se te terminan las bolas de nieve, haz clic en la parte inferior izquierda para hacer más.\",\n      pt: \"Deslize o mouse para mirar e clique para atirar uma bola de neve. Se suas bolas de neve acabam, clique no canto inferior esquerdo para fazer mais bolas.\"\n    },\n    manual: {\n      de: \"Tippe auf den Bildschirm, um einen Schneeball zu werfen.Hast du keine Schneebälle mehr, tippe unten links, um neue zu formen.\",\n      en: \"Tap the screen to throw snowballs.If you run out of snowballs, tap the bottom left of the screen to make some new ones.\",\n      fr: \"Appuie sur l'écran pour viser et lancer une boule de neige.Si tu n'as plus de boules, appuie en bas à gauche de ton écran pour en faire de nouvelles.\",\n      es: \"Presiona la pantalla para lanzar una bola de nieve.Si se te terminan las bolas de nieve, presiona la parte inferior izquierda de la pantalla para hacer más.\",\n      pt: \"Toque na tela para atirar uma bola de neve. Se suas bolas de neve acabarem, toque no canto inferior esquerdo para fazer mais bolas.\"\n    }\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"lib/gui/parentalGatePreschool/_t.ls","text":"(function(){\n  return {\n    label: {\n      de: \"Wie viel ist $1 + $2?\",\n      en: \"What is $1 + $2?\",\n      fr: \"Combien font $1 + $2&nbsp;?\",\n      es: \"¿Cuánto es $1 + $2?\",\n      pt: \"Quanto é $1 + $2?\"\n    }\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"pages/level/afterFinish/pages/newCoin/appRating/02_5-mobile/openAppRatePlugin/open.ls","text":"(function(){\n  return function(callback){\n    var storeName, isAmazonFire;\n    if (typeof AppRate == 'undefined' || AppRate === null) {\n      debug(\"Warning: AppRate isn't loaded. Please investigate!\");\n      return;\n    }\n    storeName = engine.isAndroidApp\n      ? T(\"playStore\")\n      : engine.isAmazonDevice\n        ? T(\"amazonAppStore\")\n        : T(\"appStore\");\n    isAmazonFire = engine.isAmazonDevice;\n    AppRate.preferences = {\n      inAppReview: true,\n      displayAppName: 'ANTON',\n      openStoreInApp: true,\n      simpleMode: true,\n      promptAgainForEachNewVersion: true,\n      storeAppURL: {\n        ios: '1180554775',\n        android: isAmazonFire ? \"amzn://apps/android?p=com.solocode.anton\" : 'market://details?id=com.solocode.anton'\n      },\n      customLocale: {\n        title: T(\"pleaseRate\", storeName),\n        message: T(\"pleaseRateMessage\"),\n        cancelButtonLabel: T(\"noThanks\"),\n        laterButtonLabel: T(\"rateLater\"),\n        rateButtonLabel: T(\"rateNow\"),\n        yesButtonLabel: T(\"yes\"),\n        noButtonLabel: T(\"no\"),\n        appRatePromptMessage: T(\"pleaseRateGood\"),\n        feedbackPromptMessage: T(\"pleaseGiveFeedback\"),\n        appRatePromptTitle: T(\"pleaseRatePrompt\"),\n        feedbackPromptTitle: T(\"pleaseGiveFeedback\")\n      },\n      callbacks: {\n        handleNegativeFeedback: function(){\n          return debug('negative feedback');\n        },\n        onRateDialogShow: function(cb){\n          return cb(0);\n        },\n        onButtonClicked: function(buttonIndex){\n          var message;\n          message = (function(){\n            switch (buttonIndex) {\n            case 1:\n              return 'yes';\n            case 2:\n              return 'later';\n            case 3:\n              return 'no';\n            }\n          }());\n          if (message) {\n            return callback({\n              appRateChoice: message\n            });\n          }\n        }\n      },\n      openUrl: AppRate.preferences.openUrl\n    };\n    return AppRate.navigateToAppStore();\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"lib/gui/divEditable/tapCustomSelect/calcSublines/calc.ls","text":"(function(){\n  return function(lineDiv, rectangles){\n    var lines, lineIndex, pRect, lastLineBottom, i$, len$, r, line, i, l;\n    lines = [];\n    lineIndex = 0;\n    pRect = lineDiv.getClientRects()[0];\n    lastLineBottom = -100000;\n    for (i$ = 0, len$ = rectangles.length; i$ < len$; ++i$) {\n      r = rectangles[i$];\n      if (r.rect.top >= lastLineBottom) {\n        lines.push(line = {\n          rects: [],\n          lineIndex: lineIndex++\n        });\n      }\n      lastLineBottom = r.rect.bottom;\n      line.topMin = Math.min(r.rect.top, line.topMin || 100000);\n      line.bottomMax = Math.max(r.rect.bottom, line.bottomMax || 0);\n      line.rects.push(r);\n    }\n    for (i$ = 0, len$ = lines.length; i$ < len$; ++i$) {\n      i = i$;\n      l = lines[i$];\n      l.left = pRect.left;\n      l.right = pRect.right;\n      l.top = i === 0\n        ? pRect.top\n        : l.topMin - (l.topMin - lines[i - 1].bottomMax) / 2;\n      l.bottom = i === lines.length - 1\n        ? pRect.bottom\n        : l.bottomMax + (lines[i + 1].topMin - l.bottomMax) / 2;\n    }\n    return lines;\n  };\n})();","updated":"2024-09-05T09:52:17.078478"},{"path":"addons/topbarWhiteBack/topbar.ls","text":"(function(){\n  return function(o){\n    var div;\n    o == null && (o = {});\n    app.currentPage.top.css({\n      boxShadow: \"\"\n    });\n    div = Div().addClass(\"topBar\").html(Div().html(inc(\"backIcon/icon\")(o), inc(\"closeIcon/icon\")(o)));\n    app.currentPage.topbar = div;\n    return div;\n  };\n})();","updated":"2024-09-13T10:07:47.205424"},{"path":"lib/gui/divEditable/updateLineNumbers/update.ls","text":"(function(){\n  return function(d){\n    var i$, ref$, len$, i, l;\n    for (i$ = 0, len$ = (ref$ = d.div.children).length; i$ < len$; ++i$) {\n      i = i$;\n      l = ref$[i$];\n      l.lineNumber = i;\n    }\n    return inc(\"../lineHeightSpacing/fix/fix\")(d);\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"addons/topbar2/_t.ls","text":"(function(){\n  return {\n    search: {\n      de: \"Suchen\",\n      en: \"Search\",\n      fr: \"Rechercher\",\n      es: \"Buscar\",\n      pt: \"Buscar\"\n    },\n    menu: {\n      de: \"Menü\",\n      en: \"Menu\",\n      fr: \"Menu\",\n      es: \"Menú\",\n      pt: \"Menu\"\n    },\n    more: {\n      de: \"mehr\",\n      en: \"more\",\n      fr: \"plus\",\n      es: \"más\",\n      pt: \"mais\"\n    },\n    preview: {\n      de: \"Vorschau\",\n      en: \"Preview\",\n      fr: \"Aperçu\",\n      es: \"Vista previa\",\n      pt: \"Pré-visualização\"\n    },\n    activateDownload: {\n      de: \"Download aktivieren\",\n      en: \"Download\",\n      fr: \"Activer le téléchargement\",\n      es: \"Activar descarga\",\n      pt: \"Ativar download\"\n    },\n    downloadExplanationPlan: {\n      de: \"Die Lerninhalte von diesem Fach werden heruntergeladen und können offline gelernt werden.\",\n      en_gb: \"This subject's content will be downloaded and will be accessible offline.\",\n      en: \"This subject's content will be downloaded and can then be accessed offline.\",\n      fr: \"Le contenu d'apprentissage de cette matière sera téléchargé et accessible sans connexion Internet.\",\n      es: \"Se descargará el contenido de esta materia y podrá utilizarse sin conexión.\",\n      pt: \"Os conteúdos desta matéria serão baixados e poderão ser estudados em modo offline.\"\n    },\n    downloadExplanationGroup: {\n      de: \"Die Lerninhalte von dieser Gruppe werden heruntergeladen und können offline gelernt werden.\",\n      en_gb: \"This group's content will be downloaded and will be accessible offline.\",\n      en: \"This group's content will be downloaded and can then be accessed offline.\",\n      fr: \"Le contenu d'apprentissage de ce groupe sera téléchargé et accessible sans connexion Internet.\",\n      es: \"Se descargará el contenido del grupo y podrá utilizarse sin conexión.\",\n      pt: \"Os conteúdos deste grupo serão baixados e poderão ser estudados em modo offline.\"\n    }\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"lib/util/downloadManager/loadPendingLevels/loadNextPendingLevel/load.ls","text":"(function(){\n  return function(p){\n    var plan, manager, nextLevel, isRetry, loadNextLevelAndMedia, onNextLevelLoaded, onNextLevelError, finish;\n    plan = p.plan;\n    manager = p.manager;\n    nextLevel = p.plan.pendingLevels.shift();\n    isRetry = false;\n    plan.status = \"loading\";\n    plan.currentlyLoadingLevelsTotal++;\n    manager.currentlyLoadingLevels++;\n    loadNextLevelAndMedia = function(){\n      return inc(\"loadLevelAndMedia/load\")({\n        level: nextLevel,\n        plan: p.plan.plan,\n        onLoaded: onNextLevelLoaded,\n        onError: onNextLevelError\n      });\n    };\n    onNextLevelLoaded = function(){\n      plan.pendingLevelsCompletedTotal++;\n      return finish();\n    };\n    onNextLevelError = function(errors){\n      if (_.find(errors, {\n        error: \"offline\"\n      })) {\n        if (inc(\"/../app01/lib/util/isOnline/isOnline\")() && !isRetry) {\n          isRetry = true;\n          return setTimeout(loadNextLevelAndMedia, 500);\n        } else {\n          p.plan.pendingLevels.push(nextLevel);\n          plan.status = \"offline\";\n          return finish();\n        }\n      } else {\n        plan.pendingLevelsCompletedTotal++;\n        return finish();\n      }\n    };\n    finish = function(){\n      manager.currentlyLoadingLevels--;\n      plan.currentlyLoadingLevelsTotal--;\n      manager.updateDom(plan.id);\n      if (plan.pendingLevelsCompletedTotal === plan.pendingLevelsStartTotal) {\n        manager.completePlan(plan.id);\n      }\n      return p.onDone();\n    };\n    return loadNextLevelAndMedia();\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"addons/topbar2/tools/download/overlay/items/more/more.ls","text":"(function(){\n  return function(){\n    var click;\n    click = function(){\n      return startPage({\n        path: path(\"/../app01-settings/rows/downloadManager/pagePlans/page\")\n      });\n    };\n    return Div({\n      margin: \"0.5em 0 0 0\",\n      textAlign: \"right\",\n      fontSize: \"0.9em\"\n    }).html(inc(\"/lib/gui/link/link\")(T(\"more\"))).tap(click);\n  };\n})();","updated":"2025-04-01T08:46:53.219128"},{"path":"pages/content/plan/_topbar/menu/items/items.ls","text":"(function(){\n  return function(){\n    var pds, enableGrouping, items, pd;\n    pds = inc(\"/data/content/calcPlanDescriptions/calc\")();\n    enableGrouping = twitch({\n      de: true,\n      en: true,\n      fr: true,\n      es: true,\n      pt: true\n    });\n    items = enableGrouping\n      ? inc(\"itemsFolder\")(pds)\n      : (function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = pds).length; i$ < len$; ++i$) {\n          pd = ref$[i$];\n          results$.push(inc(\"item/item\")(pd));\n        }\n        return results$;\n      }());\n    return items;\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"pages/level/_shared/loadMediaFiles/load.ls","text":"(function(){\n  return function(p){\n    var slides, totalDone, errors, trainersWithReviewSounds, loadSlides, onSlideDone, finish;\n    slides = p.level.slides;\n    totalDone = 0;\n    errors = [];\n    trainersWithReviewSounds = app.ide || engine.isBotMode\n      ? []\n      : [\"soundButtons\", \"dragMatch\", \"dragGroup\", \"selectCard\"];\n    loadSlides = function(){\n      var i$, ref$, len$, s, skipSounds, results$ = [];\n      for (i$ = 0, len$ = (ref$ = slides).length; i$ < len$; ++i$) {\n        s = ref$[i$];\n        skipSounds = !in$(s.trainerParams.trainer, trainersWithReviewSounds);\n        results$.push(s.loadMediaFiles({\n          onDone: onSlideDone,\n          onError: onSlideDone,\n          skipSounds: skipSounds\n        }));\n      }\n      return results$;\n    };\n    onSlideDone = function(slideErrors){\n      if (slideErrors) {\n        errors = _.concat(errors, slideErrors);\n      }\n      totalDone++;\n      if (totalDone === slides.length) {\n        return finish();\n      }\n    };\n    finish = function(){\n      if (errors.length > 0) {\n        return p.onError(errors);\n      } else {\n        return p.onLoaded(p.level);\n      }\n    };\n    return loadSlides();\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2024-08-22T11:25:34.857308"},{"path":"lib/util/downloadManager/getDownloadBar/calcSize/calc.ls","text":"(function(){\n  return function(id){\n    var cordovaDir, ref$, planPath, calcContentFolderSize, onResult, div, spinner;\n    if (!engine.isMobileApp) {\n      return inc(\"dummyDiv/div\")();\n    }\n    cordovaDir = (ref$ = cordova.file.externalDataDirectory) != null\n      ? ref$\n      : cordova.file.dataDirectory;\n    planPath = _.replace(cordovaDir, \"file://\", \"\") + \"content/\" + id;\n    calcContentFolderSize = function(){\n      return SolocodePlugin.sizeOfFileAtPath(planPath, function(result){\n        return onResult(result);\n      }, function(error){\n        return debug(\"calc size error\", error);\n      });\n    };\n    onResult = function(occupiedSpace){\n      occupiedSpace = Math.round(occupiedSpace / 1024 / 1024);\n      spinner.remove();\n      return div.html(occupiedSpace + \" MB\");\n    };\n    div = Div().html(spinner = inc(\"/lib/gui/spinner/spinner\")({\n      color: Color.black\n    }).css({\n      verticalAlign: \"-0.4em\",\n      width: \"0.8em\",\n      padding: \"0 0.5em\"\n    }));\n    calcContentFolderSize();\n    return div;\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"lib/util/downloadManager/getDownloadBar/calcSize/dummyDiv/div.ls","text":"(function(){\n  return function(){\n    return Div().html(\"111 MB\", SvgIcon({\n      svg: path(\"/../app01/lib/svg/shape/debug.svg\"),\n      color: Color.black\n    }).css({\n      verticalAlign: \"-0.15em\",\n      marginLeft: \"0.2em\"\n    }));\n  };\n})();","updated":"2024-08-22T11:25:34.857308"},{"path":"lib/gui/divEditable/lineHeightSpacing/init/init.ls","text":"(function(){\n  return function(d){\n    if (!d.lineHeightSpacingMode) {\n      return;\n    }\n    if (d.lineHeightRoundToInteger) {\n      throw Error(\"lineHeightSpacingMode requires lineHeightRoundToInteger = false\");\n    }\n    return d.div.css({\n      overflow: \"hidden\"\n    }).bind(\"scroll\", function(e){\n      e.preventDefault();\n      e.stopImmediatePropagation();\n      d.div.scrollTop = 0;\n      return d.div.scrollLeft = 0;\n    });\n  };\n})();","updated":"2024-08-22T14:45:55.670055"},{"path":"lib/gui/divEditable/lineHeightSpacing/fix/calcFontBaselineShift/calc.ls","text":"(function(){\n  var cache;\n  cache = {};\n  return function(fontFamily){\n    var that, div, span1, span2, span3, span4, yDelta1, yDelta2, yDif, shiftEm;\n    if ((that = cache[fontFamily]) != null) {\n      return that;\n    }\n    div = Div({\n      fontFamily: \"Source Sans Pro Solocode\",\n      fontSize: \"100px\"\n    }).html(Div().html(span1 = Span().html(\".\"), span2 = Span({\n      fontFamily: fontFamily\n    }).html(\".\")), Div({\n      display: \"flex\",\n      alignItems: \"flex-start\"\n    }).html(Div().html(span3 = Span().html(\".\")), Div({\n      fontFamily: fontFamily\n    }).html(span4 = Span().html(\".\")))).appendTo(body);\n    yDelta1 = span2.offset().top - span1.offset().top;\n    yDelta2 = span4.offset().top - span3.offset().top;\n    yDif = yDelta1 - yDelta2;\n    shiftEm = yDif / 100;\n    div.remove();\n    return cache[fontFamily] = shiftEm;\n  };\n})();","updated":"2024-08-23T12:51:16.112759"},{"path":"lib/gui/divEditable/lineHeightSpacing/fix/fix.ls","text":"(function(){\n  return function(d){\n    var lineHeight, referenceLineHeight, marginFix, fontBaselineShift, lineDivs, i$, len$, div;\n    if (!d.lineHeightSpacingMode) {\n      return;\n    }\n    lineHeight = d.lineHeight;\n    lineHeight = +lineHeight.split(\"em\").join(\"\");\n    referenceLineHeight = 1.3;\n    marginFix = -(lineHeight - referenceLineHeight) / 2;\n    fontBaselineShift = inc(\"calcFontBaselineShift/calc\")(d.fontFamily);\n    lineDivs = d.div.children;\n    for (i$ = 0, len$ = lineDivs.length; i$ < len$; ++i$) {\n      div = lineDivs[i$];\n      div.css({\n        marginTop: \"\",\n        marginBottom: \"\"\n      });\n    }\n    _.first(lineDivs).css({\n      marginTop: marginFix + fontBaselineShift + \"em\"\n    });\n    return _.last(lineDivs).css({\n      marginBottom: marginFix - fontBaselineShift + \"em\"\n    });\n  };\n})();","updated":"2024-08-23T12:51:16.112759"},{"path":"pages/level/finishLevel/_shared/calcCharacter/characters/characters-en.ls","text":"(function(){\n  return function(){\n    var characters, now, charactersXmas;\n    characters = [\n      {\n        pixi: 'female',\n        voice: \"f7Us_override_HF\"\n      }, {\n        pixi: 'male-asia',\n        voice: \"m5Us_override_RY\"\n      }, {\n        pixi: 'male',\n        voice: \"m5Us_override_JG\"\n      }, {\n        pixi: 'female-afro',\n        voice: \"f8Us_override_AX\"\n      }, {\n        pixi: 'male-india',\n        voice: \"m3Us_override_FB\"\n      }, {\n        pixi: 'male-afro',\n        voice: \"m3Us_override_RY\"\n      }, {\n        pixi: 'female-asia',\n        voice: \"f6Us_override_EK\"\n      }, {\n        pixi: 'female-india',\n        voice: \"f6Us_override_SR\"\n      }, {\n        pixi: 'pig',\n        voice: \"f8Us_override_MR\"\n      }, {\n        pixi: 'cow',\n        voice: \"m4Us_override_DR\"\n      }, {\n        pixi: 'super-f',\n        voice: \"f8Us_override_SR\"\n      }, {\n        pixi: 'super',\n        voice: \"m4Us_override_DR\"\n      }\n    ];\n    now = inc(\"/lib/util/formatDate2/format\")();\n    if (now.specialDays.isChristmasPeriod) {\n      charactersXmas = [\n        {\n          pixi: 'xmas',\n          voice: \"m4Us_override_DR\"\n        }, {\n          pixi: 'xmas-f',\n          voice: \"f8Us_override_AX\"\n        }\n      ];\n      characters = charactersXmas.concat(characters);\n    }\n    return characters;\n  };\n})();","updated":"2024-08-26T13:44:32.232452"},{"path":"data/content/calcPlanDescriptions/isPlanVisible/is.ls","text":"(function(){\n  return function(showAll, isBeta, plan){\n    var ref$, isDebugVisible, isBetaVisible;\n    if (showAll) {\n      return true;\n    }\n    if (plan.isOutdated) {\n      return false;\n    }\n    if (!_.includes((ref$ = plan.guiLanguages) != null\n      ? ref$\n      : [\"de\"], engine.guiLanguage)) {\n      return false;\n    }\n    if (plan.isDebug || plan.isBeta) {\n      isDebugVisible = plan.isDebug && engine.isDebug;\n      isBetaVisible = plan.isBeta && isBeta;\n      return isDebugVisible || isBetaVisible;\n    }\n    return true;\n  };\n})();","updated":"2024-08-28T13:21:03.069966"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hiddenThings/_t.ls","text":"(function(){\n  return {\n    manual: {\n      de: \"Finde alle versteckten Eier. Wenn du nicht weiterkommst, tippe auf die Lupe, um einen Tipp zu bekommen.\",\n      en: \"Find all the hidden eggs. Tap on the magnifying glass for help.\",\n      fr: \"Trouve tous les œufs cachés. Appuie sur la loupe si tu as besoin d’aide.\",\n      es: \"Encuentra todos los huevos escondidos. Presiona la lupa para obtener una pista.\",\n      pt: \"Encontre todos os ovos escondidos. Se precisar de ajuda, toque na lupa para obter dicas.\"\n    },\n    manualDesktop: {\n      de: \"Finde alle versteckten Eier. Wenn du nicht weiterkommst, klicke auf die Lupe, um einen Tipp zu bekommen.\",\n      en: \"Find all the hidden eggs. Click on the magnifying glass for help.\",\n      fr: \"Trouve tous les œufs cachés. Clique sur la loupe si tu as besoin d’aide.\",\n      es: \"Encuentra todos los huevos escondidos. Si no logras avanzar, presiona la lupa y obtendrás una pista.\",\n      pt: \"Encontre todos os ovos escondidos. Se precisar de ajuda, clique na lupa para obter dicas.\"\n    },\n    title: {\n      de: \"Hidden\",\n      en: \"Hidden\",\n      fr: \"Hidden\",\n      es: \"Hidden\",\n      pt: \"Hidden\"\n    },\n    sceneMeadow: {\n      de: \"Auf der Wiese\",\n      en: \"Meadow\",\n      fr: \"Dans le jardin\",\n      es: \"En la pradera\",\n      pt: \"No gramado\"\n    },\n    sceneJungle: {\n      de: \"Im Dschungel\",\n      en: \"Jungle\",\n      fr: \"Dans la jungle\",\n      es: \"En la selva\",\n      pt: \"Na selva\"\n    },\n    sceneUnderwater: {\n      de: \"Unter Wasser\",\n      en: \"Underwater\",\n      fr: \"Sous l’eau\",\n      es: \"Bajo el agua\",\n      pt: \"Debaixo d´água\"\n    },\n    sceneHome: {\n      de: \"Zuhause\",\n      en: \"Home\",\n      fr: \"Dans la maison\",\n      es: \"En casa\",\n      pt: \"Em casa\"\n    }\n  };\n})();","updated":"2024-08-29T09:14:35.863425"},{"path":"addons/topbarLevel/hint/hint/content/speaker/updateAvatarTalk/update.ls","text":"(function(){\n  return function(speaker){\n    var play, stop;\n    play = speaker.play;\n    stop = speaker.stop;\n    speaker.play = function(){\n      var avatarTalk, ref$;\n      avatarTalk = (ref$ = body.findFirst(\".topHint\")) != null ? ref$.findFirst(\".avatarTalk\") : void 8;\n      return play(function(){\n        return avatarTalk != null ? avatarTalk.stop() : void 8;\n      }, function(progressInfo){\n        return avatarTalk != null ? avatarTalk.animateMouth(progressInfo) : void 8;\n      });\n    };\n    return speaker.stop = function(){\n      var avatarTalk, ref$;\n      avatarTalk = (ref$ = body.findFirst(\".topHint\")) != null ? ref$.findFirst(\".avatarTalk\") : void 8;\n      if (avatarTalk != null) {\n        avatarTalk.stop();\n      }\n      return stop();\n    };\n  };\n})();","updated":"2024-08-29T09:14:35.863425"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hiddenThingsHalloween/_t.ls","text":"(function(){\n  return {\n    manual: {\n      de: \"Finde alle versteckten Kürbisse. Wenn du nicht weiterkommst, tippe auf die Lupe, um einen Tipp zu bekommen.\",\n      en: \"Find all the hidden pumpkins. Tap on the magnifying glass for help.\",\n      fr: \"Trouve toutes les citrouilles cachées. Appuie sur la loupe si tu as besoin d’aide.\",\n      es: \"Encuentra todas las calabazas escondidas. Presiona la lupa para obtener una pista.\",\n      pt: \"Encontre todas as abóboras escondidas. Se precisar de ajuda, toque na lupa para obter dicas.\"\n    },\n    manualDesktop: {\n      de: \"Finde alle versteckten Kürbisse. Wenn du nicht weiterkommst, klicke auf die Lupe, um einen Tipp zu bekommen.\",\n      en: \"Find all the hidden pumpkins. Click on the magnifying glass for help.\",\n      fr: \"Trouve toutes les citrouilles cachées. Clique sur la loupe si tu as besoin d’aide.\",\n      es: \"Encuentra todas las calabazas escondidas. Si no logras avanzar, presiona la lupa y obtendrás una pista.\",\n      pt: \"Encontre todas as abóboras escondidas. Se precisar de ajuda, clique na lupa para obter dicas.\"\n    },\n    title: {\n      de: \"Hidden\",\n      en: \"Hidden\",\n      fr: \"Hidden\",\n      es: \"Hidden\",\n      pt: \"Hidden\"\n    },\n    sceneMeadow: {\n      de: \"Auf der Wiese\",\n      en: \"Meadow\",\n      fr: \"Dans l’herbe\",\n      es: \"En el campo\",\n      pt: \"No gramado\"\n    },\n    sceneMansion: {\n      de: \"In der alten Villa\",\n      en: \"Old Mansion\",\n      fr: \"Dans le vieux manoir\",\n      es: \"En la vieja mansión\",\n      pt: \"Na velha mansão\"\n    },\n    sceneSpace: {\n      de: \"Im Weltall\",\n      en: \"Space\",\n      fr: \"Dans l'espace\",\n      es: \"En el espacio\",\n      pt: \"No espaço\"\n    },\n    sceneHome: {\n      de: \"Zuhause\",\n      en: \"Home\",\n      fr: \"Dans la maison\",\n      es: \"En casa\",\n      pt: \"Em casa\"\n    }\n  };\n})();","updated":"2024-08-29T09:14:35.863425"},{"path":"lib/util/calcTestVariant/calc.ls","text":"(function(){\n  return function(o){\n    var id, ref$, s, md5, t, i$, len$, n, i;\n    id = (ref$ = o.id) != null\n      ? ref$\n      : Store(\"sourceId\");\n    s = o.testName + id;\n    md5 = inc(\"/lib/util/md5/md5\")(s);\n    t = 0;\n    for (i$ = 0, len$ = md5.length; i$ < len$; ++i$) {\n      n = md5[i$];\n      t += n.charCodeAt(0);\n    }\n    i = t % o.testVariants.length;\n    return o.testVariants[i];\n  };\n})();","updated":"2025-11-07T08:37:45.209973"},{"path":"addons/_translationOverlayButtonBar/translateButton/tap/tap.ls","text":"(function(){\n  return function(page, button){\n    var isLoaded, ref$, showOverlay;\n    isLoaded = (ref$ = projects.info()[\"app01-translation-overlay\"]) != null ? ref$.isLoaded : void 8;\n    showOverlay = function(){\n      return inc(\"showOverlay/show\")(page, button);\n    };\n    button.css({\n      pointerEvents: \"none\"\n    });\n    if (!isLoaded) {\n      button.prepend(button.spinner = inc(\"/../app01/lib/gui/spinner/spinner\")({\n        small: true\n      }).css({\n        padding: \"0 0.3em\"\n      }));\n      return inc(\"/../app01/lib/util/loadProject/load\")(\"app01-translation-overlay\", function(){\n        var ref$;\n        if ((ref$ = projects.info()[\"app01-translation-overlay\"]) != null && ref$.isLoaded) {\n          return showOverlay();\n        } else {\n          return inc(\"/../app01/lib/offline/offlinePopup/popup\")();\n        }\n      });\n    } else {\n      return showOverlay();\n    }\n  };\n})();","updated":"2025-11-07T08:37:45.209973"},{"path":"addons/_translationOverlayButtonBar/translateButton/tap/showOverlay/show.ls","text":"(function(){\n  return function(page, button){\n    var that;\n    if (that = button.spinner) {\n      that.remove();\n    }\n    button.css({\n      pointerEvents: \"\"\n    });\n    return inc(\"/../app01-translation-overlay/overlay/overlay\")(page);\n  };\n})();","updated":"2025-11-07T08:37:45.209973"},{"path":"addons/navbar/bar/user/user/items/itemTeacherProgress/badge/badge.ls","text":"(function(){\n  return function(){\n    var numberOfRemainingAchievements;\n    numberOfRemainingAchievements = inc(\"calcNumberOfRemainingAchievements/calc\")();\n    if (numberOfRemainingAchievements > 0) {\n      return inc(\"../../../_badge/badge\")({\n        badgeNumber: numberOfRemainingAchievements\n      });\n    }\n  };\n})();","updated":"2025-11-07T08:37:45.209973"},{"path":"addons/navbar/bar/user/user/items/itemTeacherProgress/badge/calcNumberOfRemainingAchievements/calc.ls","text":"(function(){\n  return function(){\n    var achievementIds, isAchieved, remainingAchievements, i$, len$, id;\n    if (!inc(\"../../calcShowTeacherProgress/calc\")()) {\n      return null;\n    }\n    achievementIds = inc(\"/../app01-teacher-progress/_achievementIds/achievementIds\");\n    isAchieved = function(id){\n      return log.findLast({\n        event: \"setAchievement\",\n        value: id\n      }) != null;\n    };\n    remainingAchievements = [];\n    for (i$ = 0, len$ = achievementIds.length; i$ < len$; ++i$) {\n      id = achievementIds[i$];\n      if (isAchieved(id)) {\n        continue;\n      }\n      remainingAchievements.push(id);\n    }\n    return remainingAchievements.length;\n  };\n})();","updated":"2025-11-07T08:37:45.209973"},{"path":"addons/navbar/bar/user/user/items/itemTeacherProgress/item.ls","text":"(function(){\n  return function(){\n    if (!inc(\"calcShowTeacherProgress/calc\")()) {\n      return;\n    }\n    return {\n      label: T(\"teacherProgress\"),\n      icon: path(\"/../app01/lib/svg/iconModern/award.svg\"),\n      click: function(){\n        return startPage({\n          path: path(\"/../app01-teacher-progress/page/page\"),\n          animation: \"slideUp\"\n        });\n      },\n      badge: inc(\"badge/badge\")\n    };\n  };\n})();","updated":"2025-11-07T08:37:45.209973"},{"path":"pages/start/startUser/04_logStartEvents/logTeacherAchievementEvents/log.ls","text":"(function(){\n  return function(){\n    if (!inc(\"/data/user/isTeacher/get\")()) {\n      return;\n    }\n    return inc(\"/../app01-teacher-progress/util/updateAchievementEvents/update\")();\n  };\n})();","updated":"2025-11-07T08:37:45.209973"},{"path":"pages/misc/timeline/topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      backLabel: T(\"settings\"),\n      title: T(\"history\"),\n      topRightCustom: function(){\n        return inc(\"topbarRightCustom/topbarRightCustom\")(page);\n      }\n    });\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/init/onNewLogEvents/deviceSetRememberUser/deviceSetRememberUser.ls","text":"(function(){\n  return function(events){\n    var remember, event;\n    remember = Store(\"deviceRememberUser\");\n    if (remember == null) {\n      Store(\"deviceRememberUser\", true);\n      remember = true;\n    }\n    event = _.last(events);\n    if (event.value === remember || event.src === Store(\"sourceId\")) {\n      return;\n    }\n    Store(\"deviceRememberUser\", event.value);\n    if (event.value === false) {\n      inc(\"/lib/util/storedUsers/removeAll/remove\")();\n    }\n    deviceLog.log({\n      event: \"debugRemoteRememberUserChange\",\n      from: remember,\n      to: event.value\n    });\n    return setTimeout(function(){\n      return location.reload();\n    }, 1000);\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"pages/_t.ls","text":"(function(){\n  return {\n    errorBlocked: {\n      de: \"Du hast zu viele Anfragen innerhalb kurzer Zeit gemacht. Versuche es in einer Minute noch einmal.\",\n      en: \"You've made too many attempts in a short period of time. Please try again in one minute.\",\n      fr: \"Tu as fait trop d'essais en peu de temps. Merci de réessayer dans une minute.\",\n      es: \"Fueron demasiados intentos. Por favor, espera un minuto y vuélvelo a intentar.\",\n      pt: \"Você fez muitas tentativas em pouco tempo. Por favor, tente novamente em alguns minutos.\"\n    },\n    errorOccurred: {\n      de: \"Es ist ein Fehler aufgetreten. Bitte versuche es später nochmal.\",\n      en: \"An error has occurred. Please try again later.\",\n      fr: \"Une erreur s'est produite. Merci de réessayer plus tard.\",\n      es: \"Ocurrió un error. Por favor, vuelve a intentarlo más tarde.\",\n      pt: \"Ocorreu um erro. Por favor, tente novamente mais tarde.\"\n    },\n    emptyFieldError: {\n      de: \"Das Feld darf nicht leer sein!\",\n      en: \"This field cannot be left blank!\",\n      fr: \"Ce champ ne peut pas rester vide.\",\n      es: \"Este espacio no puede quedar en blanco.\",\n      pt: \"Este espaço não pode ficar em branco.\"\n    },\n    playStore: {\n      de: \"Play&nbsp;Store\",\n      en: \"Play&nbsp;Store\",\n      fr: \"le Play&nbsp;Store\",\n      es: \"Play&nbsp;Store\",\n      pt: \"Play&nbsp;Store\"\n    },\n    print: {\n      de: \"Drucken\",\n      en: \"Print\",\n      fr: \"Imprimer\",\n      es: \"Imprimir\",\n      pt: \"Imprimir\"\n    },\n    history: {\n      de: \"Verlauf\",\n      en: \"History\",\n      fr: \"Historique\",\n      es: \"Historial\",\n      pt: \"Histórico\"\n    },\n    appStore: {\n      de: \"App&nbsp;Store\",\n      en: \"App&nbsp;Store\",\n      fr: \"l'App&nbsp;Store\",\n      es: \"App&nbsp;Store\",\n      pt: \"App&nbsp;Store\"\n    },\n    amazonAppStore: {\n      de: \"Amazon&nbsp;App&nbsp;Store\",\n      en: \"Amazon&nbsp;App&nbsp;Store\",\n      fr: \"l'Amazon&nbsp;Appstore\",\n      es: \"Amazon&nbsp;App&nbsp;Store\",\n      pt: \"Amazon&nbsp;App&nbsp;Store\"\n    }\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/init/setupAppstore/products/products.ls","text":"(function(){\n  return function(storeIdentifier){\n    var products, useAmazonInapp, includeDummy, preferredCurrency, ref$, fallbackCurrency, localeProducts;\n    products = inc(\"/../purchases/purchaseList\");\n    useAmazonInapp = engine.isAmazonDevice && window.AmazonIapV2 != null;\n    storeIdentifier == null && (storeIdentifier = !engine.isMobileApp\n      ? \"paypal\"\n      : useAmazonInapp\n        ? \"amazon\"\n        : (typeof store != 'undefined' && store !== null ? store.CONSUMABLE : void 8) != null ? engine.isiOsApp ? \"appstore\" : \"playstore\" : \"none\");\n    includeDummy = engine.isDebug;\n    products = _.filter(products, function(p){\n      return (p[storeIdentifier] && p.isLive) || (includeDummy && p.isDummy);\n    });\n    if (storeIdentifier !== \"paypal\") {\n      products = _.map(products, function(p){\n        if (p.isDummy) {\n          return p;\n        }\n        return {\n          sku: p.sku,\n          id: p.sku,\n          alias: p.alias,\n          type: store[p.type],\n          priceMicros: useAmazonInapp ? p.priceMicros : void 8,\n          currency: useAmazonInapp ? p.currency : void 8\n        };\n      });\n    } else {\n      preferredCurrency = (ref$ = engine.guiLanguage) === \"de\" || ref$ === \"fr\"\n        ? \"EUR\"\n        : engine.guiLanguage === \"en_gb\"\n          ? \"GBP\"\n          : engine.guiLanguage === \"pt\" ? \"BRL\" : \"USD\";\n      fallbackCurrency = \"EUR\";\n      localeProducts = _.filter(products, {\n        currency: preferredCurrency\n      });\n      if (localeProducts.length === 0) {\n        localeProducts = _.filter(products, {\n          currency: fallbackCurrency\n        });\n      }\n      products = localeProducts;\n    }\n    return products;\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/util/refresh/refresh.ls","text":"(function(){\n  return function(){\n    var ignoreProjects, currentProjects, res$, p, ref$, v, scrollTop, i$, ref1$, len$, el, ref2$;\n    ignoreProjects = \"pixi lottie box2d color debug logger01 sprites font-solocode-set font-solocode-set-en-us font-adobe-sourcecodepro purchases sounds qrcode app01-engine-start\".split(\" \");\n    res$ = [];\n    for (p in ref$ = projects.info()) {\n      v = ref$[p];\n      if (_.includes(ignoreProjects, p)) {\n        continue;\n      } else {\n        res$.push(_.pick(v, [\"project\", \"branch\"]));\n      }\n    }\n    currentProjects = res$;\n    scrollTop = (ref$ = app.currentPage.pageScrollWrapper) != null ? ref$.scrollTop : void 8;\n    for (i$ = 0, len$ = (ref1$ = body.find(\".pageWrapper, .mainMenu, .spinnerOverlay\")).length; i$ < len$; ++i$) {\n      el = ref1$[i$];\n      el.remove();\n    }\n    debug(\"clear\");\n    if ((ref1$ = app.idle) != null) {\n      ref1$.onDebugRefresh();\n    }\n    if ((ref2$ = app.lastSound) != null) {\n      ref2$.stop();\n    }\n    if (projects.info()[\"app01-engine-start\"].versionDate < \"2021-09-10\") {\n      projects.includeCache = {};\n    }\n    return inc(\"loadCurrentProjects/load\")(currentProjects, function(){\n      inc(\"/../extended-dom-element/init\")();\n      if (window.MathDiv2 != null) {\n        inc(\"/../math-div2/init\")();\n      }\n      if (!inc(app.currentPagePath)) {\n        return location.reload();\n      } else {\n        startPage({\n          path: app.currentPagePath,\n          params: app.currentPage.params,\n          history: 0,\n          animation: \"none\"\n        });\n        return app.currentPage.pageScrollWrapper.scrollTop = scrollTop;\n      }\n    });\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"addons/topbar2/actions/search/iconWithAbort/iconWithAbort.ls","text":"(function(){\n  return function(o){\n    return Div().css({\n      flex: \"0 0 auto\",\n      display: \"flex\",\n      flexDirection: \"column\",\n      margin: \"0.15em 0.3em 0.1em -0.3em\",\n      alignSelf: \"stretch\",\n      minWidth: \"2em\"\n    }).append(SvgIcon({\n      svg: path(\"/lib/svg/shape/search.svg\"),\n      color: Color.grey[600]\n    }), Div().addClass(\"abort\").css({\n      fontSize: \"0.6em\",\n      color: Color.grey[700],\n      overflow: \"hidden\",\n      height: 0\n    }).html(T(\"abort\"))).tap({\n      up: o.toggleSearchInput,\n      tapZone: \"1em\",\n      animation: \"none\"\n    });\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hiddenThingsSummer/_t.ls","text":"(function(){\n  return {\n    manual: {\n      de: \"Finde alle versteckten Eis. Wenn du nicht weiterkommst, tippe auf die Lupe, um einen Tipp zu bekommen.\",\n      en: \"Find all the hidden ice cream. If you are having a hard time, select the magnifying glass for a hint.\",\n      en_gb: \"Find all the hidden ice creams. If you are struggling, select the magnifying glass for a hint.\",\n      fr: \"Trouve toutes les glaces. En cas de besoin, appuie sur la loupe pour avoir de l'aide.\",\n      es: \"Encuentra todos los helados escondidos. Si tienes dificultades, selecciona la lupa para obtener una pista.\",\n      pt: \"Encontre todos os sorvetes escondidos. Se estiver com dificuldade, selecione a lupa para obter uma dica.\"\n    },\n    manualDesktop: {\n      de: \"Finde alle versteckten Eis. Wenn du nicht weiterkommst, klicke auf die Lupe, um einen Tipp zu bekommen.\",\n      en: \"Find all the hidden ice cream. If you are having a hard time, select the magnifying glass for a hint.\",\n      en_gb: \"Find all the hidden ice creams. If you are struggling, select the magnifying glass for a hint.\",\n      fr: \"Trouve toutes les glaces. En cas de besoin, appuie sur la loupe pour avoir de l'aide.\",\n      es: \"Encuentra todos los helados escondidos. Si tienes dificultades, selecciona la lupa para obtener una pista.\",\n      pt: \"Encontre todos os sorvetes escondidos. Se estiver com dificuldade, selecione a lupa para obter uma dica.\"\n    },\n    title: {\n      de: \"Hidden\",\n      en: \"Hidden\",\n      fr: \"Hidden\",\n      es: \"Hidden\",\n      pt: \"Hidden\"\n    },\n    sceneBeach: {\n      de: \"Am Strand\",\n      en: \"Beach\",\n      fr: \"Sur la plage\",\n      es: \"Playa\",\n      pt: \"Praia\"\n    },\n    sceneDesert: {\n      de: \"In der Wüste\",\n      en: \"Desert\",\n      fr: \"Dans le désert\",\n      es: \"Desierto\",\n      pt: \"Deserto\"\n    },\n    scenePark: {\n      de: \"Im Park\",\n      en: \"Park\",\n      fr: \"Dans le parc\",\n      es: \"Parque\",\n      pt: \"Parque\"\n    },\n    sceneStreet: {\n      de: \"Auf der Straße\",\n      en: \"Street\",\n      fr: \"Dans la rue\",\n      es: \"Calle\",\n      pt: \"Rua\"\n    },\n    sceneHome: {\n      de: \"Zuhause\",\n      en: \"Home\",\n      fr: \"Dans la maison\",\n      es: \"Casa\",\n      pt: \"Em casa\"\n    }\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/init/checkMdmConfig/check.ls","text":"(function(){\n  return function(){\n    var onConfigLoaded;\n    onConfigLoaded = function(mdmConfig){\n      return inc(\"onConfigLoaded/on\")(mdmConfig);\n    };\n    if ((typeof deviceLog != 'undefined' && deviceLog !== null) && deviceLog['var'](\"enableDummyMdmConfig\")) {\n      return inc(\"loadDummyMdmConfig/load\")(onConfigLoaded);\n    } else {\n      return inc(\"loadMdmConfig/load\")(onConfigLoaded);\n    }\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/init/checkMdmConfig/loadDummyMdmConfig/dummyMdmConfig/config.ls","text":"(function(){\n  return function(){\n    return {\n      languageVersion: \"en_us\",\n      rememberUsers: false\n    };\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/init/checkMdmConfig/loadDummyMdmConfig/load.ls","text":"(function(){\n  return function(onConfigLoaded){\n    var dummyMdmConfig;\n    dummyMdmConfig = inc(\"dummyMdmConfig/config\")();\n    return setTimeout(function(){\n      return onConfigLoaded(dummyMdmConfig);\n    }, 500);\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/init/checkMdmConfig/loadMdmConfig/load.ls","text":"(function(){\n  return function(onConfigLoaded){\n    return typeof cordova != 'undefined' && cordova !== null ? cordova.exec(function(mdmConfig){\n      return onConfigLoaded(mdmConfig);\n    }, function(error){}, \"SolocodePlugin\", \"getMdmConfig\", []) : void 8;\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/init/checkMdmConfig/onConfigLoaded/on.ls","text":"(function(){\n  return function(mdmConfig){\n    var setConfig;\n    if (mdmConfig == null) {\n      return;\n    }\n    setConfig = [inc(\"setRememberUsers/set\")(mdmConfig), inc(\"setGuiLanguage/set\")(mdmConfig)];\n    if (_.some(setConfig, \"needsReload\")) {\n      return location.reload();\n    }\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/init/checkMdmConfig/onConfigLoaded/setGuiLanguage/set.ls","text":"(function(){\n  return function(mdmConfig){\n    var guiLanguage, validLanguages, language;\n    guiLanguage = mdmConfig.languageVersion;\n    if (Store(\"deviceGuiLanguage\") === guiLanguage) {\n      return;\n    }\n    validLanguages = [\"de\", \"en_us\", \"en_gb\", \"fr\", \"es\", \"pt\"];\n    language = guiLanguage;\n    if (!in$(language, validLanguages)) {\n      return;\n    }\n    inc(\"/lib/util/setGuiLanguageDevice/set\")(language);\n    return {\n      needsReload: true\n    };\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2024-09-03T08:39:58.836116"},{"path":"lib/util/loadProjectSync/load.ls","text":"(function(){\n  return function(page, project, onLoaded){\n    var checkProjectsSync, showAsyncPopup;\n    checkProjectsSync = inc(\"/lib/init/checkProjectsSync/check/check\");\n    showAsyncPopup = inc(\"/lib/init/checkProjectsSync/showAsyncPopup/show\");\n    return inc(\"/lib/util/loadProjects/load\")({\n      projectDescriptions: [{\n        project: project\n      }],\n      logResults: false,\n      onDone: function(pds){\n        var result;\n        if (page !== app.currentPage) {\n          return;\n        }\n        result = checkProjectsSync(pds);\n        if (!result.isSynced) {\n          return showAsyncPopup(result, function(){\n            return inc(THISFILE)(page, project, onLoaded);\n          });\n        } else {\n          return onLoaded();\n        }\n      },\n      onProjectMissingError: function(){\n        return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n      }\n    });\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"pages/misc/timeline/loadProject/load.ls","text":"(function(){\n  return function(page, onDone){\n    var ref$;\n    if ((ref$ = projects.info()[\"app01-timeline\"]) != null && ref$.isLoaded) {\n      onDone();\n      return;\n    }\n    return inc(\"/lib/util/loadProjectSync/load\")(page, \"app01-timeline\", onDone);\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"pages/misc/timeline/loadTimelineDiv/load.ls","text":"(function(){\n  return function(page){\n    var onDone;\n    onDone = function(div){\n      page.html(div);\n      return page.timelineDiv = div;\n    };\n    return inc(\"/../app01-timeline/loadTimelineDiv/load\")({\n      publicId: page.params.publicId,\n      planDescriptions: page.planDescriptions,\n      gameDescriptions: page.gameDescriptions,\n      userName: inc(\"/../app01/data/user/calcUserDescription/calc\")().displayName,\n      onDone: onDone\n    });\n  };\n})();","updated":"2024-09-03T08:39:58.836116"},{"path":"addons/topbar2/topbar.ls","text":"(function(){\n  return function(o){\n    var div, div2;\n    div = Div().addClass(\"topBar topbar\").html(Div({\n      margin: \"-1px auto 0\",\n      display: \"flex\",\n      flexDirection: \"column\",\n      alignItems: \"stretch\"\n    }).append(div2 = Div({\n      height: \"2.2em\",\n      display: \"flex\",\n      alignItems: \"stretch\"\n    }).append(inc(\"back/back\")(o), inc(\"close/close\")(o), inc(\"menu/menu\")(o), inc(\"spacer/spacer\")(), inc(\"tools/tools\")(o)), inc(\"title/title\")(o), inc(\"tabMenu/tabMenu\")(o), inc(\"actions/actions\")(o), inc(\"disturber/disturber\")(o)));\n    div.setSearchValue = o.setSearchValue;\n    div.updateActions = o.updateActions;\n    app.currentPage.topbar = div;\n    return div;\n  };\n})();","updated":"2024-09-13T10:07:47.205424"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/default.ls","text":"(function(){\n  return function(page, pageCode, pagePath){\n    var pw;\n    body.append(pw = inc(\"pageWrapper/pageWrapper\")(page, pageCode));\n    pw.pageCode = pageCode;\n    pw.heapInfo = inc(\"/lib/util/heapInfo/info\")(\"page_\" + app.currentPagePath);\n    inc(\"init/setBottomFreeze/init\")(pw);\n    inc(\"init/scrollElementIntoView/init\")(pw);\n    inc(\"init/freezeMinHeight/init\")(pw);\n    inc(\"init/updateUrlDescription/init\")(pw);\n    inc(\"init/scopeRender/init\")(pw);\n    inc(\"updateLayout/update\")(pw);\n    inc(\"init/statusBar/init\")(pw);\n    inc(\"init/navbar/init\")(pw);\n    inc(\"init/top/init\")(pw);\n    inc(\"init/bottom/init\")(pw);\n    inc(\"init/translationTopbar/init\")(pw);\n    pw.page.updateUrlDescription();\n    trySafe(function(){\n      return pageCode.start(page);\n    });\n    pw.page.updateLayout();\n    inc(\"init/scrollTop/init\")(pw, pagePath);\n    return pw;\n  };\n})();","updated":"2024-09-17T07:43:53.950984"},{"path":"pages/level/afterFinish/pages/disabledCoins/text/calcDisabledGroupDescription/calc.ls","text":"(function(){\n  return function(page, onDone){\n    var infos, project, ref$, ref1$, ref2$, code, projects, groupCode;\n    infos = page.params.disabledCoinsPlanInfos;\n    project = (ref$ = log.findLast(\"finishLevel\")) != null ? (ref1$ = ref$.puid) != null ? (ref2$ = ref1$.split(\"/\")) != null ? ref2$[0] : void 8 : void 8 : void 8;\n    for (code in infos) {\n      projects = infos[code];\n      if (in$(project, projects)) {\n        groupCode = code;\n        break;\n      }\n    }\n    if (!groupCode) {\n      return;\n    }\n    return inc(\"/../app01-group/data/calcGroupDescription/calc\")(groupCode);\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2024-10-29T14:12:12.335364"},{"path":"addons/navbar/bar/tabs/tab/groups/item.ls","text":"(function(){\n  return function(){\n    var c;\n    return {\n      navCategory: c = \"groups\",\n      title: T(\"groupsTitle\"),\n      icon: path(\"/lib/svg/shape/group.svg\"),\n      tap: function(){\n        return startPage({\n          navCategory: c,\n          onNavCategoryNotFound: function(){\n            return inc(\"/../app01-group/pages/group/group/start\")();\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2024-10-29T14:12:12.335364"},{"path":"data/user/calcUserDescription/isPlusFamilyMember/calc.ls","text":"(function(){\n  return function(d){\n    var groupCodes, i$, len$, groupCode, e, ref$;\n    groupCodes = inc(\"/../app01-group/data/calcGroupCodes/calc\")(d.log);\n    for (i$ = 0, len$ = groupCodes.length; i$ < len$; ++i$) {\n      groupCode = groupCodes[i$];\n      e = typeof groupLogs != 'undefined' && groupLogs !== null ? (ref$ = groupLogs[groupCode]) != null ? ref$.findLast(\"isPlus\") : void 8 : void 8;\n      if (e != null && new Date() < new Date(e.validUntil)) {\n        return true;\n      }\n    }\n    return false;\n  };\n})();","updated":"2024-10-29T14:12:12.335364"},{"path":"data/user/isFamilyAdmin/get.ls","text":"(function(){\n  return function(){\n    var i$, ref$, len$, gd, ref1$;\n    for (i$ = 0, len$ = (ref$ = inc(\"/../app01-group/data/calcGroupDescriptions/calc\")()).length; i$ < len$; ++i$) {\n      gd = ref$[i$];\n      if (gd.type === \"family\" && ((ref1$ = gd.userRoles) != null && ref1$.admin)) {\n        return true;\n      }\n    }\n  };\n})();","updated":"2024-10-29T14:12:12.335364"},{"path":"pages/games/00_shared/lockedGamesInfo/info.ls","text":"(function(){\n  return function(){\n    var currentPage, update, div;\n    currentPage = app.currentPage;\n    update = function(){\n      var lockedDetails;\n      lockedDetails = inc(\"/../app01-group/data/calcLockedFeature/calc\")({\n        eventName: \"lockGames\"\n      });\n      if (lockedDetails.seconds < 1) {\n        div.empty();\n      } else {\n        div.empty().append(Div({\n          width: \"35em\",\n          maxWidth: \"90%\",\n          padding: \"0.5em\",\n          margin: \"1em auto\",\n          hyphens: \"auto\",\n          lineHeight: \"1.5em\",\n          backgroundColor: Color.red[100]\n        }).secureHtml(inc(\"icon/icon\")(), inc(\"text/text\")(lockedDetails)));\n      }\n      return setTimeout(function(){\n        if (currentPage === app.currentPage || div.isVisible()) {\n          return requestAnimationFrame(update);\n        }\n      }, 1000);\n    };\n    div = Div();\n    if (window.log != null) {\n      update();\n    }\n    return div;\n  };\n})();","updated":"2024-10-29T14:12:12.335364"},{"path":"lib/util/loadGroupContent/filterPublicId/filter.ls","text":"(function(){\n  return function(o, r){\n    var subgroups, validSubgroupIds, filteredRows;\n    subgroups = inc(\"/../app01-group/data/calcSubgroups/calc\")(o.groupCode, o.filterPublicId);\n    validSubgroupIds = _.map(subgroups, \"id\");\n    validSubgroupIds.push(o.filterPublicId);\n    filteredRows = _.filter(r.rows, function(row){\n      return !row.event.subgroup || _.includes(validSubgroupIds, row.event.subgroup);\n    });\n    return {\n      rows: filteredRows,\n      totalEvents: r.totalEvents,\n      lastEventCreated: r.lastEventCreated,\n      cachedAt: r.cachedAt\n    };\n  };\n})();","updated":"2024-10-29T14:12:12.335364"},{"path":"pages/static/antonPlus/5_productInfo/info/plusFamily/plusFamily.ls","text":"(function(){\n  return function(page){\n    var groupCodes;\n    groupCodes = inc(\"/../app01-group/data/calcGroupCodes/calc\")();\n    return Div().css({\n      width: \"30em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto 1em\",\n      lineHeight: \"1.5em\"\n    }).html(groupCodes.length === 0\n      ? T(\"plusFamilyInfoTextNoGroups\")\n      : T(\"plusFamilyInfoTextExistingGroups\"));\n  };\n})();","updated":"2024-10-29T14:12:12.335364"},{"path":"pages/level/finishLevel/calcCoins/newCoin/calc.ls","text":"(function(){\n  return function(){\n    var ud, totalStars, totalStarsNeededForCoin, disabledCoinsPlanInfos, coinsDisabled;\n    ud = inc(\"/data/user/calcUserDescription/calc\")();\n    totalStars = ud.totalStars + ud.totalTrophies;\n    totalStarsNeededForCoin = inc(\"totalStarsNeeded/totalStarsNeeded\")(totalStars);\n    inc(\"debugMissingStars/debug\")(totalStarsNeededForCoin, totalStars);\n    disabledCoinsPlanInfos = inc(\"/../app01-group/data/calcDisabledCoinsPlanInfos/calc\")({\n      role: \"pupil\"\n    });\n    coinsDisabled = inc(\"calcCoinsDisabled/calc\")(disabledCoinsPlanInfos);\n    if (coinsDisabled.disabled) {\n      inc(\"setTotalStarsNeededCoinsDisabled/set\")(totalStarsNeededForCoin);\n      if (coinsDisabled.reason === \"disabledCoinsPlan\" && inc(\"calcShowDisabledCoinsPage/calc\")(totalStars)) {\n        return {\n          type: \"newCoin\",\n          gotCoin: false,\n          pagePath: path(\"/pages/level/afterFinish/pages/disabledCoins/page\"),\n          pageParams: {\n            disabledCoinsPlanInfos: disabledCoinsPlanInfos\n          }\n        };\n      } else {\n        return {\n          type: \"newCoin\",\n          gotCoin: false\n        };\n      }\n    } else {\n      if (totalStars < totalStarsNeededForCoin) {\n        return {\n          type: \"newCoin\",\n          gotCoin: false\n        };\n      } else {\n        inc(\"../_shared/setNextTotalStarsNeeded/set\")(totalStars);\n        return {\n          type: \"newCoin\",\n          gotCoin: true,\n          pagePath: path(\"/pages/level/afterFinish/pages/newCoin/addCoin/page\")\n        };\n      }\n    }\n  };\n})();","updated":"2024-10-29T14:12:12.335364"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/pixelPaint/pixelPaint.ls","text":"(function(){\n  return function(){\n    var groupDescriptions, difficulties;\n    groupDescriptions = inc(\"/../app01-group/data/calcGroupDescriptions/calc\")();\n    difficulties = [\n      {\n        title: T(\"myPictures\"),\n        icon: path(\"/lib/svg/shape/avatar.svg\"),\n        page: path(\"/../app01-pixel-paint/pages/gallery/page\")\n      }, groupDescriptions.length > 0 ? {\n        title: T(\"groupPictures\"),\n        icon: path(\"/lib/svg/shape/group.svg\"),\n        page: path(\"/../app01-pixel-paint/pages/group/page\")\n      } : void 8, {\n        title: T(\"newPictures\"),\n        icon: path(\"/lib/svg/shape/badge.svg\"),\n        page: path(\"/../app01-pixel-paint/pages/latest/page\")\n      }, {\n        title: T(\"popularPictures\"),\n        icon: path(\"/lib/svg/shape/heart.svg\"),\n        page: path(\"/../app01-pixel-paint/pages/best/page\")\n      }, {\n        title: T(\"antonFavourites\"),\n        icon: path(\"/lib/svg/shape/anton-app.svg\"),\n        page: path(\"/../app01-pixel-paint/pages/favourites/page\")\n      }\n    ];\n    difficulties = _.compact(difficulties);\n    return {\n      id: \"pixelPaint\",\n      project: \"app01-pixel-paint\",\n      title: \"Pixel Paint\",\n      category: \"creative\",\n      grade: 4,\n      icon: \"solocode_game-pixel-paint-cover-2\",\n      highscoreDisabled: true,\n      debugOnly: false,\n      difficulties: difficulties,\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2024-10-29T14:12:12.335364"},{"path":"pages/start/startUser/03_subscribeGroupsAndSchools/subscribe.ls","text":"(function(){\n  return function(o){\n    var callback, groupCodes, schoolCodes, onDone, i$, len$, groupCode, schoolCode, results$ = [];\n    callback = function(){\n      return inc(\"../04_logStartEvents/log\")(o);\n    };\n    window.schoolLogs = window.schoolLogs || {};\n    window.groupLogs = window.groupLogs || {};\n    groupCodes = inc(\"/../app01-group/data/calcGroupCodes/calc\")();\n    schoolCodes = inc(\"/data/school/calcSchoolCodes/calc\")();\n    o.totalGroupAndSchool = groupCodes.length + schoolCodes.length;\n    o.totalGroupAndSchoolDone = 0;\n    o.errorShown = false;\n    if (o.totalGroupAndSchool === 0) {\n      callback();\n      return;\n    }\n    onDone = inc(\"onDone/onDone\")(o, callback);\n    for (i$ = 0, len$ = groupCodes.length; i$ < len$; ++i$) {\n      groupCode = groupCodes[i$];\n      inc(\"subscribeGroupLog/subscribe\")(groupCode, onDone);\n    }\n    for (i$ = 0, len$ = schoolCodes.length; i$ < len$; ++i$) {\n      schoolCode = schoolCodes[i$];\n      results$.push(inc(\"subscribeSchoolLog/subscribe\")(schoolCode, onDone));\n    }\n    return results$;\n  };\n})();","updated":"2024-10-29T14:12:12.335364"},{"path":"pages/start/startUser/04_logStartEvents/sessionStart/details/details.ls","text":"(function(){\n  return function(){\n    var ud, totalGroups, ref$, isTeacher, ref1$;\n    ud = inc(\"/data/user/calcUserDescription/calc\")();\n    totalGroups = (ref$ = inc(\"/../app01-group/data/calcGroupCodes/calc\")()) != null ? ref$.length : void 8;\n    isTeacher = inc(\"/data/user/isTeacher/get\")();\n    return {\n      lastNavCategory: (ref1$ = log.findLast(\"setLastNavCategory\")) != null ? ref1$.value : void 8,\n      totalGroups: totalGroups,\n      totalStars: ud.totalStars,\n      hasPlusAccess: ud.hasPlusAccess,\n      isTeacher: isTeacher,\n      isDirTeacher: ud.isDirTeacher,\n      uniqNameCreated: ud.uniqNameCreated\n    };\n  };\n})();","updated":"2024-10-29T14:12:12.335364"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/_t.ls","text":"(function(){\n  return {\n    notNow: {\n      de: \"Jetzt nicht\",\n      en: \"Not now\",\n      fr: \"Pas maintenant\",\n      es: \"En otro momento\",\n      pt: \"Agora não\"\n    },\n    hello: {\n      de: \"Hallo $1,\",\n      en: \"Hello $1,\",\n      fr: \"Bonjour $1,\",\n      es: \"Hola $1,\",\n      pt: \"Olá $1,\"\n    },\n    email: {\n      de: \"E-Mail:\",\n      en: \"email:\",\n      fr: \"e-mail&nbsp;:\",\n      es: \"correo electrónico:\",\n      pt: \"e-mail:\"\n    },\n    save: {\n      de: \"Speichern\",\n      en: \"Save\",\n      fr: \"Enregistrer\",\n      es: \"Guardar\",\n      pt: \"Salvar\"\n    },\n    print: {\n      de: \"Drucken\",\n      en: \"Print\",\n      fr: \"Imprimer\",\n      es: \"Imprimir\",\n      pt: \"Imprimir\"\n    },\n    myLoginCode: {\n      de: \"Mein ANTON-Anmelde-Code\",\n      en: \"My ANTON login code\",\n      fr: \"Mon code de connexion ANTON\",\n      es: \"Mi clave de acceso ANTON\",\n      pt: \"Meu código de acesso ANTON\"\n    },\n    saveEmailText: {\n      de: \"Bitte speichere deine E-Mail-Adresse. Bei Verlust deiner Zugangsdaten behältst du so Zugriff auf dein Nutzerkonto und kannst weiterhin deinen Schüler/innen helfen, falls sie ihre Anmelde-Codes verlieren.\",\n      en_gb: \"Please save your email address so that you have secure access to your account and are always able to recover your pupils’ accounts.\",\n      en: \"Please save your email address so that you have secure access to your account and are always able to recover your students’ accounts.\",\n      fr: \"Nous te demandons d'enregistrer ton adresse e-mail. Ainsi tu auras un moyen d'accéder à ton compte d'utilisateur·rice même si tu perds tes autres données d'accès et tu pourras continuer à aider tes élèves s'ils·elles perdent leurs codes de connexion.\",\n      es: \"Te recomendamos registrar tu dirección de correo electrónico para asegurar el acceso a tu cuenta y la de tus estudiantes, en caso de que pierdas tus datos de acceso.\",\n      pt: \"Por favor, salve seu endereço de e-mail. Em caso de perda de seus dados de acesso, você poderá manter o acesso à sua conta. Assim, poderá continuar a ajudar seus alunos, caso eles percam seus códigos de acesso.\"\n    },\n    enterEmail: {\n      de: \"Zur E-Mail-Eingabe\",\n      en: \"Enter email\",\n      fr: \"Entrer un e-mail\",\n      es: \"Ingresa un correo electrónico\",\n      pt: \"Inserir um e-mail\"\n    },\n    okDone: {\n      de: \"Ok, fertig!\",\n      en: \"OK, done!\",\n      fr: \"OK, terminé&nbsp;!\",\n      es: \"Ok, ¡listo!\",\n      pt: \"Ok, pronto!\"\n    },\n    loginCode: {\n      de: \"Anmelde-Code: \",\n      en: \"Login code: \",\n      fr: \"Code de connexion&nbsp;: \",\n      es: \"Clave de acceso: \",\n      pt: \"Código de acesso: \"\n    },\n    writeDownCode: {\n      de: \"Notiere dir bitte deinen Anmelde-Code oder \",\n      en: \"Please write down your login code or \",\n      fr: \"Merci de noter ton code de connexion quelque part ou \",\n      es: \"Por favor, anota tu clave de acceso o \",\n      pt: \"Por favor, anote seu código de acesso ou  \"\n    },\n    makeScreenshot: {\n      de: \"mache dir einen Screenshot davon,<br>\",\n      en: \"take a screenshot of it<br>\",\n      fr: \"de faire une capture d'écran<br>\",\n      es: \"haz una captura de pantalla,<br>\",\n      pt: \"faça uma captura de tela.<br>\"\n    },\n    printIt: {\n      de: \"drucke ihn dir aus,<br>\",\n      en: \"print it,<br>\",\n      fr: \"de l'imprimer<br>\",\n      es: \"imprímela,<br>\",\n      pt: \"imprima-o.<br>\"\n    },\n    dontLoseAccess: {\n      de: \"damit du den Zugriff zu deinem Konto nicht verlierst!\",\n      en: \"so that you don’t lose access to your account!\",\n      fr: \"pour ne pas perdre l'accès à ton compte&nbsp;!\",\n      es: \"¡para que no pierdas el acceso a tu cuenta!\",\n      pt: \"Assim, você não perde o acesso à sua conta!\"\n    },\n    emailSet: {\n      de: \"E-Mail erfolgreich gesetzt!\",\n      en: \"Email successfully set!\",\n      fr: \"E-mail défini&nbsp;!\",\n      es: \"¡Correo electrónico establecido!\",\n      pt: \"Endereço de e-mail definido com sucesso!\"\n    }\n  };\n})();","updated":"2024-10-30T08:19:06.015012"},{"path":"addons/navbar/bar/user/user/items/itemMathWeeklySpecial/label/label.ls","text":"(function(){\n  return function(weeklySpecialData){\n    return Div().html(Div({\n      display: \"flex\",\n      alignItems: \"stretch\"\n    }).html(Div({\n      display: \"flex\",\n      maxWidth: \"calc(90vw - 7.5em)\",\n      padding: \"0.3em 0.6em\",\n      background: Color.white,\n      borderRadius: \"10px\",\n      filter: \"drop-shadow(0 0 6px rgba(0, 0, 0, 0.2))\"\n    }).html(Div({\n      width: \"100%\",\n      maxWidth: \"10em\"\n    }).html(weeklySpecialData.userMenuSentence), Div({\n      position: \"absolute\",\n      right: \"-9px\",\n      top: \"calc(2em - 10px)\",\n      width: 0,\n      height: 0,\n      borderTop: \"10px solid transparent\",\n      borderBottom: \"10px solid transparent\",\n      borderLeft: \"10px solid \" + Color.white,\n      zIndex: 1\n    })), inc(\"avatarIcon/icon\")(weeklySpecialData)), inc(\"debugAssistantNameId/id\")(weeklySpecialData));\n  };\n})();","updated":"2024-12-06T10:53:06.016445"},{"path":"addons/navbar/bar/user/user/items/itemMathWeeklySpecial/label/avatarIcon/avatarDescription/description.ls","text":"(function(){\n  return function(){\n    return {\n      body: {\n        type: 'human',\n        children: {\n          human: {\n            children: {\n              arms: {\n                c1: 'purple.900',\n                option: 'full'\n              },\n              belt: {\n                c1: 'orange.500',\n                c2: 'brown.900'\n              },\n              coat: {\n                c1: 'grey.900',\n                c2: 'grey.800',\n                option: 'none'\n              },\n              skin: {\n                c1: 'F7DDC2',\n                option: 'a'\n              },\n              necklace: {\n                c1: 'grey.100',\n                c2: 'blueGrey.500',\n                option: 'p'\n              },\n              neckline: {\n                c1: 'purple.900',\n                c2: 'grey.100',\n                option: 'b'\n              }\n            }\n          }\n        }\n      },\n      head: {\n        type: 'human',\n        children: {\n          human: {\n            children: {\n              eyes: {\n                c1: '401A03',\n                c2: '1C190F',\n                option: 'animal'\n              },\n              hair: {\n                c1: 'C9C9C9',\n                option: 'm'\n              },\n              mask: {\n                c1: 'pink.300',\n                c2: 'orange.300'\n              },\n              skin: {\n                c1: 'F7DDC2',\n                option: 'a'\n              },\n              mouth: {\n                c1: '790906',\n                c2: 'red.900',\n                option: 'friendly'\n              },\n              makeup: {\n                c1: 'blueGrey.200',\n                c2: 'lightGreen.700',\n                c3: 'pink.700',\n                option: 'none'\n              },\n              earRing: {\n                c1: 'cyan.900',\n                c2: 'pink.200'\n              },\n              glasses: {\n                c1: 'brown.900',\n                c2: 'transparent',\n                option: 'ac'\n              },\n              eyebrows: {\n                c1: 'C9C9C9',\n                option: 'a'\n              },\n              hairBack: {\n                c1: 'C9C9C9',\n                option: 'd'\n              }\n            }\n          }\n        }\n      },\n      version: 2\n    };\n  };\n})();","updated":"2024-12-06T10:53:06.016445"},{"path":"addons/navbar/bar/user/user/items/itemMathWeeklySpecial/label/avatarIcon/svgs/einstein.svg","text":"<svg width=\"904\" height=\"501\" viewBox=\"0 0 904 501\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"einstein\">\n<path id=\"backfin\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.0299072 12.333C150.76 56.615 182.57 187.764 185.5 201.465L185.51 201.466H185.5C172.07 198.473 43.4599 166.034 0.0299072 12.333Z\" fill=\"#FFC107\"/>\n<path id=\"backfin_2\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.0300293 389.583C150.76 345.3 182.57 214.151 185.5 200.451L185.51 200.45H185.5C172.07 203.442 43.46 235.882 0.0300293 389.582V389.584V389.583Z\" fill=\"#FFC107\"/>\n<path id=\"fin\" d=\"M493.81 499.992C590.83 471.491 611.3 387.079 613.19 378.261C604.54 380.187 521.76 401.067 493.81 499.992Z\" fill=\"#FFC107\"/>\n<path id=\"fin_2\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M453.5 442.898C553.79 455.828 606.49 386.784 611.76 379.47C603.07 377.755 518.89 363.572 453.5 442.897V442.898ZM237.03 355.055C337.32 367.985 390.02 298.941 395.29 291.628C386.6 289.913 302.42 275.729 237.03 355.055Z\" fill=\"#FFC107\"/>\n<path id=\"body\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M874.53 201.464C874.53 201.464 720.28 402.218 530.01 402.218C339.74 402.218 185.49 201.464 185.49 201.464C185.49 201.464 339.74 0.710999 530.01 0.710999C720.28 0.710999 874.53 201.464 874.53 201.464Z\" fill=\"#EF6C00\"/>\n<path id=\"body-light\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M529.62 41.913C717.93 41.913 870.94 198.659 874.08 201.904H874.09C870.93 197.823 717.92 1.22501 529.62 1.22501C341.13 1.22501 187.99 198.241 185.15 201.92C187.99 198.987 341.13 41.913 529.62 41.913Z\" fill=\"#F57C00\"/>\n<path id=\"Vector\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M874.09 201.908L874.08 201.904H185.19C185.19 201.91 185.19 201.909 185.18 201.914C185.19 201.911 185.19 201.912 185.19 201.908H874.09Z\" fill=\"#FD5D00\"/>\n<path id=\"body-light_2\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M874.18 201.947C874.17 201.942 874.17 201.931 874.15 201.914C874.15 201.911 874.15 201.912 874.14 201.908H874.09C874.09 201.911 874.1 201.917 874.1 201.92H185.18C185.17 201.933 185.16 201.943 185.16 201.947C185.62 202.276 339.68 311.576 529.67 311.576C719.66 311.576 873.71 202.276 874.18 201.947Z\" fill=\"#F57C00\"/>\n<path id=\"Vector_2\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M185.19 201.908C185.19 201.912 185.19 201.911 185.18 201.914V201.92H874.1C874.1 201.918 874.09 201.911 874.09 201.908H185.19Z\" fill=\"#F57C00\"/>\n<path id=\"Vector_3\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M745.11 144.672C745.11 170.235 724.38 190.957 698.82 190.957C673.26 190.957 652.54 170.235 652.54 144.672C652.54 119.109 673.26 98.387 698.82 98.387C724.38 98.387 745.11 119.109 745.11 144.672Z\" fill=\"white\"/>\n<path id=\"Vector_4\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M723.25 144.672C723.25 158.163 712.31 169.1 698.82 169.1C685.33 169.1 674.39 158.163 674.39 144.672C674.39 131.181 685.33 120.244 698.82 120.244C712.31 120.244 723.25 131.181 723.25 144.672Z\" fill=\"#111834\"/>\n<path id=\"lipbottom\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M900.49 228.621C904.44 220.645 895.57 208.206 880.68 200.836C865.79 193.467 846.57 201.935 846.57 201.935C846.57 201.935 851.49 222.35 866.38 229.72C881.27 237.089 896.54 236.597 900.49 228.621Z\" fill=\"#E64A19\"/>\n<path id=\"liptop\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M902.39 179.57C899.09 171.304 883.91 169.591 868.48 175.745C853.05 181.899 846.51 201.854 846.51 201.854C846.51 201.854 864.99 211.833 880.42 205.68C895.85 199.526 905.69 187.837 902.39 179.57Z\" fill=\"#E64A19\"/>\n</g>\n</svg>\n","updated":"2024-12-06T10:53:06.016445"},{"path":"data/user/calcWeeklySpecialData/calcSentence/calcFishSentence/calc.ls","text":"(function(){\n  return function(assistantName, status, variants){\n    if (status === \"hidden\") {\n      return \"Weekly Challenge hidden<br>(only visible with debug war)\";\n    } else if (status === \"not started\") {\n      return \"Kannst du dich die nächsten Tage um meinen Fisch <b>Einstein</b> kümmern?\";\n    } else if (status === \"completed\") {\n      return \"Danke, dass du dich so gut um <b>Einstein</b> gekümmert hast!\";\n    } else if (status === \"day completed\") {\n      return \"<b>Einstein</b> freut sich schon dich morgen wieder zu sehen.\";\n    } else if (status === \"no warning\") {\n      return \"<b>Einstein</b> wartet schon auf dich!\";\n    } else if (status === \"warning1\") {\n      return \"<b>Einstein</b> wartet schon auf dich!<br><br><b>Achtung:</b> Gestern hat er sich ohne dich gelangweilt!\";\n    } else if (status === \"warning2\") {\n      return \"<b>Einstein</b> wartet schon auf dich!<br><br><b>Achtung:</b> Wenn du dich heute nicht um ihn kümmerst, muss er wieder nach Hause.\";\n    } else if (status === \"expired\") {\n      return \"<b>Einstein</b> wurde abgeholt, weil du dich nicht genug um ihn gekümmert hast!\";\n    } else {\n      return debug(\"other status\", status);\n    }\n  };\n})();","updated":"2024-12-06T10:53:06.016445"},{"path":"pages/start/startUser/04_logStartEvents/repairAvatar/repair.ls","text":"(function(){\n  return function(){\n    var a, ref$, avatarRepaired;\n    a = (ref$ = log.findLast(\"setAvatar\")) != null ? ref$.value : void 8;\n    if (!a || a.version !== 2) {\n      return;\n    }\n    avatarRepaired = deviceLog['var'](\"enableAvatarValidationNext\")\n      ? inc(\"/../app01-avatar/lib/util/validateAvatarData/validate\")({\n        avatar: a\n      })\n      : inc(\"/../app01-avatar/lib/util/validateAvatar/validate\")(a);\n    if (!_.isEmpty(avatarRepaired.errors)) {\n      log.log({\n        event: \"debugAvatarRepair\",\n        errors: avatarRepaired.errors\n      });\n      return log.log({\n        event: \"setAvatar\",\n        value: avatarRepaired.avatar\n      });\n    }\n  };\n})();","updated":"2025-07-21T08:18:19.029418"},{"path":"pages/level/afterFinish/pages/antonPlus/page1Intro/_t.ls","text":"(function(){\n  return {\n    title: {\n      de: \"Kennst du schon <b>ANTON-Plus?</b>\",\n      en: \"Have you heard about <b>ANTON Plus</b>?\",\n      fr: \"Tu connais <b>ANTON-Plus</b>&nbsp;?\",\n      es: \"¿Ya conces <b>ANTON-Plus</b>?\",\n      pt: \"Você já conhece o <b>ANTON-Plus</b>?\"\n    },\n    text1: {\n      de: \"Damit kannst du <b>offline</b> lernen, deinen <b>Avatar</b> besser gestalten und du unterstützt die <b>Weiterentwicklung von ANTON</b>.\",\n      en: \"It allows you to learn <b>offline</b>, improve your <b>avatar</b> design and support the <b>further development</b> of ANTON!\",\n      fr: \"Ça te permet d'apprendre <b>hors ligne</b>, de changer le design de ton <b>avatar</b> et d'<b>aider ANTON</b> à s'améliorer encore&nbsp;!\",\n      es: \"¡Te permite seguir aprendiendo <b>sin conexión</b>, mejorar el diseño de tu <b>avatar</b> y <b>contribuir</b> a que ANTON siga desarrollándose!\",\n      pt: \"Isso permitirá que você continue aprendendo <b>offline</b>, melhore o design do seu <b>Avatar</b> e <b>contribua</b> para que ANTON continue se desenvolvendo!\"\n    },\n    soundText: {\n      de: \"ssml:<break time='300ms'/>Kennst Du schon ANTON-Plus?<break time='700ms'/>Damit kannst du offline lernen, deinen Avatar besser gestalten und du unterstützt die Weiterentwicklung von ANTON!\",\n      en: \"ssml:<break time='300ms'/>Have you heard about ANTON Plus?<break time='700ms'/>It allows you to learn offline, improve your avatar design and support the further development of ANTON!\",\n      fr: \"ssml:<break time='300ms'/>Tu connais ANTON-Plus ?<break time='700ms'/>Ça te permet d'apprendre hors ligne, de changer le design de ton avatar et d'aider ANTON à s'améliorer encore !\",\n      es: \"ssml:<break time='300ms'/>¿ya conoces ANTON-Plus?<break time='700ms'/>¡Te permite seguir aprendiendo <b> sin conexión </b>, mejorar el diseño de tu <b> avatar </b> y <b>contribuir</b> a que ANTON siga desarrollándose!\",\n      pt: \"ssml:<break time='300ms'/>Você já conhece ANTON-Plus?<break time='700ms'/>Ele permite que você continue aprendendo mesmo sem conexão, melhore estilo do seu Avatar e contribua para que ANTON continue se desenvolvendo!\"\n    }\n  };\n})();","updated":"2024-09-23T09:57:05.815067"},{"path":"addons/topbarLevel/feedbackIcon/03a_popupText/popup.ls","text":"(function(){\n  return function(pageClone, type){\n    var sendFeedback, div, input;\n    sendFeedback = function(){\n      inc(\"../00_shared/sendFeedback/send\")({\n        div: pageClone,\n        type: type,\n        text: input.getValue()\n      });\n      return inc(\"../04_popupDone/popup\")();\n    };\n    div = Div({\n      width: \"18em\",\n      margin: \"1em 1em 0.5em\"\n    }).append(Div().html(T(\"yourProblem\")), input = inc(\"/lib/gui/inputEditable/input\")({\n      multiline: true,\n      lineHeight: \"1.5em\",\n      linePadding: \"0 0.3em\",\n      maxLength: 500,\n      autoCapCorSpelCom: \"sentences on false none\"\n    }).css({\n      margin: \"1.5em auto\",\n      height: \"5em\",\n      width: \"95%\"\n    }), Button(T(\"send\")).css({\n      margin: \"0.4em\"\n    }).tap(sendFeedback));\n    input.start();\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      animationOnShow: false\n    });\n  };\n})();","updated":"2024-09-23T09:57:05.815067"},{"path":"addons/navbar/bar/user/user/items/itemMathWeeklySpecial/tap/tap.ls","text":"(function(){\n  return function(assistantName){\n    return inc(\"/lib/util/loadProjectSyncNext/load\")({\n      project: \"app01-assistant-math\",\n      onLoaded: function(){\n        return inc(\"/../app01-assistant-math/start/startUserMenu\")({\n          assistantName: assistantName\n        });\n      }\n    });\n  };\n})();","updated":"2024-12-18T14:15:28.586735"},{"path":"pages/start/login/01_step1/linkQrcodeNext/startRequestPermissionPage/start.ls","text":"(function(){\n  return function(page){\n    var onError, onStart, div;\n    onError = function(e){\n      return inc(\"noPermissionPopup/popup\")(div);\n    };\n    onStart = function(){\n      var button;\n      return div.html(Div({\n        display: \"flex\",\n        flexDirection: \"column\",\n        margin: \"0 auto\",\n        maxWidth: \"20em\",\n        height: \"80%\"\n      }).html(Div({\n        paddingBottom: \"1em\"\n      }).html(T(\"infoText\")), button = Button({\n        label: T(\"startQrScanner\")\n      }).tap(function(){\n        div.remove();\n        return inc(\"/pages/misc/qrScanner/qrScanner\")(page, page.submitQRCode);\n      })));\n    };\n    if (typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null) {\n      SolocodePlugin.requestCameraPermission(onStart, onError);\n    }\n    page.form.input.stop();\n    div = Div({\n      position: \"absolute\",\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0,\n      height: \"var(--centerHeight)\",\n      background: Color.white,\n      zIndex: 50\n    });\n    return page.append(div);\n  };\n})();","updated":"2025-08-20T10:27:02.659353"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/update/calcSoftKeyboardBottom/calc.ls","text":"(function(){\n  return function(pw){\n    var h;\n    h = app.softKeyboardHeight;\n    inc(\"fixIOsBrowserWindowScroll/fix\")(h);\n    if (h === pw.lastSoftKeyboardHeight) {\n      return;\n    }\n    pw.lastSoftKeyboardHeight = h;\n    if (pw.popupWrapper.contains(document.activeElement) || pw.popupWrapper.visibleSoftKeyboard) {\n      return inc(\"popup/popup\")(pw, h);\n    } else if (pw.contains(document.activeElement) || pw.contains(document.activeElement.originalDivEditable) || pw.visibleSoftKeyboard) {\n      return inc(\"page/page\")(pw, h);\n    }\n  };\n})();","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/util/previewIdeFilePath/startPage/previewTopic/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"hamburger\",\n      title: \"Topic Preview: topic-\" + page.params.topicPath.split(\"/topic\")[1]\n    });\n  };\n})();","updated":"2025-08-20T10:27:02.659353"},{"path":"pages/misc/timeline/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"close\",\n      onClose: function(){\n        return startPage({\n          history: -1,\n          animation: \"slideDown\"\n        });\n      },\n      title: T(\"history\"),\n      tools: inc(\"calcTools/calc\")(page)\n    });\n  };\n})();","updated":"2025-08-20T10:27:02.659353"},{"path":"pages/support/help/faqQuestion/body/calcBody/calc.ls","text":"(function(){\n  return function(page){\n    var question, body, ref$;\n    question = page.question;\n    body = engine.isiOsApp\n      ? question.ios\n      : engine.isAmazonDevice\n        ? (ref$ = question.amazon) != null\n          ? ref$\n          : question.android\n        : engine.isAndroidApp\n          ? question.android\n          : !engine.isMobileApp ? question.web : void 8;\n    return body != null\n      ? body\n      : body = question.body;\n  };\n})();","updated":"2025-08-20T10:27:02.659353"},{"path":"pages/support/help/faqQuestion/body/calcButtons/button/button.ls","text":"(function(){\n  return function(button){\n    var tap, div;\n    tap = function(){\n      var that;\n      if (that = button.action) {\n        return that();\n      } else {\n        return window.open(button.link, \"_blank\");\n      }\n    };\n    div = Div({\n      padding: \"1em\"\n    }).html(Button(button.label).tap(tap));\n    div.buttonPosition = button.buttonPosition;\n    return div;\n  };\n})();","updated":"2025-08-20T10:27:02.659353"},{"path":"pages/support/help/faqQuestion/body/calcButtons/calc.ls","text":"(function(){\n  return function(page){\n    var buttons, res$, i$, ref$, len$, button;\n    if (!page.question.buttons) {\n      return;\n    }\n    res$ = [];\n    for (i$ = 0, len$ = (ref$ = _.ensureArray(page.question.buttons)).length; i$ < len$; ++i$) {\n      button = ref$[i$];\n      res$.push(inc(\"button/button\")(button));\n    }\n    buttons = res$;\n    return {\n      top: _.filter(buttons, function(b){\n        return b.buttonPosition === \"top\";\n      }),\n      bottom: _.filter(buttons, function(b){\n        return b.buttonPosition === \"bottom\";\n      })\n    };\n  };\n})();","updated":"2025-08-20T10:27:02.659353"},{"path":"data/user/calcWeeklySpecialData/calcTodoLevelCount/calcTestVariant/calc.ls","text":"(function(){\n  return function(assistantName){\n    var eventName, inviteE, levelCountE;\n    eventName = \"assistantShowBadgeInvite\";\n    inviteE = log.findLast({\n      event: eventName,\n      assistantName: assistantName\n    });\n    if (!inviteE) {\n      inviteE = {\n        event: eventName,\n        showBadge: Math.random() > 0.5,\n        assistantName: assistantName,\n        isDebug: engine.isDebug ? true : void 8\n      };\n      log.log(inviteE);\n    }\n    eventName = \"assistantShowBadgeLevelCount\";\n    levelCountE = log.findLast({\n      event: eventName,\n      assistantName: assistantName\n    });\n    if (!levelCountE) {\n      levelCountE = {\n        event: eventName,\n        showBadge: Math.random() > 0.5,\n        assistantName: assistantName,\n        isDebug: engine.isDebug ? true : void 8\n      };\n      log.log(levelCountE);\n    }\n    return {\n      showBadgeInvite: inviteE.showBadge,\n      showBadgeLevelCount: levelCountE.showBadge\n    };\n  };\n})();","updated":"2024-11-01T13:37:37.058528"},{"path":"addons/topbarLevel/abortIcon/popup/popup.ls","text":"(function(){\n  return function(finish){\n    var clickYes, clickNo, div, buttonYes, buttonNo, popup;\n    clickYes = function(){\n      return inc(\"clickYes/click\")(popup, finish);\n    };\n    clickNo = function(){\n      return inc(\"clickNo/click\")(popup);\n    };\n    div = Div({\n      width: \"18em\",\n      margin: \"1.5em 0 0.5em\"\n    }).html(Div().html(T(\"cancelNow\")), Div({\n      margin: \"1em 0 0.4em\"\n    }).html(buttonYes = Button({\n      label: T(\"yes\"),\n      icon: path(\"/lib/svg/icon/checkmark.svg\")\n    }).css({\n      minWidth: \"5em\",\n      margin: \"0.4em\"\n    }).addClass(\"keyManager-enter\").bind(\"keyManager\", clickYes).tap(clickYes), buttonNo = Button({\n      label: T(\"no\"),\n      icon: path(\"/lib/svg/icon/close-small.svg\")\n    }).css({\n      minWidth: \"5.5em\",\n      margin: \"0.4em\"\n    }).tap(clickNo)));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2024-12-10T08:56:29.222847"},{"path":"addons/topbarLevel/abortIcon/popup/clickNo/click.ls","text":"(function(){\n  return function(popup){\n    log.log({\n      event: \"debugLevelAbortPopupCancelled\"\n    });\n    return popup.close();\n  };\n})();","updated":"2024-12-10T08:56:29.222847"},{"path":"addons/topbarLevel/abortIcon/popup/clickYes/click.ls","text":"(function(){\n  return function(popup, finish){\n    popup.close();\n    return finish();\n  };\n})();","updated":"2024-12-10T08:56:29.222847"},{"path":"data/user/calcWeeklySpecialData/calcTodoLevelCount/calc.ls","text":"(function(){\n  return function(assistantName, status){\n    var badgeTests, startEvent, assistantSessionId;\n    if (status === \"hidden\" || status === \"completed\" || status === \"exired\") {\n      return 0;\n    }\n    if (assistantName === \"04_subtraction100\" || assistantName === \"05_subtraction100\") {\n      badgeTests = inc(\"calcTestVariant/calc\")(assistantName);\n    }\n    if (status === \"not started\") {\n      if (badgeTests != null && !badgeTests.showBadgeInvite) {\n        return 0;\n      } else {\n        return 1;\n      }\n    }\n    if (badgeTests != null && !badgeTests.showBadgeLevelCount) {\n      return 0;\n    }\n    startEvent = log.findLast({\n      event: \"assistantStart\",\n      assistantName: assistantName\n    });\n    assistantSessionId = startEvent.assistantSessionId;\n    return inc(\"calcRemainingLevelsToday/calc\")(assistantName, assistantSessionId);\n  };\n})();","updated":"2024-11-08T12:36:10.23257"},{"path":"lib/init/extendLowDash/deburrWithUmlauts/deburr.ls","text":"(function(){\n  return function(string){\n    var umlauts;\n    umlauts = {\n      ä: \"ae\",\n      ö: \"oe\",\n      ü: \"ue\",\n      Ä: \"Ae\",\n      Ö: \"Oe\",\n      Ü: \"Ue\"\n    };\n    string = string.replace(/[äöü]/gi, function(char){\n      return umlauts[char];\n    });\n    return _.deburr(string);\n  };\n})();","updated":"2024-12-18T14:15:28.586735"},{"path":"lib/gui/divEditable/tapCustomSelect/tap.ls","text":"(function(){\n  return function(d, event){\n    var e, lineDiv, flatNodes, n, rectangles, sublines, rectAtPoint, r, s;\n    e = event;\n    if (typeof e.preventDefault == 'function') {\n      e.preventDefault();\n    }\n    e = inc(\"normalizeEvent/normalize\")(e);\n    if (!e) {\n      return;\n    }\n    lineDiv = e.target.closest(\".lineDiv\");\n    if (!lineDiv) {\n      return;\n    }\n    flatNodes = inc(\"getFlatNodes/get\")(lineDiv);\n    n = flatNodes.length === 0\n      ? {\n        node: lineDiv,\n        offset: 0\n      }\n      : (rectangles = inc(\"calcRectangles/calc\")(flatNodes), sublines = inc(\"calcSublines/calc\")(lineDiv, rectangles), rectAtPoint = inc(\"calcRectAtPoint/calc\")(lineDiv, sublines, e), inc(\"calcNodeWithOffset/calc\")(e, rectAtPoint));\n    r = document.createRange();\n    r.setStart(n.node, n.offset);\n    s = window.getSelection();\n    s.removeAllRanges();\n    return s.addRange(r);\n  };\n})();","updated":"2024-12-18T10:08:14.317099"},{"path":"lib/gui/divEditable/tapCustomSelect/normalizeEvent/normalize.ls","text":"(function(){\n  return function(e){\n    var ct, ref$, t, ref1$, e2, ref2$, r;\n    ct = (ref$ = e.changedTouches) != null ? ref$[0] : void 8;\n    t = (ref1$ = e.touches) != null ? ref1$[0] : void 8;\n    e2 = {\n      numberOfTouches: ((ref2$ = e.touches) != null ? ref2$.length : void 8) || 1,\n      clientX: _.round(e.clientX || (ct != null ? ct.clientX : void 8) || (t != null ? t.clientX : void 8) || 0),\n      clientY: _.round(e.clientY || (ct != null ? ct.clientY : void 8) || (t != null ? t.clientY : void 8) || 0)\n    };\n    e2.target = document.elementFromPoint(e2.clientX, e2.clientY);\n    if (!e2.target) {\n      return;\n    }\n    r = e2.target.getBoundingClientRect();\n    e2.layerX = e.layerX || _.round(e2.clientX - r.left);\n    e2.layerY = e.layerY || _.round(e2.clientY - r.top);\n    return e2;\n  };\n})();","updated":"2024-12-18T10:08:14.317099"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/printButton/button.ls","text":"(function(){\n  return function(level, p){\n    var tap;\n    tap = function(){\n      if (typeof log != 'undefined' && log !== null) {\n        log.log({\n          event: \"debugPrintLevelReviewPopup\",\n          puid: level.puid\n        });\n      }\n      return inc(\"/lib/util/print/print\")({\n        div: inc(\"printDiv/div\")(level, p),\n        title: level.title\n      });\n    };\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/print.svg\"),\n      color: Color.grey[400]\n    }).css({\n      position: \"absolute\",\n      right: \"1.5em\",\n      top: \"0.8em\"\n    }).tap({\n      up: tap,\n      tapZone: \"0.5em\"\n    });\n  };\n})();","updated":"2024-12-18T10:08:14.317099"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/printButton/printDiv/div.ls","text":"(function(){\n  return function(level, p){\n    return Div().html(inc(\"title/title\")(level, p), p.popup.findFirst(\".reviewRows\").contentDiv.cloneNode(true));\n  };\n})();","updated":"2024-12-18T10:08:14.317099"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/printButton/printDiv/title/title.ls","text":"(function(){\n  return function(level, p){\n    var date, userName;\n    date = inc(\"/lib/util/formatDate2/format\")(p.levelEvent.created, {\n      ensureDate: true\n    }).formats.full;\n    userName = inc(\"/../app01/data/user/calcUserDescription/calc\")().displayName;\n    return Div().html(Div().html(userName), Div().html(date));\n  };\n})();","updated":"2024-12-18T10:08:14.317099"},{"path":"pages/schoolSearch/01_countrySelect/buttons/button/button.ls","text":"(function(){\n  return function(code, name){\n    var tap;\n    tap = function(){\n      if (code === \"OTHER\") {\n        return startPage({\n          path: path(\"../../../02_countrySearch/page\"),\n          animation: \"slideLeft\"\n        });\n      } else if (code === \"FRDROM\") {\n        return startPage({\n          path: path(\"../../../01a_countrySelectFrDrom/page\"),\n          animation: \"slideLeft\"\n        });\n      } else {\n        return startPage({\n          path: path(\"../../../03_citySearch/page\"),\n          animation: \"slideLeft\",\n          params: {\n            countryCode: code,\n            countryName: name\n          }\n        });\n      }\n    };\n    return Button(name).css({\n      margin: \"1em auto\",\n      display: \"block\"\n    }).tap(tap);\n  };\n})();","updated":"2024-11-13T10:05:38.171729"},{"path":"pages/schoolSearch/01_countrySelect/buttons/buttons.ls","text":"(function(){\n  return function(){\n    var m, n, lang, code, name;\n    m = {\n      de: [\"DE\", \"AT\", \"CH\", \"OTHER\"],\n      en: [\"US\", \"GB\", \"CA\", \"OTHER\"],\n      fr: [\"FR\", \"FRDROM\", \"BE\", \"CH\", \"CA\", \"OTHER\"],\n      es: [\"MX\", \"ES\", \"US\", \"CO\", \"AR\", \"OTHER\"],\n      pt: [\"BR\", \"PT\", \"OTHER\"]\n    };\n    n = {\n      DE: T(\"DE\"),\n      AT: T(\"AT\"),\n      CH: T(\"CH\"),\n      US: T(\"US\"),\n      GB: T(\"GB\"),\n      BE: T(\"BE\"),\n      CA: T(\"CA\"),\n      FR: T(\"FR\"),\n      MX: T(\"MX\"),\n      ES: T(\"ES\"),\n      CO: T(\"CO\"),\n      AR: T(\"AR\"),\n      PT: T(\"PT\"),\n      BR: T(\"BR\"),\n      FRDROM: T(\"FRDROM\"),\n      OTHER: T(\"OTHER\")\n    };\n    lang = engine.guiLanguage.substring(0, 2);\n    return Div({\n      display: \"inline-block\",\n      minWidth: \"12em\"\n    }).html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = m[lang]).length; i$ < len$; ++i$) {\n        code = ref$[i$];\n        name = n[code];\n        results$.push(inc(\"button/button\")(code, name));\n      }\n      return results$;\n    }()));\n  };\n})();","updated":"2024-11-13T10:05:38.171729"},{"path":"pages/schoolSearch/01_countrySelect/_t.ls","text":"(function(){\n  return {\n    whichCountry: {\n      de: \"In welchem Land liegt deine Schule?\",\n      en: \"Which country is your school in?\",\n      fr: \"Dans quel pays est ton école&nbsp;?\",\n      es: \"¿En qué país está tu escuela?\",\n      pt: \"Em qual país está a sua escola?\"\n    },\n    OTHER: {\n      de: \"anderes Land\",\n      en: \"other country\",\n      fr: \"Autre pays\",\n      es: \"Otro país\",\n      pt: \"Outro país\"\n    },\n    DE: {\n      de: \"Deutschland\",\n      en: \"Germany\",\n      fr: \"Allemagne\",\n      es: \"Alemania\",\n      pt: \"Alemanha\"\n    },\n    AT: {\n      de: \"Österreich\",\n      en: \"Austria\",\n      fr: \"Autriche\",\n      es: \"Austria\",\n      pt: \"Áustria\"\n    },\n    CH: {\n      de: \"Schweiz\",\n      en: \"Switzerland\",\n      fr: \"Suisse\",\n      es: \"Suiza\",\n      pt: \"Suíça\"\n    },\n    US: {\n      de: \"USA\",\n      en: \"USA\",\n      fr: \"États-Unis\",\n      es: \"Estados Unidos\",\n      pt: \"Estados Unidos\"\n    },\n    GB: {\n      de: \"Vereinigtes Königreich\",\n      en: \"United Kingdom\",\n      fr: \"Royaume-Uni\",\n      es: \"Reino Unido\",\n      pt: \"Reino Unido\"\n    },\n    CA: {\n      de: \"Kanada\",\n      en: \"Canada\",\n      fr: \"Canada\",\n      es: \"Canadá\",\n      pt: \"Canadá\"\n    },\n    FR: {\n      de: \"Metropolregion Frankreich\",\n      en: \"Metropolitan France\",\n      fr: \"France métropolitaine\",\n      es: \"Francia metropolitana\",\n      pt: \"França Metropolitana\"\n    },\n    FRDROM: {\n      de: \"Frankreich DROM-COM\",\n      en: \"France DROM-COM\",\n      fr: \"France DROM-COM\",\n      es: \"Francia DROM-COM\",\n      pt: \"França DROM-COM\"\n    },\n    BE: {\n      de: \"Belgien\",\n      en: \"Belgium\",\n      fr: \"Belgique\",\n      es: \"Bélgica\",\n      pt: \"Bélgica\"\n    },\n    MX: {\n      de: \"Mexiko\",\n      en: \"Mexico\",\n      fr: \"Mexique\",\n      es: \"México\",\n      pt: \"México\"\n    },\n    ES: {\n      de: \"Spanien\",\n      en: \"Spain\",\n      fr: \"Espagne\",\n      es: \"España\",\n      pt: \"Espanha\"\n    },\n    CO: {\n      de: \"Kolumbien\",\n      en: \"Colombia\",\n      fr: \"Colombie\",\n      es: \"Colombia\",\n      pt: \"Comlômbia\"\n    },\n    AR: {\n      de: \"Argentinien\",\n      en: \"Argentina\",\n      fr: \"Argentine\",\n      es: \"Argentina\",\n      pt: \"Argentina\"\n    },\n    PT: {\n      de: \"Portugal\",\n      en: \"Portugal\",\n      fr: \"Portugal\",\n      es: \"Portugal\",\n      pt: \"Portugal\"\n    },\n    BR: {\n      de: \"Brasilien\",\n      en: \"Brasil\",\n      fr: \"Brésil\",\n      es: \"Brasil\",\n      pt: \"Brasil\"\n    }\n  };\n})();","updated":"2024-11-13T10:05:38.171729"},{"path":"pages/schoolSearch/01a_countrySelectFrDrom/_t.ls","text":"(function(){\n  return {\n    whichCountry: {\n      de: \"In welchem Land liegt deine Schule?\",\n      en: \"Which country is your school in?\",\n      fr: \"Dans quel pays est ton école&nbsp;?\",\n      es: \"¿En qué país está tu escuela?\",\n      pt: \"Em qual país está a sua escola?\"\n    },\n    OTHER: {\n      de: \"anderes Land\",\n      en: \"other country\",\n      fr: \"Autre pays\",\n      es: \"Otro país\",\n      pt: \"Outro país\"\n    },\n    GP: {\n      de: \"Guadeloupe\",\n      en: \"Guadeloupe\",\n      fr: \"Guadeloupe\",\n      es: \"Guadalupe\",\n      pt: \"Guadalupe\"\n    },\n    MQ: {\n      de: \"Martinik\",\n      en: \"Martinique\",\n      fr: \"Martinique\",\n      es: \"Martinica\",\n      pt: \"Martinica\"\n    },\n    GF: {\n      de: \"Französisch-Guayana\",\n      en: \"French Guiana\",\n      fr: \"Guyane\",\n      es: \"Guayana Francesa\",\n      pt: \"Guiana Francesa\"\n    },\n    RE: {\n      de: \"Réunion\",\n      en: \"Réunion\",\n      fr: \"La Réunion\",\n      es: \"Reunión\",\n      pt: \"Reunião\"\n    },\n    PM: {\n      de: \"Saint-Pierre und Miquelon\",\n      en: \"Saint-Pierre and Miquelon\",\n      fr: \"Saint-Pierre-et-Miquelon\",\n      es: \"San Pedro y Miquelón\",\n      pt: \"São Pedro e Miquelão\"\n    },\n    YT: {\n      de: \"Mayotte\",\n      en: \"Mayotte\",\n      fr: \"Mayotte\",\n      es: \"Mayotte\",\n      pt: \"Mayotte\"\n    },\n    BL: {\n      de: \"Saint-Barthélemy\",\n      en: \"Saint-Barthélemy\",\n      fr: \"Saint-Barthélemy\",\n      es: \"San Bartolomé\",\n      pt: \"São Bartolomeu\"\n    },\n    MF: {\n      de: \"Saint-Martin\",\n      en: \"Saint Martin\",\n      fr: \"Saint-Martin\",\n      es: \"San Martín\",\n      pt: \"São Martinho\"\n    },\n    WF: {\n      de: \"Wallis und Futuna\",\n      en: \"Wallis and Futuna\",\n      fr: \"Wallis-et-Futuna\",\n      es: \"Wallis y Futuna\",\n      pt: \"Wallis e Futuna\"\n    },\n    PF: {\n      de: \"Französisch-Polynesien\",\n      en: \"French Polynesia\",\n      fr: \"Polynésie Française\",\n      es: \"Polinesia Francesa\",\n      pt: \"Polinésia Francesa\"\n    },\n    NC: {\n      de: \"Neukaledonien\",\n      en: \"New Caledonia\",\n      fr: \"Nouvelle-Calédonie\",\n      es: \"Nueva Caledonia\",\n      pt: \"Nova Caledônia\"\n    },\n    TF: {\n      de: \"Französische Süd- und Antarktisgebiete\",\n      en: \"French Southern and Antarctic Lands\",\n      fr: \"TAAF\",\n      es: \"Tierras Australes y Antárticas Francesas\",\n      pt: \"Terras Austrais e Antárticas Francesas\"\n    }\n  };\n})();","updated":"2024-11-13T10:05:55.611033"},{"path":"pages/schoolSearch/01a_countrySelectFrDrom/buttons/button/button.ls","text":"(function(){\n  return function(code, name){\n    var tap;\n    tap = function(){\n      return startPage({\n        path: path(\"../../../03_citySearch/page\"),\n        animation: \"slideLeft\",\n        params: {\n          countryCode: code,\n          countryName: name\n        }\n      });\n    };\n    return Button(name).css({\n      margin: \"1em auto\",\n      display: \"block\"\n    }).tap(tap);\n  };\n})();","updated":"2024-11-13T10:05:55.611033"},{"path":"pages/schoolSearch/01a_countrySelectFrDrom/buttons/buttons.ls","text":"(function(){\n  return function(){\n    var m, n, lang, code, name;\n    m = {\n      de: [\"GP\", \"MQ\", \"GF\", \"RE\", \"PM\", \"YT\", \"BL\", \"MF\", \"WF\", \"PF\", \"NC\", \"TF\"],\n      en: [\"GP\", \"MQ\", \"GF\", \"RE\", \"PM\", \"YT\", \"BL\", \"MF\", \"WF\", \"PF\", \"NC\", \"TF\"],\n      fr: [\"GP\", \"MQ\", \"GF\", \"RE\", \"PM\", \"YT\", \"BL\", \"MF\", \"WF\", \"PF\", \"NC\", \"TF\"],\n      es: [\"GP\", \"MQ\", \"GF\", \"RE\", \"PM\", \"YT\", \"BL\", \"MF\", \"WF\", \"PF\", \"NC\", \"TF\"],\n      pt: [\"GP\", \"MQ\", \"GF\", \"RE\", \"PM\", \"YT\", \"BL\", \"MF\", \"WF\", \"PF\", \"NC\", \"TF\"]\n    };\n    n = {\n      GP: T(\"GP\"),\n      MQ: T(\"MQ\"),\n      GF: T(\"GF\"),\n      RE: T(\"RE\"),\n      PM: T(\"PM\"),\n      YT: T(\"YT\"),\n      BL: T(\"BL\"),\n      MF: T(\"MF\"),\n      WF: T(\"WF\"),\n      PF: T(\"PF\"),\n      NC: T(\"NC\"),\n      TF: T(\"TF\")\n    };\n    lang = engine.guiLanguage.substring(0, 2);\n    return Div({\n      display: \"inline-block\",\n      minWidth: \"12em\"\n    }).html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = m[lang]).length; i$ < len$; ++i$) {\n        code = ref$[i$];\n        name = n[code];\n        results$.push(inc(\"button/button\")(code, name));\n      }\n      return results$;\n    }()));\n  };\n})();","updated":"2024-11-13T10:05:55.611033"},{"path":"pages/schoolSearch/01a_countrySelectFrDrom/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"/addons/topbar2/topbar\")({\n          back: true,\n          title: T(\"whichCountry\")\n        });\n      },\n      start: function(){\n        return page.html(inc(\"buttons/buttons\")());\n      }\n    };\n  };\n})();","updated":"2024-11-13T10:05:55.611033"},{"path":"pages/static/antonPlus/1_products/calcProducts/calcDisplayPrice/calc.ls","text":"(function(){\n  return function(product){\n    var price, ref$;\n    price = product.paypal\n      ? product.currency === \"EUR\"\n        ? product.price.replace(\".\", \",\") + \" €\"\n        : product.currency === \"GBP\"\n          ? \"£\" + product.price\n          : product.currency === \"BRL\"\n            ? \"R$\" + product.price\n            : product.currency + \" \" + product.price\n      : product.price;\n    return price = price != null ? (ref$ = price.replace(/,00$/, \"\")) != null ? ref$.replace(/\\.00$/, \"\") : void 8 : void 8;\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"addons/navbar/bar/user/user/_badge/badge.ls","text":"(function(){\n  return function(p){\n    var div, i$, ref$, len$, eventName;\n    div = Div({\n      display: \"flex\"\n    });\n    for (i$ = 0, len$ = (ref$ = p.onNewLogEventNames || []).length; i$ < len$; ++i$) {\n      eventName = ref$[i$];\n      div.addClass(\"onNewLogEvents_\" + eventName);\n    }\n    if (p.onNewLogEventNames != null) {\n      div.onNewLogEvents = function(filteredEvents, events){\n        return typeof p.onNewLogEvents == 'function' ? p.onNewLogEvents(div, filteredEvents, events) : void 8;\n      };\n    }\n    if (p.badgeNumber !== 0) {\n      div.css({\n        display: \"flex\",\n        position: \"absolute\",\n        top: \"-7px\",\n        left: \"-7px\",\n        backgroundColor: Color.red[600],\n        color: Color.white,\n        fontSize: \"0.6em\",\n        width: \"1.4em\",\n        height: \"1.4em\",\n        borderRadius: \"8px\",\n        zIndex: 1,\n        filter: 'drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.4))'\n      }).html(p.badgeNumber);\n    }\n    return div;\n  };\n})();","updated":"2024-11-14T08:21:32.857544"},{"path":"data/user/calcWeeklySpecialData/calcTodoLevelCount/calcRemainingLevelsToday/calc.ls","text":"(function(){\n  return function(assistantName, assistantSessionId){\n    var levelsPerDay, events, today, eventsToday, m;\n    levelsPerDay = inc(\"../../_getLevelsPerDay/get\")(assistantName);\n    events = log.list({\n      event: \"assistantLevelFinish\",\n      assistantSessionId: assistantSessionId\n    });\n    today = new Date().setHours(0, 0, 0, 0);\n    eventsToday = _.filter(events, function(e){\n      return new Date(e.created).setHours(0, 0, 0, 0) === today;\n    }).length;\n    m = events.length % levelsPerDay;\n    if (m === 0 && eventsToday === 0) {\n      return levelsPerDay;\n    } else if (m === 0 && eventsToday >= levelsPerDay) {\n      return 0;\n    } else if (eventsToday < m) {\n      return 2 * levelsPerDay - m;\n    } else {\n      return levelsPerDay - m;\n    }\n  };\n})();","updated":"2024-11-15T12:32:53.817656"},{"path":"data/user/calcWeeklySpecialData/calcStatus/calc.ls","text":"(function(){\n  return function(assistantName){\n    var startEvent, assistantSessionId, expiredEvent, completedEvent, lastLevelFinishEvent, today, createdDay, daysAgo, levelsPerDay, events, eventsToday;\n    startEvent = log.findLast({\n      event: \"assistantStart\",\n      assistantName: assistantName\n    });\n    if (!startEvent) {\n      return \"not started\";\n    }\n    assistantSessionId = startEvent.assistantSessionId;\n    expiredEvent = log.findLast({\n      event: \"assistantExpired\",\n      assistantSessionId: assistantSessionId\n    });\n    if (expiredEvent) {\n      return \"hidden\";\n    }\n    completedEvent = log.findLast({\n      event: \"assistantCompleted\",\n      assistantSessionId: assistantSessionId\n    });\n    if (completedEvent) {\n      if (new Date() - new Date(completedEvent.created) > 1000 * 60 * 60 * 24 * 2) {\n        return \"hidden\";\n      } else {\n        return \"completed\";\n      }\n    }\n    lastLevelFinishEvent = log.findLast({\n      event: \"assistantLevelFinish\",\n      assistantSessionId: assistantSessionId\n    });\n    if (!lastLevelFinishEvent) {\n      lastLevelFinishEvent = startEvent;\n    }\n    today = new Date().setHours(0, 0, 0, 0);\n    createdDay = new Date(lastLevelFinishEvent.created).setHours(0, 0, 0, 0);\n    daysAgo = (today - createdDay) / (1000 * 60 * 60 * 24);\n    if (daysAgo === 0) {\n      levelsPerDay = inc(\"../_getLevelsPerDay/get\")(assistantName);\n      events = log.list({\n        event: \"assistantLevelFinish\",\n        assistantSessionId: assistantSessionId\n      });\n      eventsToday = _.filter(events, function(e){\n        return new Date(e.created).setHours(0, 0, 0, 0) === today;\n      }).length;\n      if (eventsToday >= levelsPerDay && events.length % levelsPerDay === 0) {\n        return \"day completed\";\n      } else {\n        return \"no warning\";\n      }\n    } else if (daysAgo === 1) {\n      return \"no warning\";\n    } else if (daysAgo === 2) {\n      return \"warning1\";\n    } else if (daysAgo === 3) {\n      return \"warning2\";\n    } else {\n      return \"expired\";\n    }\n  };\n})();","updated":"2024-11-15T12:32:53.817656"},{"path":"pages/schoolSearch/00_shared/topSearchInput/input.ls","text":"(function(){\n  return function(page){\n    var search;\n    search = _.debounce(function(){\n      var v;\n      v = page.input.getValue().trim();\n      return page.search(v);\n    }, 500);\n    return Div({\n      display: \"flex\"\n    }).append(page.input = inc(\"/lib/gui/inputEditable/input\")({\n      showResetIcon: true,\n      showSearchIcon: true,\n      onSubmit: search,\n      onChange: search,\n      onReset: search,\n      autoSubmitDelay: 1000,\n      value: page.params.search || \"\"\n    }).css({\n      flex: \"1 1 auto\",\n      maxWidth: \"35em\",\n      margin: \"0\",\n      textAlign: \"left\",\n      backgroundColor: \"white\"\n    }));\n  };\n})();","updated":"2025-03-13T08:43:47.987951"},{"path":"pages/schoolSearch/04_schoolSearch/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.search = function(search){\n          search == null && (search = \"\");\n          page.params.search = search;\n          return page.load(search);\n        };\n        page.load = function(search){\n          return inc(\"load/load\")({\n            page: page,\n            search: search,\n            onLoaded: page.onLoaded\n          });\n        };\n        page.onLoaded = function(schools){\n          page.schools = schools;\n          if (schools.length === 0) {\n            page.html(inc(\"notFound/notFound\")(page));\n            return page.bottom.empty().hide();\n          } else {\n            page.html(inc(\"list/list\")(page));\n            return page.bottom.fadeIn(1).html(inc(\"createNewSchoolLink/link\")(page));\n          }\n        };\n        return page.search(page.params.search);\n      }\n    };\n  };\n})();","updated":"2025-03-13T08:43:47.987951"},{"path":"pages/schoolSearch/03_citySearch/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.search = function(search){\n          search == null && (search = \"\");\n          page.params.search = search;\n          if (search.length < 2) {\n            page.html(inc(\"startText/text\")(page));\n            return page.bottom.empty().hide();\n          } else {\n            return page.load(search);\n          }\n        };\n        page.load = function(search){\n          return inc(\"load/load\")({\n            page: page,\n            search: search,\n            onLoaded: page.onLoaded\n          });\n        };\n        page.onLoaded = function(cities){\n          page.cities = cities;\n          if (cities.length === 0) {\n            page.html(inc(\"notFound/notFound\")(page));\n            return page.bottom.empty().hide();\n          } else {\n            page.html(inc(\"list/list\")(page));\n            return page.bottom.fadeIn(1).html(inc(\"createNewSchoolLink/link\")(page));\n          }\n        };\n        if (!(page.params.history <= 0)) {\n          page.input.start();\n        }\n        return page.search(page.params.search);\n      }\n    };\n  };\n})();","updated":"2025-03-13T08:43:47.987951"},{"path":"pages/schoolSearch/02_countrySearch/page.ls","text":"(function(){\n  return function(page){\n    var p;\n    p = page.params;\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.search = function(search){\n          search == null && (search = \"\");\n          p.search = search;\n          if (search.length < 2) {\n            return page.html(inc(\"startText/text\")(page));\n          } else {\n            return page.load(search);\n          }\n        };\n        page.load = function(search){\n          return inc(\"load/load\")({\n            page: page,\n            search: search,\n            onLoaded: page.onLoaded\n          });\n        };\n        page.onLoaded = function(countries){\n          page.countries = countries;\n          if (countries.length === 0) {\n            return page.html(inc(\"notFound/notFound\")(page));\n          } else {\n            return page.html(Div({\n              display: \"flex\",\n              flexDirection: \"column\",\n              height: \"var(--centerHeight)\",\n              alignItems: \"stretch\"\n            }).append(inc(\"list/list\")(page)));\n          }\n        };\n        page.input.start();\n        return page.search(p.search);\n      }\n    };\n  };\n})();","updated":"2025-03-13T08:43:47.987951"},{"path":"pages/start/startUser/07_extraPages/showLoginCodeOnce/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      start: function(){\n        var loginCode;\n        loginCode = log.findLast(\"setLoginCode\").value;\n        return page.html(Div({\n          margin: \"0 auto\",\n          width: \"30em\",\n          maxWidth: \"90%\"\n        }).html(Div({\n          marginBottom: \"1em\",\n          lineHeight: \"1.5em\"\n        }).html(T(\"text\")), Div({\n          fontSize: \"1.3em\"\n        }).html(T(\"loginCode\"), Span({\n          userSelect: \"text\",\n          marginLeft: \"0.2em\"\n        }).secureHtml(loginCode.toLowerCase())), inc(\"buttonPrint/button\")(loginCode), inc(\"buttonDone/button\")(page)));\n      }\n    };\n  };\n})();","updated":"2025-03-13T08:43:47.987951"},{"path":"lib/init/onIdeIFrameMessage/on.ls","text":"(function(){\n  return function(){\n    if (window === window.top) {\n      return;\n    }\n    return window.addEventListener(\"message\", function(event){\n      var args, that, userDescription, ref$, icons, i$, len$, icon, results$ = [], results1$ = [];\n      if (event.data.type === \"idePreview\") {\n        args = (that = event.data.previewTrainerIndex) != null\n          ? [event.data.path, that]\n          : [event.data.path];\n        return inc(\"/lib/util/previewIdeFilePath/preview\").apply(null, args);\n      } else if (event.data.type === \"connectIdeUser\") {\n        args = {};\n        userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n        if (userDescription.isSolocodeMember) {\n          args.logId = log.id();\n        }\n        return (ref$ = window.parent) != null ? ref$.postMessage({\n          type: \"connectIdeUser\",\n          args: args\n        }, \"*\") : void 8;\n      } else if (event.data.type === \"hideDebugIcons\") {\n        icons = body.findAll(\".skipIcon, .debugIcons, .levelDebugIcon\");\n        for (i$ = 0, len$ = icons.length; i$ < len$; ++i$) {\n          icon = icons[i$];\n          results$.push(icon.css({\n            visibility: \"hidden\"\n          }));\n        }\n        return results$;\n      } else if (event.data.type === \"showDebugIcons\") {\n        icons = body.findAll(\".skipIcon, .debugIcons, .levelDebugIcon\");\n        for (i$ = 0, len$ = icons.length; i$ < len$; ++i$) {\n          icon = icons[i$];\n          results1$.push(icon.css({\n            visibility: \"visible\"\n          }));\n        }\n        return results1$;\n      }\n    });\n  };\n})();","updated":"2025-03-13T08:43:47.987951"},{"path":"addons/_translationOverlayButtonBar/translateButton/button.ls","text":"(function(){\n  return function(page){\n    var languageName;\n    languageName = page.translationOverlayLanguage.languageName;\n    return Div({\n      display: \"flex\",\n      fontSize: \"0.9em\",\n      padding: \"0 0.8em\",\n      minHeight: \"2.4em\"\n    }).addClass(\"translationButton\").html(languageName, SvgIcon({\n      svg: path(\"svg/icon1.svg\"),\n      color: \"black\",\n      size: \"0.8em\"\n    }).css({\n      padding: \"0.2em\"\n    })).tap({\n      animation: \"hover\",\n      up: function(){\n        return inc(\"tap/tap\")(page, this);\n      }\n    });\n  };\n})();","updated":"2025-03-13T08:43:47.987951"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/translationTopbar/init.ls","text":"(function(){\n  return function(pw){\n    var translationTopbar;\n    if (app.isTopicApp) {\n      return;\n    }\n    translationTopbar = inc(\"/addons/_translationOverlayButtonBar/bar\")(pw.page);\n    if (app.navbar != null && app.navbarPosition === \"top\") {\n      return pw != null ? pw.navTop.prepend(translationTopbar) : void 8;\n    } else {\n      return pw != null ? pw.top.prepend(translationTopbar) : void 8;\n    }\n  };\n})();","updated":"2025-03-13T08:43:47.987951"},{"path":"data/user/calcWeeklySpecialData/_getLevelsPerDay/get.ls","text":"(function(){\n  return function(assistantName){\n    if (assistantName === \"01_subtraction100\" || assistantName === \"02_subtraction100\" || assistantName === \"03_subtraction100\" || assistantName === \"04_subtraction100\") {\n      return 3;\n    } else if (assistantName === \"06_subtraction100\" || assistantName === \"08_subtraction100\") {\n      return 4;\n    } else {\n      return 5;\n    }\n  };\n})();","updated":"2025-01-17T10:30:30.977456"},{"path":"addons/navbar/bar/user/user/items/itemMathWeeklySpecial/label/avatarIcon/svgs/einstein_v2.svg","text":"<svg width=\"421\" height=\"242\" viewBox=\"0 0 421 242\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M319.2 164.4C317.2 165.4 323.2 221.4 317.2 233.4C311.2 245.4 298.2 195.4 298.2 195.4C298.2 195.4 294.2 226.4 285.2 219.4C276.2 212.4 294.2 160.4 294.2 160.4L319.2 164.4Z\" fill=\"#F9B406\"/>\n<path d=\"M252.9 19.7C252.9 19.7 224.9 7.7 209.9 1.7C194.9 -4.3 152.9 25.7 152.9 25.7L194.9 71.7L252.9 19.7Z\" fill=\"#FFB000\"/>\n<path d=\"M164.4 161.1L68.8999 107.9L162.6 52.1C199.9 30.1 222.1 21.4 258.9 19.1C312.9 15.7 354.2 39 382.9 71.3L402.9 91.5L356.9 141.6C349 150.3 339.8 158.1 329.6 164.8C313.3 175.5 298.6 181.2 286.2 183.3C245.5 190.3 199.1 180.4 164.4 161.1Z\" fill=\"#EF6C02\"/>\n<g opacity=\"0.3\">\n<path d=\"M119.2 77.9L96 91.7C96.5 97 97.5 102.2 98.8 107.3C100.7 114.7 103.5 121.9 106.8 129L147.3 151.6C131.7 128.9 117.5 103 119.1 77.9H119.2Z\" fill=\"white\"/>\n<path d=\"M190 55.3C192.2 47.7 195.2 40.2 198.7 33C189 37.2 178.8 42.6 167.2 49.3C155.7 88.1 160 129.6 180.3 166.6C180.9 167.6 181.5 168.7 182.1 169.7C193.3 174.4 205.3 178.3 217.6 181C187.6 144.8 177.2 98.3 189.9 55.3H190Z\" fill=\"white\"/>\n<path d=\"M248.7 50.5C252 39.6 256.4 29 261.9 18.9C260.9 18.9 259.9 18.9 258.9 19C250 19.6 242 20.5 234.5 21.9C211.4 72.9 213.6 130.3 241.5 180.3C242.4 181.9 243.3 183.4 244.2 184.9C253.4 185.6 262.5 185.7 271.5 185.1C243.8 144.8 235.2 96.1 248.7 50.5Z\" fill=\"white\"/>\n</g>\n<path d=\"M308.4 119.7C329.111 119.7 345.9 102.911 345.9 82.2C345.9 61.4893 329.111 44.7 308.4 44.7C287.689 44.7 270.9 61.4893 270.9 82.2C270.9 102.911 287.689 119.7 308.4 119.7Z\" fill=\"white\"/>\n<path d=\"M308.4 91.7C315.303 91.7 320.9 86.1036 320.9 79.2C320.9 72.2965 315.303 66.7 308.4 66.7C301.496 66.7 295.9 72.2965 295.9 79.2C295.9 86.1036 301.496 91.7 308.4 91.7Z\" fill=\"black\"/>\n<path d=\"M269.9 83.2C269.9 63 285.7 42.7 305.9 42.7C326.1 42.7 342.9 52.7 344.9 74.7\" fill=\"#C44D1E\"/>\n<path d=\"M382.3 87.9C382.3 87.9 405.1 68.5 410.8 70C416.5 71.5 411.2 70.1 411.4 70.2C416.7 72.1 417.6 80.6 413 84.1C408.4 87.6 405.5 89.2 401.7 89.4C394.5 89.9 382.4 87.9 382.4 87.9H382.3Z\" fill=\"#B22222\"/>\n<path d=\"M382.2 88.8C382.2 88.8 412.6 96.9 417.9 93.2C418.1 93.1 418.3 92.9 418.4 92.8C423.1 88.9 420.9 81 414.9 79.8C408.9 78.6 405.4 78.3 401.4 79.6C393.9 82.1 382.2 88.8 382.2 88.8Z\" fill=\"#A51616\"/>\n<path d=\"M86.5999 98.2C86.5999 98.2 72.7999 122.8 49.0999 129.4C25.3999 136 0.899902 122.1 0.899902 122.1C0.899902 122.1 14.6999 97.5 38.3999 90.9C62.0999 84.3 86.5999 98.2 86.5999 98.2Z\" fill=\"#EAA200\"/>\n<path d=\"M86.0999 98.9C86.0999 98.9 93.7998 126.1 81.7998 147.5C69.7998 168.9 42.5999 176.5 42.5999 176.5C42.5999 176.5 34.8999 149.3 46.8999 127.9C58.8999 106.5 86.0999 98.9 86.0999 98.9Z\" fill=\"#F9B406\"/>\n<path d=\"M276 171.3C273.9 172.1 273.8 228.4 266.5 239.7C259.2 251 251.7 199.9 251.7 199.9C251.7 199.9 244.4 230.3 236.2 222.4C228 214.5 251.5 164.7 251.5 164.7L275.9 171.4L276 171.3Z\" fill=\"#F9B406\"/>\n</svg>\n","updated":"2024-12-20T11:43:50.69187"},{"path":"data/school/calcSchoolDescription/calcCity/calc.ls","text":"(function(){\n  return function(schoolLog, d){\n    var e1, e2, city, ref$, ref1$;\n    e1 = schoolLog.findLast(\"setSchoolCustomLocation\");\n    e2 = schoolLog.findLast(\"setSchoolGooglePlaceDetails\");\n    city = (e1 != null ? (ref$ = e1.value) != null ? ref$.city : void 8 : void 8) || (e2 != null ? (ref1$ = e2.details) != null ? ref1$.city : void 8 : void 8);\n    if (city && !_.isString(city)) {\n      city = city[engine.guiLanguage] || _.values(city)[0];\n    }\n    return d.city = city;\n  };\n})();","updated":"2025-03-14T13:54:37.740979"},{"path":"data/school/calcSchoolDescription/calcZip/calc.ls","text":"(function(){\n  return function(schoolLog, d){\n    var e1, e2, ref$, ref1$;\n    e1 = schoolLog.findLast(\"setSchoolCustomLocation\");\n    e2 = schoolLog.findLast(\"setSchoolGooglePlaceDetails\");\n    return d.zip = (e1 != null ? (ref$ = e1.value) != null ? ref$.zip : void 8 : void 8) || (e2 != null ? (ref1$ = e2.details) != null ? ref1$.zip : void 8 : void 8);\n  };\n})();","updated":"2025-03-14T13:54:37.740979"},{"path":"data/school/calcSchoolDescription/calcCountry/calc.ls","text":"(function(){\n  return function(schoolLog, d){\n    var e1, e2, country, ref$, ref1$, lang;\n    e1 = schoolLog.findLast(\"setSchoolCustomLocation\");\n    e2 = schoolLog.findLast(\"setSchoolGooglePlaceDetails\");\n    country = (e1 != null ? (ref$ = e1.value) != null ? ref$.country : void 8 : void 8) || (e2 != null ? (ref1$ = e2.details) != null ? ref1$.country : void 8 : void 8);\n    if (country && !_.isString(country)) {\n      if (engine.guiLanguage === \"en_gb\") {\n        lang = \"en_us\";\n      } else {\n        lang = engine.guiLanguage;\n      }\n      country = country[lang] || _.values(country)[0];\n    }\n    return d.country = country;\n  };\n})();","updated":"2025-03-14T13:54:37.740979"},{"path":"data/school/calcSchoolDescription/calc.ls","text":"(function(){\n  return function(schoolCode, userLog){\n    var schoolLog, sd, ref$, ref1$, ref2$, ref3$;\n    userLog = userLog || log;\n    schoolLog = window.schoolLogs[schoolCode];\n    if (!schoolLog || !userLog) {\n      return;\n    }\n    sd = {\n      schoolCode: schoolCode\n    };\n    inc(\"calcName/calc\")(schoolLog, sd);\n    sd.location = (ref$ = schoolLog.findLast(\"setSchoolLocation\")) != null ? ref$.value : void 8;\n    sd.imageId = (ref1$ = schoolLog.findLast(\"setSchoolImageId\")) != null ? ref1$.value : void 8;\n    sd.hasDir = (ref2$ = schoolLog.findLast(\"setSchoolHasDir\")) != null ? ref2$.value : void 8;\n    sd.hasAntonPlus = inc(\"calcHasAntonPlus/calc\")(schoolLog);\n    sd.hasDPA = (ref3$ = schoolLog.findLast(\"setSchoolHasDPA\")) != null ? ref3$.value : void 8;\n    sd.hasProAccess = inc(\"calcHasProAccess/calc\")(schoolLog);\n    sd.hasDirAccess = sd.hasDir && sd.hasProAccess;\n    sd.hasChat = inc(\"calcHasChat/calc\")(schoolLog);\n    inc(\"calcIsAdminAndDirValues/calc\")(userLog, sd);\n    inc(\"calcZip/calc\")(schoolLog, sd);\n    inc(\"calcCity/calc\")(schoolLog, sd);\n    inc(\"calcStateCode/calc\")(schoolLog, sd);\n    inc(\"calcCountry/calc\")(schoolLog, sd);\n    return sd;\n  };\n})();","updated":"2025-03-14T13:54:37.740979"},{"path":"data/school/calcSchoolDescription/calcStateCode/calc.ls","text":"(function(){\n  return function(schoolLog, d){\n    var e1, e2, ref$, ref1$;\n    e1 = schoolLog.findLast(\"setSchoolCustomLocation\");\n    e2 = schoolLog.findLast(\"setSchoolGooglePlaceDetails\");\n    return d.stateCode = (e1 != null ? (ref$ = e1.value) != null ? ref$.stateCode : void 8 : void 8) || (e2 != null ? (ref1$ = e2.details) != null ? ref1$.stateCode : void 8 : void 8);\n  };\n})();","updated":"2025-03-14T13:54:37.740979"},{"path":"addons/navbar/bar/user/user/items/itemMathWeeklySpecial/label/avatarIcon/icon.ls","text":"(function(){\n  return function(weeklySpecialData){\n    var ref$;\n    return Div({\n      marginLeft: \"0.7em\",\n      display: \"flex\",\n      alignItems: \"start\",\n      height: \"100%\",\n      filter: \"drop-shadow(0 0 10px rgba(0, 0, 0, 0.2))\"\n    }).html((ref$ = weeklySpecialData.status) === \"not started\" || ref$ === \"expired\" || ref$ === \"completed\"\n      ? inc(\"/../app01-avatar/avatarTalk/avatarTalk\")({\n        size: \"4em\",\n        avatarDescription: inc(\"avatarDescription/description\")()\n      })\n      : SvgIcon({\n        size: \"4em\",\n        svg: weeklySpecialData.assistantName === \"10_subtraction100\"\n          ? path(\"svgs/einstein.svg\")\n          : path(\"svgs/einstein_v2.svg\")\n      }).css({\n        transform: \"scale(-1, 1)\",\n        padding: \"0.4em 0.2em 0\"\n      }));\n  };\n})();","updated":"2025-03-21T13:53:09.303504"},{"path":"pages/start/startUser/07_extraPages/showBWStateLicenseInfo/page/buttonNotNow/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      return inc(\"../../../_onExtraPageDone/on\")();\n    };\n    return Div({\n      color: Color.grey[450]\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"notNowButton\"),\n      direction: \"right\"\n    }).css({\n      padding: \"0.5em\",\n      marginBottom: \"1em\"\n    }).tap(tap));\n  };\n})();","updated":"2025-03-14T13:54:37.740979"},{"path":"pages/start/startUser/07_extraPages/showBWStateLicenseInfo/page/subtitle/subtitle.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      marginBottom: \"1em\",\n      fontWeight: \"bold\"\n    }).html(T(\"subtitle\"));\n  };\n})();","updated":"2025-03-14T13:54:37.740979"},{"path":"pages/start/startUser/07_extraPages/showBWStateLicenseInfo/page/text/text.ls","text":"(function(){\n  return function(text){\n    return Div({\n      textAlign: \"justify\",\n      marginBottom: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(text);\n  };\n})();","updated":"2025-03-14T13:54:37.740979"},{"path":"pages/start/startUser/07_extraPages/showBWStateLicenseInfo/page/title/title.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      margin: \"1em 0\",\n      fontSize: \"1.2em\",\n      fontWeight: \"bold\"\n    }).html(T(\"title\"));\n  };\n})();","updated":"2025-03-14T13:54:37.740979"},{"path":"lib/init/onNewLogEvents/on.ls","text":"(function(){\n  return function(){\n    var handlerFunction, onEvents;\n    handlerFunction = {\n      isGroupMember: inc(\"isGroupMember/isGroupMember\"),\n      isSchoolMember: inc(\"isSchoolMember/isSchoolMember\"),\n      userIsDeleted: inc(\"userIsDeleted/userIsDeleted\"),\n      deviceSetRememberUser: inc(\"deviceSetRememberUser/deviceSetRememberUser\"),\n      deviceSetDebug: inc(\"deviceSetDebug/deviceSetDebug\"),\n      deviceRemoteUserLogout: inc(\"deviceRemoteUserLogout/deviceRemoteUserLogout\"),\n      debugOpenFileFromIDE: inc(\"debugOpenFileFromIDE/debugOpenFileFromIDE\"),\n      groupIsDeleted: inc(\"groupIsDeleted/groupIsDeleted\"),\n      deleteEvent: inc(\"deleteEventIsGroupMember/isGroupMember\")\n    };\n    onEvents = function(events){\n      var eventsGrouped, eventName, filteredEvents, i$, ref$, len$, el, results$ = [];\n      events = _.orderBy(events, \"created\", \"asc\");\n      eventsGrouped = _.groupBy(events, \"event\");\n      for (eventName in eventsGrouped) {\n        filteredEvents = eventsGrouped[eventName];\n        for (i$ = 0, len$ = (ref$ = body.findAll(\".onNewLogEvents_\" + eventName)).length; i$ < len$; ++i$) {\n          el = ref$[i$];\n          if (typeof el.onNewLogEvents == 'function') {\n            el.onNewLogEvents(filteredEvents, events);\n          }\n        }\n      }\n      for (i$ = 0, len$ = (ref$ = body.findAll(\".onNewLogEvents_all\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        if (typeof el.onNewLogEvents == 'function') {\n          el.onNewLogEvents(events, events);\n        }\n      }\n      for (eventName in eventsGrouped) {\n        filteredEvents = eventsGrouped[eventName];\n        results$.push(typeof handlerFunction[eventName] == 'function' ? handlerFunction[eventName](filteredEvents) : void 8);\n      }\n      return results$;\n    };\n    return body.bind(\"onNewLogEvents\", function(e){\n      return onEvents(e.detail.events);\n    });\n  };\n})();","updated":"2025-01-07T15:07:28.91647"},{"path":"pages/static/antonPlus/1_products/schoolLicence/schoolLicence.ls","text":"(function(){\n  return function(){\n    var tap;\n    if (engine.guiLanguage === \"en_us\") {\n      return;\n    }\n    tap = function(){\n      return startPage({\n        path: path(\"/pages/static/schoolLicense/page\"),\n        history: 0,\n        animation: \"fadeIn\"\n      });\n    };\n    return Div().css({\n      padding: \"1.5em 0\",\n      textAlign: \"left\",\n      borderTop: \"1px solid \" + Color.grey[200]\n    }).html(T(\"schoolLicence1\"), Div().css({\n      display: \"inline-block\",\n      textDecoration: \"underline\",\n      color: Color.blue[800]\n    }).html(T(\"schoolLicence2\")).tap(tap), \".\");\n  };\n})();","updated":"2026-03-13T16:37:20.697364"},{"path":"lib/gui/divEditable/setValue/set.ls","text":"(function(){\n  return function(d, value){\n    var lines, l, s, lineDiv;\n    if (value === d.getValue() && d.div.firstChild != null) {\n      return;\n    }\n    value == null && (value = \"\");\n    lines = value.split(\"\\n\");\n    d.div.html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = lines).length; i$ < len$; ++i$) {\n        l = ref$[i$];\n        s = inc(\"../_shared/convertPlainString/convert\")(l, d.parseMode);\n        lineDiv = Div().html(d.createLineNodes(s));\n        d.cleanupLine(lineDiv);\n        results$.push(lineDiv);\n      }\n      return results$;\n    }()));\n    d.updateLineNumbers();\n    if (d.isStarted) {\n      d.setSelectionPositions({\n        line: \"last\",\n        charPos: 1000000\n      });\n      d.onSelectionChange();\n    }\n    return requestAnimationFrame(function(){\n      return d.div.dispatchEvent(new Event(\"setValue\"));\n    });\n  };\n})();","updated":"2025-03-17T10:49:02.735042"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showResult/row/blockRow/blockRow.ls","text":"(function(){\n  return function(o, pd, onClick, result){\n    var ref$, click, stats, t;\n    if (!((ref$ = result.block) != null && ref$.path)) {\n      return;\n    }\n    click = function(){\n      onClick();\n      return startPage({\n        path: path(\"/pages/content/plan/page\"),\n        animation: \"fadeIn\",\n        params: {\n          context: \"searchResult\",\n          searchQuery: o.searchQuery,\n          planPath: pd.planPath,\n          blockPath: result.block.path,\n          topicPath: result.topic.path\n        }\n      });\n    };\n    stats = inc(\"/data/user/calcBlockStats/calc\")(result.block);\n    return Div().cssClass({\n      display: \"flex\",\n      padding: \"0.4em\",\n      marginLeft: \"1.5em\",\n      fontSize: \"0.9em\"\n    }).html(Div().css({\n      flex: \"1 1 auto\"\n    }).html(inc(\"/lib/util/tagSearchInString/tagSearchInString\")(result.block.title, o.searchQuery.split(/\\s+/), \"<m-blue>\"), (t = result.block.matchedTags) ? inc(\"../_shared/tag/tag\")(t, o.searchQuery) : void 8), inc(\"/lib/gui/verticalBarCanvas/verticalBarCanvas\")(stats)).tap(click);\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showResult/row/planRow/row.ls","text":"(function(){\n  return function(o, i, pd, onClick, result){\n    var click;\n    click = function(){\n      onClick();\n      return startPage({\n        path: path(\"/pages/content/plan/page\"),\n        animation: \"fadeIn\",\n        params: {\n          planPath: pd.planPath\n        }\n      });\n    };\n    return Div().cssClass({\n      padding: \"0.5em 0.5em 0.3em\",\n      marginTop: \"0.4em\",\n      borderTop: i !== 0 ? \"1px solid \" + Color.grey[300] : void 8,\n      fontWeight: \"bold\"\n    }).html(pd.displayName).tap(click);\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showResult/row/topicRow/row.ls","text":"(function(){\n  return function(o, pd, onClick, result){\n    var ref$, topicT, click, t;\n    if (!((ref$ = result.topic) != null && ref$.path)) {\n      return;\n    }\n    topicT = result.topic.title;\n    click = function(){\n      onClick();\n      return startPage({\n        path: path(\"/pages/content/plan/page\"),\n        animation: \"fadeIn\",\n        params: {\n          context: \"searchResult\",\n          searchQuery: o.searchQuery,\n          planPath: pd.planPath,\n          topicPath: result.topic.path\n        }\n      });\n    };\n    return Div().cssClass({\n      padding: \"0.4em 0.4em 0.2em 0.4em\",\n      marginLeft: \"0.5em\",\n      fontSize: \"0.9em\"\n    }).html(inc(\"/lib/util/tagSearchInString/tagSearchInString\")(topicT, o.searchQuery.split(/\\s+/), \"<m-blue>\"), (t = result.topicTag) ? inc(\"../_shared/tag/tag\")(t, o.searchQuery) : void 8).tap(click);\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/init/_t.ls","text":"(function(){\n  return {\n    oldBrowser: {\n      de: \"Dieser Browser ist zu alt und wird von ANTON nicht unterstützt.<br>Bitte aktualisiere deinen Browser oder installiere dir einen dieser Browser:<br><br>Firefox - <a href='https://www.mozilla.org/de/firefox/'>https://www.mozilla.org/de/firefox/</a><br>Chrome - <a href='https://www.google.com/chrome/'>https://www.google.com/chrome/</a>\",\n      en: \"This browser is too old and is not supported by ANTON.<br>Please update your browser or install one of the following:<br><br>Firefox - <a href='https://www.mozilla.org/en/firefox/'>https://www.mozilla.org/en/firefox/</a><br>Chrome - <a href='https://www.google.com/chrome/'>https://www.google.com/chrome/</a>\",\n      fr: \"Ce navigateur est trop ancien et n'est pas pris en charge par ANTON.<br>Merci de le mettre à jour ou d'installer l'un des navigateurs suivants&nbsp;:<br><br>Firefox - <a href='https://www.mozilla.org/fr/firefox/'>https://www.mozilla.org/fr/firefox/</a><br>Chrome - <a href='https://www.google.com/chrome/'>https://www.google.com/chrome/</a>\",\n      es: \"Este navegador es demasiado antiguo y no es compatible con ANTON.<br>Actualiza tu navegador o instala uno de los siguientes:<br><br>Firefox - <a href='https://www.mozilla.org/fr/firefox/'>https://www.mozilla.org/es/firefox/</a><br>Chrome - <a href='https://www.google.com/chrome/'>https://www.google.com/chrome/</a>\",\n      pt: \"Este navegador é muito antigo e não é compatível com ANTON.<br>Por favor, atualize seu navegador ou instale um dos seguintes navegadores:<br><br>Firefox - <a href='https://www.mozilla.org/fr/firefox/'>https://www.mozilla.org/es/firefox/</a><br>Chrome - <a href='https://www.google.com/chrome/'>https://www.google.com/chrome/</a>\"\n    },\n    errorMessage: {\n      de: \"Beim ANTON-Start ist ein Fehler aufgetreten.<br> Wir kümmern uns darum.\",\n      en: \"An error has occurred while loading ANTON.<br>We are working on it.\",\n      fr: \"Une erreur s'est produite pendant le chargement d'ANTON.<br>On s'en occupe&nbsp;!\",\n      es: \"Ocurrió un error al iniciar ANTON.<br>Lo estamos resolviendo.\",\n      pt: \"Um erro ocorreu ao iniciar ANTON.<br>Nós cuidaremos disso.\"\n    },\n    error: {\n      de: \"Ups, hier ist etwas schiefgelaufen.\",\n      en: \"Oops, something went wrong.\",\n      fr: \"Oups… on dirait que quelque chose ne fonctionne pas.\",\n      es: \"¡Ups! Algo salió mal.\",\n      pt: \"Ops, algo deu errado aqui.\"\n    },\n    exitApp: {\n      de: \"Möchtest du die App wirklich schließen?\",\n      en: \"Are you sure you want to close ANTON?\",\n      fr: \"Veux-tu vraiment fermer l'appli&nbsp;?\",\n      es: \"¿Realmente quieres cerrar la aplicación?\",\n      pt: \"Tem certeza que deseja fechar o aplicativo?\"\n    },\n    closeButton: {\n      de: \"Schließen\",\n      en: \"Close\",\n      fr: \"Fermer\",\n      es: \"Cerrar\",\n      pt: \"Fechar\"\n    },\n    cancelButton: {\n      de: \"Abbrechen\",\n      en: \"Cancel\",\n      fr: \"Annuler\",\n      es: \"Cancelar\",\n      pt: \"Cancelar\"\n    },\n    blockNoAsyncApps: {\n      de: \"Bitte aktualisiere deine $1 Version. Die aktuelle Version ist veraltet.\",\n      en_gb: \"Please update your $1 version. The current version is outdated.\",\n      en: \"Please update your $1 version. The current version is outdated.\",\n      fr: \"Ta version $1 doit être mise à jour. Ta version actuelle est obsolète.\",\n      es: \"Por favor, actualiza tu versión $1. La versión actual está obsoleta.\",\n      pt: \"Por favor, atualize sua versão do $1. A versão que você está usando está desatualizada.\"\n    }\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/util/loadProjectSyncNext/popup/_t.ls","text":"(function(){\n  return {\n    restartApp: {\n      de: \"Bitte starte deine ANTON-App mit bestehender Internetverbindung neu, um diese Inhalte sehen zu können.\",\n      en: \"To view this content, please establish an internet connection and restart ANTON.\",\n      fr: \"Merci de redémarrer ton appli ANTON en t'assurant d'avoir une connexion Internet afin de pouvoir voir ce contenu.\",\n      es: \"Por favor, reinicia ANTON con conexión a Internet para ver este contenido.\",\n      pt: \"Para visualizar este conteúdo, por favor, estabeleça uma conexão com a internet e reinicie seu aplicativo ANTON.\"\n    },\n    buttonRestartApp: {\n      de: \"Neu starten\",\n      en: \"Restart\",\n      fr: \"Redémarrer\",\n      es: \"Reiniciar\",\n      pt: \"Reiniciar\"\n    },\n    buttonReloadPage: {\n      de: \"Neu laden\",\n      en: \"Reload\",\n      fr: \"Réactualiser\",\n      es: \"Actualizar\",\n      pt: \"Atualizar\"\n    },\n    goOnline: {\n      de: \"Bitte stelle zunächst eine Internetverbindung her.\",\n      en: \"Please establish an internet connection first.\",\n      fr: \"Merci de commencer par te connecter à Internet.\",\n      es: \"Por favor, establece primero una conexión a Internet.\",\n      pt: \"Por favor, estabeleça primeiro uma conexão com a internet.\"\n    }\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/content/plan/_t.ls","text":"(function(){\n  return {\n    resultsFor: {\n      de: \"<i>Ergebnisse für \\\"$1\\\"</i>\",\n      en: \"<i>Results for \\\"$1\\\"</i>\",\n      fr: \"<i>Résultats pour \\\"$1\\\"</i>\",\n      es: \"<i>Resultados para \\\"$1\\\"</i>\",\n      pt: \"<i>Resultados para \\\"$1\\\"</i>\"\n    },\n    nothingFound: {\n      de: \"Es wurde nichts gefunden.\",\n      en: \"Nothing was found.\",\n      fr: \"Aucun résultat\",\n      es: \"No hay resultados\",\n      pt: \"Nada encontrado.\"\n    },\n    errorText: {\n      de: \"<i>Es ist ein Problem aufgetreten. Wir kümmern uns darum! Bitte starte die App neu und probiere es erneut!</i>\",\n      en: \"<i>A problem occurred. We are taking care of it! Please restart ANTON and try again.</i>\",\n      fr: \"<i>Une erreur s'est produite. On s'en occupe&nbsp;! Merci de redémarrer l'application et de réessayer.</i>\",\n      es: \"<i>Surgió un problema. Lo estamos resolviendo. Por favor, reinicia la aplicación y vuelve a intentarlo.</i>\",\n      pt: \"<i>Ocorreu um problema. Nós cuidaremos disso! Por favor, reinicie o aplicativo e tente novamente.</i>\"\n    },\n    lastSearches: {\n      de: \"Deine letzten Suchen:\",\n      en: \"Recent searches:\",\n      fr: \"Recherches récentes&nbsp;:\",\n      es: \"Tus últimas búsquedas:\",\n      pt: \"Buscas recentes:\"\n    },\n    quitSearch: {\n      de: \"Suche beenden\",\n      en: \"Quit search\",\n      fr: \"Abandonner la recherche\",\n      es: \"Terminar búsqueda\",\n      pt: \"Finalizar busca\"\n    },\n    lessons: {\n      de: \"Übungen: \",\n      en: \"Lessons: \",\n      fr: \"Exercices&nbsp;: \",\n      es: \"Ejercicios: \",\n      pt: \"Exercícios: \"\n    },\n    backToSearch: {\n      de: \"Zurück zur Suche\",\n      en: \"Back to search\",\n      fr: \"Retour à la recherche\",\n      es: \"Regresar a la búsqueda\",\n      pt: \"Voltar para buscas\"\n    },\n    changeSubject: {\n      de: \"Fächer und Suche\",\n      en: \"Subjects / Search\",\n      fr: \"Matières/Recherche\",\n      es: \"Materias/Búsqueda\",\n      pt: \"Disciplinas/Busca\"\n    },\n    searchResultsFor: {\n      de: \"Suchergebnisse für \\\"$1\\\"\",\n      en: \"Search results for \\\"$1\\\"\",\n      fr: \"Résultats pour \\\"$1\\\"\",\n      es: \"Resultados de búsqueda para \\\"$1\\\"\",\n      pt: \"Resultados de busca para \\\"$1\\\"\"\n    },\n    topic: {\n      de: \"Thema: $1\",\n      en: \"Topic: $1\",\n      fr: \"Thèmes : $1\",\n      es: \"Temas: $1\",\n      pt: \"Temas: $1\"\n    },\n    subjects: {\n      de: \"Fächer\",\n      en: \"Subjects\",\n      fr: \"Matières \",\n      es: \"Materias\",\n      pt: \"Disciplinas\"\n    },\n    lastViewed: {\n      de: \"Zuletzt angesehen\",\n      en: \"Last viewed\",\n      fr: \"Vu en dernier \",\n      es: \"Visto por última vez\",\n      pt: \"Visto por último\"\n    },\n    closeFolder: {\n      de: \"Zurück zur Übersicht\",\n      en: \"Back to overview\",\n      fr: \"Retour à l'aperçu\",\n      es: \"Volver a la vista general\",\n      pt: \"Voltar para visão geral\"\n    }\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/init/checkProjectsSync/showAsyncPopup/_t.ls","text":"(function(){\n  return {\n    restartApp: {\n      de: \"Bitte starte deine ANTON-App mit bestehender Internetverbindung neu, um diese Inhalte sehen zu können.\",\n      en: \"To view this content, please establish an internet connection and restart ANTON.\",\n      fr: \"Merci de redémarrer ton appli ANTON en t'assurant d'avoir une connexion Internet afin de pouvoir voir ce contenu.\",\n      es: \"Por favor, reinicia ANTON con conexión a Internet para ver este contenido.\",\n      pt: \"Para visualizar este conteúdo, por favor, estabeleça uma conexão com a internet e reinicie seu aplicativo ANTON.\"\n    },\n    buttonRestartApp: {\n      de: \"Neu starten\",\n      en: \"Restart\",\n      fr: \"Redémarrer\",\n      es: \"Reiniciar\",\n      pt: \"Reiniciar\"\n    },\n    buttonReloadPage: {\n      de: \"Neu laden\",\n      en: \"Reload\",\n      fr: \"Réactualiser\",\n      es: \"Actualizar\",\n      pt: \"Atualizar\"\n    },\n    goOnline: {\n      de: \"Bitte stelle zunächst eine Internetverbindung her.\",\n      en: \"Please establish an internet connection first.\",\n      fr: \"Merci de commencer par te connecter à Internet.\",\n      es: \"Por favor, establece primero una conexión a Internet.\",\n      pt: \"Por favor, estabeleça primeiro uma conexão com a internet.\"\n    }\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/level/_shared/_t.ls","text":"(function(){\n  return {\n    learn: {\n      de: \"Lernen\",\n      en: \"Learn\",\n      fr: \"Apprendre\",\n      es: \"Aprender\",\n      pt: \"Aprender\"\n    },\n    solveTheExercise: {\n      de: \"Löse die Aufgaben\",\n      en: \"Solve the exercises\",\n      fr: \"Fais les exercices\",\n      es: \"Resuelve los ejercicios\",\n      pt: \"Resolva os exercícios\"\n    },\n    learnOnlineWithFunForFree: {\n      de: \"$1 - Lerne online mit Spaß, kostenlos und ohne Werbung!\",\n      en_gb: \"$1 - Learn online and have fun, for free and no ads!\",\n      en: \"$1 - Learn online with fun, for free and no ads!\",\n      fr: \"$1 - Apprends en ligne en t'amusant, gratuitement et sans publicité&nbsp;!\",\n      es: \"$1 - ¡Aprende en línea divirtiéndote, gratis y sin publicidad!\",\n      pt: \"$1 - Aprenda online e se divertindo, de graça e sem anúncios!\"\n    },\n    exercise2: {\n      de: \"Übung - $1\",\n      en: \"Lesson - $1\",\n      fr: \"Exercice - $1\",\n      es: \"Ejercicios - $1\",\n      pt: \"Exercícios - $1\"\n    },\n    exercise: {\n      de: \"Übung\",\n      en: \"Lesson\",\n      fr: \"Exercice\",\n      es: \"Ejercicio\",\n      pt: \"Exercício\"\n    },\n    restartOnline: {\n      de: \"Bitte starte deine ANTON-App online neu, um diese Lerninhalte sehen zu können.\",\n      en: \"Please restart ANTON online in order to access the learning material.\",\n      fr: \"Tu dois être en ligne et redémarrer l'application ANTON pour accéder au contenu.\",\n      es: \"Por favor, conéctate y reinicia ANTON para poder ver este contenido.\",\n      pt: \"Por favor, conecte-se e reinicie seu aplicativo ANTON para poder ver este conteúdo.\"\n    },\n    learnUrl: {\n      de: \"lernen\",\n      en: \"learn\",\n      fr: \"apprendre\",\n      es: \"aprender\",\n      pt: \"aprender\"\n    }\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/init/init0.ls","text":"(function(){\n  return function(){\n    document.body.innerHTML = \"\";\n    engine.deviceReadyAt = engine.deviceReadyAt;\n    engine.engineStartAt = engine.engineStartAt || new Date(typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.engineStartTime : void 8);\n    engine.initStartAt = new Date();\n    engine.isBotMode = inc(\"/lib/init/isBotMode/is\")();\n    if (inc(\"/lib/init/blockOldBrowsers/block\")()) {\n      return;\n    }\n    if (inc(\"/lib/init/blockNoAsyncBrowsers/block\")()) {\n      return;\n    }\n    inc(\"/lib/init/sourceId/sourceId\")();\n    inc(\"/lib/init/deviceLogId/deviceLogId\")();\n    inc(\"/lib/init/vanillaSpinner/spinner\")();\n    inc(\"/lib/init/extendLowDash/extend\")();\n    return inc(\"/lib/init/fileSystem/fileSystem\")(function(){\n      return inc(\"/lib/init/backupLocalStorage/init\")(function(){\n        return inc(\"/lib/init/init1\")();\n      });\n    });\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/init/softKeyboard/iOs/init.ls","text":"(function(){\n  return function(){\n    var i$, ref$, len$, n;\n    for (i$ = 0, len$ = (ref$ = [\"keyboardWillShow\", \"keyboardWillHide\"]).length; i$ < len$; ++i$) {\n      n = ref$[i$];\n      window.addEventListener(n, fn$);\n    }\n    return document.addEventListener(\"pause\", function(){\n      return inc(\"../_setHeight/set\")(0);\n    });\n    function fn$(e){\n      var ref$;\n      return inc(\"../_setHeight/set\")((ref$ = e.keyboardHeight) != null ? ref$ : 0);\n    }\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/content/plan/_topbar/menu/items/item/item.ls","text":"(function(){\n  return function(pd){\n    var item;\n    item = {\n      rowType: \"default\",\n      plan: pd,\n      label: pd.displayName,\n      selected: app.currentPage.params.planPath === pd.planPath,\n      isDebug: pd.isDebug,\n      isNewUntil: pd.isNewUntil,\n      labelAllowWrap: true\n    };\n    item.click = function(o){\n      var ref$;\n      if (pd.planPath === ((ref$ = app.currentPage.params) != null ? ref$.planPath : void 8)) {\n        o.close({\n          move: true\n        });\n        return;\n      }\n      o.close();\n      inc(\"/data/content/setCurrentPlan/set\")(pd.planPath);\n      return startPage({\n        path: path(\"/pages/content/plan/page\"),\n        animation: \"fadeIn\",\n        history: 0,\n        params: {\n          planPath: pd.planPath\n        }\n      });\n    };\n    return item;\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/util/shareApp/_t.ls","text":"(function(){\n  return {\n    shareSubject: {\n      de: \"ANTON - die kostenlose Lern-App für die Schule\",\n      en: \"ANTON - the free learning platform for school\",\n      fr: \"ANTON - l'appli éducative gratuite pour l'école\",\n      es: \"ANTON - la aplicación gratuita para la escuela\",\n      pt: \"ANTON - a plataforma de aprendizagem gratuita para todos\"\n    },\n    shareText: {\n      de: \"Hallo, schau dir mal ANTON an - die kostenlose Lern-App für die Schule. Für Mathe, Deutsch, Englisch, Sachunterricht, Geographie, Biologie, Chemie, Physik, Informatik, DaZ, weitere Sprachen und  Musik von der Vorschule bis zum Abitur. Du kannst dir ANTON hier herunterladen:\",\n      en_gb: \"Hi, take a look at ANTON - the free learning platform for school. For English, maths, science, computing, geography, history, languages, music and PSHE — from Reception to KS3. You can download ANTON here:\",\n      en: \"Hi, take a look at ANTON - the free learning platform for school. For math, English language arts, science, biology, physics, chemistry, geography, social studies, music, ELD, Life Skills, Spanish and many other languages. Pre-K to Grade 8. You can download ANTON here:\",\n      fr: \"Bonjour&nbsp;! Viens découvrir ANTON,l'appli éducative gratuite pour l'école. Apprends les maths, le français, l'anglais, l'allemand, l'espagnol, l'italien, les sciences, l'histoire, la musique et bien plus. Tu peux télécharger ANTON ici&nbsp;:\",\n      es: \"¡Hola! Te invito a descubrir ANTON - la aplicación educativa gratuita para preescolar, primaria y secundaria. Aprende Matemáticas, Lenguaje, Ciencias Naturales, Historia, Física, Química,  Música e idiomas: inglés, francés, portugués, alemán, náhuatl, italiano, catalán... Puedes descargar ANTON aquí:\",\n      pt: \"Olá! Venha descobrir o ANTON - A plataforma de aprendizagem gratuita para todos! Exercícios de Língua Portuguesa, Matemática, Ciências, Inglês, Música, Computação e outros idiomas. Conteúdos desde a Educação Infantil até o 5º ano do Ensino Fundamental I.\"\n    }\n  };\n})();","updated":"2026-03-06T09:42:55.56616"},{"path":"lib/gui/divEditable/onAppPause/on.ls","text":"(function(){\n  return function(d){\n    return d.stop();\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/init/forceAwait/asyncFunction/function.ls","text":"(function(){\n  return function(asyncFunc){\n    return function(){\n      var originalArguments, refError, timeout;\n      originalArguments = arguments;\n      refError = new Error(\"await missing \" + asyncFunc.name);\n      timeout = setTimeout(function(){\n        var a;\n        a = refError.stack.split(\"\\n\");\n        a.splice(1, 1);\n        refError.stack = a.join(\"\\n\");\n        throw refError;\n      });\n      return {\n        then: function(resolve, reject){\n          clearTimeout(timeout);\n          return asyncFunc.apply(asyncFunc, originalArguments).then(resolve, function(error){\n            var a;\n            a = refError.stack.split(\"\\n\");\n            a.splice(0, 2);\n            error.stack += \"---\\n\" + a.join(\"\\n\");\n            return reject(error);\n          });\n        }\n      };\n    };\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/init/forceAwait/init.ls","text":"(function(){\n  return function(){\n    window.forceAwaitPromise = inc(\"promise/promise\");\n    window.forceAwait = inc(\"asyncFunction/function\");\n    window.sleep = inc(\"sleep/sleep\");\n    return window.waitFrames = inc(\"waitFrames/waitFrames\");\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/init/forceAwait/promise/promise.ls","text":"(function(){\n  return function(executorFunc){\n    var refError, timeout;\n    refError = new Error(\"await missing\");\n    timeout = setTimeout(function(){\n      var a;\n      a = refError.stack.split(\"\\n\");\n      a.splice(1, 1);\n      refError.stack = a.join(\"\\n\");\n      throw refError;\n    });\n    return {\n      then: function(resolve, reject){\n        var p;\n        clearTimeout(timeout);\n        p = new Promise(executorFunc);\n        return p.then(resolve, function(error){\n          var a;\n          a = refError.stack.split(\"\\n\");\n          a.splice(0, 2);\n          error.stack += \"---\\n\" + a.join(\"\\n\");\n          return reject(error);\n        });\n      }\n    };\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/init/forceAwait/sleep/sleep.ls","text":"(function(){\n  return function(ms){\n    return forceAwaitPromise(function(resolve, reject){\n      return setTimeout(resolve, ms);\n    });\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/init/forceAwait/waitFrames/waitFrames.ls","text":"(function(){\n  return function(totalFrames){\n    return forceAwaitPromise(function(resolve, reject){\n      var counter, f;\n      if (!(totalFrames > 0)) {\n        resolve();\n        return;\n      }\n      counter = 0;\n      f = function(){\n        return requestAnimationFrame(function(){\n          counter++;\n          if (counter >= totalFrames) {\n            return resolve();\n          } else {\n            return f();\n          }\n        });\n      };\n      return f();\n    });\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/gui/divEditable/cleanupLine/cleanup.ls","text":"(function(){\n  return function(d, lineDiv){\n    var parseResult, selPos;\n    if (!lineDiv) {\n      return;\n    }\n    if (inc(\"ignoreEmptyLineWithoutParent/ignore\")(lineDiv)) {\n      return;\n    }\n    inc(\"initLine/init\")(d, lineDiv);\n    inc(\"unwrapSpans/unwrap\")(d, lineDiv);\n    inc(\"splitLineWithBRinside/split\")(d, lineDiv);\n    inc(\"removeTextNodeChar13/remove\")(d, lineDiv);\n    inc(\"splitTextNodeWithNewLine/split\")(d, lineDiv);\n    inc(\"removeEmptyEndTextNode/remove\")(d, lineDiv);\n    inc(\"removeEndBR/remove\")(d, lineDiv);\n    inc(\"addBRtoEmptyLine/add\")(d, lineDiv);\n    inc(\"bindHandlerToNewImages/bind\")(lineDiv);\n    parseResult = inc(\"../_shared/parseLineDiv/parse\")(d, lineDiv);\n    if (parseResult.isConsistent) {\n      inc(\"onChangeLine/on\")(d, lineDiv);\n      return;\n    }\n    d.debug(\"rebuild lineDiv after parse inconsistency\");\n    selPos = d.getSelectionPositions();\n    lineDiv.html(d.createLineNodes(parseResult.resultClean));\n    inc(\"onChangeLine/on\")(d, lineDiv);\n    return d.setSelectionPositions(selPos);\n  };\n})();","updated":"2025-01-20T14:15:30.947267"},{"path":"pages/content/plan/_topbarNext/calcTitle/calc.ls","text":"(function(){\n  return function(page){\n    var ref$, ref1$;\n    if (engine.isBotMode) {\n      return T(\"lessons\") + ((ref$ = page.planDescription) != null ? ref$.displayName : void 8);\n    } else {\n      return (ref1$ = page.planDescription) != null ? ref1$.displayName : void 8;\n    }\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"lib/gui/divEditable/cleanupLine/removeTextNodeChar13/remove.ls","text":"(function(){\n  return function(d, lineDiv){\n    var char13, i$, ref$, len$, el, index, sel, n, o, results$ = [];\n    char13 = String.fromCharCode(13);\n    for (i$ = 0, len$ = (ref$ = lineDiv.childNodes).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      if (el.nodeType === Node.TEXT_NODE && _.includes(el.textContent, char13)) {\n        index = _.indexOf(el.textContent, char13);\n        sel = window.getSelection();\n        n = sel.anchorNode;\n        o = sel.anchorOffset;\n        el.textContent = _.replaceAll(el.textContent, char13, \"\");\n        if (n === el && o > index) {\n          results$.push(sel.setPosition(n, o - 1));\n        }\n      }\n    }\n    return results$;\n  };\n})();","updated":"2025-01-20T14:15:30.947267"},{"path":"pages/content/plan/_topbarNext/calcTools/calc.ls","text":"(function(){\n  return function(page){\n    return {\n      type: \"downloadPlan\",\n      hoverLabel: T(\"downloadPlanHoverLabel\")\n    };\n  };\n})();","updated":"2025-10-17T14:02:40.574066"},{"path":"pages/content/plan/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"hamburger\",\n      title: inc(\"calcTitle/calc\")(page),\n      onBack: inc(\"onBack/on\")(page),\n      breadcrumbs: inc(\"calcBreadcrumbs/calc\")(page),\n      tools: inc(\"calcTools/calc\")(page)\n    });\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/content/plansNext/_topbarNext/topbarNext.ls","text":"(function(){\n  return function(page){\n    var div;\n    div = inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"hamburger\",\n      title: T(\"subjects\")\n    });\n    div.update = function(){\n      return div.replaceWith(inc(THISFILE)(page));\n    };\n    return div;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/header/title/title.ls","text":"(function(){\n  return function(categoryData){\n    return Div({\n      flex: \"1 1 auto\",\n      textAlign: \"left\"\n    }).secureHtml(categoryData.title);\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/content/plansNext/plansByCategory/row/header/subjectIcon/icon.ls","text":"(function(){\n  return function(categoryData){\n    var svg;\n    svg = inc(\"/lib/util/calcSubjectIcon/calc\")(categoryData.subject);\n    return Div({\n      display: \"flex\",\n      width: \"3em\",\n      height: \"3em\"\n    }).html(SvgIcon({\n      svg: svg,\n      size: \"2em\"\n    }));\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/games/01_gamesList/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"hamburger\",\n      title: T(\"games\"),\n      tools: [{\n        type: \"coins\"\n      }]\n    });\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/games/02_gameDetails/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"hamburger\",\n      breadcrumbs: [{\n        title: T(\"games\"),\n        tap: function(){\n          return startPage({\n            history: -1,\n            animation: \"slideRight\"\n          });\n        }\n      }],\n      onBack: function(){\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      },\n      title: page.gameDescription.title,\n      tools: [{\n        type: \"coins\"\n      }]\n    });\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/title/title.ls","text":"(function(){\n  return function(sd){\n    return Div({\n      marginBottom: \"1.5em\",\n      fontSize: \"1em\",\n      fontWeight: \"bold\"\n    }).secureHtml(T(\"title\", sd != null ? sd.name : void 8), inc(\"infoButton/infoButton\")());\n  };\n})();","updated":"2025-12-17T07:15:09.130747"},{"path":"addons/navbar/items/items.ls","text":"(function(){\n  return function(){\n    var items;\n    if (inc(\"/data/user/isPreschoolFocusMode/is\")()) {\n      return [];\n    }\n    return items = _.compact([inc(\"learnBeta/item\")(), inc(\"content/item\")(), inc(\"search/item\")(), inc(\"learnList/item\")(), inc(\"groups/item\")(), inc(\"games/item\")(), inc(\"schoolAdmin/item\")()]);\n  };\n})();","updated":"2025-06-03T07:04:43.983733"},{"path":"lib/util/soundNext/onPlayError/on.ls","text":"(function(){\n  return function(s, error){\n    s.isPlaying = false;\n    s.onFinish();\n    inc(\"logDebugError/log\")(s, error);\n    error.message = \"onPlayError: \" + error.message;\n    return setTimeout(function(){\n      throw error;\n    });\n  };\n})();","updated":"2025-12-11T15:18:26.753443"},{"path":"addons/navbar/_t.ls","text":"(function(){\n  return {\n    'new': {\n      de: \"NEU\",\n      en: \"NEW\",\n      fr: \"NOUVEAU\",\n      es: \"NUEVO\",\n      pt: \"NOVO\"\n    },\n    subjectsTitle: {\n      de: \"Fächer\",\n      en: \"Subjects\",\n      fr: \"Matières\",\n      es: \"Materias\",\n      pt: \"Disciplinas\"\n    },\n    gamesTitle: {\n      de: \"Spiele\",\n      en: \"Games\",\n      fr: \"Jeux\",\n      es: \"Juegos\",\n      pt: \"Jogos\"\n    },\n    groupsTitle: {\n      de: \"Gruppen\",\n      en: \"Groups\",\n      fr: \"Groupes\",\n      es: \"Grupos\",\n      pt: \"Grupos\"\n    },\n    learnListsTitle: {\n      de: \"Lernlisten\",\n      en: \"Study&nbsp;Lists\",\n      fr: \"Listes\",\n      es: \"Listas\",\n      pt: \"Listas\"\n    },\n    notLoggedIn: {\n      de: \"Nicht<br>angemeldet\",\n      en: \"Not<br>logged in\",\n      fr: \"Pas<br>connecté·e\",\n      es: \"No<br>registrado\",\n      pt: \"Não<br>registrado\"\n    },\n    schoolTitle: {\n      de: \"Schule\",\n      en: \"School\",\n      fr: \"École\",\n      es: \"Escuela\",\n      pt: \"Escola\"\n    },\n    helpChat: {\n      de: \"Hilfe-Chat\",\n      en: \"Support Chat\",\n      fr: \"Chat d'assistance\",\n      es: \"Chat de ayuda\",\n      pt: \"Chat de ajuda\"\n    },\n    logout: {\n      de: \"Abmelden\",\n      en: \"Log out\",\n      fr: \"Me déconnecter\",\n      es: \"Cerrar sesión\",\n      pt: \"Encerrar sessão\"\n    },\n    switchAccount: {\n      de: \"Nutzerkonto wechseln\",\n      en: \"Change account\",\n      fr: \"Changer de compte\",\n      es: \"Cambiar de cuenta\",\n      pt: \"Trocar de conta\"\n    },\n    faq: {\n      de: \"Häufige Fragen\",\n      en: \"FAQ\",\n      fr: \"Aide/FAQ\",\n      es: \"Preguntas frecuentes/FAQ\",\n      pt: \"Perguntas Frequentes\"\n    },\n    antonNews: {\n      de: \"ANTON-Neuigkeiten\",\n      en: \"ANTON News\",\n      fr: \"L'actu ANTON\",\n      es: \"ANTON Noticias\",\n      pt: \"Jornal do ANTON\"\n    },\n    getAntonPlus: {\n      de: \"ANTON-&#65279;Plus\",\n      en: \"ANTON&nbsp;Plus\",\n      fr: \"ANTON-&#65279;Plus\",\n      es: \"ANTON-&#65279;Plus\",\n      pt: \"ANTON-&#65279;Plus\"\n    },\n    getAntonPlusNewTag: {\n      de: \"Für Familien und Lehrkräfte\",\n      en: \"For families and teachers\",\n      fr: \"Pour les familles et les professeurs\",\n      es: \"Para familias y docentes\",\n      pt: \"Para famílias e professores\"\n    },\n    schoolAdmin: {\n      de: \"Schulverwaltung\",\n      en: \"School Administration\",\n      fr: \"Administration de l'école\",\n      es: \"Administración de la escuela\",\n      pt: \"Administração escolar\"\n    },\n    settings: {\n      de: \"Einstellungen\",\n      en: \"Settings\",\n      fr: \"Paramètres\",\n      es: \"Ajustes\",\n      pt: \"Configurações\"\n    },\n    recommendAnton: {\n      de: \"ANTON weiterempfehlen\",\n      en: \"Recommend ANTON\",\n      fr: \"Recommander ANTON\",\n      es: \"Recomienda ANTON\",\n      pt: \"Recomendar o ANTON\"\n    },\n    adventCalendar: {\n      de: \"Adventskalender\",\n      en: \"Advent Calendar\",\n      fr: \"Calendrier de l'Avent\",\n      es: \"Calendario de Adviento\",\n      pt: \"Calendário do Advento\"\n    },\n    help: {\n      de: \"Hilfe\",\n      en: \"Help\",\n      fr: \"Aide/FAQ\",\n      es: \"Ayuda\",\n      pt: \"Ajuda\"\n    },\n    more: {\n      de: \"mehr\",\n      en: \"more\",\n      fr: \"plus\",\n      es: \"más\",\n      pt: \"mais\"\n    },\n    search: {\n      de: \"Suchen\",\n      en: \"Search\",\n      fr: \"Recherche\",\n      es: \"Buscar\",\n      pt: \"Buscar\"\n    }\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/support/news/_t.ls","text":"(function(){\n  return {\n    antonNews: {\n      de: \"ANTON-Neuigkeiten\",\n      en: \"ANTON News\",\n      fr: \"L'actu ANTON\",\n      es: \"ANTON Noticias\",\n      pt: \"Jornal do ANTON\"\n    },\n    noNews: {\n      de: \"Es sind noch keine Neuigkeiten vorhanden.\",\n      en: \"Currently there is no news available.\",\n      fr: \"Il n'y a pas encore d'actualités.\",\n      es: \"Aún no hay noticias.\",\n      pt: \"Não há notícias no momento\"\n    }\n  };\n})();","updated":"2025-06-13T06:25:00.211456"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/calc.ls","text":"(function(){\n  return function(plans){\n    var e, plansWithMatchingSubject, plansWithMatchingSubjectOrdered;\n    try {\n      if (log.findLast(\"setCurrentPlan\") != null) {\n        return;\n      }\n      e = log.findLast(\"setNewUser\");\n      plansWithMatchingSubject = inc(\"filterPlansByMatchingSubject/filter\")(plans, e);\n      plansWithMatchingSubjectOrdered = inc(\"orderPlansByGradeDistance/order\")(plansWithMatchingSubject, e);\n      return _.first(plansWithMatchingSubjectOrdered).planPath;\n    } catch (e$) {}\n  };\n})();","updated":"2025-06-19T06:52:42.2865"},{"path":"pages/static/newsletter/_t.ls","text":"(function(){\n  return {\n    antonNewsMailOff: {\n      de: \"ANTON-News per Mail - Abgemeldet\",\n      en: \"ANTON News by email - disabled\",\n      fr: \"ANTON-News par e-mail - désactivé\",\n      es: \"ANTON-Noticias por correo-e - desactivado\",\n      pt: \"Jornal do ANTON por e-mail - desativado\"\n    },\n    resubscribe: {\n      de: \"Ich möchte mich wieder anmelden\",\n      en: \"I would like to resubscribe.\",\n      fr: \"Je veux me réabonner.\",\n      es: \"Quiero volver a suscribirme.\",\n      pt: \"Quero me inscrever novamente.\"\n    },\n    youHaveUnsubscribed: {\n      de: \"Du hast deine E-Mail-Adresse hiermit vom ANTON Lehrer-Newsletter abgemeldet.\",\n      en: \"You have unsubscribed from the ANTON teacher newsletter.\",\n      fr: \"Tu t'es désabonné·e de la Newsletter des profs d'ANTON.\",\n      es: \"Has cancelado tu suscripción al Boletín de docentes de ANTON.\",\n      pt: \"Você cancelou sua inscrição no Jornal do ANTON para professores.\"\n    },\n    antonNewsMailOn: {\n      de: \"ANTON-News per Mail - Angemeldet\",\n      en: \"ANTON News by email - enabled\",\n      fr: \"ANTON-News par e-mail - activé\",\n      es: \"ANTON-Noticias por correo-e - activado\",\n      pt: \"Jornal do ANTON por e-mail - ativado\"\n    },\n    youHaveSubscribed: {\n      de: \"Du hast nun deine E-Mail-Adresse<br>beim ANTON Lehrer-Newsletter angemeldet.\",\n      en: \"You have subscribed to<br>the ANTON teacher newsletter.\",\n      fr: \"Tu t'es abonné·e à<br>la Newsletter des profs d'ANTON.\",\n      es: \"Te suscribiste al <br>Boletin de docentes de ANTON. \",\n      pt: \"Você se inscreveu no Jornal do ANTON <br>para professores.\"\n    },\n    hello: {\n      de: \"Hallo $1\",\n      en: \"Hello $1\",\n      fr: \"Bonjour $1\",\n      es: \"Hola $1\",\n      pt: \"Olá $1\"\n    },\n    bummer: {\n      de: \"Schade, $1!\",\n      en_gb: \"That’s a shame, $1!\",\n      en: \"That’s too bad, $1!\",\n      fr: \"Quel dommage, $1&nbsp;!\",\n      es: \"¡Lástima, $1!\",\n      pt: \"Que pena, $1!\"\n    }\n  };\n})();","updated":"2025-06-13T06:25:00.211456"},{"path":"data/content/calcPlanDescriptions/grade/grade.ls","text":"(function(){\n  return function(plan){\n    return plan.grades[0];\n  };\n})();","updated":"2025-06-13T06:25:00.211456"},{"path":"data/content/calcPlanDescriptions/subjectIndex/subjectIndex.ls","text":"(function(){\n  return function(plan){\n    var subjects, subjectIndex;\n    subjects = _.keys(inc(\"/data/content/_subjects/subjects\")());\n    subjectIndex = subjects.indexOf(plan.subject);\n    if (subjectIndex === -1) {\n      subjectIndex = subjects.length + 1;\n    }\n    return subjectIndex;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hiddenThingsChristmas/_t.ls","text":"(function(){\n  return {\n    manual: {\n      de: \"Finde alle versteckten Weihnachtsbaumkugeln. Wenn du nicht weiterkommst, tippe auf die Lupe, um einen Tipp zu bekommen.\",\n      en_gb: \"Find all the hidden baubles. Tap on the magnifying glass for help.\",\n      en: \"Find all the hidden ornaments. Tap on the magnifying glass for help.\",\n      fr: \"Trouve toutes les boules de Noël cachées. Appuie sur la loupe si tu as besoin d’aide.\",\n      es: \"Encuentra todas las esferas de Navidad escondidas. Presiona la lupa para obtener una pista.\",\n      pt: \"Encontre todas os enfeites de Natal escondidos. Se precisar de ajuda, toque na lupa para obter dicas.\"\n    },\n    manualDesktop: {\n      de: \"Finde alle versteckten Weihnachtsbaumkugeln. Wenn du nicht weiterkommst, klicke auf die Lupe, um einen Tipp zu bekommen.\",\n      en_gb: \"Find all the hidden baubles. Click on the magnifying glass for help.\",\n      en: \"Find all the hidden ornaments. Click on the magnifying glass for help.\",\n      fr: \"Trouve toutes les boules de Noël cachées. Clique sur la loupe si tu as besoin d’aide.\",\n      es: \"Encuentra todas las esferas de Navidad escondidas. Si no logras avanzar, presiona la lupa y obtendrás una pista.\",\n      pt: \"Encontre todas os enfeites de Natal escondidos. Se precisar de ajuda, clique na lupa para obter dicas.\"\n    },\n    title: {\n      de: \"Hidden\",\n      en: \"Hidden\",\n      fr: \"Hidden\",\n      es: \"Hidden\",\n      pt: \"Hidden\"\n    },\n    sceneLake: {\n      de: \"See\",\n      en: \"Lake\",\n      fr: \"Lac\",\n      es: \"Lago\",\n      pt: \"Lago\"\n    },\n    sceneDesert: {\n      de: \"Wüste\",\n      en: \"Desert\",\n      fr: \"Désert\",\n      es: \"Desierto\",\n      pt: \"Deserto\"\n    },\n    sceneBakery: {\n      de: \"Bäckerei\",\n      en: \"Bakery\",\n      fr: \"Boulangerie\",\n      es: \"Panadería\",\n      pt: \"Padaria\"\n    },\n    sceneGlobe: {\n      de: \"Schneekugel\",\n      en: \"Snow Globe\",\n      fr: \"Boule à neige\",\n      es: \"Globo de nieve\",\n      pt: \"Globo de neve\"\n    },\n    sceneHome: {\n      de: \"Zuhause\",\n      en: \"Home\",\n      fr: \"Dans la maison\",\n      es: \"En casa\",\n      pt: \"Em casa\"\n    }\n  };\n})();","updated":"2025-01-31T11:52:48.121668"},{"path":"pages/start/startUser/07_extraPages/showBBStateLicenseInfo/page/_t.ls","text":"(function(){\n  return {\n    title: {\n      de: \"Landeslizenz in Brandenburg\"\n    },\n    subtitle: {\n      de: \"ANTON-Schullizenz Plus kostenlos\"\n    },\n    infoText1: {\n      de: \"Das Land Brandenburg hat eine Landeslizenz für die Lern-Software „ANTON“ zur Förderung von Basiskompetenzen in den Jahrgangsstufen 1-10 erworben. Die ANTON-Schullizenz-Plus kann von allen Schulen des Landes Brandenburg ab Jahrgangsstufe 1 beantragt werden und steht zunächst bis zum 31.10.2025 zur Verfügung.\"\n    },\n    infoText2: {\n      de: \"Deine Schulleitung kann die Schule über die ANTON-Seite für die kostenfreie Landeslizenz anmelden.\"\n    },\n    buttonLabel: {\n      de: \"Zur Anmeldung\"\n    }\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showBBStateLicenseInfo/page/button/button.ls","text":"(function(){\n  return function(o){\n    return Button({\n      label: o.label\n    }).css({\n      marginBottom: \"1em\"\n    }).tap(function(){\n      return window.open(o.link, \"_system\");\n    });\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showBBStateLicenseInfo/page/buttonNotNow/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      return inc(\"../../../_onExtraPageDone/on\")();\n    };\n    return Div({\n      color: Color.grey[450]\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"notNowButton\"),\n      direction: \"right\"\n    }).css({\n      padding: \"0.5em\",\n      marginBottom: \"1em\"\n    }).tap(tap));\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showBBStateLicenseInfo/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")({\n          close: function(){\n            return inc(\"../../_onExtraPageDone/on\")();\n          }\n        });\n      },\n      start: function(){\n        var t, b;\n        log.log({\n          event: \"showBBStateLicenseInfo\"\n        });\n        t = inc(\"text/text\");\n        b = inc(\"button/button\");\n        return page.html(Div({\n          margin: \"2em auto\",\n          width: \"30em\",\n          maxWidth: \"90%\"\n        }).html(inc(\"title/title\")(), inc(\"subtitle/subtitle\")(), t(T(\"infoText1\")), t(T(\"infoText2\")), b({\n          label: T(\"buttonLabel\"),\n          link: \"https://lp.anton.app/lp/brandenburg\"\n        }), inc(\"buttonNotNow/button\")()));\n      }\n    };\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showBBStateLicenseInfo/page/subtitle/subtitle.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      marginBottom: \"1em\",\n      fontWeight: \"bold\"\n    }).html(T(\"subtitle\"));\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showBBStateLicenseInfo/page/text/text.ls","text":"(function(){\n  return function(text){\n    return Div({\n      textAlign: \"justify\",\n      marginBottom: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(text);\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showBBStateLicenseInfo/page/title/title.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      margin: \"1em 0\",\n      fontSize: \"1.2em\",\n      fontWeight: \"bold\"\n    }).html(T(\"title\"));\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showGroStateLicenseInfo/page/_t.ls","text":"(function(){\n  return {\n    title: {\n      es: \"Convenio ANTON - SEG\"\n    },\n    subtitle: {\n      es: \"2000 Licencias gratuitas para las escuelas de Guerrero\"\n    },\n    infoText1: {\n      es: \"Gracias a la cooperación enetre la SEG y ANTON, para hacer frente al rezago académico, las escuelas de Guerrero pueden hacer uso de la Licencia Escolar ANTON* de forma gratuita. \"\n    },\n    infoText2: {\n      es: \"¡Aquí puedes solicitar la Licencia en dos clics y compartir ANTON con toda tu escuela!  \"\n    },\n    buttonLabel: {\n      es: \"Solicitar Licencia gratuita\"\n    },\n    infoText3: {\n      es: \"*Todos los integrantes de la escuela adquieren ANTON Plus, pueden descargar contenidos para trabajar sin conexión y crear grupos fácilmente desde el directorio escolar. Así mitigamos problemas de conectividad y motivamos a la escuela a usar la herramienta de forma comunitaria.\"\n    }\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showGroStateLicenseInfo/page/button/button.ls","text":"(function(){\n  return function(o){\n    return Button({\n      label: o.label\n    }).css({\n      marginBottom: \"1em\"\n    }).tap(function(){\n      return window.open(o.link, \"_system\");\n    });\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showGroStateLicenseInfo/page/buttonNotNow/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      return inc(\"../../../_onExtraPageDone/on\")();\n    };\n    return Div({\n      color: Color.grey[450]\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"notNowButton\"),\n      direction: \"right\"\n    }).css({\n      padding: \"0.5em\",\n      marginBottom: \"1em\"\n    }).tap(tap));\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showGroStateLicenseInfo/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")({\n          close: function(){\n            return inc(\"../../_onExtraPageDone/on\")();\n          }\n        });\n      },\n      start: function(){\n        var t, b;\n        log.log({\n          event: \"showGroStateLicenseInfo\"\n        });\n        t = inc(\"text/text\");\n        b = inc(\"button/button\");\n        return page.html(Div({\n          margin: \"2em auto\",\n          width: \"30em\",\n          maxWidth: \"90%\"\n        }).html(inc(\"title/title\")(), inc(\"subtitle/subtitle\")(), t(T(\"infoText1\")), t(T(\"infoText2\")), b({\n          label: T(\"buttonLabel\"),\n          link: \"https://lp.anton.app/lp/guerrero\"\n        }), t(T(\"infoText3\")), inc(\"buttonNotNow/button\")()));\n      }\n    };\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showGroStateLicenseInfo/page/subtitle/subtitle.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      marginBottom: \"1em\",\n      fontWeight: \"bold\"\n    }).html(T(\"subtitle\"));\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showGroStateLicenseInfo/page/text/text.ls","text":"(function(){\n  return function(text){\n    return Div({\n      textAlign: \"justify\",\n      marginBottom: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(text);\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showGroStateLicenseInfo/page/title/title.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      margin: \"1em 0\",\n      fontSize: \"1.2em\",\n      fontWeight: \"bold\"\n    }).html(T(\"title\"));\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showGroStateLicenseInfo/show.ls","text":"(function(){\n  return function(){\n    var that, lastShowDate, nextShowDate, isTeacher, groupDescriptions, isTeacherInGroup, schoolDescriptions, i$, len$, sd, hasSchoolInGro;\n    if (new Date() > new Date(\"2025-12-31\")) {\n      return false;\n    }\n    if (engine.guiLanguage !== \"es\") {\n      return false;\n    }\n    if (that = typeof log != 'undefined' && log !== null ? log.findLast(\"showGroStateLicenseInfo\") : void 8) {\n      lastShowDate = new Date(that.created);\n      nextShowDate = new Date();\n      nextShowDate.setDate(lastShowDate.getDate() + 10);\n      if (new Date() < nextShowDate) {\n        return false;\n      }\n    }\n    isTeacher = inc(\"/data/user/isTeacher/get\")();\n    if (!isTeacher) {\n      return false;\n    }\n    groupDescriptions = inc(\"/../app01-group/data/calcGroupDescriptions/calc\")();\n    isTeacherInGroup = _.find(groupDescriptions, function(gd){\n      var ref$;\n      return gd != null ? (ref$ = gd.userRoles) != null ? ref$.teacher : void 8 : void 8;\n    }) != null;\n    if (!isTeacherInGroup) {\n      return false;\n    }\n    schoolDescriptions = inc(\"/data/school/calcSchoolDescriptions/calc\")();\n    for (i$ = 0, len$ = schoolDescriptions.length; i$ < len$; ++i$) {\n      sd = schoolDescriptions[i$];\n      if (sd != null && sd.hasDir) {\n        return false;\n      }\n    }\n    hasSchoolInGro = _.find(schoolDescriptions, function(sd){\n      return (sd != null ? sd.country : void 8) === \"México\" && (sd != null ? sd.stateCode : void 8) === \"Gro.\";\n    }) != null;\n    if (!hasSchoolInGro) {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0\n    });\n    return true;\n  };\n})();","updated":"2025-06-11T14:28:37.416738"},{"path":"pages/start/startUser/07_extraPages/showTeacherTranslationOverlayInfo/page/_shared/text/text.ls","text":"(function(){\n  return function(text){\n    return Div({\n      textAlign: \"justify\",\n      marginBottom: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(text);\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showTeacherTranslationOverlayInfo/page/buttonNotNow/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = inc(\"/pages/start/startUser/07_extraPages/_onExtraPageDone/on\");\n    return Div({\n      color: Color.grey[450]\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"notNowButton\"),\n      direction: \"right\"\n    }).css({\n      padding: \"0.5em\",\n      marginBottom: \"1em\"\n    }).tap(tap));\n  };\n})();","updated":"2025-03-19T09:54:13.533359"},{"path":"pages/start/startUser/07_extraPages/showTeacherTranslationOverlayInfo/page/buttonMoreInfo/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      var spinner;\n      spinner = inc(\"/../app01/lib/gui/spinnerOverlay/overlay\")();\n      return inc(\"popup/popup\")(spinner);\n    };\n    return Button({\n      label: T(\"howDoesItWork\")\n    }).css({\n      margin: \"1em 0\"\n    }).tap(tap);\n  };\n})();","updated":"2025-03-26T10:56:13.302131"},{"path":"data/content/calcPlanDescription/calcDescription/calcSortIndex/calc.ls","text":"(function(){\n  return function(plan){\n    var lang, sortIndex;\n    lang = engine.guiLanguage;\n    sortIndex = plan.sortIndex;\n    if (_.isNumber(sortIndex)) {\n      return sortIndex;\n    } else if ((sortIndex != null ? sortIndex[lang] : void 8) != null) {\n      return sortIndex[lang];\n    } else if ((sortIndex != null ? sortIndex[lang.slice(0, 2)] : void 8) != null) {\n      return sortIndex[lang.slice(0, 2)];\n    }\n  };\n})();","updated":"2025-06-26T12:39:33.740994"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hiddenThingsTrash/_t.ls","text":"(function(){\n  return {\n    manual: {\n      de: \"Finde allen versteckten Müll. Wenn du nicht weiterkommst, tippe auf die Lupe, um einen Tipp zu bekommen.\",\n      en_gb: \"Find all the hidden litter. Tap on the magnifying glass for help.\",\n      en_us: \"Find all the hidden trash. Tap on the magnifying glass for help.\",\n      fr: \"Trouve tous les déchets cachés. Appuie sur la loupe si tu as besoin d’aide.\",\n      es: \"Encuentra y recoge toda la basura escondida. Presiona la lupa para obtener una pista.\",\n      pt: \"Encontre todos os lixos escondidos. Se precisar de ajuda, toque na lupa para obter dicas.\"\n    },\n    manualDesktop: {\n      de: \"Finde allen versteckten Müll. Wenn du nicht weiterkommst, klicke auf die Lupe, um einen Tipp zu bekommen.\",\n      en_gb: \"Find all the hidden litter. Click on the magnifying glass for help.\",\n      en_us: \"Find all the hidden trash. Click on the magnifying glass for help.\",\n      fr: \"Trouve tous les déchets cachés. Clique sur la loupe si tu as besoin d’aide.\",\n      es: \"Encuentra y recoge toda la basura escondida. Si no logras avanzar, presiona la lupa y obtendrás una pista.\",\n      pt: \"Encontre todos os lixos escondidos. Se precisar de ajuda, clique na lupa para obter dicas.\"\n    },\n    title: {\n      de: \"Hidden\",\n      en: \"Hidden\",\n      fr: \"Hidden\",\n      es: \"Hidden\",\n      pt: \"Hidden\"\n    },\n    scenePark: {\n      de: \"Im Park\",\n      en: \"Park\",\n      fr: \"Dans le parc\",\n      es: \"Parque\",\n      pt: \"Parque\"\n    },\n    sceneStreet: {\n      de: \"Auf der Straße\",\n      en: \"Street\",\n      fr: \"Dans la rue\",\n      es: \"Calle\",\n      pt: \"Rua\"\n    },\n    sceneSpace: {\n      de: \"Im Weltall\",\n      en: \"Space\",\n      fr: \"Dans l'espace\",\n      es: \"En el espacio\",\n      pt: \"No espaço\"\n    },\n    sceneHome: {\n      de: \"Zuhause\",\n      en: \"Home\",\n      fr: \"Dans la maison\",\n      es: \"En casa\",\n      pt: \"Em casa\"\n    },\n    sceneUnderwater: {\n      de: \"Unter Wasser\",\n      en: \"Underwater\",\n      fr: \"Sous l’eau\",\n      es: \"Bajo el agua\",\n      pt: \"Debaixo d´água\"\n    }\n  };\n})();","updated":"2025-02-07T13:15:59.792556"},{"path":"lib/init/errorHandler/calcIgnore/calc.ls","text":"(function(){\n  return function(d, appType){\n    var ignoreEvents;\n    ignoreEvents = [\"socket error\", \"log error\", \"error loading events\", \"error loading unsent events\", \"Cloud9Autofill\", \"webkitExitFullScreen\", \"AppEventBridge\", \"Kg is not defined\", \"Can't find variable: gmo\", \"Cannot redefine property: ethereum\"];\n    if (!_.endsWith(appType != null ? appType.toLowerCase() : void 8, \"ios\")) {\n      ignoreEvents.push(\"Script error\");\n    }\n    return _.some(ignoreEvents, function(er){\n      return _.includes(d.message, er);\n    });\n  };\n})();","updated":"2025-02-20T13:41:28.964546"},{"path":"lib/svg/shape/xmas.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"xmas\">\n    <path fill=\"#9B9B9B\" d=\"M114.2 90.9h4.7c1.6 0 3.2-.6 4.3-1.8 1.8-2 2-4.8.4-6.9l-17.5-23.8h2.1c1.7 0 3.3-.7 4.4-1.8 1.7-1.9 2-4.6.5-6.7L84.4 7.2A5.4 5.4 0 0 0 79.9 5c-1.8 0-3.5.8-4.5 2.3L46.8 50a5.4 5.4 0 0 0 4.5 8.5h2.4L36.2 82.2a5.4 5.4 0 0 0 .3 6.9 5.8 5.8 0 0 0 4.3 1.8h7.3l-19.7 29.6a5.4 5.4 0 0 0 4.5 8.5h35.4v14.6a11.6 11.6 0 1 0 23.1 0V129H127a5.4 5.4 0 0 0 4.7-8.3L114.2 91z\" class=\"Fill-1-Copy\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"data/user/calcWeeklySpecialData/calcSentence/calc.ls","text":"(function(){\n  return function(assistantName, status, variants){\n    return inc(\"calcFishSentence/calc\")(assistantName, status, variants);\n  };\n})();","updated":"2025-03-21T13:53:09.303504"},{"path":"addons/_translationOverlayButtonBar/_t.ls","text":"(function(){\n  return {\n    lockedForGroup: {\n      de: \"Eine deiner Gruppen-Lehrkräfte hat die Übersetzungshilfe deaktiviert.\",\n      en: \"The translation tool has been deactivated for your group.\",\n      fr: \"L'aide par traduction a été désactivée pour ton groupe.\",\n      es: \"Algún docente del grupo desactivó el botón de traducción.\",\n      pt: \"A ferramenta de tradução foi desativada para o seu grupo.\"\n    }\n  };\n})();","updated":"2025-03-21T08:29:09.288045"},{"path":"pages/start/startUser/07_extraPages/showTeacherTranslationOverlayInfo/_t.ls","text":"(function(){\n  return {\n    title: {\n      de: \"Übersetzungshilfe in der ANTON-App\",\n      en: \"ANTON's translation tool \",\n      fr: \"L'aide par traduction d'ANTON\",\n      es: \"Botón de traducción en ANTON\",\n      pt: \"Ferramenta de tradução no ANTON App\"\n    },\n    text: {\n      de: \"Wusstest du schon, dass es jetzt die Möglichkeit gibt, die Übersetzungshilfe für einzelne Schüler/innen in deinen Gruppen zu aktivieren?\",\n      en_gb: \"Did you know that you can now activate a translation tool for individual pupils within your groups?\",\n      en: \"Did you know that you can now activate a translation tool for individual students within your groups?\",\n      fr: \"As-tu remarqué que tu peux activer un outil d'aide par traduction pour chaque élève de tes groupes&nbsp;?\",\n      es: \"¿Sabías que ya puedes activar el botón de traducción para cada estudiante de tu grupo por separado?\",\n      pt: \"Você sabia que agora é possível <b>ativar</b> a ferramenta de tradução para alunos específicos em seus grupos?\"\n    },\n    howDoesItWork: {\n      de: \"Wie funktioniert das?\",\n      en: \"How does it work?\",\n      fr: \"Comment ça marche&nbsp;?\",\n      es: \"¿Cómo funciona?\",\n      pt: \"Como funciona?\"\n    },\n    infoText1: {\n      de: \"1. Wähle in der Gruppe im Reiter „Mitglieder“ den/die Schüler/in aus, für den/die du die Übersetzungshilfe aktivieren möchtest.\",\n      en_gb: \"1. From the “Members” tab in your group, select the pupil that you would like to activate the translation tool for.\",\n      en: \"1. From the “Members” tab in your group, select the student that you would like to activate the translation tool for.\",\n      fr: \"1. Depuis l'onglet «&nbsp;Membres&nbsp;» de ton groupe, sélectionne l'élève à qui tu souhaites donner accès à l'aide par traduction.\",\n      es: \"1. Entra a tu grupo y selecciona la pestaña de “Miembros”, luego presiona al estudiante para el cual quieres activar el botón de traducción.\",\n      pt: \"1. Na aba “Membros” do seu grupo, selecione o(a) aluno(a) para o(a) qual você deseja ativar a ferramenta de tradução.\"\n    },\n    infoText2: {\n      de: \"2. Unter „Übersetzungshilfe“ kannst du die gewünschte Sprache auswählen oder die Funktion sperren.\",\n      en_gb: \"2. In the translation tool row, you can select the desired language or turn off the function completely.\",\n      en: \"2. Under “Translation tool,” you can select the desired language or turn off the function completely.\",\n      fr: \"2. À la ligne correspondant à l'aide par traduction, tu peux choisir une langue ou désactiver entièrement l'outil.\",\n      es: \"2. En la sección 'Botón de traducción', puedes elegir uno de los 45 idioma de traducción y activar (o desactivar) la función.\",\n      pt: \"2. Na seção 'Ferramenta de Tradução', você pode selecionar o idioma desejado ou desativar completamente esta função.\"\n    },\n    infoText3: {\n      de: \"3. Wählst du eine Sprache aus, wird die Übersetzungshilfe bei diesem/dieser Schüler/in immer oben rechts angezeigt.\",\n      en_gb: \"3. If you select a language, the translation tool will always be shown in the top right of that pupil's screen.\",\n      en: \"3. If you select a language, the translation tool will always be shown on the top right of that student's screen.\",\n      fr: \"3. Si tu choisis une langue, l'aide par traduction s'affichera toujours en haut à droite sur le compte de l'élève.\",\n      es: \"3. Si eliges un idioma y activas la función, el/la estudiante siempre verá el botón en la parte superior de su pantalla en ANTON y al presionarlo, podrá seleccionar cualquier texto en pantalla para traducirlo. \",\n      pt: \"3. Se você selecionar um idioma, a ferramenta de tradução será sempre exibida no canto superior direito da tela para esse(a) aluno(a).\"\n    }\n  };\n})();","updated":"2025-04-11T14:31:39.812909"},{"path":"lib/svg/illustration/alert.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"alert\">\n    <g class=\"Group\" transform=\"translate(-.3 10)\">\n      <path fill=\"#F44336\" d=\"M84.7 2.6a5 5 0 0 0-8.8 0l-74.5 129a5 5 0 0 0 4.4 7.7h149a5.1 5.1 0 0 0 4.1-8.2L84.7 2.6z\" class=\"Combined-Shape\"/>\n      <circle cx=\"80.3\" cy=\"116.6\" r=\"9.7\" fill=\"#FFF\" class=\"Oval\"/>\n      <path fill=\"#FFF\" d=\"M71.8 35.3h17v61.6h-17z\" class=\"Rectangle-9\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/anton-plus.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"nonzero\" class=\"anton-plus\">\n    <circle cx=\"80\" cy=\"80\" r=\"80\" fill=\"#4A90E2\" class=\"Oval\"/>\n    <path fill=\"#FFF\" d=\"M69.3 69.3v-32a10.7 10.7 0 0 1 21.4 0v32h32a10.7 10.7 0 0 1 0 21.4h-32v32a10.7 10.7 0 0 1-21.4 0v-32h-32a10.7 10.7 0 0 1 0-21.4h32z\" class=\"Path\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/certificate.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"certificate\">\n    <path fill=\"#C62828\" d=\"M86.2 7.5 91.1 4A10 10 0 0 1 106 7.7l2.6 5.3c2 3.9 6.1 6 10.4 5.5l5.9-.8a10 10 0 0 1 11.5 10.1l-.1 6a10 10 0 0 0 6.6 9.6l5.6 2a10 10 0 0 1 5.5 14.3l-3 5.3c-2 3.7-1.5 8.4 1.4 11.6l4 4.4a10 10 0 0 1-1.8 15.2l-5 3.3a10 10 0 0 0-4.1 11l1.5 5.7a10 10 0 0 1-8.7 12.6l-6 .6a10 10 0 0 0-8.7 7.8l-1.3 5.8a10 10 0 0 1-13.6 7.1l-5.5-2.2c-4-1.6-8.6-.4-11.4 2.8l-3.9 4.5a10 10 0 0 1-15.3 0l-3.8-4.5a10.1 10.1 0 0 0-11.4-2.8l-5.6 2.2a10 10 0 0 1-13.5-7.1l-1.3-5.8a10 10 0 0 0-8.8-7.8l-6-.6a10 10 0 0 1-8.6-12.6l1.5-5.7a10 10 0 0 0-4.2-11l-5-3.3A10 10 0 0 1 4.3 81l4-4.4A10 10 0 0 0 9.7 65l-2.9-5.3a10 10 0 0 1 5.4-14.3l5.6-2a10 10 0 0 0 6.7-9.6l-.1-6a10 10 0 0 1 11.5-10.1l5.8.8A10 10 0 0 0 52.1 13l2.7-5.3A10 10 0 0 1 69.7 4l4.8 3.5a10 10 0 0 0 11.7 0\" class=\"Fill-1\"/>\n    <path fill=\"#FEFEFE\" d=\"M137.2 80.4a56.8 56.8 0 1 1-113.6 0 56.8 56.8 0 0 1 113.6 0\" class=\"Fill-4\"/>\n    <path fill=\"#C62828\" d=\"M133.2 80.4a52.8 52.8 0 1 1-105.7 0 52.8 52.8 0 0 1 105.7 0\" class=\"Fill-6\"/>\n    <path fill=\"#F4F3F3\" d=\"M59.3 65.6a7.4 7.4 0 0 1-7.2-8.7 7.6 7.6 0 0 1 2.6-4.3l.5-.4a7.6 7.6 0 0 1 4.9-1.2h.7a7.4 7.4 0 0 1 5.8 8 7.8 7.8 0 0 1-.5 2.1 7.3 7.3 0 0 1-6.8 4.5\" class=\"Fill-8\"/>\n    <path fill=\"#F4F3F3\" d=\"M100 65.6a7.3 7.3 0 1 1 0-14.6 7.3 7.3 0 0 1 0 14.6\" class=\"Fill-10\"/>\n    <path fill=\"#F4F3F3\" d=\"M79.7 112.8a35.4 35.4 0 0 1-31.8-18.6 5 5 0 1 1 8.9-4.5c4 8 13 13 22.9 13a25 25 0 0 0 22.8-13 5 5 0 0 1 9 4.5 35.4 35.4 0 0 1-31.8 18.6\" class=\"Fill-12\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/unknown.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M80 151.2A71.2 71.2 0 1 1 80 8.8a71.2 71.2 0 0 1 0 142.4zm5-45.6v-2.9c.3-4.5.8-7.7 1.2-9.5 1.1-5 3.8-9.4 9.2-16l5.3-6.6c2.2-2.8 3.7-5 5-7.4 2-3.6 3-7.2 3-11A27.2 27.2 0 0 0 81 25.6a27.7 27.7 0 0 0-25.5 16.3c-1 2.4-1.7 5.3-2 9.2a13 13 0 0 0-.2 1.4v3.9h16v-3.7c.3-2.3.6-3.9.9-4.4 1.7-4 6-6.7 10.8-6.7 6.5 0 11.7 4.8 11.7 10.6 0 1-.4 2-1.1 3.5-.8 1.4-1.9 3-3.5 5L83 67.1a53.6 53.6 0 0 0-14 34.5v4h16zm-8.1 27.5a9 9 0 1 0 0-18.1 9 9 0 0 0 0 18.1z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/unvalidated.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"m134.7 94.7 11.8 23.7L120 120l-1.7 26.4-23.7-11.8-14.7 22-14.7-22-23.7 11.8L40 120l-26.4-1.7 11.8-23.7L3.3 80l22-14.7-11.8-23.7L40 40l1.7-26.3 23.7 11.7L80 3.3l14.7 22 23.7-11.8L120 40l26.4 1.7-11.8 23.7 22 14.7-22 14.7zM42 67v26h76V67H42z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-down-small.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m33.5 54.7-7 7.1L80 115.3l53.5-53.5-7-7.1L80 101.2z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-down.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m153.2 41.6 6.8 6.8-80 80-80-80 6.8-6.8L80 114.8z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/alert.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M19 135.4h122L80 29.8 19 135.4zM84 17l69.8 120.7a4.8 4.8 0 0 1-3.9 7.7H10c-1.7 0-3.2-1-4-2.4a4.8 4.8 0 0 1 0-4.8L75.7 17a4.8 4.8 0 0 1 8.3 0z\"/>\n  <path d=\"M75 57v43a5 5 0 1 0 10 0V57a5 5 0 0 0-10 0zm5 56.7c3.5 0 6.4 3 6.4 6.4s-2.9 6.4-6.4 6.4a6.4 6.4 0 0 1-6.4-6.4c0-3.5 3-6.4 6.4-6.4z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-down-mini.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m99.4 65.2 7.1 7.1L80 98.8 53.5 72.3l7.1-7.1L80 84.6z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-left-small.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m105.3 126.5-7.1 7L44.7 80l53.5-53.5 7.1 7L58.8 80z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-left.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M118.4 6.8 111.6 0l-80 80 80 80 6.8-6.8L45.2 80z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-right-mini.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m65.2 99.4 7.1 7.1L98.8 80 72.3 53.5l-7.1 7.1L84.6 80z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-right-small.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m54.7 126.5 7.1 7L115.3 80 61.8 26.5l-7.1 7L101.2 80z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-right.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M41.6 6.8 48.4 0l80 80-80 80-6.8-6.8L114.8 80z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-up-mini.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m99.4 94.8 7.1-7.1L80 61.2 53.5 87.7l7.1 7.1L80 75.4z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-up-small.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m126.5 105.3 7-7.1L80 44.7 26.5 98.2l7 7.1L80 58.8z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/drop.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 213 295\">\n  <path d=\"M133.4 32.5c31.6 46.4 78.8 116 78.8 156 0 29.2-12 55.6-31.2 74.8a105.5 105.5 0 0 1-149.6.4A105.5 105.5 0 0 1 .2 188.9c0-40 47.2-110 78.8-156.4A658.7 658.7 0 0 0 97.4 4.9a10.4 10.4 0 0 1 17.6 0c5.6 8.4 11.6 17.6 18.4 27.6Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/back.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" class=\"back\">\n    <path d=\"M105.3 19.9V54H20V19.9z\" class=\"Rectangle-Copy-2\"/>\n    <path d=\"M139.5 54.2v19.4H54.2V54.2z\" class=\"Rectangle-Copy-3\"/>\n    <path d=\"M139.4 120v19.4H54.1V120z\" class=\"Rectangle-Copy-5\"/>\n    <path d=\"M20 20h34.1v85.3H20z\" class=\"Rectangle-Copy\"/>\n    <path d=\"M54.1 54.1h19.5v85.3H54.1z\" class=\"Rectangle-Copy-4\"/>\n    <path d=\"M120 54.1h19.4v85.3H120z\" class=\"Rectangle-Copy-6\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/badge.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"m136.41 95.13 22.69-15.14-22.68-15.11 12.07-24.44-27.19-1.74-1.75-27.21-24.43 12.09L80 .92 64.88 23.59 40.45 11.51 38.71 38.7l-27.2 1.76L23.6 64.89.9 80.01l22.7 15.1-12.09 24.45 27.19 1.74 1.77 27.21 24.41-12.09 15.14 22.68 15.1-22.68 24.45 12.07 1.72-27.19 27.22-1.75z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/bat-cave.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"m138.2 85.59.36-.92c-6.16-2.06-11.26-5.2-14.9-9.3a3.18 3.18 0 1 0-4.75 4.21c3.85 4.35 8.94 7.74 14.92 10.12a56.6 56.6 0 0 1-10.64 6.9c-1.19 20.68-26.37 42.78-80.62 50.32 15.47-9.54 24.2-16 10.79-24.05 16.75-4.1 18.5-11.65 5.3-19.55a33.16 33.16 0 0 0 4.48-3.21C49.3 95.32 38.52 86.81 33.4 76.42c-9.96-1.78-15.96-5.78-25.84-12.44 10.2-1.69 17.72-1.4 23.38-7.92C35.5 36.34 59.77 21.28 89 21.28c9.37 0 18.22 1.55 26.08 4.3 4.88-5.18 11.52-9.35 19.91-12.5 0 4.83-.39 9.36-1.16 13.6a60.51 60.51 0 0 1 12.74-6.44c0 9.37-1.45 17.64-4.37 24.82a33.26 33.26 0 0 1 4.8 10.74c2.59 3.45 5.42 4.35 5.42 7.66 0 3.58-3.54 5.23-6.42 9.66a33.47 33.47 0 0 1-2.41 5.2c-.14.43-.26.9-.38 1.37l.01-.75a39.61 39.61 0 0 1-5.03 6.65zm-9.45-26.98a4.66 4.66 0 1 0 0-9.32 4.66 4.66 0 0 0 0 9.32z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/book.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M6.7 14.6h36.6V146H6.7V14.6zm7.9 9.3v42.6h20.8V23.9H14.6zm36.8-9.3H88V146H51.4V14.6zm7.9 9.3v42.6H80V23.9H59.3zM88 19.5l35.3-9.4 34 127-35.3 9.4-34-127zm10 7 11 41.1 20.1-5.3-11-41.2-20 5.4z\" class=\"color1\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/bookmark.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"bookmark\">\n    <path fill=\"#9B9B9B\" d=\"M110.7 5.8H49.3c-6 0-10.9 4.8-10.9 10.9V146c0 9 9.1 13.4 16.5 2.1L80 107.6l25.5 40.6c7 11.3 16 7 16-2.1V16.7c0-6.1-4.7-10.9-10.8-10.9z\" class=\"Path\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/timer.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M18.89 82a61.1 61.1 0 1 1 122.22 0 61.1 61.1 0 1 1-122.22 0zm83.2-32L75.05 76.6a7 7 0 0 0 9.81 9.98L111.91 60a7 7 0 1 0-9.82-9.98zM41.15 75H33.5a7 7 0 0 0 0 14h7.65a7 7 0 0 0 0-14zm85.38 0h-7.65a7 7 0 0 0 0 14h7.65a7 7 0 1 0 0-14zM87 43.15V35.5a7 7 0 0 0-14 0v7.65a7 7 0 0 0 14 0zm0 85.38v-7.65a7 7 0 0 0-14 0v7.65a7 7 0 1 0 14 0z\"/>\n    <g fill-rule=\"nonzero\">\n      <path d=\"M48.51 31.55 35.29 18.33 15.37 38.26l13.22 13.21zM131.39 51.47l13.21-13.21-19.92-19.93-13.22 13.22z\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/trash.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M29 44.8h102v104.1H29V44.8zm17.5 16V133h12.1V60.8H46.5zm27.4 0V133H86V60.8H74zm27.4 0V133h12.1V60.8h-12.1zM71.8 22.5V6h16.4v16.4h56V39H15.7V22.5h56z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/triangle.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M0 149.6 80 11l80 138.6z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/thumb-up.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M156.7 64.8c0 5.2-3.3 9.5-7.6 11a13 13 0 0 1 2.8 8.1c0 4.8-2.8 9.2-7.6 11a13 13 0 0 1 2.8 8.2c0 6.7-5.2 12-12 12a11.8 11.8 0 0 1 2.5 7.2c0 6.7-5.3 12-12 12h-36c-19.2 0-23-9.1-38.4-14.4V57.6S84.8 47 84.8 12c0-6.7 5.3-12 12-12s12 5.3 12 12c0 0 0 23.5-3.4 29.7-5.3 8.2 1.5 11 3.4 11h36c6.7 0 12 5.3 12 12zM3.3 48h24c8 0 14.3 6.2 14.3 14.4V115c0 7.7-6.2 14.4-14.4 14.4h-24V48z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"pages/content/plan/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var ref$, div;\n    if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n      return inc(\"../_topbarNext/topbar\")(page);\n    }\n    div = inc(\"/addons/topbar2/topbar\")(inc(\"params/params\")(page)).append(page.params.context === \"searchResult\" && page.params.searchQuery ? inc(\"searchScopeInfo/searchScopeInfo\")() : void 8).prepend(inc(\"searchDeepBackBar/bar\")(page));\n    div.update = function(){\n      return div.replaceWith(inc(THISFILE)(page));\n    };\n    return div;\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"lib/util/startPage/animations/slideLeft/landscape/start.ls","text":"(function(){\n  return function(oldPW, newPW, o, onFinish){\n    var newTopbar, newPageSpacer, oldPageSpacer, init, play, finish;\n    newTopbar = newPW.findFirst(\".topbar\");\n    newPageSpacer = newPW.pageSpacer || newPW.page;\n    oldPageSpacer = oldPW.pageSpacer || oldPW.page;\n    init = function(){\n      var ref$;\n      oldPW.top.css({\n        visibility: \"hidden\"\n      });\n      newPW.css({\n        opacity: 1\n      });\n      newPageSpacer.css({\n        opacity: 1,\n        transform: \"translateX(5em)\"\n      });\n      if (newTopbar != null) {\n        if ((ref$ = newTopbar.mainAndBottom) != null) {\n          ref$.css({\n            opacity: 0\n          });\n        }\n      }\n      return newPW.bottom.css({\n        opacity: 1\n      });\n    };\n    play = function(){\n      var ref$;\n      if (newTopbar != null) {\n        if ((ref$ = newTopbar.mainAndBottom) != null) {\n          ref$.css({\n            opacity: 1,\n            transition: \"150ms ease-in\"\n          });\n        }\n      }\n      newPageSpacer.css({\n        opacity: 1,\n        transform: \"translateX(0)\",\n        transition: \"300ms ease-out\"\n      });\n      return oldPageSpacer.css({\n        transform: \"translateX(-1.5em)\",\n        transition: \"300ms linear\"\n      });\n    };\n    finish = function(){\n      return newPageSpacer.css({\n        transform: \"\",\n        transition: \"\"\n      });\n    };\n    init();\n    return inc(\"/lib/util/waitFrames/wait\")(3, function(){\n      play();\n      return setTimeout(function(){\n        finish();\n        onFinish();\n        return oldPW.remove();\n      }, 300);\n    });\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"lib/util/startPage/animations/slideLeft/portrait/start.ls","text":"(function(){\n  return function(oldPW, newPW, o, onFinish){\n    var animationDuration, newPageSpacer, oldPageSpacer, oldTopbar, newTopbar, oldBottomBar, newBottomBar, init, play, finish;\n    animationDuration = 300;\n    newPageSpacer = newPW.pageSpacer || newPW.page;\n    oldPageSpacer = oldPW.pageSpacer || oldPW.page;\n    oldTopbar = oldPW.findFirst(\".topBarMain\");\n    newTopbar = newPW.findFirst(\".topBarMain\");\n    oldBottomBar = oldPW.bottom;\n    newBottomBar = newPW.bottom;\n    init = function(){\n      oldPW.top.css({\n        visibility: \"hidden\"\n      });\n      newPW.css({\n        opacity: 1\n      });\n      newPageSpacer.css({\n        transform: \"translateX(100%)\",\n        boxShadow: \"0px 0px 13px rgba(0,0,0,0.1)\"\n      });\n      if (newTopbar != null) {\n        newTopbar.css({\n          transform: \"translateX(100%)\"\n        });\n      }\n      return newBottomBar != null ? newBottomBar.css({\n        transform: \"translateY(100%)\"\n      }) : void 8;\n    };\n    play = function(){\n      var i$, ref$, len$, p, results$ = [];\n      for (i$ = 0, len$ = (ref$ = [newPageSpacer, newTopbar, newBottomBar]).length; i$ < len$; ++i$) {\n        p = ref$[i$];\n        if (p != null) {\n          p.css({\n            transform: \"translateX(0)\",\n            transition: animationDuration + \"ms ease-out\"\n          });\n        }\n      }\n      if (newBottomBar != null) {\n        newBottomBar.css({\n          transform: \"translateY(0%)\",\n          transition: animationDuration / 3 + \"ms ease-out \" + 2 * animationDuration / 3 + \"ms\"\n        });\n      }\n      oldPageSpacer.css({\n        transform: \"translateX(-20%)\",\n        transition: animationDuration + \"ms ease-out\"\n      });\n      for (i$ = 0, len$ = (ref$ = [oldTopbar, oldBottomBar]).length; i$ < len$; ++i$) {\n        p = ref$[i$];\n        results$.push(p != null ? p.css({\n          transform: \"translateX(-20%)\",\n          transition: animationDuration + \"ms ease-out\"\n        }) : void 8);\n      }\n      return results$;\n    };\n    finish = function(){\n      var i$, ref$, len$, p, results$ = [];\n      for (i$ = 0, len$ = (ref$ = [newPageSpacer, newTopbar, newBottomBar]).length; i$ < len$; ++i$) {\n        p = ref$[i$];\n        results$.push(p != null ? p.css({\n          transform: \"\",\n          transition: \"\",\n          boxShadow: \"\"\n        }) : void 8);\n      }\n      return results$;\n    };\n    init();\n    return inc(\"/lib/util/waitFrames/wait\")(3, function(){\n      play();\n      return setTimeout(function(){\n        finish();\n        onFinish();\n        return oldPW.remove();\n      }, animationDuration);\n    });\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"lib/util/startPage/animations/slideRight/landscape/start.ls","text":"(function(){\n  return function(oldPW, newPW, o, onFinish){\n    var newPageSpacer, oldPageSpacer, oldTopbar, init, play, finish;\n    newPageSpacer = newPW.pageSpacer || newPW.page;\n    oldPageSpacer = oldPW.pageSpacer || oldPW.page;\n    oldTopbar = oldPW.findFirst(\".topbar\");\n    init = function(){\n      newPW.top.css({\n        visibility: \"hidden\"\n      });\n      oldPW.css({\n        zIndex: 1\n      });\n      return newPageSpacer.css({\n        opacity: 1,\n        transform: \"translateX(-1.5em)\"\n      });\n    };\n    play = function(){\n      newPW.css({\n        opacity: 1\n      });\n      newPageSpacer.css({\n        opacity: 1,\n        transform: \"translateX(0em)\",\n        transition: \"opacity 200ms linear,transform 300ms ease-in\"\n      });\n      return oldPageSpacer.css({\n        opacity: 0,\n        transform: \"translateX(5em)\",\n        transition: \"transform 300ms linear,opacity 100ms linear 200ms\"\n      });\n    };\n    finish = function(){\n      newPW.top.css({\n        visibility: \"visible\"\n      });\n      return newPageSpacer.css({\n        transform: \"\",\n        transition: \"\"\n      });\n    };\n    init();\n    return inc(\"/lib/util/waitFrames/wait\")(3, function(){\n      play();\n      return setTimeout(function(){\n        finish();\n        onFinish();\n        return oldPW.remove();\n      }, 300);\n    });\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"lib/util/startPage/animations/slideRight/portrait/start.ls","text":"(function(){\n  return function(oldPW, newPW, o, onFinish){\n    var animationDuration, newPageSpacer, oldPageSpacer, oldTopbar, newTopbar, oldBottomBar, newBottomBar, init, play, finish;\n    animationDuration = 300;\n    newPageSpacer = newPW.pageSpacer || newPW.page;\n    oldPageSpacer = oldPW.pageSpacer || oldPW.page;\n    oldTopbar = oldPW.findFirst(\".topBarMain\");\n    newTopbar = newPW.findFirst(\".topBarMain\");\n    oldBottomBar = oldPW.bottom;\n    newBottomBar = newPW.bottom;\n    init = function(){\n      newPW.top.css({\n        visibility: \"hidden\"\n      });\n      oldPW.css({\n        zIndex: 1\n      });\n      oldPW.pageSpacer.css({\n        boxShadow: \"0px 0px 13px rgba(0,0,0,0.1)\"\n      });\n      newPageSpacer.css({\n        opacity: 1,\n        transform: \"translateX(-20%)\"\n      });\n      newPW.css({\n        opacity: 1\n      });\n      if (newTopbar != null) {\n        newTopbar.css({\n          transform: \"translateX(-20%)\"\n        });\n      }\n      return newBottomBar != null ? newBottomBar.css({\n        transform: \"translateY(100%)\"\n      }) : void 8;\n    };\n    play = function(){\n      var i$, ref$, len$, p;\n      for (i$ = 0, len$ = (ref$ = [newPageSpacer, newTopbar]).length; i$ < len$; ++i$) {\n        p = ref$[i$];\n        if (p != null) {\n          p.css({\n            transform: \"translateX(0em)\",\n            transition: \"transform \" + animationDuration + \"ms ease-out\"\n          });\n        }\n      }\n      if (newBottomBar != null) {\n        newBottomBar.css({\n          transform: \"translateY(0%)\",\n          transition: \"transform \" + animationDuration / 3 + \"ms ease-out \" + 2 * animationDuration / 3 + \"ms\"\n        });\n      }\n      if (oldTopbar != null) {\n        oldTopbar.css({\n          transform: \"translateX(100%)\",\n          transition: \"transform \" + animationDuration + \"ms ease-out\"\n        });\n      }\n      if (oldBottomBar != null) {\n        oldBottomBar.css({\n          transform: \"translateY(100%)\",\n          transition: \"transform \" + animationDuration / 2 + \"ms ease-out\"\n        });\n      }\n      return oldPageSpacer != null ? oldPageSpacer.css({\n        transform: \"translateX(100%)\",\n        transition: \"transform \" + animationDuration + \"ms ease-out\"\n      }) : void 8;\n    };\n    finish = function(){\n      var i$, ref$, len$, p, results$ = [];\n      newPW.top.css({\n        visibility: \"visible\"\n      });\n      for (i$ = 0, len$ = (ref$ = [newPW, newPageSpacer, newTopbar, newBottomBar]).length; i$ < len$; ++i$) {\n        p = ref$[i$];\n        results$.push(p != null ? p.css({\n          transform: \"\",\n          transition: \"\"\n        }) : void 8);\n      }\n      return results$;\n    };\n    init();\n    return inc(\"/lib/util/waitFrames/wait\")(3, function(){\n      play();\n      return setTimeout(function(){\n        finish();\n        onFinish();\n        return oldPW.remove();\n      }, animationDuration);\n    });\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/schoolAdmin/start.ls","text":"(function(){\n  return function(p){\n    var ref$, ref1$;\n    p == null && (p = {});\n    inc(\"/lib/util/cache/set/set\")(\"schoolAdminStartParams\", p);\n    if ((ref$ = projects.info()[\"app01-school-admin\"]) != null && ref$.isLoaded) {\n      if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref1$ = log.findLast(\"navigationNext\")) != null && ref1$.enabled))) {\n        return inc(\"/../app01-school-admin/startNext/start\")();\n      } else {\n        return inc(\"/../app01-school-admin/start/start\")(p);\n      }\n    } else {\n      return startPage({\n        path: path(\"loadingPage/page\")\n      });\n    }\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/content/plan/topics/topics.ls","text":"(function(){\n  return function(page){\n    var ref$, index, topic;\n    return Div({\n      margin: \"0 auto\",\n      width: \"35em\",\n      paddingBottom: \"2em\",\n      maxWidth: deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled)) ? \"90%\" : \"95%\"\n    }).html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = page.plan.topics).length; i$ < len$; ++i$) {\n        index = i$;\n        topic = ref$[i$];\n        results$.push(inc(\"topic/topic\")(page, topic, index));\n      }\n      return results$;\n    }()), engine.isDebug ? inc(\"unlinkedBlocks/unlinkedBlocks\")(page) : void 8);\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/games/02_gameDetails/page.ls","text":"(function(){\n  return function(page){\n    var gd;\n    page.userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    page.gameDescription = inc(\"calcGameDescription/calc\")(page);\n    gd = page.gameDescription;\n    return {\n      navCategory: \"games\",\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"../00_shared/_urlDescription/description\")();\n      },\n      start: function(){\n        var ref$;\n        return page.html(Div({\n          width: \"35em\",\n          margin: \"0 auto\",\n          maxWidth: deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled)) ? \"90%\" : \"95%\"\n        }).html(inc(\"../00_shared/lockedGamesInfo/info\")(), inc(\"image/image\")(gd), inc(\"price/price\")(gd), inc(\"subtitle/subtitle\")(gd), inc(\"manualPopup/manual\")(gd), window.log ? inc(\"feedbackPopup/feedback\")(gd) : void 8, window.log\n          ? inc(\"difficulties/difficulties\")(gd)\n          : inc(\"userNoneInfo/info\")()));\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/init/navbar/init.ls","text":"(function(){\n  return function(pw){\n    var ref$, container;\n    if (!pw.pageCode.navCategory || (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled)))) {\n      app.navbar = null;\n      pw.navBottom.hide();\n      pw.navTop.hide();\n      return;\n    }\n    container = undefined;\n    if (app.navbarPosition === \"top\") {\n      container = pw.navTop;\n      pw.navBottom.hide();\n    } else {\n      container = pw.navBottom;\n      pw.navTop.hide();\n    }\n    return container.append(app.navbar = inc(\"/addons/navbar/navbar\")());\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"lib/util/previewIdeFilePath/startPage/previewTopic/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        var ref$;\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          return inc(\"_topbarNext/topbar\")(page);\n        }\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        var loadBlocks, create;\n        loadBlocks = function(){\n          return inc(\"loadBlocks/load\")(create);\n        };\n        create = function(blocks){\n          page.blocks = blocks;\n          return page.html(inc(\"blocks/blocks\")(page));\n        };\n        return loadBlocks();\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/misc/timeline/page.ls","text":"(function(){\n  return function(page){\n    var ref$;\n    page.params.publicId = (ref$ = log.findLast(\"setPublicId\")) != null ? ref$.value : void 8;\n    page.planDescriptions = inc(\"/data/content/calcPlanDescriptions/calc\")(true);\n    page.gameDescriptions = inc(\"/pages/games/00_shared/gameDescriptions/gameDescriptions\")();\n    return {\n      top: function(){\n        var ref$;\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          return inc(\"_topbarNext/topbar\")(page);\n        }\n        return inc(\"topbar/topbar\")(page);\n      },\n      start: function(){\n        var loadProject, loadTimelineDiv;\n        loadProject = function(){\n          return inc(\"loadProject/load\")(page, loadTimelineDiv);\n        };\n        loadTimelineDiv = function(){\n          return inc(\"loadTimelineDiv/load\")(page);\n        };\n        page.append(page.spinner = inc(\"/lib/gui/spinner/spinner\")());\n        return loadProject();\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/support/help/faqQuestion/create/create.ls","text":"(function(){\n  return function(page){\n    return function(categories){\n      var that, uid, questions, question, category, ref$, ref1$, ref2$;\n      if (that = page.params.questionPath) {\n        page.question = inc(that)();\n        page.question.path = that;\n      } else if (that = page.params.deepLinkUid) {\n        uid = that;\n        if (engine.isDebug) {\n          inc(\"checkUids/check\")(categories);\n        }\n        questions = _.flatMap(categories, \"questions\");\n        question = _.find(questions, {\n          uid: uid\n        });\n        category = _.find(categories, function(c){\n          return in$(question, c.questions);\n        });\n        if (question && (!question.guiLanguages || in$(engine.guiLanguage, question.guiLanguages))) {\n          page.question = inc(question.path)();\n          page.question.path = question.path;\n          if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n            page.topbar.updateTitle(category.name);\n          } else {\n            page.topbar.findFirst(\".categoryName\").html(category.name);\n          }\n        } else {\n          if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref1$ = log.findLast(\"navigationNext\")) != null && ref1$.enabled))) {\n            page.topbar.updateTitle(T(\"faqNotFoundTitle\"));\n          }\n        }\n      }\n      inc(\"log/log\")(page);\n      page.css({\n        width: \"35em\",\n        maxWidth: \"90%\",\n        margin: deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref2$ = log.findLast(\"navigationNext\")) != null && ref2$.enabled)) ? \"3em auto\" : \"1em auto\"\n      }).append(!page.question\n        ? inc(\"../notFoundDiv/div\")(page)\n        : [inc(\"../title/title\")(page), inc(\"../body/body\")(page), inc(\"../feedback/feedback\")(page), typeof log != 'undefined' && log !== null ? inc(\"../rating/rating\")(page) : void 8, engine.isDebug ? inc(\"../debugTags/tags\")(page) : void 8], page.params.deepLinkUid ? inc(\"backLink/link\")(page) : void 8);\n      return inc(\"/lib/util/browser/setUrlDescription/set\")(inc(\"../../_faqUrlDescription/description\")({\n        question: page.question\n      }));\n    };\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2025-08-25T12:59:49.630473"},{"path":"lib/init/extendLowDash/extend.ls","text":"(function(){\n  var random;\n  random = inc(\"seededRandom/random\")();\n  return function(){\n    return _.mixin({\n      ensureArray: function(o){\n        if (o == null) {\n          return [];\n        } else if (_.isArray(o)) {\n          return o;\n        } else {\n          return [o];\n        }\n      },\n      replaceAll: function(text, find, replace){\n        return text.split(find).join(replace);\n      },\n      filterLastInGroup: function(array, propertyName){\n        var last, i$, len$, o;\n        if (array.length === 0) {\n          return [];\n        }\n        if (!array) {\n          return;\n        }\n        last = {};\n        for (i$ = 0, len$ = array.length; i$ < len$; ++i$) {\n          o = array[i$];\n          last[o[propertyName]] = o;\n        }\n        return (function(){\n          var i$, ref$, results$ = [];\n          for (i$ in ref$ = last) {\n            o = ref$[i$];\n            results$.push(o);\n          }\n          return results$;\n        }());\n      },\n      setRandomSeed: random.seed,\n      shuffleWithSeed: random.shuffle,\n      randomWithSeed: random.random,\n      sampleWithSeed: random.sample,\n      setSeedAndShuffle: function(seed, a){\n        random.seed(seed);\n        return random.shuffle(a);\n      },\n      setSeedAndRandom: function(seed, a, b, c){\n        random.seed(seed);\n        return random.random(a, b, c);\n      },\n      setSeedAndSample: function(seed, a){\n        random.seed(seed);\n        return random.sample(a);\n      },\n      push: function(array1, o){\n        var i$, len$, el, results$ = [];\n        if (_.isArray(o)) {\n          for (i$ = 0, len$ = o.length; i$ < len$; ++i$) {\n            el = o[i$];\n            results$.push(array1.push(el));\n          }\n          return results$;\n        } else {\n          return array1.push(o);\n        }\n      },\n      findAllIndices: function(array, pred){\n        var indices, i;\n        indices = [];\n        i = -1;\n        while ((i = _.findIndex(array, pred, i + 1)) !== -1) {\n          indices.push(i);\n        }\n        return indices;\n      },\n      addMs: function(d, v){\n        return new Date(new Date(d).getTime() + v);\n      },\n      addMilliseconds: function(d, v){\n        return _.addMs(d, v);\n      },\n      addSeconds: function(d, v){\n        return _.addMs(d, v * 1000);\n      },\n      addMinutes: function(d, v){\n        return _.addMs(d, v * 1000 * 60);\n      },\n      addHours: function(d, v){\n        return _.addMs(d, v * 1000 * 60 * 60);\n      },\n      addDays: function(d, v){\n        return _.addMs(d, v * 1000 * 60 * 60 * 24);\n      },\n      deburrWithUmlauts: function(string){\n        return inc(\"deburrWithUmlauts/deburr\")(string);\n      }\n    });\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/games/02_gameDetails/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var ref$;\n    if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n      return inc(\"../_topbarNext/topbar\")(page);\n    }\n    return inc(\"/addons/topbar2/topbar\")({\n      back: true,\n      backLabel: T(\"games\"),\n      title: page.gameDescription.title,\n      coins: true\n    });\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/filterPlansByMatchingSubject/findPreschoolInitialProject/find.ls","text":"(function(){\n  return function(plans){\n    return _.ensureArray(_.find(plans, function(plan){\n      var preschoolInitialProject;\n      preschoolInitialProject = twitch({\n        de: \"c-preschool-shapes-animals-de\",\n        en_gb: \"c-preschool-mat-gb\",\n        en: \"c-preschool-shapes-animals-us\",\n        fr: \"c-preschool-concentration-fr\",\n        es: \"c-preschool-mat-es\",\n        pt: \"c-preschool-concentration-pt\"\n      });\n      return plan.project === preschoolInitialProject;\n    }));\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/support/help/faqQuestion/page.ls","text":"(function(){\n  return function(page){\n    page.params.deepLinkUid = inc(\"calcFaqDeeplinkUid/calc\")();\n    return {\n      top: function(){\n        var ref$;\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          return inc(\"_topbarNext/topbar\")(page);\n        }\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        var ref$;\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          page.disablePageVerticalCenter = true;\n        }\n        page.backToFaqList = inc(\"backToFaqList/back\")(page);\n        page.loadCategories = inc(\"loadCategories/load\")(page);\n        page.create = inc(\"create/create\")(page);\n        return page.loadCategories();\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/games/03_gameLoading/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var ref$;\n    if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n      return inc(\"../_topbarNext/topbar\")(page);\n    }\n    return inc(\"/addons/topbar2/topbar\")({\n      back: function(){\n        page.isCancelled = true;\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      },\n      title: page.gameDescription.title,\n      coins: true\n    });\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/support/help/chat/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        var ref$;\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          return inc(\"_topbarNext/topbar\")(page);\n        }\n        return inc(\"../_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      bottom: function(){\n        return inc(\"bottom/bottom\")(page);\n      },\n      start: function(){\n        page.userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n        page.messages = inc(\"calcMessages/calc\")(page);\n        page.html(inc(\"list/list\")(page));\n        return inc(\"onNewLogEvents/on\")(page);\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/games/01_gamesList/page.ls","text":"(function(){\n  return function(page){\n    page.userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    page.gameDescriptions = inc(\"../00_shared/gameDescriptions/gameDescriptions\")();\n    return {\n      navCategory: \"games\",\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"../00_shared/_urlDescription/description\")();\n      },\n      start: function(){\n        var ref$, gd;\n        return page.css({\n          padding: deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled)) ? \"3em 0\" : \"1em 0\"\n        }).append(inc(\"../00_shared/lockedGamesInfo/info\")(), (function(){\n          var i$, ref$, len$, results$ = [];\n          for (i$ = 0, len$ = (ref$ = page.gameDescriptions).length; i$ < len$; ++i$) {\n            gd = ref$[i$];\n            results$.push(inc(\"row/row\")(gd, page));\n          }\n          return results$;\n        }()));\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"lib/svg/shape/pin.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M68.04 3.59a3.43 3.43 0 0 1 2.76-.46c.94.28 1.7.95 2.12 1.83l17.86 37.92c3.3.07 6.58.48 9.8 1.22a47.53 47.53 0 0 1 29.83 21.28l1.29 2.05a3.42 3.42 0 0 1-1.1 4.72l-26.47 16.54 28.12 63.48a3.41 3.41 0 0 1-1.32 4.28 3.41 3.41 0 0 1-4.43-.69l-44.78-53.08-26.47 16.55a3.42 3.42 0 0 1-2.58.44 3.45 3.45 0 0 1-2.14-1.53l-1.28-2.05a47.94 47.94 0 0 1-2.81-45.5L20.23 37.98a3.45 3.45 0 0 1-.72-2.73 3.46 3.46 0 0 1 1.57-2.34L68.04 3.59z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/redo.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"nonzero\" class=\"redo\">\n    <path d=\"m139 47.4-17.3 10a49.3 49.3 0 1 0-5.3 56.7l15.2 13a69.2 69.2 0 1 1 7.4-79.7z\" class=\"Oval-6\"/>\n    <path d=\"M124 8.7h20v56H88v-20h36z\" class=\"Path-4-Copy-2\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"data/user/calcWeeklySpecialData/calc.ls","text":"(function(){\n  return function(){\n    var isInvited, assistantName, status, variants, userMenuSentence, todoLevelCount;\n    isInvited = inc(\"isInvited/is\")();\n    if (!isInvited) {\n      return {\n        isInvited: false,\n        todoLevelCount: 0\n      };\n    }\n    assistantName = inc(\"calcAssistantName/calc\")();\n    if (!assistantName) {\n      return {\n        isInvited: false,\n        todoLevelCount: 0\n      };\n    }\n    status = inc(\"calcStatus/calc\")(assistantName);\n    variants = inc(\"calcVariants/calc\")(assistantName);\n    userMenuSentence = inc(\"calcSentence/calc\")(assistantName, status, variants);\n    todoLevelCount = inc(\"calcTodoLevelCount/calc\")(assistantName, status);\n    return {\n      isInvited: true,\n      assistantName: assistantName,\n      status: status,\n      userMenuSentence: userMenuSentence,\n      todoLevelCount: todoLevelCount\n    };\n  };\n})();","updated":"2025-03-26T10:56:13.302131"},{"path":"data/user/calcWeeklySpecialData/isInvited/is.ls","text":"(function(){\n  return function(){\n    var introEvent, startEvent, inviteEvent, currentAssistants, assistantNames, e, timeAgo, daysAgo, i$, len$, assistant, assistantName, testEvent;\n    if (deviceLog['var'](\"enableMathWeeklySpecial\") && deviceLog['var'](\"enableMathWeeklySpecial\") !== \"none\") {\n      return true;\n    }\n    if (typeof log == 'undefined' || log === null) {\n      return false;\n    }\n    introEvent = log.findLast(\"assistantIntroShown\");\n    startEvent = log.findLast(\"assistantStart\");\n    if (introEvent != null && startEvent == null && (new Date() - new Date(introEvent.created)) / (1000 * 60 * 60 * 24) > 1) {\n      return false;\n    }\n    if (introEvent) {\n      return true;\n    }\n    inviteEvent = log.findLast(\"assistantInviteShown\");\n    currentAssistants = inc(\"../_getCurrentAssistants/get\")();\n    assistantNames = _.map(currentAssistants, \"assistantName\");\n    if (inviteEvent && !in$(inviteEvent.assistantName, assistantNames)) {\n      return false;\n    }\n    e = log.findLast(\"setNewUser\");\n    if (!e) {\n      return false;\n    }\n    timeAgo = new Date() - new Date(e.created);\n    daysAgo = timeAgo / (1000 * 60 * 60 * 24);\n    if (engine.guiLanguage !== \"de\" || daysAgo > 60) {\n      return false;\n    }\n    for (i$ = 0, len$ = currentAssistants.length; i$ < len$; ++i$) {\n      assistant = currentAssistants[i$];\n      if (in$(e.value.grade, assistant.grades) && e.value.subject === assistant.subject && new Date() >= new Date(assistant.startDate) && new Date() < new Date(assistant.endDate)) {\n        assistantName = assistant.assistantName;\n        break;\n      }\n    }\n    if (!assistantName) {\n      return false;\n    }\n    testEvent = log.findLast({\n      event: \"assistantTest\"\n    });\n    if (!testEvent) {\n      testEvent = {\n        event: \"assistantTest\",\n        enabled: true,\n        assistantName: assistantName,\n        isDebug: engine.isDebug ? true : void 8\n      };\n      log.log(testEvent);\n    }\n    if (!testEvent.enabled || testEvent.assistantName !== assistantName) {\n      return false;\n    }\n    return true;\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2025-03-26T10:56:13.302131"},{"path":"pages/start/startUser/07_extraPages/showTeacherTranslationOverlayInfo/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")({\n          close: inc(\"/pages/start/startUser/07_extraPages/_onExtraPageDone/on\")\n        });\n      },\n      start: function(){\n        var onImageLoaded, imageId, spinner, div;\n        log.log({\n          event: \"showTeacherTranslationOverlayInfo\"\n        });\n        onImageLoaded = function(){\n          if (!page.isVisible()) {\n            return;\n          }\n          spinner.remove();\n          return div.show();\n        };\n        imageId = twitch({\n          de: \"solocode_screen-translation-tool-DE!original\",\n          en_us: \"solocode_solocode_screen-translation-tool-EN!original\",\n          en_gb: \"solocode_solocode_screen-translation-tool-EN!original\",\n          fr: \"solocode_screen-translation-tool-FR!original\",\n          es: \"solocode_screen-translation-tool-ES!original\",\n          pt: \"solocode_screen-translation-tool-PT!original\"\n        });\n        return page.html(spinner = inc(\"/../app01/lib/gui/spinner/spinner\")(), div = Div({\n          display: \"flex\",\n          flexDirection: \"column\",\n          margin: \"2em auto\",\n          width: \"30em\",\n          maxWidth: \"90%\",\n          lineHeight: \"1.5em\"\n        }).html(inc(\"/lib/gui/image/image\")({\n          id: imageId,\n          fileFolder: \"media/extraPages/_images\",\n          onLoaded: onImageLoaded\n        }).css({\n          maxWidth: \"25em\",\n          maxHeight: \"25em\",\n          width: \"80vw\",\n          height: \"80vw\",\n          marginBottom: \"-1em\"\n        }), inc(\"title/title\")(), inc(\"_shared/text/text\")(T(\"text\")), Div({\n          display: \"inline-block\"\n        }).html(inc(\"buttonMoreInfo/button\")(), inc(\"buttonNotNow/button\")())).hide());\n      }\n    };\n  };\n})();","updated":"2025-03-26T10:56:13.302131"},{"path":"pages/start/startUser/07_extraPages/showTeacherTranslationOverlayInfo/page/title/title.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      margin: \"1em 0\",\n      fontWeight: \"bold\",\n      width: \"100%\"\n    }).html(T(\"title\"));\n  };\n})();","updated":"2025-03-26T10:56:13.302131"},{"path":"pages/start/startUser/07_extraPages/showTeacherTranslationOverlayInfo/page/buttonMoreInfo/popup/image/image.ls","text":"(function(){\n  return function(imageId, onImageLoaded){\n    return inc(\"/lib/gui/image/image\")({\n      id: imageId,\n      fileFolder: \"media/extraPages/_images\",\n      onLoaded: onImageLoaded\n    }).css({\n      width: \"9em\",\n      height: \"9em\",\n      marginBottom: \"1em\"\n    });\n  };\n})();","updated":"2025-03-26T10:56:13.302131"},{"path":"pages/start/startUser/07_extraPages/showBBStateLicenseInfo/show.ls","text":"(function(){\n  return function(){\n    var that, lastShowDate, nextShowDate, isTeacher, groupDescriptions, isTeacherInGroup, schoolDescriptions, i$, len$, sd, hasSchoolInBB;\n    if (new Date() > new Date(\"2025-06-30\")) {\n      return false;\n    }\n    if (engine.guiLanguage !== \"de\") {\n      return false;\n    }\n    if (that = typeof log != 'undefined' && log !== null ? log.findLast(\"showBBStateLicenseInfo\") : void 8) {\n      lastShowDate = new Date(that.created);\n      nextShowDate = new Date();\n      nextShowDate.setDate(lastShowDate.getDate() + 10);\n      if (new Date() < nextShowDate) {\n        return false;\n      }\n    }\n    isTeacher = inc(\"/data/user/isTeacher/get\")();\n    if (!isTeacher) {\n      return false;\n    }\n    groupDescriptions = inc(\"/../app01-group/data/calcGroupDescriptions/calc\")();\n    isTeacherInGroup = _.find(groupDescriptions, function(gd){\n      var ref$;\n      return gd != null ? (ref$ = gd.userRoles) != null ? ref$.teacher : void 8 : void 8;\n    }) != null;\n    if (!isTeacherInGroup) {\n      return false;\n    }\n    schoolDescriptions = inc(\"/data/school/calcSchoolDescriptions/calc\")();\n    for (i$ = 0, len$ = schoolDescriptions.length; i$ < len$; ++i$) {\n      sd = schoolDescriptions[i$];\n      if (sd != null && sd.hasDir) {\n        return false;\n      }\n    }\n    hasSchoolInBB = _.find(schoolDescriptions, function(sd){\n      return (sd != null ? sd.stateCode : void 8) === \"BB\";\n    }) != null;\n    if (!hasSchoolInBB) {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0\n    });\n    return true;\n  };\n})();","updated":"2025-06-06T06:54:57.249457"},{"path":"addons/topbar2/tools/download/overlay/items/checkAndLabel/checkAndLabel.ls","text":"(function(){\n  return function(manager, id){\n    var click;\n    click = function(){\n      var enabled;\n      enabled = manager.getPlanInfo(id).enabled;\n      if (deviceLog['var'](\"loadDevelopContent\") && !enabled) {\n        debug(\"Please disable debugVar loadDevelopContent to test offline download mode\");\n      }\n      if (enabled) {\n        manager.disablePlan(id);\n        return manager.removeFiles(id);\n      } else {\n        manager.enablePlan(id);\n        return manager.preparePlan(id);\n      }\n    };\n    return Div({\n      display: \"flex\",\n      alignItems: \"flex-start\",\n      padding: \"0.5em\"\n    }).html(inc(\"icon/icon\")(manager, id), inc(\"label/label\")(), inc(\"check/check\")(manager, id)).tap(click);\n  };\n})();","updated":"2025-04-01T08:46:53.219128"},{"path":"addons/topbar2/tools/download/overlay/items/checkAndLabel/check/check.ls","text":"(function(){\n  return function(manager, id){\n    var enabled, update, div;\n    enabled = manager.getPlanInfo(id).enabled;\n    update = function(){\n      if (manager.getPlanInfo(id).enabled !== enabled) {\n        return div.replaceWith(inc(THISFILE)(manager, id));\n      }\n    };\n    div = Div().addClass(\"onDownloadManagerUpdate-\" + id).html(SvgIcon({\n      svg: enabled\n        ? path(\"/lib/svg/icon/check-on.svg\")\n        : path(\"/lib/svg/icon/check-off.svg\")\n    }));\n    div.onDownloadManagerUpdate = update;\n    return div;\n  };\n})();","updated":"2025-04-01T08:46:53.219128"},{"path":"addons/topbar2/tools/download/overlay/items/checkAndLabel/icon/icon.ls","text":"(function(){\n  return function(manager, id){\n    var update, svg;\n    update = function(){\n      var planDetails, status;\n      planDetails = manager.getPlanInfo(id);\n      status = planDetails.status;\n      if (status === \"completed\") {\n        return svg.setColor(Color.green[300]);\n      } else if (status === \"disabled\") {\n        return svg.setColor(Color.grey[550]);\n      } else {\n        return svg.setColor(Color.amber[600]);\n      }\n    };\n    svg = SvgIcon({\n      svg: path(\"/lib/svg/shape/arrow-download.svg\"),\n      width: \"1em\",\n      height: \"1em\",\n      color: Color.grey[550]\n    }).addClass(\"onDownloadManagerUpdate-\" + id).css({\n      margin: \"0.1em 0.5em 0 0\"\n    });\n    update();\n    svg.onDownloadManagerUpdate = update;\n    return svg;\n  };\n})();","updated":"2025-04-01T08:46:53.219128"},{"path":"addons/topbar2/tools/download/overlay/items/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      color: Color.grey[500],\n      padding: \"0 0.5em\"\n    }).html(_.includes(app.currentPagePath, \"plan\") || _.includes(app.currentPagePath, \"block\")\n      ? T(\"downloadExplanationPlan\")\n      : T(\"downloadExplanationGroup\"));\n  };\n})();","updated":"2025-04-01T08:46:53.219128"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/highscore/popupHighscores/header/options/options.ls","text":"(function(){\n  return function(click){\n    return {\n      period: [\n        {\n          period: \"day\",\n          label: T(\"today\"),\n          click: click\n        }, {\n          period: \"week\",\n          label: T(\"sevenDays\"),\n          click: click\n        }\n      ],\n      users: [\n        {\n          label: T(\"school\"),\n          users: \"schools\",\n          click: click\n        }, {\n          label: T(\"myGroups\"),\n          users: \"groups\",\n          click: click\n        }, {\n          label: T(\"everybody\"),\n          users: \"all\",\n          click: click\n        }\n      ]\n    };\n  };\n})();","updated":"2025-06-19T06:52:42.2865"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/filterPlansByMatchingSubject/filter.ls","text":"(function(){\n  return function(plans, e){\n    var selectedSubject, plansWithMatchingSubject;\n    selectedSubject = e.value.subject.toLowerCase();\n    if (selectedSubject === \"preschool\") {\n      return inc(\"findPreschoolInitialProject/find\")(plans);\n    }\n    plansWithMatchingSubject = _.filter(plans, {\n      subject: selectedSubject\n    });\n    if (plansWithMatchingSubject.length === 0) {\n      plansWithMatchingSubject = inc(\"findNoMatchingSubjectInitialProject/find\")(plans, selectedSubject);\n    }\n    return plansWithMatchingSubject;\n  };\n})();","updated":"2025-06-19T06:52:42.2865"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/filterPlansByMatchingSubject/findNoMatchingSubjectInitialProject/find.ls","text":"(function(){\n  return function(plans, selectedSubject){\n    var plansWithMatchingSubject, projectPrefixesBySubject, projectPrefixes, i$, len$, plan, j$, len1$, projectPrefix;\n    plansWithMatchingSubject = [];\n    projectPrefixesBySubject = twitch({\n      de: inc(\"projectPrefixesBySubject/de\"),\n      en_us: inc(\"projectPrefixesBySubject/en_us\"),\n      en_gb: inc(\"projectPrefixesBySubject/en_gb\"),\n      fr: inc(\"projectPrefixesBySubject/fr\"),\n      es: inc(\"projectPrefixesBySubject/es\"),\n      pt: inc(\"projectPrefixesBySubject/pt\")\n    });\n    projectPrefixes = projectPrefixesBySubject != null ? projectPrefixesBySubject[selectedSubject] : void 8;\n    if (!projectPrefixes) {\n      return plans;\n    }\n    for (i$ = 0, len$ = plans.length; i$ < len$; ++i$) {\n      plan = plans[i$];\n      for (j$ = 0, len1$ = projectPrefixes.length; j$ < len1$; ++j$) {\n        projectPrefix = projectPrefixes[j$];\n        if (_.startsWith(plan.project, projectPrefix)) {\n          plansWithMatchingSubject.push(plan);\n        }\n      }\n    }\n    return plansWithMatchingSubject;\n  };\n})();","updated":"2025-06-19T06:52:42.2865"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/filterPlansByMatchingSubject/findNoMatchingSubjectInitialProject/projectPrefixesBySubject/de.ls","text":"(function(){})();","updated":"2025-06-19T06:52:42.2865"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/filterPlansByMatchingSubject/findNoMatchingSubjectInitialProject/projectPrefixesBySubject/en_gb.ls","text":"(function(){\n  return {\n    deu: [\"c-mono-deu\"],\n    es: [\"c-mono-esp\"],\n    fra: [\"c-mono-fra\"]\n  };\n})();","updated":"2025-06-19T06:52:42.2865"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/filterPlansByMatchingSubject/findNoMatchingSubjectInitialProject/projectPrefixesBySubject/en_us.ls","text":"(function(){\n  return {\n    deu: [\"c-mono-deu\"],\n    es: [\"c-mono-esp\"],\n    fra: [\"c-mono-fra\"],\n    ita: [\"c-mono-it\"],\n    bio: [\"c-bio\"],\n    phy: [\"c-phy\"],\n    chem: [\"c-chem\"],\n    geo: [\"c-geo\"]\n  };\n})();","updated":"2025-06-19T06:52:42.2865"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/filterPlansByMatchingSubject/findNoMatchingSubjectInitialProject/projectPrefixesBySubject/es.ls","text":"(function(){\n  return {\n    deu: [\"c-mono-deu\"],\n    fra: [\"c-mono-fra\"],\n    pt: [\"c-mono-por\"],\n    ita: [\"c-mono-it\"],\n    nah: [\"c-mono-nahu\"]\n  };\n})();","updated":"2025-06-19T06:52:42.2865"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/filterPlansByMatchingSubject/findNoMatchingSubjectInitialProject/projectPrefixesBySubject/fr.ls","text":"(function(){})();","updated":"2025-06-19T06:52:42.2865"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/filterPlansByMatchingSubject/findNoMatchingSubjectInitialProject/projectPrefixesBySubject/pt.ls","text":"(function(){\n  return {\n    deu: [\"c-mono-deu\"],\n    fra: [\"c-mono-fra\"],\n    es: [\"c-mono-spa\"],\n    ita: [\"c-mono-it\"]\n  };\n})();","updated":"2025-06-19T06:52:42.2865"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/orderPlansByGradeDistance/calcDistance/calc.ls","text":"(function(){\n  return function(plan, e){\n    var planGrades, userGrade;\n    planGrades = plan.grades;\n    userGrade = e.value.grade;\n    if (in$(userGrade, planGrades)) {\n      return 0;\n    }\n    return Math.abs(_.mean(planGrades) - userGrade);\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2025-06-19T06:52:42.2865"},{"path":"data/content/calcCurrentPlan/calcFromSetNewUser/orderPlansByGradeDistance/order.ls","text":"(function(){\n  return function(plansWithMatchingSubject, e){\n    var plan, p;\n    return _.orderBy((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = plansWithMatchingSubject).length; i$ < len$; ++i$) {\n        plan = ref$[i$];\n        p = _.clone(plan);\n        p.distance = inc(\"calcDistance/calc\")(plan, e);\n        results$.push(p);\n      }\n      return results$;\n    }()), \"distance\");\n  };\n})();","updated":"2025-06-19T06:52:42.2865"},{"path":"lib/init/classKit/_shared/calcContextTopic/calc.ls","text":"(function(){\n  return function(subject){\n    var t;\n    subject = inc(\"calcSubject/calc\")(subject);\n    t = {\n      MAT: \"CLSContextTopicMath\",\n      NATDEU: \"CLSContextTopicLiteracyAndWriting\",\n      ENG: \"CLSContextTopicWorldLanguage\",\n      SLDEU: \"CLSContextTopicWorldLanguage\",\n      SCI: \"CLSContextTopicScience\",\n      MUS: \"CLSContextTopicArtsAndMusic\"\n    };\n    return t[subject != null ? subject.toUpperCase() : void 8];\n  };\n})();","updated":"2025-06-19T07:56:25.504202"},{"path":"lib/init/classKit/_shared/calcContextTopic/calcSubject/calc.ls","text":"(function(){\n  return function(subject){\n    var lang;\n    if (_.isString(subject)) {\n      return subject;\n    }\n    if (subject == null) {\n      return \"\";\n    }\n    lang = engine.guiLanguage;\n    return subject[lang] || subject[lang.slice(0, 2)] || _.values(subject)[0];\n  };\n})();","updated":"2025-06-19T07:56:25.504202"},{"path":"lib/gui/multiform/multiform.ls","text":"(function(){\n  return function(params){\n    var p, div, a, i$, len$, s;\n    params.fields = _.ensureArray(params.fields);\n    p = {\n      params: params\n    };\n    p.submit = inc(\"submit/submit\")(p);\n    p.getValues = inc(\"getValues/get\")(p);\n    p.setValues = inc(\"setValues/set\")(p);\n    p.start = inc(\"start/start\")(p);\n    p.showSpinner = inc(\"buttonSpinner/show/show\")(p);\n    p.hideSpinner = inc(\"buttonSpinner/hide/hide\")(p);\n    p.fieldDivs = inc(\"fields/fields\")(p);\n    div = inc(\"div/div\")(p);\n    p.div = div;\n    a = [\"start\", \"showSpinner\", \"hideSpinner\", \"getValues\", \"setValues\"];\n    for (i$ = 0, len$ = a.length; i$ < len$; ++i$) {\n      s = a[i$];\n      div[s] = p[s];\n    }\n    return div;\n  };\n})();","updated":"2025-04-03T11:28:11.509002"},{"path":"lib/gui/divEditable/css/css.ls","text":"(function(){\n  var initIds;\n  initIds = {};\n  return function(d){\n    var cssId, e, s, w, roundToIntegerTrick;\n    cssId = d.cssId;\n    if (initIds[cssId]) {\n      return;\n    }\n    e = document.head.findFirst(\"#\" + cssId);\n    if (e != null) {\n      e.remove();\n    }\n    s = Style();\n    s.setAttribute(\"id\", cssId);\n    w = d.lineWrapping\n      ? [\"pre-wrap\", d.lineWrappingBreakSpace ? \"break-spaces\" : \"pre-wrap\", \"break-word\", \"break-word\"]\n      : [\"pre\", \"pre\", \"normal\", \"keep-all\"];\n    roundToIntegerTrick = d.lineHeightRoundToInteger ? \"1px\" : \"0px\";\n    s.innerHTML = \"    .\" + cssId + \" > div { \\n      padding       : \" + d.linePadding + \";\\n      line-height   : \" + d.lineHeight + \";\\n      border        : \" + roundToIntegerTrick + \" solid transparent;\\n      margin        : -\" + roundToIntegerTrick + \";\\n      font-family   : inherit;\\n      white-space   : \" + w[0] + \"; /* fallback */\\n      white-space   : \" + w[1] + \";\\n      overflow-wrap : \" + w[2] + \";\\n      word-break    : \" + w[3] + \";\\n    }\\n    \\n    /* selection is not supported on iOs */\\n    \\n    .\" + cssId + \" > ::selection { \\n      background : \" + Color.blue[100] + \"; \\n      color      : inherit;\\n    }\\n\";\n    document.head.append(s);\n    return initIds[cssId] = true;\n  };\n})();","updated":"2025-04-03T11:28:11.509002"},{"path":"lib/gui/divEditable/calcCssId/calc.ls","text":"(function(){\n  return function(p){\n    var id;\n    id = \"divEditable\" + p.linePadding + p.lineHeight + p.lineWrapping + p.lineWrappingBreakSpace + p.lineHeightRoundToInteger;\n    return id.split(\" \").join(\"\").split(\".\").join(\"\");\n  };\n})();","updated":"2025-04-03T11:28:11.509002"},{"path":"lib/gui/input2/screenKeyboard/screenKeyboard.ls","text":"(function(){\n  return function(o){\n    var parent, parentWasVisible, oldBackgroundColor, create;\n    parent = null;\n    parentWasVisible = false;\n    oldBackgroundColor = \"\";\n    create = function(){\n      var layout, that, ref$;\n      parent.addClass(\"safeAreaPaddingLeft\", \"safeAreaPaddingRight\", \"safeAreaPaddingBottom\").addClass(o.keyboardParentDiv ? \"keyboardParentDiv\" : void 8).css({\n        backgroundColor: Color.grey[150]\n      });\n      layout = (that = o.keyboardLayout)\n        ? that\n        : twitch({\n          de: \"standard\",\n          en: \"appEN\",\n          fr: \"appFR\",\n          es: \"standardNATES\",\n          pt: \"standardNATPT\"\n        });\n      return parent.append(o.div.screenKeyboard = inc(\"/lib/gui/screenKeyboard/keyboard\")({\n        keyboardHeader: o.keyboardHeader,\n        onKey: o.onKey,\n        layout: layout,\n        shiftStatus: (ref$ = o.keyboardShiftStatus) != null ? ref$ : false,\n        submitLabel: o.keyboardSubmitLabel,\n        showNewLine: o.multiline,\n        showSubmit: o.onSubmit != null\n      }).show());\n    };\n    return {\n      start: function(){\n        if (o.isDesktop) {\n          return;\n        }\n        if (!o.div.screenKeyboard) {\n          parent = o.keyboardParentDiv || app.currentPage.bottom;\n          oldBackgroundColor = parent.css(\"backgroundColor\");\n          create();\n        }\n        parentWasVisible = parent.isVisible();\n        parent.show();\n        return o.div.screenKeyboard.start();\n      },\n      stop: function(){\n        var ref$, ref1$;\n        if (!parentWasVisible) {\n          if (parent != null) {\n            parent.hide();\n          }\n        }\n        if (parent != null) {\n          parent.css({\n            backgroundColor: oldBackgroundColor\n          });\n        }\n        return (ref$ = o.div) != null ? (ref1$ = ref$.screenKeyboard) != null ? ref1$.stop() : void 8 : void 8;\n      }\n    };\n  };\n})();","updated":"2025-04-03T11:28:11.509002"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hiddenThingsChristmas/hiddenThingsChristmas.ls","text":"(function(){\n  return function(){\n    var date;\n    date = inc(\"/lib/util/formatDate2/format\")();\n    return {\n      id: \"hiddenThingsChristmas\",\n      project: \"app01-game-hidden-things-christmas\",\n      title: T(\"title\"),\n      category: \"puzzle\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-hidden-cover-christmas\",\n      iconPosition: \"50% 10%\",\n      numberOfTries: 3,\n      highscoreDisabled: false,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      isHidden: true,\n      newBadge: true,\n      difficulties: [\n        {\n          value: 0,\n          scenePath: \"scene01-lake/baubles\",\n          title: T(\"sceneLake\")\n        }, {\n          value: 1,\n          scenePath: \"scene02-desert/baubles\",\n          title: T(\"sceneDesert\")\n        }, {\n          value: 2,\n          scenePath: \"scene03-bakery/baubles\",\n          title: T(\"sceneBakery\")\n        }, {\n          value: 3,\n          scenePath: \"scene04-globe/baubles\",\n          title: T(\"sceneGlobe\")\n        }, {\n          value: 4,\n          scenePath: \"scene05-home-christmas/baubles\",\n          title: T(\"sceneHome\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/start/startUser/07_extraPages/showTeacherTranslationOverlayInfo/page/buttonMoreInfo/popup/popup.ls","text":"(function(){\n  return function(spinner){\n    var text, image, totalImagesLoaded, onImageLoaded, imageId1a, imageId1b, imageId2, imageId3, div;\n    text = inc(\"../../_shared/text/text\");\n    image = inc(\"image/image\");\n    totalImagesLoaded = 0;\n    onImageLoaded = function(){\n      if (!spinner.isVisible()) {\n        return;\n      }\n      totalImagesLoaded++;\n      if (totalImagesLoaded === 4) {\n        spinner.remove();\n        return inc(\"/lib/gui/infoPopup/popup\")({\n          label: div,\n          buttonLabel: T(\"closeButton\")\n        });\n      }\n    };\n    imageId1a = twitch({\n      de: \"solocode_20251803-01_crop-0-65-653-653\",\n      en_us: \"solocode_screen-translation-tool-EN-US-01a_crop-0-75-784-784\",\n      en_gb: \"solocode_screen-translation-tool-EN-GB-01a_crop-0-70-784-784\",\n      fr: \"solocode_screen-translation-tool-FR-01a_crop-0-75-784-784\",\n      es: \"solocode_screen-translation-tool-ES-01a_crop-0-77-784-784\",\n      pt: \"solocode_screen-translation-tool-PT-01a_crop-0-75-784-784\"\n    });\n    imageId1b = twitch({\n      de: \"solocode_20251803-08_crop-0-63-653-653\",\n      en_us: \"solocode_screen-translation-tool-EN-US-01b_crop-0-75-784-784\",\n      en_gb: \"solocode_screen-translation-tool-EN-GB-01b_crop-0-77-784-784\",\n      fr: \"solocode_screen-translation-tool-FR-01b_crop-0-77-784-784\",\n      es: \"solocode_screen-translation-tool-ES-01b_crop-0-82-784-784\",\n      pt: \"solocode_screen-translation-tool-PT-01b_crop-0-75-784-784\"\n    });\n    imageId2 = twitch({\n      de: \"solocode_20251803-03_crop-0-438-653-653\",\n      en_us: \"solocode_screen-translation-tool-EN-US-02_crop-0-521-784-784\",\n      en_gb: \"solocode_screen-translation-tool-EN-GB-02_crop-0-521-784-784\",\n      fr: \"solocode_screen-translation-tool-FR-02_crop-0-519-784-784\",\n      es: \"solocode_screen-translation-tool-ES-02_crop-0-519-784-784\",\n      pt: \"solocode_screen-translation-tool-PT-02_crop-0-528-784-784\"\n    });\n    imageId3 = twitch({\n      de: \"solocode_20251803-05_crop-0-40-926-926\",\n      en_us: \"solocode_screen-translation-tool-EN-US-03_crop-0-67-1250-1250\",\n      en_gb: \"solocode_screen-translation-tool-EN-GB-03_crop-0-70-1250-1250\",\n      fr: \"solocode_screen-translation-tool-FR-03_crop-0-67-1250-1250\",\n      es: \"solocode_screen-translation-tool-ES-03_crop-0-59-1250-1250\",\n      pt: \"solocode_screen-translation-tool-PT-03_crop-0-67-1250-1250\"\n    });\n    return div = Div({\n      margin: \"0.5em\"\n    }).html(Div({\n      marginBottom: \"1em\"\n    }).html(text(T(\"infoText1\")), Div({\n      display: \"inline-block\"\n    }).html(image(imageId1a, onImageLoaded), image(imageId1b, onImageLoaded))), Div({\n      marginBottom: \"1em\"\n    }).html(text(T(\"infoText2\")), image(imageId2, onImageLoaded)), Div({\n      marginBottom: \"1em\"\n    }).html(text(T(\"infoText3\")), image(imageId3, onImageLoaded)));\n  };\n})();","updated":"2025-04-07T13:43:49.575434"},{"path":"pages/start/startUser/07_extraPages/showTeacherTranslationOverlayInfo/show.ls","text":"(function(){\n  return function(){\n    var schoolDescriptions, hasSchoolInSpain, hasSchoolInPortugal, isTeacher, groupDescriptions, isTeacherInGroup;\n    if ((typeof log != 'undefined' && log !== null) && log.findLast(\"showTeacherTranslationOverlayInfo\")) {\n      return false;\n    }\n    schoolDescriptions = inc(\"/data/school/calcSchoolDescriptions/calc\")();\n    hasSchoolInSpain = _.find(schoolDescriptions, function(sd){\n      return (sd != null ? sd.country : void 8) === \"España\";\n    }) != null;\n    if (engine.guiLanguage === \"es\" && !hasSchoolInSpain) {\n      return false;\n    }\n    hasSchoolInPortugal = _.find(schoolDescriptions, function(sd){\n      return (sd != null ? sd.country : void 8) === \"Portugal\";\n    }) != null;\n    if (engine.guiLanguage === \"pt\" && !hasSchoolInPortugal) {\n      return false;\n    }\n    isTeacher = inc(\"/data/user/isTeacher/get\")();\n    if (!isTeacher) {\n      return false;\n    }\n    groupDescriptions = inc(\"/../app01-group/data/calcGroupDescriptions/calc\")();\n    isTeacherInGroup = _.find(groupDescriptions, function(gd){\n      var ref$;\n      return gd != null ? (ref$ = gd.userRoles) != null ? ref$.teacher : void 8 : void 8;\n    }) != null;\n    if (!isTeacherInGroup) {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0\n    });\n    return true;\n  };\n})();","updated":"2025-04-10T06:44:45.627597"},{"path":"pages/level/play/loadLevel/load.ls","text":"(function(){\n  return function(page, onDone){\n    var p, load, onError, finish;\n    p = page.params;\n    load = function(){\n      var ref$;\n      if (_.startsWith(p.levelPath, \"/learnList\")) {\n        return inc(\"load/learnList/load\")(p, finish, onError);\n      } else if (_.startsWith(p.levelPath, \"/mathPractice\")) {\n        return inc(\"load/mathPractice/load\")(p, finish, onError);\n      } else if ((ref$ = page.context) === \"assistantMath\" || ref$ === \"assistantMathWithPreschoolProgressBar\") {\n        return inc(\"load/assistantMath/load\")(p, finish, onError);\n      } else {\n        return inc(\"load/content/load\")(p, finish, onError);\n      }\n    };\n    onError = function(error){\n      return page.showOffline({\n        reason: \"offline\" === (error != null ? error.error : void 8) ? \"offline-loadLevel\" : \"technicalProblem\",\n        reasonDetails: {\n          loadDuration: error != null ? error.loadDuration : void 8\n        }\n      });\n    };\n    finish = function(l){\n      page.level = l;\n      if (!_.startsWith(p.levelPath, \"/learnList\")) {\n        page.updateUrlDescription();\n      }\n      return onDone();\n    };\n    return load();\n  };\n})();","updated":"2025-04-11T08:03:52.213197"},{"path":"lib/util/audioContextNext/init/init.ls","text":"(function(){\n  return function(){\n    if (window.sound) {\n      return;\n    }\n    window.sound = {};\n    app.audioContextDebugEvents == null && (app.audioContextDebugEvents = []);\n    app.audioContextDebugEvents.push({\n      event: \"init\",\n      created: new Date()\n    });\n    inc(\"../_shared/createOrResumeOnInteraction/createOrResume\")();\n    return inc(\"pauseAndResume/pauseAndResume\")();\n  };\n})();","updated":"2026-01-15T09:53:01.956148"},{"path":"lib/init/setMobileAppWindowOpen/set.ls","text":"(function(){\n  return function(){\n    var compare, engineVersion;\n    compare = inc(\"/lib/util/compareVersionString/compare\");\n    engineVersion = engine.clientVersion;\n    if (engine.isiOsApp && compare(engineVersion, \"1.9.0\") !== -1) {\n      return window.open = cordova.InAppBrowser.open;\n    }\n  };\n})();","updated":"2025-04-14T12:17:58.039938"},{"path":"lib/init/errorHandler/errorHandler.ls","text":"(function(){\n  return function(){\n    var onError;\n    onError = function(message, file, line, col, error){\n      var d, appType, appInfo, ref$, project, projectInfo, ref1$, e, ref2$, ref3$, ref4$, ref5$;\n      d = inc(\"calcErrorDescription/calc\")(message, file, line, col, error);\n      appType = (function(){\n        try {\n          return inc(\"/lib/util/calcAppType/calc\")();\n        } catch (e$) {}\n      }());\n      if (inc(\"calcIgnore/calc\")(d, appType)) {\n        return;\n      }\n      if (inc(\"calcWarning/calc\")(d)) {\n        return;\n      }\n      appInfo = (typeof projects != 'undefined' && projects !== null ? (ref$ = projects.info()) != null ? ref$[\"app01\"] : void 8 : void 8) || {};\n      project = d.file.split(\"/\")[2];\n      projectInfo = (typeof projects != 'undefined' && projects !== null ? (ref1$ = projects.info()) != null ? ref1$[project] : void 8 : void 8) || {};\n      e = {\n        event: \"error\",\n        message: d.message,\n        file: d.file,\n        fileUpdatedAt: (function(){\n          try {\n            return inc(\"calcFileUpdatedAt/calc\")(d.file);\n          } catch (e$) {}\n        }()),\n        line: d.line,\n        codeLineBefore: d.codeLineBefore,\n        codeLine: d.codeLine,\n        codeLineAfter: d.codeLineAfter,\n        stack: d.stack,\n        error: d.error,\n        logId: typeof log != 'undefined' && log !== null ? log.id() : void 8,\n        deviceLogId: (ref2$ = typeof deviceLog != 'undefined' && deviceLog !== null ? deviceLog.id() : void 8) != null\n          ? ref2$\n          : Store(\"deviceLogId\"),\n        page: typeof app != 'undefined' && app !== null ? app.currentPagePath : void 8,\n        pageParams: typeof app != 'undefined' && app !== null ? (ref2$ = app.currentPage) != null ? ref2$.params : void 8 : void 8,\n        lastPage: typeof app != 'undefined' && app !== null ? app.lastPagePath : void 8,\n        levelPath: typeof app != 'undefined' && app !== null ? (ref3$ = app.currentPage) != null ? (ref4$ = ref3$.params) != null ? ref4$.levelPath : void 8 : void 8 : void 8,\n        isDebug: engine.isDebug,\n        engineVersion: engine.clientVersion,\n        appVersion: appInfo.version,\n        appVersionDate: appInfo.versionDate,\n        appBranch: appInfo.branch,\n        projectVersion: projectInfo.version,\n        projectVersionDate: projectInfo.versionDate,\n        projectBranch: projectInfo.branch,\n        appType: appType,\n        appChecksum: (function(){\n          try {\n            return inc(\"calcApp01Checksum/calc\")();\n          } catch (e$) {}\n        }())\n      };\n      if (typeof log != 'undefined' && log !== null) {\n        inc(\"logUserError/log\")(e);\n      } else {\n        inc(\"logDeviceError/log\")(e);\n      }\n      if (engine.isDebug || engine.isDebugChallenge) {\n        if (typeof navigator != 'undefined' && navigator !== null) {\n          if ((ref5$ = navigator.splashscreen) != null) {\n            if (typeof ref5$.hide == 'function') {\n              ref5$.hide();\n            }\n          }\n        }\n        if (engine.debugContainer) {\n          engine.debugContainer.appendError(e);\n        } else {\n          inc(\"showVanillaError/show\")(d);\n        }\n      }\n      if (typeof window.onErrorCustomHandler == 'function') {\n        window.onErrorCustomHandler(e);\n      }\n      if (engine.isBotMode) {\n        return inc(\"sendPuppeteerError/send\")(d);\n      }\n    };\n    inc(\"reportUnhandledPromiseErrors/report\")();\n    window.onerror = onError;\n    return helpers.errorHandler = onError;\n  };\n})();","updated":"2025-04-22T07:31:41.075766"},{"path":"lib/gui/inputEditable/submit/submit.ls","text":"(function(){\n  return function(i){\n    var ref$;\n    return typeof (ref$ = i.params).onSubmit == 'function' ? ref$.onSubmit() : void 8;\n  };\n})();","updated":"2025-04-22T07:31:41.075766"},{"path":"lib/gui/speakerAnimate/div/div.ls","text":"(function(){\n  return function(s){\n    return Div({\n      display: \"inline-flex\",\n      verticalAlign: \"top\",\n      overflow: \"hidden\"\n    });\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/speakerDiv/svg/shapeSvg/svg.ls","text":"(function(){\n  return function(s){\n    return inc(\"../_createSvg/create\")({\n      svg: inc(\"/lib/svg/shape/speaker.svg\"),\n      color: Color.blue[500],\n      size: s.svgSize\n    }).css({\n      zIndex: 1\n    });\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/search/logSearchResults/log.ls","text":"(function(){\n  return function(result, isKeyword){\n    var results, query, version, topicMatches, blockMatches, planMatches, lastQueryEvent, queries;\n    results = result.searchResult;\n    query = result.searchQuery;\n    version = result.version;\n    topicMatches = _.filter(results, function(r){\n      return _.includes(r.matchType, \"topic\");\n    });\n    blockMatches = _.filter(results, function(r){\n      return _.includes(r.matchType, \"block\");\n    });\n    planMatches = _.filter(results, function(r){\n      return _.includes(r.matchType, \"plan\");\n    });\n    log.log({\n      event: \"contentSearchResult\",\n      query: query,\n      version: version,\n      isKeyword: isKeyword,\n      result: {\n        topics: topicMatches.length,\n        blocks: blockMatches.length,\n        plans: planMatches.length\n      }\n    });\n    if (topicMatches.length + blockMatches.length === 0) {\n      return;\n    }\n    lastQueryEvent = log.findLast(\"contentSearchLastQueries\");\n    if (lastQueryEvent) {\n      log.deleteEvent(lastQueryEvent);\n    }\n    queries = (lastQueryEvent != null ? lastQueryEvent.queries : void 8) || [];\n    queries = _.filter(queries, function(q){\n      return q.toLowerCase() !== query.toLowerCase();\n    });\n    queries.push(query);\n    queries = _.slice(queries, -5);\n    return log.log({\n      event: \"contentSearchLastQueries\",\n      queries: queries,\n      version: version\n    });\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/speakerDiv/svg/shapeSvgBackground/svg.ls","text":"(function(){\n  return function(s){\n    return inc(\"../_createSvg/create\")({\n      svg: inc(\"/lib/svg/shape/speaker.svg\"),\n      color: Color.black,\n      size: s.svgSize\n    }).css({\n      position: \"absolute\",\n      top: 0,\n      left: 0,\n      opacity: \"0.25\"\n    });\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/inputEditable/input.ls","text":"(function(){\n  return function(params){\n    var ref$, i, p2, div, a, i$, len$, n;\n    params == null && (params = {});\n    params.textMode == null && (params.textMode = \"text\");\n    params.lineHeight == null && (params.lineHeight = \"1.5em\");\n    params.linePadding == null && (params.linePadding = \"0.3em\");\n    params.multilinePaste = (ref$ = params.multiline) != null ? ref$ : false;\n    i = {\n      params: params\n    };\n    p2 = _.cloneDeep(params);\n    p2.onChange = function(){\n      var diff, ref$, ref1$;\n      inc(\"handleMaxLength/handle\")(i, params);\n      diff = inc(\"calcDiff/calc\")(i, params);\n      if ((ref$ = i.resetIcon) != null) {\n        ref$.update();\n      }\n      if ((ref1$ = i.passwordOverlay) != null) {\n        ref1$.update();\n      }\n      return typeof params.onChange == 'function' ? params.onChange(diff) : void 8;\n    };\n    i.divEditable = inc(\"../divEditable/div\")(p2);\n    i.resetIcon = inc(\"icons/reset/icon\")(i);\n    i.searchIcon = inc(\"icons/search/icon\")(i);\n    i.passwordIcon = inc(\"icons/password/icon\")(i);\n    i.passwordOverlay = inc(\"passwordOverlay/overlay\")(i);\n    i.placeholderOverlay = inc(\"placeholderOverlay/overlay\")(i);\n    i.div = inc(\"divWrapper/div\")(i);\n    i.isDesktop = function(){\n      return inc(\"../input2/isDesktop/isDesktop\")({});\n    };\n    i.setValue = function(v){\n      return inc(\"setValue/set\")(i, v);\n    };\n    i.start = function(selPos){\n      return inc(\"start/start\")(selPos, i);\n    };\n    i.stop = function(){\n      return inc(\"stop/stop\")(i);\n    };\n    i.submit = function(){\n      return inc(\"submit/submit\")(i);\n    };\n    inc(\"onKey/onKey\")(i, params);\n    inc(\"onPasswordDoubleClick/on\")(i);\n    inc(\"onInput/onInput\")(i);\n    inc(\"warnDisplayValue/warn\")(i);\n    div = i.div;\n    a = \"divEditable isDesktop setValue start stop submit\";\n    for (i$ = 0, len$ = (ref$ = a.split(\" \")).length; i$ < len$; ++i$) {\n      n = ref$[i$];\n      div[n] = i[n];\n    }\n    a = \"insertAtCursor getValue selectAll enable disable isEnabled setSelectionPositions getSelectionPositions\";\n    for (i$ = 0, len$ = (ref$ = a.split(\" \")).length; i$ < len$; ++i$) {\n      n = ref$[i$];\n      div[n] = i.divEditable[n];\n    }\n    return div;\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"pages/start/login/01_step1/linkQrcode/link.ls","text":"(function(){\n  return function(page, hasQrScanner){\n    var tap;\n    if (engine.isMobileApp && (typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null) && (typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.requestCameraPermission : void 8) != null && (typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.hasCameraPermission : void 8) != null) {\n      return inc(\"../linkQrcodeNext/link\")(page, hasQrScanner);\n    }\n    if (!engine.isMobileApp) {\n      return inc(\"../linkQrcodeDesktop/link\")(page, hasQrScanner);\n    }\n    if (typeof QRScanner == 'undefined' || QRScanner === null) {\n      return;\n    }\n    tap = function(){\n      return startPage({\n        path: path(\"/pages/misc/qrcode/page\"),\n        animation: \"slideUp\"\n      });\n    };\n    return Div({\n      margin: \"0.5em 0 0.7em\"\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: Div({\n        display: \"flex\"\n      }).html(inc(\"icon/icon\")(), T(\"scanQr\"))\n    }).tap(tap));\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"lib/gui/speakerAnimate/speakerAnimate.ls","text":"(function(){\n  return function(params){\n    var s, ref$, div, a, i$, len$, n;\n    s = {};\n    s.params = params;\n    s.size = (ref$ = params.size) != null ? ref$ : \"2.5em\";\n    s.sizeEm = +s.size.replace(\"em\", \"\");\n    s.outline = (ref$ = params.outline) != null ? ref$ : false;\n    s.outlineIconColor = (ref$ = params.outlineIconColor) != null\n      ? ref$\n      : Color.black;\n    s.progressbar = (ref$ = params.progressbar) != null\n      ? ref$\n      : (ref$ = params.progressbarType === \"below\") != null ? ref$ : false;\n    s.speakerSpeed = 300;\n    s.div = inc(\"div/div\")(s);\n    s.speakerDiv = inc(\"speakerDiv/div\")(s);\n    s.progressBarDiv = inc(\"progressBarDiv/div\")(s);\n    s.reset = function(){\n      return inc(\"reset/reset\")(s);\n    };\n    s.update = function(pos, duration){\n      return inc(\"update/update\")(s, pos, duration);\n    };\n    s.reset();\n    div = s.div;\n    a = \"update reset\";\n    for (i$ = 0, len$ = (ref$ = a.split(\" \")).length; i$ < len$; ++i$) {\n      n = ref$[i$];\n      div[n] = s[n];\n    }\n    return div;\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/util/sound/play/overwriteParams/overwrite.ls","text":"(function(){\n  return function(s, onFinish, onProgress, onStop){\n    var p, enableAnalyser, isLoop, pitchFactor, volume;\n    if (_.isPlainObject(onFinish)) {\n      p = onFinish;\n      onFinish = p.onFinish;\n      onProgress = p.onProgress;\n      onStop = p.onStop;\n      enableAnalyser = p.enableAnalyser;\n      isLoop = p.isLoop;\n      pitchFactor = p.pitchFactor;\n      volume = p.volume;\n    }\n    if (onFinish != null) {\n      s.onFinish = onFinish;\n    } else {\n      delete s.onFinish;\n    }\n    if (onProgress != null) {\n      s.onProgress = onProgress;\n    } else {\n      delete s.onProgress;\n    }\n    if (onStop != null) {\n      s.onStop = onStop;\n    } else {\n      delete s.onStop;\n    }\n    if (isLoop != null) {\n      s.isLoop = isLoop;\n    }\n    if (enableAnalyser != null) {\n      s.enableAnalyser = enableAnalyser;\n    }\n    if (pitchFactor != null) {\n      s.pitchFactor = pitchFactor;\n    }\n    if (volume != null) {\n      return s.volume = volume;\n    }\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/util/sound/play/play.ls","text":"(function(){\n  return function(s, onFinish, onProgress, onStop){\n    var that, checkAndFixAudioContext, playNextSoundPart, finish;\n    if (s.isPlaying) {\n      s.stop();\n      if (that = s.onFinish) {\n        setTimeout(that);\n      }\n    }\n    if (!s.initialized) {\n      s.playOnInitialized = {\n        onFinish: onFinish,\n        onProgress: onProgress\n      };\n      return;\n    }\n    inc(\"overwriteParams/overwrite\")(s, onFinish, onProgress, onStop);\n    if (s.isLoop && s.soundParts.length > 1) {\n      throw Error(\"isLoop is not supported for multiSounds\");\n    }\n    if (s.setAppLastSoundOnPlay) {\n      app.lastSound = s;\n    }\n    s.currentSoundPartIndex = -1;\n    s.isPlaying = true;\n    checkAndFixAudioContext = function(){\n      return inc(\"checkAndfixAudioContext/checkAndFix\")(playNextSoundPart);\n    };\n    playNextSoundPart = function(){\n      var sp, ref$;\n      s.currentSoundPartIndex++;\n      sp = s.soundParts[s.currentSoundPartIndex];\n      if (!sp) {\n        finish();\n        return;\n      }\n      s.currentSoundPart = sp;\n      sp.enableAnalyser = s.enableAnalyser;\n      sp.pitchFactor = s.pitchFactor;\n      sp.gain = s.volume * sp.gainOriginal;\n      sp.onProgress = onProgress;\n      sp.onEnd = playNextSoundPart;\n      sp.play();\n      return (ref$ = s.mutedIconPlay) != null ? ref$.animationStart() : void 8;\n    };\n    onProgress = function(currentTime, duration, analyserData){\n      return typeof s.onProgress == 'function' ? s.onProgress(currentTime + s.currentSoundPart.startTimePosition, s.duration, analyserData) : void 8;\n    };\n    finish = function(){\n      var muteIcon, ref$;\n      muteIcon = body.findFirst(\".soundNotPlaying\");\n      if (muteIcon != null) {\n        muteIcon.soundNotPlaying();\n      }\n      s.isPlaying = false;\n      if (typeof s.onFinish == 'function') {\n        s.onFinish();\n      }\n      return (ref$ = s.mutedIconStop) != null ? ref$.animationStop() : void 8;\n    };\n    return checkAndFixAudioContext();\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/progressBarDiv/div.ls","text":"(function(){\n  return function(s){\n    var t, div;\n    t = s.progressbar;\n    if (t === \"none\") {\n      return;\n    }\n    div = Div({\n      display: \"flex\",\n      position: \"absolute\",\n      top: \"100%\",\n      left: s.sizeEm * 0.1 + \"em\",\n      right: s.sizeEm * 0.2 + \"em\",\n      height: s.sizeEm * 0.1 + \"em\",\n      overflow: \"hidden\",\n      borderRadius: \"999px\",\n      backgroundColor: \"rgba(0, 0, 0, 0.1)\"\n    }).html(s.progressBarPosDiv = Div({\n      position: \"absolute\",\n      left: 0,\n      bottom: 0,\n      width: \"0%\",\n      height: \"100%\",\n      backgroundColor: Color.blue[500]\n    }).addClass(\"progressBarVolume\")).appendTo(s.div);\n    div.reset = function(){\n      return inc(\"reset/reset\")(s);\n    };\n    div.update = function(pos, duration){\n      return inc(\"update/update\")(s, pos, duration);\n    };\n    return div;\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/progressBarDiv/reset/reset.ls","text":"(function(){\n  return function(s){\n    s.progressBarPosDiv.css({\n      width: \"0%\"\n    });\n    if (s.progressbar) {\n      return s.progressBarDiv.css({\n        transform: \"\"\n      });\n    }\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/progressBarDiv/update/update.ls","text":"(function(){\n  return function(s, pos, duration){\n    var percent;\n    percent = pos === duration\n      ? 0\n      : Math.round(pos / duration * 100);\n    s.progressBarPosDiv.css({\n      width: percent + \"%\"\n    });\n    if (s.progressbar) {\n      return s.progressBarDiv.css({\n        transform: \"translateY(\" + (-s.sizeEm * 0.2 + \"em\") + \")\",\n        transition: \"all 0.15s\"\n      });\n    }\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/reset/reset.ls","text":"(function(){\n  return function(s){\n    var ref$;\n    s.speakerDiv.reset();\n    return (ref$ = s.progressBarDiv) != null ? ref$.reset() : void 8;\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/speakerDiv/div.ls","text":"(function(){\n  return function(s){\n    var div, svg;\n    s.svgSize = s.sizeEm * 0.8 + \"em\";\n    div = Div({\n      display: \"inline-flex\",\n      margin: s.sizeEm * 0.1 + \"em\"\n    }).html(s.outline\n      ? svg = inc(\"svg/iconSvg/svg\")(s)\n      : [inc(\"svg/shapeSvgBackground/svg\")(s), svg = inc(\"svg/shapeSvg/svg\")(s)]).appendTo(s.div);\n    svg.addClass(\"speaker\");\n    s.speakerSvg = svg;\n    s.speakerLine1 = svg.find(\".line1\")[0];\n    s.speakerLine2 = svg.find(\".line2\")[0];\n    div.reset = function(){\n      return inc(\"reset/reset\")(s);\n    };\n    div.update = function(pos, duration){\n      return inc(\"update/update\")(s, pos, duration);\n    };\n    return div;\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/speakerDiv/reset/reset.ls","text":"(function(){\n  return function(s, div){\n    s.speakerUpdatedAt = new Date();\n    s.speakerStep = -1;\n    if (s.outline) {\n      s.speakerLine1.show();\n      s.speakerLine2.show();\n    } else {\n      s.speakerSvg.css({\n        opacity: 0\n      });\n    }\n    if (s.progressbar) {\n      return s.speakerDiv.css({\n        transform: \"\"\n      });\n    }\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/speakerDiv/svg/_createSvg/create.ls","text":"(function(){\n  return function(p){\n    var svgEl, that;\n    svgEl = Div().html(p.svg).findFirst(\"svg\").css({\n      width: p.size,\n      height: p.size\n    });\n    if (that = p.color) {\n      inc(\"setColor/set\")(svgEl, that);\n    }\n    svgEl.setColor = function(c){\n      return inc(\"setColor/set\")(svgEl, c);\n    };\n    return svgEl;\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/speakerDiv/svg/_createSvg/setColor/set.ls","text":"(function(){\n  return function(svgEl, c){\n    var i$, ref$, len$, e, results$ = [];\n    svgEl.setAttribute(\"fill\", c);\n    for (i$ = 0, len$ = (ref$ = svgEl.querySelectorAll(\"*\")).length; i$ < len$; ++i$) {\n      e = ref$[i$];\n      results$.push(e.setAttribute(\"fill\", c));\n    }\n    return results$;\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/speakerDiv/svg/iconSvg/svg.ls","text":"(function(){\n  return function(s){\n    return inc(\"../_createSvg/create\")({\n      svg: inc(\"/lib/svg/icon/speaker.svg\"),\n      color: s.outlineIconColor,\n      size: s.svgSize\n    });\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/speakerDiv/update/update.ls","text":"(function(){\n  return function(s, pos, duration){\n    var now, needsUpdate;\n    now = new Date();\n    needsUpdate = now - s.speakerUpdatedAt > s.speakerSpeed;\n    if (!needsUpdate) {\n      return;\n    }\n    s.speakerUpdatedAt = now;\n    s.speakerStep++;\n    if (s.speakerStep > 2) {\n      s.speakerStep = 0;\n    }\n    s.speakerLine1.hide();\n    s.speakerLine2.hide();\n    s.speakerSvg.css({\n      opacity: 1\n    });\n    if (s.progressbar) {\n      s.speakerDiv.css({\n        transform: \"translateY(\" + (-s.sizeEm * 0.1 + \"em\") + \")\",\n        transition: \"all 0.15s\"\n      });\n    }\n    if (s.speakerStep > 0) {\n      s.speakerLine1.show();\n    }\n    if (s.speakerStep > 1) {\n      return s.speakerLine2.show();\n    }\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/gui/speakerAnimate/update/update.ls","text":"(function(){\n  return function(s, pos, duration){\n    var ref$;\n    if (pos === duration) {\n      return s.reset();\n    } else {\n      s.speakerDiv.update(pos, duration);\n      return (ref$ = s.progressBarDiv) != null ? ref$.update(pos, duration) : void 8;\n    }\n  };\n})();","updated":"2025-04-24T10:11:17.120487"},{"path":"lib/init/errorHandler/logDeviceError/log.ls","text":"(function(){\n  return function(e){\n    var e2, isRecurrentError;\n    try {\n      e2 = _.omit(e, [\"deviceLogId\", \"src\", \"created\"]);\n      e2.event = \"deviceError\";\n      isRecurrentError = inc(\"../detectRecurrentError/detect\")(e2, \"device\");\n      if (!isRecurrentError) {\n        if (typeof deviceLog != 'undefined' && deviceLog !== null) {\n          return deviceLog.log(e2);\n        } else if (e.deviceLogId && !engine.isBotMode) {\n          return helpers.postEvent(e.deviceLogId, e2);\n        }\n      }\n    } catch (e$) {}\n  };\n})();","updated":"2025-09-25T13:40:14.718379"},{"path":"lib/util/cssColorTags/cssColorTags.ls","text":"(function(){\n  return {\n    textColors: {\n      blue: Color.blue[600],\n      darkBlue: Color.blue[900],\n      darkblue: Color.blue[900],\n      red: Color.red[600],\n      green: Color.green[600],\n      lightYellow: Color.yellow[600],\n      lightyellow: Color.yellow[600],\n      yellow: Color.amber[700],\n      orange: Color.amber[900],\n      purple: Color.purple[500],\n      pink: Color.pink[200],\n      cyan: Color.cyan[600],\n      lime: Color.lime[700],\n      brown: Color.brown[400],\n      grey: Color.grey[500],\n      darkgrey: Color.grey[700]\n    },\n    markColors: {\n      blue: Color.blue[100],\n      darkBlue: Color.blue[400],\n      darkblue: Color.blue[400],\n      red: Color.red[100],\n      green: Color.green[100],\n      lightYellow: Color.yellow.A100,\n      lightyellow: Color.yellow.A100,\n      yellow: Color.amber[75],\n      orange: Color.deepOrange[150],\n      purple: Color.purple[100],\n      pink: Color.pink[150],\n      cyan: Color.cyan[200],\n      lime: Color.lime[200],\n      brown: Color.brown[150],\n      grey: Color.grey[250],\n      darkgrey: Color.grey[400]\n    },\n    underlineColors: {\n      blue: Color.blue[600],\n      darkblue: Color.blue[900],\n      red: Color.red[600],\n      green: Color.green[600],\n      lightyellow: Color.yellow[600],\n      yellow: Color.amber[700],\n      orange: Color.amber[900],\n      purple: Color.purple[500],\n      pink: Color.pink[200],\n      cyan: Color.cyan[600],\n      lime: Color.lime[700],\n      brown: Color.brown[400],\n      grey: Color.grey[500],\n      darkgrey: Color.grey[700]\n    }\n  };\n})();","updated":"2025-12-16T14:44:01.194054"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/input/showSuggestionOverlay/show.ls","text":"(function(){\n  return function(query, o){\n    var onDone, getSuggestions, getSuggestionsDebounce;\n    onDone = function(result){\n      return inc(\"onDone/on\")(o, query, result);\n    };\n    getSuggestions = function(){\n      return inc(\"getSuggestions/get\")(query, onDone);\n    };\n    getSuggestionsDebounce = _.debounce(getSuggestions, 300, {\n      leading: true,\n      trailing: false\n    });\n    return getSuggestionsDebounce();\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/faqList/category/name/name.ls","text":"(function(){\n  return function(category){\n    var ref$, ref1$;\n    return Div().css({\n      borderBottom: \"1px solid \" + Color.grey[200],\n      fontWeight: \"bold\",\n      textAlign: deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled)) ? \"start\" : void 8,\n      padding: deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref1$ = log.findLast(\"navigationNext\")) != null && ref1$.enabled)) ? \"1em 0\" : \"1em\"\n    }).append(category.name, inc(\"../../../_debugIcon/icon\")(category));\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/support/help/faqQuestion/title/title.ls","text":"(function(){\n  return function(page){\n    var ref$, ref1$;\n    return Div().css({\n      lineHeight: \"1.5em\",\n      fontWeight: \"bold\",\n      userSelect: \"text\",\n      padding: deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled)) ? \"0.5em\" : \"0.5em 0 0.5em\",\n      textAlign: deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref1$ = log.findLast(\"navigationNext\")) != null && ref1$.enabled)) ? \"start\" : void 8\n    }).append(page.question.title, inc(\"../../_debugIcon/icon\")(page.question));\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/top/top.ls","text":"(function(){\n  return function(mode){\n    mode == null && (mode = \"plans\");\n    if (mode === \"plans\") {\n      return inc(\"plans/top\")();\n    } else if (mode === \"folder\") {\n      return inc(\"folder/top\")();\n    } else if (mode === \"search\") {\n      return inc(\"search/top\")();\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/level/_shared/generateSlides/generate.ls","text":"(function(){\n  return function(level){\n    var slides, trainers, i$, len$, trainer, path, trainerSlides;\n    slides = [];\n    trainers = _.ensureArray(level.trainers);\n    for (i$ = 0, len$ = trainers.length; i$ < len$; ++i$) {\n      trainer = trainers[i$];\n      path = inc(\"calcPath/calc\")(trainer);\n      trainerSlides = inc(path)(trainer, level);\n      slides = slides.concat(trainerSlides);\n    }\n    return level.slides = slides;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/faqList/notFoundMessage/message.ls","text":"(function(){\n  return function(label, clickOpenChat){\n    var ref$, div;\n    return Div({\n      margin: \"0 auto\",\n      maxWidth: \"90%\",\n      width: \"35em\",\n      paddingLeft: \"0.5em\",\n      color: Color.grey[700],\n      marginTop: deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled)) ? \"4em\" : void 8\n    }).html(Div().html(Div({\n      display: \"inline\",\n      lineHeight: \"1.5em\"\n    }).html(label), clickOpenChat ? [\n      div = Div({\n        display: \"inline-block\",\n        textDecoration: \"underline\",\n        lineHeight: \"1.5em\"\n      }).html(T(\"sendMessage\")).tap({\n        up: clickOpenChat,\n        animation: {\n          down: function(){\n            return div.css({\n              backgroundColor: Color.grey[200]\n            });\n          },\n          up: function(){\n            return div.css({\n              backgroundColor: \"\"\n            });\n          },\n          cancel: function(){\n            return div.css({\n              backgroundColor: \"\"\n            });\n          }\n        },\n        tapZone: \"0.3em\"\n      }), \".\"\n    ] : void 8));\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/content/plan/_topbar/menu/items/itemsFolder.ls","text":"(function(){\n  return function(pds){\n    var pdsBySubject, items, subject;\n    pds = _.filter(pds, \"subject\");\n    pdsBySubject = _.groupBy(pds, \"subject\");\n    items = _.concat({\n      rowType: \"label\",\n      label: T(\"lastViewed\") + \":\"\n    }, inc(\"lastViewedItems/items\")(), {\n      rowType: \"line\"\n    }, {\n      rowType: \"label\",\n      label: T(\"subjects\") + \":\"\n    });\n    for (subject in pdsBySubject) {\n      pds = pdsBySubject[subject];\n      items.push({\n        rowType: \"folder\",\n        label: pds[0].subjectName || subject,\n        subject: subject,\n        items: _.map(pds, inc(\"item/item\"))\n      });\n    }\n    inc(\"pimpPreschool/pimp\")(items);\n    return items;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbarNext/calcBreadcrumbs/calc.ls","text":"(function(){\n  return function(page){\n    var ref$;\n    if ((ref$ = page.params.context) === \"searchDeep\" || ref$ === \"searchResult\") {\n      return {\n        title: T(\"search\"),\n        tap: function(){\n          return startPage({\n            history: -1,\n            animation: \"slideRight\"\n          });\n        }\n      };\n    } else {\n      return {\n        title: T(\"subjects\"),\n        tap: function(){\n          return startPage({\n            path: path(\"/pages/content/plansNext/page\"),\n            history: -1,\n            animation: \"slideRight\"\n          });\n        }\n      };\n    }\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/content/plan/_topbarNext/onBack/on.ls","text":"(function(){\n  return function(page){\n    var prevPage, onBack;\n    if (page.params.context === \"idePreview\") {\n      return;\n    }\n    if (page.params.isDeepLink) {\n      return;\n    }\n    prevPage = app.pageHistory[app.pageHistory.length - 2];\n    if (!prevPage || _.includes(prevPage.path, \"welcome/page\")) {\n      return;\n    }\n    return onBack = function(){\n      return startPage({\n        history: -1,\n        animation: \"slideRight\"\n      });\n    };\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/content/plansNext/page.ls","text":"(function(){\n  return function(page){\n    page.plansData = inc(\"calcPlansData/calc\")(page);\n    return {\n      navCategory: \"content\",\n      top: function(){\n        return inc(\"_topbarNext/topbarNext\")(page);\n      },\n      start: function(){\n        page.disablePageVerticalCenter = true;\n        return page.html(inc(\"searchHeader/header\")(page), inc(\"plansByCategory/plansByCategory\")(page.plansData));\n      }\n    };\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/content/plansNext/plansByCategory/row/header/header.ls","text":"(function(){\n  return function(categoryData){\n    var tap, div, b;\n    tap = function(){\n      categoryData.isExpanded = !categoryData.isExpanded;\n      return div.parent().replaceWith(inc(\"../row\")(categoryData));\n    };\n    div = Div({\n      display: \"flex\",\n      borderTop: b = \"1px solid \" + Color.grey[200],\n      borderBottom: b,\n      background: \"white\",\n      height: \"3.7em\",\n      padding: \"0.3em 0\",\n      marginTop: \"-2px\"\n    });\n    return div.html(inc(\"subjectIcon/icon\")(categoryData), inc(\"title/title\")(categoryData), inc(\"newTag/tag\")(categoryData), inc(\"debugTag/tag\")(categoryData), inc(\"lastViewed/lastViewed\")(categoryData)).tap(tap);\n  };\n})();","updated":"2025-08-04T08:51:40.526756"},{"path":"pages/content/plansNext/plansByCategory/row/plans/plans.ls","text":"(function(){\n  return function(categoryData){\n    var item;\n    if (!categoryData.isExpanded) {\n      return;\n    }\n    return Div({\n      borderTop: \"1px solid white\",\n      marginTop: \"-2px\",\n      background: \"white\"\n    }).html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = categoryData.items).length; i$ < len$; ++i$) {\n        item = ref$[i$];\n        if (item.rowType === \"label\") {\n          results$.push(inc(\"labelRow/row\")(item));\n        } else if (item.rowType === \"plan\") {\n          results$.push(inc(\"planRow/row\")(item, categoryData));\n        }\n      }\n      return results$;\n    }()));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/row.ls","text":"(function(){\n  return function(categoryData){\n    var div;\n    div = Div({\n      background: \"white\",\n      marginTop: \"-2px\"\n    });\n    return div.html(inc(\"header/header\")(categoryData), inc(\"plans/plans\")(categoryData));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"data/content/calcPlanDescription/calcDescription/calcSubject/calc.ls","text":"(function(){\n  return function(plan){\n    var lang, that, ref$, ref1$;\n    lang = engine.guiLanguage;\n    if (_.isString(plan.subject)) {\n      return plan.subject;\n    } else if (that = (ref$ = plan.subject) != null ? ref$[lang] : void 8) {\n      return that;\n    } else if (that = (ref1$ = plan.subject) != null ? ref1$[lang.slice(0, 2)] : void 8) {\n      return that;\n    } else {\n      return \"\";\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"data/content/calcPlanDescription/calcDescription/calc.ls","text":"(function(){\n  return function(p){\n    var d, ref$;\n    d = _.clone(p);\n    d.subject = inc(\"calcSubject/calc\")(p);\n    d.grades = _.ensureArray((ref$ = p.grades) != null\n      ? ref$\n      : p.grade);\n    d.title = inc(\"calcTitle/calc\")(p);\n    d.pageUrl = inc(\"calcPageUrl/calc\")(p);\n    d.sortIndex = inc(\"calcSortIndex/calc\")(p);\n    d.guiLanguage = engine.guiLanguage;\n    d.subjectName = inc(\"calcSubjectName/calc\")(d.subject);\n    d.displayName = d.subjectName + \" \" + d.title;\n    return d;\n  };\n})();","updated":"2025-06-26T12:39:33.740994"},{"path":"data/content/_subjects/en_gb/subjects.ls","text":"(function(){\n  return {\n    preschool: \"Reception\",\n    nateng: \"English\",\n    mat: \"Maths\",\n    sci: \"Science\",\n    com: \"Computing\",\n    eng: \"English (EAL)\",\n    geo: \"Geography\",\n    his: \"History\",\n    lang1: \"Languages\",\n    mus: \"Music\",\n    sel: \"PSHE\"\n  };\n})();","updated":"2025-08-11T09:12:32.066965"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/search/search.ls","text":"(function(){\n  return function(o){\n    return function(query){\n      var searchQuery, keywords, ref$, isKeyword, parent, ref1$, load, onLoaded, onError;\n      if (query) {\n        o.input.setValue(query);\n      }\n      searchQuery = o.input.getValue().trim();\n      o.searchQuery = searchQuery;\n      keywords = (ref$ = inc(\"/lib/util/cache/get/get\")(\"searchKeywords\")) != null ? ref$.keywords : void 8;\n      isKeyword = _.includes(keywords, searchQuery);\n      app.currentPage.params.searchQuery = searchQuery;\n      parent = body.findFirst(\".menuSearchResult\");\n      if (!searchQuery) {\n        o.input.start();\n        if ((ref1$ = parent.spinner) != null) {\n          ref1$.stop();\n        }\n        return;\n      }\n      load = function(){\n        return inc(\"loadSearchResult/load\")({\n          searchQuery: searchQuery,\n          onError: onError,\n          onLoaded: onLoaded\n        });\n      };\n      onLoaded = function(result){\n        var searchResult, ref$, ref1$;\n        if (!(parent != null && parent.isVisible())) {\n          return;\n        }\n        if (!result.searchQuery) {\n          return onError();\n        }\n        inc(\"logSearchResults/log\")(result, isKeyword);\n        searchResult = result.searchResult;\n        if (searchResult.length === 0) {\n          o.input.start();\n          if ((ref$ = parent.spinner) != null) {\n            ref$.stop();\n          }\n          o.notFound();\n        } else {\n          if ((ref1$ = parent.spinner) != null) {\n            ref1$.stop();\n          }\n          o.showResult(searchResult);\n        }\n        return requestAnimationFrame(function(){\n          return o.hideSuggestions();\n        });\n      };\n      onError = function(errors){\n        log.log({\n          event: \"contentSearchError\",\n          query: query,\n          errors: errors\n        });\n        return parent != null ? parent.css({\n          padding: \"0.5em\"\n        }).html(_.find(errors, {\n          error: \"offline\"\n        })\n          ? T(\"offlineError2\")\n          : T(\"errorText\")) : void 8;\n      };\n      return load();\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"data/content/_subjects/en_us/subjects.ls","text":"(function(){\n  return {\n    preschool: \"Preschool\",\n    nateng: \"English Language Arts\",\n    mat: \"Math\",\n    sci: \"Science\",\n    soc: \"Social Studies\",\n    eng: \"English Language Development (ELD)\",\n    lang2: \"ELD for Spanish Speakers\",\n    life: \"Life Skills\",\n    mus: \"Music\",\n    lang1: \"World Languages\"\n  };\n})();","updated":"2026-03-06T09:42:55.56616"},{"path":"data/content/_subjects/de/subjects.ls","text":"(function(){\n  return {\n    preschool: \"Vorschule\",\n    natdeu: \"Deutsch\",\n    mat: \"Mathematik\",\n    eng: \"Englisch\",\n    deu: \"Deutsch Zweitsprache\",\n    sci: \"Sachunterricht\",\n    bio: \"Biologie\",\n    chem: \"Chemie\",\n    phy: \"Physik\",\n    com: \"Informatik\",\n    geo: \"Geographie\",\n    his: \"Geschichte\",\n    mus: \"Musik\",\n    fra: \"Französisch\",\n    es: \"Spanisch\",\n    ita: \"Italienisch\",\n    pt: \"Portugiesisch\",\n    ukr: \"Ukrainisch\",\n    rus: \"Russisch\",\n    tur: \"Türkisch\"\n  };\n})();","updated":"2025-09-05T11:06:42.400432"},{"path":"data/content/calcPlanDescription/calcDescription/calcTitle/calc.ls","text":"(function(){\n  return function(plan){\n    var lang, that, ref$, ref1$;\n    lang = engine.guiLanguage;\n    if (_.isString(plan.title)) {\n      return plan.title;\n    } else if (that = (ref$ = plan.title) != null ? ref$[lang] : void 8) {\n      return that;\n    } else if (that = (ref1$ = plan.title) != null ? ref1$[lang.slice(0, 2)] : void 8) {\n      return that;\n    } else {\n      return \"\";\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"data/content/_subjects/subjects.ls","text":"(function(){\n  return function(){\n    return twitch({\n      de: inc(\"de/subjects\"),\n      en_us: inc(\"en_us/subjects\"),\n      en_gb: inc(\"en_gb/subjects\"),\n      fr: inc(\"fr/subjects\"),\n      es: inc(\"es/subjects\"),\n      pt: inc(\"pt/subjects\")\n    });\n  };\n})();","updated":"2025-07-09T10:56:48.350233"},{"path":"data/content/_subjects/pt/subjects.ls","text":"(function(){\n  return {\n    preschool: \"Educação Infantil\",\n    natpt: \"Língua Portuguesa\",\n    mat: \"Matemática\",\n    sci: \"Ciências\",\n    his: \"História\",\n    eng: \"Inglês\",\n    mus: \"Música\",\n    com: \"Computação\",\n    sel: \"Educ. Socioemocional\",\n    lang1: \"Outros idiomas\"\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/input/showSuggestionOverlay/getSuggestions/get.ls","text":"(function(){\n  return function(searchQuery, onDone){\n    return inc(\"/../app01/lib/util/pllsCall/call\")({\n      server: deviceLog['var'](\"useApisDbDebug\") ? \"apis-content-search-debug.solocode.com\" : \"apis-content-search-1.anton.app\",\n      path: path(\"/../server-apis-content-search/apis/blocks/getKeywordSuggestion/get\"),\n      requiredVisibleDiv: app.currentPage,\n      params: {\n        searchQuery: searchQuery,\n        searchGuiLanguage: engine.guiLanguage\n      },\n      onError: function(error){\n        return inc(\"/../app01/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        return inc(\"/../app01/lib/offline/offlinePopup/popup\")();\n      },\n      onCompleted: function(result){\n        if (result.status !== \"ok\") {\n          return inc(\"/../app01/lib/gui/errorPopup/popup\")();\n        } else {\n          return onDone(result.keywords);\n        }\n      }\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/input/showSuggestionOverlay/onDone/background/background.ls","text":"(function(){\n  return function(o){\n    var tap;\n    tap = function(){\n      return o.hideSuggestions();\n    };\n    return Div({\n      position: \"fixed\",\n      left: 0,\n      right: 0,\n      height: \"var(--centerHeight)\"\n    }).tap({\n      animation: \"none\",\n      up: tap\n    }).css({\n      cursor: \"default\"\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/input/showSuggestionOverlay/onDone/calcMaxHeight/calc.ls","text":"(function(){\n  return function(o){\n    var ref$, ref1$;\n    return body.height() - o.input.offset().bottom - ((ref$ = (ref1$ = body.findFirst(\".screenKeyboard\")) != null ? ref1$.height() : void 8) != null ? ref$ : 0) - 10 + \"px\";\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/input/showSuggestionOverlay/onDone/rows/removeRowsBelowScope/remove.ls","text":"(function(){\n  return function(div){\n    var h, i$, ref$, len$, el, results$ = [];\n    h = body.height() - app.softKeyboardHeight;\n    for (i$ = 0, len$ = (ref$ = _.reverse(div.childrenAll())).length; i$ < len$; ++i$) {\n      el = ref$[i$];\n      if (el.offset().bottom > h) {\n        results$.push(el.remove());\n      }\n    }\n    return results$;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/input/showSuggestionOverlay/onDone/rows/row/row.ls","text":"(function(){\n  return function(suggestion, o){\n    var tap;\n    tap = function(){\n      o.lastValue = suggestion;\n      o.input.setValue(suggestion);\n      o.hideSuggestions();\n      return o.search();\n    };\n    return Div({\n      padding: \"0.6em 0 0.6em 1.1em\",\n      fontStyle: \"italic\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      whiteSpace: \"nowrap\",\n      borderBottom: \"1px solid \" + Color.grey[300]\n    }).tap({\n      animation: \"hover\",\n      up: tap\n    }).html(suggestion);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/input/showSuggestionOverlay/onDone/rows/rows.ls","text":"(function(){\n  return function(o, suggestions){\n    var div, suggestion;\n    return div = Div({\n      position: \"absolute\",\n      left: 0,\n      right: 0,\n      top: 0\n    }).html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = suggestions).length; i$ < len$; ++i$) {\n        suggestion = ref$[i$];\n        results$.push(inc(\"row/row\")(suggestion, o));\n      }\n      return results$;\n    }())).onWindowResize(function(){\n      return div.remove();\n    }).onDomAppend(function(){\n      return inc(\"removeRowsBelowScope/remove\")(div);\n    }).bind(\"mousedown\", function(e){\n      e.preventDefault();\n      return e.stopImmediatePropagation();\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/searchNext/search.ls","text":"(function(){\n  return function(o, query){\n    query == null && (query = o.input.getValue());\n    return inc(\"/pages/search/start\")({\n      searchQuery: query\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showStartQueries/_row/row.ls","text":"(function(){\n  return function(o, query){\n    var tap;\n    tap = function(){\n      return o.search(query);\n    };\n    return Div({\n      fontStyle: \"italic\",\n      display: \"flex\",\n      padding: \"0.4em 0.4em 0.4em 0.6em\",\n      margin: \"0 0.5em\",\n      color: Color.grey[700]\n    }).html(query, Div({\n      flex: \"1 1 auto\"\n    })).tap(tap);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showStartQueries/lastQueryEvent/rows.ls","text":"(function(){\n  return function(o){\n    var lastQueryEvent, q;\n    lastQueryEvent = log.findLast(\"contentSearchLastQueries\");\n    if (!lastQueryEvent) {\n      return;\n    }\n    return Div({\n      zIndex: \"99\"\n    }).html(Div({\n      margin: \"0.6em 0 0.4em 0.7em\",\n      color: Color.grey[800],\n      fontWeight: \"bold\"\n    }).html(T(\"lastSearches\")), (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = lastQueryEvent.queries.slice().reverse()).length; i$ < len$; ++i$) {\n        q = ref$[i$];\n        results$.push(inc(\"../_row/row\")(o, q));\n      }\n      return results$;\n    }()), Div({\n      height: \"1px\",\n      background: Color.grey[300] + \"\",\n      width: \"100%\",\n      marginTop: \"0.5em\"\n    }));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showStartQueries/popuplarQueries/rows.ls","text":"(function(){\n  var queries;\n  queries = [T(\"example1\"), T(\"example2\"), T(\"example3\"), T(\"example4\"), T(\"example5\")];\n  return function(o){\n    var q;\n    return Div({\n      zIndex: \"99\"\n    }).html(Div({\n      margin: \"0.6em 0 0.4em 0.7em\",\n      color: Color.grey[800],\n      fontWeight: \"bold\"\n    }).html(T(\"popularSearchQueries\")), (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = queries).length; i$ < len$; ++i$) {\n        q = ref$[i$];\n        results$.push(inc(\"../_row/row\")(o, q));\n      }\n      return results$;\n    }()));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showStartQueries/show.ls","text":"(function(){\n  return function(o){\n    return function(){\n      var parent;\n      o.showSearch();\n      parent = body.findFirst(\".menuSearchResult\");\n      return parent.html(Div({\n        height: \"0.5em\"\n      }), inc(\"lastQueryEvent/rows\")(o), inc(\"popuplarQueries/rows\")(o));\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/calcPlansData/pimpPreschool/calcShapePlanItems/calc.ls","text":"(function(){\n  return function(items){\n    var labels, items2, i$, len$, i;\n    labels = {\n      beginner: T(\"simple\"),\n      intermediate: T(\"intermediate\"),\n      advanced: T(\"advanced\")\n    };\n    items2 = _.filter(items, function(i){\n      return _.includes(i.plan.project, \"shape\");\n    });\n    items2 = _.orderBy(items2, \"plan.sortIndex\");\n    for (i$ = 0, len$ = items2.length; i$ < len$; ++i$) {\n      i = items2[i$];\n      i.plan.label = i.plan.title + \" (\" + labels[i.plan.preschoolDifficulty] + \")\";\n    }\n    return items2;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/calcPlansData/pimpPreschool/calcSortedPlanItems/calc.ls","text":"(function(){\n  return function(items){\n    var items2, i$, len$, i;\n    items2 = _.filter(items, function(i){\n      return !_.includes(i.plan.project, \"shapes\");\n    });\n    if (!items2) {\n      return;\n    }\n    items2 = _.orderBy(items2, \"plan.sortIndex\");\n    for (i$ = 0, len$ = items2.length; i$ < len$; ++i$) {\n      i = items2[i$];\n      i.plan.label = i.plan.title;\n    }\n    return _.concat({\n      rowType: \"label\",\n      label: T(\"normalPlansHeader\")\n    }, items2);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/calcPlansData/pimpPreschool/pimp.ls","text":"(function(){\n  return function(items){\n    var folderItem, hasPuzzlePlans;\n    folderItem = _.find(items, {\n      subject: \"preschool\"\n    });\n    if (!folderItem) {\n      return;\n    }\n    hasPuzzlePlans = _.some(folderItem.items, function(item){\n      return _.includes(item.plan.project, \"shapes\");\n    });\n    if (!hasPuzzlePlans) {\n      return;\n    }\n    return folderItem.items = _.concat(inc(\"puzzleLabel/label\")(), inc(\"calcShapePlanItems/calc\")(folderItem.items), inc(\"calcSortedPlanItems/calc\")(folderItem.items));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/calcPlansData/pimpPreschool/puzzleLabel/contentDiv/div.ls","text":"(function(){\n  return function(){\n    return Div({\n      width: \"18em\",\n      maxWidth: \"80vw\",\n      padding: \"0.5em\",\n      lineHeight: \"1.5em\",\n      fontSize: \"0.9em\",\n      whiteSpace: \"normal\"\n    }).html(T(\"divText\"));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/calcPlansData/pimpPreschool/puzzleLabel/label.ls","text":"(function(){\n  return function(){\n    return {\n      rowType: \"label\",\n      label: T(\"puzzleHeader\"),\n      icon: path(\"/../app01/lib/svg/shape/info.svg\"),\n      tap: function(div){\n        return OverlayMenu({\n          referenceDiv: div,\n          items: {\n            div: inc(\"contentDiv/div\")()\n          },\n          direction: \"bottom left\",\n          adjustXY: \"10 0\"\n        });\n      }\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/header/debugTag/tag.ls","text":"(function(){\n  return function(categoryData){\n    if (_.every(categoryData.items, \"plan.isDebug\")) {\n      return SvgIcon({\n        svg: path(\"/lib/svg/shape/debug.svg\")\n      }).css({\n        paddingRight: \"0.4em\"\n      });\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/header/newTag/calcNewestUntil/calc.ls","text":"(function(){\n  return function(categoryData){\n    var newestUntil, ref$;\n    return newestUntil = (ref$ = _(categoryData.items).map(function(elem){\n      if (elem.rowType !== \"plan\") {\n        return;\n      }\n      if (_.isObject(elem.plan.isNewUntil)) {\n        return twitch(elem.plan.isNewUntil);\n      } else if (elem.plan.isNewUntil != null) {\n        return elem.plan.isNewUntil;\n      }\n    }).compact().value().sort())[ref$.length - 1];\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/header/newTag/tag.ls","text":"(function(){\n  return function(categoryData){\n    var newest, ref$;\n    newest = inc(\"calcNewestUntil/calc\")(categoryData);\n    return (ref$ = inc(\"/lib/gui/newTag/newTag\")(newest)) != null ? ref$.css({\n      marginRight: \"0.4em\"\n    }) : void 8;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/plans/planRow/debugTag/tag.ls","text":"(function(){\n  return function(plan){\n    if (!plan.isDebug) {\n      return;\n    }\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\")\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/plans/planRow/iconArrowRight/icon.ls","text":"(function(){\n  return function(){\n    return Svg({\n      svg: path(\"/../app01/lib/svg/icon/arrow-right-small.svg\"),\n      color: Color.grey[400]\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/plans/labelRow/row.ls","text":"(function(){\n  return function(item){\n    var b, icon;\n    return Div({\n      display: \"flex\",\n      minHeight: \"3.7em\",\n      borderTop: b = \"1px solid \" + Color.grey[200],\n      borderBottom: b,\n      background: \"white\",\n      marginTop: \"-1px\",\n      padding: \"0.5em 0 0.5em 0em\",\n      textAlign: \"start\",\n      justifyContent: \"space-between\",\n      color: Color.grey[600]\n    }).html(Div({\n      marginLeft: \"3em\",\n      flex: \"1 1 auto\"\n    }).html(item.label), item.icon != null ? icon = SvgIcon({\n      svg: path(item.icon),\n      color: Color.blue[400],\n      size: \"0.9em\"\n    }).css({\n      paddingLeft: \"0.5em\",\n      paddingRight: \"0.1em\"\n    }).tap(function(){\n      return item.tap(icon);\n    }) : void 8);\n  };\n})();","updated":"2025-10-07T04:53:39.919166"},{"path":"pages/content/plansNext/plansByCategory/row/plans/planRow/newTag/tag.ls","text":"(function(){\n  return function(plan){\n    var ref$;\n    return (ref$ = inc(\"/lib/gui/newTag/newTag\")(plan.isNewUntil)) != null ? ref$.css({\n      marginRight: \"0.4em\"\n    }) : void 8;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/plans/planRow/tap/tap.ls","text":"(function(){\n  return function(subject){\n    var planPath;\n    planPath = subject.planPath;\n    inc(\"/data/content/setCurrentPlan/set\")(planPath);\n    return startPage({\n      path: path(\"/pages/content/plan/page\"),\n      animation: \"slideLeft\",\n      params: {\n        planPath: planPath\n      }\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/plans/planRow/title/title.ls","text":"(function(){\n  return function(plan, categoryData){\n    var t, ref$;\n    t = (ref$ = plan.label) != null\n      ? ref$\n      : plan.displayName;\n    t = _.replaceAll(t, categoryData.title + \" \", \"\");\n    return Div({\n      flex: \"1 1 auto\",\n      textAlign: \"left\",\n      lineHeight: \"1.3em\"\n    }).html(t);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/plans/planRow/row.ls","text":"(function(){\n  return function(item, categoryData){\n    var plan, b;\n    plan = item.plan;\n    return Div({\n      display: \"flex\",\n      minHeight: \"3.7em\",\n      borderTop: b = \"1px solid \" + Color.grey[200],\n      borderBottom: b,\n      background: \"white\",\n      marginTop: \"-1px\",\n      padding: \"0.85em 0 0.85em 0em\"\n    }).html(Div({\n      flex: \"1 1 auto\",\n      marginLeft: \"3em\"\n    }).html(inc(\"title/title\")(plan, categoryData), inc(\"total/total\")(plan)), inc(\"newTag/tag\")(plan), inc(\"debugTag/tag\")(plan), inc(\"iconArrowRight/icon\")(), inc(\"lastViewed/lastViewed\")(plan)).tap(function(){\n      return inc(\"tap/tap\")(plan);\n    });\n  };\n})();","updated":"2025-10-07T04:53:39.919166"},{"path":"pages/games/03_gameLoading/_topbarNext/calcBreadcrumbs/calc.ls","text":"(function(){\n  return function(page){\n    return [{\n      title: T(\"games\"),\n      tap: function(){\n        page.isCancelled = true;\n        return startPage({\n          history: -2,\n          animation: \"slideRight\"\n        });\n      }\n    }];\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/games/03_gameLoading/_topbarNext/onBack/on.ls","text":"(function(){\n  return function(page){\n    var onBack;\n    return onBack = function(){\n      page.isCancelled = true;\n      return startPage({\n        history: -1,\n        animation: \"slideRight\"\n      });\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/content/plansNext/plansByCategory/row/plans/planRow/total/total.ls","text":"(function(){\n  return function(plan){\n    if (!plan.totalBlocks) {\n      return;\n    }\n    return Div({\n      color: Color.grey[600],\n      textAlign: \"left\",\n      fontSize: \"0.8em\",\n      marginTop: \"0.3em\"\n    }).html(T(\"levels\", plan.totalLevels));\n  };\n})();","updated":"2025-07-21T08:18:19.029418"},{"path":"pages/games/03_gameLoading/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"hamburger\",\n      breadcrumbs: inc(\"calcBreadcrumbs/calc\")(page),\n      onBack: inc(\"onBack/on\")(page),\n      title: page.gameDescription.title,\n      tools: [{\n        type: \"coins\"\n      }]\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/level/_shared/generateSlides/calcPath/calc.ls","text":"(function(){\n  return function(trainer){\n    var t, path;\n    t = trainer.trainer;\n    path = _.startsWith(t, \"kid\")\n      ? \"app01-kid-trainers/trainers/\" + t\n      : _.startsWith(t, \"playground/\")\n        ? \"app01-playground-trainers/trainers/\" + t.replace(\"playground/\", \"\")\n        : _.startsWith(t, \"assistant-math/\")\n          ? \"app01-assistant-math-trainers/trainers/\" + t.replace(\"assistant-math/\", \"\")\n          : _.startsWith(t, \"sentenceTranslate\")\n            ? \"app01-trainer-sentence-translate/trainer\"\n            : \"app01-trainers/trainers/\" + t;\n    return \"/../\" + path + \"/generateSlides\";\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/01_enterCode/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01/addons/topbar2/topbar\")({\n      back: true,\n      title: T(\"topbarTitle\")\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/01_enterCode/dirSchoolInfos/infos.ls","text":"(function(){\n  return function(){\n    var schools, dirSchools;\n    schools = inc(\"/../app01/data/school/calcSchoolDescriptions/calc\")();\n    dirSchools = _.filter(schools, function(d){\n      return d.dirRole != null;\n    });\n    if (dirSchools.length === 0) {\n      return;\n    }\n    return Div({\n      width: \"30em\",\n      maxWidth: \"90%\",\n      margin: \"1.5em auto 0\"\n    }).secureHtml(T(\"alreadyDirMemberIn\"), Div({\n      height: \"0.3em\"\n    }), _.map(dirSchools, \"name\").join(\", \"));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/01_enterCode/submit/submit.ls","text":"(function(){\n  return function(page, form){\n    var dirCode, publicId, ref$;\n    dirCode = form.input.getValue();\n    publicId = (ref$ = log.findLast(\"setPublicId\")) != null ? ref$.value : void 8;\n    if (dirCode.length === 0) {\n      form.error.html(T(\"errorEmpty\"));\n      form.input.start();\n      return;\n    }\n    form.showSpinner();\n    return inc(\"/../app01/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/school/admin/activateTeacherDirCode/step01/step01\"),\n      params: {\n        dirCode: dirCode,\n        publicId: publicId,\n        checkCaptcha: true\n      },\n      requiredVisibleDiv: page,\n      onError: function(error){\n        form.hideSpinner();\n        return inc(\"/../app01/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        form.hideSpinner();\n        return inc(\"/../app01/lib/offline/offlinePopup/popup\")();\n      },\n      onCompleted: function(result){\n        var errors, l, params;\n        if (result.status !== \"ok\") {\n          form.hideSpinner();\n          errors = {\n            error_invalid_code: T(\"errorInvalidCode\"),\n            error_not_prepared: T(\"errorInvalidCode\"),\n            error_code_already_assigned: T(\"errorCodeAssigned\"),\n            error_no_subscription: T(\"errorNoSubscription\"),\n            error_pupil_code: T(\"errorPupilCode\"),\n            error_already_member: T(\"errorDirMember\"),\n            error_not_teacher: T(\"errorMustBeTeacher\"),\n            error_captcha_failed: T(\"errorCaptchaFailed\")\n          };\n          l = errors[result.status];\n          if (l) {\n            return form.error.html(l);\n          } else {\n            return inc(\"/../app01/lib/gui/errorPopup/popup\")();\n          }\n        } else {\n          page.params.dirCode = dirCode;\n          params = _.omit(result, [\"status\", \"publicId\"]);\n          params.finishFunctionPath = page.params.finishFunctionPath;\n          return startPage({\n            path: path(\"../../02_confirm/page\"),\n            animation: \"slideLeft\",\n            params: params\n          });\n        }\n      }\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/_t.ls","text":"(function(){\n  return {\n    title: {\n      de: \"Möchtest du jetzt dem Schulverzeichnis beitreten?\",\n      en: \"Would you like to join the school directory?\",\n      fr: \"Veux-tu devenir membre du répertoire scolaire&nbsp;?\",\n      es: \"¿Quieres unirte al directorio escolar?\",\n      pt: \"Você gostaria de entrar no Diretório Escolar?\"\n    },\n    rowSchool: {\n      de: \"Schule\",\n      en: \"School\",\n      fr: \"École\",\n      es: \"Escuela\",\n      pt: \"Escola\"\n    },\n    rowDirDisplayName: {\n      de: \"Schulverzeichnis-Eintrag\",\n      en: \"School directory entry\",\n      fr: \"Entrée du répertoire scolaire\",\n      es: \"Entrada en el directorio escolar\",\n      pt: \"Entrar no Diretório Escolar\"\n    },\n    rowType: {\n      de: \"Nutzertyp\",\n      en: \"Account Type\",\n      fr: \"Type de compte\",\n      es: \"Tipo de cuenta\",\n      pt: \"Tipo de conta\"\n    },\n    teacher: {\n      de: \"Lehrkraft\",\n      en: \"Teacher\",\n      fr: \"Professeur·e\",\n      es: \"Docente\",\n      pt: \"Professor(a)\"\n    },\n    admin: {\n      de: \"Admin\",\n      en: \"Admin\",\n      fr: \"Admin\",\n      es: \"Admin\",\n      pt: \"Admin.\"\n    },\n    add: {\n      de: \"Beitreten\",\n      en: \"Join\",\n      fr: \"Devenir membre\",\n      es: \"Unirse\",\n      pt: \"Entrar\"\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01/addons/topbar2/topbar\")({\n      back: true,\n      title: T(\"topbarTitle\")\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/buttons/buttons.ls","text":"(function(){\n  return function(page){\n    return page.buttons = inc(\"/../app01/lib/gui/buttonsSubmitCancel/buttons\")({\n      submitLabel: T(\"add\"),\n      submit: page.submit,\n      cancelLabel: T(\"backButton\"),\n      cancel: function(){\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      }\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.submit = function(){\n          return inc(\"submit/submit\")(page);\n        };\n        return page.css({\n          width: \"35em\",\n          maxWidth: \"90%\",\n          margin: \"0 auto\"\n        }).append(inc(\"title/title\")(), inc(\"values/values\")(page), inc(\"buttons/buttons\")(page));\n      }\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/submit/submit.ls","text":"(function(){\n  return function(page){\n    var dirCode, publicId, ref$;\n    dirCode = page.params.dirCode;\n    publicId = (ref$ = log.findLast(\"setPublicId\")) != null ? ref$.value : void 8;\n    page.buttons.showSpinner();\n    return inc(\"/../app01/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/school/admin/activateTeacherDirCode/step02/step02\"),\n      params: {\n        dirCode: dirCode,\n        publicId: publicId\n      },\n      requiredVisibleDiv: page,\n      timeout: 60000,\n      onError: function(error){\n        debug(error);\n        page.buttons.hideSpinner();\n        return inc(\"/../app01/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        page.buttons.hideSpinner();\n        return inc(\"/../app01/lib/offline/offlinePopup/popup\")();\n      },\n      onCompleted: function(result){\n        var message, params;\n        if (result.status !== \"ok\") {\n          page.buttons.hideSpinner();\n          debug(result.status);\n          message = result.status === \"error_invalid_code\"\n            ? T(\"errorInvalidCode\")\n            : result.status === \"error_code_already_assigned\"\n              ? T(\"errorCodeAssigned\")\n              : result.status === \"error_not_teacher\"\n                ? T(\"errorNotTeacher\")\n                : result.status === \"error_already_member\"\n                  ? T(\"errorAlreadyMember\")\n                  : T(\"errorMessage\");\n          return inc(\"/../app01/lib/gui/errorPopup/popup\")({\n            label: message\n          });\n        } else {\n          params = result;\n          params.finishFunctionPath = page.params.finishFunctionPath;\n          return startPage({\n            path: path(\"../../03_done/page\"),\n            animation: \"slideLeft\",\n            params: params\n          });\n        }\n      }\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/title/title.ls","text":"(function(){\n  return function(){\n    return Div({\n      paddingBottom: \"2em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"title\"));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/values/_row/row.ls","text":"(function(){\n  return function(label, value){\n    return Div({\n      display: \"flex\",\n      padding: \"0.7em\",\n      borderTop: \"1px solid \" + Color.grey[300],\n      borderBottom: \"1px solid \" + Color.grey[300],\n      marginBottom: \"-1px\",\n      textAlign: \"left\",\n      minWidth: \"12em\"\n    }).append(Div({\n      flex: \"0 0 auto\",\n      alignSelf: \"flex-start\",\n      display: \"inline-block\",\n      width: \"10em\",\n      verticalAlign: \"top\"\n    }).html(label), Div({\n      flex: \"1 1 auto\",\n      alignSelf: \"flex-start\",\n      display: \"inline-block\",\n      verticalAlign: \"top\"\n    }).secureHtml(value));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/values/dirDisplayName/dirDisplayName.ls","text":"(function(){\n  return function(page){\n    var n;\n    n = inc(\"/../app01/data/school/calcDirDisplayName/calc\")(page.params, \"long\");\n    return inc(\"../_row/row\")(T(\"rowDirDisplayName\"), n);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/values/school/school.ls","text":"(function(){\n  return function(page){\n    var n;\n    n = page.params.schoolName;\n    if (!_.isString(n)) {\n      n = n[engine.guiLanguage] || _.values(n)[0];\n    }\n    return inc(\"../_row/row\")(T(\"rowSchool\"), n);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/values/type/type.ls","text":"(function(){\n  return function(page){\n    return inc(\"../_row/row\")(T(\"rowType\"), page.params.isAdmin\n      ? T(\"admin\")\n      : T(\"teacher\"));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/02_confirm/values/values.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"inline-block\",\n      maxWidth: \"90%\",\n      marginBottom: \"2em\"\n    }).append(inc(\"school/school\")(page), inc(\"dirDisplayName/dirDisplayName\")(page), inc(\"type/type\")(page));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/_t.ls","text":"(function(){\n  return {\n    textTeacher: {\n      de: \"Du bist nun Lehrkraft im Schulverzeichnis.\",\n      en: \"You now are a teacher in the school directory.\",\n      fr: \"Tu es maintenant professeur·e dans le répertoire scolaire.\",\n      es: \"Ya eres docente dentro del directorio escolar.\",\n      pt: \"Você já é professor(a) dentro do Diretório Escolar.\"\n    },\n    textAdmin: {\n      de: \"Du bist nun Admin im Schulverzeichnis.\",\n      en: \"You are now an admin in the school directory.\",\n      fr: \"Tu es maintenant admin dans le répertoire scolaire.\",\n      es: \"Eres admin. en el directorio escolar.\",\n      pt: \"Você agora é um(a) administrador(a) do Diretório Escolar.\"\n    },\n    add: {\n      de: \"Hinzufügen\",\n      en: \"Add\",\n      fr: \"Ajouter\",\n      es: \"Agregar\",\n      pt: \"Adicionar\"\n    },\n    notNow: {\n      de: \"Nicht jetzt\",\n      en: \"Not now\",\n      fr: \"Pas maintenant\",\n      es: \"Ahora no\",\n      pt: \"Agora não\"\n    },\n    groupAddInfo: {\n      de: \"Um die Schullizenz mit deinen Gruppen nutzen zu können, müssen diese zur richtigen Schule hinzugefügt werden. Wähle bitte alle Gruppen aus, die du zu „$1“ hinzufügen möchtest. (Du kannst es auch später manuell in den Gruppeneinstellungen machen.)\",\n      en_gb: \"To use the school licence with your groups, they need to be added to the correct school. Select all groups that you want to add to the school ‘$1’. (You can also do this later in the group settings.)\",\n      en: \"To use the school license with your groups, they need to be added to the correct school. Select all groups that you want to add to the school ‘$1’. (You can also do this later in the group settings.)\",\n      fr: \"Pour utiliser la licence scolaire avec tes groupes, tu dois les ajouter à la bonne école. Sélectionne tous les groupes que tu veux ajouter à l'école ‘$1’. (Tu peux aussi le faire plus tard dans les paramètres des groupes)\",\n      es: \"Para poder usar la licencia escolar con tus grupos, estos tienen que ser agregados a la escuela correcta. Elige todos los grupos que quieras agregar a la escuela ‘$1’. (también lo puedes hacer más tarde en los ajustes del grupo.)\",\n      pt: \"Para poder utilizar a Licença Escolar com seus grupos,eles devem ser adicionados à escola correta.Selecione todos os grupos que deseja adicionar à escola '$1'.(também é possível fazer isso mais tarde nas configurações de grupo.)\"\n    },\n    groupAddSuccessInfoSingular: {\n      de: \"Deine Gruppe $1 wurde erfolgreich zur Schule hinzugefügt.\",\n      en: \"Your group $1 was added to the school successfully.\",\n      fr: \"Ton groupe $1 a bien été ajouté à l'école.\",\n      es: \"Tu grupo $1 fue agregado exitosamente a la escuela.\",\n      pt: \"Seu grupo $1 foi adicionado à escola com sucesso.\"\n    },\n    groupAddSuccessInfoPlural: {\n      de: \"Deine Gruppen $1 wurden erfolgreich zur Schule hinzugefügt.\",\n      en: \"Your groups $1 were added to the school successfully.\",\n      fr: \"Tes groupes $1 ont bien été ajoutés à l'école.\",\n      es: \"Tus grupos $1 fueron agregados exitosamente a la escuela.\",\n      pt: \"Seus grupos $1 foram adicionados à escola com sucesso.\"\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01/addons/topbar2/topbar\")({\n      title: T(\"topbarTitle\")\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/buttonAdd/addGroupsToSchool/add.ls","text":"(function(){\n  return function(groups, schoolCode, onDone){\n    var i, add;\n    i = -1;\n    add = function(){\n      var g;\n      i++;\n      g = groups[i];\n      if (!g) {\n        return onDone();\n      } else {\n        return inc(\"/../app01/data/school/groupAdd/add\")({\n          groupCode: g.groupCode,\n          schoolCode: schoolCode,\n          onCompleted: add,\n          onError: function(error){\n            debug(error);\n            inc(\"/../app01/lib/gui/errorPopup/popup\")();\n            return onDone(\"error\");\n          },\n          onOffline: function(){\n            inc(\"/../app01/lib/offline/offlinePopup/popup\")();\n            return onDone(\"offline\");\n          }\n        });\n      }\n    };\n    return add();\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/buttonAdd/button.ls","text":"(function(){\n  return function(page, onDone){\n    var spinner, schoolCode, tap, div;\n    schoolCode = page.params.schoolCode;\n    tap = function(){\n      var selectedGroups;\n      selectedGroups = page.groupsDiv.getSelectedGroups();\n      if (_.every(selectedGroups, function(g){\n        return !g;\n      })) {\n        return;\n      }\n      spinner = inc(\"/../app01/lib/gui/spinnerDivOverlay/overlay\")(div);\n      return inc(\"addGroupsToSchool/add\")(selectedGroups, schoolCode, function(error){\n        var addedGroupNames, g;\n        spinner.stop();\n        if (!error) {\n          addedGroupNames = (function(){\n            var i$, ref$, len$, results$ = [];\n            for (i$ = 0, len$ = (ref$ = selectedGroups).length; i$ < len$; ++i$) {\n              g = ref$[i$];\n              results$.push(\"'\" + g.name + \"'\");\n            }\n            return results$;\n          }()).join(\", \");\n          return inc(\"/../app01/lib/gui/infoPopup/popup\")({\n            label: selectedGroups.length === 1\n              ? T(\"groupAddSuccessInfoSingular\", addedGroupNames)\n              : T(\"groupAddSuccessInfoPlural\", addedGroupNames),\n            onClose: onDone\n          });\n        }\n      });\n    };\n    return div = Button(T(\"add\")).css({\n      minWidth: \"5em\"\n    }).tap(tap);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/buttonContinue/button.ls","text":"(function(){\n  return function(page, onDone){\n    var div;\n    return div = Button(T(\"ok\")).css({\n      minWidth: \"5em\"\n    }).tap(onDone);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/calcGroups/calc.ls","text":"(function(){\n  return function(){\n    var groups, teacherGroupsWithoutSchool;\n    groups = inc(\"/../app01-group/data/calcGroupDescriptions/calc\")();\n    return teacherGroupsWithoutSchool = _.filter(groups, function(g){\n      return g.type !== \"family\" && g.userRoles.teacher && g.userRoles.admin && g.school == null;\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/groups/groups.ls","text":"(function(){\n  return function(page){\n    var getSelectedGroups, schoolName, div, rows, g;\n    getSelectedGroups = function(){\n      var seletedGroups, i$, ref$, len$, i, row;\n      seletedGroups = [];\n      for (i$ = 0, len$ = (ref$ = rows).length; i$ < len$; ++i$) {\n        i = i$;\n        row = ref$[i$];\n        if (row.getSelected()) {\n          seletedGroups.push(page.groups[i]);\n        }\n      }\n      return seletedGroups;\n    };\n    schoolName = _.isString(page.params.schoolName)\n      ? page.params.schoolName\n      : page.params.schoolName ? page.params.schoolName[engine.guiLanguage] || page.params.schoolName[_.keys(page.params.schoolName)[0]] || \"-\" : void 8;\n    div = Div({\n      lineHeight: \"1.7em\"\n    }).secureHtml(T(\"groupAddInfo\", schoolName)).append(Div({\n      display: \"flex\",\n      margin: \"1em auto\"\n    }).html(Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      maxWidth: \"90%\",\n      alignItems: \"flex-start\"\n    }).html(rows = (function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = page.groups).length; i$ < len$; ++i$) {\n        g = ref$[i$];\n        results$.push(inc(\"row/row\")(g));\n      }\n      return results$;\n    }()))));\n    div.getSelectedGroups = getSelectedGroups;\n    return div;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/groups/name/name.ls","text":"(function(){\n  return function(name){\n    return Div({\n      flex: \"1 1 auto\"\n    }).html(name);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/groups/row/icon/icon.ls","text":"(function(){\n  return function(){\n    var selected, toggle, div, iconOff, iconOn;\n    selected = false;\n    toggle = function(){\n      selected = !selected;\n      if (selected) {\n        iconOff.hide();\n        return iconOn.show();\n      } else {\n        iconOn.hide();\n        return iconOff.show();\n      }\n    };\n    div = Div({\n      flex: \"0 0 auto\"\n    }).append(iconOff = SvgIcon({\n      svg: path(\"/../app01/lib/svg/icon/check-off.svg\")\n    }).css({\n      marginTop: \"0.2em\"\n    }), iconOn = SvgIcon({\n      svg: path(\"/../app01/lib/svg/icon/check-on.svg\")\n    }).css({\n      marginTop: \"0.2em\"\n    }).hide());\n    div.toggle = toggle;\n    div.getSelected = function(){\n      return selected;\n    };\n    return div;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/groups/row/row.ls","text":"(function(){\n  return function(g){\n    var div, icon;\n    div = Div({\n      display: \"flex\",\n      justifyChildren: \"flex-start\",\n      padding: \"0.2em\",\n      maxWidth: \"100%\"\n    }).html(icon = inc(\"icon/icon\")(), Div({\n      marginLeft: \"0.2em\",\n      flex: \"1 1 auto\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      whiteSpace: \"nowrap\"\n    }).secureHtml(g.name)).tap(icon.toggle);\n    div.getSelected = icon.getSelected;\n    return div;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/notNowLink/link.ls","text":"(function(){\n  return function(page, onDone){\n    return inc(\"/../app01/lib/gui/link/link\")({\n      label: T(\"notNow\"),\n      iconColor: \"black\"\n    }).css({\n      marginTop: \"0.8em\",\n      padding: \"0.5em\"\n    }).tap(onDone);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/misc/teacherDirCode/03_done/text/text.ls","text":"(function(){\n  return function(page){\n    return Div({\n      lineHeight: \"1.5em\",\n      marginBottom: \"0.8em\"\n    }).html(page.params.isAdmin\n      ? T(\"textAdmin\")\n      : T(\"textTeacher\"));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/_t.ls","text":"(function(){\n  return {\n    title: {\n      de: \"$1 verfügt über eine ANTON-Schullizenz\",\n      en_gb: \"$1 is using an ANTON School Licence\",\n      en: \"$1 is using an ANTON School License\",\n      fr: \"$1 utilise une licence scolaire ANTON\",\n      es: \"$1 cuenta con una Licencia Escolar ANTON\",\n      pt: \"$1 possui uma Licença Escolar ANTON\"\n    },\n    infoText: {\n      de: \"Kontaktiere die Schulverwaltung und fordere deinen Schulverzeichnis-Lehrer-Code an, um die Vorteile der Lizenz nutzen zu können. Deinen Code kannst du entweder jetzt direkt eingeben oder später in den Einstellungen.\",\n      en_gb: \"In order to be able to use the features of the licence, contact the school administration and request your school directory teacher code. You can either input your code here now or in your settings at a later time.\",\n      en: \"In order to be able to use the features of the license, contact the school administration and request your school directory teacher code. You can either input your code here now or in your settings at a later time.\",\n      fr: \"Afin d'utiliser les fonctionnalités de la licence, contacte l'administration de l'école pour demander ton code prof du répertoire scolaire. Tu peux entrer ton code ici maintenant ou le faire dans tes paramètres par la suite.\",\n      es: \"Contacta a la administración de tu escuela y solicita tu clave del directorio escolar para poder usar las funciones que ofrece la licencia. Puedes ingresar tu clave ahora mismo o después a través de los ajustes.\",\n      pt: \"Para utilizar as funcionalidades da licença, entre em contato com a administração da sua escola e solicite o seu código de professores do Diretório Escolar ANTON. Você pode inserir seu código agora ou mais tarde nas configurações.\"\n    },\n    enterDirTeacherCodeButtonLabel: {\n      de: \"Schulverzeichnis-Lehrer-Code eintragen\",\n      en: \"Input school directory teacher code\",\n      fr: \"Entrer le code prof du répertoire\",\n      es: \"Ingresar clave del directorio\",\n      pt: \"Inserir código-professores do diretório\"\n    },\n    dontShowAgainButtonLabel: {\n      de: \"Nicht nochmal anzeigen\",\n      en: \"Don't show again\",\n      fr: \"Ne plus montrer ce message\",\n      es: \"No volver a mostrar\",\n      pt: \"Não mostrar novamente\"\n    },\n    popupTitle: {\n      de: \"Was sind die Vorteile einer ANTON-Schullizenz?\",\n      en_gb: \"What are the advantages of an ANTON School Licence?\",\n      en: \"What are the advantages of an ANTON School License?\",\n      fr: \"Quels sont les avantages de la licence scolaire&nbsp;?\",\n      es: \"¿Qué ventajas tiene la Licencia Escolar?\",\n      pt: \"Quais são as vantagens da Licença Escolar ANTON?\"\n    },\n    listItem1Title: {\n      de: \"Schulverwaltung\",\n      en: \"School directory\",\n      fr: \"Administration de l'école\",\n      es: \"Directorio escolar\",\n      pt: \"Diretório Escolar\"\n    },\n    listItem1Subtitle: {\n      de: \"ANTON für die ganze Schule einrichten und verwalten\",\n      en: \"Set up and manage ANTON for the whole school\",\n      fr: \"Configurer et gérer ANTON pour toute l'école\",\n      es: \"Con todos los integrantes de la escuela, para fácil implementación y manejo de grupos.\",\n      pt: \"Configure e gerencie ANTON para toda a escola\"\n    },\n    listItem2Title: {\n      de: \"Binnendifferenzierung\",\n      en: \"Differentiation\",\n      fr: \"Pédagogie différenciée\",\n      es: \"Aprendizaje diferenciado\",\n      pt: \"Diferenciação pedagógica\"\n    },\n    listItem2Subtitle: {\n      de: \"Aufgaben für Gruppen, Untergruppen und einzelnen Schüler/innen pinnen\",\n      en_gb: \"Pin exercises to groups, subgroups and individual pupils\",\n      en: \"Assign exercises to groups, subgroups and individual students\",\n      fr: \"Épingler des exercices dans un groupe, un sous-groupe ou pour un seul élève\",\n      es: \"Asigna ejercicios a subgrupos o estudiantes en particular.\",\n      pt: \"Atribua exercícios a grupos, subgrupos ou alunos individualmente\"\n    },\n    listItem3Title: {\n      de: \"Reports\",\n      en: \"Reports\",\n      fr: \"Rapports d'apprentissage\",\n      es: \"Reportes y estadísticas\",\n      pt: \"Relatórios e estatísticas\"\n    },\n    listItem3Subtitle: {\n      de: \"Lernfortschritt aller Schüler/innen verfolgen\",\n      en_gb: \"Track the learning progress of all pupils\",\n      en: \"Track the learning progress of all students\",\n      fr: \"Suivre les progrès de tous les élèves\",\n      es: \"Consulta el progreso de los y las estudiantes y el avance de toda tu escuela\",\n      pt: \"Acompanhe o progresso dos alunos e o desempenho da sua escola\"\n    },\n    listItem4Title: {\n      de: \"Lernlisten\",\n      en: \"Study lists\",\n      fr: \"Listes d'apprentissage\",\n      es: \"Listas de repaso\",\n      pt: \"Listas de estudo\"\n    },\n    listItem4Subtitle: {\n      de: \"Aufgaben erstellen und für die Schule teilen\",\n      en: \"Create exercises and share them with the school\",\n      fr: \"Créer et partager des exercices avec toute l'école\",\n      es: \"Crea ejercicios propios y compártelos con la escuela\",\n      pt: \"Crie seus próprios exercícios e compartilhe com toda a escola\"\n    },\n    listItem5Title: {\n      de: \"Erweiterte Funktionen\",\n      en: \"Additional features\",\n      fr: \"Fonctionnalités avancées\",\n      es: \"Funciones avanzadas\",\n      pt: \"Funcionalidades avançadas\"\n    },\n    listItem5Subtitle: {\n      de: \"Weitere Funktionen für Schüler/innen, Lehrkräfte und Admins freischalten\",\n      en_gb: \"Unlock additional features for pupils, teachers and admins\",\n      en: \"Unlock additional features for students, teachers and admins\",\n      fr: \"Activer des fonctionnalités supplémentaires pour les élèves , les enseignants et les admins\",\n      es: \"Trabajo sin conexión para toda la escuela, chat con estudiantes, certificados, más juegos, más tipos de avatares y mucho más\",\n      pt: \"Acesso offline para toda a escola, chat com alunos, emissão de certificados, mais jogos, mais tipos de avatares e muito mais\"\n    }\n  };\n})();","updated":"2026-03-09T07:07:27.633578"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/buttons/buttonDontShowAgain/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      log.log({\n        event: \"nonDirTeacherInDirSchoolInfoDisabled\"\n      });\n      return inc(\"../../../../_onExtraPageDone/on\")();\n    };\n    return Div({\n      color: Color.grey[450]\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"dontShowAgainButtonLabel\"),\n      direction: \"right\"\n    }).css({\n      padding: \"0 0.5em\"\n    }).tap(tap));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/buttons/buttonNotNow/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      return inc(\"../../../../_onExtraPageDone/on\")();\n    };\n    return Div({\n      color: Color.grey[450]\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: T(\"notNowButton\"),\n      direction: \"right\"\n    }).css({\n      padding: \"0 0.5em\"\n    }).tap(tap));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/buttons/buttons.ls","text":"(function(){\n  return function(){\n    return Div().html(inc(\"buttonJoin/button\")(), inc(\"buttonNotNow/button\")(), inc(\"buttonDontShowAgain/button\")());\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/calcSchoolDescription/calc.ls","text":"(function(){\n  return function(){\n    var schoolDescriptions;\n    schoolDescriptions = inc(\"/data/school/calcSchoolDescriptions/calc\")();\n    return _.find(schoolDescriptions, \"hasDir\");\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/images/images.ls","text":"(function(){\n  return function(sd){\n    var schoolLicenseIcon, schoolImage, that;\n    schoolLicenseIcon = inc(\"schoolLicenseIcon/svg\")();\n    schoolImage = inc(\"schoolImage/image\")(sd);\n    return Div({\n      display: \"flex\",\n      margin: \"1.5em 0\"\n    }).html(Div({\n      padding: \"0 0.5em\"\n    }).html(schoolLicenseIcon), (that = schoolImage) ? Div({\n      padding: \"0 0.5em\"\n    }).html(that) : void 8);\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/images/schoolImage/image.ls","text":"(function(){\n  return function(sd){\n    if (!(sd != null && sd.imageId)) {\n      return;\n    }\n    return inc(\"/lib/gui/image/image\")({\n      id: sd.imageId,\n      fileFolder: \"media/schools/_images\"\n    }).css({\n      width: \"4em\",\n      height: \"4em\",\n      borderRadius: \"999px\"\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/images/schoolLicenseIcon/svg.ls","text":"(function(){\n  return function(){\n    return Svg({\n      svg: path(\"/lib/svg/illustration/school-license.svg\"),\n      size: \"3em\"\n    }).css({\n      width: \"4em\",\n      height: \"4em\",\n      borderRadius: \"999px\"\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")({\n          close: inc(\"../../_onExtraPageDone/on\")\n        });\n      },\n      start: function(){\n        var sd;\n        log.log({\n          event: \"showNonDirTeacherInDirSchoolInfo\"\n        });\n        sd = inc(\"calcSchoolDescription/calc\")();\n        return page.css({\n          margin: \"2em auto\",\n          width: \"30em\",\n          maxWidth: \"90%\"\n        }).html(inc(\"images/images\")(sd), inc(\"title/title\")(sd), inc(\"text/text\")(), inc(\"buttons/buttons\")());\n      }\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      textAlign: \"justify\",\n      marginBottom: \"1.5em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"infoText\"));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/title/infoButton/infoButton.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      return inc(\"/lib/gui/infoPopup/popup\")({\n        label: inc(\"infoDiv/div\")()\n      });\n    };\n    return SvgIcon({\n      svg: path(\"/lib/svg/shape/help.svg\")\n    }).css({\n      position: \"absolute\",\n      padding: \"0.1em 0.3em\"\n    }).tap({\n      up: tap,\n      animation: \"none\"\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/title/infoButton/infoDiv/calcList/calc.ls","text":"(function(){\n  return function(){\n    var items, res$, i$, i, list, len$, item, itemString;\n    res$ = [];\n    for (i$ = 1; i$ <= 5; ++i$) {\n      i = i$;\n      res$.push({\n        title: T(\"listItem\" + i + \"Title\"),\n        subtitle: T(\"listItem\" + i + \"Subtitle\")\n      });\n    }\n    items = res$;\n    res$ = [];\n    for (i$ = 0, len$ = items.length; i$ < len$; ++i$) {\n      i = i$;\n      item = items[i$];\n      itemString = \"<li><b>\" + item.title + \"</b><br>\" + item.subtitle + \"</li>\";\n      if (i !== items.length - 1) {\n        itemString += \"<br>\";\n      }\n      res$.push(itemString);\n    }\n    list = res$;\n    return list.join(\"\");\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/title/infoButton/infoDiv/div.ls","text":"(function(){\n  return function(){\n    var list;\n    list = inc(\"calcList/calc\")();\n    return Div({\n      textAlign: \"left\"\n    }).html(Div({\n      textAlign: \"center\",\n      fontSize: \"1.1em\",\n      fontWeight: \"bold\",\n      paddingBottom: \"1em\"\n    }).html(T(\"popupTitle\")), Div({\n      marginLeft: \"-1em\",\n      marginTop: \"-1em\",\n      marginBottom: \"-0.5em\"\n    }).html(\"<ul>\" + list + \"</ul>\"));\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/show.ls","text":"(function(){\n  return function(){\n    var isTeacher, schoolDescriptions, e;\n    isTeacher = inc(\"/data/user/isTeacher/get\")();\n    if (!isTeacher) {\n      return false;\n    }\n    schoolDescriptions = inc(\"/data/school/calcSchoolDescriptions/calc\")();\n    if (!_.find(schoolDescriptions, \"hasDir\")) {\n      return false;\n    }\n    if (_.find(schoolDescriptions, \"dirRole\")) {\n      return false;\n    }\n    e = log.findLast(\"showNonDirTeacherInDirSchoolInfo\");\n    if (new Date() - (e != null ? e.created : void 8) < 48 * 60 * 60 * 1000) {\n      return false;\n    }\n    if (log.findLast(\"nonDirTeacherInDirSchoolInfoDisabled\")) {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0\n    });\n    return true;\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/chat/_topbarNext/calcBreadcrumbs/calc.ls","text":"(function(){\n  return function(page){\n    return [{\n      title: T(\"help\"),\n      tap: function(){\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      }\n    }];\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/chat/_topbarNext/calcOnBack/calc.ls","text":"(function(){\n  return function(page){\n    var onBack;\n    return onBack = function(){\n      return startPage({\n        history: -1,\n        animation: \"slideRight\"\n      });\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/chat/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"close\",\n      title: T(\"chat\"),\n      breadcrumbs: inc(\"calcBreadcrumbs/calc\")(page),\n      onBack: inc(\"calcOnBack/calc\")(page),\n      onClose: function(){\n        return startPage({\n          history: function(p){\n            return !_.includes(p, \"/help\");\n          },\n          animation: \"slideDown\"\n        });\n      }\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/faqList/_topbarNext/calcBreadcrumbs/calc.ls","text":"(function(){\n  return function(page){\n    if (page.params.isStandaloneFaqPage) {\n      return;\n    }\n    return [{\n      title: T(\"help\"),\n      tap: function(){\n        return startPage({\n          history: -1,\n          animation: \"slideRight\"\n        });\n      }\n    }];\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/faqList/_topbarNext/onClose/on.ls","text":"(function(){\n  return function(page){\n    var onBack;\n    return onBack = function(){\n      if (page.params.isDeepLink) {\n        return startPage({\n          path: path(\"/../app01-welcome/pages/welcome/page\"),\n          history: -1,\n          animation: \"slideDown\"\n        });\n      } else {\n        return startPage({\n          history: function(p){\n            return !_.includes(p, \"/help\");\n          },\n          animation: \"slideDown\"\n        });\n      }\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/faqList/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"close\",\n      title: T(\"faq\"),\n      onBack: inc(\"onBack/on\")(page),\n      onClose: inc(\"onClose/on\")(page),\n      breadcrumbs: inc(\"calcBreadcrumbs/calc\")(page),\n      tools: inc(\"calcTools/calc\")(page)\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/faqQuestion/_topbarNext/calcBreadcrumbs/calc.ls","text":"(function(){\n  return function(page){\n    if (page.params.context === \"welcome-page\") {} else if (page.params.isDeepLink) {\n      return [{\n        title: T(\"faq\"),\n        tap: function(){\n          return page.backToFaqList();\n        }\n      }];\n    } else if (page.params.isStandaloneFaqPage) {\n      return [{\n        title: T(\"faq\"),\n        tap: function(){\n          return startPage({\n            animation: \"slideRight\",\n            history: -1\n          });\n        }\n      }];\n    } else {\n      return [\n        {\n          title: T(\"help\"),\n          tap: function(){\n            return startPage({\n              history: -2,\n              animation: \"slideRight\"\n            });\n          }\n        }, {\n          title: T(\"faq\"),\n          tap: function(){\n            return startPage({\n              animation: \"slideRight\",\n              history: -1\n            });\n          }\n        }\n      ];\n    }\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/faqQuestion/_topbarNext/calcOnBack/calc.ls","text":"(function(){\n  return function(page){\n    var onBack;\n    if (app.pageHistory.length <= 1) {\n      return;\n    }\n    if (page.params.context === \"welcome-page\") {\n      return;\n    }\n    return onBack = function(){\n      return startPage({\n        history: -1,\n        animation: \"slideRight\"\n      });\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/faqQuestion/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    var div;\n    div = inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"close\",\n      title: inc(\"calcTitle/calc\")(page),\n      breadcrumbs: inc(\"calcBreadcrumbs/calc\")(page),\n      onBack: inc(\"calcOnBack/calc\")(page),\n      onClose: function(){\n        return inc(\"onClose/on\")(page);\n      }\n    });\n    div.updateTitle = function(title){\n      page.topbarTitle = title;\n      return div.replaceWith(inc(THISFILE)(page));\n    };\n    return div;\n  };\n})();","updated":"2025-08-29T10:52:23.492606"},{"path":"pages/support/help/overviewNext/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"close\",\n      title: T(\"help\"),\n      onClose: function(){\n        return startPage({\n          history: function(p){\n            return !_.includes(p, \"/help\");\n          },\n          animation: \"slideDown\"\n        });\n      }\n    });\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/overviewNext/clickOpenChat/click.ls","text":"(function(){\n  return function(page){\n    return function(){\n      var openChat;\n      openChat = function(){\n        return startPage({\n          path: path(\"../../chat/page\"),\n          animation: \"slideLeft\"\n        });\n      };\n      if (inc(\"/lib/util/cache/get/get\")(\"chatParentalGatePassed\")) {\n        return openChat();\n      } else {\n        return inc(\"/lib/gui/parentalGate/parentalGate\")(function(){\n          openChat();\n          return inc(\"/lib/util/cache/set/set\")(\"chatParentalGatePassed\", true);\n        }, {\n          title: T(\"helpChatDescription\"),\n          forceShow: true\n        });\n      }\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/overviewNext/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.disablePageVerticalCenter = true;\n        page.clickOpenChat = inc(\"clickOpenChat/click\")(page);\n        return page.html(inc(\"rowsDiv/div\")(page));\n      }\n    };\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"pages/support/help/overviewNext/rowsDiv/row/row.ls","text":"(function(){\n  return function(p){\n    var that;\n    return Div({\n      display: \"flex\",\n      borderTop: \"1px solid \" + Color.grey[200],\n      borderBottom: \"1px solid \" + Color.grey[200],\n      background: \"white\",\n      minHeight: \"4em\",\n      marginTop: \"-2px\",\n      justifyContent: \"flex-start\"\n    }).html(Div({\n      flex: \"1 1 auto\",\n      display: \"flex\",\n      flexDirection: \"column\",\n      alignItems: \"start\",\n      padding: \"0.6em 0\"\n    }).html(Div({\n      padding: \"0.3em\",\n      textAlign: \"left\"\n    }).html(p.title, (that = p.badge) ? that : void 8), Div({\n      padding: \"0.3em\",\n      fontSize: \"0.9em\",\n      color: Color.grey[500],\n      textAlign: \"left\",\n      lineHeight: \"1.6em\"\n    }).html(p.description)), SvgIcon({\n      svg: path(\"/../app01/lib/svg/icon/arrow-right-mini.svg\"),\n      size: \"2em\",\n      color: Color.grey[300]\n    }));\n  };\n})();","updated":"2025-11-24T11:24:05.793154"},{"path":"data/user/calcWeeklySpecialData/_getCurrentAssistants/get.ls","text":"(function(){\n  return function(){\n    return [{\n      assistantName: \"05_mathFreeGrid\",\n      startDate: \"2026-03-12T15:00:00\",\n      endDate: \"2026-03-13T10:00:00\",\n      subject: \"MAT\",\n      grades: [8, 9, 10]\n    }];\n  };\n})();","updated":"2026-03-10T14:24:55.311651"},{"path":"lib/gui/divEditable/onTouchStart/on.ls","text":"(function(){\n  return function(d, e){\n    var o1, ref$;\n    if (!d.isStarted) {\n      o1 = d.div.offset();\n      setTimeout(function(){\n        var o2;\n        o2 = d.div.offset();\n        if (o1.top === o2.top && o1.left === o2.left) {\n          d.start();\n          return d.tapCustomSelect(e);\n        }\n      }, (ref$ = d.params.touchStartDetectionDelay) != null ? ref$ : 200);\n    }\n    if (d.softKeyboardMode === \"noneFake\") {\n      return d.tapCustomSelect(e);\n    }\n  };\n})();","updated":"2025-05-06T12:22:13.074261"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/header.ls","text":"(function(){\n  return function(){\n    return Div().html(inc(\"top/top\")(), inc(\"search/search\")());\n  };\n})();","updated":"2025-06-25T09:09:54.402091"},{"path":"lib/gui/divEditable/div/div.ls","text":"(function(){\n  return function(d){\n    var div, a;\n    div = Div({\n      textAlign: \"left\",\n      userSelect: \"text\",\n      webkitUserSelect: \"text\",\n      caretColor: \"black\",\n      cursor: \"text\",\n      fontFamily: d.fontFamily\n    }).addClass(\"divEditable\").addClass(d.cssId);\n    a = d.autoCapCorSpelCom.split(\" \");\n    div.attr({\n      type: \"text\",\n      inputmode: \"text\",\n      tabIndex: 0,\n      autocapitalize: a[0],\n      autocorrect: a[1],\n      spellcheck: a[2],\n      autocomplete: a[3],\n      contenteditable: d.enabled.toString()\n    });\n    div.ignoreGhostMouseEvents = false;\n    div.isDivEditable = true;\n    div.bind(\"copy\", function(e){\n      return d.onCopyOrCut(e);\n    }).bind(\"cut\", function(e){\n      return d.onCopyOrCut(e);\n    }).bind(\"input\", function(e){\n      return d.onSelectionChange();\n    }).bind(\"focusin\", function(){\n      return d.start();\n    }).bind(\"focusout\", function(){\n      if (d.softKeyboardMode !== \"noneFake\") {\n        return d.stop();\n      }\n    }).bind(\"mousedown\", function(e){\n      return d.onMouseDown(e);\n    }).bind(\"touchstart\", function(e){\n      return d.onTouchStart(e);\n    }).bind(\"keydown\", function(e){\n      var ref$, ref1$;\n      if ((ref$ = d.overlayDiv) != null && ref$.onKeyDown(e)) {\n        e.preventDefault();\n        return;\n      }\n      if ((typeof (ref1$ = d.params).onKey == 'function' ? ref1$.onKey(e) : void 8) === \"abort\") {\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        return;\n      }\n      if (e.metaKey && e.key === \"r\") {\n        debug(\"stop cmd r!\");\n        e.preventDefault();\n      }\n      if (e.key === \"Escape\") {\n        d.div.stop();\n      }\n      if (e.metaKey && e.key === \"z\") {\n        e.preventDefault();\n        if (e.shiftKey) {\n          return d.onHistoryRedo();\n        } else {\n          return d.onHistoryUndo();\n        }\n      }\n    }).bind(\"beforeinput\", function(e){\n      var ref$;\n      if ((ref$ = e.inputType) === \"historyUndo\" || ref$ === \"historyRedo\") {\n        return e.preventDefault();\n      }\n    }).onElementClass(\"onSoftKeyboardHeightChange\", function(h){\n      var ref$;\n      return typeof (ref$ = d.params).onSoftKeyboardHeightChange == 'function' ? ref$.onSoftKeyboardHeightChange(h) : void 8;\n    }).onElementClass(\"onZoomDivSetScale\", function(scale){\n      return d.updateCustomCursor();\n    }).onDomRemove(function(){\n      document.removeEventListener(\"selectionchange\", d.onSelectionChange);\n      window.removeEventListener(\"resize\", d.onWindowResize);\n      return d.stop();\n    });\n    setTimeout(function(){\n      return div.bind(\"paste\", d.onPaste);\n    });\n    return div;\n  };\n})();","updated":"2025-08-20T10:27:02.659353"},{"path":"lib/gui/divEditable/start/start.ls","text":"(function(){\n  return function(d, startSelPos){\n    var ref$;\n    if (!d.enabled || !d.div.isVisible() || d.isStarted) {\n      return;\n    }\n    d.isStarted = true;\n    d.startedAt = new Date();\n    if (!d.observer) {\n      d.enableObserver();\n    }\n    inc(\"setLastInput/set\")(d);\n    if (d.softKeyboardMode !== \"noneFake\" && document.activeElement !== d.div) {\n      d.div.focus({\n        preventScroll: true\n      });\n    }\n    if (!d.documentListenerBinded) {\n      d.documentListenerBinded = true;\n      document.addEventListener(\"selectionchange\", d.onSelectionChange);\n      document.addEventListener(\"pause\", d.onAppPause);\n      window.addEventListener(\"resize\", d.onWindowResize);\n    }\n    d.setSelectionPositions(startSelPos || (d.rememberLastSelection ? d.lastSelectionPositions : void 8) || {\n      line: \"last\",\n      charPos: 1000000\n    });\n    window.dispatchEvent(new Event(\"editDivStart\"));\n    if (typeof (ref$ = d.params).onStart == 'function') {\n      ref$.onStart();\n    }\n    d.updateCustomCursor();\n    if ((ref$ = d.cursorWrapper) != null) {\n      ref$.fadeIn(200);\n    }\n    d.lastChangeSelectionPositions = d.getSelectionPositions();\n    return d.saveHistory();\n  };\n})();","updated":"2025-06-11T11:03:35.867098"},{"path":"pages/support/help/faqQuestion/_topbarNext/calcTitle/calc.ls","text":"(function(){\n  return function(page){\n    var that;\n    if (page.params.context === \"welcome-page\") {\n      return T(\"supportedLanguagesTitle\");\n    } else if (that = page.topbarTitle) {\n      return that;\n    } else {\n      return page.params.categoryName;\n    }\n  };\n})();","updated":"2025-08-29T10:52:23.492606"},{"path":"lib/init/setCssSafeArea/_setCssValues/set.ls","text":"(function(){\n  return function(params){\n    var a, i$, ref$, len$, p, pLow, j$, ref1$, len1$, t, tLow, value;\n    a = [];\n    for (i$ = 0, len$ = (ref$ = [\"Margin\", \"Padding\"]).length; i$ < len$; ++i$) {\n      p = ref$[i$];\n      pLow = p.toLowerCase();\n      for (j$ = 0, len1$ = (ref1$ = [\"Top\", \"Bottom\", \"Left\", \"Right\"]).length; j$ < len1$; ++j$) {\n        t = ref1$[j$];\n        tLow = t.toLowerCase();\n        value = params.valueFunction(pLow, tLow);\n        a.push(\".safeArea\" + p + t + \" {\\n  \" + value + \"\\n}\");\n      }\n    }\n    if (typeof (ref$ = document.head).findFirst == 'function') {\n      if ((ref1$ = ref$.findFirst('#safeArea')) != null) {\n        ref1$.remove();\n      }\n    }\n    return document.head.appendChild(Style().attr({\n      id: \"safeArea\"\n    }).html(a.join(\"\\n\")));\n  };\n})();","updated":"2025-08-29T10:52:23.492606"},{"path":"lib/init/setCssSafeArea/ios/set.ls","text":"(function(){\n  return function(){\n    return inc(\"../_setCssValues/set\")({\n      valueFunction: function(pLow, tLow){\n        return \"\" + pLow + \"-\" + tLow + \" : env(safe-area-inset-\" + tLow + \");\\n\" + pLow + \"-\" + tLow + \" : constant(safe-area-inset-\" + tLow + \");\";\n      }\n    });\n  };\n})();","updated":"2025-08-29T10:52:23.492606"},{"path":"lib/init/setCssSafeArea/android/set.ls","text":"(function(){\n  return function(){\n    var update, onDone;\n    update = function(){\n      var that;\n      if (that = SolocodePlugin.getSafeAreaInsets) {\n        return that(onDone);\n      } else if (that = SolocodePlugin.getCutoutInsets) {\n        return that(onDone);\n      }\n    };\n    onDone = function(insets){\n      return inc(\"../_setCssValues/set\")({\n        valueFunction: function(pLow, tLow){\n          return pLow + \"-\" + tLow + \" : \" + insets[tLow] + \"px;\";\n        }\n      });\n    };\n    window.addEventListener(\"orientationchange\", update);\n    return update();\n  };\n})();","updated":"2025-11-14T09:32:26.404908"},{"path":"lib/svg/iconModern/plus-add.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M48 12a4 4 0 0 1 4 4v28h28a4 4 0 0 1 0 8H52v28a4 4 0 0 1-8 0V52H16a4 4 0 0 1 0-8h28V16a4 4 0 0 1 4-4Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/rabbit.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M72 42.5c1.9 0 3.5 1.64 3.5 3.57 0 1.94-1.75 3.43-3.65 3.43a3.34 3.34 0 0 1-3.35-3.43c0-1.93 1.6-3.57 3.5-3.57ZM30.66 48.2h-.02.02Z\"/>\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M57.05 8.55c1.24-.41 2.92-.43 4.08-.38.66.03 1.36.1 2 .21.6.1 1.39.27 2.1.61 4.52 2.14 12.55 8.58 17.56 27.38.07.27.11.54.12.8a23.13 23.13 0 0 1 3.86 3.49 11.67 11.67 0 0 1 2.89 6.1c.31 2.49-.35 4.97-1.88 7.34a12.26 12.26 0 0 1-5.87 4.96c-2.19.86-4.43 1-6.38 1H63.26c.1 0-.1-.03-.68.38-.56.39-1.13.94-1.8 1.6l-.01.01-1.82 1.8h3.49c2.06 0 4.57.64 6.65 2.09a9.08 9.08 0 0 1 4.04 7.59 9 9 0 0 1-4.15 7.9 12.34 12.34 0 0 1-6.54 1.79H42.39c-2.76 0-5.44-1.05-7.42-3.03l-.04-.04-.03-.04-2.68-2.84-6.77 6.06h-.01c-2.21 1.97-5.12 2.07-7.24 1.65a11.03 11.03 0 0 1-6.01-3.29 11.6 11.6 0 0 1-2.69-6.15c-.26-2.13.05-5.07 2.33-7.1l6.54-5.85-6.67-7.08a16.84 16.84 0 0 1-5-12.33v-.02c.14-3.5.88-8.1 3.62-12.05 2.84-4.09 7.5-7.05 14.55-7.69.04 0 .1 0 .16-.02l.62-.06a33.6 33.6 0 0 1 9.23.62 34.2 34.2 0 0 1 7.5 2.5c-.5-.9-.97-1.82-1.33-2.7-1.66-3.96-1.17-9.18 1.8-12.29 1.64-1.72 4-2.7 6.73-2.3 1.5.23 2.96.86 4.37 1.8a6.87 6.87 0 0 1 2.6-2.22l.24-.12.26-.08ZM16.53 73.63c-.03.05-.17.33-.08 1.07.12.96.55 1.87.97 2.34.34.39 1.15.88 2.12 1.07 1.02.2 1.33-.08 1.25 0l6.62-5.93-4.23-4.5-6.65 5.95Zm32-57.53c-.3-.05-.43.01-.61.2-.28.3-.64.94-.77 1.93-.1.84-.03 1.72.23 2.5l.13.33v.02c1.1 2.63 3.51 6 5.92 9.1 1.11 1.44 2.31 2.93 3.1 3.99.42.54.82 1.09 1.12 1.57.15.24.33.55.49.9.08.17.47 1.02.35 2.08v.06l-.02.05c-.18 1.3-.94 3.24-3.14 3.88a5.04 5.04 0 0 1-3.65-.46 9.6 9.6 0 0 1-2.74-2.1 27.6 27.6 0 0 0-21.11-9.91 19.34 19.34 0 0 0-1.93.1l-.06.02-.12.02h-.12c-5.27.46-7.98 2.5-9.52 4.72-1.66 2.38-2.27 5.44-2.38 8.3a9.78 9.78 0 0 0 2.63 6.82l.36.38.04.04.03.03 23.18 24.59c.6.6 1.46.96 2.45.96h20.05c1.02 0 2.08-.24 2.76-.68.3-.2.5-.4.64-.65.13-.24.29-.65.29-1.36 0-.8-.34-1.36-1.04-1.85a5.03 5.03 0 0 0-2.65-.84H50.77a3.68 3.68 0 0 1-3.65-3.25c-2.3-8.24-6.5-13.07-10.05-15.84a23.31 23.31 0 0 0-6.05-3.43 8.57 8.57 0 0 0-.32-.1l-.04-.02a3.5 3.5 0 0 1 1.77-6.77l-.85 3.28.85-3.27h.04l.06.02a10.4 10.4 0 0 1 .78.25c.49.17 1.16.42 1.97.79a30.3 30.3 0 0 1 6.1 3.73 35.14 35.14 0 0 1 10.77 14.48l3.7-3.64a20.8 20.8 0 0 1 2.7-2.37 8.27 8.27 0 0 1 4.71-1.64h12.27c1.7 0 2.88-.15 3.82-.52a5.3 5.3 0 0 0 2.55-2.25c.8-1.23.89-2.07.81-2.66a4.77 4.77 0 0 0-1.26-2.42c-1.76-2.06-4.84-3.95-8.21-5.82h-.02a26.36 26.36 0 0 0-4.85-2.07 6.76 6.76 0 0 1-3.6-2.8c-.3-.44-.56-.91-.75-1.22-.2-.34-.33-.55-.45-.72a270.68 270.68 0 0 0-11.75-14.3c-1.7-1.7-2.81-2.1-3.29-2.18Zm11.57-.95c.08.18.17.4.3.65.45.89 1.1 1.86 1.85 2.97.67.99 1.52 2.23 2.08 3.34l.14.32c.93 1.15 1.9 2.36 2.87 3.6l1.81 2.33.04.04.03.04c.34.47.63.96.83 1.3l.5.83.1.13c1.02.32 2.22.77 3.46 1.32-4.27-11.82-9.53-15.51-11.64-16.6l-.16-.07a10.29 10.29 0 0 0-2.2-.2Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"pages/support/help/faqQuestion/_topbarNext/onClose/on.ls","text":"(function(){\n  return function(page){\n    if (page.params.isDeepLink) {\n      return startPage({\n        path: path(\"/../app01-welcome/pages/welcome/page\"),\n        history: -1,\n        animation: \"slideDown\"\n      });\n    } else {\n      return startPage({\n        history: function(p){\n          return !_.includes(p, \"/help\");\n        },\n        animation: \"slideDown\"\n      });\n    }\n  };\n})();","updated":"2025-08-29T10:52:23.492606"},{"path":"pages/schoolAdmin/loadingPage/page.ls","text":"(function(){\n  return function(page){\n    return {\n      navCategory: \"schoolAdmin\",\n      top: function(){\n        var ref$;\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          return inc(\"_topbarNext/topbar\")(page);\n        }\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.html(inc(\"/lib/gui/spinner/spinner\")());\n        return inc(\"/lib/util/loadProject/load\")(\"app01-school-admin\", function(){\n          var ref$, p, ref1$;\n          if ((ref$ = projects.info()[\"app01-school-admin\"]) != null && ref$.isLoaded) {\n            p = inc(\"/lib/util/cache/get/get\")(\"schoolAdminStartParams\");\n            p.history = 0;\n            if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref1$ = log.findLast(\"navigationNext\")) != null && ref1$.enabled))) {\n              return inc(\"/../app01-school-admin/startNext/start\")();\n            } else {\n              return inc(\"/../app01-school-admin/start/start\")(p);\n            }\n          } else {\n            return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"data/content/_subjects/es/subjects.ls","text":"(function(){\n  return {\n    preschool: \"Preescolar\",\n    mat: \"Matemáticas\",\n    nates: \"Español\",\n    eng: \"Inglés\",\n    sci: \"Ciencias Naturales\",\n    bio: \"Biología\",\n    chem: \"Química\",\n    phy: \"Física\",\n    his: \"Historia\",\n    mus: \"Música\",\n    com: \"Computación\",\n    sel: \"Educ. Socioemocional\",\n    nahu: \"Náhuatl\",\n    mix: \"Tu'un savi (mixteco)\",\n    fra: \"Francés\",\n    ita: \"Italiano\",\n    pt: \"Portugués\",\n    cat: \"Catalán\",\n    deu: \"Alemán\",\n    rus: \"Ruso\",\n    ukr: \"Ucraniano\",\n    tur: \"Turco\"\n  };\n})();","updated":"2026-03-23T08:49:25.114589"},{"path":"pages/schoolSearch/04_schoolSearch/list/row/main/name/name.ls","text":"(function(){\n  return function(school){\n    return Div({\n      flex: \"1 1 auto\",\n      textAlign: \"left\",\n      userSelect: \"text\"\n    }).secureHtml(school.name);\n  };\n})();","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/util/toggleStatusBar/toggleStatusBar.ls","text":"(function(){\n  var isFirstStart;\n  isFirstStart = true;\n  return function(){\n    var s, a, enableAndroidImmersiveMode, disableAndroidImmersiveMode;\n    if ((typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.isInGestureNavigationMode : void 8) != null) {\n      inc(\"androidNextSet/set\")();\n      return;\n    }\n    s = window.StatusBar;\n    a = window.AndroidFullScreen;\n    if (s != null) {\n      s.overlaysWebView(engine.isiOsApp);\n    }\n    if (s != null) {\n      s.styleDefault();\n    }\n    if (s != null) {\n      s.backgroundColorByHexString('#f5f5f5');\n    }\n    enableAndroidImmersiveMode = function(){\n      return a != null ? a.immersiveMode(function(){\n        return s != null ? typeof s.hide == 'function' ? s.hide() : void 8 : void 8;\n      }, function(e){\n        return debug(\"enable immersive mode error\", e);\n      }) : void 8;\n    };\n    disableAndroidImmersiveMode = function(){\n      return a != null ? a.showSystemUI(function(){\n        return s != null ? typeof s.show == 'function' ? s.show() : void 8 : void 8;\n      }, function(e){\n        return debug(\"disable immersive mode error\", e);\n      }) : void 8;\n    };\n    if (!engine.isMobileApp) {} else if (engine.isAndroidApp) {\n      return enableAndroidImmersiveMode();\n    } else if (isFirstStart) {\n      isFirstStart = false;\n      if (device.version.indexOf(\"10.\") === 0 || device.version.indexOf(\"9.\") === 0) {\n        return s != null ? typeof s.hide == 'function' ? s.hide() : void 8 : void 8;\n      } else {\n        return s != null ? typeof s.show == 'function' ? s.show() : void 8 : void 8;\n      }\n    }\n  };\n})();","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/util/startPage/pageStart/defaultPageWrapper/updateLayout/update/calcSoftKeyboardBottom/page/page.ls","text":"(function(){\n  return function(pw, h){\n    var b, c, n;\n    b = pw.bottom;\n    if (b.firstChild) {\n      c = b.style.background || b.style.backgroundColor;\n      b.css({\n        borderBottom: h + \"px solid \" + c,\n        visibility: \"visible\"\n      });\n    } else {\n      if (h > 0) {\n        b.css({\n          borderBottom: h + \"px solid transparent\",\n          visibility: \"hidden\"\n        }).show();\n      } else {\n        b.css({\n          borderBottom: \"\",\n          visibility: \"visible\"\n        }).hide();\n      }\n    }\n    n = pw.navBottom;\n    if (n.firstChild != null) {\n      if (h === 0) {\n        n.show();\n      } else {\n        n.hide();\n      }\n    }\n    pw.visibleSoftKeyboard = h > 0;\n    if (engine.isMobileApp && h > pw.bottomFreeze.offsetHeight) {\n      pw.page.setBottomFreeze(h + \"px\");\n    }\n    if (h > 0) {\n      return pw.bottom.removeClass(\"safeAreaPaddingBottom\");\n    } else {\n      return pw.bottom.addClass(\"safeAreaPaddingBottom\");\n    }\n  };\n})();","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/init/softKeyboard/_setHeight/set.ls","text":"(function(){\n  return function(h){\n    var page, ref$, i$, ref1$, len$, el;\n    if (h === app.softKeyboardHeight) {\n      return;\n    }\n    page = app.currentPage;\n    app.softKeyboardHeight = h;\n    if ((ref$ = document.activeElement) != null) {\n      if (typeof ref$.onSoftKeyboardHeightChange == 'function') {\n        ref$.onSoftKeyboardHeightChange(h);\n      }\n    }\n    for (i$ = 0, len$ = (ref1$ = body.findAll(\".softKeyboardZone\")).length; i$ < len$; ++i$) {\n      el = ref1$[i$];\n      el.css({\n        height: h + \"px\"\n      });\n    }\n    if (!page) {\n      return;\n    }\n    return page.updateLayout();\n  };\n})();","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/init/setCssSafeArea/set.ls","text":"(function(){\n  return function(){\n    if (!engine.isMobileApp) {\n      return;\n    }\n    if (engine.isAndroidApp && (typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.isInGestureNavigationMode : void 8) != null) {\n      return inc(\"androidNext/set\")();\n    } else if (engine.isAndroidApp && (typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.getCutoutInsets : void 8) != null) {\n      return inc(\"android/set\")();\n    } else if (engine.isiOsApp && !engine.isMacApp) {\n      return inc(\"ios/set\")();\n    }\n  };\n})();","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/biology.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#8BC34A\" d=\"M139.5 226.2C98 203.9 92.3 140.5 129 106L202.6 36l39 93c18.2 43.5-7.4 96.2-50.9 104.6L184 235a58.1 58.1 0 0 1-38.7-5.8l-5.7-3Z\"/>\n    <mask id=\"b\" width=\"144\" height=\"201\" x=\"104\" y=\"36\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n      <path fill=\"#8BC34A\" d=\"M139.5 226.2C98 203.9 92.3 140.5 129 106L202.6 36l39 93c18.2 43.5-7.4 96.1-50.9 104.6L184 235a58.1 58.1 0 0 1-38.7-5.8l-5.7-3Z\"/>\n    </mask>\n    <g mask=\"url(#b)\">\n      <path fill=\"#9CCC65\" d=\"M239 166.6c-9.2 48-50.1 68.6-92.9 60.4a78.4 78.4 0 0 1-63.5-94.4C92 84.6 145.8 12 188.5 20.3c42.7 8.3 59.8 98.5 50.5 146.3Z\"/>\n    </g>\n    <path fill=\"#43A047\" d=\"M105 243.5a76.3 76.3 0 0 1-34.2-107l58-101.6 76.2 88.7c29.2 34 23 85.6-13.4 111.6l-4.8 3.5a76.3 76.3 0 0 1-76.4 7.3l-5.4-2.5Z\"/>\n    <mask id=\"c\" width=\"164\" height=\"219\" x=\"60\" y=\"34\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n      <path fill=\"#2E7D32\" d=\"M105 243.5a76.2 76.2 0 0 1-34.2-107l58-101.6 76.3 88.7c29 34 22.9 85.6-13.5 111.6l-4.8 3.5a76.2 76.2 0 0 1-76.4 7.3l-5.4-2.5Z\"/>\n    </mask>\n    <g mask=\"url(#c)\">\n      <path fill=\"#4CAF50\" d=\"M211.7 142.6c5.1 53.6-36.6 88.7-90.2 93.8-53.5 5.1-102-25.6-107.2-79.2C9.2 103.6 48.9 9.5 102.5 4.4 156-.7 206.6 89 211.7 142.6Z\"/>\n    </g>\n    <mask id=\"d\" width=\"164\" height=\"219\" x=\"60\" y=\"34\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n      <path fill=\"#2E7D32\" d=\"M105 243.5a76.2 76.2 0 0 1-34.2-107l58-101.6 76.3 88.7c29 34 22.9 85.6-13.5 111.6l-4.8 3.5a76.2 76.2 0 0 1-76.4 7.3l-5.4-2.5Z\"/>\n    </mask>\n    <g mask=\"url(#d)\">\n      <path fill=\"#66BB6A\" d=\"M158.1 300.7-.9 176.2 123.8-16.3l34.4 317Z\"/>\n    </g>\n    <path fill=\"#2E7D32\" d=\"M131.9 117a4.5 4.5 0 1 1 9-.8l4 42.2 21.6-16.6.2-.1a4.5 4.5 0 0 1 5.3 7.2l-26.2 20 2.8 28.9 34-26.2 5.5 7-38.3 29.6 1.7 10.7a160 160 0 0 0 27.8 67.1l.6 1 .2.2a4.5 4.5 0 0 1-7.3 5.2l-.1-.1-.7-1a169 169 0 0 1-29.3-71l-1.8-10.8-51-21.3a4.5 4.5 0 0 1 3.4-8.3l46.4 19.4-2.8-29.5-31.7-14.4-.2-.1a4.5 4.5 0 0 1 3.8-8.2l.2.1 27 12.3-4.1-42.4Zm50.7 54.6a4.5 4.5 0 0 1 5.5 7l-5.5-7Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <path fill=\"#fff\" d=\"M0 0h320v320H0z\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/chemistry.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#81D4FA\" d=\"M205.48 55.01h-8.68v57.3a85.86 85.86 0 1 1-69.52-1v-56.3h-10.92v-8.7h89.12v8.7Z\"/>\n  <path fill=\"#C8E6C9\" d=\"M160.92 275.12c47.42 0 85.86-42.5 85.86-89.92l-28.95 7.39a76.6 76.6 0 0 1-51.25-4.79l-12.37-5.76a76.6 76.6 0 0 0-53.37-4.2l-25.79 7.36c0 47.43 38.45 89.92 85.87 89.92Z\"/>\n  <path fill=\"#4CAF50\" d=\"M100.4 191.9a76.6 76.6 0 0 1 53.36 4.2l12.37 5.76a76.59 76.59 0 0 0 51.25 4.78l28.48-7.26a85.87 85.87 0 0 1-170.8-.25l25.33-7.23Z\"/>\n  <path fill=\"#64B5F6\" d=\"M127.83 55.21h68.9v6.86h-68.9z\" opacity=\".6\"/>\n  <path fill=\"#42A5F5\" d=\"M127.83 55.21h68.55v3.43h-68.55z\" opacity=\".6\"/>\n  <circle cx=\"188.22\" cy=\"235.6\" r=\"12.24\" fill=\"#fff\"/>\n  <circle cx=\"126.06\" cy=\"208.69\" r=\"9.1\" fill=\"#fff\"/>\n  <circle cx=\"141.57\" cy=\"247.98\" r=\"6.58\" fill=\"#fff\"/>\n  <circle cx=\"173.11\" cy=\"154.91\" r=\"9.43\" fill=\"#fff\"/>\n  <mask id=\"a\" width=\"172\" height=\"231\" x=\"74\" y=\"46\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#4FC3F7\" d=\"M204.63 55.01h-8.7v57.3a85.86 85.86 0 1 1-69.52-1v-56.3h-10.91v-8.7h89.13v8.7Z\"/>\n  </mask>\n  <g mask=\"url(#a)\">\n    <path fill=\"#fff\" d=\"M226.2 170.22a82.8 82.8 0 0 1-163.15 28.3c-7.58-43.7 18.93-85.27 61.75-94.86 1.32-.3 0-47.96 0-47.96h64.19v58.52c19.21 12.05 33.03 31.9 37.21 56Z\" opacity=\".25\"/>\n  </g>\n  <path fill=\"#fff\" d=\"M149.87 117.46a101.3 101.3 0 0 0-49.5 69.6 101.05 101.05 0 0 0 4.9 54.72 72.58 72.58 0 0 1 44.6-124.31Z\" opacity=\".66\"/>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/geography.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#42A5F5\" d=\"M243.48 137.75c0 19.43-5.26 37.62-14.5 53.22a104.8 104.8 0 0 1-95.48 51.54 104.42 104.42 0 0 1-52.73-17.22 104.97 104.97 0 0 1-47.09-87.54c0-28.38 11.29-54.14 29.6-73.02a104.52 104.52 0 0 1 75.31-31.89 105.24 105.24 0 0 1 34.63 5.86 104.94 104.94 0 0 1 38.64 23.98 104.62 104.62 0 0 1 31.62 75.08v-.01Z\"/>\n  <mask id=\"a\" width=\"211\" height=\"211\" x=\"33\" y=\"32\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#2196F3\" d=\"M243.48 137.75c0 19.43-5.26 37.62-14.5 53.22a104.8 104.8 0 0 1-95.48 51.54 104.42 104.42 0 0 1-52.73-17.22 104.97 104.97 0 0 1-47.09-87.54c0-28.38 11.29-54.14 29.6-73.02a104.52 104.52 0 0 1 75.31-31.89 105.24 105.24 0 0 1 34.63 5.86 104.94 104.94 0 0 1 38.64 23.98 104.62 104.62 0 0 1 31.62 75.08v-.01Z\"/>\n  </mask>\n  <g mask=\"url(#a)\">\n    <path fill=\"#C8E6C9\" d=\"M171.71 78.48c.44-6.15 17.82-22.72 26.46-30.24 9-.73 28.22-1.76 33.07 0 6.06 2.2 13.77 7.15 15.43 8.8 1.65 1.65 12.12 61.03 12.67 64.33.45 2.64-6.78 31-14.3 44-2.95-.17-18.43-2.1-25.93-1.66-9.37.55-7.17 6.6-8.27 11.55-1.1 4.94-2.2 8.8-17.08 11.54-12.13 1.65-17.09-4.95-14.33-11.54 2.75-6.6-9.92-9.35-12.68-20.35-2.2-8.8 9-16.86 14.88-19.8 4.23-2.93 13.45-11.43 16.54-21.99 3.86-13.2-15.43-16.5-21.5-19.79-6.06-3.3-5.5-7.15-4.96-14.85ZM91.1 46.46c-4.4-2.2-12.09-10.8-15.38-14.82l-41.2 19.21-25.27 57.1 6.59 14.83c2.93-.37 10-.77 14.83.54 6.04 1.65 5.5 6.04 8.79 9.89 3.3 3.84 7.7 7.13 10.44 9.88 2.74 2.74 12.08 3.3 15.93 8.23 3.84 4.94 6.04 18.67 7.14 24.16 1.1 5.49 13.19 14.82 16.48 22.51 3.3 7.69 2.75 23.6 6.04 25.25 3.3 1.65 3.3 0 4.4-6.03 1.1-6.04 2.2-7.14 6.6-9.89 4.39-2.74 4.94-7.13 6.03-15.92 1.1-8.78 7.7-13.18 11-14.82 3.29-1.65 9.88-7.14 9.88-10.98 0-3.84-6.04-8.24-9.89-11.53-3.84-3.3-7.69-11.53-10.99-13.73-3.3-2.2-8.79-2.2-12.63-3.84-3.85-1.65-9.89-7.14-15.93-7.14-6.05 0-10.99 5.5-16.48 6.04-4.4.44-9.16-3.84-10.99-6.04a36.4 36.4 0 0 1-6.6-14.82c-1.64-8.79 3.85-10.98 6.6-13.73 2.75-2.74 17.58.55 20.88 0 3.3-.55 3.3-4.39 5.49-6.03 2.2-1.65 6.6-3.85 10.99-4.95 4.4-1.1 9.88 0 12.08 0 2.2 0 4.4-5.49 7.7-10.98 3.29-5.49 0-4.39-3.3-12.62-3.3-8.24-13.74-17.02-19.23-19.77Z\"/>\n    <path fill=\"#fff\" d=\"m27.77 206.76 6.67 23.7-15.18-28.51 8.5 4.81L-4.63 91.6C19.76 58.01 127.77-49.57 127.77-49.57l47.36 68.97-27.6 8.42a151.76 151.76 0 0 0-106.69 160.4l2.78 27.53-15.86-8.99Z\" opacity=\".4\"/>\n    <path fill=\"#000\" d=\"M256.38 165.25a108.04 108.04 0 0 1-26.19 50.88 108.73 108.73 0 0 1-108.01 31.71A108.32 108.32 0 0 1 72.38 219c2.4-.66 4.76-1.4 7.1-2.18 26.26-8.71 50.45-23.8 69.46-43.89 2.28-2.4 4.48-4.89 6.62-7.42a162.2 162.2 0 0 0 17.18-25.1 171.3 171.3 0 0 0 21.32-87.79 145.6 145.6 0 0 0-.6-9.78 108.87 108.87 0 0 1 47.04 39.4 108.54 108.54 0 0 1 15.9 83.02h-.01Z\" opacity=\".1\"/>\n  </g>\n  <g fill=\"#000\" opacity=\".2\">\n    <path d=\"m192.16 209.6 10.31-9.86 20.95 21.92-10.32 9.85-20.94-21.91Z\"/>\n    <path d=\"m197.38 204.6 5.1-4.86 20.94 21.92-5.1 4.86-20.94-21.91Z\"/>\n    <path d=\"m205.5 231.17 18.04-17.24 36.96 38.67a12.48 12.48 0 1 1-18.05 17.25l-36.96-38.68Z\"/>\n    <path d=\"m205.37 231.29 18.04-17.25 8.63 9.03L214 240.3l-8.63-9.02Z\"/>\n    <path d=\"m214.51 222.55 9.03-8.62 36.96 38.67a12.48 12.48 0 0 1-.4 17.65l-45.59-47.7Z\" opacity=\".61\"/>\n    <path fill-rule=\"evenodd\" d=\"M184.92 191.07a35.74 35.74 0 1 0-49.38-51.67 35.74 35.74 0 0 0 49.38 51.67Zm13.57 14.2a55.38 55.38 0 1 0-76.52-80.07 55.38 55.38 0 0 0 76.52 80.08Z\" clip-rule=\"evenodd\"/>\n  </g>\n  <path fill=\"#B0BEC5\" d=\"m194.84 205.13 10.31-9.85 20.94 21.91-10.3 9.86-20.95-21.92Z\"/>\n  <path fill=\"#90A4AE\" d=\"m200.06 200.14 5.1-4.86 20.94 21.91-5.1 4.87-20.94-21.92Z\"/>\n  <path fill=\"#E91E63\" d=\"m208.17 226.7 18.05-17.24 36.96 38.67a12.48 12.48 0 1 1-18.05 17.25l-36.96-38.67Z\"/>\n  <path fill=\"#C2185B\" d=\"m208.05 226.82 18.04-17.24 8.63 9.02-18.04 17.24-8.63-9.02Z\"/>\n  <path fill=\"#C2185B\" d=\"m217.2 218.09 9.02-8.63 36.96 38.68a12.48 12.48 0 0 1-.4 17.64l-45.58-47.7Z\" opacity=\".61\"/>\n  <path fill=\"#F8F8F8\" fill-rule=\"evenodd\" d=\"M187.6 186.61a35.74 35.74 0 1 0-49.39-51.68 35.74 35.74 0 0 0 49.4 51.68Zm13.57 14.2a55.38 55.38 0 1 0-76.52-80.07 55.38 55.38 0 0 0 76.52 80.07Z\" clip-rule=\"evenodd\"/>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/first-language.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#C2185B\" d=\"M64 95.81h191.54v182.17H82.61a18.6 18.6 0 0 1-18.6-18.6V95.81Z\"/>\n  <path fill=\"#fff\" d=\"M235.23 268.9V57.91l11.6 40.99v170h-11.6Z\"/>\n  <path fill=\"#000\" d=\"M235.23 268.9V57.91l11.6 40.99v170h-11.6Z\" opacity=\".3\"/>\n  <path fill=\"#EC407A\" d=\"M82.6 42.02h152.56v233.92H82.6a18.6 18.6 0 0 1-18.6-18.6V60.61a18.6 18.6 0 0 1 18.6-18.6Z\"/>\n  <mask id=\"a\" width=\"173\" height=\"234\" x=\"63\" y=\"42\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#E91E63\" d=\"M82.6 42.02h152.56v233.92H82.6a18.6 18.6 0 0 1-18.6-18.6V60.61a18.6 18.6 0 0 1 18.6-18.6Z\"/>\n  </mask>\n  <g mask=\"url(#a)\">\n    <path fill=\"#880E4F\" d=\"M24.4 12.98h58.82V279.6H24.41V12.98Z\" opacity=\".2\"/>\n    <path fill=\"#000\" d=\"M13.75 15.39h58.82V282H13.75V15.39Z\" opacity=\".18\"/>\n    <path fill=\"#fff\" d=\"m62.25 35.26-8.84 62.9c-.09.6.77.81.97.24a100.87 100.87 0 0 1 77.9-65.95l40.66-7.07-109.87 9.1a.9.9 0 0 0-.82.78Z\" opacity=\".05\"/>\n  </g>\n  <path fill=\"#fff\" d=\"m246.98 269.42-11.55-18.75H86.42a9.38 9.38 0 1 0 0 18.75h160.56Z\"/>\n  <path fill=\"#2196F3\" d=\"M100.95 306.99v-47.63h24.46v47.88a.93.93 0 0 1-1.66.58l-10.5-13.15a.93.93 0 0 0-1.48.04l-9.13 12.81a.93.93 0 0 1-1.69-.53Z\"/>\n  <path fill=\"#000\" d=\"m123.75 307.82-11.07-13.86a.93.93 0 0 1-.2-.57l-.33-34.07 13.26.04v47.88a.93.93 0 0 1-1.66.58Z\" opacity=\".25\"/>\n  <path fill=\"#AD1457\" d=\"M88.87 153.74c2.44-7.88 4.88-15.86 7.32-23.93l7.39-23.94h16.83a3969 3969 0 0 1 7.32 23.94c2.48 8.07 4.95 16.05 7.39 23.93h-12.4c-.46-1.5-.9-3-1.33-4.5-.42-1.55-.87-3.08-1.34-4.58h-16.12c-.47 1.5-.91 3.03-1.34 4.58a161 161 0 0 1-1.33 4.5h-12.4Zm18.16-19.57h9.93a798.3 798.3 0 0 0-2.47-8.37c-.84-2.82-1.66-5.61-2.46-8.38-.8 2.77-1.64 5.56-2.54 8.38-.84 2.81-1.66 5.6-2.46 8.37Zm32.67 19.57v-47.87h17.47c3.24 0 6.07.59 8.52 1.76a13.34 13.34 0 0 1 5.7 4.79 12.53 12.53 0 0 1 2.04 7.18c0 1.97-.38 3.76-1.13 5.35a10.28 10.28 0 0 1-3.38 4.01 12.24 12.24 0 0 1 6.05 10.7c0 2.82-.72 5.28-2.18 7.4a13.89 13.89 0 0 1-5.98 4.92 21.1 21.1 0 0 1-8.94 1.76h-18.16Zm21.4-32.94a4 4 0 0 0-4.07-4.16h-5.14v8.17h5.13c1.23 0 2.21-.35 2.96-1.06a4 4 0 0 0 1.13-2.95Zm1.56 17.74c0-1.32-.45-2.35-1.34-3.1a4.92 4.92 0 0 0-3.52-1.2h-5.91v8.73h5.91c1.5 0 2.67-.4 3.52-1.2.9-.8 1.34-1.87 1.34-3.23Zm16.59-8.74c0-3.6.56-6.9 1.69-9.85 1.17-3 2.81-5.6 4.93-7.81a22.01 22.01 0 0 1 7.6-5.14 27.29 27.29 0 0 1 9.78-1.97 37 37 0 0 1 11.55 1.69v11.89a22.82 22.82 0 0 0-8.24-2.25 15.8 15.8 0 0 0-7.39 1.13c-2.2.94-3.96 2.44-5.28 4.5-1.31 2.02-1.97 4.63-1.97 7.82 0 3.19.66 5.82 1.97 7.88a11.58 11.58 0 0 0 5.28 4.44 15.8 15.8 0 0 0 7.4 1.12c2.72-.19 5.46-.94 8.23-2.25v11.9a37.02 37.02 0 0 1-11.55 1.69c-3.56-.1-6.82-.75-9.78-1.97a22.03 22.03 0 0 1-7.6-5.14 23.73 23.73 0 0 1-4.93-7.75c-1.13-3-1.69-6.3-1.69-9.92Z\"/>\n  <path fill=\"#fff\" d=\"M86.73 150.21a3817.8 3817.8 0 0 0 7.32-23.93c2.5-8.08 4.95-16.05 7.4-23.94h16.82a3732.2 3732.2 0 0 1 7.32 23.94c2.49 8.07 4.95 16.05 7.4 23.93h-12.4c-.47-1.5-.91-3-1.34-4.5a129.9 129.9 0 0 0-1.33-4.58H101.8c-.47 1.5-.92 3.03-1.34 4.58-.42 1.5-.87 3-1.34 4.5H86.73Zm18.16-19.57h9.93c-.8-2.77-1.62-5.56-2.46-8.38-.85-2.81-1.67-5.6-2.47-8.37a330.2 330.2 0 0 1-2.53 8.37c-.85 2.82-1.67 5.61-2.47 8.38Zm32.68 19.57v-47.87h17.46c3.24 0 6.08.59 8.52 1.76a13.33 13.33 0 0 1 5.7 4.79 12.53 12.53 0 0 1 2.04 7.18c0 1.97-.37 3.75-1.12 5.35a10.28 10.28 0 0 1-3.38 4.01 12.04 12.04 0 0 1 4.5 4.58 12.25 12.25 0 0 1 1.55 6.12c0 2.82-.73 5.28-2.18 7.4a13.89 13.89 0 0 1-5.98 4.92 21.1 21.1 0 0 1-8.94 1.76h-18.17Zm21.4-32.94a4 4 0 0 0-4.08-4.16h-5.14v8.17h5.15c1.22 0 2.2-.35 2.96-1.06a4 4 0 0 0 1.12-2.95Zm1.55 17.73c0-1.3-.44-2.34-1.34-3.1a4.92 4.92 0 0 0-3.52-1.19h-5.91v8.73h5.91c1.5 0 2.68-.4 3.53-1.2a4.12 4.12 0 0 0 1.33-3.24Zm16.59-8.72c0-3.62.57-6.9 1.7-9.86 1.17-3 2.81-5.6 4.92-7.81a22.02 22.02 0 0 1 7.6-5.14 27.33 27.33 0 0 1 9.79-1.97c3.61-.1 7.46.47 11.54 1.69v11.89a22.82 22.82 0 0 0-8.23-2.25c-2.72-.19-5.19.19-7.4 1.13-2.2.94-3.96 2.44-5.27 4.5-1.32 2.02-1.97 4.63-1.97 7.82 0 3.19.65 5.82 1.97 7.88a11.57 11.57 0 0 0 5.28 4.44c2.2.93 4.67 1.3 7.39 1.12 2.72-.19 5.47-.94 8.23-2.25v11.9a37 37 0 0 1-11.54 1.69 27.5 27.5 0 0 1-9.79-1.98 22 22 0 0 1-7.6-5.14 23.7 23.7 0 0 1-4.93-7.74c-1.12-3-1.69-6.31-1.69-9.92Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/subjects/history.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#8D6E63\" d=\"M43 58v17c0 .8.9 1.1 1.4.5a34.6 34.6 0 0 1 27.5-13.6h10V41h-22a17 17 0 0 0-17 17Z\"/>\n  <path fill=\"#D7CCC8\" d=\"M214.5 41H60.8c11 2.4 19 12.1 19.1 23.4V238a33.2 33.2 0 0 0 33.2 33.3H222c9 0 16.2-7.3 16.2-16.2V64.8A23.7 23.7 0 0 0 214.5 41Z\"/>\n  <mask id=\"a\" width=\"179\" height=\"231\" x=\"60\" y=\"41\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#9FA8DA\" d=\"M214.5 41H60.8c11 2.4 19 12.1 19.1 23.4V238a33.2 33.2 0 0 0 33.2 33.3H222c9 0 16.2-7.3 16.2-16.2V64.8A23.7 23.7 0 0 0 214.5 41Z\"/>\n  </mask>\n  <g mask=\"url(#a)\">\n    <path fill=\"#BCAAA4\" d=\"M131.7 238.4h145.6l-4 38H104l23.8-13.7a16 16 0 0 0 4-24.3Z\"/>\n  </g>\n  <path fill=\"#A1887F\" d=\"M264.5 233.1h-128l1.2.6a15 15 0 0 1 7.8 12.6 23.1 23.1 0 0 1-19 23.7l-6.7 1.2h130c20 0 29.5-24.7 14.7-38Z\"/>\n  <path fill=\"#BCAAA4\" d=\"M162.3 184.1c-9.3 3.3-25 2-31.8.8-1.7-1-4.2-11.6-3.5-19 1-9.3 4.3-12.6 7.8-22.1 2.7-7.2 7.2-14 9.2-16.8.2-.3.6-.5 1-.3l2.4 1c.5.2 1-.1 1-.7l.7-9.5c0-.2 0-.4.2-.5 1.1-1 5-4.5 8-7.7 5-5.3 8.5-6.5 12.9-9.7l3.8 5.3 1.6-13.3c2.7-1.6 11.7-7 18.7-9a83.3 83.3 0 0 1 23.5-3.3c2.4 0 4.5 1.8 4.7 4.2.2 5.3.2 12.4-1 18.5a121.8 121.8 0 0 1-9.2 29l-10.7 4c-.8.3-.6 1.5.3 1.5l7.3.2c.5 0 .8.5.7 1-3.2 14-13 24-23.7 33.2l-.5.2-12.7.7c-.8 0-1 1.2-.2 1.5l5.3 2c.5.3.6 1 .1 1.4-2.6 1.7-8 4.7-15.9 7.4Z\"/>\n  <path fill=\"#FFFDE7\" d=\"M155.3 180.2a62 62 0 0 1-28 2c-1.5-.9-4-11-3.6-18.3a109.4 109.4 0 0 1 12.6-41.8.8.8 0 0 1 1.4 0l2.1 4.5c.4.7 1.5.5 1.5-.3l.3-10.7c0-.2 0-.4.2-.6.8-1.4 4.2-7.8 6.7-11.1 4.2-5.5 7.3-6.7 11-10.1l3.2 7.3 1.4-12c2.4-1.7 10-7.4 16.2-9.6 8.6-3 13.4-3.8 19.9-4.3a4.5 4.5 0 0 1 4.9 4.2c.4 5 .5 12-.3 17.9a130.8 130.8 0 0 1-7.2 28.6l-8.2 4.6c-.7.4-.4 1.5.4 1.5l5-.3c.6 0 1 .5.9 1-2.4 13.8-10.7 24-19.8 33.4l-.5.2-11.6 1c-.9.1-1 1.3-.2 1.6l5.2 2c.6.2.7.9.2 1.3-2.2 1.7-6.9 4.9-13.7 8Z\"/>\n  <path fill=\"#6D4C41\" d=\"M157.7 136.1a4.3 4.3 0 0 1 6.5 5.7l-3.7 4.4a234.7 234.7 0 0 0-32 46.7l-8.4 16.3a4.3 4.3 0 0 1-7.7-4L121 189l.8-1.6a243.3 243.3 0 0 1 32.2-46.8l3.8-4.4Z\"/>\n  <path fill=\"#283593\" d=\"M115.6 199.1a4.3 4.3 0 0 1 7.7 4l-.1.2-3.1 6a4.3 4.3 0 0 1-7.7-4l3-6 .2-.2Z\"/>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-de.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#000\" d=\"M47.6 75.8a8.8 8.8 0 0 1 8.3-9L266.5 53a8.8 8.8 0 0 1 9.4 9l-5 170.3c-.2 5-4.3 8.8-9.3 8.6l-93-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4l-58.2-63.5-53.5-3.7c-4.6-.3-8.1-4-8.2-8.6l-4-147.7Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.6a8.8 8.8 0 0 1 8.3-9l210.6-13.7a8.8 8.8 0 0 1 9.4 9l-5 170.4c-.2 4.9-4.3 8.7-9.2 8.5l-93.1-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4L108 229.6 54.5 226c-4.5-.3-8.1-4-8.2-8.5l-4-147.8Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M62.6 206.5c0 4.9 4 8.8 8.8 8.8h171c4.8 0 8.7-4 8.7-8.8V83.2c0-5-4-8.9-8.8-8.9h-171c-4.8 0-8.7 4-8.7 8.9v123.3Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#212121\" d=\"M247.5 72.9H62.7V119h184.8V73Z\"/>\n    <path fill=\"#E53935\" d=\"M247.5 119H62.7v46.2h184.8V119Z\"/>\n    <path fill=\"#FCBE2C\" d=\"M247.5 165.2H62.7v46.2h184.8v-46.2Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"184.8\" height=\"138.6\" x=\"62.7\" y=\"72.9\" fill=\"#fff\" rx=\"8.8\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-en-gb.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#000\" d=\"M47.7 76a9 9 0 0 1 8.4-9.3l214-13.6a9 9 0 0 1 9.6 9.2l-5 170a9 9 0 0 1-9.4 8.7l-94.7-4.3 6.1 61.2c.2 1.7-2 2.6-3 1.4l-59.2-63.5L60 232a9 9 0 0 1-8.4-8.7L47.7 76Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.8a9 9 0 0 1 8.4-9.2l214.1-13.7a9 9 0 0 1 9.5 9.2l-5 170a9 9 0 0 1-9.4 8.7l-94.6-4.3 6 61.2c.2 1.7-1.9 2.7-3 1.4L109 229.6 54.7 226a9 9 0 0 1-8.4-8.7l-4-147.4Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M63 204.6c0 5 4 9 8.9 9h173.7c5 0 9-4 9-9v-123c0-5-4-9-9-9H71.9c-5 0-9 4-9 9v123Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g fill-rule=\"evenodd\" clip-path=\"url(#a)\" clip-rule=\"evenodd\">\n    <path fill=\"#1565C0\" d=\"M63.3 208.5h186.6V73H63.3v135.6Z\"/>\n    <path fill=\"#FFFFFE\" d=\"M216 162h33.9v-42.6h-34l34-25.8V73h-28.5l-45.1 33.6V73h-39.5v33.6L91.8 73H63.3v20.7l33.9 25.8h-34V162h34l-34 25.8v20.7h28.5l45.1-33.6v33.6h39.5V175l45.1 33.6H250v-20.7l-34-25.8Z\"/>\n    <path fill=\"#E91E63\" d=\"M249.9 153.1v-24.8l-82.1-1.1V72.9h-22.4v54.3l-82.1 1.1v24.8h82v55.4h22.5v-55.4l82 1.2\"/>\n    <path fill=\"#E91E63\" d=\"M207 162h-18.3l62.3 46.5v-13.1L207 162ZM63.3 86l42.9 33.4h19.4L63.3 72.9V86ZM176.3 119.4h11.2L250 72.9h-19.5l-54 40v6.5ZM136.8 162h-12.4l-61.1 46.5h19.4l54.1-41.2\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"187.8\" height=\"135.6\" x=\"63.2\" y=\"72.9\" fill=\"#fff\" rx=\"9\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-br.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#000\" d=\"M47.62 75.77a8.81 8.81 0 0 1 8.24-9.03L266.5 53.11a8.81 8.81 0 0 1 9.38 9.05l-5.02 170.27a8.81 8.81 0 0 1-9.22 8.54l-93.08-4.3 5.98 61.23a1.76 1.76 0 0 1-3.05 1.37l-58.17-63.48-53.55-3.69a8.81 8.81 0 0 1-8.2-8.55L47.62 75.77Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.33 69.6a8.81 8.81 0 0 1 8.24-9.02l210.65-13.64a8.81 8.81 0 0 1 9.37 9.05l-5.02 170.27a8.81 8.81 0 0 1-9.21 8.54l-93.08-4.3 5.97 61.24a1.76 1.76 0 0 1-3.05 1.36l-58.16-63.48-53.56-3.68a8.81 8.81 0 0 1-8.2-8.56L42.33 69.6Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M63.46 206.5a8.81 8.81 0 0 0 8.81 8.81H243.2a8.81 8.81 0 0 0 8.81-8.8V83.14a8.81 8.81 0 0 0-8.81-8.81H72.27a8.81 8.81 0 0 0-8.81 8.81V206.5Z\" clip-rule=\"evenodd\" opacity=\".22\"/>\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"M62 212.9h188V73.64H62V212.9Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#FEDF00\" d=\"m155.47 195.08 80.08-51.12-80.08-51.1-80.08 51.1 80.08 51.12Z\"/>\n    <path fill=\"#002776\" d=\"M155.47 110.2a33.77 33.77 0 1 1 0 67.53 33.77 33.77 0 0 1 0-67.53Z\"/>\n    <path fill=\"#fff\" d=\"M124.58 130.32a81.74 81.74 0 0 1 64.3 18.37 30.35 30.35 0 0 1-1.19 5.35 76.8 76.8 0 0 0-51.52-19.74c-4.56 0-9.05.41-13.4 1.16.48-1.78 1.1-3.5 1.81-5.14Z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"M126.6 133.51c.49-.07.8-.55.73-1.1-.07-.54-.52-.96-.96-.89-.45.07-.8.55-.72 1.1.07.55.48.92.96.9Zm.08.58c.78-.1 1.37-.89 1.23-1.78-.1-.89-.82-1.5-1.64-1.4-.8.1-1.34.89-1.24 1.78.14.85.86 1.5 1.65 1.4Zm3.08-2.12 1.24-.07c.24-.03.4-.2.37-.45 0-.24-.2-.4-.44-.37l-1.24.1.07.79Zm-.48 1.85.58-.03-.07-1.2 1.27-.1c.55-.04 1-.52.93-1.07a1 1 0 0 0-1.06-.93l-1.82.14.17 3.19Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#009B3A\" d=\"M132.02 133.61c-.03-.44-.1-1.47-.78-1.4l-.9.07c1-.07 1.07.92 1.13 1.4l.55-.07Z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"M133.94 132.93h.86c.48 0 .86-.41.86-.9v-.27a.88.88 0 0 0-.9-.85l-.88.03.06 1.99Zm-.58.61 1.5-.03a1.43 1.43 0 0 0 1.38-1.4v-.45a1.4 1.4 0 0 0-1.4-1.37l-1.51.03.03 3.22Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#009B3A\" d=\"m137.44 133.51 2.91.1v-.58l-2.33-.1.04-.82 1.81.06.04-.54-1.85-.07.03-.65 2.2.1.03-.62-2.74-.1-.14 3.22Zm4.08.17.55.07.2-2.23.45 2.26.51.07.83-2.16-.21 2.2.55.03.3-3.19-.82-.06-.82 2.12-.44-2.23-.8-.07-.3 3.2Zm6.68.76 2.37.4.1-.54-1.85-.31.14-.72 1.47.24.1-.51-1.47-.28.07-.51 1.78.3.1-.54-2.33-.38-.48 2.85Z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"m155.33 134.06 1.2.3c.2.04.45-.06.52-.3.03-.2-.07-.45-.31-.52l-1.2-.3-.2.82Zm-1.03 1.58.59.13.3-1.16 1.24.3a1 1 0 0 0 1.23-.71 1 1 0 0 0-.72-1.24l-1.78-.48-.85 3.16Zm5.04-.48 1.17.37a.4.4 0 0 0 .51-.27.4.4 0 0 0-.27-.52l-1.17-.37-.24.79Zm-1.1 1.54.59.17.38-1.13 1.23.38c.52.17 1.1-.14 1.27-.66.17-.51-.14-1.1-.65-1.27l-1.75-.54-1.06 3.05Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#009B3A\" d=\"M160.85 137.52c.14-.45.45-1.4-.2-1.61l-.83-.27c.96.3.66 1.26.52 1.71l.51.17Z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"M163.7 137.9c.44.17.96-.14 1.13-.65.2-.52 0-1.1-.45-1.24-.44-.17-.96.14-1.13.65-.2.52 0 1.07.45 1.24Zm-.2.55c.75.27 1.6-.17 1.91-1 .31-.82-.03-1.75-.79-2.02-.75-.28-1.6.17-1.92 1-.3.85.04 1.74.8 2.02Zm4 .99c.45.17.96-.07 1.2-.58l.55.24c-.34.82-1.23 1.2-1.95.89-.76-.3-1.06-1.23-.69-2.06.34-.82 1.24-1.23 1.96-.89.58.24.89.86.82 1.51l-.58-.27c-.04-.31-.21-.59-.48-.69-.42-.2-.96.07-1.17.58-.24.52-.1 1.07.34 1.27Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#009B3A\" d=\"m168.12 138.62 1.13.48-.2.4-1.1-.47.17-.41Z\"/>\n    <path fill=\"#009B3A\" d=\"m168.8 138.9.45.2-.65 1.47-.44-.2.65-1.48Z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"m171 139.72 1.1.54c.2.1.44.04.55-.17.1-.2.03-.44-.21-.55l-1.1-.54-.34.72Zm-1.34 1.33.55.28.52-1.07 1.13.59c.51.24 1.1.03 1.37-.45.24-.51.03-1.1-.45-1.37l-1.64-.82-1.48 2.84Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#009B3A\" d=\"M172.13 142.29c.2-.41.65-1.3.03-1.61l-.78-.38c.89.44.44 1.37.24 1.75l.51.24Zm1.2.61 2.5 1.44.31-.51-2.05-1.17.4-.72 1.62.9.24-.49-1.58-.89.3-.55 1.93 1.07.3-.52-2.4-1.33-1.57 2.77Zm4.7 1.58c-.17.28 0 .58.37.82.38.24.66.24.76.07.34-.55-1.68-1.37-1.06-2.33.54-.82 1.47-.17 1.81.03.34.21.9.8.48 1.44l-.58-.37c.17-.31-.03-.58-.34-.76-.31-.17-.55-.27-.72 0-.31.45 1.68 1.3 1.1 2.27-.45.72-1.24.4-1.79.06-.44-.27-1.1-.96-.68-1.64l.65.41Zm3.43 2.3c-.18.27-.04.58.34.82.38.27.65.27.75.1.38-.55-1.6-1.44-.92-2.36.58-.8 1.47-.1 1.81.13.35.24.86.86.41 1.48l-.58-.41c.2-.28 0-.55-.27-.8-.28-.2-.52-.3-.72-.03-.34.41 1.6 1.38.96 2.3-.48.69-1.27.34-1.75-.03-.45-.31-1.06-1.03-.58-1.68l.55.48Z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"M185.09 150c.38.27.96.17 1.3-.28.34-.44.34-1.02-.03-1.3-.35-.3-.96-.17-1.27.28-.38.4-.38 1.03 0 1.3Zm-.38.48c.62.51 1.58.34 2.13-.34.54-.69.48-1.65-.14-2.16-.62-.52-1.58-.35-2.13.34-.54.68-.47 1.64.14 2.16Z\" clip-rule=\"evenodd\"/>\n    <circle cx=\"140\" cy=\"143\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"131.5\" cy=\"157.5\" r=\"1.5\" fill=\"#fff\"/>\n    <circle cx=\"144\" cy=\"148\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"138\" cy=\"152\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"130\" cy=\"151\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"155\" cy=\"148\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"149\" cy=\"152\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"144\" cy=\"159\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"129\" cy=\"139\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"137\" cy=\"147\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"175\" cy=\"150\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"165.5\" cy=\"146.5\" r=\"1.5\" fill=\"#fff\"/>\n    <circle cx=\"179.5\" cy=\"156.5\" r=\"1.5\" fill=\"#fff\"/>\n    <circle cx=\"165\" cy=\"131\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"167\" cy=\"155\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"173\" cy=\"159\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"168\" cy=\"165\" r=\"1\" fill=\"#fff\"/>\n    <circle cx=\"177\" cy=\"164\" r=\"1\" fill=\"#fff\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"185.91\" height=\"135.69\" x=\"62.58\" y=\"74.39\" fill=\"#fff\" rx=\"8.81\"/>\n    </clipPath>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/subjects/language-en-us-es.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#000\" d=\"M47.6 75.8a8.8 8.8 0 0 1 8.3-9L266.5 53a8.8 8.8 0 0 1 9.4 9l-5 170.3c-.2 5-4.3 8.8-9.3 8.6l-93-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4l-58.2-63.5-53.5-3.7c-4.6-.3-8.1-4-8.2-8.6l-4-147.7Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.6a8.8 8.8 0 0 1 8.3-9l210.6-13.7a8.8 8.8 0 0 1 9.4 9l-5 170.4c-.2 4.9-4.3 8.7-9.2 8.5l-93.1-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4L108 229.6 54.5 226c-4.5-.3-8.1-4-8.2-8.5l-4-147.8Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M58.2 159.3c0 7.8 6.3 14 14 14h99.6c7.8 0 14-6.2 14-14V90.2a14 14 0 0 0-14-14.1H72.3c-7.8 0-14.1 6.3-14.1 14v69.2Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#E53935\" d=\"M184.5 76H58.9v10.5h125.6V76.1Z\"/>\n    <path fill=\"#F5F5F5\" d=\"M184.5 86.5H58.9V97h125.6V86.5Z\"/>\n    <path fill=\"#E53935\" d=\"M184.5 97H58.9v10.4h125.6V97Z\"/>\n    <path fill=\"#F5F5F5\" d=\"M184.5 107.5H58.9V118h125.6v-10.5Z\"/>\n    <path fill=\"#E53935\" d=\"M184.5 118H58.9v10.4h125.6V118Zm0 20.6H55.2v11h129.3v-11Zm0 21.4H54.6v10.5h129.9V160Z\"/>\n    <path fill=\"#F5F5F5\" d=\"M184.5 128.2H55.8v10.4h128.7v-10.4Zm0 21.5H55.2V160h129.3v-10.4Z\"/>\n    <path fill=\"#0D47A1\" d=\"M121.4 76.2H55.8v52h65.6v-52Z\"/>\n    <path fill=\"#F5F5F5\" fill-rule=\"evenodd\" d=\"m63.1 91 3.9-2.4 3.8 2.4-1-4.4 3.4-3-4.5-.2-1.7-4.2-1.8 4.2-4.4.3 3.3 2.9-1 4.4Zm14.7 0 3.9-2.4 3.8 2.4-1-4.4 3.4-3-4.5-.2-1.7-4.2-1.8 4.2-4.4.3 3.4 2.9-1 4.4Zm14.8 0 3.8-2.4 3.8 2.4-1-4.4 3.3-3-4.4-.2-1.7-4.2-1.7 4.2-4.5.3 3.4 2.9-1 4.4Zm14.7 0 3.8-2.4L115 91l-1.1-4.4 3.4-3-4.5-.2-1.7-4.2-1.7 4.2-4.5.3 3.5 2.9-1.1 4.4Zm-44.2 16.1 3.9-2.3 3.8 2.3-1-4.4 3.4-2.9-4.5-.3-1.7-4.2-1.8 4.2-4.4.3 3.3 3-1 4.3Zm0 16.1L67 121l3.8 2.3-1-4.4 3.4-2.9-4.5-.3-1.7-4.2-1.8 4.2-4.4.3 3.3 3-1 4.3Zm14.7 0 3.9-2.3 3.8 2.3-1-4.4 3.4-2.9-4.5-.3-1.7-4.2-1.8 4.2-4.4.3 3.4 3-1 4.3Zm14.8 0 3.8-2.3 3.8 2.3-1-4.4 3.3-2.9-4.4-.3-1.7-4.2-1.7 4.2-4.5.3 3.4 3-1 4.3Zm14.7 0 3.8-2.3 3.9 2.3-1.1-4.4 3.4-2.9-4.5-.3-1.7-4.2-1.7 4.2-4.5.3 3.5 3-1.1 4.3Zm-29.5-16.1 3.9-2.3 3.8 2.3-1-4.4 3.4-2.9-4.5-.3-1.7-4.2-1.8 4.2-4.4.3 3.4 3-1 4.3Zm14.8 0 3.8-2.3 3.8 2.3-1-4.4 3.3-2.9-4.4-.3-1.7-4.2-1.7 4.2-4.5.3 3.4 3-1 4.3Zm14.7 0 3.8-2.3 3.9 2.3-1.1-4.4 3.4-2.9-4.5-.3-1.7-4.2-1.7 4.2-4.5.3 3.5 3-1.1 4.3Z\" clip-rule=\"evenodd\"/>\n  </g>\n  <g filter=\"url(#b)\">\n    <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M132 197c0 8.5 6.9 15.3 15.3 15.3h92c8.4 0 15.2-6.8 15.2-15.2v-63c0-8.4-6.8-15.2-15.2-15.2h-92c-8.4 0-15.2 6.8-15.2 15.2v63Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n    <g clip-path=\"url(#c)\">\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M165.4 210.8H217v-93.5h-51.5v93.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M216.9 210.8h36.6v-93.5H217v93.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M128.8 210.8h36.6v-93.5h-36.6v93.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#0090C5\" fill-rule=\"evenodd\" d=\"M188 174c-1.9.5-2.7-1-3-2-.1.9-.1 1.4-.9 1.2l-3.5-1.4c-.6-.2-.7.3.2.8 1 .4 1.7 1 1.8 1.3 0 .3-.8.7-1 .9 1.3 0 2.8.2 3.2.3 1 .3 1 .9-.5 1.8 3.8-.4 3.6 1.5 5.5 1.4h3.6c1.7 0 .4-.7 2-1.1l3.3-1c-1-.2-1.4-.5-1.4-.7 0-.2 1.8-.9 2.7-1.2-.3-.1-1-.2-2 0-.9.3-2.5.5-4.5.3-1.9-.3-4 .1-5.5-.6Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#F4B727\" fill-rule=\"evenodd\" d=\"M194.5 177.4c.2.4.8.3 1 0 .2-.3 0-.7-.2-.9.2-.5.3-1.6 0-2 .3-.2.4-.6.2-1-.2-.3-.8-.4-1 0-1.6-.3-5-.2-6.2 0-.2-.4-.8-.3-1 0-.2.4 0 .8.2 1-.3.4-.2 1.5 0 2-.3.2-.4.6-.2.9.2.3.8.4 1 0 1.3.5 4.8.5 6.2 0Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M181.6 174.1c-.8 0-.8 1.3 0 1.3s.8-1.3 0-1.3Z\" clip-rule=\"evenodd\"/>\n      <path stroke=\"#CCC\" stroke-width=\".1\" d=\"M181.6 174.1c-.8 0-.8 1.3 0 1.3s.8-1.3 0-1.3\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M184.9 171.4c-.8 0-.8 1.3 0 1.3s.8-1.3 0-1.3Z\" clip-rule=\"evenodd\"/>\n      <path stroke=\"#CCC\" stroke-width=\".1\" d=\"M184.9 171.4c-.8 0-.8 1.3 0 1.3s.8-1.3 0-1.3\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M198.4 175.7c-.8 0-.8 1.2 0 1.2s.8-1.2 0-1.2Z\" clip-rule=\"evenodd\"/>\n      <path stroke=\"#CCC\" stroke-width=\".1\" d=\"M198.4 175.7c-.8 0-.8 1.2 0 1.2s.8-1.2 0-1.2\"/>\n      <path fill=\"#745F39\" fill-rule=\"evenodd\" d=\"M180.5 171.3c-.5-.2-1.1-.1-1.3.2-.2.3.3.8.8 1 .5.3 1 0 1-.1.2-.2 0-.8-.5-1Zm3.6 5c-.5.1-.9.6-.8 1 0 .3.8.4 1.3.2s.7-.7.6-1c-.1-.3-.4-.4-1-.2Zm15.7-1.3c.5-.2 1.1-.7 1-1-.2-.4-.9-.4-1.4-.2-.5.2-.7.6-.7.8.1.4.5.5 1 .4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M201.3 178.3c0-.3-.2-1-.4-1.2.3 0 .5-.5.2-.7-.2-.2-.5 0-.6 0-.1.2-.1.6.2.7 0 .2.3 1.1 0 1.5a3 3 0 0 1 1.4.4c0 .3.3.5.4.5.2 0 .4-.2.4-.5s-.5-.4-.7-.2c0-.2-.7-.4-1-.5Z\" clip-rule=\"evenodd\"/>\n      <path stroke=\"#000\" stroke-width=\".1\" d=\"M201.3 178.3c0-.3-.2-1-.4-1.2.3 0 .5-.5.2-.7-.2-.2-.5 0-.6 0-.1.2-.1.6.2.7 0 .2.3 1.1 0 1.5a3 3 0 0 1 1.4.4c0 .3.3.5.4.5.2 0 .4-.2.4-.5s-.5-.4-.7-.2c0-.2-.7-.4-1-.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M207 173.5c0-.2-.4-.9-.7-1 .3-.1.3-.6 0-.7-.3 0-.5.1-.6.3 0 .1.1.5.4.5.1.2.6 1 .6 1.4a3 3 0 0 1 1.4 0c0 .3.3.4.5.3.1 0 .3-.3.2-.6a.4.4 0 0 0-.7 0l-1-.2Zm3.3-6.3c-.2-.2-.7-.7-.9-.7.2-.3 0-.7-.4-.6-.2 0-.3.3-.3.5 0 .1.3.4.6.2.2.2.7.7.8 1.1.3-.2 1-.5 1.3-.5.2.3.6.2.7 0v-.5a.4.4 0 0 0-.7.3c-.2 0-.9 0-1.1.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M210 168c.2-1 .2-2-.4-2.7-.6-1 0-2.1-.3-2.7a8 8 0 0 1 1.4 1.8c.3-.6 1.1-1.8 1.8-2v1.3c.2.6-.5 1.5-1 2s-1.1.7-1.3 2.4l-.2-.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M210.1 167.8c.3-2.3-.3-5.2.9-6.1.8 1.3.8 3 .3 3.6-.5.7-1.1 1.7-1.2 2.5Zm-4.1 6.6c.7-.6 1.3-1.1 1.2-2.4-.3-1.7.2-3.6 1.7-4 .1.5.2 1.8.1 2.3.7-.7 1.1-1.4 2.4-1.5-1 1-1.3 3.2-2.5 3.7a7 7 0 0 0-2.7 2.3l-.3-.4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M206.5 174.2c.5-.6.8-1 1.1-2.4.3-1.6 1.2-3.8 2.6-4.4.2 1.2-.2 2.8-1.1 4l-2.6 2.8Zm-5.9 4.4c1-.7 1.3-1.2 1.6-1.9.6-1.8 2.4-2.5 2.5-3.2.2.9 0 2-.2 2.4.5-.4 1.5-.8 2.2-.9-.4.9 0 2-1.6 2.4-1.5.5-2.2-.2-4.6 1.4v-.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M200.6 178.6c1-.7 2.2-1.9 2.9-2.7.6-.9 2-2 3.3-2a6 6 0 0 1-3.8 3.6c-1.7.6-1.8.8-2.4 1.1Zm-6.1 1.3c1.5-.3 2-2.5 5-2.1-.4.4-.8 1.4-1.5 1.8.8.1 1.9.4 2.7.8-.9-.1-2.9 1.5-4.5.7s-1.4-1-1.7-1.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M195.2 180.6c1.3.8 4.7-.3 5.9-2.2-1.5-.2-3.1.5-4 1a4 4 0 0 1-2.6.2c-2-.3-4.3-.3-6.6 1.3-.2.1.2.5.4.4 2-1.5 4.6-2.1 7-.7Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M181.5 178.4c0-.6-.1-1-.3-1.2-.1-.3-.2-1 .1-1 .3 0 .5.5.4.8-.2.4 0 1.3.2 1.6l-.4-.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M181.3 177c-.4-.2-.5 0-.3.3.2.4.7.5.8.2.3-.4.1-.7 0-.6h-.5Zm.1 1.5c-.5.1-1 .2-1.2 0-.4 0-1 .1-1 .4.1.3.6.4 1 .1.3-.2 1.2-.3 1.6-.2l-.4-.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M180 178.7c-.2-.3 0-.5.2-.4.5 0 .6.6.4.8-.3.3-.6.2-.5 0l-.1-.4Zm-4.3-5.2c.1-.5.2-1 .1-1.3 0-.3 0-1 .3-1 .3.1.4.6.1 1-.2.3-.2 1.2 0 1.6h-.2l-.3-.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M176 172c-.4-.2-.6 0-.5.3.1.4.6.6.8.3.3-.3.2-.6 0-.5h-.4Zm.2 2a3 3 0 0 0-1.8-.1c-.4.2-.9 0-.9-.3s.7-.3 1-.1h1.2l.3.2.2.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M174.3 173.6c-.2-.4 0-.5.3-.4.4.1.5.6.2.8-.3.3-.6.2-.5 0v-.4Zm-1.9-5.6c.1-.7.5-1.5.9-1.8.3-.2.4-.7.2-.9-.2-.1-.6.4-.6.8l-.7 1.1v.4l.2.4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M173 166c-.2-.4-.4-.3-.4 0-.1.4.2.8.6.7.4-.2.4-.5.2-.5a.7.7 0 0 1-.4-.2Zm-1 1.2c-.4-.2-.8-.4-1-.7-.2-.2-.8-.6-1-.3 0 .2.3.6.7.7a3 3 0 0 1 1.5 1v-.3l-.2-.4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M170.8 166.5c0-.4.2-.4.4-.1.3.3.1.8-.2.8-.5 0-.6-.2-.5-.3.2-.1.3-.3.3-.4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M172.2 168.8c0-.8-.3-1.8-.5-2.4-.1-.6-.5-.5-.6-1 0-.2-.1-.3-.6-.5s-.7-.3-.7-.6.2-.3.6-.2c.4.2.5 0 .3-.3-.3-.3-.4-.5-.4-.9 0-.3.3-.4.5-.1.2.3.4.2.6 0 .2-.3-.1-.6.1-1.2.2-.3.4-.1.5 0 .2.3.6-.1.7-.2.2 0 .3.2 0 .4-.2.2 0 .4-.3.6-.3.2 0 .4.2.3h.5c0 .4-.4.8-.9 1-.3.2 0 .3.6.3.4 0 .2.3-.3.5-.3.2-.5.5-.3.6.2.2.2.3-.1.6-.3.4.4 2.2.4 3v.2h-.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M177 174.1c-1.4-.7-2-1.3-2-2s0-1 .2-1.3c.2-.3.1-.6-.2-.3-.3.2-.5.2-.5-.3 0-.4.3-1 .1-1.3-.2-.3-.5-.3-.6.1 0 .2-.2.4-.4.4s-.2-.4-.1-.7c0-.3-.2-.5-.4-.3-.1.3-.4.5-.6.2-.1-.4-.5-.2-.4 0-.3 0-.4.2-.3.4.2.2.3.4 0 .3-.2 0-.6-.2-.5.1 0 .4.8.6 1.3.7.4.1.5.3.2.4h-.6c-.4 0-.4.2-.2.5.3.2 1 .3 1.3.4.5 0 .5.4.3.4s-.6-.2-.7 0c0 .2.6.5 1 .4.4 0 .5 0 .6.2a7 7 0 0 0 2.3 2h.3l-.2-.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"m182.2 179.2-1.6-1.2c-.5-.4-1-.2-1.3 0-.5 0-.5-.2-.4-.3 0-.2 0-.3-.4-.2-.5.2-1 .2-1.5 0-.5-.4-.4-.7 0-.6.3 0 .6 0 .9-.2.3-.1.1-.4-.4-.4-.6 0-1-.2-1.3-.5-.3-.3 0-.4.2-.3h.6c.2 0 .2-.3 0-.4-.2 0-.4 0-.7-.3-.3-.3 0-.4.3-.4.4 0 .2-.3.2-.7 0-.5.3-.3.5.1s.4.3.4 0c0-.5.1-.5.3-.3.2.2.2.6.2 1 0 .5.3.8.4.2.1-.5.4-.4.6 0 .3.2.2.7.3 1.4.2.5.5.3.6.1 0-.1.2-.3.2.3 0 .7.9 2 2.2 2.3l-.3.4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M194.7 181.1c-2-1.4-4.4-2.1-6.3-1.6-.5.1-.8.3-1-.2-.3-.4-.5-.2-.6-.1 0 .1-.4.1-.7-.3-.2-.5-.5-.7-.8-.6-.3 0-.4.2-.3.5.2.3 0 .5-.2.2-.3-.2-.7-.6-1-.6-.3 0-.6 0-.4.3.2.3.2.7-.2.4-.4-.3-.6-.4-1-.4-.5 0-.1.5-.6.6l-.6.4c-.2.2-.2.6.8.4 1-.1 1 0 1 .2-.1.3-.1.7.5.6.7-.2 1-.7 1.3-.5.2.2 0 .4-.2.6-.2.2.3.4.7.2.3-.2.7-.7.9-.6.2 0 0 .4 0 .5-.2.2 0 .5.3.3.4-.2.7-1.3 1.9-1.2.4-.6 3.2-1 5.6 1l.6.1c.2 0 .5 0 .3-.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M191.6 181.3c.5.4 1.2.7 1.3 1.1l-.4.5-1.3-1.2.4-.4Zm-1.4-.8c-.5.6-1.6.8-2 1.8h.8c0-.6 1.3-1.2 1.7-1.6a1 1 0 0 1-.5-.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M190.7 180.7c-.5 0-.7-.3-.7-1 0-.6.1-.7.7-.8.2 0 .2.5.2.9s0 1-.2.9Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M192.2 180.5c.5.6 1.7.8 2 1.8h-.8c0-.5-1-1-1.5-1.5v-.1l.3-.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M191.9 180.7c-.2 1-1.4 1.5-2 2.2l-.4-.5c.2-.6 1.5-1 1.9-1.7h.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M191.5 180.7c.6 0 1-.2 1-1 0-.6-.2-.8-1-.8.3 0 .2.5.2.9s.1 1-.2.9Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M191.4 180.7c-.4.7-1.7 1.1-1.9 1.7l-.5-.2c0-.5 1.3-1 1.7-1.5h.7Zm.2.6c.5.4 1.2.7 1.3 1.1l.5-.2c0-.4-1-1-1.5-1.4l-.3.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M191.5 180.7c.3 0 .2-.5.2-1 0-.3 0-.8-.2-.8h-.8c.2 0 .2.5.2.9s0 1-.2.9h.8Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M178 165.3c-.4.3-1 0-1.4-.3-.2-.3-.6-.8 0-1.4.5-.4 1-.1 1.4.4.3.6.3 1 0 1.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M176 163.9c-.4-.3-.4-.5-.2-.7.2-.2.4-.2.6.1.3.3.3.6.2.7-.1.2-.3.2-.7-.1Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M175.9 164.3c-.3-.1-.4-.3-.3-.5 0-.2.2-.2.5 0 .3 0 .4.2.3.3 0 .2-.2.2-.5.2Zm1.1-1.3c0-.4 0-.6.4-.5.3 0 .3.2.3.5-.1.4-.2.6-.4.6s-.4-.2-.4-.6Zm-1-1.1.5.8-.2.2-.5-1h.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M175.8 161.4c-.4 0-.4.7 0 .7.5 0 .5-.7 0-.7Zm.6 2.1c-.3-.4-.3-.6 0-.8.3-.2.5 0 .6.3.2.4.2.7 0 .8-.2.1-.4 0-.6-.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M180.8 169.2c-2 0-3.7-1.2-3.9-2.5 0-1.3 1.1-2 2.3-1.6 1.9.9 1.4 2.9 2.5 3l-.9 1.1Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M186.2 169.6c-1-1-3.1-2.7-4.6-1.8-1.4.9-1 2-.5 2.4.5.7 3.1 1 5 .5l.1-1.1Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M193.2 170.1c-2.9-1.1-4.8-2.2-6.4-1.2-1.6.9-1 2.3-.1 3 1 .6 3.8.3 5 0 1.4-.3 1.7-1 1.5-1.8Zm4.4 1.4c1.5 0 1.5-.4 1.9-1 .4-.5 1.7-1.3 2.6-.5 1 .8 1.2 1.9 0 2.6-1.2.6-2 .8-3.3.4l-2.3-.7c.6-.2 1-.5 1-.8Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M193.5 174.8c0-3 4.5-1.2 4.2-4.1-.1-1.3-2.5-1.2-4.4-.7-1.8.4-2 2.5-2 4.9l1 .1c.8 0 1.2 0 1.2-.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M202.6 169.8c-.6.3-.8.7-.6 1 .2.4.9.3 1.3 0 .5-.2.7-.8.5-1-.2-.4-.8-.3-1.2 0Zm2.6-1.2-.7.7-.2-.2.7-.7.2.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M205.6 168.2c0-.4-.8-.2-.6.2 0 .5.8.3.6-.2Zm-2.3.8c.2-.4.4-.6.7-.4.2.2.2.4 0 .7-.3.3-.5.5-.7.3-.2 0-.2-.3 0-.7Zm.9.7c.5 0 .7 0 .7.3s-.2.4-.5.4c-.4 0-.6 0-.7-.2 0-.2 0-.4.5-.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M203.8 169.2c.4-.4.6-.3.8 0 .2.2 0 .4-.3.6-.4.1-.6.2-.7 0-.1-.1 0-.3.2-.6Zm-20-2c-.6.5-.8 1.3-.5 1.8.4.5 1 .3 1.3 0 .3-.4.2-1.3 0-1.6l-.8-.2Zm.7-1.2c-.5 0-.5.7 0 .7.4 0 .4-.7 0-.7Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M184 166.3c-.5 0-.5.7 0 .7s.5-.7 0-.7Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M184.7 166.4c-.4 0-.4.8 0 .8.5 0 .5-.8 0-.8Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M184.4 167.5c.3.3 1 0 1-.5-.2 0-.6.2-.9 0v.5Zm-.3-.5c-.3 0-.5-.2-.6-.5-.4.5 0 1.1.6.9v-.4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M184.2 167.6c-.3-.1-.3-.5-.3-.6.1-.4 1-.2.8.2 0 .4-.3.5-.5.4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#9D5925\" fill-rule=\"evenodd\" d=\"M183.3 151.5c-.3-.3-.3-.6.4-1 .5-.4 1-1 1-1.5s.1-.5.3 0v.9c.3-.4.4-1.2.4-1.5 0-.3.2-.6.3 0v.9l.6-.3.2-.9c0-.5.1-.8.2-.3l.1 1 .5-.7c.2-.3.3-.7.4 0v.5c.8-.5 2 .4 2.7.3.6-.1.5 0 .3.2l-.3.2c.7.3 1.2.8 1.5 1.4.4-1.3-.6-2.2-1.4-2.3-.9-.1-1.9-.2-1.4-1.3.3-.5.6-.9 1.6-1 .2-.4.8-.6 2-.5 1.8.1 3.5.4 5 1.3 1.4.8 2.3 1.2 3.1.9l-.4.7c2.5 1.6 4.4 3.7 5 5.8.4 1.2.7 2.4 1.8 2.6l-.6.2c.4 1.4.3 3.6 0 4.8-.3 1.2 0 3.3-.4 4.8-.4 1.3-.5.4-.5-.2 0-1.7-.4-2.2-.4-5.8 0-.4-.2-.9-.5-1.3-.2 2.2.7 3.6.1 6.7-.1 1-.4.2-.5-1.2 0-1.4-.5-2.2-.6-3.5l-.4-1.2c0 1.3.5 3.9.3 5.2 0 1-.4.2-.4-.3 0-1.4-.6-2.2-.7-3.5 0-.3-.3-.8-.7-1.4l.4 2.7c0 .6 0 .9-.3.5-.2-.4-.4-1-.5-2-.1-.8-.7-1.3-1.2-1.7.3.6.7 1.7.8 2.3.2.7 0 .8-.1.5l-.7-1.5c-.2-.6-.7-1.2-1.3-1.4-.5-.3-.6-.3-1.2-.9l1.7 2.4c.3.7.2.8-.1.5l-.8-1c-.6-1-.7-.8-1.2-.9-.4-.1-.8-.3-1.3-1-.1.2-.2.3-.4.3.5 1 .8 2 .9 3l7 4.9c1 .6.2 1-.6 1-.5 0-.8 0-1-.2-.1.5-1 1-1.7.5-.2.4-1 .5-1.5 0-.3.3-.8.2-1 0l-1.5-1.3c.1 1-.3.5-.4 0 0 1.2-.3 1-.6.6-.1 1-.6 1-.8.6l-.4-.6c-.2 1-.6.7-.7.4l-1-1.4c-.1.2-.4-.1-.8-.8l-.4-.5c-.1 1.4-.5 1.3-.9.8-.4.2-1.1.6-1.8.6s-.8-.2-.5-.6c-1-.1-1.8-.3-1.8-.7 0-.3 1.2-1 1.9-1.5-.6-.5-.9-1-.8-1.1.2-.2.6 0 1 .2-.5-.7-1.3-2-1.1-2.3l-.4-.5c-.3.2-.6.2-.6-.2.1-.5-.5-1.4-.5-2.2 0-.8.5-1.2.7-2-.2 0-.2-.1-.2-.3.1-.4.7-1 1-1.5-.3 0-.4 0-.2-.3.2-.2.3-.6.4-1-.1.1-.2 0-.2 0 0-.3-.1-.4-.3-.4-.4-.1-3-.2-3.6-.7Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#F1AF7E\" fill-rule=\"evenodd\" d=\"M183.2 151.4c-.3 0-.6.2-.4.5-1 .5-1 1.6-.6 2.2.4.5 1.3.5 1.5.4-.5-.1-.7-1.2-.4-1.5.2-.3.7-.8 1.8.4.4-.4.7-.7 1-.7.5 0 1-.4.7-.8-.3-.4-1.8.2-2.3-.2-.5-.3-1 0-1.3-.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#F4B727\" fill-rule=\"evenodd\" d=\"M194.4 167.9c.1.5-.8.9-1.3.7-.5-.2-1 0-1 .7 0 .4.2.6.6.7 0 .3.3.9.8.9s.8-.4.8-.9c.7.2 1.6-.5 2.3 0 .2.4.7.6 1.3.2.7-.3.4-1.2-.2-1.1-1 0-1.7-.6-2.4-1.6-.1.9-.5 1.1-1 .4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M192.7 171.4c-.8-.3-.6-1.2 0-1.3.6-.2.6.2.6.5 0 .2-.8.3-.6.8Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M192.7 171.4c-.8-.3-.6-1.2 0-1.3.6-.2.6.2.6.5 0 .2-.8.3-.6.8Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M191.4 170.2c-.6-.5-.1-1.3.5-1.3s.5.6.3.8c-.2.1-1-.2-.8.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M191.4 170.2c-.6-.5-.1-1.3.5-1.3s.5.6.3.8c-.2.1-1-.2-.8.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M197.9 171.2c.9-.1 1-.8.7-1.2-.2-.4-.6-.3-.7-.2-.2.1-.3.5 0 .7.2.1.2.4 0 .7Z\" clip-rule=\"evenodd\"/>\n      <path stroke=\"#CCC\" stroke-width=\".1\" d=\"M197.9 171.2c.9-.1 1-.8.7-1.2-.2-.4-.6-.3-.7-.2-.2.1-.3.5 0 .7.2.1.2.4 0 .7Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#F4B727\" fill-rule=\"evenodd\" d=\"m186.9 164.1 2.7.8c-.3.1-.7.2-1 .5-.8-.1-2-.4-2.7-.4-.4.4-.6.4-.7.2l-.9-.5-.4.1c-.3.3-.4.3-.6.2-.2.3-.3.4-.7.2-.3-.3-.5-.9-.5-1.1 0-.3.2-.4.4-.4.1-.4.4-.6.7-.6 0-.3.4-.6.9-.5.6 0 2-.3 2.4.1.2.3.8 1 .4 1.4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M183.9 164.8c.2.3.6.6 1.2.3l-.8-.4-.4.1Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M183.9 164.8c.2.3.6.6 1.2.3l-.8-.4-.4.1Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M183.4 165c0 .3.6.5 1.1.3a.8.8 0 0 1-.6-.5c-.1.1-.4.3-.5.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M183.4 165c0 .3.6.5 1.1.3a.8.8 0 0 1-.6-.5c-.1.1-.4.3-.5.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M183 165.3c0 .2.5.3.8 0-.1 0-.4-.1-.4-.3l-.4.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M183 165.3c0 .2.5.3.8 0-.1 0-.4-.1-.4-.3l-.4.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M184.9 162.3c-1 0-1.2.7-1.1 1.3 0 .3.3.4.5.3.2 0 .4-.2.3-.5-.1-.4-.1-.8.3-1Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M184.9 162.3c-1 0-1.2.7-1.1 1.3 0 .3.3.4.5.3.2 0 .4-.2.3-.5-.1-.4-.1-.8.3-1Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#F4B727\" fill-rule=\"evenodd\" d=\"M181.8 149.2c.3.3.3 1.2 0 1.5 0-.3 0-.8-.2-1l.2-.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#508A33\" fill-rule=\"evenodd\" d=\"M182 153.3c-1.8.8-2.2-.3-2.3-.7 0-.4 0-.8-.2-1.2-.2-.6-.2-1 .4-1.3a11 11 0 0 0 1.5-1c.3-.3.6-.5.4.1 0 .3-.3.9-.6 1.2-.3.3-.5.7-.2 1 .2.2 1-.3 1.4-.7 0 .2-.2.6-.6.7-.3.1-1 .3-1 .6.1.4 1 0 1.6.1-.2.2-.5.6-.4 1.3Zm3.2 10.8c.6-.2 1.7-.9 1-2.5-.8-2-3.2-.5-3.8-1.4-.8-1.2-.7-2 1.5-3.6 2-1.5 1.9-2.6 1.2-3.2-.2-.2-.8-.8-1.2-.8-.5 0-.8.6-.7 1 .5.3.8 1.1.2 1.5-1.9 1.4-3.7 2.8-2.9 5.3.7 2 2.3 1.6 2.8 1.6 1 0 1.8 0 1.5.6l-.3.3v.5c.3 0 .4 0 .5.2.2.2 0 .4.2.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M182.1 158.3c-.3.7-.2 1.2.3 2 .6.8 3-.7 3.9 1.3.6 1.6-.5 2.3-1.1 2.5-.1 0 0-.3-.2-.5l-.4-.2v-.5l.2-.3c.3-.6-.6-.6-1.5-.6-2.2 0-2-2.6-1.2-3.7Zm1.1-5.2c.1-.3.4-.5.7-.5.4 0 1 .6 1.2.8.7.6.9 1.6-1 3 1.4-1 .5-3.1-.9-3.3Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#508A33\" fill-rule=\"evenodd\" d=\"M183 165.3c-1.4 1.1-2.5.4-2.8-1.1-.2-1-.4-1.3-1.3-1.9-1.2-.9-.7-2-.4-3 .3-.8 0-1.2-.7-1.5-.6-.3-2-1 0-1s2 2.2 1.7 3c-.4.7-.5 1.3.6 1.7 1.2.5.8 2.1 1.6 2.6h.5c0 .6.3 1.2.8 1.2Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M177 156.8c.2-.1.3-.5 0-.6-.5 0-.5.3-.8.4-.3 0-.4.2 0 .4.1.2 0 .6.4.7.3 0 .4-.3.4-.5-.1 0 0-.3 0-.4Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M177.6 157c.1-.2.2-.5-.1-.6-.5-.2-.5.2-.8.3-.3.1-.4.2 0 .5.1.1 0 .5.4.6.4.1.5-.3.4-.4v-.5Z\" clip-rule=\"evenodd\"/>\n      <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M178 157c.2 0 .3-.4 0-.5-.5-.1-.5.3-.8.3-.3.1-.4.2 0 .5.1.2 0 .5.4.6.4.1.5-.3.4-.4v-.4Z\" clip-rule=\"evenodd\"/>\n    </g>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"126.3\" height=\"94.7\" x=\"56.4\" y=\"76.1\" fill=\"#fff\" rx=\"15.3\"/>\n    </clipPath>\n    <clipPath id=\"c\">\n      <rect width=\"121.1\" height=\"90.8\" x=\"130.5\" y=\"118.7\" fill=\"#fff\" rx=\"14.7\"/>\n    </clipPath>\n    <filter id=\"b\" width=\"133.4\" height=\"102.9\" x=\"122.4\" y=\"112.3\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n      <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n      <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\n      <feOffset dx=\"-3.4\" dy=\"-1.7\"/>\n      <feGaussianBlur stdDeviation=\"2.4\"/>\n      <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n      <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"/>\n      <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2200_48778\"/>\n      <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_2200_48778\" result=\"shape\"/>\n    </filter>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/subjects/language-es-ct.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#000\" d=\"M47.6 75.8a8.8 8.8 0 0 1 8.3-9L266.5 53a8.8 8.8 0 0 1 9.4 9l-5 170.3c-.2 5-4.3 8.8-9.3 8.6l-93-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4l-58.2-63.5-53.5-3.7c-4.6-.3-8.1-4-8.2-8.6l-4-147.7Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.6a8.8 8.8 0 0 1 8.3-9l210.6-13.7a8.8 8.8 0 0 1 9.4 9l-5 170.4c-.2 4.9-4.3 8.7-9.2 8.5l-93.1-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4L108 229.6 54.5 226c-4.5-.3-8.1-4-8.2-8.5l-4-147.8Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M63.5 206.5c0 4.9 3.9 8.8 8.8 8.8h170.9c4.9 0 8.8-4 8.8-8.8V83.2c0-5-4-8.9-8.8-8.9h-171c-4.8 0-8.7 4-8.7 8.9v123.3Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g fill-rule=\"evenodd\" clip-path=\"url(#a)\" clip-rule=\"evenodd\">\n    <path fill=\"gold\" d=\"M84.5 74.8h180.2v15H84.5v-15Z\"/>\n    <path fill=\"#C00\" d=\"M84.5 104.9h180.2v-15H84.5v15Z\"/>\n    <path fill=\"gold\" d=\"M84.5 104.9h180.2v15H84.5v-15Z\"/>\n    <path fill=\"#C00\" d=\"M84.5 134.9h180.2v-15H84.5v15Z\"/>\n    <path fill=\"gold\" d=\"M84.5 134.9h180.2v15H84.5v-15Z\"/>\n    <path fill=\"#C00\" d=\"M84.5 165h180.2v-15H84.5v15Z\"/>\n    <path fill=\"gold\" d=\"M84.5 165h180.2v15H84.5v-15Z\"/>\n    <path fill=\"#C00\" d=\"M84.5 195h180.2v-15H84.5v15Z\"/>\n    <path fill=\"gold\" d=\"M84.5 195h180.2v15H84.5v-15ZM158.8 74.8h180.3v15H158.8v-15Z\"/>\n    <path fill=\"#C00\" d=\"M158.8 104.9h180.3v-15H158.8v15Z\"/>\n    <path fill=\"gold\" d=\"M158.8 104.9h180.3v15H158.8v-15Z\"/>\n    <path fill=\"#C00\" d=\"M158.8 134.9h180.3v-15H158.8v15Z\"/>\n    <path fill=\"gold\" d=\"M158.8 134.9h180.3v15H158.8v-15Z\"/>\n    <path fill=\"#C00\" d=\"M158.8 165h180.3v-15H158.8v15Z\"/>\n    <path fill=\"gold\" d=\"M158.8 165h180.3v15H158.8v-15Z\"/>\n    <path fill=\"#C00\" d=\"M158.8 195h180.3v-15H158.8v15Z\"/>\n    <path fill=\"gold\" d=\"M158.8 195h180.3v15H158.8v-15ZM9 74.8h180.3v15H9v-15Z\"/>\n    <path fill=\"#C00\" d=\"M9 104.9h180.3v-15H9v15Z\"/>\n    <path fill=\"gold\" d=\"M9 104.9h180.3v15H9v-15Z\"/>\n    <path fill=\"#C00\" d=\"M9 134.9h180.3v-15H9v15Z\"/>\n    <path fill=\"gold\" d=\"M9 134.9h180.3v15H9v-15Z\"/>\n    <path fill=\"#C00\" d=\"M9 165h180.3v-15H9v15Z\"/>\n    <path fill=\"gold\" d=\"M9 165h180.3v15H9v-15Z\"/>\n    <path fill=\"#C00\" d=\"M9 195h180.3v-15H9v15Z\"/>\n    <path fill=\"gold\" d=\"M9 195h180.3v15H9v-15ZM84.5 74.8h180.2v15H84.5v-15Z\"/>\n    <path fill=\"#C00\" d=\"M84.5 104.9h180.2v-15H84.5v15Z\"/>\n    <path fill=\"gold\" d=\"M84.5 104.9h180.2v15H84.5v-15Z\"/>\n    <path fill=\"#C00\" d=\"M84.5 134.9h180.2v-15H84.5v15Z\"/>\n    <path fill=\"gold\" d=\"M84.5 134.9h180.2v15H84.5v-15Z\"/>\n    <path fill=\"#C00\" d=\"M84.5 165h180.2v-15H84.5v15Z\"/>\n    <path fill=\"gold\" d=\"M84.5 165h180.2v15H84.5v-15Z\"/>\n    <path fill=\"#C00\" d=\"M84.5 195h180.2v-15H84.5v15Z\"/>\n    <path fill=\"gold\" d=\"M84.5 195h180.2v15H84.5v-15Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"185.9\" height=\"135.7\" x=\"62.6\" y=\"74.4\" fill=\"#fff\" rx=\"8.8\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-es.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#000\" d=\"M47.6 75.8a8.8 8.8 0 0 1 8.3-9L266.5 53a8.8 8.8 0 0 1 9.4 9l-5 170.3c-.2 5-4.3 8.8-9.3 8.6l-93-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4l-58.2-63.5-53.5-3.7c-4.6-.3-8.1-4-8.2-8.6l-4-147.7Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.6a8.8 8.8 0 0 1 8.3-9l210.6-13.7a8.8 8.8 0 0 1 9.4 9l-5 170.4c-.2 4.9-4.3 8.7-9.2 8.5l-93.1-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4L108 229.6 54.5 226c-4.5-.3-8.1-4-8.2-8.5l-4-147.8Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M62.6 206.5c0 4.9 4 8.8 8.8 8.8h171c4.8 0 8.7-4 8.7-8.8V83.2c0-5-4-8.9-8.8-8.9h-171c-4.8 0-8.7 4-8.7 8.9v123.3Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#EF3340\" d=\"M247.9 72.9H63.1v34.6H248V72.9Z\"/>\n    <path fill=\"#FFD100\" d=\"M247.9 107.5H63.1v69.3H248v-69.3Z\"/>\n    <path fill=\"#EF3340\" d=\"M247.9 176.8H63.1v34.6H248v-34.6Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"184.8\" height=\"138.6\" x=\"63.1\" y=\"72.9\" fill=\"#fff\" rx=\"8.8\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-fr.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#000\" d=\"M47.6 75.8a8.8 8.8 0 0 1 8.3-9L266.5 53a8.8 8.8 0 0 1 9.4 9l-5 170.3c-.2 5-4.3 8.8-9.3 8.6l-93-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4l-58.2-63.5-53.5-3.7c-4.6-.3-8.1-4-8.2-8.6l-4-147.7Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.6a8.8 8.8 0 0 1 8.3-9l210.6-13.7a8.8 8.8 0 0 1 9.4 9l-5 170.4c-.2 4.9-4.3 8.7-9.2 8.5l-93.1-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4L108 229.6 54.5 226c-4.5-.3-8.1-4-8.2-8.5l-4-147.8Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M62.6 206.5c0 4.9 4 8.8 8.8 8.8h171c4.8 0 8.7-4 8.7-8.8V83.2c0-5-4-8.9-8.8-8.9h-171c-4.8 0-8.7 4-8.7 8.9v123.3Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#E53935\" d=\"M247.7 210.3V74.7H186v135.6h61.6Z\"/>\n    <path fill=\"#F5F5F5\" d=\"M186.1 210.3V74.7h-61.5v135.6H186Z\"/>\n    <path fill=\"#0D47A1\" d=\"M124.5 210.3V74.7H62.9v135.6h61.6Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"184.8\" height=\"135.6\" x=\"62.9\" y=\"74.7\" fill=\"#fff\" rx=\"8.8\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-it.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#000\" d=\"M47.6 75.8a8.8 8.8 0 0 1 8.3-9L266.5 53a8.8 8.8 0 0 1 9.4 9l-5 170.3c-.2 5-4.3 8.8-9.3 8.6l-93-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4l-58.2-63.5-53.5-3.7c-4.6-.3-8.1-4-8.2-8.6l-4-147.7Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.6a8.8 8.8 0 0 1 8.3-9l210.6-13.7a8.8 8.8 0 0 1 9.4 9l-5 170.4c-.2 4.9-4.3 8.7-9.2 8.5l-93.1-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4L108 229.6 54.5 226c-4.5-.3-8.1-4-8.2-8.5l-4-147.8Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M62.6 206.5c0 4.9 4 8.8 8.8 8.8h171c4.8 0 8.7-4 8.7-8.8V83.2c0-5-4-8.9-8.8-8.9h-171c-4.8 0-8.7 4-8.7 8.9v123.3Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#E53935\" d=\"M247.3 212.1V73.5h-61.5v138.6h61.5Z\"/>\n    <path fill=\"#F5F5F5\" d=\"M185.8 212.1V73.5h-61.6v138.6h61.6Z\"/>\n    <path fill=\"#388E3C\" d=\"M124.1 212.1V73.5H62.6v138.6H124Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"184.8\" height=\"138.6\" x=\"62.6\" y=\"73.5\" fill=\"#fff\" rx=\"8.8\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-nahua.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#000\" d=\"M47.6 75.8a8.8 8.8 0 0 1 8.3-9L266.5 53a8.8 8.8 0 0 1 9.4 9l-5 170.3c-.2 5-4.3 8.8-9.3 8.6l-93-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4l-58.2-63.5-53.5-3.7c-4.6-.3-8.1-4-8.2-8.6l-4-147.7Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.6a8.8 8.8 0 0 1 8.3-9l210.6-13.7a8.8 8.8 0 0 1 9.4 9l-5 170.4c-.2 4.9-4.3 8.7-9.2 8.5l-93.1-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4L108 229.6 54.5 226c-4.5-.3-8.1-4-8.2-8.5l-4-147.8Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M65.2 206.5c0 4.9 4 8.8 8.8 8.8h171c4.8 0 8.8-4 8.8-8.8V83.2c0-5-4-8.9-8.8-8.9H74c-4.8 0-8.8 4-8.8 8.9v123.3Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <rect width=\"184.8\" height=\"138.6\" x=\"65\" y=\"72.7\" fill=\"#298321\" rx=\"8.8\"/>\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#FFE278\" d=\"M142.2 174.8a16 16 0 0 1 1.4-10.7 16 16 0 0 1-9.2 5.7l-10.8 2.2 3.8-10.3a16 16 0 0 1 7-8.4 16 16 0 0 1-10.9-.1l-10.3-3.9 8.8-6.7a16 16 0 0 1 10.3-3.3 16 16 0 0 1-9-6l-6.7-8.7 11-1a16 16 0 0 1 10.4 2.8 16 16 0 0 1-4.4-9.9l-1-11 9.8 5a16 16 0 0 1 7.4 8 16 16 0 0 1 1.5-10.7l5.2-9.8 5.5 9.6a16 16 0 0 1 2 10.6 16 16 0 0 1 7-8.2l9.5-5.5-.4 11a16 16 0 0 1-4 10 16.1 16.1 0 0 1 10.3-3.2l11 .5-6.2 9.1a16 16 0 0 1-8.8 6.3 16.2 16.2 0 0 1 10.5 2.9l9 6.3-10.2 4.3a15.8 15.8 0 0 1-10.8.6 16 16 0 0 1 7.3 8l4.3 10.2-10.9-1.8a16 16 0 0 1-9.4-5.3 16 16 0 0 1 1.8 10.7l-1.8 10.9-8.2-7.3a16 16 0 0 1-5.2-9.6H157.2a16 16 0 0 1-4.8 9.8l-7.8 7.7-2.4-10.8Z\"/>\n    <path fill=\"#FF4646\" d=\"m156.5 102.4 3.7 6.2a14 14 0 0 1 1.2 11.2c1.4.2 2.7.6 4 1a14 14 0 0 1 6.6-9l6.3-3.6-.3 7.2c-.1 4-2 7.6-4.9 10.1l2.8 3a13.9 13.9 0 0 1 10.4-4l7.3.3-4.1 6a13.9 13.9 0 0 1-9.6 5.8c.3 1.3.6 2.7.7 4a13.9 13.9 0 0 1 11 2.2l6 4.1-6.7 2.9a13.9 13.9 0 0 1-11.2-.2c-.4 1.3-1 2.6-1.6 3.8a14 14 0 0 1 8.2 7.7l2.8 6.7-7.2-1.2a14 14 0 0 1-9.4-6.1c-1 .9-2.1 1.7-3.3 2.3 2.4 3.1 3.4 7 2.8 11l-1.3 7.1-5.4-4.8a14 14 0 0 1-4.6-10.3 23.3 23.3 0 0 1-5.5.2 14 14 0 0 1-4.2 10.4l-5.2 5-1.5-7a14 14 0 0 1 2.2-11c-1.2-.7-2.3-1.4-3.4-2.3-2 3.4-5.3 5.8-9.1 6.6l-7.1 1.5 2.5-6.8a14 14 0 0 1 7.8-8.1c-.7-1.2-1.2-2.4-1.7-3.7a14 14 0 0 1-11.2.6l-6.8-2.5 5.7-4.4a13.9 13.9 0 0 1 11-2.7c0-1.3.2-2.7.5-4-3.8-.3-7.4-2.3-9.8-5.5l-4.4-5.7 7.2-.7h1.3c3.5 0 6.8 1.3 9.4 3.6.8-1 1.6-2.1 2.6-3-3-2.4-5-6-5.4-10l-.5-7.2 6.4 3.3c3.5 1.9 6 5 7 8.8 1.3-.5 2.6-1 4-1.2a14 14 0 0 1 .7-11.2l3.3-6.4m-.1-8.7-3.6 6.7-3.3 6.4c-.9 1.6-1.4 3.3-1.8 5a18 18 0 0 0-4.3-3l-6.4-3.4-6.7-3.5.6 7.6.6 7.2c.1 1.8.5 3.5 1.2 5.2a18.2 18.2 0 0 0-5.3-.4l-7.2.7-7.5.6 4.5 6 4.4 5.9a18 18 0 0 0 3.8 3.7 18 18 0 0 0-4.7 2.6l-5.7 4.4-6 4.6 7 2.6 6.8 2.6c1.7.6 3.4 1 5.2 1-1 1.5-2 3-2.5 4.8l-2.5 6.8-2.6 7 7.4-1.5 7-1.5a18 18 0 0 0 5-1.8 18 18 0 0 0 .4 5.3l1.5 7 1.6 7.4 5.4-5.2 5.2-5a18 18 0 0 0 4.2-6.4c1 2.3 2.5 4.4 4.5 6.1l5.4 4.8 5.6 5 1.3-7.4 1.2-7.1c.3-1.8.3-3.6.1-5.3a18 18 0 0 0 5 1.6l7.2 1.2 7.5 1.2-3-7-2.7-6.7c-.7-1.6-1.7-3.2-2.8-4.5a18 18 0 0 0 5.2-1.4l6.6-2.8 7-3-6.2-4.3-6-4.1a18 18 0 0 0-4.7-2.4 18 18 0 0 0 3.6-4l4.1-5.9 4.3-6.2-7.5-.3-7.3-.4a18.3 18.3 0 0 0-5.3.6 18 18 0 0 0 1-5.2l.3-7.3.3-7.5-6.6 3.7-6.2 3.6c-1.6 1-3 2-4.2 3.3a18 18 0 0 0-2-5l-3.6-6.2-3.8-6.5Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <path fill=\"#fff\" d=\"M109 93.7h97.2v96H109z\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-ru.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#000\" d=\"M47.6 75.8a8.8 8.8 0 0 1 8.3-9L266.5 53a8.8 8.8 0 0 1 9.4 9l-5 170.3c-.2 5-4.3 8.8-9.3 8.6l-93-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4l-58.2-63.5-53.5-3.7c-4.6-.3-8.1-4-8.2-8.6l-4-147.7Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.6a8.8 8.8 0 0 1 8.3-9l210.6-13.7a8.8 8.8 0 0 1 9.4 9l-5 170.4c-.2 4.9-4.3 8.7-9.2 8.5l-93.1-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4L108 229.6 54.5 226c-4.5-.3-8.1-4-8.2-8.5l-4-147.8Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M62.6 206.5c0 4.9 4 8.8 8.8 8.8h171c4.8 0 8.7-4 8.7-8.8V83.2c0-5-4-8.9-8.8-8.9h-171c-4.8 0-8.7 4-8.7 8.9v123.3Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#fff\" d=\"M247.4 72.7H62.8v138.6h184.6V72.7Z\"/>\n    <path fill=\"#E30A17\" d=\"M247.4 139.7H62.8v71.6h184.6v-71.6Z\"/>\n    <path fill=\"#0057B8\" d=\"M247.5 118.3H62.8v46.6h184.7v-46.6Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"184.8\" height=\"138.6\" x=\"62.8\" y=\"72.7\" fill=\"#fff\" rx=\"8.8\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-tur.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#000\" d=\"M47.6 75.8a8.8 8.8 0 0 1 8.3-9L266.5 53a8.8 8.8 0 0 1 9.4 9l-5 170.3c-.2 5-4.3 8.8-9.3 8.6l-93-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4l-58.2-63.5-53.5-3.7c-4.6-.3-8.1-4-8.2-8.6l-4-147.7Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.6a8.8 8.8 0 0 1 8.3-9l210.6-13.7a8.8 8.8 0 0 1 9.4 9l-5 170.4c-.2 4.9-4.3 8.7-9.2 8.5l-93.1-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4L108 229.6 54.5 226c-4.5-.3-8.1-4-8.2-8.5l-4-147.8Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M63.5 206.5c0 4.9 3.9 8.8 8.8 8.8h170.9c4.9 0 8.8-4 8.8-8.8V83.2c0-5-4-8.9-8.8-8.9h-171c-4.8 0-8.7 4-8.7 8.9v123.3Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g fill-rule=\"evenodd\" clip-path=\"url(#a)\" clip-rule=\"evenodd\">\n    <path fill=\"#E30A17\" d=\"M63.6 72.9h184.8v138.5H63.6V73Z\"/>\n    <path fill=\"#fff\" d=\"M181 144.3A35 35 0 0 1 146 179a35 35 0 0 1-35.3-34.6 34.9 34.9 0 0 1 35.3-34.6 35 35 0 0 1 35.2 34.6Z\"/>\n    <path fill=\"#E30A17\" d=\"M182.8 144.3a27.9 27.9 0 0 1-28.1 27.7 28 28 0 0 1-28.2-27.7 27.9 27.9 0 0 1 28.2-27.7 28 28 0 0 1 28.2 27.7Z\"/>\n    <path fill=\"#fff\" d=\"m188 128.1-.4 12.8-11.9 3.3 11.8 4.1-.3 11.8 7.7-9.2 11.6 4-6.7-9.8 8.1-9.8-12.5 3.5-7.5-10.7Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"184.8\" height=\"138.6\" x=\"63.6\" y=\"72.9\" fill=\"#fff\" rx=\"8.8\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-ukr.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <path fill=\"#000\" d=\"M47.6 75.8a8.8 8.8 0 0 1 8.3-9L266.5 53a8.8 8.8 0 0 1 9.4 9l-5 170.3c-.2 5-4.3 8.8-9.3 8.6l-93-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4l-58.2-63.5-53.5-3.7c-4.6-.3-8.1-4-8.2-8.6l-4-147.7Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 69.6a8.8 8.8 0 0 1 8.3-9l210.6-13.7a8.8 8.8 0 0 1 9.4 9l-5 170.4c-.2 4.9-4.3 8.7-9.2 8.5l-93.1-4.3 6 61.2c.1 1.7-2 2.6-3.1 1.4L108 229.6 54.5 226c-4.5-.3-8.1-4-8.2-8.5l-4-147.8Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M63.5 206.5c0 4.9 3.9 8.8 8.8 8.8h170.9c4.9 0 8.8-4 8.8-8.8V83.2c0-5-4-8.9-8.8-8.9h-171c-4.8 0-8.7 4-8.7 8.9v123.3Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g fill-rule=\"evenodd\" clip-path=\"url(#a)\" clip-rule=\"evenodd\">\n    <path fill=\"gold\" d=\"M63.5 72.5h184.7v138.6H63.5V72.5Z\"/>\n    <path fill=\"#0057B8\" d=\"M63.5 72.5h184.7v69.3H63.5V72.5Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"184.8\" height=\"138.6\" x=\"63.5\" y=\"72.5\" fill=\"#fff\" rx=\"8.8\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/language-pt.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#000\" d=\"M47.62 75.77a8.81 8.81 0 0 1 8.24-9.03L266.5 53.11a8.81 8.81 0 0 1 9.37 9.05l-5.02 170.27a8.81 8.81 0 0 1-9.22 8.54l-93.08-4.3 5.98 61.23a1.76 1.76 0 0 1-3.05 1.37l-58.17-63.48-53.55-3.69a8.81 8.81 0 0 1-8.2-8.55L47.62 75.77Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.33 69.6a8.81 8.81 0 0 1 8.24-9.02l210.65-13.64a8.81 8.81 0 0 1 9.37 9.05l-5.02 170.27a8.81 8.81 0 0 1-9.21 8.54l-93.08-4.3 5.97 61.24a1.76 1.76 0 0 1-3.05 1.36l-58.16-63.48-53.56-3.68a8.81 8.81 0 0 1-8.2-8.56L42.33 69.6Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M63.46 206.5a8.81 8.81 0 0 0 8.81 8.81H243.2a8.81 8.81 0 0 0 8.81-8.8V83.14a8.81 8.81 0 0 0-8.81-8.81H72.27a8.81 8.81 0 0 0-8.81 8.81V206.5Z\" clip-rule=\"evenodd\" opacity=\".22\"/>\n  <g fill-rule=\"evenodd\" clip-path=\"url(#a)\" clip-rule=\"evenodd\">\n    <path fill=\"red\" d=\"M62.4 211.32H248V72.58H62.4v138.74Z\"/>\n    <path fill=\"#060\" d=\"M62.4 211.32h73.96V72.58H62.4v138.74Z\"/>\n    <path fill=\"#FF0\" d=\"M160.47 163.44c-9.3-.28-52-27.22-52.3-31.52l2.37-3.97c4.24 6.22 47.88 32.44 52.17 31.5l-2.24 4Z\"/>\n    <path fill=\"#FF0\" d=\"M136.41 134.53c9.33-.08 20.83-1.3 27.44-3.97l-1.43-2.34c-3.9 2.2-15.47 3.63-26.08 3.85-12.56-.12-21.42-1.3-25.86-4.31l-1.34 2.5c8.16 3.48 16.52 4.23 27.28 4.27Zm-30.59 11.35c5.74 3.11 18.46 4.68 30.5 4.8 10.97.02 25.26-1.71 30.6-4.59l-.14-3.1c-1.68 2.63-16.98 5.17-30.58 5.06-13.58-.1-26.2-2.22-30.4-4.97l.02 2.8Zm30.48 17.03c-13.18-.08-24.48-3.63-26.86-4.21l1.73 2.75c4.22 1.78 15.24 4.45 25.26 4.16 10.02-.3 18.77-1.08 24.94-4.12l1.77-2.85c-4.2 2-18.5 4.25-26.84 4.27Z\"/>\n    <path fill=\"#FF0\" d=\"M115.56 162.1a27.7 27.7 0 0 1 3.15-38.75 26.94 26.94 0 0 1 23.84-5.79c14.62 3.5 23.65 18.31 20.2 33.08a27.58 27.58 0 0 1-11.4 16.57 27 27 0 0 1-35.78-5.1Zm27.78-47.89a30.27 30.27 0 0 0-26.83 6.52 31.16 31.16 0 0 0-3.54 43.6 30.35 30.35 0 0 0 40.27 5.73 30.9 30.9 0 0 0 12.82-18.62c3.9-16.63-6.28-33.3-22.72-37.23Z\"/>\n    <path fill=\"#FF0\" d=\"M166.88 145.34v-2.3l-1.86-1.73-10.48-2.8-15.09-1.56-18.18.93-12.95 3.12-2.62 1.96v2.28l6.63-2.99 15.71-2.5h15.1l11.1 1.25 7.7 1.86 4.94 2.48Z\"/>\n    <path fill=\"#FF0\" d=\"M135 175.53h2.66v-62.46h-2.65v62.46Z\"/>\n    <path fill=\"#FF0\" d=\"M136.2 123.23c11.36-.07 21.26 1.6 25.8 3.94l1.66 2.9c-3.95-2.15-14.64-4.39-27.44-4.05-10.43.06-21.58 1.17-27.18 4.19l1.98-3.34c4.6-2.4 15.42-3.63 25.19-3.64Zm15.3 33.74a78.93 78.93 0 0 0-15.15-1.16c-18.93.21-25.04 3.92-25.8 5.05l-1.4-2.34c4.81-3.52 15.12-5.5 27.3-5.3 6.32.1 11.77.53 16.37 1.42l-1.31 2.33Z\"/>\n    <path fill=\"red\" d=\"M136.3 165.41c-9.72 0-17.63-8-17.63-17.83v-24.11h35.26v24.11c0 9.83-7.9 17.83-17.63 17.83Z\"/>\n    <path fill=\"#FF0\" d=\"m124.66 127.72-2.32-.16-2.34.16-.25 2.2h5.18l-.27-2.2Zm-3.38-1.94-.6-.08-.6.08-.03 1.18h1.26l-.03-1.18Z\"/>\n    <path fill=\"#FF0\" d=\"M119.85 125.11h.37v.28h.27v-.28h.37v.28h.28v-.28h.38v.59l-.2.2h-1.27l-.2-.2v-.59Zm4.7.67-.6-.08-.6.08-.03 1.18h1.25l-.01-1.18Z\"/>\n    <path fill=\"#FF0\" d=\"M123.12 125.11h.37v.28h.26v-.28h.39v.28h.27v-.28h.38v.59l-.2.2h-1.27l-.2-.2v-.59Zm-.2-.31-.6-.08-.6.08-.1 2.16h1.41l-.1-2.16Z\"/>\n    <path fill=\"#FF0\" d=\"M121.48 124.13h.38v.27h.28v-.28h.38v.28h.28v-.28h.39v.6l-.21.2h-1.3l-.2-.2v-.59Zm3.33 3.27h-4.97l-.21-.21.2-.21h4.98l.2.2-.2.22Zm-.1.41h-4.76l-.2-.2.2-.2h4.75l.21.2-.2.2Zm.22 2.45h-5.2l-.22-.21.22-.23h5.2l.2.23-.2.21Zm13.82-2.54-2.34-.16-2.32.16-.27 2.2H139l-.25-2.2Zm-3.39-1.94-.6-.08-.6.08-.02 1.18h1.25l-.03-1.18Z\"/>\n    <path fill=\"#FF0\" d=\"M133.93 125.11h.38v.28h.27v-.28h.38v.28h.27v-.28h.37v.59l-.2.2h-1.27l-.2-.2v-.59Zm4.7.67-.6-.08-.6.08-.03 1.18h1.26l-.02-1.18Z\"/>\n    <path fill=\"#FF0\" d=\"M137.2 125.11h.37v.28h.28v-.28h.38v.28h.26v-.28h.38v.59l-.2.2h-1.27l-.2-.2v-.59Zm-.18-.31-.6-.08-.61.08-.1 2.16h1.4l-.09-2.16Z\"/>\n    <path fill=\"#FF0\" d=\"M135.57 124.13h.37v.27h.28v-.28h.4v.28h.27v-.28h.38v.6l-.2.2h-1.3l-.2-.2v-.59Zm3.33 3.27h-4.97l-.21-.21.21-.21h4.97l.21.2-.21.22Zm-.12.41h-4.74l-.21-.2.2-.2h4.75l.21.2-.2.2Zm.22 2.45h-5.19l-.2-.21.2-.23h5.2l.22.23-.22.21Zm13.61-2.54-2.33-.16-2.34.16-.25 2.2h5.18l-.26-2.2Zm-3.38-1.94-.6-.08-.6.08-.03 1.18h1.26l-.03-1.18Z\"/>\n    <path fill=\"#FF0\" d=\"M147.8 125.11h.37v.28h.27v-.28h.37v.28h.28v-.28h.38v.59l-.2.2H148l-.2-.2v-.59Zm4.7.67-.6-.08-.6.08-.03 1.18h1.25l-.01-1.18Z\"/>\n    <path fill=\"#FF0\" d=\"M151.07 125.11h.37v.28h.27v-.28h.38v.28h.27v-.28h.38v.59l-.2.2h-1.27l-.2-.2v-.59Zm-.2-.31-.6-.08-.6.08-.1 2.16h1.41l-.1-2.16Z\"/>\n    <path fill=\"#FF0\" d=\"M149.43 124.13h.38v.27h.28v-.28h.38v.28h.28v-.28h.38v.6l-.2.2h-1.3l-.2-.2v-.59Zm3.33 3.27h-4.97l-.21-.21.2-.21h4.98l.2.2-.2.22Zm-.1.41h-4.75l-.21-.2.2-.2h4.75l.21.2-.2.2Zm.21 2.45h-5.19l-.22-.21.22-.23h5.2l.2.23-.2.21Zm-28.2 11.93-2.33-.18-2.34.18-.25 2.19h5.18l-.27-2.2Zm-3.39-1.96-.6-.08-.6.08-.03 1.18h1.26l-.03-1.18Z\"/>\n    <path fill=\"#FF0\" d=\"M119.85 139.57h.37v.28h.27v-.28h.37v.28h.28v-.28h.38v.58l-.2.2h-1.27l-.2-.2v-.58Zm4.7.66-.6-.08-.6.08-.03 1.18h1.25l-.01-1.18Z\"/>\n    <path fill=\"#FF0\" d=\"M123.12 139.57h.37v.28h.26v-.28h.39v.28h.27v-.28h.38v.58l-.2.2h-1.27l-.2-.2v-.58Zm-.2-.32-.15-.03h-.88l-.17.03-.1 2.16h1.41l-.1-2.16Z\"/>\n    <path fill=\"#FF0\" d=\"M121.48 138.58h.38v.28h.28v-.3h.38v.3h.28v-.3h.39v.62l-.21.2h-1.3l-.2-.2v-.6Zm3.33 3.27h-4.97l-.21-.21.2-.21h4.98l.2.2-.2.22Zm-.1.42h-4.76l-.2-.2.2-.22h4.75l.21.22-.2.2Zm.22 2.44h-5.2l-.22-.21.22-.23h5.2l.2.23-.2.21Zm27.68-2.52-2.33-.18-2.34.18-.25 2.19h5.18l-.26-2.2Zm-3.38-1.96-.6-.08-.6.08-.03 1.18h1.26l-.03-1.18Z\"/>\n    <path fill=\"#FF0\" d=\"M147.8 139.57h.37v.28h.27v-.28h.37v.28h.28v-.28h.38v.58l-.2.2H148l-.2-.2v-.58Zm4.7.66-.6-.08-.6.08-.03 1.18h1.25l-.01-1.18Z\"/>\n    <path fill=\"#FF0\" d=\"M151.07 139.57h.37v.28h.27v-.28h.38v.28h.27v-.28h.38v.58l-.2.2h-1.27l-.2-.2v-.58Zm-.2-.32-.6-.08-.6.08-.1 2.16h1.41l-.1-2.16Z\"/>\n    <path fill=\"#FF0\" d=\"M149.43 138.58h.38v.28h.28v-.3h.38v.3h.28v-.3h.38v.62l-.2.2h-1.3l-.2-.2v-.6Zm3.33 3.27h-4.97l-.21-.21.2-.21h4.98l.2.2-.2.22Zm-.1.42h-4.75l-.21-.2.2-.22h4.75l.21.22-.2.2Zm.21 2.44h-5.19l-.22-.21.22-.23h5.2l.2.23-.2.21Zm-28.64 13.87 1.52-1.78 1.78-1.56 1.72 1.37-3.67 3.71-1.35-1.74Zm1.02-3.8.37-.48.49-.39.84.83-.88.89-.82-.85Z\"/>\n    <path fill=\"#FF0\" d=\"m125.8 153.29-.26.26.2.2-.2.19-.2-.2-.26.28.2.2-.2.18-.2-.2-.26.28.41.42h.29l.9-.9v-.3l-.41-.41Zm-2.86 3.83.37-.48.48-.39.85.83-.89.89-.81-.85Z\"/>\n    <path fill=\"#FF0\" d=\"m123.5 155.63-.27.26.2.2-.2.19-.2-.2-.26.28.2.2-.2.18-.2-.2-.26.28.4.42h.3l.89-.9v-.3l-.4-.41Zm-.1-.36.37-.5.48-.38 1.6 1.46-.5.5-.5.51-1.45-1.6Z\"/>\n    <path fill=\"#FF0\" d=\"m123.95 153.75-.26.27.2.2-.2.2-.2-.2-.27.28.2.2-.2.2-.2-.2-.28.26.44.44h.27l.92-.93v-.3l-.42-.42Zm-.06 4.7 3.52-3.56v-.3h-.3l-3.51 3.56v.3h.29Zm.38.22 3.35-3.4v-.3h-.29l-3.37 3.4v.3h.3Zm1.55 1.89 3.67-3.72v-.31h-.3l-3.69 3.71v.32h.32Z\"/>\n    <path fill=\"#fff\" d=\"M136.3 158.18a10.56 10.56 0 0 1-10.48-10.6V130.7h20.95v16.88c0 5.84-4.69 10.6-10.47 10.6Z\"/>\n    <path fill=\"#FF0\" d=\"m148.38 158.58-1.54-1.78-1.76-1.56-1.72 1.37 1.82 1.86 1.83 1.85 1.37-1.74Zm-1.04-3.8-.37-.48-.48-.39-.85.83.45.45.45.44.8-.85Z\"/>\n    <path fill=\"#FF0\" d=\"m146.79 153.29.26.26-.18.2.18.19.2-.2.27.28-.2.2.2.18.19-.2.26.28-.4.42h-.28l-.91-.9v-.3l.4-.41Zm2.86 3.83-.37-.48-.48-.39-.84.83.44.45.45.44.8-.85Z\"/>\n    <path fill=\"#FF0\" d=\"m149.1 155.63.26.26-.18.2.18.19.2-.2.28.28-.2.2.18.18.2-.2.27.28-.41.42h-.28l-.9-.9v-.3l.4-.41Zm.1-.36-.37-.5-.5-.38-1.57 1.46.5.5.49.51 1.46-1.6Z\"/>\n    <path fill=\"#FF0\" d=\"m148.64 153.75.26.27-.2.2.2.2.2-.2.28.28-.2.2.2.2.2-.2.27.26-.42.44h-.29l-.92-.93v-.3l.42-.42Zm.07 4.7-3.51-3.56v-.3h.29l3.52 3.56v.3h-.3Zm-.37.22-3.37-3.4v-.3h.3l3.36 3.4v.3h-.3Zm-1.55 1.89-3.68-3.72v-.31h.31l3.67 3.71v.32h-.3Z\"/>\n    <path fill=\"#039\" d=\"M136.3 147.4a2.27 2.27 0 0 1-2.26-2.29v-3.64h4.52v3.64a2.27 2.27 0 0 1-2.26 2.29Zm0-8.1a2.27 2.27 0 0 1-2.26-2.29v-3.64h4.52v3.64a2.27 2.27 0 0 1-2.26 2.29Zm0 16.2a2.27 2.27 0 0 1-2.26-2.28v-3.64h4.52v3.64a2.27 2.27 0 0 1-2.26 2.29Zm-6.4-8.1a2.27 2.27 0 0 1-2.27-2.29v-3.64h4.53v3.64a2.28 2.28 0 0 1-2.27 2.29Zm12.81 0a2.27 2.27 0 0 1-2.26-2.29v-3.64h4.52v3.64a2.27 2.27 0 0 1-2.26 2.29Z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"185.91\" height=\"135.69\" x=\"62.58\" y=\"74.39\" fill=\"#fff\" rx=\"8.81\"/>\n    </clipPath>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/subjects/preschool.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#1976D2\" d=\"M56 202.3c0-1.9 1.5-3.5 3.4-3.5h203.2a5 5 0 0 1 5 5v67.5a5 5 0 0 1-5 5h-51.4l-.4-6a46.1 46.1 0 0 0-53-42.5l-1.3.2c-22 3.4-38 22.4-37.8 44.6 0 2-1.7 3.7-3.7 3.7H58c-.9 0-1.6-.8-1.6-1.7l-.4-72.3Z\"/>\n  <path fill=\"#2196F3\" d=\"M53.1 202.2c0-1.9 1.5-3.4 3.4-3.4h200.2c1.9 0 3.4 1.5 3.4 3.4v70.7c0 1.9-1.5 3.4-3.4 3.4h-49.6a.7.7 0 0 1-.6-.7 50 50 0 0 0-49.9-50.1 50 50 0 0 0-49.9 50.1c0 .4-.3.7-.6.7H56.5a3.4 3.4 0 0 1-3.4-3.4v-70.7Z\"/>\n  <path fill=\"#388E3C\" d=\"M95.7 116.8c0-.5.4-.9.9-.9h36.8a5 5 0 0 1 5 5v57c0 .4-.3.8-.8.8h-41a.9.9 0 0 1-.9-.9v-61ZM190.3 116.8c0-.5.4-.9.9-.9H228a5 5 0 0 1 5 5v57c0 .4-.3.8-.8.8h-41a.9.9 0 0 1-.9-.9v-61Z\"/>\n  <path fill=\"#4CAF50\" d=\"M89.2 118.3c0-1.9 1.5-3.4 3.3-3.4h35.2c1.9 0 3.4 1.5 3.4 3.4v57.5c0 .4-.4.8-.9.8H90a.9.9 0 0 1-.8-.8v-57.5ZM183.7 118.3c0-1.9 1.5-3.4 3.4-3.4h35.2c1.9 0 3.4 1.5 3.4 3.4v57.5c0 .4-.4.8-.9.8h-40.2a.9.9 0 0 1-.9-.8v-57.5Z\"/>\n  <path fill=\"#F9A825\" d=\"M83.2 166.2c0-1.4 1.2-2.6 2.6-2.6h155.5a5 5 0 0 1 5 5v27.6c0 1.4-1.2 2.6-2.6 2.6h-158a2.6 2.6 0 0 1-2.5-2.6v-30Z\"/>\n  <path fill=\"#FBC02D\" d=\"M76.9 166.2c0-1.4 1.1-2.6 2.6-2.6H236c1.8 0 3.3 1.5 3.3 3.3v29.3c0 1.4-1.1 2.6-2.6 2.6H79.5a2.6 2.6 0 0 1-2.6-2.6v-30Z\"/>\n  <path fill=\"#E53935\" d=\"m158.5 40.9-69.4 69.4a3.4 3.4 0 0 0 2.4 5.7h141c1.5 0 2.3-1.8 1.2-2.8L161 40.9c-.7-.7-1.8-.7-2.5 0Z\"/>\n  <mask id=\"a\" width=\"152\" height=\"77\" x=\"85\" y=\"40\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#EF5350\" d=\"M158.5 40.9 86.3 113c-1 1.1-.3 3 1.2 3h149L161 40.8c-.7-.7-1.8-.7-2.5 0Z\"/>\n  </mask>\n  <g mask=\"url(#a)\">\n    <path fill=\"#EF5350\" d=\"m157 37.8-81.6 77.3c-1.1 1-.4 3 1.2 3h81.6c1 0 1.7-.8 1.7-1.8V39.1c0-1.5-1.8-2.3-3-1.3Z\"/>\n  </g>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/science-sun-cloud.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <g clip-path=\"url(#a)\">\n    <circle cx=\"137.6\" cy=\"137.4\" r=\"97.2\" fill=\"#FDD835\"/>\n    <circle cx=\"137.7\" cy=\"137.4\" r=\"76.7\" fill=\"#FBC02D\" opacity=\".9\"/>\n    <mask id=\"b\" width=\"195\" height=\"195\" x=\"40\" y=\"40\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n      <circle cx=\"137.6\" cy=\"137.4\" r=\"97.2\" fill=\"#F9A825\"/>\n    </mask>\n    <g fill=\"#FFA726\" mask=\"url(#b)\" opacity=\".6\">\n      <path d=\"M275 200a47.2 47.2 0 1 1-94.4.3 47.2 47.2 0 0 1 94.4-.2Z\"/>\n      <path d=\"M206.7 205.6a47.2 47.2 0 1 1-94.4.2 47.2 47.2 0 0 1 94.4-.3Z\"/>\n      <path d=\"M149.4 200a47.2 47.2 0 1 1-94.4.3 47.2 47.2 0 0 1 94.4-.2ZM234 145.9a37 37 0 1 1-73.9.1 37 37 0 0 1 74-.1Z\"/>\n      <path d=\"M176.7 153.4a39 39 0 1 1-78 .2 39 39 0 0 1 78-.2Z\"/>\n    </g>\n    <path fill=\"#C7C7C7\" d=\"M280.4 207.3a45 45 0 0 1-45.3 44.5 45 45 0 0 1-45.3-44.5 45 45 0 0 1 45.3-44.6 45 45 0 0 1 45.3 44.6Z\"/>\n    <path fill=\"#C7C7C7\" d=\"M214.8 212.4a45 45 0 0 1-45.3 44.6 45 45 0 0 1-45.3-44.6 45 45 0 0 1 45.3-44.5 45 45 0 0 1 45.3 44.5Z\"/>\n    <path fill=\"#C7C7C7\" d=\"M159.6 207.3a45 45 0 0 1-45.2 44.5A45 45 0 0 1 69 207.3a45 45 0 0 1 45.3-44.6 45 45 0 0 1 45.2 44.6ZM241 156.3a35.2 35.2 0 0 1-35.4 34.8 35.2 35.2 0 0 1-35.5-34.8 35.2 35.2 0 0 1 35.5-34.9 35.2 35.2 0 0 1 35.4 34.9Z\"/>\n    <path fill=\"#C7C7C7\" d=\"M185.9 163.4a37.1 37.1 0 0 1-37.4 36.8 37.1 37.1 0 0 1-37.4-36.8 37.1 37.1 0 0 1 37.4-36.8 37.1 37.1 0 0 1 37.4 36.8Z\"/>\n    <circle cx=\"229.1\" cy=\"196.8\" r=\"45.2\" fill=\"#fff\"/>\n    <circle cx=\"163.5\" cy=\"202\" r=\"45.2\" fill=\"#fff\"/>\n    <circle cx=\"108.5\" cy=\"196.8\" r=\"45.2\" fill=\"#fff\"/>\n    <circle cx=\"199.6\" cy=\"154.1\" r=\"35.4\" fill=\"#fff\"/>\n    <circle cx=\"142.6\" cy=\"161.3\" r=\"37.4\" fill=\"#fff\"/>\n    <path fill=\"#2196F3\" d=\"M250.1 215.4c0 10-8 18-18 18s-18-8-18-18c0-9.8 18-36.6 18-36.6s18 26.8 18 36.6Z\"/>\n    <mask id=\"c\" width=\"37\" height=\"56\" x=\"214\" y=\"178\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n      <path fill=\"#42A5F5\" d=\"M250.1 215.4c0 10-8 18-18 18s-18-8-18-18c0-9.8 18-36.6 18-36.6s18 26.8 18 36.6Z\"/>\n    </mask>\n    <g mask=\"url(#c)\">\n      <path fill=\"#64B5F6\" d=\"M243.7 207c0 9.9-8 17.9-18 17.9s-18-8-18-18c0-9.8 18-36.6 18-36.6s18 26.8 18 36.7Z\"/>\n      <path stroke=\"#fff\" stroke-linecap=\"round\" stroke-width=\"5.4\" d=\"M230.6 194.5 227 202\" opacity=\".7\"/>\n    </g>\n    <path fill=\"#2196F3\" d=\"M211 260.7a24.6 24.6 0 0 1-49.2 0c0-13.6 24.6-50.3 24.6-50.3s24.7 36.7 24.7 50.3Z\"/>\n    <mask id=\"d\" width=\"51\" height=\"76\" x=\"161\" y=\"210\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n      <path fill=\"#42A5F5\" d=\"M211 260.7a24.6 24.6 0 0 1-49.2 0c0-13.6 24.6-50.3 24.6-50.3s24.7 36.7 24.7 50.3Z\"/>\n    </mask>\n    <g mask=\"url(#d)\">\n      <path fill=\"#64B5F6\" d=\"M203.9 250.5a24.6 24.6 0 0 1-49.3 0c0-13.6 24.7-50.4 24.7-50.4s24.6 36.8 24.6 50.4Z\"/>\n      <path stroke=\"#fff\" stroke-linecap=\"round\" stroke-width=\"5.4\" d=\"m183 232-5.1 10.2\" opacity=\".7\"/>\n    </g>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <path fill=\"#fff\" d=\"M0 0h320v320H0z\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/social-studies.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"320\" height=\"320\" fill=\"none\">\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#607D8B\" d=\"M171.84 207.16h-18.22v27.76h18.22v-27.76Z\"/>\n    <path fill=\"#546E7A\" d=\"M192.76 226.46H133.2a3.2 3.2 0 0 0-3.2 3.2v11.26h65.95v-11.25a3.2 3.2 0 0 0-3.2-3.2Z\"/>\n  </g>\n  <path fill=\"#42A5F5\" d=\"M229.74 126.8a73.44 73.44 0 0 1-17.45 34.77 73.92 73.92 0 0 1-73.22 22.31 73.65 73.65 0 0 1-34.05-19.27 74.05 74.05 0 0 1-20.34-67.1 73.74 73.74 0 0 1 30.66-46.36 73.72 73.72 0 0 1 56.53-11.54 74.24 74.24 0 0 1 23.12 8.88 74.02 74.02 0 0 1 23.37 21.98 73.8 73.8 0 0 1 11.38 56.33Z\"/>\n  <mask id=\"b\" width=\"149\" height=\"149\" x=\"83\" y=\"38\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#2196F3\" d=\"M229.74 126.8a73.44 73.44 0 0 1-17.45 34.77 73.92 73.92 0 0 1-73.22 22.31 73.65 73.65 0 0 1-34.05-19.27 74.05 74.05 0 0 1-20.34-67.1 73.74 73.74 0 0 1 30.66-46.36 73.72 73.72 0 0 1 56.53-11.54 74.24 74.24 0 0 1 23.12 8.88 74.02 74.02 0 0 1 23.37 21.98 73.8 73.8 0 0 1 11.38 56.33Z\"/>\n  </mask>\n  <g mask=\"url(#b)\">\n    <path fill=\"#C8E6C9\" d=\"M188.42 75.8c1.17-4.2 15.5-13.23 22.52-17.22 6.32.75 19.75 2.73 22.86 4.62 3.88 2.37 8.53 6.87 9.44 8.24.91 1.37-.14 43.9-.22 46.25-.06 1.89-5.92 21.78-12.94 29.73-2.01-.54-15.54-5.33-20.79-6.07-6.55-.93-5.87 3.56-7.32 6.83-1.46 3.27-2.76 5.78-13.43 5.6-8.61-.55-11.12-5.8-8.3-9.99 2.83-4.17-5.55-7.84-5.92-15.83-.3-6.4 8.58-10.4 13.05-11.61 3.33-1.44 10.9-6.03 14.5-12.9 4.52-8.59-8.36-13.56-12.1-16.7-3.72-3.12-2.8-5.7-1.35-10.95ZM137.13 42.4c-2.74-2.14-6.85-9.16-8.57-12.4l-31.17 7.53L71.94 73.5l2.5 11.17c2.07.16 7.01.86 10.17 2.45 3.95 1.98 2.96 4.94 4.7 8.06 1.74 3.12 4.32 6 5.84 8.3 1.51 2.27 7.9 3.96 9.86 7.9 1.97 3.96 1.57 13.76 1.57 17.71 0 3.95 7.05 12.1 8.25 17.87 1.2 5.77-1.4 16.7.65 18.3 2.05 1.6 2.28.46 3.88-3.56 1.6-4.02 2.52-4.63 5.94-5.91 3.42-1.29 4.42-4.25 6.4-10.17 1.99-5.92 7.16-8.04 9.67-8.72 2.5-.67 7.83-3.55 8.37-6.2.54-2.66-3.03-6.55-5.23-9.36-2.2-2.81-3.7-9.05-5.68-11.02-1.97-1.98-5.77-2.75-8.2-4.43-2.43-1.67-5.84-6.31-10.02-7.16-4.17-.84-8.36 2.27-12.23 1.88-3.1-.31-5.8-3.94-6.76-5.71a25.67 25.67 0 0 1-2.49-11.17c.09-6.3 4.2-7.06 6.48-8.57 2.28-1.52 12.08 2.83 14.43 2.91 2.36.08 2.9-2.57 4.64-3.4 1.75-.84 5.1-1.74 8.29-1.89 3.2-.14 6.84 1.38 8.36 1.69 1.51.3 3.8-3.18 6.85-6.52 3.04-3.34.61-3.04-.52-9.2-1.13-6.15-7.12-13.68-10.53-16.34Z\"/>\n    <path fill=\"#fff\" d=\"m70.96 144.4 1.3 17.32-6.51-21.83 5.2 4.51-6.33-84.16C86.2 40.43 175.9-18.9 175.9-18.9L199 35.41l-20.25 1.98A107.06 107.06 0 0 0 82.6 133.4l-1.92 19.42-9.71-8.43Z\" opacity=\".4\"/>\n    <path fill=\"#0D47A1\" d=\"M256.58 164.73a81.08 81.08 0 0 1-26.23 33.13c-22.03 16.33-51.58 20.86-78.15 9.35a77.5 77.5 0 0 1-34.62-29.5 123.88 123.88 0 0 0 67.18-27A121.32 121.32 0 0 0 200.73 135a129.09 129.09 0 0 0 29.3-67.7 74.87 74.87 0 0 1 8.26 6.7 78.71 78.71 0 0 1 19.36 28.44 81.05 81.05 0 0 1-1.06 62.3h-.01Z\" opacity=\".25\"/>\n  </g>\n  <path fill=\"#78909C\" d=\"M189.33 19.02a93.89 93.89 0 0 1 17.84 7.23 90.73 90.73 0 0 1 10.93 6.8l1.07.78a95.25 95.25 0 0 1 26.47 30.43 98.08 98.08 0 0 1 8.16 74.88l-.48 1.61a98.09 98.09 0 0 1-25.94 42.11C203.47 205.8 168.68 215.78 135 206c-1.48-.43-2.97-.89-4.46-1.42l3.48-9.81c1.24.44 2.53.84 3.88 1.24 29.91 8.69 60.9-.15 82.28-20.66a87.74 87.74 0 0 0 23.62-39.1l.31-1.1a87.64 87.64 0 0 0-7.58-65.85A84.78 84.78 0 0 0 212 41.49l-.01-.01a83.47 83.47 0 0 0-25.56-12.46l2.9-10Z\"/>\n  <path fill=\"#546E7A\" d=\"M125.74 193.46a4.34 4.34 0 0 1 8.24 2.71l-2.36 7.19a4.34 4.34 0 1 1-8.24-2.72l2.36-7.18Zm62.1-178.63a4.34 4.34 0 0 1 8.18 2.92l-9.4 26.3-8.16-2.92 9.39-26.3Z\"/>\n  <path fill=\"#D81B60\" d=\"M231.56 241H93.48a4.06 4.06 0 0 0-4.06 4.06v17.04a4.06 4.06 0 0 0 4.06 4.06h138.08a4.06 4.06 0 0 0 4.06-4.06v-17.04a4.06 4.06 0 0 0-4.06-4.06Z\"/>\n  <path fill=\"#D81B60\" d=\"M235.62 253.83H89.42v8.27a4.06 4.06 0 0 0 4.06 4.05h138.08a4.06 4.06 0 0 0 4.06-4.05v-8.27Z\" opacity=\".5\" style=\"mix-blend-mode:multiply\"/>\n  <path fill=\"#E35141\" d=\"M266.1 274.63h-23.26v12.32h23.27l-5.6-6.16 5.6-6.16Z\"/>\n  <path fill=\"#FFB74D\" d=\"M241.97 266.16H103.89a4.06 4.06 0 0 0-4.06 4.06v18.77a4.06 4.06 0 0 0 4.06 4.06h138.08a4.06 4.06 0 0 0 4.06-4.06v-18.77a4.06 4.06 0 0 0-4.06-4.06Z\"/>\n  <path fill=\"#FF9800\" d=\"M246.03 280.98H99.83v8.01a4.06 4.06 0 0 0 4.06 4.06h138.08a4.06 4.06 0 0 0 4.06-4.06v-8.01Z\" opacity=\".5\" style=\"mix-blend-mode:multiply\"/>\n  <defs>\n    <clipPath id=\"a\">\n      <path fill=\"#fff\" d=\"M130 190.32h65.96v50.6H130z\"/>\n    </clipPath>\n  </defs>\n</svg>\n","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/world-language.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 380 380\">\n  <g clip-path=\"url(#a)\" opacity=\".9\">\n    <path fill=\"#42A5F5\" d=\"M296.9 190.5a108 108 0 0 1-113.3 108 107.6 107.6 0 0 1-54.4-17.8 108.2 108.2 0 0 1-47-71.7 108 108 0 0 1-1.5-18.5 107.7 107.7 0 0 1 143.8-102 108.2 108.2 0 0 1 39.8 24.6c20 19.7 32.6 47.1 32.6 77.4z\"/>\n    <mask id=\"b\" width=\"217\" height=\"217\" x=\"80\" y=\"82\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n      <path fill=\"#2196F3\" d=\"M296.9 190.5a108 108 0 0 1-113.3 108 107.6 107.6 0 0 1-54.4-17.8 108.2 108.2 0 0 1-47-71.7 108 108 0 0 1-1.5-18.5 107.7 107.7 0 0 1 143.8-102 108.2 108.2 0 0 1 39.8 24.6c20 19.7 32.6 47.1 32.6 77.4z\"/>\n    </mask>\n    <g mask=\"url(#b)\">\n      <path fill=\"#C8E6C9\" d=\"M223 129.4c.4-6.3 18.3-23.4 27.2-31.1 9.3-.8 29-1.8 34 0 6.3 2.2 14.3 7.3 16 9s12.5 63 13 66.3c.5 2.7-7 32-14.7 45.4-3-.2-19-2.2-26.7-1.7-9.7.5-7.4 6.8-8.6 11.9s-2.2 9-17.6 11.9c-12.5 1.7-17.6-5.1-14.7-12s-10.3-9.6-13.1-20.9c-2.3-9 9.3-17.4 15.3-20.4 4.4-3 13.9-11.8 17-22.7 4-13.6-15.8-17-22-20.4s-5.8-7.3-5.2-15.3m-83-33a75.7 75.7 0 0 1-16-15.2L81.6 101l-26 58.8 6.8 15.3c3-.4 10.3-.8 15.3.5 6.2 1.7 5.6 6.3 9 10.2 3.4 4 8 7.4 10.8 10.2s12.4 3.4 16.4 8.5c4 5 6.2 19.2 7.3 24.9s13.6 15.3 17 23.2c3.4 8 2.9 24.3 6.3 26s3.4 0 4.5-6.2 2.3-7.4 6.8-10.2 5-7.3 6.2-16.4 8-13.6 11.3-15.3c3.4-1.7 10.2-7.3 10.2-11.3s-6.2-8.5-10.2-11.9-7.9-11.9-11.3-14.1c-3.4-2.3-9-2.3-13-4s-10.2-7.3-16.4-7.3c-6.3 0-11.4 5.6-17 6.2-4.5.4-9.4-4-11.3-6.2-1.7-2.1-5.5-8-6.8-15.3-1.7-9 4-11.3 6.8-14.2s18 .6 21.5 0 3.4-4.5 5.6-6.2c2.3-1.7 6.8-4 11.4-5 4.5-1.2 10.2 0 12.4 0s4.5-5.7 8-11.4 0-4.5-3.5-13-14.1-17.5-19.8-20.4\"/>\n      <path fill=\"#fff\" d=\"m74.6 261.6 6.8 24.5-15.6-29.4zL41.2 143C66.3 108.3 177.6-2.5 177.6-2.5l48.8 71-28.4 8.7A156.4 156.4 0 0 0 88 242.5l3 28.4z\" opacity=\".4\"/>\n      <path fill=\"#000\" d=\"M310.2 218.9a112 112 0 0 1-133 86.4 96 96 0 0 1-5.3-1.3 111.6 111.6 0 0 1-51.4-29.8 142 142 0 0 0 7.4-2.2c27-9 52-24.5 71.5-45.2a176 176 0 0 0 6.9-7.7A176.5 176.5 0 0 0 246 102.8a150 150 0 0 0-.7-10.1 108 108 0 0 1 13.4 7 112.2 112.2 0 0 1 35.1 33.6c16.2 24.3 23 54.8 16.4 85.6z\" opacity=\".1\"/>\n    </g>\n    <g filter=\"url(#c)\">\n      <path fill=\"#fff\" d=\"m50.5 55.5 113-.1a5 5 0 0 1 5 5l-.1 87.4a5 5 0 0 1-5 5h-36.6l-3 38a.5.5 0 0 1-.8.3l-39.3-38.2H50.4a5 5 0 0 1-5-5l.1-87.4a5 5 0 0 1 5-5\"/>\n      <path stroke=\"#90CAF9\" stroke-width=\"8.9\" d=\"M50.5 51.1a9.4 9.4 0 0 0-9.4 9.4L41 148c0 5.2 4.2 9.5 9.4 9.5h31.5l38 36.9c3 2.8 8 1 8.3-3.2l2.7-34h32.5a9.4 9.4 0 0 0 9.4-9.3l.1-87.4c0-5.2-4.2-9.5-9.4-9.5z\"/>\n    </g>\n    <path fill=\"#1565C0\" stroke=\"#37474F\" stroke-width=\".3\" d=\"m113.5 77.9 20.1 53H122l-4.8-14.2H96.7l-4.8 14.2H80.3h.1l20-53zm-6.7 7.5a238 238 0 0 1-2.6 8.8 178 178 0 0 1-2.8 8.6l-2.2 6.3h15.4l-2.1-6.3-.8-2.1a255 255 0 0 1-2.1-6.6l-2.6-8.7z\"/>\n    <g filter=\"url(#d)\">\n      <path fill=\"#fff\" d=\"M321.3 173.6H211.9a5 5 0 0 0-5 5v87.8a5 5 0 0 0 5 5h40v37.5c0 .4.4.6.7.3l34.6-37.8h34.1a5 5 0 0 0 5-5v-87.8a5 5 0 0 0-5-5\"/>\n      <path stroke=\"#90CAF9\" stroke-width=\"8.9\" d=\"M321.3 169.2a9.4 9.4 0 0 1 9.4 9.4v87.8a9.4 9.4 0 0 1-9.4 9.4h-32.2l-33.3 36.4a4.9 4.9 0 0 1-8.4-3.3v-33.1h-35.5a9.4 9.4 0 0 1-9.4-9.4v-87.8c0-5.2 4.2-9.4 9.4-9.4z\"/>\n    </g>\n    <path stroke=\"#1565C0\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"9\" d=\"M240.6 202.1h25.7m26.8 0h-26.8m0 0V192m-22.8 56.5 11.5-5.6a46.5 46.5 0 0 0 25.3-32.1l1.8-8.6\"/>\n    <path stroke=\"#1565C0\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"9\" d=\"m289 248.4-11.6-5.6a46.5 46.5 0 0 1-25.3-32.1l-1.8-8.6\"/>\n  </g>\n  <defs>\n    <filter id=\"c\" width=\"146.7\" height=\"159.5\" x=\"36.5\" y=\"46.5\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n      <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n      <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\n      <feOffset dx=\"5.9\" dy=\"5.9\"/>\n      <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n      <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0\"/>\n      <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2205_46284\"/>\n      <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_2205_46284\" result=\"shape\"/>\n    </filter>\n    <filter id=\"d\" width=\"143\" height=\"159.4\" x=\"198.1\" y=\"164.8\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n      <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\n      <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\n      <feOffset dx=\"5.9\" dy=\"5.9\"/>\n      <feComposite in2=\"hardAlpha\" operator=\"out\"/>\n      <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0\"/>\n      <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2205_46284\"/>\n      <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_2205_46284\" result=\"shape\"/>\n    </filter>\n    <clipPath id=\"a\">\n      <path fill=\"#fff\" d=\"M0 0h380v380H0z\"/>\n    </clipPath>\n  </defs>\n</svg>","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/util/toggleStatusBar/androidNextSet/set.ls","text":"(function(){\n  return function(){\n    var onDone;\n    onDone = function(enabled){\n      if (!enabled) {\n        return window.AndroidFullScreen.immersiveMode();\n      }\n    };\n    return SolocodePlugin.isInGestureNavigationMode(onDone, function(){\n      return onDone(false);\n    });\n  };\n})();","updated":"2025-09-03T10:23:47.229849"},{"path":"lib/svg/subjects/sel.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#BA68C8\" d=\"M251.1 147.2 263 178c.8 2 .7 4.2-.5 6a6.4 6.4 0 0 1-5 3l-11 1.8a2.8 2.8 0 0 0-2.4 2.4l-3.5 35.4c-.6 5.6-5 10-10.8 10.3-11 .5-35 .3-42-.8l-7.4 28.6a2 2 0 0 1-2 1.6H91.8a2 2 0 0 1-1.5-.8 2 2 0 0 1-.3-1.8c8.8-27.8 17.7-48.7 3.4-68.2-9-12.6-23.8-33.6-23.8-58.9A90.1 90.1 0 0 1 166.7 46a88.5 88.5 0 0 1 56.8 26.5 89 89 0 0 1 25.7 57.3 47 47 0 0 1-.3 8 18 18 0 0 0 2.2 9.4Z\" opacity=\".8\"/>\n  <path fill=\"#E1BEE7\" d=\"m238.5 141.5 11.7 26.4c.8 2 .7 4-.4 5.8a6.4 6.4 0 0 1-5 2.9l-10.9 1.7a2.7 2.7 0 0 0-2.2 2.3l-3.6 34a11 11 0 0 1-10.5 9.9c-11 .6-34.5.3-41.5-.7l-7.8 28.9a2 2 0 0 1-1.8 1.5H85.9a2 2 0 0 1-1.6-.8 2 2 0 0 1-.2-1.7c8.7-26.8 9.6-47.4-4.5-66.2-8.8-12.1-20.6-30-20.6-54.2 0-24.3 9.9-46.9 27.9-63.5a89.1 89.1 0 0 1 67.7-23.6 90 90 0 0 1 56.7 25.5 85 85 0 0 1 25.3 55.1 53 53 0 0 1-.3 7.7c-.3 3.3.8 6 2.2 9Z\"/>\n  <mask id=\"a\" width=\"114\" height=\"102\" x=\"105\" y=\"18\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#FF1744\" fill-rule=\"evenodd\" d=\"M218.2 49.1v5.2l-.2 1.1a44.4 44.4 0 0 1-5.3 16.2 116.4 116.4 0 0 1-20.5 23.9c-4 3.7-8.1 6.4-12.4 9.7-5.6 4.4-13.1 9.3-18.9 13.5a1 1 0 0 1-1.4 0c-5-3.6-8.7-7.2-13.6-11-5.2-4.1-10.2-8.4-15.2-12.8-6.3-5.6-12-11.8-17-18.7a44.7 44.7 0 0 1-7.6-17.4 56 56 0 0 1-.9-4.3v-5.4l.2-.9c.5-2.3.8-4.6 1.5-7 2.4-7.6 7.6-15 14.4-18.8a30 30 0 0 1 21.2-3.9 46.1 46.1 0 0 1 22.3 15.2l3.1-3.2C173.8 25 178.1 19 186.2 19a32.4 32.4 0 0 1 31 24.8c.5 1.7.7 3.6 1 5.4Z\" clip-rule=\"evenodd\"/>\n  </mask>\n  <g mask=\"url(#a)\">\n    <path fill=\"#880E4F\" fill-rule=\"evenodd\" d=\"M222 45.4V51l-.2 1.2a50 50 0 0 1-5.6 17.8 83.2 83.2 0 0 1-8.6 12.3 201 201 0 0 1-26.5 25.6c-6 4.9-12.3 9.4-18.5 14a1 1 0 0 1-1.5 0c-5.4-4-11-7.8-16.2-12.1-5.5-4.5-10.8-9.3-16.2-14.1-6.7-6.1-12.8-13-18-20.6-4-5.7-6.8-12.2-8.2-19.2l-1-4.7v-6l.2-1c.6-2.5.9-5 1.7-7.6 2.5-8.5 8-15.6 15.3-20a32.7 32.7 0 0 1 42.1 7.4c.3.3.5.7.6 1.1l3.4-3.5a32.9 32.9 0 0 1 23-9.7 33 33 0 0 1 23.2 9.6 36 36 0 0 1 10 17.7l1 6Z\" clip-rule=\"evenodd\"/>\n  </g>\n  <path fill=\"#F50057\" fill-rule=\"evenodd\" d=\"M209.9 47.6v5l-.2 1a41.5 41.5 0 0 1-5.2 15.4c-2.3 3.8-5 7.4-8 10.7a128 128 0 0 1-12.2 12.2c-4 3.5-8 6.9-12.2 10-5.6 4.2-11.4 8.1-17 12.2a1 1 0 0 1-1.4 0c-5-3.5-10.1-6.9-15-10.6-5-3.9-10-8-14.9-12.2a108.6 108.6 0 0 1-16.7-17.8 42 42 0 0 1-7.5-16.7l-.9-4v-5.2l.2-.8c.5-2.2.8-4.5 1.5-6.7a30.3 30.3 0 0 1 14.2-17.3c6.2-3.6 13.6-5 20.8-3.6 7 1.1 13.3 4.7 18 10l.6 1 3-3a31.3 31.3 0 0 1 52 15.2l1 5.2Z\" clip-rule=\"evenodd\"/>\n  <mask id=\"b\" width=\"112\" height=\"97\" x=\"98\" y=\"18\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#F50057\" fill-rule=\"evenodd\" d=\"M209.9 47.6v5l-.2 1a41.5 41.5 0 0 1-5.2 15.4c-2.3 3.8-5 7.4-8 10.7a128 128 0 0 1-12.2 12.2c-4 3.5-8 6.9-12.2 10-5.6 4.2-11.4 8.1-17 12.2a1 1 0 0 1-1.4 0c-5-3.5-10.1-6.9-15-10.6-5-3.9-10-8-14.9-12.2a108.6 108.6 0 0 1-16.7-17.8 42 42 0 0 1-7.5-16.7l-.9-4v-5.2l.2-.8c.5-2.2.8-4.5 1.5-6.7a30.3 30.3 0 0 1 14.2-17.3c6.2-3.6 13.6-5 20.8-3.6 7 1.1 13.3 4.7 18 10l.6 1 3-3a31.3 31.3 0 0 1 52 15.2l1 5.2Z\" clip-rule=\"evenodd\"/>\n  </mask>\n  <g mask=\"url(#b)\">\n    <ellipse cx=\"143.6\" cy=\"33.9\" fill=\"#FCE4EC\" opacity=\".3\" rx=\"50.5\" ry=\"56.9\" transform=\"rotate(40 143.6 34)\"/>\n  </g>\n  <path fill=\"#fff\" d=\"M134.6 29c3.8.4 7.3 2 10.2 4a31 31 0 0 0-30 30.8 21.5 21.5 0 0 1 19.8-34.9Z\" opacity=\".8\"/>\n  <path fill=\"#4A148C\" fill-rule=\"evenodd\" d=\"M92.9 95.5c1.4 1 5.4 2.6 7 3.6v11.1L111 118l3-7.8 7.1 3.5 9.2 16.5-9.2 6.7 1 13.8 3.6 1.8 6.4 3.6-7 17.3-11-3-10.1 9.4 2 11.2-18.7 5.7-6.1-4.2 2.4-6.6-13.7-2-8.2 8.2-6.1-4-3.2-16.5-6.8-12-12.2-.3-6-4 5.5-14.8 11.3-2.2 5-12.8-6.5-9.2 11.2-11.7 8.6 7.3 15.7-4.8 3.2-11 11.5-.6ZM80.8 129a19 19 0 1 0 0 37.9 19 19 0 0 0 0-37.9Z\" clip-rule=\"evenodd\" opacity=\".9\"/>\n  <path fill=\"#9C27B0\" d=\"m92.9 95.4-.5 11.4 11.3 7.8 10.5-4.4 9.1 16.2-9 6.7.8 13.7 10 5.5-7 17.2-10.9-3-10 9.3L99 187l-17.8 5.3-4.5-10.4-13.6-2-7.5 8.3-15.2-10.5 5.3-10-6.8-12-11.3-.5-1.3-18.6 11.2-2 5-12.9-6.5-9.2L49.7 100l8.5 7.4 13.2-4 3-10.9 18.5 3ZM74.7 125a18.8 18.8 0 1 0 0 37.7 18.8 18.8 0 0 0 0-37.7Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"addons/navbar/bar/user/user/items/items.ls","text":"(function(){\n  return function(){\n    var items;\n    return items = [inc(\"itemMathWeeklySpecial/item\")(), inc(\"itemSurvey/item\")(), inc(\"itemSettings/item\")(), inc(\"itemTeacherProgress/item\")(), inc(\"itemAdventCalendar/item\")(), inc(\"itemSchoolAdmin/item\")(), inc(\"itemPlusVersion/item\")(), inc(\"itemHelp/item\")(), inc(\"itemNews/item\")(), inc(\"itemShare/item\")(), inc(\"itemExit/item\")()];\n  };\n})();","updated":"2026-05-18T12:45:29.708712"},{"path":"pages/start/login/01_step1/linkQrcodeDesktop/link/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/iconModern/qr-code.svg\"),\n      size: \"1.5em\",\n      color: Color.black\n    }).css({\n      marginRight: \"0.2em\"\n    });\n  };\n})();","updated":"2026-01-06T08:48:38.102475"},{"path":"pages/start/login/01_step1/linkQrcodeNext/link/icon/icon.ls","text":"(function(){\n  return function(){\n    return SvgIcon({\n      svg: path(\"/lib/svg/iconModern/qr-code.svg\"),\n      size: \"1.5em\",\n      color: Color.black\n    }).css({\n      marginRight: \"0.2em\"\n    });\n  };\n})();","updated":"2026-01-06T08:48:38.102475"},{"path":"pages/start/startUser/07_extraPages/suggestRecoveryOption/01_page_email/setEmailButton/button.ls","text":"(function(){\n  return function(page){\n    return Button({\n      label: T(\"enterEmail\")\n    }).tap(function(){\n      return startPage({\n        path: path(\"/pages/misc/email/edit/page\"),\n        animation: \"slideLeft\",\n        params: {\n          context: \"startUser\"\n        }\n      });\n    });\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/pixelPuzzle/_t.ls","text":"(function(){\n  return {\n    manual: {\n      de: \"        Schaffst du es, das Pixel Puzzle zu lösen?\\n        \\n        Die Zahlen geben an, welche Blöcke sich in der jeweiligen Zeile oder Spalte befinden: \\n\\n        „1 3“ vor einer Zeile bedeutet z.B. dass sich in dieser Zeile ein Block aus einem Kästchen und dann ein Block aus 3 Kästchen befindet. Dazwischen muss mindestens ein leeres Kästchen sein.\\n        \\n        Tippe oder klicke einmal, um ein Kästchen zu füllen, zweimal für eine Hilfs-Markierung.\",\n      en: \"Can you solve the Pixel Puzzle?\\nThe numbers indicate the number and size of the blocks for each row and column.\\nFor example, if a row begins with the numbers “1 3”, this means that the row contains one block made up of one square and one block made up of 3 squares. There must be at least one empty square between these blocks.\\n\\nTap or click on a square once to fill it in and twice to give the square a temporary marking.\",\n      fr: \"Pourras-tu trouver la solution du Pixel Puzzle&nbsp;?\\nLes nombres indiquent le nombre et la taille des blocs de chaque ligne et colonne.\\nPar exemple, si une ligne commencent avec “1 3”, ça signifie que la ligne contient un bloc composé d'1 carré et un bloc composé de 3 carrés. Il doit y avoir minimum un carré vide entre ces blocs.\\nAppuie ou clique une fois sur un carré pour le remplir et deux fois pour marquer un carré temporairement.\",\n      es: \"¿Puedes resolver el rompecabezas de pixeles? \\nLos números indican la cantidad y la amplitud de los bloques que hay en cada fila y en cada columna. \\n\\nPor ejemplo, si encuentras los números “1 3” al inicio de una fila, quiere decir que la fila \\ncontiene un bloque de una celda y un bloque de tres celdas. Entre los bloques debe haber, por \\nlo menos, una celda vacía. \\n\\nPresiona la celda una sola vez, con el dedo o con el cursor, para rellenarla. Presiónala dos veces para marcarla temporalmente.\",\n      pt: \"Você consegue resolver o quebra-cabeça do pixel? \\nOs números indicam o número e o tamanho dos blocos em cada linha e em cada coluna. \\nPor exemplo, se uma linha começa com os números “1 3”, isso significa que a linha contém um bloco composto por um quadrado e um bloco composto por 3 quadrados. Entre os blocos deve haver pelo menos um quadrado vazio. \\nPressione um quadrado uma vez para preenchê-lo e duas vezes para dar ao quadrado uma marcação temporária.\"\n    }\n  };\n})();","updated":"2025-07-02T07:04:05.668035"},{"path":"pages/school/_shared/joinSchool/join.ls","text":"(function(){\n  return function(o){\n    var page, publicId, isTeacher, ref$, finish, onCompleted, refresh, onOffline, onError;\n    page = app.currentPage;\n    publicId = log.findLast(\"setPublicId\").value;\n    isTeacher = (ref$ = log.findLast(\"isTeacher\")) != null ? ref$.value : void 8;\n    finish = function(){\n      return inc(\"finish/finish\")();\n    };\n    onCompleted = function(result){\n      return inc(\"onCompleted/onCompleted\")(page, result, finish);\n    };\n    refresh = function(){\n      return startPage({\n        history: 0\n      });\n    };\n    onOffline = function(){\n      return inc(\"/lib/offline/offlinePopup/popup\")({\n        onClose: refresh\n      });\n    };\n    onError = function(error){\n      debug(error);\n      return inc(\"/lib/gui/errorPopup/popup\")({\n        onClose: refresh\n      });\n    };\n    if (o.school.hasDir && isTeacher) {\n      return startPage({\n        path: path(\"/pages/misc/teacherDirCode/01_enterCode/page\"),\n        params: {\n          context: \"settingsSchoolSearch\",\n          finishFunctionPath: path(\"/../app01/pages/school/_shared/joinSchool/finish/finish\")\n        }\n      });\n    } else if (o.school.schoolCode) {\n      return inc(\"/data/school/memberAdd/add\")({\n        schoolCode: o.school.schoolCode,\n        publicId: publicId,\n        onCompleted: onCompleted,\n        onOffline: onOffline,\n        onError: onError\n      });\n    } else {\n      return inc(\"/data/school/schoolCreate/create\")({\n        name: o.school.name,\n        location: o.school.location,\n        googlePlace: o.school.googlePlace,\n        creatorPublicId: publicId,\n        onCompleted: onCompleted,\n        onOffline: onOffline,\n        onError: onError\n      });\n    }\n  };\n})();","updated":"2025-07-02T07:04:05.668035"},{"path":"pages/misc/teacherDirCode/01_enterCode/form/form.ls","text":"(function(){\n  return function(page, submit){\n    return inc(\"/../app01/lib/gui/inputForm/inputForm\")({\n      label: inc(\"label/label\")(page.params.context),\n      submitLabel: T(\"continueButton\"),\n      submit: submit,\n      cancel: false,\n      forceShowButtons: true,\n      screenKeyboardLayout: twitch({\n        en: \"loginEN\",\n        fr: \"loginFR\",\n        es: \"loginES\",\n        pt: \"loginPT\",\n        def: \"login\"\n      })\n    }).css({\n      maxWidth: \"90%\",\n      margin: \"0 auto\"\n    });\n  };\n})();","updated":"2025-07-02T07:04:05.668035"},{"path":"pages/misc/teacherDirCode/01_enterCode/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        var submit, form, dirSchoolInfos, c;\n        submit = function(){\n          return inc(\"submit/submit\")(page, form);\n        };\n        page.append(form = inc(\"form/form\")(page, submit), dirSchoolInfos = inc(\"dirSchoolInfos/infos\")());\n        if (c = page.params.dirCode) {\n          form.input.setValue(c);\n        }\n        return form.input.start();\n      }\n    };\n  };\n})();","updated":"2025-07-02T07:04:05.668035"},{"path":"pages/misc/teacherDirCode/01_enterCode/form/label/label.ls","text":"(function(){\n  return function(context){\n    if (context === \"settingsSchoolSearch\") {\n      return T(\"labelSettingsSchoolSearch\");\n    } else if (context === \"extraPage\") {\n      return T(\"labelExtraPage\");\n    } else {\n      return T(\"labelSettings\");\n    }\n  };\n})();","updated":"2025-07-02T07:04:05.668035"},{"path":"pages/school/_shared/joinSchool/finish/finish.ls","text":"(function(){\n  return function(){\n    return startPage({\n      history: function(path){\n        return !_.includes(path, \"/school\") && !_.includes(path, \"/teacherDirCode\");\n      },\n      animation: \"slideDown\"\n    });\n  };\n})();","updated":"2025-07-02T07:04:05.668035"},{"path":"pages/start/_t.ls","text":"(function(){\n  return {\n    inappropriateName: {\n      de: \"Du kannst diesen Namen nicht wählen. Bitte wähle einen anderen Namen.\",\n      en_gbDev: \"You cannot choose this name. Please choose another name.\",\n      enDev: \"You cannot choose this name. Please choose another name.\",\n      frDev: \"Tu ne peux pas choisir ce nom. Veuillez choisir un autre nom.\",\n      esDev: \"No puede elegir este nombre. Por favor, elija otro nombre.\",\n      ptDev: \"Você não pode escolher esse nome. Por favor, escolha outro nome.\"\n    }\n  };\n})();","updated":"2025-07-03T09:06:03.875277"},{"path":"pages/level/afterFinish/pages/antonPlus/page3NewFamily/_t.ls","text":"(function(){\n  return {\n    title: {\n      de: \"Übrigens, es gibt nun neu: <b>ANTON-&#65279;Plus&nbsp;Familie</b>\",\n      en: \"By the way, we now offer <b>ANTON&nbsp;Plus&nbsp;Family</b>\",\n      fr: \"Nous proposons maintenant <b>ANTON-&#65279;Plus&nbsp;Famille</b>\",\n      es: \"Te proponemos adquirir <b>ANTON-&#65279;Plus&nbsp;Familia</b>\",\n      pt: \"Sugerimos que adquira <b>ANTON-&#65279;Plus&nbsp;Família</b>\"\n    },\n    text1: {\n      de: \"Erstelle eine Familiengruppe mit bis zu 5 Mitgliedern, von denen alle ANTON-Plus erhalten. Du kannst dort Aufgaben pinnen und die Münzen und Spiele kontrollieren.\",\n      en_gb: \"Create a family group with up to 5 members where everyone receives ANTON Plus. You will be able to pin learning material for your children and restrict access to coins and games.\",\n      en: \"Create a family group with up to 5 members where everyone receives ANTON Plus. Assign exercises to your children and manage access to coins and games.\",\n      fr: \"Crée un groupe familial comptant jusqu'à 5 membres qui bénéficient tous d'ANTON-Plus. Tu pourras épingler du contenu pour tes enfants et réguler l'accès aux pièces et aux jeux.\",\n      es: \"Crea un grupo familiar de hasta 5 integrantes y cada uno adquirirá ANTON-Plus automáticamente. Podrás asignar ejercicios al grupo, y también regular las recompensas y los juegos.\",\n      pt: \"Crie um grupo familiar com até 5 membros onde todos receberão ANTON-Plus. Lá você pode atribuir tarefas e controlar o acesso a moedas e jogos.\"\n    },\n    soundText: {\n      de: \"ssml:\\n<break time='300ms'/>\\nÜbrigens.\\n<break time='100ms'/>\\nEs gibt nun neu<break/>ANTON-Plus Familie!\\n<break time='700ms'/>\\nErstelle eine Familiengruppe mit bis zu 5 Mitgliedern, von denen alle ANTON-Plus erhalten. Du kannst dort Aufgaben pinnen \\nund die Münzen und Spiele kontrollieren.\",\n      en_gb: \"ssml:\\n<break time='300ms'/>\\n<voice voice=\\\"m2_2025\\\" voiceLang=\\\"en\\\">By the way.</voice>\\n<break time='100ms'/>\\n<voice voice=\\\"m2_2025\\\" voiceLang=\\\"en\\\">We now offer ANTON Plus Family.</voice>\\n<break time='300ms'/> \\n<voice voice=\\\"m2_2025\\\" voiceLang=\\\"en\\\">Create a family group with up to 5 members where everyone receives ANTON Plus. \\nYou will be able to pin learning material for your children and restrict access to coins and games.</voice>\",\n      en: \"ssml:\\n<break time='300ms'/>\\n<voice voice=\\\"m5Us\\\" voiceLang=\\\"en\\\">By the way.</voice>\\n<break time='100ms'/>\\n<voice voice=\\\"m5Us\\\" voiceLang=\\\"en\\\">We now offer ANTON Plus Family.</voice>\\n<break time='300ms'/> \\n<voice voice=\\\"m5Us\\\" voiceLang=\\\"en\\\">Create a family group with up to 5 members where everyone receives ANTON Plus. \\nAssign exercises to your children and manage access to coins and games.</voice>\",\n      fr: \"ssml:\\n<voice voice=\\\"m1\\\" voiceLang=\\\"fr\\\">Nous proposons maintenant ANTON-Plus Famille.</voice>\\n<break time='300ms'/> \\n<voice voice=\\\"m1\\\" voiceLang=\\\"fr\\\">Crée un groupe familial comptant jusqu'à 5 membres qui bénéficient tous d'ANTON-Plus. \\nTu pourras épingler du contenu pour tes enfants et réguler l'accès aux pièces et aux jeux.</voice>\",\n      es: \"ssml:\\n<voice voice=\\\"m1EsUs\\\" voiceLang=\\\"es\\\">\\nTe proponemos adquirir ANTON-Plus Familia.</voice>\\n<break time='300ms'/>\\n<voice voice=\\\"m1EsUs\\\" voiceLang=\\\"es\\\">Crea un grupo familiar de hasta 5 integrantes y cada uno adquirirá ANTON-Plus automáticamente. Podrás asignar ejercicios al grupo, y también regular las recompensas y los juegos.</voice>\",\n      pt: \"ssml:\\n<voice voice=\\\"m2\\\" voiceLang=\\\"pt\\\">\\nSugerimos que você adquira ANTON-Plus Família.</voice>\\n<break time='300ms'/>\\n<voice voice=\\\"m2\\\" voiceLang=\\\"pt\\\">Crie um grupo familiar de até 5 integrantes, e cada membro receberá automaticamente o ANTON-Plus. Você poderá atribuir tarefas aos seus grupos e controlar o acesso às moedas e aos jogos.</voice>\"\n    }\n  };\n})();","updated":"2026-03-09T07:07:27.633578"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/rows/debugInfo/info.ls","text":"(function(){\n  return function(level, p){\n    var e, duration;\n    e = p.levelEvent || log.findLast({\n      event: \"finishLevel\",\n      puid: level.puid\n    });\n    duration = Math.floor(e.duration / 60) + \"min \" + Math.floor(e.duration) % 60 + \"s\";\n    return Div({\n      color: Color.grey[350],\n      fontSize: \"0.8em\",\n      margin: \"0.2em 0.5em 0\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\"),\n      color: Color.grey[350]\n    }).css({\n      verticalAlign: \"-0.2em\",\n      marginRight: \"0.2em\"\n    }), Span().html(\"Results: total \" + e.total + \", mistakes \" + e.mistakes + \", corrects \" + e.corrects + \", resolved \" + e.resolved + \", duration \" + duration + \"\"));\n  };\n})();","updated":"2025-07-07T10:17:24.436305"},{"path":"data/content/calcPlanDescriptions/calc.ls","text":"(function(){\n  var cache;\n  cache = {};\n  return function(showAll){\n    var isBeta, cacheId, that, pds, res$, project, ref$, plan;\n    showAll == null && (showAll = false);\n    isBeta = inc(\"/data/user/isBeta/get\")();\n    cacheId = _.toString(showAll) + _.toString(isBeta) + _.toString(engine.isDebug) + engine.guiLanguage;\n    if (cache.plansListByProject !== app.plansListByProject) {\n      cache = {\n        plansListByProject: app.plansListByProject\n      };\n    } else if (that = cache[cacheId]) {\n      return that;\n    }\n    res$ = [];\n    for (project in ref$ = app.plansListByProject) {\n      plan = ref$[project];\n      if (inc(\"isPlanVisible/is\")(showAll, isBeta, plan)) {\n        res$.push(inc(\"../calcPlanDescription/calc\")(project));\n      }\n    }\n    pds = res$;\n    pds = _.sortBy(pds, [inc(\"subjectIndex/subjectIndex\"), \"sortIndex\", inc(\"grade/grade\"), \"title\"]);\n    cache[cacheId] = pds;\n    return pds;\n  };\n})();","updated":"2025-07-07T10:17:24.436305"},{"path":"addons/_translationOverlayButtonBar/bar.ls","text":"(function(){\n  return function(page){\n    var groupCodes, publicId, ref$, groupTranslationOverlaySettings, isLocked, groupLanguage, currentLanguage;\n    groupCodes = inc(\"/../app01-group/data/calcGroupCodes/calc\")();\n    publicId = typeof log != 'undefined' && log !== null ? (ref$ = log.findLast(\"setPublicId\")) != null ? ref$.value : void 8 : void 8;\n    groupTranslationOverlaySettings = inc(\"/../app01-group/data/calcTranslationOverlaySettings/calc\")(groupCodes, publicId);\n    isLocked = groupTranslationOverlaySettings != null ? groupTranslationOverlaySettings.isLocked : void 8;\n    if (isLocked) {\n      return;\n    }\n    groupLanguage = groupTranslationOverlaySettings != null ? groupTranslationOverlaySettings.language : void 8;\n    currentLanguage = groupLanguage || (typeof log != 'undefined' && log !== null ? log.findLast(\"setTranslationOverlayLanguage\") : void 8);\n    if (!currentLanguage) {\n      return;\n    }\n    page.translationOverlayLanguage = currentLanguage;\n    return Div({\n      display: \"flex\",\n      borderBottom: \"1px solid \" + Color.grey[200],\n      justifyContent: \"flex-end\",\n      minHeight: \"2.4em\"\n    }).addClass(\"translationTopbar\").html(inc(\"translateButton/button\")(page));\n  };\n})();","updated":"2025-07-07T10:17:24.436305"},{"path":"addons/topbarLevel/hint/hint/label/label.ls","text":"(function(){\n  return function(toggle, hint, slide){\n    var label, div, div2;\n    label = hint.label || T(\"hint\");\n    div = Div({\n      width: \"35em\",\n      maxWidth: \"100%\",\n      margin: \"0 auto\",\n      textAlign: \"right\",\n      marginTop: \"-2px\",\n      overflow: \"hidden\"\n    }).html(div2 = Div({\n      display: \"inline-flex\",\n      backgroundColor: Color.grey[75],\n      border: \"1px solid \" + Color.grey[250],\n      borderTop: \"0px\",\n      pointerEvents: \"auto\",\n      paddingTop: \"30px\",\n      transform: \"translateY(-100%)\",\n      backgroundClip: \"border-box\"\n    }).addClass(\"dragHandle\").html(hint.style === \"avatar\"\n      ? inc(\"avatar/avatar\")(hint, label)\n      : hint.style === \"book\"\n        ? inc(\"book/book\")(label)\n        : inc(\"bulb/bulb\")(label)).tap({\n      animation: \"none\",\n      up: toggle\n    }));\n    div.animations = inc(\"animations/animations\")(div, div2);\n    return div;\n  };\n})();","updated":"2025-11-14T09:32:26.404908"},{"path":"addons/topbarLevel/hint/hint/label/bulb/bulb.ls","text":"(function(){\n  return function(label){\n    return Div({\n      display: \"flex\",\n      padding: \"0.5em 0.65em 0.5em 0.5em\"\n    }).html(Div().html(label), SvgIcon({\n      svg: path(\"/lib/svg/iconModern/bulb-glow.svg\"),\n      color: Color.black,\n      width: \"1.2em\",\n      height: \"1.2em\"\n    }).css({\n      margin: \"0.1em 0 0.1em 0.5em\"\n    }));\n  };\n})();","updated":"2025-11-14T09:32:26.404908"},{"path":"addons/topbarLevel/feedbackIcon/icon.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      var ref$;\n      inc(\"01_popupStart/popup\")();\n      return (ref$ = page.topbar.calculator) != null ? ref$.close() : void 8;\n    };\n    return Div({\n      flex: \"0 0 2.5em\",\n      display: \"flex\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/iconModern/feedback.svg\"),\n      color: Color.grey[900],\n      size: \"1.2em\"\n    })).tap({\n      up: tap,\n      animation: \"hover\"\n    });\n  };\n})();","updated":"2026-02-26T14:39:39.739268"},{"path":"pages/search/loadingPage/page.ls","text":"(function(){\n  return function(page){\n    return {\n      navCategory: \"content\",\n      top: function(){\n        var ref$;\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          return inc(\"_topbarNext/topbar\")(page);\n        }\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.html(inc(\"/lib/gui/spinner/spinner\")());\n        return inc(\"/lib/util/loadProjectSync/load\")(page, \"app01-search\", function(){\n          var ref$, p;\n          if ((ref$ = projects.info()[\"app01-search\"]) != null && ref$.isLoaded) {\n            p = inc(\"/lib/util/cache/get/get\")(\"searchStartParams\");\n            p.history = 0;\n            return inc(\"/../app01-search/start/start\")(p);\n          } else {\n            return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"addons/topbarLevel/hint/hint/label/avatar/avatar.ls","text":"(function(){\n  return function(hint, label){\n    return Div({\n      display: \"flex\"\n    }).html(Div({\n      paddingLeft: \"0.5em\"\n    }).html(label), inc(\"/../app01-avatar/avatarTalk/avatarTalk\")({\n      type: hint.voice || \"m2\",\n      size: \"2em\"\n    }).addClass(\"avatarTalk\").css({\n      margin: \"0.2em 0.25em 0.2em 0\"\n    }));\n  };\n})();","updated":"2025-11-14T09:32:26.404908"},{"path":"data/content/_subjects/fr/subjects.ls","text":"(function(){\n  return {\n    preschool: \"Maternelle\",\n    mat: \"Maths\",\n    natfra: \"Français\",\n    sci: \"Questionner le monde\",\n    sel: \"EMC\",\n    his: \"Histoire\",\n    mus: \"Musique\",\n    fra: \"Français de scolarisation\",\n    eng: \"Anglais\",\n    deu: \"Allemand\",\n    cat: \"Catalan\",\n    es: \"Espagnol\",\n    ita: \"Italien\",\n    pt: \"Portugais\",\n    rus: \"Russe\",\n    tur: \"Turc\",\n    ukr: \"Ukrainien\"\n  };\n})();","updated":"2025-11-14T09:32:26.404908"},{"path":"lib/gui/screenKeyboard/keyboard.ls","text":"(function(){\n  return function(o){\n    o == null && (o = {});\n    o.layout == null && (o.layout = \"standard\");\n    o.submitLabel == null && (o.submitLabel = T(\"continue\"));\n    o.shiftStatus == null && (o.shiftStatus = false);\n    o.showSubmit == null && (o.showSubmit = false);\n    o.showNewLine == null && (o.showNewLine = false);\n    o.toggleState = \"main\";\n    o.minDuration == null && (o.minDuration = 140);\n    o.newDesign == null && (o.newDesign = true);\n    o.templates = inc(\"_templates/templates\");\n    o.calcMap = inc(\"calcMap/calc\")(o);\n    o.calcRowHeight = inc(\"calcRowHeight/calc\")(o);\n    o.div = inc(\"div/div\")(o);\n    o.onWindowResize = inc(\"onWindowResize/onResize\")(o);\n    o.mouseBackground = inc(\"mouseBackground/background\")(o);\n    o.createKeys = inc(\"createKeys/create\")(o);\n    o.fakeKeyStrokes = inc(\"fakeKeyStrokes/fake\")(o);\n    o.start = inc(\"start/start\")(o);\n    o.stop = inc(\"stop/stop\")(o);\n    inc(\"event/down/down\")(o);\n    inc(\"event/up/up\")(o);\n    inc(\"event/move/move\")(o);\n    inc(\"event/cancel/cancel\")(o);\n    o.div.o = o;\n    return o.div;\n  };\n})();","updated":"2025-07-09T10:56:48.350233"},{"path":"addons/navbar/items/search/item.ls","text":"(function(){\n  return function(){\n    if (deviceLog['var'](\"enableLearnBetaTab\")) {\n      return \"search\";\n    }\n  };\n})();","updated":"2025-07-09T10:56:48.350233"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/search.ls","text":"(function(){\n  return function(){\n    var o, div;\n    o = {};\n    o.showResult = inc(\"showResult/show\")(o);\n    o.showSuggestions = inc(\"showSuggestions/show\")(o);\n    o.hideSuggestions = inc(\"hideSuggestions/hide\")(o);\n    o.showStartQueries = inc(\"showStartQueries/show\")(o);\n    o.showSearch = inc(\"showSearch/show\")(o);\n    o.hideSearch = inc(\"hideSearch/hide\")(o);\n    o.notFound = inc(\"notFound/notFound\")(o);\n    o.stop = inc(\"stop/stop\")(o);\n    o.search = function(query){\n      return inc(\"searchNext/search\")(o, query);\n    };\n    div = Div({\n      height: \"calc(var(--screenHeight))\"\n    }).addClass(\"menuSearch\").html(inc(\"input/input\")(o), o.resultDiv = Div());\n    inc(\"init/init\")(o);\n    div.hideSearch = o.hideSearch;\n    div.stop = o.stop;\n    div.search = o.search;\n    div.showSearch = o.showSearch;\n    return div;\n  };\n})();","updated":"2025-07-09T12:28:01.484911"},{"path":"lib/util/soundNext/play/overwriteParams/overwrite.ls","text":"(function(){\n  return function(s, paramsOrOnFinish, onProgress, onStop){\n    var params, playParams, i$, ref$, len$, n;\n    params = s.params;\n    playParams = _.isPlainObject(paramsOrOnFinish)\n      ? paramsOrOnFinish\n      : {\n        onFinish: paramsOrOnFinish,\n        onProgress: onProgress,\n        onStop: onStop\n      };\n    for (i$ = 0, len$ = (ref$ = [\"onFinish\", \"onProgress\", \"onStop\", \"playFromPosition\"]).length; i$ < len$; ++i$) {\n      n = ref$[i$];\n      params[n] = playParams[n];\n    }\n    for (i$ = 0, len$ = (ref$ = [\"isLoop\", \"enableAnalyser\", \"volume\", \"pitchFactor\", \"speedFactor\"]).length; i$ < len$; ++i$) {\n      n = ref$[i$];\n      if (playParams[n] != null) {\n        params[n] = playParams[n];\n      }\n    }\n    return s.applyParams();\n  };\n})();","updated":"2025-11-14T09:32:26.404908"},{"path":"addons/topbarLevel/hint/hint/label/book/book.ls","text":"(function(){\n  return function(label){\n    return Div({\n      display: \"flex\",\n      padding: \"0.5em 0.65em 0.5em 0.5em\"\n    }).html(Div().html(label), SvgIcon({\n      svg: path(\"/../app01/lib/svg/iconModern/book.svg\"),\n      color: Color.black,\n      width: \"1.2em\",\n      height: \"1.2em\"\n    }).css({\n      margin: \"0.1em 0 0.1em 0.5em\"\n    }));\n  };\n})();","updated":"2025-11-14T09:32:26.404908"},{"path":"lib/svg/iconModern/book.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"96\" height=\"96\" fill=\"none\"><path fill=\"#373737\" d=\"M30.848 16.24c6.13-.483 12.023 1.164 17.152 4.104 5.129-2.941 11.026-4.591 17.163-4.085 2.859.235 5.567.474 10.837.474h3.192v7.301h4.684a6.704 6.704 0 0 1 6.703 6.703v42.46a6.703 6.703 0 0 1-6.703 6.703H56.727c-4.797 4.42-12 4.376-16.854.176l-.203-.176H12.545a6.703 6.703 0 0 1-6.703-6.641l-.39-42.46a6.703 6.703 0 0 1 6.702-6.765h4.153v-7.3H19.5c5.41 0 8.261-.252 11.348-.495ZM12.643 73.097H39.84c1.524 0 2.998.55 4.15 1.546l.333.288c2.34 2.023 5.667 1.964 7.837-.07l.2-.18c1.032-.885 2.52-1.584 4.133-1.584h27.283V30.837h-4.584v37.152l-17.015-.733a21.054 21.054 0 0 0-10.999 2.557 3.192 3.192 0 0 1-6.358 0 21.095 21.095 0 0 0-11.001-2.564l-17.512.737v-37.15h-4.052l.388 42.262Zm51.994-50.476c-4.634-.382-9.262.854-13.445 3.249v36.901a27.43 27.43 0 0 1 11.26-1.894l10.355.446V23.083c-3.572-.076-5.867-.271-8.17-.461Zm-19.83 3.25c-4.183-2.395-8.815-3.634-13.459-3.268-2.48.194-4.917.4-8.656.478v38.245l10.858-.457a27.471 27.471 0 0 1 11.257 1.901V25.872Z\"/></svg>","updated":"2025-11-14T09:32:26.404908"},{"path":"lib/svg/iconModern/bulb-glow.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"96\" height=\"96\" fill=\"none\"><path fill=\"#373737\" d=\"M48.798 18c.12 0 .238.006.355.017C64.516 18.493 76 30.48 76 45.003c0 9.26-4.756 15.737-9.054 20.247l-.028.03c-1.37 1.408-1.806 2.82-2.037 4.326a3.994 3.994 0 0 1-.442 1.309v3.958c0 1.978-.614 3.81-1.658 5.323l.03 2.3c.083 6.712-5.345 12.193-12.057 12.178l-3.939-.008c-6.578-.012-11.938-5.303-12.02-11.888l-.031-2.593a9.344 9.344 0 0 1-1.68-5.12l-.092-3.513a3.982 3.982 0 0 1-.873-1.946c-.23-1.507-.668-2.918-2.037-4.326l-.028-.03c-4.202-4.41-8.76-11.062-9.04-19.432L21 45.003c0-13.945 11.414-26.471 26.817-26.983.127-.012.255-.02.385-.02.105 0 .209.003.313.004.094-.001.188-.004.283-.004Zm-6.755 66.194a5.045 5.045 0 0 0 4.785 3.472l3.94.008a5.03 5.03 0 0 0 4.78-3.43c-.176.01-.353.014-.532.014l-12.59-.052c-.128 0-.256-.006-.383-.012Zm-1.961-9.311a2.385 2.385 0 0 0 2.373 2.323l12.59.052a2.385 2.385 0 0 0 2.395-2.385v-2.206H40.023l.058 2.216Zm8.418-48.88c-11.312.157-19.5 9.252-19.5 19l.009.542c.188 5.574 3.26 10.433 6.837 14.186h-.001c1.965 2.03 3.01 4.146 3.6 6.07h18.11c.589-1.924 1.634-4.04 3.6-6.07C64.884 55.815 68 51.24 68 45.003c0-10.209-8.131-18.851-19.5-19ZM13.342 42.494a3.506 3.506 0 0 1 0 7.012H7.514a3.507 3.507 0 1 1 0-7.012h5.828Zm76.826 0a3.506 3.506 0 0 1 0 7.012H84.34a3.507 3.507 0 1 1 0-7.012h5.828ZM13.52 15.217a3.506 3.506 0 0 1 4.959 0l4.5 4.5a3.506 3.506 0 0 1-4.957 4.958l-4.501-4.5a3.506 3.506 0 0 1 0-4.958Zm65.15.108a3.507 3.507 0 1 1 4.66 5.241l-4.5 4a3.507 3.507 0 1 1-4.66-5.24l4.5-4ZM49 .495A3.506 3.506 0 0 1 52.506 4v5.828a3.507 3.507 0 1 1-7.012 0V4A3.506 3.506 0 0 1 49 .494Z\"/></svg>","updated":"2025-11-14T09:32:26.404908"},{"path":"lib/svg/iconModern/drag.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"96\" height=\"96\" fill=\"none\">\n  <path fill=\"#373737\" d=\"M55.1699 24.8261c1.561 1.5631 4.0931 1.5649 5.6562.0039s1.5649-4.0931.0039-5.6562l-9.9863-10a4 4 0 0 0-2.8272-1.1739 4.002 4.002 0 0 0-2.83 1.17l-10.0127 10c-1.5631 1.561-1.5649 4.0931-.0039 5.6562s4.0931 1.5649 5.6562.0039l7.1846-7.1738zm20.83 20.1738c2.2092 0 4-1.7908 4-4 0-2.2091-1.7908-4-4-4h-56c-2.2091 0-4 1.7909-4 4s1.7909 4 4 4zm0 14c2.2092 0 4-1.7908 4-4 0-2.2091-1.7908-4-4-4h-56c-2.2091 0-4 1.7909-4 4s1.7909 4 4 4zm-28.0166 29a4.002 4.002 0 0 0 2.8301-1.1699l10.0127-10c1.5631-1.561 1.5649-4.0931.0039-5.6562s-4.0931-1.5649-5.6562-.0039l-7.1846 7.1738-7.1592-7.1699c-1.561-1.5631-4.0931-1.5649-5.6562-.0039s-1.5649 4.0931-.0039 5.6562l9.9863 10a4 4 0 0 0 2.8271 1.1738\"/>\n</svg>","updated":"2025-11-14T09:32:26.404908"},{"path":"lib/svg/iconModern/feedback.svg","text":"<svg width=\"96\" height=\"96\" viewBox=\"0 0 96 96\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M48.5793 7.28027C70.1397 7.28029 87.706 24.5313 87.7063 45.9199C87.7063 67.3088 70.1398 84.5605 48.5793 84.5605C42.3248 84.5605 36.4037 83.1075 31.1506 80.5225L11.5324 89.3896C10.1136 90.0309 8.44521 89.7208 7.35178 88.6123C6.25849 87.5039 5.97068 85.8317 6.63107 84.4219L15.2112 66.1074C11.5606 60.2334 9.45236 53.3164 9.45236 45.9199C9.45262 24.5314 27.0191 7.28049 48.5793 7.28027ZM48.5793 14.7197C31.0307 14.7199 16.893 28.7371 16.8928 45.9199C16.8928 52.5115 18.9651 58.6198 22.508 63.6582L23.7483 65.4219L17.6379 78.4658L31.4358 72.2295L33.0695 73.1348C37.6488 75.6712 42.9357 77.121 48.5793 77.1211C66.1282 77.1211 80.2668 63.103 80.2668 45.9199C80.2666 28.737 66.1281 14.7197 48.5793 14.7197ZM31.0569 50.3486C32.9224 49.4402 35.199 50.1071 36.2385 51.876L36.3352 52.0508C38.4233 56.0679 43.2102 58.7578 48.6086 58.7578C53.8378 58.7577 58.4935 56.2316 60.6779 52.4238L60.882 52.0508C61.8696 50.1491 64.2369 49.4156 66.1594 50.3486C68.1007 51.291 68.9172 53.6101 67.9172 55.5303C64.4459 62.2102 56.8424 66.4491 48.6086 66.4492C40.3742 66.4492 32.7738 62.2071 29.3 55.5303C28.2994 53.6091 29.1175 51.2933 31.0569 50.3486ZM60.1154 29.4336C60.681 29.3205 61.2668 29.3149 61.8352 29.4336C62.1152 29.4845 62.3954 29.5752 62.6584 29.6826C62.9214 29.7929 63.176 29.9314 63.4192 30.0869C63.6567 30.248 63.8854 30.435 64.0862 30.6357C64.9035 31.4557 65.3762 32.5898 65.3762 33.749C65.3761 34.9081 64.9034 36.0414 64.0862 36.8584C63.2604 37.6755 62.1323 38.1484 60.9729 38.1484C59.8134 38.1484 58.6789 37.6755 57.8615 36.8584C57.6553 36.6578 57.4748 36.4287 57.3137 36.1914C57.1525 35.9539 57.0159 35.6936 56.9084 35.4307L56.9113 35.4277C56.8012 35.165 56.714 34.8852 56.6574 34.6055C56.6009 34.32 56.5754 34.0372 56.5754 33.7461C56.5754 33.455 56.6009 33.1722 56.6574 32.8867C56.714 32.6068 56.8039 32.3264 56.9113 32.0635C57.0216 31.7949 57.1545 31.5402 57.3156 31.3027C57.4768 31.0596 57.6581 30.8364 57.8645 30.6357C58.0653 30.435 58.2892 30.2481 58.5324 30.0869C58.7699 29.9315 59.0246 29.79 59.2932 29.6826C59.556 29.5725 59.83 29.4845 60.1154 29.4336ZM34.593 29.2266C36.0212 28.938 37.5371 29.4027 38.5637 30.4297C38.7644 30.6304 38.9455 30.8535 39.1067 31.0967C39.2679 31.3343 39.4037 31.5896 39.5168 31.8584C39.6271 32.1214 39.7093 32.4016 39.7658 32.6816C39.8223 32.9671 39.8537 33.2555 39.8537 33.541C39.8537 33.8267 39.8224 34.1157 39.7658 34.4014C39.7093 34.6814 39.6242 34.9616 39.5168 35.2246C39.4009 35.4877 39.265 35.7487 39.1067 35.9863C38.9484 36.2238 38.7644 36.4526 38.5637 36.6533C37.7408 37.4708 36.6155 37.9432 35.4533 37.9434C34.291 37.9434 33.1564 37.4709 32.3391 36.6533C32.1327 36.4525 31.9514 36.2238 31.7903 35.9863C31.6291 35.7487 31.4934 35.4877 31.386 35.2246H31.3889C31.2786 34.9616 31.1906 34.6814 31.134 34.4014C31.0775 34.1157 31.052 33.8323 31.052 33.541C31.052 33.2499 31.0775 32.9671 31.134 32.6816C31.1905 32.4016 31.2815 32.1214 31.3889 31.8584C31.4992 31.5896 31.632 31.3343 31.7932 31.0967C31.9543 30.8535 32.1357 30.6305 32.342 30.4297C32.5427 30.2289 32.7659 30.0421 33.009 29.8809C33.2465 29.7253 33.5012 29.5831 33.7697 29.4756C34.0327 29.3653 34.3074 29.2775 34.593 29.2266Z\" fill=\"#373737\"/>\n</svg>\n","updated":"2025-11-14T09:32:26.404908"},{"path":"lib/svg/iconModern/resize.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#292C36\" d=\"M37.28 52.459a4 4 0 0 1 5.67 5.643L24.09 77.05h13.436a4 4 0 0 1 0 8h-27.06V57.99a4 4 0 0 1 8 0v13.37zm47.41-37.558V38.01a4 4 0 0 1-8 0V24.66L58.925 42.566a4 4 0 0 1-5.68-5.634l17.843-17.983H57.63a4 4 0 0 1 0-8h27.06z\"/>\n</svg>\n","updated":"2025-11-14T09:32:26.404908"},{"path":"lib/util/soundNext/applyParams/applyPlayFromPosition/apply.ls","text":"(function(){\n  return function(s){\n    var i$, ref$, len$, sp, pos;\n    for (i$ = 0, len$ = (ref$ = s.soundParts).length; i$ < len$; ++i$) {\n      sp = ref$[i$];\n      sp.playFromPosition = 0;\n    }\n    if (!s.params.playFromPosition) {\n      return;\n    }\n    if (s.soundParts.length > 1) {\n      throw Error(\"playFromPosition param isn't suppoperted with multi sound\");\n    }\n    if (s.params.speedFactor != null && s.params.speedFactor !== 1) {\n      throw Error(\"playFromPosition param isn't supported with speedFactor\");\n    }\n    sp = s.soundParts[0];\n    pos = Math.min(s.params.playFromPosition, sp.duration);\n    return sp.playFromPosition = pos;\n  };\n})();","updated":"2025-11-14T09:32:26.404908"},{"path":"pages/misc/qrcode/_t.ls","text":"(function(){\n  return {\n    backCamera: {\n      de: \"Kamera: hinten\",\n      en: \"Camera: back\",\n      fr: \"Appareil photo&nbsp;: arrière\",\n      es: \"Cámara: trasera\",\n      pt: \"Câmera: atrás\"\n    },\n    frontCamera: {\n      de: \"Kamera: vorne\",\n      en: \"Camera: front\",\n      fr: \"Appareil photo&nbsp;: avant\",\n      es: \"Cámara: frontal\",\n      pt: \"Câmera: frente\"\n    },\n    allowCameraAccess: {\n      de: \"Bitte erlaube den Zugriff auf deine Kamera, um die QR-Codes zu scannen.\",\n      en: \"Please allow access to your camera, in order to scan QR codes.\",\n      fr: \"Merci d'autoriser l'accès à ton appareil photo pour pouvoir scanner les codes QR.\",\n      es: \"Por favor, permite el acceso a tu cámara para que puedas escanear códigos QR.\",\n      pt: \"Por favor, habilite o acesso à sua câmera para escanear o código QR.\"\n    },\n    scanQRCode: {\n      de: \"QR-Code scannen\",\n      en: \"Scan QR code\",\n      fr: \"Scanner le code QR\",\n      es: \"Escanear código QR\",\n      pt: \"Escanear código QR\"\n    }\n  };\n})();","updated":"2025-07-10T08:08:50.440186"},{"path":"pages/misc/qrcode/topbar/topbar.ls","text":"(function(){\n  return function(o){\n    return inc(\"/addons/topbar2/topbar\")({\n      title: T(\"scanQRCode\"),\n      close: function(){\n        var duration;\n        duration = new Date() - o.startDate;\n        deviceLog.log({\n          event: \"debugQrcodeAbort\",\n          duration: duration\n        });\n        return startPage({\n          history: -1,\n          animation: \"slideDown\"\n        });\n      }\n    });\n  };\n})();","updated":"2025-07-10T08:08:50.440186"},{"path":"pages/misc/qrcode/page.ls","text":"(function(){\n  return function(page){\n    var o;\n    o = {};\n    return {\n      top: function(){\n        return inc(\"topbar/topbar\")(o);\n      },\n      bottom: function(){\n        return inc(\"bottom/bottom\")();\n      },\n      finish: function(){\n        body.css({\n          background: \"white\"\n        });\n        return QRScanner.destroy();\n      },\n      start: function(){\n        o.startDate = new Date();\n        deviceLog.log({\n          event: \"debugQrcodeStart\"\n        });\n        page.html(inc(\"icon/icon\")());\n        return inc(\"initScanner/initScanner\")(page, o);\n      }\n    };\n  };\n})();","updated":"2025-07-10T08:08:50.440186"},{"path":"pages/misc/qrcode/bottom/bottom.ls","text":"(function(){\n  return function(){\n    var o, b2;\n    o = {};\n    return Div({\n      padding: \"0.5em\",\n      textAlign: \"center\"\n    }).html(Div({\n      margin: \"0 auto\"\n    }).html(b2 = Button({\n      label: T(\"backCamera\"),\n      icon: path(\"/lib/svg/shape/flip.svg\")\n    }).tap(function(){\n      if (o.frontCamera) {\n        o.frontCamera = false;\n        QRScanner.useBackCamera();\n        return b2.setLabel(T(\"backCamera\"));\n      } else {\n        o.frontCamera = true;\n        QRScanner.useFrontCamera();\n        return b2.setLabel(T(\"frontCamera\"));\n      }\n    }).css({\n      margin: \"0.5em\"\n    })));\n  };\n})();","updated":"2025-07-10T08:08:50.440186"},{"path":"pages/misc/qrcode/icon/icon.ls","text":"(function(){\n  return function(){\n    return Svg({\n      svg: path(\"/lib/svg/shape/qrcode-scan.svg\"),\n      color: Color.black\n    }).css({\n      opacity: 0.2,\n      width: \"100%\",\n      maxWidth: \"300px\",\n      height: \"100%\",\n      maxHeight: \"300px\"\n    });\n  };\n})();","updated":"2025-07-10T08:08:50.440186"},{"path":"pages/misc/qrcode/initScanner/initScanner.ls","text":"(function(){\n  return function(page, o){\n    return setTimeout(function(){\n      page.pageSpacer.css({\n        backgroundColor: \"transparent\"\n      });\n      return QRScanner.prepare(function(err, status){\n        var ref$, ref1$;\n        if (err && err.name === \"CAMERA_ACCESS_DENIED\") {\n          inc(\"/lib/gui/toast/toast\")({\n            label: T(\"allowCameraAccess\")\n          }).tap(((ref$ = window.cordova) != null ? (ref1$ = ref$.plugins) != null ? ref1$.settings : void 8 : void 8) != null ? function(){\n            return window.cordova.plugins.settings.open(\"application_details\");\n          } : void 8);\n          return;\n        }\n        return QRScanner.show(function(err, status){\n          return QRScanner.scan(function(error, data){\n            if (data) {\n              deviceLog.log({\n                event: \"debugQrcodeSuccess\",\n                duration: new Date() - o.startDate\n              });\n              QRScanner.pausePreview();\n              page.html(Svg({\n                svg: path(\"/lib/svg/shape/validated.svg\"),\n                size: \"15em\",\n                color: Color.green[500]\n              }));\n              return setTimeout(function(){\n                var params;\n                params = page.params || {};\n                params.qrCodeScanData = data;\n                page.pageSpacer.css({\n                  backgroundColor: \"white\"\n                });\n                return startPage({\n                  history: -1,\n                  animation: \"slideDown\",\n                  params: params\n                });\n              }, 1000);\n            }\n          });\n        });\n      });\n    }, 500);\n  };\n})();","updated":"2025-07-10T08:08:50.440186"},{"path":"pages/support/news/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        var ref$;\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          return inc(\"_topbarNext/topbar\")(page);\n        }\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        var loadNewsProject, startNewsPage;\n        loadNewsProject = function(){\n          return inc(\"/lib/util/loadProjects/load\")({\n            projectDescriptions: [{\n              project: \"app01-news\"\n            }],\n            onDone: function(doneProjects){\n              var newsList, lastNews;\n              if (page !== app.currentPage) {\n                return;\n              }\n              newsList = inc(\"/../app01-news-list/calcNewsList/calc\")().slice(-1);\n              if (newsList.length === 0) {\n                page.html(T(\"noNews\"));\n                return;\n              }\n              lastNews = newsList[0];\n              if (inc(\"/../app01-news/news/\" + lastNews + \"/news\", {\n                silentError: true\n              }).includeError) {\n                inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n                return;\n              }\n              return startNewsPage();\n            },\n            onProjectMissingError: function(){\n              return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n            }\n          });\n        };\n        startNewsPage = function(){\n          return startPage({\n            path: path(\"/../app01-news/pages/news/page\"),\n            history: 0,\n            animation: \"none\",\n            params: _.omit(page.params, \"history\")\n          });\n        };\n        page.append(inc(\"/lib/gui/spinner/spinner\")());\n        return loadNewsProject();\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"lib/init/softKeyboard/android5To8/detectHeight/onInterval/on.ls","text":"(function(){\n  var lastHeight;\n  lastHeight = 0;\n  return function(){\n    var a;\n    a = window.AndroidFullScreen;\n    return SolocodePlugin.getVisibleScreenSize(function(data){\n      return trySafe(function(){\n        var h;\n        h = data.rootViewHeight - data.resultBottom;\n        h = _.round(h / data.density);\n        if (h === lastHeight) {\n          return;\n        }\n        lastHeight = h;\n        inc(\"../../../_setHeight/set\")(h);\n        if (h > 100) {\n          return a.setSystemUiVisibility(a.SYSTEM_UI_FLAG_VISIBLE | a.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | a.SYSTEM_UI_FLAG_FULLSCREEN);\n        } else {\n          return window.AndroidFullScreen.immersiveMode(function(){}, function(){});\n        }\n      });\n    });\n  };\n})();","updated":"2025-07-15T12:40:10.922698"},{"path":"pages/search/loadingPage/_topbarNext/_t.ls","text":"(function(){\n  return {\n    searchTitle: {\n      de: \"Suchen\",\n      en: \"Search\",\n      fr: \"Recherche\",\n      es: \"Buscar\",\n      pt: \"Buscar\"\n    }\n  };\n})();","updated":"2025-07-15T12:40:10.922698"},{"path":"pages/search/loadingPage/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"hamburger\",\n      title: T(\"searchTitle\")\n    });\n  };\n})();","updated":"2025-07-15T12:40:10.922698"},{"path":"pages/support/news/_topbarNext/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/../app01-topbar/topbar/topbar\")({\n      topbarMode: \"close\",\n      title: T(\"antonNews\"),\n      onClose: function(){\n        return startPage({\n          history: -1,\n          animation: \"slideDown\"\n        });\n      }\n    });\n  };\n})();","updated":"2025-07-15T12:40:10.922698"},{"path":"pages/support/help/overviewNext/_t.ls","text":"(function(){\n  return {\n    faqDescription: {\n      de: \"Hier findest du Fragen und Antworten, die auch schon andere Nutzer/innen gestellt haben.\",\n      en: \"Find the answers to frequently asked questions.\",\n      fr: \"Tu trouves ici des réponses aux questions que d'autres utilisateurs ont déjà posées.\",\n      es: \"Consulta preguntas y respuestas que otros usuarios también han hecho.\",\n      pt: \"Aqui você encontra respostas para perguntas que outros usuários já fizeram.\"\n    },\n    chatDescription: {\n      de: \"Hier findest du unseren Support-Chat, in welchem du unserem Support-Team schreiben kannst.\",\n      en: \"Message our support team directly.\",\n      fr: \"Tu trouves ici notre tchat d'aide pour écrire directement à notre équipe.\",\n      es: \"Comunícate directamente con nuestro equipo a través del chat de ayuda.\",\n      pt: \"Envie uma mensagem diretamente para nossa equipe de suporte.\"\n    }\n  };\n})();","updated":"2025-09-30T07:14:51.606212"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/show.ls","text":"(function(){\n  return function(level, p){\n    var div, showAnimations;\n    div = Div({\n      width: \"35em\",\n      display: \"flex\",\n      flexDirection: \"column\",\n      justifyContent: \"flex-start\",\n      alignItems: \"stretch\"\n    }).html(inc(\"header/header\")(level, p), inc(\"rows/rows\")(level, p), inc(\"closeButton/button\")(p));\n    showAnimations = app.currentPopup == null;\n    return p.popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      animationOnShow: false,\n      animationOnClose: showAnimations,\n      animationDisableBackground: showAnimations,\n      onClose: p.onClose\n    });\n  };\n})();","updated":"2025-11-24T11:24:05.793154"},{"path":"lib/gui/avatar/avatar.ls","text":"(function(){\n  return function(description, view, zoom){\n    var avatar, div;\n    if (deviceLog['var'](\"enableAvatarValidationNext\")) {\n      return inc(\"avatarNext\")(description, view, zoom);\n    }\n    if (description != null && description.avatar) {\n      avatar = description.avatar;\n    } else if ((description != null && description.set) || (description != null && description.version)) {\n      avatar = description;\n      description = {};\n    }\n    if ((avatar != null ? avatar.version : void 8) === 2 && !inc(\"/../app01-avatar/avatarWithCache/avatar\", {\n      silentError: true\n    }).includeError) {\n      div = inc(\"/../app01-avatar/avatarWithCache/avatar\")({\n        avatar: avatar,\n        view: view || \"portrait\"\n      });\n      div.zoom = function(){\n        return inc(\"overlay/overlay\")(div, avatar, description);\n      };\n      if (zoom) {\n        div.tap(function(){\n          return inc(\"overlay/overlay\")(div, avatar, description);\n        });\n      }\n    } else {\n      div = inc(\"defaultHead/head\")();\n    }\n    return div.css({\n      display: \"inline-block\",\n      width: \"2.5em\",\n      height: \"2.5em\"\n    }).addClass(\"avatar\");\n  };\n})();","updated":"2025-07-21T08:18:19.029418"},{"path":"lib/gui/avatar/avatarNext.ls","text":"(function(){\n  return function(description, view, zoom){\n    var avatar, div;\n    if (description != null && description.avatar) {\n      avatar = description.avatar;\n    } else if ((description != null && description.set) || (description != null && description.version)) {\n      avatar = description;\n      description = {};\n    }\n    div = inc(\"/../app01-avatar/avatar/avatar\")({\n      avatar: avatar,\n      view: view || \"portrait\",\n      withCache: true\n    });\n    div.zoom = function(){\n      return inc(\"overlay/overlay\")(div, avatar, description);\n    };\n    if (zoom) {\n      div.tap(function(){\n        return inc(\"overlay/overlay\")(div, avatar, description);\n      });\n    }\n    return div.css({\n      display: \"inline-block\",\n      width: \"2.5em\",\n      height: \"2.5em\"\n    }).addClass(\"avatar\");\n  };\n})();","updated":"2025-07-21T08:18:19.029418"},{"path":"pages/start/startUser/07_extraPages/showBWStateLicenseInfo/show.ls","text":"(function(){\n  return function(){\n    var that, lastShowDate, nextShowDate, isTeacher, groupDescriptions, isTeacherInGroup, schoolDescriptions, i$, len$, sd, hasSchoolInBW;\n    if (new Date() > new Date(\"2025-12-31\")) {\n      return false;\n    }\n    if (engine.guiLanguage !== \"de\") {\n      return false;\n    }\n    if (that = typeof log != 'undefined' && log !== null ? log.findLast(\"showBWStateLicenseInfo\") : void 8) {\n      lastShowDate = new Date(that.created);\n      nextShowDate = new Date();\n      nextShowDate.setDate(lastShowDate.getDate() + 10);\n      if (new Date() < nextShowDate) {\n        return false;\n      }\n    }\n    isTeacher = inc(\"/data/user/isTeacher/get\")();\n    if (!isTeacher) {\n      return false;\n    }\n    groupDescriptions = inc(\"/../app01-group/data/calcGroupDescriptions/calc\")();\n    isTeacherInGroup = _.find(groupDescriptions, function(gd){\n      var ref$;\n      return gd != null ? (ref$ = gd.userRoles) != null ? ref$.teacher : void 8 : void 8;\n    }) != null;\n    if (!isTeacherInGroup) {\n      return false;\n    }\n    schoolDescriptions = inc(\"/data/school/calcSchoolDescriptions/calc\")();\n    for (i$ = 0, len$ = schoolDescriptions.length; i$ < len$; ++i$) {\n      sd = schoolDescriptions[i$];\n      if (sd != null && sd.hasDir) {\n        return false;\n      }\n    }\n    hasSchoolInBW = _.find(schoolDescriptions, function(sd){\n      return (sd != null ? sd.stateCode : void 8) === \"BW\";\n    }) != null;\n    if (!hasSchoolInBW) {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0\n    });\n    return true;\n  };\n})();","updated":"2025-07-23T07:06:16.125509"},{"path":"pages/support/help/faqList/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        var ref$;\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          return inc(\"_topbarNext/topbar\")(page);\n        }\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"../_faqUrlDescription/description\")();\n      },\n      start: function(){\n        var ref$, that, ref1$;\n        page.onSearch = inc(\"onSearch/onSearch\")(page);\n        page.clickOpenChat = inc(\"clickOpenChat/click\")(page);\n        page.loadCategories = inc(\"loadCategories/load\")(page);\n        page.create = inc(\"create/create\")(page);\n        if ((deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) && page.categories != null) {\n          page.disablePageVerticalCenter = true;\n        }\n        if (that = page.params.search) {\n          page.topbar.setSearchValue(that);\n          if ((ref1$ = app.lastInput) != null) {\n            ref1$.stop();\n          }\n        }\n        page.append(inc(\"/lib/gui/spinner/spinner\")());\n        return page.loadCategories();\n      }\n    };\n  };\n})();","updated":"2025-08-25T12:59:49.630473"},{"path":"pages/support/help/faqList/filterCategories/filterQuestions/filterBySearchQuery/filter.ls","text":"(function(){\n  return function(category, question, query){\n    var categoryName, categoryTags, that, title, tags, faq, text;\n    query = _.deburr(query);\n    categoryName = category.name.toLowerCase();\n    categoryTags = (that = category.tags) ? _.ensureArray(that) : void 8;\n    if (_.includes(categoryName, query), _.some(categoryTags, function(t){\n      return _.includes(_.deburr(t.toLowerCase()), query);\n    })) {\n      return question;\n    }\n    title = question.title.toLowerCase();\n    title = _.deburr(title);\n    tags = _.ensureArray(question.tags);\n    faq = inc(question.path)();\n    text = faq.body;\n    if (that = text.outerText) {\n      text = that;\n    }\n    text = text != null ? typeof text.toLowerCase == 'function' ? text.toLowerCase() : void 8 : void 8;\n    text = _.deburr(text);\n    if (_.includes(title, query) || _.includes(text, query) || _.some(tags, function(t){\n      return _.includes(_.deburr(t.toLowerCase()), query);\n    })) {\n      return question;\n    }\n  };\n})();","updated":"2025-07-23T08:10:23.432713"},{"path":"pages/misc/email/show/withoutMail/buttonAdd/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      return inc(\"/pages/misc/_shared/confirmAge16AndPrivacy/confirm\")(function(){\n        return startPage({\n          path: path(\"/pages/misc/email/edit/page\"),\n          animation: \"slideUp\"\n        });\n      });\n    };\n    return Button({\n      label: T(\"addEmail\"),\n      action: tap\n    }).css({\n      width: \"15em\",\n      borderRadius: \"8px\",\n      marginBottom: \"1.2em\"\n    });\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/email/show/withoutMail/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      padding: \"2em 1em\"\n    }).html(T(\"recommendEmailText\"));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/email/edit/form/form.ls","text":"(function(){\n  return function(page){\n    var form, ref$;\n    form = inc(\"/lib/gui/inputForm/inputForm\")({\n      label: page.oldEvent\n        ? T(\"enterNewEmail\")\n        : T(\"enterEmail\"),\n      submitLabel: T(\"save\"),\n      submit: page.submit,\n      cancel: false,\n      screenKeyboardLayout: twitch({\n        de: \"login\",\n        en: \"loginEN\",\n        fr: \"loginFR\",\n        es: \"loginES\",\n        pt: \"loginPT\"\n      })\n    }).css({\n      marginBottom: \"1.2em\"\n    });\n    if ((ref$ = form.findFirst(\".buttonsSubmitCancel\")) != null) {\n      ref$.remove();\n    }\n    return form;\n  };\n})();","updated":"2026-02-27T14:26:43.05923"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/totalAndCoin/total/total.ls","text":"(function(){\n  return function(totalCoins){\n    var div;\n    div = Div({\n      fontSize: \"1.2em\",\n      color: Color.yellow[800],\n      paddingRight: \"0.6em\",\n      minWidth: \"2em\",\n      textAlign: \"right\"\n    }).html(totalCoins - 1);\n    setTimeout(function(){\n      return div.html(totalCoins);\n    }, 500);\n    return div;\n  };\n})();","updated":"2026-02-27T14:26:43.05923"},{"path":"pages/misc/teacherDirCode/01_enterCode/_t.ls","text":"(function(){\n  return {\n    labelSettings: {\n      deDev: \"Hat deine Schule eine ANTON-Schullizenz? Dann kannst du dieser Schule beitreten, indem du hier den Code einträgst, den du von deinem Schul-&#65279;Admin oder von uns erhalten hast.\",\n      en_gb: \"If your school has an ANTON School Licence, you can join the school here by entering the code that you received from your school admin or from us.\",\n      en: \"If your school has an ANTON School License, you can join the school here by entering the code that you received from your school admin or from us.\",\n      fr: \"Ton école a-t-elle une licence scolaire ANTON&nbsp;? Si oui, tu peux rejoindre cette école en entrant ici le code que tu as avez reçu de l'admin de l'école ou de notre part.\",\n      es: \"Si tu escuela tiene una Licencia Escolar ANTON, puedes ingresar la clave que te proporcionó tu escuela o el equipo de ANTON aquí para unirte al directorio escolar.\",\n      pt: \"A sua escola possui uma Licença Escolar ANTON? Se sim, você pode vincular sua conta à escola inserindo aqui o código que recebeu da administração escolar ou da nossa equipe.\"\n    },\n    labelSettingsSchoolSearch: {\n      deDev: \"Die ausgewählte Schule hat eine ANTON-Schullizenz. Um dem Schulverzeichnis dieser Schule beizutreten, trage hier bitte den Code ein, den du von deinem Schul-&#65279;Admin oder von uns erhalten hast.\",\n      en_gb: \"The selected school has an ANTON School Licence. To join the school directory of this school, please enter the code you received from your school admin or from us here.\",\n      en: \"The selected school has an ANTON School License. To join the school directory of this school, please enter the code you received from your school admin or from us here.\",\n      fr: \"L'école sélectionnée dispose d'une licence scolaire ANTON. Pour rejoindre le répertoire scolaire de l'école, entre ici le code que tu as avez reçu de l'admin de l'école ou de notre part.\",\n      es: \"La escuela que seleccionaste cuenta con una Licencia Escolar ANTON. Para unirte a esta escuela en ANTON, ingresa aquí la clave que te proporcionó tu escuela o el equipo de ANTON.\",\n      pt: \"A escola selecionada possui uma Licença Escolar ANTON. Para entrar no Diretório Escolar desta escola, insira aqui o código que você recebeu da administração escolar ou da nossa equipe.\"\n    },\n    labelExtraPage: {\n      deDev: \"Deine Schule hat eine ANTON-Schullizenz. Um dem Schulverzeichnis dieser Schule beizutreten, trage hier bitte den Code ein, den du von deinem Schul-&#65279;Admin oder von uns erhalten hast.\",\n      en_gb: \"Your school has an ANTON School Licence. To join the school directory of this school, please enter the code you received from your school admin or from us here.\",\n      en: \"Your school has an ANTON School License. To join the school directory of this school, please enter the code you received from your school admin or from us here.\",\n      fr: \"Ton école a une licence scolaire ANTON. Pour rejoindre le répertoire scolaire de ton école, entre ici le code que tu as avez reçu de l'admin de l'école ou de notre part.\",\n      es: \"Tu escuela cuenta con una Licencia Escolar ANTON. Para unirte a esta escuela en ANTON, ingresa aquí la clave que te proporcionó tu escuela o el equipo de ANTON.\",\n      pt: \"Sua escola possui uma Licença Escolar ANTON. Para fazer parte do Diretório Escolar dela,  insira aqui o código que você recebeu da administração escolar ou da nossa equipe.\"\n    },\n    alreadyDirMemberIn: {\n      de: \"Du bist bereits Schulverzeichnis-Mitglied in folgenden Schulen:<br>\",\n      en: \"You are already a school directory member in the following school(s):<br>\",\n      fr: \"Tu es déjà membre du répertoire scolaire de l'école suivante&nbsp;:<br>\",\n      es: \"Ya eres miembro de las siguientes escuelas con Licencia Escolar ANTON:<br>\",\n      pt: \"Você já é membro do Diretório Escolar das seguintes escolas:<br>\"\n    }\n  };\n})();","updated":"2025-09-15T09:08:49.182048"},{"path":"pages/snipPractice/loadingPage/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      title: \"&nbsp;\"\n    });\n  };\n})();","updated":"2025-09-15T09:08:49.182048"},{"path":"pages/snipPractice/loadingPage/page.ls","text":"(function(){\n  return function(page){\n    return {\n      navCategory: \"snipPractice\",\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.html(inc(\"/lib/gui/spinner/spinner\")());\n        return inc(\"/lib/util/loadProject/load\")(\"app01-snip-practice\", function(){\n          var ref$;\n          if ((ref$ = projects.info()[\"app01-snip-practice\"]) != null && ref$.isLoaded) {\n            return inc(\"/../app01-snip-practice/pages/engine01/start\")({\n              history: 0\n            });\n          } else {\n            return inc(\"/lib/offline/offlinePage/offlinePage\")(page);\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2025-09-15T09:08:49.182048"},{"path":"pages/snipPractice/start.ls","text":"(function(){\n  return function(p){\n    var ref$;\n    p == null && (p = {});\n    if ((ref$ = projects.info()[\"app01-snip-practice\"]) != null && ref$.isLoaded) {\n      return inc(\"/../app01-snip-practice/pages/engine01/start\")({\n        history: 0\n      });\n    } else {\n      return startPage({\n        path: path(\"loadingPage/page\")\n      });\n    }\n  };\n})();","updated":"2025-09-15T09:08:49.182048"},{"path":"pages/start/login/openId/createPreparedUser/page/textExistingUser/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      lineHeight: \"1.5em\",\n      paddingBottom: \"1em\"\n    }).html(T(\"existingUser\"));\n  };\n})();","updated":"2025-09-17T13:10:11.715597"},{"path":"pages/start/login/openId/createPreparedUser/page/textNewUser/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      lineHeight: \"1.5em\",\n      paddingBottom: \"1em\"\n    }).html(T(\"newUser\"));\n  };\n})();","updated":"2025-09-17T13:10:11.715597"},{"path":"pages/start/login/openId/createPreparedUser/page/_t.ls","text":"(function(){\n  return {\n    existingUser: {\n      deDev: \"Hast du bereits ein ANTON-Konto, das du mit deiner Schule verwenden möchtest?\",\n      enDev: \"Do you already have an ANTON account that you want to use with your school?\",\n      frDev: \"Avez-vous déjà un compte ANTON que vous souhaitez utiliser avec votre école&nbsp;?\",\n      esDev: \"¿Ya tienes una cuenta de ANTON que deseas usar con tu escuela?\",\n      ptDev: \"Você já tem uma conta ANTON que deseja usar com sua escola?\"\n    },\n    buttonExistingUser: {\n      de: \"Bestehendes Nutzerkonto verknüpfen\",\n      en: \"Link existing account\",\n      fr: \"Lier un compte existant\",\n      es: \"Vincular mi cuenta existente\",\n      pt: \"Já tenho uma conta no ANTON\"\n    },\n    newUser: {\n      deDev: \"Bist du neu bei ANTON?\",\n      enDev: \"Are you new to ANTON?\",\n      frDev: \"Êtes-vous nouveau chez ANTON&nbsp;?\",\n      esDev: \"¿Eres nuevo en ANTON?\",\n      ptDev: \"Você é novo no ANTON?\"\n    },\n    buttonNewUser: {\n      de: \"Neues Nutzerkonto erstellen\",\n      en: \"Create new account\",\n      fr: \"Créer un nouveau compte\",\n      es: \"Crear una cuenta nueva\",\n      pt: \"Criar uma nova conta\"\n    }\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"pages/misc/_shared/verify/inputForm/onChange/on.ls","text":"(function(){\n  return function(page, key){\n    var value, validatedValue;\n    value = page.form.input.getValue();\n    validatedValue = inc(\"validate/validate\")(value, key);\n    if (validatedValue.length === 7) {\n      page.verifyButton.setState(\"normal\");\n    } else {\n      page.verifyButton.setState(\"disabled\");\n    }\n    if (value !== validatedValue) {\n      return page.form.input.setValue(validatedValue);\n    }\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/inputForm/onChange/validate/validate.ls","text":"(function(){\n  return function(value, key){\n    value = value.replace(/[^0-9]/g, '');\n    value = value.toUpperCase();\n    if (key === \"back\" && value.length === 3) {\n      value = value.slice(0, 3);\n    } else if (value.length > 2) {\n      value = value.slice(0, 3) + '-' + value.slice(3);\n    }\n    if (value.length > 7) {\n      value = value.slice(0, 7);\n    }\n    return value;\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/onFinish/on.ls","text":"(function(){\n  return function(page){\n    if (page.context === \"startUser\") {\n      return inc(\"/pages/start/startUser/07_extraPages/_onExtraPageDone/on\")();\n    } else {\n      return startPage({\n        animation: \"slideDown\",\n        history: -2\n      });\n    }\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"lib/svg/icon/radio-off.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M30 80a50 50 0 1 0 100 0 50 50 0 1 0-100 0zm-10 0a60 60 0 1 1 120 0 60 60 0 1 1-120 0z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/radio-on.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill-rule=\"evenodd\">\n    <path fill-rule=\"nonzero\" d=\"M30 80a50 50 0 1 0 100 0 50 50 0 1 0-100 0zm-10 0a60 60 0 1 1 120 0 60 60 0 1 1-120 0z\"/>\n    <circle cx=\"80\" cy=\"80\" r=\"30\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/sqrt.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\" class=\"sqrt\">\n    <path d=\"M26.7 76H10V66h23.3l17.5 40.8L78.6 35H145v10H85.4l-34.2 88.2z\" class=\"Path-4\"/>\n    <path d=\"M125.5 80h-20v20h20V80zm10-10v40h-40V70h40z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/sub.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"sub\">\n    <path fill=\"#000\" fill-rule=\"nonzero\" d=\"M74.5 35h-40v60h40V35zm0-10h10v80h-60V25h50zm51 78.5h-20v20h20v-20zm10-10v40h-40v-40h40z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/dots-small-vertical.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M95 19.5v30H65v-30zM95 65.5v30H65v-30zM95 111.5v30H65v-30z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/dots-small.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M140.5 96h-30V66h30zM94.5 96h-30V66h30zM48.5 96h-30V66h30z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/dots.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M5 65.5h30v30H5zM65 65.5h30v30H65zM125 65.5h30v30h-30z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/share.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"96\" height=\"96\" fill=\"none\">\n  <path fill=\"#373737\" d=\"M80 50c2.2091 0 4 1.7909 4 4v26c0 4.4183-3.5817 8-8 8H20c-4.4183 0-8-3.5817-8-8V54c0-2.2091 1.7909-4 4-4s4 1.7909 4 4v26h56V54c0-2.2091 1.7909-4 4-4m-9.2295-17.8271c1.5612 1.5628 1.5599 4.0959-.0029 5.6572s-4.0959 1.5598-5.6572-.003l-13.17-13.1826v38.1758c-.0002 2.2089-1.791 4-4 4-2.2089 0-3.9997-1.7911-4-4V24.6689L30.7676 37.8301c-1.5629 1.5612-4.0959 1.5598-5.6572-.003s-1.5599-4.0959.0029-5.6572L47.9619 9.3428z\"/>\n</svg>","updated":"2026-02-23T14:06:16.588947"},{"path":"lib/svg/shape/envelope.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1\" viewBox=\"0 0 14 14\">\n  <g fill=\"#030104\">\n    <path d=\"M7 9 5 7l-5 5h14L9 7 7 9z\"/>\n    <path d=\"M14 2H0l7 6 7-6zM0 3v8l5-4zm9 4 5 4V3z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/rarrow.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path fill=\"none\" fill-opacity=\"0\" stroke=\"#000\" stroke-width=\"8.5\" d=\"M0 23.5h86.8M74.4 5 93 23.5 74.4 42\"/>\n    <path d=\"M67 65H27v60h40V65Zm0-10h10v80H17V55h50Z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/feedback-resolved.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <circle cx=\"80\" cy=\"80\" r=\"80\" fill=\"#AAA\"/>\n    <path fill=\"#FFF\" fill-rule=\"nonzero\" d=\"M66.07 95.34 47.33 71.16 33.1 82.19l32.35 41.73 61.51-72.6-13.74-11.64z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/magnifier.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 160\">\n  <path fill=\"#4C4C4C\" fill-rule=\"evenodd\" d=\"M60.274 113.894c29.158 0 52.795-23.607 52.795-52.727 0-29.121-23.637-52.728-52.795-52.728S7.478 32.046 7.478 61.167c0 29.12 23.638 52.727 52.796 52.727Zm0-22.737c16.584 0 30.028-13.427 30.028-29.99s-13.444-29.99-30.028-29.99c-16.584 0-30.029 13.427-30.029 29.99s13.445 29.99 30.029 29.99Z\" clip-rule=\"evenodd\"/>\n  <path fill=\"#4C4C4C\" fill-rule=\"evenodd\" d=\"m79.817 100.735 53.977 53.977 20.024-20.023-53.977-53.978-20.024 20.024Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"addons/navbar/bar/user/user/items/itemTeacherProgress/calcShowTeacherProgress/calc.ls","text":"(function(){\n  return function(){\n    var sds;\n    if (engine.guiLanguage === \"de\") {\n      return false;\n    }\n    if (!inc(\"/../app01/data/user/isTeacher/get\")()) {\n      return false;\n    }\n    sds = inc(\"/../app01/data/school/calcSchoolDescriptions/calc\")();\n    if (_.find(sds, function(sd){\n      return (sd != null ? sd.isAdmin : void 8) && sd.hasDirAccess;\n    })) {\n      return false;\n    }\n    return true;\n  };\n})();","updated":"2025-11-28T13:14:53.271867"},{"path":"lib/svg/icon/refresh-big.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 240\">\n  <path d=\"m219.81 63.84-8.78 5.07c-29.15-50.5-93.72-67.8-144.2-38.64-50.5 29.15-67.8 93.71-38.65 144.2 29.16 50.5 93.72 67.8 144.21 38.64a105.4 105.4 0 0 0 27.32-22.6l7.69 6.6a115.58 115.58 0 0 1-29.94 24.79c-55.34 31.95-126.1 12.99-158.06-42.36C-12.55 124.2 6.41 53.44 61.75 21.48 117.1-10.47 187.86 8.5 219.81 63.84z\"/>\n  <path d=\"M215.13.56h10.14V74.3h-73.74V64.16h63.6z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/megaphone.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"megaphone\">\n    <path fill=\"#D8D8D8\" fill-rule=\"nonzero\" d=\"M150.5 12v132l-84-40h-13l10 44h-27l-10-44h-21V50h61z\" class=\"Path\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/arrow-download.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"arrow-download\">\n    <path fill=\"#9B9B9B\" d=\"M155.5 74.4h-43.3V9.3h-65v65.1H3.8l76.1 76z\" class=\"Path\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/arrow-left.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M102.7 9.3 124 30.5 74.5 80l49.5 49.5-21.3 21.2L32 80z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/arrow-right.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M58.3 9.3 129 80l-70.7 70.7L37 129.5 86.5 80 37 30.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/arrow-top.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M95 46v102H65V46z\"/>\n    <path d=\"M23.5 66.3 80.1 9.8 101.3 31 44.7 87.5z\"/>\n    <path d=\"m80 9.8 56.6 56.5-21.2 21.2L59 31z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/arrow-up.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"m153.7 102-21.2 21.2L83 73.7l-49.5 49.5L12.3 102 83 31.3z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/arrow-upload.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"arrow-upload\">\n    <path fill=\"#9B9B9B\" d=\"M3.8 85.4 79.5 9.3l76 76.1h-43.3v65h-65v-65z\" class=\"Path\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/asteriks.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M72.7 62.3V15h14.6v47.3l33.5-33.4 10.3 10.3-33.4 33.5H145v14.6H97.7l33.4 33.5-10.3 10.3-33.5-33.4V145H72.7V97.7l-33.5 33.4-10.3-10.3 33.4-33.5H15V72.7h47.3L28.9 39.2l10.3-10.3z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/image.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#979797\" fill-rule=\"evenodd\" class=\"image\">\n    <path fill-rule=\"nonzero\" d=\"M17 17v126h126V17H17zM0 0h160v160H0V0z\" class=\"Rectangle\"/>\n    <path d=\"M125 51.1a18.3 18.3 0 1 1-36.6 0 18.3 18.3 0 0 1 36.6 0\" class=\"Fill-2\"/>\n    <path fill-rule=\"nonzero\" d=\"m57.3 69 48 75h-96z\" class=\"Triangle\"/>\n    <path fill-rule=\"nonzero\" d=\"m112.1 91 38.7 53H73.5z\" class=\"Triangle-Copy\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/letter-p.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M36 141.9V20.1h44.6c6.6 0 12.9.7 18.9 2 6 1.3 11.2 3.5 15.7 6.7s8.1 7.4 10.8 12.6c2.7 5.2 4 11.6 4 19.2 0 7.5-1.3 13.9-4 19.3A37.4 37.4 0 0 1 115.2 93c-4.5 3.4-9.7 6-15.5 7.7-5.9 1.7-12 2.5-18.4 2.5H68.2v38.6H36zm32.2-64h11.6c6.4 0 11.1-1.6 14.2-4.6 3-3 4.6-7.2 4.6-12.7 0-5.5-1.7-9.4-5.1-11.6A26 26 0 0 0 79 45.6H68.2v32.2z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/lock.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M119 47.2v18.1h13a8 8 0 0 1 8 8v68a8 8 0 0 1-8 8H28a8 8 0 0 1-8-8v-68a8 8 0 0 1 8-8h13v-18c0-9.8 4-19 11.4-26A40.3 40.3 0 0 1 80 10.7c10.3 0 20.3 3.9 27.6 10.8A35.4 35.4 0 0 1 119 47.2zM97.3 65.6V47.2c0-9-7.7-16.2-17.3-16.2s-17.3 7.2-17.3 16.2v18.4h34.6z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/speech-bubble-rect.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 165\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M162.5 21.6H2.5v94.6h28.8l-5.7 27.2 40.8-27.2h96.1z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/mic.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M124.28 67.3v12.72a44.55 44.55 0 0 1-38.15 44v13.24h15.9v12.72H57.5v-12.72h15.9v-13.23a44.55 44.55 0 0 1-38.16-44V67.3h12.72v12.72a31.83 31.83 0 0 0 31.8 31.8 31.83 31.83 0 0 0 31.8-31.8V67.3h12.72z\"/>\n    <path d=\"M79.77 105.46a25.47 25.47 0 0 0 25.44-25.44V35.5a25.47 25.47 0 0 0-25.44-25.43A25.47 25.47 0 0 0 54.33 35.5v44.52a25.47 25.47 0 0 0 25.44 25.44z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/minus.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M15 65h130v30H15z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/octagon.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M113.1 160H46.8L0 113.1V46.8L46.9 0h66.3L160 46.9v66.3z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/pen.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M143.3 23.5c6 6 6 15.6 0 21.6l-17.6 17.6-28-28L115.1 17a15.3 15.3 0 0 1 21.7 0l6.4 6.4zM23.6 109.4c0-.1 0-.3.2-.4l27.6 27.6-.4.2-32.8 10.9c-.5.2-1 .2-1.4.2a4 4 0 0 1-3-1.3 4.3 4.3 0 0 1-1.1-4.4l10.9-32.8zm6.1-6.8 61.8-61.8 28 28-61.7 61.8-28-28z\" class=\"color1\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/pentagon.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M30.6 156.1 0 62.1 80 4l80 58.1-30.6 94z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/flip-y.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m99.6 45.3 7.1-7-26.5-26.5-26.4 26.4 7 7L80.3 26zm-38.7 76-7.1 7 26.4 26.4 26.5-26.4-7-7-19.5 19.3z\"/>\n  <path d=\"M75.2 23.5V148h10V23.5z\"/>\n  <path d=\"M142.5 78H18v10h124.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/flip.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m42.3 60.6-7-7L8.7 80l26.4 26.5 7-7.1L23 80zm76 38.8 7 7L151.7 80l-26.4-26.5-7 7.1L137.5 80z\"/>\n  <path d=\"M20.5 85H145V75H20.5z\"/>\n  <path d=\"M75 20.5V145h10V20.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/folder-open.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M132.5 66.2h10V45h-68V25h-62v110l10-5.3V35h42v20h68z\"/>\n  <path d=\"m35.7 70-11 55h109.6l11-55H35.7zm-8.2-10h130l-15 75h-130l15-75z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/tablet.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M28.4 20.8a14 14 0 0 1 14-14h75.2a14 14 0 0 1 14 14v118.4a14 14 0 0 1-14 14H42.4a14 14 0 0 1-14-14V20.8zm50.4 114.6a6.4 6.4 0 0 0-6.3 6.3c0 3.4 2.8 6.2 6.3 6.2a6.3 6.3 0 0 0 0-12.5zM37.8 25v98.6a7 7 0 0 0 7 7h70.4a7 7 0 0 0 7-7V25a7 7 0 0 0-7-7H44.8a7 7 0 0 0-7 7z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/tag.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"tag\">\n    <path fill=\"#9B9B9B\" d=\"M143.7 81.7 78.3 16.3c-2.2-2.6-5.7-4-9.2-4H25.5c-7.5 0-13.1 5.7-13.1 13.2V69c0 3.5 1.3 7 3.9 9.2l65.4 65.4c2.7 2.6 6.2 4 9.2 4 3 0 6.6-1.4 9.2-4l43.6-43.6a12.7 12.7 0 0 0 0-18.4zM43 51.7a8.8 8.8 0 1 1 0-17.5 8.7 8.7 0 0 1 0 17.4z\" class=\"Fill-1\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/list.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill-rule=\"evenodd\">\n    <path fill-rule=\"nonzero\" d=\"M55 36.5h90v-10H55z\"/>\n    <path d=\"M35 21.5v20H15v-20z\"/>\n    <path fill-rule=\"nonzero\" d=\"M55 132.5h90v-10H55z\"/>\n    <path d=\"M35 117.5v20H15v-20z\"/>\n    <path fill-rule=\"nonzero\" d=\"M55 100.5h90v-10H55z\"/>\n    <path d=\"M35 85.5v20H15v-20z\"/>\n    <path fill-rule=\"nonzero\" d=\"M55 68.5h90v-10H55z\"/>\n    <path d=\"M35 53.5v20H15v-20z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/magnifier.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M84.034 84.424c14.515-14.515 14.515-38.048 0-52.562-14.514-14.515-38.047-14.515-52.562 0-14.514 14.514-14.514 38.047 0 52.562 14.515 14.514 38.048 14.514 52.562 0zm7.122 7.122c-18.448 18.448-48.358 18.448-66.806 0-18.447-18.448-18.447-48.358 0-66.806 18.448-18.448 48.358-18.448 66.806 0s18.448 48.358 0 66.806z\"/>\n  <path d=\"m82.803 90.186 59.567 59.567 7.122-7.122-59.567-59.566z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/menu-dots-small.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"evenodd\">\n    <path d=\"M50 70v20H30V70zM90 70v20H70V70zM130 70v20h-20V70z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/menu-dots-vertical.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"evenodd\">\n    <path d=\"M90 30H70V10h20zM90 90H70V70h20zM90 150H70v-20h20z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/table.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 161\">\n  <path fill=\"#4C4C4C\" fill-rule=\"evenodd\" d=\"M155 19v22H5V19h150ZM43.8 52.6v22H5v-22h38.8Zm0 33.6v22H5v-22h38.8Zm0 33.6v22H5v-22h38.8Zm55.6-67.2v22H60.6v-22h38.8Zm0 33.6v22H60.6v-22h38.8Zm0 33.6v22H60.6v-22h38.8ZM155 52.6v22h-38.8v-22H155Zm0 33.6v22h-38.8v-22H155Zm0 33.6v22h-38.8v-22H155Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/columns.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M88 37h53V27H88zm0 96h53v-10H88zm0-32h53V91H88zm0-32h53V59H88zM16 37h53V27H16zm0 96h53v-10H16zm0-32h53V91H16zm0-32h53V59H16z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/list-simple.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <path fill=\"#000\" d=\"M17 37.5h125v-10H17v10Zm0 96h125v-10H17v10Zm0-32h125v-10H17v10Zm0-32h125v-10H17v10Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/flag-br.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <g clip-path=\"url(#470675218__a)\">\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"M.5 139.366h160V20.83H.5z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#FEDF00\" d=\"m80.05 124.19 68.151-43.498-68.15-43.5-68.152 43.5z\"/>\n    <path fill=\"#002776\" d=\"M80.05 51.955c15.87 0 28.737 12.866 28.737 28.737s-12.866 28.736-28.737 28.736-28.736-12.866-28.736-28.736S64.179 51.955 80.05 51.955\"/>\n    <path fill=\"#fff\" d=\"M53.764 69.08c3.21-.466 6.506-.7 9.861-.7 17.096 0 32.733 6.156 44.87 16.338a26 26 0 0 1-1.021 4.55C95.862 78.825 80.488 72.466 63.625 72.466c-3.88 0-7.702.35-11.407.991a31 31 0 0 1 1.546-4.376\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"M55.485 71.793c.409-.058.671-.466.613-.933s-.438-.817-.817-.759c-.38.059-.67.467-.612.934s.408.788.816.758m.059.496c.67-.087 1.167-.758 1.05-1.517-.087-.758-.7-1.283-1.4-1.196-.671.088-1.138.759-1.05 1.517.116.73.729 1.284 1.4 1.196m2.626-1.809 1.05-.058c.204-.029.35-.175.32-.379a.323.323 0 0 0-.379-.32l-1.05.087zm-.409 1.576.496-.03-.058-1.02 1.079-.088c.467-.029.846-.437.788-.904a.85.85 0 0 0-.905-.788l-1.546.117z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#009B3A\" d=\"M60.095 71.881c-.03-.38-.088-1.255-.671-1.196l-.759.058c.846-.058.905.788.963 1.196z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"M61.729 71.298h.729c.408 0 .73-.35.73-.759v-.233c0-.409-.35-.73-.76-.73l-.758.03zm-.496.525 1.283-.03c.642-.029 1.167-.554 1.167-1.196v-.379c0-.642-.554-1.167-1.196-1.167l-1.284.03z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#009B3A\" d=\"m64.704 71.794 2.48.087v-.496l-1.984-.088.03-.7 1.546.059.029-.467-1.576-.058.03-.555 1.867.088.029-.525-2.334-.088zm3.472.146.467.058.175-1.897.38 1.926.437.058.7-1.838-.175 1.867.467.03.262-2.714-.7-.058-.7 1.809-.38-1.897-.67-.058zm5.689.641 2.013.35.088-.466-1.576-.263.117-.613 1.254.204.088-.437-1.255-.234.059-.437 1.517.262.087-.466-1.984-.321z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"m79.933 72.26 1.021.263c.175.029.38-.059.438-.263a.38.38 0 0 0-.263-.437l-1.02-.263zm-.875 1.342.496.117.263-.992 1.05.263a.85.85 0 0 0 1.05-.613.85.85 0 0 0-.612-1.05l-1.518-.409zm4.289-.408.992.32a.34.34 0 0 0 .437-.233.34.34 0 0 0-.233-.437l-.992-.321zm-.934 1.313.496.145.321-.962 1.05.32c.438.147.934-.116 1.08-.554.146-.437-.117-.933-.555-1.08l-1.487-.466z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#009B3A\" d=\"M84.63 75.207c.117-.38.38-1.196-.175-1.371l-.7-.234c.817.263.555 1.08.438 1.459z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"M87.052 75.528c.38.146.817-.117.963-.555.175-.437 0-.933-.38-1.05-.379-.146-.817.117-.962.555-.175.437 0 .904.379 1.05m-.175.466c.642.234 1.371-.145 1.634-.846.262-.7-.03-1.487-.671-1.72-.642-.234-1.372.145-1.634.845-.263.73.029 1.488.67 1.722m3.414.845c.38.147.817-.058 1.021-.495l.467.204c-.292.7-1.05 1.02-1.663.758-.642-.262-.904-1.05-.583-1.75.291-.7 1.05-1.05 1.663-.759.496.205.758.73.7 1.284l-.496-.233c-.03-.263-.175-.496-.409-.584-.35-.175-.816.058-.991.496-.205.438-.088.904.291 1.08\" clip-rule=\"evenodd\"/>\n    <path fill=\"#009B3A\" d=\"m90.815 76.14.963.409-.175.35-.934-.409z\"/>\n    <path fill=\"#009B3A\" d=\"m91.399 76.374.379.175-.554 1.254-.38-.175z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"m93.266 77.074.933.467a.34.34 0 0 0 .467-.146.33.33 0 0 0-.175-.467l-.933-.467zm-1.138 1.138.467.233.438-.904.962.496a.9.9 0 0 0 1.167-.38.9.9 0 0 0-.379-1.166l-1.4-.7z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#009B3A\" d=\"M94.229 79.262c.175-.35.554-1.109.029-1.371l-.671-.321c.758.38.38 1.167.204 1.488zm1.021.525 2.13 1.225.262-.437-1.75-.992.35-.613 1.37.759.205-.409-1.342-.758.263-.467L98.37 79l.263-.437-2.042-1.138zm3.997 1.343c-.146.233 0 .495.32.7.322.204.555.204.642.058.292-.467-1.43-1.167-.904-1.984.467-.7 1.255-.146 1.546.029s.759.671.409 1.225l-.496-.32c.146-.263-.029-.496-.292-.642s-.467-.234-.613 0c-.262.379 1.43 1.108.934 1.925-.379.613-1.05.35-1.517.059-.38-.234-.934-.817-.584-1.4zm2.917 1.954c-.146.233-.029.496.292.7.321.233.554.233.642.088.321-.467-1.371-1.226-.788-2.013.496-.671 1.254-.088 1.546.116s.73.73.35 1.255l-.496-.35c.175-.234 0-.467-.233-.671-.233-.175-.438-.263-.613-.03-.291.35 1.371 1.167.817 1.955-.408.584-1.079.292-1.488-.029-.379-.263-.904-.875-.496-1.43z\"/>\n    <path fill=\"#009B3A\" fill-rule=\"evenodd\" d=\"M105.257 85.826c.32.234.816.146 1.108-.233.292-.38.292-.875-.029-1.109-.292-.262-.817-.146-1.079.234-.321.35-.321.875 0 1.108m-.321.409c.525.437 1.342.291 1.808-.292.467-.584.409-1.4-.116-1.838s-1.342-.292-1.809.292c-.467.583-.408 1.4.117 1.838\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" d=\"m56.594 74.302-.38 1.167.584.205z\"/>\n    <path fill=\"#fff\" d=\"m56.594 74.302.38 1.167-.584.205z\"/>\n    <path fill=\"#fff\" d=\"M57.76 75.149h-1.224v.612z\"/>\n    <path fill=\"#fff\" d=\"m57.761 75.149-.992.729-.38-.496z\"/>\n    <path fill=\"#fff\" d=\"m55.427 75.149.992.729.35-.496z\"/>\n    <path fill=\"#fff\" d=\"M55.427 75.149h1.225v.612z\"/>\n    <path fill=\"#fff\" d=\"m57.323 76.52-.379-1.167-.583.204z\"/>\n    <path fill=\"#fff\" d=\"m57.323 76.52-.992-.7.35-.526z\"/>\n    <path fill=\"#fff\" d=\"m55.865 76.52.991-.7-.35-.526z\"/>\n    <path fill=\"#fff\" d=\"m55.865 76.52.379-1.167.583.204zm3.267 9.86-.38 1.168.584.204z\"/>\n    <path fill=\"#fff\" d=\"m59.132 86.38.38 1.168-.584.204z\"/>\n    <path fill=\"#fff\" d=\"M60.3 87.227h-1.226v.612z\"/>\n    <path fill=\"#fff\" d=\"m60.3 87.227-.993.729-.35-.496z\"/>\n    <path fill=\"#fff\" d=\"m57.965 87.227.992.729.38-.496z\"/>\n    <path fill=\"#fff\" d=\"M57.965 87.227h1.225v.612z\"/>\n    <path fill=\"#fff\" d=\"m59.862 88.598-.38-1.167-.583.204z\"/>\n    <path fill=\"#fff\" d=\"m59.862 88.598-.992-.7.35-.525z\"/>\n    <path fill=\"#fff\" d=\"m58.403 88.598.992-.7-.35-.525z\"/>\n    <path fill=\"#fff\" d=\"m58.403 88.598.38-1.167.583.204zm-2.801.583-.292.963.467.146z\"/>\n    <path fill=\"#fff\" d=\"m55.602 89.181.321.963-.467.146z\"/>\n    <path fill=\"#fff\" d=\"M56.594 89.881h-1.021v.496z\"/>\n    <path fill=\"#fff\" d=\"m56.594 89.881-.846.584-.292-.409z\"/>\n    <path fill=\"#fff\" d=\"m54.64 89.881.845.584.292-.409z\"/>\n    <path fill=\"#fff\" d=\"M54.64 89.881h1.02v.496z\"/>\n    <path fill=\"#fff\" d=\"m56.215 91.02-.321-.993-.496.175z\"/>\n    <path fill=\"#fff\" d=\"m56.215 91.02-.817-.613.292-.409z\"/>\n    <path fill=\"#fff\" d=\"m55.019 91.02.817-.613-.292-.409z\"/>\n    <path fill=\"#fff\" d=\"m55.019 91.02.32-.993.467.175zm6.943-5.748-.204.554.292.088z\"/>\n    <path fill=\"#fff\" d=\"m61.962 85.272.175.554-.292.088z\"/>\n    <path fill=\"#fff\" d=\"M62.516 85.68h-.583v.292z\"/>\n    <path fill=\"#fff\" d=\"m62.516 85.68-.496.35-.146-.233z\"/>\n    <path fill=\"#fff\" d=\"m61.379 85.68.495.35.176-.233z\"/>\n    <path fill=\"#fff\" d=\"M61.379 85.68h.612v.292z\"/>\n    <path fill=\"#fff\" d=\"m62.283 86.322-.175-.554-.263.087z\"/>\n    <path fill=\"#fff\" d=\"m62.283 86.322-.467-.35.175-.233z\"/>\n    <path fill=\"#fff\" d=\"m61.612 86.322.467-.35-.175-.233z\"/>\n    <path fill=\"#fff\" d=\"m61.612 86.322.175-.554.263.087zm3.501 3.122-.321.963.496.175z\"/>\n    <path fill=\"#fff\" d=\"m65.113 89.444.32.963-.495.175z\"/>\n    <path fill=\"#fff\" d=\"M66.105 90.144h-1.05v.525z\"/>\n    <path fill=\"#fff\" d=\"m66.105 90.144-.846.613-.292-.409z\"/>\n    <path fill=\"#fff\" d=\"m64.15 90.144.817.613.292-.409z\"/>\n    <path fill=\"#fff\" d=\"M64.15 90.144h1.021v.525z\"/>\n    <path fill=\"#fff\" d=\"m65.726 91.311-.321-.992-.496.146z\"/>\n    <path fill=\"#fff\" d=\"m65.726 91.311-.847-.613.321-.408z\"/>\n    <path fill=\"#fff\" d=\"m64.53 91.311.816-.613-.291-.408z\"/>\n    <path fill=\"#fff\" d=\"m64.53 91.311.291-.992.496.146zm-.263 1.196-.263.788.38.117z\"/>\n    <path fill=\"#fff\" d=\"m64.267 92.507.233.788-.379.117z\"/>\n    <path fill=\"#fff\" d=\"M65.025 93.061h-.817v.409z\"/>\n    <path fill=\"#fff\" d=\"m65.025 93.061-.641.496-.263-.35z\"/>\n    <path fill=\"#fff\" d=\"m63.48 93.061.67.496.234-.35z\"/>\n    <path fill=\"#fff\" d=\"M63.48 93.061h.816v.409z\"/>\n    <path fill=\"#fff\" d=\"m64.734 93.995-.263-.788-.38.117z\"/>\n    <path fill=\"#fff\" d=\"m64.734 93.995-.671-.496.262-.32z\"/>\n    <path fill=\"#fff\" d=\"m63.77 93.995.672-.496-.263-.32z\"/>\n    <path fill=\"#fff\" d=\"m63.77 93.995.263-.788.38.117zm25.207-23.456-.379 1.167.584.204z\"/>\n    <path fill=\"#fff\" d=\"m88.977 70.539.35 1.167-.583.204z\"/>\n    <path fill=\"#fff\" d=\"M90.144 71.414H88.89v.613z\"/>\n    <path fill=\"#fff\" d=\"m90.144 71.414-1.02.7-.35-.496z\"/>\n    <path fill=\"#fff\" d=\"m87.781 71.414 1.021.7.35-.496z\"/>\n    <path fill=\"#fff\" d=\"M87.781 71.414h1.255v.613z\"/>\n    <path fill=\"#fff\" d=\"m89.678 72.785-.38-1.167-.583.175z\"/>\n    <path fill=\"#fff\" d=\"m89.678 72.785-.992-.729.379-.496z\"/>\n    <path fill=\"#fff\" d=\"m88.248 72.785.992-.729-.38-.496z\"/>\n    <path fill=\"#fff\" d=\"m88.248 72.785.38-1.167.583.175zM100.18 89.56l-.379 1.168.583.175z\"/>\n    <path fill=\"#fff\" d=\"m100.18 89.56.38 1.168-.584.175z\"/>\n    <path fill=\"#fff\" d=\"M101.347 90.407h-1.225v.612z\"/>\n    <path fill=\"#fff\" d=\"m101.347 90.407-.992.7-.35-.467z\"/>\n    <path fill=\"#fff\" d=\"m99.013 90.407.992.7.35-.467z\"/>\n    <path fill=\"#fff\" d=\"M99.013 90.407h1.226v.612z\"/>\n    <path fill=\"#fff\" d=\"m100.91 91.778-.38-1.167-.583.175z\"/>\n    <path fill=\"#fff\" d=\"m100.91 91.778-.992-.73.35-.496z\"/>\n    <path fill=\"#fff\" d=\"m99.45 91.778.993-.73-.35-.496z\"/>\n    <path fill=\"#fff\" d=\"m99.45 91.778.38-1.167.584.175zm4.727-1.546-.262.787.379.117z\"/>\n    <path fill=\"#fff\" d=\"m104.177 90.232.234.787-.38.117z\"/>\n    <path fill=\"#fff\" d=\"M104.936 90.786h-.817v.408z\"/>\n    <path fill=\"#fff\" d=\"m104.936 90.786-.642.496-.263-.321z\"/>\n    <path fill=\"#fff\" d=\"m103.389 90.786.671.496.234-.321z\"/>\n    <path fill=\"#fff\" d=\"M103.389 90.786h.817v.408z\"/>\n    <path fill=\"#fff\" d=\"m104.644 91.72-.234-.788-.408.116z\"/>\n    <path fill=\"#fff\" d=\"m104.644 91.72-.642-.496.233-.322z\"/>\n    <path fill=\"#fff\" d=\"m103.681 91.72.671-.496-.233-.322z\"/>\n    <path fill=\"#fff\" d=\"m103.681 91.72.263-.788.379.116zm-2.334.583-.321.963.496.175z\"/>\n    <path fill=\"#fff\" d=\"m101.347 92.303.321.963-.496.175z\"/>\n    <path fill=\"#fff\" d=\"M102.339 93.003h-1.05v.496z\"/>\n    <path fill=\"#fff\" d=\"m102.339 93.003-.846.613-.292-.438z\"/>\n    <path fill=\"#fff\" d=\"m100.384 93.003.817.613.321-.438z\"/>\n    <path fill=\"#fff\" d=\"M100.384 93.003h1.022v.496z\"/>\n    <path fill=\"#fff\" d=\"m101.96 94.14-.321-.962-.496.146z\"/>\n    <path fill=\"#fff\" d=\"m101.96 94.14-.817-.583.292-.437z\"/>\n    <path fill=\"#fff\" d=\"m100.764 94.14.817-.583-.292-.437z\"/>\n    <path fill=\"#fff\" d=\"m100.764 94.14.321-.962.466.146zm-6.331 4.173-.321.962.496.176z\"/>\n    <path fill=\"#fff\" d=\"m94.433 98.313.32.962-.495.176z\"/>\n    <path fill=\"#fff\" d=\"M95.425 99.013h-1.05v.525z\"/>\n    <path fill=\"#fff\" d=\"m95.425 99.013-.846.613-.292-.409z\"/>\n    <path fill=\"#fff\" d=\"m93.47 99.013.817.613.292-.409z\"/>\n    <path fill=\"#fff\" d=\"M93.47 99.013h1.021v.525z\"/>\n    <path fill=\"#fff\" d=\"m95.046 100.18-.321-.992-.496.175z\"/>\n    <path fill=\"#fff\" d=\"m95.046 100.18-.847-.613.321-.408z\"/>\n    <path fill=\"#fff\" d=\"m93.85 100.18.816-.613-.291-.408z\"/>\n    <path fill=\"#fff\" d=\"m93.85 100.18.291-.992.496.175zm.554 1.225-.263.788.38.117z\"/>\n    <path fill=\"#fff\" d=\"m94.404 101.405.233.788-.38.117z\"/>\n    <path fill=\"#fff\" d=\"M95.162 101.989h-.817v.408z\"/>\n    <path fill=\"#fff\" d=\"m95.162 101.989-.642.467-.262-.321z\"/>\n    <path fill=\"#fff\" d=\"m93.616 101.989.671.467.233-.321z\"/>\n    <path fill=\"#fff\" d=\"M93.616 101.989h.817v.408z\"/>\n    <path fill=\"#fff\" d=\"m94.87 102.893-.233-.788-.408.146z\"/>\n    <path fill=\"#fff\" d=\"m94.87 102.893-.641-.467.233-.35z\"/>\n    <path fill=\"#fff\" d=\"m93.908 102.893.67-.467-.233-.35z\"/>\n    <path fill=\"#fff\" d=\"m93.908 102.893.262-.788.38.146zm3.384-6.652-.263.788.409.146z\"/>\n    <path fill=\"#fff\" d=\"m97.292 96.241.263.788-.409.146z\"/>\n    <path fill=\"#fff\" d=\"M98.08 96.825h-.846v.408z\"/>\n    <path fill=\"#fff\" d=\"m98.08 96.825-.671.467-.234-.321z\"/>\n    <path fill=\"#fff\" d=\"m96.504 96.825.671.467.234-.321z\"/>\n    <path fill=\"#fff\" d=\"M96.504 96.825h.817v.408z\"/>\n    <path fill=\"#fff\" d=\"m97.759 97.73-.234-.788-.408.146z\"/>\n    <path fill=\"#fff\" d=\"m97.759 97.73-.642-.468.233-.35z\"/>\n    <path fill=\"#fff\" d=\"m96.796 97.73.671-.468-.233-.35z\"/>\n    <path fill=\"#fff\" d=\"m96.796 97.73.263-.788.379.146zm2.801-3.122-.321.962.496.175z\"/>\n    <path fill=\"#fff\" d=\"m99.597 94.608.32.962-.495.175z\"/>\n    <path fill=\"#fff\" d=\"M100.559 95.308h-1.02v.525z\"/>\n    <path fill=\"#fff\" d=\"m100.56 95.308-.817.612-.292-.408z\"/>\n    <path fill=\"#fff\" d=\"m98.634 95.308.817.612.292-.408z\"/>\n    <path fill=\"#fff\" d=\"M98.634 95.308h1.021v.525z\"/>\n    <path fill=\"#fff\" d=\"m100.209 96.446-.32-.963-.496.146z\"/>\n    <path fill=\"#fff\" d=\"m100.209 96.446-.846-.584.321-.437z\"/>\n    <path fill=\"#fff\" d=\"m98.984 96.446.846-.584-.32-.437z\"/>\n    <path fill=\"#fff\" d=\"m98.984 96.446.321-.963.496.146zm-4.668-.759-.262.788.408.146z\"/>\n    <path fill=\"#fff\" d=\"m94.316 95.687.263.788-.409.146z\"/>\n    <path fill=\"#fff\" d=\"M95.104 96.27h-.817v.409z\"/>\n    <path fill=\"#fff\" d=\"m95.104 96.27-.671.497-.234-.35z\"/>\n    <path fill=\"#fff\" d=\"m93.529 96.27.67.497.234-.35z\"/>\n    <path fill=\"#fff\" d=\"M93.529 96.27h.846v.409z\"/>\n    <path fill=\"#fff\" d=\"m94.812 97.175-.262-.758-.38.116z\"/>\n    <path fill=\"#fff\" d=\"m94.812 97.175-.67-.467.233-.32z\"/>\n    <path fill=\"#fff\" d=\"m93.85 97.175.641-.467-.233-.32z\"/>\n    <path fill=\"#fff\" d=\"m93.85 97.175.233-.758.408.116zM69.11 80.837l-.321.963.496.175z\"/>\n    <path fill=\"#fff\" d=\"m69.11 80.837.32.963-.495.175z\"/>\n    <path fill=\"#fff\" d=\"M70.073 81.538H69.05v.525z\"/>\n    <path fill=\"#fff\" d=\"m70.073 81.538-.817.612-.321-.408z\"/>\n    <path fill=\"#fff\" d=\"m68.118 81.538.846.612.292-.408z\"/>\n    <path fill=\"#fff\" d=\"M68.118 81.538h1.05v.525z\"/>\n    <path fill=\"#fff\" d=\"m69.693 82.705-.291-.992-.496.175z\"/>\n    <path fill=\"#fff\" d=\"m69.693 82.705-.817-.613.292-.409z\"/>\n    <path fill=\"#fff\" d=\"m68.497 82.705.846-.613-.32-.409z\"/>\n    <path fill=\"#fff\" d=\"m68.497 82.705.321-.992.496.175zm19.372-4.289-.263.788.409.116z\"/>\n    <path fill=\"#fff\" d=\"m87.869 78.416.262.788-.408.116z\"/>\n    <path fill=\"#fff\" d=\"M88.657 79h-.817v.408z\"/>\n    <path fill=\"#fff\" d=\"m88.656 79-.67.466-.234-.32z\"/>\n    <path fill=\"#fff\" d=\"m87.081 79 .671.466.233-.32z\"/>\n    <path fill=\"#fff\" d=\"M87.081 79h.817v.408z\"/>\n    <path fill=\"#fff\" d=\"m88.336 79.904-.234-.759-.38.117z\"/>\n    <path fill=\"#fff\" d=\"m88.336 79.904-.642-.467.233-.35z\"/>\n    <path fill=\"#fff\" d=\"m87.402 79.904.642-.467-.234-.35z\"/>\n    <path fill=\"#fff\" d=\"m87.402 79.904.233-.759.409.117zM80.05 92.361l-.38 1.167.584.204z\"/>\n    <path fill=\"#fff\" d=\"m80.05 92.361.38 1.167-.584.204z\"/>\n    <path fill=\"#fff\" d=\"M81.217 93.207h-1.225v.613z\"/>\n    <path fill=\"#fff\" d=\"m81.217 93.207-.992.73-.35-.496z\"/>\n    <path fill=\"#fff\" d=\"m78.883 93.207.992.73.35-.496z\"/>\n    <path fill=\"#fff\" d=\"M78.883 93.207h1.225v.613z\"/>\n    <path fill=\"#fff\" d=\"m80.78 94.579-.38-1.167-.583.204z\"/>\n    <path fill=\"#fff\" d=\"m80.78 94.579-.993-.7.35-.526z\"/>\n    <path fill=\"#fff\" d=\"m79.32 94.579.993-.7-.35-.526z\"/>\n    <path fill=\"#fff\" d=\"m79.32 94.579.38-1.167.584.204zm4.056-7.732-.321.992.496.146z\"/>\n    <path fill=\"#fff\" d=\"m83.376 86.847.32.992-.495.146z\"/>\n    <path fill=\"#fff\" d=\"M84.339 87.577h-1.022v.496z\"/>\n    <path fill=\"#fff\" d=\"m84.339 87.577-.817.583-.321-.408z\"/>\n    <path fill=\"#fff\" d=\"m82.413 87.577.817.583.292-.408z\"/>\n    <path fill=\"#fff\" d=\"M82.413 87.577h1.021v.496z\"/>\n    <path fill=\"#fff\" d=\"m83.989 88.715-.321-.963-.496.146z\"/>\n    <path fill=\"#fff\" d=\"m83.989 88.715-.847-.613.292-.409z\"/>\n    <path fill=\"#fff\" d=\"m82.763 88.715.846-.613-.32-.409z\"/>\n    <path fill=\"#fff\" d=\"m82.763 88.715.321-.963.496.146zM80.05 84.28l-.32.963.495.175z\"/>\n    <path fill=\"#fff\" d=\"m80.05 84.28.321.963-.496.175z\"/>\n    <path fill=\"#fff\" d=\"M81.013 84.98h-1.021v.525z\"/>\n    <path fill=\"#fff\" d=\"m81.013 84.98-.817.613-.292-.409z\"/>\n    <path fill=\"#fff\" d=\"m79.087 84.98.817.613.292-.409z\"/>\n    <path fill=\"#fff\" d=\"M79.087 84.98h1.021v.525z\"/>\n    <path fill=\"#fff\" d=\"m80.663 86.147-.321-.992-.496.175z\"/>\n    <path fill=\"#fff\" d=\"m80.663 86.147-.846-.613.32-.408z\"/>\n    <path fill=\"#fff\" d=\"m79.437 86.147.847-.613-.321-.408z\"/>\n    <path fill=\"#fff\" d=\"m79.437 86.147.321-.992.496.175zm-2.275.905-.263.787.409.146z\"/>\n    <path fill=\"#fff\" d=\"m77.162 87.052.262.787-.408.146z\"/>\n    <path fill=\"#fff\" d=\"M77.95 87.635h-.847v.408z\"/>\n    <path fill=\"#fff\" d=\"m77.95 87.635-.672.467-.262-.321z\"/>\n    <path fill=\"#fff\" d=\"m76.374 87.635.671.467.233-.321z\"/>\n    <path fill=\"#fff\" d=\"M76.374 87.635h.817v.408z\"/>\n    <path fill=\"#fff\" d=\"m77.629 88.54-.234-.76-.408.118z\"/>\n    <path fill=\"#fff\" d=\"m77.629 88.54-.642-.467.233-.35z\"/>\n    <path fill=\"#fff\" d=\"m76.666 88.54.67-.467-.233-.35z\"/>\n    <path fill=\"#fff\" d=\"m76.666 88.54.262-.76.38.118zm1.925.758-.175.554.292.088z\"/>\n    <path fill=\"#fff\" d=\"m78.591 89.298.205.554-.292.088z\"/>\n    <path fill=\"#fff\" d=\"M79.146 89.706h-.584v.292z\"/>\n    <path fill=\"#fff\" d=\"m79.146 89.706-.467.321-.175-.233z\"/>\n    <path fill=\"#fff\" d=\"m78.037 89.706.496.321.146-.233z\"/>\n    <path fill=\"#fff\" d=\"M78.037 89.706h.584v.292z\"/>\n    <path fill=\"#fff\" d=\"m78.942 90.348-.176-.554-.291.087z\"/>\n    <path fill=\"#fff\" d=\"m78.942 90.348-.467-.35.175-.233z\"/>\n    <path fill=\"#fff\" d=\"m78.27 90.348.467-.35-.175-.233z\"/>\n    <path fill=\"#fff\" d=\"m78.27 90.348.175-.554.263.087zm10.386 8.665-.32.992.495.146z\"/>\n    <path fill=\"#fff\" d=\"m88.656 99.013.321.992-.496.146z\"/>\n    <path fill=\"#fff\" d=\"M89.62 99.713h-1.022v.525z\"/>\n    <path fill=\"#fff\" d=\"m89.62 99.713-.818.613-.32-.409z\"/>\n    <path fill=\"#fff\" d=\"m87.665 99.713.845.613.292-.409z\"/>\n    <path fill=\"#fff\" d=\"M87.665 99.713h1.05v.525z\"/>\n    <path fill=\"#fff\" d=\"m89.24 100.88-.292-.992-.496.175z\"/>\n    <path fill=\"#fff\" d=\"m89.24 100.88-.817-.613.292-.408z\"/>\n    <path fill=\"#fff\" d=\"m88.044 100.88.846-.613-.321-.408z\"/>\n    <path fill=\"#fff\" d=\"m88.044 100.88.32-.992.497.175zm3.063-4.201-.263.788.409.116z\"/>\n    <path fill=\"#fff\" d=\"m91.107 96.679.263.788-.38.116z\"/>\n    <path fill=\"#fff\" d=\"M91.895 97.233h-.817v.438z\"/>\n    <path fill=\"#fff\" d=\"m91.895 97.233-.671.496-.234-.32z\"/>\n    <path fill=\"#fff\" d=\"m90.32 97.233.67.496.263-.32z\"/>\n    <path fill=\"#fff\" d=\"M90.32 97.233h.845v.438z\"/>\n    <path fill=\"#fff\" d=\"m91.603 98.167-.263-.788-.379.146z\"/>\n    <path fill=\"#fff\" d=\"m91.603 98.167-.671-.467.233-.35z\"/>\n    <path fill=\"#fff\" d=\"m90.64 98.167.642-.467-.233-.35z\"/>\n    <path fill=\"#fff\" d=\"m90.64 98.167.234-.788.408.146zm-4.26-2.188-.262.788.409.116z\"/>\n    <path fill=\"#fff\" d=\"m86.38 95.979.263.788-.408.116z\"/>\n    <path fill=\"#fff\" d=\"M87.169 96.562h-.817v.38z\"/>\n    <path fill=\"#fff\" d=\"m87.169 96.562-.671.467-.234-.35z\"/>\n    <path fill=\"#fff\" d=\"m85.593 96.562.671.467.234-.35z\"/>\n    <path fill=\"#fff\" d=\"M85.593 96.562h.817v.38z\"/>\n    <path fill=\"#fff\" d=\"m86.848 97.467-.234-.788-.408.146z\"/>\n    <path fill=\"#fff\" d=\"m86.848 97.467-.642-.496.233-.321z\"/>\n    <path fill=\"#fff\" d=\"m85.914 97.467.642-.496-.233-.321z\"/>\n    <path fill=\"#fff\" d=\"m85.914 97.467.233-.788.38.146zm-17.388-2.772-.38 1.196.584.175z\"/>\n    <path fill=\"#fff\" d=\"m68.526 94.695.38 1.196-.584.175z\"/>\n    <path fill=\"#fff\" d=\"M69.693 95.57h-1.225v.613z\"/>\n    <path fill=\"#fff\" d=\"m69.693 95.57-.992.7-.379-.495z\"/>\n    <path fill=\"#fff\" d=\"m67.36 95.57.991.7.35-.495z\"/>\n    <path fill=\"#fff\" d=\"M67.36 95.57h1.225v.613z\"/>\n    <path fill=\"#fff\" d=\"m69.256 96.942-.409-1.196-.583.204z\"/>\n    <path fill=\"#fff\" d=\"m69.256 96.942-1.022-.73.38-.496z\"/>\n    <path fill=\"#fff\" d=\"m67.797 96.942.992-.73-.35-.496z\"/>\n    <path fill=\"#fff\" d=\"m67.797 96.942.38-1.196.583.204zm12.253 5.805-.117.409.175.058z\"/>\n    <path fill=\"#fff\" d=\"m80.05 102.747.117.409-.175.058z\"/>\n    <path fill=\"#fff\" d=\"M80.43 103.039h-.41v.204z\"/>\n    <path fill=\"#fff\" d=\"m80.43 103.039-.322.233-.116-.145z\"/>\n    <path fill=\"#fff\" d=\"m79.67 103.039.322.233.116-.145z\"/>\n    <path fill=\"#fff\" d=\"M79.67 103.039h.41v.204z\"/>\n    <path fill=\"#fff\" d=\"m80.284 103.506-.117-.379-.204.058z\"/>\n    <path fill=\"#fff\" d=\"m80.284 103.506-.321-.234.116-.175z\"/>\n    <path fill=\"#fff\" d=\"m79.817 103.506.32-.234-.116-.175z\"/>\n    <path fill=\"#fff\" d=\"m79.817 103.506.116-.379.205.058z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"470675218__a\">\n      <path fill=\"#fff\" d=\"M.5.482h160.44v160H.5z\"/>\n    </clipPath>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/flag-mx.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 161\">\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M47 136.3h66v-120H47z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M113 136.3h47v-120h-47z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M0 136.3h47v-120H0z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#0090C5\" fill-rule=\"evenodd\" d=\"M76 89c-2.4.7-3.5-1.2-3.8-2.6-.3 1.2-.3 2-1.2 1.7l-4.6-1.9c-.7-.2-.8.4.3 1 1.2.6 2.3 1.3 2.3 1.7 0 .4-1 1-1.4 1.1 1.7 0 3.7.4 4.3.5 1.1.3 1.2 1-.7 2.3 4.8-.5 4.6 1.9 7 1.8H83c2.2 0 .5-1 2.7-1.5l4.1-1.3c-1.2-.2-1.8-.5-1.8-.8s2.3-1.1 3.4-1.6c-.3-.1-1.3-.3-2.5 0-1.2.4-3.2.7-5.7.4-2.5-.3-5.3.2-7.2-.8\" clip-rule=\"evenodd\"/>\n    <path fill=\"#F4B727\" fill-rule=\"evenodd\" d=\"M84.2 93.4c.4.5 1 .4 1.4 0 .3-.4 0-1-.3-1.1.3-.7.4-2.1 0-2.7.4-.2.6-.7.3-1.1-.3-.4-1-.5-1.4 0-2-.5-6.4-.4-7.8 0-.4-.5-1-.4-1.3 0-.3.4-.1 1 .2 1.1-.4.6-.2 2 0 2.7-.3.2-.5.7-.2 1.1.3.4 1 .5 1.3 0 1.6.7 6.1.7 7.8 0\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M67.7 89.2c-1 0-1 1.6 0 1.6s1.1-1.6 0-1.6\" clip-rule=\"evenodd\"/>\n    <path stroke=\"#CCC\" stroke-width=\".1\" d=\"M67.7 89.2c-1 0-1 1.6 0 1.6s1.1-1.6 0-1.6\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M72 85.8c-1.1 0-1.1 1.5 0 1.5s1-1.5 0-1.5\" clip-rule=\"evenodd\"/>\n    <path stroke=\"#CCC\" stroke-width=\".1\" d=\"M72 85.8c-1.1 0-1.1 1.5 0 1.5s1-1.5 0-1.5\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M89.3 91.2c-1 0-1 1.6 0 1.6s1-1.6 0-1.6\" clip-rule=\"evenodd\"/>\n    <path stroke=\"#CCC\" stroke-width=\".1\" d=\"M89.3 91.2c-1 0-1 1.6 0 1.6s1-1.6 0-1.6\"/>\n    <path fill=\"#745F39\" fill-rule=\"evenodd\" d=\"M66.3 85.7c-.6-.4-1.4-.3-1.6.1-.3.4.3 1 1 1.4.6.3 1.2 0 1.3-.2.2-.3 0-1-.7-1.3M71 92c-.7.2-1.2.8-1 1.2s1 .5 1.6.3c.6-.2.9-.8.8-1.1-.2-.5-.6-.7-1.4-.4m20-1.7c.8-.2 1.5-1 1.3-1.3-.2-.5-1-.4-1.7-.2-.6.2-1 .8-.9 1 .2.5.6.7 1.4.5\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M93 94.6c0-.4-.2-1.3-.5-1.6a.5.5 0 0 0 .2-.9c-.2-.2-.6 0-.7.1-.1.2-.1.7.2.8.1.3.4 1.5.1 2a4 4 0 0 1 1.8.5c-.2.3.3.6.5.6s.5-.2.4-.6a.5.5 0 0 0-.8-.3c-.1-.3-.9-.5-1.2-.6\" clip-rule=\"evenodd\"/>\n    <path stroke=\"#000\" stroke-width=\".1\" d=\"M93 94.6c0-.4-.2-1.3-.5-1.6a.5.5 0 0 0 .2-.9c-.2-.2-.6 0-.7.1-.1.2-.1.7.2.8.1.3.4 1.5.1 2a4 4 0 0 1 1.8.5c-.2.3.3.6.5.6s.5-.2.4-.6a.5.5 0 0 0-.8-.3c-.1-.3-.9-.5-1.2-.6Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M100.4 88.5c0-.3-.6-1.2-1-1.4a.5.5 0 0 0 0-.8c-.4-.1-.6.1-.7.3s0 .7.5.6c.1.3.8 1.3.7 1.8a4 4 0 0 1 1.8 0c0 .4.5.5.7.4.1 0 .4-.4.2-.7a.5.5 0 0 0-.9 0c-.2-.2-1-.2-1.3-.2m4.1-8.2c-.1-.3-.8-.8-1-.9a.5.5 0 0 0-.6-.7c-.3 0-.4.4-.4.6 0 .2.4.5.7.3.3.2 1 1 1.1 1.4.4-.3 1.4-.6 1.7-.6.2.3.7.2.8 0s.2-.5 0-.7a.5.5 0 0 0-.8.4c-.3 0-1.2 0-1.5.2\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M104.1 81.3c.3-1.3.4-2.4-.4-3.5s0-2.6-.4-3.4c.5.6 1.6 1.8 1.8 2.4.4-.8 1.4-2.3 2.2-2.6 0 .5 0 1.1.2 1.6.2.8-.7 2-1.5 2.7-.5.5-1.3.8-1.6 3z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M104.3 81.1c.4-3-.4-6.6 1.1-7.8 1 1.7 1.1 3.8.5 4.6a7 7 0 0 0-1.6 3.2M99 89.6c1-.8 1.8-1.5 1.6-3-.3-2.2.3-4.7 2.3-5.1.1.6.2 2.1.1 2.8.9-.8 1.5-1.8 3.1-1.9-1.2 1.2-1.6 4.1-3.2 4.8a8.9 8.9 0 0 0-3.6 2.9z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M99.7 89.3c.6-.8 1-1.2 1.4-3 .4-2.1 1.6-4.9 3.3-5.7.3 1.5-.2 3.6-1.4 5.2s-2.9 3-3.3 3.5M92 94.9c1.3-.9 1.7-1.4 2-2.3.8-2.4 3.2-3.3 3.3-4.2.2 1.1 0 2.5-.3 3.2.6-.6 2-1.1 2.9-1.2-.6 1 0 2.4-2 3-2 .7-3-.2-6 1.9z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M92.1 95c1.2-1 2.8-2.5 3.7-3.5.8-1.1 2.6-2.6 4.3-2.6-.8 2.1-2.6 3.9-4.8 4.6-2.3.8-2.4 1-3.2 1.5m-7.8 1.6c2-.3 2.4-3.2 6.4-2.7-.6.5-1 1.9-1.9 2.4 1 .1 2.4.4 3.4 1-1.1-.2-3.6 1.8-5.7.8s-1.8-1.1-2.2-1.5\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M85.2 97.5c1.6 1 6-.4 7.5-2.8-1.8-.2-4 .6-5.2 1.2-1.2.6-2.3.6-3.2.4-2.6-.4-5.5-.5-8.5 1.6-.2.2.3.7.6.5 2.5-2 5.9-2.7 8.8-.9\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M67.6 94.7c0-.7-.1-1.2-.3-1.6-.2-.3-.3-1.2 0-1.2.4 0 .7.6.5 1s0 1.7.4 2.1z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M67.4 92.9c-.5-.2-.7 0-.5.4.3.5 1 .6 1.1.2.4-.5.2-.8 0-.7h-.6m0 2c-.6.2-1.1.2-1.5.2s-1.2 0-1.2.4c.1.3.8.4 1.2.1s1.6-.4 2.1-.2z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M65.7 95.1c-.3-.4-.1-.6.3-.5.5 0 .8.7.5 1-.4.4-.8.3-.7 0l-.1-.5m-5.5-6.7c.1-.7.2-1.2.1-1.6 0-.4 0-1.3.4-1.2.3 0 .4.7.2 1.1a3 3 0 0 0-.1 2.1l-.3-.1z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M60.4 86.5c-.4-.2-.6 0-.5.4.1.5.7.7 1 .4.5-.4.4-.7.1-.7h-.6m.4 2.5c-.4-.3-1.8-.4-2.3-.2-.5.2-1.1 0-1.1-.3 0-.4.8-.4 1.2-.2s1 .1 1.6 0l.4.3z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M58.4 88.5c-.3-.5 0-.6.4-.5.5.2.6.8.3 1.1-.5.4-.8.2-.8 0v-.6M56 81.3c.2-.9.7-2 1.1-2.2.5-.3.6-1 .3-1.2-.3-.2-.7.6-.8 1 0 .4-.4 1-.8 1.5v.5z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M56.7 78.7c-.2-.4-.5-.3-.6.1 0 .6.4 1 .8.8.6-.2.6-.5.3-.6l-.5-.3m-1.2 1.7c-.6-.3-1.1-.6-1.4-1s-1-.7-1.1-.4.2.8.7 1c.6 0 1.7.8 2 1.2l-.1-.3z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M53.9 79.5c0-.6.3-.6.5-.3.4.5.2 1-.3 1.1-.6.1-.7-.2-.6-.4l.4-.4\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M55.7 82.4c0-1-.4-2.3-.6-3-.2-.8-.8-.7-.8-1.3-.1-.3-.2-.4-.8-.7-.7-.3-.9-.4-.8-.8 0-.4.2-.4.7-.2.5.2.6 0 .3-.4s-.5-.7-.5-1.1.4-.5.7-.2c.3.3.6.2.8 0 .2-.4-.2-.8 0-1.5.3-.5.6-.2.8 0s.6-.2.8-.3c.2 0 .4.3 0 .5-.3.2 0 .5-.4.8-.3.3 0 .4.3.3.3 0 .5 0 .6.2 0 .4-.5.8-1 1.1-.5.3 0 .4.7.4.5 0 .2.5-.4.7-.4.2-.7.6-.4.8s.2.3-.1.7.4 2.8.5 3.8v.3z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M61.7 89.2c-1.7-1-2.4-1.7-2.4-2.7 0-.8 0-1.2.2-1.6.3-.3.2-.7-.2-.3-.4.3-.7.2-.7-.4s.4-1.2.2-1.7c-.3-.4-.7-.4-.9.2 0 .2-.2.5-.5.5s-.2-.6 0-1c0-.3-.3-.6-.5-.3s-.6.7-.8.2c-.2-.5-.6-.2-.5 0-.5 0-.5.3-.4.5.2.3.3.5 0 .4-.3 0-.8-.2-.7.2s1 .8 1.6.9c.6.1.7.4.4.5s-.4 0-.9 0c-.4-.1-.5.2-.1.6.3.3 1.2.4 1.5.5.7 0 .7.5.5.5-.3 0-.8-.2-.9 0 0 .3.7.6 1.3.6.5 0 .6 0 .7.2.8 1 2.1 2.2 3 2.6l.4-.1z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M68.5 95.7c-.8-.4-1.5-1-2-1.5s-1.2-.3-1.8-.1c-.5.1-.5-.1-.4-.3 0-.2 0-.4-.6-.2s-1.2.3-1.8-.1c-.7-.4-.6-.8-.1-.7.4 0 .8 0 1.2-.2.4-.3.2-.6-.6-.6-.7 0-1.2-.2-1.6-.6-.4-.4 0-.6.2-.5.3.1.5.2.8.1.3-.1.3-.4 0-.5-.2 0-.5-.1-.9-.5-.4-.3 0-.4.4-.4.5 0 .3-.4.3-1 0-.5.3-.3.6.2s.5.4.5-.1.2-.6.4-.3c.3.2.3.8.3 1.3s.3 1 .5.3.5-.5.8-.1c.3.3.2 1 .4 1.8.2.7.5.4.7.2 0-.2.3-.4.3.4s1.1 2.4 2.8 3z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M84.6 98.2c-2.6-1.8-5.7-2.8-8.2-2-.6 0-1 .3-1.3-.3-.4-.6-.5-.4-.7-.2s-.5.2-.9-.4c-.3-.6-.6-.8-1-.8s-.6.3-.3.7c.2.4 0 .7-.4.3-.3-.3-.8-.8-1.2-.8s-.8 0-.6.4c.3.4.3.8-.2.5-.5-.4-.8-.6-1.3-.5-.6 0-.1.7-.7.8a2 2 0 0 0-.9.5c-.1.2-.2.7 1.1.5 1.3-.2 1.3-.1 1.2.3 0 .4 0 .9.7.7.9-.2 1.4-1 1.7-.6.2.2 0 .5-.2.7-.4.3.4.6.8.3s.9-.9 1.2-.8c.3.1 0 .5-.1.7-.1.2 0 .7.5.4.5-.2.8-1.8 2.4-1.5.5-.9 4.2-1.3 7.2 1.2.2.2.5.2.7.2.3 0 .7 0 .5-.3\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M80.6 98.4c.7.5 1.5 1 1.7 1.5a2 2 0 0 0-.5.5c-.4-.5-1.1-1-1.7-1.4l.5-.6m-1.8-1c-.7.7-2.1 1-2.5 2.4a2 2 0 0 1 1-.2c0-.6 1.6-1.4 2.2-2-.3 0-.5 0-.7-.2\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M79.4 97.6c-.6 0-.9-.3-.9-1.1 0-.9.2-1 1-1.1.2 0 .2.6.2 1 0 .6 0 1.3-.3 1.2\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M81.3 97.4c.7.7 2.2 1 2.6 2.4a2 2 0 0 0-1-.2c0-.6-1.3-1.3-2-1.8v-.2a1 1 0 0 0 .4-.2\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M81 97.6c-.4 1.3-1.9 2-2.6 2.8a2 2 0 0 0-.5-.5c.3-.8 1.9-1.4 2.4-2.2l.7-.1\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M80.5 97.7c.8 0 1.1-.3 1.1-1.2 0-1-.1-1-1.1-1.1.3 0 .2.6.2 1s.1 1.3-.2 1.3\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M80.3 97.7c-.5.8-2.1 1.4-2.4 2.2a1.5 1.5 0 0 0-.6-.3c0-.6 1.6-1.4 2.2-2h.8m.3.8c.7.5 1.5 1 1.7 1.5l.6-.3c0-.6-1.3-1.3-2-1.8l-.3.6\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M80.5 97.7c.3 0 .2-.7.2-1.2s0-1.1-.2-1.1h-1.1c.3 0 .3.6.3 1s0 1.3-.3 1.2h1.1\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M63 77.9c-.4.4-1.3 0-1.6-.4-.4-.4-.8-1 0-1.7.5-.6 1.2-.3 1.7.4s.3 1.3 0 1.7\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M60.4 76c-.4-.3-.4-.5-.1-.8.2-.2.5-.2.8.1.3.5.4.8.2 1-.2.1-.4.1-.9-.2\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M60.4 76.6c-.4-.2-.5-.3-.4-.6.1-.3.3-.3.6-.1.4.2.5.3.5.5s-.3.3-.7.2m1.4-1.6c0-.6 0-.8.5-.8.4 0 .5.3.4.8 0 .5-.2.7-.5.7s-.4-.2-.4-.7m-1.2-1.5.6 1.1-.2.2-.7-1.2z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M60.4 72.8c-.6 0-.6 1 0 1 .5 0 .5-1 0-1m.6 2.8c-.4-.6-.3-.8 0-1 .4-.2.7-.1.9.3.2.6.2 1 0 1-.3.2-.5.2-.9-.3\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M66.8 83c-2.7-.2-4.9-1.6-5-3.3-.2-1.6 1.4-2.7 2.8-2 2.5 1 1.8 3.7 3.3 3.9z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M73.7 83.4c-1.3-1.2-4-3.5-5.9-2.3s-1.2 2.5-.7 3c.7 1 4 1.5 6.3.7z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M82.6 84c-3.7-1.4-6.2-2.8-8.2-1.5-2 1.2-1.4 3-.2 3.8 1.3.8 5 .5 6.6 0 1.6-.4 2-1.2 1.8-2.2m5.7 1.8c2 0 1.9-.6 2.4-1.3.6-.7 2.1-1.7 3.3-.7 1.3 1 1.6 2.4 0 3.3-1.5.9-2.6 1.1-4.3.6l-2.9-.9c.9-.3 1.2-.6 1.5-1\" clip-rule=\"evenodd\"/>\n    <path fill=\"#007845\" fill-rule=\"evenodd\" d=\"M83 90c.1-3.8 5.8-1.5 5.4-5.2-.2-1.7-3.2-1.5-5.6-.9s-2.6 3.2-2.7 6.3c0 .2.5.2 1.4.2s1.5 0 1.5-.3\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M94.6 83.6c-.7.5-.9 1-.7 1.4.2.4 1.1.3 1.7 0 .6-.3 1-1 .7-1.4-.3-.5-1-.4-1.7 0m3.4-1.5-.9 1-.2-.3 1-1z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M98.6 81.7c-.2-.6-1-.3-.9.2.2.6 1 .3.9-.2m-3 .9c.3-.5.5-.7.8-.5.4.2.3.6 0 1s-.5.5-.8.4c-.2-.2-.3-.4 0-1m1.2 1c.5 0 .8 0 .9.4 0 .4-.3.6-.7.6-.6 0-.8 0-.9-.4 0-.2.1-.5.7-.5\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M96.3 82.9c.4-.5.7-.4 1 0 .2.2 0 .6-.4.7-.5.2-.7.4-1 .1 0-.2 0-.4.4-.8m-25.8-2.5c-.7.5-1 1.6-.5 2.2.4.7 1.1.5 1.5 0 .4-.5.4-1.6.1-2zm1-1.6c-.6 0-.7.9 0 .9.5 0 .5-1 0-1\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M70.8 79.2c-.6 0-.6.9 0 .9s.7-1 0-1\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M71.7 79.3c-.6 0-.6 1 0 1s.7-1 0-1\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M71.4 80.7c.3.4 1.1.1 1.1-.6-.1 0-.7.2-1 0zm-.5-.6c-.3 0-.6-.2-.7-.6a.7.7 0 0 0 .8 1z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#D82332\" fill-rule=\"evenodd\" d=\"M71 80.8c-.3 0-.3-.6-.3-.8.1-.5 1.2-.2 1 .4 0 .4-.4.5-.7.4\" clip-rule=\"evenodd\"/>\n    <path fill=\"#9D5925\" fill-rule=\"evenodd\" d=\"M70 60.2c-.5-.4-.4-.8.4-1.4.7-.5 1.4-1.2 1.3-1.8 0-.6.2-.6.4 0V58c.4-.5.5-1.5.5-1.9s.3-.8.4-.1v1.2l.7-.3.3-1.1c0-.7.2-1 .3-.5l.1 1.2c.3-.2.5-.4.6-.7.3-.5.4-1 .5 0v.5c1.1-.6 2.7.6 3.5.5.8-.2.7 0 .5.2a2.3 2.3 0 0 1-.5.3c1 .3 1.5 1 2 1.8.4-1.7-.8-2.9-1.9-3-1.1-.1-2.4-.3-1.7-1.6.3-.7.7-1.2 2-1.2.2-.6 1-1 2.7-.8 2.1.2 4.3.6 6.2 1.6 1.9 1 3 1.7 4.1 1.2a2.4 2.4 0 0 1-.5 1c3.2 2 5.7 4.7 6.5 7.4.4 1.5.8 3 2.1 3.3a1.5 1.5 0 0 1-.7.3c.5 1.7.4 4.6 0 6.1-.4 1.6 0 4.3-.5 6.1-.5 1.8-.7.6-.7-.2 0-2.1-.4-2.8-.4-7.4 0-.6-.3-1.1-.7-1.7-.3 3 .9 4.6.2 8.7-.2 1.1-.6.1-.7-1.7s-.6-2.7-.8-4.4a4.5 4.5 0 0 0-.5-1.5c0 1.7.6 5 .4 6.7-.1 1.2-.5.2-.5-.4 0-1.9-.8-2.8-1-4.5 0-.5-.3-1.1-.8-2 .3 1.4.5 3 .5 3.7 0 .7 0 1-.4.6-.3-.5-.6-1.4-.7-2.5 0-1.1-.9-1.7-1.5-2.3.5.8 1 2.1 1.1 3 .2.8 0 1-.2.7l-1-2c-.3-.8-.8-1.6-1.5-1.9-.7-.3-.7-.2-1.5-1 .8.8 1.6 2 2 3 .5.9.4 1 0 .7-.5-.4-.6-.6-1-1.3-.8-1.4-1-1-1.5-1.2-.6-.1-1-.3-1.8-1.2a1 1 0 0 1-.5.3 9.2 9.2 0 0 1 1.1 4l9 6c1.3 1 .3 1.4-.6 1.4-.8 0-1 0-1.4-.2-.1.7-1.4 1.1-2.1.6-.4.5-1.2.7-2 0-.4.4-1 .3-1.4 0l-1.7-1.7c0 1.4-.4.6-.6.1-.1 1.5-.4 1.2-.7.7-.3 1.2-.8 1.3-1.1.7a69 69 0 0 1-.5-.7c-.2 1.4-.7 1-1 .5l-1.1-1.8c-.3.3-.6-.1-1.2-1 0-.2-.3-.4-.5-.7-.1 1.9-.6 1.7-1 1.1-.6.3-1.5.7-2.4.8-1 0-1-.3-.7-.8-1.2-.2-2.2-.4-2.3-.9 0-.4 1.6-1.3 2.5-1.9-.8-.6-1.2-1.4-1-1.5.1-.2.8 0 1.3.3-.8-.9-1.7-2.5-1.5-3l-.5-.6c-.4.2-.8.3-.7-.2.1-.6-.7-1.9-.7-2.9s.6-1.5 1-2.5c-.3 0-.4-.2-.3-.4 0-.5.9-1.2 1.1-2-.3 0-.4 0-.2-.3.3-.3.5-.8.6-1.2-.2 0-.3 0-.3-.2 0-.3-.2-.4-.4-.4-.5-.2-3.7-.3-4.6-1\" clip-rule=\"evenodd\"/>\n    <path fill=\"#F1AF7E\" fill-rule=\"evenodd\" d=\"M69.8 60c-.4 0-.8.3-.6.7a2 2 0 0 0-.7 2.8c.5.7 1.6.6 2 .6-.7-.2-1-1.6-.6-2 .3-.3.9-1 2.3.5.5-.5 1-.9 1.4-.9.6 0 1.2-.5.8-1-.4-.5-2.4.3-3-.2-.6-.4-1.3 0-1.6-.5\" clip-rule=\"evenodd\"/>\n    <path fill=\"#F4B727\" fill-rule=\"evenodd\" d=\"M84.1 81.2c.2.7-1 1.2-1.6 1s-1.3 0-1.3.8c0 .5.3.8.8 1 0 .3.4 1 1 1s1-.4 1-1c.9.1 2-.7 3-.2.2.7.9.8 1.7.4s.5-1.5-.3-1.5c-1.2 0-2.2-.7-3-2-.3 1.1-.7 1.4-1.3.5\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M82 85.7c-1-.4-.8-1.5 0-1.7s.7.3.7.6-1 .5-.7 1.1\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M82 85.7c-1-.4-.8-1.5 0-1.7s.7.3.7.6-1 .5-.7 1.1Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M80.3 84.2c-.8-.6-.2-1.7.6-1.7s.7.8.5 1c-.3.2-1.3-.2-1 .7\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M80.3 84.2c-.8-.6-.2-1.7.6-1.7s.7.8.5 1c-.3.2-1.3-.2-1 .7Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M88.6 85.4c1.2-.1 1.3-1 1-1.4-.3-.5-.8-.5-1-.3-.2.1-.4.6 0 .8.3.3.3.6 0 1\" clip-rule=\"evenodd\"/>\n    <path stroke=\"#CCC\" stroke-width=\".1\" d=\"M88.6 85.4c1.2-.1 1.3-1 1-1.4-.3-.5-.8-.5-1-.3-.2.1-.4.6 0 .8.3.3.3.6 0 1Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#F4B727\" fill-rule=\"evenodd\" d=\"m74.5 76.4 3.5 1c-.4.1-1 .3-1.4.7a38 38 0 0 0-3.3-.6c-.5.5-.8.5-1 .3l-1-.7a1 1 0 0 1-.7.2c-.2.3-.5.3-.7.3-.2.3-.4.5-.8.1-.5-.4-.7-1-.7-1.4 0-.3.3-.5.5-.5.1-.5.5-.7.9-.7 0-.5.5-.8 1.1-.7.8 0 2.7-.4 3 .2.4.4 1.2 1.2.6 1.8\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M70.7 77.3c.2.4.8.8 1.5.4-.3-.3-.8-.5-1-.6a1 1 0 0 1-.5.2\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M70.7 77.3c.2.4.8.8 1.5.4-.3-.3-.8-.5-1-.6a1 1 0 0 1-.5.2Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M70 77.6c.1.3.8.6 1.5.2a1 1 0 0 1-.8-.5l-.7.3\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M70 77.6c.1.3.8.6 1.5.2a1 1 0 0 1-.8-.5l-.7.3Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M69.5 78c0 .2.7.3 1 0l-.5-.4c-.1 0-.3.3-.5.3\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M69.5 78c0 .2.7.3 1 0l-.5-.4c-.1 0-.3.3-.5.3Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M72 74.1c-1.2 0-1.5.9-1.5 1.7 0 .4.4.4.8.3.2 0 .4-.2.2-.7 0-.4 0-1 .4-1.3\" clip-rule=\"evenodd\"/>\n    <path fill=\"#fff\" fill-rule=\"evenodd\" stroke=\"#CCC\" stroke-width=\".1\" d=\"M72 74.1c-1.2 0-1.5.9-1.5 1.7 0 .4.4.4.8.3.2 0 .4-.2.2-.7 0-.4 0-1 .4-1.3Z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#F4B727\" fill-rule=\"evenodd\" d=\"M68 57.3c.4.4.3 1.5 0 1.8 0-.3 0-1-.3-1.3z\" clip-rule=\"evenodd\"/>\n    <path fill=\"#508A33\" fill-rule=\"evenodd\" d=\"M68.2 62.6c-2.3.9-2.8-.5-2.8-1a4.8 4.8 0 0 0-.4-1.5c-.3-.8-.2-1.3.6-1.7l1.9-1.4c.4-.3.8-.5.5.3a4 4 0 0 1-.8 1.5c-.4.4-.7.8-.3 1.2s1.4-.3 1.9-.8c0 .3-.3.8-.8 1-.4 0-1.3.3-1.2.6 0 .5 1.1.1 2 .2-.3.3-.6.8-.6 1.6m4.1 13.8c.8-.4 2.3-1.2 1.4-3.2-1-2.6-4.1-.7-4.9-1.8-1.1-1.6-.9-2.6 1.9-4.6 2.7-2 2.4-3.4 1.5-4.2-.2-.3-1-1-1.5-1-.6 0-1 .7-1 1.2.8.5 1 1.5.3 2-2.4 1.9-4.7 3.7-3.6 6.9.8 2.4 2.9 2 3.6 2 1.2 0 2.3 0 1.9.7a2 2 0 0 1-.4.5v.6c.3 0 .5 0 .6.2.2.2.1.5.2.7\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M68.4 69c-.4.8-.2 1.5.4 2.4.8 1 3.9-.8 5 1.8.8 2-.7 2.8-1.5 3.2 0-.2 0-.5-.2-.7l-.5-.2a2 2 0 0 1-.1-.6l.4-.5c.4-.8-.8-.7-2-.7-2.8-.1-2.6-3.4-1.5-4.7m1.4-6.8c.2-.3.5-.5.9-.6.5 0 1.3.7 1.5 1 .9.8 1.1 2-1.2 4 1.7-1.4.6-4.1-1.2-4.4\" clip-rule=\"evenodd\"/>\n    <path fill=\"#508A33\" fill-rule=\"evenodd\" d=\"M69.5 78c-1.7 1.3-3.1.4-3.5-1.6-.3-1.3-.6-1.5-1.7-2.3-1.6-1.2-1-2.6-.5-3.8s-.1-1.6-1-2c-.7-.4-2.6-1.4 0-1.3 2.5 0 2.7 2.8 2.2 3.8s-.6 1.7.9 2.2c1.5.6 1 2.7 2 3.3l.6.2c0 .7.5 1.4 1 1.4\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M62 67c.1-.1.3-.6-.2-.7-.6-.2-.6.3-1 .4-.4.1-.5.3-.1.6.2.2 0 .7.6.8.5.1.6-.4.5-.6-.1-.1 0-.4.1-.5\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M62.6 67.2c.2-.2.3-.7-.2-.8-.6-.1-.6.4-1 .5-.3 0-.4.2 0 .5.2.3 0 .7.5.9.5.1.6-.4.5-.6 0-.1 0-.4.2-.5\" clip-rule=\"evenodd\"/>\n    <path fill=\"#BF6D26\" fill-rule=\"evenodd\" d=\"M63.2 67.3c.2-.1.3-.6-.1-.7-.6-.2-.6.3-1 .4-.4.2-.5.3-.1.6.2.2 0 .7.6.9.5 0 .6-.4.5-.6-.1-.2 0-.5.1-.6\" clip-rule=\"evenodd\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <path fill=\"#fff\" d=\"M0 .5h160v160H0z\"/>\n    </clipPath>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/flag-es.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"flag_de\">\n    <g fill-rule=\"nonzero\" class=\"Group\">\n      <path fill=\"#EF3340\" d=\"M0 20h160v30H0z\" class=\"Rectangle\"/>\n      <path fill=\"#FFD100\" d=\"M0 50h160v60H0z\" class=\"Rectangle-Copy\"/>\n      <path fill=\"#EF3340\" d=\"M0 110h160v30H0z\" class=\"Rectangle-Copy-2\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/flag-fr.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"flag-fr\">\n    <g fill-rule=\"nonzero\" class=\"Group\">\n      <path fill=\"#E53935\" d=\"M161 20v120h-53.3V20z\" class=\"Rectangle\"/>\n      <path fill=\"#F5F5F5\" d=\"M107.7 20v120H54.4V20z\" class=\"Rectangle-Copy\"/>\n      <path fill=\"#0D47A1\" d=\"M54.3 20v120H1V20z\" class=\"Rectangle-Copy-2\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/fraction.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M27 75v10h106V75zM90 30H70v20h20V30zm10-10v40H60V20h40zm-10 90H70v20h20v-20zm10-10v40H60v-40h40z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/sup.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"sup\">\n    <path fill=\"#000\" fill-rule=\"nonzero\" d=\"M74.5 65h-40v60h40V65zm0-10h10v80h-60V55h50zm51-20h-20v20h20V35zm10-10v40h-40V25h40z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/var.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\" class=\"var\">\n    <path d=\"M106.2 115.3H94.6L53 43h11.5l41.8 72.3z\" class=\"Combined-Shape\"/>\n    <path d=\"M65.4 115.3H53.8L95.6 43H107l-41.7 72.3z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/root.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 135 127\">\n  <path d=\"M16.7 69H0V59h23.3l17.5 40.8L68.6 28H135v10H75.4l-34.2 88.2z\"/>\n  <path d=\"M115.5 73h-20v20h20V73zm10-10v40h-40V63h40zm-91-53h-20v20h20V10zm10-10v40h-40V0h40z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/shift-active.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill-rule=\"evenodd\" d=\"M116 92v47H44V92H16l64-71 64 71z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/shift.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M54 82v47h52V82h15.5L80 36 38.5 82H54zm62 10v47H44V92H16l64-71 64 71h-28z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/space.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M37 124.1v-21H27v31h106v-31h-10v21z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/feedback.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill-rule=\"evenodd\">\n    <path fill-rule=\"nonzero\" d=\"m44.653 134.434 3.849 2.122c9.444 5.207 20.062 7.975 31.104 7.975 35.64 0 64.532-28.891 64.532-64.531 0-35.64-28.892-64.531-64.532-64.531S15.076 44.36 15.076 80c0 11.243 2.87 22.045 8.258 31.614l2.184 3.877-9.622 28.613 28.757-9.67zM0 160l14.621-43.479C8.543 105.73 5.075 93.27 5.075 80c0-41.162 33.369-74.531 74.531-74.531 41.163 0 74.532 33.369 74.532 74.531 0 41.162-33.37 74.531-74.532 74.531-13.028 0-25.276-3.343-35.932-9.218L0 160z\"/>\n    <path d=\"M56.125 62.166a7.089 7.089 0 0 1-1.367-.135 6.692 6.692 0 0 1-1.31-.403 7.11 7.11 0 0 1-1.21-.638c-.19-.13-.375-.27-.555-.41a8.102 8.102 0 0 1-.51-.464 6.609 6.609 0 0 1-.458-.51 6.95 6.95 0 0 1-1.053-1.764 7.504 7.504 0 0 1-.403-1.31 6.812 6.812 0 0 1-.134-1.367c0-1.843.744-3.646 2.049-4.95.162-.163.336-.315.51-.46a7.138 7.138 0 0 1 1.765-1.053 7.078 7.078 0 0 1 1.987-.499c.46-.05.924-.05 1.377 0a7.012 7.012 0 0 1 3.753 1.552c.173.145.347.297.51.46a7.046 7.046 0 0 1 2.015 5.639c-.023.23-.056.453-.1.677a7.55 7.55 0 0 1-.404 1.311 6.991 6.991 0 0 1-1.512 2.274c-.162.162-.336.32-.51.465-.18.14-.364.28-.554.409a7.11 7.11 0 0 1-1.21.638 6.692 6.692 0 0 1-1.988.504c-.23.022-.46.034-.688.034m48.55.008a7.089 7.089 0 0 1-1.366-.135 6.692 6.692 0 0 1-1.31-.403 7.132 7.132 0 0 1-1.21-.639c-.19-.128-.375-.268-.555-.408a7.949 7.949 0 0 1-.51-.465 6.616 6.616 0 0 1-.458-.51 6.953 6.953 0 0 1-1.053-1.764 7.503 7.503 0 0 1-.403-1.31 6.813 6.813 0 0 1-.135-1.367c0-1.843.745-3.646 2.05-4.951.162-.162.336-.314.51-.46a7.16 7.16 0 0 1 1.764-1.053 7.078 7.078 0 0 1 1.987-.498c.46-.05.919-.05 1.377 0a7.07 7.07 0 0 1 3.753 1.551c.18.146.347.298.51.46.162.162.319.336.464.51.14.179.28.364.404.554.257.38.47.79.644 1.21a6.694 6.694 0 0 1 .503 1.988 7.092 7.092 0 0 1 0 1.378 6.812 6.812 0 0 1-.503 1.988 6.628 6.628 0 0 1-.644 1.21c-.124.19-.264.375-.404.554a7.045 7.045 0 0 1-5.415 2.56\"/>\n    <path fill-rule=\"nonzero\" d=\"M37.918 98.753c7.35 14.615 23.64 24.225 41.678 24.225 18.04 0 34.329-9.61 41.679-24.225a5 5 0 0 0-8.934-4.493c-5.617 11.17-18.412 18.718-32.745 18.718-14.332 0-27.126-7.549-32.744-18.718a5 5 0 0 0-8.934 4.493z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/menu.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M15 30h130V20H15zM15 140h130v-10H15zM15 85h130V75H15z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/flip-x-y.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"m42.291 60.61-7.071-7.071L8.759 80l26.461 26.461 7.071-7.071L22.901 80z\"/>\n    <path d=\"M20.5 85h124.504V75H20.5z\"/>\n    <path d=\"M75 20.5v124.504h10V20.5z\"/>\n    <path d=\"m99.638 45.291 7.071-7.071-26.461-26.461L53.786 38.22l7.072 7.071 19.39-19.39z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/feedback-wrong.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <circle cx=\"80\" cy=\"80\" r=\"80\" fill=\"#F44336\"/>\n    <path fill=\"#FFF\" fill-rule=\"nonzero\" d=\"m39.4 52.27 68.47 68.47 12.73-12.73-68.47-68.47z\"/>\n    <path fill=\"#FFF\" fill-rule=\"nonzero\" d=\"m52.13 120.74 68.47-68.47-12.73-12.73-68.47 68.47z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/coin.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M80.03.18a79.9 79.9 0 1 1 0 159.82 79.9 79.9 0 0 1 0-159.81zm0 14.94a64.97 64.97 0 1 0 0 129.94 64.97 64.97 0 0 0 0-129.94z\"/>\n    <path fill-rule=\"nonzero\" d=\"M71.5 47.5v65.27a8.5 8.5 0 1 0 17 0V47.5a8.5 8.5 0 1 0-17 0z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/directory.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" class=\"color1\">\n    <path d=\"M33.3 15.5a5 5 0 0 1 5-5h93a5 5 0 0 1 5 5v128.4a5 5 0 0 1-5 5h-93a5 5 0 0 1-5-5V15.5zm19.5 36.4h66V38.2h-66v13.7zm0 33h66V71.2h-66v13.7zm0 33h66v-13.7h-66v13.7z\" class=\"color1\"/>\n    <g fill-rule=\"nonzero\" class=\"Group-2\" transform=\"translate(23.3 29)\">\n      <rect width=\"20\" height=\"20\" class=\"color1\" rx=\"5\"/>\n      <rect width=\"20\" height=\"20\" y=\"81\" class=\"color1\" rx=\"5\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/dots-vertical.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M95 5.5v30H65v-30zM95 65.5v30H65v-30zM95 125.5v30H65v-30z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/exit.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M23.4 20.7V139l60.4 15.6V139h52.7V59h-10.3v70.9H83.8V29.8h42.4V59h10.3V20.7H83.8V4.8z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/laptop.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M139.6 27.54a6 6 0 0 1 6 6v69.87a6 6 0 0 1-6 6H20.4a6 6 0 0 1-6-6V33.55a6 6 0 0 1 6-6h119.2zM132.5 37h-105a3 3 0 0 0-2.99 3v56.42a3 3 0 0 0 3 3h104.98a3 3 0 0 0 3-3V40a3 3 0 0 0-3-3zm19.88 76.38a5 5 0 0 1 5 5v7.2a5 5 0 0 1-5 5H7.62a5 5 0 0 1-5-5v-7.2a5 5 0 0 1 5-5h144.76z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/monster.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 165\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M34.38 90.57h-.02C18.88 90.57 6.32 83 6.32 73.64c0-9.3 12.45-16.86 27.84-16.93l.37-1.2-6.05-.62 8.07-10.14-7.03-2.94 13.92-8.67-9.84-4.72 15.82-2.93L45.4 14.4l17.4 6.3-3.8-11.46 16.26 9.47.04-14.5 9.43 12.59 8.8-13.16.13 13.96 12.69-10.53-3.69 12.67 12.35-1.52-6.27 7.5 15.68 5.96-3.96 5.6 13.45 14.64-6.65 1.67.75 1.98a46.9 46.9 0 0 1 2.62-.07c15.48 0 28.04 7.58 28.04 16.93 0 9.01-11.65 16.38-26.35 16.9l1.56 9.3-6.6-5.25 1.02 24.14-3.99-6.21-4.03 12.99a42.79 42.79 0 0 1 1.26 10.46c0 14.68-7.03 26.58-15.7 26.58-6.7 0-12.44-7.13-14.68-17.15l-.17.13v-.9a41.3 41.3 0 0 1-.44-2.56l-8.13 7.03-9.66-6.8c-1.68 11.63-7.87 20.25-15.25 20.25-8.67 0-15.7-11.9-15.7-26.58 0-6.08 1.2-11.69 3.24-16.17l-1.62-4.65-3.65 4.54-3.24-18.4-4.17 5.26 2-14.78z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/validated.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"m134.726 94.681 11.748 23.688-26.416 1.703-1.667 26.381-23.718-11.71-14.653 21.998-14.69-21.997-23.682 11.727-1.72-26.398-26.382-1.69 11.727-23.719L3.257 80.011l22.016-14.67-11.727-23.7 26.392-1.71 1.69-26.38 23.7 11.715L80 3.268 94.67 25.26l23.7-11.727 1.703 26.391 26.38 1.691-11.708 23.718 21.997 14.653-22.016 14.695zm-28.578-49.547L68.882 90.408 53.324 74.182 38.166 88.716 70.08 122l52.283-63.52-16.214-13.345z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/arrow-inject.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" stroke=\"#000\" stroke-width=\"10\">\n    <path d=\"M120 4.4 40 4v125.3l79.6.7\"/>\n    <path d=\"m95 104 25 25.9L95 158\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/anton-plus.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"anton-plus\">\n    <path fill=\"#9B9B9B\" fill-rule=\"nonzero\" d=\"M80 160A80 80 0 1 1 80 0a80 80 0 0 1 0 160zM69.3 69.3h-32a10.7 10.7 0 0 0 0 21.4h32v32a10.7 10.7 0 0 0 21.4 0v-32h32a10.7 10.7 0 0 0 0-21.4h-32v-32a10.7 10.7 0 0 0-21.4 0v32z\" class=\"Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/security.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"security\">\n    <path fill=\"#9B9B9B\" fill-rule=\"nonzero\" d=\"m9.8 18 70-18 70.4 18c.8 73.8-10.2 111.8-70.3 142-59.9-30.2-71-68.2-70-142zm97 20.9L69.7 84 54.1 68 38.9 82.4l32 33.3L123 52.2 106.9 39z\" class=\"Fill-1\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/help.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"help\">\n    <path fill=\"#9B9B9B\" fill-rule=\"nonzero\" stroke=\"#979797\" d=\"M80 160A80 80 0 1 1 80 0a80 80 0 0 1 0 160zm10.4-52.4V92.1h.2a34.9 34.9 0 0 0-11.2-67.8H79a34.8 34.8 0 0 0-30.3 18.4l-5 9.5 18.8 10.5 5.4-9.4c2.2-4.2 6.5-7 11.3-7 7 .2 12.5 5.6 13 12.5.2 5.6-3.3 10.7-8.7 12.5a22 22 0 0 0-15.1 20.6v15.7h22zM80 115c-6.5.6-11.5 5.9-11.5 12.2 0 6.2 5 11.5 11.5 12.1 3.4 0 6.7-1.3 9-3.6a12 12 0 0 0 3.8-8.6c0-6.7-5.7-12.1-12.8-12.1z\" class=\"Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/close-box.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M35 125h90V35H35zM25 25h110v110H25z\"/>\n  <path d=\"m118.7 48.2-70.5 70.5-6.4-6.4 70.5-70.5z\"/>\n  <path d=\"M112.3 118.7 41.8 48.2l6.4-6.4 70.5 70.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/lock-open.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\" class=\"lock-open\">\n    <path d=\"M25.3 75.4v67h109.4v-67H25.3zm-10-10h129.4v87H15.3v-87z\" class=\"Rectangle-7\"/>\n    <path d=\"M122.6 44.6h-10a32.6 32.6 0 1 0-65.2 0v25h-10v-25a42.6 42.6 0 1 1 85.2 0z\" class=\"Oval\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/emoticon/sad.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n  <g fill-rule=\"evenodd\">\n    <path d=\"M34.5 39a12.7 12.7 0 0 1-2.4-.2 12 12 0 0 1-4.5-1.9 18.5 18.5 0 0 1-2-1.6 12.2 12.2 0 0 1-2.6-4 12.5 12.5 0 0 1-.7-2.4l-.2-1.2a12.7 12.7 0 0 1 0-2.4c0-.4 0-.8.2-1.2.1-.8.3-1.6.7-2.4a12.8 12.8 0 0 1 1.8-3.1 12.3 12.3 0 0 1 7.3-4.4 12.6 12.6 0 0 1 3.6-.1 12.5 12.5 0 0 1 3.6.9 12.7 12.7 0 0 1 3.1 1.8 14.3 14.3 0 0 1 2.5 2.8l1.1 2.1a12.2 12.2 0 0 1 1 4.8 12.7 12.7 0 0 1-.2 2.4 12 12 0 0 1-.8 2.4 12.5 12.5 0 0 1-1.8 3.1 10 10 0 0 1-1.8 1.8l-1 .7a13 13 0 0 1-4.5 1.9 12.7 12.7 0 0 1-2.4.2m61 0a12.6 12.6 0 0 1-10.4-5.6 12.6 12.6 0 0 1-1.8-4.5l-.2-1.2a12.7 12.7 0 0 1 0-2.4c0-.4 0-.8.2-1.2a12.6 12.6 0 0 1 1.8-4.5 10 10 0 0 1 1.6-2 12.6 12.6 0 0 1 17.6 0 12.2 12.2 0 0 1 2.7 4.1 12.2 12.2 0 0 1 1 3.6 12.7 12.7 0 0 1 0 2.4 12.2 12.2 0 0 1-1 3.6 12.5 12.5 0 0 1-1.8 3.1 12 12 0 0 1-5 3.6c-.7.4-1.5.6-2.3.8a12.6 12.6 0 0 1-2.4.2M64 75a60.2 60.2 0 0 1 54 31.5 8.5 8.5 0 0 1-15.1 7.6 43.1 43.1 0 0 0-39-22.1 43.1 43.1 0 0 0-38.8 22.1 8.5 8.5 0 0 1-15.2-7.6A60.2 60.2 0 0 1 64 75\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/brightness-down.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M58.8 80a21.2 21.2 0 1 0 42.4 0 21.2 21.2 0 0 0-42.4 0zm-10 0a31.2 31.2 0 1 1 62.4 0 31.2 31.2 0 0 1-62.4 0zM25 84.6v-10h12v10zM122.6 84.6v-10h12v10zM74.6 24.9h10v12h-10zM74.6 122.6h10v12h-10zM37.4 44.4l7.1-7 8.5 8.5-7.1 7.1zM106.5 113.5l7-7.1 8.6 8.5-7.1 7.1zM114.7 37.4l7.1 7-8.5 8.6-7.1-7.1zM45.7 106.4l7 7.1-8.5 8.5-7.1-7.1z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/brightness-up.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M58.8 80a21.2 21.2 0 1 0 42.4 0 21.2 21.2 0 0 0-42.4 0zm-10 0a31.2 31.2 0 1 1 62.4 0 31.2 31.2 0 0 1-62.4 0zM11.9 84.6v-10H37v10zM122.2 84.6v-10h25.1v10zM74.6 11.9h10V37h-10zM74.6 122.2h10v25.1h-10zM28.2 35.2l7-7L53 45.9 45.9 53zM106.2 113.2l7-7 17.8 17.7-7.1 7.1zM123.9 28.2l7.1 7L113.2 53l-7.1-7.1zM45.9 106.2l7.1 7L35.2 131l-7.1-7.1z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/file.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M40 130h80V64.142L85.858 30H40v100zM30 20h60l40 40v80H30V20z\"/>\n  <path d=\"M90 22H80v47.554h49.436v-10H90z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/move-x.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m42.3 60.6-7.1-7.1L8.8 80l26.4 26.5 7.1-7.1L22.9 80zM118.2 99.4l7.1 7.1L151.7 80l-26.4-26.5-7.1 7.1L137.6 80z\"/>\n  <path d=\"M20.5 85H145V75H20.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/move-y.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m99.4 42.3 7.1-7.1L80 8.8 53.5 35.2l7.1 7.1L80 22.9zM60.6 118.2l-7.1 7.1L80 151.7l26.5-26.4-7.1-7.1L80 137.6z\"/>\n  <path d=\"M75 20.5V145h10V20.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/flag-de.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"flag_de\">\n    <g fill-rule=\"nonzero\" class=\"Group\">\n      <path fill=\"#212121\" d=\"M0 20h160v40H0z\" class=\"Rectangle\"/>\n      <path fill=\"#E53935\" d=\"M0 60h160v40H0z\" class=\"Rectangle-Copy\"/>\n      <path fill=\"#FFB300\" d=\"M0 100h160v40H0z\" class=\"Rectangle-Copy-2\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/flag-en_us.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"flag_en-us\">\n    <path fill=\"#E53935\" fill-rule=\"nonzero\" d=\"M0 20h160v13.3H0z\" class=\"Rectangle\"/>\n    <path fill=\"#F5F5F5\" fill-rule=\"nonzero\" d=\"M0 33.3h160v13.3H0z\" class=\"Rectangle-Copy\"/>\n    <path fill=\"#E53935\" fill-rule=\"nonzero\" d=\"M0 46.6h160v13.3H0z\" class=\"Rectangle-Copy-2\"/>\n    <path fill=\"#F5F5F5\" fill-rule=\"nonzero\" d=\"M0 60h160v13.3H0z\" class=\"Rectangle\"/>\n    <path fill=\"#E53935\" fill-rule=\"nonzero\" d=\"M0 73.3h160v13.3H0z\" class=\"Rectangle-Copy\"/>\n    <path fill=\"#E53935\" fill-rule=\"nonzero\" d=\"M0 99.9h160v13.3H0z\" class=\"Rectangle-Copy-3\"/>\n    <path fill=\"#E53935\" fill-rule=\"nonzero\" d=\"M0 126.6h160v13.3H0z\" class=\"Rectangle-Copy-5\"/>\n    <path fill=\"#F5F5F5\" fill-rule=\"nonzero\" d=\"M0 86.6h160v13.3H0z\" class=\"Rectangle-Copy-2\"/>\n    <path fill=\"#F5F5F5\" fill-rule=\"nonzero\" d=\"M0 113.3h160v13.3H0z\" class=\"Rectangle-Copy-6\"/>\n    <path fill=\"#0D47A1\" fill-rule=\"nonzero\" d=\"M0 20h80v66.6H0z\" class=\"Rectangle-Copy-4\"/>\n    <g fill=\"#F5F5F5\" class=\"Group-2\">\n      <path d=\"m7 39 4.9-3 4.9 3-1.4-5.6 4.4-3.7-5.7-.4-2.2-5.3-2.2 5.3-5.7.4 4.3 3.7zM25.7 39l4.9-3 4.9 3-1.3-5.6 4.3-3.7-5.7-.4-2.2-5.3-2.2 5.3-5.7.4 4.4 3.7zM44.5 39l4.9-3 4.8 3-1.3-5.6 4.3-3.7-5.7-.4-2.1-5.3-2.2 5.3-5.7.4 4.3 3.7zM63.2 39l4.9-3 4.9 3-1.4-5.6 4.4-3.7-5.7-.4-2.2-5.3-2.2 5.3-5.7.4 4.4 3.7z\" class=\"Fill-1\"/>\n    </g>\n    <path fill=\"#F5F5F5\" d=\"m7 59.5 4.9-3 4.9 3-1.4-5.6 4.4-3.7-5.7-.4-2.2-5.3-2.2 5.3-5.7.4 4.3 3.7z\" class=\"Fill-1-Copy\"/>\n    <g fill=\"#F5F5F5\" class=\"Group\">\n      <path d=\"m7 80 4.9-3 4.9 3-1.4-5.6 4.4-3.7-5.7-.4-2.2-5.3-2.2 5.3-5.7.4 4.3 3.7zM25.7 80l4.9-3 4.9 3-1.3-5.6 4.3-3.7-5.7-.4-2.2-5.3-2.2 5.3-5.7.4 4.4 3.7zM44.5 80l4.9-3 4.8 3-1.3-5.6 4.3-3.7-5.7-.4-2.1-5.3-2.2 5.3-5.7.4 4.3 3.7zM63.2 80l4.9-3 4.9 3-1.4-5.6 4.4-3.7-5.7-.4-2.2-5.3-2.2 5.3-5.7.4 4.4 3.7z\" class=\"Fill-1-Copy-2\"/>\n    </g>\n    <path fill=\"#F5F5F5\" d=\"m25.7 59.5 4.9-3 4.9 3-1.3-5.6 4.3-3.7-5.7-.4-2.2-5.3-2.2 5.3-5.7.4 4.4 3.7zM44.5 59.5l4.9-3 4.8 3-1.3-5.6 4.3-3.7-5.7-.4-2.1-5.3-2.2 5.3-5.7.4 4.3 3.7zM63.2 59.5l4.9-3 4.9 3-1.4-5.6 4.4-3.7-5.7-.4-2.2-5.3-2.2 5.3-5.7.4 4.4 3.7z\" class=\"Fill-1-Copy\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/logo/anton-icon-square.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 171 171\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <path fill=\"#FFF\" d=\"M.89.938h170v170H.89z\"/>\n    <path fill=\"#000\" d=\"M55.63 59.578a12.66 12.66 0 0 1-2.44-.24c-.8-.16-1.59-.4-2.34-.72-.76-.31-1.48-.7-2.16-1.14-.34-.23-.67-.48-.99-.73-.31-.26-.62-.54-.91-.83-.29-.29-.57-.59-.83-.91-.25-.32-.5-.65-.72-.99-.45-.68-.84-1.4-1.15-2.16a12.49 12.49 0 0 1-.71-2.34c-.09-.4-.15-.8-.19-1.21a12.66 12.66 0 0 1 0-2.46c.04-.4.1-.81.19-1.21.16-.8.4-1.59.71-2.34a12.78 12.78 0 0 1 1.87-3.14c.26-.32.54-.63.83-.92.29-.29.6-.56.91-.82.32-.26.65-.51.99-.73.68-.45 1.4-.84 2.16-1.15.75-.31 1.54-.55 2.34-.72a12.569 12.569 0 0 1 3.67-.18c.4.04.81.1 1.21.18.8.17 1.59.41 2.34.72a12.748 12.748 0 0 1 3.15 1.88c.31.26.62.53.91.82.29.29.57.6.82.92.26.31.51.64.73.98.45.68.84 1.41 1.15 2.16a12.233 12.233 0 0 1 .96 4.78 12.662 12.662 0 0 1-.24 2.44c-.16.8-.4 1.59-.72 2.34a12.483 12.483 0 0 1-1.88 3.15c-.25.32-.53.62-.82.91-.29.29-.6.57-.91.83-.32.25-.65.5-.99.73-.68.44-1.4.83-2.16 1.14-.75.32-1.54.56-2.34.72a12.655 12.655 0 0 1-2.439.24m60.679 0c-3.29 0-6.51-1.33-8.84-3.66-.29-.29-.56-.59-.82-.91-.26-.32-.51-.65-.73-.99a12.565 12.565 0 0 1-1.86-4.5c-.08-.4-.15-.8-.19-1.21a12.66 12.66 0 0 1 0-2.46c.04-.4.11-.81.19-1.21a12.565 12.565 0 0 1 1.86-4.5c.22-.34.47-.67.73-.98.26-.32.53-.63.82-.92 2.62-2.61 6.37-3.97 10.069-3.6.41.04.81.1 1.21.18.8.17 1.59.41 2.34.72.76.31 1.48.7 2.16 1.15.34.22.67.47.99.73.31.26.62.53.91.82.29.29.56.6.82.92.26.31.51.64.73.98.45.68.84 1.41 1.15 2.16a12.163 12.163 0 0 1 .9 3.55 12.662 12.662 0 0 1 0 2.46 12.162 12.162 0 0 1-.9 3.55 12.483 12.483 0 0 1-1.88 3.15c-.26.32-.53.62-.82.91-.29.29-.6.57-.91.83-.32.25-.65.5-.99.73-.68.44-1.4.83-2.16 1.14-.75.32-1.54.56-2.34.72a12.624 12.624 0 0 1-2.439.24m-30.339 80.12c-23.229 0-44.457-12.366-54.082-31.505a8.5 8.5 0 0 1 15.187-7.64c6.765 13.455 22.034 22.145 38.895 22.145 16.862 0 32.13-8.691 38.895-22.144a8.5 8.5 0 0 1 15.187 7.639c-9.625 19.139-30.853 31.505-54.082 31.505\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/logo/anton-logo-vertical.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 616 113\">\n  <g fill-rule=\"evenodd\">\n    <path d=\"M25.038 29.84a12.662 12.662 0 0 1-2.44-.24c-.8-.16-1.59-.401-2.34-.72a12.483 12.483 0 0 1-3.15-1.88c-.31-.25-.62-.53-.91-.82-.29-.29-.56-.601-.82-.92-.26-.311-.51-.641-.73-.981-.45-.68-.84-1.4-1.15-2.16-.31-.75-.55-1.54-.72-2.34a12.522 12.522 0 0 1 0-4.88c.17-.8.41-1.59.72-2.34.31-.76.7-1.48 1.15-2.16.22-.34.47-.67.73-.99.26-.31.53-.62.82-.91 2.33-2.33 5.55-3.66 8.84-3.66s6.51 1.33 8.84 3.66c.29.29.56.6.82.91.26.32.51.65.73.99.45.68.84 1.4 1.15 2.16.31.75.55 1.54.72 2.34a12.615 12.615 0 0 1 .24 2.44 12.64 12.64 0 0 1-.24 2.44c-.17.8-.41 1.59-.72 2.34-.31.76-.7 1.48-1.15 2.16-.22.34-.47.67-.73.98-.26.32-.53.63-.82.92-.29.29-.6.57-.91.82a12.483 12.483 0 0 1-3.15 1.88 12.019 12.019 0 0 1-3.55.9c-.41.04-.82.06-1.23.06m60.68.001a12.662 12.662 0 0 1-2.44-.24c-.8-.16-1.58-.401-2.34-.72-.75-.311-1.48-.7-2.16-1.15-.34-.22-.67-.47-.98-.73-.32-.25-.63-.53-.92-.82-.29-.29-.56-.601-.82-.92-.26-.311-.51-.641-.73-.981a12.64 12.64 0 0 1-1.86-4.5 10.07 10.07 0 0 1-.19-1.21 12.64 12.64 0 0 1 0-2.46c.04-.4.1-.81.19-1.21a12.64 12.64 0 0 1 1.86-4.5c.22-.34.47-.67.73-.99.26-.31.53-.62.82-.91a12.086 12.086 0 0 1 1.9-1.55c.68-.45 1.41-.84 2.16-1.15.76-.31 1.54-.55 2.34-.71.4-.09.81-.15 1.21-.19.82-.08 1.64-.08 2.46 0 .41.04.81.1 1.21.19a12.565 12.565 0 0 1 4.5 1.86c.34.22.67.47.99.72.32.26.62.54.91.83.29.29.57.6.83.91.25.32.5.65.73.99.45.68.83 1.4 1.14 2.16.32.75.56 1.54.72 2.34a12.615 12.615 0 0 1 .24 2.44 12.64 12.64 0 0 1-.24 2.44c-.16.8-.4 1.59-.72 2.34-.31.76-.7 1.48-1.15 2.16a11.946 11.946 0 0 1-1.55 1.9c-.29.29-.59.57-.91.82a12.483 12.483 0 0 1-3.15 1.88 12.019 12.019 0 0 1-3.55.9c-.41.04-.82.06-1.23.06M55.38 109.958c-23.23 0-44.458-12.366-54.082-31.506A8.5 8.5 0 0 1 5.073 67.04a8.498 8.498 0 0 1 11.413 3.774c6.764 13.452 22.03 22.143 38.894 22.143 16.862 0 32.129-8.691 38.894-22.144a8.501 8.501 0 0 1 15.188 7.639c-9.625 19.14-30.853 31.506-54.082 31.506M175.774 24.018l13.878 39.012h-27.697c2.821-7.81 10.892-30.213 13.82-39.012zm10.072-15.56A10.679 10.679 0 0 0 175.829 1.6a10.679 10.679 0 0 0-10.015 6.852l-35.692 91.761a8.233 8.233 0 0 0 .878 7.64 8.234 8.234 0 0 0 6.801 3.59c3.386 0 6.478-2.126 7.693-5.288l10.513-27.373h39.076l10.602 27.29a8.37 8.37 0 0 0 7.848 5.37 8.417 8.417 0 0 0 7.848-11.467L185.846 8.457zm221.882-6.424h-67.34c-4.324 0-7.84 3.517-7.84 7.84 0 4.322 3.516 7.84 7.84 7.84h25.11v85.058c0 4.78 3.888 8.67 8.667 8.67 4.782 0 8.67-3.89 8.67-8.67V17.714h24.893c4.324 0 7.84-3.518 7.84-7.84 0-4.323-3.516-7.84-7.84-7.84m88.21 54.561c0 14.677-2.387 24.448-7.51 30.747-5.747 7.065-12.56 10.078-22.782 10.078-9.942 0-16.134-2.865-22.084-10.219-5.589-6.904-8.423-17.203-8.423-30.607 0-13.354 2.832-23.588 8.417-30.422 5.95-7.279 12.184-10.117 22.236-10.117 10.222 0 17.014 2.982 22.71 9.97 5.073 6.23 7.436 15.942 7.436 30.57M465.792.375c-15.582 0-26.192 4.436-35.478 14.834-8.733 9.78-13.16 23.653-13.16 41.24 0 17.731 4.451 31.704 13.232 41.527 9.336 10.45 19.882 14.907 35.26 14.907 15.181 0 25.664-4.536 35.053-15.168 8.823-9.99 13.297-23.826 13.297-41.12 0-17.394-4.463-31.242-13.265-41.163C491.37 4.877 480.92.375 465.792.375M312.928 2.034c-4.522 0-8.2 3.678-8.2 8.2v73.55l-14.274-22.221-34.598-53.482-.326-.514a11.849 11.849 0 0 0-10.057-5.533c-6.566 0-11.906 5.342-11.906 11.906v89.373c0 4.483 3.645 8.129 8.127 8.129 4.482 0 8.129-3.646 8.129-8.13v-73.6l49.16 76.218a11.985 11.985 0 0 0 10.112 5.512c6.636 0 12.034-5.398 12.034-12.034V10.235c0-4.523-3.68-8.201-8.201-8.201m302.627 45.18v-36.98c0-4.522-3.678-8.2-8.2-8.2-4.522 0-8.2 3.678-8.2 8.2v73.549l-14.273-22.22-34.597-53.481-.327-.516a11.85 11.85 0 0 0-10.057-5.532c-6.565 0-11.907 5.342-11.907 11.907v89.373c0 4.482 3.646 8.129 8.127 8.129 4.482 0 8.129-3.647 8.129-8.13v-73.6l49.16 76.219a11.987 11.987 0 0 0 10.114 5.512c6.635 0 12.031-5.4 12.031-12.034V47.214z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/logo/anton-logo.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 487 301\">\n  <path fill-rule=\"evenodd\" d=\"M172.717 36.666a17.393 17.393 0 0 1-3.52-.36 16.7 16.7 0 0 1-1.71-.43c-.56-.17-1.12-.37-1.66-.591-.54-.23-1.08-.48-1.59-.76a17.84 17.84 0 0 1-1.52-.9 18.605 18.605 0 0 1-2.74-2.24 18.368 18.368 0 0 1-2.23-2.73c-.33-.49-.63-1-.9-1.52-.28-.51-.53-1.05-.76-1.59-.22-.54-.42-1.1-.59-1.66-.17-.56-.32-1.14-.43-1.71a17.195 17.195 0 0 1-.36-3.52 17.065 17.065 0 0 1 .36-3.51c.11-.57.26-1.15.43-1.71.17-.56.37-1.12.59-1.66.23-.54.48-1.08.76-1.59.27-.52.57-1.03.9-1.52a18.353 18.353 0 0 1 2.23-2.73c.42-.42.86-.82 1.32-1.19.45-.37.93-.73 1.42-1.05.49-.32 1-.63 1.52-.9.51-.28 1.05-.53 1.59-.76.54-.22 1.1-.42 1.66-.59.56-.17 1.13-.32 1.71-.43.57-.12 1.16-.21 1.74-.27 1.18-.12 2.37-.12 3.55 0 .58.06 1.17.15 1.74.27.58.11 1.15.26 1.71.43.56.17 1.12.37 1.66.59.54.23 1.08.48 1.59.76.52.27 1.03.58 1.52.9.49.32.96.68 1.42 1.05.45.37.9.77 1.31 1.19.42.41.82.86 1.19 1.31.37.46.72.93 1.05 1.42.32.49.63 1 .9 1.52.28.51.53 1.05.75 1.59.23.54.43 1.1.6 1.66.17.56.31 1.14.43 1.71.12.57.2 1.16.26 1.74a17.613 17.613 0 0 1 0 3.54c-.06.59-.14 1.17-.26 1.75-.12.57-.26 1.15-.43 1.71-.17.56-.37 1.12-.6 1.66-.22.54-.47 1.08-.75 1.59-.27.52-.58 1.03-.9 1.52-.33.48-.68.96-1.05 1.42-.37.45-.77.9-1.19 1.31-.41.42-.86.82-1.31 1.19-.46.37-.93.72-1.42 1.05-.49.32-1 .63-1.52.9-.51.28-1.05.53-1.59.76-.54.22-1.1.42-1.66.59-.56.17-1.14.32-1.71.43a17.344 17.344 0 0 1-3.51.36m145.34.001a17.379 17.379 0 0 1-3.51-.36 16.7 16.7 0 0 1-1.71-.43c-.56-.17-1.12-.37-1.66-.591-.54-.23-1.08-.48-1.59-.76a17.84 17.84 0 0 1-1.52-.9c-.49-.33-.96-.68-1.42-1.05-.45-.37-.9-.77-1.31-1.19-.42-.41-.82-.86-1.19-1.31-.37-.46-.73-.94-1.05-1.42-.32-.49-.63-1-.9-1.52-.28-.51-.53-1.05-.75-1.59-.23-.54-.43-1.1-.6-1.66-.17-.56-.32-1.14-.43-1.71-.12-.58-.21-1.16-.26-1.75a17.342 17.342 0 0 1 0-3.54c.05-.58.14-1.17.26-1.74.11-.57.26-1.15.43-1.71.17-.56.37-1.12.6-1.66.22-.54.47-1.08.75-1.59.27-.52.58-1.03.9-1.52.32-.49.68-.96 1.05-1.42.37-.45.77-.9 1.19-1.31.41-.42.86-.82 1.31-1.19.46-.37.93-.73 1.42-1.05.49-.32 1-.63 1.52-.9.51-.28 1.05-.53 1.59-.76.54-.22 1.1-.42 1.66-.59.56-.17 1.13-.32 1.71-.43.57-.12 1.16-.21 1.74-.27a17.46 17.46 0 0 1 5.29.27c.58.11 1.15.26 1.71.43.56.17 1.12.37 1.66.59.54.23 1.08.48 1.59.76.52.27 1.03.58 1.52.9.49.32.97.68 1.42 1.05.46.37.9.77 1.31 1.19.42.41.82.86 1.19 1.31.37.46.73.93 1.05 1.42.32.49.63 1 .9 1.52.28.51.53 1.05.76 1.59.22.54.42 1.1.59 1.66.17.56.32 1.14.43 1.71.12.57.21 1.16.27 1.74a17.633 17.633 0 0 1 0 3.54c-.06.59-.15 1.17-.27 1.75-.11.57-.26 1.15-.43 1.71-.17.56-.37 1.12-.59 1.66-.23.54-.48 1.08-.76 1.59-.27.52-.58 1.03-.9 1.52-.33.48-.68.96-1.05 1.42-.37.45-.77.9-1.19 1.31-3.35 3.35-7.99 5.28-12.73 5.28m-72.67 263.774c-51.948 0-99.338-27.49-120.733-70.034-2.605-5.182-.517-11.493 4.663-14.099 5.18-2.604 11.492-.516 14.098 4.663 17.862 35.52 57.89 58.47 101.972 58.47 44.084 0 84.11-22.95 101.972-58.47 2.607-5.181 8.921-7.264 14.098-4.663 5.181 2.606 7.27 8.917 4.663 14.099-21.395 42.544-68.786 70.034-120.733 70.034M47.103 94.474l13.878 39.012H33.284c2.821-7.81 10.892-30.213 13.82-39.012zm10.072-15.56a10.679 10.679 0 0 0-10.017-6.858 10.679 10.679 0 0 0-10.015 6.852L1.451 170.669a8.233 8.233 0 0 0 .878 7.64 8.234 8.234 0 0 0 6.801 3.59c3.386 0 6.478-2.126 7.693-5.288l10.513-27.373h39.076l10.602 27.29a8.37 8.37 0 0 0 7.848 5.37 8.417 8.417 0 0 0 7.848-11.467L57.175 78.913zm221.882-6.424h-67.34c-4.324 0-7.84 3.517-7.84 7.84 0 4.322 3.516 7.84 7.84 7.84h25.11v85.058c0 4.78 3.888 8.67 8.668 8.67 4.781 0 8.67-3.89 8.67-8.67V88.17h24.892c4.324 0 7.84-3.518 7.84-7.84 0-4.323-3.516-7.84-7.84-7.84m88.21 54.56c0 14.678-2.387 24.45-7.51 30.748-5.747 7.065-12.56 10.078-22.782 10.078-9.942 0-16.134-2.865-22.084-10.219-5.589-6.904-8.423-17.203-8.423-30.607 0-13.354 2.832-23.588 8.417-30.422 5.95-7.279 12.184-10.117 22.236-10.117 10.222 0 17.014 2.982 22.71 9.97 5.073 6.23 7.436 15.942 7.436 30.57m-30.146-56.22c-15.582 0-26.192 4.436-35.478 14.834-8.733 9.78-13.16 23.653-13.16 41.24 0 17.731 4.451 31.704 13.232 41.527 9.336 10.45 19.882 14.907 35.26 14.907 15.181 0 25.664-4.536 35.053-15.168 8.823-9.99 13.297-23.826 13.297-41.12 0-17.394-4.463-31.242-13.265-41.163-9.362-10.555-19.812-15.057-34.939-15.057M184.257 72.49c-4.522 0-8.2 3.678-8.2 8.2v73.55l-14.274-22.221-34.597-53.482-.327-.514a11.849 11.849 0 0 0-10.057-5.533c-6.567 0-11.907 5.342-11.907 11.906v89.373c0 4.483 3.647 8.129 8.129 8.129 4.481 0 8.129-3.646 8.129-8.13v-73.6l49.159 76.218a11.985 11.985 0 0 0 10.113 5.512c6.635 0 12.032-5.398 12.032-12.034V80.691c0-4.523-3.679-8.201-8.2-8.201m302.627 45.179v-36.98c0-4.522-3.679-8.2-8.2-8.2-4.522 0-8.2 3.678-8.2 8.2v73.55l-14.273-22.22-34.598-53.481-.327-.517a11.85 11.85 0 0 0-10.056-5.531c-6.566 0-11.908 5.341-11.908 11.906v89.373c0 4.482 3.647 8.13 8.128 8.13 4.482 0 8.128-3.648 8.128-8.13v-47.475h.001v-26.127l49.16 76.22a11.987 11.987 0 0 0 10.113 5.512c6.635 0 12.032-5.4 12.032-12.035v-52.195z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/logo/anton-smiley.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 111 106\">\n  <path fill-rule=\"evenodd\" d=\"M25.024 25.671a12.66 12.66 0 0 1-2.44-.24c-.8-.16-1.59-.4-2.34-.72-.76-.31-1.481-.7-2.16-1.14-.34-.23-.67-.48-.991-.73-.31-.26-.62-.54-.91-.83-.29-.29-.57-.59-.83-.91-.25-.32-.5-.65-.72-.99-.45-.68-.84-1.4-1.15-2.16a12.49 12.49 0 0 1-.71-2.34c-.09-.4-.15-.8-.19-1.21a12.66 12.66 0 0 1 0-2.46c.04-.4.1-.81.19-1.21.16-.8.4-1.59.71-2.34a12.78 12.78 0 0 1 1.87-3.14c.26-.32.54-.63.83-.92.29-.29.6-.56.91-.82.32-.26.65-.51.99-.73.68-.45 1.4-.84 2.16-1.15.75-.31 1.54-.55 2.34-.72a12.569 12.569 0 0 1 3.67-.18c.4.04.81.1 1.21.18.8.17 1.59.41 2.34.72a12.748 12.748 0 0 1 3.15 1.88c.31.26.62.53.91.82.29.29.57.6.82.92.26.31.51.64.73.98.45.68.84 1.41 1.15 2.16a12.233 12.233 0 0 1 .96 4.78 12.662 12.662 0 0 1-.24 2.44c-.16.8-.4 1.59-.72 2.34a12.483 12.483 0 0 1-1.88 3.15c-.25.32-.53.62-.82.91-.29.29-.6.57-.91.83-.32.25-.65.5-.99.73-.68.44-1.4.83-2.16 1.14-.75.32-1.54.56-2.34.72a12.655 12.655 0 0 1-2.439.24m60.679 0c-3.29 0-6.51-1.33-8.84-3.66-.29-.29-.56-.59-.82-.91-.26-.32-.51-.65-.73-.99a12.565 12.565 0 0 1-1.86-4.5c-.08-.4-.15-.8-.19-1.21a12.66 12.66 0 0 1 0-2.46c.04-.4.11-.81.19-1.21a12.565 12.565 0 0 1 1.86-4.5c.22-.34.47-.67.73-.98.26-.32.53-.63.82-.92 2.62-2.61 6.37-3.97 10.07-3.6.41.04.81.1 1.21.18.8.17 1.59.41 2.34.72.76.31 1.48.7 2.16 1.15.34.22.67.47.99.73.31.26.62.53.91.82.29.29.56.6.82.92.26.31.51.64.73.98.45.68.84 1.41 1.15 2.16a12.163 12.163 0 0 1 .9 3.55 12.662 12.662 0 0 1 0 2.46 12.162 12.162 0 0 1-.9 3.55 12.483 12.483 0 0 1-1.88 3.15c-.26.32-.53.62-.82.91-.29.29-.6.57-.91.83-.32.25-.65.5-.99.73-.68.44-1.4.83-2.16 1.14-.75.32-1.54.56-2.34.72a12.624 12.624 0 0 1-2.439.24m-30.339 80.121c-23.23 0-44.457-12.367-54.082-31.506a8.5 8.5 0 0 1 15.187-7.639c6.765 13.454 22.033 22.145 38.895 22.145 16.862 0 32.13-8.692 38.895-22.145a8.5 8.5 0 0 1 15.187 7.639c-9.625 19.14-30.853 31.505-54.082 31.505\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/logo/anton-type.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 487 114\">\n  <path fill-rule=\"evenodd\" d=\"m46.774 24.159 13.878 39.012H32.955c2.821-7.81 10.892-30.213 13.82-39.012zm10.072-15.56A10.679 10.679 0 0 0 46.83 1.74a10.679 10.679 0 0 0-10.015 6.852L1.122 100.354a8.233 8.233 0 0 0 .878 7.64 8.234 8.234 0 0 0 6.801 3.59c3.386 0 6.478-2.126 7.693-5.288l10.513-27.373h39.076l10.602 27.29a8.37 8.37 0 0 0 7.848 5.37 8.417 8.417 0 0 0 7.848-11.467L56.846 8.598zm221.882-6.424h-67.34c-4.324 0-7.84 3.517-7.84 7.84 0 4.322 3.516 7.84 7.84 7.84h25.11v85.058c0 4.78 3.888 8.67 8.667 8.67 4.782 0 8.67-3.89 8.67-8.67V17.855h24.893c4.324 0 7.84-3.518 7.84-7.84 0-4.323-3.516-7.84-7.84-7.84m88.21 54.561c0 14.677-2.387 24.448-7.51 30.747-5.747 7.065-12.56 10.078-22.782 10.078-9.942 0-16.134-2.865-22.084-10.219-5.589-6.904-8.423-17.203-8.423-30.607 0-13.354 2.832-23.588 8.417-30.422 5.95-7.279 12.184-10.117 22.236-10.117 10.222 0 17.014 2.982 22.71 9.97 5.073 6.23 7.436 15.942 7.436 30.57M336.792.516c-15.582 0-26.192 4.436-35.478 14.834-8.733 9.78-13.16 23.653-13.16 41.24 0 17.731 4.451 31.704 13.232 41.527 9.336 10.45 19.882 14.907 35.26 14.907 15.181 0 25.664-4.536 35.053-15.168 8.823-9.99 13.297-23.826 13.297-41.12 0-17.394-4.463-31.242-13.265-41.163C362.37 5.018 351.92.516 336.792.516M183.927 2.175c-4.52 0-8.2 3.678-8.2 8.2v73.55l-14.272-22.221-34.599-53.482-.325-.514a11.849 11.849 0 0 0-10.059-5.533c-6.566 0-11.905 5.342-11.905 11.906v89.373c0 4.483 3.645 8.129 8.127 8.129 4.483 0 8.129-3.646 8.129-8.13v-73.6l49.16 76.218a11.985 11.985 0 0 0 10.113 5.512c6.635 0 12.032-5.398 12.032-12.034V10.376c0-4.523-3.678-8.201-8.2-8.201m302.628 45.18v-36.98c0-4.522-3.68-8.2-8.2-8.2-4.523 0-8.2 3.678-8.2 8.2v36.98h-.002v36.569l-14.272-22.22-34.598-53.481-.327-.516a11.85 11.85 0 0 0-10.055-5.532c-6.567 0-11.909 5.342-11.909 11.907v89.373c0 4.482 3.647 8.129 8.128 8.129 4.483 0 8.129-3.647 8.129-8.13v-73.6l49.16 76.219a11.987 11.987 0 0 0 10.114 5.512c6.635 0 12.031-5.4 12.031-12.034V47.355z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/adventCalendar.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" class=\"adventCalendar\">\n    <g class=\"Group-Copy\">\n      <path d=\"M49.1 19v30h-30V19z\" class=\"Rectangle-2\"/>\n      <path d=\"M49.1 65v30h-30V65z\" class=\"Rectangle-2-Copy\"/>\n      <path d=\"M49.1 111v30h-30v-30z\" class=\"Rectangle-2-Copy-2\"/>\n    </g>\n    <g class=\"Group-Copy-2\">\n      <path d=\"M94.5 19v30h-30V19z\" class=\"Rectangle-2\"/>\n      <path d=\"M94.5 65v30h-30V65z\" class=\"Rectangle-2-Copy\"/>\n      <path d=\"M94.5 111v30h-30v-30z\" class=\"Rectangle-2-Copy-2\"/>\n    </g>\n    <path d=\"M139.9 19v30h-30V19z\" class=\"Rectangle-2\"/>\n    <path d=\"M139.9 111v30h-30v-30z\" class=\"Rectangle-2-Copy-2\"/>\n    <path d=\"M133 83.8h1.3c.4 0 .8-.1 1-.4.5-.5.6-1.3.2-1.8l-4.5-6.1h.5c.5 0 .9-.2 1.1-.5.5-.5.5-1.2.2-1.7l-7.4-11c-.3-.4-.7-.6-1.2-.6-.4 0-.9.2-1.1.6l-7.4 11a1.4 1.4 0 0 0 1.2 2.2h.6l-4.5 6.1c-.4.5-.4 1.3 0 1.8.3.3.8.5 1.2.4h1.8l-5 7.7a1.4 1.4 0 0 0 1.1 2.2h9.1v3.7a3 3 0 1 0 6 0v-3.7h9.2a1.4 1.4 0 0 0 1.2-2.2l-4.5-7.7z\" class=\"Fill-1\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/alert.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"m84 17 69.8 120.7a4.8 4.8 0 0 1-3.9 7.7H10c-1.7 0-3.2-1-4-2.4a4.8 4.8 0 0 1 0-4.8L75.7 17a4.8 4.8 0 0 1 8.3 0zM80 133a9 9 0 1 0 0-18.1 9 9 0 0 0 0 18.1zm-8-85.4v57.8h16V47.7H72z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/astro-bang-ship.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M50.8 109.2V31.3h19.5V11.9h19.4v19.4h19.5v77.9h19.5v38.9h-19.5v-19.4H89.7v19.4H70.3v-19.4H50.8v19.4H31.3v-38.9h19.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/avatar.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 165\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M116.4 100.5a44.4 44.4 0 0 1-17.5 16.2l1.8 18.7 1.9.8c15.2 6.7 27.4 18 27.4 18 0 .2-17.7 9.3-49.6 8.2-31.8-1-44.6-9.5-44.6-9.5 3.5-4.6 23.4-14.4 29.8-17a52.6 52.6 0 0 1 1.6-.8c.6-.2 1.8-10.1 2.7-17.8-5-2.7-10.4-6.9-16-13.2a48 48 0 0 1-8.4-15.4s-.7-.5-1.8-2c-2.5.4-5.3-.5-7.2-2.3A13.8 13.8 0 0 1 32.9 74c0-2.5.6-5 2.1-6.9l.7-.8a115.3 115.3 0 0 1-.5-2.6c-1.3-6-5.7-27.3 2.4-38.5 8-11.2 45.9-26 59-22 3.7 1 16.5 6 19 8.9a15.6 15.6 0 0 1 2.9 4.6c.1.4 6.5 6 8.9 8.9 3.4 4 3 11.8 3 17a126.3 126.3 0 0 1-2 23 6.7 6.7 0 0 1 1.6 1.5c1.5 2 2 4.4 2.1 6.9.1 3.7-.9 7.7-3.6 10.4a8.9 8.9 0 0 1-6.6 2.4c-1.4 5.2-3.2 9.9-5.5 13.7z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/checkbox.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"checkbox\">\n    <path fill=\"#979797\" fill-rule=\"nonzero\" d=\"M29.7 29.7v100.6h101.6l1.6-100.6H29.7zM6 6h148v148H6V6z\" class=\"Rectangle\"/>\n    <path fill=\"#9B9B9B\" d=\"m142 57.9-62.8 58.6L61 98.3l84-80.1z\" class=\"Rectangle-2\"/>\n    <path fill=\"#9B9B9B\" d=\"M79.2 117.5 40.6 78.9l18.2-18.2 38.6 38.6z\" class=\"Rectangle-2\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/clock.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M8.472 80C8.472 40.496 40.487 8.472 80 8.472c39.504 0 71.528 32.015 71.528 71.528 0 39.504-32.015 71.528-71.528 71.528-39.504 0-71.528-32.015-71.528-71.528zm92.756-26.414A7 7 0 1 0 88.74 47.26L71.637 81.02l38.813 45.023a7 7 0 1 0 10.604-9.14L88.364 78.98l12.864-25.395zM37.21 73.5h-11.5a7 7 0 1 0 0 14h11.5a7 7 0 0 0 0-14zm97.205 0h-11.5a7 7 0 0 0 0 14h11.5a7 7 0 1 0 0-14zM86.5 37.209v-11.5a7 7 0 1 0-14 0v11.5a7 7 0 0 0 14 0zm0 97.205v-11.5a7 7 0 0 0-14 0v11.5a7 7 0 1 0 14 0z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/cross.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"m44.6 23.4 92 92-21.2 21.2-92-92z\"/>\n    <path d=\"m136.6 44.6-92 92-21.2-21.2 92-92z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/crown.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M11 75.5a9.6 9.6 0 0 1-1.5.1A9.5 9.5 0 0 1 0 66.1a9.5 9.5 0 0 1 9.5-9.5 9.5 9.5 0 0 1 9.5 9.5c0 1.4-.3 2.8-.8 4l29.5 11.2 26-36.8a11.4 11.4 0 0 1-5.1-9.5 11.4 11.4 0 1 1 17.6 9.5l26.1 36.8 29.5-11.2a9.5 9.5 0 0 1-.8-4 9.5 9.5 0 0 1 9.5-9.5 9.5 9.5 0 0 1 9.5 9.5 9.5 9.5 0 0 1-9.5 9.5l-1.5-.1-15.8 45.7v20.2H26.8v-20.2L11 75.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/debug.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M80 153.557c-40.624 0-73.557-32.933-73.557-73.557S39.376 6.443 80 6.443 153.557 39.376 153.557 80 120.624 153.557 80 153.557zm-7.308-123.59c-4.517 0-8.323 3.806-8.323 8.322 0 4.516 3.782 8.257 8.323 8.257 4.54 0 8.256-3.716 8.256-8.257 0-4.541-3.74-8.323-8.256-8.323zm4.028 88.955h53.662l-18.904-32.928c-5.855 2.806-9.27 7.803-12.438 12.072L77.45 85.507 67.692 48.92c-.486-2.196-2.563-4.393-4.755-5.364-.733-.367-1.586-.61-2.315-.61l-16.712-.005c-2.563 0-4.268 1.344-5.612 3.535l-7.684 12.563c-1.22 2.44-.367 5.612 1.343 6.34L42.2 71.354l-.367.486c-1.096 2.196-.124 5.002 1.586 6.098l21.715 12.081v23.415a4.502 4.502 0 0 0 4.512 4.511h.123c1.344 0 2.44-.485 3.292-1.462.734-.734 1.22-1.83 1.22-2.925V89.652l21.467 12.32c-4.878 4.511-10.242 2.315-14.15 6.584-2.32 2.806-4.025 6.464-4.878 10.366zm-31.833-52.2-6.951-4.025 7.074-11.829h9.023l-9.146 15.855zm12.686 7.442 5.974-10.366 4.511 16.34-10.485-5.974zm-5.854 10.492-9.757-5.488 1.22 6.831c.123 1.463 1.095 4.393 0 5.855l-12.806 18.294c-1.344 1.953-.61 5.002 1.096 6.34 2.439 1.954 5.73-.123 6.34-1.219l13.783-19.756c.367-.733 1.463-3.782 1.096-6.465.005.12-.486-4.149-.972-4.392z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/device-computer.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"device-computer\">\n    <g fill=\"#9B9B9B\" class=\"Group-2\">\n      <g class=\"Group\">\n        <path d=\"M47.8 124.9v12.9h64.3v-12.9z\" class=\"Fill-1\"/>\n        <path d=\"M95.1 100.5v30.8H64.8v-30.8z\" class=\"Fill-1-Copy\"/>\n        <path d=\"M17 21.7h126c6.4 0 11.6 5.2 11.6 11.6V105c0 6.4-5.2 11.6-11.6 11.6H17c-6.4 0-11.6-5.2-11.6-11.6V33.3c0-6.3 5.2-11.6 11.6-11.6z\" class=\"Fill-2\"/>\n      </g>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/paste.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" class=\"paste\">\n    <g class=\"Group\">\n      <path d=\"M52.6 52.6h90v90h-90z\" class=\"Rectangle\"/>\n      <path d=\"M16.5 16.5H36v90H16.5z\" class=\"Rectangle-Copy\"/>\n    </g>\n    <path d=\"M107 16v19.5H17V16z\" class=\"Rectangle-Copy-2\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/folder.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"folder\">\n    <path fill=\"#979797\" d=\"M78.6 46.4h68.1v86.4H78.2v-.4H13.3V27.2h52.6z\" class=\"Path\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/folder-open.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"folder-open\">\n    <path fill=\"#979797\" d=\"M129.8 59H73.4L61.6 40H31.2v72.6H18.5V26.9H67l12.7 20h61.8v65.7h-11.7z\" class=\"Path\"/>\n    <g fill=\"#9B9B9B\" class=\"Group\">\n      <path d=\"M142.6 134.2H18.8L2.4 70.9h156.8z\" class=\"Combined-Shape\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/lock.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\" class=\"lock\">\n    <path d=\"M25.3 75.4v67h109.4v-67H25.3zm-10-10h129.4v87H15.3v-87z\" class=\"Rectangle-7\"/>\n    <path d=\"M122.6 69.6h-10v-25a32.6 32.6 0 1 0-65.2 0v25h-10v-25a42.6 42.6 0 1 1 85.2 0v25z\" class=\"Oval\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/flag-en_gb.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"flag-uk\">\n    <path fill=\"#08305D\" d=\"M0 138.9h159.7V20.4H0z\" class=\"Fill-2\"/>\n    <path fill=\"#FFFFFE\" d=\"M130.7 98.2h29V61h-29l29-22.5V20.4h-24.4L96.7 49.7V20.4H63v29.3L24.4 20.4H0v18L29.1 61H0v37.2h29L0 120.8v18.1h24.3L63 109.5v29.4h33.7v-29.4l38.6 29.4h24.4v-18.1z\" class=\"Fill-4\"/>\n    <path fill=\"#D0383F\" d=\"M159.7 90.5V68.8l-70.3-1V20.4H70.3v47.4L0 68.8v21.7h70.3v48.4h19.1V90.5l70.3 1\" class=\"Fill-6\"/>\n    <path fill=\"#D0383F\" d=\"M123 98.3h-15.6l53.3 40.6v-11.5z\" class=\"Fill-8\"/>\n    <path fill=\"#D0383F\" d=\"m0 31.8 36.7 29.1h16.6L0 20.4z\" class=\"Fill-10\"/>\n    <path fill=\"#D0383F\" d=\"M96.7 60.9h9.6l53.4-40.5H143L96.7 55.3z\" class=\"Fill-12\"/>\n    <path fill=\"#D0383F\" d=\"M62.9 98.3H52.3L0 138.9h16.6l46.3-36\" class=\"Fill-14\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/link.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"nonzero\" class=\"link\">\n    <path d=\"m140.7 71.8-26.8 26.8a37.6 37.6 0 0 1-59-7.8l12.4-12.1 1.9-1.6a18.8 18.8 0 0 0 31.4 8l26.7-26.7a19 19 0 0 0-26.7-26.7l-9.7 9.6A44.8 44.8 0 0 0 67 39l20.3-20.3a37.7 37.7 0 0 1 53.5 53.2z\" class=\"Path\"/>\n    <path d=\"m70 115.7-9.6 9.6a19 19 0 0 1-26.7-26.7l26.7-26.8A18.8 18.8 0 0 1 92 80l1.8-1.2 12.5-12.5a44.7 44.7 0 0 0-5.6-7.8 38.1 38.1 0 0 0-53.5 0L20.6 85.2a37.7 37.7 0 0 0 53.2 53.5L94 118.5c-8 1-16.4.3-24-2.8z\" class=\"Path\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/bulb.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\" class=\"bulb\">\n    <path d=\"M94.5 105.7v-10l4-3A40.6 40.6 0 0 0 114.1 60c0-21.8-15.5-39-34.1-39S46 38.2 46 60c0 13.4 5.9 25.6 15.5 32.7l4 3v10h29zm10 10h-49v-15A50.6 50.6 0 0 1 35.9 60C36 33 55.7 11 80 11s44 22 44 49c0 17-7.7 32-19.5 40.7v15z\" class=\"Path\"/>\n    <path d=\"M3.8 65V55H28v10z\" class=\"Line-Copy-23\"/>\n    <path d=\"M130.2 65V55h24.1v10z\" class=\"Line-Copy-24\"/>\n    <path d=\"m8.7 28.2 4.2-9 22 10.2-4.2 9z\" class=\"Line-Copy-23\"/>\n    <path d=\"m124.2 90.5 4.2-9 22 10.2-4.3 9z\" class=\"Line-Copy-24\"/>\n    <path d=\"m150.7 28.5-4.3-9-21.9 10.2 4.2 9z\" class=\"Line-Copy-23\"/>\n    <path d=\"m33.3 90.8-4.2-9L7 92l4.3 9z\" class=\"Line-Copy-24\"/>\n    <path d=\"M65 133v5c0 1.1.9 2 2 2h25a2 2 0 0 0 2-2v-5H65zm-10-10h49v15a12 12 0 0 1-12 12H67a12 12 0 0 1-12-12v-15z\" class=\"Rectangle\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/file.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"file\">\n    <path fill=\"#979797\" d=\"M20 8h77l43 43v101H20V8zm20.8 57h77V51.2h-77v13.7zm0 33h77V84.2h-77v13.7zm0 33h77v-13.7h-77V131z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/eye.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M80 35.6c32 0 59.8 17 72.8 42L154 80l-1.2 2.3a81.4 81.4 0 0 1-72.8 42c-32 0-59.8-17-72.8-42L6 80l1.2-2.3c13-25 40.8-42 72.8-42zM65.9 46.8c-21.3 3.9-39 16.5-48.6 33.2a70.6 70.6 0 0 0 48.6 33.2 36.2 36.2 0 0 1 0-66.4zm28.2 0a36.2 36.2 0 0 1 0 66.4c21.3-3.9 39-16.5 48.6-33.2a70.6 70.6 0 0 0-48.6-33.2z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/games.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" d=\"M39.32 26.7a87.7 87.7 0 0 0 1.97 0h81.81a30 30 0 0 1 16.77 4.53c10.6 6.58 16.74 19.77 16.33 38.94l.36 43.04c.06 6.88-2.01 12.82-5.97 17.1a22.38 22.38 0 0 1-13.93 6.87 28.17 28.17 0 0 1-13.85-1.86c-4.79-1.95-8.54-5-10.68-9.21a94.34 94.34 0 0 1-4.12-10.16 276.13 276.13 0 0 1-1.57-4.56 458.82 458.82 0 0 1-4.23-13.3H57.37l-.51 1.68a451.82 451.82 0 0 1-3.71 11.62 270.76 270.76 0 0 1-1.61 4.65 92.26 92.26 0 0 1-4.1 10.08c-2.12 4.2-5.88 7.25-10.67 9.2a28.17 28.17 0 0 1-13.85 1.86A22.38 22.38 0 0 1 9 130.31c-3.96-4.28-6.03-10.21-5.97-17.1l.36-43.04c-.42-19.19 5.7-32.37 16.27-38.95a30.42 30.42 0 0 1 11.41-4.2c2.47-.38 4.64-.44 6.33-.32h1.93zm4.35 21.45H32.8v10.32H22.5v10.87h10.3v10.32h10.87V69.34h10.34V58.47H43.67V48.16zM120.82 43c-3.66 0-6.7 3-6.7 6.64 0 3.63 3.06 6.7 6.7 6.7s6.64-3.05 6.64-6.7a6.66 6.66 0 0 0-6.64-6.65zm-14.2 14.29a6.72 6.72 0 0 0-6.64 6.7 6.69 6.69 0 0 0 6.65 6.64 6.69 6.69 0 0 0 6.64-6.64c0-3.64-2.99-6.7-6.64-6.7zm28.39 0a6.75 6.75 0 0 0-6.7 6.7 6.72 6.72 0 0 0 6.7 6.64 6.68 6.68 0 0 0 0-13.34zm-14.2 13.87a6.78 6.78 0 0 0-6.69 6.7 6.66 6.66 0 1 0 6.7-6.7z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/hit.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M36.59 56.52 27.43 8.8l37.18 30.14L95.83 14.6v30.47l44.5 6-3.23 25.14L160 98.85l-40.07 5.76 3.93 43.66-31.29-29.98-25.02 32.41-23.12-32.41-32.14 18.56 9.28-49.33L0 49.09z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/hole.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\">\n  <path fill=\"#FFF\" d=\"M100 0v100H0V0h100zM50 2a48 48 0 1 0 0 96 48 48 0 0 0 0-96z\"/>\n  <path fill=\"none\" stroke=\"#CBCBCB\" d=\"M49.5 97.5a48 48 0 1 1 0-96 48 48 0 0 1 0 96z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/info.svg","text":"a<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"info\">\n    <path fill=\"#9B9B9B\" fill-rule=\"nonzero\" stroke=\"#979797\" d=\"M80 160A80 80 0 1 1 80 0a80 80 0 0 1 0 160zm-.8-137c-7.7.8-13.6 7-13.6 14.5S71.5 51.2 79.2 52c4 0 8-1.5 10.8-4.2 2.8-2.7 4.4-6.4 4.4-10.3 0-8-6.8-14.3-15.2-14.3zM93 114.2V61.6H58.3v18H67V114H54.5v18h51v-18H93z\" class=\"Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/home.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M98 146.6V93.4H62v53.2H29.9V70.7h100.4v76H97.9z\"/>\n    <path d=\"m80 5 71 71H9z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/school-license.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"school-license\">\n    <path fill=\"#9B9B9B\" fill-rule=\"nonzero\" d=\"M79.8 159.6A79.8 79.8 0 1 1 79.8 0a79.8 79.8 0 0 1 0 159.6zm49.5-46V63.1a5 5 0 0 0-4.8-4.8H102V44.8c0-1.4-.8-2.5-2-3L81.7 31.3h-.3v-5.8h10c.6 0 1.4-.9 1.4-1.7v-7c0-.8-.8-1.6-1.4-1.6h-10v-.6a1.4 1.4 0 1 0-2.8 0v16.7h-.3L60 41.7c-1.2.6-2 1.7-2 3v13.7H35.5a4.9 4.9 0 0 0-4.8 4.8v50.3a5.8 5.8 0 0 0 2.5 11.2h93.6a5.8 5.8 0 0 0 2.5-11.2zM110.9 75c0-1.6 1.1-2.8 2.8-2.8h5c1.7 0 2.8 1.2 2.8 2.8v5c0 1.7-1.1 2.8-2.8 2.8h-5c-1.7 0-2.8-1-2.8-2.8v-5zm0 16.7c0-1.6 1.1-2.8 2.8-2.8h5c1.7 0 2.8 1.2 2.8 2.8v5c0 1.7-1.1 2.8-2.8 2.8h-5c-1.7 0-2.8-1-2.8-2.8v-5zM94.2 75.1c0-1.6 1.4-2.8 2.8-2.8h5.3c1.4 0 2.8 1.2 2.8 2.8v5c0 1.7-1.4 2.8-2.8 2.8H97a2.8 2.8 0 0 1-2.8-2.8v-5zm0 16.7c0-1.6 1.4-2.8 2.8-2.8h5.3c1.4 0 2.8 1.2 2.8 2.8v5c0 1.7-1.4 2.8-2.8 2.8H97a2.8 2.8 0 0 1-2.8-2.8v-5zM80 44.8a7.8 7.8 0 1 1 0 15.6 7.8 7.8 0 0 1 0-15.6zm-7.8 45c0-1.6 1.1-2.7 2.8-2.7h10c1.7 0 2.8 1.1 2.8 2.8v21.7l-.3 1.4h-15l-.3-1.4V89.9zM55 75.2c0-1.6 1.4-2.8 2.8-2.8H63c1.4 0 2.8 1.2 2.8 2.8v5c0 1.7-1.4 2.8-2.8 2.8h-5.3a2.8 2.8 0 0 1-2.8-2.8v-5zm0 16.7c0-1.6 1.4-2.8 2.8-2.8H63c1.4 0 2.8 1.2 2.8 2.8v5c0 1.7-1.4 2.8-2.8 2.8h-5.3a2.8 2.8 0 0 1-2.8-2.8v-5zM38.5 75.1c0-1.6 1.1-2.8 2.8-2.8h5c1.7 0 2.8 1.2 2.8 2.8v5c0 1.7-1.1 2.8-2.8 2.8h-5c-1.7 0-2.8-1-2.8-2.8v-5zm0 16.7c0-1.6 1.1-2.8 2.8-2.8h5c1.7 0 2.8 1.2 2.8 2.8v5c0 1.7-1.1 2.8-2.8 2.8h-5c-1.7 0-2.8-1-2.8-2.8v-5z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/trophy.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M57.9 138.8c7.2-11.4 10.5-31.1 11.5-35.2a49.5 49.5 0 0 1-20.7-18.3 94.3 94.3 0 0 1-34-21.6C3.4 52.1-1.6 39.7.7 29 2.3 20.7 7.4 15.1 15 13.3a28 28 0 0 1 16.5 1.9V5.8h95.2v9.4a28 28 0 0 1 16.6-1.8c7.5 1.7 12.6 7.3 14.4 15.5 2.3 10.8-2.7 23.2-14.2 34.8a94.3 94.3 0 0 1-34 21.6c-5.3 8-12 14.4-20.7 18.3 1 4 4.3 23.8 11.6 35.2h12.1v15.4H45.7v-15.4H58zM22.4 55.2c5 5.1 11.2 9.7 18 13.4A150.3 150.3 0 0 1 32 28.5c-4.7-3.1-10.4-4.7-14.7-3.6-3.4.7-5.3 2.8-6 6.6C10 38 14 46.8 22.3 55.2zm113.4 0c8.3-8.4 12.5-17.3 11.1-23.7-.8-3.8-2.7-5.9-6-6.6-4.4-1-10 .5-14.8 3.6-1 13.5-3.6 27.6-8.2 40.1a79 79 0 0 0 18-13.4z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/undo.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"nonzero\" class=\"undo\">\n    <path d=\"m23.7 47.4 17.3 10a49.3 49.3 0 1 1 5.3 56.7l-15.2 13a69.2 69.2 0 1 0-7.4-79.7z\" class=\"Oval-6\"/>\n    <path d=\"m38.6 8.6-20 .1v56h56v-20h-36z\" class=\"Path-4-Copy-2\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/user-teacher.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" class=\"user-teacher\">\n    <g class=\"Group\" transform=\"translate(35 6)\">\n      <circle cx=\"45.2\" cy=\"29.8\" r=\"29.8\" class=\"Oval-8\"/>\n      <path d=\"M89.8 84H.7v-9.5c0-9.8 8-18.8 17.7-18.8H72c9.8 0 17.8 9 17.8 18.8v9.4z\" class=\"Path\"/>\n    </g>\n    <path fill-rule=\"nonzero\" d=\"M10.8 98h138.4v16H10.8z\" class=\"Rectangle\"/>\n    <path fill-rule=\"nonzero\" d=\"M28.2 101h104.5v51.8H28.2z\" class=\"Rectangle-Copy\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/user.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" transform=\"translate(29.7 5.6)\">\n    <circle cx=\"50.3\" cy=\"34\" r=\"33.6\"/>\n    <rect width=\"100.5\" height=\"83.9\" x=\".1\" y=\"63.3\" rx=\"20\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/validated-rounded.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M150.853 63.998c4.831 3.334 5.665 10.34 1.497 14.684l-2.5 2.832c-2.833 3.164-3.334 7.833-1.166 11.499l2 3.334c2.838 5.163.67 11.668-4.832 14l-3.503 1.497c-3.835 1.667-6.336 5.665-6.004 9.832l.156 3.829c.502 5.834-4.33 10.835-10.333 10.503l-3.835-.17c-4.168-.332-8.172 2.169-9.67 6.167l-1.497 3.666c-2.331 5.502-8.83 7.833-14 5l-3.334-1.836c-3.828-2.168-8.334-1.498-11.499 1.335l-2.832 2.67c-4.337 4.004-11.167 3.333-14.67-1.498l-2.331-3.165c-2.331-3.333-6.837-4.831-10.835-3.665l-3.666 1.165c-5.665 1.667-11.5-1.999-12.502-7.833l-.664-3.835c-.664-4.168-3.998-7.339-8.165-8.003l-3.836-.664c-5.834-1.003-9.669-6.837-8.002-12.502l1.504-3.842c1.166-3.998-.332-8.504-3.835-10.835l-3.165-2.168c-5-3.334-5.834-10.17-1.836-14.67l2.5-2.832c2.833-3.165 3.334-7.834 1.166-11.5L9.165 63.66c-2.84-5.164-.67-11.669 4.831-14l3.504-1.497c3.835-1.667 6.335-5.665 6.003-9.833l-.332-3.835c-.501-5.834 4.33-10.835 10.334-10.503l3.835.17c4.167.332 8.172-2.169 9.67-6.167l1.497-3.665c2.33-5.503 8.83-7.834 14-5.001l3.333 1.836c3.829 2.168 8.335 1.498 11.5-1.335l2.832-2.67c4.336-4.004 11.167-3.333 14.67 1.498l2.344 3.334c2.33 3.334 6.837 4.831 10.835 3.666l3.666-1.166c5.664-1.667 11.499 2 12.501 7.833l.665 3.836c.664 4.167 3.998 7.338 8.165 8.002l3.835.664c5.834 1.003 9.67 6.837 8.003 12.502l-1.003 3.666c-1.166 3.998.332 8.504 3.835 10.835l3.165 2.168ZM102.89 41.865 65.625 87.14 50.066 70.914 34.91 85.448l31.913 33.282 52.282-63.52-16.214-13.345Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/wifi-online.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"nonzero\" class=\"wifi-online\">\n    <path d=\"m159.5 54-14.2 14a92.5 92.5 0 0 0-130.8 0L.4 54c44-44 115.1-44 159 0z\" class=\"Path\"/>\n    <path d=\"m131.6 83.2-14.1 14.2a53.1 53.1 0 0 0-75.1 0L28.2 83.2a73.1 73.1 0 0 1 103.4 0zM88.2 129l-8 8.2L66 123.6h.2l-8.7-8.7a31.7 31.7 0 0 1 44.8 0L88.2 129z\" class=\"Path\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/keyboard.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\">\n  <path d=\"M528 448H48a48 48 0 0 1-48-48V112a48 48 0 0 1 48-48h480a48 48 0 0 1 48 48v288a48 48 0 0 1-48 48zM128 180v-40a12 12 0 0 0-12-12H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm96 0v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm96 0v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm96 0v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm96 0v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm-336 96v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm96 0v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm96 0v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm96 0v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm-336 96v-40a12 12 0 0 0-12-12H76a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12zm288 0v-40a12 12 0 0 0-12-12H172a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h232a12 12 0 0 0 12-12zm96 0v-40a12 12 0 0 0-12-12h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/avatar-headphones.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <path fill=\"#FBB980\" d=\"m114.74 154.48-.81.26c-8.05 2.43-20.53 4.93-36.94 4.32a181.15 181.15 0 0 1-5.58-.32c-10.6-.78-18.68-2.5-24.55-4.27-8.76-2.63-12.6-5.41-12.6-5.41 1.91-2.62 9.68-7 17.28-10.86 4.4-2.24 8.74-4.3 11.86-5.74 2.59-1.2 2.85-1.22 3.07-1.3.3-.13.8-4.1 1.3-8.3 1-8.33 2.08-20.54 2.08-20.54h22.38l2.42 29.17c1.7.77 1.93.86 3.63 1.75l1 .54c4.04 2.18 7.98 4.6 11.5 6.93 2.1 1.39 4.05 2.74 5.77 3.97 4.77 3.4 7.86 5.91 7.86 5.91s-3.32 1.88-9.67 3.9z\"/>\n    <path fill=\"#EDEDED\" d=\"M78.17 159.3c-13.88-.5-32.46-3.07-44.98-10.48 3.4-3.99 13.6-8.5 17.9-10.61 4.56-2.2 12.34-5.78 15.96-7.24-.84 5.75 29.8 3.24 29.1.27 4.7 2.21 12.78 6.63 16.42 8.9 4.46 2.75 10.67 7.55 14.27 10.45-13.65 6.74-31.08 9.34-48.67 8.72z\"/>\n    <path fill=\"#000\" fill-opacity=\".2\" d=\"M93.23 114.6c-7.4 3.47-18.29 5.85-25.61 9.47 1-7.66 1.98-18.94 1.98-18.94h23.08\"/>\n    <path fill=\"#E9A36D\" d=\"M120.57 75.9c-1.3 6.34-3.22 12.24-5.99 16.97-8.24 14.08-24.96 24.01-32.26 23.72-7.3-.3-18.23-4.41-28.74-16.34-3.95-4.48-6.9-11.77-8.94-19.7-3.4-13.19-4.34-28.19-3.32-35.19 4.09-28.04 17.8-31.92 37.66-35.2 19.86-3.29 40.59 8.35 42.63 20.88 1.47 9.04 2.34 28.41-1.04 44.86\"/>\n    <path fill=\"#E9A36D\" d=\"M42.24 61.88c-2.14-.82-4.66.24-6.09 2.06-1.42 1.83-1.93 4.24-2 6.57-.1 3.63.85 7.47 3.4 9.98 2.57 2.52 6.95 3.23 9.71.95l-5.02-19.56m79.48 0c2.14-.82 4.66.24 6.09 2.06 1.43 1.83 1.93 4.24 2 6.57.11 3.63-.84 7.47-3.4 9.98-2.56 2.52-6.95 3.23-9.7.95l5.01-19.56\"/>\n    <path fill=\"#000\" fill-opacity=\".3\" d=\"M87.5 79.06c-2.03-1.08-6.72-.98-10.36-.36-.48.08-.97.17-1.35.44-.39.26-.26.75-.09 1.16a13.9 13.9 0 0 0 4.18 3c.6.3 1.22.58 1.9.59 1.01 0 1.9-.6 2.69-1.2 1.33-.97 3.83-2.42 3.03-3.63\"/>\n    <path fill=\"#E9A36D\" d=\"M51.93 70.38c.63-2.66 2.3-4.72 5.89-6.3 2.16-.96 5.1-.92 7.3-.05 1.48.59 3.05 2.2 3.94 4.51.29.72 1.08.62 1.17.17-.27-4.43-4.26-7-6.99-7.58-4.1-.88-8.8.87-11.33 4.84a6.88 6.88 0 0 0-1.13 3.39c0 1.25.99 1.7 1.15 1.03m58.02 0c-.63-2.67-2.3-4.73-5.89-6.3-2.16-.97-5.1-.93-7.3-.06-1.47.59-3.04 2.2-3.94 4.51-.28.72-1.07.62-1.17.17.27-4.43 4.26-7 7-7.58 4.1-.88 8.8.87 11.32 4.84a6.89 6.89 0 0 1 1.13 3.39c0 1.25-.98 1.7-1.14 1.03\"/>\n    <path fill=\"#C97E58\" d=\"M120.74 76.32c-1.32 6.34-3.3 12.24-6.12 16.97-8.42 14.08-25.5 24.01-32.96 23.72-7.45-.3-18.63-4.41-29.36-16.34-4.04-4.48-7.05-11.77-9.15-19.7.6-3.12 1.28-4.81 1.28-4.81s11.94 9.37 12.17 10.27c.22.9 1.02 15.04 4.03 14.82 3.82-.28 6.15-11.69 6.71-11.8.56-.11 26.69.19 26.8.75.11.56 2.81 11.88 5.61 11.37 2.81-.49 5.88-14.4 6.92-15.07.81-.53 10.02-7.23 14.07-10.18\"/>\n    <path fill=\"#9A6842\" d=\"M110 38.67s-30.73 4.62-58.74-3.75l-7.51 47.92s-4.45-5.52-5.33-17.1c-.53-6.97-1.38-13.93-1.47-20.93-.06-4.78-.38-13.3 2.61-17.33a8.78 8.78 0 0 1 7.21-3.49c.9-10.5 9.7-19.17 19.75-22.34 10.06-3.17 21.05-1.68 31.1 1.5 7.23 2.3 14.45 5.65 19.29 11.5 4.84 5.86 8.64 14.43 4.65 20.9 3.6 3.6 3.4 7.74 2.92 13.08a414.51 414.51 0 0 1-1.69 15.59c-1.17 9.2-3.5 12.97-3.5 12.97s-3.85-16.3-3.85-17.1c0-.78-6.28-15.95-5.44-21.42\"/>\n    <path fill=\"#FFF\" d=\"M63.2 63.55c2.52.56 4.58 2 5.46 4.56.53 1.55 0 6.94-2.3 9.04a6.89 6.89 0 0 1-3.58 1.79c-2.34.27-5.9.43-7.8-1.15a8.72 8.72 0 0 1-2.9-5.59c-.23-1.68-.42-3.47.38-4.97 1.37-2.58 4.52-3.53 7.35-4.24l3.39.56\"/>\n    <path fill=\"#607D8B\" d=\"M56.17 75.28a7.09 7.09 0 0 1-.41-8.17c.59-.91 1.42-1.74 2.48-2.25s2.36-.65 3.5-.28c1.81.6 2.75 2.37 3.14 4.04.63 2.67.14 5.76-2.2 7.55a4.83 4.83 0 0 1-3.57 1.02c-1.23-.2-2.23-1-2.94-1.9z\"/>\n    <path fill=\"#9E6A42\" d=\"M50.95 70.39c.63-2.67 2.3-4.73 5.89-6.3 2.16-.96 5.1-.93 7.3-.06 1.48.59 3.04 2.2 3.94 4.51.29.72 1.08.62 1.17.17-.27-4.43-4.26-7-7-7.58-4.1-.88-8.8.87-11.32 4.84a6.88 6.88 0 0 0-1.13 3.39c0 1.25.99 1.7 1.15 1.03\"/>\n    <path fill=\"#FFF\" d=\"M96.72 63.55c-2.52.56-4.58 2-5.46 4.56-.53 1.55 0 6.94 2.3 9.04.95.87 2.3 1.64 3.58 1.79 2.34.27 5.9.43 7.8-1.15a8.72 8.72 0 0 0 2.9-5.59c.23-1.68.43-3.47-.38-4.97-1.37-2.58-4.51-3.53-7.34-4.24l-3.4.56\"/>\n    <path fill=\"#607D8B\" d=\"M103.75 75.28a7.09 7.09 0 0 0 .42-8.17 6.16 6.16 0 0 0-2.48-2.25 4.8 4.8 0 0 0-3.5-.28c-1.82.6-2.76 2.37-3.15 4.04-.62 2.67-.14 5.76 2.2 7.55.98.74 2.3 1.22 3.57 1.02 1.23-.2 2.23-1 2.94-1.9z\"/>\n    <path fill=\"#9E6A42\" d=\"M108.97 70.39c-.63-2.67-2.3-4.73-5.89-6.3-2.16-.96-5.1-.93-7.3-.06-1.47.59-3.04 2.2-3.94 4.51-.28.72-1.07.62-1.17.17.27-4.43 4.26-7 7-7.58 4.1-.88 8.8.87 11.32 4.84a6.89 6.89 0 0 1 1.13 3.39c0 1.25-.99 1.7-1.15 1.03\"/>\n    <path fill=\"#9A6842\" d=\"M65.67 48.51a46.85 46.85 0 0 0-19.34 2.93 52.69 52.69 0 0 1 3.34 8.83 61.25 61.25 0 0 1 18.7-2.84l.14-8.49-1.89 1.4-.95-1.83m29.28 0c6.55-.4 13.19.6 19.33 2.93a52.69 52.69 0 0 0-3.33 8.83 61.25 61.25 0 0 0-18.7-2.84l-.15-8.49 1.9 1.4.95-1.83z\"/>\n    <path fill=\"#4C0C09\" d=\"M85.24 108.91a23.9 23.9 0 0 1-8.21 0c1.1.96 2.6 1.54 4.04 1.36 1.45-.18 2.7-.26 4.17-1.36m6.36-12.47c0 .08 1.25 0 1.39-.02.36-.05.8-.17.97-.52.08-.15.1-.33.15-.5.05-.15.17-.32.33-.35.16-.02.33.08.4.22.1.14.12.31.14.47l.1.7c.02.2.04.4-.03.58-.08.18-.3.32-.47.24-.21-.1-.26-.45-.49-.5-.13-.02-.26.07-.36.16a4.99 4.99 0 0 0-1.31 1.7c-.14.33-.34.65-.52.97a33.42 33.42 0 0 0-.3.53c-.06.13-.24.36-.25.5l.25-4.18m-20.85-.04c0 .08-2.03.04-2.17.02-.36-.05-.8-.17-.97-.52-.08-.15-.1-.33-.15-.5-.05-.16-.17-.32-.34-.35-.16-.02-.32.08-.4.23-.08.14-.1.3-.13.46l-.1.7c-.02.2-.05.4.03.58.07.18.29.32.47.24.21-.1.25-.45.49-.5.13-.02.26.07.36.16a5.02 5.02 0 0 1 1.31 1.7c.14.33.34.65.52.97l.29.53c.07.13.25.36.26.5-.09-1.4.6-2.83.53-4.22\"/>\n    <path fill=\"#4C0C09\" d=\"M69.24 98.64c.3.76 1.51 3.72 1.7 4a9.77 9.77 0 0 0 2.01 2.25c1.85 1.52 4.55 2.62 8.5 2.62 1.87 0 3.44-.33 4.75-.88a7.98 7.98 0 0 0 4.23-3.68c1.01-1.93 1.35-2.6 1.99-4.34.26-.7.4-1.77-.18-2.14a10.4 10.4 0 0 0-1.53-.1H71.05c-1.19 0-2.23 1.16-1.8 2.27\"/>\n    <path fill=\"#FFF\" d=\"M89.12 99.44c1.31-.52 1.6-1.49 1.6-3.06h-19.8c0 1.44.57 2.44 1.67 2.96 2.95.91 12.43 1.7 16.53.1\"/>\n    <path fill=\"#B2543F\" d=\"M72.95 104.9c1.85 1.5 4.55 2.61 8.5 2.61 1.87 0 3.44-.33 4.75-.88-.24-1.3-2.27-3.56-7.1-3.95-5.12-.41-6.09 2.05-6.15 2.21\"/>\n    <path stroke=\"#91928E\" stroke-linecap=\"round\" stroke-width=\"8\" d=\"M85.77 117.9c24.43 0 44.24-18.36 44.24-41v-2.4\"/>\n    <path fill=\"#40403E\" d=\"M91.2 122.26H80.34a1.2 1.2 0 0 1-1.2-1.2v-6.33c0-.66.54-1.2 1.2-1.2H91.2c.66 0 1.2.54 1.2 1.2v6.33c0 .66-.54 1.2-1.2 1.2\"/>\n    <path stroke=\"#91928E\" stroke-linecap=\"round\" stroke-width=\"8\" d=\"M130.41 61.76v-8.53c0-23.74-22.45-42.98-50.14-42.98S30.12 29.5 30.12 53.23V63.5\"/>\n    <path stroke=\"#40403E\" stroke-linecap=\"round\" stroke-width=\"17\" d=\"M39.22 28.53c9.07-11.05 24.07-18.28 41.05-18.28 16.97 0 31.97 7.23 41.04 18.29\"/>\n    <path fill=\"#91928E\" d=\"M127.16 81.86c-4.04 0-7.32-1.92-7.32-4.27V58.58c0-2.36 3.28-4.27 7.32-4.27s7.32 1.9 7.32 4.27v19c0 2.36-3.27 4.28-7.32 4.28\"/>\n    <path fill=\"#40403E\" d=\"M133.17 84.42h-9.68a1.26 1.26 0 0 1-1.26-1.26V53c0-.7.57-1.26 1.26-1.26h9.68a1.26 1.26 0 0 1 1.26 1.26v30.16c0 .7-.57 1.26-1.26 1.26\"/>\n    <path fill=\"#CD2846\" d=\"M125.02 84.42h1.05V51.74h-1.05z\"/>\n    <path fill=\"#91928E\" d=\"M33.35 81.86c4.04 0 7.32-1.92 7.32-4.27V58.58c0-2.36-3.28-4.27-7.32-4.27s-7.32 1.9-7.32 4.26v19.01c0 2.36 3.28 4.27 7.32 4.27\"/>\n    <path fill=\"#40403E\" d=\"M37.02 84.42h-9.67a1.26 1.26 0 0 1-1.26-1.26V53c0-.7.56-1.26 1.26-1.26h9.67A1.26 1.26 0 0 1 38.28 53v30.16c0 .7-.56 1.26-1.26 1.26\"/>\n    <path fill=\"#CD2846\" d=\"M34.45 84.42h1.05V51.74h-1.05z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/arrow-up-down.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1\" viewBox=\"0 0 459 459\">\n  <path d=\"M153 0 51 102h77v179h51V102h76L153 0zm179 357V179h-51v178h-77l102 102 102-102h-76z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/badge-round.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"m150.85 64-3.16-2.17A9.81 9.81 0 0 1 143.85 51l1-3.67c1.67-5.67-2.16-11.5-8-12.5l-3.83-.67a9.72 9.72 0 0 1-8.17-8l-.66-3.83a9.87 9.87 0 0 0-12.5-7.84l-3.67 1.17a10 10 0 0 1-10.83-3.67l-2.35-3.33a9.83 9.83 0 0 0-14.67-1.5l-2.83 2.67a9.8 9.8 0 0 1-11.5 1.34l-3.33-1.84a10.02 10.02 0 0 0-14 5L47 18c-1.5 4-5.5 6.5-9.67 6.16L33.5 24a9.75 9.75 0 0 0-10.33 10.5l.33 3.84a10.01 10.01 0 0 1-6 9.83l-3.5 1.5a9.95 9.95 0 0 0-4.84 14l2 3.33A9.8 9.8 0 0 1 10 78.5l-2.5 2.83A9.73 9.73 0 0 0 9.33 96l3.17 2.16c3.5 2.33 5 6.84 3.83 10.84l-1.5 3.84c-1.67 5.66 2.17 11.5 8 12.5l3.84.67a9.72 9.72 0 0 1 8.16 8l.67 3.83c1 5.84 6.83 9.5 12.5 7.84l3.66-1.17a10 10 0 0 1 10.84 3.67l2.33 3.16a9.83 9.83 0 0 0 14.67 1.5l2.83-2.67a9.8 9.8 0 0 1 11.5-1.34l3.34 1.84c5.17 2.83 11.66.5 14-5l1.5-3.67c1.5-4 5.5-6.5 9.66-6.16l3.84.17a9.75 9.75 0 0 0 10.33-10.5l-.15-3.83a10.01 10.01 0 0 1 6-9.84l3.5-1.5a9.95 9.95 0 0 0 4.83-14l-2-3.33a9.8 9.8 0 0 1 1.17-11.5l2.5-2.83a9.72 9.72 0 0 0-1.5-14.68Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/trapeze-1.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M45.1 26H160l-45.1 108.2H0z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/plus.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M15 65h130v30H15z\"/>\n    <path d=\"M95 15v130H65V15z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/emoticon/smile.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n  <g fill-rule=\"evenodd\">\n    <path d=\"M34.6 39.4a12.7 12.7 0 0 1-2.4-.2 12 12 0 0 1-4.5-1.9 18.5 18.5 0 0 1-2-1.5 12 12 0 0 1-2.6-4 12.5 12.5 0 0 1-.7-2.4l-.2-1.2a12.7 12.7 0 0 1 0-2.5c0-.4 0-.8.2-1.2.1-.8.4-1.6.7-2.3A12.8 12.8 0 0 1 25 19a12 12 0 0 1 4.9-3.6c.7-.3 1.5-.6 2.3-.7a12.6 12.6 0 0 1 3.7-.2 12.6 12.6 0 0 1 3.5.9 12.7 12.7 0 0 1 3.2 1.9A14 14 0 0 1 45 20c.5.7.9 1.4 1.2 2.2a12.2 12.2 0 0 1 1 4.7 12.7 12.7 0 0 1-.3 2.5 12 12 0 0 1-.7 2.3 12.5 12.5 0 0 1-2 3.2 10 10 0 0 1-1.6 1.7l-1 .7a13 13 0 0 1-4.5 1.9 12.7 12.7 0 0 1-2.5.2m60.7 0A12.6 12.6 0 0 1 85 34a12.6 12.6 0 0 1-1.8-4.5l-.2-1.2a12.7 12.7 0 0 1 0-2.5c0-.4 0-.8.2-1.2a12.6 12.6 0 0 1 1.8-4.5 10 10 0 0 1 1.6-1.9 12.6 12.6 0 0 1 17.7 0 12 12 0 0 1 1.5 1.9c.5.7.8 1.4 1.2 2.2a12.2 12.2 0 0 1 .9 3.5 12.7 12.7 0 0 1 0 2.5 12.2 12.2 0 0 1-1 3.5A12.5 12.5 0 0 1 105 35a11.8 11.8 0 0 1-5 3.6l-2.2.7a12.6 12.6 0 0 1-2.5.2M65 119.6A60.2 60.2 0 0 1 10.9 88 8.5 8.5 0 0 1 26 80.4 43.1 43.1 0 0 0 65 102.6c16.8 0 32.1-8.7 38.9-22.2a8.5 8.5 0 0 1 15.2 7.7A60.2 60.2 0 0 1 65 119.6\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/paint.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m146.1 9.2 1.6 9.9c-38.2 6-70.2 19.6-70.2 30 0 2.4 4.3 5.5 14.8 10l10.5 4.4a93.2 93.2 0 0 1 19.5 10.2c6.7 5 10.8 10.6 11.7 17.5 2 14.4-15 27.1-44.8 39a351 351 0 0 1-75 20.1l-1.4-9.9c21-2.8 50.2-10.5 72.7-19.5 25.4-10 39.7-20.8 38.6-28.3-1-7.4-8.5-12.9-25.2-19.9l-10.5-4.4a68 68 0 0 1-13.7-7.1c-4.6-3.4-7.2-7.3-7.2-12.1 0-10.3 10-18.8 27.4-26 14-6 32.7-11 51.2-13.9z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/music.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"music\">\n    <path fill=\"#9B9B9B\" d=\"M32.3 152.3a31.5 31.5 0 0 1-14.2-5.6 23 23 0 0 1-9-14.1 21.7 21.7 0 0 1 5.8-18.5 29 29 0 0 1 16.7-8.3 34.4 34.4 0 0 1 15 1.3c1 .4 1.5.4 2-.3l.5-.5V64.8c0-40.3 0-41.5.3-41.8l.8-.4 94.3-15h.4l-.1 54.9c-.1 53.2-.1 55-.4 56.4a23.8 23.8 0 0 1-13.7 15.7 31.9 31.9 0 0 1-29-1.4c-4.7-2.8-8.3-7-10.2-11.4-4.2-10 0-21.2 10.4-27.3a31.6 31.6 0 0 1 26-2.4c2.6.9 3 1 3.6.2l.5-.5V65.6c0-20.8 0-26.1-.2-26L97.5 45l-34 5.5-.1 41c-.1 39.2-.2 42-.6 43.3a25.3 25.3 0 0 1-3.2 6.6 27.7 27.7 0 0 1-14.9 10c-3.6 1-8.8 1.3-12.4.9z\" class=\"Fill-1\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/news.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"nonzero\">\n    <path d=\"m129.14 142.69-111.35.13 19.42-.03a19.48 19.48 0 0 1-19.29-19.42L17.8 16.8h91.94v106.6a19.4 19.4 0 0 0 19.41 19.28zM30.8 51.86h65.93v-13.7H30.8v13.7zm0 33.01h65.93v-13.7H30.8v13.7zm0 33.02h65.93v-13.7H30.8v13.7z\"/>\n    <path d=\"M141.58 74.06v49.76a12.16 12.16 0 0 1-24.32 0V74.06h24.32z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/phone.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M41 26.4a14 14 0 0 1 14-14h50a14 14 0 0 1 14 14v107.2a14 14 0 0 1-14 14H55a14 14 0 0 1-14-14V26.4zM79 131.1a5.9 5.9 0 0 0-5.8 5.8 5.8 5.8 0 1 0 5.8-5.8zM50.8 29.8v90a7 7 0 0 0 7 7h44.4a7 7 0 0 0 7-7v-90a7 7 0 0 0-7-7H57.8a7 7 0 0 0-7 7z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/place.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M80.25.19a57.23 57.23 0 0 0-57.23 57.23c0 31.6 57.23 102.77 57.23 102.77s57.23-71.17 57.23-102.77A57.23 57.23 0 0 0 80.25.19z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/play.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#D8D8D8\" fill-rule=\"evenodd\" d=\"M137.71 80 22.29 146.36V13.64z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/emoticon/laugh.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n  <path fill-rule=\"evenodd\" d=\"M34.6 39.4a12.7 12.7 0 0 1-2.4-.2 12 12 0 0 1-4.5-1.9 18.5 18.5 0 0 1-2-1.5 12 12 0 0 1-2.6-4 12.5 12.5 0 0 1-.7-2.4l-.2-1.2a12.7 12.7 0 0 1 0-2.5c0-.4 0-.8.2-1.2.1-.8.4-1.6.7-2.3A12.8 12.8 0 0 1 25 19a12 12 0 0 1 4.9-3.6c.7-.3 1.5-.6 2.3-.7a12.6 12.6 0 0 1 3.7-.2 12.6 12.6 0 0 1 3.5.9 12.7 12.7 0 0 1 3.2 1.9A14 14 0 0 1 45 20c.5.7.9 1.4 1.2 2.2a12.2 12.2 0 0 1 1 4.7 12.7 12.7 0 0 1-.3 2.5 12 12 0 0 1-.7 2.3 12.5 12.5 0 0 1-2 3.2 10 10 0 0 1-1.6 1.7l-1 .7a13 13 0 0 1-4.5 1.9 12.7 12.7 0 0 1-2.5.2m60.7 0A12.6 12.6 0 0 1 85 34a12.6 12.6 0 0 1-1.8-4.5l-.2-1.2a12.7 12.7 0 0 1 0-2.5c0-.4 0-.8.2-1.2a12.6 12.6 0 0 1 1.8-4.5 10 10 0 0 1 1.6-1.9 12.6 12.6 0 0 1 17.7 0 12 12 0 0 1 1.5 1.9c.5.7.8 1.4 1.2 2.2a12.2 12.2 0 0 1 .9 3.5 12.7 12.7 0 0 1 0 2.5 12.2 12.2 0 0 1-1 3.5A12.5 12.5 0 0 1 105 35a11.8 11.8 0 0 1-5 3.6l-2.2.7a12.6 12.6 0 0 1-2.5.2M10 83.5a8.5 8.5 0 0 0 .9 4.6c9.6 19 30.8 31.5 54 31.5s44.5-12.4 54.2-31.5c.6-1.4 1-2.8.9-4.2a9 9 0 0 0-9-9.9H19a9 9 0 0 0-9 9.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/dot.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M80 97.5a17.5 17.5 0 1 0 0-35 17.5 17.5 0 0 0 0 35zm0 10a27.5 27.5 0 1 1 0-55 27.5 27.5 0 0 1 0 55z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/feedback-correct.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <circle cx=\"80\" cy=\"80\" r=\"80\" fill=\"#4CAF50\"/>\n    <path fill=\"#FFF\" fill-rule=\"nonzero\" d=\"M66.07 95.34 47.33 71.16 33.1 82.19l32.35 41.73 61.51-72.6-13.74-11.64z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/plus.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M74.79 10.27v139.19h10V10.27z\"/>\n  <path d=\"M10.19 84.86h139.19v-10H10.19z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/emoticon/cry.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n  <path fill-rule=\"evenodd\" d=\"M34.5 39a12.7 12.7 0 0 1-2.4-.2 12 12 0 0 1-4.5-1.9 18.5 18.5 0 0 1-2-1.6 12.2 12.2 0 0 1-2.6-4 12.5 12.5 0 0 1-.7-2.4l-.2-1.2a12.7 12.7 0 0 1 0-2.4c0-.4 0-.8.2-1.2.1-.8.3-1.6.7-2.4a12.8 12.8 0 0 1 1.8-3.1 12.3 12.3 0 0 1 7.3-4.4 12.6 12.6 0 0 1 3.6-.1 12.5 12.5 0 0 1 3.6.9 12.7 12.7 0 0 1 3.1 1.8 14.3 14.3 0 0 1 2.5 2.8l1.1 2.1a12.2 12.2 0 0 1 1 4.8 12.7 12.7 0 0 1-.2 2.4 12 12 0 0 1-.8 2.4 12.5 12.5 0 0 1-1.8 3.1 10 10 0 0 1-1.8 1.8l-1 .7a13 13 0 0 1-4.5 1.9 12.7 12.7 0 0 1-2.4.2m61 0a12.6 12.6 0 0 1-10.4-5.6 12.6 12.6 0 0 1-1.8-4.5l-.2-1.2a12.7 12.7 0 0 1 0-2.4c0-.4 0-.8.2-1.2a12.6 12.6 0 0 1 1.8-4.5 10 10 0 0 1 1.6-2 12.6 12.6 0 0 1 17.6 0 12.2 12.2 0 0 1 2.7 4.1 12.2 12.2 0 0 1 1 3.6 12.7 12.7 0 0 1 0 2.4 12.2 12.2 0 0 1-1 3.6 12.5 12.5 0 0 1-1.8 3.1 12 12 0 0 1-5 3.6c-.7.4-1.5.6-2.3.8a12.6 12.6 0 0 1-2.4.2m23.5 68.5a8.5 8.5 0 0 0-1-4C108.5 84.4 87.3 72 64 72s-44.5 12.4-54 31.5a8.5 8.5 0 0 0-1 4.4 9 9 0 0 0 9 9.4h92a9 9 0 0 0 9-9.8z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/emoticon/neutral.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\">\n  <g fill-rule=\"evenodd\">\n    <path d=\"M34.5 39a12.7 12.7 0 0 1-2.4-.2 12 12 0 0 1-4.5-1.9 18.5 18.5 0 0 1-2-1.6 12.2 12.2 0 0 1-2.6-4 12.5 12.5 0 0 1-.7-2.4l-.2-1.2a12.7 12.7 0 0 1 0-2.4c0-.4 0-.8.2-1.2.1-.8.3-1.6.7-2.4a12.8 12.8 0 0 1 1.8-3.1 12.3 12.3 0 0 1 7.3-4.4 12.6 12.6 0 0 1 3.6-.1 12.5 12.5 0 0 1 3.6.9 12.7 12.7 0 0 1 3.1 1.8 14.3 14.3 0 0 1 2.5 2.8l1.1 2.1a12.2 12.2 0 0 1 1 4.8 12.7 12.7 0 0 1-.2 2.4 12 12 0 0 1-.8 2.4 12.5 12.5 0 0 1-1.8 3.1 10 10 0 0 1-1.8 1.8l-1 .7a13 13 0 0 1-4.5 1.9 12.7 12.7 0 0 1-2.4.2m61 0a12.6 12.6 0 0 1-10.4-5.6 12.6 12.6 0 0 1-1.8-4.5l-.2-1.2a12.7 12.7 0 0 1 0-2.4c0-.4 0-.8.2-1.2a12.6 12.6 0 0 1 1.8-4.5 10 10 0 0 1 1.6-2 12.6 12.6 0 0 1 17.6 0 12.2 12.2 0 0 1 2.7 4.1 12.2 12.2 0 0 1 1 3.6 12.7 12.7 0 0 1 0 2.4 12.2 12.2 0 0 1-1 3.6 12.5 12.5 0 0 1-1.8 3.1 12 12 0 0 1-5 3.6c-.7.4-1.5.6-2.3.8a12.6 12.6 0 0 1-2.4.2\"/>\n    <path fill-rule=\"nonzero\" d=\"M18 109h92a9 9 0 1 0 0-18H18a9 9 0 0 0 0 18z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/coin.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M80 140.6a60.6 60.6 0 1 0 0-121.2 60.6 60.6 0 0 0 0 121.2zm0 10A70.6 70.6 0 1 1 80 9.4a70.6 70.6 0 0 1 0 141.2z\"/>\n  <path d=\"M75.4 47.5v65.3a5 5 0 1 0 10 0V47.5a5 5 0 1 0-10 0z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/check-off.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M35 125h90V35H35v90zM25 25h110v110H25V25z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/check-on.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M117.2 35V25H25v110h110V80h-10v45H35V35z\"/>\n  <path d=\"M51.9 65 44 71.1l33.9 43.7 76.8-90.7-7.6-6.5-68.9 81.3z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/checkmark.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m15.4 82.5-7.9 6.1 43.8 56.6L152.4 25.9l-7.6-6.4-93.1 109.9z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/gallery.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M20 30h120V20H20zM20 140h120v-10H20zM20 85h120V75H20z\"/>\n    <path d=\"M130 20v120h10V20zM20 20v120h10V20zM75 20v120h10V20z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/clock.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M18.5 80a61.5 61.5 0 1 0 123 0 61.5 61.5 0 0 0-123 0zm-10 0a71.5 71.5 0 1 1 143 0 71.5 71.5 0 0 1-143 0z\"/>\n  <path d=\"m99.4 52.7-8.9-4.5L74 80.7l38 44 7.5-6.5L86 79.3zM75 22v17h10V22zM75 121v17h10v-17zM137.5 75h-17v10h17zM40.5 75h-17v10h17z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/close-mini.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m98 55.5 7.2 7.2-42.5 42.5-7.2-7.2z\"/>\n  <path d=\"m55 62.6 7.2-7.2 42.4 42.4-7.2 7.2z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/close-small.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m32.8 39.7 88.3 88.3 7.1-7.1-88.3-88.3z\"/>\n  <path d=\"m39.9 128 88.3-88.3-7.1-7.1-88.3 88.3z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/close.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M12.9 19.7 140 146.8l7.1-7.1L20 12.7z\"/>\n  <path d=\"M20 146.8 147.1 19.7l-7.1-7-127.1 127z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/games.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill-rule=\"evenodd\">\n    <path fill-rule=\"nonzero\" d=\"M39.324 26.7a87.7 87.7 0 0 0 1.963 0H123.1c5.329-.134 11.168 1.045 16.773 4.525 10.588 6.584 16.741 19.77 16.327 38.942l.356 43.044c.06 6.877-2.01 12.817-5.966 17.098-3.62 3.917-8.558 6.227-13.934 6.872a28.174 28.174 0 0 1-13.846-1.862c-4.787-1.947-8.54-4.994-10.684-9.209-1.179-2.335-2.55-5.765-4.115-10.164a276.126 276.126 0 0 1-1.573-4.556 458.818 458.818 0 0 1-4.228-13.3H57.37l-.512 1.682a451.826 451.826 0 0 1-3.71 11.617 270.764 270.764 0 0 1-1.608 4.654c-1.551 4.355-2.915 7.755-4.092 10.075-2.13 4.203-5.887 7.252-10.68 9.2a28.174 28.174 0 0 1-13.847 1.863c-5.375-.645-10.313-2.955-13.93-6.868-3.961-4.278-6.03-10.217-5.97-17.1l.357-43.046C2.96 50.98 9.083 37.797 19.654 31.224c3.612-2.244 7.486-3.579 11.41-4.195 2.464-.388 4.631-.45 6.322-.332.525-.005 1.01-.004 1.938.003zm-.068 10a87.627 87.627 0 0 0-1.96 0l-.482-.018c-.32-.026-.793-.042-1.38-.03a21.13 21.13 0 0 0-2.817.255c-2.673.42-5.287 1.321-7.685 2.81-7.36 4.577-11.915 14.403-11.556 30.302L13.02 113.3c-.039 4.445 1.167 7.908 3.311 10.223 1.918 2.075 4.655 3.355 7.78 3.73A18.177 18.177 0 0 0 33 126.056c2.725-1.108 4.602-2.632 5.53-4.46.938-1.851 2.17-4.924 3.59-8.91a248.19 248.19 0 0 0 1.548-4.481 442.126 442.126 0 0 0 3.627-11.356 498.233 498.233 0 0 0 1.545-5.155l1.047-3.604h59.801l1.05 3.6a154.714 154.714 0 0 0 .416 1.408c.336 1.13.716 2.39 1.132 3.748a448.147 448.147 0 0 0 3.632 11.358 266.24 266.24 0 0 0 1.516 4.391c1.434 4.032 2.677 7.14 3.612 8.994.935 1.836 2.811 3.36 5.532 4.467a18.177 18.177 0 0 0 8.888 1.196c3.126-.375 5.863-1.655 7.78-3.73 2.141-2.317 3.35-5.784 3.311-10.226l-.357-43.123c.36-16.032-4.22-25.863-11.604-30.454-3.731-2.317-7.736-3.118-11.294-3.021L41.39 36.7a96.6 96.6 0 0 1-2.134 0z\"/>\n    <path d=\"M119.139 42.76c3.504 0 6.371 2.868 6.371 6.372s-2.886 6.423-6.371 6.423c-3.485 0-6.423-2.938-6.423-6.423s2.919-6.371 6.423-6.371zm-13.61 13.712c3.504 0 6.371 2.937 6.371 6.422 0 3.486-2.886 6.372-6.371 6.372-3.485 0-6.371-2.886-6.371-6.372 0-3.485 2.867-6.422 6.371-6.422zm27.22 0c3.504 0 6.371 2.918 6.371 6.422 0 3.505-2.886 6.372-6.371 6.372-3.485 0-6.423-2.867-6.423-6.372 0-3.504 2.918-6.422 6.423-6.422zM119.14 69.776c3.484 0 6.37 2.918 6.37 6.422 0 3.504-2.867 6.371-6.37 6.371-3.505 0-6.423-2.886-6.423-6.371 0-3.485 2.937-6.422 6.422-6.422zM45.147 47.71H34.722v9.896h-9.875v10.425h9.875v9.896h10.425v-9.896h9.921V57.606h-9.921z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/grid-size.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M20 30h120V20H20zM20 140h120v-10H20zM20 85h120V75H20z\"/>\n    <path d=\"M130 20v120h10V20zM20 20v120h10V20zM75 20v120h10V20z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/grid.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M15 50h130V40H15zM15 120h130v-10H15z\"/>\n    <path d=\"M110 15v130h10V15zM40 15v130h10V15z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/hide.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M13.4 82.2a93 93 0 0 0 12.9 15.4 75.3 75.3 0 0 0 53.7 22c21.8 0 39.5-8.2 53.9-22a91.3 91.3 0 0 0 13.7-17 123.7 123.7 0 0 0-16.8-18c-15.8-14-33-22.2-50.8-22.2-17.7 0-34.8 8.2-50.7 22.3a136.9 136.9 0 0 0-17 18l1 1.5zM80 30.4c47.2 0 79.5 49.6 79.5 49.6s-23.4 49.6-79.5 49.6C24.3 129.6.5 80 .5 80S33.2 30.4 80 30.4z\"/>\n  <path d=\"M94.7 94.8a20.8 20.8 0 1 0-29.4-29.4 20.8 20.8 0 0 0 29.4 29.4zm7 7a30.8 30.8 0 1 1-43.5-43.5 30.8 30.8 0 0 1 43.6 43.6z\"/>\n  <path d=\"M20 146.8 147.1 19.7l-7.1-7-127.1 127z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/history-back.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M21.8 49.5a64.3 64.3 0 1 1 23.5 87.9 64.2 64.2 0 0 1-16.6-13.8l7.6-6.5a54.2 54.2 0 0 0 14 11.6 54.3 54.3 0 1 0-19.9-74.1l-8.6-5z\"/>\n    <path d=\"M59 48.8v10H17.2V17h10v31.8z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/menu-dots.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"evenodd\">\n    <path d=\"M30 70v20H10V70zM90 70v20H70V70zM150 70v20h-20V70z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/icon-spinner-big.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 240\">\n  <path d=\"M25.6 178.3A110.8 110.8 0 0 1 199.4 43.7l7-7A120.8 120.8 0 0 0 17 183.3l8.6-5z\"/>\n  <path d=\"M163.1 39.4v10h46.6V2.7h-10v36.7zM213.7 62.3A110.8 110.8 0 0 1 40 196.9l-7 7.1A120.8 120.8 0 0 0 222.3 57.2l-8.7 5z\"/>\n  <path d=\"M75.6 200.5v-10H29v46.6h10v-36.6z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/link.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1\" viewBox=\"0 0 457 457\">\n  <path d=\"m422 207-86 86a121 121 0 0 1-190-25l40-39 6-5a60.4 60.4 0 0 0 101 26l86-86a61 61 0 0 0-86-86l-31 31c-24-10-51-12-77-8l65-65a121 121 0 0 1 172 171zM195 348l-31 31a61 61 0 0 1-86-86l86-86a60.4 60.4 0 0 1 101 26l6-4 40-40c-5-9-11-17-18-25-48-47-124-47-172 0l-85 86a121 121 0 0 0 171 172l65-65c-26 3-53 1-77-9z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/print.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M140 55H20v50h21.42v10H10V45h140v70h-28.17v-10H140z\"/>\n  <path d=\"M35 45h90V20H35v25zM25 10h110v45H25V10zm20 130h70V90H45v50zM35 80h90v70H35V80z\"/>\n  <path d=\"M55 110h50v-10H55zM55 130h50v-10H55z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/rotate.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"m33.405 108.838-8.608 5.088C9.844 88.631 13.74 56.103 34.809 35.034c25.347-25.346 66.441-25.346 91.788 0l-7.071 7.072c-21.442-21.442-56.205-21.442-77.646 0-17.822 17.822-21.118 45.343-8.475 66.732z\"/>\n    <path d=\"M116.989 13.693h10v31.063H95.926v-10h21.063zM125.106 47.759l8.609-5.089c14.952 25.295 11.056 57.823-10.013 78.892-25.346 25.346-66.44 25.346-91.787 0l7.071-7.071c21.441 21.441 56.204 21.441 77.645 0 17.823-17.822 21.119-45.343 8.475-66.732z\"/>\n    <path d=\"M41.648 142.941h-10v-31.036h31.036v10H41.648z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/show.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M13.329 82.205A93.07 93.07 0 0 0 26.226 97.61c14.401 13.832 32.137 22.033 53.705 22.033 21.772 0 39.54-8.198 53.863-22.017a91.265 91.265 0 0 0 13.791-16.953c-.533-.69-1.098-1.404-1.694-2.14-4.378-5.414-9.45-10.836-15.126-15.876-15.798-14.032-32.974-22.298-50.834-22.298-17.65 0-34.796 8.27-50.672 22.312-5.707 5.047-10.824 10.477-15.252 15.899-.59.722-1.15 1.423-1.68 2.1.318.5.652 1.012 1.002 1.536zM79.93 30.358c47.244 0 79.517 49.642 79.517 49.642s-23.39 49.642-79.517 49.642C24.268 129.642.414 80 .414 80s32.747-49.642 79.517-49.642z\"/>\n  <path d=\"M94.7 94.81c8.12-8.119 8.12-21.282 0-29.4-8.118-8.12-21.282-8.12-29.4 0-8.12 8.118-8.12 21.281 0 29.4 8.118 8.119 21.282 8.119 29.4 0zm7.071 7.071c-12.024 12.024-31.518 12.024-43.542 0-12.024-12.024-12.024-31.519 0-43.543 12.024-12.024 31.518-12.024 43.542 0 12.024 12.024 12.024 31.52 0 43.543z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/shuffle.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\" class=\"icon-shuffle\">\n    <path d=\"m80 92.7 7-7.1 24 23.4h34v10h-38L80 92.7zM38 49H10V39h32l26.1 26.2-7 7.2L37.9 49z\" class=\"Shape\"/>\n    <path d=\"M137.9 114 123 99.1l7.1-7.1 22 22-22 22-7.1-7.1z\" class=\"Path-4-Copy-2\"/>\n    <path d=\"M145 49V39h-38.1l-69 70H10v10h32.1l69-70z\" class=\"Path-4-Copy\"/>\n    <path d=\"m123 58.9 7.1 7.1 22-22-22-22-7.1 7.1L137.9 44z\" class=\"Path-4-Copy-2\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/speaker-big.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 320\">\n  <path d=\"M208 131.73a36.27 36.27 0 0 1 13.9 28.6c0 11.3-5.18 21.74-13.9 28.6l6.17 7.86c11.11-8.73 17.74-22.06 17.74-36.46s-6.63-27.74-17.74-36.47l-6.18 7.87z\" class=\"line1\"/>\n  <path d=\"M232.18 94.88a83.02 83.02 0 0 1 31.83 65.45 83.01 83.01 0 0 1-31.83 65.44l6.18 7.87A93.02 93.02 0 0 0 274 160.33a93.01 93.01 0 0 0-35.65-73.31l-6.18 7.86z\" class=\"line2\"/>\n  <path d=\"M256.58 57.07a130.99 130.99 0 0 1 50.22 103.26c0 40.8-18.74 78.52-50.22 103.26l6.18 7.86a140.98 140.98 0 0 0 54.04-111.12c0-43.92-20.17-84.51-54.04-111.13l-6.18 7.87z\" class=\"line3\"/>\n  <path d=\"M99.8 109.75H12.6v102.94H99.7l76.4 44.3V63.97l-76.32 45.79zm-2.78 112.94H2.6V99.75h94.43l89.09-53.45v228.06l-89.09-51.67z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/spinner-big.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 240\">\n  <path d=\"M25.63 178.33C.116 135.167 6.766 79.64 42.728 43.678 85.99.415 156.135.415 199.398 43.678l7.071-7.071c-47.168-47.169-123.644-47.169-170.812 0-39.208 39.208-46.458 99.743-18.635 146.812l8.608-5.089z\"/>\n  <path d=\"M163.109 39.369v10h46.619V2.749h-10v36.62zM213.744 62.276c25.515 43.163 18.865 98.69-17.097 134.652-43.263 43.263-113.407 43.263-156.67 0L32.906 204c47.168 47.169 123.644 47.169 170.812 0 39.208-39.208 46.458-99.743 18.635-146.812l-8.609 5.089z\"/>\n  <path d=\"M75.599 200.483v-10H28.98v46.619h10v-36.619z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/spinner.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M20.556 117.436C4.44 90.175 8.642 55.1 31.356 32.386c27.326-27.326 71.63-27.326 98.957 0l7.07-7.07c-31.23-31.232-81.867-31.232-113.098 0-25.961 25.96-30.761 66.041-12.338 97.208l8.609-5.088z\"/>\n  <path d=\"M108.06 26.588v10h31.95V4.638h-10v21.95zM139.332 42.785c16.114 27.261 11.913 62.335-10.8 85.049-27.327 27.326-71.631 27.326-98.958 0l-7.07 7.07c31.23 31.232 81.867 31.232 113.098 0 25.961-25.96 30.762-66.04 12.338-97.208l-8.608 5.089z\"/>\n  <path d=\"M52.395 133.144v-10h-31.95v31.95h10v-21.95z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/stats.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M20 10H10v140h140v-10H20z\"/>\n  <path d=\"m83.438 107.283 51.142-64.424-7.832-6.218-43.436 54.717-20.664-25.202-33.534 49.354 8.272 5.62 26.013-38.286z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/feedback-retry.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <circle cx=\"80\" cy=\"80\" r=\"80\" fill=\"#FFB74D\"/>\n    <path fill=\"#FFF\" fill-rule=\"nonzero\" d=\"m39.4 52.27 68.47 68.47 12.73-12.73-68.47-68.47z\"/>\n    <path fill=\"#FFF\" fill-rule=\"nonzero\" d=\"m52.13 120.74 68.47-68.47-12.73-12.73-68.47 68.47z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/timer.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M32.184 82.59c0 26.387 21.385 47.77 47.77 47.77 26.388 0 47.771-21.385 47.771-47.77 0-26.388-21.385-47.772-47.77-47.772-26.388 0-47.771 21.386-47.771 47.771zm-10 0c0-31.907 25.857-57.772 57.77-57.772 31.906 0 57.771 25.858 57.771 57.771 0 31.906-25.858 57.771-57.77 57.771-31.907 0-57.771-25.858-57.771-57.77z\"/>\n  <path d=\"m107.06 48.929-34.176 33.6 7.01 7.131 34.177-33.6zM36.794 34.476l6.143 6.143 7.071-7.071-13.214-13.214-19.923 19.922 13.214 13.215 7.071-7.071-6.143-6.144zM128.959 40.256l-6.143 6.144 7.071 7.071 13.214-13.215-19.922-19.922-13.215 13.214 7.072 7.071 6.143-6.143zM75 39v17h10V39zM75 109v17h10v-17z\"/>\n  <path d=\"M75 39v17h10V39zM75 109v17h10v-17zM123.5 77.5h-17v10h17zM53.5 77.5h-17v10h17z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/wifi-off.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M20 143.81 147.07 16.74 140 9.67 12.93 136.74z\"/>\n  <path d=\"M155.92 56.48c-41.98-41.97-110.03-41.97-152 0l7.07 7.07c38.06-38.07 99.79-38.07 137.86 0l7.07-7.07z\"/>\n  <path d=\"M133.6 80.9a75.93 75.93 0 0 0-107.38 0l7.07 7.08a65.93 65.93 0 0 1 93.25 0l7.07-7.07z\"/>\n  <path d=\"M110.69 103.55c-17-17-44.55-17-61.54 0l7.07 7.07a33.52 33.52 0 0 1 47.4 0l7.07-7.07zM87 128.35a10.02 10.02 0 0 0-14.17 0l7.07 7.07 7.1-7.07z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/wifi.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M155.92 56.48c-41.98-41.97-110.03-41.97-152 0l7.07 7.07c38.06-38.07 99.79-38.07 137.86 0l7.07-7.07z\"/>\n  <path d=\"M133.6 80.9a75.93 75.93 0 0 0-107.38 0l7.07 7.08a65.93 65.93 0 0 1 93.25 0l7.07-7.07z\"/>\n  <path d=\"M110.69 103.55c-17-17-44.55-17-61.54 0l7.07 7.07a33.52 33.52 0 0 1 47.4 0l7.07-7.07zM87 128.35a10.02 10.02 0 0 0-14.17 0l7.07 7.07 7.1-7.07z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/coin-disabled.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"illustration-coin-disabled\">\n    <path fill=\"#E6E6E6\" d=\"M80 .1a80 80 0 1 1 0 160 80 80 0 0 1 0-160\" class=\"Fill-3\"/>\n    <path fill=\"#D1D1D1\" d=\"M80 15.1a65 65 0 1 1 0 130 65 65 0 0 1 0-130\" class=\"Fill-4\"/>\n    <path fill=\"#000\" fill-opacity=\".1\" d=\"M21.4 82.4a65 65 0 0 1 83.8-62.2 65 65 0 0 0-44 122 65 65 0 0 1-39.8-59.8\" class=\"Fill-5\"/>\n    <path fill=\"#FFF\" fill-opacity=\".6\" d=\"M144 80.1a65 65 0 0 1-83.8 62.2 65 65 0 0 0 44-122.1A65 65 0 0 1 144 80.1\" class=\"Fill-6\"/>\n    <path fill=\"#FFF\" fill-opacity=\".4\" fill-rule=\"nonzero\" d=\"M68.5 45.5v65.3a8.5 8.5 0 1 0 17 0V45.5a8.5 8.5 0 1 0-17 0z\" class=\"Line\"/>\n    <path fill=\"#000\" fill-opacity=\".1\" fill-rule=\"nonzero\" d=\"M74.5 50.5v65.3a8.5 8.5 0 1 0 17 0V50.5a8.5 8.5 0 1 0-17 0z\" class=\"Line\"/>\n    <path fill=\"#E6E6E6\" fill-rule=\"nonzero\" d=\"M71.5 47.5v65.3a8.5 8.5 0 1 0 17 0V47.5a8.5 8.5 0 1 0-17 0z\" class=\"Line\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/coin.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\">\n    <path fill=\"#FFE71C\" d=\"M80.03.18a79.9 79.9 0 1 1 0 159.82 79.9 79.9 0 0 1 0-159.81\"/>\n    <path fill=\"#F9C91F\" d=\"M80.03 15.12a64.97 64.97 0 1 1 0 129.94 64.97 64.97 0 0 1 0-129.94\"/>\n    <path fill=\"#FAB80D\" d=\"M21.46 82.4a64.97 64.97 0 0 1 83.78-62.2 64.77 64.77 0 0 0-25.21-5.08 64.97 64.97 0 0 0-18.8 127.17 64.99 64.99 0 0 1-39.77-59.9\"/>\n    <path fill=\"#FFF650\" d=\"M145 80.1a64.97 64.97 0 0 1-83.78 62.2 64.77 64.77 0 0 0 25.22 5.07 64.97 64.97 0 0 0 18.8-127.18A64.99 64.99 0 0 1 145 80.1\"/>\n    <path fill=\"#FFF550\" fill-rule=\"nonzero\" d=\"M68.5 45.5v65.27a8.5 8.5 0 1 0 17 0V45.5a8.5 8.5 0 1 0-17 0z\"/>\n    <path fill=\"#FAB80D\" fill-rule=\"nonzero\" d=\"M74.5 50.5v65.27a8.5 8.5 0 1 0 17 0V50.5a8.5 8.5 0 1 0-17 0z\"/>\n    <path fill=\"#FFDE00\" fill-rule=\"nonzero\" d=\"M71.5 47.5v65.27a8.5 8.5 0 1 0 17 0V47.5a8.5 8.5 0 1 0-17 0z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/coins-games.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"coins-games\">\n    <g class=\"Group-4\">\n      <g class=\"Group\">\n        <g class=\"Group-2\">\n          <path fill=\"#FFE71C\" d=\"M61 8.6a58.4 58.4 0 1 1 0 116.8A58.4 58.4 0 0 1 61 8.6\" class=\"Fill-3\"/>\n          <path fill=\"#F8C91F\" d=\"M61 19.5a47.5 47.5 0 1 1 0 95 47.5 47.5 0 0 1 0-95\" class=\"Fill-4\"/>\n          <path fill=\"#FAB80D\" d=\"M18.3 68.7a47.5 47.5 0 0 1 61.2-45.4 47.3 47.3 0 0 0-66 43.7 47.5 47.5 0 0 0 33.9 45.5c-17-7.2-29-24-29-43.8\" class=\"Fill-5\"/>\n          <path fill=\"#FFF550\" d=\"M108.5 67a47.5 47.5 0 0 1-61.2 45.5 47.3 47.3 0 0 0 65.9-43.8 47.5 47.5 0 0 0-33.7-45.5c17 7.2 29 24.1 29 43.8\" class=\"Fill-6\"/>\n        </g>\n        <path fill=\"#FFF550\" fill-rule=\"nonzero\" d=\"M52.5 41.8v47.7a6.25 6.25 0 0 0 12.5 0V41.8a6.2 6.2 0 1 0-12.4 0z\" class=\"Line\"/>\n        <path fill=\"#FAB80D\" fill-rule=\"nonzero\" d=\"M57 45.5v47.6a6.2 6.2 0 0 0 12.4 0V45.5a6.2 6.2 0 1 0-12.4 0z\" class=\"Line\"/>\n        <path fill=\"#FFDE00\" fill-rule=\"nonzero\" d=\"M54.8 43.2v47.7a6.2 6.2 0 1 0 12.4 0V43.2a6.2 6.2 0 0 0-12.4 0z\" class=\"Line\"/>\n      </g>\n      <g fill-rule=\"nonzero\" class=\"Group-3\">\n        <path fill=\"#8BA7B5\" d=\"M78.2 76.5H134c3.5 0 7.4.7 11.2 3 7 4.4 11.1 13.2 10.9 26l.2 28.7c0 4.6-1.3 8.5-4 11.4a15 15 0 0 1-9.3 4.6c-3 .3-6.3-.1-9.2-1.3a13.3 13.3 0 0 1-7.1-6.1 62.8 62.8 0 0 1-3.8-9.8 305.7 305.7 0 0 1-2.8-8.9H90.2a357.4 357.4 0 0 1-3.9 12c-1 2.9-2 5.1-2.7 6.7-1.4 2.8-4 4.8-7.1 6.1a18.8 18.8 0 0 1-9.3 1.3c-3.5-.5-6.8-2-9.2-4.6-2.7-2.9-4-6.8-4-11.4l.2-28.7c-.2-12.8 3.8-21.6 11-26a20.3 20.3 0 0 1 11.8-3h1.2z\" class=\"Page-1\"/>\n        <path fill=\"#FFF\" d=\"M81.1 90.8h-7.3v6.9H67v7.3h6.8v6.8h7.3V105H88v-7.3h-6.9zM132.5 87.4a4.45 4.45 0 1 1 0 8.9 4.5 4.5 0 0 1 0-9zm-9.5 9.5c2.5 0 4.4 2 4.4 4.5 0 2.4-2 4.4-4.4 4.4-2.4 0-4.4-2-4.4-4.4 0-2.4 2-4.5 4.4-4.5zm18.9 0c2.5 0 4.5 2 4.5 4.5a4.5 4.5 0 0 1-9 0c0-2.5 2.1-4.5 4.5-4.5zm-9.4 9.3c2.4 0 4.4 2 4.4 4.4a4.4 4.4 0 1 1-4.4-4.4z\" class=\"Path\"/>\n      </g>\n    </g>\n    <path fill=\"#F44336\" d=\"m122.7 37.3 15.7-15.6 9.4 9.4-15.7 15.6 15.7 15.7-9.4 9.3-15.7-15.6-15.6 15.6-9.4-9.3 15.7-15.7-15.7-15.6 9.4-9.4z\" class=\"Path\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/deleted-user.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"deleted-user\">\n    <path fill=\"#9B9B9B\" d=\"M116.4 98a44.4 44.4 0 0 1-17.5 16.2l1.8 18.7 1.9.8c15.2 6.7 27.4 18 27.4 18 0 .2-17.7 9.3-49.6 8.2-31.8-1-44.6-9.5-44.6-9.5 3.5-4.6 23.4-14.4 29.8-17l1.6-.8a118 118 0 0 0 2.7-17.8c-5-2.7-10.4-6.9-16-13.2a48 48 0 0 1-8.4-15.4s-.7-.5-1.8-2c-2.5.4-5.3-.5-7.2-2.3a13.8 13.8 0 0 1-3.6-10.4c0-2.5.6-5 2.1-6.9l.7-.8-.5-2.6c-1.3-6-5.7-27.3 2.4-38.5 8-11.2 45.9-26 59-22 3.7 1 16.5 6 19 8.9a17 17 0 0 1 2.9 4.6c.1.4 6.5 6 8.9 8.9 3.3 4 3 11.8 3 17a126.1 126.1 0 0 1-2 23l1.6 1.5c1.5 2 2 4.4 2.1 6.9.1 3.7-.9 7.7-3.6 10.4a8.9 8.9 0 0 1-6.6 2.4 53.7 53.7 0 0 1-5.5 13.7z\" class=\"09-head\"/>\n    <g class=\"Group\" transform=\"translate(-.3 73.2)\">\n      <path fill=\"#F44336\" d=\"M52.3 1.6a3.1 3.1 0 0 0-5.4 0L.9 81.3A3.1 3.1 0 0 0 3.5 86h92a3.2 3.2 0 0 0 2.5-5L52.3 1.6z\" class=\"Combined-Shape\"/>\n      <circle cx=\"49.6\" cy=\"72\" r=\"6\" fill=\"#FFF\" class=\"Oval\"/>\n      <path fill=\"#FFF\" d=\"M44.4 21.8h10.5v38H44.4z\" class=\"Rectangle-9\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/family-plus.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"family-plus\">\n    <g fill=\"#90A4AE\" class=\"Group-2\">\n      <path d=\"M96.2 147.8V97.2h-34v50.6H31.4V75.7h95.4v72.1H96.2z\" class=\"Combined-Shape\"/>\n      <path d=\"m79.2 13.1 67.5 67.5h-135z\" class=\"Rectangle\"/>\n    </g>\n    <g fill-rule=\"nonzero\" class=\"Group\" transform=\"translate(91.2 2.1)\">\n      <circle cx=\"33.3\" cy=\"33.3\" r=\"33.3\" fill=\"#4A90E2\" class=\"Oval\"/>\n      <path fill=\"#FFF\" d=\"M28.9 28.9V15.6a4.4 4.4 0 1 1 8.9 0v13.3H51a4.4 4.4 0 1 1 0 8.9H37.8V51a4.4 4.4 0 1 1-9 0V37.8H15.7a4.4 4.4 0 1 1 0-9H29z\" class=\"Path\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/group-plus.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"group-plus\">\n    <g class=\"Group-2\">\n      <path fill=\"#78909C\" d=\"M59.2 82.8c-2.9-5.4-8.6-9-15.1-9H22.3C12.7 73.8 5 81.5 5 91.1v17.3c0 9.5 7.7 17.3 17.3 17.3h19.6c-.3-1.4-.4-2.9-.4-4.3V104c0-10.7 7.7-19.5 17.7-21.3z\" class=\"Path\"/>\n      <path fill=\"#78909C\" d=\"M52.8 50.6a19.6 19.6 0 1 1-39.2 0 19.6 19.6 0 0 1 39.2 0z\" class=\"Fill-3\"/>\n      <path fill=\"#90A4AE\" d=\"M93.7 63.6a19.6 19.6 0 1 1-39.2 0 19.6 19.6 0 0 1 39.2 0z\" class=\"Fill-4\"/>\n      <path fill=\"#90A4AE\" d=\"M63.3 86.8H85c9.6 0 17.3 7.7 17.3 17.3v17.3c0 9.5-7.7 17.3-17.3 17.3H63.3c-9.6 0-17.3-7.8-17.3-17.3V104c0-9.6 7.7-17.3 17.3-17.3z\" class=\"Fill-5\"/>\n    </g>\n    <g fill-rule=\"nonzero\" class=\"Group-Copy\" transform=\"translate(98 23)\">\n      <circle cx=\"28.8\" cy=\"28.8\" r=\"28.8\" fill=\"#4A90E2\" class=\"Oval\"/>\n      <path fill=\"#FFF\" d=\"M25 25V13.5a3.8 3.8 0 1 1 7.7 0V25h11.5a3.8 3.8 0 1 1 0 7.7H32.7v11.5a3.8 3.8 0 1 1-7.7 0V32.7H13.5a3.8 3.8 0 1 1 0-7.7H25z\" class=\"Path\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/group-report.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"group-report\">\n    <g class=\"Group\">\n      <path fill=\"#4CAF50\" d=\"M113 12.4v70.9H95.5V12.4z\" class=\"Rectangle-2\"/>\n      <path fill=\"#C0CA33\" d=\"M136.6 40.2v43.1h-17.5V40.2z\" class=\"Rectangle-2-Copy\"/>\n      <path fill=\"#7CB342\" d=\"M160.2 23.3v60h-17.5v-60z\" class=\"Rectangle-2-Copy-2\"/>\n    </g>\n    <g class=\"Group-2\">\n      <path fill=\"#78909C\" d=\"M54.2 82.8c-2.9-5.4-8.6-9-15.1-9H17.3C7.7 73.8 0 81.5 0 91.1v17.3c0 9.5 7.7 17.3 17.3 17.3h19.6c-.3-1.4-.4-2.9-.4-4.3V104c0-10.7 7.7-19.5 17.7-21.3z\" class=\"Path\"/>\n      <path fill=\"#78909C\" d=\"M47.8 50.6a19.6 19.6 0 1 1-39.2 0 19.6 19.6 0 0 1 39.2 0z\" class=\"Fill-3\"/>\n      <path fill=\"#90A4AE\" d=\"M88.7 63.6a19.6 19.6 0 1 1-39.2 0 19.6 19.6 0 0 1 39.2 0z\" class=\"Fill-4\"/>\n      <path fill=\"#90A4AE\" d=\"M58.3 86.8H80c9.6 0 17.3 7.7 17.3 17.3v17.3c0 9.5-7.7 17.3-17.3 17.3H58.3c-9.6 0-17.3-7.8-17.3-17.3V104c0-9.6 7.7-17.3 17.3-17.3z\" class=\"Fill-5\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/group.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"group\">\n    <g class=\"Group\">\n      <path fill=\"#90A4AE\" d=\"M149.8 40.7a22.7 22.7 0 1 1-45.3 0 22.7 22.7 0 0 1 45.3 0z\" class=\"Fill-1\"/>\n      <path fill=\"#90A4AE\" d=\"M97 77.9a20 20 0 0 1 17.6-10.4h25.1c11 0 20 9 20 20v20c0 11-9 20-20 20H117c.4-1.6.5-3.3.5-5v-20A25 25 0 0 0 97 77.9z\" class=\"Fill-2\"/>\n      <path fill=\"#78909C\" d=\"M62.7 77.9a20 20 0 0 0-17.5-10.4H20c-11 0-20 9-20 20v20c0 11 9 20 20 20h22.7c-.3-1.7-.5-3.3-.5-5v-20a25 25 0 0 1 20.5-24.6z\" class=\"Path\"/>\n      <path fill=\"#78909C\" d=\"M55.3 40.7a22.7 22.7 0 1 1-45.4 0 22.7 22.7 0 0 1 45.4 0z\" class=\"Fill-3\"/>\n      <path fill=\"#607D8B\" d=\"M102.6 55.7a22.7 22.7 0 1 1-45.3 0 22.7 22.7 0 0 1 45.3 0z\" class=\"Fill-4\"/>\n      <path fill=\"#607D8B\" d=\"M67.4 82.5h25.1c11 0 20 9 20 20v20c0 11-9 20-20 20H67.4c-11 0-20-9-20-20v-20c0-11 9-20 20-20z\" class=\"Fill-5\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/pin-group.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"pin-group\">\n    <g fill=\"#1E88E5\" class=\"Group-2\">\n      <path d=\"M116.4 13.4a2 2 0 0 1 1.7-.3c.6.2 1 .6 1.3 1.1l10.8 23a29.4 29.4 0 0 1 24 13.7l.9 1.2a2 2 0 0 1-.7 2.9l-16 10 16.9 38.7c.4.9 0 2-.8 2.6a2 2 0 0 1-2.7-.5l-27.1-32.3-16 10a2 2 0 0 1-2.9-.6l-.8-1.2a29 29 0 0 1-1.7-27.7L87.4 34.2a2 2 0 0 1-.4-1.5c0-.6.4-1.1 1-1.4l28.3-17.9z\" class=\"Path\"/>\n    </g>\n    <g class=\"Group-2\">\n      <path fill=\"#78909C\" d=\"M57.2 82.8c-2.9-5.4-8.6-9-15.1-9H20.3C10.7 73.8 3 81.5 3 91.1v17.3c0 9.5 7.7 17.3 17.3 17.3h19.6c-.3-1.4-.4-2.9-.4-4.3V104c0-10.7 7.7-19.5 17.7-21.3z\" class=\"Path\"/>\n      <path fill=\"#78909C\" d=\"M50.8 50.6a19.6 19.6 0 1 1-39.2 0 19.6 19.6 0 0 1 39.2 0z\" class=\"Fill-3\"/>\n      <path fill=\"#90A4AE\" d=\"M91.7 63.6a19.6 19.6 0 1 1-39.2 0 19.6 19.6 0 0 1 39.2 0z\" class=\"Fill-4\"/>\n      <path fill=\"#90A4AE\" d=\"M61.3 86.8H83c9.6 0 17.3 7.7 17.3 17.3v17.3c0 9.5-7.7 17.3-17.3 17.3H61.3c-9.6 0-17.3-7.8-17.3-17.3V104c0-9.6 7.7-17.3 17.3-17.3z\" class=\"Fill-5\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/pin-report.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"pin-report\">\n    <g class=\"Group\">\n      <path fill=\"#4CAF50\" d=\"M31.6 34.3v109H4.7v-109z\" class=\"Rectangle-2\"/>\n      <path fill=\"#C0CA33\" d=\"M68 77v66.3H41.2V77z\" class=\"Rectangle-2-Copy\"/>\n      <path fill=\"#7CB342\" d=\"M103.5 51v92.3H76.7V51z\" class=\"Rectangle-2-Copy-2\"/>\n    </g>\n    <g fill=\"#1E88E5\" class=\"Group-2\">\n      <path d=\"M113.7 6.4c.5-.3 1.1-.4 1.8-.3.6.2 1 .6 1.3 1.2L128.5 32a31.5 31.5 0 0 1 25.7 14.6l.8 1.3a2.2 2.2 0 0 1-.7 3l-17.2 10.8 18.3 41.3c.5 1 0 2.2-.9 2.8a2 2 0 0 1-2.8-.5l-29.1-34.5-17.2 10.9a2.2 2.2 0 0 1-3.1-.7l-.8-1.4a31 31 0 0 1-1.9-29.5l-17-21.4c-.4-.5-.6-1.2-.5-1.8.1-.6.5-1.2 1-1.5l30.6-18.9z\" class=\"Path\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/school-license.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"nonzero\" class=\"school-license\">\n    <circle cx=\"79.8\" cy=\"79.8\" r=\"79.8\" fill=\"#FFF\" class=\"Oval-Copy\"/>\n    <path fill=\"#D81B60\" d=\"M79.8 159.6A79.8 79.8 0 1 1 79.8 0a79.8 79.8 0 0 1 0 159.6zm49.5-46V63.1a5 5 0 0 0-4.8-4.8H102V44.8c0-1.4-.8-2.5-2-3L81.7 31.3h-.3v-5.8h10c.6 0 1.4-.9 1.4-1.7v-7c0-.8-.8-1.6-1.4-1.6h-10v-.6a1.4 1.4 0 1 0-2.8 0v16.7h-.3L60 41.7c-1.2.6-2 1.7-2 3v13.7H35.5a4.9 4.9 0 0 0-4.8 4.8v50.3a5.8 5.8 0 0 0 2.5 11.2h93.6a5.8 5.8 0 0 0 2.5-11.2zM110.9 75c0-1.6 1.1-2.8 2.8-2.8h5c1.7 0 2.8 1.2 2.8 2.8v5c0 1.7-1.1 2.8-2.8 2.8h-5c-1.7 0-2.8-1-2.8-2.8v-5zm0 16.7c0-1.6 1.1-2.8 2.8-2.8h5c1.7 0 2.8 1.2 2.8 2.8v5c0 1.7-1.1 2.8-2.8 2.8h-5c-1.7 0-2.8-1-2.8-2.8v-5zM94.2 75.1c0-1.6 1.4-2.8 2.8-2.8h5.3c1.4 0 2.8 1.2 2.8 2.8v5c0 1.7-1.4 2.8-2.8 2.8H97a2.8 2.8 0 0 1-2.8-2.8v-5zm0 16.7c0-1.6 1.4-2.8 2.8-2.8h5.3c1.4 0 2.8 1.2 2.8 2.8v5c0 1.7-1.4 2.8-2.8 2.8H97a2.8 2.8 0 0 1-2.8-2.8v-5zM80 44.8a7.8 7.8 0 1 1 0 15.6 7.8 7.8 0 0 1 0-15.6zm-7.8 45c0-1.6 1.1-2.7 2.8-2.7h10c1.7 0 2.8 1.1 2.8 2.8v21.7l-.3 1.4h-15l-.3-1.4V89.9zM55 75.2c0-1.6 1.4-2.8 2.8-2.8H63c1.4 0 2.8 1.2 2.8 2.8v5c0 1.7-1.4 2.8-2.8 2.8h-5.3a2.8 2.8 0 0 1-2.8-2.8v-5zm0 16.7c0-1.6 1.4-2.8 2.8-2.8H63c1.4 0 2.8 1.2 2.8 2.8v5c0 1.7-1.4 2.8-2.8 2.8h-5.3a2.8 2.8 0 0 1-2.8-2.8v-5zM38.5 75.1c0-1.6 1.1-2.8 2.8-2.8h5c1.7 0 2.8 1.2 2.8 2.8v5c0 1.7-1.1 2.8-2.8 2.8h-5c-1.7 0-2.8-1-2.8-2.8v-5zm0 16.7c0-1.6 1.1-2.8 2.8-2.8h5c1.7 0 2.8 1.2 2.8 2.8v5c0 1.7-1.1 2.8-2.8 2.8h-5c-1.7 0-2.8-1-2.8-2.8v-5z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/stats.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"stats\">\n    <g class=\"Group\">\n      <path fill=\"#4CAF50\" d=\"M53.2 14.7v131.2H20.9V14.7z\" class=\"Rectangle-2\"/>\n      <path fill=\"#C0CA33\" d=\"M97.1 66.2v79.7H64.8V66.2z\" class=\"Rectangle-2-Copy\"/>\n      <path fill=\"#7CB342\" d=\"M139.8 34.9v111h-32.3v-111z\" class=\"Rectangle-2-Copy-2\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/equal.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\" class=\"equal\">\n    <path d=\"M42.5 55v10h75V55z\" class=\"Path-3-Copy\"/>\n    <path d=\"M42.5 95v10h75V95z\" class=\"Path-3-Copy-2\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/mail.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" class=\"mail\">\n    <path d=\"M80 100.9 5 43v87h150V43z\" class=\"Fill-1\"/>\n    <path d=\"M6.2 30 80 87l73.8-57z\" class=\"Fill-2\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/anton-app.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M14.95 32.95a18 18 0 0 1 18-18h94.1a18 18 0 0 1 18 18v94.1a18 18 0 0 1-18 18h-94.1a18 18 0 0 1-18-18v-94.1zm38.23 26.08a9.96 9.96 0 0 0 1.92-.19 9.41 9.41 0 0 0 1.85-.57 10.13 10.13 0 0 0 3.2-2.12c.22-.23.44-.47.64-.72a9.83 9.83 0 0 0 1.48-2.48 9.46 9.46 0 0 0 .7-2.8 9.97 9.97 0 0 0 0-1.93 9.63 9.63 0 0 0-.7-2.8 10.12 10.12 0 0 0-.9-1.7 7.73 7.73 0 0 0-.58-.77 8 8 0 0 0-.65-.72c-.22-.23-.47-.44-.71-.65a10.04 10.04 0 0 0-2.48-1.48 10.62 10.62 0 0 0-1.85-.57 9.86 9.86 0 0 0-3.84 0c-.63.14-1.25.33-1.84.57a9.75 9.75 0 0 0-1.7.9 8.89 8.89 0 0 0-1.5 1.23 9.69 9.69 0 0 0-1.22 1.5c-.35.53-.66 1.1-.9 1.7a9.83 9.83 0 0 0-.56 1.84 7.82 7.82 0 0 0-.15.95 9.97 9.97 0 0 0 0 1.94 9.8 9.8 0 0 0 4.33 7.22 10.27 10.27 0 0 0 1.7.9 9.41 9.41 0 0 0 1.84.56 9.9 9.9 0 0 0 1.92.19zm53.78 0a9.94 9.94 0 0 0 1.92-.19 9.4 9.4 0 0 0 1.84-.57 10.26 10.26 0 0 0 1.7-.9 11.26 11.26 0 0 0 2.14-1.95 9.83 9.83 0 0 0 1.49-2.47 9.41 9.41 0 0 0 .7-2.8 9.97 9.97 0 0 0 0-1.93 9.58 9.58 0 0 0-.7-2.8 10.12 10.12 0 0 0-.9-1.7 7.85 7.85 0 0 0-.58-.77 9.59 9.59 0 0 0-.65-.72c-.23-.23-.47-.44-.72-.65a8.91 8.91 0 0 0-.78-.57 9.74 9.74 0 0 0-1.7-.9 10.6 10.6 0 0 0-1.84-.58 9.51 9.51 0 0 0-.95-.14 9.94 9.94 0 0 0-8.58 3.56 7.85 7.85 0 0 0-.57.77 9.9 9.9 0 0 0-1.47 3.55 9.97 9.97 0 0 0-.15.95 9.97 9.97 0 0 0 0 1.94c.04.32.1.63.15.95a9.9 9.9 0 0 0 2.69 5.04 9.9 9.9 0 0 0 6.96 2.88zm-26.89 63.08c18.3 0 35-9.73 42.59-24.8a6.7 6.7 0 0 0-11.96-6.02c-5.33 10.6-17.35 17.44-30.63 17.44-13.27 0-25.3-6.84-30.62-17.44a6.7 6.7 0 1 0-11.96 6.02c7.58 15.07 24.3 24.8 42.58 24.8z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/arrow-down.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"m153.71 64.48-70.7 70.71-70.73-70.7L33.5 43.26 83 92.77l49.5-49.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/bulb.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M94 140v.3a8 8 0 0 1-8 8H74a8 8 0 0 1-8-8v-.4h-2.5a8 8 0 0 1-8-8v-5.8h49v5.8a8 8 0 0 1-8 8H94zM55.5 98.7h49v17h-49z\"/>\n    <ellipse cx=\"80\" cy=\"60\" rx=\"44.1\" ry=\"49\"/>\n    <path d=\"M13.7 32.3A7 7 0 0 1 20 19.8l10.3 5.3a7 7 0 1 1-6.4 12.4l-10.2-5.2z\" class=\"light1\"/>\n    <path d=\"M10.3 67.3a7 7 0 0 1 0-14h11.4a7 7 0 0 1 0 14H10.3z\" class=\"light2\"/>\n    <path d=\"m12.7 87.7 10.2-5.2A7 7 0 0 1 29.3 95L19 100.2a7 7 0 0 1-6.3-12.5z\" class=\"light3\"/>\n    <path d=\"m130.2 25.4 10.2-5.2a7 7 0 0 1 6.4 12.4L136.5 38a7 7 0 0 1-6.3-12.5z\" class=\"light4\"/>\n    <path d=\"M136.5 67.3a7 7 0 0 1 0-14H148a7 7 0 0 1 0 14h-11.5z\" class=\"light5\"/>\n    <path d=\"M129.2 94.6a7 7 0 0 1 6.3-12.5l10.3 5.3a7 7 0 1 1-6.4 12.4l-10.2-5.2z\" class=\"light6\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/calculator-2.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\n  <path d=\"M417.4 0H30.6A30.3 30.3 0 0 0 .3 30.3v451.4A30.3 30.3 0 0 0 30.6 512h386.8a30.3 30.3 0 0 0 30.3-30.3V30.3A30.3 30.3 0 0 0 417.4 0ZM24.5 30.3a6 6 0 0 1 6.1-6h386.8a6 6 0 0 1 6 6v105.1H24.6v-105Zm116.8 457.5H30.6a6 6 0 0 1-6-6.1V335.8h116.8v152Zm0-176.3H24.5V159.7h116.8v151.8Zm141.1 176.3H165.6v-152h116.8v152Zm0-176.3H165.6V159.7h116.8v151.8Zm141 170.2a6 6 0 0 1-6 6H306.6v-328h116.9v322Z\"/>\n  <path d=\"M113 223.5H95v-17.9a12.1 12.1 0 1 0-24.2 0v17.9H53a12.1 12.1 0 0 0 0 24.2h17.8v17.9a12.1 12.1 0 1 0 24.3 0v-17.9h17.8a12.1 12.1 0 0 0 0-24.2zm141.6 0h-61.2a12.1 12.1 0 0 0 0 24.2h61.2a12.1 12.1 0 0 0 0-24.2zM100 411.8l14.6-14.6A12.1 12.1 0 0 0 97.6 380l-14.7 14.7L68.3 380a12.1 12.1 0 0 0-17.1 17.2l14.6 14.6-14.6 14.6a12.1 12.1 0 0 0 17.1 17.2L83 429l14.7 14.6a12 12 0 0 0 17.1 0 12.1 12.1 0 0 0 0-17.2l-14.6-14.6zM255.8 380a12.1 12.1 0 0 0-17.2 0l-46.4 46.4a12.1 12.1 0 0 0 17.2 17.2l46.4-46.4a12.1 12.1 0 0 0 0-17.2z\"/>\n  <circle cx=\"200.8\" cy=\"388.6\" r=\"10.3\"/>\n  <circle cx=\"247.2\" cy=\"435\" r=\"10.3\"/>\n  <path d=\"M395.7 290.4h-62a12.1 12.1 0 0 0 0 24.3h62a12.1 12.1 0 0 0 0-24.3zm0 42.3h-62a12.1 12.1 0 0 0 0 24.3h62a12.1 12.1 0 0 0 0-24.3z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/calculator.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M26.2 9.6a5 5 0 0 1 5-5h97.1a5 5 0 0 1 5 5v140a5 5 0 0 1-5 5h-97a5 5 0 0 1-5.1-5V9.6zm16 14v25a3 3 0 0 0 3 3h69a3 3 0 0 0 3-3v-25a3 3 0 0 0-3-3h-69a3 3 0 0 0-3 3zm0 44v11.2a4 4 0 0 0 4 4h11.4a4 4 0 0 0 4-4V67.6a4 4 0 0 0-4-4H46.2a4 4 0 0 0-4 4zm28 0v11.2a4 4 0 0 0 4 4h11.2a4 4 0 0 0 4-4V67.6a4 4 0 0 0-4-4H74.2a4 4 0 0 0-4 4zm-28 55.6v11.4a4 4 0 0 0 4 4h11.4a4 4 0 0 0 4-4v-11.3a4 4 0 0 0-4-4H46.2a4 4 0 0 0-4 4zm55.8 0v11.4a4 4 0 0 0 4 4h11.2a4 4 0 0 0 4-4v-11.3a4 4 0 0 0-4-4H102a4 4 0 0 0-4 4zm-27.9 0v11.4a4 4 0 0 0 4 4h11.3a4 4 0 0 0 4-4v-11.3a4 4 0 0 0-4-4H74.2a4 4 0 0 0-4 4zM42.3 95.4v11.2a4 4 0 0 0 4 4h11.3a4 4 0 0 0 4-4V95.4a4 4 0 0 0-4-4H46.2a4 4 0 0 0-4 4zm55.7 0v11.2a4 4 0 0 0 4 4h11.2a4 4 0 0 0 4-4V95.4a4 4 0 0 0-4-4H102a4 4 0 0 0-4 4zm-27.9 0v11.2a4 4 0 0 0 4 4h11.3a4 4 0 0 0 4-4V95.4a4 4 0 0 0-4-4H74.2a4 4 0 0 0-4 4zM98 67.5v11.3a4 4 0 0 0 4 4h11.2a4 4 0 0 0 4-4V67.6a4 4 0 0 0-4-4H102a4 4 0 0 0-4 4z\" class=\"color1\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/camera.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"camera\">\n    <path fill=\"#9B9B9B\" d=\"M145.1 36.4h-29.6l-4.1-9.3a15.1 15.1 0 0 0-13.5-8.7H62.3a15 15 0 0 0-13.5 8.7l-4.3 9.3H14.9c-6 0-10.7 4.8-10.7 10.7V131c0 5.9 4.8 10.6 10.7 10.6H145c6 0 10.7-4.7 10.7-10.6V47c0-5.9-4.8-10.7-10.7-10.7zM80 124.7a35.9 35.9 0 0 1-35.7-35.8A35.7 35.7 0 1 1 80 124.7z\" class=\"Fill-1\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/light-bulb.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1\" viewBox=\"0 0 512 512\">\n  <path d=\"M384 192c0 64-64 127-64 192H192c0-63-64-128-64-192a128 128 0 0 1 256 0zm-80 256h-96a16 16 0 1 0 0 32h3a48 48 0 0 0 90 0h3a16 16 0 1 0 0-32zm0-48h-96a16 16 0 1 0 0 32h96a16 16 0 1 0 0-32zM82 110l28 16c5-9 10-19 17-27L98 82l-16 28zm190-76V0h-32v34l16-2 16 2zm-82 12-16-28-28 16 17 29c8-7 18-12 27-17zm240 64-16-28-29 17c7 8 12 18 17 27l28-16zm-64-76-28-16-16 28c9 5 19 10 27 17l17-29zM96 192l2-16H64v32h34l-2-16zm318-16 2 16-2 16h34v-32h-34zm-26 111 26 15 16-28-29-17-13 30zM82 274l16 28 26-15-13-30-29 17z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/certificate.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" class=\"certificate\">\n    <path d=\"M86.2 7.5 91.1 4A10 10 0 0 1 106 7.7l2.6 5.3c2 3.9 6.1 6 10.4 5.5l5.9-.8a10 10 0 0 1 11.5 10.1l-.1 6a10 10 0 0 0 6.6 9.6l5.6 2a10 10 0 0 1 5.5 14.3l-3 5.3c-2 3.7-1.5 8.4 1.4 11.6l4 4.4a10 10 0 0 1-1.8 15.2l-5 3.3a10 10 0 0 0-4.1 11l1.5 5.7a10 10 0 0 1-8.7 12.6l-6 .6a10 10 0 0 0-8.7 7.8l-1.3 5.8a10 10 0 0 1-13.6 7.1l-5.5-2.2c-4-1.6-8.6-.4-11.4 2.8l-3.9 4.5a10 10 0 0 1-15.3 0l-3.8-4.5a10.1 10.1 0 0 0-11.4-2.8l-5.6 2.2a10 10 0 0 1-13.5-7.1l-1.3-5.8a10 10 0 0 0-8.8-7.8l-6-.6a10 10 0 0 1-8.6-12.6l1.5-5.7a10 10 0 0 0-4.2-11l-5-3.3A10 10 0 0 1 4.3 81l4-4.4A10 10 0 0 0 9.7 65l-2.9-5.3a10 10 0 0 1 5.4-14.3l5.6-2a10 10 0 0 0 6.7-9.6l-.1-6a10 10 0 0 1 11.5-10.1l5.8.8A10 10 0 0 0 52.1 13l2.7-5.3A10 10 0 0 1 69.7 4l4.8 3.5a10 10 0 0 0 11.7 0zm51 72.9a56.8 56.8 0 1 0-113.6 0 56.8 56.8 0 0 0 113.6 0z\" class=\"Combined-Shape\"/>\n    <path d=\"M133.2 80.4a52.8 52.8 0 1 1-105.7 0 52.8 52.8 0 0 1 105.7 0zM59.3 65.6a7.3 7.3 0 1 0 0-14.6 7.3 7.3 0 0 0 0 14.6zm40.7 0a7.4 7.4 0 1 0 0-14.7 7.4 7.4 0 0 0 0 14.7zm-20.3 47.2c13.6 0 26.1-7.3 31.8-18.6a5 5 0 1 0-9-4.5c-4 8-13 13-22.8 13-10 0-19-5-22.9-13a5 5 0 1 0-9 4.5 35.4 35.4 0 0 0 31.9 18.6z\" class=\"Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/chat.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 165\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"chat\">\n    <path fill=\"#9B9B9B\" d=\"M9 80.7c0 13.9 10.6 30.4 20.8 40.5L23 149l29.3-14c6.5 1.5 24.1 4.6 31.2 4.6 41 0 74.4-26.4 74.4-59 0-32.5-33.3-58.8-74.4-58.8C42.3 21.8 9 48 9 80.7z\" class=\"09-callout-3\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/check.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"m154.2 51.8-91.9 92-21.2-21.3L133 30.6z\"/>\n    <path d=\"M62.3 143.8 5.7 87.2 26.9 66l56.6 56.5z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/flag.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"m109 4.5-8.6 8.3A60 60 0 0 1 68 29.3l-.5.3A74.2 74.2 0 0 0 31 47l-2.6 2.3-5.2-9a6.5 6.5 0 0 0-8.9-2.4 6.5 6.5 0 0 0-2.4 8.9l61.4 107.3a6.5 6.5 0 0 0 8.8 2.4c3.1-1.8 4.2-5.8 2.4-8.9l-21-37.4 4.6-4a63.7 63.7 0 0 1 30.3-14.5h.5A76 76 0 0 0 138.1 72l8.7-8.3c2.2-2 2.7-5.4 1.2-8L119.2 5.9A6.5 6.5 0 0 0 109 4.5z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/flash.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M100.3 0 41.5 89.5h33.8L58.6 160l59.9-91H83.6z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/flip.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"nonzero\">\n    <path d=\"m14.327 67.649.871-3.39c7.574-29.473 34.227-50.21 64.807-50.21 34.03 0 62.126 25.405 66.357 58.283.364 2.824-11.989 2.118-12.545-1.01-4.551-25.592-26.912-45.024-53.812-45.024-24.98 0-46.758 16.944-52.943 41.01l-.87 3.39-11.865-3.05zM145.93 91.974l-.87 3.39c-7.574 29.473-34.228 50.21-64.807 50.21-34.756 0-63.322-26.5-66.596-60.397-.207-2.142 12.042-2.589 12.246-.67 2.915 27.44 26.136 48.818 54.35 48.818 24.98 0 46.758-16.944 52.942-41.01l.871-3.39 11.865 3.05z\"/>\n    <path d=\"m150.479 53.936 8.662 8.662-22.256 22.256-22.255-22.256 8.662-8.662 13.593 13.594zM8.811 105.159.149 96.497l22.256-22.256L44.66 96.497l-8.662 8.662-13.593-13.594z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/list.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" class=\"list\">\n    <path d=\"M142.5 19.5v28H17.7v-28z\" class=\"Rectangle-2\"/>\n    <path d=\"M142.5 67.8v28H17.7v-28z\" class=\"Rectangle-2-Copy\"/>\n    <path d=\"M142.5 116v28H17.7v-28z\" class=\"Rectangle-2-Copy-2\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/loading-rects.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M20 20h50v50H20zM20 90h50v50H20zM90 20h50v50H90zM90 90h50v50H90z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/forum.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M129.85 75.57a16.18 16.18 0 1 1-32.37 0 16.18 16.18 0 0 1 32.37 0zm-37.7 26.57a14.28 14.28 0 0 1 12.53-7.42h17.98c7.88 0 14.27 6.39 14.27 14.27v14.29c0 7.88-6.4 14.27-14.27 14.27h-16.21c.23-1.15.35-2.34.35-3.57V119.7c0-8.76-6.32-16.05-14.65-17.56zm-24.48 0a14.28 14.28 0 0 0-12.53-7.42H37.17c-7.89 0-14.28 6.39-14.28 14.27v14.29c0 7.88 6.4 14.27 14.28 14.27h16.2a17.92 17.92 0 0 1-.35-3.57V119.7c0-8.76 6.32-16.05 14.65-17.56zm-5.33-26.57a16.18 16.18 0 1 1-32.37 0 16.18 16.18 0 0 1 32.37 0zm33.81 10.7a16.18 16.18 0 1 1-32.37 0 16.18 16.18 0 0 1 32.37 0z\"/>\n    <path d=\"M70.98 105.42h17.97c7.89 0 14.28 6.4 14.28 14.28v14.28c0 7.89-6.4 14.28-14.28 14.28H70.98c-7.88 0-14.28-6.4-14.28-14.28V119.7c0-7.88 6.4-14.28 14.28-14.28zM86.97 52.63l-7.35 8.33-7.17-8.58c-3.03-.38-6.05-.84-7.66-1.13l-14.3 5.44 3.3-10.84c-4.97-3.95-10.17-10.44-10.17-15.89C43.62 17.21 59.9 6.87 80 6.87c20.1 0 36.38 10.34 36.38 23.09 0 6.2-3.86 11.84-10.14 16l3.28 10.73-14.31-5.44c-.4.08-.45-.03-.21-.25a52.16 52.16 0 0 1-8.03 1.62z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/gear-part.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M153.4 114.31c0-2.6-2.12-4.79-4.73-4.84l-19.62-.39a7.83 7.83 0 0 1-6.54-4.45l-8.63-20.86a7.8 7.8 0 0 1 1.46-7.78l13.6-14.16a4.84 4.84 0 0 0-.08-6.76l-24.61-24.63a4.85 4.85 0 0 0-6.76-.06L83.33 43.97a7.83 7.83 0 0 1-7.78 1.47L54.7 36.81a7.86 7.86 0 0 1-4.45-6.56l-.39-19.6a4.84 4.84 0 0 0-4.84-4.75l-34.81.02c-1.44 0-2.73.66-3.62 1.67v66.34a61.5 61.5 0 0 1 78.28 80.17h56.87l6.94-.14a4.84 4.84 0 0 0 4.75-4.84l-.02-34.81z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/grid.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#979797\" fill-rule=\"nonzero\">\n    <path d=\"M15 56.8v-12h130v12zM15 115.3v-12h130v12z\"/>\n    <path d=\"M103.2 15h12v130h-12zM44.7 15h12v130h-12z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/group.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M149.82 40.67a22.67 22.67 0 1 1-45.34 0 22.67 22.67 0 0 1 45.34 0zm-52.8 37.22a20 20 0 0 1 17.54-10.4h25.18a20 20 0 0 1 20 20v20a20 20 0 0 1-20 20h-22.7c.32-1.61.5-3.28.5-5v-20a25 25 0 0 0-20.52-24.6zm-34.3 0a20 20 0 0 0-17.55-10.4H20a20 20 0 0 0-20 20v20a20 20 0 0 0 20 20h22.7a25.1 25.1 0 0 1-.5-5v-20a25 25 0 0 1 20.52-24.6zm-7.47-37.22a22.67 22.67 0 1 1-45.34 0 22.67 22.67 0 0 1 45.34 0zm47.37 15a22.67 22.67 0 1 1-45.34 0 22.67 22.67 0 0 1 45.34 0z\"/>\n    <path d=\"M67.36 82.49h25.17a20 20 0 0 1 20 20v20a20 20 0 0 1-20 20H67.36a20 20 0 0 1-20-20v-20a20 20 0 0 1 20-20z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/heart.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M158.7 53.3v7l-.3 1.4a58.8 58.8 0 0 1-7.4 21.9 102.3 102.3 0 0 1-11.2 15 181.4 181.4 0 0 1-17.3 17.4c-5.6 5-11.4 9.7-17.3 14.2-7.9 5.9-16 11.4-24.1 17.2a1.4 1.4 0 0 1-2 0c-7-5-14.2-9.7-21.1-15a511 511 0 0 1-21.2-17.3 153.7 153.7 0 0 1-23.6-25.2A59.6 59.6 0 0 1 2.6 66.3c-.6-2-1-3.9-1.3-5.8v-7.2c0-.5.2-.8.3-1.3.7-3.1 1-6.3 2-9.4a43 43 0 0 1 20.1-24.5A43 43 0 0 1 53.2 13 43.3 43.3 0 0 1 78.7 27l.9 1.5 4.3-4.3a44.4 44.4 0 0 1 30.1-12 44.4 44.4 0 0 1 30.3 11.8 43.5 43.5 0 0 1 13 21.8c.6 2.4 1 4.9 1.4 7.4z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/learn-list.svg","text":"<svg viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M71.6 22.4v21.8H3.8V22.4zm0 31.2v21.8H3.8V53.6zm0 31.2v21.7H3.8V84.8zm0 31.1v21.8H3.8v-21.8zm84.9-93.5v21.8H88.6V22.4zm0 31.2v21.8H88.6V53.6zm0 31.2v21.7H88.6V84.8zm0 31.1v21.8H88.6v-21.8z\" class=\"Group\"/>\n</svg>\nUpdate available\nreload\ndismiss","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/print.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 160 160\">\n  <defs>\n    <path id=\"a\" d=\"M132.6 97v60H27.4V97h105.2zm-15 41.3H42.4a3.8 3.8 0 0 0-3.8 3.7 3.8 3.8 0 0 0 3.8 3.8h75.2a3.8 3.8 0 0 0 3.8-3.8 3.8 3.8 0 0 0-3.8-3.7zm0-15H42.4a3.8 3.8 0 0 0-3.8 3.7 3.8 3.8 0 0 0 3.8 3.8h75.2a3.8 3.8 0 0 0 3.8-3.8 3.8 3.8 0 0 0-3.8-3.8zm0-15.1H42.4a3.8 3.8 0 0 0-3.8 3.8 3.8 3.8 0 0 0 3.8 3.7h75.2a3.8 3.8 0 0 0 3.8-3.7 3.8 3.8 0 0 0-3.8-3.8zM153.3 48A3.8 3.8 0 0 1 157 52v63.8a3.8 3.8 0 0 1-3.8 3.8h-16.9V93.2H23.6v26.3H6.7a3.8 3.8 0 0 1-3.8-3.8V51.9A3.8 3.8 0 0 1 6.7 48h146.6zm-18.8 15a7.5 7.5 0 0 0-7.5 7.6 7.5 7.5 0 0 0 7.5 7.5 7.5 7.5 0 0 0 7.5-7.5 7.5 7.5 0 0 0-7.5-7.5zm-1.9-60v41.3H27.4V2.9h105.2z\"/>\n  </defs>\n  <use xlink:href=\"#a\" fill=\"#9B9B9B\" fill-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/qrcode-scan.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#979797\" fill-rule=\"nonzero\">\n    <path d=\"M26 26v34H14V14h46v12zM26 134h34v12H14v-46h12zM134 26h-34V14h46v46h-12zM134 134v-34h12v46h-46v-12z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/qrcode.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M62.2 9.2h-53v53h53v-53zm-8.9 44.2H18V18h35.3v35.4z\"/>\n    <path d=\"M26.8 44.5h17.7V26.8H26.8zM9.2 150.7h53V97.6h-53v53zm8.8-44.2h35.3v35.3H18v-35.3z\"/>\n    <path d=\"M26.8 133h17.7v-17.7H26.8zM97.6 9.2v53h53v-53h-53zm44.2 44.1h-35.3V18h35.3v35.4z\"/>\n    <path d=\"M115.3 44.5H133V26.8h-17.7zM26.8 71.1H9.2v17.7h26.5v-8.9h-8.9zM71.1 106.5h17.7V88.8H71.1zM35.7 80h17.7v-8.9H35.7zM88.8 115.3H71.1v8.9h8.8v8.8h8.9zM62.2 71.1v8.8h-8.8v8.9h17.7V71.1zM79.9 62.2h8.9V44.5h-8.9z\"/>\n    <path d=\"M88.8 79.9v8.9h17.7V71.1H79.9v8.8zM71.1 71.1H80v-8.9h-8.9zM88.8 150.7h17.7V133H88.8zM71.1 150.7H80V133h-8.9zM88.8 115.3h8.9v-8.8h-8.9zM88.8 35.7V18h-8.9V9.2h-8.8v35.3h8.8v-8.8zM115.3 150.7h8.9V133h-8.9zM115.3 124.2H133v-8.9h-17.7zM106.5 133h8.8v-8.8h-8.8zM97.6 124.2h8.9v-8.9h-8.9zM133 97.6v8.9h8.9v8.8h8.8V97.6zM141.8 124.2H133v26.5h17.7V133h-8.9z\"/>\n    <path d=\"M97.6 97.6v8.9h26.6V88.8h-17.7v8.8zM115.3 71.1v8.8H133v8.9h17.7V71.1z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/radio-off.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"radio-off\">\n    <path fill=\"#9B9B9B\" fill-rule=\"nonzero\" stroke=\"#979797\" d=\"M80 160A80 80 0 1 1 80 0a80 80 0 0 1 0 160zm0-20.5a59.5 59.5 0 1 0 0-119 59.5 59.5 0 0 0 0 119z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/radio-on.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"nonzero\" stroke=\"#979797\" class=\"radio-on\">\n    <path d=\"M80 160A80 80 0 1 1 80 0a80 80 0 0 1 0 160zm0-20.5a59.5 59.5 0 1 0 0-119 59.5 59.5 0 0 0 0 119z\" class=\"Combined-Shape\"/>\n    <circle cx=\"80\" cy=\"80\" r=\"40.2\" class=\"Oval\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/record.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <circle cx=\"80\" cy=\"80\" r=\"65.2\" fill=\"#D8D8D8\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/rect.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M20 20h120v120H20z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/star.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"m80 3.5 24.7 50.1 55.3 8.1-40.1 39 9.6 54.9-49.5-26-49.5 26 9.6-54.9L0 61.7l55.3-8.1z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/thumb-down.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M156.7 95.2c0-5.2-3.3-9.5-7.6-11a13 13 0 0 0 2.8-8.1c0-4.8-2.8-9.2-7.6-11a13 13 0 0 0 2.8-8.2c0-6.7-5.2-12-12-12a11.8 11.8 0 0 0 2.5-7.2c0-6.7-5.3-12-12-12h-36c-19.2 0-23 9.1-38.4 14.4v62.3S84.8 113 84.8 148c0 6.7 5.3 12 12 12s12-5.3 12-12c0 0 0-23.5-3.4-29.7-5.3-8.2 1.5-11 3.4-11h36c6.7 0 12-5.3 12-12zM3.3 112h24c8 0 14.3-6.2 14.3-14.4V45c0-7.7-6.2-14.4-14.4-14.4h-24V112z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/school.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"school\">\n    <path fill=\"#9B9B9B\" fill-rule=\"nonzero\" d=\"M150.8 144a8.4 8.4 0 0 1-3.6 16H12.8a8.4 8.4 0 0 1-3.6-16V71.6a7 7 0 0 1 6.8-6.8h32.4V45.2a5 5 0 0 1 2.8-4.4L77.6 26h.4V2a2 2 0 0 1 4 0v.8h14.4c.8 0 2 1.2 2 2.4v10c0 1.2-1.2 2.4-2 2.4H82V26h.4l26.4 14.8a5 5 0 0 1 2.8 4.4v19.6H144a7 7 0 0 1 6.8 6.8V144zm-26.4-55.2V96c0 2.4 1.6 4 4 4h7.2c2.4 0 4-1.6 4-4v-7.2c0-2.4-1.6-4-4-4h-7.2c-2.4 0-4 1.6-4 4zm0 24v7.2c0 2.4 1.6 4 4 4h7.2c2.4 0 4-1.6 4-4v-7.2c0-2.4-1.6-4-4-4h-7.2c-2.4 0-4 1.6-4 4zm-24-24V96c0 2.4 2 4 4 4h7.6c2 0 4-1.6 4-4v-7.2c0-2.4-2-4-4-4h-7.6a4 4 0 0 0-4 4zm0 24v7.2c0 2.4 2 4 4 4h7.6c2 0 4-1.6 4-4v-7.2c0-2.4-2-4-4-4h-7.6a4 4 0 0 0-4 4zM80 45.2a11.2 11.2 0 1 0 0 22.4 11.2 11.2 0 0 0 0-22.4zM68.8 110v31.2l.4 2h21.6l.4-2V110c0-2.4-1.6-4-4-4H72.8c-2.4 0-4 1.6-4 4zM44 88.8V96c0 2.4 2 4 4 4h7.6c2 0 4-1.6 4-4v-7.2c0-2.4-2-4-4-4H48a4 4 0 0 0-4 4zm0 24v7.2c0 2.4 2 4 4 4h7.6c2 0 4-1.6 4-4v-7.2c0-2.4-2-4-4-4H48a4 4 0 0 0-4 4zm-23.6-24V96c0 2.4 1.6 4 4 4h7.2c2.4 0 4-1.6 4-4v-7.2c0-2.4-1.6-4-4-4h-7.2c-2.4 0-4 1.6-4 4zm0 24v7.2c0 2.4 1.6 4 4 4h7.2c2.4 0 4-1.6 4-4v-7.2c0-2.4-1.6-4-4-4h-7.2c-2.4 0-4 1.6-4 4z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/search.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" stroke=\"#979797\" d=\"M78.9 102.253 26.213 154.94 5 133.726l52.705-52.705c-3.878-7.252-6.076-15.537-6.076-24.335C51.629 28.14 74.769 5 103.314 5 131.86 5 155 28.14 155 56.686c0 28.545-23.14 51.685-51.686 51.685-8.83 0-17.143-2.214-24.414-6.118zm24.414-16.584c16.008 0 28.984-12.976 28.984-28.983 0-16.008-12.976-28.984-28.984-28.984-16.007 0-28.983 12.976-28.983 28.984 0 16.007 12.976 28.983 28.983 28.983z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/share.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M90.368 14.163v35.642c-43.703 3.392-78.106 39.862-78.106 84.452 0 2.66.692 11.786.764 11.577 13.583-28.649 43.532-50.262 77.342-50.262v37.96l57.37-61.299-57.37-58.07z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/shuffle.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" class=\"shuffle\">\n    <path d=\"m76.5 101.2 14-14.2 17.7 18H140v20H99.8L71.5 96.2zM52.4 77 30.8 55H5V35h34.2l27.3 27.8z\" class=\"Path\"/>\n    <path d=\"m128.7 89.5 25.4 25.5-25.4 25.5z\" class=\"Path\"/>\n    <path d=\"M108.2 59H140V39H99.8l-69 70H5v20h34.2z\" class=\"Path-4-Copy\"/>\n    <path d=\"M128.7 23.5 154.1 49l-25.4 25.5z\" class=\"Path\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/space-blox-ball.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M7.5 80a72.5 72.5 0 1 1 145 0 72.5 72.5 0 0 1-145 0zm10.4 0a62 62 0 1 0 124.2 0 62 62 0 0 0-124.2 0z\"/>\n    <rect width=\"104\" height=\"104\" x=\"28\" y=\"28\" rx=\"52\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/stats.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 161 161\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"stats\">\n    <g fill=\"#9B9B9B\" class=\"Group\">\n      <path d=\"M48.9 15.7v130h-32v-130z\" class=\"Rectangle-2\"/>\n      <path d=\"M96 66.7v79H64v-79z\" class=\"Rectangle-2-Copy\"/>\n      <path d=\"M143.1 35.7v110h-32v-110z\" class=\"Rectangle-2-Copy-2\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/speech-bubble-center.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 165\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M162.5 73c0-27-35.9-48.6-80-48.6S2.5 46.2 2.5 73c0 22.1 17.1 40.5 61.6 46.6l17.6 21 18.5-21c41.6-6.6 62.3-24.5 62.3-46.6z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/speech-bubble-think.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 165\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M36.2 117.4h-.3c-7 0-12.6 4.4-12.6 9.8 0 5.7 5.4 10.3 12.6 10.3h.3c7 0 12.5-4.4 12.5-9.8 0-5.5-5.5-10.1-12.5-10.3zm-22.9 12.2c-5.5 0-9.6 3.3-9.8 7.7 0 4.3 4 7.9 9.4 7.9h.2c5.3 0 9.4-3.3 9.6-7.7.2-4.4-4-7.9-9.4-7.9z\"/>\n    <path d=\"M114.3 127.3c-7.2 0-13.8-2.2-19.2-6.4-1.3-1-3.2-.8-4.2.3-5.4 5.2-12.9 8-21 8-11.5 0-22-5.9-25.6-14.8-.6-1.3-1.7-2.2-3-2.2a30.4 30.4 0 0 1-10.5 1.8c-14.9 0-27-9.9-27-21.7 0-5.7 2.7-11.2 7.6-15 1.5-1.2 1.7-3.4.7-4.9a18.4 18.4 0 0 1-3.9-11c0-5.6 2.8-10.9 7.7-15a31.2 31.2 0 0 1 19.5-6.6c1.5 0 3 .2 4.7.5 1.7.2 3.2-1 3.6-2.7C46 27.4 57.3 20 70.4 20c9.6 0 14.5 1 23.2 10.7 7.7-4.4 21-7.4 29.7-4.3 8.7 3 15.8 14.9 16.8 26.6 12.6 0 21.7 9.4 22.3 20.3.6 11-7.4 23.7-18.6 24.8 2.7 19.7-14.5 29.3-29.5 29.3z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/speech-bubble.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 165 165\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M2.5 78.5c0 12 11.4 26.2 22.4 35l-7.3 23.8 31.5-12c7 1.3 25.8 4 33.4 4 44.2 0 80-22.8 80-50.8 0-28-35.8-50.8-80-50.8s-80 22.8-80 50.8z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/square.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"square\">\n    <path fill=\"#979797\" fill-rule=\"nonzero\" d=\"M29.7 29.7v100.6h101.6l1.6-100.6H29.7zM6 6h148v148H6V6z\" class=\"Rectangle\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/star-trip.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M60.1 93.3V40.1h13.3V.3h13.2v39.8h13.3v53.2h13.3v26.6h13.3v39.8h-13.3v-26.6H99.9v-13.2H86.6v39.8H73.4v-39.8H60.1v13.2H46.8v26.6H33.5v-39.8h13.3V93.3h13.3z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/stop.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#D8D8D8\" fill-rule=\"nonzero\" d=\"M23.2 23.2h113.5v113.5H23.2z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/subgroup.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"subgroup\">\n    <g fill=\"#9B9B9B\" class=\"Group\">\n      <path d=\"M75.6 40.4a26.85 26.85 0 1 1-53.7 0 26.85 26.85 0 0 1 53.7 0z\" class=\"Fill-4\"/>\n      <path d=\"M137.7 40.4a26.8 26.8 0 1 1-53.6 0 26.85 26.85 0 0 1 53.7 0z\" class=\"Fill-4-Copy\"/>\n      <path d=\"M75.1 75.1a29.3 29.3 0 0 0-8.5 20.7v23.7c0 8.1 3.2 15.4 8.5 20.8a24.4 24.4 0 0 1-11.4 2.9H33.9c-13 0-23.7-10.6-23.7-23.7V95.8c0-13 10.6-23.6 23.7-23.6h29.8c4.1 0 8 1 11.4 2.9z\" class=\"Path\"/>\n      <path d=\"M96 72.2h29.8c13 0 23.6 10.6 23.6 23.6v23.7a23.7 23.7 0 0 1-23.6 23.7H96a23.7 23.7 0 0 1-23.7-23.7V95.8c0-13 10.6-23.6 23.7-23.6z\" class=\"Fill-5-Copy\"/>\n    </g>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/subject-bicycle.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M80 146.129c-36.522 0-66.129-29.607-66.129-66.129 0-36.522 29.607-66.129 66.129-66.129 36.522 0 66.129 29.607 66.129 66.129 0 36.522-29.607 66.129-66.129 66.129zm-24.243-73.57c-2.338-.876-4.967-1.462-7.885-1.462-11.39 0-20.44 9.05-20.435 20.73 0 11.39 9.051 20.44 20.44 20.44 10.223 0 18.689-7.594 20.15-17.521h9.064c.908 0 1.758-.446 2.275-1.192L96.94 68.173l3.504 6.718c-5.256 3.505-8.76 9.637-8.76 16.646 0 11.39 9.05 20.44 20.44 20.44 11.389 0 20.44-9.05 20.44-20.44s-9.051-20.44-20.44-20.44c-2.338 0-4.38.29-6.423 1.166l-5.257-10.513v-8.175h5.994a2.767 2.767 0 0 0 2.767-2.768V50.5a2.767 2.767 0 0 0-2.767-2.768h-9.069a2.767 2.767 0 0 0-2.767 2.768v8.912h-26.58l-1.166-2.919h1.462c1.752 0 2.918-1.166 2.918-2.918 0-1.752-1.166-2.919-2.918-2.919h-8.761c-1.752 0-2.919 1.167-2.919 2.919s1.167 2.918 2.919 2.918h.876l2.042 4.967-6.718 11.099zm41.762 18.978c0-4.67 2.338-8.76 5.552-11.685l6.423 12.851c.586 1.167 1.462 1.753 2.629 1.753 1.752 0 2.918-1.167 2.918-2.919 0-.586 0-.876-.29-1.166l-6.423-12.851c1.166-.296 2.628-.586 3.795-.586 8.18 0 14.603 6.428 14.603 14.603 0 8.18-6.428 14.604-14.603 14.604-8.181 0-14.604-6.429-14.604-14.604zm-36.796-15.77 4.375-7.299 7.595 20.15h-4.671c-.876-5.256-3.504-9.636-7.299-12.85zm-2.918 4.967c2.042 2.042 3.794 4.67 4.38 7.885h-9.051l4.67-7.885zm20.15 4.67-7.885-20.15h21.902l-14.017 20.15zm-30.083 20.737c-8.175 0-14.598-6.429-14.604-14.604 0-8.18 6.429-14.603 14.604-14.603 1.752 0 3.504.29 4.966.876L45.54 90.075c-.295.296-.586.876-.586 1.462 0 1.752 1.167 2.919 2.919 2.919l14.307.005c-1.456 6.713-7.298 11.68-14.307 11.68z\" class=\"color1\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/subject-chemistry.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"m106.4 65.8-39.6 68.6a20.2 20.2 0 0 1-35-20.2l39.6-68.6-2.3-1.3a2 2 0 0 1 2-3.7l39.7 23a2 2 0 0 1-2 3.6l-2.4-1.4z\" class=\"color1\"/>\n    <circle cx=\"101.3\" cy=\"37.8\" r=\"9.5\" class=\"color1\"/>\n    <circle cx=\"127.4\" cy=\"38.2\" r=\"5.9\" class=\"color1\"/>\n    <circle cx=\"116.7\" cy=\"17.7\" r=\"3.1\" class=\"color1\"/>\n    <circle cx=\"85.9\" cy=\"18.8\" r=\"5.9\" class=\"color1\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/subject-english.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\">\n    <path d=\"M30.7 76.8a3 3 0 0 1-.3-3.2l4.8-10a3 3 0 0 1 3.7-1.5l7.5 2.1a3 3 0 0 1 2 1.6l5.2 11a3 3 0 0 1-1 3.9l-4.7 3a3 3 0 0 1-2.1.4l-9.6-1.5a3 3 0 0 1-2-1.2l-3.5-4.6z\" class=\"color1\"/>\n    <path d=\"M63.6 7.7a3 3 0 0 1 2.7-1.2l8.6.8a3 3 0 0 1 2 5.1l-5.6 6.3a3 3 0 0 0-.8 2v2.4a2.8 2.8 0 0 0 3.4 2.7l12.6-3a3 3 0 0 1 3.6 2.3l.9 3a3 3 0 0 1-.2 2l-6.5 16.3a3 3 0 0 1-1.5 1.7l-3.4 1.7a1.2 1.2 0 0 0 .4 2.2l3 .3a3 3 0 0 1 1.6.8l7.8 6.6c.5.4.8.9 1 1.5l4.4 14.4a3 3 0 0 0 1.7 2l4.9 2a3 3 0 0 1 1.6 1.7l7.8 18.6a3 3 0 0 1 0 2.5l-1.2 2.2a1.9 1.9 0 0 0 2.1 2.7l5.7-1.3a3 3 0 0 1 2.1.3l3.6 1.9a3 3 0 0 1 1.6 2l1.5 6.9a3 3 0 0 1-.8 2.8l-8 8.5a3 3 0 0 0 1.5 4.9l1.6.3a3 3 0 0 1 2.1 4.1l-.9 2.1a3 3 0 0 1-1.9 1.7l-9.1 3a3 3 0 0 1-.6 0l-23.6 3h-.8l-11-1.4a3 3 0 0 0-2.9 1.2l-3.5 4.7a3 3 0 0 1-2.6 1.2l-10.4-.4a3 3 0 0 1-2-5.3l12-11.7a3 3 0 0 1 1.6-.8l9.4-1.5a3 3 0 0 0 2.1-1.3l1.1-1.6a1 1 0 0 0-1.2-1.6l-6.2 2.1a3 3 0 0 1-1.8 0l-14-3.6a3 3 0 0 1-1.5-5l9.2-9.9a3 3 0 0 0 .6-3.3l-2.7-6.4a3 3 0 0 1 3-4.3l9.6.2a3 3 0 0 0 3.1-3.4l-.4-4-.5-5.6a3 3 0 0 0-.9-1.9l-4.2-4.4a3 3 0 0 1-.8-2.6l.4-2.7a3 3 0 0 0-3.5-3.3L62 73a2.6 2.6 0 0 1-3.2-2.6l.6-15.3a3 3 0 0 0-.8-2.3L53.2 47a3 3 0 0 1-.8-2.2l1.1-23.1c0-.6.3-1.2.7-1.7l9.4-12.2z\" class=\"color1\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/subject-geography.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M132.93 45.94a62.66 62.66 0 0 0-39.39-27.92 63.23 63.23 0 0 0-14.06-1.59 62.74 62.74 0 0 0-61.45 49.08 62.68 62.68 0 0 0 8.1 47.6 62.66 62.66 0 0 0 39.4 27.92 63.23 63.23 0 0 0 14.05 1.59 62.73 62.73 0 0 0 61.45-49.08 62.62 62.62 0 0 0-8.1-47.6zm-53.35 88.2a54.93 54.93 0 0 1-29.64-8.7c2.9-2.05 6.46-6.87 7.27-8.22.97-1.62.12-6.62.31-7.53.21-.9-3.75-8.43-4.9-9.63-1.14-1.21 1.34-5.85 2.06-9.04.73-3.18-6.08-6.55-8.36-8.96-2.3-2.42-4.74 4.13-7.58 2.06-2.85-2.06-1.37-6.46-1-10.17.3-3.01-8.28-5.65-11.46-6.53v-.03a54.29 54.29 0 0 1 44.5-41.8c-1.55 1.66-2.93 4.09-3.38 8.2-.88 7.93-2.88 11.25 2.46 13.62 5.33 2.38 7.7 1.47 11.46 2.61 3.76 1.14 1.35 10.7 2.19 11.07 0 0 1.87 14.94 15.67 22.24 2.93 1.55-4.89 6.51-9.73 7.44-4.86.93-9.03.27-10.68 4.82-1.66 4.56 5.73 3.34 7.3 4.57 1.58 1.23 8.53 5.85 12.62 2.26 4.1-3.6 16.51.77 16.4-4.1-.22-8.4 12.23-10.54 19-16.52a55.03 55.03 0 0 1-1.32 9.85 54.29 54.29 0 0 1-53.19 42.48z\" class=\"color1\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/subject-german.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M117.74 31.26c.9.17 1.64.81 1.92 1.69l1.37 4.3c.17.53.18 1.1.02 1.64l-2.33 7.67a2.76 2.76 0 0 0 .13 1.95l10.9 23.63c.3.66.33 1.4.09 2.09l-1.88 5.24a2.67 2.67 0 0 1-3.32 1.64l-1.12-.36c-.82-.15-1.45.29-1.57.95-.17.97-.58 1.6-1.17 2.02l-17.79 12.49c-.59.41-1.32.58-2.03.46l-.38-.06a.55.55 0 0 0-.5.9l2.78 3.2c.63.73.84 1.72.55 2.64a2.79 2.79 0 0 0 .6 2.77l14.27 15.3a1.88 1.88 0 0 1-.6 3l-1.16.52a1.66 1.66 0 0 0-.94 1.87 1.92 1.92 0 0 1-.85 2.03l-4.11 2.58a2.76 2.76 0 0 0-1.08 3.4l2.2 5.3a2.76 2.76 0 0 1-.76 3.14c-.95.82-2.23.93-3.25.34l-3.06-1.8a2.03 2.03 0 0 0-2.47.33l-.28.3a2.76 2.76 0 0 1-2 .81l-3.55-.04a2.76 2.76 0 0 0-2.03.85l-1.35 1.4a2.76 2.76 0 0 1-2.1.85l-1.17-.05a1.97 1.97 0 0 1-1.75-1.25 1.78 1.78 0 0 0-1.75-1.14l-4.37.22a2.76 2.76 0 0 0-1.28.39l-1.67 1a2.76 2.76 0 0 1-2.91-.05l-1.61-1.03a2.76 2.76 0 0 0-2.04-.39l-2.37.48a2.76 2.76 0 0 1-1.6-.15l-7.55-3.12a2.76 2.76 0 0 0-1.82-.1l-9.6 2.78a2.76 2.76 0 0 1-2.7-.7 2.7 2.7 0 0 1-.68-2.88l6.8-18.36a2.77 2.77 0 0 0-1.69-3.56l-14.5-4.97a1.34 1.34 0 0 1-.9-1.37 2.14 2.14 0 0 0-.7-1.75l-1.93-1.78a2.76 2.76 0 0 1-.88-1.78L30.01 82.4a2.76 2.76 0 0 1 .97-2.36A2.8 2.8 0 0 0 32 77.41l-1.13-6.8A2.76 2.76 0 0 1 33 67.49l5.01-1.12a2.76 2.76 0 0 0 1.88-1.48l2.09-4.27a2.47 2.47 0 0 0-.8-3.1l-.53-.38a2.76 2.76 0 0 1-1.16-2.31l.01-.64a1.64 1.64 0 0 1 1.59-1.6 1.82 1.82 0 0 0 1.75-1.6l1.12-9.02a1.86 1.86 0 0 0-.72-1.71 1.75 1.75 0 0 1-.65-1.7l.32-1.82a2.76 2.76 0 0 1 1.9-2.15l3.62-1.13a2.76 2.76 0 0 1 2.3.3l3.91 2.46 1.46 1.11a1.76 1.76 0 0 0 2.44-.27l1.11-1.35c.37-.71.15-1.3-.35-1.53a1.54 1.54 0 0 1-.84-1.78c.22-.87.93-1.4 1.74-1.4l1.32.02a2.08 2.08 0 0 0 2.04-2.57l-2.8-11.32a2.76 2.76 0 0 1 3.13-3.38l7.64 1.29a2.32 2.32 0 0 1 1.9 2.67l-.08.53a2.76 2.76 0 0 0 1.2 2.74l.62.42a1.19 1.19 0 0 0 1.58-.24 1.95 1.95 0 0 1 1.75-.7l4.2.53a2.76 2.76 0 0 1 2.2 3.8l-1.05 2.5a.93.93 0 0 0 1.13 1.25l.54-.17a2.47 2.47 0 0 1 2.39.54c.76.43 1.41.22 1.68-.3l.5-.96c.26-.53.7-.96 1.23-1.22l12.01-5.9a2.76 2.76 0 0 1 3.18.54l9.16 9.3c.4.41.9.68 1.46.79l.61.1z\" class=\"color1\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/subject-history.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M97.5 62.7c-2.44 4.1-6 6.98-9.45 8.81l.96 10.17 1.01.43c8.25 3.63 14.88 9.8 14.88 9.8 0 .06 17.53 10.98 8.9 15.67-6.53 3.54-21.46 3.54-34.36 3.53-12.8 0-26.99.01-32.83-3.53-9.19-5.57 7.23-16.38 7.23-16.38 1.94-2.5 12.7-7.83 16.14-9.3l.9-.4c.33-.11.98-5.5 1.43-9.67-2.68-1.45-5.6-3.75-8.68-7.19-1.8-2-3.32-4.98-4.54-8.35 0 0-.38-.26-.97-1.1-1.36.2-2.86-.3-3.88-1.27-1.47-1.43-2.03-3.6-1.96-5.66a6.22 6.22 0 0 1 1.15-3.72c.12-.15.25-.29.4-.41l-.32-1.46c-.66-3.25-3.04-14.84 1.34-20.93C59.22 15.66 79.69 7.58 86.83 9.8c1.94.6 8.89 3.29 10.26 4.84a8.49 8.49 0 0 1 1.54 2.51c.08.2 3.55 3.3 4.82 4.81 1.84 2.2 1.61 6.46 1.64 9.23.03 3.09-.2 6.17-.58 9.24-.14 1.11-.3 2.23-.48 3.35.32.21.6.47.85.77a6.23 6.23 0 0 1 1.15 3.72c.07 2.06-.49 4.24-1.96 5.66a4.8 4.8 0 0 1-3.6 1.3 29.83 29.83 0 0 1-2.97 7.47zm-37.49 53.05H100a5 5 0 0 1 5 5v24.75a5 5 0 0 1-5 5H60a5 5 0 0 1-5-5v-24.75a5 5 0 0 1 5-5zm.75 21.78v3.99c0 1.1.89 2 2 2h34.46a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-1.98H62.76a2 2 0 0 0-2 1.99zm0-13.08v3.99c0 1.1.89 1.99 2 1.99h34.46a2 2 0 0 0 2-2v-3.98a2 2 0 0 0-2-2H62.76a2 2 0 0 0-2 2z\" class=\"color1\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/subject-math.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path fill=\"#9B9B9B\" fill-rule=\"evenodd\" d=\"M34 20.6a5 5 0 0 1 5-5h81.5a5 5 0 0 1 5 5v118.2a5 5 0 0 1-5 5H39a5 5 0 0 1-5-5V20.6zm13.7 11.7v20.5a3 3 0 0 0 3 3h58.1a3 3 0 0 0 3-3V32.3a3 3 0 0 0-3-3h-58a3 3 0 0 0-3 3zm0 37.7v8.4a4 4 0 0 0 4 4h8.5a4 4 0 0 0 4-4V70a4 4 0 0 0-4-4h-8.5a4 4 0 0 0-4 4zm23.8 0v8.4a4 4 0 0 0 4 4H84a4 4 0 0 0 4-4V70a4 4 0 0 0-4-4h-8.5a4 4 0 0 0-4 4zm-23.8 47.6v8.4a4 4 0 0 0 4 4h8.5a4 4 0 0 0 4-4v-8.4a4 4 0 0 0-4-4h-8.5a4 4 0 0 0-4 4zm47.6 0v8.4a4 4 0 0 0 4 4h8.5a4 4 0 0 0 4-4v-8.4a4 4 0 0 0-4-4h-8.5a4 4 0 0 0-4 4zm-23.8 0v8.4a4 4 0 0 0 4 4H84a4 4 0 0 0 4-4v-8.4a4 4 0 0 0-4-4h-8.5a4 4 0 0 0-4 4zM47.7 93.8v8.4a4 4 0 0 0 4 4h8.5a4 4 0 0 0 4-4v-8.4a4 4 0 0 0-4-4h-8.5a4 4 0 0 0-4 4zm47.6 0v8.4a4 4 0 0 0 4 4h8.5a4 4 0 0 0 4-4v-8.4a4 4 0 0 0-4-4h-8.5a4 4 0 0 0-4 4zm-23.8 0v8.4a4 4 0 0 0 4 4H84a4 4 0 0 0 4-4v-8.4a4 4 0 0 0-4-4h-8.5a4 4 0 0 0-4 4zM95.3 70v8.4a4 4 0 0 0 4 4h8.5a4 4 0 0 0 4-4V70a4 4 0 0 0-4-4h-8.5a4 4 0 0 0-4 4z\" class=\"color1\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/lrarrow.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path fill=\"none\" fill-opacity=\"0\" stroke=\"#000\" stroke-width=\"8.5\" d=\"M89 23.5H12.2M24.6 5 6 23.5 24.6 42M11 23.5h76.8M75.4 5 94 23.5 75.4 42\"/>\n    <path d=\"M70 65H30v60h40V65Zm0-10h10v80H20V55h50Z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/update.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"nonzero\" class=\"update\">\n    <path fill=\"#979797\" d=\"M19.7 58.5A61.9 61.9 0 0 1 140.9 66c.2 2-.6 3.8-2 5-1 .7-1.9 1-3 1.4a19.8 19.8 0 0 1-10-.7c-2.6-1-4.4-2.5-5-5.1a42 42 0 0 0-82.1-3.1l-19.1-5z\" class=\"Path\"/>\n    <path fill=\"#9B9B9B\" d=\"m147.2 47.9 12.6 12.6L127.3 93 94.8 60.5l12.6-12.6 19.9 19.8z\" class=\"Path-4-Copy-2\"/>\n    <path fill=\"#979797\" d=\"M140.3 101.5A61.9 61.9 0 0 1 19.1 94c-.2-2 .6-3.8 2-5 1-.7 1.9-1 3-1.4a19.8 19.8 0 0 1 10 .7c2.6 1 4.4 2.5 5 5.1a42 42 0 0 0 82.1 3.1l19.1 5z\" class=\"Path\"/>\n    <path fill=\"#9B9B9B\" d=\"M12.8 112.1.2 99.5 32.7 67l32.5 32.5-12.6 12.6-19.9-19.8z\" class=\"Path-4-Copy-2\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/user-admin.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" class=\"user-admin\">\n    <circle cx=\"79.8\" cy=\"48.9\" r=\"25.9\" class=\"Oval-8\"/>\n    <path d=\"M41 91.5c0-11 9-20 20-20h37.5c11 0 20 9 20 20v31c0 11-9 20-20 20 0 0-12.7 7-19.1 7-6.1 0-18.3-7-18.3-7-11 0-20-9-20-20v-31z\" class=\"Rectangle-3\"/>\n    <path fill-rule=\"nonzero\" d=\"M22.8 28c.2 33.2 3.4 55 11.2 72 8.3 18.3 22.4 32.5 46 45.3 23.7-12.8 37.9-27 46.1-45.3 7.8-17.1 11-38.8 11.2-72L79.9 13.4 22.9 28zm-13-10 70-18 70.4 18c.8 73.8-10.2 111.8-70.3 142-59.9-30.2-71-68.2-70-142z\" class=\"Fill-1\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/user-staff.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"#9B9B9B\" fill-rule=\"evenodd\" class=\"user-staff\">\n    <circle cx=\"80\" cy=\"39.6\" r=\"33.6\" class=\"Oval-8\"/>\n    <path d=\"M29.8 88.9c0-11 9-20 20-20h60.4c11 0 20 9 20 20v43.9c0 11-9 20-20 20H49.8c-11 0-20-9-20-20v-44zM79 83v16h38V83H79z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/logbase.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <g fill=\"none\" fill-rule=\"evenodd\" class=\"sub\">\n    <path fill=\"#000\" fill-rule=\"nonzero\" d=\"M85.5 35h40v60h-40V35zm0-10h-10v80h60V25h-50zm-51 78.5h20v20h-20v-20zm-10-10v40h40v-40h-40z\" class=\"Combined-Shape\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/bar.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path d=\"M67 65H27v60h40V65Zm0-10h10v80H17V55h50Z\"/>\n    <path fill=\"none\" fill-opacity=\"0\" stroke=\"#000\" stroke-width=\"8.5\" d=\"M0 23.5h95\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/vec.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path fill=\"none\" fill-opacity=\"0\" stroke=\"#000\" stroke-width=\"8.5\" d=\"M0 23.5h86.8M74.4 5 93 23.5 74.4 42\"/>\n    <path d=\"M67 65H27v60h40V65Zm0-10h10v80H17V55h50Z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/broom.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n  <path d=\"m153.7 18 52.5 134.7c1.7 4 4 5.9 7.3 7a19 19 0 0 0 11 .2c3.7-1 6.7-3.2 8-5s1.7-2.5.5-5.2L181.6 18h-28zm94.1 120.1 1.9 4.8v-.2a23.8 23.8 0 0 1-2.6 22.9 32 32 0 0 1-17.7 11.6 36.2 36.2 0 0 1-22-.6 30.7 30.7 0 0 1-17.8-16.9l-1.8-4.6c-31.3 19.8-42.4 42-35.3 68.9l6 22.1c74.3-5.3 139.9-23.8 199.7-51.6A119.7 119.7 0 0 0 320 160a184.3 184.3 0 0 0-72.2-21.9zm120.6 71.6a583.2 583.2 0 0 1-205.6 54.2 600.5 600.5 0 0 1 6 28.5c89.5-10.1 163-26.3 217.7-48.8a424.2 424.2 0 0 0-18.1-34zm26 50.1c-57 23.8-132 40.1-222.7 50.3 9 61.3 8 136.6-43.7 169.9 16.3 0 31.9-.2 47-.5 17.8-25.5 31.2-66.2 32-86.1 8.3 16.8 3.3 59.3-5.4 85.4l8.2-.3c11.8-12.4 11.7-28.6 14.7-47.2 3.3 14.9 7 33 9.5 46.1 11.3-.6 22.1-1.3 32.6-2.2 16.4-20.3 21.6-49.6 18.6-85.5 4.2 29.1 9.1 62.2 11.9 82.6a771.7 771.7 0 0 0 27.8-3.6c5-18.8-4.1-48.5-2-69.6 11 43.1 22.2 55.5 33.3 64 5.4-1 10.7-2.2 15.7-3.4-4.7-14 1.6-22.5 1.2-40a51 51 0 0 0 24.4 32.8c6.5-2.1 12.7-4.3 18.5-6.7-10.5-6.6-10-26.4-12.3-43 6 21.8 14.4 32.5 24 37.9 29.2-13.8 48.7-31.6 60.4-53.7-9-3.8-18.6-13-28-20a72.5 72.5 0 0 0 32.3 10.9c1.4-3.2 2.6-6.5 3.6-9.9-56.3-19.5-80-64-101.6-108.2z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/rotate-right.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M105 53v93H12V53h93ZM95 63H22v73h73V63ZM85 12c34 0 50 14 52 46l8-8 7 7-20 20-20-20 7-7 8 8c-1-26-13-36-42-36V12Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/larrow.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 160\">\n  <g fill=\"#000\" fill-rule=\"nonzero\">\n    <path fill=\"none\" fill-opacity=\"0\" stroke=\"#000\" stroke-width=\"8.5\" d=\"M99 23.5H12.2M24.6 5 6 23.5 24.6 42\"/>\n    <path d=\"M72 65H32v60h40V65Zm0-10h10v80H22V55h50Z\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/preview.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 160\">\n  <path fill=\"#4C4C4C\" fill-rule=\"evenodd\" d=\"M8 6h114v69.758a83.063 83.063 0 0 0-14-3.33V20H22v104h8.488c3.684 5.183 8.086 9.887 13.074 14H8V6Z\" clip-rule=\"evenodd\"/>\n  <path fill=\"#4C4C4C\" fill-rule=\"evenodd\" d=\"M41.9 113.459C51.688 94.665 72.536 81.9 96.513 81.9s44.824 12.765 54.611 31.559l.877 1.734-.877 1.696c-9.783 18.809-30.624 31.598-54.611 31.598s-44.829-12.789-54.611-31.598l-.877-1.696.877-1.734Zm54.611 24.072c12.337 0 22.338-10.001 22.338-22.338 0-12.336-10.001-22.337-22.338-22.337-12.336 0-22.337 10.001-22.337 22.337 0 12.337 10 22.338 22.337 22.338Z\" clip-rule=\"evenodd\"/>\n  <circle cx=\"96.999\" cy=\"115.105\" r=\"9.452\" fill=\"#4C4C4C\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/export.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 161\">\n  <path fill=\"#4C4C4C\" d=\"m115.8 99.9 7 7 26.5-26.4L123 54l-7 7 19.3 19.5-19.4 19.4Z\"/>\n  <path fill=\"#4C4C4C\" d=\"M69.9 85.5h72.7v-10H69.9v10Z\"/>\n  <path fill=\"#4C4C4C\" d=\"M106.5 63.5V34h-93v93h93V97.5h-10V117h-73V44h73v19.5h10Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/facebook.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 160\">\n  <path fill=\"#fff\" d=\"M0 0h160v160H0z\"/>\n  <path fill=\"#000\" d=\"M139.5 12c2 0 3.8.7 5.3 2.2a7.2 7.2 0 0 1 2.2 5.3v120c0 2-.7 3.8-2.2 5.3a7.2 7.2 0 0 1-5.3 2.2h-34.3V94.7h17.5l2.6-20.4h-20.1v-13c0-3.3.7-5.7 2-7.4 1.4-1.6 4-2.4 8-2.4l10.8-.1V33.2c-3.7-.5-9-.8-15.6-.8-8 0-14.4 2.3-19.2 7a26.6 26.6 0 0 0-7.1 19.9v15H66.5v20.4h17.6V147H19.5c-2 0-3.8-.7-5.3-2.2a7.2 7.2 0 0 1-2.2-5.3v-120c0-2 .7-3.8 2.2-5.3a7.2 7.2 0 0 1 5.3-2.2h120Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/instagram.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 160\">\n  <path fill=\"#fff\" d=\"M0 0h160v160H0z\"/>\n  <path fill=\"#000\" d=\"M79.5 12c-18.34 0-20.63.08-27.83.4-7.19.34-12.09 1.47-16.39 3.14a32.99 32.99 0 0 0-11.95 7.79 32.99 32.99 0 0 0-7.79 11.95c-1.67 4.31-2.8 9.2-3.14 16.39-.33 7.2-.4 9.5-.4 27.83 0 18.34.08 20.63.4 27.83.34 7.19 1.47 12.09 3.14 16.39a33 33 0 0 0 7.79 11.95 33.08 33.08 0 0 0 11.95 7.79c4.31 1.66 9.21 2.8 16.39 3.14 7.2.33 9.5.4 27.83.4 18.34 0 20.63-.08 27.83-.4 7.19-.34 12.09-1.48 16.39-3.14a33.09 33.09 0 0 0 11.95-7.79 33.03 33.03 0 0 0 7.79-11.95c1.66-4.31 2.8-9.21 3.14-16.39.33-7.2.4-9.5.4-27.83 0-18.34-.08-20.63-.4-27.83-.34-7.19-1.48-12.09-3.14-16.39a33.09 33.09 0 0 0-7.79-11.95 32.93 32.93 0 0 0-11.95-7.79c-4.31-1.67-9.21-2.8-16.39-3.14-7.2-.33-9.5-.4-27.83-.4Zm0 12.15c18.02 0 20.17.09 27.28.4 6.58.3 10.16 1.4 12.53 2.33a20.94 20.94 0 0 1 7.78 5.05 20.9 20.9 0 0 1 5.04 7.76c.92 2.38 2.03 5.95 2.32 12.53.32 7.13.4 9.26.4 27.29 0 18.02-.09 20.16-.42 27.28-.34 6.58-1.44 10.15-2.37 12.53a21.5 21.5 0 0 1-5.06 7.77 21.08 21.08 0 0 1-7.75 5.05c-2.37.92-6 2.02-12.58 2.32-7.16.32-9.27.4-27.33.4-18.05 0-20.17-.09-27.33-.42-6.58-.34-10.21-1.44-12.58-2.37-3.2-1.26-5.4-2.7-7.76-5.06a20.47 20.47 0 0 1-5.06-7.76c-.93-2.36-2.02-5.99-2.36-12.57-.25-7.09-.34-9.27-.34-27.25 0-17.97.09-20.17.34-27.34.34-6.58 1.43-10.2 2.36-12.57 1.18-3.2 2.7-5.4 5.06-7.76a19.9 19.9 0 0 1 7.76-5.05c2.37-.94 5.91-2.04 12.5-2.37 7.17-.25 9.28-.34 27.33-.34l.25.17-.01-.02Zm0 20.69a34.66 34.66 0 1 0 0 69.31 34.66 34.66 0 0 0 0-69.31Zm0 57.16a22.49 22.49 0 1 1 0-45 22.49 22.49 0 1 1 0 45Zm44.13-58.53a8.1 8.1 0 1 1-16.2-.01 8.1 8.1 0 0 1 16.2 0Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/pinterest.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 160\">\n  <path fill=\"#fff\" d=\"M0 0h160v160H0z\"/>\n  <path fill=\"#000\" d=\"M150 79.5a69 69 0 0 1-9.46 35.39 70.2 70.2 0 0 1-25.66 25.66A68.92 68.92 0 0 1 79.49 150c-6.8 0-13.46-.98-20.01-2.94 3.6-5.69 6-10.7 7.16-15.05.55-2.09 2.2-8.54 4.95-19.37 1.23 2.38 3.46 4.45 6.7 6.2a21.77 21.77 0 0 0 10.47 2.61c7.4 0 14.02-2.1 19.83-6.28 5.82-4.2 10.31-9.97 13.5-17.3 3.18-7.35 4.78-15.62 4.78-24.8 0-6.97-1.82-13.52-5.47-19.65-3.64-6.12-8.92-11.1-15.83-14.96-6.91-3.85-14.72-5.78-23.4-5.78-6.44 0-12.43.88-18 2.66a47.1 47.1 0 0 0-14.19 7.07 48.2 48.2 0 0 0-10 10.15 41.97 41.97 0 0 0-6.15 11.89 40.1 40.1 0 0 0-1.97 12.3c0 6.37 1.22 11.96 3.67 16.8 2.44 4.83 6.02 8.23 10.74 10.19 1.83.73 3 .12 3.48-1.84.13-.43.37-1.38.74-2.85.37-1.47.61-2.38.73-2.75a4.2 4.2 0 0 0-1-3.95C47.1 88.62 45.54 84 45.54 78.5c0-9.24 3.2-17.18 9.6-23.82 6.39-6.64 14.76-9.96 25.1-9.96 9.24 0 16.45 2.5 21.62 7.52 5.17 5.02 7.75 11.54 7.75 19.55 0 10.41-2.1 19.25-6.28 26.54-4.2 7.28-9.56 10.92-16.11 10.92-3.74 0-6.74-1.33-9-3.99-2.27-2.66-2.97-5.86-2.11-9.6.49-2.14 1.3-5 2.43-8.58 1.13-3.58 2.05-6.73 2.75-9.45.7-2.72 1.06-5.03 1.06-6.93 0-3.06-.83-5.6-2.48-7.62-1.66-2.03-4.01-3.03-7.07-3.03-3.8 0-7 1.74-9.64 5.23-2.63 3.48-3.95 7.83-3.95 13.03 0 4.47.77 8.2 2.3 11.2l-9.09 38.38c-1.04 4.28-1.43 9.7-1.19 16.25a70.3 70.3 0 0 1-30.57-25.8A68.36 68.36 0 0 1 9 79.5a69 69 0 0 1 9.45-35.39 70.2 70.2 0 0 1 25.66-25.66A68.93 68.93 0 0 1 79.5 9a69 69 0 0 1 35.39 9.45 70.2 70.2 0 0 1 25.66 25.66A68.92 68.92 0 0 1 150 79.5Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/tiktok.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 160\">\n  <path fill=\"#fff\" d=\"M0 0h160v160H0z\"/>\n  <path fill=\"#000\" d=\"m82.9 14.1 21.3-.1a34 34 0 0 0 9.6 22.8c6.1 6 14.8 8.8 23.2 9.7v22a58.6 58.6 0 0 1-31.8-10.3l-.1 47.7a40.8 40.8 0 0 1-39.7 39 41.2 41.2 0 0 1-28.2-72c9-7.8 21.7-11.6 33.6-9.3.1 8-.2 16.1-.2 24.2a19.2 19.2 0 0 0-16.5 2c-3.5 2.3-6.1 5.7-7.5 9.6-1.1 2.8-.8 5.8-.7 8.8 1.3 9 10 16.4 19.1 15.6 6.1 0 12-3.6 15.2-8.8 1-1.8 2.1-3.6 2.2-5.8.5-9.7.3-19.4.4-29.2V14Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/twitter.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 160\">\n  <path fill=\"#fff\" d=\"M0 0h160v160H0z\"/>\n  <path fill=\"#000\" d=\"M149.7 36.6a58.1 58.1 0 0 1-16.5 4.5 29 29 0 0 0 12.7-16 59.3 59.3 0 0 1-18.3 7 28.7 28.7 0 0 0-48.9 26.2 81.3 81.3 0 0 1-59.1-30 28.8 28.8 0 0 0 8.9 38.4c-4.6 0-9-1.3-13-3.5v.3c0 13.7 9.6 25.5 23 28.2a29.1 29.1 0 0 1-13 .5 28.8 28.8 0 0 0 27 20A57.5 57.5 0 0 1 10 124 81.5 81.5 0 0 0 54 137c52.9 0 81.7-43.8 81.7-81.7v-3.7A58 58 0 0 0 150 36.7l-.3-.1Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/notebook.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 161\">\n  <path fill=\"#4C4C4C\" fill-rule=\"evenodd\" d=\"M140 24.2H20v111a17 17 0 0 0 17 17h86a17 17 0 0 0 17-17v-111ZM40.8 50.3V64h77V50.3h-77Zm0 74.6v-13.7h77v13.7h-77Zm0-44.8v13.7h77V80.1h-77Z\" clip-rule=\"evenodd\"/>\n  <path fill=\"#4C4C4C\" d=\"M32.9 15.3a5 5 0 0 1 5-5H47a5 5 0 0 1 5 5v9.3a5 5 0 0 1-5 5h-9a5 5 0 0 1-5-5v-9.3Zm37.5 0a5 5 0 0 1 5-5h9.2a5 5 0 0 1 5 5v9.3a5 5 0 0 1-5 5h-9.2a5 5 0 0 1-5-5v-9.3Zm37.5 0a5 5 0 0 1 5-5h9.2a5 5 0 0 1 5 5v9.3a5 5 0 0 1-5 5H113a5 5 0 0 1-5-5v-9.3Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/key/enter.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 160 160\">\n  <path d=\"M84.2 29.3a5 5 0 0 1 5-5h38.4a5 5 0 0 1 5 5v63.9a5 5 0 0 1-5 5H43l23.7 25.2a5 5 0 1 1-7.2 6.8L27.7 96.6a5 5 0 0 1 .2-7l31.6-30.4a5 5 0 1 1 7 7.2L43.8 88.2h78.8v-54H89.3a5 5 0 0 1-5-5Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/globe.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 161\">\n  <path fill=\"#1E88E5\" d=\"M142 80.5a62 62 0 0 1-62 62 53 53 0 0 1-3-.1 61.7 61.7 0 0 1-31.2-10.2 62 62 0 0 1-26.9-41 62 62 0 0 1-.9-10.7 61.8 61.8 0 0 1 74.4-60.8 60 60 0 0 1 8 2.3 62 62 0 0 1 23 14.1A61.8 61.8 0 0 1 142 80.5z\"/>\n  <path fill=\"#81C784\" d=\"M133.4 112A62 62 0 0 1 80 142.4a53 53 0 0 1-3-.1 894 894 0 0 0-6.8-1.8c-7.1-2-15.3-5.5-20.7-10.4-4.4-4.2-7-9.3-5.4-15.3 2-7.5 10.2-11.6 17.8-13.2 7-1.4 14.5-1.5 21.1-4.2a29 29 0 0 0 1.7-.8c7-3.4 12.3-12.3 8.5-19a9 9 0 0 0-.8-1.1c-3-4.1-8.6-6-12.2-9.7-7.5-7.8-4-21 2-30.1A40 40 0 0 1 93.8 25a30 30 0 0 1 6.6-3.2 62 62 0 0 1 22.8 14.2 165 165 0 0 1 10.1 75.8zM41.8 57.6c-7.3-1.2-13.7 8.5-9.7 14.8 1.1 1.8 2.8 3.2 3.7 5 2.1 4.5-1.1 10-5.5 12a23.2 23.2 0 0 1-11.4 1.6 62 62 0 0 1-.9-10.6c0-16.8 6.7-32 17.5-43.1 5.2 5.2 7.7 13 6.3 20.3z\"/>\n  <path fill=\"#81C784\" d=\"M142 80.5a62 62 0 0 1-65 62A61.7 61.7 0 0 1 45.8 132a78 78 0 0 0 3.7-2A96.4 96.4 0 0 0 83 97.5a98 98 0 0 0 2.8-5 97.6 97.6 0 0 0 8-67.5 83 83 0 0 0-1.4-5.3 60 60 0 0 1 8 2.2 62 62 0 0 1 23 14.2A61.8 61.8 0 0 1 142 80.5z\" opacity=\".5\" style=\"mix-blend-mode:screen\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/translation.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 161\">\n  <path fill=\"#BBDEFB\" d=\"M76.2 47.7h83v103.5h-83z\"/>\n  <path fill=\"#000\" d=\"m128.4 79.8 3.4-2c3.8 3.7 8.5 8.8 10.7 12.2l-3.6 2.3c-2.1-3.4-6.6-8.6-10.5-12.5M115.7 90l4.2 1a49 49 0 0 1-9.1 15.1 25 25 0 0 0-3.7-2.4c3.6-3.4 6.7-8.6 8.6-13.7m-.2 5.9h26.2v3.8H114zm-8.4 11.4h36.7v3.8H107zm16.3-10h4.3v6.7c0 8.2-2.2 17.7-20.2 23.5-.4-1-1.5-2.7-2.2-3.5 16.6-5.2 18.1-13.4 18.1-20zm4 12a21.9 21.9 0 0 0 17.5 14.3 15 15 0 0 0-2.8 3.8 25.2 25.2 0 0 1-18.4-17.2zM111 90.8l-1.4-4.2c1-.2 2.1-1 3.4-2.2 1.4-1.2 5.9-5.8 8.9-10.5l4.5 1.5c-3.9 5.1-8.5 10-12.6 13.1v.1s-2.8 1.3-2.8 2.2m0 0v-3.3l2.5-1.5 23.2-1.3c.2 1.2.5 2.8.8 3.7a183.1 183.1 0 0 0-26.5 2.4m-15.7-13 2.9-2.7c3.1 2.6 7 6.3 9 8.7l-3 3a70 70 0 0 0-8.9-9m3.1 48.3-.7-4 1.1-1.8 9.9-6.9c.4 1.2 1 2.9 1.5 3.7-9.4 6.9-10.9 8-11.8 9M91 92.4h10.8v4.2H91zm7.4 33.7c-.4-.9-1.5-2.4-2.2-3 1-.9 2.9-2.8 2.9-5.7v-25h4v28.2s-4.7 3.8-4.7 5.5\"/>\n  <path fill=\"#fff\" stroke=\"#BBDEFB\" stroke-width=\"8.1\" d=\"M4.8 13.8h75v95.4h-75z\"/>\n  <path fill=\"#000\" d=\"m22.7 83.8 16-47.7h6.9l16.1 47.7h-6.4L47 57a293 293 0 0 1-2.5-7.9 896 896 0 0 1-2.3-8.1h-.3a327 327 0 0 1-2.3 8.1 294 294 0 0 1-2.4 8l-8.4 26.6zM31 69.2v-4.8h22v4.8z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/icon/arrow-with-line-right.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <g fill=\"#4C4C4C\" fill-rule=\"evenodd\" clip-path=\"url(#a)\" clip-rule=\"evenodd\">\n    <path d=\"m95.24 27.38 55.46 55.46-21.62 19.95-55.46-55.47z\"/>\n    <path d=\"m150.7 82.84-57.65 53.18-20.8-20.8 57.65-53.17z\"/>\n    <path d=\"M114.2 96.47 12.2 94.41l.58-28.8 101.99 2.05z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <path fill=\"#fff\" d=\"M.52.68H161v160H.52z\"/>\n    </clipPath>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/eyedropper.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <g fill=\"#4C4C4C\" clip-path=\"url(#a)\">\n    <path fill-rule=\"evenodd\" d=\"M145.7 21.5c6 6 6 15.6 0 21.6l-33.3 33.3-28-28L117.5 15c3-2.9 6.8-4.5 10.9-4.5s7.9 1.6 10.8 4.5z\" clip-rule=\"evenodd\"/>\n    <path d=\"M79.8 53 31.6 101c-4.4 4.5-5 8.9-5.5 14.1-.7 6.2-1.5 13.4-9.1 23-1 1.3-.4 3.6.8 4.8.9.9 3 2 4.7.8l.7-.6a40.7 40.7 0 0 1 22.2-8.4c5.3-.6 9.7-1.1 14.2-5.7L107.8 81l-5.6-5.6L54 123.5c-2.6 2.5-4.4 2.7-10 3.4l-.8.1a51 51 0 0 0-12 2.8c1.6-4.6 2.3-8.6 2.7-12.2l.1-1c.7-5.7.9-7.4 3.3-9.8l48.2-48.2z\"/>\n    <path d=\"m77.5 40.4 42.8 42.8-6 6-42.8-42.7z\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <path fill=\"#fff\" d=\"M.6.1h160v160H.6z\"/>\n    </clipPath>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/shape/translation.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <path fill=\"#5D5D5D\" fill-rule=\"evenodd\" d=\"M159.8 47.4h-83v103.5h83zm-27.4 30.1-3.4 2a98 98 0 0 1 4.7 5l-16 .9c3.1-3 6.4-6.6 9.3-10.4l-4.5-1.5c-3 4.6-7.5 9.2-8.9 10.4-1.3 1.3-2.4 2-3.4 2.2l1.4 4.2c1.6-.5 4.1-.8 25.1-2.3 1.1 1.5 2.1 2.8 2.8 4l3.6-2.4c-2.2-3.3-6.9-8.4-10.7-12.1m-11.9 13.2-4.2-1c-1.9 5-5 10.3-8.5 13.6a25 25 0 0 1 3.6 2.5 41 41 0 0 0 4.8-6.4h7.9v4.2a27 27 0 0 1-.2 3.3h-16.2v3.9H123c-1.8 4.7-6.2 9.4-17.1 12.9.7.8 1.8 2.5 2.2 3.4 10.5-3.3 15.6-8 18-12.8a25 25 0 0 0 16.6 12.8 15 15 0 0 1 2.8-3.9 22 22 0 0 1-16.7-12.4h15.6v-3.9h-16.2l.2-3.2v-4.3h14v-3.8h-24a52 52 0 0 0 2.1-4.9m-21.7-16L96 77.3c3 2.8 7 6.6 8.7 9.1l3-3.1c-1.9-2.4-5.8-6-8.9-8.6m.2 51c-.4-.8-1.5-2.4-2.2-3 1-.8 2.9-2.8 2.9-5.6V96.2h-8V92h12v25l5.6-4c.4 1.1 1 2.8 1.5 3.7l-2.6 2c-7 5-8.4 6-9.2 7\" clip-rule=\"evenodd\"/>\n  <path fill=\"#5D5D5D\" fill-rule=\"evenodd\" d=\"M76.3 17.5H9.5v87.3h66.8zm-75-8.1v103.5h83V9.4z\" clip-rule=\"evenodd\"/>\n  <path fill=\"#5D5D5D\" d=\"m23.3 83.4 16-47.6h7l16 47.6H56l-8.3-26.6a293 293 0 0 1-2.5-8 896 896 0 0 1-2.3-8h-.3a327 327 0 0 1-2.2 8 294 294 0 0 1-2.5 8l-8.4 26.6zm8.4-14.5V64h22v4.8z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/amazon-fire.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 161\">\n  <circle cx=\"80\" cy=\"80.48\" r=\"64.05\" fill=\"#333\"/>\n  <path fill=\"#F90\" d=\"M110.92 109.84c-34.72 16.53-56.27 2.7-70.06-5.7-.86-.52-2.3.13-1.05 1.58 4.6 5.57 19.66 19 39.32 19 19.67 0 31.37-10.74 32.83-12.6 1.46-1.87.43-2.89-1.04-2.28zm9.75-5.38c-.93-1.21-5.67-1.44-8.65-1.07-2.98.35-7.47 2.18-7.08 3.27.2.41.61.23 2.66.04 2.06-.2 7.82-.93 9.02.64 1.2 1.58-1.84 9.1-2.4 10.32-.53 1.22.21 1.53 1.22.72 1-.8 2.8-2.9 4-5.86 1.2-2.98 1.94-7.14 1.23-8.06\"/>\n  <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M87.58 76.13c0 4.33.1 7.95-2.09 11.8-1.77 3.13-4.57 5.05-7.7 5.05-4.27 0-6.76-3.25-6.76-8.06 0-9.48 8.5-11.2 16.55-11.2zm11.22 27.12c-.74.66-1.8.7-2.63.27-3.7-3.07-4.35-4.5-6.39-7.42-6.1 6.23-10.42 8.1-18.34 8.1-9.36 0-16.66-5.78-16.66-17.35 0-9.03 4.9-15.18 11.87-18.19 6.04-2.66 14.48-3.13 20.93-3.87v-1.44c0-2.64.2-5.77-1.35-8.06-1.36-2.05-3.96-2.9-6.25-2.9-4.24 0-8.03 2.18-8.95 6.7-.19 1-.92 1.98-1.93 2.03l-10.8-1.16c-.9-.2-1.9-.94-1.66-2.34 2.5-13.08 14.31-17.02 24.9-17.02 5.4 0 12.48 1.43 16.76 5.54 5.41 5.05 4.9 11.8 4.9 19.14v17.34c0 5.21 2.16 7.5 4.2 10.32.71 1 .87 2.2-.04 2.96-2.27 1.89-6.3 5.41-8.53 7.38z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/social-tiktok.svg","text":"a<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <path fill=\"#000\" d=\"M80 150.5a70.5 70.5 0 1 0 0-141 70.5 70.5 0 0 0 0 141\"/>\n  <path fill=\"#25F4EE\" d=\"M70.65 69.92V66.1a29 29 0 0 0-3.91-.29 29 29 0 0 0-16.64 52.8 28.84 28.84 0 0 1-7.7-19.77 28.9 28.9 0 0 1 28.25-28.92z\"/>\n  <path fill=\"#25F4EE\" d=\"M71.33 112.19c7.14 0 13.05-5.76 13.32-12.84l.06-63.12h11.45l-.02-.1a22 22 0 0 1-.37-4H80l-.03 63.21a13.26 13.26 0 0 1-19.38 11.24c2.4 3.34 6.32 5.6 10.74 5.6zm46.38-54.41v-3.7a21.8 21.8 0 0 1-11.95-3.56 22.26 22.26 0 0 0 11.95 7.26\"/>\n  <path fill=\"#FE2C55\" d=\"M105.76 50.52a21.85 21.85 0 0 1-5.4-14.38h-4.3a22.08 22.08 0 0 0 9.7 14.38M66.74 81.47a13.45 13.45 0 0 0-13.35 13.37c0 5.1 2.98 9.52 7.2 11.74a13.17 13.17 0 0 1-2.51-7.73c0-7.31 5.94-13.26 13.26-13.26 1.36 0 2.67.22 3.9.61V70.1a29 29 0 0 0-3.9-.29l-.7.02h-.05l-.05 12.2a12.35 12.35 0 0 0-3.8-.57z\"/>\n  <path fill=\"#FE2C55\" d=\"m117.71 57.6-.07-.02v12.18c-8.19 0-15.78-2.7-21.97-7.14v32.22c0 16.01-12.93 28.95-28.93 28.95a28.79 28.79 0 0 1-16.64-5.18 28.95 28.95 0 0 0 21.24 9.27c16 0 29.02-13.03 29.02-29.03V66.8a37.5 37.5 0 0 0 21.95 7.05V58.08c-1.58 0-3.12-.17-4.6-.49\"/>\n  <path fill=\"#fff\" d=\"M95.77 94.84V62.8a37.5 37.5 0 0 0 21.94 7.06V57.59a21.95 21.95 0 0 1-11.95-7.06 21.98 21.98 0 0 1-9.62-14.4H84.59l-.03 63.22a13.23 13.23 0 0 1-23.98 7.23 13.26 13.26 0 0 1 6.15-25c1.37 0 2.68.23 3.92.62V69.84a29.06 29.06 0 0 0-28.35 29c0 7.64 2.96 14.59 7.8 19.77a28.85 28.85 0 0 0 16.63 5.27c16 0 29.03-13.03 29.03-29.03z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/social-facebook.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <path fill=\"#0866FF\" d=\"M150.56 80.48a70.5 70.5 0 1 0-87.53 68.42v-46.87H48.49V80.48h14.54V71.2c0-24 10.86-35.12 34.42-35.12 4.46 0 12.17.88 15.32 1.75v19.53a90.56 90.56 0 0 0-8.14-.26c-11.56 0-16.03 4.38-16.03 15.76v7.62h23.03l-3.96 21.55H88.6v48.43a70.5 70.5 0 0 0 61.96-69.98z\"/>\n  <path fill=\"#fff\" d=\"m107.67 102.03 3.96-21.55H88.6v-7.62c0-11.38 4.47-15.76 16.03-15.76 3.58 0 6.48.09 8.14.26V37.83c-3.15-.87-10.86-1.75-15.33-1.75-23.55 0-34.41 11.12-34.41 35.12v9.28H48.49v21.55h14.54v46.87a70.6 70.6 0 0 0 17.03 2.08c2.89 0 5.74-.18 8.54-.51v-48.44z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/download.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M80 50a4 4 0 0 1 4 4v26a8 8 0 0 1-8 8H20a8 8 0 0 1-8-8V54a4 4 0 0 1 8 0v26h56V54a4 4 0 0 1 4-4Z\"/>\n  <path fill=\"#373737\" d=\"M47.94 7.001a4 4 0 0 1 4 3.999v38.15l13.173-13.16a4 4 0 0 1 5.655 5.66l-22.85 22.828-22.808-22.83a4.001 4.001 0 0 1 5.66-5.655l13.17 13.182V11a4 4 0 0 1 4-4Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/social-instagram.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <mask id=\"a\" width=\"134\" height=\"134\" x=\"13\" y=\"13\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:luminance\">\n    <path fill=\"#fff\" d=\"M80.06 25.962c17.756 0 19.859.067 26.872.387 6.484.296 10.005 1.378 12.348 2.29 3.106 1.207 5.32 2.646 7.647 4.973s3.769 4.542 4.973 7.647c.912 2.343 1.994 5.864 2.29 12.348.32 7.013.387 9.115.387 26.873 0 17.757-.067 19.859-.387 26.871-.296 6.485-1.378 10.006-2.29 12.349-1.207 3.105-2.646 5.32-4.973 7.647s-4.542 3.769-7.647 4.973c-2.343.912-5.864 1.994-12.348 2.29-7.013.319-9.116.386-26.873.386s-19.859-.066-26.872-.386c-6.484-.296-10.005-1.378-12.348-2.29-3.105-1.208-5.32-2.647-7.647-4.973s-3.769-4.542-4.973-7.647c-.912-2.343-1.994-5.864-2.29-12.349-.32-7.012-.386-9.115-.386-26.871 0-17.757.066-19.86.386-26.873.296-6.484 1.378-10.005 2.29-12.348 1.207-3.106 2.646-5.32 4.973-7.647s4.542-3.77 7.647-4.974c2.343-.911 5.864-1.993 12.348-2.289 7.013-.317 9.116-.387 26.872-.387m0-11.98c-18.061 0-20.326.077-27.419.4-7.08.322-11.912 1.447-16.141 3.091-4.374 1.7-8.081 3.974-11.778 7.671s-5.973 7.404-7.671 11.778c-1.645 4.23-2.77 9.065-3.092 16.141-.322 7.093-.4 9.359-.4 27.419s.078 20.325.4 27.418c.322 7.079 1.448 11.912 3.092 16.141 1.7 4.374 3.974 8.081 7.67 11.778 3.698 3.697 7.408 5.971 11.779 7.671 4.23 1.645 9.065 2.769 16.141 3.092 7.093.322 9.358.399 27.418.399s20.326-.077 27.419-.399c7.079-.323 11.911-1.448 16.141-3.092 4.374-1.701 8.081-3.974 11.778-7.671s5.97-7.407 7.671-11.778c1.644-4.229 2.769-9.065 3.091-16.141.323-7.093.4-9.358.4-27.418s-.077-20.326-.4-27.419c-.322-7.079-1.447-11.911-3.091-16.14-1.701-4.375-3.974-8.082-7.671-11.779s-7.407-5.97-11.778-7.67c-4.23-1.645-9.065-2.77-16.141-3.092-7.092-.323-9.358-.4-27.419-.4m0 32.352c-18.86 0-34.149 15.288-34.149 34.148S61.2 114.63 80.06 114.63s34.149-15.288 34.149-34.148S98.92 46.334 80.06 46.334m0 56.316c-12.242 0-22.168-9.923-22.168-22.168s9.926-22.167 22.167-22.167 22.168 9.923 22.168 22.167-9.926 22.168-22.168 22.168m35.496-65.645a7.98 7.98 0 0 0-7.979 7.98 7.98 7.98 0 0 0 7.979 7.98 7.98 7.98 0 0 0 7.981-7.98 7.98 7.98 0 0 0-7.981-7.98\"/>\n  </mask>\n  <g mask=\"url(#a)\">\n    <path fill=\"url(#b)\" d=\"M-23.856-23.434h207.492v207.492H-23.856z\"/>\n  </g>\n  <defs>\n    <linearGradient id=\"b\" x1=\"134.493\" x2=\"23.263\" y1=\"137.963\" y2=\"14.683\" gradientUnits=\"userSpaceOnUse\">\n      <stop stop-color=\"#F9CE34\"/>\n      <stop offset=\".5\" stop-color=\"#EE2A7B\"/>\n      <stop offset=\"1\" stop-color=\"#6228D7\"/>\n    </linearGradient>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/social-linkedin.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 161\">\n  <path fill=\"#0A66C2\" d=\"M123.3 123.78h-18.22V95.25c0-6.8-.12-15.56-9.48-15.56-9.5 0-10.95 7.41-10.95 15.07v29.03H66.43V65.1h17.5v8.02h.24a19.17 19.17 0 0 1 17.26-9.48c18.47 0 21.88 12.15 21.88 27.96zM45.87 57.08a10.58 10.58 0 1 1 0-21.15 10.58 10.58 0 0 1 0 21.15m9.1 66.72H36.74v-58.7h18.25zm77.42-104.8H27.58a8.97 8.97 0 0 0-9.08 8.87V133.1a8.98 8.98 0 0 0 9.08 8.88h104.8a9 9 0 0 0 9.12-8.88V27.85a9 9 0 0 0-9.11-8.87\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/social-pinterest.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <path fill=\"#fff\" d=\"M80.33 148.92a68.5 68.5 0 1 0 0-136.99 68.5 68.5 0 0 0 0 137\"/>\n  <path fill=\"#E61E27\" d=\"M54.9 144.01a65.22 65.22 0 0 1 1.46-22.43l6.85-29.54a40.66 40.66 0 0 1-1.97-11.82c0-9.59 4.63-16.44 11.9-16.44 5.05 0 8.74 3.51 8.74 10.28 0 2.14-.43 4.54-1.29 7.28l-3 9.84c-.6 1.89-.85 3.69-.85 5.23 0 6.85 5.22 10.7 11.9 10.7 11.9 0 20.38-12.33 20.38-28.34 0-17.81-11.64-29.2-28.85-29.2-19.18 0-31.34 12.5-31.34 29.88 0 7.02 2.14 13.53 6.34 17.98-1.37 2.31-2.83 2.74-5.05 2.74-6.85 0-13.36-9.67-13.36-22.86 0-22.78 18.24-40.93 43.84-40.93 26.88 0 43.75 18.76 43.75 41.87s-16.44 40.76-34.16 40.76c-7.02 0-13.19-3-17.47-8.4l-3.5 14.22a65.3 65.3 0 0 1-9.25 20.97 66.89 66.89 0 0 0 20.37 3.09 68.48 68.48 0 0 0 68.5-68.5 68.48 68.48 0 0 0-68.5-68.5 68.48 68.48 0 0 0-68.5 68.5 68.49 68.49 0 0 0 43.07 63.62\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/social-telegram.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <path fill=\"url(#a)\" d=\"M80 151a70.5 70.5 0 1 0 0-141 70.5 70.5 0 0 0 0 141\"/>\n  <path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M42 79.7q30.4-13.2 40.5-17.4c19.4-8 23.4-9.4 26-9.5.6 0 1.8.1 2.7.8a3 3 0 0 1 1 2c0 .4.2 1.7 0 2.6-1 11-5.5 37.7-7.8 50-1 5.2-2.9 7-4.7 7.1-4 .4-7.1-2.6-11-5.2-6.2-4-9.6-6.5-15.6-10.4-6.8-4.5-2.4-7 1.5-11 1-1.1 18.8-17.3 19.2-18.8 0-.2 0-.9-.3-1.2-.5-.4-1-.3-1.5-.2q-.9.3-29.3 19.4-4.2 2.9-7.5 2.8c-2.5 0-7.3-1.4-10.8-2.5-4.4-1.5-7.9-2.2-7.6-4.6q.3-1.9 5.2-3.8\" clip-rule=\"evenodd\"/>\n  <defs>\n    <linearGradient id=\"a\" x1=\"7059.6\" x2=\"7059.6\" y1=\"10\" y2=\"14005.4\" gradientUnits=\"userSpaceOnUse\">\n      <stop stop-color=\"#2AABEE\"/>\n      <stop offset=\"1\" stop-color=\"#229ED9\"/>\n    </linearGradient>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/social-twitter-x.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <path fill=\"#000\" d=\"m92 70.6 46.9-54.5h-11.1L87 63.4 54.5 16.1H17l49.2 71.6L17 144.9h11.1l43-50 34.4 50H143L92 70.6zM76.8 88.3l-5-7.1L32 24.5h17.1l32 45.7 5 7.2 41.6 59.5h-17l-34-48.6z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/social-whatsapp.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 160 161\">\n  <path fill=\"#25D366\" fill-rule=\"evenodd\" d=\"M132.8 28.8A67.3 67.3 0 0 0 18 76.3a67 67 0 0 0 9 33.6l-9.6 34.9 35.7-9.4a67.1 67.1 0 0 0 32.1 8.2 67.3 67.3 0 0 0 47.6-114.8zM85.2 132.3a55.8 55.8 0 0 1-28.4-7.8l-2-1.2-21.2 5.5 5.6-20.6L38 106a55.7 55.7 0 0 1-8.5-29.8 56 56 0 1 1 55.8 56zM116 90.4c-1.7-.8-10-4.9-11.5-5.5-1.5-.5-2.7-.8-3.8.9a96.3 96.3 0 0 1-5.3 6.6c-1 1.1-2 1.2-3.6.4s-7.1-2.6-13.5-8.3c-5-4.5-8.4-10-9.4-11.7s-.1-2.6.7-3.4l2.6-3c.8-1 1-1.6 1.6-2.7.6-1.2.3-2.1-.1-3l-5.2-12.5c-1.3-3.2-2.7-2.8-3.8-2.8a68 68 0 0 0-3.2-.1c-1.1 0-3 .4-4.5 2.1s-5.8 5.7-5.8 14 6 16.3 6.8 17.4c.9 1.1 11.9 18 28.7 25.3 4 1.8 7.2 2.8 9.6 3.6a23 23 0 0 0 10.6.7c3.2-.5 10-4.1 11.3-8s1.4-7.3 1-8c-.4-.7-1.6-1.1-3.2-2z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/social-youtube.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <path fill=\"red\" d=\"M152.88 43.9a19.03 19.03 0 0 0-13.44-13.43c-11.86-3.18-59.38-3.18-59.38-3.18s-47.52 0-59.37 3.18A19.03 19.03 0 0 0 7.25 43.9C4.08 55.75 4.08 80.48 4.08 80.48s0 24.73 3.17 36.58A19.03 19.03 0 0 0 20.7 130.5c11.85 3.17 59.37 3.17 59.37 3.17s47.52 0 59.37-3.17a19.03 19.03 0 0 0 13.44-13.44c3.18-11.85 3.18-36.58 3.18-36.58s0-24.73-3.18-36.58z\"/>\n  <path fill=\"#fff\" d=\"m64.35 104.04 40.82-23.56-40.82-23.56z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/store-apple.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <path fill=\"#51A8F3\" d=\"M115.6 143.4H45.1c-15.4 0-28-12.6-28-28V44.9c0-15.4 12.6-28 28-28h70.5c15.4 0 28 12.6 28 28v70.5c0 15.4-12.6 28-28 28\"/>\n  <path fill=\"#fff\" d=\"m66.9 46 43 74.5a6.3 6.3 0 0 0 8.5 2.3 6.3 6.3 0 0 0 2.3-8.6l-43-74.4a6.3 6.3 0 0 0-8.5-2.3 6.2 6.2 0 0 0-2.3 8.5\"/>\n  <path fill=\"#51A8F3\" d=\"m80.2 69.1 7.2-12.5 2.3 4s-5 2.7-3.5 19z\"/>\n  <path stroke=\"#51A8F3\" d=\"m80.2 69.1 7.2-12.5 2.3 4s-5 2.7-3.5 19l-6-10.5\"/>\n  <path fill=\"#fff\" d=\"m93.5 46-43 74.5a6.3 6.3 0 0 1-8.5 2.3 6.3 6.3 0 0 1-2.3-8.6l43-74.4a6.3 6.3 0 0 1 8.5-2.3 6.3 6.3 0 0 1 2.3 8.5\"/>\n  <path fill=\"#51A8F3\" stroke=\"#51A8F3\" stroke-width=\".8\" d=\"M45.7 103.9h14.4l-3.8 6.6s-2.3-8.6-12.3-3.6z\"/>\n  <path fill=\"#fff\" d=\"M123.3 103.9h-86a6.3 6.3 0 0 1-6.2-6.3 6.3 6.3 0 0 1 6.3-6.2h86a6.3 6.3 0 0 1 6.2 6.2c0 3.5-2.8 6.3-6.3 6.3\"/>\n  <path fill=\"#51A8F3\" stroke=\"#51A8F3\" d=\"M92.8 103.9h7.3l-7.2-12.5h-7s12 3.2 7 12.5Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/illustration/store-google.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 161 161\">\n  <path fill=\"url(#a)\" d=\"M96.58 54.51 25.95 14.14a2.84 2.84 0 0 0-2.87.03 2.83 2.83 0 0 0-1.43 2.46s.03 3.72.06 9.85l51.45 51.45z\"/>\n  <path fill=\"url(#b)\" d=\"m21.7 26.48.47 102.48 51.02-51.03z\"/>\n  <path fill=\"url(#c)\" d=\"m137 77.62-40.42-23.1-23.45 23.41L99.6 104.4l37.45-21.82a2.86 2.86 0 0 0 1.43-2.46 2.9 2.9 0 0 0-1.46-2.5\"/>\n  <path fill=\"url(#d)\" d=\"m22.14 128.96.08 15.63a2.8 2.8 0 0 0 1.43 2.46 2.85 2.85 0 0 0 2.87 0l73.1-42.63-26.46-26.46z\"/>\n  <defs>\n    <linearGradient id=\"a\" x1=\"21.65\" x2=\"96.59\" y1=\"77.95\" y2=\"77.95\" gradientUnits=\"userSpaceOnUse\">\n      <stop stop-color=\"#63BE6B\"/>\n      <stop offset=\".51\" stop-color=\"#5BBC6A\"/>\n      <stop offset=\"1\" stop-color=\"#4AB96A\"/>\n    </linearGradient>\n    <linearGradient id=\"b\" x1=\"21.69\" x2=\"73.16\" y1=\"128.95\" y2=\"128.95\" gradientUnits=\"userSpaceOnUse\">\n      <stop stop-color=\"#3EC6F2\"/>\n      <stop offset=\"1\" stop-color=\"#45AFE3\"/>\n    </linearGradient>\n    <linearGradient id=\"c\" x1=\"73.16\" x2=\"138.46\" y1=\"104.39\" y2=\"104.39\" gradientUnits=\"userSpaceOnUse\">\n      <stop stop-color=\"#FAA51A\"/>\n      <stop offset=\".39\" stop-color=\"#FAB716\"/>\n      <stop offset=\".74\" stop-color=\"#FAC412\"/>\n      <stop offset=\"1\" stop-color=\"#FAC80F\"/>\n    </linearGradient>\n    <linearGradient id=\"d\" x1=\"22.15\" x2=\"99.61\" y1=\"147.43\" y2=\"147.43\" gradientUnits=\"userSpaceOnUse\">\n      <stop stop-color=\"#EC3B50\"/>\n      <stop offset=\"1\" stop-color=\"#E7515B\"/>\n    </linearGradient>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/help.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <g fill=\"#373737\" opacity=\".88\">\n    <path d=\"M48 61a4.614 4.614 0 0 1 4.615 4.615A4.614 4.614 0 0 1 48 70.231a4.614 4.614 0 0 1-4.615-4.616A4.614 4.614 0 0 1 48 61ZM36.946 33.56c2.053-4.726 7.169-7.693 12.697-6.814l.536.098h.006c4.374.898 7.968 4.306 8.93 8.725 1.165 5.31-1.529 10.17-5.758 12.44h.001c-1.063.579-1.665 1.635-1.666 2.733v2.796a4 4 0 0 1-8 0v-2.796c0-4.079 2.25-7.807 5.846-9.761l.028-.015c1.344-.717 2.072-2.146 1.733-3.686l-.002-.011c-.263-1.208-1.328-2.302-2.719-2.587-2.013-.407-3.676.641-4.294 2.064a4 4 0 0 1-7.338-3.186Z\"/>\n    <path fill-rule=\"evenodd\" d=\"M48 6c23.191 0 42 18.809 42 42S71.191 90 48 90 6 71.191 6 48 24.809 6 48 6Zm0 8c-18.773 0-34 15.227-34 34s15.227 34 34 34 34-15.227 34-34-15.227-34-34-34Z\" clip-rule=\"evenodd\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/history.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M48.0557 6c23.2034 0 42 18.8288 42 42s-18.7966 41.9999-42 42c-2.2092 0-4-1.7909-4-4 0-2.2091 1.7908-4 4-4 18.7813-.0001 34-15.2432 34-34s-15.2187-33.9999-34-34c-2.2092 0-4-1.7909-4-4 0-2.2091 1.7908-4 4-4ZM24.4922 78.876c1.1094-1.9102 3.5575-2.5595 5.4678-1.4502.0283.0164.0575.0324.0859.0488 1.9133 1.104 2.5695 3.5504 1.4658 5.4639-1.1039 1.9135-3.5503 2.5697-5.4638 1.4658-.0351-.0202-.0705-.0402-.1055-.0605-1.9102-1.1095-2.5594-3.5576-1.4502-5.4678Z\"/>\n  <path fill=\"#373737\" d=\"M57.709 34.3916c1.7605-1.3345 4.2699-.989 5.6045.7715 1.3342 1.7605.9889 4.2691-.7715 5.6035l-11.2373 8.5166 4.0635 17.9482c.4875 2.1545-.8632 4.2964-3.0176 4.7842-2.1543.4875-4.2961-.8635-4.7842-3.0176L42.96 48.6533l.0029-.001c-.3318-1.4645.1332-3.1909 1.5488-4.2539l-.0019-.0009L57.709 34.3916ZM12.0625 63.4883c1.9135-1.1039 4.36-.4477 5.4639 1.4658.0163.0283.0324.0568.0488.085 1.1094 1.9103.4601 4.3583-1.4502 5.4677-1.9104 1.1095-4.3584.4602-5.4678-1.4502l-.0605-.1045c-1.1039-1.9135-.4478-4.3599 1.4658-5.4638ZM9.0059 43.9443c2.209.0033 3.9971 1.7969 3.9941 4.0059v.0996c.003 2.209-1.7851 4.0026-3.9941 4.0059-2.2092.0031-4.0028-1.786-4.0059-3.9952v-.121c.0032-2.2092 1.7967-3.9983 4.0059-3.9952ZM10.6572 26.9434c1.1095-1.9104 3.5574-2.5596 5.4678-1.4502 1.9103 1.1094 2.5596 3.5574 1.4502 5.4677-.0164.0282-.0325.0567-.0488.085-1.1039 1.9135-3.5504 2.5697-5.4639 1.4658-1.9136-1.1039-2.5697-3.5503-1.4658-5.4638l.0605-.1045ZM26.0479 11.5957c1.9135-1.1039 4.3599-.4477 5.4638 1.4658 1.1038 1.9135.4475 4.3599-1.4658 5.4639-.0284.0164-.0576.0324-.0859.0488-1.9103 1.1093-4.3584.46-5.4678-1.4502-1.1092-1.9102-.46-4.3583 1.4502-5.4678.035-.0203.0704-.0403.1055-.0605Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/info.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M52.784 63h2.757c1.615 0 2.918 1.738 2.918 3.892 0 2.153-1.303 3.892-2.918 3.892H41.919c-1.615 0-2.919-1.739-2.919-3.892C39 64.738 40.304 63 41.919 63H45V45.784h-1.858c-1.739 0-3.142-1.739-3.142-3.892C40 39.738 41.403 38 43.142 38h9.642v25ZM48 23.68a4.864 4.864 0 1 1 0 9.73 4.864 4.864 0 1 1 0-9.73Z\"/>\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M48 6c23.191 0 42 18.809 42 42S71.191 90 48 90 6 71.191 6 48 24.809 6 48 6Zm0 8c-18.773 0-34 15.227-34 34s15.227 34 34 34 34-15.227 34-34-15.227-34-34-34Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/logout.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M58 8a4 4 0 0 1 0 8H24v64h34a4 4 0 0 1 0 8H24a8 8 0 0 1-8-8V16a8 8 0 0 1 8-8h34Z\"/>\n  <path fill=\"#373737\" d=\"M69.128 31.216a4 4 0 0 1 5.656-.088L91.633 47.46l-16.796 16.9a4 4 0 1 1-5.674-5.638L75.843 52H39a4 4 0 0 1 0-8h37.57l-7.354-7.128a4 4 0 0 1-.088-5.656Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/mic.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#292C36\" d=\"M74.076 38.722a4 4 0 0 1 4 4c0 15.31-11.346 27.961-26.076 29.925V84.17a4 4 0 0 1-8 0V72.647c-14.73-1.962-26.076-14.614-26.076-29.925a4 4 0 0 1 8 0C25.926 55.006 35.826 64.914 48 64.914s22.076-9.908 22.076-22.192a4 4 0 0 1 4-4Z\"/>\n  <path fill=\"#292C36\" fill-rule=\"evenodd\" d=\"M48 8.17c8.125 0 14.702 6.578 14.702 14.703v21.25c0 8.124-6.577 14.702-14.702 14.702s-14.703-6.578-14.703-14.703V22.873C33.297 14.748 39.875 8.17 48 8.17Zm0 8a6.698 6.698 0 0 0-6.703 6.703v21.25A6.698 6.698 0 0 0 48 50.824a6.697 6.697 0 0 0 6.702-6.703V22.873A6.697 6.697 0 0 0 48 16.17Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/news.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M60.072 11.84c4.02-2.343 8.928.64 8.928 5.174v47.005c0 4.58-5.028 7.605-9.09 5.066-5.949-3.718-15.045-9.816-18.045-11.835-.002-.001 0-.001 0-.001h-2.558l1.708 19.015a10.784 10.784 0 0 1-21.378 2.727l-3.7-22.328C11.328 55.14 8 50.8 8 45.678V35.267c0-6.39 5.18-11.572 11.571-11.572h22.307c3.02-2.004 12.235-8.105 18.004-11.739l.19-.116ZM27.036 77.766a3.283 3.283 0 0 0 6.509-.831l-1.77-19.686h-8.137l3.398 20.517ZM61 20.73c-5.459 3.51-12.184 7.962-14.7 9.632a7.984 7.984 0 0 1-4.424 1.333H19.571A3.572 3.572 0 0 0 16 35.267v10.41a3.571 3.571 0 0 0 3.571 3.572h22.29c1.592 0 3.147.473 4.471 1.364 2.51 1.69 9.157 6.142 14.668 9.685V20.73Z\" clip-rule=\"evenodd\"/>\n  <path fill=\"#373737\" d=\"M74.67 52.87a4 4 0 0 1 5.602-.793l8.061 6.062a4 4 0 1 1-4.808 6.393l-8.061-6.061a4 4 0 0 1-.793-5.6ZM89.015 36a4 4 0 0 1 0 8H78a4 4 0 0 1 0-8h11.015ZM83.525 16.352a4 4 0 1 1 4.808 6.394l-8.061 6.062a4 4 0 0 1-4.808-6.395l8.061-6.061Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/preview.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M47.92 42c6.5799 0 11.9198 5.3 11.9199 11.8398 0 6.54-5.3399 11.8399-11.9199 11.8399s-11.9199-5.2999-11.9199-11.8399C36.0002 47.3 41.3401 42 47.92 42Z\"/>\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M48.0001 27c10.6662 0 20.0398 5.7371 26.7998 11.457 6.8393 5.7871 11.5706 12.0381 13.0195 14.0489 1.3095 1.8174 1.2655 4.3403-.2578 6.1113-1.5302 1.7789-6.296 7.0404-13.1367 11.8857C67.6299 75.3158 58.3906 80 48.0001 80c-10.3906 0-19.6299-4.6842-26.4248-9.4971-6.8407-4.8452-11.6065-10.1068-13.1367-11.8857-1.5234-1.771-1.5674-4.2939-.2579-6.1113 3.7954-5.1493 8.1321-9.9134 13.0196-14.0489C27.9603 32.7371 37.3339 27 48.0001 27Zm0 8c-7.8573 0-15.4142 4.3026-21.6319 9.5635-4.6156 3.9054-8.1898 8.0803-10.2158 10.6572 2.0602 2.18 5.5617 5.577 10.0469 8.7539C32.3548 68.3346 39.9653 72 48.0001 72c8.0347 0 15.6452-3.6654 21.8008-8.0254 4.4848-3.1766 7.9856-6.5739 10.0459-8.7539-2.0261-2.5769-5.5996-6.752-10.2149-10.6572C63.4143 39.3026 55.8573 35 48.0001 35Z\" clip-rule=\"evenodd\"/>\n  <path fill=\"#373737\" d=\"M15.172 16.1719c1.5621-1.5621 4.0941-1.5621 5.6562 0l8 8c1.5621 1.5621 1.562 4.0941 0 5.6562-1.5621 1.5621-4.0941 1.5621-5.6562 0l-8-8c-1.5621-1.5621-1.5621-4.0941 0-5.6562ZM75.172 16.1719c1.5621-1.5621 4.0941-1.5621 5.6562 0s1.562 4.0941 0 5.6562l-8 8c-1.5621 1.5621-4.0941 1.5621-5.6562 0s-1.5621-4.0941 0-5.6562l8-8ZM48.0001 7c2.2091 0 4 1.7909 4 4l-.0049 9.2061C51.888 22.3194 50.1401 24 48.0001 24c-2.1401 0-3.8879-1.6806-3.9951-3.7939L44.0001 11c0-2.2091 1.7908-4 4-4Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/print.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M56 68a3 3 0 1 1 0 6H40a3 3 0 1 1 0-6h16ZM73.05 37a4 4 0 0 1 0 8H70a4 4 0 0 1 0-8h3.05Z\"/>\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M68 10a5 5 0 0 1 5 5v9h7a8 8 0 0 1 8 8v34a8 8 0 0 1-8 8h-7.086l-.041 9.022a5 5 0 0 1-5 4.978H28.005a5 5 0 0 1-5-5.022l.043-9.478H16a8 8 0 0 1-8-8V32a8 8 0 0 1 8-8h7v-9a5 5 0 0 1 5-5h40ZM31.019 80h33.868l.09-20H31.11l-.09 20ZM16 65.5h7.084l.025-5.5H23a4 4 0 0 1 0-8h50a4 4 0 0 1 0 8h-.022l-.028 6H80V32H16v33.5ZM31 24h34v-6H31v6Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/settings.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M41 51c5.77 0 10.68 3.78 12.37 9h30.34a4 4 0 0 1 0 8H53.37c-1.7 5.22-6.6 9-12.37 9a13.02 13.02 0 0 1-12.37-9H11a4 4 0 0 1 0-8h17.63c1.7-5.22 6.6-9 12.37-9Zm0 8c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5ZM59 19c5.77 0 10.68 3.78 12.37 9h12.58a4 4 0 0 1 0 8H71.38c-1.7 5.22-6.6 9-12.37 9a13.02 13.02 0 0 1-12.37-9H11a4 4 0 0 1 0-8h35.63c1.7-5.22 6.6-9 12.37-9Zm0 8c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/thumb-recommend.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M40.296 14.823c1.74-6.956 9.965-9.945 15.766-5.73a17.004 17.004 0 0 1 7.005 13.627L63.13 31h10.017c10.02 0 17.054 9.874 13.779 19.344l-8.74 25.267A12.463 12.463 0 0 1 66.407 84H19.231A8.231 8.231 0 0 1 11 75.769V45.23A8.232 8.232 0 0 1 19.231 37h15.515l5.55-22.177Zm11.061.742a2.12 2.12 0 0 0-3.301 1.2l-5.907 23.604A6.117 6.117 0 0 1 36.216 45H36v31h30.407a4.463 4.463 0 0 0 4.218-3.003l8.74-25.268C80.843 43.456 77.67 39 73.147 39H61.26c-3.36 0-6.09-2.71-6.115-6.07l-.078-10.15a9.004 9.004 0 0 0-3.71-7.215ZM19.231 45a.232.232 0 0 0-.231.231V75.77c0 .127.104.23.231.23H28V45h-8.769Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/trash-delete.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M41 39a4 4 0 0 1 4 4v24a4 4 0 0 1-8 0V43a4 4 0 0 1 4-4ZM56 39a4 4 0 0 1 4 4v24a4 4 0 0 1-8 0V43a4 4 0 0 1 4-4Z\"/>\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M50.726 8c7.32 0 13.348 5.673 13.963 12.97l.174 2.03H76a4 4 0 0 1 0 8h-.055l-.676 49.11a8 8 0 0 1-8 7.89h-38.53a8 8 0 0 1-7.999-7.889L20.055 31H20a4 4 0 0 1 0-8h12.148l.162-1.979C32.882 13.714 38.916 8 46.274 8h4.452Zm-22.67 23 .683 49h38.53l.675-49H28.057Zm18.218-15c-3.096 0-5.739 2.417-5.989 5.653l-.002.016L40.176 23h16.658l-.116-1.352v-.004C56.443 18.39 53.79 16 50.726 16h-4.452Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/iconModern/turtle.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M78.5 30a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7Z\"/>\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M33.022 14.5C47.18 14.5 58.5 26.286 58.5 40.605v4.42c.816-.003 1.406-.023 1.943-.117.597-.104.893-.269 1.126-.493l.015-.016.016-.014.572-.54c.851-.827 1.263-1.341 1.495-1.774.19-.354.335-.79.335-1.571v-9.81c0-8.502 7.474-15.111 15.9-13.746 4.726.762 8.678 3.952 10.496 8.377l3.201 6.491.059.12.05.125c1.52 3.787.875 7.926-.99 11.066-1.872 3.153-5.255 5.73-9.563 5.73h-.153l-.885 2.175c-2.474 6.16-7.845 9.998-13.723 13.19l-.001-.001c-1.883 1.028-4.7 1.773-6.691 2.232-.341.079-.672.15-.988.218v10.772c0 3.64-2.951 6.591-6.59 6.591h-8.687c-3.64 0-6.59-2.95-6.59-6.59V66.06h-4.628v11.38c0 3.64-2.951 6.59-6.59 6.59h-8.257c-3.64 0-6.59-2.95-6.59-6.59V66.06h-.174c-3.028 0-5.448-1.682-6.984-3.597-1.538-1.92-2.524-4.458-2.524-7.016 0-2.503 1.015-4.997 2.544-6.87.52-.638 1.143-1.25 1.856-1.783v-6.145C7.5 26.286 18.82 14.5 33.022 14.5Zm45.762 9.354c-4.021-.654-7.782 2.496-7.782 6.835V40.5c0 1.813-.375 3.407-1.168 4.883-.75 1.397-1.786 2.515-2.79 3.49l-.037.034-.575.54.001.001c-2.942 2.843-6.876 2.578-8.83 2.578H12.608c-.306 0-.898.188-1.54.976-.643.788-.968 1.754-.968 2.445 0 .829.354 1.848.987 2.638.637.794 1.22.975 1.52.975h3.243c.756 0 1.456.241 2.028.649a3.5 3.5 0 0 1 1.904 3.115V77.03h7.437V62.824c0-.04.002-.079.003-.118a3.5 3.5 0 0 1 3.497-3.646h11.238c.701 0 1.354.207 1.902.562a3.502 3.502 0 0 1 1.987 3.158v14.25h7.868V60.81l2.933-.482h.002l.01-.002.046-.008a38.498 38.498 0 0 0 .95-.172c.64-.12 1.518-.297 2.474-.517 2.056-.474 3.986-1.048 4.912-1.556l.012-.006c5.615-3.049 9.065-5.893 10.572-9.658l.008-.02 2.661-6.535h4.86c1.312 0 2.64-.78 3.546-2.304.895-1.509 1.1-3.326.542-4.801l-3.17-6.425-.062-.128-.053-.131c-.894-2.26-2.866-3.839-5.17-4.21h-.003ZM33.022 21.5C22.87 21.5 14.5 29.965 14.5 40.65v4.376h37v-4.42c0-10.64-8.37-19.106-18.478-19.106Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/subjects/informatics.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#9E9E9E\" d=\"M137.27 249.63a4.63 4.63 0 0 0 4.61 5.04h38.25a4.63 4.63 0 0 0 4.61-5.04l-3.27-36.9a4.62 4.62 0 0 0-4.6-4.22h-31.72a4.6 4.6 0 0 0-4.6 4.21l-3.28 36.91Z\"/>\n  <path fill=\"#9E9E9E\" d=\"M41.26 68.83a9.63 9.63 0 0 1 9.63-9.62h217.07c6.42 0 11.62 5.2 11.62 11.61v146.45c0 6.87-5.57 12.44-12.44 12.44H52.88c-6.42 0-11.62-5.2-11.62-11.61V68.83Zm70.62 184.14a4.62 4.62 0 0 1 4.62-4.62h85.7a4.98 4.98 0 0 1 4.97 4.97v13.21a4.63 4.63 0 0 1-4.62 4.63H118.5a6.64 6.64 0 0 1-6.63-6.64v-11.55Z\"/>\n  <path fill=\"#BDBDBD\" d=\"M41.26 68.97a9.63 9.63 0 0 1 9.63-9.62H265.7c5.32 0 9.63 4.3 9.63 9.62v146.85a9.63 9.63 0 0 1-9.63 9.62H50.9a9.62 9.62 0 0 1-9.63-9.62V68.97Z\"/>\n  <path fill=\"#BDBDBD\" d=\"M134.7 253.08a4.62 4.62 0 0 0 4.6 5.03h38.25a4.62 4.62 0 0 0 4.6-5.03l-3.26-36.92a4.62 4.62 0 0 0-4.61-4.21h-31.71a4.6 4.6 0 0 0-4.6 4.21l-3.28 36.92Z\"/>\n  <path fill=\"#A8A8A8\" d=\"M111.88 252.97a4.62 4.62 0 0 1 4.62-4.62h83.66a4.62 4.62 0 0 1 4.63 4.62v11.49a4.62 4.62 0 0 1-4.63 4.62H116.5a4.62 4.62 0 0 1-4.62-4.62v-11.49Z\"/>\n  <rect width=\"202.97\" height=\"138.49\" x=\"57.55\" y=\"72.78\" fill=\"#37474F\" rx=\"9.25\"/>\n  <mask id=\"a\" width=\"204\" height=\"140\" x=\"57\" y=\"72\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#616161\" d=\"M57.55 82.09a9.25 9.25 0 0 1 9.25-9.25h184.47c5.1 0 9.25 4.14 9.25 9.25v119.98a9.26 9.26 0 0 1-9.25 9.26H66.8a9.25 9.25 0 0 1-9.25-9.26V82.1Z\"/>\n  </mask>\n  <g mask=\"url(#a)\">\n    <path fill=\"#66BB6A\" d=\"M99.29 129.15V99a4.92 4.92 0 0 1 9.83 0v30.15a4.92 4.92 0 0 1-9.83 0Zm65.58 0V99a4.92 4.92 0 1 1 9.84 0v30.15a4.92 4.92 0 1 1-9.84 0Zm-22.81 53.36v-30.14a4.92 4.92 0 0 1 9.84 0v30.14a4.92 4.92 0 0 1-9.84 0Zm64.36 0v-30.14a4.92 4.92 0 1 1 9.84 0v30.14a4.92 4.92 0 0 1-9.84 0Zm-66.02-63.55v-10.59a4.83 4.83 0 1 0-9.66 0v10.6a4.83 4.83 0 0 0 4.83 4.82v9.84h-.38a14.67 14.67 0 0 1-14.28-14.29v-10.97c0-8.1 6.56-14.66 14.66-14.66h.38c7.93.2 14.29 6.69 14.29 14.66v10.97a14.66 14.66 0 0 1-14.67 14.29v-9.84a4.83 4.83 0 0 0 4.83-4.83Zm-20.37 53.78v-10.6a4.83 4.83 0 0 0-9.65 0v10.6a4.83 4.83 0 0 0 4.82 4.82v9.84h-.38a14.66 14.66 0 0 1-14.28-14.28v-10.98c0-8.1 6.56-14.66 14.66-14.66h.38c7.93.2 14.29 6.7 14.29 14.67v10.97a14.66 14.66 0 0 1-14.67 14.28v-9.84a4.83 4.83 0 0 0 4.83-4.82Zm87.17-54.18v-9.78a5.23 5.23 0 0 0-10.46 0v9.78a5.23 5.23 0 0 0 5.23 5.23v9.84h-.39a15.07 15.07 0 0 1-14.67-14.69v-10.16c0-8.33 6.74-15.07 15.06-15.07h.4c8.14.2 14.67 6.88 14.67 15.07v10.16a15.07 15.07 0 0 1-15.07 14.69v-9.84c2.9 0 5.24-2.34 5.24-5.23Zm-22.8 53.77v-9.78a5.24 5.24 0 0 0-10.47 0v9.78c0 2.9 2.34 5.23 5.23 5.23v9.84h-.39a15.07 15.07 0 0 1-14.68-14.68v-10.17c0-8.32 6.75-15.07 15.07-15.07h.39a15.08 15.08 0 0 1 14.68 15.07v10.17a15.07 15.07 0 0 1-15.07 14.68v-9.84c2.9 0 5.24-2.34 5.24-5.23Z\"/>\n    <path fill=\"#fff\" d=\"m40.97 187.18 167.05-130.2L45.96 49.4l-4.99 137.78Z\" opacity=\".14\"/>\n  </g>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/subjects/language-en-us.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#000\" d=\"M47.6 74.9a7.9 7.9 0 0 1 7.4-8.1L267.5 53a7.9 7.9 0 0 1 8.4 8.2l-5 172.2a7.9 7.9 0 0 1-8.3 7.6l-94-4.3 6 61.8a1.6 1.6 0 0 1-2.7 1.2l-58.6-64L59 232c-4-.2-7.2-3.6-7.3-7.6l-4-149.5Z\" opacity=\".1\"/>\n  <path fill=\"#BBDEFB\" d=\"M42.3 68.7a7.9 7.9 0 0 1 7.4-8l212.5-13.8a7.9 7.9 0 0 1 8.4 8l-5 172.3a7.9 7.9 0 0 1-8.3 7.6l-94-4.3 6 61.8a1.6 1.6 0 0 1-2.7 1.2L108 229.6 53.7 226c-4.1-.3-7.3-3.6-7.4-7.7l-4-149.5Z\"/>\n  <path fill=\"#0D47A1\" fill-rule=\"evenodd\" d=\"M61.7 205.6c0 4.4 3.5 8 7.9 8h172.8c4.3 0 7.8-3.6 7.8-8V80.4c0-4.3-3.5-7.9-7.8-7.9H69.6a7.9 7.9 0 0 0-7.9 8v125.1Z\" clip-rule=\"evenodd\" opacity=\".2\"/>\n  <g clip-path=\"url(#a)\">\n    <path fill=\"#E53935\" d=\"M245.9 72.4H65.2v15h180.7v-15Z\"/>\n    <path fill=\"#F5F5F5\" d=\"M245.9 87.4H65.2v15h180.7v-15Z\"/>\n    <path fill=\"#E53935\" d=\"M245.9 102.5H65.2v15h180.7v-15Z\"/>\n    <path fill=\"#F5F5F5\" d=\"M245.9 117.6H65.2v15h180.7v-15Z\"/>\n    <path fill=\"#E53935\" d=\"M245.9 132.7H65.2v15h180.7v-15Zm-.1 29.7H60v15.9h186v-15.9Zm0 30.8H59.1v15h186.7v-15Z\"/>\n    <path fill=\"#F5F5F5\" d=\"M245.8 147.4h-185v15h185v-15Zm0 30.9H60v15h186v-15Z\"/>\n    <path fill=\"#0D47A1\" d=\"M155 72.5H60.9v75h94.3v-75Z\"/>\n    <path fill=\"#F5F5F5\" fill-rule=\"evenodd\" d=\"m71.3 93.9 5.6-3.4 5.5 3.4-1.6-6.4 5-4.2-6.5-.4-2.4-6-2.5 6-6.5.4 4.9 4.2-1.5 6.4Zm21.1 0 5.6-3.4 5.5 3.4-1.5-6.4 4.9-4.2-6.4-.4-2.5-6-2.5 6-6.4.4 5 4.2-1.7 6.4Zm21.3 0 5.5-3.4 5.4 3.4-1.4-6.4 4.8-4.2-6.4-.4-2.4-6-2.5 6-6.4.4 4.8 4.2-1.4 6.4Zm21.1 0 5.5-3.4 5.6 3.4-1.6-6.4 5-4.2-6.5-.4-2.5-6-2.5 6-6.4.4 5 4.2-1.6 6.4ZM71.3 117l5.6-3.3 5.5 3.3-1.6-6.3 5-4.2-6.5-.4-2.4-6-2.5 6-6.5.4 4.9 4.2-1.5 6.3Zm0 23.2 5.6-3.4 5.5 3.4-1.6-6.3 5-4.2-6.5-.4-2.4-6-2.5 6-6.5.4 4.9 4.2-1.5 6.3Zm21.1 0 5.6-3.4 5.5 3.4-1.5-6.3 4.9-4.2-6.4-.4-2.5-6-2.5 6-6.4.4 5 4.2-1.7 6.3Zm21.3 0 5.5-3.4 5.4 3.4-1.4-6.3 4.8-4.2-6.4-.4-2.4-6-2.5 6-6.4.4 4.8 4.2-1.4 6.3Zm21.1 0 5.5-3.4 5.6 3.4-1.6-6.3 5-4.2-6.5-.4-2.5-6-2.5 6-6.4.4 5 4.2-1.6 6.3ZM92.4 117l5.6-3.3 5.5 3.3-1.5-6.3 4.9-4.2-6.4-.4-2.5-6-2.5 6-6.4.4 5 4.2-1.7 6.3Zm21.3 0 5.5-3.3 5.4 3.3-1.4-6.3 4.8-4.2-6.4-.4-2.4-6-2.5 6-6.4.4 4.8 4.2-1.4 6.3Zm21.1 0 5.5-3.3 5.6 3.3-1.6-6.3 5-4.2-6.5-.4-2.5-6-2.5 6-6.4.4 5 4.2-1.6 6.3Z\" clip-rule=\"evenodd\"/>\n  </g>\n  <defs>\n    <clipPath id=\"a\">\n      <rect width=\"184.1\" height=\"135.7\" x=\"61.7\" y=\"72.5\" fill=\"#fff\" rx=\"7.7\"/>\n    </clipPath>\n  </defs>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/subjects/maths.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#607D8B\" d=\"M81.1 51c0-5 4-9 9-9h137.4c6.4 0 11.6 5.2 11.6 11.5v212.3c0 6.4-5.2 11.6-11.6 11.6H92.7c-6.4 0-11.6-5.2-11.6-11.6V51Z\"/>\n  <rect width=\"153.6\" height=\"230\" x=\"81\" y=\"42\" fill=\"#B0BEC5\" rx=\"8.9\"/>\n  <rect width=\"31.1\" height=\"24\" x=\"96.1\" y=\"127.3\" fill=\"#000\" opacity=\".1\" rx=\"1.8\"/>\n  <rect width=\"29.6\" height=\"22.7\" x=\"96.1\" y=\"127.3\" fill=\"#EC407A\" rx=\"1.8\"/>\n  <rect width=\"78.2\" height=\"24\" x=\"140.5\" y=\"127.3\" fill=\"#000\" opacity=\".2\" rx=\"1.7\"/>\n  <rect width=\"76.4\" height=\"22.2\" x=\"140.5\" y=\"127.3\" fill=\"#546E7A\" rx=\"1.7\"/>\n  <rect width=\"31.1\" height=\"24\" x=\"96.1\" y=\"160.7\" fill=\"#000\" opacity=\".1\" rx=\"1.8\"/>\n  <rect width=\"29.6\" height=\"22.7\" x=\"96.1\" y=\"160.7\" fill=\"#546E7A\" rx=\"1.8\"/>\n  <rect width=\"31.9\" height=\"24\" x=\"140.9\" y=\"160.7\" fill=\"#000\" opacity=\".2\" rx=\"1.9\"/>\n  <rect width=\"30.4\" height=\"22.7\" x=\"140.9\" y=\"160.7\" fill=\"#546E7A\" rx=\"1.9\"/>\n  <rect width=\"31.9\" height=\"24\" x=\"186.5\" y=\"160.7\" fill=\"#000\" opacity=\".2\" rx=\"1.9\"/>\n  <rect width=\"30.4\" height=\"22.7\" x=\"186.5\" y=\"160.7\" fill=\"#546E7A\" rx=\"1.9\"/>\n  <rect width=\"31.1\" height=\"24\" x=\"96.1\" y=\"194.1\" fill=\"#000\" opacity=\".2\" rx=\"1.9\"/>\n  <rect width=\"29.6\" height=\"22.7\" x=\"96.1\" y=\"194.1\" fill=\"#546E7A\" rx=\"1.9\"/>\n  <rect width=\"31.9\" height=\"24\" x=\"140.9\" y=\"194.1\" fill=\"#000\" opacity=\".2\" rx=\"1.9\"/>\n  <rect width=\"30.4\" height=\"22.7\" x=\"140.9\" y=\"194.1\" fill=\"#546E7A\" rx=\"1.9\"/>\n  <rect width=\"31.9\" height=\"24\" x=\"186.5\" y=\"194.1\" fill=\"#000\" opacity=\".2\" rx=\"1.9\"/>\n  <rect width=\"30.4\" height=\"22.7\" x=\"186.5\" y=\"194.1\" fill=\"#546E7A\" rx=\"1.9\"/>\n  <rect width=\"31.1\" height=\"24\" x=\"96.1\" y=\"227.4\" fill=\"#000\" opacity=\".2\" rx=\"1.9\"/>\n  <rect width=\"29.6\" height=\"22.7\" x=\"96.1\" y=\"227.4\" fill=\"#546E7A\" rx=\"1.9\"/>\n  <rect width=\"31.9\" height=\"24\" x=\"140.9\" y=\"227.4\" fill=\"#000\" opacity=\".2\" rx=\"1.9\"/>\n  <rect width=\"30.4\" height=\"22.7\" x=\"140.9\" y=\"227.4\" fill=\"#546E7A\" rx=\"1.9\"/>\n  <rect width=\"31.9\" height=\"24\" x=\"186.5\" y=\"227.4\" fill=\"#000\" opacity=\".2\" rx=\"1.9\"/>\n  <rect width=\"30.4\" height=\"22.7\" x=\"186.5\" y=\"227.4\" fill=\"#546E7A\" rx=\"1.9\"/>\n  <path fill=\"#37474F\" d=\"M81 50.9c0-5 4-8.9 8.9-8.9h135.9c4.9 0 8.8 4 8.8 8.9v57.7H81V51Z\"/>\n  <path fill=\"#ECEFF1\" d=\"M98.8 58.9H216v34.6H98.8z\"/>\n  <path fill=\"#9E9E9E\" fill-rule=\"evenodd\" d=\"M213.3 61.5H101.4v29.3h112V61.5ZM98.8 59v34.6H216V59H98.8Z\" clip-rule=\"evenodd\"/>\n  <path fill=\"#37474F\" fill-rule=\"evenodd\" d=\"M192.9 68.4c0-1.8 1.5-3.3 3.3-3.3h8.5c1.8 0 3.3 1.5 3.3 3.3V84c0 1.8-1.5 3.3-3.3 3.3h-8.5A3.3 3.3 0 0 1 193 84V68.4Zm3.6.2v15.1h8v-15h-8Z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/subjects/music.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#E0E0E0\" d=\"M54.8 77.2c0-4.9 4-8.8 8.9-8.8H258c4.9 0 8.8 4 8.8 8.8V244c0 5.9-4.7 10.7-10.6 10.7H63.7c-5 0-9-4-9-9V77.3Z\"/>\n  <path fill=\"#9E9E9E\" d=\"M53.9 74.6c0-5 4-8.9 8.9-8.9h190.7a9 9 0 0 1 8.9 8.9v166.7c0 5-4 9-9 9H62.9c-5 0-9-4-9-9V74.6Z\"/>\n  <path fill=\"#E5E5E5\" d=\"M60.3 74.3c0-5 4-9 9-9h178.3a9 9 0 0 1 8.9 9v163.1a7 7 0 0 1-7.1 7.1H69.2a9 9 0 0 1-8.9-8.9V74.3Z\"/>\n  <path fill=\"#fff\" d=\"M63.8 77.2c0-4.9 4-8.8 8.9-8.8h171.2c4.9 0 8.9 4 8.9 8.8V232c0 5-4 8.9-9 8.9h-171c-5 0-8.9-4-8.9-8.9V77.2Z\"/>\n  <path fill=\"#9E9E9E\" fill-rule=\"evenodd\" d=\"M101.4 250.2V127.1h5.3v123.1h-5.3Zm52.1 0V127.1h5.4v123.1h-5.4Zm52.2 0V127.1h5.3v123.1h-5.3Z\" clip-rule=\"evenodd\"/>\n  <path fill=\"#000\" d=\"M90.4 89.3c0-2.4 2-4.4 4.4-4.4h19c2.4 0 4.4 2 4.4 4.4V205c0 2.4-2 4.4-4.5 4.4H94.8c-2.5 0-4.4-2-4.4-4.4V89.3Zm51.4 0c0-2.4 2-4.4 4.5-4.4h18.9c2.4 0 4.4 2 4.4 4.4V205c0 2.4-2 4.4-4.4 4.4h-19c-2.4 0-4.4-2-4.4-4.4V89.3Zm51.5 0c0-2.4 2-4.4 4.4-4.4h19c2.4 0 4.4 2 4.4 4.4V205c0 2.4-2 4.4-4.5 4.4h-18.9c-2.4 0-4.4-2-4.4-4.4V89.3Z\"/>\n  <g opacity=\".7\">\n    <path fill=\"#fff\" d=\"M94.5 92c0-2.4 2-4.4 4.4-4.4h10.6c2.5 0 4.5 2 4.5 4.5v111.3c0 1-.8 1.7-1.8 1.7h-16c-.9 0-1.7-.8-1.7-1.7V92Zm51.5-4.4h19.5v115.8c0 1-.8 1.7-1.8 1.7h-16c-1 0-1.7-.8-1.7-1.7V87.6Zm51.5 0h19.4v115.8c0 1-.8 1.7-1.7 1.7h-16c-1 0-1.7-.8-1.7-1.7V87.6Z\" opacity=\".4\"/>\n  </g>\n  <path fill=\"#E65100\" d=\"M53.9 74.4c0-5 4-9 8.9-9h190.7a9 9 0 0 1 8.9 9V127H53.9V74.4Z\"/>\n  <path fill=\"#EF6C00\" d=\"M53.9 106.8h208.5v20.3H53.9v-20.3Z\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/subjects/physics.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#42A5F5\" d=\"M142 190.6a247 247 0 0 0 74.5 29.6 75 75 0 0 0 25.8 1c6.7-1.2 10.3-3.6 12-6.6 1.7-3 2-7.4-.2-13.7-2.3-6.3-7-13.7-13.9-21.9a246.3 246.3 0 0 0-62.9-49.7 246.3 246.3 0 0 0-74.5-29.6 75.5 75.5 0 0 0-25.9-1c-6.6 1.1-10.3 3.6-12 6.5-1.7 3-2 7.4.3 13.7 2.3 6.3 7 13.8 13.8 22a246.3 246.3 0 0 0 63 49.7Zm-5.5 9.4a257 257 0 0 1-65.8-52A86 86 0 0 1 55 122.7c-2.9-8-3.4-16 .6-23C59.5 93 66.7 89.5 75 88a86 86 0 0 1 29.7 1 257 257 0 0 1 78 31 257 257 0 0 1 65.8 52 86 86 0 0 1 15.8 25.3c2.9 8 3.4 16-.5 22.9-4 6.8-11.2 10.4-19.6 11.9a86 86 0 0 1-29.7-1 257 257 0 0 1-78-31Z\"/>\n  <path fill=\"#42A5F5\" d=\"M195.8 160.3c0-30.7-4.6-58.2-11.8-77.8A73.4 73.4 0 0 0 172 60c-4.4-5-8.4-7-11.9-7s-7.5 2-11.9 7c-4.3 5-8.4 12.6-12 22.5a236.2 236.2 0 0 0-11.7 77.8c0 30.6 4.5 58.1 11.7 77.8a73.4 73.4 0 0 0 12 22.5c4.4 5 8.4 7 12 7 3.4 0 7.4-2 11.8-7 4.3-5 8.5-12.7 12-22.5a236.2 236.2 0 0 0 11.8-77.8Zm10.9 0c0 31.6-4.7 60.4-12.4 81.5a84 84 0 0 1-14 25.9c-5.5 6.3-12.3 10.7-20.2 10.7-7.8 0-14.6-4.4-20.1-10.7a84 84 0 0 1-14-25.9c-7.8-21-12.4-50-12.4-81.5 0-31.6 4.6-60.4 12.3-81.6A84 84 0 0 1 140 53c5.6-6.4 12.4-10.8 20.2-10.8 7.9 0 14.7 4.4 20.1 10.8a84 84 0 0 1 14.1 25.8c7.7 21.2 12.4 50 12.4 81.6Z\"/>\n  <path fill=\"#42A5F5\" d=\"M177.6 191a246 246 0 0 0 62.8-49.7c7-8.2 11.6-15.6 13.9-22 2.3-6.2 2-10.7.2-13.6-1.7-3-5.3-5.5-12-6.7a75.5 75.5 0 0 0-25.8 1 246 246 0 0 0-74.6 29.7 246 246 0 0 0-62.9 49.7 75.5 75.5 0 0 0-13.8 22c-2.3 6.2-2 10.7-.3 13.6 1.7 3 5.4 5.5 12 6.7a81 81 0 0 0 25.9-1 246 246 0 0 0 74.6-29.7Zm5.4 9.5a256.7 256.7 0 0 1-78 30.9 86 86 0 0 1-29.8 1c-8.3-1.5-15.6-5-19.5-12-4-6.7-3.4-14.9-.6-22.8A86 86 0 0 1 71 172.4a256.6 256.6 0 0 1 65.8-52.2 260 260 0 0 1 78-30.9 86 86 0 0 1 29.7-1c8.4 1.5 15.6 5 19.6 12 4 6.7 3.4 14.9.5 22.8a86 86 0 0 1-15.8 25.2 256.8 256.8 0 0 1-65.7 52.2Z\"/>\n  <ellipse cx=\"159.3\" cy=\"160.3\" fill=\"#EC407A\" rx=\"21\" ry=\"20.9\"/>\n  <path fill=\"#fff\" d=\"M158.7 145.6c2.4 0 4.7.6 6.7 1.7a19.5 19.5 0 0 0-17.1 20.6 13.4 13.4 0 0 1 10.4-22.3Z\" opacity=\".4\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"lib/svg/subjects/science.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 320 320\">\n  <path fill=\"#F9A825\" d=\"M243 117.5a82.7 82.7 0 1 0-165.4 0 83 83 0 0 0 27.1 61.6 61 61 0 0 1 20 45.1v11.9h71v-11.9c0-17.1 7.1-33.5 19.8-45a83 83 0 0 0 27.4-61.7Z\"/>\n  <mask id=\"a\" width=\"166\" height=\"203\" x=\"77\" y=\"34\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#FBC02D\" stroke=\"#42A5F5\" stroke-width=\"1.3\" d=\"M159.6 35.2a82.2 82.2 0 0 1 55.5 143.6 61.2 61.2 0 0 0-20.1 45.4v11.2h-69.6v-11.2c0-17.4-7.4-34-20.2-45.6a82.3 82.3 0 0 1-27-61 82 82 0 0 1 81.4-82.4Z\"/>\n  </mask>\n  <g mask=\"url(#a)\">\n    <path fill=\"#FDD835\" d=\"M234.7 112.2a89.2 89.2 0 1 0-178-11.6 89.5 89.5 0 0 0 25 68.2 65.8 65.8 0 0 1 18.4 50l-.8 12.8 83.4 6.5.8-12.8c1.2-18.5 3-37.1 17.4-48.6a89.5 89.5 0 0 0 33.8-64.5Z\"/>\n    <circle cx=\"123.7\" cy=\"91.3\" r=\"95.2\" fill=\"#FFFDE7\" opacity=\".2\"/>\n    <path fill=\"#FFA726\" d=\"M185.2 107.8a20 20 0 0 1 20 19.8v.5a20 20 0 0 1-20 19.8H174l.3 95v.3a4.3 4.3 0 0 1-8.7 0v-.2l-.2-95H150l.3 95v.2a4.3 4.3 0 0 1-8.7 0v-.2l-.3-95H130a20 20 0 0 1 0-40.2c11 0 19.9 9 20 20v11.4h15.3v-11.4c0-11 8.9-20 20-20Zm-55.2 8.7a11.4 11.4 0 0 0 0 22.8h11.3v-11.5c0-6.3-5.1-11.3-11.3-11.3Zm55.2 0c-6.2 0-11.3 5-11.2 11.3v11.4h11.1c6.2 0 11.3-5 11.4-11.2v-.3c0-6.2-5.1-11.2-11.3-11.2Z\"/>\n  </g>\n  <path fill=\"#B0BEC5\" d=\"M121 218.6c0-1 .8-1.7 1.8-1.7h73.8c1 0 1.8.8 1.8 1.7v43.1c0 9.9-8 17.9-17.9 17.9h-41.7c-9.8 0-17.8-8-17.8-17.9v-43Z\"/>\n  <mask id=\"b\" width=\"79\" height=\"64\" x=\"120\" y=\"216\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\n    <path fill=\"#B0BEC5\" d=\"M121 218.6c0-1 .8-1.7 1.8-1.7h73.8c1 0 1.8.8 1.8 1.7v43.1c0 9.9-8 17.9-17.9 17.9h-41.7c-9.8 0-17.8-8-17.8-17.9v-43Z\"/>\n  </mask>\n  <g mask=\"url(#b)\">\n    <path fill=\"#78909C\" d=\"M183.7 214.7h73v71.2h-73z\" opacity=\".9\"/>\n    <path fill=\"#607D8B\" d=\"M105.8 229.6h98.6v9.8h-98.6zm0 19.4h98.6v9.8h-98.6zm0 19.4h98.6v9.6h-98.6z\"/>\n  </g>\n  <path fill=\"#FFFDE7\" d=\"M159 43.5c7.6 0 14.9 1 21.7 3.2a109 109 0 0 0-90 94.2A73.4 73.4 0 0 1 159 43.5Z\" opacity=\".6\"/>\n</svg>","updated":"2025-10-07T04:53:39.919166"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hiddenThings/hiddenThings.ls","text":"(function(){\n  return function(){\n    var date;\n    date = inc(\"/lib/util/formatDate2/format\")();\n    return {\n      id: \"hiddenThings\",\n      project: \"app01-game-hidden-things\",\n      title: T(\"title\"),\n      category: \"puzzle\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-hidden-cover-03\",\n      iconPosition: \"50% 10%\",\n      numberOfTries: 3,\n      highscoreDisabled: false,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      isHidden: false,\n      newBadge: true,\n      difficulties: [\n        {\n          value: 0,\n          scenePath: \"scene01-meadow/eggs\",\n          title: T(\"sceneMeadow\")\n        }, {\n          value: 1,\n          scenePath: \"scene02-jungle/eggs\",\n          title: T(\"sceneJungle\")\n        }, {\n          value: 2,\n          scenePath: \"scene03-underwater/eggs\",\n          title: T(\"sceneUnderwater\")\n        }, {\n          value: 3,\n          scenePath: \"scene04-home/eggs\",\n          title: T(\"sceneHome\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/games/01_gamesList/row/text/text.ls","text":"(function(){\n  return function(gd){\n    return Div({\n      flex: \"1 1 auto\",\n      display: \"flex\",\n      flexDirection: \"column\",\n      alignItems: \"stretch\",\n      textAlign: \"left\"\n    }).append(inc(\"title/title\")(gd), gd.disabledBy ? inc(\"lockInfo/lockInfo\")(gd) : void 8);\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/level/afterFinish/pages/newCoin/addCoin/button/button.ls","text":"(function(){\n  return function(page){\n    var click;\n    click = function(){\n      var ref$;\n      if (page.isFirstCoinEver) {\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          return startPage({\n            path: path(\"../../firstCoinExplainGameMenuNavigationNext/page\"),\n            animation: \"fadeIn\"\n          });\n        } else {\n          return startPage({\n            path: path(\"../../firstCoinExplainGameMenu/page\"),\n            animation: \"fadeIn\"\n          });\n        }\n      } else if (page.showAppRatePage) {\n        return startPage({\n          path: path(\"../../appRating/01_rating/page\"),\n          animation: \"fadeIn\"\n        });\n      } else {\n        return startPage({\n          history: function(path){\n            return !_.includes(path, \"/level\");\n          },\n          animation: \"fadeIn\"\n        });\n      }\n    };\n    return Button({\n      label: T(\"continueButton\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\"\n    }).tap(click).addClass(\"keyManager-enter\").bind(\"keyManager\", click);\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/games/01_gamesList/row/row.ls","text":"(function(){\n  return function(gd, page){\n    var ud, tap, b;\n    ud = page.userDescription;\n    if (gd.debugOnly && !engine.isDebug) {\n      return;\n    }\n    if (gd.isHidden && !engine.isDebug) {\n      return;\n    }\n    if (gd.plusOnly && ud.hasAntonPlusHidden) {\n      return;\n    }\n    tap = function(){\n      if (gd.plusOnly) {\n        if (!ud.hasPlusAccess) {\n          if (!engine.isBotMode) {\n            inc(\"plusStopPopup/popup\")(gd);\n          }\n          return;\n        }\n      }\n      return startPage({\n        path: path(\"../../02_gameDetails/page\"),\n        params: {\n          game: gd.id\n        },\n        animation: \"slideLeft\"\n      });\n    };\n    return Div({\n      display: \"flex\",\n      margin: \"-1px auto 0\",\n      borderTop: b = \"1px solid \" + Color.grey[200],\n      borderBottom: b,\n      padding: \"0.8em 0.5em\",\n      width: \"35em\",\n      maxWidth: \"90%\",\n      background: \"white\",\n      opacity: gd.disabledBy ? 0.5 : void 8\n    }).append(inc(\"image/image\")(gd), inc(\"text/text\")(gd), inc(\"debugIcon/debugIcon\")(gd), inc(\"newBadge/newBadge\")(gd), inc(\"iconRight/iconRight\")(gd)).tap(!gd.disabledBy ? tap : void 8);\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hiddenThingsHalloween/hiddenThingsHalloween.ls","text":"(function(){\n  return function(){\n    var date;\n    date = inc(\"/lib/util/formatDate2/format\")();\n    return {\n      id: \"hiddenThingsHalloween\",\n      project: \"app01-game-hidden-things-halloween\",\n      title: T(\"title\"),\n      category: \"puzzle\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-hidden-cover-04\",\n      iconPosition: \"50% 10%\",\n      numberOfTries: 3,\n      highscoreDisabled: false,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      isHidden: true,\n      newBadge: true,\n      difficulties: [\n        {\n          value: 0,\n          scenePath: \"scene01-meadow-halloween/pumpkin\",\n          title: T(\"sceneMeadow\")\n        }, {\n          value: 1,\n          scenePath: \"scene02-mansion-halloween/pumpkin\",\n          title: T(\"sceneMansion\")\n        }, {\n          value: 2,\n          scenePath: \"scene03-space-halloween/pumpkin\",\n          title: T(\"sceneSpace\")\n        }, {\n          value: 3,\n          scenePath: \"scene04-home-halloween/pumpkin\",\n          title: T(\"sceneHome\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/start/login/02_step2/_t.ls","text":"(function(){\n  return {\n    forgotPassword: {\n      de: \"Passwort vergessen?\",\n      en: \"Forgot your password?\",\n      fr: \"Mot de passe oublié&nbsp;?\",\n      es: \"Olvidé mi contraseña\",\n      pt: \"Esqueceu sua senha?\"\n    },\n    emptyPassword: {\n      de: \"Das Passwort darf nicht leer sein.\",\n      en: \"The password cannot be left blank.\",\n      fr: \"Le mot de passe ne peut pas rester vide.\",\n      es: \"La contraseña no puede quedar en blanco.\",\n      pt: \"A senha não pode ficar em branco.\"\n    },\n    invalidPasswordLong: {\n      de: \"Das Passwort ist nicht gültig, bitte versuche es noch einmal.<br><br>Hast du einen 8-stelligen Anmelde-Code im Format xxxx-xxxx? Dann tippe auf den Zurück-Pfeil und trage den Code in das Feld auf der vorigen Seite ein.\",\n      en: \"This password is not valid, please try again.<br><br> Do you have an 8-digit login code with the format xxxx-xxxx? If so, return to the previous page using the back arrow and enter your code in the login field.\",\n      fr: \"Le mot de passe n'est pas valide, tu peux réessayer. <br><br>As-tu un code de connexion à 8 chiffres sous ce format xxxx-xxxx&nbsp;? Si c'est le cas, appuie sur la flèche retour et entre ton code dans le champ prévu.\",\n      es: \"La contraseña no es válida. Inténtalo de nuevo. <br><br> ¿Te proporcionaron una clave de 8 caracteres con el formato: xxxx-xxxx? De ser así, presiona la flecha para regresar a la página anterior e ingresa la clave en el campo correspondiente.\",\n      pt: \"A senha não é válida. Por favor, tente novamente. <br><br>Você já tem um código de acesso de 8 dígitos neste formato xxxx-xxxx? Então, volte para a página anterior selecionando a seta para voltar e insira seu código com o formato indicado no campo de login.\"\n    },\n    enterPassword: {\n      de: \"Bitte trage dein Passwort ein:\",\n      en: \"Please enter your password:\",\n      fr: \"Entre ton mot de passe&nbsp;:\",\n      es: \"Ingresa tu contraseña:\",\n      pt: \"Por favor, digite sua senha:\"\n    }\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hiddenThingsSummer/hiddenThingsSummer.ls","text":"(function(){\n  return function(){\n    var date;\n    date = inc(\"/lib/util/formatDate2/format\")();\n    return {\n      id: \"hiddenThingsSummer\",\n      project: \"app01-game-hidden-things-summer\",\n      title: T(\"title\"),\n      category: \"puzzle\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-hidden-cover-05\",\n      iconPosition: \"50% 10%\",\n      numberOfTries: 3,\n      highscoreDisabled: false,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      isHidden: true,\n      newBadge: true,\n      difficulties: [\n        {\n          value: 0,\n          scenePath: \"scene01-beach/ice\",\n          title: T(\"sceneBeach\")\n        }, {\n          value: 1,\n          scenePath: \"scene02-desert/ice\",\n          title: T(\"sceneDesert\")\n        }, {\n          value: 2,\n          scenePath: \"scene03-park/ice\",\n          title: T(\"scenePark\")\n        }, {\n          value: 3,\n          scenePath: \"scene04-street/ice\",\n          title: T(\"sceneStreet\")\n        }, {\n          value: 4,\n          scenePath: \"scene05-home/ice\",\n          title: T(\"sceneHome\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/games/02_gameDetails/difficulties/row/row.ls","text":"(function(){\n  return function(difficulty, gd){\n    var tap, b;\n    if (difficulty.debugOnly && !engine.isDebug) {\n      return;\n    }\n    tap = function(){\n      var lockedDetails;\n      lockedDetails = inc(\"/../app01-group/data/calcLockedFeature/calc\")({\n        eventName: \"lockGames\"\n      });\n      if (lockedDetails.seconds > 0) {\n        return inc(\"/lib/gui/infoPopup/popup\")({\n          label: T(\"gamesAreLocked\")\n        });\n      } else if (gd.notEnoughCoins) {\n        return inc(\"popupNoCoins/popup\")();\n      } else {\n        return startPage({\n          path: path(\"../../../03_gameLoading/page\"),\n          params: {\n            game: gd.id,\n            difficulty: difficulty\n          }\n        });\n      }\n    };\n    return Div({\n      display: \"flex\",\n      margin: \"-1px auto 0\",\n      borderTop: b = \"1px solid \" + Color.grey[200],\n      borderBottom: b,\n      background: \"white\",\n      minHeight: \"4em\"\n    }).html(inc(\"icon/icon\")(difficulty), inc(\"text/text\")(difficulty), inc(\"debugIcon/debugIcon\")(difficulty), inc(\"highscoreButton/highscoreButton\")(difficulty, gd)).tap(!difficulty.locked ? tap : void 8);\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/content/plansNext/plansByCategory/plansByCategory.ls","text":"(function(){\n  return function(plansByCategoryData){\n    var categoryData;\n    return Div({\n      width: \"35em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto 3em\"\n    }).html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = plansByCategoryData).length; i$ < len$; ++i$) {\n        categoryData = ref$[i$];\n        results$.push(inc(\"row/row\")(categoryData));\n      }\n      return results$;\n    }()));\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/games/00_shared/gameDescriptions/gameDescriptions.ls","text":"(function(){\n  return function(){\n    var descriptions;\n    descriptions = [inc(\"descriptions/superBubble/superBubble\")(), inc(\"descriptions/marbleMaze/marbleMaze\")(), inc(\"descriptions/towerBuilder/towerBuilder\")(), inc(\"descriptions/astroBang/astroBang\")(), inc(\"descriptions/cityJumper/cityJumper\")(), inc(\"descriptions/batCave/batCave\")(), inc(\"descriptions/snowballBattle/snowballBattle\")(), inc(\"descriptions/spaceBlox/spaceBlox\")(), inc(\"descriptions/superRacer/superRacer\")(), inc(\"descriptions/pixelPaint/pixelPaint\")(), inc(\"descriptions/numberPuzzle/numberPuzzle\")(), inc(\"descriptions/blockPuzzle/blockPuzzle\")(), inc(\"descriptions/broadJump/broadJump\")(), inc(\"descriptions/treasureHook/treasureHook\")(), inc(\"descriptions/dragonHunter/dragonHunter\")(), inc(\"descriptions/stroobTest/stroobTest\")(), inc(\"descriptions/echoMaster/echoMaster\")(), inc(\"descriptions/crazyCobras/crazyCobras\")(), inc(\"descriptions/pearlParty/pearlParty\")(), inc(\"descriptions/avatarSuperstar/avatarSuperstar\")(), inc(\"descriptions/pixelPuzzle/pixelPuzzle\")(), inc(\"descriptions/swarm/swarm\")(), inc(\"descriptions/hauntedHouse/hauntedHouse\")(), inc(\"descriptions/princessJourney/princessJourney\")(), inc(\"descriptions/superAnton/superAnton\")(), inc(\"descriptions/basketball/basketball\")(), inc(\"descriptions/hiddenThings/hiddenThings\")(), inc(\"descriptions/hiddenThingsHalloween/hiddenThingsHalloween\")(), inc(\"descriptions/hiddenThingsChristmas/hiddenThingsChristmas\")(), inc(\"descriptions/hiddenThingsSummer/hiddenThingsSummer\")(), inc(\"descriptions/hiddenThingsTrash/hiddenThingsTrash\")()];\n    inc(\"setDisabledBy/set\")(descriptions);\n    return _.sortBy(descriptions, [\n      function(d){\n        return !!d.isHidden;\n      }, function(d){\n        return !!d.debugOnly;\n      }, function(d){\n        return !d.newBadge;\n      }, \"title\"\n    ]);\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/games/00_shared/gameDescriptions/descriptions/hiddenThingsTrash/hiddenThingsTrash.ls","text":"(function(){\n  return function(){\n    var date;\n    date = inc(\"/lib/util/formatDate2/format\")();\n    return {\n      id: \"hiddenThingsTrash\",\n      project: \"app01-game-hidden-things-trash\",\n      title: T(\"title\"),\n      category: \"puzzle\",\n      grade: 2,\n      price: 1,\n      icon: \"solocode_game-hidden-cover-things-trash-new-2\",\n      iconPosition: \"50% 10%\",\n      numberOfTries: 3,\n      highscoreDisabled: false,\n      highscoreAscending: true,\n      highscoreType: \"time\",\n      isHidden: true,\n      newBadge: true,\n      difficulties: [\n        {\n          value: 0,\n          scenePath: \"scene01-park/trash\",\n          title: T(\"scenePark\")\n        }, {\n          value: 1,\n          scenePath: \"scene02-underwater/trash\",\n          title: T(\"sceneUnderwater\")\n        }, {\n          value: 2,\n          scenePath: \"scene03-street/trash\",\n          title: T(\"sceneStreet\")\n        }, {\n          value: 3,\n          scenePath: \"scene04-space/trash\",\n          title: T(\"sceneSpace\")\n        }, {\n          value: 4,\n          scenePath: \"scene05-home/trash\",\n          title: T(\"sceneHome\")\n        }\n      ],\n      manual: inc(\"/lib/util/isDesktop/isDesktop\")()\n        ? T(\"manualDesktop\")\n        : T(\"manual\")\n    };\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/content/plansNext/_t.ls","text":"(function(){\n  return {\n    lastViewed: {\n      de: \"Zuletzt angesehen\",\n      en: \"Last viewed\",\n      fr: \"Vu en dernier\",\n      es: \"Visto por última vez\",\n      pt: \"Visto por último\"\n    },\n    levels: {\n      de: \"(($1 Übung | $1 Übungen))\",\n      en: \"(($1 exercise | $1 exercises))\",\n      fr: \"(($1 exercice | $1 exercices))\",\n      es: \"(($1 ejercicio | $1 ejercicios))\",\n      pt: \"(($1 exercício | $1 exercícios))\"\n    },\n    howToSearch: {\n      de: \"So kannst du Lerninhalte suchen\",\n      en: \"How to search for exercises\",\n      fr: \"Comment rechercher des activités\",\n      es: \"Para buscar por tema...\",\n      pt: \"Procure por temas ou BNCC\"\n    },\n    searchInstructionsBeforeMenuIcon: {\n      de: \"Gehe im\",\n      en: \"Go to the\",\n      fr: \"Appuie sur le menu\",\n      es: \"Ve al menú&nbsp;\",\n      pt: \"Vá até\"\n    },\n    menu: {\n      de: \" Hauptmenü\",\n      en: \" main menu\",\n      fr: \" et\",\n      es: \"&nbsp;\",\n      pt: \"&nbsp;\"\n    },\n    search: {\n      de: \" Suchen\",\n      en: \" Search\",\n      fr: \"&#8203;\",\n      es: \" Buscar\",\n      pt: \" Buscar\"\n    },\n    searchInstructionsBeforeSearchIcon: {\n      de: \" zum Eintrag\",\n      en_gb: \" and select\",\n      en: \" and select\",\n      fr: \" sur la loupe\",\n      es: \"y presiona &nbsp;\",\n      pt: \"e selecione &nbsp;\"\n    },\n    searchInstructionsEnd: {\n      de: \". Dort kannst du nach Themen, Klassen&shy;stufen und beliebigen Begriffen suchen.\",\n      en_gb: \". There, you can look up specific topics and filter by subject and year group.\",\n      en: \". There, you can look up specific topics and filter by subject and grade.\",\n      fr: \". C'est là que tu peux entrer des mots-clés et filtrer par matière et par classe.\",\n      es: \". &nbsp;Ahí podrás ingresar cualquier término:  <t-grey>tema, contenido, competencia, eje, objetivo, pda, oa, nap, etc.</t-grey>\",\n      pt: \". Lá, você pode procurar por disciplinas, anos, habilidades da BNCC ou termos específicos.\"\n    }\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"data/school/calcDisabledGames/calc.ls","text":"(function(){\n  return function(schoolCode){\n    var schoolLog, i$, ref$, len$, e, results$ = [];\n    schoolLog = window.schoolLogs[schoolCode];\n    for (i$ = 0, len$ = (ref$ = schoolLog.list(\"setSchoolDisableGame\")).length; i$ < len$; ++i$) {\n      e = ref$[i$];\n      results$.push(e.gameId);\n    }\n    return results$;\n  };\n})();","updated":"2026-05-06T07:47:50.808751"},{"path":"pages/content/plansNext/searchHeader/searchInstructionsDiv/div.ls","text":"(function(){\n  return function(){\n    var searchIcon, menuIcon, label;\n    searchIcon = SvgIcon({\n      svg: path(\"/../app01/lib/svg/iconModern/search.svg\"),\n      color: Color.black\n    }).css({\n      position: \"relative\",\n      top: \"0.2em\",\n      background: Color.grey[200],\n      padding: \"0.1em\",\n      borderRadius: \"3px\"\n    });\n    menuIcon = SvgIcon({\n      svg: path(\"/../app01-topbar/topbar/mainDiv/leftIconsDiv/hamburgerOrCloseIcon/hamburgerIcon/svg/menu.svg\"),\n      size: \"0.9em\",\n      color: Color.black\n    }).css({\n      position: \"relative\",\n      top: \"0.1em\",\n      background: Color.grey[200],\n      padding: \"0.15em\",\n      borderRadius: \"3px\"\n    });\n    label = Div({\n      width: \"20em\",\n      maxWidth: \"70vw\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"searchInstructionsBeforeMenuIcon\") + \" \", Span({\n      whiteSpace: \"nowrap\"\n    }).html(menuIcon, T(\"menu\")), T(\"searchInstructionsBeforeSearchIcon\") + \" \", Span({\n      whiteSpace: \"nowrap\"\n    }).html(searchIcon, T(\"search\")), T(\"searchInstructionsEnd\"));\n    return {\n      label: label\n    };\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/games/00_shared/gameDescriptions/setDisabledBy/set.ls","text":"(function(){\n  return function(descriptions){\n    var disabledGames, i$, len$, d, that, results$ = [];\n    disabledGames = inc(\"calcDisabledGames/calc\")(descriptions);\n    for (i$ = 0, len$ = descriptions.length; i$ < len$; ++i$) {\n      d = descriptions[i$];\n      if (that = disabledGames[d.id]) {\n        results$.push(d.disabledBy = that);\n      }\n    }\n    return results$;\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/content/plansNext/searchHeader/header.ls","text":"(function(){\n  return function(page){\n    var showPopup, div;\n    showPopup = function(){\n      return OverlayMenu({\n        referenceDiv: div,\n        items: inc(\"searchInstructionsDiv/div\")(),\n        direction: \"bottom left\",\n        adjustXY: \"0 -3\"\n      });\n    };\n    return Div({\n      width: \"35em\",\n      maxWidth: \"90%\",\n      margin: \"3em auto 0.8em\"\n    }).html(div = Div({\n      color: Color.blue[400],\n      justifySelf: \"end\",\n      textAlign: \"right\",\n      display: \"flex\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/iconModern/help.svg\"),\n      color: Color.blue[400]\n    }).css({\n      marginRight: \"0.25em\"\n    }), T(\"howToSearch\")).tap({\n      up: showPopup,\n      animation: {\n        startHover: function(){\n          return div.css({\n            color: Color.blue[600]\n          });\n        },\n        endHover: function(){\n          return div.css({\n            color: Color.blue[400]\n          });\n        },\n        down: function(){\n          return div.css({\n            color: Color.blue[700]\n          });\n        },\n        cancel: function(){\n          return div.css({\n            color: Color.blue[400]\n          });\n        },\n        up: function(){\n          return div.css({\n            color: Color.blue[400]\n          });\n        }\n      }\n    }));\n  };\n})();","updated":"2026-05-18T12:45:29.708712"},{"path":"pages/games/01_gamesList/row/iconRight/iconRight.ls","text":"(function(){\n  return function(gd){\n    return SvgIcon({\n      svg: gd.disabledBy\n        ? path(\"/lib/svg/shape/lock.svg\")\n        : path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      color: Color.grey[400]\n    }).css({\n      flex: \"0 0 1em\",\n      marginLeft: \"0em\"\n    });\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"pages/games/01_gamesList/row/text/lockInfo/lockInfo.ls","text":"(function(){\n  return function(gd){\n    var label, schoolName, groupName;\n    label = _.startsWith(gd.disabledBy, \"SCHOOL\")\n      ? (schoolName = inc(\"/data/school/calcSchoolDescription/calc\")(gd.disabledBy).name, T(\"disabledInfoSchool\", schoolName))\n      : _.startsWith(gd.disabledBy, \"GROUP\") ? (groupName = inc(\"/../app01-group/data/calcGroupDescription/calc\")(gd.disabledBy).name, T(\"disabledInfoGroup\", groupName)) : void 8;\n    return Div({\n      paddingTop: \"0.3em\",\n      fontSize: \"0.8em\"\n    }).html(label);\n  };\n})();","updated":"2026-05-07T07:02:46.684869"},{"path":"pages/misc/email/show/withMail/verifyText/verifyText.ls","text":"(function(){\n  return function(isVerified){\n    return Div({\n      margin: \"0 1em 1em\",\n      display: \"flex\"\n    }).html(inc(\"icon/icon\")(isVerified), inc(\"text/text\")(isVerified));\n  };\n})();","updated":"2026-02-27T15:45:37.083053"},{"path":"pages/misc/email/show/withoutMail/withoutMail.ls","text":"(function(){\n  return function(){\n    return Div().html(inc(\"text/text\")(), inc(\"buttonAdd/button\")());\n  };\n})();","updated":"2026-02-27T15:45:37.083053"},{"path":"pages/misc/email/show/withMail/notVerifiedWarning/warning.ls","text":"(function(){\n  return function(isVerified){\n    var ref$;\n    if (isVerified || ((ref$ = log.findLast(\"setLoginCodeNeedsPassword\")) != null ? ref$.value : void 8) !== true) {\n      return;\n    }\n    return Div({\n      color: Color.grey[550],\n      width: \"30em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto 0.5em\"\n    }).html(T(\"verifyWarning\"));\n  };\n})();","updated":"2026-02-27T15:45:37.083053"},{"path":"pages/games/01_gamesList/row/newBadge/newBadge.ls","text":"(function(){\n  return function(gd){\n    if (!gd.newBadge || gd.disabledBy) {\n      return;\n    }\n    return Div({\n      flex: \"0 0 auto\",\n      color: \"white\",\n      backgroundColor: Color.blue[500],\n      padding: \"0.15em 0.3em\",\n      lineHeight: \"1.2em\",\n      borderRadius: \"2px\",\n      fontSize: \"0.8em\",\n      verticalAlign: \"0.15em\",\n      marginRight: \"0.2em\"\n    }).html(T(\"newCaps\"));\n  };\n})();","updated":"2026-05-04T15:06:55.784565"},{"path":"pages/games/01_gamesList/row/image/image.ls","text":"(function(){\n  return function(gd){\n    return Div({\n      width: \"3.4em\",\n      height: \"3.4em\",\n      backgroundPosition: gd.iconPosition || \"50% 50%\",\n      flex: \"0 0 auto\",\n      marginRight: \"0.5em\"\n    }).append(inc(\"/lib/gui/image/image\")({\n      id: gd.icon,\n      fileFolder: \"media/gameIcons/_images\"\n    }).css({\n      width: \"3.4em\",\n      height: \"3.4em\",\n      backgroundPosition: gd.iconPosition || \"50% 50%\",\n      flex: \"0 0 auto\",\n      marginRight: \"0.5em\",\n      borderRadius: \"50%\",\n      border: \"3px solid \" + Color.grey[300],\n      overflow: \"hidden\",\n      filter: gd.disabledBy ? \"grayscale(100%)\" : void 8\n    }), gd.plusOnly ? SvgIcon({\n      svg: path(\"/lib/svg/illustration/anton-plus.svg\"),\n      width: \"1.1em\"\n    }).css({\n      position: \"absolute\",\n      left: \"calc(50% + \" + Math.sin(Math.PI / 4) * 50 + \"% - 0.3em)\",\n      top: \"calc(50% + \" + Math.cos(Math.PI / 4) * 50 + \"% - 0.5em)\"\n    }) : void 8);\n  };\n})();","updated":"2026-05-04T15:13:32.353879"},{"path":"lib/util/print/print.ls","text":"(function(){\n  return function(p){\n    var printDocument;\n    printDocument = function(p){\n      var html, options, e;\n      p.originalTitle = document.title;\n      document.title = p.title || p.originalTitle;\n      inc(\"before/before\")(p);\n      inc(\"after/after\")(p);\n      if (engine.isMobileApp) {\n        if (engine.isiOsApp && inc(\"/lib/util/compareVersionString/compare\")(typeof device != 'undefined' && device !== null ? device.version : void 8, \"17\") !== -1) {\n          return cordova.plugins.printer.print();\n        } else {\n          html = document.documentElement.innerHTML;\n          options = {\n            duplex: \"none\"\n          };\n          return cordova.plugins.printer.print(html, options);\n        }\n      } else {\n        try {\n          return window.print();\n        } catch (e$) {\n          e = e$;\n          return inc(\"/lib/gui/infoPopup/popup\")({\n            label: T(\"printDisabled\")\n          });\n        }\n      }\n    };\n    if (inc(\"/data/user/isTeacher/get\")()) {\n      return printDocument(p);\n    } else {\n      return inc(\"/lib/gui/parentalGate/parentalGate\")(function(){\n        return printDocument(p);\n      }, {\n        omitParentMention: true\n      });\n    }\n  };\n})();","updated":"2025-10-08T13:57:20.434801"},{"path":"pages/support/help/faqList/_topbarNext/calcTools/calc.ls","text":"(function(){\n  return function(page){\n    return [{\n      type: \"search\",\n      hoverLabel: T(\"searchHoverLabel\"),\n      onSearch: function(searchTerm){\n        return page.onSearch(searchTerm);\n      },\n      placeholder: T(\"searchPlaceholder\")\n    }];\n  };\n})();","updated":"2025-10-17T14:02:40.574066"},{"path":"lib/init/blockNoAsyncBrowsers/block.ls","text":"(function(){\n  return function(){\n    var error, osVersion;\n    try {\n      eval(\"async () => {}\");\n      return false;\n    } catch (e$) {\n      error = e$;\n      osVersion = engine.isiOsApp ? \"iOS\" : \"Android OS\";\n      document.write(T(\"blockNoAsyncApps\", osVersion));\n      return true;\n    }\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/sound/sound.ls","text":"(function(){\n  return function(params){\n    var s, ref$;\n    return inc(\"../soundNext/sound\")(params);\n    if (!window.sound.audioContext) {\n      inc(\"logMissingAudioContext/log\")();\n      inc(\"/lib/util/audioContext/refresh/refresh\")();\n    }\n    s = {};\n    s.params = params;\n    s.volume = (ref$ = params.volume) != null ? ref$ : 1;\n    s.pitchFactor = (ref$ = params.pitchFactor) != null ? ref$ : 1;\n    s.isLoop = params.isLoop;\n    s.setAppLastSoundOnPlay = !params.isSoundEffect;\n    s.enableAnalyser = params.enableAnalyser;\n    s.initialized = false;\n    s.isPlaying = false;\n    s.duration = null;\n    s.currentSoundPartIndex = -1;\n    s.currentSoundPart = null;\n    s.onFinish = null;\n    s.onProgress = null;\n    s.onStop = null;\n    s.soundParts = inc(\"createSoundParts/create\")(s);\n    s.mutedIconPlay = body.findFirst(\".animationStart\");\n    s.mutedIconStop = body.findFirst(\".animationStop\");\n    s.play = function(onFinish, onProgress, onStop){\n      return inc(\"play/play\")(s, onFinish, onProgress, onStop);\n    };\n    s.stop = function(){\n      var ref$, ref1$;\n      if ((ref$ = s.currentSoundPart) != null) {\n        ref$.stop();\n      }\n      s.isPlaying = false;\n      if ((ref1$ = s.mutedIconStop) != null) {\n        ref1$.animationStop();\n      }\n      return typeof s.onStop == 'function' ? s.onStop() : void 8;\n    };\n    s.fadeout = function(d){\n      var ref$;\n      if ((ref$ = s.currentSoundPart) != null) {\n        ref$.fadeOut(d);\n      }\n      return s.isPlaying = false;\n    };\n    s.getDuration = function(){\n      return s.duration;\n    };\n    return s;\n  };\n})();","updated":"2025-11-04T14:41:30.472593"},{"path":"lib/svg/shape/speaker.svg","text":"<svg width=\"161\" height=\"161\" viewBox=\"0 0 161 161\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path d=\"M122.459 34.2623C124.741 31.3737 128.933 30.8816 131.822 33.1637C139.026 38.8555 144.86 46.0921 148.894 54.3388C152.928 62.5859 155.061 71.6345 155.133 80.8151C155.205 89.9954 153.214 99.0752 149.309 107.384C145.405 115.693 139.684 123.019 132.571 128.823C129.718 131.151 125.519 130.725 123.191 127.872C120.864 125.02 121.289 120.82 124.142 118.492C129.709 113.95 134.186 108.216 137.242 101.714C140.298 95.2106 141.856 88.1041 141.799 80.9192C141.743 73.7342 140.076 66.6526 136.918 60.1982C133.761 53.744 129.195 48.0806 123.557 43.626C120.669 41.3434 120.176 37.1512 122.459 34.2623Z\" fill=\"#373737\" class=\"line2\"/>\n  <path d=\"M106.606 54.0816C109.222 51.4918 113.443 51.5137 116.033 54.1305C118.901 57.0287 121.294 60.3761 123.11 64.0507C125.645 69.1817 126.992 74.8186 127.05 80.5416C127.108 86.2641 125.877 91.9264 123.446 97.1074C121.595 101.053 119.084 104.643 116.033 107.726C113.443 110.342 109.222 110.364 106.606 107.775C103.989 105.185 103.967 100.963 106.557 98.346C108.54 96.342 110.171 94.0092 111.375 91.4449C112.955 88.0772 113.756 84.3965 113.718 80.6767C113.68 76.9568 112.805 73.2924 111.156 69.9573C109.976 67.569 108.421 65.3925 106.557 63.5087C103.967 60.8919 103.989 56.6717 106.606 54.0816Z\" fill=\"#373737\" class=\"line1\"/>\n  <path d=\"M71.4819 26.2376C80.0434 18.4371 93.7943 24.5109 93.7944 36.093V124.888C93.7944 136.263 80.467 142.414 71.811 135.034L43.9165 111.255L17.1577 111.335C11.6234 111.351 7.12842 106.87 7.12842 101.335V61.5569C7.12867 56.0457 11.5879 51.5731 17.0991 51.5569L43.7769 51.4788L71.4819 26.2376Z\" fill=\"#373737\"/>\n</svg>\n","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/soundNext/createSoundParts/create.ls","text":"(function(){\n  return function(s){\n    var totalDone, base64, a, soundParts, res$, i$, len$, i, b, onInitialized, onFinish;\n    totalDone = 0;\n    base64 = s.params.base64;\n    a = _.isArray(base64)\n      ? base64\n      : _.isPlainObject(base64)\n        ? [base64]\n        : base64 != null\n          ? [{\n            base64: base64\n          }]\n          : (function(){\n            throw Error(\"sound base64 is missing\");\n          }());\n    res$ = [];\n    for (i$ = 0, len$ = a.length; i$ < len$; ++i$) {\n      i = i$;\n      b = a[i$];\n      res$.push(inc(\"soundPart/soundPart\")(s, b, i, fn$));\n    }\n    soundParts = res$;\n    onInitialized = function(){\n      totalDone++;\n      if (totalDone === a.length) {\n        return onFinish();\n      }\n    };\n    onFinish = function(){\n      s.initialized = true;\n      return s.applyParams();\n    };\n    return soundParts;\n    function fn$(){\n      return onInitialized();\n    }\n  };\n})();","updated":"2026-01-27T15:34:17.084523"},{"path":"lib/util/soundNext/createSoundParts/soundPart/createAudioData/logAndAnalyseError/logAndAnalyse.ls","text":"(function(){\n  var hasValidated;\n  hasValidated = false;\n  return function(s, sp, error){\n    var b64, fileId, soundPartIndex;\n    b64 = sp.base64;\n    fileId = s.params.fileId;\n    soundPartIndex = sp.index;\n    if (typeof log != 'undefined' && log !== null) {\n      log.log({\n        event: \"debugSoundNextError\",\n        errorMessage: error != null ? error.message : void 8,\n        fileId: fileId,\n        soundPartIndex: soundPartIndex,\n        base64Start: b64.substr(0, 30),\n        base64End: b64.substr(b64.length - 100),\n        version: 2\n      });\n    }\n    if (hasValidated) {\n      return;\n    } else {\n      hasValidated = true;\n    }\n    return inc(\"validateReencodedBase64/validate\")({\n      base64: b64,\n      onDone: function(result){\n        var e;\n        e = {\n          event: \"debugSoundNextErrorValidateReencoded\",\n          fileId: fileId,\n          soundPartIndex: soundPartIndex,\n          userAgent: window.navigator.userAgent,\n          validateResult: result\n        };\n        return typeof log != 'undefined' && log !== null ? log.log(e) : void 8;\n      }\n    });\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/soundNext/createSoundParts/soundPart/createAudioData/logAndAnalyseError/validateReencodedBase64/requestNewBase64String/request.ls","text":"(function(){\n  return function(p){\n    return inc(\"/lib/util/apiCall/call\")({\n      serverName: \"https://apis-1-debug.solocode.com/soundNextRecreateMp3\",\n      path: \"/\",\n      method: \"post\",\n      params: {\n        base64String: p.base64\n      },\n      onError: function(e){\n        return p.onError(e);\n      },\n      onOffline: function(){\n        return p.onError(\"offline\");\n      },\n      onCompleted: function(result){\n        if (result.message === \"error\") {\n          return p.onError(result.error);\n        } else {\n          return p.onLoaded(result.newBase64String);\n        }\n      }\n    });\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/soundNext/createSoundParts/soundPart/createAudioData/logAndAnalyseError/validateReencodedBase64/validate.ls","text":"(function(){\n  var hasValidated;\n  hasValidated = false;\n  return function(p){\n    var sendToServer, validateNewBase64, finish;\n    sendToServer = function(){\n      return inc(\"requestNewBase64String/request\")({\n        base64: p.base64,\n        onError: function(error){\n          return finish(error);\n        },\n        onLoaded: validateNewBase64\n      });\n    };\n    validateNewBase64 = function(newBase64String){\n      return inc(\"validateBase64String/validate\")({\n        base64String: newBase64String,\n        onError: function(error){\n          return finish(error);\n        },\n        onOk: function(){\n          return finish(\"newBase64IsOk\");\n        }\n      });\n    };\n    finish = function(result){\n      return p.onDone(result);\n    };\n    return sendToServer();\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/soundNext/createSoundParts/soundPart/createAudioData/logAndAnalyseError/validateReencodedBase64/validateBase64String/validate.ls","text":"(function(){\n  return function(p){\n    var data, characters, numbers, i$, len$, i, c, array, error;\n    try {\n      data = p.base64String.split(\"base64,\")[1].trim();\n      characters = atob(data);\n      numbers = new Array(characters.length);\n      for (i$ = 0, len$ = characters.length; i$ < len$; ++i$) {\n        i = i$;\n        c = characters[i$];\n        numbers[i] = characters.charCodeAt(i);\n      }\n      array = new Uint8Array(numbers);\n      return sound.audioContext.decodeAudioData(array.buffer, p.onOk, p.onError);\n    } catch (e$) {\n      error = e$;\n      return p.onError(error.message);\n    }\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/stretch/createStretchSource/calcChannelBuffers/calc.ls","text":"(function(){\n  return function(audioData){\n    var channelBuffers, i$, to$, i, channelData;\n    channelBuffers = [];\n    for (i$ = 0, to$ = audioData.numberOfChannels - 1; i$ <= to$; ++i$) {\n      i = i$;\n      channelData = audioData.getChannelData(i);\n      channelBuffers.push(channelData);\n    }\n    return channelBuffers;\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/stretch/createStretchSource/create.ls","text":"(function(){\n  return async function(p){\n    var stretch, channelBuffers;\n    stretch = (await window.signalsmithStretch(p.audioContext));\n    channelBuffers = inc(\"calcChannelBuffers/calc\")(p.audioData);\n    stretch.addBuffers(channelBuffers);\n    return stretch;\n  };\n})();","updated":"2026-03-23T16:21:30.749559"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/normal/createSource/create.ls","text":"(function(){\n  return function(audioData){\n    var source;\n    source = sound.audioContext.createBufferSource();\n    source.buffer = audioData;\n    return source;\n  };\n})();","updated":"2026-03-24T09:01:38.932678"},{"path":"lib/util/soundNext/fadeout/fadeout.ls","text":"(function(){\n  return function(s, duration){\n    var ref$;\n    if ((ref$ = s.currentSoundPart) != null) {\n      ref$.fadeOut(duration);\n    }\n    return s.isPlaying = false;\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/soundNext/onFinish/on.ls","text":"(function(){\n  return function(s){\n    var ref$;\n    s.isPlaying = false;\n    return typeof (ref$ = s.params).onFinish == 'function' ? ref$.onFinish() : void 8;\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/gui/divEditable/updateCustomCursor/calcCursorPos/calc.ls","text":"(function(){\n  return function(lineDiv, offset, dr){\n    var nextNode, n, r, rr;\n    nextNode = lineDiv.childNodes[offset];\n    n = document.createTextNode(\"X\");\n    n.ignoreOnMutation = true;\n    lineDiv.insertBefore(n, nextNode);\n    r = document.createRange();\n    r.setStart(n, 0);\n    r.setEnd(n, 1);\n    rr = r.getClientRects()[0];\n    n.remove();\n    return {\n      left: rr.left,\n      top: rr.top - dr.top,\n      height: rr.height\n    };\n  };\n})();","updated":"2026-02-24T10:26:39.75211"},{"path":"lib/util/soundNext/onProgress/on.ls","text":"(function(){\n  return function(s, currentTimeSound, analyserData){\n    var ref$;\n    return typeof (ref$ = s.params).onProgress == 'function' ? ref$.onProgress(currentTimeSound, s.duration, analyserData) : void 8;\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/soundNext/play/checkAndFixAudioContext/logFix/log.ls","text":"(function(){\n  return function(s, s2){\n    return typeof log != 'undefined' && log !== null ? log.log({\n      event: \"debugFixAudioContext\",\n      stateOld: s,\n      stateNew: sound.audioContext.state,\n      deviceLogId: Store(\"deviceLogId\")\n    }) : void 8;\n  };\n})();","updated":"2025-12-17T16:35:35.967715"},{"path":"lib/util/soundNext/playNextSoundPart/play.ls","text":"(function(){\n  return async function(s){\n    var sp, error;\n    s.currentSoundPartIndex++;\n    sp = s.soundParts[s.currentSoundPartIndex];\n    s.currentSoundPart = sp;\n    if (!sp || !s.isPlaying) {\n      return s.onFinish();\n    } else {\n      try {\n        return (await sp.play());\n      } catch (e$) {\n        error = e$;\n        return s.onPlayError(error);\n      }\n    }\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/soundNext/stop/stop.ls","text":"(function(){\n  return function(s){\n    var ref$, ref1$;\n    if (!s.isPlaying) {\n      return;\n    }\n    if ((ref$ = s.currentSoundPart) != null) {\n      ref$.stop();\n    }\n    s.isPlaying = false;\n    return typeof (ref1$ = s.params).onStop == 'function' ? ref1$.onStop() : void 8;\n  };\n})();","updated":"2025-10-15T11:09:00.606796"},{"path":"lib/util/soundNext/play/waitUntilInitialized/wait.ls","text":"(function(){\n  return async function(s){\n    var i;\n    i = 0;\n    for (;;) {\n      if (s.initialized === true) {\n        return;\n      }\n      if (i === 150) {\n        throw Error(\"waitUntilInitialized failed after 15 secs\");\n      }\n      i++;\n      (await sleep(100));\n    }\n  };\n})();","updated":"2026-01-08T09:49:10.235917"},{"path":"lib/init/subscribeDeviceAndUserLogs/subscribeDeviceLog/var/calcLogIdStartsWith/calc.ls","text":"(function(){\n  return function(){\n    var logId, ref$, firstChar, ref1$;\n    logId = typeof window != 'undefined' && window !== null ? (ref$ = window.log) != null ? ref$.id() : void 8 : void 8;\n    if (!logId) {\n      return false;\n    }\n    firstChar = (ref1$ = _.first(logId.split(\"-\")[1])) != null ? ref1$.toLowerCase() : void 8;\n    if (firstChar === \"a\" || firstChar === \"b\" || firstChar === \"c\" || firstChar === \"x\" || firstChar === \"y\" || firstChar === \"z\") {\n      return true;\n    }\n    return false;\n  };\n})();","updated":"2026-02-24T10:26:39.75211"},{"path":"pages/start/startUser/04_logStartEvents/log.ls","text":"(function(){\n  return function(o){\n    var callback;\n    callback = function(){\n      return inc(\"../05_calcGuiLanguage/calc\")(o);\n    };\n    inc(\"sessionStart/log\")(o.loginType);\n    inc(\"repairAvatar/repair\")();\n    inc(\"deviceLogin/log\")(o.logId, o.loginType);\n    inc(\"debugDeviceLogDetails/log\")();\n    inc(\"logNavigationNext/log\")(o);\n    inc(\"logTeacherAchievementEvents/log\")(o);\n    return callback();\n  };\n})();","updated":"2025-11-07T08:37:45.209973"},{"path":"pages/content/start.ls","text":"(function(){\n  return function(o){\n    var ref$, planPath;\n    if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n      if (log.findLast(\"setCurrentPlan\") == null) {\n        startPage({\n          path: path(\"/pages/content/plansNext/page\"),\n          animation: (o != null ? o.animation : void 8) || \"fadeIn\",\n          history: o != null ? o.history : void 8\n        });\n        return;\n      }\n    }\n    planPath = inc(\"/data/content/calcCurrentPlan/calc\")();\n    return startPage({\n      path: path(\"/pages/content/plan/page\"),\n      animation: (o != null ? o.animation : void 8) || \"fadeIn\",\n      history: o != null ? o.history : void 8,\n      params: {\n        planPath: planPath\n      }\n    });\n  };\n})();","updated":"2025-10-17T14:02:40.574066"},{"path":"pages/misc/timeline/_topbarNext/calcTools/calc.ls","text":"(function(){\n  return function(page){\n    return {\n      type: \"print\",\n      hoverLabel: T(\"printTimelineHoverlabel\"),\n      tap: function(){\n        var ref$;\n        return (ref$ = page.timelineDiv) != null ? ref$.openPrintPopup() : void 8;\n      }\n    };\n  };\n})();","updated":"2025-10-17T14:02:40.574066"},{"path":"pages/content/_t.ls","text":"(function(){\n  return {\n    search: {\n      de: \"Suchen\",\n      en: \"Search\",\n      fr: \"Recherche\",\n      es: \"Buscar\",\n      pt: \"Buscar\"\n    },\n    subjects: {\n      de: \"Fächer\",\n      en: \"Subjects\",\n      fr: \"Matières\",\n      es: \"Materias\",\n      pt: \"Disciplinas\"\n    },\n    downloadPlanHoverLabel: {\n      deDev: \"Lerninhalte herunterladen\",\n      en_gb: \"Download content\",\n      enDev: \"Download learning materials\",\n      frDev: \"Télécharger les contenus d'apprentissage\",\n      esDev: \"Descargar contenidos de aprendizaje\",\n      ptDev: \"Baixar conteúdos de aprendizagem\"\n    },\n    previewHoverLabel: {\n      deDev: \"Level-Vorschau\",\n      en_gb: \"Level preview\",\n      enDev: \"Level preview\",\n      frDev: \"Aperçu du niveau\",\n      esDev: \"Vista previa del nivel\",\n      ptDev: \"Prévia do nível\"\n    }\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"pages/misc/timeline/_topbarNext/_t.ls","text":"(function(){\n  return {\n    printTimelineHoverlabel: {\n      deDev: \"Verlauf drucken\",\n      en_gb: \"Print history\",\n      enDev: \"Print history\",\n      frDev: \"Imprimer l'historique\",\n      esDev: \"Imprimir historial\",\n      ptDev: \"Imprimir histórico\"\n    }\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"lib/svg/icon/speaker.svg","text":"<svg width=\"96\" height=\"96\" viewBox=\"0 0 96 96\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path d=\"M73.1984 19.9574C74.5679 18.2242 77.0832 17.9289 78.8165 19.2982C83.1385 22.7133 86.6392 27.0552 89.0597 32.0033C91.4802 36.9515 92.7598 42.3807 92.8029 47.889C92.8459 53.3972 91.6515 58.8451 89.3087 63.8305C86.9659 68.8158 83.5338 73.2114 79.2657 76.6937C77.5541 78.0903 75.0344 77.8351 73.6378 76.1234C72.2414 74.4118 72.4967 71.8921 74.2081 70.4955C77.5484 67.7701 80.2349 64.3298 82.0685 60.4281C83.902 56.5264 84.8365 52.2625 84.8029 47.9515C84.7691 43.6405 83.7685 39.3916 81.8741 35.5189C79.9798 31.6464 77.24 28.2484 73.8575 25.5756C72.1243 24.206 71.8291 21.6907 73.1984 19.9574Z\" fill=\"#373737\" class=\"line2\"/>\n  <path d=\"M63.6865 31.849C65.2566 30.295 67.7888 30.3082 69.3428 31.8783C71.0639 33.6172 72.4993 35.6257 73.5889 37.8304C75.1103 40.909 75.9182 44.2912 75.9531 47.725C75.9879 51.1585 75.2494 54.5558 73.791 57.6644C72.6804 60.0317 71.1738 62.1855 69.3428 64.0355C67.7888 65.6055 65.2566 65.6186 63.6865 64.0648C62.1164 62.5107 62.1032 59.9777 63.6572 58.4076C64.8473 57.2052 65.826 55.8055 66.5478 54.2669C67.4958 52.2463 67.9767 50.0379 67.9541 47.806C67.9314 45.5741 67.4059 43.3754 66.417 41.3744C65.7088 39.9414 64.7759 38.6355 63.6572 37.5052C62.1033 35.9351 62.1165 33.403 63.6865 31.849Z\" fill=\"#373737\" class=\"line1\"/>\n  <path d=\"M42.6123 15.1426C47.7492 10.4623 55.9999 14.1064 56 21.0557V74.333C56 81.1578 48.0032 84.8486 42.8096 80.4209L26.0732 66.1533L10.0176 66.2012C6.69702 66.2109 4 63.5217 4 60.2012V36.334C4.00015 33.0273 6.67571 30.3437 9.98242 30.334L25.9893 30.2871L42.6123 15.1426ZM30.5225 36.9795C29.6054 37.815 28.4105 38.2804 27.1699 38.2842L12 38.3281V58.1943L27.1611 58.1504C28.3551 58.1469 29.5113 58.5711 30.4199 59.3457L48 74.333V21.0557L30.5225 36.9795Z\" fill=\"#373737\"/>\n</svg>\n","updated":"2025-10-20T11:05:43.463365"},{"path":"lib/svg/iconModern/speaker.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M73.198 19.957a4 4 0 0 1 5.619-.659 36.806 36.806 0 0 1 .449 57.396 4 4 0 1 1-5.058-6.198 28.807 28.807 0 0 0-.35-44.92 4 4 0 0 1-.66-5.619\"/>\n  <path fill=\"#373737\" d=\"M63.687 31.849a4 4 0 0 1 5.656.03 22.86 22.86 0 0 1 0 32.157 4 4 0 1 1-5.686-5.628 14.857 14.857 0 0 0 0-20.903 4 4 0 0 1 .03-5.656M42.612 15.143C47.75 10.463 56 14.106 56 21.056v53.277c0 6.825-7.997 10.516-13.19 6.088L26.073 66.153l-16.055.048a6 6 0 0 1-6.018-6V36.334a6 6 0 0 1 5.982-6l16.007-.047zM30.522 36.98a5 5 0 0 1-3.352 1.304L12 38.328v19.866l15.161-.044a5 5 0 0 1 3.259 1.196L48 74.333V21.056z\"/>\n</svg>\n","updated":"2025-10-23T08:28:55.715918"},{"path":"lib/svg/iconModern/camera.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M48 33c9.389 0 17 7.611 17 17s-7.611 17-17 17-17-7.611-17-17 7.611-17 17-17m0 8a9 9 0 1 0 0 18 9 9 0 0 0 0-18\" clip-rule=\"evenodd\"/>\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M64.001 21.993c.408.481.955.712 1.451.712h12.679c5.474 0 9.869 4.442 9.869 9.897v37.502C88 75.557 83.605 80 78.13 80H17.87C12.394 80 8 75.558 8 70.103v-37.5c0-5.455 4.395-9.897 9.87-9.897h13.07c.496 0 1.041-.23 1.45-.712L38.224 15h19.944zm-25.49 5.152-.011.013-.012.013c-1.86 2.192-4.602 3.534-7.549 3.534H17.87a1.875 1.875 0 0 0-1.869 1.897v37.502c0 1.07.848 1.896 1.87 1.896h60.26c1.022 0 1.87-.826 1.87-1.897v-37.5a1.876 1.876 0 0 0-1.87-1.897H65.453c-2.947 0-5.688-1.342-7.549-3.534l-.011-.013-.011-.014L54.423 23H41.968z\" clip-rule=\"evenodd\"/>\n</svg>","updated":"2025-10-23T08:28:55.715918"},{"path":"lib/svg/iconModern/check-off.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M76 12a8 8 0 0 1 8 8v56a8 8 0 0 1-8 8H20a8 8 0 0 1-8-8V20a8 8 0 0 1 8-8zM20 76h56V20H20z\"/>\n</svg>\n","updated":"2025-10-23T08:28:55.715918"},{"path":"lib/svg/iconModern/sort-down.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#292C36\" d=\"M73.48 24.91a4 4 0 0 1 4 4v37.027l5.006-5.261a4 4 0 0 1 5.797 5.513L76.378 78.703l-.004.004-.125.124-.032.031q-.053.049-.108.096l-.047.042a4 4 0 0 1-.15.121 3.98 3.98 0 0 1-2.43.825h-.001a4 4 0 0 1-2.103-.597l-.03-.019-.132-.087-.045-.032q-.06-.041-.118-.085l-.042-.033a4 4 0 0 1-.266-.23l-.025-.023-.12-.12-.014-.013-11.937-12.513a4 4 0 0 1 5.788-5.521l5.044 5.286V28.91a4 4 0 0 1 4-4M31.752 50.728a4 4 0 0 1 0 8H11.465a4 4 0 0 1 0-8zm9.22-19.364a4 4 0 1 1 0 8H11.466a4 4 0 0 1 0-8zM50.194 12a4 4 0 0 1 0 8H11.465a4 4 0 0 1 0-8z\"/>\n</svg>\n","updated":"2025-10-23T08:28:55.715918"},{"path":"lib/svg/iconModern/sort-up.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#292C36\" d=\"M73.48 67.09a4 4 0 0 0 4-4V26.063l5.006 5.261a4 4 0 0 0 5.797-5.513L76.378 13.298l-.004-.004-.125-.124-.032-.031q-.053-.049-.108-.096l-.047-.042a4 4 0 0 0-.15-.121 3.98 3.98 0 0 0-2.43-.825h-.001c-.772 0-1.492.219-2.103.597l-.03.019q-.067.042-.132.087l-.045.032-.118.085-.042.033a4 4 0 0 0-.266.23l-.025.023-.12.12-.014.013-11.937 12.513a4 4 0 0 0 5.788 5.521l5.044-5.286V63.09a4 4 0 0 0 4 4M31.752 41.272a4 4 0 0 0 0-8H11.465a4 4 0 0 0 0 8zm9.22 19.364a4 4 0 1 0 0-8H11.466a4 4 0 0 0 0 8zM50.194 80a4 4 0 0 0 0-8H11.465a4 4 0 0 0 0 8z\"/>\n</svg>\n","updated":"2025-10-23T08:28:55.715918"},{"path":"lib/svg/iconModern/speaker-off.svg","text":"<svg width=\"96\" height=\"96\" viewBox=\"0 0 96 96\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M73.1984 19.9574C74.5679 18.2242 77.0832 17.9289 78.8165 19.2982C83.1385 22.7133 86.6392 27.0552 89.0597 32.0033C91.4802 36.9515 92.7598 42.3807 92.8029 47.889C92.8459 53.3972 91.6515 58.8451 89.3087 63.8305C86.9659 68.8158 83.5338 73.2114 79.2657 76.6937C77.5541 78.0903 75.0344 77.8351 73.6378 76.1234C72.2414 74.4118 72.4967 71.8921 74.2081 70.4955C77.5484 67.7701 80.2349 64.3298 82.0685 60.4281C83.902 56.5264 84.8365 52.2625 84.8029 47.9515C84.7691 43.6405 83.7685 39.3916 81.8741 35.5189C79.9798 31.6464 77.24 28.2484 73.8575 25.5756C72.1243 24.206 71.8291 21.6907 73.1984 19.9574Z\" fill=\"#373737\"/>\n<path d=\"M63.6865 31.849C65.2566 30.295 67.7888 30.3082 69.3428 31.8783C71.0639 33.6172 72.4993 35.6257 73.5889 37.8304C75.1103 40.909 75.9182 44.2912 75.9531 47.725C75.9879 51.1585 75.2494 54.5558 73.791 57.6644C72.6804 60.0317 71.1738 62.1855 69.3428 64.0355C67.7888 65.6055 65.2566 65.6186 63.6865 64.0648C62.1164 62.5107 62.1032 59.9777 63.6572 58.4076C64.8473 57.2052 65.826 55.8055 66.5479 54.2669C67.4959 52.2463 67.9767 50.0379 67.9541 47.806C67.9314 45.5741 67.4059 43.3754 66.417 41.3744C65.7088 39.9414 64.7759 38.6355 63.6572 37.5052C62.1033 35.9351 62.1165 33.403 63.6865 31.849Z\" fill=\"#373737\"/>\n<path d=\"M42.6123 15.1426C47.7492 10.4623 55.9999 14.1064 56 21.0557V74.333C56 81.1578 48.0032 84.8486 42.8096 80.4209L26.0732 66.1533L10.0176 66.2012C6.69702 66.2109 4 63.5217 4 60.2012V36.334C4.00015 33.0273 6.67571 30.3437 9.98242 30.334L25.9893 30.2871L42.6123 15.1426ZM30.5225 36.9795C29.6054 37.815 28.4105 38.2804 27.1699 38.2842L12 38.3281V58.1943L27.1611 58.1504C28.3551 58.1469 29.5113 58.5711 30.4199 59.3457L48 74.333V21.0557L30.5225 36.9795Z\" fill=\"#373737\"/>\n<path d=\"M76.5303 12.9215C78.0924 11.3595 80.6251 11.3594 82.1871 12.9215C83.7492 14.4836 83.7492 17.0163 82.1871 18.5784L18.1871 82.5784C16.625 84.1405 14.0923 84.1405 12.5302 82.5784C10.9681 81.0163 10.9681 78.4837 12.5302 76.9216L76.5303 12.9215Z\" fill=\"#373737\"/>\n</svg>\n","updated":"2025-10-23T08:28:55.715918"},{"path":"lib/svg/iconModern/check-on.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M76 12a8 8 0 0 1 8 8v56a8 8 0 0 1-8 8H20a8 8 0 0 1-8-8V20a8 8 0 0 1 8-8zm-7.299 18.571a4 4 0 0 0-5.653.204L39.36 56.238l-7.008-7.008a4 4 0 0 0-5.657 5.657l9.942 9.941a4 4 0 0 0 5.757-.103l26.511-28.5a4 4 0 0 0-.204-5.654\"/>\n</svg>\n","updated":"2025-10-23T12:49:55.429299"},{"path":"lib/svg/icon/speaker-off.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M73.198 19.957a4 4 0 0 1 5.619-.659 36.806 36.806 0 0 1 .449 57.396 4 4 0 1 1-5.058-6.198 28.807 28.807 0 0 0-.35-44.92 4 4 0 0 1-.66-5.619\"/>\n  <path fill=\"#373737\" d=\"M63.687 31.849a4 4 0 0 1 5.656.03 22.86 22.86 0 0 1 0 32.157 4 4 0 1 1-5.686-5.628 14.857 14.857 0 0 0 0-20.903 4 4 0 0 1 .03-5.656M42.612 15.143C47.75 10.463 56 14.106 56 21.056v53.277c0 6.825-7.997 10.516-13.19 6.088L26.073 66.153l-16.055.048a6 6 0 0 1-6.018-6V36.334a6 6 0 0 1 5.982-6l16.007-.047zM30.522 36.98a5 5 0 0 1-3.352 1.304L12 38.328v19.866l15.161-.044a5 5 0 0 1 3.259 1.196L48 74.333V21.056z\"/>\n  <path fill=\"#373737\" d=\"M76.53 12.922a4 4 0 0 1 5.657 5.656l-64 64a4 4 0 0 1-5.657-5.656z\"/>\n</svg>\n","updated":"2025-10-23T12:49:55.429299"},{"path":"pages/games/00_shared/gameDescriptions/setDisabledBy/calcDisabledGames/calc.ls","text":"(function(){\n  return function(descriptions){\n    var disabledGames, i$, ref$, len$, sd, ref1$, j$, len1$, d, ref2$, gameId, gd;\n    disabledGames = {};\n    for (i$ = 0, len$ = (ref$ = inc(\"/../app01/data/school/calcSchoolDescriptions/calc\")()).length; i$ < len$; ++i$) {\n      sd = ref$[i$];\n      if (!sd || sd.isAdmin) {\n        continue;\n      }\n      if ((ref1$ = window.schoolLogs[sd.schoolCode].findLast(\"setSchoolLockGames\")) != null && ref1$.isLocked) {\n        for (j$ = 0, len1$ = descriptions.length; j$ < len1$; ++j$) {\n          d = descriptions[j$];\n          disabledGames[d.id] = sd.schoolCode;\n        }\n        return disabledGames;\n      }\n      for (j$ = 0, len1$ = (ref2$ = inc(\"/../app01/data/school/calcDisabledGames/calc\")(sd.schoolCode)).length; j$ < len1$; ++j$) {\n        gameId = ref2$[j$];\n        disabledGames[gameId] = sd.schoolCode;\n      }\n    }\n    for (i$ = 0, len$ = (ref$ = inc(\"/../app01-group/data/calcGroupDescriptions/calc\")()).length; i$ < len$; ++i$) {\n      gd = ref$[i$];\n      if (!(gd != null && gd.userRoles) || gd.userRoles.admin) {\n        continue;\n      }\n      for (j$ = 0, len1$ = (ref2$ = inc(\"/../app01-group/data/calcDisabledGames/calc\")(gd.groupCode)).length; j$ < len1$; ++j$) {\n        gameId = ref2$[j$];\n        disabledGames[gameId] == null && (disabledGames[gameId] = gd.groupCode);\n      }\n    }\n    return disabledGames;\n  };\n})();","updated":"2026-05-06T08:17:24.687336"},{"path":"pages/content/plan/topics/topic/title/betaTag/tag.ls","text":"(function(){\n  return function(topic){\n    if (topic.showBetaTag) {\n      return inc(\"/lib/gui/betaTag/betaTag\")().css({\n        marginLeft: \"0.5em\"\n      });\n    }\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"pages/content/plan/topics/topic/title/title.ls","text":"(function(){\n  return function(topic){\n    var searchQuery, update, div1, div;\n    searchQuery = app.currentPage.params.searchQuery;\n    update = function(){\n      if (app.currentPage.params.searchQuery !== searchQuery) {\n        return div.replaceWith(inc(THISFILE)(topic));\n      }\n    };\n    div1 = inc(\"/lib/seo/element/h2/h2\")().css({\n      color: topic.error ? Color.red[500] : void 8\n    }).append(inc(\"title/title\")(topic), inc(\"searchTag/tag\")(topic), inc(\"betaTag/tag\")(topic), inc(\"newTag/tag\")(topic));\n    div = inc(\"/lib/gui/sectionTitle/sectionTitle\")(div1).addClass(\"update\");\n    div.update = update;\n    return div;\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"lib/gui/inputEditable/icons/search/icon.ls","text":"(function(){\n  return function(i){\n    var svgPath, ref$, ref1$;\n    if (!i.params.showSearchIcon) {\n      return;\n    }\n    svgPath = deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))\n      ? path(\"/lib/svg/iconModern/search.svg\")\n      : path(\"/lib/svg/icon/magnifier.svg\");\n    return Div({\n      display: \"flex\",\n      margin: deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref1$ = log.findLast(\"navigationNext\")) != null && ref1$.enabled)) ? \"0.05em 0.1em 0 0.4em\" : \"0 0.1em 0 0.2em\"\n    }).addClass(\"searchIcon\").append(SvgIcon(svgPath));\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"lib/gui/inputEditable/icons/reset/icon.ls","text":"(function(){\n  return function(i){\n    var divEd, tap, update, svgPath, ref$, div;\n    if (!i.params.showResetIcon) {\n      return;\n    }\n    divEd = i.divEditable;\n    tap = function(){\n      var ref$;\n      i.setValue(\"\");\n      i.start();\n      return typeof (ref$ = i.params).onReset == 'function' ? ref$.onReset() : void 8;\n    };\n    update = function(){\n      if (divEd.getValue().length === 0) {\n        return div.hide();\n      } else {\n        return div.fadeIn(200);\n      }\n    };\n    svgPath = deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))\n      ? path(\"/lib/svg/iconModern/close.svg\")\n      : path(\"/lib/svg/icon/close-small.svg\");\n    div = Div({\n      display: \"flex\",\n      width: \"1.4em\"\n    }).addClass(\"resetIcon\").append(SvgIcon(svgPath)).tap({\n      up: tap,\n      disableCancel: true,\n      tapZone: \"0em 0em 0em 0.3em\"\n    });\n    div.update = update;\n    update();\n    return div;\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"lib/svg/iconModern/search.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M41 10c16.569 0 30 13.432 30 30a29.88 29.88 0 0 1-6.806 19.026l20.157 19.876a4 4 0 1 1-5.618 5.696L58.337 64.484A29.86 29.86 0 0 1 41 70c-16.568 0-30-13.431-30-30 0-16.568 13.432-30 30-30m0 8c-12.15 0-22 9.85-22 22s9.85 22 22 22 22-9.85 22-22-9.85-22-22-22\" clip-rule=\"evenodd\"/>\n</svg>\n","updated":"2025-10-29T09:25:20.454178"},{"path":"lib/gui/betaTag/_t.ls","text":"(function(){\n  return {\n    beta: {\n      de: \"BETA\",\n      en: \"BETA\",\n      fr: \"BETA\",\n      es: \"BETA\",\n      pt: \"BETA\"\n    }\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"lib/gui/betaTag/betaTag.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"inline-flex\",\n      color: \"white\",\n      backgroundColor: Color.blue[500],\n      padding: \"0 0.15em\",\n      lineHeight: \"1.3em\",\n      borderRadius: \"2px\",\n      fontSize: \"0.7em\",\n      fontStyle: \"normal\",\n      fontWeight: \"normal\",\n      verticalAlign: \"0.15em\"\n    }).html(T(\"beta\"));\n  };\n})();","updated":"2025-10-29T09:25:20.454178"},{"path":"lib/svg/iconModern/close.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M19.628 19.716a4 4 0 0 1 5.656 0l22.628 22.627 22.627-22.627a4 4 0 1 1 5.657 5.657L53.569 48l22.627 22.627a4 4 0 0 1-5.657 5.657L47.912 53.657 25.284 76.284a4 4 0 0 1-5.656-5.657L42.255 48 19.628 25.373a4 4 0 0 1 0-5.657\"/>\n</svg>\n","updated":"2025-10-29T09:25:20.454178"},{"path":"pages/level/reviewOrPreviewPopup/showSlidesPopup/header/header.ls","text":"(function(){\n  return function(level, p){\n    var events, currentIndex, currentEvent, isMulti, div, arrow;\n    if (p.popupType !== \"review\") {\n      return;\n    }\n    events = _.filter(p.events, function(e){\n      var ref$;\n      return (ref$ = e.event) === \"finishLevel\" || ref$ === \"abortLevel\";\n    });\n    currentIndex = _.findIndex(events, function(e){\n      return _.isEqual(new Date(e.created), new Date(level.finishedAt));\n    });\n    currentEvent = events[currentIndex];\n    isMulti = events.length > 1;\n    if (!currentEvent) {\n      return;\n    }\n    return Div({\n      display: \"flex\",\n      boxShadow: \"0px 1px 2px \" + Color.grey[250],\n      padding: \"0.4em\"\n    }).addClass(\"reviewPopupHeader\").html(div = Div({\n      display: \"inline-flex\",\n      padding: isMulti ? \"0.3em 1em 0.3em 0.3em\" : \"0.3em\"\n    }).html(Div().html(inc(\"../../_shared/calcDateLabel/calc\")(p, currentEvent)), inc(\"progressBar/progressBar\")(currentEvent), isMulti ? arrow = inc(\"arrow/arrow\")(events) : void 8).tap(isMulti ? function(){\n      return inc(\"showTrialsOverlay/show\")(arrow, level, p);\n    } : void 8), inc(\"printButton/button\")(level, p));\n  };\n})();","updated":"2025-11-24T11:24:05.793154"},{"path":"pages/support/help/faqList/_topbarNext/onBack/on.ls","text":"(function(){\n  return function(page){\n    var onBack;\n    if (page.params.isStandaloneFaqPage || page.params.isDeepLink) {\n      return;\n    }\n    return onBack = function(){\n      return startPage({\n        history: -1,\n        animation: \"slideRight\"\n      });\n    };\n  };\n})();","updated":"2025-11-24T11:24:05.793154"},{"path":"pages/support/help/overviewNext/rowsDiv/div.ls","text":"(function(){\n  return function(page){\n    return Div({\n      maxWidth: \"90%\",\n      width: \"35em\",\n      margin: \"0 auto 4em\"\n    }).html(Div({\n      height: \"3em\"\n    }), inc(\"row/row\")({\n      title: T(\"faq\"),\n      description: T(\"faqDescription\")\n    }).tap(function(){\n      return startPage({\n        path: path(\"../../faqList/page\"),\n        animation: \"slideLeft\"\n      });\n    }), inc(\"row/row\")({\n      title: T(\"chat\"),\n      description: T(\"chatDescription\"),\n      badge: inc(\"unreadMessagesBadge/badge\")()\n    }).tap(function(){\n      return page.clickOpenChat();\n    }));\n  };\n})();","updated":"2025-11-24T11:24:05.793154"},{"path":"lib/svg/iconModern/pause.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <rect width=\"16\" height=\"64\" x=\"27\" y=\"16\" fill=\"#373737\" rx=\"4\"/>\n  <rect width=\"16\" height=\"64\" x=\"53\" y=\"16\" fill=\"#373737\" rx=\"4\"/>\n</svg>","updated":"2025-11-24T11:24:05.793154"},{"path":"lib/svg/iconModern/play.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M27.451 17.451c.021-3.19 3.585-5.073 6.232-3.292l45.36 30.507c2.363 1.59 2.356 5.068-.013 6.648L33.268 81.82c-2.668 1.779-6.24-.148-6.218-3.354z\"/>\n</svg>","updated":"2025-11-24T11:24:05.793154"},{"path":"pages/support/help/overviewNext/rowsDiv/unreadMessagesBadge/badge.ls","text":"(function(){\n  return function(p){\n    var badgeCount, div;\n    badgeCount = inc(\"/data/user/chat/calcUnreadMessagesCount/calc\")();\n    div = Div({\n      display: \"flex\",\n      position: \"absolute\",\n      top: \"0.9em\",\n      right: \"-1.4em\",\n      backgroundColor: Color.red[600],\n      color: Color.white,\n      fontSize: \"0.6em\",\n      width: \"1.4em\",\n      height: \"1.4em\",\n      borderRadius: \"8px\",\n      zIndex: 1,\n      filter: 'drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.4))'\n    }).html(badgeCount).addClass(\"onNewLogEvents_supportChat\");\n    if (!badgeCount) {\n      div.hide();\n    }\n    div.onNewLogEvents = function(){\n      return div.replaceWith(inc(THISFILE)(p));\n    };\n    return div;\n  };\n})();","updated":"2025-11-24T11:24:05.793154"},{"path":"lib/init/startFirstPage/welcome/welcome.ls","text":"(function(){\n  return function(){\n    var pageUrl;\n    pageUrl = inc(\"/lib/util/browser/getPageUrl/get\")();\n    if (_.startsWith(pageUrl, T(\"learnUrl\")) && !engine.isBotMode) {\n      engine.contentDeeplink = {\n        pageUrl: pageUrl,\n        setAt: new Date()\n      };\n    }\n    if (_.startsWith(pageUrl, T(\"learnListUrl\")) && !engine.isBotMode) {\n      engine.learnListDeeplink = {\n        pageUrl: pageUrl,\n        setAt: new Date()\n      };\n    }\n    if (pageUrl === \"\" || engine.isMobileApp || location.host === \"preview.anton.app\" || (_.startsWith(pageUrl, T(\"learnUrl\")) && !engine.isBotMode) || (_.startsWith(pageUrl, T(\"learnListUrl\")) && !engine.isBotMode)) {\n      startPage({\n        history: -(app.pageHistory.length - 1),\n        path: path(\"/../app01-welcome/pages/welcome/page\"),\n        animation: \"fadeIn\"\n      });\n      return true;\n    }\n  };\n})();","updated":"2025-11-24T11:36:07.488887"},{"path":"lib/init/startFirstPage/deepLinkLearnList/loadLearnList/logOpenListDeeplink/log.ls","text":"(function(){\n  return function(result, listCode){\n    var report, isCreator, ref$;\n    report = result.report;\n    isCreator = (report != null ? report.creatorPublicId : void 8) === ((ref$ = log.findLast(\"setPublicId\")) != null ? ref$.value : void 8);\n    return log.log({\n      event: \"debugOpenListDeeplink\",\n      listCode: listCode,\n      learnListExists: result.status !== \"not_found\",\n      hasAccess: result.status === \"ok\",\n      visibility: report != null ? report.visibility : void 8,\n      isCreator: isCreator\n    });\n  };\n})();","updated":"2025-11-24T11:36:07.488887"},{"path":"lib/init/startFirstPage/deepLinkLearnList/deepLinkLearnList.ls","text":"(function(){\n  return function(pageUrl){\n    var prefixes, listCode;\n    pageUrl == null && (pageUrl = inc(\"/lib/util/browser/getPageUrl/get\")());\n    prefixes = [\"lernlisten\", \"study-list\", \"listes\", \"listas\", \"listas-de-estudo\"];\n    if (!prefixes.some(function(p){\n      return _.startsWith(pageUrl, p);\n    })) {\n      return false;\n    }\n    listCode = pageUrl.split(\"/\")[1];\n    if (listCode != null) {\n      inc(\"loadLearnList/load\")(listCode);\n    } else {\n      return false;\n    }\n    return true;\n  };\n})();","updated":"2026-01-15T15:58:34.872823"},{"path":"lib/gui/divEditable/stop/stop.ls","text":"(function(){\n  return function(d){\n    var sel, ref$, ref1$, ref2$;\n    if (!d.isStarted) {\n      return;\n    }\n    sel = window.getSelection();\n    if (d.div.contains(sel.anchorNode) && d.div.contains(sel.focusNode)) {\n      d.lastSelectionPositions = d.getSelectionPositions();\n      sel.removeAllRanges();\n    }\n    d.isStarted = false;\n    d.stoppedAt = new Date();\n    if (d.softKeyboardMode !== \"noneFake\" && document.activeElement === d.div) {\n      d.div.blur();\n    }\n    if ((ref$ = d.overlayDiv) != null) {\n      ref$.onStop();\n    }\n    d.updateCustomCursor();\n    if ((ref1$ = d.cursorWrapper) != null) {\n      ref1$.css({\n        opacity: 0\n      });\n    }\n    if (d.documentListenerBinded) {\n      d.documentListenerBinded = false;\n      document.removeEventListener(\"selectionchange\", d.onSelectionChange);\n      document.removeEventListener(\"pause\", d.onAppPause);\n      window.removeEventListener(\"resize\", d.onWindowResize);\n    }\n    window.dispatchEvent(new Event(\"editDivStop\"));\n    inc(\"resetBottomFreeze/reset\")(d);\n    return typeof (ref2$ = d.params).onStop == 'function' ? ref2$.onStop() : void 8;\n  };\n})();","updated":"2025-11-28T13:14:53.271867"},{"path":"lib/gui/divEditable/div.ls","text":"(function(){\n  return function(params){\n    var p, d, ref$, div, a, i$, len$, n;\n    params == null && (params = {});\n    p = params != null\n      ? params\n      : {};\n    document.execCommand(\"defaultParagraphSeparator\", false, \"div\");\n    inc(\"fixiOsCaretColor/fix\")();\n    d = {\n      params: params,\n      nextLineId: 1,\n      enabled: (ref$ = p.enabled) != null ? ref$ : true,\n      isStarted: false,\n      isDebug: (ref$ = p.debug) != null ? ref$ : false,\n      softKeyboardMode: \"text\",\n      parseMode: (ref$ = p.parseMode) != null ? ref$ : \"normal\",\n      specialElements: (ref$ = p.specialElements) != null\n        ? ref$\n        : {},\n      multilinePaste: (ref$ = p.multilinePaste) != null ? ref$ : true,\n      rememberLastSelection: (ref$ = p.rememberLastSelection) != null ? ref$ : true,\n      fontFamily: (ref$ = p.fontFamily) != null ? ref$ : \"\",\n      lineHeight: (ref$ = p.lineHeight) != null ? ref$ : \"1.7em\",\n      lineHeightRoundToInteger: (ref$ = p.lineHeightRoundToInteger) != null ? ref$ : true,\n      lineHeightSpacingMode: (ref$ = p.lineHeightSpacingMode) != null ? ref$ : false,\n      linePadding: (ref$ = p.linePadding) != null ? ref$ : \"0em 0.2em\",\n      lineWrapping: (ref$ = p.lineWrapping) != null ? ref$ : true,\n      lineWrappingBreakSpace: (ref$ = p.lineWrappingBreakSpace) != null ? ref$ : true,\n      autoCapCorSpelCom: (ref$ = p.autoCapCorSpelCom) != null ? ref$ : \"off off false off\",\n      resetPageBottomFreezeOnStop: (ref$ = p.resetPageBottomFreezeOnStop) != null ? ref$ : false,\n      cssId: inc(\"calcCssId/calc\")(p)\n    };\n    d.div = inc(\"div/div\")(d);\n    d.css = inc(\"css/css\")(d);\n    d.debug = inc(\"debug/debug\")(d);\n    d.overlayDiv = undefined;\n    d.createLineNodes = function(l, params){\n      return inc(\"createLineNodes/create\")(d, l, params);\n    };\n    d.cleanupLine = function(lineDiv){\n      return inc(\"cleanupLine/cleanup\")(d, lineDiv);\n    };\n    d.getSelectionPositions = function(){\n      return inc(\"selectionPositions/get/get\")(d);\n    };\n    d.setSelectionPositions = function(selPos){\n      return inc(\"selectionPositions/set/set\")(d, selPos);\n    };\n    d.getSelectionRange = function(positions){\n      return inc(\"getSelectionRange/get\")(d, positions);\n    };\n    d.updateCustomCursor = function(){\n      return inc(\"updateCustomCursor/update\")(d);\n    };\n    d.updateLineNumbers = function(){\n      return inc(\"updateLineNumbers/update\")(d);\n    };\n    d.enableObserver = function(){\n      return inc(\"enableObserver/enable\")(d);\n    };\n    d.onMutation = function(mr){\n      return inc(\"onMutation/on\")(d, mr);\n    };\n    d.setValue = function(v){\n      return inc(\"setValue/set\")(d, v);\n    };\n    d.getValue = function(){\n      return inc(\"getValue/get\")(d);\n    };\n    d.onSelectionChange = function(){\n      return inc(\"onSelectionChange/on\")(d);\n    };\n    d.onPaste = function(e){\n      return inc(\"onPaste/on\")(d, e);\n    };\n    d.onMouseDown = function(e){\n      return inc(\"onMouseDown/on\")(d, e);\n    };\n    d.onTouchStart = function(e){\n      return inc(\"onTouchStart/on\")(d, e);\n    };\n    d.onCopyOrCut = function(e){\n      return inc(\"onCopyOrCut/on\")(d, e);\n    };\n    d.onWindowResize = function(){\n      return inc(\"onWindowResize/on\")(d);\n    };\n    d.onAppPause = function(){\n      return inc(\"onAppPause/on\")(d);\n    };\n    d.insertAtCursor = function(v){\n      return inc(\"insertAtCursor/insert\")(d, v);\n    };\n    d.keyBack = function(){\n      return inc(\"keyBack/keyBack\")(d);\n    };\n    d.isEmpty = function(){\n      return inc(\"isEmpty/isEmpty\")(d);\n    };\n    d.selectAll = function(){\n      return inc(\"selectAll/select\")(d);\n    };\n    d.enable = function(){\n      return inc(\"enable/enable\")(d);\n    };\n    d.disable = function(){\n      return inc(\"disable/disable\")(d);\n    };\n    d.start = function(selPos){\n      return inc(\"start/start\")(d, selPos);\n    };\n    d.stop = function(){\n      return inc(\"stop/stop\")(d);\n    };\n    d.getSelectedLineDiv = function(){\n      return inc(\"getSelectedLineDiv/get\")(d);\n    };\n    d.getSelectedLineDivs = function(){\n      return inc(\"getSelectedLineDivs/get\")(d);\n    };\n    d.isEnabled = function(){\n      return d.enabled;\n    };\n    d.tapCustomSelect = function(e){\n      return inc(\"tapCustomSelect/tap\")(d, e);\n    };\n    d.setSoftKeyboardEnabled = function(v){\n      return inc(\"setSoftKeyboardEnabled/set\")(d, v);\n    };\n    d.getSoftKeyboardEnabled = function(){\n      return d.softKeyboardMode === \"text\";\n    };\n    d.setSoftKeyboardEnabled(p.softKeyboardEnabled);\n    d.saveHistory = function(){\n      return inc(\"history/save/save\")(d);\n    };\n    d.saveHistoryDebounce = _.debounce(d.saveHistory, 500);\n    d.onHistoryUndo = function(){\n      return inc(\"history/onUndo/on\")(d);\n    };\n    d.onHistoryRedo = function(){\n      return inc(\"history/onRedo/on\")(d);\n    };\n    d.setValue((p != null ? p.value : void 8) || \"\");\n    inc(\"lineHeightSpacing/init/init\")(d);\n    div = d.div;\n    div.d = d;\n    a = \"setValue getValue insertAtCursor keyBack isEmpty enable disable isEnabled selectAll start stop getSelectedLineDiv getSelectedLineDivs getSelectionPositions setSelectionPositions setSoftKeyboardEnabled getSoftKeyboardEnabled\";\n    for (i$ = 0, len$ = (ref$ = a.split(\" \")).length; i$ < len$; ++i$) {\n      n = ref$[i$];\n      div[n] = d[n];\n    }\n    return div;\n  };\n})();","updated":"2025-11-28T13:14:53.271867"},{"path":"pages/content/plan/topics/unlinkedBlocks/unlinkedBlocks.ls","text":"(function(){\n  return function(page){\n    var unlinkedBlocks, topic, ref$, update, div, title, block;\n    unlinkedBlocks = page.plan.unlinkedBlocks;\n    if (unlinkedBlocks == null || unlinkedBlocks.length === 0) {\n      return;\n    }\n    topic = {\n      blocks: page.plan.unlinkedBlocks,\n      title: \"Unlinked Blocks\",\n      puid: ((ref$ = page.planDescription) != null ? ref$.project : void 8) + \"/XXXXXX\"\n    };\n    update = function(){\n      var i$, ref$, len$, el, results$ = [];\n      for (i$ = 0, len$ = (ref$ = div.findAll(\".update\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        results$.push(typeof el.update == 'function' ? el.update() : void 8);\n      }\n      return results$;\n    };\n    div = Div().addClass(\"topicRow\").attr({\n      id: _.replaceAll(topic.title, \" \", \"-\").toLowerCase()\n    }).html(title = inc(\"../topic/title/title\")(topic), Div({\n      borderTop: \"1px solid \" + Color.grey[300]\n    }).html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = topic.blocks).length; i$ < len$; ++i$) {\n        block = ref$[i$];\n        results$.push(inc(\"blockRow/blockRow\")(block, page));\n      }\n      return results$;\n    }())));\n    title.findFirst(\"h2\").prepend(SvgIcon({\n      svg: path(\"/lib/svg/shape/debug.svg\")\n    }).css({\n      margin: \"0 0.2em -0.2em 0\"\n    }));\n    div.update = update;\n    div.topicPath = topic.path;\n    return div;\n  };\n})();","updated":"2025-11-28T13:14:53.271867"},{"path":"lib/gui/divEditable/stop/resetBottomFreeze/reset.ls","text":"(function(){\n  return async function(d){\n    var page, i$, i;\n    if (!d.resetPageBottomFreezeOnStop) {\n      return;\n    }\n    page = app.currentPage;\n    page.setBottomFreeze(\"0px\");\n    if (app.softKeyboardHeight === 0) {\n      return;\n    }\n    for (i$ = 1; i$ <= 20; ++i$) {\n      i = i$;\n      (await sleep(30));\n      if (app.softKeyboardHeight === 0) {\n        break;\n      }\n    }\n    return page.setBottomFreeze(\"0px\");\n  };\n})();","updated":"2025-11-28T13:14:53.271867"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      textAlign: \"justify\",\n      marginBottom: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"text\"));\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/title/title.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      margin: \"1em 0\",\n      fontWeight: \"bold\",\n      width: \"100%\"\n    }).html(T(\"title\"));\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/page.ls","text":"(function(){\n  return function(page){\n    return {\n      statusBarColor: Color.white,\n      top: function(){\n        return inc(\"/addons/topbarWhiteBack/topbar\")({\n          close: inc(\"/pages/start/startUser/07_extraPages/_onExtraPageDone/on\")\n        });\n      },\n      start: function(){\n        var onImageLoaded, content;\n        log.log({\n          event: \"showWidaTestPrepFeedbackInfo\"\n        });\n        onImageLoaded = function(){\n          if (!page.isVisible()) {\n            return;\n          }\n          return page.html(content);\n        };\n        content = inc(\"content/content\")(onImageLoaded);\n        return page.html(inc(\"/../app01/lib/gui/spinner/spinner\")());\n      }\n    };\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"lib/util/downloadContentFile/download.ls","text":"(function(){\n  var queue, totalActive, maxParallel;\n  queue = [];\n  totalActive = 0;\n  maxParallel = 15;\n  return function(job){\n    var redecideContentServer, addToQueue, startNext, onJobDone;\n    job.onError == null && (job.onError = function(){\n      return debug(\"downloadContentFile onError: Attention, no onError function defined\");\n    });\n    job.fileApi == null && (job.fileApi = deviceLog['var'](\"loadDevelopContent\") ? \"filesCalcDevelop\" : \"files\");\n    redecideContentServer = function(){\n      return inc(\"redecideContentServer/redecide\")(addToQueue);\n    };\n    addToQueue = function(){\n      inc(\"addJobToQueue/add\")(job, queue);\n      return startNext();\n    };\n    startNext = function(){\n      var nextJob;\n      if (totalActive >= maxParallel) {\n        return;\n      }\n      nextJob = _.find(queue, function(job){\n        return !job.active;\n      });\n      if (!nextJob) {\n        return;\n      }\n      nextJob.active = true;\n      totalActive++;\n      inc(\"startJob/startJob\")(nextJob, onJobDone);\n      return setTimeout(function(){\n        return startNext();\n      });\n    };\n    onJobDone = function(jobDone){\n      totalActive--;\n      jobDone.active = false;\n      _.pull(queue, jobDone);\n      return setTimeout(function(){\n        return startNext();\n      });\n    };\n    return redecideContentServer();\n  };\n})();","updated":"2025-12-04T11:06:10.537055"},{"path":"addons/topbar2/tools/coins/debugCoinPopup/addCoins/add.ls","text":"(function(){\n  return function(p){\n    var amount;\n    amount = +p.input.getValue();\n    if (amount === 0 || !_.isNumber(amount) || _.isNaN(amount)) {\n      p.input.setValue();\n      p.input.start();\n      return;\n    }\n    inc(\"/lib/gui/spinnerDivOverlay/overlay\")(p.button);\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/user/addCoins/add\"),\n      params: {\n        amount: amount,\n        origin: \"debugPopup\"\n      },\n      onError: function(error){\n        return inc(\"/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        return inc(\"/lib/offline/offlinePopup/popup\")();\n      },\n      onCompleted: function(result){\n        app.currentPopup.close();\n        if (result.status !== \"ok\") {\n          return inc(\"/lib/gui/errorPopup/popup\")({\n            label: result.status === \"error_coinLimitReached\" ? T(\"coinLimitReached\", result.coinLimit) : void 8\n          });\n        } else {\n          return log.sync(function(){\n            return p.onDone();\n          });\n        }\n      }\n    });\n  };\n})();","updated":"2025-12-04T11:06:10.537055"},{"path":"lib/init/startFirstPage/deepLinkLearnList/loadLearnList/load.ls","text":"(function(){\n  return function(listCode){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/learnList/getReportNext/query\"),\n      params: {\n        listCode: listCode\n      },\n      onCompleted: function(result){\n        inc(\"logOpenListDeeplink/log\")(result, listCode);\n        if (result.status === \"ok\") {\n          return inc(\"onDone/onDone\")(result);\n        } else {\n          return startPage({\n            path: path(\"/../app01-learn-list/pages/learnList/deepLinkNoAccess/page\"),\n            history: -(app.pageHistory.length - 1),\n            animation: \"none\",\n            params: {\n              isDeepLink: true,\n              learnListExists: result.status !== \"not_found\"\n            }\n          });\n        }\n      },\n      onError: function(error){\n        return inc(\"/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        return inc(\"/lib/offline/offlinePopup/popup\")();\n      }\n    });\n  };\n})();","updated":"2025-12-04T11:06:10.537055"},{"path":"addons/topbar2/tools/coins/debugCoinPopup/_t.ls","text":"(function(){\n  return {\n    buttonAddCoins: {\n      de: \"Hinzufügen\",\n      en: \"Add\",\n      fr: \"Ajouter\",\n      es: \"Agregar\",\n      pt: \"Adicionar\"\n    },\n    popupTitle: {\n      de: \"Wie viele Münzen möchtest du hinzufügen?\",\n      en: \"How many coins would you like to add?\",\n      fr: \"Combien de pièces veux-tu ajouter&nbsp;?\",\n      es: \"¿Cuántas fichas quieres agregar?\",\n      pt: \"Quantas moedas você gostaria de adicionar?\"\n    },\n    coinLimitReached: {\n      de: \"Auf diesem Weg darfst du höchstens auf eine Anzahl von $1 Münzen kommen.\",\n      en: \"You cannot manually increase your coin total above $1.\",\n      fr: \"Tu ne peux pas avoir plus de $1 coins.\",\n      es: \"Solo puedes agregar hasta $1 fichas.\",\n      pt: \"Você só pode adicionar até $1 moedas.\"\n    }\n  };\n})();","updated":"2025-12-04T11:06:10.537055"},{"path":"lib/init/startFirstPage/deepLinkLearnList/loadLearnList/onDone/onDone.ls","text":"(function(){\n  return function(result){\n    var report, listCode;\n    report = result.report;\n    listCode = report.listCode;\n    inc(\"/lib/util/cache/set/set\")(\"learnListDescription\", listCode, report);\n    return startPage({\n      path: path(\"/../app01-learn-list/pages/learnList/learn/page\"),\n      history: -(app.pageHistory.length - 1),\n      animation: \"none\",\n      params: {\n        listCode: listCode,\n        context: \"deeplink\",\n        isDeepLink: true\n      }\n    });\n  };\n})();","updated":"2025-12-04T11:06:10.537055"},{"path":"lib/util/audioContext/refresh/refresh.ls","text":"(function(){\n  return function(){\n    var ref$, ref1$;\n    if (window.AudioContext) {\n      if ((ref$ = window.sound.audioContext) != null) {\n        if (typeof ref$.close == 'function') {\n          ref$.close();\n        }\n      }\n      window.sound.audioContext = new AudioContext();\n      return app.audioContextDebugEvents.push({\n        event: \"refresh\",\n        created: new Date(),\n        type: \"window.audioContext\"\n      });\n    } else if (window.webkitAudioContext) {\n      if (engine.isiOsApp && window.sound.audioContext != null) {\n        app.audioContextDebugEvents.push({\n          event: \"refresh\",\n          created: new Date(),\n          type: \"window.webkitAudioContext1 close\"\n        });\n        return window.sound.audioContext.close().then(function(){\n          app.audioContextDebugEvents.push({\n            event: \"refresh\",\n            created: new Date(),\n            type: \"window.webkitAudioContext1 new\"\n          });\n          return window.sound.audioContext = new webkitAudioContext();\n        });\n      } else {\n        app.audioContextDebugEvents.push({\n          event: \"refresh\",\n          created: new Date(),\n          type: \"window.webkitAudioContext2 close + new\"\n        });\n        if ((ref1$ = window.sound.audioContext) != null) {\n          if (typeof ref1$.close == 'function') {\n            ref1$.close();\n          }\n        }\n        return window.sound.audioContext = new webkitAudioContext();\n      }\n    } else {\n      return app.audioContextDebugEvents.push({\n        event: \"refresh\",\n        type: \"no audio context, retries\",\n        created: new Date(),\n        result: {\n          webkitAudioContext: (function(){\n            try {\n              return new webkitAudioContext() != null;\n            } catch (e$) {}\n          }()),\n          audioContext: (function(){\n            try {\n              return new AudioContext() != null;\n            } catch (e$) {}\n          }()),\n          offlineAudioContext: (function(){\n            try {\n              return new OfflineAudioContext(2, 44100 * 40, 44100) != null;\n            } catch (e$) {}\n          }())\n        }\n      });\n    }\n  };\n})();","updated":"2026-01-27T15:34:17.084523"},{"path":"lib/util/soundNext/play/checkAndFixAudioContext/checkAndFix.ls","text":"(function(){\n  return function(){\n    return forceAwaitPromise(async function(resolve, reject){\n      var a, s, error;\n      a = sound.audioContext;\n      s = a.state;\n      if (s === \"running\") {\n        return resolve();\n      } else if (s === \"suspended\" || s === \"interrupted\") {\n        try {\n          (await a.resume());\n        } catch (e$) {\n          error = e$;\n          if (error.message !== \"Failed to start the audio device\") {\n            throw error;\n          }\n        }\n        (await sleep(100));\n        inc(\"logFix/log\")(s, a.state);\n        return resolve();\n      } else if (s === \"closed\") {\n        inc(\"/lib/util/audioContext/refresh/refresh\")();\n        (await sleep(100));\n        inc(\"logFix/log\")(s);\n        return resolve();\n      } else {\n        return reject(new Error(\"Unknown audioContext state: \" + s));\n      }\n    });\n  };\n})();","updated":"2025-12-17T16:35:35.967715"},{"path":"pages/games/01_gamesList/_t.ls","text":"(function(){\n  return {\n    games: {\n      de: \"Spiele\",\n      en: \"Games\",\n      fr: \"Jeux\",\n      es: \"Juegos\",\n      pt: \"Jogos\"\n    },\n    continueToAntonPlus: {\n      de: \"Weiter zu ANTON-&#65279;Plus\",\n      en: \"Continue to ANTON&nbsp;Plus\",\n      fr: \"Découvrir ANTON-&#65279;Plus\",\n      es: \"Descubrir ANTON-&#65279;Plus\",\n      pt: \"Descobrir ANTON-&#65279;Plus\"\n    },\n    antonPlusNeeded: {\n      de: \"Du benötigst ANTON-&#65279;Plus, um dieses Spiel zu spielen.\",\n      en: \"You need ANTON&nbsp;Plus to play this game.\",\n      fr: \"Tu dois avoir ANTON-&#65279;Plus pour jouer ce jeu.\",\n      es: \"Necesitas ANTON-&#65279;Plus para jugar este juego.\",\n      pt: \"Você precisa de ANTON-&#65279;Plus para jogar este jogo.\"\n    },\n    newCaps: {\n      de: \"NEU\",\n      en: \"NEW\",\n      fr: \"NOUVEAU\",\n      es: \"NUEVO\",\n      pt: \"NOVO\"\n    },\n    disabledInfoSchool: {\n      deDev: \"Das Spiel ist für $1 gesperrt.\",\n      en: \"This game is locked for $1.\",\n      frDev: \"Le jeu est verrouillé pour $1.\",\n      es: \"Este juego está bloqueado para $1.\",\n      ptDev: \"O jogo está bloqueado para $1.\"\n    },\n    disabledInfoGroup: {\n      deDev: \"Das Spiel ist für die Gruppe $1 gesperrt.\",\n      en: \"This game is locked for the group $1.\",\n      frDev: \"Le jeu est bloqué pour le groupe $1.\",\n      es: \"Este juego está bloqueado para el grupo $1.\",\n      ptDev: \"O jogo está bloqueado para o grupo $1.\"\n    }\n  };\n})();","updated":"2026-05-07T07:02:46.684869"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/buttons/buttonGiveFeedback/showFeedbackPopup/send/showError/show.ls","text":"(function(){\n  return function(input){\n    input.css({\n      border: \"1px solid red\"\n    });\n    return setTimeout(function(){\n      return input.css({\n        border: \"\"\n      });\n    }, 500);\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/buttons/buttonGiveFeedback/showFeedbackPopup/show.ls","text":"(function(){\n  return function(){\n    var html, input;\n    html = Div({\n      width: \"18em\",\n      margin: \"1em 1em 0.5em\"\n    }).html(T(\"writeYourFeedback\"), input = inc(\"input/input\")(), Button({\n      label: T(\"sendFeedback\"),\n      action: function(){\n        return inc(\"send/send\")(input);\n      }\n    }));\n    return inc(\"/../app01/lib/gui/popup/popup\")({\n      html: html\n    });\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/buttons/buttonNotNow/button.ls","text":"(function(){\n  return function(){\n    return inc(\"../_shared/link/link\")({\n      label: T(\"notNowButton\"),\n      tap: inc(\"/pages/start/startUser/07_extraPages/_onExtraPageDone/on\")\n    });\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/buttons/buttons.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"inline-block\"\n    }).html(inc(\"buttonGiveFeedback/button\")(), inc(\"buttonNotNow/button\")(), inc(\"buttonDontShowAgain/button\")());\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/content.ls","text":"(function(){\n  return function(onImageLoaded){\n    return Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      margin: \"2em auto\",\n      width: \"30em\",\n      maxWidth: \"90%\",\n      lineHeight: \"1.5em\"\n    }).html(inc(\"image/image\")(onImageLoaded), inc(\"title/title\")(), inc(\"text/text\")(), inc(\"buttons/buttons\")());\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/image/image.ls","text":"(function(){\n  return function(onImageLoaded){\n    return inc(\"/lib/gui/image/image\")({\n      id: \"solocode_wida-feedback-welcome-page-us!original\",\n      fileFolder: \"media/extraPages/_images\",\n      onLoaded: onImageLoaded\n    }).css({\n      maxWidth: \"25em\",\n      maxHeight: \"25em\",\n      width: \"80vw\",\n      height: \"80vw\",\n      marginBottom: \"-1em\"\n    });\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/hasPinnedWidaTestPrepLevel/has.ls","text":"(function(){\n  return function(){\n    var groupDescriptions, i$, len$, gd, ref$, events, j$, len1$, e;\n    groupDescriptions = inc(\"/../app01-group/data/calcGroupDescriptions/calc\")();\n    for (i$ = 0, len$ = groupDescriptions.length; i$ < len$; ++i$) {\n      gd = groupDescriptions[i$];\n      if (!((ref$ = gd.userRoles) != null && ref$.teacher)) {\n        continue;\n      }\n      events = gd.groupLog.list(\"pinGroupBlock\");\n      for (j$ = 0, len1$ = events.length; j$ < len1$; ++j$) {\n        e = events[j$];\n        if (_.startsWith(e.puid, \"c-wida-test\")) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/buttons/_shared/link/link.ls","text":"(function(){\n  return function(o){\n    return Div({\n      color: Color.grey[450]\n    }).html(inc(\"/lib/gui/link/link\")({\n      label: o.label,\n      direction: \"right\"\n    }).css({\n      padding: \"0 0.5em\"\n    }).tap(o.tap));\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/buttons/buttonDontShowAgain/button.ls","text":"(function(){\n  return function(){\n    var tap;\n    tap = function(){\n      log.log({\n        event: \"widaTestPrepFeedbackInfoDisabled\"\n      });\n      return inc(\"/pages/start/startUser/07_extraPages/_onExtraPageDone/on\")();\n    };\n    return inc(\"../_shared/link/link\")({\n      label: T(\"dontShowAgainButtonLabel\"),\n      tap: tap\n    });\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/buttons/buttonGiveFeedback/button.ls","text":"(function(){\n  return function(){\n    return Button({\n      label: T(\"giveFeedback\"),\n      action: function(){\n        return inc(\"showFeedbackPopup/show\")();\n      }\n    }).css({\n      margin: \"1em\"\n    });\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/buttons/buttonGiveFeedback/showFeedbackPopup/input/input.ls","text":"(function(){\n  return function(){\n    return inc(\"/../app01/lib/gui/inputEditable/input\")({\n      multiline: true,\n      lineHeight: \"1.5em\",\n      linePadding: \"0 0.3em\",\n      maxLength: 500\n    }).css({\n      margin: \"1.5em auto\",\n      height: \"8em\",\n      width: \"95%\"\n    });\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/page/content/buttons/buttonGiveFeedback/showFeedbackPopup/send/send.ls","text":"(function(){\n  return function(input){\n    if (input.getValue() === \"\") {\n      inc(\"showError/show\")(input);\n      return;\n    }\n    log.log({\n      event: \"debugWidaTestPrepFeedback\",\n      feedback: input.getValue()\n    });\n    inc(\"/pages/start/startUser/07_extraPages/_onExtraPageDone/on\")();\n    return inc(\"/../app01/lib/gui/toast/toast\")({\n      label: T(\"thanksForFeedback\")\n    });\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/show.ls","text":"(function(){\n  return function(){\n    var isTeacher, e;\n    if (engine.guiLanguage !== \"en_us\") {\n      return false;\n    }\n    isTeacher = inc(\"/data/user/isTeacher/get\")();\n    if (!isTeacher) {\n      return false;\n    }\n    if (!inc(\"hasPinnedWidaTestPrepLevel/has\")()) {\n      return false;\n    }\n    e = log.findLast(\"showWidaTestPrepFeedbackInfo\");\n    if (new Date() - (e != null ? e.created : void 8) < 48 * 60 * 60 * 1000) {\n      return false;\n    }\n    if (log.findLast(\"widaTestPrepFeedbackInfoDisabled\")) {\n      return false;\n    }\n    startPage({\n      path: path(\"page/page\"),\n      history: 0\n    });\n    return true;\n  };\n})();","updated":"2025-12-09T07:37:41.692068"},{"path":"lib/init/subscribeDeviceAndUserLogs/subscribeDeviceLog/var/var.ls","text":"(function(){\n  return function(name, value){\n    var eventName, v, ref$, i$, len$, e;\n    eventName = \"deviceSetVar\" + name.substr(0, 1).toUpperCase() + name.substr(1);\n    if (value != null && value.toggle) {\n      v = (ref$ = deviceLog['var'](name)) != null ? ref$ : false;\n      return deviceLog['var'](name, !v);\n    } else if (value != null) {\n      for (i$ = 0, len$ = (ref$ = deviceLog.list({\n        event: eventName\n      })).length; i$ < len$; ++i$) {\n        e = ref$[i$];\n        deviceLog.deleteEvent(e);\n      }\n      return deviceLog.log({\n        event: eventName,\n        value: value\n      });\n    } else {\n      return (ref$ = deviceLog.findLast(eventName)) != null ? ref$.value : void 8;\n    }\n  };\n})();","updated":"2026-03-03T13:33:57.612291"},{"path":"addons/topbarLevel/speedFactorIcon/onLoaded/rowDiv/tap/showPopup/show.ls","text":"(function(){\n  return function(){\n    var div;\n    div = Div({\n      margin: \"1em\",\n      width: \"18em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"notSupportedDevice\"));\n    return inc(\"/lib/gui/popup/popup\")({\n      html: div\n    });\n  };\n})();","updated":"2026-03-03T13:33:57.612291"},{"path":"addons/topbarLevel/speedFactorIcon/onLoaded/rowDiv/label/label.ls","text":"(function(){\n  return function(item, color){\n    return Div().css({\n      flex: \"1 1 auto\",\n      padding: \"0.03em 0.8em 0 0\",\n      color: color\n    }).html(item.label);\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/level/finishLevel/_shared/calcText/quotes/quotes-en_gb.ls","text":"(function(){\n  return function(){\n    return {\n      notGoodWords: [\"Believe in yourself!\", \"Patience!\", \"Keep at it!\", \"Don't give up!\", \"Don't worry!\", \"Chin up!\", \"Not quite!\"],\n      notGood: [\"Next time it'll be better for sure.\", \"You can do better than that.\", \"Practice makes perfect.\", \"Keep trying.\", \"Keep practising.\", \"Everyone has to start somewhere.\", \"You'll do better next time.\", \"Just try again.\", \"You're better than you think.\", \"All it takes is practice.\"],\n      averageWords: [\"Good!\", \"Well done!\", \"Good effort!\", \"Nice!\", \"That was great!\", \"Not bad!\", \"Pretty good!\", \"Nice job!\", \"Decent effort!\", \"Good job!\", \"Nice work!\", \"Nicely done!\", \"Pretty decent!\"],\n      average: [\"Next time, you'll do even better.\", \"Keep your eyes on the prize.\", \"But I know you can do even better.\", \"But can you do even better?\", \"It gets better and better.\", \"Keep up the good work.\", \"A bit more practice, and you'll get that 3rd star.\"],\n      almostPerfectWords: [\"You did it!\", \"Nice!\", \"Yay!\", \"Great!\", \"Wow!\", \"Almost perfect!\", \"Hip hip hooray!\", \"Congratulations!\", \"Very nice!\"],\n      almostPerfect: [\"You got almost everything right.\", \"That's the way to do it.\", \"You did really well.\", \"Couldn't have done it better myself.\", \"More of the same.\", \"You make it look easy.\", \"You must have been practising.\", \"Onwards and upwards.\", \"Aren't you clever?\", \"Keep up the good work.\", \"You've got the hang of this.\", \"Soon, you'll have earned that crown.\", \"Soon, that crown will be yours.\"],\n      perfectWords: [\"Super!\", \"Hooray!\", \"Yeah!\", \"Terrific!\", \"Fantastic!\", \"Amazing!\", \"Super duper!\", \"Excellent!\", \"Brilliant!\", \"Outstanding!\", \"Perfect!\", \"Bravo!\"],\n      perfect: [\"Keep it up.\", \"Great effort.\", \"You can't beat that.\", \"You can't do better than that.\", \"You got everything right.\", \"You rocked.\", \"All that learning was worth it.\", \"You know what you're doing.\", \"You did it.\", \"The crown suits you.\", \"Flawless.\", \"You're a real professional.\"],\n      testFailed: [\"Unfortunately, you've failed the test.\"],\n      testDone: [\"Test completed.\", \"Test passed.\", \"You've passed the test.\", \"You've completed the test.\"],\n      testPerfect: [\"You can't do the test any better.\", \"You've passed the test with no mistakes.\", \"You've passed the test with flying colours.\"],\n      bulb: [\"Done.\"]\n    };\n  };\n})();","updated":"2025-12-11T13:50:02.593932"},{"path":"pages/level/finishLevel/_shared/calcCharacter/characters/characters-en_gb.ls","text":"(function(){\n  return function(){\n    var characters, now, charactersXmas;\n    characters = [\n      {\n        pixi: 'female',\n        voice: \"f2_chirp\"\n      }, {\n        pixi: 'male',\n        voice: \"m11_chirp\"\n      }, {\n        pixi: 'female-afro',\n        voice: \"f14_chirp\"\n      }, {\n        pixi: 'male-afro',\n        voice: \"m12_chirp\"\n      }, {\n        pixi: 'female-asia',\n        voice: \"f13_chirp\"\n      }, {\n        pixi: 'male-asia',\n        voice: \"m2_chirp\"\n      }, {\n        pixi: 'female-india',\n        voice: \"f11_chirp\"\n      }, {\n        pixi: 'male-india',\n        voice: \"m5_chirp\"\n      }, {\n        pixi: 'super-f',\n        voice: \"f7_chirp\"\n      }, {\n        pixi: 'super',\n        voice: \"m8_chirp\"\n      }, {\n        pixi: 'cow',\n        voice: \"f12_chirp\"\n      }, {\n        pixi: 'pig',\n        voice: \"m10_chirp\"\n      }\n    ];\n    now = inc(\"/lib/util/formatDate2/format\")();\n    if (now.specialDays.isChristmasPeriod) {\n      charactersXmas = [\n        {\n          pixi: 'xmas-f',\n          voice: \"f9_chirp\"\n        }, {\n          pixi: 'xmas',\n          voice: \"m15_chirp\"\n        }\n      ];\n      characters = charactersXmas.concat(characters);\n    }\n    return characters;\n  };\n})();","updated":"2025-12-11T13:50:02.593932"},{"path":"lib/util/soundNext/createSoundParts/soundPart/createAudioData/generateBuffer/generate.ls","text":"(function(){\n  return function(p){\n    var data, binaryString, bytes, i$, to$, i, buffer, error;\n    try {\n      data = p.base64.split(\"base64,\")[1].trim();\n      binaryString = atob(data);\n      bytes = new Uint8Array(binaryString.length);\n      for (i$ = 0, to$ = binaryString.length; i$ < to$; ++i$) {\n        i = i$;\n        bytes[i] = binaryString.charCodeAt(i);\n      }\n      buffer = bytes.buffer;\n    } catch (e$) {\n      error = e$;\n      p.onError(error);\n      return;\n    }\n    return p.onOk(buffer);\n  };\n})();","updated":"2025-12-11T13:50:02.593932"},{"path":"pages/level/finishLevel/calcCoins/newCoin/calcCoinsDisabled/calc.ls","text":"(function(){\n  return function(disabledCoinsPlanInfos){\n    var project, ref$, ref1$, projects, i$, ref2$, len$, p;\n    project = (ref$ = app.currentPage.params.puid) != null ? (ref1$ = ref$.split(\"/\")) != null ? ref1$[0] : void 8 : void 8;\n    projects = [];\n    for (i$ = 0, len$ = (ref2$ = _.values(disabledCoinsPlanInfos)).length; i$ < len$; ++i$) {\n      p = ref2$[i$];\n      projects = projects.concat(p);\n    }\n    return {\n      disabled: _.includes(projects, project),\n      reason: \"disabledCoinsPlan\"\n    };\n  };\n})();","updated":"2026-02-26T14:54:18.220092"},{"path":"lib/util/soundNext/onPlayError/logDebugError/log.ls","text":"(function(){\n  return function(s, error){\n    var params, ctx, base64, ref$, ref1$;\n    params = s.params;\n    ctx = sound.audioContext;\n    base64 = (ref$ = s.currentSoundPart) != null ? ref$.base64 : void 8;\n    return typeof log != 'undefined' && log !== null ? log.log({\n      event: \"debugOnPlayError\",\n      fileId: (ref1$ = params != null ? params.fileId : void 8) != null ? ref1$ : \"unknown\",\n      base64Start: base64 != null ? base64.substr(0, 30) : void 8,\n      base64End: base64 != null ? base64.substr(base64.length - 100) : void 8,\n      base64Size: (ref1$ = base64 != null ? base64.length : void 8) != null ? ref1$ : \"unknown\",\n      hardwareConcurrency: (ref1$ = navigator.hardwareConcurrency) != null ? ref1$ : 1,\n      ctxState: ctx != null ? ctx.state : void 8,\n      ctxSampeRate: ctx != null ? ctx.sampleRate : void 8,\n      ctxCurrentTime: ctx != null ? ctx.currentTime : void 8,\n      ctxBaseLatency: ctx != null ? ctx.baseLatency : void 8,\n      ctxOutputLatency: ctx != null ? ctx.outputLatency : void 8,\n      currentSoundPartIndex: s.currentSoundPartIndex,\n      soundPartsSize: (ref1$ = s.soundParts.length) != null ? ref1$ : \"unknown\"\n    }) : void 8;\n  };\n})();","updated":"2026-01-29T09:41:49.829222"},{"path":"pages/start/startUser/08_start/startLastCategory/start.ls","text":"(function(){\n  return function(category){\n    var backHistory;\n    backHistory = {\n      absolute: 2\n    };\n    if (deviceLog['var'](\"enableSnipPracticeLock\") || category === \"snipPractice\") {\n      return inc(\"/pages/snipPractice/start\")({\n        history: backHistory\n      });\n    } else if (category === \"groups\") {\n      return inc(\"/../app01-group/pages/group/group/start\")({\n        history: backHistory\n      });\n    } else if (category === \"games\") {\n      return startPage({\n        path: path(\"/pages/games/01_gamesList/page\"),\n        animation: \"fadeIn\",\n        history: backHistory\n      });\n    } else if (deviceLog['var'](\"enableLearnBetaTab\")) {\n      return inc(\"/pages/learnBeta/start\")({\n        history: backHistory\n      });\n    } else if (category === \"learnList\") {\n      return inc(\"/pages/learnList/start\")({\n        history: backHistory\n      });\n    } else if (category === \"schoolAdmin\") {\n      return inc(\"/pages/schoolAdmin/start\")({\n        history: backHistory\n      });\n    } else {\n      return inc(\"/pages/content/start\")({\n        history: backHistory\n      });\n    }\n  };\n})();","updated":"2025-12-15T11:07:05.860784"},{"path":"pages/misc/teacherDirCode/03_done/page.ls","text":"(function(){\n  return function(page){\n    page.groups = inc(\"calcGroups/calc\")();\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        var onDone;\n        onDone = function(){\n          var that;\n          if (page.params.isAdmin) {\n            return inc(\"/../app01/pages/schoolAdmin/start\")();\n          } else if (that = page.params.finishFunctionPath) {\n            return inc(that)();\n          } else {\n            return startPage({\n              history: -3,\n              animation: \"slideRight\"\n            });\n          }\n        };\n        return page.css({\n          width: \"35em\",\n          maxWidth: \"90%\",\n          margin: \"1em auto\"\n        }).append(inc(\"text/text\")(page), page.groups.length > 0\n          ? [page.groupsDiv = inc(\"groups/groups\")(page), inc(\"buttonAdd/button\")(page, onDone), \"<br>\", inc(\"notNowLink/link\")(page, onDone)]\n          : inc(\"buttonContinue/button\")(page, onDone));\n      }\n    };\n  };\n})();","updated":"2025-12-15T11:07:05.860784"},{"path":"pages/start/startUser/07_extraPages/showNonDirTeacherInDirSchoolInfo/page/buttons/buttonJoin/button.ls","text":"(function(){\n  return function(){\n    return Button({\n      label: T(\"enterDirTeacherCodeButtonLabel\")\n    }).css({\n      marginBottom: \"1.1em\"\n    }).tap(function(){\n      return startPage({\n        path: path(\"/pages/misc/teacherDirCode/01_enterCode/page\"),\n        animation: \"slideLeft\",\n        params: {\n          context: \"extraPage\",\n          finishFunctionPath: path(\"/pages/start/startUser/07_extraPages/_onExtraPageDone/on\")\n        }\n      });\n    });\n  };\n})();","updated":"2025-12-15T11:07:05.860784"},{"path":"pages/schoolSearch/06_confirm/_t.ls","text":"(function(){\n  return {\n    confirmSchool: {\n      de: \"Schule bestätigen\",\n      en: \"Confirm school\",\n      fr: \"Valider une école\",\n      es: \"Confirmar una escuela\",\n      pt: \"Confirmar escola\"\n    },\n    buttonConfirmSchool: {\n      de: \"Schule auswählen\",\n      en: \"Select school\",\n      fr: \"Valider l'école\",\n      es: \"Seleccionar escuela\",\n      pt: \"Selecionar escola\"\n    },\n    contactSchoolPersonInCharge: {\n      de: \"Bitte wende dich an den Verantwortlichen der Schule, um aufgenommen zu werden.\",\n      en: \"Please contact the person responsible for ANTON at your school in order to become a confirmed school member.\",\n      fr: \"Tu dois contacter la personne responsable d'ANTON à ton école pour être admis·e comme membre de l'école.\",\n      es: \"Por favor, contacta al o a la administrador/a de ANTON en tu escuela para que te admita como miembro de la escuela. \",\n      pt: \"Por favor, entre em contato com a pessoa que administra o ANTON na sua escola para que você seja admitido(a) como membro da escola.\"\n    }\n  };\n})();","updated":"2025-12-16T14:44:01.194054"},{"path":"lib/gui/parentalGate/_t.ls","text":"(function(){\n  return {\n    numDigitsError: {\n      de: \"Das Geburtsjahr muss vierstellig sein.\",\n      en_gb: \"The year of birth must contain four digits.\",\n      en: \"The year of birth must be four digits.\",\n      fr: \"L'année de naissance doit comporter 4 chiffres.\",\n      es: \"El año de nacimiento debe tener 4 dígitos.\",\n      pt: \"O ano de nascimento deve conter quatro dígitos.\"\n    },\n    enterBirthYear4Digit: {\n      de: \"Deine Eingabe war leider kein <b>4-stelliges Geburtsjahr</b>.\",\n      en: \"You did not enter a <b>four-digit</b> year of birth.\",\n      fr: \"L'année de naissance entrée n'a pas <b>quatre chiffres</b>.\",\n      es: \"No has ingresado un año de nacimiento de <b>cuatro dígitos</b>.\",\n      pt: \"Você não inseriu um ano de nascimento com <b>quatro dígitos</b>.\"\n    },\n    minAgeText: {\n      de: \"Für diese Funktion musst du mindestens $1 Jahre alt sein. Bitte frage deine Eltern.\",\n      en: \"To use this feature, you must be at least $1 years old. Please ask your parents.\",\n      fr: \"Pour utiliser cette fonction, tu dois avoir au moins $1 ans. Tu peux en parler avec tes parents.\",\n      es: \"Para utilizar esta función debes tener por lo menos $1 años. Puedes pregúntale a tu padre o a tu madre.\",\n      pt: \"Para utilizar esta função, você deve ter pelo menos $1 anos de idade. Por favor, pergunte para seus pais.\"\n    },\n    minAgeTextWithoutParents: {\n      de: \"Für diese Funktion musst du mindestens $1 Jahre alt sein.\",\n      en: \"To use this feature, you must be at least $1 years old.\",\n      fr: \"Pour utiliser cette fonction, tu dois avoir au moins $1 ans.\",\n      es: \"Para utilizar esta función, debes tener por lo menos $1 años.\",\n      pt: \"Para utilizar esta função, você deve ter pelo menos $1 anos de idade.\"\n    },\n    enterBirthYear: {\n      de: \"Bitte gib dein Geburtsjahr ein.\",\n      en: \"Please enter your year of birth.\",\n      fr: \"Écris ton année de naissance.\",\n      es: \"Escribe tu año de nacimiento.\",\n      pt: \"Digite seu ano de nascimento.\"\n    },\n    minAgeText2: {\n      de: \"Für diese Funktion musst du mindestens $1 Jahre alt sein oder deine Eltern fragen.<br><br>(Das Geburtsjahr dient nur zur Altersüberprüfung und wird von uns nicht gespeichert.)\",\n      en: \"To use this feature, you must be at least $1 years old or ask your parents for help.<br><br>(The year of birth is only used for age verification purposes and will not be saved by us.)\",\n      fr: \"Pour utiliser cette fonction, tu dois avoir au moins $1 ans ou demander à tes parents de t'aider.<br><br>(L'année de naissance est utilisée uniquement pour la vérification de l'âge. Nous ne conserverons pas cette donnée.)\",\n      es: \"Para utilizar esta función debes tener por lo menos $1 años de edad o pedirle ayuda a tus padres.<br><br>(El año de nacimiento sirve únicamente para verificar la edad y no se guardará en nuestra base de datos.)\",\n      pt: \"Para utilizar esta função, você deve ter pelo menos $1 anos de idade ou pedir ajuda aos seus pais ou responsáveis.<br><br>(O ano de nascimento será utilizado unicamente para certificar a idade e não será salvo em nosso banco de dados.)\"\n    },\n    minAgeText2WithoutParents: {\n      de: \"Für diese Funktion musst du mindestens $1 Jahre alt sein.<br><br>(Das Geburtsjahr dient nur zur Altersüberprüfung und wird von uns nicht gespeichert.)\",\n      en: \"To use this feature, you must be at least $1 years old.<br><br>(The year of birth is only used for age verification purposes and will not be saved by us.)\",\n      fr: \"Pour utiliser cette fonction, tu dois avoir au moins $1 ans.<br><br>(L'année de naissance est utilisée uniquement pour la vérification de l'âge. Nous ne conserverons pas cette donnée.)\",\n      es: \"Para utilizar esta función debes tener por lo menos $1 años de edad.<br><br>(El año de nacimiento sirve únicamente para verificar la edad y no se guardará en nuestra base de datos)\",\n      pt: \"Para utilizar esta função, você deve ter pelo menos $1 anos de idade.<br><br>(O ano de nascimento será utilizado unicamente para certificar a idade e não será salvo em nosso banco de dados.)\"\n    }\n  };\n})();","updated":"2025-12-16T14:44:01.194054"},{"path":"lib/init/cssColorTags/add.ls","text":"(function(){\n  return function(){\n    var ref$, colorTags, s, k, ref1$, v, style;\n    if ((ref$ = document.head.findFirst('#cssColorTags')) != null) {\n      ref$.remove();\n    }\n    colorTags = inc(\"/lib/util/cssColorTags/cssColorTags\");\n    s = \"\";\n    for (k in ref1$ = colorTags.markColors) {\n      v = ref1$[k];\n      s += \"m-\" + k + \" {background-color: \" + v + \"}\\n\";\n    }\n    for (k in ref1$ = colorTags.textColors) {\n      v = ref1$[k];\n      s += \"t-\" + k + \" {color: \" + v + \"}\\n\";\n    }\n    for (k in ref1$ = colorTags.underlineColors) {\n      v = ref1$[k];\n      s += \"u-\" + k + \" {text-decoration: \" + v + \" underline 2px}\\n\";\n    }\n    style = Style();\n    style.setAttribute(\"id\", \"cssColorTags\");\n    style.innerHTML = s;\n    style.markColors = colorTags.markColors;\n    style.textColors = colorTags.textColors;\n    style.underlineColors = colorTags.underlineColors;\n    return document.head.appendChild(style);\n  };\n})();","updated":"2025-12-17T11:31:19.835722"},{"path":"lib/util/audioContext/refresh/refreshAsync.ls","text":"(function(){\n  return async function(){\n    var error, ref$;\n    if (window.AudioContext) {\n      if (window.sound.audioContext != null) {\n        app.audioContextDebugEvents.push({\n          event: \"refresh\",\n          created: new Date(),\n          type: \"window.audioContext close\"\n        });\n        try {\n          (await window.sound.audioContext.close());\n        } catch (e$) {\n          error = e$;\n          if (error.name !== \"AbortError\") {\n            throw error;\n          }\n        }\n        window.sound.audioContext = new AudioContext();\n        return app.audioContextDebugEvents.push({\n          event: \"refresh\",\n          created: new Date(),\n          type: \"window.audioContext new\"\n        });\n      }\n    } else if (window.webkitAudioContext) {\n      if (engine.isiOsApp && window.sound.audioContext != null) {\n        app.audioContextDebugEvents.push({\n          event: \"refresh\",\n          created: new Date(),\n          type: \"window.webkitAudioContext1 close\"\n        });\n        try {\n          (await window.sound.audioContext.close());\n        } catch (e$) {\n          error = e$;\n          if (error.name !== \"AbortError\") {\n            throw error;\n          }\n        }\n        app.audioContextDebugEvents.push({\n          event: \"refresh\",\n          created: new Date(),\n          type: \"window.webkitAudioContext1 new\"\n        });\n        return window.sound.audioContext = new webkitAudioContext();\n      } else {\n        app.audioContextDebugEvents.push({\n          event: \"refresh\",\n          created: new Date(),\n          type: \"window.webkitAudioContext2 close + new\"\n        });\n        if ((ref$ = window.sound.audioContext) != null) {\n          if (typeof ref$.close == 'function') {\n            ref$.close();\n          }\n        }\n        return window.sound.audioContext = new webkitAudioContext();\n      }\n    } else {\n      return app.audioContextDebugEvents.push({\n        event: \"refresh\",\n        type: \"no audio context, retries\",\n        created: new Date(),\n        result: {\n          webkitAudioContext: (await (async function(){\n            try {\n              return new webkitAudioContext() != null;\n            } catch (e$) {}\n          }())),\n          audioContext: (await (async function(){\n            try {\n              return new AudioContext() != null;\n            } catch (e$) {}\n          }())),\n          offlineAudioContext: (await (async function(){\n            try {\n              return new OfflineAudioContext(2, 44100 * 40, 44100) != null;\n            } catch (e$) {}\n          }()))\n        }\n      });\n    }\n  };\n})();","updated":"2026-01-27T15:34:17.084523"},{"path":"pages/start/startUser/07_extraPages/showLoginCodeOnce/_t.ls","text":"(function(){\n  return {\n    text: {\n      de: \"Dies ist dein Anmelde-Code. Bitte schreibe ihn auf oder drucke ihn aus, damit du den Zugang zu deinem Konto nicht verlieren kannst. Du kannst ihn auch jederzeit in den Einstellungen unter&nbsp;„Kontodaten > Anmelde-Code“ nachschauen.\",\n      en: \"This is your login code. Please write it down or print it out so that you don’t lose access to your account. You can always find it in your settings under&nbsp;“login code”.\",\n      fr: \"Voici ton code de connexion. Nous te conseillons de l'écrire ou de l'imprimer pour ne pas perdre l'accès à ton compte. Tu peux à tout moment le trouver dans les paramètres à&nbsp;“Code de connexion”.\",\n      es: \"Esta es tu clave de acceso. Te aconsejamos apuntarla o imprimirla para que no pierdas el acceso a tu cuenta. Siempre podrás consultar tu clave en los ajustes bajo “clave de acceso”.\",\n      pt: \"Este é o seu código de acesso. Por favor, anote ou imprima-o para não perder o acesso à sua conta. Você também pode consultá-lo a qualquer momento nas configurações, em “código de acesso”.\"\n    },\n    loginCode: {\n      de: \"Anmelde-Code:\",\n      en: \"Login code:\",\n      fr: \"Code de connexion&nbsp;:\",\n      es: \"Clave de acceso:\",\n      pt: \"Código de acesso:\"\n    },\n    okDone: {\n      de: \"Fertig\",\n      en: \"Done!\",\n      fr: \"OK\",\n      es: \"¡Listo!\",\n      pt: \"Pronto!\"\n    },\n    print: {\n      de: \"Drucken\",\n      en: \"Print\",\n      fr: \"Imprimer\",\n      es: \"Imprimir\",\n      pt: \"Imprimir\"\n    }\n  };\n})();","updated":"2026-02-26T14:39:39.739268"},{"path":"addons/topbarLevel/_t.ls","text":"(function(){\n  return {\n    cancelNow: {\n      de: \"Jetzt abbrechen?\",\n      en: \"Are you sure you want to quit?\",\n      fr: \"Tu veux vraiment arrêter&nbsp;?\",\n      es: \"¿Quieres interrumpir ahora?\",\n      pt: \"Quer mesmo sair?\"\n    },\n    yourProblem: {\n      de: \"Was ist der Fehler<br>in dieser Übung?\",\n      en: \"What’s wrong<br>with this exercise?\",\n      fr: \"Quelle erreur as-tu vue<br>dans cet exercice&nbsp;?\",\n      es: \"¿Cuál es el error<br>en este ejercicio?\",\n      pt: \"Qual é o erro<br>observado neste exercício?\"\n    },\n    thanksForReporting: {\n      de: \"Danke für deine Meldung!\",\n      en: \"Thanks for letting us know!\",\n      fr: \"Merci pour ton message&nbsp;!\",\n      es: \"¡Gracias por tu comentario!\",\n      pt: \"Agradecemos pelo aviso!\"\n    },\n    notSupportedDevice: {\n      de: \"Du kannst die Geschwindigkeit der Tonausgabe leider nicht verändern, da dein Gerät diese Funktion nicht unterstützt.\",\n      en_gb: \"Unfortunately, you cannot change the voice speed because your device does not support this feature.\",\n      en: \"Unfortunately, you cannot change the audio speed because your device does not support this feature.\",\n      fr: \"Tu ne peux malheureusement pas modifier la vitesse de l'audio car ton appareil ne prend pas en charge cette fonctionnalité.\",\n      es: \"Desgraciadamente, este dispositivo no es compatible con la función de ajuste de velocidad de audio.\",\n      pt: \"Infelizmente, não é possível alterar a velocidade do áudio porque o seu dispositivo não oferece suporte a essa função.\"\n    },\n    slowSoundSpeedFactor: {\n      de: \"Langsam\",\n      en: \"Slow\",\n      fr: \"Lent\",\n      es: \"Lento\",\n      pt: \"Lento\"\n    },\n    normalSoundSpeedFactor: {\n      de: \"Normal\",\n      en: \"Normal\",\n      fr: \"Normal\",\n      es: \"Normal\",\n      pt: \"Normal\"\n    },\n    fastSoundSpeedFactor: {\n      de: \"Schnell\",\n      en: \"Fast\",\n      fr: \"Rapide\",\n      es: \"Rápido\",\n      pt: \"Rápido\"\n    },\n    soundSpeedFactorMenuInstruction: {\n      de: \"Hier kannst du die Geschwindigkeit der Tonausgabe einstellen.\",\n      en: \"Voice speed\",\n      fr: \"Ici, tu peux régler la vitesse de l'audio.\",\n      es: \"Aquí puedes ajustar la velocidad del audio.\",\n      pt: \"Aqui você pode ajustar a velocidade do áudio.\"\n    }\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/init/checkMdmConfig/onConfigLoaded/setRememberUsers/set.ls","text":"(function(){\n  return function(mdmConfig){\n    var rememberUsers;\n    rememberUsers = mdmConfig.rememberUsers;\n    if (!_.isBoolean(rememberUsers)) {\n      return;\n    }\n    if (deviceLog.findLast(\"deviceSetRememberUser\").value === rememberUsers || Store(\"deviceRememberUser\") === rememberUsers) {\n      return;\n    }\n    if (rememberUsers === false) {\n      inc(\"/lib/util/storedUsers/removeAll/remove\")();\n    }\n    Store(\"deviceRememberUser\", rememberUsers);\n    deviceLog.log({\n      event: \"deviceSetRememberUser\",\n      value: rememberUsers\n    });\n    return {\n      needsReload: true\n    };\n  };\n})();","updated":"2026-02-26T14:39:39.739268"},{"path":"addons/topbarLevel/topbar.ls","text":"(function(){\n  return function(page){\n    var div;\n    div = Div().html(Div({\n      display: \"flex\",\n      alignItems: \"stretch\",\n      textAlign: \"center\",\n      minHeight: \"2.4em\",\n      zIndex: 2,\n      backgroundClip: \"border-box\"\n    }).addClass(\"topBar\").html(inc(\"abortIcon/icon\")(page), inc(\"progressBar/progressBar\")(page), inc(\"speedFactorIcon/icon\")(page), page.params.context === \"learnList\"\n      ? inc(\"/../app01-learn-list/pages/level/feedbackIcon/icon\")(page)\n      : page.params.context === \"mathPractice\"\n        ? inc(\"/../app01-math-practice/pages/level/feedbackIcon/icon\")(page)\n        : inc(\"feedbackIcon/icon\")(page), inc(\"calculator/calculator\")(page), inc(\"hint/hint\")(page), inc(\"skipIcon/icon\")(page, \"backwards\"), inc(\"skipIcon/icon\")(page, \"forwards\"), inc(\"hideDebugIconsDiv/div\")(page)));\n    return page.topbar = div;\n  };\n})();","updated":"2026-02-26T14:39:39.739268"},{"path":"addons/topbarLevel/speedFactorIcon/_shared/calcSvgIcon/calc.ls","text":"(function(){\n  return function(page){\n    var items, matchingItem;\n    items = inc(\"../items/items\");\n    matchingItem = _.find(items, function(item){\n      return item.id === page.soundSpeedFactorId;\n    });\n    return SvgIcon({\n      svg: matchingItem.iconPath,\n      size: \"1.2em\",\n      color: Color.grey[900]\n    });\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"addons/topbarLevel/speedFactorIcon/_shared/items/items.ls","text":"(function(){\n  var items;\n  return items = [\n    {\n      label: T(\"slowSoundSpeedFactor\"),\n      iconPath: path(\"/lib/svg/icon/turtle.svg\"),\n      soundSpeedFactor: 0.66,\n      id: \"slow\"\n    }, {\n      label: T(\"normalSoundSpeedFactor\"),\n      iconPath: path(\"/lib/svg/icon/speaker.svg\"),\n      soundSpeedFactor: 1.0,\n      id: \"normal\"\n    }, {\n      label: T(\"fastSoundSpeedFactor\"),\n      iconPath: path(\"/lib/svg/icon/rabbit.svg\"),\n      soundSpeedFactor: 1.25,\n      id: \"fast\"\n    }\n  ];\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/svg/icon/rabbit.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M72 42.5c1.895 0 3.5 1.638 3.5 3.574S73.75 49.5 71.854 49.5 68.5 48.01 68.5 46.074 70.104 42.5 72 42.5m-41.345 5.705h-.005l-.006-.002-.001-.001z\"/>\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M57.048 8.546c1.245-.408 2.919-.43 4.08-.374.665.031 1.361.1 2.01.209.585.098 1.379.27 2.098.61 4.516 2.136 12.548 8.582 17.557 27.383q.105.4.116.797c1.423 1.048 2.766 2.209 3.862 3.489 1.399 1.635 2.582 3.668 2.888 6.096.315 2.492-.348 4.972-1.882 7.34-1.602 2.472-3.578 4.063-5.869 4.963-2.185.86-4.429.996-6.383.996h-12.26c.095 0-.106-.027-.689.381-.56.393-1.13.94-1.789 1.599l-.01.009-.01.01-1.815 1.788h3.488c2.063 0 4.572.645 6.654 2.095 2.19 1.526 4.033 4.063 4.033 7.592 0 3.719-1.732 6.358-4.144 7.904-2.2 1.411-4.733 1.783-6.543 1.784H42.395c-2.768 0-5.441-1.044-7.427-3.03l-.037-.036-.035-.038-2.68-2.842-6.769 6.058-.008.008c-2.21 1.963-5.12 2.061-7.243 1.645-2.18-.427-4.465-1.553-6.008-3.29-1.47-1.654-2.42-3.949-2.686-6.147-.258-2.13.048-5.076 2.33-7.104l6.542-5.853-6.67-7.077c-3.192-3.21-5.147-7.644-4.996-12.335l.001-.008v-.01c.13-3.497.875-8.097 3.612-12.047 2.835-4.09 7.507-7.052 14.55-7.686l.16-.02q.228-.03.616-.066a26 26 0 0 1 2.123-.099 34.2 34.2 0 0 1 14.615 3.228 26 26 0 0 1-1.337-2.706c-1.657-3.962-1.165-9.177 1.805-12.29 1.642-1.722 4-2.705 6.723-2.294 1.499.227 2.96.851 4.375 1.8.624-.914 1.506-1.669 2.599-2.225l.241-.123zM16.526 73.634c-.023.043-.165.326-.075 1.069.116.954.552 1.87.968 2.339.343.385 1.151.88 2.124 1.071 1.018.2 1.325-.079 1.248-.01l6.622-5.926-4.236-4.495zM48.53 16.1c-.304-.046-.428.01-.613.203-.282.296-.634.94-.765 1.924a5.7 5.7 0 0 0 .23 2.51l.125.327.006.014c1.092 2.63 3.51 5.995 5.916 9.103 1.114 1.44 2.31 2.933 3.11 3.988.409.54.808 1.089 1.113 1.573.148.237.331.547.483.889.08.181.471 1.026.352 2.093l-.005.054-.008.054c-.186 1.3-.949 3.239-3.142 3.875-1.665.482-3.107-.176-3.655-.452a9.6 9.6 0 0 1-1.732-1.155 9 9 0 0 1-1.01-.954h-.001c-5.123-5.968-10.953-8.384-15.495-9.334a26.6 26.6 0 0 0-5.613-.572 19 19 0 0 0-1.555.071q-.258.025-.368.038l-.069.01-.112.018-.126.01c-5.265.452-7.982 2.49-9.522 4.711-1.65 2.383-2.263 5.44-2.37 8.303-.08 2.438.878 4.897 2.625 6.821l.36.378.037.036.035.038 23.177 24.584c.606.595 1.462.959 2.456.959h20.044c1.018 0 2.079-.236 2.765-.676.305-.196.505-.41.639-.65.131-.236.283-.647.283-1.362 0-.806-.337-1.363-1.033-1.848-.804-.56-1.888-.84-2.654-.84H50.766a3.68 3.68 0 0 1-3.06-1.633 3.6 3.6 0 0 1-.588-1.618c-2.29-8.24-6.5-13.067-10.048-15.844a23.3 23.3 0 0 0-4.686-2.872 16 16 0 0 0-1.366-.551 9 9 0 0 0-.32-.105l-.043-.013a3.499 3.499 0 0 1 1.774-6.77l-.854 3.273c.853-3.274.856-3.273.858-3.273l.004.001.01.003.022.006.062.017.184.053q.223.066.592.193c.49.17 1.162.425 1.97.792a30.3 30.3 0 0 1 6.108 3.733c3.77 2.95 7.893 7.54 10.764 14.482l3.707-3.65c.638-.638 1.592-1.582 2.7-2.36 1.097-.768 2.725-1.65 4.708-1.65h12.261c1.702 0 2.882-.14 3.823-.51.835-.329 1.69-.921 2.555-2.256.795-1.228.886-2.072.812-2.656-.082-.65-.43-1.448-1.263-2.421-1.763-2.06-4.846-3.955-8.212-5.818l-.01-.006-.01-.005c-1.623-.913-3.505-1.648-4.855-2.063-1.882-.58-2.968-1.895-3.586-2.8-.302-.442-.573-.912-.754-1.219a10 10 0 0 0-.458-.725c-4.756-6.145-9.355-11.662-11.747-14.287-1.693-1.706-2.812-2.117-3.289-2.189m11.574-.95q.103.264.297.646c.453.89 1.097 1.864 1.844 2.97.67.992 1.529 2.236 2.083 3.345q.08.16.142.322a364 364 0 0 1 2.867 3.596l1.816 2.328.032.041.03.041c.345.475.631.958.836 1.304.232.393.366.623.507.828q.059.085.098.133c1.008.32 2.212.764 3.455 1.314-4.27-11.818-9.527-15.513-11.645-16.588l-.158-.079a4 4 0 0 0-.335-.068 10 10 0 0 0-1.18-.12c-.24-.01-.473-.015-.69-.013\" clip-rule=\"evenodd\"/>\n</svg>\n","updated":"2026-02-26T14:39:39.739268"},{"path":"lib/svg/icon/turtle.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M78.5 30a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7\"/>\n  <path fill=\"#373737\" fill-rule=\"evenodd\" d=\"M33.022 14.5C47.18 14.5 58.5 26.286 58.5 40.606v4.42c.816-.005 1.406-.024 1.943-.118.597-.104.893-.269 1.126-.493l.015-.016.016-.014.572-.54c.851-.827 1.263-1.341 1.495-1.774.19-.354.335-.79.335-1.571v-9.81c0-8.502 7.474-15.111 15.9-13.746 4.726.762 8.678 3.952 10.496 8.377l3.201 6.491.059.12.05.125c1.52 3.787.875 7.926-.99 11.066-1.872 3.153-5.255 5.73-9.563 5.73h-.153l-.885 2.175c-2.474 6.16-7.845 9.998-13.723 13.19l-.001-.001c-1.883 1.028-4.7 1.773-6.691 2.232q-.513.117-.988.218v10.772a6.59 6.59 0 0 1-6.59 6.591h-8.687a6.59 6.59 0 0 1-6.59-6.59V66.06h-4.628v11.38a6.59 6.59 0 0 1-6.59 6.59h-8.257a6.59 6.59 0 0 1-6.59-6.59V66.06h-.174c-3.028 0-5.448-1.682-6.984-3.597-1.538-1.92-2.524-4.458-2.524-7.016 0-2.503 1.015-4.997 2.544-6.87.52-.638 1.143-1.25 1.856-1.783v-6.145C7.5 26.286 18.82 14.5 33.022 14.5m45.762 9.354c-4.021-.654-7.782 2.496-7.782 6.836v9.81c0 1.813-.375 3.407-1.168 4.883-.75 1.397-1.786 2.515-2.79 3.49l-.037.034-.575.54.001.001c-2.942 2.843-6.876 2.578-8.83 2.578H12.608c-.306 0-.898.188-1.54.976-.643.788-.968 1.754-.968 2.445 0 .829.354 1.848.987 2.638.637.794 1.22.975 1.52.975h3.243c.756 0 1.456.241 2.028.649a3.5 3.5 0 0 1 1.904 3.115V77.03h7.437V62.824q0-.06.003-.118l-.003-.146a3.5 3.5 0 0 1 3.5-3.5h11.238c.701 0 1.354.207 1.902.562a3.5 3.5 0 0 1 1.987 3.158v14.25h7.868V60.81l2.933-.482h.002l.01-.002.046-.008a39 39 0 0 0 .95-.172 63 63 0 0 0 2.474-.517c2.057-.474 3.986-1.048 4.912-1.556l.012-.006c5.615-3.049 9.065-5.893 10.572-9.658l.008-.02 2.661-6.535h4.86c1.312 0 2.64-.78 3.546-2.304.895-1.509 1.1-3.326.542-4.801l-3.17-6.425-.062-.128-.053-.131c-.894-2.26-2.866-3.839-5.17-4.21zM33.022 21.5C22.87 21.5 14.5 29.965 14.5 40.65v4.376h37v-4.42c0-10.64-8.37-19.106-18.478-19.106\" clip-rule=\"evenodd\"/>\n</svg>\n","updated":"2026-02-26T14:39:39.739268"},{"path":"addons/topbarLevel/speedFactorIcon/updateIcon/update.ls","text":"(function(){\n  return function(page, div){\n    var svgIcon;\n    svgIcon = inc(\"../_shared/calcSvgIcon/calc\")(page);\n    div.iconDiv.replaceWith(svgIcon);\n    return div.iconDiv = svgIcon;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/withoutNumber/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      padding: \"2em 1em\"\n    }).html(T(\"recommendPhoneNumberText\"));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/edit/_t.ls","text":"(function(){\n  return {\n    setPhoneNumber: {\n      de: \"Telefonnummer hinzufügen\",\n      en_gb: \"Add mobile phone number\",\n      en: \"Add cell phone number\",\n      fr: \"Ajouter un numéro de téléphone\",\n      es: \"Ingresar número de teléfono\",\n      pt: \"Adicionar número de telefone\"\n    },\n    changePhoneNumber: {\n      de: \"Telefonnummer ändern\",\n      en_gb: \"Change mobile phone number\",\n      en: \"Change cell phone number\",\n      fr: \"Changer de numéro de téléphone\",\n      es: \"Cambiar número de teléfono\",\n      pt: \"Modificar número de telefone\"\n    },\n    enterNewPhoneNumber: {\n      de: \"Gib deine neue Nummer mit Ländervorwahl ein:<br>(im Format +491234567890)\",\n      en_gb: \"Enter your new number along with the country code: <br> (for example +441234567890)\",\n      en: \"Enter your new number along with the country code: <br> (for example +11234567890)\",\n      fr: \"Écris ton nouveau numéro avec l'indicatif de ton pays&nbsp;: <br>(exemple +331234567890)\",\n      es: \"Ingresa tu nuevo número de teléfono con el prefijo de tu país:<br>(ejemplo +521234567890)\",\n      pt: \"Insira seu novo número com o prefixo do seu país e DDD:<br>(por exemplo: +551234567890)\"\n    },\n    enterPhoneNumber: {\n      de: \"Gib deine Nummer mit Ländervorwahl ein:<br>(im Format +491234567890)\",\n      en_gb: \"Enter your number along with the country code: <br> (for example +441234567890)\",\n      en: \"Enter your number along with the country code: <br> (for example +11234567890)\",\n      fr: \"Écris ton numéro avec l'indicatif de ton pays&nbsp;: <br>(exemple +331234567890)\",\n      es: \"Ingresa tu número con el prefijo de tu país: <br>(ejemplo +521234567890)\",\n      pt: \"Insira seu número com o prefixo do seu país e DDD:<br>(por exemplo +551234567890)\"\n    },\n    save: {\n      de: \"Speichern\",\n      en: \"Save\",\n      fr: \"Enregistrer\",\n      es: \"Guardar\",\n      pt: \"Salvar\"\n    },\n    'delete': {\n      de: \"Löschen\",\n      en: \"Delete phone number\",\n      fr: \"Effacer le numéro\",\n      es: \"Borrar\",\n      pt: \"Excluir esse número\"\n    },\n    errorEmpty: {\n      de: \"Die Telefonnummer darf nicht leer sein!\",\n      en_gb: \"This box cannot be left empty.\",\n      en: \"This field cannot be left empty.\",\n      fr: \"Le numéro de téléphone ne peut pas rester vide.\",\n      es: \"El número de teléfono no puede quedar en blanco.\",\n      pt: \"O número de telefone não pode ficar em branco.\"\n    },\n    errorInvalid: {\n      de: \"Die Telefonnummer ist ungültig.\",\n      en_gb: \"This mobile phone number is invalid.\",\n      en: \"This cell phone number is not valid.\",\n      fr: \"Ce numéro de téléphone n'est pas valide.\",\n      es: \"Este número de teléfono no es válido.\",\n      pt: \"Este número de telefone não é válido.\"\n    },\n    errorUnavailable: {\n      de: \"Die Telefonnummer ist bereits vergeben.\",\n      en_gb: \"This mobile phone number is already in use.\",\n      en: \"This cell phone number is already in use.\",\n      fr: \"Ce numéro de téléphone est déjà utilisé.\",\n      es: \"Este número de teléfono ya existe.\",\n      pt: \"Este número de telefone já está sendo utilizado.\"\n    },\n    errorIdentical: {\n      de: \"Dies ist bereits deine Telefonnummer.\",\n      en_gb: \"This is already your mobile phone number.\",\n      en: \"This is already your cell phone number.\",\n      fr: \"C'est déjà ton numéro de téléphone.\",\n      es: \"Este ya es tu número de teléfono.\",\n      pt: \"Este já é seu número de telefone.\"\n    },\n    errorInvalidSyntax: {\n      de: \"Bitte gib deine Nummer im angegebenen Format mit „+“ und Ländervorwahl an.\",\n      en: \"Please enter your number in the specified format with “+” and the country code.\",\n      fr: \"Merci d'écrire ton numéro suivant le format spécifié avec “+” et l'indicatif du pays.\",\n      es: \"Por favor, ingresa tu número utilizando el formato indicado: “+” y luego el prefijo del país.\",\n      pt: \"Por favor, digite seu número utilizando o seguinte formato: “+” e depois o prefixo do seu país. Se for Brasil, é só colocar “+55(DDD)telefone”.\"\n    },\n    reallyDeletePhoneNumber: {\n      de: \"Möchtest du wirklich deine<br>Telefonnummer löschen?\",\n      en_gb: \"Are you sure you want to<br>delete your mobile phone number?\",\n      en: \"Do you really want to<br>delete your cell phone number?\",\n      fr: \"Tu veux vraiment effacer<br>ton numéro de téléphone&nbsp;?\",\n      es: \"¿Realmente quieres<br>borrar tu número de teléfono?\",\n      pt: \"Tem certeza que deseja<br>excluir seu número de telefone?\"\n    },\n    phoneNumberDeleteWarning: {\n      de: \"<br><br>Achtung! Du hast deinen Anmelde-Code mit Passwort abgesichert. Solltest du deinen Anmelde-Code oder Passwort vergessen, benötigst du eine verifizierte Telefonnummer oder E-Mail-Adresse, um den Zugang zu deinem Konto wiederherzustellen.<br>Jetzt Telefonnummer löschen?\",\n      en_gb: \"<br><br>Warning! You have secured your login code with a password. If you forget either your login code or your password, you will need a verified mobile phone number or email address to recover your account.<br>Do you still want to delete your mobile phone number?\",\n      en: \"<br><br>Warning! You secured your login code with your password. If you forget either your login code or your password, you will need a verified cell phone number or email address to recover your account.<br>Do you still want to delete your cell phone number?\",\n      fr: \"<br><br>Attention&nbsp;! Tu as sécurisé ton code de connexion avec un mot de passe. Si tu oublies ton code de connexion ou ton mot de passe, tu auras besoin d'un numéro de téléphone vérifié ou   d'une adresse e-mail pour récupérer ton compte.<br>Effacer le numéro de téléphone maintenant&nbsp;?\",\n      es: \"<br><br>¡Atención! Protegiste tu clave de acceso con tu contraseña. Si olvidas tu clave de acceso o tu contraseña, necesitas haber registrado una dirección de correo&nbsp;electrónico o un número de teléfono para recuperar el acceso a tu cuenta.<br>¿Borrar tu número de teléfono ahora?\",\n      pt: \"<br><br>Aviso! Você protegeu seu código de login com uma senha.Se você esquecer seu código de login ou senha, precisará de um número de telefone validado ou um endereço de e-mail para recuperar o acesso à sua conta.<br>Deseja excluir o número de telefone mesmo assim?\"\n    }\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/edit/onCompleted/onCompleted.ls","text":"(function(){\n  return function(page){\n    return function(result){\n      page.form.showSpinner();\n      if (result.status !== \"ok\") {\n        page.onError(result);\n        return page.form.input.start();\n      } else {\n        inc(\"/lib/util/cache/set/set\")(\"verifiedPhoneNumber\", \"\");\n        return log.sync(function(error){\n          if (error) {\n            return page.onOffline();\n          } else {\n            return startPage({\n              history: -1,\n              animation: \"slideDown\"\n            });\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/withoutNumber/withoutNumber.ls","text":"(function(){\n  return function(){\n    return Div().html(inc(\"text/text\")(), inc(\"buttonAdd/button\")());\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/withNumber/verifyText/text/text.ls","text":"(function(){\n  return function(isVerified){\n    return Div().css({\n      color: Color.grey[550]\n    }).html(isVerified\n      ? T(\"verified\")\n      : T(\"notVerified\"));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/withNumber/verifyText/icon/icon.ls","text":"(function(){\n  return function(isVerified){\n    return SvgIcon({\n      svg: isVerified\n        ? path(\"/lib/svg/shape/validated.svg\")\n        : path(\"/lib/svg/shape/unvalidated.svg\"),\n      color: isVerified\n        ? Color.green[500]\n        : Color.red[400]\n    }).css({\n      width: \"1em\",\n      height: \"1em\",\n      marginRight: \"0.3em\"\n    });\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/withNumber/verifyText/verifyText.ls","text":"(function(){\n  return function(isVerified){\n    return Div({\n      margin: \"0 1em 1em\",\n      display: \"flex\"\n    }).html(inc(\"icon/icon\")(isVerified), inc(\"text/text\")(isVerified));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/withNumber/notVerifiedWarning/warning.ls","text":"(function(){\n  return function(isVerified){\n    var ref$;\n    if (isVerified || ((ref$ = log.findLast(\"setLoginCodeNeedsPassword\")) != null ? ref$.value : void 8) !== true) {\n      return;\n    }\n    return Div({\n      color: Color.grey[550],\n      width: \"30em\",\n      maxWidth: \"90%\",\n      margin: \"0 auto 0.5em\"\n    }).html(T(\"verifyWarning\"));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/withNumber/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"yourPhoneNumber\"));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/edit/submit/deletePopup/popup.ls","text":"(function(){\n  return function(form, onDone){\n    var clickYes, html, ref$, popup;\n    clickYes = function(){\n      return popup.close(\"confirm\");\n    };\n    html = Div({\n      margin: \"1em 0.5em\"\n    }).html(Div({\n      marginBottom: \"1em\",\n      lineHeight: \"1.5em\"\n    }).html(T(\"reallyDeletePhoneNumber\"), ((ref$ = log.findLast(\"setLoginCodeNeedsPassword\")) != null ? ref$.value : void 8) === true ? T(\"phoneNumberDeleteWarning\") : void 8), Button(T(\"cancelButton\")).css({\n      margin: \"0.2em\"\n    }).tap(function(){\n      return popup.close();\n    }), Button(T(\"yesDelete\")).css({\n      margin: \"0.2em\"\n    }).tap(clickYes).addClass(\"keyManager-enter\").bind(\"keyManager\", clickYes));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: html,\n      onClose: function(type){\n        return onDone(type === \"confirm\");\n      }\n    });\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/edit/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var params, ref$;\n    params = {\n      title: (ref$ = page.oldEvent) != null && ref$.value\n        ? T(\"changePhoneNumber\")\n        : T(\"setPhoneNumber\")\n    };\n    params.close = true;\n    return inc(\"/addons/topbar2/topbar\")(params);\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/_shared/askVerify/page.ls","text":"(function(){\n  return function(page){\n    page.type = page.params.type;\n    return {\n      statusBarColor: Color.white,\n      top: inc(\"/addons/topbarWhiteBack/topbar\"),\n      start: function(){\n        return page.css({\n          display: \"flex\",\n          flexDirection: \"column\",\n          margin: \"2em 0.5em\"\n        }).html(inc(\"text/text\")(page.type), inc(\"emailOrPhoneNumber/emailOrPhoneNumber\")(page.type), inc(\"buttons/buttons\")(page));\n      }\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/_shared/askVerify/text/text.ls","text":"(function(){\n  return function(type){\n    return Div({\n      margin: \"1em 0\"\n    }).html(type === \"email\"\n      ? T(\"askVerifyEmail\")\n      : T(\"askVerifyPhoneNumber\"));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/edit/buttons/buttons.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      flexDirection: \"column\"\n    }).html(page.saveButton = inc(\"saveButton/button\")(page), inc(\"deleteButton/button\")(page));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/edit/buttons/deleteButton/button.ls","text":"(function(){\n  return function(page){\n    var button;\n    if (!page.oldEvent) {\n      return;\n    }\n    button = Button({\n      label: T(\"delete\"),\n      type: \"secondary\",\n      action: function(){\n        return page.submit({\n          'delete': true\n        });\n      }\n    }).css({\n      marginBottom: \"1.2em\",\n      width: \"15em\"\n    });\n    button.lastChild.css({\n      borderRadius: \"8px\"\n    });\n    return button;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/edit/buttons/saveButton/button.ls","text":"(function(){\n  return function(page){\n    return Button({\n      label: T(\"save\"),\n      action: page.submit\n    }).css({\n      width: \"15em\",\n      borderRadius: \"8px\",\n      marginBottom: \"1.2em\"\n    });\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/edit/form/form.ls","text":"(function(){\n  return function(page){\n    var form, ref$;\n    form = inc(\"/lib/gui/inputForm/inputForm\")({\n      label: page.oldEvent\n        ? T(\"enterNewPhoneNumber\")\n        : T(\"enterPhoneNumber\"),\n      submitLabel: T(\"save\"),\n      submit: page.submit,\n      cancel: false,\n      native: true,\n      screenKeyboardLayout: \"phoneNumber\"\n    }).css({\n      marginBottom: \"1.2em\"\n    });\n    if ((ref$ = form.findFirst(\".buttonsSubmitCancel\")) != null) {\n      ref$.remove();\n    }\n    return form;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/withNumber/buttons/buttons.ls","text":"(function(){\n  return function(isVerified){\n    return Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      paddingTop: \"1em\"\n    }).html(inc(\"verifyButton/button\")(isVerified), inc(\"changeButton/button\")());\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/withNumber/buttons/changeButton/button.ls","text":"(function(){\n  return function(){\n    var button;\n    button = Button({\n      label: T(\"changePhoneNumber\"),\n      type: \"secondary\",\n      action: function(){\n        return startPage({\n          path: path(\"/pages/misc/phoneNumber/edit/page\"),\n          animation: \"slideUp\"\n        });\n      }\n    }).css({\n      marginBottom: \"1.2em\",\n      width: \"15em\"\n    });\n    button.lastChild.css({\n      borderRadius: \"8px\"\n    });\n    return button;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/withNumber/buttons/verifyButton/button.ls","text":"(function(){\n  return function(isVerified){\n    if (isVerified) {\n      return;\n    }\n    return Button({\n      label: T(\"verifyPhoneNumber\"),\n      action: function(){\n        return startPage({\n          path: path(\"/pages/misc/_shared/verify/page\"),\n          animation: \"slideLeft\",\n          params: {\n            type: \"phoneNumber\",\n            context: \"settings\"\n          }\n        });\n      }\n    }).css({\n      width: \"15em\",\n      borderRadius: \"8px\",\n      marginBottom: \"1.2em\"\n    });\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"_t.ls","text":"(function(){\n  return {\n    continueButton: {\n      de: \"Weiter\",\n      en: \"Continue\",\n      fr: \"Continuer\",\n      es: \"Continuar\",\n      pt: \"Continuar\"\n    },\n    closeButton: {\n      de: \"Schließen\",\n      en: \"Close\",\n      fr: \"Fermer\",\n      es: \"Cerrar\",\n      pt: \"Fechar\"\n    },\n    cancelButton: {\n      de: \"Abbrechen\",\n      en: \"Cancel\",\n      fr: \"Annuler\",\n      es: \"Cancelar\",\n      pt: \"Cancelar\"\n    },\n    addButton: {\n      de: \"Hinzufügen\",\n      en: \"Add\",\n      fr: \"Ajouter\",\n      es: \"Agregar\",\n      pt: \"Adicionar\"\n    },\n    backButton: {\n      de: \"Zurück\",\n      en: \"Back\",\n      fr: \"Retour\",\n      es: \"Volver\",\n      pt: \"Voltar\"\n    },\n    checkButton: {\n      de: \"Prüfen\",\n      en: \"Check\",\n      fr: \"Vérifier\",\n      es: \"Comprobar\",\n      pt: \"Conferir\"\n    },\n    deleteButton: {\n      de: \"Löschen\",\n      en: \"Delete\",\n      fr: \"Effacer\",\n      es: \"Borrar\",\n      pt: \"Apagar\"\n    },\n    removeButton: {\n      de: \"Entfernen\",\n      en: \"Remove\",\n      fr: \"Retirer\",\n      es: \"Eliminar\",\n      pt: \"Remover\"\n    },\n    quitButton: {\n      de: \"Beenden\",\n      en: \"Quit\",\n      fr: \"Quitter\",\n      es: \"Salir\",\n      pt: \"Sair\"\n    },\n    yes: {\n      de: \"Ja\",\n      en: \"Yes\",\n      fr: \"Oui\",\n      es: \"Sí\",\n      pt: \"Sim\"\n    },\n    no: {\n      de: \"Nein\",\n      en: \"No\",\n      fr: \"Non\",\n      es: \"No\",\n      pt: \"Não\"\n    },\n    ok: {\n      de: \"Ok\",\n      en: \"Ok\",\n      fr: \"OK\",\n      es: \"Ok\",\n      pt: \"Ok\"\n    },\n    offlineError: {\n      de: \"Es konnte keine Verbindung mit dem Internet hergestellt werden. Bitte stelle sicher, dass du online bist.\",\n      en: \"No internet connection could be found. Please make sure that you are connected to the internet.\",\n      fr: \"Aucune connexion Internet n'a pu être établie. Merci de vérifier que tu es en ligne.\",\n      es: \"No se pudo establecer ninguna conexión con la red. Asegúrate de estar conectado.\",\n      pt: \"Não foi possível estabelecer uma conexão com a rede. Por favor, certifique-se de que você está online.\"\n    },\n    offlineError2: {\n      de: \"Beim Ausführen dieser Funktion konnte keine Verbindung mit dem Internet hergestellt werden. Bitte stelle sicher, dass du online bist.\",\n      en: \"While carrying out this function, no internet connection could be found. Please make sure that you are connected to the internet.\",\n      fr: \"Aucune connexion Internet n'a pu être établie pendant l'exécution de cette fonction. Merci de vérifier que tu es en ligne.\",\n      es: \"No se pudo establecer ninguna conexión con la red al ejecutar esta función. Por favor, verifica tu conexión. \",\n      pt: \"Não foi possível estabelecer uma conexão com a internet durante a execução desta função. Por favor, certifique-se de que você está online.\"\n    },\n    errorMessage: {\n      de: \"Es ist ein Fehler aufgetreten. Bitte versuche es später nochmal.\",\n      en: \"An error has occurred. Please try again later.\",\n      fr: \"Une erreur s'est produite. Merci de réessayer plus tard.\",\n      es: \"Ocurrió un error. Favor de intentarlo más tarde.\",\n      pt: \"Ocorreu um erro. Por favor, tente novamente mais tarde.\"\n    },\n    errorCaptchaFailed: {\n      de: \"Sicherheitsprüfung nicht bestanden\",\n      en: \"Security check failed.\",\n      fr: \"Le contrôle de sécurité a échoué.\",\n      es: \"Control de seguridad no aprobado\",\n      pt: \"Falha na verificação de segurança\"\n    },\n    tryAgain: {\n      de: \"Nochmal probieren\",\n      en: \"Try again\",\n      fr: \"Réessayer\",\n      es: \"Volver a intentar\",\n      pt: \"Tentar novamente\"\n    },\n    offlineMessage: {\n      de: \"ANTON muss neue Daten laden,<br> es konnte allerdings keine Internetverbindung hergestellt werden.<br>Bitte stelle sicher, dass du online bist.\",\n      en: \"ANTON needs to load new data,<br>however no internet connection could be found.<br>Please make sure that you are connected to the internet.\",\n      fr: \"ANTON doit charger de nouvelles données,<br> mais aucune connexion Internet n'a pu être établie.<br>Merci de vérifier que tu es en ligne.\",\n      es: \"ANTON necesita cargar datos nuevos.<br>  Pero no se ha podido establecer ninguna conexión a internet.<br>Por favor, verifica tu conexión.\",\n      pt: \"O ANTON precisa baixar novos dados.  <br>Entretanto, não foi possível estabelecer uma conexão com a internet.<br>Por favor, confira se você está online.\"\n    }\n  };\n})();","updated":"2026-05-07T14:45:27.471113"},{"path":"pages/snipTrees/loadingPage/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    return inc(\"/addons/topbar2/topbar\")({\n      title: \"&nbsp;\"\n    });\n  };\n})();","updated":"2026-02-26T15:52:14.300291"},{"path":"lib/svg/iconModern/qr-code.svg","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 96 96\">\n  <path fill=\"#373737\" d=\"M16 57.75a4 4 0 0 1 4 4V70a6 6 0 0 0 6 6h8.25a4 4 0 0 1 0 8H26c-7.732 0-14-6.268-14-14v-8.25a4 4 0 0 1 4-4m64 0a4 4 0 0 1 4 4V70c0 7.732-6.268 14-14 14h-8.25a4 4 0 0 1 0-8H70a6 6 0 0 0 6-6v-8.25a4 4 0 0 1 4-4M40 50a7 7 0 0 1 7 7v7a7 7 0 0 1-7 7h-7a7 7 0 0 1-7-7v-7a7 7 0 0 1 7-7zm24 0a7 7 0 0 1 7 7v7a7 7 0 0 1-7 7h-7a7 7 0 0 1-7-7v-7a7 7 0 0 1 7-7zM33 64h7v-7h-7zm24 0h7v-7h-7zM40 26a7 7 0 0 1 7 7v7a7 7 0 0 1-7 7h-7a7 7 0 0 1-7-7v-7a7 7 0 0 1 7-7zm24 0a7 7 0 0 1 7 7v7a7 7 0 0 1-7 7h-7a7 7 0 0 1-7-7v-7a7 7 0 0 1 7-7zM33 40h7v-7h-7zm24 0h7v-7h-7zM34.25 12a4 4 0 0 1 0 8H26a6 6 0 0 0-6 6v8.25a4 4 0 0 1-8 0V26c0-7.732 6.268-14 14-14zM70 12c7.732 0 14 6.268 14 14v8.25a4 4 0 0 1-8 0V26a6 6 0 0 0-6-6h-8.25a4 4 0 0 1 0-8z\"/>\n</svg>\n","updated":"2026-01-06T08:48:38.102475"},{"path":"pages/misc/_shared/verify/buttons/verifyButton/button.ls","text":"(function(){\n  return function(page){\n    return Button({\n      label: T(\"verify\"),\n      state: \"disabled\",\n      action: page.verifyCode\n    }).css({\n      width: \"15em\",\n      borderRadius: \"8px\",\n      marginBottom: \"1.2em\"\n    });\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/emailOrPhoneNumber/emailOrPhoneNumber.ls","text":"(function(){\n  return function(type){\n    var emailOrPhoneNumber, ref$, ref1$;\n    emailOrPhoneNumber = type === \"email\"\n      ? (ref$ = log.findLast(\"setEMail\")) != null ? ref$.value : void 8\n      : (ref1$ = log.findLast(\"setPhoneNumber\")) != null ? ref1$.value : void 8;\n    return Div({\n      fontWeight: \"bold\"\n    }).html(emailOrPhoneNumber);\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/inputForm/inputForm.ls","text":"(function(){\n  return function(page){\n    var form, ref$;\n    form = inc(\"/lib/gui/inputForm/inputForm\")({\n      fixedLength: 7,\n      cancel: false,\n      submitLabel: T(\"verify\"),\n      screenKeyboardLayout: \"validationCode\",\n      screenKeyboardShiftStatus: true,\n      change: function(key){\n        return inc(\"onChange/on\")(page, key);\n      },\n      submit: page.verifyCode\n    }).css({\n      marginBottom: \"1.2em\"\n    });\n    if ((ref$ = form.findFirst(\".buttonsSubmitCancel\")) != null) {\n      ref$.remove();\n    }\n    return form;\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/email/edit/onCompleted/onCompleted.ls","text":"(function(){\n  return function(page){\n    return function(result){\n      page.form.showSpinner();\n      if (result.status !== \"ok\") {\n        page.onError(result);\n        return page.form.input.start();\n      } else {\n        inc(\"/lib/util/cache/set/set\")(\"verifiedEMail\", \"\");\n        return log.sync(function(error){\n          if (error) {\n            return page.onOffline();\n          } else {\n            if (page.context === \"startUser\") {\n              return startPage({\n                path: path(\"/pages/misc/_shared/verify/page\"),\n                params: {\n                  type: \"email\",\n                  context: \"startUser\"\n                }\n              });\n            } else {\n              return startPage({\n                history: -1,\n                animation: \"slideDown\"\n              });\n            }\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    if (page.context === \"startUser\") {\n      return inc(\"/addons/topbarWhiteBack/topbar\")();\n    } else {\n      return inc(\"/addons/topbar2/topbar\")({\n        back: true,\n        title: page.params.type === \"email\"\n          ? T(\"verifyEmail\")\n          : T(\"verifyPhoneNumber\")\n      });\n    }\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/buttons/buttons.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      flexDirection: \"column\"\n    }).html(page.verifyButton = inc(\"verifyButton/button\")(page), inc(\"skipButton/button\")(page), inc(\"resendButton/button\")(page));\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/buttons/resendButton/button.ls","text":"(function(){\n  return function(page){\n    var button;\n    return button = inc(\"/lib/gui/link/link\")({\n      label: T(\"resendCode\")\n    }).css({\n      marginBottom: \"1.2em\"\n    }).tap(function(){\n      return page.sendCode(true);\n    });\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/buttons/skipButton/button.ls","text":"(function(){\n  return function(page){\n    var button;\n    button = Button({\n      label: T(\"skipVerification\"),\n      type: \"secondary\",\n      action: page.onFinish\n    }).css({\n      marginBottom: \"1.2em\",\n      width: \"15em\"\n    });\n    button.lastChild.css({\n      borderRadius: \"8px\"\n    });\n    return button;\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/sendCode/send.ls","text":"(function(){\n  return function(page, isResend){\n    var spinner;\n    if (isResend) {\n      spinner = inc(\"/lib/gui/spinnerOverlay/overlay\")();\n    }\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: page.type === \"email\"\n        ? path(\"/../server-apis-db2/apis/verificationCode/getMailCode/getMailCode\")\n        : path(\"/../server-apis-db2/apis/verificationCode/getPhoneCode/getPhoneCode\"),\n      params: {\n        logId: log.id()\n      },\n      onCompleted: function(result){\n        if (spinner != null) {\n          spinner.remove();\n        }\n        if (result.status === \"ok\") {\n          if (isResend) {\n            return inc(\"/lib/gui/toast/toast\")({\n              label: T(\"codeResent\")\n            });\n          }\n        } else {\n          return inc(\"/lib/gui/errorPopup/popup\")();\n        }\n      },\n      onError: function(){\n        if (spinner != null) {\n          spinner.remove();\n        }\n        return inc(\"/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        if (spinner != null) {\n          spinner.remove();\n        }\n        return inc(\"/lib/offline/offlinePopup/popup\")();\n      }\n    });\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/text/text.ls","text":"(function(){\n  return function(){\n    return Div({\n      margin: \"1em 0\"\n    }).html(T(\"enterVerificationCode\"));\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/verifyCode/onError/on.ls","text":"(function(){\n  return function(page, result){\n    var status, error;\n    status = result != null ? result.status : void 8;\n    error = status === \"empty_code\"\n      ? T(\"emptyCode\")\n      : status === \"too_short\"\n        ? T(\"codeTooShort\")\n        : status === \"code_invalid\"\n          ? T(\"codeInvalid\")\n          : status === \"code_expired\"\n            ? T(\"codeExpired\")\n            : T(\"errorMessage\");\n    return requestAnimationFrame(function(){\n      page.form.error.html(error);\n      return page.form.input.start();\n    });\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/verifyCode/verify.ls","text":"(function(){\n  return function(page){\n    var onError, input;\n    onError = function(result){\n      return inc(\"onError/on\")(page, result);\n    };\n    input = page.form.input.getValue().replace(\"-\", \"\");\n    if (input === \"\") {\n      onError({\n        status: \"empty_code\"\n      });\n      return;\n    }\n    if (input.length !== 6) {\n      onError({\n        status: \"too_short\"\n      });\n      return;\n    }\n    page.form.showSpinner();\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: page.type === \"email\"\n        ? path(\"/../server-apis-db2/apis/verificationCode/verifyMailCode/verifyMailCode\")\n        : path(\"/../server-apis-db2/apis/verificationCode/verifyPhoneCode/verifyPhoneCode\"),\n      params: {\n        logId: log.id(),\n        code: input\n      },\n      onCompleted: function(result){\n        if (result.status !== \"ok\") {\n          page.form.hideSpinner();\n          return onError(result);\n        } else {\n          return log.sync(function(){\n            inc(\"/lib/gui/toast/toast\")({\n              label: page.type === \"email\"\n                ? T(\"emailVerified\")\n                : T(\"phoneNumberVerified\")\n            });\n            return page.onFinish();\n          });\n        }\n      },\n      onError: function(error){\n        page.form.hideSpinner();\n        return inc(\"/lib/gui/errorPopup/popup\")();\n      },\n      onOffline: function(){\n        page.form.hideSpinner();\n        return inc(\"/lib/offline/offlinePopup/popup\")();\n      }\n    });\n  };\n})();","updated":"2026-01-07T10:00:59.126338"},{"path":"pages/misc/_shared/verify/_t.ls","text":"(function(){\n  return {\n    verifyEmail: {\n      deDev: \"E-Mail-Adresse bestätigen\",\n      en: \"Verify email address\",\n      fr: \"Vérifier l'adresse e-mail\",\n      es: \"Verifica tu dirección de correo electrónico\",\n      pt: \"Verifique seu endereço de e-mail\"\n    },\n    verifyPhoneNumber: {\n      deDev: \"Telefonnummer bestätigen\",\n      en: \"Verify phone number\",\n      fr: \"Vérifier le numéro de téléphone\",\n      es: \"Verifica tu número de teléfono\",\n      pt: \"Verifique seu número de telefone\"\n    },\n    enterVerificationCode: {\n      deDev: \"Gib den Bestätigungscode ein, der gesendet wurde an:\",\n      en: \"Enter the code sent to:\",\n      fr: \"Saisis le code de vérification envoyé à&nbsp;:\",\n      es: \"Introduce el código de verificación enviado a:\",\n      pt: \"Insira o código de verificação enviado para:\"\n    },\n    verify: {\n      de: \"Überprüfen\",\n      en: \"Verify\",\n      fr: \"Vérifier\",\n      es: \"Verificar\",\n      pt: \"Verificar\"\n    },\n    skipVerification: {\n      de: \"Verifizierung überspringen\",\n      en: \"Skip verification\",\n      fr: \"Ignorer la vérification\",\n      es: \"Saltar la verificación\",\n      pt: \"Pular a verificação\"\n    },\n    resendCode: {\n      de: \"Code erneut senden\",\n      en: \"Send code again\",\n      fr: \"Renvoyer le code\",\n      es: \"Reenviar código\",\n      pt: \"Reenviar código\"\n    },\n    codeResent: {\n      de: \"Der Bestätigungscode wurde erneut gesendet.\",\n      en: \"The verification code has been sent again.\",\n      fr: \"Le code de vérification a été renvoyé.\",\n      es: \"Se reenvió el código de verificación.\",\n      pt: \"O código de verificação foi reenviado.\"\n    },\n    emailVerified: {\n      de: \"Deine E-Mail-Adresse wurde erfolgreich verifiziert.\",\n      en: \"Your email has been successfully verified.\",\n      fr: \"Ton adresse e-mail a bien été vérifiée.\",\n      es: \"Se verificó tu correo exitosamente.\",\n      pt: \"Seu e-mail foi verificado com sucesso.\"\n    },\n    phoneNumberVerified: {\n      deDev: \"Deine Telefonnummer wurde erfolgreich verifiziert.\",\n      en: \"Your phone number has been successfully verified.\",\n      fr: \"Ton numéro de téléphone a bien été vérifié.\",\n      es: \"Tu número de teléfono ha sido verificado con éxito.\",\n      ptDev: \"Seu número de telefone foi verificado com sucesso.\"\n    },\n    emptyCode: {\n      de: \"Dieses Feld darf nicht leer sein.\",\n      en_gb: \"This field cannot be left empty.\",\n      en: \"This field cannot be left blank.\",\n      fr: \"Ce champ ne peut pas rester vide.\",\n      es: \"Este campo no puede quedar en blanco.\",\n      pt: \"Este campo não pode ficar vazio.\"\n    },\n    codeTooShort: {\n      de: \"Dieser Code ist zu kurz.\",\n      en: \"Your code is too short.\",\n      fr: \"Ton code est trop court.\",\n      es: \"El código es demasiado corto.\",\n      pt: \"Seu código é curto demais.\"\n    },\n    codeInvalid: {\n      de: \"Dieser Code ist ungültig.\",\n      en: \"This code is not valid.\",\n      fr: \"Ce code n'est pas valide.\",\n      es: \"El código no es válido.\",\n      pt: \"Este código não é válido.\"\n    },\n    codeExpired: {\n      de: \"Dieser Code ist abgelaufen.\",\n      en: \"This code has expired.\",\n      fr: \"Ce code est expiré.\",\n      es: \"El código expiró.\",\n      pt: \"Este código está expirado.\"\n    },\n    errorMessage: {\n      de: \"Ups, hier ist etwas schiefgelaufen.\",\n      en: \"Oops, something went wrong here.\",\n      fr: \"Oups&nbsp;! Une erreur s'est produite…\",\n      es: \"¡Ups! Algo salió mal.\",\n      pt: \"Ops! Algo deu errado aqui.\"\n    }\n  };\n})();","updated":"2026-02-23T18:43:09.084739"},{"path":"lib/gui/input2/addChar/addChar.ls","text":"(function(){\n  return function(o){\n    return function(value){\n      var length, char;\n      o.selection['delete']();\n      if (o.maxLength != null) {\n        length = o.div.find(\".inputChar\").length;\n        if (length >= o.maxLength) {\n          return;\n        }\n      }\n      char = inc(\"char/char\")(o, value);\n      if (o.cursor.parentNode == null) {\n        return;\n      }\n      o.cursor.before(char);\n      if (o.isStarted) {\n        return o.cursor.start();\n      }\n    };\n  };\n})();","updated":"2026-02-18T12:51:34.062617"},{"path":"lib/util/orientation/lock.ls","text":"(function(){\n  return function(orientation){\n    var o, ref$;\n    if (!engine.isMobileApp) {\n      return;\n    }\n    o = orientation != null\n      ? orientation\n      : (ref$ = screen.orientation.type) != null\n        ? ref$\n        : screen.orientation;\n    if (!o) {\n      return;\n    }\n    return (ref$ = cordova.plugins.screenorientation) != null ? ref$.setOrientation(o) : void 8;\n  };\n})();","updated":"2026-02-18T12:51:34.062617"},{"path":"lib/util/audioContextNext/init/pauseAndResume/pauseAndResume.ls","text":"(function(){\n  return function(){\n    var onVisibilityChange, onPause, onResume;\n    onVisibilityChange = function(){\n      if (engine.isDebug) {\n        return;\n      }\n      if (document.visibilityState === \"hidden\") {\n        return onPause();\n      } else {\n        return onResume();\n      }\n    };\n    onPause = function(){\n      var ref$;\n      sound.appPaused = true;\n      if (((ref$ = sound.audioContext) != null ? ref$.state : void 8) !== \"running\") {\n        return;\n      }\n      app.audioContextDebugEvents.push({\n        event: \"onPause\",\n        created: new Date()\n      });\n      return sound.audioContext.suspend();\n    };\n    onResume = function(){\n      sound.appPaused = false;\n      app.audioContextDebugEvents.push({\n        event: \"onResume\",\n        created: new Date()\n      });\n      return inc(\"../../_shared/createOrResumeOnInteraction/createOrResume\")();\n    };\n    if (engine.isMobileApp) {\n      document.addEventListener(\"pause\", onPause, false);\n      return document.addEventListener(\"resume\", onResume, false);\n    } else {\n      return document.addEventListener(\"visibilitychange\", onVisibilityChange);\n    }\n  };\n})();","updated":"2026-02-18T12:51:34.062617"},{"path":"lib/init/onNewLogEvents/deleteEventIsGroupMember/isGroupMember.ls","text":"(function(){\n  return function(events){\n    var currentGroup, ref$, i$, len$, e, currentLogId, ref1$, ref2$, ref3$, ref4$, results$ = [];\n    currentGroup = (ref$ = app.currentPage) != null ? ref$.groupDescription : void 8;\n    if (!currentGroup) {\n      return;\n    }\n    for (i$ = 0, len$ = events.length; i$ < len$; ++i$) {\n      e = events[i$];\n      currentLogId = (ref1$ = window.log) != null ? ref1$.id() : void 8;\n      if (((ref2$ = e.target) != null ? ref2$.event : void 8) === \"isGroupMember\" && ((ref3$ = e.target) != null ? ref3$.groupCode : void 8) === (currentGroup != null ? currentGroup.groupCode : void 8) && e.logId === currentLogId) {\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref4$ = log.findLast(\"navigationNext\")) != null && ref4$.enabled))) {\n          results$.push(startPage({\n            path: path(\"/../app01-group/pages/groupsList/page\"),\n            history: -(app.pageHistory.length - 1),\n            animation: \"slideRight\"\n          }));\n        } else {\n          results$.push(inc(\"/../app01-group/pages/group/group/start\")());\n        }\n      }\n    }\n    return results$;\n  };\n})();","updated":"2026-02-18T12:51:34.062617"},{"path":"lib/init/onNewLogEvents/groupIsDeleted/groupIsDeleted.ls","text":"(function(){\n  return function(events){\n    var currentGroup, i$, len$, e, ref$, results$ = [];\n    currentGroup = app.currentPage.groupDescription;\n    for (i$ = 0, len$ = events.length; i$ < len$; ++i$) {\n      e = events[i$];\n      if (e.logId === (currentGroup != null ? currentGroup.groupCode : void 8)) {\n        if (deviceLog['var'](\"enableNavigationNext\") || ((typeof log != 'undefined' && log !== null) && ((ref$ = log.findLast(\"navigationNext\")) != null && ref$.enabled))) {\n          results$.push(startPage({\n            path: path(\"/../app01-group/pages/groupsList/page\"),\n            history: -(app.pageHistory.length - 1),\n            animation: \"slideRight\"\n          }));\n        } else {\n          results$.push(inc(\"/../app01-group/pages/group/group/start\")());\n        }\n      }\n    }\n    return results$;\n  };\n})();","updated":"2026-02-18T12:51:34.062617"},{"path":"pages/content/plan/topics/unlinkedBlocks/blockRow/blockRow.ls","text":"(function(){\n  return function(block, page){\n    return inc(\"/../app01-content-row/row/blockRow/row\")({\n      page: page,\n      context: \"idePreview\",\n      block: block\n    });\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"lib/util/soundNext/sound.ls","text":"(function(){\n  return function(params){\n    var s;\n    s = {};\n    s.params = _.clone(params);\n    s.initialized = false;\n    s.isPlaying = false;\n    s.duration = null;\n    s.currentSoundPartIndex = -1;\n    s.currentSoundPart = null;\n    s.onFinish = function(){\n      return inc(\"onFinish/on\")(s);\n    };\n    s.onProgress = function(currentTime, duration, analyserData){\n      return inc(\"onProgress/on\")(s, currentTime, duration, analyserData);\n    };\n    s.onPlayError = function(error){\n      return inc(\"onPlayError/on\")(s, error);\n    };\n    s.applyParams = function(){\n      return inc(\"applyParams/apply\")(s);\n    };\n    s.playNextSoundPart = function(){\n      return inc(\"playNextSoundPart/play\")(s);\n    };\n    s.play = function(paramsOrOnFinish, onProgress, onStop){\n      return inc(\"play/play\")(s, paramsOrOnFinish, onProgress, onStop);\n    };\n    s.stop = function(){\n      return inc(\"stop/stop\")(s);\n    };\n    s.fadeout = function(duration){\n      return inc(\"fadeout/fadeout\")(s, duration);\n    };\n    s.getDuration = function(){\n      return s.duration;\n    };\n    s.getCurrentTimeSound = function(){\n      return s.currentTimeSound;\n    };\n    s.soundParts = inc(\"createSoundParts/create\")(s);\n    return s;\n  };\n})();","updated":"2026-01-27T15:34:17.084523"},{"path":"lib/util/audioContextNext/_shared/playSilence/playSilence.ls","text":"(function(){\n  return function(){\n    var audioContext, s, g;\n    audioContext = sound.audioContext;\n    if (audioContext == null) {\n      return;\n    }\n    s = audioContext.createBufferSource();\n    s.buffer = audioContext.createBuffer(1, 1, 44100);\n    g = audioContext.createGain();\n    g.gain.value = 0;\n    s.connect(audioContext.destination);\n    g.connect(audioContext.destination);\n    s.connect(g);\n    s.start(0);\n    return s.disconnect();\n  };\n})();","updated":"2026-01-27T13:34:15.591264"},{"path":"lib/util/audioContext/init/init.ls","text":"(function(){\n  return function(){\n    return inc(\"../../audioContextNext/init/init\")();\n    if (window.sound) {\n      return;\n    }\n    window.sound = {};\n    app.audioContextDebugEvents == null && (app.audioContextDebugEvents = []);\n    app.audioContextDebugEvents.push({\n      event: \"init\",\n      created: new Date()\n    });\n    if (engine.isMobileApp) {\n      inc(\"../refresh/refresh\")();\n    } else {\n      inc(\"createAudioContextOnFirstInteraction/create\")();\n    }\n    if (engine.isMobileApp) {\n      inc(\"pauseAndResume/pauseAndResume\")();\n    }\n    if (navigator.userAgent.indexOf(\"Crosswalk/23\") > -1) {\n      return inc(\"keepAliveAndroid/keepAliveAndroid\")();\n    }\n  };\n})();","updated":"2026-01-15T09:53:01.956148"},{"path":"pages/content/plan/topics/topic/topic.ls","text":"(function(){\n  return function(page, topic, index){\n    var update, div, block;\n    if (topic.isOutdated) {\n      return;\n    }\n    update = function(){\n      var i$, ref$, len$, el, results$ = [];\n      for (i$ = 0, len$ = (ref$ = div.findAll(\".update\")).length; i$ < len$; ++i$) {\n        el = ref$[i$];\n        results$.push(typeof el.update == 'function' ? el.update() : void 8);\n      }\n      return results$;\n    };\n    div = Div().addClass(\"topicRow\").attr({\n      id: _.replaceAll(topic.title, \" \", \"-\").toLowerCase()\n    }).html(inc(\"title/title\")(topic), Div({\n      borderTop: \"1px solid \" + Color.grey[300]\n    }).html((function(){\n      var i$, ref$, len$, results$ = [];\n      for (i$ = 0, len$ = (ref$ = topic.blocks).length; i$ < len$; ++i$) {\n        block = ref$[i$];\n        results$.push(inc(\"blockRow/blockRow\")(block, page));\n      }\n      return results$;\n    }())));\n    div.update = update;\n    div.topicPath = topic.path;\n    return div;\n  };\n})();","updated":"2026-01-13T13:44:31.393449"},{"path":"pages/start/startUser/07_extraPages/showWidaTestPrepFeedbackInfo/_t.ls","text":"(function(){\n  return {\n    title: {\n      en: \"Help us improve!\"\n    },\n    text: {\n      en: \"We would love to hear what you think about the resources we offer for ELP state assessment prep.<ul style='margin-left:-1em;'><li style='line-height:2.5em;'>What needs improvement?</li><li style='line-height:2.5em;'>What are you missing?</li><li style='line-height:2.5em;'>What's working well?</li></ul>Your feedback helps us create a better learning experience for all students!\"\n    },\n    giveFeedback: {\n      en: \"Give feedback\"\n    },\n    dontShowAgainButtonLabel: {\n      en: \"Don't show again\"\n    },\n    writeYourFeedback: {\n      en: \"Do you have any feedback or suggestions for improvement regarding our ELP state assessment prep? Share your opinion with us:\"\n    },\n    sendFeedback: {\n      en: \"Send\"\n    },\n    thanksForFeedback: {\n      en: \"Thank you for your feedback!\"\n    }\n  };\n})();","updated":"2026-02-23T08:32:52.348462"},{"path":"lib/util/soundNext/createSoundParts/soundPart/createAudioData/create.ls","text":"(function(){\n  return function(s, sp, onDone){\n    var generateBuffer, decode, onOk, onError, finish;\n    generateBuffer = function(){\n      return inc(\"generateBuffer/generate\")({\n        base64: sp.base64,\n        onOk: decode,\n        onError: onError\n      });\n    };\n    decode = function(buffer){\n      if (sound.audioContext == null) {\n        inc(\"logMissingAudioContext/log\")();\n      }\n      return sound.audioContext.decodeAudioData(buffer, onOk, onError);\n    };\n    onOk = function(audioData){\n      return trySafe(function(){\n        sp.audioData = audioData;\n        return finish();\n      });\n    };\n    onError = function(error){\n      return trySafe(function(){\n        var audioData;\n        audioData = sound.audioContext.createBuffer(1, 5000, 44100);\n        sp.hasError = true;\n        sp.audioData = audioData;\n        setTimeout(function(){\n          return inc(\"logAndAnalyseError/logAndAnalyse\")(s, sp, error);\n        });\n        return finish();\n      });\n    };\n    finish = function(){\n      sp.initialized = true;\n      return setTimeout(onDone);\n    };\n    return generateBuffer();\n  };\n})();","updated":"2026-01-14T11:45:10.230004"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/stretch/sound.ls","text":"(function(){\n  return async function(p){\n    var source, baseSound, play, onFrame;\n    source = (await inc(\"createStretchSource/create\")(p));\n    p.audioContext = source.context;\n    baseSound = inc(\"../_baseSound/sound\")(source, p);\n    play = function(){\n      var blockMs, overlap, intervalMs;\n      p.startTime = new Date();\n      p.isPlaying = true;\n      baseSound.connectChain();\n      if (p.speedFactor < 1) {\n        blockMs = Math.round(120 * p.speedFactor);\n        overlap = Math.round(4 * p.speedFactor);\n        intervalMs = Math.round(blockMs / overlap);\n        source.configure({\n          blockMs: blockMs,\n          intervalMs: intervalMs,\n          splitComputation: true\n        });\n      }\n      source.start({\n        rate: p.speedFactor\n      });\n      if (!p.isLoop) {\n        p.timeout = setTimeout(baseSound.onTimeout, p.duration);\n      }\n      return onFrame();\n    };\n    onFrame = function(){\n      p.currentTime = _.round((source.inputTime / p.speedFactor) * 1000);\n      if (!p.isPlaying || p.currentTime >= p.duration) {\n        return;\n      }\n      baseSound.onProgress();\n      return requestAnimationFrame(onFrame);\n    };\n    return {\n      play: play,\n      stop: baseSound.stop,\n      fadeout: baseSound.fadeout\n    };\n  };\n})();","updated":"2026-03-26T07:47:31.015501"},{"path":"lib/util/audioContextNext/_shared/checkAndFixAudioContext/createNewAudioContext/create.ls","text":"(function(){\n  return function(){\n    var AudioCtx, ref$;\n    AudioCtx = (ref$ = window.AudioContext) != null\n      ? ref$\n      : window.webkitAudioContext;\n    if (AudioCtx == null) {\n      inc(\"logMissingAudioContextInterface/log\")();\n      return;\n    }\n    window.sound.audioContext = new AudioCtx();\n    return app.audioContextDebugEvents.push({\n      event: \"create\",\n      type: \"new audioContext\",\n      created: new Date(),\n      sampleRate: sound.audioContext.sampleRate\n    });\n  };\n})();","updated":"2026-01-27T15:34:17.084523"},{"path":"lib/util/audioContextNext/_shared/checkAndFixAudioContext/checkFrozenAudioContext/closeAudioContext/close.ls","text":"(function(){\n  return async function(){\n    var audioContext, error;\n    audioContext = sound.audioContext;\n    if (audioContext.state === \"closed\") {\n      return;\n    }\n    app.audioContextDebugEvents.push({\n      event: \"checkAndFix\",\n      created: new Date(),\n      type: \"closing audioContext\"\n    });\n    try {\n      (await audioContext.close());\n    } catch (e$) {\n      error = e$;\n      if (error.name !== \"AbortError\") {\n        throw error;\n      }\n    }\n    return app.audioContextDebugEvents.push({\n      event: \"checkAndFix\",\n      created: new Date(),\n      type: \"audioContext closed\"\n    });\n  };\n})();","updated":"2026-01-14T11:45:10.230004"},{"path":"lib/util/audioContextNext/_shared/checkAndFixAudioContext/checkFrozenAudioContext/check.ls","text":"(function(){\n  return async function(){\n    var audioContext, lastCurrentTime;\n    audioContext = sound.audioContext;\n    if (!engine.isiOsApp || audioContext.state !== \"running\" || sound.audioContextCheckInProgress) {\n      return;\n    }\n    sound.audioContextCheckInProgress = true;\n    lastCurrentTime = audioContext.currentTime;\n    (await sleep(50));\n    if (lastCurrentTime === audioContext.currentTime && audioContext.state === \"running\" && !sound.appPaused) {\n      app.audioContextDebugEvents.push({\n        event: \"checkAndFix\",\n        created: new Date(),\n        type: \"audioContext frozen\"\n      });\n      (await inc(\"closeAudioContext/close\")());\n      inc(\"../../createOrResumeOnInteraction/createOrResume\")();\n    }\n    return sound.audioContextCheckInProgress = false;\n  };\n})();","updated":"2026-01-28T13:50:04.421024"},{"path":"lib/util/audioContextNext/_shared/checkAndFixAudioContext/createNewAudioContext/logMissingAudioContextInterface/log.ls","text":"(function(){\n  return function(){\n    return app.audioContextDebugEvents.push({\n      event: \"create\",\n      type: \"Web Audio API not supported\",\n      created: new Date(),\n      result: {\n        webkitAudioContext: (function(){\n          try {\n            return new webkitAudioContext() != null;\n          } catch (e$) {}\n        }()),\n        audioContext: (function(){\n          try {\n            return new AudioContext() != null;\n          } catch (e$) {}\n        }()),\n        offlineAudioContext: (function(){\n          try {\n            return new OfflineAudioContext(2, 44100 * 40, 44100) != null;\n          } catch (e$) {}\n        }())\n      }\n    });\n  };\n})();","updated":"2026-01-14T11:45:10.230004"},{"path":"lib/util/soundNext/createSoundParts/soundPart/createAudioData/logMissingAudioContext/log.ls","text":"(function(){\n  return function(){\n    var _log, event;\n    app.audioContextDebugEvents.push({\n      event: \"createSoundParts\",\n      type: \"audio context missing\",\n      created: new Date()\n    });\n    _log = log || deviceLog;\n    event = log ? \"debugAudioContextEvents\" : \"deviceDebugAudioContextEvents\";\n    return _log.log({\n      event: event,\n      debugEvents: app.audioContextDebugEvents\n    });\n  };\n})();","updated":"2026-01-14T11:45:10.230004"},{"path":"lib/util/audioContextNext/_shared/checkAndFixAudioContext/logAudioContextDebugEvents/log.ls","text":"(function(){\n  return function(error){\n    var _log, event;\n    app.audioContextDebugEvents.push({\n      event: \"checkAndFix\",\n      type: \"resumeError\",\n      errorMessage: error.message,\n      created: new Date()\n    });\n    _log = log || deviceLog;\n    event = log ? \"debugAudioContextEvents\" : \"deviceDebugAudioContextEvents\";\n    return _log.log({\n      event: event,\n      debugEvents: app.audioContextDebugEvents\n    });\n  };\n})();","updated":"2026-01-15T15:58:34.872823"},{"path":"lib/util/soundNext/play/play.ls","text":"(function(){\n  return async function(s, paramsOrOnFinish, onProgress, onStop){\n    var e;\n    if (s.isPlaying) {\n      s.stop();\n    }\n    s.isPlaying = true;\n    try {\n      (await inc(\"/lib/util/audioContextNext/_shared/checkAndFixAudioContext/checkFrozenAudioContext/check\")());\n      (await inc(\"waitUntilInitialized/wait\")(s));\n    } catch (e$) {\n      e = e$;\n      s.onPlayError(e);\n      return;\n    }\n    if (!s.isPlaying) {\n      return;\n    }\n    inc(\"overwriteParams/overwrite\")(s, paramsOrOnFinish, onProgress, onStop);\n    if (s.isLoop && s.soundParts.length > 1) {\n      s.isPlaying = false;\n      throw Error(\"isLoop is not supported for multiSounds\");\n    }\n    if (!s.params.isSoundEffect) {\n      app.lastSound = s;\n    }\n    s.currentSoundPartIndex = -1;\n    s.isPlaying = true;\n    return s.playNextSoundPart();\n  };\n})();","updated":"2026-01-15T09:53:01.956148"},{"path":"pages/static/schoolLicense/_bottombar/bottombar.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      flexWrap: \"wrap\",\n      padding: \"0.4em 0\"\n    }).html(inc(\"buttonOrder/button\")(), twitch({\n      de: inc(\"buttonsBrochure/de/buttons\")(),\n      en_gb: inc(\"buttonsBrochure/en_gb/buttons\")(),\n      fr: inc(\"buttonsBrochure/fr/buttons\")(),\n      es: inc(\"buttonsBrochure/es/buttons\")(),\n      pt: inc(\"buttonsBrochure/pt/buttons\")(),\n      'default': inc(\"buttonsBrochure/default/buttons\")()\n    }));\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/feature/feature.ls","text":"(function(){\n  return function(o){\n    return Div({\n      display: \"flex\",\n      alignItems: \"flex-start\",\n      marginBottom: \"1.5em\"\n    }).html(inc(\"icon/icon\")(o), inc(\"text/text\")(o));\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/_topbar/title/title.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\"\n    }).html(SvgIcon({\n      svg: path(\"/lib/svg/shape/school.svg\"),\n      color: Color.grey[700]\n    }).css({\n      marginRight: \"0.4em\",\n      marginBottom: \"0.25em\"\n    }), inc(\"/lib/seo/element/h1/h1\")(T(\"antonLicense\")));\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"_urlDescription/description\")();\n      },\n      bottom: function(){\n        return inc(\"_bottombar/bottombar\")(page);\n      },\n      start: function(){\n        var o;\n        if (typeof log != 'undefined' && log !== null) {\n          log.log({\n            event: \"debugSchoolLicenceShowPage\"\n          });\n        }\n        return page.css({\n          margin: \"1em auto\",\n          maxWidth: \"90%\",\n          width: \"30em\"\n        }).html(inc(\"header/header\")(), (function(){\n          var i$, ref$, len$, results$ = [];\n          for (i$ = 0, len$ = (ref$ = inc(\"calcFeatures/calc\")()).length; i$ < len$; ++i$) {\n            o = ref$[i$];\n            results$.push(inc(\"feature/feature\")(o));\n          }\n          return results$;\n        }()), inc(\"priceInfo/priceInfo\")(), inc(\"activationInfo/activationInfo\")());\n      }\n    };\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/_bottombar/buttonOrder/button.ls","text":"(function(){\n  return function(){\n    var startSchoolLicenseFunnel, tap, button;\n    startSchoolLicenseFunnel = function(){\n      return inc(\"startSchoolLicenseFunnel/start\")(button);\n    };\n    tap = function(){\n      return inc(\"/lib/gui/parentalGate/parentalGate\")(startSchoolLicenseFunnel, {\n        omitParentMention: true\n      });\n    };\n    return button = Button({\n      label: T(\"onlineOrder\"),\n      action: tap\n    }).css({\n      margin: \"0.5em\",\n      minWidth: \"2.5em\",\n      textAlign: \"center\"\n    });\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/_bottombar/buttonOrder/startSchoolLicenseFunnel/start.ls","text":"(function(){\n  return function(button){\n    var start;\n    start = function(){\n      var spinner;\n      spinner = inc(\"/lib/gui/spinnerDivOverlay/overlay\")(button);\n      return inc(\"/lib/util/loadProjects/load\")({\n        projectDescriptions: [{\n          project: \"app01-school-license-funnel\"\n        }],\n        timeout: \"15,10\",\n        logResults: true,\n        onDone: function(){\n          spinner.stop();\n          return inc(\"/../app01-school-license-funnel/start\")();\n        },\n        onProjectMissingError: function(){\n          spinner.stop();\n          return inc(\"/lib/offline/offlinePopup/popup\")();\n        }\n      });\n    };\n    if (!inc(\"/lib/util/isDesktop/isDesktop\")()) {\n      return inc(\"/lib/gui/confirmPopup/popup\")({\n        label: T(\"mobilePrintInfo\"),\n        yesLabel: T(\"continueButton\"),\n        noLabel: T(\"cancelButton\"),\n        onConfirm: start\n      });\n    } else {\n      return start();\n    }\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/_bottombar/buttonsBrochure/_button/button.ls","text":"(function(){\n  return function(p){\n    var openPdf, tap;\n    openPdf = function(){\n      if (typeof log != 'undefined' && log !== null) {\n        log.log({\n          event: \"debugSchoolLicenceDownloadOrderPdf\",\n          id: p.id\n        });\n      }\n      return window.open(p.file, \"_system\");\n    };\n    tap = function(){\n      return inc(\"/lib/gui/parentalGate/parentalGate\")(openPdf, {\n        omitParentMention: true\n      });\n    };\n    return Button({\n      label: p.label,\n      labelAllowWrap: true,\n      action: tap\n    }).css({\n      margin: \"0.5em\",\n      minWidth: \"2.5em\",\n      textAlign: \"center\"\n    });\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/_bottombar/buttonsBrochure/de/buttons.ls","text":"(function(){\n  return function(){\n    var b;\n    b = inc(\"../_button/button\");\n    return [\n      Div({\n        flex: \"1 0 100%\",\n        margin: \"0.3em 0\",\n        textAlign: \"center\"\n      }).html(T(\"infoBrochure\") + \":\"), b({\n        id: \"DE\",\n        label: \"DE\",\n        file: \"https://files.anton.app/files/ANTON-Schullizenz-Broschuere-DE.pdf\"\n      }), b({\n        id: \"AT\",\n        label: \"AT\",\n        file: \"https://files.anton.app/files/ANTON-Schullizenz-Broschuere-DE_AT.pdf\"\n      }), b({\n        id: \"CH\",\n        label: \"CH\",\n        file: \"https://files.anton.app/files/ANTON-Schullizenz-Broschuere-DE_CH.pdf\"\n      }), b({\n        id: \"Other\",\n        label: T(\"other\"),\n        file: \"https://files.anton.app/files/ANTON-Schullizenz-Broschuere-DE.pdf\"\n      })\n    ];\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/_bottombar/buttonsBrochure/default/buttons.ls","text":"(function(){\n  return function(){\n    return inc(\"../_button/button\")({\n      id: \"info\",\n      label: T(\"infoBrochure\"),\n      file: \"https://files.anton.app/files/ANTON-school-license-brochure-EN_US.pdf\"\n    });\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/_bottombar/buttonsBrochure/en_gb/buttons.ls","text":"(function(){\n  return function(){\n    return inc(\"../_button/button\")({\n      id: \"info\",\n      label: T(\"infoBrochure\"),\n      file: \"https://files.anton.app/files/ANTON-school-licence-brochure-EN_GB.pdf\"\n    });\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/_bottombar/buttonsBrochure/es/buttons.ls","text":"(function(){\n  return function(){\n    return inc(\"../_button/button\")({\n      id: \"info\",\n      label: T(\"infoBrochure\"),\n      file: \"https://files.anton.app/files/ANTON-licencia-escolar-brochure-ES_MX.pdf\"\n    });\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/_bottombar/buttonsBrochure/fr/buttons.ls","text":"(function(){\n  return function(){\n    return inc(\"../_button/button\")({\n      id: \"info\",\n      label: T(\"infoBrochure\"),\n      file: \"https://files.anton.app/files/ANTON-licence-scolaire-brochure-FR.pdf\"\n    });\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/_bottombar/buttonsBrochure/pt/buttons.ls","text":"(function(){\n  return function(){\n    return inc(\"../_button/button\")({\n      id: \"info\",\n      label: T(\"infoBrochure\"),\n      file: \"https://files.anton.app/files/ANTON-licenca-escolar-brochure-PT_BR.pdf\"\n    });\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/activationInfo/activationInfo.ls","text":"(function(){\n  return function(){\n    if (engine.guiLanguage !== \"de\") {\n      return;\n    }\n    return Div({\n      margin: \"0 auto\",\n      textAlign: \"justify\",\n      hyphens: \"auto\",\n      padding: \"0.7em\",\n      borderRadius: \"0.7em\",\n      backgroundColor: Color.grey[75],\n      border: \"1px solid \" + Color.grey[150],\n      marginTop: \"2em\"\n    }).html(T(\"activationInfoDE\"));\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/calcFeatures/calc.ls","text":"(function(){\n  return function(){\n    var data, features, i$, len$, feature, results$ = [];\n    data = inc(\"data/data\");\n    features = twitch({\n      de: [\"schoolAdmin\", \"schoolDirectory\", \"assignExercises\", \"learningProgress\", \"certificates\", \"antonPlus\"],\n      en_gb: [\"schoolAdmin\", \"schoolDirectory\", \"assignExercises\", \"learningProgress\", \"certificates\", \"antonPlus\"],\n      en: [\"integrations\", \"districtAdmin\", \"districtAnalytics\", \"assignExercises\", \"certificates\", \"extras\"],\n      fr: [\"schoolAdmin\", \"schoolDirectory\", \"assignExercises\", \"learningProgress\", \"certificates\", \"antonPlus\"],\n      es: [\"schoolAdmin\", \"schoolDirectory\", \"assignExercises\", \"learningProgress\", \"certificates\", \"antonPlus\"],\n      pt: [\"schoolAdmin\", \"schoolDirectory\", \"assignExercises\", \"learningProgress\", \"certificates\", \"antonPlus\"]\n    });\n    for (i$ = 0, len$ = features.length; i$ < len$; ++i$) {\n      feature = features[i$];\n      results$.push(data[feature]);\n    }\n    return results$;\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/calcFeatures/data/data.ls","text":"(function(){\n  return {\n    schoolAdmin: {\n      icon: path(\"/lib/svg/shape/school.svg\"),\n      text: T(\"schoolAdminFeature\")\n    },\n    schoolDirectory: {\n      icon: path(\"/lib/svg/shape/user-admin.svg\"),\n      text: T(\"schoolDirectoryFeature\")\n    },\n    assignExercises: {\n      icon: path(\"/lib/svg/shape/pin.svg\"),\n      text: T(\"assignExercisesFeature\")\n    },\n    learningProgress: {\n      icon: path(\"/lib/svg/shape/stats.svg\"),\n      text: T(\"learningProgressFeature\")\n    },\n    certificates: {\n      icon: path(\"/lib/svg/shape/certificate.svg\"),\n      text: T(\"certificatesFeature\")\n    },\n    antonPlus: {\n      icon: path(\"/lib/svg/illustration/anton-plus.svg\"),\n      text: T(\"antonPlusFeature\"),\n      iconColor: \"\"\n    },\n    integrations: {\n      icon: path(\"/lib/svg/shape/link.svg\"),\n      text: T(\"integrationsFeature\")\n    },\n    districtAdmin: {\n      icon: path(\"/lib/svg/shape/security.svg\"),\n      text: T(\"districtAdminFeature\")\n    },\n    districtAnalytics: {\n      icon: path(\"/lib/svg/shape/stats.svg\"),\n      text: T(\"districtAnalyticsFeature\")\n    },\n    extras: {\n      icon: path(\"/lib/svg/shape/star.svg\"),\n      text: T(\"extrasFeature\")\n    }\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/feature/icon/icon.ls","text":"(function(){\n  return function(o){\n    var ref$;\n    return SvgIcon({\n      svg: o.icon,\n      color: (ref$ = o.iconColor) != null\n        ? ref$\n        : Color.grey[650],\n      size: \"1.3em\"\n    }).css({\n      marginRight: \"0.7em\",\n      paddingTop: \"0.1em\"\n    });\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/feature/text/text.ls","text":"(function(){\n  return function(o){\n    return Div({\n      flex: \"1 1 auto\",\n      textAlign: \"left\"\n    }).html(o.text);\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/header/header.ls","text":"(function(){\n  return function(){\n    return inc(\"/lib/seo/element/h2/h2\")().css({\n      textAlign: \"center\",\n      fontWeight: \"bold\",\n      lineHeight: \"1.5em\",\n      borderBottom: \"1px solid \" + Color.grey[200],\n      marginBottom: \"1.5em\",\n      paddingBottom: \"0.8em\"\n    }).html(T(\"info\"));\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"pages/static/schoolLicense/priceInfo/priceInfo.ls","text":"(function(){\n  return function(){\n    if (engine.guiLanguage === \"en_us\") {\n      return;\n    }\n    return Div({\n      marginTop: \"1em\",\n      paddingTop: \"1em\",\n      marginBottom: \"1em\",\n      lineHeight: \"1.5em\",\n      borderTop: \"1px solid \" + Color.grey[200]\n    }).html(T(\"price\"), engine.guiLanguage === \"fr\" ? Div({\n      marginTop: \"0.5em\",\n      fontSize: \"0.7em\"\n    }).html(T(\"extraPriceInfoFR\")) : void 8);\n  };\n})();","updated":"2026-05-11T08:15:52.27318"},{"path":"lib/util/audioContextNext/_shared/createOrResumeOnInteraction/createOrResume.ls","text":"(function(){\n  var userInteractionPending;\n  userInteractionPending = false;\n  return function(){\n    var createOrResume;\n    if (userInteractionPending) {\n      return;\n    }\n    createOrResume = function(){\n      if (!userInteractionPending || sound.audioContextCheckInProgress || sound.appPaused) {\n        return;\n      }\n      userInteractionPending = false;\n      document.removeEventListener(\"pointerdown\", createOrResume, true);\n      document.removeEventListener(\"touchstart\", createOrResume, true);\n      document.removeEventListener(\"mousedown\", createOrResume, true);\n      document.removeEventListener(\"keydown\", createOrResume, true);\n      document.removeEventListener(\"click\", createOrResume, true);\n      app.audioContextDebugEvents.push({\n        event: \"createOrResumeOnFirstInteraction\",\n        created: new Date()\n      });\n      inc(\"../checkAndFixAudioContext/checkAndFix\")();\n      return inc(\"../playSilence/playSilence\")();\n    };\n    userInteractionPending = true;\n    document.addEventListener(\"pointerdown\", createOrResume, true);\n    document.addEventListener(\"touchstart\", createOrResume, true);\n    document.addEventListener(\"mousedown\", createOrResume, true);\n    document.addEventListener(\"keydown\", createOrResume, true);\n    return document.addEventListener(\"click\", createOrResume, true);\n  };\n})();","updated":"2026-02-02T09:37:03.338581"},{"path":"pages/start/login/01_step1/_t.ls","text":"(function(){\n  return {\n    needHelp: {\n      de: \"Brauchst du Hilfe?\",\n      en: \"Do you need help?\",\n      fr: \"Besoin d'aide&nbsp;?\",\n      es: \"¿Necesitas ayuda?\",\n      pt: \"Precisa de ajuda?\"\n    },\n    scanQr: {\n      de: \"QR-Code scannen\",\n      en: \"Scan QR code\",\n      fr: \"Scanner un code QR\",\n      es: \"Escanear código QR\",\n      pt: \"Escanear QR Code\"\n    },\n    emptyField: {\n      de: \"Bitte trage etwas ein.\",\n      en: \"Please enter something.\",\n      fr: \"Merci d'entrer quelque chose.\",\n      es: \"Por favor, escribe algo.\",\n      pt: \"Por favor, digite algo.\"\n    },\n    isPreparedMember: {\n      de: \"Bitte melde dich zuerst mit einem bestehenden Konto an und gehe dann auf <b><i>Gruppe beitreten mit Code</i></b>, um der Gruppe <b><i>$1</i></b> als Lehrkraft beizutreten.\",\n      en: \"Please log in first with an existing account, then go on <b><i>Join group with code</i></b> to enter the group <b><i>$1</i></b> as a teacher.\",\n      fr: \"Merci de te connecter d'abord avec un compte existant. Tu peux ensuite appuyer sur <b><i>Rejoindre un groupe</i></b> pour rejoindre le groupe <b><i>$1</i></b> en tant que professeur·e.\",\n      es: \"Por favor, inicia sesión con una cuenta existente. Posteriormente, presiona <b><i>Unirse a un grupo</i></b> para unirte como docente al grupo <b><i>$1</i></b>.\",\n      pt: \"Por favor, primeiro faça seu login com uma conta já existente. Depois clique em <b><i>Entrar no grupo com código</i></b> para entrar no grupo <b><i>$1</i></b> como professor(a).\"\n    },\n    enterCode: {\n      de: \"Bitte Anmelde-Code, E-&#65279;Mail, Handynummer oder Nutzername eintragen:\",\n      en_gb: \"Please enter your login code, email, mobile phone number or username.\",\n      en: \"Please enter your login code, e-&#65279;mail, cell&nbsp;phone number or username.\",\n      fr: \"Merci d'entrer ton code de connexion, ton e-mail, ton numéro de téléphone ou ton identifiant.\",\n      es: \"Ingresa tu clave de acceso, tu correo electrónico, tu número de teléfono o tu nombre de usuario/a.\",\n      pt: \"Digite seu código de acesso, endereço de e-mail, número de celular ou seu nome de usuário(a).\"\n    },\n    qrCodeInvalid: {\n      de: \"Dieser QR-Code ist ungültig.\",\n      en: \"This QR code is invalid.\",\n      fr: \"Ce code&nbsp;QR n'est pas valide.\",\n      es: \"Este código QR no es válido.\",\n      pt: \"Este QR Code não é válido.\"\n    },\n    startQrScanner: {\n      de: \"Starte QR-Code Scanner\",\n      en_gb: \"Start QR code scanner\",\n      en: \"Start QR code scanner\",\n      fr: \"Scanner le code&nbsp;QR\",\n      es: \"Abrir escáner de QR\",\n      pt: \"Abrir leitor de QR code\"\n    },\n    infoText: {\n      de: \"Um deinen QR-Code zu scannen, benötigt ANTON Zugriff auf deine Kamera. Klicke auf den Button, um den Scanner zu starten.\",\n      en: \"To scan your QR code, ANTON needs access to your camera. Select the button to start the scanner.\",\n      fr: \"Pour scanner ton QR code, ANTON a besoin d'accéder à ta caméra. Appuie sur le bouton pour lancer le scanner.\",\n      es: \"Para escanear tu código QR, ANTON necesita acceso a tu cámara. Haz clic en el botón para iniciar el escáner.\",\n      ptDev: \"Para escanear o seu QR Code, o ANTON precisa de acesso à sua câmera. Clique no botão para iniciar o scanner.\"\n    }\n  };\n})();","updated":"2026-02-23T18:43:09.084739"},{"path":"lib/gui/divEditable/updateCustomCursor/initCursor/init.ls","text":"(function(){\n  return function(d){\n    var wrapper, cursor;\n    d.div.css({\n      caretColor: \"transparent\"\n    });\n    wrapper = Div({\n      flex: \"0 0 0\",\n      width: \"0px\",\n      height: \"0px\",\n      position: \"absolute\",\n      zIndex: 1,\n      opacity: 0,\n      paddingTop: \"0.05em\"\n    }).addClass(\"divEditableCursorWrapper\").html(cursor = Div({\n      width: \"2px\",\n      height: \"2px\",\n      background: \"transparent\",\n      pointerEvents: \"none\"\n    }).addClass(\"divEditableCursor\").keyframeAnimate({\n      keyframes: {\n        \"0%\": {\n          opacity: 0.8\n        },\n        \"40%\": {\n          opacity: 0.8\n        },\n        \"70%\": {\n          opacity: 0.0\n        },\n        \"100%\": {\n          opacity: 0.8\n        }\n      },\n      duration: 1000,\n      iterationCount: \"infinite\"\n    }).hide());\n    d.div.before(wrapper);\n    d.cursorWrapper = wrapper;\n    return d.cursor = cursor;\n  };\n})();","updated":"2026-02-24T10:26:39.75211"},{"path":"lib/gui/divEditable/updateCustomCursor/update.ls","text":"(function(){\n  return function(d){\n    var sel, cursor, lineDiv, that, transformParent, transformLast, dr, wcr, rr, pos, left, top, height, scale;\n    if (!inc(\"isEnabled/is\")(d)) {\n      return;\n    }\n    if (!d.cursor) {\n      inc(\"initCursor/init\")(d);\n    }\n    sel = window.getSelection();\n    cursor = d.cursor;\n    cursor.css({\n      background: Color.lightBlue[600]\n    });\n    lineDiv = inc(\"../_shared/getParentLine/get\")(sel.anchorNode);\n    if (!sel.isCollapsed || !lineDiv || !lineDiv.isVisible() || !cursor.parent() || !d.isStarted) {\n      cursor.hide();\n      return;\n    }\n    inc(\"restartAnimation/restart\")(cursor);\n    if (that = d.params.transformParentClass) {\n      if (that = d.div.closest(\".\" + that)) {\n        transformParent = that;\n        transformLast = that.style.transform;\n        transformParent.css({\n          transform: \"\"\n        });\n      }\n    }\n    dr = d.div.getClientRects()[0];\n    wcr = cursor.parent().getClientRects()[0];\n    rr = sel.getRangeAt(0).getClientRects()[0];\n    if (rr == null) {\n      pos = inc(\"calcCursorPos/calc\")(lineDiv, sel.anchorOffset, dr);\n      left = pos.left - wcr.left;\n      top = pos.top + (dr.top - wcr.top);\n      height = pos.height;\n    } else {\n      left = rr.left - wcr.left;\n      top = rr.top - dr.top + (dr.top - wcr.top);\n      height = rr.height;\n    }\n    scale = dr.width / d.div.offsetWidth;\n    top = top / scale;\n    left = left / scale;\n    height = height / scale;\n    cursor.css({\n      transform: \"translate(\" + (left - 1) + \"px, \" + top + \"px) scaleX(\" + _.round(1 / scale, 5) + \")\",\n      transformOrigin: \"top left\",\n      height: height + \"px\"\n    });\n    if (transformParent) {\n      return transformParent.css({\n        transform: transformLast\n      });\n    }\n  };\n})();","updated":"2026-02-26T14:39:39.739268"},{"path":"pages/level/play/onFinish/onFinish.ls","text":"(function(){\n  return function(page, params){\n    var ref$;\n    if (params.context === \"learnList\") {\n      return startPage({\n        path: path(\"/../app01-learn-list/pages/level/finishLevelLearnList/page\"),\n        params: _.cloneDeep(params)\n      });\n    } else if (params.context === \"mathPractice\") {\n      return startPage({\n        path: path(\"/../app01-math-practice/pages/level/finishLevel/page\"),\n        params: _.cloneDeep(params)\n      });\n    } else if (params.context === \"preschoolShape\") {\n      inc(\"../../finishLevel/calcCoins/calcCoins\")();\n      return startPage({\n        history: -1\n      });\n    } else if ((ref$ = params.context) === \"assistantMath\" || ref$ === \"assistantMathWithPreschoolProgressBar\") {\n      return inc(params.incPathOnLevelFinish)();\n    } else {\n      return startPage({\n        path: path(\"../../finishLevel/page\"),\n        params: {\n          levelPath: page.level.path,\n          levelType: page.level.type,\n          puid: page.level.puid\n        }\n      });\n    }\n  };\n})();","updated":"2026-02-26T14:54:18.220092"},{"path":"pages/misc/email/edit/buttons/buttons.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      flexDirection: \"column\"\n    }).html(page.saveButton = inc(\"saveButton/button\")(page), inc(\"deleteButton/button\")(page));\n  };\n})();","updated":"2026-02-27T14:26:43.05923"},{"path":"pages/misc/email/edit/buttons/deleteButton/button.ls","text":"(function(){\n  return function(page){\n    var button;\n    if (!page.oldEvent) {\n      return;\n    }\n    button = Button({\n      label: T(\"delete\"),\n      type: \"secondary\",\n      action: function(){\n        return page.submit({\n          'delete': true\n        });\n      }\n    }).css({\n      marginBottom: \"1.2em\",\n      width: \"15em\"\n    });\n    button.lastChild.css({\n      borderRadius: \"8px\"\n    });\n    return button;\n  };\n})();","updated":"2026-02-27T14:26:43.05923"},{"path":"pages/misc/email/edit/buttons/saveButton/button.ls","text":"(function(){\n  return function(page){\n    return Button({\n      label: T(\"save\"),\n      action: page.submit\n    }).css({\n      width: \"15em\",\n      borderRadius: \"8px\",\n      marginBottom: \"1.2em\"\n    });\n  };\n})();","updated":"2026-02-27T14:26:43.05923"},{"path":"pages/misc/email/show/withMail/buttons/changeButton/button.ls","text":"(function(){\n  return function(){\n    var button;\n    button = Button({\n      label: T(\"changeEmail\"),\n      type: \"secondary\",\n      action: function(){\n        return startPage({\n          path: path(\"/pages/misc/email/edit/page\"),\n          animation: \"slideUp\"\n        });\n      }\n    }).css({\n      marginBottom: \"1.2em\",\n      width: \"15em\"\n    });\n    button.lastChild.css({\n      borderRadius: \"8px\"\n    });\n    return button;\n  };\n})();","updated":"2026-02-27T14:26:43.05923"},{"path":"pages/misc/email/show/withMail/buttons/verifyButton/button.ls","text":"(function(){\n  return function(isVerified){\n    if (isVerified) {\n      return;\n    }\n    return Button({\n      label: T(\"verifyEmail\"),\n      action: function(){\n        return startPage({\n          path: path(\"/pages/misc/_shared/verify/page\"),\n          animation: \"slideLeft\",\n          params: {\n            type: \"email\",\n            context: \"settings\"\n          }\n        });\n      }\n    }).css({\n      width: \"15em\",\n      borderRadius: \"8px\",\n      marginBottom: \"1.2em\"\n    });\n  };\n})();","updated":"2026-02-27T14:26:43.05923"},{"path":"pages/misc/_shared/verify/page.ls","text":"(function(){\n  return function(page){\n    page.type = page.params.type;\n    page.context = page.params.context;\n    page.sendCode = function(isResend){\n      return inc(\"sendCode/send\")(page, isResend);\n    };\n    page.verifyCode = function(){\n      return inc(\"verifyCode/verify\")(page);\n    };\n    page.onFinish = function(){\n      return inc(\"onFinish/on\")(page);\n    };\n    return {\n      statusBarColor: page.context === \"startUser\" ? Color.white : void 8,\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      start: function(){\n        page.sendCode();\n        page.css({\n          display: \"flex\",\n          flexDirection: \"column\",\n          margin: \"2em 0.5em\"\n        }).html(inc(\"text/text\")(), inc(\"emailOrPhoneNumber/emailOrPhoneNumber\")(page.type), page.form = inc(\"inputForm/inputForm\")(page), inc(\"buttons/buttons\")(page));\n        return page.form.input.start();\n      }\n    };\n  };\n})();","updated":"2026-02-27T15:45:37.083053"},{"path":"pages/misc/email/edit/page.ls","text":"(function(){\n  return function(page){\n    page.context = page.params.context;\n    page.oldEvent = log.findLast(\"setEMail\");\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"../_urlDescription/description\")();\n      },\n      start: function(){\n        page.onError = inc(\"onError/onError\")(page);\n        page.onOffline = inc(\"onOffline/onOffline\")(page);\n        page.confirmPassword = inc(\"confirmPassword/confirm\")(page);\n        page.setEmail = inc(\"setEmail/set\")(page);\n        page.onCompleted = inc(\"onCompleted/onCompleted\")(page);\n        page.submit = inc(\"submit/submit\")(page);\n        page.html(page.form = inc(\"form/form\")(page), inc(\"buttons/buttons\")(page));\n        return page.form.input.start();\n      }\n    };\n  };\n})();","updated":"2026-02-27T15:45:37.083053"},{"path":"pages/misc/email/show/withMail/buttons/buttons.ls","text":"(function(){\n  return function(isVerified){\n    return Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      paddingTop: \"1em\"\n    }).html(inc(\"verifyButton/button\")(isVerified), inc(\"changeButton/button\")());\n  };\n})();","updated":"2026-02-27T15:45:37.083053"},{"path":"pages/level/previewNoUser/_topbar/topbar.ls","text":"(function(){\n  return function(page){\n    var update, div;\n    update = function(){\n      return div.replaceWith(inc(THISFILE)(page));\n    };\n    div = inc(\"/addons/topbar2/topbar\")({\n      title: page.level ? T(\"level\") + \": \" + page.level.title : \"&nbsp;\",\n      back: page.level != null,\n      backLabel: inc(\"backLabel/label\")(page),\n      backDeepLink: function(){\n        var ref$;\n        return startPage({\n          path: path(\"/../app01-block-page/pages/block/page\"),\n          params: {\n            blockPath: (ref$ = page.level) != null ? ref$.parentBlock.path : void 8,\n            isDeepLink: true\n          }\n        });\n      }\n    });\n    div.update = update;\n    return div;\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"addons/topbarLevel/speedFactorIcon/onLoaded/on.ls","text":"(function(){\n  return function(page, speedFactorIcon){\n    var ref$, soundSpeedFactor, ref1$, items, item;\n    if ((ref$ = page.topbar.calculator) != null) {\n      ref$.close();\n    }\n    soundSpeedFactor = (ref1$ = inc(\"/lib/util/cache/get/get\")(\"soundSpeedFactor\")) != null ? ref1$ : 1;\n    items = inc(\"../_shared/items/items\");\n    return speedFactorIcon.overlayMenu = OverlayMenu({\n      referenceDiv: speedFactorIcon,\n      adjustXY: \"-10 0\",\n      items: _.concat(inc(\"headerDiv/div\")(), (function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = items).length; i$ < len$; ++i$) {\n          item = ref$[i$];\n          results$.push(inc(\"rowDiv/div\")(page, soundSpeedFactor, item, speedFactorIcon));\n        }\n        return results$;\n      }()))\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"addons/topbarLevel/speedFactorIcon/onLoaded/headerDiv/div.ls","text":"(function(){\n  return function(){\n    var div;\n    div = Div({\n      padding: \"0.7em\",\n      borderBottom: \"1px solid \" + Color.grey[200],\n      hyphens: \"auto\",\n      maxWidth: \"15em\",\n      marginBottom: \"0.2em\"\n    }).html(T(\"soundSpeedFactorMenuInstruction\"));\n    return {\n      div: div\n    };\n  };\n})();","updated":"2026-03-03T13:33:57.612291"},{"path":"pages/start/login/01_step1/submit/onCompleted/onCompleted.ls","text":"(function(){\n  return function(form){\n    return function(result){\n      var errorMessage;\n      if (result.status !== \"ok\") {\n        form.hideSpinner();\n        errorMessage = result.status === \"error_blocked\"\n          ? T(\"errorBlocked\")\n          : result.status === \"error_captcha_failed\"\n            ? T(\"errorCaptchaFailed\")\n            : result.status === \"error_not_valid\"\n              ? T(\"unknownUser\")\n              : T(\"unknownError\");\n        return form.error.html(errorMessage);\n      } else if (result.isPreparedMember) {\n        if (result.role === \"teacher\") {\n          return inc(\"/lib/gui/errorPopup/popup\")({\n            label: T(\"isPreparedMember\", result.groupName),\n            onClose: function(){\n              form.input.start();\n              return form.hideSpinner();\n            }\n          });\n        } else {\n          return startPage({\n            path: path(\"/../app01-intro-funnel/pages/introPreparedMember/01_welcome/page\"),\n            animation: \"slideLeft\",\n            params: result\n          });\n        }\n      } else if (result.isPreparedUser) {\n        return inc(\"/../app01-intro-funnel/pages/introPreparedUser/start\")(result);\n      } else if (result.logId) {\n        return inc(\"../../../00_shared/finishLogin/finish\")({\n          logId: result.logId,\n          authToken: result.authToken,\n          loginType: \"loginCode\",\n          displayName: result.displayName,\n          avatar: result.avatar\n        });\n      } else {\n        return startPage({\n          path: path(\"../../../02_step2/page\"),\n          animation: \"slideLeft\",\n          params: {\n            uniqName: result.uniqName,\n            email: result.email,\n            phone: result.phone,\n            loginCode: result.loginCode,\n            recoveryOptions: result.recoveryOptions\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2026-03-04T08:07:59.247866"},{"path":"pages/support/help/faqQuestion/body/body.ls","text":"(function(){\n  return function(page){\n    var body, buttons, links, that, b;\n    body = inc(\"calcBody/calc\")(page);\n    buttons = inc(\"calcButtons/calc\")(page);\n    links = inc(\"calcLinks/calc\")(page);\n    return Div().html((that = buttons != null ? buttons.top : void 8) ? that : void 8, Div({\n      padding: \"1em 0.5em\",\n      textAlign: \"left\",\n      lineHeight: \"1.5em\",\n      borderTop: b = \"1px solid \" + Color.grey[200],\n      borderBottom: b,\n      margin: \"0.5em 0\",\n      userSelect: \"text\"\n    }).html(body), (that = buttons != null ? buttons.bottom : void 8) ? that : void 8, links);\n  };\n})();","updated":"2026-05-18T12:45:29.708712"},{"path":"pages/start/startUser/04_logStartEvents/logNavigationNext/log.ls","text":"(function(){\n  return function(o){\n    var e;\n    e = log.findLast(\"navigationNext\");\n    if (e && e.enabled) {\n      return;\n    }\n    if (e) {\n      log.deleteEvent(e);\n    }\n    return log.log({\n      event: \"navigationNext\",\n      enabled: true,\n      isDebug: engine.isDebug ? true : void 8\n    });\n  };\n})();","updated":"2026-05-18T12:45:29.708712"},{"path":"pages/start/startUser/07_extraPages/extraPages.ls","text":"(function(){\n  return function(o){\n    var calcShowDirTeacherDirCanceledWarning, extraPages, decide;\n    o == null && (o = {});\n    calcShowDirTeacherDirCanceledWarning = function(){\n      return inc(\"calcShowDirTeacherDirCanceledWarning/calc\")(function(foundSchools){\n        o.canceledDirSchools = foundSchools;\n        return decide();\n      });\n    };\n    extraPages = [\n      function(){\n        return inc(\"connectToSesam/connect\")(o);\n      }, function(){\n        return inc(\"connectToOpenId/connect\")(o);\n      }, function(){\n        return inc(\"cancelDeletion/cancel\")();\n      }, function(){\n        return inc(\"showDirTeacherDirCanceledWarning/show\")(o);\n      }, function(){\n        return inc(\"showInfoMessagePopup/show\")(o);\n      }, function(){\n        return inc(\"verifyPhoneNumber/verify\")(\"phone\");\n      }, function(){\n        return inc(\"verifyEmail/verify\")(\"email\");\n      }, function(){\n        return inc(\"showLoginCodeOnce/show\")(o);\n      }, function(){\n        return inc(\"suggestRecoveryOption/suggest\")(o);\n      }, function(){\n        return inc(\"dirTeacherSuggestSecureAccount/suggest\")(o);\n      }, function(){\n        return inc(\"showBWStateLicenseInfo/show\")();\n      }, function(){\n        return inc(\"showBBStateLicenseInfo/show\")();\n      }, function(){\n        return inc(\"showGroStateLicenseInfo/show\")();\n      }, function(){\n        return inc(\"showTeacherTranslationOverlayInfo/show\")();\n      }, function(){\n        return inc(\"showNonDirTeacherInDirSchoolInfo/show\")();\n      }, function(){\n        return inc(\"showWidaTestPrepFeedbackInfo/show\")();\n      }\n    ];\n    decide = function(){\n      var i$, ref$, len$, i, checkAndStartPage;\n      app.extraPageIndex == null && (app.extraPageIndex = -1);\n      for (i$ = 0, len$ = (ref$ = extraPages).length; i$ < len$; ++i$) {\n        i = i$;\n        checkAndStartPage = ref$[i$];\n        if (i <= app.extraPageIndex) {\n          continue;\n        }\n        if (checkAndStartPage()) {\n          app.extraPageIndex = i;\n          return;\n        }\n      }\n      return inc(\"_onFinish/on\")(o);\n    };\n    return calcShowDirTeacherDirCanceledWarning();\n  };\n})();","updated":"2026-05-18T12:45:29.708712"},{"path":"pages/support/help/faqQuestion/body/calcLinks/calc.ls","text":"(function(){\n  return function(page){\n    var i$, ref$, len$, link, results$ = [];\n    if (!page.question.links) {\n      return;\n    }\n    for (i$ = 0, len$ = (ref$ = _.ensureArray(page.question.links)).length; i$ < len$; ++i$) {\n      link = ref$[i$];\n      results$.push(inc(\"link/link\")(link, page));\n    }\n    return results$;\n  };\n})();","updated":"2026-05-18T12:45:29.708712"},{"path":"pages/support/help/faqQuestion/body/calcLinks/link/link.ls","text":"(function(){\n  return function(link, page){\n    return Div({\n      display: \"flex\",\n      justifyContent: \"flex-start\",\n      alignItems: \"flex-start\",\n      color: Color.blue[800]\n    }).html(SvgIcon({\n      svg: path(\"/../app01/lib/svg/icon/arrow-with-line-right.svg\"),\n      color: Color.blue[800],\n      size: \"0.8em\"\n    }).css({\n      marginTop: \"0.25em\",\n      marginRight: \"0.25em\"\n    }), link.label).tap({\n      up: function(){\n        return inc(\"tap/tap\")(link, page);\n      },\n      animation: {\n        down: function(){\n          return this.css({\n            opacity: 0.7\n          });\n        },\n        up: function(){\n          return this.css({\n            opacity: 1\n          });\n        }\n      }\n    });\n  };\n})();","updated":"2026-05-18T12:45:29.708712"},{"path":"pages/support/help/faqQuestion/body/calcLinks/link/tap/calcCategoryName/calc.ls","text":"(function(){\n  return function(faqPath){\n    var categories, questions, targetQuestion, ref$;\n    categories = inc(\"/pages/support/help/faqList/loadCategories/calcCategories/calc\")();\n    questions = _.flatMap(categories, \"questions\");\n    targetQuestion = _.find(questions, {\n      path: faqPath\n    });\n    return (ref$ = _.find(categories, function(c){\n      return in$(targetQuestion, c.questions);\n    })) != null ? ref$.name : void 8;\n  };\n})();\nfunction in$(x, xs){\n  var i = -1, l = xs.length >>> 0;\n  while (++i < l) if (x === xs[i]) return true;\n  return false;\n}","updated":"2026-05-18T12:45:29.708712"},{"path":"pages/support/help/faqQuestion/body/calcLinks/link/tap/tap.ls","text":"(function(){\n  return function(link, page){\n    var that;\n    if (link.faqPath) {\n      return startPage({\n        path: path(\"/pages/support/help/faqQuestion/page\"),\n        animation: \"fadeIn\",\n        history: 0,\n        params: {\n          questionPath: link.faqPath,\n          categoryName: inc(\"calcCategoryName/calc\")(link.faqPath),\n          isStandaloneFaqPage: page.params.isStandaloneFaqPage\n        }\n      });\n    } else if (that = link.url) {\n      return window.open(that, \"_system\");\n    }\n  };\n})();","updated":"2026-05-18T12:45:29.708712"},{"path":"pages/content/plan/_topbar/menu/headerWithSearch/search/showStartQueries/_t.ls","text":"(function(){\n  return {\n    example1: {\n      de: \"Geometrie\",\n      en_gb: \"geometry\",\n      en: \"ELD\",\n      fr: \"Multiplications\",\n      es: \"Geometría\",\n      pt: \"Geometria\"\n    },\n    example2: {\n      de: \"Fahrrad\",\n      en_gb: \"phonics\",\n      en: \"grammar\",\n      fr: \"Grammaire\",\n      es: \"Lectoescritura\",\n      pt: \"Vírgulas\"\n    },\n    example3: {\n      de: \"Satzglieder\",\n      en_gb: \"health\",\n      en: \"fractions\",\n      fr: \"Géométrie\",\n      es: \"División celular\",\n      pt: \"Material dourado\"\n    },\n    example4: {\n      de: \"Bundesländer\",\n      en_gb: \"world\",\n      en: \"history\",\n      fr: \"Fractions\",\n      es: \"Mesoamérica\",\n      pt: \"Alimentação\"\n    },\n    example5: {\n      de: \"Uhrzeit\",\n      en_gb: \"family\",\n      en: \"phonics\",\n      fr: \"Conjugaison\",\n      es: \"Literatura\",\n      pt: \"Ler as horas\"\n    },\n    popularSearchQueries: {\n      de: \"Beliebte Suchbegriffe:\",\n      en: \"Popular search terms:\",\n      fr: \"Recherches fréquentes:\",\n      es: \"Búsquedas frecuentes:\",\n      pt: \"Buscas frequentes:\"\n    }\n  };\n})();","updated":"2026-03-06T09:42:55.56616"},{"path":"addons/topbarLevel/feedbackIcon/02_popupChoices/calcMuteSources/calc.ls","text":"(function(){\n  return async function(){\n    var muteSources, calcMuteSwitchEnabled, calcDeviceVolume, calcIsAppVolumeMuted;\n    muteSources = [];\n    calcMuteSwitchEnabled = function(){\n      return new Promise(function(resolve, reject){\n        return inc(\"/../app01-trainers/shared/levelPlayer/playNextSlide/showMutedSoundFeedback/calcMuteSwitchEnabled/calc\")(muteSources, resolve, reject);\n      });\n    };\n    calcDeviceVolume = function(){\n      return new Promise(function(resolve, reject){\n        return inc(\"/../app01-trainers/shared/levelPlayer/playNextSlide/showMutedSoundFeedback/calcDeviceVolume/calc\")(muteSources, resolve, reject);\n      });\n    };\n    calcIsAppVolumeMuted = function(){\n      return inc(\"/../app01-trainers/shared/levelPlayer/playNextSlide/showMutedSoundFeedback/calcAppVolumeMuted/calc\")(muteSources);\n    };\n    if (window.SolocodePlugin) {\n      (await calcMuteSwitchEnabled());\n      (await calcDeviceVolume());\n    }\n    calcIsAppVolumeMuted();\n    return muteSources;\n  };\n})();","updated":"2026-05-19T09:25:10.829469"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/_baseSound/connectChain/connect.ls","text":"(function(){\n  return function(b){\n    var audioContext;\n    audioContext = b.p.audioContext;\n    b.source.connect(b.gain);\n    if (b.p.enableAnalyser) {\n      b.gain.connect(b.analyser);\n      return b.analyser.connect(audioContext.destination);\n    } else {\n      return b.gain.connect(audioContext.destination);\n    }\n  };\n})();","updated":"2026-03-23T16:21:30.749559"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/_baseSound/createAnalyser/create.ls","text":"(function(){\n  return function(p){\n    var audioContext, a;\n    if (!p.enableAnalyser) {\n      return;\n    }\n    audioContext = p.audioContext;\n    a = audioContext.createAnalyser();\n    a.fftSize = 64;\n    return a;\n  };\n})();","updated":"2026-03-23T16:21:30.749559"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/_baseSound/createGain/create.ls","text":"(function(){\n  return function(p){\n    var audioContext, g, ref$;\n    audioContext = p.audioContext;\n    g = audioContext.createGain();\n    g.gain.value = (ref$ = p.gain) != null ? ref$ : 1;\n    return g;\n  };\n})();","updated":"2026-03-23T16:21:30.749559"},{"path":"pages/misc/phoneNumber/edit/submit/submit.ls","text":"(function(){\n  return function(page){\n    return function(o){\n      var oldNumber, ref$, form, newNumber;\n      oldNumber = (ref$ = page.oldEvent) != null ? ref$.value : void 8;\n      form = page.form;\n      page.newNumber = o != null && o['delete']\n        ? \"\"\n        : form.input.getValue();\n      newNumber = page.newNumber;\n      if (newNumber === oldNumber) {\n        page.onCompleted({\n          status: \"ok\"\n        });\n        return;\n      }\n      if (newNumber === \"\" && !oldNumber) {\n        form.error.html(T(\"errorEmpty\"));\n        form.input.start();\n        return;\n      }\n      form.error.html(\"&nbsp;\");\n      if (!oldNumber) {\n        return page.setNumber();\n      } else if (newNumber === \"\") {\n        return inc(\"deletePopup/popup\")(form, function(confirm){\n          if (confirm) {\n            return page.confirmPassword();\n          } else {\n            return form.input.start();\n          }\n        });\n      } else {\n        return page.setNumber(null, true);\n      }\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/email/edit/submit/submit.ls","text":"(function(){\n  return function(page){\n    return function(o){\n      var oldMail, ref$, form, newMail;\n      oldMail = (ref$ = page.oldEvent) != null ? ref$.value : void 8;\n      form = page.form;\n      page.newMail = o != null && o['delete']\n        ? \"\"\n        : form.input.getValue();\n      newMail = page.newMail;\n      if (newMail === oldMail) {\n        page.onCompleted({\n          status: \"ok\"\n        });\n        return;\n      }\n      if (newMail === \"\" && !oldMail) {\n        form.error.html(T(\"errorEmpty\"));\n        form.input.start();\n        return;\n      }\n      form.error.html(\"&nbsp;\");\n      if (!oldMail) {\n        return page.setEmail();\n      } else if (newMail === \"\") {\n        return inc(\"deletePopup/popup\")(form, function(confirm){\n          if (confirm) {\n            return page.confirmPassword();\n          } else {\n            return form.input.start();\n          }\n        });\n      } else {\n        return page.setEmail(null, true);\n      }\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/edit/onError/onError.ls","text":"(function(){\n  return function(page){\n    return function(error){\n      var message;\n      page.form.hideSpinner();\n      message = !error\n        ? T(\"errorMessage\")\n        : error.status === \"error_invalid_syntax\"\n          ? T(\"errorInvalidSyntax\")\n          : error.status === \"error_invalid\"\n            ? T(\"errorInvalid\")\n            : error.status === \"error_captcha_failed\"\n              ? T(\"errorCaptchaFailed\")\n              : error.status === \"error_unavailable\"\n                ? T(\"errorUnavailable\")\n                : error.status === \"error_wrongPassword\"\n                  ? T(\"errorPassword\")\n                  : error.status === \"error_emptyPassword\"\n                    ? T(\"emptyPassword\")\n                    : error.status === \"error_identical\"\n                      ? T(\"errorIdentical\")\n                      : T(\"errorMessage\");\n      return page.form.error.html(message);\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/prestart/engineOutdated/engineOutdated.ls","text":"(function(){\n  var compare;\n  compare = inc(\"/lib/util/compareVersionString/compare\");\n  return function(){\n    var version, osVersion, ref$, platform, versions, softWarnVersion, warnVersion, stopDate, stopVersion;\n    if (!engine.isMobileApp) {\n      return false;\n    }\n    version = engine.clientVersion;\n    osVersion = (ref$ = typeof device != 'undefined' && device !== null ? device.version : void 8) != null ? ref$ : 0;\n    if (engine.isAndroidApp && compare(osVersion, \"5\") === -1) {\n      return false;\n    }\n    if (engine.isiOsApp && compare(osVersion, \"13\") === -1) {\n      return false;\n    }\n    platform = engine.isAndroidApp\n      ? \"android\"\n      : engine.isiOsApp ? \"ios\" : void 8;\n    versions = {\n      android: {\n        softwarn: {\n          v: \"1.13.0\"\n        },\n        warn: {\n          v: \"1.10.1\",\n          date: \"2026-05-01\"\n        },\n        stop: {\n          v: \"1.9.7\"\n        }\n      },\n      ios: {\n        softwarn: {\n          v: \"1.8.12\"\n        },\n        warn: {\n          v: \"1.8.10\",\n          date: \"2026-05-01\"\n        },\n        stop: {\n          v: \"1.8.6\"\n        }\n      }\n    };\n    softWarnVersion = versions[platform].softwarn.v;\n    warnVersion = versions[platform].warn.v;\n    stopDate = versions[platform].warn.date;\n    stopVersion = versions[platform].stop.v;\n    if (!(compare(stopVersion, warnVersion) === -1 && compare(warnVersion, softWarnVersion) === -1)) {\n      debug(\"engine outdate stop versions are not valid\");\n      return false;\n    }\n    if (compare(version, softWarnVersion) === 1) {\n      return false;\n    } else if (compare(version, stopVersion) === 1 && compare(version, warnVersion) === 1 && compare(version, softWarnVersion) <= 0) {\n      debug(\"engine outdated soft warning (if version <= \" + softWarnVersion + \", your version \" + version + \")\");\n      startPage({\n        path: path(\"softWarning/page\")\n      });\n      return true;\n    } else if (compare(version, stopVersion) === 1 && compare(version, warnVersion) <= 0 && new Date() < inc(\"/lib/util/convertTimeString/convert\")(stopDate)) {\n      debug(\"engine outdated warning (if version <= \" + warnVersion + \", your version \" + version + \")\");\n      startPage({\n        path: path(\"warning/page\"),\n        params: {\n          stopDate: stopDate\n        }\n      });\n      return true;\n    } else {\n      debug(\"engine outdated stop (if version <= \" + stopVersion + \", your version \" + version + \")\");\n      startPage({\n        path: path(\"stop/page\"),\n        params: {\n          stopDate: stopDate\n        }\n      });\n      return true;\n    }\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/_baseSound/disconnectChain/disconnect.ls","text":"(function(){\n  return function(b){\n    var ref$;\n    b.source.disconnect();\n    b.gain.disconnect(0);\n    return (ref$ = b.analyser) != null ? ref$.disconnect(0) : void 8;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/_baseSound/fadeout/fadeout.ls","text":"(function(){\n  return function(b, duration){\n    var step, interval;\n    if (!b.p.isPlaying) {\n      return;\n    }\n    b.p.isPlaying = false;\n    duration == null && (duration = 100);\n    step = b.gain.gain.value / duration;\n    return interval = setInterval(function(){\n      if (b.gain.gain.value > 0) {\n        return b.gain.gain.value -= step;\n      } else {\n        clearInterval(interval);\n        try {\n          b.source.stop();\n        } catch (e$) {}\n        return b.disconnectChain();\n      }\n    }, 1);\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/email/edit/onError/onError.ls","text":"(function(){\n  return function(page){\n    return function(error){\n      var message;\n      page.form.hideSpinner();\n      if (engine.isDebug && (error != null ? error.status : void 8) === \"error_invalid\") {\n        debug(\"For security reasons, we only allow @anton.app/@solocode.com email addresses for solocode members.\");\n      }\n      message = !error\n        ? T(\"errorMessage\")\n        : error.status === \"error_invalid\"\n          ? T(\"errorInvalid\")\n          : error.status === \"error_captcha_failed\"\n            ? T(\"errorCaptchaFailed\")\n            : error.status === \"error_unavailable\"\n              ? T(\"errorUnavailable\")\n              : error.status === \"error_wrongPassword\"\n                ? T(\"errorPassword\")\n                : error.status === \"error_emptyPassword\"\n                  ? T(\"emptyPassword\")\n                  : T(\"errorMessage\");\n      return page.form.error.html(message);\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/show/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")();\n      },\n      urlDescription: function(){\n        return inc(\"../_urlDescription/description\")();\n      },\n      start: function(){\n        var e, number, isVerified;\n        e = log.findLast(\"setPhoneNumber\");\n        number = e != null ? e.value : void 8;\n        isVerified = (e != null ? e.isVerified : void 8) || e != null && inc(\"/lib/util/cache/get/get\")(\"verifiedPhoneNumber\");\n        return page.html(number\n          ? inc(\"withNumber/withNumber\")(page, number, isVerified)\n          : inc(\"withoutNumber/withoutNumber\")());\n      }\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/phoneNumber/edit/page.ls","text":"(function(){\n  return function(page){\n    page.oldEvent = log.findLast(\"setPhoneNumber\");\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")(page);\n      },\n      urlDescription: function(){\n        return inc(\"../_urlDescription/description\")();\n      },\n      start: function(){\n        page.onError = inc(\"onError/onError\")(page);\n        page.onOffline = inc(\"onOffline/onOffline\")(page);\n        page.confirmPassword = inc(\"confirmPassword/confirm\")(page);\n        page.setNumber = inc(\"setNumber/set\")(page);\n        page.onCompleted = inc(\"onCompleted/onCompleted\")(page);\n        page.submit = inc(\"submit/submit\")(page);\n        page.html(page.form = inc(\"form/form\")(page), inc(\"buttons/buttons\")(page));\n        return page.form.input.start();\n      }\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/_baseSound/onProgress/calcAnalyserData/calc.ls","text":"(function(){\n  var dataArray;\n  dataArray = new Uint8Array(32);\n  return function(analyser){\n    if (analyser.getByteFrequencyData == null) {\n      return;\n    }\n    analyser.getByteFrequencyData(dataArray);\n    return {\n      vol: _.max(dataArray) / 255,\n      fft: _.map(dataArray, function(i){\n        return i / 255;\n      }),\n      raw: dataArray\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/util/soundNext/applyParams/apply.ls","text":"(function(){\n  return function(s){\n    var speedFactor, ref$, that, time, i$, len$, sp, ref1$;\n    speedFactor = s.params.speedFactor === \"userSoundSpeedFactor\"\n      ? (ref$ = inc(\"/lib/util/cache/get/get\")(\"soundSpeedFactor\")) != null ? ref$ : 1\n      : (that = s.params.speedFactor) ? that : 1;\n    time = 0;\n    for (i$ = 0, len$ = (ref$ = s.soundParts).length; i$ < len$; ++i$) {\n      sp = ref$[i$];\n      sp.speedFactor = speedFactor;\n      sp.gain = sp.gainOriginal * ((ref1$ = s.params.volume) != null ? ref1$ : 1);\n      sp.pitchFactor = (ref1$ = s.params.pitchFactor) != null ? ref1$ : 1;\n      sp.isLoop = (ref1$ = s.params.isLoop) != null ? ref1$ : false;\n      sp.enableAnalyser = (ref1$ = s.params.enableAnalyser) != null ? ref1$ : false;\n      sp.duration = _.round(sp.audioData.duration / sp.pitchFactor / sp.speedFactor * 1000);\n      sp.startTimePosition = time;\n      time += sp.duration;\n    }\n    inc(\"applyPlayFromPosition/apply\")(s);\n    return s.duration = time;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/email/show/withMail/withMail.ls","text":"(function(){\n  return function(page, mail, isVerified){\n    var hiddenMail;\n    hiddenMail = inc(\"/../app01/lib/util/calcHiddenMail/calc\")(mail);\n    return Div().html(inc(\"title/title\")(), inc(\"email/email\")(hiddenMail), inc(\"verifyText/verifyText\")(isVerified), inc(\"notVerifiedWarning/warning\")(isVerified), inc(\"buttons/buttons\")(isVerified));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/email/show/page.ls","text":"(function(){\n  return function(page){\n    return {\n      top: function(){\n        return inc(\"_topbar/topbar\")();\n      },\n      urlDescription: function(){\n        return inc(\"../_urlDescription/description\")();\n      },\n      start: function(){\n        var e, mail, isVerified;\n        e = log.findLast(\"setEMail\");\n        mail = e != null ? e.value : void 8;\n        isVerified = (e != null ? e.isVerified : void 8) || inc(\"/lib/util/cache/get/get\")(\"verifiedEMail\");\n        return page.html(mail\n          ? inc(\"withMail/withMail\")(page, mail, isVerified)\n          : inc(\"withoutMail/withoutMail\")());\n      }\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"addons/topbarLevel/speedFactorIcon/onLoaded/rowDiv/div.ls","text":"(function(){\n  return function(page, soundSpeedFactor, item, speedFactorIcon){\n    var color, tap, div;\n    color = soundSpeedFactor === item.soundSpeedFactor\n      ? Color.blue[500]\n      : Color.grey[900];\n    tap = function(){\n      return inc(\"tap/tap\")(page, soundSpeedFactor, item, speedFactorIcon);\n    };\n    div = Div({\n      display: \"flex\",\n      padding: \"0.7em\"\n    }).html(inc(\"icon/icon\")(item, color), inc(\"label/label\")(item, color)).tap({\n      up: tap,\n      animation: \"hover\"\n    });\n    return {\n      div: div\n    };\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"addons/topbarLevel/speedFactorIcon/onLoaded/rowDiv/icon/icon.ls","text":"(function(){\n  return function(item, color){\n    return SvgIcon({\n      svg: item.iconPath,\n      size: \"1.2em\",\n      color: color\n    }).css({\n      flex: \"0 0 auto\",\n      marginRight: \"0.4em\"\n    });\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/_baseSound/onProgress/on.ls","text":"(function(){\n  return function(b){\n    var analyserData;\n    if (b.p.enableAnalyser) {\n      analyserData = inc(\"calcAnalyserData/calc\")(b.analyser);\n    }\n    b.p.s.currentTimeSound = b.p.currentTime + b.p.startTimePosition;\n    return b.p.onProgress(b.p.s.currentTimeSound, analyserData);\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/start/startUser/07_extraPages/verifyPhoneNumber/verify.ls","text":"(function(){\n  return function(){\n    var setPhoneNumberEvent, setPhoneNumberWithin20Minutes;\n    setPhoneNumberEvent = typeof log != 'undefined' && log !== null ? log.findLast(\"setPhoneNumber\") : void 8;\n    if (setPhoneNumberEvent == null) {\n      return false;\n    }\n    if (setPhoneNumberEvent.isVerified) {\n      return false;\n    }\n    setPhoneNumberWithin20Minutes = new Date() - new Date(setPhoneNumberEvent != null ? setPhoneNumberEvent.created : void 8) < 20 * 60 * 1000;\n    if (setPhoneNumberWithin20Minutes) {\n      startPage({\n        path: path(\"/pages/misc/_shared/verify/page\"),\n        history: 0,\n        params: {\n          type: \"phoneNumber\",\n          context: \"startUser\"\n        }\n      });\n    } else {\n      startPage({\n        path: path(\"/pages/misc/_shared/askVerify/page\"),\n        history: 0,\n        params: {\n          type: \"phoneNumber\"\n        }\n      });\n    }\n    return true;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/start/startUser/07_extraPages/verifyEmail/verify.ls","text":"(function(){\n  return function(){\n    var setEmailEvent, setEmailWithin20Minutes;\n    setEmailEvent = typeof log != 'undefined' && log !== null ? log.findLast(\"setEMail\") : void 8;\n    if (setEmailEvent == null) {\n      return false;\n    }\n    if (setEmailEvent.isVerified) {\n      return false;\n    }\n    setEmailWithin20Minutes = new Date() - new Date(setEmailEvent != null ? setEmailEvent.created : void 8) < 20 * 60 * 1000;\n    if (setEmailWithin20Minutes) {\n      startPage({\n        path: path(\"/pages/misc/_shared/verify/page\"),\n        history: 0,\n        params: {\n          type: \"email\",\n          context: \"startUser\"\n        }\n      });\n    } else {\n      startPage({\n        path: path(\"/pages/misc/_shared/askVerify/page\"),\n        history: 0,\n        params: {\n          type: \"email\"\n        }\n      });\n    }\n    return true;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/_baseSound/onTimeout/on.ls","text":"(function(){\n  return function(b){\n    var ref$;\n    if (!b.p.isPlaying) {\n      return;\n    }\n    b.p.currentTime = b.p.duration;\n    b.stop();\n    return typeof (ref$ = b.p).onEnd == 'function' ? ref$.onEnd() : void 8;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/_baseSound/sound.ls","text":"(function(){\n  return function(source, p){\n    var b;\n    b = {};\n    b.source = source;\n    b.p = p;\n    b.gain = inc(\"createGain/create\")(p);\n    b.analyser = inc(\"createAnalyser/create\")(p);\n    b.connectChain = function(){\n      return inc(\"connectChain/connect\")(b);\n    };\n    b.onProgress = function(){\n      return inc(\"onProgress/on\")(b);\n    };\n    b.disconnectChain = function(){\n      return inc(\"disconnectChain/disconnect\")(b);\n    };\n    b.onTimeout = function(){\n      return inc(\"onTimeout/on\")(b);\n    };\n    b.stop = function(){\n      return inc(\"stop/stop\")(b);\n    };\n    b.fadeout = function(duration){\n      return inc(\"fadeout/fadeout\")(b, duration);\n    };\n    return b;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/_baseSound/stop/stop.ls","text":"(function(){\n  return function(b){\n    if (!b.p.isPlaying) {\n      return;\n    }\n    clearTimeout(b.p.timeout);\n    try {\n      b.source.stop();\n    } catch (e$) {}\n    b.disconnectChain();\n    b.onProgress();\n    return b.p.isPlaying = false;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/_shared/askVerify/buttons/buttons.ls","text":"(function(){\n  return function(page){\n    return Div({\n      display: \"flex\",\n      flexDirection: \"column\"\n    }).html(inc(\"verifyButton/button\")(page), inc(\"skipButton/button\")(page));\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/_shared/askVerify/buttons/skipButton/button.ls","text":"(function(){\n  return function(page){\n    var button;\n    button = Button({\n      label: T(\"skipVerification\"),\n      type: \"secondary\",\n      action: inc(\"/pages/start/startUser/07_extraPages/_onExtraPageDone/on\")\n    }).css({\n      marginBottom: \"1.2em\",\n      width: \"15em\"\n    });\n    button.lastChild.css({\n      borderRadius: \"8px\"\n    });\n    return button;\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/_shared/askVerify/buttons/verifyButton/button.ls","text":"(function(){\n  return function(page){\n    var tap;\n    tap = function(){\n      return startPage({\n        path: path(\"/pages/misc/_shared/verify/page\"),\n        history: 0,\n        params: {\n          type: page.type,\n          context: \"startUser\"\n        }\n      });\n    };\n    return Button({\n      label: T(\"verify\"),\n      action: tap\n    }).css({\n      width: \"15em\",\n      borderRadius: \"8px\",\n      marginBottom: \"1.2em\"\n    });\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/misc/_shared/askVerify/emailOrPhoneNumber/emailOrPhoneNumber.ls","text":"(function(){\n  return function(type){\n    var emailOrPhoneNumber, ref$, ref1$;\n    emailOrPhoneNumber = type === \"email\"\n      ? (ref$ = log.findLast(\"setEMail\")) != null ? ref$.value : void 8\n      : (ref1$ = log.findLast(\"setPhoneNumber\")) != null ? ref1$.value : void 8;\n    return Div({\n      fontWeight: \"bold\",\n      marginBottom: \"2em\"\n    }).html(emailOrPhoneNumber);\n  };\n})();","updated":"2026-03-18T08:04:19.697117"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/toRight.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.x = o.oldScene.sceneWidth * percentage;\n      o.newScene.x = -o.newScene.sceneWidth / 3 + o.newScene.sceneWidth * percentage / 3;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/toTop.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.y = -o.oldScene.sceneHeight * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/transitions.ls","text":"(function(){\n  return function(){\n    var Transitions;\n    return Transitions = {\n      NONE: inc(\"baseTransiton\"),\n      PUSH: {\n        FROM_RIGHT: inc(\"fromRight\"),\n        FROM_LEFT: inc(\"fromLeft\"),\n        FROM_TOP: inc(\"fromTop\"),\n        FROM_BOTTOM: inc(\"fromBottom\"),\n        FADE_IN: inc(\"fadeIn\"),\n        FADE_OUT_IN: inc(\"fadeOutIn\"),\n        ZOOM_IN: inc(\"zoomIn\"),\n        ALPHA_ZOOM_IN: inc(\"alphaZoomIn\"),\n        SHRINK_GROW_PUSH: inc(\"pushShrinkGrow\"),\n        ROTATE_ZOOM_IN: inc(\"rotateZoomIn\"),\n        SLIDE_FROM_LEFT: inc(\"slideFromLeft\"),\n        SLIDE_FROM_RIGHT: inc(\"slideFromRight\"),\n        SLIDE_FROM_TOP: inc(\"slideFromTop\"),\n        SLIDE_FROM_BOTTOM: inc(\"slideFromBottom\")\n      },\n      POP: {\n        TO_RIGHT: inc(\"toRight\"),\n        TO_LEFT: inc(\"toLeft\"),\n        TO_TOP: inc(\"toTop\"),\n        TO_BOTTOM: inc(\"toBottom\"),\n        FADE_OUT: inc(\"fadeOut\"),\n        FADE_OUT_IN: inc(\"fadeOutIn\"),\n        ZOOM_OUT: inc(\"zoomOut\"),\n        ALPHA_ZOOM_OUT: inc(\"alphaZoomOut\"),\n        SHRINK_GROW_POP: inc(\"popShrinkGrow\"),\n        ROTATE_ZOOM_OUT: inc(\"rotateZoomOut\"),\n        SLIDE_TO_LEFT: inc(\"slideToLeft\"),\n        SLIDE_TO_RIGHT: inc(\"slideToRight\"),\n        SLIDE_TO_BOTTOM: inc(\"slideToBottom\"),\n        SLIDE_TO_TOP: inc(\"slideToTop\")\n      }\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/zoomIn.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.newScene.sceneWidth;\n    h = o.newScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.newScene.scale.set(percentage);\n      o.newScene.x = (w - o.newScene.sceneWidth * o.newScene.scale.x) / 2;\n      o.newScene.y = (h - o.newScene.sceneHeight * o.newScene.scale.y) / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/zoomOut.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.oldScene.sceneWidth;\n    h = o.oldScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.oldScene.scale.set(1 - percentage);\n      o.oldScene.x = (w - o.oldScene.sceneWidth * o.oldScene.scale.x) / 2;\n      o.oldScene.y = (h - o.oldScene.sceneHeight * o.oldScene.scale.y) / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/components.ls","text":"(function(){\n  return function(){\n    var components;\n    return components = {\n      RED: 16,\n      GREEN: 8,\n      BLUE: 0\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/darkerColor.ls","text":"(function(){\n  return function(color, ratio){\n    var adjustment;\n    adjustment = 1 - ratio;\n    return inc(\"adjustedColor\")(color, adjustment);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/fromHSB.ls","text":"(function(){\n  return function(h, s, b){\n    var i, f, p, q, t, r, g;\n    i = Math.floor(h * 6);\n    f = h * 6 - i;\n    p = b * (1 - s);\n    q = b * (1 - f * s);\n    t = b * (1 - (1 - f) * s);\n    switch (i % 6) {\n    case 0:\n      r = b;\n      g = t;\n      b = p;\n      break;\n    case 1:\n      r = q;\n      g = b;\n      b = p;\n      break;\n    case 2:\n      r = p;\n      g = b;\n      b = t;\n      break;\n    case 3:\n      r = p;\n      g = q;\n      b = b;\n      break;\n    case 4:\n      r = t;\n      g = p;\n      b = b;\n      break;\n    case 5:\n      r = b;\n      g = p;\n      b = q;\n    }\n    return inc(\"fromRGB\")(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255));\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/fromHexString.ls","text":"(function(){\n  return function(string){\n    return parseInt(string, 16);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/fromRGB.ls","text":"(function(){\n  return function(r, g, b){\n    r = Math.max(0, Math.min(255, r));\n    g = Math.max(0, Math.min(255, g));\n    b = Math.max(0, Math.min(255, b));\n    return r << 16 | g << 8 | b;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/fromRgbaString.ls","text":"(function(){\n  return function(string){\n    var a, r, g, b;\n    a = string.split(/\\,|\\(|\\)/);\n    r = a[1];\n    g = a[2];\n    b = a[3];\n    return inc(\"fromRGB\")(r, g, b);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/getBlue.ls","text":"(function(){\n  return function(color){\n    return inc(\"getComponent\")(color, inc(\"components\")().BLUE);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/getComponent.ls","text":"(function(){\n  return function(color, component){\n    return color >> component & 0xff;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/getComponents.ls","text":"(function(){\n  return function(color){\n    var comps, c;\n    comps = inc(\"components\")();\n    c = {};\n    c[comps.RED] = inc(\"getRed\")();\n    c[comps.GREEN] = inc(\"getGreen\")();\n    c[comps.BLUE] = inc(\"getBlue\")();\n    return c;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/getGreen.ls","text":"(function(){\n  return function(color){\n    return inc(\"getComponent\")(color, inc(\"components\")().GREEN);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/getRed.ls","text":"(function(){\n  return function(color){\n    return inc(\"getComponent\")(color, inc(\"components\")().RED);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/lighterColor.ls","text":"(function(){\n  return function(color, ratio){\n    var adjustment;\n    adjustment = 1 + ratio;\n    return inc(\"adjustedColor\")(color, adjustment);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/toHexString.ls","text":"(function(){\n  return function(color){\n    var c;\n    c = color.toString(16);\n    while (c.length < 6) {\n      c = \"0\" + c;\n    }\n    return c;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Convenience/add.ls","text":"(function(){\n  return function(){\n    return PIXI8.Helper.Convenience = {\n      removeDeadSpritesFromArray: inc(\"functions/removeDeadSpritesFromArray\"),\n      isInSceneBounds: inc(\"functions/isInSceneBounds\")\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Convenience/functions/isInSceneBounds.ls","text":"(function(){\n  return function(sprite, scene){\n    var gx, gy, anchor, ref$;\n    gx = sprite.getGlobalPosition().x;\n    gy = sprite.getGlobalPosition().y;\n    anchor = (ref$ = sprite.anchor) != null\n      ? ref$\n      : (ref$ = sprite.pivot) != null\n        ? ref$\n        : {\n          x: 0,\n          y: 0\n        };\n    return gx - sprite.width * sprite.anchor.x >= 0 && gx + sprite.width * (1 - sprite.anchor.x) < scene.sceneWidth && gy + sprite.height * (1 - sprite.anchor.y >= 0) && gy - sprite.height * sprite.anchor.y <= scene.sceneHeight;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Convenience/functions/removeDeadSpritesFromArray.ls","text":"(function(){\n  return function(array){\n    var i;\n    i = 0;\n    while (i < array.length) {\n      if (!array[i].alive) {\n        array[i].parent.removeChild(array[i]);\n        array.splice(i, 1);\n      } else {\n        i++;\n      }\n    }\n    return array;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Circle/containsPoint.ls","text":"(function(){\n  return function(circle, point){\n    var dist;\n    dist = inc(\"../Point/distance\")(circle.position, point);\n    return dist < circle.radius;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Circle/intersectsCircle.ls","text":"(function(){\n  return function(circle1, circle2){\n    var dist;\n    dist = inc(\"../Point/distance\")(circle1.position, circle2.position);\n    return dist < circle1.radius + circle2.radius;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Line/betweenPoints.ls","text":"(function(){\n  return function(p1, p2){\n    var line;\n    return line = {\n      start: p1,\n      end: p2\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Line/intersectionWithLine.ls","text":"(function(){\n  return function(line1, line2, allowEndpoints){\n    var l1Vec, l2Vec, l2l1Vec, determinant, s, t, intersects, intersection;\n    allowEndpoints = !!alloallowEndpoints;\n    l1Vec = inc(\"../Vector/betweenPoints\")(line1.start, line1.end);\n    l2Vec = inc(\"../Vector/betweenPoints\")(line2.start, line2.end);\n    l2l1Vec = inc(\"../Vector/betweenPoints\")(line2.start, line1.start);\n    determinant = -l2Vec.x * l1Vec.y + l1Vec.x * l2Vec.y;\n    s = (function(it){\n      return it - l1Vec.y * l2l1Vec.x + l1Vec.x * l2l1Vec.y;\n    }) / determinant;\n    t = (l2Vec.x * l2l1Vec.y - l2Vec.y * l2l1Vec.x) / determinant;\n    if (allowIntersectionAtEndPoints) {\n      intersects = s >= 0 && s <= 1 && t >= 0 && t <= 1;\n    } else {\n      intersects = s > 0 && s < 1 && t > 0 && t < 1;\n    }\n    intersection = undefined;\n    if (intersects) {\n      intersection = inc(\"../Vector/add\")(l1.startPoint, inc(\"../Vector/multiply\")(l1Vec, t));\n    }\n    return intersection;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Line/intersectsWithCircle.ls","text":"(function(){\n  return function(line, circle){\n    var orth, o1, orthLine, cross, result, distance;\n    orth = inc(\"../Vector/orthogonal\")(inc(\"../Vector/betweenPoints\")(line.start, line.end));\n    o1 = inc(\"../Vector/add\")(circle.position, inc(\"../Vector/multiply\")(orth, 100000));\n    o1 = inc(\"../Vector/add\")(circle.position, inc(\"../Vector/multiply\")(orth, -100000));\n    orthLine = inc(\"betweenPoints\")(o1, o2);\n    cross = inc(\"intersectionWithLine\")(line, orthLine);\n    result = false;\n    if (cross != null) {\n      distance = inc(\"../Point/distance\")(circle.position, cross);\n      result = distance < circle.radius;\n    }\n    return result;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Line/length.ls","text":"(function(){\n  return function(line){\n    return inc(\"../Point/distance\")(line.end, line.start);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Point/distance.ls","text":"(function(){\n  return function(p1, p2){\n    var v;\n    v = inc(\"../Vector/substract\")(p2, p1);\n    return inc(\"../Vector/length\");\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Rect/containsPoint.ls","text":"(function(){\n  return function(rect, point){\n    return point.x > rect.x && point.y > rect.y && point.x < rect.x + rect.width && point.y < rect.y + rect.height;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Rect/intersectsRect.ls","text":"(function(){\n  return function(rect1, rect2){\n    return rect1.x + rect1.width > rect2.x && rect1.x < rect2.x + rect2.width && rect1.y < rect2.y + rect2.height && rect2.y < rect1.y + rect1.height;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Vector/add.ls","text":"(function(){\n  return function(vec1, vec2){\n    var vec;\n    return vec = {\n      x: vec1.x + vec2.x,\n      y: vec1.y + vec2.y\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Vector/betweenPoints.ls","text":"(function(){\n  return function(p1, p2){\n    return inc(\"substract\")(p2, p1);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Vector/fromRadians.ls","text":"(function(){\n  return function(rad){\n    var vec;\n    return vec = {\n      x: Math.sin(rad),\n      y: Math.cos(rad)\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Vector/length.ls","text":"(function(){\n  return function(vec){\n    return Math.sqrt(vec.x * vec.x + vec.y * vec.y);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Vector/multiply.ls","text":"(function(){\n  return function(vec, a){\n    var v;\n    return v = {\n      x: vec.x * a,\n      y: vec.y * a\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Vector/norm.ls","text":"(function(){\n  return function(vec){\n    var l, result;\n    l = inc(\"length\")(vec);\n    result = vec;\n    if (l > 0) {\n      result = inc(\"multiply\")(vec, 1 / l);\n    }\n    return result;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Vector/orthogonal.ls","text":"(function(){\n  return function(vec){\n    var v;\n    return v = {\n      x: -vec.y,\n      y: vec.x\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Vector/radiansBetweenVectors.ls","text":"(function(){\n  return function(vec1, vec2){\n    var length1, length2;\n    length1 = inc(\"length\")(vec1);\n    length2 = inc(\"length\")(vec2);\n    return Math.acos((vec1.x * vec2.x + vec1.y * vec2.y) / (length1 * length2));\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/create.ls","text":"(function(){\n  return async function(o){\n    var ref$, isCleaned, needsCoinRemoval, startedAt, pixiApp, ref1$, ref2$, displayFPS, gameContainer, gsapTime, fpsView, showRetry, update, setup;\n    inc(\"../Helper/add\")();\n    if (!window.gsap) {\n      inc(\"/../pixi8/external/gsap.min.js\");\n      gsap.ticker.remove(gsap.updateRoot);\n    }\n    if (((ref$ = o.gameDescription) != null ? ref$.id : void 8) == null) {\n      debug(\"You need to specify a game description containing an id for the highscore events to work properly\");\n    }\n    isCleaned = false;\n    needsCoinRemoval = true;\n    startedAt = new Date();\n    pixiApp = new PIXI8.Application();\n    (await pixiApp.init({\n      width: o.width,\n      height: o.height,\n      backgroundColor: o.backgroundColor,\n      resolution: window.devicePixelRatio || 1,\n      backgroundAlpha: 0\n    }));\n    pixiApp.heapInfo = inc(\"/lib/util/heapInfo/info\")(\"pixi_app_\" + o.gameDescription.project);\n    pixiApp.numberOfTries = o.gameDescription.numberOfTries;\n    pixiApp.difficulty = (ref1$ = (ref2$ = o.gameDescription.difficulty) != null ? ref2$.value : void 8) != null ? ref1$ : 2;\n    pixiApp.soundPlayer = inc(\"soundPlayer/create\")(o.sounds);\n    pixiApp.gameDescription = o.gameDescription;\n    pixiApp.removeCoin = function(){\n      var ref$, ref1$;\n      if (!needsCoinRemoval) {\n        return;\n      }\n      inc(\"/data/user/coin/remove/remove\")((ref$ = (ref1$ = o.gameDescription) != null ? ref1$.price : void 8) != null ? ref$ : 1);\n      return needsCoinRemoval = false;\n    };\n    pixiApp.closeGame = function(type){\n      pixiApp.sendDebugGameEvent(\"gameClosed\", {\n        type: type\n      });\n      startPage({\n        path: path(\"../../../../04_gameEnd/page\"),\n        replace: true,\n        animation: \"fadeIn\",\n        params: app.currentPage.params\n      });\n    };\n    pixiApp.topBar = o.topBar;\n    pixiApp.topBar.stopGameSound = function(){\n      var ref$;\n      if ((ref$ = pixiApp.soundPlayer) != null) {\n        ref$.setSoundsEnabled(false);\n      }\n    };\n    pixiApp.topBar.resumeGameSound = function(){\n      var ref$, ref1$;\n      if ((ref$ = pixiApp.soundPlayer) != null) {\n        ref$.setSoundsEnabled(true);\n      }\n      if ((ref1$ = pixiApp.sceneManager.currentScene) != null) {\n        ref1$.resumeSound();\n      }\n    };\n    pixiApp.width = o.width;\n    pixiApp.height = o.height;\n    displayFPS = (ref1$ = o.displayFPS) != null ? ref1$ : false;\n    gameContainer = new PIXI8.Container();\n    pixiApp.stage.addChild(gameContainer);\n    pixiApp.sceneManager = inc(\"../sceneManager/create\")(gameContainer);\n    gsapTime = performance.now() / 1000;\n    pixiApp.gameTimeScale = 1;\n    pixiApp.ticker.add(function(){\n      var deltaSeconds;\n      if (pixiApp.sceneManager.paused) {\n        gsap.updateRoot(gsapTime);\n        return;\n      }\n      deltaSeconds = pixiApp.ticker.elapsedMS / 1000;\n      if (deltaSeconds > 0.25) {\n        gsap.updateRoot(gsapTime);\n        return;\n      }\n      gsapTime += deltaSeconds * pixiApp.gameTimeScale;\n      return gsap.updateRoot(gsapTime);\n    });\n    if (displayFPS) {\n      fpsView = inc(\"fpsLabel/create\")(o.width, 20, pixiApp.ticker);\n      fpsView.x = o.width / 2;\n      fpsView.y = fpsView.height / 2;\n      pixiApp.stage.addChild(fpsView);\n    }\n    pixiApp.cleanup = function(){\n      var ref$, ref1$;\n      isCleaned = true;\n      pixiApp.ticker.remove(update);\n      if ((ref$ = pixiApp.soundPlayer) != null) {\n        ref$.stopAll();\n      }\n      if ((ref1$ = pixiApp.soundPlayer) != null) {\n        ref1$.sounds = null;\n      }\n      pixiApp.sceneManager.cleanup();\n      pixiApp.ticker.stop();\n      pixiApp.topBar.remove();\n      pixiApp.destroy();\n    };\n    pixiApp.canvas.css({\n      width: o.width + \"px\",\n      height: o.height + \"px\",\n      opacity: 0\n    });\n    pixiApp.highscore = {\n      score: function(score, additionalData){\n        inc(\"highscore/score\")({\n          score: score,\n          gameId: o.gameDescription.id,\n          additionalData: additionalData\n        });\n      },\n      show: function(showLastUserScore){\n        var title, ref$, ref1$;\n        if (isCleaned) {\n          return;\n        }\n        title = o.gameDescription.title;\n        if (((ref$ = o.gameDescription.difficulty) != null ? ref$.label : void 8) != null) {\n          title += \" (\" + o.gameDescription.difficulty.label + \")\";\n        }\n        inc(\"highscore/show\")({\n          ascending: o.gameDescription.highscoreAscending,\n          gameId: o.gameDescription.id,\n          highscoreType: o.gameDescription.highscoreType,\n          popupTitle: title,\n          difficulty: (ref1$ = pixiApp.difficulty) != null ? ref1$ : 2,\n          showLastUserScore: showLastUserScore,\n          onClose: showRetry\n        });\n      }\n    };\n    pixiApp.sendDebugGameEvent = function(type, eventData){\n      var gpuParam, ref$, ref1$, ref2$, ref3$, ref4$;\n      eventData == null && (eventData = {});\n      gpuParam = (ref$ = pixiApp.renderer) != null ? (ref1$ = ref$.gl) != null ? (ref2$ = ref1$.getExtension(\"WEBGL_debug_renderer_info\")) != null ? ref2$.UNMASKED_RENDERER_WEBGL : void 8 : void 8 : void 8;\n      if (gpuParam) {\n        eventData._gpu = (ref3$ = pixiApp.renderer) != null ? (ref4$ = ref3$.gl) != null ? ref4$.getParameter(gpuParam) : void 8 : void 8;\n      }\n      if (type === \"gameClosed\") {\n        eventData.duration = _.round((new Date() - startedAt) / 1000, 1);\n      }\n      return inc(\"debugGameEvent/send\")(o.gameDescription.id, type, eventData);\n    };\n    showRetry = function(){\n      var ref$;\n      if (isCleaned) {\n        return;\n      }\n      if (pixiApp.numberOfTries > 0) {\n        if (pixiApp.sceneManager.paused) {\n          pixiApp.sceneManager.resume();\n        }\n        if ((ref$ = pixiApp.sceneManager.currentScene) != null) {\n          if (typeof ref$.onRetrySelected == 'function') {\n            ref$.onRetrySelected();\n          }\n        }\n      } else {\n        pixiApp.closeGame(\"noTriesLeft\");\n      }\n    };\n    update = function(delta){\n      var deltaSeconds;\n      deltaSeconds = pixiApp.ticker.elapsedMS / 1000;\n      if (deltaSeconds > 0.25) {\n        return;\n      }\n      deltaSeconds *= pixiApp.gameTimeScale;\n      if (displayFPS) {\n        fpsView.update(deltaSeconds);\n      }\n      pixiApp.sceneManager.update(deltaSeconds);\n    };\n    pixiApp.onLoaded = function(){\n      pixiApp.canvas.css({\n        opacity: 1\n      });\n    };\n    setup = function(){\n      o.setup(pixiApp);\n      pixiApp.ticker.add(update);\n    };\n    requestAnimationFrame(setup);\n    return pixiApp;\n  };\n})();","updated":"2026-04-15T10:14:25.384999"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/Vector/substract.ls","text":"(function(){\n  return function(vec1, vec2){\n    var vec;\n    return vec = {\n      x: vec1.x - vec2.x,\n      y: vec1.y - vec2.y\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Math/add.ls","text":"(function(){\n  return function(){\n    return PIXI8.Helper.Math = {\n      Vector: {\n        length: inc(\"Vector/length\"),\n        multiply: inc(\"Vector/multiply\"),\n        norm: inc(\"Vector/norm\"),\n        orthogonal: inc(\"Vector/orthogonal\"),\n        add: inc(\"Vector/add\"),\n        substract: inc(\"Vector/substract\"),\n        betweenPoints: inc(\"Vector/betweenPoints\"),\n        radiansBetweenVectors: inc(\"Vector/radiansBetweenVectors\"),\n        fromRadians: inc(\"Vector/fromRadians\")\n      },\n      Line: {\n        betweenPoints: inc(\"Line/betweenPoints\"),\n        length: inc(\"Line/length\"),\n        intersectionWithLine: inc(\"Line/intersectionWithLine\"),\n        intersectsWithCircle: inc(\"Line/intersectsWithCircle\")\n      },\n      Point: {\n        distance: inc(\"Point/distance\")\n      },\n      Circle: {\n        containsPoint: inc(\"Circle/containsPoint\"),\n        intersectsCircle: inc(\"Circle/intersectsCircle\")\n      },\n      Rect: {\n        containsPoint: inc(\"Rect/containsPoint\"),\n        intersectsRect: inc(\"Rect/intersectsRect\")\n      }\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/add.ls","text":"(function(){\n  return function(){\n    PIXI8.Helper == null && (PIXI8.Helper = {});\n    inc(\"Color/add\")();\n    inc(\"Math/add\")();\n    return inc(\"Convenience/add\")();\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/animatedSprite/create.ls","text":"(function(){\n  return function(o){\n    var sprite, ax, ref$, ay, adjustAnimationTime;\n    sprite = new PIXI8.extras.AnimatedSprite(o.textures.textures[o.animation].frames);\n    sprite.width = o.textures.size.width / window.devicePixelRatio;\n    sprite.height = o.textures.size.height / window.devicePixelRatio;\n    ax = (ref$ = o.anchorX) != null ? ref$ : 0.5;\n    ay = (ref$ = o.anchorY) != null ? ref$ : 0.5;\n    sprite.anchor.set(ax, ay);\n    sprite.x = (ref$ = o.x) != null ? ref$ : 0;\n    sprite.y = (ref$ = o.y) != null ? ref$ : 0;\n    sprite.dx = (ref$ = o.dx) != null ? ref$ : 0;\n    sprite.dy = (ref$ = o.dy) != null ? ref$ : 0;\n    if (o.tint != null) {\n      sprite.tint = o.tint;\n    }\n    sprite.initialScale = {\n      x: sprite.scale.x,\n      y: sprite.scale.y\n    };\n    sprite.animationTimeScale = 1;\n    sprite.allTextures = o.textures.textures;\n    sprite.currentAnimation = o.animation;\n    adjustAnimationTime = function(){\n      var maxFrame, maxTime, fps;\n      maxFrame = sprite.allTextures[sprite.currentAnimation].maxFrames;\n      maxTime = sprite.allTextures[sprite.currentAnimation].time;\n      fps = maxFrame / maxTime;\n      return sprite.animationSpeed = fps * sprite.animationTimeScale / 50;\n    };\n    sprite.setAnimation = function(animation){\n      sprite.currentAnimation = animation;\n      sprite.textures = sprite.allTextures[animation].frames;\n      adjustAnimationTime();\n      return sprite.play();\n    };\n    sprite.setAnimationTimeScale = function(timeScale){\n      sprite.animationTimeScale = timeScale;\n      return adjustAnimationTime();\n    };\n    adjustAnimationTime();\n    sprite.play();\n    return sprite;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/debugGameEvent/send.ls","text":"(function(){\n  return function(gameName, type, eventData){\n    var e, key, value;\n    e = {\n      event: \"debugGame\",\n      game: gameName || \"unknown\",\n      eventType: type || \"unknown\",\n      isDebug: engine.isDebug\n    };\n    if (eventData != null) {\n      for (key in eventData) {\n        value = eventData[key];\n        e[key] = value;\n      }\n    }\n    return typeof log != 'undefined' && log !== null ? log.log(e) : void 8;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/fpsLabel/create.ls","text":"(function(){\n  return function(width, height, ticker){\n    var fpsContainer, background, style, label, minFPS, maxFPS, resetCounter, deltaMax, resetMinMax;\n    fpsContainer = new PIXI8.Container();\n    background = inc(\"../../sprite/create\")({\n      texture: PIXI8.Texture.WHITE,\n      tint: 0,\n      anchorY: 0.5,\n      anchorX: 0.5\n    });\n    background.alpha = 0.5;\n    background.width = width;\n    background.height = height;\n    fpsContainer.addChild(background);\n    style = new PIXI8.TextStyle({\n      fontFamily: 'Source Sans Pro Solocode',\n      fontSize: 15,\n      fill: '#ffffff',\n      strokeThickness: 0,\n      dropShadow: false\n    });\n    label = new PIXI8.Text({\n      text: 'FPS: 0.0',\n      style: style\n    });\n    label.anchor.x = 0;\n    label.anchor.y = 0.5;\n    label.x = -width / 2 + 10;\n    label.y = 0;\n    fpsContainer.addChild(label);\n    fpsContainer.x = 0;\n    fpsContainer.y = 0;\n    minFPS = 999;\n    maxFPS = 0;\n    resetCounter = 5;\n    deltaMax = 0;\n    resetMinMax = function(){\n      minFPS = ticker.FPS;\n      maxFPS = ticker.FPS;\n      return deltaMax = 0;\n    };\n    fpsContainer.update = function(delta){\n      var fps;\n      resetCounter -= delta;\n      if (resetCounter <= 0) {\n        resetMinMax();\n        resetCounter = 5;\n      }\n      fps = ticker.FPS;\n      if (fps < minFPS) {\n        minFPS = fps;\n      }\n      if (fps > maxFPS) {\n        maxFPS = fps;\n      }\n      if (deltaMax < delta) {\n        deltaMax = delta;\n      }\n      return label.text = \"FPS: \" + fps.toFixed(1) + \" MIN: \" + minFPS.toFixed(1) + \" MAX: \" + maxFPS.toFixed(1) + \" DT: \" + deltaMax;\n    };\n    return fpsContainer;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/calc/eventName/calc.ls","text":"(function(){\n  return function(gameId){\n    var upperCased;\n    upperCased = gameId.charAt(0).toUpperCase() + gameId.substr(1);\n    return \"finishGame\" + upperCased;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/calc/formattedScore/calc.ls","text":"(function(){\n  return function(score, highscoreType){\n    return inc(highscoreType + \"/format\")(score);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/calc/formattedScore/float/format.ls","text":"(function(){\n  return function(score){\n    return score + \"\";\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/calc/formattedScore/percentage/format.ls","text":"(function(){\n  return function(score){\n    return score.toFixed(1) + \"%\";\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/calc/formattedScore/points/format.ls","text":"(function(){\n  return function(score){\n    return parseInt(score) + \"\";\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/calc/formattedScore/time/format.ls","text":"(function(){\n  return function(score){\n    var t, endingZero, leadingZero, string;\n    t = Math.round(score * 100);\n    endingZero = t % 100 === 0\n      ? \".00\"\n      : t % 10 === 0 ? \"0\" : \"\";\n    leadingZero = t < 1000 ? \"0\" : \"\";\n    string = leadingZero + t / 100 + endingZero;\n    return string.replace(\".\", \":\");\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/calc/lastUserScore/calc.ls","text":"(function(){\n  return function(o){\n    var eventName, e;\n    eventName = inc(\"../eventName/calc\")(o.gameId);\n    e = log.findLast({\n      event: eventName,\n      difficulty: o.difficulty\n    });\n    if (!e && o.difficulty === 2) {\n      e = _.findLast(log.list({\n        event: eventName\n      }), function(event){\n        return event.difficulty == null;\n      });\n    }\n    return o.lastUserScore = e != null ? e.score : void 8;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/calc/periodAndUsersFilter/calc.ls","text":"(function(){\n  return function(o){\n    var e;\n    e = log.findLast({\n      event: \"setHighscoreFilter\"\n    });\n    if (!(e != null && e.period)) {\n      e = undefined;\n    }\n    o.period = (e != null ? e.period : void 8) || \"week\";\n    o.users = (e != null ? e.users : void 8) || \"all\";\n    if (o.period === \"all\") {\n      return o.period = \"week\";\n    }\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/load/load.ls","text":"(function(){\n  return function(o, onCompleted){\n    return inc(\"/lib/util/pllsCall/call\")({\n      path: path(\"/../server-apis-db2/apis/games/highscores5/get\"),\n      params: {\n        gameId: o.gameId,\n        difficulty: o.difficulty,\n        logId: log.id(),\n        ascending: o.ascending,\n        firstBlockLength: 20,\n        userBlockLength: 21,\n        lastBlockLength: 10,\n        latestUserScore: o.showLastUserScore ? o.lastUserScore : void 8,\n        period: o.period,\n        users: o.users\n      },\n      queryInfo: {\n        gameId: o.gameId,\n        difficulty: o.difficulty,\n        period: o.period,\n        users: o.users\n      },\n      onCompleted: function(result){\n        o.highscores = result.highscores;\n        o.bestUserScore = result.bestUserScore;\n        return onCompleted();\n      },\n      onError: function(error){\n        debug(error);\n        return inc(\"../popupError/popup\")(o, \"error\");\n      },\n      onOffline: function(){\n        return inc(\"../popupError/popup\")(o, \"offline\");\n      }\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupError/avatar/avatar.ls","text":"(function(){\n  return function(){\n    var userDescription;\n    userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    return inc(\"/lib/gui/avatar/avatar\")(userDescription.avatar, \"half\").css({\n      display: \"inline-block\",\n      width: \"7em\",\n      height: \"7em\",\n      borderRadius: \"999px\",\n      filter: 'drop-shadow(0 0 0.5em rgba(0, 0, 0, 0.2))'\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupError/button/button.ls","text":"(function(){\n  return function(){\n    return Button({\n      label: T(\"continueButton\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\"\n    }).css({\n      marginBottom: \"1em\"\n    }).tap(function(){\n      return app.currentPopup.close();\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupError/popup.ls","text":"(function(){\n  return function(o, type){\n    var ref$, html, popup;\n    if ((ref$ = o.spinner) != null) {\n      ref$.remove();\n    }\n    html = Div().append(inc(\"title/title\")(), inc(\"avatar/avatar\")(), inc(\"text/text\")(type), inc(\"result/result\")(o), inc(\"button/button\")());\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: html,\n      onClose: o.onClose\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupError/result/result.ls","text":"(function(){\n  return function(o){\n    var score;\n    if (o.lastUserScore != null) {\n      score = inc(\"../../calc/formattedScore/calc\")(o.lastUserScore, o.highscoreType);\n    }\n    return Div({\n      fontSize: \"1.2em\",\n      margin: \"0.3em 0 1.5em\"\n    }).html(score != null\n      ? o.showLastUserScore\n        ? T(\"yourScore\", score)\n        : T(\"lastResult\", score)\n      : T(\"noScoreYet\"));\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupError/text/text.ls","text":"(function(){\n  return function(type){\n    return Div({\n      margin: \"0.3em 0.5em 0.8em\",\n      lineHeight: \"1.5em\"\n    }).html(type === \"offline\"\n      ? T(\"noHighscoreOffline\")\n      : T(\"noHighscoreError\"));\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupError/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"yourResult\")).css({\n      fontSize: \"1.3em\",\n      marginBottom: \"1em\",\n      marginTop: \"1em\"\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupGameResult/avatar/avatar.ls","text":"(function(){\n  return function(){\n    var userDescription;\n    userDescription = inc(\"/data/user/calcUserDescription/calc\")();\n    return inc(\"/lib/gui/avatar/avatar\")(userDescription.avatar, \"half\").css({\n      display: \"inline-block\",\n      width: \"7em\",\n      height: \"7em\",\n      borderRadius: \"999px\",\n      filter: 'drop-shadow(0 0 0.5em rgba(0, 0, 0, 0.2))'\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupGameResult/bestScore/bestScore.ls","text":"(function(){\n  return function(o){\n    var score;\n    score = inc(\"../../calc/formattedScore/calc\")(o.bestUserScore.score, o.highscoreType);\n    return Div().html(T(\"bestScore\", score)).css({\n      marginBottom: \"1em\"\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupGameResult/button/button.ls","text":"(function(){\n  return function(click){\n    return Button({\n      label: T(\"continueButton\"),\n      icon: path(\"/lib/svg/icon/arrow-right-small.svg\"),\n      iconPosition: \"right\"\n    }).css({\n      marginBottom: \"1em\"\n    }).tap(click);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupGameResult/lastScore/lastScore.ls","text":"(function(){\n  return function(o){\n    var score;\n    score = inc(\"../../calc/formattedScore/calc\")(o.lastUserScore, o.highscoreType);\n    return Div().html(T(\"yourScore\", score)).css({\n      fontSize: \"1.3em\",\n      marginBottom: \"0.35em\"\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupGameResult/medal/medal.ls","text":"(function(){\n  return function(position){\n    return SvgIcon({\n      svg: (function(){\n        switch (position) {\n        case 1:\n          return path('/lib/svg/illustration/medal-gold.svg');\n        case 2:\n          return path('/lib/svg/illustration/medal-silver.svg');\n        case 3:\n          return path('/lib/svg/illustration/medal-bronce.svg');\n        }\n      }()),\n      width: \"5em\",\n      height: \"5em\"\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupGameResult/popup.ls","text":"(function(){\n  return function(o){\n    var bestUserScore, lastScoreIsHighscore, close, html, popup;\n    bestUserScore = o.bestUserScore;\n    lastScoreIsHighscore = bestUserScore.score === o.lastUserScore;\n    close = function(){\n      return inc('../popupHighscores/popup')(o);\n    };\n    html = Div().append(inc(\"title/title\")(), lastScoreIsHighscore && bestUserScore.position < 3\n      ? inc(\"medal/medal\")(bestUserScore.position)\n      : inc(\"avatar/avatar\")(), inc(\"text/text\")(lastScoreIsHighscore, bestUserScore), inc(\"lastScore/lastScore\")(o), !lastScoreIsHighscore ? inc(\"bestScore/bestScore\")(o) : void 8, inc(\"button/button\")(close));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: html,\n      onClose: close\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupGameResult/text/text.ls","text":"(function(){\n  return function(lastScoreIsHighscore, bestUserScore){\n    var label;\n    label = engine.guiLanguage === \"en_gb\"\n      ? inc(\"/lib/util/calcOrdinalEn/calc\")(bestUserScore.position)\n      : bestUserScore.position;\n    return Div({\n      marginTop: \"0.3em\",\n      marginBottom: \"0.5em\"\n    }).html(!lastScoreIsHighscore\n      ? T(\"notImproved\")\n      : bestUserScore.position <= 3\n        ? T(\"topPositionReached\", label)\n        : T(\"positionReached\", label));\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupGameResult/title/title.ls","text":"(function(){\n  return function(){\n    return Div().html(T(\"yourResult\")).css({\n      fontSize: \"1.3em\",\n      marginBottom: \"1em\",\n      marginTop: \"1em\"\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/button/button.ls","text":"(function(){\n  return function(o){\n    var click;\n    click = function(){\n      var ref$;\n      return (ref$ = app.currentPopup) != null ? ref$.close() : void 8;\n    };\n    return Div({\n      flex: \"0 0 auto\",\n      borderTop: \"1px solid \" + Color.grey[300],\n      background: Color.white,\n      marginTop: \"-2px\"\n    }).html(Button({\n      label: T(\"closeButton\")\n    }).css({\n      flex: \"0 0 2em\",\n      margin: \"0.5em 0 1em\"\n    }).tap(click));\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/header/calcCurrentPeriodIndex/calc.ls","text":"(function(){\n  return function(o, options){\n    var index;\n    index = _.findIndex(options.period, function(p){\n      return p.period === o.period;\n    });\n    if (index === -1) {\n      index = 1;\n    }\n    return index;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/header/calcCurrentUsersIndex/calc.ls","text":"(function(){\n  return function(o, options){\n    var index;\n    index = _.findIndex(options.users, function(p){\n      return p.users === o.users;\n    });\n    if (index === -1) {\n      index = 0;\n    }\n    return index;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/header/click/click.ls","text":"(function(){\n  return function(o){\n    var click;\n    return click = function(item){\n      var that;\n      if ((that = item.period) != null) {\n        o.period = that;\n      }\n      if ((that = item.users) != null) {\n        o.users = that;\n      }\n      log.log({\n        event: \"setHighscoreFilter\",\n        period: o.period,\n        users: o.users\n      });\n      o.showLastUserScore = false;\n      o.animationOnShow = false;\n      return inc(\"../../../show\")(o);\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/header/dropdown/dropdown.ls","text":"(function(){\n  return function(o, items, index){\n    var div;\n    div = Div({\n      display: \"inline-flex\",\n      margin: \"0 0.2em\",\n      padding: \"0.5em\"\n    }).append(Div().html(items[index].label).css({\n      flex: \"1 1 auto\"\n    }), SvgIcon({\n      svg: path(\"/lib/svg/icon/arrow-down-mini.svg\"),\n      color: Color.grey[400]\n    }).css({\n      flex: \"0 0 1em\"\n    }));\n    div.tap(function(){\n      return OverlayMenu({\n        referenceDiv: div,\n        items: items,\n        direction: \"down left\",\n        adjustXY: \"-8 -12\"\n      });\n    });\n    return div;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/header/header.ls","text":"(function(){\n  return function(o){\n    var click, options, currentPeriodIndex, currentUsersIndex;\n    click = inc(\"click/click\")(o);\n    options = inc(\"options/options\")(click);\n    currentPeriodIndex = inc(\"calcCurrentPeriodIndex/calc\")(o, options);\n    currentUsersIndex = inc(\"calcCurrentUsersIndex/calc\")(o, options);\n    return Div({\n      width: \"100%\",\n      marginTop: \"1em\",\n      borderBottom: \"1px solid \" + Color.grey[300]\n    }).html(inc(\"title/title\")(o), Div({\n      paddingBottom: \"0.4em\"\n    }).html(inc(\"dropdown/dropdown\")(o, options.period, currentPeriodIndex), inc(\"dropdown/dropdown\")(o, options.users, currentUsersIndex)));\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/header/options/options.ls","text":"(function(){\n  return function(click){\n    return {\n      period: [\n        {\n          period: \"day\",\n          label: T(\"today\"),\n          click: click\n        }, {\n          period: \"week\",\n          label: T(\"sevenDays\"),\n          click: click\n        }\n      ],\n      users: [\n        {\n          label: T(\"school\"),\n          users: \"schools\",\n          click: click\n        }, {\n          label: T(\"myGroups\"),\n          users: \"groups\",\n          click: click\n        }, {\n          label: T(\"everybody\"),\n          users: \"all\",\n          click: click\n        }\n      ]\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/header/title/title.ls","text":"(function(){\n  return function(o){\n    return Div({\n      fontSize: \"1.3em\"\n    }).html(o.popupTitle || T(\"highscore\"));\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/spriteCache/cacheFailing/cache.ls","text":"(function(){\n  return function(o){\n    var cache, maxCacheSize, currentIndex;\n    cache = [];\n    maxCacheSize = o.maxSize;\n    currentIndex = 0;\n    return {\n      get: function(construct){\n        var c;\n        c = cache[currentIndex];\n        if (!c) {\n          c = construct();\n          cache[currentIndex] = c;\n        } else if (c.alive) {\n          return undefined;\n        }\n        currentIndex = (currentIndex + 1) % maxCacheSize;\n        return c;\n      }\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/svgTextureLoader/load.ls","text":"(function(){\n  return function(o){\n    var svgs, key, ref$, data, total, loaded, textures, resolution, onTextureLoaded, loadTexture, svgData, div, svg, scale, src, results$ = [];\n    svgs = {};\n    for (key in ref$ = o.svgs) {\n      data = ref$[key];\n      svgs[key] = {\n        svg: inc(data.svg),\n        width: data.width,\n        height: data.height\n      };\n    }\n    total = _.keys(svgs).length;\n    loaded = 0;\n    textures = {};\n    resolution = o.renderer.resolution;\n    onTextureLoaded = function(){\n      loaded = loaded + 1;\n      if (loaded === total) {\n        return o.callback(textures);\n      }\n    };\n    loadTexture = function(key, src){\n      var img;\n      img = new Image();\n      img.src = src;\n      return img.onload = function(){\n        textures[key] = PIXI8.Texture.from(img);\n        return onTextureLoaded();\n      };\n    };\n    for (key in svgs) {\n      svgData = svgs[key];\n      div = Div();\n      div.innerHTML = svgData.svg;\n      svg = div.firstChild;\n      scale = Math.min(svgData.width / +svg.attr(\"width\"), svgData.height / +svg.attr(\"height\"));\n      svg.attr({\n        width: Math.max(1, +svg.attr(\"width\") * resolution * scale),\n        height: Math.max(1, +svg.attr(\"height\") * resolution * scale)\n      });\n      svg = svg.outerHTML;\n      src = \"data:image/svg+xml;base64,\" + window.btoa(svg);\n      results$.push(loadTexture(key, src));\n    }\n    return results$;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/popup.ls","text":"(function(){\n  return function(o){\n    var div, popup;\n    div = Div({\n      display: \"flex\",\n      flexDirection: \"column\",\n      alignItems: \"stretch\"\n    }).append(inc(\"header/header\")(o), inc(\"rows/rows\")(o), inc(\"button/button\")(o));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: o.onClose,\n      animationOnShow: o.animationOnShow,\n      animationDisableBackground: true\n    }).css({\n      opacity: 0\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/rows/rowNoData/row.ls","text":"(function(){\n  return function(){\n    return Div({\n      marginTop: \"0.8em\",\n      paddingBottom: \"0.8em\",\n      borderBottom: \"1px solid \" + Color.grey[300]\n    }).html(T(\"noHighscoreData\"));\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/rows/rowSeparator/row.ls","text":"(function(){\n  return function(){\n    return Div({\n      display: \"flex\",\n      borderBottom: \"1px solid  \" + Color.grey[300],\n      padding: \"0.2em 0 0.3em 0.5em\",\n      color: Color.grey[600],\n      minHeight: \"3em\"\n    }).html(\"...\");\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/rows/rowUser/avatar/avatar.ls","text":"(function(){\n  return function(score){\n    return Div({\n      flex: \"0 0 auto\",\n      width: \"2em\",\n      height: \"2em\"\n    }).onScopeRender(function(){\n      var avatar;\n      this.append(avatar = inc(\"/lib/gui/avatar/avatar\")(score.avatar, \"portrait\").css({\n        width: \"2em\",\n        height: \"2em\"\n      }));\n      if (avatar.zoom) {\n        return this.parent().tap(avatar.zoom);\n      }\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/rows/rowUser/name/name.ls","text":"(function(){\n  return function(score){\n    return Div({\n      flex: \"1 1 auto\",\n      overflow: \"hidden\",\n      textOverflow: \"ellipsis\",\n      textAlign: \"left\",\n      paddingLeft: \"0.4em\",\n      whiteSpace: \"nowrap\"\n    }).text(score.name);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/rows/rowUser/position/position.ls","text":"(function(){\n  return function(score, o){\n    var pos;\n    pos = score.position;\n    return Div({\n      flex: \"0 0 auto\",\n      textAlign: \"center\",\n      marginRight: \"0.2em\",\n      marginLeft: \"0.4em\",\n      minWidth: o.positionWidth\n    }).html(score.position < 4\n      ? SvgIcon({\n        svg: pos === 1\n          ? path(\"/lib/svg/illustration/medal-gold.svg\")\n          : pos === 2\n            ? path(\"/lib/svg/illustration/medal-silver.svg\")\n            : path(\"/lib/svg/illustration/medal-bronce.svg\"),\n        size: \"1.5em\"\n      }).css({\n        margin: \"0.5em -0.35em -0.35em\"\n      })\n      : score.position + \".\");\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/rows/rowUser/row.ls","text":"(function(){\n  return function(score, o){\n    return Div().cssClass({\n      display: \"flex\",\n      borderBottom: \"1px solid  \" + Color.grey[300],\n      padding: \"0.2em 0 0.3em\",\n      minHeight: \"3em\",\n      background: score.isUserScore ? Color.grey[200] : void 8\n    }).addClass(score.isUserScore ? \"currentUser\" : void 8).append(inc(\"position/position\")(score, o), inc(\"avatar/avatar\")(score), inc(\"name/name\")(score), inc(\"score/score\")(score, o));\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/rows/rowUser/score/score.ls","text":"(function(){\n  return function(score, o){\n    score = inc(\"../../../../calc/formattedScore/calc\")(score.score, o.highscoreType);\n    return Div({\n      flex: \"0 0 auto\",\n      width: \"3em\",\n      marginRight: \"0.3em\"\n    }).html(score);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/alphaZoomOut.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.oldScene.sceneWidth;\n    h = o.oldScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.oldScene.alpha = 1 - percentage;\n      o.oldScene.scale.set(1.5 - 0.5 * (1 - percentage));\n      o.oldScene.x = (w - o.oldScene.sceneWidth * o.oldScene.scale.x) / 2;\n      o.oldScene.y = (h - o.oldScene.sceneHeight * o.oldScene.scale.y) / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/slideFromTop.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.y = -o.newScene.sceneHeight * (1 - percentage);\n      o.oldScene.y = o.oldScene.sceneHeight * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/slideToBottom.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.y = o.oldScene.sceneHeight * percentage;\n      o.newScene.y = -o.newScene.sceneHeight * (1 - percentage);\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/slideToLeft.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.x = -o.oldScene.sceneWidth * percentage;\n      o.newScene.x = o.newScene.sceneWidth - o.newScene.sceneWidth * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"data/user/calcUserDescription/isPlusSchoolMember/calc.ls","text":"(function(){\n  return function(d){\n    var now, schoolCodes, i$, len$, schoolCode, schoolLog, ref$, e, e2, j$, ref1$, len1$, productName, e3;\n    now = new Date();\n    schoolCodes = inc(\"/data/school/calcSchoolCodes/calc\")(d.log);\n    for (i$ = 0, len$ = schoolCodes.length; i$ < len$; ++i$) {\n      schoolCode = schoolCodes[i$];\n      schoolLog = (ref$ = window.schoolLogs) != null ? ref$[schoolCode] : void 8;\n      if (!schoolLog) {\n        continue;\n      }\n      e = schoolLog.findLast(\"setSchoolHasAntonPlus\");\n      if ((e != null && e.value) && (!e.validUntil || now < new Date(e.validUntil))) {\n        e2 = d.log.findLast({\n          event: \"isSchoolMember\",\n          schoolCode: schoolCode\n        });\n        if (e2.dirRole != null) {\n          for (j$ = 0, len1$ = (ref1$ = [\"schoolPro\", \"schoolProPlus\", \"schoolProComplete\"]).length; j$ < len1$; ++j$) {\n            productName = ref1$[j$];\n            e3 = schoolLog.findLast({\n              event: \"setSchoolProduct\",\n              productName: productName\n            });\n            if (e3 && now < new Date(e3.validUntil)) {\n              return true;\n            }\n          }\n        }\n      }\n    }\n    return false;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGame/pixi/BaseGame/create.ls","text":"(function(){\n  return function(o){\n    var ref$, isCleaned, needsCoinRemoval, startedAt, pixiAppConfig, pixiApp, ref1$, ref2$, displayFPS, gameContainer, fpsView, cleanTextures, showRetry, update, onIntitalized, setup;\n    inc(\"../Helper/add\")();\n    if (((ref$ = o.gameDescription) != null ? ref$.id : void 8) == null) {\n      debug(\"You need to specify a game description containing an id for the highscore events to work properly\");\n    }\n    isCleaned = false;\n    needsCoinRemoval = true;\n    startedAt = new Date();\n    pixiAppConfig = {\n      backgroundColor: o.backgroundColor,\n      resolution: window.devicePixelRatio || 1,\n      roundPixels: false,\n      transparent: true\n    };\n    inc(\"forceCanvasForSpecificDevices/force\")(pixiAppConfig);\n    pixiApp = new PIXI.Application(o.width, o.height, pixiAppConfig);\n    pixiApp.heapInfo = inc(\"/lib/util/heapInfo/info\")(\"pixi_app_\" + o.gameDescription.project);\n    pixiApp.numberOfTries = o.gameDescription.numberOfTries;\n    pixiApp.difficulty = (ref1$ = (ref2$ = o.gameDescription.difficulty) != null ? ref2$.value : void 8) != null ? ref1$ : 2;\n    pixiApp.soundPlayer = inc(\"soundPlayer/create\")(o.sounds);\n    pixiApp.gameDescription = o.gameDescription;\n    pixiApp.removeCoin = function(){\n      var ref$, ref1$;\n      if (!needsCoinRemoval) {\n        return;\n      }\n      inc(\"/data/user/coin/remove/remove\")((ref$ = (ref1$ = o.gameDescription) != null ? ref1$.price : void 8) != null ? ref$ : 1);\n      return needsCoinRemoval = false;\n    };\n    pixiApp.closeGame = function(type){\n      pixiApp.sendDebugGameEvent(\"gameClosed\", {\n        type: type\n      });\n      startPage({\n        path: path(\"../../../../04_gameEnd/page\"),\n        replace: true,\n        animation: \"fadeIn\",\n        params: app.currentPage.params\n      });\n    };\n    pixiApp.topBar = o.topBar;\n    pixiApp.topBar.stopGameSound = function(){\n      var ref$;\n      if ((ref$ = pixiApp.soundPlayer) != null) {\n        ref$.setSoundsEnabled(false);\n      }\n    };\n    pixiApp.topBar.resumeGameSound = function(){\n      var ref$, ref1$;\n      if ((ref$ = pixiApp.soundPlayer) != null) {\n        ref$.setSoundsEnabled(true);\n      }\n      if ((ref1$ = pixiApp.sceneManager.currentScene) != null) {\n        ref1$.resumeSound();\n      }\n    };\n    pixiApp.width = o.width;\n    pixiApp.height = o.height;\n    displayFPS = (ref1$ = o.displayFPS) != null ? ref1$ : false;\n    gameContainer = new PIXI.Container();\n    pixiApp.stage.addChild(gameContainer);\n    pixiApp.sceneManager = inc(\"../sceneManager/create\")(gameContainer);\n    if (displayFPS) {\n      fpsView = inc(\"fpsLabel/create\")(o.width, 20, pixiApp.ticker);\n      fpsView.x = o.width / 2;\n      fpsView.y = fpsView.height / 2;\n      pixiApp.stage.addChild(fpsView);\n    }\n    pixiApp.cleanup = function(){\n      var ref$, ref1$;\n      isCleaned = true;\n      pixiApp.ticker.remove(update);\n      if ((ref$ = pixiApp.soundPlayer) != null) {\n        ref$.stopAll();\n      }\n      if ((ref1$ = pixiApp.soundPlayer) != null) {\n        ref1$.sounds = null;\n      }\n      pixiApp.sceneManager.cleanup();\n      PIXI.actionManager.actions = [];\n      pixiApp.stop();\n      cleanTextures();\n      pixiApp.topBar.remove();\n      pixiApp.destroy();\n    };\n    cleanTextures = function(){\n      var k, ref$, texture, results$ = [];\n      for (k in ref$ = PIXI.utils.TextureCache) {\n        texture = ref$[k];\n        results$.push(texture.destroy(true));\n      }\n      return results$;\n    };\n    pixiApp.view.css({\n      width: o.width + \"px\",\n      height: o.height + \"px\",\n      opacity: 0\n    });\n    pixiApp.highscore = {\n      score: function(score, additionalData){\n        inc(\"highscore/score\")({\n          score: score,\n          gameId: o.gameDescription.id,\n          additionalData: additionalData\n        });\n      },\n      show: function(showLastUserScore){\n        var title, ref$, ref1$;\n        if (isCleaned) {\n          return;\n        }\n        title = o.gameDescription.title;\n        if (((ref$ = o.gameDescription.difficulty) != null ? ref$.label : void 8) != null) {\n          title += \" (\" + o.gameDescription.difficulty.label + \")\";\n        }\n        inc(\"highscore/show\")({\n          ascending: o.gameDescription.highscoreAscending,\n          gameId: o.gameDescription.id,\n          highscoreType: o.gameDescription.highscoreType,\n          popupTitle: title,\n          difficulty: (ref1$ = pixiApp.difficulty) != null ? ref1$ : 2,\n          showLastUserScore: showLastUserScore,\n          onClose: showRetry\n        });\n      }\n    };\n    pixiApp.sendDebugGameEvent = function(type, eventData){\n      var gpuParam, ref$, ref1$, ref2$, ref3$, ref4$;\n      eventData == null && (eventData = {});\n      gpuParam = (ref$ = pixiApp.renderer) != null ? (ref1$ = ref$.gl) != null ? (ref2$ = ref1$.getExtension(\"WEBGL_debug_renderer_info\")) != null ? ref2$.UNMASKED_RENDERER_WEBGL : void 8 : void 8 : void 8;\n      if (gpuParam) {\n        eventData._gpu = (ref3$ = pixiApp.renderer) != null ? (ref4$ = ref3$.gl) != null ? ref4$.getParameter(gpuParam) : void 8 : void 8;\n      }\n      if (type === \"gameClosed\") {\n        eventData.duration = _.round((new Date() - startedAt) / 1000, 1);\n      }\n      return inc(\"debugGameEvent/send\")(o.gameDescription.id, type, eventData);\n    };\n    showRetry = function(){\n      var ref$;\n      if (isCleaned) {\n        return;\n      }\n      if (pixiApp.numberOfTries > 0) {\n        if (pixiApp.sceneManager.paused) {\n          pixiApp.sceneManager.resume();\n        }\n        if ((ref$ = pixiApp.sceneManager.currentScene) != null) {\n          if (typeof ref$.onRetrySelected == 'function') {\n            ref$.onRetrySelected();\n          }\n        }\n      } else {\n        pixiApp.closeGame(\"noTriesLeft\");\n      }\n    };\n    update = function(delta){\n      var deltaSeconds;\n      deltaSeconds = pixiApp.ticker.elapsedMS / 1000;\n      if (deltaSeconds > 0.25) {\n        return;\n      }\n      if (displayFPS) {\n        fpsView.update(deltaSeconds);\n      }\n      pixiApp.sceneManager.update(deltaSeconds);\n    };\n    onIntitalized = function(){\n      var ref$;\n      pixiApp.view.css({\n        opacity: 1\n      });\n      if ((ref$ = pixiApp.renderer) != null) {\n        ref$.off('postrender', onIntitalized);\n      }\n    };\n    pixiApp.onLoaded = function(){\n      var ref$;\n      if ((ref$ = pixiApp.renderer) != null) {\n        ref$.on('postrender', onIntitalized);\n      }\n    };\n    setup = function(){\n      o.setup(pixiApp);\n      pixiApp.ticker.add(update);\n    };\n    requestAnimationFrame(setup);\n    return pixiApp;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/start/startUser/08_start/start.ls","text":"(function(){\n  return function(o){\n    var category, ref$, ref1$;\n    o == null && (o = {});\n    if (window.log == null) {\n      return;\n    }\n    if (window.PIXI == null) {\n      inc(\"/../pixi/init\")();\n    }\n    if (window.PIXI8 == null) {\n      inc(\"/../pixi8/init\")();\n    }\n    category = (ref$ = o.startNavCategory) != null\n      ? ref$\n      : (ref$ = (ref1$ = log.findLast(\"setLastNavCategory\")) != null ? ref1$.value : void 8) != null ? ref$ : \"content\";\n    if ((typeof ClassKitPlugin != 'undefined' && ClassKitPlugin !== null ? ClassKitPlugin.lastIdentifierPath : void 8) != null && new Date() - new Date(typeof ClassKitPlugin != 'undefined' && ClassKitPlugin !== null ? ClassKitPlugin.lastIdentifierDate : void 8) < 20 * 60 * 1000) {\n      return inc(\"/lib/init/classKit/handleDeeplinks/startActivity/start\")(ClassKitPlugin.lastIdentifierPath);\n    } else if (inc(\"isRememberDeletionPageRedirect/is\")()) {\n      delete engine.rememberDeletionPageRedirect;\n      inc(\"startLastCategory/start\")(category);\n      return inc(\"/pages/misc/deleteUser/start\")();\n    } else if (engine.contentDeeplink && new Date() - engine.contentDeeplink.setAt < 20 * 60 * 1000) {\n      if (!inc(\"/lib/init/startFirstPage/deepLinkContent/deepLinkContent\")(engine.contentDeeplink.pageUrl)) {\n        inc(\"startLastCategory/start\")(category);\n      }\n      return ref$ = engine.contentDeeplink, delete engine.contentDeeplink, ref$;\n    } else if (engine.learnListDeeplink && new Date() - engine.learnListDeeplink.setAt < 20 * 60 * 1000) {\n      if (!inc(\"/lib/init/startFirstPage/deepLinkLearnList/deepLinkLearnList\")(engine.learnListDeeplink.pageUrl)) {\n        inc(\"startLastCategory/start\")(category);\n      }\n      return ref$ = engine.learnListDeeplink, delete engine.learnListDeeplink, ref$;\n    } else {\n      return inc(\"startLastCategory/start\")(category);\n    }\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"lib/init/init1.ls","text":"(function(){\n  return function(){\n    var showFailed, checkProjectsSync, initProjects, p;\n    showFailed = inc(\"vanillaInitProjectFailed/show\");\n    checkProjectsSync = inc(\"checkProjectsSync/check/check\");\n    initProjects = [\n      {\n        project: \"app01\"\n      }, {\n        project: \"logger01\",\n        init: function(done){\n          return inc(\"subscribeDeviceAndUserLogs/subscribe\")(done);\n        }\n      }, {\n        project: \"extended-dom-element\",\n        init: function(done){\n          inc(\"/../extended-dom-element/init\")();\n          return done();\n        }\n      }, {\n        project: \"color\",\n        required: [\"extended-dom-element\"],\n        init: function(done){\n          inc(\"/../color/init\")();\n          return done();\n        }\n      }, {\n        project: \"debug\",\n        required: [\"color\"],\n        init: function(done){\n          inc(\"/../debug/init\")({\n            dontSetErrorHandler: true\n          });\n          return done();\n        }\n      }, {\n        project: \"lsg2\",\n        init: function(done){\n          inc(\"/../lsg2/init\")();\n          return done();\n        }\n      }, {\n        project: \"math-div2\",\n        init: function(done){\n          var ref$;\n          if (typeof (ref$ = inc(\"/../math-div2/init\", {\n            silentError: true\n          })) == 'function') {\n            ref$();\n          }\n          return done();\n        }\n      }, {\n        project: \"music-components\",\n        init: function(done){\n          inc(\"/../music-components/init\")();\n          return done();\n        }\n      }, {\n        project: \"box2d\"\n      }, {\n        project: \"c-renderer\"\n      }, {\n        project: \"qrcode\"\n      }, {\n        project: \"sprites\"\n      }, {\n        project: \"sounds\"\n      }, {\n        project: \"purchases\"\n      }, {\n        project: \"app01-avatar\"\n      }, {\n        project: \"app01-learn-list\"\n      }, {\n        project: \"app01-trainers\"\n      }, {\n        project: \"app01-settings\"\n      }, {\n        project: \"gui-components\"\n      }, {\n        project: \"app01-news-list\"\n      }, {\n        project: \"app01-kid-trainers\"\n      }, {\n        project: \"app01-preschool\"\n      }, {\n        project: \"app01-welcome\"\n      }, {\n        project: \"app01-group\"\n      }, {\n        project: \"app01-topbar\"\n      }, {\n        project: \"app01-teacher-progress\"\n      }, {\n        project: \"app01-pin\"\n      }, {\n        project: \"app01-group-report\"\n      }, {\n        project: \"app01-content-row\"\n      }, {\n        project: \"app01-block-page\"\n      }, {\n        project: \"app01-intro-funnel\"\n      }, engine.isDebug ? {\n        project: \"app01-debug-popup\"\n      } : void 8, !engine.isMobileApp ? {\n        project: \"lottie\",\n        init: function(done){\n          inc(\"/../lottie/init\")();\n          return done();\n        }\n      } : void 8, !engine.isBotMode ? {\n        project: \"pixi\",\n        init: function(done){\n          inc(\"/../pixi/init\")();\n          return done();\n        }\n      } : void 8, !engine.isBotMode ? {\n        project: \"pixi8\",\n        init: function(done){\n          inc(\"/../pixi8/init\")();\n          return done();\n        }\n      } : void 8, !engine.isBotMode ? (p = _.startsWith(engine.guiLanguage, \"en\") ? \"font-solocode-set-en-us\" : \"font-solocode-set\", {\n        project: p,\n        required: [\"color\"],\n        init: function(done){\n          inc(\"/../\" + p + \"/init\")();\n          return done();\n        }\n      }) : void 8\n    ];\n    initProjects = _.compact(initProjects);\n    inc(\"/lib/util/loadProjects/load\")({\n      projectDescriptions: initProjects,\n      timeout: engine.isMobileApp ? \"15,10\" : \"120,120\",\n      onProjectMissingError: function(projectDescriptions){\n        if (!app.initCrashed) {\n          return showFailed(projectDescriptions);\n        }\n      },\n      onDone: function(projectDescriptions){\n        if (app.initCrashed) {\n          return;\n        }\n        if (!checkProjectsSync(initProjects).isSynced) {\n          showFailed(projectDescriptions);\n          return;\n        }\n        if (engine.isBotMode) {\n          return inc(\"/lib/util/loadPlansList/load\")({\n            onLoaded: function(){\n              return inc(\"init2\")();\n            },\n            onError: showFailed\n          });\n        } else {\n          return inc(\"init2\")();\n        }\n      }\n    });\n    return initProjects;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/slideToRight.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.x = o.oldScene.sceneWidth * percentage;\n      o.newScene.x = -o.newScene.sceneWidth + o.newScene.sceneWidth * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"init.ls","text":"(function(){\n  return function(){\n    engine.initStartAt = new Date();\n    engine.initVersion = 230;\n    engine.isAmazonDevice = window.device != null && /(amazon)/i.test(device.platform);\n    engine.isMacApp = window.device != null && engine.isiOsApp && ((typeof SolocodePlugin != 'undefined' && SolocodePlugin !== null ? SolocodePlugin.isiOSAppOnMac : void 8) || (device.model.indexOf(\"iPad\") < 0 && device.model.indexOf(\"iPhone\") < 0 && device.model.indexOf(\"iPod\") < 0));\n    window.app == null && (window.app = {});\n    window.log = null;\n    window.deviceLog = null;\n    window.groupLogs = {};\n    window.schoolLogs = {};\n    app.contentServer == null && (app.contentServer = \"https://content.anton.app\");\n    return setTimeout(function(){\n      var js, include;\n      js = projects.documentCache[\"app01\"][\"lib/init/include/include.ls\"].text;\n      include = eval(js)();\n      include(\"/../app01/lib/init/trySafe/trySafe\")();\n      return trySafe(function(){\n        include(\"/../app01/lib/init/engineIsDebug/engineIsDebug\")();\n        include(\"/../app01/lib/init/setDevelopAndPreviewTitleAndFavicon/set\")();\n        include(\"/../app01/lib/init/errorHandler/errorHandler\")();\n        include(\"/../app01/lib/init/engineGuiLanguage/engineGuiLanguage\")();\n        include(\"/../app01/lib/init/engineTranslate/init\")();\n        include(\"/../app01/lib/init/resetCss/reset\")();\n        include(\"/../app01/lib/init/setFontSize/set\")();\n        include(\"/../app01/lib/init/vanillaInitErrorHandler/handler\")();\n        include(\"/../app01/lib/init/vanillaDebug/debug\")();\n        include(\"/../app01/lib/init/loadMaintenanceMessages/load\")();\n        return include(\"/../app01/lib/init/init0\")();\n      });\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"lib/init/init2.ls","text":"(function(){\n  return function(){\n    var currentInitVersion;\n    currentInitVersion = 230;\n    if (inc(\"restartIfRequired/restart\")(currentInitVersion)) {\n      return;\n    }\n    return inc(\"repairAndroidLocalStorage/repair\")(function(){\n      var ref$, ref1$;\n      if ((ref$ = document.getElementById(\"vanillaSpinner\")) != null) {\n        ref$.remove();\n      }\n      inc(\"/lib/init/twitch/twitch\")();\n      inc(\"forceAwait/init\")();\n      inc(\"/lib/init/engineIsDebug/engineIsDebug\")();\n      inc(\"/lib/init/errorHandler/errorHandler\")();\n      inc(\"/lib/init/extendLowDash/extend\")();\n      inc(\"fixBodyScale/fix\")();\n      inc(\"setFontSize/set\")();\n      inc(\"debugIcons/debugIcons\")();\n      inc(\"debugToggle/debugToggle\")();\n      inc(\"ideDebugOutput/init\")();\n      inc(\"setCssSafeArea/set\")();\n      inc(\"setCssViewportAttributes/set\")();\n      inc(\"setiOSAppAudioCategory/set\")();\n      inc(\"cssColorTags/add\")();\n      inc(\"androidBack/androidBack\")();\n      inc(\"onNewLogEvents/on\")();\n      inc(\"onIdeIFrameMessage/on\")();\n      inc(\"onStatusBarTap/onStatusBarTap\")();\n      inc(\"networkConnection/init\")();\n      inc(\"vibrate/init\")();\n      inc(\"softKeyboard/init\")();\n      inc(\"/lib/util/keyManager/keyManager\")();\n      inc(\"/lib/util/audioContext/init/init\")();\n      inc(\"/lib/util/startPage/startPage\")();\n      inc(\"statusBar/statusBar\")();\n      inc(\"fixChromeBorderRadiusBug/fix\")();\n      inc(\"push/push\")();\n      inc(\"setupAppstore/setup\")();\n      inc(\"idle/idle\")();\n      inc(\"windowSetUrl/setUrl\")();\n      inc(\"classKit/init\")();\n      inc(\"lazyLoadPlansList/load\")();\n      inc(\"deviceCleanup/cleanup\")();\n      engine.initDoneAt = new Date();\n      inc(\"checkRemoteLogout/check\")();\n      inc(\"logDeviceStartEvents/log\")();\n      inc(\"checkMdmConfig/check\")();\n      inc(\"setMobileAppWindowOpen/set\")();\n      if (app.initCrashed) {\n        return;\n      }\n      inc(\"/lib/util/waitFrames/wait\")(2, function(){\n        var ref$;\n        if ((ref$ = navigator.splashscreen) != null) {\n          if (typeof ref$.hide == 'function') {\n            ref$.hide();\n          }\n        }\n        return requestAnimationFrame(function(){\n          return inc(\"/lib/util/toggleStatusBar/toggleStatusBar\")();\n        });\n      });\n      Store.remove(\"lastInitCrashed\");\n      window.onErrorCustomHandler = undefined;\n      if ((ref1$ = window.parent) != null) {\n        ref1$.postMessage(\"healthCheckAppStarted\", '*');\n      }\n      if (inc(\"/pages/prestart/appOutdated/appOutdated\")() || inc(\"/pages/prestart/engineOutdated/engineOutdated\")()) {\n        return;\n      }\n      return inc(\"/lib/util/waitFrames/wait\")(4, function(){\n        return inc(\"startFirstPage/start\")();\n      });\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/02_gameDetails/_t.ls","text":"(function(){\n  return {\n    games: {\n      de: \"Spiele\",\n      en: \"Games\",\n      fr: \"Jeux\",\n      es: \"Juegos\",\n      pt: \"Jogos\"\n    },\n    start: {\n      de: \"Start\",\n      en: \"Start\",\n      fr: \"Commencer\",\n      es: \"Comenzar\",\n      pt: \"Início\"\n    },\n    gamesAreLocked: {\n      de: \"Die Spiele sind gesperrt!\",\n      en: \"These games are locked!\",\n      fr: \"Ces jeux sont vérouillés&nbsp;!\",\n      es: \"¡Estos juegos están bloqueados!\",\n      pt: \"Estes jogos estão bloqueados!\"\n    },\n    noCoinsLeft: {\n      de: \"Du hast keine Münzen mehr!<br>\",\n      en: \"You don't have any coins left!<br>\",\n      fr: \"Tu n'as plus assez de pièces&nbsp;!<br>\",\n      es: \"¡Se te acabaron las fichas!<br>\",\n      pt: \"Você não tem mais moedas!<br>\"\n    },\n    learnThenPlay: {\n      de: \"Mache ein paar Übungen, dann kannst du weiter spielen.\",\n      en: \"Do a few more lessons, then you can keep playing.\",\n      fr: \"Fais quelques exercices supplémentaires et tu pourras continuer à jouer.\",\n      es: \"Resuelve un par de ejercicios para seguir jugando.\",\n      pt: \"Faça alguns exercícios para continuar jogando.\"\n    },\n    suggestions: {\n      de: \"Verbesserungsvorschläge?\",\n      en: \"Improvement suggestions?\",\n      fr: \"Proposer des améliorations\",\n      es: \"Ayúdanos a mejorar\",\n      pt: \"Como podemos melhorar?\"\n    },\n    send: {\n      de: \"Abschicken\",\n      en: \"Send\",\n      fr: \"Envoyer\",\n      es: \"Enviar\",\n      pt: \"Enviar\"\n    },\n    selectEmojiOrWrite: {\n      de: \"Bitte wähle einen Smiley aus oder schreibe etwas.\",\n      en: \"Please choose a smiley or write something.\",\n      fr: \"Tu peux choisir un smiley ou écrire quelque chose.\",\n      es: \"Puedes elegir una carita o escribir algo.\",\n      pt: \"Por favor, selecione um smiley ou escreva algo.\"\n    },\n    howDoYoyLikeTheGame: {\n      de: \"Wie gefällt dir das Spiel?\",\n      en: \"How do you like this game?\",\n      fr: \"Ce jeu te plaît&nbsp;?\",\n      es: \"¿Qué te pareció el juego?\",\n      pt: \"O que você achou deste jogo?\"\n    },\n    manual: {\n      de: \"Anleitung\",\n      en: \"Instructions\",\n      fr: \"Explications\",\n      es: \"Instrucciones\",\n      pt: \"Instruções\"\n    },\n    oneGameCosts: {\n      de: \"Ein Spiel kostet:\",\n      en: \"One game costs:\",\n      fr: \"Une partie coûte&nbsp;:\",\n      es: \"Un juego cuesta:\",\n      pt: \"Um jogo custa:\"\n    },\n    loginToPlay: {\n      de: \"Bitte melde dich als Nutzer an, wenn du dieses Spiel spielen möchtest.\",\n      en: \"Please log in to play.\",\n      fr: \"Tu dois te connecter pour jouer.\",\n      es: \"Necesitas registrarte para jugar este juego.\",\n      pt: \"Por favor, faça seu login para jogar este jogo.\"\n    },\n    gamesAreLockedByAdmin: {\n      de: \"Die Spiele wurden von dem Admin deiner Schule gesperrt.\",\n      en: \"Games have been deactivated by your school admin.\",\n      fr: \"Les jeux ont été désactivés par l'admin de ton école.\",\n      es: \"La administración de tu escuela desactivó los juegos.\",\n      pt: \"Os jogos foram desativados pela administração da sua escola.\"\n    }\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/slideToTop.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.y = -o.oldScene.sceneHeight * percentage;\n      o.newScene.y = o.oldScene.sceneHeight * (1 - percentage);\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/misc/_shared/askVerify/_t.ls","text":"(function(){\n  return {\n    askVerifyEmail: {\n      deDev: \"Möchtest du die folgende E-Mail jetzt verifizieren?\",\n      en: \"Do you want to verify the following email?\",\n      fr: \"Veux-tu vérifier l'e-mail suivant maintenant&nbsp;?\",\n      es: \"¿Quieres verificar el siguiente correo ahora?\",\n      pt: \"Gostaria de verificar o seguinte e-mail agora?\"\n    },\n    askVerifyPhoneNumber: {\n      deDev: \"Möchtest du die folgende Telefonnummer jetzt verifizieren?\",\n      en: \"Do you want to verify the following phone number?\",\n      fr: \"Veux-tu vérifier le numéro de téléphone suivant maintenant&nbsp;?\",\n      es: \"¿Quieres verificar el siguiente teléfono ahora?\",\n      pt: \"Gostaria de verificar o seguinte número de telefone agora?\"\n    },\n    verify: {\n      de: \"Überprüfen\",\n      en: \"Verify\",\n      fr: \"Vérifier\",\n      es: \"Verificar\",\n      pt: \"Verificar\"\n    },\n    skipVerification: {\n      de: \"Verifizierung überspringen\",\n      en: \"Skip verification\",\n      fr: \"Ignorer la vérification\",\n      es: \"Saltar la verificación\",\n      pt: \"Pular verificação\"\n    }\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/basePage/basePage.ls","text":"(function(){\n  return function(o){\n    var topbar;\n    if (o.page.params.gameDescription != null) {\n      o.gameDescription = o.page.params.gameDescription;\n    }\n    topbar = inc(\"topbar/topbar\")({\n      gameDescription: o.gameDescription,\n      close: function(){\n        var ref$, ref1$;\n        if ((ref$ = o.page.pixiApp) != null) {\n          if ((ref1$ = ref$.sceneManager) != null) {\n            ref1$.pause();\n          }\n        }\n        return inc(\"closeConfirmationPopup/popup\")(o.page.pixiApp);\n      },\n      showHelp: function(){\n        var ref$, ref1$;\n        if (o.gameDescription != null) {\n          if ((ref$ = o.page.pixiApp) != null) {\n            if ((ref1$ = ref$.sceneManager) != null) {\n              ref1$.pause();\n            }\n          }\n          return inc(\"/pages/games/02_gameDetails/manualPopup/popup/popup\")(o.gameDescription, function(){\n            var ref$, ref1$;\n            return (ref$ = o.page.pixiApp) != null ? (ref1$ = ref$.sceneManager) != null ? ref1$.resume() : void 8 : void 8;\n          });\n        }\n      }\n    });\n    return {\n      top: function(){\n        return topbar;\n      },\n      urlDescription: function(){\n        return inc(\"../../_urlDescription/description\")();\n      },\n      finish: function(){\n        var ref$;\n        inc(\"/lib/util/orientation/unlock\")();\n        return (ref$ = o.page.pixiApp) != null ? ref$.cleanup() : void 8;\n      },\n      start: function(){\n        var wrapper;\n        inc(\"/lib/util/orientation/lock\")();\n        o.page.html(wrapper = Div({\n          width: \"100%\",\n          height: \"var(--centerHeight)\"\n        }));\n        return inc(\"/lib/util/waitFrames/wait\")(3, function(){\n          var offset, obj, ref$;\n          offset = wrapper.offset();\n          obj = {\n            gameDescription: o.gameDescription,\n            backgroundColor: (ref$ = o.backgroundColor) != null ? ref$ : 0xffffff,\n            displayFPS: o.displayFPS,\n            width: offset.width,\n            height: offset.height,\n            sounds: typeof o.sounds == 'function' ? o.sounds() : void 8,\n            topBar: topbar,\n            setup: function(pixiApp){\n              var cb;\n              cb = function(textures){\n                pixiApp.textures = textures;\n                o.onLoaded(pixiApp);\n                return pixiApp.onLoaded();\n              };\n              if (o.svgs == null) {\n                cb();\n                return;\n              }\n              return inc(\"../pixi/svgTextureLoader/load\")({\n                svgs: o.svgs(pixiApp.width, pixiApp.height),\n                renderer: pixiApp.renderer,\n                callback: cb\n              });\n            }\n          };\n          return inc(\"../pixi/baseGame/create\")(obj).then(function(pixiApp){\n            o.page.pixiApp = pixiApp;\n            o.page.pixiApp.sendDebugGameEvent(\"gameStarted\");\n            return wrapper.html(o.page.pixiApp.canvas.css({\n              display: \"block\",\n              width: \"100%\",\n              height: \"100%\"\n            }));\n          });\n        });\n      }\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/basePage/closeConfirmationPopup/popup.ls","text":"(function(){\n  return function(pixiApp){\n    var div, popup;\n    div = Div({\n      width: \"20em\",\n      margin: \"1em 0\"\n    }).append(Div().html(T(\"reallyCloseGame\")).css({\n      margin: \"0 0.5em 0.5em 0.5em\"\n    }), Button({\n      label: T(\"no\"),\n      type: \"secondary\",\n      action: function(){\n        return popup.close();\n      }\n    }).css({\n      textAlign: \"center\",\n      width: \"5.5em\",\n      margin: \"0.5em\"\n    }), Button({\n      label: T(\"close\"),\n      action: function(){\n        if (pixiApp != null) {\n          pixiApp.sendDebugGameEvent(\"gameClosed\", {\n            type: \"topBar\"\n          });\n        }\n        popup.close();\n        return startPage({\n          path: path(\"../../../../04_gameEnd/page\"),\n          replace: true,\n          animation: \"fadeIn\",\n          params: app.currentPage.params\n        });\n      }\n    }).css({\n      textAlign: \"center\",\n      width: \"5.5em\",\n      margin: \"0.5em\"\n    }));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      onClose: function(){\n        var ref$;\n        return pixiApp != null ? (ref$ = pixiApp.sceneManager) != null ? ref$.resume() : void 8 : void 8;\n      }\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/basePage/topbar/topbar.ls","text":"(function(){\n  return function(o){\n    var topBar;\n    topBar = inc(\"/addons/topbarGame/topbar\")({\n      close: o.close\n    });\n    if (o.showHelp != null) {\n      topBar.showHelp = o.showHelp;\n    }\n    return topBar;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/add.ls","text":"(function(){\n  return function(){\n    return PIXI8.Helper.Color = {\n      fromRgbaString: inc(\"functions/fromRgbaString\"),\n      fromRGB: inc(\"functions/fromRGB\"),\n      fromHSB: inc(\"functions/fromHSB\"),\n      darkerColor: inc(\"functions/darkerColor\"),\n      lighterColor: inc(\"functions/lighterColor\"),\n      toHexString: inc(\"functions/toHexString\"),\n      fromHexString: inc(\"functions/fromHexString\"),\n      getRed: inc(\"functions/getRed\"),\n      getGreen: inc(\"functions/getGreen\"),\n      getBlue: inc(\"functions/getBlue\"),\n      Components: inc(\"functions/components\")(),\n      getComponents: inc(\"functions/getComponents\")\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/Helper/Color/functions/adjustedColor.ls","text":"(function(){\n  return function(color, ratio){\n    var r, g, b;\n    r = inc(\"getRed\")(color) * ratio;\n    g = inc(\"getGreen\")(color) * ratio;\n    b = inc(\"getBlue\")(color) * ratio;\n    return inc(\"fromRGB\")(r, g, b);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/popupHighscores/rows/rows.ls","text":"(function(){\n  return function(o){\n    var highscores, tableData, maxPosition, ref$, scrollDiv, d;\n    highscores = o.highscores;\n    tableData = highscores.firstBlock || [];\n    if (highscores.userBlock) {\n      tableData = _.concat(tableData, {\n        isSeparator: true\n      }, highscores.userBlock);\n    }\n    if (highscores.lastBlock) {\n      tableData = _.concat(tableData, {\n        isSeparator: true\n      }, highscores.lastBlock);\n    }\n    maxPosition = Math.max((ref$ = _.last(tableData)) != null ? ref$.position : void 8, 100);\n    o.positionWidth = (\"\" + maxPosition).length * 0.7 + \"em\";\n    scrollDiv = ScrollDiv().css({\n      flex: \"0 1 auto\"\n    }).append(tableData.length === 0\n      ? inc(\"rowNoData/row\")()\n      : (function(){\n        var i$, ref$, len$, results$ = [];\n        for (i$ = 0, len$ = (ref$ = tableData).length; i$ < len$; ++i$) {\n          d = ref$[i$];\n          if (d.isSeparator) {\n            results$.push(inc(\"rowSeparator/row\")());\n          } else {\n            results$.push(inc(\"rowUser/row\")(d, o));\n          }\n        }\n        return results$;\n      }()));\n    requestAnimationFrame(function(){\n      scrollDiv.scrollElementIntoView(scrollDiv.findFirst(\".currentUser\"), {\n        instant: true,\n        center: true\n      });\n      return requestAnimationFrame(function(){\n        var params, ref$;\n        params = {\n          enabled: true,\n          debug: false,\n          maxDurations: \"500 20 10\",\n          nearScopeSize: 1000\n        };\n        if (scrollDiv.setScopeRender != null) {\n          scrollDiv.setScopeRender(params);\n        } else {\n          scrollDiv.scopeRender = params;\n        }\n        return (ref$ = app.currentPopup) != null ? ref$.css({\n          opacity: 1\n        }) : void 8;\n      });\n    });\n    return scrollDiv;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/score.ls","text":"(function(){\n  return function(o){\n    var e, key, ref$, value;\n    e = {\n      event: inc(\"calc/eventName/calc\")(o.gameId),\n      score: o.score,\n      isDebug: engine.isDebug\n    };\n    if (o.additionalData != null) {\n      for (key in ref$ = o.additionalData) {\n        value = ref$[key];\n        e[key] = value;\n      }\n    }\n    return log.log(e);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/highscore/show.ls","text":"(function(){\n  return function(o){\n    var ref$, isCancelled, load, create;\n    o.highscoreType = (ref$ = o.highscoreType) != null ? ref$ : \"points\";\n    inc(\"calc/lastUserScore/calc\")(o);\n    inc(\"calc/periodAndUsersFilter/calc\")(o);\n    isCancelled = false;\n    load = function(){\n      return inc(\"load/load\")(o, create);\n    };\n    create = function(){\n      var ref$;\n      if ((ref$ = o.spinner) != null) {\n        ref$.remove();\n      }\n      if (isCancelled) {\n        return;\n      }\n      if (o.showLastUserScore) {\n        return inc(\"popupGameResult/popup\")(o);\n      } else {\n        return inc(\"popupHighscores/popup\")(o);\n      }\n    };\n    o.spinner = inc(\"/lib/gui/spinnerOverlay/overlay\")(function(){\n      isCancelled = true;\n      return typeof o.onClose == 'function' ? o.onClose() : void 8;\n    }).css({\n      pointerEvents: \"none\"\n    });\n    setTimeout(function(){\n      return o.spinner.css({\n        pointerEvents: \"inherit\"\n      });\n    }, 1000);\n    return load();\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/baseGame/soundPlayer/create.ls","text":"(function(){\n  return function(sounds){\n    var soundPlayer, ref$, key, sound, s;\n    soundPlayer = {\n      soundsEnabled: !((ref$ = log.findLast('setGameSoundDisabled')) != null && ref$.value)\n    };\n    soundPlayer.sounds = {};\n    for (key in sounds) {\n      sound = sounds[key];\n      s = inc(\"/lib/util/sound/sound\")({\n        base64: inc(sound.filename),\n        volume: sound.volume || 1,\n        isLoop: sound.isLoop\n      });\n      soundPlayer.sounds[key] = s;\n    }\n    soundPlayer.play = function(name, looping){\n      var ref$;\n      if (!soundPlayer.soundsEnabled) {\n        return;\n      }\n      looping = looping || false;\n      if ((ref$ = soundPlayer.sounds[name]) != null) {\n        ref$.play();\n      }\n    };\n    soundPlayer.stop = function(name){\n      var ref$;\n      if ((ref$ = soundPlayer.sounds[name]) != null) {\n        ref$.stop();\n      }\n    };\n    soundPlayer.stopAll = function(){\n      var key, ref$, sound;\n      for (key in ref$ = soundPlayer.sounds) {\n        sound = ref$[key];\n        if (typeof sound.stop == 'function') {\n          sound.stop();\n        }\n      }\n    };\n    soundPlayer.setSoundsEnabled = function(enabled){\n      soundPlayer.soundsEnabled = enabled;\n      if (!enabled) {\n        soundPlayer.stopAll();\n      }\n    };\n    return soundPlayer;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/button/create.ls","text":"(function(){\n  return function(o){\n    var button, ax, ay, backgroundVisible, needsSize, makeState, style, text, ref$;\n    button = new PIXI8.Container();\n    button.texture = o.texture;\n    ax = 0.5;\n    if (o.anchorX != null) {\n      ax = o.anchorX;\n    }\n    ay = 0.5;\n    if (o.anchorY != null) {\n      ay = o.anchorY;\n    }\n    button.pivot.set(ax, ay);\n    button.alive = true;\n    button.dx = 0;\n    button.dy = 0;\n    if (o.x != null) {\n      button.x = o.x;\n    }\n    if (o.y != null) {\n      button.y = o.y;\n    }\n    backgroundVisible = o.tint != null || o.texture != null;\n    if (o.texture == null) {\n      o.texture = PIXI8.Texture.WHITE;\n      needsSize = true;\n    }\n    button.background = inc(\"../sprite/create\")(o);\n    button.background.anchor.set(0.5);\n    button.background.x = 0;\n    button.background.y = 0;\n    if (!backgroundVisible) {\n      button.background.visible = false;\n    }\n    button.addChild(button.background);\n    makeState = function(highlighted){\n      if (highlighted) {\n        if (o.highlightedTexture != null) {\n          button.texture = o.highlightedTexture;\n        } else {\n          button.alpha = 0.5;\n        }\n      } else {\n        if (o.highlightedTexture != null) {\n          button.texture = o.texture;\n        } else {\n          button.alpha = 1;\n        }\n      }\n    };\n    if (o.text != null) {\n      if (o.textStyle != null) {\n        style = o.textStyle;\n      } else {\n        style = new PIXI8.TextStyle({\n          fontFamily: 'Source Sans Pro Solocode',\n          fontSize: 30,\n          fill: '#ffffff'\n        });\n      }\n      text = new PIXI8.Text({\n        text: o.text,\n        style: style\n      });\n      text.anchor.set(0.5);\n      button.addChild(text);\n      if (!!needsSize) {\n        button.background.width = text.width + 20 + ((ref$ = o.padding) != null ? ref$ : 0);\n        button.background.height = text.height + ((ref$ = o.padding) != null ? ref$ : 0);\n      }\n    }\n    button.interactive = true;\n    button.on('pointerdown', function(){\n      makeState(true);\n    });\n    button.on('pointerup', function(){\n      makeState(false);\n      o.onClick(button);\n    });\n    button.on('pointerupoutside', function(){\n      makeState(false);\n    });\n    return button;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/createAtlas/create.ls","text":"(function(){\n  return function(o, callback){\n    var svgs, total, loaded, textures, resolution, onTextureLoaded, loadTexture, path, svg, div, width, height, src, p, filename, name, done;\n    svgs = inc(o.projectFolder + \"/images/*.svg\", {\n      returnAsObject: true\n    });\n    total = _.keys(svgs).length;\n    loaded = 0;\n    textures = {};\n    resolution = o.renderer.resolution;\n    onTextureLoaded = function(){\n      loaded = loaded + 1;\n      if (loaded === total) {\n        return done();\n      }\n    };\n    loadTexture = function(name, src){\n      var img;\n      img = new Image();\n      img.src = src;\n      return img.onload = function(){\n        textures[name] = PIXI8.Texture.from(img);\n        return onTextureLoaded();\n      };\n    };\n    for (path in svgs) {\n      svg = svgs[path];\n      div = Div();\n      div.innerHTML = svg;\n      svg = div.firstChild;\n      width = Math.max(1, +svg.attr(\"width\") * resolution * o.scale);\n      height = Math.max(1, +svg.attr(\"height\") * resolution * o.scale);\n      svg.attr({\n        width: width,\n        height: height\n      });\n      svg = svg.outerHTML;\n      src = 'data:image/svg+xml;base64,' + window.btoa(svg);\n      p = path.split(\"/\");\n      filename = p[p.length - 1];\n      name = filename.replace(\".svg\", \"\");\n      loadTexture(name, src);\n    }\n    return done = function(){\n      var atlas;\n      atlas = new spine.TextureAtlas();\n      atlas.addTextureHash(textures, true);\n      o.atlas = atlas;\n      return callback();\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/draggableSprite/draggableSprite.ls","text":"(function(){\n  return function(o){\n    var sprite, touchStart, origin, onTouchDown, onTouchMove, onTouchUp;\n    sprite = inc(\"/pages/games/00_shared/pixiGame/pixi/sprite/create\")(o);\n    onTouchDown = function(event){\n      origin = {\n        x: sprite.position.x,\n        y: sprite.position.y\n      };\n      touchStart = {\n        x: event.global.x,\n        y: event.global.y\n      };\n      sprite.parent.setChildIndex(this, this.parent.children.length - 1);\n      return typeof o.onDragStart == 'function' ? o.onDragStart(sprite) : void 8;\n    };\n    onTouchMove = function(event){\n      if (touchStart != null) {\n        sprite.x = origin.x + (event.global.x - touchStart.x) / sprite.parent.scale.x;\n        sprite.y = origin.y + (event.global.y - touchStart.y) / sprite.parent.scale.y;\n        return typeof o.onDragMove == 'function' ? o.onDragMove(sprite) : void 8;\n      }\n    };\n    onTouchUp = function(event){\n      if (touchStart == null) {\n        return;\n      }\n      touchStart = undefined;\n      origin = undefined;\n      return typeof o.onDragEnd == 'function' ? o.onDragEnd(sprite) : void 8;\n    };\n    sprite.on('pointerdown', onTouchDown);\n    sprite.on('pointermove', onTouchMove);\n    sprite.on('pointerup', onTouchUp);\n    sprite.on('pointerupoutside', onTouchUp);\n    sprite.interactive = true;\n    return sprite;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/hintLabel/create.ls","text":"(function(){\n  return function(pixiApp, color){\n    var fontSize, hint;\n    fontSize = Math.min(pixiApp.width, pixiApp.height) * 0.04;\n    hint = new PIXI8.Text({\n      text: \"\",\n      style: new PIXI8.TextStyle({\n        fontFamily: \"Source Sans Pro Solocode\",\n        stroke: color,\n        fill: color,\n        fontSize: fontSize,\n        wordWrap: true,\n        wordWrapWidth: pixiApp.width * 0.9,\n        align: \"center\"\n      })\n    });\n    hint.anchor.set(0.5, 1);\n    hint.x = pixiApp.width / 2;\n    hint.y = pixiApp.height - fontSize;\n    hint.changeHint = function(){\n      return hint.text = T(\"hint\") + _.sample(pixiApp.gameDescription.tips);\n    };\n    return hint;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/keyboard/addListener.ls","text":"(function(){\n  return function(o){\n    var keyboard, keys;\n    keyboard = {};\n    keys = {};\n    keyboard.onKeyDown = function(event){\n      var ref$;\n      if ((ref$ = keys[event.keyCode]) != null ? ref$ : true) {\n        if (typeof o.onKeyDown == 'function') {\n          o.onKeyDown(event.keyCode);\n        }\n        keys[event.keyCode] = false;\n      }\n      event.preventDefault();\n    };\n    keyboard.onKeyUp = function(event){\n      if (!keys[event.keyCode]) {\n        o.onKeyUp(event.keyCode);\n        keys[event.keyCode] = true;\n      }\n      event.preventDefault();\n    };\n    window.addEventListener(\"keydown\", keyboard.onKeyDown, false);\n    window.addEventListener(\"keyup\", keyboard.onKeyUp, false);\n    keyboard.cleanup = function(){\n      window.removeEventListener(\"keydown\", keyboard.onKeyDown);\n      window.removeEventListener(\"keyup\", keyboard.onKeyUp);\n    };\n    return keyboard;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/toBottom.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.y = o.oldScene.sceneHeight * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/physicsEngine/physicsEngine.ls","text":"(function(){\n  return function(o){\n    var physicsEngine, velocityIterations, ref$, positionIterations, ref1$, ref2$, contactListener;\n    physicsEngine = {\n      scaleFactor: o.scaleFactor || 1\n    };\n    velocityIterations = (ref$ = o.velocityIterations) != null ? ref$ : 1;\n    positionIterations = (ref$ = o.positionIterations) != null ? ref$ : 1;\n    physicsEngine.world = new box2d.b2World(new box2d.b2Vec2((ref$ = (ref1$ = o.gravity) != null ? ref1$.x : void 8) != null ? ref$ : 0, (ref$ = (ref2$ = o.gravity) != null ? ref2$.y : void 8) != null ? ref$ : 0), true);\n    physicsEngine.addSprite = function(sprite, bodyOptions, fixDef){\n      var ref$, bodyDef;\n      bodyOptions = bodyOptions || {};\n      if (bodyOptions.position == null) {\n        if (sprite.anchor != null) {\n          bodyOptions.position = [(sprite.x + sprite.width * (0.5 - ((ref$ = sprite.anchor.x) != null ? ref$ : 0.5))) / o.scaleFactor, (sprite.y + sprite.height * (0.5 - ((ref$ = sprite.anchor.y) != null ? ref$ : 0.5))) / o.scaleFactor];\n        } else {\n          bodyOptions.position = [sprite.x / o.scaleFactor, sprite.y / o.scaleFactor];\n        }\n        bodyOptions.position[0] = +bodyOptions.position[0].toFixed(10);\n        bodyOptions.position[1] = +bodyOptions.position[1].toFixed(10);\n        console.log('body pos', sprite.x, sprite.y, sprite.width, sprite.height);\n        console.log('body pos', bodyOptions.position);\n      }\n      bodyDef = new box2d.b2BodyDef();\n      if (bodyOptions['static']) {\n        bodyDef.type = box2d.b2BodyType.b2_staticBody;\n      } else {\n        bodyDef.type = box2d.b2BodyType.b2_dynamicBody;\n      }\n      bodyDef.position.x = bodyOptions.position[0];\n      bodyDef.position.y = bodyOptions.position[1];\n      sprite.body = physicsEngine.world.CreateBody(bodyDef);\n      if (fixDef.shape != null) {\n        sprite.body.CreateFixture(fixDef);\n      } else {\n        sprite.body.CreateFixture(fixDef, 0);\n      }\n      sprite.body.sprite = sprite;\n    };\n    physicsEngine.removeSprite = function(sprite){\n      return physicsEngine.world.DestroyBody(sprite.body);\n    };\n    physicsEngine.update = function(dt){\n      var body, sprite, pos;\n      physicsEngine.world.Step(dt, velocityIterations, positionIterations);\n      body = physicsEngine.world.GetBodyList();\n      while (body) {\n        if (sprite = body.sprite) {\n          pos = body.GetWorldCenter();\n          if (sprite.anchor != null) {\n            sprite.x = pos.x * o.scaleFactor - sprite.width * (0.5 - sprite.anchor.x);\n            sprite.y = pos.y * o.scaleFactor - sprite.height * (0.5 - sprite.anchor.y);\n          } else {\n            sprite.x = pos.x * o.scaleFactor;\n            sprite.y = pos.y * o.scaleFactor;\n          }\n          sprite.rotation = body.GetAngle();\n        }\n        body = body.GetNext();\n      }\n    };\n    contactListener = new box2d.b2ContactListener();\n    contactListener.BeginContact = function(contact){\n      var s1, s2;\n      s1 = contact.GetFixtureA().GetBody().sprite;\n      s2 = contact.GetFixtureB().GetBody().sprite;\n      return physicsEngine.onBeginContact(s1, s2);\n    };\n    contactListener.EndContact = function(contact){\n      var s1, s2;\n      s1 = contact.GetFixtureA().GetBody().sprite;\n      s2 = contact.GetFixtureB().GetBody().sprite;\n      return physicsEngine.onEndContact(s1, s2);\n    };\n    physicsEngine.world.SetContactListener(contactListener);\n    physicsEngine.onBeginContact = function(s1, s2){};\n    physicsEngine.onEndContact = function(s1, s2){};\n    physicsEngine.cleanup = function(){\n      var ref$;\n      physicsEngine.world.SetContactListener(undefined);\n      delete physicsEngine.world;\n      delete contactListener.BeginContact;\n      delete contactListener.EndContact;\n      contactListener = undefined;\n      delete physicsEngine.onBeginContact;\n      return ref$ = physicsEngine.onEndContact, delete physicsEngine.onEndContact, ref$;\n    };\n    return physicsEngine;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/scene/create.ls","text":"(function(){\n  return function(o){\n    var scene, pointerdown, pointermove, pointerup, keyboard, bg;\n    scene = new PIXI8.Container();\n    scene.sceneWidth = o.width;\n    scene.sceneHeight = o.height;\n    scene.paused = false;\n    scene.isRunning = false;\n    scene.start = function(){};\n    scene.update = function(delta){};\n    scene.onTouchDown = function(x, y){};\n    scene.onTouchMove = function(x, y, isDrag){};\n    scene.onTouchUp = function(x, y){};\n    scene.onKeyDown = function(keyCode){};\n    scene.onKeyUp = function(keyCode){};\n    scene.onCleanUp = function(){};\n    scene.resumeSound = function(){};\n    scene.onRetrySelected = function(){};\n    scene.onPause = function(){};\n    scene.onResume = function(){};\n    pointerdown = function(event){\n      if (!scene.paused && scene.isRunning) {\n        scene.onTouchDown(event.global.x, event.global.y);\n      }\n    };\n    pointermove = function(event){\n      var isDrag;\n      if (!scene.paused && scene.isRunning) {\n        isDrag = event.pointerType !== \"mouse\" || event.buttons > 0;\n        scene.onTouchMove(event.global.x, event.global.y, isDrag);\n      }\n    };\n    pointerup = function(event){\n      if (!scene.paused && scene.isRunning) {\n        scene.onTouchUp(event.global.x, event.global.y);\n      }\n    };\n    scene.cleanup = function(){\n      scene.onCleanUp();\n      keyboard.cleanup();\n      keyboard = undefined;\n      bg.off('pointerdown', pointerdown);\n      bg.off('pointermove', pointermove);\n      bg.off('pointerup', pointerup);\n      pointerup = undefined;\n      pointerdown = undefined;\n      pointermove = undefined;\n      scene.destroy({\n        children: true\n      });\n      return \"baseSceneCleanupDone\";\n    };\n    keyboard = inc(\"../keyboard/addListener\")({\n      onKeyUp: function(keyCode){\n        if (scene.isRunning) {\n          scene.onKeyUp(keyCode);\n        }\n      },\n      onKeyDown: function(keyCode){\n        if (scene.isRunning) {\n          scene.onKeyDown(keyCode);\n        }\n      }\n    });\n    bg = inc(\"../sprite/create\")({\n      texture: PIXI8.Texture.WHITE,\n      tint: o.backgroundColor,\n      anchorX: 0,\n      anchorY: 0\n    });\n    bg.interactive = true;\n    bg.on('pointerdown', pointerdown);\n    bg.on('pointermove', pointermove);\n    bg.on('pointerup', pointerup);\n    bg.width = scene.sceneWidth;\n    bg.height = scene.sceneHeight;\n    scene.addChild(bg);\n    scene.backgroundSprite = bg;\n    return scene;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/create.ls","text":"(function(){\n  return function(stage){\n    var DEFAULT_TRANSITION_DURATION, sceneManager;\n    DEFAULT_TRANSITION_DURATION = 0.3;\n    sceneManager = {};\n    sceneManager.Transitions = inc(\"transitions/transitions\")();\n    sceneManager.paused = false;\n    sceneManager.stack = [];\n    sceneManager.currentScene = null;\n    sceneManager.stage = stage;\n    sceneManager.transition = undefined;\n    sceneManager.cleanScene = function(scene){\n      sceneManager.stage.removeChild(scene);\n      if (scene.cleanup() !== \"baseSceneCleanupDone\") {\n        debug(\"did you overwrite scene.cleanup()? use onCleanUp() instead!\");\n      }\n    };\n    sceneManager.cleanup = function(){\n      sceneManager.cleanStack();\n    };\n    sceneManager.cleanStack = function(){\n      var i$, ref$, len$, scene;\n      for (i$ = 0, len$ = (ref$ = sceneManager.stack).length; i$ < len$; ++i$) {\n        scene = ref$[i$];\n        sceneManager.cleanScene(scene);\n      }\n      sceneManager.stack = [];\n      sceneManager.currentScene = null;\n    };\n    sceneManager.showScene = function(scene){\n      sceneManager.stage.addChild(scene);\n    };\n    sceneManager.setScene = function(scene){\n      sceneManager.cleanStack();\n      sceneManager.currentScene = scene;\n      sceneManager.stack = [sceneManager.currentScene];\n      sceneManager.showScene(scene);\n      sceneManager.currentScene.isRunning = true;\n      sceneManager.currentScene.start();\n    };\n    sceneManager.pushScene = function(scene, transition, duration){\n      if (deepEq$(transition, undefined, '===')) {\n        transition = sceneManager.Transitions.NONE;\n        duration = 0;\n      }\n      if (transition !== sceneManager.Transitions.NONE) {\n        if (deepEq$(duration, undefined, '===')) {\n          duration = DEFAULT_TRANSITION_DURATION;\n        }\n      }\n      scene.paused = true;\n      sceneManager.currentScene.paused = true;\n      sceneManager.currentScene.isRunning = false;\n      sceneManager.showScene(scene);\n      sceneManager.transition = transition({\n        newScene: scene,\n        oldScene: sceneManager.currentScene,\n        duration: duration,\n        transitionCompleted: function(){\n          sceneManager.transition = undefined;\n          sceneManager.stage.removeChild(sceneManager.currentScene);\n          sceneManager.currentScene = scene;\n          sceneManager.stack.push(scene);\n          sceneManager.currentScene.paused = false;\n          sceneManager.currentScene.isRunning = true;\n          return sceneManager.currentScene.start();\n        }\n      });\n    };\n    sceneManager.replaceScene = function(scene, transition, duration){\n      if (deepEq$(transition, undefined, '===')) {\n        transition = sceneManager.Transitions.NONE;\n        duration = 0;\n      }\n      if (transition !== sceneManager.Transitions.NONE) {\n        if (deepEq$(duration, undefined, '===')) {\n          duration = DEFAULT_TRANSITION_DURATION;\n        }\n      }\n      scene.paused = true;\n      sceneManager.currentScene.paused = true;\n      sceneManager.currentScene.isRunning = false;\n      sceneManager.showScene(scene);\n      sceneManager.transition = transition({\n        newScene: scene,\n        oldScene: sceneManager.currentScene,\n        duration: duration,\n        transitionCompleted: function(){\n          var ref$;\n          sceneManager.transition = undefined;\n          sceneManager.cleanScene(sceneManager.currentScene);\n          sceneManager.currentScene = scene;\n          (ref$ = sceneManager.stack)[ref$.length - 1] = scene;\n          sceneManager.currentScene.paused = false;\n          sceneManager.currentScene.isRunning = true;\n          return sceneManager.currentScene.start();\n        }\n      });\n    };\n    sceneManager.popScene = function(transition, duration){\n      var oldScene;\n      if (sceneManager.stack.length < 2) {\n        debug(\"can't pop scene, stacksize is only \" + sceneManager.stack.length);\n        return;\n      }\n      if (deepEq$(transition, undefined, '===')) {\n        transition = sceneManager.Transitions.NONE;\n        duration = 0;\n      }\n      if (transition !== sceneManager.Transitions.NONE) {\n        if (deepEq$(duration, undefined, '===')) {\n          duration = DEFAULT_TRANSITION_DURATION;\n        }\n      }\n      oldScene = sceneManager.stack.pop();\n      sceneManager.currentScene = sceneManager.stack[sceneManager.stack.length - 1];\n      sceneManager.stage.addChild(sceneManager.currentScene);\n      sceneManager.stage.swapChildren(oldScene, sceneManager.currentScene);\n      oldScene.paused = true;\n      oldScene.isRunning = false;\n      sceneManager.currentScene.paused = true;\n      sceneManager.transition = transition({\n        newScene: sceneManager.currentScene,\n        oldScene: oldScene,\n        duration: duration,\n        transitionCompleted: function(){\n          sceneManager.transition = undefined;\n          sceneManager.cleanScene(oldScene);\n          sceneManager.currentScene.paused = false;\n          sceneManager.currentScene.isRunning = true;\n          return sceneManager.currentScene.start();\n        }\n      });\n    };\n    sceneManager.pause = function(){\n      var ref$, ref1$;\n      sceneManager.paused = true;\n      if ((ref$ = sceneManager.currentScene) != null) {\n        ref$.isRunning = false;\n      }\n      if ((ref1$ = sceneManager.currentScene) != null) {\n        ref1$.onPause();\n      }\n    };\n    sceneManager.resume = function(){\n      var ref$, ref1$;\n      sceneManager.paused = false;\n      if ((ref$ = sceneManager.currentScene) != null) {\n        ref$.isRunning = true;\n      }\n      if ((ref1$ = sceneManager.currentScene) != null) {\n        ref1$.onResume();\n      }\n    };\n    sceneManager.update = function(delta){\n      var ref$, ref1$;\n      if (sceneManager.paused) {\n        return;\n      }\n      if (sceneManager.transition != null) {\n        sceneManager.transition.update(delta);\n        return;\n      }\n      if (!((ref$ = sceneManager.currentScene) != null && ref$.paused)) {\n        if ((ref1$ = sceneManager.currentScene) != null) {\n          ref1$.update(delta);\n        }\n      }\n    };\n    return sceneManager;\n  };\n})();\nfunction deepEq$(x, y, type){\n  var toString = {}.toString, hasOwnProperty = {}.hasOwnProperty,\n      has = function (obj, key) { return hasOwnProperty.call(obj, key); };\n  var first = true;\n  return eq(x, y, []);\n  function eq(a, b, stack) {\n    var className, length, size, result, alength, blength, r, key, ref, sizeB;\n    if (a == null || b == null) { return a === b; }\n    if (a.__placeholder__ || b.__placeholder__) { return true; }\n    if (a === b) { return a !== 0 || 1 / a == 1 / b; }\n    className = toString.call(a);\n    if (toString.call(b) != className) { return false; }\n    switch (className) {\n      case '[object String]': return a == String(b);\n      case '[object Number]':\n        return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);\n      case '[object Date]':\n      case '[object Boolean]':\n        return +a == +b;\n      case '[object RegExp]':\n        return a.source == b.source &&\n               a.global == b.global &&\n               a.multiline == b.multiline &&\n               a.ignoreCase == b.ignoreCase;\n    }\n    if (typeof a != 'object' || typeof b != 'object') { return false; }\n    length = stack.length;\n    while (length--) { if (stack[length] == a) { return true; } }\n    stack.push(a);\n    size = 0;\n    result = true;\n    if (className == '[object Array]') {\n      alength = a.length;\n      blength = b.length;\n      if (first) {\n        switch (type) {\n        case '===': result = alength === blength; break;\n        case '<==': result = alength <= blength; break;\n        case '<<=': result = alength < blength; break;\n        }\n        size = alength;\n        first = false;\n      } else {\n        result = alength === blength;\n        size = alength;\n      }\n      if (result) {\n        while (size--) {\n          if (!(result = size in a == size in b && eq(a[size], b[size], stack))){ break; }\n        }\n      }\n    } else {\n      if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) {\n        return false;\n      }\n      for (key in a) {\n        if (has(a, key)) {\n          size++;\n          if (!(result = has(b, key) && eq(a[key], b[key], stack))) { break; }\n        }\n      }\n      if (result) {\n        sizeB = 0;\n        for (key in b) {\n          if (has(b, key)) { ++sizeB; }\n        }\n        if (first) {\n          if (type === '<<=') {\n            result = size < sizeB;\n          } else if (type === '<==') {\n            result = size <= sizeB\n          } else {\n            result = size === sizeB;\n          }\n        } else {\n          first = false;\n          result = size === sizeB;\n        }\n      }\n    }\n    stack.pop();\n    return result;\n  }\n}","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/alphaZoomIn.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.newScene.sceneWidth;\n    h = o.newScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.newScene.alpha = percentage;\n      o.newScene.scale.set(1.5 - 0.5 * percentage);\n      o.newScene.x = (w - o.newScene.sceneWidth * o.newScene.scale.x) / 2;\n      o.newScene.y = (h - o.newScene.sceneHeight * o.newScene.scale.y) / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/baseTransiton.ls","text":"(function(){\n  return function(o){\n    var resetScene, prepareScene, transition;\n    resetScene = function(scene){\n      scene.rotation = 0;\n      scene.scale.set(1);\n      scene.alpha = 1;\n      scene.pivot.set(0);\n      scene.x = 0;\n      scene.y = 0;\n      scene.removeChild(scene.mask);\n      scene.mask = null;\n    };\n    prepareScene = function(scene){\n      var mask;\n      mask = new PIXI8.Graphics();\n      mask.beginFill(0);\n      mask.drawRect(0, 0, scene.sceneWidth, scene.sceneHeight);\n      mask.endFill();\n      scene.addChild(mask);\n      scene.mask = mask;\n    };\n    transition = {};\n    transition.time = 0;\n    transition.duration = o.duration;\n    transition.updateState = function(percentComplete){};\n    transition.update = function(delta){\n      var percentComplete;\n      transition.time += delta;\n      if (transition.duration === 0) {\n        percentComplete = 1;\n      } else {\n        percentComplete = Math.min(1, transition.time / transition.duration);\n      }\n      transition.updateState(percentComplete);\n      if (percentComplete === 1) {\n        resetScene(o.newScene);\n        resetScene(o.oldScene);\n        o.transitionCompleted();\n      }\n    };\n    transition.prepare = function(){\n      prepareScene(o.newScene);\n      prepareScene(o.oldScene);\n      transition.updateState(0);\n    };\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/fadeIn.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.alpha = percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/fadeOut.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.alpha = 1 - percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/fadeOutIn.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.alpha = 1 - Math.min(1, 2 * percentage);\n      o.newScene.alpha = Math.max(0, 2 * (percentage - 0.5));\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/fromBottom.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.y = o.newScene.sceneHeight * (1 - percentage);\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/fromLeft.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.x = -o.newScene.sceneWidth * (1 - percentage);\n      o.oldScene.x = o.oldScene.sceneWidth * percentage / 4;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/fromRight.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.x = o.newScene.sceneWidth * (1 - percentage);\n      o.oldScene.x = -o.oldScene.sceneWidth * percentage / 4;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/fromTop.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.y = -o.newScene.sceneHeight * (1 - percentage);\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/toLeft.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.oldScene.x = -o.oldScene.sceneWidth * percentage;\n      o.newScene.x = o.newScene.sceneWidth / 3 - o.newScene.sceneWidth * percentage / 3;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/popShrinkGrow.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.newScene.sceneWidth;\n    h = o.newScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.oldScene.scale.set(1 - percentage);\n      o.newScene.scale.set(percentage);\n      o.oldScene.y = (h - o.oldScene.sceneHeight * o.oldScene.scale.y) / 2;\n      o.newScene.y = (h - o.newScene.sceneHeight * o.newScene.scale.y) / 2;\n      o.newScene.x = (w - o.newScene.sceneWidth * o.newScene.scale.x) / 2 - (1 - percentage) * w / 4;\n      o.oldScene.x = (w - o.oldScene.sceneWidth * o.oldScene.scale.x) / 2 + w / 4 + (1 - percentage) * w / 4;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/pushShrinkGrow.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.newScene.sceneWidth;\n    h = o.newScene.sceneHeight;\n    transition.updateState = function(percentage){\n      o.oldScene.scale.set(1 - percentage);\n      o.newScene.scale.set(percentage);\n      o.oldScene.y = (h - o.oldScene.sceneHeight * o.oldScene.scale.y) / 2;\n      o.newScene.y = (h - o.newScene.sceneHeight * o.newScene.scale.y) / 2;\n      o.oldScene.x = (w - o.oldScene.sceneWidth * o.oldScene.scale.x) / 2 - percentage * w / 4;\n      o.newScene.x = (w - o.newScene.sceneWidth * o.newScene.scale.x) / 2 + w / 4 - percentage * w / 4;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/rotateZoomIn.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.newScene.sceneWidth;\n    h = o.newScene.sceneHeight;\n    o.newScene.pivot.set(w / 2, h / 2);\n    transition.updateState = function(percentage){\n      o.newScene.scale.set(percentage);\n      o.newScene.rotation = -percentage * 4 * Math.PI;\n      o.newScene.x = w / 2;\n      o.newScene.y = h / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/rotateZoomOut.ls","text":"(function(){\n  return function(o){\n    var transition, w, h;\n    transition = inc(\"baseTransiton\")(o);\n    w = o.oldScene.sceneWidth;\n    h = o.oldScene.sceneHeight;\n    o.oldScene.pivot.set(w / 2, h / 2);\n    transition.updateState = function(percentage){\n      o.oldScene.scale.set(1 - percentage);\n      o.oldScene.rotation = percentage * 4 * Math.PI;\n      o.oldScene.x = w / 2;\n      o.oldScene.y = h / 2;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/slideFromBottom.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.y = o.newScene.sceneHeight * (1 - percentage);\n      o.oldScene.y = -o.oldScene.sceneHeight * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/slideFromLeft.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.x = -o.newScene.sceneWidth * (1 - percentage);\n      o.oldScene.x = o.oldScene.sceneWidth * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sceneManager/transitions/slideFromRight.ls","text":"(function(){\n  return function(o){\n    var transition;\n    transition = inc(\"baseTransiton\")(o);\n    transition.updateState = function(percentage){\n      o.newScene.x = o.newScene.sceneWidth * (1 - percentage);\n      o.oldScene.x = -o.oldScene.sceneWidth * percentage;\n    };\n    transition.prepare();\n    return transition;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/spineSprite/create.ls","text":"(function(){\n  var cache;\n  cache = {};\n  return function(o){\n    var calculateScale;\n    calculateScale = function(){\n      var json, width, height;\n      json = JSON.parse(inc(o.projectFolder + \"/skeleton.json\"));\n      width = json.skeleton.width;\n      height = json.skeleton.height;\n      return Math.min(o.width / width, o.height / height);\n    };\n    o.scale = calculateScale();\n    return inc(\"../createAtlas/create\")(o, function(){\n      var spine;\n      spine = inc(\"/lib/gui/pixiSpineCanvas/createSpine/create\")(o);\n      if (o.skin) {\n        spine.skeleton.setSkinByName(o.skin);\n      }\n      spine.state.clearTracks();\n      spine.skeleton.setToSetupPose();\n      spine.autoUpdate = true;\n      spine.update(0);\n      spine.alive = true;\n      spine.dx = 0;\n      spine.dy = 0;\n      return o.onDone(spine);\n    });\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/spineTextureConverter/convert.ls","text":"(function(){\n  return function(o){\n    var fps, texture, calculateSize, size, textures, i$, ref$, len$, anim, animEnd, numFrames, frameLength, animTextures, j$, to$, frame, text, obj;\n    fps = o.fps || 10;\n    texture = function(renderer, spine, size){\n      var resolution, brt, rt;\n      resolution = window.devicePixelRatio;\n      brt = new PIXI8.BaseRenderTexture(size.width, size.height, PIXI8.SCALE_MODES.LINEAR, resolution);\n      rt = new PIXI8.RenderTexture(brt);\n      spine.x = size.width / 2;\n      spine.y = size.height;\n      renderer.render(spine, rt);\n      return rt;\n    };\n    calculateSize = function(){\n      var width, height, i$, ref$, len$, anim, animEnd, numFrames, frameLength, j$, to$, frame, size;\n      width = 0;\n      height = 0;\n      for (i$ = 0, len$ = (ref$ = o.animations).length; i$ < len$; ++i$) {\n        anim = ref$[i$];\n        o.spine.state.setAnimation(0, anim, false);\n        animEnd = o.spine.state.tracks[0].animationEnd;\n        numFrames = Math.floor(animEnd / (1 / fps));\n        frameLength = animEnd / numFrames;\n        for (j$ = 0, to$ = numFrames - 1; j$ <= to$; ++j$) {\n          frame = j$;\n          o.spine.state.tracks[0].time = frame * frameLength;\n          width = Math.max(width, o.spine.width);\n          height = Math.max(height, o.spine.height);\n        }\n      }\n      return size = {\n        width: width,\n        height: height\n      };\n    };\n    size = calculateSize();\n    textures = {};\n    for (i$ = 0, len$ = (ref$ = o.animations).length; i$ < len$; ++i$) {\n      anim = ref$[i$];\n      o.spine.state.setAnimation(0, anim, false);\n      animEnd = o.spine.state.tracks[0].animationEnd;\n      numFrames = Math.floor(animEnd / (1 / fps));\n      frameLength = animEnd / numFrames;\n      animTextures = [];\n      for (j$ = 0, to$ = numFrames - 1; j$ <= to$; ++j$) {\n        frame = j$;\n        o.spine.state.tracks[0].time = frame * frameLength;\n        text = texture(o.renderer, o.spine, size);\n        animTextures.push(text);\n      }\n      textures[anim] = {\n        time: animEnd,\n        maxFrames: numFrames,\n        frames: animTextures\n      };\n    }\n    obj = {\n      textures: textures,\n      size: size\n    };\n    return o.callback(obj);\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/sprite/create.ls","text":"(function(){\n  return function(o){\n    var sprite, ax, ref$, ay;\n    sprite = PIXI8.Sprite.from(o.texture);\n    sprite.width = o.texture.width / window.devicePixelRatio;\n    sprite.height = o.texture.height / window.devicePixelRatio;\n    ax = (ref$ = o.anchorX) != null ? ref$ : 0.5;\n    ay = (ref$ = o.anchorY) != null ? ref$ : 0.5;\n    sprite.anchor.set(ax, ay);\n    sprite.x = (ref$ = o.x) != null ? ref$ : 0;\n    sprite.y = (ref$ = o.y) != null ? ref$ : 0;\n    sprite.dx = (ref$ = o.dx) != null ? ref$ : 0;\n    sprite.dy = (ref$ = o.dy) != null ? ref$ : 0;\n    if (o.tint != null) {\n      sprite.tint = o.tint;\n    }\n    sprite.alive = true;\n    sprite.initialScale = {\n      x: sprite.scale.x,\n      y: sprite.scale.y\n    };\n    return sprite;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/spriteCache/cache.ls","text":"(function(){\n  return function(o){\n    var caches, k, v;\n    caches = {};\n    for (k in o) {\n      v = o[k];\n      caches[k] = v.strategy === \"failing\"\n        ? inc(\"cacheFailing/cache\")(v)\n        : v.strategy === \"aggressive\" ? inc(\"cacheAgressive/cache\")(v) : void 8;\n    }\n    caches.get = function(key, construct){\n      if (caches[key]) {\n        return caches[key].get(construct);\n      } else {\n        return debug(\"no cache found '\" + key + \"'\");\n      }\n    };\n    return caches;\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"pages/games/00_shared/pixiGameV8/pixi/spriteCache/cacheAgressive/cache.ls","text":"(function(){\n  return function(o){\n    var cache, maxCacheSize, currentIndex;\n    cache = [];\n    maxCacheSize = o.maxSize;\n    currentIndex = 0;\n    return {\n      get: function(construct){\n        var c;\n        c = cache[currentIndex];\n        if (!c) {\n          c = construct();\n          cache[currentIndex] = c;\n        }\n        currentIndex = (currentIndex + 1) % maxCacheSize;\n        return c;\n      }\n    };\n  };\n})();","updated":"2026-03-23T13:18:19.93242"},{"path":"lib/util/soundNext/createSoundParts/soundPart/soundPart.ls","text":"(function(){\n  return function(s, b, index, onInitialized){\n    var sp, ref$;\n    sp = {};\n    sp.s = s;\n    sp.index = index;\n    sp.base64 = b.base64;\n    sp.gain = (ref$ = b.gain) != null ? ref$ : 1;\n    sp.gainOriginal = (ref$ = b.gain) != null ? ref$ : 1;\n    sp.onProgress = s.onProgress;\n    sp.onEnd = s.playNextSoundPart;\n    sp.stop = function(){\n      var ref$;\n      return (ref$ = sp.sound) != null ? ref$.stop() : void 8;\n    };\n    sp.fadeOut = function(duration){\n      var ref$;\n      return (ref$ = sp.sound) != null ? ref$.fadeout(duration) : void 8;\n    };\n    sp.play = async function(){\n      sp.audioContext = sound.audioContext;\n      if (sp.speedFactor !== 1) {\n        sp.sound = (await inc(\"sound/stretch/sound\")(sp));\n        if (s.isPlaying) {\n          return sp.sound.play();\n        }\n      } else {\n        sp.sound = inc(\"sound/normal/sound\")(sp);\n        return sp.sound.play();\n      }\n    };\n    inc(\"createAudioData/create\")(s, sp, onInitialized);\n    return sp;\n  };\n})();","updated":"2026-03-23T16:21:30.749559"},{"path":"lib/util/soundNext/createSoundParts/soundPart/sound/normal/sound.ls","text":"(function(){\n  return function(p){\n    var source, baseSound, play, onFrame;\n    source = inc(\"createSource/create\")(p.audioData);\n    baseSound = inc(\"../_baseSound/sound\")(source, p);\n    play = function(){\n      p.startTime = new Date();\n      p.isPlaying = true;\n      source.loop = p.isLoop;\n      source.playbackRate.value = p.pitchFactor;\n      baseSound.connectChain();\n      if (source.start) {\n        source.start(0, p.playFromPosition / 1000);\n      } else if (source.play) {\n        source.play(0, p.playFromPosition / 1000);\n      } else if (source.noteOn) {\n        source.noteOn(0, p.playFromPosition / 1000);\n      }\n      if (!p.isLoop) {\n        p.timeout = setTimeout(baseSound.onTimeout, p.duration - p.playFromPosition);\n      }\n      return onFrame();\n    };\n    onFrame = function(){\n      p.currentTime = new Date() - p.startTime;\n      p.currentTime += p.playFromPosition;\n      if (!p.isPlaying || p.currentTime >= p.duration) {\n        return;\n      }\n      baseSound.onProgress();\n      return requestAnimationFrame(onFrame);\n    };\n    return {\n      play: play,\n      stop: baseSound.stop,\n      fadeout: baseSound.fadeout\n    };\n  };\n})();","updated":"2026-03-24T09:01:38.932678"},{"path":"addons/topbarLevel/speedFactorIcon/loadSoundStretchProject/load.ls","text":"(function(){\n  return function(speedFactorIcon, isNotSupportedVersion, onLoaded){\n    if (window.signalsmithStretch != null || isNotSupportedVersion) {\n      onLoaded();\n      return;\n    }\n    return projects.loadProjects({\n      projectDescriptions: [{\n        project: \"sound-stretch\"\n      }],\n      onProjectMissingError: function(){\n        speedFactorIcon.soundStretchProjectMissing = true;\n        inc(\"/../app01/lib/util/cache/set/set\")(\"soundSpeedFactor\", 1);\n        return onLoaded();\n      },\n      onDone: function(){\n        var e;\n        speedFactorIcon.soundStretchProjectMissing = false;\n        try {\n          inc(\"/../sound-stretch/init\")();\n        } catch (e$) {\n          e = e$;\n          speedFactorIcon.isNotSupportedVersion = true;\n        }\n        return onLoaded();\n      }\n    });\n  };\n})();","updated":"2026-03-26T07:47:31.015501"},{"path":"addons/topbarLevel/speedFactorIcon/icon.ls","text":"(function(){\n  return function(page){\n    var isNotSupportedVersion, ref$, items, soundSpeedFactor, ref1$, onLoaded, loadSoundStretchProject, div, iconDiv;\n    isNotSupportedVersion = ((ref$ = sound.audioContext) != null ? ref$.audioWorklet : void 8) == null;\n    items = inc(\"_shared/items/items\");\n    soundSpeedFactor = (ref1$ = inc(\"/lib/util/cache/get/get\")(\"soundSpeedFactor\")) != null ? ref1$ : 1;\n    page.soundSpeedFactorId = _.find(items, function(item){\n      return item.soundSpeedFactor === soundSpeedFactor;\n    }).id;\n    onLoaded = function(){\n      return inc(\"onLoaded/on\")(page, div);\n    };\n    loadSoundStretchProject = function(){\n      return inc(\"loadSoundStretchProject/load\")(div, isNotSupportedVersion, onLoaded);\n    };\n    div = Div({\n      flex: \"0 0 2.5em\",\n      display: \"flex\"\n    }).html(iconDiv = inc(\"_shared/calcSvgIcon/calc\")(page)).tap({\n      up: loadSoundStretchProject,\n      animation: \"hover\"\n    });\n    div.isNotSupportedVersion = isNotSupportedVersion;\n    div.iconDiv = iconDiv;\n    div.updateIcon = function(){\n      return inc(\"updateIcon/update\")(page, div);\n    };\n    return div;\n  };\n})();","updated":"2026-03-26T07:47:31.015501"},{"path":"lib/util/formatDate2/_t.ls","text":"(function(){\n  return {\n    minute: {\n      de: \"Minute\",\n      en: \"minute\",\n      fr: \"minute\",\n      es: \"minuto\",\n      pt: \"minuto\"\n    },\n    minutes: {\n      de: \"Minuten\",\n      en: \"minutes\",\n      fr: \"minutes\",\n      es: \"minutos\",\n      pt: \"minutos\"\n    },\n    hour: {\n      de: \"Stunde\",\n      en: \"hour\",\n      fr: \"heure\",\n      es: \"hora\",\n      pt: \"hora\"\n    },\n    hours: {\n      de: \"Stunden\",\n      en: \"hours\",\n      fr: \"heures\",\n      es: \"horas\",\n      pt: \"horas\"\n    },\n    day: {\n      de: \"Tag\",\n      en: \"day\",\n      fr: \"jour\",\n      es: \"día\",\n      pt: \"dia\"\n    },\n    days: {\n      de: \"Tage\",\n      en: \"days\",\n      fr: \"jours\",\n      es: \"días\",\n      pt: \"dias\"\n    },\n    month: {\n      de: \"Monat\",\n      en: \"month\",\n      fr: \"mois\",\n      es: \"mes\",\n      pt: \"mês\"\n    },\n    months: {\n      de: \"Monate\",\n      en: \"months\",\n      fr: \"mois\",\n      es: \"meses\",\n      pt: \"meses\"\n    },\n    year: {\n      de: \"Jahr\",\n      en: \"year\",\n      fr: \"an\",\n      es: \"año\",\n      pt: \"ano\"\n    },\n    years: {\n      de: \"Jahre\",\n      en: \"years\",\n      fr: \"ans\",\n      es: \"años\",\n      pt: \"anos\"\n    },\n    january: {\n      de: \"Januar\",\n      en: \"January\",\n      fr: \"janvier\",\n      es: \"enero\",\n      pt: \"janeiro\"\n    },\n    february: {\n      de: \"Februar\",\n      en: \"February\",\n      fr: \"février\",\n      es: \"febrero\",\n      pt: \"fevereiro\"\n    },\n    march: {\n      de: \"März\",\n      en: \"March\",\n      fr: \"mars\",\n      es: \"marzo\",\n      pt: \"março\"\n    },\n    april: {\n      de: \"April\",\n      en: \"April\",\n      fr: \"avril\",\n      es: \"abril\",\n      pt: \"abril\"\n    },\n    may: {\n      de: \"Mai\",\n      en: \"May\",\n      fr: \"mai\",\n      es: \"mayo\",\n      pt: \"maio\"\n    },\n    june: {\n      de: \"Juni\",\n      en: \"June\",\n      fr: \"juin\",\n      es: \"junio\",\n      pt: \"junho\"\n    },\n    july: {\n      de: \"Juli\",\n      en: \"July\",\n      fr: \"juillet\",\n      es: \"julio\",\n      pt: \"julho\"\n    },\n    august: {\n      de: \"August\",\n      en: \"August\",\n      fr: \"août\",\n      es: \"agosto\",\n      pt: \"agosto\"\n    },\n    september: {\n      de: \"September\",\n      en: \"September\",\n      fr: \"septembre\",\n      es: \"septiembre\",\n      pt: \"setembro\"\n    },\n    october: {\n      de: \"Oktober\",\n      en: \"October\",\n      fr: \"octobre\",\n      es: \"octubre\",\n      pt: \"outubro\"\n    },\n    november: {\n      de: \"November\",\n      en: \"November\",\n      fr: \"novembre\",\n      es: \"noviembre\",\n      pt: \"novembro\"\n    },\n    december: {\n      de: \"Dezember\",\n      en: \"December\",\n      fr: \"décembre\",\n      es: \"diciembre\",\n      pt: \"dezembro\"\n    },\n    monday: {\n      de: \"Montag\",\n      en: \"Monday\",\n      fr: \"Lundi\",\n      es: \"Lunes\",\n      pt: \"Segunda-feira\"\n    },\n    tuesday: {\n      de: \"Dienstag\",\n      en: \"Tuesday\",\n      fr: \"Mardi\",\n      es: \"Martes\",\n      pt: \"Terça-feira\"\n    },\n    wednesday: {\n      de: \"Mittwoch\",\n      en: \"Wednesday\",\n      fr: \"Mercredi\",\n      es: \"Miércoles\",\n      pt: \"Quarta-feira\"\n    },\n    thurstday: {\n      de: \"Donnerstag\",\n      en: \"Thursday\",\n      fr: \"Jeudi\",\n      es: \"Jueves\",\n      pt: \"Quinta-feira\"\n    },\n    friday: {\n      de: \"Freitag\",\n      en: \"Friday\",\n      fr: \"Vendredi\",\n      es: \"Viernes\",\n      pt: \"Sexta-feira\"\n    },\n    sasturday: {\n      de: \"Samstag\",\n      en: \"Saturday\",\n      fr: \"Samedi\",\n      es: \"Sábado\",\n      pt: \"Sábado\"\n    },\n    sunday: {\n      de: \"Sonntag\",\n      en: \"Sunday\",\n      fr: \"Dimanche\",\n      es: \"Domingo\",\n      pt: \"Domingo\"\n    },\n    justNow: {\n      de: \"Gerade eben\",\n      en: \"just now\",\n      fr: \"à l'instant\",\n      es: \"justo ahora\",\n      pt: \"Agora mesmo\"\n    },\n    oneMinuteAgo: {\n      de: \"vor 1 Minute\",\n      en: \"one minute ago\",\n      fr: \"il y a une minute\",\n      es: \"hace un minuto\",\n      pt: \"há um minuto\"\n    },\n    numMinutesAgo: {\n      de: \"vor $1 Minuten\",\n      en: \"$1 minutes ago\",\n      fr: \"il y a $1 minutes\",\n      es: \"hace $1 minutos\",\n      pt: \"há $1 minuto\"\n    },\n    oneHourAgo: {\n      de: \"vor einer Stunde\",\n      en: \"one hour ago\",\n      fr: \"il y a une heure\",\n      es: \"hace una hora\",\n      pt: \"há uma hora\"\n    },\n    numHoursAgo: {\n      de: \"vor $1 Stunden\",\n      en: \"$1 hours ago\",\n      fr: \"il y a $1 heures\",\n      es: \"hace $1 horas\",\n      pt: \"há $1 horas\"\n    },\n    today: {\n      de: \"heute\",\n      en: \"today\",\n      fr: \"aujourd'hui\",\n      es: \"hoy\",\n      pt: \"hoje\"\n    },\n    yesterday: {\n      de: \"gestern\",\n      en: \"yesterday\",\n      fr: \"hier\",\n      es: \"ayer\",\n      pt: \"ontem\"\n    },\n    tomorrow: {\n      de: \"morgen\",\n      en: \"tomorrow\",\n      fr: \"demain\",\n      es: \"mañana\",\n      pt: \"amanhã\"\n    },\n    numDaysAgo: {\n      de: \"vor $1 Tagen\",\n      en: \"$1 days ago\",\n      fr: \"il y a $1 jours\",\n      es: \"hace $1 días\",\n      pt: \"há $1 dias\"\n    },\n    oneMonthAgo: {\n      de: \"vor einem Monat\",\n      en: \"one month ago\",\n      fr: \"il y a un mois\",\n      es: \"hace un mes\",\n      pt: \"há um mês\"\n    },\n    numMonthsAgo: {\n      de: \"vor $1 Monaten\",\n      en: \"$1 months ago\",\n      fr: \"il y a $1 mois\",\n      es: \"hace $1 meses\",\n      pt: \"há $1 meses\"\n    },\n    oneYearAgo: {\n      de: \"vor einem Jahr\",\n      en: \"one year ago\",\n      fr: \"il y a un an\",\n      es: \"hace un año\",\n      pt: \"há um ano\"\n    },\n    numYearsAgo: {\n      de: \"vor $1 Jahren\",\n      en: \"$1 years ago\",\n      fr: \"il y a $1 ans\",\n      es: \"hace $1 años\",\n      pt: \"há $1 anos\"\n    },\n    dateTimeSeparator: {\n      de: \" \",\n      en: \" \",\n      fr: \" à \",\n      es: \" a las \",\n      pt: \" às \"\n    }\n  };\n})();","updated":"2026-03-26T07:47:31.015501"},{"path":"addons/topbarLevel/speedFactorIcon/onLoaded/rowDiv/tap/tap.ls","text":"(function(){\n  return function(page, soundSpeedFactor, item, speedFactorIcon){\n    if (speedFactorIcon.isNotSupportedVersion) {\n      speedFactorIcon.overlayMenu.close();\n      inc(\"showPopup/show\")();\n      return;\n    }\n    if (speedFactorIcon.soundStretchProjectMissing) {\n      speedFactorIcon.overlayMenu.close();\n      inc(\"/lib/offline/offlinePopup/popup\")();\n      return;\n    }\n    inc(\"/lib/util/cache/set/set\")(\"soundSpeedFactor\", item.soundSpeedFactor);\n    page.soundSpeedFactorId = item.id;\n    speedFactorIcon.updateIcon();\n    return speedFactorIcon.overlayMenu.close();\n  };\n})();","updated":"2026-05-04T08:09:13.272316"},{"path":"addons/navbar/bar/user/user/avatar/badge/calcBadgeNumber/calc.ls","text":"(function(){\n  return function(){\n    var unread;\n    unread = inc(\"/data/user/chat/calcUnreadMessagesCount/calc\")() + inc(\"/data/user/news/calcUnreadNewsCount/calc\")() + inc(\"/data/user/calcWeeklySpecialData/calc\")().todoLevelCount + inc(\"adventCalendar/adventCalendar\")() + inc(\"oldAvatar/oldAvatar\")() + inc(\"/addons/navbar/bar/user/user/items/itemTeacherProgress/badge/calcNumberOfRemainingAchievements/calc\")();\n    if (inc(\"/../app01/data/user/calcCurrentSurveys/calc\")().length > 0) {\n      unread++;\n    }\n    return unread;\n  };\n})();","updated":"2026-05-18T12:45:29.708712"},{"path":"pages/games/00_shared/pixiGameV8/pixi/onScreenControl/control.ls","text":"(function(){\n  return function(tint, radius){\n    var control, startX, startY, outerCircle, innerCircle;\n    tint == null && (tint = 0xffffff);\n    radius == null && (radius = 50);\n    control = new PIXI8.Container();\n    startX = 0;\n    startY = 0;\n    control.dx = 0;\n    control.dy = 0;\n    control.angle = 0;\n    outerCircle = new PIXI8.Graphics().circle(0, 0, radius).stroke({\n      width: 4,\n      color: tint,\n      alpha: 0.5\n    });\n    control.addChild(outerCircle);\n    innerCircle = new PIXI8.Graphics().circle(0, 0, radius / 3).fill(tint);\n    control.addChild(innerCircle);\n    control.start = function(x, y){\n      startX = x;\n      startY = y;\n      control.x = x;\n      control.y = y;\n      return control.alpha = 1;\n    };\n    control.update = function(x, y){\n      var v, l, d;\n      if (control.alpha === 0) {\n        return;\n      }\n      v = {\n        x: x - startX,\n        y: y - startY\n      };\n      l = Math.sqrt(Math.pow(v.x, 2) + Math.pow(v.y, 2));\n      if (l === 0) {\n        control.dx = 0;\n        control.dy = 0;\n      } else {\n        d = Math.min(1, l / radius);\n        v.x /= l;\n        v.y /= l;\n        control.dx = v.x * d;\n        control.dy = v.y * d;\n      }\n      control.angle = -Math.atan2(control.dx, control.dy) + Math.PI / 2;\n      innerCircle.x = control.dx * radius;\n      return innerCircle.y = control.dy * radius;\n    };\n    control.end = function(){\n      control.alpha = 0;\n      control.dx = 0;\n      control.dy = 0;\n      return innerCircle.position.set(0);\n    };\n    control.alpha = 0;\n    return control;\n  };\n})();","updated":"2026-03-27T15:01:58.734204"},{"path":"addons/navbar/bar/user/user/items/itemSurvey/item.ls","text":"(function(){\n  return function(){\n    var currentSurvey;\n    currentSurvey = inc(\"/../app01/data/user/calcCurrentSurveys/calc\")()[0];\n    if (!currentSurvey) {\n      return;\n    }\n    return {\n      label: currentSurvey.surveyDisplayName,\n      icon: path(\"/../app01/lib/svg/iconModern/news.svg\"),\n      badge: function(){\n        return inc(\"../../_badge/badge\")({\n          badgeNumber: 1\n        });\n      },\n      click: function(){\n        return inc(\"/../app01/lib/util/survey/survey\")({\n          surveyPath: path(\"/../app01-surveys/surveys/\" + currentSurvey.surveyId + \"/start\"),\n          checkDoneEvents: false,\n          logEvents: true,\n          onEnded: function(surveyStatus, surveyResult){\n            debug(surveyResult);\n            return startPage({\n              history: -1,\n              animation: \"slideDown\"\n            });\n          }\n        });\n      }\n    };\n  };\n})();","updated":"2026-03-27T15:01:58.734204"},{"path":"addons/navbar/bar/user/user/debugItems/items.ls","text":"(function(){\n  return function(){\n    var loadProject, debugItems;\n    loadProject = function(name, onDone){\n      var aborted, spinner, project;\n      aborted = false;\n      spinner = inc(\"/lib/gui/spinnerOverlay/overlay\")(function(){\n        return aborted = true;\n      });\n      project = {\n        name: name,\n        branch: \"develop\",\n        server: \"https://ide-server.solocode.com\"\n      };\n      return inc(\"/lib/util/loadProject/load\")(project, function(){\n        if (spinner != null) {\n          spinner.remove();\n        }\n        if (!aborted) {\n          return onDone();\n        }\n      });\n    };\n    return debugItems = [\n      {\n        label: \"Trainer Usage\",\n        icon: path(\"/../app01/lib/svg/shape/stats.svg\"),\n        click: function(){\n          return loadProject(\"app01-debug-pages\", function(){\n            return startPage({\n              path: path(\"/../app01-debug-pages/pages/debug-pages/trainerUsage/01/page\"),\n              animation: \"slideUp\"\n            });\n          });\n        }\n      }, {\n        label: \"app01-tests5\",\n        icon: path(\"/../app01/lib/svg/shape/debug.svg\"),\n        click: function(){\n          return loadProject(\"app01-tests5\", function(){\n            return startPage({\n              path: \"/../\" + \"app01-tests5\" + \"/pages/list/page\",\n              animation: \"slideUp\"\n            });\n          });\n        }\n      }\n    ];\n  };\n})();","updated":"2026-03-30T09:02:00.907286"},{"path":"addons/topbarLevel/feedbackIcon/02_popupChoices/popup.ls","text":"(function(){\n  return function(pageClone){\n    var click, div, popup;\n    click = async function(type){\n      var muteSources, ref$;\n      if (type === \"has-mistake\") {\n        return inc(\"../03a_popupText/popup\")(pageClone, type);\n      } else if (type === \"no-sound\") {\n        muteSources = (await inc(\"calcMuteSources/calc\")());\n        log.log({\n          event: \"debugClickNoSoundFeedbackPopup\",\n          muteSources: muteSources,\n          audioContextDebugEvents: app.audioContextDebugEvents,\n          userSoundSpeedFactor: (ref$ = inc(\"/lib/util/cache/get/get\")(\"soundSpeedFactor\")) != null ? ref$ : 1\n        });\n        return inc(\"../03b_noSoundInfoPopup/popup\")();\n      } else {\n        inc(\"../00_shared/sendFeedback/send\")({\n          div: pageClone,\n          type: type\n        });\n        return inc(\"../04_popupDone/popup\")();\n      }\n    };\n    div = Div({\n      width: \"18em\",\n      maxWidth: \"90%\",\n      margin: \"1em 0.5em\"\n    }).append(Div({\n      paddingBottom: \"0.5em\"\n    }).html(T(\"theExercise\")), inc(\"buttons/buttons\")(click));\n    return popup = inc(\"/lib/gui/popup/popup\")({\n      html: div,\n      animationOnShow: false\n    });\n  };\n})();","updated":"2026-05-21T12:49:13.72591"}],"deletedDocuments":[],"nextVersion":4861,"versionDate":"2026-05-21T12:49:13.72591","totalLength":"3698-3105477","checksum":"3698-3105477","checksumBytes":"3698-3115245","reset":true}