Files
boost_utility/iterator_adaptors.ppt
T

457 lines
102 KiB
Plaintext
Raw Normal View History

2001-11-01 17:22:39 +00:00
ÐÏࡱá>þÿ ÈþÿÿÿþÿÿÿÆÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnðÊO%hÔîÒg³ÄÄ©ÅF5hÿ‰PNG

IHDR<éÿ¿gAMAÙBÖO¡ cHRMz%€ƒô$„Ïm_èj<‹W©í�PLTE33333f33™33™f3™ff™™fÌffÌ™fÌ™3Ìf3Ìf™f™3f3f333ff3fff3f3ffff™f™ff™33ff3™3™Ì3Ì33Ì™ÿ™ÿ™3f™f™3fÌ3™3fÌ33™3f33f333™™3™™3f™f3™3ff33™ÿÌfÌÌfÿ™fÌ™™™Ì™Ìf™fff3fÿfÌÌ3™Ì3™3™™3ff™™f™f3†LSL8IDATxœ Ê¡À0 @Eõ•T v®<#˜uÿ©böà!iÕPñ¬ ƒŠÂ¡}³ÍNÿ4ÏtOßö†…=W1Å™@X¨H¨�‘Èbe’ã–ãe¶d´drD˜E¸Xd€¤e˜Áh3@1¥-�z5EE-™€@
È–be–ã’•cf’’d`•bsef‘ê•ájafbf"@ L¢ -–@K�mf’Òd””Òdæ–ãb–ãeê–tpÙÌ,ÍÏ,ÍÍÌÔÏÄ,#Ã,@ @=Œ � mL@R”� èf9nfYf�ÝL¬¢,Lr,r¼RÒ¼­@ÅÌÒRÄ
%QpP�­úYTS
è Ÿå€êDÄXE�!ÆÌÂÅ
ô*‹ H?Ð)&€bi9ìzQ ‘šLL’¢ŒL O5³Š‹³²²Š²Š:ðp�t3óȱ0³ð5IKIƒ(Ø>°µÌ`Çõ2�èh Õ¬ kQff.n. ÕÀ�Z
Ô*%@à:[^ 6(Ž5ED™¹ä˜yXÅYÅ�~u`â’gáfæaæâe†8/H3@1@< ÒËÄ †RšÀ8Ú
.ifv°Õ@½L,rr\ Ðº™™Id5@�ýÌ m&`˜²0;0jZ2:
r6ÐËâ@w�æfáæâåŸ4³” P3@C›¬�bÌÜ6rÜ\À`c&0 ³™X!á%
Š;9f�›ù˜ù€VKIKÐRfHp3ƒ—7P3³P¯,ÐÙ`«�º™˜yeA2¼,|ÀTÂËÔÍÇ@àÐ'°Å@i�~.Y.P4Ë‚“1«3«4³,‹,PH-çcfâZ@ Ì­Ì# ËÉrµ�-
N ´YŽGއ—WVŽ˜©�|f&€‚Ø q¶Ìn`Â!¶YŠW\² Hbá&�:P*  ÍÌ@;Áᤀv³$as$‚l–•å’å†6�ÐÇ@�m °ƒ™`1p�½Ì ‹A‘%
Šm0�ºh"Ð f�£�64Eƒ�ö½%0iqÔf°å2 ½Ü@¯ã(ÈËÄ JO¨[âppE0ªä@©[˜˜Àúee€|Y Y²²¼�xe PÚf†æ)H ƒJ `èõ±€ô‚5Jƒ²‰,ÐÃ`w€<
v&@1€•‹‚SµØñš@[ÁvÊ‚
34¶¥A™ ìy> ^)>PIÄ@ÀÜÖl?#30B¹À ›”@¥Aöò‚Ù2Ì2L 7U�\à@ Ðh†xªÌ\ k€~æ™M-ÌÀrq¼rÀ af &€b€†”(X'(am…8šl94ž€z@)
h8’ Ö(z˜Á¾eææåY�Å`GC²Ð"i GF\ð1C’Äf€b€f �ÍÀ$
Ì@r2¸Ç3,™É€ôò“§Ø f€béu€5(aÓ.Øfp8ƒý v½4H\MbarúÈ H€�ù@wƒm:bÀГ†fL “w\\\,¬ {�¥!@18@ã×TØB\
¬- 6CõAÂŒ—‹˜]�zAU È€b€Ù N_àªd!(¢A1$aÁÍË Lóœ\œœ\@� ’Ÿ… €@63C=
‰ip––›Ï‘`#99XX¹Ø¹8X¸X¹ÀáÅ@ ˆ2êIfPÅÀ"Ç /°Å ‡rp°r°²rpA\ Œ(f€¦mDާSM -°d
Ñ
ŽvV3VväääZÎL[ÄÀ Ö+Š(EY ÉZ– °rqpp˜™mçAv`L90RIÎ"`›™åd!–B‹ Tz-ibE Ï9AáÆ@àºÊâ`ht#Ðì uêæâä06351µZ ô:P7«@1@óØç�à†¤LXƒ<,æÀÊ´ÌÔhµ)0àØAFqr±´ž�ý ª’�ù , Hbå°07·`V~@û¹XˆV PƒX
ÕÉ Ó
J¢@›�vë3v v ˜V€î &XˆA2š¤�F2À�h3¸–g,Ä9ÌXÁaÎÎ
@ p�`š VÞÁ­…—¨«ƒ P³8«(ÄÍ!Æ
@ Ѐf†Ô7àD
&h€9€Ú3Ìb�Ê–ÕL¨›Ý èa.VV€b€%K˜ã!%°-ÒÊ.<@í Áêt8‡™10й@ ‹ € éL‰‚mje•‚‡4°Šu8¨�Â
J&ÆàâÚ €@Î…F“<ˆŠJ‰Â| lƒ‰mšÁ
v¹¹™1¤°f x@ÃR ¨%))²äePF5¥€ °^q Õ&Æ,R, •Ä .h†”‚ÿ’ð°ÕÀ@H7ÐÓ¦&¬¢L¬ÀV@1 ZÌ ÊULRàƒÙ *!A¡ÁÊ천=À‚ €‰ê])hj…¥0 *f`sÔðz›‰•^f¬ µ–Ä hQ¸íÀf.ÈjX,CN’ ؆µa-™$@ÛÄ”
”¨ˆ�Z 9€‚_@#¡ñ
Ôl) 2 h80¼%� »MMŒ9X˜Ä˜4Ú —‰BÍyZ�ú¢L ^ÈbQ  @Ýì •q6(LD@QN\–’�c¶Ô-EAÝfp¾ñEE¹88A6‹ˆJØFf&°£�öƒÛ@wƒ+M�ó�=IHžeq€¶‹�Y›ÜFf H®å:fh¥lŒS'4Ê5AÊEAÍmp»‚@" ]–-†€ÁÉêH=-j a°Ý`ï[‚šþ¢à¢›ITÄ� ¢ÕØ1e H€9ˆ�ÊpHûBÔ-Y
ô-ÈË W333Â;`
ØX XnÆ?´!Ô  2¨Ü58"DEE¡:A+ ³ˆ\`ŠA›�¬ Ðf…)0RD€ÎùW ìp ŠB " O0ÈfPD‚¼ 2_J¬œ/AùXLb7<°˜€‹°€</@ Ì0'‹Q1Pºö�½ P‚jdulÀ]`>�5ØwÀÞ“&@A2+0u2�Ë H˜H‚¢Ô7úhµ%´½nX
daggF€b`†VÊÀ>.$‚ºÃ–à¸êw™@!À/HŠv`d -ÆÌÊÊ;¬�¢¤PLìb`ªG,°³+ Ê…Àbz˜ÚÄ,ÓY�IÚ`û�A¶ÅALXL¢¬àL+À:K’‰A$@1°²°‹�/XÀ1ÍÖÒê²”lA1À²Ø7%t°—AfH+(–AvC H‰Ùb¢àrع”djeyœäfQ&€bÕaÀ(f& ��^[µX ’¬@1Ì]Àe‚5’�@1°€t;°€Â”%@âefˆ¢ÌŒà"äqP˜‰ƒ–YäjQ€bieÙ
B`¼‚l»ÙA¢Ýš=�¶2Â#JR³¸ „L¬@½À(uÕ™`.u"ÁE$¿@Š“$°-¤T;€*$`­Ê"¢�á°vQQ)xE"Ðx%d€bÕ÷À,!ò530u³B¢ ªä pÒbæ•ó, Ì
mˆSìl°ËÅ€ÁÊ#Ð’êbÐl| †)°%Çɱ©RÒÌñ53ÈÓàñ°‡!ÎzÛäU`K“¨Øòd†Ö«@i€;”Ä€e0²YAyI ”ËD!ÅÐbàúŠÔæµw¡- @ ¬ì»��ÅìcÓ6Ðv`i
r
8ÄÁÆ€rP+'ÐVH{h?@�ý ÒÊÒ̪Àb ¨�Tœ2CR74Ò¸Àº�îç(°õr6;ÈfPh±‚
_`ÚÙ æˆAc
Ôí:™äkNP'� Tˆ1¨1ÖÊš¬ Z ŠoPKF” j1°¬[ ²âk&K€bµÀ!€™œ>�=P>aåhlƒ�ÍÒËlkƒ£œ1èlv˜Ë™AùƒlýÌ Ó NN°Õ,ÌL°¸b �VˆÅ"À4þŠ Ö.Ê`6íY,)ƈAœ�ƒ�n700€Ê ZY@®# !¬ ›9¹˜…˜˜ù -D&f€b`ç€øš”Ä�¡ÆsãÄJª¢°4îñ38¤yY@c%¼Ä`Înò5Ôb&°Í ýï-A8ž�º
P�ÉÌ@ â �@Š+ (P7ÈÝ@Œt&HJw r03/¨ôãù €8À^ÛÍ
*¼�MÄ\,bàz<®ŠPõÆ' í¥50ÀØ€œ=€é‘``½,Ð�ÁÂÂÇ ë{�̬¯˜ÂÌ8€Q,½AýHfpЀ�&Spa$qEô ˜!å@1°[€h7 4S ˆ&Xhh�Ý
ò8#Š$)€%O3PJ¥HPc“l¯($šÀå(¸�°jc‚´u  €€É“Ù h73¸J·ÀxæY t*+¤8s€”£¬à›IS6,"
@Àr˜L ¶‚ì:Tf°€´�6³‚mVæšàÔéÄJYÌ̬�1$´Á6C’¥˜Äf°Û5Á>�û@@ ,,�î1¸Ót5¨9ô2(€AZ!6CC@qàÔ¶[ € :@]/P�
ê82ƒKQhÛ’8Á®g K�i\œKƒÂ^fµ§@YXúƒ†µ!¡%I¤b�… · ¢ŒŒÄÑ/ˆßÅÀ¹
äSHÁÍäs½8ÌÁ™�Ôĵ °ÍÀðå§GPvcæ‚äeVPòƒT<ý ?³°€“2(ʈ�: ‚`‡C¢
èh�iÉ]¬`oƒ’'@AlåY.nˆÍ DÔÊ
aHa
3PˆABT�
@ àÌÀÅÎ Ì ‡‹‚<l܈BâÖ ªäYf`2`Öx v/@m†Å1„ø,àŠT|@›6 ö3¸¼`—3ÀbÔ® ˜F° Là³YÁ©Ò f†Š\àv¨¹  @ L,H6ƒ"M4 ÁŠo&h³ä ‹Á•+hpÆ”8-%ÚË Fˆ²pɳ@lg&HYÂKˆÑ)€b[È"ÇbK:0ƒK!f1P³
ZU�¬Ú .°ù˜ ­#&M€ú44",0å¹a6³pCý N"àj^\Ì ’‹ù@= I€‚·<7·
77 Ø$  ÑVpÓÒË—ž\¼ ­�
^’L Š*fny  ±~`ê·?@QË�iPó4�®�ƒç[4’H¸ÁÛ€£
h7¸ºO›€Æ*˜À…hÞ…™XÇ0Ë@ ؊ p`} JÛ,à gg0P'ThBZ¾@›Y ãļ OCìf ˆŸy�aÍ`e†ŽбBVàÌÌ
tŽ /(Ș€ÚÁšÄ®+a‰2
ÔËÍ
®0`¶‚šCÀ̲™�——™ÚÙ p€AÆ`y! Àº
ö\², F 0z¡-oP¶eáå�¨Ë@'¨˜<ÁZE Õ5³3ÈÙÜ\ 9h–„Ô \.qåユ0&€'O&^p«Œ\ý“hÌ—ÔyuÇÅD!ٔ㹀qÍÇ ¯²äg>hÍÆ‰²È‚ú]àŒUâs`Úææ: 4gÄÇ$Å'JgÄ �‚&<P/‹4
̪<À‰”Üx§x`<›4™‚Òâc‚¦:HÕ V^ð` ¨`�4J€©DÔä⪖á“âc’æ fh óBƒ›</ÈîTƒ:û ÔÉ**.$9¹9!-1p2aâ pB†æg`Ñ,99åååx@Y”H�m Ј hÔ� Œxy…À®f `”eáe•€\à65+§"'(O‚LZ f°è⊃¨ðbfá H˜ìYÀÅ '+ '§./¨Š‡`P_HrrA´rÈ2ó0�g¼˜ˆ�‡ 4giñ�uƒf¹¡%±ƒ¨­Â'Âì#€ìåâàäæáá5愘xˆ�RdCO "<¨ ˆ½à† Ôb. Vp"a f°V`IÀÉ
q;0ĸX!ZXÄX€­TP;•—‡¤”;x€a,Ï„xˆ�‹”_äAb30\98Y€ínˆ¯!=#f>^^ && {™€Þ²ˆ\CÊÃ4+Ðsì\"`Oƒ»ò| F3/ �/¯8óðy<Ät3B3ØÏ
p?-�¶¼< ¸&Pt†/@1ð#‰EA^^ˆÁÍl`*Qää`¥` �¬>̼B¼,@dz�5s
 `hc›[¬쬜›Á „…Z?ðó±ˆð0ñ€›Ú¼Àã  f.N°ÍÜàÖ8ª€4Èj1V`<s;Ðj&`@‰Ó4ØvP'XˆY €@)ŒXdqË+p˃cœÂ8Á
VPû]¤4$Â+ h!`(ñCè€bàP�K.n.y`*1€Í*`¿”FÄ ÎËt2¤:™‡ èu€b�åk—çVf9y  ,Ü ¹KPÛT‰/‚| Ý"¼L „Ų�…äs&€bàájçb±[¬ À
J
 ÔÔ
ÎX (>0¥ V v`d‹ˆˆ01P5ÄËÜ`‹yÀS¦À¢ÔË…¶( ¯Øjh'œ˜¸øXøx�Ä ËÍÍË
¬¬@‰„›K”g€ <$[CŸ Xè‹Z>FP=Æ�F?@1€\)Ëö³<(ð‚læ•î XÇ´ ¨¨fj!F) fdUÑ 0^ˆÍÜ _+ð€l†è7$€!ô?ÐZ�n!2(@ àââyZd³ /8ÀxA%38[‰2ñó]Í´Nd1Ð
Œ‚àa€bàå•*' °áá…ÚÌËt+¨(Ò L|ü g‚t22 ‚lE@1ð‚m‚D6È˼2ÀD r5/?(„ùù€.iad¹L1€ƒM € Öcäwnp4ƒõÝÊÇL| |ŒRü‚ü M` ‚Œ"LÑÌÌ[ÀÄ-Ö Ä@t)?ŸÈ^ b¨N >Aps € öð�Z@›az™!V3‚¬`àg¦0°>F„õLÄñ30�qC
Dðóƒµ30
Sˆ0¨ù öB£(#@1Õ‚T­–R@õü"@yù�Îàdº¨›¤Ô@@w02h1ý m€b*äù5 [�šÆ'ê§3 0‚
à ‹ d`”�¬ƒH+$lÀN9Y†\Ó‹]~ ›€†0jA ñ40Þˆ¨E¢Dðƒ,ç�Ô,¬b"ÀRD€‘Ÿº@›µµµµ´µ€®gæI€b€D H£ 8�dX€e>x¨IXcƒ›O`@˵µ´µ´Aúµµ˜Däl°›�ðõò‚õr�3”˜0u22�ÜÔA@½ ÚŒLŒLÄ×Ê
[^NvpÑ ´[ 4JÖ‚@gi�lfÚ
s-�nQF€úYäd~ˆ·¹�õ ØÝ _‹�s3Ðׂ ›µÀaÆ ¨ oP¹À@ �ãƒxœÛ”“•Tnë‚l� & Õ|` AÑĉp`_ €ø�ÎGH¯/¨êÛ é¹‰€†¹D@>ºf P’"L¢²d9?ØrAPõ
ªÆÙXAù\är>>-P\iý¬
"�•#@mà€Å2? xΑTÑ
VÔ r˜½ š@�3³#@m†¥PÂæçaaZÌÎÉÊŽh1�!ÀÚX€� mP¸s³#@ã`Àd ‰.^.6VN]°^ÐØžÈíL¬À"ê^-�@5˜˜Ï|P?CÝÍŒ,v ^ˆÕ¬�±>pê`Ђè†“¨†$@1í§,pd0‘°[cPŒj`wòÀxÒ¥-°vm
QF€b„¤mHâRÌ ù]NvV6`ãDL l;ë,p¾€¤o`¸iˆ11Š8B-gmNPhs²Ámµ;�)�äf`²Ôå
IМ�ˆ$@1@ƒBC�¢4"5èpf ¢ TÔ'jº‹ˆˆ# € ÚdàFðp‚r«.D7$ÈÄ€�j1p-cec  fp¾Å3Ø < dš]†X M¥"� VC&C°Ý@›ˆáf�·�‰Œ.+ÜÓ«EÀ^i�Â1ÐÙŒÄNÐr d=�Ü
Ñ GhŒD ä_I «�
`§ € ö =>˜n^NH¶i‡&4Ї+H;x�h0¯‰jĹˆ ’Ü ’¦‘
\¤€B¤èZ ¯EEXyXE4DˆAj!D7¤~ㄎ<³@# œÅÀ¡†@ýb<,bLLŽgPˆƒ=
I2À6·.ÈÑì/CJbqˆ«!ù"’"v6ÈÃ�ä
ö¹  $cèÂ}
9°ÅpË�q/"
@ °ºÑ�Ü!ÀŠØX ãÈb¬`}`ÌéL¢"ÄÀ�Ñ t"2�l5P,¡°°J@tƒµ]-b(
@ ð€»\”¼ù@VC ”NÀ}51Vq11H¨ (®ìl~~Dþ&2`qh³8+«9$¾€qÅ
õ±˜¨` Pé)È�är ¶™ V³mc›#1x �ŠUQ€—$‚üàT’D…ù˜XÁ¹
âvqhT‹I@r˜æ*1€Vcà@ßàÒŸXHk°Àu‚# â} 1p2ƒFhˆ €ÀZù!ÕØv`k�
ª“� õJ@5ЉBŒ pã\ÍB-¹šŸ  B‚BîoV` P«QEƒB ¶lHQ%1 d­‚ƒ ”ËÅÄÒf%+h„�ò2ÂÏp &.&Ï�&-@AÓ€½apE)lAq± ‡ ,ÄÄA^–•;Òd hO™… ¤�ŸG‘Sšœáå>Ôf PNŸÀx ȘÛ~ %+ ÌNHJÛ
t3ÐrX"cs føpÐ%À67—Ü2ˆ§Å!l�Å@$ ¥8‡¨÷·œ““›“ÔBòµ8,®@¹
d(´�E � ¸VÐXÐjNÐ@=¸‡…7ÈqqPpƒÍ0Wüb¢õ3x„šK—›Ø-ã·ÙàVƒmgcuG•¸8ÂÁI_ €Àñ Ø'ãõ(ååYà) ¬\ñp±BlzYYX¹ØXDˆ2¶"¯À ´Ô}Z
*å�e-ÜfˆõâNââ`?‹‹Š‰AÊ%€�ÐÈCúí@} ®¿< ¸¤eAä ˆõâ «Y%@h58æˆ�›“ªèr Vyp³S[0«Í�®–»\ \¨ €b€Œ5pC00ª¸ty ÐV¤èfc•'°Õàü%@ {9åÁþåä§tLˆU ‘9Ø@‰h3ÈÐD+¨L N�“�=v.P'Dr‚
,ð0‡<7Câ l58ºÄ © €äAXX@f‘¹^� Ü`A)ø�zÍ%€aò4Øí ø“ n]`8qq�r'Èÿœº,ÐÇO¥Àj‹h­0Ô€&Š* n1€b€Ì_ò‚BÔ�q°>ØpD;ÐVq { ¥`ƒ�
@ \J›œ !npDËs±‚Ó»4Ð!aÍÖ#.nJŸ Tr=@AÆÃt�~†9dŒR£²²À �Õàx[²ÙLa á.`Ï’€°¡*"({–?%€úÌ% A&
€buºXÀ-Jlà2 bàX/ $…�¬ ”Š0€b�ë@”@��ê±B|,¼ÒŠgsHæ%41€bPeDÐ Ðõº\<œ Áp©$ n]ˆ·�aåÎ _ƒ©8@1ð‚æ€!ÎÍÅÃ4ƒ X@;’,ð cŸ88�õ;BtC €øy�aÅÃÌ=乨[„¡›’ÖÀ©âfHˆ‹‰Iаrç•çM„ƒ g-ÐÐ#+x´–E¦”K ÙÑ #€‚¸8@+w^ðè$kê�GfxÄX £€à¦'8¾Ø@!Iàbà¼
@@›AóLÌB,L, "Ð\tÀ´(U,à…©`Ì“bà  ~&Ð8hdžT ‚RȽ Á,0„9œƒªèp Kˆ/Ÿ/°¢abæ…<·Èb¨¯™Y¡ùƒ Ô×içbùvÄÀÏÌ+n-ÛŒqCF£@2�ë¡!æu¹Ä!@Ì’ €x�vò-ÚÌËåá9–‰´
ì|°Ç¡ãÄ@ËÍXÁi؉ >f Ã™ù€®fæ°4åö]@3&bL`ßB26;t�b@k%E€> `£€¬�—I4
ÔÎ (Ðü.(sˆ8ˆA+Ap§ ¨ècFpê Ph±€ü
´šfÜ Ñk¨Ì >,h>›•‹ 2¦Œ0qQIP:3 �� YР* Ðf]&Ш6“(¶ÄD sð°ù`ÿÁL ¤×UÄ Öt2 hš›X´0‰1�Æ—y QŽ1NPå
J(¬R¢Ð Ð ,È»àùЪ®x
ÄéÀ&ƒ8¶¸@µ Ðn.&QpY 4€bàã�ŽƒÀ�ñÌà TÎLî ½Là‰^`!ÉÉÉ™ˆ`2•'b¢RŒq6//T7/¨³ÌÂ'ÂÂÕ
šMºœ`os°03‡xù•(@�ænøø@cÏ Ä n`c€ÔÝM)3�Çv�m.p:á­š•vd™¤ˆ�Ø «™…€Š˜„@63Œ¬$Ä4�…G—W—äc 9’ ñO&IFF€b¥ð80h 4¼ÌËÌž ½ t ô
0¯Cò( hÐ\H„…QR¤•‘ €€ÞÆ
Ðj�!<à¤
ä²AÖÙµ£4[ÁÎc@D˜DAEEˆ4:ÏÍ,
oðا.Ð1 hgF<ÐdpŠåáf�,Ùa�ÎhÝÍÈ@  On!Ðà5/0CòS' h™ 0ÀyA™ 2–Ê­À™I"ðªQFÐ
€b๕œÊ@cÍ ;Àƒß@ï‚çMÀzAehT:-’ŒLŒÄÊ Ü"à¥1B²òà~> ãD€y…”NÀç CAƒA@Û4˜4Àù ð„€¬(Sò1ƒËpQ "ÂI¡ Ùeðx;7h‰4P‡ˆ0¤E™ÀãäÄÐ’7ÐŒ ¸$¯˜c0ÚEÀ>‰‚leûZ’¬— €@†²€‹?!°Íò ðêb&oÐ\D+7hÞ‚ìZØt(D‚W: Ý ” *ŠAÉèPps3ÈÇ`EÁîj °fМЛ�h30Å�´³4î�QÂR/
ú;rŒžŠàe
Ò2ABŒ4ñ ``ƒj°^�Õ¢Œ’"à‘?`4AŒ` `<sƒô2ƒ²&�
,†€ñ�ØdùXÀ“#¼@»E@–1iˆíÕ¢ÁÄ@ q�r`ȶ˜<õÖ…:Z–G„QƒQCDƒâ]°ÕŒ*Ð P)ÐB™ÀZEÀ“&`ódyÀÅ 2Š€´Ó@1€æÞXÀ.å¥rP§tÈ\ 0´!>ŠÓ0ùA’)#(¡(PÁk@aÆÂ*Ò@É
<Õ¬™ >æ¼Ø/" ›Áö3hÞ‹Rˆ‰€W«�3d3°Íæ€ ÈÙ"` ID” €ø aŇ T
v0p�®Í"�õ3 C|Ì ñ7(¢ˆ´Ö‚<KÄš,OH�¦¤ÀÑJt ¸†)3h Jˆ2S™$e °z�M|àI)�sù€QYõ&*‹�%*h~äKÐÌØïLÄŽb&Hñ1‚&jAN4h5ÈY@B”�µ¬½ÁÄ@àB_„b7ØfF>È ª ÐtÐÖJ>PÃè1�'Aš@e ý@ `ß‚íRàY>
°/˜!E$¥ñ�Ö�ô6HÈëIJ d1h:ŒO�‰4¡ÆÈ+(%joõ�¦AS$ G‹€š ƒ*&€û¤[
H�Gß™@æMH�K#fHXò€CXƒó€ê^°9"Ä´ ä`VÆ ÁñÈÁÀl*a@C U¿<ÀÚè``© ¶œ €@6Mä»›4³Œ+ ÅŒ@Å@e Öh’› Tá²€-æ{d?@1@',ù€Á Íe5ˆKEÀµx>4ï-ÖÈŠ)P% ² €øÁކŒcñ3òC¦ÁaÎ NJ v
¨âæcaÑÖ•<@T]ƒË€b„„#Ÿ € (¤ÀS�Œ YHq š¶¥O`âjäÑ55@¡LqÄ ÀILü@í|àÉ)Ðü”¿(ó8 (i³:ÐV=]�à�…=@�œ
Ò- šny™Õ@«!u;hâT€¦ëYäYxÀAY> "@  ñBA .P °³Aé4 Œ,pIÂ#Ë
²ˆt�þ7J�6P¿ h‚4Æ/ÈÀ™¯¡•Æ<à v= ƒ9AºA6 �šYbŒÄ ÀÏ$(šRšdî„ù€­?PÑ,^€eh]¨…øT#�@  0†8™d€#ƒ dî˜ÄD�„Rºñ‰-ÕeÑ…8¬Aþ ДhV<'t¿ £xލd8¨MÆ.åÀ–ê�<
ŠdpA@ |Œü @:Xh7h:å
,ä@�Âà Éê",z�T¢
r�£@1€ èhÐDÐ
À\%™¢få@P  AJ
ÐbphéAK @�&~@ùJdØvðä¡ÄÝàuñ b�Oš¾ÀiÔ¤ APã§Npö× Ê� ´˜ègdb†ä(!ÉMžÄÀ/ò2P8cñ�f} ºA…-x‰9¨`b�à’Zs02ÈŸ|à@PÊ$c�\Ï*
Ì ‚T6ð€‹=!ˆÅ`@ L‚ HF(ª€VƒgÆA(ÈÄDÀ­q&>! ^^ðŽp©²˜˜%Á “ èàIr�VpB鯏¶†<hQØP @ Àðb„¸@~f‚d+ vP\MƒT›þ|PÏ‚ì&o&&€bÅ/(Qƒ¼f3‚&—!ÎY
©ªAkID@þ3 e·@�¦ÅÀÉZ^| uXÞ"
I°ŸA…5¨Ja„Tsà¶@�‰ÈfÐ7Èp„j¥Fh‹‚Z3ÃÚ""ʺÀ¬Ä4šZf``@Ìí‹‚Â ìqHCÒp­ÄÀÏÎM ø•ü ‚ŒŒð™yF-FPÓ Øç€¸XÙ1AR È€§mPò€@›¥ž:¸¬ƒ4À–C”ֈA\~@­'OFXê9^È…°4¨Á
1PuË$@ R‚àä-I¥�õHÁ
š—ƒ‘¨(½›P"Là¶ #@12� 0…‚+°fðrA˜ §{⌰^†ˆ8}‰ˆ°ôÙ žHÿ�v!´,�ºh<¨Å$
)ŽÁ:A@�@Ê>>p¾ic„¬û€¡ i£L ê|1&&QPz ˆFp–M&2€Ê@x¨�z@Œà6Š(“‰AìÚ šã Pi+.¶ù@…
t L?dÅH7#$ˆÁótL Rˆ €@ñÌ*ù@™
äàu&‚Zà2rà>#$k0�¬7LÀF}@ Œ@}@+AÖƒ+pº-&wH@¾f‚ÔÿàP»èb"ÄÖÆ²h9Ðf���úÀŽgHÛ’@ó b 0F³@m†�V>-p®`„¤pHw²Ô‰ÇÐ g…@�íd€[ l-&XZ�nU­õÇÌÀJÐA € VCà ´ÐD›n-te¬,�…5Ð`æ °…ÀÆ„ ?Äנ̬Ã-B�!ê7‚ZÎ ›ÅÀ6ƒ�(°úc ¨½àò¤›‘QKP –#a­zp¥êkmê¥n  phó1€Ê"°Å gƒm€»öŒàMh�=dbвD‹°2�B €ÀÞ…a Ú Zà$Ž`ÐK`(ƒ<˜¡®yn¬"bÄ Jb T q>芰͢Œ éuPX�@ Ý@ß²Š@S9@1€µ‚\-¡´Á+È@½NQ&°ÍLà±hŠùh«ˆ@1@4¸øÁšÁÙÒáƒl• 0†<È^ht‰ÈZP\3BýͧÉ‘ !�Åà˜b‚Ú �gPÚ@10ÀS'(Èù 6ƒ—´�† ’ìyQVhB HÆ„¤3pñ M×à5Ö’"¢¢ÐýP -e1YA@‹Áå>¿ ¤–c‚d pø€wé@3!8’Ä@ƒ{bÀ´
@›ÁkaÀ¸P7tph/¤ç J%"�®�л̠ò7@1 ,æ·+ EdÑ0¨AKxÁ};&�F1fPŽF6¨�%@`Í â€TÇ‚J`+
<‚ÃZÉt¸hÉ$¤°•hDX€:m `a ÃŽ%ðê!Pi®) #" �  Á<ÐXž$Q³‚gqÁí0€bé/ÿ϶kA\, Ù,Òk¦‚ÌÔMnƒä€6+@–�œ ɰa &I
F°VÐŽi /™áU(¼�qt7@As?$¦À…ÈZÐ0 d«3hÙ x V®Aªp\,‘ÀBècIp—dÐjÐNdP…,%^
«ÿ˜@s3+=AËž Ά™@3D@žç >ˆÍ0¬šˆ D
Û ,¶Á{¬A§C1ŠŠŠI‚Ö«ƒFNù™Àë KòA6³²ÐFPל-AK$ÁÉ tDhü
´ ”'ù!q(È�ZÀšÎP €@:ÀVB‹^`†²ú™A’QJÒR’QèKQ>`¡
,Ðu´€e…�¡— È/hÉ ´˜-5Aeˆ$Ph»&h»7¨¸Ñ  
4´N ä<€b€Æ ðõ2‚÷ä3€l—é•ê"AF`nê9h8@1@ !ð" ªïAEh˲(è<FIhÐ�Ž£–Ž(U(…AZ¼�ªJh­£¨¦$8¼%Á>ÓÛ „Œ:: ÿ
€k`@\Ÿ¤Â
‚†5¥$A–Kô"¤ˆÕÖÂ/ • Ph ‚«wpÇHä )Q) IQ0Ũ¬tÁ¡
Œ* .`¤é€@1 Øf�Ð>;Ðf múZ@v3°îÕé†5(Ò€)
@ ðÁ6€âH؆/ëÒûèa�§�ÞÕZ ô@°ZRjЇ  Óá$�ú-�€qª%ö´P/Ð:@�hëè€ €@Î7†ø¡Á
 MZ £ÁŽ…6¨bpE#0¡“§hx €`%‰ ¼èêµK@…ÐЪ?¨»�`
{L ÈV)ÄÀiJÁ­{œ€´Á6Cô‚,…(¥€90•0ØfHµI,@��
´ªPý�àv…•H+Ð$PÍ@ Ð@†%A¨Õ#€ˆ@QL#Z <ÁNÜŒ  x–ä‡fJmðrAmP0i�RÜÝ@÷‚¼
Ò*q7@1ðCs˜–¡ e¤ «µ¡–‚
BtjƒâèpÈZSFQ€b€´¡-) (Pd�±¶(è@A
Ô¤€ ò0Ë#€b€!|àâ„è(°‡Á‹RAñ¤ �+péÊÐà|
r#@AÒ64Oƒ�[ÛZ à �Ù ²›AÇ>ÀL T ÊÖÀ6&@1€KˆÇùÀí0°ÃAÉB@Z V#8ì´@ËmZ’@#XÙ�¬Ö‚D3#ÄjˆÍàæƒ(©�R (–™`ÐÏ@kAýÐbeP¨�7sØ)@ï‚ËnÐÐ#@1@íG7h¥¸¡IÞP@œ
.¾ÀHÐf)F€/�„Y t�H!$Q:3 ¢èaF�Í@«A5’ ¸ XY‚ œT=(]‚ý
âC”²@qÄX H óCJP UÏ.^`zAºAájý0
‚F6�@1@Ò5$�‚Ô9Ñ‚ŒÐ
ä‚
�^>ðȰ÷Ë@ °¶´ªãÓ€$XC3$î�vƒ¶
€zèR@ € ®†Õíü ÕΠ`eeHi¢±ZÖ `m #ˆ’‰¡Ðf°ù`-àÔ±œ©AÅ'dGÈv`l¿ 4W€£KZB—iyšZÛAÑ J�àF(_0´‚F0´`ž†ºÞà¶xàÜ«f ÈÀ,¢@~†–ZwƒN¢_’ü c F5@�Ó6Äå�\¥né3@‚¤’%Á™¶µTó�(€B”ž�Pç‡$jD`iÁ70Õ“(0Ô@^'@ €ÀŽ…¸4ÔÎH0÷Âò”€ ¦—8ë
 PÂa€uA4T¤˜Õ†$0-HÔ183‚ò°ïs póZ„‚Û�‚Ð(fD8ž+Á…(°ôeÕ˜Àz € í(XÃ@j¯–š^Px�ë9`Ob1#@10ðC# gZ° v6,šÁšA¹[d7¤¼`b pf{�âLœ@t�ŠU`W�jwpãh3@ÁS˜ÔÛЬ I(HZ!áîC�ë€@1@«GH7–_ªS ’`å4OC¬5È@Æ0¸± ,^ 5
0°µÀm%-p
­
hP½)Í€žuÏÁÍn&€b% Apå �ÉZà À6"*ù¨WË �ca è8tÈÔH•ZP;á!Í@SAU$0S[bŒ- tÀ•� H¯¤$¸à5Oa^gh06 àŽ#@A2†3Ä ±Pkؽ€¦I-X9¤­©>�Žf„Œâ02¸ë ²¤”IEAGûH‚Š"„Åà¼!4Œ"îa‹08}‚+kð
�ÅÀV+D,±0B«P@j1j @:èÄhл<¯- ê²CmF3mPõlj B{)LLÄíŒé@ÆT@]IÐQ\P÷B"¼‰d%¨"Ó¥p`­¡Á@ �(Òa`„Ûœ púÐBJØÚÚàÚš¼Aû³™ˆZn‚Ç7ÁÛµ@�
&hTë@õkC3¹$¼Áó,LŒIÛà‘Bðš `ÛØ&…U˰tÞ4Éêà6(C j´‚8šêg`�›{::�x†–DÀÒ.É[ °f )�Õ ñ\I&1ˆ³A}¨WÁ
Xmp ãƒAËÚ¸·-Dˆ�OŠ ˜L˜ Ó𢠾�$(w€J)¤´
Úðv1£6d{P=@1ð�c„ÿô/¨»ΑZ 
l;¨o)rA]2Ap €À©L¢�AIТ IPïÒqÔ‚–aP—ƒf –Š3¨0a )FðèdÅ¸ï „à&¯’Íà\,À
K�¯Áƒ8ÄÚ!È (ùYÒ·Ð�E1ƒ4¹h3BÓ8«3
0‰0è<h&èÀ3øè0&P~†d^p…$0�Pà3‚³4¤ª PhCø8?`"&lP;äfHÞûÔÊ4¸šg €b€ §‚& xA+‚D@}Oh) ,¨ûÁútÀž;d7@1€Ï±mhfaG²(#Ø>h
-J@^ƒC ÔbCq6 x€0ÄÁ>†ÞHY ¤ÒP€Í40ÄÙ,|,Ì<Ì�ÐG¨ƒ�p9ˆ‚æ$@ù‚ÒÂb�§ƒdä<--*y�ž†k�F³¤¤�¾¸(¨f„èÓu΀é €™Àgà‚×R�Æu@##’Œ�:ر’’ú¢úbâL Ú�M‹: Úà&#@AŽôÏ ó€û€6KŠB#èOQ1q}CqV؆IPŒ�G¢|�5h¼ìFìjIQ IH(I‚טëùFâb¢‚àXÖçjP¨$´AëÉ@Kø˜DE€zÅ$EÅ$A•š¨�˜�¨¨˜�˜‘x_Ôµ V¨¢ H€ñ€²ˆm�­‰Jˆ!4²ÂPÂÈ@LT :íÇ*$@Å-@ANœäâ,
.C �'�Ü.! ÚÉ´ÓÀ@_d¨$m¶d É@ Ò‚2 •E< «Á)h/0ÀAþº¤SB È–ê
Ú¤ ÞH6 €x¥ùxe8å¹ASÛÀ&´×ÀÐäo Í�“` Ä$$
$õ�bb DÎÞò² €@›j¥AK{eyxyD5€Î5¹èiQI 1I F³!(ÄÀ�3Pç¼E• €øy¥xyå9åey�N—m’4¥`0�´�
ŠÀèU¦à€¦0PØP¯ 3h7�0OŠ‚| Úr . ^I��„¨¾$(ukAZ¦ Ð5ÄÞû«À©(Ï-ËÍ 9¼Å¹F@Š�0È$PØ‚r¸X·âÁE @1È0ñKóÊ+*p­-yYäRP½8Œ Í}`Q¨ÃnK21/hŸ¶‚<§¢hI3(…ƒÜ €Ź!(¹3‚,÷Nµ@]aPÕÈ@  ­�¦Ài
ÖÌN›bb�4
Þ¯§ÚE& jwèÀÇŸÀsRŒô³Œ ³¼¢"Ðnyða!à]_¢"¢°…I�I*è l–bL’Ä Zl©À ÔΩÀ Ql=ôFZ¬‚¶ˆ‚-Õ�X®X˜˜ˆ�™—Oš¨h±"èœÐ •¢†LàúC Z CÚ:�>¬¸Ñ ¬™˜ˆ�ŸY†Wäg Ý,�CºDÀ£ÓЩÐòÐ`8}èhAç㤀!@CènˆÍàã‹@ãº"’à #Iˆ«ÁÕö0gƒ'ùøˆ�t–9hÃP;ø´)°m¢à_˜^Ð Ôf-ˆn Í‚RÄÀË,ÃÌËZl¬(: T,‰H2Á×)‚š‡À&Èb°ÛÁZÁC¿Ä>D�…´·�“‹�¼Ü är)èZ>&Ap0ƒò¸[ô>Ÿd0R €@‹¿yåX Gî�΂NBtòñ1�[jZ:à=‚; Àðâ �Å ÃHØA§îqsrq�ÏÈ�Ô¼ÀÚ�‘Ob­ 4¾Àýh)A&€oϺµ›“|´xÍde8°!A‰/P¿
4Ÿ%
@  “ãy¹@kéA'�°€uóBÖ€–e3ƒö™ë€+k`ÿÔ7ÑÑ7\ù™Yl³dk 䤰[„˜ExÁÍ‹ƒíäƒz:üÀ)*@ pxy�.�PÄ:uˆt:h%�x
#,œµ Ñ­ª/@ó”LÛÀ�°´‹Et*èœ`cA† :: ñaðp¬$Ì@<" mi^ÐI²àý$àíF@«Aë>À Òø ç60@R…ÄpU+%Â
@ÀÒh3è�+.Щ�MG²à£'ø k"A3Љð`8Î�‘ÌÈä@ 2ࣸÀKY¸!ÛgÀ¾-÷á­×€Œ€´�úq ±PEÅ m€b�áç•åÝ! ,ð^'nyYði
àÍï *<yî‚�ÛÌ$ê@ ¼ü²@gòȲðË~°NÐÊe^èŠD^ØúðÄ
¨ØµÓAÅ/“+@�Ê0YY^YÐÕ`?sۀΘb懬YàÍ5jƒÇ-À‹ÎÀ&é0ðã™ €dùxA6ƒ–®ñÚpCN§bІb&Ðé
àÎd*:÷Âé ±2ƒ,ÄfnÐA1Ü
`[Áf0�V,0Êð�§²AûñÁ³�ÐS t¤€­€b†
(j¸e!‡^€µÊ‚¬æ[ &p2Ï*LëÀö£&£ˆ@�Ò6Ðfn� @M²0íÜ åO| S+u¡-]ðŒÈf`R• жmÐm
²< ·ËrChM-/h�¤É lðøè Fð0$“@1ðƒâìlÐeÜ d�,Y.^`Gl1Ðmð‚ðÈ#$¸D™ˆtØ/X77Øj˜å¼ÜLLüà'x ’ÆÀK>˜¡63h#1D7T/Ð`+�—‡‡™O20­-#…8Ôb`D(yòË@Ï3¥5nˆ»Agü°0�¦\
spXà>°Í¢¢Ä9ƪäYˆí ¹ÌÌ 1JÈÚAXe„T IQ€íB–�¹´häupäñ€¶,€’²Ò:"H‡ÏÀ.@�·çóòC‚Md5/Èn !ÀœlDƒc4ÊL-�¡ `Y n Yh¿4D7ÈÏ<àPã‡h /#hÌ\Ñ�&«`sÝRŒRÀ¨ ð™2à|Ï × ¥–ܼz<"@ŸËFhí*È+uÕEUüÀ’âr¸£!«ó�…„#¸~#pÒ—&R »ˆDäl~°Ëe`©¤Ÿ²l¼�””Aá
ìÈBÆÁøAÄ5x—;H78È qÆÃË
Y_Ê îYëꀆ,Á‡œ)ðº&Q&€¥m>ˆ“ùÁz!¹r²
‚ûå ¶¦ x¹ˆxœ4“ldƒ=/Äϲà3€�ͼx¼ <£ ^û<¦"*
@�cd æ@sxi=hI./tí=(�óiAÓ¨ªMº�
@Ð xÁaq68¥€!hÁ97 hý=7h1xŒ²~|1@�ÖõBlF„5ØRxxC,çf&OmH“<ÐÔ @ ÐC`ÀGèÈBBêcpþBn]�qLŒ�¥#�ò´¸F €À'£@NÌ�ÆP�,h‰<ØvpBƒ8Ô2‚äiÈiK¢¢Ä>†€—ž¥y!ú¡ëˆ¹¡ð‚·‚€úž ‘apâú €À‡tmåú›¢¼¤—ìn^ÈÎH³ ²°€Ü8 ~Aè1A�DÁ ÕÖŠ6ð&3�|ÐÓøøÀõ¨³,
@ �Ì‹ghq5¤
z^xפ•´Ü4@ à“*xae d§xÍ58à!ç]�# ²Û� ²Š²Ô €@¹
˰Pƒòx %/Ø×|à%ºÌ��L �(@[ú2àÜ,v<P;"ÁÀ“+x3(`ÀÍ�
Q
`³ €À¹
œ©@fðò�-ç“�˜ B* É¿ Kb,v6H˜"Áˇ0DÉ#�Œ6¤C
|E @�Ö>‚4òCm3A¥
¤hB ˆvð ÒÌÒLÌÚ�‚JÊðÁ,ƒxGn9XÈ] gJK�îF >P%ΠΓà@ƒú⨨ Üb>>°¯¥¤AwOƒ0Ÿ8ùyy¡!Q/õ<ð@¶‚�ã“–ŸT @ BBB|B`¯@l„?4àd �,�(¨Ø’]Ià@ Bà­ ò¤P|`­Pw@q Ôu|¼Rà ?ˆ�O˜Ob3Ä�|ðÈâƒûì^>˜;@ФÁ—uƒŸ� ÐRЩ&2�$ I#gòòÁ`g@R(žA;ƒ�0(ÀÀ§‹@+<°1 [ùd ±Ï�H;]h1³@�–` CŽ7‡.Hƒ 4’Áõ´6Wâ`Ÿ€�.:ƒ“ €À6 B�Ð�&°1à“VÀžæƒ�Ðpàƒ¦0`ú A!б �ãw@ZÀ6C‚�æXˆ¹`wAÃC|c@1]-$9R.ð�S?Ô¥Ð$Ɉ2°8:[ èg€Ƴ� �ä8h4Ë@ªLH*·ÀŽ•”`'��Í 1€b¹vÜ8�xÁA>Ð’dø )ƒ—* L$ cí`‚@wƒ�É�ð?Ôµ2Qp�ñC‚d�8‘Ÿ�°� ì4ˆjH}
Ž6h†ƒ$Zˆ± ó¥AÇ¢3(W ñC<
ñ1¤²æ+åƒ;àœÂÏ ­Ç�6ƒ.„q `Tm⟰ )~>xüBò  ,�C´|© @1�#”¥¡¥¤mÃuÔ$hÆæ…wRà›<˜Ÿaº!ç(p”C£â^^^>Xâù|í@�
Ò
îBAìæƒ.8™C«>hN…•ž¼ g‹28¦@vCÏñã…¶Œ 1 Ñ+D )[l33‹@ `A^ù
·Z”@ZÃಃšXøá™tÜ=3@1€3•‚u@ŠoXqÌ�p‚ rL‚ïî P
¥ à2–=øÁéšG!$Äç¼àè‚\q@ à •‚BP—Ã*X9+ËQüP‹AQ.ÎÏÄ Ò
r;8Ð!ðÁÊ9pàC+~DeÃÒ Œ+€¸Ü‡zh/¬¸åƒT°º
’#!fñmÉ @ Ð7u;äpCHF„T‘Pˆ§!6ÔÙBÀ؆zn2ˆ©Š…- øcfbqe  ³Á6ƒ-Êž@góñÈÀ-…VÌÀºZkC
npuà @ X šœX@c¼H~µFe¹!Ñ-—ÀÕ
“@�r•08¬ Q&÷5´EmS$ÙB’Š4øPa€‚ä*Hâº[Tc"7�ya=-Hq­0@Õ
ÐÝËU`»Á.âñ,Ƚ< Ž%¨·µ×`g3Ø» ‹A·Æ8¨ê#uñdaYÒ´àŸ© @ |PgC­ jþAü²�ŽX;4qBÂ� h?3@ãâl„ ìé'€ÝË
±�šjø¡� €À�NYÂǃŽeà[,Ë+‹Ð.Ë+ÑÁ¸R !hƆ…0mƒ;àÀâ�{Z¸ÁÊap; €àÑ,ÄM)¼LÀ·,¯,Ä߰ІV&Ë!õ8@A‰ 4‰Ó˜� (¬yÀÝa�!€Xi+�@1Àt‚sÈPhóòÀm…„H/¸0…Vô�â €@)Lš-À˜ÄDxyÀ±µ„A’¸ X;@1[$  ‚�TÊN˜P­à$Ê
écòÁ›F�ö/@  Í‚›…Ág1€;£àX$ƒJ¸FHÍ"@ÀÐë…”"ÂBàÂ4>% ³Ù
kC#ZšÝ@ ½P›ÁF
�’'$eƒG]àžH E(�@p›AΆ´€Ágƒ
×)oÇòÂë.PÈÄfXv'T^!f°6n$K!Άv„`ÁÍ@ ›¡Q t^!pvFu.¼<䇜ð
­b³Ä¿|à„Î î‰"ì„–22°^´})@?C‚K˜Re0Ã5òAjiX[’O:HIÜ|Þ˜u
ä�IEND®B`‚è&Cé(€àà€
ò*/È 0ÒÕ`·DTimesNewÔ¨ àÛ¦ 0ØØvÇ 00Ø(Ý
0·DArialNewÔ¨ àÛ¦ 0ØØvÇ 00Ø(Ý
0" ·DHelveticawÔ¨ àÛ¦ 0ØØvÇ 00Ø(Ý
00·DWingdingswÔ¨ àÛ¦ 0ØØvÇ 00Ø(Ý
0@·DCourier NewÔ¨ àÛ¦ 0ØØvÇ 00Ø(Ý
0P·DMonaco NewÔ¨ àÛ¦ 0ØØvÇ 00Ø(Ý
0`·DCourierNewÔ¨ àÛ¦ 0ØØvÇ 00Ø(Ý
0p·DSymbolNewÔ¨ àÛ¦ 0ØØvÇ 00Ø(Ý
0¤
€`ÿÿÿÿ¥ .©
 @£nÿý?" dd@ÿÿïÿÿÿÿÿÿ  @@``€€_ä6åæ"º Whooshºsfil º10º103çÞRIFFÖWAVEfmt ++data²€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€~~€~€€€€~€~€€€€€~~~~~~~~€~€€€€€~~€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€~~€€~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~€€€€€€€‚‚€~|||~~~~€‚†ˆ†‚~zvtvxz|~‚ˆŒŽ�Œ‚zvrnlrv|„ˆ�””Žˆ€|vtrpptz~€ˆ��Š„€|xvtv|~~‚††„‚‚†ˆ†€zxvvvz|~‚„†Œ’ŽŠ‚xrlhntz‚Š’’�ˆ€zvrrpprrx~ˆ�’˜œ�Ž|j[QU_|œµ»«¥ŽbICCY„£±·«ˆn[ICY~–«»±’zlnh]_r€’ž§£˜˜”|]SUSSjˆ†–”z|�šˆ†„‚„x__l~˜©¯˜v_]drŠ’†ŒŠnUb|‚–«±Žnfd_]„«³¡¥‚d]5=rr˜»«Œnj]jzŒœ¡ˆ~”lMlŒšœ�‚dr”ž˜Šx[[_f|¥¥œ‚YQfWK_’»§š¡ˆxh[z¡½žŽ–x[CIjˆ””¥§˜zxx„dSQz±Å|_fI9W¯Ó¹ˆM;QnšÁÕæ¿vK;OUx†~”½§xj]]YS~­Éµ§”lM?p¯µ¥lM;CGpµæÙµŒ[)Kh¥¹Õß|% %;x»Ùä½tKQS]žßæÉ–bGr|ŠlSnvzޝ¡~nfS[nˆžÃ«x;Az¡¯¿Ž=+AY’ÉÝ»|=/1rÇüò¹_
?|¥Õ潄W5/Cz­ÓÕãf)/pŽ¡¿µžvbMQrˆž©¡˜˜ŽŠ|O=O–³–tjdhjœ¯«·µ–lG?G_Œ¹ÃÑÉŠK3„ÓòלdQCMpŒ§³··«†pW;1SšÑÙÅ·�AMš·ÕêÑz/#?bx¥ÇÍ–SAM[hv’¥³«¡œˆhYp~~zˆžŠrv€€t[]pŒ˜«·žtWOUtŒš˜”‚xxd]vˆ~vvxž§Š€zd_xŽŒzh_n†–ž˜ˆ‚rSQl�š¡œŽtbdp†~_l„ˆˆœšrQ_l][е³Žtf]W]~«·§‚hWfp|¡š�„fWhnh€Šˆˆ¡£˜€bU[hzŒ£¡–ˆlSCWޝ«£ž€bYbnx”¥”pdhjvŒ©­ž†jM9Ot„”«»µš€]GQ[dpp~œ­¯©š‚hhhdpx~†–œš”Œxh]Yn‚�˜œŽŒ†€tnrŠšŽp]dlv–¯«§†jQMb|Œ�š˜–’Švdjp€ŠˆŠ„zxzz‚Šˆ’–Štljr|ˆšž˜|_[r~‚�œ˜˜’~jb_j|Œ˜£”z|xpp~~€’ž””Œv]Wh|ŠŽ’Ž|zx‚‚„ކ|x|€„z€ˆ„zndhpxˆŒš­§Žr]YfntŠ˜–„€zjl|€z‚ŒŠ„||~„ˆ†‚vppnrz†ŒŽ”’„phrxz|„†€€€~‚†††„|xtrjjtv~ŠŽŽ”Ž~vz|z|€€|xrrv~ˆ„†ŒŠ€xrprtz„ŒŒ†‚€€|||vz‚€xvx|€†ˆˆ†ˆ„xtx~~~~~~~€„„‚€€zxxxx€†ŠŠ„€|zxz~~‚ŠŠ~rrz€~€„‚|xz~~€††„€|vtx|€„„‚‚€zxz|~~~€„†„€|€€|zx|||~€€€€‚€€‚€€~zz|zz~‚††„€~~~|~€€~||~€€‚ˆ†~||zz|€‚‚€~||z~~~„ˆŠŠ„~zxzz|~€€‚‚‚‚‚‚‚‚€~~~|~~€„„‚€~|~€‚‚€‚„‚€||~~€‚‚‚‚€~€‚„‚~~~€€€€€€€‚‚‚‚€€~~~~€€„‚‚‚‚‚~~€‚~€€|||€‚‚‚€€€~€€€~€€€€€€~~€~~~~€€~€€€€€€€€€~~~~||~€‚‚‚€~||~||~€‚‚‚€~~~|||~~~€€€€€€€~||||~€€€~€€€~~€€~~||||~~~~~€€~~~~~~|~~~€€€‚‚€~|zz~€€€‚€~~~~~€~||||~€‚€€~||~~€€‚€€~~~|||~~~~€€‚‚€~|||~|~€‚‚€|~~~€~|z|~~~~€€€€€~~~|||~~€€€€€~~~~~~€‚„€||~~~~~€~€€€~~€ 8ð0ð¸Ü6˜!
 ""6.
   
! Ïðð$ÿ
ð$ÿ
ð$ÿ
ð$ÿ
ð$ÿ
ð$ÿ
ð$ÿ
ð$ÿ
ð$ÿ
ð$ÿ
ð$ÿ
bð$%hÔîÒg³ÄÄ©ÅF5hÿÒO
c ð$�ƒ¿Àÿ0ñ øìúúÌÌÌ@ñúú÷ð8ó€ó€Ð•rŸÊš;$¸5Êš;úgþý4hdhdvÇ 0$ئÿÿÿþþÿÿpûppû@ <ý4!d!d`ó
0àÛ§ <ý4dddd`ó
0àÛ§ ÿ <ý4BdBdPØÙô
0àÛ�ˆŠhº___PPT2001‹Dˆ<‰4X0€àŠšº___PPT9‹|/È 0Ò®`¯
¬€ÿÿ¯¬ €ÿÿ€ÿÿ?Ù Ú%ðE1óŸ¨6Policy Adaptors and the Boost Iterator Adaptor LibraryŸ¨=David Abrahams, www.boost.org
Jeremy Siek, Indiana Universityª0óŸ¨OverviewŸ¨qMotivation
Design of the Library
Implementation of the Library
Metaprogramming Details
Policy Adaptors
Conclusion¡2r?ÌÌÌþª?$óŸ¨
MotivationŸ¨å Container of polymorphic objects
Use a container of pointers?
vector<Base*>
Better: create a wrapper to make it look like a container of objects (not pointers)
To implement, need an iterator adaptor to dereference the pointer¡p"“ ®—"
—ª ÌóŸ¨
MotivationŸ ÊIterator adaptors are everywhere
VTL  M. Weiser & G. Powell
Date Iterator  Jeff Garland
std::reverse_iterator
Checked_iter  Bjarne Stroustrup
Smart Iterators  T. Becker
Compound Iterators  A. Alexandrescu
MTL & BGL iterators¡Ž!Å!9 @ó
 ٬
MotivationŸ¨£Nonetheless, programmers often give up on the idea of creating a new iterator, instead resorting to rewriting algorithms. Why?
Building iterators is
Tedious
Subtle¡6•” þóŸ¨
MotivationŸ¨ûBuilding iterators is tedious
Redundant operators
Prefix and Postfix: ++ --
Dereferencing: * -> []
Comparison: == != < <= > >=
Redundant type information
reference == value_type&
pointer == value_type*
Constant/mutable iterator interactions¡ÈX0'

/'ó Ÿ¨
MotivationŸ¨ËBuilding iterator adaptors is tedious
Change one aspect of behavior
Leave other aspects the same
Aspects:
Movement
Dereference
Equality Comparison
Dist Measurement
Writing dispatching functions is boring¡r&; :( ; :(ó
٬
Motivation٬uBuilding iterators is hard to get right
operator-> for input iterators
operator[] for adapted random access iterators¡L(N(

%ó Ÿ¨OverviewŸ¨YMotivation
Design of the Library
Implementation of the Library
Policy Adaptors
Conclusion¡&Z úúþ:ó Ÿ¨DesignŸ¨‡iterator_adaptor class template
User supplies a policy class and Base type
iterator_adaptor generates a model of Random Access Iterator¡H h+-ó
Ÿ¨DesignŸ 
Template parameters:
Base   the underlying adapted type
Policies  defines implementation of core behaviors
Associated Types: Value, Reference, Pointer, and Category
Sometimes deducible from Base (e.g. reverse_iterator)
But not always (e.g., indirect_iterator)
¡z‘_‘$ª�aóŸ¨DesignŸ¨ýDefault policies class forwards all operations to the Base type
struct default_iterator_policies {
template <class IterAdaptor>
typename IterAdaptor::reference
dereference(const IterAdaptor& x) const
{ return *x.base(); }
// ...
};¡f@%•“ ®?(¼ª@½óŸ¨ Example UseŸ¨indirect_iterator solves container of pointers problem
struct indirect_iterator_policies
: public default_iterator_policies
{
template <class IterAdaptor>
typename IterAdaptor::reference
dereference(const IterAdaptor& x) const
{ return **x.base(); }
};¡N7ZãZ%$àª,^Koó#Ÿ¨Behavior DelegationŸª
óŸ¨OverviewŸ¨YMotivation
Design of the Library
Implementation of the Library
Policy Adaptors
Conclusion¡&Z!úúþóŸ¨ImplementationŸ¨ÌRedundant public interface reduced to core policies
reference operator*() const {
return policies().dereference(*this);
}
pointer operator->() const {
return &policies().dereference(*this);
}¡\4™4$I IóŸ¨ImplementationŸ¨Üdefault_iterator_policies forwards behavior to the underlying iterator
template <class IterAdaptor>
typename IterAdaptor::reference
dereference(IterAdaptor& x) {
return *x.base();
}
// more of the same ...¡bG–,’óŸ¨ImplementationŸ¨§Constant/mutable iterator interactions should work:
iterator a, b;
const_iterator ca, cb
a == b; a - b
ca == b; ca - cb
a == cb; a - cb;
ca == cb; ca - cb;¡f4t4$& JªtY  ó"Ÿ¨ImplementationŸ¨oAll four combinations implemented with one function template
template <class B1, class B2, class P, class V1,
class V2, class R1, class R2, class P1,
class P2, class Cat, class Dist>
bool operator==(
iterator_adaptor<B1,Policies,V1,R1,P1,Cat,Dist> x,
iterator_adaptor<B2,Policies,V2,R2,P2,Cat,Dist> y)
{
return x.policies().equal(x.iter(), y.iter());
}
¡T=Z2“ ®ZZ< 2ª½¯óŸ¨ImplementationŸ TRedundant associated types handled via smart defaults
Value type, iterator category, and difference type obtained from std::iterator_traits<Base>
Reference and pointer type: if Value explicitly specified then Value&, Value*, otherwise use std::iterator_traits<Base>
remove_const<Value> ®ð value_type¡œ6õ6A].
óŸ¨ImplementationŸ¨,Input iterator dereference may return by-value
operator-> would return a pointer to a temporary!
pointer operator->() const {
return &policies().dereference(*this);
}
Instead return a proxy object that contains the value and has an operator->.
Proxy has lifetime of the full expression¡®aZUZwZ.
'SB
)óŸ¨ImplementationŸ¨ôNaïve implementation of operator[]
reference operator[](difference_type n)
{ return *(*this+n); }
Consider a disk-based iterator that reads in and caches the object.
(*this + n) creates a temporary iterator
Safe solution: return by value¡p#E�
BF =óŸ¨Implementation Ÿ¨§May need additional state
Example: strided_iterator needs to store stride
Solution: store state in policies class; store instance of policies class in iterator_adaptor¡:¨#dª,#X$óŸ¨OverviewŸ¨YMotivation
Design of the Library
Implementation of the Library
Policy Adaptors
Conclusion¡&Z?úúþ ó Ÿ¨Policy AdaptorsŸ¨¦A Design Pattern
Generates new models of a concept (or a family of concepts)
Generates adaptors to selectively modify a behavioral aspect of any model of the concept.ó
Ÿ¨Policy AdaptorsŸ¨Ñ1. Identify core aspects of behavior.
For iterators:
Traversal
Dereferencing
Equality comparison
Distance measurement
Associated type exposure
2. Define policy interface that encapsulates the core aspects¡R:“ ®Z>“ ®:Z=þóŸ¨Policy AdaptorsŸ  3. Write default policies class that dispatches to concept s public interface
4. Build the adaptor class
Generalized model of concept
Parameterized on Policies class and Base type
Public interface delegates work to Policies class
Stores Policies instance as a data member¡6j“ ®§’" j§ó$Ÿ¨Behavior DelegationŸª
ó Ÿ¨Policy AdaptorsŸ ÚPolicy adaptor design pattern applicable when:
Concept has multiple orthogonal aspects
Concepts with  rich interface (redundant functions for ease of use)
Concept is popular, i.e., it is a common task to create new models of the concept¡&/¿/¿óŸ¨OverviewŸ¨YMotivation
Design of the Library
Implementation of the Library
Policy Adaptors
Conclusion¡&ZO
úúþóŸ¨
ConclusionŸ¨ÿBoost Iterator Adaptor Library automates creation of iterators
Factors out functional redundancy
Change one aspect while reusing others
Makes simple ideas easy to implement
Policy adaptors are a powerful design pattern for creating models of rich concepts¡6?Ix?IxêøÈï `ð zêêêTëщü«@U[­¹|Ìÿ3`ð ÿÿÌíᯙ3ÊÀâßÉwf3™3f`ð ÿÿÿêêêÝÝݲ²²MMM–––`ð v'êêêHëщü«@­qÿÿ™Ì™`ð Nœêêê3fëщü«@ˆq»™Ì€€`ð Mj*êêêED%ëщü«@¥žyÿÌÌÌ`ð
Fêêê<)$ëщü«@c=NÿÌf™Ì£>ÿý?" dd@ÿÿïÿÿÿÿÿÿ,£Œÿý?®PÿÿþdØ@ÿÿïÿÿÿÿÿÿ `FÌþÔ `<™þÐ@ lð``7€ £nÿý?" dd@ÿÿïÿÿÿÿÿÿ   @@``€€P£P   @ ` €`£ p£>€£> ðúðDð†ð( ðÜ-+ 
ðDð
ðD
s ðâ…‡B•C«DEÁ¤FÁ®€�‚ƒ‹¦ÿŒ—Áœ@¿Àÿ
ˆ))ðÿ(¡üŽè
Üüm"ÎV_”Èx~§ùeʵFå¯<mƒÜ¨õ¤›«­¢:}á6Oòá+· K¬�™–•~�ü“×zuEçrÎÔ„I­Úi(TX@¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬`€"ñ¿ð…ùÿŽ0 ðj
ðD
£ ð4…‡BCðDEÁÄFÁ΀�ƒ‹yÿŒ�Ž��—Áœ@¿Àÿ
ˆ11ðÿO8%. îè.Æ:’r“T|k2Q mZŸPÅÊôPX$Y2zt[�tk³‹ÎÆ”è ðî$ð)žU“‰Ì«·‰r UävùRº$ÂüôÌÀÁ¸¢÷wâRœo…X©‡O8dh@¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬`€"ñ¿ð
DTúðj
ðD
£ ð4…‡B C DEÁÄFÁ΀�ƒ‹ÓÿŒ�Ž��—Áœ@¿Àÿ
ˆ11ðÿ½€Vì úVd‰‹uõɃýbÙíŽjˆC_ê»_퀋}uÙý}jêÓýardxúª ý ¢Öp¸jN¸âdHò¤T‘‹²Ü » ªÙˆTœ”@õ r§Eê¯޽€dh@¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬`€"ñ¿ðßïƒuðj
ðD
£ ð4…‡B C DEÁÄFÁ΀�ƒ‹yÿŒd�Ž��—Áœ@¿Àÿ
ˆ11ðÿ½€Vì úVd‰‹uõɃýbÙíŽjˆC_ê»_퀋}uÙý}jêÓýardxúª ý ¢Öp¸jN¸âdHò¤T‘‹²Ü » ªÙˆTœ”@õ r§Eê¯޽€dh@¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬`€"ñ¿ð ;C) ðª
ðD
# ðt…‡BiC)DEÁ|FÁ†€�‚€¿Àÿ
ˆðÿXf­>•Ä´>(n^mÓ»WÚú8ÊË„@m
G¥¼hG–f) )+†ihbÄ#•g¯Ó�G2êÅÚ9„Xf@D@¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬`€"ñ¿ðÎ k÷ðj
ðD
£ ð4…‡B C DEÁÄFÁ΀�ƒ‹yÿŒ�Ž��—Áœ@¿Àÿ
ˆ11ðÿ½€Vì úVd‰‹uõɃýbÙíŽjˆC_ê»_퀋}uÙý}jêÓýardxúª ý ¢Öp¸jN¸âdHò¤T‘‹²Ü » ªÙˆTœ”@õ r§Eê¯޽€dh@¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬`€"ñ¿ðä
 ¡vðj
ðD
£ ð4…‡B C DEÁÄFÁ΀�ƒ‹yÿŒd�Ž��—Áœ@¿Àÿ
ˆ11ðÿ½€Vì úVd‰‹uõɃýbÙíŽjˆC_ê»_퀋}uÙý}jêÓýardxúª ý ¢Öp¸jN¸âdHò¤T‘‹²Ü » ªÙˆTœ”@õ r§Eê¯޽€dh@¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬`€"ñ¿ð3å
ið¨
ð D
s ðr…‡BñCÖ DEÁlFÁv€�‚ƒ‹¦ÿŒd—Áœ@¿Àÿ
ˆðÿñhVt²¬Æ"Û½+P™í›¢«�E a*`£
ˆ í§+¢Œý¸˜8 ²'V^{Ó ñÖ ñ8<@¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬`€"ñ¿ðJ–‡ ð˜²