new configuration version

This commit is contained in:
haburger 2025-06-30 16:09:20 +00:00
parent 066eaf8201
commit 788a51aea6
153 changed files with 4905 additions and 2008 deletions

View File

@ -1,7 +1,7 @@
apiVersion: "operator.nevis-security.ch/v1"
kind: "NevisTrustStore"
metadata:
name: "auth-sts-default-tls-trust"
name: "auth-sts-idp-extended-truststore"
namespace: "adn-agov-nevisidm-01-uat"
labels:
deploymentTarget: "auth-sts"
@ -9,6 +9,4 @@ metadata:
projectKey: "DEFAULT-ADN-AGOV-PROJECT"
patternId: "4bad2fe3ccc54716cc87138f"
spec:
keystores:
- name: "idm-default-identity"
namespace: "adn-agov-nevisidm-01-uat"
keystores: []

View File

@ -45,7 +45,7 @@ spec:
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-ba39848d1c443859cdedb92e5cb503a09a1feaca"
tag: "r-317ed268556b37656f27fb58fcffd4797cea27e4"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth-sts"
credentials: "git-credentials"
keystores:
@ -54,7 +54,7 @@ spec:
truststores:
- "auth-sts-technical-trust-store"
- "auth-sts-default-default-signer-trust"
- "auth-sts-default-tls-trust"
- "auth-sts-idp-extended-truststore"
podSecurity:
policy: "baseline"
automountServiceAccountToken: false

View File

@ -14,7 +14,7 @@ JAVA_OPTS=(
"-Dotel.javaagent.logging=application"
"-Dotel.javaagent.configuration-file=/var/opt/nevisauth/default/conf/otel.properties"
"-Dotel.resource.attributes=service.version=8.2411.3,service.instance.id=$HOSTNAME"
"-Djavax.net.ssl.trustStore=/var/opt/keys/trust/auth-sts-default-tls-trust/truststore.p12"
"-Djavax.net.ssl.trustStorePassword=\${exec:/var/opt/keys/trust/auth-sts-default-tls-trust/keypass}"
"-Djavax.net.ssl.trustStore=/var/opt/keys/trust/auth-sts-idp-extended-truststore/truststore.p12"
"-Djavax.net.ssl.trustStorePassword=\${exec:/var/opt/keys/trust/auth-sts-idp-extended-truststore/keypass}"
)

View File

@ -134,9 +134,9 @@
</AuthState>
<AuthState name="nevisIDM_Connector" class="ch.nevis.esauth.auth.states.standard.AuthGeneric" final="false">
<!-- source: pattern://8d94681ba6da73f92618e32d -->
<property name="login.service.connection.0" value="https://idm:8989/nevisidm/services/v1/LoginService"/>
<property name="login.service.connection.0" value="https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm/services/v1/LoginService"/>
<!-- source: pattern://8d94681ba6da73f92618e32d -->
<property name="admin.service.connection.0" value="https://idm:8989/nevisidm/services/v1/AdminService"/>
<property name="admin.service.connection.0" value="https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm/services/v1/AdminService"/>
</AuthState>
<AuthState name="Auth_Realm_Main_STS_Service_Provider_State" class="ch.nevis.esauth.auth.states.saml.ServiceProviderState" final="false" resumeState="true">
<!-- source: pattern://5d7dc3d51416356293a239f7 -->

View File

@ -1,7 +1,7 @@
apiVersion: "operator.nevis-security.ch/v1"
kind: "NevisTrustStore"
metadata:
name: "auth-default-tls-trust"
name: "auth-idp-extended-truststore"
namespace: "adn-agov-nevisidm-01-uat"
labels:
deploymentTarget: "auth"
@ -9,6 +9,4 @@ metadata:
projectKey: "DEFAULT-ADN-AGOV-PROJECT"
patternId: "7022472ae407577ae604bbb8"
spec:
keystores:
- name: "idm-default-identity"
namespace: "adn-agov-nevisidm-01-uat"
keystores: []

View File

@ -45,7 +45,7 @@ spec:
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-7ea2bb552e56706a0514f07552905db7bb8ee0ad"
tag: "r-317ed268556b37656f27fb58fcffd4797cea27e4"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/auth"
credentials: "git-credentials"
keystores:
@ -53,8 +53,8 @@ spec:
- "auth-auth-realm-mobile-fido-uaf-tls-client-nevisfido"
- "auth-default-identity"
truststores:
- "auth-default-tls-trust"
- "auth-auth-realm-mobile-fido-uaf-tls-trust-nevisfido"
- "auth-idp-extended-truststore"
- "auth-internal-idp-auth-signer-trust"
- "auth-technical-trust-store"
podSecurity:

View File

@ -69,12 +69,16 @@ general.fieldRequired=Field required.
general.getStarted=Get started
general.goAGOVHelp=Go to AGOV help
general.goAccessApp=Login with AGOV access
general.goToAccessApp=Go to AGOV access app
general.help=Help
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Login with Access App
general.login.securityKey=Login with Security Key
general.loginSecurityKey=Start Security key login
general.moreOptions=MORE OPTIONS
general.or=OR
general.otherOptions=OTHER OPTIONS
general.otherLoginMethods=Other login methods
general.recovery=Recovery
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Download as PDF
@ -87,6 +91,8 @@ general.recoveryOngoing=Ongoing recovery
general.register=Register
general.registerNow=Register now!
general.registration=Registration
general.registration.dontHaveAnAccountYet=Don't have an AGOV account yet?
general.registration.seeOptions=See registration options
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
@ -103,6 +109,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Select language
loainfo.description.200=To access the application, we need to verify your data. The process can take up to 2 - 3 days.
loainfo.description.300=To access the application we need to verify your data through one of two processes. You can choose your preferred process in the next step.
@ -120,9 +127,12 @@ mauth_usernameless.banner.error=Authentication interrupted.<br>Please try again
mauth_usernameless.banner.info=Scan successful.<br>Please continue in the AGOV access app.
mauth_usernameless.banner.success=Authentication successful!<br>Please wait to be logged in.
mauth_usernameless.cannotLogin=Lost access to your app / security key?
mauth_usernameless.cannotLogin.accessApp=Lost access to your app?
mauth_usernameless.cannotLogin.securityKey=Lost access to your security key?
mauth_usernameless.hideQR=Hide QR code
mauth_usernameless.instructions=Log in by scanning the QR code with your AGOV access app
mauth_usernameless.noAccount=Don't have an AGOV-Login yet?
mauth_usernameless.noAccount=Don't have an AGOV account yet?
mauth_usernameless.selectLoginMethod=Select login method
mauth_usernameless.showQR=Show QR code
mauth_usernameless.startRecovery=Start account recovery
mauth_usernameless.useSecurityKey=Use a security key to log in

View File

@ -69,12 +69,16 @@ general.fieldRequired=Erforderliches Feld.
general.getStarted=Los geht's
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
general.goToAccessApp=Zur AGOV access App wechseln
general.help=Hilfe
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Login mit AGOV access App
general.login.securityKey=Login mit Sicherheitsschl&uuml;ssel
general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.moreOptions=WEITERE OPTIONEN
general.or=ODER
general.otherOptions=WEITERE OPTIONEN
general.otherLoginMethods=Andere Login-Methoden
general.recovery=Wiederherstellung
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Als PDF herunterladen
@ -87,6 +91,8 @@ general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!
general.registration=Registrierung
general.registration.dontHaveAnAccountYet=Haben Sie noch kein AGOV-Konto?
general.registration.seeOptions=Registrierungsoptionen ansehen
general.securityKey=Sicherheitsschl&uuml;ssel
general.skip.content=Direkt zum Hauptteil
general.wrongPhoneNumber=Bitte geben Sie eine g&uuml;ltige Telefonnummer ein
@ -103,6 +109,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Sprache w&auml;hlen
loainfo.description.200=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben verifizieren. Der Vorgang kann bis zu 2 - 3 Tage dauern.
loainfo.description.300=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben durch einen von zwei Vorg&auml;ngen verifizieren. Sie k&ouml;nnen die bevorzugte Methode im n&auml;chsten Schritt ausw&auml;hlen.
@ -120,9 +127,12 @@ mauth_usernameless.banner.error=Authentifizierung unterbrochen.<br>Bitte versuch
mauth_usernameless.banner.info=Scan erfolgreich.<br>Bitte fahren Sie in der AGOV access App fort.
mauth_usernameless.banner.success=Authentifizierung erfolgreich!<br>Bitte warten Sie, bis Sie eingeloggt werden.
mauth_usernameless.cannotLogin=Zugriff auf App / Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.cannotLogin.accessApp=Zugriff auf App verloren?
mauth_usernameless.cannotLogin.securityKey=Zugriff auf Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.hideQR=QR-Code ausblenden
mauth_usernameless.instructions=Melden Sie sich an, indem Sie den QR-Code mit Ihrer AGOV access App scannen
mauth_usernameless.noAccount=Haben Sie noch kein AGOV-Login?
mauth_usernameless.noAccount=Haben Sie noch kein AGOV-Konto?
mauth_usernameless.selectLoginMethod=Login-Methode w&auml;hlen
mauth_usernameless.showQR=QR-Code anzeigen
mauth_usernameless.startRecovery=Kontowiederherstellung starten
mauth_usernameless.useSecurityKey=Verwenden Sie einen Sicherheitsschl&uuml;ssel, um sich anzumelden

View File

@ -69,12 +69,16 @@ general.fieldRequired=Field required.
general.getStarted=Get started
general.goAGOVHelp=Go to AGOV help
general.goAccessApp=Login with AGOV access
general.goToAccessApp=Go to AGOV access app
general.help=Help
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Login with Access App
general.login.securityKey=Login with Security Key
general.loginSecurityKey=Start Security key login
general.moreOptions=MORE OPTIONS
general.or=OR
general.otherOptions=OTHER OPTIONS
general.otherLoginMethods=Other login methods
general.recovery=Recovery
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Download as PDF
@ -87,6 +91,8 @@ general.recoveryOngoing=Ongoing recovery
general.register=Register
general.registerNow=Register now!
general.registration=Registration
general.registration.dontHaveAnAccountYet=Don't have an AGOV account yet?
general.registration.seeOptions=See registration options
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
@ -103,6 +109,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Select language
loainfo.description.200=To access the application, we need to verify your data. The process can take up to 2 - 3 days.
loainfo.description.300=To access the application we need to verify your data through one of two processes. You can choose your preferred process in the next step.
@ -120,9 +127,12 @@ mauth_usernameless.banner.error=Authentication interrupted.<br>Please try again
mauth_usernameless.banner.info=Scan successful.<br>Please continue in the AGOV access app.
mauth_usernameless.banner.success=Authentication successful!<br>Please wait to be logged in.
mauth_usernameless.cannotLogin=Lost access to your app / security key?
mauth_usernameless.cannotLogin.accessApp=Lost access to your app?
mauth_usernameless.cannotLogin.securityKey=Lost access to your security key?
mauth_usernameless.hideQR=Hide QR code
mauth_usernameless.instructions=Log in by scanning the QR code with your AGOV access app
mauth_usernameless.noAccount=Don't have an AGOV-Login yet?
mauth_usernameless.noAccount=Don't have an AGOV account yet?
mauth_usernameless.selectLoginMethod=Select login method
mauth_usernameless.showQR=Show QR code
mauth_usernameless.startRecovery=Start account recovery
mauth_usernameless.useSecurityKey=Use a security key to log in

View File

@ -69,12 +69,16 @@ general.fieldRequired=Champ requis.
general.getStarted=D&eacute;marrer
general.goAGOVHelp=Rendez-vous sur AGOV help
general.goAccessApp=Login avec AGOV access
general.goToAccessApp=Allez sur votre application AGOV access
general.help=Aide
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Connexion avec l'application AGOV access
general.login.securityKey=Connexion avec la cl&eacute; de s&eacute;curit&eacute;
general.loginSecurityKey=D&eacute;marrer la connexion avec la cl&eacute; de s&eacute;curit&eacute;
general.moreOptions=PLUS D'OPTIONS
general.or=OU
general.otherOptions=AUTRES OPTIONS
general.otherLoginMethods=Autres m&eacute;thodes de connexion
general.recovery=R&eacute;cup&eacute;ration
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=T&eacute;l&eacute;charger en format PDF
@ -87,6 +91,8 @@ general.recoveryOngoing=R&eacute;cup&eacute;ration en cours
general.register=Cr&eacute;er un compte
general.registerNow=Enregistrez-vous d&egrave;s maintenant!
general.registration=Enregistrement
general.registration.dontHaveAnAccountYet=Vous n'avez pas de compte AGOV ?
general.registration.seeOptions=Voir les options d'enregistrement
general.securityKey=Cl&eacute; de s&eacute;curit&eacute;
general.skip.content=Passer au contenu principal
general.wrongPhoneNumber=Veuillez saisir un num&eacute;ro de t&eacute;l&eacute;phone valable
@ -103,6 +109,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=S&eacute;lectionner la langue
loainfo.description.200=Pour acc&eacute;der &agrave; l'application, nous devons v&eacute;rifier vos donn&eacute;es. Ce processus peut prendre jusqu'&agrave; 2 ou 3 jours.
loainfo.description.300=Pour acc&eacute;der &agrave; l'application, nous devons v&eacute;rifier vos donn&eacute;es par le biais de l'une des deux proc&eacute;dures suivantes. Vous pouvez choisir la proc&eacute;dure que vous pr&eacute;f&eacute;rez &agrave; l'&eacute;tape suivante.
@ -120,9 +127,12 @@ mauth_usernameless.banner.error=Authentification interrompue.<br>Veuillez r&eacu
mauth_usernameless.banner.info=Scan r&eacute;ussi!<br> Veuillez continuer dans l'application AGOV access.
mauth_usernameless.banner.success=Authentification r&eacute;ussie!<br>Veuillez attendre d'&ecirc;tre connect&eacute;.
mauth_usernameless.cannotLogin=Avez-vous perdu l'acc&egrave;s &agrave; votre application / votre cl&eacute; de s&eacute;curit&eacute; ?
mauth_usernameless.cannotLogin.accessApp=Vous avez perdu l'acc&egrave;s &agrave; votre application AGOV access ?
mauth_usernameless.cannotLogin.securityKey=Avez-vous perdu l'acc&egrave;s &agrave; votre cl&eacute; de s&eacute;curit&eacute; ?
mauth_usernameless.hideQR=Cacher le code QR
mauth_usernameless.instructions=Connectez-vous en scannant le code QR avec l'application AGOV access
mauth_usernameless.noAccount=Vous n'avez pas encore d'AGOV-Login ?
mauth_usernameless.noAccount=Vous n'avez pas de compte AGOV ?
mauth_usernameless.selectLoginMethod=S&eacute;l&eacute;ctionner la m&eacute;thode de connexion
mauth_usernameless.showQR=Afficher le code QR
mauth_usernameless.startRecovery=Commencer la r&eacute;cup&eacute;ration du compte
mauth_usernameless.useSecurityKey=Utiliser une cl&eacute; de s&eacute;curit&eacute; pour se connecter

View File

@ -69,12 +69,16 @@ general.fieldRequired=Campo obbligatorio.
general.getStarted=Iniziare
general.goAGOVHelp=Vai ad AGOV help
general.goAccessApp=Login con AGOV access
general.goToAccessApp=Vai all'app AGOV access
general.help=Aiuto
general.help.link=https://agov.ch/help
general.login=Accedere
general.login.accessApp=Accesso con l'App AGOV access
general.login.securityKey=Login con la chiave di sicurezza
general.loginSecurityKey=Iniziare il login con la chiave di sicurezza
general.moreOptions=ALTRE OPZIONI
general.or=O
general.otherOptions=ALTRE OPZIONI
general.otherLoginMethods=Altri metodi di login
general.recovery=Ripristino
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Salva come PDF
@ -87,6 +91,8 @@ general.recoveryOngoing=Ripristino in corso
general.register=Registrarsi
general.registerNow=Si registri ora!
general.registration=Registrazione
general.registration.dontHaveAnAccountYet=Non ha ancora un AGOV account?
general.registration.seeOptions=Vedere le opzioni di registrazione
general.securityKey=Chiave di sicurezza
general.skip.content=Vai al contenuto principale
general.wrongPhoneNumber=Inserire un numero di cellulare valido
@ -103,6 +109,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Selezionare la lingua
loainfo.description.200=Per accedere all'app &egrave; necessaria una verifica dei dati. La procedura pu&ograve; richiedere fino a 2&ndash;3 giorni lavorativi.
loainfo.description.300=Per accedere all'app dobbiamo verificare i suoi dati tramite uno dei due processi. Al prossimo passaggio, pu&ograve; selezionare la procedura di verifica desiderata.
@ -120,9 +127,12 @@ mauth_usernameless.banner.error=Autenticazione interrotta.<br>Riprovare dopo che
mauth_usernameless.banner.info=La scansione &egrave; stata eseguita.<br>Continuare nell'app AGOV access.
mauth_usernameless.banner.success=Autenticazione riuscita!<br>Aspettare di essere connessi.
mauth_usernameless.cannotLogin=Ha perso l'accesso alla sua app/chiave di sicurezza?
mauth_usernameless.cannotLogin.accessApp=Ha perso l'accesso al suo App AGOV access?
mauth_usernameless.cannotLogin.securityKey=Ha perso l'accesso alla sua chiave di sicurezza?
mauth_usernameless.hideQR=Nascondi il codice QR
mauth_usernameless.instructions=Per accedere, scansionare il codice QR con l'app AGOV access.
mauth_usernameless.noAccount=Non ha ancora un AGOV-Login ?
mauth_usernameless.noAccount=Non ha ancora un AGOV account?
mauth_usernameless.selectLoginMethod=Selezionare il metodo di login
mauth_usernameless.showQR=Visualizza il codice QR
mauth_usernameless.startRecovery=Inizia il recupero dell'account
mauth_usernameless.useSecurityKey=Accedere utilizzando una chiave di sicurezza.

View File

@ -32,6 +32,12 @@ String baseUrl = parameters.get('baseUrl')
String endPoint = "${baseUrl}/core/v1/${clientExtId}/users/${userExtId}"
if (!(parameters.get('ask_mobile_number_enabled')?.toLowerCase()?.trim() == "true")) {
LOG.debug("Feature 'ask mobile number' is disabled")
response.setResult('done')
return
}
if (mobile) {
LOG.debug("User '${user}' has already registered a mobile number")
response.setResult('done')

View File

@ -119,6 +119,7 @@ try {
if (adressVerificationList && !adressVerificationList.isEmpty()) {
adressVerification = adressVerificationList[0]
}
def authenticationMethod = session.get('authenticatedWith')
LOG.debug('CheckLoa: Requested role level '+ requestedRoleLevelNumber)
LOG.debug('CheckLoa: idVerification: ' + getUserAGOVLoiIdVerification())
@ -160,7 +161,6 @@ try {
session.setAttribute('ch.nevis.idm.User.gender', '3')
}
for (String role : getUserAGOVLoiRoles()) {
if (role.startsWith('level')) {
def roleLevel = role.substring(5)
@ -171,6 +171,7 @@ try {
}
}
}
LOG.debug('CheckLoa: Highest role Level ' + highestRoleLevelNumber.toString() +' contextclassref ' + requestedRoleLevelNumber.toString())
LOG.debug('CheckLoa: Compare ' + (highestRoleLevelNumber>=requestedRoleLevelNumber))

View File

@ -1,250 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<country-names>
<country code="af" en="Afghanistan" de="Afghanistan" fr="Afghanistan" it="Afghanistan"/>
<country code="al" en="Albania" de="Albanien" fr="Albanie" it="Albania"/>
<country code="dz" en="Algeria" de="Algerien" fr="Algérie" it="Algeria"/>
<country code="as" en="American Samoa" de="Amerikanisch-Samoa" fr="Samoa américaines" it="Samoa Americane"/>
<country code="ad" en="Andorra" de="Andorra" fr="Andorre" it="Andorra"/>
<country code="ao" en="Angola" de="Angola" fr="Angola" it="Angola"/>
<country code="ai" en="Anguilla" de="Anguilla" fr="Anguilla" it="Anguilla"/>
<country code="aq" en="Antarctica" de="Antarktis" fr="Antarctique" it="Antartide"/>
<country code="ag" en="Antigua and Barbuda" de="Antigua und Barbuda" fr="Antigua-et-Barbuda" it="Antigua e Barbuda"/>
<country code="ar" en="Argentina" de="Argentinien" fr="Argentine" it="Argentina"/>
<country code="am" en="Armenia" de="Armenien" fr="Arménie" it="Armenia"/>
<country code="aw" en="Aruba" de="Aruba" fr="Aruba" it="Aruba"/>
<country code="au" en="Australia" de="Australien" fr="Australie" it="Australia"/>
<country code="at" en="Austria" de="Österreich" fr="Autriche" it="Austria"/>
<country code="az" en="Azerbaijan" de="Aserbaidschan" fr="Azerbaïdjan" it="Azerbaigian"/>
<country code="bs" en="Bahamas" de="Bahamas" fr="Bahamas" it="Bahamas"/>
<country code="bh" en="Bahrain" de="Bahrain" fr="Bahreïn" it="Bahrein"/>
<country code="bd" en="Bangladesh" de="Bangladesch" fr="Bangladesh" it="Bangladesh"/>
<country code="bb" en="Barbados" de="Barbados" fr="Barbade" it="Barbados"/>
<country code="by" en="Belarus" de="Belarus" fr="Bélarus" it="Bielorussia"/>
<country code="be" en="Belgium" de="Belgien" fr="Belgique" it="Belgio"/>
<country code="bz" en="Belize" de="Belize" fr="Belize" it="Belize"/>
<country code="bj" en="Benin" de="Benin" fr="Bénin" it="Benin"/>
<country code="bm" en="Bermuda" de="Bermudas" fr="Bermudes" it="Bermuda"/>
<country code="bt" en="Bhutan" de="Bhutan" fr="Bhoutan" it="Bhutan"/>
<country code="bo" en="Bolivia" de="Bolivien" fr="Bolivie" it="Bolivia"/>
<country code="ba" en="Bosnia-Herzegovina" de="Bosnien-Herzegowina" fr="Bosnie et Herzégovine" it="Bosnia ed Erzegovina"/>
<country code="bw" en="Botswana" de="Botsuana" fr="Botswana" it="Botswana"/>
<country code="bv" en="Bouvet Island" de="Bouvetinsel" fr="Île Bouvet" it="Isola Bouvet"/>
<country code="br" en="Brazil" de="Brasilien" fr="Brésil" it="Brasile"/>
<country code="io" en="British Indian Ocean Territory" de="Britisches Territorium im Indischen Ozean" fr="Territoire britannique de locéan Indien" it="Territorio Britannico dellOceano Indiano"/>
<country code="bn" en="Brunei" de="Brunei" fr="Brunei" it="Brunei"/>
<country code="bg" en="Bulgaria" de="Bulgarien" fr="Bulgarie" it="Bulgaria"/>
<country code="bf" en="Burkina Faso" de="Burkina Faso" fr="Burkina Faso " it="Burkina Faso"/>
<country code="bi" en="Burundi" de="Burundi" fr="Burundi" it="Burundi"/>
<country code="kh" en="Cambodia" de="Kambodscha" fr="Cambodge" it="Cambogia"/>
<country code="cm" en="Cameroon" de="Kamerun" fr="Cameroun" it="Camerun"/>
<country code="ca" en="Canada" de="Kanada" fr="Canada" it="Canada"/>
<country code="cv" en="Cape Verde" de="Cabo Verde" fr="Cabo Verde" it="Capo Verde"/>
<country code="ky" en="Cayman Islands" de="Kaiman-Inseln" fr="Îles Caïmans" it="Isole Cayman"/>
<country code="cf" en="Central African Republic" de="Zentralafrikanische Republik" fr="République centrafricaine" it="Repubblica Centrafricana"/>
<country code="td" en="Chad" de="Tschad" fr="Tchad" it="Ciad"/>
<country code="cl" en="Chile" de="Chile" fr="Chili" it="Cile"/>
<country code="cn" en="China (People's Republic OF)" de="China (Volksrepublik)" fr="Chine (République populaire de Chine)" it="Cina, Repubblica popolare cinese"/>
<country code="cx" en="Christmas Island (Indian Ocean)" de="Weihnachtsinsel (Indischer Ozean)" fr="Île Christmas (océan Indien)" it="Isola di Natale"/>
<country code="cc" en="Cocos (Keeling) Island" de="Kokosinseln (Keeling)" fr="Îles Cocos" it="Isole Cocos (Keeling)"/>
<country code="co" en="Colombia" de="Kolumbien" fr="Colombie" it="Colombia"/>
<country code="km" en="Comoros" de="Komoren" fr="Comores" it="Comore"/>
<country code="cg" en="Congo (Republic)" de="Kongo (Republik)" fr="République du Congo" it="Repubblica del Congo"/>
<country code="cd" en="Congo, Democratic Republic" de="Kongo, Demokratische Republik" fr="République démocratique du Congo" it="Repubblica democratica del Congo"/>
<country code="ck" en="Cook Islands" de="Cookinseln" fr="Îles Cook" it="Isole Cook"/>
<country code="cr" en="Costa Rica" de="Costa Rica" fr="Costa Rica" it="Costa Rica"/>
<country code="hr" en="Croatia" de="Kroatien" fr="Croatie" it="Croazia"/>
<country code="cu" en="Cuba" de="Kuba" fr="Cuba" it="Cuba"/>
<country code="cw" en="Curaçao" de="Curaçao" fr="Curaçao" it="Curaçao"/>
<country code="cy" en="Cyprus" de="Zypern" fr="Chypre" it="Cipro"/>
<country code="cz" en="Czech Republic" de="Tschechische Republik" fr="Tchéquie" it="Repubblica Ceca"/>
<country code="dk" en="Denmark" de="Dänemark" fr="Danemark" it="Danimarca"/>
<country code="dj" en="Djibouti" de="Dschibuti" fr="Djibouti" it="Gibuti"/>
<country code="dm" en="Dominica" de="Dominica" fr="Dominique" it="Dominica"/>
<country code="do" en="Dominican Republic" de="Dominikanische Republik" fr="République dominicaine" it="Repubblica Dominicana"/>
<country code="ec" en="Ecuador" de="Ecuador" fr="Équateur" it="Ecuador"/>
<country code="eg" en="Egypt" de="Ägypten" fr="Égypte" it="Egitto"/>
<country code="sv" en="El Salvador" de="El Salvador" fr="El Salvador" it="El Salvador"/>
<country code="gq" en="Equatorial Guinea" de="Äquatorialguinea" fr="Guinée équatoriale" it="Guinea equatoriale"/>
<country code="er" en="Eritrea" de="Eritrea" fr="Érythrée" it="Eritrea"/>
<country code="ee" en="Estonia" de="Estland" fr="Estonie" it="Estonia"/>
<country code="et" en="Ethiopia" de="Äthiopien" fr="Éthiopie" it="Etiopia"/>
<country code="fk" en="Falkland Islands" de="Falklandinseln" fr="Îles Falkland" it="Isole Falkland"/>
<country code="fo" en="Faroe Islands" de="Färöerinseln" fr="Îles Féroé" it="Isole Faroe"/>
<country code="fj" en="Fiji" de="Fidschi" fr="Fidji" it="Figi"/>
<country code="fi" en="Finland" de="Finnland" fr="Finlande" it="Finlandia"/>
<country code="fr" en="France" de="Frankreich" fr="France" it="Francia"/>
<country code="gf" en="French Guiana" de="Französisch-Guayana" fr="Guyane française" it="Guyana francese"/>
<country code="pf" en="French Polynesia" de="Französisch-Polynesien" fr="Polynésie française" it="Polinesia francese"/>
<country code="ga" en="Gabon" de="Gabun" fr="Gabon" it="Gabon"/>
<country code="gm" en="Gambia" de="Gambia" fr="Gambie" it="Gambia"/>
<country code="ge" en="Georgia" de="Georgien" fr="Géorgie" it="Georgia"/>
<country code="de" en="Germany" de="Deutschland" fr="Allemagne" it="Germania"/>
<country code="gh" en="Ghana" de="Ghana" fr="Ghana" it="Ghana"/>
<country code="gi" en="Gibraltar" de="Gibraltar" fr="Gibraltar" it="Gibilterra"/>
<country code="gb" en="Great Britain and Northern Ireland" de="Grossbritannien und Nordirland" fr="Royaume-Uni" it="Regno Unito"/>
<country code="gr" en="Greece" de="Griechenland" fr="Grèce" it="Grecia"/>
<country code="gl" en="Greenland" de="Grönland" fr="Groenland" it="Groenlandia"/>
<country code="gd" en="Grenada" de="Grenada" fr="Grenade" it="Grenada"/>
<country code="gp" en="Guadeloupe" de="Guadeloupe" fr="Guadeloupe" it="Guadalupa"/>
<country code="gu" en="Guam" de="Guam" fr="Guam" it="Guam"/>
<country code="gt" en="Guatemala" de="Guatemala" fr="Guatemala" it="Guatemala"/>
<country code="gg" en="Guernsey" de="Guernsey" fr="Guernesey" it="Guernsey"/>
<country code="gn" en="Guinea (Republic)" de="Guinea (Republik)" fr="République de Guinée" it="Guinea"/>
<country code="gw" en="Guinea-Bissau" de="Guinea-Bissau" fr="Guinée-Bissau" it="Guinea-Bissau"/>
<country code="gy" en="Guyana" de="Guyana" fr="Guyana" it="Guyana"/>
<country code="ht" en="Haiti" de="Haiti" fr="Haïti" it="Haiti"/>
<country code="hm" en="Heard AND McDonald Islands" de="Heard- und McDonald-Inseln" fr="Îles Heard et McDonald" it="Isola Heard e Isole McDonald"/>
<country code="hn" en="Honduras" de="Honduras" fr="Honduras" it="Honduras"/>
<country code="hk" en="Hong Kong" de="Hongkong" fr="Hong Kong" it="Hong Kong"/>
<country code="hu" en="Hungary" de="Ungarn" fr="Hongrie" it="Ungheria"/>
<country code="is" en="Iceland" de="Island" fr="Islande" it="Islanda"/>
<country code="in" en="India" de="Indien" fr="Inde" it="India"/>
<country code="id" en="Indonesia" de="Indonesien" fr="Indonésie" it="Indonesia"/>
<country code="ir" en="Iran" de="Iran" fr="Iran" it="Iran"/>
<country code="iq" en="Iraq" de="Irak" fr="Irak" it="Iraq"/>
<country code="ie" en="Ireland" de="Irland" fr="Irlande" it="Irlanda"/>
<country code="im" en="Island OF Man" de="Isle of Man" fr="Île de Man" it="Isola di Man"/>
<country code="il" en="Israel" de="Israel" fr="Israël" it="Israele"/>
<country code="it" en="Italy" de="Italien" fr="Italie" it="Italia"/>
<country code="ci" en="Ivory Coast" de="Côte d'Ivoire" fr="Côte dIvoire" it="Costa dAvorio"/>
<country code="jm" en="Jamaica" de="Jamaika" fr="Jamaïque" it="Giamaica"/>
<country code="jp" en="Japan" de="Japan" fr="Japon" it="Giappone"/>
<country code="je" en="Jersey" de="Jersey" fr="Jersey" it="Jersey"/>
<country code="jo" en="Jordan" de="Jordanien" fr="Jordanie" it="Giordania"/>
<country code="kz" en="Kazakhstan" de="Kasachstan" fr="Kazakhstan" it="Kazakstan"/>
<country code="ke" en="Kenya" de="Kenia" fr="Kenya" it="Kenya"/>
<country code="ki" en="Kiribati" de="Kiribati" fr="Kiribati" it="Kiribati"/>
<country code="kp" en="Korea, Democratic People's Republic of (North Korea)" de="Korea, Demokratische Volksrepublik (Nordkorea)" fr="République populaire démocratique de Corée (Corée du Nord)" it="Repubblica popolare democratica di Corea (Corea del Nord)"/>
<country code="kr" en="Korea, Republic of (South Korea)" de="Korea, Republik (Südkorea)" fr="République de Corée (Corée du Sud)" it="Repubblica di Corea (Corea del Sud)"/>
<country code="xk" en="Kosovo / Unmik" de="Kosovo / UNMIK" fr="Kosovo" it="Kosovo / UNMIK"/>
<country code="kw" en="Kuwait" de="Kuwait" fr="Koweït" it="Kuwait"/>
<country code="kg" en="Kyrgyzstan" de="Kirgisistan" fr="Kirghizistan" it="Kirghizistan"/>
<country code="la" en="Laos" de="Laos" fr="Laos" it="Laos"/>
<country code="lv" en="Latvia" de="Lettland" fr="Lettonie" it="Lettonia"/>
<country code="lb" en="Lebanon" de="Libanon" fr="Liban" it="Libano"/>
<country code="ls" en="Lesotho" de="Lesotho" fr="Lesotho" it="Lesotho"/>
<country code="lr" en="Liberia" de="Liberia" fr="Libéria" it="Liberia"/>
<country code="ly" en="Libya" de="Libyen" fr="Libye" it="Libia"/>
<country code="li" en="Liechtenstein" de="Liechtenstein" fr="Liechtenstein" it="Liechtenstein"/>
<country code="lt" en="Lithuania" de="Litauen" fr="Lituanie" it="Lituania"/>
<country code="lu" en="Luxembourg" de="Luxemburg" fr="Luxembourg" it="Lussemburgo"/>
<country code="mo" en="Macao" de="Macao" fr="Macao" it="Macao"/>
<country code="mk" en="Macedonia, the Former Yugoslav Republic of" de="Mazedonien, ehemalige jugoslawische Republik" fr="Macédoine du Nord" it="Macedonia del Nord"/>
<country code="mg" en="Madagascar" de="Madagaskar" fr="Madagascar" it="Madagascar"/>
<country code="mw" en="Malawi" de="Malawi" fr="Malawi" it="Malawi"/>
<country code="my" en="Malaysia" de="Malaysia" fr="Malaisie" it="Malaysia"/>
<country code="mv" en="Maldives" de="Malediven" fr="Maldives" it="Maldive"/>
<country code="ml" en="Mali" de="Mali" fr="Mali" it="Mali"/>
<country code="mt" en="Malta" de="Malta" fr="Malte" it="Malta"/>
<country code="mp" en="Mariana Islands" de="Marianen" fr="Îles Mariannes" it="Isole Marianne"/>
<country code="mh" en="Marshall Islands" de="Marshallinseln" fr="Îles Marshall" it="Isole Marshall"/>
<country code="mq" en="Martinique" de="Martinique" fr="Martinique" it="Martinica"/>
<country code="mr" en="Mauritania" de="Mauretanien" fr="Mauritanie" it="Mauritania"/>
<country code="mu" en="Mauritius Island" de="Mauritius" fr="Île Maurice" it="Maurizio"/>
<country code="yt" en="Mayotte" de="Mayotte" fr="Mayotte" it="Mayotte"/>
<country code="mx" en="Mexico" de="Mexiko" fr="Mexique" it="Messico"/>
<country code="fm" en="Micronesia (Federated States OF)" de="Mikronesien (Föderierte Staaten von)" fr="États fédérés de Micronésie" it="Stati Federati di Micronesia"/>
<country code="md" en="Moldova" de="Moldau" fr="Moldavie" it="Moldova"/>
<country code="mc" en="Monaco" de="Monaco" fr="Monaco" it="Monaco"/>
<country code="mn" en="Mongolia" de="Mongolei" fr="Mongolie" it="Mongolia"/>
<country code="me" en="Montenegro, Republic" de="Montenegro, Republik" fr="Monténégro" it="Montenegro"/>
<country code="ms" en="Montserrat" de="Montserrat" fr="Montserrat" it="Montserrat"/>
<country code="ma" en="Morocco" de="Marokko" fr="Maroc" it="Marocco"/>
<country code="mz" en="Mozambique" de="Mosambik" fr="Mozambique" it="Mozambico"/>
<country code="mm" en="Myanmar (Union of)" de="Myanmar (Union)" fr="Myanmar" it="Myanmar"/>
<country code="na" en="Namibia" de="Namibia" fr="Namibie" it="Namibia"/>
<country code="nr" en="Nauru" de="Nauru" fr="Nauru" it="Nauru"/>
<country code="np" en="Nepal" de="Nepal" fr="Népal" it="Nepal"/>
<country code="nl" en="Netherlands" de="Niederlande" fr="Pays-Bas" it="Paesi Bassi"/>
<country code="nc" en="New Caledonia" de="Neukaledonien" fr="Nouvelle-Calédonie" it="Nuova Caledonia"/>
<country code="nz" en="New Zealand" de="Neuseeland" fr="Nouvelle-Zélande" it="Nuova Zelanda"/>
<country code="ni" en="Nicaragua" de="Nicaragua" fr="Nicaragua" it="Nicaragua"/>
<country code="ne" en="Niger" de="Niger" fr="Niger" it="Niger"/>
<country code="ng" en="Nigeria" de="Nigeria" fr="Nigéria" it="Nigeria"/>
<country code="nu" en="Niua" de="Niue" fr="Nioué" it="Isole Niua"/>
<country code="nf" en="Norfolk Island" de="Norfolkinsel" fr="Île Norfolk" it="Isola Norfolk"/>
<country code="no" en="Norway" de="Norwegen" fr="Norvège" it="Norvegia"/>
<country code="om" en="Oman" de="Oman" fr="Oman" it="Oman"/>
<country code="pk" en="Pakistan" de="Pakistan" fr="Pakistan" it="Pakistan"/>
<country code="pw" en="Palau" de="Palau" fr="Palaos" it="Palau"/>
<country code="ps" en="Palestine" de="Palästina" fr="Palestine" it="Palestina"/>
<country code="pa" en="Panama" de="Panama" fr="Panama" it="Panama"/>
<country code="pg" en="Papua New Guinea" de="Papua-Neuguinea" fr="Papouasie-Nouvelle-Guinée" it="Papua Nuova Guinea"/>
<country code="py" en="Paraguay" de="Paraguay" fr="Paraguay" it="Paraguay"/>
<country code="pe" en="Peru" de="Peru" fr="Pérou" it="Perù"/>
<country code="ph" en="Philippines" de="Philippinen" fr="Philippines" it="Filippine"/>
<country code="pn" en="Pitcairn" de="Pitcairn" fr="Îles Pitcairn" it="Isole Pitcairn"/>
<country code="pl" en="Poland" de="Polen" fr="Pologne" it="Polonia"/>
<country code="pt" en="Portugal" de="Portugal" fr="Portugal" it="Portogallo"/>
<country code="pr" en="Puerto Rico" de="Puerto Rico" fr="Porto Rico" it="Porto Rico"/>
<country code="qa" en="Qatar" de="Katar" fr="Qatar" it="Qatar"/>
<country code="re" en="Réunion" de="Réunion" fr="La Réunion" it="Isola della Riunione"/>
<country code="ro" en="Romania" de="Rumänien" fr="Roumanie" it="Romania"/>
<country code="ru" en="Russian Federation" de="Russische Föderation" fr="Russie" it="Russia"/>
<country code="rw" en="Rwanda" de="Ruanda" fr="Rwanda" it="Ruanda"/>
<country code="sb" en="Salomon Islands" de="Salomoninseln" fr="Îles Salomon" it="Isole Salomone"/>
<country code="sm" en="San Marino" de="San Marino" fr="Saint-Marin" it="San Marino"/>
<country code="sa" en="Saudi Arabia" de="Saudi-Arabien" fr="Arabie saoudite" it="Arabia Saudita"/>
<country code="sn" en="Senegal" de="Senegal" fr="Sénégal" it="Senegal"/>
<country code="rs" en="Serbia, Republic" de="Serbien, Republik" fr="Serbie" it="Serbia"/>
<country code="sc" en="Seychelles" de="Seychellen" fr="Seychelles" it="Seychelles"/>
<country code="sl" en="Sierra Leone" de="Sierra Leone" fr="Sierra Leone" it="Sierra Leone"/>
<country code="sg" en="Singapore" de="Singapur" fr="Singapour" it="Singapore"/>
<country code="sk" en="Slovak Republic" de="Slowakei" fr="Slovaquie" it="Slovacchia"/>
<country code="si" en="Slovenia" de="Slowenien" fr="Slovénie" it="Slovenia"/>
<country code="so" en="Somalia" de="Somalia" fr="Somalie" it="Somalia"/>
<country code="za" en="South Africa" de="Südafrika" fr="Afrique du Sud" it="Sudafrica"/>
<country code="gs" en="South Georgia AND the south Sandwich Islands" de="Südgeorgien und die Südlichen Sandwichinseln" fr="Îles Géorgie du Sud et Sandwich du Sud" it="Georgia del Sud e Sandwich Australi"/>
<country code="ss" en="South Sudan" de="Südsudan" fr="Soudan du Sud" it="Sudan del Sud"/>
<country code="es" en="Spain" de="Spanien" fr="Espagne" it="Spagna"/>
<country code="lk" en="Sri Lanka" de="Sri Lanka" fr="Sri Lanka" it="Sri Lanka"/>
<country code="bl" en="St. Barthélemy" de="St. Barthélemy" fr="Saint-Barthélemy" it="Saint Barthélemy"/>
<country code="kn" en="St. Christopher (St. Kitts) and Nevis" de="St. Kitts und Nevis" fr="Saint-Christophe-et-Niévès" it="Saint Kitts e Nevis"/>
<country code="sh" en="St. Helena, Ascension and Tristan da Cunha" de="St. Helena, Ascension und Tristan da Cunha" fr="Sainte-Hélène, Ascension et Tristan da Cunha" it="SantElena, Ascensione e Tristan da Cunha"/>
<country code="lc" en="St. Lucia" de="St. Lucia" fr="Sainte-Lucie" it="Santa Lucia"/>
<country code="sx" en="St. Maarten" de="Sint Maarten" fr="Sint-Maarten" it="Sint Maarten"/>
<country code="mf" en="St. Martin" de="St. Martin" fr="Saint-Martin" it="Saint Martin"/>
<country code="pm" en="St. Pierre and Miquelon" de="St. Pierre und Miquelon" fr="Saint-Pierre-et-Miquelon" it="Saint-Pierre e Miquelon"/>
<country code="st" en="St. Tome and Principe" de="São Tomé und Príncipe" fr="Sao Tomé-et-Principe" it="São Tomé e Príncipe"/>
<country code="vc" en="St. Vincent and the Grenadines" de="St. Vincent und die Grenadinen" fr="Saint-Vincent-et-les-Grenadines" it="Saint Vincent e Grenadine"/>
<country code="sd" en="Sudan" de="Sudan" fr="Soudan" it="Sudan"/>
<country code="sr" en="Suriname" de="Suriname" fr="Suriname" it="Suriname"/>
<country code="sj" en="Svalbard and Jan Mayen Island" de="Svalbard und Jan Mayen-Insel" fr="Svalbard et Jan Mayen" it="Svalbard e Jan Mayen"/>
<country code="sz" en="Swaziland" de="Eswatini" fr="Swaziland" it="Eswatini"/>
<country code="se" en="Sweden" de="Schweden" fr="Suède" it="Svezia"/>
<country code="ch" en="Switzerland" de="Schweiz" fr="Suisse" it="Svizzera"/>
<country code="sy" en="Syria" de="Syrien" fr="Syrie" it="Siria"/>
<country code="tw" en="Taiwan (Chinese Taipei)" de="Taiwan (Chinesisches Taipei)" fr="Taïwan (Taipei chinois)" it="Taiwan (Taipei cinese)"/>
<country code="tj" en="Tajikistan" de="Tadschikistan" fr="Tadjikistan" it="Tagikistan"/>
<country code="tz" en="Tanzania" de="Tansania" fr="Tanzanie" it="Tanzania"/>
<country code="th" en="Thailand" de="Thailand" fr="Thaïlande" it="Thailandia"/>
<country code="tl" en="Timor-Leste" de="Timor-Leste" fr="Timor-Leste" it="Timor-Leste"/>
<country code="tg" en="Togo" de="Togo" fr="Togo" it="Togo"/>
<country code="tk" en="Tokelau" de="Tokelau" fr="Tokélaou" it="Tokelau"/>
<country code="to" en="Tonga" de="Tonga" fr="Tonga" it="Tonga"/>
<country code="tt" en="Trinidad and Tobago" de="Trinidad und Tobago" fr="Trinité-et-Tobago" it="Trinidad e Tobago"/>
<country code="tn" en="Tunisia" de="Tunesien" fr="Tunisie" it="Tunisia"/>
<country code="tr" en="Turkey" de="Türkiye" fr="Turquie" it="Turchia"/>
<country code="tm" en="Turkmenistan" de="Turkmenistan" fr="Turkménistan" it="Turkmenistan"/>
<country code="tc" en="Turks and Caicos" de="Turks- und Caicosinseln" fr="Turks-et-Caïcos" it="Isole Turks e Caicos"/>
<country code="tv" en="Tuvalu" de="Tuvalu" fr="Tuvalu" it="Tuvalu"/>
<country code="ug" en="Uganda" de="Uganda" fr="Ouganda" it="Uganda"/>
<country code="ua" en="Ukraine" de="Ukraine" fr="Ukraine" it="Ucraina"/>
<country code="ae" en="United Arab Emirates" de="Vereinigte Arabische Emirate" fr="Émirats arabes unis" it="Emirati Arabi Uniti"/>
<country code="um" en="United States Minor Outlying Islands" de="United States Minor Outlying Islands" fr="Îles mineures éloignées des États-Unis" it="Isole Minori Esterne degli Stati Uniti"/>
<country code="us" en="United States of America" de="Vereinigte Staaten von Amerika" fr="États-Unis dAmérique" it="Stati Uniti"/>
<country code="uy" en="Uruguay" de="Uruguay" fr="Uruguay" it="Uruguay"/>
<country code="uz" en="Uzbekistan" de="Usbekistan" fr="Ouzbékistan" it="Uzbekistan"/>
<country code="vu" en="Vanuatu" de="Vanuatu" fr="Vanuatu" it="Vanuatu"/>
<country code="va" en="Vatican City State" de="Vatikanstadt" fr="Saint-Siège (Cité du Vatican)" it="Città del Vaticano"/>
<country code="ve" en="Venezuela" de="Venezuela" fr="Venezuela" it="Venezuela"/>
<country code="vn" en="Vietnam" de="Vietnam" fr="Vietnam" it="Vietnam"/>
<country code="vi" en="Virgin Islands (USA)" de="Jungferninseln (USA)" fr="Îles Vierges américaines" it="Isole Vergini"/>
<country code="vg" en="Virgin Islands, British (Tortola)" de="British Virgin Islands (Tortola)" fr="Îles Vierges britanniques (Tortola)" it="Isole Vergini britanniche"/>
<country code="wf" en="Wallis and Futuna Islands" de="Wallis und Futuna" fr="Îles Wallis-et-Futuna" it="Wallis e Futuna"/>
<country code="eh" en="Western Sahara" de="Westsahara" fr="Sahara occidental" it="Sahara occidentale"/>
<country code="ws" en="Western Samoa" de="Samoa" fr="Samoa" it="Samoa occidentale"/>
<country code="ye" en="Yemen" de="Jemen" fr="Yémen" it="Yemen"/>
<country code="zm" en="Zambia" de="Sambia" fr="Zambie" it="Zambia"/>
<country code="zw" en="Zimbabwe" de="Simbabwe" fr="Zimbabwe" it="Zimbabwe" />
</country-names>

View File

@ -0,0 +1,157 @@
import java.text.SimpleDateFormat
import groovy.text.SimpleTemplateEngine
import ch.nevis.idm.client.IdmRestClient
import ch.nevis.idm.client.IdmRestClientFactory
def getDateWithoutTimestamp(String date){
def result = date
if(date.matches('^[0-9-]+[+]{1}.*')){
result = date.replaceAll('[+]{1}.*', "")
}
return result
}
// NOTE/aca/2025/06/19: We could also reload the data from idm after the update instead of updating the session variables manualy -> probably better and less error-prone
def compareAndUpdateSessionVariables(sess, keys, isProperty){
def updatedKeys = []
for(key in keys){
def idmkey = isProperty ? "ch.nevis.idm.User.prop.$key" : "ch.nevis.idm.User.$key"
def eidValue = session["agov.eid.User.$key"] ?: ""
def idmValue = session[idmkey] ?: ""
if(!idmValue || eidValue != idmValue){
sess.setAttribute(idmkey, eidValue)
updatedKeys.add(key)
}
}
return updatedKeys
}
String user_update_dto_template = '''
{
"name": {
"firstName": "$firstName",
"familyName": "$familyName"
},
"properties": {
"svnr": "$svnr",
"placeOfBirth": "$placeOfBirth",
"nationality": "$nationality",
"eIdNumber": "$eIdNumber"
},
"gender": "$gender",
"birthDate": "$birthDate",
"modificationComment": "updated user information with eid attributes during request $request"
}
'''
// Accounting
def requester = session['ch.nevis.auth.saml.request.scoping.requesterId'] ?: 'unknown'
def requestId = session['ch.nevis.auth.saml.request.id'] ?: 'unknown'
def requestedAq = session['agov.requestedRoleLevel'] ?: 'unknown'
def user = session['ch.adnovum.nevisidm.user.extId'] ?: 'unknown'
def credentialType = session['authenticatedWith'] ?: 'unknown'
def sourceIp = request.getLoginContext()['connection.HttpHeader.X-Real-IP'] ?: 'unknown'
def userAgent = request.getLoginContext()['connection.HttpHeader.user-agent'] ?: request.getLoginContext()['connection.HttpHeader.User-Agent'] ?: 'unknown'
def sess = request.getAuthSession(true)
// Convert EID gender format to IDM
if(sess.get('agov.eid.User.gender') == '1'){
sess.setAttribute('agov.eid.User.gender', 'MALE')
}
if(sess.get('agov.eid.User.gender') == '2'){
sess.setAttribute('agov.eid.User.gender', 'FEMALE')
}
if(sess.get('agov.eid.User.gender') == '3'){
sess.setAttribute('agov.eid.User.gender', 'OTHER')
}
// Compare eid and idm attributes + update idm session variables if they differ
def attributesToAudit = compareAndUpdateSessionVariables(sess, ["firstName", "lastName", "gender"], false)
// NOTE/aca/2025/06/14/: Potentally Throw a DATA ERROR if the properties are different? -> should the svnr number ever change?
def propertiesToAudit = compareAndUpdateSessionVariables(sess, ["svnr", "eIdNumber", "nationality", "placeOfBirth"], true)
// Handle birthdate seperately, since it can contain a timestamp -> we probably don't want to update if only the timestamp is wrong
String eidBirthdate = getDateWithoutTimestamp(session["agov.eid.User.birthDate"] ?: "")
String idmBirthdate = getDateWithoutTimestamp(session["ch.nevis.idm.User.birthDate"] ?: "")
LOG.debug("eidBirthdate: $eidBirthdate idmBirthdate: $idmBirthdate")
if(eidBirthdate != idmBirthdate){
sess.setAttribute("ch.nevis.idm.User.birthDate", eidBirthdate)
// For some reson IdmGetPropertyState uses a different date format than IdmSetPropertyState?
//def date = new SimpleDateFormat('yyyy-MM-dd').parse(eidBirthdate)
//def idmFromatedBirthDate = new SimpleDateFormat('dd.MM.yyyy').format(date)
//sess.setAttribute("ch.nevis.idm.User.birthDate.idmFormat", idmFromatedBirthDate)
attributesToAudit.add("birthDate")
}
// Check if we need to update IDM
def auditedRequired = attributesToAudit.size() > 0 || propertiesToAudit.size() > 0
if(auditedRequired){
// update attributes in idm & transition to User notification
IdmRestClient idmRestClient = IdmRestClientFactory.get(parameters)
String baseUrl = parameters.get("baseUrl")
String clientExtId = parameters.get("clientExtId")
String endPoint = "$baseUrl/api/core/v1"
String userExtId = sess.getAttribute("ch.nevis.idm.User.extId")
String requestUrl = "$endPoint/$clientExtId/users/$userExtId"
def binding = [
"firstName": sess.getAttribute('agov.eid.User.firstName'),
"familyName": sess.getAttribute('agov.eid.User.lastName'),
"svnr": sess.getAttribute('agov.eid.User.svnr'),
"placeOfBirth": sess.getAttribute('agov.eid.User.placeOfBirth'),
"nationality": sess.getAttribute('agov.eid.User.nationality'),
"eIdNumber": sess.getAttribute('agov.eid.User.eIdNumber'),
"gender": sess.getAttribute('agov.eid.User.gender').toLowerCase(),
"birthDate": sess.getAttribute('agov.eid.User.birthDate'),
"request": requestId
]
def templateEngine = new SimpleTemplateEngine()
def userUpdateDto = templateEngine.createTemplate(user_update_dto_template).make(binding).toString()
try {
idmRestClient.patch(requestUrl, userUpdateDto)
}catch(Exception e) {
LOG.error("Failed to update User data in IDM: ${e}")
LOG.error("Event='DATAERROR', Requester='${requester}', RequestId='${requestId}', RequestedAq=${requestedAq}, User=${user}, CredentialType='${credentialType}', SourceIp=${sourceIp}, UserAgent='${userAgent}', reason='Failed to update User data in IDM'")
response.setResult('error')
return
}
String printKeys = attributesToAudit.toListString()
LOG.debug("AuditedAttributes: $printKeys")
// Transform gender back to number
if(sess.get('ch.nevis.idm.User.gender') == 'MALE'){
sess.setAttribute('ch.nevis.idm.User.gender', '1')
}
if(sess.get('ch.nevis.idm.User.gender') == 'FEMALE'){
sess.setAttribute('ch.nevis.idm.User.gender', '2')
}
if(sess.get('ch.nevis.idm.User.gender') == 'OTHER'){
sess.setAttribute('ch.nevis.idm.User.gender', '3')
}
response.setResult('audited')
}else{
// Attributes match & no notification needed => continue by updating the linking credential and sending the saml assertion
// NOTE/aca/2025/06/19: We skip checking the account state, recovery code, mobile number and LoA
LOG.debug("No Audit Required: Logging user in")
response.setResult('noChange')
}

View File

@ -0,0 +1,234 @@
import ch.nevis.esauth.auth.engine.AuthResponse
import ch.nevis.idm.client.IdmRestClient
import ch.nevis.idm.client.IdmRestClientFactory
import ch.nevis.idm.client.HTTPRequestWrapper
import groovy.json.JsonSlurper
import groovy.json.JsonBuilder
def getHeader(String name) {
def inctx = request.getLoginContext()
// case-insensitive lookup of HTTP headers
def map = new TreeMap<>(String.CASE_INSENSITIVE_ORDER)
map.putAll(inctx)
return map['connection.HttpHeader.' + name]
}
def clearEidSession(){
def s = request.getAuthSession(true)
s.removeAttribute('agov.eid.verification')
s.removeAttribute('agov.eid.verification.id')
s.removeAttribute('agov.eid.verification.link')
s.removeAttribute('agov.eid.linkedAccountsDto')
s.removeAttribute('agov.eid.User.birthDate')
s.removeAttribute('agov.eid.User.eIdNumber')
s.removeAttribute('agov.eid.User.firstName')
s.removeAttribute('agov.eid.User.lastName')
s.removeAttribute('agov.eid.User.gender')
s.removeAttribute('agov.eid.User.nationality')
s.removeAttribute('agov.eid.User.placeOfBirth')
s.removeAttribute('agov.eid.User.svnr')
s.removeAttribute('agov.eid.User.origin')
}
def updateLoginHistory(idmRestClient, userExtId, credentialExtId) {
try {
def baseUrl = parameters.get("baseUrl")
def clientExtId = parameters.get("clientExtId")
def endpoint = "$baseUrl/api/core/v1/$clientExtId/users/$userExtId/login-info"
def dto = "{\"success\": true,\"credentialExtId\": \"${credentialExtId}\"}"
def postRequest = new HTTPRequestWrapper()
postRequest.addToHeaders('Content-Type', ['application/json'])
postRequest.setPayLoad(dto.getBytes('UTF-8'))
postRequest.setPayLoad(dto.getBytes('UTF-8'))
def result = idmRestClient.postWithResponse(endpoint, postRequest)
if (result.getStatusCode() != 200) {
// best effort, we log only
// TODO/haburger/2025-06-24: context parameters are missing here (also in getAccounts)
LOG.warn("Event='DATAERROR', Requester='${requester}', RequestId='${requestId}', RequestedAq=${requestedAq}, User=${userExtId}, CredentialType='E-ID Link', SourceIp=${sourceIp}, UserAgent='${userAgent}', reason='failed to update login history for credential ${credentialExtId} (http status: ${result.getStatusCode()})'")
}
} catch (Exception e) {
// best effort, we log only
// TODO/haburger/2025-06-24: context parameters are missing here (also in getAccounts)
LOG.warn("Event='DATAERROR', Requester='${requester}', RequestId='${requestId}', RequestedAq=${requestedAq}, User=${userExtId}, CredentialType='E-ID Link', SourceIp=${sourceIp}, UserAgent='${userAgent}', reason='failed to update login history for credential ${credentialExtId} (${e})'")
}
}
def getAccounts(json, String svnr) {
def idm_users_dto = json["Resources"]
def accounts = [:]
def frontend_dto = []
for(user in idm_users_dto){
def credentials_dto = user["urn:nevis:idm:scim:schemas:v1:extension:User"]["credentials"]
if(!credentials_dto){
LOG.warn("Event='DATAERROR', Requester='${requester}', RequestId='${requestId}', RequestedAq=${requestedAq}, User=${extId}, CredentialType='${credentialType}', SourceIp=${sourceIp}, UserAgent='${userAgent}', reason='AGOV account has no credentials'")
}
for(cred in credentials_dto){
def foundCredential = false
def extId = user["externalId"]
//TODO/aca/2025/06/11: Can we have multiple email adresses? -> if yes search for primary
String email = user["emails"][0]["value"]
if(cred["type"] == "SAMLFEDERATION" && cred["issuerNameId"] == svnr){
// we found a second federation credential in one AGOV account -> Throw data error
if(foundCredential){
LOG.error("Event='DATAERROR', Requester='${requester}', RequestId='${requestId}', RequestedAq=${requestedAq}, User=${extId}, CredentialType='${credentialType}', SourceIp=${sourceIp}, UserAgent='${userAgent}', reason='Multiple EId linking credentials found in one AGOV account'")
return [null,null]
}
// extract login info
def firstLogin = true
if(cred["credentialLoginInfo"]){
if(cred["credentialLoginInfo"]["lastLogin"] && cred["credentialLoginInfo"]["lastLogin"] != ""){
firstLogin = false
}
}
//NOTE/aca/2025/06/11: Assume that this is sanitized when registered.
def accountName = cred['subjectNameId']
def credentialExtId = cred['extId']
accounts.put(email, [ "extId": extId, "credentialExtId": cred['extId'], "firstLogin": firstLogin ] )
frontend_dto.add(["email": email, "description": accountName])
foundCredential=true
}
}
}
return [ accounts, [ "accounts": frontend_dto ] ]
}
def sess = request.getAuthSession(true)
IdmRestClient idmRestClient = IdmRestClientFactory.get(parameters)
// Accounting
def requester = session['ch.nevis.auth.saml.request.scoping.requesterId'] ?: 'unknown'
def requestId = session['ch.nevis.auth.saml.request.id'] ?: 'unknown'
def requestedAq = session['agov.requestedRoleLevel'] ?: 'unknown'
def user = session['ch.adnovum.nevisidm.user.extId'] ?: 'unknown'
def credentialType = session['authenticatedWith'] ?: 'unknown'
def sourceIp = request.getLoginContext()['connection.HttpHeader.X-Real-IP'] ?: 'unknown'
def userAgent = request.getLoginContext()['connection.HttpHeader.user-agent'] ?: request.getLoginContext()['connection.HttpHeader.User-Agent'] ?: 'unknown'
if(inargs['submit'] && inargs['login'] && inargs['login'] != ''){
LOG.debug("Account with email: ${inargs['login']} was selceted -> Continuing")
def accounts = new JsonSlurper().parseText(session['agov.eid.linkedAccountsDto'])
def account = accounts.get( inargs['login'].trim() )
sess.setAttribute('agov.eid.linkingCredentialExtId', account["credentialExtId"])
sess.setAttribute('agov.eid.linkedAccountExtId', account["extId"])
// update login history
updateLoginHistory(idmRestClient, account["extId"], account["credentialExtId"])
if(account["firstLogin"]){
response.setResult('firstLogin')
return
}
response.setResult('ok')
return
}
if(inargs['cancelEid'] && inargs['cancelEid'] == 'cancel'){
LOG.debug("Account selection was canceled: back to initial login screen")
clearEidSession()
response.setResult('backToVerification')
return
}
if(getHeader('Content-Type') == 'application/json'){
String account_selection_dto = session['agov.eid.linkedAccountsFrontendDto']
response.setContent(account_selection_dto.toString())
response.setContentType('application/json')
response.setHttpStatusCode(200)
response.setIsDirectResponse(true)
response.setStatus(AuthResponse.AUTH_CONTINUE)
return
}
String baseUrl = parameters.get("baseUrl")
String clientExtId = parameters.get("clientExtId")
String endPoint = "$baseUrl/api/scim/v1/$clientExtId/Users"
// Fetch account identifier
String svnr = sess.getAttribute("agov.eid.User.svnr")
LOG.debug("search for accounts with SVNR: $svnr")
// Pepare GET request
String attributes = "externalId,emails,urn:nevis:idm:scim:schemas:v1:extension:User.credentials.type,urn:nevis:idm:scim:schemas:v1:extension:User.credentials.issuerNameId,urn:nevis:idm:scim:schemas:v1:extension:User.credentials.subjectNameId,urn:nevis:idm:scim:schemas:v1:extension:User.credentials.extId,urn:nevis:idm:scim:schemas:v1:extension:User.credentials.credentialLoginInfo.lastLogin"
String filter = "urn:nevis:idm:scim:schemas:v1:extension:User.credentials.type=='SAMLFEDERATION'%20AND%20urn:nevis:idm:scim:schemas:v1:extension:User.credentials.issuerNameId=='$svnr'"
String requestUrl = "$endPoint?count=20&attributes=$attributes&filter=$filter"
String scimResponse
try {
scimResponse = idmRestClient.get(requestUrl)
//TODO/aca/2025/06/11: Fetch more pages if more than 20 entries have been found
LOG.debug("SCIM Response: $scimResponse")
def json = new JsonSlurper().parseText(scimResponse)
def (accounts, frontend_dto) = getAccounts(json, svnr)
// unrecoverable DATA ERROR happend
if(!accounts){
response.setResult('error')
return
}
def numAccounts = accounts.size()
LOG.debug("Linked accounts found: " + frontend_dto.toString())
if(numAccounts == 0){
//TODO/aca/2025-06-10: Implement next step
// Redirect to an error page or linking page when that's ready and decided
sess.setAttribute("eid.placeholder.text", "EId: No AGOV Account found case not implemented yet")
response.setResult('noAccount')
return
}else if(numAccounts == 1){
// One account found -> continue with loading attributes from idm (+ notification if it is the first login)
def account = accounts.values().first()
sess.setAttribute('agov.eid.linkingCredentialExtId', account["credentialExtId"])
sess.setAttribute('agov.eid.linkedAccountExtId', account["extId"])
// update login history
updateLoginHistory(idmRestClient, account["extId"], account["credentialExtId"])
if(account["firstLogin"]){
response.setResult('firstLogin')
return
}
response.setResult('ok')
return
}else{
// Multiple accounts found -> Dispatch the account selection screen
sess.setAttribute('agov.eid.linkedAccountsDto', new JsonBuilder(accounts).toString())
sess.setAttribute('agov.eid.linkedAccountsFrontendDto', new JsonBuilder(frontend_dto).toString())
LOG.debug("Show GUI")
response.setStatus(AuthResponse.AUTH_CONTINUE)
return
}
} catch(Exception e) {
LOG.error("Fetching Agov Accounts Failed: ${e}")
sess.setAttribute("eid.placeholder.text", "EId: An exception occured while fetching the AGOV accounts\n: ${e}")
response.setResult('error')
return
}

View File

@ -0,0 +1,38 @@
import ch.nevis.idm.client.IdmRestClient
import ch.nevis.idm.client.IdmRestClientFactory
String user_notification_dto = '''
{
"clientExtId": "{{clientExtId}}",
"userExtId": "{{userExtId}}",
"notificationType": "userNotification4",
"sendingMethod": [
"Email"
],
"async": false
}
'''
IdmRestClient idmRestClient = IdmRestClientFactory.get(parameters)
def sess = request.getAuthSession(true)
String baseUrl = parameters.get("baseUrl")
String clientExtId = parameters.get("clientExtId")
String endPoint = "$baseUrl/api/notification/v1/"
String userExtId = sess.getAttribute("agov.eid.linkedAccountExtId")
String restRequest = user_notification_dto.replaceAll("\\{\\{clientExtId}}", clientExtId).replaceAll("\\{\\{userExtId}}", userExtId)
try {
idmRestClient.post(endPoint, restRequest)
}catch(Exception e) {
LOG.error("Failed to send User Notification: First Login: ${e}")
response.setResult('error')
return
}
response.setResult('ok')
return

View File

@ -0,0 +1,38 @@
import ch.nevis.idm.client.IdmRestClient
import ch.nevis.idm.client.IdmRestClientFactory
String user_notification_dto = '''
{
"clientExtId": "{{clientExtId}}",
"userExtId": "{{userExtId}}",
"notificationType": "userNotification3",
"sendingMethod": [
"Email"
],
"async": false
}
'''
IdmRestClient idmRestClient = IdmRestClientFactory.get(parameters)
def sess = request.getAuthSession(true)
String baseUrl = parameters.get("baseUrl")
String clientExtId = parameters.get("clientExtId")
String endPoint = "$baseUrl/api/notification/v1/"
String userExtId = sess.getAttribute("ch.nevis.idm.User.extId")
String restRequest = user_notification_dto.replaceAll("\\{\\{clientExtId}}", clientExtId).replaceAll("\\{\\{userExtId}}", userExtId)
try {
idmRestClient.post(endPoint, restRequest)
}catch(Exception e) {
LOG.error("Failed to send User Notification: Idm Update with EId data: ${e}")
response.setResult('error')
return
}
response.setResult('ok')
return

View File

@ -0,0 +1,17 @@
import ch.nevis.esauth.auth.engine.AuthResponse
if(inargs['cancel']){
LOG.debug("Account registration canceled: Send response with error")
response.setResult('back')
return
}
if(inargs['register'] == "agov"){
LOG.debug("AGOV account registration was selected")
response.setResult('register')
return
}
LOG.debug("Show GUI")
response.setStatus(AuthResponse.AUTH_CONTINUE)
return

View File

@ -0,0 +1,36 @@
import ch.nevis.idm.client.IdmRestClient
import ch.nevis.idm.client.IdmRestClientFactory
String login_info_update_dto = '''
{
"success": true,
"credentialExtId": "{{credentialExtId}}"
}
'''
IdmRestClient idmRestClient = IdmRestClientFactory.get(parameters)
def sess = request.getAuthSession(true)
String baseUrl = parameters.get("baseUrl")
String clientExtId = parameters.get("clientExtId")
String endPoint = "$baseUrl/api/core/v1"
String userExtId = sess.getAttribute("ch.nevis.idm.User.extId")
String linkingCredentialExtId = sess.getAttribute("agov.eid.linkingCredentialExtId")
String requestUrl = "$endPoint/$clientExtId/users/$userExtId/login-info"
String restRequest = login_info_update_dto.replaceAll("\\{\\{credentialExtId}}", linkingCredentialExtId)
try {
idmRestClient.post(requestUrl, restRequest)
}catch(Exception e) {
LOG.error("Failed to Update Linking Credential info: ${e}")
response.setResult('error')
return
}
response.setResult('ok')
return

View File

@ -4,6 +4,10 @@ import ch.nevis.esauth.util.httpclient.api.HttpClient
import groovy.json.JsonSlurper
import io.opentelemetry.api.trace.Span
import java.time.LocalDate
import java.time.ZoneId
import java.time.ZoneOffset
import com.fasterxml.uuid.Generators
def getHeader(String name) {
@ -57,6 +61,13 @@ def getNewVerification(Session sess, HttpClient httpClient, String verification_
return true
}
def clearEidSession(){
def s = request.getAuthSession(true)
s.removeAttribute('agov.eid.verification')
s.removeAttribute('agov.eid.verification.id')
s.removeAttribute('agov.eid.verification.link')
}
def verification_request_template = '''
{ "presentation_definition": {
"id": "{{UUID}}",
@ -211,29 +222,39 @@ if (inargs['oid4vp'] == 'SUCCEEDED') {
return
}
/*
// Temporary for CANCELED
if (inargs['oid4vp'] == 'CANCELED') {
LOG.debug("oid4vp canceled")
response.setResult('error')
// switch to access App
if (inargs['accessApp'] == 'accessApp') {
//TODO/aca/2025/06/19: In theory we could also land here when we send 'SUCCESS' to the frontend -> would be better to clear all session vaiables that can be set in this Authstate
//TODO/aca/2025/06/19: Should we here rather set the LOGINMETHOD cookie and send an error assertion, since otherwise we might swich states too often and Nevis will kill the session?
clearEidSession()
LOG.debug("Switch to Access App")
sess.setAttribute('agov.lastLoginMethod', 'accessApp')
response.setResult('agovLogin')
return
}
// switch to fido2
if (inargs['securityKey'] == 'securityKey') {
clearEidSession()
LOG.debug("Switch to Security Key")
sess.setAttribute('agov.lastLoginMethod', 'securityKey')
response.setResult('agovLogin')
return
}
// switch to registration
if (inargs['fallback'] == 'register') {
clearEidSession()
LOG.debug("Switch to registration")
response.setResult('register')
return
}
*/
HttpClient httpClient = HttpClients.create(parameters)
def spanCtxt = Span.current().getSpanContext()
def traceparent = "00-${spanCtxt.getTraceId()}-${spanCtxt.getSpanId()}-${spanCtxt.getTraceFlags().asHex()}"
/*
if (!session['agov.eid.verification']) {
LOG.debug("Initializing verification")
if(!getNewVerification(sess, httpClient, verification_request_template, traceparent)){
response.setResult('error')
return
}
}
*/
if (getHeader('Content-Type') == 'application/json' && inargs.containsKey('o.id.v')) {
LOG.debug("Request Status Update")
@ -300,7 +321,7 @@ if (getHeader('Content-Type') == 'application/json' && inargs.containsKey('o.id.
"error_code": "HTTP-ERROR",
"error_message": "Faild to verify status of verification, http status: ${httpResponse.code()}"
}}"""
LOG.warn("<== Response: ${responseCode}")
LOG.warn("<== Response: ${httpResponse.code()}")
}
else if (httpResponse.code() != 200) {
LOG.debug("Result: ${httpResponse}")
@ -315,7 +336,7 @@ if (getHeader('Content-Type') == 'application/json' && inargs.containsKey('o.id.
"error_code": "HTTP-ERROR",
"error_message": "failed to verify status of verification ${idvalue}, http status: ${httpResponse.code()}"
}}"""
LOG.warn("<== Response: ${responseCode}")
LOG.warn("<== Response: ${httpResponse.code()}")
}
else {
@ -324,25 +345,37 @@ if (getHeader('Content-Type') == 'application/json' && inargs.containsKey('o.id.
if (json.state == 'SUCCESS') {
def claims = json.wallet_response.credential_subject_data
LOG.debug("Store user data in session")
// TODO/haburger/2025-03-25: format changes to align with IDM read data => No changes needed(?)
sess.setAttribute('ch.nevis.idm.User.firstName', claims.given_name)
sess.setAttribute('ch.nevis.idm.User.lastName', claims.family_name)
sess.setAttribute('ch.nevis.idm.User.birthDate', claims.birth_date)
sess.setAttribute('ch.nevis.idm.User.gender', claims.sex)
sess.setAttribute('ch.nevis.idm.User.prop.svnr', claims.personal_administrative_number.replace('.',''))
sess.setAttribute('ch.nevis.idm.User.prop.placeOfBirth', claims.birth_place)
sess.setAttribute('ch.nevis.idm.User.prop.eIdNumber', claims.document_number)
sess.setAttribute('ch.nevis.idm.User.prop.nationality', claims.nationality.toString())
sess.setAttribute('ValidFrom', claims.issuance_date)
sess.setAttribute('ValidTo', claims.expiry_date)
def validFrom = LocalDate.parse(claims.issuance_date, DateTimeFormatter.ISO_LOCAL_DATE).atStartOfDay(ZoneId.systemDefault()).format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
def validTo = LocalDate.parse(claims.expiry_date, DateTimeFormatter.ISO_LOCAL_DATE).atTime(23,59,59).atOffset(ZoneOffset.systemDefault()).format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
sess.setAttribute('agov.eid.User.firstName', claims.given_name)
sess.setAttribute('agov.eid.User.lastName', claims.family_name)
sess.setAttribute('agov.eid.User.birthDate', claims.birth_date)
sess.setAttribute('agov.eid.User.gender', claims.sex)
sess.setAttribute('agov.eid.User.svnr', claims.personal_administrative_number.replace('.',''))
sess.setAttribute('agov.eid.User.placeOfBirth', claims.birth_place)
sess.setAttribute('agov.eid.User.eIdNumber', claims.document_number)
// Simpler for later comparison -> Is converted again to upper case in the saml assertion
sess.setAttribute('agov.eid.User.nationality', claims.nationality.toString().toLowerCase())
sess.setAttribute('ValidFrom', validFrom)
sess.setAttribute('ValidTo', validTo)
sess.setAttribute('authenticatedWith', "urn:qa.agov.ch:names:tc:authfactor:eid")
sess.setAttribute('idVerification', "Eid")
// BUNDBITBK-5203 Dynamic aq levels
def requestedRoleLevel = session['agov.requestedRoleLevel']
if(requestedRoleLevel == "600"){
sess.setAttribute('contextClassRefToSet', "urn:qa.agov.ch:names:tc:ac:classes:600")
}else{
sess.setAttribute('contextClassRefToSet', "urn:qa.agov.ch:names:tc:ac:classes:500")
}
// subjectUUID v5
def namespace = UUID.fromString(parameters.get('eidUUIDNamespace'))
def uuid = Generators.nameBasedGenerator(namespace).generate(claims.personal_administrative_number)
LOG.debug("UUID: ${uuid}")
LOG.debug("UUID derived from svnr: ${uuid}")
String uuidString = uuid.toString()
sess.setAttribute('agov.subjectUUID', '' + uuidString)
@ -360,9 +393,6 @@ if (getHeader('Content-Type') == 'application/json' && inargs.containsKey('o.id.
}}"""
}
else if (json.state == 'FAILED') {
// TODO/haburger/2025-03-25: ERROR_CODE_TO_STATUS_MAPPER[json.wallet_response.error_code] == 'FAILED' we should
// initiate a new verification and return the new id, url together with the message
LOG
.error("Eid verification failed: ${json.wallet_response.error_code} (${json.wallet_response.error_description})")
@ -410,14 +440,11 @@ if (getHeader('Content-Type') == 'application/json' && inargs.containsKey('o.id.
}}"""
}
response.setContent(result.toString())
response.setContentType('application/json')
response.setHttpStatusCode(200)
response.setIsDirectResponse(true)
response.setStatus(AuthResponse.AUTH_CONTINUE)
LOG.debug("Recieved json: End")
return
}

View File

@ -14,7 +14,7 @@ JAVA_OPTS=(
"-Dotel.javaagent.logging=application"
"-Dotel.javaagent.configuration-file=/var/opt/nevisauth/default/conf/otel.properties"
"-Dotel.resource.attributes=service.version=8.2411.3,service.instance.id=$HOSTNAME"
"-Djavax.net.ssl.trustStore=/var/opt/keys/trust/auth-default-tls-trust/truststore.p12"
"-Djavax.net.ssl.trustStorePassword=\${exec:/var/opt/keys/trust/auth-default-tls-trust/keypass}"
"-Djavax.net.ssl.trustStore=/var/opt/keys/trust/auth-idp-extended-truststore/truststore.p12"
"-Djavax.net.ssl.trustStorePassword=\${exec:/var/opt/keys/trust/auth-idp-extended-truststore/keypass}"
)

View File

@ -94,6 +94,21 @@
<!-- source: pattern://bcfe78c02cbe0588528bc3cb -->
<KeyObject name="TlsTrustStore" certificate="/var/opt/keys/trust/env-ca/truststore.jks"/>
</KeyStore>
<!-- source: pattern://947daa1313709b0f26a64432 -->
<KeyStore name="EId_Compare_And_Update_IDM_Attributes">
<!-- source: pattern://947daa1313709b0f26a64432 -->
<KeyObject name="EId_Rest_Client_Trust_Store" certificate="/var/opt/keys/trust/env-ca/truststore.jks"/>
</KeyStore>
<!-- source: pattern://947daa1313709b0f26a64432 -->
<KeyStore name="EId_Fetch_IDM_Attributes">
<!-- source: pattern://947daa1313709b0f26a64432 -->
<KeyObject name="EId_Rest_Client_Trust_Store" certificate="/var/opt/keys/trust/env-ca/truststore.jks"/>
</KeyStore>
<!-- source: pattern://947daa1313709b0f26a64432 -->
<KeyStore name="EId_Select_AGOV_Account">
<!-- source: pattern://947daa1313709b0f26a64432 -->
<KeyObject name="EId_Rest_Client_Trust_Store" certificate="/var/opt/keys/trust/env-ca/truststore.jks"/>
</KeyStore>
<!-- source: pattern://95220b3005deb118adeb01aa -->
<KeyStore name="Mobile_NLess_Auth">
<!-- source: pattern://95220b3005deb118adeb01aa -->
@ -128,7 +143,7 @@
</SessionCoordinator>
<!-- source: pattern://7022472ae407577ae604bbb8 -->
<LocalOutOfContextDataStore reaperPeriod="60"/>
<!-- source: pattern://204c22beaccdfd22727af378, pattern://06aeae2d799e492f5580d03b, pattern://7022472ae407577ae604bbb8, pattern://7022472ae407577ae604bbb8, pattern://9a8294b080ea769d22924af0, pattern://f393012a278e525956a362d3, pattern://c686c1bdd5355351f7f98cc8, pattern://7fb39bfd6c34685866a22180, pattern://cb8c63274fe346280de0ffd5, pattern://9a1d3c6052019748d3510261, pattern://ae023be7e097522c74e31d17, pattern://81ae3547acc02160f787a546, pattern://0327ca909dfcaf2d332da104, pattern://584964c837512845d7940809, pattern://e0fda9336be9c69dafc9b69e, pattern://7022472ae407577ae604bbb8, pattern://cb8c63274fe346280de0ffd5, pattern://204c22beaccdfd22727af378, pattern://06aeae2d799e492f5580d03b, pattern://7022472ae407577ae604bbb8 -->
<!-- source: pattern://204c22beaccdfd22727af378, pattern://06aeae2d799e492f5580d03b, pattern://7022472ae407577ae604bbb8, pattern://7022472ae407577ae604bbb8, pattern://9a8294b080ea769d22924af0, pattern://f393012a278e525956a362d3, pattern://c686c1bdd5355351f7f98cc8, pattern://7fb39bfd6c34685866a22180, pattern://b8bdab6e4634a1d81f20e5bb, pattern://cb8c63274fe346280de0ffd5, pattern://9a1d3c6052019748d3510261, pattern://ae023be7e097522c74e31d17, pattern://81ae3547acc02160f787a546, pattern://0327ca909dfcaf2d332da104, pattern://584964c837512845d7940809, pattern://e0fda9336be9c69dafc9b69e, pattern://7022472ae407577ae604bbb8, pattern://cb8c63274fe346280de0ffd5, pattern://204c22beaccdfd22727af378, pattern://06aeae2d799e492f5580d03b, pattern://7022472ae407577ae604bbb8 -->
<AuthEngine useLiteralDictionary="true" literalDictionaryLanguages="en,de,fr,it" inputLanguageCookie="LANG" compatLevel="none" addAutheLevelToSecRoles="true" classPath="/var/opt/nevisauth/default/plugin:/opt/nevisidmcl/nevisauth/lib:/opt/nevisfidocl/nevisauth/lib:/opt/nevisauth/plugin" propagateSession="false">
<!-- source: pattern://4fcfadb4a5c946ead7e6e995 -->
<Domain name="Auth_Realm_Main_IDP" default="false" inactiveInterval="1800" reauthInterval="0" resetAuthenticationCondition="#{ (inargs.containsKey('SAMLRequest') and session.containsKey('ch.nevis.auth.saml.request.id')) ? 'restart' : '' }">
@ -172,9 +187,7 @@
<!-- source: pattern://7a913eec7f78ce674cd87854 -->
<property name="parameter.cookie.domain" value="auth.agov-w.azure.adnovum.net"/>
<!-- source: pattern://7a913eec7f78ce674cd87854 -->
<property name="parameter.eidPassthroughEnabled" value="false"/>
<!-- source: pattern://7a913eec7f78ce674cd87854 -->
<property name="parameter.eidFullEnabled" value="false"/>
<property name="parameter.eidEnabled" value="false"/>
<!-- source: pattern://7a913eec7f78ce674cd87854 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/idp_status_check.groovy"/>
</AuthState>
@ -182,6 +195,8 @@
<!-- source: pattern://f63c475c35b616b7c6c1901c -->
<ResultCond name="default" next="Auth_Realm_Main_IDP_Mobile_NLess_Auth"/>
<!-- source: pattern://f63c475c35b616b7c6c1901c -->
<ResultCond name="eidLogin" next="Auth_Realm_Main_IDP_EId_Verification_Auth"/>
<!-- source: pattern://f63c475c35b616b7c6c1901c -->
<ResultCond name="fido2" next="Auth_Realm_Main_IDP_fido2_fetchCaptchaInfos"/>
<!-- source: pattern://f63c475c35b616b7c6c1901c -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_Mobile_NLess_Auth_Processing"/>
@ -204,7 +219,7 @@
<!-- source: pattern://f63c475c35b616b7c6c1901c -->
<GuiElem name="authRequestId" type="hidden" value="${sess:ch.nevis.auth.saml.request.id}" optional="true"/>
<!-- source: pattern://f63c475c35b616b7c6c1901c -->
<GuiElem name="lastLoginMethod" type="hidden" value="${cookie:LOGINMETHOD}" optional="true"/>
<GuiElem name="lastLoginMethod" type="hidden" value="${sess:agov.lastLoginMethod}" optional="true"/>
<!-- source: pattern://f63c475c35b616b7c6c1901c -->
<GuiElem name="fallback" type="button" label="mobile_auth.cancel.button.label" value="true" optional="true"/>
</Gui>
@ -219,12 +234,16 @@
<property name="parameter.recoveryurl" value="https://auth.agov-w.azure.adnovum.net/AUTH/RECOVERY/"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_EId_Verification_Auth" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<ResultCond name="agovLogin" next="Auth_Realm_Main_IDP_Mobile_NLess_Auth"/>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<ResultCond name="default" next="Auth_Realm_Main_IDP_EId_Verification_Auth"/>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<ResultCond name="error" next="Auth_Realm_Main_IDP_SendSamlResponseWithError"/>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_SendSamlResponseWithAssertion"/>
<ResultCond name="ok" next="Auth_Realm_Main_IDP_EId_Passthrough_Switch"/>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<ResultCond name="register" next="Auth_Realm_Main_IDP_EId_Registration_Page"/>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<Response value="AUTH_CONTINUE">
<!-- source: pattern://e335f57d4c64dfc97223697a -->
@ -238,11 +257,15 @@
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<GuiElem name="agov.appDisplayNameEN" type="hidden" value="${sess:agov.appDisplayNameEN}" optional="true"/>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<GuiElem name="agov.appDisplayNameRM" type="hidden" value="${sess:agov.appDisplayNameRM}" optional="true"/>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<GuiElem name="agov.appSamlRpEntityId" type="hidden" value="https://auth.agov-w.azure.adnovum.net/app-info/app-icon?entity-id=${sess:ch.nevis.auth.saml.request.scoping.requesterId}" optional="true"/>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<GuiElem name="authRequestId" type="hidden" value="${sess:ch.nevis.auth.saml.request.id}" optional="true"/>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<GuiElem name="oid4vp" type="hidden" value="UNKNOWN" optional="true"/>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
<GuiElem name="eidOnly" type="hidden" value="${sess:agov.requestedRoleLevel:^[56]00$:true}" optional="true"/>
</Gui>
</Response>
<!-- source: pattern://e335f57d4c64dfc97223697a -->
@ -333,20 +356,40 @@
<!-- source: pattern://4c65de021d362462324a3a5f -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/SendSamlResponseWithError.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_SendSamlResponseWithAssertion" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_Prepare_Done"/>
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<Response value="AUTH_DONE">
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<Gui name="not_used"/>
<AuthState name="Auth_Realm_Main_IDP_EId_Passthrough_Switch" class="ch.nevis.esauth.auth.states.standard.ConditionalDispatcherState" final="false">
<!-- source: pattern://3c1d57471850dccab77fd257 -->
<ResultCond name="augmentation" next="Auth_Realm_Main_IDP_EId_Select_AGOV_Account"/>
<!-- source: pattern://3c1d57471850dccab77fd257 -->
<ResultCond name="nomatch" next="Auth_Realm_Main_IDP_SendSamlResponseWithError"/>
<!-- source: pattern://3c1d57471850dccab77fd257 -->
<ResultCond name="passthrough" next="Auth_Realm_Main_IDP_EId_Passthrough_Prepare_Assertion"/>
<!-- source: pattern://3c1d57471850dccab77fd257 -->
<Response value="AUTH_ERROR">
<!-- source: pattern://3c1d57471850dccab77fd257 -->
<Arg name="ch.nevis.isiweb4.response.status" value="403"/>
</Response>
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<property name="parameter.cookie.domain" value="auth.agov-w.azure.adnovum.net"/>
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<property name="scriptTraceGroup" value="AGOV-ACCT"/>
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/SendSamlResponseWithAssertion.groovy"/>
<!-- source: pattern://3c1d57471850dccab77fd257 -->
<property name="condition:augmentation" value="${session:agov.requestedRoleLevel:^[12345]00$:true}"/>
<!-- source: pattern://3c1d57471850dccab77fd257 -->
<property name="condition:passthrough" value="${session:agov.requestedRoleLevel:600:true}"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_EId_Registration_Page" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://9e0cb3f3fd05315512afd46c -->
<ResultCond name="back" next="Auth_Realm_Main_IDP_EId_Verification_Auth"/>
<!-- source: pattern://9e0cb3f3fd05315512afd46c -->
<ResultCond name="register" next="Auth_Realm_Main_IDP_createUUID"/>
<!-- source: pattern://9e0cb3f3fd05315512afd46c -->
<Response value="AUTH_CONTINUE">
<!-- source: pattern://9e0cb3f3fd05315512afd46c -->
<Gui name="eid_registration">
<!-- source: pattern://9e0cb3f3fd05315512afd46c -->
<GuiElem name="register" type="hidden" value="UNKNOWN" optional="true"/>
<!-- source: pattern://9e0cb3f3fd05315512afd46c -->
<GuiElem name="authRequestId" type="hidden" value="${sess:ch.nevis.auth.saml.request.id}" optional="true"/>
</Gui>
</Response>
<!-- source: pattern://9e0cb3f3fd05315512afd46c -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/eid_registration.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Auth_Failed" class="ch.nevis.esauth.auth.states.standard.AuthError" final="false">
<!-- source: pattern://473f9d6b4ab9d61c1eb8c689 -->
@ -434,13 +477,13 @@
<property name="sess:authenticatedWith" value="urn:qa.agov.ch:names:tc:authfactor:accessapp"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Authentication_Failed" class="ch.nevis.esauth.auth.states.standard.AuthError" final="false">
<!-- source: pattern://d76231eaa88cb1645ce44cf3 -->
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb, pattern://d76231eaa88cb1645ce44cf3 -->
<Response value="AUTH_ERROR">
<!-- source: pattern://d76231eaa88cb1645ce44cf3 -->
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb, pattern://d76231eaa88cb1645ce44cf3 -->
<Gui name="Error">
<!-- source: pattern://d76231eaa88cb1645ce44cf3 -->
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb, pattern://d76231eaa88cb1645ce44cf3 -->
<GuiElem name="info" type="error" label="error_99"/>
<!-- source: pattern://d76231eaa88cb1645ce44cf3 -->
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb, pattern://d76231eaa88cb1645ce44cf3 -->
<GuiElem name="submit" type="button" label="continue.button.label"/>
</Gui>
</Response>
@ -503,16 +546,64 @@
<!-- source: pattern://bfd395eb0dab50aff2f2c01b -->
<property name="out.audienceRestriction" value="https://ob.agov-w.azure.adnovum.net/mock-me/registration"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Prepare_Done" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false">
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<ResultCond name="default" next="Auth_Realm_Main_IDP_Auth_Done"/>
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<Response value="AUTH_DONE">
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<Gui name="ContinueResponse"/>
<AuthState name="Auth_Realm_Main_IDP_EId_Select_AGOV_Account" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<ResultCond name="backToVerification" next="Auth_Realm_Main_IDP_EId_Verification_Auth"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<ResultCond name="error" next="Auth_Realm_Main_IDP_SendSamlResponseWithError"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<ResultCond name="firstLogin" next="Auth_Realm_Main_IDP_EId_Select_AGOV_Account_NotifyUser"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<ResultCond name="noAccount" next="Auth_Realm_Main_IDP_Eid_Placeholder"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_EId_Fetch_IDM_Attributes"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<Response value="AUTH_CONTINUE">
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<Gui name="eid_login_multiple_accounts">
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<GuiElem name="accountEmail" type="hidden" value="UNKNOWN" optional="true"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<GuiElem name="login" type="submit" value="unknown" optional="true"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<GuiElem name="cancelEid" type="submit" value="unknown" optional="true"/>
</Gui>
</Response>
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/prepare_done.groovy"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/eid_fetch_linked_accounts.groovy"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<property name="scriptTraceGroup" value="AGOV-ACCT"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<property name="parameter.baseUrl" value="https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<property name="parameter.clientExtId" value="cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<property name="parameter.idm.httpclient.tls.trustStoreRef" value="EId_Select_AGOV_Account"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_EId_Passthrough_Prepare_Assertion" class="ch.nevis.esauth.auth.states.standard.TransformAttributes" final="false">
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_SendSamlResponseWithAssertion"/>
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<Response value="AUTH_ERROR">
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<Arg name="ch.nevis.isiweb4.response.status" value="403"/>
</Response>
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<property name="sess:ch.nevis.idm.User.birthDate" value="${sess:agov.eid.User.birthDate}"/>
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<property name="sess:ch.nevis.idm.User.firstName" value="${sess:agov.eid.User.firstName}"/>
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<property name="sess:ch.nevis.idm.User.gender" value="${sess:agov.eid.User.gender}"/>
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<property name="sess:ch.nevis.idm.User.lastName" value="${sess:agov.eid.User.lastName}"/>
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<property name="sess:ch.nevis.idm.User.prop.eIdNumber" value="${sess:agov.eid.User.eIdNumber}"/>
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<property name="sess:ch.nevis.idm.User.prop.nationality" value="${sess:agov.eid.User.nationality}"/>
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<property name="sess:ch.nevis.idm.User.prop.placeOfBirth" value="${sess:agov.eid.User.placeOfBirth}"/>
<!-- source: pattern://6244fcef0dce49e7b09012de -->
<property name="sess:ch.nevis.idm.User.prop.svnr" value="${sess:agov.eid.User.svnr}"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Auth_Realm_Main_IDP_Custom_Logout_Confirm" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://9196b809b539716b03ad8565 -->
@ -892,7 +983,9 @@
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Redirect_to_Registration_Handle_Redirect" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://bfd395eb0dab50aff2f2c01b -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_Mobile_NLess_Auth"/>
<ResultCond name="agovLogin" next="Auth_Realm_Main_IDP_Mobile_NLess_Auth"/>
<!-- source: pattern://bfd395eb0dab50aff2f2c01b -->
<ResultCond name="eidLogin" next="Auth_Realm_Main_IDP_EId_Verification_Auth"/>
<!-- source: pattern://bfd395eb0dab50aff2f2c01b -->
<Response value="AUTH_CONTINUE">
<!-- source: pattern://bfd395eb0dab50aff2f2c01b -->
@ -905,13 +998,88 @@
<!-- source: pattern://bfd395eb0dab50aff2f2c01b -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/handleRedirectRegistration.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Auth_Done" class="ch.nevis.esauth.auth.states.standard.AuthDone" final="false">
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<Response value="AUTH_DONE">
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<Gui name="ContinueResponse"/>
<AuthState name="Auth_Realm_Main_IDP_EId_Select_AGOV_Account_NotifyUser" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<ResultCond name="error" next="Auth_Realm_Main_IDP_SendSamlResponseWithError"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_EId_Fetch_IDM_Attributes"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/eid_notify_user_first_login.groovy"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<property name="parameter.baseUrl" value="https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<property name="parameter.clientExtId" value="cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720"/>
<!-- source: pattern://4f15bae09cbda04a7a515158 -->
<property name="parameter.idm.httpclient.tls.trustStoreRef" value="EId_Select_AGOV_Account"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Eid_Placeholder" class="ch.nevis.esauth.auth.states.standard.AuthGeneric" final="false" resumeState="true">
<!-- source: pattern://47f8f6ef24f62431fbe1b530 -->
<Response value="AUTH_CONTINUE">
<!-- source: pattern://47f8f6ef24f62431fbe1b530 -->
<Gui name="Eid_Placeholder" label="eID Placeholder">
<!-- source: pattern://47f8f6ef24f62431fbe1b530 -->
<GuiElem name="infotext" type="info" label="${session:eid.placeholder.text}"/>
</Gui>
</Response>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_EId_Fetch_IDM_Attributes" class="ch.nevis.idm.authstate.IdmUserVerifyState" final="false" resumeState="false">
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<ResultCond name="clientNotFound" next="Auth_Realm_Main_IDP_Authentication_Failed"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<ResultCond name="default" next="Auth_Realm_Main_IDP_Authentication_Failed"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<ResultCond name="failed" next="Auth_Realm_Main_IDP_Authentication_Failed"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<ResultCond name="prospect" next="Auth_Realm_Main_IDP_EId_Fetch_IDM_Attributes_getProperties"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<Response value="AUTH_CONTINUE">
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<Gui name="internal_error">
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<GuiElem name="transferId" type="hidden" value="${request:traceId}" optional="true"/>
</Gui>
</Response>
<propertyRef name="nevisIDM_Connector"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="userExtId" value="${session:agov.eid.linkedAccountExtId}"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="clientExtId" value="cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="presetNoteValues" value="false"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.user" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.profile" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.role" value="MEDIUM"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.authorization" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.dataroom" value="LOW"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.credential" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.property" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.unit" value="LOW"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.default" value="EXCLUDE"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_SendSamlResponseWithAssertion" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_Prepare_Done"/>
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<Response value="AUTH_DONE">
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<Gui name="not_used"/>
</Response>
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<property name="parameter.cookie.domain" value="auth.agov-w.azure.adnovum.net"/>
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<property name="scriptTraceGroup" value="AGOV-ACCT"/>
<!-- source: pattern://b87d0d2b640e8e545ad70234 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/SendSamlResponseWithAssertion.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Auth_Realm_Main_IDP_Custom_Concurrent_Logout" class="ch.nevis.esauth.auth.states.standard.AuthLogout" final="false" resumeState="false">
<!-- source: pattern://db4eead0bb25b03205afd79f -->
<Response value="AUTH_CONTINUE">
@ -966,9 +1134,7 @@
<!-- source: pattern://68665057549fd887ea09fb86 -->
<property name="parameter.bestTokenSvnrWhitelist" value="https://testapp-01.agov-d.azure.adnovum.net/test/api/saml2/service-provider-metadata/agovidp, OidcPlayground, https://op.agov-w.azure.adnovum.net/SAML2/ACS/"/>
<!-- source: pattern://68665057549fd887ea09fb86 -->
<property name="parameter.eidFullEnabled" value="false"/>
<!-- source: pattern://68665057549fd887ea09fb86 -->
<property name="parameter.eidPassthroughEnabled" value="false"/>
<property name="parameter.eidEnabled" value="false"/>
<!-- source: pattern://68665057549fd887ea09fb86 -->
<property name="parameter.url" value="https://utility.agov-d.azure.adnovum.net/connect/billing/relying-party"/>
<!-- source: pattern://68665057549fd887ea09fb86 -->
@ -1094,9 +1260,67 @@
</AuthState>
<AuthState name="nevisIDM_Connector" class="ch.nevis.esauth.auth.states.standard.AuthGeneric" final="false">
<!-- source: pattern://e0fda9336be9c69dafc9b69e -->
<property name="login.service.connection.0" value="https://idm:8989/nevisidm/services/v1/LoginService"/>
<property name="login.service.connection.0" value="https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm/services/v1/LoginService"/>
<!-- source: pattern://e0fda9336be9c69dafc9b69e -->
<property name="admin.service.connection.0" value="https://idm:8989/nevisidm/services/v1/AdminService"/>
<property name="admin.service.connection.0" value="https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm/services/v1/AdminService"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_EId_Fetch_IDM_Attributes_getProperties" class="ch.nevis.idm.authstate.IdmGetPropertiesState" final="false" resumeState="false">
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<ResultCond name="clientNotFound" next="Auth_Realm_Main_IDP_Authentication_Failed"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<ResultCond name="default" next="Auth_Realm_Main_IDP_Authentication_Failed"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_EId_Compare_And_Update_IDM_Attributes"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<Response value="AUTH_CONTINUE">
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<Gui name="internal_error">
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<GuiElem name="transferId" type="hidden" value="${request:traceId}" optional="true"/>
</Gui>
</Response>
<propertyRef name="nevisIDM_Connector"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="clientExtId" value="cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="user.attributes" value="loginId,extId,firstName,name,email,mobile,birthDate, gender, language, street, houseNumber, postalCode, city, country"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="user.properties" value="eIdNumber,nationality,placeOfBirth,svnr"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="chooseDefaultProfile" value="true"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="forceDataReload" value="false"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="userExtId" value="${session:agov.eid.linkedAccountExtId}"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.user" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.profile" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.role" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.authorization" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.dataroom" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.credential" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.property" value="HIGH"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.unit" value="LOW"/>
<!-- source: pattern://b8bdab6e4634a1d81f20e5bb -->
<property name="detaillevel.default" value="EXCLUDE"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Prepare_Done" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false">
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<ResultCond name="default" next="Auth_Realm_Main_IDP_Auth_Done"/>
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<Response value="AUTH_DONE">
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<Gui name="ContinueResponse"/>
</Response>
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/prepare_done.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Auth_Realm_Main_IDP_Custom_Authorization" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://596e3e37c4d524690ea35897 -->
@ -1192,7 +1416,7 @@
<!-- source: pattern://f393012a278e525956a362d3 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/ensureAccountState.groovy"/>
<!-- source: pattern://f393012a278e525956a362d3 -->
<property name="parameter.idm.baseUrl" value="https://idm:8989/nevisidm/api"/>
<property name="parameter.idm.baseUrl" value="https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm/api"/>
<!-- source: pattern://f393012a278e525956a362d3 -->
<property name="parameter.unitExtid" value="1000"/>
<!-- source: pattern://f393012a278e525956a362d3 -->
@ -1200,6 +1424,29 @@
<!-- source: pattern://f393012a278e525956a362d3 -->
<property name="parameter.idm.httpclient.tls.trustStoreRef" value="Ensure_Account_State"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_EId_Compare_And_Update_IDM_Attributes" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<ResultCond name="audited" next="Auth_Realm_Main_IDP_EId_Compare_And_Update_IDM_Attributes_NotifyUser"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<ResultCond name="error" next="Auth_Realm_Main_IDP_SendSamlResponseWithError"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<ResultCond name="noChange" next="Auth_Realm_Main_IDP_EId_Compare_And_Update_IDM_Attributes_UpdateLoginInfo"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/eid_compare_and_update_idm_attributes.groovy"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="parameter.baseUrl" value="https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="parameter.clientExtId" value="cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="parameter.idm.httpclient.tls.trustStoreRef" value="EId_Compare_And_Update_IDM_Attributes"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Auth_Done" class="ch.nevis.esauth.auth.states.standard.AuthDone" final="false">
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<Response value="AUTH_DONE">
<!-- source: pattern://6061abea33a234fad73897b7, pattern://4fcfadb4a5c946ead7e6e995 -->
<Gui name="ContinueResponse"/>
</Response>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Auth_Realm_Main_IDP_Custom_Auth_Done_GUI" class="ch.nevis.esauth.auth.states.standard.AuthDone" final="false" resumeState="true">
<!-- source: pattern://cf0e8f8de1c8ac7345c5a6bb -->
<Response value="AUTH_DONE">
@ -1301,6 +1548,34 @@
<!-- source: pattern://f393012a278e525956a362d3 -->
<property name="detaillevel.default" value="EXCLUDE"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_EId_Compare_And_Update_IDM_Attributes_NotifyUser" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<ResultCond name="error" next="Auth_Realm_Main_IDP_SendSamlResponseWithError"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_EId_Compare_And_Update_IDM_Attributes_UpdateLoginInfo"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/eid_notify_user_idm_change.groovy"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="parameter.baseUrl" value="https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="parameter.clientExtId" value="cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="parameter.idm.httpclient.tls.trustStoreRef" value="EId_Compare_And_Update_IDM_Attributes"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_EId_Compare_And_Update_IDM_Attributes_UpdateLoginInfo" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false" resumeState="true">
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<ResultCond name="error" next="Auth_Realm_Main_IDP_SendSamlResponseWithError"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_SendSamlResponseWithAssertion"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/eid_update_login_info.groovy"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="parameter.baseUrl" value="https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="parameter.clientExtId" value="cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720"/>
<!-- source: pattern://306ce091fd87bad6174d9e8b -->
<property name="parameter.idm.httpclient.tls.trustStoreRef" value="EId_Compare_And_Update_IDM_Attributes"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_OnCancel_Dispatch" class="ch.nevis.esauth.auth.states.standard.ConditionalDispatcherState" final="false">
<!-- source: pattern://af4ec934e8efbef422f03926 -->
<ResultCond name="AccessApp" next="Auth_Realm_Main_IDP_Mobile_NLess_Auth"/>
@ -1416,13 +1691,15 @@
<!-- source: pattern://6d83506dfcc430c12d81dfa3 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/askMobileNumber.groovy"/>
<!-- source: pattern://6d83506dfcc430c12d81dfa3 -->
<property name="parameter.baseUrl" value="https://idm:8989/nevisidm/api"/>
<property name="parameter.baseUrl" value="https://idm.adn-agov-nevisidm-01-dev:8989/nevisidm/api"/>
<!-- source: pattern://6d83506dfcc430c12d81dfa3 -->
<property name="parameter.idm.httpclient.tls.keyObjectRef" value="DefaultKeyStore"/>
<!-- source: pattern://6d83506dfcc430c12d81dfa3 -->
<property name="parameter.idm.httpclient.tls.trustStoreRef" value="Ask_Mobile_Number"/>
<!-- source: pattern://6d83506dfcc430c12d81dfa3 -->
<property name="parameter.cookie.domain" value="auth.agov-w.azure.adnovum.net"/>
<!-- source: pattern://6d83506dfcc430c12d81dfa3 -->
<property name="parameter.ask_mobile_number_enabled" value="true"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Ensure_Recovery_Code_encryptCode" class="ch.nevis.esauth.auth.states.standard.TransformAttributes" final="false" resumeState="false">
<!-- source: pattern://9ff0369f3cf662f95d94ff09 -->
@ -1514,29 +1791,19 @@
<!-- source: pattern://1d38203c48e017b5b3812385 -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/recovery_ongoing.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_Fetch_Country_Name" class="ch.nevis.esauth.auth.states.xml.DocumentProcessor" final="false" resumeState="false">
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<ResultCond name="default" next="Auth_Realm_Main_IDP_SendSamlResponseWithAssertion"/>
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<ResultCond name="nomatch" next="Auth_Realm_Main_IDP_SendSamlResponseWithAssertion"/>
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<AuthState name="Auth_Realm_Main_IDP_Fetch_Country_Name" class="ch.nevis.esauth.auth.states.scripting.ScriptState" final="false">
<!-- source: pattern://4c7ad5e93c0ed94844e6bbfe -->
<ResultCond name="error" next="Auth_Realm_Main_IDP_SendSamlResponseWithAssertion"/>
<!-- source: pattern://4c7ad5e93c0ed94844e6bbfe -->
<ResultCond name="ok" next="Auth_Realm_Main_IDP_SendSamlResponseWithAssertion"/>
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<ResultCond name="validation-failed" next="Auth_Realm_Main_IDP_SendSamlResponseWithAssertion"/>
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<Response value="AUTH_ERROR"/>
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<property name="sess:agov.countryName" value="xpath:/country-names/country[@code='${sess:ch.nevis.idm.User.country}']/@${sess:ch.nevis.idm.User.language}"/>
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<property name="optional" value="sess:agov.countryName"/>
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<property name="documentSourceType" value="RESOURCE"/>
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<property name="documentSource" value="file:/var/opt/nevisauth/default/conf/countries.xml"/>
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<property name="scheduler.interval" value="-1"/>
<!-- source: pattern://594764b3b866d7855f6990a1 -->
<property name="maxAge" value="-1"/>
<!-- source: pattern://4c7ad5e93c0ed94844e6bbfe -->
<Response value="AUTH_CONTINUE"/>
<!-- source: pattern://4c7ad5e93c0ed94844e6bbfe -->
<property name="parameter.baseurl" value="https://utility.agov-d.azure.adnovum.net/utility/"/>
<!-- source: pattern://4c7ad5e93c0ed94844e6bbfe -->
<property name="scriptTraceGroup" value="AGOV-ACCT"/>
<!-- source: pattern://4c7ad5e93c0ed94844e6bbfe -->
<property name="script" value="file:///var/opt/nevisauth/default/conf/fetch_country_name.groovy"/>
</AuthState>
<AuthState name="Auth_Realm_Main_IDP_NoAuthnContext" class="ch.nevis.esauth.auth.states.standard.TransformAttributes" final="false">
<!-- source: pattern://1793638a6715537e8f491f25 -->
@ -2401,7 +2668,7 @@
</Gui>
</Response>
<!-- source: pattern://584964c837512845d7940809 -->
<property name="parameter.baseUrl" value="https://idm:8989/nevisidm"/>
<property name="parameter.baseUrl" value="idm.adn-agov-nevisidm-admin-01-uat"/>
<!-- source: pattern://584964c837512845d7940809 -->
<property name="parameter.idm.httpclient.tls.trustStoreRef" value="Recovery_Auth"/>
<!-- source: pattern://584964c837512845d7940809 -->

View File

@ -0,0 +1,39 @@
import groovy.json.JsonSlurper
import io.opentelemetry.api.trace.Span
def sess = request.getAuthSession(true)
def spanCtxt = Span.current().getSpanContext()
def traceparent = "00-${spanCtxt.getTraceId()}-${spanCtxt.getSpanId()}-${spanCtxt.getTraceFlags().asHex()}"
def jsonSlurper = new JsonSlurper()
def lang = (session['ch.nevis.idm.User.language']?:'DE').trim()
def endppoint = "${parameters.get('baseurl')}/api/v1/countries?lang=${lang.toUpperCase()}"
def countryCode = (session['ch.nevis.idm.User.country']?:'CH').trim().toLowerCase()
try {
LOG.debug("UTILITY: Countries: Request url: ${endppoint}")
def httpClient = HttpClients.create(parameters)
def httpResponse = Http.get().url(endppoint).header('traceparent', traceparent).build().send(httpClient)
LOG.debug('UTILITY: Countries: Response Message: ' + httpResponse.reasonPhrase())
LOG.debug('UTILITY: Countries: Response Status Code: ' + httpResponse.code())
LOG.debug('UTILITY: Countries: Response: ' + httpResponse.bodyAsString())
if (httpResponse.code() == 200) {
def json = jsonSlurper.parseText(httpResponse.bodyAsString())
// {"country.af":"Afghanistan","country.al":"Albanie"... }
def countryName = json["country.${countryCode}"]
LOG.debug("UTILITY: Countries: countryName for ${countryCode}: ${countryName}")
if (countryName) {
sess.setAttribute('agov.countryName', countryName)
}
} else {
LOG.warn("UTILITY: Countries: Failed to fetch country translations. (httpResponse.code: ${httpResponse.code()})")
}
} catch (Exception e) {
LOG.warn("UTILITY: Countries: Failed to fetch country translations. (${e})")
}
response.setResult('ok')

View File

@ -19,7 +19,15 @@ if(outargs.containsKey('saml.SAMLResponse')) {
response.removeOutArg('saml.SAMLResponse')
}
else {
response.setResult('ok')
if (session['agov.eidAllowed'] && session['agov.eidAllowed'] == 'true') {
if (session['agov.lastLoginMethod'] && !(session['agov.lastLoginMethod'] == 'eid')) {
response.setResult('agovLogin')
} else {
response.setResult('eidLogin')
}
} else {
response.setResult('agovLogin')
}
}

View File

@ -87,14 +87,11 @@ if (inargs['SAMLRequest'] != null) {
// process it the same way, as if frontend triggered a reload
request.getInArgs().setProperty('onReload', 'now')
def eidEnabled = parameters.get('eidPassthroughEnabled') == "true" || parameters.get('eidFullEnabled') == "true"
eidEnabled
LOG.error("EID?: " + eidEnabled)
LOG.error("Full?: " + parameters.get('eidFullEnabled'))
LOG.error("Pass?: " + parameters.get('eidPassthroughEnabled'))
def eidEnabled = parameters.get('eidEnabled') == "true"
def requestedLoa = s.getAttribute("agov.requestedRoleLevel")
// TODO: use a different flag to check if this is a eid request since eid can now also be used for lower aq
if( eidEnabled && ( requestedLoa == "600" || requestedLoa == "500") ){
if( eidEnabled && ( requestedLoa == "600" || requestedLoa == "500" || s.getAttribute('agov.lastLoginMethod') == 'eid' ) ){
// EID request -> goto correct state
response.setResult('continueEidAfterRepost')
}else{

View File

@ -104,3 +104,10 @@ if (inargs.containsKey('onReload')) {
if (inargs['fallback'] == 'register') {
response.setResult('registration')
}
// change to eid
// temporary for demo
if (inargs.containsKey('swiyu')) {
clearFidoUAFSession()
response.setResult('eidLogin')
}

View File

@ -64,7 +64,7 @@ if (requestedRoleLevelNumber == 0 || session.get('ch.nevis.auth.saml.request.sco
return
}
def eidEnabled = parameters.get('eidPassthroughEnabled') == "true" || parameters.get('eidFullEnabled') == "true"
def eidEnabled = parameters.get('eidEnabled') == "true"
// TODO/aca/2025-06-05: add a condition to check if the client actually allows eid
def eidAllowed = eidEnabled
// set session variable to later decide to which loginmethods we can switch
@ -81,6 +81,8 @@ if(lastLoginMethod != null || lastLoginMethod != ""){
if(lastLoginMethod == "accessApp" || lastLoginMethod == "securityKey"){
ok_transition = 'ok'
}
}else{
session.setAttribute('agov.lastLoginMethod', eidAllowed ? "accessApp" : "eid")
}
// NOTE: if the last login method was eid, but eid is not allowed, we will default to fido uaf
@ -103,7 +105,7 @@ try {
session.setAttribute('agov.appDisplayNameFR', '' + json.displayNameFr)
session.setAttribute('agov.appDisplayNameIT', '' + json.displayNameIt)
session.setAttribute('agov.appDisplayNameEN', '' + json.displayNameEn)
session.setAttribute('agov.appDisplayNameRM', '' + ((json.appDisplayNameRM) ? json.appDisplayNameRM : json.appDisplayNameDE))
// if aq500 or 600 is requested -> the only available login method is eid -> continue directly there
// if eid is disabled -> show an error page
@ -160,6 +162,7 @@ try {
} catch (Exception e) {
LOG.error("Failed to fetch connect meta data for relying party '${session.get('ch.nevis.auth.saml.request.scoping.requesterId')}'", e)
session.setAttribute('agov.eidAllowed', 'false')
if ( requestedRoleLevelNumber == 100) {
session.setAttribute('agov.appAddressRequired', '' + appRequiresBestTokenWithAddress)
session.setAttribute('agov.appSvnrAllowed', 'false')

View File

@ -1,7 +1,7 @@
apiVersion: "operator.nevis-security.ch/v1"
kind: "NevisTrustStore"
metadata:
name: "fido-uaf-default-server-trust"
name: "fido-uaf-idp-extended-truststore"
namespace: "adn-agov-nevisidm-01-uat"
labels:
deploymentTarget: "fido-uaf"
@ -9,6 +9,4 @@ metadata:
projectKey: "DEFAULT-ADN-AGOV-PROJECT"
patternId: "ca92034f995b39fde562293c"
spec:
keystores:
- name: "idm-default-identity"
namespace: "adn-agov-nevisidm-01-uat"
keystores: []

View File

@ -46,7 +46,7 @@ spec:
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-cb437c21eb02a6e831659425531e5e7d23e487bb"
tag: "r-317ed268556b37656f27fb58fcffd4797cea27e4"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido-uaf"
credentials: "git-credentials"
database:
@ -56,9 +56,9 @@ spec:
- "fido-uaf-default-server-identity"
- "fido-uaf-default-client-identity"
truststores:
- "fido-uaf-default-server-trust"
- "fido-uaf-fido-uaf-extended-frontent-truststore"
- "fido-uaf-internal-idp-auth-signer-trust"
- "fido-uaf-idp-extended-truststore"
podSecurity:
policy: "baseline"
automountServiceAccountToken: false

View File

@ -105,12 +105,12 @@ credential-repository:
type: "nevisidm"
client-id: "cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720"
user-attribute: "extId"
administration-url: "https://idm:8989/nevisidm/services/v1_46/AdminService"
administration-url: "https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm/services/v1_46/AdminService"
admin-service-version: "v1_46"
rest-url: "https://idm:8989/nevisidm"
rest-url: "https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm"
keystore: "/var/opt/keys/own/fido-uaf-default-client-identity/keystore.p12"
keystore-type: "pkcs12"
keystore-passphrase: "${exec:/var/opt/keys/own/fido-uaf-default-client-identity/keypass}"
truststore: "/var/opt/keys/trust/fido-uaf-default-server-trust/truststore.p12"
truststore: "/var/opt/keys/trust/fido-uaf-idp-extended-truststore/truststore.p12"
truststore-type: "pkcs12"
truststore-passphrase: "${exec:/var/opt/keys/trust/fido-uaf-default-server-trust/keypass}"
truststore-passphrase: "${exec:/var/opt/keys/trust/fido-uaf-idp-extended-truststore/keypass}"

View File

@ -1,7 +1,7 @@
apiVersion: "operator.nevis-security.ch/v1"
kind: "NevisTrustStore"
metadata:
name: "fido2-default-server-trust"
name: "fido2-idp-extended-truststore"
namespace: "adn-agov-nevisidm-01-uat"
labels:
deploymentTarget: "fido2"

View File

@ -46,7 +46,7 @@ spec:
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-ba39848d1c443859cdedb92e5cb503a09a1feaca"
tag: "r-317ed268556b37656f27fb58fcffd4797cea27e4"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/fido2"
credentials: "git-credentials"
keystores:
@ -54,7 +54,7 @@ spec:
- "fido2-default-client-identity"
truststores:
- "fido2-default-tls-client-trust"
- "fido2-default-server-trust"
- "fido2-idp-extended-truststore"
podSecurity:
policy: "baseline"
automountServiceAccountToken: false

View File

@ -16,12 +16,12 @@ management:
credential-repository:
type: "nevisidm"
client-id: "cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720"
rest-url: "https://idm:8989/nevisidm"
rest-url: "https://idm.adn-agov-nevisidm-admin-01-uat:8989/nevisidm"
keystore: "/var/opt/keys/own/fido2-default-client-identity/keystore.p12"
keystore-passphrase: "${exec:/var/opt/keys/own/fido2-default-client-identity/keypass}"
keystore-type: "pkcs12"
truststore: "/var/opt/keys/trust/fido2-default-server-trust/truststore.p12"
truststore-passphrase: "${exec:/var/opt/keys/trust/fido2-default-server-trust/keypass}"
truststore: "/var/opt/keys/trust/fido2-idp-extended-truststore/truststore.p12"
truststore-passphrase: "${exec:/var/opt/keys/trust/fido2-idp-extended-truststore/keypass}"
truststore-type: "pkcs12"
user-attribute: "extId"
fido2:
@ -30,8 +30,8 @@ fido2:
rp-id: "adnovum.net"
origins:
- "https://ob.agov-w.azure.adnovum.net"
- "https://nevisidm.agov-w.azure.adnovum.net"
- "https://auth.agov-w.azure.adnovum.net"
- "https://nevisidm.agov-w.azure.adnovum.net"
signature-algorithms:
- "RS1"
- "RS256"

View File

@ -44,7 +44,7 @@ spec:
podDisruptionBudget:
maxUnavailable: "50%"
git:
tag: "r-7adaccc956f4499dc7e8f30195149151fda42e84"
tag: "r-317ed268556b37656f27fb58fcffd4797cea27e4"
dir: "DEFAULT-ADN-AGOV-PROJECT/DEFAULT-ADN-AGOV-INV/logrend"
credentials: "git-credentials"
podSecurity:

View File

@ -4,10 +4,12 @@ application.gui.litdict=yes
application.gui.substitution=yes
application.input.charset=UTF-8
application.inputs.htmlencode=yes
application.language.cookie.de=LANG:de:.agov-w.azure.adnovum.net
application.language.cookie.en=LANG:en:.agov-w.azure.adnovum.net
application.language.cookie.fr=LANG:fr:.agov-w.azure.adnovum.net
application.language.cookie.it=LANG:it:.agov-w.azure.adnovum.net
application.language.cookie.de=LANG:de:.agov-d.azure.adnovum.net
application.language.cookie.en=LANG:en:.agov-d.azure.adnovum.net
application.language.cookie.fr=LANG:fr:.agov-d.azure.adnovum.net
application.language.cookie.it=LANG:it:.agov-d.azure.adnovum.net
application.language.cookie.rm=LANG:rm:.agov-d.azure.adnovum.net
application.languages=de,fr,it,rm,en
application.loginapp.current=
application.loginapp.default=Auth_Realm_Main_IDP
application.loginapp.override=header:channel
@ -19,9 +21,11 @@ application.webdata.pathparam=logrendresourcepath
application.webdata.pathparam.default=/login/resources
cache.revalidate.delay=-1
cache.source=file
env.name=AGOV-DEV
keytag.end=}
keytag.start=${
management.healthchecks.enabled=true
page.title=AGOV DEV IdP
path.config=/var/opt/nevislogrend/default/conf
path.instance=/var/opt/nevislogrend/default
server.host=0.0.0.0

View File

@ -13,14 +13,22 @@ application.language.source.3=gui
# source: pattern://4fcfadb4a5c946ead7e6e995
application.language.source.4=browser
# source: pattern://4fcfadb4a5c946ead7e6e995
application.languages=en,de,fr,it
cache.revalidate.delay=-1
# source: pattern://4fcfadb4a5c946ead7e6e995
application.languages=de,fr,it,rm,en
# source: pattern://4fcfadb4a5c946ead7e6e995, pattern://097929211988398a87bcbb0c
application.language.cookie.de=LANG:de:.agov-d.azure.adnovum.net
# source: pattern://4fcfadb4a5c946ead7e6e995, pattern://097929211988398a87bcbb0c
application.language.cookie.fr=LANG:fr:.agov-d.azure.adnovum.net
# source: pattern://4fcfadb4a5c946ead7e6e995, pattern://097929211988398a87bcbb0c
application.language.cookie.it=LANG:it:.agov-d.azure.adnovum.net
# source: pattern://4fcfadb4a5c946ead7e6e995, pattern://097929211988398a87bcbb0c
application.language.cookie.rm=LANG:rm:.agov-d.azure.adnovum.net
# source: pattern://4fcfadb4a5c946ead7e6e995, pattern://097929211988398a87bcbb0c
application.language.cookie.en=LANG:en:.agov-d.azure.adnovum.net
# source: pattern://4fcfadb4a5c946ead7e6e995
env.name=AGOV-DEV
# source: pattern://4fcfadb4a5c946ead7e6e995
page.title=AGOV DEV IdP
# source: pattern://4fcfadb4a5c946ead7e6e995
application.languages.default=en
# source: pattern://097929211988398a87bcbb0c
application.language.cookie.en=LANG:en:.agov-w.azure.adnovum.net
# source: pattern://097929211988398a87bcbb0c
application.language.cookie.de=LANG:de:.agov-w.azure.adnovum.net
# source: pattern://097929211988398a87bcbb0c
application.language.cookie.fr=LANG:fr:.agov-w.azure.adnovum.net
# source: pattern://097929211988398a87bcbb0c
application.language.cookie.it=LANG:it:.agov-w.azure.adnovum.net

View File

@ -1,243 +1,253 @@
agov-ident.done.message=Your AGOV account is now ready for use. Please close this page.
agov-ident.done.title=Done
agov-ident.failed.instruction=You need an AGOV account and pass the suggested data verification to successfully finish the on-boarding. Please try again.
agov-ident.failed.message=Onboarding cancelled or data verification postponed
agov-ident.failed.title=Verification needed
agov-ident.invalid-url.instruction=The link you used to access this page isn't valid. Please make sure you use it as received without any typos or click it directly on the page, where it is published.
agov-ident.invalid-url.message=Link can't be processed
agov-ident.invalid-url.title=Invalid Link
agov-ident.onboarding=Registration & Verification
agov-ident.retry=Try again
button.submit=Submit
darkModeSwitch.aria.label=Dark mode toggle
error.policy.failed=The new password does not comply with the policy.
error_1=Please check your input.
error_10=Please select the correct user account.
error_100=Certificate upload not possible. Certificate already exists. Please contact your helpdesk.
error_101=The entered email address is not valid.
error_11=Please use another certficate or login with another credential type.
error_2=Please select another login name.
error_3=Your account will be locked if next authentication fails.
error_4=Your new password does not comply with the security policy. Please choose a different password.
error_5=Error in password confirmation.
error_50=The new password is too short.
error_55=The new password has to differ from old passwords.
error_6=Password change required.
error_7=Change of login ID required.
error_8=Your account has been locked due to repeated authentication failures.
error_81=No access card found, access from internet denied.
error_83=Your access card is no longer valid. Please contact your advisor to get a new access card.
error_9=Session take over failed.
error_97=You are not authorized to access this resource.
error_98=Your account has been locked.
error_99=System problems. Please try later.
error_9901=You need a valid on-boarding link to access this page.
error_9902=The email used for authentication doesn't match the expected one in operations. Please ask for a new on-boarding link.
error_9903=The used IdP didn't send us a valid assertion. Please make sure, you use the correct IdP. Ask the support for a new on-boarding link.
error_9904=Your link is not valid anymore. Please make sure, that you are using the latest Link received from operations. Ask for a new link, if the problem persists.
error_9905=There is a problem with your operations account. Please contact the support.
error_9909=An internal error occured. Please ask the support for a new on-boarding link.
errors.duplicateValue=Your account is already linked with another operations access.
fido2_auth.cancel.fido=The security key authentication was interrupted. Please ensure your FIDO key is registered and your email is correct, then follow the steps below.
fido2_auth.instruction1=Click on "Continue"
fido2_auth.instruction2=An authentication window will appear
fido2_auth.instruction3=Follow the instructions
fido2_auth.skipInstructions=Skip instructions next time
fido2_auth.switchLogin=SWITCH TO LOGIN WITH
agov-ident.done.message=Ihr AGOV-Konto ist nun einsatzbereit. Bitte schliessen Sie diese Seite.
agov-ident.done.title=Fertig
agov-ident.failed.instruction=Sie ben&ouml;tigen ein AGOV-Konto und m&uuml;ssen die vorgeschlagene Daten&uuml;berpr&uuml;fung bestehen, um das Onboarding erfolgreich abzuschliessen. Bitte versuchen Sie es erneut.
agov-ident.failed.message=Onboarding abgebrochen oder Verifikation der Daten verschoben
agov-ident.failed.title=Verifikation erforderlich
agov-ident.invalid-url.instruction=Der Link, den Sie f&uuml;r den Zugriff auf diese Seite verwendet haben, ist ung&uuml;ltig. Bitte stellen Sie sicher, dass Sie ihn so verwenden, wie Sie ihn erhalten haben, ohne Tippfehler, oder klicken Sie ihn direkt auf der Seite an, auf der er ver&ouml;ffentlicht ist.
agov-ident.invalid-url.message=Link kann nicht verarbeitet werden
agov-ident.invalid-url.title=Ung&uuml;ltiger Link
agov-ident.onboarding=Registrierung & Verifikation
agov-ident.retry=Versuchen Sie es erneut
button.submit=Senden
darkModeSwitch.aria.label=Dark-Mode-Schalter
error.policy.failed=Das neue Passwort stimmt nicht mit der Richtlinie &uuml;berein.
error_1=Bitte &uuml;berpr&uuml;fen Sie Ihre Eingaben.
error_10=Bitte w&auml;hlen Sie das richtige Benutzerkonto aus.
error_100=Zertifikat-Upload nicht m&ouml;glich. Das Zertifikat existiert bereits. Wenden Sie sich an Ihr Helpdesk.
error_101=Die eingegebene E-Mail-Adresse ist ung&uuml;ltig.
error_11=Bitte verwenden Sie ein anderes Zertifikat oder melden Sie sich mit einer anderen Art von Credential an.
error_2=Bitte w&auml;hlen Sie einen anderen Login-Namen.
error_3=Wenn die n&auml;chste Authentifizierung fehlschl&auml;gt, wird Ihr Konto gesperrt.
error_4=Ihr neues Passwort verst&ouml;sst gegen die Sicherheitsrichtlinien. Bitte w&auml;hlen Sie ein anderes Passwort.
error_5=Fehler bei der Passwortbest&auml;tigung.
error_50=Das neue Passwort ist zu kurz.
error_55=Das neue Passwort muss sich von alten Passw&ouml;rtern unterscheiden.
error_6=Passwort&auml;nderung erforderlich.
error_7=&Auml;nderung der Login-ID erforderlich.
error_8=Ihr Konto wurde aufgrund wiederholter fehlgeschlagener Authentifizierungsversuche gesperrt.
error_81=Keine Zugangskarte gefunden, Zugang &uuml;ber das Internet verweigert.
error_83=Ihre Zugangskarte ist nicht mehr g&uuml;ltig. Bitte wenden Sie sich an Ihre Beratungsperson, um eine neue Zugangskarte zu erhalten.
error_9=&Uuml;bernahme der Sitzung fehlgeschlagen.
error_97=Sie sind nicht berechtigt, auf diese Ressource zuzugreifen.
error_98=Ihr Konto wurde gesperrt.
error_99=Systemprobleme: Bitte versuchen Sie es sp&auml;ter noch einmal.
error_9901=Sie ben&ouml;tigen einen g&uuml;ltigen Onboarding-Link, um auf diese Seite zuzugreifen.
error_9902=Die f&uuml;r die Authentifizierung verwendete E-Mail-Adresse stimmt nicht mit der erwarteten E-Mail-Adresse in Operations &uuml;berein. Bitte fordern Sie einen neuen Onboarding-Link an.
error_9903=Der verwendete IdP hat uns keine g&uuml;ltige Assertion gesendet. Bitte stellen Sie sicher, dass Sie den richtigen IdP verwenden. Fordern Sie beim Support einen neuen Onboarding-Link an.
error_9904=Ihr Link ist nicht mehr g&uuml;ltig. Bitte stellen Sie sicher, dass Sie den neuesten Link verwenden, den Sie von Operations erhalten haben. Fordern Sie einen neuen Link an, falls das Problem weiterhin besteht.
error_9905=Es gibt ein Problem mit Ihrem Operations-Konto. Kontaktieren Sie bitte den Support.
error_9909=Es ist ein interner Fehler aufgetreten. Bitten Sie den Support um einen neuen Onboarding-Link.
errors.duplicateValue=Ihr Konto ist bereits mit einem anderen Operations-Zugang verkn&uuml;pft.
fido2_auth.cancel.fido=Die Authentifizierung mit dem Sicherheitsschl&uuml;ssel wurde unterbrochen. Bitte vergewissern Sie sich, dass Ihr FIDO-Schl&uuml;ssel registriert ist und Ihre E-Mail korrekt ist.
fido2_auth.instruction1=Klicken Sie auf "Weiter"
fido2_auth.instruction2=Ein Authentifizierungsfenster wird erscheinen
fido2_auth.instruction3=Folgen Sie den Anweisungen
fido2_auth.skipInstructions=Anweisungen n&auml;chstes Mal &uuml;berspringen
fido2_auth.switchLogin=WECHSEL ZU LOGIN MIT
footer.link=https://agov.ch
footer.link.label=Contact
footer.text=Authentication service of Swiss authorities AGOV - a collaboration between cantons, their municipalities, and the federal administration. -
general.AGOVAccessApp=AGOV access app
general.accessApp=AGOV access app
general.authenticate=Authenticate
general.back=Back
general.cancel=Cancel
general.confirm=Confirm
general.contactSupport=Contact Support
general.continue=Continue
general.edit=Edit
general.email=Email
general.email.address=Email address
general.entryCode=Code entry
general.fieldRequired=Field required.
general.getStarted=Get started
general.goAGOVHelp=Go to AGOV help
general.goAccessApp=Login with AGOV access
general.help=Help
footer.link.label=Kontakt
footer.text=Authentifizierungsdienst der Schweizer Beh&ouml;rden AGOV &ndash; eine Zusammenarbeit zwischen den Kantonen, deren Gemeinden und der Bundesverwaltung. -
general.AGOVAccessApp=AGOV access App
general.accessApp=AGOV access App
general.authenticate=Authentifizieren
general.back=Zur&uuml;ck
general.cancel=Abbrechen
general.confirm=Best&auml;tigen
general.contactSupport=Support kontaktieren
general.continue=Weiter
general.edit=&Auml;ndern
general.email=E-Mail
general.email.address=E-Mail-Adresse
general.entryCode=Code-Eingabe
general.fieldRequired=Erforderliches Feld.
general.getStarted=Los geht's
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
general.goToAccessApp=Zur AGOV access App wechseln
general.help=Hilfe
general.help.link=https://agov.ch/help
general.login=Login
general.loginSecurityKey=Start Security key login
general.or=OR
general.otherOptions=OTHER OPTIONS
general.recovery=Recovery
general.login.accessApp=Login mit AGOV access App
general.login.securityKey=Login mit Sicherheitsschl&uuml;ssel
general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.moreOptions=WEITERE OPTIONEN
general.or=ODER
general.otherLoginMethods=Andere Login-Methoden
general.recovery=Wiederherstellung
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Download as PDF
general.recoveryCode.inputLabel=Recovery code
general.recoveryCode.repeatCodeError=The code you entered was incorrect. Please ensure you have stored it correctly, then continue to resubmit.
general.recoveryCode.repeatCodeModal.description=A lost or incorrectly stored recovery code can make it more difficult to recover your account. To ensure you have recorded your code correctly, please repeat it below.
general.recoveryCode.repeatCodeModal.title=Repeat recovery code
general.recoveryCode.reveal=Reveal recovery code
general.recoveryOngoing=Ongoing recovery
general.register=Register
general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
generic.auth.error.title=Error
info.login=Please enter your authentication information.
general.recoveryCode.downloadPdf=Als PDF herunterladen
general.recoveryCode.inputLabel=Wiederherstellungscode
general.recoveryCode.repeatCodeError=Der von Ihnen eingegebene Code war nicht korrekt. Bitte vergewissern Sie sich, dass Sie ihn richtig abgespeichert haben, und fahren Sie dann mit der erneuten Eingabe fort.
general.recoveryCode.repeatCodeModal.description=Ein verlorener oder falsch gespeicherter Wiederherstellungscode kann die Wiederherstellung Ihres Kontos erschweren. Um sicherzustellen, dass Sie Ihren Code richtig gespeichert haben, wiederholen Sie ihn bitte unten.
general.recoveryCode.repeatCodeModal.title=Wiederherstellungscode wiederholen
general.recoveryCode.reveal=Wiederherstellungscode enth&uuml;llen
general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!
general.registration=Registrierung
general.registration.dontHaveAnAccountYet=Haben Sie noch kein AGOV-Konto?
general.registration.seeOptions=Registrierungsoptionen ansehen
general.securityKey=Sicherheitsschl&uuml;ssel
general.skip.content=Direkt zum Hauptteil
general.wrongPhoneNumber=Bitte geben Sie eine g&uuml;ltige Telefonnummer ein
generic.auth.error.message=Es gab eine Service-Unterbrechung. Wir arbeiten daran.
generic.auth.error.next.steps=Versuchen Sie es bitte sp&auml;ter noch einmal. Bitte besuchen Sie die AGOV-Hilfe, wenn das Problem weiterhin besteht.
generic.auth.error.subtitle=Etwas ist schiefgegangen
generic.auth.error.title=Fehler
info.login=Bitte geben Sie Ihre pers&ouml;nlichen Zugangsdaten ein.
language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
languageDropdown.aria.label=Select language
loainfo.description.200=To access the application, we need to verify your data. The process can take up to 2 - 3 days.
loainfo.description.300=To access the application we need to verify your data through one of two processes. You can choose your preferred process in the next step.
loainfo.description.400=To access the application we need you to add your SSN (AHV) number.
loainfo.helper=Your data needs to be verified!
loainfo.later=Later
loainfo.startNow=Do you want to start the process now?
loainfo.startVerification=Start verification
loainfo.title=Verify your data
mauth_usernameless.EID=Continue with CH E-ID
mauth_usernameless.banner.error=Authentication interrupted.<br>Please try again when the page reloads.
mauth_usernameless.banner.info=Scan successful.<br>Please continue in the AGOV access app.
mauth_usernameless.banner.success=Authentication successful!<br>Please wait to be logged in.
mauth_usernameless.cannotLogin=Lost access to your app / security key?
mauth_usernameless.hideQR=Hide QR code
mauth_usernameless.instructions=Log in by scanning the QR code with your AGOV access app
mauth_usernameless.noAccount=Don't have an AGOV-Login yet?
mauth_usernameless.showQR=Show QR code
mauth_usernameless.startRecovery=Start account recovery
mauth_usernameless.useSecurityKey=Use a security key to log in
mauth_usernameless.useSecurityKeyInfo=A physical security key offers a secure way to login without having to use a phone.
op-admin.login=AGOV op admin
op-admin.login.intro.message=Login with your username and password
op-admin.login.loginid=LoginId
language.rm=Rumantsch
languageDropdown.aria.label=Sprache w&auml;hlen
loainfo.description.200=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben verifizieren. Der Vorgang kann bis zu 2 - 3 Tage dauern.
loainfo.description.300=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben durch einen von zwei Vorg&auml;ngen verifizieren. Sie k&ouml;nnen die bevorzugte Methode im n&auml;chsten Schritt ausw&auml;hlen.
loainfo.description.400=Bitte AHV-Nummer angeben, um auf die Applikation zuzugreifen.
loainfo.helper=Ihre pers&ouml;nlichen Daten m&uuml;ssen &uuml;berpr&uuml;ft werden!
loainfo.later=Sp&auml;ter
loainfo.startNow=M&ouml;chten Sie den Prozess jetzt starten?
loainfo.startVerification=Verifikation starten
loainfo.title=Verifizieren Sie Ihre Daten
mauth_usernameless.EID=Mit Schweizer E-ID fortfahren
mauth_usernameless.banner.error=Authentifizierung unterbrochen.<br>Bitte versuchen Sie es erneut, nachdem die Seite neu geladen wurde.
mauth_usernameless.banner.info=Scan erfolgreich.<br>Bitte fahren Sie in der AGOV access App fort.
mauth_usernameless.banner.success=Authentifizierung erfolgreich!<br>Bitte warten Sie, bis Sie eingeloggt werden.
mauth_usernameless.cannotLogin=Zugriff auf App / Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.cannotLogin.accessApp=Zugriff auf App verloren?
mauth_usernameless.cannotLogin.securityKey=Zugriff auf Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.hideQR=QR-Code ausblenden
mauth_usernameless.instructions=Melden Sie sich an, indem Sie den QR-Code mit Ihrer AGOV access App scannen
mauth_usernameless.noAccount=Haben Sie noch kein AGOV-Konto?
mauth_usernameless.selectLoginMethod=Login-Methode w&auml;hlen
mauth_usernameless.showQR=QR-Code anzeigen
mauth_usernameless.startRecovery=Kontowiederherstellung starten
mauth_usernameless.useSecurityKey=Verwenden Sie einen Sicherheitsschl&uuml;ssel, um sich anzumelden
mauth_usernameless.useSecurityKeyInfo=Ein physischer Sicherheitsschl&uuml;ssel bietet eine sichere M&ouml;glichkeit, sich ohne Telefon anzumelden.
op-admin.login=AGOV-op-Admin
op-admin.login.intro.message=Login mit Ihrem Benutzernamen und Passwort
op-admin.login.loginid=LoginID
op-admin.login.password=Passwort
op-admin.login.title=Login
op-admin.logout=AGOV op admin
op-admin.logout.message=You have successfully logged out.
op-admin.logout=AGOV-op-Admin
op-admin.logout.message=Sie haben sich erfolgreich ausgeloggt.
op-admin.logout.title=Logout
op-admin.pwchange.intro.message=Password change required
op-admin.pwchange.newpassword=New password
op-admin.pwchange.newpassword2=Repeat new password
op-admin.pwchange.password=Current password
op-admin.pwchange.title=Password Change
op-admin.pwchange.intro.message=Passwort&auml;nderung erforderlich
op-admin.pwchange.newpassword=Neues Passwort
op-admin.pwchange.newpassword2=Neues Passwort wiederholen
op-admin.pwchange.password=Aktuelles Passwort
op-admin.pwchange.title=&Auml;nderung des Passworts
op-idmlogin.role.accs-mgmt-idm=IDM accessrights management
op-idmlogin.role.accs-mgmt-nonidm=Accessrights management
op-idmlogin.role.idmcfg-mgmt=IDM set-up
op-idmlogin.role.readonly-access=Default access (readonly)
op-idmlogin.role.support-basic=Support cases (recovery, ...)
op-idmlogin.role.support-priv=3rd level support (archiving, off-boarding)
op-idmlogin.role.usr-mgmt=User management (operations)
op-idmlogin.role.usr-unit-mgmt=User and organization management (operations)
op-idmlogin.role.readonly-access=Standardzugriff (Nur Leseberechtigung)
op-idmlogin.role.support-basic=Supportf&auml;lle (Wiederherstellung, ...)
op-idmlogin.role.support-priv=3rd Level Support (Archivierung, Abmeldungen, ...)
op-idmlogin.role.usr-mgmt=Benutzerverwaltung (Betrieb)
op-idmlogin.role.usr-unit-mgmt=Benutzer- und Organisationsverwaltung (Betrieb)
op-idmlogin.select=AGOV idm
op-idmlogin.select.intro=Please select one of the profiles below...
op-idmlogin.select.note=Profiles marked with a * should only be used if required for a specific support or release tasks.
op-idmlogin.select.title=Profile selection
op-onboarding.done.message=On-boarding was successfull. You can now use your AGOV operations access. Please close the browser, before accessing on of the operations application.
op-onboarding.done.title=DONE
op-onboarding.failed.title=ERROR
op-onboarding.intro.message1=To complete your on-boarding for your AGOV operations access, you need either an AGOV or a FED-LOGIN account.
op-onboarding.intro.message2=After clicking on "Continue", you will be redirected for authentication.
op-onboarding.intro.message3=If you are using AGOV, and your account doesn't meet yet the required AGOVaq level, you will be given the possibility to start the required ID verification.
op-idmlogin.select.intro=Bitte w&auml;hlen Sie ein Profil aus...
op-idmlogin.select.note=Mit * markierte Profile sollten nur f&uuml;r bestimmte Support oder Release Aufgaben genutzt werden.
op-idmlogin.select.title=Profilauswahl
op-onboarding.done.message=Das Onboarding war erfolgreich. Sie k&ouml;nnen nun Ihren AGOV-Operations-Zugang verwenden. Bitte schliessen Sie den Browser, bevor Sie auf eine der Operations-Applikationen zugreifen.
op-onboarding.done.title=FERTIG
op-onboarding.failed.title=FEHLER
op-onboarding.intro.message1=Um das Onboarding f&uuml;r Ihren AGOV-Operations-Zugang abzuschliessen, ben&ouml;tigen Sie entweder ein AGOV- oder ein FED-LOGIN-Konto.
op-onboarding.intro.message2=Wenn Sie auf &laquo;Weiter&raquo; klicken, werden Sie zur Authentifizierung weitergeleitet.
op-onboarding.intro.message3=Wenn Sie AGOV verwenden und Ihr Konto noch nicht der erforderlichen AGOVaq-Stufe entspricht, erhalten Sie die M&ouml;glichkeit, die erforderliche Identit&auml;tspr&uuml;fung zu starten.
op-onboarding.intro.title=START
op-onboarding.onboarding=AGOV op on-boarding
op-onboarding.process.message=During the processing something went wrong. Please contact AGOV support if necessary and ask also for a new on-boarding link.
prompt.client=Client
prompt.newpassword=New Password
prompt.newpassword.confirm=Confirm Password
prompt.password=Password
prompt.userid=User-ID
providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phone number will not be used to contact you.
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number
pwreset.done.info=Your password was successfully changed. Please click on continue to log in.
pwreset.email.sent=If your user ID exists, an email to reset your password has been sent to you.
pwreset.info.linktext=Password forgotten
pwreset.noticket=Your password reset link is no longer valid. Please generate a new one.
recovery_accessapp_auth.accessAppRegistered=AGOV access app already registered
recovery_accessapp_auth.instruction1=You have already registered a new AGOV access app !!!ACCESS_APP_NAME!!! as part of the recovery process.
recovery_accessapp_auth.instruction2=Please use !!!ACCESS_APP_NAME!!! to identify you.
recovery_check_code.banner.lockedError=Too many invalid input attempts. Please try again in a few minutes.
recovery_check_code.codeIncorrect=Code entered is incorrect. Please try again.
recovery_check_code.enterRecoveryCode=Enter recovery code
recovery_check_code.instruction=Please enter below your personal 12-digit recovery code. You will have received the recovery code as a PDF file during registration or in AGOV me.
recovery_check_code.invalid.code=The code is invalid
recovery_check_code.invalid.code.required=Code required
recovery_check_code.invalid.code.tooLong=The code is too long
recovery_check_code.noAccess=I do not have access to my code
recovery_check_code.noCodeAccess=Are you sure you don't have access to your recovery code?
recovery_check_code.noCodeAccessInstructions=If you have lost access to your recovery code please go to AGOV help in order to contact a AGOV support agent. They will be able to help you with the recovery process.
recovery_check_code.too_many_tries.instruction1=The recovery code you have entered might have expired or you might have tried to enter it too many times.
recovery_check_code.too_many_tries.instruction2=Please go to AGOV help in order to contact a support agent. They will be able to help you with the recovery process.
recovery_check_noCode.banner.error=Too many attempts.
recovery_check_noCode.instruction1=You might have tried to enter the recovery code too many times.
recovery_check_noCode.instruction2=Please close the web browser and start the account recovery again in ten minutes from <a class='link' href='https://agov.ch/me'>https://agov.ch/me</a>.
recovery_code.banner.error=Please reveal your new code to be able to continue.
recovery_code.instruction=Recovery codes help you gain access to your account in case you lost all of your login factors. Please store the recovery code in a safe place.
recovery_code.newRecoveryCode=Introducing Recovery Code
recovery_code.validUntil=Valid until:
recovery_fidokey_auth.button=Start key authentication
recovery_fidokey_auth.fidoInstruction=Click on "Start key authentication"
recovery_fidokey_auth.instruction1=You have already registered a new security key !!!SECURITY_KEY_NAME!!! as part of the recovery process.
recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow the steps below to identify you.
recovery_fidokey_auth.keyRegistered=Security key already registered
recovery_intro_email.banner.error=The link you used has expired. Please enter your email address to receive a new link.
recovery_intro_email.banner.info=Please enter your email address, so we can send you a link to start the recovery process.
recovery_intro_email.important=Important:
recovery_intro_email.process=The recovery process should only be used if you have lost access to your login factors (deleted AGOV access app, lost security key, lost phone, etc.).
recovery_intro_email_sent.banner.button=Didn't receive the email?
recovery_intro_email_sent.banner.success=Thank you! You will receive an email with a recovery link and instructions shortly.
recovery_on_going.finishRecovery=Finish recovery
recovery_on_going.instruction=You have an ongoing recovery process. Part of the recovery process can include an identity verification. To access applications with your AGOV-Login you need to finish the identity verification as well.
recovery_on_going.title=Please finish your recovery process.
recovery_questionnaire_instructions.banner.info=Please note that in certain cases you need access to your recovery code for a successful recovery.
recovery_questionnaire_instructions.explanation=Based on your answers an AGOV-Login recovery seems to be necessary. Please click on continue and follow the instructions on the screen.
recovery_questionnaire_instructions.instruction1=Provide your account email address so we can send you a link to begin the recovery process
recovery_questionnaire_instructions.instruction2=Follow steps to recover your account (steps will vary depending on your account verification level)
recovery_questionnaire_loginfactor.banner.error=Please select an answer.
recovery_questionnaire_loginfactor.no=No
recovery_questionnaire_loginfactor.question=Have you registered more than one login factor (AGOV access app or security key) to your account?
recovery_questionnaire_loginfactor.yes=Yes
recovery_questionnaire_no_recovery.explanation1=Based on your answers, the AGOV recovery option does not seem necessary right now.
recovery_questionnaire_no_recovery.explanation2=Should you need further information, please visit <a class='link' href='https://agov.ch/help' target='_blank'>https://agov.ch/help</a> for support articles.
recovery_questionnaire_no_recovery.instruction1=If you have issues logging in to an application, please visit <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a> and test if you can log in successfully.
recovery_questionnaire_no_recovery.instruction2=If you have several login factors registered but lost access to one of them, please visit <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a> to remove the one you have lost access to.
recovery_questionnaire_reason_selection.answer1=I have trouble logging in, even though I have my app / security key
recovery_questionnaire_reason_selection.answer10=I lost one of my login factors (AGOV access app or security key)
recovery_questionnaire_reason_selection.answer2=I was unable to finish my registration
recovery_questionnaire_reason_selection.answer3=I have deleted, reinstalled, or reset my AGOV access app
recovery_questionnaire_reason_selection.answer4=I have lost my phone / security key
recovery_questionnaire_reason_selection.answer5=I have a new phone and forgot to transfer my AGOV access app
recovery_questionnaire_reason_selection.answer6=I forgot my PIN for the AGOV access app
recovery_questionnaire_reason_selection.answer7=I have my security keys or apps but had trouble logging in
recovery_questionnaire_reason_selection.answer8=I lost access to all my security keys and AGOV access apps
recovery_questionnaire_reason_selection.answer9=I have issues with one of my login factors (deleted, reset, forgotten PIN)
recovery_questionnaire_reason_selection.banner.error=Please select a reason.
recovery_questionnaire_reason_selection.instruction=Please select the reason you are starting the recovery process:
recovery_start_info.banner.warning=You will not be able to use your account until the recovery process has been concluded.
recovery_start_info.instruction=During the recovery process you will register a new login factor. If your account contains any verified information you might also have to go through a verification process to finish the recovery.
recovery_start_info.title=You are about to start the recovery process
op-onboarding.onboarding=AGOV-op-Onboarding
op-onboarding.process.message=Bei der Bearbeitung ist etwas schiefgegangen. Wenden Sie sich wenn n&ouml;tig an den AGOV-Support und fordern Sie einen neuen Onboarding-Link an.
prompt.client=Mandant
prompt.newpassword=Neues Passwort
prompt.newpassword.confirm=Passwort best&auml;tigen
prompt.password=Passwort
prompt.userid=Benutzer-ID
providePhoneNumber.banner=Die Mobilnummer muss f&uuml;r den Empfang von SMS geeignet sein.<br>Diese Mobilnummer wird nicht verwendet, um Sie zu kontaktieren.
providePhoneNumber.description=AGOV erlaubt nun die Wiederherstellung mittels Mobilnummer. So k&ouml;nnen Sie w&auml;hrend der Wiederherstellung mit einer SMS fortfahren, wenn Sie Ihren Wiederherstellungscode verloren haben.
providePhoneNumber.errorBanner=Die Mobilnummern stimmen nicht &uuml;berein. Bitte versuchen Sie es erneut.
providePhoneNumber.inputLabel=Mobilnummer (optional)
providePhoneNumber.laterModal.description1=Ohne Mobilnummer kann die Wiederherstellung Ihres Kontos bis zu 4 Tage dauern, wenn Sie Ihren Wiederherstellungscode verlieren.
providePhoneNumber.laterModal.description2=Durch Hinzuf&uuml;gen einer Mobilnummer k&ouml;nnen Sie Ihr Konto in wenigen Minuten wiederherstellen.
providePhoneNumber.laterModal.description3=Diese Mobilnummer wird nicht verwendet, um Sie zu kontaktieren.
providePhoneNumber.laterModal.title=Ohne Mobilnummer weiterfahren?
providePhoneNumber.modal.description=Eine falsch gespeicherte Mobilnummer kann die Wiederherstellung Ihres Kontos erschweren. Um sicherzustellen, dass Sie Ihre Mobilnummer richtig gespeichert haben, wiederholen Sie sie bitte unten.
providePhoneNumber.modal.inputLabel=Mobilnummer
providePhoneNumber.modal.title=Mobilnummer wiederholen
providePhoneNumber.saveButtonText=Speichern
providePhoneNumber.title=Mobilnummer angeben
pwreset.done.info=Ihr Passwort wurde erfolgreich ge&auml;ndert. Bitte klicken Sie auf Weiter, um sich einzuloggen.
pwreset.email.sent=Wenn Ihre Benutzer-ID existiert, haben Sie eine E-Mail erhalten, um Ihr Passwort zurückzusetzen..
pwreset.info.linktext=Passwort vergessen
pwreset.noticket=Ihr Link ist nicht mehr g&uuml;ltig. Bitte generieren Sie ein Neuen.
recovery_accessapp_auth.accessAppRegistered=AGOV access App schon registriert
recovery_accessapp_auth.instruction1=Sie haben bereits eine neue AGOV access App !!!ACCESS_APP_NAME!!! im Rahmen des Wiederherstellungsprozesses registriert.
recovery_accessapp_auth.instruction2=Verwenden Sie !!!ACCESS_APP_NAME!!! um sich zu identifizieren.
recovery_check_code.banner.lockedError=Zu viele Fehlversuche. Bitte versuchen Sie es in ein paar Minuten noch einmal.
recovery_check_code.codeIncorrect=Der eingegebene Code ist nicht korrekt. Bitte versuchen Sie es erneut.
recovery_check_code.enterRecoveryCode=Wiederherstellungscode eingeben
recovery_check_code.instruction=Bitte geben Sie unten Ihren pers&ouml;nlichen 12-stelligen Wiederherstellungscode ein. Sie haben den Wiederherstellungscode in einer PDF-Datei bei der Registrierung oder in AGOV me erhalten.
recovery_check_code.invalid.code=Code ist ung&uuml;ltig
recovery_check_code.invalid.code.required=Code erforderlich
recovery_check_code.invalid.code.tooLong=Eingegebener Code ist zu lang
recovery_check_code.noAccess=Ich kann auf meinen Code nicht zugreifen
recovery_check_code.noCodeAccess=Sind Sie sicher, dass Sie auf Ihren Wiederherstellungscode nicht zugreifen k&ouml;nnen?
recovery_check_code.noCodeAccessInstructions=Wenn Sie auf Ihren Wiederherstellungscode nicht mehr zugreifen k&ouml;nnen, gehen Sie bitte zur AGOV-Hilfe, um jemanden vom AGOV-Support zu kontaktieren. Die Person wird Sie beim Wiederherstellungsprozess unterst&uuml;tzen.
recovery_check_code.too_many_tries.instruction1=Der von Ihnen eingegebene Wiederherstellungscode ist m&ouml;glicherweise abgelaufen oder Sie haben zu oft versucht, einen Code einzugeben.
recovery_check_code.too_many_tries.instruction2=Gehen Sie bitte zur AGOV-Hilfe, um jemanden vom Support zu kontaktieren. Die Person wird Sie beim Wiederherstellungsprozess unterst&uuml;tzen.
recovery_check_noCode.banner.error=Zu viele Versuche.
recovery_check_noCode.instruction1=M&ouml;glicherweise haben Sie zu oft versucht, den Wiederherstellungscode einzugeben.
recovery_check_noCode.instruction2=Bitte schliessen Sie den Webbrowser und starten Sie die Kontowiederherstellung in zehn Minuten erneut auf <a class='link' href='https://agov.ch/me'>https://agov.ch/me</a>.
recovery_code.banner.error=Bitte enth&uuml;llen Sie den Code, um fortfahren zu k&ouml;nnen.
recovery_code.instruction=Der Wiederherstellungscode hilft Ihnen, Zugriff auf Ihr AGOV-Login zu erhalten, falls Sie alle Ihre Login-Faktoren verloren haben. Bitte bewahren Sie den Wiederherstellungscode an einem sicheren Ort auf.
recovery_code.newRecoveryCode=Einf&uuml;hrung von Wiederherstellungscode
recovery_code.validUntil=G&uuml;ltig bis:
recovery_fidokey_auth.button=Schl&uuml;sselauthentifizierung starten
recovery_fidokey_auth.fidoInstruction=Klicken Sie auf "Schl&uuml;sselauthentifizierung starten"
recovery_fidokey_auth.instruction1=Sie haben bereits einen neuen Sicherheitsschl&uuml;ssel !!!SECURITY_KEY_NAME!!! im Rahmen des Wiederherstellungsprozesses registriert.
recovery_fidokey_auth.instruction2=Bitte verwenden Sie !!!SECURITY_KEY_NAME!!! und befolgen Sie die untenstehenden Schritte, um sich zu identifizieren.
recovery_fidokey_auth.keyRegistered=Sicherheitsschl&uuml;ssel schon registriert
recovery_intro_email.banner.error=Der von Ihnen verwendete Link ist abgelaufen. Bitte geben Sie Ihre E-Mail-Adresse ein, um einen neuen Link zu erhalten.
recovery_intro_email.banner.info=Bitte geben Sie Ihre E-Mail-Adresse ein, damit wir Ihnen einen Link schicken k&ouml;nnen, mit dem Sie den Wiederherstellungsprozess starten.
recovery_intro_email.important=Wichtig:
recovery_intro_email.process=Der Wiederherstellungsprozess sollte nur verwendet werden, wenn Sie den Zugriff auf Ihre Login-Faktoren verloren haben (gel&ouml;schte AGOV access App, verlorener Sicherheitsschl&uuml;ssel, verlorenes Telefon usw.).
recovery_intro_email_sent.banner.button=Keine E-Mail erhalten?
recovery_intro_email_sent.banner.success=Vielen Dank! Sie werden in K&uuml;rze eine E-Mail mit einem Wiederherstellungslink und Anweisungen erhalten.
recovery_on_going.finishRecovery=Wiederherstellung abschliessen
recovery_on_going.instruction=Sie haben einen laufenden Wiederherstellungsprozess. Der Wiederherstellungsprozess kann eine Identit&auml;tspr&uuml;fung umfassen. Um mit Ihrem AGOV-Login auf Applikationen zugreifen zu k&ouml;nnen, m&uuml;ssen Sie auch die Identit&auml;tspr&uuml;fung abschliessen.
recovery_on_going.title=Bitte schliessen Sie Ihren Wiederherstellungsprozess ab.
recovery_questionnaire_instructions.banner.info=Bitte beachten Sie, dass Sie in bestimmten F&auml;llen f&uuml;r eine erfolgreiche Wiederherstellung Zugang zu Ihrem Wiederherstellungscode ben&ouml;tigen.
recovery_questionnaire_instructions.explanation=Aufgrund Ihrer Antworten scheint eine Wiederherstellung Ihres AGOV-Logins erforderlich zu sein. Bitte klicken Sie auf Weiter und folgen Sie den Anweisungen auf dem Bildschirm.
recovery_questionnaire_instructions.instruction1=Geben Sie die E-Mail-Adresse Ihres AGOV-Logins an, damit wir Ihnen einen Link senden k&ouml;nnen, um den Wiederherstellungsprozess zu beginnen
recovery_questionnaire_instructions.instruction2=Folgen Sie den Schritten zur Wiederherstellung Ihres Kontos (die Schritte variieren je nach Verifizierungsstufe Ihres Kontos)
recovery_questionnaire_loginfactor.banner.error=Bitte w&auml;hlen Sie eine Antwort.
recovery_questionnaire_loginfactor.no=Nein
recovery_questionnaire_loginfactor.question=Haben Sie mehr als einen Loginfaktor (AGOV access App oder Sicherheitsschl&uuml;ssel) f&uuml;r Ihren AGOV-Login registriert?
recovery_questionnaire_loginfactor.yes=Ja
recovery_questionnaire_no_recovery.explanation1=Ausgehend von Ihren Antworten scheint eine Wiederherstellung Ihres AGOV-Logins im Moment nicht notwendig zu sein.
recovery_questionnaire_no_recovery.explanation2=Falls Sie weitere Informationen ben&ouml;tigen, besuchen Sie bitte <a class='link' href='https://agov.ch/help' target='_blank'>https://agov.ch/help</a> f&uuml;r Support-Artikel.
recovery_questionnaire_no_recovery.instruction1=Wenn Sie Probleme haben, sich bei einer Anwendung anzumelden, besuchen Sie bitte <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a> und testen Sie, ob Sie sich erfolgreich anmelden k&ouml;nnen.
recovery_questionnaire_no_recovery.instruction2=Wenn Sie mehrere Loginfaktoren registriert haben, aber den Zugriff zu einem von ihnen verloren haben, besuchen Sie bitte <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a>, um den verlorenen Loginfaktor zu entfernen.
recovery_questionnaire_reason_selection.answer1=Ich habe Probleme mich anzumelden, obwohl ich meine App / meinen Sicherheitsschl&uuml;ssel habe
recovery_questionnaire_reason_selection.answer10=Ich habe einen meiner Loginfaktoren verloren (AGOV access App oder Sicherheitsschl&uuml;ssel)
recovery_questionnaire_reason_selection.answer2=Ich konnte meine Registrierung nicht abschliessen
recovery_questionnaire_reason_selection.answer3=Ich habe meine AGOV access App gel&ouml;scht, neu installiert oder zur&uuml;ckgesetzt
recovery_questionnaire_reason_selection.answer4=Ich habe mein Telefon / Sicherheitsschl&uuml;ssel verloren
recovery_questionnaire_reason_selection.answer5=Ich habe ein neues Telefon und habe vergessen, meine AGOV access App zu &uuml;bertragen
recovery_questionnaire_reason_selection.answer6=Ich habe die PIN f&uuml;r meine AGOV access App vergessen
recovery_questionnaire_reason_selection.answer7=Ich habe meine Sicherheitsschl&uuml;ssel oder AGOV access Apps, hatte aber Probleme beim Einloggen
recovery_questionnaire_reason_selection.answer8=Ich habe den Zugriff auf alle meine Sicherheitsschl&uuml;ssel und AGOV access Apps verloren
recovery_questionnaire_reason_selection.answer9=Ich habe Probleme mit einem meiner Loginfaktoren (gel&ouml;scht, zur&uuml;ckgesetzt, vergessene PIN)
recovery_questionnaire_reason_selection.banner.error=Bitte w&auml;hlen Sie einen Grund aus.
recovery_questionnaire_reason_selection.instruction=Bitte w&auml;hlen Sie einen Grund wieso Sie den AGOV recovery Prozess starten:
recovery_start_info.banner.warning=Sie k&ouml;nnen Ihr Konto nicht nutzen, bis der Wiederherstellungsprozess abgeschlossen ist.
recovery_start_info.instruction=W&auml;hrend des Wiederherstellungsprozesses werden Sie einen neuen Login-Faktor registrieren. Wenn Ihr Konto verifizierte Informationen enth&auml;lt, m&uuml;ssen Sie zum Abschluss des Wiederherstellungsprozesses m&ouml;glicherweise auch einen Verifikationsprozess durchlaufen.
recovery_start_info.title=Sie sind dabei, den Wiederherstellungsprozess zu starten
title=NEVIS SSO Portal
title.login=Login
title.pwchange.label=Password Change
title.pwreset=Password Forgotten
user_input.invalid.email=Please enter a valid email address
user_input.invalid.email.required=Field required
user_input.invalid.email.tooLong=Input is too long
title.pwchange.label=Passwort &auml;ndern
title.pwreset=Passwort Vergesssen
user_input.invalid.email=Bitte geben Sie eine g&uuml;ltige E-Mail ein
user_input.invalid.email.required=Erforderliches Feld
user_input.invalid.email.tooLong=Eingabe zu lang

View File

@ -64,12 +64,16 @@ general.fieldRequired=Erforderliches Feld.
general.getStarted=Los geht's
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
general.goToAccessApp=Zur AGOV access App wechseln
general.help=Hilfe
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Login mit AGOV access App
general.login.securityKey=Login mit Sicherheitsschl&uuml;ssel
general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.moreOptions=WEITERE OPTIONEN
general.or=ODER
general.otherOptions=WEITERE OPTIONEN
general.otherLoginMethods=Andere Login-Methoden
general.recovery=Wiederherstellung
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Als PDF herunterladen
@ -82,6 +86,8 @@ general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!
general.registration=Registrierung
general.registration.dontHaveAnAccountYet=Haben Sie noch kein AGOV-Konto?
general.registration.seeOptions=Registrierungsoptionen ansehen
general.securityKey=Sicherheitsschl&uuml;ssel
general.skip.content=Direkt zum Hauptteil
general.wrongPhoneNumber=Bitte geben Sie eine g&uuml;ltige Telefonnummer ein
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Sprache w&auml;hlen
loainfo.description.200=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben verifizieren. Der Vorgang kann bis zu 2 - 3 Tage dauern.
loainfo.description.300=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben durch einen von zwei Vorg&auml;ngen verifizieren. Sie k&ouml;nnen die bevorzugte Methode im n&auml;chsten Schritt ausw&auml;hlen.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Authentifizierung unterbrochen.<br>Bitte versuch
mauth_usernameless.banner.info=Scan erfolgreich.<br>Bitte fahren Sie in der AGOV access App fort.
mauth_usernameless.banner.success=Authentifizierung erfolgreich!<br>Bitte warten Sie, bis Sie eingeloggt werden.
mauth_usernameless.cannotLogin=Zugriff auf App / Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.cannotLogin.accessApp=Zugriff auf App verloren?
mauth_usernameless.cannotLogin.securityKey=Zugriff auf Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.hideQR=QR-Code ausblenden
mauth_usernameless.instructions=Melden Sie sich an, indem Sie den QR-Code mit Ihrer AGOV access App scannen
mauth_usernameless.noAccount=Haben Sie noch kein AGOV-Login?
mauth_usernameless.noAccount=Haben Sie noch kein AGOV-Konto?
mauth_usernameless.selectLoginMethod=Login-Methode w&auml;hlen
mauth_usernameless.showQR=QR-Code anzeigen
mauth_usernameless.startRecovery=Kontowiederherstellung starten
mauth_usernameless.useSecurityKey=Verwenden Sie einen Sicherheitsschl&uuml;ssel, um sich anzumelden

View File

@ -64,12 +64,16 @@ general.fieldRequired=Field required.
general.getStarted=Get started
general.goAGOVHelp=Go to AGOV help
general.goAccessApp=Login with AGOV access
general.goToAccessApp=Go to AGOV access app
general.help=Help
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Login with Access App
general.login.securityKey=Login with Security Key
general.loginSecurityKey=Start Security key login
general.moreOptions=MORE OPTIONS
general.or=OR
general.otherOptions=OTHER OPTIONS
general.otherLoginMethods=Other login methods
general.recovery=Recovery
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Download as PDF
@ -82,6 +86,8 @@ general.recoveryOngoing=Ongoing recovery
general.register=Register
general.registerNow=Register now!
general.registration=Registration
general.registration.dontHaveAnAccountYet=Don't have an AGOV account yet?
general.registration.seeOptions=See registration options
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Select language
loainfo.description.200=To access the application, we need to verify your data. The process can take up to 2 - 3 days.
loainfo.description.300=To access the application we need to verify your data through one of two processes. You can choose your preferred process in the next step.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Authentication interrupted.<br>Please try again
mauth_usernameless.banner.info=Scan successful.<br>Please continue in the AGOV access app.
mauth_usernameless.banner.success=Authentication successful!<br>Please wait to be logged in.
mauth_usernameless.cannotLogin=Lost access to your app / security key?
mauth_usernameless.cannotLogin.accessApp=Lost access to your app?
mauth_usernameless.cannotLogin.securityKey=Lost access to your security key?
mauth_usernameless.hideQR=Hide QR code
mauth_usernameless.instructions=Log in by scanning the QR code with your AGOV access app
mauth_usernameless.noAccount=Don't have an AGOV-Login yet?
mauth_usernameless.noAccount=Don't have an AGOV account yet?
mauth_usernameless.selectLoginMethod=Select login method
mauth_usernameless.showQR=Show QR code
mauth_usernameless.startRecovery=Start account recovery
mauth_usernameless.useSecurityKey=Use a security key to log in

View File

@ -64,12 +64,16 @@ general.fieldRequired=Champ requis.
general.getStarted=D&eacute;marrer
general.goAGOVHelp=Rendez-vous sur AGOV help
general.goAccessApp=Login avec AGOV access
general.goToAccessApp=Allez sur votre application AGOV access
general.help=Aide
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Connexion avec l'application AGOV access
general.login.securityKey=Connexion avec la cl&eacute; de s&eacute;curit&eacute;
general.loginSecurityKey=D&eacute;marrer la connexion avec la cl&eacute; de s&eacute;curit&eacute;
general.moreOptions=PLUS D'OPTIONS
general.or=OU
general.otherOptions=AUTRES OPTIONS
general.otherLoginMethods=Autres m&eacute;thodes de connexion
general.recovery=R&eacute;cup&eacute;ration
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=T&eacute;l&eacute;charger en format PDF
@ -82,6 +86,8 @@ general.recoveryOngoing=R&eacute;cup&eacute;ration en cours
general.register=Cr&eacute;er un compte
general.registerNow=Enregistrez-vous d&egrave;s maintenant!
general.registration=Enregistrement
general.registration.dontHaveAnAccountYet=Vous n'avez pas de compte AGOV ?
general.registration.seeOptions=Voir les options d'enregistrement
general.securityKey=Cl&eacute; de s&eacute;curit&eacute;
general.skip.content=Passer au contenu principal
general.wrongPhoneNumber=Veuillez saisir un num&eacute;ro de t&eacute;l&eacute;phone valable
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=S&eacute;lectionner la langue
loainfo.description.200=Pour acc&eacute;der &agrave; l'application, nous devons v&eacute;rifier vos donn&eacute;es. Ce processus peut prendre jusqu'&agrave; 2 ou 3 jours.
loainfo.description.300=Pour acc&eacute;der &agrave; l'application, nous devons v&eacute;rifier vos donn&eacute;es par le biais de l'une des deux proc&eacute;dures suivantes. Vous pouvez choisir la proc&eacute;dure que vous pr&eacute;f&eacute;rez &agrave; l'&eacute;tape suivante.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Authentification interrompue.<br>Veuillez r&eacu
mauth_usernameless.banner.info=Scan r&eacute;ussi!<br> Veuillez continuer dans l'application AGOV access.
mauth_usernameless.banner.success=Authentification r&eacute;ussie!<br>Veuillez attendre d'&ecirc;tre connect&eacute;.
mauth_usernameless.cannotLogin=Avez-vous perdu l'acc&egrave;s &agrave; votre application / votre cl&eacute; de s&eacute;curit&eacute; ?
mauth_usernameless.cannotLogin.accessApp=Vous avez perdu l'acc&egrave;s &agrave; votre application AGOV access ?
mauth_usernameless.cannotLogin.securityKey=Avez-vous perdu l'acc&egrave;s &agrave; votre cl&eacute; de s&eacute;curit&eacute; ?
mauth_usernameless.hideQR=Cacher le code QR
mauth_usernameless.instructions=Connectez-vous en scannant le code QR avec l'application AGOV access
mauth_usernameless.noAccount=Vous n'avez pas encore d'AGOV-Login ?
mauth_usernameless.noAccount=Vous n'avez pas de compte AGOV ?
mauth_usernameless.selectLoginMethod=S&eacute;l&eacute;ctionner la m&eacute;thode de connexion
mauth_usernameless.showQR=Afficher le code QR
mauth_usernameless.startRecovery=Commencer la r&eacute;cup&eacute;ration du compte
mauth_usernameless.useSecurityKey=Utiliser une cl&eacute; de s&eacute;curit&eacute; pour se connecter

View File

@ -64,12 +64,16 @@ general.fieldRequired=Campo obbligatorio.
general.getStarted=Iniziare
general.goAGOVHelp=Vai ad AGOV help
general.goAccessApp=Login con AGOV access
general.goToAccessApp=Vai all'app AGOV access
general.help=Aiuto
general.help.link=https://agov.ch/help
general.login=Accedere
general.login.accessApp=Accesso con l'App AGOV access
general.login.securityKey=Login con la chiave di sicurezza
general.loginSecurityKey=Iniziare il login con la chiave di sicurezza
general.moreOptions=ALTRE OPZIONI
general.or=O
general.otherOptions=ALTRE OPZIONI
general.otherLoginMethods=Altri metodi di login
general.recovery=Ripristino
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Salva come PDF
@ -82,6 +86,8 @@ general.recoveryOngoing=Ripristino in corso
general.register=Registrarsi
general.registerNow=Si registri ora!
general.registration=Registrazione
general.registration.dontHaveAnAccountYet=Non ha ancora un AGOV account?
general.registration.seeOptions=Vedere le opzioni di registrazione
general.securityKey=Chiave di sicurezza
general.skip.content=Vai al contenuto principale
general.wrongPhoneNumber=Inserire un numero di cellulare valido
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Selezionare la lingua
loainfo.description.200=Per accedere all'app &egrave; necessaria una verifica dei dati. La procedura pu&ograve; richiedere fino a 2&ndash;3 giorni lavorativi.
loainfo.description.300=Per accedere all'app dobbiamo verificare i suoi dati tramite uno dei due processi. Al prossimo passaggio, pu&ograve; selezionare la procedura di verifica desiderata.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Autenticazione interrotta.<br>Riprovare dopo che
mauth_usernameless.banner.info=La scansione &egrave; stata eseguita.<br>Continuare nell'app AGOV access.
mauth_usernameless.banner.success=Autenticazione riuscita!<br>Aspettare di essere connessi.
mauth_usernameless.cannotLogin=Ha perso l'accesso alla sua app/chiave di sicurezza?
mauth_usernameless.cannotLogin.accessApp=Ha perso l'accesso al suo App AGOV access?
mauth_usernameless.cannotLogin.securityKey=Ha perso l'accesso alla sua chiave di sicurezza?
mauth_usernameless.hideQR=Nascondi il codice QR
mauth_usernameless.instructions=Per accedere, scansionare il codice QR con l'app AGOV access.
mauth_usernameless.noAccount=Non ha ancora un AGOV-Login ?
mauth_usernameless.noAccount=Non ha ancora un AGOV account?
mauth_usernameless.selectLoginMethod=Selezionare il metodo di login
mauth_usernameless.showQR=Visualizza il codice QR
mauth_usernameless.startRecovery=Inizia il recupero dell'account
mauth_usernameless.useSecurityKey=Accedere utilizzando una chiave di sicurezza.

View File

@ -0,0 +1,237 @@
agov-ident.done.message=Your AGOV account is now ready for use. Please close this page.
agov-ident.done.title=Done
agov-ident.failed.instruction=You need an AGOV account and pass the suggested data verification to successfully finish the on-boarding. Please try again.
agov-ident.failed.message=Onboarding cancelled or data verification postponed
agov-ident.failed.title=Verification needed
agov-ident.invalid-url.instruction=The link you used to access this page isn't valid. Please make sure you use it as received without any typos or click it directly on the page, where it is published.
agov-ident.invalid-url.message=Link can't be processed
agov-ident.invalid-url.title=Invalid Link
agov-ident.onboarding=Registration & Verification
agov-ident.retry=Try again
darkModeSwitch.aria.label=Activar l'apparientscha stgira
error_1=Please check your input.
error_10=Please select the correct user account.
error_100=Certificate upload not possible. Certificate already exists. Please contact your helpdesk.
error_101=The entered email address is not valid.
error_11=Please use another certficate or login with another credential type.
error_2=Please select another login name.
error_3=Your account will be locked if next authentication fails.
error_4=Your new password does not comply with the security policy. Please choose a different password.
error_5=Error in password confirmation.
error_50=The new password is too short.
error_55=The new password has to differ from old passwords.
error_6=Password change required.
error_7=Change of login ID required.
error_8=Your account has been locked due to repeated authentication failures.
error_81=No access card found, access from internet denied.
error_83=Your access card is no longer valid. Please contact your advisor to get a new access card.
error_9=Session take over failed.
error_97=You are not authorized to access this resource.
error_98=Your account has been locked.
error_99=System problems. Please try later.
error_9901=You need a valid on-boarding link to access this page.
error_9902=The email used for authentication doesn't match the expected one in operations. Please ask for a new on-boarding link.
error_9903=The used IdP didn't send us a valid assertion. Please make sure, you use the correct IdP. Ask the support for a new on-boarding link.
error_9904=Your link is not valid anymore. Please make sure, that you are using the latest Link received from operations. Ask for a new link, if the problem persists.
error_9905=There is a problem with your operations account. Please contact the support.
error_9909=An internal error occured. Please ask the support for a new on-boarding link.
errors.duplicateValue=Your account is already linked with another operations access.
fido2_auth.cancel.fido=L'autentificaziun cun la clav da segirezza &egrave; vegnida interrutta. Controllai che Vossa clav FIDO saja registrada e che Voss e-mail saja correct.
fido2_auth.instruction1=Cliccai sin "Vinavant"
fido2_auth.instruction2=En curt ina fanestra d'autentificaziun vegn ad aviar
fido2_auth.instruction3=Suandai las instrucziuns
fido2_auth.skipInstructions=Sursiglir las instrucziuns la proxima giada
fido2_auth.switchLogin=AS ANNUNZIAR CUN
footer.link=https://agov.ch
footer.link.label=Contact
footer.text=Authentication service of Swiss authorities AGOV - a collaboration between cantons, their municipalities, and the federal administration. -
general.AGOVAccessApp=App AGOV access
general.accessApp=App AGOV access
general.authenticate=Autentifitgar
general.back=Enavos
general.cancel=Interrumper
general.confirm=Confermar
general.contactSupport=Contactar il support
general.continue=Cuntinuar
general.edit=Modifitgar
general.email=E-mail
general.email.address=Adressa dad e-mail
general.entryCode=Endatai il code
general.fieldRequired=Champ obligatoric.
general.getStarted=Cumenzar
general.goAGOVHelp=Vinavant a AGOV help
general.goAccessApp=Login cun AGOV access
general.goToAccessApp=Cuntinuai a Vossa app AGOV access
general.help=Agid
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=As Annunziar cun la App Access
general.login.securityKey=As Annunziar cun la clav da segirezza
general.loginSecurityKey=Iniziar il login cun la clav da segirezza
general.moreOptions=DAPLI OPTIONS
general.or=U
general.otherLoginMethods=Ulteriuras methodas da registraziun
general.recovery=Recuperaziun
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Telechargiar en furma da PDF
general.recoveryCode.inputLabel=Code da recuperaziun
general.recoveryCode.repeatCodeError=Il code che Vus avais endat&agrave; n'&egrave; betg correct. Controllai che Vus l'hajas arcun&agrave; correctamain ed endatai anc ina giada il code.
general.recoveryCode.repeatCodeModal.description=In code da restabiliment pers u betg arcun&agrave; correctamain po difficultar la recuperaziun da Voss conto. Per verifitgar che Vus hajas arcun&agrave; correctamain Voss code, al repeti qua sutvart per plaschair.
general.recoveryCode.repeatCodeModal.title=Repeti il code da recuperaziun
general.recoveryCode.reveal=Revelar il code da recuperaziun
general.recoveryOngoing=Recuperaziun betg terminada
general.register=Registrar
general.registerNow=As registrai ussa!
general.registration=Registraziun
general.registration.dontHaveAnAccountYet=N'avais Vus anc nagin account AGOV?
general.registration.seeOptions=Mussar las methodas da registraziun
general.securityKey=Clav da segirezza
general.skip.content=Avanzar a la part principala
general.wrongPhoneNumber=Endatai in numer da telefonin valid
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
generic.auth.error.title=Error
language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Selecziunar la lingua
loainfo.description.200=Ina verificaziun da Vossas datas &egrave; necessaria per acceder a questa applicaziun. Quest process po durar fin 2 u 3 dis.
loainfo.description.300=Per acceder a questa applicaziun, stuain nus verifitgar Vossas indicaziuns cun in da dus process. Vus pudais selecziunar la metoda preferida en il proxim pass.
loainfo.description.400=Per acceder a questa applicaziun stuais Vus inditgar Voss numer AVS.
loainfo.helper=Vossas datas persunalas ston vegnir verifitgadas!
loainfo.later=Pli tard
loainfo.startNow=Vulais Vus ussa cumenzar cun il process?
loainfo.startVerification=Cumenzar cun la verificaziun
loainfo.title=Verifitgai Vossas datas
mauth_usernameless.EID=Cuntinuar cun la e-ID svizra
mauth_usernameless.banner.error=Autentificaziun interrutta. <br>Empruvai anc ina giada per plaschair, suenter che la pagina &egrave; rechargiada.
mauth_usernameless.banner.info=Scan reuss&igrave; <br>Cuntinuai per plaschair en l'app AGOV access.
mauth_usernameless.banner.success=Autentificaziun reussida! <br>Spetgai fin che Vus essas annunziads.
mauth_usernameless.cannotLogin=Avais Vus pers l'access a l'app / la clav da segirezza?
mauth_usernameless.cannotLogin.accessApp=Avais Vus pers l'access a Vossa app?
mauth_usernameless.cannotLogin.securityKey=Avais Vus pers l'access a Vossa clav da segirezza?
mauth_usernameless.hideQR=Zuppentar il code QR
mauth_usernameless.instructions=Per As annunziar, scannai il code QR cun Vossa app AGOV access
mauth_usernameless.noAccount=N'avais Vus anc nagin conto AGOV?
mauth_usernameless.selectLoginMethod=Selecziunai ina metoda da login
mauth_usernameless.showQR=Mussar il code QR
mauth_usernameless.startRecovery=Cumenzar cun la recuperaziun dal conto
mauth_usernameless.useSecurityKey=Duvrai ina clav da segirezza per As annunziar
mauth_usernameless.useSecurityKeyInfo=Ina clav da segirezza fisica pussibilitescha ina annunzia segira senza telefonin.
op-admin.login=AGOV op admin
op-admin.login.intro.message=Login with your username and password
op-admin.login.loginid=LoginId
op-admin.login.password=Passwort
op-admin.login.title=Login
op-admin.logout=AGOV op admin
op-admin.logout.message=You have successfully logged out.
op-admin.logout.title=Logout
op-admin.pwchange.intro.message=Password change required
op-admin.pwchange.newpassword=New password
op-admin.pwchange.newpassword2=Repeat new password
op-admin.pwchange.password=Current password
op-admin.pwchange.title=Password Change
op-idmlogin.role.accs-mgmt-idm=IDM accessrights management
op-idmlogin.role.accs-mgmt-nonidm=Accessrights management
op-idmlogin.role.idmcfg-mgmt=IDM set-up
op-idmlogin.role.readonly-access=Default access (readonly)
op-idmlogin.role.support-basic=Support cases (recovery, ...)
op-idmlogin.role.support-priv=3rd level support (archiving, off-boarding)
op-idmlogin.role.usr-mgmt=User management (operations)
op-idmlogin.role.usr-unit-mgmt=User and organization management (operations)
op-idmlogin.select=AGOV idm
op-idmlogin.select.intro=Please select one of the profiles below...
op-idmlogin.select.note=Profiles marked with a * should only be used if required for a specific support or release tasks.
op-idmlogin.select.title=Profile selection
op-onboarding.done.message=On-boarding was successfull. You can now use your AGOV operations access. Please close the browser, before accessing on of the operations application.
op-onboarding.done.title=DONE
op-onboarding.failed.title=ERROR
op-onboarding.intro.message1=To complete your on-boarding for your AGOV operations access, you need either an AGOV or a FED-LOGIN account.
op-onboarding.intro.message2=After clicking on "Continue", you will be redirected for authentication.
op-onboarding.intro.message3=If you are using AGOV, and your account doesn't meet yet the required AGOVaq level, you will be given the possibility to start the required ID verification.
op-onboarding.intro.title=START
op-onboarding.onboarding=AGOV op on-boarding
op-onboarding.process.message=During the processing something went wrong. Please contact AGOV support if necessary and ask also for a new on-boarding link.
providePhoneNumber.banner=Il numer da telefonin sto esser capabla da retschaiver SMS. <br>Quest numer da telefonin na vegn betg duvr&agrave; per As contactar.
providePhoneNumber.description=AGOV pussibilitescha ussa la recuperaziun cun agid dal numer da telefonin. Durant la recuperaziun pudais Vus ussa cuntinuar cun in SMS, en cas che Vus avais pers Voss code da recuperaziun.
providePhoneNumber.errorBanner=Ils numers da telefonin na correspundan betg in a l'auter. Empruvai danovamain per plaschair.
providePhoneNumber.inputLabel=Numer da telefonin (opziunal)
providePhoneNumber.laterModal.description1=Senza numer da telefonin po la recuperaziun da Voss conto cuzzar fin 4 dis, en cas che Vus perdais Voss code da recuperaziun.
providePhoneNumber.laterModal.description2=Agiuntar in numer da telefonin pussibilitescha ina recuperaziun da Voss conto en paucas minutas.
providePhoneNumber.laterModal.description3=Quest numer da telefonin na vegn betg duvr&agrave; per As contactar.
providePhoneNumber.laterModal.title=Cuntinuar senza numer da telefonin?
providePhoneNumber.modal.description=In numer da telefonin che n'&egrave; betg vegn&igrave; arcun&agrave; correctamain, po difficultar la recuperaziun da Voss conto. Per verifitgar che Vus hajas arcun&agrave; correctamain Voss numer da telefonin, al repeti qua sutvart per plaschair.
providePhoneNumber.modal.inputLabel=Numer da telefonin
providePhoneNumber.modal.title=Repeti il numer da telefonin
providePhoneNumber.saveButtonText=Arcunar
providePhoneNumber.title=Inditgar in numer da telefonin
recovery_accessapp_auth.accessAppRegistered=AGOV access app already registered
recovery_accessapp_auth.instruction1=You have already registered a new AGOV access app !!!ACCESS_APP_NAME!!! as part of the recovery process.
recovery_accessapp_auth.instruction2=Please use !!!ACCESS_APP_NAME!!! to identify you.
recovery_check_code.banner.lockedError=Too many invalid input attempts. Please try again in a few minutes.
recovery_check_code.codeIncorrect=Code entered is incorrect. Please try again.
recovery_check_code.enterRecoveryCode=Enter recovery code
recovery_check_code.instruction=Please enter below your personal 12-digit recovery code. You will have received the recovery code as a PDF file during registration or in AGOV me.
recovery_check_code.invalid.code=The code is invalid
recovery_check_code.invalid.code.required=Code required
recovery_check_code.invalid.code.tooLong=The code is too long
recovery_check_code.noAccess=I do not have access to my code
recovery_check_code.noCodeAccess=Are you sure you don't have access to your recovery code?
recovery_check_code.noCodeAccessInstructions=If you have lost access to your recovery code please go to AGOV help in order to contact a AGOV support agent. They will be able to help you with the recovery process.
recovery_check_code.too_many_tries.instruction1=The recovery code you have entered might have expired or you might have tried to enter it too many times.
recovery_check_code.too_many_tries.instruction2=Please go to AGOV help in order to contact a support agent. They will be able to help you with the recovery process.
recovery_check_noCode.banner.error=Too many attempts.
recovery_check_noCode.instruction1=You might have tried to enter the recovery code too many times.
recovery_check_noCode.instruction2=Please close the web browser and start the account recovery again in ten minutes from <a class='link' href='https://agov.ch/me'>https://agov.ch/me</a>.
recovery_code.banner.error=Please reveal your new code to be able to continue.
recovery_code.instruction=Recovery codes help you gain access to your account in case you lost all of your login factors. Please store the recovery code in a safe place.
recovery_code.newRecoveryCode=Introducing Recovery Code
recovery_code.validUntil=Valid until:
recovery_fidokey_auth.button=Start key authentication
recovery_fidokey_auth.fidoInstruction=Click on "Start key authentication"
recovery_fidokey_auth.instruction1=You have already registered a new security key !!!SECURITY_KEY_NAME!!! as part of the recovery process.
recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow the steps below to identify you.
recovery_fidokey_auth.keyRegistered=Security key already registered
recovery_intro_email.banner.error=Il link che Vus avais duvr&agrave; &egrave; scad&igrave;. Endatai Vossa adressa dad e-mail per survegnir in nov link.
recovery_intro_email.banner.info=Inditgai Vossa adressa dad e-mail. Nus As tramettain in link, cun il qual Vus pudais cumenzar cun il process da recuperaziun.
recovery_intro_email.important=Impurtant:
recovery_intro_email.process=Il process da restabiliment duess mo vegnir duvr&agrave; en cas che Vus avais pers l'access a Voss facturs da login (stizz&agrave; l'app AGOV access, pers la clav da segirezza, pers il telefonin etc.).
recovery_intro_email_sent.banner.button=N'avais betg retschav&igrave; il e-mail?
recovery_intro_email_sent.banner.success=Grazia fitg! Proximamain vegnis Vus a retschaiver in e-mail cun in link da recupraziun ed instrucziuns.
recovery_on_going.finishRecovery=Finish recovery
recovery_on_going.instruction=You have an ongoing recovery process. Part of the recovery process can include an identity verification. To access applications with your AGOV-Login you need to finish the identity verification as well.
recovery_on_going.title=Please finish your recovery process.
recovery_questionnaire_instructions.banner.info=Resguardai che en tscherts cas stuais Vus avair access a Voss code da recuperaziun per che la recupraziun po reussir.
recovery_questionnaire_instructions.explanation=Sin basa da Vossas respostas pari d'esser necessari da recuperar Voss login AGOV. Cliccai sin Vinavant e suandai las instrucziuns sin il monitur.
recovery_questionnaire_instructions.instruction1=Inditgai l'adressa dad e-mail da Voss login AGOV. Nus As tramettain in link, cun il qual Vus pudais cumenzar il process da recuperaziun
recovery_questionnaire_instructions.instruction2=Suandai ils pass per recuperar Voss conto (ils pass varieschan tenor il nivel da verificaziun da Voss conto)
recovery_questionnaire_loginfactor.banner.error=Per plaschair selecziunai ina resposta.
recovery_questionnaire_loginfactor.no=Na
recovery_questionnaire_loginfactor.question=Avais Vus registr&agrave; pli che in factur da login (app AGOV access u clav da segirezza) per Voss login AGOV?
recovery_questionnaire_loginfactor.yes=Gea
recovery_questionnaire_no_recovery.explanation1=Sin basa da Vossas respostas na pari per il mument betg d'esser necessari da recuperar Voss login AGOV.
recovery_questionnaire_no_recovery.explanation2=Sche Vus duvrais ulteriuras infurmaziuns, consultai <a class='link' href='https://agov.ch/help' target='_blank'>https://agov.ch/help</a> per artitgels da support.
recovery_questionnaire_no_recovery.instruction1=Sche Vus avais difficultads d'As annunziar per in'applicaziun, visitai <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a> e verifitgai sche Vus As pudais annunziar cun success.
recovery_questionnaire_no_recovery.instruction2=Sche Vus avais registr&agrave; plirs facturs da login, ma avais pers l'access ad in dad els, consultai <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a> per stizzar il factur da login pers.
recovery_questionnaire_reason_selection.answer1=Jau hai problems da m'annunziar, malgr&agrave; che jau hai mia app / clav da segirezza
recovery_questionnaire_reason_selection.answer10=Jau hai pers in da mes facturs da login (app AGOV access u clav da segirezza)
recovery_questionnaire_reason_selection.answer2=Jau n'hai betg pud&igrave; terminar mia registraziun
recovery_questionnaire_reason_selection.answer3=Jau hai stizz&agrave; u reinizialis&agrave; mia app AGOV access
recovery_questionnaire_reason_selection.answer4=Jau hai pers mes telefonin / mia clav da segirezza
recovery_questionnaire_reason_selection.answer5=Jau hai in nov telefonin ed hai emblid&agrave; da transferir mia app AGOV access
recovery_questionnaire_reason_selection.answer6=Jau hai emblid&agrave; il PIN per mia app AGOV access
recovery_questionnaire_reason_selection.answer7=Jau hai mias clavs da segirezza u mias apps, hai dentant g&igrave; problems da m'annunziar
recovery_questionnaire_reason_selection.answer8=Jau hai pers l'access a tut mias clavs da segirezza ed apps AGOV
recovery_questionnaire_reason_selection.answer9=Jau hai problems cun in da mes facturs da login (stizz&agrave;, mess enavos, PIN emblid&agrave;)
recovery_questionnaire_reason_selection.banner.error=Per plaschair selecziunai in motiv.
recovery_questionnaire_reason_selection.instruction=Selecziunai per plaschair il motiv, pertge che Vus cumenzais il process da recuperaziun:
recovery_start_info.banner.warning=Vus na pudais betg utilisar Voss conto, fin ch'il process da recuperaziun &egrave; termin&agrave;.
recovery_start_info.instruction=Durant il process da recuperaziun vegnis Vus a registrar in nov factur da login. Sche Voss conto cuntegna infurmaziuns verifitgadas, stuais Vus eventualmain er far in process da verificaziun per pudair terminar il process da restabiliment.
recovery_start_info.title=Vus essas vidlonder da cumenzar cun il process da recuperaziun
user_input.invalid.email=Endatai in'adressa dad e-mail valida
user_input.invalid.email.required=Champ obligatoric
user_input.invalid.email.tooLong=Il text endat&agrave; e memia lung

View File

@ -0,0 +1,43 @@
<svg width="32" height="33" viewBox="0 0 32 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_35368_44718)">
<path d="M32 0.5H0V32.5H32V0.5Z" fill="url(#paint0_linear_35368_44718)"/>
<g filter="url(#filter0_d_35368_44718)">
<path d="M-0.941934 -0.440878L27.5462 -1.28164L-1.78269 28.0473L-0.941934 -0.440878Z" fill="#F8F8F8"/>
</g>
<g clip-path="url(#clip1_35368_44718)">
<path d="M12.1729 6.25476C11.0581 5.84637 9.87613 5.65236 8.68929 5.68293C7.50026 5.65176 6.31606 5.84578 5.19914 6.25476C5.19914 6.25476 5.08412 8.78527 5.57708 10.2148C5.82821 10.9464 6.23676 11.6139 6.77393 12.1704C7.31109 12.7269 7.96379 13.1587 8.686 13.4355C9.40821 13.1587 10.0609 12.7269 10.5981 12.1704C11.1352 11.6139 11.5438 10.9464 11.7949 10.2148C12.2945 8.78527 12.1729 6.25476 12.1729 6.25476Z" fill="#FF0000"/>
<path d="M11.0063 8.44379V9.83721H9.37956V11.464H7.98614V9.83721H6.35938V8.44379H7.98614V6.82031H9.37956V8.44379H11.0063Z" fill="white"/>
</g>
<mask id="mask0_35368_44718" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="16" y="12" width="10" height="6">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.1016 12.5H25.714V17.9928L20.9401 17.4231L16.1016 17.9928V12.5Z" fill="white"/>
</mask>
<g mask="url(#mask0_35368_44718)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.0801 20.1778V17.2169C24.0801 15.5579 22.7352 14.213 21.0762 14.213C19.4172 14.213 18.0724 15.5579 18.0724 17.2169V20.1778C18.0724 21.8368 19.4172 23.1817 21.0762 23.1817C22.7352 23.1817 24.0801 21.8368 24.0801 20.1778ZM21.0762 12.7969C18.6351 12.7969 16.6562 14.7758 16.6562 17.2169V20.1778C16.6562 22.6189 18.6351 24.5978 21.0762 24.5978C23.5173 24.5978 25.4962 22.6189 25.4962 20.1778V17.2169C25.4962 14.7758 23.5173 12.7969 21.0762 12.7969Z" fill="white"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.875 19.9882C14.875 18.7348 15.892 17.7187 17.147 17.7188C18.0957 17.7188 19.2682 17.7188 20.5193 17.7188C22.002 17.7188 23.6005 17.7188 24.8537 17.7188C26.1087 17.7187 27.125 18.7348 27.125 19.9882V25.3079C27.125 26.5612 26.1084 27.5773 24.8534 27.5773C23.8341 27.5773 22.5655 27.5773 21.2485 27.5773C19.8117 27.5773 18.3238 27.5773 17.1473 27.5773C15.8923 27.5773 14.875 26.5612 14.875 25.3079V19.9882Z" fill="white"/>
<path d="M24.291 22.6514H23.2031V22.6494H22.3857V24.0107H19.6641V21.2881H22.3857V21.833H23.2031V20.4717H18.8477V24.8271H23.2031V23.4678H24.291V25.915H17.7578V19.3828H24.291V22.6514Z" fill="#501EB6"/>
</g>
<rect x="0.266667" y="0.766667" width="31.4667" height="31.4667" rx="7.2" stroke="#DACDFB" stroke-width="0.533333"/>
<defs>
<filter id="filter0_d_35368_44718" x="-6.04792" y="-3.94792" width="37.8615" height="37.8615" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1.6"/>
<feGaussianBlur stdDeviation="2.13333"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.258787 0 0 0 0 0.101222 0 0 0 0 0.515867 0 0 0 1 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_35368_44718"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_35368_44718" result="shape"/>
</filter>
<linearGradient id="paint0_linear_35368_44718" x1="16" y1="-1.78125" x2="15.5313" y2="32.5" gradientUnits="userSpaceOnUse">
<stop stop-color="#501EB6"/>
<stop offset="1" stop-color="#734BC5"/>
</linearGradient>
<clipPath id="clip0_35368_44718">
<rect y="0.5" width="32" height="32" rx="7.46667" fill="white"/>
</clipPath>
<clipPath id="clip1_35368_44718">
<rect width="7" height="7.75258" fill="white" transform="translate(5.1875 5.6875)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1,42 @@
<svg width="32" height="33" viewBox="0 0 32 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30567_77798)">
<path d="M32 0.5H0V32.5H32V0.5Z" fill="url(#paint0_linear_30567_77798)"/>
<g filter="url(#filter0_d_30567_77798)">
<path d="M-0.941934 -0.440878L27.5462 -1.28164L-1.78269 28.0473L-0.941934 -0.440878Z" fill="#F8F8F8"/>
</g>
<g clip-path="url(#clip1_30567_77798)">
<path d="M12.1729 6.25476C11.0581 5.84637 9.87613 5.65236 8.68929 5.68293C7.50026 5.65176 6.31606 5.84578 5.19914 6.25476C5.19914 6.25476 5.08412 8.78527 5.57708 10.2148C5.82821 10.9464 6.23676 11.6139 6.77393 12.1704C7.31109 12.7269 7.96379 13.1587 8.686 13.4355C9.40821 13.1587 10.0609 12.7269 10.5981 12.1704C11.1352 11.6139 11.5438 10.9464 11.7949 10.2148C12.2945 8.78527 12.1729 6.25476 12.1729 6.25476Z" fill="#FF0000"/>
<path d="M11.0063 8.44379V9.83721H9.37956V11.464H7.98614V9.83721H6.35938V8.44379H7.98614V6.82031H9.37956V8.44379H11.0063Z" fill="white"/>
</g>
<mask id="mask0_30567_77798" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="16" y="12" width="10" height="6">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.1016 12.5H25.714V17.9928L20.9401 17.4231L16.1016 17.9928V12.5Z" fill="white"/>
</mask>
<g mask="url(#mask0_30567_77798)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.0801 20.1778V17.2169C24.0801 15.5579 22.7352 14.213 21.0762 14.213C19.4172 14.213 18.0724 15.5579 18.0724 17.2169V20.1778C18.0724 21.8368 19.4172 23.1817 21.0762 23.1817C22.7352 23.1817 24.0801 21.8368 24.0801 20.1778ZM21.0762 12.7969C18.6351 12.7969 16.6562 14.7758 16.6562 17.2169V20.1778C16.6562 22.6189 18.6351 24.5978 21.0762 24.5978C23.5173 24.5978 25.4962 22.6189 25.4962 20.1778V17.2169C25.4962 14.7758 23.5173 12.7969 21.0762 12.7969Z" fill="white"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.875 19.9882C14.875 18.7348 15.892 17.7187 17.147 17.7188C18.0957 17.7188 19.2682 17.7188 20.5193 17.7188C22.002 17.7188 23.6005 17.7188 24.8537 17.7188C26.1087 17.7187 27.125 18.7348 27.125 19.9882V25.3079C27.125 26.5612 26.1084 27.5773 24.8534 27.5773C23.8341 27.5773 22.5655 27.5773 21.2485 27.5773C19.8117 27.5773 18.3238 27.5773 17.1473 27.5773C15.8923 27.5773 14.875 26.5612 14.875 25.3079V19.9882Z" fill="white"/>
<path d="M24.291 22.6514H23.2031V22.6494H22.3857V24.0107H19.6641V21.2881H22.3857V21.833H23.2031V20.4717H18.8477V24.8271H23.2031V23.4678H24.291V25.915H17.7578V19.3828H24.291V22.6514Z" fill="#501EB6"/>
</g>
<defs>
<filter id="filter0_d_30567_77798" x="-6.04792" y="-3.94792" width="37.8615" height="37.8615" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1.6"/>
<feGaussianBlur stdDeviation="2.13333"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.258787 0 0 0 0 0.101222 0 0 0 0 0.515867 0 0 0 1 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_30567_77798"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_30567_77798" result="shape"/>
</filter>
<linearGradient id="paint0_linear_30567_77798" x1="16" y1="-1.78125" x2="15.5313" y2="32.5" gradientUnits="userSpaceOnUse">
<stop stop-color="#501EB6"/>
<stop offset="1" stop-color="#734BC5"/>
</linearGradient>
<clipPath id="clip0_30567_77798">
<rect y="0.5" width="32" height="32" rx="7.46667" fill="white"/>
</clipPath>
<clipPath id="clip1_30567_77798">
<rect width="7" height="7.75258" fill="white" transform="translate(5.1875 5.6875)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1,50 +1,52 @@
<svg width="344" height="237" viewBox="0 0 344 237" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.6" d="M1.35591 89.8169C14.3295 38.6158 114.069 73.5098 174.196 38.7133C234.323 3.91682 355.867 38.7133 343.062 95.4651C330.258 152.217 272.701 120.734 233.47 190.742C194.238 260.75 44.988 244.594 59.0602 180.799C73.1323 117.005 -11.6176 141.018 1.35591 89.8169Z" fill="white"/>
<g clip-path="url(#clip0_1637_27478)">
<path d="M187.747 2.19531H83.262V223.235H187.747V2.19531Z" fill="#ECECEC"/>
<path d="M180.81 8.7998H90.3286V223.198H180.81V8.7998Z" fill="#C1C1C1"/>
<path d="M180.072 9.5376H91.0667V223.198H180.072V9.5376Z" fill="#ECECEC"/>
<path d="M179.057 126.702C179.057 129.063 177.157 130.963 174.795 130.963C172.433 130.963 170.533 129.063 170.533 126.702C170.533 124.341 172.433 122.44 174.795 122.44C177.157 122.44 179.057 124.341 179.057 126.702Z" fill="black"/>
<path d="M174.389 128.657C172.932 128.657 171.622 128.122 170.607 127.237C170.884 129.321 172.655 130.945 174.814 130.945C177.175 130.945 179.076 129.045 179.076 126.683C179.076 126.554 179.057 126.444 179.039 126.314C177.987 127.735 176.308 128.657 174.389 128.657Z" fill="#2B2931"/>
<path d="M179.02 126.333C177.71 129.377 172.526 129.561 168.633 126.923C163.835 123.676 161.677 127.421 161.677 126.148C161.677 124.875 163.835 122.994 170.773 125.263C174.352 126.425 179.002 126.333 179.002 126.333H179.02Z" fill="#453F4F"/>
<path d="M168.485 126.093C165.016 123.824 163.024 125.263 161.843 126.407C162.396 126.425 164.573 124.156 168.633 126.923C172.452 129.506 177.489 129.358 178.928 126.517C176.548 128.233 171.695 128.196 168.485 126.093Z" fill="black"/>
<svg width="320" height="469" viewBox="0 0 320 469" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.6" d="M199.665 2.0889C269.4 19.7585 221.875 155.602 269.267 237.493C316.659 319.383 269.267 484.924 191.973 467.484C114.678 450.044 157.557 371.654 62.2084 318.222C-33.1406 264.79 -11.1366 61.5147 75.7496 80.6806C162.636 99.8465 129.931 -15.5807 199.665 2.0889Z" fill="white"/>
<g clip-path="url(#clip0_30430_71008)">
<path d="M179.58 59.5938H37.2734V360.644H179.58V59.5938Z" fill="#EFE8FC"/>
<path d="M170.132 68.5938H46.8984V360.599H170.132V68.5938Z" fill="#9268E9"/>
<path d="M169.129 69.5938H47.9062V360.594H169.129V69.5938Z" fill="#EFE8FC"/>
<path d="M167.742 229.163C167.742 232.379 165.154 234.967 161.938 234.967C158.721 234.967 156.133 232.379 156.133 229.163C156.133 225.947 158.721 223.359 161.938 223.359C165.154 223.359 167.742 225.947 167.742 229.163Z" fill="black"/>
<path d="M161.386 231.824C159.401 231.824 157.616 231.095 156.234 229.889C156.611 232.728 159.024 234.939 161.964 234.939C165.18 234.939 167.769 232.351 167.769 229.135C167.769 228.959 167.744 228.809 167.718 228.633C166.286 230.567 163.999 231.824 161.386 231.824Z" fill="#2B2931"/>
<path d="M167.692 228.662C165.908 232.807 158.846 233.058 153.544 229.466C147.01 225.044 144.07 230.144 144.07 228.41C144.07 226.677 147.01 224.114 156.459 227.204C161.334 228.787 167.667 228.662 167.667 228.662H167.692Z" fill="#453F4F"/>
<path d="M153.343 228.33C148.619 225.24 145.905 227.2 144.297 228.757C145.051 228.782 148.016 225.692 153.544 229.461C158.746 232.978 165.606 232.777 167.566 228.908C164.325 231.245 157.716 231.194 153.343 228.33Z" fill="black"/>
<ellipse cx="49" cy="49" rx="49" ry="49" transform="matrix(1 4.47725e-10 2.52295e-06 1 59.3906 83.2031)" fill="#DACDFB"/>
<path d="M131.992 131.461L123.821 131.461L123.821 131.41L117.696 131.41L117.696 141.618L97.2794 141.618L97.2793 121.201L117.696 121.201L117.696 125.285L123.821 125.285L123.821 115.076L91.1543 115.076L91.1544 147.743L123.821 147.743L123.821 137.586L131.992 137.586L131.992 156.001L82.9923 156.001L82.9922 107L131.992 107L131.992 131.461Z" fill="#501EB6"/>
</g>
<path d="M235.685 215.358H231.608L229.667 197.306H235.685V215.358Z" fill="#EDC4A6"/>
<path d="M238.694 223.382H235.203L234.58 220.139L232.984 223.382H223.726C223.282 223.382 222.85 223.242 222.492 222.983C222.135 222.725 221.871 222.36 221.739 221.943C221.607 221.527 221.613 221.079 221.758 220.666C221.903 220.253 222.178 219.897 222.543 219.649L229.937 214.625V211.347L237.713 211.803L238.694 223.382Z" fill="#2F2E41"/>
<path d="M264.77 210.434L260.845 213.352L247.72 199.606L253.513 195.299L264.77 210.434Z" fill="#EDC4A6"/>
<path d="M270.787 214.629L268.039 216.58L265.619 214.451L266.292 217.821L259.004 222.996C258.654 223.244 258.231 223.379 257.796 223.381C257.36 223.383 256.936 223.252 256.584 223.008C256.232 222.763 255.971 222.417 255.839 222.021C255.707 221.625 255.712 221.199 255.852 220.805L258.683 212.834L256.733 210.33L263.126 206.332L270.787 214.629Z" fill="#2F2E41"/>
<path d="M241.275 122.087C241.275 122.087 250.365 129.748 246.171 151.588L241.05 172.988L257.749 200.013L252.425 206.332L230.716 177.081L222.849 159.079L220.642 127.041L241.275 122.087Z" fill="#2F2E41"/>
<path d="M227.205 164.209L226.659 172.597L228.329 208.338L236.189 206.98L237.691 181.532L227.205 164.209Z" fill="#2F2E41"/>
<path d="M220.016 119.278C219.926 119.721 219.932 120.184 220.033 120.624C220.135 121.064 220.33 121.468 220.6 121.8C220.739 121.969 220.494 122.195 220.356 122.027C220.059 121.659 219.845 121.213 219.731 120.727C219.617 120.241 219.609 119.73 219.705 119.239C219.711 119.192 219.732 119.149 219.764 119.119C219.796 119.089 219.836 119.075 219.878 119.078C219.919 119.084 219.956 119.108 219.982 119.145C220.008 119.182 220.021 119.23 220.016 119.278Z" fill="white"/>
<path d="M240.585 76.9776C239.931 72.3993 239.11 67.4838 235.727 64.1788C234.653 63.1301 233.368 62.2998 231.949 61.7379C230.53 61.176 229.006 60.8941 227.47 60.9093C225.933 60.9244 224.416 61.2363 223.01 61.8262C221.603 62.416 220.336 63.2715 219.286 64.3412C216.822 66.8488 215.735 70.3698 215.635 73.8056C215.536 77.2413 218.749 95.6889 219.639 99.0195C224.346 99.1092 226.607 83.1816 230.927 81.3961C232.008 80.9486 233.071 80.4427 234.212 80.1654C235.354 79.8882 236.128 91.5126 237.19 91.9991H240.7C241.177 92.8464 240.7 84.4772 240.7 82.4714C240.7 80.4655 240.721 77.9306 240.585 76.9776Z" fill="#AE5717"/>
<path d="M218.774 104.599L199.308 105.01C199.009 104.5 198.566 104.087 198.034 103.82C197.501 103.554 196.902 103.446 196.308 103.51C195.715 103.574 195.153 103.807 194.691 104.18C194.229 104.554 193.887 105.051 193.707 105.613C193.526 106.175 193.515 106.776 193.675 107.344C193.834 107.912 194.157 108.422 194.605 108.812C195.053 109.202 195.605 109.455 196.196 109.54C196.787 109.626 197.39 109.54 197.932 109.293C200.514 109.438 220.712 112.268 221.917 110.444C223.14 108.593 229.668 102.06 229.668 102.06L224.65 95.0078L218.774 104.599Z" fill="#EDC4A6"/>
<path d="M226.659 81.97C231.644 81.97 235.685 77.9288 235.685 72.9437C235.685 67.9587 231.644 63.9175 226.659 63.9175C221.674 63.9175 217.633 67.9587 217.633 72.9437C217.633 77.9288 221.674 81.97 226.659 81.97Z" fill="#EDC4A6"/>
<path d="M225.656 88.489C225.656 87.6867 224.987 82.9726 224.653 81.4682C226.325 80.6325 233.045 78.8282 233.679 79.4626C234.181 79.9643 234.682 85.9819 235.184 87.9876C233.011 88.3219 225.656 89.2914 225.656 88.489Z" fill="#EDC4A6"/>
<path d="M238.154 91.435C237.103 89.3616 236.592 86.8002 234.35 86.128C232.836 85.6741 226.712 86.3543 225.332 87.1206C223.037 88.3951 225.117 90.7834 223.763 93.0183C222.291 95.448 218.291 100.324 216.819 102.753C215.807 104.424 219.215 109.326 218.668 111.197C218.121 113.069 218.095 115.169 219.027 116.884C219.861 118.419 218.654 119.777 219.493 121.31C220.365 122.904 221.436 128.864 220.624 130.489L220.08 132.105C225.475 132.419 230.011 126.034 235.373 125.362C236.704 125.195 238.087 124.976 239.184 124.211C240.801 123.083 241.44 121.036 241.839 119.118C243.761 109.741 242.464 99.9974 238.154 91.435Z" fill="#3F3D56"/>
<g clip-path="url(#clip1_1637_27478)">
<path d="M210 117.53L206.959 120.933L171.158 88.4391C170.301 87.6616 170.228 86.3349 170.996 85.4763L171.257 85.1841C172.024 84.3255 173.341 84.2598 174.198 85.0374L209.999 117.531L210 117.53Z" fill="#734BC5"/>
<path d="M178.562 90.7666L171.509 98.6599C171.366 98.8197 171.119 98.8332 170.958 98.6874L168.947 96.8617C168.787 96.717 168.773 96.4683 168.917 96.3072L175.97 88.4139L178.562 90.7666Z" fill="#734BC5"/>
<path d="M177.799 101.808L182.94 96.0556C183.148 95.8232 183.128 95.4641 182.896 95.2536L181.144 93.6632C180.912 93.4527 180.555 93.4705 180.348 93.7029L175.207 99.4557C174.999 99.6881 175.019 100.047 175.251 100.258L177.003 101.848C177.235 102.059 177.591 102.041 177.799 101.808Z" fill="#734BC5"/>
<path d="M176.348 98.7764L179.531 95.2148L175.505 91.5612L172.322 95.1227L176.348 98.7764Z" fill="#734BC5"/>
<path d="M171.684 88.9172C171.702 88.8983 178.75 95.268 187.425 103.141C196.104 111.018 203.124 117.416 203.106 117.435C203.089 117.454 196.043 111.085 187.364 103.21C178.687 95.3359 171.667 88.9362 171.683 88.9178L171.684 88.9172Z" fill="#1E1656"/>
<path d="M204.025 111.966L200.882 115.483C200.464 115.951 199.747 115.987 199.28 115.563L199.122 115.42C198.656 114.996 198.616 114.274 199.034 113.806L202.177 110.289C202.595 109.821 203.312 109.785 203.779 110.209L203.937 110.352C204.404 110.776 204.443 111.498 204.025 111.966Z" fill="#734BC5"/>
<path d="M200.272 108.562L197.129 112.079C196.711 112.546 195.993 112.582 195.527 112.159L195.369 112.015C194.902 111.592 194.863 110.869 195.28 110.401L198.424 106.884C198.841 106.416 199.559 106.381 200.025 106.804L200.185 106.949C200.651 107.372 200.691 108.095 200.273 108.563L200.272 108.562Z" fill="#734BC5"/>
<path d="M198.982 113.878C198.963 113.86 199.673 113.052 200.566 112.069C201.459 111.087 202.198 110.306 202.217 110.323C202.236 110.341 201.526 111.149 200.633 112.132C199.74 113.112 199.001 113.895 198.984 113.877L198.982 113.878Z" fill="#1E1656"/>
<path d="M201.006 115.335C200.987 115.318 201.66 114.535 202.509 113.586C203.358 112.636 204.06 111.88 204.079 111.898C204.098 111.915 203.425 112.698 202.576 113.649C201.727 114.597 201.026 115.355 201.007 115.337L201.006 115.335Z" fill="#1E1656"/>
<path d="M195.253 110.436C195.234 110.418 195.937 109.603 196.822 108.612C197.706 107.622 198.44 106.833 198.458 106.849C198.477 106.867 197.775 107.682 196.889 108.673C196.004 109.663 195.271 110.452 195.253 110.436Z" fill="#1E1656"/>
<path d="M197.16 112.047C197.141 112.029 197.841 111.226 198.724 110.251C199.606 109.276 200.336 108.499 200.355 108.517C200.374 108.534 199.674 109.338 198.791 110.313C197.909 111.288 197.179 112.064 197.16 112.047Z" fill="#1E1656"/>
<path d="M244.868 349.899H239.314L236.672 325.312H244.868V349.899Z" fill="#EDC4A6"/>
<path d="M248.971 360.829H244.217L243.368 356.412L241.195 360.829H228.585C227.98 360.829 227.392 360.639 226.905 360.286C226.418 359.934 226.058 359.438 225.878 358.87C225.699 358.302 225.708 357.693 225.905 357.13C226.102 356.568 226.477 356.083 226.974 355.745L237.044 348.902V344.438L247.636 345.06L248.971 360.829Z" fill="#2F2E41"/>
<path d="M284.487 343.191L279.141 347.165L261.266 328.443L269.155 322.578L284.487 343.191Z" fill="#EDC4A6"/>
<path d="M292.684 348.903L288.942 351.56L285.646 348.661L286.563 353.25L276.636 360.298C276.16 360.636 275.583 360.82 274.99 360.823C274.397 360.825 273.819 360.647 273.34 360.314C272.86 359.981 272.505 359.51 272.326 358.97C272.146 358.431 272.152 357.85 272.343 357.314L276.199 346.458L273.542 343.047L282.251 337.602L292.684 348.903Z" fill="#2F2E41"/>
<path d="M252.484 222.867C252.484 222.867 264.865 233.302 259.153 263.047L252.179 292.193L274.923 329L267.671 337.606L238.104 297.767L227.389 273.25L224.383 229.615L252.484 222.867Z" fill="#2F2E41"/>
<path d="M233.322 280.234L232.578 291.658L234.853 340.336L245.558 338.486L247.604 303.828L233.322 280.234Z" fill="#2F2E41"/>
<path d="M223.53 219.038C223.406 219.642 223.414 220.272 223.553 220.872C223.692 221.471 223.957 222.022 224.325 222.473C224.515 222.704 224.181 223.012 223.993 222.783C223.588 222.282 223.296 221.674 223.141 221.012C222.987 220.35 222.975 219.654 223.106 218.985C223.114 218.921 223.142 218.863 223.186 218.822C223.23 218.781 223.285 218.761 223.341 218.766C223.397 218.774 223.448 218.806 223.484 218.857C223.519 218.908 223.536 218.973 223.53 219.038Z" fill="white"/>
<path d="M251.546 161.432C250.655 155.197 249.538 148.502 244.93 144.001C243.467 142.572 241.717 141.442 239.784 140.676C237.852 139.911 235.776 139.527 233.684 139.548C231.592 139.568 229.525 139.993 227.61 140.796C225.694 141.6 223.969 142.765 222.537 144.222C219.183 147.637 217.701 152.433 217.566 157.112C217.43 161.792 221.807 186.917 223.018 191.453C229.43 191.575 232.509 169.882 238.393 167.45C239.865 166.841 241.313 166.152 242.867 165.774C244.422 165.396 245.476 181.229 246.922 181.891H251.703C252.353 183.045 251.703 171.647 251.703 168.915C251.703 166.183 251.732 162.73 251.546 161.432Z" fill="#AE5717"/>
<path d="M221.837 199.047L195.325 199.607C194.918 198.912 194.315 198.349 193.59 197.987C192.864 197.624 192.048 197.477 191.239 197.564C190.431 197.651 189.666 197.968 189.037 198.477C188.408 198.985 187.942 199.663 187.696 200.429C187.45 201.194 187.435 202.013 187.652 202.786C187.87 203.56 188.31 204.254 188.919 204.785C189.529 205.316 190.282 205.661 191.086 205.777C191.891 205.893 192.712 205.776 193.451 205.44C196.967 205.638 224.476 209.492 226.117 207.008C227.783 204.487 236.674 195.589 236.674 195.589L229.84 185.984L221.837 199.047Z" fill="#EDC4A6"/>
<path d="M232.583 168.228C239.372 168.228 244.876 162.724 244.876 155.934C244.876 149.145 239.372 143.641 232.583 143.641C225.793 143.641 220.289 149.145 220.289 155.934C220.289 162.724 225.793 168.228 232.583 168.228Z" fill="#EDC4A6"/>
<path d="M231.21 177.107C231.21 176.014 230.299 169.594 229.844 167.545C232.12 166.407 241.274 163.949 242.137 164.813C242.82 165.497 243.503 173.692 244.186 176.424C241.227 176.879 231.21 178.2 231.21 177.107Z" fill="#EDC4A6"/>
<path d="M248.238 181.114C246.805 178.291 246.109 174.802 243.056 173.886C240.994 173.268 232.654 174.195 230.775 175.238C227.649 176.974 230.481 180.227 228.637 183.271C226.632 186.58 221.184 193.221 219.179 196.53C217.801 198.805 222.443 205.482 221.698 208.03C220.953 210.579 220.917 213.439 222.187 215.775C223.323 217.866 221.679 219.716 222.822 221.803C224.01 223.974 225.468 232.092 224.362 234.305L223.622 236.506C230.969 236.933 237.148 228.238 244.45 227.322C246.263 227.094 248.146 226.797 249.641 225.754C251.842 224.218 252.713 221.43 253.257 218.818C255.874 206.047 254.108 192.776 248.238 181.114Z" fill="#3F3D56"/>
<g clip-path="url(#clip1_30430_71008)">
<path d="M209.891 216.664L205.749 221.299L156.988 177.043C155.822 175.984 155.723 174.177 156.768 173.008L157.123 172.61C158.168 171.441 159.962 171.351 161.129 172.41L209.889 216.666L209.891 216.664Z" fill="#734BC5"/>
<path d="M167.078 180.211L157.471 190.961C157.277 191.179 156.941 191.197 156.722 190.999L153.982 188.512C153.765 188.315 153.745 187.977 153.941 187.757L163.548 177.007L167.078 180.211Z" fill="#734BC5"/>
<path d="M166.033 195.244L173.035 187.409C173.318 187.093 173.291 186.604 172.975 186.317L170.588 184.151C170.273 183.864 169.787 183.888 169.504 184.205L162.503 192.04C162.22 192.356 162.247 192.846 162.562 193.132L164.949 195.298C165.265 195.585 165.75 195.561 166.033 195.244Z" fill="#734BC5"/>
<path d="M164.056 191.116L168.391 186.266L162.908 181.289L158.573 186.14L164.056 191.116Z" fill="#734BC5"/>
<path d="M157.702 177.683C157.725 177.657 167.325 186.333 179.139 197.055C190.961 207.783 200.521 216.497 200.497 216.523C200.474 216.549 190.877 207.875 179.057 197.149C167.239 186.425 157.678 177.709 157.699 177.684L157.702 177.683Z" fill="#1E1656"/>
<path d="M201.751 209.075L197.47 213.866C196.901 214.503 195.924 214.551 195.288 213.975L195.073 213.779C194.437 213.202 194.383 212.218 194.952 211.581L199.233 206.791C199.802 206.154 200.78 206.105 201.415 206.682L201.63 206.877C202.266 207.454 202.32 208.438 201.751 209.075Z" fill="#734BC5"/>
<path d="M196.639 204.441L192.359 209.231C191.789 209.868 190.812 209.917 190.177 209.34L189.962 209.145C189.326 208.568 189.272 207.584 189.841 206.947L194.122 202.156C194.691 201.519 195.668 201.471 196.304 202.047L196.521 202.244C197.156 202.821 197.21 203.806 196.641 204.442L196.639 204.441Z" fill="#734BC5"/>
<path d="M194.883 211.679C194.857 211.655 195.824 210.554 197.04 209.216C198.256 207.878 199.263 206.814 199.288 206.838C199.314 206.862 198.347 207.963 197.131 209.301C195.915 210.636 194.908 211.703 194.885 211.678L194.883 211.679Z" fill="#1E1656"/>
<path d="M197.64 213.669C197.614 213.645 198.53 212.579 199.687 211.286C200.843 209.992 201.799 208.963 201.825 208.987C201.85 209.011 200.934 210.077 199.778 211.371C198.622 212.663 197.666 213.695 197.64 213.671L197.64 213.669Z" fill="#1E1656"/>
<path d="M189.805 206.999C189.779 206.975 190.737 205.864 191.942 204.515C193.147 203.166 194.145 202.092 194.17 202.114C194.196 202.138 193.24 203.248 192.033 204.598C190.828 205.947 189.83 207.021 189.805 206.999Z" fill="#1E1656"/>
<path d="M192.406 209.186C192.38 209.162 193.334 208.068 194.536 206.74C195.738 205.412 196.733 204.355 196.758 204.379C196.784 204.403 195.83 205.497 194.628 206.825C193.426 208.153 192.432 209.21 192.406 209.186Z" fill="#1E1656"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M213.987 114.691L205.009 125.104L215.422 134.082L224.401 123.669L213.987 114.691ZM199.036 125.546L215.865 140.055L230.373 123.227L213.545 108.718L199.036 125.546Z" fill="#734BC5"/>
<path d="M245.336 112.405C244.843 110.214 244.665 100.902 244.665 100.902L235.945 99.4768L238.827 110.497L224.984 125.117C224.984 125.117 225.001 125.155 225.032 125.224C224.431 125.044 223.79 125.048 223.192 125.235C222.595 125.423 222.068 125.784 221.683 126.273C221.297 126.761 221.069 127.354 221.03 127.974C220.99 128.594 221.141 129.212 221.461 129.746C221.782 130.281 222.258 130.708 222.827 130.971C223.396 131.234 224.031 131.321 224.65 131.221C225.269 131.121 225.842 130.838 226.295 130.409C226.748 129.981 227.059 129.427 227.188 128.819C227.228 128.849 227.277 128.865 227.327 128.863C227.377 128.861 227.424 128.842 227.462 128.809C228.977 127.369 245.829 114.595 245.336 112.405Z" fill="#EDC4A6"/>
<path d="M247.649 107.824C246.789 104.464 245.922 101.086 244.472 97.9046C243.021 94.7233 240.944 91.7185 238.024 89.5693C237.09 88.8822 236.046 88.2757 234.875 88.062C233.705 87.8484 232.386 88.0875 231.564 88.8875C230.248 90.1676 230.644 92.2224 231.126 93.9315C232.549 98.9707 233.972 104.01 235.395 109.049C239.503 108.646 243.612 108.243 247.72 107.84L247.649 107.824Z" fill="#3F3D56"/>
<path d="M236.005 67.3424C236.78 69.3934 237.125 71.5897 237.455 73.7678C237.729 75.5754 236.987 90.4844 236.005 91.9991C235.157 93.3055 233.103 94.4985 231.674 95.0078C229.358 95.833 225.465 97.1914 223.149 98.0166C223.952 97.0422 227.601 81.86 227.911 80.634C228.221 79.408 228.256 78.1281 228.013 76.8869C227.777 75.7211 227.219 75.0209 226.734 74.5238C226.734 74.5238 225.155 72.9437 224.653 72.4422C224.152 71.9408 222.647 70.9378 221.143 70.4364C219.639 69.9349 214.151 67.8432 215.887 65.8437C217.623 63.8442 220.026 62.6004 222.487 61.7821C225.671 60.7241 229.347 60.3693 232.186 62.2087C233.979 63.3706 235.229 65.2915 236.005 67.3424Z" fill="#AE5717"/>
<rect x="62" y="223" width="229" height="1" rx="0.5" fill="#757575"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M215.316 212.785L203.088 226.968L217.271 239.196L229.499 225.013L215.316 212.785ZM194.953 227.57L217.873 247.331L237.633 224.411L214.714 204.65L194.953 227.57Z" fill="#734BC5"/>
<path d="M258.016 209.682C257.344 206.699 257.102 194.016 257.102 194.016L245.226 192.075L249.151 207.084L230.297 226.996C230.297 226.996 230.32 227.048 230.362 227.141C229.544 226.897 228.671 226.902 227.857 227.157C227.043 227.412 226.326 227.904 225.8 228.57C225.275 229.236 224.965 230.043 224.911 230.887C224.857 231.732 225.062 232.573 225.499 233.301C225.936 234.029 226.584 234.611 227.359 234.969C228.134 235.327 228.999 235.446 229.842 235.31C230.685 235.173 231.465 234.788 232.082 234.204C232.699 233.62 233.123 232.865 233.299 232.038C233.353 232.079 233.42 232.1 233.488 232.098C233.556 232.095 233.621 232.07 233.671 232.025C235.735 230.063 258.688 212.666 258.016 209.682Z" fill="#EDC4A6"/>
<path d="M261.164 203.446C259.992 198.87 258.811 194.269 256.836 189.936C254.86 185.603 252.032 181.511 248.054 178.584C246.782 177.648 245.36 176.822 243.766 176.531C242.172 176.24 240.375 176.565 239.255 177.655C237.464 179.399 238.003 182.197 238.66 184.525C240.598 191.388 242.535 198.251 244.473 205.115C250.069 204.566 255.664 204.017 261.26 203.468L261.164 203.446Z" fill="#3F3D56"/>
<path d="M245.302 148.309C246.359 151.103 246.828 154.094 247.278 157.061C247.651 159.523 246.641 179.828 245.302 181.891C244.148 183.67 241.351 185.295 239.404 185.989C236.25 187.113 230.947 188.963 227.793 190.087C228.887 188.76 233.857 168.082 234.279 166.412C234.702 164.742 234.749 162.999 234.418 161.309C234.097 159.721 233.337 158.767 232.676 158.09C232.676 158.09 230.525 155.938 229.842 155.255C229.159 154.572 227.11 153.206 225.061 152.523C223.012 151.84 215.538 148.991 217.903 146.268C220.267 143.545 223.54 141.851 226.893 140.736C231.228 139.295 236.235 138.812 240.101 141.317C242.544 142.9 244.246 145.516 245.302 148.309Z" fill="#AE5717"/>
<ellipse cx="162.912" cy="361.503" rx="157.084" ry="0.682972" fill="#8F8F8F"/>
<defs>
<clipPath id="clip0_1637_27478">
<rect width="108.895" height="223.235" fill="white" transform="translate(81.0664)"/>
<clipPath id="clip0_30430_71008">
<rect width="148.312" height="304.04" fill="white" transform="translate(34.2812 56.5938)"/>
</clipPath>
<clipPath id="clip1_1637_27478">
<rect width="62.1808" height="46.1341" fill="white" transform="translate(185.616 145.71) rotate(-108.894)"/>
<clipPath id="clip1_30430_71008">
<rect width="84.6885" height="62.8334" fill="white" transform="translate(176.68 255.039) rotate(-108.894)"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,52 @@
<svg width="320" height="469" viewBox="0 0 320 469" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.6" d="M199.665 2.0889C269.4 19.7585 221.875 155.602 269.267 237.493C316.659 319.383 269.267 484.924 191.973 467.484C114.678 450.044 157.557 371.654 62.2084 318.222C-33.1406 264.79 -11.1366 61.5147 75.7496 80.6806C162.636 99.8465 129.931 -15.5807 199.665 2.0889Z" fill="#453F4F"/>
<g clip-path="url(#clip0_30567_76873)">
<path d="M179.58 59.5938H37.2734V360.644H179.58V59.5938Z" fill="black"/>
<path d="M170.132 68.5938H46.8984V360.599H170.132V68.5938Z" fill="#453F4F"/>
<path d="M169.129 69.5938H47.9062V360.594H169.129V69.5938Z" fill="black"/>
<path d="M167.742 229.163C167.742 232.379 165.154 234.967 161.938 234.967C158.721 234.967 156.133 232.379 156.133 229.163C156.133 225.947 158.721 223.359 161.938 223.359C165.154 223.359 167.742 225.947 167.742 229.163Z" fill="black"/>
<path d="M161.386 231.824C159.401 231.824 157.616 231.095 156.234 229.889C156.611 232.728 159.024 234.939 161.964 234.939C165.18 234.939 167.769 232.351 167.769 229.135C167.769 228.959 167.744 228.809 167.718 228.633C166.286 230.567 163.999 231.824 161.386 231.824Z" fill="#2B2931"/>
<path d="M167.692 228.662C165.908 232.807 158.846 233.058 153.544 229.466C147.01 225.044 144.07 230.144 144.07 228.41C144.07 226.677 147.01 224.114 156.459 227.204C161.334 228.787 167.667 228.662 167.667 228.662H167.692Z" fill="#453F4F"/>
<path d="M153.343 228.33C148.619 225.24 145.905 227.2 144.297 228.757C145.051 228.782 148.016 225.692 153.544 229.461C158.746 232.978 165.606 232.777 167.566 228.908C164.325 231.245 157.716 231.194 153.343 228.33Z" fill="black"/>
<path d="M108.5 83.502C135.397 83.502 157.201 105.306 157.201 132.203C157.201 159.1 135.397 180.904 108.5 180.904C81.6033 180.904 59.799 159.1 59.799 132.203C59.7989 105.306 81.6031 83.502 108.5 83.502Z" fill="#2B2931" stroke="black" stroke-width="0.597561"/>
<path d="M133 132.169H124.827L124.827 132.117H118.702L118.702 142.326H98.2852L98.2852 121.908H118.702L118.702 125.992H124.827L124.827 115.783H92.1602L92.1603 148.451H124.827L124.827 138.294H133L133 156.704H84.0001L84 107.703H133L133 132.169Z" fill="#9268E9"/>
</g>
<path d="M244.868 349.899H239.314L236.672 325.312H244.868V349.899Z" fill="#EDC4A6"/>
<path d="M248.971 360.829H244.217L243.368 356.412L241.195 360.829H228.585C227.98 360.829 227.392 360.639 226.905 360.286C226.418 359.934 226.058 359.438 225.878 358.87C225.699 358.302 225.708 357.693 225.905 357.13C226.102 356.568 226.477 356.083 226.974 355.745L237.044 348.902V344.438L247.636 345.06L248.971 360.829Z" fill="black"/>
<path d="M284.487 343.191L279.141 347.165L261.266 328.443L269.155 322.578L284.487 343.191Z" fill="#EDC4A6"/>
<path d="M292.684 348.903L288.942 351.56L285.646 348.661L286.563 353.25L276.636 360.298C276.16 360.636 275.583 360.82 274.99 360.823C274.397 360.825 273.819 360.647 273.34 360.314C272.86 359.981 272.505 359.51 272.326 358.97C272.146 358.431 272.152 357.85 272.343 357.314L276.199 346.458L273.542 343.047L282.251 337.602L292.684 348.903Z" fill="black"/>
<path d="M252.484 222.867C252.484 222.867 264.865 233.302 259.153 263.047L252.179 292.193L274.923 329L267.671 337.606L238.104 297.767L227.389 273.25L224.383 229.615L252.484 222.867Z" fill="#3B3F4C"/>
<path d="M233.322 280.234L232.578 291.658L234.853 340.336L245.558 338.486L247.604 303.828L233.322 280.234Z" fill="#3B3F4C"/>
<path d="M223.53 219.038C223.406 219.642 223.414 220.272 223.553 220.872C223.692 221.471 223.957 222.022 224.325 222.473C224.515 222.704 224.181 223.012 223.993 222.783C223.588 222.282 223.296 221.674 223.141 221.012C222.987 220.35 222.975 219.654 223.106 218.985C223.114 218.921 223.142 218.863 223.186 218.822C223.23 218.781 223.285 218.761 223.341 218.766C223.397 218.774 223.448 218.806 223.484 218.857C223.519 218.908 223.536 218.973 223.53 219.038Z" fill="white"/>
<path d="M251.546 161.432C250.655 155.197 249.538 148.502 244.93 144.001C243.467 142.572 241.717 141.442 239.784 140.676C237.852 139.911 235.776 139.527 233.684 139.548C231.592 139.568 229.525 139.993 227.61 140.796C225.694 141.6 223.969 142.765 222.537 144.222C219.183 147.637 217.701 152.433 217.566 157.112C217.43 161.792 221.807 186.917 223.018 191.453C229.43 191.575 232.509 169.882 238.393 167.45C239.865 166.841 241.313 166.152 242.867 165.774C244.422 165.396 245.476 181.229 246.922 181.891H251.703C252.353 183.045 251.703 171.647 251.703 168.915C251.703 166.183 251.732 162.73 251.546 161.432Z" fill="#AE5717"/>
<path d="M221.837 199.047L195.325 199.607C194.918 198.912 194.315 198.349 193.59 197.987C192.864 197.624 192.048 197.477 191.239 197.564C190.431 197.651 189.666 197.968 189.037 198.477C188.408 198.985 187.942 199.663 187.696 200.429C187.45 201.194 187.435 202.013 187.652 202.786C187.87 203.56 188.31 204.254 188.919 204.785C189.529 205.316 190.282 205.661 191.086 205.777C191.891 205.893 192.712 205.776 193.451 205.44C196.967 205.638 224.476 209.492 226.117 207.008C227.783 204.487 236.674 195.589 236.674 195.589L229.84 185.984L221.837 199.047Z" fill="#EDC4A6"/>
<path d="M232.583 168.228C239.372 168.228 244.876 162.724 244.876 155.934C244.876 149.145 239.372 143.641 232.583 143.641C225.793 143.641 220.289 149.145 220.289 155.934C220.289 162.724 225.793 168.228 232.583 168.228Z" fill="#EDC4A6"/>
<path d="M231.21 177.107C231.21 176.014 230.299 169.594 229.844 167.545C232.12 166.407 241.274 163.949 242.137 164.813C242.82 165.497 243.503 173.692 244.186 176.424C241.227 176.879 231.21 178.2 231.21 177.107Z" fill="#EDC4A6"/>
<path d="M248.238 181.114C246.805 178.291 246.109 174.802 243.056 173.886C240.994 173.268 232.654 174.195 230.775 175.238C227.649 176.974 230.481 180.227 228.637 183.271C226.632 186.58 221.184 193.221 219.179 196.53C217.801 198.805 222.443 205.482 221.698 208.03C220.953 210.579 220.917 213.439 222.187 215.775C223.323 217.866 221.679 219.716 222.822 221.803C224.01 223.974 225.468 232.092 224.362 234.305L223.622 236.506C230.969 236.933 237.148 228.238 244.45 227.322C246.263 227.094 248.146 226.797 249.641 225.754C251.842 224.218 252.713 221.43 253.257 218.818C255.874 206.047 254.108 192.776 248.238 181.114Z" fill="#DACDFB"/>
<g clip-path="url(#clip1_30567_76873)">
<path d="M209.891 216.664L205.749 221.299L156.988 177.043C155.822 175.984 155.723 174.177 156.768 173.008L157.123 172.61C158.168 171.441 159.962 171.351 161.129 172.41L209.889 216.666L209.891 216.664Z" fill="#9268E9"/>
<path d="M167.078 180.211L157.471 190.961C157.277 191.179 156.941 191.197 156.722 190.999L153.982 188.512C153.765 188.315 153.745 187.977 153.941 187.757L163.548 177.007L167.078 180.211Z" fill="#9268E9"/>
<path d="M166.033 195.244L173.035 187.409C173.318 187.093 173.291 186.604 172.975 186.317L170.588 184.151C170.273 183.864 169.787 183.888 169.504 184.205L162.503 192.04C162.22 192.356 162.247 192.846 162.562 193.132L164.949 195.298C165.265 195.585 165.75 195.561 166.033 195.244Z" fill="#9268E9"/>
<path d="M164.056 191.116L168.391 186.266L162.908 181.289L158.573 186.14L164.056 191.116Z" fill="#9268E9"/>
<path d="M157.702 177.683C157.725 177.657 167.325 186.333 179.139 197.055C190.961 207.783 200.521 216.497 200.497 216.523C200.474 216.549 190.877 207.875 179.057 197.149C167.239 186.425 157.678 177.709 157.699 177.684L157.702 177.683Z" fill="#1E1656"/>
<path d="M201.751 209.075L197.47 213.866C196.901 214.503 195.924 214.551 195.288 213.975L195.073 213.779C194.437 213.202 194.383 212.218 194.952 211.581L199.233 206.791C199.802 206.154 200.78 206.105 201.415 206.682L201.63 206.877C202.266 207.454 202.32 208.438 201.751 209.075Z" fill="#9268E9"/>
<path d="M196.639 204.441L192.359 209.231C191.789 209.868 190.812 209.917 190.177 209.34L189.962 209.145C189.326 208.568 189.272 207.584 189.841 206.947L194.122 202.156C194.691 201.519 195.668 201.471 196.304 202.047L196.521 202.244C197.156 202.821 197.21 203.806 196.641 204.442L196.639 204.441Z" fill="#9268E9"/>
<path d="M194.883 211.679C194.857 211.655 195.824 210.554 197.04 209.216C198.256 207.878 199.263 206.814 199.288 206.838C199.314 206.862 198.347 207.963 197.131 209.301C195.915 210.636 194.908 211.703 194.885 211.678L194.883 211.679Z" fill="#1E1656"/>
<path d="M197.64 213.669C197.614 213.645 198.53 212.579 199.687 211.286C200.843 209.992 201.799 208.963 201.825 208.987C201.85 209.011 200.934 210.077 199.778 211.371C198.622 212.663 197.666 213.695 197.64 213.671L197.64 213.669Z" fill="#1E1656"/>
<path d="M189.805 206.999C189.779 206.975 190.737 205.864 191.942 204.515C193.147 203.166 194.145 202.092 194.17 202.114C194.196 202.138 193.24 203.248 192.033 204.598C190.828 205.947 189.83 207.021 189.805 206.999Z" fill="#1E1656"/>
<path d="M192.406 209.186C192.38 209.162 193.334 208.068 194.536 206.74C195.738 205.412 196.733 204.355 196.758 204.379C196.784 204.403 195.83 205.497 194.628 206.825C193.426 208.153 192.432 209.21 192.406 209.186Z" fill="#1E1656"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M215.316 212.785L203.088 226.968L217.271 239.196L229.499 225.013L215.316 212.785ZM194.953 227.57L217.873 247.331L237.633 224.411L214.714 204.65L194.953 227.57Z" fill="#9268E9"/>
<path d="M258.016 209.682C257.344 206.699 257.102 194.016 257.102 194.016L245.226 192.075L249.151 207.084L230.297 226.996C230.297 226.996 230.32 227.048 230.362 227.141C229.544 226.897 228.671 226.902 227.857 227.157C227.043 227.412 226.326 227.904 225.8 228.57C225.275 229.236 224.965 230.043 224.911 230.887C224.857 231.732 225.062 232.573 225.499 233.301C225.936 234.029 226.584 234.611 227.359 234.969C228.134 235.327 228.999 235.446 229.842 235.31C230.685 235.173 231.465 234.788 232.082 234.204C232.699 233.62 233.123 232.865 233.299 232.038C233.353 232.079 233.42 232.1 233.488 232.098C233.556 232.095 233.621 232.07 233.671 232.025C235.735 230.063 258.688 212.666 258.016 209.682Z" fill="#EDC4A6"/>
<path d="M261.164 203.446C259.992 198.87 258.811 194.269 256.836 189.936C254.86 185.603 252.032 181.511 248.054 178.584C246.782 177.648 245.36 176.822 243.766 176.531C242.172 176.24 240.375 176.565 239.255 177.655C237.464 179.399 238.003 182.197 238.66 184.525C240.598 191.388 242.535 198.251 244.473 205.115C250.069 204.566 255.664 204.017 261.26 203.468L261.164 203.446Z" fill="#DACDFB"/>
<path d="M245.302 148.309C246.359 151.103 246.828 154.094 247.278 157.061C247.651 159.523 246.641 179.828 245.302 181.891C244.148 183.67 241.351 185.295 239.404 185.989C236.25 187.113 230.947 188.963 227.793 190.087C228.887 188.76 233.857 168.082 234.279 166.412C234.702 164.742 234.749 162.999 234.418 161.309C234.097 159.721 233.337 158.767 232.676 158.09C232.676 158.09 230.525 155.938 229.842 155.255C229.159 154.572 227.11 153.206 225.061 152.523C223.012 151.84 215.538 148.991 217.903 146.268C220.267 143.545 223.54 141.851 226.893 140.736C231.228 139.295 236.235 138.812 240.101 141.317C242.544 142.9 244.246 145.516 245.302 148.309Z" fill="#AE5717"/>
<ellipse cx="162.912" cy="361.503" rx="157.084" ry="0.682972" fill="#8F8F8F"/>
<defs>
<clipPath id="clip0_30567_76873">
<rect width="148.312" height="304.04" fill="white" transform="translate(34.2812 56.5938)"/>
</clipPath>
<clipPath id="clip1_30567_76873">
<rect width="84.6885" height="62.8334" fill="white" transform="translate(176.68 255.039) rotate(-108.894)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,18 @@
<svg width="32" height="33" viewBox="0 0 32 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30430_70226)">
<path d="M2.65952 11.9762C2.29528 11.7262 2.20273 11.2282 2.4528 10.8639L5.4511 6.49681C5.70117 6.13257 6.19918 6.04001 6.56342 6.29009L11.5098 9.68612C11.8741 9.93619 11.9666 10.4342 11.7166 10.7984L8.71826 15.1655C8.46819 15.5298 7.97018 15.6223 7.60594 15.3723L2.65952 11.9762Z" fill="#D5D5D5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.65952 11.9762C2.4774 11.8512 2.53249 11.4546 2.78256 11.0903L5.78086 6.72321C6.03094 6.35897 6.3813 6.16505 6.56342 6.29009C6.19918 6.04001 5.70117 6.13257 5.4511 6.49681L2.4528 10.8639C2.20273 11.2282 2.29528 11.7262 2.65952 11.9762Z" fill="black"/>
<path d="M10.1165 7.88556C10.6075 7.15096 11.6032 6.9509 12.3402 7.43829L27.1771 17.2508C27.2031 17.268 27.2276 17.287 27.2523 17.3055C28.1259 17.8945 28.8408 18.7331 29.2718 19.7742C30.4548 22.6318 29.0597 25.923 26.1566 27.1248C24.2488 27.9145 22.1642 27.6058 20.6234 26.49L6.05111 16.8524C5.31406 16.3649 5.11395 15.3742 5.60483 14.6395L10.1165 7.88556ZM27.8031 19.0955C27.7593 19.2223 27.7015 19.3468 27.6234 19.4637L23.1107 26.2166C23.0375 26.3261 22.9518 26.4223 22.8587 26.5076C23.816 26.7492 24.8608 26.6949 25.849 26.2859C28.2613 25.2873 29.4208 22.553 28.4378 20.1785C28.2731 19.7805 28.0573 19.4187 27.8031 19.0955Z" fill="url(#paint0_linear_30430_70226)"/>
<path d="M16.8044 21.2649C16.5888 21.1229 16.5292 20.833 16.6711 20.6174L19.8237 15.8305C19.9657 15.6149 20.2556 15.5552 20.4712 15.6972C20.6867 15.8392 20.7464 16.129 20.6044 16.3446L17.4519 21.1316C17.3099 21.3472 17.02 21.4069 16.8044 21.2649Z" fill="#DACDFB"/>
<path d="M19.1635 21.6321C18.961 21.4987 18.905 21.2265 19.0383 21.024L20.8988 18.199C21.0321 17.9965 21.3044 17.9405 21.5069 18.0738C21.7094 18.2072 21.7654 18.4794 21.632 18.6819L19.7716 21.5069C19.6383 21.7094 19.366 21.7654 19.1635 21.6321Z" fill="#DACDFB"/>
</g>
<defs>
<linearGradient id="paint0_linear_30430_70226" x1="14.9887" y1="14.8016" x2="23.6547" y2="28.8011" gradientUnits="userSpaceOnUse">
<stop stop-color="#6939CB"/>
<stop offset="1" stop-color="#9170D3"/>
</linearGradient>
<clipPath id="clip0_30430_70226">
<rect width="32" height="32" fill="white" transform="translate(0 0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,18 @@
<svg width="32" height="33" viewBox="0 0 32 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30567_75892)">
<path d="M2.65952 11.9762C2.29528 11.7262 2.20273 11.2282 2.4528 10.8639L5.4511 6.49681C5.70117 6.13257 6.19918 6.04001 6.56342 6.29009L11.5098 9.68612C11.8741 9.93619 11.9666 10.4342 11.7166 10.7984L8.71826 15.1655C8.46819 15.5298 7.97018 15.6223 7.60594 15.3723L2.65952 11.9762Z" fill="#D5D5D5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.65952 11.9762C2.4774 11.8512 2.53249 11.4546 2.78256 11.0903L5.78086 6.72321C6.03094 6.35897 6.3813 6.16505 6.56342 6.29009C6.19918 6.04001 5.70117 6.13257 5.4511 6.49681L2.4528 10.8639C2.20273 11.2282 2.29528 11.7262 2.65952 11.9762Z" fill="black"/>
<path d="M10.1165 7.88556C10.6075 7.15096 11.6032 6.9509 12.3402 7.43829L27.1771 17.2508C27.2031 17.268 27.2276 17.287 27.2523 17.3055C28.1259 17.8945 28.8408 18.7331 29.2718 19.7742C30.4548 22.6318 29.0597 25.923 26.1566 27.1248C24.2488 27.9145 22.1642 27.6058 20.6234 26.49L6.05111 16.8524C5.31406 16.3649 5.11395 15.3742 5.60483 14.6395L10.1165 7.88556ZM27.8031 19.0955C27.7593 19.2223 27.7015 19.3468 27.6234 19.4637L23.1107 26.2166C23.0375 26.3261 22.9518 26.4223 22.8587 26.5076C23.816 26.7492 24.8608 26.6949 25.849 26.2859C28.2613 25.2873 29.4208 22.553 28.4378 20.1785C28.2731 19.7805 28.0573 19.4187 27.8031 19.0955Z" fill="url(#paint0_linear_30567_75892)"/>
<path d="M16.8044 21.2649C16.5888 21.1229 16.5292 20.833 16.6711 20.6174L19.8237 15.8305C19.9657 15.6149 20.2556 15.5552 20.4712 15.6972C20.6867 15.8392 20.7464 16.129 20.6044 16.3446L17.4519 21.1316C17.3099 21.3472 17.02 21.4069 16.8044 21.2649Z" fill="#DACDFB"/>
<path d="M19.1635 21.6321C18.961 21.4987 18.905 21.2265 19.0383 21.024L20.8988 18.199C21.0321 17.9965 21.3044 17.9405 21.5069 18.0738C21.7094 18.2072 21.7654 18.4794 21.632 18.6819L19.7716 21.5069C19.6383 21.7094 19.366 21.7654 19.1635 21.6321Z" fill="#DACDFB"/>
</g>
<defs>
<linearGradient id="paint0_linear_30567_75892" x1="14.9887" y1="14.8016" x2="23.6547" y2="28.8011" gradientUnits="userSpaceOnUse">
<stop stop-color="#6939CB"/>
<stop offset="1" stop-color="#9170D3"/>
</linearGradient>
<clipPath id="clip0_30567_75892">
<rect width="32" height="32" fill="white" transform="translate(0 0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,91 @@
function setValueToSecurityKeyOrAccessAppLabel(element, selectedMethod) {
element.textContent = (selectedMethod === 'securityKey'
? element.dataset.securitykeylabel
: element.dataset.accessapplabel);
}
function changeDisplay(element, displayToAdd, displayToRemove) {
if (element) {
element.classList.remove(displayToRemove);
element.classList.add(displayToAdd);
}
}
function showSecurityKeyModal() {
changeDisplay(securityKeyModal, 'flex', 'hidden');
changeDisplay(accessAppModal, 'hidden', 'block');
changeDisplay(mobileSecurityKeyModal, 'flex', 'hidden');
changeDisplay(mobileAccessAppModal, 'hidden', 'block');
}
function showAccessAppModal() {
changeDisplay(accessAppModal, 'block', 'hidden');
changeDisplay(securityKeyModal, 'hidden', 'flex');
changeDisplay(mobileAccessAppModal, 'block', 'hidden');
changeDisplay(mobileSecurityKeyModal, 'hidden', 'flex');
}
function changeLabelsBasedOnSelectedMethod(selectedMethod) {
labelsToChangeBasedOnSelectedMethod.forEach(label => {
if (label) {
setValueToSecurityKeyOrAccessAppLabel(label, selectedMethod);
}
});
}
const mainContent = document.querySelector('#mainContent');
const mobileLoginContainer = document.querySelector('#mobileLoginContainer');
const mobileSecurityKeyModal = mobileLoginContainer.querySelector('#securityKeyModal');
const mobileAccessAppModal = mobileLoginContainer.querySelector('#accessAppModal');
const desktopTitle = document.querySelector('#desktopTitle');
const mobileSubtitle = document.querySelector('#mobileSubtitle');
const cannotLoginSubtitle = document.querySelector('#cannotLoginSubtitle');
const cannotLoginSubtitleDrawer = document.querySelector('#cannotLoginSubtitleDrawer');
const accessAppModal = document.querySelector('#accessAppModal');
const securityKeyModal = document.querySelector('#securityKeyModal');
const accessAppBtn = document.querySelector('#accessAppLoginBtn');
const securityKeyBtn = document.querySelector('#securityKeyLoginBtn');
const labelsToChangeBasedOnSelectedMethod = [
desktopTitle,
mobileSubtitle,
cannotLoginSubtitle,
cannotLoginSubtitleDrawer
];
document.addEventListener('showAccessAppLogin', () => {
showAccessAppModal();
changeLabelsBasedOnSelectedMethod('accessApp');
});
document.addEventListener('showSecurityKeyLogin', () => {
showSecurityKeyModal();
changeLabelsBasedOnSelectedMethod('securityKey');
});
changeLabelsBasedOnSelectedMethod(mainContent.dataset.lastloginmethod);
if (mainContent.dataset.lastloginmethod === 'securityKey') {
showSecurityKeyModal();
changeDisplay(accessAppBtn, 'block', 'hidden');
changeDisplay(securityKeyBtn, 'hidden', 'block');
}
else {
showAccessAppModal();
changeDisplay(securityKeyBtn, 'block', 'hidden');
changeDisplay(accessAppBtn, 'hidden', 'block');
}
securityKeyBtn.addEventListener('click', () => {
showSecurityKeyModal();
changeDisplay(accessAppBtn, 'block', 'hidden');
changeDisplay(securityKeyBtn, 'hidden', 'block');
changeLabelsBasedOnSelectedMethod('securityKey');
});
accessAppBtn.addEventListener('click', () => {
showAccessAppModal();
changeDisplay(securityKeyBtn, 'block', 'hidden');
changeDisplay(accessAppBtn, 'hidden', 'block');
changeLabelsBasedOnSelectedMethod('accessApp');
});

View File

@ -2,4 +2,13 @@ document.addEventListener('DOMContentLoaded', function() {
document.dispatchEvent(new Event('initQRCode'));
document.dispatchEvent(new Event('initDrawer'));
document.dispatchEvent(new Event('initCantonalBranding'));
const cantonalBranding = document.querySelector('header #cantonalBrandingMobile');
const helpMenu = document.querySelector('agov-mobile-menu');
if (cantonalBranding && helpMenu) {
cantonalBranding.addEventListener('click', (event) => {
event.stopPropagation();
helpMenu.toggleMenu();
});
}
});

View File

@ -0,0 +1,45 @@
/* global utils */
function showLoginContentInsteadOfOtherLoginMethods() {
utils.changeDisplay(otherLoginMethodsMobileView, 'hidden', 'block');
utils.changeDisplay(loginContent, 'block', 'hidden');
}
const loginContent = document.querySelector('#loginContent');
const accessAppMobileBtnContainer = document.querySelector('#accessAppMobileBtnContainer');
const securityKeyMobileBtnContainer = document.querySelector('#securityKeyMobileBtnContainer');
const mobileOtherLoginMethodsBtn = document.querySelector('#mobileOtherLoginMethodsBtn');
const otherLoginMethodsMobileView = document.querySelector('#otherLoginMethodsMobileView');
// TODO: set when on eid branch
const onSwiyuLogin = false;
accessAppMobileBtnContainer.addEventListener('click', () => {
if (onSwiyuLogin === false) {
showLoginContentInsteadOfOtherLoginMethods();
document.dispatchEvent(new Event('showAccessAppLogin'));
}
else {
const form = utils.createForm();
utils.addInput(form, 'oid4vp', 'APP');
document.body.appendChild(form);
form.submit();
}
});
securityKeyMobileBtnContainer.addEventListener('click', () => {
if (onSwiyuLogin === false) {
showLoginContentInsteadOfOtherLoginMethods();
document.dispatchEvent(new Event('showSecurityKeyLogin'));
}
else {
const form = utils.createForm();
utils.addInput(form, 'oid4vp', 'FIDO2');
document.body.appendChild(form);
form.submit();
}
});
mobileOtherLoginMethodsBtn.addEventListener('click', () => {
utils.changeDisplay(loginContent, 'hidden', 'block');
utils.changeDisplay(otherLoginMethodsMobileView, 'block', 'hidden');
});

View File

@ -35,10 +35,10 @@
></agov-mobile-menu>
</div>
</nav>
#parse("${templatePath}/../envBanner.vm")
#parse("${templatePath}/envBanner.vm")
</header>
#parse("${templatePath}/../backdrop.vm")
#parse("${templatePath}/backdrop.vm")
<img alt="" class="mx-auto mt-16 block dark:hidden" src="${login.appDataPath}/static/images/403.svg">
<img alt="" class="mx-auto mt-16 hidden dark:block" src="${login.appDataPath}/static/images/403-dark.svg">
@ -67,4 +67,4 @@
application.</p>
</div>
</div>
#parse("${templatePath}/../footer.vm")
#parse("${templatePath}/footer.vm")

View File

@ -35,10 +35,10 @@
></agov-mobile-menu>
</div>
</nav>
#parse("${templatePath}/../envBanner.vm")
#parse("${templatePath}/envBanner.vm")
</header>
#parse("${templatePath}/../backdrop.vm")
#parse("${templatePath}/backdrop.vm")
<img alt="" class="mx-auto mt-16 block dark:hidden" src="${login.appDataPath}/static/images/404.svg">
<img alt="" class="mx-auto mt-16 hidden dark:block" src="${login.appDataPath}/static/images/404-dark.svg">
@ -65,4 +65,4 @@
exist.</p>
</div>
</div>
#parse("${templatePath}/../footer.vm")
#parse("${templatePath}/footer.vm")

View File

@ -35,10 +35,10 @@
></agov-mobile-menu>
</div>
</nav>
#parse("${templatePath}/../envBanner.vm")
#parse("${templatePath}/envBanner.vm")
</header>
#parse("${templatePath}/../backdrop.vm")
#parse("${templatePath}/backdrop.vm")
<img alt="" class="mx-auto mt-16 block dark:hidden" src="${login.appDataPath}/static/images/500.svg">
<img alt="" class="mx-auto mt-16 hidden dark:block" src="${login.appDataPath}/static/images/500-dark.svg">
@ -66,4 +66,4 @@
later.</p>
</div>
</div>
#parse("${templatePath}/../footer.vm")
#parse("${templatePath}/footer.vm")

View File

@ -35,10 +35,10 @@
></agov-mobile-menu>
</div>
</nav>
#parse("${templatePath}/../envBanner.vm")
#parse("${templatePath}/envBanner.vm")
</header>
#parse("${templatePath}/../backdrop.vm")
#parse("${templatePath}/backdrop.vm")
<img alt="" class="mx-auto mt-16 block dark:hidden" src="${login.appDataPath}/static/images/something_wrong.svg">
<img alt="" class="mx-auto mt-16 hidden dark:block" src="${login.appDataPath}/static/images/something_wrong-dark.svg">
@ -66,4 +66,4 @@
later.</p>
</div>
</div>
#parse("${templatePath}/../footer.vm")
#parse("${templatePath}/footer.vm")

View File

@ -35,10 +35,10 @@
></agov-mobile-menu>
</div>
</nav>
#parse("${templatePath}/../envBanner.vm")
#parse("${templatePath}/envBanner.vm")
</header>
#parse("${templatePath}/../backdrop.vm")
#parse("${templatePath}/backdrop.vm")
<img alt="" class="mx-auto mt-16 block dark:hidden" src="${login.appDataPath}/static/images/logout-img.svg">
<img alt="" class="mx-auto mt-16 hidden dark:block" src="${login.appDataPath}/static/images/logout-img-dark.svg">
@ -77,9 +77,10 @@
$text.get("footer.text")
<a target="_blank" class='text-hyperlink dark:text-dark-hyperlink underline' href='$text.get("footer.link")'>$text.get("footer.link.label")</a>
</div>
<p data-test="agovVersionNumber">1.11.0.2937-20250530T094540Z</p>
<p data-test="agovVersionNumber">1.11.0.local-20250627T145008Z-haburger: Mon Jun 30 16:49:40 CEST 2025</p>
</footer>
<script src="${login.appDataPath}/static/bundle.js"></script>
</body>
<script src="${login.appDataPath}/static/bundle.js"></script>
<script>
document.getElementById("login-button").addEventListener('click', () => {
this.loginAgain();

View File

@ -0,0 +1,142 @@
<div id="accessAppModal" class="h-full hidden sm:min-h-[297px]">
<div id="desktopBannerContainer" class="desktopBanner mb-4 hidden" aria-live="assertive">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div class="relative flex flex-col gap-4 h-full">
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4 z-10"></div>
<div id="mobileBannerContainer" class="mobileBanner relative z-20 mb-4 hidden" aria-live="assertive">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background items-center p-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center p-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div id="agovLoginImageMobile"
class="hidden max-w-[200px] sm:max-w-full sm:w-full basis-1/2 mx-auto mb-6">
<img alt=""
src="${login.appDataPath}/static/images/accessApp.svg"
class="block dark:hidden w-[96px] h-[96px]">
<img alt=""
src="${login.appDataPath}/static/images/accessApp_dark.svg"
class="hidden dark:block w-[96px] h-[96px]">
</div>
<div id="QRCodeHolder">
<div class="relative">
<canvas tabindex="0" role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
class="mb-6 mx-auto"></canvas>
<div class="hidden" id="QRcodeHiddenLink"></div>
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20">
<img src="${login.appDataPath}/static/images/spinner.svg"
class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
class="animate-spin hidden dark:block">
</span>
</div>
<a id="accessAppLinkIpad" href="" class="hidden">
<agov-button
class="block basis-full mb-6"
data-name="accessApp"
data-value="accessApp"
data-id="accessAppIpad"
data-label="$text.get("general.goToAccessApp")"
data-type="button"
data-fullwidth="true">
</agov-button>
</a>
<div class="accessAppInstructions flex bg-indigo-light rounded-xl p-4 sm:mb-0 mb-2 items-center dark:bg-purple-black">
<img alt="" src="${login.appDataPath}/static/images/accessApp.svg" class="h-12 mr-4 block dark:hidden">
<img alt="" src="${login.appDataPath}/static/images/accessApp_dark.svg" class="h-12 mr-4 hidden dark:block">
<p id="labelQRCodeInstructions"
class="font-header sm:text-h5 text-body-m text-space-blue dark:text-white">
$text.get("mauth_usernameless.instructions")
</p>
</div>
</div>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget"
autocomplete="off"
accept-charset="UTF-8" class="w-full sm:static mt-auto">
<div id="mobileButtons" class="hidden w-full">
<div class="flex flex-col">
<a id="accessAppLink" href="">
<agov-button
class="block basis-full mb-4"
data-name="accessApp"
data-value="accessApp"
data-id="accessApp"
data-label="$text.get("general.goToAccessApp")"
data-type="button"
data-fullwidth="true">
</agov-button>
</a>
<agov-button
id="showQR"
class="block basis-full"
data-style="frameless"
data-name="EID"
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.showQR")"
data-type="button"
data-fullwidth="true">
</agov-button>
<agov-button
id="hideQR"
class="hidden basis-full"
data-style="frameless"
data-name="EID"
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye-slash align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.hideQR")"
data-type="button"
data-fullwidth="true">
</agov-button>
</div>
</div>
<input class="hidden" name="authRequestId" type="hidden"
value="$gui.getGuiElem('authRequestId').value"/>
</form>
</div>
</div>

View File

@ -3,7 +3,7 @@
$text.get("footer.text")
<a target="_blank" class='text-hyperlink dark:text-dark-hyperlink underline' href='$text.get("footer.link")'>$text.get("footer.link.label")</a>
</div>
<p data-test="agovVersionNumber">1.11.0.2937-20250530T094540Z</p>
<p data-test="agovVersionNumber">1.11.0.local-20250627T145008Z-haburger: Mon Jun 30 16:49:40 CEST 2025</p>
</footer>
<script src="${login.appDataPath}/static/bundle.js"></script>
</body>

View File

@ -2,6 +2,7 @@
## svh -> Small View Height. It's not taking the height of the search bar on mobile into account
<html lang="$login.language" class="relative min-h-100 h-full mx-4 flex sm:block">
<head>
<script src="${login.appDataPath}/static/preload.js"></script>
<title>AGOV</title>
<meta charset="UTF-8">
<script src="${login.appDataPath}/static/preload.js"></script>
@ -17,13 +18,34 @@
</div>
<header class="flex flew-row relative">
#set($cantonalBrandingTitle = '')
#if ($login.language =="en" && $gui.getGuiElem('agov.appDisplayNameEN') && $gui.getGuiElem('agov.appDisplayNameEN').value)
#set($cantonalBrandingTitle = $utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameEN').value))
#elseif ($login.language =="de" && $gui.getGuiElem('agov.appDisplayNameDE') && $gui.getGuiElem('agov.appDisplayNameDE').value)
#set($cantonalBrandingTitle = $utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value))
#elseif ($login.language =="fr" && $gui.getGuiElem('agov.appDisplayNameFR') && $gui.getGuiElem('agov.appDisplayNameFR').value)
#set($cantonalBrandingTitle = $utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value))
#elseif ($login.language =="it" && $gui.getGuiElem('agov.appDisplayNameIT') && $gui.getGuiElem('agov.appDisplayNameIT').value)
#set($cantonalBrandingTitle = $utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value))
#elseif ($login.language =="rm" && $gui.getGuiElem('agov.appDisplayNameRM') && $gui.getGuiElem('agov.appDisplayNameRM').value)
#set($cantonalBrandingTitle = $utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameRM').value))
#end
#if($includeCantonalBrandingInMobileMenu)
<div id="cantonalBrandingMobile" class="flex items-center mb-4 sm:hidden hidden">
<div id="logoMobile" class="flex items-center bg-white dark:bg-black w-8 h-8" alt="$cantonalBrandingTitle"></div>
</div>
#end
<nav class="relative w-full md:max-w-[1240px] lg:max-w-[1440px] mx-auto flex items-center justify-between pt-8 pb-8 sm:pb-0 sm:h-20 mb-4">
<span class="flex-1 sm:flex-initial sm:hidden"></span>
<img alt="agov Logo" src="${login.appDataPath}/static/images/agov-logo.svg" class="h-5 sm:h-8 sm:mr-6 dark:hidden">
<img alt="agov Logo" src="${login.appDataPath}/static/images/agov-logo-dark.svg" class="h-5 sm:h-8 sm:mr-6 hidden dark:block">
<div class="flex items-center flex-1 sm:flex-initial justify-end">
#set ($langMenu = '')
#foreach ($locale in $login.locales)
## NOTE/2025-06-30/haburger: using hard coded, sorted array instead of $login.locales
#set($localeList = ["de", "fr", "it", "rm", "en"])
#foreach ($locale in $localeList)
## find translated label of current locale
#if ($text.contains("language.$locale"))
#set ($langLabel = $text.get("language.$locale"))
@ -41,7 +63,8 @@
'">'+$langLabel+' - '+$locale.toUpperCase()+'</a></li>')
#else
#set ($langMenu = $langMenu +
'<li><a class="flex items-center px-8 sm:px-4 justify-between w-full py-3 bg-indigo-light dark:bg-purple-black" aria-current="true" href="'+$langTarget+
'<li><a class="whitespace-nowrap flex items-center px-8 sm:px-4 justify-between w-full py-3
bg-indigo-light dark:bg-purple-black" aria-current="true" href="'+$langTarget+
'"><span class="font-body-semi">'+$langLabel+' - '+$locale.toUpperCase()+
'</span><span class="fa-solid fa-check text-indigo dark:text-white text-body-l"></span></li>')
#end
@ -79,7 +102,9 @@
data-filepath='${login.appDataPath}'
data-language_aria_label='$text.get("languageDropdown.aria.label")'
data-dark_mode_aria_label='$text.get("darkModeSwitch.aria.label")'
data-dark_mode_domain='$utils.getConfigParameter("application.language.cookie.en")'>
data-dark_mode_domain='$utils.getConfigParameter("application.language.cookie.en")'
data-include_cantonal_branding='$includeCantonalBrandingInMobileMenu'
data-cantonal_branding_title='$cantonalBrandingTitle'>
</agov-mobile-menu>
</div>
<div class="sm:hidden absolute bottom-0 mt-4 -left-4 -right-4 h-px bg-light-grey dark:bg-silver"></div>

View File

@ -1,14 +1,18 @@
#if ($gui.getGuiElem('agov.appSamlRpEntityId').value)
#set($includeCantonalBrandingInMobileMenu = true)
#else
#set($includeCantonalBrandingInMobileMenu = false)
#end
#parse("${templatePath}/header.vm")
#set ($formTarget = $utils.escapeHtmlAttribute($gui.target.replaceAll('&?language=[^&]*','')))
#parse("${templatePath}/backdrop.vm")
<div id="mainContent" class="container mx-auto sm:mt-2 sm:max-w-full flex h-full sm:h-auto">
<div class="flex flex-col items-start gap-4 w-full rounded-[36px] sm:p-6 mx-auto
max-w-[600px] md:max-w-[1200px] sm:bg-lily-blue dark:sm:bg-purple-black">
<div id="cantonalBranding"
class="flex items-center rounded-xl gap-5 p-2 sm:p-0 sm:w-auto w-full hidden bg-pale-blue dark:bg-purple-black sm:bg-transparent">
<div class="flex items-center p-2 bg-white rounded sm:rounded-xl w-16 h-16" id="logo"></div>
<main id="mainContent"
class="hidden sm:grid grid-cols-[1fr_auto] gap-4 mt-8 max-w-[600px] md:max-w-[1200px] mx-auto items-start"
data-lastLoginMethod="$utils.escapeHtmlAttribute($gui.getGuiElem('lastLoginMethod').value)">
<div id="cantonalBranding" class="hidden col-span-full flex items-center rounded-xl gap-5 bg-transparent px-6">
<div class="flex items-center p-2 bg-white rounded sm:rounded-xl w-12 h-12" id="logo"></div>
<h1 class="font-header text-h6 sm:text-h4 text-space-blue dark:text-white">
#if ($login.language =="en")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameEN').value)
@ -16,22 +20,87 @@
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value)
#elseif ($login.language =="fr")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value)
#else
#elseif ($login.language =="it")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value)
#else
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameRM').value)
#end
</h1>
</div>
<div class="flex flex-col md:flex-row w-full gap-6">
<div id="registerCard" class="w-full md:min-h-[689px] flex flex-col justify-between">
<div class="rounded-[20px] bg-white dark:bg-surface-black p-6 sm:px-10 sm:pt-10 sm:pb-8 ">
<h1 class="font-header text-h4 text-space-blue dark:text-white mb-8">$text.get("general.registration")</h1>
<div class="grid grid-cols-1 md:grid-cols-2 md:grid-rows-1 gap-6 md:gap-y-0 p-6 items-start rounded-[2.25rem]
sm:bg-lily-blue dark:sm:bg-purple-black text-space-blue dark:text-white">
<section id="loginCard"
class="md:row-span-full rounded-[1.25rem] p-10 bg-white dark:bg-surface-black flex flex-col">
<h2 id="desktopTitle" class="font-header text-h4 font-bold text-space-blue dark:text-white mr-3 mb-6"
data-accessAppLabel="$text.get("general.login.accessApp")"
data-securityKeyLabel="$text.get("general.login.securityKey")"></h2>
<h2 class="font-header text-h5 text-space-blue dark:text-white text-center mb-4">
$text.get("mauth_usernameless.noAccount")
</h2>
#parse("${templatePath}/accessAppLogin.vm")
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
#parse("${templatePath}/securityKeyLogin.vm")
<div id="desktopMenu">
<div class="flex items-center mt-4">
<span class="h-px w-full bg-silver"></span>
</div>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget"
autocomplete="off"
accept-charset="UTF-8" class="flex flex-col gap-4 pt-6">
<button class="hidden" id="onReload" name="onReload"></button>
<h2 id="cannotLoginSubtitle" class="font-header text-h5 font-bold text-space-blue dark:text-white"
data-securityKeyLabel="$text.get("mauth_usernameless.cannotLogin.securityKey")"
data-accessAppLabel="$text.get("mauth_usernameless.cannotLogin.accessApp")"></h2>
<agov-button
data-style="secondary"
data-name="fallback"
data-value="recovery"
data-label="<i class='fa-regular fa-suitcase-medical text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.startRecovery")"
data-type="submit"
data-fullwidth="true"
class="block">
</agov-button>
<input class="hidden" name="authRequestId" type="hidden"
value="$gui.getGuiElem('authRequestId').value"/>
</form>
</div>
</section>
<div id="otherMethodsAndRegister" class="flex flex-col gap-6">
<section id="otherLoginMethods"
class="md:self-stretch rounded-[1.25rem] p-10 bg-white dark:bg-surface-black flex flex-col gap-4">
<h2 class="font-header text-h4 font-bold text-space-blue dark:text-white mr-3 mb-4">$text.get(
"general.otherLoginMethods")</h2>
<agov-button
id="accessAppLoginBtn"
data-name="accessApp"
data-value="accessApp"
data-image="${login.appDataPath}/static/images/accessApp.svg"
data-imagedark="${login.appDataPath}/static/images/accessApp_dark.svg"
data-label="$text.get("general.accessApp")"
data-type="button"
data-style="secondary"
data-fullwidth="true">
</agov-button>
<agov-button
id="securityKeyLoginBtn"
data-name="securityKey"
data-value="securityKey"
data-image="${login.appDataPath}/static/images/securityKey.svg"
data-imagedark="${login.appDataPath}/static/images/securityKey_dark.svg"
data-label="$text.get("general.securityKey")"
data-type="button"
data-style="secondary"
data-fullwidth="true">
</agov-button>
</section>
<section id="registerCard"
class="md:self-stretch rounded-[1.25rem] p-10 bg-white dark:bg-surface-black flex flex-col gap-6">
<h2 class="font-header text-h4 font-bold text-space-blue dark:text-white">$text.get("general.registration")</h2>
<p class="font-header text-h5 font-bold text-space-blue dark:text-white mb-6">$text.get(
"mauth_usernameless.noAccount")</p>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget"
autocomplete="off"
accept-charset="UTF-8" class="w-full">
<agov-button
class="block"
@ -43,276 +112,79 @@
data-type="submit"
data-fullwidth="true">
</agov-button>
<input class="hidden" name="authRequestId" type="hidden" value="$gui.getGuiElem('authRequestId').value"/>
</form>
</div>
<div id="agovLoginImage"
class="relative md:max-w-[520px] max-w-[350px] sm:max-w-[300px] mb-10 w-full mx-auto hidden md:block">
<img alt="" src="${login.appDataPath}/static/images/login.svg"
class="hidden md:block dark:hidden w-full">
<img alt="" src="${login.appDataPath}/static/images/login-dark.svg"
class="hidden md:hidden dark:md:block w-full">
</div>
</div>
<div id="loginModal"
class="flex flex-col bg-white dark:bg-surface-black rounded-[20px] sm:min-h-[700px] p-6 sm:pb-8 sm:pt-10 sm:px-10
max-w-[550px] w-full">
<div class="flex mb-4 sm:mb-6 items-baseline">
<h1 class="font-header text-h4 text-space-blue dark:text-white mr-3">$text.get("general.login")</h1>
</div>
<div id="cantonalBrandingMobile"
class="flex items-center rounded-xl gap-5 mb-4 p-2 sm:p-0 sm:w-auto w-full hidden bg-pale-blue dark:bg-purple-black sm:bg-transparent">
<div class="flex items-center p-2 bg-white dark:bg-black rounded sm:rounded-xl w-16 h-16"
id="logoMobile"></div>
<h1 class="font-header text-h6 sm:text-h4 text-space-blue dark:text-white">
#if ($login.language =="en")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameEN').value)
#elseif ($login.language =="de")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameDE').value)
#elseif ($login.language =="fr")
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameFR').value)
#else
$utils.escapeHtmlAttribute($gui.getGuiElem('agov.appDisplayNameIT').value)
#end
</h1>
</div>
<agov-login-toggle
class="inline-block mb-6"
data-aria_label='$text.get("mauth_usernameless.useSecurityKey")'
data-access_app_img='${login.appDataPath}/static/images/access-app.svg'
data-security_key_img='${login.appDataPath}/static/images/fido-key.svg'
data-access_app_text='$text.get("general.AGOVAccessApp")'
data-security_key_text='$text.get("general.securityKey")'>
</agov-login-toggle>
<div id="accessAppModal" class="h-full">
<div class="desktopBanner" aria-live="assertive">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center p-4
mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
items-center p-4 mb-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background items-center
p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div class="relative flex flex-col h-full">
<div id="blurBackdrop" class="hidden absolute backdrop-blur-sm -top-1 -bottom-8 -left-4 -right-4
z-10"></div>
<div class="mobileBanner relative z-20" aria-live="assertive">
<div class="hidden info flex rounded-xl bg-info-background dark:bg-dark-info-background items-center
p-4 mb-4">
<i class="fa-regular fa-info-circle rounded-full p-3 text-info dark:text-dark-info bg-info/10 dark:bg-dark-info-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.info")
</p>
</div>
<div class="hidden success flex rounded-xl bg-success-background dark:bg-dark-success-background
items-center p-4 mb-4">
<i class="fa-regular fa-check-circle rounded-full p-3 text-success dark:text-dark-success bg-success/10 dark:bg-dark-success-icon mr-4 text-xl leading-none"></i>
<div>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.success")
</p>
</div>
</div>
<div class="hidden error flex rounded-xl bg-error-background dark:bg-dark-error-background
items-center p-4 mb-4">
<i class="fa-regular fa-exclamation-circle rounded-full p-3 text-error dark:text-dark-error bg-error/10 dark:bg-dark-error-icon mr-4 text-xl leading-none"></i>
<p class="font-body text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.banner.error")
</p>
</div>
</div>
<div id="agovLoginImageMobile"
class="hidden max-w-[200px] sm:max-w-full sm:w-full basis-1/2 mx-auto mb-6">
<img alt=""
src="${login.appDataPath}/static/images/login.svg"
class="block dark:hidden w-full">
<img alt=""
src="${login.appDataPath}/static/images/login-dark.svg"
class="hidden dark:block w-full">
</div>
<div id="QRCodeHolder">
<div class="relative">
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
class="mb-6 mx-auto"></canvas>
<div class="hidden" id="QRcodeHiddenLink"></div>
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2
z-20">
<img src="${login.appDataPath}/static/images/spinner.svg" class="animate-spin block dark:hidden">
<img src="${login.appDataPath}/static/images/spinner-dark.svg"
class="animate-spin hidden dark:block">
</span>
</div>
<a id="accessAppLinkIpad" href="" class="hidden">
<agov-button
class="block basis-full mb-6"
data-name="accessApp"
data-value="accessApp"
data-id="accessAppIpad"
data-label="$text.get("general.goAccessApp")"
data-type="button"
data-fullwidth="true">
</agov-button>
</a>
<div class="accessAppInstructions flex bg-indigo-light rounded-xl p-4 mb-2 items-center
dark:bg-purple-black">
<img alt="" src="${login.appDataPath}/static/images/access-app.svg" class="h-12 mr-4">
<p id="labelQRCodeInstructions" class="font-header text-h5 text-space-blue dark:text-white">
$text.get("mauth_usernameless.instructions")
</p>
</div>
</div>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8" class="w-full sm:static mt-auto mb-20 sm:mb-0">
<div id="mobileButtons" class="hidden w-full">
<div class="flex flex-col">
<a id="accessAppLink" href="">
<agov-button
class="block basis-full mb-4"
data-name="accessApp"
data-value="accessApp"
data-id="accessApp"
data-label="$text.get("general.goAccessApp")"
data-type="button"
data-fullwidth="true">
</agov-button>
</a>
<agov-button
id="showQR"
class="block basis-full"
data-style="frameless"
data-name="EID"
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.showQR")"
data-type="button"
data-fullwidth="true">
</agov-button>
<agov-button
id="hideQR"
class="hidden basis-full"
data-style="frameless"
data-name="EID"
data-value="EID"
data-id="EID"
data-label="<i class='fa-regular fa-eye-slash align-middle text-xl text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.hideQR")"
data-type="button"
data-fullwidth="true">
</agov-button>
</div>
</div>
<input class="hidden" name="authRequestId" type="hidden"
value="$gui.getGuiElem('authRequestId').value"/>
</form>
</section>
</div>
</div>
<div id="securityKeyModal" class="hidden sm:mt-16">
<span class="flex flex-row items-center m-auto hidden lg:block">
<img alt="" src="${login.appDataPath}/static/images/login.svg" class="w-[320px] h-[468px] self-center block dark:hidden">
<img alt="" src="${login.appDataPath}/static/images/login_dark.svg" class="w-[320px] h-[468px] self-center hidden dark:block">
</span>
</main>
<h2 class="font-header text-h5 text-space-blue dark:text-white mt-4 text-center">
$text.get("mauth_usernameless.useSecurityKey")
</h2>
<p class="font-body text-body-l text-space-blue dark:text-white text-center my-6">
$text.get("mauth_usernameless.useSecurityKeyInfo")
</p>
<main id="mobileMainContainer"
class="sm:hidden grow text-space-blue dark:text-white flex flex-col gap-2"
data-lastLoginMethod="$utils.escapeHtmlAttribute($gui.getGuiElem('lastLoginMethod').value)">
#parse("${templatePath}/otherLoginMethodsMobile.vm")
<span id="loginContent" class="flex flex-col h-[calc(100vh-200px)]">
<header id="mobileTitle" class="pb-4">
<h1 class="font-header text-h4 font-bold text-space-blue dark:text-white mr-3">$text.get("general.login")</h1>
<h2 id="mobileSubtitle" class="font-header text-h5 font-bold text-disabled-grey dark:text-white mr-3"
data-accessAppLabel="$text.get("general.login.accessApp")"
data-securityKeyLabel="$text.get("general.login.securityKey")"></h2>
</header>
<span class="flex flex-col flex-1 justify-center">
<section id="mobileLoginContainer">
#parse("${templatePath}/accessAppLogin.vm")
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8" class="mb-20 sm:mb-0">
<agov-button
class="mb-4 block"
data-name="fallback"
data-value="fallback"
data-id="fallback"
data-label="$text.get("general.loginSecurityKey")"
data-type="submit"
data-fullwidth="true"
data-icon="left">
</agov-button>
<input class="hidden" name="authRequestId" type="hidden" value="$gui.getGuiElem('authRequestId').value"/>
</form>
</div>
#parse("${templatePath}/securityKeyLogin.vm")
</section>
<div id="desktopMenu" class="mt-auto">
<div class="flex items-center mt-4">
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget"
autocomplete="off"
accept-charset="UTF-8" class="w-full sm:static">
<div class="flex items-center mt-6 mb-6">
<span class="h-px w-full bg-silver"></span>
<span class="px-2 text-disabled-grey dark:text-white font-body-semi text-body-l whitespace-nowrap">
$text.get("general.or")</span>
<span class="h-px w-full bg-silver"></span>
</div>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8">
<button class="hidden" id="onReload" name="onReload"></button>
<h2 class="font-header text-h5 text-space-blue dark:text-white mt-7 mb-4 text-center">
$text.get("mauth_usernameless.cannotLogin")
</h2>
<agov-button
id="mobileOtherLoginMethodsBtn"
class="block basis-full mb-4"
data-style="secondary"
data-name="fallback"
data-value="recovery"
data-label="<i class='fa-regular fa-suitcase-medical text-indigo dark:text-lilac mr-2'></i>$text.get(
"mauth_usernameless.startRecovery")"
data-type="submit"
data-fullwidth="true"
class="block">
data-name="otherLoginMethods"
data-value="otherLoginMethods"
data-label="$text.get("general.otherLoginMethods")"
data-type="button"
data-fullwidth="true">
</agov-button>
<input class="hidden" name="authRequestId" type="hidden" value="$gui.getGuiElem('authRequestId').value"/>
</form>
</div>
</span>
</span>
</div>
</div>
</div>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget" autocomplete="off"
accept-charset="UTF-8" class="hidden sm:hidden formDrawer">
<div class="w-full z-30 fixed left-0 pointer-events-none" id="drawerContainer">
<div class="w-full bg-white dark:bg-surface-black px-4 pb-[130px] rounded-t-2xl pointer-events-auto" id="drawer">
<div class="w-full bg-white dark:bg-surface-black px-4 pb-[130px] rounded-t-2xl pointer-events-auto"
id="drawer">
<div class="pt-2 pb-4 cursor-pointer">
<div class="w-10 h-1 rounded-full bg-silver dark:bg-ash mx-auto"></div>
</div>
<div class="flex items-center justify-center mb-6">
<span class="px-2 text-disabled-grey dark:text-white font-body-semi text-body-l whitespace-nowrap">
$text.get("general.otherOptions")
<span class="px-2 text-disabled-grey dark:text-white font-body-semi font-semibold text-body-l
whitespace-nowrap">
$text.get("general.moreOptions")
</span>
</div>
<p class="font-body-semi text-body-l text-space-blue dark:text-white text-center mb-2">
<p class="font-body-semi font-semibold text-body-l text-space-blue dark:text-white text-center mb-2">
$text.get("mauth_usernameless.noAccount")
</p>
@ -334,10 +206,10 @@
</div>
<div class="flex flex-col flex-wrap justify-center items-center mb-6 gap-1">
<p class="font-body-semi text-body-l text-space-blue dark:text-white">
$text.get("mauth_usernameless.cannotLogin")
</p>
<p id="cannotLoginSubtitleDrawer" class="font-body-semi font-semibold text-body-l text-space-blue
dark:text-white"
data-securityKeyLabel="$text.get("mauth_usernameless.cannotLogin.securityKey")"
data-accessAppLabel="$text.get("mauth_usernameless.cannotLogin.accessApp")"></p>
<agov-button
data-style="frameless"
data-name="fallback"
@ -350,21 +222,70 @@
</agov-button>
</div>
<div class="font-body text-body-s text-disabled-grey dark:text-silver text-center">
$text.get("footer.text")
<a target="_blank" class='text-hyperlink dark:text-info underline' href='$text.get("footer.link")'>$text.get(
<a target="_blank" class='text-hyperlink dark:text-info underline'
href='$text.get("footer.link")'>$text.get(
"footer.link.label")</a>
</div>
</div>
</div>
<input class="hidden" name="authRequestId" type="hidden" value="$gui.getGuiElem('authRequestId').value"/>
</form>
</div>
</main>
<div id="modal" class="fixed top-0 bottom-0 left-0 right-0 pb-20 z-50 hidden">
<div class="fixed top-0 bottom-0 left-0 right-0 backdrop-blur-[10px]" id="modal_light"></div>
<div class="fixed top-0 bottom-0 left-0 right-0 bg-[#E2E2E2E5]/80 dark:bg-[#111111]/90" id="modal_dark"></div>
<div class="inline-flex flex-col overflow-hidden overflow-y-scroll fixed bg-white dark:bg-surface-black rounded-[20px] p-10
w-11/12
sm:max-w-[440px] max-h-[90vh] top-1/2 left-1/2
-translate-x-1/2
-translate-y-1/2">
<div id="modalTab" class="mb-6 cursor-pointer hidden">
<div class="w-10 h-1 rounded-full bg-light-grey dark:bg-ash mx-auto"></div>
</div>
<h4 id="modalTitle" class="font-header text-h4 text-space-blue dark:text-white mb-8">
$text.get("general.login.accessApp")
</h4>
<div class="flex flex-col">
<div id="QRCodeHolderModal">
<div class="relative">
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode_modal"
class="mb-6 mx-auto"></canvas>
<div class="hidden" id="QRcodeHiddenLink"></div>
</div>
<div class="accessAppInstructions flex bg-indigo-light rounded-xl p-4 sm:mb-0 mb-2 items-center dark:bg-purple-black">
<img alt="" src="${login.appDataPath}/static/images/accessApp.svg" class="h-12 mr-4 block dark:hidden">
<img alt="" src="${login.appDataPath}/static/images/accessApp_dark.svg"
class="h-12 mr-4 hidden dark:block">
<p id="labelQRCodeInstructions"
class="font-header text-h5 text-space-blue dark:text-white">
$text.get("mauth_usernameless.instructions")
</p>
</div>
</div>
<agov-button
class="block justify-center mt-10"
id="showQRModalBack"
data-style="frameless"
data-label="$text.get("general.back")"
data-type="button"
data-fullwidth="true">
</agov-button>
</div>
</div>
</div>
<script src="${login.appDataPath}/static/js-code/mauth_usernameless.js" defer>
</script>
<div id="appSamlRpEntityId" class="hidden" data-value="$gui.getGuiElem('agov.appSamlRpEntityId').value"
<script src="${login.appDataPath}/static/js-code/loginMask.js">
</script>
<script src="${login.appDataPath}/static/js-code/otherLoginMethodsMobile.js">
</script>
<div id="appSamlRpEntityId" class="hidden"
data-value="$gui.getGuiElem('agov.appSamlRpEntityId').value"
data-language="$login.language">
</div>

View File

@ -1,6 +1,13 @@
import fs from 'fs';
import path from 'path';
const translations = parseTranslations('en');
module.exports = {
utils: {
escapeHtmlAttribute: key => key
},
text: {
get: key => key
get: key => translations[key] ?? key
},
templatePath: '.',
login: {
@ -10,3 +17,16 @@ module.exports = {
getGuiElem: key => ({ label: key, value: key })
}
};
function parseTranslations(lang) {
const translationFileContent = fs.readFileSync(path.resolve(__dirname, `../conf/text_${lang}.properties`), 'utf-8');
return translationFileContent.split('\n')
.filter(eachLine => eachLine && !eachLine.startsWith('#'))
.reduce((acc, currentLine) => {
const [key, value] = currentLine.split('=');
return {
...acc,
[key]: value
};
}, {});
}

View File

@ -0,0 +1,48 @@
<span id="otherLoginMethodsMobileView" class="hidden">
<span id="otherLoginMethodsTitleMobile">
<h1 class="font-header text-h4 font-bold text-space-blue dark:text-white mr-3">$text.get("general.login")</h1>
<h2 class="font-header text-h5 font-bold text-disabled-grey dark:text-white mr-3 pb-4">$text.get(
"mauth_usernameless.selectLoginMethod")</h2>
</span>
<div class="flex flex-col gap-6 pt-4">
<div id="accessAppMobileBtnContainer"
class="flex flex-row items-center w-full px-5 gap-5 cursor-pointer" tabindex="0">
<img alt=""
src="${login.appDataPath}/static/images/accessApp.svg"
class="block dark:hidden w-[40px] h-[40px]">
<img alt=""
src="${login.appDataPath}/static/images/accessApp_dark.svg"
class="hidden dark:block w-[40px] h-[40px]">
<agov-button
class="basis-full"
data-style="secondary"
data-name="accessApp"
data-value="accessApp"
data-id="accessAppMobileBtn"
data-label="$text.get("general.accessApp")"
data-type="button"
data-fullwidth="true">
</agov-button>
</div>
<div id="securityKeyMobileBtnContainer"
class="flex flex-row items-center w-full px-5 gap-5 cursor-pointer" tabindex="0">
<img alt=""
src="${login.appDataPath}/static/images/securityKey.svg"
class="block dark:hidden w-[40px] h-[40px]">
<img alt=""
src="${login.appDataPath}/static/images/securityKey_dark.svg"
class="hidden dark:block w-[40px] h-[40px]">
<agov-button
class="basis-full"
data-style="secondary"
data-name="securityKey"
data-value="securityKey"
data-id="securityKeyMobileBtn"
data-label="$text.get("general.securityKey")"
data-type="button"
data-fullwidth="true">
</agov-button>
</div>
</div>
</span>

View File

@ -9,7 +9,6 @@
<div class="flex flex-col-reverse sm:flex-row justify-evenly items-start gap-5 w-full h-full">
<div id="loginModal" class="flex flex-col bg-white dark:bg-surface-black rounded-[20px] sm:p-10 max-w-[550px] w-full
md:basis-1/2">
<div class="flex mb-6 items-baseline">
<h1 class="font-header text-h3 text-space-blue dark:text-white mr-3">$text.get("general.recovery")</h1>
<h2 class="font-header text-h4 text-disabled-grey dark:text-silver">$text.get("general.authenticate")</h2>
@ -93,7 +92,7 @@
</div>
<div id="QRCodeHolder">
<div class="relative">
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
<canvas tabindex="0" role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode"
class="mb-4 mx-auto"></canvas>
<div class="hidden" id="QRcodeHiddenLink"></div>
<span id="spinner" class="hidden absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-20">
@ -180,6 +179,48 @@
class="max-w-[350px] md:max-w-[520px] w-full md:basis-1/2 hidden dark:md:block">
</div>
</div>
<div id="modal" class="fixed top-0 bottom-0 left-0 right-0 pb-20 z-50 hidden">
<div class="fixed top-0 bottom-0 left-0 right-0 backdrop-blur-[10px]" id="modal_light"></div>
<div class="fixed top-0 bottom-0 left-0 right-0 bg-[#E2E2E2E5]/80 dark:bg-[#111111]/90" id="modal_dark"></div>
<div class="inline-flex flex-col overflow-hidden overflow-y-scroll fixed bg-white dark:bg-surface-black rounded-[20px] p-10 w-11/12
sm:max-w-[440px] max-h-[90vh] top-1/2 left-1/2
-translate-x-1/2 -translate-y-1/2">
<div id="modalTab" class="mb-6 cursor-pointer hidden">
<div class="w-10 h-1 rounded-full bg-light-grey dark:bg-ash mx-auto"></div>
</div>
<h4 id="modalTitle" class="font-header text-h4 text-space-blue dark:text-white mb-8">
$text.get("general.login.accessApp")
</h4>
<div class="flex flex-col">
<div id="QRCodeHolderModal">
<div class="relative">
<canvas role="img" aria-labelledby="labelQRCodeInstructions" id="mauth_qrcode_modal"
class="mb-6 mx-auto"></canvas>
<div class="hidden" id="QRcodeHiddenLink"></div>
</div>
<div class="accessAppInstructions flex bg-indigo-light rounded-xl p-4 sm:mb-0 mb-2 items-center dark:bg-purple-black">
<img alt="" src="${login.appDataPath}/static/images/accessApp.svg" class="h-12 mr-4 block dark:hidden">
<img alt="" src="${login.appDataPath}/static/images/accessApp_dark.svg" class="h-12 mr-4 hidden dark:block">
<p id="labelQRCodeInstructions"
class="font-header text-h5 text-space-blue dark:text-white">
$text.get("mauth_usernameless.instructions")
</p>
</div>
</div>
<agov-button
class="block justify-center mt-10"
id="showQRModalBack"
data-style="frameless"
data-label="$text.get("general.back")"
data-type="button"
data-fullwidth="true">
</agov-button>
</div>
</div>
</div>
<script src="${login.appDataPath}/static/js-code/recovery_accessapp_auth.js">
</script>

View File

@ -0,0 +1,23 @@
<section id="securityKeyModal" class="flex flex-col gap-6 sm:py-12 hidden sm:min-h-[297px]">
<h2 class="font-header text-h5 font-bold text-space-blue dark:text-white text-center">
$text.get("mauth_usernameless.useSecurityKey")
</h2>
<p class="font-body text-body-l text-space-blue dark:text-white text-center">
$text.get("mauth_usernameless.useSecurityKeyInfo")
</p>
<form id="$gui.name" name="$gui.name" method="POST" target="_self" action="$formTarget"
autocomplete="off"
accept-charset="UTF-8" class="flex flex-col gap-4">
<agov-button
class="block"
data-name="fallback"
data-value="fallback"
data-id="fallback"
data-label="<i class='fa-solid fa-arrow-right -ml-1.5 mr-1.5'></i>$text.get("general.loginSecurityKey")"
data-type="submit"
data-fullwidth="true">
</agov-button>
<input class="hidden" name="authRequestId" type="hidden"
value="$gui.getGuiElem('authRequestId').value"/>
</form>
</section>

View File

@ -35,10 +35,10 @@
></agov-mobile-menu>
</div>
</nav>
#parse("${templatePath}/../envBanner.vm")
#parse("${templatePath}/envBanner.vm")
</header>
#parse("${templatePath}/../backdrop.vm")
#parse("${templatePath}/backdrop.vm")
<img alt="" class="mx-auto mt-16 block dark:hidden" src="${login.appDataPath}/static/images/timeout.svg">
<img alt="" class="mx-auto mt-16 hidden dark:block" src="${login.appDataPath}/static/images/timeout-dark.svg">
@ -70,4 +70,4 @@
this window and try logging in again.</p>
</div>
</div>
#parse("${templatePath}/../footer.vm")
#parse("${templatePath}/footer.vm")

View File

@ -64,12 +64,16 @@ general.fieldRequired=Field required.
general.getStarted=Get started
general.goAGOVHelp=Go to AGOV help
general.goAccessApp=Login with AGOV access
general.goToAccessApp=Go to AGOV access app
general.help=Help
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Login with Access App
general.login.securityKey=Login with Security Key
general.loginSecurityKey=Start Security key login
general.moreOptions=MORE OPTIONS
general.or=OR
general.otherOptions=OTHER OPTIONS
general.otherLoginMethods=Other login methods
general.recovery=Recovery
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Download as PDF
@ -82,6 +86,8 @@ general.recoveryOngoing=Ongoing recovery
general.register=Register
general.registerNow=Register now!
general.registration=Registration
general.registration.dontHaveAnAccountYet=Don't have an AGOV account yet?
general.registration.seeOptions=See registration options
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Select language
loainfo.description.200=To access the application, we need to verify your data. The process can take up to 2 - 3 days.
loainfo.description.300=To access the application we need to verify your data through one of two processes. You can choose your preferred process in the next step.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Authentication interrupted.<br>Please try again
mauth_usernameless.banner.info=Scan successful.<br>Please continue in the AGOV access app.
mauth_usernameless.banner.success=Authentication successful!<br>Please wait to be logged in.
mauth_usernameless.cannotLogin=Lost access to your app / security key?
mauth_usernameless.cannotLogin.accessApp=Lost access to your app?
mauth_usernameless.cannotLogin.securityKey=Lost access to your security key?
mauth_usernameless.hideQR=Hide QR code
mauth_usernameless.instructions=Log in by scanning the QR code with your AGOV access app
mauth_usernameless.noAccount=Don't have an AGOV-Login yet?
mauth_usernameless.noAccount=Don't have an AGOV account yet?
mauth_usernameless.selectLoginMethod=Select login method
mauth_usernameless.showQR=Show QR code
mauth_usernameless.startRecovery=Start account recovery
mauth_usernameless.useSecurityKey=Use a security key to log in

View File

@ -64,12 +64,16 @@ general.fieldRequired=Erforderliches Feld.
general.getStarted=Los geht's
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
general.goToAccessApp=Zur AGOV access App wechseln
general.help=Hilfe
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Login mit AGOV access App
general.login.securityKey=Login mit Sicherheitsschl&uuml;ssel
general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.moreOptions=WEITERE OPTIONEN
general.or=ODER
general.otherOptions=WEITERE OPTIONEN
general.otherLoginMethods=Andere Login-Methoden
general.recovery=Wiederherstellung
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Als PDF herunterladen
@ -82,6 +86,8 @@ general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!
general.registration=Registrierung
general.registration.dontHaveAnAccountYet=Haben Sie noch kein AGOV-Konto?
general.registration.seeOptions=Registrierungsoptionen ansehen
general.securityKey=Sicherheitsschl&uuml;ssel
general.skip.content=Direkt zum Hauptteil
general.wrongPhoneNumber=Bitte geben Sie eine g&uuml;ltige Telefonnummer ein
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Sprache w&auml;hlen
loainfo.description.200=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben verifizieren. Der Vorgang kann bis zu 2 - 3 Tage dauern.
loainfo.description.300=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben durch einen von zwei Vorg&auml;ngen verifizieren. Sie k&ouml;nnen die bevorzugte Methode im n&auml;chsten Schritt ausw&auml;hlen.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Authentifizierung unterbrochen.<br>Bitte versuch
mauth_usernameless.banner.info=Scan erfolgreich.<br>Bitte fahren Sie in der AGOV access App fort.
mauth_usernameless.banner.success=Authentifizierung erfolgreich!<br>Bitte warten Sie, bis Sie eingeloggt werden.
mauth_usernameless.cannotLogin=Zugriff auf App / Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.cannotLogin.accessApp=Zugriff auf App verloren?
mauth_usernameless.cannotLogin.securityKey=Zugriff auf Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.hideQR=QR-Code ausblenden
mauth_usernameless.instructions=Melden Sie sich an, indem Sie den QR-Code mit Ihrer AGOV access App scannen
mauth_usernameless.noAccount=Haben Sie noch kein AGOV-Login?
mauth_usernameless.noAccount=Haben Sie noch kein AGOV-Konto?
mauth_usernameless.selectLoginMethod=Login-Methode w&auml;hlen
mauth_usernameless.showQR=QR-Code anzeigen
mauth_usernameless.startRecovery=Kontowiederherstellung starten
mauth_usernameless.useSecurityKey=Verwenden Sie einen Sicherheitsschl&uuml;ssel, um sich anzumelden

View File

@ -64,12 +64,16 @@ general.fieldRequired=Field required.
general.getStarted=Get started
general.goAGOVHelp=Go to AGOV help
general.goAccessApp=Login with AGOV access
general.goToAccessApp=Go to AGOV access app
general.help=Help
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Login with Access App
general.login.securityKey=Login with Security Key
general.loginSecurityKey=Start Security key login
general.moreOptions=MORE OPTIONS
general.or=OR
general.otherOptions=OTHER OPTIONS
general.otherLoginMethods=Other login methods
general.recovery=Recovery
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Download as PDF
@ -82,6 +86,8 @@ general.recoveryOngoing=Ongoing recovery
general.register=Register
general.registerNow=Register now!
general.registration=Registration
general.registration.dontHaveAnAccountYet=Don't have an AGOV account yet?
general.registration.seeOptions=See registration options
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Select language
loainfo.description.200=To access the application, we need to verify your data. The process can take up to 2 - 3 days.
loainfo.description.300=To access the application we need to verify your data through one of two processes. You can choose your preferred process in the next step.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Authentication interrupted.<br>Please try again
mauth_usernameless.banner.info=Scan successful.<br>Please continue in the AGOV access app.
mauth_usernameless.banner.success=Authentication successful!<br>Please wait to be logged in.
mauth_usernameless.cannotLogin=Lost access to your app / security key?
mauth_usernameless.cannotLogin.accessApp=Lost access to your app?
mauth_usernameless.cannotLogin.securityKey=Lost access to your security key?
mauth_usernameless.hideQR=Hide QR code
mauth_usernameless.instructions=Log in by scanning the QR code with your AGOV access app
mauth_usernameless.noAccount=Don't have an AGOV-Login yet?
mauth_usernameless.noAccount=Don't have an AGOV account yet?
mauth_usernameless.selectLoginMethod=Select login method
mauth_usernameless.showQR=Show QR code
mauth_usernameless.startRecovery=Start account recovery
mauth_usernameless.useSecurityKey=Use a security key to log in

View File

@ -64,12 +64,16 @@ general.fieldRequired=Champ requis.
general.getStarted=D&eacute;marrer
general.goAGOVHelp=Rendez-vous sur AGOV help
general.goAccessApp=Login avec AGOV access
general.goToAccessApp=Allez sur votre application AGOV access
general.help=Aide
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Connexion avec l'application AGOV access
general.login.securityKey=Connexion avec la cl&eacute; de s&eacute;curit&eacute;
general.loginSecurityKey=D&eacute;marrer la connexion avec la cl&eacute; de s&eacute;curit&eacute;
general.moreOptions=PLUS D'OPTIONS
general.or=OU
general.otherOptions=AUTRES OPTIONS
general.otherLoginMethods=Autres m&eacute;thodes de connexion
general.recovery=R&eacute;cup&eacute;ration
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=T&eacute;l&eacute;charger en format PDF
@ -82,6 +86,8 @@ general.recoveryOngoing=R&eacute;cup&eacute;ration en cours
general.register=Cr&eacute;er un compte
general.registerNow=Enregistrez-vous d&egrave;s maintenant!
general.registration=Enregistrement
general.registration.dontHaveAnAccountYet=Vous n'avez pas de compte AGOV ?
general.registration.seeOptions=Voir les options d'enregistrement
general.securityKey=Cl&eacute; de s&eacute;curit&eacute;
general.skip.content=Passer au contenu principal
general.wrongPhoneNumber=Veuillez saisir un num&eacute;ro de t&eacute;l&eacute;phone valable
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=S&eacute;lectionner la langue
loainfo.description.200=Pour acc&eacute;der &agrave; l'application, nous devons v&eacute;rifier vos donn&eacute;es. Ce processus peut prendre jusqu'&agrave; 2 ou 3 jours.
loainfo.description.300=Pour acc&eacute;der &agrave; l'application, nous devons v&eacute;rifier vos donn&eacute;es par le biais de l'une des deux proc&eacute;dures suivantes. Vous pouvez choisir la proc&eacute;dure que vous pr&eacute;f&eacute;rez &agrave; l'&eacute;tape suivante.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Authentification interrompue.<br>Veuillez r&eacu
mauth_usernameless.banner.info=Scan r&eacute;ussi!<br> Veuillez continuer dans l'application AGOV access.
mauth_usernameless.banner.success=Authentification r&eacute;ussie!<br>Veuillez attendre d'&ecirc;tre connect&eacute;.
mauth_usernameless.cannotLogin=Avez-vous perdu l'acc&egrave;s &agrave; votre application / votre cl&eacute; de s&eacute;curit&eacute; ?
mauth_usernameless.cannotLogin.accessApp=Vous avez perdu l'acc&egrave;s &agrave; votre application AGOV access ?
mauth_usernameless.cannotLogin.securityKey=Avez-vous perdu l'acc&egrave;s &agrave; votre cl&eacute; de s&eacute;curit&eacute; ?
mauth_usernameless.hideQR=Cacher le code QR
mauth_usernameless.instructions=Connectez-vous en scannant le code QR avec l'application AGOV access
mauth_usernameless.noAccount=Vous n'avez pas encore d'AGOV-Login ?
mauth_usernameless.noAccount=Vous n'avez pas de compte AGOV ?
mauth_usernameless.selectLoginMethod=S&eacute;l&eacute;ctionner la m&eacute;thode de connexion
mauth_usernameless.showQR=Afficher le code QR
mauth_usernameless.startRecovery=Commencer la r&eacute;cup&eacute;ration du compte
mauth_usernameless.useSecurityKey=Utiliser une cl&eacute; de s&eacute;curit&eacute; pour se connecter

View File

@ -64,12 +64,16 @@ general.fieldRequired=Campo obbligatorio.
general.getStarted=Iniziare
general.goAGOVHelp=Vai ad AGOV help
general.goAccessApp=Login con AGOV access
general.goToAccessApp=Vai all'app AGOV access
general.help=Aiuto
general.help.link=https://agov.ch/help
general.login=Accedere
general.login.accessApp=Accesso con l'App AGOV access
general.login.securityKey=Login con la chiave di sicurezza
general.loginSecurityKey=Iniziare il login con la chiave di sicurezza
general.moreOptions=ALTRE OPZIONI
general.or=O
general.otherOptions=ALTRE OPZIONI
general.otherLoginMethods=Altri metodi di login
general.recovery=Ripristino
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Salva come PDF
@ -82,6 +86,8 @@ general.recoveryOngoing=Ripristino in corso
general.register=Registrarsi
general.registerNow=Si registri ora!
general.registration=Registrazione
general.registration.dontHaveAnAccountYet=Non ha ancora un AGOV account?
general.registration.seeOptions=Vedere le opzioni di registrazione
general.securityKey=Chiave di sicurezza
general.skip.content=Vai al contenuto principale
general.wrongPhoneNumber=Inserire un numero di cellulare valido
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Selezionare la lingua
loainfo.description.200=Per accedere all'app &egrave; necessaria una verifica dei dati. La procedura pu&ograve; richiedere fino a 2&ndash;3 giorni lavorativi.
loainfo.description.300=Per accedere all'app dobbiamo verificare i suoi dati tramite uno dei due processi. Al prossimo passaggio, pu&ograve; selezionare la procedura di verifica desiderata.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Autenticazione interrotta.<br>Riprovare dopo che
mauth_usernameless.banner.info=La scansione &egrave; stata eseguita.<br>Continuare nell'app AGOV access.
mauth_usernameless.banner.success=Autenticazione riuscita!<br>Aspettare di essere connessi.
mauth_usernameless.cannotLogin=Ha perso l'accesso alla sua app/chiave di sicurezza?
mauth_usernameless.cannotLogin.accessApp=Ha perso l'accesso al suo App AGOV access?
mauth_usernameless.cannotLogin.securityKey=Ha perso l'accesso alla sua chiave di sicurezza?
mauth_usernameless.hideQR=Nascondi il codice QR
mauth_usernameless.instructions=Per accedere, scansionare il codice QR con l'app AGOV access.
mauth_usernameless.noAccount=Non ha ancora un AGOV-Login ?
mauth_usernameless.noAccount=Non ha ancora un AGOV account?
mauth_usernameless.selectLoginMethod=Selezionare il metodo di login
mauth_usernameless.showQR=Visualizza il codice QR
mauth_usernameless.startRecovery=Inizia il recupero dell'account
mauth_usernameless.useSecurityKey=Accedere utilizzando una chiave di sicurezza.

View File

@ -13,14 +13,22 @@ application.language.source.3=gui
# source: pattern://204c22beaccdfd22727af378
application.language.source.4=browser
# source: pattern://204c22beaccdfd22727af378
application.languages=en,de,fr,it
cache.revalidate.delay=-1
# source: pattern://204c22beaccdfd22727af378
application.languages=de,fr,it,rm,en
# source: pattern://204c22beaccdfd22727af378, pattern://097929211988398a87bcbb0c
application.language.cookie.de=LANG:de:.agov-d.azure.adnovum.net
# source: pattern://204c22beaccdfd22727af378, pattern://097929211988398a87bcbb0c
application.language.cookie.fr=LANG:fr:.agov-d.azure.adnovum.net
# source: pattern://204c22beaccdfd22727af378, pattern://097929211988398a87bcbb0c
application.language.cookie.it=LANG:it:.agov-d.azure.adnovum.net
# source: pattern://204c22beaccdfd22727af378, pattern://097929211988398a87bcbb0c
application.language.cookie.rm=LANG:rm:.agov-d.azure.adnovum.net
# source: pattern://204c22beaccdfd22727af378, pattern://097929211988398a87bcbb0c
application.language.cookie.en=LANG:en:.agov-d.azure.adnovum.net
# source: pattern://204c22beaccdfd22727af378
env.name=AGOV-DEV
# source: pattern://204c22beaccdfd22727af378
page.title=AGOV DEV IdP
# source: pattern://204c22beaccdfd22727af378
application.languages.default=en
# source: pattern://097929211988398a87bcbb0c
application.language.cookie.en=LANG:en:.agov-w.azure.adnovum.net
# source: pattern://097929211988398a87bcbb0c
application.language.cookie.de=LANG:de:.agov-w.azure.adnovum.net
# source: pattern://097929211988398a87bcbb0c
application.language.cookie.fr=LANG:fr:.agov-w.azure.adnovum.net
# source: pattern://097929211988398a87bcbb0c
application.language.cookie.it=LANG:it:.agov-w.azure.adnovum.net

View File

@ -1,243 +1,253 @@
agov-ident.done.message=Your AGOV account is now ready for use. Please close this page.
agov-ident.done.title=Done
agov-ident.failed.instruction=You need an AGOV account and pass the suggested data verification to successfully finish the on-boarding. Please try again.
agov-ident.failed.message=Onboarding cancelled or data verification postponed
agov-ident.failed.title=Verification needed
agov-ident.invalid-url.instruction=The link you used to access this page isn't valid. Please make sure you use it as received without any typos or click it directly on the page, where it is published.
agov-ident.invalid-url.message=Link can't be processed
agov-ident.invalid-url.title=Invalid Link
agov-ident.onboarding=Registration & Verification
agov-ident.retry=Try again
button.submit=Submit
darkModeSwitch.aria.label=Dark mode toggle
error.policy.failed=The new password does not comply with the policy.
error_1=Please check your input.
error_10=Please select the correct user account.
error_100=Certificate upload not possible. Certificate already exists. Please contact your helpdesk.
error_101=The entered email address is not valid.
error_11=Please use another certficate or login with another credential type.
error_2=Please select another login name.
error_3=Your account will be locked if next authentication fails.
error_4=Your new password does not comply with the security policy. Please choose a different password.
error_5=Error in password confirmation.
error_50=The new password is too short.
error_55=The new password has to differ from old passwords.
error_6=Password change required.
error_7=Change of login ID required.
error_8=Your account has been locked due to repeated authentication failures.
error_81=No access card found, access from internet denied.
error_83=Your access card is no longer valid. Please contact your advisor to get a new access card.
error_9=Session take over failed.
error_97=You are not authorized to access this resource.
error_98=Your account has been locked.
error_99=System problems. Please try later.
error_9901=You need a valid on-boarding link to access this page.
error_9902=The email used for authentication doesn't match the expected one in operations. Please ask for a new on-boarding link.
error_9903=The used IdP didn't send us a valid assertion. Please make sure, you use the correct IdP. Ask the support for a new on-boarding link.
error_9904=Your link is not valid anymore. Please make sure, that you are using the latest Link received from operations. Ask for a new link, if the problem persists.
error_9905=There is a problem with your operations account. Please contact the support.
error_9909=An internal error occured. Please ask the support for a new on-boarding link.
errors.duplicateValue=Your account is already linked with another operations access.
fido2_auth.cancel.fido=The security key authentication was interrupted. Please ensure your FIDO key is registered and your email is correct, then follow the steps below.
fido2_auth.instruction1=Click on "Continue"
fido2_auth.instruction2=An authentication window will appear
fido2_auth.instruction3=Follow the instructions
fido2_auth.skipInstructions=Skip instructions next time
fido2_auth.switchLogin=SWITCH TO LOGIN WITH
agov-ident.done.message=Ihr AGOV-Konto ist nun einsatzbereit. Bitte schliessen Sie diese Seite.
agov-ident.done.title=Fertig
agov-ident.failed.instruction=Sie ben&ouml;tigen ein AGOV-Konto und m&uuml;ssen die vorgeschlagene Daten&uuml;berpr&uuml;fung bestehen, um das Onboarding erfolgreich abzuschliessen. Bitte versuchen Sie es erneut.
agov-ident.failed.message=Onboarding abgebrochen oder Verifikation der Daten verschoben
agov-ident.failed.title=Verifikation erforderlich
agov-ident.invalid-url.instruction=Der Link, den Sie f&uuml;r den Zugriff auf diese Seite verwendet haben, ist ung&uuml;ltig. Bitte stellen Sie sicher, dass Sie ihn so verwenden, wie Sie ihn erhalten haben, ohne Tippfehler, oder klicken Sie ihn direkt auf der Seite an, auf der er ver&ouml;ffentlicht ist.
agov-ident.invalid-url.message=Link kann nicht verarbeitet werden
agov-ident.invalid-url.title=Ung&uuml;ltiger Link
agov-ident.onboarding=Registrierung & Verifikation
agov-ident.retry=Versuchen Sie es erneut
button.submit=Senden
darkModeSwitch.aria.label=Dark-Mode-Schalter
error.policy.failed=Das neue Passwort stimmt nicht mit der Richtlinie &uuml;berein.
error_1=Bitte &uuml;berpr&uuml;fen Sie Ihre Eingaben.
error_10=Bitte w&auml;hlen Sie das richtige Benutzerkonto aus.
error_100=Zertifikat-Upload nicht m&ouml;glich. Das Zertifikat existiert bereits. Wenden Sie sich an Ihr Helpdesk.
error_101=Die eingegebene E-Mail-Adresse ist ung&uuml;ltig.
error_11=Bitte verwenden Sie ein anderes Zertifikat oder melden Sie sich mit einer anderen Art von Credential an.
error_2=Bitte w&auml;hlen Sie einen anderen Login-Namen.
error_3=Wenn die n&auml;chste Authentifizierung fehlschl&auml;gt, wird Ihr Konto gesperrt.
error_4=Ihr neues Passwort verst&ouml;sst gegen die Sicherheitsrichtlinien. Bitte w&auml;hlen Sie ein anderes Passwort.
error_5=Fehler bei der Passwortbest&auml;tigung.
error_50=Das neue Passwort ist zu kurz.
error_55=Das neue Passwort muss sich von alten Passw&ouml;rtern unterscheiden.
error_6=Passwort&auml;nderung erforderlich.
error_7=&Auml;nderung der Login-ID erforderlich.
error_8=Ihr Konto wurde aufgrund wiederholter fehlgeschlagener Authentifizierungsversuche gesperrt.
error_81=Keine Zugangskarte gefunden, Zugang &uuml;ber das Internet verweigert.
error_83=Ihre Zugangskarte ist nicht mehr g&uuml;ltig. Bitte wenden Sie sich an Ihre Beratungsperson, um eine neue Zugangskarte zu erhalten.
error_9=&Uuml;bernahme der Sitzung fehlgeschlagen.
error_97=Sie sind nicht berechtigt, auf diese Ressource zuzugreifen.
error_98=Ihr Konto wurde gesperrt.
error_99=Systemprobleme: Bitte versuchen Sie es sp&auml;ter noch einmal.
error_9901=Sie ben&ouml;tigen einen g&uuml;ltigen Onboarding-Link, um auf diese Seite zuzugreifen.
error_9902=Die f&uuml;r die Authentifizierung verwendete E-Mail-Adresse stimmt nicht mit der erwarteten E-Mail-Adresse in Operations &uuml;berein. Bitte fordern Sie einen neuen Onboarding-Link an.
error_9903=Der verwendete IdP hat uns keine g&uuml;ltige Assertion gesendet. Bitte stellen Sie sicher, dass Sie den richtigen IdP verwenden. Fordern Sie beim Support einen neuen Onboarding-Link an.
error_9904=Ihr Link ist nicht mehr g&uuml;ltig. Bitte stellen Sie sicher, dass Sie den neuesten Link verwenden, den Sie von Operations erhalten haben. Fordern Sie einen neuen Link an, falls das Problem weiterhin besteht.
error_9905=Es gibt ein Problem mit Ihrem Operations-Konto. Kontaktieren Sie bitte den Support.
error_9909=Es ist ein interner Fehler aufgetreten. Bitten Sie den Support um einen neuen Onboarding-Link.
errors.duplicateValue=Ihr Konto ist bereits mit einem anderen Operations-Zugang verkn&uuml;pft.
fido2_auth.cancel.fido=Die Authentifizierung mit dem Sicherheitsschl&uuml;ssel wurde unterbrochen. Bitte vergewissern Sie sich, dass Ihr FIDO-Schl&uuml;ssel registriert ist und Ihre E-Mail korrekt ist.
fido2_auth.instruction1=Klicken Sie auf "Weiter"
fido2_auth.instruction2=Ein Authentifizierungsfenster wird erscheinen
fido2_auth.instruction3=Folgen Sie den Anweisungen
fido2_auth.skipInstructions=Anweisungen n&auml;chstes Mal &uuml;berspringen
fido2_auth.switchLogin=WECHSEL ZU LOGIN MIT
footer.link=https://agov.ch
footer.link.label=Contact
footer.text=Authentication service of Swiss authorities AGOV - a collaboration between cantons, their municipalities, and the federal administration. -
general.AGOVAccessApp=AGOV access app
general.accessApp=AGOV access app
general.authenticate=Authenticate
general.back=Back
general.cancel=Cancel
general.confirm=Confirm
general.contactSupport=Contact Support
general.continue=Continue
general.edit=Edit
general.email=Email
general.email.address=Email address
general.entryCode=Code entry
general.fieldRequired=Field required.
general.getStarted=Get started
general.goAGOVHelp=Go to AGOV help
general.goAccessApp=Login with AGOV access
general.help=Help
footer.link.label=Kontakt
footer.text=Authentifizierungsdienst der Schweizer Beh&ouml;rden AGOV &ndash; eine Zusammenarbeit zwischen den Kantonen, deren Gemeinden und der Bundesverwaltung. -
general.AGOVAccessApp=AGOV access App
general.accessApp=AGOV access App
general.authenticate=Authentifizieren
general.back=Zur&uuml;ck
general.cancel=Abbrechen
general.confirm=Best&auml;tigen
general.contactSupport=Support kontaktieren
general.continue=Weiter
general.edit=&Auml;ndern
general.email=E-Mail
general.email.address=E-Mail-Adresse
general.entryCode=Code-Eingabe
general.fieldRequired=Erforderliches Feld.
general.getStarted=Los geht's
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
general.goToAccessApp=Zur AGOV access App wechseln
general.help=Hilfe
general.help.link=https://agov.ch/help
general.login=Login
general.loginSecurityKey=Start Security key login
general.or=OR
general.otherOptions=OTHER OPTIONS
general.recovery=Recovery
general.login.accessApp=Login mit AGOV access App
general.login.securityKey=Login mit Sicherheitsschl&uuml;ssel
general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.moreOptions=WEITERE OPTIONEN
general.or=ODER
general.otherLoginMethods=Andere Login-Methoden
general.recovery=Wiederherstellung
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Download as PDF
general.recoveryCode.inputLabel=Recovery code
general.recoveryCode.repeatCodeError=The code you entered was incorrect. Please ensure you have stored it correctly, then continue to resubmit.
general.recoveryCode.repeatCodeModal.description=A lost or incorrectly stored recovery code can make it more difficult to recover your account. To ensure you have recorded your code correctly, please repeat it below.
general.recoveryCode.repeatCodeModal.title=Repeat recovery code
general.recoveryCode.reveal=Reveal recovery code
general.recoveryOngoing=Ongoing recovery
general.register=Register
general.registerNow=Register now!
general.registration=Registration
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
generic.auth.error.title=Error
info.login=Please enter your authentication information.
general.recoveryCode.downloadPdf=Als PDF herunterladen
general.recoveryCode.inputLabel=Wiederherstellungscode
general.recoveryCode.repeatCodeError=Der von Ihnen eingegebene Code war nicht korrekt. Bitte vergewissern Sie sich, dass Sie ihn richtig abgespeichert haben, und fahren Sie dann mit der erneuten Eingabe fort.
general.recoveryCode.repeatCodeModal.description=Ein verlorener oder falsch gespeicherter Wiederherstellungscode kann die Wiederherstellung Ihres Kontos erschweren. Um sicherzustellen, dass Sie Ihren Code richtig gespeichert haben, wiederholen Sie ihn bitte unten.
general.recoveryCode.repeatCodeModal.title=Wiederherstellungscode wiederholen
general.recoveryCode.reveal=Wiederherstellungscode enth&uuml;llen
general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!
general.registration=Registrierung
general.registration.dontHaveAnAccountYet=Haben Sie noch kein AGOV-Konto?
general.registration.seeOptions=Registrierungsoptionen ansehen
general.securityKey=Sicherheitsschl&uuml;ssel
general.skip.content=Direkt zum Hauptteil
general.wrongPhoneNumber=Bitte geben Sie eine g&uuml;ltige Telefonnummer ein
generic.auth.error.message=Es gab eine Service-Unterbrechung. Wir arbeiten daran.
generic.auth.error.next.steps=Versuchen Sie es bitte sp&auml;ter noch einmal. Bitte besuchen Sie die AGOV-Hilfe, wenn das Problem weiterhin besteht.
generic.auth.error.subtitle=Etwas ist schiefgegangen
generic.auth.error.title=Fehler
info.login=Bitte geben Sie Ihre pers&ouml;nlichen Zugangsdaten ein.
language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
languageDropdown.aria.label=Select language
loainfo.description.200=To access the application, we need to verify your data. The process can take up to 2 - 3 days.
loainfo.description.300=To access the application we need to verify your data through one of two processes. You can choose your preferred process in the next step.
loainfo.description.400=To access the application we need you to add your SSN (AHV) number.
loainfo.helper=Your data needs to be verified!
loainfo.later=Later
loainfo.startNow=Do you want to start the process now?
loainfo.startVerification=Start verification
loainfo.title=Verify your data
mauth_usernameless.EID=Continue with CH E-ID
mauth_usernameless.banner.error=Authentication interrupted.<br>Please try again when the page reloads.
mauth_usernameless.banner.info=Scan successful.<br>Please continue in the AGOV access app.
mauth_usernameless.banner.success=Authentication successful!<br>Please wait to be logged in.
mauth_usernameless.cannotLogin=Lost access to your app / security key?
mauth_usernameless.hideQR=Hide QR code
mauth_usernameless.instructions=Log in by scanning the QR code with your AGOV access app
mauth_usernameless.noAccount=Don't have an AGOV-Login yet?
mauth_usernameless.showQR=Show QR code
mauth_usernameless.startRecovery=Start account recovery
mauth_usernameless.useSecurityKey=Use a security key to log in
mauth_usernameless.useSecurityKeyInfo=A physical security key offers a secure way to login without having to use a phone.
op-admin.login=AGOV op admin
op-admin.login.intro.message=Login with your username and password
op-admin.login.loginid=LoginId
language.rm=Rumantsch
languageDropdown.aria.label=Sprache w&auml;hlen
loainfo.description.200=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben verifizieren. Der Vorgang kann bis zu 2 - 3 Tage dauern.
loainfo.description.300=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben durch einen von zwei Vorg&auml;ngen verifizieren. Sie k&ouml;nnen die bevorzugte Methode im n&auml;chsten Schritt ausw&auml;hlen.
loainfo.description.400=Bitte AHV-Nummer angeben, um auf die Applikation zuzugreifen.
loainfo.helper=Ihre pers&ouml;nlichen Daten m&uuml;ssen &uuml;berpr&uuml;ft werden!
loainfo.later=Sp&auml;ter
loainfo.startNow=M&ouml;chten Sie den Prozess jetzt starten?
loainfo.startVerification=Verifikation starten
loainfo.title=Verifizieren Sie Ihre Daten
mauth_usernameless.EID=Mit Schweizer E-ID fortfahren
mauth_usernameless.banner.error=Authentifizierung unterbrochen.<br>Bitte versuchen Sie es erneut, nachdem die Seite neu geladen wurde.
mauth_usernameless.banner.info=Scan erfolgreich.<br>Bitte fahren Sie in der AGOV access App fort.
mauth_usernameless.banner.success=Authentifizierung erfolgreich!<br>Bitte warten Sie, bis Sie eingeloggt werden.
mauth_usernameless.cannotLogin=Zugriff auf App / Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.cannotLogin.accessApp=Zugriff auf App verloren?
mauth_usernameless.cannotLogin.securityKey=Zugriff auf Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.hideQR=QR-Code ausblenden
mauth_usernameless.instructions=Melden Sie sich an, indem Sie den QR-Code mit Ihrer AGOV access App scannen
mauth_usernameless.noAccount=Haben Sie noch kein AGOV-Konto?
mauth_usernameless.selectLoginMethod=Login-Methode w&auml;hlen
mauth_usernameless.showQR=QR-Code anzeigen
mauth_usernameless.startRecovery=Kontowiederherstellung starten
mauth_usernameless.useSecurityKey=Verwenden Sie einen Sicherheitsschl&uuml;ssel, um sich anzumelden
mauth_usernameless.useSecurityKeyInfo=Ein physischer Sicherheitsschl&uuml;ssel bietet eine sichere M&ouml;glichkeit, sich ohne Telefon anzumelden.
op-admin.login=AGOV-op-Admin
op-admin.login.intro.message=Login mit Ihrem Benutzernamen und Passwort
op-admin.login.loginid=LoginID
op-admin.login.password=Passwort
op-admin.login.title=Login
op-admin.logout=AGOV op admin
op-admin.logout.message=You have successfully logged out.
op-admin.logout=AGOV-op-Admin
op-admin.logout.message=Sie haben sich erfolgreich ausgeloggt.
op-admin.logout.title=Logout
op-admin.pwchange.intro.message=Password change required
op-admin.pwchange.newpassword=New password
op-admin.pwchange.newpassword2=Repeat new password
op-admin.pwchange.password=Current password
op-admin.pwchange.title=Password Change
op-admin.pwchange.intro.message=Passwort&auml;nderung erforderlich
op-admin.pwchange.newpassword=Neues Passwort
op-admin.pwchange.newpassword2=Neues Passwort wiederholen
op-admin.pwchange.password=Aktuelles Passwort
op-admin.pwchange.title=&Auml;nderung des Passworts
op-idmlogin.role.accs-mgmt-idm=IDM accessrights management
op-idmlogin.role.accs-mgmt-nonidm=Accessrights management
op-idmlogin.role.idmcfg-mgmt=IDM set-up
op-idmlogin.role.readonly-access=Default access (readonly)
op-idmlogin.role.support-basic=Support cases (recovery, ...)
op-idmlogin.role.support-priv=3rd level support (archiving, off-boarding)
op-idmlogin.role.usr-mgmt=User management (operations)
op-idmlogin.role.usr-unit-mgmt=User and organization management (operations)
op-idmlogin.role.readonly-access=Standardzugriff (Nur Leseberechtigung)
op-idmlogin.role.support-basic=Supportf&auml;lle (Wiederherstellung, ...)
op-idmlogin.role.support-priv=3rd Level Support (Archivierung, Abmeldungen, ...)
op-idmlogin.role.usr-mgmt=Benutzerverwaltung (Betrieb)
op-idmlogin.role.usr-unit-mgmt=Benutzer- und Organisationsverwaltung (Betrieb)
op-idmlogin.select=AGOV idm
op-idmlogin.select.intro=Please select one of the profiles below...
op-idmlogin.select.note=Profiles marked with a * should only be used if required for a specific support or release tasks.
op-idmlogin.select.title=Profile selection
op-onboarding.done.message=On-boarding was successfull. You can now use your AGOV operations access. Please close the browser, before accessing on of the operations application.
op-onboarding.done.title=DONE
op-onboarding.failed.title=ERROR
op-onboarding.intro.message1=To complete your on-boarding for your AGOV operations access, you need either an AGOV or a FED-LOGIN account.
op-onboarding.intro.message2=After clicking on "Continue", you will be redirected for authentication.
op-onboarding.intro.message3=If you are using AGOV, and your account doesn't meet yet the required AGOVaq level, you will be given the possibility to start the required ID verification.
op-idmlogin.select.intro=Bitte w&auml;hlen Sie ein Profil aus...
op-idmlogin.select.note=Mit * markierte Profile sollten nur f&uuml;r bestimmte Support oder Release Aufgaben genutzt werden.
op-idmlogin.select.title=Profilauswahl
op-onboarding.done.message=Das Onboarding war erfolgreich. Sie k&ouml;nnen nun Ihren AGOV-Operations-Zugang verwenden. Bitte schliessen Sie den Browser, bevor Sie auf eine der Operations-Applikationen zugreifen.
op-onboarding.done.title=FERTIG
op-onboarding.failed.title=FEHLER
op-onboarding.intro.message1=Um das Onboarding f&uuml;r Ihren AGOV-Operations-Zugang abzuschliessen, ben&ouml;tigen Sie entweder ein AGOV- oder ein FED-LOGIN-Konto.
op-onboarding.intro.message2=Wenn Sie auf &laquo;Weiter&raquo; klicken, werden Sie zur Authentifizierung weitergeleitet.
op-onboarding.intro.message3=Wenn Sie AGOV verwenden und Ihr Konto noch nicht der erforderlichen AGOVaq-Stufe entspricht, erhalten Sie die M&ouml;glichkeit, die erforderliche Identit&auml;tspr&uuml;fung zu starten.
op-onboarding.intro.title=START
op-onboarding.onboarding=AGOV op on-boarding
op-onboarding.process.message=During the processing something went wrong. Please contact AGOV support if necessary and ask also for a new on-boarding link.
prompt.client=Client
prompt.newpassword=New Password
prompt.newpassword.confirm=Confirm Password
prompt.password=Password
prompt.userid=User-ID
providePhoneNumber.banner=Phone number must be able to receive SMS.<br>This phone number will not be used to contact you.
providePhoneNumber.description=AGOV now supports recovery with your phone number. This will allow you to continue with an SMS during recovery if you have lost access to your recovery code.
providePhoneNumber.errorBanner=Phone numbers do not match. Please try again.
providePhoneNumber.inputLabel=Phone number (optional)
providePhoneNumber.laterModal.description1=Without a phone number, a recovery of your account might take up to 4 days if you lose access to your recovery code.
providePhoneNumber.laterModal.description2=Adding a phone number helps you to recover your account in a matter of minutes.
providePhoneNumber.laterModal.description3=This phone number will not be used to contact you.
providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=An incorrectly stored phone number can make it more difficult to recover your account. To ensure you have recorded your phone number correctly, please repeat it below.
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
providePhoneNumber.saveButtonText=Save
providePhoneNumber.title=Add phone number
pwreset.done.info=Your password was successfully changed. Please click on continue to log in.
pwreset.email.sent=If your user ID exists, an email to reset your password has been sent to you.
pwreset.info.linktext=Password forgotten
pwreset.noticket=Your password reset link is no longer valid. Please generate a new one.
recovery_accessapp_auth.accessAppRegistered=AGOV access app already registered
recovery_accessapp_auth.instruction1=You have already registered a new AGOV access app !!!ACCESS_APP_NAME!!! as part of the recovery process.
recovery_accessapp_auth.instruction2=Please use !!!ACCESS_APP_NAME!!! to identify you.
recovery_check_code.banner.lockedError=Too many invalid input attempts. Please try again in a few minutes.
recovery_check_code.codeIncorrect=Code entered is incorrect. Please try again.
recovery_check_code.enterRecoveryCode=Enter recovery code
recovery_check_code.instruction=Please enter below your personal 12-digit recovery code. You will have received the recovery code as a PDF file during registration or in AGOV me.
recovery_check_code.invalid.code=The code is invalid
recovery_check_code.invalid.code.required=Code required
recovery_check_code.invalid.code.tooLong=The code is too long
recovery_check_code.noAccess=I do not have access to my code
recovery_check_code.noCodeAccess=Are you sure you don't have access to your recovery code?
recovery_check_code.noCodeAccessInstructions=If you have lost access to your recovery code please go to AGOV help in order to contact a AGOV support agent. They will be able to help you with the recovery process.
recovery_check_code.too_many_tries.instruction1=The recovery code you have entered might have expired or you might have tried to enter it too many times.
recovery_check_code.too_many_tries.instruction2=Please go to AGOV help in order to contact a support agent. They will be able to help you with the recovery process.
recovery_check_noCode.banner.error=Too many attempts.
recovery_check_noCode.instruction1=You might have tried to enter the recovery code too many times.
recovery_check_noCode.instruction2=Please close the web browser and start the account recovery again in ten minutes from <a class='link' href='https://agov.ch/me'>https://agov.ch/me</a>.
recovery_code.banner.error=Please reveal your new code to be able to continue.
recovery_code.instruction=Recovery codes help you gain access to your account in case you lost all of your login factors. Please store the recovery code in a safe place.
recovery_code.newRecoveryCode=Introducing Recovery Code
recovery_code.validUntil=Valid until:
recovery_fidokey_auth.button=Start key authentication
recovery_fidokey_auth.fidoInstruction=Click on "Start key authentication"
recovery_fidokey_auth.instruction1=You have already registered a new security key !!!SECURITY_KEY_NAME!!! as part of the recovery process.
recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow the steps below to identify you.
recovery_fidokey_auth.keyRegistered=Security key already registered
recovery_intro_email.banner.error=The link you used has expired. Please enter your email address to receive a new link.
recovery_intro_email.banner.info=Please enter your email address, so we can send you a link to start the recovery process.
recovery_intro_email.important=Important:
recovery_intro_email.process=The recovery process should only be used if you have lost access to your login factors (deleted AGOV access app, lost security key, lost phone, etc.).
recovery_intro_email_sent.banner.button=Didn't receive the email?
recovery_intro_email_sent.banner.success=Thank you! You will receive an email with a recovery link and instructions shortly.
recovery_on_going.finishRecovery=Finish recovery
recovery_on_going.instruction=You have an ongoing recovery process. Part of the recovery process can include an identity verification. To access applications with your AGOV-Login you need to finish the identity verification as well.
recovery_on_going.title=Please finish your recovery process.
recovery_questionnaire_instructions.banner.info=Please note that in certain cases you need access to your recovery code for a successful recovery.
recovery_questionnaire_instructions.explanation=Based on your answers an AGOV-Login recovery seems to be necessary. Please click on continue and follow the instructions on the screen.
recovery_questionnaire_instructions.instruction1=Provide your account email address so we can send you a link to begin the recovery process
recovery_questionnaire_instructions.instruction2=Follow steps to recover your account (steps will vary depending on your account verification level)
recovery_questionnaire_loginfactor.banner.error=Please select an answer.
recovery_questionnaire_loginfactor.no=No
recovery_questionnaire_loginfactor.question=Have you registered more than one login factor (AGOV access app or security key) to your account?
recovery_questionnaire_loginfactor.yes=Yes
recovery_questionnaire_no_recovery.explanation1=Based on your answers, the AGOV recovery option does not seem necessary right now.
recovery_questionnaire_no_recovery.explanation2=Should you need further information, please visit <a class='link' href='https://agov.ch/help' target='_blank'>https://agov.ch/help</a> for support articles.
recovery_questionnaire_no_recovery.instruction1=If you have issues logging in to an application, please visit <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a> and test if you can log in successfully.
recovery_questionnaire_no_recovery.instruction2=If you have several login factors registered but lost access to one of them, please visit <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a> to remove the one you have lost access to.
recovery_questionnaire_reason_selection.answer1=I have trouble logging in, even though I have my app / security key
recovery_questionnaire_reason_selection.answer10=I lost one of my login factors (AGOV access app or security key)
recovery_questionnaire_reason_selection.answer2=I was unable to finish my registration
recovery_questionnaire_reason_selection.answer3=I have deleted, reinstalled, or reset my AGOV access app
recovery_questionnaire_reason_selection.answer4=I have lost my phone / security key
recovery_questionnaire_reason_selection.answer5=I have a new phone and forgot to transfer my AGOV access app
recovery_questionnaire_reason_selection.answer6=I forgot my PIN for the AGOV access app
recovery_questionnaire_reason_selection.answer7=I have my security keys or apps but had trouble logging in
recovery_questionnaire_reason_selection.answer8=I lost access to all my security keys and AGOV access apps
recovery_questionnaire_reason_selection.answer9=I have issues with one of my login factors (deleted, reset, forgotten PIN)
recovery_questionnaire_reason_selection.banner.error=Please select a reason.
recovery_questionnaire_reason_selection.instruction=Please select the reason you are starting the recovery process:
recovery_start_info.banner.warning=You will not be able to use your account until the recovery process has been concluded.
recovery_start_info.instruction=During the recovery process you will register a new login factor. If your account contains any verified information you might also have to go through a verification process to finish the recovery.
recovery_start_info.title=You are about to start the recovery process
op-onboarding.onboarding=AGOV-op-Onboarding
op-onboarding.process.message=Bei der Bearbeitung ist etwas schiefgegangen. Wenden Sie sich wenn n&ouml;tig an den AGOV-Support und fordern Sie einen neuen Onboarding-Link an.
prompt.client=Mandant
prompt.newpassword=Neues Passwort
prompt.newpassword.confirm=Passwort best&auml;tigen
prompt.password=Passwort
prompt.userid=Benutzer-ID
providePhoneNumber.banner=Die Mobilnummer muss f&uuml;r den Empfang von SMS geeignet sein.<br>Diese Mobilnummer wird nicht verwendet, um Sie zu kontaktieren.
providePhoneNumber.description=AGOV erlaubt nun die Wiederherstellung mittels Mobilnummer. So k&ouml;nnen Sie w&auml;hrend der Wiederherstellung mit einer SMS fortfahren, wenn Sie Ihren Wiederherstellungscode verloren haben.
providePhoneNumber.errorBanner=Die Mobilnummern stimmen nicht &uuml;berein. Bitte versuchen Sie es erneut.
providePhoneNumber.inputLabel=Mobilnummer (optional)
providePhoneNumber.laterModal.description1=Ohne Mobilnummer kann die Wiederherstellung Ihres Kontos bis zu 4 Tage dauern, wenn Sie Ihren Wiederherstellungscode verlieren.
providePhoneNumber.laterModal.description2=Durch Hinzuf&uuml;gen einer Mobilnummer k&ouml;nnen Sie Ihr Konto in wenigen Minuten wiederherstellen.
providePhoneNumber.laterModal.description3=Diese Mobilnummer wird nicht verwendet, um Sie zu kontaktieren.
providePhoneNumber.laterModal.title=Ohne Mobilnummer weiterfahren?
providePhoneNumber.modal.description=Eine falsch gespeicherte Mobilnummer kann die Wiederherstellung Ihres Kontos erschweren. Um sicherzustellen, dass Sie Ihre Mobilnummer richtig gespeichert haben, wiederholen Sie sie bitte unten.
providePhoneNumber.modal.inputLabel=Mobilnummer
providePhoneNumber.modal.title=Mobilnummer wiederholen
providePhoneNumber.saveButtonText=Speichern
providePhoneNumber.title=Mobilnummer angeben
pwreset.done.info=Ihr Passwort wurde erfolgreich ge&auml;ndert. Bitte klicken Sie auf Weiter, um sich einzuloggen.
pwreset.email.sent=Wenn Ihre Benutzer-ID existiert, haben Sie eine E-Mail erhalten, um Ihr Passwort zurückzusetzen..
pwreset.info.linktext=Passwort vergessen
pwreset.noticket=Ihr Link ist nicht mehr g&uuml;ltig. Bitte generieren Sie ein Neuen.
recovery_accessapp_auth.accessAppRegistered=AGOV access App schon registriert
recovery_accessapp_auth.instruction1=Sie haben bereits eine neue AGOV access App !!!ACCESS_APP_NAME!!! im Rahmen des Wiederherstellungsprozesses registriert.
recovery_accessapp_auth.instruction2=Verwenden Sie !!!ACCESS_APP_NAME!!! um sich zu identifizieren.
recovery_check_code.banner.lockedError=Zu viele Fehlversuche. Bitte versuchen Sie es in ein paar Minuten noch einmal.
recovery_check_code.codeIncorrect=Der eingegebene Code ist nicht korrekt. Bitte versuchen Sie es erneut.
recovery_check_code.enterRecoveryCode=Wiederherstellungscode eingeben
recovery_check_code.instruction=Bitte geben Sie unten Ihren pers&ouml;nlichen 12-stelligen Wiederherstellungscode ein. Sie haben den Wiederherstellungscode in einer PDF-Datei bei der Registrierung oder in AGOV me erhalten.
recovery_check_code.invalid.code=Code ist ung&uuml;ltig
recovery_check_code.invalid.code.required=Code erforderlich
recovery_check_code.invalid.code.tooLong=Eingegebener Code ist zu lang
recovery_check_code.noAccess=Ich kann auf meinen Code nicht zugreifen
recovery_check_code.noCodeAccess=Sind Sie sicher, dass Sie auf Ihren Wiederherstellungscode nicht zugreifen k&ouml;nnen?
recovery_check_code.noCodeAccessInstructions=Wenn Sie auf Ihren Wiederherstellungscode nicht mehr zugreifen k&ouml;nnen, gehen Sie bitte zur AGOV-Hilfe, um jemanden vom AGOV-Support zu kontaktieren. Die Person wird Sie beim Wiederherstellungsprozess unterst&uuml;tzen.
recovery_check_code.too_many_tries.instruction1=Der von Ihnen eingegebene Wiederherstellungscode ist m&ouml;glicherweise abgelaufen oder Sie haben zu oft versucht, einen Code einzugeben.
recovery_check_code.too_many_tries.instruction2=Gehen Sie bitte zur AGOV-Hilfe, um jemanden vom Support zu kontaktieren. Die Person wird Sie beim Wiederherstellungsprozess unterst&uuml;tzen.
recovery_check_noCode.banner.error=Zu viele Versuche.
recovery_check_noCode.instruction1=M&ouml;glicherweise haben Sie zu oft versucht, den Wiederherstellungscode einzugeben.
recovery_check_noCode.instruction2=Bitte schliessen Sie den Webbrowser und starten Sie die Kontowiederherstellung in zehn Minuten erneut auf <a class='link' href='https://agov.ch/me'>https://agov.ch/me</a>.
recovery_code.banner.error=Bitte enth&uuml;llen Sie den Code, um fortfahren zu k&ouml;nnen.
recovery_code.instruction=Der Wiederherstellungscode hilft Ihnen, Zugriff auf Ihr AGOV-Login zu erhalten, falls Sie alle Ihre Login-Faktoren verloren haben. Bitte bewahren Sie den Wiederherstellungscode an einem sicheren Ort auf.
recovery_code.newRecoveryCode=Einf&uuml;hrung von Wiederherstellungscode
recovery_code.validUntil=G&uuml;ltig bis:
recovery_fidokey_auth.button=Schl&uuml;sselauthentifizierung starten
recovery_fidokey_auth.fidoInstruction=Klicken Sie auf "Schl&uuml;sselauthentifizierung starten"
recovery_fidokey_auth.instruction1=Sie haben bereits einen neuen Sicherheitsschl&uuml;ssel !!!SECURITY_KEY_NAME!!! im Rahmen des Wiederherstellungsprozesses registriert.
recovery_fidokey_auth.instruction2=Bitte verwenden Sie !!!SECURITY_KEY_NAME!!! und befolgen Sie die untenstehenden Schritte, um sich zu identifizieren.
recovery_fidokey_auth.keyRegistered=Sicherheitsschl&uuml;ssel schon registriert
recovery_intro_email.banner.error=Der von Ihnen verwendete Link ist abgelaufen. Bitte geben Sie Ihre E-Mail-Adresse ein, um einen neuen Link zu erhalten.
recovery_intro_email.banner.info=Bitte geben Sie Ihre E-Mail-Adresse ein, damit wir Ihnen einen Link schicken k&ouml;nnen, mit dem Sie den Wiederherstellungsprozess starten.
recovery_intro_email.important=Wichtig:
recovery_intro_email.process=Der Wiederherstellungsprozess sollte nur verwendet werden, wenn Sie den Zugriff auf Ihre Login-Faktoren verloren haben (gel&ouml;schte AGOV access App, verlorener Sicherheitsschl&uuml;ssel, verlorenes Telefon usw.).
recovery_intro_email_sent.banner.button=Keine E-Mail erhalten?
recovery_intro_email_sent.banner.success=Vielen Dank! Sie werden in K&uuml;rze eine E-Mail mit einem Wiederherstellungslink und Anweisungen erhalten.
recovery_on_going.finishRecovery=Wiederherstellung abschliessen
recovery_on_going.instruction=Sie haben einen laufenden Wiederherstellungsprozess. Der Wiederherstellungsprozess kann eine Identit&auml;tspr&uuml;fung umfassen. Um mit Ihrem AGOV-Login auf Applikationen zugreifen zu k&ouml;nnen, m&uuml;ssen Sie auch die Identit&auml;tspr&uuml;fung abschliessen.
recovery_on_going.title=Bitte schliessen Sie Ihren Wiederherstellungsprozess ab.
recovery_questionnaire_instructions.banner.info=Bitte beachten Sie, dass Sie in bestimmten F&auml;llen f&uuml;r eine erfolgreiche Wiederherstellung Zugang zu Ihrem Wiederherstellungscode ben&ouml;tigen.
recovery_questionnaire_instructions.explanation=Aufgrund Ihrer Antworten scheint eine Wiederherstellung Ihres AGOV-Logins erforderlich zu sein. Bitte klicken Sie auf Weiter und folgen Sie den Anweisungen auf dem Bildschirm.
recovery_questionnaire_instructions.instruction1=Geben Sie die E-Mail-Adresse Ihres AGOV-Logins an, damit wir Ihnen einen Link senden k&ouml;nnen, um den Wiederherstellungsprozess zu beginnen
recovery_questionnaire_instructions.instruction2=Folgen Sie den Schritten zur Wiederherstellung Ihres Kontos (die Schritte variieren je nach Verifizierungsstufe Ihres Kontos)
recovery_questionnaire_loginfactor.banner.error=Bitte w&auml;hlen Sie eine Antwort.
recovery_questionnaire_loginfactor.no=Nein
recovery_questionnaire_loginfactor.question=Haben Sie mehr als einen Loginfaktor (AGOV access App oder Sicherheitsschl&uuml;ssel) f&uuml;r Ihren AGOV-Login registriert?
recovery_questionnaire_loginfactor.yes=Ja
recovery_questionnaire_no_recovery.explanation1=Ausgehend von Ihren Antworten scheint eine Wiederherstellung Ihres AGOV-Logins im Moment nicht notwendig zu sein.
recovery_questionnaire_no_recovery.explanation2=Falls Sie weitere Informationen ben&ouml;tigen, besuchen Sie bitte <a class='link' href='https://agov.ch/help' target='_blank'>https://agov.ch/help</a> f&uuml;r Support-Artikel.
recovery_questionnaire_no_recovery.instruction1=Wenn Sie Probleme haben, sich bei einer Anwendung anzumelden, besuchen Sie bitte <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a> und testen Sie, ob Sie sich erfolgreich anmelden k&ouml;nnen.
recovery_questionnaire_no_recovery.instruction2=Wenn Sie mehrere Loginfaktoren registriert haben, aber den Zugriff zu einem von ihnen verloren haben, besuchen Sie bitte <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a>, um den verlorenen Loginfaktor zu entfernen.
recovery_questionnaire_reason_selection.answer1=Ich habe Probleme mich anzumelden, obwohl ich meine App / meinen Sicherheitsschl&uuml;ssel habe
recovery_questionnaire_reason_selection.answer10=Ich habe einen meiner Loginfaktoren verloren (AGOV access App oder Sicherheitsschl&uuml;ssel)
recovery_questionnaire_reason_selection.answer2=Ich konnte meine Registrierung nicht abschliessen
recovery_questionnaire_reason_selection.answer3=Ich habe meine AGOV access App gel&ouml;scht, neu installiert oder zur&uuml;ckgesetzt
recovery_questionnaire_reason_selection.answer4=Ich habe mein Telefon / Sicherheitsschl&uuml;ssel verloren
recovery_questionnaire_reason_selection.answer5=Ich habe ein neues Telefon und habe vergessen, meine AGOV access App zu &uuml;bertragen
recovery_questionnaire_reason_selection.answer6=Ich habe die PIN f&uuml;r meine AGOV access App vergessen
recovery_questionnaire_reason_selection.answer7=Ich habe meine Sicherheitsschl&uuml;ssel oder AGOV access Apps, hatte aber Probleme beim Einloggen
recovery_questionnaire_reason_selection.answer8=Ich habe den Zugriff auf alle meine Sicherheitsschl&uuml;ssel und AGOV access Apps verloren
recovery_questionnaire_reason_selection.answer9=Ich habe Probleme mit einem meiner Loginfaktoren (gel&ouml;scht, zur&uuml;ckgesetzt, vergessene PIN)
recovery_questionnaire_reason_selection.banner.error=Bitte w&auml;hlen Sie einen Grund aus.
recovery_questionnaire_reason_selection.instruction=Bitte w&auml;hlen Sie einen Grund wieso Sie den AGOV recovery Prozess starten:
recovery_start_info.banner.warning=Sie k&ouml;nnen Ihr Konto nicht nutzen, bis der Wiederherstellungsprozess abgeschlossen ist.
recovery_start_info.instruction=W&auml;hrend des Wiederherstellungsprozesses werden Sie einen neuen Login-Faktor registrieren. Wenn Ihr Konto verifizierte Informationen enth&auml;lt, m&uuml;ssen Sie zum Abschluss des Wiederherstellungsprozesses m&ouml;glicherweise auch einen Verifikationsprozess durchlaufen.
recovery_start_info.title=Sie sind dabei, den Wiederherstellungsprozess zu starten
title=NEVIS SSO Portal
title.login=Login
title.pwchange.label=Password Change
title.pwreset=Password Forgotten
user_input.invalid.email=Please enter a valid email address
user_input.invalid.email.required=Field required
user_input.invalid.email.tooLong=Input is too long
title.pwchange.label=Passwort &auml;ndern
title.pwreset=Passwort Vergesssen
user_input.invalid.email=Bitte geben Sie eine g&uuml;ltige E-Mail ein
user_input.invalid.email.required=Erforderliches Feld
user_input.invalid.email.tooLong=Eingabe zu lang

View File

@ -64,12 +64,16 @@ general.fieldRequired=Erforderliches Feld.
general.getStarted=Los geht's
general.goAGOVHelp=Weiter zur AGOV help
general.goAccessApp=Login mit AGOV access
general.goToAccessApp=Zur AGOV access App wechseln
general.help=Hilfe
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Login mit AGOV access App
general.login.securityKey=Login mit Sicherheitsschl&uuml;ssel
general.loginSecurityKey=Sicherheitsschl&uuml;ssel-Login starten
general.moreOptions=WEITERE OPTIONEN
general.or=ODER
general.otherOptions=WEITERE OPTIONEN
general.otherLoginMethods=Andere Login-Methoden
general.recovery=Wiederherstellung
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Als PDF herunterladen
@ -82,6 +86,8 @@ general.recoveryOngoing=Wiederherstellung nicht abgeschlossen
general.register=Registrieren
general.registerNow=Jetzt registrieren!
general.registration=Registrierung
general.registration.dontHaveAnAccountYet=Haben Sie noch kein AGOV-Konto?
general.registration.seeOptions=Registrierungsoptionen ansehen
general.securityKey=Sicherheitsschl&uuml;ssel
general.skip.content=Direkt zum Hauptteil
general.wrongPhoneNumber=Bitte geben Sie eine g&uuml;ltige Telefonnummer ein
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Sprache w&auml;hlen
loainfo.description.200=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben verifizieren. Der Vorgang kann bis zu 2 - 3 Tage dauern.
loainfo.description.300=Um auf diese Applikation zuzugreifen, m&uuml;ssen wir Ihre Angaben durch einen von zwei Vorg&auml;ngen verifizieren. Sie k&ouml;nnen die bevorzugte Methode im n&auml;chsten Schritt ausw&auml;hlen.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Authentifizierung unterbrochen.<br>Bitte versuch
mauth_usernameless.banner.info=Scan erfolgreich.<br>Bitte fahren Sie in der AGOV access App fort.
mauth_usernameless.banner.success=Authentifizierung erfolgreich!<br>Bitte warten Sie, bis Sie eingeloggt werden.
mauth_usernameless.cannotLogin=Zugriff auf App / Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.cannotLogin.accessApp=Zugriff auf App verloren?
mauth_usernameless.cannotLogin.securityKey=Zugriff auf Sicherheitsschl&uuml;ssel verloren?
mauth_usernameless.hideQR=QR-Code ausblenden
mauth_usernameless.instructions=Melden Sie sich an, indem Sie den QR-Code mit Ihrer AGOV access App scannen
mauth_usernameless.noAccount=Haben Sie noch kein AGOV-Login?
mauth_usernameless.noAccount=Haben Sie noch kein AGOV-Konto?
mauth_usernameless.selectLoginMethod=Login-Methode w&auml;hlen
mauth_usernameless.showQR=QR-Code anzeigen
mauth_usernameless.startRecovery=Kontowiederherstellung starten
mauth_usernameless.useSecurityKey=Verwenden Sie einen Sicherheitsschl&uuml;ssel, um sich anzumelden

View File

@ -64,12 +64,16 @@ general.fieldRequired=Field required.
general.getStarted=Get started
general.goAGOVHelp=Go to AGOV help
general.goAccessApp=Login with AGOV access
general.goToAccessApp=Go to AGOV access app
general.help=Help
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Login with Access App
general.login.securityKey=Login with Security Key
general.loginSecurityKey=Start Security key login
general.moreOptions=MORE OPTIONS
general.or=OR
general.otherOptions=OTHER OPTIONS
general.otherLoginMethods=Other login methods
general.recovery=Recovery
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Download as PDF
@ -82,6 +86,8 @@ general.recoveryOngoing=Ongoing recovery
general.register=Register
general.registerNow=Register now!
general.registration=Registration
general.registration.dontHaveAnAccountYet=Don't have an AGOV account yet?
general.registration.seeOptions=See registration options
general.securityKey=Security key
general.skip.content=Skip to main content
general.wrongPhoneNumber=Please enter a valid phone number
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Select language
loainfo.description.200=To access the application, we need to verify your data. The process can take up to 2 - 3 days.
loainfo.description.300=To access the application we need to verify your data through one of two processes. You can choose your preferred process in the next step.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Authentication interrupted.<br>Please try again
mauth_usernameless.banner.info=Scan successful.<br>Please continue in the AGOV access app.
mauth_usernameless.banner.success=Authentication successful!<br>Please wait to be logged in.
mauth_usernameless.cannotLogin=Lost access to your app / security key?
mauth_usernameless.cannotLogin.accessApp=Lost access to your app?
mauth_usernameless.cannotLogin.securityKey=Lost access to your security key?
mauth_usernameless.hideQR=Hide QR code
mauth_usernameless.instructions=Log in by scanning the QR code with your AGOV access app
mauth_usernameless.noAccount=Don't have an AGOV-Login yet?
mauth_usernameless.noAccount=Don't have an AGOV account yet?
mauth_usernameless.selectLoginMethod=Select login method
mauth_usernameless.showQR=Show QR code
mauth_usernameless.startRecovery=Start account recovery
mauth_usernameless.useSecurityKey=Use a security key to log in

View File

@ -64,12 +64,16 @@ general.fieldRequired=Champ requis.
general.getStarted=D&eacute;marrer
general.goAGOVHelp=Rendez-vous sur AGOV help
general.goAccessApp=Login avec AGOV access
general.goToAccessApp=Allez sur votre application AGOV access
general.help=Aide
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=Connexion avec l'application AGOV access
general.login.securityKey=Connexion avec la cl&eacute; de s&eacute;curit&eacute;
general.loginSecurityKey=D&eacute;marrer la connexion avec la cl&eacute; de s&eacute;curit&eacute;
general.moreOptions=PLUS D'OPTIONS
general.or=OU
general.otherOptions=AUTRES OPTIONS
general.otherLoginMethods=Autres m&eacute;thodes de connexion
general.recovery=R&eacute;cup&eacute;ration
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=T&eacute;l&eacute;charger en format PDF
@ -82,6 +86,8 @@ general.recoveryOngoing=R&eacute;cup&eacute;ration en cours
general.register=Cr&eacute;er un compte
general.registerNow=Enregistrez-vous d&egrave;s maintenant!
general.registration=Enregistrement
general.registration.dontHaveAnAccountYet=Vous n'avez pas de compte AGOV ?
general.registration.seeOptions=Voir les options d'enregistrement
general.securityKey=Cl&eacute; de s&eacute;curit&eacute;
general.skip.content=Passer au contenu principal
general.wrongPhoneNumber=Veuillez saisir un num&eacute;ro de t&eacute;l&eacute;phone valable
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=S&eacute;lectionner la langue
loainfo.description.200=Pour acc&eacute;der &agrave; l'application, nous devons v&eacute;rifier vos donn&eacute;es. Ce processus peut prendre jusqu'&agrave; 2 ou 3 jours.
loainfo.description.300=Pour acc&eacute;der &agrave; l'application, nous devons v&eacute;rifier vos donn&eacute;es par le biais de l'une des deux proc&eacute;dures suivantes. Vous pouvez choisir la proc&eacute;dure que vous pr&eacute;f&eacute;rez &agrave; l'&eacute;tape suivante.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Authentification interrompue.<br>Veuillez r&eacu
mauth_usernameless.banner.info=Scan r&eacute;ussi!<br> Veuillez continuer dans l'application AGOV access.
mauth_usernameless.banner.success=Authentification r&eacute;ussie!<br>Veuillez attendre d'&ecirc;tre connect&eacute;.
mauth_usernameless.cannotLogin=Avez-vous perdu l'acc&egrave;s &agrave; votre application / votre cl&eacute; de s&eacute;curit&eacute; ?
mauth_usernameless.cannotLogin.accessApp=Vous avez perdu l'acc&egrave;s &agrave; votre application AGOV access ?
mauth_usernameless.cannotLogin.securityKey=Avez-vous perdu l'acc&egrave;s &agrave; votre cl&eacute; de s&eacute;curit&eacute; ?
mauth_usernameless.hideQR=Cacher le code QR
mauth_usernameless.instructions=Connectez-vous en scannant le code QR avec l'application AGOV access
mauth_usernameless.noAccount=Vous n'avez pas encore d'AGOV-Login ?
mauth_usernameless.noAccount=Vous n'avez pas de compte AGOV ?
mauth_usernameless.selectLoginMethod=S&eacute;l&eacute;ctionner la m&eacute;thode de connexion
mauth_usernameless.showQR=Afficher le code QR
mauth_usernameless.startRecovery=Commencer la r&eacute;cup&eacute;ration du compte
mauth_usernameless.useSecurityKey=Utiliser une cl&eacute; de s&eacute;curit&eacute; pour se connecter

View File

@ -64,12 +64,16 @@ general.fieldRequired=Campo obbligatorio.
general.getStarted=Iniziare
general.goAGOVHelp=Vai ad AGOV help
general.goAccessApp=Login con AGOV access
general.goToAccessApp=Vai all'app AGOV access
general.help=Aiuto
general.help.link=https://agov.ch/help
general.login=Accedere
general.login.accessApp=Accesso con l'App AGOV access
general.login.securityKey=Login con la chiave di sicurezza
general.loginSecurityKey=Iniziare il login con la chiave di sicurezza
general.moreOptions=ALTRE OPZIONI
general.or=O
general.otherOptions=ALTRE OPZIONI
general.otherLoginMethods=Altri metodi di login
general.recovery=Ripristino
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Salva come PDF
@ -82,6 +86,8 @@ general.recoveryOngoing=Ripristino in corso
general.register=Registrarsi
general.registerNow=Si registri ora!
general.registration=Registrazione
general.registration.dontHaveAnAccountYet=Non ha ancora un AGOV account?
general.registration.seeOptions=Vedere le opzioni di registrazione
general.securityKey=Chiave di sicurezza
general.skip.content=Vai al contenuto principale
general.wrongPhoneNumber=Inserire un numero di cellulare valido
@ -94,6 +100,7 @@ language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Selezionare la lingua
loainfo.description.200=Per accedere all'app &egrave; necessaria una verifica dei dati. La procedura pu&ograve; richiedere fino a 2&ndash;3 giorni lavorativi.
loainfo.description.300=Per accedere all'app dobbiamo verificare i suoi dati tramite uno dei due processi. Al prossimo passaggio, pu&ograve; selezionare la procedura di verifica desiderata.
@ -108,9 +115,12 @@ mauth_usernameless.banner.error=Autenticazione interrotta.<br>Riprovare dopo che
mauth_usernameless.banner.info=La scansione &egrave; stata eseguita.<br>Continuare nell'app AGOV access.
mauth_usernameless.banner.success=Autenticazione riuscita!<br>Aspettare di essere connessi.
mauth_usernameless.cannotLogin=Ha perso l'accesso alla sua app/chiave di sicurezza?
mauth_usernameless.cannotLogin.accessApp=Ha perso l'accesso al suo App AGOV access?
mauth_usernameless.cannotLogin.securityKey=Ha perso l'accesso alla sua chiave di sicurezza?
mauth_usernameless.hideQR=Nascondi il codice QR
mauth_usernameless.instructions=Per accedere, scansionare il codice QR con l'app AGOV access.
mauth_usernameless.noAccount=Non ha ancora un AGOV-Login ?
mauth_usernameless.noAccount=Non ha ancora un AGOV account?
mauth_usernameless.selectLoginMethod=Selezionare il metodo di login
mauth_usernameless.showQR=Visualizza il codice QR
mauth_usernameless.startRecovery=Inizia il recupero dell'account
mauth_usernameless.useSecurityKey=Accedere utilizzando una chiave di sicurezza.

View File

@ -0,0 +1,237 @@
agov-ident.done.message=Your AGOV account is now ready for use. Please close this page.
agov-ident.done.title=Done
agov-ident.failed.instruction=You need an AGOV account and pass the suggested data verification to successfully finish the on-boarding. Please try again.
agov-ident.failed.message=Onboarding cancelled or data verification postponed
agov-ident.failed.title=Verification needed
agov-ident.invalid-url.instruction=The link you used to access this page isn't valid. Please make sure you use it as received without any typos or click it directly on the page, where it is published.
agov-ident.invalid-url.message=Link can't be processed
agov-ident.invalid-url.title=Invalid Link
agov-ident.onboarding=Registration & Verification
agov-ident.retry=Try again
darkModeSwitch.aria.label=Activar l'apparientscha stgira
error_1=Please check your input.
error_10=Please select the correct user account.
error_100=Certificate upload not possible. Certificate already exists. Please contact your helpdesk.
error_101=The entered email address is not valid.
error_11=Please use another certficate or login with another credential type.
error_2=Please select another login name.
error_3=Your account will be locked if next authentication fails.
error_4=Your new password does not comply with the security policy. Please choose a different password.
error_5=Error in password confirmation.
error_50=The new password is too short.
error_55=The new password has to differ from old passwords.
error_6=Password change required.
error_7=Change of login ID required.
error_8=Your account has been locked due to repeated authentication failures.
error_81=No access card found, access from internet denied.
error_83=Your access card is no longer valid. Please contact your advisor to get a new access card.
error_9=Session take over failed.
error_97=You are not authorized to access this resource.
error_98=Your account has been locked.
error_99=System problems. Please try later.
error_9901=You need a valid on-boarding link to access this page.
error_9902=The email used for authentication doesn't match the expected one in operations. Please ask for a new on-boarding link.
error_9903=The used IdP didn't send us a valid assertion. Please make sure, you use the correct IdP. Ask the support for a new on-boarding link.
error_9904=Your link is not valid anymore. Please make sure, that you are using the latest Link received from operations. Ask for a new link, if the problem persists.
error_9905=There is a problem with your operations account. Please contact the support.
error_9909=An internal error occured. Please ask the support for a new on-boarding link.
errors.duplicateValue=Your account is already linked with another operations access.
fido2_auth.cancel.fido=L'autentificaziun cun la clav da segirezza &egrave; vegnida interrutta. Controllai che Vossa clav FIDO saja registrada e che Voss e-mail saja correct.
fido2_auth.instruction1=Cliccai sin "Vinavant"
fido2_auth.instruction2=En curt ina fanestra d'autentificaziun vegn ad aviar
fido2_auth.instruction3=Suandai las instrucziuns
fido2_auth.skipInstructions=Sursiglir las instrucziuns la proxima giada
fido2_auth.switchLogin=AS ANNUNZIAR CUN
footer.link=https://agov.ch
footer.link.label=Contact
footer.text=Authentication service of Swiss authorities AGOV - a collaboration between cantons, their municipalities, and the federal administration. -
general.AGOVAccessApp=App AGOV access
general.accessApp=App AGOV access
general.authenticate=Autentifitgar
general.back=Enavos
general.cancel=Interrumper
general.confirm=Confermar
general.contactSupport=Contactar il support
general.continue=Cuntinuar
general.edit=Modifitgar
general.email=E-mail
general.email.address=Adressa dad e-mail
general.entryCode=Endatai il code
general.fieldRequired=Champ obligatoric.
general.getStarted=Cumenzar
general.goAGOVHelp=Vinavant a AGOV help
general.goAccessApp=Login cun AGOV access
general.goToAccessApp=Cuntinuai a Vossa app AGOV access
general.help=Agid
general.help.link=https://agov.ch/help
general.login=Login
general.login.accessApp=As Annunziar cun la App Access
general.login.securityKey=As Annunziar cun la clav da segirezza
general.loginSecurityKey=Iniziar il login cun la clav da segirezza
general.moreOptions=DAPLI OPTIONS
general.or=U
general.otherLoginMethods=Ulteriuras methodas da registraziun
general.recovery=Recuperaziun
general.recovery.help.link=https://help.agov.ch/?c=100recovery
general.recoveryCode.downloadPdf=Telechargiar en furma da PDF
general.recoveryCode.inputLabel=Code da recuperaziun
general.recoveryCode.repeatCodeError=Il code che Vus avais endat&agrave; n'&egrave; betg correct. Controllai che Vus l'hajas arcun&agrave; correctamain ed endatai anc ina giada il code.
general.recoveryCode.repeatCodeModal.description=In code da restabiliment pers u betg arcun&agrave; correctamain po difficultar la recuperaziun da Voss conto. Per verifitgar che Vus hajas arcun&agrave; correctamain Voss code, al repeti qua sutvart per plaschair.
general.recoveryCode.repeatCodeModal.title=Repeti il code da recuperaziun
general.recoveryCode.reveal=Revelar il code da recuperaziun
general.recoveryOngoing=Recuperaziun betg terminada
general.register=Registrar
general.registerNow=As registrai ussa!
general.registration=Registraziun
general.registration.dontHaveAnAccountYet=N'avais Vus anc nagin account AGOV?
general.registration.seeOptions=Mussar las methodas da registraziun
general.securityKey=Clav da segirezza
general.skip.content=Avanzar a la part principala
general.wrongPhoneNumber=Endatai in numer da telefonin valid
generic.auth.error.message=There was a service interruption. We are working on it.
generic.auth.error.next.steps=Please try again later. Please consult AGOV help if the problem persists.
generic.auth.error.subtitle=Something went wrong
generic.auth.error.title=Error
language.de=Deutsch
language.en=English
language.fr=Fran&ccedil;ais
language.it=Italiano
language.rm=Rumantsch
languageDropdown.aria.label=Selecziunar la lingua
loainfo.description.200=Ina verificaziun da Vossas datas &egrave; necessaria per acceder a questa applicaziun. Quest process po durar fin 2 u 3 dis.
loainfo.description.300=Per acceder a questa applicaziun, stuain nus verifitgar Vossas indicaziuns cun in da dus process. Vus pudais selecziunar la metoda preferida en il proxim pass.
loainfo.description.400=Per acceder a questa applicaziun stuais Vus inditgar Voss numer AVS.
loainfo.helper=Vossas datas persunalas ston vegnir verifitgadas!
loainfo.later=Pli tard
loainfo.startNow=Vulais Vus ussa cumenzar cun il process?
loainfo.startVerification=Cumenzar cun la verificaziun
loainfo.title=Verifitgai Vossas datas
mauth_usernameless.EID=Cuntinuar cun la e-ID svizra
mauth_usernameless.banner.error=Autentificaziun interrutta. <br>Empruvai anc ina giada per plaschair, suenter che la pagina &egrave; rechargiada.
mauth_usernameless.banner.info=Scan reuss&igrave; <br>Cuntinuai per plaschair en l'app AGOV access.
mauth_usernameless.banner.success=Autentificaziun reussida! <br>Spetgai fin che Vus essas annunziads.
mauth_usernameless.cannotLogin=Avais Vus pers l'access a l'app / la clav da segirezza?
mauth_usernameless.cannotLogin.accessApp=Avais Vus pers l'access a Vossa app?
mauth_usernameless.cannotLogin.securityKey=Avais Vus pers l'access a Vossa clav da segirezza?
mauth_usernameless.hideQR=Zuppentar il code QR
mauth_usernameless.instructions=Per As annunziar, scannai il code QR cun Vossa app AGOV access
mauth_usernameless.noAccount=N'avais Vus anc nagin conto AGOV?
mauth_usernameless.selectLoginMethod=Selecziunai ina metoda da login
mauth_usernameless.showQR=Mussar il code QR
mauth_usernameless.startRecovery=Cumenzar cun la recuperaziun dal conto
mauth_usernameless.useSecurityKey=Duvrai ina clav da segirezza per As annunziar
mauth_usernameless.useSecurityKeyInfo=Ina clav da segirezza fisica pussibilitescha ina annunzia segira senza telefonin.
op-admin.login=AGOV op admin
op-admin.login.intro.message=Login with your username and password
op-admin.login.loginid=LoginId
op-admin.login.password=Passwort
op-admin.login.title=Login
op-admin.logout=AGOV op admin
op-admin.logout.message=You have successfully logged out.
op-admin.logout.title=Logout
op-admin.pwchange.intro.message=Password change required
op-admin.pwchange.newpassword=New password
op-admin.pwchange.newpassword2=Repeat new password
op-admin.pwchange.password=Current password
op-admin.pwchange.title=Password Change
op-idmlogin.role.accs-mgmt-idm=IDM accessrights management
op-idmlogin.role.accs-mgmt-nonidm=Accessrights management
op-idmlogin.role.idmcfg-mgmt=IDM set-up
op-idmlogin.role.readonly-access=Default access (readonly)
op-idmlogin.role.support-basic=Support cases (recovery, ...)
op-idmlogin.role.support-priv=3rd level support (archiving, off-boarding)
op-idmlogin.role.usr-mgmt=User management (operations)
op-idmlogin.role.usr-unit-mgmt=User and organization management (operations)
op-idmlogin.select=AGOV idm
op-idmlogin.select.intro=Please select one of the profiles below...
op-idmlogin.select.note=Profiles marked with a * should only be used if required for a specific support or release tasks.
op-idmlogin.select.title=Profile selection
op-onboarding.done.message=On-boarding was successfull. You can now use your AGOV operations access. Please close the browser, before accessing on of the operations application.
op-onboarding.done.title=DONE
op-onboarding.failed.title=ERROR
op-onboarding.intro.message1=To complete your on-boarding for your AGOV operations access, you need either an AGOV or a FED-LOGIN account.
op-onboarding.intro.message2=After clicking on "Continue", you will be redirected for authentication.
op-onboarding.intro.message3=If you are using AGOV, and your account doesn't meet yet the required AGOVaq level, you will be given the possibility to start the required ID verification.
op-onboarding.intro.title=START
op-onboarding.onboarding=AGOV op on-boarding
op-onboarding.process.message=During the processing something went wrong. Please contact AGOV support if necessary and ask also for a new on-boarding link.
providePhoneNumber.banner=Il numer da telefonin sto esser capabla da retschaiver SMS. <br>Quest numer da telefonin na vegn betg duvr&agrave; per As contactar.
providePhoneNumber.description=AGOV pussibilitescha ussa la recuperaziun cun agid dal numer da telefonin. Durant la recuperaziun pudais Vus ussa cuntinuar cun in SMS, en cas che Vus avais pers Voss code da recuperaziun.
providePhoneNumber.errorBanner=Ils numers da telefonin na correspundan betg in a l'auter. Empruvai danovamain per plaschair.
providePhoneNumber.inputLabel=Numer da telefonin (opziunal)
providePhoneNumber.laterModal.description1=Senza numer da telefonin po la recuperaziun da Voss conto cuzzar fin 4 dis, en cas che Vus perdais Voss code da recuperaziun.
providePhoneNumber.laterModal.description2=Agiuntar in numer da telefonin pussibilitescha ina recuperaziun da Voss conto en paucas minutas.
providePhoneNumber.laterModal.description3=Quest numer da telefonin na vegn betg duvr&agrave; per As contactar.
providePhoneNumber.laterModal.title=Cuntinuar senza numer da telefonin?
providePhoneNumber.modal.description=In numer da telefonin che n'&egrave; betg vegn&igrave; arcun&agrave; correctamain, po difficultar la recuperaziun da Voss conto. Per verifitgar che Vus hajas arcun&agrave; correctamain Voss numer da telefonin, al repeti qua sutvart per plaschair.
providePhoneNumber.modal.inputLabel=Numer da telefonin
providePhoneNumber.modal.title=Repeti il numer da telefonin
providePhoneNumber.saveButtonText=Arcunar
providePhoneNumber.title=Inditgar in numer da telefonin
recovery_accessapp_auth.accessAppRegistered=AGOV access app already registered
recovery_accessapp_auth.instruction1=You have already registered a new AGOV access app !!!ACCESS_APP_NAME!!! as part of the recovery process.
recovery_accessapp_auth.instruction2=Please use !!!ACCESS_APP_NAME!!! to identify you.
recovery_check_code.banner.lockedError=Too many invalid input attempts. Please try again in a few minutes.
recovery_check_code.codeIncorrect=Code entered is incorrect. Please try again.
recovery_check_code.enterRecoveryCode=Enter recovery code
recovery_check_code.instruction=Please enter below your personal 12-digit recovery code. You will have received the recovery code as a PDF file during registration or in AGOV me.
recovery_check_code.invalid.code=The code is invalid
recovery_check_code.invalid.code.required=Code required
recovery_check_code.invalid.code.tooLong=The code is too long
recovery_check_code.noAccess=I do not have access to my code
recovery_check_code.noCodeAccess=Are you sure you don't have access to your recovery code?
recovery_check_code.noCodeAccessInstructions=If you have lost access to your recovery code please go to AGOV help in order to contact a AGOV support agent. They will be able to help you with the recovery process.
recovery_check_code.too_many_tries.instruction1=The recovery code you have entered might have expired or you might have tried to enter it too many times.
recovery_check_code.too_many_tries.instruction2=Please go to AGOV help in order to contact a support agent. They will be able to help you with the recovery process.
recovery_check_noCode.banner.error=Too many attempts.
recovery_check_noCode.instruction1=You might have tried to enter the recovery code too many times.
recovery_check_noCode.instruction2=Please close the web browser and start the account recovery again in ten minutes from <a class='link' href='https://agov.ch/me'>https://agov.ch/me</a>.
recovery_code.banner.error=Please reveal your new code to be able to continue.
recovery_code.instruction=Recovery codes help you gain access to your account in case you lost all of your login factors. Please store the recovery code in a safe place.
recovery_code.newRecoveryCode=Introducing Recovery Code
recovery_code.validUntil=Valid until:
recovery_fidokey_auth.button=Start key authentication
recovery_fidokey_auth.fidoInstruction=Click on "Start key authentication"
recovery_fidokey_auth.instruction1=You have already registered a new security key !!!SECURITY_KEY_NAME!!! as part of the recovery process.
recovery_fidokey_auth.instruction2=Please use !!!SECURITY_KEY_NAME!!! to follow the steps below to identify you.
recovery_fidokey_auth.keyRegistered=Security key already registered
recovery_intro_email.banner.error=Il link che Vus avais duvr&agrave; &egrave; scad&igrave;. Endatai Vossa adressa dad e-mail per survegnir in nov link.
recovery_intro_email.banner.info=Inditgai Vossa adressa dad e-mail. Nus As tramettain in link, cun il qual Vus pudais cumenzar cun il process da recuperaziun.
recovery_intro_email.important=Impurtant:
recovery_intro_email.process=Il process da restabiliment duess mo vegnir duvr&agrave; en cas che Vus avais pers l'access a Voss facturs da login (stizz&agrave; l'app AGOV access, pers la clav da segirezza, pers il telefonin etc.).
recovery_intro_email_sent.banner.button=N'avais betg retschav&igrave; il e-mail?
recovery_intro_email_sent.banner.success=Grazia fitg! Proximamain vegnis Vus a retschaiver in e-mail cun in link da recupraziun ed instrucziuns.
recovery_on_going.finishRecovery=Finish recovery
recovery_on_going.instruction=You have an ongoing recovery process. Part of the recovery process can include an identity verification. To access applications with your AGOV-Login you need to finish the identity verification as well.
recovery_on_going.title=Please finish your recovery process.
recovery_questionnaire_instructions.banner.info=Resguardai che en tscherts cas stuais Vus avair access a Voss code da recuperaziun per che la recupraziun po reussir.
recovery_questionnaire_instructions.explanation=Sin basa da Vossas respostas pari d'esser necessari da recuperar Voss login AGOV. Cliccai sin Vinavant e suandai las instrucziuns sin il monitur.
recovery_questionnaire_instructions.instruction1=Inditgai l'adressa dad e-mail da Voss login AGOV. Nus As tramettain in link, cun il qual Vus pudais cumenzar il process da recuperaziun
recovery_questionnaire_instructions.instruction2=Suandai ils pass per recuperar Voss conto (ils pass varieschan tenor il nivel da verificaziun da Voss conto)
recovery_questionnaire_loginfactor.banner.error=Per plaschair selecziunai ina resposta.
recovery_questionnaire_loginfactor.no=Na
recovery_questionnaire_loginfactor.question=Avais Vus registr&agrave; pli che in factur da login (app AGOV access u clav da segirezza) per Voss login AGOV?
recovery_questionnaire_loginfactor.yes=Gea
recovery_questionnaire_no_recovery.explanation1=Sin basa da Vossas respostas na pari per il mument betg d'esser necessari da recuperar Voss login AGOV.
recovery_questionnaire_no_recovery.explanation2=Sche Vus duvrais ulteriuras infurmaziuns, consultai <a class='link' href='https://agov.ch/help' target='_blank'>https://agov.ch/help</a> per artitgels da support.
recovery_questionnaire_no_recovery.instruction1=Sche Vus avais difficultads d'As annunziar per in'applicaziun, visitai <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a> e verifitgai sche Vus As pudais annunziar cun success.
recovery_questionnaire_no_recovery.instruction2=Sche Vus avais registr&agrave; plirs facturs da login, ma avais pers l'access ad in dad els, consultai <a class='link' href='https://agov.ch/me' target='_blank'>https://agov.ch/me</a> per stizzar il factur da login pers.
recovery_questionnaire_reason_selection.answer1=Jau hai problems da m'annunziar, malgr&agrave; che jau hai mia app / clav da segirezza
recovery_questionnaire_reason_selection.answer10=Jau hai pers in da mes facturs da login (app AGOV access u clav da segirezza)
recovery_questionnaire_reason_selection.answer2=Jau n'hai betg pud&igrave; terminar mia registraziun
recovery_questionnaire_reason_selection.answer3=Jau hai stizz&agrave; u reinizialis&agrave; mia app AGOV access
recovery_questionnaire_reason_selection.answer4=Jau hai pers mes telefonin / mia clav da segirezza
recovery_questionnaire_reason_selection.answer5=Jau hai in nov telefonin ed hai emblid&agrave; da transferir mia app AGOV access
recovery_questionnaire_reason_selection.answer6=Jau hai emblid&agrave; il PIN per mia app AGOV access
recovery_questionnaire_reason_selection.answer7=Jau hai mias clavs da segirezza u mias apps, hai dentant g&igrave; problems da m'annunziar
recovery_questionnaire_reason_selection.answer8=Jau hai pers l'access a tut mias clavs da segirezza ed apps AGOV
recovery_questionnaire_reason_selection.answer9=Jau hai problems cun in da mes facturs da login (stizz&agrave;, mess enavos, PIN emblid&agrave;)
recovery_questionnaire_reason_selection.banner.error=Per plaschair selecziunai in motiv.
recovery_questionnaire_reason_selection.instruction=Selecziunai per plaschair il motiv, pertge che Vus cumenzais il process da recuperaziun:
recovery_start_info.banner.warning=Vus na pudais betg utilisar Voss conto, fin ch'il process da recuperaziun &egrave; termin&agrave;.
recovery_start_info.instruction=Durant il process da recuperaziun vegnis Vus a registrar in nov factur da login. Sche Voss conto cuntegna infurmaziuns verifitgadas, stuais Vus eventualmain er far in process da verificaziun per pudair terminar il process da restabiliment.
recovery_start_info.title=Vus essas vidlonder da cumenzar cun il process da recuperaziun
user_input.invalid.email=Endatai in'adressa dad e-mail valida
user_input.invalid.email.required=Champ obligatoric
user_input.invalid.email.tooLong=Il text endat&agrave; e memia lung

View File

@ -0,0 +1,43 @@
<svg width="32" height="33" viewBox="0 0 32 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_35368_44718)">
<path d="M32 0.5H0V32.5H32V0.5Z" fill="url(#paint0_linear_35368_44718)"/>
<g filter="url(#filter0_d_35368_44718)">
<path d="M-0.941934 -0.440878L27.5462 -1.28164L-1.78269 28.0473L-0.941934 -0.440878Z" fill="#F8F8F8"/>
</g>
<g clip-path="url(#clip1_35368_44718)">
<path d="M12.1729 6.25476C11.0581 5.84637 9.87613 5.65236 8.68929 5.68293C7.50026 5.65176 6.31606 5.84578 5.19914 6.25476C5.19914 6.25476 5.08412 8.78527 5.57708 10.2148C5.82821 10.9464 6.23676 11.6139 6.77393 12.1704C7.31109 12.7269 7.96379 13.1587 8.686 13.4355C9.40821 13.1587 10.0609 12.7269 10.5981 12.1704C11.1352 11.6139 11.5438 10.9464 11.7949 10.2148C12.2945 8.78527 12.1729 6.25476 12.1729 6.25476Z" fill="#FF0000"/>
<path d="M11.0063 8.44379V9.83721H9.37956V11.464H7.98614V9.83721H6.35938V8.44379H7.98614V6.82031H9.37956V8.44379H11.0063Z" fill="white"/>
</g>
<mask id="mask0_35368_44718" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="16" y="12" width="10" height="6">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.1016 12.5H25.714V17.9928L20.9401 17.4231L16.1016 17.9928V12.5Z" fill="white"/>
</mask>
<g mask="url(#mask0_35368_44718)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.0801 20.1778V17.2169C24.0801 15.5579 22.7352 14.213 21.0762 14.213C19.4172 14.213 18.0724 15.5579 18.0724 17.2169V20.1778C18.0724 21.8368 19.4172 23.1817 21.0762 23.1817C22.7352 23.1817 24.0801 21.8368 24.0801 20.1778ZM21.0762 12.7969C18.6351 12.7969 16.6562 14.7758 16.6562 17.2169V20.1778C16.6562 22.6189 18.6351 24.5978 21.0762 24.5978C23.5173 24.5978 25.4962 22.6189 25.4962 20.1778V17.2169C25.4962 14.7758 23.5173 12.7969 21.0762 12.7969Z" fill="white"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.875 19.9882C14.875 18.7348 15.892 17.7187 17.147 17.7188C18.0957 17.7188 19.2682 17.7188 20.5193 17.7188C22.002 17.7188 23.6005 17.7188 24.8537 17.7188C26.1087 17.7187 27.125 18.7348 27.125 19.9882V25.3079C27.125 26.5612 26.1084 27.5773 24.8534 27.5773C23.8341 27.5773 22.5655 27.5773 21.2485 27.5773C19.8117 27.5773 18.3238 27.5773 17.1473 27.5773C15.8923 27.5773 14.875 26.5612 14.875 25.3079V19.9882Z" fill="white"/>
<path d="M24.291 22.6514H23.2031V22.6494H22.3857V24.0107H19.6641V21.2881H22.3857V21.833H23.2031V20.4717H18.8477V24.8271H23.2031V23.4678H24.291V25.915H17.7578V19.3828H24.291V22.6514Z" fill="#501EB6"/>
</g>
<rect x="0.266667" y="0.766667" width="31.4667" height="31.4667" rx="7.2" stroke="#DACDFB" stroke-width="0.533333"/>
<defs>
<filter id="filter0_d_35368_44718" x="-6.04792" y="-3.94792" width="37.8615" height="37.8615" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1.6"/>
<feGaussianBlur stdDeviation="2.13333"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.258787 0 0 0 0 0.101222 0 0 0 0 0.515867 0 0 0 1 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_35368_44718"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_35368_44718" result="shape"/>
</filter>
<linearGradient id="paint0_linear_35368_44718" x1="16" y1="-1.78125" x2="15.5313" y2="32.5" gradientUnits="userSpaceOnUse">
<stop stop-color="#501EB6"/>
<stop offset="1" stop-color="#734BC5"/>
</linearGradient>
<clipPath id="clip0_35368_44718">
<rect y="0.5" width="32" height="32" rx="7.46667" fill="white"/>
</clipPath>
<clipPath id="clip1_35368_44718">
<rect width="7" height="7.75258" fill="white" transform="translate(5.1875 5.6875)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1,42 @@
<svg width="32" height="33" viewBox="0 0 32 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30567_77798)">
<path d="M32 0.5H0V32.5H32V0.5Z" fill="url(#paint0_linear_30567_77798)"/>
<g filter="url(#filter0_d_30567_77798)">
<path d="M-0.941934 -0.440878L27.5462 -1.28164L-1.78269 28.0473L-0.941934 -0.440878Z" fill="#F8F8F8"/>
</g>
<g clip-path="url(#clip1_30567_77798)">
<path d="M12.1729 6.25476C11.0581 5.84637 9.87613 5.65236 8.68929 5.68293C7.50026 5.65176 6.31606 5.84578 5.19914 6.25476C5.19914 6.25476 5.08412 8.78527 5.57708 10.2148C5.82821 10.9464 6.23676 11.6139 6.77393 12.1704C7.31109 12.7269 7.96379 13.1587 8.686 13.4355C9.40821 13.1587 10.0609 12.7269 10.5981 12.1704C11.1352 11.6139 11.5438 10.9464 11.7949 10.2148C12.2945 8.78527 12.1729 6.25476 12.1729 6.25476Z" fill="#FF0000"/>
<path d="M11.0063 8.44379V9.83721H9.37956V11.464H7.98614V9.83721H6.35938V8.44379H7.98614V6.82031H9.37956V8.44379H11.0063Z" fill="white"/>
</g>
<mask id="mask0_30567_77798" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="16" y="12" width="10" height="6">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.1016 12.5H25.714V17.9928L20.9401 17.4231L16.1016 17.9928V12.5Z" fill="white"/>
</mask>
<g mask="url(#mask0_30567_77798)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.0801 20.1778V17.2169C24.0801 15.5579 22.7352 14.213 21.0762 14.213C19.4172 14.213 18.0724 15.5579 18.0724 17.2169V20.1778C18.0724 21.8368 19.4172 23.1817 21.0762 23.1817C22.7352 23.1817 24.0801 21.8368 24.0801 20.1778ZM21.0762 12.7969C18.6351 12.7969 16.6562 14.7758 16.6562 17.2169V20.1778C16.6562 22.6189 18.6351 24.5978 21.0762 24.5978C23.5173 24.5978 25.4962 22.6189 25.4962 20.1778V17.2169C25.4962 14.7758 23.5173 12.7969 21.0762 12.7969Z" fill="white"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.875 19.9882C14.875 18.7348 15.892 17.7187 17.147 17.7188C18.0957 17.7188 19.2682 17.7188 20.5193 17.7188C22.002 17.7188 23.6005 17.7188 24.8537 17.7188C26.1087 17.7187 27.125 18.7348 27.125 19.9882V25.3079C27.125 26.5612 26.1084 27.5773 24.8534 27.5773C23.8341 27.5773 22.5655 27.5773 21.2485 27.5773C19.8117 27.5773 18.3238 27.5773 17.1473 27.5773C15.8923 27.5773 14.875 26.5612 14.875 25.3079V19.9882Z" fill="white"/>
<path d="M24.291 22.6514H23.2031V22.6494H22.3857V24.0107H19.6641V21.2881H22.3857V21.833H23.2031V20.4717H18.8477V24.8271H23.2031V23.4678H24.291V25.915H17.7578V19.3828H24.291V22.6514Z" fill="#501EB6"/>
</g>
<defs>
<filter id="filter0_d_30567_77798" x="-6.04792" y="-3.94792" width="37.8615" height="37.8615" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1.6"/>
<feGaussianBlur stdDeviation="2.13333"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.258787 0 0 0 0 0.101222 0 0 0 0 0.515867 0 0 0 1 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_30567_77798"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_30567_77798" result="shape"/>
</filter>
<linearGradient id="paint0_linear_30567_77798" x1="16" y1="-1.78125" x2="15.5313" y2="32.5" gradientUnits="userSpaceOnUse">
<stop stop-color="#501EB6"/>
<stop offset="1" stop-color="#734BC5"/>
</linearGradient>
<clipPath id="clip0_30567_77798">
<rect y="0.5" width="32" height="32" rx="7.46667" fill="white"/>
</clipPath>
<clipPath id="clip1_30567_77798">
<rect width="7" height="7.75258" fill="white" transform="translate(5.1875 5.6875)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1,50 +1,52 @@
<svg width="344" height="237" viewBox="0 0 344 237" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.6" d="M1.35591 89.8169C14.3295 38.6158 114.069 73.5098 174.196 38.7133C234.323 3.91682 355.867 38.7133 343.062 95.4651C330.258 152.217 272.701 120.734 233.47 190.742C194.238 260.75 44.988 244.594 59.0602 180.799C73.1323 117.005 -11.6176 141.018 1.35591 89.8169Z" fill="white"/>
<g clip-path="url(#clip0_1637_27478)">
<path d="M187.747 2.19531H83.262V223.235H187.747V2.19531Z" fill="#ECECEC"/>
<path d="M180.81 8.7998H90.3286V223.198H180.81V8.7998Z" fill="#C1C1C1"/>
<path d="M180.072 9.5376H91.0667V223.198H180.072V9.5376Z" fill="#ECECEC"/>
<path d="M179.057 126.702C179.057 129.063 177.157 130.963 174.795 130.963C172.433 130.963 170.533 129.063 170.533 126.702C170.533 124.341 172.433 122.44 174.795 122.44C177.157 122.44 179.057 124.341 179.057 126.702Z" fill="black"/>
<path d="M174.389 128.657C172.932 128.657 171.622 128.122 170.607 127.237C170.884 129.321 172.655 130.945 174.814 130.945C177.175 130.945 179.076 129.045 179.076 126.683C179.076 126.554 179.057 126.444 179.039 126.314C177.987 127.735 176.308 128.657 174.389 128.657Z" fill="#2B2931"/>
<path d="M179.02 126.333C177.71 129.377 172.526 129.561 168.633 126.923C163.835 123.676 161.677 127.421 161.677 126.148C161.677 124.875 163.835 122.994 170.773 125.263C174.352 126.425 179.002 126.333 179.002 126.333H179.02Z" fill="#453F4F"/>
<path d="M168.485 126.093C165.016 123.824 163.024 125.263 161.843 126.407C162.396 126.425 164.573 124.156 168.633 126.923C172.452 129.506 177.489 129.358 178.928 126.517C176.548 128.233 171.695 128.196 168.485 126.093Z" fill="black"/>
<svg width="320" height="469" viewBox="0 0 320 469" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.6" d="M199.665 2.0889C269.4 19.7585 221.875 155.602 269.267 237.493C316.659 319.383 269.267 484.924 191.973 467.484C114.678 450.044 157.557 371.654 62.2084 318.222C-33.1406 264.79 -11.1366 61.5147 75.7496 80.6806C162.636 99.8465 129.931 -15.5807 199.665 2.0889Z" fill="white"/>
<g clip-path="url(#clip0_30430_71008)">
<path d="M179.58 59.5938H37.2734V360.644H179.58V59.5938Z" fill="#EFE8FC"/>
<path d="M170.132 68.5938H46.8984V360.599H170.132V68.5938Z" fill="#9268E9"/>
<path d="M169.129 69.5938H47.9062V360.594H169.129V69.5938Z" fill="#EFE8FC"/>
<path d="M167.742 229.163C167.742 232.379 165.154 234.967 161.938 234.967C158.721 234.967 156.133 232.379 156.133 229.163C156.133 225.947 158.721 223.359 161.938 223.359C165.154 223.359 167.742 225.947 167.742 229.163Z" fill="black"/>
<path d="M161.386 231.824C159.401 231.824 157.616 231.095 156.234 229.889C156.611 232.728 159.024 234.939 161.964 234.939C165.18 234.939 167.769 232.351 167.769 229.135C167.769 228.959 167.744 228.809 167.718 228.633C166.286 230.567 163.999 231.824 161.386 231.824Z" fill="#2B2931"/>
<path d="M167.692 228.662C165.908 232.807 158.846 233.058 153.544 229.466C147.01 225.044 144.07 230.144 144.07 228.41C144.07 226.677 147.01 224.114 156.459 227.204C161.334 228.787 167.667 228.662 167.667 228.662H167.692Z" fill="#453F4F"/>
<path d="M153.343 228.33C148.619 225.24 145.905 227.2 144.297 228.757C145.051 228.782 148.016 225.692 153.544 229.461C158.746 232.978 165.606 232.777 167.566 228.908C164.325 231.245 157.716 231.194 153.343 228.33Z" fill="black"/>
<ellipse cx="49" cy="49" rx="49" ry="49" transform="matrix(1 4.47725e-10 2.52295e-06 1 59.3906 83.2031)" fill="#DACDFB"/>
<path d="M131.992 131.461L123.821 131.461L123.821 131.41L117.696 131.41L117.696 141.618L97.2794 141.618L97.2793 121.201L117.696 121.201L117.696 125.285L123.821 125.285L123.821 115.076L91.1543 115.076L91.1544 147.743L123.821 147.743L123.821 137.586L131.992 137.586L131.992 156.001L82.9923 156.001L82.9922 107L131.992 107L131.992 131.461Z" fill="#501EB6"/>
</g>
<path d="M235.685 215.358H231.608L229.667 197.306H235.685V215.358Z" fill="#EDC4A6"/>
<path d="M238.694 223.382H235.203L234.58 220.139L232.984 223.382H223.726C223.282 223.382 222.85 223.242 222.492 222.983C222.135 222.725 221.871 222.36 221.739 221.943C221.607 221.527 221.613 221.079 221.758 220.666C221.903 220.253 222.178 219.897 222.543 219.649L229.937 214.625V211.347L237.713 211.803L238.694 223.382Z" fill="#2F2E41"/>
<path d="M264.77 210.434L260.845 213.352L247.72 199.606L253.513 195.299L264.77 210.434Z" fill="#EDC4A6"/>
<path d="M270.787 214.629L268.039 216.58L265.619 214.451L266.292 217.821L259.004 222.996C258.654 223.244 258.231 223.379 257.796 223.381C257.36 223.383 256.936 223.252 256.584 223.008C256.232 222.763 255.971 222.417 255.839 222.021C255.707 221.625 255.712 221.199 255.852 220.805L258.683 212.834L256.733 210.33L263.126 206.332L270.787 214.629Z" fill="#2F2E41"/>
<path d="M241.275 122.087C241.275 122.087 250.365 129.748 246.171 151.588L241.05 172.988L257.749 200.013L252.425 206.332L230.716 177.081L222.849 159.079L220.642 127.041L241.275 122.087Z" fill="#2F2E41"/>
<path d="M227.205 164.209L226.659 172.597L228.329 208.338L236.189 206.98L237.691 181.532L227.205 164.209Z" fill="#2F2E41"/>
<path d="M220.016 119.278C219.926 119.721 219.932 120.184 220.033 120.624C220.135 121.064 220.33 121.468 220.6 121.8C220.739 121.969 220.494 122.195 220.356 122.027C220.059 121.659 219.845 121.213 219.731 120.727C219.617 120.241 219.609 119.73 219.705 119.239C219.711 119.192 219.732 119.149 219.764 119.119C219.796 119.089 219.836 119.075 219.878 119.078C219.919 119.084 219.956 119.108 219.982 119.145C220.008 119.182 220.021 119.23 220.016 119.278Z" fill="white"/>
<path d="M240.585 76.9776C239.931 72.3993 239.11 67.4838 235.727 64.1788C234.653 63.1301 233.368 62.2998 231.949 61.7379C230.53 61.176 229.006 60.8941 227.47 60.9093C225.933 60.9244 224.416 61.2363 223.01 61.8262C221.603 62.416 220.336 63.2715 219.286 64.3412C216.822 66.8488 215.735 70.3698 215.635 73.8056C215.536 77.2413 218.749 95.6889 219.639 99.0195C224.346 99.1092 226.607 83.1816 230.927 81.3961C232.008 80.9486 233.071 80.4427 234.212 80.1654C235.354 79.8882 236.128 91.5126 237.19 91.9991H240.7C241.177 92.8464 240.7 84.4772 240.7 82.4714C240.7 80.4655 240.721 77.9306 240.585 76.9776Z" fill="#AE5717"/>
<path d="M218.774 104.599L199.308 105.01C199.009 104.5 198.566 104.087 198.034 103.82C197.501 103.554 196.902 103.446 196.308 103.51C195.715 103.574 195.153 103.807 194.691 104.18C194.229 104.554 193.887 105.051 193.707 105.613C193.526 106.175 193.515 106.776 193.675 107.344C193.834 107.912 194.157 108.422 194.605 108.812C195.053 109.202 195.605 109.455 196.196 109.54C196.787 109.626 197.39 109.54 197.932 109.293C200.514 109.438 220.712 112.268 221.917 110.444C223.14 108.593 229.668 102.06 229.668 102.06L224.65 95.0078L218.774 104.599Z" fill="#EDC4A6"/>
<path d="M226.659 81.97C231.644 81.97 235.685 77.9288 235.685 72.9437C235.685 67.9587 231.644 63.9175 226.659 63.9175C221.674 63.9175 217.633 67.9587 217.633 72.9437C217.633 77.9288 221.674 81.97 226.659 81.97Z" fill="#EDC4A6"/>
<path d="M225.656 88.489C225.656 87.6867 224.987 82.9726 224.653 81.4682C226.325 80.6325 233.045 78.8282 233.679 79.4626C234.181 79.9643 234.682 85.9819 235.184 87.9876C233.011 88.3219 225.656 89.2914 225.656 88.489Z" fill="#EDC4A6"/>
<path d="M238.154 91.435C237.103 89.3616 236.592 86.8002 234.35 86.128C232.836 85.6741 226.712 86.3543 225.332 87.1206C223.037 88.3951 225.117 90.7834 223.763 93.0183C222.291 95.448 218.291 100.324 216.819 102.753C215.807 104.424 219.215 109.326 218.668 111.197C218.121 113.069 218.095 115.169 219.027 116.884C219.861 118.419 218.654 119.777 219.493 121.31C220.365 122.904 221.436 128.864 220.624 130.489L220.08 132.105C225.475 132.419 230.011 126.034 235.373 125.362C236.704 125.195 238.087 124.976 239.184 124.211C240.801 123.083 241.44 121.036 241.839 119.118C243.761 109.741 242.464 99.9974 238.154 91.435Z" fill="#3F3D56"/>
<g clip-path="url(#clip1_1637_27478)">
<path d="M210 117.53L206.959 120.933L171.158 88.4391C170.301 87.6616 170.228 86.3349 170.996 85.4763L171.257 85.1841C172.024 84.3255 173.341 84.2598 174.198 85.0374L209.999 117.531L210 117.53Z" fill="#734BC5"/>
<path d="M178.562 90.7666L171.509 98.6599C171.366 98.8197 171.119 98.8332 170.958 98.6874L168.947 96.8617C168.787 96.717 168.773 96.4683 168.917 96.3072L175.97 88.4139L178.562 90.7666Z" fill="#734BC5"/>
<path d="M177.799 101.808L182.94 96.0556C183.148 95.8232 183.128 95.4641 182.896 95.2536L181.144 93.6632C180.912 93.4527 180.555 93.4705 180.348 93.7029L175.207 99.4557C174.999 99.6881 175.019 100.047 175.251 100.258L177.003 101.848C177.235 102.059 177.591 102.041 177.799 101.808Z" fill="#734BC5"/>
<path d="M176.348 98.7764L179.531 95.2148L175.505 91.5612L172.322 95.1227L176.348 98.7764Z" fill="#734BC5"/>
<path d="M171.684 88.9172C171.702 88.8983 178.75 95.268 187.425 103.141C196.104 111.018 203.124 117.416 203.106 117.435C203.089 117.454 196.043 111.085 187.364 103.21C178.687 95.3359 171.667 88.9362 171.683 88.9178L171.684 88.9172Z" fill="#1E1656"/>
<path d="M204.025 111.966L200.882 115.483C200.464 115.951 199.747 115.987 199.28 115.563L199.122 115.42C198.656 114.996 198.616 114.274 199.034 113.806L202.177 110.289C202.595 109.821 203.312 109.785 203.779 110.209L203.937 110.352C204.404 110.776 204.443 111.498 204.025 111.966Z" fill="#734BC5"/>
<path d="M200.272 108.562L197.129 112.079C196.711 112.546 195.993 112.582 195.527 112.159L195.369 112.015C194.902 111.592 194.863 110.869 195.28 110.401L198.424 106.884C198.841 106.416 199.559 106.381 200.025 106.804L200.185 106.949C200.651 107.372 200.691 108.095 200.273 108.563L200.272 108.562Z" fill="#734BC5"/>
<path d="M198.982 113.878C198.963 113.86 199.673 113.052 200.566 112.069C201.459 111.087 202.198 110.306 202.217 110.323C202.236 110.341 201.526 111.149 200.633 112.132C199.74 113.112 199.001 113.895 198.984 113.877L198.982 113.878Z" fill="#1E1656"/>
<path d="M201.006 115.335C200.987 115.318 201.66 114.535 202.509 113.586C203.358 112.636 204.06 111.88 204.079 111.898C204.098 111.915 203.425 112.698 202.576 113.649C201.727 114.597 201.026 115.355 201.007 115.337L201.006 115.335Z" fill="#1E1656"/>
<path d="M195.253 110.436C195.234 110.418 195.937 109.603 196.822 108.612C197.706 107.622 198.44 106.833 198.458 106.849C198.477 106.867 197.775 107.682 196.889 108.673C196.004 109.663 195.271 110.452 195.253 110.436Z" fill="#1E1656"/>
<path d="M197.16 112.047C197.141 112.029 197.841 111.226 198.724 110.251C199.606 109.276 200.336 108.499 200.355 108.517C200.374 108.534 199.674 109.338 198.791 110.313C197.909 111.288 197.179 112.064 197.16 112.047Z" fill="#1E1656"/>
<path d="M244.868 349.899H239.314L236.672 325.312H244.868V349.899Z" fill="#EDC4A6"/>
<path d="M248.971 360.829H244.217L243.368 356.412L241.195 360.829H228.585C227.98 360.829 227.392 360.639 226.905 360.286C226.418 359.934 226.058 359.438 225.878 358.87C225.699 358.302 225.708 357.693 225.905 357.13C226.102 356.568 226.477 356.083 226.974 355.745L237.044 348.902V344.438L247.636 345.06L248.971 360.829Z" fill="#2F2E41"/>
<path d="M284.487 343.191L279.141 347.165L261.266 328.443L269.155 322.578L284.487 343.191Z" fill="#EDC4A6"/>
<path d="M292.684 348.903L288.942 351.56L285.646 348.661L286.563 353.25L276.636 360.298C276.16 360.636 275.583 360.82 274.99 360.823C274.397 360.825 273.819 360.647 273.34 360.314C272.86 359.981 272.505 359.51 272.326 358.97C272.146 358.431 272.152 357.85 272.343 357.314L276.199 346.458L273.542 343.047L282.251 337.602L292.684 348.903Z" fill="#2F2E41"/>
<path d="M252.484 222.867C252.484 222.867 264.865 233.302 259.153 263.047L252.179 292.193L274.923 329L267.671 337.606L238.104 297.767L227.389 273.25L224.383 229.615L252.484 222.867Z" fill="#2F2E41"/>
<path d="M233.322 280.234L232.578 291.658L234.853 340.336L245.558 338.486L247.604 303.828L233.322 280.234Z" fill="#2F2E41"/>
<path d="M223.53 219.038C223.406 219.642 223.414 220.272 223.553 220.872C223.692 221.471 223.957 222.022 224.325 222.473C224.515 222.704 224.181 223.012 223.993 222.783C223.588 222.282 223.296 221.674 223.141 221.012C222.987 220.35 222.975 219.654 223.106 218.985C223.114 218.921 223.142 218.863 223.186 218.822C223.23 218.781 223.285 218.761 223.341 218.766C223.397 218.774 223.448 218.806 223.484 218.857C223.519 218.908 223.536 218.973 223.53 219.038Z" fill="white"/>
<path d="M251.546 161.432C250.655 155.197 249.538 148.502 244.93 144.001C243.467 142.572 241.717 141.442 239.784 140.676C237.852 139.911 235.776 139.527 233.684 139.548C231.592 139.568 229.525 139.993 227.61 140.796C225.694 141.6 223.969 142.765 222.537 144.222C219.183 147.637 217.701 152.433 217.566 157.112C217.43 161.792 221.807 186.917 223.018 191.453C229.43 191.575 232.509 169.882 238.393 167.45C239.865 166.841 241.313 166.152 242.867 165.774C244.422 165.396 245.476 181.229 246.922 181.891H251.703C252.353 183.045 251.703 171.647 251.703 168.915C251.703 166.183 251.732 162.73 251.546 161.432Z" fill="#AE5717"/>
<path d="M221.837 199.047L195.325 199.607C194.918 198.912 194.315 198.349 193.59 197.987C192.864 197.624 192.048 197.477 191.239 197.564C190.431 197.651 189.666 197.968 189.037 198.477C188.408 198.985 187.942 199.663 187.696 200.429C187.45 201.194 187.435 202.013 187.652 202.786C187.87 203.56 188.31 204.254 188.919 204.785C189.529 205.316 190.282 205.661 191.086 205.777C191.891 205.893 192.712 205.776 193.451 205.44C196.967 205.638 224.476 209.492 226.117 207.008C227.783 204.487 236.674 195.589 236.674 195.589L229.84 185.984L221.837 199.047Z" fill="#EDC4A6"/>
<path d="M232.583 168.228C239.372 168.228 244.876 162.724 244.876 155.934C244.876 149.145 239.372 143.641 232.583 143.641C225.793 143.641 220.289 149.145 220.289 155.934C220.289 162.724 225.793 168.228 232.583 168.228Z" fill="#EDC4A6"/>
<path d="M231.21 177.107C231.21 176.014 230.299 169.594 229.844 167.545C232.12 166.407 241.274 163.949 242.137 164.813C242.82 165.497 243.503 173.692 244.186 176.424C241.227 176.879 231.21 178.2 231.21 177.107Z" fill="#EDC4A6"/>
<path d="M248.238 181.114C246.805 178.291 246.109 174.802 243.056 173.886C240.994 173.268 232.654 174.195 230.775 175.238C227.649 176.974 230.481 180.227 228.637 183.271C226.632 186.58 221.184 193.221 219.179 196.53C217.801 198.805 222.443 205.482 221.698 208.03C220.953 210.579 220.917 213.439 222.187 215.775C223.323 217.866 221.679 219.716 222.822 221.803C224.01 223.974 225.468 232.092 224.362 234.305L223.622 236.506C230.969 236.933 237.148 228.238 244.45 227.322C246.263 227.094 248.146 226.797 249.641 225.754C251.842 224.218 252.713 221.43 253.257 218.818C255.874 206.047 254.108 192.776 248.238 181.114Z" fill="#3F3D56"/>
<g clip-path="url(#clip1_30430_71008)">
<path d="M209.891 216.664L205.749 221.299L156.988 177.043C155.822 175.984 155.723 174.177 156.768 173.008L157.123 172.61C158.168 171.441 159.962 171.351 161.129 172.41L209.889 216.666L209.891 216.664Z" fill="#734BC5"/>
<path d="M167.078 180.211L157.471 190.961C157.277 191.179 156.941 191.197 156.722 190.999L153.982 188.512C153.765 188.315 153.745 187.977 153.941 187.757L163.548 177.007L167.078 180.211Z" fill="#734BC5"/>
<path d="M166.033 195.244L173.035 187.409C173.318 187.093 173.291 186.604 172.975 186.317L170.588 184.151C170.273 183.864 169.787 183.888 169.504 184.205L162.503 192.04C162.22 192.356 162.247 192.846 162.562 193.132L164.949 195.298C165.265 195.585 165.75 195.561 166.033 195.244Z" fill="#734BC5"/>
<path d="M164.056 191.116L168.391 186.266L162.908 181.289L158.573 186.14L164.056 191.116Z" fill="#734BC5"/>
<path d="M157.702 177.683C157.725 177.657 167.325 186.333 179.139 197.055C190.961 207.783 200.521 216.497 200.497 216.523C200.474 216.549 190.877 207.875 179.057 197.149C167.239 186.425 157.678 177.709 157.699 177.684L157.702 177.683Z" fill="#1E1656"/>
<path d="M201.751 209.075L197.47 213.866C196.901 214.503 195.924 214.551 195.288 213.975L195.073 213.779C194.437 213.202 194.383 212.218 194.952 211.581L199.233 206.791C199.802 206.154 200.78 206.105 201.415 206.682L201.63 206.877C202.266 207.454 202.32 208.438 201.751 209.075Z" fill="#734BC5"/>
<path d="M196.639 204.441L192.359 209.231C191.789 209.868 190.812 209.917 190.177 209.34L189.962 209.145C189.326 208.568 189.272 207.584 189.841 206.947L194.122 202.156C194.691 201.519 195.668 201.471 196.304 202.047L196.521 202.244C197.156 202.821 197.21 203.806 196.641 204.442L196.639 204.441Z" fill="#734BC5"/>
<path d="M194.883 211.679C194.857 211.655 195.824 210.554 197.04 209.216C198.256 207.878 199.263 206.814 199.288 206.838C199.314 206.862 198.347 207.963 197.131 209.301C195.915 210.636 194.908 211.703 194.885 211.678L194.883 211.679Z" fill="#1E1656"/>
<path d="M197.64 213.669C197.614 213.645 198.53 212.579 199.687 211.286C200.843 209.992 201.799 208.963 201.825 208.987C201.85 209.011 200.934 210.077 199.778 211.371C198.622 212.663 197.666 213.695 197.64 213.671L197.64 213.669Z" fill="#1E1656"/>
<path d="M189.805 206.999C189.779 206.975 190.737 205.864 191.942 204.515C193.147 203.166 194.145 202.092 194.17 202.114C194.196 202.138 193.24 203.248 192.033 204.598C190.828 205.947 189.83 207.021 189.805 206.999Z" fill="#1E1656"/>
<path d="M192.406 209.186C192.38 209.162 193.334 208.068 194.536 206.74C195.738 205.412 196.733 204.355 196.758 204.379C196.784 204.403 195.83 205.497 194.628 206.825C193.426 208.153 192.432 209.21 192.406 209.186Z" fill="#1E1656"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M213.987 114.691L205.009 125.104L215.422 134.082L224.401 123.669L213.987 114.691ZM199.036 125.546L215.865 140.055L230.373 123.227L213.545 108.718L199.036 125.546Z" fill="#734BC5"/>
<path d="M245.336 112.405C244.843 110.214 244.665 100.902 244.665 100.902L235.945 99.4768L238.827 110.497L224.984 125.117C224.984 125.117 225.001 125.155 225.032 125.224C224.431 125.044 223.79 125.048 223.192 125.235C222.595 125.423 222.068 125.784 221.683 126.273C221.297 126.761 221.069 127.354 221.03 127.974C220.99 128.594 221.141 129.212 221.461 129.746C221.782 130.281 222.258 130.708 222.827 130.971C223.396 131.234 224.031 131.321 224.65 131.221C225.269 131.121 225.842 130.838 226.295 130.409C226.748 129.981 227.059 129.427 227.188 128.819C227.228 128.849 227.277 128.865 227.327 128.863C227.377 128.861 227.424 128.842 227.462 128.809C228.977 127.369 245.829 114.595 245.336 112.405Z" fill="#EDC4A6"/>
<path d="M247.649 107.824C246.789 104.464 245.922 101.086 244.472 97.9046C243.021 94.7233 240.944 91.7185 238.024 89.5693C237.09 88.8822 236.046 88.2757 234.875 88.062C233.705 87.8484 232.386 88.0875 231.564 88.8875C230.248 90.1676 230.644 92.2224 231.126 93.9315C232.549 98.9707 233.972 104.01 235.395 109.049C239.503 108.646 243.612 108.243 247.72 107.84L247.649 107.824Z" fill="#3F3D56"/>
<path d="M236.005 67.3424C236.78 69.3934 237.125 71.5897 237.455 73.7678C237.729 75.5754 236.987 90.4844 236.005 91.9991C235.157 93.3055 233.103 94.4985 231.674 95.0078C229.358 95.833 225.465 97.1914 223.149 98.0166C223.952 97.0422 227.601 81.86 227.911 80.634C228.221 79.408 228.256 78.1281 228.013 76.8869C227.777 75.7211 227.219 75.0209 226.734 74.5238C226.734 74.5238 225.155 72.9437 224.653 72.4422C224.152 71.9408 222.647 70.9378 221.143 70.4364C219.639 69.9349 214.151 67.8432 215.887 65.8437C217.623 63.8442 220.026 62.6004 222.487 61.7821C225.671 60.7241 229.347 60.3693 232.186 62.2087C233.979 63.3706 235.229 65.2915 236.005 67.3424Z" fill="#AE5717"/>
<rect x="62" y="223" width="229" height="1" rx="0.5" fill="#757575"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M215.316 212.785L203.088 226.968L217.271 239.196L229.499 225.013L215.316 212.785ZM194.953 227.57L217.873 247.331L237.633 224.411L214.714 204.65L194.953 227.57Z" fill="#734BC5"/>
<path d="M258.016 209.682C257.344 206.699 257.102 194.016 257.102 194.016L245.226 192.075L249.151 207.084L230.297 226.996C230.297 226.996 230.32 227.048 230.362 227.141C229.544 226.897 228.671 226.902 227.857 227.157C227.043 227.412 226.326 227.904 225.8 228.57C225.275 229.236 224.965 230.043 224.911 230.887C224.857 231.732 225.062 232.573 225.499 233.301C225.936 234.029 226.584 234.611 227.359 234.969C228.134 235.327 228.999 235.446 229.842 235.31C230.685 235.173 231.465 234.788 232.082 234.204C232.699 233.62 233.123 232.865 233.299 232.038C233.353 232.079 233.42 232.1 233.488 232.098C233.556 232.095 233.621 232.07 233.671 232.025C235.735 230.063 258.688 212.666 258.016 209.682Z" fill="#EDC4A6"/>
<path d="M261.164 203.446C259.992 198.87 258.811 194.269 256.836 189.936C254.86 185.603 252.032 181.511 248.054 178.584C246.782 177.648 245.36 176.822 243.766 176.531C242.172 176.24 240.375 176.565 239.255 177.655C237.464 179.399 238.003 182.197 238.66 184.525C240.598 191.388 242.535 198.251 244.473 205.115C250.069 204.566 255.664 204.017 261.26 203.468L261.164 203.446Z" fill="#3F3D56"/>
<path d="M245.302 148.309C246.359 151.103 246.828 154.094 247.278 157.061C247.651 159.523 246.641 179.828 245.302 181.891C244.148 183.67 241.351 185.295 239.404 185.989C236.25 187.113 230.947 188.963 227.793 190.087C228.887 188.76 233.857 168.082 234.279 166.412C234.702 164.742 234.749 162.999 234.418 161.309C234.097 159.721 233.337 158.767 232.676 158.09C232.676 158.09 230.525 155.938 229.842 155.255C229.159 154.572 227.11 153.206 225.061 152.523C223.012 151.84 215.538 148.991 217.903 146.268C220.267 143.545 223.54 141.851 226.893 140.736C231.228 139.295 236.235 138.812 240.101 141.317C242.544 142.9 244.246 145.516 245.302 148.309Z" fill="#AE5717"/>
<ellipse cx="162.912" cy="361.503" rx="157.084" ry="0.682972" fill="#8F8F8F"/>
<defs>
<clipPath id="clip0_1637_27478">
<rect width="108.895" height="223.235" fill="white" transform="translate(81.0664)"/>
<clipPath id="clip0_30430_71008">
<rect width="148.312" height="304.04" fill="white" transform="translate(34.2812 56.5938)"/>
</clipPath>
<clipPath id="clip1_1637_27478">
<rect width="62.1808" height="46.1341" fill="white" transform="translate(185.616 145.71) rotate(-108.894)"/>
<clipPath id="clip1_30430_71008">
<rect width="84.6885" height="62.8334" fill="white" transform="translate(176.68 255.039) rotate(-108.894)"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,52 @@
<svg width="320" height="469" viewBox="0 0 320 469" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.6" d="M199.665 2.0889C269.4 19.7585 221.875 155.602 269.267 237.493C316.659 319.383 269.267 484.924 191.973 467.484C114.678 450.044 157.557 371.654 62.2084 318.222C-33.1406 264.79 -11.1366 61.5147 75.7496 80.6806C162.636 99.8465 129.931 -15.5807 199.665 2.0889Z" fill="#453F4F"/>
<g clip-path="url(#clip0_30567_76873)">
<path d="M179.58 59.5938H37.2734V360.644H179.58V59.5938Z" fill="black"/>
<path d="M170.132 68.5938H46.8984V360.599H170.132V68.5938Z" fill="#453F4F"/>
<path d="M169.129 69.5938H47.9062V360.594H169.129V69.5938Z" fill="black"/>
<path d="M167.742 229.163C167.742 232.379 165.154 234.967 161.938 234.967C158.721 234.967 156.133 232.379 156.133 229.163C156.133 225.947 158.721 223.359 161.938 223.359C165.154 223.359 167.742 225.947 167.742 229.163Z" fill="black"/>
<path d="M161.386 231.824C159.401 231.824 157.616 231.095 156.234 229.889C156.611 232.728 159.024 234.939 161.964 234.939C165.18 234.939 167.769 232.351 167.769 229.135C167.769 228.959 167.744 228.809 167.718 228.633C166.286 230.567 163.999 231.824 161.386 231.824Z" fill="#2B2931"/>
<path d="M167.692 228.662C165.908 232.807 158.846 233.058 153.544 229.466C147.01 225.044 144.07 230.144 144.07 228.41C144.07 226.677 147.01 224.114 156.459 227.204C161.334 228.787 167.667 228.662 167.667 228.662H167.692Z" fill="#453F4F"/>
<path d="M153.343 228.33C148.619 225.24 145.905 227.2 144.297 228.757C145.051 228.782 148.016 225.692 153.544 229.461C158.746 232.978 165.606 232.777 167.566 228.908C164.325 231.245 157.716 231.194 153.343 228.33Z" fill="black"/>
<path d="M108.5 83.502C135.397 83.502 157.201 105.306 157.201 132.203C157.201 159.1 135.397 180.904 108.5 180.904C81.6033 180.904 59.799 159.1 59.799 132.203C59.7989 105.306 81.6031 83.502 108.5 83.502Z" fill="#2B2931" stroke="black" stroke-width="0.597561"/>
<path d="M133 132.169H124.827L124.827 132.117H118.702L118.702 142.326H98.2852L98.2852 121.908H118.702L118.702 125.992H124.827L124.827 115.783H92.1602L92.1603 148.451H124.827L124.827 138.294H133L133 156.704H84.0001L84 107.703H133L133 132.169Z" fill="#9268E9"/>
</g>
<path d="M244.868 349.899H239.314L236.672 325.312H244.868V349.899Z" fill="#EDC4A6"/>
<path d="M248.971 360.829H244.217L243.368 356.412L241.195 360.829H228.585C227.98 360.829 227.392 360.639 226.905 360.286C226.418 359.934 226.058 359.438 225.878 358.87C225.699 358.302 225.708 357.693 225.905 357.13C226.102 356.568 226.477 356.083 226.974 355.745L237.044 348.902V344.438L247.636 345.06L248.971 360.829Z" fill="black"/>
<path d="M284.487 343.191L279.141 347.165L261.266 328.443L269.155 322.578L284.487 343.191Z" fill="#EDC4A6"/>
<path d="M292.684 348.903L288.942 351.56L285.646 348.661L286.563 353.25L276.636 360.298C276.16 360.636 275.583 360.82 274.99 360.823C274.397 360.825 273.819 360.647 273.34 360.314C272.86 359.981 272.505 359.51 272.326 358.97C272.146 358.431 272.152 357.85 272.343 357.314L276.199 346.458L273.542 343.047L282.251 337.602L292.684 348.903Z" fill="black"/>
<path d="M252.484 222.867C252.484 222.867 264.865 233.302 259.153 263.047L252.179 292.193L274.923 329L267.671 337.606L238.104 297.767L227.389 273.25L224.383 229.615L252.484 222.867Z" fill="#3B3F4C"/>
<path d="M233.322 280.234L232.578 291.658L234.853 340.336L245.558 338.486L247.604 303.828L233.322 280.234Z" fill="#3B3F4C"/>
<path d="M223.53 219.038C223.406 219.642 223.414 220.272 223.553 220.872C223.692 221.471 223.957 222.022 224.325 222.473C224.515 222.704 224.181 223.012 223.993 222.783C223.588 222.282 223.296 221.674 223.141 221.012C222.987 220.35 222.975 219.654 223.106 218.985C223.114 218.921 223.142 218.863 223.186 218.822C223.23 218.781 223.285 218.761 223.341 218.766C223.397 218.774 223.448 218.806 223.484 218.857C223.519 218.908 223.536 218.973 223.53 219.038Z" fill="white"/>
<path d="M251.546 161.432C250.655 155.197 249.538 148.502 244.93 144.001C243.467 142.572 241.717 141.442 239.784 140.676C237.852 139.911 235.776 139.527 233.684 139.548C231.592 139.568 229.525 139.993 227.61 140.796C225.694 141.6 223.969 142.765 222.537 144.222C219.183 147.637 217.701 152.433 217.566 157.112C217.43 161.792 221.807 186.917 223.018 191.453C229.43 191.575 232.509 169.882 238.393 167.45C239.865 166.841 241.313 166.152 242.867 165.774C244.422 165.396 245.476 181.229 246.922 181.891H251.703C252.353 183.045 251.703 171.647 251.703 168.915C251.703 166.183 251.732 162.73 251.546 161.432Z" fill="#AE5717"/>
<path d="M221.837 199.047L195.325 199.607C194.918 198.912 194.315 198.349 193.59 197.987C192.864 197.624 192.048 197.477 191.239 197.564C190.431 197.651 189.666 197.968 189.037 198.477C188.408 198.985 187.942 199.663 187.696 200.429C187.45 201.194 187.435 202.013 187.652 202.786C187.87 203.56 188.31 204.254 188.919 204.785C189.529 205.316 190.282 205.661 191.086 205.777C191.891 205.893 192.712 205.776 193.451 205.44C196.967 205.638 224.476 209.492 226.117 207.008C227.783 204.487 236.674 195.589 236.674 195.589L229.84 185.984L221.837 199.047Z" fill="#EDC4A6"/>
<path d="M232.583 168.228C239.372 168.228 244.876 162.724 244.876 155.934C244.876 149.145 239.372 143.641 232.583 143.641C225.793 143.641 220.289 149.145 220.289 155.934C220.289 162.724 225.793 168.228 232.583 168.228Z" fill="#EDC4A6"/>
<path d="M231.21 177.107C231.21 176.014 230.299 169.594 229.844 167.545C232.12 166.407 241.274 163.949 242.137 164.813C242.82 165.497 243.503 173.692 244.186 176.424C241.227 176.879 231.21 178.2 231.21 177.107Z" fill="#EDC4A6"/>
<path d="M248.238 181.114C246.805 178.291 246.109 174.802 243.056 173.886C240.994 173.268 232.654 174.195 230.775 175.238C227.649 176.974 230.481 180.227 228.637 183.271C226.632 186.58 221.184 193.221 219.179 196.53C217.801 198.805 222.443 205.482 221.698 208.03C220.953 210.579 220.917 213.439 222.187 215.775C223.323 217.866 221.679 219.716 222.822 221.803C224.01 223.974 225.468 232.092 224.362 234.305L223.622 236.506C230.969 236.933 237.148 228.238 244.45 227.322C246.263 227.094 248.146 226.797 249.641 225.754C251.842 224.218 252.713 221.43 253.257 218.818C255.874 206.047 254.108 192.776 248.238 181.114Z" fill="#DACDFB"/>
<g clip-path="url(#clip1_30567_76873)">
<path d="M209.891 216.664L205.749 221.299L156.988 177.043C155.822 175.984 155.723 174.177 156.768 173.008L157.123 172.61C158.168 171.441 159.962 171.351 161.129 172.41L209.889 216.666L209.891 216.664Z" fill="#9268E9"/>
<path d="M167.078 180.211L157.471 190.961C157.277 191.179 156.941 191.197 156.722 190.999L153.982 188.512C153.765 188.315 153.745 187.977 153.941 187.757L163.548 177.007L167.078 180.211Z" fill="#9268E9"/>
<path d="M166.033 195.244L173.035 187.409C173.318 187.093 173.291 186.604 172.975 186.317L170.588 184.151C170.273 183.864 169.787 183.888 169.504 184.205L162.503 192.04C162.22 192.356 162.247 192.846 162.562 193.132L164.949 195.298C165.265 195.585 165.75 195.561 166.033 195.244Z" fill="#9268E9"/>
<path d="M164.056 191.116L168.391 186.266L162.908 181.289L158.573 186.14L164.056 191.116Z" fill="#9268E9"/>
<path d="M157.702 177.683C157.725 177.657 167.325 186.333 179.139 197.055C190.961 207.783 200.521 216.497 200.497 216.523C200.474 216.549 190.877 207.875 179.057 197.149C167.239 186.425 157.678 177.709 157.699 177.684L157.702 177.683Z" fill="#1E1656"/>
<path d="M201.751 209.075L197.47 213.866C196.901 214.503 195.924 214.551 195.288 213.975L195.073 213.779C194.437 213.202 194.383 212.218 194.952 211.581L199.233 206.791C199.802 206.154 200.78 206.105 201.415 206.682L201.63 206.877C202.266 207.454 202.32 208.438 201.751 209.075Z" fill="#9268E9"/>
<path d="M196.639 204.441L192.359 209.231C191.789 209.868 190.812 209.917 190.177 209.34L189.962 209.145C189.326 208.568 189.272 207.584 189.841 206.947L194.122 202.156C194.691 201.519 195.668 201.471 196.304 202.047L196.521 202.244C197.156 202.821 197.21 203.806 196.641 204.442L196.639 204.441Z" fill="#9268E9"/>
<path d="M194.883 211.679C194.857 211.655 195.824 210.554 197.04 209.216C198.256 207.878 199.263 206.814 199.288 206.838C199.314 206.862 198.347 207.963 197.131 209.301C195.915 210.636 194.908 211.703 194.885 211.678L194.883 211.679Z" fill="#1E1656"/>
<path d="M197.64 213.669C197.614 213.645 198.53 212.579 199.687 211.286C200.843 209.992 201.799 208.963 201.825 208.987C201.85 209.011 200.934 210.077 199.778 211.371C198.622 212.663 197.666 213.695 197.64 213.671L197.64 213.669Z" fill="#1E1656"/>
<path d="M189.805 206.999C189.779 206.975 190.737 205.864 191.942 204.515C193.147 203.166 194.145 202.092 194.17 202.114C194.196 202.138 193.24 203.248 192.033 204.598C190.828 205.947 189.83 207.021 189.805 206.999Z" fill="#1E1656"/>
<path d="M192.406 209.186C192.38 209.162 193.334 208.068 194.536 206.74C195.738 205.412 196.733 204.355 196.758 204.379C196.784 204.403 195.83 205.497 194.628 206.825C193.426 208.153 192.432 209.21 192.406 209.186Z" fill="#1E1656"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M215.316 212.785L203.088 226.968L217.271 239.196L229.499 225.013L215.316 212.785ZM194.953 227.57L217.873 247.331L237.633 224.411L214.714 204.65L194.953 227.57Z" fill="#9268E9"/>
<path d="M258.016 209.682C257.344 206.699 257.102 194.016 257.102 194.016L245.226 192.075L249.151 207.084L230.297 226.996C230.297 226.996 230.32 227.048 230.362 227.141C229.544 226.897 228.671 226.902 227.857 227.157C227.043 227.412 226.326 227.904 225.8 228.57C225.275 229.236 224.965 230.043 224.911 230.887C224.857 231.732 225.062 232.573 225.499 233.301C225.936 234.029 226.584 234.611 227.359 234.969C228.134 235.327 228.999 235.446 229.842 235.31C230.685 235.173 231.465 234.788 232.082 234.204C232.699 233.62 233.123 232.865 233.299 232.038C233.353 232.079 233.42 232.1 233.488 232.098C233.556 232.095 233.621 232.07 233.671 232.025C235.735 230.063 258.688 212.666 258.016 209.682Z" fill="#EDC4A6"/>
<path d="M261.164 203.446C259.992 198.87 258.811 194.269 256.836 189.936C254.86 185.603 252.032 181.511 248.054 178.584C246.782 177.648 245.36 176.822 243.766 176.531C242.172 176.24 240.375 176.565 239.255 177.655C237.464 179.399 238.003 182.197 238.66 184.525C240.598 191.388 242.535 198.251 244.473 205.115C250.069 204.566 255.664 204.017 261.26 203.468L261.164 203.446Z" fill="#DACDFB"/>
<path d="M245.302 148.309C246.359 151.103 246.828 154.094 247.278 157.061C247.651 159.523 246.641 179.828 245.302 181.891C244.148 183.67 241.351 185.295 239.404 185.989C236.25 187.113 230.947 188.963 227.793 190.087C228.887 188.76 233.857 168.082 234.279 166.412C234.702 164.742 234.749 162.999 234.418 161.309C234.097 159.721 233.337 158.767 232.676 158.09C232.676 158.09 230.525 155.938 229.842 155.255C229.159 154.572 227.11 153.206 225.061 152.523C223.012 151.84 215.538 148.991 217.903 146.268C220.267 143.545 223.54 141.851 226.893 140.736C231.228 139.295 236.235 138.812 240.101 141.317C242.544 142.9 244.246 145.516 245.302 148.309Z" fill="#AE5717"/>
<ellipse cx="162.912" cy="361.503" rx="157.084" ry="0.682972" fill="#8F8F8F"/>
<defs>
<clipPath id="clip0_30567_76873">
<rect width="148.312" height="304.04" fill="white" transform="translate(34.2812 56.5938)"/>
</clipPath>
<clipPath id="clip1_30567_76873">
<rect width="84.6885" height="62.8334" fill="white" transform="translate(176.68 255.039) rotate(-108.894)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,18 @@
<svg width="32" height="33" viewBox="0 0 32 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30430_70226)">
<path d="M2.65952 11.9762C2.29528 11.7262 2.20273 11.2282 2.4528 10.8639L5.4511 6.49681C5.70117 6.13257 6.19918 6.04001 6.56342 6.29009L11.5098 9.68612C11.8741 9.93619 11.9666 10.4342 11.7166 10.7984L8.71826 15.1655C8.46819 15.5298 7.97018 15.6223 7.60594 15.3723L2.65952 11.9762Z" fill="#D5D5D5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.65952 11.9762C2.4774 11.8512 2.53249 11.4546 2.78256 11.0903L5.78086 6.72321C6.03094 6.35897 6.3813 6.16505 6.56342 6.29009C6.19918 6.04001 5.70117 6.13257 5.4511 6.49681L2.4528 10.8639C2.20273 11.2282 2.29528 11.7262 2.65952 11.9762Z" fill="black"/>
<path d="M10.1165 7.88556C10.6075 7.15096 11.6032 6.9509 12.3402 7.43829L27.1771 17.2508C27.2031 17.268 27.2276 17.287 27.2523 17.3055C28.1259 17.8945 28.8408 18.7331 29.2718 19.7742C30.4548 22.6318 29.0597 25.923 26.1566 27.1248C24.2488 27.9145 22.1642 27.6058 20.6234 26.49L6.05111 16.8524C5.31406 16.3649 5.11395 15.3742 5.60483 14.6395L10.1165 7.88556ZM27.8031 19.0955C27.7593 19.2223 27.7015 19.3468 27.6234 19.4637L23.1107 26.2166C23.0375 26.3261 22.9518 26.4223 22.8587 26.5076C23.816 26.7492 24.8608 26.6949 25.849 26.2859C28.2613 25.2873 29.4208 22.553 28.4378 20.1785C28.2731 19.7805 28.0573 19.4187 27.8031 19.0955Z" fill="url(#paint0_linear_30430_70226)"/>
<path d="M16.8044 21.2649C16.5888 21.1229 16.5292 20.833 16.6711 20.6174L19.8237 15.8305C19.9657 15.6149 20.2556 15.5552 20.4712 15.6972C20.6867 15.8392 20.7464 16.129 20.6044 16.3446L17.4519 21.1316C17.3099 21.3472 17.02 21.4069 16.8044 21.2649Z" fill="#DACDFB"/>
<path d="M19.1635 21.6321C18.961 21.4987 18.905 21.2265 19.0383 21.024L20.8988 18.199C21.0321 17.9965 21.3044 17.9405 21.5069 18.0738C21.7094 18.2072 21.7654 18.4794 21.632 18.6819L19.7716 21.5069C19.6383 21.7094 19.366 21.7654 19.1635 21.6321Z" fill="#DACDFB"/>
</g>
<defs>
<linearGradient id="paint0_linear_30430_70226" x1="14.9887" y1="14.8016" x2="23.6547" y2="28.8011" gradientUnits="userSpaceOnUse">
<stop stop-color="#6939CB"/>
<stop offset="1" stop-color="#9170D3"/>
</linearGradient>
<clipPath id="clip0_30430_70226">
<rect width="32" height="32" fill="white" transform="translate(0 0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,18 @@
<svg width="32" height="33" viewBox="0 0 32 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_30567_75892)">
<path d="M2.65952 11.9762C2.29528 11.7262 2.20273 11.2282 2.4528 10.8639L5.4511 6.49681C5.70117 6.13257 6.19918 6.04001 6.56342 6.29009L11.5098 9.68612C11.8741 9.93619 11.9666 10.4342 11.7166 10.7984L8.71826 15.1655C8.46819 15.5298 7.97018 15.6223 7.60594 15.3723L2.65952 11.9762Z" fill="#D5D5D5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.65952 11.9762C2.4774 11.8512 2.53249 11.4546 2.78256 11.0903L5.78086 6.72321C6.03094 6.35897 6.3813 6.16505 6.56342 6.29009C6.19918 6.04001 5.70117 6.13257 5.4511 6.49681L2.4528 10.8639C2.20273 11.2282 2.29528 11.7262 2.65952 11.9762Z" fill="black"/>
<path d="M10.1165 7.88556C10.6075 7.15096 11.6032 6.9509 12.3402 7.43829L27.1771 17.2508C27.2031 17.268 27.2276 17.287 27.2523 17.3055C28.1259 17.8945 28.8408 18.7331 29.2718 19.7742C30.4548 22.6318 29.0597 25.923 26.1566 27.1248C24.2488 27.9145 22.1642 27.6058 20.6234 26.49L6.05111 16.8524C5.31406 16.3649 5.11395 15.3742 5.60483 14.6395L10.1165 7.88556ZM27.8031 19.0955C27.7593 19.2223 27.7015 19.3468 27.6234 19.4637L23.1107 26.2166C23.0375 26.3261 22.9518 26.4223 22.8587 26.5076C23.816 26.7492 24.8608 26.6949 25.849 26.2859C28.2613 25.2873 29.4208 22.553 28.4378 20.1785C28.2731 19.7805 28.0573 19.4187 27.8031 19.0955Z" fill="url(#paint0_linear_30567_75892)"/>
<path d="M16.8044 21.2649C16.5888 21.1229 16.5292 20.833 16.6711 20.6174L19.8237 15.8305C19.9657 15.6149 20.2556 15.5552 20.4712 15.6972C20.6867 15.8392 20.7464 16.129 20.6044 16.3446L17.4519 21.1316C17.3099 21.3472 17.02 21.4069 16.8044 21.2649Z" fill="#DACDFB"/>
<path d="M19.1635 21.6321C18.961 21.4987 18.905 21.2265 19.0383 21.024L20.8988 18.199C21.0321 17.9965 21.3044 17.9405 21.5069 18.0738C21.7094 18.2072 21.7654 18.4794 21.632 18.6819L19.7716 21.5069C19.6383 21.7094 19.366 21.7654 19.1635 21.6321Z" fill="#DACDFB"/>
</g>
<defs>
<linearGradient id="paint0_linear_30567_75892" x1="14.9887" y1="14.8016" x2="23.6547" y2="28.8011" gradientUnits="userSpaceOnUse">
<stop stop-color="#6939CB"/>
<stop offset="1" stop-color="#9170D3"/>
</linearGradient>
<clipPath id="clip0_30567_75892">
<rect width="32" height="32" fill="white" transform="translate(0 0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,91 @@
function setValueToSecurityKeyOrAccessAppLabel(element, selectedMethod) {
element.textContent = (selectedMethod === 'securityKey'
? element.dataset.securitykeylabel
: element.dataset.accessapplabel);
}
function changeDisplay(element, displayToAdd, displayToRemove) {
if (element) {
element.classList.remove(displayToRemove);
element.classList.add(displayToAdd);
}
}
function showSecurityKeyModal() {
changeDisplay(securityKeyModal, 'flex', 'hidden');
changeDisplay(accessAppModal, 'hidden', 'block');
changeDisplay(mobileSecurityKeyModal, 'flex', 'hidden');
changeDisplay(mobileAccessAppModal, 'hidden', 'block');
}
function showAccessAppModal() {
changeDisplay(accessAppModal, 'block', 'hidden');
changeDisplay(securityKeyModal, 'hidden', 'flex');
changeDisplay(mobileAccessAppModal, 'block', 'hidden');
changeDisplay(mobileSecurityKeyModal, 'hidden', 'flex');
}
function changeLabelsBasedOnSelectedMethod(selectedMethod) {
labelsToChangeBasedOnSelectedMethod.forEach(label => {
if (label) {
setValueToSecurityKeyOrAccessAppLabel(label, selectedMethod);
}
});
}
const mainContent = document.querySelector('#mainContent');
const mobileLoginContainer = document.querySelector('#mobileLoginContainer');
const mobileSecurityKeyModal = mobileLoginContainer.querySelector('#securityKeyModal');
const mobileAccessAppModal = mobileLoginContainer.querySelector('#accessAppModal');
const desktopTitle = document.querySelector('#desktopTitle');
const mobileSubtitle = document.querySelector('#mobileSubtitle');
const cannotLoginSubtitle = document.querySelector('#cannotLoginSubtitle');
const cannotLoginSubtitleDrawer = document.querySelector('#cannotLoginSubtitleDrawer');
const accessAppModal = document.querySelector('#accessAppModal');
const securityKeyModal = document.querySelector('#securityKeyModal');
const accessAppBtn = document.querySelector('#accessAppLoginBtn');
const securityKeyBtn = document.querySelector('#securityKeyLoginBtn');
const labelsToChangeBasedOnSelectedMethod = [
desktopTitle,
mobileSubtitle,
cannotLoginSubtitle,
cannotLoginSubtitleDrawer
];
document.addEventListener('showAccessAppLogin', () => {
showAccessAppModal();
changeLabelsBasedOnSelectedMethod('accessApp');
});
document.addEventListener('showSecurityKeyLogin', () => {
showSecurityKeyModal();
changeLabelsBasedOnSelectedMethod('securityKey');
});
changeLabelsBasedOnSelectedMethod(mainContent.dataset.lastloginmethod);
if (mainContent.dataset.lastloginmethod === 'securityKey') {
showSecurityKeyModal();
changeDisplay(accessAppBtn, 'block', 'hidden');
changeDisplay(securityKeyBtn, 'hidden', 'block');
}
else {
showAccessAppModal();
changeDisplay(securityKeyBtn, 'block', 'hidden');
changeDisplay(accessAppBtn, 'hidden', 'block');
}
securityKeyBtn.addEventListener('click', () => {
showSecurityKeyModal();
changeDisplay(accessAppBtn, 'block', 'hidden');
changeDisplay(securityKeyBtn, 'hidden', 'block');
changeLabelsBasedOnSelectedMethod('securityKey');
});
accessAppBtn.addEventListener('click', () => {
showAccessAppModal();
changeDisplay(securityKeyBtn, 'block', 'hidden');
changeDisplay(accessAppBtn, 'hidden', 'block');
changeLabelsBasedOnSelectedMethod('accessApp');
});

Some files were not shown because too many files have changed in this diff Show More