Hi all, I have upgraded to CAS 7.0.1 and using MFA provided by Google Authenticator. The problem is that Google Authenticator accounts don't get persisted into the "google_authenticator_registration_record" database table, forcing users to rescan the QR Code again after CAS is restarted.
The tokens, however, get created and stored into "google_authenticator_token" table without any problems. I have turned on TRACE logging and logging Hibernate SQL statements. The part of the log that I think is relevant is attached. You can clearly see from the log that first a token is created and successfully persisted into "Google_Authenticator_Token" table. After that we can see that OneTimeTokenAccountSaveRegistrationAction is logging "Storing account ...". It must be this line in code: https://github.com/apereo/cas/blob/7.0.x/support/cas-server-support-otp-mfa-core/src/main/java/org/apereo/cas/otp/web/flow/OneTimeTokenAccountSaveRegistrationAction.java#L75 However, no account is actually created in the DB :( Tried this with both MySQL and PostgreSQL, same thing happens in both. Attached is the relevant part of my application.properties. As you can see, all the required encryption keys are also nicely provided. And no errors are thrown. I'm out of ideas :( This used to work nicely in CAS 6.5.0. And works when I'm using JSON file for the GAuth registry. But I need to get it working with JPA. Any ideas? cheers, jaa...@cas.user.since.2016 -- - Website: https://apereo.github.io/cas - Gitter Chatroom: https://gitter.im/apereo/cas - List Guidelines: https://goo.gl/1VRrw7 - Contributions: https://goo.gl/mh7qDG --- You received this message because you are subscribed to the Google Groups "CAS Community" group. To unsubscribe from this group and stop receiving emails from it, send an email to cas-user+unsubscr...@apereo.org. To view this discussion on the web visit https://groups.google.com/a/apereo.org/d/msgid/cas-user/1fca213e-e1a4-4731-8370-4f9ca83e5ce1n%40apereo.org.
application.properties
Description: Binary data
2024-03-13 20:03:17,447 DEBUG [org.apereo.cas.gauth.credential.GoogleAuthenticatorOneTimeTokenCredentialValidator] - <Authorizing token [906658] against account [OneTimeTokenAccount(id=1710352997447, validationCode=733634, username=admin, name=, registrationDate=2024-03-13T18:03:17.447723100Z, lastUsedDateTime=null)]> 2024-03-13 20:03:17,448 DEBUG [org.apereo.cas.gauth.web.flow.GoogleAuthenticatorSaveRegistrationAction] - <Successfully validated token [906658]> 2024-03-13 20:03:17,449 DEBUG [org.hibernate.SQL] - < insert into Google_Authenticator_Token (issued_Date_Time, token, user_Id, id) values (?, ?, ?, ?)> 2024-03-13 20:03:17,451 TRACE [org.apereo.cas.otp.web.flow.OneTimeTokenAccountSaveRegistrationAction] - <Storing account [OneTimeTokenAccount(id=1710352997447, validationCode=733634, username=admin, name=, registrationDate=2024-03-13T18:03:17.447723100Z, lastUsedDateTime=null)]> 2024-03-13 20:03:17,451 TRACE [org.apereo.cas.util.cipher.BaseStringCipherExecutor] - <Attempting to encrypt value based on encryption key defined by [cas.authn.mfa.gauth.crypto.encryption.key]> 2024-03-13 20:03:17,456 TRACE [org.apereo.cas.util.jwt.JsonWebTokenEncryptor] - <Encrypting via [A128CBC-HS256]> 2024-03-13 20:03:17,463 TRACE [org.apereo.cas.util.cipher.BaseStringCipherExecutor] - <Attempting to sign value based on signing key defined by [cas.authn.mfa.gauth.crypto.signing.key]> 2024-03-13 20:03:17,463 TRACE [org.apereo.cas.util.jwt.JsonWebTokenSigner] - <Signing id token with key id header value [8b181f26-7583-439d-9201-abc7de67c70e] and algorithm header value [HS512]> 2024-03-13 20:03:17,544 TRACE [org.apereo.cas.util.cipher.BaseStringCipherExecutor] - <Attempting to verify signature based on signing key defined by [cas.authn.mfa.gauth.crypto.signing.key]> 2024-03-13 20:03:17,544 TRACE [org.apereo.cas.util.EncodingUtils] - <Successfully decoded value. Result in Base64url-encoding is [ZXlKNmFYQWlPaUpFUlVZaUxDSmhiR2NpT2lKa2FYSWlMQ0psYm1NaU9pSkJNVEk0UTBKRExVaFRNalUySWl3aVkzUjVJam9pU2xkVUlpd2lkSGx3SWpvaVNsZFVJaXdpYTJsa0lqb2lNMlE1WlRsaVpEWXRaVGN3TkMwME9XVTJMVGt6WVdJdE9USXhOMkZrWW1VeE9XUXpJbjAuLnVCS2hhYjNHcHcwUmsyd3BNRS1hRVEuWnVMRkJES3BGSE8xd2lRVGtrTDY4dVBQcktMajZ2OW1PWkVXOE8teDNHTy1OLUJEQXpLXzNHbHdoVTB6NTJzRC56cm1ZdE4yNUE3LUNiQmU0aGw0V0x3]> 2024-03-13 20:03:17,544 TRACE [org.apereo.cas.util.cipher.BaseStringCipherExecutor] - <Attempting to decrypt value based on encryption key defined by [cas.authn.mfa.gauth.crypto.encryption.key]> 2024-03-13 20:03:17,544 TRACE [org.apereo.cas.util.EncodingUtils] - <Decrypting value...> 2024-03-13 20:03:17,629 TRACE [org.apereo.cas.util.jwt.JsonWebTokenSigner] - <Signing id token with key id header value [646c60a9-66a2-4082-b049-8a8d75a466bf] and algorithm header value [HS512]> 2024-03-13 20:03:17,629 TRACE [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [CookieThemeResolver]> 2024-03-13 20:03:17,629 TRACE [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [SessionThemeResolver]> 2024-03-13 20:03:17,629 TRACE [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [RequestHeaderThemeResolver]> 2024-03-13 20:03:17,629 TRACE [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [RegisteredServiceThemeResolver]> 2024-03-13 20:03:17,629 TRACE [org.apereo.cas.services.web.RegisteredServiceThemeResolver] - <No service is found in the request context. Falling back to the default theme [cas-theme-default]> 2024-03-13 20:03:17,629 TRACE [org.apereo.cas.services.web.RegisteredServiceThemeResolver] - <Storing theme [cas-theme-default] as a request attribute under [theme]> 2024-03-13 20:03:17,630 TRACE [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [FixedThemeResolver]> 2024-03-13 20:03:17,630 TRACE [org.apereo.cas.services.web.ChainingThemeResolver] - <No specific theme could be found. Using default theme [cas-theme-default]> 2024-03-13 20:03:17,630 TRACE [org.apereo.cas.services.web.ThemeViewResolver] - <Attempting to resolve view [gauth/casGoogleAuthenticatorLoginView] via locale [en_US]> 2024-03-13 20:03:17,635 TRACE [org.apereo.cas.services.web.ThemeViewResolver] - <Attempting to locate theme location at [classpath:/templates/cas-theme-default/gauth/casGoogleAuthenticatorLoginView.html]> 2024-03-13 20:03:17,642 TRACE [org.apereo.cas.web.flow.CasDefaultFlowUrlHandler] - <Final flow execution url is [/cas/login?_eventId_submit=Confirm&execution=5abfc3c6-0d2b-4756-8f3c-1a0070a53840_ZXlKaGJHY2lPaUpJVXpVeE1pSXNJblI1Y0NJNklrcFhWQ0lzSW10cFpDSTZJakF6WldZM05XVXpMVFkzWXpndE5HUTFNeTA1WWpRMExUSTVORGxoT0dJd09EZzNNU0o5Lm9GNGhOX0ZuaEtJQlJ4NVR2VUhPT0V2QXVmeWRCVmVVTGlrV01GdDF4M3ZZMVVTWmc3dy1ZMXFYQThNT3R6NUZQYkdpVFRHbkt0UnZRdWxwbVdnb3YxUmR6Zk5iYzd2STVRUHF2b0ZKSDA2VGs4cDZOeEVUaHlESEQ5M1dKX1hlQ1htUmZnbkk0MGhFb0VQSjc5QlpQX0gybEhtQlV1VkNvSDRlWXV2Q0xaUmdPSW0zZDBMak5ldlhEdTNhQkZXVmVlS05tcjB3a2hRMEZFYkhXc3owSVMyckxoVkRxMVU5bmVXZ0VQcG1UWnFPdWMzQ1VlWVQ2RFpqNTdsbjkwdFV6cHBMeEZmVUVmdkxtbm5OTGkzVGh6dUVCRlBYeXhYMzU3VHV6MVlsWU5YZDQxM1p4NG15M0t5R2tTR2RVazFnNzdPdlljUkFjcFQyb2RYUlp2cWN0aDlrSTcydXU4dFlKdHJtSmJqSXZMWnZmdjJNeTNsc3lUSWczU0g0QXVjTXZ5Yk9NbC1aOUQwWGNtQk82eGtWME1GMFNpbDduV1lYd1RCN1hvYklaeGFaZTdxTW9GVWhHLXlHbk84Ql9lM1UyQVUwV2hMVV9ER1JwSHF6QnJrX196bmttMXZ1c0FIeThvclBoenRJUDMzVTBsMjcwQXVVNWhRU3BLVFRrYldCTWdab3FINEpYSzUxQmFfZlZVYXJHWHIyWVAwLUZudFR2RTl1X2JoOVNWOWpNR1BKWERHaHhWUHhxU2FXc2FPUjlYc1pwMDh4VXphay1Mbl9VYmZhdkFZTnZlbTB6UlpEVkh5QzlEU0YtcG1Hdnk2cG9rNEEzUzNOZERrbTFuc2RNTkZyR2syUEJ0cHNkN2R6WXNacXFPMHc3RnZHQUJnRkZ4aUVuc1dfeV9aSlEtNktrdy1vUFk0bEFsQTVZMTUwa0hlQTkyTHFaazV1MGNaRWR4ZVNmRGJ0UHF5clFDNEZfU3phVlE4SFNjSkRROVd3dmxDVG05TnpxanVLUWRhOWNudHdNdEhJdUJyYkRERVEyUlNDbFA3OEVaUGpiZWZydHBGNEJaY0NnbjQ0N3Z6MW13T3pVYVVlMHJkQjZ4dFBXRWEzU0VzaU1SNXdSMHpqZ0JQbGt4V1JNT0N0WXRsbmViSE9VU0ZQUTU0dUptRFhOemM4NThKRFdTa0ZFbmJvQk9Eckc2cFhvdldDLWh2NWhFbUVNaG9VOTBKeTVzbjNZTkNnbm5GOTkzckQ0Q1otU2g4S1F2bTNaTFpvcVRpUHNpQXE0UWJhdnJOOVhGcUh6U1JUdU5GaExKRW04TmFHdnhwV0ZWMDViRFNMM2NkZGVnRTJMNDlxeERmMVM0NFlfR0xJTW9tcnhSakJ3TER3T0ZPV1Ywa0ZvT1RidHdNSzlWTkJBYjc1eTdsMzRjOHd1RVQ0a2o3SWtfQkxTMVNPUVJYN3Z5TEx0QVktZ21WaF9JMEtIdkF2Tm1mTGdraXBIbGJNSUFqNUJ2cXp3LWllTW1Wc2hsb0tBYktQYnY1S3NZckkxOXZhTEh3MXZuRi1SOGppdFNULUJ5TGhsN0ZhQ3pCVDF2UzU2UHRqSlg4NGdXQmluczRid3BMcHlsVXJxUGtqZlZLS2FDdTNLdUhWZkg2U0xaemY0bDhKbU9lNXMwMGlhdHpMWUdtY3p2LU5QbmNWSDVrb2d0N1RaVHE5SUE5ZHBvY2ZBSzF5eEt1RzdiRnZtTlo3aFh5YlIwVnZEWUV1NjB3QmhRQnBpX1p6QUc5Rl9qRVhKTHQ0X01mbXd3eEFRcEQ3SUJuMnl1aW1TQTVKRDZjeV9GQzVVMHJEaHdsb3BoVjhkdUdKcG14cXBLRkszY2h4Z2c0QWNLUnFqY043TkM5M2lfbllkajBwVFhQM0tiVVFsVXlHSFZIX3I3QWRTR25uRXpkc0c4TkR4UjlxbHNySkhtcDJpZE8xN0liUm9GeFhrMHl5YmRuLUJ0MWotSVBTcUJZTTNoNDE4SlpERmpVVjZVZlhwSmxnVnROWWRlU3B3ckJ5dzJFa01KcVJNN0NNQTYzdXdsSGlVQ0pVSzVVdmhyN1lVYm1NVDVqdHVTZU1LeXVZcTVaNnZ0ZEk1MWVnNVIwU3QyNzJ6UElwYzU5RHdBMmRKbWhsMmlBQkJOOTR5U2NoSWt3YnE4TUdDUXFHUUo2M2hoUDhYR3ZhMnVlRzFUeHcwQkxEcHRnYVdhMGd1eXVRZ2FFQzBRRmhUY0J4SEVtNXFyQTdCR2ZEU1lPSVJ5elhJWWtwZE81LWVIckVORjd0b3IxdW1hRmMtaHNkX0g0S3k2OVBJdERiNlJhcmFuZngydndqV3UzbnhuT3JfdmpSdGViM2hpb3FhbnJNa0wwWnJyNmpjZ3VnMEQzc2V2TDJocDJRYmN4YTlPYTZSTnZ5Y0RMeHdZMnhrMHR3dnN4ci1QcFA0V1owVlBLd1FPT0g5R2xFRDRycWo3cjZwTEE4cUZTbHJ5WlE4ODVCU05SbE5XOVJ1S0txdVcta1dtMWpFc0hBejZuMlZwOWoxeV9OWkJzOGdxOHB4TC1kcWpwak94MVlROExVRDdrT3JtYmxYeHE3anUxOHlELWlwM2NMcjN2UW55YlprUkxzNjA5dGxfc3FsZ0tIU1pMbnBDYlN4MUZ4TENTT2wxQ21aeHVoVVNQT1BDc3JyZmJrcWZPVzhmemFyanhTZ0c0b29SSHNNTUpHSENDSUY4Tm0tX29obDZ6VENqNExFZUZUZDlMQzNDRi11bzQxLWRaU3FTeUZmRHlLdk9JcU9nNi01MVRSWFpQbm5Dbi04ck9qQkxhMXpnWjhlZ3dZN0k2MHM4M2ZlMEJuNGVqcnQ3eGxMZTVaMjE5YXhuSVpUczR1alc5OFh5c3hXQmZFOG9XWkg3WkxneV9aNXl6WTY4Vk1wSUF5QkJnZVRSVmRadGUyZFlzVDR5a25IdGxYMjE5WExKalVPSW9VeXM5Y1VrTENqSkg4UUFzVHl0VXJnYXJVc1U3Y3F2bmVZOFBmOEs0OVhSVVV2cFNtVGYyMUxtSFNvSWdHZzBlWlI3MFlJUTBMamdsVjdKTVRBa21VY0diREQzRDE3cGItOVdoYkYtX0Z4MzRFOVN6LTNiREdoaWhaZXNkVDFDRmhtekwwRHo5SUFIVU4wZkQxTUhNYkVXaVBmZG1nY3F5eDNpN0Iwd1hqUmZVT1V5TFo5NjRRbkJLSExENmJ1TU5qblJicUx2SFMwQkZZa1lTeU1JallNNm50TVYxdGE0bWU4cF9RV0VLdDlCSzd0dkVFaDNNcUtidkI4OFAtQmF1NHpWTENTZ3h2R01LUm00UHZpT1ljSFBJZVpCWUNwQTJmc201U3hnY0xLQmYxLVY0RmtGZUFxbmExdHk4Tm16MEFyUDZaRTJrT1N6VzVyR3RCNWFWNFdNMmM5eXd1QnBUcVljRnFiWWRRVFJqVjVkV2pMVVpGV3huSUZuajVEc0NoQXNuZXk2bFpPTks3VzhvSnhCMUY1ci1ubS10UjhDZ2lTWU5rNzVxS0FrbjY1eWJDVkk1ZVg2Sm5rdS1KbUdoYzhPSEVJMmZRNFNLNjY0eTRMYnBSNDlmVklPR1dXMjdrc3JUcER6MU5JaHprbFMzckxKeVkxMjZTcGZRS2RDX2k3UW15YjhhTlN5Mm9ydmllek44RV9xUjh1VmctUnItT2I4NDdPNVZCamNMZUIxVDI4R0k0alhqWDJfcll4cW1MckFoUmJldENwVGZsZHFOMDVKWUxSbEYxYlRFRzNqWVBrVHNoUk9VTXI1UjFtQ3M0dnQ5QW5hSUVMOFE3anQwRUN6U1p5UmVGNUdhSHdFZS1sYlE0RFlfdUhSVkYzWUlDQjkwNWJNcThwVnduLXp1QnV5N21tVHNXLVg0bGNhb3hJZHNmM3lZcU5tSDl5SjB4QmRqU19aNTNuT0hYakRkZTlGLUNDNVpReVRzcnIxLVNQalIxUmlpRkZPU21pS3l1ZmZaaW4tcURIVjdGTkpZSHlUb09Zc21yUnIya1ZXamdNVzVCdU13OEJIdXdmYkdqRkdmWWtZUlhkZU9wbmIyRXFmWlF4OXZaREp0d2ZkRW9mdWhGWHJFSlotOUZFZE9zMTlkd3h5Rjh6UDJyZFJOcF9Mcl9RM3U2bHctb0FmV0dvNEppZGloWGU4TlV2UmhUTDVkWGdhelN2TjhJbDItY2pBRW9HNmlDd2xjVWpkS1dkRUVmRXdXM1F2WVQ4alJhb29oNUlzLVpyM19DVnRhVEU4ZmhXOTB4cDk4MHFQMGpuVFR2YkpNVGhTZDk5MXFmdzNhcGVCOENwbGxZNDNuTENDNlpyZFBCa1hZcmRNMmFuRmduOVhya3hjdXpSajdyb1pqVW9RSW1vRHZFVlJmNzNLOVE2N29DeTdsMW9vN3RWdW43RmhXVUJPZXJ5RF9hOVlXeV9ldkw3VWZQYWgwSFF3NHdLMjVJakhXOEtUaUdNRGR0X2FhSmNxOUJXUC1ya1lGQ0NqVnRIVHhlQlVTbVd3OW5qaDJCc3pJekI0SGVrSl9NTHZhZG9YcDl4N3lsREw4dzl6eXcwTE5BVWdjVHloY3BpTUpXcjZRb2g3OXp3U3RLSnhBbnR5SV9TbG9GMi02Zm9GQ3dDX05nYmRIcUNGQ3BvTF9JYWs4VEg0ZUJoT0J5MllBUHNjc3BCNmZhM2NuMzR5dUs4cDlqbjFOSnBsZndLRlRIb2RBYXBCakJEa1FHci1MUUVjME9iZFJpLWtnOEZ2UGtEMzBVZHU2Ny1DaC0zQUR1NjI5NDR1Y3h0b3BtdmxiaGhFLXU1b3RrWjNKRVQtVnFkV0xMV0ZKRUcwUXd2ZkNXQXB0MEJBZ1FHYV9WczZrN2RubUJmOXcwSEF4RFBOV0p3NmxITERRS3dReWR3TWpKVm1Jb09DcHBOVEFLQjBPMmdWOWN2c1lvZExWbzlWdGFLVU9RYURZdXhYTXptYXV3cm9UdzktZ2RXeEFqX1lna2ZBSkd6X0NCVHdCNHdENzRiYkt5ZU5xZjVfdDJTSTFEY2FpWExZSmFwaS1mRkdFdkZsT0NNbU1SZjlOVU5pWDFGZXg3aUJsYnloZ1JTYUZGbFg5a2VWTHZiMHBzTHB0cDJiVlUteWs2MVZhMW5xdkhzRXA3MDBXbWpDcmMxMjhIdHNKbGhnOW1TMnEybVBZWmM3QjJuY3l4VXluYVpLM0xzUW1xbExkZWRfQW81akdSWVdUc2pMd200emNUOENFWnVJRHQzV1dqLXlwaXNWal9GUFVkZllMUzNINFVOUS1TRElwdzFGMnktUVVjclEwdTZEbVlJMU94YVRaN0V3SG53emM1Z29NMDVWUW1LaVpLV0V4cExPZzdOVVhEVWFlZlYwR0xQcTVKQmNEU1F6VVI4V3VsTEgtZ1g2TFZxRUNNQ2YzX0N2Yy1oQ1owRkoxaC03SjB1cTdaOXNzUjJwMERMREVDV1ZwQWVxanlhRHhMa0E5WnFWaWp0UDdEcng4MnUwWVBORTNVZ0J3c0U1RHNJVW1vYjBZNG9oNHBMSUhvTFd6OTlEQkNTMTg1aFBUdzIwbkxDMml1bGhGbXpZZTlEMGVTOVRaZ3BaQlNSOTRPVFB2eFkzTHphd2d3SVZQRTl0QV9PdFljNlZwMjJpVHVMaUhqTXBTZkhkTUdNckZONzd5NE1GZ3V2bk83UzJHUldXbk1fQTBfb2lLT0M3Zk5ZQzhfWDA0YjhPMVF4bkZvcFBoRzlmYm5OTGRHclk5azlDNElYY0hLUGlKZFR2dmFsRU9zSGNuNTdKMVMzc0hqU1JSVXZ3aWxrbEE1UHFIV2hJLWpENjdydE56SmdrLU52SDlfQ0JNcmxDallSQUZEaUFLSGduQkdnR3VTeXZxaEZLbDNycVFDbENRYlNUTDA1TktaTXlUWkY4eVlsbktEeHc5QV91eGpKekFwa2RsVXBPMDVKcW9JWWFGRWtJTHZLUDcxY1NHeEI1MkR0S3hUZG15WUZ6U3pJeTFCLXJtQzI1N2xWN1Jfc3NkV0tYZ1pESl9IZ1E5UGJMNmc0ZWY2eVlMN1NRV3plZ183OFhLcEl4OFM5TUZNbHNRdFlZSGdnSU9vTnUwSkFtRUxuSU9kOEgtOW9aX2daVnk3ekJEVWZEN20zVjg0X2l5S2QyZ2Y0Ty1Pa0UxLXNobW1HZGNkOHgtSVgzbjlYRG1SWmR1ZWNNUDZrR1VEcDRQMjF0MzR0a1hkUTZRdXhZaDZFRVhqTUZQZ3owdDk3RWFLdUxKNkxaNERBWFA0Qy1NdWp1ckpsc1dSOHRNTGRFS2FDYm14dWM2SE44dEUtbnZaLV91S29ERzhTY21uV1N4cU1mNTEwUXlMZkpucW4wcTVzYm4weklNRVloQThseV9TTXJfcWxHcWxEenI3ZGlfcWFyZTFKZk1WMjduX3I0dUFkRy1fT21FYXBkTEdzb25nUlMzV20zaUkyMWdfTGZQd0ptM0F1YXhiWlVVUTJLUzRHcncxU0RIRWJjdWJWUGItUDNYN1E2bFJVUGFkdlYzMTY4OEQyZ0dGZ0xGNll3R3dGZUFQRUxPUXJhSDNXazJaT096WkIyTGlTX2xMaF9OYlRVUjF2bUo3RkNDNzRENG5wcmcyWGhjYVJNLUgxZFFranJvSXFNdi1JTk1kRDVHejNyZ3ZRdGNjYUExdG1VbDhzdXE0RjBpTm1BME1kdllzVmJuMktoSEx1Zk1hYmZsZFAyUGtpZ0xYYXdiSVY4QUlYSmVKSmZIeFlsMEptZERidHlVZEpFeWN5dDJvSVpVMTk4SHIzTnNEdDBBdFM4NFp5TlRqRWI0OHhTOTE4WWhINGc3ZFhLWmRCdHcwaHVYbFd3RjVZdVplYjVjdGk5WThLV0NISERuSzdKbGhIaV9LOXdReXp6Q051Mzk4M2FicXhMNC0tb0pYUk5EajJBbjA1Z2dxN2Y1UTJYUHV6MVpnNlYxY3FScEVCNkwtT2JRcGV1a2RXQ3Iwa0N2eUM4RVNlSVJPdE0yM0VPLXBlalZnSlZha184NUF0Q05SdDZEWnh6VFZBcHd6T1EyVXJJelp1UUJ4Wll0ZFc4LWFBalY3M1NnZWIyaEZndDV2REZEYm5CMHlZUzU2N0hqR1lrYnZaQzJZc1A0QnhiQm1fS1FMbkNVZWtwVFAyZG1GUTNOSGE4WDNuNm9QVHVnOExyczNUSG9TZWM0Y1k5TlRMMEY0cnM0Y2NfUHhqVzBRbVQ1YnhWZXN2TENiT2FWcDAwY2lBeGMtS19aV0d3ZEJXZ3J2VkxSVjVkNGEwQ1J3MlM2VDJyUjdGRHlqX0t1Ylg4eEZDREg0RjZBZFBCbmJnS0F5eWw3Q0w1YThoVHEwNGNuSlNBUXNadTJ4cUpBQk85RDJUNVFuWjMzd1ZBZnFaY1NoWE9GOENFTGx5VFU4dGxLUEh6SW1sQnVBNzZvM1FhVXpxS21JSU5FUkxJNG1vajF4eVpCYWJiWEVBdlpmMXJTSHBDanU3a2FiOUNFZ3JxMDNtWEVNeVFQNnJlMXVfeVJtUlVUZEdSNFNtZndhWmJYNTB0dkJtZWVDM0FmVk9MbFo0Wm5pUlR5bzk3cEs1RUpaLUZ4aWlQQXdLMWJRZ3RzOUoyRkUxaVExd3IxMWZTaFVNX1lSN3B3MklBaUF1SWd6QVdFcWJpdXRUUHZuMHZnUkN2RG0xY2VESmV4ZXNtYjZXcExLVG9wNFZPQ3FDLW9WeUFtaDhYQl95dVdaMHo2QXo4RUp1UVFUbUhzS0gwVEtHZUFmOXlla1Y3TzEwdHpneXMwbVh4NlpvdzlQUWFuNW9KNm9xZk5jS0FOQU9jbWU1ZUdNQzAwVHZwMTJUWTltYXZ3a0FXNGhhNFhpdmRHSC1KYjN3RTh0S3RPNnpEUFRCeEpPVV9tWTB6NWJrQlRMaWRVSXBxTkx5ei1pMVg1aW9sOXlXTlF6LVZyWmNjMDdLM05fMHRsNlIxLUVBUmxHQkJxclNWXzhoZG4xSC1HYklqRVFNUk9nYnIyV2pheGN6ZVZUajRKSzZKOUVZdXVWU24yS2tvVHZWZjVfOXItT2JxSHpYQi1ZNDRhRVJFRWN0T0JNdmZ3SXpJMXg3QnRSVEtKTGZncjNqYmdJUUJYMmNVcUJ5STVldVpKaFdEZER2N1padU9YV2pENUNkb2JsbDJaN1U2eTBiRWl4Ukx1WHZMZFRmUzZnblVjWGRJSkIyVGh6QkgtdEJnZ2txNVYxMXlXUkRMWnpCUTR0ZHk4NXZYRVZXWmlDcHlVcldaSnl4ZHJUMFBRMVJQM195N2F6bktoQnNLZ2hkMnUtRS10Uk53dWtOeUVMbVh5MV9PVmllVGNkS290UnhOVGhaVzFhYlVpNTN1czVRQXQ0MklzUEtBcXdSOWNIcXdQQWt0QnFTbExhUFF6UkxBZzB4OUVOYndSTkJVanZMdmhlQVdJOTg2OXVLMHk3Z1h4d0c1UWFfLUVFWjl3V3p0a2JNa2ttSVVhWjJGM25uYkRZYlYzVlk2UzZTT1RKdmFBX1dkbGU4T3VZRUFQRXBaeUlGMVJSQlVaWUV0dVVvUm1NbDI0LTd6UjhoR0dzcEtYaktEdTZqNFUwYUNMY0dWME54U3YzaVZyeU1KQ2F2Nk5BbnYzejE5MzdNQ0J0Z3hMZW1Yakl3TjZhNS1TZG92eFBrU3hCNTNja093WVRzMWs2ZlRUeHgxWWc4RlJBeURJbGlUdEZHSGFjRHpCRjU4N3l1UlFERzZ2aDFhU2JORlJLVWZzejNpaG83YzdnS1owdWFpaHR2ZktmdnVaUnBFNXpkVWZwa090NzJ5MGFNLTV5MF9rTnBfU1NhT2F5ZTJXX2REZEtBWXBsS1lQUE5jTk9rYW1SQUZPNmxsUnFyQ2ZRSkRkbXQwQlRyUEd4dXVpQlVTVkh5ZFNkN0Z5SFhPa0Q5SmN4azVSczloRGlSSkdmUVZsNUNYbjREOFJSWF9xMFR2aThFS3dVMC1uVC1TZjZBbWs0MUp6blhGbjNBblI4Sm82b19aT1hReVNnWFdwam9YMEJQMTNJZ25hZkRjd3VNaW1pNUREc0Q3cVEyWHBFQlExZXNBdVdUOVFCYloyUkRIM3htek02bEVIaUR5TzRIQVlLZERSR2g3RVdLVmpFMDJmSUtCbWtEV2MxM002SWo4N0dSRlZTdnUzMnJseWtFMTEyRlNRTkIwVy11MGx4Zmg4OGZYMWg4M3NxeXBreHc1a3NoOHlPcV9EMUV2THVmT0ZlVlBJbEN6d215Qk0wX2U0amJOcVJjdmJjV01XX0JiNXFjZWUwUUFuRFQ3WUVUaWFiT2Z3MUh3MzJ5WDdvM1EzUFI0SmNXWGl1LUZ6NTdZYTVXd0hpTUV4aDlHbDlBX2ozNHlfaXI0aDFLdXVfei0zZVdmZE5uWk4tdjUtNHlkY2lVYlBVT0M5ZUlUWGxTVHFKbURBMlFuendJRUliMFA2VldZTEZLc0ZnWkxfN29KOGNrT0kwQ0t5RnVENVVIcFZWdkhlSzB4VVRmeHNEdFVLU3d5Q21OZ2ZyTlBnNFptQzhDTDhwdlRMZVYtT1dUQlhjTDRUZlBGazNzNWpjckFNaFN5OThldXN4bkVIU0F2VFFpY25OM0xBTW5ra3o2eTBEd3dUMjA5SzJocmhROWpLcFN1bHBUQmV5X3NIZ2xNYW9VMVd3anFjQ1VRYzhmazdyOTNWR0ZBTUVXaFVlMTFvS0twcWwzQjhoUEpSQ2Rfd1FyNDJGZkM0eTVmbHJDWk5LZGF3YmpORnJJNnpQN1htUDNjUUlZQ1FNTm1EWTMtbzRFcy02cVppOF83Q095MFlwNXJWNGQ3b3A5T0xHNkRMU2hrRlRlREV1aW9GZHQ5QXVYQklqenNHQXlUMHBlMTZjS0ZQR2NlcFhjMDV3U05Pb3lPTmIzdVlON2FJdmhlb1RoQy00QVBsMEwyanFFcmZ1S0doSnN0WVBfVzhXZnphclVWcWtJeFFlWWxfQ0lSZTl2WHdTLWR4WHNUbUEyN2ZrZVM1TWxIakNPZmRDUmY0Q1JfTlNYdXJSQzRCMDdrU3Q0bHdxNnJDV1c0aDhZX1Juam95end3eC1PV0prSHc5bnlMV0RVMDYzcVV4aTlUZ1pRbExQNUpNLWlJbzk1cW1OY2k1WVhYOWs2OHlkNUtVLTlJT21mamZEcUhqRlBoTEpWa1hfNHhKR21ySHhKb1FQMGdFdHBZcjJPbjZ6WndlejBqV2JyaEtlZTlQZXJ2djZWLUtzaFgtclIzVzlNWnMwUWxKTDBCb0xSdVU5elY5TXF6cEd6ckt4SmZpWWFkdGo1YWNKWG1FMElTMEN0Ym14UEVVVUxjc1RtT0g4NGFJU2h1VXdFMFpydUZUdHlTNzc4OC00NkpVUXB0S3cxcjBCbUhacTctdnZuY3I3czBqTEdlRm9nNWlVNzI5b1FyMmk2VWtwN3h3T0lXTWdZNlh6c2JmampFdHNtRW50YjMtUFJ1d3g5THdyWkp5dXNhV21scWpjVEg2YURuSXhiTmZLSDN2VzVpY2hCZ196MUZUa3JiNjZYOWpUT1ZVOEFxUXQ4aW4teDI3b2JrMXdVQkIwb0dEX3BjdVJJbGVZSF9ZMlZWdVNnUlYzaXBQMkNVOFlnRmxGTVhKa0NmamxDdGZwQ3pkNU5sc2w3VmxCUVlCdkJ5TzJsZS1sSTJSSnlJQ3pWd3dLajBrWVJjbm1xSWVURWpENE56c25sZ2tIc1A2V2ZmT0ozZW44RkVpbml0eENsUEtFY21FZk9NejFrZnBRQnJHdzV3bDFoSUN0STJfOUNid2JUbzJmd1VGLVlNTFNLVUlLVTQzRkhCOFY2VmNnZUNqMElNQnEycXlJYTE4MU5xNkozNmRLdmJISEN1ejZUdjUwVHl2WVE3RlU4WldWTVhvcFNOLU5lQmdjMUpCcmg3UC1CcEVUQTlpWHlSenJNSjlPWlFaaXJRUUV6TXE3ajR2QUNXOTNFbmo0Y0p5TDdsZDRYVWNpbDFtRTB5eUlDcHEteVVFWm8weTZqTzFERGsyeWNwYUFGTU5iQWVfTlZVaGpzdUcxNUVQWlBCcWhxSFNIRl91Mzc4TVpwdjBUOExRcjFoNHBiZFpaN1VFUm16VkxiajhzZ1RFYXgzdXJIaWJwc3JBX2Y5cHJwOE1tNWRYYkg0UVJwZGR5NkVmRjA5QklWdTN2enVvS2EwYXcwUjlPZDdqWjR3cXV6VVpZSWJvMFA5aXdnYThTR0RSeEN4QlJMSzFPOGROMERabW05YkZNczFsNEFjWEwtRVBGb3JHWnRQNEo3LUlnMVlqd2EwbmFkaUtfNmZkcGk5LTZpOVRoeU9JOFVUSG8zV24tOVRXMlNzaUpHb2tVbFUwbFlkaUdHZmthUHFTOXlzUWNqWWtkenY2dnd2clNiUU5WMkFIRWIxek42c3E3UG1fM2s0d2VQSENNOW5TOXdOMm16bnY3TndWTmNtMWF5N3BxdzJYT0U3RG5RU0ctbmk1SEhVQURObnNJaEFLbDRQSnFZQ1BRMWNfMWR5MFBSYzljSjRLX0lOU19oZFR2TjduUlp3UVJnSTJDdmVvbmVrMGRtWGdXME5zUU9rWTR2bldqcGprbG1OVEFDSFlRMmFiU3Q1eWFTV2VINHh1cnVKUm1rNDYyVTFjUG15VXFpaUFobVdSeVotYjduSFR1ZmtOa2w5TENKMXllVzZzRHVlbHJTZWlzbWMtZy1reXQ5X0gwZnZpeXEyODVaNmNxWTRKcmtEeV9TVWlfMWNla2hoRmJmcjdOS0NmZzQySjlsQjhHTjR4TE9JSHRxS0NmSDFITDRCVUpZcWtTNFV5R3JmQXV0em9fZ1F6ZUhsSzlYbjhLOVNPa3BuX0VGNzNQNnJiTGRNcWU5XzFsb0p1TWZTWjNPYW1DdmgxUmVKM0dIM0NUeE41Rmg1d2w2SnBqa0FFMEJBV0gwWHdlSXo5UkR6NjlxWF9yMWxUVWY0ZE80VUhaaUhuOU5lUzBzTUhVQjd6bzZzbEhrOGh3aHRXRDR3ckFwOUhPc2V2YXV4dWR4UUV0dEN6djc3MUVZSW1oNURQVDdFcXdlUUNuRU9ENWhEQVZXbTBrY3Zyb0JRNmhacURCTUszM3lBQ2tnUDFMWFFNeHFGVWljdGY0X3ZjU0lNcUN5RnAwWi1DU0dJQ0RRaVVZbXNaaTh3eWt1aHpXYThfRVFOei1tUktkaUFCVXo0ZXU5bGt3eGN2ODVHOE56aFpyTS1WY0MybDdtblZOb2NrRWpBNlJrSC1seWRLbC1CVThaLVlPX2QtY1FwZ0JIZm5BeWY3VWhrcUIxWklVTmZsT3ZNd2lqT25sVWJ5RzFwQVN6eEVycDYyMHlBTzdwSUVCcDVRckplWFNtc3o4QW5NZGU4VnlQd1YtbFZwQzBOeUVUVFg0VFFqTWFvc3p2VklBQXVVU0ZrZUphRU03MlJPUjdfTWdseW9JZ1FmS3ZTS2pfS2R4UElVTlJwZzFiemZ0blAwM1oxS2tGNjlodUhKVExaOWxHcjRVMEg3WkQ4STJ1ODl1TUdjVWx3Ukotb19yMlg5OXdMQlZ1XzZheTFDenpyYVVIdWh4QnNPeF9kWWtwOVlCVTR3aXJ5VFJ0cjZuNm9DUVpKSjBDWUduSE43ZDJrbC1WMkR3MDVyQkJ4NlNEaUdZamV1Mmg5eDh6anU0a2hfZmhjbWZuVTE3RE5HaDh0bHhBRW5oUzd2UlVmN29QcjBqaHJHX2lBMFVVNmFaeWVYMUJ6OUJxT2dpY3VBeFlvc1ZuVXMwVDhhMzdJVjJqQVJSMG4xM29iVGFvREx1dm1zWl9vRUlON0JGT25Cdk5NTEM5ZkQtV3JqR3hYalI0Unp2SUlWQXU2b2QyTlhkam9vYVg5NmR0MjhjY1hpV29BVGhCd3c4OGNXUU00T3poQktpY3JNMnhGQk5la2VYTU9lY0xBSnpnUXltdFktLWZ3dXl2VS1FU0xmN3dWb3VfT1FnODFXdzE1UXdhSzZrTnhzc1VlZklVZE9aX1F5UE1peFVHZi1SYTR6TkU0UXNYYTZvSHo2VjVfRXpPcWxNaElDd3VUalR3Rk1kQVFMQzZ2OE5uMzNSZjgtZHZTeXdrR2c5ME40U3JJU0hBOTVOWHZCSDNDbjRibkd0alpfTDVLdHEtb0R1c0ozbXNpeERESndWTk5kR2RBZVlUc0RJdmVFN2tuUHNLNDJkMnpIYTlleFEtb1FGTy10WGZCeGtNSjJjWC13STdjaVB4ZXZzNnNIVVJNVWtmS3BrRTl4RlBSUzBMakFYTTBpc0VINUp1QjBEUzBpNGNjS0p1dnFRS3hXUFBIZEt6TUhkXzg3Ql9UVmYzUTQyRm5wU2xyTlJVNTFOUXR3RHVudUlfZE9tTXFrQXdhRE8yOE1DZ2ZOYXNKZjFrSjk0eTEyRDJWUnhFbHU0anViXzl5R2ZhQmpUZWlZa1dvRlp1aWhMU2pWNGJQNUlLWW1mT3h4ZmV5OVJYbE9JLTVwaXQ1a0lTOXVsRVJPYzhlT2tDWDBMd3gtbzZwZm93MFAxMVF0N3dYdzE3WEhlcjRGc3MzTXVwRjg5c2M5Q3hpZXQ1VjhfbzRUMUxuWUl5VVRxdWRiM1JndDdGM2NlZ0tvcnUydTB6QVlyYUQ4ek5sNzU0SGhkN1Jrc1dNZGhVSERyUFRyampmajA2RGdDQms1NlZlMWh6U3lpRDFPdi1jdlBEMFlxUHlHUXpCMDI3eDE5RnVHNGpxWmlKQUdhSGxaaXhwb2Jad194ZEFQZXV0Z0pOc0IwV3RmSnBxWW1YUkEtLWVrakdaTXhFUDhOalJ0ZzZPX0JSSnBXSVY2eFhKWTdvWkZYcUFaXzNWQXdNVlFjOElwYmlSUF8tdHEyeXl2WGRFeXhWb1B1a0g2NFVUWW5ka3d2NjRTNHV6R2pwVlJBaFppWXVHc1cyb1IzLTdKeHQwTnR1WG5BbFNneWdZRElzNWJheWNNM2dsVVhQZTRuc3N3TUQyT0pGOWFKZGU1eUtabWRoZzJTaV95SGZwcHBkem5JRjQyTTdLOGg2cDJpc2hIN3dtb0s5Uy1PVlI3V0hBZ1JIUnpYeWUxd3pjaVFFUlpKZDJnZGxadWlSWHhDMWU0SUFId1NLUzM3Vk9DMVo4WW1oaTVyT2VTZElIQ3BkaXBYX2FfZ29HMFhUTkhfZUlCVlRocm1jUHZOV2RpMW13d2p3SS01Vl94eGpZRVIydlUwMGFkaUtuY3RjX1hVTUhtS3V3VVozUVBNZWJwNk9sRHhXckJoWGVPZExpT0cxajhYRWVlV2x2UkNJRS00VEN6UUxKWGVlSU9fcnVwclRPaWJVN1JHY2Y0ZGRFTmZrSTBxUVRPR01hTXVjWmIwX202N0V5TTRlMXpaeFVTTWlyRXE3ZjBzakl4U09qeENhTkhqaWlaUDltZVhkU0QydDlTbnZnZnZXT1dvc1J3ZHRUZk85ZVRtcTJiRVp3UE53U21ROURha1JpZkhrN1J0UzVBdThXVkk2UFh3dE9iYkg3MWlyVFpDYmNRb0tXWm1wYmRaUG9ialBHS0hVVE9RMFFvcGltZ0pBMHRDZHdReFNxYXRmaUFrb2FsYlI1QUU5QVRGR1Jac0RfZFhGaUpUQ0NjNExDVGZNbFBvZElBbjh1czkxOFV5NjFVSTR5TEUtYmJSOTdCLU0tYVkteG9lVmxjMUlxa2NxWWtJQ09XQ2JZUFZ3S084eE93S281N1U0UlBrQnBoMC1Bb0Z4YXFEYm5ZLUpXNnJkaHMxSTJTZ3lZRmx0RXgxd1A4eFVoZlo2YnBvSW03MDYxcWdYTEN5UmNweTRlR25vSTlHUzNRb2tSLWhHNWJ2NHgxUU5RNDA2NFZYeUNQWkxYRWxSRHBwTkxleUtIZ2hqTnhrZ3RfZGNaMUo1R3JuaFh4dE9HTHNOSm5ITmRDZVdVRmxQNkRQaVBNNHBCWkI0amdIekNuU0tLd0JuVFBuaDVnT1RsdzlwSkVQajU0TUNEUWRtVGF4dFMtcm1tN09XTVBKX1NJUkh1QnlvZzNlTzZKVkF0dHJab1o5RVoyQi1CM0V1U0tWcnJYTVMxb19RRjNCTS1NLVYxYm1LNEpleFBrZ3BoZEJfRzc3S3NMZmxuamZZd2pYa0hib3h0RjhCNEljanR2aGQ4Q3hGR0txZXJ6b3FDTzFEdVZqWTJxQnpMNDVtT1JwN1NZT21VdmJQSkFkY1hCUjlCb3ROQUozT2NyNHJfVlV2clhObzlBT2c4T0RpZE9SUGJHOTVvSHc0SjM4VEFqMHN0OVZYTXZkNHZnZmhFcURaNVI0LTFGS1IteV91YjF0QTNEUXZvaEo4NG9CM2o2eGNRRm1QS043ajc3dXpTbmZmQ0V4VExoWFNVN0xwVWc3bjBaaHMzb0ZJWWlTSE9xdVRBT0xQRDJaRGswSVljM3ctWUJTX1NWSVlvU0V4bndQVHUzTDlnczNaUW82YkVkMHdUUGtlYmRmR0VDX1lCczFYcXlwYkZaNnVfQkhYb2tReVBPS3ZhYXY1MUVjNDEtSmgtX1BRTEVobF9oci1FNG1taTVuWVJ1amY3SHpTOEdscU5uU1lqQlBHWkxJd3FxOUpfRWNVdGswUzgzeFo3R2YwM3owa2VJVV9TdWVqZFJMYk5reVB3MzVFT3JKZVM5bkhMcXc2VFZlZldUbk9ZWVZ6b3JhOWlobVlmOVVhN21qX0pkUXNRQnFSSEZfajdEb2dIRmxlUExwLWpBQ20xV1NMMXJsYXd2VVBVeWhwYk5TUWphcHM5R1lNODRteEQwZHZiQ1FMSE1BYVRSU3Z2eEV4aW1OOFRJRUxsXzcxTmZ0ZlBNc0JZeXgwdlZ5UkpKalBreHh2LUhjSHFpNHd5ZS03TmNfM3VyMkdrWmlkdUFnajFHTVZXUXBscGRSQlZ0MzhKdGtXb1JSVkJsM0prNzNNZzFRYVFlM191U05iRF9MOGMwME9kcnVNc0ZYYnNBeXlFVmh1cHlzSXkxamVmYzVwdlVGVVlHazlnQ0VxYzlYcEhCVU11dHFreTBVMmFmSDhPSGxxY0dFeXpkdVFLNzZ0QW1VODJSRXpTYU5vREhnMEZjcGJkd3VOeEx0X2NvMjFselBSMkRYa01BendFNDNxYnpqclA1Y2J0STdwc0JMSk5PdTFaN3RvRlRqd0ZNV25EV1JoeTFVZU9BTG9kNEQ2UVgtemJ2R3lVd0NfZ016VGlJOHJmTkxpc1VPNVpPWGhZLU1vRE9mQ0plNzNvYjdrNGFkLVdGY1ZvNklpUE1vUW02ZEI1TExrYnlucXptblFzZzhnSWZBM0lXcGkyd29oVlp0dkpZbUI4M1gySEFCbVhSZXhfZGFLcEY3VkEyU3JLdkp6TlN6WkQ4cURjOXNMbEFiMW9JNDJRS0lWa2pfVTJBRjFCbUdkWXh0R1ZXUHhNcDBHZHRHTERZVGxCeFkyNl9kRFdYRkxFekpyYVgwaVE2QkxuZnBWZ3NXOE1HS1c4WmpGZ2NUdmZndGN1QTA4SGdYUG1KRG9Hb0sxdEdCOHBHQXhpQkNMdTlUY0M2b1B3VEF6amFHQUFMT0d1VEEwb1o4ZXUwemJzckpCZE5leXVoUTJpTkJyVjJNeGtldmZiNVJicDljTGJycVFKbEItbU5iY1ltRkNvOUdURDY3SWdtVy1LWHV4N0hhUlhvOXNheklhWHpiQVNWSXVDekxFY3piNW02QTBUMWtDZXBoVmFtLXZiMlgtMHhyWUJKSzNNWmJRbWR0VGpsRG1QdmQ1dDZHN0xMNWRFZjdaNjlZNktTc0RsU19OUThKaWU2NDJOUUJZcUgyZWhRVXFreldvaW9mY2ZfM3hQOWxfeURFNmZVXzhxQ1JHNjRuT210X1dmTW9SNF9aNDZHQWp1MHhrNjZXQ3NNWTJHU0N6Y0RsczRLRVhtZ19KeXZ6Z0hUUkluQmllQng2SUZrV0JmN19JaUxnLWhKMUJ5QU9fOVRoTlFyTmFYbVFabElVWEhTci04SEFvNEdhbE0wOUhvY1BoZ1lZYkd1UHZvak9xenRyTEJ6SU5IYndwRC1QUkh6cDRxbVp3YTl2R05OQVZhSHpxZk1MUUl6N2syc19UR21zbVB1NmhKOWY4dkdPaEoxTnlpRWthNjBYRng1WGNoN24taFZNdWloQlk4TEVBWTRCVjlHYzJoOFpMZGxDUk9HZEVJX3NBdGFhY0JrbTlsbS1aY2ttc3psUUQ1cXlMUzBNcDNzMFhmUnlMVUE3TTk5RWNHdmNoY1BGemdVRXEtcHcwUWlkWWdXZzRGdGY0LW5kaTZUOTNEazZ5eElkMmRWTkdhak9qSC0xVmFJX1J5LVItcUVFZHI5dEpQc0l1U1ZjMmE1YVZpOF8yOVdmd0s2azAzYnVYSURGcW9aZlViQnZaRjlvbUNTbEpnMXNVb2hqMVlteWVwaXZTRWNMQW5TemdjR1RJTHQ1UGpiTy1EVHYwVWpMTVRkNU55bjB0SUtFTDFRd0tfUmtFa2piRksyVFd6c2h0a2tLQ3gtcjdXeC1qX08xVF9LTU9Rdlc4QTdicHJEOGdUQkJXU1pLenpSaTJLUlZXNlJpTVpOVkxQWVJBbm1PQU9NTGFnTlA5QTUyYnlTVDdtOW5qQ1Z3YV9iWFJJazRVdC1WV2lfWjVwejhsRmRKOVZoM0o4N1c0enBFUkgwVWlzazFidFN1eFZ6cEJDcllZTXRaMndIZkNDb2tXc2dMY19wbkpxMFdLWXQya2J3NXZ2RURhX1ZwRTV2aG5GLUl5WkpJWHp1NzFwR0cwNEJtaE9KMnNBOHNDWDgtM3g4X1RmV19wcEFWT2ZzM09jTnRnZTJaVnVpVjhLZldsM0JadGFKTWc5Q1dFU1dVeWdfNEZHSm5LQndjWmU4dWdITFF3b05tT0hsRzNwWjFVZFhIaXl4Z19XNS1qcVk4NGZ3YWFfTk1TT3NPOWxlZnhmdWJtX3R4TGxobEtFS2NacG1TTnRrUXhUX2kzLXZQS3M2anE3Q1JHU1pac2FoUmRTcDNKU18zOXVwYWtESTFVVW1YTy01LVhVbzhsYndGdzVBMnVZU00zTk1HalRuNzlDQ1FINGNoVzNROXZjWkZiQWphSU55bmd3WEM3MXlVV3RLXzN2d0lSWDJPZGpfeVBTUURkTDhfSmxrQlZuWkV6bTc2RHRCRVFvTHFYRl9Pak5WYl9xN2d3NmQ0ZFMxRDlablk5Z0RWakF2ZndVSEdNWmp2OE9kTWF5SmdfQVk1R3JGOVJfUlQzOUV6emZzZEd4dkR4azFUdEhhU2drUFlrcDd4cF80cVg2OW5zWlRqRjM0NVBVSlB5MDkyUjhfa2NoVlltVEdueWZqUHV0aTdyUUJjLUxoUUtfRzhMeHZKbWZQV2pMdXRHbWpzT0U4cFhzQXBzejFUQW00SWR0Uk1HVjlOdExuTjZFay5zYm9acC04eXgwWWpEWnNlQU1uUzNZNjgweFNCeGN6a0ZZMEdQLWwxWUJVSUI4c1JxbHVYWmdGaWJZbjJKNUZvVnRicVhKY1huNEVmRUVpYmtaWjNlQQ%3D%3D&geolocation=&accountName=&token=********]> 2024-03-13 20:03:17,643 TRACE [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [CookieThemeResolver]>