diff --git a/XMPP - 25 years/XMPP - 25 years.pdf b/XMPP - 25 years/XMPP - 25 years.pdf new file mode 100644 index 0000000..85cc4c0 --- /dev/null +++ b/XMPP - 25 years/XMPP - 25 years.pdf @@ -0,0 +1,1586 @@ +%PDF-1.7 +% + +1 0 obj +<> +endobj +2 0 obj +<> +endobj +3 0 obj +<> +endobj +4 0 obj +<> +endobj +5 0 obj +<> +endobj +6 0 obj +<> +endobj +7 0 obj +<> +endobj +8 0 obj +<> +endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +11 0 obj +<>/K[158 0 R]/ParentTree<>/IDTree<>/ParentTreeNextKey 45>> +endobj +12 0 obj +[20 0 R 21 0 R 22 0 R 23 0 R 24 0 R] +endobj +13 0 obj +[26 0 R 35 0 R 35 0 R 35 0 R 35 0 R 35 0 R 35 0 R 35 0 R 35 0 R 35 0 R 27 0 R 35 0 R 36 0 R 36 0 R 36 0 R 36 0 R 37 0 R 37 0 R 37 0 R 37 0 R 37 0 R 37 0 R 37 0 R 37 0 R 37 0 R 37 0 R 38 0 R 38 0 R 38 0 R 38 0 R 38 0 R 38 0 R 38 0 R 38 0 R 38 0 R 38 0 R 30 0 R 33 0 R] +endobj +14 0 obj +[39 0 R 39 0 R 39 0 R 39 0 R 39 0 R 39 0 R 39 0 R 39 0 R 39 0 R 39 0 R 39 0 R 40 0 R 40 0 R 40 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 41 0 R 58 0 R 58 0 R 42 0 R 58 0 R 58 0 R 58 0 R 50 0 R 58 0 R 58 0 R 58 0 R 59 0 R 59 0 R 59 0 R 45 0 R 48 0 R 53 0 R 56 0 R] +endobj +15 0 obj +[59 0 R 59 0 R 59 0 R 60 0 R 60 0 R 77 0 R 61 0 R 69 0 R 77 0 R 77 0 R 77 0 R 77 0 R 78 0 R 79 0 R 79 0 R 79 0 R 79 0 R 79 0 R 79 0 R 79 0 R 79 0 R 80 0 R 80 0 R 80 0 R 80 0 R 80 0 R 80 0 R 80 0 R 89 0 R 89 0 R 89 0 R 89 0 R 89 0 R 89 0 R 89 0 R 89 0 R 64 0 R 67 0 R 72 0 R 75 0 R] +endobj +16 0 obj +[89 0 R 89 0 R 81 0 R 89 0 R 89 0 R 89 0 R 89 0 R 90 0 R 90 0 R 90 0 R 90 0 R 90 0 R 90 0 R 90 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 91 0 R 92 0 R 104 0 R 104 0 R 93 0 R 104 0 R 104 0 R 101 0 R 104 0 R 104 0 R 104 0 R 104 0 R 104 0 R 84 0 R 87 0 R 96 0 R 99 0 R] +endobj +17 0 obj +[104 0 R 104 0 R 129 0 R 129 0 R 129 0 R 129 0 R 129 0 R 129 0 R 129 0 R 129 0 R 129 0 R 105 0 R 129 0 R 129 0 R 129 0 R 113 0 R 129 0 R 121 0 R 129 0 R 129 0 R 138 0 R 138 0 R 138 0 R 138 0 R 138 0 R 138 0 R 130 0 R 138 0 R 138 0 R 138 0 R 138 0 R 138 0 R 138 0 R 147 0 R 147 0 R 147 0 R 147 0 R 147 0 R 147 0 R 147 0 R 147 0 R 139 0 R 147 0 R 147 0 R 108 0 R 111 0 R 116 0 R 119 0 R 124 0 R 127 0 R 133 0 R 136 0 R 142 0 R 145 0 R] +endobj +18 0 obj +[148 0 R 148 0 R 148 0 R 148 0 R 148 0 R 148 0 R 148 0 R 148 0 R 149 0 R 149 0 R 149 0 R 149 0 R 149 0 R 149 0 R 150 0 R 151 0 R 151 0 R 151 0 R 151 0 R 151 0 R 152 0 R 152 0 R 152 0 R 152 0 R 153 0 R 153 0 R 153 0 R 153 0 R 153 0 R] +endobj +19 0 obj +[154 0 R 154 0 R 155 0 R 155 0 R 155 0 R 155 0 R 156 0 R 156 0 R 156 0 R 156 0 R 157 0 R] +endobj +20 0 obj +<> +endobj +21 0 obj +<> +endobj +22 0 obj +<>]/K[2]/Pg 276 0 R>> +endobj +23 0 obj +<> +endobj +24 0 obj +<> +endobj +25 0 obj +<> +endobj +26 0 obj +<> +endobj +27 0 obj +<>]/K[10]/Pg 277 0 R>> +endobj +28 0 obj +<>]>> +endobj +29 0 obj +<> +endobj +30 0 obj +<>]/K[36]/Pg 277 0 R>> +endobj +31 0 obj +<>]>> +endobj +32 0 obj +<> +endobj +33 0 obj +<>]/Pg 277 0 R>> +endobj +34 0 obj +<> +endobj +35 0 obj +<> +endobj +36 0 obj +<> +endobj +37 0 obj +<> +endobj +38 0 obj +<> +endobj +39 0 obj +<> +endobj +40 0 obj +<> +endobj +41 0 obj +<> +endobj +42 0 obj +<>]/K[26]/Pg 278 0 R>> +endobj +43 0 obj +<>]>> +endobj +44 0 obj +<> +endobj +45 0 obj +<>]/K[37]/Pg 278 0 R>> +endobj +46 0 obj +<>]>> +endobj +47 0 obj +<> +endobj +48 0 obj +<>]/Pg 278 0 R>> +endobj +49 0 obj +<> +endobj +50 0 obj +<>]/K[30]/Pg 278 0 R>> +endobj +51 0 obj +<>]>> +endobj +52 0 obj +<> +endobj +53 0 obj +<>]/K[39]/Pg 278 0 R>> +endobj +54 0 obj +<>]>> +endobj +55 0 obj +<> +endobj +56 0 obj +<>]/Pg 278 0 R>> +endobj +57 0 obj +<> +endobj +58 0 obj +<> +endobj +59 0 obj +<><><>]/Pg 278 0 R>> +endobj +60 0 obj +<> +endobj +61 0 obj +<>]/K[6]/Pg 279 0 R>> +endobj +62 0 obj +<>]>> +endobj +63 0 obj +<> +endobj +64 0 obj +<>]/K[36]/Pg 279 0 R>> +endobj +65 0 obj +<>]>> +endobj +66 0 obj +<> +endobj +67 0 obj +<>]/Pg 279 0 R>> +endobj +68 0 obj +<> +endobj +69 0 obj +<>]/K[7]/Pg 279 0 R>> +endobj +70 0 obj +<>]>> +endobj +71 0 obj +<> +endobj +72 0 obj +<>]/K[38]/Pg 279 0 R>> +endobj +73 0 obj +<>]>> +endobj +74 0 obj +<> +endobj +75 0 obj +<>]/Pg 279 0 R>> +endobj +76 0 obj +<> +endobj +77 0 obj +<> +endobj +78 0 obj +<> +endobj +79 0 obj +<> +endobj +80 0 obj +<> +endobj +81 0 obj +<>]/K[2]/Pg 280 0 R>> +endobj +82 0 obj +<>]>> +endobj +83 0 obj +<> +endobj +84 0 obj +<>]/K[36]/Pg 280 0 R>> +endobj +85 0 obj +<>]>> +endobj +86 0 obj +<> +endobj +87 0 obj +<>]/Pg 280 0 R>> +endobj +88 0 obj +<> +endobj +89 0 obj +<><>83 0 R 88 0 R<><><><>]/Pg 279 0 R>> +endobj +90 0 obj +<> +endobj +91 0 obj +<> +endobj +92 0 obj +<> +endobj +93 0 obj +<>]/K[27]/Pg 280 0 R>> +endobj +94 0 obj +<>]>> +endobj +95 0 obj +<> +endobj +96 0 obj +<>]/K[38]/Pg 280 0 R>> +endobj +97 0 obj +<>]>> +endobj +98 0 obj +<> +endobj +99 0 obj +<>]/Pg 280 0 R>> +endobj +100 0 obj +<> +endobj +101 0 obj +<>]/K[30]/Pg 280 0 R>> +endobj +102 0 obj +<>]>> +endobj +103 0 obj +<> +endobj +104 0 obj +<><>]/Pg 280 0 R>> +endobj +105 0 obj +<>]/K[11]/Pg 281 0 R>> +endobj +106 0 obj +<>]>> +endobj +107 0 obj +<> +endobj +108 0 obj +<>]/K[44]/Pg 281 0 R>> +endobj +109 0 obj +<>]>> +endobj +110 0 obj +<> +endobj +111 0 obj +<>]/Pg 281 0 R>> +endobj +112 0 obj +<> +endobj +113 0 obj +<>]/K[15]/Pg 281 0 R>> +endobj +114 0 obj +<>]>> +endobj +115 0 obj +<> +endobj +116 0 obj +<>]/K[46]/Pg 281 0 R>> +endobj +117 0 obj +<>]>> +endobj +118 0 obj +<> +endobj +119 0 obj +<>]/Pg 281 0 R>> +endobj +120 0 obj +<> +endobj +121 0 obj +<>]/K[17]/Pg 281 0 R>> +endobj +122 0 obj +<>]>> +endobj +123 0 obj +<> +endobj +124 0 obj +<>]/K[48]/Pg 281 0 R>> +endobj +125 0 obj +<>]>> +endobj +126 0 obj +<> +endobj +127 0 obj +<>]/Pg 281 0 R>> +endobj +128 0 obj +<> +endobj +129 0 obj +<> +endobj +130 0 obj +<>]/K[26]/Pg 281 0 R>> +endobj +131 0 obj +<>]>> +endobj +132 0 obj +<> +endobj +133 0 obj +<>]/K[50]/Pg 281 0 R>> +endobj +134 0 obj +<>]>> +endobj +135 0 obj +<> +endobj +136 0 obj +<>]/Pg 281 0 R>> +endobj +137 0 obj +<> +endobj +138 0 obj +<> +endobj +139 0 obj +<>]/K[41]/Pg 281 0 R>> +endobj +140 0 obj +<>]>> +endobj +141 0 obj +<> +endobj +142 0 obj +<>]/K[52]/Pg 281 0 R>> +endobj +143 0 obj +<>]>> +endobj +144 0 obj +<> +endobj +145 0 obj +<>]/Pg 281 0 R>> +endobj +146 0 obj +<> +endobj +147 0 obj +<> +endobj +148 0 obj +<> +endobj +149 0 obj +<> +endobj +150 0 obj +<> +endobj +151 0 obj +<> +endobj +152 0 obj +<> +endobj +153 0 obj +<> +endobj +154 0 obj +<> +endobj +155 0 obj +<> +endobj +156 0 obj +<> +endobj +157 0 obj +<>]/K[10]/Pg 283 0 R>> +endobj +158 0 obj +<> +endobj +159 0 obj +<> +endobj +160 0 obj +<> +endobj +161 0 obj +<> +endobj +162 0 obj +<> +endobj +163 0 obj +<> +endobj +164 0 obj +<> +endobj +165 0 obj +<> +endobj +166 0 obj +<> +endobj +167 0 obj +<> +endobj +168 0 obj +<> +endobj +169 0 obj +<>/F 4/StructParent 3/Contents(https://en.wikipedia.org/wiki/Housing_in_Vienna)>> +endobj +170 0 obj +<> +endobj +171 0 obj +<> +endobj +172 0 obj +<> +endobj +173 0 obj +<>/F 4/StructParent 8/Contents(https://localmess.github.io/)>> +endobj +174 0 obj +<> +endobj +175 0 obj +<>/F 4/StructParent 10/Contents(https://mastodon.world/@Mer__edith/112535616774247450)>> +endobj +176 0 obj +<> +endobj +177 0 obj +<> +endobj +178 0 obj +<> +endobj +179 0 obj +<>/F 4/StructParent 15/Contents(https://www.rfc-editor.org/rfc/rfc6120.html)>> +endobj +180 0 obj +<> +endobj +181 0 obj +<>/F 4/StructParent 17/Contents(https://www.rfc-editor.org/rfc/rfc6121.html)>> +endobj +182 0 obj +<> +endobj +183 0 obj +<> +endobj +184 0 obj +<> +endobj +185 0 obj +<> +endobj +186 0 obj +<>/F 4/StructParent 23/Contents(https://github.com/matrix-org/matrix-spec-proposals/pull/4174)>> +endobj +187 0 obj +<> +endobj +188 0 obj +<>/F 4/StructParent 25/Contents(https://www.rfc-editor.org/rfc/rfc3920.html)>> +endobj +189 0 obj +<> +endobj +190 0 obj +<> +endobj +191 0 obj +<> +endobj +192 0 obj +<> +endobj +193 0 obj +<> +endobj +194 0 obj +<> +endobj +195 0 obj +<>/F 4/StructParent 33/Contents(https://en.wikipedia.org/wiki/Snowden_disclosures)>> +endobj +196 0 obj +<> +endobj +197 0 obj +<>/F 4/StructParent 35/Contents(https://op-co.de/blog/posts/mobile_xmpp_in_2014/)>> +endobj +198 0 obj +<> +endobj +199 0 obj +<>/F 4/StructParent 37/Contents(https://gultsch.de/posts/the-state-of-mobile-xmpp-in-2016/)>> +endobj +200 0 obj +<> +endobj +201 0 obj +<>/F 4/StructParent 39/Contents(https://xmpp.org/extensions/)>> +endobj +202 0 obj +<> +endobj +203 0 obj +<>/F 4/StructParent 41/Contents(https://notes.valdikss.org.ru/jabber.ru-mitm/)>> +endobj +204 0 obj +[/ICCBased 301 0 R] +endobj +205 0 obj +[/ICCBased 302 0 R] +endobj +206 0 obj +[276 0 R/XYZ 56.692913 781.0236 0] +endobj +207 0 obj +[277 0 R/XYZ 28.346457 781.0236 0] +endobj +208 0 obj +[279 0 R/XYZ 28.346457 595.6883 0] +endobj +209 0 obj +[280 0 R/XYZ 56.692913 325.2953 0] +endobj +210 0 obj +[282 0 R/XYZ 56.692913 506.65436 0] +endobj +211 0 obj +[276 0 R/XYZ 56.692913 693.9674 0] +endobj +212 0 obj +[283 0 R/XYZ 79.37008 667.9336 0] +endobj +213 0 obj +[277 0 R/XYZ 28.346457 89.71362 0] +endobj +214 0 obj +[277 0 R/XYZ 332.42892 598.26776 0] +endobj +215 0 obj +[278 0 R/XYZ 56.692913 105.41107 0] +endobj +216 0 obj +[278 0 R/XYZ 56.692913 89.71362 0] +endobj +217 0 obj +[278 0 R/XYZ 545.81244 303.79266 0] +endobj +218 0 obj +[278 0 R/XYZ 511.69757 265.1651 0] +endobj +219 0 obj +[279 0 R/XYZ 28.346457 105.41107 0] +endobj +220 0 obj +[279 0 R/XYZ 28.346457 89.71362 0] +endobj +221 0 obj +[279 0 R/XYZ 427.23315 678.2897 0] +endobj +222 0 obj +[279 0 R/XYZ 433.33206 678.2897 0] +endobj +223 0 obj +[280 0 R/XYZ 56.692913 105.41107 0] +endobj +224 0 obj +[280 0 R/XYZ 56.692913 89.71362 0] +endobj +225 0 obj +[280 0 R/XYZ 303.29715 751.301 0] +endobj +226 0 obj +[280 0 R/XYZ 265.55942 258.42212 0] +endobj +227 0 obj +[281 0 R/XYZ 28.346457 152.50348 0] +endobj +228 0 obj +[281 0 R/XYZ 28.346457 136.80603 0] +endobj +229 0 obj +[281 0 R/XYZ 28.346457 121.10858 0] +endobj +230 0 obj +[281 0 R/XYZ 28.346457 105.41107 0] +endobj +231 0 obj +[281 0 R/XYZ 28.346457 89.71362 0] +endobj +232 0 obj +[281 0 R/XYZ 146.22734 589.25574 0] +endobj +233 0 obj +[281 0 R/XYZ 135.57024 550.6282 0] +endobj +234 0 obj +[281 0 R/XYZ 526.3849 550.6282 0] +endobj +235 0 obj +[281 0 R/XYZ 61.54621 446.5242 0] +endobj +236 0 obj +[281 0 R/XYZ 171.31116 207.22375 0] +endobj +237 0 obj +<> +endobj +238 0 obj +<> +endobj +239 0 obj +<>/Font<>>> +endobj +240 0 obj +<>>> +endobj +241 0 obj +<>>> +endobj +242 0 obj +<>>> +endobj +243 0 obj +<>>> +endobj +244 0 obj +<>>> +endobj +245 0 obj +<>>> +endobj +246 0 obj +<>>> +endobj +247 0 obj +<>>> +endobj +248 0 obj +<>>> +endobj +249 0 obj +<>>> +endobj +250 0 obj +<>>> +endobj +251 0 obj +<>/Pattern<>/Font<>>> +endobj +252 0 obj +<>/Font<>>> +endobj +253 0 obj +<>/Font<>>> +endobj +254 0 obj +<>/Font<>>> +endobj +255 0 obj +<>/Font<>>> +endobj +256 0 obj +<>/Font<>>> +endobj +257 0 obj +<>/Font<>>> +endobj +258 0 obj +<>/ExtGState<>/XObject<>/Font<>>> +endobj +259 0 obj +<> +endobj +260 0 obj +<>/FontDescriptor 261 0 R/DW 0/CIDToGIDMap/Identity/W[0 0 600.09766 1 1 372.0703 2 2 674.8047 3 3 715.8203 4 4 678.22266 5 5 493.16406 6 6 365.23438 7 7 770.9961 8 8 995.1172 9 9 732.91016 10 11 695.8008 12 12 348.14453 13 13 651.85547 14 14 595.21484 15 15 687.0117 16 16 435.0586 17 17 830.0781 18 18 342.77344 19 19 715.8203 20 20 478.02734 21 21 342.77344 22 22 372.0703 23 23 711.91406 24 25 715.8203 26 26 592.77344 27 27 820.8008 28 29 711.91406 30 30 415.03906 31 31 773.9258 32 32 695.8008 33 33 379.8828 34 35 695.8008 36 36 720.21484 37 37 682.1289 38 38 1041.9922]>> +endobj +261 0 obj +<> +endobj +262 0 obj +<> +endobj +263 0 obj +<>/FontDescriptor 264 0 R/DW 0/CIDToGIDMap/Identity/W[0 0 600.09766 1 1 317.8711 2 2 518.0664 3 3 988.76953 4 4 615.2344 5 5 317.8711 6 6 520.9961 7 7 633.78906 8 8 611.8164 9 9 633.78906 10 10 277.83203 11 11 634.7656 12 12 817.8711 13 13 633.78906 14 14 411.1328 15 15 277.83203 16 16 352.05078 17 17 612.79297 18 18 392.08984 19 19 549.8047 20 20 317.8711 21 21 518.0664 22 22 684.08203 23 23 634.7656 24 25 591.7969 26 26 634.7656 27 27 974.1211 28 28 610.83984 29 29 360.83984 30 30 751.9531 31 32 634.7656 33 33 688.96484 34 34 610.83984 35 35 336.91406 36 36 787.1094 37 37 1000 38 38 317.8711 39 39 524.90234 40 40 294.92188 41 41 636.23047 42 42 629.8828 43 43 698.2422 44 44 748.0469 45 45 615.2344 46 46 575.1953 47 47 631.83594 48 48 591.7969 49 49 317.8711 50 50 966.7969 51 51 579.10156 52 52 731.9336 53 53 277.83203 54 54 336.91406 55 55 500 56 56 684.08203 57 57 636.23047 58 58 770.01953 59 59 634.7656 60 60 686.03516 61 61 862.79297 62 62 636.23047 63 63 557.1289 64 64 1000 65 69 636.23047 70 70 603.02734 71 71 390.13672 72 72 685.0586 73 73 390.13672 74 74 336.91406 75 75 694.8242 76 76 655.7617 77 77 774.90234 78 78 294.92188 79 80 636.23047 81 81 500 82 82 530.7617]>> +endobj +264 0 obj +<> +endobj +265 0 obj +<> +endobj +266 0 obj +<>/FontDescriptor 267 0 R/DW 0/CIDToGIDMap/Identity/W[0 0 695 1 1 684 2 2 662 3 3 258 4 4 605 5 5 548 6 6 628 7 7 592 8 8 677 9 9 250.99998 10 10 557]>> +endobj +267 0 obj +<> +endobj +268 0 obj +<> +endobj +269 0 obj +<> +endobj +270 0 obj +<> +endobj +271 0 obj +<> +endobj +272 0 obj +<> +endobj +273 0 obj +<> +endobj +274 0 obj +<> +endobj +275 0 obj +<> +endobj +276 0 obj +<> +endobj +277 0 obj +<> +endobj +278 0 obj +<> +endobj +279 0 obj +<> +endobj +280 0 obj +<> +endobj +281 0 obj +<> +endobj +282 0 obj +<> +endobj +283 0 obj +<> +endobj +284 0 obj +<> +stream +x +endstream +endobj +285 0 obj +<> +stream +xmMo0HvBBBHRC<%΁_V=z[gE|h{ gD^{}m.47-xS$*~Il"/-I~-}:D[}VЕpB (6SNOٻtvH9J%()PZ2K9Z,AKT؁؟r3wڃbPP]N D_~8Ez g/AK>{R~Kѧ_/_;S3 _z +~ +}*Ũ&EoO_sCc|k5=ikßkigzu'. +endstream +endobj +286 0 obj +<> +stream +xz |Tf^2333 @E-@1( !)ID vJH5bDEVY +VbVkځR%7Ej?̝;,+y773 mʺ5K7@ /\Z u_)X@$Hӳ@> mW\&\)}!iI%Hn#r Nqt91sNz@$KR!eitsHMzx {I|KMsX ^HC2>8I#"7(Qp4 ^#@_4 kt|BDGp#Kሔsa^Cv .gM +Q"ߧHI-}Gf@Q}owWWQ@g [@_v }DžɎ/7)??~ǹ@ L*mͫݥݕ:.bl\I m 4PH3Ld7?*}oW_[w.n}=ߝH.K.~/ywM-ɛ-^dI?ARSrJKMQLU$'K[uwj]x8Iw@2|6`ܔ5}m%;iDOLAqah0Al;u΃ 1QX%is!?k״d]dAjJZۯ.ojj*x쓣 +zR6m|ǥ%Yvgϖݢ2EUG[ b9l>N7ȯc7FKLpKfIvD3t.t@Nr.tRchgve&JH qIN!~PQvo[`+14)$)LF{V}[r*om8HrI "Kk*7. @!A(&-;Mb]:zf0wޜ-\d]8 AݯCO 2K2ﺟC5~+L?9)^T1RB% y@ɹY$Jߞ{?@Dܝ B1IBEj$jQL9dR0IF %XY5(2Yڴ-L"\w1<\Fc +gif>m",6 XY21ⳌˍXdWZ^nY1[% j?'>JO&ʹaj(=䟙%Pb!VeX01@}Ry0&I;K>m0v/98d6Ido(YT j/ZŌ2PVڵP7E0Niu"!%J4;-^mO%MIMk٦jTkU5ky\j12Ja$ N02϶9|0/:g9J9_'DL2Ƕcz;:LX;i; uDMĬ f= `_HCwN+>o7o{FBNfg91;30dx ű|% u&V +M"%7$I΀C4 +F;5j1SE-=xp:yh'υt~^6boL, ΚI>)(IRtROW$Z~it\:&N+ RJjfqS6}>\%Cq2ؔs t2_Pw(?񀴖U?.=Oȏ;wnҢ`cxU:d?xtJʋq~$7'{(G*CG뮟ʥg_ wz_,:!ϕ  6aMl:Md:>Q7HVHpR\㡓zuLT̅ f<3`XTj-No;b 5Úa˰噇[íl셖Z`h_b[bkk٫0;,nbƾLq +<^"{x$c߼r^a(‹?"^PLh#h4HhE\A;eQr@n0.Q߉:>ttݩq7:ӳvƭ=_\(ή'fԭw3^zMzZEO=x-tܒ3F3u(.Ќ>,f3s1:A(dK1 }'{0a -Dލ6R6eh-/[t)Iş̛C&$H&t;3klAn &vбw&ŏDɋ t{łq"noj_t]WCx(#ϕ 8l?n1u1vp :dG8 +v&k׍ +h#0#NZ3mc@pSײd,~Rzᇟz&n2@g! +xMZDvX6䄸ȌK6=y` h1^lw7z ) (rD29F,]QBTO;e~&6tFg6?l&<2t;4!u4cNaM]'"B &8ױuH$;h;dvO4$XF~Kr<1FǴMJr u+y _]Rst$5?(bT\壗ߏKk"qo7@-iNHBԳғL@֎sK "Vj8>{ψc@I`X0I +5%ڬRZZJ$hNB$*PeaW)j1,(hՎzj8s㡨p}^Mh_Vƪ,R]+ + +KzQ}A}A=UW(sk l|:ⷣմ\e!6ls9#36r}_ucv$ uٟY PޓwB\Іve"AA&Iէ;(!i:A3YQG-Nlvop-FD.#ӲC"zٲ 5- mO$"N٩?$l!kH=i kX aE Jπ7=Jsm~9eC⺀ov1<晼Um83Dmd$1J*****+*7n/jޯY)~>cI#?%#,4 msoe;I5YL5]'z]ǐe˱;tyG`COpŔ ;S)=&43Gݢg򡦏ƭ=(G6v`E#}d)3ONgT@䕜C* E H 虽 O<"AKORL/ʭ]r:7eMSLw|R`hlf2eM'iiFU8ܽ90U9S K.o q*[h3=- ]@d  xHVx->25{)ĒE )dkxma=0Lr@U0 PKa1T|0! |0@54@=4b2IA`4,ݴŧ + +X 7CC\gB 5jarA?qT(Y>UP&>(Byr(.3CP1P KRCЅ90"O YCӆ P 2,#~u.׸{u9T^6VÕqVD[$x`?sbyp=qrR2S}VFen&xgL4ȇp-$>(0 f$ahqOx-L5Ac:gOT&T'łx3@i0]ОE0& Fm9dƉQ4O΄i^(<[)0X;$A|@K:Z`)sc,>t(i0C) K;Uú0$ Ӡf`"(pN3;T3>2SBːlZ|C!V7B0Y`!80nw& +\n=׏7Ihi}En*ܦݸyɄn\IZo\;nGj=`<+?N cm4 c!Ta٫Zp;]+°^XS2G̽RTxqI.S$Fq+ykȾ$w"/ ǓdHhdC +FW>/9{W=hﺳ\ۻ0}=Wn8zz޵:Hw0rzE}nԀU ?7x/LxoT nŘ^qΜ+r2JV4R/ ,#NyX)Q1=|/~Epds |ADUW)kj0'3twe=pZEV>Nm%S^Vƌ~3N<Șm]\AeAyC +y1L.3 &,76W]2Ws?W̕z& wΕ NonΕΕ|_\Iy3WR鹒?2WRdeOܨ$ۦKF_tI +t{>eR LIhFLߝ2)OL|)0 @@{4LgGemM͎KfGolv~5ΎbvfG'ʥ1&>4&>jWK{MT*SrTC?{ d2/c g% 0(.; 0fMP4Wɇ+ +A>N8 Chw$  H? J@ I I _KO>@ $IM8@ɀ$^\5Fzī'F-QI(qO|Nlp7Pbdb#V TAb +Q! +A$Y&^Jtt4Q^Tb +$qWv-Ǯ1?dE`g i~o 1?cex_ !fR1Jp~T}w<@wtS=l^IO 3|6?Qq+G8 8pKP޼)nM=tS2n\;lD|ᆇ Z_BڇKp}P~2:d69؅g>Yk +ǫ= W߫W{# bx'|?@~7v+p1\pæ2\r6۰!6v`Cw-uim\ԁ5oba5êy6ZVfcEJ+XU<UMb)ioT% axu z^w gf1dWx5qX4-uഩ:Su ]t tZ‚IZ$N .:.߁:8'u:G`pAG9*a#=8Žq<e8$䢹_ Z)dh sr fmffmLfDð_9^Y}^'c'U~}1UӔ;}.Iq4)h W v+14cqD1Z(:ѩP+GCht:VvS{ڲѪکՃ֕jG5([*T +C" rb9JDCvJt;ݤ{H7?:( +endstream +endobj +287 0 obj +<> +stream +x>A + +endstream +endobj +288 0 obj +<> +stream +xmMo0C$z$!$ +DjLきT(~Z=3~7?xO6IMSg3#wsvM ֻC;_}9KySB 9'i^4,I.B%in\$Mޭs0'S!]Siڻ+P7QZX|hFdL!ѩ"&؝ptDs$&W߂m?)2wwgS2P_K]ŪqԷ?QRʥXeY.C3mϡj)R2* -+cYe3 $TUa +dΠfP%2b\B7miThy\A>) TPZO +|Z , +|c>|`Pg/L8>*_/cF F]hf@Th9FV_8NjpZUs˙ilD 8Wߨou #X3> kk +<fE X-:f0'g> 8 g2'z N 2 N^,%& >/|O_ +| +|3e>YGtׂ |_/*ðVη9Y]G~90kO)6m?p}R0# +endstream +endobj +289 0 obj +<> +stream +x xU7~VU]V; [BBJ=DFaL$ @@p"B"BT@@Ĉ &5qyELj~KH*N¢3,t=s߽3)3/ @za^<s-+LbcV?=3={k>g̷Ȉ.}pҷ#Pּ#!=0`(xϟ?sكctE% G}`lcl6JZ8 8;^BxNA5> ka[ڀ{) W r8EP@! N9* G`@.!KxzN= }i =Mh J#Ole 6vIZ1I#t(G49)P +BEPKD4lP4ډ8@#:* <`h;F*Dh[ʥ%4/h<Jm>#8'PPK$FZ*4vp +("sJ +*p1_/*`Bz PHBzJ\U/#qQ5;z͉쩁2Om[[TrjXx Wjh|?=ɚi6'uXLZ9=*ְ?*3c!CrC^E n CBt ) SHn8 g6hZ|]H|WɶY %mN k!;aD( +`t^hiJ&W^5Q?G^p|AF``Do;MdŤJ!22 |gwg W64+Zš|<xC佬,;J̤hj"YšͪɊ4E 2L$/Y5)C2XgRS2RL*;WCWqslzİ +*N S=v[MQq,S9x.RR\delZ+Y &lUU B#ydkS6'4(}LApFc/Ƽ,Sʔ35 UY6m*Vr,YB<,OʓSZ`^Q)^JЅlL^+K-e2:\N l!sme{vW.bM(v?ʸ_NtmM5^ss4_]e\8p#:e=sG΂^ sZ6V` vڇ;Z65hΌ^xe͙MQQ+l B 0]NVM"(BE]f}"wt$JKmC +rO#ɴsOL kliPRQaۑC;] 'h)$%@̓"IQQ92a@]4Z_mdd3lE͙᛭Ce_/;iJ ʐ+Dps24@``1{pk@+5Kd$ORt\:uye cIBFABH( #4”4(ޤI$U']I +΅[ +BbcӅm{'$(w@qi6L:awּwWo#tС.]&Ou}|Î1&+WzH1Z z{C I6ֲMEXVbr4^m jC-v8ύP.b \]-VKnGi+ewֻ];_Z.Zw,h)!F{:'YjMN,B)A!P*eJL-3Zʬe2{L+uV\ P.3Lʣ06⒭r+ȩ_H#]:ybޤ@(P?]Si) x;IEZդ\ٌ^|bDGhiŦPlL:č|m.5:n\z`+dh1/6N-M)^yYc +Pn@Fmoi !u`s1em#Aoߣ>K{~hW")hh>uҩS.l)}Ŧ5fj"Sxw՘oQcԨhS/Kݖl/W+Eާe!ŚQlvgZs9REkդe?/Tt}72;A%e̤VkUIeί65}#YF.}dzuu N8Sy +g0&rL&F_z̐BahhҔ5;L^S)TlbR|ҼkՒ /"xÙY*m6^2&X.G _.S̗Ƙa`C'S[S)םv\䎍"P;Zbx=zUr=5{FEK2mW mhZ +*C71$d ΦyE 6Y sF5,٦TM(pj&; -cS"R"SR<))1HodEdEfEeybFGG{ʣ_"죏>z^ +2\&Ma, $F0bd115\`8)_s19x3ލ>(H@I$ztHGI>rEW:, +2bk3\$j3" & ;,[`{,[~S;8P;~g`5A{Z% +lv1(ܣeeM[.:2g p:N),E˼v2o@JTj~īBRRRKDRb5zDOkr5nDž-ߴfF,@2ףSqsČvGOޓlk3tJҲiI|e,5/ )[`G;3z 䵦H +I>{1AםI)fd6)QR8(dΥ"!hRR1Ġ#vb8oxh{htdd"hn^-l8)vUJcC;ֵ>x +r[k/ڶ!/ؿ5U=2!P;6V/C]gkFF"!j}vHSpVm-cR\P} /o/Ea_h,ѩ,6Я ՗ +~sy}9Z&Mo~{όvYh65u*5 y#e a5I2e^&!>r8PU,^#L6f +22BG\(IJLJ(N4UHˤ!mv"69ؓȁ+sX(qs7񵨶6cF*t&p0 6B$S"K>0$Ωg帜rΕ@'ɴbZk<2dbE> DrOphwIR+6v.} <^ hpM5BeQ0Ff IEY٤)Q^gwo3>VPk8Di8kt܅?F=RRF{STP]BaZ}GGԽh?}QpPL9jN" ,G/-(2 36{99N-J)ǜe-.Ee'V9[͚[t7^ -CcKs( %Ѽ֏Z@H< +_ΐZ$$A NMs+]M%)q=;RGC*m $(,*vʡk]_t@9>$"T9RM>|}mO~ЉdiXNr`pgx5jfÇyC])<Ӎ>/:vH.PޛhLb&İ +Ä6kb6Z3bP% abU ĉ8uSq!%l5~lUl vIf]H"ºIde6ɳl kT!o'YvT~[@\!+44ެkܱH=Vl=zNrAZı5Kb` ҶJ`gG) DDߝ!ۨ]پe@çSGgGeѕ3g-wPW>ԳOm; ,r9{-/:&Xb.f=&D5;4iŚA`$M7g~9לK]@[&>,jw By%@2.XE1 toi(+Z?ojMzuv0u\w)өF> ^&RgDĈ4d^NcHsz?e)<JFlYAY++$DXQAJ@W 0J3+8 $-<4AF&- +M2RcnN !<3z=u歺K+ܣ_9>B=↧]SG3IQL-Z 6M ijTeL,̤pYj8P. h©[S6Ծ n {գ9A\*/SWjH0D7HLei̴ +=L*%ШIgQtNh*C=Ne E!7wcQ-@c;.v@'uujڴE +l,mr?qWIJ"p?K J,_NA"JD~&Q#RT){PՋ7;shgڂ9!/H|T#&>^U?ܻ4.>sEtD8 Ŧ)EΒWd;{-Fޭa(w cқl!!0w`q;28`Kn]F9u2mZz>h򮾁wo_Nu4\{|0d4>@,N:p; +ڎq0Sb<~[QObҠDrML㦕 +|.H1q 8oT`>e8z1=ƚO|dzr=V׮\nVEC*M{v#Ǎwnj] l-./sgϿYkV@^=F(+?T=R7ζ 5B㍥Z-VY7ɻ#‘JAuH9Bs!zw`.+A]7q*z!+]p]rVwڽgyk={d,=j_=SRq4.Aԣ JpLq0 u=jˆ-1ȀpϣjE#{Sp +Ƨizݑ#q F?^kv!'ƾ{>}#_Do/,6 2OSOjoտ3/aU3ffx#QF3Y5"$;ZD78,8@d?蜊DBYfd㭟Azkkn^Y@n[Za7Yf1Ռ" +B-6?eaqf T=);Ip+K!Q7H@H4MLfB-'kM(qt"zc{X|r%m^sPщvBA#I;3sȷ_pw<'|kȤw2,~Z?PҪ}^w.G0}X FUAM` k܃_p ɷ^y +ݐo{Xr-_ }FJNB_]z ٬2N+Y+bAHnFBåVY[]UuL%}_wjh2}{^J%P- zY e*/#ICʘ̬^hGMjVE# dGS?ˬJ$d9GΡpN[#vFܭ5{\ںD[ Dy2 +^{@Zrlgzoz5Iџ_~޾t )MO x ;ث +C!U "?'`'XۓY#@8M7)2Q%P4JIDM䪴2S&6PmK P#rxx93iÀHq\byb޼  O(% Jp<-ؒzxp$( D>UMo?k֬swˏs< *#TFR +ԅ&%wa]뭌e +%l ?lO(["#!2S*kt>.Xq[<:͒bFB+,ɓғQKm{9~"}Gg?H9?8H=0ۚ7%#[._2j7+^0TI*S!wm)C֛o_lih6kњDeu[Q\V?/B="e~Y + }潭e|t?z|ߛJ;W_ >2f r%UH.ރkͲY+bHNw¸Ag[o2誶 ]`bB=6FU;6nã"!&&* ūM*?o 7C?fdC|YIrQn_o Wzo1 zܮ{_COAvK@V̾ٿ K+oc nl@ 0lD:GssgR-q]qvS;,ۣR&x- َ0&.wNo|dϞGٻG߳z3GU>wwGn^z˖k6㷷ob]l/7/腶| +$ +'s酶f|HcD(0Mn8ɂcB2't;d68IaWd4ca!> @IUR%!s]'r;YT ǂA9='I԰RDn|v +8I) JmU,V H + B@ htCzd'M,eI=yR,/UݪVT74W`reeko:l TݶM}KGhӵO1Νo|R]ﹻ>Xx5hxЂq!!BC{n9Gd2lS@8Cfx j@)k(wAA}פ5`4w- A}fvkNt(bX `ٰ̂<f@x R ax B(fB>̇Qp?̀0&*fB ̄fBO!|?CYB|8f\ȇlX!_Hwz _s~@1,0 @|(gRPEpdQK`Еϥ'A?sBBu|B1dHa(EfL1p?̄04ً;n/~t @ݸ0A1O΁P,-X ^R` |\g#T|Z9ρP>_D,!off5K­-c4#ƌx/"žfPa/eҪOBō4CА6t7byXFt9,|1"s 7?U )\ׅ)90Ϸ1/\|OŪ)EBm + tX$Atn0 )M-Be^Ү"aï]V;e-<3YdlCUOo9C[#ΌE]nj{FB|4)|&EBa0fy=~8l~iG sO|E"3ts.͙~(ry\w2t~ϊm*rfXè%?O.bDr,eR?, D|tnstA'ܦYrv:Z;}FYnY(4;뺺jϡ|v&FF;W_K73G4~q+ /F3u6W۽_^="1ӗ#-*ܢƴ'Ti1X3co/.FMʣ`^8Y E0 K͇b(U/y?O[G..8[n-ku+,هkycWGƚȨ+7J̀ _%GڞUge ,Ê[j$ L0Y3dD(Ȃ0a a0Te#V0JHS,CD,dGux7Fx*S`L&D!{dX%4xca + # +5o~8di'k6D#}L%q9.4,5,l%sC` +S`"d$%i;^a8LeY##aiNd1qb1.C >/)1 =G$? +N# 0]?vF \on{>?(1C.ǭ9=&v +`79dDwn_Zg*:,7nI`d|b(1!>[27b¸Љg0w!Yp?)!l}.ׇG3ׄţcKzct)7׿=Ðzr{r;ܸC FKE+յ*wg؁F;rmg$`d7-5naסan'z >70`I;*u~dQ݊]̌C+}h%W(ΐm%/ל2C?_~C7n>Vȡ%r,:GXɞ> p }\ZXnY4}VGqqYm?2q?Roy|wA#y1t07z+EJx%W`*쿏WRCy%_+?kx%<^I^ǪKFn 4v@<װKOXc?eREyX&?eRo`<I,_2L%G,IӠq3W.HgBO_!4?mi7 ;0dSai"u1/!&A ! ,0Heȅ Ɓ2!ܐ} R !!B! 0, B08 193SR|jJo54T]F:?*r%|`N.WHS3E'_'gK:,|zq\|h08\$]h&$ug|JETEC' +r|` +xvk\AΎ g~wa:N~_tyT${_'"{NYwہA'oM:y]'UHݺxVڗ_a:yh.{Jzh_Ɠ#:yɋ: :9T@ųN\<9$7}:yV'{uIv䙧mT> +stream +x +endstream +endobj +291 0 obj +<> +stream +xmN0yaa,z UU "ԞKm΢oqEbD̙nz/?Л ϝ-{4bQDrXguj +Z-NQJ bL_0 W0$OJA3낱t^`Iќ/Wg.w}[T3JL-Φ[}00'lVoxT>3LkxItJa2/=a4 > +stream +x_L[?\cFc_ҭENl`cll&L sH$Mn 16. iò=SiKuRש/ѴIJh2ioäUINms|!&m_v-] RXX|?|ڡokH\{ȸ7*:.p/r-g/zOJFi;?_.U8 +mʫr-h_#}tAw 5C]B.ڶx׶kD 6j?Ʀmzo3 3r^HBɮT"|]^w0ӲLi +e>,6eec%u<,aJi!9QP^qZP844<.qd8N 2p[ng.T !LR~rR%L^9v%i*l$ۜd"X9G"H VPH;=2O%BpT&RDGv;C`jvعƤ5=uՁgLMN)sOg\:3;^6G,CSc}݃És1mV|bt/>;5|bG»޸`i+f˔/ۖS;!ѳV +A }}ŋ6Z90{@%NOMMʣr杲z}ho/Ŕ~-N/giQCYfҙ`8OaR j$BƟ/ahd߸9]O}&YYjhr·|n2w-|Dn(` L6uO+b[fw:[<^3c`?_뱉D-NnZmo'jwZ35_&3YyB#&rY>!+#JA. +,~!ЬH+wh}(K5 x,y}=-آmnoRbO!GJ'(QfU(P81I馊 +endstream +endobj +293 0 obj +<> +stream +xVɎ7 W(>E$%!A H99L +RW/3c Tz|$_qۇÓ'WzQg/o>*XHjũC7eo,r<,O[,ew{n[D|Hs9Xs9zx>cnz t6gb&0,am>?]Yϗ^E 9ʓ{YWg^<<["CVA}e>L\Еʾ2'DлI-Oߛ7JPF,+כ/_}:C4։ +Uö@I!EFWAm\3HPt ڐJЩh!V`b\M  +<`@ǙW-00mi\:n^G*NZ*{U Z3t2ǝ $qDE$5DeLC0$+jbytJA*x!\Qim)~@I0q #jmtB+4E``DCo=nAAp тAW"UG<4v_2afV i *WJrPq$R2I\&XY13ƌ$)h5GԁwpdL%UXvF#pPvPOsM] 6XP +(k3 H 5.E/Z +endstream +endobj +294 0 obj +<> +stream +xn]_1v.ml6>À%;@(H Y~2bN>9R n?ٯ~g\g;]Wbt%UBp;织g/n:m粉?O?|ܼk鳜>MOq>߇u懛<ߟ}xNۢ&-S;as W %O7Vtڮ}$sp"H&?? "3pAt=iy;ӊ)#LIīa!#y +j 0C&DS,48 nnxM[l4.ٴ^[ 9ol9lqP9?CwD60{HadQBcz4(d,&Bq7yltwl߄dr FjEl$5dI=3n\1h4F8JdʼnG.Ȋ"MH]G=<بoԐKx*Xrj]9  ~ÏC(dd!DZlmuCm^}kTL LذGޢ&M[r2vq'ALuis8[;9SNk~ϯ6m˻hcr^)uƇjt3'xXhGaV\1ڽ~D\h&#G3$hȞ34:d?N8vɺ't*zP֬)kV*s^x{n0"b>|dLJ1摌TNX<;=&lz+X֧8Y L̍NYEC!>ə+ 93ZEˠ\ao)E#b&"(&0ӞfNW=~Z@7*" (Uz[L. RCOO0bk6(G@GteVA T {иSH I\Ԏ $Ч8Ĭ0` + ˠ(o$Λca jKS%j|.%([Gi` x@L^Ploa?-k_Kykޅho +#n8 -M.hj ZxL,f6bѲM$_jxA%,Ŏ[UGpB Pcl!jIO{|O »zg}>vUkJadrMZ,P8dC> ;LГ)LO;yH2f2nث܊`8sBDs~Ss'M7&ޘ)p(4Z4S* dϒ&Biw ̫(f"GE>u:oÞd/-)ܸXչ4:5Yis6eD 32i秪%||_: ;6/KEĄ+AY/NUAU &^QK]vDOk1ZL0ĝirXI0LVVǡZ$lu- j+hG1 1hup. a`00t''Š0*3;B̆_vy:3YY)̭>9e xH`FWS +]5XV+>MIQd0ux,`q'3p7.~SEO +- Sh^g\p""SBno$hwBk&/ #z' I&vϛ00ihRѽӾh*BnNH$et9nB м=J3Nnt=.jMm}OKb7[ 6h+@بc4\CVsY``RY"cX1qA(IL8?!̆pZ=C9oHSiy[j?aq*3aq>+Vwg\-P>^R^+?\TNqݾ X; Գ#?P2Xe!:_c|3ᡫM^>0ĉ۸ҲH;6)'L4VUhq^r{@릑#)&S.ɂ3@͸&ӏ Q +I΂`2 /zS#fJzSm,O0/t6skhբ}IV>lF,:_HcN'N;4S3-z9/tv"PݏBItRSg- (N܂["lOz7[W,*.J(,`>S69zdo@S1)ڈi| + 4aI'BS0>H1ۄp+SCc+d 3î5i5D 5ĩ7\hRI-8pq2U.3\i v޹~SApJqBb%L?.rUc]LYt vهRr)̹­+QV#7 N X3rRgSڭ1 6Q- +2 e +US]_PnFڸ`9NHKj"?,`[-KDL7dg$ÈpQp5_ t5_HvlA; Yj2U",]i&VwҀԌ=η.| 8xB/ClL@~79ra;%lG/$(<n):]Ɩ.8peQv<5o\CgpqB7oa(9x:n&pȟL :Ŀ$V:tњ70^H\9gMa{)Ic_3DvY*K# ߻י2GEZygbLyK"& +θ0e&6VH$) B{[jR`+rnn߽x%E&;/_w{=ݫKbklלlh5SJ61%ոXm+^h)&SR)9`jzșӜDG:C[VZ7Iԍn&KM.OLMeM_o,_+(;Cz|~ׯ?}9{ݿ@^iA]+iEq m,re +endstream +endobj +295 0 obj +<> +stream +xْG]_c`&"D@hl?h-Ff=<xv3j_g/_~/_E9Ƣ)6=5p#]_k m &lE6ya +dBNA8Y^["!#Α-uY..D+gȨv[@ԠYLϝZ|n3kX3ibrm%8O范5P\8U6ʙx*~@dOedD? +DcYor 102>(8t."M ʙ2&ք1eY›AV-=59YfbȬG\E> n'ؿ+WZI1\ mN؄k!]l|1Curf83yfF\tqxK,iHyW\Y9ܰ#;~t8PsC_֜)-2:GJ1rS?/qb4%wb|18^~e +5x)ia f$%+$|*𺧈+P)2("_GXց!|QHA1CoMT&|2ŠSފ5QPw>WėO8ʁ2 W2LHtP@)p& aگW5e*O +U4*l6/o)̑IJ35W[|  +ƻnRbY%]"(*͙Y,8oKOUYd֊!{ءKnaCJu^:֩fSt`@#!5TWA+a)|pR3-B29ΗRhᙋp9(Q]9;/&Q\OIcȹEs`~]fd2 Vi棵S&w@9utx}Ls8 "B00 VQ.E*dy@NT\fM !,2K]ɹZ#ŕ@Gr᱑fԓw&'Б6U[u.I~?iaKy][419" n8 ljKŔRЍ Y1Js;dKdx&7>|{`el 5P BiGtG:؞Ŝ|Ճ,Z HdV=j1{Qcj2WE |RJuAв9iݟaR|Xtp\kbHI[-ߠKzX2j>' n +ѕ48ON +=& 9r хsRLDZ#JLaߒ a 0*  [8HKUѠ r>.RL* P_Oy w&Ti0kSY%k܌5 m<5h;pS%@x_ʆMM`A/4#(Bf.LWbk"=$jqaO>1-x-R4!ScYlJЄre@ G2J4?Rpx_,+w!c>,j!Ӣ$X0(ۏָ qb=& aF(B{ g3Hc!oZ8̘kcZ-`͛'?槭7e n\t&X] +#J3)؈v=D0u"cAf8P + ( vPF|Pˀk ]n'~c!}4s + jIpH­z]}-c&9kbL9~+.XkBZէTSYjz7s`raH.K4Ժ/s0ކ5nme"Pkkz7+ 罉0?wӇ=Ƶ]t&n33ff:x}M;6 b5bU+^4"t^khm(q9m~޺ dH' V=m) Z0$#н|׷q=4N85ʗp1]Ln%ggJ?0v׏vj;fl kRɅ=wM B޼C&ú48n$OOPo95BZ`f|*\/J"xL!0`# @J-Sjb^jP4 íJ稅aB;7/^u{ϝubs)[l͝39ZՄP7.Ny5.V[nB >u5jeӿOsC"B4he&˭dSJv*P܊55gUc>cTx¾x`_>':_?ϧ?QNW x|}7o_t{oMwxԅf\+[~Tx3 +endstream +endobj +296 0 obj +<> +stream +xksGb H4W  Lr\ +ԝnW;/{:]OOOOwOf|wqgzǏ>uݩ|5!JW5ZgWW7w;= t7>yk}k}~^n7@X>] ٴ:Mxr'#-vy,?EA zrD$zC@$3f9h@0MߎEwL]WvyiOK l`ÔQϐ7_=xq/^~v6VGT!lBMؑ^SLr:AFoj^ +-@n-=1wBB=B'm>Oĉ+3q31$^'xF9f`b5vn<|iut c# ]PЎ\/ diS"nM21B|pᵖjʾ!.G҈m՚X⌼gMD*n)!qDs)l0I)Z D/ƪ넁x&I(5p 40z drb9kB#y<-g%4iYTq9r&FGHf{/P4diB8Iw7ԉM;xUߧ>Xc}ly2((#oi(c]Ui808'9 %_˂$WMuǧn/3 >Dw |l0Õ4jzQݫ,tqr=Bܪi;#I/fZ,zo|& +dqaC{@sn1 Ƣ(n;޳%No,7.,;`@{)^ōO|K3Qv̀Z!ll f*9MLDyÌOe2+HS=L"k?]dyCIB $MA}ׂŒ=^M4 ̮jlJVuQD6ɓ1a1DOWdO/Ye)AM{t<46UD+PLL%i)!…xcva(}wp°CIB8 Xxy4~x+.b[Ek/!"+.O%SL63ZhqCNE,|0t +IrIH8&PXGcDv@gJ-FȃK֋I)&']h:Z%ַj?=4TpP6SB;n3|zbF\ RGӆqr2dɆaQis_ݰi28w ~;Kq%jfi\_I.p!E4M{.n[>;xhЌ +kQyzh<#ɥa_xO FjݚOה4! )f)hZֶkP-#v\EG5+Tn5: mpɴX H>@fx*wlZ'95}uU!!N j ^$sϦS|łG&QEIZ»hl#UL%z^1zŗQ(9&)AY :ay8R;gWzƆbZ) 0kzG8ZK)cUw0Vs-c:Nb}@kBC KӥbJ{ Zb_ +A4 @4XK cğsa't[3yЌyoNZϕdċCKp]"u?l;/ra@`ZRf- +#XPʗ/U9J ު5fėiUhCa j}.ec[n˻TQNR*pS\sGOϽ4dQG}f'WkIo7>;`={ͳ?u䚺v{s)[l͝}PZQ ʹ6K:-G{߬W%SR)٤ԞlgrLZvYD+?</Liޗ.և JuƇT{e0M tOʗT6uC#Kjx S_;#PUddSJٕ_,Ś4u}s_볧9{߽;{?_Hf͡n޵R R +endstream +endobj +297 0 obj +<> +stream +x]ݿb&oI:nҌv|oq|W_N|N/ʴ鴫%>N /_O//z֙?;Lg؅؂K@DSw~}m;x}eg˻A.o÷_yX +ц=s ê9\~VF4ºa ;| ^1ItDlBb _u#l-H$͹Zaj{F"+wik~]x̷~<yK>$#8~BPϘp gAX=F8P0wc$PI-Q ja[^˶$ ] r7B%Gav>]]K p%x +AZw"dcc%h?bSZŖc- +U ++5K@[je]N/zq&0Bqq2 <#Txj5ZSh^Ar Ϟmǩ\'&i02.@yكUsK&s^ʃ /5StHJo&a/ƶ:Zf,|<ٱn9:qJ,y0 vA:w_^q2E dvt;ȭs@4$%l '˂_w.l[J6CP-頻9@W?KISk!B@llXm(b;ww/W"b-ÿ)tڹK3dWF;qRXd@pǃKFވ*(Fl߄ ++M(-9;wBul/p('At'O#q L7]F)'RF*HROR{X*֪:C(g]ku[hXTbN4!D(U3g*W!MozLLޥÒK +2$Ht (v (YAH +{BdV-y\KS^E⒫-saKlW +;꣇3_uemUXB*`CH'^sroT)raIEӽ sFCbS(.fȍ*]ˍ c;kbFGEu*92;ob!@,7ٖc99@58Ʌrγ2X.U30/䱛>'}K#|Ie~R{MV[jkZPQCRo lOp<љrdXѠI @;< xluQJ??mD*n T*xizJuImY +'y#&Wt)o'.p9 PeBګ\֪+HC'w0Y8W29W~1%cF!/`=$1C)&X uN/˰M K.9E.ѤVTꅨ-s*P={9 Gf`7z"p7c6U] jM45o{Sdl&nT՘qdVm:j}P,f2: m]͏:.=N w3-~5t1^cBg%VZUh"*` TDH>AM/aқQ:1YLW7!H{<3JXdENi\:6G^Jα| uiU=&h+I~ˎM*qRAعelan23N5ɮPkW# z + yI!|mE6wf^l~1Uv%A.1R)u =t EJT2_̱*ȤF-)%"+N +g}Sݳ/FsHz϶j.e.H4QVF Ɣ5.萟z~9M=1 txngX܅J,&ۅ#!5nM9!Q l,fy^K`Lv\UtHF*P M,`y0Z~g#OZ&ʣ +8 +K5{?go=o&B*fNu)awlիJvw\Tj(uQI_2UsH}t ^Du$֢L"A`UJ3:̽'CҺ*;c!\F֫O2}%կսgߦVƴkuYlQ`/42~2Qmj +XW_#֥*Q G5'SV|[%{飮b&UUm>^ h,`rVŞ?p~P:MiXrVP}cKx!o;*5@};!/qaEҮ06US宕hf{ɇ BIMj,A 0B^6G#Mzg=)U>UPS|REoH{\JJa1Ig|)A hM%2Gdܟ OT)ۅ۸fS|HDZ3wڝ)ǯzVׯJ ְ]軜/?~U0RN:߃x%_ dwWC"+@ Ϝ;I|ԜJ;YGѽ7OP9^Ā󧁓kyu$~5Xk+62܄|AJ›ƂP> +stream +xkŔ/Zo _&0'MN-6/# +7ݷǥt hi?[q)gńdqeEWT[@Q"hYC*-%rBCw>)ma}"6fp'QφjYN|PqË YR^G{8^P)h^uҶ0y_av푽NJ@f,0IW(N1bL*{0Cхl!#=LTWYlW0 "e}l3>|yQv9g)']ea V8i*1Ѻ'Ie)pl0x n1-!:(&Xv9/:]Hڦ uptu"\9QMƶ-h&V,Q\ |P2gQHsNr!GUjVB9]Bef +$ 4,XpA (RU:pǬSrA%+m ~p?8If=;LQ!wy= gxQ<BW:X|5EeSZ^K^pB`p5^K4a>jVC#1̲[u:X`U y0cm3laDu\֛vy+wwSau̷dȠ,'>FZQSTԑzC{Iq_t6}b 5I +R ާtqœQ!Cnە$%/A̙(SJc9Q5(QPAB=M؇Yƙӱk+A$0{l 2H.,.xXqƣNs sN<(k#"_PF{!;s';x2! /Ƹx╅; ]4*zp-8F 1;/W`YYbݫG "\F\Ӿ&e!c/^kK~emf7ߢMݐC7r3bfGXmwLd|f)4Yb*2D:,X:./*O[wAF )QjDŽ<߳TfDg# Q^xJ7,.;YU ;E,7ClU&1(RRt&2kP.] /m#( tJr]hg>oTx;fNr1O,d +nOGPCq\NҖfS= +MAQ\3V$ꖐE.>Lz,^SӏMQ O ؙU,vneVOI+ -Z Oz's! yK4+1 Hnl%Ʌ +{o8m#ΦH/@aA%dh's`,u& +% IY ssdVJU`&`KN(axx;;Lj&qw U&V Il}Rzv5eĸTsPIKfâw)b&Nx6-~ ]h +:8mxĺe9ix"ƚPMLa!{oAƚv;cXlphtipEUI7,8 \QJ6C()+ȫSm0tv[9G4Q;1QfU^qI#Ɉ1KVVGb3~Aia^ǪpUrjM +̧R.Zj8ݎㆥ !I)1sސV`jMJѦ4JmiZ{I:u T+@B ɑ[е~d~~}uh=eeehoӸqU:}Vu㽗ԩ6y@?;8/&.锖quy}񮣞S6&@j?*ݰ+3@8}djEDX0,~u0't)EoHX]̰f. +Qees\ 1 1WO Z9C7@xwE-,}&su? 2&puTk'y ; Q& 48\J7IL heP#V>;%f:sK3<2y&&{?ꩆoj@\6M'65̶KMVm_ʘ6^1okV{նY-vSP͆ Q{=kPMA`AT~ ̳~}>cP{pB[:V)~#mJ7S5tqtwAS?;c'2é + %!+ nQ73U:i{9^yտ㻋Gwox\<{w7u*涐צ 5e 3<?. +endstream +endobj +299 0 obj +<> +stream +x]sݿuө~Ď&̴b?պSˉ̴szL]|c6x}|_~O~Zʮ9b2~5 BW767vuʮ~{jeWW[oqgוּ\C61wi!?|᧍P<,U(4kpZDsWnlf>wzXΔb!>տN]M>Y3%k3h\J Mj޾!7HkdbzFCk,NᕓR);YBGf]sW>ysoljoa񿻭 iS#r2(Q(*]LCkގ򤻂vTl3w5z-%EwLdJENIfW/@^Jw@ ]<<ﭱ $mAk*|/_QqNs=tمn``p~"P9uͧۢc X85%92+ *7)R5vM zfۢ'B^>Zokl‡:tD]XgR!- IFet)C̘Pj-!5H|(R&} +h;QQ$RF)iC^j4wR!(Ɛ:o|,GA}hބ3'Z2Z,%kUpC+8Pe.6){aq"fqY\)A<2jL!8KMu`lH:Jr%lH2H(5KaČ.HWQ1qsc +} n6E(!M85 d*uؙX|jYj:N:SP5OAg ^ Tee\0wPO}L9% {GIPA9JK!EcLL%ĸ,@"fUA! +ѡE%7"zvAJmH=?i +v6{)OFY$CoKDg䵞\Ÿsx MT?׆HʤYz)#a =8aD28qhJTYaڼҚ`;sڝvRځ<Z*bJNoMt9m".==bu.a+#Wdr&5G WbݨL! J!50UF؋ +2Z'kܙߦ@1%v`uSBD Irt+ fzFw R,YQrbE]D"[pݼwp8ʋ$ΌntX73(Dj%+6OfOnԀV a\Znnb ipMJԸ%Ţ*8-&@+K]v(^870ͯ6 Ԅ#ji ZNIJfS|/p"+f^-wX#S8B‘IP[ V4]wؽdUdrz &˸Vg:;/9*q&ZqZj ք:0Iۤu$yKMbe=uj. \ϧ^15d@ i{ېM$Gӛ 9$6W m%(¤;B?ɋUr9$2/ &]gp$ x:.'/f "=dJd"3+IQdv +` I(N; k֫L@r{D{>)J493G6:h3TUN܈\,_;3ݶNTL)x&pD=d)q)>4+$Rb̙bPR%.NޡMVEm?8ΔݩMr6]ޱbeH&h($}Av#["v@W6lֿI9Q~P_CgRLf0::Ց°:1]Oٸm1HNJ4A9e۽WH=?vh4os:dnLf<0ospkKs6Ʌ:QOz舀0HTQL9=zsLj-Iܸڣv #os$FL\d \,H6ll(L: DZ-64Wytk-dѤhU2$V#a3MH6L5/YC? +oð-C[dZF'UBu}M9 odENT,:k!Pvtv.f90K^3R1AG @L7U&vpFgI6` D:\ ^uY 7gi'Dʛ-fk12L&7յ/əZ6>xN q<`OKVƸs`b6#$C4Ѻt/jQs٢ ? KxDdm2zbXq0=6وߒ}%_v G*\l> +stream +xZI\ϯ)ڸ[v2`H@qv#XV#f}|dU,ϟ>C⋯~vsC O8pdbg(E)/!_Nozbxպ/1jS6Fc窸Tdβ*ۯZA85zww<tkr0h nos~iM9:;!x1.xț[Mm~i/1xfx)sF_&3I)O3߇H98]yiT$O;N1M]ڳ, oKLvfV!qu2(pvOl&&jͿ9!A!jy\9Q[_0{Kܜh7Yǭ覜k!KomWuH/۽ث3XjokMط%mY.7k_0ڶ}un4ݓ$}v.np.j8whв\̻n=lrI~hp6~g<$kCҽBeݔ8T?V>o];+Nf#n?-]S?|Ɯ1 !w[alO@\voGJ<7 ~8?z=8EZ\{9ޞ!vK.W3ȯrv|r/JVrМ(?<ݮJӥbiīǘìq_ys+vq^Z2ρs!9 Hy3#XyC`{}׻w?HbRKM]k,jNuSH4F3L,ɫDѝ=hRk d;p +Jbʎ׆ZNLXIq "U'uir/z^߽#)$ټ+SӉ- ̕L&>N^&Fb- R$p"ũ贈9Ht:pDi Ut.$ekz{X #@w52J@LXK& +pQ ItLEPFV6cϤiYF1-t)5 V}TlS-W2NlTJ\mEV]=X*آa"-+AZDq]FLjS#N480X9.6Ϻp34]lXcx[1/6h݆(ArX&L'XʢGp&cO"u֢s <7eim"[Xy杨&ɧU[l`F  dj>;j3< "_bK +o ZdJY,MFA;TQ j 1'<$/úLT VZ!;X+Q0iShАhht نFuԉϨb.39 8 @LqIImxB^(:#|flQȨ[61ڷ>ŝZǓUWTvrYs +7N-~!+ cy^`n1>Dt :>F4/sK߂\qޟóXY*QSIjٷ5m5 'Voo&v{qg= v\S%1rKRuDrT((1ZUd{ 2'tx[0PXSL +b^u5n'w7̨DAM[9+\segUrv^rDꍧ$]b]-\>+7_=/B"YѾ{,jp|77xd *C5ΰTnZ`6+Iç$ +endstream +endobj +301 0 obj +<> +stream +xuJPFOUvDD@`]\ +FMkIRB|&إnऋ(HrTų9` ըa&ʺ:l +3Ŭ*ުnh)&C|>b纝黓AvCƫ+ y') +̵8+/> +stream +x}Kq?UX 94%MQKSN#ԦQvBˡhFk ! +ՠZP~xx^ޗQx"^P c!H0 + 0l+ߣy7;׫;Q?V._tF3LEK)y z80eIPkT/%[p:8+%d"G `d_{ٹ֖gzm\8rSif1\CU` S] @o _ +endstream +endobj +303 0 obj +<>>> +stream +xջN1~bJ(2 eT)B}qG;c_I(ŽKso h\~2"i&c{pD$ͧe>?yߧ +endstream +endobj +304 0 obj +<>>> +stream +x+ԯ0Pp + Dw +endstream +endobj +305 0 obj +<>>> +stream +x P VI̧ၸPAdyIAƺE%Z0)PۡR]m81E +endstream +endobj +306 0 obj +<>>> +stream +x+ԯ0Pp + Dw +endstream +endobj +307 0 obj +<>>> +stream +x% 0 {0PU"{LcnJ\SQQd)9g?7,5lpr/V +endstream +endobj +308 0 obj +<>>> +stream +x+ԯ0Pp + Dw +endstream +endobj +309 0 obj +<>>> +stream +x5ȱ 0 >S&"!DŕnC1k<`oU {u :nB›P3f,W9% +endstream +endobj +310 0 obj +<>>> +stream +x+ԯ0Pp + Dw +endstream +endobj +311 0 obj +<>>> +stream +x 0{xk_5(Hgc0cJ%n$nJ,|KPVz`!ը2 Խ4f~  +endstream +endobj +312 0 obj +<>>> +stream +x+ԯ0Pp + Dw +endstream +endobj +313 0 obj +<>>> +stream +xE Ulq+#5 <3y162x@Dܫ1D*%f=zO1Q +]iu +endstream +endobj +314 0 obj +<>>> +stream +x+ԯ0Pp + Dw +endstream +endobj +315 0 obj +<> +endobj +316 0 obj +<> +stream +Typst 0.15.1en2026-09-10T10:42:28+02:002026-09-10T10:42:28+02:008application/pdfqXMEdx6txHcca4XpDhLi+w==qXMEdx6txHcca4XpDhLi+w==proof1.7 +endstream +endobj +317 0 obj +<>/ViewerPreferences<>/Outlines 9 0 R>> +endobj +xref +0 318 +0000000000 65535 f +0000000016 00000 n +0000000125 00000 n +0000000201 00000 n +0000000280 00000 n +0000000365 00000 n +0000000454 00000 n +0000000539 00000 n +0000000679 00000 n +0000000786 00000 n +0000000851 00000 n +0000000958 00000 n +0000001769 00000 n +0000001822 00000 n +0000002106 00000 n +0000002411 00000 n +0000002709 00000 n +0000003017 00000 n +0000003467 00000 n +0000003717 00000 n +0000003823 00000 n +0000003906 00000 n +0000004010 00000 n +0000004115 00000 n +0000004182 00000 n +0000004253 00000 n +0000004314 00000 n +0000004400 00000 n +0000004530 00000 n +0000004630 00000 n +0000004692 00000 n +0000004823 00000 n +0000004923 00000 n +0000004985 00000 n +0000005092 00000 n +0000005173 00000 n +0000005273 00000 n +0000005350 00000 n +0000005445 00000 n +0000005540 00000 n +0000005628 00000 n +0000005702 00000 n +0000005797 00000 n +0000005927 00000 n +0000006027 00000 n +0000006089 00000 n +0000006220 00000 n +0000006320 00000 n +0000006382 00000 n +0000006489 00000 n +0000006570 00000 n +0000006700 00000 n +0000006800 00000 n +0000006862 00000 n +0000006993 00000 n +0000007093 00000 n +0000007155 00000 n +0000007262 00000 n +0000007343 00000 n +0000007460 00000 n +0000007627 00000 n +0000007696 00000 n +0000007825 00000 n +0000007925 00000 n +0000007987 00000 n +0000008118 00000 n +0000008218 00000 n +0000008280 00000 n +0000008387 00000 n +0000008468 00000 n +0000008597 00000 n +0000008697 00000 n +0000008759 00000 n +0000008890 00000 n +0000008990 00000 n +0000009052 00000 n +0000009159 00000 n +0000009240 00000 n +0000009345 00000 n +0000009427 00000 n +0000009516 00000 n +0000009602 00000 n +0000009731 00000 n +0000009831 00000 n +0000009893 00000 n +0000010024 00000 n +0000010124 00000 n +0000010186 00000 n +0000010293 00000 n +0000010374 00000 n +0000010662 00000 n +0000010745 00000 n +0000010840 00000 n +0000010926 00000 n +0000011056 00000 n +0000011156 00000 n +0000011219 00000 n +0000011350 00000 n +0000011450 00000 n +0000011513 00000 n +0000011621 00000 n +0000011704 00000 n +0000011836 00000 n +0000011939 00000 n +0000012004 00000 n +0000012182 00000 n +0000012314 00000 n +0000012417 00000 n +0000012482 00000 n +0000012615 00000 n +0000012718 00000 n +0000012783 00000 n +0000012892 00000 n +0000012977 00000 n +0000013109 00000 n +0000013212 00000 n +0000013277 00000 n +0000013410 00000 n +0000013513 00000 n +0000013578 00000 n +0000013687 00000 n +0000013772 00000 n +0000013904 00000 n +0000014007 00000 n +0000014072 00000 n +0000014205 00000 n +0000014308 00000 n +0000014373 00000 n +0000014482 00000 n +0000014568 00000 n +0000014719 00000 n +0000014851 00000 n +0000014954 00000 n +0000015019 00000 n +0000015152 00000 n +0000015255 00000 n +0000015320 00000 n +0000015429 00000 n +0000015515 00000 n +0000015633 00000 n +0000015765 00000 n +0000015868 00000 n +0000015933 00000 n +0000016066 00000 n +0000016169 00000 n +0000016234 00000 n +0000016343 00000 n +0000016429 00000 n +0000016541 00000 n +0000016623 00000 n +0000016705 00000 n +0000016799 00000 n +0000016880 00000 n +0000016958 00000 n +0000017039 00000 n +0000017156 00000 n +0000017230 00000 n +0000017304 00000 n +0000017411 00000 n +0000017752 00000 n +0000017789 00000 n +0000017835 00000 n +0000017881 00000 n +0000017927 00000 n +0000017973 00000 n +0000018019 00000 n +0000018065 00000 n +0000018102 00000 n +0000018258 00000 n +0000018407 00000 n +0000018665 00000 n +0000018820 00000 n +0000018979 00000 n +0000019125 00000 n +0000019345 00000 n +0000019492 00000 n +0000019764 00000 n +0000019922 00000 n +0000020080 00000 n +0000020229 00000 n +0000020478 00000 n +0000020628 00000 n +0000020878 00000 n +0000021037 00000 n +0000021196 00000 n +0000021355 00000 n +0000021502 00000 n +0000021789 00000 n +0000021937 00000 n +0000022189 00000 n +0000022346 00000 n +0000022506 00000 n +0000022665 00000 n +0000022821 00000 n +0000022982 00000 n +0000023133 00000 n +0000023397 00000 n +0000023547 00000 n +0000023806 00000 n +0000023956 00000 n +0000024237 00000 n +0000024386 00000 n +0000024606 00000 n +0000024756 00000 n +0000025010 00000 n +0000025047 00000 n +0000025084 00000 n +0000025136 00000 n +0000025188 00000 n +0000025240 00000 n +0000025292 00000 n +0000025345 00000 n +0000025397 00000 n +0000025448 00000 n +0000025500 00000 n +0000025553 00000 n +0000025606 00000 n +0000025658 00000 n +0000025711 00000 n +0000025763 00000 n +0000025816 00000 n +0000025868 00000 n +0000025920 00000 n +0000025972 00000 n +0000026025 00000 n +0000026077 00000 n +0000026128 00000 n +0000026181 00000 n +0000026234 00000 n +0000026287 00000 n +0000026340 00000 n +0000026393 00000 n +0000026445 00000 n +0000026498 00000 n +0000026550 00000 n +0000026601 00000 n +0000026652 00000 n +0000026705 00000 n +0000026756 00000 n +0000026809 00000 n +0000026910 00000 n +0000026988 00000 n +0000027069 00000 n +0000027147 00000 n +0000027228 00000 n +0000027306 00000 n +0000027387 00000 n +0000027465 00000 n +0000027546 00000 n +0000027624 00000 n +0000027705 00000 n +0000027783 00000 n +0000027940 00000 n +0000028052 00000 n +0000028153 00000 n +0000028265 00000 n +0000028377 00000 n +0000028478 00000 n +0000028590 00000 n +0000028827 00000 n +0000028968 00000 n +0000029693 00000 n +0000029943 00000 n +0000030079 00000 n +0000031416 00000 n +0000031660 00000 n +0000031797 00000 n +0000032092 00000 n +0000032295 00000 n +0000032443 00000 n +0000032590 00000 n +0000032727 00000 n +0000032855 00000 n +0000033017 00000 n +0000033173 00000 n +0000033288 00000 n +0000033405 00000 n +0000033533 00000 n +0000033700 00000 n +0000033892 00000 n +0000034084 00000 n +0000034284 00000 n +0000034548 00000 n +0000034677 00000 n +0000034806 00000 n +0000034888 00000 n +0000035498 00000 n +0000045031 00000 n +0000045113 00000 n +0000045908 00000 n +0000060571 00000 n +0000060650 00000 n +0000061131 00000 n +0000062616 00000 n +0000063837 00000 n +0000067398 00000 n +0000071003 00000 n +0000074369 00000 n +0000078008 00000 n +0000082168 00000 n +0000085064 00000 n +0000088282 00000 n +0000088625 00000 n +0000089032 00000 n +0000089497 00000 n +0000089727 00000 n +0000090023 00000 n +0000090251 00000 n +0000090549 00000 n +0000090779 00000 n +0000091068 00000 n +0000091296 00000 n +0000091583 00000 n +0000091810 00000 n +0000092095 00000 n +0000092322 00000 n +0000092435 00000 n +0000093508 00000 n +trailer +<> +startxref +93712 +%%EOF \ No newline at end of file diff --git a/XMPP - 25 years/XMPP_logo_notext.svg b/XMPP - 25 years/XMPP_logo_notext.svg new file mode 100644 index 0000000..db39a4b --- /dev/null +++ b/XMPP - 25 years/XMPP_logo_notext.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/XMPP - 25 years/build.sh b/XMPP - 25 years/build.sh new file mode 100755 index 0000000..b54cd65 --- /dev/null +++ b/XMPP - 25 years/build.sh @@ -0,0 +1,6 @@ +#! /usr/bin/env bash + +cd "$(dirname "$0")" +name="$(basename "$(pwd)")" + +typst compile --root .. ./main.typ ./"$name".pdf \ No newline at end of file diff --git a/XMPP - 25 years/dev.sh b/XMPP - 25 years/dev.sh new file mode 100755 index 0000000..925bbe5 --- /dev/null +++ b/XMPP - 25 years/dev.sh @@ -0,0 +1,15 @@ +#! /usr/bin/env bash + +cd "$(dirname "$0")" +name="$(basename "$(pwd)")" + +t="$(mktemp --suffix=.pdf)" +if ! typst compile --root .. ./main.typ "$t"; then + echo "Failed to compile $name/main.typ. Please fix errors and run me again." + exit 1 +fi + +echo "Initial compilation successful. Now starting watch mode. Opening $t" +xdg-open "$t" + +typst watch --root .. ./main.typ "$t" diff --git a/XMPP - 25 years/main.typ b/XMPP - 25 years/main.typ new file mode 100644 index 0000000..58ab82f --- /dev/null +++ b/XMPP - 25 years/main.typ @@ -0,0 +1,125 @@ +#set page( + paper: "a4", + margin: (inside: 2cm, outside: 1cm), +) +#set text( + font: "DejaVu Sans", + size: 13.7pt, +) +#set par(justify: true) + +#align( + center, + text( + size: 48pt, + // font: "Communard", + [ = Jabber/XMPP ] + ) + text( + size: 19pt, + [ = 25 years of Digital Independence ], + ) +) + +#align( + center + horizon, + image(height: 50%, "XMPP_logo_notext.svg"), +), + +#align( + center + bottom, + [ *Daniel Gultsch - August 24, 2026* ], +) + + +#pagebreak() + +#show heading.where(level: 2): set block(above: 1.5em, below: 1.5em) +#set page( + numbering: "1", +) + +== Infrastructure + +“We should own our infrastructure.” A lot of people would instinctively nod in agreement with that statement. Yet who “we” refers to shifts depending on the type of infrastructure. Highways, railways, bridges, and ports require nation-scale efforts. The water supply is usually put into the hands of municipalities. And the desire to own infrastructure goes down to a much smaller level: Owning your home is a dream for many—though such ownership doesn’t necessarily have to be organized on an individual level. Instead, cooperatives or city-owned housing #footnote[#link("https://en.wikipedia.org/wiki/Housing_in_Vienna")] can provide similar benefits. + +China’s neo-colonialism, which manifests, among other things, as building and buying infrastructure in sovereign nations, is rightly criticized by many. Not selling your water supply to Nestlé is a universally accepted principle, and landlords are one of the most hated classes. + +For a long time, Europe has not held digital services to the same standard. In part, this can be explained by Europe implicitly including American corporations in a collective “we”—~an assumption that officially fell apart under the current Trump regime, but should have been regarded with skepticism well before then. Corporations are not our friends. However, the larger factor at play is that Europe simply did not consider digital services infrastructure. While anti-Americanism is en vogue again and drives much of the digital sovereignty movement, Europe must be careful not to simply replace American corporations with European ones, but to strive towards collective ownership instead. + +Under capitalism, profit-oriented companies will always play a part in building and even operating our infrastructure. However, they need to be forced into a position where they are easily replaceable. It’s acceptable to hire a company to build a road, but when it comes to maintaining and repairing it half a century later, we need to be able to hire a different company for the job. It’s acceptable to hire a company to build and operate the backbone transmission lines, but we don’t want that company to own the entire power grid. We want smaller players to be able to connect to and interoperate within the grid. That’s where open standards come in. + +The Internet used to be —~and to some degree still is~— built around standards. A data center operator can buy servers from one company, switches from another, routers from a third, and connect them to a backbone internet provider that runs hardware from yet another company. If a company goes out of business or shifts to anti-consumer practices, the next generation of hardware can easily be ordered from a different vendor. The need for and the benefits of this supply chain independence are easily understood even by people who don’t operate data centers for a living. However, when it comes to communication tools, even the tech-literate fail to apply the same critical scrutiny. + +After breathing, eating, and procreating, communicating is probably the fourth most important thing humans do. Yet we often fail to recognize our communication tools as part of our infrastructure. + +Digital rights advocates often point to Signal, Wire and Threema as examples of communication tools developed and operated by entities with slightly more ethical business practices than their Big Tech counterparts. What most privacy enthusiasts fail to understand is that these companies are still in the business of operating walled gardens with no escape. They do not interoperate. It’s not that Signal has done something inherently malicious —~although paying its CEO close to a million dollars a year and running its servers on AWS are certainly questionable~— it’s that we don’t have a hedge in place if it ever does. + +Open-source software is orthogonal to this problem. It helps to ensure that the software isn’t spyware —~unlike WhatsApp and other Meta products #footnote[#link("https://localmess.github.io/")]~— and that the end-to-end encryption is sound, but it does not protect us if Signal shuts down its servers tomorrow or ceases EU operations #footnote[#link("https://mastodon.world/@Mer__edith/112535616774247450")]. Open-source alone is not sufficient to meet the requirements we should have for our infrastructure. + +To live up to the standards we set for ourselves, we need to design systems in which self-hosting is structurally possible but not strictly necessary. Like owning a home, running your own server should be possible, and so should collective ownership. Digital systems can and should replicate the advantages of cooperative housing alongside those of individual ownership. + +Treating digital communication as true infrastructure can only be achieved by adopting and mandating open standards. + +The Extensible Messaging and Presence Protocol (XMPP) #footnote[#link("https://www.rfc-editor.org/rfc/rfc6120.html")] #footnote[#link("https://www.rfc-editor.org/rfc/rfc6121.html")] is a standard for communicating online. It wasn’t created to fit a particular zeitgeist or address the current political climate. In fact, its roots go back more than 25 years. + +== Standards + +Interoperability and vendor independence are achieved by setting and adhering to standards. To avoid individual vendors pushing standards that explicitly or implicitly exclude potential competitors or otherwise give unfair advantages, standards-developing organizations (SDOs) are set up for mutual cooperation, and usually have safeguards in place that prevent a single company from becoming too powerful. Well-known examples of such organizations include the ISO, the IETF, the W3C, and the Unicode Consortium. + +There is a distinction to be made between a vendor publishing its API and allowing others to use it, and stakeholders coming together to collectively develop a standard within the framework of an SDO. Organizations like the IETF succeed because they force different people with different needs to agree. Protocols aren’t dictated by the priorities of a single company; instead, they are reviewed and tested by competitors, security researchers, and independent developers. + +Element, formerly known as Riot and NewVector, develops an instant messaging product with a feature set —~such as self-hosting and federation~— similar to that of XMPP-based solutions. Notably, however, it chose not to adopt XMPP, but instead published its own API under the name Matrix for others to use. Unlike with traditional standards, Element maintains tight control over any modifications or additions to its public API. Key leadership positions in the Matrix Foundation are predominantly held by current and former Element employees. Getting outside contributions accepted into the specification is notoriously difficult. #footnote[#link("https://github.com/matrix-org/matrix-spec-proposals/pull/4174")] Yet European public administrations, in their push for digital sovereignty, routinely fall into the trap of procuring such single-vendor platforms, confusing an open-source codebase with an open standard. + +It’s natural for standard proposals to originate within a single organization. JMAP, a modern replacement for IMAP and SMTP Submission, which is not too dissimilar from Matrix —~a JSON API over HTTP ~—started within Fastmail before being brought to the IETF. Jabber started out as an open-source community project before it was brought to the IETF and renamed to XMPP. Ideas start small, but to create a standard, outside feedback, collaboration, and the structure of an SDO are needed. + +For consumers, the difference in the approaches of Fastmail and Element is striking. Not only was JMAP noticeably improved on a protocol level while going through the IETF working group process, but it now has at least three independent servers and numerous independent client applications. Matrix, on the other hand —~despite dating back to the same era around 2014~— is still stuck with one predominant reference implementation and a second alternative still in its infancy and struggling to gain traction. Operating that reference implementation is notoriously resource-intensive, which makes self-hosting difficult for smaller organizations and individuals. Element sells closed-source plugins to speed up performance. + +== The X in XMPP + +The origins of XMPP —~which started out as Jabber~— go back over a quarter of a century. The original RFC #footnote[#link("https://www.rfc-editor.org/rfc/rfc3920.html")] dates to October 2004 and only received minor revisions in March 2011 @ref4. Requirements for instant messaging will naturally change over a time span that long. Luckily, the X in XMPP stands for Extensible, and extensions provide a way for the protocol to adapt and change over time. Extensions to XMPP are called XMPP Extension Protocols (XEPs) and are managed by the XMPP Standards Foundation (XSF). The XSF doesn’t write extensions itself; rather, it provides the framework of an SDO for developers to propose and standardize their own. + +Adapting to changing requirements hasn’t always been smooth sailing. XEP-0198 (Stream Management), an extension crucial for preventing message loss in mobile deployments, was stabilized in 2009, but only gained widespread implementation around 2014–2015. The iPhone was released in 2007; the HTC Dream, the first commercial Android phone, followed in 2008. OMEMO (XEP-0384), XMPP’s specification for industry-standard end-to-end encryption, gained traction from 2016 onward, three years after Edward Snowden #footnote[#link("https://en.wikipedia.org/wiki/Snowden_disclosures")] exposed the NSA’s global surveillance and put the need for E2EE on the map. The articles “The (Sad) State of Mobile XMPP in 2014” by Georg Lukas #footnote[#link("https://op-co.de/blog/posts/mobile_xmpp_in_2014/")] and “The State of Mobile XMPP in 2016” by this author #footnote[#link("https://gultsch.de/posts/the-state-of-mobile-xmpp-in-2016/")] illustrate this rocky transition into the mobile era. + +This demonstrates that merely having specifications is not enough. Standards need to be backed by multiple, preferably independent, implementations. Today, the XSF keeps track of the implementation status of its XEPs #footnote[#link("https://xmpp.org/extensions/")]. This data helps authors and the XSF guide proposals through their lifecycle, such as determining the right moment to advance an XEP from Experimental to Stable. It also allows developers to easily identify other clients and servers that support a given specification for interoperability testing. Finally, by providing a reverse lookup of which software supports which features, it helps end users find the right client for their needs. + +Modern clients like Dino on Linux or Conversations on Android are on par with alternatives built on proprietary protocols. Recent additions to the feature set include emoji reactions, cross-device read-state synchronization, and time zone indicators to avoid messaging contacts during their local night hours. A unique feature among self-hostable instant messaging solutions, which sadly became relevant after a state-sponsored attack on a public XMPP provider #footnote[#link("https://notes.valdikss.org.ru/jabber.ru-mitm/")], is channel binding, a mechanism to prevent certain machine-in-the-middle attacks. + +Looking to the not-too-distant future, the XMPP community is currently working on message replies, gallery-style multi-image sharing, and OAuth support. All of these features already have experimental XEPs backing them, but the community is currently awaiting implementation experience before advancing them. Meanwhile, the community is also exploring options for updating the RFC and bringing the protocol back to the IETF as “XMPP 2.0.” + +Instant messaging is not a homogeneous user experience. A messenger for teams might require a different feature set than something optimized for use with friends and family. Not every XMPP client aims to provide the same user experience, but the standards exist for developers to build whatever specialized client their users need without inventing a protocol from scratch. + +== A future in the Past + +There is something fascinating about the fact that XMPP has developers in its community who are younger than the protocol itself. It has quietly outlived venture-funded startups, proprietary platforms, and entire tech cycles. That endurance provides the resilience we need in challenging times. It is the anchor, the backbone, the infrastructure. + +Matrix reinvented the wheel as a rubber-tyred metro. On paper, it provides real benefits, such as climbing steeper inclines, which are then used to aggressively advertise and lobby local governments to buy in. But in the end, the municipality gets locked into a single vendor. + +A changing geopolitical situation and the realization that Big Tech holds too much power lead us to seek out and develop alternatives. But what if the alternative has been right under our noses for over 25 years? The standard for instant messaging —~RFC 6120: Extensible Messaging and Presence Protocol (XMPP). + +#pagebreak() + +#set page( + numbering: none, +) + +#align( + center + horizon, + block( + height: 50%, + width: 80%, + [ + = About standard federated instant messaging + \ + + In this text, Daniel Gultsch, maintainer of the Conversations XMPP client for Android, celebrates the 25 years of the XMPP RFC standard, reminding us why we cannot trust + a single actor with our communications. + + Despite all its limitations, the Jabber/XMPP ecosystem retains today vibrant non-profit communities and projects for smaller hosts independent of the tech giants. + ] + ) +) + +#align( + center + bottom, + image("../resources/noslop.svg"), +) diff --git a/resources/noslop.svg b/resources/noslop.svg new file mode 100644 index 0000000..813c295 --- /dev/null +++ b/resources/noslop.svg @@ -0,0 +1,120 @@ + + + +NO SLOP EDITIONS