From f839318362ca6b19eda59f7894a8ccf12a9b3286 Mon Sep 17 00:00:00 2001 From: Xavi Aracil Date: Thu, 4 Apr 2024 12:07:35 +0200 Subject: [PATCH 1/4] Updated dependency --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f498fc0..275ea07 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ 11 2.17.2 false - 1.0.6 + 1.0.7 From 3d643b579ba11cf7f788148cb612b68cb1455bc5 Mon Sep 17 00:00:00 2001 From: Xavi Aracil Date: Thu, 4 Apr 2024 12:07:42 +0200 Subject: [PATCH 2/4] Update version to 1.0.6 in pom.xml files --- inspector-vc-web/pom.xml | 2 +- inspector-vc/pom.xml | 2 +- pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inspector-vc-web/pom.xml b/inspector-vc-web/pom.xml index 4dd572c..5de6ee3 100644 --- a/inspector-vc-web/pom.xml +++ b/inspector-vc-web/pom.xml @@ -6,7 +6,7 @@ org.1edtech vc-public-validator - 1.0.5 + 1.0.6 inspector-vc-web diff --git a/inspector-vc/pom.xml b/inspector-vc/pom.xml index 4870bbe..16a930d 100644 --- a/inspector-vc/pom.xml +++ b/inspector-vc/pom.xml @@ -5,7 +5,7 @@ org.1edtech vc-public-validator - 1.0.5 + 1.0.6 inspector-vc diff --git a/pom.xml b/pom.xml index 275ea07..9a8b7e3 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ org.1edtech vc-public-validator - 1.0.5 + 1.0.6 vc-public-validator pom From 7608773cd819f3901f9ae9b1924006e505a0c18a Mon Sep 17 00:00:00 2001 From: Xavi Aracil Date: Thu, 4 Apr 2024 15:12:35 +0200 Subject: [PATCH 3/4] Set option to return whole JWT payload as credential --- .../src/main/java/org/oneedtech/inspect/vc/Assertion.java | 1 + .../src/main/java/org/oneedtech/inspect/vc/OB20Inspector.java | 1 + .../src/main/java/org/oneedtech/inspect/vc/OB30Inspector.java | 1 + .../java/org/oneedtech/inspect/vc/VerifiableCredential.java | 1 + .../java/org/oneedtech/inspect/vc/payload/PayloadParser.java | 3 +++ .../oneedtech/inspect/vc/credential/PayloadParserTests.java | 1 + 6 files changed, 8 insertions(+) diff --git a/inspector-vc/src/main/java/org/oneedtech/inspect/vc/Assertion.java b/inspector-vc/src/main/java/org/oneedtech/inspect/vc/Assertion.java index 9769561..b04a07f 100644 --- a/inspector-vc/src/main/java/org/oneedtech/inspect/vc/Assertion.java +++ b/inspector-vc/src/main/java/org/oneedtech/inspect/vc/Assertion.java @@ -354,4 +354,5 @@ public class Assertion extends Credential { private static final String ISSUED_ON_PROPERTY_NAME = "issuedOn"; private static final String EXPIRES_AT_PROPERTY_NAME = "expires"; public static final String JWT_NODE_NAME = ""; // empty because the whole payload is the assertion + public static final Boolean JWT_ALLOW_WHOLE_PAYLOAD = true; } diff --git a/inspector-vc/src/main/java/org/oneedtech/inspect/vc/OB20Inspector.java b/inspector-vc/src/main/java/org/oneedtech/inspect/vc/OB20Inspector.java index 57f939a..c7719c4 100644 --- a/inspector-vc/src/main/java/org/oneedtech/inspect/vc/OB20Inspector.java +++ b/inspector-vc/src/main/java/org/oneedtech/inspect/vc/OB20Inspector.java @@ -91,6 +91,7 @@ public class OB20Inspector extends VCInspector { .put(Key.SVG_CREDENTIAL_QNAME, SvgParser.QNames.OB20) .put(Key.JSON_DOCUMENT_LOADER, documentLoader) .put(Key.JWT_CREDENTIAL_NODE_NAME, Assertion.JWT_NODE_NAME) + .put(Key.JWT_CREDENTIAL_ALLOW_WHOLE_PAYLOAD, Assertion.JWT_ALLOW_WHOLE_PAYLOAD) .put(Key.URI_RESOURCE_FACTORY, uriResourceFactory) .build(); diff --git a/inspector-vc/src/main/java/org/oneedtech/inspect/vc/OB30Inspector.java b/inspector-vc/src/main/java/org/oneedtech/inspect/vc/OB30Inspector.java index 3ee8523..5206507 100644 --- a/inspector-vc/src/main/java/org/oneedtech/inspect/vc/OB30Inspector.java +++ b/inspector-vc/src/main/java/org/oneedtech/inspect/vc/OB30Inspector.java @@ -99,6 +99,7 @@ public class OB30Inspector extends VCInspector implements SubInspector { .put(Key.PNG_CREDENTIAL_KEY, PngParser.Keys.OB30) .put(Key.SVG_CREDENTIAL_QNAME, SvgParser.QNames.OB30) .put(Key.JWT_CREDENTIAL_NODE_NAME, VerifiableCredential.JWT_NODE_NAME) + .put(Key.JWT_CREDENTIAL_ALLOW_WHOLE_PAYLOAD, VerifiableCredential.JWT_ALLOW_WHOLE_PAYLOAD) .build(); List accumulator = new ArrayList<>(); diff --git a/inspector-vc/src/main/java/org/oneedtech/inspect/vc/VerifiableCredential.java b/inspector-vc/src/main/java/org/oneedtech/inspect/vc/VerifiableCredential.java index dc1b3e3..cbbec84 100644 --- a/inspector-vc/src/main/java/org/oneedtech/inspect/vc/VerifiableCredential.java +++ b/inspector-vc/src/main/java/org/oneedtech/inspect/vc/VerifiableCredential.java @@ -234,6 +234,7 @@ public class VerifiableCredential extends Credential { private static final String EXPIRES_AT_PROPERTY_NAME_V11 = "expirationDate"; private static final String EXPIRES_AT_PROPERTY_NAME_V20 = "validUntil"; public static final String JWT_NODE_NAME = "vc"; + public static final Boolean JWT_ALLOW_WHOLE_PAYLOAD = true; public static final List REFRESH_SERVICE_MIME_TYPES = List.of(MimeType.JSON, MimeType.JSON_LD, MimeType.TEXT_PLAIN); } diff --git a/inspector-vc/src/main/java/org/oneedtech/inspect/vc/payload/PayloadParser.java b/inspector-vc/src/main/java/org/oneedtech/inspect/vc/payload/PayloadParser.java index 5ffd4c1..3c0464e 100644 --- a/inspector-vc/src/main/java/org/oneedtech/inspect/vc/payload/PayloadParser.java +++ b/inspector-vc/src/main/java/org/oneedtech/inspect/vc/payload/PayloadParser.java @@ -57,6 +57,9 @@ public abstract class PayloadParser { return outerPayload; } JsonNode vcNode = outerPayload.get(nodeName); + if (vcNode == null && (Boolean) context.get(Key.JWT_CREDENTIAL_ALLOW_WHOLE_PAYLOAD)) { + return outerPayload; + } return vcNode; } diff --git a/inspector-vc/src/test/java/org/oneedtech/inspect/vc/credential/PayloadParserTests.java b/inspector-vc/src/test/java/org/oneedtech/inspect/vc/credential/PayloadParserTests.java index d0893e2..063245b 100644 --- a/inspector-vc/src/test/java/org/oneedtech/inspect/vc/credential/PayloadParserTests.java +++ b/inspector-vc/src/test/java/org/oneedtech/inspect/vc/credential/PayloadParserTests.java @@ -120,6 +120,7 @@ public class PayloadParserTests { .put(Key.PNG_CREDENTIAL_KEY, PngParser.Keys.OB30) .put(Key.SVG_CREDENTIAL_QNAME, SvgParser.QNames.OB30) .put(Key.JWT_CREDENTIAL_NODE_NAME, VerifiableCredential.JWT_NODE_NAME) + .put(Key.JWT_CREDENTIAL_ALLOW_WHOLE_PAYLOAD, VerifiableCredential.JWT_ALLOW_WHOLE_PAYLOAD) .build(); } } From d811b940df41a69287b2dc47c78fd376cfc0ab05 Mon Sep 17 00:00:00 2001 From: Xavi Aracil Date: Thu, 4 Apr 2024 15:14:07 +0200 Subject: [PATCH 4/4] Fixed JWT tests --- .../org/oneedtech/inspect/vc/OB30Tests.java | 20 ++++++++++++++++-- .../org/oneedtech/inspect/vc/Samples.java | 2 ++ .../src/test/resources/ob30/simple-jwt.png | Bin 85229 -> 84954 bytes .../src/test/resources/ob30/simple-jwt.svg | 2 +- .../src/test/resources/ob30/simple-jwt_v1.png | Bin 0 -> 85240 bytes .../src/test/resources/ob30/simple-jwt_v1.svg | 17 +++++++++++++++ 6 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 inspector-vc/src/test/resources/ob30/simple-jwt_v1.png create mode 100644 inspector-vc/src/test/resources/ob30/simple-jwt_v1.svg diff --git a/inspector-vc/src/test/java/org/oneedtech/inspect/vc/OB30Tests.java b/inspector-vc/src/test/java/org/oneedtech/inspect/vc/OB30Tests.java index 8575ca7..9e75372 100644 --- a/inspector-vc/src/test/java/org/oneedtech/inspect/vc/OB30Tests.java +++ b/inspector-vc/src/test/java/org/oneedtech/inspect/vc/OB30Tests.java @@ -95,6 +95,15 @@ public class OB30Tests { assertDoesNotThrow(()->{ Report report = validator.run(Samples.OB30.PNG.SIMPLE_JWT_PNG.asFileResource()); if(verbose) PrintHelper.print(report, true); + assertValid(report); + }); + } + + @Test + void testSimpleV1PNGJWTValid() { + assertDoesNotThrow(()->{ + Report report = validator.run(Samples.OB30.PNG.SIMPLE_V1_JWT_PNG.asFileResource()); + if(verbose) PrintHelper.print(report, true); // TODO: moved to warning due to: // - json schema validation error against canonical schema (json-ld schema validates) // - outdated context version @@ -117,10 +126,17 @@ public class OB30Tests { assertDoesNotThrow(()->{ Report report = validator.run(Samples.OB30.SVG.SIMPLE_JWT_SVG.asFileResource()); if(verbose) PrintHelper.print(report, true); - // TODO: moved to warning due to: + assertValid(report); + }); + } + + @Test + void testSimpleV1JsonSVGJWTValid() { + assertDoesNotThrow(()->{ + Report report = validator.run(Samples.OB30.SVG.SIMPLE_V1_JWT_SVG.asFileResource()); + if(verbose) PrintHelper.print(report, true); // - json schema validation error against canonical schema (json-ld schema validates) // - outdated context version - // assertValid(report); assertWarning(report); }); } diff --git a/inspector-vc/src/test/java/org/oneedtech/inspect/vc/Samples.java b/inspector-vc/src/test/java/org/oneedtech/inspect/vc/Samples.java index 3a2176f..a2b174b 100644 --- a/inspector-vc/src/test/java/org/oneedtech/inspect/vc/Samples.java +++ b/inspector-vc/src/test/java/org/oneedtech/inspect/vc/Samples.java @@ -7,6 +7,7 @@ public class Samples { public static final class SVG { public final static Sample SIMPLE_JSON_SVG = new Sample("ob30/simple-json.svg", true); public final static Sample SIMPLE_JWT_SVG = new Sample("ob30/simple-jwt.svg", true); + public final static Sample SIMPLE_V1_JWT_SVG = new Sample("ob30/simple-jwt_v1.svg", true); } public static final class JSON { public final static Sample COMPLETE_JSON = new Sample("ob30/complete.json", false); @@ -45,6 +46,7 @@ public class Samples { public static final class PNG { public final static Sample SIMPLE_JWT_PNG = new Sample("ob30/simple-jwt.png", true); public final static Sample SIMPLE_JSON_PNG = new Sample("ob30/simple-json.png", true); + public final static Sample SIMPLE_V1_JWT_PNG = new Sample("ob30/simple-jwt_v1.png", true); } public static final class JWT { public final static Sample SIMPLE_JWT = new Sample("ob30/simple.jwt", true); diff --git a/inspector-vc/src/test/resources/ob30/simple-jwt.png b/inspector-vc/src/test/resources/ob30/simple-jwt.png index 7211f537e503ddc95bb54385ce149393f943284f..f410de82db53bb4cf380d3a0cba7fcd052b3b005 100644 GIT binary patch delta 1951 zcmZWpy{_|06(vYlLUdFJK|@7>zN_(H&T&BzC$?js*g5gf*q#PF9v_eGvE!3CcI+mI zhMp$k1#WQ*Dqi3|#1#_nfZ!3BoR13vB1M+RGkexrd#(MqKYsDo`xn3c^Wt0W`#<>m z{V&==xHX-WPS!G?>=W76<-WB25a{J@ZC|YFSmv!A_{{C2hMIewo&w;#K_IwrYskp- zmPt)F4x}>D$E(luo(L@7o3KM$B)K9rcA>Gy5OtZ34$$muBz9>YK+^?G3aRN}}^7VwN=O{Mpv}R!_jxwoxDFk3jVix+dOLw7KxwFyb zdNC)yaE^>(+M5)T);;b5ZQMhx3q?=i7qhIn)*d(rXj5E6(BIDS%-+L@h(x!2zxH<6 zP?ve7%i&sx2=LaPdA($<>*fY?A)re~2O}07F|D&{9||@WY9Wwdhz&!__2Y!Y@QNxZ zWEC0nNG&1onyg`#qxTMs6WI-D@3q}NY3n`=ZtUs;_~vXN4GeN{BjfE58)mpA6P$n) zOZALfHX^}(&B9{DGg~^bE9b0J0zg0-P#VClB)+h8MK4NQBXXG?;7EP4##YWFcY z#z2*UL8(O6VJoDGJy9!tdH{*|#< z-dZ@}HNU>0fNZsSUp@~+BGRs5eI}AK7Hx{x%8)hLhx?L9U=Ig+F{L=x&dAp`Sh7c} z1!t>86q~H}T6@3`N|iM_!K!yQT;z=rI-Aw<^IuCJv~gqfw-4@&1BwKR7dlzGO_531 zW5a)uH(ViUI+jR>a^IfIG~&n;YrQwouxvgs^9r{G%2exp^ePK>TcK&Fe3At>9%Xxmt`5lV?17R^P zXX8$3?D1?c`ao(m3e8%Zaw~|RRl7Z80|iIcCk>pkNuya47PwLSG*b9RSX(92_ zBR0e0a1+%jTWfv7FGJ#I`F5qPa%MG(-HIb0Iobi2+ziY+rm<5bjZq^pd=%yCkxLqP zj05KY!-5-~t9TtU^P%LSz+zGmlQPS6X=d^^#ohz>z~2XKUg<4qR6cGzW^GBwH+Hzx zsAZA~OK`LvscG1RMdhQfyVBy4DilZI!#E*|jGk};>13;K{>Tkw0PgJT!#Gam0C(fa zoJf~R&SU?PY`rm?kHhXi3Htek$4uCXY|bP;!+2cXAQ7C+LHTfR4D0*L%R;?TVSK}?tO%l>Ss zsiI8U{waK#CPC7rHtX<~5zyY0!*tC3c2!^~u*;h(`p0$Epj|7BL1SdrVRw>OpfZWC z372&%_6HH!&zM&^&beF(ozuNJW6RVsyf&XCWe7?+*WbYkXWm9tPcNW(?mG)*9h+mi z1@_By@^V)`$w%VY;3oSQe8o<8ZFleKv$0R4Vl(%v)xZi`jNo(qcr`e>J?3Pk|z*dl}K9|xU<~^4>TY1;OB1yVs>p%fw+-_+hV>+-N9dzg#Ait49&J($b z;K1LuhWF;GFxhd)nbhVfk7W{(o&t`LX-|=)ZP8GuEb=-60C3G&2j%940R}MMUlZWe zuACVH^D6>yoyeqv3U@Xb)pW~jXgR02yoSV>%G;2?L)_e6y$WP_3o`-0jw9XOMZ`j3 ztR%|SOcmPtE8^p#^}`5C3^^BqTb`;!XE?hOkhx5Ph*Zwm$DC}9y7S5wZwl{4TyC*I zhB4xL8UmdfqCnu7Ax6^xXu20U8&cgef{hIBEZX9-(Gx^GR%BgVqBbs!D=sxF3}=y# zHH8E+@i5#3liT-w556Sm=NM+?f25x`)NpUup+hqJrR=lwfe8 zy{5Pi2V@en^uf=cFVsSPx|}s>42RHT54Xo4bVA>2&a|TFssPlf-X-YZ(talV+9#;1RpLR z>vWe==LX_Io6cR;A0JTX>!ouR_dM3YD9h4FKaoI3X~`85IYSb`nQcJ+6;T~d9>jbC zddsl$POvB0hvvyH`TZaEc66vO>+hKmRcY;70f)rooCy<+s?q+rcOy?)V{c?qrd4rk zsnRy7DJWGT7v-r!uA`lI`TqsBbeNz*Sb+=qoF*3Fg;~yV14!Yd^}XpR|#R~ByvZ90=Y<{5}i_2e^6})&AAYp8z~w8j><8F7GwGRzfHduVa0;~4Xx+F8{B?GOjVSR)De>xemRE7{a^Ov z7q?3K=Gdd_<;5~K;H;$5@+`0C(}gD0`}}=s?u+-!ELVv4)MR0+Eqw00y}xX1^EmM7 zeEC+=1ibtDwKE*};o3F{fZ;JYc6!C1)Y9eN84dC>M7w2t-xTzkh%3U$|=ss1#% zq1y4kuHy74zs+JAd|*#=rJiqB{Gja@^)gZ8*+IHw9eLeBXQffY_jd8Vfmy}k#Yzs2 zz`OW$6Ksz0GoL;;l2Z4v&MLVJa>?=IMPJR_;&OWP=KHn!`eZWyy?%{@ub1_!TDC=e ztoC80+1;Tb;mZ?&l`-gh{DEHLu09Y^d%S4P*&KN@**W%CYX{cz+0mfcap_mD-f2_O o>)e&Y - + diff --git a/inspector-vc/src/test/resources/ob30/simple-jwt_v1.png b/inspector-vc/src/test/resources/ob30/simple-jwt_v1.png new file mode 100644 index 0000000000000000000000000000000000000000..561787266a607e30f2eda179f57cdd7af14acc48 GIT binary patch literal 85240 zcmZU+30%$F*FXNLR1^}8Bsm$1QiP%?Gzp~vWlW{6>B`W6=$M?l;{|$ z=b4ZpSb+Q)sq|NnYD&*MJSIs3Es+G}{P_gbIug^qRu6ox8r95-OD zy|oL+$-IF7y*x+`{-*ZQ$rkvdkKe2Xvp6m*TCr=jEd2jE-u5mFIBv%nj^pp=xS#M> z{0|%#V9ar!JUMQ9Jjbc~C*(O>z(2@&&9k%arP9y+M-BWZp7`q^dh zAM)GgF0hgRS7xZ(5bn77laug?++6EfZo#jbUi*bCTJ)-?_1FH%v-?VYyfgOtlbuJ; z^$p|OA3evP?EH7s0ZlC%J2#co@x0;s&qnqQ>)U^j&e?>tJ7(ZTXD9+ZqA+h})Q9aZ&cJ z#aCC}+422TZ+AmQ;%gP6rJVQ=y^B)tr`6GKM7E{!s94{BK*VOka&k1Vg4PCGsqPDY zV`NH8%#K#;UF+^5V!iI=l@+%GH!6ox5#SfiOY!~ZDsiOB`yR^XTD9M|wO zU6mi)`mQjNca{pzuQXxW*7s5N?nL56onITuPFosn`Tps}r6pG*eEf(sIx5BQyF|r4 zZrmc+9-d2@W8(CHPn9!eq={@eJ!M__1?OZrzs)k_Y5q*UK)#r7xw*He``3>z;{)32 z9~~X*6p=7<*UxVspY#06l4k5|&-naY@62VtS&fbZbWBwY+%rAz?JZd4WBSLFGqd)| z@eU6qpDM_DaBB82@)$k+aqFKuP;vQNFUcvvZ1cN^;k`YRZ8tU46ZzmcK$xWIx6$;^ znp>OeigL=PZhUop?Q`1{qD{+kRP^bg9?-i^wmn`QKQS$Nw|7Eo$hQwqlkK7-v}T5M zw7h+gbNXe45F;tjIKO&(ueR^(BAtoB3c0J5~)!{>-L@*hkLoIPUN zmU@vumsgbLY&Fbs>?k5192L3fW~%DxX&VY}WDTj-yMD@a)0_P5Ta}HdL~I}*bmS0z z(CfL5L~>N09vV1&`nC@-_6v!`i1x_H57aW#`Ab0LthpgqZ@Gku0QCLk)m5uf=*EM@KxLEz_CH`c#&Oz|#0GTc1yx@uLEh@ABqMY@&z<$i|oantE3r`fbO zRb~5?X;(K8gQjhv_g4~;E3oSLvM-fipgSanYs4mzOT8r(e?9V6%g&gHoUu zQR(1d74TRbR}WS#sJX`ZQ}Kw{%w zyl(fn{s&PW7fss?!2K zm8ZL=ZA+8kgnxTwxf`ensFAF3Pa(_R`9tj^x#}zLNQ{XB(LOibQ*f*kn1-p53sK)BieHZsf(NGVv8Fq!VRe5 z{FkRrP2Aq*ZLqaQ>zy|a8#&Wc$d{6l3+wnr#Fake5k6IkOx+^QXXKD>tc%-tXxkq| zE|6cXym@fIu&Em=pDbQp(ADyD&>obc$@%|w*fqW9UD{NOOJx|qlzX<~z(?4b)0&G|^h;WOF6 z=GVL;k7wX`z~Us^Q`;2L91GSZGL4EoafLz68^&kuq`P3m)Sd3MjuGy3u4sqvbr*O( z>i&Gf?UxftAWtWbRxw;kR46C=YB6zeHD&@n5iVjqtVzcdKOy=p-m-;%o6XsQ*J4mV z1tQPjoVfb)?A(2brM5jhSkug3EZiewqd?DKHC>H(^Fn&=p;q1Rsa5FtZX_s-R5x0g zUpY0;dvB+FVGVwa!dfa0mp!tHbL7>A zeEr9?Hbi$zQzbDjA06c(l1N!_iZ}~pP4htV*ETD6d`vyQa>v|B;3UC5eDG+8SiM=BiDEWb?d=X=F6o)i_8m+&+G1F41b z*Q=u9un|?5M<00oG0|CiFH^{lS-ts4Y=UE=^%%Ol)&jItD;~BDd)*12#kZS9*LC|C z8tif<%dVCON|s?EKR>3O-u*M(KA6ZYqMh7NH;ij|oAO(WhHc6pISDOiWbh6mF7zDk zQXLguu?VKot%Ko;ylo$!rSia@6MI`)^$b2K^u1+S-qgUAzkU*7zep9*>e2@ye^ggJ zE7JSIZZXjzu6PkfuaW(U0mxj<`;z~))ci}nt_z9C{{7pTe7%(sz5n%>s7na((D&Z| z<8NvJ^#7uEH=S$?|Le6QebhB4dOZwN*0p}K>&NS$+FeUhsIhfBLp0i|=Nz%#R!Kj< zzg!jC{e4O5d8gA5(rgo8)M`CyJdt^HWnZ^!B{D?Qm|8UJp4RBluDTJugVM?M8#+br z3WOjrH>rZgT)IzXL*X|Xd95`3E0M@$vMz3SS*Y4e8cnW=2s=$=L?H=6w_x~^B*JJr ztsGBv+%>#wku)HJhzOLMU;OVUBI72}OD`Xh-`n%+OF{2ldo;|BL>>8K=a6IP+igKJ zUsW2v62rx+iSYO0rk?CuQ&+lWUvAxYl&~M0?`SHfHQt%Ga4>UHXigWbQ-$Y#2(XTR4?iBA+n%N+TFiC-?X7&;**iD)8P~N zy_Z=O*xB{9%(Ay@s{kEj4B2X-NA3rb(eZ1PRf(jQ<7ZuV!gEchO-*fWtE^^C;O zhlfS>Co$-gvko577gk>)Dw4h04m6Oz&tU4Zv5&FPS~M`KTi z+^?#DzdjN{G)GvPh{;8c*H3V35G6mMyP2tkrY2I9L5=_DcVCD&5ry~sVn(t^Vd-XuH^ZaL$kYj;Fz+Ljc1Ya;ub-N;g` zt!Z*+J3#Q|?yu(CU+xZBiwaq_mMr3BB{3Q?j}e=Q9Xf-W|F~-twmH-NYya>pb>8s_ zD+Yh04?o;G>Pu@ll?|6Rbm(R@^tU6`Q%=< z+@eR)GS-Vq>`?0Ty{&QCYV=xil`@U{M+;b>qNb0=RZ|%*V~Zc%#TN6Z;e$!qw(RBv zSx^$V$-Yh3rzQ=XN>atIzBzKRgf7iM5~Ot%nXUg5;}_K`yr%(a1hNr_MI}}!QVYDt z9zl&FM-nN@kZ{cS4ywZ<=7tUgdXMbz;(-XU~aL&F%v+RwTJ9 z!pXDe5Q!T)nWp+tr*Yw)wwSCO5iut?cn}dGS-htCU~?NWLTAUjsr4PVnH6 z(ukQM?s#yboyzwgOL0%Za4HZWnZ}k=r?JYS`rU6~xA?fKw3eHvS3A`{O2sHr2lA9pY z!q3)sG4e~gyZ}7v7vgpK%a3BTSx!;9q>OS1tw?+o?n8w}kQ~=B1G6ZW;a>=AU4ER# zQ*($f-7+G%K#CI%nKz$^+d7Kj4H(?7Kap}gv6hrPYAu2Uh&e2Mh`IGsG2E0#bScGw z)LCB9djU|K_KY226aqbqK(q7T3f?JX6^Y zE5LDrE(WI2Q2n~ZLTmxtaL8E4Oj!uIEM}50ujL7|vZ*xKnIkW#B;t-I#&!OS+NUPb znjEUif#jOEd>~=G@bpQH>*6qT{5V=rPQ;CULLP=0ku1jNkrV>*hy~>MwDI_QS=?Vv z7nh(niQ4`5?7CzI)fGpNu-u(5DxpzGMV{j|+@0R)7=AO>ug*suFf zF0#Ht;4=5D*^(%i=-X5hQd%`r$G9R@azwa`Z0SduY2x=W%_fH;IE$4>P$3UbQeuAk zYrLZl0g%>#yJrA1JGO)ch(?ZYW0)5Y;aGzMU|)UTpEHLO5{15{;&6kaWojzrq249TTItLZlC4Y~M2=5Svr zG-4=q@IC~6CM1;;_Q5lqnaXUo;1&@x_SC+r)G%)}fAAAymvgXP!ujN^{k<6A3~k_{iiP{mm0M6It;VGk{Si&ytIDu)${(PY0%!$`b5mZ0r`HRw%Y>AECa zBrz)|tb0^SL`{=s)eo$XO(0L=Le4v(AMuIi7|TI4oF!bZ`r7v8vAY{$#FSxMpVNadXAPWeW)G(=iOWlj0O^mki2m(>x<9<84PmUx7;P|^HDXeeQtl%+KawO+C zgZ|DyC^l#&myn-=k1rBE>+Zi6h(~0O=rVPWXlFKp1vzrCh0xsR3B&h_X*qW3zHdIX#Ao>?iHhU-CY+KAj zL$8*Pznb6n_xP(}|8vCrtrHa*p-u!Y(>4XYGFhzESaPQ(SJIHDI`-3ZYB&E^yM(#9 z)Zs;Lz-!GboAIM&YuOAtvMm&cs!zrs+$kLa-vy%#i7dcig)1q1Ok|!9mJKDv3jGWz zPUJ+aQT;xwFU(J;g{Jbkqb3q@mi+!dFR27)El;7L%;Yn$bRA1_vtkY*mJ+)TvlJU< z*x1by_AUZP4v;~F7J^Yc+=DUXYHSaOtHHOBpw%yE#`NkptVgc~*JDo$dY631XFLY@ z;{1F~ax2=T$*ss0<#{jFZ>(C(Q>Mb~AK%WIRv{Z-ff|MRlb_#mG_o1a(QF^Oh*Wmb z(OYp^Rfy?~Z6lCB;Ql;BoHukzGr+f{4;F}HhvH+{?4`o)KbN~2pMHqs0>^sU>cjdD zkOv%VOlmnt$AoVnwXyRH@}5&gw-4IU0QQ9Uen43QB->)Hpsbe2s!?V{+*u$D##@{~Fe$NH`6g0O0WZodg4m3a0&EFF zQ*Te6U9^nsO4=lfx%!4NYs_vlB&LWYIM!EhD(G&n-gF{df%A7HIhomk7$SpGS#?-~ z(-QCyMEf*Wu0(HX3S#h#;vd5%DQIzGEpoR88qOrLGMxa~>&nBNYw7O^J0$=emTmg@ zErI=zA&J4jM`n>b5JyQq12HE^X(K{k@0-?f{H-M6GaFTU4*$*9J7GmP!QbI7lsL$8 zW>X3Hpyl9CB=fVurxGIbnN8=~oMKb5aA#-B4ZG8JO2R!1Yt5kLxopZ$;IJ2mQy6> zP&tCAn!ELGQZNqfa!w&8@pj-EKlmM57in_YKqSKjvG}CcY>Ae%U&6FdbsEKs{cIRv zCIS@2^E81LGRJ>1MOZ>Z7Hk1o-~*cPMGV$NA_B1>;^-_;D$gap)M9OrL?EC;LJI|o z6wOk0qEdbOb}o_d;GINze^@TT>h-JLrF73#=F$r1weIa9MDm&Gu&3VWT65@nj(?B( z<|PlQkAEC!X}r6=g-B+1cTqsMrRK}fy4{}kloT`s(WDpMn-sbCS(KWh9@(E7{=6{pIe?z zISYN4?b!wRG4PzKBR1Cg)qTmn8+OTj2G@0W)7{SZr#9VH#&WIqt*adOjpT@btX?6? zI{fo}#&j-EGkGB@MIBI%B4iprY*5>lV1v-33&Vv)81t+juf^%y)Er_OHT)?9q(y|8 z0C{;N<+_CruJO}afY*k(k600bBofS8Yfsx|4dC)r7^zRf(!#j2XqP;9Mjm!dXVt_{ z!>o3j1kN_4B&YK^f*?t(gJoaegr|?B2V`U@202`&<j*{4nJfHx*Wal;8uul z0bA!k21#HCMTlaSg>A#koyUTVu&YFj6pex{Jg7LJhOOX{@<86UbP?tpzFh&Y^`$=4 zQ#4@YGeRoq{#g~Vwo&n9O=ychGA83*QQFPU|2Rg-_sK9H&G}tpW%MWjkl?=5z)^Na zLfjK$l;M|GWxFdal?b3BLVvQCuAOq(~zDR^$?u=kg8TM=sP`PeKO#*$R8!r$3mD&6vdkuC&J zh%8LHBw1h@3+j>C_u2Y)Q14k5W%67CvSJc#$6{vn)^;MkZ~L_CBSRydfjmBhY?tPw zo=b}*OQ0UtGAbiE&qh-56wq?dU%v)7&7oC`b1t@(@BCZ$4A~nlwyQU)RAOC-H)`?>d zYZQKGxP5lr&`kM?UxLdqQx(>&U;WQ6h0?;xJ$KNQL>OSThIfw&9Q>1X%1n(LoQoLq zEhTBLO^sYjC->U?Me8UDGvjHZoYn3&%EDFshzW`HO2qwEq#(h~Z;wnz!6XwRaZ6d* z1yS@4t5MU5EDf6eJLS$Nwe!0_FN#QM80y0ju@sqkR&&+Uu_Ang13v5;-v5tB)b^b6 zeuj>2V;SQ|gw3I8ewpw_LwiEJ_X8<}zcu*n0ri!^Z)F7xZArlr==ot;p!)lQ@&!46{w4pPWxgAp?N@k6*AwLQV&Mhvj)^B zA#44n=~M%mDs z0&cjMH<36(Kn7rGgYE-bAt02C7BeJ&+aSSXngHumhkqFW_D@o-B#GnDyMg>*h^@uW zw-9NPu&5Xf#vYj%kM_!l?FW+5wRl$QK}vyGD8TR@g`TK z?5<&G7RE@eHHW0QXi^<&v1g@!KP+e!t7KV%$Zb@>g+$K z;#ig51`7yqb+ivhQ~7-jX!04R3@h{V8a{f1`LlP7@(Q)u7CXv6@3JnXHo?Q&OZ|r* zq(PhMJ#c5FD1~*xq(vAk^OzB5h19~?vj)UFQTl1~#w-oLenXRoO4&VOXj=k8yej2< zlS@e6H$29;x?WkkLsii^F9J$yO9AC6ScjFMZ6X<$mMS3wC>8FgNOh?=_qfvIGGuzn zEV~h4VEIOQV&FN6bNV2Y>0Ho>am+FSBjiZn%IWcmn=OAK2B#=M*XW2ex%z@wA}Xmf zJL``+&Fr-HK|p-aT$)I|OdQA$vnP!e>Jv7Mzrv8h=4y_Ah}2bs^;oofAvR$D1wbXN zttB`Y1CSq5fZ((&Jj@p)cDYP!iy` z*4YHoP|Ok3BP@)Od3Z>MoAzTfq>Lo{?m8=BCHW<7e}BR+34E9FO(Y?gFP^VNF_%3C zK!)DZO2t7_F{5!xnn7k*AQaiO$Pa@&myEu;ihEW8q!2UH_LhM%R;VFM z=SRVBa^#_|#pqRE*@hr{?L0)dl~-A1Bpu@t7i_fh2pT7x#+*vdyF6s+*6oB+6Xk#@ zD|aHEI7eZfj*+JB_hFSelLRV`c=-3sr@P|3RF?4^8N7Kar9n;LjRt*;#aY>na)X zE$U+L$)v8_{%_opmD_E65EOU{>zYucJhCFY?r^w4NGQi;djk{}UqkC6C&0|t%hrXi zDsqGk;YzPysV38X?>-_nw7dx49etspY!6kt#TAXoh1Xbm^=)aBqG>OW`_rkfZd3l{)PHx&0V$jjBpJDJ@PE~PEmvfok7k7DuQU2^B_u+d ze}8(Ob2_34i-U#=Cjt}E>P=>n^9467I8GQ$Ns#I0abG1>LYhqN?wFN=S=~GM>gd0h zE*#I8LlO8e5ELxH@4 z^%%b_=4pzY74lrCDIq*8Nwbjl8483t{@68%^H*mzVV4vSVahx((B3EUst2S&rPP$D z{n6|R*5kfI`xEJb0^K-Lh~r+Hz}Q~qsI^#_X3fX@FoPTU?oX3T3PPy zgNTSK0S|z+bSqlQYGp1K^EaAj7}2vHO_b6rv9BJ(1;5^r?M5E{q=NjSA%75 zI&6b`)ZQIviqqhMx_k}Y4UY+lSP7VeE>HY>Gs6_Mu=4_3Ld>eaDbHhjWMS};3%Jn` zcxpXH?H}>c5h}$->F1ZqDmR*9z?P4hWZ;GuX)gv}AQ>kcR zBkeoObxlE^1Gt8N|BUrg{Ar{QHlYM@!?SLbPQLb>`2f$_48_hOk7iy);y{BY0CaC* zmK^&D`_*iaf*FwZ_f9l@R~T+No?(&xz0%xHzZpB1q)Vur46095$aKQuSpvq3ML$N| z{lbz>GtD<po?}(5Lt~dKw=#asYZrB3^{)_mKnMrAMH9=wq27}PL8J8cIKT6 z7tGZ;ogjJ&`&$p{%T8(e6_prBp16iN%fg)JuQcK|eqq=|)ctoDJ`v`s-zfl<#*n+05DmsulW1^YGvgCp#1g#WW)L_LDe#iu&ta&+noQ6V9j-9 zKSp!@+sGx9H)Z6Tg)+VK@XqnB;X;9h$oKG2pK5pvnYD#p(KUBP`&=p5LEh0x*`19Ra5u%cWd!TcZY`T^kW)&`y>JOIe;hOGhp#hWf zG}_I3$Oc=ihO6~RalOktiJWo4CeBa;uc-cIhPH2w5%7s%1t=aio79|!$a4brt?7He zlPmkhKTM(QtIQ^Z(NeH!Z5nhjkUE=IISXK0g$i9p2*mXR10a5j#T#w4d059RWYwGq z4ZnjwJBf66hB{&ua6%htZ~+!3kF_-NB=sq5vuZs^vS_YDmlX{Qy)1snWM=(YlR4uD zR7!`DdvQ<0Z;7V))+keZsjw*M)`gtsH|Y@gQ=%1=p&;Jl;!GvS(g@)d>j-MSl$$M~ zNn{FbXSN&1Xn7wUWhxKhU4GF%+Y@iP@P{$yKN$i6u_xwp<0R|{C^7z8$ha@IH?S>e zuf-X{Q}+*HU3pVjHp9BY$=OvRm&9fzq0X)f5d^@GPbTG9d8F{Y|KKQ9c?esx?0pcZ z#JaLL1Yst_V-k+(j{VTcz~2=QjqY&qh|jbjIHLa`>?131DLUfJ<*1t?9%Tpy7o_wO z5|6Un?_x)(3&asKwU8OgK;V)ivYZ`B<_CHqVeMI>bfyyaK1YiXVswNvf|{%aVgnkH z|59M|fI391O)`zXoH(A8`0I4dQ_tzk%53dSzpcOapq9=dcFZGZeaKz51_ZxUWdq()nv zpjAxotPt9g`8^KI-Ab(1@DOy&g2aP=s1Op5OjqnAaae@yiabiung~~Qhea>#JIc4G z_e=+LAEYadalz7=FAExK6^#v)6*<|j=#@Vl(1*)hLQIPJ4J`I9T=<}dsiOcXKUM&@ zfn=_Nffj(E39zno6;`T^dd$Os={8xZB{`qK2(N*ICfZhR&QYNYnb_#)68SHqqC$QA zo7ai~oEG6J2upvv651g-9c=OrB%O?5r_RGn2@jyfPg1bK_5mAejb=l*+;*H4{SA0X zYL$@88WlLtO~jrD`Xc`QJW=||gQfP7tgi+921v_=s0KanUH5`ZrAr=Go?#?*!bR+u zLH9;Lp{JDCfQMQC@lIn3kd2`yK)OdkDmWP6E{>go4J`UMkW2tKxZbF)q#b?hJS@{k zewX7i)$`}cbAeu1mP$3SAJm+fm*txz7!gaV$WOar+p5IVhS51CijB%JV1X?3D6)+s$wFBe z#1>i`)sPu&+0#)MZCOFq$oNJg97{kLQKX4}GVALBE7~mh2J?2H!z+epY#ApAyYqQ zk^wLgDytKrYDUgL=k#TStyId5)xF0~L7P!|95I<9FUGou+uCM_J@z8RPtxGg=pc`J z6CkIR)PF&UC+IcM9YG2jHetV^>1%y{SK;*G+=s#sn>f)}Y!~mj=*Il*{qO3&PuR!> z3fl;Dn^GtnY3EBs;Pe9!G$a?ukU~)E0>%+}xWjEkqdKH5(Dro z!#;M3iiD&iY3l|U67G8PZG=-|S;hB1nsQqOR{M0lW?V}AJ^NzBkdCWvhJL9S~>B5VjFj6jx4^i1b!OO3qA>J>^{ zn>;uYo#PT9YWRQ@^8qn8Khb#{E9!nEB~lwNZer7WQrVQB*K7Its@g;*yrbpC;yih- zekx@5Ruk$D&x?PA0mT*ebp@2to!=JGtYXzuiC2NHlelKl8afXn^Q;T&dVz;|9?vi&u>?#VVB|0-;;>2Pko(jYMCUZ$S&IAArPmDA(0r z#@f?9h~hy?&Lfy|%^l0iI~{|D>THsgClXnMrKk;^GW;6C@y~sz(fLn`Li{}p`p@HY zTB#=~u9hpBz6v9D@GIgFAoS@RM_*=`=gMurL`DhBJFfQjpY7yZjc-a?XZ4ZNLexmD zaW@xZ3co4tS6D=3oT>^DdNyo`g))Xsw!5irc~Bl)u7?3*?~pBgMd#K0vPPO=d}?1L zR3|;b)JtCyw!wMJQI4t=vqJ6XDCgkEOHiC;IO~P?8!7{jN*AVSGeum&z;glOb;~i< z;otcKEvxl7(!JwlLzJa(x(-&vgXdQaFLz)ZSTM5NA6L%Z*m<~_j7EcoHcyMOtP%bk zeFiLFSeJt>k>c!#T1PWPs~(AqFTj5+i`qgvAG(y2hOL&vVkr-)Te0L2I>?GAPW&YA zyAVOG$jJzJF`L=7smR$Gv%72bTd@I;+;cjMCmNXczE5xqz!;K+W(F1YZDAw>q9>ZV zLRN9rc4h?0sE$3FEQf-FC!!@=CNSQIxp}$S;FxS!)@G<933Vq0x=2Ps$ml@I&ZZ-gUBxQD;kDl-XzmE14rwbV@A8zxMB`K#9fmdD&y{YG_7OBu zg{-bi?tx+HMS$-}?5Q-j+ZTacAXSK#v7Y2JsNF*6iPBoWB!CE>q_+O^Idfn<79b}m zl}^@@hCHF|;P-!mSYs0PnffmK0d4}}+ik@nDq|cvg!`-^0?elR!xY{1SGJ^5;mnCw zliXDM8TLP4GMA0H`9B?U!lU|Bw+ao8VIkIy9KvThey$sKn_mY-LjIwLqD}F$P!Uqt zLwGQv7rBd(0du%u3kY#q#$L-N5;q+uPLKytQ|wEZUGq@!sj*D*g~bsM7E4jOzwopf z@^Gz@-bJqLL99qKgaR-v^1DKh>v;2dNM9i8u8SSajAsEi#$SsrK;yNH$p-}dZ7_^8 zJ4NkMjCl>6>0)^7H%6?pDeFjIE}EdnJ$+Ugua=9VbDy~S(Mjg33yGiGZ;kviEDGk zI6s+up@gFbrpC|NK|gg{G5i<$P96~5FW znH$)O<7l$onN|^7w`N0(6x4J94Cy#LF+$$om-t~2{tR)(x_GI^BQX7uYzWC%P5M%K z0`WSLOGqhn3Q~ZZ19qjy6h7tram-80F`c5fgT+0}4`!Z&tz{`TkJYz7mVz4ZJvWs9 zkxlU6Vc$DBy$6iqEGdIhW#-1$9au+;Cd8=NVr#t!sb(ZDtyCgwDgH1#eip+banj{K z$(Cg4!kG-4SDS~aAtXmJH_a}=Lkx$*d7cbQG;V`VVltviLu#Oj=kUSopXwIa#!CV5 zfXL1w#R_AYijh*{TG%7w%k+mb;<26mydn`X^cAxJcLqt{b#B{unI8S15x| znbf*>O3ClRGSb{PP+ZTYDld%p(E(J>vr~}Edc&Q>0U+YgteFK%4JsOz(C8v>6z5JJ z%<#?f{hBSd)5(tr1;)z#eTBdO>F%KW{ey+_q! zEyhHP1+bhF@R)r4F@y|f16WecmADU(c?h>fnX1LPL|onDABacz7u!Y)E%G&p@AHs! zm=E#D88WHiIl=(|sfb2ch^cSZ>Q|O!JfuQjDxMzgTSc9c{qiAXy?oub)6{(LPan-? zlZ}}kRlY~_RvwWE)))r*N2JAH5|W__1^5YK6FU`Yz6aT!M1;kh$wgpjHqchHK7dk# z2p?e7o$Vgn3QsG6BBZ#VaBqzdUnep-l?}}x+r9|1kWUyA3F}t(F)I;clrjXZg&R>9 z(I&8H^Xm|WP<}*(z%a}5x0BI6FcgiBRyrR=w2clg`umz{1r}@P?{l7Rd{k0;qE3s` zRw}z;e3TIhz=VlH$>;Ag3Nap{{ef!7kqm1(xeN?|XvBt0DbK~fe*$hB2w!(R_B{~C zC*OFCD}iY${I!sS`renBL4HCgXqBE?vOi!R=L<=qaB{GT^8fj#<%%ZYVd=*vti+j5 zE)vQMB#NHEE1;j@?Dk+jZJmBKg_ZD9L4j$)D*U(tgHcHV2mpuV-^(Vy&M$tTSZRE; ziO2>4GWJ(M#2~V~0(>8P4+Ar7+k zm(L~?gMHIpMp=uuBe9DnvV%@Ei|C*d#^{m^6FiS2y-tVGo~yAh?YQ;_d0<(^Sn8+*;M z1WGxgWpr|=Ag4hSW+K25CM31WDjCbXF_S-Y%K4TS^2K=AoO1fJ36hgWA$ZlhC71Tc zhhbVb&H+=2KncU&9yvsRs7zCt!flD(yu#vt2Z6F0k3Ay`4cd;(pl|=Okz#S5u)Jdv zohSBLr(&sW}B#5leCY1VbOm8Um*DM*R30^2?_*blRd1I-f z)#(%>qf*JRLGPmeK+3-!w+_2vty$;!FQW^+QLX2k*eqEb`(^0DMk}!idJY~}PcK)O zs-Ky(b@iD17%AZfa4lwca9XV^n7L3DIxgiMghu{y73z0lPa=da~5M z^N?tC!X7X7*k_pP>8+XZX-^}MKh_UG$rAnmQ;rZn_|I=6rJlf>hXTHx1E--S2pD_a z1?g1zE{sF5(auvcr?dTmhJc-SLFW-c95ks*5UH4=x z_;#uqL@u~tx;dUzXd--QQ2fcU!7NI>4qH1$2v~o7I;MLOnnHnw-~5|c%i=M3FDn^3 z2#T{A^#~`cM$X6Z(qRoHHu&%A)6x)Jdf-InTRDCeI4A$5MIQbbp@AdpOs0XgDpa`m zGa`==S^NnoqJ$?JyMwX)kNhp#h!*OqJ+c|~*ieRxy-qs~KsLx6HxVG4{YoUadqi2T@sPURYZGhkcPsP1g0~i5H+wGY`w+IO z)_aDx2kSz$_rZSbr-^@eQes$Yc-Oy1p`DLc_3)lyxjUi;5eEYcsp%f4)nj*H-@{tv z#;{G*eb?7tW>a)=q{L)p4~*G5dM)_9MO!D7gei-;5)!ID_o_E72^0Lm^)D)2(O5bq zmCeZ#VCiXD&~z9kxm11PN)2P%{*9%w@sIFn&$?k7w-FXqk9=@kvl2U7c&tHL#D?+3 ze($RQI%CZ`g(!Iaa6IQb3q0pq54%$kA=DeanJgcJT?w%PXKT$A-B_<;&~%Nc>;^=u zb_!U{V78oSo@68hV|b4Ki=xFaw4~=ba)0!mVKaC5C~B9s?CMieLLvKkSkBkP3un3%+ULbSjJ=fwST3>w#Uf)1VVskU!HM&&_R#sWq@aKX70`8==J z>6c&)QJbv~OjKqwmf!yD8?OvUpUkH4=;O2^e-gs#YKx`5W+m;(h|T)C0SBwXh@t3l zbO_~xsXqg;8kZa+mGlsKgXh^q9g$BzJ5>tb@t$FYPt*Ku?o4Ul`{Z~77O)L&JuuMs z;fGB^izww<+Qs1$CXxUrs!6fVDL8+!{iF!766=vN77C5l{Zbii(kW`U~(K16QK?CUw))eW4DAr)GHf$-SsxzI;M0n|i!O?uG}Z zvJsM@L>SP>9q8W@$`I`DUkX#3-9+mdho3UsV3sMsTslUr35q6OG6T76YRU92uC|S` zmPt7NJ<2haOut|Ax613aF|}+0hX9Rpnc4G`_lLeeM#~==Y%tiSomn#PCtRp z8=)rs>=i@!9>f|=XKh0>aDXf^Nsno8GzX&9Tzw3?7C&@XbaX=6$7-D{)kZ(cM8+Xl6Q#WVU)>2_cTf65G=D+`*#W z5KWvj52+sOTXHWv_(-GiWD&G=C#c>G<{S?h`5T+CM3;*h7D&OqKT|UfL^V&&G%dRS z0>Q2Ir}UD|)nkt1)Xg{~&L1V;bnT7hMx)7)i;(GB4@w}%EIA`f8sD4M9w4jO6}!D^Ih;dBIBO3a?En6k<+9RbqigMW~FMxMid}fky@Rr@NiRGfwYUNKYK21n^!@jx(uFE z`yW;guN>2d%MDl8;ff2l8iDJjJlHG}yq@yf%taG)%oxr9=5*MQ^4u-;9GIa`defHEVMHAcN&>#4?4sb&@7 zh`JvtosXvfT!y~&;1XTVE{46x0X{~;gNB)BP&g2NM8iz{{8cvkMxV2YV#69Gj(%u- zA?twGFkhtar>hAUz?)E4!9Un&}70|8%oGu1tjD1&&>_A^1 zm6a9pK?;3^Nm<^5renSv!LT|o1ij5T9nk0c=x^e?{VOe3mK;1m&kA4=|Di<#&mx)u zmvsjCn5J5Euc_v;B@wljmB}o$3Q~wyEePdzdqV&f^+*7mVL)!uR)=i%J~O%`NRew2@cvtQCefsChtvYcmhaH*{Ok3Qmj64VSR-5?eGTr1PBDdpgd zGlTZe@UolIB=uvha5uQ3%;tW=?et0WJ^HqspXOP1E}2L`8o#P_XWyMF^vyU>Rw+S# zkR$k|UU(^nFb~#8;EuH|z9WS)7M^92;mG_di8FHrej&A9b76Oe(=VJo_5b|hfdOJE z?My!d{sV1nc?ic;V2j%LZ`XEja*j~{?5T9iNv1vWSD*iWO+)c2{{*bKJyO=ca!6q2 zeQp00`)90v*T<6#*9YL;e#g*7-rV9@eYW!k^(SrPa=_ol~j1 zvVPAD@z1`MS0(Abf|XIl3@Nkm1R~gHw1Kmk;#n3!b!YQyeb2xy?fcqs*hiMoayr<_2WJ3(!}Jd~LH9Qv@4E=wAi&^t-KNtqpICt&Ey7IWs<|xR z5`x?R^rD5TlYbxVsk{SM>J;Psryv#kS)yD=5F-%$Cf6CC!VCt0PA+tR!}9-jz@BbWB7Ijv*f!z`J-Gd`Ax0;+Eo$88*8o+3rSj@h)E|Q)#kN zB*$K;1Ruq(fr7ViZ320VOYTTNgx9S*@Dk5(L(fakWXK**soFi(2> zN7hG1jXfwc8{j}S)FT$I&+CaWhcvxb!|&C^!3w^yLbY&RD8plQmK=F?uKn>+ouvk>6M%ddOM1X-CBOZlwmlu| za?swVbr0E_b7l<)s~n@qSRCLVteOG76}LchIEf(Pxlk(LKTsS<1U@L!2y9iI297tfp)-INj)Yw_ zV4Mp9o!+r1V)#CP16EHgoP9Q|hFwIkBu6AeuN8!M-J`!fg`(CLQb9NrgrFT^7sKQs z;bsPPsXfM~th43=v=TSFyoMJ{khe@g3S@DD%@~+Ek_#S8-ypDhFKhcPQMBOeigVRE zHf8LS_9uN(T8kE#2g+MMqiWaVE16(d|B#HUwBHWa%fcdQ{hnUmjD6bJ*a9CcJW5P^ zrbd8F*G%$AQ*aoKrtUowBWtih=tvWjiO?`RjUP>24 z2RL)31Za8iJC@;^hA4gG*C7E0ND9z$P5Q2(>d`KFvz9fRz+g{HGzATk($VD1AU2~= z(wIz6<{g~Ou8c@&e>HM4j%-3V9e`gSM%p~y?a}rRq3^Zv+Ha3!V^Dym7fhvx9++a& zKjGAIDurHMZ=m;qO$1~prT>aPT2**mpi=I68Y|@+8dJ#e)RE)yk1}zW!~;@Iu1IqM z@0qm!d&%m^HRx1Su=5j|E!*!e6-xTIVdpz9;lzO~cS&Dn5G0|f{SH1j5)B%Pt^On` zvWwwNk^v^L0&;F_RMG@6VZYSyeGuR=Y8b0$nE{R?+yyMlZ6>A5S0GkwZBXzuQSr%Y zoTQ|ljtCPR!R~9-jBJ4RpD2qlU~AN9+~azU^7voo{IBaM;0tVgp-GV z3?Z0;dr-u<07<*BOr>eXTq(2Z5G)MTMe=+)0>wbP65iEMjdjW2GtewqGBTEpKqi2T zN&7q_(N>FW5p0{8TwT~hG?!Dy zasGrkqjhlN-(#>1i1aQ3`cYbpbs(=Q#4P^noQ+w+QtTSDNN6DL(5=X>Havz@&4=yh zAehW*;VYRHpxV6hnub}7jf4nwzfLmEK=NJ}*q*HJ zZY2EvnWbSj#y#i_wD8)k(F#~Szp{;vMS?!c1kJK6VRAK2R6U$5hMK-`b4!?;w>)=WGyQ_@ev z+6*CzJt28lm6X{SZx}^rrU2I<5TFm3PDM81_>I0d+@lWkVDIHTd*~M|Md+18E8)b3eK`D|hHK`+iuTP^+{IaA!$qtFd1jU2*XaqhNW&V}#^zJ=B!$s6 zLTyZ+#(lq8(ESOg0&y!@M~A3PXYqd6O;7DMU&C*t6~YV&YzoCw^c>0>hqDc0-Fg9YyGs`_FWb>{*p5F6+ zu0AK*Qcvz9nfaS(UQ}8JuNNbB7IF~(ff9;7@CX@`_5oVeiX* zuPp744+E5iUv5i=sBsDVvXWoLyPW~D3Z2>;SnRIhM7!|8+4>K(XpsqaV#i{WRbs#x*aD0oJs#?1+{GGbg%`_m^gKDg#rT4=Wd=n@#O(cL^=y!!jU+iO zv4mC%XgCgI)uWBo6F0uTwmsi`2rM>xtZdc% zcFzdmQPvA@C^7ig-Ld;W>fGWK%nd3M+a76}ryd@@2UDd)Hv4yU8*`3o^KdfLTq&9O z6BDPs#rj*DdSv0!@}&kWN)^Ft;>f$=!X%aC=QC$wrdX#ZBS2EYVmA7Wg)y1#te+k# zg4!d>E?YHw_c4P8Wgr~NS#p_UE1o7hFenfdzVs~8k4)9nJgoY}1Z9}_|8HO*&3k87 zr#bsKdPSYT%vvlY?|i`I?5SS84Zh(pccpaj7DNXf60z*tyKBYdF%F}t`)mlES(m3l z-&51_>!ppiU2b!4DCG8xH12|LrP~L#V(SHDO+=Z9bE9Q4Ey2?_+2VVaTzaUGg{R`= z166FNdV8;rRgY^y)`S=d;Uvd7tKy3kkC8Z>1Mp2sIl8l=8q~cTvTrQRIef+tdA!!F zt!uk~b&KfBpzAiiw5xl5YvvB>WU8)27Nud2 zYuNWN>FR)|Klf&S_QMgea01_OsPTf>>By7-NH}30wyoG>(fV<>Hox2d1{JK<KX9eLxqod7df-DZ7n`i=Hp zfK@j5M%Cae544S?`ipkbSMRi?v=*37HRdu$z$sm?#;9wfpQE(Myh!s9Arf(w`w&pK zfw)D>Y=<)c4y3T!D&HnKujp+57r1gc4{kHS&|RIm-<9VsNXX2GK%nx7I$$%>dJHm z38i4zFvJ7x$&21J^Re(|p#2SQI=%Q}fXa$BQdWe=`O0{moaA*Jga9knh)Nv8+G1Q- zJZ?{e!+h3$s3UplqvY+oSZAR_^_A){q66-Lu{wN3rJ~}Ooid_LSg&!2BXjS<2N#t= zlA|OouQR^K7M=qm%e6nOoHhfUUId%GsnlDBuZfJ9Pv5Kak%xm!Rer!r6?(2> z%^2TI>!uIKymd2nzu)6hvy^hS{&ZGc zHwT-|H>Q0jV|9Srp})pJ)Y$Vw7T)myl+h<+X$SrD9C+Px9yl~nP}DK0Z{D+jNa_o( zh-K57T#7uNqYkcb?yaq6oz85cnq)$AhF>4@0?d+d^$Swn?rE}TV5&Gj#Cw;kQ#v+s z!+<|wjXTh>yPA$ipUX%31mfHlKtMx4cMEqQY@(&VG=!#wB-`TvisF9EA* zZTnx9M3j?8WH{SUkt3O+s9r@vk|<+Egbbl1p^XzMa`tIBMI}Rskf~FNHldJkjuJ{6 z2}On|DfPdf=e}3Ycm1F1yT0rD-dB6Cz1Fkt=N^88jm8_Fw12x#98q1QB4@;!%KaF* zripA~_!g0%1cbVRxi_~xC6=ZuVy6eTK^cs?a!O4FV@}2EprRU}@=bsirljiDV2B+;dgR^xCe;Of0U9Vwva@w%`}QZGgxOOb zouVabE!2j@2e!k}&SMFRREVOr6PRH56ohHPulogXo5JSKcka&1UIbvws`6mOMurz4 zMig}96=n10vt^G!a}60%R0_=)#ZR$7B0cTtf3m+z91$ds}k9aK|OG$im>7_a*K|-Qmspp!MkvTRqb@F0wHDnK3_vkM+u^i z6G`8m8Th47&Dp7(ac5rsh%;*+CaOtUZ^Uy1!X6#Dt1sC4swmE+NA(muC;!Ins~4w` z7Jo|Ni?0e^f;~(us_%(1auVvVW4kuj1)Dgg!Mn#F!zPU$T81kcf02ImJJj7~D}u6(MbVgOhv`@7B1*kz&3XbUWUePLqUt}! zGSL56Uimqlht!pdDj*j2Kwa)DFky{`kU1(RP`Q4m$|NBTSOGR$vrrd5hNQV5+439J z#`u6Qyk@AhboADfuH5~~*XT0`Db$?F{`X*VoZIinT^=FEtDw(wQn_Pn#g@acSIW9M z!GthBAt!HLZ^0K*7-!GIsE1YC^n@m_py#Az`Ffav@UgH*2-t z-&)ZFCBK_rd`IB!%V`k0auIxIqRRyap<^lyzS?f8Py)FAWcf$Aa_JdP#+p|P16X$w z`)s^%A?VN8h22|CP|&vZo;||4OwCcefcZF^7RoBB8Z?CZodF*F;}lnLcw-!ZKw=<7 zDYlq}1AHdxm3mn7!fbRID;&~iw)@S*0(7)$VNyBZb zQvJO$zplI=dZW%zx(z1GiYxJfCGke)Fq^Eq0VY$W32+C~4h1Wud-` z^P9_EZgaHYpw{pXFjO+@oM&c75rjCFN%w>@OW1RnK8U^_t2#pAP#C&Boh>uS)Pz>@ zdP)T?WhSWXLXc>^Ai|ldFE2etk_q0GTsT^X(lq-*>(?lF5a^ifiTkXwb@Ul*f!cAe z-e()er=qKDxUY~tVs~?UL;ad-g1S1yg-fwyIbp+=6pqBS=g9hE6siQbRcxJh!8HG{ zOI6P+NcV{^KsKOvz-gxhTpt5d$^k(N|KSh;9rzVmU;xIEg}|E)d^J{P1-U zHS4TaD`f^kAyd0=@zv2g_5Y~DehBCQMKojJGV*s^mwff^#eko21!2IHdU>A}Kh zep0-86_WG?A6=u-nY*&*C^XUifUV#x3V1>obl=|COuHD~N_kQ@Q-2|IE=j+i5~1tR zgz)v_;vKqY%alz1a~4T2&j=~SA8kinky+O_oxV*>m#%(OI90xvM1?mXr3IqL8NxkB zTD=x*Y{{w?Pot*^Ixrd)eBWRX(%v*`R8W$#Ujv*IWoJ1Ut#bM>E4ffQh@6zXpz6RGm7?lcq3d>7tj3XjcP(|31Zq#KV%Z&u&vo$ z*;lw-lk5!dO%rN+fo?$ASv;)cnTU8*;&?%t>+>wsx7*mX=*3^sU9Rv&*_cFigl7bH z+~S+>{fp)P%p(}jigN3on17O?HA`JoPqN4Zg34a@Z<@(K)QIH$mzq)pmm}6#oBXBi5fWG5Y`GK~1-N85aTwX!u3prWA$E{eh*J9I*oFxyWUmXc{f&Z< z3LHLe?7|BF{*E6FRTTB?HH=;CxYBPi0gbgH$pec@bP@?I1enw3O!;^`6!n1i(jkpXWvptSHPBov2 z$Of?Lf~sJ6O9gG{_>`GIXQj0-ziV!()SQ7|nb8lW<>1XLD$JSuq|65NByTs5aYqep zxO92^rzDWJEF2Vvw9is!HGaRE_u^==PwQ`5!W*JaWkPcb9S|h@J9ioQaad}wBbari0d595pyY2 zc=M8jTNWCKd>7c~Z-!x8pekfOE2rwrb2Vq5mi&TNC7^sO9jsVBNoc*Us2wSUEP2*g z;4oDnOlpBti3N4Jva#@V4RS^Y&Ln|GkpiPCl(?b#RM>S+5sr70d`xIBU++G0%%BlC zI0P)H%`qB=BZ2MerpV`6sy5@`W%$;L=RZ8kFso13wWnEqY6lPMDajgjyGiO`@F7Cz zF|x-5accrt^~u{%oq7!1xL9xLO*BugOwVEDWszMEin?#DfQ6Bly&Z!%CiY3K??C>O zX@D~1<+VEQVn*QKO&Os9l6u=B=)h_Az}HOC7!J$91F=x^1m<~VH1*YS1j@q z?kjmVQS&-4y%~_Jg8MY`SRx&nb=`%hZa56-ag$X1`OOhK?L6n+duORqB~-nAXe{YM ztr`f52Qj_hT&~rY8%1r6I733*wqh0&$KmgI~29?AL6TYXH*3n3$GU?fjOA= z-gZLf{_cJYMT`a(Kwu{*-_k9_00An{F_vx{hJvH}Z)o2072dg_c)=nABq_x~ZsrgC zg^xZvTpZW*1qZ(0xYvt)%BIb1*?-$8SnMUzG$GlKpuWD(b8YF5J9wap!kk(7Ux8Y! z^pa23)0s5KAg#3LK^oE@xm#Lo!m2i2)K9nD$NQ)2l2!{oH+LdEJSmud9 z@O}_+vPdFvezRxXGjg*Vgp4A0+f>Unhvj+m#iv$Y205?2nUGK1>81m;_fQRW|R*~sG-G#&~%c} zlHEgR=(K7!$3IYKfIa{$&v@L);E+v%Guh@u<_9%T*q$*^)Cq4R! zzgO~{TD2w|>02^P8Dn1ek;g+*#!rGI&tXuKP06h31O@jCA8feX_V`6fC`X61#vR*0 zV!P`1j_g@E-0I-Raj8xudImy&HeRCY3ZW?Vtd!*5qYo}JAh;jv4?e~y--lROpK{s@ zM^QW~&#c$RHwSn2+6XW%A#`hiuRI76M?YnhO>%5R619kqSC#L>xpXfXiZI28P7}VJ zCsuwc$yD^?%&_s0?-V5?)J(f0FMRb0)3RZKiq!fk2E=I8tSDzE<5ZL$mS83?+Lqs& zC>^GNt=tZW5}IIj(oGzTKZJxEL$hw)2C}(^@MWQ0SEC6hO!L@v|8wUy5pS8KjW255 z>QaUU(aJfF?c{VsOhI@}Hk*R4JS*3JY+&ZFn;Yhn-aJc_A`4xnL{P6CQdsymAf6AM zxXmoDZx7s@qMZ*aq$=m%+08hCJ!YLOah9#@sX>!!ax%Sr%Mj``q%Q@wES>Z$O3=B0 zt?o&c*g44$f_rtT81ue?i-SG@bVxcvhpTHJYOE>k&*$3h?oE~UWv{zjS%ob)XnoAE z)y>X~`Wo=AVw&q3i$FaNoJ(NfFYVh6M|kjW6Hab?>)P|4W< z?vh#tmNYO_lkXF47=N0V2=6Me`PH9PFyA^*b-lJWj7r zN>HkKBCUhdz_1k4=;M$d`fda_La-$4NeW?3Zv^>|ftU|mT493k6AYC0s2iFY-O>C zn=PnHw=Ef+b@(B^xG*jhg70HW9F~TIY^wuGHnw*P*m6FBNK5T3Y$t&#siy`SiSBj4 zQ@(JWt|E+`3w%Esms!B-9Kn))E*{R?UJsIMt$}dX2N92sBtyxrZwDR_ zdm)0U&&3mPnL(Qzp|Ii>;(TpEwKw!G9iTt8>x7bDxa4hoNO1}Te)V1;*k%JwNmPpC zpHE`ukj(on@Iarp!7fMvZpx@~zsyebwX zw~aiAZc3UKUE${_k-|TIU=R2vV~5zN;QyY=ihBg#&NIMt7Gk02)YyB0GJMH*!!uiP zmnwej6v6(NZj0vlTO-^|8IXG>_krYF)3Z&fQ97czA!1~wLxShYDt<)FtNWe3_UeBI zsdm!V5#$;1ZbRdGLWAUYmW#*(XBO{9EPm+DoIaSqR?41#;d!q1DyXTytSS5S{*QlzFpVN^B%mH zrDriNzyYI0i2$TSo~uy=x__QKruBD2wOMCZgF3sIo`u5=d$(tC*BxG{YXH$NxepQJ z5i`JYn?5k7UcUmTad37^N09hAY($|pW^ta(%hWxcz4h?SGJB9)p93CXOn|(8`E~xz zKvz>b!q07l!U6)bCG=J-dXe52y}}G&>X(b87L7%?5r6|AuLwdh>ZvkRm;|dN;a&N< zdmK%;O9zMMe8Vu*KSbtt&V+9xNELgO|1bwGXyb%OBfH1+4`u1$IP}T12PZ93$d8F>uRFxo+2_yVpk)7izAyx`5ORR-jO*#=D4Rm>wp9T7oA0#7Lr&L@&H!mgj% zM#c_lQ7TM6E`9tv9TmfAh>AYo;mM?n(obW(bIq(UG=^dpIPRRKfrO~AO^C?5>+}VS zF?C~~=2R<5UzTDPWrxiQ0QZ#wyHp;TfKS8m2Jf-(_jD+zY$ePk^z@4EsMtVy|J0v~RRy(@StLm5 z^$xlG5>#6UQ+Da*^DElj8gd+`-2q8|gU}$Q*L2qM9hkNs*mQ8m`c^4-67sK3S}w># z(A;xG=XJx+zN$RNK8nD5c7=O-$3FND@2le7Zfn1D-TkcC-`|12GN3^vV=(44Cg@mI zSERvbGk0pvIv^-4>+pV6SNQx($gmTWQbPYgdAVZ74St};OTWyrN2^^ z77RK5Sm*%pCFd`d$ejWHT-I*AbalG)%0{u7M0cA2#Dz6 z?1oM)>{ndM3m&c5P&mjl`o%wUhpJAdwjG~g&8g8yP;kpa}SO*G=}LYsp>Znrunc> zyhtbLHxXD2=heqT^hag^)-aS(s5C?iOT><9O{tRuW;?Nj*N&-kLqvVaIbbWUf%Q-cqjR_!2Gd$*hDXuP^5yVhS`J`@IZ zon;+4f63MxjnMVh@Z$u0djuWRXaBs!EhKCT_GWfG=ZzwEz@$gw?i$^CxhFJR zIA}$8Hu6y5@cbAE=S>gqB&m|ZqHy}cs$HXir33&_gqoV|CU5gLYNPtM)fk^L3czp+ zTnPJpCZQ>-AxeTe@ix4y>Pr{x9b3H-!oKP9MqVLL zqfswE-b%`qp5Ab2=cz)X}Z=CGdPp@WVmf7kl^4M!m| zGLy^-DwcWq^;Z||ei@c><~A^A=2gYpJnqL8K59ePr80TfUQ>LE_t(ic($8(ZXc zUWN{-p!hI*!qy%)aTb{va;QUQZ!8o}IiP_GwTf+q!ZulHrKS{_@8TShhNmXPzHigu zG|+HIz$3gZo*Fbhg_=?*i^t05su}JjJsD9Q+FT7ZGm6&!Z_f3#E*{=^IEq9ks85CZ ztqmLGYtCwRDeX1hB*nmAc(VrEKLd-gE5}c`MihR-xk9>GCn0?`4c9c#PE&G_FYwTu zCAuz>8#;-p71VVR-)I z&A?k38uD5)^sl>_Qv-@nZ~j3%0MOPH^P5>)h#xlkPdr;;75&@-0A#)o@l^Wdtto}SsIc) zg6YDRkS)}-4__uo7cFw>uE->`m5fGi&;j&Y1@*YjA;hSpkVv}>6FXaIAgSIm?_Qj9 zDN1#oAYFHEQ*YPhgh3z=KmTLb5{W%xUxlvNGNO1?W&yq_fdp88YD7S`NhK|U3AAvs zmK418+Vx$_lYgPo5SqVz7Y#QM1PND~J+jM-kiViexhVPQ|7{o|wPlDvnc5GbEpVd+ zt!H&g6ZN=O!JsxVd=(3$aQL3PC}hG)&;bkJ#V_z_zRGRntV8TFgZ_E4cA;&c^8teImEgIndT$W>8x)sHA$PmF z<<@XkyN^dlLMXr2XTwsw5xbE~V2pnid4p1R@iF`PW2DNN9idB_bo0~)qBY>|J8ula^u4#UwZ z>M9_2U{AMk5c1A>&xv4etVod$b+2_Exf`v?ubZJ-tvzo#<+WeueX%zByEt{NJyVI`nj?KhMlr#8+^vpLrYoE3iT2i{r%p9fVTVH5zcc#t?+p6kOK`*iiG|^l4 z3S!2>NM>FFSjqb4^2dflmnZcbH8H4(uO988lPiSg=bX&O&A~7gBhXhdycr#4TTcO> zu+;d(R^@1}4}bC@buZabXeO5A@H^HGYq^hgN4J}lFLvKCT0NMYdqr`o`Vi60Ja+nP z2_jP^I5hOx^6P57FWGefzAF?HFUY-j;QKr*q}(I0ms|@Xsp?V$8EGLJ6Rz6EOQEVO zz}yo@h6XpumC;}Vx2sDipbjbuN$%6xavA|b4%f>R8!=B5jhT0N#h3o?SMZq`yfAN! z!U|amb&q~1=~&esZ?FExE8CfbfOCiJJM>qy$T@;Xn73^=82R|)T_3o3!SnMt3JFJ5 zi1Mb~M~EpsLLS)Nut{Y9gcr_plR&RIePZmc!H#5W$xaDTL?P_e?O&5#Zruh#XgX4& zo2Jqr45l?O07Fp;I|L}}_Hu@ov>%avW={xe?+l$*cJURvYZG1gOF75O_&GB^u-h7E+_MmSGENcJFqzszxWa27jdK1e=kb zz#GrA5UZTeCP26X`?2xQ89CF?!sAI}P@%T;I(!!JB*|1B;kPx^K#}bqw z=Z!3|evO~sxeRn@6~Dy={&bnJ*~w|U5B>-JL$*9S&Ecu#WJsXicsk7^cHuhqeXteF zw&D~nMMPAv?;~<3dme1fy^r%tNXKlBVPu*@UGAu2c{y~$YNbJcjv2%jhs=CZ#_yhz zrY)FFn?|^j+*XY|mC!k2Qx9P_%1X zUk=bEMNpB!^0Nfs$mBzT+U{Ji$tzkA?LG7o=CP1fsth_iRi?(dgbayQLkB zPAF;JvYs^6Rzq>GRErDv3$?Duisk60;YiYhJyfa}zTDy>Nr$#7#?>cD*`wV?~ZO;v913@H-~8bVCfH3Gv0* z_Kl6fB$C*gVzyf&^V3W?zGDWpry)p{jdpUu`xrbE^FCI7^_oXnGUl=Sz((ge*e8s? zgaDJ6@2E!T3)ft#y}%gn?B#`^ihGHo$S$lq%{p}}+IpzF=6kZ^wa1#D%~z&vIM|Ng znTGHHRUr_2Y2~*+j1YWmrfcl<$0n-DMQ;vzWk0GHOxE~clrfR5hH8Q%*&#R4Vzx#; zgwmbE5pWYx$u$w+q>=af^gn#fYIVT`u{H*@l42^>36UTLrnwj&t84Yo`L5@^pI0_% zrBM5bPEYC+K{qw>mRaBuq23f@Un<#ev>6_#OUJI|LF!(v_DzaDWS%C}_eJRo6P!>C zuvX3tBxEguo+L?prMX=j3NcOdIWa2OqskR^!s#wpVzHKoZnL091Nz7uJgM7A!(fng z-Ug$#OY2cd!1yb*h2VAeYbRPHQ4G-{>?Fj0zjpN83s97^AkEtXCWECH(d&77C6@Lq z^Xv=f0DmT`p#kj$)&67In(y7r=TuPA8XM>or%y)V7f0Nai`lpL%dx@TyY1Sp<$~%; z3VlRWfoI8%#Y=};J`zw(f>8~+!hZcAtg@AyoL(fz=MWHeMn8Tx{<_w^9{iowFQ!H! zX+^;MrU=`x6*nBe)RMITs010vFe-E4q8dQQd;PB?*qSMdqQjU-+V>>h8rBzLE0T$+ zU%ZTC>eB_-wYYg}In!+_RXv}41@lMtodv{!U`;w$(!R!=zV!;~Aw|Jy%;=hXsiqt4 zcy-gGe5f>6&ycM&S46-1KD!74$-=}XkAsX|P}SC82f3=qw~(2-y_bgk2{}9yFGRFn z8s+sAgmI%V=ZGeEAUn<8O#amiav%$HESpK~uI_52+Gu{EejiNLR!0xSN$cn^75R5M zRb`}7bDca>ok|Bx2+12T7zcH5`l?Sut#;Bb&Br~q=-PH_}{005&WNrYVk{V?^L5H_y@BIchD{dXv4LOE~&pOG4Ti!0=bKA929~wI!p! zqml&6^=yvd&ISH6{}hWuKfO18iN}VVol_Fi7MSETYy6P#ipS30I8+8`jqn*?T?V~j%TNn4tGQxBe-px# zPBGy(onm9sn{p(nU)V45)`ee2@jpz53_{2tUxBW>xOCV{?-A-CpQwI=84v94))$$D zApRpX4_RQqzfgKH-L{wXR5nV`+mTT%sEdKQfY(fs1k)x_%TqP}eeyZ(fr4iZwP>{_ zAIQ74Tt^c+uHRnn*d|hJh$=<~+0{;}!rwkwhinL>IjS?82*8rQ%%r1}>I2wP(x-z^ zpTORU^T?MGbf;vpS5G*kXXYRZNe}A%rstem0D`9c)BNlbfFe4C1ZQMemCXW)<1tRI zhiz0j;KBGSBTN8mLeku*>{&zc0ii#3yR8{Ik1fNAyo;XXf-{=5{mSXReL3)MPXRTL z&aVoGLu8M#Y#&=ETv6Fy(v?(4b%8@bJwMcn?R9~Fvh*u|MK>77pl=y_Cg%x;6QZ*L zy?O7B8K~a=aPIUzH~01iNwy7;wAUZQ9Gj@oA zqvvp-KqrW~(o6ZBB>W1DP1DAMr85cZ8lS`3)BI#N)$ND6HxMo_mAp7#IOz)Y5&Cxg zFP+`pcM6^#3Ktl2yPxQ%U}ebU-91(w75T zobN!`s`fTbDIX#Ni}}WuSuX%wBP<&)vCX0^)K*{vzu(VXgB?nN*A1VWAsKOKbr0!F zg(`*=9leo-Dt^PU-yQA16#|s+YSn7OSGKW|aOw}`hM-C!HB=)iI>Y$NVjuQ@W)htZ zepEetV~8*ElxHr-gPFrqlh9d4jG*1HA;#Wo)z#Q=)JNCL$riKsSdO2*C)Z!hJD3** zh!(*6Ed9zQ$3B*WegG^TWjul4fRt|}r*at>LNitg22Q_kaHUd?^l??MeIqRFh8{ zpZHZmybnjLA()Vn&GYANcO5pQ#eT|#NYfyy_#5~lITaaZnIXY9T*MpAQ2PJ=6yal9 zA$-Y@8l&#(?(Axrg#)Mg-fg~(f_m?^E%x(Zs+mfh}zsiqWabwa;&hUXo}YxPZ|@X!loDbM*k zycpCX>pMI2mNQOE)SX=Cv;;>`dZQ6z1TP}{QnsY$ccG775CKTbmnCnD-vvZSUL?`&eIb6wN^5$9TTI9i*_7(auv0328}@dw~u|=2_ZKh+4C>v zZ?UxXD2Su(iW@tNtA<#GUIfE{^?u?z!_{3u(_Zil-e60=H8h}u@XZ(Tj}l}O9G~qu z!`%|(`qVBW4AJ-^c8#De5i%kkRPZlMPKV~ZyaIE#r=s{1?5UMH#hL@G*qWD$M##_D z$++U@qlM@p1TMj0#xJ9>YPOjD9%Slz+Myw#3yJwTOkisVG@U)0eqQpeRY0LNz5Ew7 z1c&??%hm+1_e7qxKaSSs$*;Cd2Vj@cBx-KUsBIqQI8?2apQ73!I}c0G;2=gubA>X& z&THiv;}h=-3waOPt>H4W8js;P}&k#jr zj<&@<_PkVm329G_80e%a{hl3SCGeVI}TUG zsR=dT5fY&l7mvJlF3KqtU6~HRKv2CCw2#Ql{mXT4Wn14E4>#iw!B6+RFgwG!zS>{kp{%oXj1rsQ>HF`in(4l zto{OyT|F?})i(qCxh7xFgmBTLzu>J`Y%1J125VM$%xo#b3Io(KZmCFniJUNO2N$|6 zoNGJ%)FgklE{J?>_z2-N^ugIGxd!&yo;?;Y_X>~AGb?fb9ZWCTb13_d#Xf8e8o><9 zx3~W!RTeTpW0wCNFAO|;6n50FDlf)4vrY+U_~@U*l+~#c1#=m>!}G;|s|nA!lsWzs z<-G|)@%n$#d6$YCb1wWe`GKL&u?Aq$5kl!vF;B;8?WK1BD4b-RLpjhC5w>Ut$?hUe zA!DaL-ek|gEB;Uuo{mJ%mxu%$XbcYu4L$V4vGCGywa!c@MxYrw>>N%a(vA_O=gD zqKF&)o%2awbb`Go1coQx<=@Qnc%ezOvLX%3gtQF3@M>jB+y}n;z}ApIIimL%)Z7Xu zJXy#g8p;;ft@3eu42Cij7s?NGN+3*rABU06cmxd!=b>R3oT5Ulo=5I~um6^n;vr@n z>jDF84A18wmIPc{u5GTE-Ei>h&c3JGd^%SsT^8$ z(F2@l>Eq7y_`Z4zex@j#CAnu+$Dm|=*J9Uhx_iao@M=r&pkvtad-a9UEdI(PYL)mNQyJ+VyeksPrX~ST2 zY4+jt0<@_c-67zZ@rl(h?*&dDl%f-oCdfa5w>AH_IyxoY1bNnOG#Qp4KGE>*3+sc& zTeNErwHIE;@??`yE!gsF2hAnLJW&^kAp4h2wsy4tdLRdl@_GeM2hW*ok!#2QPKcD7 zXMsZ<#Il#Q)sXxC*eSk)I0>Br@1XQI#4d}5qH-;0U++bHuD+l3S zsU7~kThYksji|{v^8^ZuY2V_Vq2fe!!E+GNy=8caw;dg&L+*^(?t%#x+a)VPK^4d= zEDb+Ff>um>>rPFyoH~6o(Qu2gbXqs6gP=G=UXY{!FChiWy0Lxu&y@!MMb2d0&SPhg zE|^HcKx+ohSa%WTNJ0(Jy0nRw&2LtJ-T4#j|FNM^f8w28%UK+OB^_)2=pdWuh2*cj zKg%11+J_t2TIOjj>a=sn2_N)5Bsqdf>``A1)p zoa@>fwVNC_Gey=-AGfkSAG{9f4`R~v?g6+G0I&y~6$JUSO~_C^>wr2RFAt=x&pb4S zSFE#BIg#1SrcJySF6nt_SAH>NgGyl3*>Ek#d?6B`x=!M-6~D4;Po9TYKj#?21T`gK z8a;2~w&_BqTN;2~YImk2>xt9vhrRt@4_vA_!}T7vvK)yh${y&u`FKo<=~6E?tWm#) z)0Tmv1aJ1gI#zklni`1Co{InVoJvge!Bq`PaN@zD7-;A5Opp+kr!}&WMx-oU#1?c@ zgi=eQAjsLWkr6AR<HOx(%AFJ|<{HVsO9fAn}Slv?^c5&GZG z1{? z4G-R=<3riiM)oKhoi{5u;LiMBjw3)4FQ~4H?7G>3nlP1owYzeYc^?DNv*+t64aZDw zcsmPHO`M`gaPT0(rt+2dr+uH!o4ztDcup$DxtVPW!K{(n-bPL1I{$YB@QkG>n4{m3BhoLV zbbG4zB%&Id3Mup)WNo5L0LzDNA^#zN=Vil7t@nyg#>C14C+kn0yiQ#{j(Cu7i)23~ zk-qtEI)E|k?{)aSEF+S8pop3t*^veuyX6xXxLPlRjI~mcQ!=X`zC8`Ap=JmnK2uk0 zpAB#8jlMsQfj>qxU1|?x0Ho_nNW?gd#)02UE_J$meB{KjBJ#9q(c%`ujLfxT1*&2Nc7gUYyYb zh84m=Yit3%_TT=ppL_ZEtPle{0q#Di2>s!uEI6BOP{KVkV8Bjg;oWTPg%ohvDZ^zg zIUm)1PwE#FV0*|pgx%|x>{Jz`0Wdq{k37!Z2n^DXFu}h+wp`i~^m>WyWPW+h zCkSQONJH9dO>(%(9a#6w>xTm|Y$M*_5|QkaL+>Fd%A^Dm+(`MnR!uaPClQrXf48i> zs9lV8oFRJ&&f-RkK)F2DgJ8=a5z_h$@e_GtUMqQfoNBEY^zqPlF(M`44*_Zof*s-o=+9FJ!bxDjqEzl=mt8Ot4ARI3<;pd!BJHjqb2v-4!475Ml zCHO5!1J&AutwHC;@ZEYzvA;rj(1~13bCOoy7lhY-hz^6KP$W|^^+UF5FmXb>kYh~ONt4+E z-)#7=%yT~^;{K9wvxspGxxKbj7@auA=SIWXhFq70?QOeje2GU*=yNJVA>>&6MXeGf ztc^3t4EZotzZhkp&bc6>_H=CpoUva#K}3|TqU`~2&xh@|=1L;=2wA9YEvgRw?Zh#( z*(59U^4!4!=szYxrUlEQO9}j}B2#?-E6HN_Lu*Cgqd?b*oMvQ9XwO$_%7VOGd_|YR zedSq)aobKT!A7`oz|WSIv=^bOZTYHd$iL*#JGVx=82D+7q-F;vs??#S+!e7b4c66o zP?aWOgCYfSWGq*(IfJ65P1dtF=i3KRO;0%7Lrr;VEM`YdLi#xS1GY*$uQa?CK?Q`bF3)VB0_)KkBhql7^nl_)n&dF_GWNlp&p$?dDS+#8bV#l0%`p?cVTLvvB=@MpEMfj z(bS&c@n5b*<^#GoWQHVP$hei${UtGiYnu;TS~)!tt@<9~131!@rvg6$+ZPd7M)hSW z9xUlLdM(1q(3Jh>o=-(Y@k72s#@!EidI*z*GkPNXKg1mnF*^z5L-PpdUqG}5pv`>W zPu8A|#a(OThuoFZFJq^%y2TG7(-0zZQ3Oct^A4dk>=t`^kO6S*f!1*_t81xKTnxGu zfRLoVpI_%{3c{*0Xil$1s$W5ht!lkCD3rJmA^TxvqwgGFor07sdxGh+Gb4QnZaoRo zy^32;N44JDRgGx?BMD1`W&G~lSPDR6SnuK+7fgd~DZe}yMN?O|K59L7d;uN+{`s&! zu80h1xOi9~SQ$JPlJnI_7a7*Yq4k5-+g1-(4-Ax!_)BJFFM1 z0~MGo+o3S%uGSwlt+@oUIvJ1;g~L#kDh)?u(Ykm{4(b(n7iSFQPO5g0u?dFTgU)@w z*Ag=QhbZj12=YXOLfZj|4`MAewiHfr+W+9_g#{k@&=uH`X>F?ct!m0gB0>dDfls_c zVsun+XKI6Vp^&T~eS6|rG-^A{M|HVwGK^W}Lje(LN_y^D+RRUatx`#y&7=2Do0Qw6+n$`_@ zzZM6eZzEN0jv;}3Rwai9#JIsNG@L<10zRMU%(RAKd3GX{a7xQ2p8->MNq~n;?Uy94qZu0PeMp!IYz9?JV)`J0uz%| zsvB`q+g$PW4FN1*tWLtypQoQBO(zAFai9%ns$RQky*jO>ktbu?TheMs=?1;g2Qe zAB-Dxu2B zP|e-4QtuHm694vUr^?nV{YO>hrNS2zO#19hf1J9+nocgwv!L9G+1(Y z<>P~plPD!@AFck1V2bvn`kZGLvFuLb=g?8R0ZpAg4p^M*9yxD-lhnQ9M`ZJrxmCJx zOV(`0fY#$CmSwRa#r=hv8pN#HQJ`ISsNsF^U^p^sy%lfBOXA^vBrb)MV^fQtQWL3t zh^&~L7LEnY4%+r){i@I_*fEVU|8VXeS2lqB)z1`@noI|NFdZVt#rK`?PhlHFucM5HidZ;d6~qU6jf$qYBAvZ-fn)1)s5O z%?Zr1`npgSH*Q=OuaR7q>mBe9zWO z1LC@|7teg+9x#DaT zphd`Y^WAuQl+=g6eG1b5o}2H)GMr^RWk(iA+iZ=L{Z^o0XvwAh*~znO@8A7!iKsFk zvTIS7AmCWLFXuX!=u?2Go49cr(W0^U;aJx6x@o?CamXx!BmQLVAh_HCrEOB1{_c|g zTiuZ_2(UBi$_3K~kUCh%-xsp3jt_hmOty7!ELx1LD@x#+$-i4>MPqT;tX;SK5{`Oj zGQ+jUO=He+*w^Hi`HxUzZ>JX}Gu#z3r_N~$2ojsut!f|zz)EsV?0gs_+mOsFHCH04 zt$m;H>|G=8^PUPbLcq}o*$(9;FFJ<|+1j)u()8?Z`6%mO>!vx*UGkyF1OyIv=Z1cH zA7^ypZiSklioP~Rtsq;*R%QsfZ8+fIp6#C+oOAmhGu}YTbY6^62n9o^*F0=INMa?H zxvc|HZYkiHYVA};5%+)7=NuMh;n=AgyW;`A#BGu*+inO% z(|w(i3PUG&SE26?o_uI(y59k3aQTn=@@G=JV{z9*F4)Ixud3xamE_eg$KP_OxmWOk10&sBDW;%I854hj;`(mxmz$g&DbF+DtwCEHJFF!2wnet-UoxmWI@ ztWL915&aKT75Ui_l)@oOcX-XLk|m?PPDMWsd5^)f(YhBRhb3?M%KrCIGAUm*YHz>W zdq00l!L5+F!!KYm+h*NBL}fBqdD?1} zbou<0kNcPGlIgHD>?dZ~zcHf*T7;}uc;bm+ufcc+CB z?=a64-B}9IEOMz{dG^0gtj|kVA-A)zXD=$LV~|{QzybGDRpx=EkyS`rbUA?kq|Qx_q9t#DfklLdqdFpwap$UsbKmST7g0HtdH_QM=mO(r|Zm=c@TdNWDKod7uO8 zs}69%4oSoYE|U2Az=jN++Y+)-MyG&jElzt$Hq4 zGm5)AxF1mV`!LU6P4LV`eCM&|o)d*MoQB;MkIl{d;zzGQE7HTD1m2`#!@7k~8H0SosOd;p&W{HOMYh2%k zAw0>km*IpVAu)|zhmaqOKyf-t2K@O4Tfl!&7_R3SgH$#1TvqIgg3^&lvnr*11BUDLa!T zNBDIaR*0x=RmD8YBDHYV4BRy#<+5P4LDi&S2tf)rh2$pI$l% zcbL!*sQp0x%SrOaW_Z-ad&LE|Q!=(f1M?k}%Dd-dr~sul#XKBa*G+R(u>l-WduL`X ztTV38E`X=uW+0HnzBKYzQ?{n0BK681Vni15|3x`AXuml#3t*j0qSJxPy`K}gV$m1t zbgmogW|C4GtD$qcP2&{y*|2ZzyCf$Q`e`P<$KgaBgos;o)$o=M_saN5A+`7mN0pPQ=p=Th)N&Zg6NZaCWzaRLJ=)&cJ@asPX)$q{#MF|7gB#pddwf4q zB0wnRLT_#M(Bv6$MyW``m@2~~2jqk0S(J84(A>$i1|kA`3(_K|50#Dso^jo(A?(kE z6|&J<(2c(TI_otT5QXlIVhYHR$g53<7?6l@rM{1#z86MbJixgeLCV?^A82$!k7Y<* zzW{s!zao$rtfdtR=ubLShS}1-0PuHU&t{fS*5M~+q$>ii+w1Fz#q3jrxx*331LAFC zW+F#bJm#Tq%xv1E|I2%0V3Vubi2?O(D)FFSc$A-THhXzB*e-<{`c7=`#@A%r1l);| z!isI#?sccDaZKR~|K;d-qm#t-U@8x=r04fx`20ybO?b*uq0R=$(8cw+-VBw;=}H zh60!320uug(-9vSy%C{9wpt}AND{wzv7VE93uOJUg5fvC_ZP8LrXg{A75X>5eKzSd_}t8%bbE@?#BVkWhXYR z$Vp2Y&|CNpBX8-*B}(Aj;qO$WA#XMyr40@X z{}LlzlD0U@gAQ!^SU8zi6k+pY#k2V!iX(0Ho*ni}&`)V}c754#suvgcJr8%f)u!=LsrK=$aC<45MKHIwie~p;6MZA455ScGGvUN z=lO8Rs`FuFML^;#uZSldTXZaWJcC!1krJE`rb6?Dbzr!Z?lJ^5+M|H|e8`N_H?#Zy z3}vkkG6h4-siUmtgilxS3#u^v5ag)A>B!Hk-mHcQ+MGyyJVsfqHMAcg?0m`KP#L47t z+*u$JI=!L_K>RBzI5ytxSp54QFLFDBpO>jk z)Zl{P50@DZnGyP6WhNp^1x&lrjbaC}Go%z~yu$j|DR?8{@b?>a1)KD9yzv%##qv&N zX*dnwQ-5NV1Gfjb2=$RbXnHpb8QQ0#U)A=5W4){+D$C2nLlFVcKKVT9(8<6#Z3;C1X5Cg-8T zEZg^o5!EW))?NC8rFDN(u#gct6SjWfA{rYtKFV!jR1c<21Iw=$26~wbb!TCd)T;K) zRkBbA2dwm9QetRl&CH* zUy4v}0)@I;D|xoE)T{O~%}F4ouDyYMPLt2PfBEh_;Tu;RWFIcww$S8AOf@!6;Bf}u z9Ahj@1hE-;Ex{poJV5zS_WCa1P#QZk>KH?M7h#JOiNDN_%XukaE z2;^st6XHgDZ=59pv6|hrvXjIU5rHXiGaK^CNC zOU*o&72Vn&-mcW-^LT^gGcwQWBxD6Rw}ySJV!e2xrc$}Wg!gRGts8{*}MgW zGrFMcCcB+mP_`t@3iU!SklITqzZs<66ixEDb<-9or-zVi+G)rq-Mc`z+BpO3pzb%x zlMEtHav!2Z{D&9JuCp|f7(Vn~LTk&$c4;Z^2ijvhL?7NfZYXP!hW1Shp!&D5-G`WI zJDN6a#Q>J@2s7vt4}pNhSV#~glKaHh?BhAJ;5!sT*y07?+HsGqY5$Q#Q@y&@=rZBR z9k7*kJpy#ipeheUJjI~JL0!7u;+nDd6V+{OKi0EVl&k)pgJ-s?xqlE8nQW^+C-XkY zh>RUj$xK4+c83*gna=&dKH1_l?UGbHWOjn@pdF?(!=Y|_&7bxVY-6{XsbIYX`%3jz z&LtBwwwy`i;6*4K5QD`LUw5o+H;dRY)#N^+fE^bWY{_vz{py13_Ch|ZVKnb?Q>bDy zq9DUvchAG9*!MF+LH{Mb#0oHAg|jrba8Cm={C)vZzXA$Ga3~k;gz%lPV{yM&(J~S7 zXiyNR@1St!jZ*tBRM~kd{SoxzE1T;Eq>xDf`}XY|%!;yU@!Bul^96+!ySvLaa5zBs zn+OAi(@^mJj)o>`GMZ-iOy)58rcb1P%yh{%Fypo0cg&xuD1u#K5z-$Hxr&7z(e%Nm z(kyTQwrFlt84q624A&@>CJ~T3m7k0j&ObrrCDfbVMMws-8eQi41W}=9-D&;0NFyQg zPT3!$h!#z9(<>hEyJ(5#fet!w^0#9#sXyXET`-9M>fu1;J&+9b=1?=x<#(XwfiSz!3~@wS7mgZ2=o}2j)cBU}It37GNU;)M zUH5P4xE!?GgNPgt9EXoS05O+Zi|Ch>dd@J~0{i%lGe(oj3a|NOl__DPA;p3DIH7A) z4RB{G4pL=*Qpd5!skA*ZDrS2Kf;Ma?#Wauw>VrJx>+{^hxqGaSZ*TZC>C?%)RGdY| z*GH1u_c2F-Qx|6y`FnITPqa=+l)zewyri;uo3(Wr~=XuCXtk>@pUJb@}{}Rm8FO&m@H0O@&A2!gY}R6 z+E?8yrm0n>NbdmG!;c)GciVarR%4UTF91v_D?u_fUUvDZ7AMTbAwmDo_s4e``{n-l zs>G5NKfrXl^*pYEFk`6DM z7JH!mMbocKk1p9a+TVQYjCHZjhT1wi6Kw7M)Ybm5J=zp>HtXKF7ent#FFtO*vbw}) zW&O>F*Kg%>8banj(hxF8>2}5m%nJG^xA*&-3_7IUgO?%LR9I;2b3?KI;dOlI1E_*b&k{J#pAK;{+l3@!S}iJy0k){=ZNr8J_O%f*Ks_ zTDu5c!XuXp-=a#-cbESlY`s5r@g*2z#_es-`Y0tUP=&+wc5||c(gIIg7d zV%OQl1Yv=x$p1ckQpxjfVUG@Bo3OmvRlv-!z!7VW3M(7jw*wv!%BS(E_)J{zB)IqH zgy24m#H6W2AfL{rP2h_51_H#+FZ2pda8pX|cfU*f>aiz@=bwTt;2>`%3u5eqwnl9> zz*Hi_o$XbIS_ac>;Qs2uPWY&gb8#ofm6$k9a8pU{_ZIQ6gM()W^C#@Lon5+4=moZh zrzBw=yucfi%aL%4`%gj^T>;ipCNFqBbA7XwU}ZW6g3pkD5{oxp7$R65C#Rmu)get! zD_ZJDkwEv>i5=Keyv89B(MMcK=GjI=@thZImm7L10n1%)8$7fKDkq{+5gRZfySvbT zI!}($91t8lpleUIrh2j-O0#ZN&59IqW+Zu(!zY!UyOQps1m#x_JSY~V@B6@={@-Wv zIFoSa`67N(%mX)u(cvno*u=X%@*8KLkPJtvbolh~CYBdq7`Sz?p1j9%a6$UD`^0!ADZkb5AI4Svw@*oZ>`e-F!L z%evvQ;OxqNgakLRxA|10yTT5T>%G04h9aJxT6G2EQ&5aCNQbEj^?!=M(o+vnZQ!&k z8VT9jXe7VcjjVTg|D5OX506EjyepP(4yd96+a-N54G$L&slhWTqQ?sO^yto2ySyFo zZCgO(`3Y_yX-SrNRIZZvVcA3#o9Tyv3KAa2kqL>nhNEQZuDB@!wExNy!d>WHL7l>Z z=T>k)=%=L;_^!15jkc3h=nYd|F5H+n&8{Cjg%|ehDV(QH;f&jchTZ0CNdGy4;}o5E zq(){bF_O_)ocl(1$4;L;JsI}S?L&}S7^xIUH2EqsQn6X{E8O>mL?|Z})V?@BS>iua zaExNaRA8nO$Kwdr<&_f*;i7Nkm6@E1ZnRw`L;TM_5Kf~fkj@*PgM%Ax2+n1Y%L+FN zAMxe=&$Qj}wU*ddwHIF?a`~J!5ET(8G95JMOoZo0??b)w=;c^~z*aRl=Elv~CCTlD z!|Xh0pM`y)n2pE^pH3~G+w7W_VDBQU09A917bZ2!H7wy5^m5{JiX2g=rhv+8gZaAB ze+qedHM0`KvUW#4Bv4$@7k2*-9*V(rEEB!Wt*5W@A0hN<%g3>wAR$bYOSa0*H{apA zJj-3LkmP;pciwDz6f+?j2GHgn_ zdn4}j(7*5sCtvs{@n5o@SoZjzaJbZq-?8;G4EAUG$ackoXMb$5PCbf&r3~@~#i~@k zL=7Sb>}(DG{1oRG?MmQQWE7R{I!=d8-_K8c&s?s5;wwQc#soJtAuyPHjAaC+gLF#p z&3m(2NH<56k|SbMHj>dOyp}@4Q6t;k2ttvNJ;jh0yv0-aKlo0YNijsQueIBR?Z~m@ ziFo*=iZpmw#oqAiH`xk*i0sO;1Ip5i2jPuQ+uh5S#)3WOg9_S#Af*}JSf^*~?tney zr$POIsGfWTWusgiJswdF2=T`;lDT2Rtm;?xGbY03anH(aMPvJz@0jXMgtJI$eFkBZ zdX1zBLYkO*Y`B<)9+>A`u+}~c)srd5+Jw92*r`G zs}hn1g6Jnd;D)DV7^Q*|(v=M3op0?S$GOQ4#*ws(J4Ee^LRicqbn#Q{*!5C#QN zAY_(=5JD!a3<*LY0hBPs0hH2$S`|g>P%2fh&QR;D2-tdyL&d3LtqN^bKzhL|P(%^l zIcJ~vzxTbh-dpdi+hJXsJ)RA5n2)UoLWvrw^y75l+zn`WJLYeL3wQPgCw`Zzi|h;Y3&H1 z@HPWdBeGXuR9dySU1hZ&q}AOZrE+=H4D?Gq=R{VboP$s&drdh5U}JpMP*mvZ|Hp5~ z^9C>_ddx&wB%`k@SGr)EGMzO^J? z4<$mQeIZN!#W7oE-4fcp5y%y^KxUin2 z%{G6$ePgRtGeWRr0!|W7-E;Lcc#qbq%Yse_8erMjLvsj7HjIOjO&vA)`o8LIv_27Q zw+*AA0)kB-Xw&lj0eO2Q-)+yWF7&!QtOK;o-n*dSXMpi)La$!bSCHA@=%H@+<_8}= zY#0zI639Mad^nrlBgo;`T|5fmL@zA!XC4^^6w5nffKTy|q9iIlF*zqi&~G?{GI1 zp*#*wjK+GIDMV-FS-^GR1&faXD+nJN8E}3i-qFT4Gnk4r^a#tu4}p6_OeK)=n2{Cl z*++&Ds>r6j+?3t>=fwV3p93nvbvRNbMf%T2;ACcn9K!SaX(D_I&|DeNyCQoDCGdwnBvE#4ddP-K2p`;4(i@ zQ}5^+3$3UfNQ8Qv^J6MjS>3IdKSMK@ha(0A8hGfcmnkUEEQCY$m4%}#cA*)yUN33B z>GlD0?=s0r)UlucM(T#vznQ?e9z{}EQnZkG7m7o$c*nDVlSXkIMm)QN^93z9abrXG z-}TVP=ldK~wmk7HXv>+!6xr=le4B~#BKKn6wOo$XuAall9w6C6uo6AcovOr}N>M(? zW-ES_tqlbWfx0fTloB1e!CS3q9KaOK0;xd9KymF&R~0+=G|*FTR!JaWu3!rmJ*U_`1_gF+`abTmINu3&ls%mV;|IZt+y6F{s7;3tEB<1@vb}pj8#1 zwY~_T)yrZk2;$_8?@o1GnH}lf-)PHLJZ|L^k_njiUO<| zQ(AcAx{Rqvx29zL^6yPP4`7)kl!FDY@Iy)DFXgn{2A-Oa>U)@+fY0$lWq6@4;uMgv zaE9&(8545})=ho?y_~%c1dvdEmsW2ahwEGb8S(s2Ac2anLq+;uybn-MCVXI3dMJaD zB|!LT4)O~FMG;VF{4P93`bz?o72mg%8v$V9P|MuENLiT=0+i^^ zZM&oMO0xmC^fUgYQ~w0m5N!|H^!g)4HW%OUJZKZ6IS3`33Yr1%Ms|ImA*^EZBAffP zu93p&@`(-LIXnTONmnzSlvfzM0f$>_%nCe;YN>I5$zsct%mp(e-w6KN>vOwW5!d|h zDDcSGAEFRNH>Z($GLZj|Jm6G<>$Rsnu-k2qgAz@&rmphlFnR5?@sc=W@0fq=%^+H4 zRw0mz?>mf$3yfguI*tV>^;s$Uy;*Rq`@9y-#68bM|_cFqpvwQG@k|{#cdNkts6JmecQ)&Wt zr<;}$&AB8{CwtNj{61eCL-V-=F&k|@74f+wu)54?IC|@`bU9O`7;TOad*Wjh30(t@ zB`{ZPxBZu30?F*z9R$tez9s`|Ql`oQxNv;Z5c|)d7Ul9N|2?2HxBm%TMM*6=8zJvD zBAy9sk;6v|n%$?KI7H7tP{S&i(JQBicUS=*F(Gb ziHPNK;;%jI{74!{+`oyUmt5)3saBOR$vYe8vyI7+TfVh(|T&z)4o*=Wb=) zTENDh8sF6l(Yr%WFErNACgstw3oDKcj8B!BIzv&aweL6D2iqEy_~c8Zzk`rX#<~k( zkAv1S?{O$1!?;rJwCy>I_CWF^zX)1SY!55)n>!n<9{2Ly^QznhZ_lmX)Ato|S1O-2 zWTfITdRaOi7tb$9-JH~Oal}HK6Wx|c?cj4c095Mqg|A6x!o;2aso(|`fVNOyEMM@v zzUxhAQ)esG8*R6{f6h~5Q)iw&kdayb0n8E3fNxpFLunwELlB~un!Y19q3n7MN+qC3 z1seA^Qd3_KFg6FUo}7`6`Vh-!)R^nV!PWvDXE?E=SU&M6`h*g_KqjvI@w&Vm^bsd~ zn99rkhvWyTQ~Lyr60BYE$l3A(uwv=qv2&oz2q?;mEZiH-$Sr%7{H$_{WIshu|46iW z0}6P(^3)(NX8LVBhUYOA=V;Pl~;t{PiJ zIT6E2nA&G2JeGbmq>1f5JXkdR1XT+Fe&2O0Ui4HB>|zpo6_B_W=R=~^I)M+H ztR0@H21agj;FTEEYN>3)EadVA#DOyykx;uC(-L~1XBUs0KRh!D5k{*tfqaCELV6`! zcEjeKA?<+tPeh>{GI;IQ!daRKCtAK7hZSXe53W4-y#=sqI4Oij&Lv0>JjgdfsD)yy z&8Xv**az>5q?R}v;fJ6T&u9(U3^)XgN8|6-AP;0_cT@Nx3PDx-;8(yX22M6P1kB58 zp`I)WD;_*Xv|(Z@6h-F|*n%?`IE7HyfH{?ig>dU}GK!u<0V$96|NGS{5N-d>nP(3W ziU=%Er?5pGb%!P@ptSh8+q)LWbPt%}w95ePxCVfM94yVh;e##XXz|!3w{n6(@;{cY zpv0@A3y+h7?!t{g;i8<|YtS#t4pF@<&Lb?V>j623Uwb@UB~Z06b87>x*xp zyu9oyKpKba2kiV30wAOlMo| zu(SSSF6~-xEe$|Rm7T-ho!GnMfcsX_rU%1F%+z{kqlOQA|L!xJr+9)RvE3WUs^Mlj7Oh2AyPX8YyNN5;(1h`RCt@mtd5G3=ALk~d3 zDL%ObIJSyH_Lx!~-9Ke^R;RzG3BFCl?C@6*=nMXVv7wd%il$()vie#$Ot@axE z)m*&RfEp;x(nG%QFqfuvt>19@8?c3u2t6xoKxfJL{{!7UX2M#4gI_seCX_MjXp#{J zTku%NvD(tqu2(>-RQwISW3W=}9lU=fMYJce!Kf8kKRqlM5TVmwQqr{TM{715Lm+@f zfoQ7&KOP6Abs_sH^qEA0HddV?KV9TX@rt#ydV*jr^08pr}S&JiGBdPsB*0U3}6mi>k4gFsB6UtF(rN1s9=J6b= zem6WN_iEO0U@0ot(Y|}={sD~ZP<-QEgP>G(+w(`~aT91B)m(HIC7Hi~ckN7rN`w+j zI0SFV)S>$j?WSuGyeE?VRAuN%S;Gbl8Ny@TPqZvGpVr}HK`7Frqzn@^kQNb@p>AZD zcZ@g16OTLeFkHuj15#n_!u$s@Km(CQ5GdlKE0puWuTTwD^c-jdxDYm)N@w3#2WFr{ z4+KaS7SaS%6gtU8SYPFQKpTY|f>yD1kndyD$@i&ccxa5#fagRoKFlzmM%oF*M z)hObT*C0P+2Pu(vCgx{v7f!Y@>YWq?NgZVb$3Ow<67=yLxgLsb!wx~gi{raM@i6>J z*@GS3I~>N+RF}1MDC?n!D_E41~5I-?sSrFK}l?P zT3PNKZTR z&<;kF?(e89@bWeyjV^lvy~TVNe%l2}IO6sq>z9g~&WO zQ+FY&f>960a*^{3jq?{-XtmzLoS)Os`;DIc@2s93$gaasvcuDMplRO2p+iPp3D)i- zwsS8eB^HWv`!R5~Wm)@-qR?*b^3gXdwi!QWB+ z48Wl?ykp5Lm*1>|o*W2thgMVlsI$7w5gNW!Jp4%kK~Aips{h8%HnTeedJwpJLsyJ~ znLttH{D}?zJWC50uv$}*RiMH{w!3V!TNLDQy?rf)`u|k zaA`NeN*iw?^_BRwWnR)|pJEAyA3nL_OxYD4ci{Xh8byP^?Ak7Ep?dR2l9bwnpR7Ql zJkES>4a`!;iIG-#39XMs$xZZ4Q4*RoE~MSQ$I$pAzV}QUcKw*f0mT3`7Qb!ihyN8o z?b(amA@wLdhT>~?zyK%+0W_O4O<3VYRp;VRhW#O0cs1)2Y#ktwQ%O9;u7fdX3ZV(s z)dCb8=i<>=$D!pOsCy@_%(N1#J5Sqsh3o&pqKKor_MnkZa-Ea=%TU_}M`U%D$UgY+ zCYE`zyXH8?uApeA{p?keZC_?I;f}F6Tdv(`yD?d|%fG)D*U+v-@URAq*uY`QOHZTB zXxYErzDOv_&eQ@;nBMH2^WB!M<){Q)^5pInOgZ6jcIUgm9g18LihoDP!s!ad*A-Nrqi0lfnIUV)w^zl zp{ei1<_r@xaxJzWOJ0%gnS=7JEn~_r5~7{y0DlU>FQ4ook*6b{+8+A}+Ey0A&BYjK zycY#nV5*7J$*2!PsYMw@y%qu|jP%o1+|{%(30&ZdR*ZE)C#WuGg2vg1ZxM6vGb}G9 zpF&HKhy*C=9ixE+#JgZ3ekWX)&|3Lg+7R_Nq=(k;csX`4u9WEe5S=CyI5dsE`_?Qw zg^XVmLO1|)L*5U>(vUvEv}K69%t{j=D23SZWUQ%N50c$5a!G`Aot$tvM6IcXprP{? z;&AAR>a5Q7X#d##He4ai+726Nmxc1nXj5kbwcHb0 zy2z!`rb3L4KOkEJUxl>}Q^dYShFAjWZ)dQew)+Rn{g%()5W>Hp2=$islD^h^@ ze;}$5a~LAt75gko^lAq_+Iz@fW&Fou{f(3qBsI&dyaiy%38wr{5*OJwq@sI*Gi6AH zDB)OVtJN<=Ct8w1R$L;a@4-o$WNW_lJIy{$*+Nj-(dKRFXUjf^xOA-IbX!pyI4Pa+ z$=H)-?A^)CKD;zuHsd4!3bg#slWCX`(5N_bi0~R?#y>i`2?$z;twD+xV&^C%OM4Al z&v0l3%~;tTi$vP4?=;OcKyjns39ZMrQrD3UQah4q6b*49koZzLoYBGj1z$tng_ugR zmD5%DS&qH7y2(zskz$$HBs_@F4Jk$E3o$nwgo3&Qam$TFr>NGA ze?emN8lF=1o@kmThnJ@S(uua)Z^ZM{@QkuS9modJDDDH$*0jw6w=)Z3EJEVZqA~>3 z6vVG({=T%4M>oMUQ7Ht#O6W)=2#oz;B2LxJGihQOg|97iIkn)Q+NC`SBW)YXH ztB6C(iktvrvfcJCi1Rfp_lJ{dzWzSr{~^uhSrerOAmDTV3E&uopOIjT3>u>3O~O~t z6&B1q45y4W6gwg$S?|tA0{#~R16yPiWI+4mWlT(qGt=W^@V+-b9=`zd!b+d?_F$&UF{04($eM63JRZ9k4c>bLF>0NA!(~Uqo^2SRZR)xB z`giq&ErXd>1xtRfNh-xwg>&EPJ~W(v$vuQphl@+a+c35mfqYmQvW7F!kHvq~7GgF8 zhkujMgz9SjX&l<+0@!`%F}$N{46#Si%p6JpyJZWGB=Ts5W8sh7j-IlG&pJxUIA2#+ z>}_+?u_JQMruVa7S+1{Ghnf%BAVVvE(EE6-L#zR~>dDHPlb?@r)&=OZh)HlAv@rB^ zu7YA5Yvba43f1HHM~-F0wvT$olf?brTwUSSZE4j;{0#NHwft>Ff^b2&@~fU5DK))~ zw*c$@`bFCP-*)#GPv7=)*Pti;^AAAmnm4_vYRQX-P+ajcRdF<7!EB;=pANY|gkf<-kBu6Y&6MQsh|y1>8GBaPHJoHK2CZ0W5C)83Ls2?`rq~I*p23 zCM^nmAQYZS{o}I*0lWJf@AUN6Z=JPkV*cyHBLWRc$8dtn`Qk6viyv&8fjKpg3%vt6 zvZk*3x<75=9&Emx@DGeQd%UOh@#AMU`#W3BEAjQcyoo$XuV(vwSh@O<|E12?UD&|+ z-dxl&Nn`UEq~ICrU2U;yfS zzsdh){?oL#lQ#EsOl|L8PA{hA(&x4(y3Y2U&-%E(=J2&I+x+|May31RQ{;%(Pas{6|?d)@#9w#CL){J6g#U)8;!TMidNMbuq* zm<+$Zk=s=I3GX#!ta|%k)x{-~@-Kef-?dlE)L$P^AuoU}4ZA0$Vn4{BfY)gOEKdWdRK?07>y1B27U>_uDh;w%ASp2vpmu6B~~B zgdVu*R7aAKNxc_WtDhB&6}L2ML#Mc%`6X{b{b=#5NOnL}`qciK?;5&t^*xcZk8EsT zace|TR@ScmH*O#5TT33^>A2DH@^Qw+_9c7n2u6&+AV51pZ?b92n;d+YVjKLdz>X+N7KRNBEP!QGey@Aqz_m3*1`wt?oa%=vk_hYwNzJZ=ZFSJ!=p8YFGbirzx!+ zcYE8vty}NMy6EU4aB*?@_Ppb#GhQ{{a7!&YGVj2!^iNuFs=qa3|_wO}t40<%+ z!-;#UeoE|XPOo&#tf~B={qe$w8TaZrd>PiC`OSPuX}VRdO_V)_Uw3CXSBUhiDdgzB#Y=@_{7WuUyv8!gzU9PDrk7`<8v(NTG%gnsO>-DJ_$?nU` zMYFqiO-ik*YiXVL_T0(aBQ`g;&Qm$2Za$i88WEa0sqHWQ<9(G!R$xS?c5Q}>OGj?r zxq*xKw3hEKZ<@K{LTk?AJH<^XgrH})h-|iZw+@}_ms#&WzrFXX!>tonZEV24Zg((x zg>%Nd?yAQgQuuVAzi}LBVsEM+<9ZWF|xj8kvMmF2t;ja_7hG(4H$G52*JTIa1 zz0%c@H5zqF>sVcIx7Us)ki-j-E@kfAgs3!n5Z~S3fGNZrx@3ki!Z^`vhG?s#*n`7wyeMB?VgFfkL%t#yh{7_ zy9vdMQfij;&wJhAet)RCBK5ndk>6C6_cZ+8J|JiBx2Lb)3_9IcSzH|8{5D|no#DMp z>a*wcdHT9$v%_ktY+iS-yl3ioBbT@LR+hVrHVp3XYpxs9yF&h=Z|3~@{i!`^adA8Q zzkVe4tRJdtc~gR(S7gn9QH5f(>d9Ck9l3cak8p>J{{{K85q)RZ1}%*~-!S@h_wuGC z=8Wvc0k_H>?+riK@Lpf>@V_#$D;wXddfIe0^_%`1)jRVD1yOc!&l;DqPQN2h2OOT~ z!WpwN@Nmi65ymm*Dw|U?M|}3SebU>y1vkqcCBJtsGU7$hr#3VxSAdF~u}zAKS&+Tk zH?gJVi;Wi*+b$tNpK9i*&H89_te$C~Ts={19e{)P2* zU(%od^#N0|-mo+aeZa%Vo#o~3F-PIy?dR$3=j9C__+iCjEkcccU{I*d$tkf(G12iQYnmr_M{E5_@ZmVy|#ziaI31R~3^GFAQTFH7c&uqQQHWn8}UhNz?QmVnc*V zZ<4E6ED2j{iQz}E!aelM<(|e+y)ejIm89`fvb}||2})U*Qt2I$s1>OaJ+z@bzL%CK zH-$z>H4&bY%y4$91@E&)m8p@dyg4x@Gbb#||4WFADi4d6otdsN@l!)gzFFEVUyDwlObB878bUlZ79BSz9e)R! zlO_@sM!C zyzy`7g~kkghUk34bS7UkmrNt9&pSRw6@kB#A1mOSbprJN^Ob4QYBc90X$rpAOT#k^ z(Q2thui~d^*h-#8El2B0HsJG=1hXhNm1|ZVyi+%gg_-^MZ3n_r!=~Tb!an=Z5ZE8qx__Xzx?>CURa8S{2_c z5}>)N#Q419(4QMc0`K$~71BTGjI_ZVQ;er5PA`a0(PeSa`s7LI3=Fa199FbInW8gr z(0x*7p+Ad{F@?n;xkUF#kIp^?f7U}MKzBeWMr%XsL!U>V`yUzMNz-*nL2)ryCRBRZ z&tNYiD@cAV8c!s*LU{_llSsBA&>mSt0+4b1ooMfpkSzFU)e<~EG;cZH!_*j04%tVM zz}F-a%9GK26Etd0yoPOL;d#eoanKwyQ#C3v(kXlv`g2btOX%FZ;xyr$BqZA&x?psl zlC&x4-_yuBqj}*s$tsUZffC819(_I)>oRo5|6BHujG*=K453EzJK2lI_g^US3CZ%! z(5uBrj~LOp>QiIb=v@p3{iZ|rSd-Au zZ={F+Q{LqNr5DxjK1+4cf81dadb_lIBuni0g;-BTu%*dJX5*DezeTI$@p^%87SXlg zVqY~`pD`ZmW{CpblLV1Ps?d3b(mVZ5x53(sRvi$6bhJL)m+Brd(rf5f6hW*|a##5t zTJ(J)lRQPsO?mejbTTuZEEX_9uCeonk1R%a}W7p}SA&+?d2HsX1JcAde3*ge9|BBD1?d=rw1V zP_B2^C&ZYu;u4IOj6{hSe@ub{ioT#<` E3wB$}p#T5? literal 0 HcmV?d00001 diff --git a/inspector-vc/src/test/resources/ob30/simple-jwt_v1.svg b/inspector-vc/src/test/resources/ob30/simple-jwt_v1.svg new file mode 100644 index 0000000..a071e48 --- /dev/null +++ b/inspector-vc/src/test/resources/ob30/simple-jwt_v1.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file