From 6608ee282de29b93ea7872255ed5dff27edd825b Mon Sep 17 00:00:00 2001 From: Ben McIlwain Date: Mon, 6 Jul 2026 23:44:37 -0400 Subject: [PATCH] Add XAP registrar opt-in database schema (#3134) This commit implements the first stage of the Two-PR database schema deployment for registrar opt-in to the Expiry Access Period (XAP), along with updating GEMINI.md to mandate strict adherence to db/README.md for all future database schema modifications. Specifically, it: - Adds Flyway migration V224__add_registrar_expiry_access_period_enabled.sql, which adds the expiry_access_period_enabled boolean column (DEFAULT false NOT NULL) to the Registrar table. - Updates flyway.txt, nomulus.golden.sql, and ER diagrams to reflect the schema changes. - Updates GEMINI.md with explicit instructions for AI agents to always consult db/README.md, follow the mandatory Two-PR deployment split when altering database schemas, and run both :db:test and :core:sqlIntegrationTest whenever database schema or ORM mappings are touched. - Updates golden screenshot ConsoleScreenshotTest_globalRole_registrars_registrarsPage.png to reflect the new default database ordering after adding the column. (Note: A separate pull request, PR #3136 / http://go/r3pr/3136, permanently fixes this underlying sort non-determinism across our persistence layer by enforcing deterministic alphabetical ordering in Registrar.loadAllSorted). TAG=agy CONV=f2488c74-8b4a-43f1-9c22-d1dddbdbb4e0 BUG=http://b/437398822 --- GEMINI.md | 6 ++ ...t_globalRole_registrars_registrarsPage.png | Bin 73919 -> 75007 bytes .../sql/er_diagram/brief_er_diagram.html | 6 +- .../sql/er_diagram/full_er_diagram.html | 56 +++++++++++------- db/src/main/resources/sql/flyway.txt | 1 + ...registrar_expiry_access_period_enabled.sql | 20 +++++++ .../resources/sql/schema/nomulus.golden.sql | 3 +- 7 files changed, 65 insertions(+), 27 deletions(-) create mode 100644 db/src/main/resources/sql/flyway/V224__add_registrar_expiry_access_period_enabled.sql diff --git a/GEMINI.md b/GEMINI.md index ab00dcdb1..b46f4c986 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -44,6 +44,11 @@ This document outlines foundational mandates, architectural patterns, and projec - **Test Helpers & Timestamps:** If a static test helper method (like in `DatabaseHelper`) needs the database transaction time but might be called from outside a transaction, using `tm().reTransact(tm()::getTxTime)` is acceptable. However, NEVER wrap it redundantly like `tm().transact(() -> tm().reTransact(tm()::getTxTime))`. If you are just setting an arbitrary timestamp in a test where the exact DB transaction time isn't strictly required, prefer `Instant.now()` or `clock.now()` to avoid creating unnecessary database transactions. - **Production Code:** In production code, if a flow fails because it is calling `getTxTime()` outside of a transaction, you must wrap the *caller* in a transaction instead of adding an unnecessary `reTransact()` around `getTxTime()`. - **Transactional Time:** Ensure code that relies on `tm().getTransactionTime()` (or `tm().getTxTime()`) is executed within a transaction context. +- **Database Schema Migrations & 2-PR Split Mandate:** + - **Mandatory Consultation of `db/README.md`:** Before planning, drafting, or executing any database schema modifications (e.g., adding/altering columns, creating Flyway `.sql` migration scripts, or modifying JPA entity `@Column` mappings), you **MUST read and strictly adhere to `db/README.md`**. + - **Strict 2-PR Deployment Split:** Never propose or submit combining Flyway SQL scripts (`db/src/main/resources/sql/flyway/V*.sql`) and Java ORM changes (`.java` entity files + `db-schema.sql.generated`) into a single PR for submission to `master`. Because live servers during a rolling deployment will fail if Java code attempts to access unmigrated database columns/constraints, all schema additions must be split into two sequential PRs per `db/README.md`: + 1. **PR #1 (Database Schema Only):** Contains *only* the new Flyway `.sql` script, the `flyway.txt` index update (`:db:generateFlywayIndex`), the `nomulus.golden.sql` dump (`:nom:generate_golden_file`), and ER diagrams (`er_diagram/`). Must contain **zero `.java` files or `db-schema.sql.generated` changes**. + 2. **PR #2 (Java ORM, EPP Flows & Generated Schema Map):** Submitted *only after* PR #1 is deployed to production. Contains all `.java` entity/flow modifications, tests, and the regenerated `db-schema.sql.generated` (`generateSqlSchema`). ### 5. Testing Best Practices - **Mandatory Proactive Testing:** You MUST automatically write and update tests alongside your code changes WITHOUT waiting for the user to prompt you. If you add a new feature, fix a bug, or change core logic, you are explicitly required to identify the corresponding `*Test.java` file and implement comprehensive test coverage for your changes. @@ -51,6 +56,7 @@ This document outlines foundational mandates, architectural patterns, and projec - **Empirical Reproduction:** Before fixing a bug, always create a test case that reproduces the failure. - **Base Classes:** Leverage `CommandTestCase`, `EppToolCommandTestCase`, etc., to reduce boilerplate and ensure consistent setup (e.g., clock initialization). - **Gradle Test Patterns:** When running tests to investigate fixes in the "core" directory, try to first use the "standardTest" Gradle task. It is faster than the "test" task, which includes the "fragileTest" task. Only run the full "test" task after "standardTest" succeeds. +- **Mandatory SQL Integration Verification:** Whenever you modify any database schema, Flyway script (`.sql`), or JPA entity class, you MUST explicitly run both `./gradlew :db:test` and `./gradlew :core:sqlIntegrationTest` **in addition to** the standard test suites (`./gradlew standardTest` or `./gradlew test`) before finalizing the task or declaring completion. Do not rely solely on `standardTest` when database schemas or ORM mappings are touched; all three test suites (`standardTest`, `:db:test`, and `:core:sqlIntegrationTest`) are mandatory. ### 6. Project Dependencies - **Common Module:** When using `Clock` or other core utilities in a new or separate module (like `load-testing`), ensure `implementation project(':common')` is added to the module's `build.gradle`. diff --git a/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/ConsoleScreenshotTest_globalRole_registrars_registrarsPage.png b/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/ConsoleScreenshotTest_globalRole_registrars_registrarsPage.png index c07b26e9c7fde43339fb825e5747400889d76698..1c88e507edafb90b4b2f05d6e08c6bebc5f590ae 100644 GIT binary patch delta 55028 zcmbq*by$>dx9*UN2q>wfw6t`GAYDo~(%mKbVu4Dx#L(R}bO?wv4Ba5zATZQWXE1(y zf8X}IuCvdXf8Uw+iM5{ftaab_n&uYN>n_yNR%IY!W-5}Y;-Fh5Hh4^@q8yckrb3c~ zG5>|ur&e5^57|AmuG-?=BGt<0b?;(&$`7(C{g~_g8l$^=B;;!P-L$E?<;At>qvgeG zX|!Xb%W0T#W&>qB`r{vZ`+Pfo@Z@Fd$$ADOciY4lev4I~wchx&y!BR}SEXfN^->AO z{ITnR;Ik^a>*dy=Me(nihM86F{hgvbNg&%c6~+T$(4Wt;2+x`dqZP_Jn4YuoTDr$z z*kY67`aDek-~&H+_x1JVv!)bVU2>Q4INjhgYsID(ojE8cq3(gP3;)OqRofvKL&j2d z2pZwnH6;51ulzeBo{VlWDYgy7)?^G9;vsN&jV@H3|7fp`nQ1|`J;Ct|824as8Eph7ary;s(F;(6EGbR_xLE4)xET06VhH>Tqb#D{!p93 z4qzD4VGFhIY({mw^VbQ2#Ezk$DV5=|!OEU?jUN&eXU|r3^XUvGs>{;aohDiDy1!E-;cepGZ4Q7jbf)Hmbr;o`RJV7;W%huP+ zQZzU@4D{lXeypET)B~ATwdD_up~@~}Ia2*+PY|f$2#_+F#V z1q02vBi2vekF+b8{pTh>xJGZN5reY|%hMV?UOoM6#DbIBPAiCNLsQFYn><0~lFN+- zq27l)1t|f2A5uk79F%#ExRU+FXWXM2B8LTwbb zWA%P5r#i!~XfDBo4i%h^Ft6x-PC;s)X4txPX93m3g*EF9i1-oaL_n6>viI+U;J+PF zjMR8PpF6)&{fYp9)0U$KHVKq6+CC)P+&t0?O?2*Zx2t0BI>^rU zmes2R;cd;<1dTHtld=LEX7_q1c~MvuzEu&CbUS91v`M7_;B%MVM)-MDN%8vpUKon> zhmt@H-UvyZK1K=oceA+POW#>%VP1T!R5TIHJAZgkSCgekO9`2U=xcPqYb~4ND zH^m?0>b#>;R$K7~evkareY5nEvdDbKigG7zEc-l>>C@c=A4u7U5#_Q9o%nV4Nz4&q za9%pg6R71Q8;PiK+EF(q0Ypexsp=YcCIgoi!*=_RfrgSMt%5FIXm_lTe|8v!P@&WA zoWR014QPndE=fOy&bB{G?VcEl>1NB)ERgjfZStotO|W_SmyJ}qxw<(gbgB9t+MPGV zt-VN<${Esxf2|K+{>)uePNn|j9SBZyU&-}Ae!a*7AK8-6`0zFP5SDwTrf!X@fsGr} z4goMrovD<)Y0CYNrV(o8@kXbvI)sd$;ms4bKku zZRE0XJ1#|&3n<0!E?Xq-X5LQC@Lkz#cmo9N+oD0k-gWeCEU8~=4XOvQ_jai#7F1+V zN96LY(iT`da?=M%yd2_kElz9WXP?leFH8cNzQIa$a`)Bw9VAO{d5~`xN7XxP{kqz= zi3GoV?=N;`bcsx&<=kSj8tA$wCgEI3P8^Juf68HfJ9VMvSwaXS9@#MPEpyXiVqCK$ zq3CQmrtsL=vF?$7fZms6ipW4qC+=Z&Rk>C(S*TduQ~Ck}XCiTFx{PU5jN28% z!FseMc~zFK7Xla^SV*pb(sYu2g{4}+Cn*oZ<{WSV52Grkwz5Riib0VgtlnF|W~c6} zpmfD2JC9G`QgP&P3?Bb)lSfu9zb>pV$wik-saVQ$t|vjlU$&Lp3G%pF38oM^({?PC zbPyorEdK&=L&@7S)U9V!<98)*)^k(OshE~(dIYl#3i56MUy-it6B1HOvtt?uXASI! z)(*p-PXsq+G?ixN0goCpY?Jsm&D(ipLmbQOWp;_Od3Kl~8 zfqhR5lj(#2;2DNF+SR3K^!pUmR#wqdfjMu7M~Z_Kv0Zp}pX4xUmNMgn-Q2C9)5p#=dEl+#$>~#63Z`pPlGiU6)iQ ztKzVY=%O`iT%JijR=Rleqzh#|LZImRd}mMq++Nw2VIw=Z9fDF(_V~$YYQR$)w=!?m zAq7SknMfLuI~__KJ)1Ll#={ez4|rmtC^5#F#$2(3`d$mB*%dMJtRF&r3|YRqs}^a* zykTfJ0f|mG0Q{rs2`C6f{6eBGkMEpoApfBde(l&35p~3r=l$rzBXlhTcn8rBmCn z4naHlr6edkm8cK15v%-KVe_i#&&dHOaGGX?W!j>6XD^L$p17iO%`dT?gQa4s3I{nK zz>c`4V2pm0`Czn2+2p))T+ygTUNq09JDGhV9Gc%%UNrzb8J zG=aHAj`9(oyyp{mJjNx7_%Q@4A!U#1ErngNgcG(Gt>yCq)#znG;3nhs9^F8yjJF|# z%Cyc7Ht+a4S0+1X{>o*=~m4B3RLnLX$-z2SQaO8+@BJI3e0!CA1H!r)=n>TNJnVWw;Uz}EjqO_!V6m| z4eAoN88tcr$pvB@aRvACzF+At+itj4k30F6Lz$fWzIHb1drD|}NXysCW(?g~igrbE zEmt}pTz>9Qq@Km0S%2#i$iUQICwJS9$qE}}TfV5EhY zwTXSG*UPS9@ELi5%mBO2smtACVp%vyz|S3gs_%I4J6kJN2IeP#pPoc@>p@Ijen@fA z*reQ;|JZ)pV0S~^+;fSs;vqGcYx(|ni#gm|8Gz#Z1CUn~Y5XT0`gPLWovirU zEN-v#Z_F(bHB9Bz?X`Kir=grP3}ir32FiCeUe0qTK0y)CZ~wm5zbB-75Zzu`VOYX_QRIQcwc+$1dyD z0vhXutEYe?h$yu zrR$BAD(j=r{9^sZdj|#XTv@TP`FmdCQ-rP%>dFpk`glDG`QmzL-L1cpUN*AnrXE&83qQIMI?xR1qeRYssZ`k`0+@$4$ z%*M|nqkMY%0A}FT`+d(hqw`_dUy^RVXNaizH3x1l8Ti!#i6qF@oXjJMgw{JK#kd<` z!{z(DbpiXQb3i~DYKQE7%+&XR-yGMV5gIN{55z1~*w?#4_~>mSX4d2b>rLfkjJf+& ztxR%GL9(RG{-FbduehdEGW&aYwR-dw!E^grnQ>5%7MH)$ZAV%p*s5MhTPIl|rhNWp zg7+KP@s3)@7LD}4*EUu~>-A4sdPD-<^NU4Yyq|+uqyUa~^(2WRXkTPQ;*R zcOc`SeqS5Xm4W%r*Xo^n?leeTKz(FYw`kNovEfc;4ZBXym*xJ-4F2EluB(31K-ZOb zboB}56q?vrR>HQqIM;e3(QDW4K+~gdpy7zd(@Qi#4D|vv(I0DjY7Z2R!i~2E$Cu!|5WzDD-d{@!?9f3_6`!)n7>Go zX^hc(n9w#_)m;=zBYJP_)D1X^0yoc)I-d$EwDncs4*F!ZJf2ub|0h+qDO-@DVMJI1 z=vZQG*VIOgzHpVTD9Z*`K<09oTn_lK)MmNG;iM`mKJAiiwRMf3X{PlZhTV+g=l46Z zIX=1&C;gdPB2K{&%3b|SF{aSRoh*&;P5)OxX0EvvCgDQtkNRe<%i0Eh7H;^vuG6>c zxETGqLKWQ1CslbV6)`5sLQ=5$!XA(yUR0 zo7Yg*dl{t;OrL4J$&mM%>XrIBJSY6gZT}G%1r<89=2{}vAUwP164*I~CZqg_dZs0a zd65*~22;D!Kxo^(@2;E2U4?xz;zqor;10x|uSgH5X-n0-7cmS4d=q<3`h@&fMWxzm zpsyX2PO5=pR1;;EfG9au>fRn&6PabZAd;YXqzR+^1u8Ym=?Ww!Bsibdl+-VYBjkVmTxuUkBCE)W+(t)2=+K z$HH|KH8StVe!mw;-qRA0FE9WjY&H!s#R%oG@LdCPZ81V)5VdxNeO;wMb9Bd@t|<=8 z)OJ3>(N4^lq7&|M6Bs#IsUB6eNUxf*n)%SdbWi+eA^e}~ zV1kq;$r6LjpGEMpo+1xQ-Eejn@2Kl7sW)?kb!#;I)bh?BbSUf?miuqZZwk)B;G*Q> zuZ(HXp{>@w#vrhEyG(L$c;4kQw}hjw8_P9cSuZM_XOO%b7lFh@xgKi<-2>9U{T+4TOkhIal`O>z~a zaZp_&ceVdkKKwDi0d7qCpB*w#>ds6Sdx^CHiSl0INr`YhI$PrD zWn~T%37mpZSXbuiu)zz%ZR;E&eVAT}Oq@s#POy4nPa;rXH_M`DNalT;(zlATIwf1F zypi3oh*WGCGcbY5!aK*};>Dk9YxoxQg7WPQ?W5wUXE~CGN5iun;{&IXTMu~rmE7F1 z21tHGIoO+B!@|5mp2M?j$9L$3EAF#BDONn;)x>wQFtMig@Wa!=52Iqjo8_7tjRzQ~ zkWoU=uQY1jwGC*vKG&-p*I_MYYOJpi-dhS4Nbr&H{g9#nzK1xSyGUNjW!Yae=1JBW z)#wqN1yjnk7(+-MlL}e^d&wX?<3W)R^Jfp0wr)< z33psw-8Y(B)U*AqGCV-N2yYky9HfwQdSp1%l1MG?fCTZ z1^0R9nKtpf+J8axuU)GoLu0SHCfvZIGScezA5v*E2}*f^yX76XcbNkddJwR`0KKP| z&!-3?Q#3(?Ikw5C{D5@U-a7*1_0va699zar0wb$5SRo?=t55g))exnwk}txpME}@z z5YBpo$~SC~gZoA&2P0&dWho1+*Ea+#%UOOQ-Ol&Wxx*ud3B^!I$^QA-+`O^|NO;zK zF!wG&$nJ#i3Wg@%@2>;Ii0|J=z}128Z{YnwRA}Nt=SU!hFKln`dbitQe(TiEWBeR= zb)9j2S4ty$f(1z_xr73o3reWq8`>z3I`4*jGoI1J{)z6=pcbCK~iNZa7ejj|7`~MXkMEQ&hXu8n z{^2K`oazZIkkU`r2*eWuDu8ugWnxyB3kl4R)6Bgv8rvUA=iX^H^PTQ7it~-StOgZ} zxkv9s`A-s+uj!_lRfkiq>VBAcU*=p#0~ksqH{^%sFxs!R_;1USi{%)+F==3T`gObI zmZAoBk8##lu#eels@kC>uML)G(eeCw3Z- zOMsnO`@Sy91`-tjzu0?XdqRmP(JKXoc1A|X++Q|saP5^R$m=m-a~4r%`Qx1Bd`=E) zV~r3S>XeI=ZOy!sj@IqDav5^5Juk!I<{wij8_m}b53b<7VZm(q+-z6Ss|v%*vqMRv z#Em@B>mjT0=1k9hv--pCqk`rqTfjcrnM!6yI_o*mhd;S`7&d=38P>aaVsM>wzDd7k z5X^S+;%Jx5?>t|Au6p2e2wQ_|OOIW}>1e&8dTiVgTQ0Yk%jkgU>8FADHVU=IA5n(Q z=l%RWJqbkJx30?%s>4c>&i8RP%tiC_PyBp8vkPzE`W3g3fA7(6&MojBAO>(=2hMj# zuH3ym9=;a(YL>c!1e>q(%RfW%rQI$XY}R|RcgewZbd(~p;gY~DdfHAzv)1Txxh6Vt zk$SO%Bh`c*qSw4!xoJ35isYKP)?s}(Fn319b%b@&D0-eYcXh>U$l`Z$cGSdaeP}aR zBANmxnIxDrI83kIjGJQvM6O^3Ke|O5A*)2dL4k+pB_saX<`NF8mI23gQt@L&WJ}1^ zEz!%P`V^o2{Z8JQ>!wrZ(JbXAxX-ENWzMoX&KW7glwtGW=I3v!s zLw!l+`Q{6B==|lzTNlxLtut(Z)mX~eqbsr24Ipfw@pPybhtQ*KPqX1i8|Iwgq7q^A z=^4)91juW7T=co-57jh&ARZ1s6ohrXL(oO0-Wi8Wdy5ns{qwD5!X+2O=LrTfZL%Q! zQ8(RFm36sEOi}nz>J#eol!eZ5BPVyB<=g*qOhKSd-y2jNo6lc2&_S=VvA8#i7u%ekNH&h0=xHva=Ouz;xaspFlL? z)mYnmAYo+Bjgi{d43J0LYFy)8VzN!|lw5Ac?cMbik{q_{r2SQHVE*x!-^{KQ2>jz- zD^qfr4d#IzYV~eEu>R4(2Nj3%;^_`Fg~~8cWT&jz)YYqFW#YeZs=3z@TM4EAF=_~BZ7gJ#R9R#DK%Z6l<8M?=;ET>R~65 zKIC{}3BZa6!4Ewc4Sezn=gwEwh5|{;Maf9%|L(E${sxoaPpI#;&UWUHf|;|lv`h}+ zADZQ73VF*JrXSTK5T=uYX}~Y!UG2r!HQ;LFtzpVp#J(hCwVh%LI4;=odD0gjdUrHV z_h@E|Z5nW20pO#CpC>_HX1o`&VTbhQyWWPcCap`z9^g~3oYtPSh8d3K8syh{Nh2by zANP@k-vAp_xLMam0a34}`1}B4x>xL@9ZYs7X*Tio#*`b0{_C9t`XxKyF9g90Vv1~l zi?=oRIs`Sn-dx`|NC;MRyaLQGy-u%pcQyz$0l%9Z;WJgHi2J-R`PnMlK7vrJUx8CJ z;~5sBd}l%=X}>>?0ypqAe*+>1^JJM|>wio5X0`a_`UfIqV~Xyq_`ZmL-pIdn z9DZolnC1S(`*Q2~a!)~XKD1fysMwW|6NGH}^JO>s2R^c&SF$yzQ9kxnXz)?Pbux{; z5_G@mIzt97nI1-=|K=?-^rBT>O8%^*t{9-7M_1ziyMYA#vzsRGO4Es6tY-kgwTGtP zxj~0Ref`{Z+d0MM8U;0zYT)_EQ-A8#-&f|%_&-0t&{X;<3pJyEfc&{)XlHvkK5pP0WoZ z!TVT?*dnLxj)8@>(pJN;SWHfRbc1CGek&6Os z@BztCxYGQLKz-jnao+Hhpv5vGLm6umUZLCCIP;`DQPAVknx@Mt31=-Ep?3YKJDA3k z13rGRIy9C1;Z-uB70;V{r-jXIEZcK}&YD-<xtl3N)1*w|aK5U|9cFdAwvN$J6aYku^REh!z)Nkzq(tz7!ifMkTJdX!gT30b zm>u8XSF#fp)^~=4dzC`Z6MI~jdfC#Fw+v0%qrng>+#7=??C$OR_aSEcQBA8EM5=Mb`a(jP}B!U zPq&YmYL*EozegYma@)$GCz@rXwz<}@EYFjj=S595CQ8TfIXk5jfnLet;_u5G7+_xB z*j5R!l1+rmOP)aNlN@^gxz9&q_}1KK)~Ha&U<9SXMD2#|>m*_LSV)*#U}E*jrrbN5 zYJ^nfl?XrCLx60%7_wDqHftqCxUnPbPeZoCp7Gw6J= zfo$oOK+oS>gf%+3c?mP1!WH9HmT6`hvR#3Xo;EBAPr87F$E_;H&gkGK+Q8Y=b4ccv z)x}8ySX1TDt4d2g zwS>|D9CbC-;Z`UW4QeAaWS!o! zp_>k3X1Pp;8@~-;-Me?58_tAnfRlBsP9G;hrmlxY$t&X?d`c4BesLUG7TBO9w+kEj z!5>km#2V%{f*(~qOcXoPF{f1ZkTl0rS@LxeAphB>mP5_%32)?k|C-(0LQbfr1!tsa zN`|lP08^PQ8`dznEJC^C{vMg-J&z8{I6Bkl@vfz9#mXG6VqV|~Z?W-uO~0MXVtSVr zFKIy%$y1^f82e6o;h-Q($PW2g{vBIk)eM%8NU(3w)gQ+^RWQ7l+(h`j3@af11#5KP zfZMG`?N@de>Fru%T3IBv%5D>Gtpb!*`6ptfko4z0+(YoI_>~X!0X(eUV2@CTQq#nM zr)ligMJs)87xl*9ji{HEi7K03cD=59>Pa89%qCx?jLj999CA+0bA)peZM`M2?AAqb zBSh6vf3^yXATU`k+I5+&ny8b#c#&8I5E&}ddYH0pP>!0|y}4e#5a3+IIwR>?1xsVjTdeg7Gdme-}+ zoH&W zotba!9&n4vP(+I@o_IKJ8>l}1r2krQl${9l>W^sX_jPb9n)!5iy%M2PJ+*aZ9eL3L zUO3zM;lMOwkO@ExVT!$MtO{s4au6RWYMgVzIy<-=#ThP!D)Z6hLT%PM*JR97EqM>$ z%Dm?`MTbg`4(zMN42$Tw3ZOnLL9B0bC#Tzs2iuO`d9eZ9i3Rc*ERvh~SL+A3+F7r+ zQ%G>)c<#QF>aeI4R(2<_>X||wK76r@R}~k@sVR^bE(rK$n&@1wzcQ7g^m%RK^uy~h z9?2b|SKVeolv zu3umMsIGD5{U_RDwWUVyLJ4YjWh4l@Zx8e-V?$!rF|E(WIUxl0 z3!B!|JL>?|T(c`yACeYE><8##w^te5Rz@{S!_Y<~ZjQ>|AR znQLTeT1Fx`#pMKh6L`?2mGnKdD!Qh=<0ybfp6&Av6s@FFD*!fd-%zz|Od+(n6+4T9 z8_C0QtuFejyc|Mu#L^z{>FU(Xs*^xAtmjO}8)9K<>*{62=>`ICe#Qh*{f`Jud?D)` zyTKEbJV!#F_=ev0p%wSmI)j?=gmfJC@+}=x+!UCtZQ67;kOwO|7(WYI3|t6#UKD|q ziU@FBESnc6_M$p^--m_GF|ava%6C4jrYQP~{(9z%I>$$K{jq{4CrF{gEn8`>4&KF4 ziPUbULj|V-lL~}lIk{22MV_|c89iToLs74~;nqg)^1kmAeXwX^#yVdX$!vId_>tpm zga{9oXAp@Aux+Q0siGOQ=;r2~-$s0$!4|5=%pR#LFal4X%9i8cA!N6wobK2P4%tpwFIB#r*rvd6DiSbOgNW9gg<*l*W&|hZ*1fi zmHXUAR?}Bo406gwSgxL1kF>b>=(M98b$9;~i1#S_!GDBR@Z9J&yQ@ ztf-7otowsxpFLF@T?QumzFCKG87EtEV(hc~+6bT|_zA%um2in3M2z-ofxxS6A5Xc|!_kzi3~^X>5A#VY4i)B&hKl*p8TFshW4t2@9+rj?rs zrypO1ldLPQBiNxngUr!G7srXd@27SH?i1>aCSXUwYtAV$*@L)OidskYi`=E9uW^#U zktpsH6?Db$ObyEB=s9KJQ!*3U78Q!~oV6jE{4xIJHr|kH za7o<@+*AOw`hh%(CGG{rQ+K+W*j$w@6H%Gh8W}2wwUo_#vdN598eK}}qlq*dKB;HH zS4xZQhQ{W+v*wFom}N7Z8Q-pwBCuRfetXNdRuPN?0|+-mS)XlB69_V}$ji0g-NaG| za-hLU#XIOOT8Byo#%!4!LRQmpZC=-X8UrNUE6UJKxG@51C>Y(ruc+5?k=OIEy}7$A zhOauM)i_Po=&eNWvPsrwc+7V!UFpM@4w>GX9ZZH2BJ`{VctnZ_L9}e#;|ZO3x`BkT zJJMfFkz9SyVPjL988N7fZsjA?x1(IKEQj_6MO58CD2H?T8(@tkU?zPmc;QgY+6O2| z`+Pj%e99{8tQRYiNGW*}P?+XLzvTUvSNv&xa1`r$+k6_KF0eSNb{>n@KRqUcF5N1k zs_JNN@BaBePw=S}~C>*Usf_bH8e^DD2t*C?4 zHa77M?%V?^g+&2z)X*tJAQ?&CGL=H&nyn~Q%En5q?h@-9#M7Rco0`!|AkF2W>3RBy zK70*7PtB|A_LDTh$gy|t?iW74?4$~l6{xF3;(AJ0wjwpsnh}^uVA3U#GZ6kB%~)0= z5|p42J?FzSY8|TYbpJ=S?+-U!!gpD%kgu%)5wuq4I+OPR#?3{sS{`MykHTCG6`Nox zIeD@}1ZKH{u&k^gbXJ%5F-~gKl^N%q)Q#)@Kbi|qi8rK z&{SE~2Z@^$Q+*-iuk~Z+#(YZWp+n{V;rm~P%|deB z#AyTM2X}7@*I=&3uL%^*r1j+B2Z<4+ce(_0h_AkXrt$B8iM8%Z{b3swN)n+_-#7aI5paRag%~(3trzC;Gn*bT{AWk^_C11HUMv0&)zihnS{G;Tn-{W_7Au zEcb+V$Z3Fi7ZBHpOB(sYW{8$=RlEsfUnqFyj%H_y;wP)19}jVFO)Te9Q1C{M65JC@ z!M{}!sDcRht{9;~`-lM8^aUNtu$gJUcUDDTP-4__Lk)8WfsQl?PsZY}1Dd?MXAQ?*~*UqThYjjS^l7O+ICmB}awwGwwLWi{Nnj zeS9-==VrM7X5Bypkb6EJzBYR@HScGk%-TFnak1rb(1^4wa)Za6kz+qz`mX$H6WceH z@Op&INOe7XzG;^}Fh`3-7bqH(t7Eza~b4ef*QJ zjtvlyi$4IbJ3N+00L1uikqvQa`Mg5B^)ez-#$Xz}eOKC@wD^^*_z0zg&TUiv+obh< zwMrzScV>amN*zpnSK5`g=+H%p+r9^Z_YOMo2gS#~G%UyVe*N^ccr;I~^#F>Gk=kVv zH&YgPZ?pY~i54+?nOH(f90_VS?*yT{inqr#sOQK5t#Vx2Fhp79%iw9-k9<8r3b*}c z5r)i-c5!zY(GG%gVl&xa>6PYmxFc3N1WtrI6E>B>biyNv2ekTc2% z^fp-siHNF$6p6u&x$cjB4O5Yjj{M1sAJ0mAFj+ zh)xfRgRnY+NhJ_nbSKYEo$aloZGxr18Opc8ngN@46Vj)epvyDc%QC=QeT#dn%7$r zSl-9wLY155As&7*3|Csw1PN?F##=AjM$9T?WqA}ZK@Pso{z5v>ihwTOi2}iICeR4Kqh+CtyAvrT5Jd5CM$&sbRr%8mVsbgs)wlB81}#qr-Nvk=rnyCnQTGkC zCwL}l%gu@HPWAh8H)p%_X|pvc4gpo|42Rr4x|z~0d-RS^da;l12SRL?Lg-v(e=sIS z@8pn7CgW7b0a5FUhRe1%o?D2Vj$D$+*d^X`Taw#Qz137PY`QP=#>v)seABeT zW`!Q3?+;a#%uJ;4VqA93)jvI8Ry1;Z^s8D2ijV;;yJJ+?Z)ISJ1}iyY6|Ya-pu zW#EC*#$?T|F1`eZ6lh+wp-h^3+L-(AYN);}*dyCz7|*_wTASk4vR6(hFm)N_I(60m zP36_&P6IO8V`>VkzG%M#Q;L9X&Z~3fx!q2S|Ax)Ue86<_iaK&?M%lduR!<#g>PnrGwKUd zD;#v4ZWbxH)J_?XJobLujTDftL=b(so$BCM3*lIZD5Lw(u zgoMYrxL`bzvZ#5~;L9y&URW*Y3-FUAy^RDL8^7Ln*sHwOeNsnzu0o7Rs{Lnvbx^i_ ztgI4hen6qyU)MDVKT{@r6lhn(43+h181=ga1ku(%{BjjSXFw!N$IeAluqd|&8=xw8 zmtNGVlvW@QYh|C*TFhB`f#_uu?{bcnwlo4FwsOP;6^D1SbE* z=;vheku9Bv3zmnn5L%~E9_C(;&u(!9pA*)RGluQxuu`GQRwLyf+nZe#sIq3Q3}T8up(eE2yz$0I`C{4Nq{&`ue8MRDf)8RLgw z?An6G9w`9DG)NrOh)9UmJoasZ91vC4XNnz0?&zaW1?%RcQc$zywQUNbuRgWLWhHtx z#qMEIw0x~^LwNRA!-ns0;~}Q~z4WJWp%SFi)F4HNEsD@6JV*#(?ZtC3nS)c|?nQRm zGC)m@3iqo-N+h7(4Zf;qKYGB1Quc}0E9}~wi^*y zHy8=YpJUU5{s!Q8GvK81zF|f1)uw&22vs$aeBB#^t4SL;m9)3ziy0%^1MryM)RTMr zV>F5Mv>2%w!tI;+yGBMsatMV5rvja}G9+P1{=H@5w@we1u-dJSC_ETiY<`e|&?4}t z`me3MNvj~Q^A|M*GcWg&XihA1dK03Wa>s}Syv3tT(;9<#e49-CMUX8KFv6u&LNg*`%n>NG;1)H%1!cQ`Cw@A+gSfMt+)L1YNNsm z8p|I}0UbFkxXOu(xBQ;$*MDgk{=+F-BEbwYmM?wB=bqqD(hN`{NQ70BnP_d7AtK0r zJ9|~YmfI#AN|!>XJ8hZN*Q}pA_W3Eu&X$y*+03p~#jdGS)cJWG>Md;?frWj0#9b)B zLS7sr@uwy85C8T{5}>3HQY07W*NLGSH3Kq>O5{XK10`GZ6I`hNZonWtR8F4%vV zzTXUTFbFT-dM6H z_MiVc;B)#->;5DTW59dYztv|TkmKUN5;58TrXKlcLH{V$Kp^0kNKSb>N!&3jQr~e3r5a;igQs}>U&3^=Kzr_RpY{S9-&4T`y z>-ly5|6!B={}=SXT+g5Q^A92Xix2*97W!W-=wz#EIyR?DKi&rya9S-_KlhTUS}_nh zg{JkZ=Di|*yD~cVWmfUbJig{6ZTO{K(=p3AARwfPokK2X>*ub-qSh%CqvPPL_hZ(J zah{nvH!7SPr)}4Tmab99rn0s;bZ*JehuE*p+VMi9+n)5WXduty)n1Q*@`O38LEFyD zCeqgz!7uB0cd(poT~F1zDjDbeoS`EPEk9 z;5JXk)~YUDTcXj~)<9rKb>rH==St$D4TZNS$07rZAZ(f;+tRAJ=qB+x7;YFe%V7?q zN?-@QNUDfCuECG{LTrNhBH#sSz;XmzZ87TZ_DSL1`DGQ%+oXtAD)97$2f4DRK{d$; zF{EX)0beKBfzaAbr`90!Zk$M48lwdueAm!#v~`qgdURw>C{H;S^a$-=z+^;cEn-)* zU*zGUuW8@Dk^$K{G`f4Q5?WY~c=xBTC{diat)9Fr9ChoDVr2^EO6=|9T`pSr8vk)FqiL+n`vKHEff@ZMvVsRkpnry*u3xG6&gr(L?PIyfx8E` zYn^M~P{_}YiaU&4YYez4{ps)l{cvFf7o4mBnJR=JP5P|StCG=n8HloahXGki!Sp6r zk=UQUdaiX$*nzP1>p%&~Q?l4DVQ(Q-E+PW(N8HCDA7J&Z4qA{ z5S+rJnVC~Ui$(7wMj{;7+ey`*X}+_CVejpFagVi0+xbo&b7!2`|W z_I!~uQ&o$;l3TFDibI|f{U^CQyMh;U**Yw%t0c;1NU-MgnfTb@fdL(zi|tQ6<|Fw> z=!vdYp*e$J60w5}ig>0Bt}k=f)OWcen%*yKUA^qxk!t`v73;=s0oJb$S%Ov+OV*P5 zQrYzr7MpB#Vw)$Q+S|!Dtb|PO#ADB^)1QRWYO2m}VoNU}jIhjtAToLVKY~|8?|QFu z+_uhWcWUwGjFsEVQIZ>nKd*l?Gl1)s!rpM@J%7eY2WdJcZl11ABFxY!8q_hcI{v6A zrs1~mK@t!yc~CQmCW`HI&-Gz1mT4Z+lqRa5q0Q2jsaMoe(TjcT`CwuFi{Ptvh*aWX zx8rw3JkbEpZI5qEENe|U&r}yF-69J(b&3y!K5``nLsHrqm#dM8DDDhD8znnvAg>qn zlM|qKZ9mCxad$hIN<{F`)lqYpmC0L*v};29UaWw0?AQAa2CD^it_rkQeAbQc&z&09 z?jl+<8zrZ@x$%m+cIy-b7dlM(2s7kA+)q(5sIqxaE4>?LAYy|jYFfxXBn312KEy=F z;_;nttJoh2I*k2`w6A)hbItP^K!m`i7>OW6J1!7H9y6o_0cK|fO6vf z-RtVmp-#a9MY)rUOZOrdynL8r*}0*N-szxQz%9rc!ZL@!BUqCn4^O0@t|@UU(Z$L{ zPj)lJ!~5}0i?J)vNVs;#`~T4P)?ra~UHI^z2q>i@9V1c(-90D*(jwBKbazP}6cAAw z0f`|*K)M-fNa+Rv$)USzfFZtvKF{;U_kMr;uIu;B{5jX0ea_zNti9HK-)rqTQhfBM z^qkEfKn%WSrEBzs301`_`5Ga!-BF_Ms3Pq=zL;+c`o;G^A}<^)^Qzp*c#O$*uDAs@ zA-X7Y+Cnp}`WMM^Kfv6NT6q`dBb&n)X_RaXdnDk0C|?%D(lTo{CLYx->IOw?s~F)%IHO3KfJ-RZ%1P79HXOf~P^BIzt0% zw%Co-%2{YRbmnYZu~!+4#-IJ6S6r??Bpg zbArw#nMs9#`Y>XUJ8G?I8;;0BVnyO^MT`|kK!5bsz|nar>Z z(oG)iPNA)k@lS3U?>XuWITHzizPD%MYx7ZopGKxizrQ+|s;oQmeF~d6AF?!RKPC<= z2~_#j`>yVXSVE0-}eZEa<;a<%mNbc&;>qY@p>TG&KE@u9oF72@0`C!V(}^iKW(Dd zC(x?!v{wrDZQvP-r;u# zTN2DRJrg6S2*zn8-9&yBkfc>&fI*{@$hGv6xbhYI7jxZijL35zTL&(U&+M6Yt~D%2 z0eO=icR5a@wsUA{U3?YX7SLr~f&-G3<`G`lt1%bE2#Ffcmo`a@unyKqp2`dfv zcFw+|)yfvS`#sSbbTCCv30dzC3Su{K1iODDo7xcM!2tlACWv}uoU;jHF1!z*Z7DNC ze@Rm@OgMmZVoR9gTmy=2Q*_<>Zn@H?-!Cs@mO2R_{ANVYF=NPkSb`z4tX|82PTdfK zbll5sdTq;`gWF=def`x9r!*5s9O-wW@}hW0u179utm~hYiRZ1wE2@vaz?$TB-}xmn zBmq0minq#ecT`{OUZ1NLD>uZFgXlR9I~RgBW*fB(A;jj0}%!e0^1)v z$ky%XdAOIvxlsAsV7M7ZQC*kx z(*R`3&r?qEV9iSx;uexhPTY4(MQTmrrao*Z?64_KNHhF60Yx45cdg0rQwF`hP&l%Z zl8id1WVCIbQssEA>r_t-MBVTWbt_r*`NT5dQij6WZ;vcczG3-^hvILWNo+woW5SYDi<$loUKy0j)W+Y@B?7?tyU5V8AQ^?IV~lx z=wJGAw>rZHX!pT#`nl#dV$oAAZ@_$R$;_kdBXl*&iQ7@yWlIuQK%r{MEuKAC+?`6? zj;v8|rGp|{v}{Jf&t9HNAiGP|YL3NA+l7wspkgG1Fw!NF1lOlg2-Q(0V55!9nzwFB zM`3J#0CZUN_$h?s-#Sa#^s8qX1-PAHAIkhOf#HV!-_S9Q4kDlnr$-7Trj;d<#@xM& zFqT{Urk}Hz7IXEdtQIzdf6%)?1GG?8n{UhO;&BBk{JQD)pe;H~KTOg~=awUjQ(S*E zOF{=d(cQ`Ka!!Ii376$6BG>a0G?z_ublJE9Xh9`*GZKjD@{1|f!ez(AR+s0;?1*Ch(X+@33B7(^v^*M35#|S{o=m*=Zg(V8lO6UJaMRmHafT;Y^6e-J(n$cB z7)~KZsc898Et4q{=1rj?qOHEM+ZSbh9rf%DJ2pqVlzwB@PDxfS7@4gP4OXrmbzmE? zI_y?7S}auKnKpcNZ?Kous?9(DxC4M935a$I2d4&O%@Cm%7N*(~%&69J!)j z6MCD)O7&aWu8<3;5!#+`jis=$I|7;zw#xdL!Uj|4!lCQac=jyEAfX?~IyC9UDV4;* zrUb~6Nwk_t*opg8?A~pN@3TtZOj8)(OOY*jR?yrrX7}zJ)_zm{nyDX;1K%nOF}a;$ zfcGV#uOv&55>0epmN+6yx}g|-MNsj#(|ZL$`VmkiLI1Ai2f$DQECQ=&f0Eb~yRkFf z>uSQib0-8Un}4l`O84A+IyZCMx+FGPXCGVt@9V5Xh1X$;{)-YgKAt^ z-MULoqa^kjxQkV~@??5=a=DurjwAcfAu#v)awP*akS0YbBjk0P89)4B%A?|Veq{{# zVf^u8PdEpc8hI$LyHbQ)dTcO+%!4r6IndDJKp-;|V-syq?0N3HEn^ zM#CW|`3owhT|tP^ipIVi9HXofWZ5)qLlNasA=kzRZ#tzb?cHUvaaDN%_vXg3!Pd5RumNI;5!s%2|_)I=l+;>jSpU%z$Y14Y z&ehr}V6;*fWhP%GU1W3Vj&dI##uk@!)UYT_IAzmVziTv^66+5IYual(?tt91v1 z6#6)gwZ{;6&Nr-5U>1w%n4Wv+zUHAmB=h=ZN%kC3iVzSsKyVUPGC)pz?RpA6^?OsZ z#SiV*0jD@6onh)|yX%Dle>;$%1}JP-Wg&}+7~l~sAVA%rJ2(Bnao@eVDMQ67AV9Fa z?P*?r%WlLEz7%p~0hP6ef1pcWD@Px$=1$nFo9aN@S7NUcfuno zBUzcsU#sihusjhD-gcb`ODRI$im#DMX1bq@m6s95S>+ZhO8q0nK>3!TPNTzRmJv~b zv)?o`(w(tqbZW{2<{9S>I&QX6EHXR9(jw2`jBb!GR^F;nZf*CUiQ_)EdNbrbw>gW< zst2geDu@#wzI&T?=%1r>djB)ElBObiRitA!FQ-wXD#j}-X{;6b!2OQF%Sck@VM<4~ zr|BQru3>%`shfnkJ}l*-=anmOyFGf7aWeNCH6zoJB1}tQC@f+4AZmEc2v}<^JJ`wS z{)jByhV$^qGMfcQjhU-@L-ln%THD*dFA4H&B?@I$;HCNzxGrMeaQU*kaq?wYM?FHf zuJ+aW+ualB70IXj`K43+ndxnEa(XYSIrtX+RYjMmG!hlMzoaZ}OGZY&@3_Qw z{>xtqPt5q%lY9}N)x~TlP^-U)mU{Qm@M!+j(mCF?s{Qf}7DeBvr%J*PbH=HIBQn~~ zYy>_$QmJFv6Li-MSr|}GZT*zhIun%R`koZ#bPuZ(Q@ib8J!{bC*$(vBPsSvg9|?CV zG&uZ1-5{uoJ}#gxr%@$6d6#&PR79J*#qHv1&*F3Z z@3;B_lb?4a-s_yab~Vw&8LX34T^O$`BGyFJ1k0%`4VEu{D0b@Jiug(he02Xe^&UBTZ2%6e1B0*x*+gjLu zQZ{=?Yr>6zgnX|FwT!Vp`Wl)^EB6`f$}(Rvtk1>DpnASzqYRii`>b`MlD(u8yhy6O zr`m8Ow6w6Bkb3in*YMqghTM6Ut1a1~4fR3yjw2WV9gOgp39lzz&DRTcnuU>lcG`-C z(rq9>7x9Ed&uF;(1&b>N)9pJBg~-<@nth|4#qnjjQG@XR6=(D)W!`;%XUv#kXHu z_RuTlPe5}d&u>Tej_>Y;bSQh7JoLicbKVm@mMvBv+4v4@Wz$2w$*g|)cqOx*N?kDK zphvdcD>_YGb*rJC9m-L=hibELVNYPbeaN?Wup!DoE;cJZ@Xj2_W$DxOufrsi_) zyWbYuV`790@8l+~bBgL{cTpL6nku5FT$w=Kbll_# zcS7yWmKmNj)XvYgeO2)3xpJVr`n}0yksaDM{DIofg>g$~ucvoC zD4x*ctRIzH0uiR8E6e*MVB4!;4`<6>){89w8D0N6r#nT>qEy-w)3>gz{>$vq=7u%z z>d%KEQ^Wi>HM^Bbi|Gzr`E>{^qm}F|))F*--9q%b@Kkk1H0tD{oXn|OhbsZQld+$n zk1sUMuI8vzXSAPF??vgc9ZXzgJ2RX0B7fu`WrrMlPPo1wxBc#Rs6bY3$1#s)89&Pc zPF;@%mP5h*zhm~2oZcOncM2TRGktQ%OJvo5p8*jNMd9`V@c!`$O zyo%pd=5(=-57k|Gi*rdr*)hA6uwA`v%f<(y)=FEh>r>+R?sYC>T?A=HA?kscD#7Cx z*(luK1(4g7%V1e(;ts^aY9Nbi2hicaO6yT>a<{NBQcLe+@T+oj1>~NPINxxw4MW62 zS(oL+h*m*y*tchD{p=-UzxZ!!Yszx8dJ9l#>7}{F^=1%*O``flm&3YRN!Fmn_-@uz zQC5OqH1%Zh_uiH&n2PU?yBs9#m|MEAA#bkR_2ZAD(T#L|!(0?f+vA=a+Q3{$#h1t? za%nfPg~V3XE0JA6eovndqA0nf`)+qKLvW6``9El_ztYOf)*b-QrJz$-_>2 z8j`4^Sbf#S?5@~0y;Uagssg9uDPBs>lHPoFoP#b4aRN;7eGU1?sKsQJKlQKKVLf2~ zkap}olg0&Ik5zfF=Mf-Zs}x0XpJSqES=+n$+I6Q?CALAz9v|Hu{wy0mS+1qYafJd~ z$BUj|f$ZF?MaahUgttV+7l$(GkSZHThKt*`ZP42sx6lNKs4oiZ8}@2iH@1!vlU%n!O8w+ID&Ah)`fb`a9la5!kK%4Q2`Z`A#Cs(SsROLk{QXRkSx<70n3&Yvpot$c=m$+d(6OuuVkj_Mt2gmTZ`!|HQAf(nRsm9K* zG;YY8jcr5EkD<0Q+VBnGD~dml^G})ZPjTVPgq}h|zHvb=@j1k1HC{`uApeJS0%g;J zgijj}*z>?U;-EW(Eok!eXcpNG{Pg-IAU<8RMv0NI-r~8kJR=8ooUpP?pMO@)kFVwA zYW0AB4NAS~O7XKL$=*kl&r8d>6+D|D{~vDqIp()PS3;^dueHV(DE7KyH$&VE>c3j- z=aaeiq??}IDxR7)HEe-0>=Zqh?8_TO_dtcOwR%BwEQsfUSlq52ml9muzTyXh>VA?< z4W)&8-{lHP(cO&g4x8)&8EGr0hwEMf?rF1J_2f_gm?=2ze?DdZW>Ip7S@@ZS33>qZLWluQK`Yy>JiU|!#6tRJStN6!1h&`hX{3uaG6{tqSRTL^$rWz z)3$o9c(wV=Oghm7#MOImDMtnMe^-0&u|xdu1lBo&%)~eIk2MMqLkWs4cyw>>jX05)lff&uJd}xk4u<~Aub$P28;}aPpO+@ zpH_EikL)w+4K-ZuqS4-raMbPURC3fiGa3as(D!7Hg)DBiCDnkHQQvP~PWOM$_B6oz z^@=%0!r1*mv(|@Dmtmgaw?C!=&kkfW^K0GoX}%=V*%`09z1YnrDi#~DIn7YIEwP0y zT-wtw=#Fp5gjA#1N{q7*po&N0i|l$pASs5Io5A1f{jmn;_tNn7(n&110p9vLa>!i&X(a?pwITT-ue z)nP%l<1YQ|zl`j1?*TuV{q$J8*FO!-zND@;2-Dh%o1Bj_Ul9+K4HGD4i&`1&RN(Rr zMaNUubnYiLD$s`RkdA_FEskFPb)Ud*!~EBcE*Clz<- z==j8@8kiqTg6YVXgWbqS7&X6}T z7zD5HRLJ3&VtG${+wKcP*B>Us!qTx78;swEzlYc`qz0t_ocPw7&42h5ktKNz;`_1h zKVH(mM`f_Q)o8c6y8Ci*G1YxVx3}_n<}klDw>%*2>gHsW^MfDeC{)e)nyVDI{Af}x zWBPuP*kI2W+}jg6%7|>|SjpqUgc{uu{jORp$TZ3S9wJcJls<{wxcVi;2Ks@OBVAo% zU@gIT+i?Yd0n3>ZJbxveZGh&^eGXL7%9x}lwA@Ua37-^jlv!}IphD&ppJ72HDF3I8 zI&1EZmCX*kgEr#{))VW*bYm$-;P#nhPXE$>CCkPU)S{!dxLLnDcGyZhT4_5h9NyNu zr64V#(~f7p$=UW{r4euWSUhdU5pPi9Dum|Re~bbAv0C^GpxP%k-~Am> zvuR$QsY8rpJPX$&bR8|*q+EIFuzesY;;+43R@P*cvak4<=^LT!`OuAxJgF9pt}BT~ zn4DR0nX{*vM(r;-t>nos__a@SaC|vTc(^Alxx!(Fp-JseeI|BpU0MG4xd#ibM~p@c zl~C~++3p9oega@_b4KtGKpL)XVs0PS;!rC>@=%B)>d=XW2}J}kxins(AczORa~7L? zvE77*5%^qSs$nv*{HRVe)=_r<<-TF{y>{RH>fkN)(`PU)-Ckb8r!nBFSDqcb*3dz0 z6^eA}8kWMV)gO5hpN^ux2cqIl7jbAN4!%l|XjK(QpR8RFLVuJaW*+z)zvqR>X<;2=zPew5?jA54M*~Ou%OoJo zwBs^717d%8?8h`1pTE{_HQlPn^~iUWZ+)il=1x3n6Ha&6Zfp^yewra3xum&A%rPRu z6!!9}@^CnjZA{JNyryyq(*<>~P0)DBo_7rM`GeiO`xkA6!vkD>Lq9o7yKHur^2`L!?$>bQa}>=$o0$?=-!W7BLcrnpBprl0)|koahZ zs!%3_7>|{MNl7Pm$&bqjI|^cCbaWWDdt5^PMGF7C06rv z*%TBglxDF30$<}?d>({F)=TAa3!r-$2RnCylt@Mt{fYhYN3pf^#`;#_Ivu$j0XWpn zLL(JayxJ{e;{1ru`b5NK%W?cLfI99I;V{pkIOW@8~fi<2K&8CGi;j&v!h-L?nLm?gM?muC}RAhnnqt-DuMl^G)fTtZ{+5 z&+%xt(V@okM%R`paenF$FkK+6d$2p$r!CB4)M>SHZCA1A3ul#oE`78`3DP>OA)nXiC=m)2im42|Hmwf9sRd{0M+Uo&Gnl*>LsK1>QefQV z${S#S(CF8NwOLp>Eb^;O8~3(XzTW1Whn7P+j}eczXo#5AHEx%<>Eh%$ePp~cUJ@Hp z^*;Z>rl;0NMf9jMbMHFy=qvMHHn%68kAi?W@dW8kZCM>f4(#gO)iecKFtN)d@z!5t zx2qsQ^;vT(_OMR!gIGf}iU%qYTY3J#a|g%%{hz%(1VZ&E9M^BUm0p37;Of6yjDM9( zFDDE}E(aB2sdmA}ck-}RK#;|Y)pf|62Ynl;Pp<$QD*NTcY>5O|zY_(d66!W4P~%;> zyL&GqJ)a=W_>(&#<|=9KsVMd3&B@pWwcgwkuo5eo<$SU9<~(XCtnyjdxv$RP)su`I^+`36+c4*EOcdlAs3>&3;9=e$@o%5zh zjD>gb$)BIA(*T_c>(bR-jU0xpBP}vro(5r$t?P9eXh@_b_MoD8fcvxQaqhSRp;0?h zZIw#0q)!K5g8dqQ9j4P)2LT0TL1bL33ky%+9t^10&lV!zgJtrSErlwA>qzt1)W;Pr z98RL7WtOX%rCb67BGFxr1vV-oj24a_H7cSH2W;2c`vB`=xaTKBVkS6J)xDM$Y#Syb z$G$DTX}uk*&{%hsR{LBMWeD+}K2SdXByfU+^nl0#nBdb&jQqSqb9s)=@ASn=kZO}( zZSDTli1*!+L8_xn6ZtFTwgN72=}xNsd+@5B3G%sDFU0NpZ}euz+H#nZV5)agnUNh6 z)4(dtwvx=J4eg2WT^!nG|EJ8FUso6j{O13)EoC=Ji0ck z>rI-R$F^{u9K&MR^Sc($OcG2yY9cHiwE#aF#W-Qkh)Z?T`$I1Xl7IN#1bXqF*nyst zvC)oz)E#Y$Q8J|#F9)}u(Bm+|A1i_t%o>>kr13FH{Xesg_G4a7seZ31g4^^^AB*s z!9v_N`<#&EXCKS>9WQPwOEk-;UCjqNUe)w(U9*q54EKaKAtxzPco%c>Y)`)5lpr^4 zn9J;<=3vLF;{uew$Q3wOH5JO3t-|Bi?>UL^JGy;o4ED^eNJthfx(~wT*91}FHD zC6Il*?mCVG#R&TEZ0G?d7?RfC`*SaN zN)m;cPusRqN))S9#TgfZ3pU-iGC7zq>QXm81y8g?5ss5q#@BF`*$tJAX__VA0(*u@YJEG)2r zofr4YHGR|UxFT0vb+=;A%8()RIz2K8lKtOS>su0h3H$Bf_F*5) z-|&`I#pvT5B9`|?x($fi23Xufe43}%_4%P*Ssx%;#)!P87xW>SMPuLI z_5n7)hr4mpvVqbnuyQ{U_CgcF0_`$spP&jD&jernGS0Ls-ke}giR+_kJd3xY?W*H| z3Kl$~x*=|NgJ^fWbo4k7K+H~s;-pnh^$W#me%b$}DD9c!rhi(Z%DgT1Ex?Hl=rE=x z@<{MM77*XQnv>pc$IiDF79ph$wjz#wzw6|E)0ij*oQ;p#d~tocAZoVW*0+8Gc*CS> zAC7et@IVkuH6aov-;Jz%d_sE3fPVaO>K0q@j{9TVm&_I&2huKfd;e(osVK=bI)@R5QMoW7gy} zlk($8NL58oJ6W7wkrg{s+B&F&t8w%)B*^KX-A5tu#JB*=VwD@IzkZmI9f#Js9g@y$e) zH1S=$Wxu)y1}in8o)HVA1}4q3qCdkm2Ese|xxR6{)G;#uvDiwkj$niv0*40D(iYuh>$IKftNyTF_iE& zNqXt-g-yP)uuFgxo=nA@TW`1#8999-Gd@L228L!p3h&bf+2!j%^PUPTj~k&3h7Ia- zwMjVYplX-6_TM&6p(%(kBJLOk5MBVH2Z0v{PzD5mZknvCUF1KnqM(WCz9DubhDJqX zH6wQAvX}b6G{ny2t6wf^V|jTK3MXL0CokU7cY@2Yz~z*4PNY#%!%$*RUTp&^aea2K zu`bKfn3%)-hFhqKju`}@ebrx^MAe1~ct9W;-^kpaIFKiRWX9GD_}=_&-~&T++Z`_B zDhh-5amK0M;HxpS`GiDuQYlA0U8UskFjeSSES1-Ors|jWeHbbx-Q@0biV8GWZ2YEc zd?gq!heovhG#PEGyn_vt;a$Ekqn3f5kKR(}k-Z3-8sNVh+af5!J}7m2Z$IenHdteyx+*7H@0v%s+6`v_f7H%BBQ{8O4a!zj1= zjOU!abR`6CFtc4wzDeucb$a^7RSW?yD+dmh3O>k$La3&5I8m)PRC~$8 zd*m1M=PwYy8f06cAxlud4``~@)!JL(9F>87(L{Wcdb69$m35BCZ1Y=Tey3+MJ>}lD zjiastLJb$kOj{yM#|+mqU#_^vReM=3D%T!t_Aft`IhReDy+dOH?kV~;SczJf;7jNu z-}8eDAmbfL-4d=K`RU9I;PlGl;y7i)QX7(d ze~s^j{K7XG>TjK1b_L9mJW=|a%8}Ar@%nRDf8+Mf50Q%JtfYs_->`TiCbd6ypR~Sj zM<#PpGk6o&3;#)4FL9&$zZ4V*D-r;OT%}G5h4PrrspC^IPDs7ROdr^To-WmDnToiT zEHYvREA#Oh1$h$NqHX=bW|py~`-8HZVG3by*0pzoKfJ(!U#9EFeVkCxg<$+M@88Dn z59;xV7BqI@>B}-3-}EPoJWV5={gD8HYzJK;STyorYt=2_#wb??aMn5+IP5af z$xMclNnbGsxYulV)Ie~fe4kz4mZi_Ykw`|;?*Kfq$T(WGpm* zw%Wi@c;^>3h;99j2|^(!7iT6flf*ALkC5OQOzm~^uK;RT5IBLcBVEf>qVs;k=|8;s z#11mN*-r^4VOT@-x*`rtpxB@Jb`)9T75x%OTO;^~P zBa4-ajh>|T&u^&GGN*Yq)>Ub~{8{*PqjE z`kw!fw%*oiJo)UJ7&`CIz$6QG>E<;q=m6p$H=i*-L>vUtS>P!{eWC927 zjWK7_lS9`-gvqIM&Bjifnc{)NMmj>RrSOfLi)SD&p!}PpetLEJvEBW%M~L3>yt0wX ziE%JMVSwE^Y2B$i-?iFA8K>3o`xaax`u_q>4QqSfNI)ia2~wmgL#_dKQ8BkzMg{Nt zvWNQi*x1?Fe*P7ql;ZFjf)qoU_49eerdvp|msEWQz95&1EZO{y-M{{gEDF7cR5><| z`3(%=Vbv=ArxAluQ7Q-XWU=_lou!6fvb{2@1J}9Kw}imV+_)19%bCeZ0)HOM+134r zMPGF$v3?V$&dxlDen0Tf7XTd?^`09IPL!2pmSBs!*s{ec(L6cJC4F~E?}oku zhxixSGV<4|Sk4;?tf~#WZYhWsB?c>?g$T5lDky~Qx^zwXKw=uOH*|l%B{FIYg)>>9 zOEL0+pzZ4$L=azw6cD%o>sbF{Za|#u@{@Sa(<*hwH9;$9;JcQU)5uH5>Z2iD57T-Z z0WPXCpyT;g)r@jbTI3uOr&#o^a`zYNNxufKlU%UFcB{w!vB!_G37%8?^}O$hw6~;F zZk&l(6^;-{`2QRW9PSST``>g1_``n_OMhi^bXevkjZZ|(nNn0z$h zKOD4|%fAy9(PwCoy!h+$pFdr)k$>0ULjKT^|6)$o{<+?NJ?fOpKbQM2I_$rR#D5v% z|6>0BK-9qhFU+5B)b^pGdhIO`5tsfCMEtMO>Miz}r-y}F^uqz5u4e0{x2gt9UttXX z8L_@G>Z1H?TZh4^A6k*^c*RcL_@c$y({$l9usZ_8^kry+DtJhg5DXR?)a?iq08+8EJ%ulWS=4Rk+yE5R& zd6>!qQe3;Bxav2>Wrxeo-BZoAOZN0+C1>`{($Zr@|MWgHV&MR^~1=9e(&##VkamF{A&kzHU6I!$@KiUP+U0-M#h_QW|sC_czKR8|Gj_9;7q4aBZ zf3$t)H=%Ot5)hBN4g%uEM~J?C=vL^t&k+V{2f%ilmZ2?~411qAfOItW(Zk=-*FPrk zlHJz_0qh**NAbP6Vz=vAD?d>>oYkXzM}y&%Z9%NH80UeJc;S@Kc3!`u*x_#`%!j1X zRA4M$K~z^kjL1{Zw8cT7*@lI_OxmPo+B;l9EJ#VWI6D|6t*;t*0|FsU{R8CgV+1Zf zD21F09#un$oIUrIf#cST^}&KGM;(2@zp>x-7Ejrp94YGQC3URV(8l&0BzoHi6iu?l zG0klxgv1ue)hx=e*C`(A5Ny^z@vSDIKscgE- zkb%#TGKZA*Tf)kCivtn7@f)5amAI&)IDIVK<<5KB3m@=yHn01GGRg#C7sktqCvQ}Nk+k__x__XFfm_tk!vzRky3a@Be}sFI;gZ$n!X;) zlYqFOJpxak`!|(EiNY!?y=&#$-@gV?0H)v3wK4?WiH#hvcb{Ks2Asx$Ga2Iv%-nC$ z#a%5YTP{uR$AJQ;y@|Qms~!1)NB|x}=BJ(BPqnde#`8#PR2-5V`se2A5;cm($ytM? zO{x<->XyqWtr1bh-XHm|Xau)>!fMaHn?7}`3Jwop(TCaa>`mUNq zz>l8P9E}o8WR6aZmBmnc-1~>TivdGjG)$HS1=3;{K-5fc-5pg6P^p4gQd)({yJ8$x zw-_@4asEr%+{U_kEGq4(^l(Q{z%5VxknX5tONG={v3<_7Jm>t^oU!rx zR}~ZV?8DTSRN5zOf^cwR)MO&RF57E} zuh(ftoafEBj~RT=PyTov+XFR!BYGB@TDKGk=fmK@C(#N zoO-m{Gyf(!0GUr3Dn-+HuJ}wZy6|tw(?z?7V%Bljk9!kq~Olvt_G(WSTHcPq-Bs&Xp9~qZIDG4Iejs z{Ze??H5GPuy%)Mc0u)63Y>MpHhpBm4oqY7s8dVT=Bwdl`=Frm!5Wl)!pv45lWbCw!mV&|B(Y`{7u0E z&BdML9K4G*PNT|Sz(L~1;k{$OIet&N?Yh2J1Z&KiI0`ZU*fF2!6+RhMBNky_+!s^1 zW?<0q)3~nr?y23OMIp+>q%y;*6sWcfpvmx>M6P-R6UPW~&n3)CxKr&>XX~ zlGm7Tg8?!NjKeOfzBoXNISAnwW{UXA+%%)M)&8dB00!bAqQZ3UIH1vmQ>~_T#Xp4RJ zxocUWJPFi?$a&DO+wf#{c}M8Iko2gD>*sS;lv2%k6f}AZp=PsAK(3!Y5SQq8-sUA* zbWUGg9YY1!sl`=a&9REhGopbIwFdq1ePOEsy(X_|5nf?rgUVlxVsnERgekuqAF3_R zxO`e|{4q!#7rW&@8Ju4o!P47iYs)it8U%8hwLTF^6)DBKVWL0-$AZf3itjH?m%3li zt{7U+$~i>7eKP$-J(jiCk@;=8cAkS_5m z6N7bR?VFS1lBb}oerD7ESm#Hq0kM_+1VKxZsJz%|yUm(XnMDCPoEab;&ljE#GOHdgyx()P}AD7U=&&8ta0PAunS3p>9Sg+opd zHnwwo;vgnqAGjktVZys@gONJv z_YRXXtA;aT@S;WRj_IV0l&3ylvY5ah8q>40K^p_zt8}fL%lfWXccX$(*N8~eC&q_{ z&XJO0$vYCShR8Emczg&mfqp_&sc2SnXX-8{swdsBmsm_w0Y-E<#!FzuM7wRlZ9kMP z-0`yr^isn8OD3D~AtF1IL@Y^>Jo2%Mu|PN%R08UyqHzvdApsaQ0O^hcSo_30l#xZY z=NqsKzw-f544DYupD>0|_ULM4=5P?0iSzpAmk=<28gynw6!fl2MUb8~e*pP zalOLjbeV03!cd^QE1lCVHi1&4b&`4s=6=qG+15D(S<)912x;*j!ynM?+s&!89d$QY zwsOlPHzz6EZ-1CTe<4l*(5Tw6`^-Jk5>s4quP^1K}61?{|ZJ7jdbo{l2M0)T2+I)-L`~%<22sQMSFFW*5?;)98El)22EC zDCqj(4sxR=P+fx%#BIZcr4~lNvUG+N0evze45$!qV4kRo6-oj?X5&EBgYrPXI{8f} z^020ZUN$QEeEw$GM`w0?%6P?cCp(q()NduPRFdq#CR{zCk@z*J@>jJFb*nD3l+(c4 zW=K_+lwRe()1x;fp#0Zbp>*d0h^D%W^Sux2@-;@Fkm&~~JX;JM%)L~L5fi7loJ;}k zD^_6U4=S!%p0>x#Ftx`zrYiAyGSt=ygA(%4yx7`~T-WaP4+T^Ta>O`T`y+p8d&AyW zE1J+WV}yy^9<{;PbZ%GJS7)t)HuzdfSWQnn>^`)Dv$13~ef-ngPK-d&_>yMy=wj8t z)`3jY4HgTZ-dSht-Wnpf2(TThtY53b6>yc4Gu!UvX}h?inpq{=l;rIKKii#|2@P>K z2VhRE{rdSvPFIw1ms@AMqrg(L%-D?lW09vKx!1sVJ#tIqHtl8|ixcYyRGSqyEmj=o z({!G(bu#IZgTg{;8knr)!*Nz{QeU&*F*2N?`vR@f!AoI?CD`Xfnv7A;N#iN?*M~hKeJM617D?Zbbeo{rnGA2?4ZtzV?;oQ{MBU*t}RlZ zcjSatrQ^ZJcPqMfKHCjNZs{GW-VPsGR5hKNeSWS=)4sFKRn^JiGa%_xNUCrI9@AqTW6iZeJ7FoR#uVd?rS9ET%JB-+ZVyyO2Y8ol8N;WBQ44G7H07 z%v8=&NO0N3EpKH_stWUoTJnLb)5(hB>%cHCCVncen9D(*iBjX*s~cnVV+L%3RvU$0 z5JhI4*KjwZUX%%{wq3M#%M?5gC-)Dpdam5zI(-0@>%n|q@kc?cr5hg#j>O6{#9MxY+!>YvFo+6b?y-lul=7@=2c*fH!%bx@kuC}rT` zyz48jl`L=#H%QCI^?U{e8juu_&~HuuNS2v}eKbV6x|5nbYMA@&7Cl>{m5TJZ8`hSP z!Fh=Hd2cN5akuz&3>{Js>~B8V(|hn(bZ_jAw1mdbY$)m>{2jwOl2!>H&`Vdf7mZbF zcnbkx|A!1>98Q_^Ml;q2?5=|fpkk7JwL=f2Uw+rgg);e`hj(HF$Xze3ATS}CgM$aJ zu5;y##$cgzxywMP@<52d5|p4G&IPV}C94=YhRLYr$QP~H+IqslV!-J9DIU57kp5%* zbkh~20bg3|gCWS5LOg@OAnb`|DLiV=%sH^Q0DT1Vf(2i%ET0{Vs}J^xBq-$Cl114b z#s7&^flZa29BLuEYjhE1@0l5Ms5dV0pg6HwDcKa^$I~R190y=6!{{=vPS}Sg{|+uyAwk>I`1l%{cXV8WvSl z@1~@_^stuP>#=#Dd0^Rea9I<&w}nPH=G9(EF3_~d%cJ0c%{x~?>alxok5Tl8jSR%Q zQI6`xsObaNC(ESd^fj8g{@Z7E)WrFk)+0uN9JE@0)2EbL4(EjLUM(n_J2u|)4=p20^S8}+JZDHzGetk;-aFOmLg$4HwOv`hbPlh;r8D@QaDZoQT^y|$+H2Br zU2G}?7YB2JuP%D;AmMwMWO7u;T2}eNcSOmk;qx3`%i*yJKB{gGoQf!lI_tUeHBcfb zlA7hZa)(AwwIQ_}z)?>#B_IrN!QU$p!gveBvk7koFzd9!`#cP8M8JPKCwJzXRcORf zPd3d&YN%lCx0XpLGvs6$3BL=lkeJSS^8Xa~odHc{Tian!v7@4((sUG26cA9U0hAF$ z1?(s-D$=9`g-`;?!9isd0R;i6fk8lOlolXBRHS$5Eur@$^pO4@aJ<%g@4VmlI)+~% zXP>>!-fOSD_IlQ{&If9Q4h`AhN-nsk>MFk?f{Cx6dHY~eZ(`m(?&L223&^O=iOVdO zc$TYi+2ESW#n+e7@R66aym2*aEul+s zEA3(D2W}$oFCzjMmw;95b#p_J8}b%W4Yx{|do`@1+=76~XvN$1J#VhxzmWtoyh>4b zN{*@StXy6+AX=5>h~8}|y1$mNa|0**m4sesdO?;P;bB+N)t$k{QHtJ0DVFyj`JO4Y zr%kT<86JDvTd403VylaU!qBL}oXktDhXEtC+hEQ;?4FzK{?kyHrV4f!LFL#h?;w9b zF$7rqs|!$bMyJJnPkCq;X}Of>O~#(Xw;IaX!By~`03b3z<#){?&uyvAfo~FEVPMlm zGznmL?^7wLY$9)K6sw}OuShs7_ZhJ1h0^k}qe2LR=xs1L&2kCpN{29tIRq|!SfhMT z-(De2t{bf`%si4!SGWsRv2Ts^WctXTl?NjAKG;7n?QL=&(OwPpgs_ic&qdT1ug(;B zz3wSmpKJNa z6%^(JN#7*NiZ(3*Eih_l-5+}`>fxB>=^aZbDZ!7n+Tg63zV@E<%NP0{1I>P~w}ccP zoZS)DBc66u_MTiISW$W9QYZ%osc~o4wO4qT9zCyJYNi8qo6}ud_0|YWIG#TC=)eM@oc3YcZxDX^&xPl=4rb$9&xUDs!Ur?4PwjiV>@22TEYVV3iNw5_SHie zYz0hJ%=Ogt2%46GnQmeubcfeavizl-=%cz2>Eo9u2>SC(fIO2~hhJN2d-n7j9*E(zB5#CayccinK)K-&8{T-GXLrrA)f;(b>6OBr#xkNt3n*N zv@)fI!Ex`-I4I;vN35rjK&ScrW5oJ)-?s(gpnfHN8#!N$|0zlL6_)b;Vr?boC1?TL zgKDjnd!$rRdX&fc)-vb$xfH)piJW)=Ymu#*1b>>5^Lpx^&XI_DdS+AqWShi(^Soe; zB)Huz1zbN7Tt0#!iN`ZY)+4Ch-P70K?yL2F#XcnF{%h2R{`O~D{gFG2f%Pk6_J{Er z?ck3g$snUvw3u2(5pi1#C?LoZ|E;)7(h`?-sZ^0~-0GS-MevndWBzBO8NTwCqG=aB zto0HY)E2;7T13+5%jg1$J#O2?Z*P5+&P?jtIxKYO)NuYU^paI1ZTw}>DnN9O4g()( zSYO8Hlb)cQyZ_9{FMQM1U-C{1z!tw&0yb$4haTlmd1b=bH|r)hr=)hPx%Q>dJ>_s+ z2)PJ@%qZ7YTZ@!!-!>FUt5AJaTM70pHhcL{>I{AZY>Om2a-en}Re8&YxT(MX<9$l$ z<{)SYe2p4@obk=>p-T}R%M07L*dojdF>a=;n~QN1dqw%}!If8UnbM#ebtKBtx0O$O zsckWL$%QYU9?g`ufv`u6kH7*hN2r$bm!Y>znPt6t%OtLbV!s0$nhGt>|I+7c($`<` z4fxv!g5@XT&({>b|1Zo8_^2mfM@#IxzXO{61z~_qzD5rJ8a?orzxh1CzTk0`H+cPr z4@`8?(EM%mbg|J_@ZewkG4O}4W%~;c{;~Ht0H3Ewyw)wJ3=If_2K?X9 z$gCAdS`PcC1p)BWhf|7@QUt7LLvrraBOSQ?`p?VWIWH(alzre5mYqJTm!Iqn(rjj> zm?u;S5-wV@Ma%1yo;{t2JY|qAT+{so>J9}pYp2R${jaZw8^nQ@*U#Sp=~fRjH;9g> zTBY(nDCB332kD!ls0B&~m7&D)HtO?%i=sC?(mNOQqQI<^RnFE?akr)g-m8 z9u;VOMR&u2RWXL8;khan9=E}Chjo5hYn}nTkRF8(dFWqJ81>_{ezD#pm{O8-#HCm) zlc<2NkZgF5S|0?G`Hc58W`>4chlo-SE4qb_0?>P5DkA;+GsxfC=Z}ImT;p-hAf?V# zKhz3T=rT-Ocf=G0fM6kxC8JebKkbtWQq=mvmrtPLx-IK7hO}wc7b1;7dcTb|S)A-* zH1{Z$sJ!*G`F3kCMd3?$^Dvlyy!eUK9{gpbu;!h$f^DuyTMacYbOP6sWVFXOWh2^T z`pD=N@2C63FH`R#PlpIk9iYKM5{NK4JHjq1=*eLGyNN%lQW1}2ZguLONINUsseNqC zsiZvJ05IVBz~K`R_z6_~Yav8xH~o4S0GXA8N!2x4Gw<`FLGpc?eb$YTM-!Bx(n}BQ z(F3<#uD!l)&2Kk_4?g|o>~)WXC^`P!xwvSDi=#3=)7KQ;^U@2Sp?D#$CBK^w5xG9E z`k0z&xl0nHLw&;)vy*A*&s!BMdIsMMRq~F=mq*_Nb{Icb-h0NZ$hr^)=gq44S(=x|sKd7t|lp%=UHj?V<`6RJK11~2Oa}m^AU{%UU!6PvJGw3Tz;_u+mPU^f= zH`eqh?+sLB5IzP51`%jE>uitvusHK;87cSF+wGkj_`oB!rA>Z= z6cL+#4}`o{q=9t*>~+iTvgvVpdNgHSC{n(|)`Z@22(-F6rxQ+LGQDNjkk1tHMiykY ztXCY;QFDQ65uJA&RJbZfE4eG1rsJcsy?mxbB`7X)p-DkRtFOT`lcO_yR%7_$DsJ^2}e)Q~aX!U@|V=P3!4HI7B)6^kl=O;dXVBHEv5YM)qY z>LY*p?{)on%KMb=vfck?H&uQ_)ca%ghUDz7Kb&w@?P=NNe#ncRH;^cMbAz^;f$e?? zmns|_GFy~uySEJiIjx3!I+{X+8>&?ZPjz&A{=5_x!L$k-9bEV=QP)CzqxuG!WimGq zHd-mJ4*N2THgC7vte}*>!Y|}iPC$)xd}y(jG%}&4j-)+w-Fxm)VVxo&@QU6FhePsR zQ3nCvTse=h!-wYU-hrW`CsQuMuKUsTX*Lalw8F>C$pc`5J8;KkFNsH=c*WKSvu!X!vR*X@&mL>*Ot6|6SAR1VbojY^&24UfAWqlT4liJ| z0j;+uLD$akmGGY7rac-Z1rcj05Ec2zqk>Cs4x_XbyPv;$JWnEB7m+;ZG-DYpG zhG*)Iw5Kf5b_g)rOO#H$FWd%}d)eBV*{#h>0!QTf`B3Tn`?1S20?y<))r*JuCc2#Z z#k%+C5X803WL(tlMjG!b^;Q{IklZu|*4ub}c%6AJte<*dt;(s5b96&}eQ zpqtCQkJIRB$+DJgGT%fcf)-|NmR44=kz-58P8#LWja9!fgF? zC~~EZmQ?EjI@9>p0fkq>WchLYP_E_6e%txt-{eh-%w zNe9uxgV>j1w*=ev=3Ne`P};k;4YoZaVu5B9VZAZV%nT&bDz4vCQW-(fU157lM-%R_ zdA)~hhlTY9hwds7gX3x8jD7aiezW=#nO(NVP3v{T!TJT8K`131DSs%!ZkYIIo0hH> z^};781qe_THoo_!O7+fqX>KeWEU)Ht){xTYhnDrqy!&NBr{ke6`{b6h1=xN^-0!T$ z42e5ya1r_XaTe>4PxMVg>vmQ0$r$xsnR`zzd2InGsy96c!)7K?yu?v!BPHD#5C1J< z3NX=IBOSaRp3~EQ;rm3qj-~(%?HbHPoM}E|=ag7rTeOXkcy0GI-j^AXzaXHNhfvJo zyF2_89PZWs8g4pTqM_FZC13XYf}dT`=*sfDJEfv3EU{M3pm}m|WbIy;WS4mwWV73s zJiDCBH{?SR{AJ`tS$#BrOlzspT_(}wd18^Rzukc&8h_RUC#!NC<%fLnahwz3f9gg0 zd)wYdNSVgkjBeA5dT0RG9fU4{9cj6^AWYBkIK>X(?}8oEQLIFz!2Vuy=hmzRU4HtT zO9y*ZLB~!MG=@eua+{aH4&glD56PIfn??A{nt}`6;z(b=;SL-7{wr63V(rVHPWY*cp-_6<4T8(N?U=9A&ue~4);D)a7xjf4&V8Ciq zX2%4pm|%PhuH)TcVsI(Y`nTWp|`$O;AGUwxIDsq><;A-7?e%=v0z(c$$Pt;X)*_2;aGA5TWYn&mbz|f!R zT_1s*Pnn9gN>XUVuHmZ(wOh7_KTUO*y=I<##iD4!_(THkUAM`NG^uO4zZTjuGI@nE zQqMSXC(c=-B#xlkf1NlZqJ+H`;v znurRNFeH4%r^cp5zGP#)QQ1|c?4pqH!s0K00Ht4Lj$M3@eIuw|IEW8os_?jFel$J&%aF!gz-A$r<3{}YdDdjHMUzQ6{5$1-a4&N2`O zP|_1TxO>0-Nuiy;EmqbFj@8yosU{1ou?=g^#U|eQ1_$^Q__!a}X*N&GX>uCYFRkwp zTW_^m@@@CR8DHIaI=2(w-)3C0CBjxR2r*?ut$k>+if26G?!nHnE)RYE zO+mvE1GfGFy0Zml1%P$jOig53oda_;EU3a&%5Uvy^lt0(WeHF#aeXc(8^JFV%-uix z<{odMX-!H?s>5hIVnTn43+#zh&Mly$S@`ku7+f~mmK&USo*z)1ADO;0_FF~*f=xM( zlbHYs{&_Pu7L0Z2PFo4-gD)C5B1O4Qo>m67gFDBi`14u_Mdp11=>4*joTLgYT-|ZX z2yl(yLFz`#@!8zb2q~r&5phY3Yn8U0iWF6Z>zLknvzdlkUN(q-S@kgLU7Mv5tmb}Z zX!=?`u5!{5Qjam)e}=UR<0jcEBprkyoK2b5Nyp++5G~@}3zO}@GatBkXTuegTWiR! zRv9vN@3xp>?s;~1o@m7!R*f`aFVk(pA8KeKZ*;!`qA{?kZ579P7mtDb58P?NV(z!ro`q4C`?38)FtV&(8Jab(4dE&5|^Dgjmbd?C2||*=Zc*Kxbw#BA|Xpw#B=pVOYZP=(0(7>X_gOsxV8~jM~-Gl z-XWrvm6>o)b$2f3geoRo^Hnw6#+&u@j9RLE2_ShQFzZ<IQ}+-CHp-7T|0K%=XU8`hky8NPYi~E1a#OX{dpqb;A(U zGp!RCys8d1eZqkXy~SiS)Q<8nC_wL6BD;1$Qc@*gou20eb;wjGk$4Y9bM$Cb=eFJ5 z-F&tyuX1Zl{N285!TZ#Y20kyDv+LWXbdx(d%?ZO~?a+Onfvbm@n)*bzRMX|o-{Z-j zS2!WWI-Pt{b`K{hhEHL|2(=7W^o(-_3x`u-oo3APn6Qf)>eelM0=j|3Od!`OSWffQ zs*+-<^Pa!&)(zZ^l95)@1h}*Bb8?#XOgjTia;L1_hRQ~3VMxupg|I22_2#>ZWntB0 z&DH$%&z!u(@<=!|IUz_(fn)^*<|jsbyd$jUoeyI*ROXZ$0-qn>?3ymW!g^n<+hvP~ z29Lopd0rQPhl8+3xmuwI>2zX6-5a;L1rAw9L1RPzXqcaEPGkz&!k>qMQs>RTbjwRj zRHeDICEqC;)2PZIic@y#hMRsli{L%gL(O2_c{#vL+iN^cl#p9cm=rf3Jt8UTaS5)* z9_WUnk;xuKJdC+QEz_Dpp*?~F$I;8me3@m6IoWXh!37Gmwhl{a_w1=`;+GUDbc!i~ zNbAmhNA!eOcpp_m1X;zMO!SUjTrT!@wiKwUvI-$L2M1W_4M%4ximhFzp6iYV44kSc z9ae`7`9`9IR*0{=h;$q8NPN>Rrl{!vrmY#wU%pv07LqQ_ zlvNXPr=^$&VCSe4HgKa%0AHjv0yOGTI#~U*y1^Qe7^;|E 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 delta 53932 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
9X57;nT9lXZ#{(nYr6}}-CWHo_J=KmG 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 generated on - 2026-06-23 01:40:35 + 2026-07-06 17:57:29 last flyway file - V223__tld_change_xap_enabled_to_transitions.sql + V224__add_registrar_expiry_access_period_enabled.sql @@ -273,7 +273,7 @@ td.section {

 

- SchemaCrawler_Diagram generated by SchemaCrawler 17.11.1 generated on 2026-06-23 01:40:35 + SchemaCrawler_Diagram generated by SchemaCrawler 17.11.1 generated on 2026-07-06 17:57:29 allocationtoken_a08ccbef public."AllocationToken" [table] token text not null domain_name text redemption_domain_repo_id text token_type text diff --git a/db/src/main/resources/sql/er_diagram/full_er_diagram.html b/db/src/main/resources/sql/er_diagram/full_er_diagram.html index 3c92ea897..c7efadbb9 100644 --- a/db/src/main/resources/sql/er_diagram/full_er_diagram.html +++ b/db/src/main/resources/sql/er_diagram/full_er_diagram.html @@ -261,11 +261,11 @@ td.section {
generated on - 2026-06-23 01:40:34 + 2026-07-06 17:57:27
last flyway file - V223__tld_change_xap_enabled_to_transitions.sql + V224__add_registrar_expiry_access_period_enabled.sql
@@ -273,7 +273,7 @@ td.section {

 

- SchemaCrawler_Diagram generated by SchemaCrawler 17.11.1 generated on 2026-06-23 01:40:34 + SchemaCrawler_Diagram generated by SchemaCrawler 17.11.1 generated on 2026-07-06 17:57:27 allocationtoken_a08ccbef public."AllocationToken" [table] token text not null update_timestamp timestamptz allowed_registrar_ids _text allowed_tlds _text creation_time timestamptz not null discount_fraction float8(17, 17) not null discount_premiums bool not null discount_years int4 not null domain_name text redemption_domain_repo_id text token_status_transitions hstore token_type text redemption_domain_history_id int8 renewal_price_behavior text not null registration_behavior text not null allowed_epp_actions _text renewal_price_amount numeric(19, 2) renewal_price_currency text discount_price_amount numeric(19, 2) discount_price_currency text @@ -295,11 +295,11 @@ td.section { - registrar_6e1503e3 public."Registrar" [table] registrar_id text not null allowed_tlds _text billing_account_map hstore block_premium_names bool not null client_certificate text client_certificate_hash text contacts_require_syncing bool not null creation_time timestamptz not null drive_folder_id text email_address text failover_client_certificate text failover_client_certificate_hash text fax_number text iana_identifier int8 icann_referral_email text i18n_address_city text i18n_address_country_code text i18n_address_state text i18n_address_street_line1 text i18n_address_street_line2 text i18n_address_street_line3 text i18n_address_zip text ip_address_allow_list _text last_certificate_update_time timestamptz last_update_time timestamptz not null localized_address_city text localized_address_country_code text localized_address_state text localized_address_street_line1 text localized_address_street_line2 text localized_address_street_line3 text localized_address_zip text password_hash text phone_number text phone_passcode text po_number text rdap_base_urls _text registrar_name text not null registry_lock_allowed bool not null password_salt text state text type text not null url text whois_server text last_expiring_cert_notification_sent_date timestamptz last_expiring_failover_cert_notification_sent_date timestamptz last_poc_verification_date timestamptz + registrar_6e1503e3 public."Registrar" [table] registrar_id text not null allowed_tlds _text billing_account_map hstore block_premium_names bool not null client_certificate text client_certificate_hash text contacts_require_syncing bool not null creation_time timestamptz not null drive_folder_id text email_address text failover_client_certificate text failover_client_certificate_hash text fax_number text iana_identifier int8 icann_referral_email text i18n_address_city text i18n_address_country_code text i18n_address_state text i18n_address_street_line1 text i18n_address_street_line2 text i18n_address_street_line3 text i18n_address_zip text ip_address_allow_list _text last_certificate_update_time timestamptz last_update_time timestamptz not null localized_address_city text localized_address_country_code text localized_address_state text localized_address_street_line1 text localized_address_street_line2 text localized_address_street_line3 text localized_address_zip text password_hash text phone_number text phone_passcode text po_number text rdap_base_urls _text registrar_name text not null registry_lock_allowed bool not null password_salt text state text type text not null url text whois_server text last_expiring_cert_notification_sent_date timestamptz last_expiring_failover_cert_notification_sent_date timestamptz last_poc_verification_date timestamptz expiry_access_period_enabled bool not null - billingevent_a57d1815:w->registrar_6e1503e3:e fk_billing_event_registrar_id + billingevent_a57d1815:w->registrar_6e1503e3:e fk_billing_event_registrar_id @@ -331,23 +331,23 @@ td.section { - domain_6c51cffa:w->registrar_6e1503e3:e fk2jc69qyg2tv9hhnmif6oa1cx1 + domain_6c51cffa:w->registrar_6e1503e3:e fk2jc69qyg2tv9hhnmif6oa1cx1 - domain_6c51cffa:w->registrar_6e1503e3:e fk2u3srsfbei272093m3b3xwj23 + domain_6c51cffa:w->registrar_6e1503e3:e fk2u3srsfbei272093m3b3xwj23 - domain_6c51cffa:w->registrar_6e1503e3:e fkjc0r9r5y1lfbt4gpbqw4wsuvq + domain_6c51cffa:w->registrar_6e1503e3:e fkjc0r9r5y1lfbt4gpbqw4wsuvq - domain_6c51cffa:w->registrar_6e1503e3:e fk_domain_transfer_gaining_registrar_id + domain_6c51cffa:w->registrar_6e1503e3:e fk_domain_transfer_gaining_registrar_id - domain_6c51cffa:w->registrar_6e1503e3:e fk_domain_transfer_losing_registrar_id + domain_6c51cffa:w->registrar_6e1503e3:e fk_domain_transfer_losing_registrar_id @@ -371,7 +371,7 @@ td.section { - domainhistory_a54cc226:w->registrar_6e1503e3:e fk_domain_history_registrar_id + domainhistory_a54cc226:w->registrar_6e1503e3:e fk_domain_history_registrar_id @@ -383,7 +383,7 @@ td.section { - billingcancellation_6eedf614:w->registrar_6e1503e3:e fk_billing_cancellation_registrar_id + billingcancellation_6eedf614:w->registrar_6e1503e3:e fk_billing_cancellation_registrar_id @@ -403,11 +403,11 @@ td.section { - graceperiod_cd3b2e8f:w->registrar_6e1503e3:e fk_grace_period_registrar_id + graceperiod_cd3b2e8f:w->registrar_6e1503e3:e fk_grace_period_registrar_id - billingrecurrence_5fa2cb01:w->registrar_6e1503e3:e fk_billing_recurrence_registrar_id + billingrecurrence_5fa2cb01:w->registrar_6e1503e3:e fk_billing_recurrence_registrar_id @@ -495,15 +495,15 @@ td.section { - host_f21b78de:w->registrar_6e1503e3:e fk_host_creation_registrar_id + host_f21b78de:w->registrar_6e1503e3:e fk_host_creation_registrar_id - host_f21b78de:w->registrar_6e1503e3:e fk_host_current_sponsor_registrar_id + host_f21b78de:w->registrar_6e1503e3:e fk_host_current_sponsor_registrar_id - host_f21b78de:w->registrar_6e1503e3:e fk_host_last_epp_update_registrar_id + host_f21b78de:w->registrar_6e1503e3:e fk_host_last_epp_update_registrar_id @@ -531,15 +531,15 @@ td.section { - pollmessage_614a523e:w->registrar_6e1503e3:e fk_poll_message_registrar_id + pollmessage_614a523e:w->registrar_6e1503e3:e fk_poll_message_registrar_id - pollmessage_614a523e:w->registrar_6e1503e3:e fk_poll_message_transfer_response_gaining_registrar_id + pollmessage_614a523e:w->registrar_6e1503e3:e fk_poll_message_transfer_response_gaining_registrar_id - pollmessage_614a523e:w->registrar_6e1503e3:e fk_poll_message_transfer_response_losing_registrar_id + pollmessage_614a523e:w->registrar_6e1503e3:e fk_poll_message_transfer_response_losing_registrar_id @@ -579,7 +579,7 @@ td.section { - hosthistory_56210c2:w->registrar_6e1503e3:e fk_history_registrar_id + hosthistory_56210c2:w->registrar_6e1503e3:e fk_history_registrar_id @@ -615,7 +615,7 @@ td.section { - registrarpoc_ab47054d:w->registrar_6e1503e3:e fk_registrar_poc_registrar_id + registrarpoc_ab47054d:w->registrar_6e1503e3:e fk_registrar_poc_registrar_id @@ -623,7 +623,7 @@ td.section { - registrarupdatehistory_8a38bed4:w->registrar_6e1503e3:e fkregistrarupdatehistoryregistrarid + registrarupdatehistory_8a38bed4:w->registrar_6e1503e3:e fkregistrarupdatehistoryregistrarid @@ -6807,6 +6807,16 @@ td.section { last_poc_verification_date timestamptz +
+ + expiry_access_period_enabled + bool not null +
+
+ + + default false +
diff --git a/db/src/main/resources/sql/flyway.txt b/db/src/main/resources/sql/flyway.txt index 8cfc53dcb..c7823c18a 100644 --- a/db/src/main/resources/sql/flyway.txt +++ b/db/src/main/resources/sql/flyway.txt @@ -221,3 +221,4 @@ V220__domain_package_token_idx.sql V221__remove_contact_history.sql V222__remove_contact.sql V223__tld_change_xap_enabled_to_transitions.sql +V224__add_registrar_expiry_access_period_enabled.sql diff --git a/db/src/main/resources/sql/flyway/V224__add_registrar_expiry_access_period_enabled.sql b/db/src/main/resources/sql/flyway/V224__add_registrar_expiry_access_period_enabled.sql new file mode 100644 index 000000000..3b1e16acd --- /dev/null +++ b/db/src/main/resources/sql/flyway/V224__add_registrar_expiry_access_period_enabled.sql @@ -0,0 +1,20 @@ +-- Copyright 2026 The Nomulus Authors. All Rights Reserved. +-- +-- 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. + +-- Add the XAP opt-in column to Registrar, defaulting to false for all existing registrars. +-- To ensure backward compatibility with running servers (old Java code) during +-- the transition phase of the deployment, we set DEFAULT false NOT NULL. +-- TODO(mcilwain): Drop this DEFAULT constraint in a subsequent schema release once the Java code has been fully deployed. +ALTER TABLE "Registrar" ADD COLUMN expiry_access_period_enabled boolean + DEFAULT false NOT NULL; diff --git a/db/src/main/resources/sql/schema/nomulus.golden.sql b/db/src/main/resources/sql/schema/nomulus.golden.sql index d45bf2060..27dc39a90 100644 --- a/db/src/main/resources/sql/schema/nomulus.golden.sql +++ b/db/src/main/resources/sql/schema/nomulus.golden.sql @@ -855,7 +855,8 @@ CREATE TABLE public."Registrar" ( whois_server text, last_expiring_cert_notification_sent_date timestamp with time zone, last_expiring_failover_cert_notification_sent_date timestamp with time zone, - last_poc_verification_date timestamp with time zone + last_poc_verification_date timestamp with time zone, + expiry_access_period_enabled boolean DEFAULT false NOT NULL );