From 339cf96d75ea42599a0d0456d426844e85da750a Mon Sep 17 00:00:00 2001 From: karim-en Date: Mon, 4 Dec 2023 23:21:11 +0000 Subject: [PATCH 1/7] Prover: add `verify_log_entry_in_bound` api --- contracts/near/eth-prover/src/lib.rs | 121 +++++++++++++++++++++------ 1 file changed, 95 insertions(+), 26 deletions(-) diff --git a/contracts/near/eth-prover/src/lib.rs b/contracts/near/eth-prover/src/lib.rs index ce513aff..e23bdfe4 100644 --- a/contracts/near/eth-prover/src/lib.rs +++ b/contracts/near/eth-prover/src/lib.rs @@ -132,9 +132,67 @@ impl EthProver { #[serializer(borsh)] proof: Vec>, #[serializer(borsh)] skip_bridge_call: bool, ) -> PromiseOrValue { + let min_header_height = None; + let max_header_height = None; + self.verify_log_entry_internal( + log_index, + log_entry_data, + receipt_index, + receipt_data, + header_data, + proof, + min_header_height, + max_header_height, + skip_bridge_call, + ) + } + + #[pause(except(roles(Role::UnrestrictedVerifyLogEntry, Role::DAO)))] + #[result_serializer(borsh)] + pub fn verify_log_entry_in_bound( + &self, + #[serializer(borsh)] log_index: u64, + #[serializer(borsh)] log_entry_data: Vec, + #[serializer(borsh)] receipt_index: u64, + #[serializer(borsh)] receipt_data: Vec, + #[serializer(borsh)] header_data: Vec, + #[serializer(borsh)] proof: Vec>, + #[serializer(borsh)] min_header_height: Option, + #[serializer(borsh)] max_header_height: Option, + #[serializer(borsh)] skip_bridge_call: bool, + ) -> PromiseOrValue { + self.verify_log_entry_internal( + log_index, + log_entry_data, + receipt_index, + receipt_data, + header_data, + proof, + min_header_height, + max_header_height, + skip_bridge_call, + ) + } + + fn verify_log_entry_internal( + &self, + #[serializer(borsh)] log_index: u64, + #[serializer(borsh)] log_entry_data: Vec, + #[serializer(borsh)] receipt_index: u64, + #[serializer(borsh)] receipt_data: Vec, + #[serializer(borsh)] header_data: Vec, + #[serializer(borsh)] proof: Vec>, + #[serializer(borsh)] min_header_height: Option, + #[serializer(borsh)] max_header_height: Option, + #[serializer(borsh)] skip_bridge_call: bool, + ) -> PromiseOrValue { + let header: BlockHeader = rlp::decode(header_data.as_slice()).unwrap(); + if !Self::verify_heights_range(header.number, min_header_height, max_header_height) { + return PromiseOrValue::Value(false); + } + let log_entry: LogEntry = rlp::decode(log_entry_data.as_slice()).unwrap(); let receipt: Receipt = rlp::decode(receipt_data.as_slice()).unwrap(); - let header: BlockHeader = rlp::decode(header_data.as_slice()).unwrap(); // Verify log_entry included in receipt let log_index_usize = usize::try_from(log_index).expect("Invalid log_index"); @@ -185,31 +243,8 @@ impl EthProver { #[serializer(borsh)] skip_bridge_call: bool, ) -> PromiseOrValue { let header: BlockHeader = rlp::decode(header_data.as_slice()).unwrap(); - - if let Some(min_header_height) = min_header_height { - if header.number < min_header_height { - env::log_str( - format!( - "Block height {} < Minimum header height {}", - header.number, min_header_height - ) - .as_str(), - ); - return PromiseOrValue::Value(false); - } - } - - if let Some(max_header_height) = max_header_height { - if header.number > max_header_height { - env::log_str( - format!( - "Block height {} > Maximum header height {}", - header.number, max_header_height - ) - .as_str(), - ); - return PromiseOrValue::Value(false); - } + if !Self::verify_heights_range(header.number, min_header_height, max_header_height) { + return PromiseOrValue::Value(false); } let account_key = near_keccak256(&contract_address).to_vec(); @@ -242,6 +277,40 @@ impl EthProver { .into() } + fn verify_heights_range( + header_height: u64, + min_header_height: Option, + max_header_height: Option, + ) -> bool { + if let Some(min_header_height) = min_header_height { + if header_height < min_header_height { + env::log_str( + format!( + "Block height {} < Minimum header height {}", + header_height, min_header_height + ) + .as_str(), + ); + return false; + } + } + + if let Some(max_header_height) = max_header_height { + if header_height > max_header_height { + env::log_str( + format!( + "Block height {} > Maximum header height {}", + header_height, max_header_height + ) + .as_str(), + ); + return false; + } + } + + true + } + /// Verify the proof recursively traversing through the key. /// Return the value at the end of the key, in case the proof is valid. /// From 0ff42b884339aa04ed93d3868e11aac3b68f153a Mon Sep 17 00:00:00 2001 From: karim-en Date: Mon, 4 Dec 2023 23:30:54 +0000 Subject: [PATCH 2/7] Improve naming --- contracts/near/eth-prover/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/near/eth-prover/src/lib.rs b/contracts/near/eth-prover/src/lib.rs index e23bdfe4..1b855310 100644 --- a/contracts/near/eth-prover/src/lib.rs +++ b/contracts/near/eth-prover/src/lib.rs @@ -187,7 +187,7 @@ impl EthProver { #[serializer(borsh)] skip_bridge_call: bool, ) -> PromiseOrValue { let header: BlockHeader = rlp::decode(header_data.as_slice()).unwrap(); - if !Self::verify_heights_range(header.number, min_header_height, max_header_height) { + if !Self::is_block_height_in_bound(header.number, min_header_height, max_header_height) { return PromiseOrValue::Value(false); } @@ -243,7 +243,7 @@ impl EthProver { #[serializer(borsh)] skip_bridge_call: bool, ) -> PromiseOrValue { let header: BlockHeader = rlp::decode(header_data.as_slice()).unwrap(); - if !Self::verify_heights_range(header.number, min_header_height, max_header_height) { + if !Self::is_block_height_in_bound(header.number, min_header_height, max_header_height) { return PromiseOrValue::Value(false); } @@ -277,7 +277,7 @@ impl EthProver { .into() } - fn verify_heights_range( + fn is_block_height_in_bound( header_height: u64, min_header_height: Option, max_header_height: Option, From 2456218c17fbd6ef161273cf3aa8c77c23bc0bc1 Mon Sep 17 00:00:00 2001 From: karim-en Date: Wed, 6 Dec 2023 22:08:29 +0000 Subject: [PATCH 3/7] Add DAO role to the pausable manager roles --- contracts/near/eth-prover/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/near/eth-prover/src/lib.rs b/contracts/near/eth-prover/src/lib.rs index 1b855310..463bcb5d 100644 --- a/contracts/near/eth-prover/src/lib.rs +++ b/contracts/near/eth-prover/src/lib.rs @@ -32,7 +32,7 @@ pub enum Role { #[near_bindgen] #[derive(BorshDeserialize, BorshSerialize, PanicOnDefault, Pausable, Upgradable)] #[access_control(role_type(Role))] -#[pausable(manager_roles(Role::PauseManager))] +#[pausable(manager_roles(Role::PauseManager, Role::DAO))] #[upgradable(access_control_roles( code_stagers(Role::UpgradableCodeStager, Role::DAO), code_deployers(Role::UpgradableCodeDeployer, Role::DAO), From 0db8bc7465bbd91f450ead18743b60454e0549de Mon Sep 17 00:00:00 2001 From: karim-en Date: Wed, 6 Dec 2023 22:36:34 +0000 Subject: [PATCH 4/7] Update prover build --- contracts/near/res/eth_prover.wasm | Bin 363452 -> 365909 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contracts/near/res/eth_prover.wasm b/contracts/near/res/eth_prover.wasm index 285ba6a7dea028b51912ef62d6c021389aa54bfd..7095c3212ac24e87ccb824d78446ec6895ed4f5b 100755 GIT binary patch delta 56451 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 UnH5$3$VAv-xK(fy;CjOS56jLo(*OVf From b258873877f1837bf9296e662fc01f233882561f Mon Sep 17 00:00:00 2001 From: karim-en Date: Wed, 6 Dec 2023 23:15:29 +0000 Subject: [PATCH 5/7] Update prover version --- contracts/near/eth-prover/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/near/eth-prover/Cargo.toml b/contracts/near/eth-prover/Cargo.toml index 37305ce7..535db19d 100644 --- a/contracts/near/eth-prover/Cargo.toml +++ b/contracts/near/eth-prover/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "eth-prover" -version = "0.2.0" +version = "0.3.0" authors = ["Near Inc "] edition = "2021" From 0f8cd216ea3d2a62f6c8ce9076e62f815b78f2dc Mon Sep 17 00:00:00 2001 From: karim-en Date: Wed, 6 Dec 2023 23:58:13 +0000 Subject: [PATCH 6/7] Update build --- contracts/near/Cargo.lock | 2 +- contracts/near/res/eth_prover.wasm | Bin 365909 -> 365909 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/near/Cargo.lock b/contracts/near/Cargo.lock index 93f337cb..d4c590e8 100644 --- a/contracts/near/Cargo.lock +++ b/contracts/near/Cargo.lock @@ -1101,7 +1101,7 @@ dependencies = [ [[package]] name = "eth-prover" -version = "0.2.0" +version = "0.3.0" dependencies = [ "borsh", "eth-types", diff --git a/contracts/near/res/eth_prover.wasm b/contracts/near/res/eth_prover.wasm index 7095c3212ac24e87ccb824d78446ec6895ed4f5b..baa4b965e47e1fc0ba955e31b2500ab32cd152d6 100755 GIT binary patch delta 8983 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 N5TG9IWElU>{{Vz;u=fA} delta 9143 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 fZ4C^46ny~WXo` Date: Thu, 7 Dec 2023 00:19:01 +0000 Subject: [PATCH 7/7] Bump prover version --- contracts/near/Cargo.lock | 2 +- contracts/near/eth-prover/Cargo.toml | 2 +- contracts/near/res/eth_prover.wasm | Bin 365909 -> 365909 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/near/Cargo.lock b/contracts/near/Cargo.lock index d4c590e8..822ae64e 100644 --- a/contracts/near/Cargo.lock +++ b/contracts/near/Cargo.lock @@ -1101,7 +1101,7 @@ dependencies = [ [[package]] name = "eth-prover" -version = "0.3.0" +version = "2.0.0" dependencies = [ "borsh", "eth-types", diff --git a/contracts/near/eth-prover/Cargo.toml b/contracts/near/eth-prover/Cargo.toml index 535db19d..6bc071dc 100644 --- a/contracts/near/eth-prover/Cargo.toml +++ b/contracts/near/eth-prover/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "eth-prover" -version = "0.3.0" +version = "2.0.0" authors = ["Near Inc "] edition = "2021" diff --git a/contracts/near/res/eth_prover.wasm b/contracts/near/res/eth_prover.wasm index baa4b965e47e1fc0ba955e31b2500ab32cd152d6..346135094e65e718f421e6d4447e4deecbdce265 100755 GIT binary patch delta 10337 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 delta 10223 zcmcIK2Ut{Bv&^|mZ%bJ^?4n>p5ClcBu7Vv~Ofh!RBmx%v?G+HaAaI1yNDv`WEGW9- zwSib;M^vn+U`Iu<#_pSYR}zyy@8x~pdq1%E+?g|H&YU^Z&RNRVJCv<=$UkA|Bp4Xj z+S=L)wzdNO7|@@Az(5fAEyIqE281BgUw?R8BVQws$P_%rNM%N2rP0KPCmXd<(7ORI zHCkz}a57LhNxuf}9%{APR^rZMjXk{VoTVS4*K?KtPiK2)d(S%3laNkM8ouASSwG?{ zQR#mTBtXV|Le%2rR{v0t=z;*w3UCGhh5QFhEv<-sBIjUa#|N8uHd8p+3bc4yu(Pc* zINQ3TuTQ&3?7aHh*cc z4@%5#vI2`emfK8=Ew`D+L6-R;lhx)cOjel}u*3xActaO2*rx00!T<_%eOxaC{D8v(1y`QxaaHp$USegS zye75gDtgs=MJi8y!d{N&$JPCu_ek@3g1N>(1Ij`PFt?B>4Y-e{IoGM(tZWISzTHxv zvQRfrlLxR?XI3Xk!P_-$$Ug)ZKmw0x9tx-V_@MUeV=Uhmv;g9Hn`WWBra=f~@S5i5 z_{WAJJj~A~HTWR6^0ARd!W7-W zQ2zT_i9y^XiYI2B*L)}9x2P+Au0VQF_a#Pj?P9(;R870(P+!9HHu(H{0lPu`W_ zLiw$NdT(}6@r9wpgWiLvJwVEPOWHR5+VTEk9x#4y6BiOQ1N7ad*UDF#G= zBcFA{h$nV(fK2{#r(phdm=&+;6h^HrZ{N8O-xy}YvpYNR@-Y_tdRQ`S`h1WFHwz2r zew}T3#&8QhF)WxRB=AjP-Z?uuJFvC!_%TXw)Rhi$68P5Pr{E_Z7old)=kV-^LGV-R zh#2;(fMcHus?=eHJT}7J=!ik2mKanF8wy!mJ3K}gGeT*^+mGpF!nAIYWUz;M(wLrn z%2+>0#3M7no1YjP44f;*g|MY_d7l(}wighJ6e_H+1_jTEbk{jV`;&`CehJ6rvEET_ zX zGagh%PSS#Q@fDLN!!2$zWiH&-;S^)w-^|qTqN$xNb|jE27UacDnagdaby0kTPeW0e z0ESS+`_Je^L$hX#XLsY!p|Rk>o6f99_*GNYe9BDQzjBB)vKXT^P*(Al(=~9Pe>=Uz zcEexATZ}M=x$54`d;qXhcW3q&0;zXtl8%o6O}lGeuxgK_PK{9m);i3RX^gb53?fN-qxnN1mwz{Z4Xopq3r4^(K7PSa_?4es z&>s%#d>7tRu)}dYIjNCOo8+qCn&o}@rqmRkib=d}T3@bSmcrZdBpIKamcoSZUmjx%)~DPh0Wl$;y6S zpc|V7zz44x3>CVp|F}KBJ`}}#px*=$}lM+ku zIy*RwSkDvJtF1Rk zSwJ!v$&{73y4~w%Fm9Ir6Tg<GT0X9hCF4KmOJ zWA+Fx7}7zo(K&8?0=)IMCUB5PZ);@kN`a{XGpJ)gPH49+fM;&Y<9iEyxOG8&zP>=k zyBD7us;$t`=ll4|g>rEO*!w z0@=LJp7U^oHz@Rk0^Y6A6?W*pEA$0;%a;`e^WJ-W_{*Y=JZy)JPPca&@Z@!Yx}p2N z0p3&$;8pvpjpUV^WAXPwQ=Qep^JeJtT=0W%99jg<{KKgrKD6W^l=AS?=P8#G(w=9P zhFMf37n7|jly8^B#&S*RK;s%cf*(CIknKs~Uz{0hT%ID)F#fP~B&$j0_0R5xCA{?9 zB!2o_H1B!NoOdp>=cCVkBfZN#c6>ltGH-u=5r0tjC5GnHmS+`%F~4*EFy+s@3)Pe& zS6*yR?`JN43n#emr7s8*cc~>|c3&FS@Pss>c3B!dWx)&#%$-O84Uq1&8s+hYu_TXy zRuRG*Uv}X`E>D4Y%-abb{N?5I+_K!5pS==7tgOn%!U^51@(3e-bfP(bc*B>UxU187 z-=X04;8rgv=dErB>zr@80>5`Jk-OfV%0q5j^PIbr_}<&!@!9uA@t|9Ykj4i+@JfB$ ziBe8+jSqLbAFdn!I2>RvfpKt($2@GvqneN2@N5vj{npcCwG_?kPz}}! zZh%yaHD~$Mn!5nZR%Y?jZ&fe`mHPx0@Aa`a@BYD*Z++)O8+q;BW`dT%WuEjtkY9bL z3_06(?TsVsLEos1e>}m-e37Kd~{I*(w z2H#mhBRoS7_j?dYKGK{i%mYZL8mYcLE16dvri@L%pRJ*z={Xq|lyO*N4TI6&8q{WG zpKu@NV1H|9k#0jLh~Lo527)nH33YIm4Vd5=CG@fTO*U4Ab^%0c3^hg?LHPz#Y@oAD zV&?w`vRnyX*pmjsYm8A6qY7u32J>-%3-m)1Cve9TF5nM~#rH1Y1h5jXJ3w=4wm3r* z40D9>Fc;%&p*JkRd>3%TN47vEDGqglgRlZ0+0m5I&M*OIxWQ!7@N+ll3rn!GJ5epc zcy~BTThYS27)0DFKZxz)Zf+q-)@7LVcrwZi)(EMyVbuEY#3ob2ZpA(!8e{ zx)DLN8ir!Oy5RjukA|`yjWs4z-@HL}U2s*slof2KF>VFh$v3DAl;?3u9cYLab-_eZ zaV`B-PjI#WjDGMZ@~db;q7Phg}m(L0^SR3l(T9cWA&JgqMH{?mlGt`2y6 z{@pB+pyr-rW~{yPARetthHc?R#&W+dJ&x1`Yi#2Mb~xS(T(PUvk>~{n@VYk)KsRsl zjMw$Z3(n!d`Vft+>p>wD;+uNlfw${J8yrv{EX5`b=q!tS8`6&YH-x2P_eL}Vd-_5I zDjP#HRQZzU<@pe}#h1Xa#&8<%_`+};;|KMyi}YCL2a(vm33R{@e)NcMLPnU3@0*Z* zc3^#fD8p!X!2x>)kk8u&z({=O4-R-DfDASv5b9!75RDHHB(O^m)!Xu$(3CpX22w|I zQwV0q641|@LVQJ27>zaU6rT7ph;-3732FmkNYi^#%a7=T- z8NY1>)}~}qg4QHbS&2nm;2kmA-Ieyju^9xgEwSj?9Go$t87#(?%}LZ-Vo7sw1lT6t z4JJRpDcxWYrQh@2APDY==G|cmgE^QGPEyBXK{%x2+0LZuV}ogImH1&W_$u&R2Lc|5 zCLLi2z#aS{6b@o_Z^BiJo_)a75V4tHg|Fubmi$4OwUH#B@-a?p2~|WrA_T7B{2wR; zK0$RPWt!S+2PzZW*mp($D2l%YBVim)8B0!cXbgcTzk?JE-vObbPXwvh;WznMp`c@h zmY7S29A%_33x65`t*rHZ(vd@|AXnqv5ird-OTJtHEFA^mncQgeR9FR*dF3(}95oI6Fk(7I4+>rlm_mA(C{t*5ESgEtT$XgXF_+D7I6j_8!QtpEC{Zi~VA$srv%^QTVFI+3 zP6`gVc{Vh_;jvH&KZ>DoFp$AoTs?=R$i>rhU_V(SPk=`tY8HYDFnvCS=T$4f7>k#| zc`<2~glx75;zY*b74+NqF=tLSgo{=w0{E;TMM0Ezd(@O*5XXt>{l*A6? zfE#&RMGkrPyj*Y)>;DY(0I#p1Fcg_fiLYNSG{rj9gD=)VcdW_*3o+ssm;q?>Gc+a7 zsaOLl?6DRSC~cLlg=S*u7Ki~>7>CyDp|2i7%k|JtOxIC?1N%h70#Ya(6t8Ze&>)s? zfG{RT6_A-?^cEN?dTxT#Aa)ml0S^8iLNR3r_)r;CxC46g9l8G4W+#k=c#%r(nV>Jd zoiTJbl!!rvMCjyhz}m~_B(gTDKQBsqP3WauMhZI3Sx=2*>54J`k?1f2S zoc+ni+V6uC*li!_rlc4QSxzi2-v_s#0%z`rc&JG~08QWx`X2xn$_w2OP@Zq`E0n-( zG&w>6DHo%UP~a`Y%p+t(Hx3Z*yO@0tdQs2QgA|qSiggcx1wa-0ABH%>ZaoZ5EN@5= zfy5T5daZ>uJV^AL+;mczbv^|c2 z1$rNcFet{T<3v$>6k1V;dUupEpYw6*Y;=r#}o!MMSvh1eJ-|CB*8t6NK20 z+fNdrzl5lJimbd^?0X7~0dJfj%$O1gLaS4tGV37Kb`-UgHMp;YQeriForarOzmzP+ zxRj#)ajt&ngyT!e;nw1TQu2ytXMjTU_ z=V(ERs5?g+n}h*nWOT9T$;jeScOGV8=Q6M|n(RBS56h&8ti@*Hj@}{uR^fla)~83w{@}m zNqX~S6riMwTd91_#u3+G17wTJ>tsCei|A4zU2hj*+e%V$$_-LXW+kkJ-4bFbuDL;Z z@+=;{0UwFx@J+ZvJDh!s63t;`w;_#=0LyQ~05Qv&wE;?&*OcrBaNjSPDD6Jo+5BKB zzcdu`p*NYYi83A|Y}rCMAy(V62+7?0*t4&w$+c%6rAEa{#lGgu3?LuJRZ~fxY{3q~ zA#qSE)}4taq09~FzL0vp5T}GO6M&;)Tqou(P&$y1c)BkOr@F}I5!jQcy_&Kg;mH4v z0+?w1fkHgXk*}oeu+2xfM6B}LvF3kVLb-)m0$oBCOP5f%S&9Q(F1Y|5{0D8f<1o{Y@N985yk2M#I#7$juiLQW&fe|Y}IRf^-D_N zf3qmskJWk#<=g+3;(yf1R0q}sV2!xSkVS)|dU4~t{Wv5Jh+v8T8{z)Joc{B>w*3z)OsD)= z>BBncjnNs~G-mFUgX*>Q0RnS8JuZBp49@Sp<*gKNZmvC4aMJZ!RB=f-V zC<^z*k<1;NL=pHllE5QT6yNq^Y!qwy8DgJ=u>bQY6EbNT`#OqEf(&t7G_zumFU}sr z>`bs?5(}dcU2igLgQ=644<*W?NvzKHIrNn!KApkZ!!6u6nbpOwX0p@NxnT+$A$E?H zdab9Dq1_YvPG!GE@VsK zDsEcHO6a;~)*{l&_)O-7#fvCeJVUR=Bw+=1U(A+Mmi0_z8Z16X`gB{uR#3j(zJx{U z@d0Mnr3!?yo>qeaE>yjbO=M9}iJMbcKWvi3M!`#5k;G=SSSFWARIO7yNr zx=dD;&KALWtXj^xVG*)my6$?3?5Q3V>liQBlG1UFR;`KDF56NZYoJ^z#;#yl3?8Cq z2BmX(ADl2clQoj|L4}nW>>f>awVXNQ&7asfr+1RBN!6r7N#T*&-?kDTZ2+#$U_OTW zRJk&f?WS7j>s7R#rI@~o{i@$74bIA938b^tx$F!4YBg`W%SBk`Slyv84zFq=x!g_Xy_=Rj> z*<^)ybtBsVHMlU3Er1fV-NZ)2NsQgZ)FfNhCfdphRBxuKpWvQ+)*f$dW_@c>)e^LUq74cEn=QC-b2Dg9J1zVB=xFIHiDDfJOReJ!0~9Rs>Y<_1eLPli|PH$$~IL zWZr1LlO=w_`4nDzFL;CiUY%P$T<({IvwipkeVlUwZ z7M8GO1pQ(9c$&2!g`Ymn=E4QZJ%(UGDQo#BnxHeZ7;=v@v^U9EbA~eHV(fF4!bT4E zdBEIo*;&>T9@j>aK6l8T)#q3&QPqZ%#T18R<{QfX#Qdw;xzFmmTU_{4w;zfZ73G1%?G4EadyfziJ3_@{fg*>msg-&(y$}%ed!ou;! zA1uoBEN0*QgT?!swW2Snl{xCR%wqLzD(0_#wwg!!?P!J*?~*6H#{+lep^~E0?@8qu z_P(c&>J5+(qv_ss*nK&w%X`tjipsr1m{-L-YPaNJ6`Me2{1>VL`075Tkbfif!qE>X zFw1u1iQOJBD`Wpi=|1WLE__HyWC>P3Bvbr|yQ<09mWUUtSt&rGxc)J7kWLo+YS`Cw zAL0Cj@>HG}{)7!@kc#=wD0U`__nt{-mU8Uzg3@cbnEHbL?}rY|-CnWYR%>PdRA>yf z)-lSpnEQ%CR|+P-CUfI>{WWPJ1&!aZbo#m^^9|cXP54{Z&hoMpf_)7P^rKe1Wzi}< zCnGtWn$~uSF7Kp*>k4|mXK$#{e4s46Of3DtrVuu*oA56RWLpHmF0E9!N@vH-AY{>Y z_h!OzIJv0YA>3q76L65B;Ev_x%mtSj3ObUV zoakHQSH)7S(z_Ct7zy(!n0{?6tR%O3W-Lr6Xsn40nVZVcd{ZG2Hi;@Tp`5YAIjFT1 z>Z6OLaD@iEv=pMK8Ez#6Qj=~a%p#SltcCBPQk-cmcuDa(TPZvxrfD`pCP6{A!ZXUX z4eSJ86Zsoe?WPZMEw00HxQ%o4;DyZdxX8uN3LEPx7X!F)aVPIe&eH`iIL?07; z<6tbX)?VNyo*85~C-}br`G9Tc