From b32c06ad5675d3eab9595e9004241f06de7b8c20 Mon Sep 17 00:00:00 2001 From: mmouchous-ledger Date: Wed, 28 Aug 2024 17:50:11 +0200 Subject: [PATCH 1/7] Remove devices naming in Bounty page, and Threat Model. --- bounty.md | 4 ++-- threat-model.md | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/bounty.md b/bounty.md index 0e2ab60..5e9255e 100644 --- a/bounty.md +++ b/bounty.md @@ -16,8 +16,8 @@ We are mainly interested in vulnerabilities that would eventually allow attacker #### Scopes -- Hardware attacks on the Ledger Nanos S, Ledger Nano S+ and Ledger Nano X -- Software attacks on the firmware of the Ledger Nanos S, Ledger Nano S+ and Ledger Nano X +- Hardware attacks on the Ledger devices +- Software attacks on the firmware running on the devices - Vulnerabilities in apps available through Ledger Live (vulnerabilities in apps developed by 3rd parties should also be reported to Ledger) #### In-Scope Vulnerabilities diff --git a/threat-model.md b/threat-model.md index d156d95..b3a98e7 100644 --- a/threat-model.md +++ b/threat-model.md @@ -4,11 +4,12 @@ title: Threat Model permalink: /threat-model/ --- -This page is intended to describe the threat model of Ledger Nano S and Nano X devices. It first lists the main security objectives the devices intend to fulfill. Then it describes the security mechanisms implemented in order to actually reach these objectives. The associated threats to these security mechanisms are also mentioned. +This page is intended to describe the threat model of Ledger devices. It first lists the main security objectives the devices intend to fulfill. Then it describes the security mechanisms implemented in order to actually reach these objectives. The associated threats to these security mechanisms are also mentioned. ## Security Objectives -The main security objective of the Ledger Nano devices is to provide a **physical and logical** security to users' funds. This objective can be divided in the following sub-objectives: +The main security objective of the Ledger devices is to provide a **physical and logical** security to users' funds. This objective can be divided in the following sub-objectives: + 1. Guarantee the **confidentiality of user seeds and private keys**. 2. Ensure the use of digital assets is performed under **user consent**. In particular, the device shall prevent attackers from misleading the end user (e.g. by displaying arbitrary data on the device screen). 3. Provide a mechanism allowing the user to verify that her device is **genuine**. @@ -21,9 +22,9 @@ For the sake of clarity, some basic definitions are recalled. In particular, the ### Roles -- **End user**: The end user is the happy owner of a Ledger Nano S/X. She has physical access to the device. -- **Firmware developer**: Only some Ledger employees can develop the Firmware of the Ledger Nano devices. They are in charge of developing the OS and its cryptographic library. -- **App developer**: Anyone can develop an app running on top of the Ledger Nano S OS (BOLOS). Developing on Ledger Nano X requires Ledger authorization though. +- **End user**: The end user is the happy owner of a Ledger device. She has physical access to the device. +- **Firmware developer**: Only some Ledger employees can develop the Firmware of the Ledger devices. They are in charge of developing the OS and its cryptographic library. +- **App developer**: Anyone can develop an app running on top of the Ledger devices' OS (BOLOS), at the execption of developing on Ledger Nano X which requires Ledger authorization though. - **HSM**: Hardware Security Modules are basically remote computers able to check the device genuineness and perform privileged operations (install/remove apps, update firmware) on the devices. ### Key Usage Scenarios From 4e83711f42601a12ae3aaad00a442e07e55840ce Mon Sep 17 00:00:00 2001 From: mmouchous-ledger Date: Wed, 28 Aug 2024 17:50:21 +0200 Subject: [PATCH 2/7] Update devices architectures in Threat model page --- _threat-model/architecture_nanos.png | Bin 0 -> 20160 bytes _threat-model/architecture_nanox.png | Bin 0 -> 23097 bytes _threat-model/architecture_stax.png | Bin 0 -> 21014 bytes threat-model.md | 21 ++++++++++++++------- 4 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 _threat-model/architecture_nanos.png create mode 100644 _threat-model/architecture_nanox.png create mode 100644 _threat-model/architecture_stax.png diff --git a/_threat-model/architecture_nanos.png b/_threat-model/architecture_nanos.png new file mode 100644 index 0000000000000000000000000000000000000000..968ada2cd251d57a1cd3d30acc31636ffdb18a2f GIT binary patch literal 20160 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 literal 0 HcmV?d00001 diff --git a/_threat-model/architecture_nanox.png b/_threat-model/architecture_nanox.png new file mode 100644 index 0000000000000000000000000000000000000000..1a97cf0ada0e58eb391ad37de642a1d23015a0da GIT binary patch literal 23097 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%0D2CAr>v?a1{32s!D)1@rY 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 F{2Rt`eKi08 literal 0 HcmV?d00001 diff --git a/_threat-model/architecture_stax.png b/_threat-model/architecture_stax.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3232f9e8f16eeb7a28280a5090369d8dbe21e9 GIT binary patch literal 21014 zcmeFZWmr|+);;J?5y50}$YqMhRxyG1tjxq0X-z!8xP6`X11RV|z4(sh3NhLTqL@VI?Jt{Kr zDILX_3I_-8XeJ?{U?CwTVPk3YN!eE4&`8qE-qupzRe=)@jy~G)bCYz30)ChLccmeL z;78DqAI`1`HV63gf6me#eRJ}TB1+| zMKB`Lk~eH5QZ$nJle(S)OB9HySMn_`UU}!qP^SK44m(uw?a#ILJ6_mDH$7HX2Tu~M zYzJ7Ur(YuQrDev9%}l!>5|O}JZ_9A2NNs1HuYYR2L1Rk<1s>2>=&!dwb9VQ}+;m@p z8DbuigPh_{N~j0+NCGmzjJGI+4Cal>$l`r~ANY*kzcrSXg?j;fM}>nAGJ`_|zQF^3 zB)}gW90&sX*AYZ32*SUcbHqeDYz2Gt z_anbAK*DD;Rc?(ji2v^n0PXqlc%l6BFc^eRRLQXTmRNK2+m>@fzS3^8a(oe;Mun-12|3<^S{9 zQk&=F$^k4$Z2lmVfmF1hN95?;QIyz?qVDIGe9rq?F6UDwcoCNZ{#+EFDABcS+mP0@ zbX}GLz%A^CKm3nYx`P;$bNshPa)VAe)&e}U{=FQCy#wYudPfa9{pXg}Us+Ne=X*09 zcegiv@X0XyC5k6M)%A8K%kFJ zObSnte3W%<1=Mw}&fa9Q%uwo+PSA&rEJ^}!PYhkqt1yB9*OT=t@6*y$hbU!uB)1np z+{lIPYk`;WAviZbsiXXb-Or!HA)4novKjus^oD!1p>B{DnY@U#a68xFOb3NSlPT7! zXKL+IzVy1JX~58aXMb@InKoKUy0I0W8bt~tm|J%5qTUu=*(&rldo^ z)lEM=Q#`ax5k?YtAx0^On1&`YQkewdykLuY2uorcNMy$iCpp%N z@JJ-6og_S?^zUnJ_5EnlzO^o5C`{JDj{9N|zTs3lAI!IjZiiG|nj+~KFcop01Xsmv3{8$(O*Tf!Sw#W!j2uXPh)_+;gPbhB zp?^#3G7Gd}1w`~Y0;d}wR1yTklX`8+W{5Ni&GDjRHi+%|Uk+tTyk(Bmzo6ef;(Ui6 zB4WAQl9OlB@R6WF;A2%Z#u*C_XCDqpaN$rhMpA2kqol6tgk-yot+ zcJ5H=&`EsSq{smr_&E%C4z0ww5D@y))}M^e{dmy)?&%et;gp2Aq^b0uN(>?yurVV~ zxTQbigouF=mmP6SVn9aF!iPl4lNA_S2lAOH5V3o-PV>>*1bh2Ju?yfL@fMz(Wwg$A zQ_SKgtU>E z{2@_0?M!6;N1{e#4UC=+&pTnaf1IMv1I*}~PE_%yk$b;!4|2K|2+D8 z5Fi0&P#(fFto}!esaFg10`ubPViQ;={+`Q0AP;Gwn?Zm4Khi?X8lV?TBKH(c|2T!O z0<7WU^5Ike$l1V41c04qHx{zg|Ld2;z`hT8?q&%4hu_`(&kwd)pcjERF!$5{Jo-ED zQBVNPge1&vEdBS61FZ*sSp2#q;t{3u_cIW3ut|m|Pb$AXZK|+)bs99>Z4QIAku98D zkmt}`NpA?q_A#f4&s_dyCvYm_BXR+J9_v{mxeSrC5eka~&~az{Oi0fUzRH8gY8wCiU|~V}@kNnXH(+~*)KRSe z8Arb#(T}y%eq+FPf41%=`Q~`h2aGsM&MdJ85Kol3`q0_m+ys7x&*!xJzDqHRl$T{l zhG9_BTVV7uBws+@uD%5Q^gH0CM``@l_$b&EGE`7b<9<}2H~T~JbK!sMrGgN6Ta%|R zo*Cn09oom8^$^Z2CW@hs8T&F|p@&Y2xpzmB>jPJS>1|}f2wCL>+CwuuRsY+M@JO1t zrSd6imF7(Dt3RV3LQ1F)R+#YBYK;EDd=vM$?fwUz(J) z*qaW~c3iD2d%%vmV`u=AQd-w81+qEqPOhFzRhV=LU(71A_mgo3w+<8Awa~ixZbYrH z{l{if0UsWH5cYb_`KmN$Bv&5gE=MMbqY$xMd7fC?_;4}ZOBS1q4@a#; z#|oOl_4z=MMK44MfgueYul8Bd`?9ZOrAsG??1t@U6S|bOkUCSe<^EKDPGbI05`Nd* zAWAR35RiN_7lW4P*%-Bx{2_zWXPM^i2vT*OK*QN)Pj@BzU=jB>h`B`VurJaq`9wcb z@0q65i#mC7?0u*4oF~(pVMIPzhoNqK%pFE1bY*O>eoJ zlesO%gSkeA&sdFw2+LtWHR>zdW`6L zIe3(8QT!If*PlxuH!J7nI?s8#m75_qi%N#uy4BrTm#aZGMzQ01zG7FEY?6$mgfzPD zRn%M8_}8p(c=?pPaI5ni*^CtSdLycs6m#C;yq_aaMnSbb3C##*sCrWixAUZzp|V?(M>?KqYm?#Wp*Wq|tIeP09f4SD zKG4;km>4mPtM(A5R796NjS3*QP|)@ZUb~|1+V(A!8Zx}SK3iH(u_@k}Q5;R@!UWhOWHDkEu?N-Y)nJnPX3TX{)cv3lWX0jj5kf%o{5%M|h=ZQm-Xmup z4O4X}kaZ@W`NIpYt9He`i0a_6F?6(oPF8ww=yq6@fkf72tEq~|R06B6PH`JYD73N( zoi`{;DvEYyiO;6-=trp7W7z^!J=-=Vq|b6S!yzf4=v#-c^|Ujqv_GJMo8G_hx}`p| zAX|i{FEpNX*KI^i8zb8sk2`z+Srag$eA<$KWmx#}X4QPxiD{MD-$yz%*n7#Lit=HZQ1Xb?{=}xuct$`S8Gd> zv;CWNLL_}wnauYcTVd9xrX5&?0(yAz z=!E0-jyvtLymKmw)c!tLCvOmG1hlCGpTfh(pip|S)uCxQO&JMqAef?a;f@zowBLxG_7M8SHOk=v1ZX^ya?AMf5( z-M@mS5MAqmUh>$9ppf)(O+|hkoDqqoda>3NA@@QGrJ|QK+haDTBXKVAS9b$;xnJ6wMW^zC4v~ zkV1)w6o(;WuAS_YpXXZ@u|5P~`qx9DReq?OM3rwX9QSV(5Unmbl(W8REKBzj3VL0w z9D5wKTtRJqL}|OPwNt%&n<4mJt;pOZ+KB^?3nS|t#C<-QgtUFSxh%)WS~!NN20)g7CnT$wspNEw+n<47~)%EE~J z{0ZJoh>_rR#j^}{Q@js(okpH}sSnOA|DuXwSzbKRvsPPM3rW__OPi*HC#9;ZY*j~$jvWsJYGHi*~`2$7(;b~!ZLP}%GIFZI_=3+sqh=C>?Xo+Y<+$W@{w zNLFr73Ny#O$U13QrwUuPq+%$2SrD5psh_rY$oTTY_9LpAP+Jw8vYce19W|m}Ubl%6JPH!Tu@G>_t-603n3e6p^lpg_dtDI@U?}uw-Yf=oqUG%u0 zceDSB!sdMj;@!gkuBPKW=a_Www~8!I_d{i(ucA&}V4-T>z7R1p*a43}inmd-k0U}; z9%@~9HcsxpMbzaZ)3mZwUuM7TCLs4$5)4*D)I^)FET7YVU#;GjY$^?57FKaeowq5G z7rk|;lb1J7zW=^3kdibHEbJ*;Dc$oWF#?Jk8w`^ih zb{w8L^*lffq%uWd6-Ox8`R4cB%nAJ<0>r~4?GQJRyhJPRY9PPoOqz5U0?P z9E$KHBX+J~D0Xvx0G>sjvh}-?jt<*uiO?$D+K1OY?{(J8D7``kbZoOnrH{1iuENHaX>5Ji@ts-a3>=oyR3iNF{4g`v&bD6Z2R& zu@y6>b@?dVa#X7n-DB4!V+B@Qyxa;=nK!e+2C<2bhFm=BK`8`%c!f*IF>ACPSTBlW ztY?U8G%D2rM+^kFC0oj|{A<^kM)(HB=5mjxKV$*MyWmklj_JH5Eyf>M%x0P|e(3ir zk-h6`t-heoWL)GJQ@QsqtB%RfCB?DTX0?St#5O%NOSD`8Eufy<0A9|fJQ(sy= z?X`$i?x79|I$%%i*!Wf0;g&Oxjww5YY;0|PTJo}p;OiF;Fj~8dER1?@Rrad?ur1doS>Oa8lTaI?uGr6<(HDl(VTx+xzB+zh@c5 zL5*F>FfrsUE3o;vrmuPPo+Cbr-jKZ&qYWR#-Ka*_>$7(r(aVE|qbNu1BS~TC%CaA2 zk0&S+Ir6$fPHSRf{vpSqg-;{*UU!Eyp_c zZ+^md6noq&d75^b9yEFq3g2~Ocr(@|9-r^jaWDLPGq;C!D3%~Dy&Z=%J>#}xfk#Aa z#TcyVp2dU{1Ot+*4zrxD;-}_C9hH+v$UBGK5~s#hS(}ViV|PkD7)8(dj6sr!)~Hmt zGWiLb+CjbOtR71k7S@qgO^ZmZdHjPRX?Ota@J<>;DH)$1`Fb_ZOD{N?AX5#QkooFa zVr=C8r>v(y(9RdgAj9r(t&npZ6Yv$7Egbed;3{x!i|}!G zr!l$OB@JKzo1u=_=i5}yPT{f$P7eFUDpN#q$4%(; z6@v-VC%C_fgp1w6OV`JE~L`B)gq& zH{(|5u%?};dkz>(zLBX!)y;e)wDVy&NsX^RZ)YDZLVwW=|chbif$Ak-yy)LXoiPehUC+mFdyn%kmD5%X1 ze-8;jYq%h%XSN#3LE<1()l&hThH0>}4?<*x$#bz&0GNkokgrOa$T}*$fw(9{a;){T z847Kv2TUH_ns!lKLR?w5(I&NnY)Nu7w7bZBf7P^f?|E(!K|soW5G8s%q2E_czLa%v zTgB$8RGrL8&9jUMY&)LPlwP!E9u803eu9kaGHxBT-0j(R&tW5(w|GpP*q9orCIA%$ zU(}%qV=@83G#X8WQR&h4x|0DxM&lE`Bo^|#fRVhx_|P~Qq!kWz^dQp|?h#9g1mxY* z+omCPOz)y=No$HMq<;D(}@ziFy-!RlX-Zc1+5yt>_A z)<>l-+-G>>Hs9aq#A4bIC!7GK9sHj!9+1hywy4{^;4aaty9LY|@4*u(nJ7H3Gv*Rj z?%eBdwwFK4_!ul_%Y|WQ3!a>f`wK1ELPft)Y8sEmz;Y3?KzT$E3_xIX5(>Fel~#1T zm9~0ZS~0++1_12Df$DC+g#mcAj?nGHs}hgzsjTK>jn(+iLqhH-&l3XIBe$-{`Z^51 z-5DD|=;Y*Etmz|u97i;~$S}V@{N5}G+qBS)*RkxpQTIN;_(C^(zao*rFqmbNa(_`* z62RMh?%p@z@lbU9_(ab?4-#5_y8D|XR+C55 zD!ZfDK$r301DA8|<*!T3#>omakcq!0?@eXMax!dSC;NE*3pIw6Adag<5U9@K7hH2f zQwHMGwRqoU+_j5FB;KB9c-{t^RnfwNlooRYJhyG6tV`U8MG5779vuZWpA9aqN^-orN%2iB9`_W4k)f6P%r{YdriyjUN&C; z>#W#SuP=e7L6{5LY3qZ~@sDP0jZ^xwlVwl7k9eH4W^R~Ms`a1x{ejUC==DzW;Dz!j z0L=F^s#(D9X$3Vpx&CYrMzg z+A+rX`c(Yr5>K$BsKibBGOXqL-DI7+w_u91_8&+ISqA{#5xhf%#gOpn%i)mTT<5>d zZFmQi1^4Sq%FRZh6KMzcIf_H;htV6!++9|~oshUwsrxnNrJ<$Xy~0{cJH`~-DHilf zr3&MTV(ldWJ=5-&E#vhB3e@$);ccWTvST#cKQYZw?nZZPuqiM52GuR2TA_omY4e|iE3u_Bc)wjLFZlK$Y@m0cF7q{3pk51P63ny)|uq#YtFcO%OCroiS{y^iO z8-QRp+cTF5jIqO1IN3B)ia0svId2hDJd4>**HaUTuWwbGPEUWWoEaOXd!5Dgaj@?A zUZL+Uw1^h!ws=Y6)w|wfsKA6KBV)RX_wWLHp}xjICV=XdnhW%We11eG@Oa#2nq*w$ z^37D>GZvf1>(EvEtYjW30h~&PgHhf9yhLGlr}q`cvXcN1pYtea1DcY6S)y5s(8D0{ z01oguu-Pa?5aZlCI{7q~hyf{uS%_>+_+0VBoCS~>WGhWxdn{mlKny_}7^u$_!f27L zCi%!6DFnUB8#7cHS(u%tuPpr{gICUb8Ly2O5ou+U@r&!X3v7F661cGDnckN^1xOKA ziyQKL_PKl53n8rYkRlI#aR4xkAUa8%w^X7ZOCC~r0`P5 zftR}p$Ew<&>f0tBydc$n44x6s69qjsqybua$BtkxE0N=#mhXIvlLxXD5Sj1PuT*zC zu{~)3Z}QGLC?^U!TkEbhB_z?julU&W#kP;R#^0zfo*(8MNoTk_8TPKqNQaUFwk_2@ zrwbFiEYiIWIlL`#QLNQJ3uSZsbfUN~a&+a*gjCt`*)Vc0?$1KjL|B?5doT#*2g3R@ z0=^3yYH`)5r(H2?4x!Xi?9(b)Tvok5m+DEGbuH%S5rW$Dl{mo;$^4$0i9%*C-M$=P zPyxNuFrUYN-Y47>$Zg@)uH&5hU5yC~_HCrN38meSwA#NxntJ2bF&{fM;zM<=3EjcM zx%<7~?49u7;ON_<36Z;bHg{tSZYU~K(jVi{fAP8Jta9bqZ2cUqv1!x(K&q>Jf#b)f zp78ozW(o4ON?x4xRgHezV7lN33n$m<%6#e!HC}T$RUP)T^#~hJ^~)dH*x5P$hu(KL zC2{G&Ewu*8l%X_whdJk0Z10t4z6C393?{`P8tR<4r^Jx(bA7wsyTAJtTKIUV`Q{F5 zDUS6vGIXm-gsI`9c+R3+kz-oU@9n9WB2YuEw4*)WpCje5oW!{luXQ`y2AD13Jk{$3 zz!oVS#E#lAGPk47iakdCTK{DQ_&ZC>^Ch!UG~2 z5}kgKY-YOm$k>tLoO*LZ%XR!jK+FAgO^3GXOzlRd6ep6^w)HIWpH1j#^g{+MN06oT zInSyB0Q;ZYa@w!=^Hgs>bl4J9mV?zTYtmWe%VSa8^i?Z`waJ6|`yv{4*pi_jl6n*&^x|#(o+exe${yXpMiJNwt<_+p6 zDK0A(ExgJ@w8aiP5#L`UT2Z`j;U74ENU?xn1||g3x=dx64G6X<%=Ueix$0t1`UBVU zCl!t$mGRWX?M;Gz(nxOP`@J6)1K4NK@Y7>z0w!6Ae2S4Yfq!?#q(=JfC0;}CK}F+K z)rMG?K>|xUA*~#dE_;!h$OWZPYTZH#LeKz8)5>cT8B*6-yYvzu$H@SlZ1ht^AMFV` zMJ0}#zAO?k8xR_)O)|~e4!(k(7~*i2xHb^} zT6MExb(-ftmALd2Ey;^qPaRtZJ_cx4-tXB;t~|Gvq-p{^zb#4&6g9$zPrFxdfki(u z@qBflY3a+Wlh-mO>9(hnA-0=aSx;h!hi8Fd?MG8u$<^=dxa=h<`eAgj?@P5XKgUmd zU}Y~a+~)Y>Kumw1rVXb}F1bWoFO?@=!N5u{vO7~#BJshA6Y$_q5cE1PU*w#r?|yM_ zLA8tooPGhDqGQY%yE&|5^|tRUJgB`&#vL*3RZVMl>Ym#xZsPOay^S6kZ@5^`jputW!Q? z&tSZ*HH$~}(NZrcI}tP6oK3ug;pw86Fk!{qeEm=o74y2$tAUHEFG%D(Aav^?h>D(M zl@uiYKru&bS{1a$ygw{*?>m{lSZYBpxtk~CDrD~b+}v`vAfloZ#CyV$PV9B5x}ePt zeaLC=K{0f)sG=(M)uN|Iy*Isr3%5(9^rk;-RB^+56(qT2*$ZZRzY`;G=aWxHPy&t|sPP9Ju81V&jol?Uh!m25`6 zu^-_Qx7Th9TOkiRRzWAZpv_NIK;|MNyS-Yv`D>dkqoFm0j$n<_!DuEz+rzr5ESWkoI8Bg0ucUt?{y)ONmW=`_jYi+k6(QcRxc{c1wHC$^@NLS8O&HluL5QY6eWwK|^_!eSs?qi&93;U4U}*!rhr4y_+*Xt07}j+>jZ56DSl(9?xqDQ+KON=9Dr3K zU=osN9eylw*ou&3BY*O?9OI%#DhdVDpWCECaUB`dl_~ zxxT1zxN$q{z*A}@IgrxpVy5Hldwfm#)^Yi0`xPwX9$aPFOVz9hq!?a{=Y&BQx95Wi z$=u<0CUj}o_AN`!@xZzp${^Ol^#E^PUswW2W*@RSG@O`|_Jmu`A}}}I?ZvF;#oU_O zqb?P8b@WPBJ%9`rh(X9AW8Oz5>Ls*Aw9|${DPul66ko1kkk%2DLFyTxDKHy;{00$F zsR(cxsKb6fJ17&-KLbgA2iP2<{Ra`e^NIQO&v=a@t2FADLm9smghS))n?W7)pT8L{ zRZ27VjrcF(9o$0?&xc2huPb|!z4p8BBrcn3Za?M=yPnXgbLPmRW!(Ry^yh6^nOi!z z+bS+>KrMq)v%oLtC$$p?1~n;|w`u>p)L?4)kg?_FuGDL!y8mjO;v~Zxi0`?&_r3kl zuN*eBNB}ls2;wqY7U#Vk8+{iWu$e%6E{k{bJzrHi&J#>9{>AU=d(@y7}vHNCKM%OhG`UCvj5H z_;~Nt&Ky(SuU|Q_JP@vxccMj99265-fr|0|(ptH{j%QtNxPN)0%DE!Vg>H6w2UZjB z&nG2uxEe^4X7Jg09H+_X=8ojZ6*NS=#iR2Vy-TYJq;%;D>$tf;*l15^@p8^z2DI1uCGvliDz<XtiqPMca9P&@IX6_eU@_CE4kVqB;dY&_`5KwGHYX-npg&X2C}*!rp@+s3^_E_y-z zcHzCNrc8M z`*x?R7}2(4O=9N(egO@G^S1=~!HXu)EfWA|woPS;rtB0qu%OKr^YRPcG%(M7F{d;Loz)NECCnblp`;6Bsq-CHDI$5R}fxdGFaSzMzwVtk2(%e zsHue>7+C-hS6DFUm96^&L+PG~wdr(th+a>_zmY%~yJo&tfXw~0&&nt!IzCe5_=4HS zZ$RWq&|~%eWT~0OWSP4+pBqe)NVh8UnaaygqzO^3YXF8*t1U+3ZU8UJ-9W4W#eB1&vy0`;K&ksdo04*mT~D6U zEMvJ74;hWZ1!hkaUHUcOP}F9wjslmm1@mVi)#^R z*xvk@o;*?`C%{g2)qyRVDns=SidBLa0#P|@7ATw3v7{z1%sh|YYJ`*BxLgs{^W(j} zElSjJ^OZTwOEKHuCDz}!ItwB=SZ|&K2n?rDaNwjqR_$2WnS3$S3>Pu)m$+59jxZ6k zFMNx#EB#Cl4(pgrII>>3mxCm=+NYMTWL`s`x`$3#D#)2mMh zO&7?o^VY;IS^aopqlV4e{n54nqC*BtSXUZO?Uu?At#!;qqb6IY=kRJcL@^#BE4b6? z=*e6SB+cO)bja459tm=RX2vSoSf6EodHDOt;@-e5(Gn>0S{vKV+@6}38atTuEkZYE zwf;ra)C9_p7Q>$PRn6bpKKQ{AcsF6rt6bc^@gj` zq)?=L*i}H@EHHD0eGO48!cESR&q(h#snf}Ip$@x(TtDBFHT?QcKlkx{bdFTtJDY?} zTU>~aa#*vqc|E3PFC+5 zUF0XUG2*ah_EMCqga+COic3e}eeOJwI#mXD;p za%9e-k&b^Zn+sG6r$a5mtV%^+P%9X(B$}V;_OP=z3NTPO&x&ru3ypo>3P9KhE9boV z=z1;={nj|3dR=>S)+C-nFi56bJoa6kj{I>hD^>F*qC@EEnl$g!J4#y5FZ~${bpv8` zM8wM_YE-?=23?_=6>dBc_oEcV^lB=dYVd3fHXN zYLBbq=WO^1bP)U#sGnP8^s%mt#|A(Pi$~mA=F&ks?^JuSwY8gZfK;TsjpRPucO!!6 z$CGtQaQI4AH_y^nuH+GgP@<%)R9TOf`V!Sr&RZzNn$EiXm9%8FE2#CSf`$MoEs2)) zUWIA*C=_-`iKzos+RdKydB9=+{3>wFkfTwD`8uT<_6Vxl)o6z$EI_Bj_GDe=8%O zAYK}lAyx5cCcCjW?>&2$)u+8^qPQ>uWJG;)nsK@^iZy!6%M~zRTb%=?5Tcub1!i)h z-2j8KZTN1~oq^_JQ#7#oxC^pfo_~DKYbyD024D}fHLHyYg6%gZ(JF_ z634T%LDO-4NAtBHf;1u=;LBU0`rKtWROjisHEEJbP6I%oi^I& zFdEb2@$2e~9VgW<+URZf=U=lt_ywnIWXhKw!D9Bi(qK+hrXyg>GY33Go7ydVLk^b_ zmQDzjEtUDedrMl}xrl zO4$_p(Ua0dFSFM(jvynV0p1n~ejcxujih7qwjrotsFCWqBI9Bb3*FZE{;qrZXO@tK{3+yk*J?deZkr;e3~R;DPN6ezoIdPUwns@87AVX66bRpXK;7G zm=7oa5Y2z;wl2y#oe24Iv-6%tztv9-8jq!;M>uki9&p0zx&&D*CRZ(A@(H;2`Si>Dx)1RiaUsMgWf4kMSSwFW}j(ys82 zfpS2t7b}SO48(v)ljoKk`8k(()1yGgU~U_NMd;GxSw=p4&0vZbC5&vdyrJ*O{H}Yt zWBb7F&uYrH3qrQp_C`3y9RG}=NzjQ4{;k+*g~Cz7<~IOE*P(+g#A`s1GYBLKhQHRx z#C)yGfEYDgghAxnFb`qaTcv7>B4T=n60{l2J2z>JAvNI;l?=AQ~$^{yYZbE zP2|rwmWdxHy*w*NhhAJE$y^?yZydzMiTTe1BuW{p-<#pDl0v;u9LfE790!=vSi5{M z!iM@oOg~+RXL8^ zng0+TiwOde5^CxdQ(bZJwMg35Co-i$(c;^DnUXyfLG=npY|>>Gv9PD)x-cIab`07} z9H!+qd$Kb6^(gh^4IGts&W$PQ3%j0-%tU;Yu@!l5Uq(Fc^-g3HAjwFf8Q*9irwmnA zrq_=DN+sr)#IYl=YB7+?|CTrof|XT;durf**)>izT1;7_DkM_f<{aCKH)FJ*)l%EJ zFZrHl@W7`3gJ?5JWxoA*Uhxw=LKOIv!VpweLSq>f(!%E2NfXlFNB-*hRP0kB6=IGTe&LQS-7tupPo>Ov@v_Ks`Ss@p}fPxQj7~uiGu} z`*Np}AMmm$)1g2W7ZT@4Kcb{&G?UuBZQpaGK->Ri!lAifq2g{>35)*PwJYjr_U)r>li%Lswy0%S^b8BD|G1$A2Zw|C@Gbyqi?5nf0CT!GjoHr7kjeeG-tT|7 zPD3RiM14Tskj54Dl}3D*k<(L1=+cE=zyjo!^@PNtK5J->WvhSypf zKm2F6TbG=KqO)clD;5xGgeDu#DFpK^B*+ITM2xzK9FX!PdKA}K87nacCo?#ViANBb z=YB@@AH~S|s2#L7e8npJ1J$L=%XyMzgK=GWNj(x?a{eh?XSUu~{<} z77PH&iY;=fr*!*;)RD1m=uSw}zDUdh1iNpGVV$1KooTJ9ev+^s4=0b|s@aP-BhA`W z`JutC0sZt_YmRKn7Z6uK>9=pWJ2^`@5MwNEdiu}2(xVQUmXe3QwCsr7iE7$IQ8SsY zINWBJ-qEc{@Kon9-!cfzZ4R~j8}ilq-92bZ5VcTa9U8_JXH6JO{NWGR;-0GTBGAW1 zvG!?>M(|)u)Jga zi2MU`c+R#FI&);kZtE3-a~nGuL(1`s$PJQS?1CT$*i&Cp*at{^3`%L& zDJ$g0d_rdmFM6-4Gz^8))<>|Wxp;dk5j#G1OOA0AJR&I#q58MV4v2%TPtg_5m!gts z960*)m_{RezMu|Nl0e?tBxnkTJM`*CBRt;{y3qlv0h_?e7vmpY3zh);|5~OE6a4V6 zoandCZPOjzm-cj~ol;hR(>YL+?^Jk1PLCE#f;fx-E4FU)khdh6YD?%+2i*7|e^N-@ z2A@(`x90feS-<S#3{{`C%FSQ-X`r_3Ckrq_Aiq6hc>WoGfJ7wM-Qd& zNc%KB&s5ne$Z-Jh9ND1$3NLy-j#1qW&#Yra^*?1wdZmb{J@-EvWX7>F2x^G^tje^M7lrfXl!- z41%~74hAZd9U;g}@)rv%@^?7A} zHV$;lu;@6Pu>sX$gou>^*Wus55(WRV5dCK$*+zHZ=zph=*vNuz|Drz_s7OD&lH(6U z8R<3UY$!4m=EDf4Lv7r@cfrvUeB|x0|TL!!|e)u3y z1rGo!(XGPV56TZR_M>hsnB9b)q6q_=10dlIp6D5Z$A|d0iAmuTUDavy75+p#koXi7s z#xZ@?`&%o}Pz)Nr9M-JL^rcxX(gRlA>@AzbVN}a5^q|g#U;u-(-e>!PKvvzF{Wj(c zF|3sn0J-czN68S;6f`_qA>Iz>0NlkpZoB2q=fF!6b{S-v0qZvrOg6bYe+hVa5duK{ zITsMz*9GPq5g$P0L2!O2{1hpak zDLG9BWFkEQMd!1~c+OZNib~Ku?SqKXcCi(_Is&^oabzfMZ4bbRNmk%8nrU>k55C2D z!q;ak3ob@Ggfj+Ypgrei1l)kkvUsl#>mgI@03b@^#KGq7Vliw)763^6SR#~0ZEL8c zmxx4v+Wit6YQxfexvalV4=dv=pNLb}AvXQ-y3`7&RgBj%z%)4h=5YADU@pMUSYjCd z=s~5a2JCdS2-jFo))}6 zq5k}fj{a1I(1i&WoA04)3*WrJu1e_UqC~!-{4-ahtMZ;!vh4ScKo;SN+V9OCzC` zOXah~rzinJ%+P}zS9r~N108^2^FDcQ4rOM0W6zIRcD|G!J*uKaTE;Wg$>;w;8Swum z=N1Xvh_TCm#qW_-fsgP9s|a4MI!cWbR4H zJ9m*bEyIE^5;$C&G8$RnXd8_zMA{k6S%@O-#AwcfmBqkf@WFrPkc0Q$`iJ^m1f3P= M>FVdQ&MBb@0REgytN;K2 literal 0 HcmV?d00001 diff --git a/threat-model.md b/threat-model.md index b3a98e7..61f9569 100644 --- a/threat-model.md +++ b/threat-model.md @@ -35,19 +35,26 @@ For the sake of clarity, some basic definitions are recalled. In particular, the ### High Level Architecture -The Ledger Nano S and Nano X are composed of: +The Ledger devices are composed of: -- A Secure Element (ST31 for Nano S, ST33 for Nano X) -- A general purpose MCU (STM32F042 for Nano S, STM32WB55 for Nano S) +- A Secure Element (ST31 for Nano S, ST33 for Nano S Plus, Nano X, Stax and Flex) +- A general purpose MCU (STM32F042 for Nano S and Nano S Plus, STM32WB55 for Nano X, STM32WB35 for Stax and Flex) +- A NFC communication chip (ST25R3916 for Stax and Flex) - External peripherals: screen, buttons -The following schema describes the architecture of the Nano S. On the Nano X, -the buttons and the screen are directly connected to the Secure Element. +The following schema describes the architecture of the Nano S. -![Ledger Nano Architecture](architecture.png) +![Ledger Nano Architecture](architecture_nanos.png) +On the Nano S Plus and Nano X, the buttons and the screen are directly connected to the Secure Element. -# Security Mechanisms +![Ledger Nano Architecture](architecture_nanox.png) + +On the Stax and Flex, the touch screen and display are directly connected to the Secure Element. + +![Ledger Nano Architecture](architecture_stax.png) + +## Security Mechanisms Several security mechanisms are implemented at different levels. In the following we'll distinguish device security mechanisms, OS security mechanisms and app security mechanisms. From 57a5b9e4418f8f276a02be6c4c708466986149f3 Mon Sep 17 00:00:00 2001 From: mmouchous-ledger Date: Thu, 29 Aug 2024 10:08:14 +0200 Subject: [PATCH 3/7] Pictures were inverted --- _threat-model/architecture_nanox.png | Bin 23097 -> 21014 bytes _threat-model/architecture_stax.png | Bin 21014 -> 23097 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/_threat-model/architecture_nanox.png b/_threat-model/architecture_nanox.png index 1a97cf0ada0e58eb391ad37de642a1d23015a0da..9f3232f9e8f16eeb7a28280a5090369d8dbe21e9 100644 GIT binary patch literal 21014 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 M>FVdQ&MBb@0REgytN;K2 literal 23097 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%0D2CAr>v?a1{32s!D)1@rY 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 F{2Rt`eKi08 diff --git a/_threat-model/architecture_stax.png b/_threat-model/architecture_stax.png index 9f3232f9e8f16eeb7a28280a5090369d8dbe21e9..1a97cf0ada0e58eb391ad37de642a1d23015a0da 100644 GIT binary patch literal 23097 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%0D2CAr>v?a1{32s!D)1@rY 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 F{2Rt`eKi08 literal 21014 zcmeFZWmr|+);;J?5y50}$YqMhRxyG1tjxq0X-z!8xP6`X11RV|z4(sh3NhLTqL@VI?Jt{Kr zDILX_3I_-8XeJ?{U?CwTVPk3YN!eE4&`8qE-qupzRe=)@jy~G)bCYz30)ChLccmeL z;78DqAI`1`HV63gf6me#eRJ}TB1+| zMKB`Lk~eH5QZ$nJle(S)OB9HySMn_`UU}!qP^SK44m(uw?a#ILJ6_mDH$7HX2Tu~M zYzJ7Ur(YuQrDev9%}l!>5|O}JZ_9A2NNs1HuYYR2L1Rk<1s>2>=&!dwb9VQ}+;m@p z8DbuigPh_{N~j0+NCGmzjJGI+4Cal>$l`r~ANY*kzcrSXg?j;fM}>nAGJ`_|zQF^3 zB)}gW90&sX*AYZ32*SUcbHqeDYz2Gt z_anbAK*DD;Rc?(ji2v^n0PXqlc%l6BFc^eRRLQXTmRNK2+m>@fzS3^8a(oe;Mun-12|3<^S{9 zQk&=F$^k4$Z2lmVfmF1hN95?;QIyz?qVDIGe9rq?F6UDwcoCNZ{#+EFDABcS+mP0@ zbX}GLz%A^CKm3nYx`P;$bNshPa)VAe)&e}U{=FQCy#wYudPfa9{pXg}Us+Ne=X*09 zcegiv@X0XyC5k6M)%A8K%kFJ zObSnte3W%<1=Mw}&fa9Q%uwo+PSA&rEJ^}!PYhkqt1yB9*OT=t@6*y$hbU!uB)1np z+{lIPYk`;WAviZbsiXXb-Or!HA)4novKjus^oD!1p>B{DnY@U#a68xFOb3NSlPT7! zXKL+IzVy1JX~58aXMb@InKoKUy0I0W8bt~tm|J%5qTUu=*(&rldo^ z)lEM=Q#`ax5k?YtAx0^On1&`YQkewdykLuY2uorcNMy$iCpp%N z@JJ-6og_S?^zUnJ_5EnlzO^o5C`{JDj{9N|zTs3lAI!IjZiiG|nj+~KFcop01Xsmv3{8$(O*Tf!Sw#W!j2uXPh)_+;gPbhB zp?^#3G7Gd}1w`~Y0;d}wR1yTklX`8+W{5Ni&GDjRHi+%|Uk+tTyk(Bmzo6ef;(Ui6 zB4WAQl9OlB@R6WF;A2%Z#u*C_XCDqpaN$rhMpA2kqol6tgk-yot+ zcJ5H=&`EsSq{smr_&E%C4z0ww5D@y))}M^e{dmy)?&%et;gp2Aq^b0uN(>?yurVV~ zxTQbigouF=mmP6SVn9aF!iPl4lNA_S2lAOH5V3o-PV>>*1bh2Ju?yfL@fMz(Wwg$A zQ_SKgtU>E z{2@_0?M!6;N1{e#4UC=+&pTnaf1IMv1I*}~PE_%yk$b;!4|2K|2+D8 z5Fi0&P#(fFto}!esaFg10`ubPViQ;={+`Q0AP;Gwn?Zm4Khi?X8lV?TBKH(c|2T!O z0<7WU^5Ike$l1V41c04qHx{zg|Ld2;z`hT8?q&%4hu_`(&kwd)pcjERF!$5{Jo-ED zQBVNPge1&vEdBS61FZ*sSp2#q;t{3u_cIW3ut|m|Pb$AXZK|+)bs99>Z4QIAku98D zkmt}`NpA?q_A#f4&s_dyCvYm_BXR+J9_v{mxeSrC5eka~&~az{Oi0fUzRH8gY8wCiU|~V}@kNnXH(+~*)KRSe z8Arb#(T}y%eq+FPf41%=`Q~`h2aGsM&MdJ85Kol3`q0_m+ys7x&*!xJzDqHRl$T{l zhG9_BTVV7uBws+@uD%5Q^gH0CM``@l_$b&EGE`7b<9<}2H~T~JbK!sMrGgN6Ta%|R zo*Cn09oom8^$^Z2CW@hs8T&F|p@&Y2xpzmB>jPJS>1|}f2wCL>+CwuuRsY+M@JO1t zrSd6imF7(Dt3RV3LQ1F)R+#YBYK;EDd=vM$?fwUz(J) z*qaW~c3iD2d%%vmV`u=AQd-w81+qEqPOhFzRhV=LU(71A_mgo3w+<8Awa~ixZbYrH z{l{if0UsWH5cYb_`KmN$Bv&5gE=MMbqY$xMd7fC?_;4}ZOBS1q4@a#; z#|oOl_4z=MMK44MfgueYul8Bd`?9ZOrAsG??1t@U6S|bOkUCSe<^EKDPGbI05`Nd* zAWAR35RiN_7lW4P*%-Bx{2_zWXPM^i2vT*OK*QN)Pj@BzU=jB>h`B`VurJaq`9wcb z@0q65i#mC7?0u*4oF~(pVMIPzhoNqK%pFE1bY*O>eoJ zlesO%gSkeA&sdFw2+LtWHR>zdW`6L zIe3(8QT!If*PlxuH!J7nI?s8#m75_qi%N#uy4BrTm#aZGMzQ01zG7FEY?6$mgfzPD zRn%M8_}8p(c=?pPaI5ni*^CtSdLycs6m#C;yq_aaMnSbb3C##*sCrWixAUZzp|V?(M>?KqYm?#Wp*Wq|tIeP09f4SD zKG4;km>4mPtM(A5R796NjS3*QP|)@ZUb~|1+V(A!8Zx}SK3iH(u_@k}Q5;R@!UWhOWHDkEu?N-Y)nJnPX3TX{)cv3lWX0jj5kf%o{5%M|h=ZQm-Xmup z4O4X}kaZ@W`NIpYt9He`i0a_6F?6(oPF8ww=yq6@fkf72tEq~|R06B6PH`JYD73N( zoi`{;DvEYyiO;6-=trp7W7z^!J=-=Vq|b6S!yzf4=v#-c^|Ujqv_GJMo8G_hx}`p| zAX|i{FEpNX*KI^i8zb8sk2`z+Srag$eA<$KWmx#}X4QPxiD{MD-$yz%*n7#Lit=HZQ1Xb?{=}xuct$`S8Gd> zv;CWNLL_}wnauYcTVd9xrX5&?0(yAz z=!E0-jyvtLymKmw)c!tLCvOmG1hlCGpTfh(pip|S)uCxQO&JMqAef?a;f@zowBLxG_7M8SHOk=v1ZX^ya?AMf5( z-M@mS5MAqmUh>$9ppf)(O+|hkoDqqoda>3NA@@QGrJ|QK+haDTBXKVAS9b$;xnJ6wMW^zC4v~ zkV1)w6o(;WuAS_YpXXZ@u|5P~`qx9DReq?OM3rwX9QSV(5Unmbl(W8REKBzj3VL0w z9D5wKTtRJqL}|OPwNt%&n<4mJt;pOZ+KB^?3nS|t#C<-QgtUFSxh%)WS~!NN20)g7CnT$wspNEw+n<47~)%EE~J z{0ZJoh>_rR#j^}{Q@js(okpH}sSnOA|DuXwSzbKRvsPPM3rW__OPi*HC#9;ZY*j~$jvWsJYGHi*~`2$7(;b~!ZLP}%GIFZI_=3+sqh=C>?Xo+Y<+$W@{w zNLFr73Ny#O$U13QrwUuPq+%$2SrD5psh_rY$oTTY_9LpAP+Jw8vYce19W|m}Ubl%6JPH!Tu@G>_t-603n3e6p^lpg_dtDI@U?}uw-Yf=oqUG%u0 zceDSB!sdMj;@!gkuBPKW=a_Www~8!I_d{i(ucA&}V4-T>z7R1p*a43}inmd-k0U}; z9%@~9HcsxpMbzaZ)3mZwUuM7TCLs4$5)4*D)I^)FET7YVU#;GjY$^?57FKaeowq5G z7rk|;lb1J7zW=^3kdibHEbJ*;Dc$oWF#?Jk8w`^ih zb{w8L^*lffq%uWd6-Ox8`R4cB%nAJ<0>r~4?GQJRyhJPRY9PPoOqz5U0?P z9E$KHBX+J~D0Xvx0G>sjvh}-?jt<*uiO?$D+K1OY?{(J8D7``kbZoOnrH{1iuENHaX>5Ji@ts-a3>=oyR3iNF{4g`v&bD6Z2R& zu@y6>b@?dVa#X7n-DB4!V+B@Qyxa;=nK!e+2C<2bhFm=BK`8`%c!f*IF>ACPSTBlW ztY?U8G%D2rM+^kFC0oj|{A<^kM)(HB=5mjxKV$*MyWmklj_JH5Eyf>M%x0P|e(3ir zk-h6`t-heoWL)GJQ@QsqtB%RfCB?DTX0?St#5O%NOSD`8Eufy<0A9|fJQ(sy= z?X`$i?x79|I$%%i*!Wf0;g&Oxjww5YY;0|PTJo}p;OiF;Fj~8dER1?@Rrad?ur1doS>Oa8lTaI?uGr6<(HDl(VTx+xzB+zh@c5 zL5*F>FfrsUE3o;vrmuPPo+Cbr-jKZ&qYWR#-Ka*_>$7(r(aVE|qbNu1BS~TC%CaA2 zk0&S+Ir6$fPHSRf{vpSqg-;{*UU!Eyp_c zZ+^md6noq&d75^b9yEFq3g2~Ocr(@|9-r^jaWDLPGq;C!D3%~Dy&Z=%J>#}xfk#Aa z#TcyVp2dU{1Ot+*4zrxD;-}_C9hH+v$UBGK5~s#hS(}ViV|PkD7)8(dj6sr!)~Hmt zGWiLb+CjbOtR71k7S@qgO^ZmZdHjPRX?Ota@J<>;DH)$1`Fb_ZOD{N?AX5#QkooFa zVr=C8r>v(y(9RdgAj9r(t&npZ6Yv$7Egbed;3{x!i|}!G zr!l$OB@JKzo1u=_=i5}yPT{f$P7eFUDpN#q$4%(; z6@v-VC%C_fgp1w6OV`JE~L`B)gq& zH{(|5u%?};dkz>(zLBX!)y;e)wDVy&NsX^RZ)YDZLVwW=|chbif$Ak-yy)LXoiPehUC+mFdyn%kmD5%X1 ze-8;jYq%h%XSN#3LE<1()l&hThH0>}4?<*x$#bz&0GNkokgrOa$T}*$fw(9{a;){T z847Kv2TUH_ns!lKLR?w5(I&NnY)Nu7w7bZBf7P^f?|E(!K|soW5G8s%q2E_czLa%v zTgB$8RGrL8&9jUMY&)LPlwP!E9u803eu9kaGHxBT-0j(R&tW5(w|GpP*q9orCIA%$ zU(}%qV=@83G#X8WQR&h4x|0DxM&lE`Bo^|#fRVhx_|P~Qq!kWz^dQp|?h#9g1mxY* z+omCPOz)y=No$HMq<;D(}@ziFy-!RlX-Zc1+5yt>_A z)<>l-+-G>>Hs9aq#A4bIC!7GK9sHj!9+1hywy4{^;4aaty9LY|@4*u(nJ7H3Gv*Rj z?%eBdwwFK4_!ul_%Y|WQ3!a>f`wK1ELPft)Y8sEmz;Y3?KzT$E3_xIX5(>Fel~#1T zm9~0ZS~0++1_12Df$DC+g#mcAj?nGHs}hgzsjTK>jn(+iLqhH-&l3XIBe$-{`Z^51 z-5DD|=;Y*Etmz|u97i;~$S}V@{N5}G+qBS)*RkxpQTIN;_(C^(zao*rFqmbNa(_`* z62RMh?%p@z@lbU9_(ab?4-#5_y8D|XR+C55 zD!ZfDK$r301DA8|<*!T3#>omakcq!0?@eXMax!dSC;NE*3pIw6Adag<5U9@K7hH2f zQwHMGwRqoU+_j5FB;KB9c-{t^RnfwNlooRYJhyG6tV`U8MG5779vuZWpA9aqN^-orN%2iB9`_W4k)f6P%r{YdriyjUN&C; z>#W#SuP=e7L6{5LY3qZ~@sDP0jZ^xwlVwl7k9eH4W^R~Ms`a1x{ejUC==DzW;Dz!j z0L=F^s#(D9X$3Vpx&CYrMzg z+A+rX`c(Yr5>K$BsKibBGOXqL-DI7+w_u91_8&+ISqA{#5xhf%#gOpn%i)mTT<5>d zZFmQi1^4Sq%FRZh6KMzcIf_H;htV6!++9|~oshUwsrxnNrJ<$Xy~0{cJH`~-DHilf zr3&MTV(ldWJ=5-&E#vhB3e@$);ccWTvST#cKQYZw?nZZPuqiM52GuR2TA_omY4e|iE3u_Bc)wjLFZlK$Y@m0cF7q{3pk51P63ny)|uq#YtFcO%OCroiS{y^iO z8-QRp+cTF5jIqO1IN3B)ia0svId2hDJd4>**HaUTuWwbGPEUWWoEaOXd!5Dgaj@?A zUZL+Uw1^h!ws=Y6)w|wfsKA6KBV)RX_wWLHp}xjICV=XdnhW%We11eG@Oa#2nq*w$ z^37D>GZvf1>(EvEtYjW30h~&PgHhf9yhLGlr}q`cvXcN1pYtea1DcY6S)y5s(8D0{ z01oguu-Pa?5aZlCI{7q~hyf{uS%_>+_+0VBoCS~>WGhWxdn{mlKny_}7^u$_!f27L zCi%!6DFnUB8#7cHS(u%tuPpr{gICUb8Ly2O5ou+U@r&!X3v7F661cGDnckN^1xOKA ziyQKL_PKl53n8rYkRlI#aR4xkAUa8%w^X7ZOCC~r0`P5 zftR}p$Ew<&>f0tBydc$n44x6s69qjsqybua$BtkxE0N=#mhXIvlLxXD5Sj1PuT*zC zu{~)3Z}QGLC?^U!TkEbhB_z?julU&W#kP;R#^0zfo*(8MNoTk_8TPKqNQaUFwk_2@ zrwbFiEYiIWIlL`#QLNQJ3uSZsbfUN~a&+a*gjCt`*)Vc0?$1KjL|B?5doT#*2g3R@ z0=^3yYH`)5r(H2?4x!Xi?9(b)Tvok5m+DEGbuH%S5rW$Dl{mo;$^4$0i9%*C-M$=P zPyxNuFrUYN-Y47>$Zg@)uH&5hU5yC~_HCrN38meSwA#NxntJ2bF&{fM;zM<=3EjcM zx%<7~?49u7;ON_<36Z;bHg{tSZYU~K(jVi{fAP8Jta9bqZ2cUqv1!x(K&q>Jf#b)f zp78ozW(o4ON?x4xRgHezV7lN33n$m<%6#e!HC}T$RUP)T^#~hJ^~)dH*x5P$hu(KL zC2{G&Ewu*8l%X_whdJk0Z10t4z6C393?{`P8tR<4r^Jx(bA7wsyTAJtTKIUV`Q{F5 zDUS6vGIXm-gsI`9c+R3+kz-oU@9n9WB2YuEw4*)WpCje5oW!{luXQ`y2AD13Jk{$3 zz!oVS#E#lAGPk47iakdCTK{DQ_&ZC>^Ch!UG~2 z5}kgKY-YOm$k>tLoO*LZ%XR!jK+FAgO^3GXOzlRd6ep6^w)HIWpH1j#^g{+MN06oT zInSyB0Q;ZYa@w!=^Hgs>bl4J9mV?zTYtmWe%VSa8^i?Z`waJ6|`yv{4*pi_jl6n*&^x|#(o+exe${yXpMiJNwt<_+p6 zDK0A(ExgJ@w8aiP5#L`UT2Z`j;U74ENU?xn1||g3x=dx64G6X<%=Ueix$0t1`UBVU zCl!t$mGRWX?M;Gz(nxOP`@J6)1K4NK@Y7>z0w!6Ae2S4Yfq!?#q(=JfC0;}CK}F+K z)rMG?K>|xUA*~#dE_;!h$OWZPYTZH#LeKz8)5>cT8B*6-yYvzu$H@SlZ1ht^AMFV` zMJ0}#zAO?k8xR_)O)|~e4!(k(7~*i2xHb^} zT6MExb(-ftmALd2Ey;^qPaRtZJ_cx4-tXB;t~|Gvq-p{^zb#4&6g9$zPrFxdfki(u z@qBflY3a+Wlh-mO>9(hnA-0=aSx;h!hi8Fd?MG8u$<^=dxa=h<`eAgj?@P5XKgUmd zU}Y~a+~)Y>Kumw1rVXb}F1bWoFO?@=!N5u{vO7~#BJshA6Y$_q5cE1PU*w#r?|yM_ zLA8tooPGhDqGQY%yE&|5^|tRUJgB`&#vL*3RZVMl>Ym#xZsPOay^S6kZ@5^`jputW!Q? z&tSZ*HH$~}(NZrcI}tP6oK3ug;pw86Fk!{qeEm=o74y2$tAUHEFG%D(Aav^?h>D(M zl@uiYKru&bS{1a$ygw{*?>m{lSZYBpxtk~CDrD~b+}v`vAfloZ#CyV$PV9B5x}ePt zeaLC=K{0f)sG=(M)uN|Iy*Isr3%5(9^rk;-RB^+56(qT2*$ZZRzY`;G=aWxHPy&t|sPP9Ju81V&jol?Uh!m25`6 zu^-_Qx7Th9TOkiRRzWAZpv_NIK;|MNyS-Yv`D>dkqoFm0j$n<_!DuEz+rzr5ESWkoI8Bg0ucUt?{y)ONmW=`_jYi+k6(QcRxc{c1wHC$^@NLS8O&HluL5QY6eWwK|^_!eSs?qi&93;U4U}*!rhr4y_+*Xt07}j+>jZ56DSl(9?xqDQ+KON=9Dr3K zU=osN9eylw*ou&3BY*O?9OI%#DhdVDpWCECaUB`dl_~ zxxT1zxN$q{z*A}@IgrxpVy5Hldwfm#)^Yi0`xPwX9$aPFOVz9hq!?a{=Y&BQx95Wi z$=u<0CUj}o_AN`!@xZzp${^Ol^#E^PUswW2W*@RSG@O`|_Jmu`A}}}I?ZvF;#oU_O zqb?P8b@WPBJ%9`rh(X9AW8Oz5>Ls*Aw9|${DPul66ko1kkk%2DLFyTxDKHy;{00$F zsR(cxsKb6fJ17&-KLbgA2iP2<{Ra`e^NIQO&v=a@t2FADLm9smghS))n?W7)pT8L{ zRZ27VjrcF(9o$0?&xc2huPb|!z4p8BBrcn3Za?M=yPnXgbLPmRW!(Ry^yh6^nOi!z z+bS+>KrMq)v%oLtC$$p?1~n;|w`u>p)L?4)kg?_FuGDL!y8mjO;v~Zxi0`?&_r3kl zuN*eBNB}ls2;wqY7U#Vk8+{iWu$e%6E{k{bJzrHi&J#>9{>AU=d(@y7}vHNCKM%OhG`UCvj5H z_;~Nt&Ky(SuU|Q_JP@vxccMj99265-fr|0|(ptH{j%QtNxPN)0%DE!Vg>H6w2UZjB z&nG2uxEe^4X7Jg09H+_X=8ojZ6*NS=#iR2Vy-TYJq;%;D>$tf;*l15^@p8^z2DI1uCGvliDz<XtiqPMca9P&@IX6_eU@_CE4kVqB;dY&_`5KwGHYX-npg&X2C}*!rp@+s3^_E_y-z zcHzCNrc8M z`*x?R7}2(4O=9N(egO@G^S1=~!HXu)EfWA|woPS;rtB0qu%OKr^YRPcG%(M7F{d;Loz)NECCnblp`;6Bsq-CHDI$5R}fxdGFaSzMzwVtk2(%e zsHue>7+C-hS6DFUm96^&L+PG~wdr(th+a>_zmY%~yJo&tfXw~0&&nt!IzCe5_=4HS zZ$RWq&|~%eWT~0OWSP4+pBqe)NVh8UnaaygqzO^3YXF8*t1U+3ZU8UJ-9W4W#eB1&vy0`;K&ksdo04*mT~D6U zEMvJ74;hWZ1!hkaUHUcOP}F9wjslmm1@mVi)#^R z*xvk@o;*?`C%{g2)qyRVDns=SidBLa0#P|@7ATw3v7{z1%sh|YYJ`*BxLgs{^W(j} zElSjJ^OZTwOEKHuCDz}!ItwB=SZ|&K2n?rDaNwjqR_$2WnS3$S3>Pu)m$+59jxZ6k zFMNx#EB#Cl4(pgrII>>3mxCm=+NYMTWL`s`x`$3#D#)2mMh zO&7?o^VY;IS^aopqlV4e{n54nqC*BtSXUZO?Uu?At#!;qqb6IY=kRJcL@^#BE4b6? z=*e6SB+cO)bja459tm=RX2vSoSf6EodHDOt;@-e5(Gn>0S{vKV+@6}38atTuEkZYE zwf;ra)C9_p7Q>$PRn6bpKKQ{AcsF6rt6bc^@gj` zq)?=L*i}H@EHHD0eGO48!cESR&q(h#snf}Ip$@x(TtDBFHT?QcKlkx{bdFTtJDY?} zTU>~aa#*vqc|E3PFC+5 zUF0XUG2*ah_EMCqga+COic3e}eeOJwI#mXD;p za%9e-k&b^Zn+sG6r$a5mtV%^+P%9X(B$}V;_OP=z3NTPO&x&ru3ypo>3P9KhE9boV z=z1;={nj|3dR=>S)+C-nFi56bJoa6kj{I>hD^>F*qC@EEnl$g!J4#y5FZ~${bpv8` zM8wM_YE-?=23?_=6>dBc_oEcV^lB=dYVd3fHXN zYLBbq=WO^1bP)U#sGnP8^s%mt#|A(Pi$~mA=F&ks?^JuSwY8gZfK;TsjpRPucO!!6 z$CGtQaQI4AH_y^nuH+GgP@<%)R9TOf`V!Sr&RZzNn$EiXm9%8FE2#CSf`$MoEs2)) zUWIA*C=_-`iKzos+RdKydB9=+{3>wFkfTwD`8uT<_6Vxl)o6z$EI_Bj_GDe=8%O zAYK}lAyx5cCcCjW?>&2$)u+8^qPQ>uWJG;)nsK@^iZy!6%M~zRTb%=?5Tcub1!i)h z-2j8KZTN1~oq^_JQ#7#oxC^pfo_~DKYbyD024D}fHLHyYg6%gZ(JF_ z634T%LDO-4NAtBHf;1u=;LBU0`rKtWROjisHEEJbP6I%oi^I& zFdEb2@$2e~9VgW<+URZf=U=lt_ywnIWXhKw!D9Bi(qK+hrXyg>GY33Go7ydVLk^b_ zmQDzjEtUDedrMl}xrl zO4$_p(Ua0dFSFM(jvynV0p1n~ejcxujih7qwjrotsFCWqBI9Bb3*FZE{;qrZXO@tK{3+yk*J?deZkr;e3~R;DPN6ezoIdPUwns@87AVX66bRpXK;7G zm=7oa5Y2z;wl2y#oe24Iv-6%tztv9-8jq!;M>uki9&p0zx&&D*CRZ(A@(H;2`Si>Dx)1RiaUsMgWf4kMSSwFW}j(ys82 zfpS2t7b}SO48(v)ljoKk`8k(()1yGgU~U_NMd;GxSw=p4&0vZbC5&vdyrJ*O{H}Yt zWBb7F&uYrH3qrQp_C`3y9RG}=NzjQ4{;k+*g~Cz7<~IOE*P(+g#A`s1GYBLKhQHRx z#C)yGfEYDgghAxnFb`qaTcv7>B4T=n60{l2J2z>JAvNI;l?=AQ~$^{yYZbE zP2|rwmWdxHy*w*NhhAJE$y^?yZydzMiTTe1BuW{p-<#pDl0v;u9LfE790!=vSi5{M z!iM@oOg~+RXL8^ zng0+TiwOde5^CxdQ(bZJwMg35Co-i$(c;^DnUXyfLG=npY|>>Gv9PD)x-cIab`07} z9H!+qd$Kb6^(gh^4IGts&W$PQ3%j0-%tU;Yu@!l5Uq(Fc^-g3HAjwFf8Q*9irwmnA zrq_=DN+sr)#IYl=YB7+?|CTrof|XT;durf**)>izT1;7_DkM_f<{aCKH)FJ*)l%EJ zFZrHl@W7`3gJ?5JWxoA*Uhxw=LKOIv!VpweLSq>f(!%E2NfXlFNB-*hRP0kB6=IGTe&LQS-7tupPo>Ov@v_Ks`Ss@p}fPxQj7~uiGu} z`*Np}AMmm$)1g2W7ZT@4Kcb{&G?UuBZQpaGK->Ri!lAifq2g{>35)*PwJYjr_U)r>li%Lswy0%S^b8BD|G1$A2Zw|C@Gbyqi?5nf0CT!GjoHr7kjeeG-tT|7 zPD3RiM14Tskj54Dl}3D*k<(L1=+cE=zyjo!^@PNtK5J->WvhSypf zKm2F6TbG=KqO)clD;5xGgeDu#DFpK^B*+ITM2xzK9FX!PdKA}K87nacCo?#ViANBb z=YB@@AH~S|s2#L7e8npJ1J$L=%XyMzgK=GWNj(x?a{eh?XSUu~{<} z77PH&iY;=fr*!*;)RD1m=uSw}zDUdh1iNpGVV$1KooTJ9ev+^s4=0b|s@aP-BhA`W z`JutC0sZt_YmRKn7Z6uK>9=pWJ2^`@5MwNEdiu}2(xVQUmXe3QwCsr7iE7$IQ8SsY zINWBJ-qEc{@Kon9-!cfzZ4R~j8}ilq-92bZ5VcTa9U8_JXH6JO{NWGR;-0GTBGAW1 zvG!?>M(|)u)Jga zi2MU`c+R#FI&);kZtE3-a~nGuL(1`s$PJQS?1CT$*i&Cp*at{^3`%L& zDJ$g0d_rdmFM6-4Gz^8))<>|Wxp;dk5j#G1OOA0AJR&I#q58MV4v2%TPtg_5m!gts z960*)m_{RezMu|Nl0e?tBxnkTJM`*CBRt;{y3qlv0h_?e7vmpY3zh);|5~OE6a4V6 zoandCZPOjzm-cj~ol;hR(>YL+?^Jk1PLCE#f;fx-E4FU)khdh6YD?%+2i*7|e^N-@ z2A@(`x90feS-<S#3{{`C%FSQ-X`r_3Ckrq_Aiq6hc>WoGfJ7wM-Qd& zNc%KB&s5ne$Z-Jh9ND1$3NLy-j#1qW&#Yra^*?1wdZmb{J@-EvWX7>F2x^G^tje^M7lrfXl!- z41%~74hAZd9U;g}@)rv%@^?7A} zHV$;lu;@6Pu>sX$gou>^*Wus55(WRV5dCK$*+zHZ=zph=*vNuz|Drz_s7OD&lH(6U z8R<3UY$!4m=EDf4Lv7r@cfrvUeB|x0|TL!!|e)u3y z1rGo!(XGPV56TZR_M>hsnB9b)q6q_=10dlIp6D5Z$A|d0iAmuTUDavy75+p#koXi7s z#xZ@?`&%o}Pz)Nr9M-JL^rcxX(gRlA>@AzbVN}a5^q|g#U;u-(-e>!PKvvzF{Wj(c zF|3sn0J-czN68S;6f`_qA>Iz>0NlkpZoB2q=fF!6b{S-v0qZvrOg6bYe+hVa5duK{ zITsMz*9GPq5g$P0L2!O2{1hpak zDLG9BWFkEQMd!1~c+OZNib~Ku?SqKXcCi(_Is&^oabzfMZ4bbRNmk%8nrU>k55C2D z!q;ak3ob@Ggfj+Ypgrei1l)kkvUsl#>mgI@03b@^#KGq7Vliw)763^6SR#~0ZEL8c zmxx4v+Wit6YQxfexvalV4=dv=pNLb}AvXQ-y3`7&RgBj%z%)4h=5YADU@pMUSYjCd z=s~5a2JCdS2-jFo))}6 zq5k}fj{a1I(1i&WoA04)3*WrJu1e_UqC~!-{4-ahtMZ;!vh4ScKo;SN+V9OCzC` zOXah~rzinJ%+P}zS9r~N108^2^FDcQ4rOM0W6zIRcD|G!J*uKaTE;Wg$>;w;8Swum z=N1Xvh_TCm#qW_-fsgP9s|a4MI!cWbR4H zJ9m*bEyIE^5;$C&G8$RnXd8_zMA{k6S%@O-#AwcfmBqkf@WFrPkc0Q$`iJ^m1f3P= M>FVdQ&MBb@0REgytN;K2 From 05385bfe6d5569641bbd47594ce3dc70b91383f0 Mon Sep 17 00:00:00 2001 From: mmouchous-ledger Date: Thu, 29 Aug 2024 10:15:28 +0200 Subject: [PATCH 4/7] Precision about BLE --- threat-model.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/threat-model.md b/threat-model.md index 61f9569..ebfb970 100644 --- a/threat-model.md +++ b/threat-model.md @@ -46,7 +46,7 @@ The following schema describes the architecture of the Nano S. ![Ledger Nano Architecture](architecture_nanos.png) -On the Nano S Plus and Nano X, the buttons and the screen are directly connected to the Secure Element. +On the Nano S Plus and Nano X, the buttons and the screen are directly connected to the Secure Element. BLE is only present on Nano X. ![Ledger Nano Architecture](architecture_nanox.png) From e19a735c974d877f44777e9f85bfffefd845b3f9 Mon Sep 17 00:00:00 2001 From: mmouchous-ledger Date: Thu, 29 Aug 2024 13:22:24 +0200 Subject: [PATCH 5/7] Precision of meaning of "devices" --- bounty.md | 2 +- threat-model.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bounty.md b/bounty.md index 5e9255e..40e84f6 100644 --- a/bounty.md +++ b/bounty.md @@ -16,7 +16,7 @@ We are mainly interested in vulnerabilities that would eventually allow attacker #### Scopes -- Hardware attacks on the Ledger devices +- Hardware attacks on the Ledger devices (i.e. hardware products) - Software attacks on the firmware running on the devices - Vulnerabilities in apps available through Ledger Live (vulnerabilities in apps developed by 3rd parties should also be reported to Ledger) diff --git a/threat-model.md b/threat-model.md index ebfb970..185c095 100644 --- a/threat-model.md +++ b/threat-model.md @@ -4,7 +4,7 @@ title: Threat Model permalink: /threat-model/ --- -This page is intended to describe the threat model of Ledger devices. It first lists the main security objectives the devices intend to fulfill. Then it describes the security mechanisms implemented in order to actually reach these objectives. The associated threats to these security mechanisms are also mentioned. +This page is intended to describe the threat model of Ledger devices (i.e. hardware products). It first lists the main security objectives the devices intend to fulfill. Then it describes the security mechanisms implemented in order to actually reach these objectives. The associated threats to these security mechanisms are also mentioned. ## Security Objectives From f39a8837e1d52d68aaada1c809cc850d82acfe66 Mon Sep 17 00:00:00 2001 From: mmouchous-ledger Date: Fri, 30 Aug 2024 09:08:14 +0200 Subject: [PATCH 6/7] Remove architecture.png --- _threat-model/architecture.png | Bin 54246 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 _threat-model/architecture.png diff --git a/_threat-model/architecture.png b/_threat-model/architecture.png deleted file mode 100644 index cf8e3ab2ee7b8dbb4505093fdc7ca24a8b59f01b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54246 zcmZU)1z3~e+c%6NqJ&6|5)dhYAq|296{JxFWNbrn^gvXU4pBO#ONMl9z<`0lKx%Z$ zC>>qW-Q%18=Xsy^dHvvE?AUhPyYK5fuU}o)9scx*COr)&4Fv@Sy|&gPLkfyZuNrt82$UJ`wSCKe&y;*EvOp>#kH2de;1O(u5poHq<*9QSe<(A zG8LUHtI%t9A_c`w3hhS^pLve2;=Dd)nz-}s`{-``UZQ^hr`Ec7>B2hu>$@|lGMuLT zrZW6KHfs^iy6z<`6UI+g^PX#e(jjSmozeNa3Vh<+WvlplEZ#%}CPavmJ$Wkg^W%;8 zl}A4%ROK|ZEj<&V4CR(KfdZ~P zJ!<|^+oBAcmP?K8m^#m&-xs7#@tuAMSG(zGP!ffNA0%He_AFuZ{&c|qJ(Wq$LyMp6 z)kjsT*$*U0Fg{y)l{XvX_K;cFy&7yE>?ErHUN!xcf!^q3(1Jh@&MMnrp$v*q-7!7U zi_})Db}A5uqkpcu@aTsHsP5D{ltW#W-F_1J(H2!V9SYnWoCz`+i$C=w!ihZ%9j}A; zlkz@?kO=!<@Lch~wmgON_UHyI#=E+!)ZWD70WjWh9^j#tY`o{Q^ukb0L1_7w^p4-s z8BU{~%(buFiWa_m%v z`2`o19>VSD-YCf{1H!U)c(uxXXna1g@{@G3Z1jGQo7EB=Dx%gvt8B8vB$;f5m&u84 zt+X`t?LnorNv~|}YE@V7*R;^`aaIsDqwUgt;Q`F!{Db~B%UqT0p`JgsoplW#oD2Y+z9uJ-hp5l-~ zBa(~?2Yzk8*6~r61&EkrT(}YYb}|bw>vBu|@bw706MBIYMhD_}-EchP;`=6tm#-2A`c~^It<9j>QJ9RZX;4)_7;&;w)KNjKGtVZB!iRL0<%CYZ*(e54@$UAY?wfO)4Iu?ODS zIg4K1sAGi8G`5do+l{ug$awib-^NUGbvZRLqDXDxCt7py*j1>08x<{*dY9iL9yy%A zQJPXFl~I^hHqHu9gD*P;g6SwKX|#AYb~p8b?T}W>?FA0nr)d|Zyq;NOn>M%83kz5z zTfMgpX{>ENnOMP9*SF&p^`yQ4x9@2@w0SL*_VEok+{R7Tl&`BQWM1h1z3^Hg5*xPZ zvR-!DQv*i*@3h+ea%@mX(m57RhXq@j7FFmmifUyKJn|{neWE>mwMT0A9G1;ur`K~H zLX+*_B0?xj@EEETcSI3H5Q|(+#VqOHhxgTUWvcGPGnJxEi*806KM>sID)_;wW~zZ1 z2r90Y5U>A;7^0b37#rb-zrVLCgxV>W58)~MPU@@ zz-l&R6aDN*I2w=W5YdRKtWI+H2~sHa%V-Jszg+a6v0V#1A5f>Lf@}e4;XL4xy814} z6U;`1|478qBDNsoC?eBM%=4QuD4ET*W`-L*g#r84jvdtu%l0x6xK^Sk97wLirwTIX zE-m-|56As?%`%wJBMFbAY82uOTvE3kpS$MtPOgvabLE?(?iH&?_h51u*K8#+80{DM+xl3MBWv=h*MK^F`4 z8DA;xwpNIq_UIYknD&c~i9g+{&X0Fkr*E~zxq~RpvhxK?DuoqA*`xE!Q={Hl zI-rAz4i}&NvG2ZOEnk<|}$C zgP#|9&^V|r`aVZlccdF6el*PO^;8#0-aiBY!!t&$JiPp#9Gb z^*imuUVcD$ez}IhCHbI6TA#nqT@FdiLbv;crLIMtv~RkW!Asovc6Hv;uP^VO`yU+}lnjDgPS`gij}x4lQg% zjidp&Pazqs?}g@1gGD){y}Wwh!%YNLc>DM_zQo0B<5b(`vGlYy8iUG`aoEmCVrA-) zE+33D7NeNMhhR5~HZCo249?RgfJ&Lft1ide_Q7$sO~I*hn>0enljx`7B0z(xbsx1e zASrg*L;RO$O9QybV#$o>-S#t~{Z%)|HK^`gez(-U+Qan5s?np+CL3%&uK%6@v~l~! z_kg@VQ%ns1!iPMGO>k;h)tbFO9{9kJl=A4=)t}hMx!B5qaYM=X@f|W-L1H>y%7gg$ zZ4UH%jh>axxuuqcpAL$WhM4QR?2_-gu0&kdmxSBGmLcdI0jlO9*JLXC(z}VWPl_So z*z@W|n0V9Z-T_5?{xkUoBg4DU{$$U@J&-nHp=WZK*vgV&wH>A=?q99!w3Vs}aHR1r za`_}%IC@>#1vs9~C(CoSa1`Kfc+GR^>)`P}pkK>NQZS@YeK6GdG#jK^yiLa&?l?Vj zb=dnOTEn_Y15#>=td2};(+JY=8cCtr>}g>DPD*E|dUf{=`3u@@w1OscE9~YKLe|lA zi!buKJF1kygtw#JBO2Bk|0sf!sQ^X9G(+jj$Y=fUL@b*DOz{zd5Izw;gu#+)PehAz zFVIRT-4aW)SHb6(j)k2B^!yQIeZ4hz#c@qXKrBZVT#&@nd=E;6vki_G!8dOPwXF0c z8+Am8ZRNIk_l1ml!|nzzSh7BItl10|jrK`Ov~#^!Wg(X~3bI%xEo|C32FSdA3ey*n z9X`&iiN#gds8XpR$~s;?Mq(nsgeDt;zipzm2H3IEf(!o7xg%x*UZ_(j3~v7}QKf+* zzsFI%v5uH)femi6Bg7W6T6Zd;3w_@7b#B&)MjNMax zCBD^zwvE%oHilk3mmf5Z`=|ST$=y$zggVO*skq*$4}Z<6I;njIkkh3b>PiuJZ;84u zt6#9GUzPNP%cCeY4le+U6YSY`-n&3p$AE6?O=qwx!HyF6kaSS}G*y*Bm`tlK>c-O$ zS14^s@=EDI(6otTK+qEJj9IBic@3KyoW4gJmfL@lcDDFijLAYqIZCY|;ZUoKA>p{k z>1!1cq$v^rO)uTMvnJC+37o%VO0|)GkTsl=)<_#oV#?BWt7YM2D1*Hg``;!+|FB_i zE5Pj10~Bk})mgZ>zf^K!YR!%G&)wF_wr+Xb)il_Wv-lCiuDJjxk#;}Rt7g{fP`Lc4 zcHD(yo(01RGXDEh(*`xF0FuPqaV#aibX$&6i{G}9zyCKW_j`t+#TSzGHN>C zG=A>q=-fb9I7z+Expq&;H)2hyJLq<$l`ufL+P@R*5Whjw`xhSpX>8g?=V)ZO0I~R}WP7fjU(qvcT9ey`&Vs>BHowuyMB14T7emBe3v=Opm z)ltMw8X|PfNP$VFuk~{|Cd7WlN00wXwfFISEv_Xqy#jdQ6kKV2glv^!$o!YisQ<$a zJk0woU>9tO4vaOZiiP(oqjBk<664={EbEr0qL?Hlc#|iJ^aIKB89e-4{xlwa_zNT? zB&$*Kv19Xd%lGkblF6X(a}X;`ja=hNA$4lJ0K|bNZs^yU#+$n4x;yrStmTvS`8{^^M2_$F=zq_X`Fun7f+ZCj zt!Vnw{VVzlM|5spKQaw&RZB@mwNPXdR9Z?`p;MpHeHti<1lVVH;-Qx@WK3;dgx{gG~h#w%5bOD{t**8qDzjS32sh`n?N0k=fei zXc~?`ft=p{MJ0JH&w9>-OCEVs)jxYUSou*tHbG>L5BfF#B>lcCGV5o+&k`Qg-h*Lz zL>MXiNQ+fm4dz^HbH;&rFd5oAbvhAwz?yq{smSPGhPOT;=T;v|rPIJYe@D!`L#fPjFt%kO$S@#g6dMGKZWz zQ|g9D>&(!uTo)1<9tWY_HRwhiKMQgDv#-3>$_~GJznY+1m5AUWM@SN0fukU=g?BBU zGQcA%uL+>*n}4R`%4`6X$$jvFz=GA4jw=ZF92j53$Gy-V-pCG_!DBQmIiTYYBCxpa zj}vrA7Umg*&Vx89e-f|20$*~TvaSiNMbNK5x8e1#Jk=^0D=9esu?;oAH5b4h+rbJm6 z4~%J*aG%sQr_{LP<&_v`^iMa5hn<(oQH-*Ay*880S6%U0Hn@$NH0=!C)5Cx3i0Sbz ztGyj5XMgz_P@~H_um_qmcm#3Tk2yR9BoqF`5*(%8@(b;ucgh1IdrT%Zd zr_cS&C}`LP5fbG|AJ@3XPbU@@O^MX{Cs*WUi;ffq zA!#|H*{^im5{X?wpB#67E;OSWk`y|k)H1%S*N$%LMUwyxp`I;WRfOlMn+D7GBHPes zg7@(R;yzgE=<32X|_mMHEi5gg8TkT0kfOfsnB`rPqI>%3pCPt8v?v|^!{q6y`h=Y}sL(LC z(36HsXGtXaW4v4t$mi*CZICIr=`$TWzz5RiVzLWbMT8 zrbw!;t~rsz)@^yy$M-I~{cFJ}&qv-~s0eF%?p(%d`f$*iN313Gs+v`>_|V1oXvnew zxQ-8|w@zndn~;r>^$*V;+uPZ1to9saiqg9ljqgfcj7+;1vvf~_> znrlUER1Eq@R>^HO+zyruYHCxBEDA2yiUI~NKnWUMB`z)z3kN#cT;s|BZgxZ=)oWOL zxF7_4Zb91&2R=eHkDz)uaz_3vA}iRJGr@=H_*gz-zvn$!u)Yt&@;z}DBU|QoxK?(Cp=Vl+Jff{=i-NWnti{)LKN}l2$B$sFRW%kA zjO#J8IfxV-QGI<&pi0duF8=_)#Wgbgus{AQQeDxG`I=lRJb_67|0pB@z{wB=-Zx|)m#qrFlS)g!FFT)a8{o>B}%`CpHfzVcn(Cv7=5SQXAGVu#~SQ_PW(l2MOOL zJji2D2>V^7hkTa&+(2F-HnTyHT2Ljt_(p~TxAlm)L>jx8FgvWJQ(RZbuK0KjE#K1* z{HN^L&4%01c5&KlR#oi22cp?CT`e~6DRQBouE4v{7MHwkaq`uKU79A6CH~fcI1941 z#ukIWQBp7lybGKj@a2Uk(V`Wb)yAvxuXD>MYL?oFUww?YhN4J1G%bB08jRJkdd3u> zTi1G9fDfi+g{HgjxQp;lsrFEVS9*3(h7py!JqJ;^vJPlCkx%gEGxZUpE84V~woQLf z{j%|-beQDDcJ;QRkbjd)Y7$$1Xh>?$tw*nMtpVQ;`^SU9Q zo4Yl;Old^ek-wy)!P(dZqWyqgM#iuTp2jL+`--57osT*KftW{E;)>LywG69M<=_w0 z5NLjES!Ln{bbmsUSV8nXSs`7L7WxYiWx1^>2c0tpMuPzzZRp&Izz;<*sKFv`*X~RZ^tqz?m?V7v0C4laLR??D>m5 z3hMZ6)07~P?P~0>-yLpTms%$r$tz2=4U(8u9~71MLG9|r2$Cs#^=f^5})7>UN#Qo;|6Q_C6L06)n^O zKPl!coOihr%&3jz>M6a|Gr@GpP#se2gtB>ysCin+`a#ftKotqRaASrm{0=9B?9lBN z1>(MF5At4gxm+K2!URjDbd|V0>P#qDSNly$Ns|-L9ad)N`QB4(%o`J8My6;WVxIb9@)B`(RK(aj~{uzCjKj71f;gRGe_yY z*bVbmu52|;MX}a#89nb-yRY9^Ir>U+$BvltmVPHu7;_@mw`Kd4y-(&lF9?zPzwv-9 zzL@V!{8~Ry%Bbs%v$+rv|pZ5#2 zke0p&?&3(oGm1Lr%=c^zpJEpAIpzR43w&`@s97)ly( z-SKX~9#w5W=yn|gWu|)gAlIht5!c2~Dq%Ws$G(1oOehfav6YEyVz4_SbRyztPULl!((dSKT=8AUR z1w--P;?V{rSGbxRq)r#kl!s&{Xkk$%H#Pjd=Ged2jBkjmxCEavcoC|9LApviwqxgv zE&W}MHS8ztJ6!ikc1In6U9$84-_><}d@5mwdFqs*CPr!ko7jq8@FDVAYarZA_1I|6 z;uaeFTSS|3gNL=<5}SNdbsCuHl{XGNo%5dZ>webG_AtB+DVhq!TY#m2kEbdCy3uw_ z5*4#m5zNpvyYvy^XPZILb9U0;;p9cs_3NgmrK~H~iPq8g$8I@~A46yW&6CI+m2_uo z{F+ypU>h!!#l=rK^rjfYV0=T=OzUxBlYRWph;g4v{B*)9!Na?( z6?b&8P1z8}$ zmj5>Lhx3EC7d}$J#OiN7{xo)%POC-ovj-ipkv(t<4M1EK*tlrg5NnnNRJIlm%(TU& zZeaJec2$xWW-b(h%k}l%Eur$&pC`a%+p zb29B=<7&;7nr$C1^yVk{@-Nj6q|{En=J9K}Pq*FX6RU74*9Cz+Yy-E~FbtjiBhkrg z-jPwPVI4_`7s0a_8ZYnV5R`_w?sfRiW|V{-DLpA%jw({y!qq}hSX*F74L|Xp=vBF}5WOeAVZIIEeyQaU?Cw8+Jwco&LxE$XL)ZC@vx(sKny|Nc%yMPBp(zn{U zZON*{)sJ|_%uDHC%T7LNzTyv-sz&y#D#pGLI_WIqFRAuUeGF(U;eHyudg40PrYN-jpWa^ka6TYH z0ex4&YC9*@YoHB^|+U90q4d9)nmi>10Yn{!UOZ4JBZueb;NW0GriA#GuVwZp$ zTlV5K`=5^l^~Y7haL5DF=$;tMNBX#(paqoj0s3K!n<(`7jVol8EBr_tF^w>jVZ=s(+u zYH3KW9!K-P?*|{_x_-l-ep8UIE`SDRq@^`>che;&CwGG+h1$ZGg*lnW8|R`Vc_{RI z>FC!lkRf2Nxwom6H>@{F_6dG`X-(fH`s*{%?7~9o4<9}(EiHY{66{I& z?b>Z_+1vu!fa64gXY9yYhr~Ve*i-AazNlF4LVF85YE7d|AK-g+`m(MVtyt=w-JHjj zJb20DMM2)QNz?6n@^9jo3o}`n@1qVaM3ef5hl3j%AHI3})SdZtnKuydX>Mo z3}@b91YEcqq7U5OFbu3f7O= z%i|W2(W5d_i19x@Dtd0COMYMD4uZ;#j=X-=c`^U~{hOVg{qw=7U0f2Eh=(awb0>a? z3nQT*Ln`l_(#d~6Fkn!P#ah|eTyk-7;TjiH(pOAKIUNU9`tsX8|F2e80A$qp%s!lX z0zisL{2BZm7P=aEvl{7X}~NDJkj5wa9f5 zB^%aZnl*#RU`eXqHO!>)-YW9d+;d<3(bRM?IVHuB!+LHoDQFNKFY(Jp;q4UnQLs&>6InE0fky*2^$9I$dKGr_uFlFs~&*poL^R<|B za<>!>J4L^5CwS&7R_!wU?rQfd?+ICLfXZ_3T8BTq%J$5uEt z*j%W*M#1B2T`S$kl9gJK$Nel8rI~TI0y{BA69K4S6?4qGyc@RAVmX!S!^wzoE3Yx> z7%3!Y`DwrZVyj8lQfJg;mu7lsM)p@tj=`vQ^YSzI9|2u2TOVma3|>VsrIo!=4(np} z`cDH8_KVT|S!g%))#D)8n)lvfW#ON%wM&$EO>XuyGllpCB~zI=S! z+$@>xlSdgInmu~`QHSXZXv0|lCVRiFDvdHoJ!3e&-9GphBKeK3gH$$lmFQIC4|{LMyqlg6tAez#8>B^G zfmu!ieCF!f@#o-CtgSXfaEuQ~5XewP!lZ18E1Cy0<0=SoL%EH=~o z^I=aQ5b6hM_Hn_bx<$0zge$Icx=@UnrywZ-GEx!_kl8_+CP-xO z^)coqMx~$9q3#UIs3R?Nc6>amHA|#0isf3LmBg;%5S*YU;pjW4ff=uI*cpLgC23Sj zeIX}Z(%sMvtNn7pDRIhpe1M)07kD|IRI~qHC?j>#$_1r&m=31vKi^^7*Hzv_Vu_%8J)+7{G=?A_6}wzCfm&Ua0bqYB*fh7sKQ1Y~Vh#pZql z-Ih*f)OaUN6xKMhRi=)@#%%pD-8t~?flT+QH0RLfKGIpq7nw6;H7M}F2%j}>*UJ!J zto`Wq77%|~bBWDpN>n~Ed`-K1l{#`go#_V;yYfnxw-1&w!tNtn)TT-~bd2&dt6vWH zbF7q1>xpcdb%$K+0l$DSyP&Myx%MobmyxU*2bX9mn({l5=LpX!qIO!HxivW}ZujY~ zVGmU@k6xhK<%l;kZY-J;d0PSybi!H)835e?hpyp)E8=2Yj-Cf!G zliwRN$9pSF8yjuKMujgoryeRjcIMvnEeR;FY)SGobc6r&6EKuHfc)-bQs~OAF8c0da84^rpVBf`ilZ}Ie zgWncC-n{wT(7+pdjk~Gw1N8`p4lM9oF9OJnyYbjRc_bG$aGAaOAF8oD*{h7CrJOeor4)*;6r2?f7VWK zAYk9mGZd5s=YR1DiW3%)x2fJN@O01-sJd_cO}e5p(DYahc0$H>Gkc9K%!%9F|nBe=5Kl<{d-PLN{1;ZTCE3U zZ+K_YFwmUa+u6OG#nS`D#i#ezCcgL{NmE!lJJY$=9|>K)e7S#evcYjPfGqRK;>iJl zFnZJ_7rkx^<^maA{=moH&Mh5EDTTB2(9(;rh)H^~*UBOh>iP%tVcW=1CKi0(2q zHJ7xdw>M{3R~I`E&x<;He}5i09RB6?JPp!kUGdZ1S53B2+ZskvNheq>K7EBt<)j|Y zd${9FwyaJJ`c~b=4x=J%rYAgNuagNf>Gv)7nb-~|L51@E1q1T#UJn~!3#q*UtB|CfjE$VMuSAFZfRb*5nivLR(wacMlF+IZqGn#-wMxB3I=3 zmzNjT*48|?TG=q<50b^(-x~cHE=~RP>5+xSq+j0)SJyU%vwj9SQW?1P%ggDDy`L06 z)DpdE$&wsjX7>GcV?en|7XW!MWdb-GJK>5=F!2G8ZJR^+%$$t_bgx5`d23?73bv>A zrCzj;Quw(ImV9r*l_exu6%)Hhr!!ldD*Ff#Nm@N*KXzK_TIlu?z3X$Q<_FUKKIKb{ zW#{VsF6lp46Kwum4Vnv@=N@KxraxLVXJ(%y7=51hvO0CI0=156DjW9Se70*lKB9Fx z7q=F*y4f!S;N4E<)@#H;ypSo*@Xe&+m$=`X76{s+H513IsFdLtoM^~8 z{5A_sbO81zm;PH9*D!x1-z+CLsP4xfHo}g0b5*dW^JB`s>GqjSvetv4L$lykeCf#|+mVe-undXNXj#_GG^nu8E+ zSOgpVYeaEg$Bhu#3w;Z&J`oS3hC%4(LXWfIC7IH)cFO%oo)WMpBmeDGozLJ_gRY@& zo(HKVsPQw-(Mlpz*AixBnrxh$U5i!W+qBx=l5G}+qwSiS^G<-IfrZ@pPnb1VStTeV z1@a1AfdY=zoNY!;CC`>-lXTngS@kyqdlIf>;-xs~I~}T!>UHe%93Ae|>y>TvA>>ggm4- z?)%qSQH%l)`#5W=5w^C1Ulv-eC&wCgo>pFPr669 zq&DE|1EL7;Bh6Wk8e3#2HAuE!^o6uK6?_@~yU>`@cAwb@1Loo~vPEuP$9GcK%#^XF zcdYx>&?t$Wk50Dv^N3lbZ6T-)li5Ha0=iy%>lR(_I6r9f{EBR3E9Jz6x~I=rb+FXr zhN}zPox5nB+HXb1opYW6qhM$j6&aZi;o;$LsRO$1+8USd-!LDOcL4KE0y7y=MKrXo zqiUB;qej1lzLkYeN{Js-PnM%le=(R$XzZMvswO5Txhn7MF1g5&MpoVeB_!alUo(-% zXK7`{)Z}Ua8IM!$n5kl6t>ktk-aT}G`*wP{FbluEEv=K!G(Iu$;k3OytmoZ1;=Wjt z&fiw|@wr!Kj*Iw<6l896VL7deGA!M;dP^E9GiyFQ1$q1UNJ&aQ;IP^5KTtl9k=;S2 zqhDX2XK3I#;h(Z{U)l`k1>bXW&=2yJlHr0wMz- zr?*KG(buZ4?TQu__@wB$7;b@?jm+mYMMeJZx_X}N&5Tx!pgXU;92gu- zrT6%;+;)~YL&4nG;I~lEoj^JLEZZQTUwOf- z4+^ZZ@0*!VvB3X5^e8;mYO>yMX>HAg-8G$|jEr%I3knTmhdyM0BF7%L0g;EJZ7Lz; zv--7}mE?hZb4UNepE_h?HQzomU(WZosd4)lfY&fGB6S8B^|}~mF(Cksyy|#rXzX9C z`8CO+E2KsylS0+&3phqws~AJ*%lIyIMy!&mme&Cr8*BGFT6r5jsRG1s4QjQ-lN-F?Xlzj*s>%jl#r2MUQ?57GMTYrJ2324@ss75Q1`P^{2jkL`4y5O zH}SgNgM&lzKTAw+t|g4B!VNW<_3baq*WIttsm^;O<&^}e_bNU0q3@btJ%`ir8nPF= z-?WRe92y!T6Ie@UXGEuKX;RBjQW*?QXpd$vBacFAYU+={K_>V0Ut^m{)58p566KGz ziP|kZm#gKgR~V^vF_SV&OG}EvCz(y;;yuYyiQeCLzoFvGPEPV3`#9E=Ka)K^K7KjfMD?2?Im=;dMsA~F#aFGl4wDcCL&8-M}l$Rrp8t&ck@8csdo8O)JG+KG6^d)3m zS32}b?8A0uq~rXO>4C$pD^i$0fTO$)dk2HVj9oX-_ODdGF-G3oVG(QfOX&-A)SlZH z>;EgtBc&K}hogk!h-_*?*~U+*056}DyZrFbGk4}|h;~&~RcdDD+vvboL6Q-;5w*4% z^qyDpqRf}6S1qmmVdCBkek!w`5HxC%oY75BTUA9{i2X;B@9gZ5@qsM=c8o1bH}_c41o{;Dgw^^ zf7SbO+4p{GBv)EWN-B`7-Rll#A`i~$b8{)Pj=Jp$15*n<8F&4TWzD_jS;;!+hT>}h zwp06FPOvu=a3)OnYO_p@e8Z0a_zQGiY5Zzro34UD*S8@TxYlED4O}4vwi~5(c-Pxz zr(EMkl0lrQm_2AteB_7N!ViR(?&y(MbESCS=Yr2Nr)}O(lzHH#IyJJI1@=C`Gj!3F zg2QZ9#UF33Iu>xuI@-*|+V*3j^rB8}d^)8&bA=OS@LG&qgBu)NK2NP#l*ntJpuXUVBm#_5t9Sr_+puN zgTlr05$|y|1jZdlfudcpI6;wHc6WDosy&Y1a|KH6)Fh zlkd(^1T$J+i`Tm%VHDPA*pjwy>#W5)`xT>l1N*qlI34@L%;>e?f>o)5E?}(x#QLyL z+C~zfk3JSM63KAcvNHZ-5A-8mmjW}^T;j;EX#dGLFc&PmnBYjyj?kimdSN4mQ6p-! z9M}Ak?PIcH%XX35!17^~RAw}xhXAZ$U<(iW2+S=N`Y&q;?oQH6AbR`mmPbM& z@|*78gqN%b$v9H=K|^elmqJ5Bqkm}V16f0tose3>nLQWM>VZ9Zjdu`Q&TSTEC8^v4NOe< zO!`~M5m05}`|F0qL9=bKa9`gW8}%o5G&D82#4n1U!sIUgccxBe_peh8!&~h%aU&I@ zgB@xj>|l&}dA2XQtesOr)~~?4ygZg7Y?-SAz)%gdhw6NND;f1QRGfm@tpT6Nxr2|1 zKBK?44#F?`S?Hzaq)>wp@e1b^5jYPC=xkij&C)M2RJ?L(ltY7E@D>cQb(d*`jvG0C zV=%q)@=aGUo^U&`Y+&JD;XHlq>moV+jK$CE#h2ET9zy51`M-k>B)0{?B)i6+b(2|1 z$yd*5?J_Ux2QhHDfA>z(5v03zEr-0kL6*>|85y+og%F@T&A0hi7%BmUKh_Lpyvaw^ zuj|J>xVgE>aruLQfctMr4y+`~1JF>P$_dciXHAYQ;6FovGyU0Wp4%P50|Y|NdM!Bw zz3YE^m+WdnJcwS@!urVPYEyrNkVxr@UZNH+`Fzy>wW5N8g6wcjg@r4p z?jv3j-l%BQ!nYLdT=KWPclE^7Ymdxq@l8LSy(~HUEA3idyk3*(%RvC%uDk>6+$osi z_&$})X34*7KmTh^vA%9;q-0Awl&{0d#VaxGmU(hYQuIx$lIy0`*2vtezd=c_yM8cM z7U^tQ(r`Ix&;#CCtB#I(>1go9ZuLmtmOPN6mID~&d9@n>)el1e}>7c zPcbpqd{1Y211t|G$Hv0Rtv+iyc?|f=*W}LkJK4`B^Dq`hPi7v^*=Pkx6_psZ&}-8_ z0x6?EoQ+l4Z|zUG&XNs76A|Y#Kqeh0Yy{cYJ#X;mCd)B?e*TB`rluxjGd4}0b$<^) zUiZV04PD3uK8e%5!S@OD+4i(IedgY4rr7No6wqFJ=OaQ9CHTH$5__po-a!6QlM`kB z{1+&azw7nPmOm6MRI@E$WSnmGKx5jb$z8lvGlQA3H@lgo>M93A^(9fgvKX*rC*{Xg z*YxEdWmijmr9%Sy>+*f?>Bl`S@Tjr_Zt*w(6;$D zzt8^ap=;bqHh?z>ITEk3H;aNRv86SVZEL$r;%|ILu6ofk(ZAAcbrncXbN+^H8ph}3 znvfU1$appVS3!|&9a&RV)YV1(HQ;15ygA)`*K>2qZ^NAYGjh4Yu-KC9=E;iT@At>> zD36DUwo{(te%GL8{0S#eUzEI)_WV3cuzV@pXOe4jy@;9%x8Q}y7jfL z?7q6;GI2ZXH3masi8_M|k6z#7{m(XNR}|YLN+kpw7D~JD(S`$3-DJSC@)>}4o?n%o z{>;ahqpW{C!6Zc3z|n+bv#LMTEM(f_+|xZKl~zrIZ{c3Yb!4X;W?m32M)Pyc^l1z_ zM0`!8?Afku>uR5(H2M09!zD_f>v z3p{ED^Dl9IXKo-ycjv-ykr8t04O->~anOIx?{lrC@upXVE1YX;{`OM{oy(G~e@<=tm)9CEk*}5(~XY$a592W%mba zZt*`9DN|iCf^41Jn67{>4eDG+`rflc{Tv=7l8Dd7nL5^j61{G{*$v(i^7t6NIci3|Z6SRi1oFp?Xbs*I+%Flk1s^m{}QcCOiYUQ$GZs*5}e!34ARpeQG{k(dDjZ)Jq>J3fGOnd}^lp_SD=MoIM%5;cuLeAH+^Pm)(V3R>(f|M$$92mSU^4 z8{lQKa93o%gLvy36`@-=4`!#z=B$PkslnsIsOZACHkTeH&|zm;x?ql0l=0dZ-7_t6 zF4lec#RQuH#*qN-LpK34g_er}{$u=8deOIm9a};G}%GH*f;n=MFU=J2=I)CAls)kv7 zBNf*MYSwG?tP@%+-=bgru^u}KTNx~EGyi(JVBN-vBeNshX@c9;uxqLM)wy;v{euI9 z+h*c98`oD&U*c%GtRY=cLBFS*%n#xB$H-Vt9}QMkSt9P7f9D*j^t`K%w}w5hPdGA2 zy25AP8Bi_VF8QdM$b^cR4MbNbMuM2@O7ZCYd=<;>s@+m6(E6eZFLyLmG>D z7MIBl6~Aq_l6IyvsrT^yh5;FS7EHDI!>LER!8vRX_C9$+@zq#Z!lP~>YBkee~ zQbbVU7m}f5Ld3n3-AEGxB$;AV(c91~4F(Xf*1ct%{gG_SWmi9D_B0B&jaBA7@_5wy z1!Kn-B{2bV_8c2q9V5_RI)^UmDLIM`_wVqOqz4ibw>v$t6$UTQNDbO5>M*iRxWZdC z%qS)SZ+zJ>kbo*)_B=%XtpbKG+OY)XZyyr4zx-ODf^_xDoVEblv-y9X`q zJC}BD8)b)=Zr@77mX3~z{p|=6+U91d>hx=G>DbD$$gf~tw4a*}YDMS?TXt?vc+l3S zotH0@xU_C%%G@yL#B6Ic&upWJRg>#O7etiij9;^+tLy{R1B7f7 z7i>~5yylWI(i;%j@3Bd0banLD5~tm<&dwe-k2&WLJN>YmDh97JFBsRZ<*PYn-DP1W+)MD6^S zm`~NVW+wTf3=MA@mt>K$?bpO_Dz_r?{pI2H2?-U8n32gj4XsdieQ(iT-;g#Q_8$2VnaxjqR?g z33Ofhl^|VB2I8sd{^*Z2`i*O_z$g8u#D{|7$Nesa8hXP-D@ute%aU-ru_bHA=3h7Z zNW9l990SuA`}l#35`z){H%V zCHmcViXK#W?`=wM52kLSG=`o(#-o$H_#DYz?V9&JnM{i@`g^WAl~#|k=HnKwrV^fJ zI2i@{nv*>vP*%iBb@zz?^mF@)sX{lFuAp{=vC?h9OXi|A6EJ`d<}MgeuQT8b(@NvW zl2LT_$jQl9O_>v44d#a4vsux;RBXCDDRpyFCPCYc!`@N*QuTrH!%wK7{tQM4BU_w= zbY{lud$+2+4o93sKiF3Im}?u9bC#{}K)id>Lhjz@SL|!JI{(4l<8+7i)7h6vj)NQ$ zhJhZ;sf80qjY^T|PrR_gtmTWpFDjW$eC~R;{V{{Bi`%`L_O)wx>U>hra#g)*h_z-L zyXxSpua!u1asIwENOv`(Gm8t-><#x}--pYx$5^>o%lxP7H}Y;*eQ99HxzPqQno1%_ zqYD>VD;NDZG7PCI!VI7@f_BkP@MOyFRN_OJ21itHr36mAIq2=q~@SMke)dv;JzsusxzyFvhH$TDAN2qDhJXUuLFU9|9>C4$4^9pXAzgRi9 z{fn=b=7J%@t-)0Mt7WJq-7ocnl3{XZ6+-B$yj!D0g3I9zzO;p6r>&vM3%#=$8?PwV zOvr`B zE0PT#-iW@LdN)y2(R{z!*a==#y6>c|U8vKvr1{c5A$5VnU?TK(ETj3kwDy*Rq4Wbf z8>Z1x(sn!E~_xi+JoPK=-$-|bW+y#WOr<2RI-MW3- zWcBXnT=wO$wfc>7DK6h!t1Ig(zwGp+O0Q#qkHNhQ&dp<2`JK~+5|it$kiF%ux*sT><3xr*Q=34kpx*y9d337n#=uhrp=&>O~ZyjzJFL||*jR}}l+4hsE!=}=K+>YrNlscR?sx;>CfBp8|+yl%sR7Myz8rOcB zrMoQm3??&CoFrkXvzu>B1ZN0Shn~bYuIlhjlVsOa&vU;P1iUywZHJw&as(QL2pRfTdKgX5TIs_ArfvkakuQKU z_9>$M&;Jfi)Lev{dQDlsby^S|y791J`Q9JyxD|muYuW0hFfGH?(aqC0OH5UV*xnRt zuI8ti>Dtr(uGkz7RQQsQo(|ap{_1E(?=q&I&!XJ$9U53LOJ}^xYhB!_ld*8X^Nk%o;V-q zX6nQVQ_zj051&>gm>8kij7JQHBhbiRi6A-pSfL@s@GpB3?HoW(n5zG`t+W6Q2 zBcxybU=2?hRWHj!#Q$<&iMXm^vFiMB0p}h25O=83^(JD!>N1RD$1<(@Sg0*-oS6U8 z1Jv*pczy#(@ksgeam+VH-Wxv2Vn2z#TvK>GTFg{_t?i(IQDD_sr?R>>yk~b*tTcA9 zm}4U?9f~f{x-~6_ykh>X`oKmW;&J?BgP@J~*v(>AGEcTyc{EdFV8dZ*)pBqB$YXCH zJ=9nf|I5TD@6EO+q6&E@woj-WZDwTlp7uVwiD~JF5me6h&~D?OMdQ>yBYdtpOG#!! zrS(unoJs9-r2+}-Hmf>5viuQS6fL9O{Zm@?N^{ishl!zFBK`Ru`B0-|Y=3B^=X>M` zp{B9IH*()tcwgF~DFJ9IffyqD5vD(3%jro_P?4@7F|CZhd~LKG z=IMEkj+y^f>#gI!E?YxGL+W`j=#S%oBBGiAVDwZG@Q)PH?qSotuonmLk=F>5Uj>|t zz9jo9;MC-LuEb4SK%-GJ7rO#4S8@=p&U};B@%=}Um`AsymEyRHrIRBk%5$V4`w5*V zS{++;oPJw=E1KV`Ayv26B@f{do>TKr9HKFo{Ki4T*hW!PIAN-*OLnfxh4%`krjhT8 zp+cw>gG z8M$hl)x0S+N8%lv_Aq+vt^5RU%#b!m?ymd?fA7Zb8d=LeS4z?fsjLSZ>gUmIeO7IV zVd%YlRc!u}Wq2FeKBr}3KO>|?$KBI@P;Z!i$rBsK;ORN{=MMi$d5K>e%B5~a)!zhKQ17`TwD^=Gn;GP@ONbg zWv#1!2$scF6aF<{@Ut23Cn|)GZ4&&3Q_dD1++KlC*c<CAv*$X0^MEN)Fb0 z=v^z4`JkxzGFhmkc285h4tu|nGz+oLFSwKR{SPIz;tnqErv){Pv@RoYrL zvbQ4KdER~J=%aU)12qeVfpb(uY0|sly^1Z}&*QTKs94rgR`I=r%DT4m_nl0w&&GP9 zqi9>gFSU;-MVUz$>^jP6b%!`;pU%~elkw?J2!8OMcF5E~oZAClbhRy}M$b!^mB-Nc zg|Jb_x!TT3SG#m|U^ba>uL-Sf--E5_b8mNtr+rv0<~;9V|G)?P#onN2>jRud(%Lf9 z*4X?Dovu%W#Ov*?t8;M2gd|>!&CWelelKFr4l2;`px;6Dn!%1u%ayK2Ke=akjMB)N zF4=*<($jqmpH(boZ$XNP1N6j-qi1bwD+Z%c4OEpWej4*JT^=;4^qVHr_EyG78m3N42D+^GKYuuH9{!J?|n#{Trn*o2Rr&I(0b z)gx7Q^oNY-IuYCSbAGAmUTBTDHrh+b7shd~o2m$-C&l$18Df$>Z+KWCcp`@g6Y|im z^S?tFEDfQ2Cr3VG<=3QtyC-T+$((A*37km%Ztr(~O)|CN^uw6L^N}&k(NmQfq^CuJiF$&9gfqQ4b=0>4x;_Yb zVESgyj&60$-E!aKGsd_N(&hBwbd@A@XjzT#4QiKaFusE`m!7=QgO{Uo$Gw+7&6jOP zf8f~XOK&ozQgR+1t+YmFB@s7!IQn4 z(G_!|?DTjqnvl|^3)e#FH7zs6lAkX~uFtD9z+WlKn)BnZvT?@c58_`ozs^o<#M-(hMX?GD9OaRsLZG`-Vz4L1V_Xf-{h6W%7{& zbvsr)6QMqnDJb6ffyQ#KhfTWjm;T}uH?hk`vvSSpUwNYR424AW=8$nIn0MY!ep2Xt z<-g1a8WKrA|b;IQur z3paN%?5W(ag7y(hTexfp*Gvv`W5~Gz80Yp5PMYw$bH`t15L1L7#5`)D(ehuRk+9wy zMusncgs)=Zy%>Jeq=p1f(d~6oss1zc`%fIY^f5!xoHmu`+fJ4Y=iD@vQY<;&^1|p+ zp~P-lsc$}R>|{tn+%>bCqBqrgycPlCih1KThCGb%SeCrlqK*=E^9Y1*Sw4|;wF7cs zry+vz#O}y0&!OvvUu>lPy9)XYz`m{wUbgxMn~#ZQslcU4{4<}q?iQhNShNw`GuBp` zb=9GowvG-`NSfOSmS{8)?-d#5Fd+Dag*RMkPiUZ4kX;KiqtTQ}K8j>=-BpOj9;~m# z`bIz|6xPAjJi2(?m6IW&V7VB%VSgYf%=ngR_e)b1^UW!|C+x+!pS!W%UYD-f*N0LL z!k4~DyP*r+D`HNsrTMZ8GG|zF{{_P}`&twhbRP>NVpcDLe z?KKs~us`~;6j@uOm1(Bo9d6Yt-h<+@L3dX@&HSkK1-T|_%c+AZf11YwUVng;qNwJkh&KQ4KKq zUY}D?pUn6Elcy=WsU0gnP#{y0sT3w9>JM}`q)8WMl0RFz6gO+GK5dm-&4JrB%LzaK zYBcKeQSQC~Jh>txAbG|2=MmVq z1B+sM-BJQroWlhV&sRaLdmuI^C__Ir?0$1oFPE~Y=1@DaJSavKE7SZt_uxyqI1W4V zy#XCO_Lh6iZ=+GxK6{b>l3%W%w}feK!QHag!spRbR%1K6)g} zD(bGi)TE$9ErXum@o;FeF0lMal-B5jEvCgpX5QWZCGSSIw+^xX(6$p*XCSEqy`5xT zeRiOybFt&s_x_{G-7F-eId)9R*St&JM?-@57WZPC=*lRmtLOQSUSo;5K znq&#M1xVjv6~|Fs(4AC*D2rXaglzV3yj{uXhphJEALg!BnzyBiwsP|7d(3Knx4!iwf;Km1GU^6B@CwC zo|57=pHVW8tO_aEriDG+GOuuBZc80)8&V##cIXR1w=}w4f4#HAMxJbARD?@#7<5}F z$k?rfzHWbNK1Wf*HAFFRNjZ9YijHoBbN;!RI7s{UT*p1Jj0@zY1j@wEtN{zy-VHS2 zdO&359$WD{)Lvtod=DzCCX*#6=5kSI-Gdn0s%!8P59`#w(67*<&nhCyV1$nQZHjx5wSCvB5S4?{F57$N@O{e{ zSLb5QUc_5DBw{4ugN-2OxFe5ahY~r6p`RYvGNx}#TfrP+ACI&;n(~VKEwRQWE-lfP z(bn~Pr**Mb4!2ttv5emj6#yEL?MchSwo*Xw-26>vGRhakKhnmXP->o3fg1_YD5n*I zY1PeFc38Fwu8z@~F*c%UT?BpJ@pRlN*`@$t2cccLsp3xAf@{O4(Y3FEYn(yrW6z@K zfIVg(E2XApa7)~q>-5?~rt1p$&xr;L}4!4n~?(i!b z$2P03o$Ic`7UsE_Q9^!T=dVhKMqPBNJm#}bvihIv(0C$@=I zCNtCI#@U%_Z~(TrAsdc6cK0X$Gt7STM)#X-b6H-?7$*2sA2=yH#wYyMU!q=a3|{I) z;PiG!(#%V?WTgg2Zxm31Y#%!ub8Z?L7u=PYPLqyg57Q44AqM{n%7nhrahJO&Lc0^C zspTs~HZd}KXI|n2WR)Sy`EhrpvI1mj{&*?cHimL2`~Lj_1XwLJTNk%6KvwMDz#>kT zKaLx~XyB_vubKbhGemg$mNqpWh=sANTTP6%{>AxJvtx7 zkqZtKHR5Jg)2oV?x51HDzI}N?RRL{8ghmKq>jn{xIk1p=c#rpgwE$bQyC12X>^1gB z2OGg#c*+2@C2xf%P@>S36-qkn(;H}={CwGsEQ{M#m+n$m4u!U!{cBM87_!{fiz;*w zr)d>0SMS@Zb%-B_$o_{EOjmurR@(W>oJ+c^vZ;Hj?{b*>Ts-OTF|h`V=)p%+Wofm2T%DkdBMoc}taKNu7BL=W)wK6)&|b?Vn9FNlm2;8n%h&4YitXD(2!>b! zp5@Qj$2H&>J;+zEDtHMz!hwOQ%`zDQd4zWa`n6np$&aMu6LZ=7uIVfrBwoL`1M_ap z-2anaz(<{B^+Cwk8|ckcrk@d}e{rrZA)g@)_5@8PT(-R|3B!g1z8J$}%9{gW;MB($qgwa+uGS}KO$7lUl z)+PO7t~!)1c~2P@6S6o~*B9u{sE_obO^X%SW59x@YP3p9;_3Z|wXtLTfg>UA0;Sos zDp72ik6jj6s*tyZp%sU9@rGU5HkKaYN*ZcW(h>VMgyrIoxUeNYEHo}y%Kpq<{rpFL zY6@z~2#1+IwIO)|9fe@ArRG4C6C388=yX-bcc+Dr$3^@-D4Kvfc6t(i0Sm<|*^>)K z{oTEI)q?ikhcP89wBIU2>6L)VwIJztKuB7>RS5fE7p*&I=FNFuE7Mb|mS6Ld<@K^b z#<%fnjQM{Rz#Ykuj;$>jAc_R+I2AVnlczI7l@f8g4dJczCd_L_@_BRNir{M+4uG$s{h zaJ;ks;T}n#+s0CQFt4VN$S^_F0tay&Md6R6cuUW9K=JNi7vdbERKK|6?}U@9Q0+|` zSN;$bE_HQVSUYUk*&kUU)#KYUFSM8ix@E}W$WD0g-Qf86c&eC&NDOZ==%eTA6LeF5 zD+qg0Yc7lTyx7XFzOxtwXJnGy8>n}TUYx%dyE)YuUs!mRk&zKlE&ayH*?~KQEms08 z$uBd4Q!fqeG#TJ(UDgJ7E`U8T@?!U7N&-BqIZTZk#GL2=_njJqG}^Sfb75C^6OF&eUq!l&=bE!c+QRFjn8d^lPwnZk=s*Cq<^ZkG;F5t zo^b?RPv;!wn`pIM(HLGt_j97H%gwLp-T#~2v)SWss}@%>>Kp#9cX)d%KWcen#WQ?# zYAQA^nZH?@)O;zFskC!{LSw|qjutwiE%J=-`$0E5S?z3@T5boD3{#xYum<_m(dHc5uw(_1WC<8^-U!YDNI8I%=G!+F zDg{(hQo=eVDoVSa|9mFD1`o$y)%PpfxyuB8|JR@VLzHus;|^V-sU$;J)y$$8WMd1 zUNQr%s@rL&EG)Q|mX^K)W)pRF!2y)%&O$!cgM@+tc|1_f~fp$9h)&(B}K z&H_k?DPybKb=W$8Pe*o+~Sf%^{7 zQWA;eM!0x|ZEVZO8)Bu~$$i*XYXNf+Y=Ov5buD7S0(=i@HOp($V=ekJns7Rt1Lmc4 zP08(ihfZo7rW9zaz5rD8ihk1cxI3y1 zG%0*ABq&YrO?VC4h7eXj+yRxLrLFBvaNDW0j0iI1Bv1nZG>>Z7(X@~DbE1$*{|T&t zhP1f2_)HH__->^nho7R>YJe*P*a($=1n=t%P91<&4!kDN3{wTf+j~PM1!%Ofox7w! zI~$V=4-=ZRCbMEtRV{s-=|`v%Osi)u;=tA_zOnUhnkyrm2qHO|J(8px$#s87{yL>s zmx!j!;ATxI#U|6z(G9i*0vxU$w~1jgM{_#J5&*MA#O2KR0BpIqdrJ!Rdyr6n7a-e>yCD zKg`n7wlyV+ZfoGa$xP?*=)E6}C&LZ9#1oeq$%|HIpC7Q(G(1}MT;~<^I)`%gs) zMlB?dE#JUB6QLHs@B*e^a9nP~0b(TSp6qTyh9{`4Ow_keQ5DzJr0eE(hWcR=zsiNy zbr1*}$VY2b+!{c_Tg2Tyn1{z%kY8{ZiY8z_xc^-FSX8vttA+!_EY~p}rw?@AG}9zJ zw!^!;F?Ms)w_$J4aO_)v2q^Taz;+!rl8*|z&ctx>#+<{3?;5{_A_R{QHd?650q|7q z*}X`Oc<_xNr|f8w4r)g2b^QFK|HHunCxUCl3rgA5M^gs^Aa()Dt-ZDN6nJG8nvj*k zESc-qUx1*}aJ=~)gp>MmHKvlNhc0zo<>6UP(jDgc?&@4f_g12P*P)|!Q6UnC{30rh zcy%sgP+M6&CJCty=SSdi#8E;VsBoxz(6%9zi8Aj%P^TgN9TSoC=#RNbIEC*;7Xn|x4uWfz(Kht8Wa?4@XAG<7&l zbolWsB8*y*h0n22&Qc>zdHAkc$k9u->%lX24aCkhny1O?yQh$d15aW*ogK{0ed$Ye zbpm+(PwN;l3M6cgHNEp{03~Fk_5SOJ-)AxI{Ia5X>oeDRUJvcRWBgTNXKLBt^!}%M zjGmRoz~t#xwwM8RpyS5RR-s7$$@{6)mAAt&F9-}<0EL?w1KP&5HSg$E2S7Y$N&gRy zwPJz@wd;umndd)p6nGCsz%+t4Z3}XLcx98pi6d1h3#!UF80456$d~_QcYzJ$zczx_ z<9begx6Tal5d6PjYA!MfpJiKKS-H_@?-#v9>BSM5|Ev42KYGX7MneO@_K@|84(cLS zo>1PzVjzG{XUYo#3z~s}0dVdeU<*82ACpb*a{aRw2;igE(iPVMXxGtVVADwZ6tO|> zzW;>_<=)g z*km`zCuU^ONA5B>G}krlibWoDAlNZ`S&^KyBsG`zqvWXe5RpPFl5BE zBYJ;{_3&cMvZuPo!h+|!>YQUmd3o4@=jQVAFEqucUXw`w*DI-97&^+pRF=0)Cd{4z&mj82YPH@H6=S;N1u>vT^|+{G{OtN9Zd$E8 zlBG@$!H(Ff$&yuu(!G0%A_hR8gPea*t3(sn-O~s2gn!FFJF;4H=3;e5*V^5u#Y=2r za=E&Ze#%7m5E*IW5c7@y>BR=0uKPUj{2h03KclQ%yZ0le0Y5MpA^e08 zZ%~!}R0auD23r%}~^FQ`VR3^XW(fH(Kd{dJqh}*M?%2PjPTH;2x?QRJw>&wEKMyw}W zvd>;KCWpN$%c{}g9@^}twG=#2_TZ0e=}L}bYc76cds)W(V$c;EZTll1z_~F%;AfHr zBe+qN6qC7N%-#cPs~>$Bb2`D;Xc|T8Ld5qbF%$POJG)G4qZ4ajL`9e}X^d`~LI$Ex zp*!>S)+bAq6ABSVWqz4|!_aco!s!~`xN*J_`)%$U+Pd}TlIv+{X^Hkzmzr>ZDP>>2 zJ$ldtup{5UU!N_oFvsMR{`~uwX!kuRzp*io8ScvDY417|@W_$lHiL@>cWRdUxmiba zQn4`YkEWD=g!y<#+jt%J=bJjI={&sDOuPe0`02?c%_rOtjeUiwrmZQuGfz)~X5&jk zxb(?)AHOpQc&k6QDEkNO)Zz_J*mzs^Uj7bb1s(i1Em_#pa45!KD-(=oTsF@4)w;SR zCRJFn&T&^Vwh6Ag^!b7$e?4^X8dVfvQ|J31Lkn0!pr(%HatLPy<4}N$f+}FFF|5uz z64W4xUns-aQo$xJPEP7d`Gr>xlq(Vk-H6wVbS%XRsxuYUDH8eE#o*^~dzYs4>Y9xrJN)^gv zz_L+2^3LcybKii>sMHbd-W-!DIxY0z6Nwg&Ii7Xwv#iKzIPqn&Mx4V@462Pn#8X(C z$Z_S4PX4Tv%{nranxMBTmXO~}plVMXA(1Q6B*ufJ^`J(F-6S~SX90I;>0CF#nR%}w z0;Lgg_g`qxG#=D0RBO1E6)K>q)31cJ0ZnFCROjObS(JKtw)VqZxF-5-`GFlEe*VXy z!!LA2gN{6Q`OUw}FLvB9Q4?g#)WUL7qV(s>-mH9~}n6>5QAAqWq0o)m=0Tn;W2T>G<917}| z&U-Al#FQ3KHJ}?3XpO*cjU!LUqiLUKk&!J%jrRJ0BLM_kY-}uVM#$ASxHpK>3T?wl zrvuUZJT~t?*4kU=v31>Y`W<&((%YDoh87a7zsWP62t6ERnWj!udocm5``Rax`Bh#( zLdaG$)OjLkuO}kBgz(w1feGH>C zgE_{shhIzcEa+a7{&_2ojr(K6K@ zGoRQ@Y4Dg~8uC*l1EU$o{5Alqf-DVlaykL3L-4#nPn4aLLk+_tJf})k0O^X=UjwZt zSUprC4D3Q~etxrU3@96c3k20OhKI*W#IW?Nvx(Rp07Kb_%$!y~7=uymPN+PYyn8RT z;7gR1@m|$vfxj2J8vZhclCNQU5DW9hdbdB5aO9u(V|0R1xOCDxqE21gXiV=Ri-&N7 zpQk5}-&>WqIA%!eW?su$yTbMUa)|Y5Un&*=I$to#IV%<*D>>#YCedMet8r?ifxXhw@Jp-3R3^OQ+d9&k zf8qg1OxLfE(FA(;S|1yk*eIO|Z``X<|DB`$@|^7O)}=jPrS$-`(*g3t^prb^6oGHR z6<#2(qYm#Ac19`Z;|&e3ane(J{+S<5jiBwTAD9{$Sw8s%{056NKS9ZvWD-Gy5lkG& zs-RhjJai!Qsqge(Qm3rnztQv=^pN{lf*qJu6T89a>J_AaHNS;!V0_?NOq*^vet+nz zhH4U7AOi2SWYKge@Ha1)_HIW~ljizlRhZ2jrrp7waXU2izv+T<)Cu^NZNxqnEN9!M zaFrMSvK9cApPzSW(W)IFIDqK8*v$jpiTZ#N+4BH-1lVstgXLFMv4QFy(3LHq67=7g zPz2~1a~OWp=jL9iWkR;41w6Z!!CXt>`t@7Mf*S9^ zwG0dt=+_N6`fLm<)`029EvPc3siNY>+S;0eg2K)5hnaxKS_T;99^mDG0o7n_$>~qe zIA1=9K9E*=_o3R)BV4N7bzbQH=~#(+#pa}`l>WuE%(DV8*PHi06Qap2$>i+FT^w0Q zRW%?xa%&9{BNe{Ozt0h0-PCl0g4IW8XGtNp4Ibe)3f{D&^@b`dDXk2oxzF2lB_uN5 zM<5)|L!-BzRUa}3{?tu(PhfBz#f*5_7bCc)|H<@E|M%AQV6&wznbZjwkfR(8%P zwbt{yO9%IbL8B8q_aA@bcdfEo#o>|-_CF3YTvA{dQ28Z%S7*&K@6))D0vS_Nqr1z% zV1{lwQdd&7?kK363dtikOCz*U4y0G@`ufXRPy+Klo`cd&)34vwT%sbG)m2S!Kk@g) zi&rrxNgG(=iHL|@B|A)DTvNS&eB_ogh3kl1PP%$DJ&7CG>Oa2_pki%hQ?RD&H$>Sj zrwBysZR@IjMLaKJ-u#Fot|Ro`7{yLS&PfQM^77-evX-a*UO7^uY(a*wBt8nQv5CNY zBvKt+RyNR)rCEqLLXbIGABbjk4ImEVp%}?UBjs5{Y9;^sfbORc&&=PExmZU}!Ea3J zABH0Zp^-)=NcG!KBo9`_%p&!Fd^4Y>0N<;X_C!7fDAdFu^6;v$vGD-NTA^a_TXE12fF0`xHETwfYdwOZ`L8J=7g%T3&h<8y zKx&pLnB(slL(m5m0j{=xW$0t^-D~|_S<)*2*#rKex|l5nj2387o-FrY3MK82uFST@ z?-f8uFOne8JD`~fgy~9ZOo!nbJKA~u2MSG#`_VRa%fK6^2(ZDbfJ+07I~>gkhMB`-+Ucg{@9S1ilxMdZEjE?#{KuHundMr_SW(m-N)^ zGaYeZNNUv$^?DAr-|tX{uoQiTuz49{!7-CQWZ%%fO>nVkF(}0gP~WzM^Hku?<8j`~ zz60RPC=YFDKDF=gAvQ)=NKiaVM^vQ$FiT>mNoD&Rq%Z^ z<`=QiGU*YEkq&Appq>6aig$MMx4|R{yvfHBe(7k0=jgYN(QapR;A86W?W+V0S_A-B?v2>D|})7DJ7jXHHLG8@5oj&tH6OGjxk_CsTX|5L+%!u z=I7So26`s(wT%Ir-M5btDdbU)hfi9qmIlF&+8gKa%S9YoP#DT}1r|`2@eMaceme_X z@OKC>ZAo;PD~f7LMxK8(2WAchpvT+(!+2=-9`-5n#-an;N?pd@@bbl0wrjEE9DGEI z|Ik~=6Qc=n-A`mKld*ny20`RyiOw!Ve7PpuJ%mFF7 zmHrEYq+KjopdLScNm4?J8mj)uW&%>#1hH05QOr?McO^hXcXPyHysFtJ#uCN<$VenG-3B=Nz>gm^#zsc{zkb~!y*kruSTP=>J>tInQ{}>#QlC{%iWi zj)W?}963Px0nxw3UD$Iu{lDro}QjXG)5GF+2L+b-xO$7>Y=3d^H7kT+&d3i7WbCbMC z^3b=@JNIg=3!U?|%>GSboh!6(;k!&nXbK5Y2qBY`m!ZTCmX#?|T(y;0|<-AFli}s`3|ePpC-JJ}%jo$?X{g$3Zq&FhN@ed1Z2n zGE l0OEXiWlk{=V8~W@P-c6vc4U=J@Z>kPfiMa!Hg0iI@6t!o$P$UvDkC)6vm+ zK6>;hmn+)O*z&uZf|AmrVm0ePt*qkc0Qbjttm5Dc>UhLhBXakSWE1!6`ntODwnYv)}oVRcHRq5H?lr)-~zdi1-R>#9WKri9m9~tHZOCsVrq0I&PbNVLT&ig0DKBn3l;6Uhms-&c} z3@i;w{jCP;mS1MGmx`My$F4$Oid08rEIuwV%@;924K&Xhb}j`xS)PvM-IMqf9wD01 zwYPq#E-BUcA?jGf!zCnJj^`oq-*XDsnF`9v`r!NxY&3R`6y9@QBCgCHF()p!(|pYZ zySmJ;j`y`<nK^Nd-8n!-LuF%4@8 zo@S?$A6RG9x4P4K1h4GfDd&Dk>^^X!V8qV@#`-0cBWtp{J*30Mx2VN8tzK?$r$q4T<(K z+RwmT9V2TkrF|Fy5^2S@t)AtPxtC?*KnC) zSQK;ybv^FXy#71F8+viSV7GgKPas)O(DrFZ%@V`4%uN1EKXrr-QzZ(}#L@w}+oOGw z=@Z4$!Ml`8M?XXmvPZc#t-|Q!aK3`qy3h-^YToGGURFD$_SHBq7FsVriP+65icAPR z4k97Vv>N-f`E83XR{Qv>Ti1Ic4KEi(D?~n_O}UvPzk$0(`S^?iXcRD1fDEjzuGTJz zWppwN)PQ0g3?cs>*yi7Thl|922XPJd6(vUwK02x#UW55c-aXdDO}zaomWtfvf(Pi^JmgB?(V442L6K9rF*zI*RZVz$oZ7OHwFe&~Cq9q6HO*7vKR|r^9&Wil!U6{8Lq?S(}ON4)40uxw(<$Hn? z2Jq+kk*18yT}(ZUfRZA6m$4Qoq>e29Ju+`W{EED+M>!tZJbZnO__ZR(TR4ih>9%{^ zBfvg?>UZ6XR86Y;v-^ohiqU5bW+fi|b<-3!_^xpK?DgZL_@Zbp3$q!a<+%Fkcky&9 z1}EzX+P2}Z$ps8!LW>rL&}hxn*OwXG&6*UXexw3l8qBel^?k&0Mtc8tYcDY9Ri{Mrbt^#Qwm|CECV`bI50eZ%L1_vzrMlD<)Q2S|-v5n88Sn&WcSV3lUm z=$=X1q+ROivZj9gfWIg1i+@AHNOD8@oBJ>6RFL$=kbIWQuv_1GNr}sl+bjk+;X=gV z59vFjo?9%#iGzgi0+h5tXazT{&EWfgKdT<}_E({vE3;QG$eHA5)Wn+q4Ysv`m)$^l zUkPpQ`lmBvD|V0J-8}Cgk@-TF)?-M@^X6|aBu>B6!TN1NMk7tG^jLRVW*M<}AkRa8$o!BKVhv*v3iAS680>9nix$ z7i?eua1`PDdU>Dy9Gk+vVd%->`(?O@Bd!6|+uVX^{hTqew|^h0a_~UKjy+c`K1d3k zx2v0jKIh{#>UU1(5Z{oBrNmM$kPV+bhydUHr)DIh;Y`hTKWLB+`Yu3}@UroiubtIt z!as^NEqA;){mTLo5Uu0sKSWRuHi`Rw|C;V}7U$!p?RP1Ph1V8-X`j>h8JuVKXv6R$ zk2Hy0}Yo7Sg zFg3fKHa@QZo8{(MA@`I>vqvRV+U6Ms%hAht<;vL`0VlrL=%PbA_0=D=SuAJyE%@mS zav7hM^PGK=^VZ!Yv0f)D4aHsK?p?C+_B2C@nFC^&ZXxMfD!T)Q5XTM`NPeGe-jt6_9VI%!!&O+)Q@Xt4HKv+&~dxs~PlM9+3)0uqf)QvW=> z0+p~Fb6^6N21gcbKp91>&r4tNFPDBGQP_e2)5XK;IsYCYLTvI}81}dGF}t zPGU&L#~((UErPLE;=cXqC(qSwxvL>-uTv2klx zQUtKtC*K(!&uvD!pY-(?CU?$6Z1KFQKeYQ@p-a<>Y(-AjiJHpZt#TjvyP)CjA;0^~ zNCH&CMoc8Ywe9TJ$ytpGHJO+Rnr>3{-{oyal3|fq^-ZIaZ!h4qAU3C7v z8?WLQrj@rirI*I9$oh8l6xg|mKk~cbOHKZ`myCbf;|Dvv?BDZBS{v<_&^m6K)IHUB zo>y*2$XJ4Ex9Iaa^&W-)5Pyf%oB+lF;w_zs3y5~~Sv?(J*`L!;XVPPah@wkR9Y{0$ zN-GZwXQl*wzD0&#ibM7A;H1zeqJD!EYCN7o9|U0^>r%wPi+sN`IsD-iV~D z(;720M0t}+g9Ibn^bJlxGy`R|`ESPI)-pX?k$%moUu@%dhF_&)8RwK-_Ps!h1*cR; zFZVwXTQai^GHNqmm)+WE8h!%nP21kzd*#s%LsNjzq?UL6p0~K6y46~epM`$DvPfML z=M&9$EkQ@U$LTMGya`Ex%r((I$9S7qwy<5yJ0FC&jz1FnSjGQUdAk;I= zC6jT;n+v%@lO;V@SJg65Y+&)ZnZ{H7U`e&qEC^h3k5A{wPghT)$lF9dTB(WxHXKDg z_i8-ExVm%aEgFT+f5)D8U^0v#CA6MCgOp=rI|C0@9_)msc%#R+ol+nhUp1JH%dKJl z8Yi(lX`~buMghJ0S1QQ5FrNIqjy~bpg4(s;ZwCw+)pA z^d8e-mzJGRDj6WoGIN$Ja-^xR@Lhs<;GR8SISQw9Vp@!P-5hypC1ow?!Vill`thMf zxVQ4EW$AVXmU7%ep(K-WMQukdRN|R)#l3QZ^sG7uf}necD~-`z$`iK5)P9V?LiFg$ z;knTCO3sVq??eHTDxG+_^{Q*@KNtE%P*<4NN3o1Q;$377-f#uis;IatTOXeqU7)wp zddujYGSgds(|uB137+NZu_I%VQtF?SdN%xmx)EeWRZwxw$|j?k1gXyej5KQIA1 zTuxP7rDOhm5k3)#4X6!85Qhc3Ur3wK1RI}7ZZxwMfPF>}rCu^l9=sK9C8DV47l!eM zFDagaph>uD!%{HQjy($0$MKqM>e~P>4&=0GNS($Z*r=2bZsVMfWUkW8E1w^HKDU z(YKzAaBl&>o#^83TM?#N(3lp@Wrx&Vqxrdad@7x%vktTrWM!`W&}+pUyC(cI;|`N1@uo6r zW#1eTm-kTMSc53V?xi&#+jUdxgu3_h$Rx7h>YtnB8%N^lWG!|0hws+a16SI&r?;WH z(8G?zp{-aOjt|J;?fj?6d;_P?!i+Sdupx#o#}x(@v%yimJGTmFd{-522EZXj2E@bg zSjOVzSjUPpVGF*`7Zj%L-wRfLQ|EU*l~)&@My^ClBL# zCBC(|J>xfN)+C_Thi-j)_b}M~1d{=+Er!Nw;BaE@%%U{ibOS8~LsB}xU1AC6DXOqG z2*G;+GgPI-(Espwpjw&Vr4X@Ep-){S^Ms~Q@;*XCt4>EEWs%0_Zv)=@lEf9mk{&x4954-542Pyfr)&;D7$|NliLSJ_wqC%u z?icM|@z|`pCTmL)e4}diS!?_EHpC9quI>duKj(DT0N9e29f#Gk&x+NIEid{Vjgbo? zucskHQ6E!=#{yolrQ+G@d0(7b)i6b%I+&h_(!dN*39a>BL6h(8cGm)n`W54rsg8nNrSM_8GmF8ag%)FQ~ zu5NP($Asw`s&9kyjaEFoP^2m+q-;d%z1`0AC{!EbyRP(e`+mD&2{$bj8fk5#WG@I? zb)CyZrXkJZ(kp46bogxKsV34X3>HiFU(bB#E8ggyi;-;?X zEa`B>Uip1&SB#ZGZwiQm=M&zCY#f=%94I?$y(-{e(%rg&-h9YekErIdm865%?X z8abqG*tS~YZj=aXm&!_LVIMrshQ0C$TYx#@3vCM;l6;8BQPVCCmsFGuW{niyZLT_0Msc;}?G z1pjJQYo6z90Bl@Wmq6k)=ygTLX+Df{=%(+{J^Ukmsx zJ}JGo?^Ho8QsJm|MnI3E)(>r+oJuMxB*FZQF@@sC3PvEI4rEdB@$tB1VZ9a5RdHy1 zylkWdHiHB?Wkbxs0MS}v$H@ph5&2sFw779WI9##{zORyK{l-ip3u~^url;^?K@ zYCb0vcWPZYZVoFbA@GDUsLAYNJ~N)V9Ztu;p>Q-hh0{^6>q>u?bdA=2=C;R>Z@i#R z18YUho3HJQ{VVFmAu0E}#qFB?G6Zc*%(5C;iqR6U-8lWaU;i>Zl1?`y3|l$jmQhF( zP<$Y6!Ap+o?Gr%l;K2=U@W2Xv>Td(x#$BmQn5Sn#rG337DB@FVSjwQUJaKQY_B>^I zd3m*!6*_UB4lvHBWed=rm|9)yS;l|e@57W3ci`;%RYX_A4`ID|XBM+^TnLwrin8hOsmZ!495xYy2mmq#98C% ztHCV#;Kf-*E~aEzcKs6f=?hqwbxIh@3RTn=j^GV!6-CWaytV zGnsxuNF|(q6nJa%jv=pcnpD@B`-<}|eP3SGVGTQ&d+&)31;zxz^GmGRr-fqgYg@|y zO3cZJ7mmR9m4@EN{Dr(dvuVcVJ}t=h!O@VHQv2!C3gFcey2Vju_4dV}dInPTXu$E{ z0fR3=kro`t-2+wdz(J2&>XY{MO{ETZ1hfKb2_19}LW35x;h-<-3bh^dqEG#&SkM?D#Me(VyLl5fqJoxzguOsCCw%}yFZ&Yzf2@H&wIvo#K zKSqFh@h(JPfVnLOnkiC#-Eu9MPw)?5 z@z-K((o9YJjM4FmXE}4Gk~4%}3X3#YSLywg(#G71w1*h>6%gBJ?s*j0N@cE#M+?dg z5R4=!f_+h4Ar{B6HnN@N-Kh;iR`aoAF}@pERk4*PW!p$l%>vY7-C_51YUv(SXivo_ zBv=%fy-jSby23I zSOz_6MX4ozP-CT^rCNa!Q`7)pH|m0&0T1n|Dio9*P)M>8_yQcL46?UV&?kryU9nFk z-zS;;ou*e3>qjiv#<;RRSWnrh2*1=kqba-y1Wmcch4C#n|KnBx$wk0DCiBS41Gp` ziX`z_T>Pompxk0>XE%PKtl*#t{6bqt$71loE0oR^!TCXVIWQyjWWq9<_!v(K64|}x zV=GWEV-S!oVpZ}Q%QA5|hGj1Z;!D-{j{Xc`r?>TKb@w-Hd<_?bl@!G)(I)wPH2m7o z->7Nt(1kD^J#Jr8R^qzTJ^734kzlxZQkh^hf3i?zN3f0{38w>fq9hG@^C+5aARhF} z%WRY;`(pxt@bsAcrqqF-gU>*K&-O2VyqbiP#v*1SPps#Txn28$i;^{FiRH-7E! z?WOL3;{2n&JlxnA5AaLoPEHU`VcJP2k$8$c7sU{x8L&A~0A>#1z{I@(ds;wp6)d#M zlLnTc`M!g_J(^mj>*+C6yY<(`-6oFhmil9RDZP^?PlC$RZ9okqDgZT_78r{}Em}vh zLZ<#q0c9_UIjw-TSp|Bd;@e_cR#lD|P?tQ%2KZQsD+3s#w7z931LtmqDc z;`}IN#MR92fC*6>#CNV~_e&l1z=R&8jEs(!g5e6Fq1h@Jp#h4QpFEiQ^3;kzKeNGR z#GxCglmHo<9xK0U{_yZU;2W@1UW5PI(5H(`R0{_Pt+-TiQ*a{8fj$Kkw+F%NfIWWv zxbr;2-AAN2+LbKz4#xN1NXZAdcgGo-n?9ns?7Hioi+3`zu+GtQyH||;3ZkzWiZ0!< zC>A8TpGbghjus(wxJc~#PZ+}%ScI|+-_<+zs)p13(!8KOX3TNbC@cPQt+yVR8T5tH)&>B0smhv zz+b`v{qm)`nhM2P#tKpElL-_aVHOh0E7qJJRaI4k_~kwrxQc3OgQvP;Wx|As2b<4| z0@~#}PKYGA>WiH<4mOZPB;7ROnK!~0d%L*21P^eXSBY88HiiP~!$9lt7BEpPt*lnT z)AIwQkl=G)0M}&t^2ld8_pdZ?jP*4OjD>lpvOXgPaYUMHX9Sb?N(u@JNW;&-rm{lR z%TLSZWMz#NGmZfABVb+u-kS+^N+BB?0*uI`@)xwLoN0kpJPEK|+=7F%fV9Y=-X{V~ zXagm8^6?>c%K>Yl2rymN0QUo&##+zGLeTy`Ef0z`(XLXx0E`8d90eu^H36lNA7KTj z+zW&SD}Z?=Coiu9_z{G5E~kDHDHst)<+a4eGXo~h34lVW+=y5%>4DyCMJoMC9aRF1 z3)NIdt zCbcBVzHmTHUc^e|(clNiaI8tGmqosah)%p$_4&E0-8Q}E4c@#=nTw9E z*0@P(H@q0O!s)g(7o_g?>HD;<%1EuB6qi*Gn)l0&98In^^oi5X*9kg<$Qx8lVM!S< z7Q`3f`U+NAm9hlzbFG}+ZqMjEwEZR7{S>qnqv#su38sqkNPLdK5$3Bn*C~SzAdrx> zwY4n-6l<^XeP7kyZl|uLduM6H@AKC351XqlmT;9(25;Nqz@ld1Dul%3vm2h5Bb<-!HIAvXG%Te} zZm(RR&#y^>cO)!G=v+9#qco#XJrKjzYOMDi-6Yqdx$Ah@d|Z?G)od(OJZ>v1#qYRpC2I#M$BU6zv01Cyc_^Eeq0 zy6}Cyx+=#TPj312Nf%)2@y!Ea-#No$jFNdqq;4^^2uI+^_PJ*5;c+rBu;d4Bg%FJZ|QWS{K53a^ru*k61@FoDpVx+IyZ&q^1Dd z&-#^bIuN@BH^IpTG-`F``^Qg|?N`Y-i&ofWx7Yzs3ubo!kpA~Xc~zCy_iRs0h*7WP zlz1PYj!}&vFE6j0jLfWGlL;@SZ1^gb1wy?EfRKuI=}f=@)>ad7#Et+)-g$*UQ@hQO zNXn;+r!2Cmj22)hf#6fT&`N5R>WaNW=XrsD2@~QX%kdXMGVWFLMAt52FKilKfRa zx(%^$6O*i}j2{EKU-qmhg~;R-DD%Y6 zh7WChv-UXdT6$|+F#x_E_>N4F0XRKxX|Zogxcb*5mCp;rj)V;_WHy*3O9eN6U>?=w zqiN8F2I#m$(z;#UfU^c|YHp*#NPvd)fEu8^dBa^rE5LjtE<~m9#l)Q9;peZUgw1@R z?RogoZ)Z-Y0n9TsHZl32J9t~{PGZOxJ~x;v1&F}!mfm%9bBhN2p^p?`!H6M8@q0%x zjt-+hsxcum_0TI4jP$_;G~@Y5K(=WJd^H;M5a_3FHU6iHoRX5w-VlTQb=YWafupM6 zdg&5*fvsIwk|cUvlWTB-@9%RFu@lp&&GQ|x1k*L&6$ixy?S{d_sGJUilB*Seqsr8o zkIj;X0;TjBU%hU8*Cj*~uTubnE=c7s#LNupW%ZWGLAwl24nU2O4xtwt>PK|hMz87C z?R4f`5@0Kr-xpX7G-(mI5bD8eu*W(aFmb{z7Blh7dB?wMz6Bf2Sg(t27Y3*GCs17h z>Y~URL9^f%AUTy=gY*kgAUP-M9#Eft8nhqHx-JPGo-!Cir3O$2H7bE12y9fUEj4}v zlOErB^@DWgO8WN$AW(H^3Qh;TJB-o|BS6f$I#hZG08v3zBVG#rK$RNk0eC1WDQS+e z*m3NBTVvIDcJ{_!0#-R$RSrX{>sAt3pwUzX@FTkiN1yiKzZq|8X;*jwVkQC1 z%@_n&WBn@w^k`e_A72KB`DAm^MoFxYOhej}vz=B0;>DjhHq2k-Nw$Q`&oZ5{Sa5=A z2-NErifibvas70Tnvl`4_$FxC-|;8ut`LI*y7$?VA8q`HUi#iwO57SnU*KH#d$GEt zm^S8H%pPNhffh&1TogCwyKU$epGp5XW7E?3P<|h-i@7Z#B#B9b1Y?`x_NacpLVeq! zBxN@K!5jgfVD|1aaTnXorrcOoMpYFD&R<<UotTs-gM0vA0J6gG5n$<4>2iQI=XkII9P{zvo{Fg>0-l84@$>Ub z0}!Ao_)8rSsrLhy0Fncd)LRdp5|LTv6$Lm3>P|T!i09RU32*b*x4}+O>7}ElGb*$c z_*ZUtz&w0nvwD8ofx-cBNH$ zf*#l8q-LsVvqUnp%>pbuTdNjRt%Df2p*_%QsW}6OD~9vFf2T8FnGSgyHne-2C%E>W zf8-C;$jx&pykk)i!3M#$i!VG+-~z7;c5qFLIi@x+{stYV`KHVEQEBRW#EP;7pZZ{a z0@d<@!JPQX#|n)eAJY_?YZ}70ABiW5_wM+#0O};*;#YVPG@aW-4uT#(j#J;CIY|Oa zyH${wz`lQP#(LB0GA95(DO7I`3^53<)=Oz($al(L5{dp)JWq}9z++jfoC8{(xB)slAUdv}dJE!O zkB;8g#OtpTH|$xL+2#Z*;aQD_V9>UnwTMIP7GK+g^WGaza_98LS1uvsE75LAf>-KN z;es#f{0>co(Sy8cVa?42-{R5GH2bG=qs-VAPIJT^Qkl{uxaY|A^7GRVr)l>ZfS z#wlqizAK%Hxg&pH=zd+XDG1~Qtsa^QbN4{v{mMNeK|JH;?VZeg_F^FtyBe=G!piRT zq^~WoCc?2h<+IC8QsHQHsK4+kMt=VL!;j!$nNSf*@$VWlS-g9)+ zY#fjnYe+kO&Ie%*HRCc_=j}3H^Lh*x1hNKt{a$SqK>wHZ`gJ}S0XGPcF#yYfgPz6l zlo|`8lh(2{KvGXV79fzOCK5*-Ln@}oAW|y@CJ#ga+Enw(3;-Gk@~KvqdaOV`45Y=X zE66yUxiT0f1}<1)7-bKM0yC^te`I6O!@NU*Y3P^w@B24~j@>R0H$WttUoL8fFhOWoVw zC+<9l+0~)*Vg&5%)I!s&(Th_t1_#LvASkQ1UB&E#wbcIdJ;fheN!!`9Kd=NDf z2E$yJ)!-0H4G#ryvRD7b<=3Lh004!b>c*)CVQtO*7+tqh84NT%;MP*JF(BhX-7lbW z0}$d*Ls>051^xhm$OWncCkmAp4lchRiLgrQ4z8#KUln|~QM(E z;h~a;)yezwz$n^Y{Q`Q*M1gX~WP^V!^;Cfwzl8vf3k9c>flPa<2n>geqpBLHF+0#7 zQV$i#KL;=82DkyOir>NRgN9(Dd(#y4*Wr5=S9z!Rb=B;&qoX!K&!Su<-^gY%2@W>W z8!-j4#)cqs@NkkQe}_)@bF|Bee)qxD*7e@CvcgY=QMUA=Wouv?XAm1g1lKl#D@xjg7+JHJcv;cngs>b=W%}-?#vP_zVPFH zJ*7rw8TgHNEw+u+%$G%}HaHx>V!RjLzCW;@`?S)_;kXyRYvY@t#A2@$D?9gLDVu>s zALF)RpzFOrTJ|l{T8(IEBiT0~e4}kM>g@ZYMGcLhZOZWrOw0SH&nU!99mX^{#nx@Z z3M-=qAP%ZrW1|f4xIZ`gHf=g3BgMNCy{&1~OBG>y>Y= zu4>-#WSM75N65MaO zBE0hYujx;O!av@A0+;B1oy!`-o=|r|Keo>-Q_nbeB4CV}Sy^3#hTT~JcUeAOC1!+K zXMGOiZJNB2h~=6)mH1fK`G7a(gEY=|EviG*Zk|1^i!-ZCPR>wLlY({_Ky>6^bR2YC z#l@)%@yRamBv?Y91iWF(TsZe;a1CXa`T5-A6on&$-P$F?*kUqzA8LsV;3Y?`z5i8@ z8%pkWrRHTorsrmu);A!h_ffRyRH_ z!g#T7)bKzW&QQihq4K{yj>K0JA8wr;^^!X7s%dYMZkjI>Mypq{R7!eI6c7(qq7rI@ z!czFXc>a0C(^uAKfAv)#rE?zd3R=EIpV$bu#icL}rMrei-}^2f1KV?wRUf(mafx89 z9)n4?tQ=OGBV0N%wP$`<_G~#mZs8y}WD(Xn4mSLb`qACv@$-zOtY>_ND)y(>`rKL^ zVvRP>zK(TF;jQOPJ14Ugg|>aP0k z|29}Z*^0EA-oX6%xKbQr)cW#hmYrXo1UDHx;A8>mWVvjIHhg$qN%lTePrJN;#jk(61#{xypV zZ@Q+QMW0gLiSn9QyUog4Y_$#^=PPyGtn;}zEb}?jZ&kO-yCnN8m&%)>JI#P_ij){h z9N1T?%5C~U{^^s-edC}xIO}DfK#7QYSs8jF>turWbDpee56e#$X?ml@cjkrKnxu8s zbbK2c(o`~ETA%$AzH79Se$sQwVScBV>zlMX*N=y@qjhoy;%w@q`V-pT`1!ML?P{&h zouZA@J5Q@0q}vN2va6QJ5zi81Ar4;!%@HLBC_C4>h3RDrUiWKrx5{m-6!1-AYmzsh zIYw7+gt@9t%-Q(Zq?!1K?hlls(D7HIOx4MWe2LO#Nz%{K(3GT{#pZ)#Le*>wbUVj% zx#-4o{?C7>v#-n7jjx-Im))pv1_wWJ1{s~~Xp3yzFR-DIw%dlirW>1g8n?fm59eNl zjCuv3Zp@d4my4_8E z^xu*$wA&*pd(}(AlLk-!WDvEPRGOMA9O+odSdMdDiJ@`6tvL{rAN$};IOcNOie^M? zxn%BTZ$ILdK+l|shcpF=+Fo*jZl zZ1F@SoIgkX&#Fo|1v6*@IhG4p$Gjblqf9bELB@H@A4RfSC{Q9WgNAf*7 zB4(*ME3NYRM|aYI&lAFe$%Fo|2<>@YU#UZdZ2R$v(%LPNoW@hnv3w~5uT;)!r#Ff< zV7KlX`FzzG2qCF*h}387M;Y<1!0+t7PcktUeTn|A*}LN)nBXAMMh(2PL5%UV3?7hS1!xd=ZH0wG_9U&vKxtW(G&^2kFf7haUxI7=UV1o6VY+pu*)*t$uvI}pi`@=S$ z@+To%qROkrc2exo+wW*2g>#|FCg*P=zSd_8DgR#f>DpnvL1{jiS4f|@5|I`=)hRI% z*_gfEVp00uQQWNqqTO6!y^8(kP*+aZm-R@I`+4ry8@G5JO$;l+5CVK>N!R1oo$!Z2 z-J0lwA2x01!NIX<1Oh!Jgp5QmvfDl39r%#c!zW@Nnpgpn1Z<@5H2?G!d!*Y z%u$vUS_8tKJ(YTTS)bqzox0&4pz#C-1RYm7&jJm1JF~Vv%a|Nsk!v=LJ*z8lpJ;T( z%NQMN5i^Ssl1SL1){WqZ;1!W!C`|CnPD-EtN=PNh+=AL}MO78(jexxFRfI3{mSh^< zvj4$l&{Du{E4MF=`*7f@q~I(coC~X(gR+6h_$-k?0JWVcCI&t6pLM-+i`(N8{#`hUzhiB1;{;OPn8*lTw26PIb zYKWPcnBFSx<)kEWvhmd4O>sdLE_~7GxeX}9bh@^p73QC%=IPJccU^K@j*5NtlRj|4 zq!8m)%TVX-hp*`#-jY?0N+<#N90aJ~B#oCAr#r;+f};)Ef^_lN*6YY-u33FFfA5UB zqd=x|n7abyXv;;lq8=j3W)&-BEI&FfyOvfbc<|E{WYnRNrj5 zULH(d9bI;hm9H91hp&~GAvh(x2A1W%ii^lQus0YtbXKNUp;sdM#VvK6cZ|!bFhO!h zTb@U?&JPsNQ+b80l=oruK{S31^nI^z<0~Eys`^8!h*g6ooVUqw$haxX^4F@?6edce z0rVk)Zbsdx4~`tYu(9Aa?nT7I?B2g<~v%Q=Ayn(YubeHLSUh9QGO+UvUfpV*V&^zI4W9Kq|CLKKKO}rqT zJWX`~|6Yx!DIcSg8Vj#BH2boRWjftCac7f{OM~ZdE~I29pp?%uG)uq?t5-F0Tx0Z!Rj} z$TWTy(#dt@0;Z{rOWo$_j(UpTi2Oq?iqTfS(sMQ&-D=@Kd@)rBd>W^R=;vg&*uT=k zLl~qEF9?hUQ18jV*Pax4bdaW)8*{@e?^^^74Tpq*w#HqBcMlqil*RZkABPElW8ac< zFDzn*@q=r98%ta0#h_Ze>A<{)A~cJ<`S=Jf51NWmPvHNq00nY@_PJXUmgUyf&h4+x z|Ia6e4ei_~^Q+yOm-CF*4|J`vENiY1F?TxN&^cgzb4QL!)PA08a9a>9J@Bfz7Wo6o z?wcGgH8-Zc_N%!QN|y9V{S`oF|yHU?AUayT>^Hn?uYp8&edzVj%)u8-`tIkG=i4&D!W@Kf2JDU#A*6iHEF z{pXKLqm~t2J59g!rKfgZSgppJ6;fA>$~roAK6~guvtZm7$Q4!W%SX1qGas56g_Jk@ ziNb6?xC9mt<2hSLVR5pS(&&os4xwooo1Xsf-(nXF?)c{bqx)B_8U*g@y6>Vo;-q7Cp1`!SD7rqzk=xG`iwh29We#3J*e}B_W z5jV&b7o4V=uYa!)E{Y`Mv;W=O|JmdLdeLlMOh|8W(nFD7Nqc(@y~TqoO`|Kr9!J>G zB_lgzNv~Jgq05o6u2(CvsCKqxRgY>rB*IQUlW3X`Q3cR5OqZXQduw7-Aw4Wc(r^S-rj^aRf3Z&YXaGjx5;v@6)@5 zIO?77${c+M~r5yDn!{6 z8wP>;YN%xuDF`P+5rkQLMns=5NbbHJ9y`2kaqPC>mS8#H)l4ozA-+BfMIrFmqy&R^*vVHo2^3%1zh2sv2C{YU;?eZRpsw zvwaS?#f;ikKvb9$pO&f11E2Ws<)wyv_^!%OPiMo!f2e(u99DKgv4d3s)xr9|fB*Y4 z1yo}uu~t8Y2kcgd&9*e+5dPuz}+|PZxLu1nxZ&upB^4} znw033t-|pzJnYB~4-2eTB*ylZ%trK<^p@-t;aazy1HRuGdBFWdrwt4-_M(F>i+r zc3pUmo_F0*Au@GB3jAjF?tr2R$tG-^QH! z+2l)#&CuFRc67&C#LK7tbobS#+Z3fVHRdL$$Rgw!!#gsM`b<5W7( zT&%aLbz@ZIcXEH-PmeN!2+a@nn+~*eyXWRiVa&hWj05cVlR0ROorqbOz&mMtj4@}xy%>H`@ML6v1wh?`P2VeA=4|>c;E3Vn*B``xzl$wC|lTpOVLH=5d`Bp0zw5g z#-bd7P3M$M4smZ39FFmtl0zPDmc!h*zg6YlnwQ(3(wo0%yZL8G#b7QiHZuN0+#1fa zr1Za!U&yO=8vS#e%ESZfSo6Q}A-T;P#mL&h#^Jtf_0?PA64sbr@?s1#2r;qy9K&lj1bTG@qfKIF?sN=y%d8)(*g0xpRA1zQ_efEs$S$+ zAnd<>PfO!AR6_m>=JzesF#5SSB4GnEr_hN>Od3lPW8{-CwCm}F}ME>v6HW#PPWK^yK~5fn`>*v-C6!S23Wg(#vn)*wAz1_W0BqT3uTn%6(3 zAOH8E-I6-$^Vy_rPB_?feQ@Iq2|7LbvSZnOx^Xj2{?qI$>`E}#hSPkb)RG2i^p{vb z)OUYK_h@D8pUMMoT*;2ws!6u=+S@AR7|n&=W4zjy%Ss37=Gf>R8wPRB_&)jFOu0M} z(x^To7s}^osjy{x7>V@%2Bh{6r&cc%8cUx=nDR;Wu2Q>m^}3nD_=ju`U6e&2t95Fkxd z*@h-xq%qKwG;Sc9#GcLmv!9x<`^N9?k6&bL@KJ|p_f#^xMzuDCJSJ(nF(O`3*)rTG zUg2ab2{7}2uE_`r9~a$qzw7FZ4iaM?dPqB^j;H5Q$M|}QF#X&!%xGATmEE&!MX8Qe;SQZ#TBf! zy{P}(zhcup1+v}$6Zl~mdlCemRU;KC@O!vF_udH?=gD=n;^Zp?ZpUvrR_-*C-WH^f zI2gEdl}4@mGV#^#h!YXA(%4sA=Hw?t=Gj;@*>iN?g(TP=CGrwRl(?&l@kSSvm~rp! zxWB#jsSzz{`k${Nk`lr}5oCRacDSi|YRoY675Z@0J@fL$k^c$d5+%oZ)SrZw!PU{V zof1iCZe@#|F~uaa1?_N@lE?ZlKsFEg=Od*lf@0G>rjM1q$-LM2{ly&Pk$_FQi{yi7 z`d_2!&cr`9T5!V5*zyZ2eGR_4gD1qn^Otp%jr*;6lVt?`3kkYQt-mYT%eAN8qh+7nyE~I5ovGv%qm?s`$*1C_S^*4&9>oUB&+my#Mua%lN1d z&~4wDMu##jt@+JALix9z_EbOhl=!thUrJ|Y9rEsGC?glzw7GlF*pD5nSD~*?A3xxz zWi*YKQWg;Sj%zQum^HnFyUiLX()k6(kAi{OerLsO?zPit$~Dc#K9fJvDXs??r`0LN+wc zMvV@t*m=|O2V$R~27@Jo>!#U`8woy>n>*OC#fm|PLOZnW{`Fo85sOP^IwSu;58h~p1RULL3m0H;0=Hqe&m5fr}&|JoBk+$`dfi)nC%F| z2Q;EgC44qKbNej6Pdlbop^Zvr%}Zu6|M4;begon5>m+UuHa^zonRN{1@2W0wG$5^^4HHe4J?g zawsix7E0qq-IK3u?k)0AVV$6~jw$OZf~Wp1UJnNgv|;Z}#O=kRia&22Dvyv2o_pB4 z=%Qj~^-%0O;FX+AsJfZu-6tv-I}xCt=E$rj=kI;ozjB?RX0R;RS75rl-vP>H6Pj^$ zx1+9+lIZnQ^5e9}JrZ8Wy^uE?zi6YqbTdtlP3`}2)hKygmKTfBmxCN2U8@D*T^C2gKByKi7P6 ziO*#B6NSovi*-Nl6-K6RNq#zSV$j-xX)1d8o7B>cijp3_p8sW^nz(xU!snkZc~$y4 z|61t#{mG^duQ1OmPRAoHx6Yp!%+qJ*QQcuG{?y!W+LlwgDRNS`pMU8&KS^h9g2(yn z6!Xk~7f$gcEp$7`zR=y{x80u$9~S593Cwf)=uU From 217187abfafa17be95d600d0df26ac8597117421 Mon Sep 17 00:00:00 2001 From: mmouchous-ledger Date: Fri, 30 Aug 2024 09:10:35 +0200 Subject: [PATCH 7/7] Remove double space --- bounty.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bounty.md b/bounty.md index 40e84f6..d84ed64 100644 --- a/bounty.md +++ b/bounty.md @@ -16,7 +16,7 @@ We are mainly interested in vulnerabilities that would eventually allow attacker #### Scopes -- Hardware attacks on the Ledger devices (i.e. hardware products) +- Hardware attacks on the Ledger devices (i.e. hardware products) - Software attacks on the firmware running on the devices - Vulnerabilities in apps available through Ledger Live (vulnerabilities in apps developed by 3rd parties should also be reported to Ledger)