ࡱ> \]n''?$ڹv*}wi%# 6PNG  IHDRALksRGB pHYs  'hIDATx^pgyWG3IS!# jɩ[L&""EMe\]E0JNNln$A`ϭjL`CNi&>{w}w<i}ݭ[]]p }   x4̫-A@[ˊ!yAABy)psH԰ӧO]CY`Ö--v PBƍ77ۦ=w[Z>}:::@u̹s߽|lgLIJnk ۦg7xKG 2-аT*5;;Mw 6 Eν23ÓE;oJ˧N}qaՎ6Kw8@]<ua'HtY___WUiMM}>hF7wtHêqyA>$f33O>Occ_尌^##çNѱ%n%N\%[~Jξ|WcڠI d2^++{GFpSƞ=lhhpt;vll||>m `!_dnҝ F28X*ݱHV@++o;v{hvљB+{] ﰯ X4 )YC'Nڪ;iαG `jxjln{/`wƙL_!`vs}m԰ۆ9w&uWm2E/ק1y %0AM0z•w(Y@HhAɫÇ 6 \ wxՊPK`3X6 лBӫrV-/) 8@`b1Ն+e*a$zƫh NzZ̸0MS$R4 w І Z~ vkҝ!iÙ}[4'zT]F=ɼfu ng'8ۥc7FH?|AXf8|Ҍ6ךqC3} T1#G>AIR 5v8P#jWO$#ȌjXE~mu 7nرlMÿO{l-ů S_HO$i?ZZQqҹDt^lOW#4mg]<Νݾ]={@ᵛK5lvv&CWdFf_q>7xm{dr~eϥr|>#-ʢ8_{Mטlh-zLҴ3}^ 6To @gg_,Eޞ&k~_hxQ)%*{y3l;,ͥ䵰R99KoHiBWVGq}TmHwvP!aF랝l=Fumn )*{EEmśsSkC{|jnbdVYTw ܿ*gfF<̶q}4R0wf7/')(+Xa-22kX™T$H G;ǎ^?/ RGcPP{g"v4|g= FS‹i|]]]KHDH7Ǻٹ˨ffFk>u9=֡`ϒ#Qa8{{-DchϮ2"&4`(ްWE1lN+G`/"&6R\"+,uAiaxRf {q4HTۄ6eͺ:3"p"\:[4 'Ta ( ͒,RIوfPShU:IV3lgT/ S @V%0@p؆] (C\vz_ɴh=F)lGn~.AJ";LPR//ܸ dTZ"<.2FR2FTd,?w6JWzQEpꕂ`bW!<(bIJ$]:&;L 噉0,eajT*ɵF:5֍4I OE+*Fh䂶QnnBL^,8tԁ*jQkriIpƣ}xP둨g{ ڑq i9 LQGx.-ChT*5QŽBQF:YT^Nyͅ=*UQlT!R${BRWoi%|.ԓ̚>k;UT2ݥ#V } ^l&UBz*]`c(Iy$u(U;#-%~(aGTP-ʄHDVfQ$z@Ä=a2/~ {QS$% ExIT^H4Z)1<ɛ55k$gB25k*%]q.76R=OWޔ4qиdZ)% &rӰۋ -Y+f[Jh}Vb[1twz$2abl8$fS~v^ZC#/tgˬ.FLXKNJ-|F/pQYZS*]B+ $mUr@N% @E_5#u V~SlO¾3i1w-'&-`9̙k滴8r4dX ('h OY&2-Teyk`jTŀ'LYzQeT3:5E74|~@]5踗ٗu)nY}jY/Oů ?CCuTh}Go`Jr+]9Uϊݳ#Aٶ[a%ځ6?N&M'O~^>l/Eazy@ @jW"@A-(?' ][7lqX5JF,1UykNdԥ`@%_\3#εaJP̙0C) PF -Ki+2;- nY90&(h`,LJ4fbT '(?nYbt5ak 70%kJ JuW5ae C,@EkwLP"`NǜIV+U$gJeS `QVŬ-ԜZ0h\ P=c]۲muO_=2 `ZQkE4de-`wx]ijX~zjX׉ԄiӁz PG?Jç#YU|1dƶe$_ +]JnJ#r.,t^Y=29YDnE'ˑמ?d?Mu krׄUT)[ɚ6+Ob\O/%ar#+KI.(DkacP~}z Nìd81(1:?sa9{|*K!qE'$g-ޜ^Ss7#۶ҰδO$\*o!&Doy ,@$+^y[\) wb;cʙ ida#?.$Hg&IRGc`,$bGSwV0A2…[/Y[+ʹSs 342: '?L-9C3lN`9^:ߝ0$hw~)wzW-ӏ>6Eavpt"V)]f6\FY^NQ*7^%;S]- x)Ĉ %hpVg([Mp1*`@7,zb79n(U0[i8XN `|VSZ 'q}<ÔKY F-n ݆0=0h+44:d X)Fv[à hA`H f:/k<㜝lk)_{&8)߇ag'8ȔkqfHg&5Y}wNv*Ȏ'b)Cm  ` *aal)వaaq?0Z: P3Mvp=av}vOi\KT 44(f FWWq'@ieh3QJ k_.H/XkACj(cm%P;50pWB\wr0FJ{vp8߀0癣Ě$ =4D=! $i2zk`Еփچ?^N]ͱ8 G @j8h[Qn 1 GU2F<ޯ)6EqV4Ӻ%- C& <fpHpѓ][Uqi'h.,4&4V~% <gXpcƃ1pЋ0lCi:h;mO@<@T#AØj8 .`ma 6 \`vp0$C06^0D 5F+uiJ>344qo =X]jEf?UGOUYO^)! ^ 10ړ/֢ϗǔ~ }։R;*|?k_qȢ8' X?4QkdO@Y&5 @@@a O@@@>  U0x&|eYj&vJ,0zwW&$iҔLOHNj $#tby9 =z*qM|l" {, ?I▨=' 4Q-MTytٙSqE{$b$adO(z}-a~&BO}BliVVzn0.4JDc*ž5vbn$fS~I BaPQ#>"A)¾` NB51QY{ª ^r 2q]YsRc{/oiG*&L‰xگv#b{"ˤ%()yH(J!M+5A+s͵%Fb p'ח&"`,)l ʚ =ơb,ڗ*j%Z/ /Fc}_ZE_C- < @@% s7 4B0  (hQa„)G @ō@@,$ &L8J(n  `!h0a @@Q0Gq0 @, S  9XHf!Lp1 ?Yzt0g  's/3A|?,Xh P]K\w A@GHo*G -/£mp@-/R] nEFFY4RzVpZvks(!`j28&ҏq؛@`a3Gq,o+a`0r8I@ uNXR.:A)ko+K%b 3 qlrEgg[(ZzjX$I~迚F `ŋ PDF8o5A6{?t<5K5ls~䥖 `[~d[[[1*r&+5?^x9}euU;ָMLVܹˤP4x[& A6 B[ݭPG33[B ;H~\$*EF/gu?<I4*OzqAHfs75sxR:/LJses|oM$@S0 GsazCT@vv$)9 歄zEMɞ `N9ʦJ)w6sM釫st31wUȔ化/y/7ص? ƄCڒԩٳw2Kb-(xMߑxд ߿gX>TA`,RꙜF5 غk[ hX z&U1Ok9̃ ixAvޣKh;92vEfp*Ç<4b\TC3^8/΄yśsSkC{|jnbdV֙Oi3Ouҧ~]FzC3 v p Jod?px@0:ubRqqOGch3Q72\h,;;u)T_~6Fwplr|`YZ忽B1C7_f `v[]GW^ rF 4z%|1W8Iwub8?\Rئ(NJT ps;b%;A\CV=ewKL{81@6}}֯im%4<33s_1_%S_鵶jf w{Mn{՞r26wX`R˙2FhU0ǎI8 IҠ'xLSKcc_߹szW`'@[؏9q?2*ξBoaC8Iht޴4\doB` $@ {>y #H_S' XHo衇mV0_XYi )`MYѬC+rRr$F-&ld?wnA-5|"C/јU;LEpqw_Q ngxMQ?42LOGϺ4N[hm wz"W }ab[HYK}}:` @t=}[鑑'O o9dny[n84QvN΋5B^@MiDäݻU\+d2;w~:ᮆwʋ ~ N442⭶R/ wG"pJЂ4=<>~蔾Dey4=z⦅}1tGo}{:p`h\|uʉ/'~+d,|+Kgo02hl.Qc :;;:4~g2\!@UGx~/Sخxea<}>m߾6׿B0T333̴|txx|y 과<>~lfEu$Һ{Y[UXh><;r*--owL|0"[-k@r;14wC꺲eW-͟ (5lw, {FLaq/QIMTzjx_tkxxؽb0=Q{m `:ۉS}>L+CL!? nЁ)|dǒ@&q5gAK$c>]q \:P{Q;c15mPʾPҩ?By='&ٹG0ކxsbv珸RcQí-=O"ȰvŔ~EKߝ=2_yǴ -^=eg]faƉ1]1]a>34Kr=A8DK;}ӹ|ľ:w2+VvA.C4`a}R-;\:=!5vK>u(~9xl>n[r"Ijym3='2EvdZC3򵭃8m~;-6qX`\1M?ɜ_OB~cgҬN&tU?Iiu~9wS*B?I}Obh$,ר>i)ݳbXԑ+Pc`X<`}bʙlL}/sǧ՘nt#>kNA="M-.(89|^\>/:}i@8ₜ㜐&yWb?_(84>x^ܪG:/\v㠛tTjCld6Ne8q<;N\ۼ\f6>f۴"ـrW\̔ΰxiŅo~:ay9O|5 ߼ 7xγq"f1uՌOqImN0t7=\t9}͡mscbL~./mm8ɕm딼x濓2'}~At7To涗؂j)ގT&=^KjlMl5sm6 o7.O2>NNH sۚ qoA)=ٿHwG̻Pyyz^w{'a-S9}(8nsq,@wP}3l@;:n /d/ѭ!Ӝ&ڐ]@ '?|J_FqHn|mAc ]|/i~d:>=Sw b)$"t KXۜ]Vs56X)k9&AE:&+5&A d(.{e~-.ģp N=Je}seOJS, pkC>͵=.e{\be[llY㦂Ge#YpV9>+j\tefQ7 pA<+S+8SYߓ=x!AQK(!$ﰿq!aϹwz\EQ06d;kvZyRi|d}kXW P(|DCXvzNvzbSUrqvQ;W‰x=<88Nfb+!o> 5~9l}C1q/a=xmiww WAX^;&suī ៣yF]gu ~oMW}j|<,"Vn]ۡA}o{% cn^wdi|#Kcno4SmJ\RKeűUu@Tg|x弁tt71^0jkMȷ|C$`ΌVk\EHQ;{:=v?dr3b)7 ,fQIYR!Jy_K Ocjy׺.cXˁʲ|yf_ZcO3z|F"c.f .Ջz:c=zc=~=oEL,Ǘ%Yߖ\)ꓐ<;A[֙X׵/5J[~j4Px|:PҸDHحM,zJWBqJFˀ3 G謐Яn5_q(Ʌ Fx?[~; VX3;XnZ#ɓEUX^^)+Xka+#H<]c\G*6GY] qum[dKr%mg<Jzl&ERwL (i#+Mh.ghxGtTq`!U :W) z.NZ`M#x\ l~?w{g'ȏBp\~@$R&Br*4mRBbPZLSO[RTUPZ&A (@Rd B(к&;{{绽}kwgw~߼onLY30sovU [`wlп^t>(x65O`׮T~ A XD~Op^bO 4;> sx磣"_L/Är쳼8akx-*떉Tl~Me._KMxϷrϜ~U "ΘVK}c ^@'u{6O3yuR߲`4AC"ۉkaG%:eY1]7yt4mg1:4IoИ1Q6 :heиGGiۼM__Ku$O:_Vw2,YhȫBF6p_tZЦ˿B,>>ix~djv@~zykvzYTXm0=RbT꽴2'KToY$oD+uc0%_=l!['S{en>j{z̋LAw}C+7,qP:5l|i/;싅9֐I%Ӣ%_!4Hց%-5Yv9}e~K秺a/pj(ۿ}~l;a-sɞǺwr3x:Ih]7=NʑPl;ɇ_gh\nH`h½DZuꊵաtvɒ(Dw$mI0dov˶3kJ7̚ !!Gҳʱ\{qmwel9ق"?B|O?a aԧ4Ĝ1gO 9S_+ /PFy|~**w ;"mߴ}_ {BaQw&WG0[8=xsm$t Dl%*a+N=3q.ͅ :MlýqB eQ !J!:m+˸N{lӎJ݌F[p{<07%* 3g`&OGK>x.Des6ZoTL6ELxh JR³k+!>rm_&fҦ'_1j+b&CCZ*dI׽xs٤EJsmCP}̤I} 3 S`&|1X+};V`+@v"+Jh ^ƁĴdJ1_[|eo <~' 23/|EW_a>Q+D+m\g+ X>U򢄯Xbq_=,N{q+w`z YMoL)$6Rooga.TW kwegwן! P٨3_ECCvoZ0]eۦY{#`ڗ?2ٶ񒙠Kpӣ#OjSy~?DzkAjcD{lAy1 }(Vpb߱rto=eKi[AI_>cm`<⭟ѿA _ֽ\GAZ o|pcpado'"A ǿL4ۡ IMTo Rus;26ONߦ-ZZ mߥ[Mq}mool6z&ې~66pM}˷KkdDP=9Y&hBbhnjNt;V]! xp(.H:;=bYXmR):@leN9N4s%9̒Rme7_klb^Ctv*ojgF5Jf`jGԺj)5u'\/DWBry̜-ԕ+gr]=-=]:6l5UmYՖSD[")Xpa˹e6BˌٶP^fU=q!z.fjIn[< WA ,$c^xXo{u9&k:dБC4r8"{n_+kSe]uyNg= _SK`cgZc,ÞlLQ7>NFZ<,gXl4Zib Uӝ- ֘+33v"?&;Kr Q N/.IJQgT*S@ʃڱ+kd庒%a5k<㣛6sԽ׀JawUGa=.VwD'gy`! N .~K9ET2fS@R x]{pTcecBSB*Y+!b( Jmugf1QG)C-pui2RJ)]uNT3iREm!q:%,Ҧwﹻgoٽ}=~wNP` 6>`\9- 7,I,PO x)`-^!x3CV+mNg9~}'h=J+frxx0OA>AxRYkϪGejX]c}h>4=ATea!~b]&/e^*`ѾpdGo]QqVlתSlP=&wU5I!+Q6WMۆthf=>ٯ粶-] fl`j)&ށo`zʽjC\s6_ Ҹi2Leoor_zZ=Z7PaoksU(W~9YPmX/uܻum*\fî:MKNu^k d^0^}<6zY/2Ƶ 5,-qh5/{[to{'~ڻ:&,ÉawX4mwx[i/{wbj72ۻ3[w7>+'yq8Yے]431;1MwlWht` 6f&[6S-xtIy=_7yiH/wi04T3װo?~UxQݖlҕ}-߽Rwtsj ߋx=mɶa:u aSC瞲-/?h#~)sԣm!CM[M[ 7_ΡL87.c3[8n|CȤ n}_q+k91\_~+߉$(Dds"1U%6]06^+6zO \Z`q97vF} o\>j#{(#c|7ލs7OL7ixu87J7 ZZ6o7N7F8u L3+q`9,vH]VEL%(#+aֳEfZڍ 5PSlvC '1-"Vc}n4a7&`a7svopeÍyR[(Ҫ#q%s+q\2[+ŕB_JqOw*\S?B1%"jңk߈-t#:5[@5Wey3_1${J9: X4h V>bb4>Z~̸)zWm[[}_5|nqW}FoOT$.j1iij֢%M^=`i573Af9?J8R=1Mi3U[5%_5GkjMq|[~* lvD1#ZF@ ^Cp ^m%6G:%q^h] ;kjqRQ#^Nk))rO1>C.uZtt98'MTSz^]}Z QR>oKOl<j#>%!~6J)crrl\c|o`XǎQG(6Rb*O0nQN[OwOyϤE4 I[β$i/kOZAOn9?s$^G=!_^ uZtb^:6\iNukzZ M`#>YGzhħ[G{!3ph>hļt/?|9X-T\ -C]$=LERqOT4O//`!v :.$﵁dR5`MP D xZkl\>3ww^?c e״u(nhZECI.N2F9HAQIP@dL$*r% nUI] , ZY'nH1̝;;{o'J{37{TX+TEG{6Q0zs_a-܊Q= AYVY߳JSǰL%hOЍySz!y  !:q=?xNWWU^a8gvvV'Rz;wJY]&z&8dK#)mӃw܆/Yif C07y?fnf?<=4fwcL+{m N4@ݖv;lf쵅bØNV1qz`6m;mG#G)0xnңOmVB+]:oQʌCb\XNaS_:w jHE[uT'I~7B-fBIN.@NڵZ>mv-]{:ؚA񊥎:{c];= 2+D]U7=\S'0F6B'W-4YΣ†iLkЦ?8x1 {wU6U`cQ*6١h)閆]J xRlJcVwo#KDv=7,p۶zop8ŧ |m&}N8AFMVuo6a1{w'R{Olk>9`+/{+8Vܽpbo^9cXq"v{U80X ~մCM:k[E-tȴ뵦uh\(;):'Л12YҘMgCmG¢l?e^ΘՇ0P-4b8̺^8[߅eŜ) ;gZ7NkOlg/\p$ Qb;;סeЭeЭ;/~PXqFWv@ǛE]>^F,Qsk:>K=O&ҹbW`W\+Ʈu6s*u!U]73q&mξ^\I)C<7Wۍ̑쑼eo9[6\T^jȆިWF [BiLń{:N{t_?be.r-pPbWi-뼅IUy˱+0dЭΩFe[Jb~xTݧx 7_~skbI1 _vZo y#9k~2 \$x~֢i(y!aT.l.XppAnzPq˸.v (\p4梻L\Ψ \p\5o .O.HP + ۶,oT,͝i!0HST ,0z}<~cЈBȀA# a^AF aO5i0h4;>bЦ(/ 0=.1ZA0hX0pDܱDޱᎽeܱ/< ξcc~}*7gD7Dw7AycEVi Ȓ7(w%A_}^qߠ7[Ko9UoP[D@ST"2卷R*A[FAy-%A?|jngi[,*xʢ\&OW!'ks*P5?1[nlNb_w[o ÉvIFMo3h+buPKF}RN^ns&ƨ9ԕ+KuNST8O͉[EX(CwYIvaT"nMnsϳI{N ֘gmf*@THQCKAGMX&_JEYjJc)x1J'V݅}KЈOLkikʰ22vF 1ɯ8 07M[i$Βv/C*&Tɐ[?7;4Z1=,2QB)R;bI}9>Yt)@␇OyUλ }v`-ߝ752fM4gM;w`! $!['F|2eL x\{lf`c{@x0$JZHP6(M@4Xh1S$Bj?(TM_J4\%miRK@~ܰswٕƻ37gaw QxyUu0y5w0*уt6O3;1rb=,[^W_cݍmjXX\1:LZL!di+ A'̾^袆燱1Z ] tt$ѿV_tΚQ|Y6_ytdo SrGwUtW%Z4sO%5kR& D[=>N?rβa6鿼f?wQ5X=_×vRXHM D\ ]'u }:vj(l^`zr+3l̫=#am#bL[f{gz#!ARW~›P췯Gĺovx$o$+~mb1p>v㈅ߓ#<̟?51+^ك)Xq-1X| [=zPu~愈qtj$~0Ix?b%n>-nceC:[-$O[CC[7'?9o)x-L̑yK{ڍh $OE6t;Uȏ2o\{ ZL({ŵ/ar{/p-?O.1l~az<0)b&'<xXHዡ =ÞҼGksaa=0y֬+ B mW@|w88e*p̃5vVV enSʃr8;9j>$sNyl^)*2$ZXrrYw̴iN_SkumAyj8[.bsr=qиV(6>mk-yj6|T;1,?g&Y~:mιr[2;67^3I*}mky霵ւA_lcWsV;gdpWjz⬺~ZX:x`<ʅ fQCo}ڜR?}dA6>zc3%=}~Ŕ.vL3) )q)2+vͶM bJAL8ܬkiS*7-)UnL#j·:1IηLR>G'jwoH8&HVۨqsT~=zoV>?#pisw~)>fݡ\)?mVrwq'O*1{pznO}}^?Vܾ96}5>ܾ۩7|t C q/ xnߢ--|ndCyc}\XZm5|r<5 [BĞ1PlYtw!x^KEX, >:sK+Ld^-IkZ^X2i֮Usm͔jJQN*!EIA6cFESk#CixqەN٥ݙ7#%F3ɧ,OC{au5]㕛tk{c}B;,$ &($k۰m@>lJy/rB|VDfQ+!JXa-iȒpUNB,LҘai|yIbɤQBYmEOO3z}5NYDI͇]%|ǿ/E[X\kd^?h]]>>}}zk6ӛ|:X9,šC};X 1`H!ua!;Â:SE/ C2k3n~ˣQ([ [}Lj{f$chlfG*趾auc[G'_SmIMĉtVײ@]p%Ş"Iԕݻg1Q)FYb;6kQ[XHEـ`!ͧcZ%2>Ez$xZ}lSU?カ݀Uhn6p2@4@R5&ach0\k1' 22XИ, a|is}{]vw}ugrarCK8EI2 yR;$7$F= \C^XzӘ8dž`6~l#Gv! |ToFwIZ5װӧHǤ-%M& Di *ujF]m{Ce"M.uNKk@ ,oy`bq5T'Љuz<>ږS/-ݪ*=X?^B ABmKof0/'l XVeov]w8s6ΰgz yԼDB:ԅxte5"+]9nW vQ35w?8&$q4o,uW'#xyaZ+g4)^tԲ>՚뮥]9-l)؂lb<mL[f2$+U&̩۩"^Wؼxuk >v`|բ=oԾqR-tˆ &>.Lfwtgp,t:>/W@U; c8ͩTo:ҟR۫e>׊T;4/p 򛦾XL'#n캪y(,ҺU?jHĶgB9 MSPЭb[w_Mދk\G4=&QxY;=^nmH§z;HvY+®d8v%N-hX ; НS:)8^N }VMƊw_:"y2cs- I4e%;pwNŤ[3q bq2Sgkte ̍s[tc3nmIm4pЙOW0Ӝ6/bx_u[o-_Ѻ"n!y"n3m)dSXw RӶ n/k9 3|KI劜т[l62-nxMX8L0άqF^nfmoʹ%q˲L8d`\TbLơ aln&8xn$7sULp`;fR[<ͤ d"n!;H07sh4fĸ(>3* O P%|aJ@ $s q?@V'/"9d:ZܫUJ0-bkZsFӘ>9.r 6smТ_6],%Gw3iN4dieP>] /C|:~g}:ӣ˧KЧ.8=>=|:><+/#/`L jpɈڌ7noh2ײ(PNG  IHDRCwsRGB pHYs  ~IDATx^l}Oh:k(Pc6e 9KujJJI EڊDJJ)nNHn݈Zlt (й(]:E5H-ݗ ~}~ޫIR>   hKT   &@;AԘ>DdO;@Y>y޲] %I5qaQer$IzՒH$pxaUEm~'lo=ZD \p9m"v<~PHo[,jPkKKAj}<⍛7x([ow<~d(+[cc,|f\^AnqĉSH[}⇌kB.'(?.E"??ew; uggg#퍍+ ZM W~J4~uvvJlˣ#ϵv5nI Hx8=;dӵ9-,8={￿=l8rd|ϞѸ+ K* ><3;"=QCotF<om,oM#zKBz0HB 7 fdbd]v"6 4 =17=E^}?033"p .,ffcdp a5Q_A\4IZШ1gMq ᙙЈ,%.LO?+Y9M71яNE.FG--Z.,o]]=^-! Tvtu=BΡ:ʖrS'O>Iauu/ @:VVx{˖X6hnӦw]6#$*w9sP?#???$Un-(N ց{WQ6fgg"gHKyH'@}_lag3077~Fɣ8S;EmEA#NTh)2ʖNc>,+$@fcxnk oeH/~}eztmBV}-mL C_e~%v,l4gϝXk2N^$Mn"ە@{L 1ajS*JyH[|"]"lی^켃CKPxp^za_'ocV:i7b&6LSUwT~$}S Um@mCQd- "0>XLkFn UϹ#55d~(ց{?O宷 t5)Tn I7 鹇)6,֤ƷRb3jRf#-k9\6hGtWhCC_LgJbMG={ae8i4z{mΒt Zm!ZDj Й5tCrbl\x~]]zk}gliL^gdi}O<\V> ֗M]J2S3-?kb&@W2ޠBG7m|mL[kd:*V:v-jShuS=G[YU H6nlS3^wmn"^o=F,.a@fzD=>f8.#p<5f-5`EymB+<(buu(db gV 3kV-(9™h?GD-K֙)itA9S6\Q7o9zm$؅MOff>`( \  <]_~oM R1#H0J,Sah q=hm2aT"Om(J/ RUz5VlR:@[tƭ|`h TS }pdC^ J:0сm0Ԅ #;eYFNQ֓s2 k.O \H ۰:jȸƮ~F.O9P/ƤS˓^6P`>D d]c(0Nx!Aܗx0'2& \u pBxTH8 Zkmg+@3k,tLʅm0 FI٭NƢ%+؆JHH%:_*WR գ=D Qiu h0*O.<) θ72el;wSSǭ P! -Y7*^߸fCkȾ0ջ Q=( Ok|#/v44.re- FKkg#B iX&788*I"͡/kA&٩%s[wav ȖM)a!&٠34 ܘiϫ62Dz?g+VwV"HpDQ rY3+.m"̨$@AY@I ؆JH (^ 'l=\  t/ a!r@n<m0M! 0#2m%Ҩ'Ba ♨NA@Z`"r@@`#* "ۨ sG^tDJ(@,"۰l~  4E0Q(@" gmrߥ}ѳU"@!۰+r&`)M_"gw-[̔UHJ'GF8 iqβtc;8PUi?2NL<ngdp@U}0HWE{l8[(+\ 6mXy>Lxż͞79N G.f܆ÎhlϬHYr@v;wf ~b "W'#fڀC Bض u)=߄*XVa!.\S1mQYiȝ!O.[pF"ؽmd\c@?|;B..P`6Sno0y(g 1)@"m\u maUu 6p pbYXs CwZF*@.r@aH֏PeUs2NŪmFtI٭,op |o*d]ky"GDd!g̊_ l]T9 j\͈}Sa6!e?f!g<aXc%b|I$uB0NŤmZ#CI>| 5D@KgBKC"]̢m^ Df_IUSlXLͯwkjp #Ti w8X i,U(3Ạ܆[QO hfѱ+68 >iOY}̳3d+RhKT`}H]]8`qlX>Tbп~* rBWu`p18:C'3koKc P@?Lm0,OEob 05qBJg$I7; JdoŇ͡/+O {8:3ycl=! @@" "[p&؆3ZE`E  L g6,lA@`Ό+j mXق3 u?g͵~nYuWʊ|*x1A`ᰏY1HeI  pEQI0l,@\A0  `؆Y$laF%A@, H"p؆+ŒJ0E@jZw rӔʔb`D :AE@\νO<)yq؆"j #qK?a JAJ@9sHwl0A$DG!6Q!.mR "6x48oR7`No2/싅m#(pEAh8lU`:ʓ$օ>AD_IUSlXLws׀m8-J ן8;CG# K`,EZ@@y C  Kрx<;UUUk!h{-H&l `=3P~&kQWwc"p9N u]]2Hn(ۣ $YwC+o/9T[[kl/e@$@TQȴ,2M{5dK R%FlB[\zgas|L4 0@~MنǗ~9E\-^$E #b * @ Xv--RAָ!ˆƦW P%jƥlZ[G,2eYQ^]YyDP?hii-eh庀"1k2]QEݽ^ؑ% ̭/RV(R2H 3!3%S2% b@@#;6&^CS3E2`@fzfG)FSA-hpm:Lk4L;<> $z񰷷otքA&p4[p9{ X,uk]qCtN|in{l*'?>=>ʦ>DG v~+\$@G);[P؃XYyoOc (bA]陙w%Xڄn&BG@ྶNY^F r{ԩxWj (F3?C <#W Q fn]]+LJB_xzECУ?( U4m Ç?~,wU`G#&+Ծ52X0e/AKV6Q6V JW:Jl## F"+ wi5$ݬ&H*TM:S6M&Gg47ҟnD7|4[y;MS[WGZ"NQ(|NMnoo72[mIzV殪ˊ2׻mݺvԜ.^?,eUrUVth* /-(HoQ9$Zk'/'x6|zo2Xx -Ee€_<~dեv~:ɖ8`7._Dz'UǠokT=m>{0^;o=m/A3{<-73+/y;۽%ӂ?C[kaCT=Z8 ދӚ=ZLwoIC]/V:o|X:'З8k286{`9,8'Xp<7$XW=S>}+VF]Y%3 ʆ?kֈ p`A @&y[n.λ]sï |y  | s~o~]L-z~!܅](`~E.Šɇ 2 ~WN<wK-?ĎR--?ʇ_[ |-Wsïß3[Rg߲yD4d;gH[ܢ#  nPD}{vh'n.-?I[6wІZ>0(*ק\k乪\9u 45f\~[z'uRV, 9yEs2XqON\2Kylxmi,Ș4f}*Ub:mhy|^8[gF}li~Hr ;}%$ொmtE(No1}֗?+ aۓϫFصo4;Ewr{Ҽ;k8KMXN]@XM\7\~f9bOn] =$}oirOB~d 8-֣Vc0AQlH7L5[kFin>.&ծx54mMn FYVu{2([-!aq뺯wvn~ F-_gnhM;d\WQ1G?(j5uYKuNCh;ico"mcTZrtY˘haÞklm&6poW@VÛZQNo̳5UX=hUf{ kږOk:EFA*"K3.**\u"7+7b8^ auc-;}F-N:}%o̥fyЙZ.c5{B)ua*=cvߓrDү49k8kQ=`ۑ6<39X 3]t,f`3jqt^``[2tt:}uzܧw@G{9h&CXP Xel6|9N^e/f&sU+2eCΖ> ~)gj^wVllJGj-hjmkYW`6"9qn?#R<<~{PNG  IHDRQ.ssRGB pHYs  ~"IDATx^pW}W4Uh2֧fB62:P0E5HBG$Pt&PUH$AIFVD6bt. +6JJFZ Zԟnet:vύF#>?[ G\ ,(p`777799)wWv(/4J~p8lwjjjvvv~~~bbBy_=ƫOkTܺukaaZZZjvih[,}|dו-QVv͆ /*zCYٵzEY>3s16TWWUUD"$:'&'\ZzuqnLiiH~l%0;4q %}]5eeenɃȈHęHUUTW n*@~92~qDb.,% ݮfFuu0_GGO//͓?toޚaZ]*q pd'|Izx#T</de*+[ZnϒQ&Y"շY21v}S?XXh!=+r=C'Ŀ}ǒ<2 mm'vH{.+&̳<Ӟ<ɓ_m!-c˹NOMw?AdbdSCIyfp0.k)2>4ɶ框 nL]Xx.zY!|2nnK&ftɭ8 ]}ÆZy -/zϞXH@4ρ/Zh H<)+`5N0tɃie孲iQgd=77 Z˦y蹡s XE h'u}g:eWZJ=4y_3ke8a9prxXH@+-3Ϫo|?g=oȘ-GkjR(}G ?Qx)9`=,Atv6TZ5yR@@.Kvt;YmWo-y/$F*W?W9ufƗG3.nh:wGi26OxvBB'r;]3 .{1uΗn,h;sݗ z">X6uU@Mv\TNlc]\Ӑ$cDs+мt}Ad֭o^R82-qTRwPX{d9u۷&چ"No!81T[^}`4"ceCc nQ$cCMC% vt͋b^$n0^MkmORư l&#dcmj(q.YNr뮌YkװF"7yr/8ȉh:tᶺe2#c!%jjNVW2]Jzܡ_@XEh>S[sr٣4O]_x1Ґ]Yv<9yNZ귏@KOsmFi_}{iD|M"۝i2LV>]އ6k*QJζXqdnsa:~(к4]i^_=_ZnB}mO;Z5dm;j?433u-vj1c1YԿ3[/c@.S)*D"Vtf;[(Z-uqlП]2FZ_^W.z+rH^y8Z\ηR:C} ]uvͳm"a4ߜ 9՚H|n=bILjޛ uI4͈iЁ;zwV[gmйcņȸy Wh>'~nrm8w/rSt7ianU HjޛoW/K^c{k<)t]D3~]z1\5p6p~o 7lxNt&9 u/޹=O:`S2xXò0[Q*7{P@)g:,`:x-Hk ڊLN h9WԝJ̑A\ﱖ<b?2TQjR!Yoo7,igLjhA CI]S=b5f>K|L{(n[\d5qma/֍EsEWs[(uWƂ+WYƹ,9Sz5gC\}w]%O.n;O˹2YҤ00҆}NNSwBvlKxSߦx7\yк@zr倖[G|蟞{1U%,i]Jdc+wNO8ls4մ 'n7O)g ~Fhڦ]A,KnVe\,˖ 4^⳿,We<:X,X6MXÒWO0  Slcy!@`Z< @p вCF4@v1 FP@@3Ί+!(G`$,S 4Oɰ` c%5VS Bf ! @ (мD?!@ͣ@@PyA4~BGȋO^D( (L*(3^3{.!AY{r q*37xuer2.B@GG ル31~'=OXGPy*uce;zGcg`Gm| lh^8wŞ,xx7ͳ5._VMm>=-o/d~|-ͳ=9Y@XEh @yjឰnaqcn-ӈ:' dOlꖐt2"귅KB睈a%6IoՏy-b 1ԣ,@{G;c)$y[Սy%dg*Ej< ;! y %Ť޽6*=?Xcb"`6]izܠ y#7`Gߥ&Dž'`4 aC4()!۠-RV@"I=C 9o4y#NX  /B@iwS!(ؠ$XUJ :pu=\^SՐy6U x@pexaBc2eΧ'X@W &卐 'ScZ=aM 100N3OyJ@vܱۯozpqM '4/O@>mZ w|a`>RA%5>oER3&zw{C ܏84z+VL8s[HrN< d 5Xف7^t] ]ӮwOk "Iw7J+VF]3vWy1zmHddmڎ @@h" @g;b Ey3 @vhi!`h,S\̐=QN.D: 3bn*3U`cz،/I:(_ǯeFs kkyC >6]J\)Ů0TQ%sݽZ$zyN}v3Ïk!PQO?ZwFcO'ӉL(y!zyuT, 7i%4D/ަ'/@Iieklo%iB9_Ӯ:d8B94/䋢 b xU,q  i^dZ>nQޓ^.13#C.(cPZ6C/jiޢɸrB5ġHE)lPdA`sV飼-ff2VAuťP)5)l(sjSI󒒷s[_hқ9vɞ(ˑ ŲK,!l.ZyzdiZ#Y i&M=af -cײRGBc c$Y+o~ (_\"l.j<3Vs- 6YEV4QgBl.ljhi!"C".UϘ l(3l.^7g?cZoȾP>)5y`"i64&.t†",i442 @G y fCihid @<8̆ <(@%y4p @ yQiw819 A@yA $4Iڴ@n@ܤO $4Iڴ H*>#iԣֺM#>BԺM `m0uBt6  h^P"  @ (Vh^aakAq?!Mroi;VCe+4xv?\! ȁ@zn3cYCE@]F]v4B9H$.Bs,GP($MQE! 33Yv8]7"@]yN 5xOxɞж[#O^fL|fg^\ay]j#Rэ]mSʲsm8H֚:'m܈ѩ+ζXqdnsaS ӎi9#E&9sj,6Γ>^r-񱪐5,Gΰ%@] Ws% K2eafjf8Z?,%zɸ^frͯ2I-NNNmݺ5jr,]^^0@`erO]Sfggo/+DkLC (7$xM/[p<73þ1r@33;5ߓ.XWw  |AnoPDooΰ`,dG>욚'Wwvxa&ɃK9ab#;soWח[Z2<:c@@5`w'zךM 3'R C@vט;UXa˖9QVVw:\':'|>\]]3 $g^6t"RTF$8C@TVtur'kd1P4ݴI|}|\#.xww;L0aO 44|{4dm>O/&ڵS&I@V?sjlIMCCt1#pnYkmdbFGz0yBGlnH۵/隞%r'HXB@31yb޼m2#iIDqLën)njy&= S! g54tLkXҬȑϱ%8QVqބ'O_YXҒ'IL x9O|11=g#G], 9ut{ʣ'Ko/q*YU&w]) 'd[j$Uf(ā_'Gu3BM}} oȹ B@5r"RssϾ}m; ^W_-VF۲壛7 ꅪY=2N~RvʀOLPE 8$$O|Qt ]]g޲e7KŔc$}Xb?wGVTY/FxogDCýx0o-[UQOrccn3ɎϿ7Ȼr3RpFFcI"psG=puu﫯?kOs9yp y`<ݙG71q&ywU-ar3# "uߏǟD6gFf9Jjo#;8&T'u'FG;7=fSkUjJې-Xlt'"TU'z;yL@DN͚|QNWWWUUD"<s6SSSrʂYy< "'N:# vzK p"1~OBW eeoQUU- 9дWKާP~7|24^)IyjF;vIhx-dת2v=wKqhHY4kgx*cQ^М]-.CV }7'мi'14\t3,z83uPMn?]][CZqW7ڰTHVS8ƺ'J#]4OWפ!]3-CsVB3M{(kF0V]sS/><۶2AN}Zҳ9+KA4iLT!C]\?cй?tƈ߾5O(o 4ͣqib?zh_bS@sPVVNjҽfȜExD0n@:dL'V>D2|HJ%+&`TignOH}#sd*}>BPs[EZ/ǜPSJch_lA:qxMI~a DBb-Lmd.KG Ta61lc:I*:6c紭~7d;Miϡ ~"|]^idiܸ6eMi-"i"0_m4 meR^-eP~6HOm}ȰMYyMƭv60wax[^c+*[*߁)+Y#4g߹dk;ibm&i/ʃFp/jsdEHeP"^M_E+ 3%x%"Jxq;a5 6x;ט /I=7LJcP,`H;fT fS"+3'uXAX틖&f\v@@+ _eVnR*"&`I_oUVySpoy'`ZwOAa#'?`ZD\0 ?@/;jٸC;U|C?[;) ܡd$_Zy6o-B e8fƉ ]H ?](ԭd/qL3 u}n4k| `y%/ s~{q oWxʖ_OiG~^|{q+T|}q÷oo^u+u+}89W qn;]Vp]pnmq.rswNe% ;v䄅Zn; qOWVL9E-9Nsv{ [候vL^36]zZ;vNmÖ7)%w-7S+vMW v%z6R0CyXeK[1]:sh޺%ۛ_W9 ٚ29a[3Z-rǶۤZضOTˁR..hoڲğ)Ey$ۇDwFW=A bv|vqy 5wkn_n$zf;j 5*mZ)L3be_Zy'rO|>}S(S1){-Mʪ6ʪ.V!j91V2핊.ݦ%J,-a'oɨҝMGrq"wbZ:Lc^Y>Itjx̓lG k,vvm 1[ -ƴ-a3-!0-̬[y^؎a,]1= O8~62}IKJ1g ZEfv3ʋ`O9+4UL!CV6"<tјb3}bO=>q&73:-W'y0NrGg$Ud #$Y`! ,4sGo>y~b x\lUW{vۀ(?F;)ٳJaMdeARІ 3:\c1ua$Hĩbtd*s_;^_%{~9`P`q 𡿋`~0Q3MS py)M,  N{"߄U޿JSz7ba55 ׄ@cSh0,ۣ4 `\DH߅}w OMAaeԞSDlhSӇ)a%>q9 Wj6C+m yK?g[1f7cf1|tg_`|s5 <Vb|ґ2*a~#ÁG}ǮJţ{቏ a~P؞I#xKOKe.Jn)O4ǖ)¶<> K.(ZH)>&w3E-0,pJQ翙󙹫tXlPV{P6g e DD.82 ec0Na|Uez3LNϾ*omL cZ 1c4η)júVǖϦq rNݯDoo2^-{ᵿwEke/ð$/bOd!mT֥M&}7V+Ȳif0slޫsŎ[g\Q`}?"ʄg> ?Y Q ȫa۠TϼJa,Ciw_{bMuE8AJVc[mo`1jyyinl]nן7G^,2 *z޾zI: ~O*2EwtZC3뼝'mh/AoeɒcidPu7̯ ƾ}1P%Up mx/S&Keh=sx,WGP{j6[M1N<$v~P10=Jsqз"ތ {׆^M oM oMޞoY!>Ȥ{29B7IbqP Cco(A.t::|7$24reHrŒPq}r; 90,m/t&/tM^w lxJ†XڷK# k)_(ݖ]F -`xV18ޫ9ޫ+~U{MKͬR"B+a$N2bp_++P}~ _>8Y_/M |)cu*>w#Jsߟ)p -3(vH   l }& \xxƪL mi<3 QCÅ ٯy2}otδot:8fF|6s^V(ئی|l&۬2mVېxmz;9Ȣ@g!dh|*Xw4$&9`m0Jq)m:1<)hκ M0 i8QMr{ )/LP(ݜ>9F C>+3q{៵?7v;9N_!Ӧ9*fr*j@CHW)i';H?]Ʊ'r׻.޵xml:{<O0Ok쁻hm*Ѳߟ)|eT+? '.›" ~LcXA ®d)k0wA>d~tW.a" &|Ζ_˃_l56&kh]Pb )F~?χ5mnkftkF ÿ9& & fc59d~S5IXj\䶅CbK5cAIZ?7ɜm9+6*1CA2|p0/\"NXĤUz+}V5mΨ$܊ּK/%|~1ØiWwNHQ?o}|l!mvo4Sf}d 5VtՍ: J]f gZNHeuYrz F@@9PPMHHEPPCXXUXXJPPKPPEHHDXXIHHHtHttHtH``^hhUpp[``Opp\hhV``Ppp]ppohhffxxw~ghhexxuxxcppmh}ppn|xxvxxattttHHHHtrylz{otmnߜttHtttߜHߜ߿tǟߜ߲׬Ϧtߜ^ IDATx܋W n6dE[iC^nqEj׶f["uĄ{;d2I|wz8ok< Y(0ly%UOb*PbͤrNawBRvK䮶Hlo宁+;, fwSSGaW^r,ھ7еXh&4~y+ ƷyWժ8ݿkFfX9:6?羳 } M"J}q/y^arceD+}.R_1]%Vv/*Vcz5Lh2ZSU- :Zؿ(b8pޞpvm(^{lt)Kϗm`taKb{kkc6#;t]Ef]wsw`(@|ա7# lR#G tq͹?|"H^:כʧ)Lkps{>pwk~` U۳#RRXks5GJl%D$Hcs޸`WF*^y9[a/ѝ7`]uvi̛k9Vͷ<)Xq`^|~o~prn2 _MI2$M'BĺO?9no`n_S\ei_ͳ2y+{bc nu*{]b \2Vtcc(]!5ʩ@z=V%T_NgXB9O7fM퓷 fc5\rŲL`57e~=>7œJ'V;=eMr*VljQu,V/n$ب6lP\2U.y?:~D5e,&=[ P,_SCgm$m3HBC1^pRmu!im]zBX}Ini4f`k._(2!B .0vGjIZ6;º)'s,;96=V΅ƍ`eoa(雧 $?!|8lp`jnx.*pX?a=ڐ 7TTKJ ~@!$OL׀ "l,` Xu p`-,` X,` X=AXO}?=ևO^- X,` ؎:,Xm,m楬yf^AÂ`iAOePn Tzɏťȑ&Z6>pOMRwrnx+̰()izQR1e$'zf!R*Qn|n -1|Du+P}OrK$JkTcvʥ,V>_Os3}yN)^td>y1Dp=}"1rlu{hMb] ]xe4%Tz1Nzp]Y,Qq:Gʼn]ͧ #wI|$p<8DFo]o~|t45pvhw Ye'gW"#v>,̎ǧ\oP̊{%|Bz"> \|-reS[R# Y, CCJMfIENDB`nL# B+KPNG  IHDR{hsRGB pHYs  ~PLTE9]HtH}Htt   ((%((#00)882881884885880&'!(($00-00,883HH9H]HHHt@@=@@6@@;@@9HH=@@%4wwwjA w;$N=c_%ܚnKϔ_?{eHX;^w_N{GJw_M\rs&׍˃7=h8.Wӻ3 ~vF^z H|l:+}W%NÛ7#㒯ȗ}Mն:I)^{_R$9H6"h.緲'lk<}MOaCя4l;8 Pt"i#].v5/8?zɍuDƃKx݈|.-3cIm$US]r]Koɩ{ӎrx5v"_n}do'<'>cNnt2GۍIIys%t9ٻO~yp6n.gwsgSL./LZ4vr:bg!dy%Bf|SN6EY5ȑr*|Ŀ){5໇tg?rYJŻ`g?otMMs=cQ~)i| rv2`boSz;.5T%conNTP8<|ŋm"gW!qclfz;[W c^.1עK8'vdڱM{ izW#O8 =_qYܾ;H›L>uΦm5ӓ̎9zupv*#3Ndekxg<{ κAL*k,kso.9; gcNo]GM+V.#c=ؼz9~Y^g"3子\6bo޲d v@'v,y=~r.bAc'~jזO/#wZ[q/=Zk+&Z_-5b&c-7KU~-[sr3w& ryRMsįgzɺ ^4E&/N]JJ|&ƑWŷ{r53})}bp[+8Jnf<1e>}w7U- :7ޱg~IENDB`7( F  %  Image "Photoshop.Image.70*Adobe Photoshop Image4http://www.cin.ufpe.br/spg4http://www.cin.ufpe.br/spg4http://www.cin.ufpe.br/spg4http://www.cin.ufpe.br/spg,/ 0`DTimes New Roman<$0<z[ 04DGaramond Roman<$0<z[ 04 DArialnd Roman<$0<z[ 04"0DWingdingsRoman<$0<z[ 04@DArial Unicode MS$0<z[ 04"PDrial Unicode MS$0<z[ 04`DComic Sans MSMS$0<z[ 04BpDBook AntiquaMS$0<z[ 04 C .  @n?" dd@  @@``   8"2 ()  **21   2 =<: 8   * 3 4 , 4 -, /92 " . <76 6 897:=?@A B CD_b$'?$ڹv*}wi%# 6'2$U. iSmn'2$ :W) z.]J62$N .~K9ET2 D2$:.$﵁~ 3Q2$$!['F|2e Z2$ͧcZ%2>g$$$b$oh2ײ(o2$\iF0Ӛ:1;w $b$R<<~{G#2$ Op'ob W$$2$,4sG b$#O:\]w3<) $b$# B+KT 0AA f@8 9x ʚ;ʚ;g4BdBdTz[ 0vppp@ <4dddd 0L|<4!d!d 0L|<4BdBd 0L|f80___PPT10 ? ,O  =%Basic Laws of Object Modeling.d & Introduction Semantics-preserving model transformations are usually proposed in an ad hoc way Simple mistakes may lead to incorrect transformations introduce inconsistenciesp2 6 l Introduction Modeling Laws each law defines two transformations have not been sufficiently studied yet might bring similar benefits of programming laws Reliability Productivity Identify, formalize and study modeling laws Focus: modeling laws for Alloy}KY       (   l |iAlloysig Bank { accounts: set Account } sig Account {} sig ChAcc extends Account {} sig SavAcc extends Account {} fact AccPartition { Account = ChAcc + SavAcc }    /$    Basic Laws0We propose basic laws defining properties about: signatures facts relations Predicate calculus and relational operator properties are used hereh1ZZDZ1  DH<Example: Introduce RelationJ Introduce Relation Law (Law 2)&p  }jEquivalence Notion0 aP!Example: Pull Up Relation (Law 3) Introduce Formula Law (Law 4)&V   0(Bank System AtomizationJ m"Components: Specification MatchingJ  $ Conclusions N= Future Work0Propose more basic laws and refactorings Show that our set of laws are complete propose a normal form for Alloy PVS (Prototype Verification System) Model Refactoring X Code RefactoringQ I; !,  kBasic Laws of Object Modeling.d  Introduce Empty Signature Lawd  provided (!) ps does not declare any paragraph named S; S is not in "; (!) S does not appear in ps; if S is in " then v contains an item for S.Z%&" & , Q.bQPull Up Relation Lawd  Move Formula Law"  dSSplit Relation LawJ tcIntroduce a Generalization LawJ  >43Change Relation Qualifier Type: from set to one Law44& cRExample: Split RelationJsb#Example: Introduce a GeneralizationJ G;&Introduce a Generalization Refactoring''&J  _MExtract Interface Refactoring0   ^N"Inserting a Collection RefactoringJ    ]LMoving a Relation RefactoringJ  E:Extending a Signature0  9Constraint S in T Formula deduced (S in T) => (#S <= #T)  < D9Inserting a Relation0 CConstraint all s: S | one s.r Formula deduced (#S != 0) => (#T > 0)  h  `O&Inserting a Relation in a SubsignatureJ  PSuppose s be an element that does not belong to T and relates with an element u of U in r After including t=r, we have (((s ->u ) in r) && (t = r)) => ((s ->u ) in t)y0' /~  ` 3333ff3` 3333f33ff3` "3333̙ff3` Kf3̙` &e̙3g3f` f333̙po7` ___f3̙;/f9` ff3Lm` ff3LmNLm>?" dd@*?nAd@q<nAqFLK#M n?" dd@   @@``PR    M`2p>> 80(    HJ? ?" `}  d,Clique para editar o estilo do ttulo mestre--  R  HL? ?" `  dClique para editar os estilos do texto mestre Segundo nvel Terceiro nvel Quarto nvel Quinto nvel.  e    6S #" `] `}  b*0     6@W #" ``   \*0      6[ #" `] `}  \*0      C @ABCDE FjJ@3"0`B  s *DjJ"0 `0H  0޽h ? ___f3̙;/f9___PPT10i.  +D=' = @B +  Borda   (    HĜ? ?"@  d,Clique para editar o estilo do ttulo mestre--    H? ?"   g/Clique para editar o estilo do subttulo mestre00    6졝 #" `] `}  b*0     6 #" `]}   \*0      6 #" `] `}  \*0      C @ABCDE F8c@3"@B  s *DjJ"  ,$ 0H  0޽h ? ___f3̙;/f9___PPT10i.  +ityD=' = @B +  0 (    0 P    P*    0     R*  d  c $ ?  (  0ڝ  0  dClique para editar os estilos do texto mestre Segundo nvel Terceiro nvel Quarto nvel Quinto nvel.   e  6y _P   P*    60 _   R*  H  0޽h ? 3380___PPT10.P6 & =50 (  x  c $@  ^  6PP+  B8 ?"   %Rohit Gheyi Tiago Massoni Paulo BorbaN   @@``|   0  ` `  Software Productivity Group http://www.cin.ufpe.br/spg Informatics Center  UFPEQQU 06  @@``H  0޽h ? ̙33___PPT10i.oro+D=' = @B +  0t(  r  S 8 `}      B g  c"$ `@ `   H  0޽h ? ___f3̙;/f9___PPT10i.r+D=' = @B +  00(  0r 0 S l `}   r 0 S @ `F  Z 0 <GHm  @`   2earlier stages of the software development process33  H 0 0޽h ?0 ___f3̙;/f9___PPT10i.j[Cl+D=' = @B +Y  ph (   x   c $ `}       BHg  S"  `      6A?"`P  H   0޽h ? ___f3̙;/f9___PPT10i.|ZH+D=' = @B +  t(  r  S r `}      BPsg  c"$ ` `   H  0޽h ? ___f3̙;/f9___PPT10i.rrn+D=' = @B +  1D(  R" 1 s * 0< R"  s * P < r  S 0 `}   ( # T ?"6@ NNN?N  ,  f=",v.0@j  /  `A ?"`,= p  H  0޽h ? ___f3̙;/f9___PPT10i.Ń0C1+D=' = @B +   1 )  (  r  S p `}   z  Bg ?" ` (!) if r belongs to " then v contains the r!exp item; (!) The family of S in ps does not declare r; (!) r does not appear in ps and forms.b &`  P  S Tp  "ps sig S { rs } fact F { forms }#6  C X p `  7ps sig S { rs, r : set T } fact F { forms r = exp }$8 6*^  6  BpԠ  (  T֠ ?"6@ NNN?N   f=",v.0@j H  0޽h ? ___f3̙;/f9___PPT10i.vrMW+D=' = @B +   d(  R"  s *P ` R"  s * ` r  S |, `}   (   T ?"6@ NNN?N`P  f=",v.0@j h   H/g ?#" ` p  t" = {Bank, accounts, Account} v = {(accounts ! col.elems)}p;&&&       @`   `A ?"``8    <|G^H    fAlphabet$   <DGdH P @ bView$H  0޽h ?/  ___f3̙;/f9___PPT10i.P]+D=' = @B +s  px(  x" x H?"0 NNN?N> N r x S Ԡ `}      x <GY)H   no (Account-ChAcc).chOwner$< "  x H?"0 NNN?N> `N (  x T ?"6@ NNN?N >  f=",v.0@j  x  `A ?"`I e  H x 0޽h ? x ___f3̙;/f9___PPT10i.g>+D=' = @B +    @(    s *S"  `}     B g ?" `p Lprovided (!) The formula f can be deduced from the formulas in ps and forms.N    S   ps fact F { forms } 0 1  C t 0 p  ps fact F { forms f }&^  6  B  (  T ?"6@ NNN?N4  f=",v.0@j H  0޽h ? ___f3̙;/f9___PPT10i.tr+D=' = @B +     3\n (  \r \ S (& `}    $\0 6A  ? `   `2 %\ s *3"`x p2  &\ <D("`8 P  bLaw 2 (!)  `2 '\ s *3"`x 2  (\ <,"`8  bLaw 4 (!)  `2 )\ s *3"`x @2  *\ <l1"`8 `  vLaw 3 (!)  ( +\ <43"` ` bLaw 4 (!)  `2 ,\ s *3"``   -\ <5"`  bLaw 4 (!)   .\ <@?"` P vLaw 2 (!)  (` /\ s *3"` @0 k ` 0\ s *3"` pk f 1\ 0Z3"` P f 2\ 03"` ?/ of 3\ 03"`  ooH \ 0޽h ? ___f3̙;/f9___PPT10i.r(+D=' = @B +  4,@4(  4r 4 S K `}   D 4 s *tP   public class DBHandler { private static OleDbConnection connection; public static OleDbConnection Connection { get { if (connection == null) { string dataSource = "BancoCS.mdb"; string strConexao = "Provider= Microsoft.Jet.OLEDB.4.0; " + "Data Source=" + dataSource; connection = new OleDbConnection(strConexao); } return connection; } } public static void StartTransaction() { Connection.Open(); transaction = Connection.BeginTransaction(); } }& *"a                      |  4 s *b   "public class DBHandler { private static OleDbConnection connection; public static void StartTransaction() { transaction = Connection.BeginTransaction(); } public static void main(String []args) { System.out.rintln(); connection = new OleDbConnection(strConexao); } public static OleDbConnection Connection { get { if (connection == null) { string dataSource = "BancoCS.mdb"; "Data Source=" + dataSource; } return connection; } } }"O    MB"*H                      B  4 6e0   0B  4 6T0Kk  0" 4 <Pv"``@p RM1( 4 T,z ?"6@ NNN?N0  f=",v.0@j ( 4 T~ ?"6@ NNN?N l  f=",v.0@j # 4 T  ?"6@ NNN?Nl p a....0@j " 4 <|"``` p TM2" 4 <X"``p TMn 4 <4GKHp @ 0  g Component$   4 <G|H   Syntactic conditions$0  H 4 0޽h ?/ 44 ___f3̙;/f9___PPT10i.k@T/+D=' = @B +  4, (  r  S  `}     0P  PAxiomatic semantics Optimize analysis Substitute Components Derive refactoringsFQ%$$)$$H  0޽h ? ___f3̙;/f9___PPT10i.rx@K+D=' = @B +  0(  r  S  `}      f$g ?s"* ` `   H  0޽h ? ___f3̙;/f9___PPT10i.|+D=' = @B +V me ((  (~ ( s *@  ^ ( 6PP+ ( B ?"   %Rohit Gheyi Tiago Massoni Paulo BorbaN   @@`` ( 0  ` `  FSoftware Productivity Group http://www.cin.ufpe.br/spg Informatics Center  UFPEQQ"U 06  @@``H ( 0޽h ? ̙33___PPT10i.oro+D=' = @B +    (  r  S 8 `}      6 g  S" ` 0    S ,@0  ps F0 #/  C @ p  ps sig S {} 0 cCggg G $^  6  B<    <GHTHr `p@ oSet of paragraphs" (  Tt ?"6@ NNN?NT  f=",v.0@j H  0޽h ?  ___f3̙;/f9___PPT10i.srppg+D=' = @B +   `|f(  |r | S , `}    | S |e  pps sig T { rs } sig S extends T { rs , r : set U } fact F { forms }<\  Z , | C ` 0 vps sig T { rs, r : set U } sig S extends T { rs } fact F { forms all t: T-S | no t.r }q Z 0( | T ; ?"6@ NNN?N@ 0 `  f=",v.0@j H | 0޽h ? ___f3̙;/f9___PPT10i.h+D=' = @B +    (  r  S C `}     S DP  `Tps fact F { forms f } fact G { forms }+ &  C SP0   rTps fact F { forms } fact G { forms f }+&%^  6  Bc  \  Te ?"6@ NNN?N4 0 ,$  0 f=",v.0@j H  0޽h ? ___f3̙;/f9___PPT10`.urб+D' = @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(D>' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-m6Bbox(in)*<3<* +8+0+  +     (  r  S > `}     S pP5 @  o7ps sig S { rs, r : set T } fact F { forms }8 6 ';  C ` @  eps sig S { rs, r : set T, u : set U } fact F { forms && r = u.t } sig U { t : set T }f Z ;  Bpg ?"p `` (!) if r belongs to " then v contains the r!u.t item; ... (!) ps does not declare any paragraph named U; the family of S does not declare any relation named u in ps; (!) U, t and u do not appear in ps, rs and forms. & %$       @`(  TԤ ?"6@ NNN?N0 0 P f=",v.0@j H  0޽h ? ___f3̙;/f9___PPT10i.i-t+D=' = @B +K  bZ(  x  c $ `}     S e   dps sig S { rs } sig T { rs } fact F { forms }3 ZV  C ` 0  ps sig U {} sig S extends U { rs } sig T extends U { rs } fact F { forms U=S+T }Z l#  B|8g ?"p ` (!) if U belongs to " then v contains the U!(S+T) item; (!) ps does not declare any paragraph named U and the family of S and T does not declare any relation with the same name in ps (!) U, S and T do not appear in ps, rs, rs and forms.J &%4     @`(  T ?"6@ NNN?N` 0  f=",v.0@j H  0޽h ? ___f3̙;/f9___PPT10i.kD+D=' = @B +y  @ (  r   S  `}   X  c $p Pe @ Bps sig S { rs, r : set T } fact F { forms all s: S | one s.r }hC65  S d\P` 0@ x.ps sig S { rs, r : one T } fact F { forms }/6!(  Tk ?"6@ NNN?N   f=",v.0@j H  0޽h ? ___f3̙;/f9___PPT10i.>ٰ+D=' = @B +   u(  "   H?"0 NNN?N "  H?"0 NNN?N0 0 r  S u `}      `A ?"`p     <hwGH*Hփ  p accounts = col.elementsJ(   T| ?"6@ NNN?N 0  f=",v.0@j n   H$g ?#" `P   z" = {Bank, accounts, Account} v = {(accounts ! col.elements)}p>&&&       @`H  0޽h ?  ___f3̙;/f9___PPT10i.iPm+D=' = @B +  (  x  c $ `}      `A ?"` p$m  $  Hxg ?#" ` p d" = {ChAcc, SavAcc} v = {(Account ! ChAcc+SavAcc)}p3&&&        @`H  0޽h ? ___f3̙;/f9___PPT10i.E}+D=' = @B +  ;(  r  S  `}      B,g ?#" ` ` gArchitects x Designers Most of the basic laws are very simple to apply since their pre-conditions are simple syntactic conditions>  Vh     @`  TA ?  H  0޽h