From 8bbc6d950290ebbb59218deedfa535b5e8d5e1ed Mon Sep 17 00:00:00 2001 From: Enrico Vianello Date: Fri, 21 Jun 2024 17:30:22 +0200 Subject: [PATCH 01/22] Bump version to 1.10.0 --- iam-common/pom.xml | 2 +- iam-login-service/pom.xml | 2 +- iam-persistence/pom.xml | 2 +- iam-test-client/pom.xml | 2 +- iam-voms-aa/pom.xml | 2 +- pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/iam-common/pom.xml b/iam-common/pom.xml index b7e664da1..0e8aeafdc 100644 --- a/iam-common/pom.xml +++ b/iam-common/pom.xml @@ -5,7 +5,7 @@ it.infn.mw.iam-parent iam-parent - 1.9.0 + 1.10.0 it.infn.mw.iam-common diff --git a/iam-login-service/pom.xml b/iam-login-service/pom.xml index 37f7043c2..4e45ea08c 100644 --- a/iam-login-service/pom.xml +++ b/iam-login-service/pom.xml @@ -22,7 +22,7 @@ it.infn.mw.iam-parent iam-parent - 1.9.0 + 1.10.0 it.infn.mw.iam-login-service diff --git a/iam-persistence/pom.xml b/iam-persistence/pom.xml index 4d13a98e9..ae547b3de 100644 --- a/iam-persistence/pom.xml +++ b/iam-persistence/pom.xml @@ -22,7 +22,7 @@ it.infn.mw.iam-parent iam-parent - 1.9.0 + 1.10.0 it.infn.mw.iam-persistence diff --git a/iam-test-client/pom.xml b/iam-test-client/pom.xml index db660af74..aa2493565 100644 --- a/iam-test-client/pom.xml +++ b/iam-test-client/pom.xml @@ -5,7 +5,7 @@ it.infn.mw.iam-parent iam-parent - 1.9.0 + 1.10.0 it.infn.mw.iam-test-client diff --git a/iam-voms-aa/pom.xml b/iam-voms-aa/pom.xml index 92696e7e6..f68a4d4b5 100644 --- a/iam-voms-aa/pom.xml +++ b/iam-voms-aa/pom.xml @@ -22,7 +22,7 @@ it.infn.mw.iam-parent iam-parent - 1.9.0 + 1.10.0 it.infn.mw.iam-voms-aa diff --git a/pom.xml b/pom.xml index 7f7b6a74e..fe206a3ff 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ it.infn.mw.iam-parent iam-parent - 1.9.0 + 1.10.0 pom INDIGO Identity and Access Manager (IAM) - Parent POM From 3a2d6e51f34ba857c6fc5539ff356f0161831aac Mon Sep 17 00:00:00 2001 From: Davide Marcato <26935676+darcato@users.noreply.github.com> Date: Fri, 21 Jun 2024 17:33:10 +0200 Subject: [PATCH 02/22] VOMS-AA replica deployment example (#729) Add a docker compose to show an example of a replica deployment of VOMS-AA. This extends #720. --- .gitmodules | 3 + compose/voms-replica/.env | 14 + compose/voms-replica/README.md | 95 + compose/voms-replica/VOMS-AA_replica.png | Bin 0 -> 927353 bytes .../assets/certs/voms.test.example.cert.pem | 85 + .../assets/certs/voms.test.example.key.pem | 27 + .../voms-replica/assets/db-logs/.gitignore | 1 + .../assets/db-primary/iam-test-dump.sql | 2366 +++++++++++++++++ .../assets/db-primary/replica-source.sql | 2 + .../assets/db-remote/replicate.sql | 9 + .../assets/db-replica/replica-source.sql | 2 + .../assets/db-replica/replicate.sql | 9 + .../assets/mysql-conf/primary.cnf | 11 + .../voms-replica/assets/mysql-conf/remote.cnf | 8 + .../assets/mysql-conf/replica.cnf | 31 + .../assets/nginx/conf.d/nginx.conf | 33 + .../conf.d/voms-primary.test.example.conf | 69 + .../conf.d/voms-remote.test.example.conf | 69 + .../conf.d/voms-replica.test.example.conf | 69 + .../assets/nginx/error/voms-50x-error.xml | 7 + .../assets/nginx/error/voms-cert-error.xml | 7 + .../assets/vomsaa/application-mysql-test.yml | 37 + .../indigo-dc/voms-primary.test.example.lsc | 2 + .../indigo-dc/voms-remote.test.example.lsc | 2 + .../indigo-dc/voms-replica.test.example.lsc | 2 + .../vomsdir/test.vo/vgrid02.cnaf.infn.it.lsc | 2 + compose/voms-replica/assets/vomses/indigo-dc | 6 + compose/voms-replica/assets/vomses/test.vo | 1 + compose/voms-replica/docker-compose.yml | 310 +++ compose/voms-replica/env-files/db.env | 6 + compose/voms-replica/env-files/voms.env | 3 + compose/voms-replica/voms-testsuite | 1 + 32 files changed, 3289 insertions(+) create mode 100644 .gitmodules create mode 100644 compose/voms-replica/.env create mode 100644 compose/voms-replica/README.md create mode 100644 compose/voms-replica/VOMS-AA_replica.png create mode 100644 compose/voms-replica/assets/certs/voms.test.example.cert.pem create mode 100644 compose/voms-replica/assets/certs/voms.test.example.key.pem create mode 100644 compose/voms-replica/assets/db-logs/.gitignore create mode 100644 compose/voms-replica/assets/db-primary/iam-test-dump.sql create mode 100644 compose/voms-replica/assets/db-primary/replica-source.sql create mode 100644 compose/voms-replica/assets/db-remote/replicate.sql create mode 100644 compose/voms-replica/assets/db-replica/replica-source.sql create mode 100644 compose/voms-replica/assets/db-replica/replicate.sql create mode 100644 compose/voms-replica/assets/mysql-conf/primary.cnf create mode 100644 compose/voms-replica/assets/mysql-conf/remote.cnf create mode 100644 compose/voms-replica/assets/mysql-conf/replica.cnf create mode 100644 compose/voms-replica/assets/nginx/conf.d/nginx.conf create mode 100644 compose/voms-replica/assets/nginx/conf.d/voms-primary.test.example.conf create mode 100644 compose/voms-replica/assets/nginx/conf.d/voms-remote.test.example.conf create mode 100644 compose/voms-replica/assets/nginx/conf.d/voms-replica.test.example.conf create mode 100644 compose/voms-replica/assets/nginx/error/voms-50x-error.xml create mode 100644 compose/voms-replica/assets/nginx/error/voms-cert-error.xml create mode 100644 compose/voms-replica/assets/vomsaa/application-mysql-test.yml create mode 100644 compose/voms-replica/assets/vomsdir/indigo-dc/voms-primary.test.example.lsc create mode 100644 compose/voms-replica/assets/vomsdir/indigo-dc/voms-remote.test.example.lsc create mode 100644 compose/voms-replica/assets/vomsdir/indigo-dc/voms-replica.test.example.lsc create mode 100644 compose/voms-replica/assets/vomsdir/test.vo/vgrid02.cnaf.infn.it.lsc create mode 100644 compose/voms-replica/assets/vomses/indigo-dc create mode 100644 compose/voms-replica/assets/vomses/test.vo create mode 100644 compose/voms-replica/docker-compose.yml create mode 100644 compose/voms-replica/env-files/db.env create mode 100644 compose/voms-replica/env-files/voms.env create mode 160000 compose/voms-replica/voms-testsuite diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..fa33427cb --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "compose/voms-replica/voms-testsuite"] + path = compose/voms-replica/voms-testsuite + url = git@github.com:italiangrid/voms-testsuite.git diff --git a/compose/voms-replica/.env b/compose/voms-replica/.env new file mode 100644 index 000000000..b515d9f7a --- /dev/null +++ b/compose/voms-replica/.env @@ -0,0 +1,14 @@ +COMPOSE_PROJECT_NAME=voms +TRUST_IMAGE=indigoiam/egi-trustanchors +TRUST_IMAGE_TAG=igi-test-ca +DB_IMAGE=mysql +DB_IMAGE_TAG=8.3 +NGINX_IMAGE=baltig.infn.it:4567/cnafsd/ngx_http_voms_module/nginx-httpg-voms +NGINX_IMAGE_TAG=latest +VOMS_AA_IMAGE=indigoiam/voms-aa-bp +VOMS_AA_IMAGE_TAG=v1.8.3 +GRID_CLIENTS_IMAGE=indigoiam/robot-framework +GRID_CLIENTS_IMAGE_TAG=latest +IAM_IMAGE=indigoiam/iam-login-service +IAM_IMAGE_TAG=v1.8.3 + diff --git a/compose/voms-replica/README.md b/compose/voms-replica/README.md new file mode 100644 index 000000000..f88bee613 --- /dev/null +++ b/compose/voms-replica/README.md @@ -0,0 +1,95 @@ +# VOMS-AA Replica + +This folder contains a docker compose example to deploy three instances of VOMS-AA in two sites with a DB replica. + +![Setup schema.](VOMS-AA_replica.png) + +With this setup the VOMS-AA service can be replicated on one or more remote locations. If one location fails or is overloaded, a VOMS client can connect to the other locations. + +## Deployment description + +The `compose` file definises a few containers: + +* `trust`: docker image for the GRID CA certificates plus the `igi-test-ca` used in this deployment for test certificates. + +The actual VOMS services are virtually divided between three sites: + +#### Site 1: CERN +* `db-primary`: a dump of the IAM db for test environment. In addition to the db populated with the iam `mysql-dev` profile, the user `test` has a certificate with DN `/C=IT/O=IGI/CN=test0` linked to his account and he also is part of the `indigo-dc` group (necessary to obtain VOMS proxies). A second SQL script creates a `replicator` user for replica. +* `db-replica`: a DB configured to replicate the statements of `db-primary`, from the initial one. It conects with SSL and is configured to be read-only. Only the IAM DB tables which are used by VOMS-AA are replicated. You can see them [here](assets/mysql-conf/replica.cnf). +* `vomsaa-primary` and `vomsaa-replica`: the main voms-aa microservices, each connected to their own DB. +* `ngx-primary` and `ngx-replica`: an extension to NGINX, used for TLS termination, reverse proxy and possibly VOMS proxies validation. They sends requests to the corresponding `vomsaa-primary` and `vomsaa-replica` services. + + +#### Site 2: CNAF +* `db-remote`: this is a full replica of `db-replica`. Only the tables used by VOMS-AA are present in `db-replica`, and thus we avoiding transmitting over the remote network useless information. +* `vomsaa-remote` +* `ngx-remote` + +#### Site 3: Anywhere else +* `client`: it is a single container containing GRID clients (in particular `voms-proxy-init`) used to query both the VOMS services. It connects in round-robin fashion to each endpoint and when one fails it falls back to the others. Here a p12 file for the test user encrypted with the `pass` password is present in the well-known directory (`/home/test/.globus/usercred.p12`). It can be used to obtain a VOMS proxy by `voms-aa` serving a VO named `indigo-dc`. + +### Networking + +We use a few distinct networks, similar to a real scenario: + +* `site1-lan` and `site2-lan`: The internal LAN of the two sites. These are used to connect the DB, VOMS-AA and NGINX between them inside the same site. +* `site-to-site-tunnel`: This is a VPN network or any tunnel network between the two sites, used by `db-remote` to connect to `db-replica`. +* `wan`: The NGINX servers are exposed on the public network so that the clients can connect from anywhere. + +## Test + +Run the docker-compose with + +``` +$ docker compose up -d +``` + +and wait for the `trust` service to finish; all the services will be available shortly afterwards. + +To query the voms-aa using the VOMS client, run: + +``` +$ docker compose exec client voms-proxy-init -voms indigo-dc +Enter GRID pass phrase for this identity: +Contacting voms-remote.test.example:443 [/C=IT/O=IGI/CN=*.test.example] "indigo-dc"... +Remote VOMS server contacted succesfully. + + +Created proxy in /tmp/x509up_u1000. + +Your proxy is valid until Sat Mar 16 03:54:38 CET 2024 +``` + +Check the content of the proxy with + +``` +$ docker compose exec client voms-proxy-info -all +subject : /C=IT/O=IGI/CN=test0/CN=441572696 +issuer : /C=IT/O=IGI/CN=test0 +identity : /C=IT/O=IGI/CN=test0 +type : RFC3820 compliant impersonation proxy +strength : 2048 +path : /tmp/x509up_u1000 +timeleft : 11:59:45 +key usage : Digital Signature, Non Repudiation, Key Encipherment +=== VO indigo-dc extension information === +VO : indigo-dc +subject : /C=IT/O=IGI/CN=test0 +issuer : /C=IT/O=IGI/CN=*.test.example +attribute : /indigo-dc/Role=NULL/Capability=NULL +timeleft : 11:59:45 +uri : voms-remote.test.example:8080 + +``` +If you want to force the query to one voms-aa use one of the followings: +``` +$ docker compose exec client voms-proxy-init -voms voms-primary +$ docker compose exec client voms-proxy-init -voms voms-replica +$ docker compose exec client voms-proxy-init -voms voms-remote +``` + +To run the testsuite: +``` +$ docker compose exec testsuite bash run-testsuite.sh +``` \ No newline at end of file diff --git a/compose/voms-replica/VOMS-AA_replica.png b/compose/voms-replica/VOMS-AA_replica.png new file mode 100644 index 0000000000000000000000000000000000000000..85f130ef9f91517d5da453af00c2587e8bc1861c GIT binary patch literal 927353 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

kY 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%0ADK2!^LN-Vl-z8PR`1iSQfql$m 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

!#)P|3ymLHH;ebZ(xFn1Qw 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 z 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
N?$z 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

aBQK!NUi=cCSH!x)oWgq4YKK=~;` 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 +Q!D>Y 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

%WE(~>6I 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°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

(sBi*T5Bkf6XTZ$hz1I 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

f<^1VU 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 W9l?*fmu++ec*_z7H>*A6nfwn$PDi5v literal 0 HcmV?d00001 diff --git a/compose/voms-replica/assets/certs/voms.test.example.cert.pem b/compose/voms-replica/assets/certs/voms.test.example.cert.pem new file mode 100644 index 000000000..3cbd4774c --- /dev/null +++ b/compose/voms-replica/assets/certs/voms.test.example.cert.pem @@ -0,0 +1,85 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 19 (0x13) + Signature Algorithm: sha512WithRSAEncryption + Issuer: C=IT, O=IGI, CN=Test CA + Validity + Not Before: Oct 19 08:55:57 2022 GMT + Not After : Oct 16 08:55:57 2032 GMT + Subject: C=IT, O=IGI, CN=*.test.example + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:e7:3a:01:a8:93:12:08:f4:a6:c9:89:10:a2:f6: + 6a:6a:d3:93:98:c7:31:c0:e5:8a:3a:44:9b:cf:ef: + b9:3d:05:86:03:61:0e:6e:fc:c6:f9:9a:9e:35:d6: + 3d:38:27:48:cb:77:26:97:15:34:a0:0b:1d:97:31: + dd:18:ec:bf:78:d9:32:9e:00:1a:44:6a:78:15:1f: + ac:7b:3e:bb:ad:b2:b4:32:75:8c:11:d8:31:ec:19: + 7d:bf:ba:5d:1e:70:38:62:10:cf:3a:8a:a4:98:83: + b4:df:e0:50:3b:e5:ec:24:a0:89:14:2c:19:27:48: + 66:c3:d4:1d:74:63:be:63:38:95:3f:64:d0:91:ac: + 95:f7:d9:ca:96:b5:1b:e7:71:70:7b:5f:3b:12:30: + 2c:b8:3a:28:79:84:9c:81:12:db:38:31:6d:2d:2a: + e2:80:05:5c:29:77:53:58:10:19:ee:f9:50:e1:8d: + 3b:2b:e2:c0:0b:d2:9f:3c:a0:95:33:f8:33:17:ce: + 23:0e:31:e8:1e:3d:7e:6a:c9:6d:83:9e:0b:fa:43: + d2:4a:3f:be:d3:19:07:1e:8c:e4:f6:dc:8f:c3:3e: + 3a:8e:66:4a:87:ef:0b:39:db:e8:3e:30:1c:91:9e: + b3:1e:d3:a0:1e:1b:9a:b1:58:99:de:a5:bb:53:3b: + 3b:5d + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Subject Key Identifier: + 60:FA:21:CE:1C:B5:31:8D:9B:01:F6:08:5B:72:4D:59:5A:F8:71:8C + X509v3 Key Usage: critical + Digital Signature, Non Repudiation, Key Encipherment + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication, Microsoft Server Gated Crypto, Netscape Server Gated Crypto, E-mail Protection + X509v3 Authority Key Identifier: + keyid:50:9B:6F:74:01:E3:1A:03:57:AB:D9:D5:7D:15:64:4C:25:F3:F8:F4 + + X509v3 Subject Alternative Name: + DNS:*.test.example + Signature Algorithm: sha512WithRSAEncryption + 79:82:f2:54:44:98:96:25:c2:83:c9:0f:19:69:1c:f6:a7:19: + 0d:61:90:f9:96:23:e2:ab:5a:30:db:55:d7:4f:b0:ff:b2:7b: + 41:da:35:97:47:86:e4:85:00:6d:11:64:ee:32:a4:64:ee:fe: + b2:83:a5:24:4a:ce:c3:91:ae:db:3d:5b:af:fa:7e:81:1a:1c: + 69:d0:1a:9e:70:0e:9e:74:85:6b:48:90:6a:1b:62:ff:6e:b3: + 84:30:b7:7f:fa:c0:3e:ee:91:70:0b:f2:13:ea:c8:2c:aa:d8: + cb:3c:60:b1:08:f9:8e:bf:c2:e4:ce:92:6a:7e:0a:41:49:94: + 8f:e5:6e:71:f9:47:04:1a:18:1f:65:47:d6:1c:ea:a9:90:71: + 82:1b:3b:1f:a5:f2:02:ce:5c:d6:2e:5d:1e:05:c4:92:9e:3d: + 8e:ce:fa:00:83:01:d5:c3:c1:cf:e2:e5:fb:08:80:08:f4:6c: + 26:64:96:db:cd:be:4c:e7:bc:8f:af:3d:0e:0c:f7:d2:52:15: + 9c:d5:15:0d:51:b3:95:72:78:1d:8c:ca:37:55:7a:c0:b0:0f: + 18:ae:de:d0:27:6f:1b:e4:5d:1d:4b:f9:4c:5d:44:49:ed:cf: + c2:9e:e7:c6:55:72:ce:2f:43:a7:2f:88:de:b7:da:9f:82:a6: + 54:77:c2:2e +-----BEGIN CERTIFICATE----- +MIIDmTCCAoGgAwIBAgIBEzANBgkqhkiG9w0BAQ0FADAtMQswCQYDVQQGEwJJVDEM +MAoGA1UECgwDSUdJMRAwDgYDVQQDDAdUZXN0IENBMB4XDTIyMTAxOTA4NTU1N1oX +DTMyMTAxNjA4NTU1N1owNDELMAkGA1UEBhMCSVQxDDAKBgNVBAoMA0lHSTEXMBUG +A1UEAwwOKi50ZXN0LmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQDnOgGokxII9KbJiRCi9mpq05OYxzHA5Yo6RJvP77k9BYYDYQ5u/Mb5mp41 +1j04J0jLdyaXFTSgCx2XMd0Y7L942TKeABpEangVH6x7PrutsrQydYwR2DHsGX2/ +ul0ecDhiEM86iqSYg7Tf4FA75ewkoIkULBknSGbD1B10Y75jOJU/ZNCRrJX32cqW +tRvncXB7XzsSMCy4Oih5hJyBEts4MW0tKuKABVwpd1NYEBnu+VDhjTsr4sAL0p88 +oJUz+DMXziMOMegePX5qyW2Dngv6Q9JKP77TGQcejOT23I/DPjqOZkqH7ws52+g+ +MByRnrMe06AeG5qxWJnepbtTOztdAgMBAAGjgbwwgbkwDAYDVR0TAQH/BAIwADAd +BgNVHQ4EFgQUYPohzhy1MY2bAfYIW3JNWVr4cYwwDgYDVR0PAQH/BAQDAgXgMD4G +A1UdJQQ3MDUGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAwYJYIZIAYb4 +QgQBBggrBgEFBQcDBDAfBgNVHSMEGDAWgBRQm290AeMaA1er2dV9FWRMJfP49DAZ +BgNVHREEEjAQgg4qLnRlc3QuZXhhbXBsZTANBgkqhkiG9w0BAQ0FAAOCAQEAeYLy +VESYliXCg8kPGWkc9qcZDWGQ+ZYj4qtaMNtV10+w/7J7Qdo1l0eG5IUAbRFk7jKk +ZO7+soOlJErOw5Gu2z1br/p+gRocadAannAOnnSFa0iQahti/26zhDC3f/rAPu6R +cAvyE+rILKrYyzxgsQj5jr/C5M6San4KQUmUj+VucflHBBoYH2VH1hzqqZBxghs7 +H6XyAs5c1i5dHgXEkp49js76AIMB1cPBz+Ll+wiACPRsJmSW282+TOe8j689Dgz3 +0lIVnNUVDVGzlXJ4HYzKN1V6wLAPGK7e0CdvG+RdHUv5TF1ESe3Pwp7nxlVyzi9D +py+I3rfan4KmVHfCLg== +-----END CERTIFICATE----- diff --git a/compose/voms-replica/assets/certs/voms.test.example.key.pem b/compose/voms-replica/assets/certs/voms.test.example.key.pem new file mode 100644 index 000000000..610502b89 --- /dev/null +++ b/compose/voms-replica/assets/certs/voms.test.example.key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA5zoBqJMSCPSmyYkQovZqatOTmMcxwOWKOkSbz++5PQWGA2EO +bvzG+ZqeNdY9OCdIy3cmlxU0oAsdlzHdGOy/eNkyngAaRGp4FR+sez67rbK0MnWM +Edgx7Bl9v7pdHnA4YhDPOoqkmIO03+BQO+XsJKCJFCwZJ0hmw9QddGO+YziVP2TQ +kayV99nKlrUb53Fwe187EjAsuDooeYScgRLbODFtLSrigAVcKXdTWBAZ7vlQ4Y07 +K+LAC9KfPKCVM/gzF84jDjHoHj1+asltg54L+kPSSj++0xkHHozk9tyPwz46jmZK +h+8LOdvoPjAckZ6zHtOgHhuasViZ3qW7Uzs7XQIDAQABAoIBAAx5xL0jskVpbdZR +3uPsB7Hb2IrVtImD2QFr0jxV4ti4A5MLGYxDdzjgbsjY1lTBSdwwgZSFQGGiN+aA +ej1uCKaskV6VAtXOKMx6+QNtTxMAIVjXnscXsxnaBj7h/0Q1KdWgso2mDVttP8UU +hT+2GBeh0cOU3YaREXpfZ3dwKkWQHbtO/UYwVzu+XVFt8kApPoLMMHoXZfetP6Yp +7YSCuI6id44mwqkP7aY8iGhcUpVTkP3LD7z8nUp4LaG9my6T1Wev8x7hstb/NIsZ +DPiXAzfDUkHWqpMthnoWyOdghGc6JzKGFeJVHqrW4byJ4hNU3WvNIdvZ8tyIEpd1 +56uP/gECgYEA92oUhzHjvw87qfo6tPDai2I8AghXJoPGB6xYYhchlirYMGPx9fU/ +rcVEGbmSBDqXMg9eZUqiXB+E/hukCOrFZJt4kt656Nm/Xy68IDwSifmf5vcUde6q +j0pD6i0vwJFjYWBjjS7gRBK83pr/jHhy8aK1+79lZ0GfbQkLxF/2TxkCgYEA70Af +A387tHDmct7ZH0gAZx9QKYZhtS+WWVCIoZ81028DEeGri0By83KFkU0QZ9RfWKQi +RajBYkB35xJFv4fSX5s4+tcVaTVJKOn7V5YGmUIxrGY3IMuE77+h9SEHd8GY723q +9qgwTF5SQP3cGiVpGFB99M44CBuHbbypFh67iuUCgYEA3Zp6QI2C/AJc4mZqZt7E +IMwgC4IE7U5h9UV89H7banF9qfobIr5EBxUFZjU8f+Uqv3/cgMVUn0bsC94eEo6V +twM5//LWeaVvL4Xgos6rnEGl422zOd5HjohqRDms58JRTUrUYAR4gwB1gr0530uT +SLMAZTiNTusMLNFJZN6+8yECgYAulAY1sRSXmY9T98y/iU4CxZberrnhA2W697HR +/WQGSMuJNK0oDCEVAku8sQsrm64AXNwLQcJ8dV6iju0jT7cGQ/sA4tTZSbV3kK4N +LDkWp0tya+f5q4WzA1Ttm0OP7hHvMzAWW0Ij7A0JeCLcuEHQqQMMoQVJlspz89Hb +a5pJfQKBgFZb6XnLMTSCs/SQe38PQiawIQcA+zXmhG83xkEKspQGm2KqyJL+AdKQ +fXQKoKa/Ubyp7PKRJVZ8raX1/kvtFDQIQ+G3L/hps5rhZgDh5S2n0xd4zlbK/Sw6 +l3RjOUpHSe8oz+X3Jinl/Rwr39I9hrRAW2xj7vkFb84IE98mJu2X +-----END RSA PRIVATE KEY----- diff --git a/compose/voms-replica/assets/db-logs/.gitignore b/compose/voms-replica/assets/db-logs/.gitignore new file mode 100644 index 000000000..bf0824e59 --- /dev/null +++ b/compose/voms-replica/assets/db-logs/.gitignore @@ -0,0 +1 @@ +*.log \ No newline at end of file diff --git a/compose/voms-replica/assets/db-primary/iam-test-dump.sql b/compose/voms-replica/assets/db-primary/iam-test-dump.sql new file mode 100644 index 000000000..f4bc1e825 --- /dev/null +++ b/compose/voms-replica/assets/db-primary/iam-test-dump.sql @@ -0,0 +1,2366 @@ +-- MySQL dump 10.13 Distrib 8.0.36, for Linux (x86_64) +-- +-- Host: iam.local.io Database: iam +-- ------------------------------------------------------ +-- Server version 5.7.34 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `access_token` +-- + +DROP TABLE IF EXISTS `access_token`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `access_token` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `token_value` varchar(4096) DEFAULT NULL, + `expiration` timestamp NULL DEFAULT NULL, + `token_type` varchar(256) DEFAULT NULL, + `refresh_token_id` bigint(20) DEFAULT NULL, + `client_id` bigint(20) DEFAULT NULL, + `auth_holder_id` bigint(20) DEFAULT NULL, + `id_token_id` bigint(20) DEFAULT NULL, + `approved_site_id` bigint(20) DEFAULT NULL, + `token_value_hash` char(64) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `at_tvh_idx` (`token_value_hash`), + KEY `at_tv_idx` (`token_value`(767)), + KEY `at_exp_idx` (`expiration`), + KEY `at_ahi_idx` (`auth_holder_id`), + KEY `FK_access_token_refresh_token_id` (`refresh_token_id`), + KEY `FK_access_token_client_id` (`client_id`), + CONSTRAINT `FK_access_token_auth_holder_id` FOREIGN KEY (`auth_holder_id`) REFERENCES `authentication_holder` (`id`) ON DELETE CASCADE, + CONSTRAINT `FK_access_token_client_id` FOREIGN KEY (`client_id`) REFERENCES `client_details` (`id`) ON DELETE CASCADE, + CONSTRAINT `FK_access_token_refresh_token_id` FOREIGN KEY (`refresh_token_id`) REFERENCES `refresh_token` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `access_token` +-- + +LOCK TABLES `access_token` WRITE; +/*!40000 ALTER TABLE `access_token` DISABLE KEYS */; +/*!40000 ALTER TABLE `access_token` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `access_token_permissions` +-- + +DROP TABLE IF EXISTS `access_token_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `access_token_permissions` ( + `access_token_id` bigint(20) NOT NULL, + `permission_id` bigint(20) NOT NULL, + PRIMARY KEY (`access_token_id`,`permission_id`), + KEY `FK_access_token_permissions_permission_id` (`permission_id`), + CONSTRAINT `FK_access_token_permissions_access_token_id` FOREIGN KEY (`access_token_id`) REFERENCES `access_token` (`id`) ON DELETE CASCADE, + CONSTRAINT `FK_access_token_permissions_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `permission` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `access_token_permissions` +-- + +LOCK TABLES `access_token_permissions` WRITE; +/*!40000 ALTER TABLE `access_token_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `access_token_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `address` +-- + +DROP TABLE IF EXISTS `address`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `address` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `formatted` varchar(256) DEFAULT NULL, + `street_address` varchar(256) DEFAULT NULL, + `locality` varchar(256) DEFAULT NULL, + `region` varchar(256) DEFAULT NULL, + `postal_code` varchar(256) DEFAULT NULL, + `country` varchar(256) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `address` +-- + +LOCK TABLES `address` WRITE; +/*!40000 ALTER TABLE `address` DISABLE KEYS */; +/*!40000 ALTER TABLE `address` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `approved_site` +-- + +DROP TABLE IF EXISTS `approved_site`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `approved_site` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `user_id` varchar(256) DEFAULT NULL, + `client_id` varchar(256) DEFAULT NULL, + `creation_date` timestamp NULL DEFAULT NULL, + `access_date` timestamp NULL DEFAULT NULL, + `timeout_date` timestamp NULL DEFAULT NULL, + `whitelisted_site_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `FK_approved_site_client_id` (`client_id`), + CONSTRAINT `FK_approved_site_client_id` FOREIGN KEY (`client_id`) REFERENCES `client_details` (`client_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `approved_site` +-- + +LOCK TABLES `approved_site` WRITE; +/*!40000 ALTER TABLE `approved_site` DISABLE KEYS */; +/*!40000 ALTER TABLE `approved_site` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `approved_site_scope` +-- + +DROP TABLE IF EXISTS `approved_site_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `approved_site_scope` ( + `owner_id` bigint(20) DEFAULT NULL, + `scope` varchar(256) DEFAULT NULL, + KEY `FK_approved_site_scope_owner_id` (`owner_id`), + CONSTRAINT `FK_approved_site_scope_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `approved_site` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `approved_site_scope` +-- + +LOCK TABLES `approved_site_scope` WRITE; +/*!40000 ALTER TABLE `approved_site_scope` DISABLE KEYS */; +/*!40000 ALTER TABLE `approved_site_scope` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `authentication_holder` +-- + +DROP TABLE IF EXISTS `authentication_holder`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `authentication_holder` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `user_auth_id` bigint(20) DEFAULT NULL, + `approved` tinyint(1) DEFAULT NULL, + `redirect_uri` varchar(2048) DEFAULT NULL, + `client_id` varchar(256) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `FK_authentication_holder_user_auth_id` (`user_auth_id`), + KEY `FK_authentication_holder_client_id` (`client_id`), + CONSTRAINT `FK_authentication_holder_client_id` FOREIGN KEY (`client_id`) REFERENCES `client_details` (`client_id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `FK_authentication_holder_user_auth_id` FOREIGN KEY (`user_auth_id`) REFERENCES `saved_user_auth` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `authentication_holder` +-- + +LOCK TABLES `authentication_holder` WRITE; +/*!40000 ALTER TABLE `authentication_holder` DISABLE KEYS */; +/*!40000 ALTER TABLE `authentication_holder` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `authentication_holder_authority` +-- + +DROP TABLE IF EXISTS `authentication_holder_authority`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `authentication_holder_authority` ( + `owner_id` bigint(20) DEFAULT NULL, + `authority` varchar(256) DEFAULT NULL, + KEY `aha_oi_idx` (`owner_id`), + CONSTRAINT `FK_authentication_holder_authority_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `authentication_holder` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `authentication_holder_authority` +-- + +LOCK TABLES `authentication_holder_authority` WRITE; +/*!40000 ALTER TABLE `authentication_holder_authority` DISABLE KEYS */; +/*!40000 ALTER TABLE `authentication_holder_authority` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `authentication_holder_extension` +-- + +DROP TABLE IF EXISTS `authentication_holder_extension`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `authentication_holder_extension` ( + `owner_id` bigint(20) DEFAULT NULL, + `extension` varchar(2048) DEFAULT NULL, + `val` varchar(2048) DEFAULT NULL, + KEY `ahe_oi_idx` (`owner_id`), + CONSTRAINT `FK_authentication_holder_extension_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `authentication_holder` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `authentication_holder_extension` +-- + +LOCK TABLES `authentication_holder_extension` WRITE; +/*!40000 ALTER TABLE `authentication_holder_extension` DISABLE KEYS */; +/*!40000 ALTER TABLE `authentication_holder_extension` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `authentication_holder_request_parameter` +-- + +DROP TABLE IF EXISTS `authentication_holder_request_parameter`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `authentication_holder_request_parameter` ( + `owner_id` bigint(20) DEFAULT NULL, + `param` varchar(2048) DEFAULT NULL, + `val` varchar(2048) DEFAULT NULL, + KEY `ahrp_oi_idx` (`owner_id`), + CONSTRAINT `FK_authentication_holder_request_parameter_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `authentication_holder` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `authentication_holder_request_parameter` +-- + +LOCK TABLES `authentication_holder_request_parameter` WRITE; +/*!40000 ALTER TABLE `authentication_holder_request_parameter` DISABLE KEYS */; +/*!40000 ALTER TABLE `authentication_holder_request_parameter` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `authentication_holder_resource_id` +-- + +DROP TABLE IF EXISTS `authentication_holder_resource_id`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `authentication_holder_resource_id` ( + `owner_id` bigint(20) DEFAULT NULL, + `resource_id` varchar(2048) DEFAULT NULL, + KEY `ahri_oi_idx` (`owner_id`), + CONSTRAINT `FK_authentication_holder_resource_id_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `authentication_holder` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `authentication_holder_resource_id` +-- + +LOCK TABLES `authentication_holder_resource_id` WRITE; +/*!40000 ALTER TABLE `authentication_holder_resource_id` DISABLE KEYS */; +/*!40000 ALTER TABLE `authentication_holder_resource_id` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `authentication_holder_response_type` +-- + +DROP TABLE IF EXISTS `authentication_holder_response_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `authentication_holder_response_type` ( + `owner_id` bigint(20) DEFAULT NULL, + `response_type` varchar(2048) DEFAULT NULL, + KEY `ahrt_oi_idx` (`owner_id`), + CONSTRAINT `FK_authentication_holder_response_type_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `authentication_holder` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `authentication_holder_response_type` +-- + +LOCK TABLES `authentication_holder_response_type` WRITE; +/*!40000 ALTER TABLE `authentication_holder_response_type` DISABLE KEYS */; +/*!40000 ALTER TABLE `authentication_holder_response_type` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `authentication_holder_scope` +-- + +DROP TABLE IF EXISTS `authentication_holder_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `authentication_holder_scope` ( + `owner_id` bigint(20) DEFAULT NULL, + `scope` varchar(2048) DEFAULT NULL, + KEY `ahs_oi_idx` (`owner_id`), + CONSTRAINT `FK_authentication_holder_scope_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `authentication_holder` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `authentication_holder_scope` +-- + +LOCK TABLES `authentication_holder_scope` WRITE; +/*!40000 ALTER TABLE `authentication_holder_scope` DISABLE KEYS */; +/*!40000 ALTER TABLE `authentication_holder_scope` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `authorization_code` +-- + +DROP TABLE IF EXISTS `authorization_code`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `authorization_code` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `code` varchar(256) DEFAULT NULL, + `auth_holder_id` bigint(20) DEFAULT NULL, + `expiration` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `ac_ahi_idx` (`auth_holder_id`), + CONSTRAINT `FK_authorization_code_auth_holder_id` FOREIGN KEY (`auth_holder_id`) REFERENCES `authentication_holder` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `authorization_code` +-- + +LOCK TABLES `authorization_code` WRITE; +/*!40000 ALTER TABLE `authorization_code` DISABLE KEYS */; +/*!40000 ALTER TABLE `authorization_code` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `blacklisted_site` +-- + +DROP TABLE IF EXISTS `blacklisted_site`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `blacklisted_site` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `uri` varchar(2048) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `blacklisted_site` +-- + +LOCK TABLES `blacklisted_site` WRITE; +/*!40000 ALTER TABLE `blacklisted_site` DISABLE KEYS */; +/*!40000 ALTER TABLE `blacklisted_site` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `claim` +-- + +DROP TABLE IF EXISTS `claim`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `claim` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(256) DEFAULT NULL, + `friendly_name` varchar(1024) DEFAULT NULL, + `claim_type` varchar(1024) DEFAULT NULL, + `claim_value` varchar(1024) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `claim` +-- + +LOCK TABLES `claim` WRITE; +/*!40000 ALTER TABLE `claim` DISABLE KEYS */; +/*!40000 ALTER TABLE `claim` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `claim_issuer` +-- + +DROP TABLE IF EXISTS `claim_issuer`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `claim_issuer` ( + `owner_id` bigint(20) NOT NULL, + `issuer` varchar(1024) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `claim_issuer` +-- + +LOCK TABLES `claim_issuer` WRITE; +/*!40000 ALTER TABLE `claim_issuer` DISABLE KEYS */; +/*!40000 ALTER TABLE `claim_issuer` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `claim_to_permission_ticket` +-- + +DROP TABLE IF EXISTS `claim_to_permission_ticket`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `claim_to_permission_ticket` ( + `permission_ticket_id` bigint(20) NOT NULL, + `claim_id` bigint(20) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `claim_to_permission_ticket` +-- + +LOCK TABLES `claim_to_permission_ticket` WRITE; +/*!40000 ALTER TABLE `claim_to_permission_ticket` DISABLE KEYS */; +/*!40000 ALTER TABLE `claim_to_permission_ticket` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `claim_to_policy` +-- + +DROP TABLE IF EXISTS `claim_to_policy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `claim_to_policy` ( + `policy_id` bigint(20) NOT NULL, + `claim_id` bigint(20) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `claim_to_policy` +-- + +LOCK TABLES `claim_to_policy` WRITE; +/*!40000 ALTER TABLE `claim_to_policy` DISABLE KEYS */; +/*!40000 ALTER TABLE `claim_to_policy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `claim_token_format` +-- + +DROP TABLE IF EXISTS `claim_token_format`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `claim_token_format` ( + `owner_id` bigint(20) NOT NULL, + `claim_token_format` varchar(1024) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `claim_token_format` +-- + +LOCK TABLES `claim_token_format` WRITE; +/*!40000 ALTER TABLE `claim_token_format` DISABLE KEYS */; +/*!40000 ALTER TABLE `claim_token_format` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_authority` +-- + +DROP TABLE IF EXISTS `client_authority`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_authority` ( + `owner_id` bigint(20) DEFAULT NULL, + `authority` varchar(256) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_authority` +-- + +LOCK TABLES `client_authority` WRITE; +/*!40000 ALTER TABLE `client_authority` DISABLE KEYS */; +/*!40000 ALTER TABLE `client_authority` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_claims_redirect_uri` +-- + +DROP TABLE IF EXISTS `client_claims_redirect_uri`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_claims_redirect_uri` ( + `owner_id` bigint(20) DEFAULT NULL, + `redirect_uri` varchar(2048) DEFAULT NULL, + KEY `FK_client_claims_redirect_uri_owner_id` (`owner_id`), + CONSTRAINT `FK_client_claims_redirect_uri_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `client_details` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_claims_redirect_uri` +-- + +LOCK TABLES `client_claims_redirect_uri` WRITE; +/*!40000 ALTER TABLE `client_claims_redirect_uri` DISABLE KEYS */; +/*!40000 ALTER TABLE `client_claims_redirect_uri` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_contact` +-- + +DROP TABLE IF EXISTS `client_contact`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_contact` ( + `owner_id` bigint(20) DEFAULT NULL, + `contact` varchar(256) DEFAULT NULL, + KEY `FK_client_contact_owner_id` (`owner_id`), + CONSTRAINT `FK_client_contact_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `client_details` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_contact` +-- + +LOCK TABLES `client_contact` WRITE; +/*!40000 ALTER TABLE `client_contact` DISABLE KEYS */; +/*!40000 ALTER TABLE `client_contact` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_default_acr_value` +-- + +DROP TABLE IF EXISTS `client_default_acr_value`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_default_acr_value` ( + `owner_id` bigint(20) DEFAULT NULL, + `default_acr_value` varchar(2000) DEFAULT NULL, + KEY `FK_client_default_acr_value_owner_id` (`owner_id`), + CONSTRAINT `FK_client_default_acr_value_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `client_details` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_default_acr_value` +-- + +LOCK TABLES `client_default_acr_value` WRITE; +/*!40000 ALTER TABLE `client_default_acr_value` DISABLE KEYS */; +/*!40000 ALTER TABLE `client_default_acr_value` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_details` +-- + +DROP TABLE IF EXISTS `client_details`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_details` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `client_description` varchar(1024) DEFAULT NULL, + `reuse_refresh_tokens` tinyint(1) NOT NULL DEFAULT '1', + `dynamically_registered` tinyint(1) NOT NULL DEFAULT '0', + `allow_introspection` tinyint(1) NOT NULL DEFAULT '0', + `id_token_validity_seconds` bigint(20) NOT NULL DEFAULT '600', + `client_id` varchar(256) DEFAULT NULL, + `client_secret` text, + `access_token_validity_seconds` bigint(20) DEFAULT NULL, + `refresh_token_validity_seconds` bigint(20) DEFAULT NULL, + `application_type` varchar(256) DEFAULT NULL, + `client_name` varchar(256) DEFAULT NULL, + `token_endpoint_auth_method` varchar(256) DEFAULT NULL, + `subject_type` varchar(256) DEFAULT NULL, + `logo_uri` text, + `policy_uri` text, + `client_uri` text, + `tos_uri` text, + `jwks_uri` text, + `jwks` text, + `sector_identifier_uri` text, + `request_object_signing_alg` varchar(256) DEFAULT NULL, + `user_info_signed_response_alg` varchar(256) DEFAULT NULL, + `user_info_encrypted_response_alg` varchar(256) DEFAULT NULL, + `user_info_encrypted_response_enc` varchar(256) DEFAULT NULL, + `id_token_signed_response_alg` varchar(256) DEFAULT NULL, + `id_token_encrypted_response_alg` varchar(256) DEFAULT NULL, + `id_token_encrypted_response_enc` varchar(256) DEFAULT NULL, + `token_endpoint_auth_signing_alg` varchar(256) DEFAULT NULL, + `default_max_age` bigint(20) DEFAULT NULL, + `require_auth_time` tinyint(1) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `initiate_login_uri` varchar(2048) DEFAULT NULL, + `clear_access_tokens_on_refresh` tinyint(1) NOT NULL DEFAULT '1', + `software_statement` text, + `code_challenge_method` varchar(256) DEFAULT NULL, + `software_id` text, + `software_version` text, + `device_code_validity_seconds` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `client_id` (`client_id`), + KEY `cd_ci_idx` (`client_id`) +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_details` +-- + +LOCK TABLES `client_details` WRITE; +/*!40000 ALTER TABLE `client_details` DISABLE KEYS */; +INSERT INTO `client_details` VALUES (1,NULL,1,0,1,600,'client','secret',3600,NULL,NULL,'Test Client','SECRET_BASIC',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(2,NULL,1,0,1,0,'tasks-app','secret',0,NULL,NULL,'Tasks App','SECRET_BASIC',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(3,NULL,1,0,1,600,'post-client','secret',3600,NULL,NULL,'Post client','SECRET_POST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(4,NULL,1,0,1,600,'client-cred','secret',3600,NULL,NULL,'Client credentials','SECRET_BASIC',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(5,NULL,1,0,1,600,'password-grant','secret',3600,NULL,NULL,'Password grant client','SECRET_BASIC',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(6,NULL,1,0,1,600,'scim-client-ro','secret',3600,NULL,NULL,'SCIM client (read-only)','SECRET_POST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,600),(7,NULL,1,0,1,600,'scim-client-rw','secret',3600,NULL,NULL,'SCIM client (read-write)','SECRET_POST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,600),(8,NULL,1,0,1,600,'token-exchange-actor','secret',3600,NULL,NULL,'Token Exchange grant client actor','SECRET_POST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(9,NULL,1,0,1,600,'token-exchange-subject','secret',3600,NULL,NULL,'Token Exchange grant client subject','SECRET_POST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(10,NULL,1,0,1,600,'registration-client','secret',3600,NULL,NULL,'Registration service test client','SECRET_POST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(11,NULL,1,0,1,600,'token-lookup-client','secret',3600,NULL,NULL,'Token lookup client','SECRET_BASIC',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(12,NULL,1,0,1,600,'device-code-client','secret',3600,NULL,NULL,'Device code client','SECRET_BASIC',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,600),(13,NULL,1,0,0,600,'implicit-flow-client',NULL,3600,NULL,NULL,'Implicit Flow client',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,600),(14,NULL,1,0,0,600,'public-dc-client',NULL,3600,NULL,NULL,'Public Device Code client',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,600),(15,NULL,1,0,1,600,'jwt-auth-client_secret_jwt','c8e9eed0-e6e4-4a66-b16e-6f37096356a7',3600,NULL,NULL,'JWT Bearer Auth Client (client_secret_jwt)','SECRET_JWT',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'HS256',NULL,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL),(16,NULL,1,0,1,600,'jwt-auth-private_key_jwt','secret',3600,NULL,NULL,'JWT Bearer Auth Client (private_key_jwt)','PRIVATE_KEY',NULL,NULL,NULL,NULL,NULL,NULL,'{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"kid\":\"rsa1\",\"n\":\"1y1CP181zqPNPlV1JDM7Xv0QnGswhSTHe8_XPZHxDTJkykpk_1BmgA3ovP62QRE2ORgsv5oSBI_Z_RaOc4Zx2FonjEJF2oBHtBjsAiF-pxGkM5ZPjFNgFTGp1yUUBjFDcEeIGCwPEyYSt93sQIP_0DRbViMUnpyn3xgM_a1dO5brEWR2n1Uqff1yA5NXfLS03qpl2dpH4HFY5-Zs4bvtJykpAOhoHuIQbz-hmxb9MZ3uTAwsx2HiyEJtz-suyTBHO3BM2o8UcCeyfa34ShPB8i86-sf78fOk2KeRIW1Bju3ANmdV3sxL0j29cesxKCZ06u2ZiGR3Srbft8EdLPzf-w\"}]}',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'RS256',NULL,0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL),(17,NULL,1,0,1,600,'admin-client-ro','secret',3600,NULL,NULL,'Admin client (read-only)','SECRET_POST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(18,NULL,1,0,1,600,'admin-client-rw','secret',3600,NULL,NULL,'Admin client (read-write)','SECRET_POST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL),(19,NULL,1,0,1,600,'public-client',NULL,3600,3600,NULL,'Public client','NONE',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2024-03-27 17:43:07',NULL,1,NULL,NULL,NULL,NULL,NULL); +/*!40000 ALTER TABLE `client_details` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_grant_type` +-- + +DROP TABLE IF EXISTS `client_grant_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_grant_type` ( + `owner_id` bigint(20) DEFAULT NULL, + `grant_type` varchar(2000) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_grant_type` +-- + +LOCK TABLES `client_grant_type` WRITE; +/*!40000 ALTER TABLE `client_grant_type` DISABLE KEYS */; +INSERT INTO `client_grant_type` VALUES (1,'authorization_code'),(1,'urn:ietf:params:oauth:grant_type:redelegate'),(1,'implicit'),(1,'refresh_token'),(3,'authorization_code'),(3,'client_credentials'),(4,'password'),(4,'client_credentials'),(5,'password'),(5,'refresh_token'),(6,'client_credentials'),(7,'client_credentials'),(7,'refresh_token'),(7,'urn:ietf:params:oauth:grant-type:device_code'),(8,'urn:ietf:params:oauth:grant-type:token-exchange'),(8,'client_credentials'),(8,'password'),(8,'refresh_token'),(9,'password'),(9,'refresh_token'),(9,'client_credentials'),(10,'client_credentials'),(10,'refresh_token'),(11,'authorization_code'),(11,'refresh_token'),(11,'client_credentials'),(11,'urn:ietf:params:oauth:grant-type:token-exchange'),(12,'refresh_token'),(12,'urn:ietf:params:oauth:grant-type:device_code'),(13,'implicit'),(14,'urn:ietf:params:oauth:grant-type:device_code'),(17,'client_credentials'),(17,'urn:ietf:params:oauth:grant-type:device_code'),(17,'authorization_code'),(18,'client_credentials'),(18,'urn:ietf:params:oauth:grant-type:device_code'),(18,'authorization_code'),(19,'client_credentials'); +/*!40000 ALTER TABLE `client_grant_type` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_post_logout_redirect_uri` +-- + +DROP TABLE IF EXISTS `client_post_logout_redirect_uri`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_post_logout_redirect_uri` ( + `owner_id` bigint(20) DEFAULT NULL, + `post_logout_redirect_uri` varchar(2000) DEFAULT NULL, + KEY `FK_client_post_logout_redirect_uri_owner_id` (`owner_id`), + CONSTRAINT `FK_client_post_logout_redirect_uri_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `client_details` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_post_logout_redirect_uri` +-- + +LOCK TABLES `client_post_logout_redirect_uri` WRITE; +/*!40000 ALTER TABLE `client_post_logout_redirect_uri` DISABLE KEYS */; +/*!40000 ALTER TABLE `client_post_logout_redirect_uri` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_redirect_uri` +-- + +DROP TABLE IF EXISTS `client_redirect_uri`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_redirect_uri` ( + `owner_id` bigint(20) DEFAULT NULL, + `redirect_uri` varchar(2048) DEFAULT NULL, + KEY `FK_client_redirect_uri_owner_id` (`owner_id`), + CONSTRAINT `FK_client_redirect_uri_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `client_details` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_redirect_uri` +-- + +LOCK TABLES `client_redirect_uri` WRITE; +/*!40000 ALTER TABLE `client_redirect_uri` DISABLE KEYS */; +INSERT INTO `client_redirect_uri` VALUES (1,'http://localhost:9090/iam-test-client/openid_connect_login'),(1,'https://iam.local.io/iam-test-client/openid_connect_login'),(3,'http://localhost:4000/callback'),(4,'http://localhost:5000/callback'),(11,'http://localhost:1234/callback'),(13,'http://localhost:9876/implicit'); +/*!40000 ALTER TABLE `client_redirect_uri` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_request_uri` +-- + +DROP TABLE IF EXISTS `client_request_uri`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_request_uri` ( + `owner_id` bigint(20) DEFAULT NULL, + `request_uri` varchar(2000) DEFAULT NULL, + KEY `FK_client_request_uri_owner_id` (`owner_id`), + CONSTRAINT `FK_client_request_uri_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `client_details` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_request_uri` +-- + +LOCK TABLES `client_request_uri` WRITE; +/*!40000 ALTER TABLE `client_request_uri` DISABLE KEYS */; +/*!40000 ALTER TABLE `client_request_uri` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_resource` +-- + +DROP TABLE IF EXISTS `client_resource`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_resource` ( + `owner_id` bigint(20) DEFAULT NULL, + `resource_id` varchar(256) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_resource` +-- + +LOCK TABLES `client_resource` WRITE; +/*!40000 ALTER TABLE `client_resource` DISABLE KEYS */; +/*!40000 ALTER TABLE `client_resource` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_response_type` +-- + +DROP TABLE IF EXISTS `client_response_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_response_type` ( + `owner_id` bigint(20) DEFAULT NULL, + `response_type` varchar(2000) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_response_type` +-- + +LOCK TABLES `client_response_type` WRITE; +/*!40000 ALTER TABLE `client_response_type` DISABLE KEYS */; +/*!40000 ALTER TABLE `client_response_type` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `client_scope` +-- + +DROP TABLE IF EXISTS `client_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `client_scope` ( + `owner_id` bigint(20) DEFAULT NULL, + `scope` varchar(2048) DEFAULT NULL, + KEY `FK_client_scope_owner_id` (`owner_id`), + CONSTRAINT `FK_client_scope_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `client_details` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `client_scope` +-- + +LOCK TABLES `client_scope` WRITE; +/*!40000 ALTER TABLE `client_scope` DISABLE KEYS */; +INSERT INTO `client_scope` VALUES (1,'openid'),(1,'profile'),(1,'email'),(1,'address'),(1,'phone'),(1,'offline_access'),(1,'read-tasks'),(1,'write-tasks'),(1,'read:/'),(1,'write:/'),(1,'attr'),(1,'scim:read'),(1,'scim:write'),(1,'iam:admin.read'),(1,'iam:admin.write'),(2,'openid'),(2,'profile'),(2,'read-tasks'),(2,'write-tasks'),(3,'openid'),(3,'profile'),(3,'read-tasks'),(3,'write-tasks'),(4,'openid'),(4,'profile'),(4,'read-tasks'),(4,'write-tasks'),(4,'offline_access'),(4,'storage.read:/'),(4,'storage.write:/'),(4,'wlcg.groups'),(5,'openid'),(5,'profile'),(5,'email'),(5,'address'),(5,'phone'),(5,'offline_access'),(5,'scim:read'),(5,'scim:write'),(5,'proxy:generate'),(5,'wlcg.groups'),(5,'storage.read:/'),(5,'storage.modify:/'),(5,'storage.create:/'),(5,'attr'),(6,'openid'),(6,'profile'),(6,'email'),(6,'address'),(6,'phone'),(6,'offline_access'),(6,'scim:read'),(7,'openid'),(7,'profile'),(7,'email'),(7,'address'),(7,'phone'),(7,'offline_access'),(7,'scim:read'),(7,'scim:write'),(8,'openid'),(8,'profile'),(8,'email'),(8,'address'),(8,'phone'),(8,'offline_access'),(8,'read-tasks'),(8,'storage.read:/'),(8,'storage.write:/'),(9,'openid'),(9,'profile'),(9,'offline_access'),(9,'storage.read:/'),(9,'storage.write:/'),(10,'openid'),(10,'profile'),(10,'registration:read'),(10,'registration:write'),(10,'scim:write'),(10,'scim:read'),(11,'openid'),(11,'profile'),(11,'email'),(11,'address'),(11,'phone'),(11,'offline_access'),(11,'read-tasks'),(11,'write-tasks'),(12,'openid'),(12,'profile'),(12,'email'),(12,'address'),(12,'phone'),(12,'offline_access'),(13,'openid'),(13,'profile'),(13,'email'),(13,'address'),(13,'phone'),(14,'profile'),(14,'email'),(14,'address'),(14,'phone'),(17,'iam:admin.read'),(18,'iam:admin.read'),(18,'iam:admin.write'),(19,'profile'),(19,'email'),(5,'eduperson_scoped_affiliation'),(5,'eduperson_entitlement'),(5,'eduperson_assurance'),(5,'entitlements'); +/*!40000 ALTER TABLE `client_scope` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `device_code` +-- + +DROP TABLE IF EXISTS `device_code`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `device_code` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `device_code` varchar(1024) DEFAULT NULL, + `user_code` varchar(1024) DEFAULT NULL, + `expiration` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `client_id` varchar(256) DEFAULT NULL, + `approved` tinyint(1) DEFAULT NULL, + `auth_holder_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `device_code` +-- + +LOCK TABLES `device_code` WRITE; +/*!40000 ALTER TABLE `device_code` DISABLE KEYS */; +/*!40000 ALTER TABLE `device_code` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `device_code_request_parameter` +-- + +DROP TABLE IF EXISTS `device_code_request_parameter`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `device_code_request_parameter` ( + `owner_id` bigint(20) DEFAULT NULL, + `param` varchar(2048) DEFAULT NULL, + `val` varchar(2048) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `device_code_request_parameter` +-- + +LOCK TABLES `device_code_request_parameter` WRITE; +/*!40000 ALTER TABLE `device_code_request_parameter` DISABLE KEYS */; +/*!40000 ALTER TABLE `device_code_request_parameter` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `device_code_scope` +-- + +DROP TABLE IF EXISTS `device_code_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `device_code_scope` ( + `owner_id` bigint(20) NOT NULL, + `scope` varchar(256) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `device_code_scope` +-- + +LOCK TABLES `device_code_scope` WRITE; +/*!40000 ALTER TABLE `device_code_scope` DISABLE KEYS */; +/*!40000 ALTER TABLE `device_code_scope` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_account` +-- + +DROP TABLE IF EXISTS `iam_account`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_account` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `active` tinyint(1) NOT NULL DEFAULT '0', + `CREATIONTIME` datetime NOT NULL, + `LASTUPDATETIME` datetime NOT NULL, + `PASSWORD` varchar(128) DEFAULT NULL, + `USERNAME` varchar(128) NOT NULL, + `UUID` varchar(36) NOT NULL, + `user_info_id` bigint(20) DEFAULT NULL, + `confirmation_key` varchar(36) DEFAULT NULL, + `reset_key` varchar(36) DEFAULT NULL, + `provisioned` tinyint(1) NOT NULL DEFAULT '0', + `last_login_time` datetime DEFAULT NULL, + `end_time` datetime DEFAULT NULL, + PRIMARY KEY (`ID`), + UNIQUE KEY `USERNAME` (`USERNAME`), + UNIQUE KEY `UUID` (`UUID`), + KEY `FK_iam_account_user_info_id` (`user_info_id`), + KEY `ia_ct_idx` (`CREATIONTIME`), + KEY `ia_lut_idx` (`LASTUPDATETIME`), + KEY `ia_llt_idx` (`last_login_time`), + KEY `ia_et_idx` (`end_time`), + CONSTRAINT `FK_iam_account_user_info_id` FOREIGN KEY (`user_info_id`) REFERENCES `iam_user_info` (`ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_account` +-- + +LOCK TABLES `iam_account` WRITE; +/*!40000 ALTER TABLE `iam_account` DISABLE KEYS */; +INSERT INTO `iam_account` VALUES (1,1,'2024-03-27 18:42:54','2024-03-27 18:42:54','$2a$10$2wYm8dK5PL5t9HAI.mWVyuJY8bzsir5TaugC701G4P4zzghtAt9Ty','admin','73f16d93-2441-4a50-88ff-85360d78c6b5',1,NULL,NULL,0,NULL,NULL),(2,1,'2024-03-27 18:43:07','2024-03-27 18:47:59','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test','80e5fb8d-b7c8-451a-89ba-346ae278a66f',2,NULL,NULL,0,NULL,NULL),(3,1,'2024-03-27 18:42:54','2024-03-27 18:42:54','$2a$10$nX.oUqHSe47/0mE3Yr6JYeSsQWhEbruVlPn0h1CCXVHM/aR5pUmee','dup_email_0','bffc67b7-47fe-410c-a6a0-cf00173a8fbb',3,NULL,NULL,0,NULL,NULL),(4,1,'2024-03-27 18:42:54','2024-03-27 18:42:54','$2a$10$cGwVNB2oUJYT7YyE0EE37eWExMNaWvzsrgNwG7fGeAEqO69l2HC6u','dup_email_1','0a6fa72a-fb75-4a6c-9734-bfe673df70b3',4,NULL,NULL,0,NULL,NULL),(5,1,'2024-03-27 18:42:54','2024-03-27 18:42:54','$2a$10$ok8I22EhzEavrRs7xnT31.VtlpGhjPoWIDyNZbwHlmx3gfhdGeeWi','dup_email_2','d836e5ec-246c-456c-8476-923ee2f831c8',5,NULL,NULL,0,NULL,NULL),(100,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_100','f2ce8cb2-a1db-4884-9ef0-d8842cc02b4a',100,NULL,NULL,0,NULL,NULL),(101,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_101','1a78b3b8-22d2-4746-9269-df55aceb036f',101,NULL,NULL,0,NULL,NULL),(102,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_102','a07d60c6-7ffa-475f-98e4-f9f648aa278b',102,NULL,NULL,0,NULL,NULL),(103,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_103','56e1b885-ea25-4ffc-ba17-fcde2b097d02',103,NULL,NULL,0,NULL,NULL),(104,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_104','67d2794d-c7fb-406e-9bc1-b66f43cbe60f',104,NULL,NULL,0,NULL,NULL),(105,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_105','d11e04f7-f369-4de6-9375-394f7d886ac7',105,NULL,NULL,0,NULL,NULL),(106,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_106','bbc76b76-9f9e-443b-8c63-cd775c50c6f3',106,NULL,NULL,0,NULL,NULL),(107,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_107','b15c850c-e6e0-4afb-a02d-374653bb102e',107,NULL,NULL,0,NULL,NULL),(108,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_108','afada6e8-d50d-47f6-912e-d6261605c771',108,NULL,NULL,0,NULL,NULL),(109,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_109','fa3b4c97-4787-4b49-a32c-5b4c74d5a7c8',109,NULL,NULL,0,NULL,NULL),(110,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_110','33165df6-4d49-4728-883c-3fd42720d46b',110,NULL,NULL,0,NULL,NULL),(111,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_111','15fb8d3a-003d-4ef9-8349-867d81d4ae9c',111,NULL,NULL,0,NULL,NULL),(112,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_112','7a4dda33-c2e5-4304-998a-3fa4df481123',112,NULL,NULL,0,NULL,NULL),(113,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_113','7013f989-0a95-43b5-8637-2e2360a73bb3',113,NULL,NULL,0,NULL,NULL),(114,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_114','12caabc8-4766-4028-98ff-f4d7f288a5f0',114,NULL,NULL,0,NULL,NULL),(115,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_115','f463ad2b-5814-4877-bb62-f954c67a8044',115,NULL,NULL,0,NULL,NULL),(116,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_116','28c656c4-5489-4654-a257-0806c6bab905',116,NULL,NULL,0,NULL,NULL),(117,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_117','11be5a72-9416-45fc-a0a7-f3e23c54bfda',117,NULL,NULL,0,NULL,NULL),(118,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_118','3cea2c01-786e-41a3-8fdf-4229cc4e3742',118,NULL,NULL,0,NULL,NULL),(119,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_119','e0247677-4542-4df3-8d75-8efa11e70911',119,NULL,NULL,0,NULL,NULL),(120,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_120','d905a115-d726-4e11-ba1f-b8482177bb05',120,NULL,NULL,0,NULL,NULL),(121,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_121','3479afd1-584c-4479-b6e2-25f6cef2f842',121,NULL,NULL,0,NULL,NULL),(122,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_122','8d4f467d-cb68-4feb-b898-71e4487e6820',122,NULL,NULL,0,NULL,NULL),(123,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_123','0ddee1c2-1426-4b83-b520-e20bdd8ef9b3',123,NULL,NULL,0,NULL,NULL),(124,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_124','b8b638be-6e09-4dbe-bcc0-776c2403e8c7',124,NULL,NULL,0,NULL,NULL),(125,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_125','1dc3108a-b5c0-4e5b-accd-925054075bc4',125,NULL,NULL,0,NULL,NULL),(126,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_126','5eed3374-c131-4513-84b7-dd0ff965da35',126,NULL,NULL,0,NULL,NULL),(127,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_127','2d0b4c36-0301-49f6-a20b-23b6ca48cee2',127,NULL,NULL,0,NULL,NULL),(128,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_128','db46065a-ba62-423d-9397-7bc6fab371a5',128,NULL,NULL,0,NULL,NULL),(129,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_129','d9dbaabf-c51a-45e5-aee1-25134ba283ac',129,NULL,NULL,0,NULL,NULL),(130,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_130','5678f40a-f361-464c-aa71-ffb48d163aaa',130,NULL,NULL,0,NULL,NULL),(131,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_131','209ae3b9-e266-4e57-a639-db29f61a7594',131,NULL,NULL,0,NULL,NULL),(132,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_132','f3fac505-d5c9-4d9c-83af-3976f357f19c',132,NULL,NULL,0,NULL,NULL),(133,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_133','13bfd34b-1dda-452e-bd9a-284aabccf07d',133,NULL,NULL,0,NULL,NULL),(134,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_134','15ccd152-1537-48d4-a55a-fd6565e5d86f',134,NULL,NULL,0,NULL,NULL),(135,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_135','6b2f4fc1-3e98-4f64-8fb4-517d2d4b3fa3',135,NULL,NULL,0,NULL,NULL),(136,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_136','398081ee-9c3c-4e5d-802c-90a4579030d4',136,NULL,NULL,0,NULL,NULL),(137,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_137','89a32317-dd45-481d-91a4-080e30c1f29e',137,NULL,NULL,0,NULL,NULL),(138,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_138','6dc0aa56-011d-45b8-bf26-cb03e8b40ccf',138,NULL,NULL,0,NULL,NULL),(139,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_139','cd62277e-5acf-41af-acea-b4d208cba29e',139,NULL,NULL,0,NULL,NULL),(140,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_140','0ae29eac-64ee-45b4-a2e7-e58b34c7ff0e',140,NULL,NULL,0,NULL,NULL),(141,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_141','0f7fe907-fa84-429e-8057-02d809375ba3',141,NULL,NULL,0,NULL,NULL),(142,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_142','7aa4a733-d318-4392-b3d3-6618263f667d',142,NULL,NULL,0,NULL,NULL),(143,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_143','b1d9b1ac-e77c-4d55-a895-cf0788ed2174',143,NULL,NULL,0,NULL,NULL),(144,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_144','f975f1f7-ad05-4d66-9905-d44c13cbd08b',144,NULL,NULL,0,NULL,NULL),(145,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_145','857f6e6d-e415-4850-a82b-59d557864910',145,NULL,NULL,0,NULL,NULL),(146,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_146','4e1c059c-1d06-4997-8bfa-5bd09fdb4571',146,NULL,NULL,0,NULL,NULL),(147,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_147','f4a0bc7f-b279-4caf-b8d1-c86a3c106f62',147,NULL,NULL,0,NULL,NULL),(148,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_148','007bbb9d-55b1-4f5e-80a5-bbcb22073db4',148,NULL,NULL,0,NULL,NULL),(149,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_149','a1d22bbf-9afe-49da-b75d-b58f825db351',149,NULL,NULL,0,NULL,NULL),(150,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_150','8c2351d5-5460-4b2d-b1bb-7b086130090e',150,NULL,NULL,0,NULL,NULL),(151,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_151','e6651896-66f8-4f63-b44f-71710fdb947c',151,NULL,NULL,0,NULL,NULL),(152,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_152','caf04a3c-8f35-40a3-99b6-48ba6a05d8b8',152,NULL,NULL,0,NULL,NULL),(153,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_153','d501e485-a306-4c9d-9baf-cc75f2321cfd',153,NULL,NULL,0,NULL,NULL),(154,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_154','57466d38-cae8-48bf-ac67-2cfc0266b5b0',154,NULL,NULL,0,NULL,NULL),(155,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_155','4bd5f059-f014-4356-8083-9c1a77adb6fd',155,NULL,NULL,0,NULL,NULL),(156,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_156','69130f52-f251-46fd-99ee-d646938e5f3f',156,NULL,NULL,0,NULL,NULL),(157,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_157','dedfb4f0-a545-44b3-abba-dd77103db894',157,NULL,NULL,0,NULL,NULL),(158,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_158','b5d98a8b-3780-4ace-ace1-ac12829dc469',158,NULL,NULL,0,NULL,NULL),(159,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_159','17de2f08-37fe-469d-b7b1-0e9ea9c6d2d8',159,NULL,NULL,0,NULL,NULL),(160,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_160','313abc40-4c88-45df-89e7-bd7bbf97b0fd',160,NULL,NULL,0,NULL,NULL),(161,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_161','c5d7fc06-16fc-4711-be37-27bbf2c2c07c',161,NULL,NULL,0,NULL,NULL),(162,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_162','ca31bf4d-f5da-4fc4-ae36-fd3cc0d35d7f',162,NULL,NULL,0,NULL,NULL),(163,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_163','dc98bb8e-4b91-4915-86fb-476c9503a936',163,NULL,NULL,0,NULL,NULL),(164,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_164','79dd006c-0e4c-4a79-8600-ef8a0ae5bc04',164,NULL,NULL,0,NULL,NULL),(165,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_165','05cdc1f7-7787-43d6-80c6-588277fefb9b',165,NULL,NULL,0,NULL,NULL),(166,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_166','dcdeb139-71ab-44f5-a709-ab33fec49882',166,NULL,NULL,0,NULL,NULL),(167,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_167','35a98804-b05e-47b0-917b-d72a4d4a5240',167,NULL,NULL,0,NULL,NULL),(168,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_168','5e4d4351-82c7-438d-8f83-ee2b7ebe1fe3',168,NULL,NULL,0,NULL,NULL),(169,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_169','e1a205e2-f202-402d-8542-4cfc529ef514',169,NULL,NULL,0,NULL,NULL),(170,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_170','a2e6271e-5b30-42d1-a211-494b98832676',170,NULL,NULL,0,NULL,NULL),(171,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_171','68515954-75ea-4022-9581-4cb4d28c6d6d',171,NULL,NULL,0,NULL,NULL),(172,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_172','41663b84-06b5-4787-a49e-1f745ca1eab3',172,NULL,NULL,0,NULL,NULL),(173,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_173','b257f456-bdae-4c58-8519-756abbda462a',173,NULL,NULL,0,NULL,NULL),(174,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_174','d848b9cb-05e4-4dcf-b9b7-431d83c41810',174,NULL,NULL,0,NULL,NULL),(175,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_175','b6859250-dcca-47ef-b013-f609468d2389',175,NULL,NULL,0,NULL,NULL),(176,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_176','e18bc682-897b-4696-a5ef-eee37a52a3de',176,NULL,NULL,0,NULL,NULL),(177,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_177','6b00471d-f496-4335-8209-5a9e13d18b9e',177,NULL,NULL,0,NULL,NULL),(178,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_178','35664644-7b32-4503-86f4-76adbb57762c',178,NULL,NULL,0,NULL,NULL),(179,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_179','7890415f-6563-4f25-bdf3-a5f45159a1b1',179,NULL,NULL,0,NULL,NULL),(180,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_180','a1edf880-e270-4dac-b69f-73e61c517397',180,NULL,NULL,0,NULL,NULL),(181,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_181','73520029-5901-4022-b9da-38ccd73fe799',181,NULL,NULL,0,NULL,NULL),(182,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_182','de5825a3-c585-45b3-88a1-7e5e80686826',182,NULL,NULL,0,NULL,NULL),(183,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_183','bb50b80a-f471-4f64-85fb-4e5051708a4a',183,NULL,NULL,0,NULL,NULL),(184,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_184','b7aa98b9-30da-468c-8566-06a5b804c4b9',184,NULL,NULL,0,NULL,NULL),(185,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_185','c230e253-f874-4365-8b0e-7ba5ebc1cc26',185,NULL,NULL,0,NULL,NULL),(186,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_186','7593dbbf-9286-460b-a234-32b560817f60',186,NULL,NULL,0,NULL,NULL),(187,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_187','ee1e2ce5-da23-4576-84e3-ad7cf4e0ce26',187,NULL,NULL,0,NULL,NULL),(188,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_188','bf1cc1be-f405-4282-b7be-9a4578670046',188,NULL,NULL,0,NULL,NULL),(189,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_189','e5ed670a-f944-40f0-8c10-d41c3350ead5',189,NULL,NULL,0,NULL,NULL),(190,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_190','8370db5c-e196-451a-9f5f-9b99c570cf46',190,NULL,NULL,0,NULL,NULL),(191,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_191','81498342-d247-4a60-80de-2c4cb4b1a84d',191,NULL,NULL,0,NULL,NULL),(192,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_192','213f1b3c-516e-4a6f-9785-d8c85d32f83e',192,NULL,NULL,0,NULL,NULL),(193,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_193','08ba27e6-b1b5-4d9e-a64a-6b5bc538bf43',193,NULL,NULL,0,NULL,NULL),(194,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_194','cf0cfa8e-377c-44a0-a6d1-a74ce1de08fb',194,NULL,NULL,0,NULL,NULL),(195,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_195','2ea66412-8dc2-4081-8d48-e3637ca82604',195,NULL,NULL,0,NULL,NULL),(196,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_196','4ed466eb-ee51-4433-9d0f-3a56216698a2',196,NULL,NULL,0,NULL,NULL),(197,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_197','cc03fc51-097d-43d6-bb6c-a0df72ec4838',197,NULL,NULL,0,NULL,NULL),(198,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_198','11844e66-8146-4263-aaa6-1fde7e5cfc58',198,NULL,NULL,0,NULL,NULL),(199,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_199','b5a954c6-69a9-473c-a4c4-83c4f7a88c1c',199,NULL,NULL,0,NULL,NULL),(200,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_200','167e359e-7833-4ce2-9f8b-f035cee39505',200,NULL,NULL,0,NULL,NULL),(201,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_201','5afb5430-a023-4a50-aa92-b134a0fb68b3',201,NULL,NULL,0,NULL,NULL),(202,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_202','de17b155-307c-4f9b-81f3-7f8b73d2526a',202,NULL,NULL,0,NULL,NULL),(203,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_203','c966145b-ac05-4a2c-874d-f7b585d1d03b',203,NULL,NULL,0,NULL,NULL),(204,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_204','1d88ea5a-ab5f-40b1-bd48-f18f86eef5d9',204,NULL,NULL,0,NULL,NULL),(205,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_205','6cb0be93-7829-4bfc-ba4a-4d2cdff45447',205,NULL,NULL,0,NULL,NULL),(206,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_206','e31a2ca7-fcaa-4b98-aac9-7e78f8605851',206,NULL,NULL,0,NULL,NULL),(207,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_207','f26899b7-64e0-4c16-9134-cef3774f1614',207,NULL,NULL,0,NULL,NULL),(208,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_208','606cf6ab-6b5e-45d1-83b8-e535b197d2f0',208,NULL,NULL,0,NULL,NULL),(209,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_209','617bfc4e-17b1-4ca7-b736-58a74c267747',209,NULL,NULL,0,NULL,NULL),(210,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_210','e5c26b7a-17bd-47ce-aac8-1430c57b8152',210,NULL,NULL,0,NULL,NULL),(211,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_211','7747bff5-b1e5-49b9-9a87-f93a5b790df0',211,NULL,NULL,0,NULL,NULL),(212,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_212','c6e5b631-1e91-4ecd-8358-214eec07a91d',212,NULL,NULL,0,NULL,NULL),(213,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_213','a874c7bd-97ac-4f48-bda5-7d3305d9067d',213,NULL,NULL,0,NULL,NULL),(214,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_214','c7938cc2-8032-424b-8f49-85558f95364b',214,NULL,NULL,0,NULL,NULL),(215,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_215','46017ce9-d4dd-4ddc-8b73-d596e23d25ad',215,NULL,NULL,0,NULL,NULL),(216,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_216','d5e66fd2-232e-476d-8de0-2bc1eb59630d',216,NULL,NULL,0,NULL,NULL),(217,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_217','097dc614-bc56-4f5f-a190-3ca1716a6400',217,NULL,NULL,0,NULL,NULL),(218,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_218','a3b97132-067f-4839-9b99-830a7fb659d4',218,NULL,NULL,0,NULL,NULL),(219,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_219','8d35557f-7451-4c54-bb17-9c3d204c48d3',219,NULL,NULL,0,NULL,NULL),(220,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_220','a6fba1ff-a5d7-4907-8cd4-1caa27cad85d',220,NULL,NULL,0,NULL,NULL),(221,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_221','427feb36-4401-4971-83de-f93672c028aa',221,NULL,NULL,0,NULL,NULL),(222,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_222','66541083-b1ab-4966-9f8b-8a1109fce0e0',222,NULL,NULL,0,NULL,NULL),(223,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_223','9939c37c-a9b9-43b7-9a4b-aacc470d47c4',223,NULL,NULL,0,NULL,NULL),(224,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_224','754379a0-bdc2-4a2d-9828-9480926b30ad',224,NULL,NULL,0,NULL,NULL),(225,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_225','18c870a1-9e2c-48fb-8a52-259e55e2052e',225,NULL,NULL,0,NULL,NULL),(226,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_226','02df9a97-b44c-4c46-ab3a-c11010d45e18',226,NULL,NULL,0,NULL,NULL),(227,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_227','20f609f7-c128-46b5-abeb-d16d46aab9ad',227,NULL,NULL,0,NULL,NULL),(228,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_228','75067ca5-872c-4149-85ad-f6685f14efc0',228,NULL,NULL,0,NULL,NULL),(229,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_229','b8639303-d15f-4c81-b9d2-2863f53737c3',229,NULL,NULL,0,NULL,NULL),(230,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_230','a0c4d9ea-7659-4009-ac7c-a3f089def76d',230,NULL,NULL,0,NULL,NULL),(231,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_231','d3605113-fb9a-4640-b6fe-9931594eba6c',231,NULL,NULL,0,NULL,NULL),(232,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_232','bf59d2cc-dd79-4ad6-9637-b04098768600',232,NULL,NULL,0,NULL,NULL),(233,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_233','304d5f24-274e-4fd6-aca4-97b761d1bd0c',233,NULL,NULL,0,NULL,NULL),(234,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_234','0d9491c3-c28b-4c11-8e28-14d93e612e35',234,NULL,NULL,0,NULL,NULL),(235,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_235','f73a809f-78a6-4214-8060-d6037fe391aa',235,NULL,NULL,0,NULL,NULL),(236,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_236','11cc494a-86a4-44d2-b5fd-06438f95d6a4',236,NULL,NULL,0,NULL,NULL),(237,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_237','55b2e8cc-aaa4-4a8b-8a83-f732188cfab2',237,NULL,NULL,0,NULL,NULL),(238,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_238','ebe14f0a-7bf7-4614-83c8-1e2da963139a',238,NULL,NULL,0,NULL,NULL),(239,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_239','3e83b092-95a1-4ee4-ac1f-e9df2f3954ad',239,NULL,NULL,0,NULL,NULL),(240,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_240','7304efcc-7974-453e-b2db-fdcc848f8a24',240,NULL,NULL,0,NULL,NULL),(241,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_241','6b0b51e8-f058-42a6-a9ed-3b6ebde935d8',241,NULL,NULL,0,NULL,NULL),(242,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_242','c10f6de1-a64d-4f8f-bd0a-47bcd72ab8f7',242,NULL,NULL,0,NULL,NULL),(243,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_243','5537408c-41c6-4ee5-8f59-ca70fcdbd0ae',243,NULL,NULL,0,NULL,NULL),(244,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_244','0a920520-e271-42a6-8dc1-89f090023c89',244,NULL,NULL,0,NULL,NULL),(245,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_245','a5120b27-cdd5-4209-b3da-bdf4b53db140',245,NULL,NULL,0,NULL,NULL),(246,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_246','cd0f900a-dab8-4a49-805d-97e57cb5ad4c',246,NULL,NULL,0,NULL,NULL),(247,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_247','53b8b68c-0a11-411a-9b4d-01d58c9c0ff0',247,NULL,NULL,0,NULL,NULL),(248,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_248','57114ddf-7bb8-4e68-952a-faa83bf276bf',248,NULL,NULL,0,NULL,NULL),(249,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_249','fa04c6fe-1bf0-489e-b0df-9fa4756bb90b',249,NULL,NULL,0,NULL,NULL),(250,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_250','5bf5b365-962e-4f6d-9576-94d5ac66cc3c',250,NULL,NULL,0,NULL,NULL),(251,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_251','eca96575-798c-4919-ba93-4f0eca487490',251,NULL,NULL,0,NULL,NULL),(252,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_252','d4e52ad1-ac1c-4f68-8d97-6858c8534f84',252,NULL,NULL,0,NULL,NULL),(253,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_253','74f88528-b57b-4482-a417-e7e8cf5ccd87',253,NULL,NULL,0,NULL,NULL),(254,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_254','f1b969bd-2e43-4981-80d1-baeba6afd456',254,NULL,NULL,0,NULL,NULL),(255,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_255','11f5bcd3-096b-4b0f-8f1b-fa9292e3f5f3',255,NULL,NULL,0,NULL,NULL),(256,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_256','b937e637-c00b-48de-8dd4-fae260cd9fb9',256,NULL,NULL,0,NULL,NULL),(257,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_257','49886ca5-c9a8-4c1f-9ef0-4784495e943c',257,NULL,NULL,0,NULL,NULL),(258,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_258','5cf6bbba-f2bf-4704-b288-36edb49a3c7a',258,NULL,NULL,0,NULL,NULL),(259,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_259','0a246675-78f2-47d3-a716-f9b85de0e885',259,NULL,NULL,0,NULL,NULL),(260,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_260','b1e2509b-e9e4-40f8-b5c3-4e230e675ca8',260,NULL,NULL,0,NULL,NULL),(261,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_261','c423ca4a-54b4-40f3-859d-d39f7d4cf266',261,NULL,NULL,0,NULL,NULL),(262,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_262','1452d005-8038-4092-ba0d-bd690dfdb2e2',262,NULL,NULL,0,NULL,NULL),(263,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_263','f39a1721-6aeb-4f1e-90be-f54684ece8f0',263,NULL,NULL,0,NULL,NULL),(264,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_264','ec2b02db-6eb2-4b9e-aa3b-ef53b6daf005',264,NULL,NULL,0,NULL,NULL),(265,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_265','a6809581-e7b7-4d70-bfdd-c1f302322ee3',265,NULL,NULL,0,NULL,NULL),(266,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_266','794e2ba9-518d-4494-8ef0-01669807e10a',266,NULL,NULL,0,NULL,NULL),(267,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_267','c258f48e-7f30-4c16-bd2d-6eed81529157',267,NULL,NULL,0,NULL,NULL),(268,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_268','b7501b84-3a14-44d7-97da-271c416cbd16',268,NULL,NULL,0,NULL,NULL),(269,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_269','88b529d5-7804-4c4d-9f35-aa7dd1df0a37',269,NULL,NULL,0,NULL,NULL),(270,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_270','0c1b65d3-dee3-4429-864f-115fbbc6a2f4',270,NULL,NULL,0,NULL,NULL),(271,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_271','01667b0f-b397-47c1-8cdb-adb3ea7cba06',271,NULL,NULL,0,NULL,NULL),(272,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_272','c8909fda-0453-4f74-a683-bd613fdc70c5',272,NULL,NULL,0,NULL,NULL),(273,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_273','796b8703-6f42-433f-b9e6-b115b4df25b0',273,NULL,NULL,0,NULL,NULL),(274,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_274','de8f11f6-7298-4633-ad38-cc94e03314fd',274,NULL,NULL,0,NULL,NULL),(275,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_275','e097f4e6-9c2d-4f35-912e-bd37f5cdec00',275,NULL,NULL,0,NULL,NULL),(276,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_276','3e0dab1e-c41f-4c0d-b2e3-d056ba6a3c60',276,NULL,NULL,0,NULL,NULL),(277,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_277','b24cb998-40b7-471c-b55a-48b58b98b2e5',277,NULL,NULL,0,NULL,NULL),(278,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_278','ab2113f4-56a2-4d1d-83a6-a54a763e371e',278,NULL,NULL,0,NULL,NULL),(279,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_279','2a2beb83-ccbf-413f-ade2-2fd2f79e5f49',279,NULL,NULL,0,NULL,NULL),(280,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_280','ac53405d-8813-4cf7-ac12-fad7629d5602',280,NULL,NULL,0,NULL,NULL),(281,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_281','b6c7b0e1-38b5-4e00-a22d-45c03d5fdeac',281,NULL,NULL,0,NULL,NULL),(282,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_282','8e41ff90-42f5-4736-89a6-24246917555c',282,NULL,NULL,0,NULL,NULL),(283,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_283','2b46023a-316f-41ae-955e-01185d67d7a5',283,NULL,NULL,0,NULL,NULL),(284,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_284','74c72c06-391e-4c72-92e7-92a5b75ac2da',284,NULL,NULL,0,NULL,NULL),(285,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_285','3e1246c2-96f9-4937-be0c-eb187822c3c7',285,NULL,NULL,0,NULL,NULL),(286,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_286','7f0e0193-b743-4394-b3e5-86e01813c094',286,NULL,NULL,0,NULL,NULL),(287,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_287','886cd06c-c30a-48df-b793-be4bfa2c1eb9',287,NULL,NULL,0,NULL,NULL),(288,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_288','cb7cf6cd-bd2e-4956-be86-5d5935417098',288,NULL,NULL,0,NULL,NULL),(289,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_289','d2e92f17-c26b-44dd-9c60-ca69b0f55b6d',289,NULL,NULL,0,NULL,NULL),(290,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_290','ea3a53a1-b451-4d7b-9b9f-2b6790de314d',290,NULL,NULL,0,NULL,NULL),(291,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_291','723f2b0d-3473-445c-a6f2-9c8bb12b6019',291,NULL,NULL,0,NULL,NULL),(292,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_292','8f04e723-bb30-4952-a8f5-214845e525dc',292,NULL,NULL,0,NULL,NULL),(293,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_293','56e1991e-47e1-4136-9bd0-cd94fa40b3c8',293,NULL,NULL,0,NULL,NULL),(294,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_294','b5ef5b82-483e-4331-ba84-78ece1f72602',294,NULL,NULL,0,NULL,NULL),(295,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_295','8238ae4e-5f13-42a3-9d6c-ea60f0ee64a1',295,NULL,NULL,0,NULL,NULL),(296,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_296','800a6a1d-1f63-4052-a14a-fcb56ab7e98b',296,NULL,NULL,0,NULL,NULL),(297,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_297','2eb884c0-8953-434d-898f-a162ffd44102',297,NULL,NULL,0,NULL,NULL),(298,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_298','06363941-bac6-4cc1-b56f-82d9d64d7c12',298,NULL,NULL,0,NULL,NULL),(299,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_299','d8468131-79a2-4003-bf0a-e034a3455af9',299,NULL,NULL,0,NULL,NULL),(300,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_300','e8e5f9d3-4473-46d9-b893-a195d5ccc6b4',300,NULL,NULL,0,NULL,NULL),(301,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_301','57db1144-49b7-4930-a214-9bba56c0eab6',301,NULL,NULL,0,NULL,NULL),(302,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_302','668a6ec5-142f-467d-891a-57fe10faf4bb',302,NULL,NULL,0,NULL,NULL),(303,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_303','9bcd9772-6c90-4c14-8ff4-16fa54744c87',303,NULL,NULL,0,NULL,NULL),(304,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_304','6c37ac4e-5213-4d60-8070-fadf3fa3ca38',304,NULL,NULL,0,NULL,NULL),(305,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_305','fb5d7ea0-249f-4a0e-97aa-caa015d148e4',305,NULL,NULL,0,NULL,NULL),(306,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_306','26035205-595c-433a-8aba-4e0d6ce103a3',306,NULL,NULL,0,NULL,NULL),(307,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_307','1e4a6346-9da9-417c-bfbf-1a3cded61e12',307,NULL,NULL,0,NULL,NULL),(308,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_308','3af98cba-0cd4-4ea1-bcdc-c4c91672f038',308,NULL,NULL,0,NULL,NULL),(309,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_309','a073f7ce-dfdc-424c-b4d0-bec7acaae445',309,NULL,NULL,0,NULL,NULL),(310,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_310','6524988e-5916-4410-a740-58d1e57d3f93',310,NULL,NULL,0,NULL,NULL),(311,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_311','58a190c4-789e-4c97-9fbb-245d3a58c8fe',311,NULL,NULL,0,NULL,NULL),(312,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_312','3244773f-b74b-461d-bf9a-916a05980c99',312,NULL,NULL,0,NULL,NULL),(313,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_313','aaed5fa8-6555-43d2-adf4-c672008f8c92',313,NULL,NULL,0,NULL,NULL),(314,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_314','f32415ac-f0fb-4815-bbef-27ba6115a1cc',314,NULL,NULL,0,NULL,NULL),(315,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_315','2030b697-b729-40c4-91b1-592e19fd4e73',315,NULL,NULL,0,NULL,NULL),(316,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_316','ee47b98e-ebd5-44ae-8c9a-cbec609415b0',316,NULL,NULL,0,NULL,NULL),(317,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_317','a47459c2-a709-4601-9151-cb57ae13bc8c',317,NULL,NULL,0,NULL,NULL),(318,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_318','5e274495-2c02-4f75-9ce2-c730e2686be9',318,NULL,NULL,0,NULL,NULL),(319,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_319','f5f04ca8-f693-4758-9aa6-9a3c55938937',319,NULL,NULL,0,NULL,NULL),(320,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_320','5f876faf-2ad7-41f3-906d-2edd9fd2907d',320,NULL,NULL,0,NULL,NULL),(321,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_321','3d0665c6-db74-4d48-91cc-ebe39bbae605',321,NULL,NULL,0,NULL,NULL),(322,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_322','86c19bce-cb25-47a4-8aba-29c8ad4fc87d',322,NULL,NULL,0,NULL,NULL),(323,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_323','efa06619-2301-4cb4-b9fa-6e9bddef94d7',323,NULL,NULL,0,NULL,NULL),(324,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_324','3cfc5976-aa7f-4281-8b43-6ea6eee1ac80',324,NULL,NULL,0,NULL,NULL),(325,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_325','19a56d56-1f57-45e6-9c2e-466a17d8c7ba',325,NULL,NULL,0,NULL,NULL),(326,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_326','026a45cf-cbeb-4ea9-8d20-21efbe206bad',326,NULL,NULL,0,NULL,NULL),(327,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_327','48312cae-f61d-4f87-9b20-a957d1e919ce',327,NULL,NULL,0,NULL,NULL),(328,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_328','e06abc58-f451-4e9e-ac4f-51d5e9d424a6',328,NULL,NULL,0,NULL,NULL),(329,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_329','10b58273-4b30-4caf-954c-a1873ca4d6b5',329,NULL,NULL,0,NULL,NULL),(330,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_330','008892b7-6479-4e68-adf2-39e7ac29e66e',330,NULL,NULL,0,NULL,NULL),(331,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_331','7f864422-153c-4681-8c9e-4e942dce9548',331,NULL,NULL,0,NULL,NULL),(332,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_332','67c5538e-0363-4650-a42e-ba25746b4239',332,NULL,NULL,0,NULL,NULL),(333,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_333','208210c1-1601-47ae-883f-cdb16e0f802b',333,NULL,NULL,0,NULL,NULL),(334,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_334','bb08395a-a0f0-490d-9d23-6f2f76b41514',334,NULL,NULL,0,NULL,NULL),(335,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_335','050c1a8e-256d-41ab-bd3a-3abe54d01b32',335,NULL,NULL,0,NULL,NULL),(336,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_336','cf016005-9207-4a2d-a8fe-91c278029a18',336,NULL,NULL,0,NULL,NULL),(337,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_337','950a5d40-e604-4f6c-82dd-2b60a578d9aa',337,NULL,NULL,0,NULL,NULL),(338,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_338','3e00662d-6917-4759-b9a9-be8eda02f63b',338,NULL,NULL,0,NULL,NULL),(339,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_339','bb339af3-2038-4f17-b489-46d4b7542cb6',339,NULL,NULL,0,NULL,NULL),(340,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_340','3927f6d5-5d90-4192-b84c-cebda90c0b0a',340,NULL,NULL,0,NULL,NULL),(341,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_341','e6b29f71-bb4a-420b-8442-1f7639109465',341,NULL,NULL,0,NULL,NULL),(342,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_342','ff7909b6-a90c-43c7-96fc-c375d439e373',342,NULL,NULL,0,NULL,NULL),(343,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_343','6f9902ca-7674-4f2f-b2e1-aeb3701bae14',343,NULL,NULL,0,NULL,NULL),(344,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_344','36d75eda-7573-474a-8aeb-f8555464154f',344,NULL,NULL,0,NULL,NULL),(345,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_345','d3c489ae-3f03-48fe-9248-927a8bb3297f',345,NULL,NULL,0,NULL,NULL),(346,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_346','18764a4e-8b01-478e-80b3-217cc37d49c7',346,NULL,NULL,0,NULL,NULL),(347,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$10$UZeOZKD1.dj5oiTsZKD03OETA9FXCKGqBuuijhsxYygZpOPtWMUni','test_347','00075d1c-f486-41a0-98f8-06f0354b8416',347,NULL,NULL,0,NULL,NULL),(1000,1,'2024-03-27 18:43:07','2024-03-27 18:43:07','$2a$12$S3lUZw/ESq9lULn5he6bBu9KNGCvs7C2rWo0XdVC6t65ITwAc22w2','test-with-mfa','467c882e-90da-11ec-b909-0242ac120002',1000,NULL,NULL,0,NULL,NULL); +/*!40000 ALTER TABLE `iam_account` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_account_attrs` +-- + +DROP TABLE IF EXISTS `iam_account_attrs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_account_attrs` ( + `NAME` varchar(64) NOT NULL, + `val` varchar(256) DEFAULT NULL, + `account_id` bigint(20) DEFAULT NULL, + KEY `INDEX_iam_account_attrs_name` (`NAME`), + KEY `INDEX_iam_account_attrs_name_val` (`NAME`,`val`), + KEY `FK_iam_account_attrs_account_id` (`account_id`), + CONSTRAINT `FK_iam_account_attrs_account_id` FOREIGN KEY (`account_id`) REFERENCES `iam_account` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_account_attrs` +-- + +LOCK TABLES `iam_account_attrs` WRITE; +/*!40000 ALTER TABLE `iam_account_attrs` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_account_attrs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_account_authority` +-- + +DROP TABLE IF EXISTS `iam_account_authority`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_account_authority` ( + `account_id` bigint(20) NOT NULL, + `authority_id` bigint(20) NOT NULL, + PRIMARY KEY (`account_id`,`authority_id`), + KEY `FK_iam_account_authority_authority_id` (`authority_id`), + CONSTRAINT `FK_iam_account_authority_account_id` FOREIGN KEY (`account_id`) REFERENCES `iam_account` (`ID`), + CONSTRAINT `FK_iam_account_authority_authority_id` FOREIGN KEY (`authority_id`) REFERENCES `iam_authority` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_account_authority` +-- + +LOCK TABLES `iam_account_authority` WRITE; +/*!40000 ALTER TABLE `iam_account_authority` DISABLE KEYS */; +INSERT INTO `iam_account_authority` VALUES (1,1),(1,2),(2,2),(100,2),(101,2),(102,2),(103,2),(104,2),(105,2),(106,2),(107,2),(108,2),(109,2),(110,2),(111,2),(112,2),(113,2),(114,2),(115,2),(116,2),(117,2),(118,2),(119,2),(120,2),(121,2),(122,2),(123,2),(124,2),(125,2),(126,2),(127,2),(128,2),(129,2),(130,2),(131,2),(132,2),(133,2),(134,2),(135,2),(136,2),(137,2),(138,2),(139,2),(140,2),(141,2),(142,2),(143,2),(144,2),(145,2),(146,2),(147,2),(148,2),(149,2),(150,2),(151,2),(152,2),(153,2),(154,2),(155,2),(156,2),(157,2),(158,2),(159,2),(160,2),(161,2),(162,2),(163,2),(164,2),(165,2),(166,2),(167,2),(168,2),(169,2),(170,2),(171,2),(172,2),(173,2),(174,2),(175,2),(176,2),(177,2),(178,2),(179,2),(180,2),(181,2),(182,2),(183,2),(184,2),(185,2),(186,2),(187,2),(188,2),(189,2),(190,2),(191,2),(192,2),(193,2),(194,2),(195,2),(196,2),(197,2),(198,2),(199,2),(200,2),(201,2),(202,2),(203,2),(204,2),(205,2),(206,2),(207,2),(208,2),(209,2),(210,2),(211,2),(212,2),(213,2),(214,2),(215,2),(216,2),(217,2),(218,2),(219,2),(220,2),(221,2),(222,2),(223,2),(224,2),(225,2),(226,2),(227,2),(228,2),(229,2),(230,2),(231,2),(232,2),(233,2),(234,2),(235,2),(236,2),(237,2),(238,2),(239,2),(240,2),(241,2),(242,2),(243,2),(244,2),(245,2),(246,2),(247,2),(248,2),(249,2),(250,2),(251,2),(252,2),(253,2),(254,2),(255,2),(256,2),(257,2),(258,2),(259,2),(260,2),(261,2),(262,2),(263,2),(264,2),(265,2),(266,2),(267,2),(268,2),(269,2),(270,2),(271,2),(272,2),(273,2),(274,2),(275,2),(276,2),(277,2),(278,2),(279,2),(280,2),(281,2),(282,2),(283,2),(284,2),(285,2),(286,2),(287,2),(288,2),(289,2),(290,2),(291,2),(292,2),(293,2),(294,2),(295,2),(296,2),(297,2),(298,2),(299,2),(300,2),(301,2),(302,2),(303,2),(304,2),(305,2),(306,2),(307,2),(308,2),(309,2),(310,2),(311,2),(312,2),(313,2),(314,2),(315,2),(316,2),(317,2),(318,2),(319,2),(320,2),(321,2),(322,2),(323,2),(324,2),(325,2),(326,2),(327,2),(328,2),(329,2),(330,2),(331,2),(332,2),(333,2),(334,2),(335,2),(336,2),(337,2),(338,2),(339,2),(340,2),(341,2),(342,2),(343,2),(344,2),(345,2),(346,2),(347,2); +/*!40000 ALTER TABLE `iam_account_authority` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_account_client` +-- + +DROP TABLE IF EXISTS `iam_account_client`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_account_client` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `creation_time` datetime NOT NULL, + `account_id` bigint(20) NOT NULL, + `client_id` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `UNQ_iam_account_client_0` (`account_id`,`client_id`), + KEY `FK_iam_account_client_client_id` (`client_id`), + CONSTRAINT `FK_iam_account_client_account_id` FOREIGN KEY (`account_id`) REFERENCES `iam_account` (`ID`), + CONSTRAINT `FK_iam_account_client_client_id` FOREIGN KEY (`client_id`) REFERENCES `client_details` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_account_client` +-- + +LOCK TABLES `iam_account_client` WRITE; +/*!40000 ALTER TABLE `iam_account_client` DISABLE KEYS */; +INSERT INTO `iam_account_client` VALUES (1,'2024-03-27 18:43:07',200,1),(2,'2024-03-27 18:43:07',200,2),(3,'2024-03-27 18:43:07',199,1),(4,'2024-03-27 18:43:07',199,2); +/*!40000 ALTER TABLE `iam_account_client` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_account_group` +-- + +DROP TABLE IF EXISTS `iam_account_group`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_account_group` ( + `account_id` bigint(20) NOT NULL, + `group_id` bigint(20) NOT NULL, + `creation_time` datetime DEFAULT NULL, + `end_time` datetime DEFAULT NULL, + PRIMARY KEY (`account_id`,`group_id`), + KEY `FK_iam_account_group_group_id` (`group_id`), + CONSTRAINT `FK_iam_account_group_account_id` FOREIGN KEY (`account_id`) REFERENCES `iam_account` (`ID`), + CONSTRAINT `FK_iam_account_group_group_id` FOREIGN KEY (`group_id`) REFERENCES `iam_group` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_account_group` +-- + +LOCK TABLES `iam_account_group` WRITE; +/*!40000 ALTER TABLE `iam_account_group` DISABLE KEYS */; +INSERT INTO `iam_account_group` VALUES (2,1,NULL,NULL),(2,2,NULL,NULL),(2,121,'2024-03-27 18:47:36',NULL),(2,122,'2024-03-27 18:47:36',NULL),(2,123,'2024-03-27 18:47:39',NULL),(2,124,'2024-03-27 18:47:59',NULL),(2,125,'2024-03-27 18:47:36',NULL),(2,126,'2024-03-27 18:47:59',NULL),(2,127,'2024-03-27 18:47:39',NULL),(100,1,NULL,NULL),(100,2,NULL,NULL),(101,1,NULL,NULL),(101,2,NULL,NULL),(102,1,NULL,NULL),(102,2,NULL,NULL),(103,1,NULL,NULL),(103,2,NULL,NULL),(104,1,NULL,NULL),(104,2,NULL,NULL),(105,1,NULL,NULL),(105,2,NULL,NULL),(106,1,NULL,NULL),(106,2,NULL,NULL),(107,1,NULL,NULL),(107,2,NULL,NULL),(108,1,NULL,NULL),(108,2,NULL,NULL),(109,1,NULL,NULL),(109,2,NULL,NULL),(110,1,NULL,NULL),(110,2,NULL,NULL),(111,1,NULL,NULL),(111,2,NULL,NULL),(112,1,NULL,NULL),(112,2,NULL,NULL),(113,1,NULL,NULL),(113,2,NULL,NULL),(114,1,NULL,NULL),(114,2,NULL,NULL),(115,1,NULL,NULL),(115,2,NULL,NULL),(116,1,NULL,NULL),(116,2,NULL,NULL),(117,1,NULL,NULL),(117,2,NULL,NULL),(118,1,NULL,NULL),(118,2,NULL,NULL),(119,1,NULL,NULL),(119,2,NULL,NULL),(120,1,NULL,NULL),(120,2,NULL,NULL),(121,1,NULL,NULL),(121,2,NULL,NULL),(122,1,NULL,NULL),(122,2,NULL,NULL),(123,1,NULL,NULL),(123,2,NULL,NULL),(124,1,NULL,NULL),(124,2,NULL,NULL),(125,1,NULL,NULL),(125,2,NULL,NULL),(126,1,NULL,NULL),(126,2,NULL,NULL),(127,1,NULL,NULL),(127,2,NULL,NULL),(128,1,NULL,NULL),(128,2,NULL,NULL),(129,1,NULL,NULL),(129,2,NULL,NULL),(130,1,NULL,NULL),(130,2,NULL,NULL),(131,1,NULL,NULL),(131,2,NULL,NULL),(132,1,NULL,NULL),(132,2,NULL,NULL),(133,1,NULL,NULL),(133,2,NULL,NULL),(134,1,NULL,NULL),(134,2,NULL,NULL),(135,1,NULL,NULL),(135,2,NULL,NULL),(136,1,NULL,NULL),(136,2,NULL,NULL),(137,1,NULL,NULL),(137,2,NULL,NULL),(138,1,NULL,NULL),(138,2,NULL,NULL),(139,1,NULL,NULL),(139,2,NULL,NULL),(140,1,NULL,NULL),(140,2,NULL,NULL),(141,1,NULL,NULL),(141,2,NULL,NULL),(142,1,NULL,NULL),(142,2,NULL,NULL),(143,1,NULL,NULL),(143,2,NULL,NULL),(144,1,NULL,NULL),(144,2,NULL,NULL),(145,1,NULL,NULL),(145,2,NULL,NULL),(146,1,NULL,NULL),(146,2,NULL,NULL),(147,1,NULL,NULL),(147,2,NULL,NULL),(148,1,NULL,NULL),(148,2,NULL,NULL),(149,1,NULL,NULL),(149,2,NULL,NULL),(150,1,NULL,NULL),(150,2,NULL,NULL),(151,1,NULL,NULL),(151,2,NULL,NULL),(152,1,NULL,NULL),(152,2,NULL,NULL),(153,1,NULL,NULL),(153,2,NULL,NULL),(154,1,NULL,NULL),(154,2,NULL,NULL),(155,1,NULL,NULL),(155,2,NULL,NULL),(156,1,NULL,NULL),(156,2,NULL,NULL),(157,1,NULL,NULL),(157,2,NULL,NULL),(158,1,NULL,NULL),(158,2,NULL,NULL),(159,1,NULL,NULL),(159,2,NULL,NULL),(160,1,NULL,NULL),(160,2,NULL,NULL),(161,1,NULL,NULL),(161,2,NULL,NULL),(162,1,NULL,NULL),(162,2,NULL,NULL),(163,1,NULL,NULL),(163,2,NULL,NULL),(164,1,NULL,NULL),(164,2,NULL,NULL),(165,1,NULL,NULL),(165,2,NULL,NULL),(166,1,NULL,NULL),(166,2,NULL,NULL),(167,1,NULL,NULL),(167,2,NULL,NULL),(168,1,NULL,NULL),(168,2,NULL,NULL),(169,1,NULL,NULL),(169,2,NULL,NULL),(170,1,NULL,NULL),(170,2,NULL,NULL),(171,1,NULL,NULL),(171,2,NULL,NULL),(172,1,NULL,NULL),(172,2,NULL,NULL),(173,1,NULL,NULL),(173,2,NULL,NULL),(174,1,NULL,NULL),(174,2,NULL,NULL),(175,1,NULL,NULL),(175,2,NULL,NULL),(176,1,NULL,NULL),(176,2,NULL,NULL),(177,1,NULL,NULL),(177,2,NULL,NULL),(178,1,NULL,NULL),(178,2,NULL,NULL),(179,1,NULL,NULL),(179,2,NULL,NULL),(180,1,NULL,NULL),(180,2,NULL,NULL),(181,1,NULL,NULL),(181,2,NULL,NULL),(182,1,NULL,NULL),(182,2,NULL,NULL),(183,1,NULL,NULL),(183,2,NULL,NULL),(184,1,NULL,NULL),(184,2,NULL,NULL),(185,1,NULL,NULL),(185,2,NULL,NULL),(186,1,NULL,NULL),(186,2,NULL,NULL),(187,1,NULL,NULL),(187,2,NULL,NULL),(188,1,NULL,NULL),(188,2,NULL,NULL),(189,1,NULL,NULL),(189,2,NULL,NULL),(190,1,NULL,NULL),(190,2,NULL,NULL),(191,1,NULL,NULL),(191,2,NULL,NULL),(192,1,NULL,NULL),(192,2,NULL,NULL),(193,1,NULL,NULL),(193,2,NULL,NULL),(194,1,NULL,NULL),(194,2,NULL,NULL),(195,1,NULL,NULL),(195,2,NULL,NULL),(196,1,NULL,NULL),(196,2,NULL,NULL),(197,1,NULL,NULL),(197,2,NULL,NULL),(198,1,NULL,NULL),(198,2,NULL,NULL),(199,1,NULL,NULL),(199,2,NULL,NULL),(200,1,NULL,NULL),(200,2,NULL,NULL),(201,1,NULL,NULL),(201,2,NULL,NULL),(202,1,NULL,NULL),(202,2,NULL,NULL),(203,1,NULL,NULL),(203,2,NULL,NULL),(204,1,NULL,NULL),(204,2,NULL,NULL),(205,1,NULL,NULL),(205,2,NULL,NULL),(206,1,NULL,NULL),(206,2,NULL,NULL),(207,1,NULL,NULL),(207,2,NULL,NULL),(208,1,NULL,NULL),(208,2,NULL,NULL),(209,1,NULL,NULL),(209,2,NULL,NULL),(210,1,NULL,NULL),(210,2,NULL,NULL),(211,1,NULL,NULL),(211,2,NULL,NULL),(212,1,NULL,NULL),(212,2,NULL,NULL),(213,1,NULL,NULL),(213,2,NULL,NULL),(214,1,NULL,NULL),(214,2,NULL,NULL),(215,1,NULL,NULL),(215,2,NULL,NULL),(216,1,NULL,NULL),(216,2,NULL,NULL),(217,1,NULL,NULL),(217,2,NULL,NULL),(218,1,NULL,NULL),(218,2,NULL,NULL),(219,1,NULL,NULL),(219,2,NULL,NULL),(220,1,NULL,NULL),(220,2,NULL,NULL),(221,1,NULL,NULL),(221,2,NULL,NULL),(222,1,NULL,NULL),(222,2,NULL,NULL),(223,1,NULL,NULL),(223,2,NULL,NULL),(224,1,NULL,NULL),(224,2,NULL,NULL),(225,1,NULL,NULL),(225,2,NULL,NULL),(226,1,NULL,NULL),(226,2,NULL,NULL),(227,1,NULL,NULL),(227,2,NULL,NULL),(228,1,NULL,NULL),(228,2,NULL,NULL),(229,1,NULL,NULL),(229,2,NULL,NULL),(230,1,NULL,NULL),(230,2,NULL,NULL),(231,1,NULL,NULL),(231,2,NULL,NULL),(232,1,NULL,NULL),(232,2,NULL,NULL),(233,1,NULL,NULL),(233,2,NULL,NULL),(234,1,NULL,NULL),(234,2,NULL,NULL),(235,1,NULL,NULL),(235,2,NULL,NULL),(236,1,NULL,NULL),(236,2,NULL,NULL),(237,1,NULL,NULL),(237,2,NULL,NULL),(238,1,NULL,NULL),(238,2,NULL,NULL),(239,1,NULL,NULL),(239,2,NULL,NULL),(240,1,NULL,NULL),(240,2,NULL,NULL),(241,1,NULL,NULL),(241,2,NULL,NULL),(242,1,NULL,NULL),(242,2,NULL,NULL),(243,1,NULL,NULL),(243,2,NULL,NULL),(244,1,NULL,NULL),(244,2,NULL,NULL),(245,1,NULL,NULL),(245,2,NULL,NULL),(246,1,NULL,NULL),(246,2,NULL,NULL),(247,1,NULL,NULL),(247,2,NULL,NULL),(248,1,NULL,NULL),(248,2,NULL,NULL),(249,1,NULL,NULL),(249,2,NULL,NULL),(250,1,NULL,NULL),(250,2,NULL,NULL),(251,1,NULL,NULL),(251,2,NULL,NULL),(252,1,NULL,NULL),(252,2,NULL,NULL),(253,1,NULL,NULL),(253,2,NULL,NULL),(254,1,NULL,NULL),(254,2,NULL,NULL),(255,1,NULL,NULL),(255,2,NULL,NULL),(256,1,NULL,NULL),(256,2,NULL,NULL),(257,1,NULL,NULL),(257,2,NULL,NULL),(258,1,NULL,NULL),(258,2,NULL,NULL),(259,1,NULL,NULL),(259,2,NULL,NULL),(260,1,NULL,NULL),(260,2,NULL,NULL),(261,1,NULL,NULL),(261,2,NULL,NULL),(262,1,NULL,NULL),(262,2,NULL,NULL),(263,1,NULL,NULL),(263,2,NULL,NULL),(264,1,NULL,NULL),(264,2,NULL,NULL),(265,1,NULL,NULL),(265,2,NULL,NULL),(266,1,NULL,NULL),(266,2,NULL,NULL),(267,1,NULL,NULL),(267,2,NULL,NULL),(268,1,NULL,NULL),(268,2,NULL,NULL),(269,1,NULL,NULL),(269,2,NULL,NULL),(270,1,NULL,NULL),(270,2,NULL,NULL),(271,1,NULL,NULL),(271,2,NULL,NULL),(272,1,NULL,NULL),(272,2,NULL,NULL),(273,1,NULL,NULL),(273,2,NULL,NULL),(274,1,NULL,NULL),(274,2,NULL,NULL),(275,1,NULL,NULL),(275,2,NULL,NULL),(276,1,NULL,NULL),(276,2,NULL,NULL),(277,1,NULL,NULL),(277,2,NULL,NULL),(278,1,NULL,NULL),(278,2,NULL,NULL),(279,1,NULL,NULL),(279,2,NULL,NULL),(280,1,NULL,NULL),(280,2,NULL,NULL),(281,1,NULL,NULL),(281,2,NULL,NULL),(282,1,NULL,NULL),(282,2,NULL,NULL),(283,1,NULL,NULL),(283,2,NULL,NULL),(284,1,NULL,NULL),(284,2,NULL,NULL),(285,1,NULL,NULL),(285,2,NULL,NULL),(286,1,NULL,NULL),(286,2,NULL,NULL),(287,1,NULL,NULL),(287,2,NULL,NULL),(288,1,NULL,NULL),(288,2,NULL,NULL),(289,1,NULL,NULL),(289,2,NULL,NULL),(290,1,NULL,NULL),(290,2,NULL,NULL),(291,1,NULL,NULL),(291,2,NULL,NULL),(292,1,NULL,NULL),(292,2,NULL,NULL),(293,1,NULL,NULL),(293,2,NULL,NULL),(294,1,NULL,NULL),(294,2,NULL,NULL),(295,1,NULL,NULL),(295,2,NULL,NULL),(296,1,NULL,NULL),(296,2,NULL,NULL),(297,1,NULL,NULL),(297,2,NULL,NULL),(298,1,NULL,NULL),(298,2,NULL,NULL),(299,1,NULL,NULL),(299,2,NULL,NULL),(300,1,NULL,NULL),(300,2,NULL,NULL),(301,1,NULL,NULL),(301,2,NULL,NULL),(302,1,NULL,NULL),(302,2,NULL,NULL),(303,1,NULL,NULL),(303,2,NULL,NULL),(304,1,NULL,NULL),(304,2,NULL,NULL),(305,1,NULL,NULL),(305,2,NULL,NULL),(306,1,NULL,NULL),(306,2,NULL,NULL),(307,1,NULL,NULL),(307,2,NULL,NULL),(308,1,NULL,NULL),(308,2,NULL,NULL),(309,1,NULL,NULL),(309,2,NULL,NULL),(310,1,NULL,NULL),(310,2,NULL,NULL),(311,1,NULL,NULL),(311,2,NULL,NULL),(312,1,NULL,NULL),(312,2,NULL,NULL),(313,1,NULL,NULL),(313,2,NULL,NULL),(314,1,NULL,NULL),(314,2,NULL,NULL),(315,1,NULL,NULL),(315,2,NULL,NULL),(316,1,NULL,NULL),(316,2,NULL,NULL),(317,1,NULL,NULL),(317,2,NULL,NULL),(318,1,NULL,NULL),(318,2,NULL,NULL),(319,1,NULL,NULL),(319,2,NULL,NULL),(320,1,NULL,NULL),(320,2,NULL,NULL),(321,1,NULL,NULL),(321,2,NULL,NULL),(322,1,NULL,NULL),(322,2,NULL,NULL),(323,1,NULL,NULL),(323,2,NULL,NULL),(324,1,NULL,NULL),(324,2,NULL,NULL),(325,1,NULL,NULL),(325,2,NULL,NULL),(326,1,NULL,NULL),(326,2,NULL,NULL),(327,1,NULL,NULL),(327,2,NULL,NULL),(328,1,NULL,NULL),(328,2,NULL,NULL),(329,1,NULL,NULL),(329,2,NULL,NULL),(330,1,NULL,NULL),(330,2,NULL,NULL),(331,1,NULL,NULL),(331,2,NULL,NULL),(332,1,NULL,NULL),(332,2,NULL,NULL),(333,1,NULL,NULL),(333,2,NULL,NULL),(334,1,NULL,NULL),(334,2,NULL,NULL),(335,1,NULL,NULL),(335,2,NULL,NULL),(336,1,NULL,NULL),(336,2,NULL,NULL),(337,1,NULL,NULL),(337,2,NULL,NULL),(338,1,NULL,NULL),(338,2,NULL,NULL),(339,1,NULL,NULL),(339,2,NULL,NULL),(340,1,NULL,NULL),(340,2,NULL,NULL),(341,1,NULL,NULL),(341,2,NULL,NULL),(342,1,NULL,NULL),(342,2,NULL,NULL),(343,1,NULL,NULL),(343,2,NULL,NULL),(344,1,NULL,NULL),(344,2,NULL,NULL),(345,1,NULL,NULL),(345,2,NULL,NULL),(346,1,NULL,NULL),(346,2,NULL,NULL),(347,1,NULL,NULL),(347,2,NULL,NULL); +/*!40000 ALTER TABLE `iam_account_group` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_account_labels` +-- + +DROP TABLE IF EXISTS `iam_account_labels`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_account_labels` ( + `NAME` varchar(64) NOT NULL, + `PREFIX` varchar(256) DEFAULT NULL, + `val` varchar(64) DEFAULT NULL, + `account_id` bigint(20) DEFAULT NULL, + KEY `INDEX_iam_account_labels_prefix_name_val` (`PREFIX`,`NAME`,`val`), + KEY `INDEX_iam_account_labels_prefix_name` (`PREFIX`,`NAME`), + KEY `FK_iam_account_labels_account_id` (`account_id`), + CONSTRAINT `FK_iam_account_labels_account_id` FOREIGN KEY (`account_id`) REFERENCES `iam_account` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_account_labels` +-- + +LOCK TABLES `iam_account_labels` WRITE; +/*!40000 ALTER TABLE `iam_account_labels` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_account_labels` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_address` +-- + +DROP TABLE IF EXISTS `iam_address`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_address` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `COUNTRY` varchar(2) DEFAULT NULL, + `FORMATTED` varchar(128) DEFAULT NULL, + `LOCALITY` varchar(128) DEFAULT NULL, + `POSTALCODE` varchar(16) DEFAULT NULL, + `REGION` varchar(128) DEFAULT NULL, + `STREETADDRESS` varchar(128) DEFAULT NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_address` +-- + +LOCK TABLES `iam_address` WRITE; +/*!40000 ALTER TABLE `iam_address` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_address` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_aup` +-- + +DROP TABLE IF EXISTS `iam_aup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_aup` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `creation_time` datetime NOT NULL, + `description` varchar(128) DEFAULT NULL, + `last_update_time` datetime NOT NULL, + `name` varchar(36) NOT NULL, + `sig_validity_days` bigint(20) NOT NULL, + `text` longtext, + `url` varchar(256) DEFAULT NULL, + PRIMARY KEY (`ID`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_aup` +-- + +LOCK TABLES `iam_aup` WRITE; +/*!40000 ALTER TABLE `iam_aup` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_aup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_aup_signature` +-- + +DROP TABLE IF EXISTS `iam_aup_signature`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_aup_signature` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `signature_time` datetime NOT NULL, + `account_id` bigint(20) DEFAULT NULL, + `aup_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`ID`), + UNIQUE KEY `UNQ_iam_aup_signature_0` (`aup_id`,`account_id`), + KEY `FK_iam_aup_signature_account_id` (`account_id`), + CONSTRAINT `FK_iam_aup_signature_account_id` FOREIGN KEY (`account_id`) REFERENCES `iam_account` (`ID`), + CONSTRAINT `FK_iam_aup_signature_aup_id` FOREIGN KEY (`aup_id`) REFERENCES `iam_aup` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_aup_signature` +-- + +LOCK TABLES `iam_aup_signature` WRITE; +/*!40000 ALTER TABLE `iam_aup_signature` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_aup_signature` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_authority` +-- + +DROP TABLE IF EXISTS `iam_authority`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_authority` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `auth` varchar(128) NOT NULL, + PRIMARY KEY (`ID`), + UNIQUE KEY `auth` (`auth`) +) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_authority` +-- + +LOCK TABLES `iam_authority` WRITE; +/*!40000 ALTER TABLE `iam_authority` DISABLE KEYS */; +INSERT INTO `iam_authority` VALUES (1,'ROLE_ADMIN'),(27,'ROLE_GM:28c111d8-4a0c-4969-8a80-64a9c406702d'),(30,'ROLE_GM:3534a378-eaf2-46cb-9d6e-9fc761f5262f'),(28,'ROLE_GM:373a768a-daba-4b66-a47d-63458db9a087'),(29,'ROLE_GM:67ee6763-e914-4b5a-93d7-a9000bbfe1f9'),(5,'ROLE_GM:6a384bcd-d4b3-4b7f-a2fe-7d897ada0dd1'),(26,'ROLE_GM:728b82da-751a-46fe-a4c0-44391837991a'),(32,'ROLE_GM:843f6b10-151c-4ea8-9123-686640b58dcb'),(31,'ROLE_GM:85d573fd-cdbd-41fb-9eca-8dabc481ba1d'),(6,'ROLE_GM:c617d586-54e6-411d-8e38-649677980001'),(7,'ROLE_GM:c617d586-54e6-411d-8e38-649677980002'),(8,'ROLE_GM:c617d586-54e6-411d-8e38-649677980003'),(9,'ROLE_GM:c617d586-54e6-411d-8e38-649677980004'),(10,'ROLE_GM:c617d586-54e6-411d-8e38-649677980005'),(11,'ROLE_GM:c617d586-54e6-411d-8e38-649677980006'),(12,'ROLE_GM:c617d586-54e6-411d-8e38-649677980007'),(13,'ROLE_GM:c617d586-54e6-411d-8e38-649677980008'),(14,'ROLE_GM:c617d586-54e6-411d-8e38-649677980009'),(15,'ROLE_GM:c617d586-54e6-411d-8e38-649677980010'),(16,'ROLE_GM:c617d586-54e6-411d-8e38-649677980011'),(17,'ROLE_GM:c617d586-54e6-411d-8e38-649677980012'),(18,'ROLE_GM:c617d586-54e6-411d-8e38-649677980013'),(19,'ROLE_GM:c617d586-54e6-411d-8e38-649677980014'),(20,'ROLE_GM:c617d586-54e6-411d-8e38-649677980015'),(21,'ROLE_GM:c617d586-54e6-411d-8e38-649677980016'),(22,'ROLE_GM:c617d586-54e6-411d-8e38-649677980017'),(23,'ROLE_GM:c617d586-54e6-411d-8e38-649677980018'),(24,'ROLE_GM:c617d586-54e6-411d-8e38-649677980019'),(25,'ROLE_GM:c617d586-54e6-411d-8e38-649677980020'),(4,'ROLE_GM:c617d586-54e6-411d-8e38-64967798fa8a'),(3,'ROLE_PRE_AUTHENTICATED'),(2,'ROLE_USER'); +/*!40000 ALTER TABLE `iam_authority` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_email_notification` +-- + +DROP TABLE IF EXISTS `iam_email_notification`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_email_notification` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `UUID` varchar(36) NOT NULL, + `NOTIFICATION_TYPE` varchar(128) NOT NULL, + `SUBJECT` varchar(128) DEFAULT NULL, + `BODY` text, + `CREATION_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `DELIVERY_STATUS` varchar(128) DEFAULT NULL, + `LAST_UPDATE` timestamp NULL DEFAULT NULL, + `REQUEST_ID` bigint(20) DEFAULT NULL, + PRIMARY KEY (`ID`), + UNIQUE KEY `UUID` (`UUID`), + KEY `FK_iam_email_notification_request_id` (`REQUEST_ID`), + CONSTRAINT `FK_iam_email_notification_request_id` FOREIGN KEY (`REQUEST_ID`) REFERENCES `iam_reg_request` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_email_notification` +-- + +LOCK TABLES `iam_email_notification` WRITE; +/*!40000 ALTER TABLE `iam_email_notification` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_email_notification` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_exchange_policy` +-- + +DROP TABLE IF EXISTS `iam_exchange_policy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_exchange_policy` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `creation_time` datetime NOT NULL, + `description` varchar(512) DEFAULT NULL, + `last_update_time` datetime NOT NULL, + `rule` varchar(6) NOT NULL, + `dest_m_param` varchar(256) DEFAULT NULL, + `dest_m_type` varchar(8) NOT NULL, + `origin_m_param` varchar(256) DEFAULT NULL, + `origin_m_type` varchar(8) NOT NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_exchange_policy` +-- + +LOCK TABLES `iam_exchange_policy` WRITE; +/*!40000 ALTER TABLE `iam_exchange_policy` DISABLE KEYS */; +INSERT INTO `iam_exchange_policy` VALUES (1,'2024-03-27 18:43:02','Allow all exchanges','2024-03-27 18:43:02','PERMIT',NULL,'ANY',NULL,'ANY'); +/*!40000 ALTER TABLE `iam_exchange_policy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_exchange_scope_policies` +-- + +DROP TABLE IF EXISTS `iam_exchange_scope_policies`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_exchange_scope_policies` ( + `param` varchar(256) DEFAULT NULL, + `rule` varchar(6) NOT NULL, + `type` varchar(6) NOT NULL, + `exchange_policy_id` bigint(20) DEFAULT NULL, + KEY `FK_iam_exchange_scope_policies_exchange_policy_id` (`exchange_policy_id`), + CONSTRAINT `FK_iam_exchange_scope_policies_exchange_policy_id` FOREIGN KEY (`exchange_policy_id`) REFERENCES `iam_exchange_policy` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_exchange_scope_policies` +-- + +LOCK TABLES `iam_exchange_scope_policies` WRITE; +/*!40000 ALTER TABLE `iam_exchange_scope_policies` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_exchange_scope_policies` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_ext_authn` +-- + +DROP TABLE IF EXISTS `iam_ext_authn`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_ext_authn` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `authentication_time` datetime NOT NULL, + `expiration_time` datetime NOT NULL, + `saved_authn_id` bigint(20) DEFAULT NULL, + `type` varchar(32) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `saved_authn_id` (`saved_authn_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_ext_authn` +-- + +LOCK TABLES `iam_ext_authn` WRITE; +/*!40000 ALTER TABLE `iam_ext_authn` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_ext_authn` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_ext_authn_attr` +-- + +DROP TABLE IF EXISTS `iam_ext_authn_attr`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_ext_authn_attr` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `value` varchar(512) NOT NULL, + `details_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `FK_iam_ext_authn_attr_details_id` (`details_id`), + CONSTRAINT `FK_iam_ext_authn_attr_details_id` FOREIGN KEY (`details_id`) REFERENCES `iam_ext_authn` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_ext_authn_attr` +-- + +LOCK TABLES `iam_ext_authn_attr` WRITE; +/*!40000 ALTER TABLE `iam_ext_authn_attr` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_ext_authn_attr` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_group` +-- + +DROP TABLE IF EXISTS `iam_group`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_group` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `CREATIONTIME` datetime NOT NULL, + `DESCRIPTION` varchar(512) DEFAULT NULL, + `LASTUPDATETIME` datetime NOT NULL, + `name` varchar(512) NOT NULL, + `UUID` varchar(36) NOT NULL, + `parent_group_id` bigint(20) DEFAULT NULL, + `default_group` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`ID`), + UNIQUE KEY `NAME` (`name`), + UNIQUE KEY `UUID` (`UUID`), + KEY `FK_iam_group_parent_id` (`parent_group_id`), + CONSTRAINT `FK_iam_group_parent_id` FOREIGN KEY (`parent_group_id`) REFERENCES `iam_group` (`ID`) +) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_group` +-- + +LOCK TABLES `iam_group` WRITE; +/*!40000 ALTER TABLE `iam_group` DISABLE KEYS */; +INSERT INTO `iam_group` VALUES (1,'2024-03-27 18:43:07','The production group','2024-03-27 18:43:07','Production','c617d586-54e6-411d-8e38-64967798fa8a',NULL,0),(2,'2024-03-27 18:43:07','The analysis group','2024-03-27 18:43:07','Analysis','6a384bcd-d4b3-4b7f-a2fe-7d897ada0dd1',NULL,0),(101,'2024-03-27 18:43:07','Test group-001','2024-03-27 18:43:07','Test-001','c617d586-54e6-411d-8e38-649677980001',NULL,0),(102,'2024-03-27 18:43:07','Test group-002','2024-03-27 18:43:07','Test-002','c617d586-54e6-411d-8e38-649677980002',NULL,0),(103,'2024-03-27 18:43:07','Test group-003','2024-03-27 18:43:07','Test-003','c617d586-54e6-411d-8e38-649677980003',NULL,0),(104,'2024-03-27 18:43:07','Test group-004','2024-03-27 18:43:07','Test-004','c617d586-54e6-411d-8e38-649677980004',NULL,0),(105,'2024-03-27 18:43:07','Test group-005','2024-03-27 18:43:07','Test-005','c617d586-54e6-411d-8e38-649677980005',NULL,0),(106,'2024-03-27 18:43:07','Test group-006','2024-03-27 18:43:07','Test-006','c617d586-54e6-411d-8e38-649677980006',NULL,0),(107,'2024-03-27 18:43:07','Test group-007','2024-03-27 18:43:07','Test-007','c617d586-54e6-411d-8e38-649677980007',NULL,0),(108,'2024-03-27 18:43:07','Test group-008','2024-03-27 18:43:07','Test-008','c617d586-54e6-411d-8e38-649677980008',NULL,0),(109,'2024-03-27 18:43:07','Test group-009','2024-03-27 18:43:07','Test-009','c617d586-54e6-411d-8e38-649677980009',NULL,0),(110,'2024-03-27 18:43:07','Test group-010','2024-03-27 18:43:07','Test-010','c617d586-54e6-411d-8e38-649677980010',NULL,0),(111,'2024-03-27 18:43:07','Test group-011','2024-03-27 18:43:07','Test-011','c617d586-54e6-411d-8e38-649677980011',NULL,0),(112,'2024-03-27 18:43:07','Test group-012','2024-03-27 18:43:07','Test-012','c617d586-54e6-411d-8e38-649677980012',NULL,0),(113,'2024-03-27 18:43:07','Test group-013','2024-03-27 18:43:07','Test-013','c617d586-54e6-411d-8e38-649677980013',NULL,0),(114,'2024-03-27 18:43:07','Test group-014','2024-03-27 18:43:07','Test-014','c617d586-54e6-411d-8e38-649677980014',NULL,0),(115,'2024-03-27 18:43:07','Test group-015','2024-03-27 18:43:07','Test-015','c617d586-54e6-411d-8e38-649677980015',NULL,0),(116,'2024-03-27 18:43:07','Test group-016','2024-03-27 18:43:07','Test-016','c617d586-54e6-411d-8e38-649677980016',NULL,0),(117,'2024-03-27 18:43:07','Test group-017','2024-03-27 18:43:07','Test-017','c617d586-54e6-411d-8e38-649677980017',NULL,0),(118,'2024-03-27 18:43:07','Test group-018','2024-03-27 18:43:07','Test-018','c617d586-54e6-411d-8e38-649677980018',NULL,0),(119,'2024-03-27 18:43:07','Test group-019','2024-03-27 18:43:07','Test-019','c617d586-54e6-411d-8e38-649677980019',NULL,0),(120,'2024-03-27 18:43:07','Test group-020','2024-03-27 18:43:07','Test-020','c617d586-54e6-411d-8e38-649677980020',NULL,0),(121,'2024-03-27 18:44:41',NULL,'2024-03-27 18:47:36','indigo-dc','728b82da-751a-46fe-a4c0-44391837991a',NULL,0),(122,'2024-03-27 18:44:54',NULL,'2024-03-27 18:47:36','indigo-dc/G1','28c111d8-4a0c-4969-8a80-64a9c406702d',121,0),(123,'2024-03-27 18:45:00',NULL,'2024-03-27 18:47:39','indigo-dc/G2','373a768a-daba-4b66-a47d-63458db9a087',121,0),(124,'2024-03-27 18:45:05',NULL,'2024-03-27 18:47:59','indigo-dc/R1','67ee6763-e914-4b5a-93d7-a9000bbfe1f9',121,0),(125,'2024-03-27 18:45:29',NULL,'2024-03-27 18:47:36','indigo-dc/G1/R1','3534a378-eaf2-46cb-9d6e-9fc761f5262f',122,0),(126,'2024-03-27 18:46:00',NULL,'2024-03-27 18:47:59','indigo-dc/G2/G3','85d573fd-cdbd-41fb-9eca-8dabc481ba1d',123,0),(127,'2024-03-27 18:46:20',NULL,'2024-03-27 18:50:13','indigo-dc/G2/R1','843f6b10-151c-4ea8-9123-686640b58dcb',123,0); +/*!40000 ALTER TABLE `iam_group` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_group_attrs` +-- + +DROP TABLE IF EXISTS `iam_group_attrs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_group_attrs` ( + `NAME` varchar(64) NOT NULL, + `val` varchar(256) DEFAULT NULL, + `group_id` bigint(20) DEFAULT NULL, + KEY `INDEX_iam_group_attrs_name` (`NAME`), + KEY `INDEX_iam_group_attrs_name_val` (`NAME`,`val`), + KEY `FK_iam_group_attrs_group_id` (`group_id`), + CONSTRAINT `FK_iam_group_attrs_group_id` FOREIGN KEY (`group_id`) REFERENCES `iam_group` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_group_attrs` +-- + +LOCK TABLES `iam_group_attrs` WRITE; +/*!40000 ALTER TABLE `iam_group_attrs` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_group_attrs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_group_labels` +-- + +DROP TABLE IF EXISTS `iam_group_labels`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_group_labels` ( + `NAME` varchar(64) NOT NULL, + `PREFIX` varchar(256) DEFAULT NULL, + `val` varchar(64) DEFAULT NULL, + `group_id` bigint(20) DEFAULT NULL, + KEY `INDEX_iam_group_labels_prefix_name_val` (`PREFIX`,`NAME`,`val`), + KEY `INDEX_iam_group_labels_prefix_name` (`PREFIX`,`NAME`), + KEY `FK_iam_group_labels_group_id` (`group_id`), + CONSTRAINT `FK_iam_group_labels_group_id` FOREIGN KEY (`group_id`) REFERENCES `iam_group` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_group_labels` +-- + +LOCK TABLES `iam_group_labels` WRITE; +/*!40000 ALTER TABLE `iam_group_labels` DISABLE KEYS */; +INSERT INTO `iam_group_labels` VALUES ('voms.role',NULL,NULL,125),('wlcg.optional-group',NULL,NULL,125),('voms.role',NULL,NULL,124),('wlcg.optional-group',NULL,NULL,124),('voms.role',NULL,NULL,127),('wlcg.optional-group',NULL,NULL,127); +/*!40000 ALTER TABLE `iam_group_labels` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_group_request` +-- + +DROP TABLE IF EXISTS `iam_group_request`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_group_request` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `UUID` varchar(36) NOT NULL, + `ACCOUNT_ID` bigint(20) DEFAULT NULL, + `GROUP_ID` bigint(20) DEFAULT NULL, + `STATUS` varchar(50) DEFAULT NULL, + `NOTES` text, + `MOTIVATION` text, + `CREATIONTIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `LASTUPDATETIME` timestamp NOT NULL DEFAULT '1999-12-31 23:00:00', + PRIMARY KEY (`ID`), + UNIQUE KEY `UUID` (`UUID`), + KEY `FK_iam_group_request_account_id` (`ACCOUNT_ID`), + KEY `FK_iam_group_request_group_id` (`GROUP_ID`), + CONSTRAINT `FK_iam_group_request_account_id` FOREIGN KEY (`ACCOUNT_ID`) REFERENCES `iam_account` (`ID`), + CONSTRAINT `FK_iam_group_request_group_id` FOREIGN KEY (`GROUP_ID`) REFERENCES `iam_group` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_group_request` +-- + +LOCK TABLES `iam_group_request` WRITE; +/*!40000 ALTER TABLE `iam_group_request` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_group_request` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_notification_receiver` +-- + +DROP TABLE IF EXISTS `iam_notification_receiver`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_notification_receiver` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `NOTIFICATION_ID` bigint(20) DEFAULT NULL, + `EMAIL_ADDRESS` varchar(254) DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `FK_iam_notification_receiver_notification_id` (`NOTIFICATION_ID`), + CONSTRAINT `FK_iam_notification_receiver_notification_id` FOREIGN KEY (`NOTIFICATION_ID`) REFERENCES `iam_email_notification` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_notification_receiver` +-- + +LOCK TABLES `iam_notification_receiver` WRITE; +/*!40000 ALTER TABLE `iam_notification_receiver` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_notification_receiver` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_oidc_id` +-- + +DROP TABLE IF EXISTS `iam_oidc_id`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_oidc_id` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `ISSUER` varchar(256) NOT NULL, + `SUBJECT` varchar(256) NOT NULL, + `account_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `FK_iam_oidc_id_account_id` (`account_id`), + CONSTRAINT `FK_iam_oidc_id_account_id` FOREIGN KEY (`account_id`) REFERENCES `iam_account` (`ID`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_oidc_id` +-- + +LOCK TABLES `iam_oidc_id` WRITE; +/*!40000 ALTER TABLE `iam_oidc_id` DISABLE KEYS */; +INSERT INTO `iam_oidc_id` VALUES (1,'https://accounts.google.com','114132403455520317223',1),(2,'https://accounts.google.com','105440632287425289613',2),(3,'urn:test-oidc-issuer','test-user',2); +/*!40000 ALTER TABLE `iam_oidc_id` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_reg_request` +-- + +DROP TABLE IF EXISTS `iam_reg_request`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_reg_request` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `UUID` varchar(36) NOT NULL, + `CREATIONTIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `ACCOUNT_ID` bigint(20) DEFAULT NULL, + `STATUS` varchar(50) DEFAULT NULL, + `LASTUPDATETIME` timestamp NULL DEFAULT NULL, + `notes` text, + PRIMARY KEY (`ID`), + UNIQUE KEY `UUID` (`UUID`), + KEY `FK_iam_reg_request_account_id` (`ACCOUNT_ID`), + CONSTRAINT `FK_iam_reg_request_account_id` FOREIGN KEY (`ACCOUNT_ID`) REFERENCES `iam_account` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_reg_request` +-- + +LOCK TABLES `iam_reg_request` WRITE; +/*!40000 ALTER TABLE `iam_reg_request` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_reg_request` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_reg_request_labels` +-- + +DROP TABLE IF EXISTS `iam_reg_request_labels`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_reg_request_labels` ( + `NAME` varchar(64) NOT NULL, + `PREFIX` varchar(256) DEFAULT NULL, + `val` varchar(64) DEFAULT NULL, + `request_id` bigint(20) DEFAULT NULL, + KEY `INDEX_iam_reg_request_labels_prefix_name_val` (`PREFIX`,`NAME`,`val`), + KEY `INDEX_iam_reg_request_labels_prefix_name` (`PREFIX`,`NAME`), + KEY `FK_iam_reg_request_labels_request_id` (`request_id`), + CONSTRAINT `FK_iam_reg_request_labels_request_id` FOREIGN KEY (`request_id`) REFERENCES `iam_reg_request` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_reg_request_labels` +-- + +LOCK TABLES `iam_reg_request_labels` WRITE; +/*!40000 ALTER TABLE `iam_reg_request_labels` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_reg_request_labels` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_saml_id` +-- + +DROP TABLE IF EXISTS `iam_saml_id`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_saml_id` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `IDPID` varchar(256) NOT NULL, + `USERID` varchar(256) NOT NULL, + `account_id` bigint(20) DEFAULT NULL, + `attribute_id` varchar(256) NOT NULL, + PRIMARY KEY (`ID`), + KEY `FK_iam_saml_id_account_id` (`account_id`), + KEY `IDX_IAM_SAML_ID_1` (`IDPID`,`attribute_id`,`USERID`), + CONSTRAINT `FK_iam_saml_id_account_id` FOREIGN KEY (`account_id`) REFERENCES `iam_account` (`ID`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_saml_id` +-- + +LOCK TABLES `iam_saml_id` WRITE; +/*!40000 ALTER TABLE `iam_saml_id` DISABLE KEYS */; +INSERT INTO `iam_saml_id` VALUES (1,'https://idptestbed/idp/shibboleth','admin@example.org',1,'urn:oid:1.3.6.1.4.1.5923.1.1.1.13'),(2,'https://idptestbed/idp/shibboleth','andrea.ceccanti@example.org',2,'urn:oid:0.9.2342.19200300.100.1.3'),(3,'https://idptestbed/idp/shibboleth','78901@idptestbed',2,'urn:oid:1.3.6.1.4.1.5923.1.1.1.13'); +/*!40000 ALTER TABLE `iam_saml_id` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_scope_policy` +-- + +DROP TABLE IF EXISTS `iam_scope_policy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_scope_policy` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `creation_time` datetime NOT NULL, + `description` varchar(512) DEFAULT NULL, + `last_update_time` datetime NOT NULL, + `rule` varchar(6) NOT NULL, + `account_id` bigint(20) DEFAULT NULL, + `group_id` bigint(20) DEFAULT NULL, + `matching_policy` varchar(6) NOT NULL DEFAULT 'EQ', + PRIMARY KEY (`ID`), + KEY `FK_iam_scope_policy_group_id` (`group_id`), + KEY `FK_iam_scope_policy_account_id` (`account_id`), + CONSTRAINT `FK_iam_scope_policy_account_id` FOREIGN KEY (`account_id`) REFERENCES `iam_account` (`ID`), + CONSTRAINT `FK_iam_scope_policy_group_id` FOREIGN KEY (`group_id`) REFERENCES `iam_group` (`ID`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_scope_policy` +-- + +LOCK TABLES `iam_scope_policy` WRITE; +/*!40000 ALTER TABLE `iam_scope_policy` DISABLE KEYS */; +INSERT INTO `iam_scope_policy` VALUES (1,'2024-03-27 18:42:58','Default Permit ALL policy','2024-03-27 18:42:58','PERMIT',NULL,NULL,'EQ'); +/*!40000 ALTER TABLE `iam_scope_policy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_scope_policy_scope` +-- + +DROP TABLE IF EXISTS `iam_scope_policy_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_scope_policy_scope` ( + `policy_id` bigint(20) DEFAULT NULL, + `scope` varchar(256) DEFAULT NULL, + UNIQUE KEY `INDEX_iam_scope_policy_scope_policy_id_scope` (`policy_id`,`scope`), + KEY `INDEX_iam_scope_policy_scope_scope` (`scope`), + CONSTRAINT `FK_iam_scope_policy_scope_policy_id` FOREIGN KEY (`policy_id`) REFERENCES `iam_scope_policy` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_scope_policy_scope` +-- + +LOCK TABLES `iam_scope_policy_scope` WRITE; +/*!40000 ALTER TABLE `iam_scope_policy_scope` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_scope_policy_scope` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_ssh_key` +-- + +DROP TABLE IF EXISTS `iam_ssh_key`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_ssh_key` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `fingerprint` varchar(48) NOT NULL, + `LABEL` varchar(36) NOT NULL, + `is_primary` tinyint(1) DEFAULT '0', + `val` longtext, + `ACCOUNT_ID` bigint(20) DEFAULT NULL, + `creation_time` datetime NOT NULL, + `last_update_time` datetime NOT NULL, + PRIMARY KEY (`ID`), + UNIQUE KEY `fingerprint` (`fingerprint`), + KEY `FK_iam_ssh_key_ACCOUNT_ID` (`ACCOUNT_ID`), + CONSTRAINT `FK_iam_ssh_key_ACCOUNT_ID` FOREIGN KEY (`ACCOUNT_ID`) REFERENCES `iam_account` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_ssh_key` +-- + +LOCK TABLES `iam_ssh_key` WRITE; +/*!40000 ALTER TABLE `iam_ssh_key` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_ssh_key` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_totp_mfa` +-- + +DROP TABLE IF EXISTS `iam_totp_mfa`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_totp_mfa` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `active` tinyint(1) NOT NULL DEFAULT '0', + `secret` varchar(255) NOT NULL, + `creation_time` datetime NOT NULL, + `last_update_time` datetime NOT NULL, + `ACCOUNT_ID` bigint(20) DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `FK_iam_totp_mfa_account_id` (`ACCOUNT_ID`), + CONSTRAINT `FK_iam_totp_mfa_account_id` FOREIGN KEY (`ACCOUNT_ID`) REFERENCES `iam_account` (`ID`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_totp_mfa` +-- + +LOCK TABLES `iam_totp_mfa` WRITE; +/*!40000 ALTER TABLE `iam_totp_mfa` DISABLE KEYS */; +INSERT INTO `iam_totp_mfa` VALUES (1,1,'secret','2024-03-27 18:43:07','2024-03-27 18:43:07',1000); +/*!40000 ALTER TABLE `iam_totp_mfa` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_totp_recovery_code` +-- + +DROP TABLE IF EXISTS `iam_totp_recovery_code`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_totp_recovery_code` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `code` varchar(255) NOT NULL, + `totp_mfa_id` bigint(20) NOT NULL, + PRIMARY KEY (`ID`), + KEY `FK_iam_totp_recovery_code_totp_mfa_id` (`totp_mfa_id`), + CONSTRAINT `FK_iam_totp_recovery_code_totp_mfa_id` FOREIGN KEY (`totp_mfa_id`) REFERENCES `iam_totp_mfa` (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_totp_recovery_code` +-- + +LOCK TABLES `iam_totp_recovery_code` WRITE; +/*!40000 ALTER TABLE `iam_totp_recovery_code` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_totp_recovery_code` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_user_info` +-- + +DROP TABLE IF EXISTS `iam_user_info`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_user_info` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `BIRTHDATE` varchar(255) DEFAULT NULL, + `EMAIL` varchar(128) NOT NULL, + `EMAILVERIFIED` tinyint(1) DEFAULT '0', + `FAMILYNAME` varchar(64) NOT NULL, + `GENDER` varchar(255) DEFAULT NULL, + `GIVENNAME` varchar(64) NOT NULL, + `LOCALE` varchar(255) DEFAULT NULL, + `MIDDLENAME` varchar(64) DEFAULT NULL, + `NICKNAME` varchar(255) DEFAULT NULL, + `PHONENUMBER` varchar(255) DEFAULT NULL, + `PHONENUMBERVERIFIED` tinyint(1) DEFAULT '0', + `PICTURE` varchar(255) DEFAULT NULL, + `PROFILE` varchar(255) DEFAULT NULL, + `WEBSITE` varchar(255) DEFAULT NULL, + `ZONEINFO` varchar(255) DEFAULT NULL, + `ADDRESS_ID` bigint(20) DEFAULT NULL, + `DTYPE` varchar(31) DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `iui_em_idx` (`EMAIL`), + KEY `iui_gn_fn_idx` (`GIVENNAME`,`FAMILYNAME`), + KEY `FK_iam_user_info_address_id` (`ADDRESS_ID`), + CONSTRAINT `FK_iam_user_info_address_id` FOREIGN KEY (`ADDRESS_ID`) REFERENCES `iam_address` (`ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_user_info` +-- + +LOCK TABLES `iam_user_info` WRITE; +/*!40000 ALTER TABLE `iam_user_info` DISABLE KEYS */; +INSERT INTO `iam_user_info` VALUES (1,'1950-01-01','1_admin@iam.test',1,'User','M','Admin',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(2,'1950-01-01','test@iam.test',1,'User','M','Test',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(3,'1950-01-01','3_admin@iam.test',1,'Email 0','M','Duplicate',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(4,'1950-01-01','4_duplicate@iam.test',1,'Email 1','M','Duplicate ',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(5,'1950-01-01','5_duplicate@iam.test',1,'Email 2','M','Duplicate ',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(100,NULL,'test-100@test.org',1,'User',NULL,'Test-100',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(101,NULL,'test-101@test.org',1,'User',NULL,'Test-101',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(102,NULL,'test-102@test.org',1,'User',NULL,'Test-102',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(103,NULL,'test-103@test.org',1,'User',NULL,'Test-103',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(104,NULL,'test-104@test.org',1,'User',NULL,'Test-104',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(105,NULL,'test-105@test.org',1,'User',NULL,'Test-105',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(106,NULL,'test-106@test.org',1,'User',NULL,'Test-106',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(107,NULL,'test-107@test.org',1,'User',NULL,'Test-107',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(108,NULL,'test-108@test.org',1,'User',NULL,'Test-108',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(109,NULL,'test-109@test.org',1,'User',NULL,'Test-109',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(110,NULL,'test-110@test.org',1,'User',NULL,'Test-110',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(111,NULL,'test-111@test.org',1,'User',NULL,'Test-111',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(112,NULL,'test-112@test.org',1,'User',NULL,'Test-112',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(113,NULL,'test-113@test.org',1,'User',NULL,'Test-113',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(114,NULL,'test-114@test.org',1,'User',NULL,'Test-114',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(115,NULL,'test-115@test.org',1,'User',NULL,'Test-115',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(116,NULL,'test-116@test.org',1,'User',NULL,'Test-116',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(117,NULL,'test-117@test.org',1,'User',NULL,'Test-117',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(118,NULL,'test-118@test.org',1,'User',NULL,'Test-118',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(119,NULL,'test-119@test.org',1,'User',NULL,'Test-119',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(120,NULL,'test-120@test.org',1,'User',NULL,'Test-120',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(121,NULL,'test-121@test.org',1,'User',NULL,'Test-121',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(122,NULL,'test-122@test.org',1,'User',NULL,'Test-122',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(123,NULL,'test-123@test.org',1,'User',NULL,'Test-123',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(124,NULL,'test-124@test.org',1,'User',NULL,'Test-124',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(125,NULL,'test-125@test.org',1,'User',NULL,'Test-125',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(126,NULL,'test-126@test.org',1,'User',NULL,'Test-126',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(127,NULL,'test-127@test.org',1,'User',NULL,'Test-127',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(128,NULL,'test-128@test.org',1,'User',NULL,'Test-128',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(129,NULL,'test-129@test.org',1,'User',NULL,'Test-129',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(130,NULL,'test-130@test.org',1,'User',NULL,'Test-130',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(131,NULL,'test-131@test.org',1,'User',NULL,'Test-131',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(132,NULL,'test-132@test.org',1,'User',NULL,'Test-132',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(133,NULL,'test-133@test.org',1,'User',NULL,'Test-133',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(134,NULL,'test-134@test.org',1,'User',NULL,'Test-134',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(135,NULL,'test-135@test.org',1,'User',NULL,'Test-135',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(136,NULL,'test-136@test.org',1,'User',NULL,'Test-136',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(137,NULL,'test-137@test.org',1,'User',NULL,'Test-137',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(138,NULL,'test-138@test.org',1,'User',NULL,'Test-138',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(139,NULL,'test-139@test.org',1,'User',NULL,'Test-139',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(140,NULL,'test-140@test.org',1,'User',NULL,'Test-140',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(141,NULL,'test-141@test.org',1,'User',NULL,'Test-141',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(142,NULL,'test-142@test.org',1,'User',NULL,'Test-142',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(143,NULL,'test-143@test.org',1,'User',NULL,'Test-143',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(144,NULL,'test-144@test.org',1,'User',NULL,'Test-144',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(145,NULL,'test-145@test.org',1,'User',NULL,'Test-145',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(146,NULL,'test-146@test.org',1,'User',NULL,'Test-146',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(147,NULL,'test-147@test.org',1,'User',NULL,'Test-147',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(148,NULL,'test-148@test.org',1,'User',NULL,'Test-148',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(149,NULL,'test-149@test.org',1,'User',NULL,'Test-149',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(150,NULL,'test-150@test.org',1,'User',NULL,'Test-150',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(151,NULL,'test-151@test.org',1,'User',NULL,'Test-151',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(152,NULL,'test-152@test.org',1,'User',NULL,'Test-152',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(153,NULL,'test-153@test.org',1,'User',NULL,'Test-153',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(154,NULL,'test-154@test.org',1,'User',NULL,'Test-154',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(155,NULL,'test-155@test.org',1,'User',NULL,'Test-155',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(156,NULL,'test-156@test.org',1,'User',NULL,'Test-156',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(157,NULL,'test-157@test.org',1,'User',NULL,'Test-157',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(158,NULL,'test-158@test.org',1,'User',NULL,'Test-158',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(159,NULL,'test-159@test.org',1,'User',NULL,'Test-159',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(160,NULL,'test-160@test.org',1,'User',NULL,'Test-160',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(161,NULL,'test-161@test.org',1,'User',NULL,'Test-161',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(162,NULL,'test-162@test.org',1,'User',NULL,'Test-162',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(163,NULL,'test-163@test.org',1,'User',NULL,'Test-163',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(164,NULL,'test-164@test.org',1,'User',NULL,'Test-164',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(165,NULL,'test-165@test.org',1,'User',NULL,'Test-165',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(166,NULL,'test-166@test.org',1,'User',NULL,'Test-166',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(167,NULL,'test-167@test.org',1,'User',NULL,'Test-167',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(168,NULL,'test-168@test.org',1,'User',NULL,'Test-168',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(169,NULL,'test-169@test.org',1,'User',NULL,'Test-169',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(170,NULL,'test-170@test.org',1,'User',NULL,'Test-170',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(171,NULL,'test-171@test.org',1,'User',NULL,'Test-171',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(172,NULL,'test-172@test.org',1,'User',NULL,'Test-172',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(173,NULL,'test-173@test.org',1,'User',NULL,'Test-173',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(174,NULL,'test-174@test.org',1,'User',NULL,'Test-174',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(175,NULL,'test-175@test.org',1,'User',NULL,'Test-175',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(176,NULL,'test-176@test.org',1,'User',NULL,'Test-176',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(177,NULL,'test-177@test.org',1,'User',NULL,'Test-177',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(178,NULL,'test-178@test.org',1,'User',NULL,'Test-178',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(179,NULL,'test-179@test.org',1,'User',NULL,'Test-179',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(180,NULL,'test-180@test.org',1,'User',NULL,'Test-180',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(181,NULL,'test-181@test.org',1,'User',NULL,'Test-181',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(182,NULL,'test-182@test.org',1,'User',NULL,'Test-182',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(183,NULL,'test-183@test.org',1,'User',NULL,'Test-183',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(184,NULL,'test-184@test.org',1,'User',NULL,'Test-184',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(185,NULL,'test-185@test.org',1,'User',NULL,'Test-185',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(186,NULL,'test-186@test.org',1,'User',NULL,'Test-186',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(187,NULL,'test-187@test.org',1,'User',NULL,'Test-187',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(188,NULL,'test-188@test.org',1,'User',NULL,'Test-188',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(189,NULL,'test-189@test.org',1,'User',NULL,'Test-189',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(190,NULL,'test-190@test.org',1,'User',NULL,'Test-190',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(191,NULL,'test-191@test.org',1,'User',NULL,'Test-191',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(192,NULL,'test-192@test.org',1,'User',NULL,'Test-192',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(193,NULL,'test-193@test.org',1,'User',NULL,'Test-193',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(194,NULL,'test-194@test.org',1,'User',NULL,'Test-194',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(195,NULL,'test-195@test.org',1,'User',NULL,'Test-195',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(196,NULL,'test-196@test.org',1,'User',NULL,'Test-196',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(197,NULL,'test-197@test.org',1,'User',NULL,'Test-197',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(198,NULL,'test-198@test.org',1,'User',NULL,'Test-198',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(199,NULL,'test-199@test.org',1,'User',NULL,'Test-199',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(200,NULL,'test-200@test.org',1,'User',NULL,'Test-200',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(201,NULL,'test-201@test.org',1,'User',NULL,'Test-201',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(202,NULL,'test-202@test.org',1,'User',NULL,'Test-202',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(203,NULL,'test-203@test.org',1,'User',NULL,'Test-203',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(204,NULL,'test-204@test.org',1,'User',NULL,'Test-204',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(205,NULL,'test-205@test.org',1,'User',NULL,'Test-205',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(206,NULL,'test-206@test.org',1,'User',NULL,'Test-206',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(207,NULL,'test-207@test.org',1,'User',NULL,'Test-207',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(208,NULL,'test-208@test.org',1,'User',NULL,'Test-208',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(209,NULL,'test-209@test.org',1,'User',NULL,'Test-209',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(210,NULL,'test-210@test.org',1,'User',NULL,'Test-210',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(211,NULL,'test-211@test.org',1,'User',NULL,'Test-211',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(212,NULL,'test-212@test.org',1,'User',NULL,'Test-212',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(213,NULL,'test-213@test.org',1,'User',NULL,'Test-213',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(214,NULL,'test-214@test.org',1,'User',NULL,'Test-214',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(215,NULL,'test-215@test.org',1,'User',NULL,'Test-215',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(216,NULL,'test-216@test.org',1,'User',NULL,'Test-216',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(217,NULL,'test-217@test.org',1,'User',NULL,'Test-217',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(218,NULL,'test-218@test.org',1,'User',NULL,'Test-218',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(219,NULL,'test-219@test.org',1,'User',NULL,'Test-219',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(220,NULL,'test-220@test.org',1,'User',NULL,'Test-220',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(221,NULL,'test-221@test.org',1,'User',NULL,'Test-221',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(222,NULL,'test-222@test.org',1,'User',NULL,'Test-222',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(223,NULL,'test-223@test.org',1,'User',NULL,'Test-223',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(224,NULL,'test-224@test.org',1,'User',NULL,'Test-224',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(225,NULL,'test-225@test.org',1,'User',NULL,'Test-225',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(226,NULL,'test-226@test.org',1,'User',NULL,'Test-226',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(227,NULL,'test-227@test.org',1,'User',NULL,'Test-227',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(228,NULL,'test-228@test.org',1,'User',NULL,'Test-228',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(229,NULL,'test-229@test.org',1,'User',NULL,'Test-229',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(230,NULL,'test-230@test.org',1,'User',NULL,'Test-230',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(231,NULL,'test-231@test.org',1,'User',NULL,'Test-231',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(232,NULL,'test-232@test.org',1,'User',NULL,'Test-232',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(233,NULL,'test-233@test.org',1,'User',NULL,'Test-233',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(234,NULL,'test-234@test.org',1,'User',NULL,'Test-234',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(235,NULL,'test-235@test.org',1,'User',NULL,'Test-235',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(236,NULL,'test-236@test.org',1,'User',NULL,'Test-236',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(237,NULL,'test-237@test.org',1,'User',NULL,'Test-237',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(238,NULL,'test-238@test.org',1,'User',NULL,'Test-238',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(239,NULL,'test-239@test.org',1,'User',NULL,'Test-239',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(240,NULL,'test-240@test.org',1,'User',NULL,'Test-240',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(241,NULL,'test-241@test.org',1,'User',NULL,'Test-241',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(242,NULL,'test-242@test.org',1,'User',NULL,'Test-242',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(243,NULL,'test-243@test.org',1,'User',NULL,'Test-243',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(244,NULL,'test-244@test.org',1,'User',NULL,'Test-244',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(245,NULL,'test-245@test.org',1,'User',NULL,'Test-245',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(246,NULL,'test-246@test.org',1,'User',NULL,'Test-246',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(247,NULL,'test-247@test.org',1,'User',NULL,'Test-247',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(248,NULL,'test-248@test.org',1,'User',NULL,'Test-248',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(249,NULL,'test-249@test.org',1,'User',NULL,'Test-249',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(250,NULL,'test-250@test.org',1,'User',NULL,'Test-250',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(251,NULL,'test-251@test.org',1,'User',NULL,'Test-251',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(252,NULL,'test-252@test.org',1,'User',NULL,'Test-252',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(253,NULL,'test-253@test.org',1,'User',NULL,'Test-253',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(254,NULL,'test-254@test.org',1,'User',NULL,'Test-254',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(255,NULL,'test-255@test.org',1,'User',NULL,'Test-255',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(256,NULL,'test-256@test.org',1,'User',NULL,'Test-256',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(257,NULL,'test-257@test.org',1,'User',NULL,'Test-257',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(258,NULL,'test-258@test.org',1,'User',NULL,'Test-258',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(259,NULL,'test-259@test.org',1,'User',NULL,'Test-259',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(260,NULL,'test-260@test.org',1,'User',NULL,'Test-260',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(261,NULL,'test-261@test.org',1,'User',NULL,'Test-261',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(262,NULL,'test-262@test.org',1,'User',NULL,'Test-262',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(263,NULL,'test-263@test.org',1,'User',NULL,'Test-263',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(264,NULL,'test-264@test.org',1,'User',NULL,'Test-264',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(265,NULL,'test-265@test.org',1,'User',NULL,'Test-265',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(266,NULL,'test-266@test.org',1,'User',NULL,'Test-266',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(267,NULL,'test-267@test.org',1,'User',NULL,'Test-267',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(268,NULL,'test-268@test.org',1,'User',NULL,'Test-268',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(269,NULL,'test-269@test.org',1,'User',NULL,'Test-269',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(270,NULL,'test-270@test.org',1,'User',NULL,'Test-270',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(271,NULL,'test-271@test.org',1,'User',NULL,'Test-271',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(272,NULL,'test-272@test.org',1,'User',NULL,'Test-272',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(273,NULL,'test-273@test.org',1,'User',NULL,'Test-273',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(274,NULL,'test-274@test.org',1,'User',NULL,'Test-274',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(275,NULL,'test-275@test.org',1,'User',NULL,'Test-275',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(276,NULL,'test-276@test.org',1,'User',NULL,'Test-276',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(277,NULL,'test-277@test.org',1,'User',NULL,'Test-277',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(278,NULL,'test-278@test.org',1,'User',NULL,'Test-278',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(279,NULL,'test-279@test.org',1,'User',NULL,'Test-279',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(280,NULL,'test-280@test.org',1,'User',NULL,'Test-280',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(281,NULL,'test-281@test.org',1,'User',NULL,'Test-281',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(282,NULL,'test-282@test.org',1,'User',NULL,'Test-282',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(283,NULL,'test-283@test.org',1,'User',NULL,'Test-283',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(284,NULL,'test-284@test.org',1,'User',NULL,'Test-284',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(285,NULL,'test-285@test.org',1,'User',NULL,'Test-285',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(286,NULL,'test-286@test.org',1,'User',NULL,'Test-286',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(287,NULL,'test-287@test.org',1,'User',NULL,'Test-287',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(288,NULL,'test-288@test.org',1,'User',NULL,'Test-288',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(289,NULL,'test-289@test.org',1,'User',NULL,'Test-289',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(290,NULL,'test-290@test.org',1,'User',NULL,'Test-290',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(291,NULL,'test-291@test.org',1,'User',NULL,'Test-291',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(292,NULL,'test-292@test.org',1,'User',NULL,'Test-292',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(293,NULL,'test-293@test.org',1,'User',NULL,'Test-293',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(294,NULL,'test-294@test.org',1,'User',NULL,'Test-294',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(295,NULL,'test-295@test.org',1,'User',NULL,'Test-295',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(296,NULL,'test-296@test.org',1,'User',NULL,'Test-296',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(297,NULL,'test-297@test.org',1,'User',NULL,'Test-297',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(298,NULL,'test-298@test.org',1,'User',NULL,'Test-298',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(299,NULL,'test-299@test.org',1,'User',NULL,'Test-299',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(300,NULL,'test-300@test.org',1,'User',NULL,'Test-300',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(301,NULL,'test-301@test.org',1,'User',NULL,'Test-301',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(302,NULL,'test-302@test.org',1,'User',NULL,'Test-302',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(303,NULL,'test-303@test.org',1,'User',NULL,'Test-303',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(304,NULL,'test-304@test.org',1,'User',NULL,'Test-304',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(305,NULL,'test-305@test.org',1,'User',NULL,'Test-305',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(306,NULL,'test-306@test.org',1,'User',NULL,'Test-306',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(307,NULL,'test-307@test.org',1,'User',NULL,'Test-307',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(308,NULL,'test-308@test.org',1,'User',NULL,'Test-308',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(309,NULL,'test-309@test.org',1,'User',NULL,'Test-309',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(310,NULL,'test-310@test.org',1,'User',NULL,'Test-310',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(311,NULL,'test-311@test.org',1,'User',NULL,'Test-311',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(312,NULL,'test-312@test.org',1,'User',NULL,'Test-312',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(313,NULL,'test-313@test.org',1,'User',NULL,'Test-313',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(314,NULL,'test-314@test.org',1,'User',NULL,'Test-314',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(315,NULL,'test-315@test.org',1,'User',NULL,'Test-315',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(316,NULL,'test-316@test.org',1,'User',NULL,'Test-316',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(317,NULL,'test-317@test.org',1,'User',NULL,'Test-317',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(318,NULL,'test-318@test.org',1,'User',NULL,'Test-318',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(319,NULL,'test-319@test.org',1,'User',NULL,'Test-319',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(320,NULL,'test-320@test.org',1,'User',NULL,'Test-320',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(321,NULL,'test-321@test.org',1,'User',NULL,'Test-321',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(322,NULL,'test-322@test.org',1,'User',NULL,'Test-322',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(323,NULL,'test-323@test.org',1,'User',NULL,'Test-323',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(324,NULL,'test-324@test.org',1,'User',NULL,'Test-324',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(325,NULL,'test-325@test.org',1,'User',NULL,'Test-325',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(326,NULL,'test-326@test.org',1,'User',NULL,'Test-326',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(327,NULL,'test-327@test.org',1,'User',NULL,'Test-327',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(328,NULL,'test-328@test.org',1,'User',NULL,'Test-328',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(329,NULL,'test-329@test.org',1,'User',NULL,'Test-329',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(330,NULL,'test-330@test.org',1,'User',NULL,'Test-330',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(331,NULL,'test-331@test.org',1,'User',NULL,'Test-331',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(332,NULL,'test-332@test.org',1,'User',NULL,'Test-332',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(333,NULL,'test-333@test.org',1,'User',NULL,'Test-333',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(334,NULL,'test-334@test.org',1,'User',NULL,'Test-334',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(335,NULL,'test-335@test.org',1,'User',NULL,'Test-335',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(336,NULL,'test-336@test.org',1,'User',NULL,'Test-336',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(337,NULL,'test-337@test.org',1,'User',NULL,'Test-337',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(338,NULL,'test-338@test.org',1,'User',NULL,'Test-338',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(339,NULL,'test-339@test.org',1,'User',NULL,'Test-339',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(340,NULL,'test-340@test.org',1,'User',NULL,'Test-340',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(341,NULL,'test-341@test.org',1,'User',NULL,'Test-341',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(342,NULL,'test-342@test.org',1,'User',NULL,'Test-342',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(343,NULL,'test-343@test.org',1,'User',NULL,'Test-343',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(344,NULL,'test-344@test.org',1,'User',NULL,'Test-344',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(345,NULL,'test-345@test.org',1,'User',NULL,'Test-345',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(346,NULL,'test-346@test.org',1,'User',NULL,'Test-346',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(347,NULL,'test-347@test.org',1,'User',NULL,'Test-347',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL),(1000,'2000-01-01','testwithmfa@iam.test',1,'MFA','F','Test',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL); +/*!40000 ALTER TABLE `iam_user_info` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_x509_cert` +-- + +DROP TABLE IF EXISTS `iam_x509_cert`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_x509_cert` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `subject_dn` varchar(256) CHARACTER SET latin1 COLLATE latin1_general_cs DEFAULT NULL, + `LABEL` varchar(36) NOT NULL, + `is_primary` tinyint(1) DEFAULT '0', + `ACCOUNT_ID` bigint(20) DEFAULT NULL, + `CERTIFICATE` text, + `issuer_dn` varchar(256) CHARACTER SET latin1 COLLATE latin1_general_cs DEFAULT NULL, + `creation_time` datetime NOT NULL, + `last_update_time` datetime NOT NULL, + `proxy_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`ID`), + UNIQUE KEY `idx_iam_x509_cert_cerificate` (`CERTIFICATE`(256)), + KEY `FK_iam_x509_cert_ACCOUNT_ID` (`ACCOUNT_ID`), + KEY `FK_iam_x509_cert_proxy_id` (`proxy_id`), + KEY `idx_subject_dn` (`subject_dn`), + CONSTRAINT `FK_iam_x509_cert_ACCOUNT_ID` FOREIGN KEY (`ACCOUNT_ID`) REFERENCES `iam_account` (`ID`), + CONSTRAINT `FK_iam_x509_cert_proxy_id` FOREIGN KEY (`proxy_id`) REFERENCES `iam_x509_proxy` (`ID`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_x509_cert` +-- + +LOCK TABLES `iam_x509_cert` WRITE; +/*!40000 ALTER TABLE `iam_x509_cert` DISABLE KEYS */; +INSERT INTO `iam_x509_cert` VALUES (1,'CN=test2,O=IGI,C=IT','test2 cert',1,1,'-----BEGIN CERTIFICATE-----\nMIIDnjCCAoagAwIBAgIBCzANBgkqhkiG9w0BAQUFADAtMQswCQYDVQQGEwJJVDEM\nMAoGA1UECgwDSUdJMRAwDgYDVQQDDAdUZXN0IENBMB4XDTEyMDkyNjE1MzkzOFoX\nDTIyMDkyNDE1MzkzOFowKzELMAkGA1UEBhMCSVQxDDAKBgNVBAoTA0lHSTEOMAwG\nA1UEAxMFdGVzdDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEYYwo\neq5ucXGsIZqI5V30OmEZTLzz3TCtFSp+DWbFHAeiiZNNktK44udHV+kwTjSxHTUJ\nP9RIvCAIMggtvibesXrTp1UHAF6p1d2GaUmU+mc/y7zRESxuSXx+SqWCwBOVxOzj\nDhm9oWlg3TSNctV2qv0HR2t8hsnfsQShULwaUJmQZ1fBfDN6HL5ITe77ptXB84Hz\nMAmNv0ckoQmVGtlVhoasppTgMhoWvBSguT1FGw7A/a8ZzQZV8rC1BP/1LZtRitHm\nstErUyULBjQekpu3VhGFJLCFD3fcyjoBKsIxCm62NhzHLOF8RE+kW05MRGrUu007\nCuV3yCDZOixIAxKVAgMBAAGjgcowgccwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU\nXNkN/hv+aBr6hqNqYm1VaiEAvpcwDgYDVR0PAQH/BAQDAgXgMD4GA1UdJQQ3MDUG\nCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBBggrBgEF\nBQcDBDAfBgNVHSMEGDAWgBSRdzZ7LrRp8yfqt/YIi0ojohFJxjAnBgNVHREEIDAe\ngRxhbmRyZWEuY2VjY2FudGlAY25hZi5pbmZuLml0MA0GCSqGSIb3DQEBBQUAA4IB\nAQBOavmIRcBqWnGFmcEp8zJ+cR3k02UcM0Xg7/vAnxJ7JziniMJLyBrxAaW1j2f6\nqJrap9rK+aukhovInTSrdWKM6y5ceY0w7u4nsu8Y3lRf3g9e766iuY3NfflDZE2N\ns3JuHZljwx7NGEOrr/Wi5Q1g9JVJcK+A+aB3vPLoS/Uc95ibdqJKHVG0rcKLnqR6\nAVvzyPxJtpwk4yy4V+juBZib2SImBWJ7C5VHuHLMAOxtNV84CIXpdvLKfA1Bjf3W\nUMrcvhN03L72j9IR0WEZlFMfYbxv1gbNbo+fhVo3itHI3lTl0K0BD5bOP0LqtARL\ngZ9zFVlxWHcKUqQ41ZQXNg7U\n-----END CERTIFICATE-----','CN=Test CA,O=IGI,C=IT','2024-03-27 18:43:07','2024-03-27 18:43:07',NULL),(2,'CN=test0,O=IGI,C=IT','Test0',0,2,'-----BEGIN CERTIFICATE-----\nMIIDnjCCAoagAwIBAgIBCDANBgkqhkiG9w0BAQUFADAtMQswCQYDVQQGEwJJVDEM\nMAoGA1UECgwDSUdJMRAwDgYDVQQDDAdUZXN0IENBMB4XDTIyMTAwMTEzMTYzMloX\nDTMyMDkyODEzMTYzMlowKzELMAkGA1UEBhMCSVQxDDAKBgNVBAoMA0lHSTEOMAwG\nA1UEAwwFdGVzdDAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCoyIIN\nH7YaqKMIW4kI41E0gDqtaQKYKdCv1cDL9/ibg0QLO/hyak9u9zQnp7XlK6e9NwnM\nT3efn3o5xWyA4nY8UWvXQRxQjuQO1hxManxFxzVHYYkd5p4JDy3lrDSPgw8yojPZ\niAwVcDWZfVzXEC/EEAtbheSZcydQaEWSCLmY9rrriyvxrIlYaiAzXFhV0hRsxPy9\nFk85nq1JVzeAN7jVt3JVrDgHd17IQIySXz3JU7UYChGcW3CO4LNe4p39cbjW6wbi\nUqo+7caSJsOxwoS2RcHAahgd+BGegMkr48krmojuDcYrrkAL4AK0Uh5xXdWul1kG\n0SFf0WyN23CjuFEXAgMBAAGjgcowgccwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU\naognKvxLiK8OSA1F/9x+7qCDtuUwDgYDVR0PAQH/BAQDAgXgMD4GA1UdJQQ3MDUG\nCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBBggrBgEF\nBQcDBDAfBgNVHSMEGDAWgBRQm290AeMaA1er2dV9FWRMJfP49DAnBgNVHREEIDAe\ngRxhbmRyZWEuY2VjY2FudGlAY25hZi5pbmZuLml0MA0GCSqGSIb3DQEBBQUAA4IB\nAQBHBk5Pcr3EXJZedPeEQuXCdPMDAJpAcZTCTINfGRoQXDYQk6ce8bH8jHPmao6d\nqV/f/14y2Jmkz+aiFQhSSyDLk4ywTgGHT+kpWEsYGbN4AdcMlH1L9uaG7YbuAZzH\n6bkd8HLsTiwslXYHjyldbQL9ZU6DrGAdt/IuAfFrQjWWuJ21SfBlnp4OkWQK5wTk\nsTvfeZX6VwinpXzF6xIrtAfJ7OYRDuN7UIrwBl9G0hoQPuXFJeVRAzYRwDVbejSo\n/8OWCj17EXDO+tG6Md+JYIsqJ4wrytd4YeuYDVDzbVV8DHfMrk2+PeJ0nSOSyYV+\ndoaFzJ6837vw8+5gxDTHT/un\n-----END CERTIFICATE-----','CN=Test CA,O=IGI,C=IT','2024-03-27 18:44:27','2024-03-27 18:44:27',NULL); +/*!40000 ALTER TABLE `iam_x509_cert` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `iam_x509_proxy` +-- + +DROP TABLE IF EXISTS `iam_x509_proxy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `iam_x509_proxy` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `CHAIN` longtext NOT NULL, + `exp_time` datetime NOT NULL, + PRIMARY KEY (`ID`), + KEY `IDX_IAM_X509_PXY_EXP_T` (`exp_time`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `iam_x509_proxy` +-- + +LOCK TABLES `iam_x509_proxy` WRITE; +/*!40000 ALTER TABLE `iam_x509_proxy` DISABLE KEYS */; +/*!40000 ALTER TABLE `iam_x509_proxy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pairwise_identifier` +-- + +DROP TABLE IF EXISTS `pairwise_identifier`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `pairwise_identifier` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `identifier` varchar(256) DEFAULT NULL, + `sub` varchar(256) DEFAULT NULL, + `sector_identifier` varchar(2048) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `pairwise_identifier` +-- + +LOCK TABLES `pairwise_identifier` WRITE; +/*!40000 ALTER TABLE `pairwise_identifier` DISABLE KEYS */; +/*!40000 ALTER TABLE `pairwise_identifier` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `permission` +-- + +DROP TABLE IF EXISTS `permission`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `permission` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `resource_set_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `permission` +-- + +LOCK TABLES `permission` WRITE; +/*!40000 ALTER TABLE `permission` DISABLE KEYS */; +/*!40000 ALTER TABLE `permission` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `permission_scope` +-- + +DROP TABLE IF EXISTS `permission_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `permission_scope` ( + `owner_id` bigint(20) NOT NULL, + `scope` varchar(256) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `permission_scope` +-- + +LOCK TABLES `permission_scope` WRITE; +/*!40000 ALTER TABLE `permission_scope` DISABLE KEYS */; +/*!40000 ALTER TABLE `permission_scope` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `permission_ticket` +-- + +DROP TABLE IF EXISTS `permission_ticket`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `permission_ticket` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `ticket` varchar(256) NOT NULL, + `permission_id` bigint(20) NOT NULL, + `expiration` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `permission_ticket` +-- + +LOCK TABLES `permission_ticket` WRITE; +/*!40000 ALTER TABLE `permission_ticket` DISABLE KEYS */; +/*!40000 ALTER TABLE `permission_ticket` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `policy` +-- + +DROP TABLE IF EXISTS `policy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `policy` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(1024) DEFAULT NULL, + `resource_set_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `policy` +-- + +LOCK TABLES `policy` WRITE; +/*!40000 ALTER TABLE `policy` DISABLE KEYS */; +/*!40000 ALTER TABLE `policy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `policy_scope` +-- + +DROP TABLE IF EXISTS `policy_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `policy_scope` ( + `owner_id` bigint(20) NOT NULL, + `scope` varchar(256) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `policy_scope` +-- + +LOCK TABLES `policy_scope` WRITE; +/*!40000 ALTER TABLE `policy_scope` DISABLE KEYS */; +/*!40000 ALTER TABLE `policy_scope` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `refresh_token` +-- + +DROP TABLE IF EXISTS `refresh_token`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `refresh_token` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `token_value` varchar(4096) DEFAULT NULL, + `expiration` timestamp NULL DEFAULT NULL, + `auth_holder_id` bigint(20) DEFAULT NULL, + `client_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `rf_ahi_idx` (`auth_holder_id`), + KEY `FK_refresh_token_client_id` (`client_id`), + CONSTRAINT `FK_refresh_token_auth_holder_id` FOREIGN KEY (`auth_holder_id`) REFERENCES `authentication_holder` (`id`) ON DELETE CASCADE, + CONSTRAINT `FK_refresh_token_client_id` FOREIGN KEY (`client_id`) REFERENCES `client_details` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `refresh_token` +-- + +LOCK TABLES `refresh_token` WRITE; +/*!40000 ALTER TABLE `refresh_token` DISABLE KEYS */; +/*!40000 ALTER TABLE `refresh_token` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `resource_set` +-- + +DROP TABLE IF EXISTS `resource_set`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `resource_set` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(1024) NOT NULL, + `uri` varchar(1024) DEFAULT NULL, + `icon_uri` varchar(1024) DEFAULT NULL, + `rs_type` varchar(256) DEFAULT NULL, + `owner` varchar(256) NOT NULL, + `client_id` varchar(256) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `resource_set` +-- + +LOCK TABLES `resource_set` WRITE; +/*!40000 ALTER TABLE `resource_set` DISABLE KEYS */; +/*!40000 ALTER TABLE `resource_set` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `resource_set_scope` +-- + +DROP TABLE IF EXISTS `resource_set_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `resource_set_scope` ( + `owner_id` bigint(20) NOT NULL, + `scope` varchar(256) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `resource_set_scope` +-- + +LOCK TABLES `resource_set_scope` WRITE; +/*!40000 ALTER TABLE `resource_set_scope` DISABLE KEYS */; +/*!40000 ALTER TABLE `resource_set_scope` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `saved_registered_client` +-- + +DROP TABLE IF EXISTS `saved_registered_client`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `saved_registered_client` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `issuer` varchar(1024) DEFAULT NULL, + `registered_client` varchar(8192) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `saved_registered_client` +-- + +LOCK TABLES `saved_registered_client` WRITE; +/*!40000 ALTER TABLE `saved_registered_client` DISABLE KEYS */; +/*!40000 ALTER TABLE `saved_registered_client` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `saved_user_auth` +-- + +DROP TABLE IF EXISTS `saved_user_auth`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `saved_user_auth` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(1024) DEFAULT NULL, + `authenticated` tinyint(1) DEFAULT NULL, + `source_class` varchar(2048) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `saved_user_auth` +-- + +LOCK TABLES `saved_user_auth` WRITE; +/*!40000 ALTER TABLE `saved_user_auth` DISABLE KEYS */; +/*!40000 ALTER TABLE `saved_user_auth` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `saved_user_auth_authority` +-- + +DROP TABLE IF EXISTS `saved_user_auth_authority`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `saved_user_auth_authority` ( + `owner_id` bigint(20) DEFAULT NULL, + `authority` varchar(256) DEFAULT NULL, + KEY `suaa_oi_idx` (`owner_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `saved_user_auth_authority` +-- + +LOCK TABLES `saved_user_auth_authority` WRITE; +/*!40000 ALTER TABLE `saved_user_auth_authority` DISABLE KEYS */; +/*!40000 ALTER TABLE `saved_user_auth_authority` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `saved_user_auth_info` +-- + +DROP TABLE IF EXISTS `saved_user_auth_info`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `saved_user_auth_info` ( + `owner_id` bigint(20) DEFAULT NULL, + `info_key` varchar(256) DEFAULT NULL, + `info_val` varchar(256) DEFAULT NULL, + UNIQUE KEY `owner_id` (`owner_id`,`info_key`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `saved_user_auth_info` +-- + +LOCK TABLES `saved_user_auth_info` WRITE; +/*!40000 ALTER TABLE `saved_user_auth_info` DISABLE KEYS */; +/*!40000 ALTER TABLE `saved_user_auth_info` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `schema_version` +-- + +DROP TABLE IF EXISTS `schema_version`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `schema_version` ( + `installed_rank` int(11) NOT NULL, + `version` varchar(50) DEFAULT NULL, + `description` varchar(200) NOT NULL, + `type` varchar(20) NOT NULL, + `script` varchar(1000) NOT NULL, + `checksum` int(11) DEFAULT NULL, + `installed_by` varchar(100) NOT NULL, + `installed_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `execution_time` int(11) NOT NULL, + `success` tinyint(1) NOT NULL, + PRIMARY KEY (`installed_rank`), + KEY `schema_version_s_idx` (`success`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `schema_version` +-- + +LOCK TABLES `schema_version` WRITE; +/*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; +INSERT INTO `schema_version` VALUES (1,'1',' init','SQL','V1___init.sql',-673105977,'iam','2024-03-27 17:42:53',2003,1),(2,'2',' iam tables','SQL','V2___iam_tables.sql',916872168,'iam','2024-03-27 17:42:54',1436,1),(3,'3','basic configuration','SQL','V3__basic_configuration.sql',-1952954691,'iam','2024-03-27 17:42:54',31,1),(4,'3.1',' duplicate email user','SQL','V3_1___duplicate_email_user.sql',-754234138,'iam','2024-03-27 17:42:54',14,1),(5,'4',' x509 updates','SQL','V4___x509_updates.sql',803590936,'iam','2024-03-27 17:42:54',84,1),(6,'5',' registration request','SQL','V5___registration_request.sql',844204664,'iam','2024-03-27 17:42:55',280,1),(7,'6',' remove wrong constraints','SQL','V6___remove_wrong_constraints.sql',2003434964,'iam','2024-03-27 17:42:55',40,1),(8,'7',' notification tables','SQL','V7___notification_tables.sql',-1136933843,'iam','2024-03-27 17:42:55',331,1),(9,'8',' mitre update','SQL','V8___mitre_update.sql',608617254,'iam','2024-03-27 17:42:55',69,1),(10,'9','mitre saved user authn changes','SQL','V9__mitre_saved_user_authn_changes.sql',302744444,'iam','2024-03-27 17:42:55',38,1),(11,'10','fix internal authz scopes','SQL','V10__fix_internal_authz_scopes.sql',-686432566,'iam','2024-03-27 17:42:55',2,1),(12,'10.1','Password Update','JDBC','db.migration.mysql.V10_1__Password_Update',NULL,'iam','2024-03-27 17:42:56',837,1),(13,'10.2',' CheckDuplicateEmails','JDBC','db.migration.mysql.V10_2___CheckDuplicateEmails',NULL,'iam','2024-03-27 17:42:56',7,1),(14,'11','fix base scim and reg scopes','SQL','V11__fix_base_scim_and_reg_scopes.sql',-2106952067,'iam','2024-03-27 17:42:56',1,1),(15,'11.1','no attr id saml account for admin user','SQL','V11_1__no_attr_id_saml_account_for_admin_user.sql',-448912898,'iam','2024-03-27 17:42:56',1,1),(16,'12','iam group nested groups','SQL','V12__iam_group_nested_groups.sql',-2140651111,'iam','2024-03-27 17:42:56',181,1),(17,'13','add attribute id to saml id table','SQL','V13__add_attribute_id_to_saml_id_table.sql',681840221,'iam','2024-03-27 17:42:57',292,1),(18,'14',' x509 certs table changes','SQL','V14___x509_certs_table_changes.sql',-310236366,'iam','2024-03-27 17:42:57',396,1),(19,'15','alter iam group','SQL','V15__alter_iam_group.sql',588116562,'iam','2024-03-27 17:42:57',96,1),(20,'16','add provisioned column to iam account','SQL','V16__add_provisioned_column_to_iam_account.sql',448586794,'iam','2024-03-27 17:42:57',395,1),(21,'17','add scope policy tables','SQL','V17__add_scope_policy_tables.sql',460278210,'iam','2024-03-27 17:42:58',416,1),(22,'18','mitre 1 3 x database changes','SQL','V18__mitre_1_3_x_database_changes.sql',449297336,'iam','2024-03-27 17:42:59',662,1),(23,'19','aup tables','SQL','V19__aup_tables.sql',567653912,'iam','2024-03-27 17:42:59',503,1),(24,'20','group membership request','SQL','V20__group_membership_request.sql',-924931434,'iam','2024-03-27 17:42:59',235,1),(25,'21',' device code default expiration','SQL','V21___device_code_default_expiration.sql',965164897,'iam','2024-03-27 17:42:59',1,1),(26,'22','add indexes for search queries','SQL','V22__add_indexes_for_search_queries.sql',-748445998,'iam','2024-03-27 17:43:00',212,1),(27,'23',' CreateGroupManagerAuthorities','JDBC','db.migration.mysql.V23___CreateGroupManagerAuthorities',NULL,'iam','2024-03-27 17:43:00',1,1),(28,'24',' set timestamp default','SQL','V24___set_timestamp_default.sql',234306337,'iam','2024-03-27 17:43:00',6,1),(29,'30',' default group support','SQL','V30___default_group_support.sql',-636476445,'iam','2024-03-27 17:43:01',1004,1),(30,'31',' address table fixes','SQL','V31___address_table_fixes.sql',323916075,'iam','2024-03-27 17:43:01',173,1),(31,'32',' proxy storage','SQL','V32___proxy_storage.sql',851904690,'iam','2024-03-27 17:43:01',259,1),(32,'33',' proxy api scopes','SQL','V33___proxy_api_scopes.sql',-394160567,'iam','2024-03-27 17:43:01',2,1),(33,'34',' req request labels','SQL','V34___req_request_labels.sql',-1247430935,'iam','2024-03-27 17:43:01',201,1),(34,'34.2',' RemoveOrphanTokens','JDBC','db.migration.mysql.V34_2___RemoveOrphanTokens',NULL,'iam','2024-03-27 17:43:01',5,1),(35,'35',' scope match policies','SQL','V35___scope_match_policies.sql',773238492,'iam','2024-03-27 17:43:02',257,1),(36,'40',' aup updates','SQL','V40___aup_updates.sql',-1574961084,'iam','2024-03-27 17:43:02',131,1),(37,'50',' token exchange policy','SQL','V50___token_exchange_policy.sql',708363568,'iam','2024-03-27 17:43:02',176,1),(38,'51',' fix scope match policies','SQL','V51___fix_scope_match_policies.sql',1742199118,'iam','2024-03-27 17:43:02',2,1),(39,'52','add eduperson system scopes','SQL','V52__add_eduperson_system_scopes.sql',-669332083,'iam','2024-03-27 17:43:02',1,1),(40,'53',' add end time to iam acccount','SQL','V53___add_end_time_to_iam_acccount.sql',795128555,'iam','2024-03-27 17:43:02',230,1),(41,'60',' fix certificate subject length','SQL','V60___fix_certificate_subject_length.sql',437826198,'iam','2024-03-27 17:43:02',222,1),(42,'61',' add dates for group membership','SQL','V61___add_dates_for_group_membership.sql',-1216009527,'iam','2024-03-27 17:43:03',138,1),(43,'62',' add dates to ssh keys table','SQL','V62___add_dates_to_ssh_keys_table.sql',345904759,'iam','2024-03-27 17:43:03',146,1),(44,'70',' totp mfa','SQL','V70___totp_mfa.sql',358166160,'iam','2024-03-27 17:43:03',268,1),(45,'71',' add pre authenticated authority','SQL','V71___add_pre_authenticated_authority.sql',234328656,'iam','2024-03-27 17:43:03',2,1),(46,'80',' account clients','SQL','V80___account_clients.sql',-2130998179,'iam','2024-03-27 17:43:03',269,1),(47,'81','add eduperson assurance scope','SQL','V81__add_eduperson_assurance_scope.sql',1118450873,'iam','2024-03-27 17:43:03',2,1),(48,'81.2',' RemoveOrphanTokens','JDBC','db.migration.mysql.V81_2___RemoveOrphanTokens',NULL,'iam','2024-03-27 17:43:03',1,1),(49,'90','fix eduperson entitlement scope','SQL','V90__fix_eduperson_entitlement_scope.sql',-543114581,'iam','2024-03-27 17:43:03',0,1),(50,'91','update client name','SQL','V91__update_client_name.sql',-113175668,'iam','2024-03-27 17:43:03',0,1),(51,'92','add iam api scopes','SQL','V92__add_iam_api_scopes.sql',1959900565,'iam','2024-03-27 17:43:03',1,1),(52,'93','add at hash','SQL','V93__add_at_hash.sql',-881840384,'iam','2024-03-27 17:43:04',244,1),(53,'94','alter x509 table','SQL','V94__alter_x509_table.sql',1887482211,'iam','2024-03-27 17:43:04',219,1),(54,'95','remove client response type','SQL','V95__remove_client_response_type.sql',-658578857,'iam','2024-03-27 17:43:04',3,1),(55,'96','add foreign keys','SQL','V96__add_foreign_keys.sql',-969456599,'iam','2024-03-27 17:43:07',2895,1),(56,'97','delete unique subject dn','SQL','V97__delete_unique_subject_dn.sql',1120054453,'iam','2024-03-27 17:43:07',51,1),(57,'98','fix rat hash value','SQL','V98__fix_rat_hash_value.sql',228664475,'iam','2024-03-27 17:43:07',0,1),(58,'99','clear client logo URI','SQL','V99__clear_client_logo_URI.sql',906005557,'iam','2024-03-27 17:43:07',0,1),(59,'100000',' test data','SQL','V100000___test_data.sql',-370556209,'iam','2024-03-27 17:43:07',108,1),(60,'100000.1',' CreateGroupManagerAuthorities','JDBC','db.migration.test.V100000_1___CreateGroupManagerAuthorities',NULL,'iam','2024-03-27 17:43:07',4,1),(61,'100000.3',' RemoveOrphanTokens','JDBC','db.migration.test.V100000_3___RemoveOrphanTokens',NULL,'iam','2024-03-27 17:43:07',2,1),(62,'100000.4',' remove data after orphan tokens test','SQL','V100000_4___remove_data_after_orphan_tokens_test.sql',-1771356196,'iam','2024-03-27 17:43:07',2,1),(63,'100000.6','add eduperson scopes to client','SQL','V100000_6__add_eduperson_scopes_to_client.sql',-1405718810,'iam','2024-03-27 17:43:07',0,1),(64,'100000.7','fix eduperson entitlement scope','SQL','V100000_7__fix_eduperson_entitlement_scope.sql',-880050935,'iam','2024-03-27 17:43:07',0,1); +/*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `system_scope` +-- + +DROP TABLE IF EXISTS `system_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `system_scope` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `scope` varchar(256) NOT NULL, + `description` varchar(4096) DEFAULT NULL, + `icon` varchar(256) DEFAULT NULL, + `restricted` tinyint(1) NOT NULL DEFAULT '0', + `default_scope` tinyint(1) NOT NULL DEFAULT '0', + `structured` tinyint(1) NOT NULL DEFAULT '0', + `structured_param_description` varchar(256) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `scope` (`scope`) +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `system_scope` +-- + +LOCK TABLES `system_scope` WRITE; +/*!40000 ALTER TABLE `system_scope` DISABLE KEYS */; +INSERT INTO `system_scope` VALUES (1,'openid','log in using your identity','user',0,1,0,NULL),(2,'profile','basic profile information','list-alt',0,1,0,NULL),(3,'email','email address','envelope',0,1,0,NULL),(4,'address','physical address','home',0,1,0,NULL),(5,'phone','telephone number','bell',0,1,0,NULL),(6,'offline_access','offline access','time',0,0,0,NULL),(7,'scim:read','read access to SCIM user and groups',NULL,1,0,1,'read access to IAM SCIM APIs'),(8,'scim:write','write access to SCIM user and groups',NULL,1,0,1,'write access to IAM SCIM APIs'),(9,'registration:read','Grants read access to registration requests',NULL,1,0,1,'read access to IAM registration APIs'),(10,'registration:write','Grants write access to registration requests',NULL,1,0,1,'write access to IAM registration APIs'),(11,'scim','Authorizes access to IAM SCIM APIs',NULL,1,0,1,NULL),(12,'registration','Authorizes access to IAM registration APIs',NULL,1,0,1,NULL),(13,'proxy:generate','Authorizes access to IAM Proxy APIs',NULL,1,0,1,NULL),(16,'eduperson_scoped_affiliation','Access to EduPerson scoped affiliation information',NULL,0,0,0,NULL),(17,'eduperson_entitlement','Access to EduPerson entitlements information',NULL,0,0,0,NULL),(18,'ssh-keys','Authorizes access to SSH keys linked to IAM accounts via the IAM userinfo endpoint',NULL,1,0,1,NULL),(19,'eduperson_assurance','Access to EduPerson assurance information',NULL,0,0,0,NULL),(20,'entitlements','Access to entitlements information',NULL,0,0,0,NULL),(21,'iam:admin.read','Read access to IAM APIs',NULL,1,0,0,NULL),(22,'iam:admin.write','Write access to IAM APIs',NULL,1,0,0,NULL); +/*!40000 ALTER TABLE `system_scope` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `token_scope` +-- + +DROP TABLE IF EXISTS `token_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `token_scope` ( + `owner_id` bigint(20) NOT NULL, + `scope` varchar(2048) NOT NULL, + KEY `ts_oi_idx` (`owner_id`), + CONSTRAINT `FK_token_scope_owner_id` FOREIGN KEY (`owner_id`) REFERENCES `access_token` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `token_scope` +-- + +LOCK TABLES `token_scope` WRITE; +/*!40000 ALTER TABLE `token_scope` DISABLE KEYS */; +/*!40000 ALTER TABLE `token_scope` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `user_info` +-- + +DROP TABLE IF EXISTS `user_info`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `user_info` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `sub` varchar(256) DEFAULT NULL, + `preferred_username` varchar(256) DEFAULT NULL, + `name` varchar(256) DEFAULT NULL, + `given_name` varchar(256) DEFAULT NULL, + `family_name` varchar(256) DEFAULT NULL, + `middle_name` varchar(256) DEFAULT NULL, + `nickname` varchar(256) DEFAULT NULL, + `profile` varchar(256) DEFAULT NULL, + `picture` varchar(256) DEFAULT NULL, + `website` varchar(256) DEFAULT NULL, + `email` varchar(256) DEFAULT NULL, + `email_verified` tinyint(1) DEFAULT NULL, + `gender` varchar(256) DEFAULT NULL, + `zone_info` varchar(256) DEFAULT NULL, + `locale` varchar(256) DEFAULT NULL, + `phone_number` varchar(256) DEFAULT NULL, + `phone_number_verified` tinyint(1) DEFAULT NULL, + `address_id` varchar(256) DEFAULT NULL, + `updated_time` varchar(256) DEFAULT NULL, + `birthdate` varchar(256) DEFAULT NULL, + `src` varchar(4096) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user_info` +-- + +LOCK TABLES `user_info` WRITE; +/*!40000 ALTER TABLE `user_info` DISABLE KEYS */; +/*!40000 ALTER TABLE `user_info` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `whitelisted_site` +-- + +DROP TABLE IF EXISTS `whitelisted_site`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `whitelisted_site` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `creator_user_id` varchar(256) DEFAULT NULL, + `client_id` varchar(256) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `whitelisted_site` +-- + +LOCK TABLES `whitelisted_site` WRITE; +/*!40000 ALTER TABLE `whitelisted_site` DISABLE KEYS */; +/*!40000 ALTER TABLE `whitelisted_site` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `whitelisted_site_scope` +-- + +DROP TABLE IF EXISTS `whitelisted_site_scope`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `whitelisted_site_scope` ( + `owner_id` bigint(20) DEFAULT NULL, + `scope` varchar(256) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `whitelisted_site_scope` +-- + +LOCK TABLES `whitelisted_site_scope` WRITE; +/*!40000 ALTER TABLE `whitelisted_site_scope` DISABLE KEYS */; +/*!40000 ALTER TABLE `whitelisted_site_scope` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2024-03-27 18:50:31 diff --git a/compose/voms-replica/assets/db-primary/replica-source.sql b/compose/voms-replica/assets/db-primary/replica-source.sql new file mode 100644 index 000000000..2bd114969 --- /dev/null +++ b/compose/voms-replica/assets/db-primary/replica-source.sql @@ -0,0 +1,2 @@ +CREATE USER 'replicator'@'%' IDENTIFIED BY 'pwd' REQUIRE SSL; +GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; \ No newline at end of file diff --git a/compose/voms-replica/assets/db-remote/replicate.sql b/compose/voms-replica/assets/db-remote/replicate.sql new file mode 100644 index 000000000..8154b5788 --- /dev/null +++ b/compose/voms-replica/assets/db-remote/replicate.sql @@ -0,0 +1,9 @@ +STOP REPLICA; +CHANGE REPLICATION SOURCE TO + SOURCE_HOST='db-replica.test.example', + SOURCE_USER='replicator', + SOURCE_PASSWORD='pwd', + SOURCE_SSL=1, + SOURCE_SSL_CA = '/etc/grid-security/certificates/igi-test-ca.pem', + SOURCE_SSL_VERIFY_SERVER_CERT=1; +START REPLICA; \ No newline at end of file diff --git a/compose/voms-replica/assets/db-replica/replica-source.sql b/compose/voms-replica/assets/db-replica/replica-source.sql new file mode 100644 index 000000000..2bd114969 --- /dev/null +++ b/compose/voms-replica/assets/db-replica/replica-source.sql @@ -0,0 +1,2 @@ +CREATE USER 'replicator'@'%' IDENTIFIED BY 'pwd' REQUIRE SSL; +GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; \ No newline at end of file diff --git a/compose/voms-replica/assets/db-replica/replicate.sql b/compose/voms-replica/assets/db-replica/replicate.sql new file mode 100644 index 000000000..ac312cdf8 --- /dev/null +++ b/compose/voms-replica/assets/db-replica/replicate.sql @@ -0,0 +1,9 @@ +STOP REPLICA; +CHANGE REPLICATION SOURCE TO + SOURCE_HOST='db-primary.test.example', + SOURCE_USER='replicator', + SOURCE_PASSWORD='pwd', + SOURCE_SSL=1, + SOURCE_SSL_CA = '/etc/grid-security/certificates/igi-test-ca.pem', + SOURCE_SSL_VERIFY_SERVER_CERT=1; +START REPLICA; \ No newline at end of file diff --git a/compose/voms-replica/assets/mysql-conf/primary.cnf b/compose/voms-replica/assets/mysql-conf/primary.cnf new file mode 100644 index 000000000..a4fd1991c --- /dev/null +++ b/compose/voms-replica/assets/mysql-conf/primary.cnf @@ -0,0 +1,11 @@ +[mysqld] +server-id = 1 +log_bin = mysql-bin +binlog_do_db = iam + +general_log = 1 +general_log_file = /var/log/mysql/primary.log + +ssl_ca=/etc/grid-security/certificates/igi-test-ca.pem +ssl_cert=/certs/voms.test.example.cert.pem +ssl_key=/certs/voms.test.example.key.pem \ No newline at end of file diff --git a/compose/voms-replica/assets/mysql-conf/remote.cnf b/compose/voms-replica/assets/mysql-conf/remote.cnf new file mode 100644 index 000000000..c3c6865ed --- /dev/null +++ b/compose/voms-replica/assets/mysql-conf/remote.cnf @@ -0,0 +1,8 @@ +[mysqld] +server-id = 3 +log_bin = mysql-bin +read_only = 1 +relay_log = f7467c4a9aac-relay-bin + +general_log = 1 +general_log_file = /var/log/mysql/remote.log \ No newline at end of file diff --git a/compose/voms-replica/assets/mysql-conf/replica.cnf b/compose/voms-replica/assets/mysql-conf/replica.cnf new file mode 100644 index 000000000..4583d3dd6 --- /dev/null +++ b/compose/voms-replica/assets/mysql-conf/replica.cnf @@ -0,0 +1,31 @@ +[mysqld] +server-id = 2 +log_bin = mysql-bin +binlog_do_db = iam +read_only = 1 +relay_log = 7309661fdc26-relay-bin + +general_log = 1 +general_log_file = /var/log/mysql/replica.log + +replicate-do-table=iam.iam_account +replicate-do-table=iam.iam_account_attrs +replicate-do-table=iam.iam_account_authority +replicate-do-table=iam.iam_account_group +replicate-do-table=iam.iam_address +replicate-do-table=iam.iam_authority +replicate-do-table=iam.iam_aup +replicate-do-table=iam.iam_aup_signature +replicate-do-table=iam.iam_group +replicate-do-table=iam.iam_group_labels +replicate-do-table=iam.iam_oidc_id +replicate-do-table=iam.iam_reg_request +replicate-do-table=iam.iam_saml_id +replicate-do-table=iam.iam_ssh_key +replicate-do-table=iam.iam_user_info +replicate-do-table=iam.iam_x509_cert +replicate-do-table=iam.iam_x509_proxy + +ssl_ca=/etc/grid-security/certificates/igi-test-ca.pem +ssl_cert=/certs/voms.test.example.cert.pem +ssl_key=/certs/voms.test.example.key.pem \ No newline at end of file diff --git a/compose/voms-replica/assets/nginx/conf.d/nginx.conf b/compose/voms-replica/assets/nginx/conf.d/nginx.conf new file mode 100644 index 000000000..7786f3794 --- /dev/null +++ b/compose/voms-replica/assets/nginx/conf.d/nginx.conf @@ -0,0 +1,33 @@ + +error_log /var/log/nginx/error.log debug; + +load_module modules/ngx_http_voms_module.so; + +events { + worker_connections 1024; +} + +http { + + include mime.types; + default_type application/octet-stream; + + resolver 127.0.0.11 ipv6=off; + + log_format storm '$time_iso8601 [$request_id] $remote_addr - $remote_user "$request" <$upstream_response_time> ' + '$ssl_protocol/$ssl_cipher ' + '"$ssl_client_s_dn" ' + '[$voms_fqans] ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log storm; + + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + + include /etc/nginx/conf.d/*.conf; + +} \ No newline at end of file diff --git a/compose/voms-replica/assets/nginx/conf.d/voms-primary.test.example.conf b/compose/voms-replica/assets/nginx/conf.d/voms-primary.test.example.conf new file mode 100644 index 000000000..bd58cae6a --- /dev/null +++ b/compose/voms-replica/assets/nginx/conf.d/voms-primary.test.example.conf @@ -0,0 +1,69 @@ +server { + + listen 443 ssl; + server_name voms-primary.test.example; + + ssl_protocols TLSv1.2; + + ssl_certificate /certs/voms.test.example.cert.pem; + ssl_certificate_key /certs/voms.test.example.key.pem; + ssl_client_certificate /igtf/ca-trust/extracted/pem/tls-ca-bundle-all.pem; + + ssl_verify_client on; + ssl_verify_depth 100; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + + location /generate-ac { + default_type application/xml; + + proxy_pass http://vomsaa-primary.test.example:8080; + + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header Host $http_host; + + # Simple tracing via request_id + proxy_set_header X-Request-Id $request_id; + + # TLS headers + proxy_set_header X-SSL-Client-Cert $ssl_client_cert; + proxy_set_header X-SSL-Client-I-Dn $ssl_client_i_dn; + proxy_set_header X-SSL-Client-S-Dn $ssl_client_s_dn; + proxy_set_header X-SSL-Client-Serial $ssl_client_serial; + proxy_set_header X-SSL-Client-V-Start $ssl_client_v_start; + proxy_set_header X-SSL-Client-V-End $ssl_client_v_end; + proxy_set_header X-SSL-Client-Verify $ssl_client_verify; + proxy_set_header X-SSL-Protocol $ssl_protocol; + proxy_set_header X-SSL-Server-Name $ssl_server_name; + + # VOMS headers + proxy_set_header x-ssl_client_ee_cert $ssl_client_ee_cert; + proxy_set_header x-ssl_client_ee_s_dn $ssl_client_ee_s_dn; + proxy_set_header x-ssl_client_ee_i_dn $ssl_client_ee_i_dn; + proxy_set_header x-voms_fqans $voms_fqans; + proxy_set_header x-voms_user $voms_user; + proxy_set_header x-voms_user_ca $voms_user_ca; + proxy_set_header x-voms_vo $voms_vo; + proxy_set_header x-voms_not_before $voms_not_before; + proxy_set_header x-voms_not_after $voms_not_after; + proxy_set_header x-voms_generic_attributes $voms_generic_attributes; + proxy_set_header x-voms_serial $voms_serial; + + } + + location /actuator { + + proxy_pass http://vomsaa-primary.test.example:8080; + + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header Host $http_host; + + # Simple tracing via request_id + proxy_set_header X-Request-Id $request_id; + + } +} diff --git a/compose/voms-replica/assets/nginx/conf.d/voms-remote.test.example.conf b/compose/voms-replica/assets/nginx/conf.d/voms-remote.test.example.conf new file mode 100644 index 000000000..c105db40d --- /dev/null +++ b/compose/voms-replica/assets/nginx/conf.d/voms-remote.test.example.conf @@ -0,0 +1,69 @@ +server { + + listen 443 ssl; + server_name voms-remote.test.example; + + ssl_protocols TLSv1.2; + + ssl_certificate /certs/voms.test.example.cert.pem; + ssl_certificate_key /certs/voms.test.example.key.pem; + ssl_client_certificate /igtf/ca-trust/extracted/pem/tls-ca-bundle-all.pem; + + ssl_verify_client on; + ssl_verify_depth 100; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + + location /generate-ac { + default_type application/xml; + + proxy_pass http://vomsaa-remote.test.example:8080; + + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header Host $http_host; + + # Simple tracing via request_id + proxy_set_header X-Request-Id $request_id; + + # TLS headers + proxy_set_header X-SSL-Client-Cert $ssl_client_cert; + proxy_set_header X-SSL-Client-I-Dn $ssl_client_i_dn; + proxy_set_header X-SSL-Client-S-Dn $ssl_client_s_dn; + proxy_set_header X-SSL-Client-Serial $ssl_client_serial; + proxy_set_header X-SSL-Client-V-Start $ssl_client_v_start; + proxy_set_header X-SSL-Client-V-End $ssl_client_v_end; + proxy_set_header X-SSL-Client-Verify $ssl_client_verify; + proxy_set_header X-SSL-Protocol $ssl_protocol; + proxy_set_header X-SSL-Server-Name $ssl_server_name; + + # VOMS headers + proxy_set_header x-ssl_client_ee_cert $ssl_client_ee_cert; + proxy_set_header x-ssl_client_ee_s_dn $ssl_client_ee_s_dn; + proxy_set_header x-ssl_client_ee_i_dn $ssl_client_ee_i_dn; + proxy_set_header x-voms_fqans $voms_fqans; + proxy_set_header x-voms_user $voms_user; + proxy_set_header x-voms_user_ca $voms_user_ca; + proxy_set_header x-voms_vo $voms_vo; + proxy_set_header x-voms_not_before $voms_not_before; + proxy_set_header x-voms_not_after $voms_not_after; + proxy_set_header x-voms_generic_attributes $voms_generic_attributes; + proxy_set_header x-voms_serial $voms_serial; + + } + + location /actuator { + + proxy_pass http://vomsaa-remote.test.example:8080; + + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header Host $http_host; + + # Simple tracing via request_id + proxy_set_header X-Request-Id $request_id; + + } +} diff --git a/compose/voms-replica/assets/nginx/conf.d/voms-replica.test.example.conf b/compose/voms-replica/assets/nginx/conf.d/voms-replica.test.example.conf new file mode 100644 index 000000000..332f332ea --- /dev/null +++ b/compose/voms-replica/assets/nginx/conf.d/voms-replica.test.example.conf @@ -0,0 +1,69 @@ +server { + + listen 443 ssl; + server_name voms-replica.test.example; + + ssl_protocols TLSv1.2; + + ssl_certificate /certs/voms.test.example.cert.pem; + ssl_certificate_key /certs/voms.test.example.key.pem; + ssl_client_certificate /igtf/ca-trust/extracted/pem/tls-ca-bundle-all.pem; + + ssl_verify_client on; + ssl_verify_depth 100; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + + location /generate-ac { + default_type application/xml; + + proxy_pass http://vomsaa-replica.test.example:8080; + + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header Host $http_host; + + # Simple tracing via request_id + proxy_set_header X-Request-Id $request_id; + + # TLS headers + proxy_set_header X-SSL-Client-Cert $ssl_client_cert; + proxy_set_header X-SSL-Client-I-Dn $ssl_client_i_dn; + proxy_set_header X-SSL-Client-S-Dn $ssl_client_s_dn; + proxy_set_header X-SSL-Client-Serial $ssl_client_serial; + proxy_set_header X-SSL-Client-V-Start $ssl_client_v_start; + proxy_set_header X-SSL-Client-V-End $ssl_client_v_end; + proxy_set_header X-SSL-Client-Verify $ssl_client_verify; + proxy_set_header X-SSL-Protocol $ssl_protocol; + proxy_set_header X-SSL-Server-Name $ssl_server_name; + + # VOMS headers + proxy_set_header x-ssl_client_ee_cert $ssl_client_ee_cert; + proxy_set_header x-ssl_client_ee_s_dn $ssl_client_ee_s_dn; + proxy_set_header x-ssl_client_ee_i_dn $ssl_client_ee_i_dn; + proxy_set_header x-voms_fqans $voms_fqans; + proxy_set_header x-voms_user $voms_user; + proxy_set_header x-voms_user_ca $voms_user_ca; + proxy_set_header x-voms_vo $voms_vo; + proxy_set_header x-voms_not_before $voms_not_before; + proxy_set_header x-voms_not_after $voms_not_after; + proxy_set_header x-voms_generic_attributes $voms_generic_attributes; + proxy_set_header x-voms_serial $voms_serial; + + } + + location /actuator { + + proxy_pass http://vomsaa-replica.test.example:8080; + + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header Host $http_host; + + # Simple tracing via request_id + proxy_set_header X-Request-Id $request_id; + + } +} diff --git a/compose/voms-replica/assets/nginx/error/voms-50x-error.xml b/compose/voms-replica/assets/nginx/error/voms-50x-error.xml new file mode 100644 index 000000000..69742553a --- /dev/null +++ b/compose/voms-replica/assets/nginx/error/voms-50x-error.xml @@ -0,0 +1,7 @@ + + + + 1006 + Internal server error: the VOMS server is not really working as it should... + + diff --git a/compose/voms-replica/assets/nginx/error/voms-cert-error.xml b/compose/voms-replica/assets/nginx/error/voms-cert-error.xml new file mode 100644 index 000000000..5df4532a8 --- /dev/null +++ b/compose/voms-replica/assets/nginx/error/voms-cert-error.xml @@ -0,0 +1,7 @@ + + + + 1005 + SSL certificate error: invalid or missing client certificate. + + diff --git a/compose/voms-replica/assets/vomsaa/application-mysql-test.yml b/compose/voms-replica/assets/vomsaa/application-mysql-test.yml new file mode 100644 index 000000000..d1e4931df --- /dev/null +++ b/compose/voms-replica/assets/vomsaa/application-mysql-test.yml @@ -0,0 +1,37 @@ +server: + address: 0.0.0.0 + port: 8080 + forward-headers-strategy: native + +spring: + main: + banner-mode: "off" + + jpa: + open-in-view: false + + datasource: + url: jdbc:mysql://${IAM_DB_HOST:db}:${IAM_DB_PORT:3306}/${IAM_DB_NAME:iam}?serverTimezone=UTC + username: ${IAM_DB_USERNAME:iam} + password: ${IAM_DB_PASSWORD:pwd} + max-active: ${IAM_DB_MAX_ACTIVE:100} + max-idle: ${IAM_DB_MAX_IDLE:5} + validation-query: ${IAM_DB_VALIDATION_QUERY:SELECT 1} + time-between-eviction-runs-millis: ${IAM_DB_TIME_BETWEEN_EVICTION_RUNS_MILLIS:5000} + min-evictable-idle-time-millis: ${IAM_DB_MIN_EVICTABLE_IDLE_TIME_MILLIS:60000} + + flyway: + enabled: false + +voms: + tls: + certificate-path: /etc/grid-security/voms/hostcert.pem + private-key-path: /etc/grid-security/voms/hostkey.pem + trust-anchors-dir: /etc/grid-security/certificates + trust-anchors-refresh-interval-secs: 14400 + aa: + host: ${VOMS_HOST:voms.test.example} + port: ${VOMS_PORT:server.port} + vo-name: indigo-dc + optional-group-label: voms.role + use-legacy-fqan-encoding: true diff --git a/compose/voms-replica/assets/vomsdir/indigo-dc/voms-primary.test.example.lsc b/compose/voms-replica/assets/vomsdir/indigo-dc/voms-primary.test.example.lsc new file mode 100644 index 000000000..ddd3bb92e --- /dev/null +++ b/compose/voms-replica/assets/vomsdir/indigo-dc/voms-primary.test.example.lsc @@ -0,0 +1,2 @@ +/C=IT/O=IGI/CN=*.test.example +/C=IT/O=IGI/CN=Test CA diff --git a/compose/voms-replica/assets/vomsdir/indigo-dc/voms-remote.test.example.lsc b/compose/voms-replica/assets/vomsdir/indigo-dc/voms-remote.test.example.lsc new file mode 100644 index 000000000..ddd3bb92e --- /dev/null +++ b/compose/voms-replica/assets/vomsdir/indigo-dc/voms-remote.test.example.lsc @@ -0,0 +1,2 @@ +/C=IT/O=IGI/CN=*.test.example +/C=IT/O=IGI/CN=Test CA diff --git a/compose/voms-replica/assets/vomsdir/indigo-dc/voms-replica.test.example.lsc b/compose/voms-replica/assets/vomsdir/indigo-dc/voms-replica.test.example.lsc new file mode 100644 index 000000000..ddd3bb92e --- /dev/null +++ b/compose/voms-replica/assets/vomsdir/indigo-dc/voms-replica.test.example.lsc @@ -0,0 +1,2 @@ +/C=IT/O=IGI/CN=*.test.example +/C=IT/O=IGI/CN=Test CA diff --git a/compose/voms-replica/assets/vomsdir/test.vo/vgrid02.cnaf.infn.it.lsc b/compose/voms-replica/assets/vomsdir/test.vo/vgrid02.cnaf.infn.it.lsc new file mode 100644 index 000000000..11316e3d6 --- /dev/null +++ b/compose/voms-replica/assets/vomsdir/test.vo/vgrid02.cnaf.infn.it.lsc @@ -0,0 +1,2 @@ +/C=IT/O=INFN/OU=Host/L=CNAF/CN=vgrid02.cnaf.infn.it +/C=IT/O=INFN/CN=INFN Certification Authority diff --git a/compose/voms-replica/assets/vomses/indigo-dc b/compose/voms-replica/assets/vomses/indigo-dc new file mode 100644 index 000000000..bff3197ee --- /dev/null +++ b/compose/voms-replica/assets/vomses/indigo-dc @@ -0,0 +1,6 @@ +"voms-primary" "voms-primary.test.example" "443" "/C=IT/O=IGI/CN=*.test.example" "indigo-dc" +"voms-replica" "voms-replica.test.example" "443" "/C=IT/O=IGI/CN=*.test.example" "indigo-dc" +"voms-remote" "voms-remote.test.example" "443" "/C=IT/O=IGI/CN=*.test.example" "indigo-dc" +"indigo-dc" "voms-primary.test.example" "443" "/C=IT/O=IGI/CN=*.test.example" "indigo-dc" +"indigo-dc" "voms-replica.test.example" "443" "/C=IT/O=IGI/CN=*.test.example" "indigo-dc" +"indigo-dc" "voms-remote.test.example" "443" "/C=IT/O=IGI/CN=*.test.example" "indigo-dc" \ No newline at end of file diff --git a/compose/voms-replica/assets/vomses/test.vo b/compose/voms-replica/assets/vomses/test.vo new file mode 100644 index 000000000..dc8876d8d --- /dev/null +++ b/compose/voms-replica/assets/vomses/test.vo @@ -0,0 +1 @@ +"test.vo" "vgrid02.cnaf.infn.it" "15000" "/C=IT/O=INFN/OU=Host/L=CNAF/CN=vgrid02.cnaf.infn.it" "test.vo" \ No newline at end of file diff --git a/compose/voms-replica/docker-compose.yml b/compose/voms-replica/docker-compose.yml new file mode 100644 index 000000000..7dab7ee79 --- /dev/null +++ b/compose/voms-replica/docker-compose.yml @@ -0,0 +1,310 @@ +version: "3" + +volumes: + data-primary: + data-replica: + data-remote: + trustanchors: + cabundle: + +networks: + site1-lan: + name: site1-lan + site2-lan: + name: site2-lan + site-to-site-tunnel: + name: tunnel + wan: + name: wan + +services: + trust: + container_name: trust + image: ${TRUST_IMAGE}:${TRUST_IMAGE_TAG} + environment: + - FORCE_TRUST_ANCHORS_UPDATE=1 + volumes: + - trustanchors:/etc/grid-security/certificates + - cabundle:/etc/pki + + db-primary: + container_name: db-primary + image: ${DB_IMAGE}:${DB_IMAGE_TAG} + volumes: + - data-primary:/var/lib/mysql + - ./assets/db-logs:/var/log/mysql + - ./assets/db-primary:/docker-entrypoint-initdb.d + - ./assets/mysql-conf/primary.cnf:/etc/mysql/conf.d/primary.cnf + - ./assets/certs:/certs + - trustanchors:/etc/grid-security/certificates + env_file: + - env-files/db.env + ports: + - "3306:3306" + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"] + interval: 5s + timeout: 3s + retries: 10 + start_period: 0s + networks: + site1-lan: + aliases: + - db-primary.test.example + + db-replica: + container_name: db-replica + image: ${DB_IMAGE}:${DB_IMAGE_TAG} + depends_on: + db-primary: + condition: service_healthy + volumes: + - data-replica:/var/lib/mysql + - ./assets/db-logs:/var/log/mysql + - ./assets/db-replica:/docker-entrypoint-initdb.d + - ./assets/mysql-conf/replica.cnf:/etc/mysql/conf.d/replica.cnf + - ./assets/certs:/certs + - trustanchors:/etc/grid-security/certificates + env_file: + - env-files/db.env + environment: + - REPORT_HOST=db-replica.test.example + ports: + - "3307:3306" + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"] + interval: 5s + timeout: 3s + retries: 10 + start_period: 0s + networks: + site1-lan: + aliases: + - db-replica.test.example + site-to-site-tunnel: + aliases: + - db-replica.test.example + + db-remote: + container_name: db-remote + image: ${DB_IMAGE}:${DB_IMAGE_TAG} + depends_on: + db-replica: + condition: service_healthy + volumes: + - data-remote:/var/lib/mysql + - ./assets/db-logs:/var/log/mysql + - ./assets/db-remote:/docker-entrypoint-initdb.d + - ./assets/mysql-conf/remote.cnf:/etc/mysql/conf.d/remote.cnf + - ./assets/certs:/certs + - trustanchors:/etc/grid-security/certificates + env_file: + - env-files/db.env + environment: + - REPORT_HOST=db-remote.test.example + ports: + - "3308:3306" + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"] + interval: 5s + timeout: 3s + retries: 10 + start_period: 0s + networks: + site2-lan: + aliases: + - db-remote.test.example + site-to-site-tunnel: + aliases: + - db-remote.test.example + + vomsaa-primary: + container_name: vomsaa-primary + image: ${VOMS_AA_IMAGE}:${VOMS_AA_IMAGE_TAG} + env_file: + - env-files/voms.env + environment: + - IAM_DB_HOST=db-primary.test.example + - VOMS_HOST=voms-primary.test.example + - VOMS_PORT=443 + ports: + - "1044:1044" + depends_on: + db-primary: + condition: service_healthy + volumes: + - ./assets/vomsaa:/workspace/config:ro + - ./assets/certs/voms.test.example.cert.pem:/etc/grid-security/voms/hostcert.pem:ro + - ./assets/certs/voms.test.example.key.pem:/etc/grid-security/voms/hostkey.pem:ro + - trustanchors:/etc/grid-security/certificates + networks: + site1-lan: + aliases: + - vomsaa-primary.test.example + + vomsaa-replica: + container_name: vomsaa-replica + image: ${VOMS_AA_IMAGE}:${VOMS_AA_IMAGE_TAG} + env_file: + - env-files/voms.env + environment: + - IAM_DB_HOST=db-replica.test.example + - VOMS_HOST=voms-replica.test.example + - VOMS_PORT=443 + ports: + - "1045:1044" + depends_on: + db-replica: + condition: service_healthy + volumes: + - ./assets/vomsaa:/workspace/config:ro + - ./assets/certs/voms.test.example.cert.pem:/etc/grid-security/voms/hostcert.pem:ro + - ./assets/certs/voms.test.example.key.pem:/etc/grid-security/voms/hostkey.pem:ro + - trustanchors:/etc/grid-security/certificates + networks: + site1-lan: + aliases: + - vomsaa-replica.test.example + + vomsaa-remote: + container_name: vomsaa-remote + image: ${VOMS_AA_IMAGE}:${VOMS_AA_IMAGE_TAG} + env_file: + - env-files/voms.env + environment: + - IAM_DB_HOST=db-remote.test.example + - VOMS_HOST=voms-remote.test.example + - VOMS_PORT=443 + ports: + - "1046:1044" + depends_on: + db-remote: + condition: service_healthy + volumes: + - ./assets/vomsaa:/workspace/config:ro + - ./assets/certs/voms.test.example.cert.pem:/etc/grid-security/voms/hostcert.pem:ro + - ./assets/certs/voms.test.example.key.pem:/etc/grid-security/voms/hostkey.pem:ro + - trustanchors:/etc/grid-security/certificates + networks: + site2-lan: + aliases: + - vomsaa-remote.test.example + + ngx-primary: + container_name: ngx-primary + image: ${NGINX_IMAGE}:${NGINX_IMAGE_TAG} + depends_on: + vomsaa-primary: + condition: service_started + trust: + condition: service_completed_successfully + environment: + TZ: Europe/Rome + X509_VOMS_DIR: /vomsdir + ports: + - "443:443" + volumes: + - cabundle:/igtf + - trustanchors:/etc/grid-security/certificates + - ./assets/certs:/certs + - ./assets/nginx/conf.d/nginx.conf:/etc/nginx/nginx.conf:ro + - ./assets/nginx/conf.d/voms-primary.test.example.conf:/etc/nginx/conf.d/voms-primary.test.example.conf:ro + networks: + site1-lan: + wan: + aliases: + - voms-primary.test.example + + ngx-replica: + container_name: ngx-replica + image: ${NGINX_IMAGE}:${NGINX_IMAGE_TAG} + depends_on: + vomsaa-replica: + condition: service_started + trust: + condition: service_completed_successfully + environment: + TZ: Europe/Rome + X509_VOMS_DIR: /vomsdir + ports: + - "444:443" + volumes: + - cabundle:/igtf + - trustanchors:/etc/grid-security/certificates + - ./assets/certs:/certs + - ./assets/vomsdir:/vomsdir + - ./assets/nginx/conf.d/nginx.conf:/etc/nginx/nginx.conf:ro + - ./assets/nginx/conf.d/voms-replica.test.example.conf:/etc/nginx/conf.d/voms-replica.test.example.conf:ro + networks: + site1-lan: + wan: + aliases: + - voms-replica.test.example + + ngx-remote: + container_name: ngx-remote + image: ${NGINX_IMAGE}:${NGINX_IMAGE_TAG} + depends_on: + vomsaa-remote: + condition: service_started + trust: + condition: service_completed_successfully + environment: + TZ: Europe/Rome + X509_VOMS_DIR: /vomsdir + ports: + - "445:443" + volumes: + - cabundle:/igtf + - trustanchors:/etc/grid-security/certificates + - ./assets/certs:/certs + - ./assets/vomsdir:/vomsdir + - ./assets/nginx/conf.d/nginx.conf:/etc/nginx/nginx.conf:ro + - ./assets/nginx/conf.d/voms-remote.test.example.conf:/etc/nginx/conf.d/voms-remote.test.example.conf:ro + networks: + site2-lan: + wan: + aliases: + - voms-remote.test.example + + client: + container_name: client + image: ${GRID_CLIENTS_IMAGE}:${GRID_CLIENTS_IMAGE_TAG} + environment: + TZ: Europe/Rome + depends_on: + trust: + condition: service_completed_successfully + volumes: + - cabundle:/etc/pki + - trustanchors:/etc/grid-security/certificates + - ./assets/vomsdir:/etc/grid-security/vomsdir + - ./assets/vomses:/etc/vomses + entrypoint: sleep infinity + networks: + wan: + + testsuite: + image: italiangrid/voms-testsuite:latest + init: true + depends_on: + trust: + condition: service_completed_successfully + environment: + - TZ=Europe/Rome + - "ROBOT_OPTIONS=--variable vo1:indigo-dc + --variable vo1_host:voms-primary.test.example + --variable vo1_issuer:'/C=IT/O=IGI/CN=*.test.example' + --variable vo1_legacy_fqan_enabled:True + --variable vo2:test.vo --variable vo1_host:voms-dev.cloud.cnaf.infn.it + --variable vo2_issuer:'/DC=org/DC=terena/DC=tcs/C=IT/ST=Roma/O=Istituto Nazionale di Fisica Nucleare/CN=voms-dev.cloud.cnaf.infn.it' + --variable vo2_legacy_fqan_enabled:True" + volumes: + - trustanchors:/etc/grid-security/certificates + - ./assets/vomses:/etc/vomses + - ./assets/vomsdir:/etc/grid-security/vomsdir + - ./voms-testsuite:/home/test/voms-testsuite + working_dir: /home/test/voms-testsuite + command: ["sleep", "infinity"] + networks: + wan: \ No newline at end of file diff --git a/compose/voms-replica/env-files/db.env b/compose/voms-replica/env-files/db.env new file mode 100644 index 000000000..9c8793b8d --- /dev/null +++ b/compose/voms-replica/env-files/db.env @@ -0,0 +1,6 @@ +TZ=Europe/Rome +MYSQL_ROOT_PASSWORD=pwd +MYSQL_USER=iam +MYSQL_PASSWORD=pwd +MYSQL_DATABASE=iam +IAM_DB_HOST=db \ No newline at end of file diff --git a/compose/voms-replica/env-files/voms.env b/compose/voms-replica/env-files/voms.env new file mode 100644 index 000000000..0b0cc13a2 --- /dev/null +++ b/compose/voms-replica/env-files/voms.env @@ -0,0 +1,3 @@ +TZ=Europe/Rome +JAVA_DEBUG_OPTS=-Djava.security.egd=file:/dev/./urandom -agentlib:jdwp=server=y,transport=dt_socket,suspend=n,address=1044 +JAVA_OPTS=-Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=mysql-test \ No newline at end of file diff --git a/compose/voms-replica/voms-testsuite b/compose/voms-replica/voms-testsuite new file mode 160000 index 000000000..6c0055e72 --- /dev/null +++ b/compose/voms-replica/voms-testsuite @@ -0,0 +1 @@ +Subproject commit 6c0055e725dc5027179a8e7dbed1d01b132cdfd8 From 9fc54b7a01416c3ba45dee88c129fbea19ed81f9 Mon Sep 17 00:00:00 2001 From: Enrico Vianello Date: Fri, 28 Jun 2024 19:15:19 +0200 Subject: [PATCH 03/22] Fix SCIM x509 certificate tests in order to be more deterministic (#800) --- .../test/scim/user/ScimUserCreationTests.java | 65 +++++++++++++------ 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/scim/user/ScimUserCreationTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/scim/user/ScimUserCreationTests.java index dce25dabd..8a44ca106 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/scim/user/ScimUserCreationTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/scim/user/ScimUserCreationTests.java @@ -21,6 +21,8 @@ import static it.infn.mw.iam.test.scim.ScimUtils.SCIM_WRITE_SCOPE; import static it.infn.mw.iam.test.scim.ScimUtils.buildUser; import static it.infn.mw.iam.test.scim.ScimUtils.buildUserWithPassword; +import static java.lang.Boolean.FALSE; +import static java.lang.Boolean.TRUE; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; @@ -36,7 +38,9 @@ import java.util.Date; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; +import org.hamcrest.collection.IsIterableContainingInAnyOrder; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -387,19 +391,28 @@ public void testUserCreationWithMultipleX509Certificate() throws Exception { .active(true) .build(); - List userCertList = user.getIndigoUser().getCertificates(); - ScimUser createdUser = scimUtils.postUser(user); List createdUserCertList = createdUser.getIndigoUser().getCertificates(); assertNotNull(createdUserCertList); - assertThat(createdUserCertList, hasSize(equalTo(2))); - assertThat(createdUserCertList.get(0).getDisplay(), equalTo(userCertList.get(0).getDisplay())); - assertThat(createdUserCertList.get(0).getPemEncodedCertificate(), - equalTo(userCertList.get(0).getPemEncodedCertificate())); - assertThat(createdUserCertList.get(0).getPrimary(), equalTo(userCertList.get(0).getPrimary())); - assertThat(createdUserCertList.get(1).getDisplay(), equalTo(userCertList.get(1).getDisplay())); - assertThat(createdUserCertList.get(1).getPrimary(), equalTo(userCertList.get(1).getPrimary())); + assertThat(createdUserCertList.stream().map(c -> c.getDisplay()).collect(Collectors.toList()), + IsIterableContainingInAnyOrder.containsInAnyOrder("Personal1", "Personal2")); + ScimX509Certificate createdCert1 = createdUserCertList.stream() + .filter(cert -> "Personal1".equals(cert.getDisplay())) + .findFirst() + .get(); + ScimX509Certificate createdCert2 = createdUserCertList.stream() + .filter(cert -> "Personal2".equals(cert.getDisplay())) + .findFirst() + .get(); + + assertThat(createdCert1.getPrimary(), equalTo(FALSE)); + assertThat(createdCert2.getPrimary(), equalTo(TRUE)); + assertThat(createdCert1.getPemEncodedCertificate(), + equalTo(X509Utils.x509Certs.get(0).certificate)); + assertThat(createdCert2.getPemEncodedCertificate(), + equalTo(X509Utils.x509Certs.get(1).certificate)); + } @Test @@ -426,19 +439,28 @@ public void testUserCreationWithMultipleX509CertificateAndNoPrimary() throws Exc .active(true) .build(); - List userCertList = user.getIndigoUser().getCertificates(); - ScimUser createdUser = scimUtils.postUser(user); List createdUserCertList = createdUser.getIndigoUser().getCertificates(); assertNotNull(createdUserCertList); - assertThat(createdUserCertList, hasSize(equalTo(2))); - assertThat(createdUserCertList.get(0).getDisplay(), equalTo(userCertList.get(0).getDisplay())); - assertThat(createdUserCertList.get(0).getPemEncodedCertificate(), - equalTo(userCertList.get(0).getPemEncodedCertificate())); - assertThat(createdUserCertList.get(0).getPrimary(), equalTo(true)); - assertThat(createdUserCertList.get(1).getDisplay(), equalTo(userCertList.get(1).getDisplay())); - assertThat(createdUserCertList.get(1).getPrimary(), equalTo(false)); + assertThat(createdUserCertList.stream().map(c -> c.getDisplay()).collect(Collectors.toList()), + IsIterableContainingInAnyOrder.containsInAnyOrder("Personal1", "Personal2")); + ScimX509Certificate createdCert1 = createdUserCertList.stream() + .filter(cert -> "Personal1".equals(cert.getDisplay())) + .findFirst() + .get(); + ScimX509Certificate createdCert2 = createdUserCertList.stream() + .filter(cert -> "Personal2".equals(cert.getDisplay())) + .findFirst() + .get(); + + assertThat(createdCert1.getPrimary(), equalTo(TRUE)); + assertThat(createdCert2.getPrimary(), equalTo(FALSE)); + assertThat(createdCert1.getPemEncodedCertificate(), + equalTo(X509Utils.x509Certs.get(0).certificate)); + assertThat(createdCert2.getPemEncodedCertificate(), + equalTo(X509Utils.x509Certs.get(1).certificate)); + } @Test @@ -480,9 +502,10 @@ public void testUserCreationWithAupSignatureIsIgnored() throws Exception { cal.add(Calendar.HOUR_OF_DAY, 1); Date signatureTime = cal.getTime(); - ScimUser user = buildUser("user_with_aup_signature", "userwithaupsignature@email.test", "User", "Test") - .aupSignatureTime(signatureTime) - .build(); + ScimUser user = + buildUser("user_with_aup_signature", "userwithaupsignature@email.test", "User", "Test") + .aupSignatureTime(signatureTime) + .build(); ScimUser createdUser = scimUtils.postUser(user); assertThat(user.getUserName(), equalTo(createdUser.getUserName())); From 3ad0339c1b2523834fd10d75006afcd5f3ff3147 Mon Sep 17 00:00:00 2001 From: Stefano Date: Mon, 22 Jul 2024 16:35:41 +0200 Subject: [PATCH 04/22] Upgrade MitreID dependency (#808) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fe206a3ff..3390c7561 100644 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ 1.16.2 - 1.3.6.cnaf-20240604 + 1.3.6.cnaf-20240711 2.5.2.RELEASE 3.3.2 From 90217e292b7f5b018fc9c6a0a4221090c97f565c Mon Sep 17 00:00:00 2001 From: Federica Agostini Date: Mon, 22 Jul 2024 16:42:23 +0200 Subject: [PATCH 05/22] Align env variables names with missing IAM_ prefix (#807) --- iam-login-service/src/main/resources/application.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/iam-login-service/src/main/resources/application.yml b/iam-login-service/src/main/resources/application.yml index 67f4baa26..d3629c850 100644 --- a/iam-login-service/src/main/resources/application.yml +++ b/iam-login-service/src/main/resources/application.yml @@ -221,10 +221,10 @@ client-registration: allow-for: ${IAM_CLIENT_REGISTRATION_ALLOW_FOR:ANYONE} enable: ${IAM_CLIENT_REGISTRATION_ENABLE:true} client-defaults: - default-access-token-validity-seconds: ${DEFAULT_ACCESS_TOKEN_VALIDITY_SECONDS:3600} - default-device-code-validity-seconds: ${DEFAULT_DEVICE_CODE_VALIDITY_SECONDS:600} - default-id-token-validity-seconds: ${DEFAULT_ID_TOKEN_VALIDITY_SECONDS:600} - default-refresh-token-validity-seconds: ${DEFAULT_REFRESH_TOKEN_VALIDITY_SECONDS:2592000} + default-access-token-validity-seconds: ${IAM_DEFAULT_ACCESS_TOKEN_VALIDITY_SECONDS:3600} + default-device-code-validity-seconds: ${IAM_DEFAULT_DEVICE_CODE_VALIDITY_SECONDS:600} + default-id-token-validity-seconds: ${IAM_DEFAULT_ID_TOKEN_VALIDITY_SECONDS:600} + default-refresh-token-validity-seconds: ${IAM_DEFAULT_REFRESH_TOKEN_VALIDITY_SECONDS:2592000} client: track-last-used: ${IAM_CLIENT_TRACK_LAST_USED:true} From 178b87ebceb37a65123a1f5c3727fe9392ca8ac4 Mon Sep 17 00:00:00 2001 From: Roberta Miccoli <85555840+rmiccoli@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:46:34 +0200 Subject: [PATCH 06/22] Add a statistical anonymous endpoint (#790) Create a statistical anonymous endpoint returning the total number of users --- .../mw/iam/core/IamStatisticalEndpoint.java | 35 ++++++++++++ .../mw/iam/core/StatsEndpointResponse.java | 33 +++++++++++ .../core/IamStatisticalEndpointTests.java | 56 +++++++++++++++++++ 3 files changed, 124 insertions(+) create mode 100644 iam-login-service/src/main/java/it/infn/mw/iam/core/IamStatisticalEndpoint.java create mode 100644 iam-login-service/src/main/java/it/infn/mw/iam/core/StatsEndpointResponse.java create mode 100644 iam-login-service/src/test/java/it/infn/mw/iam/test/core/IamStatisticalEndpointTests.java diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/core/IamStatisticalEndpoint.java b/iam-login-service/src/main/java/it/infn/mw/iam/core/IamStatisticalEndpoint.java new file mode 100644 index 000000000..52802ce0e --- /dev/null +++ b/iam-login-service/src/main/java/it/infn/mw/iam/core/IamStatisticalEndpoint.java @@ -0,0 +1,35 @@ +/** + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package it.infn.mw.iam.core; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import it.infn.mw.iam.persistence.repository.IamAccountRepository; + +@RestController +public class IamStatisticalEndpoint { + + @Autowired + IamAccountRepository accountRepo; + + @GetMapping("/stats") + public StatsEndpointResponse getStats() { + long count = accountRepo.count(); + return new StatsEndpointResponse(count); + } +} diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/core/StatsEndpointResponse.java b/iam-login-service/src/main/java/it/infn/mw/iam/core/StatsEndpointResponse.java new file mode 100644 index 000000000..73c1317a8 --- /dev/null +++ b/iam-login-service/src/main/java/it/infn/mw/iam/core/StatsEndpointResponse.java @@ -0,0 +1,33 @@ +/** + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package it.infn.mw.iam.core; + +public class StatsEndpointResponse { + + private long numberOfUsers; + + public StatsEndpointResponse(long numberOfUsers) { + this.numberOfUsers = numberOfUsers; + } + + public long getNumberOfUsers() { + return numberOfUsers; + } + + public void setNumberOfUsers(long numberOfUsers) { + this.numberOfUsers = numberOfUsers; + } +} diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/core/IamStatisticalEndpointTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/core/IamStatisticalEndpointTests.java new file mode 100644 index 000000000..53fa80cb6 --- /dev/null +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/core/IamStatisticalEndpointTests.java @@ -0,0 +1,56 @@ +/** + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package it.infn.mw.iam.test.core; + +import static org.hamcrest.Matchers.equalTo; +import static org.junit.Assert.assertEquals; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import it.infn.mw.iam.core.StatsEndpointResponse; +import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest; + +@RunWith(SpringRunner.class) +@IamMockMvcIntegrationTest +public class IamStatisticalEndpointTests { + + @Autowired + protected MockMvc mvc; + + @Test + public void anonymousisAcceptedAtStatEndpoint() throws Exception { + mvc.perform(get("/stats")) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.numberOfUsers", equalTo(255))); + } + + @Test + public void testSetNumberOfUsers() { + StatsEndpointResponse userCount = new StatsEndpointResponse(0); + userCount.setNumberOfUsers(255); + assertEquals(255, userCount.getNumberOfUsers()); + } + +} From 1b5ab8f1efd9056d24de4a342df7f7ae42af55e6 Mon Sep 17 00:00:00 2001 From: Enrico Vianello Date: Mon, 22 Jul 2024 16:49:37 +0200 Subject: [PATCH 07/22] Fix client track-last-used setting location in .yaml (#795) Add default value of trackLastUsed in IamProperties --------- Co-authored-by: Davide Marcato --- .../src/main/java/it/infn/mw/iam/config/IamProperties.java | 2 +- iam-login-service/src/main/resources/application.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java b/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java index 95edad4b1..239e33951 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java @@ -548,7 +548,7 @@ public void setLocation(String location) { } public static class ClientProperties { - private boolean trackLastUsed; + private boolean trackLastUsed = true; public boolean isTrackLastUsed() { return trackLastUsed; diff --git a/iam-login-service/src/main/resources/application.yml b/iam-login-service/src/main/resources/application.yml index d3629c850..63aa87450 100644 --- a/iam-login-service/src/main/resources/application.yml +++ b/iam-login-service/src/main/resources/application.yml @@ -188,6 +188,9 @@ iam: section-to-be-displayed-first: ${IAM_LOGIN_PAGE_LAYOUT_SECTION_TO_DISPLAY_FIRST:LOGIN_FORM} external-authn-order: ${IAM_LOGIN_EXTERNAL_AUTHN_ORDER:x509,oidc,saml} + client: + track-last-used: ${IAM_CLIENT_TRACK_LAST_USED:true} + redis-cache: enabled: ${IAM_REDIS_CACHE_ENABLED:false} @@ -226,9 +229,6 @@ client-registration: default-id-token-validity-seconds: ${IAM_DEFAULT_ID_TOKEN_VALIDITY_SECONDS:600} default-refresh-token-validity-seconds: ${IAM_DEFAULT_REFRESH_TOKEN_VALIDITY_SECONDS:2592000} -client: - track-last-used: ${IAM_CLIENT_TRACK_LAST_USED:true} - management: health: redis: From 44ecd1a1df500d7079314f9eaa862ecd64f706a9 Mon Sep 17 00:00:00 2001 From: Enrico Vianello Date: Mon, 22 Jul 2024 16:53:45 +0200 Subject: [PATCH 08/22] Add admin owned clients API endpoint tests (#798) --- .../client/AccountClientEndpointTests.java | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/client/AccountClientEndpointTests.java diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/client/AccountClientEndpointTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/client/AccountClientEndpointTests.java new file mode 100644 index 000000000..e8da780e0 --- /dev/null +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/client/AccountClientEndpointTests.java @@ -0,0 +1,152 @@ +/** + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package it.infn.mw.iam.test.api.account.client; + +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.util.Date; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mitre.oauth2.model.ClientDetailsEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import it.infn.mw.iam.persistence.model.IamAccount; +import it.infn.mw.iam.persistence.model.IamAccountClient; +import it.infn.mw.iam.persistence.repository.IamAccountRepository; +import it.infn.mw.iam.persistence.repository.client.IamAccountClientRepository; +import it.infn.mw.iam.persistence.repository.client.IamClientRepository; +import it.infn.mw.iam.test.util.WithMockOAuthUser; +import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest; +import it.infn.mw.iam.test.util.oauth.MockOAuth2Filter; + +@RunWith(SpringRunner.class) +@IamMockMvcIntegrationTest +public class AccountClientEndpointTests { + + @Autowired + private IamAccountRepository accountRepo; + + @Autowired + private IamAccountClientRepository accountClientRepo; + + @Autowired + private IamClientRepository clientRepo; + + @Autowired + private MockMvc mvc; + + @Autowired + private MockOAuth2Filter mockOAuth2Filter; + + @Before + public void setup() { + mockOAuth2Filter.cleanupSecurityContext(); + } + + @After + public void cleanupOAuthUser() { + mockOAuth2Filter.cleanupSecurityContext(); + } + + private ClientDetailsEntity buildNewClient(String clientId) { + ClientDetailsEntity entity = new ClientDetailsEntity(); + entity.setClientId(clientId); + entity.setActive(true); + entity.setClientName(clientId); + return clientRepo.save(entity); + } + + private IamAccountClient addNewClientFor(IamAccount a, ClientDetailsEntity c) { + IamAccountClient accountClient = new IamAccountClient(); + accountClient.setAccount(a); + accountClient.setClient(c); + accountClient.setCreationTime(new Date()); + return accountClientRepo.save(accountClient); + } + + private void getMyClientsWorksForAdmins() throws Exception { + mvc.perform(get("/iam/account/me/clients")) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.Resources", is(empty()))); + + IamAccount admin = accountRepo.findByUsername("admin").orElseThrow(); + ClientDetailsEntity clientAdmin = buildNewClient("client-admin"); + IamAccountClient accountClientAdmin = addNewClientFor(admin, clientAdmin); + + mvc.perform(get("/iam/account/me/clients")) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.totalResults", is(1))) + .andExpect(jsonPath("$.Resources", not(empty()))) + .andExpect(jsonPath("$.Resources[0].client_id", is("client-admin"))); + + IamAccount test = accountRepo.findByUsername("test").orElseThrow(); + ClientDetailsEntity clientTest = buildNewClient("client-test"); + IamAccountClient accountClientTest = addNewClientFor(test, clientTest); + + mvc.perform(get("/iam/account/me/clients")) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.totalResults", is(1))) + .andExpect(jsonPath("$.Resources", not(empty()))) + .andExpect(jsonPath("$.Resources[0].client_id", is("client-admin"))); + + accountClientRepo.delete(accountClientAdmin); + accountClientRepo.delete(accountClientTest); + clientRepo.delete(clientAdmin); + clientRepo.delete(clientTest); + } + + + @Test + public void anonymousAccessToMyClientsEndpointFailsTest() throws Exception { + mvc.perform(get("/iam/account/me/clients")) + .andDo(print()) + .andExpect(status().isUnauthorized()); + } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void myClientsWorksForAdminsTest() throws Exception { + getMyClientsWorksForAdmins(); + } + + @Test + @WithMockOAuthUser(scopes = {"iam.admin:read"}, user = "admin", authorities = {"ROLE_ADMIN", "ROLE_USER"}) + public void myClientsWorksForAdminsWithTokenAndScopeAdminTest() throws Exception { + getMyClientsWorksForAdmins(); + } + + @Test + @WithMockOAuthUser(user = "admin", authorities = {"ROLE_ADMIN", "ROLE_USER"}) + public void myClientsWorksForAdminsWithTokenTest() throws Exception { + getMyClientsWorksForAdmins(); + } + +} From 976ee76c8fac716ab51ab3f2c84d37ad15fff4dc Mon Sep 17 00:00:00 2001 From: Roberta Miccoli <85555840+rmiccoli@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:05:26 +0200 Subject: [PATCH 09/22] Email client owners and contacts in case of suspension/restore (#802) Send an email to client owners and contacts when its status changes to suspended or active again. --- .../DefaultClientManagementService.java | 21 ++++++-- .../iam/notification/NotificationFactory.java | 7 +++ .../TransientNotificationFactory.java | 53 ++++++++++++++++--- .../email-templates/clientStatusChanged.ftl | 5 ++ .../client/ClientManagementServiceTests.java | 35 ++++++++---- .../infn/mw/iam/core/IamNotificationType.java | 2 +- .../db/migration/test/V100000___test_data.sql | 3 ++ 7 files changed, 105 insertions(+), 21 deletions(-) create mode 100644 iam-login-service/src/main/resources/email-templates/clientStatusChanged.ftl diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/client/management/service/DefaultClientManagementService.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/client/management/service/DefaultClientManagementService.java index 25c12c870..1055aca9c 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/api/client/management/service/DefaultClientManagementService.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/client/management/service/DefaultClientManagementService.java @@ -23,6 +23,7 @@ import java.text.ParseException; import java.time.Clock; import java.util.Date; +import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -44,6 +45,7 @@ import it.infn.mw.iam.api.client.service.ClientService; import it.infn.mw.iam.api.client.util.ClientSuppliers; import it.infn.mw.iam.api.common.ListResponseDTO; +import it.infn.mw.iam.api.common.PagingUtils; import it.infn.mw.iam.api.common.client.RegisteredClientDTO; import it.infn.mw.iam.api.scim.converter.UserConverter; import it.infn.mw.iam.api.scim.model.ScimUser; @@ -55,6 +57,7 @@ import it.infn.mw.iam.audit.events.client.ClientStatusChangedEvent; import it.infn.mw.iam.audit.events.client.ClientUpdatedEvent; import it.infn.mw.iam.core.IamTokenService; +import it.infn.mw.iam.notification.NotificationFactory; import it.infn.mw.iam.persistence.model.IamAccount; import it.infn.mw.iam.persistence.model.IamAccountClient; import it.infn.mw.iam.persistence.repository.IamAccountRepository; @@ -72,11 +75,13 @@ public class DefaultClientManagementService implements ClientManagementService { private final OIDCTokenService oidcTokenService; private final IamTokenService tokenService; private final ApplicationEventPublisher eventPublisher; + private final NotificationFactory notificationFactory; public DefaultClientManagementService(Clock clock, ClientService clientService, ClientConverter converter, ClientDefaultsService defaultsService, UserConverter userConverter, IamAccountRepository accountRepo, OIDCTokenService oidcTokenService, - IamTokenService tokenService, ApplicationEventPublisher aep) { + IamTokenService tokenService, ApplicationEventPublisher aep, + NotificationFactory notificationFactory) { this.clock = clock; this.clientService = clientService; this.converter = converter; @@ -86,6 +91,7 @@ public DefaultClientManagementService(Clock clock, ClientService clientService, this.oidcTokenService = oidcTokenService; this.tokenService = tokenService; this.eventPublisher = aep; + this.notificationFactory = notificationFactory; } @Override @@ -139,10 +145,19 @@ public void deleteClientByClientId(String clientId) { public void updateClientStatus(String clientId, boolean status, String userId) { ClientDetailsEntity client = clientService.findClientByClientId(clientId) - .orElseThrow(ClientSuppliers.clientNotFound(clientId)); + .orElseThrow(ClientSuppliers.clientNotFound(clientId)); client = clientService.updateClientStatus(client, status, userId); - String message = "Client " + (status?"enabled":"disabled"); + String message = "Client " + (status ? "enabled" : "disabled"); eventPublisher.publishEvent(new ClientStatusChangedEvent(this, client, message)); + notificationFactory.createClientStatusChangedMessageFor(client, getClientOwners(clientId)); + } + + private List getClientOwners(String clientId) { + return clientService.findClientOwners(clientId, PagingUtils.buildUnpagedPageRequest()) + .getContent() + .stream() + .map(IamAccountClient::getAccount) + .collect(Collectors.toList()); } @Validated(OnClientUpdate.class) diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/notification/NotificationFactory.java b/iam-login-service/src/main/java/it/infn/mw/iam/notification/NotificationFactory.java index 035218299..7d2536a11 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/notification/NotificationFactory.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/notification/NotificationFactory.java @@ -15,8 +15,11 @@ */ package it.infn.mw.iam.notification; +import java.util.List; import java.util.Optional; +import org.mitre.oauth2.model.ClientDetailsEntity; + import it.infn.mw.iam.persistence.model.IamAccount; import it.infn.mw.iam.persistence.model.IamEmailNotification; import it.infn.mw.iam.persistence.model.IamGroupRequest; @@ -39,4 +42,8 @@ public interface NotificationFactory { IamEmailNotification createGroupMembershipApprovedMessage(IamGroupRequest groupRequest); IamEmailNotification createGroupMembershipRejectedMessage(IamGroupRequest groupRequest); + + IamEmailNotification createClientStatusChangedMessageFor(ClientDetailsEntity client, + List accounts); + } diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java b/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java index ea0b74e66..b25dcec60 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java @@ -18,21 +18,26 @@ import static java.util.Arrays.asList; import java.io.IOException; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; -import freemarker.template.Configuration; -import freemarker.template.TemplateException; +import org.mitre.oauth2.model.ClientDetailsEntity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; +import freemarker.template.Configuration; +import freemarker.template.Template; +import freemarker.template.TemplateException; import it.infn.mw.iam.api.account.password_reset.PasswordResetController; import it.infn.mw.iam.core.IamDeliveryStatus; import it.infn.mw.iam.core.IamNotificationType; @@ -43,8 +48,6 @@ import it.infn.mw.iam.persistence.model.IamGroupRequest; import it.infn.mw.iam.persistence.model.IamNotificationReceiver; import it.infn.mw.iam.persistence.model.IamRegistrationRequest; -import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; -import freemarker.template.Template; public class TransientNotificationFactory implements NotificationFactory { @@ -67,7 +70,8 @@ public class TransientNotificationFactory implements NotificationFactory { private final Configuration freeMarkerConfiguration; @Autowired - public TransientNotificationFactory(Configuration fm, NotificationProperties np, AdminNotificationDeliveryStrategy ands, GroupManagerNotificationDeliveryStrategy gmds) { + public TransientNotificationFactory(Configuration fm, NotificationProperties np, + AdminNotificationDeliveryStrategy ands, GroupManagerNotificationDeliveryStrategy gmds) { this.freeMarkerConfiguration = fm; this.properties = np; this.adminNotificationDeliveryStrategy = ands; @@ -199,7 +203,8 @@ public IamEmailNotification createAdminHandleGroupRequestMessage(IamGroupRequest LOG.debug("Create group membership admin notification for request {}", groupRequest.getUuid()); return createMessage("adminHandleGroupRequest.ftl", model, IamNotificationType.GROUP_MEMBERSHIP, - subject, groupManagerDeliveryStrategy.resolveGroupManagersEmailAddresses(groupRequest.getGroup())); + subject, + groupManagerDeliveryStrategy.resolveGroupManagersEmailAddresses(groupRequest.getGroup())); } @Override @@ -249,6 +254,38 @@ public IamEmailNotification createGroupMembershipRejectedMessage(IamGroupRequest return notification; } + @Override + public IamEmailNotification createClientStatusChangedMessageFor(ClientDetailsEntity client, + List accounts) { + Set recipients = client.getContacts(); + + Map model = new HashMap<>(); + model.put("clientId", client.getClientId()); + model.put("clientName", client.getClientName()); + model.put("isClientActive", client.isActive()); + model.put(ORGANISATION_NAME, organisationName); + + String subject = "Changed client status"; + + for (IamAccount a : accounts) { + recipients.add(a.getUserInfo().getEmail()); + } + + List emails = new ArrayList<>(recipients); + + if (emails.isEmpty()) { + LOG.warn("No email to send notification to for client {}", client.getClientId()); + return null; + } + + IamEmailNotification notification = createMessage("clientStatusChanged.ftl", model, + IamNotificationType.CLIENT_STATUS, subject, emails); + + LOG.debug("Updated client status. Client id {}, active {}", client.getClientId(), + client.isActive()); + return notification; + } + protected IamEmailNotification createMessage(String templateName, Map model, IamNotificationType messageType, String subject, List receiverAddress) { @@ -265,8 +302,8 @@ protected IamEmailNotification createMessage(String templateName, Map IamNotificationReceiver.forAddress(message, a)) - .collect(Collectors.toList())); + .map(a -> IamNotificationReceiver.forAddress(message, a)) + .collect(Collectors.toList())); return message; } catch (IOException | TemplateException e) { diff --git a/iam-login-service/src/main/resources/email-templates/clientStatusChanged.ftl b/iam-login-service/src/main/resources/email-templates/clientStatusChanged.ftl new file mode 100644 index 000000000..995e42329 --- /dev/null +++ b/iam-login-service/src/main/resources/email-templates/clientStatusChanged.ftl @@ -0,0 +1,5 @@ +Dear user, + +this mail is to inform you that client ${clientName} with id ${clientId} has been <#if isClientActive>ACTIVATED<#else>SUSPENDED. + +The ${organisationName} registration service \ No newline at end of file diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/service/client/ClientManagementServiceTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/service/client/ClientManagementServiceTests.java index 1711e80da..b9f8df669 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/service/client/ClientManagementServiceTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/service/client/ClientManagementServiceTests.java @@ -105,7 +105,7 @@ public void testPagedClientLookup() { Sort sort = Sort.by(Direction.ASC, "clientId"); Pageable pageable = PagingUtils.buildPageRequest(10, 1, 100, sort); - + ListResponseDTO clients = managementService.retrieveAllClients(pageable); assertThat(clients.getTotalResults(), is(19L)); @@ -249,8 +249,7 @@ public void testBasicClientValidation() { } @Test - public void testDynamicallyRegisteredClientCanBeUpdated() - throws ParseException { + public void testDynamicallyRegisteredClientCanBeUpdated() throws ParseException { userAuth = Mockito.mock(UsernamePasswordAuthenticationToken.class); when(userAuth.getName()).thenReturn("test"); @@ -261,7 +260,7 @@ public void testDynamicallyRegisteredClientCanBeUpdated() request.setGrantTypes(Sets.newHashSet(AuthorizationGrantType.CLIENT_CREDENTIALS)); RegisteredClientDTO response = registrationService.registerClient(request, userAuth); - + String clientId = response.getClientId(); ClientDetailsEntity entity = clientService.findClientByClientId(clientId).orElseThrow(); assertThat(entity.isDynamicallyRegistered(), is(true)); @@ -296,8 +295,7 @@ public void testSecretRotation() throws ParseException { RegisteredClientDTO updatedClient = managementService.retrieveClientByClientId(client.getClientId()).orElseThrow(); - assertThat(updatedClient.getClientSecret(), - not(equalTo(savedClient.getClientSecret()))); + assertThat(updatedClient.getClientSecret(), not(equalTo(savedClient.getClientSecret()))); } @Test @@ -333,9 +331,8 @@ public void testClientOwnerAssignRemove() throws ParseException { RegisteredClientDTO savedClient = managementService.saveNewClient(client); assertThat(savedClient.getClientId(), is(client.getClientId())); assertThat(savedClient.getClientSecret(), notNullValue()); - - ListResponseDTO owners = - managementService.getClientOwners(savedClient.getClientId(), + + ListResponseDTO owners = managementService.getClientOwners(savedClient.getClientId(), PagingUtils.buildUnpagedPageRequest()); assertThat(owners.getTotalResults(), is(0L)); @@ -417,4 +414,24 @@ public void testClientStatusChange() { assertTrue(client.getStatusChangedOn().equals(Date.from(clock.instant()))); assertEquals("userUUID", client.getStatusChangedBy()); } + + @Test + public void testClientStatusChangeWithContacts() { + managementService.updateClientStatus("device-code-client", false, "userUUID"); + RegisteredClientDTO client = managementService.retrieveClientByClientId("device-code-client").get(); + + assertFalse(client.isActive()); + assertTrue(client.getStatusChangedOn().equals(Date.from(clock.instant()))); + assertEquals("userUUID", client.getStatusChangedBy()); + } + + @Test + public void testClientStatusChangeWithoutOwners() { + managementService.updateClientStatus("client-cred", false, "userUUID"); + RegisteredClientDTO client = managementService.retrieveClientByClientId("client-cred").get(); + + assertFalse(client.isActive()); + assertTrue(client.getStatusChangedOn().equals(Date.from(clock.instant()))); + assertEquals("userUUID", client.getStatusChangedBy()); + } } diff --git a/iam-persistence/src/main/java/it/infn/mw/iam/core/IamNotificationType.java b/iam-persistence/src/main/java/it/infn/mw/iam/core/IamNotificationType.java index 971ae61be..16ec24c16 100644 --- a/iam-persistence/src/main/java/it/infn/mw/iam/core/IamNotificationType.java +++ b/iam-persistence/src/main/java/it/infn/mw/iam/core/IamNotificationType.java @@ -16,5 +16,5 @@ package it.infn.mw.iam.core; public enum IamNotificationType { - CONFIRMATION, RESETPASSWD, ACTIVATED, REJECTED, GROUP_MEMBERSHIP + CONFIRMATION, RESETPASSWD, ACTIVATED, REJECTED, GROUP_MEMBERSHIP, CLIENT_STATUS } diff --git a/iam-persistence/src/main/resources/db/migration/test/V100000___test_data.sql b/iam-persistence/src/main/resources/db/migration/test/V100000___test_data.sql index 468928784..0d2b46151 100644 --- a/iam-persistence/src/main/resources/db/migration/test/V100000___test_data.sql +++ b/iam-persistence/src/main/resources/db/migration/test/V100000___test_data.sql @@ -186,6 +186,9 @@ INSERT INTO client_grant_type (owner_id, grant_type) VALUES (18, 'urn:ietf:params:oauth:grant-type:device_code'), (18, 'authorization_code'), (19, 'client_credentials'); + +INSERT INTO client_contact (owner_id, contact) VALUES + (12, 'test@example.com'); INSERT INTO iam_user_info(ID, GIVENNAME, FAMILYNAME, EMAIL, EMAILVERIFIED, BIRTHDATE, GENDER, NICKNAME) VALUES (2, 'Test', 'User', 'test@iam.test', true, '1950-01-01','M','test'), From 8cf34d0f63fda2ce563bc5004882ca4f285ce90c Mon Sep 17 00:00:00 2001 From: Roberta Miccoli <85555840+rmiccoli@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:10:57 +0200 Subject: [PATCH 10/22] Make AUP signature API endpoints working for client credentials (#804) Make PATCH and DELETE API endpoints working for client credentials flow and print proper messages on AUDIT log --- .../iam/api/aup/AupSignatureController.java | 50 +++++++++++---- .../events/IamAuditApplicationEvent.java | 28 ++++----- .../events/aup/AupSignatureDeletedEvent.java | 22 +++++-- .../events/aup/AupSignedOnBehalfEvent.java | 22 +++++-- .../api/aup/AupSignatureIntegrationTests.java | 63 +++++++++++++++++++ 5 files changed, 148 insertions(+), 37 deletions(-) diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/AupSignatureController.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/AupSignatureController.java index 5882335e1..d6f7ebe7b 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/AupSignatureController.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/AupSignatureController.java @@ -26,6 +26,8 @@ import org.springframework.context.ApplicationEventPublisher; import org.springframework.http.HttpStatus; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.core.Authentication; +import org.springframework.security.oauth2.provider.OAuth2Authentication; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -52,12 +54,14 @@ import it.infn.mw.iam.persistence.repository.IamAupRepository; import it.infn.mw.iam.persistence.repository.IamAupSignatureRepository; +@SuppressWarnings("deprecation") @RestController @Transactional public class AupSignatureController { private static final String ACCOUNT_NOT_FOUND_FOR_ID_MESSAGE = "Account not found for id: %s"; - private static final String ACCOUNT_NOT_FOUND_FOR_AUTHENTICATED_USER_MESSAGE = "Account not found for authenticated user"; + private static final String ACCOUNT_NOT_FOUND_FOR_AUTHENTICATED_USER_MESSAGE = + "Account not found for authenticated user"; private final AupSignatureConverter signatureConverter; private final AccountUtils accountUtils; @@ -108,7 +112,7 @@ public void signAup() throws AccountNotFoundException { public AupSignatureDTO getSignature() throws AccountNotFoundException { IamAccount account = accountUtils.getAuthenticatedUserAccount() - .orElseThrow(accountNotFoundException(ACCOUNT_NOT_FOUND_FOR_AUTHENTICATED_USER_MESSAGE)); + .orElseThrow(accountNotFoundException(ACCOUNT_NOT_FOUND_FOR_AUTHENTICATED_USER_MESSAGE)); IamAup aup = aupRepo.findDefaultAup().orElseThrow(aupNotFoundException()); IamAupSignature sig = @@ -118,7 +122,8 @@ public AupSignatureDTO getSignature() throws AccountNotFoundException { @GetMapping(value = "/iam/aup/signature/{accountId}") @PreAuthorize("#iam.hasScope('iam:admin.read') or #iam.hasAnyDashboardRole('ROLE_ADMIN', 'ROLE_GM') or #iam.isUser(#accountId)") - public AupSignatureDTO getSignatureForAccount(@PathVariable String accountId) throws AccountNotFoundException { + public AupSignatureDTO getSignatureForAccount(@PathVariable String accountId) + throws AccountNotFoundException { IamAccount account = accountUtils.getByAccountId(accountId) .orElseThrow(accountNotFoundException(format(ACCOUNT_NOT_FOUND_FOR_ID_MESSAGE, accountId))); @@ -133,10 +138,10 @@ public AupSignatureDTO getSignatureForAccount(@PathVariable String accountId) th @PatchMapping(value = "/iam/aup/signature/{accountId}") @ResponseStatus(value = HttpStatus.CREATED) @PreAuthorize("#iam.hasScope('iam:admin.write') or #iam.hasDashboardRole('ROLE_ADMIN')") - public AupSignatureDTO updateSignatureForAccount(@PathVariable String accountId) throws AccountNotFoundException { + public AupSignatureDTO updateSignatureForAccount(@PathVariable String accountId, + Authentication authentication) throws AccountNotFoundException { - IamAccount updaterAccount = accountUtils.getAuthenticatedUserAccount() - .orElseThrow(accountNotFoundException(ACCOUNT_NOT_FOUND_FOR_AUTHENTICATED_USER_MESSAGE)); + Optional updaterAccount = accountUtils.getAuthenticatedUserAccount(); IamAccount account = accountUtils.getByAccountId(accountId) .orElseThrow(accountNotFoundException(format(ACCOUNT_NOT_FOUND_FOR_ID_MESSAGE, accountId))); @@ -144,7 +149,18 @@ public AupSignatureDTO updateSignatureForAccount(@PathVariable String accountId) Date now = new Date(timeProvider.currentTimeMillis()); IamAupSignature signature = signatureRepo.createSignatureForAccount(aup, account, now); - eventPublisher.publishEvent(new AupSignedOnBehalfEvent(this, signature, updaterAccount.getUsername())); + + String principal = null; + + if (updaterAccount.isPresent()) { + principal = updaterAccount.get().getUsername(); + eventPublisher.publishEvent(AupSignedOnBehalfEvent.signedByUser(this, principal, signature)); + } else if (authentication instanceof OAuth2Authentication) { + OAuth2Authentication oauth2Auth = (OAuth2Authentication) authentication; + principal = oauth2Auth.getOAuth2Request().getClientId(); + eventPublisher + .publishEvent(AupSignedOnBehalfEvent.signedByClient(this, principal, signature)); + } return signatureConverter.dtoFromEntity(signature); } @@ -152,10 +168,10 @@ public AupSignatureDTO updateSignatureForAccount(@PathVariable String accountId) @DeleteMapping(value = "/iam/aup/signature/{accountId}") @ResponseStatus(value = HttpStatus.NO_CONTENT) @PreAuthorize("#iam.hasScope('iam:admin.write') or #iam.hasDashboardRole('ROLE_ADMIN')") - public void deleteSignatureForAccount(@PathVariable String accountId) throws AccountNotFoundException { + public void deleteSignatureForAccount(@PathVariable String accountId, + Authentication authentication) throws AccountNotFoundException { - IamAccount deleterAccount = accountUtils.getAuthenticatedUserAccount() - .orElseThrow(accountNotFoundException(ACCOUNT_NOT_FOUND_FOR_AUTHENTICATED_USER_MESSAGE)); + Optional deleterAccount = accountUtils.getAuthenticatedUserAccount(); IamAccount signatureAccount = accountUtils.getByAccountId(accountId) .orElseThrow(accountNotFoundException(format(ACCOUNT_NOT_FOUND_FOR_ID_MESSAGE, accountId))); @@ -166,7 +182,19 @@ public void deleteSignatureForAccount(@PathVariable String accountId) throws Acc if (signature.isPresent()) { signatureRepo.deleteSignatureForAccount(aup, signatureAccount); - eventPublisher.publishEvent(new AupSignatureDeletedEvent(this, deleterAccount.getUsername(), signature.get())); + + String principal = null; + + if (deleterAccount.isPresent()) { + principal = deleterAccount.get().getUsername(); + eventPublisher + .publishEvent(AupSignatureDeletedEvent.deletedByUser(this, principal, signature.get())); + } else if (authentication instanceof OAuth2Authentication) { + OAuth2Authentication oauth2Auth = (OAuth2Authentication) authentication; + principal = oauth2Auth.getOAuth2Request().getClientId(); + eventPublisher + .publishEvent(AupSignatureDeletedEvent.deletedByClient(this, principal, signature.get())); + } } } diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/IamAuditApplicationEvent.java b/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/IamAuditApplicationEvent.java index 253ed5327..4b601aa7a 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/IamAuditApplicationEvent.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/IamAuditApplicationEvent.java @@ -29,34 +29,32 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; @JsonPropertyOrder({"timestamp", "@type", "category", "principal", "message"}) -@JsonTypeInfo(use=Id.NAME, property="@type") +@JsonTypeInfo(use = Id.NAME, property = "@type") public abstract class IamAuditApplicationEvent extends ApplicationEvent { private static final long serialVersionUID = -6276169409979227109L; - + public static final String NULL_PRINCIPAL = ""; @JsonInclude private final IamEventCategory category; - + @JsonInclude private final String principal; - + @JsonInclude private final String message; - public IamAuditApplicationEvent(IamEventCategory category, Object source, String message) { + this(category, source, message, SecurityContextHolder.getContext().getAuthentication()); + } + + public IamAuditApplicationEvent(IamEventCategory category, Object source, String message, + Authentication auth) { super(source); - this.message = message; this.category = category; - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - - if (auth == null) { - this.principal = NULL_PRINCIPAL; - } else { - this.principal = auth.getName(); - } + this.message = message; + this.principal = (auth != null) ? auth.getName() : NULL_PRINCIPAL; } protected IamAuditApplicationEvent(IamEventCategory category, Object source) { @@ -80,9 +78,9 @@ public IamEventCategory getCategory() { public Object getSource() { return super.getSource(); } - + @JsonProperty("source") - public String getSourceClass(){ + public String getSourceClass() { return super.getSource().getClass().getSimpleName(); } } diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/aup/AupSignatureDeletedEvent.java b/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/aup/AupSignatureDeletedEvent.java index 1adfbd004..40862a607 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/aup/AupSignatureDeletedEvent.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/aup/AupSignatureDeletedEvent.java @@ -15,8 +15,6 @@ */ package it.infn.mw.iam.audit.events.aup; -import static java.lang.String.format; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import it.infn.mw.iam.audit.events.IamAuditApplicationEvent; @@ -34,11 +32,23 @@ public class AupSignatureDeletedEvent extends IamAuditApplicationEvent { @JsonSerialize(using = IamAupSignatureSerializer.class) final IamAupSignature signature; - public AupSignatureDeletedEvent(Object source, String actor, IamAupSignature signature) { - super(IamEventCategory.AUP, source, - format("Administrator %s requested AUP signature to the user %s", actor, - signature.getAccount().getUsername())); + public AupSignatureDeletedEvent(Object source, String message, IamAupSignature signature) { + super(IamEventCategory.AUP, source, message); this.signature = signature; } + public static AupSignatureDeletedEvent deletedByClient(Object source, String clientId, + IamAupSignature signature) { + String message = String.format("Client %s deleted the AUP signature of %s user", clientId, + signature.getAccount().getUsername()); + return new AupSignatureDeletedEvent(source, message, signature); + } + + public static AupSignatureDeletedEvent deletedByUser(Object source, String userId, + IamAupSignature signature) { + String message = String.format("User %s deleted the AUP signature of %s user", userId, + signature.getAccount().getUsername()); + return new AupSignatureDeletedEvent(source, message, signature); + } + } diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/aup/AupSignedOnBehalfEvent.java b/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/aup/AupSignedOnBehalfEvent.java index c4817a360..a410a4b93 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/aup/AupSignedOnBehalfEvent.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/audit/events/aup/AupSignedOnBehalfEvent.java @@ -15,8 +15,6 @@ */ package it.infn.mw.iam.audit.events.aup; -import static java.lang.String.format; - import com.fasterxml.jackson.databind.annotation.JsonSerialize; import it.infn.mw.iam.audit.events.IamAuditApplicationEvent; @@ -34,9 +32,23 @@ public class AupSignedOnBehalfEvent extends IamAuditApplicationEvent { @JsonSerialize(using = IamAupSignatureSerializer.class) final IamAupSignature signature; - public AupSignedOnBehalfEvent(Object source, IamAupSignature signature, String signedBy) { - super(IamEventCategory.AUP, source, format("Administrator %s signed the AUP on behalf of %s", - signedBy, signature.getAccount().getUsername())); + public AupSignedOnBehalfEvent(Object source, String message, IamAupSignature signature) { + super(IamEventCategory.AUP, source, message); this.signature = signature; } + + public static AupSignedOnBehalfEvent signedByClient(Object source, String clientId, + IamAupSignature signature) { + String message = String.format("Client %s signed the AUP on behalf of %s user", clientId, + signature.getAccount().getUsername()); + return new AupSignedOnBehalfEvent(source, message, signature); + } + + public static AupSignedOnBehalfEvent signedByUser(Object source, String userId, + IamAupSignature signature) { + String message = String.format("User %s signed the AUP on behalf of %s user", userId, + signature.getAccount().getUsername()); + return new AupSignedOnBehalfEvent(source, message, signature); + } + } diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupSignatureIntegrationTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupSignatureIntegrationTests.java index 95af83605..67167bc02 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupSignatureIntegrationTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupSignatureIntegrationTests.java @@ -55,6 +55,7 @@ import it.infn.mw.iam.test.util.DateEqualModulo1Second; import it.infn.mw.iam.test.util.MockTimeProvider; import it.infn.mw.iam.test.util.WithAnonymousUser; +import it.infn.mw.iam.test.util.WithMockOAuthUser; import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest; import it.infn.mw.iam.test.util.oauth.MockOAuth2Filter; @@ -214,6 +215,38 @@ public void signatureOnBehalfWorks() throws Exception, NoSuchElementException { } + @Test + @WithMockOAuthUser(scopes = "iam:admin.write", clientId = "client-cred") + public void signatureOnBehalfWithClientCredentialsWorks() throws Exception, NoSuchElementException { + + IamAup aup = buildDefaultAup(); + aupRepo.save(aup); + IamAccount testAccount = accountRepo.findByUsername("test").orElseThrow(); + Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); + + Optional signature = + aupSignatureRepo.findSignatureForAccount(aup, testAccount); + assertThat(signature.isEmpty(), equalTo(true)); + + AupSignatureDTO dto = new AupSignatureDTO(); + dto.setAup(aupConverter.dtoFromEntity(aup)); + AccountDTO accountDto = new AccountDTO(); + accountDto.setName(testAccount.getUserInfo().getName()); + accountDto.setUsername(testAccount.getUsername()); + accountDto.setUuid(testAccount.getUuid()); + dto.setAccount(accountDto); + dto.setSignatureTime(new Date()); + + mvc.perform(patch("/iam/aup/signature/{accountId}", testAccount.getUuid()) + .content(mapper.writeValueAsString(dto)) + .contentType(APPLICATION_JSON)).andExpect(status().isCreated()); + + assertThat(aupSignatureRepo.findSignatureForAccount(aup, testAccount).isEmpty(), + equalTo(false)); + + } + @Test @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) public void aupRemovalForSingleUser() throws Exception { @@ -240,6 +273,36 @@ public void aupRemovalForSingleUser() throws Exception { } + @Test + @WithMockOAuthUser(scopes = "iam:admin.write", clientId = "client-cred") + public void aupRemovalForSingleUserWithClientCredentialsWorks() throws Exception { + IamAup aup = buildDefaultAup(); + aupRepo.save(aup); + IamAccount testAccount = accountRepo.findByUsername("test").orElseThrow(); + Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); + + Optional signature = + aupSignatureRepo.findSignatureForAccount(aup, testAccount); + assertThat(signature.isEmpty(), equalTo(true)); + + AupSignatureDTO dto = new AupSignatureDTO(); + dto.setAup(aupConverter.dtoFromEntity(aup)); + AccountDTO accountDto = new AccountDTO(); + accountDto.setName(testAccount.getUserInfo().getName()); + accountDto.setUsername(testAccount.getUsername()); + accountDto.setUuid(testAccount.getUuid()); + dto.setAccount(accountDto); + dto.setSignatureTime(new Date()); + + mvc.perform(patch("/iam/aup/signature/{accountId}", testAccount.getUuid()) + .content(mapper.writeValueAsString(dto)) + .contentType(APPLICATION_JSON)).andExpect(status().isCreated()); + mvc.perform(delete("/iam/aup/signature/" + testAccount.getUuid())) + .andExpect(status().isNoContent()); + + } + @Test @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) public void aupRemovalRemovesSignatureRecords() throws Exception { From 1d249f74dcc836a757c3d34815020238f2eeece5 Mon Sep 17 00:00:00 2001 From: rmiccoli Date: Tue, 28 Mar 2023 17:06:19 +0200 Subject: [PATCH 11/22] Do not provide message on external authn error --- .../mw/iam/authn/ExternalAuthenticationFailureHandler.java | 1 - iam-login-service/src/main/webapp/WEB-INF/views/iam/login.jsp | 1 - .../oidc/validator/OidcValidatorIntegrationTests.java | 4 ++-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/authn/ExternalAuthenticationFailureHandler.java b/iam-login-service/src/main/java/it/infn/mw/iam/authn/ExternalAuthenticationFailureHandler.java index b7e399f84..acec18b04 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/authn/ExternalAuthenticationFailureHandler.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/authn/ExternalAuthenticationFailureHandler.java @@ -48,7 +48,6 @@ private String buildRedirectURL(AuthenticationException exception) { return UriComponentsBuilder.fromPath("/login") .queryParam("error", "true") - .queryParam("externalAuthenticationError", errorMessage) .build(true) .toString(); } diff --git a/iam-login-service/src/main/webapp/WEB-INF/views/iam/login.jsp b/iam-login-service/src/main/webapp/WEB-INF/views/iam/login.jsp index 282d80157..64934b085 100644 --- a/iam-login-service/src/main/webapp/WEB-INF/views/iam/login.jsp +++ b/iam-login-service/src/main/webapp/WEB-INF/views/iam/login.jsp @@ -48,7 +48,6 @@

diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/ext_authn/oidc/validator/OidcValidatorIntegrationTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/ext_authn/oidc/validator/OidcValidatorIntegrationTests.java index 2f21cc15c..2ae7569ad 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/ext_authn/oidc/validator/OidcValidatorIntegrationTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/ext_authn/oidc/validator/OidcValidatorIntegrationTests.java @@ -105,8 +105,8 @@ public void testValidatorError() throws JOSEException, UriComponentsBuilder.fromUri(response.getHeaders().getLocation()).build(); assertThat(locationUri.getPath(), equalTo("/login")); - assertThat(locationUri.getQueryParams().keySet(), hasItem("externalAuthenticationError")); - assertThat(locationUri.getQueryParams().getFirst("externalAuthenticationError"), is("always%20fails")); + assertThat(locationUri.getQueryParams().keySet(), hasItem("error")); + assertThat(locationUri.getQueryParams().getFirst("error"), is("true")); } From 75ecd5c5eb0a1feb0c58af6a8b2a034031221d24 Mon Sep 17 00:00:00 2001 From: Roberta Miccoli <85555840+rmiccoli@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:16:24 +0200 Subject: [PATCH 12/22] Add AUP reminder and user suspension/restore messages (#787) --- .../iam/api/aup/AupSignatureController.java | 1 - .../mw/iam/api/aup/DefaultAupService.java | 1 + .../mw/iam/api/aup/model/AupConverter.java | 4 +- .../it/infn/mw/iam/api/aup/model/AupDTO.java | 19 ++- .../aup/model/AupRemindersAndSignature.java | 38 +++++ .../AupRemindersAndSignatureValidator.java | 104 ++++++++++++ .../provisioning/ScimUserProvisioning.java | 18 +- .../it/infn/mw/iam/config/TaskConfig.java | 9 + .../core/user/DefaultIamAccountService.java | 8 +- .../mw/iam/core/web/aup/AupReminderTask.java | 118 ++++++++++++++ .../iam/notification/NotificationFactory.java | 13 +- .../TransientNotificationFactory.java | 124 +++++++++++++- .../email-templates/accountRestored.ftl | 7 + .../email-templates/accountSuspended.ftl | 9 + .../email-templates/aupExpirationMessage.ftl | 12 ++ .../email-templates/aupSignatureRequest.ftl | 9 + .../email-templates/signAupReminder.ftl | 15 ++ .../components/aup/aup.component.html | 9 + .../components/aup/aup.component.js | 6 +- .../components/aup/aup.create.dialog.html | 12 +- .../components/aup/aup.edit.dialog.html | 10 ++ .../iam/test/api/aup/AupIntegrationTests.java | 154 +++++++++++++++++- .../test/api/aup/AupReminderTaskTests.java | 154 ++++++++++++++++++ .../mw/iam/test/api/aup/AupTestSupport.java | 1 + .../it/infn/mw/iam/test/login/LoginTests.java | 1 + .../test/oauth/RefreshTokenGranterTests.java | 1 + ...ResourceOwnerPasswordCredentialsTests.java | 1 + .../mw/iam/test/oauth/TokenExchangeTests.java | 1 + .../authzcode/AuthorizationCodeTests.java | 1 + .../repository/IamAupRepositoryTests.java | 1 + .../test/scim/user/ScimUserCreationTests.java | 2 +- .../test/service/IamAccountServiceTests.java | 6 +- .../infn/mw/iam/core/IamNotificationType.java | 2 +- .../infn/mw/iam/persistence/model/IamAup.java | 11 ++ .../repository/IamAccountRepository.java | 1 - .../repository/IamAupSignatureRepository.java | 14 +- .../IamEmailNotificationRepository.java | 13 ++ .../migration/h2/V105__add_aup_reminders.sql | 1 + .../db/migration/h2/V19__aup_tables.sql | 2 +- .../mysql/V105__add_aup_reminders.sql | 1 + .../java/it/infn/mw/voms/VomsAcTests.java | 1 + 41 files changed, 882 insertions(+), 33 deletions(-) create mode 100644 iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupRemindersAndSignature.java create mode 100644 iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupRemindersAndSignatureValidator.java create mode 100644 iam-login-service/src/main/java/it/infn/mw/iam/core/web/aup/AupReminderTask.java create mode 100644 iam-login-service/src/main/resources/email-templates/accountRestored.ftl create mode 100644 iam-login-service/src/main/resources/email-templates/accountSuspended.ftl create mode 100644 iam-login-service/src/main/resources/email-templates/aupExpirationMessage.ftl create mode 100644 iam-login-service/src/main/resources/email-templates/aupSignatureRequest.ftl create mode 100644 iam-login-service/src/main/resources/email-templates/signAupReminder.ftl create mode 100644 iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupReminderTaskTests.java create mode 100644 iam-persistence/src/main/resources/db/migration/h2/V105__add_aup_reminders.sql create mode 100644 iam-persistence/src/main/resources/db/migration/mysql/V105__add_aup_reminders.sql diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/AupSignatureController.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/AupSignatureController.java index d6f7ebe7b..5780e1a00 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/AupSignatureController.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/AupSignatureController.java @@ -69,7 +69,6 @@ public class AupSignatureController { private final IamAupRepository aupRepo; private final TimeProvider timeProvider; private final ApplicationEventPublisher eventPublisher; - public AupSignatureController(AupSignatureConverter conv, AccountUtils utils, IamAupSignatureRepository signatureRepo, IamAupRepository aupRepo, TimeProvider timeProvider, ApplicationEventPublisher publisher) { diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/DefaultAupService.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/DefaultAupService.java index d6f53975c..2675030a5 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/DefaultAupService.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/DefaultAupService.java @@ -90,6 +90,7 @@ public IamAup updateAup(AupDTO aupDto) { aup.setDescription(aupDto.getDescription()); aup.setUrl(aupDto.getUrl()); aup.setSignatureValidityInDays(aupDto.getSignatureValidityInDays()); + aup.setAupRemindersInDays(aupDto.getAupRemindersInDays()); /* * Due to transition from text to URL, when updating the AUP only URL is considered while text * is ignored and set to null diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupConverter.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupConverter.java index d23a2b025..0fec79bd3 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupConverter.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupConverter.java @@ -32,13 +32,15 @@ public IamAup entityFromDto(AupDTO dto) { aup.setSignatureValidityInDays(dto.getSignatureValidityInDays()); aup.setUrl(dto.getUrl()); aup.setText(dto.getText()); + aup.setAupRemindersInDays(dto.getAupRemindersInDays()); return aup; } @Override public AupDTO dtoFromEntity(IamAup entity) { return new AupDTO(entity.getUrl(), entity.getText(), entity.getDescription(), - entity.getSignatureValidityInDays(), entity.getCreationTime(), entity.getLastUpdateTime()); + entity.getSignatureValidityInDays(), entity.getCreationTime(), entity.getLastUpdateTime(), + entity.getAupRemindersInDays()); } } diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupDTO.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupDTO.java index af404ab61..f0cbf4aee 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupDTO.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupDTO.java @@ -17,9 +17,7 @@ import java.util.Date; -import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.hibernate.validator.constraints.URL; @@ -30,6 +28,7 @@ import it.infn.mw.iam.api.scim.controller.utils.JsonDateSerializer; import it.infn.mw.iam.api.validators.NoQueryParamsUrl; +@AupRemindersAndSignature public class AupDTO { @NotBlank(message = "Invalid AUP: the AUP URL cannot be blank") @@ -43,10 +42,10 @@ public class AupDTO { message = "Invalid AUP: the description string must be at most 128 characters long") String description; - @NotNull(message = "Invalid AUP: signatureValidityInDays is required") - @Min(value = 0L, message = "Invalid AUP: signatureValidityInDays must be >= 0") Long signatureValidityInDays; + String aupRemindersInDays = "30,15,1"; + @JsonSerialize(using = JsonDateSerializer.class) Date creationTime; @@ -57,13 +56,15 @@ public AupDTO(@JsonProperty("url") String url, @JsonProperty("text") String text @JsonProperty("description") String description, @JsonProperty("signatureValidityInDays") Long signatureValidityInDays, @JsonProperty("creationTime") Date creationTime, - @JsonProperty("lastUpdateTime") Date lastUpdateTime) { + @JsonProperty("lastUpdateTime") Date lastUpdateTime, + @JsonProperty("aupRemindersInDays") String aupRemindersInDays) { this.url = url; this.description = description; this.signatureValidityInDays = signatureValidityInDays; this.creationTime = creationTime; this.lastUpdateTime = lastUpdateTime; this.text = text; + this.aupRemindersInDays = aupRemindersInDays; } public String getDescription() { @@ -101,6 +102,14 @@ public void setSignatureValidityInDays(Long signatureValidityInDays) { this.signatureValidityInDays = signatureValidityInDays; } + public String getAupRemindersInDays() { + return aupRemindersInDays; + } + + public void setAupRemindersInDays(String aupRemindersInDays) { + this.aupRemindersInDays = aupRemindersInDays; + } + public Date getCreationTime() { return creationTime; diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupRemindersAndSignature.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupRemindersAndSignature.java new file mode 100644 index 000000000..af121c57d --- /dev/null +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupRemindersAndSignature.java @@ -0,0 +1,38 @@ +/** + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package it.infn.mw.iam.api.aup.model; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import javax.validation.Constraint; +import javax.validation.Payload; + +@Retention(RUNTIME) +@Target({TYPE}) +@Constraint(validatedBy = AupRemindersAndSignatureValidator.class) +public @interface AupRemindersAndSignature { + + String message() default "Invalid AUP"; + + Class[] groups() default {}; + + Class[] payload() default {}; + +} diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupRemindersAndSignatureValidator.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupRemindersAndSignatureValidator.java new file mode 100644 index 000000000..2609699d9 --- /dev/null +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/aup/model/AupRemindersAndSignatureValidator.java @@ -0,0 +1,104 @@ +/** + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package it.infn.mw.iam.api.aup.model; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; + +public class AupRemindersAndSignatureValidator implements ConstraintValidator { + + @Override + public boolean isValid(AupDTO value, ConstraintValidatorContext context) { + + Long signatureValidityInDays = value.getSignatureValidityInDays(); + String aupRemindersInDays = value.getAupRemindersInDays(); + + if (signatureValidityInDays == null) { + context.disableDefaultConstraintViolation(); + context + .buildConstraintViolationWithTemplate("Invalid AUP: signatureValidityInDays is required") + .addPropertyNode("signatureValidityInDays") + .addConstraintViolation(); + return false; + } + + if (signatureValidityInDays < 0) { + context.disableDefaultConstraintViolation(); + context + .buildConstraintViolationWithTemplate("Invalid AUP: signatureValidityInDays must be >= 0") + .addPropertyNode("signatureValidityInDays") + .addConstraintViolation(); + return false; + } + + if (aupRemindersInDays == null || aupRemindersInDays.isEmpty()) { + context.disableDefaultConstraintViolation(); + context + .buildConstraintViolationWithTemplate( + "Invalid AUP: aupRemindersInDays cannot be empty or null") + .addConstraintViolation(); + return false; + } + + try { + List numbers = Arrays.stream(aupRemindersInDays.split(",")) + .map(String::trim) + .map(Integer::parseInt) + .collect(Collectors.toList()); + + if (numbers.stream().anyMatch(i -> i <= 0)) { + context.disableDefaultConstraintViolation(); + context + .buildConstraintViolationWithTemplate( + "Invalid AUP: zero or negative values for reminders are not allowed") + .addConstraintViolation(); + return false; + } + + if (numbers.stream().anyMatch(i -> i >= signatureValidityInDays)) { + context.disableDefaultConstraintViolation(); + context + .buildConstraintViolationWithTemplate( + "Invalid AUP: aupRemindersInDays must be smaller than signatureValidityInDays") + .addConstraintViolation(); + return false; + } + + Set uniqueNumbers = new HashSet<>(numbers); + if (uniqueNumbers.size() != numbers.size()) { + context.disableDefaultConstraintViolation(); + context + .buildConstraintViolationWithTemplate("Invalid AUP: duplicate values for reminders are not allowed") + .addConstraintViolation(); + return false; + } + + return true; + } catch (NumberFormatException e) { + context.disableDefaultConstraintViolation(); + context.buildConstraintViolationWithTemplate("Invalid AUP: non-integer value found") + .addConstraintViolation(); + return false; + } + } + +} diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/scim/provisioning/ScimUserProvisioning.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/scim/provisioning/ScimUserProvisioning.java index 8e1d7fdf4..ad3931674 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/api/scim/provisioning/ScimUserProvisioning.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/scim/provisioning/ScimUserProvisioning.java @@ -65,6 +65,7 @@ import it.infn.mw.iam.core.user.IamAccountService; import it.infn.mw.iam.core.user.exception.CredentialAlreadyBoundException; import it.infn.mw.iam.core.user.exception.UserAlreadyExistsException; +import it.infn.mw.iam.notification.NotificationFactory; import it.infn.mw.iam.persistence.model.IamAccount; import it.infn.mw.iam.persistence.repository.IamAccountRepository; import it.infn.mw.iam.registration.validation.UsernameValidator; @@ -84,6 +85,7 @@ public class ScimUserProvisioning private final IamAccountRepository accountRepository; private final UserConverter userConverter; private final DefaultAccountUpdaterFactory updatersFactory; + private final NotificationFactory notificationFactory; private ApplicationEventPublisher eventPublisher; @@ -91,12 +93,13 @@ public ScimUserProvisioning(IamAccountService accountService, OAuth2TokenEntityService tokenService, IamAccountRepository accountRepository, PasswordEncoder passwordEncoder, UserConverter userConverter, OidcIdConverter oidcIdConverter, SamlIdConverter samlIdConverter, SshKeyConverter sshKeyConverter, - X509CertificateConverter x509CertificateConverter, - UsernameValidator usernameValidator) { + X509CertificateConverter x509CertificateConverter, UsernameValidator usernameValidator, + NotificationFactory notificationFactory) { this.accountService = accountService; this.accountRepository = accountRepository; this.userConverter = userConverter; + this.notificationFactory = notificationFactory; this.updatersFactory = new DefaultAccountUpdaterFactory(passwordEncoder, accountRepository, accountService, tokenService, oidcIdConverter, samlIdConverter, sshKeyConverter, x509CertificateConverter, usernameValidator); @@ -266,11 +269,22 @@ private void executePatchOperation(IamAccount account, ScimPatchOperation> operations) { diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/config/TaskConfig.java b/iam-login-service/src/main/java/it/infn/mw/iam/config/TaskConfig.java index a9943bfc4..9ce296cc9 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/config/TaskConfig.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/config/TaskConfig.java @@ -37,6 +37,7 @@ import it.infn.mw.iam.config.lifecycle.LifecycleProperties; import it.infn.mw.iam.core.lifecycle.ExpiredAccountsHandler; import it.infn.mw.iam.core.user.IamAccountService; +import it.infn.mw.iam.core.web.aup.AupReminderTask; import it.infn.mw.iam.core.web.wellknown.IamWellKnownInfoProvider; import it.infn.mw.iam.notification.NotificationDelivery; import it.infn.mw.iam.notification.NotificationDeliveryTask; @@ -84,6 +85,9 @@ public class TaskConfig implements SchedulingConfigurer { @Autowired ExpiredAccountsHandler expiredAccountsHandler; + @Autowired + AupReminderTask aupReminderTask; + @Autowired CacheManager cacheManager; @@ -127,6 +131,11 @@ public void clearExpiredDeviceCodes() { deviceCodeService.clearExpiredDeviceCodes(); } + @Scheduled(fixedRateString = "${task.aupReminder:14400}", timeUnit = TimeUnit.SECONDS) + public void scheduledAupRemindersTask() { + aupReminderTask.sendAupReminders(); + } + public void schedulePendingNotificationsDelivery(final ScheduledTaskRegistrar taskRegistrar) { if (notificationTaskPeriodMsec < 0) { diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/core/user/DefaultIamAccountService.java b/iam-login-service/src/main/java/it/infn/mw/iam/core/user/DefaultIamAccountService.java index 061fc0351..e2eb9911c 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/core/user/DefaultIamAccountService.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/core/user/DefaultIamAccountService.java @@ -54,6 +54,7 @@ import it.infn.mw.iam.core.user.exception.CredentialAlreadyBoundException; import it.infn.mw.iam.core.user.exception.InvalidCredentialException; import it.infn.mw.iam.core.user.exception.UserAlreadyExistsException; +import it.infn.mw.iam.notification.NotificationFactory; import it.infn.mw.iam.persistence.model.IamAccount; import it.infn.mw.iam.persistence.model.IamAccountGroupMembership; import it.infn.mw.iam.persistence.model.IamAttribute; @@ -81,11 +82,13 @@ public class DefaultIamAccountService implements IamAccountService, ApplicationE private ApplicationEventPublisher eventPublisher; private final OAuth2TokenEntityService tokenService; private final IamAccountClientRepository accountClientRepo; + private final NotificationFactory notificationFactory; public DefaultIamAccountService(Clock clock, IamAccountRepository accountRepo, IamGroupRepository groupRepo, IamAuthoritiesRepository authoritiesRepo, PasswordEncoder passwordEncoder, ApplicationEventPublisher eventPublisher, - OAuth2TokenEntityService tokenService, IamAccountClientRepository accountClientRepo) { + OAuth2TokenEntityService tokenService, IamAccountClientRepository accountClientRepo, + NotificationFactory notificationFactory) { this.clock = clock; this.accountRepo = accountRepo; @@ -95,6 +98,7 @@ public DefaultIamAccountService(Clock clock, IamAccountRepository accountRepo, this.eventPublisher = eventPublisher; this.tokenService = tokenService; this.accountClientRepo = accountClientRepo; + this.notificationFactory = notificationFactory; } private void labelSetEvent(IamAccount account, IamLabel label) { @@ -403,6 +407,7 @@ public IamAccount disableAccount(IamAccount account) { account.touch(); accountRepo.save(account); eventPublisher.publishEvent(new AccountDisabledEvent(this, account)); + notificationFactory.createAccountSuspendedMessage(account); return account; } @@ -412,6 +417,7 @@ public IamAccount restoreAccount(IamAccount account) { account.touch(); accountRepo.save(account); eventPublisher.publishEvent(new AccountRestoredEvent(this, account)); + notificationFactory.createAccountRestoredMessage(account); return account; } diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/core/web/aup/AupReminderTask.java b/iam-login-service/src/main/java/it/infn/mw/iam/core/web/aup/AupReminderTask.java new file mode 100644 index 000000000..52d8bcf41 --- /dev/null +++ b/iam-login-service/src/main/java/it/infn/mw/iam/core/web/aup/AupReminderTask.java @@ -0,0 +1,118 @@ +/** + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package it.infn.mw.iam.core.web.aup; + +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import it.infn.mw.iam.notification.NotificationFactory; +import it.infn.mw.iam.persistence.model.IamAccount; +import it.infn.mw.iam.persistence.model.IamAup; +import it.infn.mw.iam.persistence.model.IamAupSignature; +import it.infn.mw.iam.persistence.repository.IamAccountRepository; +import it.infn.mw.iam.persistence.repository.IamAupRepository; +import it.infn.mw.iam.persistence.repository.IamAupSignatureRepository; +import it.infn.mw.iam.persistence.repository.IamEmailNotificationRepository; + +@Component +public class AupReminderTask { + + @Autowired + IamAccountRepository accounts; + + @Autowired + IamAupRepository aupRepo; + + @Autowired + NotificationFactory notification; + + @Autowired + IamAupSignatureRepository aupSignatureRepo; + + @Autowired + IamEmailNotificationRepository emailNotificationRepo; + + public void sendAupReminders() { + aupRepo.findDefaultAup().ifPresent(aup -> { + LocalDate currentDate = LocalDate.now(); + LocalDate expirationDate = currentDate.minusDays(aup.getSignatureValidityInDays()); + Date expirationDateAsDate = toDate(expirationDate); + Date expirationDatePlusOneDayAsDate = toDate(expirationDate.plusDays(1)); + List reminderIntervals = parseReminderIntervals(aup.getAupRemindersInDays()); + + reminderIntervals.forEach( + interval -> processRemindersForInterval(aup, currentDate, interval, expirationDate)); + + List expiredSignatures = aupSignatureRepo.findByAupAndSignatureTime(aup, + expirationDateAsDate, expirationDatePlusOneDayAsDate); + + // check if an email of type AUP_EXPIRATION does not already exist, because it is never deleted + expiredSignatures.forEach(s -> { + if (isExpiredSignatureEmailNotAlreadySentFor(s.getAccount())) { + notification.createAupSignatureExpMessage(s.getAccount()); + } + }); + }); + } + + private void processRemindersForInterval(IamAup aup, LocalDate currentDate, Integer interval, + LocalDate expirationDate) { + LocalDate reminderDate = expirationDate.plusDays(interval); + Date reminderDateAsDate = toDate(reminderDate); + Date reminderDatePlusOneAsDate = toDate(reminderDate.plusDays(1)); + Date tomorrowAsDate = toDate(currentDate.plusDays(1)); + + List signatures = aupSignatureRepo.findByAupAndSignatureTime(aup, + reminderDateAsDate, reminderDatePlusOneAsDate); + + // check if an email of type AUP_REMINDER does not already exist, because it is never deleted + signatures.forEach(s -> { + if (isAupReminderEmailNotAlreadySentFor(s.getAccount(), tomorrowAsDate)) { + notification.createAupReminderMessage(s.getAccount(), aup); + } + }); + } + + public boolean isExpiredSignatureEmailNotAlreadySentFor(IamAccount account) { + return emailNotificationRepo + .countAupExpirationMessPerAccount(account.getUserInfo().getEmail()) == 0; + } + + public boolean isAupReminderEmailNotAlreadySentFor(IamAccount account, Date tomorrowAsDate) { + return emailNotificationRepo.countAupRemindersPerAccount(account.getUserInfo().getEmail(), + tomorrowAsDate) == 0; + } + + private Date toDate(LocalDate localDate) { + return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + private static List parseReminderIntervals(String aupRemindersInDays) { + List result = new ArrayList<>(); + String[] parts = aupRemindersInDays.split("\\s*,\\s*"); + for (String part : parts) { + result.add(Integer.parseInt(part.trim())); + } + return result; + } + +} diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/notification/NotificationFactory.java b/iam-login-service/src/main/java/it/infn/mw/iam/notification/NotificationFactory.java index 7d2536a11..a16359b05 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/notification/NotificationFactory.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/notification/NotificationFactory.java @@ -21,6 +21,7 @@ import org.mitre.oauth2.model.ClientDetailsEntity; import it.infn.mw.iam.persistence.model.IamAccount; +import it.infn.mw.iam.persistence.model.IamAup; import it.infn.mw.iam.persistence.model.IamEmailNotification; import it.infn.mw.iam.persistence.model.IamGroupRequest; import it.infn.mw.iam.persistence.model.IamRegistrationRequest; @@ -31,7 +32,8 @@ public interface NotificationFactory { IamEmailNotification createAccountActivatedMessage(IamRegistrationRequest request); - IamEmailNotification createRequestRejectedMessage(IamRegistrationRequest request, Optional motivation); + IamEmailNotification createRequestRejectedMessage(IamRegistrationRequest request, + Optional motivation); IamEmailNotification createAdminHandleRequestMessage(IamRegistrationRequest request); @@ -46,4 +48,13 @@ public interface NotificationFactory { IamEmailNotification createClientStatusChangedMessageFor(ClientDetailsEntity client, List accounts); + IamEmailNotification createAupReminderMessage(IamAccount account, IamAup aup); + + IamEmailNotification createAupSignatureExpMessage(IamAccount account); + + IamEmailNotification createAupSignatureRequestMessage(IamAccount account); + + IamEmailNotification createAccountSuspendedMessage(IamAccount account); + + IamEmailNotification createAccountRestoredMessage(IamAccount account); } diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java b/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java index b25dcec60..1cef9174f 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java @@ -18,7 +18,9 @@ import static java.util.Arrays.asList; import java.io.IOException; -import java.util.ArrayList; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -35,6 +37,8 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; +import com.google.common.collect.Lists; + import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; @@ -44,6 +48,7 @@ import it.infn.mw.iam.notification.service.resolver.AdminNotificationDeliveryStrategy; import it.infn.mw.iam.notification.service.resolver.GroupManagerNotificationDeliveryStrategy; import it.infn.mw.iam.persistence.model.IamAccount; +import it.infn.mw.iam.persistence.model.IamAup; import it.infn.mw.iam.persistence.model.IamEmailNotification; import it.infn.mw.iam.persistence.model.IamGroupRequest; import it.infn.mw.iam.persistence.model.IamNotificationReceiver; @@ -57,6 +62,8 @@ public class TransientNotificationFactory implements NotificationFactory { private static final String USERNAME_FIELD = "username"; private static final String GROUPNAME_FIELD = "groupName"; private static final String MOTIVATION_FIELD = "motivation"; + private static final String AUP_PATH = "%s/iam/aup/sign"; + private static final String AUP_URL = "aupUrl"; @Value("${iam.baseUrl}") private String baseUrl; @@ -271,7 +278,7 @@ public IamEmailNotification createClientStatusChangedMessageFor(ClientDetailsEnt recipients.add(a.getUserInfo().getEmail()); } - List emails = new ArrayList<>(recipients); + List emails = Lists.newArrayList(recipients); if (emails.isEmpty()) { LOG.warn("No email to send notification to for client {}", client.getClientId()); @@ -286,6 +293,119 @@ public IamEmailNotification createClientStatusChangedMessageFor(ClientDetailsEnt return notification; } + @Override + public IamEmailNotification createAupReminderMessage(IamAccount account, IamAup aup) { + String recipient = account.getUserInfo().getName(); + String aupUrl = String.format(AUP_PATH, baseUrl); + + LocalDate now = LocalDate.now(); + long signatureValidityInDays = aup.getSignatureValidityInDays(); + LocalDate signatureTime = account.getAupSignature() + .getSignatureTime() + .toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + LocalDate signatureValidTime = signatureTime.plusDays(signatureValidityInDays); + long missingDays = ChronoUnit.DAYS.between(now, signatureValidTime); + + Map model = new HashMap<>(); + model.put(RECIPIENT_FIELD, recipient); + model.put(AUP_URL, aupUrl); + model.put(ORGANISATION_NAME, organisationName); + model.put("missingDays", missingDays); + + String subject = "AUP signature reminder"; + + IamEmailNotification notification = createMessage("signAupReminder.ftl", model, + IamNotificationType.AUP_REMINDER, subject, asList(account.getUserInfo().getEmail())); + + LOG.debug("Created reminder message for signing the account {} AUP. Signing URL: {}", + account.getUuid(), aupUrl); + + return notification; + } + + @Override + public IamEmailNotification createAupSignatureExpMessage(IamAccount account) { + String recipient = account.getUserInfo().getName(); + String aupUrl = String.format(AUP_PATH, baseUrl); + + Map model = new HashMap<>(); + model.put(RECIPIENT_FIELD, recipient); + model.put(AUP_URL, aupUrl); + model.put(ORGANISATION_NAME, organisationName); + + String subject = "AUP signature expiration"; + + IamEmailNotification notification = createMessage("aupExpirationMessage.ftl", model, + IamNotificationType.AUP_EXPIRATION, subject, asList(account.getUserInfo().getEmail())); + + LOG.debug("Created AUP expiration message for the account {}. AUP signing URL: {}", + account.getUuid(), aupUrl); + + return notification; + + } + + @Override + public IamEmailNotification createAupSignatureRequestMessage(IamAccount account) { + String recipient = account.getUserInfo().getName(); + String aupUrl = String.format(AUP_PATH, baseUrl); + + Map model = new HashMap<>(); + model.put(RECIPIENT_FIELD, recipient); + model.put(AUP_URL, aupUrl); + model.put(ORGANISATION_NAME, organisationName); + + String subject = "AUP signature request"; + + IamEmailNotification notification = + createMessage("aupSignatureRequest.ftl", model, IamNotificationType.AUP_SIGNATURE_REQUEST, + subject, asList(account.getUserInfo().getEmail())); + + LOG.debug("Created AUP signature request message for the account {}. AUP signing URL: {}", + account.getUuid(), aupUrl); + + return notification; + } + + @Override + public IamEmailNotification createAccountSuspendedMessage(IamAccount account) { + String recipient = account.getUserInfo().getName(); + + Map model = new HashMap<>(); + model.put(RECIPIENT_FIELD, recipient); + model.put(ORGANISATION_NAME, organisationName); + + String subject = "Account suspended"; + + IamEmailNotification notification = createMessage("accountSuspended.ftl", model, + IamNotificationType.ACCOUNT_SUSPENDED, subject, asList(account.getUserInfo().getEmail())); + + LOG.debug("Created suspension message for the account {}", account.getUuid()); + + return notification; + } + + @Override + public IamEmailNotification createAccountRestoredMessage(IamAccount account) { + String recipient = account.getUserInfo().getName(); + + Map model = new HashMap<>(); + model.put(RECIPIENT_FIELD, recipient); + model.put(ORGANISATION_NAME, organisationName); + + String subject = "Account restored"; + + IamEmailNotification notification = createMessage("accountRestored.ftl", model, + IamNotificationType.ACCOUNT_RESTORED, subject, asList(account.getUserInfo().getEmail())); + + LOG.debug("Created restoration message for the account {}", account.getUuid()); + + return notification; + + } + protected IamEmailNotification createMessage(String templateName, Map model, IamNotificationType messageType, String subject, List receiverAddress) { diff --git a/iam-login-service/src/main/resources/email-templates/accountRestored.ftl b/iam-login-service/src/main/resources/email-templates/accountRestored.ftl new file mode 100644 index 000000000..1656dc8a9 --- /dev/null +++ b/iam-login-service/src/main/resources/email-templates/accountRestored.ftl @@ -0,0 +1,7 @@ +Dear ${recipient}, + +this mail is to inform that your account in ${organisationName} has been restored. + +You will be able to obtain JWT tokens/VOMS credentials again. + +The ${organisationName} registration service diff --git a/iam-login-service/src/main/resources/email-templates/accountSuspended.ftl b/iam-login-service/src/main/resources/email-templates/accountSuspended.ftl new file mode 100644 index 000000000..117a9217b --- /dev/null +++ b/iam-login-service/src/main/resources/email-templates/accountSuspended.ftl @@ -0,0 +1,9 @@ +Dear ${recipient}, + +this mail is to inform that your account in ${organisationName} has been suspended. + +You will not be able to obtain JWT tokens/VOMS credentials anymore. + +Please contact administrators for any questions. + +The ${organisationName} registration service diff --git a/iam-login-service/src/main/resources/email-templates/aupExpirationMessage.ftl b/iam-login-service/src/main/resources/email-templates/aupExpirationMessage.ftl new file mode 100644 index 000000000..9670b6184 --- /dev/null +++ b/iam-login-service/src/main/resources/email-templates/aupExpirationMessage.ftl @@ -0,0 +1,12 @@ +Dear ${recipient}, + +you failed to sign the Acceptable Usage Policy (AUP) in time. + +You will NOT be able to obtain JWT tokens/VOMS credentials +for the ${organisationName} organization until you explicitly accept the AUP. + +To sign the AUP, point your browser to the following URL: + +${aupUrl} + +The ${organisationName} registration service diff --git a/iam-login-service/src/main/resources/email-templates/aupSignatureRequest.ftl b/iam-login-service/src/main/resources/email-templates/aupSignatureRequest.ftl new file mode 100644 index 000000000..d8840c63d --- /dev/null +++ b/iam-login-service/src/main/resources/email-templates/aupSignatureRequest.ftl @@ -0,0 +1,9 @@ +Dear ${recipient}, + +an administrator requested that you re-sign the Acceptable Usage Policy (AUP). + +To sign the AUP, point your browser to the following URL: + +${aupUrl} + +The ${organisationName} registration service diff --git a/iam-login-service/src/main/resources/email-templates/signAupReminder.ftl b/iam-login-service/src/main/resources/email-templates/signAupReminder.ftl new file mode 100644 index 000000000..f5c387743 --- /dev/null +++ b/iam-login-service/src/main/resources/email-templates/signAupReminder.ftl @@ -0,0 +1,15 @@ +Dear ${recipient}, + +we kindly remind you to sign the Acceptable Usage Policy (AUP). + +The AUP will expire in ${missingDays} days. + +After this date you will NOT be able to obtain JWT tokens/VOMS credentials +for the ${organisationName} organization. + +Note, however, that you can sign the AUP at *any* time +by simply pointing your browser to the following URL: + +${aupUrl} + +The ${organisationName} registration service diff --git a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.component.html b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.component.html index 0980bae8a..b6d4ee8b1 100644 --- a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.component.html +++ b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.component.html @@ -67,6 +67,15 @@

If set to zero, the AUP signature will be asked only at registration time. +
+ +

+ {{$ctrl.aup.data.aupRemindersInDays}} +

+ + Indicate a sequence of three days representing how many days before the AUP expiration reminder messages must be sent. + +
diff --git a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.component.js b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.component.js index 22836b6a7..e55a0823d 100644 --- a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.component.js +++ b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.component.js @@ -73,7 +73,8 @@ self.reset = function() { self.aupVal = { url: self.aup.url, - signatureValidityInDays: self.aup.signatureValidityInDays + signatureValidityInDays: self.aup.signatureValidityInDays, + aupRemindersInDays: self.aup.aupRemindersInDays }; }; @@ -104,7 +105,8 @@ self.reset = function() { self.aupVal = { url: "", - signatureValidityInDays: 0 + signatureValidityInDays: 0, + aupRemindersInDays: "30,15,1" }; }; diff --git a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.create.dialog.html b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.create.dialog.html index c0cc0ac8e..a436247a0 100644 --- a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.create.dialog.html +++ b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/aup/aup.create.dialog.html @@ -45,10 +45,20 @@
+
+ + + + Indicate a sequence of comma-separated numbers representing how many days before the AUP expiration reminder messages must be sent. + + + Required input + +
+
+ + + + Indicate a sequence of comma-separated numbers representing how many days before the AUP expiration reminder messages must be sent. + + + Required input + +

Editing the AUP will not trigger an AUP signature diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupIntegrationTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupIntegrationTests.java index 2033f7b87..b6d891540 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupIntegrationTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupIntegrationTests.java @@ -15,8 +15,8 @@ */ package it.infn.mw.iam.test.api.aup; -import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; import static org.springframework.http.MediaType.APPLICATION_JSON; import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; @@ -125,7 +125,9 @@ public void aupIsReturnedIfDefined() throws Exception { @Test public void aupCreationRequiresAuthenticatedUser() throws JsonProcessingException, Exception { Date now = new Date(); - AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, DEFAULT_AUP_DESC, -1L, now, now); + String reminders = "1,15,30"; + AupDTO aup = + new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, DEFAULT_AUP_DESC, -1L, now, now, reminders); mvc .perform( @@ -138,7 +140,9 @@ public void aupCreationRequiresAuthenticatedUser() throws JsonProcessingExceptio @WithMockUser(username = "test", roles = {"USER"}) public void aupCreationRequiresAdminPrivileges() throws JsonProcessingException, Exception { Date now = new Date(); - AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, DEFAULT_AUP_DESC, -1L, now, now); + String reminders = "1,15,30"; + AupDTO aup = + new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, DEFAULT_AUP_DESC, -1L, now, now, reminders); mvc .perform( @@ -224,11 +228,11 @@ public void aupDescriptionNoLongerThan128Chars() throws JsonProcessingException, } - @Test @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) public void aupCreationRequiresSignatureValidityDays() throws JsonProcessingException, Exception { - AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, null, null, null); + String reminders = "1,15,30"; + AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, null, null, null, reminders); Date now = new Date(); mockTimeProvider.setTime(now.getTime()); @@ -244,7 +248,8 @@ public void aupCreationRequiresSignatureValidityDays() throws JsonProcessingExce @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) public void aupCreationRequiresPositiveSignatureValidityDays() throws JsonProcessingException, Exception { - AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, -1L, null, null); + String reminders = "1,15,30"; + AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, -1L, null, null, reminders); Date now = new Date(); mockTimeProvider.setTime(now.getTime()); @@ -255,6 +260,109 @@ public void aupCreationRequiresPositiveSignatureValidityDays() .andExpect(jsonPath("$.error").value("Invalid AUP: signatureValidityInDays must be >= 0")); } + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupCreationRequiresAupRemindersInDays() throws Exception { + AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, 3L, null, null, null); + Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); + + mvc + .perform( + post("/iam/aup").contentType(APPLICATION_JSON).content(mapper.writeValueAsString(aup))) + .andExpect(status().isBadRequest()) + .andExpect(jsonPath("$.error").value("Invalid AUP: aupRemindersInDays cannot be empty or null")); + } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupCreationRequiresAupRemindersInDaysNotEmpty() throws Exception { + AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, 3L, null, null, ""); + Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); + + mvc + .perform( + post("/iam/aup").contentType(APPLICATION_JSON).content(mapper.writeValueAsString(aup))) + .andExpect(status().isBadRequest()) + .andExpect(jsonPath("$.error").value("Invalid AUP: aupRemindersInDays cannot be empty or null")); + } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupCreationRequiresNoZeroInAupRemindersInDays() throws Exception { + AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, 3L, null, null, "0"); + Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); + + mvc + .perform( + post("/iam/aup").contentType(APPLICATION_JSON).content(mapper.writeValueAsString(aup))) + .andExpect(status().isBadRequest()) + .andExpect(jsonPath("$.error").value( + "Invalid AUP: zero or negative values for reminders are not allowed")); + } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupCreationRequiresPositiveAupRemindersInDays() throws Exception { + AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, 3L, null, null, "-22"); + Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); + + mvc + .perform( + post("/iam/aup").contentType(APPLICATION_JSON).content(mapper.writeValueAsString(aup))) + .andExpect(status().isBadRequest()) + .andExpect(jsonPath("$.error").value( + "Invalid AUP: zero or negative values for reminders are not allowed")); + } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupCreationRequiresNoLettersInAupRemindersInDays() throws Exception { + AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, 3L, null, null, "ciao"); + Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); + + mvc + .perform( + post("/iam/aup").contentType(APPLICATION_JSON).content(mapper.writeValueAsString(aup))) + .andExpect(status().isBadRequest()) + .andExpect(jsonPath("$.error").value( + "Invalid AUP: non-integer value found")); + } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupCreationRequiresNoDuplicationInAupRemindersInDays() throws Exception { + AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, 31L, null, null, "30,15,15"); + Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); + + mvc + .perform( + post("/iam/aup").contentType(APPLICATION_JSON).content(mapper.writeValueAsString(aup))) + .andExpect(status().isBadRequest()) + .andExpect(jsonPath("$.error").value( + "Invalid AUP: duplicate values for reminders are not allowed")); + } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupCreationRequiresAupRemindersInDaysSmallerThanAupExpirationDays() throws Exception { + AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, 3L, null, null, "4"); + Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); + + mvc + .perform( + post("/iam/aup").contentType(APPLICATION_JSON).content(mapper.writeValueAsString(aup))) + .andExpect(status().isBadRequest()) + .andExpect(jsonPath("$.error").value( + "Invalid AUP: aupRemindersInDays must be smaller than signatureValidityInDays")); + } + @Test @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) public void aupCreationWorks() throws JsonProcessingException, Exception { @@ -285,6 +393,36 @@ public void aupCreationWorks() throws JsonProcessingException, Exception { assertThat(createdAup.getLastUpdateTime(), creationAndLastUpdateTimeMatcher); } + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void whiteSpacesAllowedAmongAupRemindersDays() throws Exception { + AupDTO aup = new AupDTO(DEFAULT_AUP_URL, DEFAULT_AUP_TEXT, null, 31L, null, null, " 30, 15, 7 "); + + Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); + + mvc + .perform( + post("/iam/aup").contentType(APPLICATION_JSON).content(mapper.writeValueAsString(aup))) + .andExpect(status().isCreated()); + + + String aupJson = mvc.perform(get("/iam/aup")) + .andExpect(status().isOk()) + .andReturn() + .getResponse() + .getContentAsString(); + + AupDTO createdAup = mapper.readValue(aupJson, AupDTO.class); + + DateEqualModulo1Second creationAndLastUpdateTimeMatcher = new DateEqualModulo1Second(now); + assertThat(createdAup.getUrl(), equalTo(aup.getUrl())); + assertThat(createdAup.getDescription(), equalTo(aup.getDescription())); + assertThat(createdAup.getSignatureValidityInDays(), equalTo(aup.getSignatureValidityInDays())); + assertThat(createdAup.getCreationTime(), creationAndLastUpdateTimeMatcher); + assertThat(createdAup.getLastUpdateTime(), creationAndLastUpdateTimeMatcher); + } + @Test @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) public void aupCreationFailsIfAupAlreadyDefined() throws JsonProcessingException, Exception { @@ -396,7 +534,7 @@ public void aupUpdateWorks() throws JsonProcessingException, Exception { aup.setUrl(UPDATED_AUP_URL); aup.setDescription(UPDATED_AUP_DESC); - aup.setSignatureValidityInDays(18L); + aup.setSignatureValidityInDays(31L); // Time travel 1 minute in the future Date then = new Date(now.getTime() + TimeUnit.MINUTES.toMillis(1)); @@ -416,7 +554,7 @@ public void aupUpdateWorks() throws JsonProcessingException, Exception { assertThat(updatedAup.getDescription(), equalTo(UPDATED_AUP_DESC)); assertThat(updatedAup.getCreationTime(), new DateEqualModulo1Second(now)); assertThat(updatedAup.getLastUpdateTime(), new DateEqualModulo1Second(now)); - assertThat(updatedAup.getSignatureValidityInDays(), equalTo(18L)); + assertThat(updatedAup.getSignatureValidityInDays(), equalTo(31L)); } } diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupReminderTaskTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupReminderTaskTests.java new file mode 100644 index 000000000..e5beeb017 --- /dev/null +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupReminderTaskTests.java @@ -0,0 +1,154 @@ +/** + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package it.infn.mw.iam.test.api.aup; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.Date; + +import org.junit.After; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import it.infn.mw.iam.IamLoginService; +import it.infn.mw.iam.core.web.aup.AupReminderTask; +import it.infn.mw.iam.persistence.model.IamAccount; +import it.infn.mw.iam.persistence.model.IamAup; +import it.infn.mw.iam.persistence.repository.IamAccountRepository; +import it.infn.mw.iam.persistence.repository.IamAupRepository; +import it.infn.mw.iam.persistence.repository.IamAupSignatureRepository; +import it.infn.mw.iam.persistence.repository.IamEmailNotificationRepository; +import it.infn.mw.iam.service.aup.DefaultAupSignatureCheckService; +import it.infn.mw.iam.test.core.CoreControllerTestSupport; +import it.infn.mw.iam.test.notification.NotificationTestConfig; +import it.infn.mw.iam.test.util.WithAnonymousUser; +import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest; +import it.infn.mw.iam.test.util.notification.MockNotificationDelivery; + +@RunWith(SpringRunner.class) +@IamMockMvcIntegrationTest +@SpringBootTest(classes = {IamLoginService.class, CoreControllerTestSupport.class, + NotificationTestConfig.class}, webEnvironment = WebEnvironment.MOCK) +@WithAnonymousUser +@TestPropertySource(properties = {"notification.disable=false"}) +public class AupReminderTaskTests extends AupTestSupport { + + @Autowired + private DefaultAupSignatureCheckService service; + + @Autowired + private IamAccountRepository accountRepo; + + @Autowired + private IamAupSignatureRepository signatureRepo; + + @Autowired + private IamEmailNotificationRepository notificationRepo; + + @Autowired + private AupReminderTask aupReminderTask; + + @Autowired + private MockNotificationDelivery notificationDelivery; + + @Autowired + private IamAupRepository aupRepo; + + @After + public void tearDown() { + notificationDelivery.clearDeliveredNotifications(); + aupRepo.deleteAll(); + } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupReminderEmailWorks() { + IamAup aup = buildDefaultAup(); + aup.setSignatureValidityInDays(30L); + aupRepo.save(aup); + + Date now = new Date(); + LocalDate today = LocalDate.now(); + LocalDate tomorrow = today.plusDays(1); + Date tomorrowDate = Date.from(tomorrow.atStartOfDay(ZoneId.systemDefault()).toInstant()); + + IamAccount testAccount = accountRepo.findByUsername("test") + .orElseThrow(() -> new AssertionError("Expected test account not found")); + + assertThat(service.needsAupSignature(testAccount), is(true)); + + signatureRepo.createSignatureForAccount(aup, testAccount, now); + + assertThat(service.needsAupSignature(testAccount), is(false)); + + assertThat(notificationRepo.countAupRemindersPerAccount(testAccount.getUserInfo().getEmail(), + tomorrowDate), equalTo(0)); + + aupReminderTask.sendAupReminders(); + notificationDelivery.sendPendingNotifications(); + assertThat(notificationRepo.countAupRemindersPerAccount(testAccount.getUserInfo().getEmail(), + tomorrowDate), equalTo(1)); + + } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupExpirationEmailWorks() { + IamAup aup = buildDefaultAup(); + aup.setSignatureValidityInDays(2L); + + LocalDate today = LocalDate.now(); + LocalDate twoDaysAgo = today.minusDays(2); + + Date date = Date.from(twoDaysAgo.atStartOfDay(ZoneId.systemDefault()).toInstant()); + aup.setCreationTime(date); + aup.setLastUpdateTime(date); + + aupRepo.save(aup); + + IamAccount testAccount = accountRepo.findByUsername("test") + .orElseThrow(() -> new AssertionError("Expected test account not found")); + + signatureRepo.createSignatureForAccount(aup, testAccount, date); + + assertThat( + notificationRepo.countAupExpirationMessPerAccount(testAccount.getUserInfo().getEmail()), + equalTo(0)); + + aupReminderTask.sendAupReminders(); + notificationDelivery.sendPendingNotifications(); + assertThat( + notificationRepo.countAupExpirationMessPerAccount(testAccount.getUserInfo().getEmail()), + equalTo(1)); + + aupReminderTask.sendAupReminders(); + notificationDelivery.sendPendingNotifications(); + assertThat( + notificationRepo.countAupExpirationMessPerAccount(testAccount.getUserInfo().getEmail()), + equalTo(1)); + + } +} diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupTestSupport.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupTestSupport.java index 336433a4c..80b7bd72d 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupTestSupport.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupTestSupport.java @@ -37,6 +37,7 @@ public IamAup buildDefaultAup() { aup.setCreationTime(now); aup.setLastUpdateTime(now); aup.setSignatureValidityInDays(365L); + aup.setAupRemindersInDays("30,15,1"); return aup; } diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/login/LoginTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/login/LoginTests.java index 74efa1586..7fbb1f033 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/login/LoginTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/login/LoginTests.java @@ -115,6 +115,7 @@ public void loginRedirectsToSignAupPageWhenNeeded() throws Exception { aup.setUrl("http://default-aup.org/"); aup.setDescription("AUP description"); aup.setSignatureValidityInDays(0L); + aup.setAupRemindersInDays("30,15,1"); aupRepo.save(aup); diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/RefreshTokenGranterTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/RefreshTokenGranterTests.java index c675a2203..d3bda38bc 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/RefreshTokenGranterTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/RefreshTokenGranterTests.java @@ -93,6 +93,7 @@ public void testTokenRefreshFailsIfAupIsNotSigned() throws Exception { aup.setUrl("http://default-aup.org/"); aup.setDescription("AUP description"); aup.setSignatureValidityInDays(0L); + aup.setAupRemindersInDays("30,15,1"); aupRepo.save(aup); diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/ResourceOwnerPasswordCredentialsTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/ResourceOwnerPasswordCredentialsTests.java index 7775a224a..7f89daa3a 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/ResourceOwnerPasswordCredentialsTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/ResourceOwnerPasswordCredentialsTests.java @@ -123,6 +123,7 @@ public void testResourceOwnerPasswordCredentialsFailsIfAupIsNotSigned() throws E aup.setUrl("http://default-aup.org/"); aup.setDescription("AUP description"); aup.setSignatureValidityInDays(0L); + aup.setAupRemindersInDays("30,15,1"); aupRepo.save(aup); diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/TokenExchangeTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/TokenExchangeTests.java index 8ea60bc2c..c4f367ecd 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/TokenExchangeTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/TokenExchangeTests.java @@ -178,6 +178,7 @@ public void testImpersonationFlowFailsIfAUPNotSigned() throws Exception { aup.setUrl("http://default-aup.org/"); aup.setDescription("AUP description"); aup.setSignatureValidityInDays(0L); + aup.setAupRemindersInDays("30,15,1"); aupRepo.save(aup); diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/authzcode/AuthorizationCodeTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/authzcode/AuthorizationCodeTests.java index 7b90fa9c9..3d1fa7718 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/authzcode/AuthorizationCodeTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/authzcode/AuthorizationCodeTests.java @@ -137,6 +137,7 @@ public void testOidcAuthorizationCodeFlowWithAUPSignature() throws Exception { aup.setUrl("http://default-aup.org/"); aup.setDescription("AUP description"); aup.setSignatureValidityInDays(0L); + aup.setAupRemindersInDays("30,15,1"); aupRepo.save(aup); diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/repository/IamAupRepositoryTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/repository/IamAupRepositoryTests.java index 2c606f6cb..dd0e46a47 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/repository/IamAupRepositoryTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/repository/IamAupRepositoryTests.java @@ -64,6 +64,7 @@ public void aupCreationWorks() { assertThat(aup.getCreationTime(), new DateEqualModulo1Second(creationTime)); assertThat(aup.getLastUpdateTime(), new DateEqualModulo1Second(creationTime)); assertThat(aup.getSignatureValidityInDays(), equalTo(365L)); + assertThat(aup.getAupRemindersInDays(), equalTo("30,15,1")); } diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/scim/user/ScimUserCreationTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/scim/user/ScimUserCreationTests.java index 8a44ca106..d7fee48be 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/scim/user/ScimUserCreationTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/scim/user/ScimUserCreationTests.java @@ -494,7 +494,7 @@ public void testUserCreationWithAupSignatureIsIgnored() throws Exception { final String AUP_DESCRIPTION = "Test AUP"; final Date currentDate = new Date(); - AupDTO aup = new AupDTO(AUP_URL, "", AUP_DESCRIPTION, 0L, currentDate, currentDate); + AupDTO aup = new AupDTO(AUP_URL, "", AUP_DESCRIPTION, 0L, currentDate, currentDate, "30,15,1"); aupService.saveAup(aup); Calendar cal = Calendar.getInstance(); diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/service/IamAccountServiceTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/service/IamAccountServiceTests.java index fded5a4ad..40194b820 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/service/IamAccountServiceTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/service/IamAccountServiceTests.java @@ -64,6 +64,7 @@ import it.infn.mw.iam.core.user.exception.CredentialAlreadyBoundException; import it.infn.mw.iam.core.user.exception.InvalidCredentialException; import it.infn.mw.iam.core.user.exception.UserAlreadyExistsException; +import it.infn.mw.iam.notification.NotificationFactory; import it.infn.mw.iam.persistence.model.IamAccount; import it.infn.mw.iam.persistence.model.IamOidcId; import it.infn.mw.iam.persistence.model.IamSamlId; @@ -103,6 +104,9 @@ public class IamAccountServiceTests extends IamAccountServiceTestSupport { @Mock private OAuth2TokenEntityService tokenService; + @Mock + private NotificationFactory notificationFactory; + private Clock clock = Clock.fixed(NOW, ZoneId.systemDefault()); private DefaultIamAccountService accountService; @@ -128,7 +132,7 @@ public void setup() { when(passwordEncoder.encode(any())).thenReturn(PASSWORD); accountService = new DefaultIamAccountService(clock, accountRepo, groupRepo, authoritiesRepo, - passwordEncoder, eventPublisher, tokenService, accountClientRepo); + passwordEncoder, eventPublisher, tokenService, accountClientRepo, notificationFactory); } @Test(expected = NullPointerException.class) diff --git a/iam-persistence/src/main/java/it/infn/mw/iam/core/IamNotificationType.java b/iam-persistence/src/main/java/it/infn/mw/iam/core/IamNotificationType.java index 16ec24c16..ba3c26c74 100644 --- a/iam-persistence/src/main/java/it/infn/mw/iam/core/IamNotificationType.java +++ b/iam-persistence/src/main/java/it/infn/mw/iam/core/IamNotificationType.java @@ -16,5 +16,5 @@ package it.infn.mw.iam.core; public enum IamNotificationType { - CONFIRMATION, RESETPASSWD, ACTIVATED, REJECTED, GROUP_MEMBERSHIP, CLIENT_STATUS + CONFIRMATION, RESETPASSWD, ACTIVATED, REJECTED, GROUP_MEMBERSHIP, AUP_REMINDER, AUP_EXPIRATION, AUP_SIGNATURE_REQUEST, ACCOUNT_SUSPENDED, ACCOUNT_RESTORED, CLIENT_STATUS } diff --git a/iam-persistence/src/main/java/it/infn/mw/iam/persistence/model/IamAup.java b/iam-persistence/src/main/java/it/infn/mw/iam/persistence/model/IamAup.java index c39a926e2..0039e0746 100644 --- a/iam-persistence/src/main/java/it/infn/mw/iam/persistence/model/IamAup.java +++ b/iam-persistence/src/main/java/it/infn/mw/iam/persistence/model/IamAup.java @@ -50,6 +50,9 @@ public class IamAup implements Serializable { @Column(name = "sig_validity_days", nullable = false) Long signatureValidityInDays; + @Column(name = "aup_reminders_days", nullable = false) + String aupRemindersInDays; + @Temporal(TemporalType.TIMESTAMP) @Column(name = "creation_time", nullable = false) Date creationTime; @@ -137,6 +140,14 @@ public void setSignatureValidityInDays(Long signatureValidityInDays) { this.signatureValidityInDays = signatureValidityInDays; } + public String getAupRemindersInDays() { + return aupRemindersInDays; + } + + public void setAupRemindersInDays(String aupRemindersInDays) { + this.aupRemindersInDays = aupRemindersInDays; + } + public Date getCreationTime() { return creationTime; diff --git a/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAccountRepository.java b/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAccountRepository.java index 225a9637e..38c196d60 100644 --- a/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAccountRepository.java +++ b/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAccountRepository.java @@ -141,7 +141,6 @@ Page findByLabelNameAndValue(@Param("name") String name, @Param("val @Query("select a from IamAccount a where a.active = TRUE") Page findActiveAccounts(Pageable op); - @Modifying @Query("delete from IamAccountGroupMembership") void deleteAllAccountGroupMemberships(); diff --git a/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAupSignatureRepository.java b/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAupSignatureRepository.java index cdbbeec4d..69e324df7 100644 --- a/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAupSignatureRepository.java +++ b/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAupSignatureRepository.java @@ -15,11 +15,13 @@ */ package it.infn.mw.iam.persistence.repository; - - +import java.util.Date; +import java.util.List; import java.util.Optional; +import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.data.repository.query.Param; import it.infn.mw.iam.persistence.model.IamAccount; import it.infn.mw.iam.persistence.model.IamAup; @@ -28,8 +30,12 @@ public interface IamAupSignatureRepository extends PagingAndSortingRepository, IamAupSignatureRepositoryCustom { + @Query("select ias from IamAupSignature ias where ias.aup = :aup and :signatureTime <= ias.signatureTime and ias.signatureTime < :plusOne") + List findByAupAndSignatureTime(@Param("aup") IamAup aup, + @Param("signatureTime") Date signatureTime, @Param("plusOne") Date plusOne); + Optional findByAupAndAccount(IamAup aup, IamAccount account); - + Long deleteByAup(IamAup aup); - + } diff --git a/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamEmailNotificationRepository.java b/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamEmailNotificationRepository.java index fdb932798..16f970bdc 100644 --- a/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamEmailNotificationRepository.java +++ b/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamEmailNotificationRepository.java @@ -46,4 +46,17 @@ List findByStatusWithUpdateTime( Integer countByDeliveryStatus(IamDeliveryStatus deliveryStatus); List findByNotificationType(IamNotificationType notificationType); + + @Query("select count(n) from IamEmailNotification n join n.receivers r where n.notificationType = it.infn.mw.iam.core.IamNotificationType.AUP_REMINDER" + + " and CURRENT_DATE <= n.lastUpdate and n.lastUpdate < :tomorrow" + + " and n.deliveryStatus <> it.infn.mw.iam.core.IamDeliveryStatus.DELIVERY_ERROR" + + " and r.emailAddress = :email_address") + Integer countAupRemindersPerAccount(@Param("email_address") String emailAddress, + @Param("tomorrow") Date tomorrow); + + @Query("select count(n) from IamEmailNotification n join n.receivers r where n.notificationType = it.infn.mw.iam.core.IamNotificationType.AUP_EXPIRATION" + + " and n.deliveryStatus <> it.infn.mw.iam.core.IamDeliveryStatus.DELIVERY_ERROR" + + " and r.emailAddress = :email_address") + Integer countAupExpirationMessPerAccount(@Param("email_address") String emailAddress); + } diff --git a/iam-persistence/src/main/resources/db/migration/h2/V105__add_aup_reminders.sql b/iam-persistence/src/main/resources/db/migration/h2/V105__add_aup_reminders.sql new file mode 100644 index 000000000..101cb09f8 --- /dev/null +++ b/iam-persistence/src/main/resources/db/migration/h2/V105__add_aup_reminders.sql @@ -0,0 +1 @@ +ALTER TABLE iam_aup ADD COLUMN aup_reminders_days VARCHAR(128) NOT NULL DEFAULT '30,15,1'; \ No newline at end of file diff --git a/iam-persistence/src/main/resources/db/migration/h2/V19__aup_tables.sql b/iam-persistence/src/main/resources/db/migration/h2/V19__aup_tables.sql index 18f449f46..8ad7b522c 100644 --- a/iam-persistence/src/main/resources/db/migration/h2/V19__aup_tables.sql +++ b/iam-persistence/src/main/resources/db/migration/h2/V19__aup_tables.sql @@ -3,7 +3,7 @@ CREATE TABLE iam_aup (ID BIGINT IDENTITY NOT NULL, description VARCHAR(128), last_update_time TIMESTAMP NOT NULL, name VARCHAR(36) NOT NULL UNIQUE, - sig_validity_days BIGINT NOT NULL, + sig_validity_days BIGINT NOT NULL, text LONGVARCHAR NOT NULL, PRIMARY KEY (ID)); diff --git a/iam-persistence/src/main/resources/db/migration/mysql/V105__add_aup_reminders.sql b/iam-persistence/src/main/resources/db/migration/mysql/V105__add_aup_reminders.sql new file mode 100644 index 000000000..101cb09f8 --- /dev/null +++ b/iam-persistence/src/main/resources/db/migration/mysql/V105__add_aup_reminders.sql @@ -0,0 +1 @@ +ALTER TABLE iam_aup ADD COLUMN aup_reminders_days VARCHAR(128) NOT NULL DEFAULT '30,15,1'; \ No newline at end of file diff --git a/iam-voms-aa/src/test/java/it/infn/mw/voms/VomsAcTests.java b/iam-voms-aa/src/test/java/it/infn/mw/voms/VomsAcTests.java index 493d2a448..dfcb709c2 100644 --- a/iam-voms-aa/src/test/java/it/infn/mw/voms/VomsAcTests.java +++ b/iam-voms-aa/src/test/java/it/infn/mw/voms/VomsAcTests.java @@ -165,6 +165,7 @@ public void userWithExpiredAUPDoesNotGetAc() throws Exception { aup.setUrl("http://default-aup.org/"); aup.setDescription("AUP description"); aup.setSignatureValidityInDays(0L); + aup.setAupRemindersInDays("30,15,1"); aupRepo.save(aup); From 4eff6bcea7850336879088350e44686ea4e65314 Mon Sep 17 00:00:00 2001 From: garaimanoj <99975605+garaimanoj@users.noreply.github.com> Date: Thu, 25 Jul 2024 14:13:12 +0100 Subject: [PATCH 13/22] Add groups enrollment logic to be applied after users registration (#793) --- .../it/infn/mw/iam/config/IamProperties.java | 31 ++++++++++ .../core/user/DefaultIamAccountService.java | 25 ++++++++- .../test/service/IamAccountServiceTests.java | 56 ++++++++++++++++++- 3 files changed, 109 insertions(+), 3 deletions(-) diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java b/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java index 239e33951..2b9064c42 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java @@ -232,6 +232,8 @@ public static class RegistrationProperties { Map fields; + List defaultGroups; + public boolean isShowRegistrationButtonInLoginPage() { return showRegistrationButtonInLoginPage; } @@ -287,6 +289,14 @@ public Map getFields() { public void setFields(Map fields) { this.fields = fields; } + + public List getDefaultGroups() { + return defaultGroups; + } + + public void setDefaultGroups(List defaultGroups) { + this.defaultGroups = defaultGroups; + } } public static class DeviceCodeProperties { @@ -559,6 +569,27 @@ public void setTrackLastUsed(boolean trackLastUsed) { } } + public static class DefaultGroup { + private String name; + private String enrollment = "INSERT"; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEnrollment() { + return enrollment; + } + + public void setEnrollment(String enrollment) { + this.enrollment = enrollment; + } + } + private String host; private String issuer; diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/core/user/DefaultIamAccountService.java b/iam-login-service/src/main/java/it/infn/mw/iam/core/user/DefaultIamAccountService.java index e2eb9911c..81c3857a9 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/core/user/DefaultIamAccountService.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/core/user/DefaultIamAccountService.java @@ -28,6 +28,7 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; +import java.util.Objects; import org.mitre.oauth2.model.OAuth2AccessTokenEntity; import org.mitre.oauth2.model.OAuth2RefreshTokenEntity; @@ -51,6 +52,9 @@ import it.infn.mw.iam.audit.events.account.group.GroupMembershipRemovedEvent; import it.infn.mw.iam.audit.events.account.label.AccountLabelRemovedEvent; import it.infn.mw.iam.audit.events.account.label.AccountLabelSetEvent; +import it.infn.mw.iam.config.IamProperties; +import it.infn.mw.iam.config.IamProperties.DefaultGroup; +import it.infn.mw.iam.core.group.DefaultIamGroupService; import it.infn.mw.iam.core.user.exception.CredentialAlreadyBoundException; import it.infn.mw.iam.core.user.exception.InvalidCredentialException; import it.infn.mw.iam.core.user.exception.UserAlreadyExistsException; @@ -83,12 +87,15 @@ public class DefaultIamAccountService implements IamAccountService, ApplicationE private final OAuth2TokenEntityService tokenService; private final IamAccountClientRepository accountClientRepo; private final NotificationFactory notificationFactory; + private final IamProperties iamProperties; + private final DefaultIamGroupService iamGroupService; public DefaultIamAccountService(Clock clock, IamAccountRepository accountRepo, IamGroupRepository groupRepo, IamAuthoritiesRepository authoritiesRepo, PasswordEncoder passwordEncoder, ApplicationEventPublisher eventPublisher, OAuth2TokenEntityService tokenService, IamAccountClientRepository accountClientRepo, - NotificationFactory notificationFactory) { + NotificationFactory notificationFactory, IamProperties iamProperties, + DefaultIamGroupService iamGroupService) { this.clock = clock; this.accountRepo = accountRepo; @@ -99,6 +106,8 @@ public DefaultIamAccountService(Clock clock, IamAccountRepository accountRepo, this.tokenService = tokenService; this.accountClientRepo = accountClientRepo; this.notificationFactory = notificationFactory; + this.iamProperties = iamProperties; + this.iamGroupService = iamGroupService; } private void labelSetEvent(IamAccount account, IamLabel label) { @@ -181,10 +190,22 @@ public IamAccount createAccount(IamAccount account) { eventPublisher.publishEvent(new AccountCreatedEvent(this, account, "Account created for user " + account.getUsername())); - + + addToDefaultGroups(account); return account; } + private void addToDefaultGroups(IamAccount account) { + List defaultGroups = iamProperties.getRegistration().getDefaultGroups(); + if (Objects.nonNull(defaultGroups)) { + defaultGroups.forEach(group -> { + if ("INSERT".equalsIgnoreCase(group.getEnrollment())) { + iamGroupService.findByName(group.getName()).ifPresent(iamGroup -> addToGroup(account, iamGroup)); + } + }); + } + } + protected void removeClientLinks(IamAccount account) { accountClientRepo.deleteByAccount(account); diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/service/IamAccountServiceTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/service/IamAccountServiceTests.java index 40194b820..67ccf07df 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/service/IamAccountServiceTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/service/IamAccountServiceTests.java @@ -39,6 +39,7 @@ import java.util.Arrays; import java.util.Calendar; import java.util.Date; +import java.util.List; import java.util.Optional; import org.junit.Before; @@ -59,6 +60,9 @@ import com.google.common.collect.Sets; import it.infn.mw.iam.audit.events.account.AccountEndTimeUpdatedEvent; +import it.infn.mw.iam.config.IamProperties; +import it.infn.mw.iam.config.IamProperties.DefaultGroup; +import it.infn.mw.iam.core.group.DefaultIamGroupService; import it.infn.mw.iam.core.time.TimeProvider; import it.infn.mw.iam.core.user.DefaultIamAccountService; import it.infn.mw.iam.core.user.exception.CredentialAlreadyBoundException; @@ -66,6 +70,8 @@ import it.infn.mw.iam.core.user.exception.UserAlreadyExistsException; import it.infn.mw.iam.notification.NotificationFactory; import it.infn.mw.iam.persistence.model.IamAccount; +import it.infn.mw.iam.persistence.model.IamAccountGroupMembership; +import it.infn.mw.iam.persistence.model.IamGroup; import it.infn.mw.iam.persistence.model.IamOidcId; import it.infn.mw.iam.persistence.model.IamSamlId; import it.infn.mw.iam.persistence.model.IamSshKey; @@ -78,6 +84,8 @@ @RunWith(MockitoJUnitRunner.class) public class IamAccountServiceTests extends IamAccountServiceTestSupport { + private static final String TEST_GROUP_1 = "Test-group-1"; + public static final Instant NOW = Instant.parse("2021-01-01T00:00:00.00Z"); @Mock @@ -111,6 +119,14 @@ public class IamAccountServiceTests extends IamAccountServiceTestSupport { private DefaultIamAccountService accountService; + @Mock + private DefaultIamGroupService iamGroupService; + + @Mock + private IamProperties iamProperties; + + private IamProperties.RegistrationProperties registrationProperties = new IamProperties.RegistrationProperties(); + @Captor private ArgumentCaptor eventCaptor; @@ -130,9 +146,10 @@ public void setup() { when(authoritiesRepo.findByAuthority(anyString())).thenReturn(Optional.empty()); when(authoritiesRepo.findByAuthority("ROLE_USER")).thenReturn(Optional.of(ROLE_USER_AUTHORITY)); when(passwordEncoder.encode(any())).thenReturn(PASSWORD); + when(iamProperties.getRegistration()).thenReturn(registrationProperties); accountService = new DefaultIamAccountService(clock, accountRepo, groupRepo, authoritiesRepo, - passwordEncoder, eventPublisher, tokenService, accountClientRepo, notificationFactory); + passwordEncoder, eventPublisher, tokenService, accountClientRepo, notificationFactory, iamProperties, iamGroupService); } @Test(expected = NullPointerException.class) @@ -847,4 +864,41 @@ public void testSetEndTimeWorksForNonNullDate() { assertThat(e.getAccount().getEndTime(), is(newEndTime)); } + @Test + public void testNewAccountAddedToDefaultGroups() { + IamAccount account = cloneAccount(CICCIO_ACCOUNT); + + IamGroup testGroup = new IamGroup(); + testGroup.setName(TEST_GROUP_1); + DefaultGroup defaultGroup = new DefaultGroup(); + defaultGroup.setName(TEST_GROUP_1); + defaultGroup.setEnrollment("INSERT"); + List defaultGroups = Arrays.asList(defaultGroup); + + registrationProperties.setDefaultGroups(defaultGroups); + when(iamGroupService.findByName(TEST_GROUP_1)).thenReturn(Optional.of(testGroup)); + + account = accountService.createAccount(account); + + assertTrue(getGroup(account).equals(testGroup)); + } + + private IamGroup getGroup(IamAccount account) { + Optional groupMembershipOptional = account.getGroups().stream().findFirst(); + if (groupMembershipOptional.isPresent()) { + return groupMembershipOptional.get().getGroup(); + } + return null; + } + + @Test + public void testNoDefaultGroupsAddedWhenDefaultGroupsNotGiven() { + IamAccount account = cloneAccount(CICCIO_ACCOUNT); + + account = accountService.createAccount(account); + + Optional groupMembershipOptional = account.getGroups().stream().findFirst(); + assertFalse(groupMembershipOptional.isPresent()); + } + } From 6c9d2a471822294b435c76643e51021ec4db4d3b Mon Sep 17 00:00:00 2001 From: Roberta Miccoli <85555840+rmiccoli@users.noreply.github.com> Date: Tue, 30 Jul 2024 16:40:56 +0200 Subject: [PATCH 14/22] Refresh token flow not allowed for suspended clients (#814) --- .../test/oauth/RefreshTokenGranterTests.java | 50 +++++++++++++++++++ pom.xml | 2 +- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/RefreshTokenGranterTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/RefreshTokenGranterTests.java index d3bda38bc..057a46d7c 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/RefreshTokenGranterTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/RefreshTokenGranterTests.java @@ -24,6 +24,7 @@ import org.junit.Test; import org.junit.runner.RunWith; +import org.mitre.oauth2.model.ClientDetailsEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; @@ -34,6 +35,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import it.infn.mw.iam.IamLoginService; +import it.infn.mw.iam.api.client.service.ClientService; +import it.infn.mw.iam.api.client.util.ClientSuppliers; import it.infn.mw.iam.persistence.model.IamAup; import it.infn.mw.iam.persistence.repository.IamAccountRepository; import it.infn.mw.iam.persistence.repository.IamAupRepository; @@ -58,6 +61,9 @@ public class RefreshTokenGranterTests { @Autowired private IamAccountRepository accountRepo; + @Autowired + private ClientService clientService; + @Autowired private MockMvc mvc; @@ -158,4 +164,48 @@ public void testRefreshFlowNotAllowedIfUserIsSuspended() throws Exception { accountRepo.findByUsername("test").get().setActive(true); } + @Test + public void testRefreshFlowNotAllowedIfClientIsSuspended() throws Exception { + + String clientId = "password-grant"; + String clientSecret = "secret"; + + // @formatter:off + String response = mvc.perform(post("/token") + .with(httpBasic(clientId, clientSecret)) + .param("grant_type", "password") + .param("username", USERNAME) + .param("password", PASSWORD) + .param("scope", SCOPE)) + .andExpect(status().isOk()) + .andReturn() + .getResponse() + .getContentAsString(); + // @formatter:on + + DefaultOAuth2AccessToken tokenResponse = + mapper.readValue(response, DefaultOAuth2AccessToken.class); + + String refreshToken = tokenResponse.getRefreshToken().toString(); + + ClientDetailsEntity client = clientService.findClientByClientId(clientId) + .orElseThrow(ClientSuppliers.clientNotFound(clientId)); + + client.setActive(false); + clientService.updateClient(client); + + // @formatter:off + mvc.perform(post("/token") + .with(httpBasic(clientId, clientSecret)) + .param("grant_type", "refresh_token") + .param("refresh_token", refreshToken)) + .andExpect(status().isUnauthorized()) + .andExpect(jsonPath("$.error").value("invalid_client")) + .andExpect(jsonPath("$.error_description").value("Client is suspended: " + clientId)); + // @formatter:on + + client.setActive(true); + clientService.updateClient(client); + } + } diff --git a/pom.xml b/pom.xml index 3390c7561..755656453 100644 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ 1.16.2 - 1.3.6.cnaf-20240711 + 1.3.6.cnaf-20240725 2.5.2.RELEASE 3.3.2 From 7c8165488f2f84767676f70c7580ce26fc292039 Mon Sep 17 00:00:00 2001 From: Stefano Date: Wed, 31 Jul 2024 18:38:20 +0200 Subject: [PATCH 15/22] Update angular-jwt script link (#822) --- iam-test-client/src/main/resources/templates/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iam-test-client/src/main/resources/templates/index.html b/iam-test-client/src/main/resources/templates/index.html index bef2168a7..b1c437fdd 100644 --- a/iam-test-client/src/main/resources/templates/index.html +++ b/iam-test-client/src/main/resources/templates/index.html @@ -106,7 +106,7 @@

INDIGO IAM Test Client Application

- + + diff --git a/iam-login-service/src/main/webapp/WEB-INF/views/iam/resetPassword.jsp b/iam-login-service/src/main/webapp/WEB-INF/views/iam/resetPassword.jsp index 80c022c27..7e8c40f27 100644 --- a/iam-login-service/src/main/webapp/WEB-INF/views/iam/resetPassword.jsp +++ b/iam-login-service/src/main/webapp/WEB-INF/views/iam/resetPassword.jsp @@ -27,76 +27,88 @@ + - - -
-
Error: ${errorMessage}
-
-
- - -
-

- Set your password -

-

- Your password has been reset successfully! -

+ + +
+
Error: ${errorMessage}
+
+
+ +
+

+ Set your password +

+

+ Your password has been reset successfully! +

-
+ + + + - -
-
+
- - Please provide a password - The password must be at least 6 characters long -
+ + Your password + must be strong and meet the following criteria: +
    +
  • At least 8 characters long
  • +
  • Include at least one uppercase letter
  • +
  • Include at least one lowercase letter
  • +
  • Include at least one number
  • +
  • Include at least one special character (e.g., @$!%*?&)
  • +
+
+ Please + provide a password
- -
-
+ +
+
- - Please confirm your password - Passwords do not match -
+ + Please + confirm your password + + Passwords do not match
- -
-
- + +
+
+ -
- -
- - - +
+ +
+ + + \ No newline at end of file diff --git a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/controllers/edit-password.controller.js b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/controllers/edit-password.controller.js index f5fb09fb3..3b238e7e9 100644 --- a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/controllers/edit-password.controller.js +++ b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/controllers/edit-password.controller.js @@ -28,7 +28,7 @@ $scope, $state, $uibModalInstance, Utils, ResetPasswordService, user) { var editPasswordCtrl = this; - editPasswordCtrl.passwordMinlength = 6; + editPasswordCtrl.passwordMinlength = 8; editPasswordCtrl.userToEdit = user; editPasswordCtrl.dismiss = dismiss; diff --git a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/directives/password.directive.js b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/directives/password.directive.js new file mode 100644 index 000000000..efb613b00 --- /dev/null +++ b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/directives/password.directive.js @@ -0,0 +1,30 @@ +/* + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +angular.module('dashboardApp').directive('strongPassword', function () { + return { + require: 'ngModel', + link: function (scope, element, attrs, ngModel) { + ngModel.$parsers.unshift(function (viewValue) { + var passwordStrengthRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[(!"#$%&'()*+,-./:;<=>?@[\]\^ `{|}~)])([^\r\t\v\f\n]+).{8,}$/; + var isStrong = passwordStrengthRegex.test(viewValue); + + ngModel.$setValidity('strongPassword', isStrong); + + return viewValue; + }); + } + }; +}); \ No newline at end of file diff --git a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/services/passwordreset.service.js b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/services/passwordreset.service.js index bbe682a0b..4b937cbfb 100644 --- a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/services/passwordreset.service.js +++ b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/services/passwordreset.service.js @@ -19,66 +19,64 @@ angular.module('dashboardApp').factory('ResetPasswordService', ResetPasswordServ ResetPasswordService.$inject = ['$http', '$httpParamSerializerJQLike']; -function ResetPasswordService($http, $httpParamSerializerJQLike){ - +function ResetPasswordService($http, $httpParamSerializerJQLike) { + var service = { - forgotPassword : forgotPassword, - changePassword : changePassword, - updatePassword : updatePassword + forgotPassword: forgotPassword, + changePassword: changePassword, + updatePassword: updatePassword }; - + return service; - - function forgotPassword(email){ - + + function forgotPassword(email) { + var data = $httpParamSerializerJQLike({ - email: email + email: email }); - + var config = { - headers : { - 'Content-Type' : 'application/x-www-form-urlencoded' + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' } - } - + } + return $http.post('/iam/password-reset/token', data, config); - + }; - - function changePassword(resetKey, newPassword){ - var data = $httpParamSerializerJQLike({ - token : resetKey, - password : newPassword - }); - + + function changePassword(resetKey, newPassword) { + var body = JSON.stringify({ "updatedPassword": newPassword, "token": resetKey, }); + var config = { - headers : { - 'Content-Type': 'application/x-www-form-urlencoded' + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' } } - - return $http.post('/iam/password-reset', data, config); + + return $http.post('/iam/password-reset', body, config); } - function updatePassword(oldPassword, newPassword){ + function updatePassword(oldPassword, newPassword) { var config = { - headers : { - 'Accept' : 'text/plain', + headers: { + 'Accept': 'text/plain', 'Content-Type': 'application/x-www-form-urlencoded' }, - transformRequest: function(obj) { - var str = []; - for(var p in obj) - str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); - return str.join("&"); - } + transformRequest: function (obj) { + var str = []; + for (var p in obj) + str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); + return str.join("&"); + } }; var data = { - 'currentPassword' : oldPassword, - 'updatedPassword' : newPassword - }; + 'currentPassword': oldPassword, + 'updatedPassword': newPassword + }; return $http.post('/iam/password-update', data, config); } } \ No newline at end of file diff --git a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/templates/home/editpassword.html b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/templates/home/editpassword.html index 6480ac737..262ca09bc 100644 --- a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/templates/home/editpassword.html +++ b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/templates/home/editpassword.html @@ -27,40 +27,79 @@
-
- - - This is a required field +
+ + + This is + a required field
-
- - - This is a required field - Minimum length required is {{editPasswordCtrl.passwordMinlength}} +
+ + + This is a required + field + Your password must be strong and meet the following criteria: +
    +
  • At least 8 characters long
  • +
  • Include at least one uppercase letter
  • +
  • Include at least one lowercase letter
  • +
  • Include at least one number
  • +
  • Include at least one special character (e.g., @$!%*?&)
  • +
+
+ Minimum length + required is {{editPasswordCtrl.passwordMinlength}}
-
- - - This is a required field - Minimum length required is {{editPasswordCtrl.passwordMinlength}} - Must match the previous entry +
+ + + This is + a required field + Minimum + length required is {{editPasswordCtrl.passwordMinlength}} + Must + match the previous entry
- + \ No newline at end of file diff --git a/iam-login-service/src/main/webapp/resources/iam/js/directive/password.directive.js b/iam-login-service/src/main/webapp/resources/iam/js/directive/password.directive.js new file mode 100644 index 000000000..b949da8a8 --- /dev/null +++ b/iam-login-service/src/main/webapp/resources/iam/js/directive/password.directive.js @@ -0,0 +1,28 @@ +/* + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +angular.module('passwordResetApp').directive('strongPassword', function () { + return { + require: 'ngModel', + link: function (scope, element, attrs, ngModel) { + ngModel.$parsers.unshift(function (viewValue) { + var passwordStrengthRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!"#$%&'()*+,-./:;<=>?@[\]\^ `{|}~]).{8,}([^\r\t\v\f\n]+)$/; + var isStrong = passwordStrengthRegex.test(viewValue); + ngModel.$setValidity('strongPassword', isStrong); + return viewValue; + }); + } + }; +}); \ No newline at end of file diff --git a/iam-login-service/src/main/webapp/resources/iam/js/service/passwordreset.service.js b/iam-login-service/src/main/webapp/resources/iam/js/service/passwordreset.service.js index 81e539767..6c22b5d22 100644 --- a/iam-login-service/src/main/webapp/resources/iam/js/service/passwordreset.service.js +++ b/iam-login-service/src/main/webapp/resources/iam/js/service/passwordreset.service.js @@ -19,43 +19,42 @@ angular.module('passwordResetApp').factory('ResetPasswordService', ResetPassword ResetPasswordService.$inject = ['$http', '$httpParamSerializerJQLike']; -function ResetPasswordService($http, $httpParamSerializerJQLike){ - +function ResetPasswordService($http, $httpParamSerializerJQLike) { + var service = { - forgotPassword : forgotPassword, - changePassword : changePassword, + forgotPassword: forgotPassword, + changePassword: changePassword, }; - + return service; - - function forgotPassword(email){ - + + function forgotPassword(email) { + var data = $httpParamSerializerJQLike({ - email: email + email: email }); - + var config = { - headers : { - 'Content-Type' : 'application/x-www-form-urlencoded' + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' } - } - + } + return $http.post('/iam/password-reset/token', data, config); - + }; - - function changePassword(resetKey, newPassword){ - var data = $httpParamSerializerJQLike({ - token : resetKey, - password : newPassword - }); - + + function changePassword(resetKey, newPassword) { + + var data = JSON.stringify({ "updatedPassword": newPassword, "token": resetKey }); + var config = { - headers : { - 'Content-Type': 'application/x-www-form-urlencoded' + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' } } - + return $http.post('/iam/password-reset', data, config); } } \ No newline at end of file diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordEncodingTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordEncodingTests.java index 068e2dc15..257a58ea9 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordEncodingTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordEncodingTests.java @@ -36,6 +36,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; +import it.infn.mw.iam.api.account.password_reset.ResetPasswordDTO; import it.infn.mw.iam.persistence.model.IamAccount; import it.infn.mw.iam.persistence.repository.IamAccountRepository; import it.infn.mw.iam.registration.PersistentUUIDTokenGenerator; @@ -76,11 +77,35 @@ public void cleanupOAuthUser() { mockOAuth2Filter.cleanupSecurityContext(); } + @Test + public void testNoValidResetToken() throws Exception { + String username = "password_encoded"; + + RegistrationRequestDto request = new RegistrationRequestDto(); + request.setGivenname("Password encoded"); + request.setFamilyname("Test"); + request.setEmail("password_encoded@example.org"); + request.setUsername(username); + request.setNotes("Some short notes..."); + + mvc + .perform(post("/registration/create").contentType(MediaType.APPLICATION_JSON) + .content(mapper.writeValueAsString(request))) + .andExpect(status().isOk()) + .andReturn() + .getResponse() + .getContentAsString(); + + String confirmationKey = "NoValidToken"; + mvc.perform(get("/registration/confirm/{token}", confirmationKey).contentType(APPLICATION_JSON)) + .andExpect(status().isNotFound()); + + } @Test public void testPasswordEncoded() throws Exception { String username = "password_encoded"; - String newPassword = "secure_password"; + String newPassword = "Secure_P@ssw0rd!"; RegistrationRequestDto request = new RegistrationRequestDto(); request.setGivenname("Password encoded"); @@ -100,9 +125,7 @@ public void testPasswordEncoded() throws Exception { request = mapper.readValue(rs, RegistrationRequestDto.class); String confirmationKey = tokenGenerator.getLastToken(); - mvc - .perform(get("/registration/confirm/{token}", confirmationKey) - .contentType(APPLICATION_JSON)) + mvc.perform(get("/registration/confirm/{token}", confirmationKey).contentType(APPLICATION_JSON)) .andExpect(status().isOk()); mvc.perform(post("/registration/approve/{uuid}", request.getUuid()) @@ -111,19 +134,20 @@ public void testPasswordEncoded() throws Exception { String resetKey = tokenGenerator.getLastToken(); + ResetPasswordDTO dto = new ResetPasswordDTO(); + dto.setUpdatedPassword(newPassword); + dto.setToken(resetKey); + mvc - .perform(post("/iam/password-reset").param("token", resetKey) - .param("password", newPassword) + .perform(post("/iam/password-reset").content(mapper.writeValueAsString(dto)) .with(authentication(adminAuthentication())) .contentType(MediaType.APPLICATION_JSON)) - .andExpect(MockMvcResultMatchers.status().isOk()); + .andExpect(MockMvcResultMatchers.status().isCreated()); IamAccount account = iamAccountRepository.findByUuid(request.getAccountId()) .orElseThrow(() -> new AssertionError("Expected account not found")); Assert.assertTrue(passwordEncoder.matches(newPassword, account.getPassword())); - - } } diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordResetTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordResetTests.java index 7c489a1a2..bf4440b31 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordResetTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordResetTests.java @@ -15,6 +15,10 @@ */ package it.infn.mw.iam.test.api.account.password; +import static it.infn.mw.iam.util.RegexUtil.PASSWORD_REGEX_MESSAGE_ERROR; +import static java.lang.String.format; +import static org.springframework.http.MediaType.APPLICATION_JSON; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.head; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -30,7 +34,14 @@ import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.JsonObject; + import it.infn.mw.iam.IamLoginService; +import it.infn.mw.iam.api.account.password_reset.ResetPasswordDTO; +import it.infn.mw.iam.api.common.error.NoSuchAccountError; +import it.infn.mw.iam.persistence.model.IamAccount; +import it.infn.mw.iam.persistence.repository.IamAccountRepository; import it.infn.mw.iam.registration.PersistentUUIDTokenGenerator; import it.infn.mw.iam.test.core.CoreControllerTestSupport; import it.infn.mw.iam.test.notification.NotificationTestConfig; @@ -39,7 +50,6 @@ import it.infn.mw.iam.test.util.notification.MockNotificationDelivery; import it.infn.mw.iam.test.util.oauth.MockOAuth2Filter; - @RunWith(SpringRunner.class) @IamMockMvcIntegrationTest @SpringBootTest(classes = {IamLoginService.class, NotificationTestConfig.class, @@ -47,7 +57,6 @@ @WithAnonymousUser public class PasswordResetTests { - @Autowired private PersistentUUIDTokenGenerator tokenGenerator; @@ -60,6 +69,12 @@ public class PasswordResetTests { @Autowired private MockMvc mvc; + @Autowired + private ObjectMapper mapper; + + @Autowired + private IamAccountRepository accountRepo; + @Before public void setup() { mockOAuth2Filter.cleanupSecurityContext(); @@ -75,7 +90,7 @@ public void tearDown() { public void testChangePassword() throws Exception { String testEmail = "test@iam.test"; - String newPassword = "secure_password"; + String newPassword = "Secure_P@ssw0rd!"; mvc.perform(post("/iam/password-reset/token").param("email", testEmail)) .andExpect(status().isOk()); @@ -84,14 +99,90 @@ public void testChangePassword() throws Exception { mvc.perform(head("/iam/password-reset/token/{token}", resetToken)).andExpect(status().isOk()); + ResetPasswordDTO request = new ResetPasswordDTO(); + request.setUpdatedPassword(newPassword); + request.setToken(resetToken); + mvc - .perform( - post("/iam/password-reset").param("token", resetToken).param("password", newPassword)) - .andExpect(status().isOk()); + .perform(post("/iam/password-reset").contentType(APPLICATION_JSON) + .content(mapper.writeValueAsString(request))) + .andExpect(status().isCreated()); mvc.perform(head("/iam/password-reset/token/{token}", resetToken)) .andExpect(status().isNotFound()); + } + + @Test + public void testChangePasswordWeak() throws Exception { + String testEmail = "test@iam.test"; + + String newPassword = "weakpassword"; + + mvc.perform(post("/iam/password-reset/token").param("email", testEmail)) + .andExpect(status().isOk()); + + String resetToken = tokenGenerator.getLastToken(); + + mvc.perform(head("/iam/password-reset/token/{token}", resetToken)).andExpect(status().isOk()); + + JsonObject jsonBody = new JsonObject(); + jsonBody.addProperty("updatedPassword", newPassword); + jsonBody.addProperty("token", resetToken); + + mvc + .perform( + post("/iam/password-reset").contentType(APPLICATION_JSON).content(jsonBody.toString())) + .andExpect(status().isBadRequest()) + .andExpect(MockMvcResultMatchers.content() + .string("Invalid reset password: [resetPasswordDTO.updatedPassword : " + + PASSWORD_REGEX_MESSAGE_ERROR + "]")); + } + + @Test + public void testChangePasswordWithTokenJustUsed() throws Exception { + String testEmail = "test@iam.test"; + String newPassword = "Secure_P@ssw0rd!"; + + mvc.perform(post("/iam/password-reset/token").param("email", testEmail)) + .andExpect(status().isOk()); + + String resetToken = tokenGenerator.getLastToken(); + + mvc.perform(head("/iam/password-reset/token/{token}", resetToken)).andExpect(status().isOk()); + + JsonObject jsonBody = new JsonObject(); + jsonBody.addProperty("updatedPassword", newPassword); + jsonBody.addProperty("token", resetToken); + + mvc + .perform( + post("/iam/password-reset").contentType(APPLICATION_JSON).content(jsonBody.toString())) + .andExpect(status().isCreated()); + + mvc + .perform( + post("/iam/password-reset").contentType(APPLICATION_JSON).content(jsonBody.toString())) + .andExpect(status().is4xxClientError()); + } + + @Test + public void testRedirectToResetPasswordPage() throws Exception { + String resetToken = tokenGenerator.getLastToken() + "
"; + mvc.perform(get("/iam/password-reset/token/{token}", resetToken)).andExpect(status().isOk()); + } + + @Test + public void testRedirectToResetPasswordPageWithValidResetKey() throws Exception { + String resetToken = tokenGenerator.generateToken(); + String testEmail = "test@iam.test"; + IamAccount account = accountRepo.findByEmail(testEmail) + .orElseThrow( + () -> new NoSuchAccountError(format("No account found for email '%s'", testEmail))); + account.setResetKey(resetToken); + accountRepo.save(account); + + mvc.perform(get("/iam/password-reset/token/{token}", resetToken)).andExpect(status().isOk()); } @Test @@ -99,28 +190,30 @@ public void testResetPasswordWithInvalidResetToken() throws Exception { String resetToken = "abcdefghilmnopqrstuvz"; - mvc.perform(head("/iam/password-reset/token/{token}", resetToken)).andExpect(status().isNotFound()); - + mvc.perform(head("/iam/password-reset/token/{token}", resetToken)) + .andExpect(status().isNotFound()); + } @Test public void testCreatePasswordResetTokenReturnsOkForUnknownAddress() throws Exception { String testEmail = "test@foo.bar"; - + mvc.perform(post("/iam/password-reset/token").param("email", testEmail)) - .andExpect(status().isOk()); + .andExpect(status().isOk()); } @Test public void testEmailValidationForPasswordResetTokenCreation() throws Exception { String invalidEmailAddress = "this_is_not_an_email"; - + mvc.perform(post("/iam/password-reset/token").param("email", invalidEmailAddress)) - .andExpect(status().isBadRequest()) - .andExpect(MockMvcResultMatchers.content().string("validation error: please specify a valid email address")); - + .andExpect(status().isBadRequest()) + .andExpect(MockMvcResultMatchers.content() + .string("validation error: please specify a valid email address")); + } } diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordUpdateTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordUpdateTests.java index 12d0db259..7a5227358 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordUpdateTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/account/password/PasswordUpdateTests.java @@ -52,10 +52,8 @@ public class PasswordUpdateTests { private final String USER_USERNAME = "password_tester_user"; private final String USER_PASSWORD = "password"; - private final ScimName USER_NAME = - ScimName.builder().givenName("TESTER").familyName("USER").build(); - private final ScimEmail USER_EMAIL = - ScimEmail.builder().email("password_tester_user@test.org").build(); + private final ScimName USER_NAME = ScimName.builder().givenName("TESTER").familyName("USER").build(); + private final ScimEmail USER_EMAIL = ScimEmail.builder().email("password_tester_user@test.org").build(); @Autowired private ScimUserProvisioning userService; @@ -71,13 +69,13 @@ public static void init() { public void testSetup() { testUser = userService.create(ScimUser.builder() - .active(true) - .addEmail(USER_EMAIL) - .name(USER_NAME) - .displayName(USER_USERNAME) - .userName(USER_USERNAME) - .password(USER_PASSWORD) - .build()); + .active(true) + .addEmail(USER_EMAIL) + .name(USER_NAME) + .displayName(USER_USERNAME) + .userName(USER_USERNAME) + .password(USER_PASSWORD) + .build()); } @After @@ -90,88 +88,86 @@ private ValidatableResponse doPost(String accessToken, String currentPassword, String newPassword) { return RestAssured.given() - .port(iamPort) - .auth() - .preemptive() - .oauth2(accessToken) - .formParam(PasswordUpdateController.CURRENT_PASSWORD, currentPassword) - .formParam(PasswordUpdateController.UPDATED_PASSWORD, newPassword) - .log() - .all(true) - .when() - .post(PasswordUpdateController.BASE_URL) - .then() - .log() - .all(true); + .port(iamPort) + .auth() + .preemptive() + .oauth2(accessToken) + .formParam(PasswordUpdateController.CURRENT_PASSWORD, currentPassword) + .formParam(PasswordUpdateController.UPDATED_PASSWORD, newPassword) + .log() + .all(true) + .when() + .post(PasswordUpdateController.BASE_URL) + .then() + .log() + .all(true); } private ValidatableResponse doPost(String currentPassword, String newPassword) { return RestAssured.given() - .port(iamPort) - .formParam(PasswordUpdateController.CURRENT_PASSWORD, currentPassword) - .formParam(PasswordUpdateController.UPDATED_PASSWORD, newPassword) - .log() - .all(true) - .when() - .post(PasswordUpdateController.BASE_URL) - .then() - .log() - .all(true); + .port(iamPort) + .formParam(PasswordUpdateController.CURRENT_PASSWORD, currentPassword) + .formParam(PasswordUpdateController.UPDATED_PASSWORD, newPassword) + .log() + .all(true) + .when() + .post(PasswordUpdateController.BASE_URL) + .then() + .log() + .all(true); } @Test public void testUpdatePassword() { String currentPassword = "password"; - String newPassword = "secure_password"; - + String newPassword = "Secure_p@ssw0rd"; String accessToken = passwordTokenGetter().port(iamPort) - .username(testUser.getUserName()) - .password(currentPassword) - .getAccessToken(); + .username(testUser.getUserName()) + .password(currentPassword) + .getAccessToken(); doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.OK.value()); passwordTokenGetter().port(iamPort) - .username(testUser.getUserName()) - .password(newPassword) - .getAccessToken(); + .username(testUser.getUserName()) + .password(newPassword) + .getAccessToken(); } @Test public void testUpdatePasswordFullAuthenticationRequired() { String currentPassword = "password"; - String newPassword = "secure_password"; + String newPassword = "Secure_P@ssw0rd!"; doPost(currentPassword, newPassword).statusCode(HttpStatus.UNAUTHORIZED.value()) - .body("error", equalTo("unauthorized")) - .body("error_description", - equalTo("Full authentication is required to access this resource")); + .body("error", equalTo("unauthorized")) + .body("error_description", + equalTo("Full authentication is required to access this resource")); } @Test public void testUpdateWrongPasswordProvided() { String currentPassword = "password"; - String newPassword = "secure_password"; + String newPassword = "Secure_P@ssw0rd!"; String accessToken = passwordTokenGetter().port(iamPort) - .username(testUser.getUserName()) - .password(currentPassword) - .getAccessToken(); + .username(testUser.getUserName()) + .password(currentPassword) + .getAccessToken(); doPost(accessToken, "thisisnotthecurrentpassword", newPassword) - .statusCode(HttpStatus.BAD_REQUEST.value()) - .body(equalTo("Wrong password provided")); + .statusCode(HttpStatus.BAD_REQUEST.value()); } @Test public void testUpdatePasswordForbiddenAccess() { String currentPassword = "password"; - String newPassword = "secure_password"; + String newPassword = "Secure_P@ssw0rd!"; String accessToken = TestUtils.clientCredentialsTokenGetter().port(iamPort).getAccessToken(); doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.FORBIDDEN.value()); @@ -183,12 +179,11 @@ public void testUpdatePasswordNullPasswordAccess() { String currentPassword = "password"; String newPassword = null; String accessToken = passwordTokenGetter().port(iamPort) - .username(testUser.getUserName()) - .password(currentPassword) - .getAccessToken(); + .username(testUser.getUserName()) + .password(currentPassword) + .getAccessToken(); - doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.BAD_REQUEST.value()) - .body(containsString("The password cannot be empty")); + doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.BAD_REQUEST.value()); } @Test @@ -197,12 +192,11 @@ public void testUpdatePasswordEmptyPasswordAccess() { String currentPassword = "password"; String newPassword = ""; String accessToken = passwordTokenGetter().port(iamPort) - .username(testUser.getUserName()) - .password(currentPassword) - .getAccessToken(); + .username(testUser.getUserName()) + .password(currentPassword) + .getAccessToken(); - doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.BAD_REQUEST.value()) - .body(containsString("The password cannot be empty")); + doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.BAD_REQUEST.value()); } @Test @@ -211,30 +205,68 @@ public void testUpdatePasswordTooShortPasswordAccess() { String currentPassword = "password"; String newPassword = "pass"; String accessToken = passwordTokenGetter().port(iamPort) - .username(testUser.getUserName()) - .password(currentPassword) - .getAccessToken(); + .username(testUser.getUserName()) + .password(currentPassword) + .getAccessToken(); + + doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.BAD_REQUEST.value()); + } + + @Test + public void testUpdatePasswordWithWeakPasswordAccess() { + + String currentPassword = "password"; + String newPassword = "newweakpassword"; + String accessToken = passwordTokenGetter().port(iamPort) + .username(testUser.getUserName()) + .password(currentPassword) + .getAccessToken(); + + doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.BAD_REQUEST.value()); + } + + @Test + public void testUpdatePasswordWithWeakPasswordWithoutSpecialChars() { + + String currentPassword = "password"; + String newPassword = "Password1"; + String accessToken = passwordTokenGetter().port(iamPort) + .username(testUser.getUserName()) + .password(currentPassword) + .getAccessToken(); + + doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.BAD_REQUEST.value()); + } + + @Test + public void testUpdatePasswordWithWeakPasswordWithoutNumbers() { + + String currentPassword = "password"; + String newPassword = "Sjfyt-hdddW!"; + String accessToken = passwordTokenGetter().port(iamPort) + .username(testUser.getUserName()) + .password(currentPassword) + .getAccessToken(); - doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.BAD_REQUEST.value()) - .body(containsString("The password must be at least 5 characters")); + doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.BAD_REQUEST.value()); } @Test public void testUpdatePasswordUserNotActive() throws Exception { String currentPassword = "password"; - String newPassword = "newPassword"; + String newPassword = "newP@ssw0rd"; String accessToken = passwordTokenGetter().port(iamPort) - .username(testUser.getUserName()) - .password(currentPassword) - .getAccessToken(); + .username(testUser.getUserName()) + .password(currentPassword) + .getAccessToken(); IamAccount account = accountRepository.findByUsername(testUser.getUserName()) - .orElseThrow(() -> new Exception("Test user not found")); + .orElseThrow(() -> new Exception("Test user not found")); account.setActive(false); accountRepository.save(account); doPost(accessToken, currentPassword, newPassword).statusCode(HttpStatus.CONFLICT.value()) - .body(containsString("Account is not active or email is not verified")); + .body(containsString("Account is not active or email is not verified")); } } diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/registration/RegistrationUsernameTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/registration/RegistrationUsernameTests.java index af9c23eb8..dc61d61c1 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/registration/RegistrationUsernameTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/registration/RegistrationUsernameTests.java @@ -67,7 +67,7 @@ public void teardown() { private RegistrationRequestDto createRegistrationRequest(String username) { - String email = username + "@example.org"; + String email = username.split("@")[0] + "@example.org"; RegistrationRequestDto request = new RegistrationRequestDto(); request.setGivenname("Test"); request.setFamilyname("User"); @@ -81,8 +81,8 @@ private RegistrationRequestDto createRegistrationRequest(String username) { @Test public void validUsernames() throws Exception { - final String[] validUsernames = {"bob", "b", "test$", "root", "test1234", "test_", "_test", - "username@example.com", "username@domain"}; + final String[] validUsernames = {"bob","test$", "root", "test1234", "test_", "_test", + "username1@example.com", "username2@domain"}; for (String u : validUsernames) { RegistrationRequestDto r = createRegistrationRequest(u); @@ -102,7 +102,7 @@ public void validUsernames() throws Exception { @Test public void invalidUsernames() throws Exception { - final String[] invalidUsernames = {"£$%^&*(", ".,", "-test", "1test", "test$$", "@domain", + final String[] invalidUsernames = {"a","£$%^&*(", ".,", "-test", "1test", "test$$", "@domain", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}; for (String u : invalidUsernames) { diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/registration/cern/CernRegistrationValidationServiceTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/registration/cern/CernRegistrationValidationServiceTests.java index f54c34d02..b1b2d6bda 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/registration/cern/CernRegistrationValidationServiceTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/registration/cern/CernRegistrationValidationServiceTests.java @@ -119,7 +119,6 @@ private RegistrationRequestDto createDto(String username) { request.setEmail(email); request.setUsername(username); request.setNotes("Some short notes..."); - request.setPassword("password"); return request; } From 1ceb67f5ab33745b95ba7c9eab98a553eb64a80a Mon Sep 17 00:00:00 2001 From: Roberta Miccoli <85555840+rmiccoli@users.noreply.github.com> Date: Fri, 2 Aug 2024 17:32:45 +0200 Subject: [PATCH 18/22] Fix email subject (#824) --- .../infn/mw/iam/notification/TransientNotificationFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java b/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java index 07679a4bf..77ab7c021 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/notification/TransientNotificationFactory.java @@ -395,7 +395,7 @@ public IamEmailNotification createAccountRestoredMessage(IamAccount account) { model.put(RECIPIENT_FIELD, recipient); model.put(ORGANISATION_NAME, organisationName); - String subject = String.format("[%s IAM] Account restored", organisationName); + String subject = "Account restored"; IamEmailNotification notification = createMessage("accountRestored.ftl", model, IamNotificationType.ACCOUNT_RESTORED, subject, asList(account.getUserInfo().getEmail())); From 912294dda9cada2acf14021e897cfdd2ed6c1168 Mon Sep 17 00:00:00 2001 From: Roberta Miccoli <85555840+rmiccoli@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:17:04 +0200 Subject: [PATCH 19/22] Fix logic of sending email for expired aup (#826) Filter infinite AUP case and exclude inactive users from logic --- .../it/infn/mw/iam/config/TaskConfig.java | 3 +- .../mw/iam/core/web/aup/AupReminderTask.java | 36 ++++----- .../test/api/aup/AupReminderTaskTests.java | 75 ++++++++++++++++++- .../repository/IamAupSignatureRepository.java | 2 +- 4 files changed, 96 insertions(+), 20 deletions(-) diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/config/TaskConfig.java b/iam-login-service/src/main/java/it/infn/mw/iam/config/TaskConfig.java index 9ce296cc9..7a5442217 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/config/TaskConfig.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/config/TaskConfig.java @@ -131,7 +131,8 @@ public void clearExpiredDeviceCodes() { deviceCodeService.clearExpiredDeviceCodes(); } - @Scheduled(fixedRateString = "${task.aupReminder:14400}", timeUnit = TimeUnit.SECONDS) + @Scheduled(fixedRateString = "${task.aupReminder:14400}", timeUnit = TimeUnit.SECONDS, + initialDelay = ONE_MINUTE_MSEC) public void scheduledAupRemindersTask() { aupReminderTask.sendAupReminders(); } diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/core/web/aup/AupReminderTask.java b/iam-login-service/src/main/java/it/infn/mw/iam/core/web/aup/AupReminderTask.java index 52d8bcf41..5bcff6068 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/core/web/aup/AupReminderTask.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/core/web/aup/AupReminderTask.java @@ -54,23 +54,25 @@ public class AupReminderTask { public void sendAupReminders() { aupRepo.findDefaultAup().ifPresent(aup -> { LocalDate currentDate = LocalDate.now(); - LocalDate expirationDate = currentDate.minusDays(aup.getSignatureValidityInDays()); - Date expirationDateAsDate = toDate(expirationDate); - Date expirationDatePlusOneDayAsDate = toDate(expirationDate.plusDays(1)); - List reminderIntervals = parseReminderIntervals(aup.getAupRemindersInDays()); - - reminderIntervals.forEach( - interval -> processRemindersForInterval(aup, currentDate, interval, expirationDate)); - - List expiredSignatures = aupSignatureRepo.findByAupAndSignatureTime(aup, - expirationDateAsDate, expirationDatePlusOneDayAsDate); - - // check if an email of type AUP_EXPIRATION does not already exist, because it is never deleted - expiredSignatures.forEach(s -> { - if (isExpiredSignatureEmailNotAlreadySentFor(s.getAccount())) { - notification.createAupSignatureExpMessage(s.getAccount()); - } - }); + if (aup.getSignatureValidityInDays() > 0) { + LocalDate expirationDate = currentDate.minusDays(aup.getSignatureValidityInDays()); + Date expirationDateAsDate = toDate(expirationDate); + Date expirationDatePlusOneDayAsDate = toDate(expirationDate.plusDays(1)); + List reminderIntervals = parseReminderIntervals(aup.getAupRemindersInDays()); + + reminderIntervals.forEach( + interval -> processRemindersForInterval(aup, currentDate, interval, expirationDate)); + + List expiredSignatures = aupSignatureRepo.findByAupAndSignatureTime(aup, + expirationDateAsDate, expirationDatePlusOneDayAsDate); + + // check if an email of type AUP_EXPIRATION does not already exist, because it is never deleted + expiredSignatures.forEach(s -> { + if (isExpiredSignatureEmailNotAlreadySentFor(s.getAccount())) { + notification.createAupSignatureExpMessage(s.getAccount()); + } + }); + } }); } diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupReminderTaskTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupReminderTaskTests.java index e5beeb017..367caa594 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupReminderTaskTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/api/aup/AupReminderTaskTests.java @@ -22,6 +22,7 @@ import java.time.LocalDate; import java.time.ZoneId; import java.util.Date; +import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Test; @@ -44,6 +45,7 @@ import it.infn.mw.iam.service.aup.DefaultAupSignatureCheckService; import it.infn.mw.iam.test.core.CoreControllerTestSupport; import it.infn.mw.iam.test.notification.NotificationTestConfig; +import it.infn.mw.iam.test.util.MockTimeProvider; import it.infn.mw.iam.test.util.WithAnonymousUser; import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest; import it.infn.mw.iam.test.util.notification.MockNotificationDelivery; @@ -77,6 +79,9 @@ public class AupReminderTaskTests extends AupTestSupport { @Autowired private IamAupRepository aupRepo; + @Autowired + private MockTimeProvider mockTimeProvider; + @After public void tearDown() { notificationDelivery.clearDeliveredNotifications(); @@ -91,6 +96,7 @@ public void aupReminderEmailWorks() { aupRepo.save(aup); Date now = new Date(); + mockTimeProvider.setTime(now.getTime()); LocalDate today = LocalDate.now(); LocalDate tomorrow = today.plusDays(1); Date tomorrowDate = Date.from(tomorrow.atStartOfDay(ZoneId.systemDefault()).toInstant()); @@ -98,12 +104,17 @@ public void aupReminderEmailWorks() { IamAccount testAccount = accountRepo.findByUsername("test") .orElseThrow(() -> new AssertionError("Expected test account not found")); + mockTimeProvider.setTime(now.getTime() + TimeUnit.MINUTES.toMillis(5)); + assertThat(service.needsAupSignature(testAccount), is(true)); - signatureRepo.createSignatureForAccount(aup, testAccount, now); + signatureRepo.createSignatureForAccount(aup, testAccount, + new Date(mockTimeProvider.currentTimeMillis())); assertThat(service.needsAupSignature(testAccount), is(false)); + mockTimeProvider.setTime(now.getTime() + TimeUnit.MINUTES.toMillis(10)); + assertThat(notificationRepo.countAupRemindersPerAccount(testAccount.getUserInfo().getEmail(), tomorrowDate), equalTo(0)); @@ -151,4 +162,66 @@ public void aupExpirationEmailWorks() { equalTo(1)); } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupExpirationEmailNotSentIfUserIsDisabled() { + IamAup aup = buildDefaultAup(); + aup.setSignatureValidityInDays(2L); + + LocalDate today = LocalDate.now(); + LocalDate twoDaysAgo = today.minusDays(2); + + Date date = Date.from(twoDaysAgo.atStartOfDay(ZoneId.systemDefault()).toInstant()); + aup.setCreationTime(date); + aup.setLastUpdateTime(date); + + aupRepo.save(aup); + + IamAccount testAccount = accountRepo.findByUsername("test") + .orElseThrow(() -> new AssertionError("Expected test account not found")); + + signatureRepo.createSignatureForAccount(aup, testAccount, date); + + assertThat( + notificationRepo.countAupExpirationMessPerAccount(testAccount.getUserInfo().getEmail()), + equalTo(0)); + + testAccount.setActive(false); + accountRepo.save(testAccount); + + aupReminderTask.sendAupReminders(); + notificationDelivery.sendPendingNotifications(); + assertThat( + notificationRepo.countAupExpirationMessPerAccount(testAccount.getUserInfo().getEmail()), + equalTo(0)); + + } + + @Test + @WithMockUser(username = "admin", roles = {"ADMIN", "USER"}) + public void aupExpirationEmailNotSentIfAupSignatureValidityIsZero() { + IamAup aup = buildDefaultAup(); + aup.setSignatureValidityInDays(0L); + + LocalDate today = LocalDate.now(); + Date date = Date.from(today.atStartOfDay(ZoneId.systemDefault()).toInstant()); + + aup.setCreationTime(date); + aup.setLastUpdateTime(date); + + aupRepo.save(aup); + + IamAccount testAccount = accountRepo.findByUsername("test") + .orElseThrow(() -> new AssertionError("Expected test account not found")); + + signatureRepo.createSignatureForAccount(aup, testAccount, date); + + aupReminderTask.sendAupReminders(); + notificationDelivery.sendPendingNotifications(); + assertThat( + notificationRepo.countAupExpirationMessPerAccount(testAccount.getUserInfo().getEmail()), + equalTo(0)); + + } } diff --git a/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAupSignatureRepository.java b/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAupSignatureRepository.java index 69e324df7..a2b775911 100644 --- a/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAupSignatureRepository.java +++ b/iam-persistence/src/main/java/it/infn/mw/iam/persistence/repository/IamAupSignatureRepository.java @@ -30,7 +30,7 @@ public interface IamAupSignatureRepository extends PagingAndSortingRepository, IamAupSignatureRepositoryCustom { - @Query("select ias from IamAupSignature ias where ias.aup = :aup and :signatureTime <= ias.signatureTime and ias.signatureTime < :plusOne") + @Query("select ias from IamAupSignature ias join ias.account a where a.active = TRUE and ias.aup = :aup and :signatureTime <= ias.signatureTime and ias.signatureTime < :plusOne") List findByAupAndSignatureTime(@Param("aup") IamAup aup, @Param("signatureTime") Date signatureTime, @Param("plusOne") Date plusOne); From c126a2c2d936616d77766c100b295fb4f9f3bca3 Mon Sep 17 00:00:00 2001 From: Davide Marcato <26935676+darcato@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:26:38 +0200 Subject: [PATCH 20/22] Client Last Used improvements (#827) * Feature is disabled by default * Added tooltip on clients view --- .../src/main/java/it/infn/mw/iam/config/IamProperties.java | 2 +- iam-login-service/src/main/resources/application.yml | 2 +- .../components/clients/clientslist/clientslist.component.html | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java b/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java index 2b9064c42..c6dd8f671 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/config/IamProperties.java @@ -558,7 +558,7 @@ public void setLocation(String location) { } public static class ClientProperties { - private boolean trackLastUsed = true; + private boolean trackLastUsed = false; public boolean isTrackLastUsed() { return trackLastUsed; diff --git a/iam-login-service/src/main/resources/application.yml b/iam-login-service/src/main/resources/application.yml index 63aa87450..0e126065b 100644 --- a/iam-login-service/src/main/resources/application.yml +++ b/iam-login-service/src/main/resources/application.yml @@ -189,7 +189,7 @@ iam: external-authn-order: ${IAM_LOGIN_EXTERNAL_AUTHN_ORDER:x509,oidc,saml} client: - track-last-used: ${IAM_CLIENT_TRACK_LAST_USED:true} + track-last-used: ${IAM_CLIENT_TRACK_LAST_USED:false} redis-cache: enabled: ${IAM_REDIS_CACHE_ENABLED:false} diff --git a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/clients/clientslist/clientslist.component.html b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/clients/clientslist/clientslist.component.html index fb7426469..374f5efc2 100644 --- a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/clients/clientslist/clientslist.component.html +++ b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/components/clients/clientslist/clientslist.component.html @@ -77,7 +77,9 @@ Client name & id Created Dyn. registered - Last Used + Last Used + Information Actions From e8fe9be1427ffe6b188816cd9e740d0777df8bd0 Mon Sep 17 00:00:00 2001 From: Stefano Date: Mon, 5 Aug 2024 15:19:41 +0200 Subject: [PATCH 21/22] Fix modal change password (#828) --- .../dashboard-app/controllers/edit-password.controller.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/controllers/edit-password.controller.js b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/controllers/edit-password.controller.js index 3b238e7e9..e35a46eef 100644 --- a/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/controllers/edit-password.controller.js +++ b/iam-login-service/src/main/webapp/resources/iam/apps/dashboard-app/controllers/edit-password.controller.js @@ -21,11 +21,11 @@ EditPasswordController.$inject = [ '$scope', '$state', '$uibModalInstance', 'Utils', 'ResetPasswordService', - 'user' + 'user','toaster' ]; function EditPasswordController( - $scope, $state, $uibModalInstance, Utils, ResetPasswordService, user) { + $scope, $state, $uibModalInstance, Utils, ResetPasswordService, user, toaster) { var editPasswordCtrl = this; editPasswordCtrl.passwordMinlength = 8; @@ -63,7 +63,8 @@ editPasswordCtrl.user.password) .then(function() { return $uibModalInstance.close('Password updated'); }) .catch(function(error) { - console.error(error); + console.error(error.data); + toaster.pop({ type: 'error', body: error.data }); $scope.operationResult = Utils.buildErrorResult(error.data); }); }; From 621570fbb246268e8b6b00b080d50916fa4eabfa Mon Sep 17 00:00:00 2001 From: Federica Agostini Date: Wed, 7 Aug 2024 17:10:07 +0200 Subject: [PATCH 22/22] Allow to totally disable all caching mechanisms (#778) --- .../client/service/DefaultClientService.java | 7 +- .../it/infn/mw/iam/config/CacheConfig.java | 22 +++-- ...heProperties.java => CacheProperties.java} | 31 ++++++- .../wellknown/IamWellKnownInfoProvider.java | 2 +- .../main/resources/application-redis-test.yml | 5 +- .../src/main/resources/application.yml | 6 +- .../mw/iam/test/oauth/EndpointsTestUtils.java | 22 +++-- .../matchers/ScopeMatcherCacheTests.java | 32 +++++-- .../ScopeMatcherExternalCacheTests.java | 23 ++--- .../matchers/ScopeMatcherNoCacheTests.java | 93 +++++++++++++++++++ 10 files changed, 190 insertions(+), 53 deletions(-) rename iam-login-service/src/main/java/it/infn/mw/iam/config/{RedisCacheProperties.java => CacheProperties.java} (65%) create mode 100644 iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherNoCacheTests.java diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/api/client/service/DefaultClientService.java b/iam-login-service/src/main/java/it/infn/mw/iam/api/client/service/DefaultClientService.java index 1f6383cb0..b28e54efd 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/api/client/service/DefaultClientService.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/api/client/service/DefaultClientService.java @@ -23,12 +23,10 @@ import org.mitre.oauth2.model.ClientDetailsEntity; import org.mitre.oauth2.model.OAuth2AccessTokenEntity; import org.mitre.oauth2.service.OAuth2TokenEntityService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import org.springframework.security.oauth2.provider.OAuth2RequestValidator; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -42,7 +40,6 @@ @Service @Transactional -@SuppressWarnings("deprecation") public class DefaultClientService implements ClientService { private final Clock clock; @@ -55,10 +52,8 @@ public class DefaultClientService implements ClientService { private OAuth2TokenEntityService tokenService; - @Autowired public DefaultClientService(Clock clock, IamClientRepository clientRepo, - IamAccountClientRepository accountClientRepo, ApplicationEventPublisher eventPublisher, - OAuth2RequestValidator requestValidator, OAuth2TokenEntityService tokenService) { + IamAccountClientRepository accountClientRepo, ApplicationEventPublisher eventPublisher, OAuth2TokenEntityService tokenService) { this.clock = clock; this.clientRepo = clientRepo; this.accountClientRepo = accountClientRepo; diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/config/CacheConfig.java b/iam-login-service/src/main/java/it/infn/mw/iam/config/CacheConfig.java index b50fad3a9..b212c1197 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/config/CacheConfig.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/config/CacheConfig.java @@ -16,9 +16,10 @@ package it.infn.mw.iam.config; import org.springframework.boot.autoconfigure.cache.RedisCacheManagerBuilderCustomizer; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.cache.CacheManager; import org.springframework.cache.concurrent.ConcurrentMapCacheManager; +import org.springframework.cache.support.NoOpCacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.cache.RedisCacheConfiguration; @@ -30,26 +31,31 @@ public class CacheConfig { @Bean - @ConditionalOnProperty(name = "redis-cache.enabled", havingValue = "false") - public CacheManager localCacheManager() { + @ConditionalOnExpression("${cache.enabled} == false") + CacheManager fakeCacheManager(CacheProperties props) { + return new NoOpCacheManager(); + } + + @Bean + @ConditionalOnExpression("${cache.enabled} == true and ${cache.redis.enabled} == false") + CacheManager localCacheManager(CacheProperties props) { return new ConcurrentMapCacheManager(IamWellKnownInfoProvider.CACHE_KEY, DefaultScopeMatcherRegistry.SCOPE_CACHE_KEY); } @Bean - @ConditionalOnProperty(name = "redis-cache.enabled", havingValue = "true") - public RedisCacheManagerBuilderCustomizer redisCacheManagerBuilderCustomizer() { + @ConditionalOnExpression("${cache.enabled} == true and ${cache.redis.enabled} == true") + RedisCacheManagerBuilderCustomizer redisCacheManagerBuilderCustomizer() { return builder -> builder .withCacheConfiguration(IamWellKnownInfoProvider.CACHE_KEY, RedisCacheConfiguration.defaultCacheConfig()) .withCacheConfiguration(DefaultScopeMatcherRegistry.SCOPE_CACHE_KEY, RedisCacheConfiguration.defaultCacheConfig()); - } @Bean - @ConditionalOnProperty(name = "redis-cache.enabled", havingValue = "true") - public RedisCacheConfiguration redisCacheConfiguration() { + @ConditionalOnExpression("${cache.enabled} == true and ${cache.redis.enabled} == true") + RedisCacheConfiguration redisCacheConfiguration() { return RedisCacheConfiguration.defaultCacheConfig().disableCachingNullValues(); } diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/config/RedisCacheProperties.java b/iam-login-service/src/main/java/it/infn/mw/iam/config/CacheProperties.java similarity index 65% rename from iam-login-service/src/main/java/it/infn/mw/iam/config/RedisCacheProperties.java rename to iam-login-service/src/main/java/it/infn/mw/iam/config/CacheProperties.java index 1751a2579..e8ffd455d 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/config/RedisCacheProperties.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/config/CacheProperties.java @@ -18,11 +18,27 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; -@ConfigurationProperties("redis-cache") +@ConfigurationProperties("cache") @Configuration -public class RedisCacheProperties { +public class CacheProperties { - private boolean enabled = false; + public class RedisProperties { + + private boolean enabled = false; + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enable) { + this.enabled = enable; + } + + } + + private boolean enabled = true; + + private RedisProperties redis = new RedisProperties(); public boolean isEnabled() { return enabled; @@ -32,4 +48,13 @@ public void setEnabled(boolean enable) { this.enabled = enable; } + public RedisProperties getRedis() { + return redis; + } + + public void setRedis(RedisProperties redis) { + this.redis = redis; + } + + } diff --git a/iam-login-service/src/main/java/it/infn/mw/iam/core/web/wellknown/IamWellKnownInfoProvider.java b/iam-login-service/src/main/java/it/infn/mw/iam/core/web/wellknown/IamWellKnownInfoProvider.java index 9254a1551..05c60d158 100644 --- a/iam-login-service/src/main/java/it/infn/mw/iam/core/web/wellknown/IamWellKnownInfoProvider.java +++ b/iam-login-service/src/main/java/it/infn/mw/iam/core/web/wellknown/IamWellKnownInfoProvider.java @@ -164,7 +164,7 @@ private String getIssuerWithTrailingSlash() { } @Override - @Cacheable(CACHE_KEY) + @Cacheable(value = CACHE_KEY) public Map getWellKnownInfo() { Map result = newHashMap(); diff --git a/iam-login-service/src/main/resources/application-redis-test.yml b/iam-login-service/src/main/resources/application-redis-test.yml index 9a5b06f54..6fad69368 100644 --- a/iam-login-service/src/main/resources/application-redis-test.yml +++ b/iam-login-service/src/main/resources/application-redis-test.yml @@ -25,5 +25,6 @@ spring: flush-mode: immediate namespace: iam:session -redis-cache: - enabled: true \ No newline at end of file +cache: + redis: + enabled: true \ No newline at end of file diff --git a/iam-login-service/src/main/resources/application.yml b/iam-login-service/src/main/resources/application.yml index 0e126065b..76083b81d 100644 --- a/iam-login-service/src/main/resources/application.yml +++ b/iam-login-service/src/main/resources/application.yml @@ -191,8 +191,10 @@ iam: client: track-last-used: ${IAM_CLIENT_TRACK_LAST_USED:false} -redis-cache: - enabled: ${IAM_REDIS_CACHE_ENABLED:false} +cache: + enabled: ${IAM_CACHE_ENABLED:true} + redis: + enabled: ${IAM_CACHE_REDIS_ENABLED:false} x509: trustAnchorsDir: ${IAM_X509_TRUST_ANCHORS_DIR:/etc/grid-security/certificates} diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/EndpointsTestUtils.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/EndpointsTestUtils.java index 7f28b6620..81aaf7146 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/EndpointsTestUtils.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/EndpointsTestUtils.java @@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken; import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import com.fasterxml.jackson.databind.ObjectMapper; @@ -103,7 +104,14 @@ public AccessTokenGetter audience(String audience) { return this; } - public String performTokenRequest() throws Exception { + public String performSuccessfulTokenRequest() throws Exception { + + return performTokenRequest(200) + .getResponse() + .getContentAsString(); + } + + public MvcResult performTokenRequest(int statusCode) throws Exception { MockHttpServletRequestBuilder req = post("/token").param("grant_type", grantType) .param("client_id", clientId) .param("client_secret", clientSecret); @@ -120,18 +128,14 @@ public String performTokenRequest() throws Exception { req.param("aud", audience); } - String response = mvc.perform(req) - .andExpect(status().isOk()) - .andReturn() - .getResponse() - .getContentAsString(); - - return response; + return mvc.perform(req) + .andExpect(status().is(statusCode)) + .andReturn(); } public DefaultOAuth2AccessToken getTokenResponseObject() throws Exception { - String response = performTokenRequest(); + String response = performSuccessfulTokenRequest(); // This is incorrectly named in spring security OAuth, what they call OAuth2AccessToken // is a TokenResponse object diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherCacheTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherCacheTests.java index 2ba38ac82..0d78278b0 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherCacheTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherCacheTests.java @@ -28,6 +28,7 @@ import org.mitre.oauth2.model.ClientDetailsEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.CacheManager; +import org.springframework.cache.concurrent.ConcurrentMapCacheManager; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; @@ -36,8 +37,8 @@ import com.nimbusds.jwt.JWTParser; import it.infn.mw.iam.api.client.service.ClientService; -import it.infn.mw.iam.config.CacheConfig; -import it.infn.mw.iam.config.RedisCacheProperties; +import it.infn.mw.iam.config.CacheProperties; +import it.infn.mw.iam.persistence.repository.client.IamClientRepository; import it.infn.mw.iam.test.oauth.EndpointsTestUtils; import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest; @@ -53,10 +54,13 @@ public class ScopeMatcherCacheTests extends EndpointsTestUtils { private ClientService clientService; @Autowired - private CacheConfig cacheConfig; - + private IamClientRepository clientRepository; + + @Autowired + private CacheManager localCacheManager; + @Autowired - private RedisCacheProperties redisCacheProperties; + private CacheProperties cacheProperties; private String getAccessTokenForClient(String scopes) throws Exception { @@ -67,10 +71,19 @@ private String getAccessTokenForClient(String scopes) throws Exception { .getAccessTokenValue(); } + private void getAccessTokenForClientFailWithStatusCode(String scopes, int statusCode) throws Exception { + + new AccessTokenGetter().grantType("client_credentials") + .clientId(CLIENT_ID) + .clientSecret(CLIENT_SECRET) + .scope(scopes) + .performTokenRequest(statusCode); + } + @Test - public void ensureRedisCashIsDisabled() { - assertFalse(redisCacheProperties.isEnabled()); - assertThat(cacheConfig.localCacheManager(), instanceOf(CacheManager.class)); + public void ensureRedisCacheIsDisabled() { + assertFalse(cacheProperties.getRedis().isEnabled()); + assertThat(localCacheManager, instanceOf(ConcurrentMapCacheManager.class)); } @Test @@ -87,6 +100,8 @@ public void updatingClientScopesInvalidatesCache() throws ParseException, Except assertThat("scim:read", not(in(token.getJWTClaimsSet().getClaim("scope").toString().split(" ")))); client.setScope(Sets.newHashSet("openid", "profile", "email", "scim:read")); + clientRepository.save(client); + getAccessTokenForClientFailWithStatusCode("openid profile email scim:read", 400); clientService.updateClient(client); token = JWTParser.parse(getAccessTokenForClient("openid profile email scim:read")); assertThat("scim:read", in(token.getJWTClaimsSet().getClaim("scope").toString().split(" "))); @@ -94,4 +109,5 @@ public void updatingClientScopesInvalidatesCache() throws ParseException, Except clientService.deleteClient(client); } } + } diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherExternalCacheTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherExternalCacheTests.java index efcedaa85..56af564ff 100644 --- a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherExternalCacheTests.java +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherExternalCacheTests.java @@ -27,11 +27,11 @@ import org.junit.jupiter.api.Test; import org.mitre.oauth2.model.ClientDetailsEntity; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.cache.RedisCacheManagerBuilderCustomizer; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.boot.web.server.LocalServerPort; -import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.cache.CacheManager; +import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; import org.testcontainers.junit.jupiter.Container; @@ -44,8 +44,7 @@ import io.restassured.RestAssured; import it.infn.mw.iam.api.client.service.ClientService; -import it.infn.mw.iam.config.CacheConfig; -import it.infn.mw.iam.config.RedisCacheProperties; +import it.infn.mw.iam.config.CacheProperties; import it.infn.mw.iam.test.TestUtils; import it.infn.mw.iam.test.oauth.EndpointsTestUtils; import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest; @@ -54,7 +53,7 @@ @Testcontainers @IamMockMvcIntegrationTest @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, - properties = {"iam.access_token.include_scope=true", "redis-cache.enabled=true"}) + properties = {"iam.access_token.include_scope=true", "cache.redis.enabled=true"}) public class ScopeMatcherExternalCacheTests extends EndpointsTestUtils { private static final String CLIENT_ID = "cache-client"; @@ -68,10 +67,7 @@ public class ScopeMatcherExternalCacheTests extends EndpointsTestUtils { private ClientService clientService; @Autowired - private CacheConfig cacheConfig; - - @Autowired - private RedisCacheProperties redisCacheProperties; + private CacheProperties redisCacheProperties; @LocalServerPort private Integer iamPort; @@ -79,6 +75,9 @@ public class ScopeMatcherExternalCacheTests extends EndpointsTestUtils { @Autowired ObjectMapper mapper; + @Autowired + CacheManager cacheManager; + @Container private static final RedisContainer REDIS = new RedisContainer(); @@ -93,10 +92,7 @@ public void setup() { TestUtils.initRestAssured(); RestAssured.port = iamPort; assertTrue(redisCacheProperties.isEnabled()); - assertThat(cacheConfig.redisCacheConfiguration(), instanceOf(RedisCacheConfiguration.class)); - assertThat(cacheConfig.redisCacheManagerBuilderCustomizer(), - instanceOf(RedisCacheManagerBuilderCustomizer.class)); - + assertThat(cacheManager, instanceOf(RedisCacheManager.class)); } private String getAccessTokenForClient(String scopes) throws Exception { @@ -106,7 +102,6 @@ private String getAccessTokenForClient(String scopes) throws Exception { .clientSecret(CLIENT_SECRET) .scope(scopes) .getAccessTokenValue(); - } @Test diff --git a/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherNoCacheTests.java b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherNoCacheTests.java new file mode 100644 index 000000000..85ad1a3a4 --- /dev/null +++ b/iam-login-service/src/test/java/it/infn/mw/iam/test/oauth/scope/matchers/ScopeMatcherNoCacheTests.java @@ -0,0 +1,93 @@ +/** + * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2016-2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package it.infn.mw.iam.test.oauth.scope.matchers; + +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.in; +import static org.hamcrest.Matchers.not; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mitre.oauth2.model.ClientDetailsEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.CacheManager; +import org.springframework.cache.concurrent.ConcurrentMapCacheManager; +import org.springframework.cache.support.NoOpCacheManager; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import com.google.common.collect.Sets; +import com.nimbusds.jwt.JWT; +import com.nimbusds.jwt.JWTParser; + +import it.infn.mw.iam.persistence.repository.client.IamClientRepository; +import it.infn.mw.iam.test.oauth.EndpointsTestUtils; +import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest; + +@RunWith(SpringRunner.class) +@IamMockMvcIntegrationTest +@TestPropertySource(properties = {"cache.enabled=false", "iam.access_token.include_scope=true"}) +public class ScopeMatcherNoCacheTests extends EndpointsTestUtils { + + private static final String CLIENT_ID = "cache-client"; + private static final String CLIENT_SECRET = "secret"; + + @Autowired + private IamClientRepository clientRepo; + + @Autowired + private CacheManager cacheManager; + + private String getAccessTokenForClient(String scopes) throws Exception { + + return new AccessTokenGetter().grantType("client_credentials") + .clientId(CLIENT_ID) + .clientSecret(CLIENT_SECRET) + .scope(scopes) + .getAccessTokenValue(); + } + + @Test + public void ensureRedisCacheIsDisabled() { + assertThat(cacheManager, instanceOf(NoOpCacheManager.class)); + assertThat(cacheManager, not(instanceOf(ConcurrentMapCacheManager.class))); + assertThat(cacheManager, not(instanceOf(RedisCacheManager.class))); + } + + @Test + public void updatingClientScopesWithNoCache() throws Exception { + + ClientDetailsEntity client = new ClientDetailsEntity(); + client.setClientId(CLIENT_ID); + client.setClientSecret(CLIENT_SECRET); + client.setScope(Sets.newHashSet("openid", "profile", "email")); + clientRepo.save(client); + + try { + JWT token = JWTParser.parse(getAccessTokenForClient("openid profile email")); + assertThat("scim:read", + not(in(token.getJWTClaimsSet().getClaim("scope").toString().split(" ")))); + client.setScope(Sets.newHashSet("openid", "profile", "email", "scim:read")); + clientRepo.save(client); + token = JWTParser.parse(getAccessTokenForClient("openid profile email scim:read")); + assertThat("scim:read", in(token.getJWTClaimsSet().getClaim("scope").toString().split(" "))); + } finally { + clientRepo.delete(client); + } + } +}

jiMq1- zkuU#M>gc&Enw6<<<#KPC1~fCui8G;TK@U(WkXVODMf#N-(cm}SPQMl77_Q2v!=U~ zCST<%SB;!Y{)6bg=uhUzNLev{Q0fb}%p1eMHH^Q&(r&?^-*`R@h*{L7Os2>^J@o+% zHi62nZ^V!18D1Z}KRom^MwFDD{PRKS{}`qUPHn`{{77%f8~=9*y=HhAe1MccL#$Ly zn!xQ2p-i|*`;H^j8k$St9OFMNlS@ILZ;jn-`HFiwk2F75qGi|_sgwme{**-Q3FJ8QPc+(mJxn`zPK3KB0cN;`U{km~_NvUEPi4DM67O-ugy-U!Ar+pceEoLz zQ@CAw7b5Mk#5(isJGK%~4p~jhB{ab83BYY2GnzUfX|iHRESuBAJ`hiMt2b7Qhne0z zfqccJ^!_yUs|ssJAcHe!-w)!+mjK^3Ji=5xZtb?kO5nmbYM#eWP3s#U>e5!yPWtq= zR?t{LKg~Y%T^g4xh_BGW&1yXD?fNY-!cA7@1le7i^IME4}C(vJv9e( zGeOF^eAav+^F?KTnz*$YRyte;PlWJ7&0Mh8skYH7y1?VT!qF~o&XRDgHV6Y^{rG3g zIU`Swz(BU>8g|h?h81Sf_r7R2>C$5GGNbIOFw4xhPNQCyvb}22{ za-CEJ^256>iO=Yz`pGS3uS$8IYr&UM4BjZma0c}%Ak|A95GbmpQED`kGX&N_3ir zn4L&p>pU=;57~2{jZ*B{EI{oHw1SUob(I5Hz8A_@Yv?X@Bt$HbScA7 zfmWE=tr!z=>F;(~XmaN=L~*l*|G`+jKATo=)cxX32uCSCvfNZs?zPxy<$_*o+($A6 zfD*NB^L5Hx7u0Bd>+aX(n$)eJ46XEVx_%LRU2;-(jLV^?PT9LVKa4fX@t`j$nR-UrMFe;X};|4sC%D2hnwvE`LhUf)E<7>~mPL;Av;e@{!D0w} z?2Y{)nL6E`R3+$sIfpXWh*nERPZbsznK@n(2=1!wH6LVkW0k?js{aXK4HQ8^I2Op| zA>Grxsp6@z$`y^#oVfi#Z-fwqUC-lT=zzjG=*65DQ?j5^b>KEpN>rr=LV2 z-nVppt84)9?aXhGYd_X^V706d6-&cR##K5PecW`tg*C}EtzhW#@^+Em$Hf_mbI@zw zeszgL%`!REcZ5id`fi7=BU-lJSr@DH7|~i1bGI#8c+gi)8Q}7K6Ro<7l%?u5ZrbKX zBJl-eToq9K|DE&Dyfy4K__POPHU|%9`7F)ID@x>SZn+ptU$)qdXBf<1^X;0N9S2KB zXG2o%G-()~2e}__N(NvjJ?udg<(-hN_0f)*EvNZEj%;#Y><3dx-(c-Yr+cxwRV+4T zUv+fB*275&pys9@^D`c&#icNrrHOwF-$t)7!#@U}87ONq$*5k2*ALe+m?zkM6;LH4 zZorv-ThAyIK8*S$?isd%3)m;f%0|M|e66{h$hO+d3%_7?6GS2nS>Q)JNC|DXoPEqZku zh;}vk;6`1EjOU(y#|lwebz2?Ww-;LJ3WKqg2~^@nAPde(vMh@%GaZ%phIuB%sV_QZoQ~l0`D;!2~q1oO7hEBWPwsm zx1Zdm)H?HILvxx`R?yc#OZK&2SXh^jMqVQelKkO%H@AZ0mki{;9a#x3s`$+j$}zlS zfC68E&)zVEzoasHDc3Nq|K`~3<{WU)=A;sy&nA<=xWuQHWc@;AUv^Nsm!@Jk zrO;N4@5_Bt>_ADde&Ii#KT4D}%RX?*KiTWaUxik(YzS&_$!1x4Y-A&q1DNkQ1{IDG zj~K9**m`35Lqp`XYhYYAjvQ}2PEz_-v647vZfQ33Be7Y>u6(i;?B;N5<{9Lc6j5qhu#HiIL$%rKwQQUa4kBG9~-II`} zmZ8+dx<}g-GFASYZ<*H>d>?5)yr-^oJdH-;r~`dij3g}MdUk3XdO&;>cb~1^v9k8~ zwcW6NlhI3f#;?IX%x3xFiTJ?$s1r5?WZ4rClikg=L5PK=U2vMq!o5w(uOr=t-YQjj zZbV*R=m3n*N*mNdO5KSo56Y5hVtWWmxI8m7J9cD$n{2-0*CmwukbY>cl|y)p0HGS5{O)7Df3P zs0Qdo5SCoy#~gr?FWfB(wdlvdfb`{%^bWb%paOjo3P6#=?PhpYAO^6W`w3+asG)5x;CYDu3&92V&4 z5=00YYwN)pl8$v9Uv(PPflCR&^G&aYgV^aDge(58ve7K&j_zPmy*=xp@qI!OnaR*r@5D``f~`pLx!1?EkCBWAaDqdW^m~HH24IEhl`|WNgFh zxW%xhTxXNdok-lh=oaf&a@z9}IW&{fU!Y_9u&hCwoXsusDQx0&m5|C6l+1Uao0tLm zs(ndt2Oy?*bsKaNKlf^WEI$JahWqpr`r=6EuR=B+!tDQ5e_)POo zq5YGmAR%fstH_pD zEw&`Phb5dwIk}Er2b7UgDGpOQ;TK12dbZaFSL(mPfYusz6yc_H6m?Jm$_Fl&ug(rw z&1;zL6Y^T3N)AL5N*W`8Kn+10OE?A8PJSrSD83@%R!Z&rEy0K)aPFdImRZBqo&OOx zX)V>Q=J8t!&U6JnuR!!MGCCz}Ogv$I&g?16F3=0`bl8pt?enj-oDQ>j%`S!tjZWMO zW5@>RGc0TGTYl408!!ty$_}521EeERw=S(Bz@GPE*j~`9GL6=q8riY!ShXkeeL=Hd zXfUdyP2SO|RSo*ufl-s-OTIBAtcBZO#`e2KM=ou8fY`uGNr9C*b@GA5LCE^RMSk;9&XgaSdicC4=E4ZzR> zK<*!qZVw2fH~Hq12#Dskjmm|0cnyQO22zo5$wF!eafhF@^3em)&nb1ZezFPFywI^}17F^?H_-yWvhU=NA6TD_gEt$V^=%?s%8vcSr3$f|!@i6K^~HuTlmXLU zy}@hFt@i4s*4e=ea@)^rc+Xfny7bXn&|!HOHbe5Alx9`1jVYMQ&AptEho+r^K3?e7 z?~^pCGGX0J>H+!`1(wi~LE;rpblF$`WqWi{@_w?&mXec)aMzs24Fd&` z*&gL?x=!VAxB)p+R7>H>a)}>CXXAxdj*aM9<3z?(d)m9>-H9|C$KNK+Z0}AzsJm}k z=4ZKZx(+kqzQh?X=#wvHum76vJlyVnCx*^Ha@gs{bV9VpqFZt0^^^!8{fBA5qzC+> z$u+`mQO9`hb`2Cb0gm|T348emr(&4}12}y|r$-bLzw^*^x9cqN`s?xb$KNp|D7C+p zJE851K=~n)kXZ4vO}DIDAMKxj3cjgC0@Vu7Lk$u*{? zPdJmns?blqgkLJaYW~@vDXOEXkKc%jw}qG8Sf9T?6nTH2X)d~UtnvXyq>Xl$@aQg8 zILcgZ63!Ree+jrNqPi8HS`(H3`(rZjT(|&K|Fn_G)9P+kk&U1WFo|MueNKbqS_+Jp zA8E+#A%+ZiQSEW;)S|ouheaZuqo%yU>-sXoi3`mZgqpU79gsgiE1BufGPngeI=`b^ zcKRJ7-tDTKXvZP!AuDTc93`Fqzr2&l0j-NZW0eJd>2>yO15Lo zKN{2$Zyt>g@C3C!l>0d@CJH6j(xUb&Tnf$P7uTCBBGJXqHO0g;yg}0I;%ASvA{dv3 zvs|BAcBD$WZushqbd83ypZQezj6QBMi<@FH9>4$>W)24Et|0(%|9CUT-xO>FaY9q8 zNeIC7AHIXiePpvBH)zXBt)(4bNuU?G2UQx~x5|0kgms5^iR*I+x%O-^gGPYoJepi_9I7QsKa)sQlld`5VVBr!fs&0n`c({AM6(X~@~`#zQ6oN_mOWW6GZKi**R z^nfUK{>l&TD+jA?TIm(b*vbT=j`AfOrNvdWve=p?!OaQ1jJ+ST=%(^tn=RVsy;{C- zsUaGOp|b0`1PtiakF9XUiu!W6Z(dxbv;V1jl-+AfoFK3xB7Cine%2;x^YCT1m?*!? z=R6+~&h@|#(Np#5#e~nf!L*UHxI^Vc^X4A);NRR#?FE_0-1-Aho71Fl9vR5aK9yyg zX8y}u9zHt&v1)!wT5VMR#)DS+N)f5~(<{1?@kZ(5OCPUjW)x95C$6*F1j`qGRe9?V zh9Q>Z0P9B&?D6>EaJ*OGpCxOB0&HyyOXd3}h0JM?WyWRA=7kkr`Y(x%LLW@-aj|OU zp*kp9tfPk96gz5AX}a&sChcz*%-ljL8u_ET4-*n8Sp1k3qP%_vz6!+9mlG%ecrR%5 zt(XkQ7p}8tNPY|ol}W%}H#icrjGV|8=Sz5$A<$-s5<&+qM;Qe8o4yYal;csPd*=A# zV|VGScwl%U%iI^4R`4=SPGpWHWy#*Udt2U}#Mg~J6y~mYT&{ZMmNQM&gAYRy07+^y z(_nbcUN2!2%6zYQK0(k>_4L3PnW|;27rZv6e@eR&x3{(n=I_%1SJx`K9P7B~jcGPP z_+1(yuH!Z`L^^fzp3zz=kNC&RUO?IZ?XMVFL1zyZ!GNrkfl7ZHldl6Tr{89y>N?JA z+T{rl2t1oWg_!=_P5)P0EcQcD1#+wYu59BxG|x61s3i54W`*}AsReKf@w`z+R=c2m zhBPpvAQ}2ruT0_lH>M5zJ>o>mxTml`f*F5r*GYRLU& zo>~0F{QGS#4)}l^fnBC=Wewb#AeqvcBm<~^_quF22>ZPE+6eVM%xCb4z>qT)g*zW@ zin0?fYM)sYXjTFfvBN3ng9W3_6=0?L84v{&_on zWO(nn@K);8aj%T&+GnilJ)*>(?A$jWJeKp&m$ng0kRn5I>01E1IhKdh`{zGo==3@6 z&Xm|h#l^&~rRS`b?hAR^9e;jGT&DPsO=P^lkyo!TxTkp{1f_zqE>e;@Y4}Q3-tIKEQ77ewZe)}7}aaaOw2>B zOw?;ssSS;`MQnL2h7akmFv|aMmtGuUGzkm5X7kb2sr|WvI^CH37@EQ3LW7(Pn16p_ zc9Kjj{QU&OjngA!Tp)4PGsd9a{Y`UfrJq#|W0ybDU$)YI3IJvYF{JksyQoFAl0hM@&}e8Hb-%zLrGyfRzhqu_s(yfxgj z=9mpkk))T4$9*9z+EM#u9CYuxB-6nuU6VRAhNEjHrnj?u;{$porXK7?&hF#1wS#_u z^WV&N6Y~bT+V<+=q*5O5j#c%Jp=ahN+YNR^+&Aa$+G^1aaSf9i+y9TLv+#=o`nLTL zg0yrlBCKKvu7LyQs`t37*p%@HC9N-a&~GJ?<%0eI z*B{Y^cakkdXj)(A*|rh^e7fLjb}+7;eiFlokHIzagr=D4b2%hY40B_Up?bg9-{x@* z9C2a4>$}FU`K!-c|8-bsSRd12Dv}{2j+zyy{(KUojPvA`&329vXZM)17o^12N`-ht zv+|g36Dvrff~|S|->NFntmcF3C@5*jdOt~-=**1qEX#wk@tedzEj{N)n$1d_U7>)} z5rNj43vx1g4~b-?2tAi7c6%Ll%9eK1AfiP=zjNck ze4vj9(N^)f0?$G6e5>1qyxRLtamV9p{ugyYm9ykM#toYRM*3Ean9q8GqJ8bRh~ z-!845bUkq7Pv)m*V&Etuid-dMZt-}3cc)IsKlKLklV->{?_)CiqCmMaHQqk&3yX^< zSgZL07h%utZ=0y{Nk9phTK7Y409Z9C zNsL+qUosC!YITqO?&6#6`-nKhCY)coj1wpR(z>%HWB`r$l*B&RrO4ei1=N<^ivq`` z{JhryrVreJmCPp?$QtG9j$+xv%SXqhw6^-PpMUtI{&hlUj(>YfSnHg z9o9Ob58YBeCMOzxt0|9j<2g>dW^@(-^UKe&)&Dg$05Q4{qj4wjcAe2`Wzw-;OxR@> zj*(lid)6wd{t<<^KF=7&q&__a|GdaLUjPevr8bMR`i}Q@kA|IEZI7E$oo*YOMrt}7fKi^S)>VCep8OKG{ zDBAd$R)|5FU2-h6k=i}|>8pLz?^6X3FPZtshea*-?Wo9v|0c`e{#dHd5>)F9h|rk) z`0FJZIhWy|GRZD>raBqjtTdt`8rSaSFa`%wKBlCOaf;+VjC7ARUKK06AfC#*UJqH9 zkiH~iGy8-2&meh<&Gg<+CY%l%zw$DwrGB^@=L(sHfB>OHTX3&pFo3| zr!HLHzM3jY!6S;DYAVtSqc7*zEX{^_l07X*llhx!YNGRRW511_ms~t~@29UJE!S}@ ztG|4;qAA?s^P&pFj%KfX=7GX?o8Z2_GsPIYUd=6s)q#eNrk6i#I%acQ*MELMMo`0O z&ofodgc5#R=I)JLiWL!;4JCKZ8}2y|6zPu|O)GFy3J2O8v!_2-1j$uu%!?$@RF6cy zVpa&7d+z=KKnNi6HX81ND@G%bV)~fW!P07Y5>k_#L>o^NRq~5Dv!1zK+}oPxty*0K zy~f_54l_9Ejp+Ll$|eU7^>sjuqKy0raTsZOtx*vQQheAzTH?i>2D>q+>wG``Xk~sk z5p?}4Nyr8qide=DeoK*jxxDknPg<`Wx-0R3^40ulvrMscOC*ezeKI|~xY^441c}H- zrJX>zvm!0bzr;PSk>E-m(qH-IX0D}@dh}8EV6EK|SHb;VKKtZE9ymFW#Em|{arkRc z(eB2@ZC|TciQOOn;o2bB@}(++1niutx@{H+jc4*=^b!25xmBBMe-#{SMRUl6a+NEIf+W zKL5wdQ!1!#?Xc7E-e`~e3Er&6Rw>0NoXC1L;|&!E4cs-u=}jKRDc?o8;`*?d$iVKo z<6hgDh~8|4i)o09Kr-Hiqw`9CWEIV1Z9Y3~_tl!~E@y*VwoB0S$79Q6Ve1>`Y?Y`bw&Pd&?kFo_yZn>lH*|3+2a zKaUekauFEK{@UMY#r3{(UY}i&_kBo`btLL$sbE7ZUjn^dW0^asiL7L@stWbmv6Rtd-)!#6`DXN8+R^2E9WLSb1 zAn%ns;NR)xXO!+|Qi6>T7Ad`*2shAeZM3>)K)GVV=VYG+zjvHhx{UM$1PuYY2yX%zkOzQASrqy#S(POkAHR~WZ)cCky_(wmxN7eMwVtjXQeJBtKt|y; zdVWYSl8m{3pSoM557I?WNzCSr6s_;5)@>6ksFl|-^km(AwDFCPe zv|L5ON*Dd6SLCRYZhWLwjF!8u*=7;?f@%F9@aa@k0$_Ck!#Vv0RJ?AImTU};EA;du zWa5s>g#DTs9$k>j^Q~CKk30Selknv?*e|*wSZSM(R#g>4wz%rKfez_5r;?DF_k$9X z$Ya0ux>4pvdLQUjbIp$FWjwhGWVxL|lV9T0*4cdaGQO+ou*xz{zsqgUkbWPJQ#Yj5 zCSk~w!#>+=gG9=PfWDua2?|#vOh7D=TdYy)kjiS2(W&S~d$8F@5sIwcmLj)h%jL2f z-vu04vg>w~3fJ6bDZ|)F2?lOnInt1HHwU!44#hl6FlrSqi|O=S9sBeZ0|*>{XBG) zY&W(3x=fknm%(@^yw9D(166wREQ8xS^xEf-SphN<^#hD!iep(SQ@S#%n~mL~Xl7r( z5*z_0M-*hZH()^LBRP75nKXV@*% z|5LNWas5q-Y@L;hY%4Z9q_U5VFH$uJS6RA@tI4s%O?>hB&`jACm?eRVJ$4qfBep-* zC(vs5P>1J=>m5i50fHzbC?Z%3(#-CpT;|v}4>Av(1>BeD>!_BT0!{FkW?1m2eUqMe zGBn;s{Rh_881y<=j4syaZnYI03OQ`%%dXs;Hcyr0oR3NMc|lc^Hc4u|zhkiYbofKV zs)W8kjSo80!?p4+qF;0USc8}kZs%HS`g;KkL)&Kc_yhw3V=+@Uq z)q6j*vG87Q$GwD)*?2^D;m_+NMh1xW$X~f+f={CzS1w49|5A^Ihu}Dbz`-g>}GVdc)+JFs(`n#b# zGcrjGU2*z$F3x#8bY3VlpQf&QN`&mcrxH~dZ)_&P_4FH1-r2gL127!jH_a{0yr=Xd1>%V1sghOTXX zU{7*YA{Kw(?#tb-FIz#BewEMI%O&L2Vl|X-hY8( zO%3?PFUp$~_(E>FKvfz8PaFe5JEjod&G_ghk1;Hf>`&$YbY$=JY8Ym|Oj!6 zKe5!s#<3S;*!$bLm+lu#ZB+@jc&U~lg!StS+Nn-vm^>yx zasaQ3r0BV0f{eO19o6rAN9euNVeqED!wTo>W84vczObK}3FZ@|;O~W5WI7~4LG>QS zK0EZCIJSQR3S2CVvpbJC2dDwjR3JS-v?3aiUe+mqtQ@zkX?TVABvwpmME^1;%V~+OU-v7VioC7>a74w2 z0Qhh-U0wIjUq$X74lRCXrV9*t_JTR3biNR)hBmU-02a9NWn3R!@bzBA?q9dh596ra zk(eJzx-}I8Sjp$n8Z@gvFEOLzslqezu=EET=~rcI zp16sxYT`!np7Xp%>^~z-OMR9ZL2xIOCLw@(h8I_J=D`ZkX^FewvG?)f^z2Z+jNUrb z57ZRHWmzUfw)L3wK)|HH5Zn}n-DBN~sc+f8WCHD4*{U4Qj!=KR?Hxz7MKs;l9sHUZ zfL)De1o7?El{Rbr@9gD%T_<}*hQ@6_H%nD%+p+$;=_PvnwN8CEf4=`>XdcIgexb7J6pSwPUE*3Y;RbI%Bf z#sIli6j7Mhy4#UUTOg%bN|hL&b$KgqwGVbGM0`f7#MJ9q9$)=NKfj_wV*Qa_N+4BK zuYZ%ufNOxGW?;hc?Kj9Q7bAdixJzbf@KCMamj+PenD`yv#5cQ^Utv^{rQ1%#k>yUTSyS2ijh(RS%COR;2^-X}i1FlC4IS~7dr2N~4Dfw#6LySc|}IJ^7V$`9rg^Cn4%T66e-O zsLfcGeWSOp`BVF|nG2|toRpjRj^wr^llqu-y#Pi?{A1;eqMXnpG@{kbIB{u5Hdu!` zzHm4!AF^ac%jWc)`jYtLG5#YhC1ln^0ERh&TXj|J)TAhGAh7Y^hpFk7PeNkblfEq} z=o!bVRK)w%dN{&$as(gmA??Q{Bh;iNklk93SDy6dH4*6O4tE{Kze8`ygl2x1oSA;n z9?PE#gnoce>x6n8*+Qbf#*={fk;!Oa0>60<-_RdpRI?!dKv%in#=79J`#S-4^Qeug z3X9*9=;@VtPi+L1u=Wr8HmYZXY|N9jnjLk%Hrq%{8(O5K0w1DOFtz(&l(}*Rj^p+8 zJ6}r(wzROZcD8#OHC5&N`hU3FVBC9YifmYE@4|gMdG0aU7!`66w`GoVJ-y2e#K4pM zHxDH}Q_O2_I$Mv$4Q$HgdLiq~+bIk{8$%g=nNr4(NyHkc1W&%=7P#NaGA7^GOJ1yH zR28_8V0yhgn>?fy+7URw*No!^q)*&ze7^QE%eQpCSP~D?n|h7CM4$siux#;^$(m2k zGdi48EHnN^o9hG!XM?a0(PyuMXSL0a#s%`+04u4aIf2dS;uwEzR*4zbq0EN>)+ujB zOSb(0+#mMP*kbiZ!X`EZ3cXH$8$knF0bW6c>r7=MkEn$Rj;wJ%)z=alfKw{beI5R& zONA-oR5!8qn;w7x^@0)%$3_2U7w`Qo0PMgTOd+;&Ik&cdZz;IEUaFV?+c$PfpS z=TDFx_D-UDMAfif!50!YQU&u7@Fx^abGF4fb$rh@MF(E8vah4k(d0_Tab-phXv`0XxqpWAOaUXQ(NJP%xWm zf;jOwokwdj!)h($Swi)uAfPyW}Ke_Eo4P<5gFO&W!qz7@byzcZgoVDU9b<-BJI?HeUtGs-^ zIE-S=^?hQEJ&dk^)F4#&c`na;u0AtTsL{`#e85mZ@!h6S+&l)vz53#f#HGJ{$*9hO zkKi#Sv2Q|3QJ|9N*Zf^P7J@G?e9Rpi#P#HugU*v0;{O_G6XkX>DyxV})0lu?h4-Rb z+$ipAjS;!5F}Q*s@~B;7nZ;C8p#|YAwujXWmL_SrU`Rlj8bBnFm-&J@QC>dWPaL;A zpifyT26Nifk-=^}3)6HG@VCj5H3CEiI<};Q@g(p&9T$)2694W3jC$h`k*JT^0bfB| z#{BHEey8rN*0p?x&L5Sg8a4Uv+yeRhPa+C_r{UfN>c!-En315YCBSp6tE*10#XGkR zSPouwk=)x>izY)NcJX&PUQqL+rSmu#Ntu(lPpz$m46SG@S*6bv&|_iAQvR;AV)n#r zPiXHi7L*EWh>uCQ`D;61sJL<{mJpxj)$SFr@y37dW6v0`dav@0MaVI3p6+0)KW5VK@#ca_x-Uy>yu2 z-FjI?R8@i09v;=UE}vqJ-E6HAHvU;dkVLMYKiSMn9?H=cFWs-C^fE@5`7+{#fJF2xd#Xfb5te%5xKgVagFuQJiUU{_0|O^Oz2T z7X8DYnN&@+L&!qTd(Dl2!r4J;cTzK}mi*fUo=`;EX;!fTJ%KoOoHwgMIq}Vd{#<+A z_gtD3_D@pU@XA!w@G*DUe6*+A%Y^nh34*Vx8!OO(lQeSJD+?d!{|x9|K3K0ewd=H> zKDk^yin*l@mp{GWgSP@8D~b zTBzA1cF2?f^g6QIPWT@EYdixAerEokD0lbDs9&!5WvC5v#(-Ir*;&t&h@359TLP&$ zis|;p2ScVylauEPZ}2iG1^@*3Q7IlV-Ad*4g-!jL5~p0(1-*x~Uk4;xA8Y`5if@*L$kdIM}O?rie&|5-(a!tOecNtF7`B5=7LyOi{W$|H<*s zbCJuVk5;p83Kx0kY<1Z?j88O4=8yYe~zW#e4!B8xU%K%V~zzT?wL`J!% zt5k<9(D9maFw^pk1#)~C{=#D&&~-<%)@73o&HF@`OaX}Iie^0;J+^~L!W;z92YP_RtJN_5sKRu6t#9!Y zY%ZNSC0S!+$)If9&L=zX2Qh!Zg;<`nhDA6TOF_Z+HX7^SAZB;{4~Q6R|KUS|AjESb z3g6`d^bwLXwQcOR*gdHG^M98Na}p_Uz!^cCP=_+Ex4)S*(HHI~DT2ovlNU6tU(MHj zc0v;CuzcLzFsS+m6dnc7SEl0{$JUkz*rKwfONZMrdf~iQ-i*Ab?vZEVVA$yU$(B3} zV8SxtPV3#os}J^MZhhCv9A?+q<1-W@isG{Kv2v>%W}Sv!c~A5z0f`D6eb3Qpr5PXq zOz3w}*~kMisQi>Ldz;b6ahubmDyC-uJ)}=H{X67U%NOpTc}T0=@wUWU@~(uUMs!=(leEmmVL@d$>8_(MY^KKiWjIhGHQT!CIO9XYf=0{h zb5FRXi3LBIY!e3%b@*16rH%qZl_zRJ0xI<}{CzR{aeGnwmaqaIF4l~a=|1K!j8RHm zt{F+8{m;g3gU%RupVNGV@-z(8lOuzph1U@r4V(%7CIH;(w-f~Yqy8rz`$bw#AJ}>1 zV-+)v`Lq%+w0r9D;8*wE>3DN&r|h=Jx}JIPPrwB-++dfqJAwf<1y5;2z2a}%cgZXG zOuUB@YDtA1v~-X^ogiX5-!Oz9?WZmVmb)e0r8y54^d;yI44z~WvC4r0J$szl6Sn-+ zJ9|NV!&jW{!6owJLfu|#J5IC7+>^k31<`@R_|W<(v*N&cP}y_W9eGWM8V3fUp4hR4 z{E5u2GqPk&LXN``m2$2v+75)Gx|WPWJ2+tFph|P~WH88&iUF*Jo`U&foF+KPWixd! zw9t~>quk>A3oKbRS(!r@8r{*v@W8;4oE^P&SP0pE_6~)~?s{7!h50 zH%$|-OlM$B;I8^N+>BPEPU*@v)&BA)h$Ofu`)|T$xVT9msmYh=`Nq3*TL{xOBe`UM zJH{zB|G&r%n{R8Ha@uP#;efy@{;(r=$p~s;NI=Cq*DJ+~KV=+vlBtf{h1nwM|1~No zaloK$`v29Y_5`Kn5l*;; z-!r*>^b&MGCVxS^xvB@|34gi2uhc}^iO3R&uDLbj4Qt@ntvIQdt#NcE*T)91C>^1i zmn~5Yt7K}Xh;Qpi-45omQLX7gWcdg*l6zcmHUa2*~G*MiOq5MN|4HNRtITN^J*niPc94GhqC0aETV$|#UVKd% zOc4nbA58q%5dUhdpmUfwOo$$fM;Qt*4zIBo-GpQKGFk%4*bL{8rC@Z+ZI*Ndy(L&+ zp7Xt$K zM9-~_Y{+*t>CtGfe{GYG`kDiQ4ek&8O5;2FJ@t0XbvYfqz7*hp;#y}lJ zRcb55xIED;&xScDZ$2SS9C)4kQPPzAGJiheOnhCCA9SpKrw0?U;P@IUkEhA1`t6y= zpiASUHNVQkwJ%u>Vmp1<4S}_O?gH6J&iW?Zn&X^Z#QaHs&il&#rx!Md^!PbFrY$cS zjO#j+k^GYga@#0vt2f$u@(=%{lJJJe0N`(h)q-^~;UONduYvVB6IcEt<*<}(_mUbLL8x?nu4L_6F zA7A6}tB6y5zLr5Wwm5g(PE^<1weKn)Gsc1;>#z442k%<#YiL+k<<67YO74{Z|c2`!?0flC`-~n0DYco zm!7LAX3jIgTjUh(ADUK5QQ;jWy4{(=SbmX}!YGj07T9t6w6-gZ@Fo>0Hkq)^Ibyx9 z2V|2j%YBAgt(LS`K>QvePxa(~4s+(eSwu^DSpZ=q>UrJ}IoSVgr83?(!Z>V2Q+8yZ zt~d{`)I-bau~{kHI*m$1v0MRq{YekY%ng(Wh&G;>z`CCA$r6PSZ!kBxIx*-kWH!c)BQ zQF<6FLZc@B#|u#GaydwJ=Pj@kb)jk)Ot53Fgq;3XrB)P}bbrmXlZDgCl_IDOmw7iY zU!xIWz*}<(fWFnW;S*j=XnSnItSMoo6!+_EOvo<`lKgx29!~-fh0hFPr;DmG#*YB( zGD4K6^f3gT9ef;wp&KgSd`wTOel2aPERoqwEUf>5yb5o9 z=@#MfQ{_G9q*T&&3UfPTt=76KjO*LUH(VEn)c5!-ABoA*o+sV%HA77V^i^3XEj3cv zMcybo%mNL6nOiq5nOpH&Y)Jck^rm?VSd&-M37^TIcHmrciPQeLV86c3DN_jdF_D6H zC{v4?Zkd?GAm8I}EMOOjw#HH6efb9tGDyqDPW}fX>`!k2a~a@!1B{CjN!hF>^P2Au z{AKrN45GkPw&3am)Ws(#?erCs|I-hJ<%=B5N3Kh%o~iF#bch z3nT~*hqX&p4s%VpJCV7Ia9Y%VMbUlFmF}5$VC>%e`s3S(A1l8iY*`6{m9SE5%lR_6 z7zted$ph~!ldRr;{==V#K9*R-LDaF`GoudBS|CpUlDnd8AVye;w={5wouG-gV6QBe z{zFA(k9}y+V5xOX)v<=X5ch$}Ohy0#%9WHIogQ*3jam_}Q7RV|r2D}xKrkxixaHkQ z_rNIAs%HrjN<>;p9dQPC^Vyy~f4k0iYcEkcH#(U6ug$Q|_7?mTqpra%b2=$OOa$OO z3ZP5X^*_>bf`zU3t}D;|J{vD=+@kX+@`)!$^9A3HPw^2j2HdqomKvIu4j!v}o%>;79QcG8PTF8(5yI zwrpNIeLbM*aVEX<#^JVd)Ij#N{GlRtTYo()pedAA*>dkFhH4=~J)&it>jsN0u>$$|iE?29~Jx`(yvI&DFA z&xdS5a>KnmpFtu1HUsBh|6^hP5v&$?>~)faw}1J;YUKvzCT7#}+Sv6Z@=i{}4^6|e zm^lB^GZ>uMml{jx6D#95U-vz*qNV{(ofyh$by{4=`k2NjZ#_36kWYi)keMbNtF>15qpfsGhRcCWcmL-gFF+&2$Kt75$dKA_}WP=|NEc08ke@qOxN@S|SoUa#B z+iI8UHZ0;9~UaqE&vOpNiNjg?m6}{%kIy zKJ}q0jIqOy8RC^B9Z$J&8PDIZ(a2>#c^-BFQT)Q2C#B>S z!05+QV4Y`kXVdkC!w{F%dgDl-M(;M8CAXx7+{9(I=CX7xnE{xX5v2Q;xu=Q|Jts3_ zIEA@2z2+}&zGN{916rwcytevaA_$LV(ml}Z)u3gZZM#_zph3qy*RpR3AZOg^rlq$= zJo)lg>bVbAB;KX8eP>V!aF1c5XN;eL|^Dj1i&Lqk<+k z4XPTHKv=Ol3L?hagy-NPhOl`YNC{rqAxpY3SEiW({k=Y=RvXZuj7B`NJ~mLSDb=^G^xe%rLC7h80qm)?&z&yEOe zPC$BM-<%Dtn=;C{b`q0TzS(misshNrV!f={8Z+-_-cd!(FN07adm07{3Nm3Xvxhaz z1*dP1SECQG4R+bRcU97}g**Idoxf`e-#%TK;Gi$mTVj{&#*=V+4+VgsO6zV`Okf*A;opL;e@zGnWwo7?BlS(^$YSpjEq+p@}h?Kae@e`rHev zGt+^r`c#?S))=maeEV!pNQZDzVLYXs3~62akJCgU3-y>5_Z*Uh9C6OPdt0`k_cAJt z>Crkrw|(f=G}o@#tfjxh5^gWL<^>uD9I!$y=EK>_H)0b=6OO!f?}h8Ip}M<#n-(WJ zaB=-W+Kc*)Jl@j>*t~LBV+or^R_QY(a3}8~lYB6%>Hn7)Fr9B34Z68CbtduM8-?1u zy6*4Ikh11#0pm9=DlWhh#hzOwN1|B$w~<@rY4%;Slnf2=~Ww)vjpPF7Kp z6#2-p{-AvAg`S}i2zAVwzo-n>ZS z_(XPaTErI7+PRQDjh7UC%$@#p0-Wo>489>>CAhDq;|9wi#LW9dNHv#@sG$i#rH-bq zX=S20sj=YGhdcYSckui>-bR3~1az?4KU1y3ps(@3D};Q=klaGVF=Y@AO&f)6Ts$DPw7z73FNGdz%&9 zYwp*sS{So`Bs=cn1KpWtK+2W>Nl zKZnZ)k2f;arETG6`$r^d^1S_2_8njoU1e8RmAFr^f)0+|bAF~?Y6V({VXPz)G4Fej zvoK0ZN`@hA!H1;}fF7B6t!@XObf<(G;q=8C_vVB(tt-ecsdP!tbE?;`){~k4mGXs} z#@hmTl2*pV%%RN322x&tScc3O%EZzkqU_@zyT^vg!%LW)aOmUE;fAh%_)~BT@FwRt z%$=3Q-^fOda6xUjyvB@|VR_@!^I7C4y~Zd)q%AnxVHW#Fz$R^6j=%F?a@VTomD?<`ELVdeyY#y%hf|8dyk&gbM z$SS{kV`C%drkR}J9o)Az^ax7tnU7tE`0?5TP(Lw))kcW#dd`C=n?vglY1A53-Piqn zhQmx86d}D|hNeyU<5# zxaW2E(Q199_W|{wMmy+6vB3Us7;W5ytiOp+6djV?fV{p3On{;S*AtiR|A&pE?Yne| zU+N=J8nUG)8&9HLp+IZwr%0clj0jdJ>G0FpK0A?L%aqt1Yb|o5C`y z1Wfw`5O*gt^PL%idN+@%1X5j{J3YHC8~4d+LJ09}{z&{YAQLl;`*j^@{e{kGX9WdSMKSO1verSd4E2wbRitpFC9Y{eTR;RNkSqyqscJ=ZjCO?>1&PF zz~bB1e-(PDEy??P#%r5a&wFOZNJW!305zf`f+J$>q^32%G0JNpE}20h**f>0Q^%Bm zTDQizM9u0^K@5w@{HE{31>2W_2P^E&K!=Y%m?!Rxlh%yV6YklN^ruUFPadh4__&Ugoe5%4mnPY`Q&n{%+;&uN8O?R)G=nUXbYp z;OWd{e;^7$$i6frRBT({r8<5nWK$rDmNALjvGD-&{53Q>_hQdDqCm^p_avko{?=NF zn-n^!kYqN>WL`E`qdJOxr}@IU0>|4v{PgBKEN6ScY-gjGj5XDwx(_Y+MuL!e)nfhE z)Z+$Cvk5@{7;U~^4d=E~;U2j&!M?D#%q%^lXS!KsO{R=%UN zo>EE6_xQ)@A5|$pJ1`T&%E-G;#pFFnT5rWe5cr7uSiY!!ULPm~NyEe_#c?EpcPKVev!&F-7O>+)IDD(m&$yfE6?Dw2A>~A9OzC~y-o;+2%#NAxQ!8=g(D-J3_FM17J3bjF8RDFnl|htDH292kGN#M1VXeR9 z7weyIvizF?i-|eE%#Dc+-)jJylADMHF8x2~^!!!-P6Xp$AfY0|+6iC`5qWJ%Mog*T z*E;8-#iC>ts4?OqJfdO%E`PDbx=361ZtqJFehm@_=rPGn% z(?2B5VX}21dmYcmppQDFQF{rqC{tCM3}jRhx$9r+@b+~me_G>~^~%!%M8x=1&+ovO z9*YhFO2aJmIl2ES0G*6REwB}Wc?(~}+R^(&|8-$|fuotwrKc=evWj-%_wu4#rFzca zWpzRGJ+EnQ6D6l>CKVeKpcGhx_%fSl#T>@9Yng!cN1tu!4@>_KE2%5}k8*eKs4oTB z_m)fzC&RV`{nRKrynJXcqKis7&xq5)s}RdB4#;?;SJDz}rQqPgvG(nPj!_bDH^pWC z&h|>Jp(UjKupQz2m_gT)i>ZuGOw<3{K6YHo=y0{3?rxX#&|aTt9LzLmhF7EY_2f;a zwW{c!O4?Y8vGukZ(xfN!t-5FdEV)mgP>pMfk4ziS6HQkc3U(-&BXNSS3Q1$QFuc=w zjCXimcZ^xKDbXg&&Gs;n)vVQPhOrb0r7EiT(T^=dQUeEEy>t7h^xqsYj7C1!fWlnw zlTZE%oOhwm8rJE4{*L#IpCRG1oi*Jr0^HCe!I)hNxz>E_mUiQcaNS&(}x1if?RWiX(EvqfYw`&no z;Te`>>cmj`UJ4!0%8TTNHab1jH4dLR^whdb-oeL`wfK4)wR9y9U8&RBd!Kx;banDA zgz3Ird+Vb|t{|pFUYY|Y>+iVH(^}07W88AAr0f#!ehvyjNLQDIzgUL{>(Aj^ zsoDQ7bk=vjVHn>*tJ8wf-eYtrbRQQJR8tUDQ*8B|%}#@rJyWU?pqQ+!uU4#gq0b8p zPDT4%jMjFO;iSaeCr=xj=YUf4&AA3w zT--N-HSx_#X7QvxyiO}SDc<}qmb@QJWV<-loW^9Ep7Q{527##1l~ORoo{?fb0=*+_ ze%IKnCe#!YKu{N}T?gW4O7=7z4jXvUxC3P9PRKvbEJpXE>XGSu+#`6<-xE(9!<_vp z3XGOp&`D~?)pLtNF9o%cX)!;mcgtvX^W-&J5S7>I-%yTvsX06Sj!^OzVD)PLBuQO( zIIk~Ej|T(_R36e9evunD=vqiOev}@M0?alf2PG_)Embj?VKF{s*~G?3ukC%svUN@> zgNd7pJ&|hc3Yf?;){a{bB zCkHQ-dJ|)TgLP5dM2A*7>4~}4p3-|IOwwr}PEGeUny6p)6#TQ-Yg zW#&aw<{`Q#nYA@LnHB)?!yYN&D-|tP;kpWB!YQvX0r1;`I?+7Z>pDbP2@O_&6ej9V z*taVvu^l9@ENT8jKN7Sl;niWxh%19 zAwLAS!jlg}<0`FPx9+CDGe+EEhS6M@*|8@b&`^sHVzdkr`WNbybJK8k7j1R6hcm{W zjP#Ko%lx_80owMCErjIdbzT63_daF~9S&qhQ0(;_;_0@e ztOuyK24K98^;1-bz;4`i{PnVY4g2K@E)3a1};(gkU z@r3M_FHzi~NCgYNAN&J#Gx|cG&(*6*gtrLKjmMCV0Z)v>ZnNDxe~=5@PLL!L(|Rfk zw^FwS34~cS?`xQoS^U_`(*Hx#RfaVgw(X6SR=OLMW~4Mq3rKf2NJ>bIn51+`HwcJ~ z?(S}+yOA6)U^E}^cf9Z4{n&Br*!|qkb)MH5Zv^Z)BovWS7*miG!$~u2O}HEp)REpV z-nif0nm7d=W$Rs*)los+)Qn9;a@3B+(e@Sc)ghy`yNU*=x}_Z9^>IS^S$+eEq>{xFW>+U>Wr+dx{~kCYf)ZM zyN%t3CDl97u`ad)s)w|(KfWGcr2K+#BLxR1@p1fQP~jJjHW4}q^Y$Es1tkvp=B+r# zug$Gr0_*%}OjS8=4VaZ9@SGbqGv|yK^(f|S0c+J@Hcifbl< zx+(Ii^smNh^38U64|h$0cgWp;h#-sQa6xZaQsr%JA$ z?;k?QBDzw^$~(;rRi|x5+{!qd*Z{`AW5yrFSYTP8_??--f?Q^_TB1%YAo_JrU8oFy z6p5t${-8IDHdk~&p}g9+aK=K9U*C^buuwgKQ%w?j9a!6e)TsPrsd;W=43hUwX5&P~ zG{iNnU|l@zO+;4bcJj9uN(Vk>ByU2Hgz}SHF~ITmA#PX%sp5QT3h}_d8%De2(!ZsyEBDOe{@c6I^WI#+gbHuMd{DRkr{64{wionU zMWSDYVyiQr$c{_oQH5I_B7IcY9Fle`!S$59!Vnl3ru=xrYJ>OgP}dw|MT=)H5$Td1 zSY~$nq|CNgvg?s?<+tH8oQ|UhZgm4BaYPu}@^Zf0%KVzfy?YU%i|L~Q5*=+oO-NOo+%KTP5|=@U=Kr(+oJt@@Ne(1HWUn!4c!gzTWj?z;yAc6b&146M z^{#h?8sj^xhT!|}e3r@6E+B*OA~YOJr~Pz=^)Ln0>Vz&HZPMmJi#@Wh)mgB7;{-wU z4&H>L8$EilPiFz~$Vxks@Qjd~G{8nE3r@?Yo=?;Z$d9!IE8kw$5|8Xi82w`1s$93f zyXTr{6FL_6FT0<5Vvs~NXqm=Dyp(?ZkfLo;vm5^+o((cs#jKn=AE0GLq})p2ANLSL zFTEZC>?Z?k^)7I;;)_gPmArxc-MhcyC-?`RbNQhmDOO8x0_2tx_3hpmxeqv98etFa zbFMp8GxfwEJ;KwO8t3DmVv=7{BF)B@;O!9?PCBs${S(wS2Q--icy_E9(Wksuqk=gK zzAK86)ZA`CHt&{?ua+vjOlEWTOCnz9@REwyjE9KY1U$yW8l?&_fXq>Us5AUd*jBOp zxAmX(7VwSn`Cg6u`XfLva>kS~M$aW?J48BpEhnA)Mzw@6^4IFFc*&RHp9Hi-w4j)8 z@k_yl>7Km_Q7b`XNKied*4f~^A2@C^ zj%Uomk2``w{DX&yx!hIWGeO^rGR!JYTco=d=!~S-BsUj5gW`&_qd^b{mis>l5zbs) zBLLUH=T`+fjJo{fRs-4wCQ!efP@)-KI{SbUfFj_L+#XBv$Tz3dM}np%g<$Aw2|clP z4Vq-}?2;*rg2bfn?1$B&ahq^`!P-4UO=1UH+YvQjH-p!zn~DDl@eQlc%S6)W1kgRIbs|%Q5@R0mZGin>!gAx zj$%(g`}@Eq3k&`9U=WD>9(`h72NZc*a{2Y!)1nPtCGNE(<|n`u|AlF|cI!5ljWR$6 zB4c0l&f-eO_cxuTW-B~}<}OCW6^g$A9eyeKv^>NL*ya*r`;t;w@JZCl>`nMY3V-Cg z@)eyub7}~yAnmmveO1)M+uWkU`79(c%@Mi)?LS}iPt$_Es|8Zg*J>&0>8(VKc3pOEnKSG?qAuBIB*Pu#mi* zSCj-d$XDWe;>{oWkF7KC4~wai5k?R-qPq*NAF`Q`y2!ps7AHw!b|HlNKeIca5t!3^ zv0zD%%8f@qrgZkvQy)0T|6BC2h*4&UO0n1kG%JwS{|&hzF-o;_KC| zO;L7#1XlQS<5j_FavKY^n`_lrkf)nU+p{8x>*C(}|Bp>$WQ{vE8`omnr&KvlYP0_B zmjSCIj%26TqaR3v#dkJpK6kc>0+L8oulVY^yGHOW8Df>pDO~7OTiw0An&ahU13y3R zPD7$oXQihdUxJ<*H$6P{6P5sWm{6YGlkSK<9o~u`WExAH*#XJ;5WDTtWQYF{tP)i_ z?}WJU+q``;FW4)Y2`xSZx?0WCcL@HQSReox)P(xr3oS@us_*^Mu_QYeuEos$z(JXd z!$#9p`7G)TQCQ*(cfVem9N|IpqCibJFYA@kky?xcc`b1O*5Ux(+8|bJ%}zob-S8|n z;(LDdN%>lOASWv2oV4ThQ=)=$JKo$S*&>0IcJ=PP+;Vi`I#BnFybc%dcvyJG^L3|_ zTtN5x6hg*M zDKc0YbM8$t^Zrjlo40cn;n_sUr!uh*rIELvTGXC;y^>N0?hHsHZ2?MzRb&p5(=r~*ms8P$BVNj;!ip+ZfScyXbvHWL%CkcCuGUlRxw9o z?_X&Us@8bnp$u-XA<=6NwtovhK8iTDGO1HJZ_^5xAl*RP0Ui$to2w{DmbG8|3kn;V z9~%UT@FL~AN${DDPg~#A$TG$5rweu6sA!mH zV7u4A8TPdEO-fbM&NYhuK2?k}88PT>uJ45F7-%i^O@*6e)tg*v>O;y}vK)yE?ZE|+ zDg*rE@D={4cN$lT>jAO%i+QkO@h?aBoNg)slOr{2vKjOC|DBx_MmzCfU;h#bw6 z5qOSQQpt2Ehf<*kb<{w>->U!t4t2S4&E)QuhW|KAzOjMtGg zx6E7v;e1peUDHWjoa`fQ%~O&;q-7tlsR$HirHQKDsGX#@mgXt;O6&gAfZNK8P&$rJap=aygnej5?@70WHALJr_4MFzb&zhD z`>Ae#ND4gj{G#T?w`C#>dwjU$*F;((XzyI(MNL+l`fEb8k|`hqpU}jb(C;l93mI}g z;d8lvCb{tZ`ZdHDnarj1F;*b{8C&dS`-fLJ0AvF31*qZrp0P=8R6bf;nk$S$vhErv*ez$nL zd>8b|rjTjH^&SX@QAXw?Ve09+VcMd0V`mesF^#T@GWbuJA2oUpetWW@`Rammt+~eU zjhfJces+QzBLQfJB19jcJzHe`E1VN+Q60%hBoe)mK&7LxeeoLJ0N@XEWwA>5&ToJi zxgLn%=tSqH>BM3=5~5KJTmqNUUxi~Aq2=!N9ygNOy@k&8(Ldq-<{`P!h3T?TLh^p8 zMPiJ>|1D~UWPxJA1iUOjGTD#U#`h3|Ccru`mD}hK#;Lfl0Irj__bb^v{ncwhUU>D^ zvHizhZ4DTmb&3l;;iHlT2_0@_W2BmZncgGS@8z;-8g%GQY0o0-Vo%(xr?{Exw-Fm9jc0K^rrZm)?zDvL? zX|IgzS3^2t+hT61Fy9PsWKYx`K02@mQ4zbBG&r@*f7x-XLaE=qWhl!b#G68oX4*Pv zDRj2)sYix2oku5VvM8{HIaVAjZe-tX%=7U$j&=MGBM*&t>NqXJ#Nl-(TK9;s*!J$# z=V7fTgv96aKlFqO^&a%7HoG-M;9-zU!XHMRGKSAZ{TKG27S_^Uo%iKE-I^Jgsb3;d z#|-CN27%1GL>Rehxa@+5bd7QC$j6LPRY;BW&-9DO1Z~~@q^?+^Zk%#L zrc2aW;xNAsJ~Wx9q+ZX#jgR?+CDTxbMfAom)BfE{J)WTZ`o^c=C^zZ;(hqF4B%ivh z#riE{Myz!I{vtU~&%(I)8x8Q|K0{zhDFDF>5X0C7u47%RAuyTj?d`{|zxr;dE()9d zMsoP|KLf2novHk6Vr3@hPgn+@9xX;%qoSGAY(8hD>}M01upTY~H0nU*(q#sl0W=j- z*G6k1hlpXfPM<+n*x!%D9Of5PYSr4f)J5mLqnVte0dy(N@|Y9?7#ef<3z1!ZceU!* z-a966%+zy0WGk%lj$YJ)FQL2sP{nXC4qb{^<`uwW6^5T!voloVQ``sFK}kebUJ&pe z4}I}b$h7XQuDfgGm4DmJe|aimtX5Cc<(}8sm&%XGi7qNaI;uZ^3C)W9!1XPc+N@k3 zBvX5`prRSzbV8$h(tnI!r2p>k67xktr7Q=%b@+zOx7$e~VrB1~=J3SrKKoKn=IPSP zc}>?#bEc~U(#O;{aazd9JH!@y^4RRi3t6Jz>ZlK;>TS_$sgDHRqhkDet=OZYq&~BO z!4jhiR?+l&Se;An?A^=1_Daq}AnAFGb_LK+fa&-&b^46bb)t^?GL*6wQ2w8TA~eQx+vp4yozW2 ztzt5##WG#?cya5ekNB%dthf|64cZw4S?aw!2BykzvJp?mI`Ok|xpborhYO*(Kt!go zbpfH8vQuh3{2k-prZb*KjV%*{_g+0{`ww{&fme6?Wb6BB(+V$xNRch^#F|0J!x!(c zlyQ+w-B8PD2}E8+1GO>y?!Pdaa~ONY1@43haXu+uy4LXD=0Qw?tzom`^QLk#Yp$Yk z`m+;0IUEXS3BfN)sU34;e21^gAX_rULcL1s7h2UVGX*WAK-XP+z#-x(U9U1h0*C1Rri|FSE0Ixz4iwm zt@i?Nk;BqoP_GgPX%isBEGhzhukohBjt}WFiwLj{fusz_SSZ6Ykr{)dSV+UY5TQH^ zdgCIdbSDSoh^I8y05#Jdm(vYO-bOQc6M)WDv2WUY9h2pvC_U;6$di^tRmZ#> zS3~|0pQN+9?qfa%#f3Zcb;k~%GNg7R;fNXu;w;2ST=U{SF8{qYjRdP*x=L`leA&#C z`<7~+4kg{J@J9%)j1IYaX!Tc{S=lrXST9$9MpVn0*nrj|?CJZG2Ro9F0Q(r+eH*x0 zqd{av;a9HNdwucw7NgwOrd(eV+|tnJ>Qfo-%(*inx|A!CWL!Zg-uD2=uBtwhdT@@CAHe)ES6)9K`xw~Y4L zp_ZBq`^7u-O>v?wwXH`Oh;5Vg`d9&=f|Vpyc9xjP&n2TlEniKUGVVP(It$KVzHk1} zDJ{tv`O-$}IYJVLqG=xO=InjCg@nRpvc8}~Qbdid05HZmjVzonH=IG54ETu2aYi{y zN_5G_j+~3ZLxau=dNaKN&5* zg)Kop`+2aFW=o|`*@!k8=%XfodeeORGy1qj#CI{_*?H_WUNNH?D~yG@8ORG?3Ohjm zgmPnR?{X7XqP(d@d@g9>rMB5dWI2IJLj6zoB>VZSV=zB$kN>|*HbYn5v!RN$-S+FA zUfE(%{NdhbuQO}J@B5`?aogp=%FtYecM9{bq)O&`6I*2h$KIx3R(MU|CIts1AOEcN z->@UPYv{|h8ZEy7NcKNQBraX@a*+vS5hP?l^fsr)kvhxjh;RIkD~g(4zPyc5B%V?$ znQ)?W8tJ$52^ZQHIQ{TKS6VYm%dqWYlAju*!K$7qWJ z`E`v!Ycj7d>fFR~OVkcicuqpu)inxBD{|_hmG3n|qI6mxkEUe{1ODAb;y5JiAkCnx zFv=f(1<3il2GHR_!Wnrwbx0LuLLCzs>o`6XR;7VFEt^}7?k3-2Tx(^Ke4v*jdnvQrGqu~Z&j~)fu4)~lIS7)@*a(jyHC2*a z8>5!5iO~H`D?*ayZw)0BIwJ^_B=(9%UrfS=-;5*VEZpgl8K;{ZKDmb zlD)S!81%vRZ_yAs-^vLW$ABiPNS#E(*{p-MHP@V8p$iyh5q6!g_M3Xjh#35T9wj67AY@-HCzyLVczPKoai-b7@QUMw;Het5ovkhOHI`j$tux7lF zaB*>!?-&s{#8oP(+uUyaUPXdfzf*O3H^fj;3?5np(3P{hX&>+L^jx^wOzsjIsx6X^ zoMD0)5vh4l9RA_p9F?#M#oM#2EeW!_KixASRT*+FPm6R8Mvgh)F8DeZ{=OcH0Fra_ zW{4Ko>|5$`uA68<>nTk*`Ts8aCbFAy62|XhJlWWIe$b_zHh;6!WQE{_>c=W<%pJBLcVro$$j6iwE(obrs1JSEfH3D=23z z_iDsEvu0Jb9-B?j$5Yj-l!qeTTgU$9G^cj!Cfo1qMMa-1>U!3<8PrrVSg$7*-*9?pp)ei9 zc#zzYP^sL88bJ>>N+l3q|JPPttSpY4I!bBVscKFAvBVB5z+z$$m$6(-SqqoSD;4Q< zhYH*~qO)F8yUH+;&eZ9Z>?ilgUMLn3y3Ca12l~|?dmETP4Hn>1`6?+kE@-xshyRA; zYp}fuQ&ZV|&P(&4t3;|Nuw)8U6VpW4e7DOg#c1#rKKv-2i(VGt$&gYgRTjN<07)fa;U2B)tQkS^%i)Dj}`if z@6%_I-8n2jn@={&rK%j75G&$U9O>nd8JLUvm7OIg@i(@sB;0MiteoWI=@BJB2!IV6 zElqYJVok|1)xz3PtkVxWxctzN0}_xk>+WSDu`o<-G}0n!0J2OKs1^sDU!%Cj65^dz z8~q2%{)951AI{QKSQT(bLQ)M?+EB6 zq^7j`vu`12_RcN2OX}&Amc0xqb^Jkh1Xssk0;7|>JUF;CEoHzao!w$>RPRdvFQWvl zZ~`sG_ajV3_gk`X%6QP%_T>pKTIS^XV~g*=5XoLl(cxP| z_Xw?gzu{|jQ258OFXHvX${#Nnlk=ngxfnrtXq^<*fqLyoN^O&l=-!yN{knUp!iVBq`o zF2Y**4Vs*+IDYK}dQ399r0UQb4=cX(bI3FHJYLzqh;B|l#R1V^MfOboYz%2 zyVTqJoj$NKuTzxDQ=(2`v}BP!I6T>Q6+a}pVRLn*RVy@s;+Qqxb0AAoKU#@}D2 z8b;t@>%V0fFZQ7)(;$LSYNa;O0>%I(ErWwyi(5m=452+-6&hAtx2kti4ipQ?6uH`J zz4T&LzVq5GIbp@P;Vb7=)g~IFAL74j{i;(isML&yjP;nLUf0JukxcAq^qGbBeb%&5W7_!VKQi~%+$=m~t-}Z>jo=y2g0Y(d%m2RwOXrQd$8J4I zlyLVvVbcTKqH7Wz0(Ht=Rs1fAiXQ2^P=9+jt8@)%P%^^WYjM- zhYs=J1e-qwt}#eObg@d4JVVC5v}Sl;bO%4`Fy0q}>>+g4b|tYTyKQJn!tZj60?8ro zp@_JUle8u7K}_(Ly6=4OY@@1oKd337vYPMbchZ`=GAq(;F%<-#t^w=Nzew_^#fyD2 zS*%nd;-tzV;KDT;cC{#=pL7RO(k_nPPwz{YTC+(>+ZG`T4Go!b4@q&%tFo-9g1eVp zD-FQ$ez$-4rONSgZ!IFv?bCLU$FMZv9XA*HiN#)(`*kW_8@lY(04BG=x?T93zO?7# zPH(O>Mq08BMXU$lydzs}ByG1H8tD9@x~L0=%-G2~VtZxQyl=pZB~2wsm!_g|HT&at z(mc6Rq^uLR{4TA~xHZ(BGicdISF-xh!eXPk^It&w(wFYBmt1nam7vy0CwNqm&lfw|Y;w7)p}6+}i90$39DiqtfP96Rsu) zlgw6lZBrBEX$&v2#1nU>s#j*Cq(NR)4Rj8L{8>HJ3*un$DU^>-Wc@s@lhM-0d6>FC zT6YZJJmcgNgrI3B*Zjr&pBA7i6-Xr&t99CC7H{>Ui@~&Tr;9&)`*y;&g4?><@}K4r zMRu82!JBY9ty7{l)pWi|3=B|h?AcT1K>T@UFv4WH_7=JGQ=mZ z*%p106w&-alO`_-McyW;o@czrgfW?iAH^ZN9JMAdsd|IZgQwjJo7=S<9Nx4d3<{qOwhFQ6`^*K|RL#PP_ zeWe#1lx?fFiPc-73{} zhYK{AVioo*vLKFn;sJJ;Kz&K`%}qUfPV-QIYIuM&WP8X|!pc8wUsRGmD>ebeA^d&6 zf24Zf$H=!|#yoDo5oxLilmFrz!^FmUrWZ<N|Y8cJF7VPOR`hzG5Z-aVmY6>L#6>+)dG`&iVG2(WPt|eNZ|E-&Cbk_5dpi)j*}? za`{zijp72b<_)3AAia#BC8La|scX)l3`)B-T>cQKdrCo6bTma)axHxDjJO%K3%E&3 z7dv9!3CMZRkDwbg2Q}2y|Dd~janb@M=P%1&cZAMWKkxB=1ypyg08HmA(MY?mIQVO)e2M}oI$rg0p z8#jrYI)Zl8j`Yn&qNeN3hi2p6P{X>e29X6_X;^oE5LCWLqcC#>@>!l7QB?RP0Yhbo z%LM_ms<9pMpn(9a9}PC<4G2CaU(idO+u%f~c=^NVN3>O5_}kz#n#{fB;)I^5iVystYqP>L*3roFS83)IKj=lzWvg_`=y+;g#SHz#>$;ftY2#cpK_O$wM;|BWd#3#<+ zErKoQ7Sq&D5#O>cg1?@zM{vG0EyiWdwYzBn)&$IL13UjXhDsvLZ%?r_7V#a@lK$^$>`-OA153YtP@rbNt@VVCD^P=R9l!2LhcIXsS0+D- zF|4I?5yXx)nnpfB5A7Av1yX9+zXn|EDnwaQf-Gb{D6<`O)t>fDe!wp$<>Ad55kcJ< z(#B<87~yL_sOVrDF{rcQu!ED=kZ?spk10ssW^2}Oo?rII)&4Bq_Csu7F33@GhC~q% z7KIJZI9X=z-!1c*lG&N<@mu$W;*SwOmRLrAi`=o=V!*anS^Nu8)?Vwc%ApnSx8N=4 zCRSc>pF4`aiv9@U393s)y*9kzRPUIA!lcM~C4ljQX+Ztien6+&@eW9#a&S$@i$vfK zI-6c060>$Xj-jX-w3P*9*(!MpU=3(?R$o*6dm1D4*XcfweVXhMja!$yBgNPeMS3VaP;w)+ex;a>_w z;GdRM_2nmDxx9zPl<&yiw$!~jlAgyfJEVN)CHy604nJz?GkXt-;$xrdZ(?-_ND32x zchDo6N-m5CQcTG)05sMSa}H?S<@2O&?sM#DZ$EVw_1I_y<#!9Hbq5M1+R%C{O=}_F z8dzeOdD!VfWy-}k0azH%5Rr|6j*m+XKS&Kti{>$MQ7ne&FI%P@!Nn^l7pu0g!JiB^ z#ZT$Pj`}79{FJU9209+ij`qSk>r`4D6n!D&tKC0n@U49x+>!?Bj_*^sH_r)YRddDH z2+9_N0tFkz3id}{@p@PFZ(Y5}h`)s-9CIV$zmKzyGYE3gp0e1zjft#+`x_0=n{v+zl%rEhrI?Ge9qPR*X zzQ&1^@QTH?DLq7x(e`P5+rVlWnAx}bCWT`ThutFukINIW$aj2N(=<<0#E$L%S5&6y znH#~U9m&Y79v9u~?VW+7%8L9GY=no*VJ&bWSS9Mh@EGwdfVQMiJ&~ElIgBEJSxptc zPnB#=3Q&j|VNEM@1dj6L z#?DnA0g}&A+z6>ktHPVcEm)ez4dOJo)f0ItfUAc!ml@VB$^c9~L+s3CQ8vG~=YH1q z`(8r!X&f;`-SFwUx%OtLefvqw{q07fuUg0B#*B=a(Vn+Tcl~eMJu3IzB~DMl+kN8< zpU0Gk5R_p;DEKORm)z&9{smp#Q{+ex4=oMo%ziu+a?CEWs`#Dh6OQ}jnOX64axBcdszICQV@J@n(D8DN|}N-RX- z)x(vf>I~VWHd7{5E0*6lP3+BP<|EUk#$a9&VxlD;GAg_J_=ZL{7wv|}HItm!U#IH9 zDSJ&_m@^?`z$T>WwPu9@FUcQ{4c!scUZ$%?w_m-6mZRPZxdSkxJ%}fu50#u4yFRtB*l|}& zm9V1Ji02tHLXJ#D|AFgbR6Bl;EuG{yaSV(1`Z>Y!eU?BhA)%^n?g!j}?N0NKCum?d z-JG$vpC7${=6o9R^rQG%#Wb{<-yr@m$((1TinsW!bO~Gwb|-syiTf&^ooIpa{C1y= zSv>9@c?P?S&&P7?Cx#pjFY~2_#TZBOFV=9sgr^sI)hO-5uJ59D=WL$^-tBTL!?ib( zOV|Dok}lfD5`VjfFBexMRoG|6>YG{-zGhAQe%{l#!E62kU$i?JwCz7QtEYdi#4cde zp0QU(NDqSAS8sy6q^P9)Sz<ExF(kS_m6Ek(78O<+s$>0+lZBVo#D7~QwmIXJ z(rvxfZ)Rjr;N^$LSvNn|`y*&?_q%kk3EPVI)8EcfpmNHTc#MmMRD0MDT~(UAJ%>>( zYbDSoOG!Z5nSPVj2YkAgoXh=0%ZuKg>e$!4#&K0XmhsJZ=rKUz-hFfX@KXJ0zQXUJ zWz4eS=)?x@_Fs~=I{W)y)U-cMLBuK@lV6MJ6ky_sfb zV;^B@Wi{Ifl z%JUuSqgpayWYkGpr>|!-b*fgu2Kg%Rxp9~eKNj4s{=Oc)s&8mESzOpZZ7E!Tylz8Z zjhM6Y=bC|#*`AzG@NQ}y3ZdPZvKrhkosuQlu(_brTqn$V$E4XqMl18BUO3o}4zHY9 zLW%6qN=LYZ(mP_ZgX&fHp_PiCegYFem{RRpbml}7w&y?`AxdGb z^pe%{2}i4w9fP%yw=9&b-g`cVLk5i;!xgE@aFQ5JkXjc{h*dAevC&!LPO)I3l-b>GW8>W#webFF)&c#hY*$!Mt3 z^h4R6y*#bqj7!NvRv$^0xq+r_-6{W+N~B6#~1B^{IPCaeJspBH$Zx98^? z2Ugs!0#kV_gUzt)Hws_zvZCCW*>%r3@NL!A$pVJ6$pKdEZ{E+);m4m`DM)kv>HvY! zZg+{0?try+P{Op~Ct)krZE?-JAtt=`EAfKIS7K7zk7erDL|g+QRaIZc#5U+&6n(qh zNW?oju_)D1fJ4BMo*cF*qVDSUBYEd%oTDpZ3|0%9K!r+Mtc1_f|3vAjV;xh1 zI{g23Y@jV`e{#(`N6OcCgU^bHAGLp-CwUn7=$(EBGln;MzKZ-)H-P(#s8s;q0)d%J&SS?8 zq=sNekn=T--qHNC)r-S6dwCgHuw6RYgIA?a>!-!eF6idxt41ZBlX(^h@j8R&!FZ{1 zKxJ}`#ijY=eVkmy0_E(|O-SAP!l?H1QEHPc5Sf2X4^RvTIERewG015_Z?{FFd)65IH}fag#^=b;Yeyo!~VeFLJOUl^Cxft z^S8$P0l2f#=r>|ht-H=NLF^+pr-iwH=NhLtunr*)?@MiDf!oWY?6cUqIZdMu9kRLU zu*7Zg(WG+J>iokmjc0TT$1O1@?C``L9X)yH@!41c8|z?>nwBjFJ)i)X)Mud9TJC&AToxC}ENg#2;2^U9SXp`_0WT=};)1b^Qd|q8v}Y zVCm~0+zIFGGr!R(qdrIia3Q#*sYKV@8`Q^N13mC8?m8_Mn498lc+r$SD7}FSAYN{i zWV|00+{P*7$zU${2)PK0`cLV`3Cf(T*LsJ@eg2iy2R3scmW%m&k(qs1qz=ezpMsHQsy|K#JCpM}!w~2-Gc~A_GGmD59EbbRlSFfmBuVcd8NbGE$9C9MRLIHCN5YxY@?7Zeta5qibq}jfi+oigU^O~ zT%5d5s^Pb}%UW(DZET~4H@+S^fei>j*Ol32Zmk4btA6Cq147EFftb*tCvso&Rcsu_Kl%{q_Kh>y;4H&=;%e z$Zuvp?6`3^r?%^anp2@Bgv=XG3ByRlfg$`R$cXp!G3U|gP|inK|8Jq~EgyA8^xf+| zDA`FL>p4M?Sh8H4y!M2|Dg;WFXdIy|`IEbmT>1<6CyhVNYQE^EYu@^jvkF`YXW~$7#THiI(0j4p+B4)n ze!Sl=bdkZloN3Z)l0N9Pc{zd;si;o{S;eb1PT~iruRBJq7e+fPFe-0b<($8k-rKC~ zlnkjegzPx2WtWS@hKJpd%^Bi*53f&COSTh#J6reW(XxXvtoxKMi{1Sda=so3IHF-Z zm~*P3P1pIKP%hru^m(xMemT~^BHv>{DermnYF<<{k(yp6lrcB7dWT)Kts57aKExIL zz*&K!k+~9`=<~Ij$XnQVpc+#b87zZ&lBsTKb=S6%UzKCD5U`LBv88hc0)PNPl|`*P zLS7vYoP>Xji=U@gd8X&gja?y|jc4SHn`K?i$bj!=g=VP!3?p9j0L_%}nG>IL{hCy7 z*+x&zonow`91nCwr!i4o{nxM8p88tS*Q2p%upgZWi30?dC`~Z|VZ_sn{@wDD5dqK# z!(DkeK*Y3k+Zp;D3NQKqR!zJH=$<(<>poYi5B!o4_P-0H1ShNiO}xk+P!!^*=3FVU z$%=~XVCYjOUxAPH!)b!-!#@U>J$w-*v0KZQ&qX@byG;%ATVSdlu^F*U$)dnlUFF$A z3al(^jab~ur@J#{smT_|0q?YVx^D&FpY5|v-1t)SCu_zk``;c87_Y}kAB-Lx@O(=R zjJN{O=yBlcid1@bS1SFP{@ks*WQ3%F6^+aoKUinrGl$7M8+PjR3OxzxOcV+uA16i!9-c3}d$%ao&USX?;87|v{|fA8a_%h| z;jOW5UE}v2?L_2Ps#P0d&1BfnBL2S~IQmAsM^yNO`@6EyD=zI#0IciaFRwzK?dGu~ z#s%Qd3C;RGXeNH!X7#>Zbko1K2F1lnY<}!0X`=J7p{~hBym{H9+;(a^`?>RO4W~Qx zbkM5VT*xW)w$%FyK*?}*1`^OCVD zq)1H(iAg%8&})ZHs?;wsEPPG1JJl=c+5M-xzH>kx_j_ri1zrIpOSd{N@YZ><4ZsCp z`+GiZUOMra;j@%6E&*DSmC}$tb|H-r#4~~vg%+IsCWzfDBHVWN<8I~c+^0QEi1Abc&`4NZdxSrUF}gP5KIY3nl-3+x9A1J;tToV4 z796Di9FBU&2T)<{m|%sEiL&jVt4sOwW53uN>uYo*r7c-{bep|ORLVIVhjb@9`o9F0 zG#e}+Gl6wp7`pq_;TWy7vL3F-vpDd&&Nu$jcAku>JFZ$sk7964rQo>;1AzA>iQfsI zBU1mNSqeA(BXV@KpZse~SbWr|-98~+VCp`!M z3lcN5@u8)_HyDiv^G{pE6R*VhJYML#Va&-20h7w!Yo%9g%^RiYKQJLeJZ>|2#<^;- z&&MB6!&7o(^@ZeX4WWVLjA1OkuikKGyJdS~390W4(AU+|z?(UynxEaJHK$ zdjsb0A@KWHRgVM;=jU2(?@#zgc8(o8@y-ccTLMq@-cfanvj1f?YRPVf%0Y zrWbLce61B(RSpG@*HK8-Pn}LcFo%1(0nG}seW=sYOzX?y}|BZhwgjQ+#u8gE#Qw+Ld zBxkcyvvy@{1cm=V8@js3EO3-EdJV;g)0KlncY_&^80K@2Xe>{=w}_{E;NAId;m z18rwShLqxxP^SQ9cpd;(Jk}w3zrb7$$DcLW!#kHfzbHMb54-HQRt)gD)&=h%ScBo7 zvqt8>eOdPVoAx6vSmNckT8fGCEaXYvcP05@?Hj;$9zM=-Q9&MOk7H6OHYUv6(mS@K zf0h?pGOd6wFE3LaHxkoG$`fP4*!<@k05(ItjO2H1Vw^3&=5ysYmA`!XqeZG}fs7Ks zv=ar7HO*}10V?VQq)D$XlgfGg%o>%~oolo4iLDt)V3+I`JQIy%E(zv518-3z*)+*c z+gW)k>Nu$UdfN5hZXS~Iys=SRZLKZtBQJV@+q$a5Glh}j)BscgTtFIAV^}1JDKKax z0L*Di{VD-)SmU)Acp;mH=K>%UsZfjf(wDyE9`l&T)OG2lOP9J08#cJjn>V|wuDZ%y zbImnw&6?^`zja+Srw{$gul$Pp@sEG(wr<_(?z-!)vR0q=w5Pd`e)OaMXVcTuuD#u6 zu5%jdoXr4go`}}|F<~#lST8*f8|2_;!yIFug)OSUs)DG~Qcw^wCfs0j8b5uNck*E%Xer*!Pg5?J9L6RwV9KGG|M^h)yxmSMRXcN@Te1+A2LBP$w z`lBIt#i}(9Z_7L)mLOgtg$>&VugIfm-^REUE*z5cp9a;loBFmitcp~7e&+Be#=Id%rl;Q6IH$V2$2e_5p^Y^z$PI)|#SyoVk zpM_G(dF(|ykDe78dO%M53Z9WAhr3s_IyPR8?Fx53mWSXvNfsClL%_9#G6PNbpj@1VI#6xvf*lQtcd8lJ$!-?k8=T3W8=o$Gp0SkGf z0H{lAcm*DuJWvL(;&F)Ap;gQ$5g7Mj#flZ~6|Z=Od&3*vVAZ|MuG<7Q<;#5}^UB(v zk-{3l29051j&&O{$Ks*_o{6*KF$v(HVdZlPLwmP8ljnuCs;_>MF7#oANO9&FF~Fm3 z<1LLOu0`B6dZ+A1Np|PGUmAB`xwTZ>VbNamnzd)(5m)uPH~-Q7YJV_;PfVT`31XhJ z!r}*1+}gj*``G3Y6=zQA#|BYFu#lQg8_(hC!*b{!EB@*~Z~L&Df-OBq{K;=zE9xDI z(nB*Y{TXPUXPUs~rN2rqjUL|o<3sLa|8+;r&b;amf6c8OoPVJkGGu^TCH96iCExq= zNOJBM3AU4-DwxD_NieO;DZ#{;Pl^m2p}uZNU=o09Fe&u>iN|EttUVH2B)BxJ9sh z`>b(){rkT%uZzS0hk_bNlCuvK_ab3$4hf6XGIk47kmoM%{V$D`&Dt-Qn$C9o$v#)| zGc9rDE_jAu)`dIu+_y3rcHTe2Oh+xiDk}UeWls7;el+hwp2Xj=B=^mDtqaL?PA5cW ze8h7kO0vHj`WKn{c~(lim+o+0Y{}%E!^2+MQ<8VA6ba>2OhzFa1#KFf`z{EH<*omk zE=Aia`tMbN&4ox+Rr-4gFUwc13sXZ_UDg4R2cV}+GHuT?sY)AO0#N)s<5=Cb+Vx%p zxi6I@)BYdc&HLEh&B4!`rWF| z#w3W5S%Q@YW0UZ#OD}6XH+T{=xK>I(@Y=PEFcG+Z{d)I^M?506ImUGS_;Gje;6ZoG zEw{L{XGL?O5bt~6``p!6Uv1gVhOhn04s6EqkF0(6f7YBv7J&X-H;TQVcYp@K>JkC` z0Xx3*5aE+Y% zdfM`ld5zE9D3big58o$VGl`$CGKu0Te(pnGFJFe|_QP)Awlx1V;~8k4XPUrf#!KoK z_HtjnWxxCM*S6Oj-%J13z1)`J`Ki~C=-elX&Qk?|k8eTZ_9R7`i_JX+4ftF#e+9Is0NI zx9JN>$6^#bxAN*wydLOB9@4k*y#`nWU?fPil5icDBsBL)!$PL;tVmz(J$6A9(Ms)D z0t_*LMXPJ(DZlurH+;n%ol2qi=JfzI+wn6n-|t2-z@eZg`zsJek>*O#Y`th;#){FnH{7tWq`pZK$cjf?aj zvd8-ZrWnjffR09EpD>|AY0r8J2JjXP0oH!$-%4SQT1S`&{N3OEUH6&Ke5PiTJ9g}F zPk;K;-8aAaP5;@Bjt;kT=T0{`n7wpp&Cb;Mfw_RquYdjPzW>BipZZj{WJx{@raHUc z@W)1`N4$Tf#(?a(txJ|kk;#GL&#YLI+5j@MfD0PDZ@NV4nc@;<5w0Oh$K>>xJtfxtn9Kcn$d3I8NG9ChxfMD=$A9|%1-yqDqg|;l)JZ|d3 z!9Q?3kO7OmBtvkCybJQQS+e6|Ht0e?okpLCV=@P0!5nZspJ0@+<_E1NqljhMbZq$B zk!-h)G{3F9%_$ok=^0(h{BLsCpJ9TW_($FG-nkafTg zMS>JxNdi!1jd(lacc}8PNihu)*xBvI6~!Zkfl^R3EPj^!JI^>O;NI~-ir9MonOoMF z7H?2H(HuJC%}gi)%9`_1 z@5Z;_WI=%=!O==1^$G!nf;Ox1>vfTU-d#5L__ZUkzsTLWZ^B*w$sZNhL)e!VnWIJ5 z{`+&vOVA3Rn2%J|ne*c3C{^p{3JD&~rR2fP(gB4YL;MV;D6BBpI#z)kC&}D1=SXao z?!I+0z1nz=P9H6k9_4fRELyP_wmt3bZpF&Wtfsel-8yIB)c67S>A$|eu!DQ$u-oT> zc4aNYri4|Qyc8B5v6So@VSDtf=$Z3^F@pU znopcgj8H7SC1a*2?E&su0g2V-k>`$iKP`$0VakvFfqlXv;<2}i-2Ik;t!~@X-XZU# ztrkr-uQ`ty=srK{Zv2O*&f_oU|Itu_n7`({$C)#)*gm%1uX&BG)^7RIXZL;!$93ks zFjWOqJ%7INZC@U|wY}?HyS(rJ`i2+OoPw(#{A#K6-Bj~)%@14}GtfNGTpIVG*^5hm z2LA2qJKdMRS8hj>*6U|J;YxSU%jz#$OapW@(QG*@FKyS$8Y@}WNTc21I>BI0`Y3(N#_Z#-#kw}h>L^}5%@8ouc9BHAmBsxiWTK6Z- z^9!H5ft>wC<7aV55}th5IwIhU1|Fj%LbHxUj#yS?;nK|c2Ju?Uz9r`+Klci#qsKhP z*uDIM8=;HBGM9Z@W&;z&wu$E_x&q!fYP_Tg< z=N7~HXWsXX32-a`x&}VQ>jgZvW(tP$I_W)(&&l4(nIq{-Uf>>cfb6mY>a^V_@40?? z-&qBP3NU0$P`Uo;AF?&y_3CdPNdgvUvnx>TX$o6mV#SiU_yw9e3~e z)UCxe5%viyqN2k z-@*j8_7xv7m~45+F<}iI7WPmWNFtK#w+I+Xk9gKc-SUBrZdsQdcx=)4U!-fEo1Jnq z2Y=>neE-wk>aI0@O`aA8XYvAAR`9=+($WS3@CFb^1KPf$#w&tlf|9~baY%&=|na^K9RCtd57_pNiwdg?p7WZk#s^&}ZHbIf&|KJ32p zzH7{;W7n}AB8gto<-^AuKl8kTg0>Ul^Pqv3EtU&;#hs&f$f3W)6xAZa6Y?DX{eQl! zW;dSxpqI;+)Mimy&5621KF~bRTp~B3*^Ntn2L9#$yVHH+)`K!Cg}eXV>nnsw z19V{Qk>p&QAxk9gG)X2H17YNqU^-EdVAHl^>9-1SNqoLYK4ld?xiw0XFCV$jw0_SB zJNKY?*jo zh=vu58s-ongMQaxEx=j>=*~J|O6?`N8z>TXv?BStu*RC-jk3N&^S@rb-;KEUfST<8 zgaUdnGh-QOYYFH{sogvxlB^o6c|c9W*IuzL_B-}H4fb93Axo+0YQ-b;A+L9DxUymy zUVxj8;$>WCig5mmRQ`g!6xN;wuf7dN`&_jSroHdzN7f*Awf6VO*&_sYyM(2=($K&5 zeBqf_5I-TPmiU?$lIro;IcpsdmTt1|l%Bi1i^=xNnYTC((vw(b`zO1`+`B(}Th+B) z71(_CLtZNnaqUFWh_D1lW=6^y$V&RMo+mPvx&&FJYTYWSs(soozG{^upU;-Sz&PRJ|+woApk4S<5KY* zvfiHgXi{16tU+=H;>Q}$oz3EMFO6~T{%#3^Qd*AE+?ce^*-G2M+ zZhU;)ty{OwZQHiZ{qZ0Fv3t^!o|Fnuo;r2PEnl8^4!`9sZ*ebt;R`*0`j7wkk8bbY zq|&^_AO7%%9sfRb=#V>k@}wIc9(HTj zu62)me*eFB{lal=^ zo>i_@0M6z+X+E>t_-9W~9&xjyd)#1ehZ(Sm%=%QpLy{inQ8W|IOnmmU@-VMRec_x>| z^GnvqN4|Kw`_9kGi+qzQDBlgA{P3;rVfU)du&+q4Nxo-U0n}V#C`Sjdw<~AHfG(BO zlE;QQpfYr^)aEgfhlACkf!|qQ#!Lo49i&Ay^6-!g9~CcwTkv-Z8KYUVQtNpViFdPpu-vImP z17MHeTZ8!82mCGZxzuPAsqtYWsc~&12Jyr5s`YcOec+67@(ky?(z_GsSK7}j;<;~y zDJ(#K7`N^ib?^P$kL5?I4_n^5s=(&69`YKux_iT%V~M3E5#wDUK36bh8kN4RXA&#g zmp`&hs%oFo*fM}NB-1Uyo3uHJlk9w^9`LE2`Az#w$c|NDlh3uteP2ExK61;`0hooh z*ZjN68Mq++S+k=efh^1zjc#uqe)5xZF0XJaGFy2$0yaXknGS3%w~vri95YKuUN3 z18C&^4`Vj#plD+cfO7GWzsPM8In5QVrQ(g`%X<*ItwTu>P%|$58E6F9Y@TOI_xDmd&s_Se?&q_I@BRFb-L2b8 z3Nyt~L^+WE@!-wwQTLr&T?t@~WKTdE^ipVRB++N>ZyEdeS+UUKyUg(lph!Ig6PeQz zD=m>`ErFV$L|9fUCX`y_nyr#pLeTh%fu!Q|3mwKtOgx9Z11VP(&hoOOIN9ioH)n4DL{Dj-N+ZxB#3Rz>;Y zT_f&&|NfJz-Kq*~KI7M4C5PF~RsWF0?oRRe(F89H8V~MCQZtVv4+& zhViX$eak)k;SYBJlmzU?2R-OPZvFc8?#?^!bYJ`0*F5u)=_9|>5KKm6ej-KI_Da)%2AHrcNk!;LrI z=&uhWl(z4E?|Zvr$Bwx#fBDO9#}3%Q&NDr4zWHWHTVXu&na_0ZfB*aakCrT1;vV<7 z$2q{EK`*k7h z^EdPXd1dxpKjxMt9@K99L{0{P`2=`+yd zZhp^;Gi@>Uv}NsIKA0ctFqWTYa1^t()BDrBnB5F46xeK@XD-e2jNM9UUis~x`jNXsJa}rwV;`{5 zJ??=UtA4D~XKIloS1(BAzOA1b9g3^>mkUs{E~;9uHNJ)ZKK9KFS!r?dw_OrnFc`B8 z{46I+wL2b2Cb`uBrZcbZ@yhg!DM@XF84P?R@srFmI8g!I!PxW>fb-pw@EkH`QY7u4 zllDuardS#95N2dv0jRoPB=TTv5lFwn93v5mG^K_Gn-+i{pUZGHSgwUQ$=xDo?Yh22 z4g04yzZ>PXT9bAb^4$m@MWl{36wIk53vMy8-6K*=5y&9t1@6TFE{w5`<%`RtrrV{C zbd40-WEChBP)t+u^edH)cZt0EN|9O5J9Z0G_DsobL~P}xAHrI-iZr=>YalgkEHE`u z2nfR(#MibGKwV$7l3$Z|-G%`<_ZjLgS9rGv-`Vq$dOs?KYCLygEfNp3W-M$5E(n-%R+yP*rbdfwnD|N?*Y>-2{Q1NEkMX|51GA9;JOV(` zqJet-3QG*Gr1dNS*15(JGq&-Q#aEVCNFopr6X{hzJ>s>meXV=r8{b&g1vbn3-S2+x zd*Az>RFN!pfAcqgm%Z#|UZ$3~|NZapWnTF_5dxd~H&1!WQ``qX z_(2Z}YHZ)W-OIuL|@JVrMq|UcAGbE_L86gvS0uD*FC5i#(63Ad(Ly7^ZUHN`;7b2&FR|v zFgKU9_qnAV{cf?aT${158Q`6S4Eh<7ojoVg&}s3odtdH8_}brFSOY14#a_Q(BxsRe zBPeXxETCQx`;hX&knpoH zYmnbrN>6IrqXO29pC~1ns9N7Bo@RMKYH^YcPbs{m2xJKXxs<(%Jne9AV=S`x-i*(j zbEDIxpOQ}m)U=fRt$5dpr{?r*EXTH3zgWj^xgEg=Ip7f_fzAmp8=ALy-3p1L+8V!IQiU$&u8*H=wRy{*>$u~y2Oh%sd0R#7pUm3o71`aqS*o#rEaS}! z-1BpQ5=G(u=iw_FGm|MAD%xy`^f(gK)=^~X1|$V79Lh_PA4p%i>=dtYpGgRow!V3KF?;dh*`p|#6k?{oJ zPK!m-A0z==L^2JTTK+dbYexDEz{ET^J1zfA75@p@nekr@_I0}FJmpv2gYLP~^{nW1 zYr57nG_|nL@W(t;@W)Ifmhs1&TWYV!;3~8}&^{ml>&k}uGS?r+;A@){R8Ux<&qJ69 z+^}JTd(@*Im3lc|A`=r6-rMpAKlp(=d-kjcDe=~fK}|03fe(DZU48Y{{#vhk)vG+P znHF645s!F;L$a1YlJ>WM`?vl7j)6^NUcdU)ucmtQ9zTBEGeTjI0*u~z>#gp}D@ziB z3jsDypFZtbsk?UV@?M_+x=6IeaqiqX&)}p@UbxJY`fW0v-}#;2@qdB`Df5*Uus-QO z@uC;K$i3}tZ=3g;I5>I0!IsisjV}^l14&kmEY|*99gDprhXp|Il)a2%58e%gl^i*M zUg#mJ{iF}w0_Nu#Ja@bY<7z0&=Y7Z6UGk-)WHsju~ z;Yw-qT7TF4{l%Gq=6R+%u=(?Lp1C+H=$EI}zxwcZ-Qh7`b{|D~mB&MVb=du{N2JS` z9~E%%cmOVPp*#Sc$&=?rZm$Gv@UGh^GH6JDT1Q+lk7p+Sg#^jpeFAE#94cTdATJ59 ztRnU@W$du>@?-`cow^|RJwUN!aCs$G<9SSDQScd`*q3=RB$4>8R4_^8XBOaLt@RTp zyOG9|ucnS?RKto*wojxuX9J(t*lV^{-{t??$n_x3crR zYJlv!3NivT0O~ExSZX;OZLAiMmkhY~5f*?^1qcCf+29_;kl>YuEQ>d)jU(-SlNW0+UVHS>+RHR%CWqo@ zyyNjTwO)J0GhaYbuz1GiTD!4-H%~U_4Ax+^_|8v{xQ~1ZU^DWUDEvWHDcWitJZW-x zc_w)dPaSq7dP*S`9qs+5APQ_8SUE96bWqrFgAKCd7P48vT$ns9U}E9>kEO4!x-f_U z03ZNKL_t&;K<@Uj?LyI4EfVo`XzO#UI+LX3zkc;L_nLQpP7azW1`sKOgUPw1t;e;j z=%8cX2@AV# zqib6_w@2Ni`2Hb5t3iPSg$`B$&;xsogf{`8v`M6(DYgLYA;Lu9eEI=^hacpVp7f;D zKLh9k00j^nA0PMst`>lmfSW`J>czk&pF<<(@gf-lNtNPq!-Je}@pHCM2dbxHz_xjUc zzumq3EuWkdd<*-@JBh-ZB^2MR=#+O-$+I)-@%+48k1y-zPR;m#keNLvMO5_!pyq3? ze!RQ-vG=U!<8^)J&XL=Nt*hsY3x%~mP}ko!`XSDKJ2?LYY~i_p^+wx^|9<-Plxh{$ zvFu$e50`bnP78R1r)W6#)so!mm?OEB^_+|eQ!Zoxa{Y_N*f}QbE!Z648ias==no0c zEED@_^B6M+`CbfzEN=!+?D+<37HML@7Y!@m8Ri&Zqw+qMNxSPB^tr6IW={xH?LaUl z=-J2&<6oO)G`|})KATy8H;M~7LN;~`GV<&L_E<#>E>XC$alj5#({bSAiyD9y&d@G} zGrWf_rKZyug7gVC=-Qq|-rG6Pi1*#ai!Zn>gLaCCoH_84Rv%SH>lwi^_j!h%xk3>z zil^35)MZRsWbN%4#YerA)w1^UjEh+Ck1eRICu`5Y<8ALiTuh;@!4l=%lSgpw+kfnW zjJ-sYPMGR*xBso59CrWwpSM@THCMUa!)l6a*f_qp5)1ZC06eQ#+B>* zon=y0`xPg!`FXF5dv$~CxO&GOe(uoZAvZoNo^nBEnWR1mUyIlwOa&w#HA4Tmb5c%3 zMZtG|cEG*hx=*>$@e-@5-o7AHt4z+8);3{ucDhC4UH6L_7u@;Nvk8bP31d7n&-3ph zXk7oOyE@w3OP+oo_kep0$p+Z!y}lY{>&8szdZe8JLH7v5Q`s!_dU4i2(#lVUlAwIy z0@Oqvb983ZrFm@5w=KLiuf6u#3Kk*~vjBKVtO7&=NX`{79D93v{YM`7zz2FcS|S8C z`}_Mn8*{EWc<`Vb9!`K_WN^Rz?Qa)9z7SyZPyh5!-J9S1W`7M5rjLH~qvtzCb$yQ-KD*_T~P!EV4O>jY$#B5hkrH0rQOPc^_j>dF9H6Fp>hiZ8vfkGlt@pTZ zo~bJBhwSKD@8oZ8|DyZK?VqVR%-{aiKXUh6_vyqMWgL?`=cw8IQkv*{5QFk6+@iHCOd`t^U;Wd-6KFM$08H zhr~~-Tcr4`0|`ES993dAW=W(m<~l?gFRP&4UE=4a?Q`9JsSoVyusPGG^&58X(W!DD z#f!z*sbF%*xl_Mi<12^1oMlup2azLAo`XDNLYT87!l2c_XRSlTRSrx@9;L8YRtWF_ zgDdL*PzB^x1t{ci@%ze>p{#votJ>#5ebqoj1~QT0w20<+qxxsn`nwVStrU&u-UpBd zr~zv#W^7x(hvMgrK5Rw;J-e+wb>d?mU)lv+nUUJ0u+SuHu&I(ESYm(Wq0SIb#`LN4 z?(lKh>5GJ=#9P`*tsz!npk3a1>~q#?0O8nSr@~SVgEfcrt|f@C?d=j!v*fMnMEP)$ z8#H{^ofJL}9^M*YDCa;m3(uJ~QrAz$Z7MeQDz?v04Mr-^YG>tbrBM{zhSxS;nEs zgI)$Plp#X`jRaHPF(Q6)BQqmq%~~bY|9|$r13-@AO8afjIcT*}yUIu=V}c3BWQ_3< zYy&==Nk=jUejI-v_>AuiHW(YHyR&`xew@JPBiZC&k`Xy7tyZg5*qn3F{_m@vny#to zndzDBY6;WtP8OQ!>8g5N-Bta*_k9nIv=1^ z-7HnPo54){9Z$l~P1D&dlX~J&tLXgGmQrCpgTf5x%+6G?tekZnQZ-%fb8%5EZ>}v+ zE|!78g*vYhAd?3GYrHmfNznSz22tM-_bJQ?*hHPm|M{QT!CnB3kYh!iCP>Rd+6?x` zKmL)5?E@B>x2v{2hw`JfUo#K{BdOAhKA z0@Tc8Akb^;9NEdr3&YF}qc=VayzwxnOSf$Pf7 zDFCw@mi7}H{+Ir`>49(;BSZOi&rf~dd2~?IF@6mtXlH>QNT$YSu%C&n^_{HiP3&iq z?L%;U>K?fA2Tz89k9cQU+fqRnebi3gMvxh-LDjqtrpD^eRt7aCTLs6UzEz^E_0&CN z|5BGaL=d%s!7~|5)r0FM{IQh-i?V(idRD@q4%ljb8EQ46mZWM3Hllv0X=bE8Mkioh z9^;1$tS$?Ow)X^U)v4AV<{m&GusmR3ZUWTwn$e>J%V^6~ZC$X1wkb6{F*2~FYdERF zYg6BidWL7{hF|}c9(rmWP4j!e!Yp_!)AeNxyq^W6VpNc0B`|PLIp84!nT& zsXaLS!=5n))kbYl4f2mI9ON;@lu>&O30San)cTg$f~CemRc8E|GBCg}ZZ%^*kHI~# zX2(*`E`8NAsQ(c~hQWvt*@h9+#M0CbhWa(Wgmt6Cn;U_+bN-0>RS{HgsSng_u7 zyT{(3-#z>ay|bmm^R5Y?lm8%)Yz36FB7)0l07W_I>?r`sH$Q^H906w8*clNB2BQTM zvh!S%a`y~_mkeSeyK8qy9@XoC*DWfgb53|aedsU-P%`XbF9N+kdZ2^8d`4=38~O4Ov%FzOHID7p`k(4@r0?sChAoF=}&)3=rVwh8#ivGyu3UbA7|EF$Wj3|k3II- zaP3d9PzwuFV|%~!(o1yBHP?jCr4ORIx>`u_0x*WT1vW=HnPM9!RY;Taqa6&cjZE3~ zd`&XdA^ob(E6GIG0aq|c7xO&y+WL6y>E=WhHK7I)yjXkuwrKfxy#AyKrYzP&udQ#4 zS+b)xD2_eGimH{a*4%%&`)&IAS&=M^?x6{~i2=?Bo_?LiC+vI2%YH*5RIEi}ZL)w) z@wfP#|C{$Is4b1p_&+#N2LNDldkCyA>Rx1ip0oaV4HArhUYkTR4b~>HM)3}sndMlQ z@W+HzmY31TkK3QlKlwnaDT|a~{=oyA=*m+Q1JSYiwVmsz4^NGRzfOj&>&000{ZA(E zf4~+tx!+X#4P_K5wT{o-K4%_&`w#T|mPZo0;N&&u&>_voCOj@UVDIoiGQg(V<6uAI z{`#5P&$#bFaO6TgFwO6uSO4g*u1>R}p^Pp++j@Tmzz2X0Dn!!CICH zXxmRYHaXUCz%lG{{traw`2W2Q>^u1v;Bv2^Q11+N?{o&SS_=>H zw>rK@yk_+1vY_Y}Kt{;jdTqGO?Mgxe{*AoAdQL1bVe;Jw@{o-GC_CT_Y6I` z?v3Ex$U~>Qc{hqB@2xY~AV&{ zIMFB6ltyi7zYU570CS~P7P9m=Gt^C)lLW8dYhG9>LIc=LBu_c{(eGNaV1?qImkDfu zkg&$d+2+UGo92)aB%dX)D*aN*$z<@mU#8DL)DCV$k`jkZZ*bsaRtAhVdFV5{0eCBcqlKllZ#NWTJLMU7FBD57L{C6dHU^}0kUGhpp0 zU+S8bi!}+!HYe;Gy*5tqo5RB|ZlT{l`YOHf21~3jn8lguDBr!m%goH8{Z=laPo8uj zoqog$$Kv)6zurmTzi%V``Kw2#G*CR})qCA7TQ{Y~9DW2<45(vB^K-w8HlczbS?Tz9 zG72H6uZcRFwmEY)PuS;UbXd#rUb!qdk6{l4`^=HpG z_$B%|xMXoLU471h;#i$EXi0CH0T|TIbu&|Nh#7;@zz~EKoF4|6Psk5SQvn>EwN}Cm z(&_|tkCN^4uAw;^wR3a@JJPSQqpx88LDm#twp!cM6p$6qKL8bXFsNuVR{>}O*yQ!! z5Q9(c59*7deSnI>5O76}Gt~O>vCiBqUkd=30N-GemD$I&_5k=e&DCV*U997sYTQ;Z zxKPd@g9+1ttt{qffF)<9H6pwlefRwRXjOf6nDvT)GFXC0pbg%Q7Iu}Bc{lpyrAJ28 zj+D=wab_@K{!25>AVWJks0LsUAd6{(%q;2}OGCSb{H()sNG2G0Ej8_wxFFj%vBtUa zAwcCBMLFLzklo8ZM=ej){AQ^FSQG4ftT)O7&o6*Y?0w*aP}>00n^|_*lwp=b?mxV~ zY7L>(foZ9C_}p4sRl0;f`wMlrPV+C>n(a@$x`Y1kxTS#TWNA0t$5ONoVzj64{~6k^ z{&2D2ZRlQavnBc1hO$NxZ1KakapwN0lDUtWSYKLC#W}^snjhmjQ;^+N9fJ%pfSM-3 zRHp%rb6?sAxrU)~jZD@R)dS1u6PU56rKTG;O0Z9VuvxG(Am8F-Sfn0*rHvk1w~?NE zeG6^xMBOuoNoVYezB^8g0P3>F8d|%ef(}_*MekcyMp+Dq!T$ia!QhexR^?w_8WRCz z_%{_`6Sey+0L3!5GMA#xD>I0tq1G&F&YCg+r~p!>mE=Mav^J74%B(JcnqYFnQVj&+ zw*ci@TU#k3BSQe3lAVp3ndRl>BH7{8Q%? zhLZs{A#IFj-89(IY)Bvhpor@aU{jhY=~tZJN~GBut}6^6v5Do*kxa9-uZ?Dyp$+q@ zuC4BOtUah9tC}B)JWkg?EX9jQweo0RT)dd?_wrYfoQA z=N=hbE`EG!j(-2dTlDAW-=Q}*ZD)XfEMfoNs|V!e=hLBUmeO&DET<12ww%gP=qQH$ z=IL#8(>?2HQE6^Uz^0zS0=DkT>Q%nEUYDQ7zN-l}%vlE44~wcRtI7W->cjuO`b&C! zd*Vcy53M?bKCtZMM5hbB-%C6Y>}O&Fn|teiW-pmK@2PI|vO2@{zp!i2hX=3iVeolf zWg&g}{DWBvlI6&hIzM>^SySr87+_GbSE(V0eM?J~`G7L|Fvv9}!IqJxvIX=SiwHI^ z_E;LTm)nLMpfpI|HdmSpEb2D_m=Xx`akYX-IW`7wAp`8EVUGa@9T=O^BnqMMxWtC`BM&T5MRN+c;2aocccIO%bWDbx_4;f)*Un%yc@-wYWevE z^!_z1Nxd6Y7U$CK7ufaftN58y%Fi4yxxiqTY${Q2lUd2>1`8fy&dVeM4AKvP1?@Po zQgL4c{E=%h*jrMX*Nb~yXM(HeM9pZ(pZaY(STSK-QB1(|7SCN%rb`?n3=dTbub-!h z`j7PvwI=t(H5i=Wy^kVujN7Y;_a0tLnyX`TT3_Y&ek3oTt#BfZvKP){jvnTlUjn4j z640qBB0TZRcDnnC&5D3@b-7O|wV7yakY|nnnYgwffF@IhISE##Ofr!3AN3a@3n~qgylU`yA%Q^D zy_hLo^A1&1RES!VsC^mBP;>J3+iw?Nqt54X#~mmBTLm`p z@28%6ijF$!sF>&Z;SYaES6p$0`2M1cE~20Q^rzutQvo)A@rz&3=Rf~>agMKiQ|5z6`^lo4|9DA*+Dde@jAi1?(U6Vers!{-)&DF8*QH%?T zA?r5nq6c1hmEPLi!|Tx?4GxVixb~!%bHlH5Ww1nU!{Rbp-dIL0jitOMHPF$kR>e$O zlKtASbC|ySzZ>YqRx9D9wmdIsU{eS6A$JV=|OftjuF=35Y6&X@ts^0a| z&*+_9FDG=@2Ung>M=k$w!sCJi_6`pO`wa6TpeJhWfyrRnFFJD< z<6p!;HflZkXF(%`A3PrX~@f z4ahnJNHlE#@&M>blfaJt98_h|7uqKzEC5VX>sSl65HD=F*RjSK#E%`juRrf_|2HyY z+msDY?B-`_B%#RE^EBQVx>%)R7?6_4-m&_FxmU-}doTAHPJIxJUDWhc8cLQenC$g| z&*6J%s`weMIqEl?o_i=cfU(2rGM1jj&lcS8CIMa5S9-!6zDred`LUNe=zpGSjd>~3 zZn*cN$lYD&&{N;{Nv@mJ!r;MB_{W9WMbyY_O+QSRLlsUi6jW8mqsxHdJ5vmmcz&E? zFte?1OGKR|$PqS|x9~#h{lgDzsV)7jVF^e~ey{?o3Sxs+>P87;LB=V9$>$u=DE@Xb zosl3JId8T1(o?T*rWf96rSAT5>h2q*zJc+-iwzVcDrzc*wYZE}NZUCDAxB|EY(1<=%RaMchUAw5Z)&dvxI;8qJzVn^$2tUE% z0h@aL%=(fB)?3dMfTA>0(y#LTkRBgY!1B71dICFs$Iy0`3$xe3#?nRx(Y;kHK>cWp zb#fMx-S*3jX*RUeq(dSF0M;3<->61@O7cpnj^(dS*d_)wt@bP{XGUlZGeeU#r#0!c zgKFvQ!|G!u-C&+?;e;MM7h&-J^lT>e_2$wWn>+cXekZke_R`iJJyz|?zXLM;&uNOyBQj@LIgGI{CWUzj@(@w7L7ugk1)x z32-y8cZUap{Y-3Nb8p>Q$7RDA_oR9(RB4Ba3|cS|=&r;Z>Mx+SlK!84$AF1Q;IU@& z=;a^RVn8yq%|4=x1}y6NIesUt?m!@$0%sGeDB(Ko0*5t#7CRPPmjN~K1S!Ky%Vz7) z-X(B@A(6hof56epWxyH2-Yj;%8WQCjPa!*zFw}s*N;6rP(lMHp#0)I7AQo((8d!wM z;dr>!8++W%J&f}3V<9mX6+!-_%d$4;ac zEvNaUXi|SSE#{tHyWREcE)8QH7LJ;_lECzt33CVX&t8_uVX%{eHw|lX4D}UC@dqvO zpr%p|*Wn<9e|fkbYt5jdAkHv$b6tD11z=`;2lJS+u&dZ~YZdP@25iJZx7_e`A7(rq zgY5qUe~!3b`>(C!m{Rt}?w4|J{-wwjU&_QSIb zHu5#u>Hl_5x#awEVxGRbQahW<&(g?T-E*N0jL>|<=-6=Nn;6Sgv3zzlRXY^?l2WOs}kM!u*wXxIH9Xb8go`dDg zWYy={&(A)Xj-l8n0OSp1EX|z6&NTemhLzBcufi;2{6pd1>M*=fp3KxuIRF_TwOOx! z7k*u6++IWwo8W;8Yj+N2y}_gc?={#wE_cTMJ^mMgxav6#N`3F7qFq{qkOQEPo{zC$&_#YuNOe)>E@^j2Kmn+ z`X=KY{7J*yem!TnUs+X)zl)FnP! z)Y=v*gF>!PmI_pNA-aZ-7;0u$Fc33vZBS_uTc#v;X%N$10p}1H#8tq;RTC66AL4hz z(PPykHc$$`0V2Y++1Ij>bV3p+*QBT=>eDYgjxyfg1!M&|1z7 z!mmFEoZ@-iU`^IayyUzFn31r`5m?`{mr5?ahpRRzgJ)JG&7<@yucTD zQXhde)8?b7PuH4$4zWc$aldy<2R4&(=uU8itz-5a5-!P$3q|k#8;#9`pYU%QeWM5y z^$jgPOF_du2bM>cbNQ?dl|i_zbO?4IV?C4gNc^?n51RMzM2D+lkkmjF`du&(2gGkA zjx9;ULk2kt)quj2w7>a3dx!-YYeRlfioHHJYvA;pAUJSa`R=frqx);MQvrH#g3_0^ zk9ImrsG6?7s6*7B4;W-)PCXd($r=I9$7D;1U;)Wn zi({TA1xV7oi5leRF7g-HEGL-qWk>`?umGi=<-;TW=|-~)PyK$lV}3hqu)N5E5K-f2 zsBlxadj!|*3quLBa6JYJCf4fsh|Rr@O==duI5@6V1%6@04WgTUNPL5ZK>+!~{_n{z zYjnd5ynnS3?1#(5((UG8Wt^6oaSd6P8%O@oNpSZ8)#m*@mllH@5{-@l$tQ`@ep*c?!w2|1xd!Hur zeQWUWqOkB6L?SIeHx`Ga-AkKy8LUbd9pieOsBxDS$*-cbpu{VUbzd&8xCH^EGDyr` zT&uqSUEJ~2PAfW3y4(&tz+5Uw>wpCi$lu4$>M**+&Bt7?#-%l(Y9E4ut&X%0la3 zn(lh5t5p=1Wgx`Q$fDP40jH(#XqbkqEaG)zDmGZP8Hjg>NPQ|H3>GeCZud=3{9VhX?%omJjZ!!89Ou(U1O_FLigTZ zH_a)1T1TrBYN8`W4Zg*RpB!31iu)!%Qk$Tv8Y4%!N|csSzwU%5m_r|z#;9A2HK)rk zZAQszeiJN?n7M7#S6a<&s?a~cXY5S~)9u)mF;;f#W6>PBhfFn^?&;PYG);wL z)g*1k`JgNKoL!ObM#etWU!u-MS&#H5uB`Z9UEM#KxTiiEpHQuFH7&zmcc<6Q(|^vn z&db^>Ysd;$Z~Kab+}?%si2ldF{Dbo^BSAZ>JUK5x0rwXJ&JWwqE?s11DBpeBOx&8Q zEPF)IfFEbzICC;T8~;*;w7D&1G1GF|ds*`UR(Vdc$OXtxjJlj^-%Cg>N4-Tnb=S75Q{&5O%$qJ3wCoB-B@$@j$Mh z4p|B=Itdv=QYZLk&jqTxjPl6A5R~Ujb0XE`8Z0SLMy}fg=3Mvy1aS2<6{Fw~RZ~Ww zDKmu)v4~j#&>gCl#JxBvs+i*)H#xDu5SB-er3s7HlP&i79$i67X2BcgtYaPVgk#10 zq5Sk?SJoR{ZS|qk5BJ)c1nZ)T>)!19H$&!To`Rj(Nf%Auo7IFRlg`v-kMh?x{4)OlhBA=`CiM_s`cb`uK z99wSBR|{DQ+^$=n9QlUD&s^Y~7GKP0t113&rKuC?lmg8keoM_8U?GH6*3qCy+H}2% zbS8Jlfom+m4c8SxmW$baKe7?=o#aN8xwsT>oQV2>cu*C54^+sa*BUI zdiu58A&N$XL?&pNJM7M0T(TK=j%dLUQXNoIV6rf!n&YiHy`zfbev(~k{A{3OO&r$+ z6ufpYhH2(B9F+ZGijZRp!&P_>Mvt@=<`d(iTU6of+ug~kqviit4{c8g)1L9u; zG_uk6KlwQuo9MG5?y<9K#Q+sP1L`YL42gc|c?PBkQ;^i!)f^Gl3r3mV_;aOsOL}6owuEi(iPGIRg}_gWJntXFwcLQX@aTD>LPzd6KvL&-#DP7 zJEK|5ZeM?p=iR%$kyfoHEzamjzuX!Be1GZt;)dyXpr{jJ1Zzz?TzarxMroVeOa1DN z@v}3sGe6pDvFBj@WBR&IRJ8WP0dN8?0Ya`sZWJm0QUt&psC} z31kw7R-w#YE!i+N-Y=6*M|Wqh+!9b&00UG6wEArT&C4X^ zX?iFxoaVZ$0HYL0*nl$_)FU}!kFmcOSh>HE&ike=HshBIqr#|L^^gSS&f8kbWZ}da z+A%9}`R5k|Ut~N?h%()uhxlQmD5suHOn)JRQN^<0`-91UStSVYZY`^n{W>w-m0K}f zojC)J$5JS&t6E0y?;aEsaw%N9`&>OBx=9^-WqM7rxaRMc)PAhn<*TiHB@{P}-KkVs zzYp8zW_4Po*&l@?8OLYO-w!ALd(=K;V>)DG7*=7GF@W3}KU|_dViIa!TdrIzA^?nk zyQ?s(?#(mVznpVKEzM%;$lZ;sFYUkBF3XMnK}S^R`YQn^TMHejx(=xKhOEmNM5Bm2 zyUDC%${0MLa_TzXo=A;t6bhg0su1}9n$?oKx=16=1!1wsac9oZ_z2AVB7_ZvUw`w` zf|VOr;d$j{v!%Pc!jj`bRuxD|*B+r>nx=H_?F(;Vh!HRGt974 zNgGQof4z9rI}#QE;Gj_3j}7FMVWJ};42fOOX#F%s8S=Z|&XC6js{AT=+F}k}MYmgO zXy8G>Yq$7~A#zyVw3kxwWECz~BNl?=__8C^R|Lutd~@Jayl&yX; zV>eSTjg}@Hve@((HbeYQO4B*d1YXs!31>azB8gQvItxDDN3Ri2`kpF~*h2-c2Jalz z&d7>Y$kfwlaqk~v_XPd$Z?3G(ym4YLB4mdlMMHKDejqnpSYl)0x9ehW4~_EGd-X3} zFR`;+)Z~hPZurOpV}kg2Sd67A)Gn^&sJgT!G*%d(<;oJ=)6mj@Z9UuNvcbB9; z{7RmS&|hKfyAl1Vb$V4z&zeqq#L9c8T8S7d&~Lg_zVWI!%D;-|frLYOM@?MKQy#YR zDa;V9njVd*CcB@AJF}aA=2*^ED|>ya&b&1@edRO?DgR^;eI|3$-^F|&eyWTPg+ygu zOg0y@5Ryv&@s%cILH(~dJ?|O?e&Y}sTT_TM_6jq^{&@IBC8~r}2V53f$_1JsME3pG z>1>WJLnV~_cqqeLVzOp?&;j72D`!6yQMk|dwsd4M5PDX)axP(ZRwyK~9L&v-08cql zBIYZmR>6fQw{JMb0PVEooc0sI)b&IBIrK|CkLkMLJMgH``{7GM)r+ftt9uFaRFwUh zs>o(u$8RO@Zp9fUW*PB#a}ziDo&58p!7+)8CuVp?ydCvOVg1pt=bROT;r9wSTQDW9HFycoBAAcLIClPOjz z^U1$2QJs{;6j23~NqV~aW)=|wey8pO9h(t5#NnE#)$PAHOS3Ov z?*`nNcRs>R$Qlll;YD+dBz%<}NsKxPrl0YI*Vpa*5D)nCDo94ew-#$MxKKrhuyt1eK_&`7@2C}1{qzr~ADS=BZ>bP~}9)-{_89`iZW(>%UiHcm(4#Dba=G=a~b zQ0rN+HD?p61cT3*!9DukMV) zDF=4koX;v2R+P?W{QHz;zUhk?1~^2#C{S2Ca1`XqCo(_b`F_jlnFH)Fi>rU^;<~`m-$gA`4zsFvBH}dL5w?Jr*co3~z z)ols+b=WzMp&4fA4_%ZiG_;MO)1sb=3L@nc){_>29Lr-X2Y%bbghJ2=U-4qmpafvu zX$Y$SWIoINtgq!_f8jtook~PQf?9bFN%mO0vFJfA#}_O}kUG)dL+r2Vk*Cn38V<*&yf6tfpl zh-wB)1^z-{ldn0p()8w9dk-Z$CXq{A4#LYymXMRYdN9ztJ|vO*m@}MNLDQHcK~sp8 z*pzCjbm;pX+=uDG_d@^(2(r0k!q*)gB>X!Tf?ZGneYbV@OU$g$(h7l>>=H?MEi!q) zwXny>N@?cpPbOP3ubFn6-S=h1Sn(haLH1W6$&T%vp|`GCL(C0e5W2z8I$|c0RMrr* z{6NE=I@=28I~Rc&jHi%+PhUfgNGgR25T(t+pu9dtgoF^yP>;SZuRtEgQ}ahE!#%IZ zK-TN#>_{G44WP_jgar)*v{&$^0x>o&>u*G`{nI7si&=-bZ3 z3eI@!-3ovCCWl;iAb%Pyz!K$CPxvI0AW%_F6U*v*+)t)uoc!}plc-K>ZYd1r%3j^c z5WCbtRNVOr-F4m-pDVGeC64n#T}(`ORUv!WZ(fhiyi?f|QyEbw(veU1ySUIF_0gHkL z?Rm|VFQ0M7n)O=Yma7bhH2Br_S)m4l>h(M!?+{`+B!Hc+>}$V$u*NZmwPsc7H3^Ir zko?}bY9Cf9wF31h0r>!_EdDaH@Be*Hn|oCGwz?4UTN(n9!IZZJ%6z}~_RZ8iG|fTV zjSTc9=PH>vbckjS)e3wVX8QoD_iTVTAj3(t&v(b(ePs-fU!od3eW-Pd@bB zq6`iIJU}|45eZ3-1!1!vXFbnYF6H5Bc|w5~4JqJ?a_f}2JymsnBi~O*CT@({^bE)& zmm*bnRWzQ-HKbT(kWMe))X7kW)Z7{ALtx*hbjdsXt0KL|anPj{u;{!yLD6@*xE6Wj z^SytIs>hjaj+9OD*OS1f-BjNfX>1w0xvfiGC&L*co4%@&9=KQoiuTxRiJ-j~g~4cY zcwm20y9c_;&oVBYDwtF&8b0(TL#zfL@AWZBKhJijLwhn(h^hZE4CoONEQnd`D|)UR z@M(EBE>j<{bF3f{8d(lm8OvUQG8TT>LhKEGUq+x^@zz6B5z!CYug!S}X%jn3`vhb# zN-N8=D>Et6s*j`NG#dlI)KQ$muie5A<~Z|QY)(ph$-vrslvW78{v-EaTrDv`wJ^7y zjZEX0#7yKNz5(7i)~W^1p6Rz;1y`_8sX}DO&?3|`|NO)DP#%u4V=>Uuc@g!V*ENkK zCaJ-Uuw0LhgopIBMCs1u=RcL{>vI@-|C=11H;i`5~?!P?N@z z7X_rWH%93;#jWI96W%=KpX)BGzd{R{mTpIK7ots27gpk}nZvRzV<_q#L;((HciGKB zIQ$4J4Nmz4$Gq(;A&cJEJo{d!G|JItd{AOLdypJgpal@idx%|n0h5OeblL8@sG zu5=-gj6E1;ylNe8_b#u+S^X%_5eArz0+O^xVfKJ*jN0jh^zVnJF$e}DdpGgNjQ6;n^UYHAeUVmJ+n$P#fmh7z+cC^(s3k*#|^5JKZ4iki+?7-mU39QhCujgVV$hbpj% zr$v>xqo+Nt;^|qY7A_Rqi-?<1YatVLLWZFr~ug%gya#y*l%3r@9-3)5j}bA z0G|fR2IUCMPSNTylM68xw&f*N;x)v5@X+95ypgTgDZq2|sMUUK+ln_VMH04=9n0j% ztXzxJcvZu+cpB6s}$V)wY@s8lX4 zbcHY$IxcDvR8N?JF5CwoL7dEH1RlxT-93nG`Y%;J^;>O5`E74Ov#wYV{9N3u?MT7DyV1O4^6 zMBWD@D*r$@J6rM;=790P`Y@OnL72!F|VvY&wHWOY5QCo%};i4}{= zz$et&sR3yq##^Z+@@nf@6~^daIrj>M{g*_SD!m7rz6`qC=RrS9LK@-%GdfQ`T~e^| zWJ13)t4nL@SIR+A6Db76PtJnWq%WVfQTqkrlEFJL6-Cb1{R&synr z^){(J!NXB|B`pQqf~d5>rKPq-l*K!oA=`UJ?iLjT*k@d2M{jw4^J0ijF%Qj96b(6p zdTA+7`Sg!Xm^t2`@O`g540pYgCQrpbAY}5=RO8)yTsUDHJ{`uIWe4VG1&y$`ZPeqyIms+SnbTWrhzkZYi_`itj;h`~vQdseX?X-_K z&Qa8I9gy$ZWcj^#C3tI`>bdx0D4w||9%7$rA7JNLpls$-m=iU2u7$FgT9?Ov?hYum zOx)%!`*@ERfSE~&kOpFyb=+y8!qTv7zqv-iX9^XtJN1WakEQOO59Fki>ULR`-_=J6h zE*?*OoN=K$r@fwUtA6>4!syq9syoN0r2{06Wlt#WG%M{LVD9;rF^NT6VZd-rwQK>mSKPh&-h)GvF z9OT2ZbUDnjre3(!VZoHvY2XcEnYNxy%KXmMByB@^SfjZ7ThRzG>2>L`rpC*K>}c0T zeEChtRR+k+A|1Nw@JP?rBz96biXXJL>bf40Wam`mf@5+aEnjxxKb1Ie4r_F_f&*#qUF}zq1YdyOIi;B)kn{+Xr@JO(mD~Y+a$z zC#e6|3(yzR!n8Q-dos%l4c#J}-eHKy{e4J%5?s$}j^Mg!oA{|`a@%{BC$tC`(!1Uo zG2bt2OE~peOwzYnXzc6#kA>@Vd<}>mgw}cZT z*~SYX6Kw#(a%d~nloA56(@fXw6T$;wLW^2lJ&RU}zCzH-LF*kB|$N)~TQ6GqvXb&L`a-i%& zZE@y5g;JMPSl|4EqVR3CVi4@z?v1vY2l=|CE`EkJ+zXSVyQ3aZ%B&7fS}~fG(ch;y zzv>sPf8uz>GpWg&EPvpI?`0(f(yTtq&YpF@DCd4Z5X0}*;M6}{Z(v9D~*A7Jwg^578 zBCbNljRbeO?!<{{(hiVzc=&f1V&`EXj~jJ}TY^ zW;A92d~+O?Um@1ap6+~|7O!e54^s}MBQAX*Zh6(;fe5a{^=o`N@3&8?2?d0=Q&aiKGe6sUBS+vJXniP}V z75{?`m_f4CB0CGqPUiovGAqelfBzOdMv{KRkzO3f)PR4y?urx$H#Y}Ja21!Bb(}LA zJ>v2T$q}M*@5cHZe;%xLN@FVh8^B zJkS{A$?GzeRojQlcPSwyggR{aULMlxs18%1E4zyc+aq2147w%2mTKbQA+)dJZrR{T+9_m)d_9w+>wOzcXi`xOy! zk*Ltb>Y2q{M@~&39HPf^tcy{zpzW)8#0|d}#j3sM#~I%#oqA+-L(Ks#yp4)ok)WWN z8+<4R>TSt3UjV>8hZ~7PhbaV|RJA7_PJn!l6Z7uF8tu*#Qx!}kKWVfsg z3A-6$g$9;{&n=;=`@N$dW+nZfd1jWvg7H$*B1HnMsph3*)jinOW6k&!FAZKa^NCdm zR{{WO;ch9&SbLf25_7wxp@)FDT&&Uj&AQ-slQY=8xBZArA!F|bx~0`YUTK^i*jcOY zDBi^#R1V06Af?SH?sZwojQm? z^XX(V?&|9BtF?%h;Iy-u+4Me&ujy*h6)x(R@#z3Wb`bX;?JBkkTZlz;+3_ATf!7Lz zIUI>ZWyal7eLDQeq&uXrmmIyW-JHN$%0Ki60z!r2JGHub|z(Vye+Hr4oi?8!_6^$@C9T zYt*VtdS74+G;B1|>VxH2WGZ&)Qv0-Q)DiP?&h2yk-Z+o@{kt=%jSzT!-~!_7&8tbt z@#1Q5v99fE!9CzTEkYGqeYPNg6|GzeeZjHz5@}y& zhJ6OHfGN|>U!D9LbVunGUQd_$MvrhRIHn88PFsIe7Q*<|-vxgQp`CS6%cLpIB2F1K z%PqIyy49-hD#+{v==z_bTanPkR^3BJiO<~c64O3>B&1PzEFJijRr0Vj2Dc_n z#HB(NC51xlnnFOk=@tk%4)(Z3e7H}cw$Ia9eC_P9!XA{QM@-lP0;seBRcD&dSkA)@ z*zV8Y^Negk0xZ#=EuH|0P;E`ja$Q1QEu9dbMp0?J#b0U4$GLqStrAbN!(bIprXfoi zCM~iZl%20EvXp8H!3eIQAw7ucxv5BL$3(kCT7inPnycU$>hZYFhLGcDDnPxRCI-bf z6|q+)(xXW05|0{P8+-F{FPzij7j(ng>U4+azxn4=G=a{*=%Kk**b!u{CgT~}!DP!+ z5$Ng=PQfJM^O&p9D(Szf2``L9Z`x{4?lQ-mWB7^V?e~z~NYS~Cd1HbIy=nZj-OFON zr|3DfhNRWV4m%3c>XcW@J(CUcaX9sVxV~&_@00-%vh8U_nI0c3Y!pHfLr@WLyUE4Q zYD}NwI#JmPab|I>b$8a+S_ve#eQYUuQYAdq-A~C>g8*6tEn_8FsRh%^sELB+J(}q0 z2vTVjIF$z>%me}jk<8wF>edOOd5h6wX<4bx60M8_m;g7_1XJw2O%JZHJvg)a5b8iH z%~>uhRSAmJ>(?FSs}8CQ8}+>}=e!YGzz(KeSgD(#maXSQZMj*HoKiuy@WCE$c)t+^0|SX-Txyt(qf zf9%iQGO#TFK##3ipBOG+UJiFu!N!LXFxOBU`ag;s9Kv$;f?UVniqV9C+RT!0nlrZ3 z-W*V5^8-K%u3&RoXHFN|nR(=<4>cZNVdsIoDCz{@KN7KX43|wC3*uWLV?8gx>If4ksid!Mn5X8fU zHQntT(2~YrOYC+&s@{#hfwzqyN0pxQm%W@$ld|>Nu2mgT?Cp^~K6#_V|NpGUz52$Z z$U}-d{YQb6_U$ zkRO6Ljbl+(aE?rO5I825ZgV-pKCIJhGpMV+j3H3_Bxrm=d|J=DV;Ra)mEiK(!UVin zndSi+#`x()_5FdTH>XqoLEC_(>AkuGw%3G>?3K=pPlRLTJV1^M^$}P(l*#l1El!O2 zjpxl0G#ePOLqA9*)!}!4RkgmR=3u}oRz*!x)%S3T0wWXi@FWQF{g5vV5bVhZR^-7P z%(O=R!e?d9t+}uJGu3#*)33~++CQI?zj<<}6}{yixKu^X?M{vOfPguJZuKs&p#Go9 z;H$-oFC?>lepA>svjAv}5rz|FYF}ULJ>!v2&OYAqmhP$f-N5H^HwImE&P@LQXvlfJ zJX+id!7xPf6#LZ+b(yRRH_H>3-Hrq+7Q&`WOojAK_a)oAB2AiQRKv&dD4_|%obLpL z+dTg-!^-Ax^F4w3NiE-q9;ty*8MA-(N3IMly3JH%CT;YCYNgIr(~(0G>EgVeWmay) z)y~{ksXD95tjg2HrDY{8586q)prIXGKg?pKo8u0l4}I^lyCMA@mH_}L(+(j+I*@39 z4uf_DJC)%gDR@eTfr*`z{>ml&|~o0_3n+3!l(JXw>{6z*&I>Bzw@1JsC=tqSAL6#d)sI`yh)BLs5x9xvZ*4E{4dnc%7 zBM5NqN)jj*lilZO&e1C5?I2lX_VQloU#p#v?j?r+N{IDaEn+004u-TnRlnjZv(iu@ zm8Lrk9rhO0&I8lK0&UQE4_-;IZr<Mkzca28uq4qg*xE{&U^6aTu~a^SgO&)?icnBhneSan3LZDzsR#F zZovM@h7pTDRM~7g*{Y@VJ+P9)e1Llk3d-gTj=v!znUVX4fKRfOGNG)mH{-e@!430R z66wl*Z*gIguq$7G*=F7?IHh!rq910N+tiXmx<9oM{ln2>*!(B4k%vq(FW3vL=&Ipu zo*jj|XdS^kaBVbQ9-88-l39vj&gM=-${ZD9Sdkne2pU-nBgF6mh{1Hc*-w1H_dzpm zgYV_<{Sdv|MSyOnkNp!La@1L*EPm1lFRQq;3?K@gnww3Vb9GkxbL2g~j1Y^dF{CKv zzvE)d$TG0mrmOiD*!}C>6t~eJ!RQ-FClrCT@T(n_h2MZYfCMm{*Sr&n?BEYajb1uG zBB$;;WEX;@E;=Z^1z6yBL)H@ArLHyn(O3&YmzL&kgXSWk0Y@xd(JwL+G5D>^Jy0OI z{0izB4M+m`xQSpI>FD9Ok#oK~KtMdKTs zwS4b5(mIQr1A*TD33O~m!;L>?Y4y!1C-`*cHEk7@hEMehTbCOcJt)2aOcknj9)6e8 zM_XZ4e{e_4X1APlq6RR;^CXfq>|00?C;@|(Rr@Ip6U^-YSp$;0+fP@s2?8EcwN#5x zseEbvy|qUm=;a1d3?A|&Ge|rf$2mt4QrJ!);xBj_9xle#nyEEL%nKfMvF9)=lYU=} zon{t`Dz}sPg)Up<#GHIre~Vx_jT_K94;)KyMt1t|8HMKy zCB`-KTGp!8emiU+`|}l=+!X9zDNu<^ZN;>!Pi>U0xvrfhp9{FC;*j9Bo=9I4Bymg3 zp6#b(!OollY(9Nh`Psqchh*ZPQ!Pp{jTBbVH<7zLEC=I*31oPHc@-IK8xaF z+E3R?I#4_~Fr<)PuSzg%#KM{m4+E-|jb8so+D2!G$Z3{4tYS#2M_9nk>;txgsmKDe z#5wvyS?~k1$iv=u@tpX~OCs{wMkSn`jNfQG^mn4dmXsOer(dp(d`_NCgNB-Vk(iZM z5lw(OBJ{-KKb~!rVzelEGA#*;?im@SlFGr4l30+-zWxoL%E#>L+p{aF9Cy{t+pi4@ zx|P)6Y^?$~n7>Yq;KgIUO(pZ)DRhDl_DqlzY|Ff)1|A7qimzRhT73+{<-71Q>qs6n zv3cKs?w~9>@`AXPuKNSOeD?Paex+xJ+ffDJOtEUmYrx7_Yt-XPI`6U3NujS;GDz>O zvfx|8Gg%Aj&7UoUy#&jT@~^Edz9l;H(MD#>H0Hq zY>Ox}NxxM_spnvKihg;}SXa2kMA$=XR^_(jYaB2ja1p^war=H~dA;Pek5$~N-HZnX zajE#9??7|sGa>ET z48>mh8tC>)+#}>Lkpkqx$wE3IG*VN5@YF}9sEDWL=6@8mfMhgD$Ah9WE|YxX@{n@26VRcHZkk z$KVxz+E5GB>Cv5{8id(8{4I{Ip!~^|R{OiFTi!wvie! z)ibtaCsFeoUmExe5V%RTFqV|S7JO!vr0u ziT$z^yOchfEydJlmxHDV_*43Ej&)|y-K5cahR2Ir7Fk-?E~2BnW=qW#+v(t&_LuZQ zTAU%82Pc0H;g&!x0ft#YyshN{V6gr!=CHOt>1FXaMP^b^mX4{X&>&H@AJ9*%p10rT zBaM*(d*ol4hiF03hh16xz_~1y2CM7v(6rblx|=T#?^VUl zci1fk_jq$8muXw0%)|*8&ufndQYxflP)6^>6R%tL#a@eJy|et;6(Cf_V})joCRrVq zg62vMrSc1+@99Bq5B1pbUb@C|6!CIU{H-MNdd5|{vL0mf*^5_8nJiQp-k8HfXf5gl zAdsC(zhh?;j}2SksI|V;q^iG>r3Jo^BXeo>0nL$3KgXSbqchNslx(`q`r+BbYV)B` z8h73`zJMbKp@P)={TI>@uyI(mc>-x(!WiGuzPZ!WnfzNoZ1m*;SX@?h+gH`Af0GiK5x zi{1IXb2!dUhR!`}jJdC;u|L)z!dPQx#uk!=Ki-C6ysNyVI>f7unCERj148}1I0W?N zh4Wp0sF-8V>WwBBTC*sGngl;zU%_6VU_3e9TYqBr8|#dSUe<7RP+IuxWz_1K7(M1Q zMO!=hW2s&qqDBP@^ZZ1W^TM(?$Cg}VNa=<3FSSLxi);hKk@)ag>xu5odHt-l=ButA zTFdBizJ)mIy1jBrFx`kB%lCx|{vWuLhRUS>{b*_VmCUO%_Xz9ZSCsAqWw0OfL6@v9 zSFu`Nx5z$cvzxlUHMTaNVPm*{3Ivn^7`6F9f-uDAVOQjDt9vFCl|@k;Su|)og*Xau zCntqojNoa@)oZNUT2`9@AJDhVyG2Ba8YIvKWyx>?dB;ljH_SE}=9|Nc0$D()1$TC$ znHmTnKs8L0!PmcPGEDffM=*DRrJf4IbN> zxg_83#n#pV`N71yGnf0-I0gpW|EW2M}h$ z>B5`)8f?#X7fl-Jk0 z;-bN>#SwlqZ|e8UDBgVx?aY#S;Jb1JDwAqI&4dCU0T-R>#EyMxx3eW&KHPX1T6S5Jb}@J=Mu! zbVG zX;7^gk$blpZ<&RxtgN;HSuls4ymG>yqt|~apQAcF6pHJ?Lhbb&8+Qu<@=`kUYq~nLIymbnEQ$jUL(T zs{v0G_hF9xa|3)uHNnbyOd=VJ{C8rcO!QWXZq5LoIo>Gze!JpyGH{92c-qmO7o-CI z{5<*XhC*S^M8LKYb<^)XPSzIK9ZuSwHL4z^|IIDO_*fu-+(~Z!r1^kEZ4}(l$#`U< zbS(UvqyetS>X{77Q4D`p;~yx zTft^x>KTz}p_*O3YcLr^G6xW|-8Kn$9w*+bq4aOeYSLC_ImP9AooIXBvzhq#9|;|T z`YoW))-}}mZhO6Wsp8!*;kPmBSJ3raH>F`DW=qA}GILKs+B&7q0 z%sBc3906@mlB+4G_TE20%E}(ZLsmJH<1eu?{x`81>|ARr^wWT;8>B>LdqucE$PR5= zQyO$Nl8~+CJu!WOREuS=^uUP8{9K2Kn<#G`${%7(KbFdHTH7z2Ue;{e!GeOjLjllc zxs4^#7{mkn2M0^SduZfV?cc5Q2-`6diY_j-I3PpsJ79sFJ3P}(x=sT6yzfzu92t1u zuPlj7ocub#`sZaL@kUE>US=)M)wJT;{uv?NbB=q#A@+TU`B$I>_j1YqqUtT9+U%lk z?F22w9;CPycc-{Rad&s8P+UWR0;OnihqkyBcZcG^-6`%4!2&0J-*dh(zJK|dk?eKv zb;oztM7xaVk9O#+HR%F>5*79*kNSN& z9!0x967G1@S)3gFiuyZh;)`Xd2Zgt>$}^O?b#y|6{%8NT&ELtc&ob*gxlcq3JJ@xZ zWUhrj`8didoctEdLx=|24}Q!TQVHv07_FuK|HvabI>{2cc`-&@=)o zuV_q1yU?0tXPLKT$C!I0;MrG7DJleWzhYf=NjmHz}}Oz5FY9zO&QgY_V8M3F+VSs?JBp$E&n1<&>0ly2X;% zc-321&Z7V41-OI_LBYJv0YK)QJB}%LkKe-NWCt0j1XovQjd)Y;JJ+Ep7{gBD&ZIoQ zK4ws}v6*r189m!)LKk^{?6ZFCl4{H#&Z;_$86(oH?}spVTr~&Z7FJ2p{L|2pC^%0; z$UCfVs=7=G=agM+fI%@KW0cP?DJAErb7|8llq(xL3y*@`5y~J3fLkU83g4XSt;ZcG zZ)m+qxzIg(4PyEotpUX8;Au;NVmsXXfLN{c@u*vxxCy%(5m0Z{St#PEuk%xm9Z4S-g&IGex&|LFvH~C?j|% z2)pD7jol>woZtG<>vv-~Ze{$+0xUngB#5QumxHniFNLato=io|%Fg8gEmXm5dcZEC z>qI7wsuXKXHO?%e?lxWy;$)$OvXMZ$D^WmdepGmJkBWWR;dg~v0Q3qYB)V4VZ)UC{Wlu6vw_UHNpC9Cq7}Sqq zMTt_xc$Ar`{q^fX*p@q>BL(Puk9w@_Ly4yqXDp!1z$IQd}}rD?MYi6TTjHem8Ho$8bIpZGS=L}#(U z=JCB=LQ~|FoX0P_m6cT~h4iP%4G5`^E|yG+Rm!NSBh9w6mcPen$D(7Wdz3~G#W@83 zl(R=p)K&Uqk3aQzuo9c2zG%7>*k}M@T`X9|&t&I39%3&rJBL11VS!9X${estkZNW! zVhT)7MP(>KF^MXk9WC>lHkAY|z;XIwR&m?V(fmL%VlEjdAia`E9MS8B-pk;QcYQV&`htGHd~GD@9ty5oODwWWe{DWt*;+qA0e9IlqZOoBfl4Jau1 z)I8;*HU2&NvsLJcif-iEXo_T7qqxb17$o;Dma348jvt&K>!`yZ$C9=}#gFWhdwY8& zjg6_TZEYrbrTO_1;4Bptm7ALxwV4Uf9nV5ntPhpr;-}q*;xehtmqBCU&E-f@2by&S zF@O1-@7CEeYMNv?5#S&U0N-`K06Dcq^&5&u&cs)fo(4n5*fL z{NDmxToIjYbo$!)x?+D(TUsP9Keg_;58v>%H`bO}$n{b0{SkZZbmwjRbyyw^98vTQ z!;C1}KS8h7((^734UR)@1bEXrVZ@c$7OA44K0k8@W!o<(wMaK@gCEziu$*ZovFqF; zP9W4s*}yZnpp30$6`U=5t)e&Z}hPjq_+pDEB~B!`{Q6N&h5N%%jC z3@&nKR9c(aw6BnP&1!IQJZ-^&_H8pt9J1oUJMp@|jhTqD2~9k|-@lP4%(lDtVf_zi zZi~8+XKbpkulrTD@J_AquWUQ})GF3`EUw>ID;)xdoBKY)n`QylvGGq%mQ z=5I4?Av7UYgWc`sBYhSA0}jt;u}CQLNh1?%)l<<(DCF`gYF6GNO{jPZe5+XLWuWDq zn@^^%E@-+lFd}OMhoP#ny(T24<+w6elB0yEjtGz_7j}Y7L77Hog$X$!l^ma%>Q>x?}zA|6O3qsJ$`eNkv@#o~w;h&pK7T`$l4 z9nE6itlXzYtg@s_LFHpdKMh+C(p~9Kz#NhsdxPUm}WU~-p2%{tc~ zK}cEX+jgv?#`~BR)JTRsMcfu87T*lRrUC2{^LQA79LiPSQM&=%A@vri<|0Q<6Ku^) zTHW+Q-j@?*1^fKV=2~Srus1x4ue;gM!pH08E*@m(BQM4tD#RiCY0u%UevGSRuAv#8 z`7uod(Z5Bz`@=Ujs0$Ow(jPM+vkB(9-0w1l%>o5K!algGjIJZJiYp=@vWDy_#5c>6rCUM}k5j(`8n!C=Ms(#8aoHHmwN z+h6kes1T?RC_w1;oM z=PG=y4qQ3rm3f; z!!-98UfD*z=g=WxpDA>g_!bgP;5lliXYbhmwFAOMs_yl(5X=>ngO5I41ao8WFl``< z#;O}HRfIn~%S##atAdz8mTVFol^y0X!}3vdvZ?#hZaUZ(_!mweT^vwYq{nyy22J?cXWgWnP5LA%Xi5}^-sA$}^H zt~Tq=Zb9vS-xM_jIe!HFZKR*GM>9hFHop_u zR$x>l_~sX7VZd1n!(ST!xW%F`B7Km}s4+&&=aTU7B)DB5P+7#b7VDAbo*exKZ9R59 z=Uh%`Gc*cFtXs7^aI4_JwYz^RgWL(UKD8BzEZ{9o%a2YbON-(KXiZ|bY_Zxt-1d^a z&Ql&H%~OER6cu^JLDYRtig&`ye&H*l`&`oAYida`8YMU-o9_$UG`ip>3JT{wl3!oA z6L_t^RWi@(sv0Mq0^9rYEM!#zzgv|0pbxFF9cdja%izIZj*g2NriZtmTcOn(tMkS4 zbtn`Wa&+y3iFf6w>qTk&R4Ch!CF_BrI(!!!3rv%%o@0}-wH#?-2e)Y~?)~cL&FQz- zOUDT!$=qKK?Ah!1|J%HrLCT7z1NgA`Q`0ZDbRiZ1f#BWg24FXu2hifD7Q_lZ!>f@5at7z;khNajB!m zJ522580Q%1NAbt+_jMrHV{>05E1PxN1*-G7H6}AMz-yL|av$J^2_U^Q4fNB4y}5gp zuJZaOuFkfoW&3uq{_K*!bC9j@?d(dg7&^4YFkp1HIkG511|iZ~u5O5=L7V;B`8=g$ zqxHQMN|i!Fm#pP5qU)*xM}s)==WqI&Y>O;r0n?RHndqI^aM1u>Ms2-_uJw1*6X#K> zL4jsUbU8sM+>d*~N4Jp%y>$X}Mb`3OXsSrbIICBqH;;<;K5Esvlb^8b2vIWnH?2(-IR~yP)6pRiEsyzbb);?! z{y$_(Gyp6BADy)Nyg^@sl!SIBnjH4>pKR?6A{|H~8(()~Y-&gh$MrKD1~CQadG0^X zGqST6{rx)xWxO3!GEAM>=Xk(1xl<$TuP82F*ihQJ-dsCagMLEF_=|;tGbfmLAk>!o z1q~}ErKCE#hY;*K-CpKVfmr&}yG9CvLeu_-Gk!z6nzn8_} zl_?YN5zgyWoR^(&FJEi9o9S65Y~LQQ!ymrTtk#LoaCo5k%)_@oNc^LM`hkZv8;ZW< zw$)7pqEb1+q z2WpAjUu=FP=K~b~vncfpq!xwA`XfkKcvCN|+jCFTb?BCjyp>(ktY$3CNbFu08{+PR z%%-BCrZ)A+y~ap)YF|=qBK@D zgJs+~|5=ZX=3Dcf!r_W+$RTFIW0hvWY*)CU7 z8oBJREB^I}NIzVe=V(HahZ@frS;Qxjj%$iQ0t?BwgTEMVK9uupH_R%%!{HOCf~TQA zp4f?#etsLI+WK7*-iomjb{eh6Cdf>VOM=2VIdB~lhAfv`4RFlmHIVeRvj-ID4y7n` zkOPrCrf3Y@gT}sFZV;85ZO8eaxxYu&3q~`-iGSB!i-xzEictLnv*O9z!tROcm1&Tc z_?J+(Ev~UPY-vh-0&b?sHIJ1=h(|+2_Ypq#>R!ZmB6%Wp))p}<%z&q`B%rHnRZ+*? z{fGmmV2EQxNgqU-c!M)q>$66}Ny5d009sm#OI8r%Y-Lnglr_-jSEHK|Ir^qQL#uIU z&Z#>oGw%k27=DX?B$_->2Vin$rs}ftz5SUl-2s_DB$!UU+kwxtn;uw$kJCajUFP^m z5`5GzgZKB6YLed2Ix1y=k?FM!ZGzIpGKnq|YK#)dY)uVIDV*o2s6BAw*9UO7>x zTW=D{yL4RB`aAus{fhGkhf8le3OtF&K8Z^B`Nu+YNk@odz3*;q1qZo=1Ct9p@ z)t#xqA3UDB(4rl;ABvp(d~#Y^TAn*czw857Z4vi&b|x1WiEON`C#A7PX-)rZ_- ztAueJ*+-s@0Kd0kppdn=r|VnMW5KXR#Wh*Cn#|*7J$#vQajnzi7~lF|BMI9Z!T!61 zHv@59Ek{!H3;@t>GG&Vp|NrL{Z9~ls@E}}!aI1%G|8*jq$rxlUbaD+Aa)j&Pk z`;WeBeI8`14Z)W1Fb<{=vY@0k2SaO1>`&%~CP;93+U6baA-P@T-ab5b$S`O^Q|J(fd zpLQj3WPWuN730x^!l6=(hCC06IrcGkLV5@Q6Iel8+qCWDJ1+53AL>Z3U*w?~n;}qel+ii$ z@KpvGE%SJo-jtg#C--x$TEMr$t|ZBU8g*RM$HY;m|8k-95aQL^qYT3a3K$pd1i*Oi z7*A@wwG;A8k)N~x!%59ei^%LzN!imz^VH?utAFeG2;3X-AMwYkEiK?H&iEpV`A97( zt3bt#wsQz0Mz$&+s3TCr>{2nllaX{}LNZe8 zf_5)N^0$}ubauCBlDTC?jkA?tuZBvT8_p;+^R4G00QXU+KZXyfwxiZw9Yb0D$^R3n zHOflznEA>|h|2x$H?wwSwN95&UHaqlI_&ad*X$1ZrMwogbtQ9;fUo_mq#uIJ0NQ=o zz^_acG7tn{!drFBe9H7MoYke@ee>rFm3OFePMP94cJ`HMc#>5N>vvdCtFKx5RNj~V zh#mYe%stBqHUzjN5$CPENMGSAH(cDm(=B07K^KpfL5ioVrha<+py!atCfuVyo=}wX z_*9hs(_T*=Z}TJt6B-|CTktQdEoD7 z%cfKSBj0W~*(Gf(3IVB}=%(wxI-U>~)}EL8DsL>Ex(J&>%RPKCog?VdY>q`xk46Rj zs0UYe!u7*eX4|;h$N#3gqwqTUcI`*r#zEaX7>o)LImmqnLK>=;*En9Y*Vi8s%h`Vf z_AH1!TmAosHc3@y`E3*%_;X{wpjE$k;!G9w*6y@teTZYU*Zg;7q%##vs(m>79-H_4CC4!V_$(?V?#aE%8t9~*(& z%_lQ|dn}An^?`dMWL7|mGYV!BFTN5MHGp=cd~^w^%u>P9h3{WzJ*>i^(Dz_1B%ir_ zP;G@etrzG#U?aL!2Lx@~(D3$d^c_4rYuqSI>L|W5s7qyU+w&KC!9NydBKXyR*xu8o zQLlG5??Z#;Jw&l@Q+$0r@XVu+%0XxUTO7SZoBhCsprlNS>QlEm0j7j#my=TO{^K_;&405WJNvW6dci!wddc_0nS{<3aG3SupeZ`ksDfdg zCRxm{f4H78&`K6&AT3Qrn4V*8QlvWp=BSjSk&qk!?}75Ie4G(I7;>U~7C-prvAwg| zAC9!~@GB&%Q44>Z6=ec8y|bg@W`Gr|5RsmNrKfe<>bn~pHs?Kc zvOQ-fDX<<$;he{kDy}Ipa{SqNd?wTs^us7~53*SUy>6-5OBV+m!m5Jrixrp{S*^)> zT>p2u#e5nOyJ|%aDuP*hAus$lK~4xZM9{i5&+s$-jldPE*|Rwk-hZ{$x+Xm6a0)n~ zWGcpaO>#-+k#hxiDsa@c5h>IS&Vq0Ka&v-JZ?)a>zB(L`M;QS=!m`~PbGO#;26lcl z7mlxk!jpGe5{EVB4XTT!)-GrcPG|?6r1to}n|UQrnt#Np8>EV78N&xm^@W^CBCE@W zN?Q4mY(%e*qe4Whr8M@{41uGn^Yl!@f?QmZqiGz)0Ot1sZOf?iJUw7;d?~Gn!^GwbHaoR}*1H4@WKEUnK+xLlU zdH`W_NLHf;il4V2E%O1mD-9|HrUhh8%b1K!vb}lGp^f(qs$#gJncq~kl^Jb&%L*&h z*?X=k=gI%8h_ckZcs*J@7lO};8?7Cr#u764OaX9G{xE?ES8wwt6YT8Ir$!Z=5EaLq zIr%;sEPfW!UcfVFzZ0XMBeI-3y}NpG=Lv4r_x9KSo-^Qj0qN-+jko5eosp!I`Q5HR zK_c*(NqC$MN(t>$sB$@r6>LxMwx!?+`z^>Nbp6I|dA4uqn9Mvycc8W*+JIoZfI6Ww zocL!QH4|q|^M0BKc+k1+G5sezv;w?9^=rAvJd(PaAThY#r-T$WB3-Z1$(ImQdC?gQ zX-qpxJP1m1^mSNA@0%kdR`(10C-~^wxN1&NJ@1f)<{ZR3o=|2Y7ma+QHpDvHDQ&bpTpd zSBDd9Yinn3ANbYQ*7i#vdgtIqTT2e4p0(y;7#udD@A2p=%o&nNdx#TEl~oFg2u768 zSr(-OOUq;L+wQyL9KIicKrmi2_Rj6>Q=PKh^25YA*cf-M-qOTr#7~TjynjH=D}U8} zC0)us>YDLA^NQoi?>i18_{e|daaCHlociFc$lL8Pq%^bi(@}y_S!I?eyvNM^o4?5f z?!MgDUnaA2b&Fl*_Mx!o#)0M+rXxp19*tveh~m4P8Z-Z6;>C+-Hu}NH2aGN?2)CAi zRMDudVt^kkk{(t6ZRWmt37heLYQn6DqvKE2BFEd?+xnn39VaO1#y!fKTOa0D*T3A@ znXwNWthuPeiwqOu@v1^kv_c1yVHJ5bPe0xO0ph8CHS}~x+x-meg-WW%sRz{^X94oH z!COxgZ1S0Fr}^-oU*jXWQ>>%;L|Dy180B7pDz4hmQxnJYSAMULN)qLK zJ+q+T(?0P_6R8#Ku0xm2mX@pr?;XmTJoT53V(~PX$D{DN&p{LA#xKl=k0KE%!Q}xp zGI_!<{`vE@#$S~Co~N)EWj)P=AkWOFTHY|jpVaGi0v~I;J`4HO?)M1JieEt=_f28K zDc7#+Tr!o&uJh+)x<2dGtoAg@~ z&7>_;zdp=OYr^dZEc~WoBtmAU#B29skZ8lX&?3;GbENm?%_|ikimHC0yUQFK@#f7K zsxc}jUx)35`M9fQCK^-1i4S+QMi zV7jT_rGfu#|9+yS=X+Z~3Mr>7w&=}dvkCfotYw>>tKSE>Ke0>gi%x|Cc0P7~(E>E} z4DI_+kB5esKalZnZp18a?kGVtHuz(vdE9&cR&~U51a(=G0mkE};mqk~Y#8r7@Hqd^ zLba+@dr|sB>j}q}iM(whGbSjO9L%44`)>`DX8=t{7?m#H@wVH#ZC=zi{vG!=;C%2M zvG$DS`S&t1eqjQ0F@R3|wYQ}zO-=@Dz?PmAX+f?Jr;>ihD6nAPW-#v|Dr78xeJ98B zMnRqD>^1v2tc0UGU8Y(uGs?VnCc*H@&~L`6xaKRM*g`?EgOb1laDua95iTgp8oOkF z^6(3FzP6bkS3;#KU86PTS8_%&;xsX0!ZI@He|!CM!@SjkLq6kv;=Z{&k|~x<>{atG zN{WYF?9p8Yo_=NNk$#xYMQ>}dF)-Bi^wREUmX?TL&VT%%CZV8sc|8e2%O=xlfu$`$ z>FR6}mEm3jx(IThERKx2x;oOkhw}d@n5mdcz9O)T@V$Lc6@A_UczfUhH)Gd+bFQWT zFEzm{F@v_wIu(+uu=ko{6x8-hNsSg$?i+3FpcTy`ukbm(3trp72xo@D~gi)sR_zcas+O* zp|i>E;V~iWat)x2Rf*A{1{fP>E!t1?iIX|l@ z>J^H#QxO~!QXbbW6`|CWC(oZp`dN3<_jpcB4# z31$fUoc&(<0xNY`?8x;QR!sPkX4s}XgH$zp`p3tz%i(=|S6z8Y8RhH`eW*zF3tfZZMj)Q4Qv_FYKA)rGJE8bZ+}!xZ6cIi)xr21 zX~RDqr|l;v1|BFHl7e?$06wGNu8GaJWMTTaj{JjTJ8g@Erw5dOTQ5BLBwT2#Ri$uQ zj=Eu*I;P#qnFyDz4`E`OuQ_KP4XTe&w~Csahio!PxpIxSRZW}W{c-r;*sfY5d81pEwN-1?I83B+8GN|K=zr>Kd=~jG05C_~rnJIW27OU@a6yH*SGjH$ ze9K|1V%n{1vYsSJUvc$fNTjeD+_vqTsV|!yZ!hQht5L?r7ojbR6ctc{cz{-&KpJUR zJNBQmxhk^;^_-AuHZW{j?&h&brj zoQ0kxZgi=++alHwKnhD;?lXvMtPCjns#tF_TIQnrTA>qpxTKbYVs|vm;$K-T9z6ZsABF zhd|4=I{Tj8{p+NUL39Da+(yc0RWEl>$~HH!vW_wND#8KCTLM`)8`<<=vr|M=lkAyu!=7M+!R9 z%KK)z9_Fc^7^J-B0Z&lYGuImW4t3uO-9XZ|##8BD!Z);|FViB+k^s>HOAR0kX$zGry$x;ohAQarn8e(i zYdr$Nv4TDS=t^n>%5G4!aqjsGxkBGdgS0kD-#8-Pj{Oq;hJquZESei|CMa}}A0`jg z%^HDN-`hO)&u~;0L{j*Fc>!%u9&V_?lH?3v%sSa#^9G(PE=_bNq5KqH57Wk(_y=tP z?$Zn;&E@N{5k2@jvmUPa8ifm z_&x-YBG+PYncen~rOF7f0H|GhlYH`=J^szd6MHYj7(^vOn6OgB0~ zV@$$|hDCPqO~(Y+27-*XXoZVXNBJ;%_nNl2-KvkGAI2A)T-tB?CcS{VDY24w5_A@k ziDL=F>20^UX@|Rf!!9X_ic`Hx$F+E_G0+-g{S->Dpg$l<1gu)Kk-O3?++aZ6DB7k)p z4=LY&zQUm1-Da!((^hWsZ|;D{(I*agRNexN?fS{06{OL$AA38s^RCHv2fZd9f}vB$ zQb@)q7Do24d69oF+9^t}Gv38e6JySOF|GE(mGmh0Bq#dczicfz%W0zZBdO8B`!Lm*-a~~XPf8A_ENNaUa>wd6ym956=$)Y zw9**vW=?nFM-WQ|B+UW3Q6!d%ihr#WP~VQNM}&SW#}FHeMf}r9%!t*UdQ&fBz~4a^ z$%T5?dW3j^8L7s*SjN5S@HWHG=x?zU)o5lf6g-k({hBn_M_*C_W!e+IT}8B(d;f8= zIXq-cuNKH(bMN_}@FCj$QO>`#qsrtyhni}*MsIr^O|D9kC3zSWH~3%o2cK%7@|Ot> zec&E|_QCrby13l%{v%jW-LaIy)QlwnPshQ>x)?RV|Xh$o2_{|*ZR{ICe`ENyu8 z(;Q}I%-q$yu-!aPOpG5AO{M*!;G9APMUl4-Hl8)*uoC|nfI9o#(Otubm)BJ5-vrbo z1BqaFNo6RYmza!`_<*=Psn8dLgdppd$9o<>Rx)9&u6xf7v?JlXGl9oDPqFgWF2~=m zsk?UW+52W2Qdx`nki)R_Kkr_HxfDp0#Rti}u)bajecAfM5w7(C`en z1KC19SjjVV?R>BKLh!bW-2hd3SfdpURIpo)7~pMJ8(bSpw0%hMQgekX zZO{N2&>3u2p(1tBG#KeNpiPZ%DM~~My~)wSwpA=^7Qz;;4(9<9ge9jqQ^HoI$${%j z88V#aS_@6lDHpLxpMFlA#?ht+TDb41+tradI?&$^`I?Exb8x=xVZ~qpoK#w=Y4}!_ z0`q<`-}%?#NS~N}@1ni8fuU#X6-S4`c_-oE4 z^fX_Oit8R6Z*u6^E~StU;ZajqT@oe)bm_g{k6okF@tW57oN2g@ohb3o0ZVLa8??aamauF%+tN+9Cc-|}S`mykO_zcUrQ)fMP zwxJ&rVoYLDEs0XV*at}UPmf*duTUn|^wzQS$hZky{bSCwBLVBR7R)eSyD<8){{!Rx zc)V-^23xMe8p>Gi22+6fi2*H}M%l^{LP?ECYlIVo2?zu}!Mc)(U)We#0F$zmix?(b zMC*w>$7E`HGhE~L^k5M|)SnnbV?VJzpWBZvkm-;7#2WEpU&)AicKjWL$cc9gXg(Z3 zLOk-b91k&TJY8IE3M<@L(|p@JN$hnpk!$fc1gzp?&%l3t%qqLGTqlO*ZgD(Y=Af-* zXw?7%;OqHR;d1+OlZ=p-{`lGB*z(u|ya3v3TPfP`@GvkKl@8vKuVj$7W@fDFUDZfh=O4p#eVK8B#b=ln>A|m$Naty; zYp}O}dzkFA-G_J|?*{MC>xJvLC_#l`al%v{7lMT5c--}_&s%jNM_+R;t_~pdrk?}G{W+vOxR7=MaM|=tB=6!y%*rupJ)SzaN zEV)jy_CSZ|Y`-k4ei`l;-x|^-F{y-RRmcd+qN)6?&3FSlPwb@x_Bro!N$~OOd{ZgN z=>iA24ZW)g^LA!(sCs*NKs?EN?=qTpBQQBALM|d3_A%$&h0^1B<>&vjtFxjBXjXV1 z{Vy8`5BnH`(&wv8IIvc^>%#dfd3hJLpwblcsZ4jKO1c&~{ZHk+XWPEZ?UJ zlHLw9@eDDHvR&9h<;0X03lCxfPpK=CGs-cWJoC1gk-qj2bm8Z{Xmde*Ix|aINl~p_ zU_<~vND~HIJPNS)v`l!rc>PxV0&RT1Y3|z%iDsBgsMjJ0b?bFPG|lh^Pi5O&aVfbU5ocn28-KknDcC?$7UJk zG`bC!hBTeIsa_+(8HQ$u(+!g*&~x{W-?ta}Q%mks2xEwUFd!k&rS30QzP7iF0U+F+$KS~i8@4_gvO@u&P-h%y3C?W9 zYi&iP*WV(#mvdIXtRlYPZA_3a;`uW5Qgo#7MM$1wPD*TzE$I|o#>g?%$Nyc@K8vml z+X|d1Z~PV2>`R4~)C{rq-Y&v1b*@L_WlOvYV>hCqBZH0Cnd{57yJ3xYxp}8zp+*C+ z*NTU@`k?{(njA#5Lj1<#Q`{|t%$fHOnetq8IngYcm7q599NipmrGM*foE|#()%umQ z3yCSoU)m2btUPx9sHP~u3*oD=vAUGU@g50_tF$YN3+Wnx_ zF^EeU)iUdUO1RzOklBAjhpo4{G4t{AP9`&H*)P{S@CH44I>MFYkrBm9#0y;UjDd)COcC4FegK*$^g>|i z&$g_bs2OQ2u`%gNhG2Ut9%{jAjR;n|2X%n+XdA(<^Lk@cBUTIRQqc&Lww`XXZ6OunpF|tXk*H!1=DYCOiGwSm|8?w(o<{{w{1Ig`q4TDzj%wY#MEpxvd?HIJ z?r7UuM!)uw^J*md3cVSq=*l~bzF4dXJd8j}4Ks$|4%61qzH0&SGZTzwBXhBO%HpVE zZwd`G#8J}n7Cs5jf#~CY%uCMGW#@iXjQaO-EZTzlyW>gLaAtkqp|_t>IAKq@5*|do zp>(r{0?jZz^F6A0nz<<=sp($)WBRdC8cH07PbltA$Ljx+f}cPH_S``g@aCb969N4j zfKTU8b`f9IE|`uqI;(WKpe{*ZKN1hT>RNCm#yh7cGz8x6-A4zRabGAS{fEQMh^ww0 zoOK^)@B0M>CDK6~oI>-=y7wH1>!+3Hz&c(wy!m*I4v=rajt^W2I2;!jqbgv40cdh` zuJ8MxGlF>nf|bQZrlWhMGY2(j6sBmi|wbOG^KifAp#YA zszQ*2mgLU*Kcb%W)i;ewNakOcuH(p9z~6<5hA6_8uz0gNK+b?4ugvpRzaD3L zv=-JpoB!1U58|@_GQd~-(E&&N`a+bd;(|1|@yX03D_0`bY3al3gAEG*_w@64)3@e4 z2K%P|y=wY*70E&r#EZny4PKsUm&l%FGeS%JO}e@B^6-miNHx+MnE9FPmGYX#Se7 z+33|#k>LJwOq6GD7t%tjDt}%#Ju%OIE-3^~d1Gi(N^i7>9w4h0Gzz-uq|zC)&l`gj ztqSeb`e(8fYq}V)VR8zrk5IM5DC1#&S>+07j{B3|=SUIlg1t5#qDrw(e%bm&=X9{p zi;p6v@~~3I0En5p?Ks|o+~7jIFpfeMV(rgew`CB0sBKB=cFVP@cj-uVkWIV*x@RG5k5%L|vV6(HKDF#GKyI zKmA?*VzBFy<`wIT*tC^y8@=nY?_qwn>leq1JC^QZdjve>ZSd^K0U??tHa522B`b?H ztg6DKE!B1`Gv(~qGJrDvTpCLxc|8y|Ch;_yQ=RVyH|b0dirv+GInQWjC@hy}=Qx)i zYVkWf@{}!D!xCIx;SkBb%RHi|FN7u5BI09rK1D)8cJghk-|wzZMDdUchR6+InZj6y zSqd{lGw&@a2+nunjdzmJ{SU>|nl>gc{^K}kiSm?OAv(3|LM<5if;q`coRH;UkiPKi ze|iR!6-06C(j`nW&AK$uGnJ!5SwYrIeYUB|egjP4Aw9?;IJGRNchisv*j4;DolSsX zp?Zj~WEDh}f)d3&1LUmnV#)onMwdr|GD$)tkIvF9Luwu%%Bp^N%zI6J zIp(qBcH4PnOPTXp!>%eIt$O$*ry_p883tePe84&FI4HS?ZpOcP?S+@QzTPtEL#C#Y z;)iSx>vrz+AR{7~`kcidJR!gXz+#W6JZeZ0*MX+3`Jn+cs=xW8B{st7@yvZL`okJ0 zBDAZ)gf-+h6(xU22fOW?I}GMy-N5Vey{At!8~c42Ovn|&*b#p(5B3iocs|RgwaFUD zTWc03xQP2Sd&!@C2JZv-T;$ImV~g2s>7bm#2G~Z!9{z&TCp(K+;c;-HP_o9AFPrew z@j5a;tcnVCQF*K8VRt(il4P{UTII~4OD+!#a57yBq_!Z|eWM;0tgT*`Xb{T=`BeYT zzwNUaQnyy}^ADz^)&q%HcDVED9Iyp|C=k+9B*SmSJU*wJ-lQMqm4QzYn~!*GQw z-TQSZcK2pqX$`f{)9n7ApploLKAlB?M3O zE#Q~)r#0c(398q%f!+Apoy7K0b77((=4d^bDmQ><;X35}*xAw#qMf+8lq$?A)ZP8) z-?a8jcm`+Kh5gwVg9^4D7G>dji|%K89PEp~`XyA&@GZd7JG~y>@d_k>RCTch?8eDj zPa9VbhG^E(q+8bh-JrWZsPHs(k*9Qnn?mf9l;5qLE7YS{e%?kn_=~fm{Th@d@)9cV zV-glf_uhiD@K}>R6jm&ed@T#Bp89D+WViH*SYBR3QghgSA-KE(YW-yW*fMOTNYHr{ z&n&7#b1{EL^erwo06Xx!(ayo632LxKYDcN4MV~hH`s{_wX0%IxK7u>(u-RGfW-7q{ z;W5-mkmCr8`O4f2gIiU1(Z2=y%>#+`vc5Ji>*$(xNvI{6x==%>MFZyQfLhxUnRI|+ zkYT%8^GdY8@eYH6K-oQ!xiC?>%*v)U52OraznZwH{?)n-_*PBwcdm)i+W{M&Fzt;} z_SF^lr4cN|Cho5j_i~7mfz5AmM4{95$F-@OVQLUViq-eY6b# zP9jwkV|U`S+~;nPY2v1^>WL3tc`zbMP{sx^`yx0HK~X66MP!`G3Jj8M_0>(LO;6-Z|v!^zl?4Aqi?c@Jt`G7kGxQXF{yr$=8&|bkp7v)N5JBYfl@X%@tj7XHa<4iTZax?l1zl=*J=~>Tu!^3^JDC2vpSNy zP;P@}5J&|(XwUAI0F=GN$*eJJ#p5Sp>?DA^WGr9oCgsc>M(p& zL$e+CJnauCB$yNm_`T3#I{VCQnID4$@BU*ea~n7+C&Xo;RHgl~(*;N}U?jXS%^h{{9ty3c`w~|1UWv#z@&q74Covmr2 zr_BMf>r*sod~qNl4Ji4*xT27p{1g52pU>)V+M!hj(l@*XMRK~gO zCnY=9pUdAYTc3WU)CcOIx`uVpBui#*6qE5~t@D@jtJh|mNs-6l&`$jhwnud#-SbNu z9efG*6LzqMJdoz4;45DUg9BI@)9?LoY_FF#--JarQ&vBYsEVD9=Li$2d$!}(3FbbV z7MUKoc4T-=eEKZLaQY@CExk8d+kY6z`evo6xgf@WaM7rpX#KB^cCR>K^N1NTdVRQV zX+BbavE@!3mesg5%#e3OYf9nsj8=bh4t*kMNr4UKn%xPRH0?0Ao=^Co{w7HN%-((> z)w&sqZf`G=HF9ZACjupB`1Ei7^VNkNGq z@yFSf!)C-x1f7TY3Fm@xP~N&HEMkH}{^L0wYZx@GUEmqdl=ejp$RC;BAIXK&g~pY@ z8wRBNg2fArVVRJ~B|&e|pY-aJbaMvy9DxBWZvd%6;~G9*mt-FQrI%a=HJbn)oxiNd zv+=QM6Dv_oN!rLyNQKT@A2?5iwj*?&{dF>AO;0+?*6!Oy)UU%4s?L9`_qR?U*00hj zs8gB!D2^>akE^&@OyVu!PV|46I_tNnqqXbLP$NAcp5x-melnq&JQMyk~!d0XxV z84(*gtZ&C{H`xT!2?T!VW%Ob`AR{Guf@RfH|Cy|LPf(Jk^3f%X`)=osE24j0RLb8c z|DB2?+i;MSm>f|elj+1s-A*TmmcvJ@U{rdFM2IL47z?G@h0t)s`u|vfU4J+LoFq~p zAI9kR9=%U$LvGYwbAy-HZK!*h4CWzeL&nYY?fzSQJI#vmwzbwXk7}U`@o%E6rO{1; zmUd4M{aTXjlxVh}CnSnVElo%=Xo0yR#v1~C%=Xxn?o+2?GYr_uXn%8<) z-Er?8R?7*jwV%9=^I&qA#W(Zs^WH&YXA8FtCyDp-#q~v$ciNc16Xb$uh4H(#5V0}K zWnTu-^)E^cBmu7mUa>Q=19v&NRH`KD18D>7&!cOKER>-6Ck)Iw78zfUfqVpMX}FIi zg;YZ&Mpej{g?gY0pcV?tP!cyXjSfM!Zq#S^@EIJWxY$93rJ~?3h-v$x>TiAG@sBuq z6hpuXOv4?+pMlC5?S_^Cr)p^93TXx~qYElc7;dPU?H7WoOFd8tCxcLgC$_&O4_C&~ z-?mzT=Fwig=*72ADcCd790i{$Ic==$2GOxOo;mI@jS>ySfmt?II)*!IEYQygwM=F2 z>`VdnAGSa~!~k~xp-ZD5YLy5C(i2tQ*+T^**GY%30CT|ZKp=xp0xNzSv^U5H;nTeH zk~0sAxajdtNFcipp>WS{a=QxXuEtr4sO|%piCci_6B$9N@w!$F*1*eM50T4qlRXg zga$KRTIHF>c*|?G?O51uEnX45f}z>(de~koFB5lqgp)TLYr`>3EYN^>pL7N^lnJ~S zYaW{wgID1<4W?+dq8hh9*YTvgFY#u25-M4RWUF=z4c*XIVG_IpY+$HVod1>oB<6_RoHh_s{{MA8bJu(bzS^OCoMA)jIea4@?@jA!`ASb%Dl@OAHD+lg2|o)G-k zB0l!wC*ApN`AWR1D6yp?a&F5&ON-N4IG3m(iVqOmTe~lZO9T(3M#|l;z-3Xv|M56a zQ%6I5BoW+o~-ZPeEpc%Ony_VXRvCGWf$YX!YW=q5<3i%pUQTwhqH zX9QdN;Zs+cH}3KM_;cZ9(Xi1*PTvYJ?vLn+TYs#PPG%19Ps4H~p^#o*O!(8RpJty5 zm>;rPY>%u&1nplfQBT>$o>a1aSLGni6D9)8CI>5skARXXJ|Yws&W+o(fNAu{gmfjL zr9a1?AacimB1@k2llh_5NEQ`&{;o8&ZJ!qp1^e=-IA4{hSXq7XiW}%%?20$!fv0k% zC8fXR6J^Bby{EAeyidHQ?jH#VifdUXOW$TuL1o!FEEg#Nqp8+%86kZ3V>0FzmRNSC zUKi!oo?#U&hb396?$QqfX$})AEsrBF@OKd{TV{f8e%~#L2M$|>JL2BX2aGd6N6sYm z(U}2`^?nniSN3Ba0G`=Z*)HrWRuBa0q~*1KS+f5c2u9#w;<$mnph9v=n%=Gkt*yp!?eqU*g*DKQ4-`#l5oKZh%5_6_{2KS+u+PM1` zp#XaS#E=hdIj41hMZ&|ENShgWjT||x!snR?avnFUM|?)Ls#Q6w=D&=k8&>;W=?Zol zWa?f0BR#iZaNd$;_OmxT0dWFnz5F8@owu34XGub}tu)D~X@zWbci(McrdJ9&?}&Ec z*PPuMHCnFt;Rc<4J(40bpiJ$s1=en_z>YLd)aW?&c`qjV1@;vykBaO&Gvo9 z)--jvkUR69KYPSG&+hoaFjw~+Ye;a03|U{AUVH#-EAUlRb10flq52U>qO*HT5lQ_U zSTYD3AOM|?u`{jFBFHc{Ple({XORoQGOg~Hgus&Rk6u}n>bkU7Dkjo(Oh3Z{uVoCJ z0UTE@IL$A9J*J)bT{xoNF5^ensr~K8pBHY!aawn>v%(3{c8R1Xz~MM+u1jG|G_?*R?U8k zVy76B=Nup0 zmy2xou+wwZp65!#H@DjEqvhe1z?H{sQRS41@sT);0BIqHviiMsC|ULJ656krC;q)> zEyuAV&f4>#&-YyF!P0dWEr1-T1?+6c$zm0x=G5by2A3 z7*lSPa0NQzHk_uowu_a11Gx`h>V_0tOMZZ2#VXax9ok8SzH0|l68#E1Z<6rA?B`5S zcbVJOR@e9vdWQKqMjbxT)q%Wsiq}P$?$7amF*Rhtk;ur%I8}{0 z)A#fmH35D^#2sh3Z)8E0m^ml~=)q z1`xPYZ9?mRSh2eEEh4ESMx)BhBd#G8nSQc;Gmd}a;YBHdfkV64ls|5S=ARVm`u@(7 zAX}QT)F`V`F|+DxdqX-)`d%f|7_Zbf7DORS$2#c)i&#&asm#QwQj6Fxk@;~s{Ab!~ z=Q%$=VVLspG+Jhlk#TAkGj;mx&Y3j)OtwgOScmVo*gp1DCQkIau`rOAz2_Z-N}~(O zDw77GE7aSFc^OHnwzV}O7#znM3v|}g`KHSLv-RVvL)^S?zPV5JN7;FhPWArR6MU4W z+H4j4TlsB&!nMmVdInU@k3T=%|63&i0Z|!UMjRlkG{&WzC24|QYOu-?od=(AUL2sC z|FNabid7oy&uqmLkeRxfui5LB5=|Tjyd_r;XMtwH$Br2~)HIq=yQd8)>}YpIBPc5c z(KqnS7lHHPmPJ0i!7y-f$8p8aeO@?j;f@m=)H2rAx>TJq8t16~Gl`o=Ct(;$7k1~vOVF{ zreg_%?_B8O1;b+a;v8IW2~6LV)-ycv+u!wt`Tg-aES@@DXH2xERamRG@^ zi87UrYP|SHb7>T^Gr#OVzF`qAg0sYor1~ynD}TC~ZamMMdFZ|i9@i~JY2eEA)9`4+ z4TamhLH{`6gX)-mx2;wQzx5VIY4>6-YZUJQP3x~G@RV!A5K+?3$o2YH|=gKh_( zng1^~pMWf7dH(o+AWhy$lHqE|eGWQ|;t+gHm7XGIog>O|&b{VO8Y}qp@?Po8xB92W zk09Ev;;7_e)D~zI``m=a4@AB->0!p@O#odoK%TXjI;r@m75c-$I$+cTqonHh$lMc- zqbLhv3~l#YijsQfB4nIg;+qlm%KG)hvV`0xE&bGT1Y$DxkuAbMux&$_g)=gkms_+J zE+3;VSl|to&j_ieg*DYsQ?tXLzQkBuM_*1g^pnQWkP4Spm~>0yX0#M+86$D1y#Xs9 zU8@Vz_>T6TwWWdb9|B3VL*K2hrnNNd`|_4e0L7S*nJvI?Ye5jvekji2N13>cbAw+- znjMM1b{_9Gk^me4n*oJCE>Z=oSx5Am@!cslu1%x2qvoG+ zUsHA{yD}Qa_3;;Xj)*jtU|EOb-EBYmG{dYYWS?X(jxOKaMzrTD{ zy0(Ou!0@7BYY&Yg)JXl0Dq zPiT({`&%?X)@|MhBG|vm{L9yVzZr(GFb@MT=I)|Dv&N_CNlT-6?tIbBMq#}6V@;m^ zkCNfq`ncm+SsZ^|YmbrhIJD`YdIJeo8FR02i*o~EtKEf1#k`_C4!54thh)D2E6Scr zcuybS%|oG^9F(pUbb>2}C8Px}VdDM42f-K~lT*UIi23B)w%^9h#~W(bY>^omjQi%t zUQtEX!v71CA74Y?S@?S16j1Yl7`JAoNjy$JUp)AaH~iuMdr9TecDIhhvtv3}J0^lw z-Gp?Yi0`tRc&t89tyf(R#T=L$%GxcuOhQ@U_EFUf%p}YtG3VpuXSJ0e#=os z?!TNJO|XW&J!@Bs!D^f9^|JlAqNAfZB8x=0AJM08+HI%AN$b6y&Zj^ZH2gm>-Tx-O z1BRx{j0u9PV4JRrf^7_qsY5IX=vs(-?O}@y>@iq3TR(`kW$@{5{lNHRV!`YD`w958 zB%?3Ks)^M;B~sGaE(eiNb%GHL9n4W%4-Fts$o{U;!jW0I2`vz;kc6!-V)r!?&#=EXDnla*N5;*& zs>a}3{_b2JI*hi-N)Xmue3;9)YoL423skAX=FtT1NEoMuusE(Y1%-;;3PXO9v;=pd z(G?6cZ5Wwv3J)Swg@~#QOd@IT^WW{79ITbLvF*w@JOEAM=HsfV;Zk{Gs}eL)0B-ME zw3w3|jYM~RgG*jLA4HdgV!Vj%feCJ{miJsd_A5o_XK@|Lq7TPAEUw>|IqgxXc>oSE zz+I(uy-H4PDRm{=fNVMQZ7tXM?tJx`Ox$9t!woFl%Ntw%z$ z+!e3>>4jQ55(3Qq784pi#0}O`saTNNU2c?s)EVqzf#npqhvFj#ND+L!i1NhnPkb_b zO}>ZI*$0|>9Z2iGRf?#4N`e{EUkqWcetbS6TWhtS9A8zkoL~;6ML|DF=7NOUia3h*u$H`h72Y1J=7JNLi~!=HicU0$Ncljy znLL;0eeuR!gz@32H-jqPhJ1AUlFDmC>uBM&_*2Ko>vt50^EZd*|G}o_7}vHrV>^uk z2Q=_3b!+^0Z!R7_F+%bL1saBG$C<+lrp)@2q|X7;SP)tK!^gKtbg*a)>x`ksdHhF0 z$5izJlqGPV25Hb^hJ0OX)KX=4V7G4BZw8+tH6$=rTLA^u`_&(?rJYWhw4`-nn!qZYvTXlVjtHK{rXlvv7-!N^e3ue`a*S%IS91Zzq1>T&;&5gq6a4Vhtft5l zNZC)cB`8ait%`?=RbOD!5h)!mI^vqkJca}vF+(-~3a53K#*XN45Yu>mNTeKN{tmr`fwO@N*-jYG9?#wU zGE}ypZ7dSe2buc^MciN&vSBW2Bl_47(irbornraKAB29H`K+({e>yJ`c&m)@#<@OY z4t^*(gcqoNNy8d2nCeZ&s>CBuQnhxf*bc^++bXJ#$=4k|lpQ;xi9+n7z`43GrD61y zq2z!8{@X~v>mofn#g&T)i!c%$#G-RDkD2vKoXq`sd8~Ee3cdeMjFZ;WUz|zzTNI=r zE$20<$KFq?fgRHF3#kIO4oswf(Qgj|@-oBu(dK{ae}NL?WAjmw3WrYQo3R?bKOE7s zZQN=^i8WZYK6Zn;BNoL!xi4vVouE67u{P@v7NA4f#GSCi=G8}n3MsyVuw`A#iyf!= zzW|MaGEg+U)xPNR1V!zbWM^|K&ur=#A8ZUKzON?LrAsU{pJqC|VzwHf#}1CCdOk*2 z@bqrmLm78paQ8^cEZ7~)E*);-m+qFV1%FhNzkla%c>FJJ%o4#G5fp?3o1KSYT^uj@ zg6@A;GHsaE-iQ`8)zE~i-V&2`A{yxG8|$P*^d8nR@A21`VQp=WP2JM(gwj`*qNd!4 z+ulVeblqJT2p?vzZv3%kxZ#`0F0Kr17GlJPIjam zOR4$R_2$qBLv(I3yxh~NtNT{YM+;0Y6~bfHvHt5fjt3On>sp2Ek}bc^Onc7W35kxNa1P(?rQgTp$5i9>-B(8`gO(u@HhfSD)C=aCYG)$8^_X6l82|nIj@;@sWN|9ulM!mD-~ax$S4en)y>k+2^#r z;p!gC$|-jqUP$Z&00&5?UuiKr7u;q{RrByI8wXg$Uq6w`YBx1z`VBfhCc+EGbKjdRgV%YTN`Y;^-7Z1 z8^+FoT8~5#4_SBBsR>Z58x@!XYB4D?kACyggaQ8gEbs7lmL%RuaX3BQ3#?9_#b?s% zF>?$EF10`XQV=&q{FYY9`LG^WsgXI-{>p@;0nY9TKmosx_)) zc&i@s2%hl8fb_#*0YI8zkZ2*T;a4%GAfzTQwAycl-{o0Z#t*Y-p4qBh=-~xI)Ya3# zW{LrCt+syvu`r|xd`8FH+&Q!zl&TV^K#A7bjBB?sg%6#t-Fnxz8X*GVgOB@vcoQbq zbnRHLZz;f7VWa0`aWdWdNK3}7>xjq-o@89gOiCs)eKZ%x*2rQh<>yRT^+$l6?qG;E zBkN~pE_q!5zAUSW;gix}#bLN2K^FNK^C79{3h7lu!&fD|OXxh6waEEZKxJXXKJlS3 zzRDd>@fJk_m7KBgKAjW6dd2wSS6-w+q8lTgsiW7+fzUrtXp*&@EK@$Ec9j%6CGGjc3H&#%QWMca=EG-x{oT1hU zU98Rc(cd6oTol!W>exIQHE&xy@yP#d(jOz#;I;y8bS6|5~{|8X@z zc1~>VKL}(I$SIW=#)3$wt=*Ot3XD4LI4l&Rzt0q`)n{F)o|YAh=Owvqpt&BrJ4v_K zBy5&fdqs!h<9Kbq^zZuNZqM<=1@g1?8N0ff+*H$1;XF-KHvG87EybABm6?@H>{fkQ zC5`=wDA=G=|1tH63XjVH_eU3AuYTr<-Hn)@%>Ew_u!^q{MNa| zKmN>;lz1h_E;sGoSu&zA;Mm1y`ji3B4v?rAP9`@005{LV-W0zD+1W0(3XDg_P#(Ez z0uA`^AgGW-0 z$x5jnCA7P#n*i-5b{^#_yW z*iX@7uOk9z19UpxS|xp6`|Te?17?lgf*j)G2&8I)manPq6JBm}KEWB?JKjY7q1Fh( z>Hk$-2uQ{I0;o6i16BYBM&OpGH9UB(I9HM;lY2JD`kZ;Ey!74p9kRwS+U^=!NoTFD z)tc7ivmtTsF4U`5M{J zx;CV{?jy2Q+6pcelJj`|FVa>I`q2o0f6*6(tFgP2xBl1FF_9JAdTHhB%C!{r$rkJ&N!YlQUcQF!Xo=sQIFW+8miD@zb zTO(5ua)?suB;sxv9AOS!914zT5-@5`#7w}r`0}&xi{U(6rem?tfSw;egvVhWXV1l4 zR)94~CNa*1??BC^C#v(CptharVz)W<+|*p<<9kbUi+qdDzx1?>jD_$Re9^?-&$eV5 zPcXKykgqQZP^4vMCg+A+cig$IC!`@bwXSILhaxz!J{C4zh47BDm4GIXEP<(ZOy0bN1Wl z=y`Yzi4H6_DD`kf$fQfgTp1asgX3EQplFCcP317nw@o~O$Vk)@)_Z_m&Pv0N2!slB zx%IC_9S8T$NvKBJk81Ds?sutU-0nXz?)=7C0tP_@si%v5MF=RC=h2ZNeJLk243q{} zvBBQIjOWf`?TH%u)Ol-AE;alh!aaUXRJLP?dE5XY!s?>%12t|8)}(xuE(oP2(7QeR zq-+#3jC>%PImyD0h*n4%>2qHnkqx>G9iZU;M1~bBXB6PME&2vf8pnDs8yEu0mjOuD zuX56Bi*hn*6a7WXw;KFE7N98lOy60{1@DBPem>^__w_Ci;dZDvShnzsK#O%&h3kDh zy~9N%CVnO?##=nRC5aRgO}}$Nk=&a+#QHQypUW!!)}U-a(utVK;ns}hoLI+1!YW!X zj5~MuzT{6yE;!tdzrJ4UL__m%is`qr52u3N$9RYrPCj4b&i*0&ekdR z;r-i!6!OQx=1?|1jEmh+W4}gcybHJfqqOs#A;yJs##;;VJt0unw>dNuxS<4kqPoh* zpvFJ)B#$j7cYnIymgt>r%L)*ulJIU{)ny&{WQmGAiT*d~+iHYSW_FfqappCt+}J!- zau8O?h?&W#yCN$1clZlzxRNyG_cGEn{escAivs6k9z^if>w+4yhSf-KRh;>M>wd2dTjO9D?AbZi3tW}*5B0s;)7OPG$e_$~cpv#BYr+11^4&2Fhx>qSymdhhWt zLrU(x;At!MO&ex%WsyYgr=b8KwTGk9=Z8>w94GFmE*=9hZSdc9cl10?9qo*or?Jj` z3x|z-waM7O9zO-#3vxZ|F9)fobYCxVQv^JD_#d`or~ho0lpTQJg%IC~MjF9XDR$Zfd?++{tB5Qd*cHQ&Pmg94wZ z`-u9e02NH|N=wnp3BHu^3w(R)KbVP{h&QNdu#oefOGlsDbO{iehHez-(zaUJuiD3M z`Niees|VxeD4QlZ2A1Kc;{dH-+L}T-fCs^^XlTBYK{FF<@pvW^TnHl9ncXwDO~Dlc z&MaPB2*0`ehJ9#21JmZ>8hs(VrDiP74j@&^IJ;%9AEPyTmjeObJtltr-b2q<(|A-? zzhGC33`igb2|g}}HbemIJMqj5gOL~By6E_I;bfY+-ezj^QlC~QS~LUDD1>}{(R>g9 zzNqQ!NZ;Sh3sd#{=QzSTX*r(u+&4ITvrF_=;lp}SxV4v|?&H8lm*Fq(ZsPRLX+EAi z1h6t_C8f0BEmb0V4E%laD8NGjXYD6Il-pM5SNrdLBq%yGqTIq0#Ha<&6eEz}n$wp2 zeBLKUELC^ccvZhYWW1<9w$IXb)0TyLCL%((ytr|1H4nGYW|=N^9xDP>#wydoKUWE) zD?I@Cpa5p#c^Ghx)hX)MSs^_FZ>H$%2$fkxRlPrXperb+f0AwFUATDW6Zqu=hm>p< z?Z_`pj}h52$RBR6u#^U#x^D`M8Ky#1gML`1{u`{0 zMJ%6DMX$&9vj?Y^Q)}y*vv~csmGI-srTq}Qm z4xp2whcK||`CS7Ys5 z_Jv|-naiIF3*gRjoj(<(I^VSZqJe!PS1QPI>4Oj{W+4)50D3-QIeb&_-T@tB%1PQX zJfm(ruW>9l5)-{}vhNpt=`r4g-=ylb9%m%Vr!RJEOoxAZ?5Y5b(@gAr*BlsEmx!3W zhCUHLZG*DhYKlntw`%;-=w<52q(tDNEsv(hw*W;T!N82P7O@?(X>Wj73GnPc8ucb-0zWJ zEthTB4{XG6-|8TeRRy~}5A-ZlCY?IPnO566;e$Pt% zu{(Ylk;}F?;XyH6q;Cd#!y4+QoZFC3LL6T#AY_CQ+r(E~a z6KjTeu(V|3&adQUdy_&|BYrvsJAcB07BGk+CtEO4R-abK$MUscHy=C>@qO|Uj zC9)WrCUkQg;iLxmm_V=bPv}+2bV_ik&BhLuhdMh0XT3QYxC;cX)%;}>Mx2UP{O~Cp zloxK||C%l6vqMShJVpTxnc`g#Qe(izHR$huz&dC{!bz{B8BXid= zA@}!c{o}7}LMI9ER8X)@O~byuJbqrrw{zRMJ#P&`0?ehs#nn;!(Q)FJ1QUBA>I>Oo z^K9&saoBUmZN0hfY}&tv_@kohe`!>oNn#g0BhbsGK&AI?4kFrhaxCFYaeeCJeoAYb zT|H}|${)2cSO==XPh3|3-b0{eP!@o%$)g#Ha8r+S%T!0%Q_xtQK1`y5GY=V>$p846 zhxffs6*OD1Tqi(o$;> z3~%}gc)c0MSU~dkzTa;Y;XBsm+1=|e2Cltp1o?(a&l8L5wZAWGG^J(I{3SAUEAmWl zeiFA6aIdtNu0_}(ayZgRxfnMv6@{#MVNO#~usBwI5U8-r5YAkb+mv+5E<5X6-d*)q zrO}zX@q!hF=-Sv&c(dMaBU69gP9fm&aZwpZvC8nT#qbtYtNm4P%yAY3eWwfg6}g z!oANowlBa``l_S><`SZGFRTB}H(SF44$}PtB=Bet$~OTv&4+eX3wKEIfX;Ge`0~ z`PS8Dc;;0TU-7zSk+F4F0WA=qBIAFHtQ5eIou2||5DwDa zgaTL2b0LHPv@RAtw z6rGa+T4{~%&1f}s4Z8>w4y4uJ`q+%izO&k6Pj;=^<5{!FxUV7?d}d`2?iYvk1IAui zQyG|i@jnEQ9nqd~Ov60}Jrza3@-Kw5_1p{ggm+o~=s6b`wk@}d7W{uCm&Be9e)g;i ze@Q5Rr+WWq2X|@{1y?gZTh56==3iOB9zSqC&hmclNISrNR&c?Bbp%l5dbDS(aq;ff z0)(j^JwTpYl=X9WX0&nDa2^O=4UwKY=YNNyrDXoYEn}%-Af;mNfKy)gh^D~T$TU@* zemlOw+r7clbkfB1uUQvn3uI34|1^VWON{5I8G47Owe~Zk;10{T={Ftiy?UH1qwBEl zj#cH~*FkR|52;zD&+*_Vx{m7to@eKuqDBKbR9595op}7|z|n#4)zmWIAhjd%;L&|2tS6ilFeLMj8x%h>)OBHCY zuOGS+V0+fj>N5&`ae`m7#?GNyh|v?pZ^|r=Dc!g5IRG>n&Nq!0dHytM)0>;2>OeLJ zHJyfjbKAWP?^KtK9zaCanL0#yGg8|OI-!O zbl+|;yL_-1c*boicY!3!9+ztZ-z!Wes>t^^X5e(Y{=ywTj?9ucko zp-at}()~vRUW{f7lb{(0+a`M!VKd zIBtEeYn&91dV}Pq=j|aM1@RpnU%jT|Z{%r4wrb%RIDtiq1;#5{=E$CJNqvzSrHBy5 zr$I8H|`>(+V)liJfS#GW{QTqe#PET}fGnfN&|_>8)DdgU?8 zU#RRH(qbdJKGbEA&9e$k+}@uQuIcUwNSOORJ4p&lG6Z8hYmWejmojoeYR|J*>3u_H zX}wEdhdBjK7MzBb1Z6=of_ygIlac>DjG(9U@bYxlg{{Ot4vH6lJ#kLqpRGuHbhsY9 z^E{hdMTjaGG;(-Y2u89>KzAtW05u593LY#mEwF&4gplOovuj7?Zg`o&Z}i{m!X>L~ z!5b)bmjliU0@rVf87ttm(iKf~cG*|frzxeorV(lp|JbrXT(jygH!D9$9*cDg(>E=Kz84BCR?utbI1&(FBvsWTo>Q@{}%%LL10-v!SY(fNc?rlVM!C74FT z+Uj(rD-`kc`?Lkp7o7PwFBxI@*pg`bx=Z#^iy7rjcjg@l^9&1H96+k@FI6`xPGzzU z8F7U1Cm<|ri;-x!1ijSkk|A_zJ9Z6ZU(bi9#l%zVMn;Ruz?rHtNmUfQra_&wMT=wQpT zpUzSZ4G5$f%wf^S0DQJ+{CYW>ZWh)&!cFIIoU`JG-3JIXM2xHDBvIF6Aw=%0_fWPM zQmw;Xx^nd$H%@Xbj|98CRa*>*{-ZFiN!jJ@kG{gTn8`3C1$O zG(aLHfinc0%LUlxPj^|tD53N0&AND>S+u*hFshw?un07Kua#zkVe|y3> z_^*Z1u}cuazF7;)%0FZ%==s%?%qi^7I4gI*+sQY?SR5@ADv8~f-cY|@TV}B)HjSui z8l9Ojp6v&Ve|MO`ICEXOTQ$nfESScbTI;k8kN8GSsGO;Ld8zJ~9J~Ma>bO8@Q^3C& z_p0oT*K{0mT~p#_#z(Pr;wq;j^Ti>hI*fL=#KHks08O3BoQHntJkMll5M{g|kpApV zZi*uQ|88&f#4gvp5!b=uYOayqBRK~Si_CILj?Qauv>#Bc{lv9Zk+mNd){%)*T@)Rm z{T(eGe(fVeC*}5lX+RRFAt;;_Gp>M#X!S=lyXq&@zf$e5V_#FdMYf49U5nwt)HyzL zjbvDF&BRixn=^NOf>&PG#W8NVMmZU-QYz52nUTtuVQm}p>?NRN`g09k9|k=QzA7%6 z;4!h$E!C9+RP#lh>6Pw1^^<-TNrZELgdTAgDPE3>>|Au6cW0rDFky__lzb@ zdX2gg}#6sGaYW>95h*2MtBx&9b9R21Fo9$j<^p+4*JaCT=+b5tC4Pe-XufqmVVUpTJ0&B=1EI-?1F3ph|2=TSj zxh;C^$Hx2rQ2k6jT$ZRZh^u72v4!8l*b~!^erp%0eBw`$Fr%qdxR;dNL!AA`^ahd$*!9Wq_`t%%Y8`X(2yp@JEf`JKwVg4{pfHa1#p92b_VH$uIv!u-&Z<%%r z(o1+B$uN6Rk6h01NJTL}B%j{RcGDpd*p-?SUH9Hp;UvMfbyI7Ew)m`k%8kq?r`C)P zJvN-ER0BFy&-0fG%=3JWW~RQI#BK52mdVr-0=z(iydsq)tqwba_rqe>YJci@xi%MV z{@ece*vHxNtET1aX_SWIxs)h?3s{6qmC%#4n7p3Jldka%T#kf>b>w(36uKJm=SIQl zpBfNygg?jrH4{UbIdp1nYyn=9oB(e^Iabu^+>w(k@AHCP2oReIrw6^uSj(Z;!M)-wnD8vIFNx>POejyqZpac@vw(ZI zYS|V}*todiAE3(dT&DSutX4Bo-NBL^xX*OAa$UH?4C|yaV3iDG)xK9>cn~9G>LPn- zJF7WZCSAkVXM)#p=3&JqCB>PxMD&=3sw?#vCYxd{1_2aM-$~VUpC_YNfq_KfV@&@< z12ixzmYK!?GzVRne5U*S6aiv&Xwq4&=Pc8$hVxp}#5LO;98D?p9(+4mVy~Vi{56q3 ze(s|XyH5(0k4L9lR!3x1{uQ+HNqy+7u6mpTZ;NG}6}ceoV4|I3<@LtTb?`97B3%W5 z+pkpl6fvT8WP+56s)?GD&3v2K;~KJaT}%gK+SQ-cl53N2Wm$>?_Lx}XRVKYDoJPu$ zdr=5BD5eGk#7Mvl30W=AgmVZ<-@6_DKQ6<-a^U<7<^KO{UK?&D8xXKi+_K_ZNYP?J7N)U0{*-zolsNqi*Zg^5wZt znL2yvTaihkXM!FH_Z~lKSC6OTd^X9~HVd_gaN+|SA4_$&E8-4J6FUrdKTqr1!GoLEcGQ$tvZ9yxM z2b?Bnr+lXm-=y79p;^2l+^aGsXun&CR_Z7scf6pIKs?yfH4a%$fo zjuB3bRGYmOaieVvUf3TCEFq3v0nHF;b0PM9sCA@W<+M%}v`K9~2`K7goexkJ&2cc1?saVkFfF08_7Z1E6SAz_4a`uPOgqf zt{}X&f1_Bd9x7zyEb6TPS98B~1LcpZEC6LLtrz3Yr+_WV`{sWh4|DRJE)+&jCRs4Z zq_1z>JlGO*n`^wS%EgqdcN2B%|`(FF}LdpB5#=9NW@gWWZYT;yX`X5qjA zdQK-Dr-2X4VmERc44*fz-I`?c z2YFR!mlP6W{0%DMvntdE3xi?+>i+ogbbKAb%zx|GUT+(}A|Hjbj!C$q?b~_NevuIr zc;2l6I{mwuSx7KIjjye?Pqfo%Dy3|0ZR~_`soe&cD5Wc+L@DN_tVOk4r|_o(P+_mn z0)KuHY)S_oLIAG}$cK;uQ-VnrlM5m}dUP_;rRwO8w~iwuKw(#0YuR8g-(o*KF3F== zM?n;q|ERTz$3dxZWLRf*&M%{T!gn-t z`*{0V6b5M^=;Mm52uNtNOV7;|jB`_JfAD20yzh2O?3Q@7+{81uzXxC_bBk1AaQCHw#CIIyM_Vk@kzu z8E8Zt{5~07J5({TWd^^zAi37osUtxtpT$JBk$dK1{UE$!u18Ei0#J`X9p8s5iYUrf zY2{@)I&&udSzY3U#m2H*o+mbFA0XKAl!*!n?O+%y)Wji?0ga3>xYEX_xlws$TIr@j zcNb4**a%}+#raD@OTPkVIIkSh6Pk$Q)A;7PB^~qv(JOGS2o(mbNjtslLJHrqQjOz6 zcWaM`FCZw79wgsebL{@tJ`ZsN{8Q+sw?6fc6gtzVPzm(e9|a0tP`QAYZg5Fr>(rTW zfaJZDUHXiI2mgyJyOk~p8M?c> z;mm!W_xlak-q((`_F8&I3k{NQDvX>)cUT*_z^0CO@1s6Ta}o5v8-l5{$AnhUJm?-e z%q)-tbmFM9te{HN z8Yv!-_~ON-u-u^?lE7N5cZ$UpL3rtj%Rz~{#JD6q(^wxCeHlL`ajJhuh|;v%Mg&uK zpB=bEk1aHtq`7`0)1d4hBQwl(Jf0I882akJI=NH7LZSo#M&NB}e?z$U1UxYpy^}Vk zL2}=*zNOk1A*cy2=?7FrSwZ`-U~EgiAm!_R_Uby#Rfo$knxQT?5y)n-;VB*E3i5dXHR6y~&d1;TT+L#e)`8w@3@v zxXqxBfl)IZKIj4uAD8d@fD|5ZkO2$?$r)Q8(F=(}m*J48q4HZ@zq9_3{LuW9jn0tz zKqBJH?yvp{)4@6>^G13~7T|(Rb_#{&&<4-?Mk^m1R|L#OZMhhdOw%sZ>}ay=wD7h4 z<_XL3F`Uf;6R=kF+d1)T3$^CYf!9DmNK{ww#}lfqORRu}5f$u#R0Z*hD@%0f>|P!O zI+EeZ{Wg+VIMLMHusY}?lBmT~6F@n7^Xtb_e%FATg7rW40_Nk|hq1*-;iVAaHI!Du zLjV5@Y2yV1Ptkj1k%vnLRe}kxGk8JQz&nBan0XOGQzjkHt~8QtBvJgK+>Wx?KUSF{ z9CW=5$`GDp|3JkRUCf)@5uTi#-W*9+QHn=e{<^!`7Nio(j31nvM=>Yo>pZn(`4!6N zBFm8PFW6hDKjgL4d3tdhHrQ_ejLNzH2H~qm~ z#-w_^GwPYvw$ z%2r(QAz5Aq-&*uEumyYZ9Tz^0K#fcWSVX`2C_5{olM1<|IDvB()ei9KtpwqYJJyQX zlco15V7IOe?4OOHJ@nGVoxyNsUvbRZk(}!rbddH$H3=i`Q|7CPFwl1rWmZs3h(Jd+ z{eG)7Gi3+=;VLS2+D!bu?V%lgenff}CzxP* zKSnLL$z0XMj*8qm+{lK&K=h9rz!E(gKA0N?eFuNPPEu=PteN7kwe#9o%Nao7^ND}%?^{5`CfoqiP+g!M)& zfG=}o5iAf;gKSEA@;N-&mh255YvO87x^Q$ao$Pp@!qVvKQr9oOAtI2Rr}27FRBXwd zNp_OgJlogHxpR>SeyW;qYa#3{`>w8T^f}S85eH@$)1w(w_HOJCF(;3^jD7VDTqx1W z?7{;JP+*>i=b;O|f>G4ZI_uN>qA|)_m(||^6FleVyzP!y_38Z=xN~^#)Ud}mTUNCu z_oy9)J@Q+Yn+BlL5;HEkT^UCkGXY}h>7JS}GIdTJzyIa_arMRj%vHR5?;9{DK`3NB zyCtG&;?~33B+?ia2($GR!^uQo`8Y=VgzBLner!3ltw+P98`71FYgJ*>+!+WqYm|}& z=<4%i)7IS!6C+30{MS3_!G!;vi2b_lIl=Bwc?%f#RehR8eVU?qYLU-LU%vkoS7!aa z)}Yq{&m`OD-fA)ut_W^ysV^4wyTJR1(ll`Qxvn|0nn#qUF2o~3AP@(Xg0Z4mpJOGV z&bd@eNm)9w>63wh+~{x`(tO2Cc;All^*6ou#^(rWxtTf$lfB4jf3P$|VRCp%$#3Br zrJL@qskp7Q3xPcA2XchUKc7;j2M!+pj%JKntn=1~ziEl)@ezB&NC&X)zEwBrusm87 zt{O0VX|^tMcpa_gBTdMkw;^k8N>c z;n!R@sO^hsAx$h(NwYQk86QGFhAJ$CZy{|Mu=uDa(_S(s9u<7QFerjuQTi*2uVOIh z5YBS$k3akBf=Yr=-RSMJ@J$nJUE7K+obB)sJ;F0ZB!Mc?iU_DOJFPY5I|PWSGT{&P zr1I6Tu8rQM`I?mI{h)wZOL`cu<|kH4O4XLp@lKj4N-(JSd@N^A z8@igiyJ_(P8eIvu*jftxLG!f7k20Y&qav6%9&uSAGq8^Sw-2bt#G zDEzOVj$BXe410EyeCKB-Cj^-G9yb7q`QaGs+qNlxs*(B5I)1}-qhF%^&S2tT+KqJ2 zDQ$G=(TpXs)`i1I#cf-zeU3jl8aqlK9#cz8*X}>Muss#j8pZJ+nqS6B>ySysPkXnZ z?A__Bmx@s>4i6KC8pdKF)4d}a@J1=i6&rr;&zKm{Dt7cZpC2H0ff}?RucX_P?H~$x zo;QbfTWn5a+YlOpFtDBL6f2XDLmsU*6Ud50%5Og#x?t}A)c}UV_8AzQEnBH3{TOy~ zINjPNs|l;6!H)OG!TKIAae=1N&95JX@+S+BvXJ?DwU90JWhf_MevhXV4TAb-k=vwn z3oRQz4>D|&pY|9k%knxxUbM7>=5ks0nq= zPoO3YiqPG0rtM=^T!~K`^Lj1sRER*-G6_4ex}%A8mW`og51Lw)_D^1 zI1gp5P1S$c5MjqyFkDa?3Ub^Hm%d@g0Sf@y%#hFb_|p223~}KGdQ?pOmIXFu5k7q+ z^l>wuRh?&G^OLAhLDthultEvz(6Rxp=YY3-%023lM32N3nf-Kly<6O0G9262`s~zu z5$`;LZ@N@=T*~LkR(%trQj;((9E0$Pw8XSLOfK$ONa4R0dKS8WNVN6z;#b%yNBc^4 ziv6y)fS+0s>p)(6z(<#B^JPMbF*LRlgKvaso4!gP!yWpL0xC_ygk4}wti-#(pj`}S zujpDuNR55!0fQ)oKV?MwQV_dE2pOx=B~ky};>=uHCT*xF?_hJmxM%4%6^K2T ztJ&I&4;~#q=0*Dl8Bctv9(gJhCgZsZIGH+&v}G^4PSRT^f}!GPt55iXcB@fcC?<2Q z$piQT;)Vf^0pUj`u24pd#F|bj4E1#Bw86321$e2ETwa8A#F#;V#_ysmT_yk;1pYlJ z8osE{36U9r- z5*BbhWJ-h*$PQe1-4Yr^l2kKEVX=)p^U_PT+TAX*%DuKkhPXLX{jjz z_)12IDXhAMAkZyT5<*-K^4)WtfQ-o)o7zIo^&Rp6bChl8-o-&YYM#!VdhLPv6*kGS z7t1}We12V(;zgcFdV3-Fb)z(tg&PCPGqVV+ywN)Ch)ctroz8D-O^zaGAcK!WS1!(L zS10ZZxtxX~9t^?CHTkU{x>@q$z`RnbOzQM@U^&>IADLm=?j5l6X8BR8F3>geD8Hj( zi=gdlZQd7)8^(@@1BVA9K+emQ6pu0cF%;-)*aCa~09HtTQfFK3uBTR;hP?o6hQ94s=~*;w1EduPs@ z^t&K*Uye|{rWY*!blsT~kRW=ia~w2iam+JjQDEa(nCqJ;`$+1BosPl))-(CHkAvM( z?4AFm49a?!r=c@6N86T{GGJR zz8B>n7hQC{{OWPl^#}trbei78ek78aB}-m8S1}99#KXH z%&65c`&L_*_kx3>&!-jffm?_0t$76hkAx`Ub$=Q_$_j8DBoYM84OX7zG=!*Aoi~fN zWI6hQv`6gum+F)ra)WD82XHeKzhScJcEnl5SjqJOhY*W6_XUSAk9>j9c$Y6nf-?(x zb6E++zl4f1XolJP34Pf&vbJs~EfZ9Obl>Glm)0?bUb`gv!*b%fUGD4p74<|dh|95l z72CucoKBJ;g+gakw$6D-j4zHojSa%Gc+Cyd4%Z`0*+#zpicFYX}n6xbFlB73DwWS-R`x+Pv5X8|5r(%r@{FzUj#av z94kvRuEhKRoepW)K^{AAqRJ~Tr&qDheFXUev4@rVhAEPhl!G=y%d*JbCx9~4Nk;E> zI7slHKU~n@L<6L)!==uN_!XgxTe+_7X(m6ronNUn8Hs{QyC=#_u@)|#sf2q!91bHiKwy-Brt zvlT5sJW&og%$#)#gCpE%CvHcFpLO4E1PUlX{9lS{xLcKXwvmTmH<*jbZ;PhNe$>b(!N;nX^(=lIBi$j4sNX zmetOA-oNj+Y(&N0bFh8KGDd}eA=X)F!Is!HRTssYedDmu6!V>6l0yYkio8h)TGwde z4xsB9f!u}xLbfWo0-XI?p_&StX0`Hl?tSME(+dh-qqfyK=3}y|cicGxd0B}cQ~x7| zupK|-M)D!2!m*7)SAxeA$p1>L37 z)T9|8Syp91Hf%{Igyx;Iiw-h z{s!T~(P)nz55z}!YID81J-hrvH}0kd5JqA5JXZlXp~Ze7`HIuRb?d)`$RnKjVzLzT z=$fu9u_5LixRUnYG<@!wDU;yyQcJ9=+)Jd%E=#QG$|c#LJ_ z#v1h4#^zlzsMOreu@V29k{QjiUyNVdA8-gin|?*PD?H}!(^2b9@^adm?=8A!KO$lG zD@P`w`+VAnWOSa?JQG65xPW(&YxnPE#WB|H0=?t^J_@VK6}I9a&b0N||n*QDHr;z?syY1H!$p7G>4qPD;B zT$TV$IQanoa?|_;NLgYF_0B5*s$`*)k(%!3R{s-jm;j)O7b~C%J1{Ih8#caiOjXEg zNx&oSAx~Ey#i)K9Sq>uV{brL!m~8t#@d`PEPQ?Afi7vqsezEjy<=Pjpt~c{%@uR|5 zWz8Eplc%Ao&H#D@Etg~rT(e@XAgM;tPbdJ_xiH#Re;x#|2S&pJhDdAw?sMhnlj7RB zQc;iF3A%{9xQK~|K4mxO(utEkWnLqn>(5vv*WNwX@4#PDf`jvT#clI|JQwOfdm*mX zd5_jZM5daGj~Tii)XWB+!=GxI&*#G?OEB1YoUG-=7mz@uY-MYsU!VS57|RP6DYha^ z5*jM(@_=19QBaV=rV7j9)BA>aNMlMWsSJ&{7PWtY99FWP7zO);?9`C{OkPR9>ZH{aV@3}ys> zyZ9nYca9UwMV&hC8}kU7G?-zmvnwTZ2G7k*aQk7sj;=S>b0?PnsuOUBNMLM~2zNfN zb)VUPn%92VUf%TUpBC`PU5YU0Z_F8)AH$DH9%E=8Rz)~`mX1J7qmk;Z@WPT`ix;=C zf~g8YekyRGZ50iI#X@f?oM((|jz#uso_-UN7X0b^9B75{$~gj1WwiXq%82s>4U+1Q zt(6EmPuf<52s%HyLafYt#BZg-J5%XQbelyVNf+Y;7vlKf>YT`7_G?lD?Xe3$kDT@S z&sg_)efBf%EdVi~d_ztk3Ic^TaxmYu_cxLsg`^)oRgo~Lyc(h zxX=b>!>sf-?pK(e{tCW7lhJbm@Ko4i+Ea>4hp~aVb}rb0=^#_NH)1#?pKp$VXO6X4 z;*qxoc8bUpA6AAA5rI(+)ox2WPyProbTWVbNv41XH&@B7S+E4a5E6$7&1E={qT#;7 zibd^&MW^l$fKR@sJ2LaR#GVAFb??9Q)m5H0>sbKJSnWKdk0^WNaU_I& zm_aD2WQy+}<*2ey|8$Js`I(VrP50nGJXK^p)v||?A*is`U&Z|~s~XQHX@aLV993M5 z0Ld6bEQJx;MPWd^DK!E|g{yJnociE&_Kpc}$$=|erRV4qguFv zgN6yS5?ir2JFJt!^bmQ!I~8|LHE9E(COg3=W_Lu^LVz$(1bwm629m+rmYmWdjg{R| zW-hdsO?rl=SMwz+g-yW_?1D;s2p+r0Gf+Xa=jamPxO-BZgS2ZXnVIU1KGTk1%n10t$P_(feH@>ddsQp+qPX6;e+fQjw!t_ z&e52}v&f1(BWf&gxU)*qRa?B1!yaE7qQ;tcxUii5zO4K5>s{JE`>7Y{4pTjNw{$^tbfLL7R5qGCWp++E$ zeGFQNUXL|5$?FxRN%d_oQVVmhX)VXM z-71#~>cQ@&#jC5^axS_O3O8K(g2-FGD}VAoye!U~eQqVJz4oTX{Z}{FD#F4R?$X;- z95rIX_IKOsOD~;{^fEt_*b{sRL|~eu?YObp(ma(d zVzqWv;!WPToa~^D*oyn>8-=>qTn(8t?x;V`^{-th|DC=q)Yq{VeR)|h^jl-MAz1{5 z&4rx^#NSa(iVGuLU}WS4D=Cdl5US2?RCarXJ@WaU2~Ds>R))R|cyGxe7eof!j4YQvv*?Q}1 z$I(Cq@DkX+pXbR)2IxCy_Pf3B8vNGk7ZCC%Tnrs`_**1xPby>d)=-|r>&L@Hag={= zr-=4*?l8N@jN%Jsr{Mlr!6QFJO4vRZKh&`3JNdx_hv>gVgeF)6*sC|!Pbm3OPKAPJ zRrJg@P0x{C&0Ju`Z-bm_+g>?5Ptz43B09e-b3Im{JK4>B@;viIj-)A=TVsRoVDU@C zhjP!mI@}$Jn=irC8M*Ts!vELc_E962Wp4ni7R|d9epHt}-~~MEElA3YJ0Y#-UJ|{0 z2mqyaZuMlzBWAFmlM!9S6+81A2Nfp@Er}hO*n&Q{c6p#az@dVqdUW1peaOeRgkRPz zsEeYja{yh1M>b5&oe47JYX+G*-_~QCAT+p6z0tCHdKCnZXN%TyF)yL$$Z|4<^w(9= zW&E`J1onNDKmS!3PcJj7NiRdu4dmd0rnl&>1yuLAjI5~>65T=tQ0o<-lD?18Th+cgnWjM6z9U@JM56L)ol4 zaxI01kA7oh2z*eqdhlai3-Zgm4+!~`P~m97L*E0Z%7CqGi7&inzVTZxgTVLy#Xq0* z`juEfVpDw4-Gr7yz{`N_m+=DAy4xGh(C@3+|BnkG8X{IGIfos3rsfmc*{*qA3K>H{+*!3)kb_6yp!mi) zIqEkdNySy+-QxX=#FGK+o!y(@kvf_0)_tj)63OjsdeN?a%dB%IliXNb(}}x}a1I}} zC}9rM0j0qN)v&Odmm50e4x==17Kt4;C;p2_C_@AIiWnJLdh2u-$ z)!p{Wo~Sj@3+tn}|5iy$a$TBZ7UyVvl!+y4oq1Myxc`#^VB3PSPOfV{rs?6v(dlS2U>x z|D;xgv*<%xIxuAv;r=H~mNe9DK{4_76`=@3Drvu#WO^PK`xSu0vR4Q245qR2fJ>!y zDWMx6r;g0@l<)qmVn_83Rh-DrIG?sZ=Eu?h1%CaHwp7QKd#P%P@fT>79>2ob<8A1V z`1@dFzQ9-YyDahV%;Mt^&^J@_na*LIG#$Y`KQt?jS*5TgIR;2*hlLB~x`EutY>2>s zxT>H)moxiQv#X_QCQTW%n!qo&JskN|qT8RbMlxk7MQm0-^`VJ5kY5xyfm=_OLUnYM zliI^>y*m}cU_C{!H!(Z%Z%yen_cOJd6CM!iVPMsST<6Ex>j*Z%bdt5cl%Y6Zkc2}M z_b`rG8xT<&k+b;K^ip{9poFp>0jI4*MZ`7OOP&76#^fV@Az8xZqB_EtCtu>ZXLd(f;D`568jA*IhUD7YzjNxkcb*Fa=GYw}^! zOhtAENvEcp>CkUAxE6Go6i>>Kxs;^`YJCYouEV@Lj4yO5ewsXmmwE@Fe^(UHXHOsg z$BRFsnmxiR{kkKB*#KcWAuNs37L+mwDw~yom`r9X-){^)0wx9ns5vF5|CL^dG@Vjh z3r`7Z^iOVh{a>JcJLKKbLeIGg!--cVd!7e?Ba>s>b>ZSzf8x#!5zR#{5g`aCoIO!k z_EQf}prgeL$~U1;e4~d>QEo~@f#a2&yU*qvvYc-YI}fF2%xEPIqwnYaMDQqjfXLgo z4v}n^a82uZXRXbCD`)vX2j>A~sXmUUT|5eZDQDbBZ<;8oy!~Bn{8C;Hz1_j?K4I&? zB3bP(-w`esV$H0TY5sn%gF=p3hy@wUgRDFlc?*cexSpYpX+`*S zzOfYmFLh0mlw>`=B&jA$@Xt3>ud5CBiQ3lD``7ccqXYXuBZ@@%cmsmB%BUC=`>-96UkGmuz`G zjW+DEb3uC|WZxWNYC$K$zM^p1VwMBD+}>P#-8Xx@*PY!N7V#qjqXf_}!GVasm{Et? zB@0)|jzajBH z$ga`3mZc|&$33_uIPUxt@~lx`>cjx)J!3Nj>X)!`(Vz;#7I#z+ZkL0EbpCwa1#o-? zW`v133{3qNo#6LomqKzJ<(8Kr@FRyUdn0rHv#X8c2 zYq4CPKe((#(K?xeru*~q{VqC?2EIb|S|4y8Z=%m0`AqrFhyz@Vl$yo- z3(wl|d?$<2$sY$G%D^&Vh;6+@S4@slbi`KbQ_j1~X#->*zo#sMVm`kLRLCVY5lR8^YXR#`B-PC{ zSRMSOsg=VUum65VC$c%w6RM{WX2 zU5&q}_FwgNP2#ZZ()eZ?*?L0+Ey|~A6&cD9mFR>1>JJv!w34LRa`>kMkOQ*gdu?c= z$dMqZ*K|8)Sd|=xpxtd!4U3RE2K}?(WJL$ z_s(y{nD0#Qwo>4mqwgV6*IE4kje84}<{fWd$eSeJYYWv8#Li8?iYcZK2$4(kR;Mj zu7@zt3&l1m0V*gVnUVM>W@G>SPPosS1Wr@^3(Z&LuYu=3Ee=W+KD&y`an^Sh4@uDC_iHw;2xc?QT_;|A@IT3b)Y@f50Ha}9F6ea?$xNFGv$i6*L6 z*Wm{SfYJSr851H!?@>she$N&4k~i84(TCT5*=z({K`suJLC-u;r!Hye;6B*Ar%7ZM z>bfw5{m%ok>>gT=4u}Kz&H4Z$D68S{^)fI}Sq_fKgQTw2r6r|5j92E`)Op*O28))A z5wo*1dvvASr+k^B`9`1c)q%^sU&+L^V>94OD06#SW)|Rk$~EWBfoThv^=Z+nUW;cZ_%)3!V!UxkssB6?78hzqzuK97c?5F~N>%sW-ug#jXZ4(Dd zK;YP*pdrxKW0p!Zkh^ zqj3=e_dLDKpOpFp5ko058y4tFePflMNxVEqst@-Z|s8a6vE5rz^7?Q1UMz61R$*r8) zgLx(f=@9S{w^Wa@6E8TjCb~o*(iKr|c^01QMvr@b0A!0j_mmr{_4UB7p%oGR*b*2W z{G}GS7Kg#4#Mt4jPHi;IoQto2)MiT(V|V*RGCOOZXqU;mFyPNk;nn!3v7r9P9SQZQ~T5_U~gwr)=+gCit-QmxE90YyZ`s09Wpo7C1d({WW(;1%LM}G9iG& ze^r@1(Jf5}+Q4g}FJZ@iRqIB+knF-zA3K)2;wg)I>Ku3W6S){W5O!^w%ynGa-HF`! zbZ!K9;2reH!et^iNkn>phCdeogv}0%F65o38Fz$>kyG6$=iH6ytn-bGRZO_cxFCQe z&M-Ya3W*N@j;ya6V@m_fH2h3z1wg={A&6rOv_=>j=8JGhSt7Ttj#Yvs1ZC<^cs{Y` zX!`5;nHO<`Ht*rNq31U=h(M2Pq1^EZZ0>`T#Gem>M|1Iqn@ttpKvYz7vP88b0DJ_1 zGq8r=IatZqx`p5z`mo+!^e3W!66g^H4vg$&eV3%LR73qmL+~ibh4eKBWH|$L+XoTN6*?@#0-QmF7~BMf@UYBm@&f2jbb!StzX>ql`&^6i~z_ z7?60{Hr7@T&o9Sg`S2hcm}y^WEihHFye+N_OA5@=_aNZ>lR{Hh$9f{+<3M}-aFhP} z9g%T!$f^EL`p&4m&8Dnbkn&IsLuT~zlih7Z-X!H;zJ6`QgPDKi+G4}s!*IM>jx4Uc z(XQM$h36_2jOT)kHZzr3_e*4-W5*>kYFi7unO_cu^B=!@f+x}UcOtv#)2%lhwqSoh z41C*L!7zI6etUO3Gnd|xn9nRseNoz6^YbZxb#v+VxgM(|1siDksf;wsIv)to^9kaH z-<87;hKZ4`-Ru$Le(H{E0)oTN5v)T8}7IJdOBFv1^%CcSMH)!C8k zkpRNnK}o4}6DZG#J+?s8B}`PEj2sj)H_XOXWk1ma5MhUq`lq08YjJ(1(tK-i1|-nu z8AesN9&2W0qp>6Ic>N!ulgT6)YE+^rESGR6{gWn-?DW~K$@JYqB%!DJq8{$shD;Yr~dlTxo> ztaHrO93Hj+HEpzTG_B7r>ScqLn|)|GXM*AMyr$gbj{f+NyNh4l<$J(krUsrJnWRBvr7AV0@#NTZ^!oLJ3rfDoIJaGaZ0)}7WV-)@XBjfG?uvRcfnH%RIqZdy zLM*Me4Qy&c?#h;#}11 zk`z}>ch|aPws}{7T|fH%PYg!|BTkdv!vXTP&{-=P#Z9hOe(6gOkWJcGlazT;ntgO1 zTlM+({P)7We3_b0n^ih{!mHl@TRwr@kb7nkEi{ocvOwU&ix?rD84*>l@ZX2+{GDE? zxjtTz-yJ35!J!P1kupCmu>e!cg0-Be=WVWqw+ryDJoH{#>IT0HN+N&3A;J?|3Oy1} z%`5;HGW?nzKll&z(88Zr_Az7+4rWyVVy4-8sPPtw)5nXNviNmhCxr&io5GGMp)sE~ zc*;AyCt=khRbN5UNVovLE-P_fDz?7igfFc{8|I0SCEQGx!K=!3xe2Qm^$u4nwkDED zD_=8xO_K-55ck*b556Sl^Nyh{*RtL(V~BkScVff#4ooUB-(cxY$dN7{QPVfE(jHQF557zh6n7v zhS3tBwFqVwzk8Txk}wJN$yOhte)40-qxdGl45vJNv84yl;`^iavXM^=^&`Ab=%`x` zwnpT`b`(lp^?H{6HyK)mQ4yzvT`FhZGlQo@k_|^C25C<2b(>uQO<1Un#KO&LnV5lG zLj(!{v1oE`uIBnR9E}2B8=Ve(%S4?vTAhYBD@p%^YT&z_*G$RqfixL3E?i@B9E+_U z6ajaDIIVrrw8MH4HtBa<*nzaWg0Wx33hSq~==|sC3bLc5^=+39?_9^>H1RQ{!z^Rq z_hE{{47mr;k)D5C2u3W6_PZ`P@`YEbC`REZto6D$d_CI3_|ifL!n(={#;4e>5RlsG z(x3^@Ksxse7tu)w%o?Es4S)K&F5e_^wmHs)QNP@LFEitT?=je4p%H#gg(jR(eK`dU zj!zlL$8D4Eb;9FwRo)7ucxpO>jmDeIJ{@Za3(6EnN<9pDck2Sx@JCCVyP-3h>JQAU!6rxcm+y6q^=Dn* zy}Vu=`L9vT!T7V6L+HOId^@iGum9i0=rP2j%;p&({@ZdGT3YP)T-hxq>nXBZo>;~? zDY8ZFv!VXAV;qHeb{Pp3DuqRa3o*`_;#F_Wb1*6PBx_0tVW)ng?=5syv70=uom5JF z0od!7xn)*SFllBX z@d(l))mQ8~U*Ux4MkdA&Lu(&(Cl{1@_VG>cLNV$p%FGA!WIG>@+l2E&EFJ&-U;C!7dpzRIh_xRrPR7yMO1eOYEkhpI_2rt!6iFn=-nwruc|A+r+p}+d;B| zV3GDw)sd-Cx|TU)2Eeh>9x9qAH9{LFvtp1izH3ys$R&kE9rff;5oO^HzTUU59`QcYgUj z4nj67ISBZP2R>VIF}~m`{w=7y3-NT&OpQBK-jgqU-dMIO_fUQg71ed!O{CRyzrgBJ z#YQZoDvXW{fEYHqZL|&$R3A`DlaLa-7WY7b@?^w-abOYNB>H=;9his;CC{ZaYuy@O z)N1|pQP&4|HHjk>>W&c)1Ud{TW|dk1gm7oapi&u@N=I8sdu^!{sq>YX-Rh_;@-;A4 z;uf^$Xx<&5)#IhTzg}UPxdhN9FjPb#0&~09kLMc2%-sS=X=EMirlcNAepWpk+vw*; zURyS~Ao+6=z|ZoXJBBx#rT*y9w(8XWvG*DOt|%)Sx1xN=X?&TxGxDnvFvyXs=O4IY zCsv-4d!WQnv%TZDB4zu#XPC2{o9k;IT?r=YbRenADqVjzPd^M2%@v zig<`@*&<4zIFhAAl6w<{;egG;+Z2K(4HD{?28qsN*OTV|;Sew})`yx!Gew8iyN-U~^5HO7vt8njPP{#ulif`gpy zA@B0yyYx$d{0xqx1X@K7wbD7L*PbW9{Yb%} zRzWvcam7~#E#*f`Cj((MOo5 zR@u`jhMA}$W3jdb2Yz_PbU!e6_1+`kSm;u=?K3`BN}xO{QLr(e7#Qn}2e^t1uk?@N z_LQO-uJ+XxNQP9BWthdd$sp~bQbWpvwt0iT3OiIyJ-j8GS1&(=Ah$_!l^ZJ#Xz@kM!Ou zFduwG$79E{5s0$^d_>KZD$T;Tl51-5`+`v>{bbxaBlF6@7KR6rh(sU@ZB-WObgLcKa<<+NH(>{QFxG5yo<*>lZ znQTfJmL<6M9_!>&UO~rYwruy=(2Y6tJMY4qa=5?g7(6^0Z`aTL(;HGu*d^-vdI| z5*lX1Z9|#lEW5r2ng%R4kof#0Ir&6cXq&!cQW#6!%{_)gT*U&0TXV%q1e;8O3Bia# z$eBwkq+~<@9&u#=E1%@Znw3Ql4P2a5L$u0mZfNNjD1a+EOb{w@+In2qml{bNB*l=- z*pCcZPYJTr!S&;{Dy!`}MGuUH4XTu&m?hr%)M?MvJwpF100lXxv}nEuiT$x*ZZ=KrdDqWerE_dWP1_&6^L9tPedRsm0e0pLu3&-$D z;tnzv&TA@{uhlD4_eq+Iw=mIP`z5kLD5LU_R4RCy&GUUdf|CvYc+r&?hb7kaT1dGt zU$_G4ncmSKzLG`M#RQ{J0Mp#XOIhPY$T6bl`e3tYe~&dEvq9#9@^we)7gS^C%RrKR z?1S<>6XM(F?Q6JSTieqZj9J=QX8 z@hlRw;!OaoFatRfvXyc|KodGhc}T3v|68>hL`>k?Xx!gEr-l8RRtlr28YiTBcU#tP;TpME{9 zpL>2No(wX_H&iNWsyQH2YesNG4-~HwoX%54VjwM$I7Jqdw z*!X2V{WqYjEXWOje!o|`PzP4`lZO6#=l(5l83DWj%10pcC6Or|> zf@Rw63HlmRGA`k2Ge+Dw#ytXK9)yKApLtl+hMHT_5_>8t_I_C_Jl`15ystg_luoFW zPa{TJliI8Lt|GL4-p`t254^4GKAD4R*`lt6+R)yreJ||WFXB@KW=mranf^Y^B)zVu zm|2Kh^Zc-^R=p)jwxVeez#aPH{nL-|4)P0Q0?FG8!NGrPHDponXSII~{<1F}*db+vW; z0^$_-aaf$x_;#RFf=VjMy^e17atWpoE2%~29Coqs!%T!Jy@EWo6^N>)Pg=- zUk^C!FfR4_j;e&}M`*m*EsQ5taSSC6xVE@?plLOEI=pC{rLFcqw3mMGUq(pATQuWs zGa+_221Kukt;vp&pfz<@I=FM!Zx5DXer*!LAG2WD@*7iLnj|M zxwbvz7I6>g)9lRZ9S1>c&PG3-FnYVl%VRf3wDG-8@EvjOn(9~txgL!_X&zju8*PZa z``qIh>4lC9Bpdpj1rI)d1k?RT$`9Sky$}#WX^ta!1kY@mp&jikptURdocFsOVEg`s zYq#B$V0DI}^J;!zNA%t#ASm5C36BG9?4C^1$xmx- zK|U#kMOvABxAt&N>|rTNG$mHG!?(;IaCKz-#^jxWtM|a2aP7AOfJ*~RN`IO~jO0K; z33K_CDA*jgj2H`BHUvUSJ64r}AUrOO)OFtm8AWeJ*)p~BoneEeiUgjI2N|~xhu!f0 zz5LcdI}8{a|8+t-vlqFPN2dXEYXz9jt9dxmvh4D_$Eywyy9cYobB4{Lm0Mc!RF<#E=J!fX z{LfhM`%~;&*#QYw(0euSTY|ooM*19*_0q%#<5orduy?&3pR?VCXubP_CslNBZZPI9 zu9zFmMzEe=w%!#EHZoKJ#&YBk>p zAV12ionA=_(5IZa?=b%&1feYT5#+rXgbG9+CV6$w$rJFcK}kz;ew+WB7RJ2q)X%k{6y$<=d)qE!vq;< zg4s?aebaIM<(nJj|8IxCbx6yt@O}GTGx21{bvtttqww?!jmr6z=|OGk*0uo-LmhcU!0X5^QjWx|h%!&DhIj457Y z`2{@-`5pcs;(V4qqyy!4X@N9ANKe^q!8rFDriCOL_;%8cgdk}tCklF~LW&cd5r$D~ zb>OutX}cjeP(f!itnHO|CsEaR^CqDL370(;>A7%d0o=cTuYJNJpQ?9YK4k&zp+&@; zLVDVG?x8d{sGbK;3QsYdY8hgcLgTQ2qS8MmY}ct2L&r=~ljn#(jL;eCSJMfT27W$uW~dQ^2co2$hyNc?H=)S^@PJfT!NgiaaDHO3V zZ3p;C*NHPq*jf7LYf@5@3xw70+gP;GK?XK`gzeAS`#J|wtmXD~hWMdafdz@@$Ru`W z)Jh9%Qd2JhRZWd&LOH%~T_5`9J8iRjhX6A+}G>CMO<%y$iB_Udwpa90D@!bZz(iX!08Q+din3YcMQIzweBF7np6jftVl? z{()gntb-=P^G~#dXGQx12y9ODAT#INe3GrMt}nN*@2IA_!_l}~D+25N{XN!3q$To$6g{0m(FiT2r6_`fPJ#gJSNE4P(Zwi zxcet+e6xLDa1=GvwRN!b`+?+t%CoEh*NnkqKfkBanyAfa-RG&BXxXRNiy@wwC_laP zHMb{B5|_<1dE^t?<#==y*0@c&f1RI2C+PeKM$#aSR>Y%%_S@Y{3m+_u8*__q`74c; zoplpvn~?q;Bi8u+VC{+VGL4Dns(6r~5eBkF+2lHqaMJ3fiCIx1q*k@t#DtzLvQ^Y> z)D970jmvyFHG!Q@xS^!xl_%&7O|fjZv7^li%2*v9y?o+F<2OGyCjkP1cHHyr z==Y@DH+$3qD$jCwmk6FUV#QHyUd}WO^ zTxo>FmEK}gkDtj>sYzwxz{A#75vI8%DM*zFM}e$xs3dopVq^ zK3UXIQh9xOI+W2CFdp~kD+nFgi%;a5e_&2CQT!ei080drDh~R>%{j;_6tqbbwrg-C zNDR5JnO#QLx=^qBVr-whI92dZbrI%w{}Jk$WlZ(PuAbFY^tlh&Zh2D4yZG*EP<+Fp z^T6Mdo=19q@cAM28ba>}QP}P9sA+SDx_9!+zqFzJCChDiRF678-U}_wg@S&NeEN+r z`1m)HcA~6-4#iFnLTZ=<(9#$_wKa|;OzaRupzbvw;#l`pGD_Apr~m#-kd#}yVv^U= zBXiZegE_>$*)*jc&znb(t<{kwC`peX#`zKM)cAIRME)iBMswx!j zG+ZD_tP0$`DFFvT=@|8M0e=mtUpjw-*~2lxUb^DG0_ir&!ua2jDw%662Yx9sI$!Q> z!``k*`)#j1ycQR|#&^&ma953cbp&&@*nwVt;J4d|2JbYcJ{oK3kSHY|N(c(ApRR$2iB>ZqQ zZhY?__P8-Tn3U441ljoEbGMP%@M1HHK%4FHdBg7=!sq%mFtll$I&GR@du1=x*_tUd ziuy9f+1`ZF$dd1j@~pV5Qs_bJmh_Q8`7pJwoD7It}+so0-dP@SRX}nBHXo2mi(Yu zGTq0!_vp?(c~GfK+JAJ4YB|`^$U1FZxLzbFiu^xB8vz`HJa0>ytA;K^-)*d|ARe z*KNSxdS-tW{m_#o{Javwe1`wTH+hY{l;SyOv;#3;y~^Fyy%hLt;)Z4dvz(#Rxilj(AJmAG4Nr+ zJi2$*)hDZ|=)>kHfLH35ei7xC!Z=ww zO3_2C4SR{(Ma+_yq8t}}XKvYfnY~4qMgV~mhrVg4)#X-%b-S({Pl`l5kv0~(T7^UW zp>6Rm#8Y~7#-heiJL;P82{>CfF6KOMt@lZu{r{30?jYse{{zH( zAiS|o_KtRAKHocJU%G;Hlqd~u+bLCrrIUEdyUa5kWdyp;&x$26F~PPv{GQw@sVB8<^^LW9v4b%L)3{*`~f;rD8GNN`ApGN3U@6$1 zcbM}-cU+;(%MhOFD4tD%a%?PP7!>bt_mWr5jT?t(4Zn`u=s!wxNx_OZM3)0VgeJ5B z03TxO$B0yp;C~3in^L&OtbqdrI1>wJY5L~Ac3O6M8pE3vHY7O`6fmb)lfVQD6z#-k zU}r_${V{2cwgd82l)@4?%O~35(+$Cc_L@uDQ)za~w1`e`5hs^Zw`IHpkCVRR8RFBj zl2c!_&GAuo5O;V=;4{(Q;irAhLvGFAtx!ABQJSkQb6QB^v4?H(OLI|s(5CydB?>=Y z?7N;wCky-<$N6q@b2!2x>~*}H^z-aj86~l_)_CDigEKqrG15?#ki@OV~f@V)}2?8zhS zb9VCbpaa?=^Gi^jI5*=lCq(rdmt z$FZRu*y}?Ck5dn!<>4^BsRImJ+^F&w+wl3hXVr`$HjyYg@V^B$qsw=0{f~!zMis1c z`&|v$Q0sO>H=6&3-+fY>IHgs&DksvuU=-m~KokAAxY!s)x-utb3MF(6~6DCAO zfrux0iv}(bvS*IL=I*MRjY5>QW0TS#uWJu&hEZ9;3sjMu!Z>qiXU-{1erwWXqK9Z<{Nm7xLIDdd~sdx2l#mD@i$=S zxZiXh!ZgEq>N3U1$9V7nJqY#oPl#E*J@P1G6 zJbKqse6Ig$ufFVra%2C6vp%4C10tb`d%Y;%=(S>=GIJ>M{uD{_0VWl&d@9;(Co+_a z4l|}d1nrW399jV6B0YSbqc{{j7x@nonz)@TJn7Tv?VLq>sB8J;*(I|!NZc!eDICt= zlBToe)jzwL#B^oH-}_sdEb%k^q7M9CL6t=^tb=jS9-X+C?w{^V8_Ue!f0S^~bAO`; zoAH;1{=)^lwBelXaT?V_t1_Xd46;X+6lN?%2=SE>*l41chLan3cC1Prrby*KvCYDz z)iU>@^!|Qx!Ag)|JbJb=rPLkfC`1EfN$&yNM#~vHu?SA4FFTL<6Vt|902F}4pUK%H z*psLPuV1lZ&zXQ$q`ku~#%vEVKN+_qY$FI+LvKHGK7P|c7T#!y+H`uFvidPTMUx20 z=x0KvO4#w%jC>z0ugpR8%<05@b9CD>v@p2Hg`!VZWSl+^3QD}H4J-Mbwk)7s${O0_ zlM=0-Bd*44*>{u|ry&yQmi3<~t}dx}UrjQZ$rjH`{|f>0DDY)qy|fmEZwz@UTmiAffBjkcxX z8;e#uRen=@QjBy&*@0(fzo24ISpyo`99x!@(KKyWIdadbg@uy>pn-Q>IH)=8->I8W zP0O=^f>*~u2bis=pMOhab!thJVVO$oob83dg@}%7yBq8=93I9qftvilw;mzlJkjs+ zUSLy?4$FE?opd+ye!zD0N%{o!%ru$vLfZSO2UOX~&S*FsbZ}Z!LMD!%bNDQ{#&Yzh zfxySdgzqB`b7yznZ|d;aN|i>!BshEi!Gk_K={a_xvExGw-+mtW2tAAfo*YLf95w9! z=b%Xokj`0C6nX5Q>jsgzDx-A0;D#3ayb(COK>Y1u^w+ED;AD>4 zUSW_A5NgCr2Xd=uoSokM8{P@1OHK`HL$#i~{!16e%eEKms8LyG>zodLP%TD(Nt?QE zC|+S)d8WnAF=oFo(Ilf1$CUB?E^K={Ci_f@l;wd0v`20(mo>&8@`UAVxTkSS<5O4d z%mE6q7`MDWG6B1#EF`(ijU{D|7k&29C`3>Qb#aZo#lI8oAYw(VfH~F(c*TBokk%OL9rhla^0!iViu(GPW=8??i9N{;$97`CoYebf9<~+_CD3L5Cx-J z#lBWW@m&fMZ#bjcYHL}zp?jmZrmoX=6&h3wAt4(KIwInr#t1M>r{AaYHe-pSgYq5 zm)WRWaJ;&~9=4fG+mB&(L@tISwM7T^=9A7F!F3G{ECvri1&5O;%*;PMJS-(j(kh=7 zkkCt@3Qx=;ftX!Av6p!ULmzD2MUr7rvw;Nu#03)E<6U?}|J6dd zN@^kMYy%j!)(s^1R_9tNm&-|gnijWiGNPoE%>!@;oK@I}3SDX?Yw}4lsYt5^8Vr9G zg&|eFEEbO@dhpDgTT4^$*l^IA0fRk47)^tUz6U-7jD8&Y{)Ojx#PEC9>c)SXq+HKv zWrKMr*7yJBAmV(K$%&B{G3iPT`G&6mN5c8URO~RP-1qaP$pXxCJZa$J`HwU=d?VK2 zuj{hG(Cpd1ua%qHlK<)yHW9c)kMt$ap+(vy>uacMwy22rw)K{Kgf4o~jnZrEarNJq zi2r6^e9j06)wC}V|C@r5PLaQ#qQLvQrV;h<9A{Vk~m76uw|os)y|mLiy?^dr->=Z&lAs9Z>Qr zf8~H@=2~bl_oSE3e`x{~UfBF7|24W^y)c~oc+nO#wr54Z?`!vXEDM0owW2jr;*d%m z;23AZ!%Z^-_PMnGdlrDw)vufb4xDTHf5B40Jw#pmxMRmRVE+EJlL(gf-_>mg>4{dX z^z=@z+%ZD;%ZXD4ZKhN5m^L7*5hexe?sV?S9@|5>ZZZO(=}O0>wRUPr*Q8Hy&?!j< zLtFHHL1OP$?`rWN6#HXj<3|=`!dcAjN#Ny?33S8!W{l%XhXlrw@t{RcG$T{i5B!Wh zx5M_2qN+;B=;%1J^p%R8g^vut^}s%v|C_NHT1BKdCrfsyR-15I_vi7d^K=B7u%