From 8bf4126c84341c5674fce578146992a36e5c26a8 Mon Sep 17 00:00:00 2001 From: drh Date: Wed, 30 Jan 2019 19:50:07 +0000 Subject: [PATCH] Change the error message slightly for when two or more indexes have the same rootpage. FossilOrigin-Name: 916c52dad414b224695d455a42af36f85dff216504c2aa67d1d2c5818cdca8d6 --- manifest | 18 +++++++++--------- manifest.uuid | 2 +- src/build.c | 2 +- test/corruptL.test | 4 ++-- test/fuzzdata8.db | Bin 868352 -> 880640 bytes 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/manifest b/manifest index 615a0d8823..5bd2ce1330 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C When\sparsing\sthe\sschema,\scheck\sfor\sduplicate\sindex\sroot\spage\snumbers\sbefore\sadding\sthe\sindex\sto\sthe\sschema\shash\stable. -D 2019-01-30T19:12:13.341 +C Change\sthe\serror\smessage\sslightly\sfor\swhen\stwo\sor\smore\sindexes\shave\sthe\nsame\srootpage. +D 2019-01-30T19:50:07.547 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F Makefile.in 178d8eb6840771149cee40b322d1b3be30d330198c522c903c1b66fb5a1bfca4 @@ -458,7 +458,7 @@ F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 F src/btree.c 79464668601b6d278954cf822ef484893e1434f85addda2bd9a323796b91b328 F src/btree.h febb2e817be499570b7a2e32a9bbb4b607a9234f6b84bb9ae84916d4806e96f2 F src/btreeInt.h cd82f0f08886078bf99b29e1a7045960b1ca5d9d5829c38607e1299c508eaf00 -F src/build.c f2805f5da53aa10c52323f5a7d976aade405dd70e52166ae4e7f35708577893e +F src/build.c fe6e3753c4cfc76f9c621a24ef5f6fd62aac5aa6c843710b542509f493274eca F src/callback.c 25dda5e1c2334a367b94a64077b1d06b2553369f616261ca6783c48bcb6bda73 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e F src/ctime.c 109e58d00f62e8e71ee1eb5944ac18b90171c928ab2e082e058056e1137cc20b @@ -757,7 +757,7 @@ F test/corruptH.test 79801d97ec5c2f9f3c87739aa1ec2eb786f96454 F test/corruptI.test a17bbf54fdde78d43cf3cc34b0057719fd4a173a3d824285b67dc5257c064c7b F test/corruptJ.test 4d5ccc4bf959464229a836d60142831ef76a5aa4 F test/corruptK.test 5ef338c560ca4dfb7360828da16f1829be4deba3b378cafdc7a1cdaf027eb5c4 -F test/corruptL.test 82855aa907c3f899c123e8388f0450df8fccb5016539c7b5e64695772e7595bb +F test/corruptL.test 0f64242b83db6d0bd5b6e38c205bf7c2a3bc6c9f80351f49c4dee1639aca60d8 F test/cost.test 51f4fcaae6e78ad5a57096831259ed6c760e2ac6876836e91c00030fad385b34 F test/count.test cb2e0f934c6eb33670044520748d2ecccd46259c F test/countofview.test e3d4cd6900e4e4f074968ab24b8b87d3671cd624961bef40fd3a6b8f574343cf @@ -992,7 +992,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db 3fc78e65dfe0be9df9e262075d5a335f18f627da47dfc691d1a7b822f34d4b99 -F test/fuzzdata8.db df6e7a32697f3e7be801fa90e02fe6ae9c1dbe7ce8a8a626af0febab35a54e96 +F test/fuzzdata8.db fe1b2ae0e7976f225ae9dd637eb67726154caf0da39ac329fc4a35d9991aef3b F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1804,7 +1804,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 197edb235b785c68fda7be788efbc61137d9452886599415a927b959ade93c65 -R 614f1871a981a455ef4904657472e2dd -U dan -Z 10bfb2b527ca61a24c5f5b6dad4cafcc +P 6b360bc0b9ad18ccda9d58d43a8388d19999432bfdf294abcf5beb44ef990cb4 +R cb0273b303eb213fe70157df7871c9bb +U drh +Z 4c2226fa0a72348ad16843e693e2eabf diff --git a/manifest.uuid b/manifest.uuid index 17085cfd03..eac7b74d7c 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -6b360bc0b9ad18ccda9d58d43a8388d19999432bfdf294abcf5beb44ef990cb4 \ No newline at end of file +916c52dad414b224695d455a42af36f85dff216504c2aa67d1d2c5818cdca8d6 \ No newline at end of file diff --git a/src/build.c b/src/build.c index ca8db87dd5..3c4b9db62b 100644 --- a/src/build.c +++ b/src/build.c @@ -3490,7 +3490,7 @@ void sqlite3CreateIndex( if( pTblName!=0 ){ pIndex->tnum = db->init.newTnum; if( sqlite3IndexHasDuplicateRootPage(pIndex) ){ - sqlite3ErrorMsg(pParse, "invalid root page"); + sqlite3ErrorMsg(pParse, "invalid rootpage"); pParse->rc = SQLITE_CORRUPT_BKPT; goto exit_create_index; } diff --git a/test/corruptL.test b/test/corruptL.test index 26ea3203f1..7b84058caa 100644 --- a/test/corruptL.test +++ b/test/corruptL.test @@ -627,7 +627,7 @@ do_catchsql_test 6.1 { INSERT INTO t1(b) VALUES(1); INSERT INTO t1(b) VALUES(2); COMMIT; -} {1 {malformed database schema (t1b) - invalid root page}} +} {1 {malformed database schema (t1b) - invalid rootpage}} #------------------------------------------------------------------------- reset_db @@ -720,6 +720,6 @@ do_test 7.0 { do_catchsql_test 7.1 { SELECT * FROM sqlite_master; -} {1 {malformed database schema (t1x1) - invalid root page}} +} {1 {malformed database schema (t1x1) - invalid rootpage}} finish_test diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index 3579b464f16680d466fd2ddc849743202b6d9536..49dfb8ec71d4746365fd1d658d9faa69da0ec73f 100644 GIT binary patch delta 13058 zcmaJ|30zgx^M7;C-S0y{L0sX1d!g_UP!a^(cfqw>!8OeVOwGy#TuRLpeae_Cre@}b zp^RoKRJLgfX8p=spt8(Tp|sWIKlhntR)755f$qKMobSw;?abV=vSPBzVsdKx*L66= zAje-n*3$6iPfAvUMbr zO(U4BAI@auFeb~=nY@_Bm!fZsYZsqDn0yd#s7?U}sUmdTDJCR>?p*qp#*K|GV$EtyPj!DLD- zlOZvV-VW&Bod4_`#UweBNy`W(O`0(YZOWuhIFrDKm{e)Z#B9h!Yrw+1QJ=}LVN5DR znS39@h`u`|~_(r#g zjEaqH>5h(c^S|ck|F}E`+_!n71QOzYLYbB}iI zAI*JRG?SJ;gC{=F0`bFHioZTBJbmiu#!pYfk_mDR^gF>zA2sEMe$AUlhqW?&cujEZ zcR2R5>g>{TTh^5w+oyPTk4nTPYs5~7#hkt3D4rN04~ORDZYhU=&O^TB>l?~kCtd)| z_mf|u#?Of_0KUc0YH|x|HD9bYlwjGhuZ2Am@l0QOhh5-dmxu?90vfwQl&eaJ?AY1& z?n@a$`HtVXjF}!$mqPQzmjbTf?v0`$v9uNd~h(~>!sA7xlD*C@+ zG{S^!;_ckF<}@0$Rjieug8$B>DceP39YSf{9#I7PkK0t2?D*9GE{7*Df3KKtv-AUB zKiP~9ru2Q{WdYad#N+Z#iC#Y>QWf}_@;l4PfH}X3Vp87~HvxXZlFho$9`S#ND~?oBVwZNxLy@JjMGe&-g3kT{ExC&kN{zuBygAt3*cGQJTWfZOQ*mB^-f z7sU)Afdl>D6(Q7flL(Qh%@r1e1c0Hhi6p!gE$jH=FQN{vyCnwF+Z7^_2S`|&E8f3P z-o)~b1`xQnLNp*&e3!r_{}WNUo5j4s8$!sSkYBibOCpK?22e5cd$EKfH;Jth#cT3> zO<@J!Gw^TxG+?;{?;jYnp|AWHP+6rA5~Wp>QBfMoj%_pk_PUq-jyC(=%Sk&&$eO?m zA>VXUR>A}t8YOR1pxWMIIa#7vUF2-I zXVvxaYAZPa0uZXQ!3B?z7gAX_*-xUv)^d)bJR~~`)BncTt2T)0s~>M7JIHGbw&~s3 za9f31*bGRq9+5|Tg;xXD|1O%?i~3_lRXM}nmrM%jE`O~;EldiR zSJApY@<;)-al`jwDDs}f;JB5bQ{JQUAG#7QI|@?0fX=7Ouj_SJ4SZO3>}_=y;%hj2 zxI9Ct$pC`A&cIf}XaOOV`J-3@bod7`2XMkG;!@!_S&}98VKs~7?pRhNhj@y*>3Dvp zQVm;WnVo%_yUmzU&D|}co4X@p@ZsmpS?Yv|!_%J}iRFoMZG8KAGXaL-;NOi9J-ShN zqwsK7Bg~v8)xfNUQWc!HP4~w)yK3#wuZ=8=CT0TquaE{~elsl~AU>f{qb9DlJ-c;F z?$h4&=d3%MX*EI{HG1H7lU8Q$_TAdI?c-{cK5TfShw)G|twq(lLx+u-kUr^YSNk6A zF!L64!dV+l4G+I2+T@PYWEJ2f2crUi=lh^7s@GI@tn7MMPEKW%{e!NTq!0{$STbnS zW1=mPicsR#W8nC1^nLwUl>&cJ)$H z0n={ECN`O*G{&ya%KM-p#Rn@AkUB%YDM2HQ4^v!JKTAF@pfScbR3_oHXO;PMYp%Rp zQ<}++n;|wh`gD=pL?|56;9;yRQo0nRoyilPtW8yITM5U?ca+ZxN@hkv!SO;F&=2LG zpebc9li7mKowL`Qw@RJ~&WFW zFPL$#06a6BH5U8~C$>~;6y(g$5T3O+yl=Y;GLH=a8nRX1EI|~>+hul%&GAGJtp?S} zm%kMdjj6x0ve(`tUlb67yAQ}caaNpOf+r5i&r!}TGZC=+A7(fP9FVVagz}rO@1cEf z%3TGtK>tt?iV?HSrg*GK4xmv*a*?h^D30t)3ErK`$uxBwA7jPPs~^byCB;qw9wGUd zjiMFFCHC)lcGULo1d>0qf43(2jQu;2 z$4N>Y&)pXDhAG=AE~tg7%mdrM!U|li7(qJ5`RuiW-WO zwBO_#5_G_L~9DThJXb>k(zp-ZW*SV9m^Gt+0?}Wwya$T<4=igVyB@(=9u$ zVd!l3?0<)Z!7s|Qaa$Formc!?`07f&6>_DpAzAk9-N^Tvybx${pfW{*?&$lg{43q4 zp=bhnknauetB>4ywdY=6<(h;=S@MUNGfio24^JUqS>fp-bj2!ctZ)?Qh5m=wc#}FQ zuha2xB}PDROn6d$8(HBOQ(w2TQ-VI2@Ra=a9i>NB`iH47R_PAV7ZaYf?+3Fn;I4j3 zDxG;mX#~&@6K2UB@NlRyoOZ-3uj)#3*>NfKZ(IB49x%iG0b6!d-cwQ;-(v&|j0~WX zALU4P*1QiG-BmdO12FA6i=DZyiBCK!udva5MEklcT_qTZX}`&faYD4xjy_FMnhF?% zA(NC^G_kI-R3gUJ2VgL!f$|YDnrL)ArIg{VEP0VFmfaLKQ29<#Vr0kdzbl^?p=G=M zp?k(g%Z~3J`ws?w@kY8w`NcFUPgiPlaIBQey>369Ze_?l0a=-*V}4g9LzII7Yc{t5hTqdzRC{$>y!;@_5`Bq72@`90B@*;)jR(E6FxvV`;%u zl~{`~ffulQpFdxuz>$Y0~3vbZ(co)9$%SF9Bmb?&LHq z*$6f8yeiVMVW&_Z0bQEt`X}ShPUt zMLV3Lx4@#; zOzNq%p!hw?C0&iZ>xQy9S>P1uR0_1lOY=;B?0HDh$vmW72ZhgB@Kk~OaXTawD;yH0 zQRP|X2+#*dlt(0Znkvhcw}IaKz+Ukgth}HkQM+TxVFAx#<#)>4Tiz>COr?eF_&T9r z_ozs(0`a*IW)>ukErNn`)8i#urnB&7ny871D`YqIC{y+d$nrG(zCl4wlMLyeEBDMe zxYB+(8{I9`hMrc3cH__yA^`I@$|;!9QVn9y{+d+ygR)OnTFQQ6AIDN`EW$0{Z zN(3k~c=%jgdRh(g6pgM*O|L1R3Yb@rd~q;%B4-|_h~Je{0MB_`jff81P&x^C-s5`s z)ZWk3hXu^{xFX8%M4YO6b`AQN4l3$TD#YV%r<$wh=GSf|JIY#N_9AsC?(|VLJ?Hht zk1*eT@7!8^Ok+D6CI?~4X^RzaovLHMD(Wlp!rdd{a(&g?${fb_0!|Es3$F*VLoN$& z20?D2`iIT(B3wE^Ey3GUt=`lqP(35Ti@2cH6hB)RyXV6;Iu@?B5a97_=*35+NcDXI z%RR*zwJ11Ry&zx(zHksiJc$)GF=vDbqaiKT%^Dz;R|1=V#>?tRz`1SJS+Ej^2Euh4 zIWqFGl<}IH16WcMbQ}Lm82U4up|VbDJprpQ^9)D4xNho)0#;M<*H#FhWENSM$fuY3 zvjS@|^R{ydR(xWf#)>xTa?Gfv=3q)cwKwJu6@i$OtuDaX1J!I;hnfAcyfzpJoj8{#-bum7PxOI%MXu>FU1;7T} z5TZ7~B3~(KZx6{wU`0btWs+{eFq?;$v2==BLD$Bqz5+IqdyIO5gH96|i93IT1awVQ zJLA=Hs)7}#pejDwU2x*+fK8sIOWGAym4*QpT?U!*C#lte-kGYpG&O-O5XTU!OjXH_ zgKPNOg2@}z!#Jyv8bC<{)Hc9g+;UTw+3J3PSF!vhYdGd~Rdt#;SM||38JMw1oh_7C zc<44fB+Nek4jfRWW$U;ZYu3|!xoaX#x&=fie%?^7qy)aB}@IwWEDwdz=X=bD&A zJ|s`H@g#WhyvCF6qV6-*U4Ru8a$igvY1O3zd( zd|KO0sd?%y;bj5Ku0xzHhSw=|lPUx0JJdfUD4_DS>PDc2Z!#8)C{Rzq9tz#6o|kNm zdDot?zddR%h3>F#9t`wJAlCu)E1rS;8;DU7&ZwdFr{cF*K(G&Yx70##@UNPaBHmF? z3D}QoQ5%j~k|tvcX(731wd$1jzB*jM8?-w~(*=e!(5~4_9H8Cpv<84<=V&G#%F_&7 za#hWw9i?i4%IQ-2XX-@#oqZkJ$c{>XOm=I-?KpXGZ&)%1`p&d;oEFMwx?!pdGmdLh z>`g4>>kuYyg<#4*rsaY6De==qd@ec9YIYdiLq!n!rfQq1s7!4upon%HQF}|6^)Q!1 zt`=%44Ux39UKtnT(wce*`X*{sC|uS~cr&lJaK}gLH+1O-wWg5Yj*A?D+38v!`K4=v zB%B_@`W$&modJc{RL*;jpnIyb=D%WDhOWbsVoTv&EDq8Vab2u-jvAJ$rzK;g8PhVF zpS*{~wfRX#HTIz?U#s~7^HL1&nD@~gWYoF`?SBG3z~XxLEN!%xk-_z%$RSz@o7rKl zC#E&hd^x!kjj(m8I@w_5DkJQ)x-CHW}aqRes>TA0g`F z#DUsUEE~j?fkVgC=3e2JP~}JV^NfvJW6Ur$H|Aeak3FCY$g0rJ##>62rRr(+RBlln z(@d=vRe4BjrpfJP$1k{Hk4T~{xAqapAMf{VhpElAoyt)jb;?sdCI~ZTS=}*Zm$rRb z&#H9noEibtH&)vT@Ch<+$Ec*G)?C1+m|A4k#fOid$&f&TPyhQ$GRUy|$YS{zwAEffc z=Od#rGe%Uy<0a}Nc=<5vPU2Nn!;~oD#P{;FNZOpH4G~a=>)y8E{$#`bgyG_#SF|XK zAEkY%@Bt-coHkbe@=)&%^x`;el2A_b)L)_h6=xs~+@Wod{@jfg0AJs4l#?|!$_xL> zfBxTD90T9nGf*#+?0mkpt#d7YyH;CjB))8S%O;uGpJZ8N|RSiDE8Nm=ixiITlD zTR^((Mi{M!;Y4En{{Q6vf>#Z$;Ld?;Mt2Qi5fB5dBf(YNIg|}x#$jy^PME_kh<#yu z0Toyob4OqD?vpaHlxM5ZiOz4=Ttd0TV*Lr-`<14+`n)>wU!cGIfc5r+YyYid1#lgg zp4Dno$Ug0B0YBq}@6~0036)r=ttIUjcVtv#q}#^XM%>ftjqod$R?(7i*H3CHvPw)M z{fHK(DV=4) z{3Ud4)K}Yc-NvF`dVd;Nrk&7~F0$jwQ#Pze$tpD~B^-LuoNMFxoqG=wrT=Pv0GQ|0 zhg0Mg?IcK&z};81aAII5g(S)7TCLB+^V9Vy=u3JfF_-`e6ify!mU6Q6ZGa(QCu9|GIrdRech>xIEx zWycT6_i&!J(*rK#IwZpz=`jDI)}BV|`WnH9D)(jW_7>rz3$V~#sc|Olr*kIlME7;} zI`aecX9f76`!}sC^{k=q5l{u)H??PIW*vQ=27c(@QEB8!>DB?uF6zA~WSL$Lx!u*e z82LR{T@p>h-Vw>4lCEe)oE@P)gu));cR1;CkCDQtq>2&AQFpceFjZ9QQ-NIF4a3W9 zHB4KpKS2{C_2q&qqDyD%9Dbtp7j!NuoQT&)f?mBKyu0l9W-xBp%UlqEFMHE|ylvlPSNxo+6OB zoGDV3K|dlsY_7eLB2DPnPiNW$j%YT%y;* zW>4v#a4GQcZoX|>zyYr?8)E8MsT$=})f0gF%+Pmn4Ui7+*IP)q)@>xxGqd#t!0EI5 zJCzT1g>oy*s9~JOtaExZN}H!|QdMvqb2yH1r{^tE7??sQ7U_{fsmBl=rpz3DiMYGz zDK>xMl(}5zyf&?|UegOp=027ilTT_LrRWy8dyxJHG=Bwkz?3D@czZ-sOs&-VbC=6K zR6jwkQ~GQP8E0?%Su;$%uFa>2nR+Q#7{1WvKrE&ItaHnPA4Xv6Z`$&ETs+59p4a~3 zA)bqT*)~&UWAtJCxBomn*B%y0nVW3XtJUh5vOw=|H?thEaWNxe<65}W5rhX?x@(B8>B-r$RY* z{Nhn54%@$=ufh+vX|dRSiKgNC7xYj*Eofb<*eJQC=nxGgg4SG1js)$Eek`QxZm$s# z8$lz`n7_DvYA;M*q>t63_P0#s9?_J0R z*?>y=81ucR63xdb>n~$IN^h>vJ4#$x<@QG~W%w95oKUmzB5T(BxOufcgk}6uH{)rV zu||K+E~>xaB!eDr^$=;T0p@&^a~Q#P+5&_-;39&d zMnB2ty-O;m=n=vnXC5&J*mES()tj0IWEJbzRr^LVW+&+zY0EKvkbpK=T&g`rY)7vM zXp6<4Xj{;wSHl?_>!9ETlJEyrQDrULDamVLSIdS`p={WE|MEmEfg zZToPlYTesbmUt51?@X0BdNZ&AANTH17c9N3Mbp6sMq7z0O4)1JOLnEomHHm(POJ&( zs>dM%Uu8e(hNaiFmK1+Ye@{Sn+#N0gh+V)8KK=(8k(A_PMeunvLhQGB=m$Np^rp7X z#{PqZe!-w&;a7SWOnbzr%XLag-ek!3tSR>4#C6ZlE(0nu7!agV@L>H*$u{U(USPd2 z^MBfXzWz-v;r+}RXwC?Iu{}|5f``Oy_RYm+1?KGIBjNek`Y?Pf$aoF<5Hu4VfV$K) z)@VvU+423Xd*WHn!KJ=F9-G%QjwwBPqW)Czk?zOJ)L4Iv#y2!_0UovG!_ab@7~>^) z3_~@m0VY+`d(-rA<9PuCsN!=TLQ8&SFN?LB8{csi*FRS0%1keVk0b1ck==02z1>|$ zjbe>60E5W?5xp8vP@GXygZ|`BGL8$SAEOvbnUnQZ60PfCaI%rcEh&8&<#sa03rNSz z>H1gRMBrXll1XQJ7+k6zMoYu(F65k4BTItem|1GZ;)$br)4$s&pF&1p8okRtNPdt)gO}`Z@InY;fSV^j*)Ll18v&^`qHbFQ!unr4#c#ThCh}RsI@5ZEvfjgiGPH`JmX14 z87wS)wWi7-uEpHxB-oNBmh=g`dMZ81*EHnvdwt4yQ)+MHJq*^SMcZ?U&HOnZY7mxfo zbROk>APwbY>qR386OT$==<->kx&+VR?)tJDhkm11p|)klO#_Bf@+IRCXxY5r0uG6x zP1S0&^N`f*ug&!Xys+KK#$Bt8RAe+gaL-kvCoII&oyHKnvBua!My2t)#P!$I*Ntg3 z{hDpOi!im&_!?&%m7M6h&GnBPzZzY2B~5mmZhub_wh0`kbje%?%6vw!1l`NcDHxH= z8O1Ky>?0tD+$&AnM;Ipih^3y;-~jZAvvhJfO+%N{Wyc9jUuJfqDFNm}p)BS}mXln= z;0kQfAh{vAI+$ggnJ9; zjqGf0cK?@#NEWUiU=5&6spe1#HrkbJZqN2Hi*y)4X9t;KLdoOlU%^{0D}tJ*nI(b? zsl`3bMC`7a18D6CbClrfX>o79!#J;Zv1T2D5Q2(F^S04tKBrE**D?#%5f{Nh{ z>SnH?SC*TD1y@Kn1eyNBDFzTa&INDA>=2Z+z9um5#2E#b0Q6+Ot-$v5qYbfa*;DFht6 z6OcGtXhmTM&2kA2QD&C@;eQ@VSAcXl8p~t!=l%+i_Bkb8Lf@}6udgq{%=w%cM&6KQ zDtX^Lr*W*%XZFI3L245U`rQ0M z;<{*YidsUa&X^gR{sc$VSYG`Z380fv6ehxatuTF1_+gW*S2RO?4ptxq*?8uKA0r875+b?Y>Zs5IA0 zaFlX3>t}(=ubW{K97ET)W=-UiWHpNX)%;k4<5;}b2(tfU7ISSGPI^VM26HtNH*_=x z*(+@nP=Y0^^o7LJP7zRwiEo(^_i~%h$TGh+ z)IeSR;jSgwup|4j*c15M`c{9_&kJLm%|ge3zapLm|(pl!8wwXtnr4* z*}`w>G3cM*)5iW9sVnZ7EpFs?wQeh)F-PT?+|6eHPlvXhs&}_8OYo)FW7@`dl&+>& z0fI|^$^EUvn6+0Kg&B`oEh)XP^|HjZzq@w^(|eCvJ2aCk3}>H+xy?VeLbz#Hn#KB6 z#%q0x=^d1&1^EGe|Lo8e7OKO&0qr8De+iG%#2jm>(1ykG*A^02_uiB1Vp>(_E-D#k zac*_VQ`(ac)WK>!>b}w{5L#@MT^;xy{jaendwjCBT5yf8To=*Qa+-Biz-4sRwpwG# zHpPc}PPe#Nas^Y*al0X9xVnkn&$8y~+#T+|zJxT(99hJcWWQZV#_=`@BSHQ>={= z*Wm8M^vgdm{dzy9SFIm)HIrLgD-)>rbE}nPj9_3DeEos`PwJ8P36Js?Tf+fv`~&Ds zWT2nZ**C3*0&YDB^7cPK9^rkIgyTfM)qU~-dD?v-;fwAstfK{40bJL) z+b&*VKk&oiDb}l)lFwzKoT=6acQ`=iV3YmWAB#_!T`|jJWnofP=LuUmhuQids-oW? z&I)WAtk$;`^rH7>H4J^y3dM&S`Fx6zYb?aPs_IDkCD7@VxQgblvG2J1F-3i3wfzY5 zJMl+AX*F%019537Oty8GKeIYn*Xfp^I;K9OPQ|==);MGh?t@E4tK96&W*si9@8p(M zjeqLNLr&I{n)mBTxRVvS)&mMHYCpIYb^d)T>fXNN<9q1X1$Y&u$%E)%D!pl|vceyUi}3%z z*YqFwnmvdw;z4|o|BlanKfb7c;A?(AKHJdXsXy^O%=oxs_MjK=?rw{J;A{CHzPJbR zJ@W7PTHTK?{(gL3N09IjeAE8K7sL3H{>#OS^U*cpJ-}YZ!ylD5Qi~r2Y zF24Q!_&VH=&%3`J@5lGGvqD#&w#`5JjyttRwBW|9NaU*vRjyMlc1;1!(ZG>tq1S75 zMflQ8wq1UhM5BLpt^w$Vr(aP}76-AypG zsv1JU^?knZdYB%VU0ZF0DQm1gduRD@!rBv4YdFu+7vVl3-WO6RwT^Q<&=YQ-C0=Kd zdJlUe>gx1qW56@~4WCb@r11YkA^LdSfv4{HDu%n2eKZFr`?Hn~w)g3ap)>S=KizFv zU7vaq^rPM5tU@o;&Jy&;^kTK{ozRITTlo_j{@9_uJ@irBFw&a5VwTTAifQ6=oNF=E zY?^ga*s|qsoE>5SH9KZ)<4;-LK7H&@>G&&xT6PfiqC5yB#rnva`Yg+NbpzzEwU#2Q Q`*4wc)+zIOdwlQz0~47gSO5S3 delta 12070 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