From a28e4c667667a2954d55fe1b1f537e18016dbb7a Mon Sep 17 00:00:00 2001 From: Zhihua Lai Date: Wed, 7 Jan 2026 10:52:18 +0000 Subject: [PATCH 1/2] Rot47 --- README.md | 4 +++- rot47/Makefile | 30 ++++++++++++++++++++++++++ rot47/main.cpp | 32 ++++++++++++++++++++++++++++ rot47/tests.sh | 12 +++++++++++ virtual-interface/virtual-interface | Bin 101192 -> 0 bytes 5 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 rot47/Makefile create mode 100644 rot47/main.cpp create mode 100755 rot47/tests.sh delete mode 100755 virtual-interface/virtual-interface diff --git a/README.md b/README.md index 8acd9b0..2cdcc8a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This repository is intended as: * A interview‑prep playground * A reference for **concurrency, synchronization, low‑level and modern C++ techniques** * A growing set of **self‑contained, buildable examples** -* A collection of more useful examples than leetcode puzzles. +* A collection of more useful examples (and CLI tools) than leetcode puzzles. Examples include (and will expand to): @@ -28,6 +28,8 @@ Examples include (and will expand to): * Performance‑oriented C++ idioms * Algorithms * [integer-factorization](./integer-factorization/) + * Encoding + * [rot47](./rot47/) * OOP * [virtual-interface](./virtual-interface/) diff --git a/rot47/Makefile b/rot47/Makefile new file mode 100644 index 0000000..172da2f --- /dev/null +++ b/rot47/Makefile @@ -0,0 +1,30 @@ +# pull in shared compiler settings +include ../common.mk + +# per-example flags +# CXXFLAGS += -pthread + +## get it from the folder name +TARGET := $(notdir $(CURDIR)) +SRCS := $(wildcard *.cpp) +OBJS := $(SRCS:.cpp=.o) + +all: $(TARGET) + +$(TARGET): $(OBJS) + $(CXX) $(CXXFLAGS) -o $@ $^ + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ + +run: $(TARGET) + ./$(TARGET) $(ARGS) + +clean: + rm -f $(OBJS) $(TARGET) + +# Delegates to top-level Makefile +check-format: + $(MAKE) -f ../Makefile check-format DIR=$(CURDIR) + +.PHONY: all clean run check-format diff --git a/rot47/main.cpp b/rot47/main.cpp new file mode 100644 index 0000000..69788b9 --- /dev/null +++ b/rot47/main.cpp @@ -0,0 +1,32 @@ +#include +#include +#include +#include + +[[nodiscard]] +std::string rot47(std::string_view input) { + auto transform = [](char c) { + return (c >= 33 && c <= 126) + ? static_cast(33 + ((c - 33 + 47) % 94)) + : c; + }; + + std::string output; + output.reserve(input.size()); + + for (char c : input | std::views::transform(transform)) { + output.push_back(c); + } + + return output; +} + +int main(int argc, char* argv[]) { + for (int i = 1; i < argc; ++i) { + std::cout << rot47(argv[i]); + + if (i + 1 < argc) { + std::cout << ' '; + } + } +} diff --git a/rot47/tests.sh b/rot47/tests.sh new file mode 100755 index 0000000..337fb84 --- /dev/null +++ b/rot47/tests.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -ex + +./rot47 + +helloworld=$(./rot47 'w6==@ (@C=5P') + +if [ "$helloworld" != "Hello World!" ]; then + echo "Test failed: expected 'Hello World!' but got '$helloworld'" + exit 1 +fi diff --git a/virtual-interface/virtual-interface b/virtual-interface/virtual-interface deleted file mode 100755 index 67098f09dd214e5ac9b41e38871745b1aa88d177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101192 zcmeFacYGDa{x?3mr?bf^frLN;2@pB~Qs^zA2I);flmMZZfFuFL0*a`}MG>(JqF%fA zii#Z(L=-#fwOp^)dc6h_MNq-Y@BRMF?w-Q|e&6Tyyq>?Fhm+ToPo0_1%+7vhcV@GE zz|euFVJPS4QN0zR&zfpXiA~tEBFT2FFXt0j=i>HN3)&Y7o%PB^VD}9gK2D)qb`WQ) zQ|1Z{JNihgXVb}l;SB``UhVbb;_GHs{FZm~l52WxePsxFSZ~UZhd=7GyWE8vBS#+E zV})_8Q{XF4p(k*P`nNoVp2?@cbNuEaB>x^hg?^|xDSx|D;6I0+rpd|yUxpA3knl=3N6Q!2}6SI(}6Ldh?hzHk9F&RZ~LT31zm_Oy8;7teQSD6C>` z`TQyK<}IiwFLbaA7FN$jO{Pt+o?cPS3W2AlYI^yU8K_A4qUqH&iz=b1a*3EKDVjbtt zu9`okx?)y&#jNS5$(PI{jg~`tz zd*<+hj^*VQOP5ZWI(uVnSY<<+wm zEm%@Mb;`8ziYZmqi=kjlbz#Bm1y#Vos+iXoO<8ol^cjfdGnXzcUx?-{sGKrycJ=w? zi#v)0H7%&BUNn8me5c|S&|gq7Ys#YX>P1s#S62b`s9=7`nCeayY#+o6ieQ!{v!_khLuddi3+7HU=G9cq5@<|y zam9if46bpNOJ-M2D<3_*s%Ab$q&-Y3X3Z_1F=aLiVY@2q(L8_3Yz!EfbxQe+*=*Lb z=?Y{HPu{?~5~!-4R?)UC!OjHdySbSaP(!GI_zI05)URK8QTvW+(9pqs`;`~AFLrZ9 z@oZuHP8vOaJeZ5y7Zn}{78D!@c2oVvk1y>zxV)f!Q6d4Crl}13&xB9ole}Nz0Q?pM zbT8tN3Ls{V{B;lv+${<5M<@d~PiHE2dbv0oAGHt)l@zV-8A>x;tgx}Fj<69-+>)QMslkh8S{*om8O*UMX zgg?8T);}@{{~sGaJ_&!&#?MN^Z?WNpN%##m|I#G$5HiuWWyEa}qvi zsgwF zZ)5YXNWwdMqIUgxyR(-zQX!`u#0Lp}tf8y!qIe4evlJOso(1P?q9p96f&l2#C zjfk&Jz&9kq{vAxfJ8M0Xjwaw6Im}2m+wEn2>L=iL*m(Nmxe0j3A0R#_0pHQqPa9B| z^Xr;`*E5NxlqBHoOH>GD33$inAYo(zo@G0~@dv367V-A;GHo-^5z75EP?;N1bp2D{FVfKdIJ8b z1bjvUen$d6GXcLR0pB12zc&G&m4H8;J#B&07C3Ez(-t^wfzuW^ZGqDkIBkK`7C3Ez z(-t^wf&UjRa5&QV*Rqx02Fup?KJTDZ*{U7Y=CQqHD_;!m5_25u^lN*ijy3-saU`ci zk$)B``@T4K?AVNT0`mdNzIWm z`H*JcqBzV4OZ%qAVLmX~H#!dULCLKl3Uts-lM*B$4 zWdLyjtnGCzl$WjbUB#r^(du+u8r#9dOCxmbvq;Vg^6j!y@J|u`PG>V|{b$+ggJnCv z>r=M#sHe<$sqF1PtLs6*T3bQz*k`(59eG|qD|!t^|Erp|I+U)w)(5;l(IFw zW&o)D=O4$8)lS1`e96}Ye8#zub<3yxz9k?sQ+ihEnWf`O$Br9QcFDINLeJ2(^YWrY zSI^4}uI%+W>Zc;B?nFFz?ZzEUULK$xyXx^$H1-c%B7;{C2qOC!lpz}(w)*?QJHPjo zzI=sRacuby_#x{>);MGwLN_a01YWJ0)TD4&! zR=-fT^Bd2KXGA=*sx4-pvbCKqXvwlVmaSbHEL;8SaU3yntm!m3g&Ygf#tT*?vm9o{ zUhcO736x#1BbiQPmaQSa-;T0X$Epjw?cC>C@w8pR zdq6q{^xBn^(FV5tr4=L{)fG8j&n3E`6)dF9@rBgPFI#hx0%|6T@_s9h)7)=!98}Nq ziD~WUzrnJd%T~W!djz@KLyQhETKYSpDnw&C$o6S@^Zh;s6YEd0iMz zVz$UCZe7v+vhaj{K}C-5muq!Fn@`p+7oEIc=IVY)=!m03*H-O#xqqI#D0qf<84TQC zaW}&(Qq&q<^!H!UMLpO>W09*J!RQP|0~qaP^co`e(=Gzr89i-d9znVi%8fOMR=)(D zpW*_n{Yc2WpW#gz#l6PjP(VMRhjOl}_1J^Brp@3ry^n8qO%9uO+yz$?I~LuaK6Lew z+EQq!?J3${t}T}IdmG-Jpfl48rj@nTvsz88 zwh%;4x@D_(@4E}bw00*LYf~r^Ks0pq*R|gRGj#Q53C5^tK6s5c4~FP?ydi4Rx6^5X z(6Nyn_oq_$3#$7!qSY_$8_NNTPHPWv@XD8hD=*CRnvqpcb2^l(;`qV(5nIBm;$$<` z3qm~U74Z;AGH5x`9k23ctx_hx_Q}LcPNlMD0n`ochWk%sRV8f1slGH4lRFCT8~SF! zx+a-7vT6~ypMqLdcFBvJd?%h;dQR!NrISj_ch&AW0?X_|#OvT$0#7h{#Kzo@)b5zF zwMo+=XNtszRX3_#b{u=+)w=&J$B12$qw zczg-Cbqk~IiM__qlaIEi#KNJHh?LAaS5r#1~*faJP` z7s}nN2GWg4r6#))VwSaCoQ+LC+O5*HC0=fompgdz$E9xWiU>wI{X1=e|4S_3?3e14 zTU3}^klQV{XHDhY$^}a*d*>E+O+s`o&h2^}N4L&Nh=M}MbOuk=tSJkpS9LGy^go%Y z6g%v47tGKCx&IUQiS+LO8#0MnI*nmXmFnDY_M!^x_3Snpn=q$T&P29N`=R~1C~l@} zU$JnZfSpz4bRE+1Nbf_s z5Gj9r#K51iY_u|#MvbhLKyV#s#B-lbEy{-Tj*a~R&V(utp%@{GI!>mJaCBfe^NfhK zB)CHLY1pkzQC?GEMgAP5W#1n=CW1ubN4?buCBTog>p(nt{(^7_E>U+P7KNjnVmBjX zqFu60qbwX^=|Ad%5v;75;WT2Y1riqxX9im00xGm*O-07nOA%IhI7|?`-WTn#a9~c zc)7nc+;wGOPFuXR|BZWGSv+KAS_{V{7 zg<=%&<-qfI?3j`Hvf;ZrtnTpoo(roN19y9Ws-v!sI>r#L)6r=QoVLJe3!JvVX$zdT zz-bHopSOT>-oQCuP`8~f!#O|Tl<4dmcg_ho=K`E_01ltCkKEbs@9gh)_VYV@&OUwz zcJ}W(`_>)2vrpf_J1*xzKD5Bkfq6zF5l-Q|NcCa;em~OG_3n*~-z_%GSDyUQ*XA#Ak2PVNO=XG$9zSDx)HV$LYyJW{arfFE`wX483Bh6OBHD!iW3wbJ_-Dx-4HzG640Uei%uWy5scNF+7q!z|JMCzv zC3ZT}PAA*xLOa#c|Ld`HjwM;bImhDkLy67coMUm$n|Wdsm=i&E_dLA|Ld=imI9|1Ss(qVx}@%X`tym2$*dIP|@(2m^93G8p0!k z@KDONw_!syyMWw<){{_b|DyFi0?&`eM=+0X2*i&V!6T?EAAgKso%cb+!x}5!ji}Ne zM(`dyTCMw`F{dAZ2BKSo`w7u7;PcJkMBE?ug7m&aR{ji_ zu)P_)28CaOYJ3OEkEH7MJc5RFG*hDJE4GKXkv?AXf;dQj~Zz^-v9o~97i z0(~=R54v<2Tak?zK_g8+6|2Zn0HaK~PJ)rkP}k8Kh}Ivg){-OG9O~*7q16@UyBHSD z2`j@l9lbx@^z;MZ1KL6`Oq8fvkYdg-VLG6i0N>7`+1BFm4B6JCP!CzLqHA0yDS-T!Vof=TJNx5-s%wbDr2G0lN zn;>NzK}~xHx8pke2FRZrf=BwVEvcUVK_BYReouux8X<_Rhkc?4eAex#o$;sGw(Lo9OLdc+(G$UK+PMTkOAq6JSG_d`7Jv_U^M=ItrMoQ=GHv1saFz5hWyylVyc z!}~8(*L$@9KY00Q-g}JzhrCrNz`IU>!``1!N$<4+{N%lgz8i7*YH6{}E4;%FfN_pR?B43o>aIvaqq4F58y z33C2!@Ab{DtX4rztyVCw0minB;CUchW?&OW1(4Tpz-)sN%vTt_&*)1=KQJ=TS!N7T z9qOyY=|7dZR2Ef-&P*zCbvVac2g*jLvH{t85UI;f~`fz?{A>+LP3*q4V^*bZqM4SGiHlT z(xZdUd53&5T&eSc3J!^l*SV-_qA%%-gWem(WUv>W38eNFV0^Gk5rF;~qjB9#4nBvc z8>s{9odsZ4@T&-bGO6{#;9D4$se=Wm4o*VPrk-IvJP1B$upO+OIxKA~8oDBQ?`#0W zBggtHb!jj*3BZWpIncH;Sj)zZip&FWWpFALOh|ne3f2XW4g)Z;{$fyW3jWaoz&Q>0 zwTR8Zvq4WiSE_SgaPmX|lR_LATY}euo?2d~4S=VDui>3v>SU?gj$j7tnmRSO3JfnQ z@0~DQI3QipL|^Lu|3c;x1D{P%(L%%O)dL+KDY4jrp2%7Y0~_fzHh!HoR_NDS3ng7| z-6839)^n0>us)IWdh1t7Z?H08Cr{)?tBa&JS;Hm0*_tTnE!HKH-fG<|>2207NjF*t zB;90%dQpC}l`H9;R;i?SSyLtbt97xY_gHsHdcUo$oN&1AfOVTH;Pb7WH`bE;Gt(W>x&okD?l0IwwF6lNayM*}Xte%o? zw`NNEymhIhJFN#K-DSNY>5J9@Nq1WfN-6h})mze+tx1yZv1%lJ#kxV#SFI-`ea(7b z($}q@C4Iw6?MwMLt=4v0Ch1$&Ogp_?(!JK*cKV{EZ(Cp5so9V6?^sRjbRg1J5zENv zfT7wdl44|xmQ1RVaj|5wj4<2MD$>{p)7Y&dO^h(D+$xf1glXPZkyb`ni?=qyTD*-B zrg%fndeLH|A?K4pp=p@kx70};)Oa2;ek--C$zseU8N(8g%0C-kHZ+aM4aoWt3Yao6jNE;opYWgC^QrfJPug}9u57;MN z%1Yx83e8FV2)#)ydqH}ifHIot-1^Tvvrw8moQdpu*sSX^*bmfIZ5<$>)X%{Ci z34AjFtRS^_$>Y#0Tl#{)KdZ3T1!yQl=sxC7Em@?At zjE=?>_AUC*H~@yjWD?`7G6qrolYxy>mFmH2hR`-mQ=uU~46n3t(cZvaZb(W0_4UPQ z5#_oBF!XIm#w(0l(bTk2!Su7S-hqTctZFzX4}+$w(dfS@{YoRf5$-EfLG`2^Zb*;1 zY*SO*%pOa99Qp2-mm&XnWVLZuHZnhCbf1Nutv4+)XaYuFy?&n5LCrIf+2u*^-Uf4E zdjC|_z0M$|GCHJ|5fQsKmEJ&JtF|cKjCkqAH9Uk0n^AAh0O(9DAG=U(9gTYBy>_nV z;cC+5`K+bQbNyKGj4OrC!>IR(nTDTDgw`yt^(%{TfcF8YL2YNCM%~QRc~`;>$hgH@ zFR%R&l$ANk=vxQdVvP1na4Ri00t@Ew76Qs38h$7u)vz06GshTBJ_QgWasKr4)Ewg{ z)Scb;DA~!W+2_xzR+Ywc%`}m2ZUQmoOxy%B7aM`=abMzK`H}Qd6qYF02V4plxS6Ys zz_gio&H@ZwUZJa$#dyS+d7TmXZV(HuUE|U~TW2ltQw9hUh@CI(L#B3+iL=>kQ_Q$l8 zIo4>xriO@5DJA9=BQWj)&A6Y;V&{}MF;`^1VFc1~dC;&HdPekUWowM-3udUycZ|S& zJ+*8KA82O2Zv?(wsu5is303ctV(n-tPlHa@WK_n}ptE()K&D-+ok$yA(g7DiCnGxz z6My&RXhXxo)b3ZK4p|*7PxeZyQyG}EFSBMzdX@Euq-(9L!Njk#I!k)3HB{2|R)wV3 zS<587-ukPgH(5I+y~X-a(v8-Sl5Vo1XHd`WR!2$iutrJxS8I`^_ga@rdcSp@qz_nk zOZuR-ThfQDeUkpoO2t6-WIt@>NxH@AFX@jNw@Q6~$#|DHqU>KY$_4*>#s!l8k@1nF ze`c(g^jO9dNLytqBjYC`8cnt6QFCI zJ&opA^(CEawU>0BHA2$))&fb-v(`wu$l4-lwe_~7HP#_X7h84Vm3ta3wc1E}zEvve z#nv!MS6bzgUS`!uy2@H7=@r(Ul3r;&E$JHTQ%Toa`z5``GDavhZw{uI=s2U))403! z0R~y-(n^f7oUV1QNa3ShLOETV4};B&6~LH{Af(h<<9cBmRwr}OEb@=2^Dj^{k3hAN zGb&{dfU6DOUUEjY{~;X@Jt^B1vc}7}QZbKHeXtX57&)VcY(ieCYm9~S7pVcAtjh8; z3st|-#)8M%VzILyq^7qNrs9e1LcpqLaUQhvoZK7=d+x(p!@KaJ`II-*!uK-dk^S;@ z#`eB&it$^jMy{ER=UWgjesLN!-EB1dmc@B;M_Waxk0*DG)l$;2+6B!$$LcTebgNv_ zS=KU1XIuQD)5u^;Jmn4J=DB_j7FK-%kzA$j0l|C-Wju*c?RJOIH&jh-_N~DzAoPQv{pQdO=2UOayWWy4PP>f;W0q=C z=?h}|6aHM(s4apnlQvVm$AZT@xWgq77JhGKVA~X>u7eqjk>H)^^4|oM&GSj10%F2b z4f=AIN7~^|Bb^?CfhVAU)yNBSl==Z|?LFhMa=pcyG9L=I0PzH6(=oBDVpiS%gqhB| zXEerm@GtZP9>9f9o{tf}c6bf4BurN!+S+>%3yo&iG+|TL8`E*2=k-aOjO1q!JCu236=>Y3N!4I^alys1_ zOVTpyElJO?<_g~sYl);ot(B4vv#ybJgk?!O(yA}%D65&Iqpc2-jjFgK(T8)reK5n6+w;>vgnsMa2u#NC#4Z{co&m#^WJr~V)DN4}ZObRuJvcNLp zAnteOhGl7}Z)znAy)kqIc<&?(8uR8ltb-Isk<{`53l*i*nKRLWFXUm$h+$cYV0NK{ z)Qo6zOQ1e5O%d`Piou-f-L4DB_oaRa6(M3Y|5JgtVVu!`&vp4rsZM-d^SR8XArd)?q|f3jEIb7DA=q zF`lQirmP4|z=greOe95$4R*z-@Lbwb23+f(@el_?RT=g6Oot1^K^R&NrFnxPWO()& z+t8Eki1DOIVLupwYcK(_w1=tlMV6*XKN^9(K(V-2NqU8(_V04eIRe)gbHS%Te}!Pa zNm3t@elsjwf=7Y$aLkaPt=ExMpBX!X!B8KhrY>3Zmhi3{GIwI=vkKin?SDLnE;(Wb z`e9a{0NON{{w|Aeumra_&n;$P!XgyB48&C~gS1LB+-U|nVCpw-1@Rs-e8?(F9pct& zGY9wSI$}N*x&)2Myqj0CXIsj4+y(Rq+8)~o^L_ypwN&$O)~jz^nymKS;A(a`FiJCNO3=?rsoT z2_EBTO6w7HAmHhPN&~Tx6e(7Zpzl*Ti7D3xN=A_2LOaovyf^#P0v=;5uCyMsNjswL zVU%hF>SAcJ$e*eBH|o;ED2fq=o?)3WjB7)U2C3n@B27(I23z%1Mp zecQoaT0h)b@=D(DgSo)LJr z9cq;d!(}2!^>oWL!zV`IywA&=((gzsN){vl!#7b(qyEmgyB;L0w!7 zo}s?jkPb?HiGsglr5m%-ELv&$a9_;Z0({UBM$mLtM`iF@_l)rew%}Hp4@^tY3tgVC zk+XRw`2*k9Xr3X!p6T)&j`LjP4>Z8k!jcyNyNo=A0CZh+S*!ekb1-(ua~aEi{63|k0j?e1k(#$@h7t}1Hp8oF4rE6J^K90-oCQvxg@%=2jsr9Rw2{Zt zPjaKnn{yVVV{N@xfVCn0l2|)$>TJln%qnj@8yGv+|Dek=$)8Ff&eL#97l?N7S_^?L zeRcxsm2Q+|ycv z!l0k5O=RnCz&vyj*qedY-l1y+(r4yVM&OC1nr9H`qg@_(MwszDS5kOfaTL?W22@}! z=;x8=Qr4kZe5l4oDm{vfYZe0kx)FGAjOMu!d>dWfb7oGjR`oINDgG$JQ!c6aVm2k$ zNad{{M100rlxP0S2wc?_3r!UDC6N0lKm*w1&yB!^xC2}Zj0vA8h@h)=E}t1*j;`l} zkw!o_b4eNE27PA)j=>#bO?raVmt;}gK%A&wjKCa}Z;S`N!l4=D)??K4n1PqNgW-G- zFLN1aXEll4_Q^Or1_gezOS^%za`s4hmA3ZdpzS!Gp7FynROIi5Ic@-)0bDKnLH`-S z^|8h2ZQjPNt}%+!NX86UjZ$xq*HTR|jO6tXJ#%{8B6Srm4n2G(VN!|@#p{f6*Nb}! zJzV-LTpA3M$e>#=D!so{-rB z+OrN_D{u$natucD`~&n)U7q6yV-2R~n_-@#p#MppS!|Iz7>B~~a0lbzS(+!W5%xJD zXkHnNo6!>#?*sGzm*fsc8Z1P-I~cPj;c+I4S_tG~3eW)Y!T2FOrbWP91Jd;*OSNP$ zrWWhL_yEvbT#`E&uf;lvHF*W3w@4Pn?qD2_;cR>b{6U9ikUKsYZ_5OOAN7qP=x(76 z^csicD1VzRgdVg z7~~Bba-siCRF2ET4D_|LJfw_VDaVa@y*&IUmLV;{n~z{NV*8!t;oNkLd0;tegkmt~ zE)S2OU}t6cOA|a3196GV+LD@_m0{K*Tz5bi>p;IXiN{_U4k*UOM4qjnKjZMYE5mQ+ z>53Tdg7i<4J4*?&^m`?(q6oW;FuNLuKsp+i7V>Lpvj*V>70EG}s6K+0c2^KktG`>8`QYboul3^UWTiEBuaVx5(t zwAOVb^~z9N;AYe_@0@nDz&_)B%z^EQiLVT+VLJBeE7W-dOLJF-J#b59+y6t-tt7cC z!{L}SI3SN9n43wmSBAf#ThdTUBLpF6>p3gKZUfPNkb1gg(QB^^@2!E)0A*u9opd~h zyE42SchxG;E_Ue;uy}W6IK3wd-T>n5E`zknT^W9KJ{TScaR(V5hOlm1+6Nh4KC)rsU?(Kx>45Sj5 zyem%L9h*E^sj(oHyW~A_<*x@i;g(Vb(n^<{Jc7Ond@&U(83=6zkMRzrot5F}K6w2C z#FL~*vChg+<~-L1dSxiM(7({gyiVz~fXArBaOpvtv?DscGF*#mj73IqT^S#+NOxtp zVy-T;ElD4fPo1am)& zuvdn+VfAtckdHV7>57CgiIt&&b@Xn~_qse%Nqc4Z#cb?*gvPHyJ#;*WvogE_w_ZQ& z5<`&Ejh|QrcV*aQ0q`wBEOZ&fLhj0t&p6F85XX?=R|so6#k)ffN%lt_dtCk-Jy^O8 zH#)50UW1d=jtISmn_Qi=hWn~mse7UNQK~;i^;{;#*KoyH4!jK7J1(6|$M_nq81<_Q z%zn^+c6s)q)c6{1WSQoP0NW5jm-BI)2Wz-l=b*cxrwG{I*B8A2A67{vp}Ef z@<@H$HQd0Z5L*i3N-{`;SiSff?&_IfxEaL1x*DX#4SZc;u;xDVE*88C#8(jd{s@TP zx~NiE=<$ByEbcC@AJ1QfeC7{$48euoEI5HZc!O~kdbdZg3<9zNg4u&53}CHfp?3xD zZD#;#4_de5>5I5d%*Lc}2Jqutnm7Wk6B56t<-Iu_nz0D{3s~Jn;0Wk;nN=R2%5xF8 z#pS^wkU*TrT?Ezuo!Nan1s0_66~2Ccu&^$d6v8iSi_&43@Zg%~V$6wazOoQQ$XO?T z057plD{Lx2FbDC5E6W4dHQ$K4s?iq2&JII@YuEfDq8;8ok4yg#@n#;0K`dw-u!-nr=WZaSnlX0B!9S&Xd8lW84 z{59NL1_B<6U|z^e#&ONJqL|6R&L!m%P>eMsyV_NVsz`?e#fTk5#xIe0F>rW@aYe$e4@UGrAC zuryj2LC}q7TV2;Y3}-0bVF|-w8B}I|KM{K2nit?|bX;>jf*A*86RB`6s_nYwoiKtH z0K3eg=ofyDYyLC_>eV3K?2?yJ+HuYQ0nhz!AU)-hm&cWt2gVLj>UEGlcFD<()kT3X z;q%bW`~EZ$fq2Fww~jf zZySjAgY-UoL+R^dBPe>tARbW|$p7?Cvs1 zt6bN7`4TXU1aTr6?u4*zTiklu4-)gK5I;nmc{6Unbj_>a={c_Xxr6a804g?8&AqIH zcE!5t1F({1FVty&(O|B|i}-?~WaT5xxiMSC{;3T>0yPXS$*Ns77N1 zDb`3HLEi+5Fxl^bP*?C6yD9Cs<~R31)qogHiWKX(<}&BGHqfrQ;6jU0k-QpInyz^W zS6UC+q#e<5*Zf!DS>%IM{3?rdUGv(0y3ChIdW$62HK(Ew@vdwBd<7Q9;5i)E2Mt3o4^che z)Wlu$Bbf50f;Qi!%iA06F5~sef97KCf%*1w(64oQ=AxLmYd-31&GP{0kGnie;yiH8 zCtzk{$y~eslROr0Mp75oHBW`}Ow1wB|8RMvKCWxtAN4WnLUm&V-5^#k?wU`o0Yfo} zeaH|m#dXcAGr%wj#Ayg|*POPYYtH+L(R;IiG1ckh|o3nzzOWZ8;s+c@5J19 zKZsiq%=T=ip-B=x`gi%O5j>ExrBuE zXWq@Q2202;wwuZlUOuq|c{G>#51Jfp7zu8t4ZLKMOGvnk@(wQ0C0v|XLTdm?Z4eJ5 z^TrEU!uKhUx+NTxH#%+!#)(!sh&K*w!)J*ltVt}vNU%~FeIS%juanb;gQ;AMCzp_D zrQgBJ68a*Q0YNJrII#q6rS&DcgvALZa85}sA<;_rVa>x5{+d|A2mr2?bQ{D z%XM5cp1p0=+V?OzY$upsM=;-GC-q3hb5yQ z9u@F?hzp8a6+QvGYo+*Jh{k&`#e4{wehIH%(x+7CLHIYnFC9Hjr!3YbK{)Q!^`o%u ztmWYDN|C|y^dr{(CyH?VXc7JB^%aa_imbvA;eMSZCyMYjr52GLFW#k?m0OOrZbnar z$ez-hHH`&)w=Bd1B~1O?Zxe53V{UtS7N~^zLcd0LG_8c`Q{L_jDePn*~rd7+=32QSFi!IxKp!G=-$7?|qa2P<*grXia@Q^vr_p}BYFY8UBX zqVBk(B_rY+79w|e+lgvUXC1x5{`k03 zrB~l)VW;ZV-(bF!mK>u{az!sZHN>Ua1ic$?wV#g^0~3Pp%)|{B&g9uA3XY{< z{6=O-Po|8Cv%Ob<>s0Mc=>zTF8%$q0d{Q!RA@hlog-YRTMKj;)OR0v7 z7Q_|@FuM2P#@rIzl8PxRk4I_>%n0Hzv78z{JtJTl!AG6*U^k7}kpfG%rSYD9?VSxRk@ zB-XUA&H-01LmIN3T#S@IN|U}1E9Czn#nieAB$rSY6{by~EuYZUMZ0a9 z#xt8jQ?ctOL-{(fQYo?0X`bNTscs2~u6J&~o}XVs6hG#3}zy#5Wk#^HtaOfgpk4 zpIz|SCM0K+Rq$%ut=iWSz#DuO6J2{tfMD=~aR5>TNC|od0Z0`f8oUXEuzgs7dcpY< z0qCRbnZYMNjo}=^+&h;9l5nmDn`9#Fo+~q8U`I0+&Soa1rZCy4zD) zKCKQapYPWf_*61Te@jm6s5_lq8+&~SiuzD0cqut$j7z7d9p$CH-iT}hoT)TQiZEq*j&+mOP{idj_gymK;dES3eP+of4N2c1x$STOBxNZOrih-My;mTMnP zX$y3gp3QD>^@>fj<+tLoUVf&id*UQ|W2@0~`AvlW{>kXeF)s6qh5oZkmkUwre}ePQ zqf#xN$Ch?s+W&<0%JHPUhjc&M%rn|HE&KXR(4J|;gcaqnZEX&!Rhs-%eUfQ)KAqOq z(B$iAh))_Zp)?P9YiSt+*+TxfJ`+mw?6;QI}CTBc>GRdGmPT`byADQKLSYsAR6I zByRK@jop|wqh}cwkD7ZTze(CE;x#ONMC%$8+R{IuX!3ajvqtbFaebo+U#Kfox9U_fxQ05*yG z4wVDJbGZS2uFx-$fUkw{9B2=2iIWS8f;<`3AzFi3!o!6&GoOn|Pzf!P2C3s4dq+Y!JS z0+a>&4F@nJ_$hjPWN;9Hp#qEwUP=YS1sEM{i*7C$DZrTEkfs1e3ote~7#CN;SOLZb zKb#9-q5x+GS1tr_jsRx`FQ&F~0mcVgQri>(CIkmjTZI5;2M18wbO9y?|3Pi@1UM(S zoZ99Ka4zmtlK?FX^ZvrK#WFC&om7)Q#4WzyqKr3y_VXOFH+&ZNY^3wcCEf>Mh{6{2 zk23!mZVrVl8~Vx95c6kYt89Mi#9M&jUD&$bewZX=4gz8qxC`54@CxzvnTLG42E0*t z4UFN!d_E;n-bXQD3yagB>_Y>ypO+>zP-EWxxv?cOg>ix|8teXdg>tLtC?sapR|EUQ19`)KXe-FlMVOg4#y9ahD9IVS-0aF&*A*4xx=k6Vtm1qp^wC`^rotL2tV%4pHwh7!$P3D6H%QlwJfk1rx(2qha^VnRU>f zCec90R(Pr(Ebi$!kdL>+pa!3Z!HRpy=W^7PMbqc2-ulxy%FFjj#eIBXa1D(X_xE(i zrOspAT4X?&Rnj5@B_CAY9$+aR&3*xA3^T z9{;S9N=w10EcSWi+Tam*yU+?;7R6t9BJ38Ph?mkOQfZB*f!4w+j$af5O+@saEOsw^ z#;!F2bR>y)vjlot8uS&n*0MZNpUlvIB<=yluX+}dc0MYY+?qR#A86NK&D6`uB8{l> zv;nG@?uh=}qEOt&yqjcRgetakIxvgHL)<~EtPYt|eohJ5%bS7zL2NM+8kr~e<2<^E zY%hD^Uk!i5z~~G?p6XBLNn42tvG`WKp3ZX^R4gB5biGCz(w|tCsqa#4q``e`*$w~oH0FJnH}8b|a9RV_=zt+8-q58wD*G}v_PdM=knp15Ek3!T**qFo zd^qPVB)nzv_MglX+s`ZRLUEVr7R2c|?FFB#e~R6_sPQJe1Pc=&k);~qpR zb_OoE?oY`$=Eo8=Hf{cBU?=Hb_sJT~Pbt_s!Wg98zZD()u!7BeAOdV3 zJs{i1(GRlhV}JB&W=zDcah&q>(WgUEK@EZB7pR+IWyU~cN3;o-L?bOHUJI~$nc#?uZ)Y>H=Z zXj}I&dJV-dQRrsKr78B7OLOu&bHMe2m^*ewd*t7hiIShHu=U(E57>X{X7OVb(h^;? zpF08k{F;P!c}qMOYoYJKYha(=9UJxmvpmdNKeoXGrF@EA&(G^}F&2(HYMrVZCHzaLXTX@?APv<9Dtd_i3f8E-e#v$Rm> zheBs*k=R7`Bi<8AF5?9V}69j--qeF^z8H-S%+8W zB0n+XF62jL!475TbjADUh{aD6+-1}Qx^K*?TwI{~)=fiq$!Rgt{LkV-4RH&vpU2We ze0n|YDoobFAmKX@1`yn~3=0$hT@Xw%88_m#t!Wv!UdwdPQ=FFB0q4dJTQ zsn@4KKh-d!ii(#aTulBa$#l1oHxsN@Y7Xxxq#M_h$b$4vOBEtEz1@DA~_k79+oaJAn%Xs9-y0{44>fJ0Llp9}V!(aDc~r1C0^+iOXW-C&AA* z&4Dj6fs-5~KS4i_N`|^%qRnD1AQ4aW`In)RA%0!J&l8DRi~5_Yc@Ym1BH0L$IoZ6ik zj;|0*vKlLCW}%f}r2kA5L^O?ulT@$7Fu+qTS;Pe-;uiY= z&wco1vpvshWHIL#95?ZYcz7Z3F!k|#Ll$uXHaQ?U?x+lK+kb!?^#ffI`H2g0pM4f{ zep3B>g&pEv>;Si;XAulA@)PuPpLB@FezKSgNW>k^{tc+9pQrpn+%cWSTtFf=(9h#s zA)ffkVlKeQ&$EF69*ql(W<=1>_i}#jDGhO#sGmDeLwt!f?WdktIcKt8r;Kwun8^81 z^(;7ELNLi{ERYT+jqhSV0O|{uRxKU;$3U<()EykW5VudGVckt77(vY_Wn}wa$N+$H zauKvrlEt~#UEV0A4F(U9=yKMwH#qx~`+Vv0AEBoZ6A?+{93@Vd6B&?}a-U#`TO$K( zbAY=ivxo~w#I0Ka?kDuiCNAy)%woL)=N6#aw`qpL@;&+;SZ_z=&X$Sc9GFXB49SvgD%RmF#B};$;-z z1T0H7PNuz-{~;vz7{M>=;T0&de$q$9f`}S2YKF+qn`G!UQn?Qy#H|YV8gGw8S6$)1 zBMqMl075%exjuze!ytGo{V#49=&j@vihQ|j2*uCO4}}P)uT0095}6j|rcya%c?Fm2TS(tSh>%I8^GgrkB3Hk>yjpppMpHGK z=)o9H{HT&f|6pXxM$YuVqu#t(xoFwdkiG#GFGxho&V}$wjJiHRn}ZQaRUVR>lQjpI z_Sr}$BSgrg!rbdxiJZ9|_a}gw;s-os$TeRJaz?*hb{cdl3oy)6!6~>|Bg( zut>KfM98GVJmmH|a_0Mpg#B(|CriatrM^ab03kvqm3~KO^yGxZ7vJu;G~}IqCTRMd zy|#r4^w5^$rjv1rf=PQvH2ZJ>ZW7UyOajZQVPWkYCy8(`AY5M{#u zb*rKk^6gc^b_Z9XY-UOS3D)Pv6<47g{t67C!m|*~K2hOBDx`arID}9`*$$EZFZ9HU zM1}GNl`uC{-UzgL2O@Xlq!{^#^a*9oJrB1%q&pLNA{0|$9+vtLIrED|qA2iUB2hUM zT7rAv?_@eBp^ym0RDhFRI``+a0MXrRgP}VE8*!R&7F6NQF+4B;*~6V=qI(=?6hC*R zg@_AtFWQ;pnCx)$Lq>&pJfV{KOC5arnK%kxUcONMQ+8yAc`#xfIc`bhQ0d(I^Da4uegf3FfXNCC*EDu&Ap5}<8IX%%FG= zQQ_5&LRLVfb2rk`dmx%zlu3(dX5FGKIb!G>Dqc~F zfq;|`)FTv#e1b@YdB{B-II}Gxk!K4Xd9hj!Wj;qudLkW!5TQV%F(Q@DolpyqJ8^^0 zjPEKj1(|KRnpNQ=7$z5i&$9uMl*3^H>r^OgM@;(^JSxmDfZR!@ha9FWXq_;Zf6oxV z*TH{;Mh>o1!hMRFvIjCe1;+UrWbF`M0;CcQ+8z)Wx~bGYca zS^sT-7jocGqbco8$L$Vj@;{_9ZfiXmjiNX^I|ZST{5+_lfAO4#QCN7gErNP0IAA!n zv@9-SBnZ1AzHZ>aAl93URenQT|EFkZt})JYmoYBa7;BW-)lDnG1OLhRrZl`4{^&;W zXWVw#WUOsjU1OY-`kl>zE%$-%YLh1ULi1#2pXxp&yimW>*k1@ z2Y3O3beh9xBnVSLM5NPJAb&9t_zzPjA1WmnDlGnOjPoTZ}wU^&fRqGq+9}g(g2+e)G57zFpp;>WJKkNSz_4Abx1|5rBONqN@nH^tr$s%Ke55 z^jD<5X^<%-fh8FF0u zhgP!yEI|-mB^aFg10p$;E6T*~aHRY=Y=n%F^AO>Q1soFpMr5aw@(_Z-j0$%F;ThyS zdl8Aoy=dRyNky1QEA!-|v+3NPdKBbS+=xCk+vpn+KUV9X4qe%ZTwUVzct2^dsf6WS zjBam39v<8i9=Q*tb0_O$pxh0rGd{y;zrk!z)i72Sx3ZSXL;Wzn*R+BI(^TG9qE(l$cbx zH@HMlIn+F=03XgmdMQGLg0sgWnlla&D#6d*tV7mw3nI}b&Q+KnFS`#Y^CbsQJ0+FE z?;4^Miv9&{`v7SzLWF{|pFuR|Swtv>pI!YKS&y1&mm(h5eMaA=7++20v(V1JojfB* z5uk4yvlPSks~TjRWix-j!G9gqVlH={%vMI5@P4q}hj1H0A%_XSSjV5?=Fl_pGumd{ zjk0~C!Sy9DpCd#D0?1!)%Z%>KyYASKXGKRXl531IdfSTk*-W_h>|8y~q>Q#jDYIu#ng8P@5Fb zS(+F18S)kD6G45dpyfOSA1~ueky$~tV{O^1QnlK}kZj92kVF4(z`R z6d&i5>w)AyMtsoVJH;2Tg> z%VmiF?lx+>)|WqpmADq9bD?Vjg6~QI=Oa@?IG*6ar|bh3gn?@m>4l zMH{>-+TS)NIit=P6tT9q;@V%6M+LmHQyAy9erY}i&~u=)+;%=r=-Xsi4`j2wxA7}b z?|T=dJJE_w2)9Q&N84sE%)z~uY<~b5B38HD*8)vA*$b5#Xl1O zRm8jUVYiA-PP0pW20V)T`gnK#6S{s!@bP|~>VY8;I`Ee4h?#EARnQy%K8yF~9PlqHo<_LS-oGbi8D<9X1C1CAMS*{%Ue|3i;6!HOuBkOf@uI!c;%UN+g zte67!a)b_i^5ls4+?*rgY3Ymj_$-S5)$BZkB0djv`2B9qOmMufJ8DuD{2`3b{CRNfeJvpV7DQh|@bO-M5Secg zT5`qX$b{8E$e3G<^qH05<9a9J#kfEi$Y(GPUqtx6$4e7FVCevITZAzb?)nWdBLEFS zhj|^fQkkaA+(zdN1n*z&v0`ZMiGw~URgZ)4ot>)MFC?FP#gL}7rJ5>0)<&* z&O+3NPSL$!x(i_}oujKk>`DjeEns#b6mg_D!ls*}UjEGWM%E{67l%u_A0|LhMOmJn!8p_W|GI;^JJ3=|k+6UkTuQXepNL5Of+8^!++l%H6w zWdfk0{Gb$nGKH$PvzEd=b?fp72uAaEt*fAD11OPe5VdTHInhyKsF%URiL~8$D7p-! zStxcIg0DA#4alq`&8)xsX*DRXLi8mBAJ=;Ok@*^-B_Az1GGX;C zWH`mX%0a>hi*DYk$t2zrWr+^(`r7SAOBD!L^RLPzrnZK{n+%tEAqVb#-;}pA?LhHfCf4CJwP%ZgH*~=Dq0a7zCWg$fPm^u2gtzE44Rsx`+FC;>$EtkOu+USzuX|nar^1g+4?BjZv|4Di< z!dR}0zh>*XHm(6?0YXczn;l_8dEg(i#oS=+l+_i@Gn&#g z&mG{|h@j2$gK%=eahz-eR8J ziNITlzy}F{iawP9MPE$-Fskmz(+YhT0B{yBVFKIQYKkmC|6v1Mb9VXI2I_-tz*22) zSUpv)bn;9M)FpJlg%DBf?E0 zazcBXBce1n9=UMi&X+)Mu&Xgb*B{Ss=uce0-4z#~iT741aQ6_p{LAK}E%}eMFhYEI z(}7JS`ClfG9CQ?qkA5GE3l^;A7)0`rif?mTEP+Rn!S=P7gPhuqnAVQ8oPjN7=7l=`kmeXCK|N`!o;U97KDDNM%UF!XRqX?}u8 zD#iB(Efy&wO?Eh`9O~;c6k`b~*P9WtN4O?cXK+iS5e(23s)r!*+$*SZ$a&jfxPw6R z6;gyecpM5M-xrxf5&eJFeF>OcS9RulwRKr7%aU4-B(L3ovApzB-L0if%hpzsTWh0k z*)n5zR9C&~E>vArs--0v%Qgan!4QlS0vLmAGBFTC;z`H{Av0t1C7Fm!2>xb5hO9Ul zli&~&69`L&8P9*tUEY1KUM($>@0;mQs`uV~cRBamv)yygy-#P?4ms;u%DW3Ny%AUX zB*kTvTO<#!Lx1o@P79H|>US^$C*MT$Jbt*kEAC|XY1YEmyu?!A<+MZpOLz~*YzEu# z`CDtapTqslv=iUD{QJNJA%^{~_^RWzuTLX+;;o>|llVWe{R#+a{GYfRxS{_Ox84Tf zkN*>2DZsYI|B2t6wk-NT@z`c42>hRTE0o@cu0%z4+?whe--uq1Tl@L|Ej`0iF>Xay z-O~HI-ih9+zR8VOfluQ@_H7%HI1qVVe4@9sYIMM!+?eaLkvkE1HPvUl?779dWxz(6 zfi)YD7jq42;F1ZO>f-cXs$<1vR_{QPUiH4l>g~O?Hwyf%R24@FlF};G;H9fo=2Zbe z6Ttta1iJups&5-WU(J~YsFHzorBzdXw`~-CLWC7}a$p^Sw)SVNXp&&!USp0S>qd7K z64pfkcJIIjQT;#RR1W~KvW|2J+{Q_M&Il8 z1UVyCXShOim9ZnbdZj8NF-CwBkXNm-uUpmE8@=|*Ygey_hlA12<4bQ58;hRz(!df} z*9LmjOFimG9wG^uXFxtmT)j#bQ3Ml*mJcNLAm~Oy$F+FFdEHf@iEX{37^>I$bBy** zZp=z-T)zSIx+wtKrI|Q7sf21IiyFEf07Bn=;|ecy;ck}m-WUmW`e&JD@oKVy0}!4;;JEgUtg}T zpPBJ8Y8HHRyLHySA2(}El&GR>b)sYt!hPQelQszqd_SHV2ZK=6{R2^YFZe>zktS#% zM%Dvbg9;ln-D0qdRG_S+}2~l#D22qbM0daLO*{kZBcb&6APL%7~Av@Jq zS|ysmXPzP(?!$Nvc+%-r{%RC7ul6S!qVP4kN8t9A)W&uGyptOrvIlI@;%g-~n2KR{ zT@7fC+F#feKeqmO?_Kdbd7w5i?EwEoJ2=gd5Kg$iQFH^O?=RLXis4%*V7LK`IBxKE zTMY7$h6VL`%sH%USYxm45lw^kWo8IfncIUr<*$el;JqCU)+b>a3#Q91j+=vvx?rdX z!ny{`v?W*wmB9iMT_OZ;8}}G!f>?2KV`&wsmRlx-I0Jg&Rgn0A5w!`)gu(43ZSW~D zB^_Aw!rCzVJ{DBA|?0`@y zJ+B*JnT$26K3fUb67$6&+n!>zf0(iiqm?6G-=JZ+Z_|_{V1K=^ERHI6A~M>s;T~2? zGrjgPh_=~Y5I5Z%V*xs_{&fQ*P}L-9fE&_2cPQjWUN`Wo_5@)*Kv#E4K?{l;c;AYN zfvbg}$Ml&Hi^U?NhVP+<4dT5=m~Rk0M*|;?ObiS#gIGBARhvBnACFE9Kq5#j?3KKm z^RTiX_!{y6IG?_Mqfy7-;{9s7P@WtQUazow270dMp>CjU0U0nUu*}h!YVvEU>&n8CgY-T;FX2oJDRKxZHqx1ttXR>?H!0s2^tD@V7 zVu?)%Q<}X!@P^PK6w^DJ-k4U}J44^*(ALie-VpJH=vSuu>G4R&lrCe+qyg`tXZ3MmecuF!l9A zG>X!OqUR4c0V9z3kq|(x>Ln-8qo}jD7vv1-&q$(M_HM_UGx+}q{!^~6;{T8E|5b3UP2&F){ulB89r(}9?ycah z#XlcIn*A&E;vWHC9#6JA?TpqEhHhQlDm80v$`)F-HP!HrGVCqBW|L^P!~7NgY;EWKkS06nQ^(lg1Ot;rLZl zAqwE(o3Tjr-AOxsO``9MG4wk6{ZqDhpS%n2qvhj(aEUVaQ=#Yzpo?yj7w9+g>b0>* zJd%h$6|v)+qMy5;`t!{Fb}Sl?ME@Dpu8DpR_4P!*0m#=x|Lk5=l!(4$;ev8&6B|)4 zO20_`iav`$x-9zQSv%g#@LkUByb$k6M9-u8mC>)^)oOmVPGm`bHXb=Z?;pDVI6|AK zQw-cB-A0DjVuYg&f<1qD6{epFzU_6Jm zj2a_1t_5~(K=EjFCn4^eaf}T502Do#d_kd4;OGT(nc+A`a2!W2?ojjsP5`T- zh3L=Uf1K0lhe1CMke)`D8Gz_>XM?W+3flcG#&(f`>i|p2woQ2vIMh()EOh#Qyjy++UJ-dn^`@N52g; zu1&0m;86&C+gl|D&j|zyyzBA%&;N?!H%0(OZx;kX;3NP~az6t!i55YL|KUCx-@XQw z{u5|%H+O)uCx-y=elGvQeRli+-3dnIOwq?|etFK!g%(ibZ`c>&8xwu!Ch6h*AfI^j zyU2BYqHjMSK-yoQjf}7?Ab4K77lhQ4Sa&>@NJO6j;v(zf3A!Y|7>^}>J3f}MBiFA* z&3z2ZOMvD26+-@oIMV}U%vPF@njvnSsDH7$bNdWHhTUnI3j`SpG8$;cY*!y zieFB(Cf*)jj~chHjbB+mu50}^YDMPDA!-wS$M*wTF_h8I-NVR8d`2Ma1(48k_<3|K z^_Rrfa!L)66j(_TE}4(p(MvxQdCgkl@0HOPB2of{uxn>-z9G7Ezv#!`Mi^$)lfqmHeRi?niF46UUPm zBAcL?oHra!r4VkODHZC4d)#Vj+f=FUR!f=Up~Xz)4mVpbSEsV+-Q(#+>%>lEQ?GA# zGnGS`d2CVWzKSKwadLT7(o|-2MAbW!Emz#!Oubqt&2Pz6DsCy4o<4x3pkOnjEZHj0q^)+CVL`{_5$5&UnrNUXHbayIa5as$7=4*JkY^FiQZ;2l}xsPH95{OTg_x$ zYj)>8XZNw0*&~Onqi&{HEN6{64i$1o-P}Fpk}E1WaVS$L%@%Uj39p7jnbTIIQm+!c z2Ylnv7U0e9Vx@jYbTd#a9G^wEG+$p>E?!co4AhY+fE1U*E!9g~w1>s^q2?BTiaAq+C zh_)CWuTh_uEJ283RCkw4^}>9k+^EqV2Ggw`IkHO(?!Lpv`gh-SQ);|FH8wOhG}1q~ zSX-#oPvBZ_l-%v}E^-&Lc+6C@3)@d`+cLOiynk@MfAGj?|6r}2+df}vaQVUf^wjSD z!F;JaIM*l?>xGhda8GC5O1)4n)x>kPUN7LTQ94y9JUvhK(fT3xG z+m6}RJuZR3eBopuZJYwg*QztCRvNVhhlGOwV_&g6mnr%{VD1OwSEtK`8n`xh$XzT~ z&q!J46iIw>o}I+#8SaDR>~ytSt{!r0wamP`tC7z`a1hN2AQTUO1G(2h?#b0 zvJ37(kUe)!prTsMoY`G2pD0KnS9OVTntIu`k*z4?R+mV`EKdw>Q!;tE(qlqXL;C1} zWFZdDKYT4aEchhU_n-I=t!el z3U8>jL2zUy(&z{V;jnwU?i&CQ7%Q9EvZbo|cW<=B5Hd{%d7}jm_K#YD-#ccn``cD`N#}QX)xwtcgd|E1eW~X1aVt()mkOk&u}HgW-U%;(!w0XTg@DqdkgG2$=rsJ@5u6I ze^XnVh%P<1Oj^)FM`}8n?lg6*3-Yfml&kfAO)^ks7OOT4H0!Y@3N<_84cy@wCmfAw zaB4Z%D7wdvP3^e|F7*^`kUCpZoY0!iB3P_i&RZvx)kfT+g`Fi$SVG!NJ+&DOT`HV( zFhg`mCr)kIU8q9*;?;Og%(I*v1X7?NMC3*yM0ms9^R~YNA0pj#3~U@j5ttRIT*P$ zck1BcNP2oR!+vmXBuzbB;%?Qf`l7Q?Zm>upSe;qwrc+p~6j3Ub-jBo}vL=p#T{5Nl zqMMdgISv#+gAG^YH}TFDiIziZBD51Q)3{+?2`lY2*Qy5e^^hD%vM|NykI>jRTpIlj z0}lwMW=5T*w1neueZi@pskoCPH}?zVwis{^^Jsqo*j7#ZP@hVNz%5Bp5ZqQ-oa8Fe zT@&?ofyE{q5g!Ny@>V4m|Gn%_ae-ospGTYuKH$9oZ7#qLfn>4 zkJBK79k(fzchv(y%qSilHK&fL{wXkA&dCCL%cDseQBiCU_1Kv@g6Zj!>p(VKEE^^2+Q>K-mVzh8K%O+C0<%h2Y_*chAdtI3^42zS(YLZju5w$l{$yC z3MgB*;Pt9yD-dg%jip#DZ_XFt$`Maq73d-%X2vO$YxKXK0d^MQT_xAa2`f`~PBseJ z6OMaY%(&2`U%iCNILRplgTXAGgbR>s7s^JMo)D2FBeIy|IJGm2b7hd0CniwMzpbxRCKLLmGuGf~fiAizgAQF^VXK4?y4u4XS zl+x*Zb&(&6RyD^W#G`rbekXmB8uLApsAl+m1o2N8?y{+kx3y1FIKg!B@)Y zzQeyT$O|Rbqvc{zIAq)^7{{}H^$-V4d~Nv(GygDw98?{Wj?&qpv?n2`FtWwQV#zah z#zry300zDf7y{(8CuALvWykT+A6im#pgR}ng*P0)){z-)u=uAI<76ga!i|MLauv}` z0v9rLwTP%Z2 zK}0YtSk?QBg;J+NF{>6}MA*%!qoC^O-uTx#rR&x`d}-bg^F=73)Tl$o5oQBLxLSD% z6@pZwhW)TuVUE(I&^I(>vhIhjgt3}}v1%=5PPjasZMc(~3UBVul^a;PQddYBJ?SG8 zOJ~FcCZ8$RTxmu4#EL{_2$($f!d>g1NsFm&_;i#F(pzuthvyz}(JwbjoZ{>gt#U}i9AXzMlv3pv}EVF`T&VLn=oI*&)B0KajWM+LlpdA2Wp-tu$ zjD0L&pMax$kyH?wv9K^|4wfaeZq8)|jWJ%1l`rHMhLqGiyiBDUCW@tbQ5Rq}Er>zQhtj z3}7>{Ys6D5-PtETU7%X?>47FfZjV3oM415>p{18B;q}A>lULKF{xED9vB*xw@{Hq_ z^MorWEqpl2cI`@{NW?dZ6Nu6?IV`lO^~)Q(r*c)LFgdh2q&c-c;?hh5EO&#trhP%R zSW1F_c|4P&034qiOcRZmw`dY>;oa2lVe4W@@EJ;SLb3M*{vGzH%K`jEqpaR@rHHS28H)8vM04v+>Z#`efHyb|pF0)N5Yru8+$3km0(Y)6uy z9&!)NR&vW5c8VxSjc(J6G7@C)pKmVIJT+4M*2JluTL;Za$2#B(+NIF-lB9o1MSluw zGHjOtag3`_AC^Z%~_>#odi{P zqbW2st#ml$d|tS_^;!db3SF)>1g4~N5rU?(mAUE(@TqVmYr4XldU?)TI#r=i!Mt3^ z>asDxS*GNXRMU#&1BUS-Ok0j&Ax5rXDU&@oXBLB)Mq!Vvu^t1AJ6Ie`lRlU)msxpY z4lg1;XX+DLpM);7ZL7I;_Cvt;5Bi^iZxjE?w@KqQ0Xi%-ob2h-WAL=6PaB?%Q?+cS zl(zziHb|Ih9z+0~mxvfhD3Yg?wKUDQnGu47-Yv>IyCLM5Ln;#_LN2oiya*|wjJ}^n zh6)BF&!6N|lVH3NZACK`Vchw}f<|{2>IobLPUIC7HE3AFfL5a5G0cx8e|BNBNJ3PO z1)d*n27S=TDhzAR3UOwsc^h*%0{%b~dBi%`C)tQJ=B{MqbgK^oKrQj8gSfGHTPbB0 zX$^M~vk8g&i=crmP^{o8ZQM0g(TVBVE>tTS#Gi|0_%N}s3_otJ=G5E@B3M|xTKNh| zKY|`1;&8t)7PL<7AkBpo2A!deTp^#wu*gXd?%?Xgdc8zzh%wNi6Qryma8izt^8%Y4 zM9gMh>PjmMqzP}GY2QPA$(={|qTvk$yDX27QYm5~5z@eeskKY@YL-Q%p`m%bmFaxic-sCuNqs{IX7Ea#Fi#zE!k<41Uj@1 zL$}4kS9{t~lN)9zn&z?=gw5$vyci?a6#J~N+t=tRGYXgOL@c6-pzlC-mK2bJqREsC z46hlw2Z@dzkQ`s$jMG2f?YsGJ9+aqXAOfunxhKS&pC88Hu_9C*f-K~9GDJETGxN1k zupqfaa_(GX9`{}(CPypWr|}a)aqatWEXZx4xJE6vf}%uH7$VODLM6=`4wPLA!wW$t zzOb)uf|M?b>3FRP=BQlPamu_~z^X44$RAufwaAK&F$5)v@W34KsN+3}CK=krIgYiS zUqqmTGHye3vPY;8HbF|4u^7a?p>|dm47ZuK+0~U_xJzHC7~G&QK3tHByevcmT-Fo- zB`vgKIg?8%lJYrb1J+ESJ|a(8exRjNV{y){sudzr5Vj{v<@$0@dd3)rj*R&rVFt*N zgsX*CbQs-TPcpc-t!dwDqZRickV$Pe5TmT^TE=C}!;rhRNa%Ue&ZrMy}J z2nPBJ-(dhBT?i9}1MM&H+yy|3jDgZKB;}bEvp2OMpeHgxW6MzI0s884VNZm$droOh zWNjG>+X9-Fi$dD(JOqZfhZh%x@zT9z!t0%W)+Bn6nqI97cguaAf#3}q2~eT8j1`A& zJ%!$p1E@t3>c!y+0Kv7UnR+?m+gL4veK0k%nYML6sZF>gI?=%?2)O( z^~L}5qLmKp35-?OG8?u(=3ey$UUa~*6bLh2tYE`S-EvR6*#_;um(*YmWM_8KdMuCK z#xPQxV!;b}Ym$H+x*qfbUd+_QuvrD`1_Fl0X*Nb@>@4!O?!`F~X6@H!9YhT}ZIHee zP#t)GH*hn`BXqmq*BK00^D9; zy{`2*XjHk?Or&-g4|9;Ql;H5SOPlsj+Y$5W&nhp+($~w8iJRLkFd*CB~On?RA0`qC2q1u^R-NiPKJ80+i ztOfLoiKx#(OcZUb0IC>JPV(CfdiOdEa>V&n^F{1sC9fxKMX|6Ekxv1m4UY=aWf2)v z)*fvb`1%;i;%b;x97b3CEil*>8A)nu5R{RiN#?tPYhzB0~T5P(6+h;%~6#1a7iutsQ@tV z6+8P7aV=?lxpt@DyRf_=69dk!bumKO1&SSl$&i;3hUk2UHSDc&;~n{>gh1@fYLXQc zr|F3Xp}ML6A~W6uxtJ&nahwJ)TrL6VJ%5dvWee;+WnJkIbR&q2X% z6vH1z;C_9{mI<{$FFTWu3{lf-DIt}#B>}ZCt1DRM1R!XBHruc5n`fcMcGOJ0 zSi_o2(3=KJrAcaJ>2R;j4)i-#CMc%Ta`qyo0K*qPp&-ks3slmC)i@bTP{imqPa*hO zt7DBGdv$S?PYZD+DM`sHK4l2IX$3JNSX=J!q8YEY-U%O Ti88g%Q&) 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 J Date: Wed, 7 Jan 2026 10:53:54 +0000 Subject: [PATCH 2/2] Clang format --- rot47/main.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rot47/main.cpp b/rot47/main.cpp index 69788b9..12973bc 100644 --- a/rot47/main.cpp +++ b/rot47/main.cpp @@ -4,12 +4,10 @@ #include [[nodiscard]] -std::string rot47(std::string_view input) { - auto transform = [](char c) { - return (c >= 33 && c <= 126) - ? static_cast(33 + ((c - 33 + 47) % 94)) - : c; - }; +std::string +rot47(std::string_view input) +{ + auto transform = [](char c) { return (c >= 33 && c <= 126) ? static_cast(33 + ((c - 33 + 47) % 94)) : c; }; std::string output; output.reserve(input.size()); @@ -21,7 +19,9 @@ std::string rot47(std::string_view input) { return output; } -int main(int argc, char* argv[]) { +int +main(int argc, char* argv[]) +{ for (int i = 1; i < argc; ++i) { std::cout << rot47(argv[i]);