WtHLZphF7GmxS~BN
z!?$B(C+QqMZHz{^Qap6GW*2fPi%%QhAog-OhO-eytXRhA~ec~c?)w#&Om;z|IyNyfPVX>HXRy2d8M&xOjYcei$
zxa~qTOnQ^o9O`L8D$I;{lgZ0opQW~IF$gorG*JOE*)0p>7{VH<&k^00A1?tq=CLio
zwa-xKx-oU+(f~1l%%Lk}6NU%s^5PY4{(xi+9j*eQ_H|XWF@0r^7GI=rbj_}O29E)@
zy3Sfxpm(4!iU+LjKmXxe
z3sf^I(RSsLlpGLQ==%e?yU@~*NJvD8;?G!CouTW;RE{jp}-%w%TC&Vv}D`FSypGC{6cD
zAJ%3m^{r4dws3o@Z#zPGG-k`jgsK)n-(Co3Ijy3E)
zwJLxdtRK8qx-5|>1#1Yu5y@eVBL7MuBYV`IeU$A%{1>nA8ccQ3tXJb2q*vye>n1)%
z_$&VLT@q_@-%m9!NIvv+dnn1!AzeEMZNrom{X3wA(#Q(?2ozoFD02XIcLPC(%ZQ-D`Uc*
ztAbtY&X)ZK0#~tlGRbi`sObtZ9evCE??sM{6jT
zZuq*>WEi>?d!M4_glxzDK@wpBZ%}k(2xn#;vqj$t51_t9g|N_5mw&jq20lrg4qM|f
z*g!5kS^1#8=WWn_!_8<4UggDXJ`*UFMZ9mO6{>kcCr#4l4
zk)@-mRW(UOYW|e=)|%L`U9Z2Wx_2$^)Dnh3S-W!TQm76ZN0uO6fuGv-wj0IoIn-CH
z1;Gj%P(*As1x}=ex4|}8o6uGoV)^Pq?5eb07&!z>!5q!^_YTJ-u}PIdG70cHSS=6A
z6=0FbULQXmicp+%uE$6>yf$R=QqCY++3<&h{+0g-A;R+Doojr
zHzQEtF3|icu*@Jl(i+V1&d^^TlEkYSo5nTd)Rv&QnM4JcOB|BYJ%O14qLwbtq&EhE
zcByT@{T3#L4V2(52g$~w{&zLR*yVut#`|KfDD|pRUDDd{`tXFUZsa>i(ur5JDDP>@
z&dp`!?Cn8H6=%doVvl#Wa4A)y#zfF?P?b3K99he~`0y{SokwQnHB*H^u=znfC^tw&
z4(nT$`Q9(Bt{Cl^Afmx4u|Tw4#DeYwvcU&x-Kq5o)n>rJ7i8|=s91iq7RJ)_v*y`(
z*2Ke6*C4h~S|Cp58MmiGTB4XBsrUqmw+yx^YaZ*RbO%%&NlD;GZMdK_;xFixkRB5s+Tq(ZtBPv9L!w{>f5PV
zrv$pfVDX{bytfIuLyAVITNaj$Vm`)~`ur&~MzTvcTe>4#hMEJ~@o}?SfQ8sl?
zpQu**Pg9>Bb+0Z^XnTWZ=@U(%D36Fjbq;$eNx`BUJwM(HoaY(NXx8OZMn0VRe6~|StNf}
zsxwz4p}Aq@S|N$Baa&qcrAmqC6@
zsuLTsQMkv~2JfN5usEZPUS2%_@=4q+%6r(Ixys*ds97p7E$V(SAXiR~6MYRbtQJHc
zXqNjK|4T5+aO>_j>g42UuC>|o`;CM9nWN4oOgB;<@0~b)<>=35YYaY!F#Jj#p{Zn9
z`sv)}eqqkGdNVToJA3vc$4N?Qx<1F;HCG$t)NY(wC&FOqh{}IL~(3}SyGUp+CrYue7n4@o7oU<=}1*QJXKy$0`^qA
z$Vz`V6175*bD1NjK|HC&Qz=2t`3r2}qgEdU_dyK`fK2IA|Kwr4mlX
zGbK+>j~ZDdKIYYiBHLKUogQOy^!~Ds=cuJ&Ck|4)v!!2ej>^0jfsEIwrj~kO2byv4HHl#zh(4Cc7iRz>MDa;>gfI)*MvJ%=ei&&Y2Po?
z7v9;7cW1iWhwqn-5ng63fQ%T7(v5D&8{nM4roB0p8QejdpExt~utMZEw
zKIHpbyo?eqWkJ$n98vsvnGrR#m*2zq*)^az4nMvY)8?DX@dc<~OKyF$l3ZNkd%;5A
zJS_z7S^LvYo;=C=q3Ea|Usoe~p0vRf`(zd*wRW!h_fXh^p*$G*u5?HwRlneij1l2%
zt*rEbzq3IA^ZiE~FA0=D1$$8uOPv%G6t+L6!Z<1o;wA~FxBh})dROu~n&%rYMHEN1
z#>~56!pFb87|-XP8Lqa%2S_E&&TUA9pn=Uec>U;?Pw4hT!d#@dsMUR7%ad#t9Y^`0
zE_FbksWva~=sV(HsIxEphUhQaF^y^bo+pfmKLz@2D4m2;%}T}n`8$>IEatX$3;~hU
z&)kB)@)42Wzav~phW#?3yHb-AtcFkR!u6wh-|#8>1e7fRK!6gvVf-uvki?=@smcoW
z9>Ywig^^LCHgU|fizHTFuv=Pqt2+w~__t!nAc^J=W8Zg`OTtxqe$8aXiYI~}x{eoK
z_VN2=e+jl7qv*S4W_+k%qF43_&BDf;!cnEK7tDgs@mRqF&IY!^XA0lowUY1w0Ybs#$`_jiC-c3@ZUL#p
z_(}z`4!2B&H*I(&(48@4?7x5Z{SJQ#?@%OcV#^qR{`(vVE$GGr!Z|p&=KCB(3+G_@
zZilmh%1Il7eyBYQ8Z99qvii>%HzllsC8ToQy4rTBHFO)!YA~6Rw%;K1j?t_pMR(Ul
z?uV8xtM$veV{QLR_Wa{J9-+xzE6){mx;^fEwS7UVVf^m&zEHiB*={0APO+`FuPZfz
zbQ8|oEeKk(EYdDuO7pId_Z(I$C#ABF*tz|BsAkITir4+wulqk|ZLL_)JU%(xPWIG{
zl*!@m58aFX*>$p?&et28hxXkc9hI6P#~)s%gk_k-tn6M4uS@sO_O8FW-amU?dF^$>
zAwb;;XU!8};qWa&Ed+?CN$iC>I2ijE%p1pG@I4_sK~R?pOukwkUEGu9l<#C};TO
z#0f7;`+nK_@0b1iZZU$(Zn|BF;PF|Gwy;NtEjZuZ&VP-W5vx#&
zj$U`Jj4nmdgfJG^^;aDrM5;XCyC5E(Jws_X-%T*?Fz50A<}M2F|_S!@se+*Q{ZR25OYdL_&qM^uu5RFiE
z1!SruPy$RsAk>9R1C4S%$9lq=8>QYwc<*PvJN1KQ^|unc$pH&hUR>Z*EFAjuWeO+j
z-H?IPyc7no+TzHvmyM`LTM(XWBDlRj7d*l3b6-uBOr*b
zXX9S&i1fYGTsj{>cNq41TVAT6v`;h`JSR^2ZcE4Xk5BXRLa{kk2IO>qdfqvBu){HZ
zU;Wuv4qD3rnawARhuYwjL}_YTdfwjMA&!Y_>S?C(5@G`Sd}95wjUp@A1O3
z!@|*H+3yElLPH)=dsL~Tz@^qP{gd=Puix0?jZ2Sqm{u465uus0o;gZ1S;=vabwf9X
zk!;m0S@n}zvQkHCnq|;vNXz#zr!D@nc0b^a88}>
zjT%B|QAYtA$`q)$pM)c{q-x=lYZn&tx4vi!p(^wX9H=ub{hk87!*`#ADmk`*U}vLf
zg+;&ip}+CniWx%CQBqK4cB=yXGywt5$T!g(;o~>!AaKh{p5j$NrzO!c)31|TSa?o%
zmY7AhtKO;VQNoDq&PmF^N!Mi~_00tG38jzt1sP~2I}@dsP9&J14(@c~YwGF}9`TQl
z&y>&9P8`*n;)MMZy^nA0E29RLst{7xynOISCp7jlK*fV6&nfh431fQ=R7Y`mjRRR+
z^c>^;k`VT&`ZLrSpVy)+X2DZ^5aEsTcG62xKOEXU8s;QPqUV#s
zgF1nd(BJhZhU5oAWq3+E2kgUQYm{#~Ow@L0`NQf=v5u!4+kxZnlp63yT|_u1q6(<7
z6dLuq!zxl!4qg&Dc86lw@aq{ZZIALm2yr_cUjz(q^IXQhD&rZ`<(uhMqEdC)HfQVh
zsh+9o^6cet#OzT2R$PnZkxfN}Y==1Xjm<};1rrRWAO6mJVHB?-t!=y&xozv#X&_<(
zPe@`IoHa$~qGiM{
zUbsLKNGQMRCSG}yQ+tc;2>bo@(YMe$&ZW;fuyIaPZXJnUQ?A>zwD8*)Mma-RQ7|L-
z^9jO(v+wCq<6N|$B{>}ZHWbnX&Yj!V-p-|-9rTM(yuKD&=~!4;aJWP@P+>ataDn1#
zvF2u<*dq8DObuzq@Pbbt6ca=vCp`^95{VKF0Pu8zaq?=y
zpdin|0Dj$1TANx{`KyVn=CPTCzk?Bts1C?f;gp-1NCIlO8s{~Ha3t%;u@WCzX
zLjgYG$4Vq@uWG*AMp%966)c!hrG>O$o0EZ=PdK14;g;=H5}@vf7mJht_g93133MX!WZS&0zi
zVacj9vMqkFP>>5h)uCX5_VVv23UQ7nwjeJlZVu7zB;s}Jh6Lcc96fPmM4|(5!
zGntyt&KX6wPSPz3=TOGU!3)22z3dz-?QJOnGR=dRru-VrABxWlpr?W&5Mk3tpPVzN
z;sfFC_-Xq?Wi1%>B%mrOW^NI;Y3|H?2+2WP=UdVkt2l>HPU88z2gUIJG(v%t`Bq4R
z{`U&tdijYUYJYBqDy@^kIf&XDE{-zZ%1V%}PJ(_x{6Rx~T5?GCKtG*)z-Z!-c?k3?
z(4xp}$~X~3xHK)C3O{$ije{AL^jOv>iyx!uH<$W$uhWww@%QVkzo2-8?3o-A<3MqfR$)TD)1Ubq`pJXlwQ|IK2t?BcxS`WC;`gUrn
zglF2_sp;z5nl1U!OCcEz!qCFpM@c37n!Akm%(X4v8tuE-z08vzF2Wy&
zHd&h_k-(<)yYX&H^kE#(7rT$o*n_5)W>%I;{$44B!qKk^Zq+7z)2Y(R0cCNE9=BF4GKf|@+ZC#
zc8yJq+TGn!EBkQbVjC2}kB$}js3b)V|KVPU@9c)sBdZ7Mgi1qItt0nDDM~DPqnz~C
zLKqs_4<~ZkV%rahsl|?I;y#7cGG3Wf59qiU7|?g>S(WsiJ^UY2lrUMzV~Zb1Y$v@m
z&SM)V02O&rok#vGXqqt9~a6F?BBVQwpl2b>OnNO{pC{4!M>{*
z+7+GUk%epKKG1sqF|iCk6xFa;4F8fTfRH0@O50w`_IH)ry{jFX+_73Z%_z)qO{jA>
zbacr$gHLl6s%%X!QP4KbCaQM9Yu(K)ufn5!;v~di3^f
zq^A8|7&E1r9H31e@t-L7l1@H`-24gxY7V-gtNgSf(DXr&J9gytcb1(WM(w?wKo2}3
z@ns;>mkVQmwdXoEA@!*Zr?aHwbxqIz@v*P)!P|FX4lDk=kl9yIxOsBv@YihV{lnSW
zT=JO!VqTt$&+Z+5WE0iKA@_>gBI~qr4<88-**-i7=ewe
zZ)%ml^Qiz()Nokh>SfX%bb=1Y>3;T~vqr1A?Vm)ctEpB0Y!H#EEyavOBW#0%gQRcb
z(G~XH*7QEm*=XNUn=AlQ7kZ$9zVKY%94D><^qW?ciXq@3T&nUPxV>j`4FM+;69b@V
zoUhaOA3C&%ywWI&Dj!4fxw%O6^_222q~^p0*B!Gu7tnqQ87o}AqjPp4IYJ!a3_#w>
zuZchhGVB_?eW|g!*>XhP2V$yoh&*i-v-(S+_wFTED_ZUJ
zW#VK(GQoq&nXxlr6Ij*G{&iI6iP|%0M`VyDA`IN77ZLH05eN#yZn?hek{x#=L=qwL
zajoR~4OXe_CsTCkXX`sXe~GcfjpUkBug;WQh?vxnOU&NAx=0Wd^fYJ7w7(1@1AKuO
zh_&PU6C|q8lLqm;rF`hxBONM+fi1Fd1van-8`A;>(kj7jv$=JnR9i4xpL9%sh
zq*pa=4=O>0x?`s%-uNh*1oH;W-6g$8M|%iG(aS-u(i>dP?(*s$UOANGige?N*xu4o
z&C$^G*6N^>eM@deZT@h!s4SP!vez}35tQcN^J~VDRW*@S6=s8TuI}`T-;0uNdqc0T
z=vy~mVI`c%dV0*lvbAOD#PyZlr{Bm(`^#(%;3?>pv343+V>{j9^+>;buF1Zwye{wC
z-mbmbbc+);VDUni!OpGCZ}*m}Qqk&w-rEj7<-N`O=313b3_IKA4!hXtaBUHqyx=^>
zK56!-m(eo)d?yz6>hDzAqr)Tn&F&pw=UXvtpHplSyy&%yfO2XK?8HpITAV;ij96vM
z?c6n&qk9bPH3BP68
zSz7VPJhe}@|4q+|%e_XRS|(Rag>i9+T4aiPZm|$*nq&W9Pu$)I(X}1yi?7U-&MU^7
zgQu^EGQ#}uVL3;2MyXM~FC(ZRf?LvCWp$~_8aFGMQk2;9!&W#-X32Fwz}Y^G_Nu-J
z5$!4bertzYpaF_u#=&Er!jUM3ndN`7f6(0@wB~E
zCzB~~*W8uYZN0PYdUK~w^Yb(nosfMmQbTuJ-BvHvN$A{o%wa`s!Eh1w*f;5Ss_Xe<
zAF*p}PX4$gUtd$USWP~B&rJP3)>nOPg@}%+6#`voLSe}UyV(2)$2I@F-*d0gXQsb>
z*Di16u-(#hpRdi^R^(s2+E-l9e-C$;YSG-Ehn*2-oII>fu%WInUWAQ~C(P#}ErZa(
z=z>62p8ST{*SE+0@Zo{W+H&vKH%HG
z%F0RG%4wuJ|ADVbfQz&39{$8|$F%O^=@9Y0&d~gbL-|R*`M>j&iUMXRk8koK1n+fy
z|DN5G`;%~0+}clUUJtBLT#_f-|A)KzlikuMl`XJ6F-g8ceJqfD@L`x!0b^IT%OsH<
zplgfqYK$+N?a`(+r*~yXsj~{(FV$!zVGOy!Sr`G9=~$r5gb3>*v8s>ubJ
zAS!^9#UoY0$;{&0cZuA5{P;2KE3_Fd8h<%*979ZIoI^-woRgq!mxg&%we*veOu{9KULj?-{VSqjofxoN=gdt*@(VlJG0B#ww?SLsF6w8
z)PXE;+>&3@?hd?MG7P1vP%wDE3D|l?Sw0B?m4?hRch8i5srFg%bMko>E_)2jpIc;T
z#AQ^4o`Gic(mFe}@72AE0%+X29!Qi>MT0tyJbG(IP?ce!bLW4vruqt#ym2grGFa+~
z0(I>q^7n^us2297ln+8sew*bqty0vEnz6RF0+Q$k?M2fOv$8VU*O~yap%*s$)h1@S
z0N5-$HUBX4bX#a0WFP}4)hBO^04OP4MwN?+`~KcCtCjKXL8NWO(<8~V?ino}w!Rl=
zY-H+_arx%XR#|5b%O;@mpF}zQfkFiZ4&;UO){Xa|GCI=i?p_W=`IXWdSu3NMrbj=c
zF6kRD7e*E3mV5cGkGDFU6H?U+?0x(C0SRQhQaXK0UP!Leaa=5l(;_w&9v*dywO@zN
zRm&LHaDtC5nL`LH?}>428mEqVY1tlUz!<-@InQSs4HuhX3b5|x{M*k_lbt({ak2fd
zdFfq^On^IbCY_xkPpfQ?61nj*q!u;>E#|5
zx>p}B7^Pa+=h!6is(d`}mx14>_*8%<{j^(7?(8G+Oo_U3vGKu%vFWKr;V*&qm@yun
zpt_J;D1$fd#NO=r7^Y^=R?K0~!GDpK*ncw~
zMk9s3?w}KQ2}F)C2B@2o#s$8vEh5`QSiMC8<-2!JG2%80G2fO%wOP^(oHd-uTLdz8
zqPT40?f>WjG2cEN{prh}9T@@9A--5|bKSc9StotDW~-~6I-r-2e=hvsqp)kXZArQ7
ziR}^kk1I`U2bb9~f}C#$2+)z(*wQ7=40|&Snz98wHRJqE)nj>dUR^zv7$i8$TbTJ+
zxa5B`0Qi6Q+y0-MpBV=9|Nm;}_dj^^2N3e;>nY!gDQzwJ!L^h<>e}pg8V`cV2=hm5
z$r^*Y%W{TYMm~r|h0N=g6Nt+g7!%tl$XX4|pwFt7(;;QPphrK4C6q_c8bFo%j$Rx`y@6hKdtiUYZq;
z4%KpHGrHuC9}jlu<23m`q};kN)H5JW6}cG)E1N_9<8kyB{1
zkHVJ%fpj3ap}~v;rmj~38c_@8*qJ`0X1m(2texUf*LF4lxE~#A^%!F!`K7PwhRf3#
zB|ZGL=Oz+#k4W4$ULWTo7?=L6e@`lJzeTPP_ZKYz{zB>u^jWVn07W6K9qJMJnQhw&O;ozXGkGKju04m1N%%!5;2SCnvnzB>n;7t4Ww;A(NQ=5T
z=g9bnc(bpr8Ie{wb&6LcM-2m{*=25SE^U@{4t#k+dvOy4Ry6~5@B+8>>~dZfG4p%|
zY1Wa{ax*m`d2(-wdZMXM$serf9znnao~vLFxKqguKvM+JOJ0_aU-BQ6{Q)I$Ck;V@
zvAa)SN3&uMaCT-l)8)(5XuTz?*Hg0njxW_z+RsSuVa?E|)ekXusMb$LWCZ#>LS|d1
zB~}+qf-GcQO?fzhDP(!MU}mXiOASX2ryB*{AQzLXzrhuBU(MOof%2OqJ?rgqJ-TOUzn5%xt4jV8ITzym8sxm
zzzNjkGHjb=c~5Nkn6K~y2Mni=PoQYBPfw6M9hhxUbJ)Zmf+mnlP2P;dZwX$Zo#AG&
zJ-`+nsUWL@PlJ3(QY973&s#htTn;-LEwsl?D=suhHmel@EXD=?lqcxf3dpC)W`rsy
zfT}j5LzomD={eyAW)8gL;2=XC(%~ar0BR4)pTep2-9Dql(}K$WATd2zX?a8xg)!ngM)mK
z!=?tJshdZE+GWV7bGKS2z%O^wO@|^62i5yYcF5X^{069r99<`T!~r3`t~C$aUCoJx
zH1c}?$#z2KplE@@M^_o|N)Pz3Y_ULdoF)1ea_J;=n+}rj?`4*$QMhGNSTJhbfBWsX
zvu6HT=oY5ie+vckEA*@)x2)A7+#4*CUTU3&ci~%XBy`?Mjvly$jRn3QN>Bqax-*gs
zZXZCLoZ0&Ulc3Vu3lQOTVsE3*761m1{8XPz)IKvEbWC%|0a?^
z$%T#qADR+vCqBB#@5_CQCf}=M%7daeFC>gq7W(S3R_YiVbbojft%#J#_GJMP%0;*J
zax$cuAZaFQZne&c3WR4c>3vdZkhH@F&d_iH)ggvT-b6W(o#``Sn_mKA3pf7J8~EsI
z-p5VtDo4HVqC(TgBqQWhc2TL(!5%oP;DsV|&5B?mT1v36rmHAr!h
z06Jol`SMXy1H5f1&WoL{m$Y85PVya0%o-1Y=Fl#T4Ut^>AnAd##Mju2Uv}ftMn+3r
zv&yq-A&|3_?6QJws*jbSvRss)H3|+;^Nd{wV8WPzCURw_fO<%>V3u!J9oTofY`X6F
zh52tu(Fw$eumoWJMqaJu;E5p`3?XYFV?u(usbPl14g#buV&g|&T#5K~l%0eUv8R8r
zL|u!6m`_Ya6KfL$aw;=J(}?IxD0Cbl?24EkM(^MZwCiGo3~Q5hJoe}jre()f;LA)?
zwEX_xsSJ+gf!d%*@(Z{o_yfceCkeBFV}D)3?ITM(Ng#*pz20ug9#vkv^j+GeK9Yn*
zo9GYJZ9CB2uyy6iRJ0sYCmt2D^NIv{T2)=LXM9b6;6QuVM?pA`$WNY4MiYl`+jBI8
zub{R+u~U@-Wc?sj4apQ*Ce)5eN<%a^<+9rblYYJ1r)nc10o6B
zP&hzGrlHr88CNHD{4T0ABAh9+`#BwF>Mw?3iUB=J)V6~1`%eH}p)g6+?6+Xid!q;>
z$9o0J-tmcN#K0FNbAi9kZ%VpOD0gcbl-&g>KA_gg4v=Uwiu9fsKf9ovtrzAzq`3Qb
zc=&PuixK2_MI5$$3LjV&!3A&^1&y1GMJGWjsA0D``6CY-VjHh{dul&(TfbG3_Ieq=kXyCp@fg;Md^lt9zlAxc?oNajk^SD19c$Z>?_
zLq^ck3kW6$dc~@t86pA|&j4b~6|k%b!n2-`J_Taq-J@IJ?nD)`b-gWxq*F&k5GM?w
z16o=s41$AbEi3(1jf|9wop~&w>tjL
zgOgCAD9cQ-$q#Aemw9fDhT&hD#WNI~G#Ui$k5<3ob~)1+JY~preGXson5xXw&Lv^H
z?_174tmo%&yRNC?RMSt>jZU3|Vk_C@LS=#?9$tsW
zqYc{j&BZ1rI~Np9wKUtEG+PpPUE^rOaI((b8e2KsAR+sV*
zwgd(Y8GeYnP6mv?+eE<7dVUg*qC|i6BiYSiwd6#00}$}=;l-Hnr=`{ILE3^TVb1hC
zAs!k9A}Z_h#wMm)%io*e%D=w!NRQgCiQ$GO@&*%|$8{IKyOGvlF`bBx?)J>F0wG){
zlrZXT3{`vl)pb?)t=?4FTYqS8z2#;wKkHBSwpR7%I~-DI`|Iy&Kd`!LDpYNJ-sqNA
z|9tvIx#=YQVyU4s5RI^#`Akb@LU%4+f1OLnjU>-i{Qqs2ofAzB?Tnj(Kig3@HKx2p$I$)6gr
z&%At@mbrR-kV?hT5l4nv)xQ(WRUdOMyS2zo-
zupjtc?9#VbKK4L=j2|k}2C81pGNC-hW^0jkYpA(A;(ns;H{EQ(95Da2Z
z0`?Hm5&k4dMaEHx*IL&}N{Mt9i?kr6FwrwoTV~VGWrCb612h(s@5S~*wCUu&pm)j(
zIwJCgm9JiKIk-jF^e%VQKKpeGSy^v-NcTz@Plx?ichk2t1~1KYeP{o#D#!lV
zn&xPEThE6M7TNuVJP!Xd#m|QuU2{VlU6qjvW7XN8&`5SIP%$hhYT1G20wVK~-oxd~
z6u3y=hx(e&CLe^{sV55M8;Edx)ePQVDT3V2AOCz}b51oLzS%c6#=d*vTD5ITzJ^I9
zK0j}*GkY@eXJOU0rZ9!ZFjQE6fMVR;yg)INA1R|UjFW~t%nuhYP7gmAprr^k!=Qkf
zP0aZ*W1J+whFXY`En^^%rx{fnmk6ot+_@9JDMS};KkCm5d;?q~_p5_QUb#sV-|$k$
zEaNAd>A43Uf>1TwCoa28ju{yC{YhQ1v?n17BL_!u&=zm%HAb=(=%rSRwT&C3@0g>)
zpk|RHRS_%2s@y^(O2FPY&KTgS*h_(3j?siX*6_TPHuCiM9PLbtXfDIz7
zXr~r9TdK?~iV}THANAfV3LG3LFX(95R2@My9oM}u44Rlmsu{Dl;PPeiqoXBGIZ#Y-
z_sshV*Ey=`=s?OIw7OBGA<0Y8xzX4;kAND;&2651;GKjx;W!GkwgVNP*>#Z`*vxk0
z-fwk1i8FF>)3iU!$zBFyS$tSD*ZNQF$24h&c@txwGeq;-i;Jv)Ib*sIk`yPqK-CU#M^7E8s
zPgD7$gQm^AFUdR&DTr$Gw=k`B$94z;=~OI8ifd==bmO)4itv_{^X$J}t6-972-?*N
zt}o`l0^M&J`at$Ji{I}KZEU%@CI>WjA4X-l*VeAZYeUaian9%uR(;&`|uwlC({mWfyEwG(&N3M_;^X0+t!3qd*W!_8cG8OD<}+f-8PqK|#xZqYqWO1VeXsyb<3Y@Y`=+;zY(xr^h9GA05%+zbAdRIHo%ePNzcLt=pfZzRtOl
z9rK6y!S5c7hgN?#I98&rouZmlx8*K(pu~m)5(O8`vl=$4yw}a|--9(i@TOS&f!g=z
zL@0=<(0$+b2kK=N0wf+wEdf-}bhyhXFRz4tmuTnxv7xk7&t~t~7Gy1+sY;8^-`|Q|
zN%`G_RSgwSnoG(G6zm@kRyS!F4GnZZ9*0AW%&W)6XvJ2uB8l_)JFi_2w1AZQLI-$ItK!?sLo(ywBw{7O}!bAu^62h|hpduJ+fI_4^M
zERH%hOm@y^t;zd)g6-c0km)ZuL}#EBnec2L_s%dmXUgBa;b?l6#YR3_NQxv(jV)^Q
zfV38g>XL2~Wqstktl3tiKFbA=R^gqsXvwU^axzk=JB2zt^J^O~lR;0dSYlCL{X;A#
z0@e>_-|oz}Z2MI{gJ@=3nprAizBz3YJuPV6a^iCEaH7soTufQsgNtzhX<)1TyJuCG@;4
zu|tmD%=T2{FV+TrAT#iC2RXVhf5W#Yn(A%+YR}i^5s9ZeLE{aFmt!Y
zw?2c?plqyi!RFb}YjZv@w|m6mxY1@gHBz!M1X>2qPNkWTOOAv~k7yk7)-_tW^4z4#
zO|dVHAJ&~tGUqwFEmYUEW3*F2`D}ar22VDw7z*tRy8PQfm%jf%Sg+x+ldvb-`6@Vv
zN(>G39k0=z3|$glzf{xAL{)g9v`xJf{Ze(1`DuKc+H@Kce#Q?a8tx$8$QX}*IA`+J
zs_J~&cgTA-X1WG4Y<6fnGh%*oaH{#js{8!p!mD$J#Pj$^Ywd`q|&!VS&4&i^F0x`b>$GfKYr*t?$SpVNO1pepdS+5a){HNdiY?e^bWG^};?qY@n
zyXjPggiEq|De=AVb^g@2-O%pdml4B}*l8rTMp@>4;TCOqfwc@iRa&FsAm?J;_!RSH
z!TZ|3Skb|DZ4H#TZI50M!tGRhchf%^Vwe7%qVSfrVLMC`#jt--1VRXS0yJXoS&Bj*
zG09c<1xZ;m2YJLb#{5}+fIwcnGnd(()>(nV|El7_7X}gjOJ-$Vn776D
za?|H4?0;|M`mY|g^yapGaF!Ww2HrGWE;(ILe!QXlewAT@`RjAkCoQ&(+_s^QCIjCG
zs`OG-6$x1a?EP{8N%CI2*l3Cr@4Ps&z|yy|?G|?|r(&BO9e~$uKl|#Q9vL#te+fi~
zT$L$vBu8D;Bq%=uh|N3(UZ-tgsl#z+_M@rC2k1g#nn@>Z
z(OMPi;X5)x$otutU$7Y@aHR|Y>U$_x(FU?E&4Lew@pdA3&3`rGIxRFd@B!P{@^0B7
zkK7eJpf9jJl|GG1=n_Z!R!2wD>dh4tGp`dP!2jxG2CC9IXp378YH7Pb6C0~>ts|J4
zHXyghLAead^HFX!#%K=S3{BGI@-9xhQsFxIf@Hs`E|+||L0Xhmp*h^t*ILNzK1Hg>
z015!ytb?!hG4k_UXbpo->hCLGQ@M>G4=Rm8W=pg`M*AWw_ipkdj}21sCR+%i?N)8%
ziY-CI{$lEnFhh-y1hN_ZrSf63+2WCpB)Cf$5Vi-N1hx{Werk!QS{pv*4Q|115^jAu
zXCWSmY?6hAhD5kkNsRbvQPV$y^W8n(?bP>mlW4k2MxG*&vpNvs_O
ztCO!Do*>@$z!|C)k_jSC{)8%~^sZ=MKqCo-uJvSwOcf`GBp69x5ueQ+bC7%gfEtx~
z7aAwpm)q0&_;4w8NkQrQ76=7&lT>*Cjq0HnxePatG<$oK&Lm;sP!6ypZAl^!pm667
zbKBi0G?piPOV9}#diVhvE~XJlAP43{?Ai5%*wJV4kmXB&oeFFm60*kZxYUKc$yIVz
zFxj`7ZkJvq^LB4Rj_YSHsdu-IbU)d(Q_P}K#$l+7lK@*lv&5%4d11Z;1}GX2bC7}0
z&VU^9v4AV+LFuLBB!amow;8%|pf0@R8vZ7qck7HOpc6keksAeDD%7I^viqqYv#y9qdx@DsO|?Kq~uJZST0CWAh|xti9m77|KbR5Moc=FXTBxecb?m|8&jz
zaVGwWnUMz%BwjXA_i&M%W;$9qbKvO19L!K--6Wf#(HiDdiL(()jDKp}@K?gPsjN#y
z%gvf_{Gfjz{Rwi_kso=saH>t{`oh`aKRSdKFG~5$=BCN#AW5C9R0>4rb(Gu8m4KDgbG(9PVtxXU2Y!%ZWr9yN2C4DP8+alU1Z;v63t44*5d=u`
z+EO=!Vl`5(a`2-Kbtme5qPbKkrK=;8>j2iak&A5WUQjbBVCmu(syLH@1*95yL5;r(
z8bndAmT_&O0VzkIzYRN3Bd=Hpe{2LMKY|{=oB8=0SOJO&g;P(KJ-`e-6evlj)u2yn
zD|iVjSH6V+fHw^_GX16+zM&yRG-lh)#g4Y_ilAO(UqB+=q#OSN@38Nnh@dU;JMfs6
zlkBYwJX|(gwd7$|?lOD_ZO{FmAn{j$V`C(}g&^-`^ndNd`YY0(eh%G-FE9}nX__VM
zqSjm{C>3I>L-Nq1En5`x$4uuI+x)VQs|v2@`FxAmWGJcMUpHtdx&~$MDMpb?Dj~_ZdP)MWV5?57!9Z>dT
z04aaL&=1gq#)nr^qqHjmB%>U1ycSqrWHGlDWeD<;QaEwq1er2WDaNu(vuR8X5)|iv
zNE1fjd%$sYaz?54VV2Op9v^r8$|Jh|#6
zB>Mx_(Pm!=S;}kTUeFLMLxp#W{y4b;T4~C!dnj*d5F-h9q$W#hsZkw9(M3fEtXb(;
zOAf8Uq*Z~{>bP!KUV{
zSqhbgi~-r?i~+H{N)0KZtj+ph1HM~E`r2!_H=o=|>^I-m=cHF~ZO4LpcKv@ynAg1k
zj{vB8H8FUpeKp5{crLIV(>J_3+j!DP@jqaY_(=d;i-9ZSujI_!jI0j!5JZ*%zEzPR
zE{H4+Rn*n}aV7*`5eXw;rcamcZfUt}Cc#{&&V}hGI+3{#d91Tw#Kw$KrQt{sWNM@-
zv>UHkD3Rh5j_nr^F?O}$rzQfLnErb4u*nJB_5q4VGM;(Aa$7u>Q)sX{#5G53kB(_y
zbB}F3mu=(ZFfax!{!vS87;@zq_175>Rr+Ln`1HE7MY~-;hKkKIzD8t7g(?w~@;gKY
z5~?Oxfn-wx0-PvsAZ;KLXx}|CT;WH$P6(j9qnia)0x?APF
z*(z;t>3S2^r7y;UVz}eQvihjekIH2(
zmKwooq@|XKVZbXR!T9KfC-#fJ*6Hc#Uu*G7-;zu{@P5)ard*Uf9Ck?{{+(%Cy+OeP{K!B{o&?eNQ-oE*}AzN2^K99SEN{V>(Z76&dYIz&Da
zRX<`gnqo+8a9@cX$HPmBX79ZFc%uJnw$6F+;)hFsRNrXhIIqP?0ooS#<8+2NGNQf<
zKP80#j|~*pG;vLkCYur%aVh&v4r?b6ot0|8dcMjMin|}g#AQ|ch3RF@Zqq6m0F*I0
z?2U3Bhll?}d0#-j8+F!7Lz)as-XH*khFliA)?*-R`@udrslh1T(D90jQ=X=)^$%p`j;Okz>d!?POU
zQsM|WG#zpttHW5$`hipr|fX=P#nvAu>lYbjBn#
zs!nH$qS5VP+aY@rJDDZ+^t&WA0!-E5ohj4Z3)As%%vxl%;7kRuC}Ve3F|!f3HYSxs
zE|eSjiG-q=2f^~P#2yGdwJ9=}=lCl+nGR$>DOgRu;Ixet-BHEbGG9A{+_@;mk<3Wi
z{(wFaFU2Ez^hDRl1xrFC*WKNngprE%#Zzd*3D2;D38C_?F7US4`uF8jGeR5d)2*As
zFD$r9BcDV(NbzpHW@^k^JFpMmBBLp)kBS01O9)3HX^#}d+>>UdPFC;0`OI5vnKc+|
zk+UYq%qQSpED5I5(VC}ujounL`(4I-Uq`&r^B9lij~)h8UW4Cs;l
z5Knw8N$-IgzXVU{IH`uXMclnBKs+q$$dngW0g9?$r*gsRHO3o-Rh4FOjf9oTN84g1
z>aVMV@VPx>Jk)kYaSAA(BIjPY}AGJ|9twCRUh;3(V2nRuOpFM9FkqJ+EYlKeL5V>
z)OtJfIw3%?<`17;O6at;n%){=gL?Xyd81Jn16&ssy;CNWOFMJpLY_o#Zk4gv@AinN
zzo&mREayRdrXRzf1b>^cS$J@iyiw?d7VR_lgkUWQe>WIQi1L~}-q2J2NKGvzT76Nc
zxCMu{wCfgt(BKQ@Hw)z@XN!Fb5cvtkYbLz)z+3^89
zjG^2)T7FL(ZP3*}~M`}vh~U8;{>kREsisI^}5
zlwELdkS_ttlkAQ;#rz730-kNVL+z5KjwbVxlWEWZFw}UoaAr#IeaNe
z>?rsrMyqdW8H{TibdT?fd(z{f%hRwH$oIx4=iJ%(>`=fq+@L#W@M2R^>~>xUvyPYA
z_w;Pnl-{?Dt6E+hz`i0wc%~Y2FxuHBL#bwI~)BR@z$vZNk~ygp{6=ZRiq
z+p#0Bot|jdZhgGjQ$R
z`2q!!WsnQ-Lh)~4e{2J|9KHB419AQ>a(WL?cUSTL{_S7Xr29yOiB<|O1?DG%axcne
z2$&&qJnccDq_dWsRmgI(Jg8-7R@O#VlCDh5Why^NfNwLfzl2D$4xDuP;Gz){j)p>np5d{Bi}MA|=+=p3>~4zLE>Sxs>t=L;e)hdUH)mAl%j
zM6(VtPhM#%v3lkz!cQkft7ng#o_R_$|MqX~gV-^hpRQ?aV6WA#8UE6>XUDnzZ6`OW
zJ^A94z=h;r&n`Yy;8VV){k1{;R(IZO?<-@4ugO;)ieM>Tgnz-X8x`
z_0UT5lyhd5ir;>C`EBAI!JW0cR=RHvQvSx|cv#6~^N`t-rfdIN-Dalps>XDUXz*~G
zb;(4@3G0$ILBmd;T;BP=#O!CT_U>n}pU4?=({%2ssVR{!**egT
zHRYbI&mP|BRDEVsmcscRt$-MIyCp6|0wyR*v(IFmyKXgB?80b_iRvmGCP)tG0hOOtQIh7AT^Z8AW^
z;%Lmh3+h!yp7GZo+Z}QCe7b!k=AO4<4?o*}TV;Qx$b*+W4ecK8^Ey6%`c#juws2#8|iuJc3@7X#Qd}C=AYYaBk^mS^siO?
zO^fXl7r6v3%6h)|KwC{@$wK+f^KCYJJ|E^{f4MDQd5*Ty1?_#jRipORqkndGUd|f1
zY4L}u^&hskR(4E0uB3naI(=koPvb3j;pry5G)TnOk-A;;Imt&GG*k64kMz`5aUthcR&uFPXx9;PxanbIW__(NoKI{~4$u@tWPV8l**sGk%10i8X
zA$(a`UhmyqN7qb%Vvz#3{t$!fz8ct<F;Sv&O_Bu7zLuzNdeX*$(nm_zmjmZ06g~~dXS5zEg
z@Z3gavjxmFf#!9)K6_R^|8_y2foSMrn|)36=YE!j`s}~0`V3?9|L4cAeTI7<`RwB?
z%yIT;hyPDLd6mYz3@d0K8HlyooIUHu!E<09-Wy)jn%T?8pBWmGpFQEv#`gVc5w;;{
zu^(3Oy?yYWAIGNri78g62^}Wt$F(#5NwdfN{Q2W5o@NR9D{+2t=wD6Kv!4QtcKEG6
z|KHz&-t?cIWVd7@A|hz8vB=fTqrcqb=NVq2uzR;P8NbEGZh(YpXGK$!ZrrCQ7yHV9
z|85eQwb8nvprDWlP{Zkisjd)+SATzT{bI_=mXd^B80o7uCz9=Az4@DuW6bpruHbmssH-5adr3E-eNzY_sPb>bSCc~0*p#!Xe+f8LYcyB>;Uk1UA
zjg2B-E{GtU?ZE>fIC3fZd_RA_!SUnaT8@g!%E|$#KnDf|6_$OGiRPVA@97b5krEPx
zCG!C8EvJh>7VjhZT*#KLulf7V**c=`9lUqA;F@|=e0;n|REC$Amq_4`=Xx4LP+>L%
z?AR)RI$R-miUqgki9hU_{$pLwd%ePzDkJFY5I$xNrc4{E^BZ#&eS$2qq##$P;^^oo
z<#6m=cYQ#2cQJ9eIIVe$Ab69};NC+~o(RW+2k1>v+cK-OulfscD+&nx*@Ky9j
zlhsCymR8B^iNfq)bRx8(z`JhuCpRo!r8V#A@1tq1<7q@kH;_?LRaNEuV!q+ovtqO_
z=Ul7UI9g(RqwHrBQ`17cul_dIskT-D#XfN1-y!kK#|tg|Bp7W|UdO$CzNd$WK3X+|
z?M3pZD__6XRM>W56e-b7WS9PyKKj6G3=S_Mav}!LA%>z4VOxBodAkdi|9x%YQ5e&g
zD6uBJMnxYK)QVf}JbXRFd(qkMf57KXW~OXNNQi-!D8aWC)zxY^5~?J!^3Y}e$C1!k
z6|NBK&~eYH<4~BAPYeW3T_iNt}p_pXH=N1>#mh>T1y
z)L$b!KFNqqK`QDL8O9YLkoN`FWUPS|skN8<)QFV<8hFK0%gV~k8Z**8d{?0swjm|K?QqIf@0k}NG%pRUHt
zt&@|J2H%Tap7f`dJ#voovn-w*h?d_Fv3cB4_md;itx0}0-6uTl14aI|iVy(wZoyz#
zu?5elIk#ad%)!B-;A>+x49waLduxm^bRuXd*z|_75on6s`cuLAoYrH!2!mz9RmHuPoHjMJ~OTrD;j(9l@zU@kM95J&@2|Jk|2v0E)9gY)ae3J*#MM}7vMi^q^;+V}XaDqo3zfSKB
z3HS;|tWre4lis?u@R1>gwnd9`kE1Syk)hPIR#V+^4Gm4re*}!;b==RsB5BoPiqO<7
z4taCo+;L+B90=%R9`*sMY5~Bq0jGG3Izyp=V&Y#9_bsr8LTDJ5bTvFl<7vf2IX>0h
zGqn+gg?~gk8<1y&E956DW=QQFLks+r?!EiJshDm^;~V
z&SPg!f@1e!LI3p-0O6Z_zq`XA=)t
zSXgj=;ijmruFknyadz@A5|Na=Me!fBojicezS9$>(>zZW#P@r(;2b53q$p%MvB1gA~wCb
z_5*Ykh}c}9@NzjOeG>F?Fi6Qpa}*i@T8#KtK=KoCfuyYkg(4y%KJX$jva@@{6Pc1CPH=;UhDHI${FBEu1I`R2
z7+AGDfzP8A@GE~yi~|wOJv_r35#MlgaTP#YydefMx+Il=2KyY#et^ntxH%;wqqavZ
z$^>22aS`#GUwoXN%nzGT1g+^hxeH^S2;~ZELe3T1?~$)L5m9SXm4oIkNQ;Y$6H%Ia
zz;@XE_5mMKb*3Ies(Z>ze0(ki9Ro%&AACqiHG%k4kl$q#(^*(wYupn#GX8~wV4uUQ
z=tJ7A^zPKxw19~q9I+YMp21i9ZYxFl0QbH5*YXdnz6j)nYg;ngm7DwUQy@YcfFGzJ
z-ID$1kjL^(jk|`-6^`;`
zIBP1=Ak>e3Ls|^TmPKy7w)Dm)18$o(uY>!SI=e`a`yE7U_WA^)Kv)Ysk<`--8ga_6
z0J;gb}6|
zuM_g@*|Syo*;Ad_?__)IRnygg-Jcmjh%u{6zK07#o0w3@X9M1ipW|tke)4xA{zYYa{m%Z$RpnbW~tVN1?jFG?Uh9^`r6M=e)tguEG$IVZd
z&<1Rze8^k9G;FFpY>grT#?)QXTJSUWB=((}O@Y_1U$^qZ*}q?~ASyOCmgftb>Z+aC5qyfr
zi!oFH#u2K;NepS5%{mu6thdugo@i3`HBNb+DLr=_)-TR3WRelp}L
zQAR&>F!Er2N7VyS#C1I{sWntsPCtkN_fisr5iE(r$hFa%?0=wPU>L>HuyHL;?{pNo
ziFW#r>;~^N>JG%PT7X;c^Pv^fx6gaj-!t5jvat4^9^qzvpF#z66+2TW8)YJY&bP?(
zSJyfAk69aO_QJ0p8^d>GljPGvm?t`#3;Z8TB2s~~au63p!Y#n0RXOL_l+TPgqF2z2
z!QkknZD9JJm$(b;iU?g;w`~qR&F-_dD!+9Gf)%ap}>x^gi+c
zahfX2CVy&WZm(MDR)>U1@J=zquwgEd%_I?@A39CAj
zXn#v(On3-f#N~4u1v8^hF!m9&;VPhwJM9?s{yxKb#R`piA5USk-AAi5Eh|INaJk{_
z;o>b@V$?=NJJB4&_6)vO@W+6wtd{$+TJ;+AgJ@4hq{S>^My7c%8vFP1IYkh`(8Qj)3
zkONmgoVR8TX_>cdynLqAogwmfrRsq8;X)ZQL?Dei8OW#EqmW;a;!F*7l+R$(7CeG9L8i=qR~#fNElr_XW_qH(y}dmjLkqc8sb8lap?4q;2qOm;+RZMGvyse&
zW~x~}iK^fw-w@J6UYUdjOcF?v`tx6l3O-p1Dfc?Oqd;LiFeb5##E&PYdZt}CRrA2v
z3;~g1U}?@;x!x;8@-%STlQmWq{|+=wTTan$Q0=J7Gl&2MbmiKRvj;i(&f(sra8>y^={rm5~|Blj-=j1S~
zkdjdDqQ@&Pq_6?G3~2Gic#%*-zK)>LmJ;u54wUamT-3pP`gV49VY>YM{G2>I`;g0#
z2@L&atM;!qH$ec6R`>Sq?h<`llc2!B^6KgvLqkJYsR%0=P0<}sA+;%xo=@Rn>Nc_{
z5Hu9R|CB^sC)g}GUSo;fn=_V)Wm#OK|0oeIm<2IeljYhflZ~GQXXJLLKEs^;zpcFg
u&&gRY=6@bL>p}cCLp}dD4LF|(`3
Date: Tue, 14 Jan 2025 10:25:41 -0500
Subject: [PATCH 09/17] One more small edit to intro page
---
docs/guides/qiskit-addons-cutting.mdx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/guides/qiskit-addons-cutting.mdx b/docs/guides/qiskit-addons-cutting.mdx
index 74cdd653fa5..59e59c30d53 100644
--- a/docs/guides/qiskit-addons-cutting.mdx
+++ b/docs/guides/qiskit-addons-cutting.mdx
@@ -5,7 +5,7 @@ description: Overview of the addon for circuit cutting to build utility-scale wo
# Circuit cutting
-Circuit cutting is a technique to increase the size of circuits we can run on quantum hardware at the cost of an additional sampling overhead This package implements this technique; where a handful of gates and/or wires are cut, resulting in smaller circuits that are better suited for execution on hardware. These smaller circuits are then executed and the results of the original circuit are reconstructed through using classical post-processing. However, the trade-off is that the overall number of shots must increase by a factor that is dependent on the number and type of cuts made (known as the sampling overhead). Circuit cutting can also be used to engineer gates between distant qubits which would otherwise require a large swap overhead.
+Circuit cutting is a technique to increase the size of circuits that can run on quantum hardware, at the cost of an additional sampling overhead. This addon implements this technique, in which a handful of gates, wires, or both are cut, resulting in smaller circuits that are better suited for execution on hardware. These smaller circuits are then executed, and the results of the original circuit are reconstructed through classical post-processing. However, the trade-off is that the overall number of shots must increase by a factor that is dependent on the number and type of cuts made (known as the sampling overhead). Circuit cutting can also be used to engineer gates between distant qubits which would otherwise require a large swap overhead.
### Important terms
@@ -36,7 +36,7 @@ If you wish to contribute to this package or want to install it manually, first
```bash
git clone git@github.com:Qiskit/qiskit-addon-cutting.git
```
-and install the package with `pip`. To run the tutorials found in the package repository, install the notebook dependencies as well. Install the `deve` dependencies if you plan on developing in the repository.
+and install the package with `pip`. To run the tutorials found in the package repository, install the notebook dependencies as well. Install the `dev` dependencies if you plan on developing in the repository.
```bash
pip install tox notebook -e '.[notebook-dependencies,dev]'
```
From 9d719b4d7704e9c3fb52f1c2ce64ebf7bccef924 Mon Sep 17 00:00:00 2001
From: Kaelyn Ferris <43348706+kaelynj@users.noreply.github.com>
Date: Tue, 14 Jan 2025 10:27:28 -0500
Subject: [PATCH 10/17] Another small missed edit
---
docs/guides/qiskit-addons-cutting.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/guides/qiskit-addons-cutting.mdx b/docs/guides/qiskit-addons-cutting.mdx
index 59e59c30d53..cd08bef5cc4 100644
--- a/docs/guides/qiskit-addons-cutting.mdx
+++ b/docs/guides/qiskit-addons-cutting.mdx
@@ -31,7 +31,7 @@ pip install qiskit-addon-cutting
Click here to read how to install this package manually.
-If you wish to contribute to this package or want to install it manually, first clone the repository:
+To contribute to this package or to install it manually, first clone the repository:
```bash
git clone git@github.com:Qiskit/qiskit-addon-cutting.git
From ec4f475cce0311046dfc8f8d3f591fc21cd38ea9 Mon Sep 17 00:00:00 2001
From: Kaelyn Ferris <43348706+kaelynj@users.noreply.github.com>
Date: Tue, 14 Jan 2025 10:31:55 -0500
Subject: [PATCH 11/17] Apply suggestions from code review
Missed these on my first pass of the review comments.
Co-authored-by: abbycross
---
docs/guides/qiskit-addons-cutting-wires.ipynb | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/docs/guides/qiskit-addons-cutting-wires.ipynb b/docs/guides/qiskit-addons-cutting-wires.ipynb
index 2c89f64a743..71e5dca18f3 100644
--- a/docs/guides/qiskit-addons-cutting-wires.ipynb
+++ b/docs/guides/qiskit-addons-cutting-wires.ipynb
@@ -7,11 +7,11 @@
"source": [
"# Get started with circuit cutting using wire cuts\n",
"\n",
- "This guide demonstrates a working example of using wire cuts to get started with the `qiskit-addon-cutting` package. It will cover reconstructing expectation values of a seven-qubit circuit using wire cutting and reducing circuit depth and width using gate cutting.\n",
+ "This guide demonstrates a working example of wire cuts with the `qiskit-addon-cutting` package. It covers reconstructing expectation values of a seven-qubit circuit using wire cutting and reducing circuit depth and width using gate cutting.\n",
"\n",
"A wire cut is represented in this package as a two-qubit [`Move`](../api/qiskit-addon-cutting/instructions-move) instruction, which is defined as a reset of the second qubit the instruction acts on followed by a swap of both qubits. This operation is equivalent to transferring the state of the first qubit to the second qubit, while simultaneously discarding the state of the second qubit (as in, the first qubit ends up in the state $|0\\rangle$).\n",
"\n",
- "The package is designed this way primarily because it is consistent with the way you must treat wire cuts when acting on physical qubits. For example, a wire cut might take the state of physical qubit $n$ and continue it as a physical qubit $m$ after the cut. This choice also has the benefit of allowing you to think of \"instruction cutting\" as a unified framework for considering both wire and gate cuts within the same formalism (since a wire cut is just a cut [`Move`](../api/qiskit-addon-cutting/instructions-move) instruction).\n",
+ "The package is designed to be consistent with the way you must treat wire cuts when acting on physical qubits. For example, a wire cut might take the state of physical qubit $n$ and continue it as a physical qubit $m$ after the cut. You can think of \"instruction cutting\" as a unified framework for considering both wire and gate cuts within the same formalism (since a wire cut is just a cut [`Move`](/api/qiskit-addon-cutting/instructions-move) instruction).\n",
"\n",
"To demonstrate expectation value reconstruction after wire cutting, first create a circuit with several non-local gates and define observables to estimate."
]
@@ -76,9 +76,9 @@
"id": "34609068-25a7-4aae-b786-836984d305d2",
"metadata": {},
"source": [
- "The wire to be cut will be made at qubit $q_3$ by manually placing `Move` instructions in a new circuit with one extra qubit, but for this to work properly, it is important that the second (destination) qubit share no entanglement with the remainder of the system; otherwise, the reset operation will cause the state of the remainder to partially collapse. In order to avoid this in this example, we will include a second `Move` instruction which is reversed.\n",
+ "Make the wire cut at qubit $q_3$ by manually placing `Move` instructions in a new circuit with one extra qubit - but for this to work properly, the second (destination) qubit must share no entanglement with the remainder of the system; otherwise, the reset operation will cause the state of the remainder to partially collapse. In this example, you can avoid this by including a second `Move` instruction, which is reversed.\n",
"\n",
- "When adding in the `Move` instructions, a new observable should be created to account for the extra qubit wire that was added. This can be done by including an extra $I$ at index $4$."
+ "When adding in the `Move` instructions, a new observable should be created to account for the added qubit wire. Do this by including an extra $I$ at index $4$."
]
},
{
@@ -126,14 +126,14 @@
"metadata": {},
"source": [
"\n",
- " As an alternative to working directly with [`Move`](../api/qiskit-addon-cutting/instructions-move) instructions, you may choose to mark wire cuts using a single-qubit [`CutWire`](../api/qiskit-addon-cutting/instructions-cut-wire) instruction. Once the subexperiments are prepared to be executed, use the [`cut_wires`](../api/qiskit-addon-cutting/qiskit-addon-cutting#cut_wires) method to transform `CutWire` to `Move` instructions on newly allocated qubits. However, in contrast to the manual method, this automatic method does not allow for re-use of qubit wires.\n",
+ " As an alternative to working directly with [`Move`](/api/qiskit-addon-cutting/instructions-move) instructions, you can choose to make wire cuts using a single-qubit [`CutWire`](/api/qiskit-addon-cutting/instructions-cut-wire) instruction. Once the subexperiments are prepared to be executed, use the [`cut_wires`](/api/qiskit-addon-cutting/qiskit-addon-cutting#cut_wires) method to transform `CutWire` to `Move` instructions on newly allocated qubits. However, in contrast to the manual method, this automatic method does not allow for re-use of qubit wires.\n",
"\n",
"\n",
"### Separate the circuit and observable\n",
"\n",
- "Now that the circuit includes `Move` instructions to represent wire cuts, the problem can be separated into partitions. This is accomplished using the [`partition_problem`](../api/qiskit-addon-cutting/qiskit-addon-cutting#partition_problem) method with a set of partition labels to specify how the circuit is separated. Qubits sharing a common partition label will be grouped together, and any non-local gates spanning more than one partition will be cut.\n",
+ "Now that the circuit includes `Move` instructions to represent wire cuts, the problem can be separated into partitions. This is accomplished using the [`partition_problem`](/api/qiskit-addon-cutting/qiskit-addon-cutting#partition_problem) method with a set of partition labels to specify how the circuit is separated. Qubits sharing a common partition label are grouped together, and any non-local gates spanning more than one partition are cut.\n",
"\n",
- "In this partitioning scheme, we will have cut two wires, which results in a sampling overhead of $4^4$."
+ "In this partitioning scheme, you have cut two wires, resulting in a sampling overhead of $4^4$."
]
},
{
@@ -208,7 +208,7 @@
"source": [
"### Generate subexperiments to execute and post-process results\n",
"\n",
- "To estimate the expectation value of the full-sized circuit, several subexperiments are generated from the decomposed gates' joint quasiprobability distribution and then executed on one (or more) QPUs. The [`generate_cutting_experiments`](../api/qiskit-addon-cutting/qiskit-addon-cutting#generate_cutting_experiments) method will accomplish this by ingesting arguments for the `subcircuits` and `subobservables` dictionaries we created above as well as the number of samples to take from the distribution.\n",
+ "To estimate the expectation value of the full-sized circuit, several subexperiments are generated from the decomposed gates' joint quasi-probability distribution and then executed on one (or more) QPUs. The [`generate_cutting_experiments`](/api/qiskit-addon-cutting/qiskit-addon-cutting#generate_cutting_experiments) method does this by ingesting arguments for the `subcircuits` and `subobservables` dictionaries you created above, as well as for the number of samples to take from the distribution.\n",
"\n",
"The following code block generates the subexperiments and executes them using a local simulator. (To run these on a QPU, change the `backend` to your chosen QPU resource.)"
]
@@ -254,7 +254,7 @@
"id": "adbf1366-7f9d-47b0-967c-d26feb4bf7b1",
"metadata": {},
"source": [
- "Lastly the expectation value of the full circuit can be reconstructed using the [`reconstruct_expectation_values`](../api/qiskit-addon-cutting/qiskit-addon-cutting#reconstruct_expectation_values) method.\n",
+ "Lastly, the expectation value of the full circuit can be reconstructed using the [`reconstruct_expectation_values`](/api/qiskit-addon-cutting/qiskit-addon-cutting#reconstruct_expectation_values) method.\n",
"\n",
"The code block below reconstructs the results and compares them with the exact expectation value."
]
From 9800fc79f12aaf9c721d10f11f50240806b8de0b Mon Sep 17 00:00:00 2001
From: Kaelyn Ferris <43348706+kaelynj@users.noreply.github.com>
Date: Tue, 14 Jan 2025 10:35:21 -0500
Subject: [PATCH 12/17] Convert png to avif
---
docs/guides/qiskit-addons-cutting.mdx | 2 +-
.../qiskit-addons/circuit-cutting-diagram.avif | Bin 0 -> 11105 bytes
.../qiskit-addons/circuit-cutting-diagram.png | Bin 56729 -> 0 bytes
3 files changed, 1 insertion(+), 1 deletion(-)
create mode 100644 public/images/guides/qiskit-addons/circuit-cutting-diagram.avif
delete mode 100644 public/images/guides/qiskit-addons/circuit-cutting-diagram.png
diff --git a/docs/guides/qiskit-addons-cutting.mdx b/docs/guides/qiskit-addons-cutting.mdx
index cd08bef5cc4..1a993d3da9c 100644
--- a/docs/guides/qiskit-addons-cutting.mdx
+++ b/docs/guides/qiskit-addons-cutting.mdx
@@ -87,7 +87,7 @@ Additionally, the home directory includes a subdirectory named persistent-volume
In the circuit cutting process, there are two types of cuts: a **gate** or "space-like" cut, where a cut goes through a gate operating on two (or more) qubits, and a **wire** or "time-like" cut, which cuts directly through a qubit wire (essentially a single-qubit identity gate that has been cut into two pieces).
-![Diagram of circuit cutting by taking one larger circuit and cutting it into two smaller ones](/images/guides/qiskit-addons/circuit-cutting-diagram.png)
+![Diagram of circuit cutting by taking one larger circuit and cutting it into two smaller ones](/images/guides/qiskit-addons/circuit-cutting-diagram.avif)
There are also three scenarios to consider when preparing a circuit cutting workflow; which center around the availability of classical communication between the circuit executions. The first is where only local operations (LO) are available while the other two introduce classical communication between executions known as local operations and classical communication (LOCC). The LOCC scenarios are then grouped into either near-time, one-directional communication between circuit executions or real-time, bi-directional communication (which you might see in a multi-QPU environment).
diff --git a/public/images/guides/qiskit-addons/circuit-cutting-diagram.avif b/public/images/guides/qiskit-addons/circuit-cutting-diagram.avif
new file mode 100644
index 0000000000000000000000000000000000000000..f9ad428fc54f78c5360106b7e5f008a020332035
GIT binary patch
literal 11105
zcmZvBQ;=YR4rSZ6ZQHhO+qOAvo71*!8`HLJ+ub|!-oDzO&8P001~<
zE}jmCZkA>Mf90RGwKQY2wKV+80n=?wT@3&E{|cdniH*~LApn4brLoKZ@c%5FgQbh@
ze+b}T&0=X|Z~Tvm2mk>6ef|ny7r?*BKjHZ=0(||Shtl$|m&4N1?muJvCm;1MG5v4h
zzrh$7{}ui}=ikWxoGX?NP7Z&A^_C9C_J1w1vAvCxow1F_-?zg8fCc<@!5F$R3J1dA
z{DlB0md*~Q{{R30EH(fDu
z1DCU>vx}*%GuPi7OB+i=Cr>Uz8wZR3tm*%Df%#YZ|LcPAzb?QK5dZq%SvuJMZ@)kQ
zfFOXO;1B>nAVI(&A%CM-mQJSsUB}<~{&utZyB5HI3!|*IH8FHS0)PU?rgO1&*;8Pm
z|4S$Y9&Zu0>d5VWE7Xjw^4&n){dvrg%{By1_@Gr>2^Fn==W7hc;Kr6I$
z`7;DZ!+|tDg_AEfLHycIw)=)l#L2)zTGMIm6k67GSbfz&4C722!$x65H^?^wZlHrx!!{yukDciDHv~~>!?_88>c^^Jc!-$u5uxZx=Rd|)@cVD
zW}U@}+hCY(bdVe!KR*=p3FTn!P%Y;4-Q6MiDao?9^$I<8picxlLvlEu-lA06VQ&4O
zJii|M4X&NX#5&+6MG<#yGgs8=rXgrM|6Oav`Be27?CH*%J+d`B_;TRJ*}J#VpICq5^!8!cPvz
zQ>bZYIIPco`n%TXaCX8a2Owv;I#=@Z!gom<6mhj9oRvI3D@zWllr;*A@z3P*m;}+c
z%1*2wYrqzw#!VMZmcjNXf8nOB#on(ab~oBNIwNpOX@ivpAapYw-AuR5CFh4LltE-3
ztCV+{0ayp0r|C|Ja`HS(pvF)C5WvrM|7fYsu<~D)!l0Xllw5we^=50Wfp&Ms^U0{+
zFJ9OQD&oP5LWU5-cTXsc<##BHR8Jr}eH<8@57-w>-pfXg$XjcIVuUHFZ!F#s#9(lI
zn`MOGn`l<0T|-+#Lw45l#STSLIp!r}!Y@r(4}@!jZ0C>g1o&M0il10=tHQbR19c|&
z78J`VL2Tk6P1pJ$whEb|ZLeC&e2$%)Iii+T{=UY&sNY|yKEy(QExpxXtq7nzQj
zBqe$4hug93SP>fGdJVme=&9#aSx}r$;4Sw}01B9T&LQP&>K*%2&FJ^OMgBOt(neH0
zG7IR4D1LeK$nvUoG|T77O)yUAp+E%wGUZH$CdcaOv12_692ta;NUcfq*X__N>6mc6
z%jfx{hFUj0!I#c$3$c+h2Pp8agHxZ5l01|0-tbvaY$<9`*kxGrh|eyk+(RJU{_NKA
zyz|@xMu~&UDmDVqY537ov8C40fj~Opm|G<7pTJ7Krz+Tz?TUJl^=rg9PmJ<$D_iZ@
zETBOQr>007wRxqn^Bi###ORJ+Qr7Ar34a>Dt`ofdi)%qX#=MDvM%Mb-8Cm(IhMva2zHlgTtEytpg)l#3TGn^}yT5rJn)KuCO_{;U
zgOfixg%a$EGMpREtc!l_;3(7UXn^!y