From c3fe359fa6175242200536d8a5446a6acb1cbede Mon Sep 17 00:00:00 2001 From: ahocevar Date: Fri, 30 Mar 2012 18:02:24 -0700 Subject: [PATCH] WPS example; support for BoundingBox in WPS format --- examples/data/tazdem.tiff | Bin 0 -> 33026 bytes examples/wps.html | 2 +- examples/wps.js | 50 +++++++++++++++++++++++--- lib/OpenLayers/Format/OWSCommon/v1.js | 4 +-- lib/OpenLayers/Format/WFST/v1_0_0.js | 2 +- lib/OpenLayers/Format/WFST/v1_1_0.js | 2 +- lib/OpenLayers/Format/WPSExecute.js | 6 ++++ 7 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 examples/data/tazdem.tiff diff --git a/examples/data/tazdem.tiff b/examples/data/tazdem.tiff new file mode 100644 index 0000000000000000000000000000000000000000..a1eee6c2917236a3becdff63c3ff77660da28d9a GIT binary patch literal 33026 zcmV((K;XYgNh$zpe*ge@oSm3=cve*s#%C@pARS~e)DRLvfOH@PLW!XpI_lCD5vd{; z7LZ;RL24kRlLU|=QHb=iND(lIh@v2Z2!gJwYh_i+3heL9_kr#oyU(*e=egf^>pAnz zJM+%mn=FZvBu%8LG?!NF_mDryAQ>VfWQL?mj%4sVU*<99vb|_yp)BKUhGa@McdW3x z=E)L%Q@D3A|JimWLzc3=EU(Ksxh1tUn$c8aG*BPCbwdWhA)9%hNJi z#>#B$m@hMB4&w#GyFeC!Ynh~hHk>m1-yvvmxQXs3jZ>9{FUeZ%KNo#2-3DQB5*-wOp#u95=6xc(grc{wqQtWpl zeh4;)gKZ*w&XPZ4uk&^)>p#a)s!V6^FW_~oF5zk_STk(+&^o;C{!~MmZToI7AKqSq zy+W9L3%pegZ8a^WSLJW=h4HQM{HDCdo$0JH7KR7m`($trkjII!{zO|xY0uUf>>cEO zX#wLQQb9^faS;C=%md^}nFOK*u$BRq)%bh8d3-58m~2Q=U@wJ#Ukqpb2i{B@?l=pS zIsCdSxy-O$HpwnIA|J?k`BbWD9e6FJH{^=kmNFUy{y*yX@(y@2@#aJ#Y9hAu2kQtT zY??gJ8Hc}*43tM@F#COp#Uv2dkN_gPq#^!)F%N;oxu98&ow>3SD_`*=UIF5C&a7lF z)8aSFaHSc;?kL-jH_P^Ocs`eVeS2%2;}~_vz14OiOApMmepn^*|f0mGm39 z-^gsULHHatOp>8sob+=Hr0G^8t)aK%V^nJ`{+lgRExx80+6C<8fp{`8?zoF+ z@fO+D!0gNBd)O;uO7_1|KTQ;+fnYf{=Ng;&X0;Fd2H4(!^%>l;5WSj0oXz5Yky-a^ zRA-w$`JP*8XgA1KIfyP_llwpy3!}9`7;FmN82r`M)6e8E-gTNd9~*K(IDs*rGj6st z)>;DV(@gm@ESnZ!?I3j3sq6zV9gTXs*uGCf*>`FlDz(V(|BiP8^UkrkoXx)4;=_?= zh+Vx%1>+2qYm(ue4jXe>*_YE9cXQW=IN#8|Oz!TG1MvGjx$02Hu!WjNJ8o<0AN23U z@+MYKvDNcUwWcz6y6J$!md1R`P_lIYDlW?A65rjx`~{wn^sF2VS%mOGElw+>?Y-S~7|rK8z1 zU~`&0%M3HXH{b68rzCgq&bNx}Q@eCO&-vKz*xfI0%V{$7AMy(^9bs5wK^>#@wKVJ= zwFo#wMLLRS_7K?%EmKkq@hbFgH=W8hqHGQG=JD%PbQ#P(hVK`#-W(WBB(|RdWfs10 z+PTuAq%W~uiR`Y;s3sMEqie42EXLknl_#5LUc%~BI30^7F1gEep5=EgdyCAjbhah- ze2QtF5Ah1{Zbq9A(obBFujMN$P&pzw3Pp|rZxa-&q+XQwiT1DMhTN2&sK+N|Cs-Ey zeZEGvOOc%74yWIHINA>KLhvpC-DtWWS4~n;vt*8z5go5F3do}ZGB6#D>qus|<7yI} zN)T+9ld@Fp64;l{Dw%#|_2qA#d1<0W>XgaRdOW`ge`ebqnRjb*I=Q=@^^aoTN8ohz zrwX;GJk==7V!A0PE27T<9JSUqM0icQuH)Fc*X(}HI?!TTm5$^ZF@Kq=c11py_t1oO z=GWQQ*Dj(58wl#n`07pKX(ygqW%)J@ekU8EN%9c2D-lg^58sLS=ONw@9=Do4k*kxz z_&i4=(7|y;^ejW4;qRCVn9+?w7}(D$Z;)a8*xO?I>P8XP-iFfvEv^S(>AExoPYAWB z8t0-wAE9yDjQ{H3kJMJ$4#bgq8;*990q60NWA{6$!E-S@bCjA^ncn0!j3397Yv6AY zn5L3#!-?*6bl@mjamcPM1M6rMYnnd>XQ9~b(d}V|XcWpj9&h#Kjsct&6zC^bL{#g_r9|bCg0j8~V% zORN&O+l2|z7^mTb~gHy857vvZ@qo(HiNm z$u)@naDB3HpHc)PDN7j@A)6i1@6B{+=MdkKy%8QVP#BwKs%Fa5iDTi6Qo3c6e*yi&%2G z0e<=lbip7#%Sso({~aC(=9!kP6QqB`>si*LY_#{UGhnTR9+u{fw0WKNOnX7`DKT6D1a+`87*3*4oImL( zou#tlSxEOGF?~G`}-d=k#OGg+Ky@JY#UY5_~ z@8t0<`6Hf6z#9>kBcGxaZ-AzV?JQ`k+xv*~kf*2d#uo1R2yOd}wF^yy78##877r_p z<(#{sT=6=|L!&hU2-t3bPxc}|iit}YfMU#r<$onxgN%+3Jo>v~E*(YJK2CX#7q zx%U#8b($xx(nU7}Z6dhZp-}ODmYXr+LD@$~>T~)uvC*1$N1+N`2kAF--`C|H*pJ0a zjY0Ggo^#i~0nJ5FT{SI>CrX??)YqTz!g-!jvZFL_*N4FPq91R*y$iYeyvF*7e2eJ} zKmH7>=kCi*HrF6=FQ5*L3RBH z=$hI0ud-<6k7!zXt7xq`8*TOA9IMr2hA>nA3hygKMS# zeQvd>Tb3zWzP;P+Clf!$b8hu0qN{~vVjPSmYk!?Y93RoIwX|2=EAO4sC7`IQH^{t- ztm^5%u>K2<8e&}%^)|tfKTKSV17(38*5i6W*AgZDn6*0W+=JeG{-)PuL#WNs2sLaC zmLRQ6rq^b#4e^qMHBGT61dR{i-|_7%^ksXYMek;+T@e-j0ONK3w{zuHd{6-6ZoG^l zIE5~R{{p;nm~6NxKjS?YKW$jG1st_t{q8yhJJ%4$Uu$u%tapRGh1#3dOArYm);9+d zlL7EkLW50{ojqN7?s-kq-FjKoyQvp-JDD&LuH3y<=rGC?lO@TUX!M{A_{%U?A|u|| zjAZ>JqNSr%1gHK%=y@fsHRq1ztSWk(Y%lV61;x?OckSp18o$?=-pcUx=9^K!P5d9D z!f)kj5h`(!_^NMTRGVXO0#VtTeC(~mbT-_)sh{ajj0?I|r=nS*SnP|1mZrom-o7Uv zirZI?STubwagnWWYY8vPtL1$Q-sxm=9C;Xm?X~GLYndK~SXWky?lQ`J9A~N?uWgwl znS5$#j8`Ha>Trk4k~q%X2fho`{#vY7hZ!1@1MZ#s7~5gubq^}O3#RwN_g?GncB6yW z#Cdxko;k&v-8a;hP-bw|&}nTVtM%65I!jmSemw(IpAefl)TOr8F*@z-Ku#vZLL2KB zZj#YX?ZRQDC!U(2yVUbqd)2)2n#*w)o`_?MqT)65SLbNUbJv}P`_Ou+YMhQbG5mBGYN*>M&=8b%Pt#y z8QzvTA~<&5sHS`1(?#!27=9C^A5t}4rT>b)<_a}1(DFaQRKG2w6-O>wDv}?;e&y+| zV^HLcdI-ElWN#X(JCG{Xg&K2MPoiJj;eRGfcjx(7tf>Rq0A{JoJigAVGfX|e6TR@> zV>*=0&CnA}UG*Wd`eB~!gh$%*>olq>*Lt%h8=l67(sgexd)*g>2F%`={Z@=P>%GG) zhqs_fPNDXpVW&`}FR3{{)3FK`m4*SqBBvSgJa<3CX-}}aj;Ag$RF8RGR1T$rzJg+% z(hopgpeZ^TzB0+?(q2XH7yTF&&d`ba2$&LBw>C4o{;V!JUIovEU|UzP_40S6&sg^{ z8V@~6wv5D|WB7Gmc$6`KyZSTw5(i!JK^vkCBggO*M1%_qXDi2F_(#9EQ?)YH1~A@m;;QR-Q26Um4_li{;@ zb`EPy;mkPBxjua;-s{5?J;2-*p4&4zz_LQeH0^7S4<~9NEMB9MUe%9?-<^70TX~Oo zqu82yCB1XHjsE&MIJuvgs08BX{@e()z9E$P+hVn2co_ZJ3&cn&SuzjYi-?Up`qdm= z&i-6*PXhHA*dIhR3<385V!sy_^)#y-vX0E=lqZ=py~&0?mK{mDgX}$MnR|{{z9xTw z&+5ckn0--n42FR)jBJQxgyV&}*jJmU#}aXm!&e9FZVLnZ^@>)3%RtZbP7ukl-av1J z_n6niivaIM-A4{j!M66yQ-#@^gS;JE3$O>7^0qKOT;Jt7%oRk*dR^(?r4fINR-x1Lp;A$}biA1YhpWhBn`r^56_&vm`t;@O?P!9p`Ix5_L-Am^0(Sv%F zaZq=VC2Qb$Dg3)Af01r<9yNRdnKB%{9oPLp+>cqigSrR%ef^oMUbt5q#Ge!6bFrr_Gu0$QV!=5KzfFOmCy2oMrl}G3&2|7dw&*d_zxUYA5-;cU zU3~-eg?J)|+*r<<9Jl=NmIBdn0GJ;d$B#t=mpj|vapzbDE|iMr}rax zoL!j*d{xD^#%HZLN|Rm;kN`qx36KgQBou>`Lkl2*(9$8K&_S9gC?Zu61hJrSMN||K zLGQJ5RhrmA1r$)afFeby>if?SdA|4Czn!zsIs43>Z++kT)|$x{^O@OW4x5waCv(fB883aLqa;gfX(_RiEz9HsIVh(& ze&ReU=jCVlQFh5zc}rfEHL^-x;p#okS7ar>UnFy7rc9R6GEpXR7Rw+R$kAU?<#uTz zDm%;?Gt2BWyUjs!+FUZ%%sKF?l#^;w+s~YImz&x0g@+ z?f~^@c}~72ssX)OOX*Giye4Pl2l;|Hyd@jtW%-z2e$QPW@$Mz=e^MTiIm~UI%xA2r zk|#NEkuF`Onfzroo7HBnnQe}mz2=Dd&D<=NrJ`IlBBi;i0pi;{3$Yw=aGEIXU?i0p zO_!aLsrh=FZk4;GFC%8c)NmNj(E=R?%C4LRI#NgQn#HI2Ivm!^=mvDqTN*KHB2gQ~ z3_pgs(nR8l9FTYA8Mz-`1{0I1vQdsnS*?pM8fkqE(`sP8Bqu?*6U1*4p+oY!Tq7n& zbLeVJ<1)8}2zS*0DN9i~PG>aOY@$Jt4Eu zS$}EDxNX2a6+oX?`^ZgpGW5 zhDjB8uFh+t8`&F6PPLH~@MbdON9AqV%iNYp7tqfmo=;0qTWe>}Wd=&_3(7*!7Qt+u zzaGY?&vM^9R2J#;qMO`9&i^T`h(sp2-j=yvmQQ3k*^w;^nD=F=587Ug)*ZwRz9 za)&mD?LB;3OIvD+Cc=LO{hcW6VOB@w6xn_p6?}|BR)BfF%z%;Zc+#V0sd>#bmP@Ev zK-s`MR5U8Ci<(1ujgpufh+CoOAafZ>?3Xdp0$gAu+48*Xz)8|Tl|hyUHObGSpJ&=> z`Z~u!eIIXm8=ski1GMmpo&XC0v|peTh)6m}>Y#z=QQ#=t=OdIFrpY+pAUq&NBeW)e z$Lj)}qN#e6UpCX;M7SR@X{hChl_4*x;*(XuZ{d6&PkfGJr7XoMGC;iCJZ-|{Cb?!T zIa^mEJTix`DeQ*-!;{_TtwET|?~2h#0U8+s*NbHnQ4MH2=Fk<68|baXyA{_1;Ci&) zrQ?`WydIP<CTa0dYqVr{gGTD10cs|ERnUhN}{)jkTUuQsKFw zM7{$m9jOoKe7%>~AhSD4{6paAB2OObQJAZSeTjW{v=9m3$7DbA+ktBG zQu~pOwPUDH%|SX5U(9CQRzz(eE?LC8Oz)Uk+Jh*RQ-jh^ z@Qi!V^D5lAF}e-Km#g~<)U?EtujBn+#1Y&T?t74U)EGgUZ)38%4n0UXJxDm1@1Up3!*L!UGhPDm7BsUR zPy7bmo`>TqJf{tDPlZv}cMPVgB=C1M*Uj}iD(ynt`eo|JFOrUn_aGC(iAOQf$pc+Q zdYP@nas__#5_RSbx(}j_sanMr*@|{P?<%9<>;8WyoECt6G=E+F%l5}0p5MiHckN-n zjBcjV9Wd7&DgrGx@a(qmyvCMr91Ww+yXyLQgi@vIfjgQ!c0J@6RI-rTzLpui&as(# zvIlLRkt^u1IvE{BCM8ibV!2A=`Pq1CUHzVX`WL_1h8}9*uvyfZav0@!3^y@e1|j zLlE!sPV9L8OUl4>EtJ=UXXkm}=|~(7$bY!k^$f;;lLbRToIMOD@5#FnC7qe8kKmaz8+rW z@Htl7;394DPKUJ>M?82Nfw3z29fsQLfwd|MNTz&p@pOVc?n@~wzElY#ve*CJYeog-n z#OoX4>pxQY_H+E@t3edm8Of2z?}vgo-)BuH#%m1kRnTu~A{gVlpHwPcE!HasIqEb2 zB)a!IaNSfosIK%C4rv1QqLt5F=ijwpIg;!0yvE?sy?oc4ORXG*YuyXtC(-D7+;$V^ z>*Vt>YDqX)yE5A>u;zR14J4~8(N%oSlYb`9L(y$7uew}f;c`3@9PPlGL@mFT1Pd=J1Q0qsu-+mc2%Amqk@^ zopC4M8Rs+mEPB_DufR zqkp)-s7}wVz@H4Wtw7t+dtx4FhrwiHB3PR4Dvj>r8tUIc?AMWPi|8sR(7#WDrvc17 zlb&f7pN*!M=mdk!N_;sIyp^cb&E$916w3S7XrVLS-W#{;OH~?#s;5v#7t7;t`~-iO z({HYqOA?zRVW2lU$${bcy6o6c`~5Ywr;U6+8r1yA^e413A<(VxP>M*7)> z*)32s!3CD@#ct;R-@ke)$*SXeQIDU|r-Oo8s z9wT?V5am=@h=HwE-kS?R){vetfPWldKJ}PkPv)8JzZ*;UFphb;I+9Ezs>0Bp=(#0m zqv5R-`o1bvP;m;Z-a)7796gN~Ws$+D#HkO?eMYnGT{hdE1@nVokKuXc_zj11lDOfTNm=_Y@N(6yVFPB z45PP@kIk5^>xauxqb+qP8df{=%WjO&kLYCiiqs4AWAp=!u(Rx=_F>!GHnQ!(eH`3N zbge$hok5-(P6ziIXisvs#i=83r*r0*+0MC}byIaRwlz3iJ$4F@=UpOag7@?e(vu7r zCWYY4K;PX_d4FG-8~JrlP|t{<%(n25iCeYf`ZhT30LBa$8S1+thjodrqOz{%e2Tt% z1eod&mm27}35c8Wt}2MjQq7ve_w68d-Avkzex@J!`;`8ooxr=;F0uF82kAVoa9-x@ z2j9zeo&Lx7)p5iu2MkWf0Xb#fH6Oz3XXc8j$!E!MnTU6_^xcSCySDVWqhUOT?|R_? z>GU5#oGcct_hcpERy{*OyNeZiWwNo4*KE39t;V6&p1uO5GRq>J4y(`T2Dte`ztyjG zEAyHUXGuh+2HFUR-AMk1QD3T+bTNrUtTUSF=e;h+SK;}(Lu=R};CuwckAbpvU_)SU zV3A!MSZj3nnO&;y9^5WgG#;Gh>#OT~2K$bG0jr9)Smhnp zD|(Z?$^NeUbR&!pB6DklvOcaG!O?`*hVWd6S67EpV7M=u$?&nfkG0|jO(J&}b3AT0 z+KYBX;FG{tfwMNRQ zH`F6YcBpM-t^I^J6rE9`6h?|EPxBJd1i!^!@e;yT{%Z7!)WBbPDXSPujKiExQ@kM^Y<~(T!}QOR6Jl z%-i7o&YUrp9~>WbSB@Mv>%7I+UcMjmMA+NpMw9cNd==037`jh(qUg z?x*Vrk(Ffc4)X&%R)DX+xeWo?akHNowD2w!!E2;k^1EKm@woC*!S5Eh?lYofzbi<6 zj|SIhzgIKZ*Wzx>u^U_u@l`0-_xa=CaVvNm+5UEp-DGz#zXBVMzihyP#(H)1CrYv4 z45E^reiYY(^a1Vlk#ck{c=u{mujffO z+JWvr4s6lr^uK1Qd6hbJ#@s?~I&4v7tE)`!n(y(iFrT$8h{Y-H`PE!7ZhyWe{D%9? z?TQ)_!1@%cq^r`wuS>H%iv_+59>N?4d9)e+I@8zaIr_YQs%N#DO|rx6bem!8<5z3x zKBmEbvESFdzPIbH3mJ1bqve$xPC*aq3%XNJX=&R4#1qJf#l$Yibu)Z98@2qZpX=LH zfoz+^4C|AB%|Y?7dD?8mt*)3`@gBD-t|@!W3uZ0d$4|tdvG?E*IfepG;^0+q;{usa zH#&}Pd@}vnba{aF!b#RJJ(=J2-J}tI1zP0)^N{U%&GN4UJ>ncNEd9>ALD zELmDcf21GZ#%kmepv?99yMCR6=QO}`hcM@HWbs{m zm(DpJr1>7Ni_$nUcrsj1r%q4jbqanyo$7NBpBMN$otobyb5qFLhdtU^xN|O;7x{M! z_`EBAe^r0hOH}AJb_&VMSd`En8(Z<&L^l+myO$n zK25I~C97Gfr{b4x=c$NU4gbfQeuUo{?8U4@^`h)S=SSoZde#I~kmL8T`qCLSLk)+> zg$nf6{e2vwS?yhv^7K=2)SE#baWQT-9sVBnYn+F;x{tNQLS4-DeW<+1$2E^Eh^Je8 z&aMLAOz_SC>vC%OGW2}6&7^0mWKZMJTj>;}bdD(mV<>1t{pL2JMV_grTQetVz5pF=OTTa8a78K z!SMAFm*7KdsAF?sw!n_3j=PTXG1i51aqIq6rBe0~Xg5%i{s$w9k$8BVU6}`TRn^nQ zXXac$KzfTHy@-?)kWfWHsx;|UAfX5mK{^2?^xhIk2%-0)Ql%F~5d{QAML+=y@>f(8 z6cq*K``rUyS>HPAzU1Baa_`x*XZGy5*(tBeGMO!7WvKL&DRNqhX$k#TPRe3Qlq6Xs z>9SPb7RTA6a#bQUUjNe7R=_Q=J{D(PtgW@M=GM!e=UrQCXi-+s{?>E4MWpL(|jkJRp1Jpxl)|Pa}2PNHqFv(rLC}J zOSHZ=#HQO~)(jiQ=N+ab_J80`H z)pp5xnInUxgS3n^>k%|V;p-qrQGPzMo-S9And>!;&2 zO}FVuy$0S&_6#`sTR$S$*}7YTjk6TcE(LeIJw;>(*&Lg1FY~RIyz6EQEDnr`?qT@YY8;F?v=g7qMt{YiZ zpU5|}yZRkjxlQNl^IBUg>l0c_>+)M!tMR?0-FBIV&YSvG-brA(9lK-X?YMYVs}Nr+5-l{-`goml5iD*;R&)rUZYxv zNlR%ey?LJwyRQ;~?J)i-u~;MT$#uyGGu_ajQ<@#Doyg~2tT^(m7j>M~&Vg$Hyq4DD z;EV=uv}Of=16YpH2N~1WhNS-v-Au{X?^oFD-2_3N;U|tH5To zeWR0zRT*N`N{4C^wZDvPs%eu!djoctxTEf(JLz_SIoYMUbn-dbCBboun*-VfFkjaF zY=H!liB(=&%Sf3H_Gqao9r=9`nZ8aof^#j%)8KkL)qPtkkkOr~xGP!^R=c7p-9g%q zs)}c4x$V3zh2K~$q6M@h`-=r{A-#j*<<^JQ@mqE{jv|+RM zR^#AnvMz?-gJkIsWK9(!x75BOOG~@Yxbk(K#x?TkBj7DhoTAB-2IO_L*XFryom=lV zfcO)4${lfg-5z(?9djq#yI@aarGh#Y#1lcB3VW|pnf)XSD~~)Pr6o%0NM}hP3Y{bl zogRjA&4lArvi-a~Och0Z8JMamxwEgO{;MUesSQP2zBh9>Y$NPW=G)o1YX$P9ypL2Z z_>HztK)cVq&#@Ln3(4e-ZkyW$+7I2g?w0$_eM(-Zd#ovRs7WrtEhkSmf_R!#m4_s& z2-OO zJgCJ^qsZRBo)lh}fc$lL$X##}lnZJHk-;sO!P$kV*G#H;uv>;I zhh1l(JO{?Cl3gB_oKg>*vp~3l^OIx@YXTlD1Km0Q%6U4nnWzmZR7xe2KF3aWFG&($#?ehR#gNf}sfB9n>2Run54c1Ox9Wb_gg>jOGc zE^t&K%F8rA`8=Bb`;Qi9mxJwD{L?B_^eEl>s{BeWd?$ZV0e9pL*+p;P_W*BwZA#_# zK*xvbXz)(Kp@bdjEMB!F-S;INV=COPK;eIq+-UedeTese>qYwSSiTial*ic`+dvIp zv1%xAn9uj~HdL=X!Slhc;7qVLNC+Z=OKv-#Psd-TkgX~Bj11TenH+{T^`nmS(3R%n zD%XN{C^?kxiw(L3EEpK%4Nj2N^Z3S4yhYe) z(|ylL2m55YQC`U>1;L#}T~C1b&|9Wb=ZEDpxd~q}RNg*f+!rShZD({7c;B|l__hTW zSan^3vMnYb(s|v3Bfm#xq=WuL^gSo)97EsjK(fLY#lYi)dvE;(n+R#SeEMFj>w&AW$;Wrf5+03u!Yz(SC2IO(n@ILpE z`_)wo(t?(mZt)rweEI-y7xH-yh!;JW{4zi`o^!Q8TUegPSN0_$bG+L)Ni_zjZ6wuO zjrv_o#mxe3*d11B0h>guqivUF(qyV2&1cL)k9h&FD?oh^Cw@!vdw#?E?Ztfb47uG7 z?P^PZs>yEyL0wS~%RBOu+`za0K>bGYy-iebSDQ)(P4s^2A`!R&%h|0EdRY;#U7J49 z%=hG_bmUF$vMU|L2N^-1AP@Px%qw_%8R)e)#k0JWS$GNinOjn@X+eBf4DV}kwhY&8PWDFVZfYPB&vFgKVSM`NZ2g#g8iL21LmgGa$^EO{Ve}{F zqyJqqnG9;;peNy{Uv;HW=&?aeaD}dwPW`62mN<&xAfCyt!hBxpt8NxG`-Bw3XNAnJ zp>lWOCBMZRg=$m7d&F4WQ6sQMz<4PXJC^mZ{=j#q$Xt(ZnZH(wfA`;9hZE-wq85o4 zX$p>eX!drn<-$??P3{J`&Piu?F~C&_pFxd4%**cUDUZ=@C*8tjFQdawSmvr;V9F6#OV)snJqn~1bF9@ zha2ci2T|tl*jEAgjAm8#4yhWBC!2S8;ff@aPvFH~q2AMRqsxijBCasoUp1`g`5aqO zfm@Q7E7a3a$7a%-cT(e9_~bbJZ%4;Zp;T`YnafPxU$H{(Sk>-PvC$~hKzhQ9^uA~^ z`!TnLURx(<8axT&W3Hvk?=qoUM_o!V31w~_i|G-7$hvP>*r;o$L?@|K3>rs!5$?Xcf-$}O~LxzOaaUbst z@6EzmNhe=2=*1`HBG-!0X?!-DHIHv4dxyRhW#3L7{X`T_!185Q=pARFRPFo>T@`0D z&vsL%O?|B%qxTdH$^<2YOu{V8~r8!vi^~~OaPaNeRgs>^oE`2Q7vHqTXsK) zXwCCEok0v|GfB_(jHeUR(9Ny$_n7M6N9Y{#<~Z5Dh$B?Fds0kq$-8vxb7;mR%ue-e zI&N!#wV?l2w?4MhLSMDO&RTDB_+8li40SpW_AU6Uy)d4_>O~*Q99#hJYSv=rg^{ip zJtr0&ewKfQVr_)3rf+^@}@BQ17 z;rFP3{`k>pUXz!CAO%ztJkq&bZJu{?lYI3|2isyjM)%(DXX6!|+aTHS%Gc$6VsMUY zx7D3m#y>lX!(Y^8HtvCUPNXK|Tw@$`k{jz@Vyd4+b*^z+LARIgTQVpV+;CUi$GFKY z#ALU7hgtE2%O^#_RfUPD8GUwujP;oq)^CzL&TJSZEnsUlh}Sb!>;m;+D(isk#vSe^ z^LA2=f1scRwV3zw_c%Kd4UEU3%=7(xA%B|+vR62t#4(jM0kj9a59y~lagUq5o64nY zxyu@KB0@iq%6gVME=&|(SF<{}*6^uiJ8KK_36{&fi~{v=Pcg-3b>f`M?kW+16qp=~ z4sWC*t)nMxBnGRA%^}$T(Oq@fa8iY&IM`yPk)Hxbt1i+_x`X++d=GPPlEKfD*$MK3yhx4=r3-{g zmPF)c@^`P0>qqE6q4uUS;eUhE$gfv%kP&)-7)I#F-g!5pv%jqloeH1MCV;ss&SEs^ zKBM=nVD4@U>)~^jc)Iaz`_6K^CtXim^eZr($T0!bsc^j*{#7zb4j3*2s*v9on1*I~ z@39*GLRFndZgvN09BAsY+a=%)UFRUaJB12p!_GT!ejFH%u*1jwQ>$1e)-TZY#Xc_c z;QJ*R0^-qJe>~YTmYwiOjp<^SS}_ppkAWc|MJNUtl-S8*_dh zyhW5W0Pi69n(tM56`318!CDHZQ^?G@tR$(=F%{l>OLHcuR?-^0?b!Pcc?&Jg%pPNy ze;c9Hb?ME2f#wW+A13R=NqQK6Inw9#82==HE{Hdy_3`-OV>rg~u)RsQ!s#)o#2ggP zea&ntljjcoly?zU+=}8Jt6Os>(edDmN3s9XKeU*&=gc&FpAI#fIcS=j0ju3z2d3i} z(Xv#~mvtk+d-Ht2)LTf(!(JyinC98dAfs3N8E%t*YPS^~+QZ(G(DFv~>}D`K1)MXy zdpbs5M)+p{HE@J6%(pGr^ON}Ce40g7Z=mPI{Nhw;Te5DZ@3?6oUIE@M;5P-Q$3KfupYstKoC>X#Z5XmNvkH)aFbD^1Bj|$gJNn?|cBxqQs$`e>#$iE4~H# z!TN#bu*#MQI|bNPaR)likH$Yf%Y54x4;enCEJQrY!fiKZq@l!Ry&bZx_^ds;M+0j3 zdA>Uu-8yL(?LX#RQ4sfWon0@qJcIfj=YD#CS0%F)kc!e2*6zE2nXtUf`{tu`oG;}X zF7`L3^=t5PfD9juvW=xOUq_#A(lx4(zcszjtmyq^h(6lm51+5aa4xU@ix%Z10tlAsxGYdD0zRc(+M^oHuu5& zEIo>zwS@CVbgllDVteS%U0qf8v}@}+y62e`)-of$&Xw=u4Odp?q3UFGI1vp(eNy3f zD++WLwY`mZ&#YPLkl}P7^o=*D#}O#=2DtwbexqQmHrOh#|8l%WG3%6hfVdi;)CFfH zKB=zl(c#H@NUMUeuVu1>%z#y`q8mYtg-_PTxQARgL!T$3n)+vgO+ncS#PRSN@Bb?p zY5Az*npO+6U3EAU^CwLI;r}=4p!I)&b~_3+fd1SUwOZ%$;51Lulm0K>o9DBW(>0mz zThlx5E6G9B=9+&x_=pzfD9Qex;wYwn;(wN-K#NhLk6}0;%tqrkO8Wnogx@WoCEz;b z_X+f?6FS=$R>x|xu4dNB2A{v#wa@{x&#@ZkesEv7RrsZXsOW8?@}++g6tA20L;v5Z zR^;?(BGihx=nOr1nXW)1N^_4o+EHgPi(kQ~4I#&i5VOT(@C;OX4!k}Yti)Yr3%2|} zykQ;Zmq_VKHgCf%evZHS7WFI)TQUAwcQtLpjNT4aDy6@X$y?C!#pv2Q{z*U{ayGZ- zWU|ZR|7TJJUs%!qAEBKlG94e(k8lp(v+ijNEARh{8M@$=x|DtshpM!6ncZvlB-%8P zc#YCaAg+KGjMe>QY*RF95OsV~2XOVge4~(`)@rb;k-A2|)CTsly@~hg%(YS;tZ-6V z7t{}q(vR!^KfE{3=fGXIhuy;xPCgO(2OcPrJ2qwh37_dt)f62;L`yOI{esrMN6v@y z;xQ(N8|3{R=7>8u%)9as`zZz97`$}?Tzsy1$-t)c$=dk-UgX>@8-lM*bkEpZC~QO9 zWN*+>p0uyHM{~MyIhg;Nh==~NwJs!9(f(;!eu0qD*Ii*( ziDhTmwzoa8ktt(js6=TJN<~t(!bzOSskD6|K63u=v(MIt zKyfSXZpGb-LveR!ahJtgT#7r(;_mKJtXOf`VvD=Gmyh?(duQ%n-BcvSu;$u>fZ6_>s8`N#^bF(*$O@J955Aq`t1+hy za&;+I)swy|GvX@2)RSC7lOSQYX3konA%(=rcX4OJ0jGeBbqYc zhC6RECNIGL{w>1a{Q0!}<9NNiwJ8d%-s+cx6F>KJ*CvL?FIRO2+TvzU*kb+-xi zsmEy%a!X%r5m1$W+j{u|#eS9lN2#-uwYpL9RbMH+QOKTk0=j?j;d9h9y+_ZPPIH7q z)oDGk_K+w1Id5scQ@%jHYrbgy-)W>bY-fEtN=z|kq@9kPovg}6KOE2MoN2%6;@dr< zeh0Q*HCS%54PFsu*&T}ga|_b%=PD8}-K!}ib=W1W9vMAFkY=<$WUc3?DcyjW6L}$f zdLV#m{qG2quC3}iVEs@}q;}~93uHCQo4l>YR(NdI>4BfIcTv`Njy_Y{#Omk0+Ot#j zMX11lJKRJM_SmOdBv;UqQfCg$g}u$bCdfv`M%KpPM)$zv8q`BHetp%Fos?VL#ycl* za$w794`v)!m@eMmmz0z|J$_fjN78HDz*Lm#jZW;B3_j~0LZj&ev0K7U zTQnmc`ZEy_EOhh4u*h?RxHGu6S|nU>h*KZguixu0-uO{;CqrvLntQsc41ZhJ_1{wP z-{(L6=0(+Y-lu3Wtv!q3)DfOpXVa+qlTS+uLUx3PMtnqgI`Dug)s|^vj!9{HbgX^PSNMg?vkNq=_Xh6)YZqt>)m`j%nlmUqM|;YKGX!0 zm6I=KpB?LMur|lmx?(|H1>1(ATH9Pj-1gk(=KN)+6^V6PA}|5nW2$Y5ZE?b#)i5vA za>Yh*DS7nihqguU(*-O0vV`tG5+nM;9ZjYAZcW#KIF{YW4ne1)m5-A~PFR2U|1m<7 zt}=e6FH!K*Bivvq%{Vu~JOhpQ^Y^;4hzCHlBqnn=stjqPuW+)B)id&6sBsw=CyozMF^{hax%0d; zi;ZnTI$_`;`@x2&mjte_U@#NTU|aU6{6H*pYcMgU7r%l#xgMbs$$Zj(S-bxaqpObz zejIiSHHn-p<_JMPb?Ra(pn)797#>G@E-D^TQPj%ME`$H$9$^V)%SiKP*zIdzqT5qS zPjMRw4pA{)Vv`z|>037|8~YXy=M7fe?oMXbB~swHGJ)pOqm(8Bt?9_y~o z$~;VuGG&@D6i|)k*RU*dT+uObB9qZAi?(0K^s(88=4zO zZ7c-=GAjbdr`qkLY%?O8e;f;gr2hi+qp8)LM1^?ASv^39iuUC(8NH!=x(h{>Kl8Kb z6-60YXp3{2(nWWY>g(Dyoa7N4t33}#+HWK?nWL~Vwg`YMsk`%ULT)k*GsC3`LTvfX zxwmMf61mJMTiPB;G0P#xle;yu0;TFcQ+i(9t4pb_!#-=6Cd@D(5q|8j7>owbc`MIJ zegNp8X<*g&o(T*n>x7Wz&7n2)d+FOh7=grj{+^+&!_`}Z@!cb7rtS3 zYA8MD?^FF-{@uCQHmRT+Q}jEi&fa4tiegRWA3vG}_)tj1%m-{FJ#gLjkHLHPDu0ou z%Xp)s&G0OvI|P7HaHmWx;f2dR8g=K@CobTtf;;&AQ#{b4+g;9`bM+N4vy*BpPN{*B>La+ z2X_5J=>zbeX${|ca9!q99 z4hrM?y|pYfe^kclV}s^JH!4uRR8T6AQQ%nhK%6&JqLSb$<)Njbn6%!z^dW{;3ajz5NYC|2 zT-tR)NTW=ia(!V3T(21b(WWbx2Do_e4pBQ-QSHk&bc6#XoQ)Eu#;K1h$A|!6=BF-f zZv_?O%X!D(pt#on+AG}=<3Zn(QMNGIgoE(BOkVF$2n`pPn_f9B*8DjPt_XfEQJhKa zHIwp{=W}X`DH9q1ZnA(tUavNoCu&>%%WJzO;P+vPbKz{nj6+`2^Mjd#GyG0 z2A2w1wmmwKx>*>2FFp0{$cqd1z!Pem?2g-~+t!%TyjD+8vY0Xl(*NoX*& z83cdZ3z4y5e97InRR7~}Ac8 zsOuW?`|Cj0;Ue)R{c@BV&Wj*_3ucOH-Ot2a`w3r6lv?&Rr7c=8_mtTWUNm5NUA}B^ zVfc%?$WEpaW=Av^DGUI4@mPA(jDuViS>+CiQ69X&66xLDxYN~1%Fpb&b zSx+Nc&PG>#wC?!`%CEdpvfH9J)}hx!da0pHHZmj6@s#`}MBc^G6=$CIaVD90odXKP zVUcE;;!sDTJb9$p5_cVChinsZsrzZt=Vahp-R}`xpvqNTOHTPA?x%euN%#Qe^%>$X zgl6$c=;*5DebFDZIJz12USAV8a?H3+e?5m}a3Us2+uQ1>E`HeL_jUPbWhg~BA&&n7 zKJhcC+UL8tvZaY-nDxBt93;L1UeD%6C$e`!Cnq@gJ;@E91zhg7YWwm`q~H|A@G+pR zhhyn9NL9PL9UUW2j)~hgecy3SHWfyUb*8d98!nD7JZjvj>Ziz&Z1{t^ z_{DnV3n)~vSboI5Jxg{qSRuE1B{SJ=F2Cao!VP`wx5i}c_{r{%wdmL$EF(G({ycBI z!^k-+2q#}Br^BarJAV<=#QV8a8M@W3(iayMXcqD{r_ygUu@jMnk+Wa;2)dM8Hr#67 zkj2C}57xu6EB1OnN4+pfJn4QT?fuY5e#KC`K5jKCg%Gi}*GlWYZMZk${*B-?lbQ_4 zmB4M^zjLsQTm{YtD$U8rdS~R#`)X5CyCGG3cKJ_qcUi2P{26lbuVk;`TO?0$y;Q*# zBPVLE!mrvu#ksy0v0S^HsF>n}x|R{IFXyJ+W5So<9cwxuSr<}9y6@(2=55ytgYx;c z4Sbw|jdO)Jb<}gNK9O^!IqNUtD#>{lPJOT(!I5+h`jKaYUzWfYAzietn9!|x9MRF! z8V~g6AN0oqIjgcYmj+pCY>2oR@;_JFf&*J?xR)RZ|Sz0Kth2tOBSPe#*y!?>sqTGTZC`3$V|Tq`+*YxD?J*#^6P zzi@>o&vhj8Z0VjJ9Jnri0x#HyAo(UMfv^yb`u&8%h5T zq~)@V7CUAYhycX)MIaiGsTUcSd-K{b0deVbs5j-crw*(hGQa_EHQe_$j+^ znX_=SL-?gzW45RvZk~DrJiaibCw(JqXpgCjk=!_LFM)aASFS#4>e+sV{*TS-B1rkP zeAC*av_m^2&=6#CD_2xqcIfr80)2~D4C+N)xM;S$J0zWyed`Y9nhiqT&{=S;aN>lM zRk(TsH4uG6eQ^-}aSulZpM5BYBfOkvQ2gZ)K#zm50M0^46V%uGyC(n7MyW$|WF{$# z)H|n$UVJ6lhvMjd0goh+%vt0@(>ixdU!J+Y@~I2*`H#roctPz*?@GP#74PPAbY~ZD z`f>8lWU^r;56?o3WO`KD%9oA(R5zUm-bkSH#(le_MMlOl9&Ma_tS zkz+NQ=NqzJCMX%0-JFT6t7C=#drE*{P}~p)i_e8XQyd5D+e83g^B`#-2_JX!>>q6R zau#n(HFrKG*Qm7mEPO5lhvoVDktQnUQilN%zCCZ}TYj!78}Z3&k^8B&f9dD1P{-aRz@e|`J?`hGc~xA+yWslNlrvAXxGK0pL2MV|m{F|X!P-1Z z;@upVeQvi_U3yzDhuWloZ?45MqVN|@yRSlDq%-Q+)~oV*f4XB}Q0JvMJ5(;fmQutj zMfhNIEJ^FC$RXK5kDb|)(xRRviCd2mX-EY_p@IeB*+JVJ_P&=90lSP+P?!D~_q4R{ z2?Z#YOfImZ`~0r&1_f3lhP%WxOM#p_PYi_2f{=#z72$%C_+)g0dALnvkXztbtrn_b z0YnD&APclwcw=w=x|5u8#)+cZZ-{#Me;k9`0W?VS@qT|-d2~l-!3xa63+!Ei5R=?53J?+M1{yMZ&hUT{;c*&tV3Q|@pFChZuWm61D+S53m> zEoz+Ic)FXEP!v%U%r&%aLc{w7!lyzRJp%6oI`dBP9O|ugQ}+1g%ekYC*oDiEZ{CLj zXsv;Det*rgmnMn!u~f-hhIl~-fh6;6!`-HuCrCL*1I8)^`K?1(1eb&Tw}a2mauho0 zqxw_=#D7*yz0qAkL+w6;PadMfBjBqH0(fV6`&aonmih9%E;Q6zk4oVormp_f*Q?a* z@O9JbO4gM-Hbr6`Wt`%& z{!5zYal-ZbEufn4M44hT;&Sb1@a|R?lxraCBpVxEhlXHV;gJs7B?E$oF2ysEC&7cq z*abca8BZZJ>tvq4zd-EL^3iTXNs`IMj}-TKr)8Gqb9ZuZU1*X+7TK;^ z5RF3a3+p<&Vle9>LG#!`P(p8WbvN3M5cN!bN14&gG#+AgbZ$yww7OP*Q4V*CO%$xN z-(j%VJwgEQDwtl@NW?F@t^3mevUXUesI0K_Jc#Ez(t4iO^scUBjoN&nWrdoGHTVzj z_efG(`w>(3$>3*pOKV2v7`xIXd_XJLq)$YJhw-}APNl`J?oha9A?VSdBoY`jeBaw} zHwLaz9+qdP;!E{cN}X{Nd(5KJ7+qp5o0dj~q*+?UoqP>pm*W#Do^wF1a8us5&(@xw z)hv;7YoS$G_&6AH%fqU2>j)tIE2!~*y@NsT>NN^jLS$G&Ij~S8%IB^eCjw` zz%YH(cug8%lVoMnD+2x_-CXcE8vB^EXfyk@VhYjCgD_}LBw(4&Z#P#R<@b}lGbXu2 zP^E3b8Kk7_+9yCw_IqPN8iI2`ETSVW)|#&K+^%n=x(PJc6{C5Rv+u0MlfuC|{RUN} zKup8O_tynN3!>MzTu6G~b6j8<`42vfQ^E4|`P$FGT8b|GtQD~Lk!$rh2KHjeVpOe+g++ZN@HFIwTfox`hDOph}DabFz#YV0&o>qx$M&yeT?j{Sr5DBlDM=tp8s9Gb zqS}#TV8q%__$$_#<6533kQ3zIlZU6IgBN~RXF1r$%b{Mzg-$hKUM=Xs8D@*&%vt7B z(H0kEgSXMM@?PNUaD%$W4J^3W-IG!${g~O zcq3FF^wrcIq@~pq909IgX>%XKSDbJNgy7T+oD_~uFaB}IhB`Av=8DT!s?wG&V;Y(k zXlt8@Fq+^zKB}ia+uJ2TN0_7%hB=m_|DM&ri|0sqw6?H#Fr#_%5Ma2mtGHL8FW3|` z!(CH09l`kIB0+I{vAVRP4TDg}T>_mxtj*$PTcRs7ra$JU!R(PJI)r04u9TN;yMBj1 zp~zeaRp7!yh;FcCt=->g^Y0@fEwGQaj2+`BP_6suQG;fK6wI3%cbJ6UDv2LO#pm(@ zKL52AF*cV5Q2H&6k%~1JA(>5oE_S0t&1eytft#4^x7!P$q)Ja z#~59XO_BYIX##)ijsTbm!JwZZb|n4OTRPn=%o!*)dG(=Lki^Mo2z?%9Cs3%shqJ;% zW>{Zuy5>6b0CbXkT!nDSPLTr#r4g2=e*u(f6%n)9{(Crtxs#09q(_ZkByH{zHr}~? z9IR`tMNl%x=htFB1`D*r_|B85tS&$c8*5=>@R~yZ{cMHOvTq36Ck-q_0r<{Q zr|Uj*@+W@`i2N7Od`(Ca?=8cRAyk>2I?3{d7~TG(G7H&IJiIskl`qT!#iyO2Vf!ui z)M7;C_CfNzn&^6-ZA)Wx(TwXf9_f)Uo($G2!}<$nrY<_(IeY9d8*(aq?1ILAcu z`(-fevC3RU*yAx~WgQdl4^#UiZ+7`3zgBs#I6_T0~byyxpZgqxh4m)H|v$ zz3dO=vR?A9dPbe4!WIvgh%DceqY>wg1?W6m8Tz_5uL*c7BGJBMX?vN2^+ir&42Z7F29R)+4hj?Gh1SGVl%tzKFZd3y<%i$d|B78sd)aoQ&LvpKP z>Bxq$;#EdLSLIz}KLKNyB-dy`k@xGjU9ckCtp4YLZrlm}uZD}GOchRb>D^AH8;fh$ zZSnDk4QXn__yY|w4?jz0XoINNfwF9AWE543-Q|&`7lqI?$}{RJ8( zJ7Qd>)#HExVSs1$r^&>H1K+qNsvrvi5WSK3v0!=r#bOeQ0sJ1k%k=)G2K^0*NZ|L> zW(Dn71zhU|vmS?fsEM?^SSI3cC7XS>bCGw;i>INa;5!-Yb1$VoZ%bnP`-=%5Tuvxd zayM+9qYRu^9Xtu+2JNMA);2eo&$~xK@dl6Lq6GIweY(}x25EQocV7r?V=vg0sZOL5MJw<94lurSq;j?YVjlSyXViNDV4{I*0t79k9Fsnt)$JNP!SeI+ls_)oY zC3}N+^mP4H(Iby^M;Z7Ge;=#O@qm_Juu9oDTK32}1EwU%V{vC$d{Q9V^{#=6cjBe!kS*hp=>=wFB27Ahn>3K0tSD^SR zAsQU#l2U3S5_MA8fs_tb1{*6yfR)~ICErX)x^_o8YB*Q@koaWI(qtbz0GX8WeHwJb z7;+|2;^VI(=bnyn_FH23{h808Ws&(^+#DXooMPUv**9swS2v4`-`9tw=h)JqLl)WD z2_y{@+2p=~=>jQ`^6r}Rq04I4PZ8y2XkLs*3$%33BV084clB^BE|PO#P34SZF;|&T zh{H$HzK}W*)LnVN-uU0We3R3nsQKVSdrEY12-2t|v=$@tMtwkc*e?q7Xgq{A^kZJO zHw$yFdSt6{r@hkY^ag=dX|ls;2Y956=_lYdxs@$DUHSTiojp0-$t^8==%O@l=1X73 zb+c=}g;o?CKH$c(v`irDQ+t2sO6dxYigrq1eTd}lc*UB<;lb!(GEYT$sFr}9Tdy2a zqNx7+z}_*(zfHwk;ga$!`T+yK8qju?K$5OUB%b!~>0bZ|k*6lolCluYfX_pXv7nsu zwh-w-YGrb*xF76j zC3GZChC7;Xpc-Oq&js=)IUiP|z1k-&cuA)XneJ#Wkvz+IZ*IC7&$!9roC{0!^WWe`G_#Ta zvzqtzNY%n0nrfG)ct0s3K#n41I!T-inUYAgh>sEWCj;&04w+(tZsoidJaU-xxjEY6zhw(Qt>hJVYaymX=8!S6XQfqgE zv(rjxwV$rIG!{o)u^cNLn;W5(XgBsg3VUNLORN<<+!9E(e6h1%0)HPFWmOq(^OPUW zkngOUH>I_x*7DBnWp{&~g^pE?%J?Ggz9uRVmb2tzQ;S%({Ylvk+BBMA&b=j1(Aib; zk-i&MIAno!dlmIddC}4qp8d8wBDtE&*1loDidxjmohCD@f;c9nM@_Hmho^nI5dPFj z^5OhjCS|SSyE#mJkzCJim5wC0Zu$>k3-6-)Rrd=^I<4G5b5FQi%Z^RC(ak03w>_7k z#M!&*UpmP$t0=9&Xn;9}a*+LG52WNpPyusJ0T;_+{U&^lrd3P#^n`CnzzxRb|P-C<^FWN3U!MM z>w_lDiEE3dj$<>17ThyPU5GM}6c<}|jPYa_-r5^E0IU7RYUNc+7i~nJsKy!VM6I;# zFS1`|LFtL&jP%}^?RMB-Ybq6t%vEvH)+Ik3T{y%5>Gf(#Uj_PaarnPT@AZY0T4Je9 zV#XV%YRvax?93OI?wVK%qoknSWNB^zP~FJJz{Xn(Gw+Los)oeDf$o_kxLj89^!jK+ zCLnwJtCVO8L7z|rQMLA%Is9)F^{^Kn*yQS0Tst1=;IcT=I_>1W*_elkwBjyeCP}M! ze}$6w6_kTxKKa#+e0HvKsQaipdTz5;PRJqqz(uPB@u1ed>UE;syvn#OX0tItlbR*} za>P^fEx{*Z3-N2r;~W{VwYq_O)T5pD1)HZw9FMRf{!?-*cGthWYPQ=URB!UlWwa|Y zhw9Rys((&(zptvKR~zHAuS7FqiV0I6qqI3>n`6oLx#(Q}meqtQbqbtQ9+SPMO?5Kh z{UV(5WF57I5yqHD(Kk8|J&ql5wa>jsOH`=)k|cafLk~}@N0vTXHQ3-wO!ACYEg-R| zF}?Cs3>?QS?AWlQkFsP0br~kL2ol!dYaq#Uet2DDA|Kas*>Q&mS6ouE&NA+0L~)M# z!jXwcgu7c(t4t;bxfnTqCN1ZgsmdzTSB#|wp*3-;ypYmj6jT%%IvOloBRIpfU*(ll zmrd1FIUv?LXeY^*aGAQ*zeFxp{qPHDW2(b-<*^+h1&?k6aRFRUv$&+TF+C2H>x_B) z(gYQScszV&gAnw=jCG z&|zM=%F9L<)i{&YN|Quhh2{y9nr^`{F|BVJ9pW;K`@~Ol z3E_1my1XGmbQOy~gyu ze%j}8JD?bU6bQp(rQKIFGf}Bw>@#?`Ur)Btf$c8ely$*V!6|lJ?F^PXO))7#Sc-OC zYpMU47avhLVPcDbV<|ePIf*y^m5K)}6qmOK=ht1cqTAH0T2{&5OeG*mQ=_V3b=co5 zu^I}bd5(m{Lk|;6_(S?EITjY2&_!&~*Eo{dc(86WrBn{Zl|x93gKjE%r1FRE1qR_I zxbe+}KpqkP2;((aS9Hgn`5}{W5gx%|P z=8IP-h^VUYo7Gy#=+cLR1UdYb4MF?#Ev?ULpswb;@D+8WZdX9O;1KvHhJkpv&Um1m zK+OF>dj--r0ocOfBW$o#T0{9$M5F_y4UrJRrsuVk>|cHDsp(sj{Ne79T6}+*jJcEF z2TPiNvCPAtA|X%3ZVakie{G+~g$r`gA&7NPh7~{xn{LZ;EJ3ml1SeP@py8{Vsr+Y0 z5{O74Kx|zIr&X1^VERy_psT35;1z^SSR**jqUZ7erY0ywUx0RjM7ws}ncgviDL0=8 z1^8R>8+N)&s?w_7aYgun*=+`;b?_9h+FC2Ty1vT)qfZt?;mED7c2lBpVsP!pzE_C& zFe`>|T`vldIHA)<*XdI9<9=zOo`GtH`QJ9ez;E=3r-%9zn>QcLFOmljUTscf|KK6} z_q+MTb~r{c$#xz&#^>nFhYa#h`6MJWxI02(9KSss;Ije{GjWZ3wpcSmPYns!*K`%d zwD}`_zePa8NEm0a@4Vo3STw`~y0jQ-WO|Qr}V$<@R+i`Cpkm2J7`bF;?Cx-ZY4sre(C> zIImx(ee3rW#|b(5J)*zCJuU?>kmCju)~M zU{j0jtusuLE_hiZ1n#nJ8;Etdroh)nbV+~TgiTrYJpf!J70%k#?ItYUQ*l;a6!XklvTz%zaSq)6t@c}~uBFyXys!!|CJjJ6 zAVhfKiNHg*xb5y+jVf&1_GUNqgtNgRh3@OFxM=6ZV@Gfz6kp;B1$^7dTGV{<=TGP- zH4+!jWI2n#(8;9jIA)j|H~gUWMME97B5|La3x1w>2YxkmZGV*SSVG9)?FD313=()5 zwB{e2IDFlBSHcaTi24bAGCUESNUn4Fn1M5*7ksSIQu}GIn`Zd!Rnxg7XQB4?dz_S? z@zy`-K?ho&wV&Vwh@P~h(nkM!2dUt-C{hD@e#-kvlvI7aCvL-kpV0^$HWj!0+|^mE#N zKEa{sq^FRrkn4;{WC5gV(Xq;6inY()D3l!Bj13;1gaeQEyDYY5PZ{=^?Ppj?nF_m4 ze2kmnuec=H22T7a=cPJNjF4(vVBvH8Ll4Zi_9aZmi?p~xpQ~G`Ip-#SK9E#CuJGsAlw2r;Z)MX>E@HYH0Q_ z+K{c)>OlMz8rvbjf7bb%P|NdPfp51f6{;barT7fus>HwA`aEmjW)AMO#sbcb?h)h# zgk=298bt{B($&5IJl$0BuGpgkkzAl}){1(N3sKhYydfx?u+Cja`M?q~$)@sp0@*q4 zc_7Ritz3o(C6F)oU^$=p<4>;u;u(cJ-jgQ+4Fb?~rHi0i!0W6P#IDbuPj>%mXWZpc zwls@yvKD>rw)L~~s9DD22_F)86o4YqNWLJ9kkS%FLWK(Hjrz;bIdW!&I~<5Kt=HH` zBF}qz24p!8OIPMsdvSt$Iv;f-LbrlBo}!K6GL6`DK&oLY>;!X`VDE+vQh}!g=&|_i zrdAlv9u`mtj9Z}1Uhx{%++4ZT_N#6$;;JyJ04aSpbqxt<6yrvQ0(7Y zVM`hxC&BO$-bf?MjrLE?R^dr zXMVbD;%igMilg1G*X9YIxO`i*Z2J~h4kzYrqhE;P;mFFaBuNA~L0JEwf`0gvR!;`d zmnZEJ3|H_1t1LRL_2;zDAS$XB)yGJF%Fv`k(VjjseWz`^(bKq6Z;B22IIGk!Az=^^ zM|`w8MEVU*$!HRkxMBwU?d{p=Wwo~gpA~T^ucDS-7-g03A6pnHIga|+Bwbc?yL4^p z@$RFBJoaOwD@N}sYw(b(HFnAj*o$>$5HF1BOqFgha;%*I5OD6yd8yf~6KVlmPLe&z zSQ&f%T8doI+6T}yFR6AO8duwxPt;aD6J3rLb)v}>C%crkAd$H8ICwkHSqbuppbj=# zv0*KJwK{QKN9k3NLOVHh16>$1R1DETP{CP8cbnC`jtF`=7T#nJt(R{y(>1X7Y>fSn zCg#vb(jJ0wgp%iv)4WvnN*)PMpnPlLO65h98L$@rftm1vGW9^8Rj=8{Vz|3@@R{wP zX~{sgJPB)v`?v7U*0kk-(>EAh_M2y5_C%(SZmJg9a8R!#WiYBfp>&pHnXPSEhN86{ zvy^~smJ*XfO~O{R0tHHeI0F#&yqkqhH#pO(BsGM`Zc)lkIYwq;zDY@mYvN|QXM#W1 z{jAx?w zVu?2XqEX*poe{K)>|?Ava(tEcq6baJC@w{RH)~0^L5iLGknH$7OUJVXy+}0ZEt#WiDQy{`k|{2ghy!Gq3mK0mFT=oJopwS}AH1 zRe{vI{_U93Y^k3QDbvUCW-%rJa-w$oiX6j4)@@`H-Kt_Vemi;oEZ}DPsu`jZ6NTVC z5O(PlhU%$xaaYw};ZgH$CadOEc6S=3JvZx~6gj*~9om&$$9W}gl`ISE=126ae`UlN zuH%=yd|+m9aXO87XDT&P>+Z;@8~9TKupPG8In|Xj)`x9BnPoH#8ZjBMOZq6W-2a3( zc~-+nWRE=o5kv?uNiDq$OFt%X2@rtz6{kG!DIo5T={0}1;2k9ggBm9^O46F6=X}A{ z$Wl^@SK*u6eS_!vDV3q^arJSTaq0F}A6NOtKZ}AX??5Ghrw z{G8dT8)T(fucsc8MA`O|NFg^;i1ro`l`V7X8HMqC+s8l*LQ2g!53%~XKiTu<-3re~ zs-&yIT}+!hRc4$~EL#1mEt^A#kJTrkcDy+~;Wjy;1p9?b_<9bk_VqtT?j$`h_sOKz zK9cYoR5mN?9LbqKGP~)+J5_JwIQ(ttzbzmM;g6S_qzLAEtih{Vm1*sX$3a83&S#TY z`mxhnshcrpG*Wmd*1 z12_y2l$W(7=XpX8Tt}YZOpkc=hqTTr6SwnWcrugNqE`YeEINhdh5yWE4i3ha5tpX7 zGB^{re}D0SC-mWPZ{&_wqg74}8&~zBVXBo-!#H=?(JGv!tI?k_9M7;1>0-)NAU>5j z>&Tvw6iV#Q+VQ@4dJwI&fBSlsZCEip?OhNzH?yXbQ*73ygm9&O)!D{vw%|fv9r>1CxN5hUFGEHrL~0gBv`cF@ zrN3peOaT?qpg(rJu z14x1Cnce;a$|RVwyUXW`4)E)3i_)^RUAaO~LHA$&!D1b@G$Qhf*Dd)^#*BPhhtkSC zx$affJpxG#IF~p6kqx7h?JmV5-I!C>MQ(wcDgq;cIY?my5S@W7)TP!TZo@wt<5ngoy)i(urT!4YJP9+%rG(LpPl)h9;aS(_`u3* zHYeBLl%rP5m$ZEmg0R{o8t!p-C$?dT6~8wEw=IKUT62bYPtH%I{~XhKPGaZwGw5RyX?uvmjR3@|D3g_&uA$!PJ zXg2EM*_I{1w)gi}C(3VZ!8qFsD7-7@3oNuL_tIKmOMKtf=XG-KM_f~Oq|@Mn-)h_- z!HEL#4rY5-wf>ff$Moj!DW}a>?akOcKeFIBTN}+Ird{DZLo5>ee7$JDxu}cci)D10 zg+t;I9l#bJ0n}W3^l6EpYCbHxQREt(37pHr64sMMblc+p)%%YAX|{fO@(O{PNvb&I1A76_KQNME3!}XcTWbh9xu&2>l$}^*4zEhsk_{SBa8b) z>9sF?pN#(4Ic}VIk(_Lcf-uNKo4{TR7$Z|y%Ij9vDS8!1<*QRID79;RgCpXC@s|gD z#KUx4d@F|peTNdc6EzwmuTd@iL*<@(fltZg#eALZm;pxUs)Xbb+25lf}&H!eu_^o}ZOkop~MwD2rzHufcN zET%@sfln~cB{*H8l1)#muVfHEd_ndUq|ENBA+pDhR)x31-3cUCc$1QwwGTPe)q^Xm zxN)V0GyHJ@GeAx?4$WB3uNslNR1LFI+*78DE2>iw<2s!pPVxz>N5+z5zR4sv*utP- zU;O}7BQdS$x6Mg%E{~I#U&>D{=AiVTS;_N|5rQgtUJE>qMS)c2;KAmr z8pE%{tLY;DG%nIW-E?atkakw6SS}&uEPhz00=aKB4U;2LmUVLZd6HVyuP?qQn_bG3 z0H3n2qYpx;TH_Cg`LcnMf(Nodp=i=sS6`dl<9Yv@LME4h$c0DP^!0!m<5O$rg%Ge* zFx`>8;BQ=z1J|#vHM_1f{@~Y5t6B2?m5ZAXzN3j!9wyx9Q*3saMt8tfk$9D>{5s>i zjU%lG{%o5Uq$bZgNT+h)UjcscE}~iCnsLw9h~er`&o|r1i2mn<9OtA7syNt^TObHD zX%+-bya{&vpl44LDiU=-mVJ1dvmKjYpc_Raco3Y&u4twgdmfa+ymZMm8zh-?jw(i;+ zYWzjal!)n->NLL{Q-rElh2u&()cLs~Gax!WSRsrJvJ9v`9#xsrh>9z;L^zs|2^M59!Hx_S>|S;K{v&ULGcNf)7Q zm`n7t9;McUbj@P3ldvg7=g3fbepzA}hJl`N$<3O39{!TFphC&Q*~U z-KBzv!oBn7_vLWUBuRUWN;(d1I!ZZ_iL4RrQbZ;0l)`zUT!p$c)Hp*79o}#>q*Is2 z|NcQ?v2Ld8EM+vF4+yD`AuH~_n+@DKY8-g(9T;h^5gitkU6=IGzpXgTcAkzn3|^;* z1AO&E1!q+2dyhF&ydY1`O$xT6I;Ukb3Q%l56EarAX=0q5$Zsq z$4p3Wxpg2};2XC51}k$Y&v32Erx$q2=}B62SFR$e%phpr)$1>s1f|Yd8}K;jlG^6w zJm1GIA)nK*99^&x`&Ls(El&{)-&LMnYnl5OZwe#q!MtW||6i#a`4jymSG-)Ervt2g z0@E9;qKCiJ`$8l^2=#~A=kVHlf{a0H?u5n$-Oo3y>dL#gZl6EPB^9u!qgVRNPxxx4lE5S65ogHnZZ4k*LrEnSRhUR4`Gd%a z&Y|5*%WPN2$w~v`(_Pi)84AU(8KM?~Zd$gN_Pyu2E|KXnMo*JVU0_dq?x9)5i)|2< ztbC7%b^m8!SEk&nu7Fw+%MeCKGw%F3P0PNn3wUGS4f;ha7#LW17+4q>7~p$?{V%?F z$8i6}nC}?=zxd-jM*J`SPaiDU4>13!6aEeZgZF>x@&Ajd-rETN%VYS?L-K!kME(!f z_&*puhC%X?cR-urm?Ffhs3FffxCFfbSIDe4mp zOv`)U1Z1pt`XTne`G3az|53-=JCU1NEHDF=EJ*OVc=li#qgfL mOYMDvurPa=upjFqklvXQ|EC;Bts|>J!O!gv!z%DjF#ivLhNEHt literal 0 HcmV?d00001 diff --git a/examples/wps.html b/examples/wps.html index 11f297d97d..bbeeb0f74a 100644 --- a/examples/wps.html +++ b/examples/wps.html @@ -2,7 +2,7 @@ - + OpenLayers WPS Builder Example diff --git a/examples/wps.js b/examples/wps.js index 0fa213b4c7..093351cb9a 100644 --- a/examples/wps.js +++ b/examples/wps.js @@ -1,6 +1,7 @@ OpenLayers.ProxyHost = "proxy.cgi?url="; -var capabilities, // the capabilities, read by Format.WPSCapabilities::read +var wps = "http://suite.opengeo.org/geoserver/wps", + capabilities, // the capabilities, read by Format.WPSCapabilities::read process; // the process description from Format.WPSDescribeProcess::read // get some capabilities @@ -30,7 +31,7 @@ document.getElementById("processes").onchange = describeProcess; // using OpenLayers.Format.WPSCapabilities to read the capabilities function getCapabilities() { OpenLayers.Request.GET({ - url: "http://suite.opengeo.org/geoserver/wps/", + url: wps, params: { "SERVICE": "wps", "REQUEST": "GetCapabilities" @@ -57,7 +58,7 @@ function getCapabilities() { function describeProcess() { var selection = this.options[this.selectedIndex].value; OpenLayers.Request.GET({ - url: "http://suite.opengeo.org/geoserver/wps/", + url: wps, params: { "SERVICE": "wps", "REQUEST": "DescribeProcess", @@ -89,14 +90,21 @@ function buildForm() { addWKTInput(input); } else if (formats["text/xml; subtype=wfs-collection/1.0"]) { addWFSCollectionInput(input); + } else if (formats["image/tiff"]) { + addRasterInput(input); } else { supported = false; } + } else if (input.boundingBoxData) { + addBoundingBoxInput(input); } else if (input.literalData) { addLiteralInput(input); } else { supported = false; } + if (input.minOccurs > 0) { + document.getElementById("input").appendChild(document.createTextNode("* ")); + } } if (supported) { @@ -170,6 +178,38 @@ function addWFSCollectionInput(input) { document.getElementById("input").appendChild(field); } +// helper function to dynamically create a raster (GeoTIFF) url input +function addRasterInput(input) { + var name = input.identifier; + var field = document.createElement("input"); + field.title = input["abstract"]; + var url = window.location.href.split("?")[0]; + field.value = url.substr(0, url.lastIndexOf("/")+1) + "data/tazdem.tiff"; + document.getElementById("input").appendChild(field); + (field.onblur = function() { + input.reference = { + mimeType: "image/tiff", + href: field.value, + method: "GET" + }; + })(); +} + +// helper function to dynamically create a bounding box input +function addBoundingBoxInput(input) { + var name = input.identifier; + var field = document.createElement("input"); + field.title = input["abstract"]; + field.value = "left,bottom,right,top"; + document.getElementById("input").appendChild(field); + addValueHandlers(field, function() { + input.boundingBoxData = { + projection: "EPSG:4326", + bounds: OpenLayers.Bounds.fromString(field.value) + } + }); +} + // helper function to create a literal input textfield or dropdown function addLiteralInput(input, previousSibling) { var name = input.identifier; @@ -251,7 +291,7 @@ function execute() { // remove occurrences that the user has not filled out for (var i=process.dataInputs.length-1; i>=0; --i) { input = process.dataInputs[i]; - if (input.occurrence && !input.data && !input.reference) { + if ((input.minOccurs === 0 || input.occurrence) && !input.data && !input.reference) { OpenLayers.Util.removeItem(process.dataInputs, input); } } @@ -264,7 +304,7 @@ function execute() { process.responseForm.rawDataOutput.mimeType = "application/wkt"; } OpenLayers.Request.POST({ - url: "http://suite.opengeo.org/geoserver/wps", + url: wps, data: new OpenLayers.Format.WPSExecute().write(process), success: showOutput }); diff --git a/lib/OpenLayers/Format/OWSCommon/v1.js b/lib/OpenLayers/Format/OWSCommon/v1.js index 4abedd860b..b154d1f6b2 100644 --- a/lib/OpenLayers/Format/OWSCommon/v1.js +++ b/lib/OpenLayers/Format/OWSCommon/v1.js @@ -270,8 +270,8 @@ OpenLayers.Format.OWSCommon.v1 = OpenLayers.Class(OpenLayers.Format.XML, { */ writers: { "ows": { - "BoundingBox": function(options) { - var node = this.createElementNSPlus("ows:BoundingBox", { + "BoundingBox": function(options, nodeName) { + var node = this.createElementNSPlus(nodeName || "ows:BoundingBox", { attributes: { crs: options.projection } diff --git a/lib/OpenLayers/Format/WFST/v1_0_0.js b/lib/OpenLayers/Format/WFST/v1_0_0.js index 41a4286d08..2deb394980 100644 --- a/lib/OpenLayers/Format/WFST/v1_0_0.js +++ b/lib/OpenLayers/Format/WFST/v1_0_0.js @@ -82,7 +82,7 @@ OpenLayers.Format.WFST.v1_0_0 = OpenLayers.Class( // Not the superclass, only the mixin classes inherit from // Format.GML.v2. We need this because we don't want to get readNode // from the superclass's superclass, which is OpenLayers.Format.XML. - return OpenLayers.Format.GML.v2.prototype.readNode.apply(this, [node, obj]); + return OpenLayers.Format.GML.v2.prototype.readNode.apply(this, arguments); }, /** diff --git a/lib/OpenLayers/Format/WFST/v1_1_0.js b/lib/OpenLayers/Format/WFST/v1_1_0.js index 71268441a9..67653160a9 100644 --- a/lib/OpenLayers/Format/WFST/v1_1_0.js +++ b/lib/OpenLayers/Format/WFST/v1_1_0.js @@ -81,7 +81,7 @@ OpenLayers.Format.WFST.v1_1_0 = OpenLayers.Class( // Not the superclass, only the mixin classes inherit from // Format.GML.v3. We need this because we don't want to get readNode // from the superclass's superclass, which is OpenLayers.Format.XML. - return OpenLayers.Format.GML.v3.prototype.readNode.apply(this, [node, obj]); + return OpenLayers.Format.GML.v3.prototype.readNode.apply(this, arguments); }, /** diff --git a/lib/OpenLayers/Format/WPSExecute.js b/lib/OpenLayers/Format/WPSExecute.js index de74ed9b93..75ffb8b1d9 100644 --- a/lib/OpenLayers/Format/WPSExecute.js +++ b/lib/OpenLayers/Format/WPSExecute.js @@ -175,6 +175,9 @@ OpenLayers.Format.WPSExecute = OpenLayers.Class(OpenLayers.Format.XML, { if (input.reference) { this.writeNode("wps:Reference", input.reference, node); } + if (input.boundingBoxData) { + this.writeNode("wps:BoundingBoxData", input.boundingBoxData, node); + } return node; }, "Data": function(data) { @@ -228,6 +231,9 @@ OpenLayers.Format.WPSExecute = OpenLayers.Class(OpenLayers.Format.XML, { } return node; }, + "BoundingBoxData": function(node, obj) { + this.writers['ows']['BoundingBox'].apply(this, [node, obj, "wps:BoundingBoxData"]); + }, "Body": function(body) { var node = this.createElementNSPlus("wps:Body", {}); if (body.wcs) {