From 3ad5d0def7f94433238e59181555540833f70746 Mon Sep 17 00:00:00 2001 From: Xuan Liu Date: Wed, 5 Aug 2026 21:35:16 +0800 Subject: [PATCH] Add study: study_016 --- .../README.md | 7 + .../audit/missing_information.json | 68 ++++ .../__pycache__/evaluation.cpython-311.pyc | Bin 0 -> 19301 bytes .../evaluation/evaluation.py | 365 ++++++++++++++++++ .../materials/materials.json | 121 ++++++ .../source/evidence.json | 283 ++++++++++++++ .../source/paper_metadata.json | 54 +++ .../study.json | 99 +++++ .../task/__pycache__/adapter.cpython-311.pyc | Bin 0 -> 11453 bytes .../task/adapter.py | 219 +++++++++++ .../task/task.json | 105 +++++ 11 files changed, 1321 insertions(+) create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/README.md create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/audit/missing_information.json create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/evaluation/__pycache__/evaluation.cpython-311.pyc create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/evaluation/evaluation.py create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/materials/materials.json create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/source/evidence.json create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/source/paper_metadata.json create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/study.json create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/task/__pycache__/adapter.cpython-311.pyc create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/task/adapter.py create mode 100644 studies/study_016/anderson_holt_1997_information_cascades/task/task.json diff --git a/studies/study_016/anderson_holt_1997_information_cascades/README.md b/studies/study_016/anderson_holt_1997_information_cascades/README.md new file mode 100644 index 0000000..40e30ec --- /dev/null +++ b/studies/study_016/anderson_holt_1997_information_cascades/README.md @@ -0,0 +1,7 @@ +# Information Cascades in the Laboratory + +This HumanStudy-Hub package was reconstructed from a published paper. + +- Review `study.json` for the study overview and readiness status. +- Review `audit/missing_information.json` before running the study. +- Run `python task/adapter.py --smoke-test` to check the package entry point. diff --git a/studies/study_016/anderson_holt_1997_information_cascades/audit/missing_information.json b/studies/study_016/anderson_holt_1997_information_cascades/audit/missing_information.json new file mode 100644 index 0000000..a49fde7 --- /dev/null +++ b/studies/study_016/anderson_holt_1997_information_cascades/audit/missing_information.json @@ -0,0 +1,68 @@ +{ + "_description": "Authoritative researcher checklist of gaps, assumptions, and decisions still required before this package can be treated as a fully verified reconstruction of Anderson & Holt (1997). Nothing in this list has been silently resolved with invented content; each item names the concrete gap, its downstream impact, and a concrete suggested next step.", + "items": [ + { + "study": "study_2_asymmetric", + "field": "materials/materials.json: study_2_asymmetric.instructions_full_text", + "reason": "The paper prints a full oral-instructions script (Appendix) only for the symmetric design. For the asymmetric design it states sessions used 'the same procedure' with the urn contents in Table 4, but no separate instructions script is printed.", + "impact": "The asymmetric instructions_full_text in materials.json is a DERIVED reconstruction (symmetric script with ball counts substituted), not a verbatim transcript. If a researcher needs to present participants/agents with the historically exact wording used in the asymmetric sessions, this substitution should be verified or replaced.", + "suggested_action": "If the original asymmetric-design instructions script becomes available (e.g., from the authors or a data appendix), replace the derived text and update its evidence_label to verbatim." + }, + { + "study": "study_1_symmetric", + "field": "materials/materials.json: study_1_symmetric.public_draws_after_round4_condition", + "reason": "The paper explicitly describes the 2-public-draws-after-round-4 procedure only when analyzing representativeness bias for 'sessions 4 and 5'. It is not fully confirmed whether the third public-draw session used an identical insertion point/count in every period, or whether the insertion happened in only some periods.", + "impact": "task/adapter.py's public_draws_after_round4 condition assumes the same insertion rule (always after round 4, always exactly 2 balls, every period) for all 3 public-draw sessions. If the true procedure varied, cascade/representativeness statistics computed on this condition will not exactly reproduce the paper's Section V.A numbers.", + "suggested_action": "Confirm the exact procedure for the third public-draw session (and whether the 36-case representativeness sample in the paper drew from 2 or 3 sessions) via the authors' data appendix, then adjust task/adapter.py if it differs." + }, + { + "study": "both", + "field": "source/evidence.json: raw per-subject, per-round decision and private-draw dataset", + "reason": "The paper states 'a complete data appendix is available from the authors on request' (footnote 18) but does not print the underlying 540 (symmetric) + 540 (asymmetric) individual decisions/draws anywhere in the PDF. This job was not authorized to seek external sources, so this raw dataset could not be obtained.", + "impact": "evaluation/evaluation.py cannot refit the paper's Table 3 recursive logit error-rate model (Section IV), since that requires the original raw human data (or a comparably large, independent multi-session agent dataset) rather than the aggregated coefficients printed in the paper. evaluation.py reports this check as a structured not_ready result rather than fabricating a number.", + "suggested_action": "If the authors' raw data appendix is obtained (with explicit authorization to fetch an external/OSF/author-supplied URL), add a logit-fitting stage to evaluation.py and update this checklist." + }, + { + "study": "both", + "field": "source/evidence.json / Figure 1 (the physical urn setup diagram)", + "reason": "Figure 1 is referenced in the text but its image content is not present in the machine-readable PDF text extraction (pdftotext).", + "impact": "materials.json's urn_setup fields were reconstructed from two independent verbatim textual descriptions (Section I prose and the Appendix instructions) that happen to agree, rather than from the figure itself. Low impact since both textual sources agree exactly, but the original figure has not been visually verified.", + "suggested_action": "If a higher-resolution PDF or the original figure image becomes available, visually confirm Figure 1 matches the reconstructed urn_setup values." + }, + { + "study": "both", + "field": "source/paper_metadata.json: journal, volume, issue, page range, DOI", + "reason": "No running header/footer, journal name, volume/issue, page range, or DOI string appears anywhere in the 27 extracted PDF pages. The PDF's embedded metadata (checked via pdfinfo) contains no bibliographic fields, only an Acrobat Distiller creation timestamp.", + "impact": "study.json and paper_metadata.json cannot cite a full, verifiable bibliographic reference for the paper beyond title, authors, and a publication year inferred from the contributor-supplied filename.", + "suggested_action": "If the contributor supplies (or authorizes fetching) the journal citation or DOI, add it to source/paper_metadata.json with an appropriate evidence_label." + }, + { + "study": "both", + "field": "materials/materials.json: record_sheet_columns (decision sheet)", + "reason": "The paper describes the paper decision-record sheet's columns (0)-(9) only in prose within the oral instructions; no scanned image or facsimile of the actual sheet is included in the PDF.", + "impact": "A participant-facing digital record sheet built from materials.json is a faithful prose-derived reconstruction of column semantics, not a verified visual facsimile of the original form.", + "suggested_action": "Low priority; the textual description is sufficiently complete to drive the digital task/adapter.py. Revisit only if an exact visual replica of the paper form is required." + }, + { + "study": "study_1_symmetric", + "field": "task/adapter.py & materials.json: whether 'a'/'b' balls were shown to subjects as 'light'/'dark' in the asymmetric design", + "reason": "The paper confirms the light/dark labeling verbatim only for the symmetric-design Appendix instructions (footnote 13). It does not restate this labeling convention for the six asymmetric sessions, though it is highly likely the same convention was reused given the shared experimental apparatus.", + "impact": "materials.json's derived asymmetric instructions assume the same light/dark labeling. If the true asymmetric-session labeling differed, participant-facing text would need correction, though the underlying probabilities/mechanics (Table 4) are unaffected.", + "suggested_action": "Confirm via the authors' data appendix or original session materials if available; otherwise treat the light/dark assumption as a reasonable, clearly-flagged researcher decision." + }, + { + "study": "both", + "field": "evaluation/evaluation.py: Section IV logit econometric error-rate replication", + "reason": "Implementing a faithful recursive per-round logit MLE (as in Table 3) requires many independent repeated observations per round and the original human raw dataset (see the data-appendix item above); it is not a well-posed check to run against a handful of agent-generated sessions.", + "impact": "evaluation.py's logit_error_analysis() intentionally returns a structured not_ready result rather than a fitted beta, so users should not expect a Table-3-style output from this package without further work.", + "suggested_action": "Revisit once either (a) the original raw dataset is obtained with authorization, or (b) the task is run at large scale (many dozens of independent sessions per condition) so an agent-side logit fit would be statistically meaningful in its own right." + }, + { + "study": "both", + "field": "task/task.json & task/adapter.py: practice periods", + "reason": "The paper describes unpaid, non-private practice periods at the start of each session (continued until each urn had been selected at least once) used to familiarize subjects with the mechanics. These carry no decisions or payment and are not needed for the paper's statistical analyses.", + "impact": "task/adapter.py omits practice periods entirely; the agent's first call in a simulated session is period 1 of the paid phase, with the practice-period narration available only as background text in materials.json.", + "suggested_action": "None required for faithful statistical replication; add only if a researcher specifically wants to reproduce the onboarding experience for a human-facing (not agent) run of this task." + } + ] +} diff --git a/studies/study_016/anderson_holt_1997_information_cascades/evaluation/__pycache__/evaluation.cpython-311.pyc b/studies/study_016/anderson_holt_1997_information_cascades/evaluation/__pycache__/evaluation.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a990db042facec2b3c790cfb83b28fad32ff009 GIT binary patch literal 19301 zcmb_^dr%zNx!=6sFu?EOAKLK2I#k^sHX10*47ceT=vo9O{Y8fH-UjI@x! zW^Y`{tV_08U%PhJS1xl?bvM{+$4XTm{Bx^F{!-2tnw&Ue1o`9A(-Rh7$tYjr@n_tsg1;eXH<{jzB{Ulwrl zu|Y80HV8(+6f@p7vcIO=Cj2$W%(Ir;7NbG12v+=91ltpfU>6*MQ*g0+_Y>1?tKhk9 z6RK|8g=)bo)S$#6)PCD=+bPrmx&$AfTc`*02n~Q$LL*?c&;;lengMHs9e}k$3t*kl z3h0Z}3p?+d2urcWWQdsVHE0+c@XhxrzI>(^7(O-P8-CRb*qSETuYVVR-EJ_r&OYR0 zDLxrZ#JQ=2$PLAXh$!L9e(pjdmgKs6-+1GgznkkAjpOmGT5*Jz!n_cXxM-Y9&P2G& z{A5DplL>LYBj|FCB;rzP7Eh&!BvHGu#I(fCi3uSUjtJc3JeTC9`#rqC&m|*baBjX+ z;>1)uq*d?ob6rw+CNj&rghUt(#gll8dZM=o1n&`oDZ-TNNTiZ;siYJNtGx=L$@x&E zIHnFi$HxU%I5CS#K#8!OQNP{jH$Mps|ZIm=E z+PHf-G4c@86A6UX8Q{V(9%Gz}hSiBd!yJC234!aHh=gfY(H5@J(a~=120s~#a5S4K zDH@-yKqm1h&UFm)^T1JvN=Y#~nWDElfK_rPAq;Xc9+RauCMGa;sT0V=Fw%IElcLjc zJ|=NI1{94?MMM!ZHYFxzxwAvpFOQzR&RxAZe0g+)J9BnqbYgUTY=TR~WAkcjU2z(d zTAhz4Fhe58dcYLTLBGwRt ziM&6DIgJQ`IetDdHKq0%nZoQxBk}Njamv-%1}bb(Bu3XAK$$u#Rqr6m;5xLisg0E* zP*xLTrn+Iwdy*Ee^oX@hM8!+j77r%S|#8b7ou!e z(@L|h`$5v$2m&*aln63I?T1o;ksZh>1?t>}%rM4Y92*vvhNX6{HS9XehiA0+fO0}i z0#A?;BX52h_=Av$yyL0aNo*dP%5FAqXe=y7vC0o4Y=`nd2^*W*?PhOdhhhfiXegNV znba&F$A*oEXJ&cvK9>YpPy>@7c2MvnrfHUuv8%Yt!ATM+F&ycMJdA>n!x6?h{6X%< zOjP1#!I3azA%RUdHhzQSlgY^JT#{&%=AQAZQd<~>x`7X?+aoYJA7J~0_**o|Vb>+Z z0N7xJi(qEKGSF<76p6UL!77AUg%FROIxj_~F8?<$mRN!|)MO;grzC8S89s@wAEcrf zHiyy96Cx3`B)FnrcXJT{Y%dgIp*89zo}=PHG>RFza``Mb1%yhofGV`HFi(%7SQy@g z!GZ20NnV`i&JW$3n4lIw+7V2?HqY42_psZD&48THLO|ctoWLjfZtl@c6zd+9T;Lfh z=}9vhqt=-$8$QRUK#4uGQ83E*bf|2Lsf)q3mdYW}l4~-;Nks8PoO}#i25dQw7pGD& zLXHO;i3{w@6vwD501}JPv@=*e$$A`nT9YI4_HoSrrP*+U|x?Yl` z9rGI%w-A})(XtQ?C#P?+>x)y`&F8257R5am;zQH4w?jkpWwQK>{$#lP$?)`V{@pA- z|NGSR5B84Y^B+%5|9dL<&EM%I8>fC|Qfj4SN|+DzhKf5^sZ)#kLZ#jOl2nNQsVWAW zrxYWv7$^NE#TtuF&mV4XtPgdq4o+Or>uNZi8Xbj52en z4BsrJZ>)wTZB82(9C+K3HqqY&E8erF@grCl&??oMF!*f?-(XBC3i6&yV4WahA!)_L zBtIFAMU(TiYFK4%h-34~#X}^SH1Ws>iUJZlBp#Y9J(|=X1w{+G6G`@MO;%AHGkIu?3ix7Mg*M79tg` zd|!n$?L-3G)0MljTWDOMDSZ}0Lt+aMe-ppbC4eQv3wP~uAn)c@j;;psdj@jufu%Er zSCx5cmPbCkls&UD^2w!~yNhahm;1AOJ{ruq+hj}ImuSvVK|wS{jDmiEn~x32qFze$ zlZJLpYo0cJiaMWBJ$5acx7JHT|E8K->VcXB(|uY!gJ=@Waid@XEm^je*+5@5O@D^& zp0-YrPHY36*%$uv4KW2JYHEtHPeybBT@fiVKrmAdjA(w2v?a!;z!}~LUna$jxB{_W ziJy%yLHP)ENU2h}J5|vHqDqyV%AUY~N$`OEb@H9WQ936(xj=x61|vaqrYoG_w?t!n zj4>}#i-AlyqLF=)am+3dX*bciKlqYnSli++u*HWI#HcO39Rz1m32w?1 zx226BEB1ZLbO)Sq5yZ2F@GNQT7Lv22ZG!ne>rb=@mb8sXiIuVbQ3g_DWu<;if(4|h zmHTaDVioF&y9l%qXeYoC=m6NhLM|v%A(eI%3zoW%;AEd-oZG%IO`%D$DMA_vhjbDa z18Dj>ex*kMONPRpz*FDGo_={x|MH%!@uSY{;pMjFwzb3S=5_u**w=y|TwFSn+56n# zTRw*kzc=UT%sV=lh6;8^=I~!UT6$FQ)-4ZZ9%iauQR3UR;@j};m3@0NBbkxaJx`6Y zyH~dKs*6QJNWYqJ!xn28Qwsi|m*a2RP?8;s*#B&a%!}CF?9RGqn>H-cl9oxFGlpg3 z-N%cLWLY0+N4XR#YtxxzoI~w0ZGvR7R4z8_$F=BA68USFS}*PV6!?C|$bcTOnx4ff z^kpsUp*meH=zPbNu8PB3kgi&QA7as)b_x!SEKPz9JW^Z<6^w=w6k$NuogQN>}MveTrH8tT=O9 z-zmfRjq>-CUcDvaWOEoCnaqa z1DIo*I;-M7Ypmy=NXothkqj_u+F#6^- z$3e*iAv>yQtf>v6M8yk+kZKwR{U(w2oeFm2PO+&ND;~{V5h5d>$!6wfQDp`bAxxNX z^p2IigSJ>vwceoLBlgkbW_TAutO^VvRZ|YJ!744fD38WNOuGmbtBQVlwPve0QM{^q zr6^w%FYI5~Uq#8IwCV-=2vi9cqWM$ys!}Q%CodjMKNz_oGF8zr^E@%_R%y{4Kq1uu z6w*3PNrKY4^_h+$J>0kTVR^F*gAl5TG)3Vum6VC1!zlc6Kfon}kr_RAJ&Q&VU70w# zW%$@=G(4^nj37Ca*pJF%VjUnXF;no6ViI|Y){|4Ur9V1PkjeV~oOp6!H(T?CNJu4t z;E7lQR&- zMs;wsWZQ=IN7soMD3UzLCl@-ta=D6iK0zbW9ssP>j@#;IrEaZGKJj+`jd$=p+fgiM zsEbEXS#iKO5edPBh2qT|$bOr6j_@HRTB*@@B+ND`3NNx!t(T~d9mT78rgb%3?7@3} zmtsG2c4GAW*o5K=(chuVq49G}IcFN6V&mt?sif3h9eQW{+_})m`1R{&M{a~}PMlH9 zv;6zaNKnl1L;=KN{zk>h{0J&;G{FHp&C35%Qqjtw{#9B$_E#gMl!xaM<8cuUm9D! zRA^{g8hcUYTfUI5+O=uuwq7y*j=_xac|-e(aV41Ndh-o^8Q1gR$+d^;(zB6V@M=DI zHRm`eJ6f{i&$~y~&pjKFuicPueIwV+=ezlw!!J9Uvpt2D*6hV6fsD5hd~@Bm5j-OY z&ty+!Pd)2>_O0Bd_fV&>|IpKsjs3^u{l~IWR$7~o9Xnq*8h`EBwE;7#p>g@q4{sNO zy=!K<>jXZ911AbCdkfs5LVFM&xo>!*eYkLNP(FEmnAGfu7U+3@a@z55C^zU2oWIhM`K z<`??y^8I)6~ zzyKRCcOxD`YHhydpxk{j-*RgG=(7X)k((PWH#1(m?AwuT&ewGm>RYmd`TG5Zo!zKj zXgyG<<2I}89x!heSZ&)4I=J*ygRTz(snX#i7@-at|AfkED!0G|(`&p@;Vcr&uknVZ zq7Tb!yg|pkHahBkVrGZEZg%H^5mu%ZEZUOH+`XIw{Kjbh*hPGK z_CUTinI8{Rc`d+}&p+Dewl1jOQYOyG4A6A6fACO$Nkc7L$z5@ISA1n?ZAdkFU!{ewtU!7UXtbWl2(7=Tm8Ls-f-k7okcKpOtUO;-lv`V(-E}) zxPIb4$n_0yaXQ+LaR<3x93ZM;1mwHLsa!YLd#LpINb#xOdH}Hi0UTHb)apUMS@CL{ zQ6d8kO(-?0)+mMamlR79F6oy+!g^T6`Y2(2^y{#uQ|hn6dZ36`5$nDZ)}^O90$Z^b zNf!9+N?lwtb|m#IbOG46l*)82qc@{8$945kA8bgSN@d6PC)&g+yNi#C6B5EK;?1N! zV~u)GG#qx88lqD~#mml_L&bAuoQRph@)UC{5{EPP8b+ab)!Eh#bD_;vsVM1fSL@oi zwmLq2H021mFlb$!cNV+b?!(pBI;1gP@t**NpW|2he*jB{=k-l07hO4pzqzLAJYfBF zzJ7Y?%JYV1l?Sbi<8Q86$OASA`37NW?0L&BbOo6uf0*CGGD}IYFzr7J32! z8?=Sr+s(CAOQV1A7}`5ldU9=j`L;eNrG>q{g?)z$fzySFyK=|$%9~G5=JpJ&-_CW6 z%lL$+3$1%My$;eiRPZW|gIt>=Ccl)K#vvHrH!hm+YsN1;`hsZ@p8hk2yKll-Y_D_{ z-|br@SzO^DW==ek)D^B=R%(U}cL=tUD~grE8CUMMR-J&5=c)_P_W1DQljO2xZeM5G zDMEKZpX@swex{we4zLJ^E_;d=srHtqZcX#>KnJN}!DV!Z0J91m#FMVnLQF#K7T0RI zj$;1Wr`E51YT5cU?fRgmLIZLMb(MWHO~<{Zmiv{pJc93u1Nu!%mq973oFj!X}QBkx#BT7f*ikX?&;lLw zI2WC1%Li>~hqx0*dKT??sS(au7n3GNyzMT%opx$(!=lt`m?~>5S{~nhe2>nz(?*f( zPNODcOoB(Ks<3_$q+H3Pg&LvuiAAV;VgdK{@fR^wx{8aK!$B4`#UrpzLOfUm;iq(t z0`Hx6$f3qhln1nyh3`N&;)c`+2}D8aL8ZMteJmo3g;1z5XqDj-LR4VUdh9%b^%q6t zr4WVgriHYke*_xSsSY2HBi@3dj`f3Y#6VKGB|}$>%0TcYMJYlVk0Bfnb)$%2q<}@$ zkH|3Wf@+9(R_O0)*fATX7DpUUL5NHtJ`X+mDRM)b0}ThgX9UAl27da3OoWXwSFK29 zec4G3SsP`M03_0wzw_l8+`S~rZ2G@!(DlDgiA(sl@Y5s5n0i0JA?`I6otmfdQ%oCM zo$iu|(_%Og)(NyB`qUupGSda?iU`T8G&%|+4aZUtiZm#SE|#G3qlF|w16eflmN6lI zWgg+099wvb)=JGGS`erN5%1O*50!9(pww_v8t9lwo%>K(Y=c#rK|nK;ny_zwfI%w# zTWabIT=V#1k$`0gfi?(`V3Umw6Uq+O(5w1TMUhdJJ1$k^xZ@?%#J@zZOqM8BpsI&O zcQO+#Wv*`<0$`HSh~gytV>|*oB~nC7@=;8qPNjt_{nl-pQZ1 zEx-F-{zPcmml-KEG-pSCa65CZ(7t=6JKx^(^zcUeQMvsngo1f(1d_(PQ}%YP-U3*2 zuHW4lxGoP|FVwVVALMGdWp}~XAUAgAeO;@g8@?m5??|EEzj`fKAC&9;g`I73`=R{K z-prNEmCag0s@||CSU7#NF!qkTFD&mrzIH#ie^kaN6n?S4YrXGzLreD9%22Lhf4*V= zrpeIo(6ni{?1Y<^fb$icn;bU!Rpi_=jB_Kf(5P`q==XwIusorFE-S)BtO!CRZU4LA z@!AeArQXzJ)_OOHUXtx0Z)sfS=o736ugj+~DFYd=Z@7jwd>YHVLIC z6t3aAPih+lt9jzJ6u?pZUKMv%wCF*LRg3Pl8+cWhaM4D+6P(}8WCL-2Z|V7#+H4LX z0nA!$^W%T|_}+I4eiEh{1g%zh(GI$ z6zBFVWSiJ5g%5-i zIGjcdIan&=??sD2AA1)|E9vISrpS+je8q(mHVW3JLpuxH50Nsvehb-o&#YhAKK@0FkoH>R? zlgVDfsvzh-T$=8Z3B=3|@NqaU^kx(y#Tp?t3ZSAI_@sib0#@fwb z>584183>EiZYGu5(ipU47m1>UOB`Q2?N^$M6^m4-vHhQ;z5yIey05Z*hrv-L*X-S} z@0IO)3vGL#%LdPx0Bg>dp!2-xMQz>E#lqfwvSqg>9gdN7I96s+IGrd0cn!f&SHFA* z$2$-ajXPHMtor`Nft3T;ENPoLELvS(Mp%dHH{op0p#4sLh{W$$32rX|aNqJB*21B|!r`lhyVG*ufgHT_>|QSTwv5m0 zgBLA3pVqB~NuXRd!RbT-g@F4N0)-}DzbNvLnF2MqLB<~fLrIJXR;Kpa_`d?@)RI5+ z=%KCYACt(YC`NmbYRxfx27p+pa`BbLBHxkVgHdno2>XzjCf4Jm>I2h!cXI#mO>l6C?{ z!gHMz?hu2P$6BR)4^9mfh`vwF@DKSYlpN&Fup~3ah*L;Y6Db@D_#z2RN_J9`Pa;Vy zkLw*!Q<_v1SfgO4q*$t%eUy!(#kRjz&Pb5E9>L_YWGr5lDU^SKXm=76$m@x`ezJ&` zokmlG;A=|#K;RJ)Oc<7BnKqj^+4uCT3<)TX5g;XNd{#E?G%T^9jiWP(JICm2g4 z?vo;}CXuiv*_81da7UI?9Lrgr*@K{Q%)6GKq~@<+YB0fK1m;o%b4v+Um^D~Tz*tRT z2`bLw{lYml&H`DG>P>m>5&5@6T5=Ms8BUd1`lw2>YxI_%|0Q_R4G?ZZj7~?%@PRoH z&`1iYX2m!*$_~;ca}P^BBXS{nBm0g>Ljuth#bwc%RWv(}^dBlVAR%CmWz0? zszP8q?WOX)pe9|ZOI_Rq*Z^97r#4esd>*w$^n!^CCv*o6th_F5LD4O(KUHJ)U5r^z zG)R4DTGA6OytYeNn`HX^!?p*-_NysWNuquvd~lD{Mb$bmLiscV4>)2YBmsy-jBqh zGYO=?s!OErQ&eXeW?ihEhf$tQq{LQG>XE|HIXzsGFVX{t#A1vbLK?FTYGR3bEcH$E zG-xI`a~@#mI-_K$l{hpuDU5L>evx&KextO>kUx}2#4yJUO|nmIs&%GV*~U|RddixX z+eMkkN)^jg!@grldg_5PiyNcF1J%f@FW+)%yi-&X|23X-B<%O$X2}2x$=6n>eP`2R zt-57|udd~mb+gGs9xD~R%41cGruZ!y`sen_c#85M_sUoUoUoElYY%)|l;cnq;#aa1 zR?6)wV5nY5#X(P>;a9y7<+wLWiCxAOvtCyIw=#SfeSVKZ;lE>Fv>-Si=NKsQ0}Ja4 zvwOdHi4Wk1|@_TC+g7zygE)Nv{(2o2K;PY8=tmUETuXtLk zw`wqKe+nzpvS|CzUi9A8m4`;7rwTl90%W7Z30R8e5AAgK`1?spxY4f4F~UM)bVJWeY(nJwxOERW1KOTBY*;^qsqdv&=;fjzFQhiuR2_0?! z$XGm=M|fztXYfPNPUYMc!$T=S&xnLa76OMr(P9h<>r5g-;kYHXH`Ex>RxK?p@`@0W zbC@-DLjU*L5&ix<^8P#PLx1zlrx7@dJ5S|1PoZGThn>(Xc5o%6-b<>9qC2+Oaj8fy zdXW@vk(>w2!wh8X1xL+tQ?@BzyF2gb__f2o;qb3^<{W)_ zN1x0-FRHwVQ*7Py)000wnQJ|mZ^fZRl@)kq`RHh_ z{bIiT;`5IFr#IyjA z%I?nR{iE{5ySe`N^8N2+F3US`7Sda2-kY&yQXf`js=nCwMsDBn{J!H$=VbTpoTUSa zj7wM4*c41)@ggq((ZQF$0B`tezIw07IVyKI{7otIxafOWJZ5P_1<2H8D={QB#{lf7nX5h2pEL7qN zNi>ioUx{`l$z`Hl_ll!S?$OK8_ZC?uIDg@)9NX3&C{(VZT@v){s#r0fURwD+vIqY> z{I*Dp*Tc{69%JX-3!Xp#y43wh02W-5`Ir_=!62f5@DEd7(j>k-004)SvlwfmSfE=9 z>Z!3&v6224Px|W_$3x7^yrfv5AwE=03Ea)Ww@!7Wh=|#p5LZPW> zED{PScJ05qD6Wz5u`{DL=zoo(_<|&;iSdZ$l`kfGsIEc93eP^YEerjp z7o6axX6Gcv@xZ4Oyg)(dFtiXN|DP}>Q6})W1Xys6v-rO+D2E;6r%l3`D5o+}%Pbs` z;%`uTix_Ax0HSE@uJ0axJn+Hdw-=WmY}lJ+d-G2wp1i%nKY4d`Y-86T4qa5E+ z>F2q_{n+t+?{~aeW47d@2SO{-zoq2C$IyQ+Ur0C!bh+*P3o9U#}%S^Zt%@x7lkuXN>h9L(=H z_;g6FKANjOng?_o%R7$Aj$=5H&OG?S?S1^lk0yTjPR`w)cegK{d2Vrjckkl^KYBYW zeDvNA-&-A$UBR3ymYIoUL}!V- zA5E&Ncu@=gqvM47?>$b6{|)b9i4D>;AWo`{#!bs^qh-@T;Ed5=^enmQr(kd`v7drr zk6ih|>2>q2)tiN;ovSzDR%(HkPQX=B+DfGWZl@dWI)EiR+*OTDvY`%v