From 7e6e04fd4ff6ebe11e14fe32f652f6494385ad57 Mon Sep 17 00:00:00 2001 From: SeharShakir Date: Thu, 6 Aug 2026 11:11:57 -0400 Subject: [PATCH] this_is_my_assignment1SQL --- .../Microcredential_Cohort/Assignment1.md | 1 + .../Microcredential_Cohort/assignment1.sql | 77 +++++++++++++----- .../logical_model_diagram_assignment1.png | Bin 0 -> 31924 bytes 3 files changed, 58 insertions(+), 20 deletions(-) create mode 100644 02_activities/assignments/Microcredential_Cohort/logical_model_diagram_assignment1.png diff --git a/02_activities/assignments/Microcredential_Cohort/Assignment1.md b/02_activities/assignments/Microcredential_Cohort/Assignment1.md index 45f0f5250..3ae22d4c2 100644 --- a/02_activities/assignments/Microcredential_Cohort/Assignment1.md +++ b/02_activities/assignments/Microcredential_Cohort/Assignment1.md @@ -120,6 +120,7 @@ Steps to complete this part of the assignment: #### SELECT 1. Write a query that returns everything in the customer table. + 2. Write a query that displays all of the columns and 10 rows from the customer table, sorted by customer_last_name, then customer_first_ name.
-
diff --git a/02_activities/assignments/Microcredential_Cohort/assignment1.sql b/02_activities/assignments/Microcredential_Cohort/assignment1.sql index 518415744..9e9ef05f5 100644 --- a/02_activities/assignments/Microcredential_Cohort/assignment1.sql +++ b/02_activities/assignments/Microcredential_Cohort/assignment1.sql @@ -6,7 +6,8 @@ --SELECT /* 1. Write a query that returns everything in the customer table. */ --QUERY 1 - +SELECT * +FROM customer; @@ -16,8 +17,10 @@ /* 2. Write a query that displays all of the columns and 10 rows from the customer table, sorted by customer_last_name, then customer_first_ name. */ --QUERY 2 - - +SELECT * +FROM customer +ORDER BY customer_last_name, customer_first_name +LIMIT 10; --END QUERY @@ -27,7 +30,11 @@ sorted by customer_last_name, then customer_first_ name. */ /* 1. Write a query that returns all customer purchases of product IDs 4 and 9. Limit to 25 rows of output. */ --QUERY 3 - +SELECT * +FROM customer_purchases +WHERE product_id = '4' +OR product_id = '9' +LIMIT 25; @@ -42,9 +49,10 @@ filtered by customer IDs between 8 and 10 (inclusive) using either: Limit to 25 rows of output. */ --QUERY 4 - - - +SELECT *, quantity * cost_per_quantity as price +FROM customer_purchases +WHERE customer_id BETWEEN 8 AND 10 +LIMIT 25; --END QUERY @@ -55,8 +63,12 @@ Using the product table, write a query that outputs the product_id and product_n columns and add a column called prod_qty_type_condensed that displays the word “unit” if the product_qty_type is “unit,” and otherwise displays the word “bulk.” */ --QUERY 5 - - +SELECT product_id, product_name, +CASE + WHEN product_qty_type = 'unit' THEN 'unit' + ELSE 'bulk' +END as prod_qty_type_condensed +FROM product; --END QUERY @@ -66,8 +78,17 @@ if the product_qty_type is “unit,” and otherwise displays the word “bulk. add a column to the previous query called pepper_flag that outputs a 1 if the product_name contains the word “pepper” (regardless of capitalization), and otherwise outputs 0. */ --QUERY 6 +SELECT product_id, product_name, +CASE + WHEN product_qty_type = 'unit' THEN 'unit' + ELSE 'bulk' +END as prod_qty_type_condensed, +CASE + WHEN LOWER(product_name) LIKE '%pepper%' THEN 1 + ELSE 0 +END as pepper_flag - +FROM product; --END QUERY @@ -78,7 +99,12 @@ contains the word “pepper” (regardless of capitalization), and otherwise out vendor_id field they both have in common, and sorts the result by market_date, then vendor_name. Limit to 24 rows of output. */ --QUERY 7 - +SELECT * +FROM vendor as v +INNER JOIN vendor_booth_assignments as vba +ON v.vendor_id = vba.vendor_id +ORDER BY market_date, vendor_name +LIMIT 24; @@ -91,10 +117,13 @@ Limit to 24 rows of output. */ -- AGGREGATE /* 1. Write a query that determines how many times each vendor has rented a booth at the farmer’s market by counting the vendor booth assignments per vendor_id. */ ---QUERY 8 - - - +--QUERY +SELECT v.vendor_id, v.vendor_name, +COUNT (vba.vendor_id) as booth_count +FROM vendor_booth_assignments as vba +INNER JOIN vendor as v +ON vba.vendor_id = v.vendor_id +GROUP BY v.vendor_id, v.vendor_name --END QUERY @@ -105,9 +134,14 @@ of customers for them to give stickers to, sorted by last name, then first name. HINT: This query requires you to join two tables, use an aggregate function, and use the HAVING keyword. */ --QUERY 9 - - - +SELECT c.customer_id, c.customer_first_name, c.customer_last_name, +SUM(cp.quantity * cp.cost_per_quantity) as total_spent +FROM customer as c +INNER JOIN customer_purchases as cp +ON c.customer_id = cp.customer_id +GROUP BY c.customer_id, c.customer_first_name, c.customer_last_name +HAVING SUM(cp.quantity * cp.cost_per_quantity) > 2000 +ORDER BY c.customer_last_name, c.customer_first_name --END QUERY @@ -124,9 +158,12 @@ When inserting the new vendor, you need to appropriately align the columns to be VALUES(col1,col2,col3,col4,col5) */ --QUERY 10 +DROP TABLE IF EXISTS temp.new_vendor; +CREATE TABLE temp.new_vendor AS +SELECT * FROM vendor; - - +INSERT INTO temp.new_vendor (vendor_id, vendor_name, vendor_type, vendor_owner_first_name, vendor_owner_last_name, vendor_address) +VALUES (10, 'Thomass Superfood Store', 'Fresh Focused', 'Thomas', 'Rosenthal'); --END QUERY diff --git a/02_activities/assignments/Microcredential_Cohort/logical_model_diagram_assignment1.png b/02_activities/assignments/Microcredential_Cohort/logical_model_diagram_assignment1.png new file mode 100644 index 0000000000000000000000000000000000000000..d11ed55d9ceac33e546aef422ec5ab638678108c GIT binary patch literal 31924 zcmeFY1z45a)-SGzfFj5O5$RYU-Q7qnkP?xSmR!^#79EO8H%OP#NJ>g0ASvA~-O>^Q z{@+EMr-xzaD-$(KgjGF{EuUxr;AuT2T_{x>5 zVZeVLG!&r3`nsLXl`Hr2;Sy?a3r8cUx#1NmcCqtcRBS9JFk3hkyEqjao1T>wlL1uE z*hbI7mdVl(4ir(bOHi>q09qmb*u^etfe%YP3&ZnXkMxWU8Cel+*;t?k=Vc1)ikym~ z9JVTu$I2XvQgWhZ3iiJr?Q%>DM~ID{m5Ch8z|b5R!ocx-2v!z$U{b`O22STCoLs;c zqQKbZa-NH65d}(6=ZgigUi34zgBlpxUW|6$6Apu!!=YBcE!2luS{mwK(BNW3JsTUC z!*81z!OSmqchSZQ*!XWoM-(XO>zV)8QdOt{+~mA14;%OSS`e+J457v*mou|+@t)UM z=v_9xn90^e&j99d-v4ZKzjEcAj+fN5fx&?Beqq|L)t8Md9K{UH5yZZv;|0a2*d+hg z`~Hm@HiniLTlwD_PRUWtQcUlGwfqwsHB%>hc56-rMmC;Hn*Du}OWMGlE(vY}v$HfX zL@)`ERZ#~MDBMuVN>3lb4hKNQfHD)fg*ouW3j74lfw>sW9Aw+2gmP(>Ay}2*RwG;g#Z7TlwIsh zu>L0Me@>l?)@Snd&szR#V#x9T#1LTapZ+0E^gk0rt_unI&k5mwk$l9W5#oJ0<^QoF zcyWIJpC#E7 zUv6b^8$C-~J$*P7W~l>*0@3k*6Um<003)55_FqQ)&6)U5sD9SVSmZy}{T$pE&ikeF z#`@QTg#S|9_^+Y+5%}if5`&fF4BDOX^_M`j1RE6(4;8P(1$g{7J7NFa*t1`{1Q!hF zMn~e{a{u=ED(}$dFnVX+@8M<7cRZYKj*@4 z9il&C#xJ)uf8a0uC$!!loB`I~(f{{;Fy~)R>9PGwafrW$()$Cxo&$|%mqzar75!rT z{#JL<`@dZgvT8xks|kZ+rR?Xdj^DA*;r_RyI>Z5 zn7N&Wr7bP+6G)x0LFgeCz|Uu~(6a+nm|^}h+3u=89<)1|Oox@;H1#&+qS{U;UN*=7DeNIJSq3;26_ z*RR+8XSJ6JW#<(a9S|vM=lM171eo7mxq@{?TKvHi$E#}-TA3CDcBq@YN8PBxv2k?w zausi(WO*#0lu+vKqCGZMbirYuVZ6C6ro<@jDl5cKeIGE*nL{P4huTgR!<>SeuT!$`_(_%)SZJ zq`5}Fxo1G!!WUvkwpz!vDl#qA=1uDUYoWN^*N|E0DR)q6dAqQ$2nCA<@?&R;f@HK* zuzJtS4s$9bL?JVBZ|E2F<^FIqN+jPpKZ=4EK?V|`o#(axxG@7667(?z3kJ|z_S)w+ zp=Z4bz#%~ff#||TiD#c2SW*x+Oh5WM+W}?O2p^i;LI+>J*zD}~DMY0N3ssn#o4?tg zbb&QHdyO2An&n3*DF~LdDv6ty%f~`Wzm1jU7d(HQk`^)LlZa6^ZquIbQyOSB669L{ z9`le&X_%${6<#@MQ=GML-PuGKca$Vw)u|gNC{I5Bd9ppM9~_|{#G8I&EKoQ~+ZhVw zUTQG!meO(E`aDl9eAvoT`e8QF?fZz_WJaR%`>NyZ_P8#maI_pcq-80U5`(f(=D?Mv zcRk|b`3@8L5Dmx;=V9kl$J9`jU=2q%qn9MCi9U(4%bsB9rsVDn#WQnMGC{uiH%e{U z`85?zIStot3y^&rhxf_Ffdld|K-Ho6C-E(xUZJ+5lDa1cTMH7J zyG{L&H1fx{%C0o#Pvpteq(%j1?4^5Ct~(v;nG1AmD1<3zK1@Rn>MfoV~|$@33OVkG^zRWU^#PTSNQ#iCq~43$^_D&r`*t zKvSIu3(11yRmIpH#=5%x(tUcY!kL&T4+<%GAR5!YN{F(c<+o{Q;>pJ!$hD`H~ zI0_5~Q8Ow>jQwjsni^ z$Kxf4u&JcPK-R!+u)wwyj{Dw#Dz_t=H?<~0YMb;b>v2zKx_D*-Y&v-tKU!qYnD%3X z(iVJe=i&*{kHgWvfIQ%ow#Y7_%65cRPQ&l@f_+5G5*;jf9Nt%Q70<;!E3ElMuIVsg z*I^=)A}H&fmF7bu`Hbs!Kd7OAV@95DIn}5+HWV$R1;3d13JF(v=gV}~*f>uuTH8I4 z6r}LTP(TIK?3(dYiCOy4rtUj_5?W?d&SR*z8D-;8%$h4VAX+hVgOVq;r>nJowA6vQ zdsnR`=}zWkv5oHN!IkF+Y42lHBvwPo1W)zY((rU3j|W(95K3(4Ja|4Iq1pz`NGRp4 z$X@0l?0d2frE#pstqqN(AD?E{3UmlwvdUG`h_|BZvzZA?_Z4X)@D$+-Q$)*EtAfV* zOj^G4nN+@AC7*B7EgK;&&T5z3(-%He7ZY?95}~)HURB_3@cP|@e707*e2>#2;U7i! zeNmKVpU%eC-8k*v1yxsBJtVLxEiCs-j>4=+&6?h$3oMqD=FC~Z!Q?dW->XMwHXoGU z)Pna&bQFjGcvvdcE=)L#4e}(}O2<{;nSMR95;N)3uvL%6KmBwT?Cdl(JRIG&&kqM= zD4YyXiP*&|(L>2_Eyui(el>N%o`V}jSRK3{@f?1h>~otTCH@HYI`*Ybq;WK>f>L2h zjjxwYX}^lQ4ikh0Wd)&efvKxlaX+iH4!h3=a#vXRoXqfIuHtTM5q|TU?j{vHF=cld z{%i@(RP-N_6qFS1wWjlKB;NX2=W(s$=y713+12Wx`o9wK9V z@RAqkngSY9&4ZzkSCTkgO*ZWbn?z9ySB3?`)VUx`9m#Be$eDF|h%i=Z{tgrDQHKgZ zXD0-wNN6&G#K}NX$SU`MvqZ1?F{b3~bHU>ZgzdIq78t0)_7K;VKpcqV>v1E9X~lK5 z0h=0w*PBHRdLiEkprv4q zmgta&u%SOuG6HNnT0bdRX^Sl%n^M%Th+3=52Ckn~(#{b>aQ%2_v#+pDKtw z;TGD4#L)p;Bm=1-BaDwIZ7K#p%MdgMRwN}mN>DkNf`ZlO9_cG8cZc5H5>YaC{#zbd zeAs?AWuMLMHF7BOR%8%dV-QACa-eL#ExmxCE`ny*z;LoJRknjf$!2kYZwv%Uy*v}u z<?nGW7;tWjxNH3N4e0ngj)5s6~y$fgjxr+v{3;oGGXd45TR1AXI zW(cAaOutD&%K;&6RPSq-ue{H0Gs~|ol`Nl(RlbKnAAw?X?q+MILTTWb$K?Pxc{LxY zVHp!vd?y@@ff{K@(^k$2(AbfE2gS}~Xip%87FS~m-ee@XS7^E)&fk!rD1f6aU6I%g zD&{>}N{Oq;!K=2;JuPb&E} z<`|Horl9JNM(}o}Gk`qIv4a(!?hb0eB5b<^%UTJ?<{$8w>h}hPC&mNtWP1y|531g@ zC$P3~+NQ~`Uz9LgmO{Z*VWd&L-km44$NS9e!FwW|)9t7;Sn_>is`jujuy@)s3s;g# z1f)T4uWFo2M(69oe2v0e=vdmf?ju?zJDy zNHQvW>@NUt&0;s{`RU>O*wm@L{A@_a8+_OB8*=HM!2Y;xAhFewx6Xjl4ifv!*Zp1@ zW=^Lp>rqUuIvw5+)OLh0#N2?;JtWkoX=={W=^kA(BIb&vWUt$`RvWMB-&=o!gnAtXuy@i7kQ6T8i;#EK=%P8+r6+AU zDe4lE5ig$$lewwM^TcUhHqIyblt{p_Koh_ifwl`)!_rYEPO2(v-6U3Y^*x!}b?o#{ z`62cCtIIT4Z%q%(^qfc}2<$OxIeNd(!tg2_J4Gcb)=S3(xZop(QJkunsWr0BM$QCs zjqilDKOQ~Hk|p%kmU6EC=$#x#l8RUF26zp$NF{o4923{^G#>?!r1m*VG%mnH3LX+T zZ^ZIxH_*tJ+j;z~XjjQ*J@?u{vBxcz=Fq_q(FTUBMaF>|KJ5j3kz`C9XUB1DU zofp7l1(wVPMCz^KXuDz}*K`O|+_zrUb2vKp%cpXUHmPRlj;lU~RijRN6O<;<^YUrH zd(^Y0XiWIG%i@gq53FzA7CyF`^^rrhw7_?dfn#c5H&dVniI!HM ztF|tLt;3uoGEKzM{<<9xyow);b=~B>^i3tL^<_FepP==sx4kNC)sMW7%+v6!nUW3~ zsp&KTqig|w1ev!(wn&gqVAq;?%Fjr^OdR`O3iaX1lYP0adkMR%ZbOP38Tzs46Hbc> z65g`c)aC;#2<+m5das!Ij2%JJ*75SK-4VFE1oeA}9K=qIh*WTQPe!K!WqSW;HD5In zoJVlNRm$g$t8w6?gjrB|@_j6BcQm||sT4npY~Mn_D*^&GmwZ0h8G4UkdpA8$ca-V1 z9&W3%gg6W>f9O$0b}D&>+`1@UUZEAkkd{M2^M_XSj4-Fru?TbXtF6&!w;qV-y90`s ztB(@YlcS}!(dUzuy^?d}wwhbUg}$WxCiF$cvKHIPv%sstl8-;~(I+@aF3P-G#4pEF zF$}b&+D~-(MoUEKW`sQ4acbS`;KU>3zrF^7a1qaaNIJ%m=Xtj_QUuu*sqex(26=B0 z4)mDmXR{x*D!3Oek+l&Xm&kz>WeH7Z&8U0Lu1DdNF{ zcMou-^$4EQkNZq=gp*uza%OktG;mTB5C#;91eLGP!b;4sbX$I|Qrgfe`R(gqV zqaY+`(Dw=zCfBf~GHD-w5Gz?x%Cy~r8?-qMF$f2{A~Y3pfd~p$cPJ8ekg10cOqJ4_ z4s`mEGodY+0?lD>eDFb}Fi#EoC%|SS zOnHz9;3R=U3=o(A5ka6t*lpz8IRvI~A`fwnL|A5-Cu&gBvj+Y?0JxK2h$yB#v+Go% zKyPeZ6=5ZIhO>eRNua${ef-+1S<1{=&l5%PW2$;f7i1W8IS$SVy}&Nx-NAM0X7(r z)4xeI^~TDcfeA_^`d7fRB52#bNCB(NAx1(En+EX2V=Sm70!dH=X=eDf6!`3Y(p9lz zAa2bGkt;vzm~#VxMN{7n@yErupv@TtkMAave0d4b4{6{{%o#lh$N_{Fc$2><_Uw}Z z%Y;8ny+r|mQ4j>94+18}W&Zj_`|Ps_vHcv7{GqRiFftnhNR1qTF*%R)j8x7r*f1jA zvWBvf#ePOCTv6Rm#H}~U6V#>8sPzv~shSmXZr4h3W&$>IUxMlIg0rOvK#Wdwc*a)%QPG}NGa#w~z;55xJ$>IOq#K0WgLHI#&?_`=)@t-s3^*)a7unxrN|6nE{(CEmk*u zpif6)mKS;QeqYv1Bn1w1t{!alg|+!jGl@&iIN;Qy!&WWtMF$yhKT0a>w8PE7I|Sky zRaHQ|YM1s& zF*u+UqYxmD_3(Xm-sqg&6teqnv#q#7(Dn(<#}EmHgawM#H%js&Z)i1L#hDr1i-BN> z&F0rnHd~+ZZs*dk^hlbS`nz&L#CZXP(GJ8Al;zah&G^Df7`_j*?gD71mnUqXwP$61 z4gvT!s&?dOzmhtB^{_ddkAiV+b_wjr9xia#sw2WwHiPQMoMu?e)w_?C()q4QUX_e_ z)U)YwH*e>K!U4?;a^A-oKO00CfJs+ z<2C|^*#HhA*Y+?o>C9jRAU9^M`64yd2T@w~>V0IchwVB{h_FR_jB(<~t`R5p%w~>= zN)#VDgxKy$`L~MISOHC|PuJ(;Z98cZ@rNDreyi^z#@zb^ONi)%CgA?crMS=dQga2? zvRF%!NnWpy$Zo2V=9%dNz^AIVVxE{}v<_BNPmt+BbfHsIUv4ShMz2>2^p)y^OK?ckIEbM@b!G(kXjXej2 zy)7@rtftcRg9S_D?MI;~HavWH4^Y|UuzDi685D4Q zv`hy9J*DM}Zstl5iDpi*`3aTOT;5O+K=$*k)JfyQ?$X{cjC5}6`nsWG^(CQSj_mx;xNDVdVZ%t zIUbKL*9CU{=ff@2p~lm~6n=ZWt3rW=oG0PHnY=lHBzk&vXd2R=#q&H~HmzT~Sr6oa!k(wM?9 zNMYm9q7O~)>6)=HPF2$z^(hQw6gi!BFUAJ=AT3j$_KB2`SDMcL#|S%00#kpp(&Maq z1ok>bnDkbdv#UBkoj>e|5%|9paxUClL<>@I-wvPOY9@ust=$09GRt5#a^p24Q8mmkCaM6Ussvo6hmSU*YL5+f zs!X2OYz4x0*RM+M#yd5B)8<{2Xkb{EM!t*T0W7EVhAA?G-_;3GA{*g=HJSXeqg_#k zt>hXLe3sv`_yD7KqzfILXFH-G<3IJ|c9I2IE zU%-y}o!%2s$Hxp!J>ddpc1}c>ir82CW1{pAdbJp0Zyub$N|HiaCNPR%g8gVh3#|Qv z{U>=Pon7S_-TN_3rtNSTUEUARP5S~edRma01M(Mxw|32XYNx8bp)Cb_XkdT7FS%mf z!ES5%avM`o`3F4ctN7m-bK+jw?5(|`A>}N0wp7xn0r_zT1LmkhaNS~3Z+}j$9Xi%p z-oK~^Mg43IPcM0|`8{TZpfPE>@^xKo=AKZ=6#WQSFXY>Rot;oJH~J%f%avRQ)2SM_ z4zEz3hFX3wF$Lhw%V#L4Q90WUQaBUJ3;2VlQ0`LJc=@kF;AGYV={|{H#v73$9;*z7 zs!bIz)!h&m-%-vEPChpB+~iAu12CDhS?W~-O&vwaa+=R1UO`aOUF~2AtPG0MdBUqw z%(<(S{gF7J`SdtTQ+JJq787hX=Xbv z_pg;?lvFIYkch*>rB&uxiKubP@q+W47CAxDs7NdEph88~=1=NYXhAv-@)4w-?+KOQ zqpwvn8ieGVDrMv=#SD;>i=NDyJAMM9xdU6ax!YzRL5~A*gfTy8k<58A?iO0a7iV`C zAqN=@_>=8Kq2&l65!hh9nk~>)CDc#3k#Y^Z=wp(e0NfyatD(M9rr4Xgnp46Z8lu=W znf$7VjR2N0)>^HoVEJr0SeGyC^dp02=DV6h0NS_T{jg^mU27$o@xZqZg0@us{CiOn zqwrBru%F#^Zz{ju1N6m50rB+s5By2RC6Ohmi6rOA8@{`B5d}!<%x*XlG}2njTO_Ri zfG(-2-~(Z&)VW)SaxMdSxh|X-rIhN@?0EM))MJh0<`A)q57QEE>Fr0YiGnVEiay3> z_lRD1uqJwgoYKqSg`4FL5_Y5SzhO?9FlSw?-nNTywrFiIw4z~Y(#{iTt4xrsO!mGT2Gu!RVu=I8t92vaoWuXjk z3{xU4BY^Bs$lh9)<$bzZtZwQ^Y&ZmEly5=_EmZ<}n>t%_CIqst>(2)|uh2{m6v20k zUTJrw_y|2Y99K>FHqtUkP#ZJ^ryQf*vq=5m1?m}daR)$8R0XpeVKSTa8A3((tb53V zy_4nDU~j{4r-Br}fr*si=%rTI5)kkCL1R>izWD0COvE^F?pe^TZlsrjpRF!L_)OZ? zz+Q!n5!7G@8JI=h-EWo09>m84?@J@v-SLQ#j16PsRL*!`G32Vy{Ob7-(G3OC4+E=l zryukiIx!Z;0`;sr2W!Z=BR<&JuG5(zxEC9+<4uM1NvO#_oQslxyhSU zn()IwCqd0dN(x~Gv{9A9Uu(_wjet|c=0{k&69AA1;wVa2I93XGkfp)vWXa)j%9f3r zDO7XSfgj+#klo&s8N6B=T;`#tLc2xu$;R0naP+h2^4W{6{STg|SmQbK~%?wvbZ z&?8rxw{29-rw*9=kF3ZQv|sn><*4tr>!M3rQi<#>{)_XVwN#y4J9*sOVTi@wF-il3)BJee^QYVB!J zB>~)0Cg%8ufwuE%YgQm;t&;p1Pt*@ZE1TmdjJSG0@K7G>k?=sRJ*p-3c9XPOWA5ZC zO<+TkfZ?e(*UCJ>_5Qt=*60srjVbkRq*DjoE-1(uJ zyGC%GgOND?PB}(@3u9#pC+6}wl#VgycBnaK6=3^|6Te$8miEw7Q5*QU_c*)JSk+((l_|m>#ZiGjU#dp_2OFLwY20);=sTUtUJClbgKvA~*Gz?=a!B^8s z${scYcC05;oo6U~fQRxf0dXgG%6pk#p@UL)h~L_9Unzjm2Sn_(R%& zcxkEF(u6@=qD7HKN}K!Bp4S8@oFkr!_N{UO(o-6__M5R&w^$686l)efE`!`+5$JhH59__detA zWiQsx*Y9QqCGn{0N$Cf7EnwQ+uARDr49#jQHz*)Qp6Hb?m(f`36x`&4)|zsm_roYacz*pssw~dQIr~ zM2aXeRzUzxwvU@nx2iF9r1FWGnB?{Ca>%#Ovu5pf3Yd>k3}zYA<_tTqx~-Ge z7TFa6_^nE8eZPXgWBrv@f>>3A`{pasJAu^`k-g|cnQ;-BN=12zp8lj!bk9qaNrsu+ za(5;LyW-UnsJ6z_r5(qXRi@pCh+64hL^&aDSz1Bew!mei3D*~K@o7p)=`D0$K6=Ty zh^T9Y;e9Q96n@#p(-Fq;^zN8a&c}I)6W~4-P|vWL3qORqid3$CjQOO{3%DE+ZN;~N z?9x4L9Lz3PZum-@IdbO#NjXTvPGUE4q^LEX+qdo|xvpu;H%PTh=O-V>H@^04M~pa1 zwJXBzDI`MqXVTy$Z*1kmFL%@OA#{2LOLz$kgTxc7R@XhZswJ8N!^6^0iH?Qjs zXNT>jsLSq03sICM3F)oHh?YJUr(j`6Hh(`Y6(FCJ5Rf8O%}r5YM4pgEgHhw9?Tk^5 zIhaaJYm=IvLM)$>7mCIm@mXcxUclLYD!4JQ{bCR5gJCk2I383Ibx)fRw-y{KY0SPhRe@uzgVJJ?#K(2WY}m8)JluzQP;^SYjMox8kTkiss0h*@3-Q+FZ9n z0CB*#6HsrP`O zd{H1Er*=Cc{|@*{AlLhS^W3Ulm%*iQjijyc2Y263J6d2bd)?T8SnzTokvY|C%!hnd zIWmjSwmQ^XWzjBF0i5|S?+h>+_S7Wz0v2>1zCXW0TS3ct4gPR@e4iw|GfL?% zapRjc8bPn~o0pEF7KCt#_)Z=OZ}EJ0R*!i*aJgdK#to>WXCJzr5s%D<5K|k3whEC7 zj~uc}lR%b3A#hYjGdM{HubbZ)bd^iWHdq*YY7tE!W0Ln5 z-8H7Zj%t9`?lEn5>|ycxn_IwK`RI%~4+TU_I>^}gi8YA@FK5Dmb!#VfgT*lb9!A~L zthd#iP_^c>7JAgx_RKUL>yQ?DZSH=rsmy<}qglH-ACd}g9)z4{tpK6&hXd~f%va&v z=?AIex&xqYOsMf_%85Oo1e%91bw2;lvZkB>-)Oq3BDN5PvSs>}!nu!WLUj8JZ3*#9 zj_@!=6yBnPY7B6K&t(6=az@f5kxg@r^^T7NwE-P{a>f)*GGC0efsIH!-6D2RxZ#sD zbL!CWD&IOXHM2ZyvPjXl{6P$wv&<)jP^@4#R@HgHKyN8E3Y69Wj_!J|Rw! zoOob67b0`YWDoO^J?nI z#%x$FBi+mi1rNlzV+^MCt~vQkL^Osf1oKeJ^Vl%wv;lFV7T98_EOQL~DV=xD_t4u~ z{FPlS;3!v{6?R@9&1vaX-xu9 zX-0EPwVqy+nKa2tpuW*ba%K|^Z)$MJEi$iTBj%O?m&fc1HDs79IZn2aPQj(LuG-O+ z(_J}VW>IQk;t|usPa1d+{GTa|p5>#8Na!vTNplM1LnuPX+kIbn&il}$i+;%`oB%AN zf{#Y0CS&aYU+&#Su(KiP!(ObR?Z<${8L3g`rluxIR^sH4Q6&~_GUmsOL_pJ-)| z9V6$>RCR{i6dFT~U+y)Ch1Ojc0#&;XfzaGZS&|6`o2V&nlCa&U+6Ej<@U=;+;3c=T zRdpU4o!L&o{qcoO$>|7`)|@RT!GITR!0CUkZBDv(HE|EQ(oMGfpr8x$zJRyV+(Z=? z%Y@;mjQTFP&v>WMuxIbfc&N!HLxmIV9j~U66HZg%7d!!mKS%d~NVa7UiwW7>hlTP$ z2zO^ax$9TT&Uj{b+XA6t(FLu_1D@~1P4&wJQ9Pu4OThhOXoKF5wrEB~Uc(lHX3ByX zi{1=T%7%X4dnIR^7O`)h0|!+kzAyAebnOgey%?B~pz4GkG5pwqbk%DWOX=j|7T}`^ z<{v|OrF1JjY9@V~PvL!7Wm`*4pB_|^)bc=&_MCN>(cHGvdS2Njyyih3!?93LMek{b zjwDJ)CUE2tMQ2+rzN_A>N1q40wmVOVh;i{&@ev>B!3~0sXlAZaiiX zvx5-EP+j^#GOPR}6PTU#y;TYFD`a?|wcBQKCh3jU&)BK*VHRd!Zg}5Pr zxnD86M?zpN=!W6g7^?ITSL~xrC#ae>i}d&_DyQjMHi^}~%y?|H{L zSmoBCz&(!`zOd02lW3H` zfj-VfGQm?#iOik)VDT%DY?sBE7urtUTn5wGk#G}#L+5>K5B~BUldYZtLu?LE%SsAA(k!R3;|U~H6T?ehQWzK+VX9F0=}UW zfY)tfXZO!CEr*@JSAwo@d^FgdrFsStzf&=yyQ`aWr5yBO{=l`feyEMeP@Kbm(>#l> zl5J}m$i1551UAwyMU_U1>YdqXl9@Dk{KzGD z&?U8VNPl&}O_(Y-MVtiR{W%2EwjJL#I>OhIdqtSJR#2 z+fvk2JP}g5Wzsyo#eiX||M@Cjj9T|)EZ_!Ces867sbG)dW+zkOLC}gIzhr2XFOm3t z!c=l^^J&1J1J5^eS?Be(hV%4C(vs9}ri#A}d?Beb!RnShnMKW)V3GJ>-!YKFw0cdx zhs0sr`t#Oi?`k8-^W!bc=KI?xNG5`$0bsV5#*4$EgFe1KD=IXohh24;uIL?;X@zK5>H0-Rrb^i`8&UZ!o zSi(f#8Be@elsqJ)zF{l2o2X_l)63j}L&lxMn>$d~y|2I*R#R{blj9B7fd11A(vyy< zV>wn$n8MzzNUq9gU~+4>5m|(vhdPA3~J@B zxAZ?`VJCgUCrTeC!}^}S3ZbJSZq+qsyAMP%jezU})rn0#TR%BE<+SV8`-40==zKxV z?AzoyawL)%GYmni!+}N9jc=4EK5qY*`kDCAD}ZOTc@VvEtfoSN58LBG(417~t#gkD z1&xTu>h0lVi`3Npi1+nAbw(JNqVXGP0gnQ1h5R7kHgAxQP=ZY7^-9A~JTL_;VjPD* z`Qk@dsU?OV0a=%+!c6#QclaV7%>2RACfGrrfa`Sp0J$bgq@4$3B@9GJg9cn&Tz;H! zM~p-D_~jxfX<+rY^-@aM9(ItrSYKM|KG{m&>nCfOecF}KcD5w|Puxm-!v!!3h|krb zF@%EEb?@{QpQTj{BJxkoG!J6-fX`@VB)j#`)1f;90vZ-T%BDZ;p#pLwwg>dyx|ryc zPtFh8oANRDcKNC0$t3&gT(}K^Yks+1B?m+<11^#sXe#}sa+@Pxm@-|*7a58IG34FE zRdt)Z#B3=+Af)a-+u(-L{E9mn&lvgH%|$=@JR14r@BT6MbkA$E9aHdXA=uVx^7FYV zaXz`$yTj@2iHO^f$9;R1y|_K$Vx-meb18y0nS7r^m4JXi??Z10(a9RtUF(A(xzA@;Gp%;DOK*Yb&xpE0s>ekyaXclxv~9(BWLu$lmO_*I_P6kSO0FKafv&llsx& zab4UL2WZ0t_v1k>sotK0{3xXEUIY&cirdd0Q_MkG4w`~a+iT{mHUi9i055m3AO1ij z8Q0x-q#S&$=fLbOrxyVyMnV?8j+0rxCvSy#tn+4agXoDo8p(8cw<3hNJEPgmyXg8Mz`*#M^Htf7p)q7Wt6n?o z3cyUZvv&z7@qCM2e0n#$WdvgqPFd;UydsNy7wf7pW?EE-b#X^_piym8&znK9+k*WC zGI*elJAov2I6R+7g@xwL>7{uXs-N#miXf5>KzKcIDs0%g`3Fv+&O0!$Y8)VPLgNAAJs3Et9dmv43;7XVtK_;Vq z{10aa0qvj`lNLeLWJRjDpoezw7si8)Bq>bIY281Y2w``quPZ1q69wkT!pOn#(6*$s z95`i>IJY4+lFVz71j!z-QRyCXpHR9whgEtZM`pTq`~#|hK31DzEbHAqXkgP0r2(CP3Rs7aEw|(2VgbdoJ`|pQo~=wirRCcs z0yHM?DQn}=o^?I(?0Tfe7l!|`k}z4xn4&-nImb-xUgABd{-e>m8)b&inMypr|5eT zkQQQOJgVg|q1-9_(^b(E<8BvkA^@A6<+J!Ay`XiZLETH&6L(8S0{B|qkjfL}a}v$f zbX2zNFG~R-<=#?p-A*)CA5S*nOd2FvkEDO^HNG{UQtOs@BL!tCN-0ureq3r&ANRCPzq(0;$+&NCf)DWDB=A z#IEI$552u@5c{mLYERDKh>0}=JVNzV$pYBi7nG~3lqOug!Ea108uz!E5+jW_&xTyrWu zTJlxZD{{*p(J2X3QaB&AI6U#ylCKfj2Z1YF#10g>F^KE8!W87i74BF|7Ew+1zmKv>yHq1NMZt=ur zzYCBX+y3$d3Fqk==OGbi`zL-oA9)h##z53H6nGoxmO5T$G?mM{3!F{8cC({wTL%@@ ziRBXewa4v%`olfqo9NkGqsVy7k3s0k|8f%7T14nnKV_GD0v@Fz5u*- zleT8Ub6fk_8&&fp5lCIGx7@-_DYe*bR~X}}Y8M4=G}BUhJH>UQKs-R!_QM}yyq)QM z_<`x{IivS&NcLQOzKv)E-2-xrqb+{sV(LcALU%`3?_f`4<`%h3$&29`OX?8gT8YG` z!E2^NAp899Vqr%--lj#f`aF?zaTY-aS%--HBCg=je1UeGgbJ|l5=I}zHbLk;@mo#0 z>e^w&MZ!qV{h;dYggG_4&KW>`n0Idb4fCyYN~MPegvtz&@0I1?RU~j!zbX2uVUfM) zEV0|k#lDgajvCQm6~t&DYHfUat1C>%+^N;8E!No$z#d>OC3ue3nx6ovc3d z?Q7mg0?hpB?*IwrcqEGtTzrAl>UIhE&>IM}YjJzI6oW@;L|q#Vn%`?Y;+DhhiM!hu zy%G}~1||L+`?4eeP(11fT)9n>m8Bd_7W`w-97Ug$DZ9$X8yLOZzF$f$K#B~zWAP%V zls0!gxQSaS-iVH#9c}_XB__$MI>$43{>1X@&?ti7=41ydb?B4}SA+znvB$WKH&4W< zBWAezywt1F!b_875E^aslt=BflaB*wuh`I}j&fDA}q5hFU#Jv;#K%u+H=JcBs@WoRhtu_zH6Sq*Ku^CulGza@+hd>sk`?b3 z>-OfHp{dC0!07FdA484L21oY;k}j_^Mkho^0N4Wou&9CN3%>R%=g)brBeG6kdd8|F zJ`qW*Kqe&eO~f@SVrgTD9L>^q?XNGsfs9ln&s24A$TlLL?TP4H?-{2qbC!}xf=Gu& zZM%3l1UzFw2cEI4AuVOGo#kLEBk~~WB8(QO&OWse$+S!_66x@+dK8lbMd^rlZcy?V zoAb0O#5QxFpNvb-SA7>Lg{ZZ7H#Pojlh_`(5`pSISRK=T?Q? zv!`9lQt6%sZ9sz3Jr5uYzQEj@tz%`H%ilCM$lz{f`j@l82N7w%W>1D=2F^Z>JP`YM z8_RaS4}HWwtf!3!&-Z}>tSjB)SsUV313~V)SU_iVH5%ZBF=A!yuYt}8^~rfgr0a-h znMilrIAkBkdDs2k_kN4$zwZX+ccx8Mzh^ zY1d>3$;Lyc(uZqvZvthH|)4ZxfLQIqk5xpNVg z1F5M&5IMbXvhylThx`pS`G@_=%r;#%s#O7hr|s2kq2WM+Ls=42_8K4)c)njrVIs1s zG~T(3>HCKwua2FE!fW??4iV43fvmi{YO-OLT29l*%pY^}oyR{vs9vqn>8mpi z(LA6>wU-rBh)~=Ml@Su0G5z>My{{g44QTAzGoO7+_{T_B8|RQ_(dYh?ANx^JI_^#~ z!)(HuHmy{FhXgMd?*Bw28Aso2_PB=HhQU3~f~!7@hInz*hR9m90a90k8icsIs&;z1 z3bOdIwH1STDPj|gi~}hYmJ>k)fuk;14v6evADX;49>}hhq0GRwq4(EF1;Ebtrg2oQgO)s1k3R$8(+=_UiOx}=%y-R4n_z$a zdG@?R1wJIOk_e&-3g_u>o_04RabNjpPpob~A=ddZ zIuv^ZKw>uoN%P$HS97fz!kXD@c@yi#0*J>~XLoGCBNNpYY!rVV?bFfYfz!4k4f~>3 zxhs4x*+c|l|n6J~vcC;Zi1J<4~QWYzsG`@VuKAVY5Gt`D`h z+Z^31;B6bHU37JQTJ9WvExdl1F0hJhf3Bq&agW#Ak;DNwk3tr)@4=zGG3CIcly)Hb zSPk*~DVdzaptxxjc)Y@l@Dv+1-d`P%sYYZ%N2qG6J8HaeM`So7f}0JfBF;XS1Hfc>rF-#z;ihZ{yUi< zBtgf|6V9u-aTs46fSZTy2GY}ls-ulL_vbs5a}%xDSt0gloBZc3r*2bA_=`Fpacj-3@t`L zz>ow8HK9locu(~Gde(fHGi%M9d4A8{`}B?awGhnhMrG=DjVy-yk>bK)jh9 zH|5$dRxG{{CNIvMiUNIAsjocPfV;nw5VMi+!ELvrA~q*?;5ztOE3n{oR=qjybYS;( z)Y=orkg_ji_clmUq>C?Q<^?qI<-=^{Lk0Q41DBbD`Mbd&B)Mm{v`_aI+)y(s`|?2| zEfI>M?wm^hTAi+z=PRk*USWRF!Ob6Ud6(|YaaY1W`fxOX5lYT8W&&=*weK%FIs~o_ zLZ0NBxc*k#We5>*^5`Xc00|7!z_VM=*fx8?-FE?#4#}q8#OH!hYvUo=)NhVC+MC}= z7ryE2=52%WwwGF3JP)^v3=|4`2A6u*PU5cT>&kc+L*Rgr-duh^rh9ILq9(|nEz^daXO$k^_!oLm;Y85zqC1<*u>DX@nd@J+L@SL@#1d4I`T@fFoyRst$=Smn0 zBmY^dcq`}J!$P(p$*o&ywmpDFpkCrbz|bil-e6zE=%Q~kDLf{g_Pq-WH`=+z&{+f1Hz*s}|GY-=a02u8N&vjl%qva=u# z_$Jh<*~LDHU_74KhI3?C1|owv)1m)4$}GJOUJDnp|XM^|j&TaCy z+PPm3QV!%zcAOS=-D$<_uFf5rRX+Lb_tM_3-#;~9oP3f}6_w-{EJElFXX#kM+WC$GQ&BCNAO>c8`J)LdPk-n<_YytwIx3NY+W$>QVf!D3i?< z!8fJy`~PcykQ55C$G64DaI32~ae;&xt^qLzIH7H1OgPW%M3Zi)TAJw?KO2cX^xCT6 zbV=aZ7f`c)%M1aAMc>I7oeuaZW9<_j^uCLA<@T3H5ijk&y~%)IU{sC$?3tK0+1r#G zm%Lo}7Pt9AL+<(SPglZ5g~{G!sE=U1dAQ+n>F?)zT@}PLXtVv37hk0CT;vIKC zCF6N)Za2yp)c^BtY93+3x~CrDCYaP3(E}osC>bv;&e$|UUIk5kL{(L8a06V>MZOH` zRFL25H6|uj%mp>9A2EzgMunT{6j}$-BC_t;S)EVg(`#%3XFocqu1{<9y3*Xv@6i%B zXQzC?tc1|0a zh)(?$$U<)?wQM9kFoc84eDXryj>C3MH!++l{O;%KILr&UGr>bsVTr!KxG;jbRyE@ zs=mQ8`6~p8zpftFgsWuOM0cGyBPd(WVz9^GhMv$13fY1 zp^i=-aJaWbm^wwF`O@^1ZBjC@uC*)WO_+?7Rz~a?&;qJ*kYV~9O`T*91uq!Akk7fb zW)Zc}y=Gk-yvS+;C_@{a=nyjbp)loi(F0h{>U^u3P4;`Rf~+4!$=G1o6edJ+pm#1C z`MhqFe^vWrPSwu5Z|>yKm76DSSu1w+d{osR##poI|E{Kb(dz^^U7eb;_m7U1p98#> z1sBk^1WBDU+t(@sPDR*W@%(+@q>zcRGnGfn!~6L6rep*%_cJJY*>Cmsd#(RMw)=yu zU!~qlyp}KR2s< z|NdQnGO~QEyI{$1ez49h=B1FB&v5T9B;SKJIZC7dP}{Zw5j3gt5wOws!;sV*ccb|` zvgZ>xy{f6vE^{7=F|PxMON`JeK}D56skq;nMQrn`(4tK+3J@_UKh=&dJNi>0Qg`0v zm=sw3Fl;&Hxu5QQu?ym=`mgR--hN$A?L$B7tdf`+%w5aH0B~2DO18Qg`5QEvo2=la zGeUrCqQ=`|cBf+?MPgJDx%($@;}6?ttF3EU(m2}(W=qNegtWvms4Z+f5l$9EmXE}8 z0)k(%PxmOQFl_q@jmzU>;XHR2mv*t64>9>hM&)y`=*bbCnKxprVLGuJ5<~Ei z9|N?%3BknGkrffCP5C70`|9Ap2@StUN2GQpdO7WQzZzfUY_mbhHTQOj1e7OPw}loJy@j~5bm)c-e6E}ZY9%3`? z30p;e;(nNKMqp;V&w~HD|50k08>1hS6VFn-dsJoVSHPz2+5ZWtOZy%0@Z^-#trpi6 zc0(oI+M2cs`fCQ1n+&c`lqtj9hKOi%8B9C!-t0^Sq(pw!DrE`IS;vT5#4Q(o8SBv$ z#0RZr6#CZ7(PjlBa|X0nO*1!6Aximnx?iVigy$#Q4mrqz)RHvFr6#yIdCt2T#Ub8{ zag0+PXK$To+aIG^trHR06p(B@mP$cS7(ZrQ*)0(xVv7{sEKS-5uYxv7z|P*6X)aW@K(5H;OJ8O;(jytgwfA| zDG3BpJS6;kN4NntF?!7^PhSpicx;(pb`5q@AR*VQY;QhGCW}4k-$t}|UZ; zh11clCz@;g6;$&t4cEFn90N4R+lp9JaAu@2GjY7nRr40lN6!wFspgLESUpwMjm}ap zHD#%~>5W&LnvoIH|4=rzDxs^BBZcbnJSl-@qMkFluJ5Q*KZ+8S;gOo5D7_g&OOxp7 z{C;}$(Ev05q?3CayQ)bJI)(#RhsuA|xR^Y;rI!=UgwaV2li9waOQ)LMng3W$DL0Wm zH@VjFu{;xqh@6Oilz@~iu3PeYj8`NSb7lzGPhr$ z=B7sw_Zd1juj{k@=)2F$(TLB-_U+>dwD^$>rFajW+Bw~ z&x_!qnPW9Y+aHB7F{s-^Oo{26q|WLweLUt%Ra@%4-*-57ioN4Uue}-^IxZ88H_n4l zRxLoSz5G;9DRN=wQRmp3(`7ve#FnP#x}9WUfHC< znKz{yOwAZpfI^z4EUMq~ZLWyWIlMKgdYaAo{F~b$u7DqmRV^IVA7V#SvC&4$s^mpx zQl6os(ia^;526ftKF)NMmo^VEcg#)KS_hY;!R-vyD?XA*g=F;BF?bFsSo2cRQ&GNdoK&BW=&O+7?_fyvwu7GMm*KJ6j8$UOA zuewV#wxcKUQ%}LNfY(ZLkl%PVF;PE9L^Gk?GDUF{eR%Z~Ul%6n8HnI1L(bp+G0j^c zzS7Sv!Uy*mn2V=M!cx=;@OOZpi#X?+jsYR{lV9bFmTL(C;=APmKQlSFyf-z=El%ov zem}4tpdBO~%Oou(zMR>JHijF1r;i{TmuWN);jFcd-PifKL+ieqQYob(kc@|66oLC* z-N(@zd=!DDcO}ZgpnRL-10{0<>2rn};Y(0ORt`KL z2US#Svd!zQ?uV&iWyZ?foeZ8*PcId$PIjG2vKF9*84HLn$uw}ye-_zriKsl%=@e0k zg~+~zoAnbAoc4AX&OHn?ru)TMsuKgG?S#=74-o-jS1D@EXeA;+>nR`3zy9#0c?Gwy zH*Bj|oz4w*=-S|E+r0KBC6NYkJFIq^7!t50xK`@-sIV5E6JaZ};YVqJG!#-LyHwzh zs6YaG7<2vRmi#eY6Q3rIN{@54aUH*=(bZl|*zeY#3N3kY8H&<1n_l&5&F+C}B9Bp0 z-XB2lwJ?MoaJdu2=?p~3Sa?4iwdB32Yqu(NrR7n87u_=J?N1$e1O!Bgn@c3Zf-3e_ zO!le-hi^QR(mhjq%x>6r(++i{TJ@WbKx%WA{mIF0?@LS4S-{ws&z-8q;s>wHBrfdI&>$<@32PyvDe*-nzxgdFxCuf+;c7b+8GtiFs=r`=~ z_3z*#z+m)&yZ`SI;5K0@oA0-{7}ybjsg&R0&aC1<@BAO8t>p*I?28mvn(+;onY z8F>H$KVV4ti@Zy@qbcdVk$+Rrl(?h$XRcRu9)8b_V=F%nJeWU3u>R9d`d9AiK-xXU zKfVSaiUM>XLq8p?(%tq4t}7hCa5Ld3>eMfef8H|aQbB+M$X+g8?pSPM+o?PIwJfD7 zZJhrzylQ*`dMrUE-RiR7vDl9XZ}L?NTf_Of_YUscx3@P@^sNr~_c$;2^gXx_O)E%x Ury1Z5JlS{I+|~?x@%DfJ2e0Z49{>OV literal 0 HcmV?d00001