diff options
-rw-r--r-- | chrome/app/theme/popup_window_animation.pdf | 1395 | ||||
-rw-r--r-- | chrome/browser/cocoa/animatable_image.h | 56 | ||||
-rw-r--r-- | chrome/browser/cocoa/animatable_image.mm | 167 | ||||
-rw-r--r-- | chrome/browser/cocoa/animatable_image_unittest.mm | 36 | ||||
-rw-r--r-- | chrome/browser/cocoa/download_started_animation_mac.mm | 188 | ||||
-rw-r--r-- | chrome/browser/cocoa/popup_blocked_animation_mac.mm | 160 | ||||
-rw-r--r-- | chrome/browser/gtk/popup_blocked_animation_gtk.cc | 10 | ||||
-rw-r--r-- | chrome/browser/popup_blocked_animation.h | 25 | ||||
-rw-r--r-- | chrome/browser/tab_contents/tab_contents.cc | 3 | ||||
-rw-r--r-- | chrome/browser/views/popup_blocked_animation_win.cc | 10 | ||||
-rw-r--r-- | chrome/chrome_browser.gypi | 7 | ||||
-rw-r--r-- | chrome/chrome_dll.gypi | 1 | ||||
-rw-r--r-- | chrome/chrome_tests.gypi | 1 |
13 files changed, 1942 insertions, 117 deletions
diff --git a/chrome/app/theme/popup_window_animation.pdf b/chrome/app/theme/popup_window_animation.pdf new file mode 100644 index 0000000..fb5c9dd --- /dev/null +++ b/chrome/app/theme/popup_window_animation.pdf @@ -0,0 +1,1395 @@ +%PDF-1.5
%
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R]/Order 6 0 R/RBGroups[]>>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 50697/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> +<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> + <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <rdf:Description rdf:about="" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:format>application/pdf</dc:format> + <dc:title> + <rdf:Alt> + <rdf:li xml:lang="x-default">popup_window_animation</rdf:li> + </rdf:Alt> + </dc:title> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmp="http://ns.adobe.com/xap/1.0/" + xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> + <xmp:MetadataDate>2010-07-15T20:26:59-04:00</xmp:MetadataDate> + <xmp:ModifyDate>2010-07-15T20:26:59-04:00</xmp:ModifyDate> + <xmp:CreateDate>2010-07-15T20:26:59-04:00</xmp:CreateDate> + <xmp:CreatorTool>Adobe Illustrator CS5</xmp:CreatorTool> + <xmp:Thumbnails> + <rdf:Alt> + <rdf:li rdf:parseType="Resource"> + <xmpGImg:width>256</xmpGImg:width> + <xmpGImg:height>208</xmpGImg:height> + <xmpGImg:format>JPEG</xmpGImg:format> + <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA0AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A7Fbp5VTynD5o8zWlvfXN
xbR3t7d3cSXD8p1D+lF6gPFAWCIi0H4nIzmIiy36XTTz5BjgLlJ5Hqv5m2s12TpnlfRrW0U/Aktl
FLIwr+21FH3D6c18tXM8tn0LT+xunjH95KUpeWw+DNfy682+SvMlyNL1Py3pdrqhUtC8drD6U3EV
YKGUlWpvSp2y/BqeI0eboO3PZs6SPi4zxY+t8x+sPQZfLPkyNC7aFp1B2+qQf80ZLWauGnxnJPkH
l4QMjQS99E8sFqroGmKvYfVID/xrnFZfanUGVxERHu5uYNNHqirTy/5Om+F9B05XHhaQUP8AwmdD
2R22NV6JDhyD5H3OPlw8O/RKfNZ8jaFAir5e06e9mBMUP1WAAAbcmPDp+vNpqNSMY83W6vVjCO+R
YTH5isln5v5e0Z4id4vqMQFPY0rmANfkvo6odq5L3AeheX7PyHrdgLqDQdPRlPGaFrWAlG8Psbjw
ObPDmGSNh3On1EcseIJn/hTyd/1YtO/6RIP+aMtch3+FPJ3/AFYtO/6RIP8AmjFXf4U8nf8AVi07
/pEg/wCaMVd/hTyd/wBWLTv+kSD/AJoxV3+FPJ3/AFYtO/6RIP8AmjFXf4U8nf8AVi07/pEg/wCa
MVd/hTyd/wBWLTv+kSD/AJoxV3+FPJ3/AFYtO/6RIP8AmjFXf4U8nf8AVi07/pEg/wCaMVd/hTyd
/wBWLTv+kSD/AJoxV3+FPJ3/AFYtO/6RIP8AmjFXf4U8nf8AVi07/pEg/wCaMVd/hTyd/wBWLTv+
kSD/AJoxV3+FPJ3/AFYtO/6RIP8AmjFXf4U8nf8AVi07/pEg/wCaMVd/hTyd/wBWLTv+kSD/AJox
Va/lHyc6kDRbKM/syRW8cUin+ZJIwrow7FSCMKpn5QubmfQYvrErTy281zaGeTd5FtLmS3V3PdmW
IFj44FTnFXYq7FXYq7FXgnn1rmT8otDERPppHYm4p/J9XIFf9mVzF1n0j3vU+x5iNZvz4DXv2/Rb
x3Na+oJ55HFwfOOjehXmLyFjT+RXBk/4QHJ4vqHvDrO2TEaPLxcuCXzrb7X0rcS81A8Dmv8AasS8
GHdxfo2/S+RaXmVDOFc5dE3GQN4ZtuwhI6uFd/2UWrP9BeefmAZm8wFn+wYk9L/VFa/8NXO011+I
8V2oD4vwY1mG65m/5aPMkt+3+6SsYPhyq1PwzZdnXZ7nc9kX6u7Znf1nNo7p31nFXfWcVd9ZxV31
nFXfWcVd9ZxV31nFXfWcVd9ZxV31nFXfWcVd9ZxV31nFXfWcVd9ZxV31nFUR5GNdAY+N9qX/AHUJ
8CU/xV2KuxV2KuxV5RokNre+TNOsrpBLbz6fBHLGe4MK4JREhRbMGeeKYnA1KJsMF1D8nHNyzafq
KC3Y1WOdTyUeHJftfcMwJaOXQvdaf21jw/vcZ4v6J2Pz5fayfyZ5D0/y5Ibt5Td6iylRMRxVFPUI
tT17kn7syMOmEDZ3Lou2faHJrBwAcGPu6n3/AKmXfWffJanTQzQMJi4l5+MjE2Fwukpv1zkMvsnP
i9Exw+fNyxqh1DRuR22zfdldjY9ICb4pnr+gNGXMZ+5LNb0q01aBUmJSWOvpTLuRXqPcZsc+nGQb
83A1OljmFHmxtPI8/q0e7QRfzKpLU+R2/HMEdnSvns6wdkG95bMr0y1tdNtFtrYUUbsx6sx6k5sc
WIQFB2+HDHHHhii/rPvlja76z74q76z74q76z74q76z74q76z74q76z74q76z74q76z74q76z74q
76z74q76z74q76z74q76z74q76z74q76z74q76z74qnXkA18tA+N7qJ/7mE+BLIsVdirsVdirsVY
b5O8m+UJvKOiTTaHp8ksmn2rySPawMzM0KksxKVJJxVN/wDA/kr/AKl/Tf8ApDg/5oxV3+B/JX/U
v6b/ANIcH/NGKu/wP5K/6l/Tf+kOD/mjFXf4H8lf9S/pv/SHB/zRirv8D+Sv+pf03/pDg/5oxV3+
B/JX/Uv6b/0hwf8ANGKu/wAD+Sv+pf03/pDg/wCaMVd/gfyV/wBS/pv/AEhwf80Yq7/A/kr/AKl/
Tf8ApDg/5oxV3+B/JX/Uv6b/ANIcH/NGKu/wP5K/6l/Tf+kOD/mjFXf4H8lf9S/pv/SHB/zRirv8
D+Sv+pf03/pDg/5oxV3+B/JX/Uv6b/0hwf8ANGKu/wAD+Sv+pf03/pDg/wCaMVd/gfyV/wBS/pv/
AEhwf80Yq7/A/kr/AKl/Tf8ApDg/5oxV3+B/JX/Uv6b/ANIcH/NGKu/wP5K/6l/Tf+kOD/mjFXf4
H8lf9S/pv/SHB/zRirv8D+Sv+pf03/pDg/5oxV3+B/JX/Uv6b/0hwf8ANGKu/wAD+Sv+pf03/pDg
/wCaMVd/gfyV/wBS/pv/AEhwf80Yq7/A/kr/AKl/Tf8ApDg/5oxVb5Jt4LbQ3t7eNIYIr/U0iijU
KiquoTgKqigAA7YqnuKuxV2KuxV2KpL5J/5QzQP+2daf8mExVOsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVSXyj/wAcqf8A7aOqf91G4xVOsVdirsVdirsVSXyT
/wAoZoH/AGzrT/kwmKp1irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdiqS+Uf8AjlT/APbR1T/uo3GKp1irsVdirsVdiqS+Sf8AlDNA/wC2daf8mExVOsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVSXyj/AMcqf/to6p/3UbjFU6xV
2KuxV2KuxVJfJP8Ayhmgf9s60/5MJiqdYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUp8z+Z9J8t
6TLqepy8Ik2jjG7yOeiIO5OV5cogLLmaHQ5NVkGPGN/sA7yo+T/OGkeatJTUNOehFFubZiPUhk/l
YfqPfBhzCYsM+0ezsukycE/gehCeZa4DsVdirsVdirsVdirsVdirALnz9onlDy5JPfky3E2p6mLe
ziI9VwNSn5Nv0VfE/LKc2cQ97tOy+ycusmRDaI5yPIMx0XWtM1vTIdS02YT2k4qjjqD3Vh2YdCDk
4TEhYcPVaXJgyHHkFSCOybjuxV2KuxVJfJP/AChmgf8AbOtP+TCYqnWKuxV2KuxV2KuxV2KuxV2K
uxV2KuxV2KpT5n8z6T5b0mXU9Tl4RJtHGN3kc9EQdycry5RAWXM0OhyarIMeMb/YB3l8u+dvO2re
bNWa9vW4QJVbS0U1SJD2Hix/abv9wzUZMhmbL6z2X2Xj0ePghz6nqT+OQUPKXm3V/K+rx6lpslCP
hngavpyx13Rx+o9sEJmJsNnaHZ+PV4zjyD3HqD3h9R+T/OGkeatITUNPehFFubZiPUhkpurD9R75
t8OYTFh8l7R7OyaTJwT+B6EJ5lrgOxV2KuxV2KuxV2KsX8/eftL8oaX9YuKTX8wIsrIGjSMP2m/l
Re5/jlGfOIDzdt2R2Rk1uThjtAfVLu/a+WtW1W91XUJ7+8flPcSSSsBsqmV2kYIv7I5OTTNTKRkb
L6xo9Hj0+MY8YqI/FlkP5e/mFqfk/U+aVn0ucj67ZV2YdOaV6OPx6H2sxZTA2HA7Y7Hx63HR2yD6
ZfoPk+ntF1rTNb0yHUtNmE9pOKo46g91YdmHQg5toTEhYfKNVpcmDIceQVII7JuO7FXYqkvkn/lD
NA/7Z1p/yYTFU6xV2KuxV2KuxV2KuxV2KuxV2KuxV2KoPWtUh0nSbvUpo5JYrSNpXjhUu7BRWigZ
DJPhiS36bAc2SOMEAyNb8nyn5287at5s1Zr29bhAlVtLRTVIkPYeLH9pu/3DNPkyGZsvr3ZfZePR
4+CHPqepP45Bj2Qdk7FU68pebdX8r6vHqWmyUI+GeBq+nLHXdHH6j2yUJmJsOD2h2fj1eM48g9x6
g94fUfk/zhpHmrSE1DT3oRRbm2Yj1IZKbqw/Ue+bfDmExYfJe0ezsmkycE/gehCeZa4DsVdirsVd
irF/P3n7S/KGl/WLik1/MCLKyBo0jD9pv5UXuf45RnziA83bdkdkZNbk4Y7QH1S7v2vl/X9f1TXt
Um1PU5jNdTHc9FVR0RB+yq9hmplIyNl9Y0mkx6fGMeMVEfiz5pdgcl2Kst/Lz8wtT8oanzj5XGmX
DAXtlX7Xbmlejj8eh9rcWUwNh03bHY+PWY6O2QfTL9B8n1Pa3CXNrDcorIk6LIqyKUcBwCAyndTv
uDm4ibFvkmSBjIxPQ0q4WDsVSXyT/wAoZoH/AGzrT/kwmKp1irsVdirsVdirsVdirsVdirsVdirs
Vd12OKvCvzc/KP6r63mHy9D/AKLvJf2EY/u+5liA/Y/mXt1G3TWanTcPqjy+79j6B7O+0XHWDOfV
/DLv8j59x6+943mI9u7FXYqnXlLzbq/lfV49S02ShHwzwNX05Y67o4/Ue2ShMxNhwe0Oz8erxnHk
HuPUHvD6j8n+cNI81aQmoae9CKLc2zEepDJTdWH6j3zb4cwmLD5L2j2dk0mTgn8D0ITzLXAdirsV
Yv5+8/aX5Q0v6xcUmv5gRZWQNGkYftN/Ki9z/HKM+cQHm7bsjsjJrcnDHaA+qXd+18v6/r+qa9qk
2p6nMZrqY7noqqOiIP2VXsM1MpGRsvrGk0mPT4xjxioj8WfNLsDkuxVwBJoOuKvd/wAo/wAoxZiH
zD5hh/0vZ7Cwcf3XcSSA/t/yr+z8+mdptN/FJ8+9ovaLjvBgPp/il3+Q8u89fdz7FmweJdirsVSX
yT/yhmgf9s60/wCTCYqnWKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku67HFXhX5uflH9V9bzD5eh/0
XeS/sIx/d9zLEB+x/MvbqNums1Om4fVHl937H0D2d9ouOsGc+r+GXf5Hz7j197xvMR7d2KuxVOvK
Xm3V/K+rx6lpslCPhngavpyx13Rx+o9slCZibDg9odn49XjOPIPceoPeH1H5P84aR5q0hNQ096EU
W5tmI9SGSm6sP1Hvm3w5hMWHyXtHs7JpMnBP4HoQnmWuAxfz95+0vyhpf1i4pNfzAiysgaNIw/ab
+VF7n+OUZ84gPN23ZHZGTW5OGO0B9Uu79r5f1/X9U17VJtT1OYzXUx3PRVUdEQfsqvYZqZSMjZfW
NJpMenxjHjFRH4s+aXYHJdirgCTQdcVe7/lH+UYsxD5h8ww/6Xs9hYOP7ruJJAf2/wCVf2fn0ztN
pv4pPn3tF7Rcd4MB9P8AFLv8h5d56+7n2LNg8S7FXYq7FUl8k/8AKGaB/wBs60/5MJiqdYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXddjirwr83Pyj+q+t5h8vQ/6LvJf2EY/u+5liA/Y/mXt1G3TW
anTcPqjy+79j6B7O+0XHWDOfV/DLv8j59x6+943mI9u7FXYqnXlLzbq/lfV49S02ShHwzwNX05Y6
7o4/Ue2ShMxNhwe0Oz8erxnHkHuPUHvD3y+/OzytD5STWrdvVv5qxxaUTSVZgBUSU6Ita8u46b7Z
sDrI8Njn3PneL2Y1EtScUtoDfj6V5efk+etf1/VNe1SbU9TmM11Mdz0VVHREH7Kr2Ga6UjI2X0nS
aTHp8Yx4xUR+LPml2ByXYq4Ak0HXFXuX5M/ldbLFF5m1lBJcLI62Vk4NInhkaNnlU/tq6EAduvXp
nabTfxSfPfaH2i47w4D6f4pd/kPLz6+7n2fNg8U7FXYq7FXYqkvkn/lDNA/7Z1p/yYTFU6xV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV3XY4q8K/Nz8o/qvreYfL0P+i7yX9hGP7vuZYgP2P5l7dR
t01mp03D6o8vu/Y+gezvtFx1gzn1fwy7/I+fcevveN5iPbuxV2KuxV2KuxVwBJoOuKvd/wAo/wAo
xZiHzD5hh/0vZ7Cwcf3XcSSA/t/yr+z8+mdptN/FJ8+9ovaLjvBgPp/il3+Q8u89fdz6R5R/45U/
/bR1T/uo3GbB4lOsVdirsVdirsVSXyT/AMoZoH/bOtP+TCYqnWKuxV2KuxV2KuxV2KuxV2KuxV2K
uxV2KuxV2KuxV3XY4q8K/Nz8o/qvreYfL0P+i7yX9hGP7vuZYgP2P5l7dRt01mp03D6o8vu/Y+ge
zvtFx1gzn1fwy7/I+fcevveN5iPbuxV2KuxVwBJoOuKvd/yj/KMWYh8w+YYf9L2ewsHH913EkgP7
f8q/s/PpnabTfxSfPvaL2i47wYD6f4pd/kPLvPX3c+xZsHiUl8o/8cqf/to6p/3UbjFU6xV2KuxV
2KuxVJfJP/KGaB/2zrT/AJMJiqdYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqxfz9590
ryjpRnuKTX8wIsrEH4pG8W8EHc/xyjPmEB5u27I7JyazJUdoD6pd37XyrfXb3l5PduiRvPI0jRxK
EjUsa0RRsAOwzUPruLGIRERZoVvzUMWx2KuxVMNA1eTRtZs9UjhjuHtJBKsMy8kanYj9R7HfDE0b
cbV6YZ8UsZJHEKsc31b5P84aR5q0hNQ096EUW5tmI9SGSm6sP1Hvm4w5hMWHyDtHs7JpMnBP4HoQ
nmWuAkvlH/jlT/8AbR1T/uo3GKp1irsVdirsVdiqS+Sf+UM0D/tnWn/JhMVTrFXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYqxfz95+0vyhpf1i4pNfzAiysgaNIw/ab+VF7n+OUZ84gPN23ZHZGT
W5OGO0B9Uu79r5f1/X9U17VJtT1OYzXUx3PRVUdEQfsqvYZqZSMjZfWNJpMenxjHjFRH4s+aXYHJ
dirsVdirsVTryl5t1fyvq8epabJQj4Z4Gr6csdd0cfqPbJQmYmw4PaHZ+PV4zjyD3HqD3h9R+T/O
GkeatITUNPehFFubZiPUhkpurD9R75t8OYTFh8l7R7OyaTJwT+B6ELvKP/HKn/7aOqf91G4y1wE6
xV2KuxV2KuxVJfJP/KGaB/2zrT/kwmKp1irsVdirsVdirsVdirsVdirsVdirsVdirsVdirF/P3n7
S/KGl/WLik1/MCLKyBo0jD9pv5UXuf45RnziA83bdkdkZNbk4Y7QH1S7v2vl/X9f1TXtUm1PU5jN
dTHc9FVR0RB+yq9hmplIyNl9Y0mkx6fGMeMVEfiz5pdgcl2KuAJNB1xVm97+UXm208pp5hkhr1kn
08A+vHBSokYf8SXqo+mlpwSEeLo6HF7Raaep8AH3S6E937ev3wjKnfOxV2Kp15S826v5X1ePUtNk
oR8M8DV9OWOu6OP1HtkoTMTYcHtDs/Hq8Zx5B7j1B7w+kvyx8w6frflprq1dfUa7vJri2rV4Tc3c
s6I/T9iQb9Dm3xZhMWHyXtHs7LpMnBMe49CGW5a4DsVdirsVdiqS+Sf+UM0D/tnWn/JhMVTrFXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqxfz95+0vyhpf1i4pNfzAiysgaNIw/ab+VF7n+OUZ84gPN2
3ZHZGTW5OGO0B9Uu79r5f1/X9U17VJtT1OYzXUx3PRVUdEQfsqvYZqZSMjZfWNJpMenxjHjFRH4s
+aXYHJdirgCTQdcVe7/lH+UYsxD5h8ww/wCl7PYWDj+67iSQH9v+Vf2fn0ztNpv4pPn3tF7Rcd4M
B9P8Uu/yHl3nr7ufYuuxzYPEvCvzc/KP6r63mHy9D/ou8l/YRj+77mWID9j+Ze3UbdNZqdNw+qPL
7v2PoHs77RcdYM59X8Mu/wAj59x6+943mI9u7FXYqnXlLzbq/lfV49S02ShHwzwNX05Y67o4/Ue2
ShMxNhwe0Oz8erxnHkHuPUHvD6j8n+cNI81aQmoae9CKLc2zEepDJTdWH6j3zb4cwmLD5L2j2dk0
mTgn8D0ITzLXAdirsVdirEvLGumw8taTY3OmaitzaWdvBOotJSA8cSqwqBQ7jCqZf4qg/wCrbqX/
AEhzf0wK7/FUH/Vt1L/pDm/pirv8VQf9W3Uv+kOb+mKu/wAVQf8AVt1L/pDm/pirv8VQf9W3Uv8A
pDm/pirv8VQf9W3Uv+kOb+mKu/xVB/1bdS/6Q5v6Yq7/ABVB/wBW3Uv+kOb+mKu/xVB/1bdS/wCk
Ob+mKu/xVB/1bdS/6Q5v6Yq7/FUH/Vt1L/pDm/pirv8AFUH/AFbdS/6Q5v6Yq7/FUH/Vt1L/AKQ5
v6YqkXm3819I8vWDSS2l0L+RT9TtZ4mh9RulSXp8I7kZTnzCA83bdkdk5Nbk4Y7QH1S7v2vm/X9f
1TXtUm1PU5jNdTHc9FVR0RB+yq9hmolIyNl9Y0mkx6fGMeMVEfiz5pdgcl2KuAJNB1xV7F+VvkWD
S501vzDpl9NeIQ1jaLaSukfcSP8ADQv/ACjt169M/Tab+KT577Q+0XHeDAfT/FLv8h5efX3c+uf4
qg/6tupf9Ic39Mz3inf4qg/6tupf9Ic39MVd/iqA7HTdS/6Q5v6Y0rxL8zvIMJuJda8u6bew27cp
L6zktZY0jpu0kZK0C+K9u23TWanTcPqjy+79j6B7O+0XHWDOfV/DLv8AI+fcery7MR7d2KuxVOvK
Xm3V/K+rx6lpslCPhngavpyx13Rx+o9slCZibDg9odn49XjOPIPceoPeH1H5P84aR5q0hNQ096EU
W5tmI9SGSm6sP1Hvm3w5hMWHyXtHs7JpMnBP4HoQnmWuA7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FUFrV3fWek3d1YWpvryGJngtAQpkcDZanIZJERJAst+lxwnkjGcuCJO57nyL5i1zV9b1e41
DVpGkvZGIdWBUIFNBGqn7Kr4ZpZSMjZfZtHpcWDEIYxUR9vmluBynYq4Ak0HXFXu/wCUf5RizEPm
HzDD/pez2Fg4/uu4kkB/b/lX9n59M7Tab+KT597Re0XHeDAfT/FLv8h5d56+7n2LNg8S7FXYq7FX
ddjirwr83Pyj+q+t5h8vQ/6LvJf2EY/u+5liA/Y/mXt1G3TWanTcPqjy+79j6B7O+0XHWDOfV/DL
v8j59x6+943mI9u7FXYqn/knzHr+g6/b3OiBpbmVhE1mAWWdWP8Adso617eGShMxNjm67tTRYdRh
Mcu0RvxfzfN9bWsk0ttDJNEYJnRWlgJDFGIqychseJ2qM3cSSN3xzJECRANi+feqYWDsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVeVfm1+Uqa0kuu6FEF1dRyurVdhcgftL/AMW/8S+eYOp01+qL
1/s97QnARhzH930P83/jv3Pn10dHZHUq6khlIoQRsQQc1z6OCCLC0Ak0HXCl7v8AlH+UYsxD5h8w
w/6Xs9hYOP7ruJJAf2/5V/Z+fTO02m/ik+fe0XtFx3gwH0/xS7/IeXeevu59izYPEuxV2KuxV2Ku
xV3XY4q8K/Nz8o/qvreYfL0P+i7yX9hGP7vuZYgP2P5l7dRt01mp03D6o8vu/Y+gezvtFx1gzn1f
wy7/ACPn3Hr73jeYj26ra2txdXEdtbRtNcTMEiiQFmZmNAABiwyZIwiZSNAPpD8rPyst/LFuupak
qza9Mu52ZbdWG6If5v5m+gbddlptNw+qXP7nzDt7t6Wql4ePbCP9l5ny7g9EzMeadirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdiryr82vylTWkl13QogurqOV1arsLkD9pf8Ai3/iXzzB1Omv
1Rev9nvaE4CMOY/u+h/m/wDHfuQX5R/lF9T9HzB5hh/0zZ7GwkH913EkoP7f8q/s/PpHTab+KTf7
Q+0XHeHAfT/FLv8AIeXn193PsWbB4l2KuxV2KuxV2KuxV2Ku67HFXhv5rfk5Mk7a35YtjJHK3+l6
bEKlWY/bhUfsk9V7dtums1Gm4d48nvuwPaQEeFqDRHKR+4/r6+9l35WflZb+WLddS1JVm16Zdzsy
26sN0Q/zfzN9A2636bTcPqlz+503b3b0tVLw8e2Ef7LzPl3B6JmY807FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//
2Q==</xmpGImg:image> + </rdf:li> + </rdf:Alt> + </xmp:Thumbnails> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" + xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" + xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"> + <xmpMM:InstanceID>uuid:79fe2a98-7330-7748-85f6-673d55f7aeb8</xmpMM:InstanceID> + <xmpMM:DocumentID>xmp.did:FB7F1174072068118A6DB62B94C21EBD</xmpMM:DocumentID> + <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID> + <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> + <xmpMM:DerivedFrom rdf:parseType="Resource"> + <stRef:instanceID>xmp.iid:FA7F1174072068118A6DB62B94C21EBD</stRef:instanceID> + <stRef:documentID>xmp.did:FA7F1174072068118A6DB62B94C21EBD</stRef:documentID> + <stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID> + <stRef:renditionClass>proof:pdf</stRef:renditionClass> + </xmpMM:DerivedFrom> + <xmpMM:History> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F1174072068118A6DB62B94C21EBD</stEvt:instanceID> + <stEvt:when>2010-07-15T00:25:28-04:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS5</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FA7F1174072068118A6DB62B94C21EBD</stEvt:instanceID> + <stEvt:when>2010-07-15T00:43:29-04:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS5</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FB7F1174072068118A6DB62B94C21EBD</stEvt:instanceID> + <stEvt:when>2010-07-15T20:26:57-04:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS5</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + </rdf:Seq> + </xmpMM:History> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"> + <illustrator:StartupProfile>Print</illustrator:StartupProfile> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" + xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" + xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> + <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> + <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> + <xmpTPg:NPages>1</xmpTPg:NPages> + <xmpTPg:MaxPageSize rdf:parseType="Resource"> + <stDim:w>355.000000</stDim:w> + <stDim:h>283.000000</stDim:h> + <stDim:unit>Pixels</stDim:unit> + </xmpTPg:MaxPageSize> + <xmpTPg:PlateNames> + <rdf:Seq> + <rdf:li>Cyan</rdf:li> + <rdf:li>Magenta</rdf:li> + <rdf:li>Yellow</rdf:li> + <rdf:li>Black</rdf:li> + </rdf:Seq> + </xmpTPg:PlateNames> + <xmpTPg:SwatchGroups> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Default Swatch Group</xmpG:groupName> + <xmpG:groupType>0</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>White</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>Black</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>100.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Red</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>100.000000</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Yellow</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Green</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>100.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Cyan</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>100.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Blue</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>100.000000</xmpG:cyan> + <xmpG:magenta>100.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Magenta</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>100.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>14.999998</xmpG:cyan> + <xmpG:magenta>100.000000</xmpG:magenta> + <xmpG:yellow>90.000000</xmpG:yellow> + <xmpG:black>10.000002</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>90.000000</xmpG:magenta> + <xmpG:yellow>85.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>80.000000</xmpG:magenta> + <xmpG:yellow>95.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>50.000000</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>35.000004</xmpG:magenta> + <xmpG:yellow>85.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>5.000001</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>90.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>19.999998</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>50.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>75.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>85.000000</xmpG:cyan> + <xmpG:magenta>10.000002</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>10.000002</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>90.000000</xmpG:cyan> + <xmpG:magenta>30.000002</xmpG:magenta> + <xmpG:yellow>95.000000</xmpG:yellow> + <xmpG:black>30.000002</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>75.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>75.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>80.000000</xmpG:cyan> + <xmpG:magenta>10.000002</xmpG:magenta> + <xmpG:yellow>45.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>70.000000</xmpG:cyan> + <xmpG:magenta>14.999998</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>85.000000</xmpG:cyan> + <xmpG:magenta>50.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>100.000000</xmpG:cyan> + <xmpG:magenta>95.000000</xmpG:magenta> + <xmpG:yellow>5.000001</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>100.000000</xmpG:cyan> + <xmpG:magenta>100.000000</xmpG:magenta> + <xmpG:yellow>25.000000</xmpG:yellow> + <xmpG:black>25.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>75.000000</xmpG:cyan> + <xmpG:magenta>100.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>50.000000</xmpG:cyan> + <xmpG:magenta>100.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>35.000004</xmpG:cyan> + <xmpG:magenta>100.000000</xmpG:magenta> + <xmpG:yellow>35.000004</xmpG:yellow> + <xmpG:black>10.000002</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>10.000002</xmpG:cyan> + <xmpG:magenta>100.000000</xmpG:magenta> + <xmpG:yellow>50.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>95.000000</xmpG:magenta> + <xmpG:yellow>19.999998</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>25.000000</xmpG:cyan> + <xmpG:magenta>25.000000</xmpG:magenta> + <xmpG:yellow>39.999996</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>39.999996</xmpG:cyan> + <xmpG:magenta>45.000000</xmpG:magenta> + <xmpG:yellow>50.000000</xmpG:yellow> + <xmpG:black>5.000001</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>50.000000</xmpG:cyan> + <xmpG:magenta>50.000000</xmpG:magenta> + <xmpG:yellow>60.000004</xmpG:yellow> + <xmpG:black>25.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>55.000000</xmpG:cyan> + <xmpG:magenta>60.000004</xmpG:magenta> + <xmpG:yellow>65.000000</xmpG:yellow> + <xmpG:black>39.999996</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>25.000000</xmpG:cyan> + <xmpG:magenta>39.999996</xmpG:magenta> + <xmpG:yellow>65.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>30.000002</xmpG:cyan> + <xmpG:magenta>50.000000</xmpG:magenta> + <xmpG:yellow>75.000000</xmpG:yellow> + <xmpG:black>10.000002</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>35.000004</xmpG:cyan> + <xmpG:magenta>60.000004</xmpG:magenta> + <xmpG:yellow>80.000000</xmpG:yellow> + <xmpG:black>25.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>39.999996</xmpG:cyan> + <xmpG:magenta>65.000000</xmpG:magenta> + <xmpG:yellow>90.000000</xmpG:yellow> + <xmpG:black>35.000004</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>39.999996</xmpG:cyan> + <xmpG:magenta>70.000000</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>50.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>50.000000</xmpG:cyan> + <xmpG:magenta>70.000000</xmpG:magenta> + <xmpG:yellow>80.000000</xmpG:yellow> + <xmpG:black>70.000000</xmpG:black> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Grays</xmpG:groupName> + <xmpG:groupType>1</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>100.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>89.999405</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>79.998795</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>69.999702</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>59.999104</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>50.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>39.999401</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>29.998802</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>19.999701</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>9.999103</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>0.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>4.998803</xmpG:black> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Brights</xmpG:groupName> + <xmpG:groupType>1</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>100.000000</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>75.000000</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>0.000000</xmpG:cyan> + <xmpG:magenta>10.000002</xmpG:magenta> + <xmpG:yellow>95.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>85.000000</xmpG:cyan> + <xmpG:magenta>10.000002</xmpG:magenta> + <xmpG:yellow>100.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>100.000000</xmpG:cyan> + <xmpG:magenta>90.000000</xmpG:magenta> + <xmpG:yellow>0.000000</xmpG:yellow> + <xmpG:black>0.000000</xmpG:black> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>CMYK</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:cyan>60.000004</xmpG:cyan> + <xmpG:magenta>90.000000</xmpG:magenta> + <xmpG:yellow>0.003099</xmpG:yellow> + <xmpG:black>0.003099</xmpG:black> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + </rdf:Seq> + </xmpTPg:SwatchGroups> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> + <pdf:Producer>Adobe PDF library 9.90</pdf:Producer> + </rdf:Description> + </rdf:RDF> +</x:xmpmeta> + + + + + + + + + + + + + + + + + + + + + +<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[41.144 35.3232 309.135 245.925]/BleedBox[0.0 0.0 355.0 283.0]/Contents 8 0 R/LastModified(D:20100715202659-04'00')/MediaBox[0.0 0.0 355.0 283.0]/Parent 3 0 R/PieceInfo<</Illustrator 9 0 R>>/Resources<</ColorSpace<</CS0 10 0 R>>/ExtGState<</GS0 11 0 R>>/Properties<</MC0 5 0 R>>/Shading<</Sh0 12 0 R>>>>/Thumb 13 0 R/TrimBox[0.0 0.0 355.0 283.0]/Type/Page>>
endobj
8 0 obj
<</Filter/FlateDecode/Length 497>>stream
+HTM1W"[פKe)!}6Ф}8dJ鱔,?Iwv|`pnvOlWq6yR)vr)X8y5o&$J!X"Ohnl +8;YiZ]a_n&%##QG*<X[E0ME1AE=si<1Sgbd3p5uG0GqZl_6ROnT:R)6kP<!$8L_\O +=U>T9f.3u-0hhu^>6jTcL]1t.p)t>[CJ`VrAXGi-B5TFQ42!YFM?1]$s6+>&C.T69 +?(/@mfk]KRTV_)0*QNM-X(u$#6pP6FpZmFopoRA)^VTH2Zb$D&j;O3j\G[c#(^p?Q +ZI]7<]5?FYO!_o.\uth9&$1CEl:JJBH`q/([B?0bS6g>Yc!6'LND99k=LYj**;=Dd +T\78!c>N^EpQ3T~>
endstream
endobj
14 0 obj
[/Indexed/DeviceRGB 255 15 0 R]
endobj
15 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 +VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< +PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
12 0 obj
<</AntiAlias false/ColorSpace 10 0 R/Coords[0.0 0.0 1.0 0.0]/Domain[0.0 1.0]/Extend[true true]/Function 16 0 R/ShadingType 2>>
endobj
10 0 obj
[/DeviceN[/Black]/DeviceCMYK 17 0 R 18 0 R]
endobj
16 0 obj
<</Bounds[]/Domain[0.0 1.0]/Encode[0.0 1.0]/FunctionType 3/Functions[19 0 R]>>
endobj
19 0 obj
<</C0[0.246994]/C1[0.0269928]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
17 0 obj
<</Domain[0.0 1.0]/FunctionType 4/Length 267/Range[0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0]>>stream
+{1.000000 2 1 roll 1.000000 2 1 roll 1.000000 2 1 roll 0 index 1.000000 +cvr exch sub 2 1 roll 5 -1 roll 1.000000 cvr exch sub 5 1 +roll 4 -1 roll 1.000000 cvr exch sub 4 1 roll 3 -1 roll 1.000000 +cvr exch sub 3 1 roll 2 -1 roll 1.000000 cvr exch sub 2 1 +roll pop }
endstream
endobj
18 0 obj
<</Process 20 0 R/Subtype/NChannel>>
endobj
20 0 obj
<</ColorSpace/DeviceCMYK/Components[/Cyan/Magenta/Yellow/Black]>>
endobj
5 0 obj
<</Intent 21 0 R/Name(Layer 1)/Type/OCG/Usage 22 0 R>>
endobj
21 0 obj
[/View/Design]
endobj
22 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 15.0)/Subtype/Artwork>>>>
endobj
11 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
9 0 obj
<</LastModified(D:20100715202659-04'00')/Private 23 0 R>>
endobj
23 0 obj
<</AIMetaData 24 0 R/AIPDFPrivateData1 25 0 R/AIPDFPrivateData10 26 0 R/AIPDFPrivateData11 27 0 R/AIPDFPrivateData2 28 0 R/AIPDFPrivateData3 29 0 R/AIPDFPrivateData4 30 0 R/AIPDFPrivateData5 31 0 R/AIPDFPrivateData6 32 0 R/AIPDFPrivateData7 33 0 R/AIPDFPrivateData8 34 0 R/AIPDFPrivateData9 35 0 R/ContainerVersion 11/CreatorVersion 15/NumBlock 11/RoundtripVersion 15>>
endobj
24 0 obj
<</Length 972>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 15.0
%%AI8_CreatorVersion: 15.0.0
%%For: (Robert Sesek) ()
%%Title: (window.pdf)
%%CreationDate: 7/15/10 8:26 PM
%%Canvassize: 16383
%%BoundingBox: 118 -374 413 -136
%%HiResBoundingBox: 118.144 -373.1768 412.6348 -136.0752
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 11.0
%AI12_BuildNumber: 399
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%CMYKProcessColor: 1 1 1 1 ([Registration])
%AI3_Cropmarks: 77 -382 432 -99
%AI3_TemplateBox: 250.5 -250.5 250.5 -250.5
%AI3_TileBox: -123.5 -528.5 610.5 47.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 6
%AI9_ColorModel: 2
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: 38 -93 2.62 1137 760 18 0 0 45 130 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-56 -646
%AI7_GridSettings: 100 10 100 10 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
25 0 obj
<</Length 9838>>stream
+%%BoundingBox: 118 -374 413 -136
%%HiResBoundingBox: 118.144 -373.1768 412.6348 -136.0752
%AI7_Thumbnail: 128 104 8
%%BeginData: 9684 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FF7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8
%7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8
%7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8
%7DA87DA87DA87DA87DA87DA87DA87DA87DFD18FF7DFFFFFFCAC39ABCA0FD
%07FFCFCEC8CEC9FD06FFAE838382A8FD48FF7DFD17FF7EFFFFCABB8DB5B0
%B593CAFFFFA8FFCECCC7CDC7CCC8FFFFFFA8AE343A333A3483A8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFA8A8FD16FF7DFFA8BB8DB08CB58DB093FFA8FFA7CCA5CCA5
%CCA5CCA6FFA8A8333A335E335E1183A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7DFD17FF84
%FFC9B0B5B0B5B0B5B0B5C3FFA8CEC7CDC7CDCCCDC7CDCFFF823A3A5E335E
%3A5E58FFA8FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FF
%A8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FF
%A9FFA8FFA9FFA8FFA9FFA8FFFFA8A8FD16FF7DFF9AB58DB58DB58DB58CC3
%A8FFA6CCC7CCA5CCC7CCA5CFA85E335E335E335E333A83FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FF7DFD17FF7EFFC38DB5B0B58DB5B0B5A0FFA8CDC7CDC7CCC7CDC7CCA7
%FF5E3A335E3A5E335E34A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD16FF7DFFA1B08C
%B58DB08CB58DA1A8A8A7CCA5CCA5CCA5CCA5A8A883115E335E335E335EFD
%45A8FF7DFD17FF7EA8FF9AB5B0B5B0B5B0C2A8FFA8CFC7CDCCCDC7CDC7CF
%A8FFA85E335E3A5E333A83FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A9FD16FF7DFFA8A8
%9AB58DB08CBCFD06A8A6CCA5CCA5CEFD04A8A75E333A335E7DFD47A87DFD
%17FF7DA8FFA8A8A1C3A1CAA8AFA8A8A8FFA8A8A7CFA7A8A8AFA8A8A8A9A8
%A883FD04A8AFA8A8A8AFA8A8A8AFA8A8A8AFA8A8A8AFA8A8A8AFA8A8A8AF
%A8A8A8AFA8A8A8AFA8A8A8AFA8A8A8AFA8A8A8AFA8A8A8AFA8A8A8AFA8A8
%A8AFA8A8A8AFA8A8A8AFA8A8A8AFA87DA8FD16FF52A87DA87DA87DA87DA8
%7DA87DA87DA87D847DA87DA87DA87DA87DA87D847DA87DA87DA87DA87DA8
%7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8
%7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8
%7DA87DA853FD17FF7D7EA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D
%A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D
%A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D
%A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8847DA8FD16FF7DFD67
%FF7DFD17FFA8FD67FFA8A8FD16FF7DFD67FF7DFD17FFA8FD67FFA8A8FD16
%FF7DFD67FF7DFD17FFA8FD67FFA8A8FD16FF7DFD67FF7DAFFD16FFA8FD67
%FFA8A8FD16FF7DFD67FF7DFD17FFA8FD67FFA8A8FD16FF7DFD67FF7DFD17
%FFA8FD67FFA8A8FD16FF7DFD67FF7DFD17FFA8FD67FFA8A8FD16FF7DFD67
%FF7DAFFD16FFA8FD67FFA8A8FD16FF7DFD67FF7DFD17FFA8FD3EFFC3C3FD
%27FFA8A8FFBCFD14FF7DFD3DFFC3B08CC2FD26FF7DCA93B093FD13FFA8FD
%3CFFC9B5B0B5B0C3FD25FFA893B5B0B5B5FD12FF7DFD3BFFC3B58DB58DB5
%8DC2FD24FF93B58DB58DB593FD11FFA8FD3AFFC3B58DB5B0B58DB5B0C3FD
%22FFB5B58DB5B0B58DB5B5FD10FF7DFD39FFA1B58DB58CB58DB58CB58DC2
%FD20FF93B58DB58CB58DB58CB593FD0FFFA8FD38FFC3B5B0B5B0B5B0B5B0
%B5B5B5B0C3FD1EFFFD04B5B0B5B0B5B0FD04B5FD0EFF7DFD37FFC3B08CB5
%8DB58CB58DB58CB58DB08CC2FD1CFF93B08DB58DB58CB58DB58CB58DB093
%FD0DFFA8FD36FFC3B5B0B58DB5B0B58DB5B0B58DB5B0B58DC3FD1AFF93B5
%B0B58DB5B0B58DB5B0B58DB5B0B593FD0CFF7DFD36FFBC8CB58DB58CB58D
%B58CB58DB58CB58DB08CC2FD18FF93B08CB58DB58CB58DB58CB58DB58CB5
%8DB0A1FD0BFFA8FD37FFC2B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0C3FD
%16FFB5B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5C3FD0CFF7DFD38FFC28D
%B58CB58DB58CB58DB58CB58DB58DB58DC2FD14FF93B58DB58CB58DB58CB5
%8DB58CB58DB58CB5C3FD0DFFA8FD39FFC2B0B58DB5B0B58DB5B0B58DB5B0
%B58DB5B0C3FD12FFB5B58DB5B0B58DB5B0B58DB5B0B58DB5B0B5C3FD0EFF
%7DFD3AFFC28DB58CB58DB58CB58DB58CB58DB58CB58DC2FD10FF93B58DB5
%8CB58DB58CB58DB58CB58DB58CB5C3FD0FFFA8FD3BFFC2B0B5B0B5B0B5B0
%B5B0B5B0B5B0B5B5B5B0C3FD0EFFFD04B5B0B5B0B5B0B5B0B5B0B5B0B5B0
%B5C9FD10FF7DFD3CFFBC8CB58DB58CB58DB58CB58DB58CB58DB08CC2FD0C
%FF93B08DB58DB58CB58DB58CB58DB58CB58DB0C3FD11FFA8FD3DFFC28DB5
%B0B58DB5B0B58DB5B0B58DB5B0B58DC3FD0AFF93B5B0B58DB5B0B58DB5B0
%B58DB5B0B58DB5C3FD12FF7DFD3EFFBC8CB58DB58CB58DB58CB58DB58CB5
%8DB08CC2FD08FF93B08CB58DB58CB58DB58CB58DB58CB58DB0A1FD13FFA8
%FD3FFFC2B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0C3FD06FFB5B5B0B5B0
%B5B0B5B0B5B0B5B0B5B0B5B0B5C3FD14FF7DFD40FFC28DB58CB58DB58CB5
%8DB58CB58DB58DB58DC2FD04FF93B58DB58CB58DB58CB58DB58CB58DB58C
%B5C3FD15FFA8FD41FFC2B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0C3FFFF
%B5B58DB5B0B58DB5B0B58DB5B0B58DB5B0B5C3FD16FF7DFD42FFC28DB58C
%B58DB58CB58DB58CB58DB58CB58DC293B58DB58CB58DB58CB58DB58CB58D
%B58CB576FD17FFA8FD43FFC2B0B5B0B5B0B5B0B5B0B5B0B5B0B5B5B5B0B5
%B5B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5C9A8A8FD16FF7DFD44FFBC8CB58D
%B58CB58DB58CB58DB58CB58DB58CB58DB58CB58DB58CB58DB58CB58DB0C3
%FF7DFD17FFA8FD45FFC28DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B5
%8DB5B0B58DB5B0B58DB5C3FFFFA8A8FD16FF7DFD46FFBC8CB58DB58CB58D
%B58CB58DB58CB58DB58CB58DB58CB58DB58CB58DB0A1FFFFFF7DFD17FFA8
%FD47FFC2B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5
%C3FD04FFA8A8FD16FF7DFD48FFC28DB58CB58DB58CB58DB58CB58DB58CB5
%8DB58CB58DB58CB5C3FD05FF7DFD17FFA8FD49FFC2B0B58DB5B0B58DB5B0
%B58DB5B0B58DB5B0B58DB5B0B5C3FD06FFA8A8FD16FF7DFD4AFFBC8DB58C
%B58DB58CB58DB58CB58DB58CB58DB58CB5C3FD07FF7DAFFD16FFA8FD4BFF
%C2B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5C9FD08FFA8A8FD16FF7DFD
%4BFF99B08CB58DB58CB58DB58CB58DB58CB58DB58CC3FD08FF7DFD17FFA8
%FD4AFF93B5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DC3FD07FFA8A8
%FD16FF7DFD49FF93B08CB58DB58CB58DB58CB58DB58CB58DB58CB58DB08C
%C2FD06FF7DFD17FFA8FD48FFB5B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5
%B0B5B0B5B0B5B0C3FD05FFA8A8FD16FF7DFD47FF93B58DB58CB58DB58CB5
%8DB58CB58DB58CB58DB58CB58DB58DB58DC2FD04FF7DFD17FFA8FD46FFB5
%B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0B58DB5B0C3FF
%FFFFA8A8FD16FF7DFD45FF93B58DB58CB58DB58CB58DB58CB58DB58CB58D
%B58CB58DB58CB58DB58CB58DC2FFFF7DAFFD16FFA8FD44FFFD04B5B0B5B0
%B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5B5B5B0C3FFA8A8
%FD16FF7DFD43FF93B08DB58DB58CB58DB58CB58DB58CB58DB08CB58DB58C
%B58DB58CB58DB58CB58DB08CC27DAFFD16FFA8FD42FF93B5B0B58DB5B0B5
%8DB5B0B58DB5B0B58DB5C3C28DB5B0B58DB5B0B58DB5B0B58DB5B0B58DA0
%FD17FF7DFD41FF93B08CB58DB58CB58DB58CB58DB58CB58DB0A1FFFFBC8C
%B58DB58CB58DB58CB58DB58CB58DB08CC2FD16FFA8FD40FFB5B5B0B5B0B5
%B0B5B0B5B0B5B0B5B0B5B0B5C3FD04FFC2B0B5B0B5B0B5B0B5B0B5B0B5B0
%B5B0B5B0C3FD15FF7DFD3FFF93B58DB58CB58DB58CB58DB58CB58DB58CB5
%C3FD06FFC28DB58CB58DB58CB58DB58CB58DB58DB58DC2FD14FFA8FD3EFF
%B5B58DB5B0B58DB5B0B58DB5B0B58DB5B0B5C3FD08FFC2B0B58DB5B0B58D
%B5B0B58DB5B0B58DB5B0C3FD13FF7DFD3DFF93B58DB58CB58DB58CB58DB5
%8CB58DB58CB5C3FD0AFFC28DB58CB58DB58CB58DB58CB58DB58CB58DC2FD
%12FFA8FD3CFFFD04B5B0B5B0B5B0B5B0B5B0B5B0B5B0B5C9FD0CFFC2B0B5
%B0B5B0B5B0B5B0B5B0B5B0B5B5B5B0C3FD11FF7DFD3BFF93B08DB58DB58C
%B58DB58CB58DB58CB58DB0C3FD0EFFBC8CB58DB58CB58DB58CB58DB58CB5
%8DB08CC2FD10FF7DA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8
%A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF
%A8A8A8FFA8CA93B5B0B58DB5B0B58DB5B0B58DB5B0B58DB5A1A8A8FFA8A8
%A8FFA8A8A8FFA8A8A8FFA89A8DB5B0B58DB5B0B58DB5B0B58DB5B0B58DC3
%FD0FFF7DA87EA87DA87EA87DA87EA87DA87EA87DA87EA87DA87EA87DA87E
%A87DA87EA87DA87EA87DA87EA87DA87EA87DA87EA87DA87EA87DA87EA87D
%A893B08CB58DB58CB58DB58CB58DB58CB58DB0A0A87EA87DA87EA87DA87E
%A87DA87EA87DA8A8BC8CB58DB58CB58DB58CB58DB58CB58DB08CC2FD47FF
%B5B58DB5B0B5B0B5B0B5B0B5B0B5B0B5B0B5C3FD14FFC2B0B5B0B5B0B5B0
%B5B0B5B0B5B0B5B0B5B0C3FD44FFCF93B58DB58CB58DB58CB58DB58CB58D
%B58CB5C3FD16FFC28DB58CB58DB58CB58DB58CB58DB58DB58DC2FD43FFBC
%B58DB5B0B58DB5B0B58DB5B0B58DB5B0B5C3FD18FFC2B0B58DB5B0B58DB5
%B0B58DB5B0B58DB5B0C9FD42FFCA93B08CB58DB58CB58DB58CB58DB58CB5
%C3FD1AFFC28DB58CB58DB58CB58DB58CB58DB58CBCCFFD43FFCFFD04B5B0
%B5B0B5B0B5B0B5B0B5C9FD1CFFC2B0B5B0B5B0B5B0B5B0B5B0B5B0C2FD46
%FFCA93B58DB58CB58DB58CB58DB0C3FD1EFFBC8CB58DB58CB58DB58CB58D
%BCFD48FFCF93B5B0B58DB5B0B58DB5C3FD20FFC28DB5B0B58DB5B0B58DC2
%FD4AFFCA93B58DB58CB58DB0A1FD22FFBC8CB58DB58CB58DBCFD4DFFB5B5
%B0B5B0B5C3FD24FFC2B0B5B0B5B0C2FD4EFFCF93B08CB5C3FD26FFC28DB5
%8CC2FD50FFCFB5B5C3FD28FFC2B0C2FD52FFCAC3FD29FFCAC3FDFCFFFDFC
%FFFDFCFFFDFCFFFDFCFFFDFCFFFD2BFFFF
%%EndData
endstream
endobj
26 0 obj
<</Filter[/FlateDecode]/Length 14468>>stream
+HWN>/w])-%/q$ YMXP'gOu\z1@{ꪯ\0+2Ln}@4$exg
_5S2
EB. +B[t]oxa[أ!LdF.@A AMg&aFcE>ImEW-ն4x-Rq8'L)S3-v\RSTUX]ԖeQ%0zHLR;w\#<*$1
ԁɄy>͚0pS/A|ŎM3MOGPix!#UN1&Ip̗t2҄!d\bpRV0a6\ҐF?dR[Mhv5mӻj_I<LW)8bY0HX8 We;Кܶ5Uџd2+<fԳ$«iږ伦oy;yb4UF)̖%QYQDF3T2ږўь-m+Ujb)B4sKi[JdȪ)[Zھ3/ A;-YУ#zISo(BŎw&_/%$;pxɦ-inm%IKTͤ#bQRѺ0ZohўcCf#/}|_[$w >fD7ή,5ԓ+nFu?}KvД\]zU@>];ɖ
(Y}yA<&h=꡶+pCX!VdCcYejٴ;Gb˘$'az,Nky|oF=*Ckfx'-R$5# u +\Ӳe44QY}q}շ02M9g +.s=h
bpUE;s$)[LkEZ-PԊ/kX> +%<[55mv,Y˒-CgUzw35Gλ8: 9 ۹<BAJJZtǴq`e [;-X7u{9e6՛ +L%JkA$r>D;kKɛx}6% +\ +Hc2vmUtT-]/2!ҕx/__S7"%i9ɏnQ8GyuQ ǵWUdw6
ob3\% +s<s1#F~DIA]]Vh|?Xċ㔠>Ssܻg +îr1gtzSMfA!Y\![#rxo ǥ[
>o=oGmwU7Cl +NgxMKOQ4_N۔Y+e%j5:'F&JX~3ŎMulL{{.!Ԉ|Qz_t!e/ArvAW}]v\|~D3%yÇ>I´菘d4Y{`z:gqcq4z e:!erv7{Gh@,sZbS#bFfz8+b{qOH +Ej"RΫ9a5*U2Lٿ!xQ/RȐD9Zp0``jVQWZ-<`.-T0+Us,A_PB)`3;hY͢bBCyIB)pIogJ9\2(tMz+|RjWUFpv=+xUY> BylJۘVx[ۖ
mgWa&,kfUaf.*L2B"kUB{ +WhTa +VyiRXYLx˛׀+FPTn+\V契]TU.fI)μ,Mm|%!b
?.-0Fb=!ȥOb?4ΠkKHO8N cR6TQ^v6 +}*?t9Fmv +J5N:憙5:4U>C81jeZUͼTw6^]twh@MZƭ_NwܙlǎZ'V%!@$$ +ꞏDI+ђѣZ^fae}Zp"?H%zz=ɗ2$ς|
tm-X>~93ɁkXy+S!gd?)OZ%1:N .%lu"g&<ujG>:LӐEZ̖ Eb
>ݍ'_>b>LzMzÞa~{Rlx\k'xq<RLQ!YE2"|:ը?OꋾvTzU + +W'{bo<֫`q2܊=|7hVb!f+'24e<sd*u3-]zq!_cԒqjwԔC'zhR Iqk^_~24!|G% B*LATR'OxQBZFUlV'$|C^I$jv&MPJQgRm8놅.y냛1b}Ym˅ۮYzC@3-[,! Νz9P
y+bU' m6'i!!9'd8F5YMZ=g,643Op_
*)hc6tUֺ9&Ť][Kpn!|~# ]gJXaTVz1QfjfqS[DwøKr\'&ss#P`@w(IsktcSXV¡C_@UqoJ".֖K +RQ cþup]sBx]~A72;y^}wԯzDk!f3amJtRhDjFҮa+r .P 'iPΚ-$A?`)̀=g%!ŧgg{bu͕)d[CρnveOhȌ8v 'Q[
mTmD2`juf瓭Vb
E*(/vLT%µhpLA\
Ko9La} +V#hu8o<:6gu9 +V8DAB
=^'HZ}H58n=yrꠅ pZzvA6 +Ҋ!|nCZJSXǎh)uw!Ij`A[q6=8 +0?@A;ƿӫ_c\6AIn3k}3 +lhcȷUdSXDMʲf7,&WV1#B3sx
@%]t?l,Yk%hV=,~;:[zƬ,rL-)#I@@rt#q`l_-]snm78> +o`Do'&a܅{4#JY@po,;fDr\ "0 +)^ +=R M +QL
I=rѓ
@s@$N:1ٗ9F 7dC*[&x/ʉWM@ +ss)ܭY{)T*( +6iPnIҵę&zCdѰD B6, +H$H3DDSn坴℘*G5^v}rCHyDFrG3$Դ\z}SoZ|$+Y̳;]GӵTwx1^;0 -yy--ƴ;4gtLj! +LӚ쁄9UxB0?SE#7I#{;0!gVևDB_QR*oQ0Rin"W1&TB5D,$8'jilFS^YrS'[ +֪ڜnUy硾/&Y+ISvn `3}[ +5ҏŴ/<wB+xǬ7#J,&TLgL%zdjkGbrۇC&GB43U%,+K"av`9%iFRgnvN8^TvFeTmFrgLֈ.I!߈<>[`( +aܡfT/ 7.;Xl/oBY.rی4CW7',D?Mh GW6v7͍F}dq\bˉxL Tdn/#k׆5os&W^ӹ3jŨb] rMl5بBu.rVc7qwnA/qO5?×i_\r?SBmM}ϖڼ懀JI?I?h<7?OGljZ<bOYIK%rS7iXXY)Yvd>_'ӹs狕ɭà]V@lxvHnHHIY]r«5tB*KFlK8V}+JRK2#[{aTߘϥZ^Z_dKuٺ(::Kr" +0陗\"M̜X(A,^*ZIXUn ([م#id1Xtc^$kQe*:L(#2PT +#
].VLPi?NzF`VNj)+^D}um-/0&L J+YYl)ܧGrUY5i2qc;-GcZn,r"~ng1xgCc$ʫ$cJj<8maR>L}W8ћseLS{#}007C,,1NU^F顭t\U QX7 +]dlZ_svo/+?_[ŤPsdF!<g*e#NPuL_\*[;[Axnf]|`DJ> Iup;o4LoS*E)aB!2"7 Y~g f<[ݔ^.VnE>tVkwnX_UjSE>DNKu"}<.Zd1Lj;SH.gg%6vau=?bT!pЌKb>"|T1b[/t;5;5@~e;WhAZ4.6O鲿θ
FyObz-VppW}{\2h.Jlܷ鍆\A3$ [fVLm,|CoyœxNrd`Xj
ғ'[IX-Xå!;>\fr+1#WWmy.tA%Ȝ90
}WG|]TA)ҾI +0LǠMRQaLK`u:h*rͲ_AVU0/`*ULB~F8ۙjK>t; +ԋN?"^CgPk
)X +Vz{#<bՆ"8>6>ylXWUO9YZ)Jr驕@J軧=>\?ӡ6Jgˑ<B֜NɲZ +]/1fqqݜQ~nu0?P8_Y̵3/IMm}͇:4>X*,?\Iuk˿A泀AxkG4&;niwر +Mv0E]e7ۓ%%f*I@ؽUy_31@^L3p^rzROru4G]fPg#yH*$G\3B!Ⱥ!ǼR;#⚭9f%g8ǐ5v3-Rْ
lbNvdNcn~F"j +PT]KM|J_J/^{oTpb*[tt[i^,w:Y^-ivq1ņ`)B7~Oh<J-Ǭ*^N* +t +"țbyQ*c(PB+05YEIn_M;|ͨHcg"`¬{?wM elgU]>::CV#ha%N5x^iÃЋ/ɀB/@2G,Ij~;Yh{*L1cUq}L]Y8-:0+y0)垵_(nafLJdlGQHԥWqEogJٸZ(F!4E#*pӹt ưb]=v4jϝ>,P|S|,Gؖ>5;rhHRWA{;$;hKDtfU@m.ڜRrҽ7kacH}'gf0^Pp{o K)zw(7|Cln"רJ +"hB: n̏qP\CⱿ%~><=gv~?.#W*E.+1?{ވ8T\&A
MKmo#yaaaI-P/ ZT{Va6)헢q\Q'ROy4x_g@IGyc<bGA}qn,]-*p.;F)Pp9,zIkP`=Ϫ ؼ>0%[cGiBϷ5Yd.Z7_=`;щ,3l!^V=,Ӫ$)Ņ4Wq/2巂8Xw/1N+Æ`jUjN]mIwb&8bkp*F2C)ggTX͐Wo4oCmX@~c|UsOs +bYȷl[%X}P +M/Mc +Tz_6Kd`}0PJdx,Ph?:=ϝ|ŎB ]-taPŁookբne}?dc;>uyJd7U)GɊ-aW}OW+Ķre͑iPfMHޠkIp +JRu`:,\}B +xmr^l'=F``Tyj/n:#@洯F# +(&v'kXG N-4R!P$5 ,g=4QxtN߄ҞWyD|ڀP@1` +Տn='qKH]77 + Y8ԨP֫+q$$ 3#8<a}
QDouIN%gUu-ŵLdUbO<vyy?LW'_noK~}kv3;5a˵սO!t +?Z~rGMX'!P
GLrkgQ)W
q\ +<_ilW>B}ګ'
юP?nW\N3?N]|;c +y+ϧwYhVةIC:Hd׳qssI&96eݐROzzn,cnI +msZ6&/Wi`59$?Ҳ``PwI;{7>;ցVå[_p;QC0fWN@n(@CSi&C}>e +3sYɢ[sa- .^f%nӥ)&
B*K.¤=veyZ +} oSe>D$Zpr3LB֞J!wHԿS={HhgTi@<b7,?6fB &FHimaFIjkC`T˲.yhz3^A="'Of*xi'Ƣм3PW9m!e̟KkQҳ_I +jMuE.7ۗӴ9dUsuOV0IaEooFHan:t8!zPR}UtIC>٩&bx.R)_7t,x`O|/f:Ӌ3kj3㰇dlV@/MQV%NtCNIvYl((pRDw&/8QC?(T}ak!7(X1`Gm"Ɏܟ1*35hLtF#+W? +HWk[LE`i%"yRKv<dAwfԾS/k_1<JG{^y\[<ȩY$O]ZZ%wl?xp+=g=G2c~O))bcX,TnxVW9'r6-/7dˬQ2c}CXVԉN1B_A%6 զ)ُeI4&N>q> 1JDUB%G9 mlc'-B*!ȯcDBv +ZV45ZذgZ4A~tFLYd/HDXi!OHfvk=ueΉŘ]и+dH +r;˖sM3D eOP*oPZ' +֚vg?ʧ/h`N3ov{o=ѩN[!zLW?$Si68=UENqƭNg]۩X-LwijHt +-V9n\/c:] +'S +K=@_&B*KM@b,ή52I݁j$IQiJb#f!xO/ +¦[kNWK
geP'])$k^
F4Jlku+Ћ`{bV^>ß"0B$OH +4c-遳 +O6C]xgމz2 R8Nsο()AnQKHRA@H0o1 +aC2/>Þ8YcoaG*6bo+\ytX)G]b=f5~*n4'%? +
qN1!1Vљgh3ьtgl~@jIԌ]6{[ +Qq*ců] l3҂m` p62.7#7<vN,KhqЀu)uaj ^!ٳ]rw;5BwP5B&tBkkW3NTCrљ!і2]"Hx5rYV +3%2z,"B6KCi>"`/XҤ}O9h^c0M=`m +B~qa14peSyc1WaGCw=Myz5 +4"U7 1ҿk] j+1B&.hL̻ CwOa0s-a(琀!C?aR`~{7P#Qx8w]Qbck'$c?a0ޚ4<\ZeXc^+P(Ϫh&kt3W/=]+b~'s;~WoXjv~8?\,0vڬ#I2'
zpZ' x%kM;<3e:*'Rmβ=sBuz4O3gO0/[ia8 ;֧)_v\Nni_tTxvjz-vcR&pa0>8UQg$psjq>rjl
g.1MD +<`&dadB3O}?r sXk6N)ƆZ;U4g1ح5}^;;</ԗAKb!63OgAD-Tmu;_Kw"lȥޫTSUIVk.vcSNUߎ-BACBuFBCVi[6RySiR!8 +;dμ$Wż. HC|iN_6ah6 +un$gB/bXIw4~(m̋Mt[Mm0Xy'DPhࢊ+{ͥ+wK(ZhM?ͭ[.k19|! 4WF2[Y +:VZ;~%ͯW5աT1e2%Fobc=vタ=ֻù ۡ(+vqTn'VH koKNؾ%)1C2L{0FR͒vI]>tZM@eS>1D|3<ъ,3gAɬ[HrHD"R:Gm/]T*`L(a=&V&`&mn +N'+on˞hdBXChalٹ(Ѻ[cم~uQ]#+)>ƐB)*2GAT:zr<8 +jBB)jg{Wݎ1d]1l'b+-d_0vq22ti̠VRىt%Iq{e$]jx> +IM Rק*Bo;oRt~]yn|NSi駜͜6U!;ʷ^6âBdmM^NÑNpNQ."]Щ|9>k98H8NQ.1"nr.X,8]'4O8JQ;Wi6:fkmq8Zu&#~8"ǰS6r*EVw5b\w`ةvkS"#ij<ϐ_dٷ|_SIs@N뗬cwx^8j{!YOdD~Ky0U6ӪT6#7H]LI:PcWi
w2Ŋ +)Lck) +j. +CL*'0DPw4wNU}x\dn$O<H~x[*ZcG1/ ;#$)jOm4AuJI}]1ԲrXu.WZ,7l ήԆakV1Sk2Z?0Fr`jBL_k̪`gRMd5m nMBQ-0쫼yJDL_aNp]J/8,T6S(˘FR7AQ-;G*6L-U]rjMeU(Fo1)7-9 ?[9Ȱ|U]%m?ObЗf[\R:g+|PV=pdEj:o3H;1cF*Wy<k +9orH}mOb5/Nƍ`M
Rc`6ĖƪFgA3m 9R38nt4ry/3)2_4VXuj]λjFz1R-jPBqW
=ckCqƱn% +{ع$@I4Tǝi TpR)id8]gC= +%H宄z5ȨO/}VbY9y5qRݖ
n^-¼\$1]@`kC0+WnRp +a5'x>.v
c.־G$Y9oC^xc/@{ymY$¼
&l&۰!6`״ ]L
AxyjP/8C +/L(Sx%Iv~h1̗+نMS&9m%YC; +fFy]=tm]7\:BJqo4k}Im"4>ۍ"n)]>4Y{T:P8Q\1̅TWe>nO8po*Yy +pyܘ9&uWߌwL]6G3' ĝ9pvo[-Rfg%T_K}kRhN* +#P
{~bß=dA@EՅ8YOii8q^XB;nZ|F?%iI}Lu)M?zSL>I˧Wx@um7*D|b8I?tDNm
`A +c\_+[Z}FK;pbRR#0A:>[|ݡ`e%t7>U8@RQtA1'!b\&*!aRw}^]c(6V^|u91!<4+7U~VzԚHC=}i(ci. 7 +"kOl/;AZi;|v圦7"7 $;`̛VDU@Us?bwׁcGW;]I,`6u8J41k/ooJG`r+dDL=yR$./*M8ۀLAD +!esIf?- .5-"QNl ֘?>SC=i"ѮEP.Erp)15D80(ezs;6 +6x)3Pw/^[3K x $$AQi}[x8]ON:]jXhaۢ gd,vX$ӼZ h{nȘ-ɨ2;z3GzK!AF:<搱p̝˸}ކϟ{ɟ@92HQ#]r069h[(B DSX +so_gpE}_TG?
k
^Jcum2(Td5@>;X)!L3R +0>ߋg<Wl)LjUEfI;Cơ{wQ.Jb~N
=?]n"Yaq xǭ ϸ>9r0,J<"GP5<FYIsv ݜ3Gڐ_OjWi6q+h:jɨ/:_K7UIKZG'r9{?aBvˍEȌo8ci̬%0vxdZ~
䍨woT=6ؓOd(=W]
dݳ°0\/e-+(J.1%[`ԧODD9wILa]Qǃ
M@|L)jq{~ۨ$,lp_'^x=/ެ>6#0Hd-/UThjޏM) +{ +4#,`d±/ïLfg =f5sNI4=1i.I#>A.+
2,HoT0tLhfWf6ك~Tv2ـ!>нGQfBAONFnφMWa۫%YgmR^ T +k~@A]BaVyEh G1`H|cȧ秱VSĿ$&TQzz0<0J9řAhAψO#k¢ Iu[$x_')L&#˷]dJ=6nBTBE<*;2sAyqQ85Ë +/'(4o#S]Ull(V +IW(x}Y_pϔD>[kn^]O"zgnsR8Χq4 +*fuZhX3NS,^6cI&UM4 ݆_.`>I-AwzJovTWqA].6{ȳI 2+$\T>;o"3ko^X.9M;ː~dH 7̸ieJ{o{pΥ +w!0OpL:ޖ AA)gW rJxXEU bFb^ƌܨ
kY_n?l8;@x=!m^rL!ɻA4/cF/Gqf@@`(, 6ׅx1xq~
ֱ0&s s!=`l2J3bPxzHتcܹssB)rOv +b@`)GQ<6P <G>;A~A1Uk<Jml!᱅a}sz_櫷KTwX(yPSq]{[Z<ZR6)tqGEnF93<Q&ݪȔÍH;4KF4u;U64+NzMj8'r`HI7h?Rb`4HHI_MPLkMG!.;/ͶS.gcVҨL)JΆpl>`rWZ-;~,gΐ`f:wxd iEs6U~9Mp|L2jUmT"ا.Gŝ#Xᚺv<dH:epnS!oԳȾ6[FJftjY=5XJٜ˗\ULf}[ly$Cx9!D q$C]eߋ^miZw(2$ +RAl~{YA>>噜_NN~ϜZ!_+A Iůad{.7m;e\[{V5&&1RֿmU\Vv_A0pLh\6aJ&0qMm>C#WRshN趋X[Ro +d4\`-3bw;<\<LJ#OʃN`BCI)-wرw([Cw֣g*hYۙR_e!doQ1+C4t
=xkQ|o9tzpZaNlbMD$$s-
]rhz8U7@La~S@A\ +vnM +B(q>W6.dz7?v#H+/X<ʏV{XC/D|;<<ue
[6z- +92OS6Z``PRڎL/z}`ͱ?6y[Ig
LSwvx(kxcoalO( >%gM5T
' +1A_k{D9+rDK^nՉ>YwS)MH:s +÷4;9L\b>4j+s}a k(PKLsq將N@edO0q)s7Frc456:<gl5Sz;[FsH9~W/1mQ#"ruJbнQ!I2͵^
F{2Zh@l_Zl@VYYN%9Ol3¯6&y3 +J0kx1+$ AY<IYYnQ:(G5F:w,z(蛼yS>gg7ҹdJCO}| +<8hb r( 5V% Ңk!hZX1MYߜ.]}Hu)W)YbX }DɊQIc^_Iwy<--4d=؇;p8y3@әF:1$$TVZR' +Hn8ǟP&I.b&mФ@[G2dK;iXCu/xog٤#g]lvXۃ#A+{1Ӯ=]~5A +L+&D221ӷ#&)҆9G(EwysݴӾlu8ɿmrR_Nlfkfg[j:kpzuW_l8NDfqT[@\FY\bX2?}<r:4?c18<9W>o3X9+zcqߧŇf~4㰵/qkh_EIIi|=oofM.Qhn̰jV[a8%n!{cq7={py*x]$FC
J%=jzQN7j*jO_ڥ[> +Gv㕎c~ld#<.I]{,|Z (ZD̬}ouO[=tv}w3~ȁİ͇7K$аvv3]6Gt~W7Is|xv|Dֲ̺UKNaէ$4>6Z^=B)d)aȭzBԴJwK}}ŧf+]+Csh5NÄM
twa@n:dy=MzizyV}X߮?tzO-u^ΚoesOG+@n/.O :0lP]=<$,q_d +x(zu3IqmM{4g9E.s6O,wyyW-XQB0-yQeQd%/E)KUҔiˢ,˪x%*YJW&.\qQGx==nFmnՎXp4ў{.VI]`k[ҍsm\wNv_?۪ݟϷ}Ӵ/ɛnv(7clPJTPIPKSQGsZ1L1,es,g+w\pny3x^",`!PB"p"(4T2ɥR*V2N沐)J)*Ur*W*qT3͵@9(u3t]"aTFm1֤&30%ZfVZe5fUJST2UNMj4RiiE2g"tf2Y,ϊ*Gs 'rg]2\ +Wv~G$h{A\%?bXAc%XfvRb?9尻ثƞv.pFpV8U8ISs` +)aܯ +})l +֔"d,5L]9`x3TWZ !oZxJK7 +'"m'h"M(\/Sd_R=%ȾzJN}I"IRSNQw_1;/oNv%wJSʝRj/HD@R,D`:%^ fQmhPMnXWVUTdP""F.E*E&E"ed +('L"JRՀ +7`
_pTYwq +_v(;x%!ɞd(&ܶQve{>a-͙Q"=qƷgY,~q?S#WۅRn.0DUwe7Pc<AbwRT69I5, UYkhylŚЃk@Pzvyzy~!#AQ6LyPXVo$έ(yyz{|,/KA恅.0TiHmJPF6(N[QFAXI>[It% oĂ-Q["o=B<nӝ!PS(#$Л<ڟc0\LOĖro$yB[ȾΧ#n^V%ڄ%4:QBpF]Ǩ.̬?˯m`^$/'(p8dA0n=̐"ZY&N +,ݥшkc׃^}u\q۷l5~v}˸2iz|7o?<~'û˩o_?x8
'|F5C~i;ǁ8rzNJ&WD9ǟB80ex&yOݙ4՞;/*ac㌉{Rc#txƇ#1^d1 D4vGL+:%Lzxu +!ebDC\36sT"ᘑqKhfj]jL
,?שGJ;2O&dBZܯѠ{Bu"T*7Tji٨T0YU)ZjhʫԕG@[4LĴ Kl턢PɮrgO.(_táv|xk>̓W}@%mfڬPWUPVZ4B>bO+fɫMf5[%R\0o[zZcUugתo-܊EڊSըZVtK2Nr듕c +vTAjCk=V55
My?K1mIodv΄T]]jGX.zuF #|KU>V}uP>m?Y՚/itۻn. ݇OD~xq9!xçOߨ+!/f'OlX˖Q.|<"]7[yvt}6>h{y~篸~ʵ70?oکSp7(]$0:'mh%#pj``E 8Ta' UdV(O4wYgǒo٦r
FFf:'Lr,+(`2If@#yDE3#Cx2COBȄ0KR5 +x'6ϨQ% Q5cQEfӌ*ePne籔gIco=k
ڽܗpS;rg2ዎxwr(ZPk8ᦌ0 +3:=Uw3l3mBߍhآ!NUP`и#G#h A%S +s3Hv%DwҖa1P{`]SihMLkٻ6ldORq~ +(Nw(]|.
[/:MXgi:NIC\aPŞ?gc KJmJJyڐ{O\Yp!o@` HB+V&̤B" + VDtDEAEEDdhDZD͢6^2tMտ=MaU\կJP;OT.jKos[].h~g^nn?5/߯.؝K==2.`355[Ӿs +Ϝ$PČccFX'osj&H]䵶YɺȢRGtwغ+Q7z,ZsƝ7_%sK|
^e?y_iύ(Lp'BZ@;3 +ZR9<xaPKa(֭hJa梲[;9ؑHHQrSM}Sj:eQTbWmLM/$O}Y4k#e-n7.O9u}̕u
miFY^YfQw:"~]#^y2G<^.gp]Z?}vYI/I-rj?KKiNS*lt9
)>E($\Рu?Ts?@ɜ0v:qQ}1=䢕MQ9LPaa\<$P<AOPa_c{xà_H|&)S:De Qaq*UFjؐ8(eFf^~d3VԦm3\Hnp?ҫm7#~AC?PGI XrMbk
#]dUu<,isw}۷yթk'vX~W}HM}''uB??aqǞy.̧-|ÿi\Wzd#FSp7L!͆33_mMF&)d\xSqZX蘋=oi%bX(4!ޯ$
'ppCB
p<ϿBrOwӘky@ut{
嶄Ӟo:M[=hI6 ˾b_I|KE\ʸdR+ڤݴfUɫRKvjVrLJ|ɴk%jMKk6J,Y( +tD-|E<EНU^-z\ YY[1u\XVlk%B`u]7@픀~ +kPD$nJPrΆn(Z2-B5>+<*]|"P5BB"!
Fh<6}DKu@I3Ib' &$zIw48{2bݏWWENӫ?T~={ke<5qy'o}r'57b̡H O,$/.<ӖS4=AwS1OuEeUŧ\FՋ4fC1?4NJC'dI9Aݡv +CdwS +7%h\;-λ&hoJ:ocL3Yw1m96%7ץICWiўӹܨb'?oo=ہ>Q7nN; +"IAZ.l"`Y @cQ`D5EL |Hc.XCTdO[Eqiˍuů<K +isѾ倐Ѱ +LSLEcxj}PPܣ\ roۺ=9)1:GLG荐!]Ło_8$Jlh %{[7(1 +K4AUTe6|V'W+8IISB(ntQt1uE1b-z[n%pE!A$-ο<{ ,7
*XGأ])Jrb0'X$ N(CzU!^9!#N(9c +iy4Z-@#;5aE(n,H9Xf-*XVDSkvENOW1>pѤ5L\NOFNRA.5Ru'"(<La.q)<bd +}kA +h]`uRg ^Br[gљY>"~8Ud(3ơN})Ӯ&NZ![{ŶY +sz澳P +f`6Gk_f8oN
vj2̸M2Jjڴ'jRv%7O :Ի= +tuX=`d"Yʭ<n0B'4
^jbj+Dޟٷ2$>[əToC +jI +0 "5OtH +Ǭu/kTq!c+@,\[ʪo!Mxߧ/gS)ӆgVL +qMz8N8aH|hTD +ڂwۺA-<Dm6.K9!avڡ)j[hz(B^f!tRMVS{D[l~5FamvkhI` +pKpYYK#GtGf٫뒞b(QѦ-v=xyp-vn +=]JLdȿ&z?7UþyF)B&\j#RK $:Y`'>{s8'x.>nK[%m"q +]Sv;azeA(sQ>$O?&&p6!yv:Z +P|}6E:ޛ1۞sW+0ؖ +Ҁ<4^[u2JG:c}\yVJ42xg֞0t(&hi۷0N鱕U0vEk3@;4L08ј]_^C!*ZCr0CL.v7ضbm +C{ծxwh/YgQW纾xx|p1G3D;|=[ |'|RU1+z[fUmJTlg^GײeX<Q)y.:Qg +^Yy1ش
J:Dzrw], +E[kYw:O; &BsWzŖkE,oS5P@vG%Vv#Z)@*8*m > +!( +R[ybn.Q}{sf9L1{fm<"./-@u9>\Z=FhqHWm" +0Haj`u~F+8=V-8㓎K1xLA$)l.d͡ysaž{W,
{3AXY0FA4V
W4J}[$\k[. j6`0r:0+#>hKR/#m3_pp
Y$rL !dCH7-=b/Z[yt Ӭ&XQ_rW1;o"*ԋ`X˛2.܀&h.<W%g+9hʄ6pV W>B>I=Aכo}_Y`=҈">t.]taԙl)3գ`#qi[N]sR5*kU:+6@{*=YyGZ&m\XʞZy[Z8q,6b^ǝ7E<$.vKBz ;D@3%ú +ZxQ@.}dx9.` +cO(ps>N.A١+ji^K3{Zq,3Mw01I5rqk1o\tN676Ki[a4)n܄;P@i5<ӄg.ןڑ$IV }^ľl8UYS#َw|jy+@<5X4$pݍR +z6 + ?{x-G,vH20V5h+j4 +F5Uښ_d0 +"V#yj6J< L&<0O
N]>W\gyNl\j.-.xR$!$u, ʮ l Be쀇6pG %Zme=֮yCoŷتDqWny
:XMW|5A{F֖C/ +.p;-r`cɜW& +`_ǟq= +D"Pb[Xk`e!l<8D%*
^,4f{(9 +&0"E\ψdERܤz?"TIw2ZgOO]*-&̒Z!
y^xI,hUXfa0"Iz}Yp._i4@m7}57<'岝XNu/וiٮ jVG +x@*y8PHp# +Q+GwXv/8/$TGCBrccYjsiaVtYZ:XG=`ɍh6u<.#&eQtRps 8LzhPV!A[[< F1Ң0*?D/IみU&JpNt%6*ڋM+_X!'8v}uV{Zۦ̉ +r[;}K1z}Lӵǥ2tuX ˵{ +}1,,ALVz7t +:nd]&fg>NՒD"23Uk$EYv'eZ5z_`:q'ǰ9,/}f[Si.}A<O8ȞCx:\u*6E:a)P!_ + +2#);} mDIA,2NqWV)bTKJvǴ14 +"YPۋ00:S))u1VUxTZיǗыTcbCRY1 &7C +;b{j'ZR^յ
*f Ve5%auoSl36kS@gR{xk z$S.z$ZʙL=(ӊnm΅*;~T5~@/iNv>]*\K%\~(s\OkxWs%mF'c&z(XL +tyxxC=g>Í.dʬ-V<j[{_˰5Ѣ[-HO"2y.rI_drՁRLzh']h-Ň $@pܹ֙aT3*bmIX0Az] +)$>A{ek,\j4:٤#z.ENhE0nQu6NǙf13),8SfNk +y
[.y<{hܖSjUK!dp:-fJ"N>B6rށEp ZFJs=\9W6OԂ۵gP>q[_ >+wu%Ryw_YG{+\d³mz{>?vNǧOwo}??ןϷ+E~._???/|?{/@?_5]>??b}hdDduuv/phD[{/VN 5 mbZܚ(Au08<$&X
.݂yHP6͏4^%WHPk՞r/k٪r'u8<IZ<~j@Y5d ;첶.zha0?iTٷUU$ot+6)
!;hՁLP@(HV24̜cY@(V3fٜ"
|yX^
>`[,;A 0zK> Vii92UWE"&|ʕ]$fX(-NZ-kMْvG1҈LM'~@0<<*){|A@(fNTy_tE-)a7Zqq@Jis$S(v(m2;&k>ښ&141U)(0LJb]
iR-OyD&r4&_VQ7A +H|W;r];\x-~bOt04dޫhKl5/9=%/8PGno?"?&59=sp퀻;N݅.{?oA4;?wOwk[7ݫ~5w>5vS^j-w Zg}/r"z"=/铁Wmvcҹ"<D4aGٛ:>c>lV0ٹuUQ|5m/<ff(wnLގ쬴/vBJ[SX$ OF9@6n +-aL,i +3PCg
Y^!I,/ה5:Qm ت +둍?LkB`)+B0 +&B)O`C,:Aצ6,s{ǚ&@!(ק$*c4խwdzs[WN*t\TnV*gKĶCd`
jߏCo +1'd8E{JF`%H*[it, 9JMQFW +(l wLHEڭ OnX{f|ڋ͉&^Irtl( z<V܇(TUJ +nUm)+%zjuVewƳm&чXJ#rY*`xf}iȴ#J +ר:ԒK +wns,4> v$Ynvac.O'^<oPԽ3Væ( +Sh6~lm@yDfHJϻbp5jְ/c6=Bd;ֵ1be
lӢB1yG| +>a`Y m=F=ؒ--a< +o/?>=@kKXr/]+pNp؆\`K
63f+ +<kڑY!laH$Hp^}wW +Gxf)Y${,<.'I
ɓ[+ώ({Wj/`bR9yf8:3.nt)jy<[=Co1νc}->'`8F~KD'ׯ |!*Aۡ &lzqs4sQ4HbQ-S)7ZZB5%.!@-\Hclp~[xc5a@Q^oiEزIcE#ߔ9 +rQdԼ{o}xyұe/:!@9ɏNsYK:6S|.t->緳6TsǷ˖z#m_ij99tʂK- +,xF^>,i~6'<`XVM5?)Mχos~5-僃ۘ~W#*!U##nL&Zvp:ԜZ{Kq06gB_쵙i;jA#Έ +1<a>VK@Eq0AP'tfQQ 5g"v` +p8
6x6]\1 d[Yq8O6vLZQU5{ϭ3շct8q_%qWP'0[516V:&h<#@Z,#&rW86>vee>kYdu94r!~ +Ύ.i*@VЗO%R|z)'95fh97Ɗ> jvHKP??V;FMLl0~u.OW<oJ ?lQ[䯿9kvcvQ誥HιD +o\**j.X1mϸE"@M'z<]}IF8#xUvZ[h.rt%xc}ߏ%e1)0v ]#Ar*e6 +DbIS~
p +@|-N>}Hb-RO!|QyG7V#6:@` +} +B,&a,ܦϤE;NKG0/GwʅRG'81ky0 I'>l +cO-A8Vaۚb64j^)gT +pr<Wa=}dJvhf+NmGNc\7&{2 @
Ks/zm6Y G峤X4IJ)_~k~@b1I웠]Qdp
@J +Ћ4 +2TVu3[T +8:l$(B9+a&\$&-_8+S;pT?%m4qy.y۠={FR$Ԥ\s6P$_ +o2A0
L]Q!n*C|AR=4=$̟gcAX' .Ta/=1*,Qm:Zu<߫%8ɾ=V ݵ_g^%Un;}l,0RXOSC˯:7il- ;Gv6ax B%.y$Yt=4-QqO0RX6:Q֦vGFHqQ6kn -6O]\l2rN<f +:(2bǹҳl`j1ۊs
1.zE찦5J +O7ߕswE0NqTTXR0_^S[.Fwk*C?>ί}Z8b\S6[eX|EI +QB? +1li<(U,hw-ZKZ'}8x2Szi!!ɹc.7+p.M^]rg$nm{N,+}o[VN"%089Y$ +{3KvbV*m~KVgKg#}h}7 SH[#5ٖ +?V#m`#`M]mgXL(.G^(0scJ +DY{.(!81+RKgrcqWH0ւ^Q|NӅҦ-Q1&b2$uHe:4.e{Ux0uZ>8YJ)W'`7E(9a7>ڳfGO{ + fcυZFLXgYby**E쒐L"'86g%Pi:I ei'JZJKRJiDkk.`)N&ꎋ|Vo3u)+ύvLwlR&~5LhI)qt+IN%3ޠK<e#ò8ȮEQNMa +x\t,C3I%U,}SWLwbRq2my}ĥ0 +,5s,`/2pd*;!9thFv>x<[fu3zcnlShNJh<+嵮tn$]2WRtW[Ҡ\d+o<ʧSטu5:JW+=︵"*vmw=WОsy[4@uǯepjp><"n|s| +X#].W + oG(.
mٲ4b=m}쏛mINߘw +7xɂZoFq,}$ڷ'8د?06=lϰYT0ֿ$;%Mo$6fqW:Kp|1<Go!6i\l|M3/t}jp|8hyR +،[U,Vb
i +ґ-?o3w84XVR;>sJU:A +]ϒ<YSͮ[p5Q((2(:A=dw4LKu'vTRޟz- <P.zK9d]A~,u5ܕ:8uխD +9r?Ui^^] +`-'OvcY۰xn;Y?5(fк,"A`ɞ
$ԇ-ɋ + +fߴլ]e>]Vī=X7+I:%zgLCP,Cbeحբ +i
g>BJi&ÚٹZ cbОPDތW]ء̻F8o8a#lcr#no$-=jCb#s<[.Vj%aaKEgO˳}̞R$֛
+AU,=2Xkq''륳Odc"BlTOӓ@iɃܵ{LȝT%zA .??4^7&ڊ9=`jJu֪rUEp5{(¨ +A `6udՏw +-k: \<2VA9taնζU:U_N4ddoj Tc ɾ6#i QL`0`bR7=fN[>:9ZdDDRn7FWejʟM48[¡ܠjg
M0f. +`<J@gy{[v#6dߜ.QZ4hs0kٺE֜#{X + jACڻx6쩞w5Td5 +PZ=^-^xЮXm/GtbX_Te
(64P-I(,\Ӟ?vPxQ +>ºb'c*iNijiv2-Q.Tz2qQ%hjcVIniIҙs+S,BrucNT7z̼UO+PjC.~!!-IyvnoɍE.露>t%9C|%xniySpVb[}҈1Wg&L]BPx-z2@t){lk!ŋo:[IV) +gAvL]1`s9ͬ^:#>7JZ1HRw/n; TqMث8!j8xv;A`/Mѥ9q4V +гgIviLVH!&Ig-I˯}Q>'[-7ng}jM%s +mSP\L.p` +ϡ f~$89"z=^ +dx:HIk>eO?Ld%Y;:X[":4j'p둍X։
+)TT[}'5�x5nYxD|E`*]Ug7Ǹ$Hw솶
Ԗv:);M}Dž{M+ +=غ؝4ɶ84l<D&RdY +Ne8&ͥ +s#*'[yp`M/~Mnl$iV|9Za,V`dD1{y*O/>rZ,>>OI8~2GcgxyxVhYqzv}r,!=^lH8Lkҋ +XsChҦctp +Q\}|E\+/` ?N.6n + SmZo=mq}$b-fӌ[Tt\;-aP73\vtum=f,FI*iT^vkhF'C%]sN#Ժ.F<}dX3U?OkU \h%]iU-49rtou(Oir lOHp^MߏD^Gh˛t_,r&9Iv{` +@S:_x\;MBsH%A=R(Oۮ* â^O0"pkq!^Z{9PWV"!d7I W+>o/L%T;0~4ܿy\p]{<6 `q+$4|18b=.WcՃLzCzn +ܐ#?E%8<kZ1rF79m\7jmF +}8ll~Csmy8Ki&}l>ՄQܫK<ڗ٫LM 5B)~Նzv>eʒGǓP~._P/S#+> j;Mȩ/B 8V~#BiC3?\e3;,MmƴZX[O|?l1lb? (K˪f*:=B5B+BL^9oR,`RLV04E<fG/]`$qc +a 0 kzc
}㢕G7Cw*wEoyqB::M
dN +H|Wۊe
Pҥh7yH0187ҥv؞`lYS[G<2xz{z1/lۇx@Qsgv]`a^nk5LpvM!)hnZ >:ek56 g?vpkna第k=ïx{>US7<YΪ~@;&lL.Y3"~5C |Ņ&XtiuM<hה^fII`!< +V.:DTMi\%7?xq'+p2!Iy.9&ۯ^ů&Jt<{r휜1ΉoU2BH.,?gIa}|oo}ǟ?#-`ø}GoFǿ +H@0`4^0$]')L@.&n[ +FqO +s<yd%3
t4)W[r +МAMBl$Nn覚l$ln +vZu=ú]4~ + ~?s3Ij`icZK`v`fń!\pҘW%З>q=a/xB}
!`40Q]4|@+m]s$N-:t.iLԄՄb%^4A[SO6 rhd=.غ|udѝ<Y t-}D?WCZw0\6W +g0'ܠ?g'[FTuњw,k$sx+^Y 2cbHEC*5[1V[ bIf+bY4[YED:x$1%62M'=@C@yi +ŤfKX|&=xC!e llnM)&@>)fޔARX&YK^q#bDz?4{xO[лz5u%*;1+g8ZjpXC;;f.3+5,5^ds5f>+ׄ헪kH<ͦԶ.Eݢ#rNg_tQ1S.5}:`i4S~Nv0ASd L!TGfk*9G +S;b~XCK9r +pf +V"K`DSk"쁘)#R!=`FtC>5NjУ`e02-N})%^ +>'Q~qB +2HOO$kU2)E/&Jì +ܟ#
+RY8 AA
1VH36\ +'e7DtU(1؛sK@?h-<S<t: + ZgWHX@Ң&nN^),a.6;HJ)qʫ=R'e=̐dh9k%'.
wI4wUVwb|F]\ 1@v#*"/`jnB%Kbڮhų8 fFF0ġRD0*v`2A +^aZ +CJV<:&D@(k!:ײhYgQMkP7h<$*(uy6t ]P`8~x +`a2 +$H,o1VB8k)''JE +/ 5Ea
Ȳh ,]P
6&'HȮ +e)7)$9Ўāh<&g1v 'P&BbVc
//F(ǑBX[L"~|Bj6jnw o8aWmxĉϸ
`|89^إIJ̏fG=9|^r>뺢~|۲⪬W?]W/ +9:yٿ~}ϧ3:>tӛ몆oW]?}맬>>{]w};;ovC^UQ{>/i[EweSgf|ouvD!Er-/X202[/IW6H3wy}գ^q[
ز+|F3 +k4Ų=+b.:YX;jǠO6،$3i6/^b^枱$,6v$]w|Q4{(cD+ī{qѯrr)IF;lyfK";ϫ<b|anwwM_OaEQًbv0]ެWor{~Wc0Gqaa}=\a~{eU12L3<T^6<nTfG9kXx7-OC4.~Nkg:oU1-5k<#rgOEWY72Jy:c!Jo!NoT?R {?wP}{{JMzcihm ٷ,/&yV# Zrhb>,6goWe8͛i</?}9q?^4Kfa>im^Wy/bwn`͢hgR?0OŠ*Yk=25r] X^b^枱dmͯ3^?43_6 }%U7R+سwZW7p*ǎ=4ٲ.~O9_K4-{Vt^WTī;uѯr+% ~H6gln7<V&7[CtF>=TTy6m>`_W/˪+M]̛EŲiUBON͋j1UJw#(bӲʺ+Nw I/X(rlǎIx8vkO<o1fe=~!˱S<+-%_~=vOo+&^uo/ZF=Ĭ.6ү82[/.~l)uuS1iZNlٕ]>PV̈́~5'~}gm
֯wG[zQ.UE-|MI{:ّ5ަ~yrlT/k"ӹy>꺨&EU]ӎdOmX'ym$Ͻ"eԜOKg±dL'2y,.=68D++U)
w!Z
[Av#AbIJ>9WxZP^eK}P`P~
j/KV%c+KS X9Ӄ>bir٥TX,KA{."Z0T +Zy]=/7vOTHpS<`:fjڅZv-11:lKRߖt +xa^8a
#W^b0Md(algpN5||Omy?<T:^)rv
qj +ՆHY>d0Jd=rD-֤cRzŊe&Q +{h#Oݽ(:eVgaq,%3pxk5_Xi_2k*ҐS>іH[UG*5/ǣV7oVcYR*&RWR좱nHlτUbm~SߍjҫIvF@UԗG
- +,dB騍RpN{}V;+$DΊvVGdX!-?w>;tagTl +.M%cxxHm8rŪ0|_s|tmæmް*nmtNm X/y(b,e\e0^g?A=^gG?PKԂDZPm8t s Pb֙o`id̫4>Y0<rf+IhBy M"w»<z_1,?6i߄>IS9UL[ +c !AU;!C\X6E
ޞꑍ2x ΣOsV]$ST,?mח[%:<תVZ J&pJrgJ?]iNЀtgYUj~"p YH2C}85WO®\A^ W5 +2PYi]34>瑧rϚ@6V]A`Ætz|DAّUXJedڔX0zkEcȊ91.&^\?OT+cς 皓"Ho[Uj!*e0FDyYL-j +
NZ +}$L!\T1a)%* D!.ey`ZoTB<V>e)(^4?S'\;#F%k`U|s=ԆHOz +Hn8 2@w;v6H_ lw[ZL(RC>闒 JUhK0icl_*}{Dkrd],KALק<0\I+7c4[6w!5tn8^{k{]r|)C/|.ryC?I䇯a㽃kcbX_4\W$/ZXݰo^W{d>#f%@{&,4cr2wN|&7\ f&щD.pq}rRCqK֩c5\`KF4*
OFmCk1V0s3E,!rÛ$ . TV7^U1;%U(/T*%')XEpc!i-:5FKW4hp_(*=GR*r~ؚ:>ZW߰Z+ʬ +աV3磡S||#x%z{FS%S0B;B+g*NTZ/t^Y!k؉H"+'raU}ibдl Jx"P6m0=RB5I" Q&AUօ2w@.\V=+rOqk PuC֑?;q]'^ +ل3/ l߅ LYDV= +N
'@8\*r9Wa2ãrL4G 44乎A+
+o:7scW +qIo
<gzk=_Z͆h{ +if,P͐lfC4|a#tߍ@|˩HGȐDй?>ESfhP>|=UׇP+υaUhR`9UVRwөjkDŽϣ{0e["}znAHV,V7ۖc!:}%
H[ +˼zߜf[7Dcה>M5llE1 RIdM,lFۿP!eW'WՐKB^0uo`ZPqxkyo,qJ_v0hPRM}&,Q3V@tp +kUO%f g_ٙ1ЇOF阮]a؉H"֪0M*T<MR|bxjE +ô@`9UVRwөCE<)&f?Uz\s+D-b) O"F9E|@6&FKOv6`Z7b|Ad<j]V4(9^e>b9X㮦1Po|]Pťs|G6b__
7$!
oH|}9wNlr"OF+9/ l\$*ɕMTjp=J?Wa2{)P9FjQ|!hGawphj@К1Pg䮥}J5yg*(pzh mS}?upҙrzz +^A(5ˣi*s1Ϧ-=UgE[ݔM+ի~?5D%#DF ^qτ!{~ +TE~ؚH5~w +k]}g- +$vn/]*ŵ[|P_wA\Zx!_:Sq Wyz)v" bX{Ue*a:4@<_(n4zMq
]ԠPsMȨvbfquLʮҐ +Tݐup<(5~0:l?:mEcf83@a̩Z3z"4hzē^j7Y= +O7RVD<TS& +yJ1ΉMSNdX0JF6u=%:e7dP! +"C`6$WNG}}/6Q$HK"fNR1kb +AKY{vv枏{fWa{4GDzEo[/m`kvWusQAr:x{MzXO +wx.'u?ϷgG詫<?M6ɋV2D~`IRъ2Bu|..{etNʨaẓF_}6L#/ t>,:W>MfrkmXshXpt2(d7ow|Ed7Qx.U4nKvC[y{ae(?(V."~k{2C
_NX!hjH>=V$z;7 +SrXMJQ=jґ$HlV6nlYYd(&֗e7FYQs%J:86QQЁQL)9jgESPa3fḛ:9#ecAu}t +3?b*&͑/cPիʠ 7:dAA}BQTmJekDR^zRfI,`tªpܓ3WB1g8]me}ş2"
"#Yd/,&Rҍ@X{6RA%L\7Rt>c^Y-Z⤞nپ둻D1yŚzܗT<U[J_iX4GHA>c.´_xh +F1Z1E"leUR2ҡB/V,SE\+fbpPgYC2&{!(Z'xyM-,uAN|XMJr`,"5ȈM=',WvP-q i!"ELJ>#].m'#9I El]cUBPI +.P +op>-b|GR<aU2 +uir#q +HWn~Yܭʺ~iX[5X[a$PLq߈j9~1F$ԑGddK6NRRc\q&s)G1dZ<ZFRLS+9)F|nI
c15,1.RǩMp7yUuθW@*܈>~{^~8NŕOW?8{kO`wyho?n8g|cz|cmKV[+oyI'6:sd1TDHoL]kj)UIf)Q +U%d8ΩƖJ֢8a)4h*[kZ +ug"D#Lhf#^hukoDocd®$&.c{pP(M^ST[ZVՒl5=[P*֭I=Ԃ~,|UD +RJZsȉ<&
ES$ +هhBAã& +k<?n 䇔mM~[ |f|<0
J'T&-<o<Pb[oM6a<?H
+( + +6B4Xs +[ +G%#7E[Cj]MC\
W[bՋ~,aKejDR-VkŻUA??=!bR30=ɳBT8J )G%nǣ>VY%HüyP)ȱfACO~+#x,.vll!|-6~
_t{nrйw]t"cRgu`ooh# +&bshZ猙aTT&(gT.'/qsW7 Tyà̢W' +x:w0HH<#EP $ʢ"k(u*E[XU8:ktiT)ZaRM$Q,Z/mE.P[zC\ў#ya%{fýfH,~DM:/jŎ"e
MԮ-^7.gۧsq0*k5kFw3Nxqhʇh%; +u>9'DvthpGӡu 5E2_oTufi?ö0gV[GE7T*oAW+v4({1F
+9E4dr+$蕈GHx|7I3f>; `Mg.wQ/tqwc=_\|zӏ>9T'rD@^nqGy ?xc8A %1#4h>kW
C_Lj][jKO2i&Ky~v{)l +UKEq]mޘa9U^kM4rlk34هzͻ`S)9õf>]F.k +;rQr7[L
m\{
H3`:@Υ^ u顩Ay%_f{a%VR#R6q7Dtlh3OI(`7ǖ.kyՁR#3YԻҫըlwPDiJ{1xy(.lm5eWmzwVzhyàNtM"|g#hCa=/!U$&~26}=>rdp3獇E@y1KZ=)}l|~2Tc!`mŘK[<Y ?6]?6VfgPi$QB]bqvރekXK[j^kn4yuHQ!^݄Sot*BGPۘe#c۹- +p><4ӥ,<ƙYx)n}W?a]T}ǿ__|wwݴowq#^?4vsO?\~*Mʻ.јc^ϒrKE_6
{ЗwW?qW7oܿ^~8xf_}8͋_^9~̕gdz[3e
lr7ny_yhKn';]"B.NYBKe +\'?%{v1wNGހ#}+1-1-gu7QU9*;(HcbP`,hbSȣ72eFIBO*%;Lhd%jdXS!\Y#IoP;6Z[2/Xui ,#d+{3%T-jwe.dޜ(uZ|&JݲJ"83˖5S% +!k E
tw"drq&,EfLBUOhC',$-Q@){JHrDoLbIIg +k=sQQ!H}%.2aP* +H%K)f{=% +={ +6q6ՙVʳ2 }vR8wkH'x8Xj)P\^]ď>\qYW`.24{t +2Π\z /kGɠCv c +Ѭ65?)hUSR + +spKkYhIB,M +Lw-j,cP=ghG,_{9ZXtb܊&HZ|lSʺdЖ++Thgzus;|ф\<,ŭ +!Úޓ^aaDb{Ro[}aݿǓsP0E8R. ,.)`=VXf\>ӏծ1PqM +[Mm*|fPosi/dԭ:%Uƻ_KG*9?؉ 6k4 +X1*Y,͖аh 霭!x<epÌ-KaZ!gTj>Ubjinjw|7Ӯ`4$!T'@{w^R^,i/[}quuFo!~:3Ψ 4ᾙQȿIs`9MIeZ =xikLO&ikZ{67ʖ( +gLv@Ҝ}Lt0/,Ux?Ӌiߎjz{Q[3QpGRfεn_/ꕶjneb1wXsLBu,Lǚͯ@zc;p Ysţl)&\:xLS}}Z)6Ǻ}t@LrQ~V#aAT
<8SC^,K~㇟QX[2%RcEnVbEjf@Wjp["/aJklf phFd +L2^&W>Q,ؠj4o)Q)u)Md_3ĖSOD*:Jդ{Y8[B@t4#B`#{U^~ݳL[v[[W3[<w1h3ylڹf70fORV94}()ƹ$2az&'Rh +T:輂".3\OPK{̡#<OGV5VC9Ci?=L[G~2o +5a ̛ +OjW-MuznjENȊN"1.%v +[2z͢tk(
.E*0gQE8 crXuC'55d36v32 G [lRE|-7M'TﺌFHoTjBG'c9%8͚}c +A--rBj8/QܙtbAl~UK!0F0GAhg_ȻunH|/ٱ%ɌYѯnfE;3I8d- +ҵ+SE +ˍ.`Gbl3V?2[gBHLc]S`t +V$K%Ű;+("rӚR.
5y(eWQa;Ojʘ4cH`umXo%HJ]ƍZ
zͷQ]AiLPe} eS`~ OdbLEWXCΊWTC_^Eug2r7Wu_! 28 \"ڡJ$6v`*1
60ЋPì2C- +ٿ?o7|>O}|H%]t?}|woP^}_w"Uc*]Gb) +H֒|m%A2T9$zwuzkLo CfaE1ȜBO@Ili$߶Yf^ +1Pd
ы7jiA:<SGAY̪ԪL+Xؓy?;smW!FvHȱ=Ψo^(VRIM*i#$b4xI}}yYZ&U4 + KDѽOO+2 T$ߴ`0ΠH(f<GVIID1wJ[My$Dwoc%v9$$fCA:E#uU=ot ~Ǚ~e+G_6Q@k$Bui6jk]{ +by@YbQ:KuDjMفU#Tn>Zjb9'x4'< oiK 5Gi_/)rO~JO0daT\B23;i?n姨+F$3Lq >F_SR緫MQ1J9ԽL
i&]>7]EҍՆ D,^ZFwvh%vhDXsz=K{7\TPfyĢ@eͥkvӹ#}Oj½NVD3 mXD#E"+ˤKb G[.ID-Aޮ'-IY:ph!ђzCM^W-A
SRdGM4Š1ƇRiˀ3Nܶo@T+A*ʃ3#[0/\P]+bا4K4s\kQ9':z "qn)pޢՃ]Km}PSI
QmcRVwQOKX +,O0wŚPY<N]TvREJ4W&>N Gd[(լ^'ڍ棐ֈ$,#,M{ROeJ'ĴTUQhY1i@qujR{+1+ )y&"Wtxj&.o:-ǕP
W]*ڍl`|mdu +bѱS)[*^Yrٜ$vw%D`$\&CCp@V/8U uܻj2,6z3uƔ3h&m2)A{|_9{)W2~哮ib:gk^E}?MEs>aZ<fI5ەiTAgMOjshrq[_Ψ;WA^MAg +]DA;á +E///Jÿ /' +P
^T)߯WÓw<W!R?OzzLO(u+#@w}/ukk^q##"3RE&3kTϭ#qT_>MxcBt/j,q*y[2UGXۣ(~qNot͠xHwR!=0}`yvaj^\z.QӕRhC.S"d6ltB|#ζ9 g 3h2$Dc}g27~$]z\e]IrFL@]gr#tZ5魫L3^U
8VqKv5 0zjjhTa kΗs|kv; +*"bcLjF$`Mrca/!][S2`7D1ٓa(ӈf-J$.Ke"^em"*v=>A +ʿ&`b/?OI}>1??%/_IqoUif + ?PC\;iСpԍuҖOjJ" ^}u팮k3Ѡ`8:LŞzG%uD%Sm5<\Ll7t1,/WUtȩ-IbwY;߮:4>תѲ:+"s~j%֙\B#LGgt9*)[,;{|ˏ4K)9 +G/>'_ +xL$?ZZūҐEba\Ehfte>eFVJ1X+w.ᅿ +KJs(5nIt»K/zYx[)rҾNfR:9aIsFn +`\A9pg<dJӓ_N/2y.ϔh4-1di)Cyz?A+GU\%DS߶sei]yXĉYLY!RoIo-cw)}9ފo3e +|i+wp<JwyS}]ڽOF5:<+vWК?oUnjbm5-qm +9l&b:L?ա24i$հb-TTBgI,jFdmX3+u&v %5ڼaSu Bd[Q\:ޮ)`9{EgKݮ9NVv5+2vj4fEGѨTs+Z{mū)5ﻱcj>b}^ںhYl;`Fg^ByvDx;ߌ[zw\=_zeq:$s^nrMͱ`>uf>vw`x=j,p u3+I1aPbMMMJܷ)xGIl{bl,FfU6d\|
QCOuu0Vx@iMm@I=] +r0\Xt~ԃof&60?CI]$z`I0>~CV)b;}]ga3SҾ0a'S>ظͷr/ +GZ_Sp3}%-]{2>l4swԟH9>O%:DB{Z&RIGS>J1INB-ɽgbtkfG~C/+>AÙdHSx$)ICgFimaڭA>k;lpD_}.8*RU[v*I.BUbluv?{;BIꛫ?_/뇿cٵ"9z|xs77}~ڹ^E?o:~mڏ>D~ar`r60~0):/>yyoo~o}qwx?_w}Wxwv1<>:(#7@w1J9?CTcES}g ^SX%+Zi3kh]"ltK)+BK7tucJnSJ袧TrRu/Zv!lmj߰=|.+y*WFx+᪑UK
ZMnWv1R #&R<s.Q~XDm4&o_qs\X?I[4^cC)H +}wu]0}P@j>K*u-B9</$]FT*@Ia_^]&rNacJ~DeVK{PGAe$R> |T2FP*1Fת)0M
((CS#t$$]8؋l /z]UDӅZ&]M=)2'KO8Q:9IqE"p>Ksmcu$͡z|($O01m`ݑsY&)D6FJ!5=-2SE&+OP4cZ1VC"1ByY[cr|c͒c+@k7Fh[(#;\9vlkj8:;pǏ.T{OAےa)Eh"lo#ޱND]-SIgbԡr$x63,xHW Qn +\90x%Fs >E2Tm^2'Te{ـݎ4׆pQeJU +9rʱrT 6 +ԡTSP X)
O(D(`3A8U:=(QdT1W%1[hSj5wpBhk)xs+` 1#" +3t +,fƊs$&g'BrOٔk&4qݕ40ISD+Va}+Cd)B; +kT/)#H^]ħ!,ż9"?|o!<leskŕ[o>~=ꌣ{[OӃ(ռ(g +H.-6oՊZP|g[\c9%VF$3QWtVɘKQ]w2Ro-_P"N\sXR*Ϡ"8xjPEB#KR
%p}s3:X߫ j0߲@qY^j߽vϰ܉p/{j)Y]
jq5vk]2%NR&a1TC|*kĒ%.ٽ33ymp-#MzJ}BHS[O$v?Utj\'˖ҨI@q&"!hQ,C7Jlsnx]) .r/ӽHVr>*g2qV %dغ
Z!wje6pY3nA ꑛQpDW.Qੂt{Tp'EUc^B"wX)5-wɦp|8 9Xe+JCa}K#(/jB+2Qrl&F9e +-VGh"@Cٷ\)"`^s8up1@j=sl* +0bOb&ecs(¥EAq:#yl=T ӓF{cr[Qt +=8zz +LH^ +mNi u4NWW~w:X71paGBӜ0gqjP)v +@IKJIR=T_o +dB8tzKjSzj5ZoW'sF2X
?l<^3%[٧ܧ2 6JX6g?39n&#^ct~iLfcܻ~r]s4={1Uj R3V'4_?)\/bٿCsWV,KrawƏ
}UVxZ?M=yV`C]Yhb/{UD +Zi>ZC~]s*n lSƛw2梲W/q6Wɏ!Y^`nn<oǖI&;]2>S{=\dt.)獢TuO%0qğ`ڴ<:?No)FK:oK㊨@&Mʣn +{ՇX
ѯGboq5ҲGc_ +E&{Wj7]=^X[ugW&rޝz$&M%):e왺'x%߅^ +urΣ1}_Dvu\6n\|`рh*ꄗ/}E^f& +|#@$ډDG5}RjCMrtaةj܃uR6$s{R}~Q@lE][PEM^TWB9Gzʏ7n'̶΄'R+ +t]sGac2\$dPJeWYu=wB#hjz>C{㸵Әϱj"g3︻|FPOhU4A`aP[=RS-lm:ݐt]i8krCl.ӕ۽pyކ0͐p2#kD*s)3cy%Dέt$9e)&[$$L-3@<d]J` UE2vES\e B:(N@ Y5s-΄q(7!ύFLjm`"c뇈osetgV%+iUyLdws[n[XCY=>ki 祽֓6~.Lj=lM4_XO>!oY*~D2ָJap]_[rf+֫.ԍZaQ#r7duԔ4Gp͔J͵6( ϼZ1"[&wyG+HH94^8uB^cALRxc s_VY~tp9DPrbg-.:hY3שڻj
/ŢrjеN +w7C +K\2ʹ3vH8B%òcq~=z7Wk#ymn6.\iV9|5G[3D#rʚ9+Zb&iYϘ)#tCpIW +&Q\ +/\܀qg&"X\tȧ\I d耛Y
?Yjshsh.8}!0V$4gjP,tG
+ |:t"I&܁R喍%bޝ
X^*Z! +I)Q*cU.
i)4&mV_,V|:֫":5qm>Z +kBX3i^ *S +N39qkm$>rË\<_j5bi20 {=V<8J؏l,DF&8ߨuЁ Q;Bu[Mb3rZ&.C34"&\hˠMkm;L]=*bxQYgP֢1'ނQ
?rۺ)ޟ/ +6bQ-d/% +8 +&G/|7 +E3&5Xɳd +LLSzŇegS37#<q"噎ѯ8-x3JEhiW]%P Y+6-Il{t2 E˱@_HEmk 0&thk!I|:z3;:3C˧~TY)C#~VG8*zadɂ!| +FtPpu^s<@g!ApnP+tLP̩x?<z,N&+)Q/U6F-s)g@uRHڂ,Sc-+` =GFXQ21ΣWYT-w?uunU;n;U =!ΞD=c8[E v݁FH+~WE+,a>-c"@*Nl*Y +L3@b +5vI4ptj7PgJ]hF-q0t5}X6ZA/bZ.e&rׯbԓIw4H :a㝹`
* +dOY2@ 0(1Ǫ 44ؘ6ɜ
1abBO[(O')s_C:og1:ħ|ރkCɪyf5[,'Z߁Fsx^5e|Uu79r\Bتoxsl3vvw +F)Y{&^9#B6 ~Ϫ9 +C#++FUI~,S,NLEQ(gS>T~~ҾHvf-Ԭn2m7]AduWr7yiz3fL*ngE'n$蹵dP}XQ(lecx!h;hll%SzkeN=Hk.u{/9*+njp\ɺF>FtȁKx(HyEQ~;+DTfLidz69s|îCɻ$tNOKFI'l!x1oFݮ굦O:AcJs[(eUā`iHDt +֖ܔ&Sɚ5|ʻ,λ}QѠV{0fT̗Q'לY0IAအ$Q
_;uJ + +b
0=1q0d mhDq;ՃU朎{OE +>F0 &kcM)ZvH7n<6Ƅ9Ҵ5TER&bࡋieKq"y$5]ͅ
mNBiݨj+H=+NvFȉ#AB rCP(F v0EJŔ?KVi9'U^4|:HMsgDtƣ!) @]7!X0T]}SIp>^6j<ZCt"#+xItP:ґKAoPLl8y@S1}w=mй$o:=HYՔvZ[V́G + (92R[H!#jT]3ϊ`J,@e"?e`:n\ioPׄ0ԙ*dO#1R{<!R^ p% +!P
Q]k+hۂ:@X!w:Y[.P ؒls. lt&fմQW:QVE;xDz:ܭ2飻snl^ +RhCgG> +P1`ۄz``OQoX&W4_mm4}BD-Fo0u87U}KZ!h|؞]3;T" ڡߙĶcI +iAOABJ:ع[;V"xH6Ć0Ub +NqR$r\t7TE#)01v)FOlC\v*4=`&D>3* +OZvT7jQ;9'd/H,yty4T3WDυM/ uWd#UUUZ)eQZ@e\kΡٷYEDܵ*-kg|3}S;uwl4"^LgإͩDwh^}DI.V'צ1mvN`jU8͙CBixj%6^$&*L_QXms,"l8<Ź&hpaJ1EW5vLފq-
!x$@kFH/y9՜<l;VL +d-Kct.P"4Ff'VPmOYsҖSZw^!*\7uk%}:^{E +%p] ̖ +V\&kۇ#EöRx+jKzx;Ϫ#5vvzX$H߭+1!^jugno$lvռrTdM]T@H1/-~Ҡ1[u6lbwSXU
F{3nߒ0Dg궭cyR-5/OZk_mkN_8Ngk?6EW.YsJY9` +Hn^@p7d5!dM
\.Pe9"K,-q
dׅls99sf8ޭYm/4m7iPw u͵meVL|om[H@b/dś)XOx{%c{fONi/v>-pV} +ɸrs˸%+C~9[;T+nkXsˁqۺ7^^Xyb""u~|(cF*"=BzNBH|؍ާ}X_ON9'i9qY8jkA sDR%>w%$ p|ʎ?zQz9o;>wvB!}%3tEy| *9 v) {<{-)npv`')|9j F
d)=>bBY@Zޞw?<qˇۋo +2+5#Y";(1M*~DYЄT92|4PD`T4o
@\-bu4F3wJws!5aT~Mm&ݵ=uSemZg" +k'{dL$vdU*.0 +NXTa +coL^Q]Re*[>mRrx +qʓ f, +-n4c_"} +xJ>, 2nSSgi:hCILp-"o 3=)IА.iWz$2)*%"GihL3hSԥԈJ!jnXL5j6zcz`ެ݀kHEg!-A;8#ͦ +<t=
q!{ɢV8D-]ý*;4%e*Yd ~%DƯt;A"yp"uB34%kd%ہDT +SvoX8"
]!CDdK+Q$cUʎn+!R"T?KT{[_V${!D4@68JXKR,k<'e/!o=qe%TK^oOBsCyOt+tN^%yozӔvB[7@#,Fu7}Nk1plW'@<1=~ +Cvp"|i=To;8Ji&Vτh6> +(ߌ8 +V=0`v0 +Ug̪ ++yVJe#ɮ&@:h-J(Ѯ8o,Q-yXT#\w x1y,M#.4Y>('*)h~;R|K*)=a+@W*͖o3%~Pi$(P,OTmt1S *U5:L;'S{e-3]:
\\Я
WnvTc4r T?SsW "2at/-:@5JKMM.; NK/XB=ZYڽLFr%PT +25 u':KH6Ndn?54L=}v6M<jiW)
8_H|P6msJ#ELWRf +!o/'Zc*aYfnkZQ_S/mU0iGTGLCnl +"H5Qb~ޑ-,fJ@ +VsX=l5qiZ{zޤ@T}ٹnrDwdwg>3XFZ2Bw1 +O=O_q}]k3DoGmSbMDC+~Zo.1@0QS"n7A58EO}(~P:YV?-qf:@gݻBjɴ9z]W=
}=ӷSUE)nhbע@햫HD/7[iq!j#ZV`9Iڦܮ1R䎙!ЉJwAW)+Cb{zqP_JA=
BE)qkDd72d:XG10 dHk̖1bNN B@{QYz`hi--VHhZ!T5jot؆
S^$#õg)?YG Wë6xc|};/3ddℴ1'knb,'BמZ }M}yJ/LZdxeQh&
v&K/H"hhv/^asC):,>EMGq{ӫ
nO?mVЪ9RtMv~~[`SS#ܙM7n̍)v6azlG,3r*rUTḩֻP= _W'|H>"fj)2jZ$#Dn߹jSޏ%2kZجPFb>2G$GuiO[ҹ0z'N@uLOb63T}tIejyc]0ᦳۼa[|ci(J>fLVxrXq/Rv1laFAq0dm`QZ7O5r~`WnS`<BzO]C +c2QJ9\#(gnN
/c'1Uscl;!T[lI5k
7(c[tNr1j_)P@udVRt#Tw&q vT:z
H=2ujĎ]O9o? +sZ1<vK+DpdV/Շ1o=KE|Kõu$g'ED{wjG7/(=)JLb) Vdݻ +SؾRYV]R⁐sfϵ>qm3
oI-m!36f3
Ob@L%@!䟶<B"c] F~F5H/_ю<m鱙p[I88 KWCzmp&5UK"_%%$!H-i4n&MERN>:Potv +"B}2l7\EbiO*5%R.''{g<{=
h=)ʑo +SU&mrFqsB\1^y^2.T~4Jto"̸9`!PLI kE+GABXِ0W@/!*i-VCpAeBi46窙HY''%cm:ҷ +Č7bc6@9EcIoLrK)2L +0nF@s-esa RSAx0jn@_Yi}jkdߓt\ݾn^q]bkrJ}J +YhLU-{wMzur9|~:Gv#]*gŊQDm^|-)iOYT7Dr#I>>}N70s_^t}Wu(Br +9gBa
cB 2S'ڱ|7W0_:t'l=[w1OG:==v^fZ#;q9Z넞9MDG\:eM0_(&zҨ"B9S&"RC1^$a + +95UL:$=GA]PJ\ +XMҤZ莛?%7EwLq._(( CIK2A0K}\˾lJACz S;e&ډQ"@-yJ=!6#PJS+@jl{0Vem0ߛ"i>_ ׆%d̾kRB{u5|hif(qү>qwjL +z*2Ю(PP +b),M ^
L>\@ qn|p4cZi`R̈]oq"X~ `A e@I0#4ZN$ +0?`L1OVE1Pp|ph.-ow!˷HD
rL/sm(8 UTUԂ3n1Rrx7~X:?$_eW u!j2d--, +Yꔇp|¹F ]ߢP<4)Bg*;Q8>} `aH5#g2yYc>KO=BFZb1!M|.S;^X#md3T5iQV~P4$/_BIh[AGPͫ\9
iB6s*={Cs)f1 +E[8#D:3wYw2]26Zdg8[POg?P@`Eq5s.7C݃sxQGN|KíL ++8¡*3xVhQޢ?+Ҥ*;|Hrݾ[8yUp(~cGKA>c +j$1pr|p<G< 5(6]> Li?5U1BѺo uX=1iY3JE7 +ϋ<;u~WnTc9b©n(ɬ7>F^(ZP2yZα;a$^&̀p ՙ"yaUD +YY +2-ө +IU"lvzfqܐMwLy>DŽBV7+Kz\s.Yx-1gS mvGk#g!șOibvRWpךC;#dq2wnߜҜؿVZҒd-ˮ3L%-Q͑ҒUQ<7=l9 +с}(WHQġKxA9s۾0y4vQ't,P +03yٮ^CYxlr[Q $`C>[JN%dB0A>kmU;Ʀq0;]҃i!d*C T0#~)Ysw0lLevD}"h*IsyWAC$5V-1N|9K>c:H\o8P7{,p`1-̜i;UY۳JxC)ӵCV%Q2|1%eCfw(Ft SѱDȎr~v'>-U߮nE:MhƠ)Q@i)%Y;tOT\8MDߦq&R.=NXg!Xp)~C%ļASlk}'\/ȝaH)Xkӱ_d>y3>q(Ka\3G-sl9B9^w6N|Ӑ6I#yX4O\aNˋgs5f
z2f1wz3 +gǘ> +u>D +uf/<Rs;K[Iͧ ?zsWy=S
m^OtLپ,%skV2M +( +{vSmjZuf$Iֱ]>Em4>-yqUPLWrigWukY(yv~32bŶ/W8"ZJƺU8xe0MS!>vGKAp\s]&;3lWpn!vS +M +QF81o|q LQXqocƻxT"olj&;]ҷXN-0!D(.!گ4sGxJ㭚 +@})Lsdu_(~7j3E@])`|TgC.5w9p'(BV)ΰ|np֠v]l9C#/]>Oҵ1s܋y"tYשpmJZ"Mw-;n+}geN MrX_@MMt#Mx%dqA +` u.gXM ~jaɰXNnݎa5'}A-pM.b{1.sM,?
xr{woiz^KؠoSZNK[<Sq܅rE2lҡV%)y&`a7pR%ͻd]0cMpf, +2 +)3!}CHTsr9:MFtc(I&v斎4i({ECq8(l2wԖM4>aGׅ@h\u'\ +B;BSEKŷN,%Ph\'*(vnɶ-Ѳ6թrŋ3Ih(Es2@b5 F&c#RW>N +c66@A+ +/S_롣n{<}r*lpXBEiI҇_Opbo0Ul,fhJf<s=e"<2b<sTp?m3.+ȑOuVT/}*k!s:Va)Ɣ7!,sP}(>GK{-Oe5&`זC)ܕdLKیo)TG +H\vWTZCbe +<6_5s$()v\4'8KAQA^D +#CF +q3fiyv0æN"گn.w<`pfccԳRnq8*lgJ5Cʘ.l,a.cjˎ1lڢide,-kAUo=5Y۠h֓UFu\*c_7ug^"\*[>9+ܢ*݆9|IMsX:վQ*ެ +#.x)]*SpV?(0I_o@I+3L mf+clJ۸#JL/FHK}4г(n3ٸ'SRb<vE#?ê5%=ػ[_l4nɌU`QgLO3E]fO2hζ$xW\VCFCbզ Z4YWqfz6R<%Ԇ@4ݷYպ0 +y)-+{&^ PY`)`De'8P6!U"J-ߌw~/>eY3_"3@ NW?5`XbyObўe(D5u_ e>/fUֳ +56[)q{PmL+5)hOVPQTx+}O,w`DxUqe/a2*_2&4#,q]ITK]S/ȥEm^+,ueo5m4O=*ߔHg>[ZxQ<i +tHd1;fBqPp
VKC<4Z겏rǮl>Y4J_F-(7
!?TsCnUZci+^%ZR}@V<lJU9Bk+.aZ&{ɫJPDS?vήdL"r\]5m +~y`CGեqsmb3 }~ly¦::;ib DzSiϾTl8V&/udƪ&o̰rNWPbdc^R;KzC"u61*ʳ[VepЦ꾘ĕu`~%#ĥJi{IUsw0nCZ}pvD ok7$U@yp{L˫O-iO8䓓YH]yB +:aV*NZ^)`yClAؽA/$Ȕ 2LyūFduWZCnwUϜyʩNjᮡihQ~@}
A,q"$lgp!o*r=7_t +=L]ܽ +p1l`(vOhAlTvIu +EjS2eY§ծs9R:]e&k`xRxWG2~&.VmVU:;ـQM+AOr͝g~]S@VFJV.[ɋh(jaTLc(WO +,Jpr?_|˯ӯ?ӷ;J>"럽ӯ^O[}|{{+滷뛿P-5?(XJq>]t) + +@\soݲϐA792P4"twwl!'g@%D]:J`rݾFWasT/Y)(ur(`'ON +`d,ᱷ:N}Ē&5r3Hle:VCvrtNqoYl+qqoiD[/eǮ"_Ppe[#CLQ!,K,YgE<RX͓6>s};3R~G9RX_h /e:4FwS
*G>Iҥ;ND&fi#uH!A졶bfJ(Jf.5Nc|.ZW̒z!' 6&LH9h80[nR1g)YT^G&oi~ޅwCQ̻UjoF+N@?:إ-8BO$V($c⨦!oXXtޗ4a^O_0h'">6(opi︯|t/sr;pC y!bKu!U)"qmbX<YlҦ3}a<7[u$ I0wr' ي;N9iO'#V
DQ|-RPdpXu^0؊"X1 +EP;|g0(F;tSL'?ԁtn,*;3TSP\zLjTܭqRɅTdaLN[сd)N#P2jsC^vfC)ZӬ#2rbK!(ZU!K%b\ǚN +grtfQ$:ǖ* +=$9}khfdD6 +"F,ޞ.8"IE|*4O]ن2کLUQ
Vq#5z(Fn.O-^aS0\!mM1jY$}Jvy7* +QeV&^O{ZHCK\LL +=t^ +ojMMhX2_6قbi
Zny.i @:5W'=F.Etnw?
]7烠,{+%Ӥh0iϤ*fYfbҀ(Q;.W#ݳSXyZӿC(\?̺_ϟ|߷oXzT]ܾ/n}ˇ_>~]}s_~˟tKx7ˊ..r46|J$z9=e]챙p=$g&z!:či.fBSu9ELs2w57dsIh({D4h+kқBїghU6{\NVHx&VX$#JUP,"(kg~e\wPJb(D]$36HrT/QC8Q9e+RbK90XOٺz.=jk{Md(RzͷǷ/_ns6*g{ +k܋Z!]H/2V<z">ٜh=0gv8dT2ҙ:LqOWK%ݴȢމV{Ba%p\+&i +Dݪ +>XN 7bՂ5zJLѩyDՅ]*hjR)vs~q]Q j!$gb0q(-VkϷ֮_p?Su.{)Fg9*T|_"oAІ!}ja>?N5#IኯB3h?r*Mrv0E~MGRPAF336B<Yf+F~16jnqlҙ65@k%{P{xcƜ<뾾R'1Oi??C_)2&uwn2
Xtt}ިnY\`x)H^rVHl!9ٺ5T|CkѥLc_Ο@l[˚ROjWj3T\x5}U1S_
QS9#NȧSٻi3+Bijs[%/w$G=-\MHݦxqF1z;I-xRҁdzBI%Skyy"3T롽ݑ2Z#OM:t!py$pg5ο$2qh#$e3XRXmDm{=:Ss*B2l9bi{]Ab-h<Z
oI쩔*,=2e ~'
lFf[n.6lJZ/r)H*2.KCuÆ+f>qgT]VžxrY]vJ.-.`ĉPF>$:]bo>Fj+q"=Z';mbp:7y.宄_"hR(
98׳W I1^#wӍZ}R(DaeRmuob짃tu)z +^5GARz#{tGM:.VdqɸҷVҦYK/W?~|}ozT˫'dz??>xwo|g?9~^Ƥg_ݼ6~<|tE +O⋏x_ܼ|wǛ~_>ocx?͛7yygcz:|nU:ͫq<kz?kKҪ7D8 hI/p 2ѦQ_PYCfS58F'<sPEVig!Ԑe=N[](Qu5O,1JTX^ t?SIC}snD%(p&1ݰJk='e!|Ln
2VE[䡘fKT +w%DS]nf"{egj;מC:N"m4D4" +EbJɑ@%BԴFW +gysA:1{&U%7y|Pb@:"9eFRZ%?7>.z2AB;uUrT:|vWbYUҢ(N[rTU،]Uy@x.^CxbֱQȈ[1ꊱܸ8pr۸
KS]$RʌsUcSY#rU6ZOD:ҝc.ps,x^5_*_l83zc{X0E80m9J9TI" +aq Ѡ^KdqLc5SYmQ!BqCs }j2\$J
7y@ReN.˘ftRD1+quK%Igr} +|`:rJ"+e#%/O>*م7nw-H˙(yjCI.EI_*%@ȣ핞,IA
r*3r5nI5D߀bVVW;۴2Ch2FWq!Q\/n5
$Tr`H6e1v
a?#fU4p?)ޭ(_2ɤa,0L<X䕻)[?Fϵz&v*CKQ~9]C* +;"{_ോBGolTB7F}`B`ؠ2:|ܫyFj@:<UrUTυ>o;Kq`W;VQBWcsS'wdrt +HW˪]{b w]HN!`ό!F`I A>kU$d OݮXUkkG%lS^?߷>/?}`zrۗ?rw}/?w8{{ͻ>^oq~yMb]/2!ׇB|&\pf2̸ּuN/'xHKd%p0;V<L +鷄r5coz˼渗)<<.'pع]ʆ..AQ6fتe]yǺE|%+ѐyo3[mܒ"c#{̴E>s1i};3qm#z9Liٷf]uS3rW^Rg*CBw܌͔[d3jx@ +1"& +ps˺5&7^_~ +\DeSwV +`}
zI$OQ5`f݁_ +V +`X``Y=HBw8X1IbVa;m^J*PT"'Q%YN"ʭ%:{/q'`$7W/VR$5JvYKPKWSC~]샐izMگz,\}1F& +4B>#v9~t|UǶϢI]`j"XuR)S*B$JBMJNFN@0k?u}voac\-Ui +5W:^ʀ4§ lo`Umտxz~ï7+h4IN`Ĉ.'s + +!1(MM&k6=|t,-k19P)jCLKm`炌VRXK)S [/40bg!_ kMhf5%<Ct9 Jv#;t5r_ΝVL`dȿiէ$AJAnH'ɂ[咭ݚE]`?qdk$* +"IdHWEo*e=T&V9M +$!IdaOI#Aq!~o+zHPl%0TTۈ56:PsS]zGͬV=5HنP5>S#m90}icšSyldžDj2 +J(3<_ +bɟ"S:u?,>8IQ{_&yW~C/M\ + BSSex
E3,.%Vu+.JdABQ_Q#'pYI[Aͩh!zX
8iX ӈvt
ɦded-m=K z9m
nl2tӟw8KG4(s0IlL%Xx1l/zCjOk=j(&,n7$ +bxe/ɩ9V͕"R4aPDZon1ntOH;/BE`:O?{WMX:8md
9r&HGE(YBUQatBPvن6EInZg)&Vc'Pej.Tfi,(Y(o rd.0@B9z256Z./mEO5ω7]K;,ӜCJ=Y]-EsSu9<iyѥ1k7|\?;nocl''~'Duh$: + +IxDi΄og20B1>{ +d~6"3[5A`vVoᐋ%Vye/i))Ib!#KbT@lK6WA}5]sO+<6&ENj}xHI~9\?d+I-57yʽ#)(X+V%\.!Ezڕ*V2/V$-g|.Kw~ǖ\kuu +e5z,mEǰ1'tO2Lp|%N2URzۑ +1U)F{$(yvUrG0ÌVHWIά>˄1G嶀ibzI%:MHI\LR BOM
avmWu]Pk3jc<%IPl"YZb
!ɖC<(C"jHd4uS^#RzPuܑ%AVe.| AŚ" =:蠟H5)Uy#ާ0ϋP0*BJ☗mSe,ląN$ȊQܮ2"{Ej:r<W=kԡ9 V ƫZԔ{Tez[h$": +x5T
!;Iхh.4|KIePFC˨Z$WY=@C%.)S
Cjϕ0Z +m;yhaH(/9җz y\KQOVǨDgxsalO ^z+fL-UɽP8unrֲL(6Ur(콺s`ɸ$N-P ~;f>4^XS-:A9Efk 3EahU.`5 E$3I\J6Ri'.I+W +-"h@b@Ek]P⺔"(s?}arxut
rPosۖ20S%,'AIP[}: '10F#Y|Qnu[뭡Q}Cfq<۲A03.FG +I)]~StLjw%ھt>]15uy5! +3<FZџkt` gX4$R&a<SH6S! +6ZvrPg#p&MލsYN!c)H>Zs1!$<_9 kqmfKHo1qyWD#ŨH/ʣ$}e{r(1$+6!b':o:6||[H2Jx~MQ~ڦ+g#CLgwOdO??ܿp{OMNǛyy؞~|MWHǫWWevíy1tj"݁!
M2.in +_އgfYp|TL~[:>s]k[`{"!5zw{G1YڻT4M"X T*4xy +*C@ҳd *+S,%!X{pHM{"K.ǿ/{#?N.8?p$1@PРW+В,ﯪJҰaH{ϙ鮮TڐؘhliP"^ZV20ksjs"xq`5u{UJ +yf5R
9 +5tpf^ +y9$A!d/Mؔ|f)n/ԨQ +X1N㮦uRf?/G}5 +rűsej#fp0)g YLő5ҫI";mrCKNLUIC1NEZbWΜ6Tß3dT**W q;Sj1Lmhx߬-mej|i@NC
VDRP0N&)D(_xc}{5f!bbS[C~Igxg&p&2d`I~zI/~'$g~?7o<qO{ǧzy><GzOOUWq}/[gf}̧J]wHrV9RD7Hu-)Rjڴ{'gٻ^[AMm5
1ns9s,dZӡvJyIAWiaӁU/!dmjԖ>%&M撎bZ"2ġqL)aOfC ;[oҤt˴!XsSb7\G#*;<SѡyסJRA:lvKza)phNųQy||r1r:D1tq(j(\)Ȏ,ɕz .P}Wo*CcS8VM=rIR4uO/:Z?R3 ZeݤJǾG
pvvy|۟2Wp,@[zU +h#$[(0t=hvN$IkUN^Q@IB]
TgrvpD8[mJ@Zs67qK_ɭH&QX7(*POz<Ufz1a(DZoθ~\ @4x ^q^ftSD5w nYDS Pe(jR̚>A(L3u:En
8QɓxDlMH-D͜^g[2PijAd&rszw[I5uTӈZZzqVŤ#I\~SqvF%n5-sU7^Wy݇e xlD5BCĪmu8apbIrh@k~ho=x. =&GXpӏqZf[T;_u_urܻ*~7ajDΫSp`̌e%fAAW证[zE0ZXIRZa[T3C}Qeuv7rXҪ,= +@J>2X$A%;ZqN)cXɉ*'9ԒO^EfNW +s+3irìS|cGbEDkeųT/<+
r^:uA4^#/D"<¥=c^V&˂Ѝd^KNuhvE +7d<_tWa3QW3v;[FPhR4IwC9Fk3FWwyjr38Y$,e3&qڗIqUt7f0mIkիr\o;Cc_X)ct>T's,o^zx%jT>P*#O곟w J<}p'F:dgem7p#NN`4X'W#Ѽ\\˩vUMH.QQ#.P'T
''7j~VVt>K/MYGqFgΖc;s@vC5{i;2a
x&hj|8BGl +cO5<Ƣo̯vο̋ +oo??yx_xwǛwbn?~>tc,Ox?On0f.tԜ&l82]5N9|4ʄ"Mͳ.;,ٴwgw5:ѽlB2<ytҧ8$ft"3+n.8Cc
WӪj>lϬ# : %M7c,N*-7ȴII>8OVA!OV"jCG%86\AK++y00x}ĶL)hVkPY[֓T$PxI@kKyF:2*?cϸ4t(%_&Ke4P_%35mDK,$L^π +5GRR5@_y +gݞ)bO{35jZgN7i6KϼܔO1Trfv~Z/bYauyvB:%_Uғ>^31Zκf6`1M&%XF&:.BjzaBwskRzB>8CX7z3CmĹSe*~F;rR>vnKO;hZx WteaM@ VZ*GTfLi횂s菫Ďj%>My2j*q)V!+Mb]AjϬ8
ʘh#WFnܧvK5V(]`1<WGwHoFua.mzoN0nYvF6J:_VZgʑˍ |]@S${a3v:/Sh>-Uk%Eĥ+ +ohg|nd<ԇ(; ֱ8+Vh=\q*͐=xeb4!&_F^Y+G>{sS4HZdh:.P^#y%[6zu@r}`s5XK(fyWJZPQ@"k{34A74
.ac铳QCsx7,U )mqOM4Yz8|HGo9$gJ9䕃)u!{w8[
Ȫ$B_s}Gjf<к +i^L:ZHÚ3ۼ{82Z] +oKjB8h?<ĥ4]PL@R[KzL~zA+bin +NB + +L\ݖU]ҲA _4G;R" +.5x@)C +wl04j.JY|qr] @!拐 +Xdaȧd.ʬh9WB
&6m{z:y\Go[
Ye/hBwWɨ[W$q BF>H?DٷKOj]A`F(6Czƀ +vS$^E`=~ʀ4 6Y +W׳-\!N*M +n&=z)Ow< xӽŤ[Ug~>@%U3_IT"fI=aX[|pe$
C2)L]0xqx +3K
A6Ә$g\"+=fo-街چK3J +*a-grp*=qI,ϊ@[0.+ fU"$##lr +`ƒύޚd6'P_ag]9Xe8SD_mMz1妽F=V]d4v߅ZI|-ZI]/?9ųC+hI_===0J$1+)sK4L*@o@q"@mi2@>gi@Ԇ2q3f@49-RdPo0JBTuR WA/xk" +QA*ϭa +i
H@;(?eT $9i%y(klVˠ.;5H.uJ(ݭ_ҐiםNGg͠<{(2GX]a<Q"،wi3s?j%wPPP(DJ|xsbAmtx̪ +BeK~hy\A|Ko~QV6+K^Xd<cF7PE%\l?SDCo8bߦ8-_wR{CU*V_j +ۉ;qRlFWXtј]:#UT&dH9>҄% +w?W +2q۔ً
=kxa.4h\DQ&p:4jQU#4Lx< KE6"e3{vhq,SI3i4-0V{DҋAk߫:*晟 ̩l'O >IPsG <eg]fUfIsA{d[cA(4W9,t#U_EsfldwJ-S{Y#=5IƛeQA :Ğt)Ciu5dT.zoc!U ++SC^kF7ʸ,b.L=yxOȱOKZ$uIP[S151Qʦy>1"v,*v3ڢ!O04բ}E.jWUE^CX:Le Y!(HCj2&.@֮0,T窰b
k5$p$[M4)0΄>j]$tGP֡Ex@VNapkMI)Ϻ}XSmMV$VPi~SmTAd_žQWEP +ԌMØA^[6 6k2E"hnbŌI[nl4}8S;.ELP- oM3 mp;Տ MH4"䔍02d(+2VDtД3]Em|y!Ĉ7/mh5%2=pp_%TfaoA
!0ͬg-D6ΦldCˤltY_$\m؉ڪ}ĚUc9vkqK݄wFm:a/)hr3.S{<dDV%QyrbE~q@ y=#fS
?g:p(#6F;IT^WNq +%䐥bNsd%l*{2F*bH}è#U&XXIWVށSgHQ}Z>̅eRAvJ;U
96#WS/*G§rdzsFVgi1
x +smDv +KE>Hz9 +Rd*6Qz>5`VTQ*Up/ϭURi)!b@s*]3ˎ #m3'I^Rjbd ߟR-]12LԖyŖ٬k['6_dRbO,VS6I<VV6cմ$
ʀL9clC,#rOUhDkGxDwcBљU3t&{wid0QQ ؝i +K3Ucf 7$l&1r(-yw&Z9.4Y`^&Wr1>×r֕^*@5%
ŧ٘*$D1PNÏא5_#Rg7<5UۺDD_I",rĕ[z/ `*>Գ6sh&ī 75B[c< 䱲{`5gb1;M̒1*fXj$nH:*`(:}V0dX\=A4RsOkglo9R<=J!.2UfDn?,<7+\
s(g>%ѿXqS;~ +'-QܚzTт~vIFeB
?ʝ1A%Kr(Ta`Fbb +SHvս2r#XVSkW1r
Ro;->#9zDᣛ0fDy֣&(w| &l@YM@wơ +yw/HST +E{a(o:WēMRE]j8y!Mq
OhtPi?LH @UΡ'iB.+iϲ=}BQ%|dhŹa(5Ҷ RÎм58M=>=\-ϰi.1Kj.npm7%CVyJqĂ0쿂^q.;K`N~'5h +."Tm]!sB!(-RXJNcドS#GߨdAg5':k)ύUR4u<STw;rG Q퓟дZcuZW|s6BժySC>vtsnlHTnL#C| +mUЏV@
G.ZI1ZEzduq>l9=2K.)/z`(БE;n鶢t>])@gywlºلubG"K4sJU=1;P^n>44_wEY9
DBT*[^ja- +-}խUk&̊7]+NZV%xFl3Bhtab܍P"0##⧉{OrS6kG=T>v>Xtwb:|g8/O) ⊊s5e6T]NR=25\G5Ǒz$Kl;[]Oj.toFOLGbkJ>}W{n.#[{߭'4jK3=co{3_D0A.;F>z9J%x +."KvEVu;.uSb,2dDb m=ycbό
[Nx"W'Rk+ Ԥ&c7VwKte(2Ve<S +.eS|S^9@
B.
Lj8YңE=swn̚-?5n999+1gWWL^@X!eE +c!20W:/䚢٠/ݍ%!17 U9kx8/F16]Z9Rޕ&UBN=yыsr2@1 +)bR!>~BddOBח$<)C2qTz[jݤEԏ=hM]aLJiñHtS{d7_fN:LHV"Z(He٢+gys ^pcMXR~MF@VLIo>UURLjwto*yf1*6MނS넻9FCHx@tJ?EdܜRLHFd?22MV9:1z#VFBQ(\RCC(c
X;9s]X1QzϯiP#RwCeLq7SSQ|gI,eRO>,2:``n\& lOl+o cPUzTnĩEܳ/ޘkB. +r,a.#7[;wxjbXMrp |O>Oμg2467P霜5=<ͦYWfs䶀h7A>]vBOLoj 7[ I)4
|mr(ãt:rdC8FֳZ~|kߖ/#VheD9oN+= hĨ2tiEj*-LaJKslPgzi'*( c =@L]ZoD険beR +FûZƞj#7'Bӡ +bT}N@"eQa"
H>"Q%IS2cG@Q2a%L+&eHŪ#C)=Wْ./[LQ5,Vʙ*L +@Ȟ6"ǵaVT
В@>j,*EN3u3φE{kGla$9SAskh=lD;x=~Yӎ۪|`mIg!Pi8m96[Q*[-Y'rRP:ۼְҽŷgvwuxvJxc߶M!/"*pL>bM1Wd) + +kvETB9塑YlI[b^$`.qba~^[, +CK +lķ?S#%Q2#tVF4濻Nv
]'#QYZ,>iym۞T.7iX}AA +HWn]~O +ş"ZT; +(ˊx9 +W^`E8^gcSjDT
ъ?"Rh_2!'H3/B;l)S$ -ԹaafDFYi +ZiL&d#6BhrR? N0bԳ +g!1dktNg2n&_bCÃMUHhyϬ+JLQ"{]%%&agH]jv'ƀ=QZj<c +s1hFY
cڏw]_ޜ}X(,Ͼ_<r~{͛^,o.._
I_|ۻ?!ˋ/ߝ|r{{u,쇫/_xš&lR{
Uˋ.Ǒ͏_]Ň7ͿvYH^~Շn[^o:OԽK]X盟ww<g!7|)[Z>,o%),[}/v'Is)ɷ!d3|Ujǫ~`G'88Uo]@߱4'88>.8`+];߱4'88>.X\0<1\0m-yҨ[UL@&uۖ)(XL M3gңI34m$zt2vNa
QU?:M٬vw\+ +-
ApVeĜwV``Ӏ:cJ%1MV=r3hgn;q-L&G4(5sRX4Frl[X60@pbH
7 +94YOBnqn=pxn?'Ԟ$cSfxSCXs)`Hm*LCZ< .-"I1o-C38뷝5\ШBR:K=3AmU{"a{9T4*`$Y0ns3]\[I\Y#gXrMis3r\TaV~|zftHc=oo]AmG,>8jVvwaԊ
~AJS]n::]v)6k|(ŕCjP<=frnp:eWϤv1)eci&a`C1Ǹ>$X`)<yІC Y]w܀7p gn$?B
l!;uA>H5_V1h\r wfStǵ!SBah>%ޠQ\uF +bWRĒ+ڰXڡ:}s7vPsŞgZa
}Hdj
_yuIƥ'ID|kדi }$pPIwסJZ.҉\0<uF'ŬÁ;:aDIk s>ʆ*9\N{s8hWlG9S(eg¯˪I
{Cl*IAh'8F[n7*U?[Y_o(î)XړL"2Q{G +,jn>VcwOۅmSMb]K+ܞ\gM4<o
fN0EΨq~ٌgV#7*eh%,ɢE9VۥbU(;Ȝi3.ٗBصETm א$;7ijܤu2$?AqJ?o7i4c|p`pʡ"SKFP>=ԻȣA{ +X'+}KoPK!.A=KE],-hg'܉jG:WBr#}2KYrZi0֯tP=g?ݬz8Cys RG +IM?oo^5b~b=ť #0A`SO7,P]JO6`JU͝v]6jLѯ]tC=-m;muX[%笣(Տ- dOTz]ܨmRVHzVFEom#x]MmcP+Ygk~Q8t)ˤ\Wmw!8X~1εƛUwlKLTT4Q4-t&+R1mrrlyI[2Ď0A<I!!'tMH˵"Lft#X]Ƕ{oUm[œR4ܦv6iggv>YVoݮFT{fȨެURF\Q@nkg*H˾+nwTm6I!lv% TO S_!p)5DkHJ+y wmo,6Naw7$˶|ФoPjRbuzb[#XS6p}hAQp%BMgM[[PP-DwP,Jw +6q}1ldJvZ-XMq^~]C^X?ޟ.nt~0 lD>jzDs +ʾmH2w7CzFrYTȋqP]e!XUVB/NlhYiX+_#Vo~}XQY>RސWԞEdqc w*6ۢ H~`8ǢGsbLy? +dV%rE.kvqQTnfMaTuP !wPo#5bBb~kłm(Q&l8B#9ń7e>A̟N3H-,U)k"*<-W|CGwB"#+1aR=)Ul F՜znA6rqsqhUdE˱DN(FӓP )ZPj;# +1וUr574YŰ}<*' +^* [1I=jZĥ(*C2QW7<q%JƠG#{B3,k>Uj k+AL#p^vT8e̲~0nBxb8y +Ίu\i!4 vYG`\1 +kEB%6dwlVw5iΰve +JJ,,4(9@p&a# +-)Ws/!&tL!e[ސ({߹PYCY@}-}GۢoW <q Mt6f1d 8![d>4Ei$w<;aY)34uYe(ĊꔅBH:ܛqiZ<P2d֭,ځd̿Ǻ:a*畯~x4/h(=మUaa{.0Lt^aC^3=?1D
6FWaްvYXɇSlw5k +ٚe+K(dpr]U[S@N9R#a*V杤h
g/<v +P~M?J͞=BPmXۂđr^+xv71OLlwcbh^Z?<O|w@Sݑv
m- 'MJc+yL3^ + +y*^m[Han;PQ]il;{*ZkkP֮;K%>Y8gBnnWA%eyu=mوt'ey\S.ĤݸN\G+v)bl;їȥ&C;@Z) +GapںqrADsjhf%;ZlN +_<1'SZ-6*0"U!k|C!<g:7$uG"Je1jt%XC moʊgu7OjE +:;'>QzCDϒjlQ52,379c@|<q
lLw=A2s5ew(dLnQz,Cg%g4)fβ1A$Bp +zzMfL,t}䂐lB-=<D@!iD}LxM8,AKK%ٵt5BtU31r&l)A:W0)&39aF$6љ@Jr5%7 ~S)m!TUnW.{ȷ=IH(PѢ#xy<LB{P;A͆8S"㣋 owq(焂9fBlt"}%+^yA)=q|c8*CXHQ4c@j+ޔwLw|hTrwQ(xxV$ Lg!Mɹ
ӛJ7ߤȑ SQJ* +iO]!lHW * +L@> +JrI%Pd%]i1z dLl!VG@ATI.FB haSʴMR}@d$ܷGS* +I.rXo3MGDHV!LRy@k3A´e5>J̏"(SEeSehTW3(y6a;?^/7ۡ.لKo1m7nvZٝo}И E0ZY9lo$5 +Igi +;Z +sDi0 ؇@X"\@&5i[eBʹu6ngZa7r'(p)˭Ve ;KY֜amė#ke75!,5Y`VR`M32}TSFρ}#H3/d0-؏OAޓ<3%w!'Nf+"OOse{ïƤ+S{a_][YWhbLf6 +㳁SOsK}]w>GIxdG0 +Ufʂq=2elb˓i"h%K9FX̠B{PE9F(@wu_%fY"TT` +!NމWW|{teex1dz0lZv$#G<bivCz><vɏ"*":\W=]u/n㴴H8辬*M|R2}ֵvX~ + +6Jߗ4l{5̾9oU%U9)yY bJ߂)qTfk|+HEQ͉;Uj_1a_+UyiT束O~aBS*4gRG$_@gUL{|o_ '@OӃqkLg@'']Srcm;{f9Osau<`1ez$|"@$%"|kš>&A_[FݟN>\lWCkc QUu_Yxg̽lXv=XC
<净WN^nu=d[ؓ3bb<mlc8=bGM>n +9/ +]Ҕvϻ=߅MWrl3i`㊭3`l`;>-\uMlqmM۲F#trXk]9X;eM^ò27.Ξ8gRLjB/i1ymQA/tGwƝRR]>QVv̈asv6ԃU֜ a`~65G|#unR}9E}z<^zUROnHQ~;h&/фVV$Oxbxug_U""fmyף-k +kBB8YEZ2e)]uMکk|T<⚼~\3vꚈ1]u-}ZdIRfףAjAqjˋlDRӇ֣66.p̵wKsFdE3\ZVa`kpk NZ氼 +Yآ<u̺М:G6}r +xk:I\\cki]Ő9tݤkCxZ,`UU~~ +0000000016 00000 n
+0000000144 00000 n
+0000050918 00000 n
+0000000000 00000 f
+0000053803 00000 n
+0000236199 00000 n
+0000050969 00000 n
+0000051351 00000 n
+0000054102 00000 n
+0000053041 00000 n
+0000053989 00000 n
+0000052898 00000 n
+0000051916 00000 n
+0000052337 00000 n
+0000052385 00000 n
+0000053101 00000 n
+0000053281 00000 n
+0000053668 00000 n
+0000053196 00000 n
+0000053721 00000 n
+0000053873 00000 n
+0000053904 00000 n
+0000054175 00000 n
+0000054561 00000 n
+0000055583 00000 n
+0000065472 00000 n
+0000080013 00000 n
+0000094002 00000 n
+0000113154 00000 n
+0000134436 00000 n
+0000141689 00000 n
+0000146127 00000 n
+0000172425 00000 n
+0000198977 00000 n
+0000224440 00000 n
+0000236222 00000 n
+trailer
<</Size 37/Root 1 0 R/Info 36 0 R/ID[<D1A16C563AFB4F59A7A92DA5725652BC><314B5313F7764CAC893D8523B4466481>]>>
startxref
236408
%%EOF
\ No newline at end of file diff --git a/chrome/browser/cocoa/animatable_image.h b/chrome/browser/cocoa/animatable_image.h new file mode 100644 index 0000000..74f9804 --- /dev/null +++ b/chrome/browser/cocoa/animatable_image.h @@ -0,0 +1,56 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_COCOA_ANIMATABLE_IMAGE_H_ +#define CHROME_BROWSER_COCOA_ANIMATABLE_IMAGE_H_ + +#import <Cocoa/Cocoa.h> +#import <QuartzCore/QuartzCore.h> + +#include "base/scoped_nsobject.h" + +// This class helps animate an NSImage's frame and opacity. It works by creating +// a blank NSWindow in the size specified and giving it a layer on which the +// image can be animated. Clients are free to embed this object as a child +// window for easier window management. This class will clean itself up when +// the animation has finished. Clients that install this as a child window +// should listen for the NSWindowWillCloseNotification to perform any additional +// cleanup. +@interface AnimatableImage : NSWindow { + @private + // The image to animate. + scoped_nsobject<NSImage> image_; + + // The frame of the image before and after the animation. This is in this + // window's coordinate system. + CGRect startFrame_; + CGRect endFrame_; + + // Opacity values for the animation. + CGFloat startOpacity_; + CGFloat endOpacity_; + + // The amount of time it takes to animate the image. + CGFloat duration_; +} + +@property (nonatomic) CGRect startFrame; +@property (nonatomic) CGRect endFrame; +@property (nonatomic) CGFloat startOpacity; +@property (nonatomic) CGFloat endOpacity; +@property (nonatomic) CGFloat duration; + +// Designated initializer. Do not use any other NSWindow initializers. Creates +// but does not show the blank animation window of the given size. The +// |animationFrame| should usually be big enough to contain the |startFrame| +// and |endFrame| properties of the animation. +- (id)initWithImage:(NSImage*)image + animationFrame:(NSRect)animationFrame; + +// Begins the animation. +- (void)startAnimation; + +@end + +#endif // CHROME_BROWSER_COCOA_ANIMATABLE_IMAGE_H_ diff --git a/chrome/browser/cocoa/animatable_image.mm b/chrome/browser/cocoa/animatable_image.mm new file mode 100644 index 0000000..9094341 --- /dev/null +++ b/chrome/browser/cocoa/animatable_image.mm @@ -0,0 +1,167 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "chrome/browser/cocoa/animatable_image.h" + +#include "base/logging.h" +#include "base/scoped_cftyperef.h" +#import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h" + +@interface AnimatableImage (Private) +- (void)setLayerContents:(CALayer*)layer; +@end + +@implementation AnimatableImage + +@synthesize startFrame = startFrame_; +@synthesize endFrame = endFrame_; +@synthesize startOpacity = startOpacity_; +@synthesize endOpacity = endOpacity_; +@synthesize duration = duration_; + +- (id)initWithImage:(NSImage*)image + animationFrame:(NSRect)animationFrame { + if ((self = [super initWithContentRect:animationFrame + styleMask:NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:NO])) { + DCHECK(image); + image_.reset([image retain]); + duration_ = 1.0; + startOpacity_ = 1.0; + endOpacity_ = 1.0; + + [self setOpaque:NO]; + [self setBackgroundColor:[NSColor clearColor]]; + [self setIgnoresMouseEvents:YES]; + + // Must be set or else self will be leaked. + [self setReleasedWhenClosed:YES]; + } + return self; +} + +- (void)startAnimation { + // Set up the root layer. By calling -setLayer: followed by -setWantsLayer: + // the view becomes a layer hosting view as opposed to a layer backed view. + NSView* view = [self contentView]; + CALayer* rootLayer = [CALayer layer]; + [view setLayer:rootLayer]; + [view setWantsLayer:YES]; + + // Create the layer that will be animated. + CALayer* layer = [CALayer layer]; + [self setLayerContents:layer]; + [layer setAnchorPoint:CGPointMake(0, 1)]; + [layer setFrame:[self startFrame]]; + [layer setNeedsDisplayOnBoundsChange:YES]; + [rootLayer addSublayer:layer]; + + // Common timing function for all animations. + CAMediaTimingFunction* mediaFunction = + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; + + // Animate the bounds only if the image is resized. + CABasicAnimation* boundsAnimation = nil; + if (CGRectGetWidth([self startFrame]) != CGRectGetWidth([self endFrame]) || + CGRectGetHeight([self startFrame]) != CGRectGetHeight([self endFrame])) { + boundsAnimation = [CABasicAnimation animationWithKeyPath:@"bounds"]; + NSRect startRect = NSMakeRect(0, 0, + CGRectGetWidth([self startFrame]), + CGRectGetHeight([self startFrame])); + [boundsAnimation setFromValue:[NSValue valueWithRect:startRect]]; + NSRect endRect = NSMakeRect(0, 0, + CGRectGetWidth([self endFrame]), + CGRectGetHeight([self endFrame])); + [boundsAnimation setToValue:[NSValue valueWithRect:endRect]]; + [boundsAnimation gtm_setDuration:[self duration] + eventMask:NSLeftMouseUpMask]; + [boundsAnimation setTimingFunction:mediaFunction]; + } + + // Positional animation. + CABasicAnimation* positionAnimation = + [CABasicAnimation animationWithKeyPath:@"position"]; + [positionAnimation setFromValue: + [NSValue valueWithPoint:NSPointFromCGPoint([self startFrame].origin)]]; + [positionAnimation setToValue: + [NSValue valueWithPoint:NSPointFromCGPoint([self endFrame].origin)]]; + [positionAnimation gtm_setDuration:[self duration] + eventMask:NSLeftMouseUpMask]; + [positionAnimation setTimingFunction:mediaFunction]; + + // Opacity animation. + CABasicAnimation* opacityAnimation = + [CABasicAnimation animationWithKeyPath:@"opacity"]; + [opacityAnimation setFromValue: + [NSNumber numberWithFloat:[self startOpacity]]]; + [opacityAnimation setToValue:[NSNumber numberWithFloat:[self endOpacity]]]; + [opacityAnimation gtm_setDuration:[self duration] + eventMask:NSLeftMouseUpMask]; + [opacityAnimation setTimingFunction:mediaFunction]; + // Set the delegate just for one of the animations so that this window can + // be closed upon completion. + [opacityAnimation setDelegate:self]; + + // The CAAnimations only affect the presentational value of a layer, not the + // model value. This means that after the animation is done, it can flicker + // back to the original values. To avoid this, create an implicit animation of + // the values, which are then overridden with the CABasicAnimations. + // + // Ideally, a call to |-setBounds:| should be here, but, for reasons that + // are not understood, doing so causes the animation to break. + [layer setPosition:[self endFrame].origin]; + [layer setOpacity:[self endOpacity]]; + + // Start the animations. + [CATransaction begin]; + [CATransaction setValue:[NSNumber numberWithFloat:[self duration]] + forKey:kCATransactionAnimationDuration]; + if (boundsAnimation) { + [layer addAnimation:boundsAnimation forKey:@"bounds"]; + } + [layer addAnimation:positionAnimation forKey:@"position"]; + [layer addAnimation:opacityAnimation forKey:@"opacity"]; + [CATransaction commit]; +} + +// CALayer expects a CGImageRef contents. If the image is a PDF, 10.5 CGImage +// cannot handle the conversion to bitmap. To get it to work, rasterize the +// image into a bitmap CGImageRef. This is based loosely on +// http://www.cocoadev.com/index.pl?CGImageRef. +- (void)setLayerContents:(CALayer*)layer { + NSSize size = [image_ size]; + CGContextRef context = + CGBitmapContextCreate(NULL, // Allow CG to allocate memory. + size.width, + size.height, + 8, // bitsPerComponent + 0, // bytesPerRow - CG will calculate by default. + [[NSColorSpace genericRGBColorSpace] CGColorSpace], + kCGBitmapByteOrder32Host | + kCGImageAlphaPremultipliedFirst); + + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext: + [NSGraphicsContext graphicsContextWithGraphicsPort:context flipped:NO]]; + [image_ drawInRect:NSMakeRect(0,0, size.width, size.height) + fromRect:NSZeroRect + operation:NSCompositeCopy + fraction:1.0]; + [NSGraphicsContext restoreGraphicsState]; + + scoped_cftyperef<CGImageRef> cgImage(CGBitmapContextCreateImage(context)); + CGContextRelease(context); + + // Create the layer that will be animated. + [layer setContents:(id)cgImage.get()]; +} + +// CAAnimation delegate method called when the animation is complete. +- (void)animationDidStop:(CAAnimation*)animation finished:(BOOL)flag { + // Close the window, releasing self. + [self close]; +} + +@end diff --git a/chrome/browser/cocoa/animatable_image_unittest.mm b/chrome/browser/cocoa/animatable_image_unittest.mm new file mode 100644 index 0000000..2fc9577 --- /dev/null +++ b/chrome/browser/cocoa/animatable_image_unittest.mm @@ -0,0 +1,36 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import <Cocoa/Cocoa.h> + +#import "base/nsimage_cache_mac.h" +#import "chrome/browser/cocoa/animatable_image.h" +#import "chrome/browser/cocoa/cocoa_test_helper.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "testing/platform_test.h" + +namespace { + +class AnimatableImageTest : public CocoaTest { + public: + AnimatableImageTest() { + NSRect frame = NSMakeRect(0, 0, 500, 500); + NSImage* image = nsimage_cache::ImageNamed(@"forward_Template.pdf"); + animation_ = [[AnimatableImage alloc] initWithImage:image + animationFrame:frame]; + } + + AnimatableImage* animation_; +}; + +TEST_F(AnimatableImageTest, BasicAnimation) { + [animation_ setStartFrame:CGRectMake(0, 0, 10, 10)]; + [animation_ setEndFrame:CGRectMake(500, 500, 100, 100)]; + [animation_ setStartOpacity:0.1]; + [animation_ setEndOpacity:1.0]; + [animation_ setDuration:0.5]; + [animation_ startAnimation]; +} + +} // namespace diff --git a/chrome/browser/cocoa/download_started_animation_mac.mm b/chrome/browser/cocoa/download_started_animation_mac.mm index 42c5c85..f004469 100644 --- a/chrome/browser/cocoa/download_started_animation_mac.mm +++ b/chrome/browser/cocoa/download_started_animation_mac.mm @@ -15,6 +15,7 @@ #include "base/scoped_cftyperef.h" #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/browser/tab_contents/tab_contents_view_mac.h" +#import "chrome/browser/cocoa/animatable_image.h" #include "chrome/common/notification_registrar.h" #include "chrome/common/notification_service.h" #include "grit/theme_resources.h" @@ -25,11 +26,12 @@ class DownloadAnimationTabObserver; // A class for managing the Core Animation download animation. // Should be instantiated using +startAnimationWithTabContents:. -@interface DownloadStartedAnimationMac : NSWindow { +@interface DownloadStartedAnimationMac : NSObject { @private // The observer for the TabContents we are drawing on. scoped_ptr<DownloadAnimationTabObserver> observer_; CGFloat imageWidth_; + AnimatableImage* animation_; }; + (void)startAnimationWithTabContents:(TabContents*)tabContents; @@ -41,7 +43,7 @@ class DownloadAnimationTabObserver; // A helper class to monitor tab hidden and closed notifications. If we receive // such a notification, we stop the animation. class DownloadAnimationTabObserver : public NotificationObserver { -public: + public: DownloadAnimationTabObserver(DownloadStartedAnimationMac* owner, TabContents* tab_contents) : owner_(owner), @@ -59,16 +61,11 @@ public: void Observe(NotificationType type, const NotificationSource& source, const NotificationDetails& details) { - registrar_.Remove(this, - NotificationType::TAB_CONTENTS_HIDDEN, - Source<TabContents>(tab_contents_)); - registrar_.Remove(this, - NotificationType::TAB_CONTENTS_DESTROYED, - Source<TabContents>(tab_contents_)); + // This ends up deleting us. [owner_ animationComplete]; } -private: + private: // The object we need to inform when we get a notification. Weak. DownloadStartedAnimationMac* owner_; @@ -84,51 +81,56 @@ private: @implementation DownloadStartedAnimationMac - (id)initWithTabContents:(TabContents*)tabContents { - // Load the image of the download arrow. - ResourceBundle& bundle = ResourceBundle::GetSharedInstance(); - SkBitmap* imageBitmap = bundle.GetBitmapNamed(IDR_DOWNLOAD_ANIMATION_BEGIN); - scoped_cftyperef<CGImageRef> image(SkCreateCGImageRef(*imageBitmap)); - - // Figure out the positioning in the current tab. Try to position the layer - // against the left edge, and three times the download image's height from the - // bottom of the tab, assuming there is enough room. If there isn't enough, - // don't show the animation and let the shelf speak for itself. - gfx::Rect bounds; - tabContents->GetContainerBounds(&bounds); - imageWidth_ = CGImageGetWidth(image); - CGFloat imageHeight = CGImageGetHeight(image); - - // Sanity check the size in case there's no room to display the animation. - if (bounds.height() < imageHeight) { - [self release]; - return nil; - } - - NSView* tabContentsView = tabContents->GetNativeView(); - NSWindow* parentWindow = [tabContentsView window]; - if (!parentWindow) { - // The tab is no longer frontmost. - [self release]; - return nil; - } - - NSPoint origin = [tabContentsView frame].origin; - origin = [tabContentsView convertPoint:origin toView:nil]; - origin = [parentWindow convertBaseToScreen:origin]; - - // Create a window to host a layer that animates the sliding and fading. - CGFloat animationHeight = MIN(bounds.height(), 4 * imageHeight); - NSRect frame = NSMakeRect(origin.x, origin.y, imageWidth_, animationHeight); - if ((self = [super initWithContentRect:frame - styleMask:NSBorderlessWindowMask - backing:NSBackingStoreBuffered - defer:NO])) { - [self setOpaque:NO]; - [self setBackgroundColor:[NSColor clearColor]]; - [self setIgnoresMouseEvents:YES]; + if ((self = [super init])) { + // Load the image of the download arrow. + ResourceBundle& bundle = ResourceBundle::GetSharedInstance(); + SkBitmap* imageBitmap = bundle.GetBitmapNamed(IDR_DOWNLOAD_ANIMATION_BEGIN); + scoped_cftyperef<CGImageRef> image(SkCreateCGImageRef(*imageBitmap)); + + // Figure out the positioning in the current tab. Try to position the layer + // against the left edge, and three times the download image's height from + // the bottom of the tab, assuming there is enough room. If there isn't + // enough, don't show the animation and let the shelf speak for itself. + gfx::Rect bounds; + tabContents->GetContainerBounds(&bounds); + imageWidth_ = CGImageGetWidth(image); + CGFloat imageHeight = CGImageGetHeight(image); + + // Sanity check the size in case there's no room to display the animation. + if (bounds.height() < imageHeight) { + [self release]; + return nil; + } + + NSView* tabContentsView = tabContents->GetNativeView(); + NSWindow* parentWindow = [tabContentsView window]; + if (!parentWindow) { + // The tab is no longer frontmost. + [self release]; + return nil; + } + + NSPoint origin = [tabContentsView frame].origin; + origin = [tabContentsView convertPoint:origin toView:nil]; + origin = [parentWindow convertBaseToScreen:origin]; + + // Create the animation object to assist in animating and fading. + CGFloat animationHeight = MIN(bounds.height(), 4 * imageHeight); + NSRect frame = NSMakeRect(origin.x, origin.y, imageWidth_, animationHeight); + animation_ = [[AnimatableImage alloc] initWithImage:(id)image.get() + animationFrame:frame]; + [parentWindow addChildWindow:animation_ ordered:NSWindowAbove]; + + animationHeight = MIN(bounds.height(), 3 * imageHeight); + [animation_ setStartFrame:CGRectMake(0, animationHeight, + imageWidth_, imageHeight)]; + [animation_ setEndFrame:CGRectMake(0, imageHeight, + imageWidth_, imageHeight)]; + [animation_ setStartOpacity:1.0]; + [animation_ setEndOpacity:0.4]; + [animation_ setDuration:0.6]; - // Must be set or else self will be leaked. - [self setReleasedWhenClosed:YES]; + observer_.reset(new DownloadAnimationTabObserver(self, tabContents)); // Set up to get notified about resize events on the parent window. NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; @@ -136,62 +138,12 @@ private: selector:@selector(parentWindowChanged:) name:NSWindowDidResizeNotification object:parentWindow]; - [parentWindow addChildWindow:self ordered:NSWindowAbove]; - - // Set up the root layer. By calling -setLayer: followed by -setWantsLayer: - // the view becomes a layer hosting view as opposed to a layer backed view. - NSView* view = [self contentView]; - CALayer* rootLayer = [CALayer layer]; - [view setLayer:rootLayer]; - [view setWantsLayer:YES]; - - // Create the layer that will be animated. - CALayer* layer = [CALayer layer]; - [layer setContents:(id)image.get()]; - [layer setAnchorPoint:CGPointMake(0, 1)]; - [layer setFrame:CGRectMake(0, 0, imageWidth_, imageHeight)]; - [layer setNeedsDisplayOnBoundsChange:YES]; - [rootLayer addSublayer:layer]; - - // Common timing function for all animations. - CAMediaTimingFunction* mediaFunction = - [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; - - // Positional animation. - CABasicAnimation* positionAnimation = - [CABasicAnimation animationWithKeyPath:@"position"]; - CGFloat animationHeight = MIN(bounds.height(), 3 * imageHeight); - NSPoint start = NSMakePoint(0, animationHeight); - NSPoint stop = NSMakePoint(0, imageHeight); - [positionAnimation setFromValue:[NSValue valueWithPoint:start]]; - [positionAnimation setToValue:[NSValue valueWithPoint:stop]]; - [positionAnimation gtm_setDuration:0.6 - eventMask:NSLeftMouseUpMask]; - [positionAnimation setTimingFunction:mediaFunction]; - - // Opacity animation. - CABasicAnimation* opacityAnimation = - [CABasicAnimation animationWithKeyPath:@"opacity"]; - [opacityAnimation setFromValue:[NSNumber numberWithFloat:1.0]]; - [opacityAnimation setToValue:[NSNumber numberWithFloat:0.4]]; - [opacityAnimation gtm_setDuration:0.6 - eventMask:NSLeftMouseUpMask]; - [opacityAnimation setTimingFunction:mediaFunction]; - - // Group the animations together. - CAAnimationGroup* animationGroup = [CAAnimationGroup animation]; - NSArray* animations = - [NSArray arrayWithObjects:positionAnimation, opacityAnimation, nil]; - [animationGroup setAnimations:animations]; - - // Set self as delegate so self receives -animationDidStop:finished:; - [animationGroup setDelegate:self]; - [animationGroup setTimingFunction:mediaFunction]; - [animationGroup gtm_setDuration:0.6 - eventMask:NSLeftMouseUpMask]; - [layer addAnimation:animationGroup forKey:@"downloadOpacityAndPosition"]; - - observer_.reset(new DownloadAnimationTabObserver(self, tabContents)); + // When the animation window closes, it needs to be removed from the + // parent window. + [center addObserver:self + selector:@selector(windowWillClose:) + name:NSWindowWillCloseNotification + object:animation_]; } return self; } @@ -203,28 +155,30 @@ private: // Called when the parent window is resized. - (void)parentWindowChanged:(NSNotification*)notification { - NSWindow* parentWindow = [self parentWindow]; + NSWindow* parentWindow = [animation_ parentWindow]; DCHECK([[notification object] isEqual:parentWindow]); NSRect parentFrame = [parentWindow frame]; NSRect frame = parentFrame; frame.size.width = MIN(imageWidth_, NSWidth(parentFrame)); - [self setFrame:frame display:YES]; + [animation_ setFrame:frame display:YES]; } -// CAAnimation delegate method called when the animation is complete. -- (void)animationDidStop:(CAAnimation *)animation finished:(BOOL)flag { +- (void)windowWillClose:(NSNotification*)notification { + DCHECK([[notification object] isEqual:animation_]); [self animationComplete]; } -// Common clean up code. - (void)animationComplete { - [[self parentWindow] removeChildWindow:self]; - [self close]; + [[animation_ parentWindow] removeChildWindow:animation_]; + [self release]; } + (void)startAnimationWithTabContents:(TabContents*)contents { // Will be deleted when the animation is complete in -animationComplete. - [[self alloc] initWithTabContents:contents]; + DownloadStartedAnimationMac* controller = + [[self alloc] initWithTabContents:contents]; + // The |animation_| releaes itself when done. + [controller->animation_ startAnimation]; } @end diff --git a/chrome/browser/cocoa/popup_blocked_animation_mac.mm b/chrome/browser/cocoa/popup_blocked_animation_mac.mm new file mode 100644 index 0000000..cee6812 --- /dev/null +++ b/chrome/browser/cocoa/popup_blocked_animation_mac.mm @@ -0,0 +1,160 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/popup_blocked_animation.h" + +#import <Cocoa/Cocoa.h> +#import <QuartzCore/QuartzCore.h> + +#import "base/nsimage_cache_mac.h" +#import "chrome/browser/cocoa/animatable_image.h" +#include "chrome/browser/tab_contents/tab_contents.h" +#include "chrome/common/notification_registrar.h" +#include "chrome/common/notification_service.h" + +class PopupBlockedAnimationObserver; + +// A class for managing the Core Animation popup blocked animation. +@interface PopupBlockedAnimationMac : NSObject { + @private + // The observer for the TabContents we are drawing on. + scoped_ptr<PopupBlockedAnimationObserver> observer_; + AnimatableImage* animation_; +}; + +// Called by our the Observer if the tab is hidden or closed. +- (void)animationComplete; + +@end + +// A helper class to monitor tab hidden and closed notifications. If we receive +// such a notification, we stop the animation. +class PopupBlockedAnimationObserver : public NotificationObserver { + public: + PopupBlockedAnimationObserver(PopupBlockedAnimationMac* owner, + TabContents* tab_contents) + : owner_(owner), + tab_contents_(tab_contents) { + registrar_.Add(this, + NotificationType::TAB_CONTENTS_HIDDEN, + Source<TabContents>(tab_contents_)); + registrar_.Add(this, + NotificationType::TAB_CONTENTS_DESTROYED, + Source<TabContents>(tab_contents_)); + } + + // Runs when a tab is hidden or destroyed. Let our owner know we should end + // the animation. + void Observe(NotificationType type, + const NotificationSource& source, + const NotificationDetails& details) { + // This ends up deleting us. + [owner_ animationComplete]; + } + + private: + // The object we need to inform when we get a notification. Weak. + PopupBlockedAnimationMac* owner_; + + // The tab we are observing. Weak. + TabContents* tab_contents_; + + // Used for registering to receive notifications and automatic clean up. + NotificationRegistrar registrar_; + + DISALLOW_COPY_AND_ASSIGN(PopupBlockedAnimationObserver); +}; + +@implementation PopupBlockedAnimationMac + +- (id)initWithTabContents:(TabContents*)tabContents { + if ((self = [super init])) { + NSImage* image = nsimage_cache::ImageNamed(@"popup_window_animation.pdf"); + CGFloat imageWidth = [image size].width; + CGFloat imageHeight = [image size].height; + + NSView* tabContentsView = tabContents->GetNativeView(); + NSWindow* parentWindow = [tabContentsView window]; + if (!parentWindow) { + // The tab is no longer frontmost. + [self release]; + return nil; + } + + NSRect windowFrame = [parentWindow frame]; + + // Sanity check the size in case there's no room to display the animation. + if (imageWidth >= NSWidth(windowFrame) || + imageHeight >= NSHeight(windowFrame)) { + [self release]; + return nil; + } + + // Create the animation window to be the top-right quadrant of the window. + // The animation travels from the center of the window to the blocked + // content section of the Omnibox. This will release itself. + NSRect animationFrame = windowFrame; + CGFloat dX = NSWidth(animationFrame) / 2 - imageWidth / 2; + CGFloat dY = NSHeight(animationFrame) / 2 - imageHeight / 2; + animationFrame.origin.x += dX; + animationFrame.origin.y += dY; + animationFrame.size.width -= dX; + animationFrame.size.height -= dY; + animation_ = [[AnimatableImage alloc] initWithImage:image + animationFrame:animationFrame]; + [parentWindow addChildWindow:animation_ ordered:NSWindowAbove]; + + // Start the animation from the center of the window. + NSRect contentFrame = [[animation_ contentView] frame]; + [animation_ setStartFrame:CGRectMake(0, + imageHeight / 2, + imageWidth, + imageHeight)]; + + // Set the end frame to be small (a la the actual blocked icon) and inset + // slightly to the Omnibox. While the geometry won't align perfectly, it's + // close enough for the user to take note of the new icon. These numbers + // come from measuring the Omnibox without any page actions. + [animation_ setEndFrame:CGRectMake(animationFrame.size.width - 115, + animationFrame.size.height - 50, + 16, 16)]; + [animation_ setStartOpacity:1.0]; + [animation_ setEndOpacity:0.2]; + [animation_ setDuration:0.7]; + + observer_.reset(new PopupBlockedAnimationObserver(self, tabContents)); + + // When the window is about to close, release this object and remove the + // animation from the parent window. + NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; + [center addObserver:self + selector:@selector(windowWillClose:) + name:NSWindowWillCloseNotification + object:animation_]; + [animation_ startAnimation]; + } + return self; +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; + [super dealloc]; +} + +- (void)windowWillClose:(NSNotification*)notification { + DCHECK([[notification object] isEqual:animation_]); + [self animationComplete]; +} + +- (void)animationComplete { + [[animation_ parentWindow] removeChildWindow:animation_]; + [self release]; +} + +@end + +void PopupBlockedAnimation::Show(TabContents* tab_contents) { + // The object will clean up itself at the end of the animation. + [[PopupBlockedAnimationMac alloc] initWithTabContents:tab_contents]; +} diff --git a/chrome/browser/gtk/popup_blocked_animation_gtk.cc b/chrome/browser/gtk/popup_blocked_animation_gtk.cc new file mode 100644 index 0000000..391921b --- /dev/null +++ b/chrome/browser/gtk/popup_blocked_animation_gtk.cc @@ -0,0 +1,10 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/popup_blocked_animation.h" +#include "chrome/browser/tab_contents/tab_contents.h" + +void PopupBlockedAnimation::Show(TabContents* tab_contents) { + // TODO(port): Implement. http://crbug.com/49341 +} diff --git a/chrome/browser/popup_blocked_animation.h b/chrome/browser/popup_blocked_animation.h new file mode 100644 index 0000000..7d2d59d --- /dev/null +++ b/chrome/browser/popup_blocked_animation.h @@ -0,0 +1,25 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_POPUP_BLOCKED_ANIMATION_H_ +#define CHROME_BROWSER_POPUP_BLOCKED_ANIMATION_H_ + +#include "base/basictypes.h" + +class TabContents; + +// The popup blocker lives in the Omnibox with the rest of the blocked content +// controls. This icon is hard to notice when it appears as a result of user- +// initiated action. This creates an animation from the center of the window +// to the blocked popup icon in the Omnibox to draw the user's attention to it. +class PopupBlockedAnimation { + public: + static void Show(TabContents* tab_contents); + + private: + PopupBlockedAnimation() {} + DISALLOW_COPY_AND_ASSIGN(PopupBlockedAnimation); +}; + +#endif // CHROME_BROWSER_POPUP_BLOCKED_ANIMATION_H_ diff --git a/chrome/browser/tab_contents/tab_contents.cc b/chrome/browser/tab_contents/tab_contents.cc index b5395cc..8d4d2e4 100644 --- a/chrome/browser/tab_contents/tab_contents.cc +++ b/chrome/browser/tab_contents/tab_contents.cc @@ -52,6 +52,7 @@ #include "chrome/browser/password_manager/password_manager.h" #include "chrome/browser/platform_util.h" #include "chrome/browser/plugin_installer.h" +#include "chrome/browser/popup_blocked_animation.h" #include "chrome/browser/pref_service.h" #include "chrome/browser/printing/print_view_manager.h" #include "chrome/browser/profile.h" @@ -946,6 +947,8 @@ void TabContents::PopupNotificationVisibilityChanged(bool visible) { content_settings_delegate_->SetPopupsBlocked(visible); if (!dont_notify_render_view_) render_view_host()->AllowScriptToClose(!visible); + if (visible) + PopupBlockedAnimation::Show(this); } gfx::NativeView TabContents::GetContentNativeView() const { diff --git a/chrome/browser/views/popup_blocked_animation_win.cc b/chrome/browser/views/popup_blocked_animation_win.cc new file mode 100644 index 0000000..391921b --- /dev/null +++ b/chrome/browser/views/popup_blocked_animation_win.cc @@ -0,0 +1,10 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/popup_blocked_animation.h" +#include "chrome/browser/tab_contents/tab_contents.h" + +void PopupBlockedAnimation::Show(TabContents* tab_contents) { + // TODO(port): Implement. http://crbug.com/49341 +} diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 2ae0757..e755d21 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -630,6 +630,8 @@ 'browser/cocoa/about_window_controller.mm', 'browser/cocoa/accelerators_cocoa.h', 'browser/cocoa/accelerators_cocoa.mm', + 'browser/cocoa/animatable_image.h', + 'browser/cocoa/animatable_image.mm', 'browser/cocoa/animatable_view.h', 'browser/cocoa/animatable_view.mm', 'browser/cocoa/authorization_util.h', @@ -920,6 +922,7 @@ 'browser/cocoa/page_info_window_controller.mm', 'browser/cocoa/page_info_window_mac.h', 'browser/cocoa/page_info_window_mac.mm', + 'browser/cocoa/popup_blocked_animation_mac.mm', 'browser/cocoa/preferences_window_controller.h', 'browser/cocoa/preferences_window_controller.mm', 'browser/cocoa/reload_button.h', @@ -1603,6 +1606,7 @@ 'browser/gtk/options/url_picker_dialog_gtk.cc', 'browser/gtk/options/url_picker_dialog_gtk.h', 'browser/gtk/page_info_window_gtk.cc', + 'browser/gtk/popup_blocked_animation_gtk.cc', 'browser/gtk/process_singleton_dialog.cc', 'browser/gtk/process_singleton_dialog.h', 'browser/gtk/reload_button_gtk.cc', @@ -2018,6 +2022,7 @@ 'browser/plugin_service.h', 'browser/plugin_updater.cc', 'browser/plugin_updater.h', + 'browser/popup_blocked_animation.h', 'browser/possible_url_model.cc', 'browser/possible_url_model.h', 'browser/power_save_blocker.h', @@ -2713,6 +2718,7 @@ 'browser/views/page_info_window_view.cc', 'browser/views/pinned_contents_info_bubble.cc', 'browser/views/pinned_contents_info_bubble.h', + 'browser/views/popup_blocked_animation_win.cc', 'browser/views/reload_button.cc', 'browser/views/reload_button.h', 'browser/views/repost_form_warning_view.cc', @@ -3450,6 +3456,7 @@ ['include', '^browser/gtk/nine_box.cc'], ['include', '^browser/gtk/nine_box.h'], ['include', '^browser/gtk/options/'], + ['include', '^browser/gtk/popup_blocked_animation_gtk.cc'], ['include', '^browser/gtk/repost_form_warning_gtk.cc'], ['include', '^browser/gtk/repost_form_warning_gtk.h'], ['include', '^browser/gtk/tab_contents_drag_source.cc'], diff --git a/chrome/chrome_dll.gypi b/chrome/chrome_dll.gypi index 4233517..831bb04 100644 --- a/chrome/chrome_dll.gypi +++ b/chrome/chrome_dll.gypi @@ -269,6 +269,7 @@ 'app/theme/omnibox_star.pdf', 'app/theme/omnibox_star_lit.pdf', 'app/theme/otr_icon.pdf', + 'app/theme/popup_window_animation.pdf', 'app/theme/reload_Template.pdf', 'app/theme/stop_Template.pdf', 'browser/cocoa/install.sh', diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index 3152b6d..cac77e5 100644 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -754,6 +754,7 @@ 'browser/cocoa/about_ipc_controller_unittest.mm', 'browser/cocoa/about_window_controller_unittest.mm', 'browser/cocoa/accelerators_cocoa_unittest.mm', + 'browser/cocoa/animatable_image_unittest.mm', 'browser/cocoa/animatable_view_unittest.mm', 'browser/cocoa/background_gradient_view_unittest.mm', 'browser/cocoa/background_tile_view_unittest.mm', |