diff options
author | Yossi Elkrief <elkriefy@gmail.com> | 2014-12-11 13:23:34 +0200 |
---|---|---|
committer | Yossi Elkrief <elkriefy@gmail.com> | 2014-12-11 13:23:34 +0200 |
commit | 4a08d751b2f4f2ccece01ce083b02cdfb1d0de31 (patch) | |
tree | 3c643bacbb4917409d545698e55431bd17d2b782 | |
parent | 73dd4d3fbd80a336abb594e29b152dfc4134b239 (diff) | |
parent | 0bdcb55561aa2f2d313ad64c368a3009e9029c05 (diff) | |
download | iosched-4a08d751b2f4f2ccece01ce083b02cdfb1d0de31.tar.gz |
Merge pull request #1 from google/master
update repo
228 files changed, 6720 insertions, 7562 deletions
diff --git a/.travis.yml b/.travis.yml index 60d0d16..540819e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,19 +16,19 @@ language: android android: components: - - build-tools-20.0.0 - - andorid-19 + - build-tools-21.1.1 - android-20 + - android-21 - extra-google-m2repository - extra-android-m2repository - - sys-img-armeabi-v7a-android-20 + - sys-img-armeabi-v7a-android-21 notifications: email: false env: matrix: - - ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a + - ANDROID_TARGET=android-21 ANDROID_ABI=armeabi-v7a before_install: - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI @@ -9,16 +9,11 @@ This project is the Android app for the conference. The app supports devices running Android 4.0+, and is optimized for phones and tablets of all shapes and sizes. It also contains an Android Wear integration. -<h2>Android L Developer Preview</h2> +<h2>Android 5.0 and Material Design</h2> ![Screenshot](art/hero.png) -We have updated the I/O app with [material design](http://www.google.com/design/spec) and the [Android L Developer Preview](http://developer.android.com/preview/index.html)! For a quick preview of the new tactile surfaces, animated touch feedback, bold use of color, and refreshed iconography by checking out this [teaser video](https://www.youtube.com/watch?v=mCgteBXYxQc) or download the preview APK below. - -<a href="../../raw/master/binaries/iosched-lpreview.apk"><b>Download the I/O app APK for Android L Preview</b></a> - -To run this APK, you will need a device set up with the Android L Preview system image. For -more information, please refer to the [Android L Developer Preview page](http://developer.android.com/preview/index.html). +We have updated the I/O app with [material design](http://www.google.com/design/spec) and the Android 5.0 SDK! For a quick preview of the new tactile surfaces, animated touch feedback, bold use of color, and refreshed iconography, check out this [teaser video](https://www.youtube.com/watch?v=mCgteBXYxQc). <h2>Source</h2> diff --git a/Wearable/build.gradle b/Wearable/build.gradle index 7549abb..05a05a8 100644 --- a/Wearable/build.gradle +++ b/Wearable/build.gradle @@ -36,16 +36,16 @@ android { } signingConfigs { debug { - storeFile file("../android/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" + storeFile file(iosched14_android_debugkey_storefile) + storePassword iosched14_android_debugkey_storePassword + keyAlias iosched14_android_debugkey_keyAlias + keyPassword iosched14_android_debugkey_keyPassword } release { - storeFile file("../android/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" + storeFile file(iosched14_android_releasekey_storefile) + storePassword iosched14_android_releasekey_storePassword + keyAlias iosched14_android_releasekey_keyAlias + keyPassword iosched14_android_releasekey_keyPassword } } @@ -65,8 +65,8 @@ android { } dependencies { - compile 'com.android.support:support-v13:+' + compile 'com.android.support:support-v13:21.+' compile 'com.google.android.support:wearable:+' - compile 'com.google.android.gms:play-services-wearable:+' + compile 'com.google.android.gms:play-services-wearable:6.1.+' } diff --git a/android/build.gradle b/android/build.gradle index b570079..737c141 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -14,8 +14,6 @@ * limitations under the License. */ -lpreview = hasProperty('lpreview') - apply plugin: 'com.android.application' repositories { @@ -26,15 +24,12 @@ repositories { } android { - compileSdkVersion lpreview ? "android-L" : 19 - buildToolsVersion "20.0.0" - - productFlavors { lpreview ? lpreview{} : classic{} } + compileSdkVersion 21 + buildToolsVersion "21.1.1" - defaultConfig lpreview ? {} : { - // Non-L-preview configuration + defaultConfig { minSdkVersion 14 - targetSdkVersion 19 + targetSdkVersion 21 } signingConfigs { @@ -58,7 +53,7 @@ android { signingConfig signingConfigs.debug } release { - runProguard true + minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), file('proguard-project.txt') signingConfig signingConfigs.release } @@ -75,10 +70,10 @@ android { dependencies { wearApp project(':Wearable') - compile 'com.google.android.gms:play-services:5+' - compile 'com.android.support:support-v13:20.+' - compile 'com.android.support:support-v4:20.+' - compile 'com.google.android.apps.dashclock:dashclock-api:+' + compile 'com.google.android.gms:play-services:6.1.+' + compile 'com.android.support:support-v13:21.+' + compile 'com.android.support:appcompat-v7:21.+' + compile 'com.android.support:cardview-v7:21.+' compile 'com.google.code.gson:gson:2.+' compile('com.google.api-client:google-api-client:1.+') { exclude group: 'xpp3', module: 'shared' diff --git a/android/src/classic/java/com/google/samples/apps/iosched/util/LPreviewUtils.java b/android/src/classic/java/com/google/samples/apps/iosched/util/LPreviewUtils.java deleted file mode 100644 index e9b622d..0000000 --- a/android/src/classic/java/com/google/samples/apps/iosched/util/LPreviewUtils.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2014 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.samples.apps.iosched.util; - -import android.app.Activity; - -public class LPreviewUtils { - private LPreviewUtils() { - } - - public static LPreviewUtilsBase getInstance(Activity activity) { - return new LPreviewUtilsBase(activity); - } -} diff --git a/android/src/lpreview/java/com/google/samples/apps/iosched/util/LPreviewUtils.java b/android/src/lpreview/java/com/google/samples/apps/iosched/util/LPreviewUtils.java deleted file mode 100644 index 6503430..0000000 --- a/android/src/lpreview/java/com/google/samples/apps/iosched/util/LPreviewUtils.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2014 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.samples.apps.iosched.util; - -import android.app.Activity; -import android.os.Build; - -public class LPreviewUtils { - private LPreviewUtils() { - } - - public static LPreviewUtilsBase getInstance(Activity activity) { - if ("L".equals(Build.VERSION.CODENAME)) { - return new LPreviewUtilsImpl(activity); - } else { - return new LPreviewUtilsBase(activity); - } - } -} diff --git a/android/src/lpreview/java/com/google/samples/apps/iosched/util/LPreviewUtilsImpl.java b/android/src/lpreview/java/com/google/samples/apps/iosched/util/LPreviewUtilsImpl.java deleted file mode 100644 index d1023d8..0000000 --- a/android/src/lpreview/java/com/google/samples/apps/iosched/util/LPreviewUtilsImpl.java +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Copyright 2014 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.samples.apps.iosched.util; - -import android.annotation.TargetApi; -import android.app.Activity; -import android.app.ActivityOptions; -import android.app.SharedElementListener; -import android.content.Intent; -import android.content.res.Configuration; -import android.graphics.Typeface; -import android.graphics.drawable.AnimatedStateListDrawable; -import android.os.Build; -import android.support.v4.widget.DrawerLayout; -import android.text.TextUtils; -import android.view.Gravity; -import android.view.MenuItem; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; -import android.widget.Toolbar; - -import com.google.samples.apps.iosched.R; - -import java.lang.Override; -import java.util.List; -import java.util.Map; - -@TargetApi(Build.VERSION_CODES.L) -public class LPreviewUtilsImpl extends LPreviewUtilsBase { - private static final int[] STATE_CHECKED = new int[]{android.R.attr.state_checked}; - private static final int[] STATE_UNCHECKED = new int[]{}; - - private static Typeface sMediumTypeface; - - private ActionBarDrawerToggleWrapper mDrawerToggleWrapper; - private DrawerLayout mDrawerLayout; - private Toolbar mActionBarToolbar; - - LPreviewUtilsImpl(Activity activity) { - super(activity); - } - - @Override - public ActionBarDrawerToggleWrapper setupDrawerToggle(DrawerLayout drawerLayout, DrawerLayout.DrawerListener drawerListener) { - // On L, use a different drawer indicator - if (mActionBarToolbar != null) { - mActionBarToolbar.setNavigationIcon(R.drawable.ic_drawer); - mActionBarToolbar.setNavigationOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (mDrawerLayout.isDrawerOpen(Gravity.START)) { - mDrawerLayout.closeDrawer(Gravity.START); - } else { - mDrawerLayout.openDrawer(Gravity.START); - } - } - }); - } else { - mActivity.getActionBar().setHomeAsUpIndicator(R.drawable.ic_drawer); - } - // On L, stub out the ActionBarDrawerToggle - mDrawerLayout = drawerLayout; - mDrawerLayout.setDrawerListener(drawerListener); - mDrawerToggleWrapper = new ActionBarDrawerToggleWrapper(); - return mDrawerToggleWrapper; - } - - public class ActionBarDrawerToggleWrapper extends LPreviewUtilsBase.ActionBarDrawerToggleWrapper { - public void syncState() { - } - - public void onConfigurationChanged(Configuration newConfig) { - } - - public boolean onOptionsItemSelected(MenuItem item) { - // Toggle drawer - if (item.getItemId() == android.R.id.home) { - if (mDrawerLayout.isDrawerOpen(Gravity.START)) { - mDrawerLayout.closeDrawer(Gravity.START); - } else { - mDrawerLayout.openDrawer(Gravity.START); - } - return true; - } - return false; - } - } - - @Override - public void setViewElevation(View v, float elevation) { - v.setElevation(elevation); - } - - @Override - public void trySetActionBar() { - mActionBarToolbar = (Toolbar) mActivity.findViewById(R.id.toolbar_actionbar); - if (mActionBarToolbar != null) { - mActivity.setActionBar(mActionBarToolbar); - } - } - - @Override - public boolean hasLPreviewAPIs() { - return true; - } - - public void startActivityWithTransition(Intent intent, final View clickedView, - final String sharedElementName) { - ActivityOptions options = null; - if (clickedView != null && !TextUtils.isEmpty(sharedElementName)) { - options = ActivityOptions.makeSceneTransitionAnimation( - mActivity, clickedView, sharedElementName); - } - - mActivity.setExitSharedElementListener(new SharedElementListener() { - @Override - public void remapSharedElements(List<String> names, Map<String, View> sharedElements) { - super.remapSharedElements(names, sharedElements); - sharedElements.put(sharedElementName, clickedView); - } - }); - - mActivity.startActivity(intent, (options != null) ? options.toBundle() : null); - } - - @Override - public void setViewName(View v, String viewName) { - v.setViewName(viewName); - } - - @Override - public void postponeEnterTransition() { - mActivity.postponeEnterTransition(); - } - - @Override - public void startPostponedEnterTransition() { - mActivity.startPostponedEnterTransition(); - } - - @Override - public void showHideActionBarIfPartOfDecor(boolean show) { - if (mActionBarToolbar != null) { - // Action bar is part of the layout - return; - } - - // Action bar is part of window decor - super.showHideActionBarIfPartOfDecor(show); - } - - public boolean shouldChangeActionBarForDrawer() { - return false; - } - - @Override - public void setMediumTypeface(TextView textView) { - if (sMediumTypeface == null) { - sMediumTypeface = Typeface.create("sans-serif-medium", Typeface.NORMAL); - } - - textView.setTypeface(sMediumTypeface); - } - - @Override - public int getStatusBarColor() { - return mActivity.getWindow().getStatusBarColor(); - } - - @Override - public void setStatusBarColor(int color) { - mActivity.getWindow().setStatusBarColor(color); - } - - @Override - public void setOrAnimatePlusCheckIcon(final ImageView imageView, boolean isCheck, - boolean allowAnimate) { - AnimatedStateListDrawable drawable = (AnimatedStateListDrawable) - mActivity.getResources().getDrawable(R.drawable.add_schedule_fab_icon_anim); - imageView.setImageDrawable(drawable); - if (allowAnimate) { - // TODO: figure out if there's a way to always animate from current state - imageView.setImageState(isCheck ? STATE_UNCHECKED : STATE_CHECKED, false); - drawable.jumpToCurrentState(); - imageView.setImageState(isCheck ? STATE_CHECKED : STATE_UNCHECKED, false); - } else { - imageView.setImageState(isCheck ? STATE_CHECKED : STATE_UNCHECKED, false); - drawable.jumpToCurrentState(); - } - } -} diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_drawer.png b/android/src/lpreview/res/drawable-xxhdpi-v21/ic_drawer.png Binary files differdeleted file mode 100644 index 19bae3e..0000000 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_drawer.png +++ /dev/null diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_launcher.png b/android/src/lpreview/res/drawable-xxhdpi-v21/ic_launcher.png Binary files differdeleted file mode 100644 index 32502c3..0000000 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_launcher.png +++ /dev/null diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_up.png b/android/src/lpreview/res/drawable-xxhdpi-v21/ic_up.png Binary files differdeleted file mode 100644 index 3396894..0000000 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_up.png +++ /dev/null diff --git a/android/src/lpreview/res/drawable-xxxhdpi-v21/ic_launcher.png b/android/src/lpreview/res/drawable-xxxhdpi-v21/ic_launcher.png Binary files differdeleted file mode 100644 index afae355..0000000 --- a/android/src/lpreview/res/drawable-xxxhdpi-v21/ic_launcher.png +++ /dev/null diff --git a/android/src/lpreview/res/values-sw600dp-v21/styles.xml b/android/src/lpreview/res/values-sw600dp-v21/styles.xml deleted file mode 100644 index 8165a88..0000000 --- a/android/src/lpreview/res/values-sw600dp-v21/styles.xml +++ /dev/null @@ -1,35 +0,0 @@ -<!-- - Copyright 2014 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources> - - <style name="Theme.IOSched.Sessions" parent="Theme.IOSched.Sessions.Base"> - <item name="actionBarInsetStart">@dimen/keyline_2_minus_16dp</item> - <item name="spinnerBarInsetStart">@dimen/keyline_2_minus_16dp</item> - <item name="android:windowActionBar">false</item> <!-- replaced by toolbar --> - <item name="android:windowNoTitle">true</item> - <item name="android:windowContentTransitions">false</item> - </style> - - <style name="Theme.IOSched.SessionDetails" parent="Theme.IOSched.SessionDetails.Base"> - <item name="android:windowContentTransitions">false</item> - <item name="android:actionBarStyle">@style/TransparentActionBar</item> - <item name="android:windowBackground">@android:color/transparent</item> - <item name="android:windowActionBarOverlay">true</item> - <item name="android:homeAsUpIndicator">@drawable/ic_ab_close</item> - </style> - -</resources> diff --git a/android/src/lpreview/res/values-v21/styles.xml b/android/src/lpreview/res/values-v21/styles.xml deleted file mode 100644 index 4d00ccf..0000000 --- a/android/src/lpreview/res/values-v21/styles.xml +++ /dev/null @@ -1,140 +0,0 @@ -<!-- - Copyright 2014 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources> - - <style name="FrameworkRoot.Theme" parent="android:Theme.Material.Light.DarkActionBar" /> - <style name="FrameworkRoot.ActionBar" parent="android:Widget.Material.ActionBar" /> - <style name="FrameworkRoot.ActionBar.TitleText" parent="android:TextAppearance.Material.Widget.ActionBar.Title" /> - <style name="FrameworkRoot.ActionBar.TabBar" parent="android:Widget.Material.ActionBar.TabBar" /> - <style name="FrameworkRoot.EditText" parent="android:Widget.Material.Light.EditText" /> - <style name="FrameworkRoot.Widget" parent="android:Theme.Material" /> - <style name="FrameworkRoot.Widget.ActionButton.Overflow" parent="android:Widget.Material.ActionButton.Overflow" /> - <style name="FrameworkRoot.Widget.Spinner" parent="android:Widget.Material.Light.Spinner" /> - <style name="FrameworkRoot.Widget.ListView.DropDown" parent="android:Widget.Material.Light.ListView.DropDown" /> - <style name="FrameworkRoot.Widget.PopupMenu" parent="android:Widget.Material.Light.PopupMenu" /> - <style name="FrameworkRoot.TextAppearance.Widget.PopupMenu.Large" parent="android:TextAppearance.Material.Widget.PopupMenu.Large" /> - - <style name="Theme" parent="FrameworkRoot.Theme" /> <!-- doesn't contain the pre-L code from the values/styles.xml --> - - <style name="Theme.IOSched" parent="Theme.IOSched.Base"> - <item name="actionBarIconColor">#fff</item> - <item name="actionBarOverlayTopOffset">0dp</item> <!-- action bars replaced by Toolbars --> - <item name="actionBarInsetStart">@dimen/keyline_2</item> - <item name="spinnerBarInsetStart">@dimen/keyline_2_minus_16dp</item> - <item name="selectableItemBackgroundBorderless">?android:selectableItemBackgroundBorderless</item> - <item name="popupItemBackground">@drawable/popup_item_background</item> - <item name="photoItemForeground">@drawable/photo_item_foreground</item> - - <item name="android:colorPrimary">@color/theme_primary</item> - <item name="android:colorPrimaryDark">@color/theme_primary_dark</item> - <item name="android:colorAccent">@color/theme_accent_2</item> - <item name="android:navigationBarColor">#000</item> - <item name="android:actionBarTheme">@style/ActionBarThemeOverlay</item> - <item name="android:homeAsUpIndicator">@drawable/ic_up</item> - - <!-- used only if windowContentTransitions is true --> - <item name="android:windowSharedElementEnterTransition">@transition/shared_element</item> - <item name="android:windowSharedElementExitTransition">@transition/shared_element</item> - <item name="android:windowEnterTransition">@android:transition/no_transition</item> - <item name="android:windowExitTransition">@android:transition/no_transition</item> - <item name="android:windowAllowExitTransitionOverlap">true</item> - <item name="android:windowAllowEnterTransitionOverlap">true</item> - </style> - - <style name="Theme.IOSched.SessionDetails" parent="Theme.IOSched.SessionDetails.Base"> - <item name="android:actionBarStyle">@style/TransparentActionBar</item> - <item name="android:windowActionBarOverlay">true</item> - <!--<item name="android:windowContentTransitions">true</item>--> - </style> - - <style name="Theme.IOSched.Sessions" parent="Theme.IOSched.Sessions.Base"> - <item name="actionBarInsetStart">@dimen/keyline_2_minus_16dp</item> - <item name="android:windowActionBar">false</item> <!-- replaced by toolbar --> - <item name="android:windowNoTitle">true</item> - <!--<item name="android:windowContentTransitions">true</item>--> - </style> - - <!-- Live stream --> - <style name="Theme.IOSched.Livestream" parent="Theme.IOSched"> - <item name="android:windowBackground">@color/gray_background</item> - <item name="actionBarInsetStart">@dimen/keyline_2_minus_16dp</item> - </style> - - <style name="Theme.IOSched.WithElevatedHeader" parent="Theme.IOSched"> - <item name="android:actionBarStyle">@style/ElevatedActionBar</item> - </style> - - <style name="Theme.IOSched.MySchedule" parent="Theme.IOSched"> - <item name="android:windowActionBar">false</item> <!-- replaced by toolbar --> - <item name="android:windowNoTitle">true</item> - </style> - - <style name="Theme.IOSched.Map" parent="Theme.IOSched"> - <item name="android:windowActionBar">false</item> <!-- replaced by toolbar --> - <item name="android:windowNoTitle">true</item> - </style> - - <style name="Theme.IOSched.PeopleIveMet" parent="Theme.IOSched"> - <item name="android:windowActionBar">false</item> <!-- replaced by toolbar --> - <item name="android:windowNoTitle">true</item> - </style> - - <style name="Theme.IOSched.ExpertsDirectory" parent="Theme.IOSched"> - <item name="android:windowActionBar">false</item> <!-- replaced by toolbar --> - <item name="android:windowNoTitle">true</item> - </style> - - <style name="Theme.IOSched.Social" parent="Theme.IOSched"> - <item name="android:windowActionBar">false</item> <!-- replaced by toolbar --> - <item name="android:windowNoTitle">true</item> - <item name="android:windowBackground">@color/gray_background</item> - </style> - - <style name="Theme.IOSched.VideoLibrary" parent="Theme.IOSched"> - <item name="android:windowActionBar">false</item> <!-- replaced by toolbar --> - <item name="android:windowNoTitle">true</item> - <item name="android:windowActionBarOverlay">true</item> - </style> - - <style name="Widget.IOSched.HeaderBar.Spinner" parent="Widget.IOSched.HeaderBar.Spinner.Base"> - <item name="android:theme">@style/ActionBarThemeOverlay</item> - </style> - - <style name="ActionBar" parent="ActionBar.Base"> - <item name="android:displayOptions">homeAsUp|showTitle</item> - <item name="android:contentInsetStart">?actionBarInsetStart</item> - </style> - - <style name="ElevatedActionBar" parent="ActionBar"> - <item name="android:elevation">@dimen/headerbar_elevation</item> - </style> - - <style name="TabIndicator"> - <item name="android:theme">@style/ActionBarThemeOverlay</item> - </style> - - <style name="ActionBarThemeOverlay" parent=""> - <item name="android:textColorPrimary">#fff</item> - <item name="android:colorControlNormal">?actionBarIconColor</item> - <item name="android:colorControlHighlight">#3fff</item> - </style> - - <style name="HeaderBar"> - <item name="android:elevation">@dimen/headerbar_elevation</item> - <item name="android:background">?android:colorPrimary</item> - </style> -</resources> diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 6c1bd36..beb8708 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -22,10 +22,9 @@ android:versionName="2.2.3" android:installLocation="auto"> - <!-- targetSdkVersion set to 19 from build.gradle on non-L-preview builds --> <uses-sdk android:minSdkVersion="14" - android:targetSdkVersion="L" /> + android:targetSdkVersion="21" /> <permission android:name="com.google.samples.apps.iosched.permission.WRITE_SCHEDULE" @@ -80,7 +79,7 @@ <application android:label="@string/app_name" - android:icon="@drawable/ic_launcher" + android:icon="@mipmap/ic_launcher" android:logo="@drawable/actionbar_logo" android:theme="@style/Theme.IOSched" android:hardwareAccelerated="true" @@ -124,7 +123,6 @@ <activity android:name=".ui.SettingsActivity" android:label="@string/title_settings" - android:theme="@style/Theme.IOSched.WithElevatedHeader" android:parentActivityName=".ui.MyScheduleActivity" /> <activity @@ -170,8 +168,7 @@ </activity> <activity android:name=".ui.SessionFeedbackActivity" - android:label="@string/title_session_feedback" - android:theme="@style/Theme.IOSched.WithElevatedHeader"> + android:label="@string/title_session_feedback"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> @@ -262,7 +259,7 @@ <!-- People I've Met --> <activity android:name=".ui.PeopleIveMetActivity" - android:label="@string/app_name" + android:label="@string/title_people_ive_met" android:theme="@style/Theme.IOSched.PeopleIveMet"/> <!-- Session alarm/calendar integrating components. --> @@ -367,9 +364,6 @@ <intent-filter> <action android:name="com.google.android.gms.wearable.BIND_LISTENER" /> </intent-filter> - <intent-filter> - <action android:name="com.google.sample.apps.iosched.ACTION_NOTIFICATION_DISMISSAL"/> - </intent-filter> </service> </application> diff --git a/android/src/main/java/com/google/samples/apps/iosched/gcm/GCMRedirectedBroadcastReceiver.java b/android/src/main/java/com/google/samples/apps/iosched/gcm/GCMRedirectedBroadcastReceiver.java index f928e6d..2340454 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/gcm/GCMRedirectedBroadcastReceiver.java +++ b/android/src/main/java/com/google/samples/apps/iosched/gcm/GCMRedirectedBroadcastReceiver.java @@ -22,7 +22,6 @@ import com.google.android.gcm.GCMBroadcastReceiver; import android.content.Context; /** - * @author trevorjohns@google.com (Trevor Johns) */ public class GCMRedirectedBroadcastReceiver extends GCMBroadcastReceiver { diff --git a/android/src/main/java/com/google/samples/apps/iosched/provider/ScheduleContract.java b/android/src/main/java/com/google/samples/apps/iosched/provider/ScheduleContract.java index 5e71f59..cda6482 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/provider/ScheduleContract.java +++ b/android/src/main/java/com/google/samples/apps/iosched/provider/ScheduleContract.java @@ -75,7 +75,7 @@ public class ScheduleContract { * is (codelab, office hours, etc) might belong to the "TYPE" category. */ String TAG_CATEGORY = "tag_category"; - /** Tag name. For example, "Android" */ + /** Tag name. For example, "Android". */ String TAG_NAME = "tag_name"; /** Tag's order in its category (for sorting). */ String TAG_ORDER_IN_CATEGORY = "tag_order_in_category"; @@ -151,7 +151,7 @@ public class ScheduleContract { String SESSION_IMPORT_HASHCODE = "session_import_hashcode"; /** The session's main tag. */ String SESSION_MAIN_TAG = "session_main_tag"; - /** The session's branding color */ + /** The session's branding color. */ String SESSION_COLOR = "session_color"; /** The session's captions URL (for livestreamed sessions). */ String SESSION_CAPTIONS_URL = "session_captions_url"; @@ -266,24 +266,24 @@ public class ScheduleContract { interface HashtagColumns { /** Hashtags */ String HASHTAG_NAME = "hashtag_name"; - /** Description about this hashtag */ + /** Description about this hashtag. */ String HASHTAG_DESCRIPTION = "hashtag_description"; - /** Text color for this hashtag */ + /** Text color for this hashtag. */ String HASHTAG_COLOR = "hashtag_color"; - /** Ordering of this hashtag */ + /** Ordering of this hashtag. */ String HASHTAG_ORDER = "hashtag_order"; } interface PeopleIveMetColumns { - /** Google+ ID of the person */ + /** Google+ ID of the person. */ String PERSON_ID = "person_id"; - /** Time when the badge of this person was scanned */ + /** Time when the badge of this person was scanned. */ String PERSON_TIMESTAMP = "person_timestamp"; - /** Name of the person */ + /** Name of the person. */ String PERSON_NAME = "person_name"; - /** URL of profile icon of this person */ + /** URL of profile icon of this person. */ String PERSON_IMAGE_URL = "person_image_url"; - /** Note about this person */ + /** Note about this person. */ String PERSON_NOTE = "person_note"; } @@ -304,7 +304,7 @@ public class ScheduleContract { String VIDEO_SPEAKERS = "video_speakers"; /** Thumbnail url. */ String VIDEO_THUMBNAIL_URL = "video_thumbnail_url"; - /** Import hashcode */ + /** Import hashcode. */ String VIDEO_IMPORT_HASHCODE = "video_import_hashcode"; } @@ -793,7 +793,7 @@ public class ScheduleContract { public static final String DEFAULT_SORT = MapTileColumns.TILE_FLOOR + " ASC"; - /** Build {@link Uri} for all overlay zoom entries */ + /** Build {@link Uri} for all overlay zoom entries. */ public static Uri buildUri() { return CONTENT_URI; } @@ -829,7 +829,7 @@ public class ScheduleContract { return CONTENT_URI.buildUpon().appendPath(markerId).build(); } - /** Build {@link Uri} for all markers */ + /** Build {@link Uri} for all markers. */ public static Uri buildMarkerUri() { return CONTENT_URI; } @@ -887,12 +887,12 @@ public class ScheduleContract { public static final String DEFAULT_SORT = VideoColumns.VIDEO_YEAR + " DESC, " + VideoColumns.VIDEO_TOPIC + " ASC, " + VideoColumns.VIDEO_TITLE + " ASC"; - /** Build {@link Uri} for given video */ + /** Build {@link Uri} for given video. */ public static Uri buildVideoUri(String videoId) { return CONTENT_URI.buildUpon().appendPath(videoId).build(); } - /** Return video ID given URI */ + /** Return video ID given URI. */ public static String getVideoId(Uri uri) { return uri.getPathSegments().get(1); } diff --git a/android/src/main/java/com/google/samples/apps/iosched/service/SessionAlarmService.java b/android/src/main/java/com/google/samples/apps/iosched/service/SessionAlarmService.java index 948e97f..91a5af1 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/service/SessionAlarmService.java +++ b/android/src/main/java/com/google/samples/apps/iosched/service/SessionAlarmService.java @@ -16,7 +16,11 @@ package com.google.samples.apps.iosched.service; -import android.app.*; +import android.app.AlarmManager; +import android.app.IntentService; +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; @@ -37,20 +41,21 @@ import com.google.android.gms.wearable.PutDataRequest; import com.google.android.gms.wearable.Wearable; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.provider.ScheduleContract; +import com.google.samples.apps.iosched.ui.BaseMapActivity; import com.google.samples.apps.iosched.ui.BrowseSessionsActivity; -import com.google.samples.apps.iosched.ui.MapFragment; import com.google.samples.apps.iosched.ui.MyScheduleActivity; import com.google.samples.apps.iosched.ui.SessionFeedbackActivity; -import com.google.samples.apps.iosched.ui.phone.MapActivity; import com.google.samples.apps.iosched.util.FeedbackUtils; import com.google.samples.apps.iosched.util.PrefUtils; import com.google.samples.apps.iosched.util.UIUtils; import java.util.ArrayList; import java.util.Date; +import java.util.List; import java.util.concurrent.TimeUnit; import static com.google.samples.apps.iosched.util.LogUtils.LOGD; +import static com.google.samples.apps.iosched.util.LogUtils.LOGE; import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; /** @@ -140,6 +145,10 @@ public class SessionAlarmService extends IntentService scheduleAllStarredBlocks(); scheduleAllStarredSessionFeedbacks(); return; + } else if (ACTION_NOTIFY_SESSION_FEEDBACK.equals(action)) { + LOGD(TAG, "Showing session feedback notification."); + notifySessionFeedback(DEBUG_SESSION_ID.equals(intent.getStringExtra(EXTRA_SESSION_ID))); + return; } final long sessionEnd = intent.getLongExtra(SessionAlarmService.EXTRA_SESSION_END, @@ -155,30 +164,17 @@ public class SessionAlarmService extends IntentService LOGD(TAG, "Session alarm offset is: " + sessionAlarmOffset); // Feedback notifications have a slightly different set of extras. - if (ACTION_SCHEDULE_FEEDBACK_NOTIFICATION.equals(action) || - ACTION_NOTIFY_SESSION_FEEDBACK.equals(action)) { + if (ACTION_SCHEDULE_FEEDBACK_NOTIFICATION.equals(action)) { final String sessionId = intent.getStringExtra(SessionAlarmService.EXTRA_SESSION_ID); final String sessionTitle = intent.getStringExtra( SessionAlarmService.EXTRA_SESSION_TITLE); - final String sessionRoom = intent.getStringExtra( - SessionAlarmService.EXTRA_SESSION_ROOM); - final String sessionSpeakers = intent.getStringExtra( - SessionAlarmService.EXTRA_SESSION_SPEAKERS); if (sessionTitle == null || sessionEnd == UNDEFINED_VALUE || sessionId == null) { - Log.e(TAG, - "Attempted to schedule or notify for feedback without providing extras."); + LOGE(TAG, "Attempted to schedule for feedback without providing extras."); return; } - if (ACTION_SCHEDULE_FEEDBACK_NOTIFICATION.equals(action)) { - LOGD(TAG, "Scheduling feedback alarm for session: " + sessionTitle); - scheduleFeedbackAlarm(sessionId, sessionEnd, sessionAlarmOffset, sessionTitle, - sessionRoom, sessionSpeakers); - } else { - LOGD(TAG, "Notifying for feedback on session: " + sessionTitle); - notifySessionFeedback(sessionId, sessionEnd, sessionTitle, sessionRoom, - sessionSpeakers); - } + LOGD(TAG, "Scheduling feedback alarm for session: " + sessionTitle); + scheduleFeedbackAlarm(sessionEnd, sessionAlarmOffset, sessionTitle); return; } @@ -204,9 +200,8 @@ public class SessionAlarmService extends IntentService } } - public void scheduleFeedbackAlarm(final String sessionId, final long sessionEnd, - final long alarmOffset, final String sessionTitle, String sessionRoom, - String sessionSpeakers) { + public void scheduleFeedbackAlarm(final long sessionEnd, + final long alarmOffset, final String sessionTitle) { // By default, feedback alarms fire 5 minutes before session end time. If alarm offset is // provided, alarm is set to go off that much time from now (useful for testing). long alarmTime; @@ -219,24 +214,12 @@ public class SessionAlarmService extends IntentService LOGD(TAG, "Scheduling session feedback alarm for session '" + sessionTitle + "'"); LOGD(TAG, " -> end time: " + sessionEnd + " = " + (new Date(sessionEnd)).toString()); LOGD(TAG, " -> alarm time: " + alarmTime + " = " + (new Date(alarmTime)).toString()); - LOGD(TAG, " -> room name: " + sessionRoom); - LOGD(TAG, " -> speakers: " + sessionSpeakers); final Intent feedbackIntent = new Intent( ACTION_NOTIFY_SESSION_FEEDBACK, null, this, SessionAlarmService.class); - feedbackIntent.setData( - new Uri.Builder().authority("com.google.samples.apps.iosched") - .path(sessionId).build() - ); - feedbackIntent.putExtra(SessionAlarmService.EXTRA_SESSION_END, sessionEnd); - feedbackIntent.putExtra(SessionAlarmService.EXTRA_SESSION_ALARM_OFFSET, alarmOffset); - feedbackIntent.putExtra(SessionAlarmService.EXTRA_SESSION_ID, sessionId); - feedbackIntent.putExtra(SessionAlarmService.EXTRA_SESSION_TITLE, sessionTitle); - feedbackIntent.putExtra(SessionAlarmService.EXTRA_SESSION_SPEAKERS, sessionSpeakers); - feedbackIntent.putExtra(SessionAlarmService.EXTRA_SESSION_ROOM, sessionRoom); PendingIntent pi = PendingIntent.getService( this, 1, feedbackIntent, PendingIntent.FLAG_CANCEL_CURRENT); final AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); @@ -296,84 +279,116 @@ public class SessionAlarmService extends IntentService // A starred session is about to end; notify the user to provide session feedback. // Constructs and triggers a system notification. Does nothing if the session has already // concluded. - private void notifySessionFeedback(final String sessionId, final long sessionEnd, - final String sessionTitle, final String sessionRoom, final String sessionSpeakers) { - LOGD(TAG, "Considering firing notification for feedback for session: " + sessionTitle); - boolean isDebug = DEBUG_SESSION_ID.equals(sessionId); + private void notifySessionFeedback(boolean debug) { + LOGD(TAG, "Considering firing notification for session feedback."); - if (isDebug) { + if (debug) { LOGD(TAG, "Note: this is a debug notification."); } // Don't fire notification if this feature is disabled in settings if (!PrefUtils.shouldShowSessionFeedbackReminders(this)) { - LOGD(TAG, "Skipping session feedback notification for session " + sessionId + " (" - + sessionTitle + "). Disabled in settings."); + LOGD(TAG, "Skipping session feedback notification. Disabled in settings."); return; } - // Avoid repeated notifications. - if (!isDebug && UIUtils.isFeedbackNotificationFiredForSession(this, sessionId)) { - LOGD(TAG, "Skipping repeated session feedback notification for session '" - + sessionTitle + "'"); + final Cursor c = getContentResolver().query( + ScheduleContract.Sessions.CONTENT_MY_SCHEDULE_URI, + SessionsNeedingFeedbackQuery.PROJECTION, + SessionsNeedingFeedbackQuery.WHERE_CLAUSE, null, null); + if (c == null) { return; } - // If the session is no longer is MY_SCHEDULE, don't notify for it. - final Uri myScheduleUri = ScheduleContract.MySchedule.buildMyScheduleUri(this); - final Cursor c = getContentResolver().query( - myScheduleUri, MySessionsExistenceQuery.PROJECTION, - MySessionsExistenceQuery.WHERE_CLAUSE, new String[]{sessionId}, null); - if (!isDebug && (c == null || !c.moveToFirst())) { - // no longer in MY_SCHEDULE + List<String> needFeedbackIds = new ArrayList<String>(); + List<String> needFeedbackTitles = new ArrayList<String>(); + while (c.moveToNext()) { + String sessionId = c.getString(SessionsNeedingFeedbackQuery.SESSION_ID); + String sessionTitle = c.getString(SessionsNeedingFeedbackQuery.SESSION_TITLE); + + // Avoid repeated notifications. + if (UIUtils.isFeedbackNotificationFiredForSession(this, sessionId)) { + LOGD(TAG, "Skipping repeated session feedback notification for session '" + + sessionTitle + "'"); + continue; + } + + needFeedbackIds.add(sessionId); + needFeedbackTitles.add(sessionTitle); + } + + if (needFeedbackIds.size() == 0) { + // the user has already been notified of all sessions needing feedback return; } - LOGD(TAG, "Going forward with session feedback notification for: " + sessionTitle); - final Uri sessionUri = ScheduleContract.Sessions.buildSessionUri(sessionId); + LOGD(TAG, "Going forward with session feedback notification for " + + needFeedbackIds.size() + " session(s)."); final Resources res = getResources(); - String contentText = res.getString(R.string.session_feedback_notification_text, - sessionTitle); - - PendingIntent pi = TaskStackBuilder.create(this) - .addNextIntent(new Intent(this, MyScheduleActivity.class)) - .addNextIntent(new Intent(Intent.ACTION_VIEW, sessionUri, this, - SessionFeedbackActivity.class)) - .getPendingIntent(1, PendingIntent.FLAG_CANCEL_CURRENT); // this is used to synchronize deletion of notifications on phone and wear Intent dismissalIntent = new Intent(ACTION_NOTIFICATION_DISMISSAL); - dismissalIntent.putExtra(KEY_SESSION_ID, sessionId); + // TODO: fix Wear dismiss integration + //dismissalIntent.putExtra(KEY_SESSION_ID, sessionId); PendingIntent dismissalPendingIntent = PendingIntent .getService(this, (int) new Date().getTime(), dismissalIntent, PendingIntent.FLAG_UPDATE_CURRENT); + String provideFeedbackTicker = res.getString(R.string.session_feedback_notification_ticker); NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(this) - .setContentTitle(sessionTitle) - .setContentText(contentText) - //.setColor(getResources().getColor(R.color.theme_primary)) - // Note: setColor() is available in the support lib v21+. - // We commented it out because we want the source to compile - // against support lib v20. If you are using support lib - // v21 or above on Android L, uncomment this line. - .setTicker(res.getString(R.string.session_feedback_notification_ticker)) - .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE) + .setColor(getResources().getColor(R.color.theme_primary)) + .setContentText(provideFeedbackTicker) + .setTicker(provideFeedbackTicker) .setLights( SessionAlarmService.NOTIFICATION_ARGB_COLOR, SessionAlarmService.NOTIFICATION_LED_ON_MS, SessionAlarmService.NOTIFICATION_LED_OFF_MS) .setSmallIcon(R.drawable.ic_stat_notification) - .setContentIntent(pi) - .setPriority(Notification.PRIORITY_MAX) + .setPriority(Notification.PRIORITY_LOW) .setLocalOnly(true) // make it local to the phone + .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE) .setDeleteIntent(dismissalPendingIntent) .setAutoCancel(true); + + if (needFeedbackIds.size() == 1) { + // Only 1 session needs feedback + Uri sessionUri = ScheduleContract.Sessions.buildSessionUri(needFeedbackIds.get(0)); + PendingIntent pi = TaskStackBuilder.create(this) + .addNextIntent(new Intent(this, MyScheduleActivity.class)) + .addNextIntent(new Intent(Intent.ACTION_VIEW, sessionUri, this, + SessionFeedbackActivity.class)) + .getPendingIntent(1, PendingIntent.FLAG_CANCEL_CURRENT); + + notifBuilder.setContentTitle(needFeedbackTitles.get(0)) + .setContentIntent(pi); + } else { + // Show information about several sessions that need feedback + PendingIntent pi = TaskStackBuilder.create(this) + .addNextIntent(new Intent(this, MyScheduleActivity.class)) + .getPendingIntent(1, PendingIntent.FLAG_CANCEL_CURRENT); + + NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); + inboxStyle.setBigContentTitle(provideFeedbackTicker); + for (String title : needFeedbackTitles) { + inboxStyle.addLine(title); + } + + notifBuilder.setContentTitle( + getResources().getQuantityString(R.plurals.session_plurals, + needFeedbackIds.size(), needFeedbackIds.size())) + .setStyle(inboxStyle) + .setContentIntent(pi); + } + NotificationManager nm = (NotificationManager) getSystemService( Context.NOTIFICATION_SERVICE); LOGD(TAG, "Now showing session feedback notification!"); - nm.notify(sessionId, FEEDBACK_NOTIFICATION_ID, notifBuilder.build()); - setupNotificationOnWear(sessionId, sessionRoom, sessionTitle, sessionSpeakers); + nm.notify(FEEDBACK_NOTIFICATION_ID, notifBuilder.build()); + + for (int i = 0; i < needFeedbackIds.size(); i++) { + setupNotificationOnWear(needFeedbackIds.get(i), null, needFeedbackTitles.get(i), null); + } } /** @@ -494,11 +509,7 @@ public class SessionAlarmService extends IntentService NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(this) .setContentTitle(starredSessionTitles.get(0)) .setContentText(contentText) - //.setColor(getResources().getColor(R.color.theme_primary)) - // Note: setColor() is available in the support lib v21+. - // We commented it out because we want the source to compile - // against support lib v20. If you are using support lib - // v21 or above on Android L, uncomment this line. + .setColor(getResources().getColor(R.color.theme_primary)) .setTicker(res.getQuantityString(R.plurals.session_notification_ticker, starredCount, starredCount)) @@ -560,8 +571,8 @@ public class SessionAlarmService extends IntentService private PendingIntent createRoomMapIntent(final String roomId) { Intent mapIntent = new Intent(getApplicationContext(), UIUtils.getMapActivityClass(getApplicationContext())); - mapIntent.putExtra(MapFragment.EXTRA_ROOM, roomId); - mapIntent.putExtra(MapActivity.EXTRA_DETACHED_MODE, true); + mapIntent.putExtra(BaseMapActivity.EXTRA_ROOM, roomId); + mapIntent.putExtra(BaseMapActivity.EXTRA_DETACHED_MODE, true); return TaskStackBuilder .create(getApplicationContext()) .addNextIntent(new Intent(this, BrowseSessionsActivity.class)) @@ -596,12 +607,9 @@ public class SessionAlarmService extends IntentService // TODO: Should we also check that SESSION_IN_MY_SCHEDULE is true? final Cursor c = cr.query(ScheduleContract.Sessions.CONTENT_MY_SCHEDULE_URI, new String[]{ - ScheduleContract.Sessions.SESSION_ID, ScheduleContract.Sessions.SESSION_TITLE, ScheduleContract.Sessions.SESSION_END, ScheduleContract.Sessions.SESSION_IN_MY_SCHEDULE, - ScheduleContract.Sessions.ROOM_NAME, - ScheduleContract.Sessions.SESSION_SPEAKER_NAMES, }, null, null, @@ -611,13 +619,9 @@ public class SessionAlarmService extends IntentService return; } while (c.moveToNext()) { - final String sessionId = c.getString(0); - final String sessionTitle = c.getString(1); - final long sessionEnd = c.getLong(2); - final String sessionRoom = c.getString(3); - final String sessionSpeakers = c.getString(4); - scheduleFeedbackAlarm(sessionId, sessionEnd, UNDEFINED_ALARM_OFFSET, sessionTitle, - sessionRoom, sessionSpeakers); + final String sessionTitle = c.getString(0); + final long sessionEnd = c.getLong(1); + scheduleFeedbackAlarm(sessionEnd, UNDEFINED_ALARM_OFFSET, sessionTitle); } } @@ -635,16 +639,19 @@ public class SessionAlarmService extends IntentService int ROOM_ID = 2; } - public interface MySessionsExistenceQuery { - + public interface SessionsNeedingFeedbackQuery { String[] PROJECTION = { - ScheduleContract.MySchedule.SESSION_ID + ScheduleContract.Sessions.SESSION_ID, + ScheduleContract.Sessions.SESSION_TITLE, + ScheduleContract.Sessions.SESSION_IN_MY_SCHEDULE, + ScheduleContract.Sessions.HAS_GIVEN_FEEDBACK, }; int SESSION_ID = 0; + int SESSION_TITLE = 1; public static final String WHERE_CLAUSE = - ScheduleContract.MySchedule.SESSION_ID + "=?"; + ScheduleContract.Sessions.HAS_GIVEN_FEEDBACK + "=0"; } @Override diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/BaseActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/BaseActivity.java index 681503c..e052865 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/BaseActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/BaseActivity.java @@ -18,28 +18,51 @@ package com.google.samples.apps.iosched.ui; import android.accounts.Account; import android.accounts.AccountManager; -import android.animation.*; -import android.app.ActionBar; -import android.app.Activity; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.AnimatorSet; +import android.animation.ArgbEvaluator; +import android.animation.ObjectAnimator; +import android.animation.TypeEvaluator; +import android.animation.ValueAnimator; import android.app.AlertDialog; -import android.content.*; +import android.content.ContentResolver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.SyncStatusObserver; import android.content.pm.PackageManager; -import android.content.res.Configuration; import android.graphics.Color; +import android.graphics.Rect; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.os.AsyncTask; -import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; import android.provider.Settings; +import android.support.v4.view.ViewCompat; import android.support.v4.widget.DrawerLayout; +import android.support.v4.widget.SwipeRefreshLayout; +import android.support.v7.app.ActionBar; +import android.support.v7.app.ActionBarActivity; +import android.support.v7.widget.Toolbar; import android.text.TextUtils; -import android.view.*; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; import android.view.animation.DecelerateInterpolator; -import android.widget.*; +import android.widget.AbsListView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ListView; +import android.widget.TextView; +import android.widget.Toast; import com.google.android.gcm.GCMRegistrar; import com.google.android.gms.auth.GoogleAuthUtil; @@ -53,21 +76,35 @@ import com.google.samples.apps.iosched.sync.ConferenceDataHandler; import com.google.samples.apps.iosched.sync.SyncHelper; import com.google.samples.apps.iosched.ui.debug.DebugActionRunnerActivity; import com.google.samples.apps.iosched.ui.widget.MultiSwipeRefreshLayout; -import com.google.samples.apps.iosched.ui.widget.SwipeRefreshLayout; -import com.google.samples.apps.iosched.util.*; +import com.google.samples.apps.iosched.ui.widget.ScrimInsetsScrollView; +import com.google.samples.apps.iosched.util.AccountUtils; +import com.google.samples.apps.iosched.util.AnalyticsManager; +import com.google.samples.apps.iosched.util.HelpUtils; +import com.google.samples.apps.iosched.util.ImageLoader; +import com.google.samples.apps.iosched.util.LUtils; +import com.google.samples.apps.iosched.util.LoginAndAuthHelper; +import com.google.samples.apps.iosched.util.PlayServicesUtils; +import com.google.samples.apps.iosched.util.PrefUtils; +import com.google.samples.apps.iosched.util.RecentTasksStyler; +import com.google.samples.apps.iosched.util.UIUtils; +import com.google.samples.apps.iosched.util.WiFiUtils; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import static com.google.samples.apps.iosched.util.LogUtils.*; +import static com.google.samples.apps.iosched.util.LogUtils.LOGD; +import static com.google.samples.apps.iosched.util.LogUtils.LOGE; +import static com.google.samples.apps.iosched.util.LogUtils.LOGI; +import static com.google.samples.apps.iosched.util.LogUtils.LOGW; +import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; /** * A base activity that handles common functionality in the app. This includes the * navigation drawer, login and authentication, Action Bar tweaks, amongst others. */ -public abstract class BaseActivity extends Activity implements +public abstract class BaseActivity extends ActionBarActivity implements LoginAndAuthHelper.Callbacks, SharedPreferences.OnSharedPreferenceChangeListener, MultiSwipeRefreshLayout.CanChildScrollUpCallback { @@ -78,11 +115,9 @@ public abstract class BaseActivity extends Activity implements // Navigation drawer: private DrawerLayout mDrawerLayout; - private LPreviewUtilsBase.ActionBarDrawerToggleWrapper mDrawerToggle; - // allows access to L-Preview APIs through an abstract interface so we can compile with - // both the L Preview SDK and with the API 19 SDK - private LPreviewUtilsBase mLPreviewUtils; + // Helper methods for L APIs + private LUtils mLUtils; private ObjectAnimator mStatusBarColorAnimator; private LinearLayout mAccountListContainer; @@ -160,6 +195,9 @@ public abstract class BaseActivity extends Activity implements // SwipeRefreshLayout allows the user to swipe the screen down to trigger a manual refresh private SwipeRefreshLayout mSwipeRefreshLayout; + // Primary toolbar and drawer toggle + private Toolbar mActionBarToolbar; + // asynctask that performs GCM registration in the backgorund private AsyncTask<Void, Void, Void> mGCMRegisterTask; @@ -183,6 +221,7 @@ public abstract class BaseActivity extends Activity implements private boolean mManualSyncRequest; private int mThemedStatusBarColor; + private int mNormalStatusBarColor; private int mProgressBarTopWhenActionBarShown; private static final TypeEvaluator ARGB_EVALUATOR = new ArgbEvaluator(); private ImageLoader mImageLoader; @@ -191,6 +230,7 @@ public abstract class BaseActivity extends Activity implements protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AnalyticsManager.initializeAnalyticsTracker(getApplicationContext()); + RecentTasksStyler.styleRecentTasksEntry(this); PrefUtils.init(this); @@ -217,23 +257,23 @@ public abstract class BaseActivity extends Activity implements SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); sp.registerOnSharedPreferenceChangeListener(this); - ActionBar ab = getActionBar(); + ActionBar ab = getSupportActionBar(); if (ab != null) { ab.setDisplayHomeAsUpEnabled(true); } - mLPreviewUtils = LPreviewUtils.getInstance(this); + mLUtils = LUtils.getInstance(this); mThemedStatusBarColor = getResources().getColor(R.color.theme_primary_dark); + mNormalStatusBarColor = mThemedStatusBarColor; } private void trySetupSwipeRefresh() { mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout); if (mSwipeRefreshLayout != null) { - mSwipeRefreshLayout.setColorScheme( + mSwipeRefreshLayout.setColorSchemeResources( R.color.refresh_progress_1, R.color.refresh_progress_2, - R.color.refresh_progress_3, - R.color.refresh_progress_4); + R.color.refresh_progress_3); mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { @@ -258,11 +298,13 @@ public abstract class BaseActivity extends Activity implements return; } - if (mActionBarShown) { - mSwipeRefreshLayout.setProgressBarTop(mProgressBarTopWhenActionBarShown); - } else { - mSwipeRefreshLayout.setProgressBarTop(0); - } + int progressBarStartMargin = getResources().getDimensionPixelSize( + R.dimen.swipe_refresh_progress_bar_start_margin); + int progressBarEndMargin = getResources().getDimensionPixelSize( + R.dimen.swipe_refresh_progress_bar_end_margin); + int top = mActionBarShown ? mProgressBarTopWhenActionBarShown : 0; + mSwipeRefreshLayout.setProgressViewOffset(false, + top + progressBarStartMargin, top + progressBarEndMargin); } /** @@ -287,9 +329,12 @@ public abstract class BaseActivity extends Activity implements if (mDrawerLayout == null) { return; } + mDrawerLayout.setStatusBarBackgroundColor( + getResources().getColor(R.color.theme_primary_dark)); + ScrimInsetsScrollView navDrawer = (ScrimInsetsScrollView) + mDrawerLayout.findViewById(R.id.navdrawer); if (selfItem == NAVDRAWER_ITEM_INVALID) { // do not show a nav drawer - View navDrawer = mDrawerLayout.findViewById(R.id.navdrawer); if (navDrawer != null) { ((ViewGroup) navDrawer.getParent()).removeView(navDrawer); } @@ -297,7 +342,37 @@ public abstract class BaseActivity extends Activity implements return; } - mDrawerToggle = mLPreviewUtils.setupDrawerToggle(mDrawerLayout, new DrawerLayout.DrawerListener() { + if (navDrawer != null) { + final View chosenAccountContentView = findViewById(R.id.chosen_account_content_view); + final View chosenAccountView = findViewById(R.id.chosen_account_view); + final int navDrawerChosenAccountHeight = getResources().getDimensionPixelSize( + R.dimen.navdrawer_chosen_account_height); + navDrawer.setOnInsetsCallback(new ScrimInsetsScrollView.OnInsetsCallback() { + @Override + public void onInsetsChanged(Rect insets) { + ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) + chosenAccountContentView.getLayoutParams(); + lp.topMargin = insets.top; + chosenAccountContentView.setLayoutParams(lp); + + ViewGroup.LayoutParams lp2 = chosenAccountView.getLayoutParams(); + lp2.height = navDrawerChosenAccountHeight + insets.top; + chosenAccountView.setLayoutParams(lp2); + } + }); + } + + if (mActionBarToolbar != null) { + mActionBarToolbar.setNavigationIcon(R.drawable.ic_drawer); + mActionBarToolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mDrawerLayout.openDrawer(Gravity.START); + } + }); + } + + mDrawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerClosed(View drawerView) { // run deferred action, if we have one @@ -309,40 +384,30 @@ public abstract class BaseActivity extends Activity implements mAccountBoxExpanded = false; setupAccountBoxToggle(); } - invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() - updateStatusBarForNavDrawerSlide(0f); onNavDrawerStateChanged(false, false); } @Override public void onDrawerOpened(View drawerView) { - invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() - updateStatusBarForNavDrawerSlide(1f); onNavDrawerStateChanged(true, false); } @Override public void onDrawerStateChanged(int newState) { - invalidateOptionsMenu(); onNavDrawerStateChanged(isNavDrawerOpen(), newState != DrawerLayout.STATE_IDLE); } @Override public void onDrawerSlide(View drawerView, float slideOffset) { - updateStatusBarForNavDrawerSlide(slideOffset); onNavDrawerSlide(slideOffset); } }); - mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, Gravity.START); - getActionBar().setDisplayHomeAsUpEnabled(true); - getActionBar().setHomeButtonEnabled(true); + mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, Gravity.START); // populate the nav drawer with the correct items populateNavDrawer(); - mDrawerToggle.syncState(); - // When the user runs the app for the first time, we want to land them with the // navigation drawer open. But just the first time. if (!PrefUtils.isWelcomeDone(this)) { @@ -352,6 +417,12 @@ public abstract class BaseActivity extends Activity implements } } + @Override + public void setContentView(int layoutResID) { + super.setContentView(layoutResID); + getActionBarToolbar(); + } + // Subclasses can override this for custom behavior protected void onNavDrawerStateChanged(boolean isOpen, boolean isAnimating) { if (mActionBarAutoHideEnabled && isOpen) { @@ -365,6 +436,12 @@ public abstract class BaseActivity extends Activity implements return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(Gravity.START); } + protected void closeNavDrawer() { + if (mDrawerLayout != null) { + mDrawerLayout.closeDrawer(Gravity.START); + } + } + /** Populates the navigation drawer with the appropriate items. */ private void populateNavDrawer() { boolean attendeeAtVenue = PrefUtils.isAttendeeAtVenue(this); @@ -409,6 +486,15 @@ public abstract class BaseActivity extends Activity implements createNavDrawerItems(); } + @Override + public void onBackPressed() { + if (isNavDrawerOpen()) { + closeNavDrawer(); + } else { + super.onBackPressed(); + } + } + private void createNavDrawerItems() { mDrawerItemsListContainer = (ViewGroup) findViewById(R.id.navdrawer_items_list); if (mDrawerItemsListContainer == null) { @@ -507,6 +593,7 @@ public abstract class BaseActivity extends Activity implements if (name == null) { nameTextView.setVisibility(View.GONE); } else { + nameTextView.setVisibility(View.VISIBLE); nameTextView.setText(name); } @@ -557,6 +644,11 @@ public abstract class BaseActivity extends Activity implements ((TextView) itemView.findViewById(R.id.profile_email_text)) .setText(account.name); final String accountName = account.name; + String imageUrl = AccountUtils.getPlusImageUrl(this, accountName); + if (!TextUtils.isEmpty(imageUrl)) { + mImageLoader.loadImage(imageUrl, + (ImageView) itemView.findViewById(R.id.profile_image)); + } itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -654,25 +746,8 @@ public abstract class BaseActivity extends Activity implements } @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - if (mDrawerToggle != null) { - mDrawerToggle.onConfigurationChanged(newConfig); - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - return super.onCreateOptionsMenu(menu); - } - - @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); - if (mDrawerToggle != null && mDrawerToggle.onOptionsItemSelected(item)) { - return true; - } - switch (id) { case R.id.menu_about: HelpUtils.showAbout(this); @@ -1185,13 +1260,22 @@ public abstract class BaseActivity extends Activity implements autoShowOrHideActionBar(shouldShow); } + protected Toolbar getActionBarToolbar() { + if (mActionBarToolbar == null) { + mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar); + if (mActionBarToolbar != null) { + setSupportActionBar(mActionBarToolbar); + } + } + return mActionBarToolbar; + } + protected void autoShowOrHideActionBar(boolean show) { if (show == mActionBarShown) { return; } mActionBarShown = show; - getLPreviewUtils().showHideActionBarIfPartOfDecor(show); onActionBarAutoShowOrHide(show); } @@ -1299,7 +1383,7 @@ public abstract class BaseActivity extends Activity implements } else { // Get the correct GCM key for the user. GCM key is a somewhat non-standard - // approach we use in this app. For more about this, check GCM.TXT. + // approach we use in this app. For more about this, check GCM.MD. final String gcmKey = AccountUtils.hasActiveAccount(this) ? AccountUtils.getGcmKey(this, AccountUtils.getActiveAccountName(this)) : null; // Device is already registered on GCM, needs to check if it is @@ -1413,30 +1497,39 @@ public abstract class BaseActivity extends Activity implements } } - public LPreviewUtilsBase getLPreviewUtils() { - return mLPreviewUtils; + public LUtils getLUtils() { + return mLUtils; } - private void updateStatusBarForNavDrawerSlide(float slideOffset) { - if (mStatusBarColorAnimator != null) { - mStatusBarColorAnimator.cancel(); - } + public int getThemedStatusBarColor() { + return mThemedStatusBarColor; + } - if (!mActionBarShown) { - mLPreviewUtils.setStatusBarColor(Color.BLACK); - return; + public void setNormalStatusBarColor(int color) { + mNormalStatusBarColor = color; + if (mDrawerLayout != null) { + mDrawerLayout.setStatusBarBackgroundColor(mNormalStatusBarColor); } - - mLPreviewUtils.setStatusBarColor((Integer) ARGB_EVALUATOR.evaluate(slideOffset, - mThemedStatusBarColor, Color.BLACK)); } protected void onActionBarAutoShowOrHide(boolean shown) { if (mStatusBarColorAnimator != null) { mStatusBarColorAnimator.cancel(); } - mStatusBarColorAnimator = ObjectAnimator.ofInt(mLPreviewUtils, "statusBarColor", - shown ? mThemedStatusBarColor : Color.BLACK).setDuration(250); + mStatusBarColorAnimator = ObjectAnimator.ofInt( + (mDrawerLayout != null) ? mDrawerLayout : mLUtils, + (mDrawerLayout != null) ? "statusBarBackgroundColor" : "statusBarColor", + shown ? Color.BLACK : mNormalStatusBarColor, + shown ? mNormalStatusBarColor : Color.BLACK) + .setDuration(250); + if (mDrawerLayout != null) { + mStatusBarColorAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator valueAnimator) { + ViewCompat.postInvalidateOnAnimation(mDrawerLayout); + } + }); + } mStatusBarColorAnimator.setEvaluator(ARGB_EVALUATOR); mStatusBarColorAnimator.start(); diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/NearbyActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/BaseMapActivity.java index 7affcc6..89edd17 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/NearbyActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/BaseMapActivity.java @@ -25,16 +25,20 @@ import android.bluetooth.BluetoothManager; import android.content.Intent; import android.content.pm.PackageManager; import android.database.DataSetObserver; +import android.graphics.Rect; import android.os.Build; import android.os.Bundle; +import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.ViewGroup; import android.widget.Button; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.nearby.MetadataResolver; import com.google.samples.apps.iosched.nearby.NearbyDeviceManager; +import com.google.samples.apps.iosched.ui.widget.ScrimInsetsFrameLayout; import com.google.samples.apps.iosched.util.PrefUtils; import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; @@ -47,16 +51,27 @@ import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; * * This activity requires API level 18 because it utilizes BLE. */ -public abstract class NearbyActivity extends BaseActivity implements NearbyFragment.Callbacks { - private static final String TAG = makeLogTag(NearbyActivity.class); +public abstract class BaseMapActivity extends BaseActivity implements NearbyFragment.Callbacks, ScrimInsetsFrameLayout.OnInsetsCallback { + private static final String TAG = makeLogTag(BaseMapActivity.class); private static final int REQUEST_ENABLE_BT = 500; private static final int REQUEST_ENABLE_NEARBY = 501; protected static final String NEARBY_FRAGMENT_TAG = "NEARBY_FRAGMENT"; + /** + * When specified, will automatically point the map to the requested room. + */ + public static final String EXTRA_ROOM = "com.google.android.iosched.extra.ROOM"; + + public static final String EXTRA_DETACHED_MODE + = "com.google.samples.apps.iosched.EXTRA_DETACHED_MODE"; + private boolean mNearbyCapable = false; private boolean mShouldShowNearbyFragment = false; private NearbyDeviceManager mDeviceManager; private Button mNearbyButton; + private boolean mDetachedMode; + + protected MapFragment mMapFragment; @Override protected void onCreate(Bundle savedInstanceState) { @@ -66,6 +81,58 @@ public abstract class NearbyActivity extends BaseActivity implements NearbyFragm && PrefUtils.isAttendeeAtVenue(this)) { mNearbyCapable = initNearby(); } + + FragmentManager fm = getFragmentManager(); + mMapFragment = (MapFragment) fm.findFragmentByTag("map"); + + mDetachedMode = getIntent().getBooleanExtra(EXTRA_DETACHED_MODE, false); + } + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + if (mDetachedMode) { + final Toolbar toolbar = getActionBarToolbar(); + toolbar.setNavigationIcon(R.drawable.ic_up); + toolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + finish(); + } + }); + } + + if (mMapFragment == null) { + mMapFragment = MapFragment.newInstance(); + mMapFragment.setArguments(intentToFragmentArguments(getIntent())); + getFragmentManager().beginTransaction() + .add(R.id.fragment_container_map, mMapFragment, "map") + .commit(); + } + + mDetachedMode = getIntent().getBooleanExtra(EXTRA_DETACHED_MODE, false); + + ScrimInsetsFrameLayout scrimInsetsFrameLayout = (ScrimInsetsFrameLayout) + findViewById(R.id.capture_insets_frame_layout); + scrimInsetsFrameLayout.setOnInsetsCallback(this); + } + + @Override + public void onInsetsChanged(Rect insets) { + Toolbar toolbar = getActionBarToolbar(); + ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) + toolbar.getLayoutParams(); + lp.topMargin = insets.top; + int top = insets.top; + insets.top += getActionBarToolbar().getHeight(); + toolbar.setLayoutParams(lp); + mMapFragment.setMapInsets(insets); + insets.top = top; // revert + } + + @Override + protected int getSelfNavDrawerItem() { + return mDetachedMode ? NAVDRAWER_ITEM_INVALID : NAVDRAWER_ITEM_MAP; } @Override @@ -120,6 +187,15 @@ public abstract class NearbyActivity extends BaseActivity implements NearbyFragm return super.onCreateOptionsMenu(menu); } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (getIntent().getBooleanExtra(EXTRA_DETACHED_MODE, false) + && item.getItemId() == android.R.id.home) { + finish(); + } + return super.onOptionsItemSelected(item); + } + protected abstract void showNearbyFragment(String tag); // Handles a click on the Nearby menu item. Recognizes several states: diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/BrowseSessionsActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/BrowseSessionsActivity.java index adb7647..b687c82 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/BrowseSessionsActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/BrowseSessionsActivity.java @@ -16,14 +16,19 @@ package com.google.samples.apps.iosched.ui; -import android.app.ActionBar; import android.content.Intent; import android.graphics.Paint; import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.OvalShape; import android.os.Bundle; +import android.support.v7.app.ActionBar; +import android.support.v7.widget.Toolbar; import android.text.TextUtils; -import android.view.*; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Spinner; @@ -78,20 +83,20 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag // time when the user last clicked "refresh" from the stale data butter bar private long mLastDataStaleUserActionTime = 0L; + private int mHeaderColor = 0; // 0 means not customized @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_browse_sessions); - getLPreviewUtils().trySetActionBar(); - ActionBar ab = getActionBar(); + Toolbar toolbar = getActionBarToolbar(); long[] interval = ScheduleContract.Sessions.getInterval(getIntent().getData()); if (interval != null) { String title = UIUtils.formatIntervalTimeString(interval[0], interval[1], null, this); - ab.setTitle(title); + toolbar.setTitle(title); mMode = MODE_TIME_FIT; /* [ANALYTICS:SCREEN] * TRIGGER: View the Explore screen to find sessions fitting a time slot @@ -121,8 +126,7 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag if (mMode == MODE_EXPLORE) { // no title (to make more room for navigation and actions) // unless Nav Drawer opens - ab.setTitle(getString(R.string.app_name)); - ab.setDisplayShowTitleEnabled(false); + toolbar.setTitle(null); } mButterBar = findViewById(R.id.butter_bar); @@ -201,12 +205,6 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag } @Override - public void onStart() { - super.onStart(); - updateActionBarNavigation(); - } - - @Override public void onTagMetadataLoaded(TagMetadata metadata) { mTagMetadata = metadata; if (mSpinnerConfigured) { @@ -221,8 +219,8 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag } private void trySetUpActionBarSpinner() { - ActionBar ab = getActionBar(); - if (mMode != MODE_EXPLORE || mSpinnerConfigured || mTagMetadata == null || ab == null) { + Toolbar toolbar = getActionBarToolbar(); + if (mMode != MODE_EXPLORE || mSpinnerConfigured || mTagMetadata == null || toolbar == null) { // already done it, or not ready yet, or don't need to do LOGD(TAG, "Not configuring Action Bar spinner."); return; @@ -246,8 +244,8 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag mTopLevelSpinnerAdapter.addHeader(categoryTitle); for (TagMetadata.Tag tag : mTagMetadata.getTagsInCategory(category)) { LOGD(TAG, "Adding item to spinner: " + tag.getId() + " --> " + tag.getName()); - mTopLevelSpinnerAdapter.addItem(tag.getId(), tag.getName(), true, - Config.Tags.CATEGORY_TOPIC.equals(category) ? tag.getColor() : 0); + int tagColor = Config.Tags.CATEGORY_TOPIC.equals(category) ? tag.getColor() : 0; + mTopLevelSpinnerAdapter.addItem(tag.getId(), tag.getName(), true, tagColor); if (!TextUtils.isEmpty(mFilterTagsToRestore[0]) && tag.getId().equals(mFilterTagsToRestore[0])) { mFilterTagsToRestore[0] = null; itemToSelect = mTopLevelSpinnerAdapter.getCount() - 1; @@ -259,11 +257,11 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag } mFilterTagsToRestore[0] = null; - View spinnerContainer = LayoutInflater.from(getActionBar().getThemedContext()) - .inflate(R.layout.actionbar_spinner, null); + View spinnerContainer = LayoutInflater.from(this).inflate(R.layout.actionbar_spinner, + toolbar, false); ActionBar.LayoutParams lp = new ActionBar.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); - ab.setCustomView(spinnerContainer, lp); + toolbar.addView(spinnerContainer, lp); Spinner spinner = (Spinner) spinnerContainer.findViewById(R.id.actionbar_spinner); spinner.setAdapter(mTopLevelSpinnerAdapter); @@ -282,33 +280,28 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag spinner.setSelection(itemToSelect); } + updateHeaderColor(); showSecondaryFilters(); - updateActionBarNavigation(); } - private void updateActionBarNavigation() { - boolean show = mSpinnerConfigured && !isNavDrawerOpen(); - - ActionBar ab = getActionBar(); - if (mMode == MODE_TIME_FIT) { - ab.setDisplayShowCustomEnabled(false); - ab.setDisplayShowTitleEnabled(true); - ab.setDisplayUseLogoEnabled(false); - } else if (show) { - ab.setDisplayShowCustomEnabled(true); - ab.setDisplayShowTitleEnabled(false); - ab.setDisplayUseLogoEnabled(false); - } else if (getLPreviewUtils().shouldChangeActionBarForDrawer()) { - ab.setDisplayShowCustomEnabled(false); - ab.setDisplayShowTitleEnabled(false); - ab.setDisplayUseLogoEnabled(true); + private void updateHeaderColor() { + mHeaderColor = 0; + for (String tag : mFilterTags) { + if (tag != null) { + TagMetadata.Tag tagObj = mTagMetadata.getTag(tag); + if (tagObj != null && Config.Tags.CATEGORY_TOPIC.equals(tagObj.getCategory())) { + mHeaderColor = tagObj.getColor(); + } + } } - } - - @Override - protected void onNavDrawerStateChanged(boolean isOpen, boolean isAnimating) { - super.onNavDrawerStateChanged(isOpen, isAnimating); - updateActionBarNavigation(); + findViewById(R.id.headerbar).setBackgroundColor( + mHeaderColor == 0 + ? getResources().getColor(R.color.theme_primary) + : mHeaderColor); + setNormalStatusBarColor( + mHeaderColor == 0 + ? getThemedStatusBarColor() + : UIUtils.scaleColor(mHeaderColor, 0.8f, false)); } private void onTopLevelTagSelected(String tag) { @@ -323,6 +316,7 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag // nothing to do return; } + /* [ANALYTICS:EVENT] * TRIGGER: Select a top-level filter on the Explore screen. * CATEGORY: 'Explore' @@ -339,6 +333,7 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag } showSecondaryFilters(); + updateHeaderColor(); reloadFromFilters(); } @@ -412,7 +407,7 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag Bundle args = BaseActivity.intentToFragmentArguments( new Intent(Intent.ACTION_VIEW, ScheduleContract.Sessions.buildTagFilterUri( mFilterTags)) - ); + .putExtra(SessionsFragment.EXTRA_NO_TRACK_BRANDING, mHeaderColor != 0)); frag.reloadFromArguments(args); frag.animateReload(); @@ -467,6 +462,7 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag * [/ANALYTICS] */ AnalyticsManager.sendEvent(SCREEN_LABEL, "secondaryfilter", tag); + updateHeaderColor(); reloadFromFilters(); } } @@ -489,11 +485,6 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); - if (getLPreviewUtils().shouldChangeActionBarForDrawer() && isNavDrawerOpen()) { - // nothing to show if nav drawer is open or animating - return true; - } - getMenuInflater().inflate(R.menu.browse_sessions, menu); // remove actions when in time interval mode: if (mMode != MODE_EXPLORE) { @@ -536,12 +527,10 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag * [/ANALYTICS] */ AnalyticsManager.sendEvent(SCREEN_LABEL, "selectsession", sessionId); - getLPreviewUtils().startActivityWithTransition( - new Intent(Intent.ACTION_VIEW, + getLUtils().startActivityWithTransition(new Intent(Intent.ACTION_VIEW, ScheduleContract.Sessions.buildSessionUri(sessionId)), clickedView, - SessionDetailFragment.VIEW_NAME_PHOTO - ); + SessionDetailActivity.TRANSITION_NAME_PHOTO); } @Override @@ -621,7 +610,7 @@ public class BrowseSessionsActivity extends BaseActivity implements SessionsFrag TextView headerTextView = (TextView) view.findViewById(R.id.header_text); View dividerView = view.findViewById(R.id.divider_view); - TextView normalTextView = (TextView) view.findViewById(R.id.normal_text); + TextView normalTextView = (TextView) view.findViewById(android.R.id.text1); if (isHeader(position)) { headerTextView.setText(getTitle(position)); diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/ExpertsDirectoryActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/ExpertsDirectoryActivity.java index c045ab7..897f93f 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/ExpertsDirectoryActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/ExpertsDirectoryActivity.java @@ -73,7 +73,6 @@ public class ExpertsDirectoryActivity extends BaseActivity implements LoaderMana } setContentView(R.layout.activity_experts_directory); - getLPreviewUtils().trySetActionBar(); AnalyticsManager.sendScreenView(SCREEN_LABEL); mDrawShadowFrameLayout = (DrawShadowFrameLayout) findViewById(R.id.main_content); @@ -107,15 +106,6 @@ public class ExpertsDirectoryActivity extends BaseActivity implements LoaderMana } } - private void updateActionBarNavigation() { - boolean show = !isNavDrawerOpen(); - if (getLPreviewUtils().shouldChangeActionBarForDrawer()) { - ActionBar ab = getActionBar(); - ab.setDisplayShowTitleEnabled(show); - ab.setDisplayUseLogoEnabled(!show); - } - } - @Override protected void onActionBarAutoShowOrHide(boolean shown) { super.onActionBarAutoShowOrHide(shown); @@ -123,12 +113,6 @@ public class ExpertsDirectoryActivity extends BaseActivity implements LoaderMana } @Override - protected void onNavDrawerStateChanged(boolean isOpen, boolean isAnimating) { - super.onNavDrawerStateChanged(isOpen, isAnimating); - updateActionBarNavigation(); - } - - @Override protected int getSelfNavDrawerItem() { return NAVDRAWER_ITEM_EXPERTS_DIRECTORY; } diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/MapFragment.java b/android/src/main/java/com/google/samples/apps/iosched/ui/MapFragment.java index 14d1790..a24b540 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/MapFragment.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/MapFragment.java @@ -16,26 +16,24 @@ package com.google.samples.apps.iosched.ui; -import static com.google.samples.apps.iosched.util.LogUtils.LOGD; -import static com.google.samples.apps.iosched.util.LogUtils.LOGE; -import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; - import android.annotation.SuppressLint; import android.app.Activity; -import android.app.DialogFragment; -import android.content.*; +import android.app.LoaderManager; +import android.app.LoaderManager.LoaderCallbacks; +import android.content.AsyncQueryHandler; +import android.content.ContentResolver; +import android.content.CursorLoader; +import android.content.Loader; +import android.content.SharedPreferences; import android.database.ContentObserver; import android.database.Cursor; import android.graphics.Point; +import android.graphics.Rect; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; -import android.app.LoaderManager; -import android.app.LoaderManager.LoaderCallbacks; -import android.content.CursorLoader; -import android.content.Loader; import android.text.format.DateUtils; import android.util.SparseArray; import android.view.LayoutInflater; @@ -45,15 +43,25 @@ import android.view.ViewTreeObserver; import android.widget.FrameLayout; import com.google.android.gms.maps.CameraUpdate; -import com.google.samples.apps.iosched.R; -import com.google.samples.apps.iosched.provider.ScheduleContract; -import com.google.samples.apps.iosched.util.*; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.Projection; -import com.google.android.gms.maps.model.*; +import com.google.android.gms.maps.model.CameraPosition; +import com.google.android.gms.maps.model.IndoorBuilding; +import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; +import com.google.android.gms.maps.model.MarkerOptions; +import com.google.android.gms.maps.model.TileOverlay; +import com.google.android.gms.maps.model.TileOverlayOptions; +import com.google.android.gms.maps.model.TileProvider; import com.google.maps.android.ui.IconGenerator; +import com.google.samples.apps.iosched.R; +import com.google.samples.apps.iosched.provider.ScheduleContract; +import com.google.samples.apps.iosched.util.AnalyticsManager; +import com.google.samples.apps.iosched.util.MapUtils; +import com.google.samples.apps.iosched.util.PrefUtils; +import com.google.samples.apps.iosched.util.UIUtils; +import com.jakewharton.disklrucache.DiskLruCache; import java.io.File; import java.io.IOException; @@ -62,7 +70,8 @@ import java.util.Formatter; import java.util.HashMap; import java.util.Locale; -import com.jakewharton.disklrucache.DiskLruCache; +import static com.google.samples.apps.iosched.util.LogUtils.LOGD; +import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; /** * Shows a map of the conference venue. @@ -87,12 +96,6 @@ public class MapFragment extends com.google.android.gms.maps.MapFragment impleme // Default level (index of level in IndoorBuilding object for Moscone) private static final int MOSCONE_DEFAULT_LEVEL_INDEX = 1; - - /** - * When specified, will automatically point the map to the requested room. - */ - public static final String EXTRA_ROOM = "com.google.android.iosched.extra.ROOM"; - private static final String TAG = makeLogTag(MapFragment.class); // Marker types @@ -144,6 +147,7 @@ public class MapFragment extends com.google.android.gms.maps.MapFragment impleme private Marker mMosconeMaker = null; private GoogleMap mMap; + private Rect mMapInsets = new Rect(); private MapInfoWindowAdapter mInfoAdapter; @@ -243,8 +247,7 @@ public class MapFragment extends com.google.android.gms.maps.MapFragment impleme setupMap(true); } - - mMap.setPadding(0, UIUtils.calculateActionBarSize(getActivity()), 0, 0); + setMapInsets(mMapInsets); // load all markers LoaderManager lm = getLoaderManager(); @@ -256,6 +259,13 @@ public class MapFragment extends com.google.android.gms.maps.MapFragment impleme return v; } + public void setMapInsets(Rect insets) { + mMapInsets.set(insets); + if (mMap != null) { + mMap.setPadding(mMapInsets.left, mMapInsets.top, mMapInsets.right, mMapInsets.bottom); + } + } + @Override public void onStart() { super.onStart(); @@ -319,8 +329,8 @@ public class MapFragment extends com.google.android.gms.maps.MapFragment impleme mMap.setMyLocationEnabled(false); Bundle data = getArguments(); - if (data != null && data.containsKey(EXTRA_ROOM)) { - mHighlightedRoom = data.getString(EXTRA_ROOM); + if (data != null && data.containsKey(BaseMapActivity.EXTRA_ROOM)) { + mHighlightedRoom = data.getString(BaseMapActivity.EXTRA_ROOM); } LOGD(TAG, "Map setup complete."); diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/MyScheduleActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/MyScheduleActivity.java index 6e1a06d..de96869 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/MyScheduleActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/MyScheduleActivity.java @@ -16,7 +16,6 @@ package com.google.samples.apps.iosched.ui; -import android.app.ActionBar; import android.app.Fragment; import android.app.FragmentManager; import android.app.ListFragment; @@ -127,7 +126,6 @@ public class MyScheduleActivity extends BaseActivity implements MyScheduleFragme protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_schedule); - getLPreviewUtils().trySetActionBar(); /* [ANALYTICS:SCREEN] * TRIGGER: View the My Schedule screen. @@ -142,7 +140,7 @@ public class MyScheduleActivity extends BaseActivity implements MyScheduleFragme int i; for (i = 0; i < Config.CONFERENCE_DAYS.length; i++) { - mScheduleAdapters[i] = new MyScheduleAdapter(this, getLPreviewUtils()); + mScheduleAdapters[i] = new MyScheduleAdapter(this, getLUtils()); } mViewPagerAdapter = new OurViewPagerAdapter(getFragmentManager()); @@ -224,21 +222,6 @@ public class MyScheduleActivity extends BaseActivity implements MyScheduleFragme getResources().getDisplayMetrics())); } - private void updateActionBarNavigation() { - boolean show = !isNavDrawerOpen(); - if (getLPreviewUtils().shouldChangeActionBarForDrawer()) { - ActionBar ab = getActionBar(); - ab.setDisplayShowTitleEnabled(show); - ab.setDisplayUseLogoEnabled(!show); - } - } - - @Override - protected void onNavDrawerStateChanged(boolean isOpen, boolean isAnimating) { - super.onNavDrawerStateChanged(isOpen, isAnimating); - updateActionBarNavigation(); - } - @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); @@ -431,12 +414,6 @@ public class MyScheduleActivity extends BaseActivity implements MyScheduleFragme @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); - - if (getLPreviewUtils().shouldChangeActionBarForDrawer() && isNavDrawerOpen()) { - // nothing to show if nav drawer is open or animating - return true; - } - getMenuInflater().inflate(R.menu.my_schedule, menu); configureStandardMenuItems(menu); return true; diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/MyScheduleAdapter.java b/android/src/main/java/com/google/samples/apps/iosched/ui/MyScheduleAdapter.java index fd515fe..167ab88 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/MyScheduleAdapter.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/MyScheduleAdapter.java @@ -21,6 +21,7 @@ import android.content.Intent; import android.content.res.Resources; import android.database.DataSetObserver; import android.graphics.Color; +import android.graphics.ColorFilter; import android.graphics.Typeface; import android.graphics.drawable.ColorDrawable; import android.net.Uri; @@ -52,7 +53,7 @@ public class MyScheduleAdapter implements ListAdapter, AbsListView.RecyclerListe private static final int VIEW_TYPE_PAST_DURING_CONFERENCE = 2; private final Context mContext; - private final LPreviewUtilsBase mLPreviewUtils; + private final LUtils mLUtils; // additional top padding to add to first item of list int mContentTopClearance = 0; @@ -74,9 +75,9 @@ public class MyScheduleAdapter implements ListAdapter, AbsListView.RecyclerListe // the data and thus shouldn't be used int mDataGeneration = 0; - public MyScheduleAdapter(Context context, LPreviewUtilsBase lPreviewUtils) { + public MyScheduleAdapter(Context context, LUtils lUtils) { mContext = context; - mLPreviewUtils = lPreviewUtils; + mLUtils = lUtils; mDefaultSessionColor = mContext.getResources().getColor(R.color.default_session_color); mDefaultStartTimeColor = mContext.getResources().getColor(R.color.body_text_2); @@ -333,14 +334,13 @@ public class MyScheduleAdapter implements ListAdapter, AbsListView.RecyclerListe final ColorDrawable colorDrawable = new ColorDrawable(color); bgImageView.setImageDrawable(colorDrawable); - bgImageView.setColorFilter(UIUtils.setColorAlpha(color, - UIUtils.SESSION_PHOTO_SCRIM_ALPHA)); + ColorFilter scrimFilter = UIUtils.makeSessionImageScrimColorFilter(color); + bgImageView.setColorFilter(scrimFilter); if (TextUtils.isEmpty(item.backgroundImageUrl)) { sessionImageView.setVisibility(View.GONE); } else { - sessionImageView.setColorFilter(UIUtils.setColorAlpha(color, - UIUtils.SESSION_PHOTO_SCRIM_ALPHA)); + sessionImageView.setColorFilter(scrimFilter); mImageLoader.loadImage(item.backgroundImageUrl, sessionImageView, null, colorDrawable); } @@ -348,7 +348,7 @@ public class MyScheduleAdapter implements ListAdapter, AbsListView.RecyclerListe slotTitleView.setTextColor(isBlockNow ? Color.WHITE : res.getColor(R.color.body_text_1_inverse)); - mLPreviewUtils.setMediumTypeface(slotTitleView); + mLUtils.setMediumTypeface(slotTitleView); if (slotSubtitleView != null) { slotSubtitleView.setText(item.subtitle); slotSubtitleView.setTextColor(res.getColor(R.color.body_text_2_inverse)); diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/NearbyFragment.java b/android/src/main/java/com/google/samples/apps/iosched/ui/NearbyFragment.java index 730b000..fc0fa97 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/NearbyFragment.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/NearbyFragment.java @@ -51,9 +51,6 @@ public class NearbyFragment extends ListFragment { View rootView = inflater.inflate(R.layout.fragment_nearby, container, false); if (getArguments() != null && !getArguments().getBoolean(ARG_HAS_HEADER, true)) { rootView.findViewById(R.id.headerbar).setVisibility(View.GONE); - } else { - ((FrameLayout) rootView.findViewById(R.id.list_container)) - .setForeground(getResources().getDrawable(R.drawable.bottom_shadow)); } Callbacks parentActivity = (Callbacks) getActivity(); diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/PartnersFragment.java b/android/src/main/java/com/google/samples/apps/iosched/ui/PartnersFragment.java index 7309ac8..222ba53 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/PartnersFragment.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/PartnersFragment.java @@ -75,9 +75,6 @@ public class PartnersFragment extends Fragment implements View rootView = inflater.inflate(R.layout.fragment_partners, container, false); if (getArguments() != null && !getArguments().getBoolean(ARG_HAS_HEADER, true)) { rootView.findViewById(R.id.headerbar).setVisibility(View.GONE); - } else { - ((FrameLayout) rootView.findViewById(R.id.list_container)) - .setForeground(getResources().getDrawable(R.drawable.bottom_shadow)); } rootView.findViewById(R.id.close_button).setOnClickListener(new View.OnClickListener() { diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/PeopleIveMetActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/PeopleIveMetActivity.java index 2ca6ced..6f520d6 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/PeopleIveMetActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/PeopleIveMetActivity.java @@ -16,16 +16,12 @@ package com.google.samples.apps.iosched.ui; -import android.app.ActionBar; -import android.content.*; +import android.content.Intent; import android.os.Bundle; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.util.PrefUtils; -import static com.google.samples.apps.iosched.util.LogUtils.LOGD; -import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; - public class PeopleIveMetActivity extends BaseActivity { private static final String FRAGMENT_PEOPLE_IVE_MET = "people_ive_met"; @@ -39,7 +35,6 @@ public class PeopleIveMetActivity extends BaseActivity { } setContentView(R.layout.activity_people_ive_met); - getLPreviewUtils().trySetActionBar(); if (null == savedInstanceState) { getFragmentManager().beginTransaction() @@ -48,25 +43,9 @@ public class PeopleIveMetActivity extends BaseActivity { .commit(); } - setTitle(R.string.title_people_ive_met); overridePendingTransition(0, 0); } - private void updateActionBarNavigation() { - boolean show = !isNavDrawerOpen(); - if (getLPreviewUtils().shouldChangeActionBarForDrawer()) { - ActionBar ab = getActionBar(); - ab.setDisplayShowTitleEnabled(show); - ab.setDisplayUseLogoEnabled(!show); - } - } - - @Override - protected void onNavDrawerStateChanged(boolean isOpen, boolean isAnimating) { - super.onNavDrawerStateChanged(isOpen, isAnimating); - updateActionBarNavigation(); - } - @Override protected int getSelfNavDrawerItem() { return NAVDRAWER_ITEM_PEOPLE_IVE_MET; diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/SearchActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/SearchActivity.java index 0eefe50..645a679 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/SearchActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/SearchActivity.java @@ -17,14 +17,17 @@ package com.google.samples.apps.iosched.ui; import android.app.FragmentManager; import android.app.SearchManager; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.support.v4.content.IntentCompat; +import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.widget.SearchView; +import android.support.v7.widget.SearchView; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.model.TagMetadata; @@ -48,6 +51,19 @@ public class SearchActivity extends BaseActivity implements SessionsFragment.Cal protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search); + + Toolbar toolbar = getActionBarToolbar(); + toolbar.setTitle(R.string.title_search); + toolbar.setNavigationIcon(R.drawable.ic_up); + toolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + navigateUpToFromChild(SearchActivity.this, + IntentCompat.makeMainActivity(new ComponentName(SearchActivity.this, + BrowseSessionsActivity.class))); + } + }); + FragmentManager fm = getFragmentManager(); mSessionsFragment = (SessionsFragment) fm.findFragmentById(R.id.fragment_container); @@ -80,11 +96,11 @@ public class SearchActivity extends BaseActivity implements SessionsFragment.Cal * [/ANALYTICS] */ AnalyticsManager.sendEvent(SCREEN_LABEL, "selectsession", sessionId); - getLPreviewUtils().startActivityWithTransition( + getLUtils().startActivityWithTransition( new Intent(Intent.ACTION_VIEW, ScheduleContract.Sessions.buildSessionUri(sessionId)), clickedView, - SessionDetailFragment.VIEW_NAME_PHOTO); + SessionDetailActivity.TRANSITION_NAME_PHOTO); } @Override diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionDetailActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionDetailActivity.java index f3f64e6..1a07743 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionDetailActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionDetailActivity.java @@ -16,47 +16,279 @@ package com.google.samples.apps.iosched.ui; -import android.app.Fragment; +import android.app.LoaderManager; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.CursorLoader; import android.content.Intent; +import android.content.Loader; import android.content.res.Resources; +import android.database.Cursor; +import android.graphics.Paint; +import android.graphics.drawable.ShapeDrawable; +import android.graphics.drawable.shapes.OvalShape; import android.net.Uri; +import android.os.Build; import android.os.Bundle; +import android.os.Handler; +import android.support.v4.view.ViewCompat; +import android.support.v7.widget.Toolbar; +import android.text.TextUtils; +import android.util.Pair; import android.util.TypedValue; +import android.view.LayoutInflater; +import android.view.Menu; import android.view.MenuItem; -import android.view.Window; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import com.bumptech.glide.request.bitmap.RequestListener; +import com.bumptech.glide.request.target.Target; +import com.google.android.gms.plus.PlusOneButton; +import com.google.android.youtube.player.YouTubeIntents; +import com.google.samples.apps.iosched.Config; import com.google.samples.apps.iosched.R; +import com.google.samples.apps.iosched.model.TagMetadata; +import com.google.samples.apps.iosched.provider.ScheduleContract; +import com.google.samples.apps.iosched.service.SessionAlarmService; +import com.google.samples.apps.iosched.service.SessionCalendarService; +import com.google.samples.apps.iosched.ui.widget.CheckableFrameLayout; +import com.google.samples.apps.iosched.ui.widget.MessageCardView; +import com.google.samples.apps.iosched.ui.widget.ObservableScrollView; +import com.google.samples.apps.iosched.util.AccountUtils; +import com.google.samples.apps.iosched.util.AnalyticsManager; import com.google.samples.apps.iosched.util.BeamUtils; +import com.google.samples.apps.iosched.util.ImageLoader; +import com.google.samples.apps.iosched.util.LogUtils; +import com.google.samples.apps.iosched.util.SessionsHelper; +import com.google.samples.apps.iosched.util.TimeUtils; import com.google.samples.apps.iosched.util.UIUtils; -public class SessionDetailActivity extends SimpleSinglePaneActivity { +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; + +import static com.google.samples.apps.iosched.util.LogUtils.LOGD; + +/** + * An activity that shows detail information for a session, including session title, abstract, + * time information, speaker photos and bios, etc. + */ +public class SessionDetailActivity extends BaseActivity implements + LoaderManager.LoaderCallbacks<Cursor>, + ObservableScrollView.Callbacks { + private static final String TAG = LogUtils.makeLogTag(SessionDetailActivity.class); + + private static final int[] SECTION_HEADER_RES_IDS = { + R.id.session_links_header, + R.id.session_speakers_header, + R.id.session_requirements_header, + R.id.related_videos_header, + }; + private static final float PHOTO_ASPECT_RATIO = 1.7777777f; + + public static final String TRANSITION_NAME_PHOTO = "photo"; + + private Handler mHandler = new Handler(); + private static final int TIME_HINT_UPDATE_INTERVAL = 10000; // 10 sec + + private TagMetadata mTagMetadata; + + private String mSessionId; + private Uri mSessionUri; + + private long mSessionStart; + private long mSessionEnd; + private String mTitleString; + private String mHashTag; + private String mUrl; + private String mRoomId; + private String mRoomName; + private String mTagsString; + + // A comma-separated list of speakers to be passed to Android Wear + private String mSpeakers; + + private boolean mStarred; + private boolean mInitStarred; + private boolean mDismissedWatchLivestreamCard = false; + private boolean mHasLivestream = false; + private MenuItem mSocialStreamMenuItem; + private MenuItem mShareMenuItem; + + private View mScrollViewChild; + private TextView mTitle; + private TextView mSubtitle; + private PlusOneButton mPlusOneButton; + + private ObservableScrollView mScrollView; + private CheckableFrameLayout mAddScheduleButton; + + private TextView mAbstract; + private LinearLayout mTags; + private ViewGroup mTagsContainer; + private TextView mRequirements; + private View mHeaderBox; + private View mDetailsContainer; + + private boolean mSessionCursor = false; + private boolean mSpeakersCursor = false; + private boolean mHasSummaryContent = false; + + private ImageLoader mSpeakersImageLoader, mNoPlaceholderImageLoader; + private List<Runnable> mDeferredUiOperations = new ArrayList<Runnable>(); + + private StringBuilder mBuffer = new StringBuilder(); + + private int mPhotoHeightPixels; + private int mHeaderHeightPixels; + private int mAddScheduleButtonHeightPixels; + + private boolean mHasPhoto; + private View mPhotoViewContainer; + private ImageView mPhotoView; + private int mSessionColor; + private String mLivestreamUrl; + + private Runnable mTimeHintUpdaterRunnable = null; + + private boolean mAlreadyGaveFeedback = false; + private boolean mIsKeynote = false; + + // this set stores the session IDs for which the user has dismissed the + // "give feedback" card. This information is kept for the duration of the app's execution + // so that if they say "No, thanks", we don't show the card again for that session while + // the app is still executing. + private static HashSet<String> sDismissedFeedbackCard = new HashSet<String>(); + + private TextView mSubmitFeedbackView; + private float mMaxHeaderElevation; + private float mFABElevation; + + private int mTagColorDotSize; + @Override protected void onCreate(Bundle savedInstanceState) { UIUtils.tryTranslateHttpIntent(this); BeamUtils.tryUpdateIntentFromBeam(this); - requestWindowFeature(Window.FEATURE_ACTION_BAR); - if (shouldBeFloatingWindow()) { + boolean shouldBeFloatingWindow = shouldBeFloatingWindow(); + if (shouldBeFloatingWindow) { setupFloatingWindow(); } + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_session_detail); + + final Toolbar toolbar = getActionBarToolbar(); + toolbar.setNavigationIcon(shouldBeFloatingWindow + ? R.drawable.ic_ab_close : R.drawable.ic_up); + toolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + finish(); + } + }); + mHandler.post(new Runnable() { + @Override + public void run() { + toolbar.setTitle(""); + } + }); if (savedInstanceState == null) { Uri sessionUri = getIntent().getData(); BeamUtils.setBeamSessionUri(this, sessionUri); } - setTitle(""); - } + mSessionUri = getIntent().getData(); - @Override - protected Fragment onCreatePane() { - return new SessionDetailFragment(); + if (mSessionUri == null) { + return; + } + + mSessionId = ScheduleContract.Sessions.getSessionId(mSessionUri); + + mFABElevation = getResources().getDimensionPixelSize(R.dimen.fab_elevation); + mMaxHeaderElevation = getResources().getDimensionPixelSize( + R.dimen.session_detail_max_header_elevation); + + mTagColorDotSize = getResources().getDimensionPixelSize(R.dimen.tag_color_dot_size); + + mHandler = new Handler(); + + if (mSpeakersImageLoader == null) { + mSpeakersImageLoader = new ImageLoader(this, R.drawable.person_image_empty); + } + if (mNoPlaceholderImageLoader == null) { + mNoPlaceholderImageLoader = new ImageLoader(this); + } + + mScrollView = (ObservableScrollView) findViewById(R.id.scroll_view); + mScrollView.addCallbacks(this); + ViewTreeObserver vto = mScrollView.getViewTreeObserver(); + if (vto.isAlive()) { + vto.addOnGlobalLayoutListener(mGlobalLayoutListener); + } + + mScrollViewChild = findViewById(R.id.scroll_view_child); + mScrollViewChild.setVisibility(View.INVISIBLE); + + mDetailsContainer = findViewById(R.id.details_container); + mHeaderBox = findViewById(R.id.header_session); + mTitle = (TextView) findViewById(R.id.session_title); + mSubtitle = (TextView) findViewById(R.id.session_subtitle); + mPhotoViewContainer = findViewById(R.id.session_photo_container); + mPhotoView = (ImageView) findViewById(R.id.session_photo); + + mPlusOneButton = (PlusOneButton) findViewById(R.id.plus_one_button); + mAbstract = (TextView) findViewById(R.id.session_abstract); + mRequirements = (TextView) findViewById(R.id.session_requirements); + mTags = (LinearLayout) findViewById(R.id.session_tags); + mTagsContainer = (ViewGroup) findViewById(R.id.session_tags_container); + + mAddScheduleButton = (CheckableFrameLayout) findViewById(R.id.add_schedule_button); + mAddScheduleButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + boolean starred = !mStarred; + SessionsHelper helper = new SessionsHelper(SessionDetailActivity.this); + showStarred(starred, true); + helper.setSessionStarred(mSessionUri, starred, mTitleString); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + mAddScheduleButton.announceForAccessibility(starred ? + getString(R.string.session_details_a11y_session_added) : + getString(R.string.session_details_a11y_session_removed)); + } + + /* [ANALYTICS:EVENT] + * TRIGGER: Add or remove a session from My Schedule. + * CATEGORY: 'Session' + * ACTION: 'Starred' or 'Unstarred' + * LABEL: Session title/subtitle. + * [/ANALYTICS] + */ + AnalyticsManager.sendEvent( + "Session", starred ? "Starred" : "Unstarred", mTitleString, 0L); + } + }); + + ViewCompat.setTransitionName(mPhotoView, TRANSITION_NAME_PHOTO); + + LoaderManager manager = getLoaderManager(); + manager.initLoader(SessionsQuery._TOKEN, null, this); + manager.initLoader(SpeakersQuery._TOKEN, null, this); + manager.initLoader(TAG_METADATA_TOKEN, null, this); } @Override public Intent getParentActivityIntent() { - // TODO: make this Activity navigate up to the right screen depending on how it was launched + // TODO(mangini): make this Activity navigate up to the right screen depending on how it was launched return new Intent(this, MyScheduleActivity.class); } @@ -66,8 +298,8 @@ public class SessionDetailActivity extends SimpleSinglePaneActivity { params.width = getResources().getDimensionPixelSize(R.dimen.session_details_floating_width); params.height = getResources().getDimensionPixelSize(R.dimen.session_details_floating_height); params.alpha = 1; - params.dimAmount = 0.7f; - params.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND; + params.dimAmount = 0.4f; + params.flags |= WindowManager.LayoutParams.FLAG_DIM_BEHIND; getWindow().setAttributes(params); } @@ -81,12 +313,972 @@ public class SessionDetailActivity extends SimpleSinglePaneActivity { return (floatingWindowFlag.data != 0); } + private void recomputePhotoAndScrollingMetrics() { + mHeaderHeightPixels = mHeaderBox.getHeight(); + + mPhotoHeightPixels = 0; + if (mHasPhoto) { + mPhotoHeightPixels = (int) (mPhotoView.getWidth() / PHOTO_ASPECT_RATIO); + mPhotoHeightPixels = Math.min(mPhotoHeightPixels, mScrollView.getHeight() * 2 / 3); + } + + ViewGroup.LayoutParams lp; + lp = mPhotoViewContainer.getLayoutParams(); + if (lp.height != mPhotoHeightPixels) { + lp.height = mPhotoHeightPixels; + mPhotoViewContainer.setLayoutParams(lp); + } + + ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) + mDetailsContainer.getLayoutParams(); + if (mlp.topMargin != mHeaderHeightPixels + mPhotoHeightPixels) { + mlp.topMargin = mHeaderHeightPixels + mPhotoHeightPixels; + mDetailsContainer.setLayoutParams(mlp); + } + + onScrollChanged(0, 0); // trigger scroll handling + } + @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() == android.R.id.home) { + protected void onDestroy() { + super.onDestroy(); + if (mScrollView == null) { + return; + } + + ViewTreeObserver vto = mScrollView.getViewTreeObserver(); + if (vto.isAlive()) { + vto.removeGlobalOnLayoutListener(mGlobalLayoutListener); + } + } + + private ViewTreeObserver.OnGlobalLayoutListener mGlobalLayoutListener + = new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + mAddScheduleButtonHeightPixels = mAddScheduleButton.getHeight(); + recomputePhotoAndScrollingMetrics(); + } + }; + + @Override + public void onScrollChanged(int deltaX, int deltaY) { + // Reposition the header bar -- it's normally anchored to the top of the content, + // but locks to the top of the screen on scroll + int scrollY = mScrollView.getScrollY(); + + float newTop = Math.max(mPhotoHeightPixels, scrollY); + mHeaderBox.setTranslationY(newTop); + mAddScheduleButton.setTranslationY(newTop + mHeaderHeightPixels + - mAddScheduleButtonHeightPixels / 2); + + float gapFillProgress = 1; + if (mPhotoHeightPixels != 0) { + gapFillProgress = Math.min(Math.max(UIUtils.getProgress(scrollY, + 0, + mPhotoHeightPixels), 0), 1); + } + + ViewCompat.setElevation(mHeaderBox, gapFillProgress * mMaxHeaderElevation); + ViewCompat.setElevation(mAddScheduleButton, gapFillProgress * mMaxHeaderElevation + + mFABElevation); + + // Move background photo (parallax effect) + mPhotoViewContainer.setTranslationY(scrollY * 0.5f); + } + + @Override + public void onResume() { + super.onResume(); + updatePlusOneButton(); + if (mTimeHintUpdaterRunnable != null) { + mHandler.postDelayed(mTimeHintUpdaterRunnable, TIME_HINT_UPDATE_INTERVAL); + } + + // Refresh whether or not feedback has been submitted + getLoaderManager().restartLoader(FeedbackQuery._TOKEN, null, this); + } + + @Override + public void onStop() { + super.onStop(); + if (mInitStarred != mStarred) { + if (UIUtils.getCurrentTime(this) < mSessionStart) { + // Update Calendar event through the Calendar API on Android 4.0 or new versions. + Intent intent = null; + if (mStarred) { + // Set up intent to add session to Calendar, if it doesn't exist already. + intent = new Intent(SessionCalendarService.ACTION_ADD_SESSION_CALENDAR, + mSessionUri); + intent.putExtra(SessionCalendarService.EXTRA_SESSION_START, + mSessionStart); + intent.putExtra(SessionCalendarService.EXTRA_SESSION_END, + mSessionEnd); + intent.putExtra(SessionCalendarService.EXTRA_SESSION_ROOM, mRoomName); + intent.putExtra(SessionCalendarService.EXTRA_SESSION_TITLE, mTitleString); + } else { + // Set up intent to remove session from Calendar, if exists. + intent = new Intent(SessionCalendarService.ACTION_REMOVE_SESSION_CALENDAR, + mSessionUri); + intent.putExtra(SessionCalendarService.EXTRA_SESSION_START, + mSessionStart); + intent.putExtra(SessionCalendarService.EXTRA_SESSION_END, + mSessionEnd); + intent.putExtra(SessionCalendarService.EXTRA_SESSION_TITLE, mTitleString); + } + intent.setClass(this, SessionCalendarService.class); + startService(intent); + + if (mStarred) { + setupNotification(); + } + } + } + } + + private void setupNotification() { + Intent scheduleIntent; + + // Schedule session notification + if (UIUtils.getCurrentTime(this) < mSessionStart) { + LOGD(TAG, "Scheduling notification about session start."); + scheduleIntent = new Intent( + SessionAlarmService.ACTION_SCHEDULE_STARRED_BLOCK, + null, this, SessionAlarmService.class); + scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_START, mSessionStart); + scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_END, mSessionEnd); + startService(scheduleIntent); + } else { + LOGD(TAG, "Not scheduling notification about session start, too late."); + } + + // Schedule feedback notification + if (UIUtils.getCurrentTime(this) < mSessionEnd) { + LOGD(TAG, "Scheduling notification about session feedback."); + scheduleIntent = new Intent( + SessionAlarmService.ACTION_SCHEDULE_FEEDBACK_NOTIFICATION, + null, this, SessionAlarmService.class); + scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_ID, mSessionId); + scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_START, mSessionStart); + scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_END, mSessionEnd); + scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_TITLE, mTitleString); + scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_ROOM, mRoomName); + scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_SPEAKERS, mSpeakers); + startService(scheduleIntent); + } else { + LOGD(TAG, "Not scheduling feedback notification, too late."); + } + } + + private void updateTimeBasedUi() { + long currentTimeMillis = UIUtils.getCurrentTime(this); + boolean canShowLivestream = mHasLivestream; + + if (canShowLivestream && !mDismissedWatchLivestreamCard + && currentTimeMillis > mSessionStart + && currentTimeMillis <= mSessionEnd) { + // show the "watch now" card + showWatchNowCard(); + } else if (!mAlreadyGaveFeedback && mInitStarred && currentTimeMillis >= (mSessionEnd - + Config.FEEDBACK_MILLIS_BEFORE_SESSION_END) + && !sDismissedFeedbackCard.contains(mSessionId)) { + // show the "give feedback" card + showGiveFeedbackCard(); + } + + String timeHint = ""; + long countdownMillis = mSessionStart - currentTimeMillis; + + if (TimeUtils.hasConferenceEnded(this)) { + // no time hint to display + timeHint = ""; + } else if (currentTimeMillis >= mSessionEnd) { + timeHint = getString(R.string.time_hint_session_ended); + } else if (currentTimeMillis >= mSessionStart) { + long minutesAgo = (currentTimeMillis - mSessionStart) / 60000; + if (minutesAgo > 1) { + timeHint = getString(R.string.time_hint_started_min, minutesAgo); + } else { + timeHint = getString(R.string.time_hint_started_just); + } + } else if (countdownMillis > 0 && countdownMillis < Config.HINT_TIME_BEFORE_SESSION) { + long millisUntil = mSessionStart - currentTimeMillis; + long minutesUntil = millisUntil / 60000 + (millisUntil % 1000 > 0 ? 1 : 0); + if (minutesUntil > 1) { + timeHint = getString(R.string.time_hint_about_to_start_min, minutesUntil); + } else { + timeHint = getString(R.string.time_hint_about_to_start_shortly, minutesUntil); + } + } + + final TextView timeHintView = (TextView) findViewById(R.id.time_hint); + + if (!TextUtils.isEmpty(timeHint)) { + timeHintView.setVisibility(View.VISIBLE); + timeHintView.setText(timeHint); + } else { + timeHintView.setVisibility(View.GONE); + } + } + + private void setTextSelectable(TextView tv) { + if (tv != null && !tv.isTextSelectable()) { + tv.setTextIsSelectable(true); + } + } + + private void onFeedbackQueryComplete(Cursor cursor) { + // Is there existing feedback for this session? + mAlreadyGaveFeedback = cursor.getCount() > 0; + + if (mAlreadyGaveFeedback) { + final MessageCardView giveFeedbackCardView = (MessageCardView) findViewById(R.id.give_feedback_card); + if (giveFeedbackCardView != null) { + giveFeedbackCardView.setVisibility(View.GONE); + } + if (mSubmitFeedbackView != null) { + mSubmitFeedbackView.setVisibility(View.GONE); + } + } + LOGD(TAG, "User " + (mAlreadyGaveFeedback ? "already gave" : "has not given") + " feedback for session."); + cursor.close(); + } + + /** + * Handle {@link SessionsQuery} {@link Cursor}. + */ + private void onSessionQueryComplete(Cursor cursor) { + mSessionCursor = true; + if (!cursor.moveToFirst()) { + // TODO: Remove this in favor of a callbacks interface that the activity + // can implement. finish(); - return true; + return; + } + + mTitleString = cursor.getString(SessionsQuery.TITLE); + mSessionColor = cursor.getInt(SessionsQuery.COLOR); + + if (mSessionColor == 0) { + // no color -- use default + mSessionColor = getResources().getColor(R.color.default_session_color); + } else { + // make sure it's opaque + mSessionColor = UIUtils.setColorAlpha(mSessionColor, 255); + } + + mHeaderBox.setBackgroundColor(mSessionColor); + getLUtils().setStatusBarColor(UIUtils.scaleColor(mSessionColor, 0.8f, false)); + + mLivestreamUrl = cursor.getString(SessionsQuery.LIVESTREAM_URL); + mHasLivestream = !TextUtils.isEmpty(mLivestreamUrl); + + // Format the time this session occupies + mSessionStart = cursor.getLong(SessionsQuery.START); + mSessionEnd = cursor.getLong(SessionsQuery.END); + mRoomName = cursor.getString(SessionsQuery.ROOM_NAME); + mSpeakers = cursor.getString(SessionsQuery.SPEAKER_NAMES); + String subtitle = UIUtils.formatSessionSubtitle( + mSessionStart, mSessionEnd, mRoomName, mBuffer, this); + if (mHasLivestream) { + subtitle += " " + UIUtils.getLiveBadgeText(this, mSessionStart, mSessionEnd); + } + + mTitle.setText(mTitleString); + mSubtitle.setText(subtitle); + + for (int resId : SECTION_HEADER_RES_IDS) { + ((TextView) findViewById(resId)).setTextColor(mSessionColor); + } + + mPhotoViewContainer.setBackgroundColor(UIUtils.scaleSessionColorToDefaultBG(mSessionColor)); + + String photo = cursor.getString(SessionsQuery.PHOTO_URL); + if (!TextUtils.isEmpty(photo)) { + mHasPhoto = true; + mNoPlaceholderImageLoader.loadImage(photo, mPhotoView, new RequestListener<String>() { + @Override + public void onException(Exception e, String url, Target target) { + mHasPhoto = false; + recomputePhotoAndScrollingMetrics(); + } + + @Override + public void onImageReady(String url, Target target, boolean b, boolean b2) { + // Trigger image transition + recomputePhotoAndScrollingMetrics(); + } + }); + recomputePhotoAndScrollingMetrics(); + } else { + mHasPhoto = false; + recomputePhotoAndScrollingMetrics(); + } + + mUrl = cursor.getString(SessionsQuery.URL); + if (TextUtils.isEmpty(mUrl)) { + mUrl = ""; + } + + mHashTag = cursor.getString(SessionsQuery.HASHTAG); + if (!TextUtils.isEmpty(mHashTag)) { + enableSocialStreamMenuItemDeferred(); + } + + mRoomId = cursor.getString(SessionsQuery.ROOM_ID); + + final boolean inMySchedule = cursor.getInt(SessionsQuery.IN_MY_SCHEDULE) != 0; + + setupShareMenuItemDeferred(); + + // Handle Keynote as a special case, where the user cannot remove it + // from the schedule (it is auto added to schedule on sync) + mTagsString = cursor.getString(SessionsQuery.TAGS); + mIsKeynote = mTagsString.contains(Config.Tags.SPECIAL_KEYNOTE); + mAddScheduleButton.setVisibility( + (AccountUtils.hasActiveAccount(this) && !mIsKeynote) + ? View.VISIBLE : View.INVISIBLE); + + tryRenderTags(); + + if (!mIsKeynote) { + showStarredDeferred(mInitStarred = inMySchedule, false); } - return super.onOptionsItemSelected(item); + + final String sessionAbstract = cursor.getString(SessionsQuery.ABSTRACT); + if (!TextUtils.isEmpty(sessionAbstract)) { + UIUtils.setTextMaybeHtml(mAbstract, sessionAbstract); + mAbstract.setVisibility(View.VISIBLE); + mHasSummaryContent = true; + } else { + mAbstract.setVisibility(View.GONE); + } + + updatePlusOneButton(); + + // Build requirements section + final View requirementsBlock = findViewById(R.id.session_requirements_block); + final String sessionRequirements = cursor.getString(SessionsQuery.REQUIREMENTS); + if (!TextUtils.isEmpty(sessionRequirements)) { + UIUtils.setTextMaybeHtml(mRequirements, sessionRequirements); + requirementsBlock.setVisibility(View.VISIBLE); + mHasSummaryContent = true; + } else { + requirementsBlock.setVisibility(View.GONE); + } + + // Build related videos section + final ViewGroup relatedVideosBlock = (ViewGroup) findViewById(R.id.related_videos_block); + relatedVideosBlock.setVisibility(View.GONE); + + // Build links section + buildLinksSection(cursor); + + updateEmptyView(); + + updateTimeBasedUi(); + mHandler.post(new Runnable() { + @Override + public void run() { + onScrollChanged(0, 0); // trigger scroll handling + mScrollViewChild.setVisibility(View.VISIBLE); + //mAbstract.setTextIsSelectable(true); + } + }); + + mTimeHintUpdaterRunnable = new Runnable() { + @Override + public void run() { + updateTimeBasedUi(); + mHandler.postDelayed(mTimeHintUpdaterRunnable, TIME_HINT_UPDATE_INTERVAL); + } + }; + mHandler.postDelayed(mTimeHintUpdaterRunnable, TIME_HINT_UPDATE_INTERVAL); } + + private void tryRenderTags() { + if (mTagMetadata == null || mTagsString == null) { + return; + } + + if (TextUtils.isEmpty(mTagsString)) { + mTagsContainer.setVisibility(View.GONE); + } else { + mTagsContainer.setVisibility(View.VISIBLE); + mTags.removeAllViews(); + LayoutInflater inflater = LayoutInflater.from(this); + String[] tagIds = mTagsString.split(","); + + List<TagMetadata.Tag> tags = new ArrayList<TagMetadata.Tag>(); + for (String tagId : tagIds) { + if (Config.Tags.SESSIONS.equals(tagId) || + Config.Tags.SPECIAL_KEYNOTE.equals(tagId)) { + continue; + } + + TagMetadata.Tag tag = mTagMetadata.getTag(tagId); + if (tag == null) { + continue; + } + + tags.add(tag); + } + + if (tags.size() == 0) { + mTagsContainer.setVisibility(View.GONE); + return; + } + + Collections.sort(tags, TagMetadata.TAG_DISPLAY_ORDER_COMPARATOR); + + for (final TagMetadata.Tag tag : tags) { + TextView chipView = (TextView) inflater.inflate( + R.layout.include_session_tag_chip, mTags, false); + chipView.setText(tag.getName()); + + if (Config.Tags.CATEGORY_TOPIC.equals(tag.getCategory())) { + ShapeDrawable colorDrawable = new ShapeDrawable(new OvalShape()); + colorDrawable.setIntrinsicWidth(mTagColorDotSize); + colorDrawable.setIntrinsicHeight(mTagColorDotSize); + colorDrawable.getPaint().setStyle(Paint.Style.FILL); + chipView.setCompoundDrawablesWithIntrinsicBounds(colorDrawable, + null, null, null); + colorDrawable.getPaint().setColor(tag.getColor()); + } + + chipView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + finish(); // TODO: better encapsulation + Intent intent = new Intent(SessionDetailActivity.this, BrowseSessionsActivity.class) + .putExtra(BrowseSessionsActivity.EXTRA_FILTER_TAG, tag.getId()) + .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); + startActivity(intent); + } + }); + + mTags.addView(chipView); + } + } + } + + private void buildLinksSection(Cursor cursor) { + // Compile list of links (I/O live link, submit feedback, and normal links) + ViewGroup linkContainer = (ViewGroup) findViewById(R.id.links_container); + linkContainer.removeAllViews(); + + + // Build links section + // the Object can be either a string URL or an Intent + List<Pair<Integer, Object>> links = new ArrayList<Pair<Integer, Object>>(); + + long currentTimeMillis = UIUtils.getCurrentTime(this); + if (mHasLivestream + && currentTimeMillis > mSessionStart + && currentTimeMillis <= mSessionEnd) { + links.add(new Pair<Integer, Object>( + R.string.session_link_livestream, + getWatchLiveIntent(this))); + } + + // Add session feedback link, if appropriate + if (!mAlreadyGaveFeedback && currentTimeMillis > mSessionEnd + - Config.FEEDBACK_MILLIS_BEFORE_SESSION_END) { + links.add(new Pair<Integer, Object>( + R.string.session_feedback_submitlink, + getFeedbackIntent() + )); + } + + for (int i = 0; i < SessionsQuery.LINKS_INDICES.length; i++) { + final String linkUrl = cursor.getString(SessionsQuery.LINKS_INDICES[i]); + if (TextUtils.isEmpty(linkUrl)) { + continue; + } + + links.add(new Pair<Integer, Object>( + SessionsQuery.LINKS_TITLES[i], + new Intent(Intent.ACTION_VIEW, Uri.parse(linkUrl)) + .addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET) + )); + } + + // Render links + if (links.size() > 0) { + LayoutInflater inflater = LayoutInflater.from(this); + int columns = getResources().getInteger(R.integer.links_columns); + + LinearLayout currentLinkRowView = null; + for (int i = 0; i < links.size(); i++) { + final Pair<Integer, Object> link = links.get(i); + + // Create link view + TextView linkView = (TextView) inflater.inflate(R.layout.list_item_session_link, + linkContainer, false); + if (link.first == R.string.session_feedback_submitlink) { + mSubmitFeedbackView = linkView; + } + linkView.setText(getString(link.first)); + linkView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + fireLinkEvent(link.first); + Intent intent=null; + if (link.second instanceof Intent) { + intent = (Intent) link.second; + } else if (link.second instanceof String) { + intent = new Intent(Intent.ACTION_VIEW, Uri.parse((String) link.second)) + .addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); + } + try { + startActivity(intent); + } catch (ActivityNotFoundException ignored) { + } + } + }); + + // Place it inside a container + if (columns == 1) { + linkContainer.addView(linkView); + } else { + // create a new link row + if (i % columns == 0) { + currentLinkRowView = (LinearLayout) inflater.inflate( + R.layout.include_link_row, linkContainer, false); + currentLinkRowView.setWeightSum(columns); + linkContainer.addView(currentLinkRowView); + } + + ((LinearLayout.LayoutParams) linkView.getLayoutParams()).width = 0; + ((LinearLayout.LayoutParams) linkView.getLayoutParams()).weight = 1; + currentLinkRowView.addView(linkView); + } + } + + findViewById(R.id.session_links_header).setVisibility(View.VISIBLE); + findViewById(R.id.links_container).setVisibility(View.VISIBLE); + + } else { + findViewById(R.id.session_links_header).setVisibility(View.GONE); + findViewById(R.id.links_container).setVisibility(View.GONE); + } + + } + + @Override + public void onPause() { + super.onPause(); + if (mTimeHintUpdaterRunnable != null) { + mHandler.removeCallbacks(mTimeHintUpdaterRunnable); + } + } + + private Intent getWatchLiveIntent(Context context) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && + YouTubeIntents.canResolvePlayVideoIntent(context)) { + String youtubeVideoId = SessionLivestreamActivity.getVideoIdFromUrl(mLivestreamUrl); + return YouTubeIntents.createPlayVideoIntentWithOptions( + context, youtubeVideoId, true, false); + } + return new Intent(Intent.ACTION_VIEW, mSessionUri).setClass(context, + SessionLivestreamActivity.class); + } + + private void updatePlusOneButton() { + if (mPlusOneButton == null) { + return; + } + + if (!TextUtils.isEmpty(mUrl) && !mIsKeynote) { + mPlusOneButton.initialize(mUrl, 0); + mPlusOneButton.setVisibility(View.VISIBLE); + } else { + mPlusOneButton.setVisibility(View.GONE); + } + } + + private void showWatchNowCard() { + final MessageCardView messageCardView = (MessageCardView) findViewById(R.id.live_now_card); + messageCardView.show(); + messageCardView.setListener(new MessageCardView.OnMessageCardButtonClicked() { + @Override + public void onMessageCardButtonClicked(String tag) { + if ("WATCH_NOW".equals(tag)) { + Intent intent = getWatchLiveIntent(SessionDetailActivity.this); + startActivity(intent); + } else { + mDismissedWatchLivestreamCard = true; + messageCardView.dismiss(); + } + } + }); + } + + private void showGiveFeedbackCard() { + final MessageCardView messageCardView = (MessageCardView) findViewById(R.id.give_feedback_card); + messageCardView.show(); + messageCardView.setListener(new MessageCardView.OnMessageCardButtonClicked() { + @Override + public void onMessageCardButtonClicked(String tag) { + if ("GIVE_FEEDBACK".equals(tag)) { + /* [ANALYTICS:EVENT] + * TRIGGER: Click on the Send Feedback action on the Session Details page. + * CATEGORY: 'Session' + * ACTION: 'Feedback' + * LABEL: session title/subtitle + * [/ANALYTICS] + */ + AnalyticsManager.sendEvent("Session", "Feedback", mTitleString, 0L); + Intent intent = getFeedbackIntent(); + startActivity(intent); + } else { + sDismissedFeedbackCard.add(mSessionId); + messageCardView.dismiss(); + } + } + }); + } + + private Intent getFeedbackIntent() { + return new Intent(Intent.ACTION_VIEW, mSessionUri, this, + SessionFeedbackActivity.class); + } + + private void enableSocialStreamMenuItemDeferred() { + mDeferredUiOperations.add(new Runnable() { + @Override + public void run() { + mSocialStreamMenuItem.setVisible(true); + } + }); + tryExecuteDeferredUiOperations(); + } + + private void showStarredDeferred(final boolean starred, final boolean allowAnimate) { + mDeferredUiOperations.add(new Runnable() { + @Override + public void run() { + showStarred(starred, allowAnimate); + } + }); + tryExecuteDeferredUiOperations(); + } + + private void showStarred(boolean starred, boolean allowAnimate) { + mStarred = starred; + + mAddScheduleButton.setChecked(mStarred, allowAnimate); + + ImageView iconView = (ImageView) mAddScheduleButton.findViewById(R.id.add_schedule_icon); + getLUtils().setOrAnimatePlusCheckIcon(iconView, starred, allowAnimate); + mAddScheduleButton.setContentDescription(getString(starred + ? R.string.remove_from_schedule_desc + : R.string.add_to_schedule_desc)); + } + + private void setupShareMenuItemDeferred() { + mDeferredUiOperations.add(new Runnable() { + @Override + public void run() { + new SessionsHelper(SessionDetailActivity.this).tryConfigureShareMenuItem(mShareMenuItem, + R.string.share_template, mTitleString, mHashTag, mUrl); + } + }); + tryExecuteDeferredUiOperations(); + } + + private void tryExecuteDeferredUiOperations() { + if (mSocialStreamMenuItem != null) { + for (Runnable r : mDeferredUiOperations) { + r.run(); + } + mDeferredUiOperations.clear(); + } + } + + private void onSpeakersQueryComplete(Cursor cursor) { + mSpeakersCursor = true; + final ViewGroup speakersGroup = (ViewGroup) findViewById(R.id.session_speakers_block); + + // Remove all existing speakers (everything but first child, which is the header) + for (int i = speakersGroup.getChildCount() - 1; i >= 1; i--) { + speakersGroup.removeViewAt(i); + } + + final LayoutInflater inflater = getLayoutInflater(); + + boolean hasSpeakers = false; + + cursor.moveToPosition(-1); // move to just before first record + while (cursor.moveToNext()) { + final String speakerName = cursor.getString(SpeakersQuery.SPEAKER_NAME); + if (TextUtils.isEmpty(speakerName)) { + continue; + } + + final String speakerImageUrl = cursor.getString(SpeakersQuery.SPEAKER_IMAGE_URL); + final String speakerCompany = cursor.getString(SpeakersQuery.SPEAKER_COMPANY); + final String speakerUrl = cursor.getString(SpeakersQuery.SPEAKER_URL); + final String speakerAbstract = cursor.getString(SpeakersQuery.SPEAKER_ABSTRACT); + + String speakerHeader = speakerName; + if (!TextUtils.isEmpty(speakerCompany)) { + speakerHeader += ", " + speakerCompany; + } + + final View speakerView = inflater + .inflate(R.layout.speaker_detail, speakersGroup, false); + final TextView speakerHeaderView = (TextView) speakerView + .findViewById(R.id.speaker_header); + final ImageView speakerImageView = (ImageView) speakerView + .findViewById(R.id.speaker_image); + final TextView speakerAbstractView = (TextView) speakerView + .findViewById(R.id.speaker_abstract); + + if (!TextUtils.isEmpty(speakerImageUrl) && mSpeakersImageLoader != null) { + mSpeakersImageLoader.loadImage(speakerImageUrl, speakerImageView); + } + + speakerHeaderView.setText(speakerHeader); + speakerImageView.setContentDescription( + getString(R.string.speaker_googleplus_profile, speakerHeader)); + UIUtils.setTextMaybeHtml(speakerAbstractView, speakerAbstract); + + if (!TextUtils.isEmpty(speakerUrl)) { + speakerImageView.setEnabled(true); + speakerImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent speakerProfileIntent = new Intent(Intent.ACTION_VIEW, + Uri.parse(speakerUrl)); + speakerProfileIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); + UIUtils.preferPackageForIntent(SessionDetailActivity.this, + speakerProfileIntent, + UIUtils.GOOGLE_PLUS_PACKAGE_NAME); + startActivity(speakerProfileIntent); + } + }); + } else { + speakerImageView.setEnabled(false); + speakerImageView.setOnClickListener(null); + } + + speakersGroup.addView(speakerView); + hasSpeakers = true; + mHasSummaryContent = true; + } + + speakersGroup.setVisibility(hasSpeakers ? View.VISIBLE : View.GONE); + updateEmptyView(); + } + + private void updateEmptyView() { + findViewById(android.R.id.empty).setVisibility( + (mSpeakersCursor && mSessionCursor && !mHasSummaryContent) + ? View.VISIBLE + : View.GONE); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + getMenuInflater().inflate(R.menu.session_detail, menu); + mSocialStreamMenuItem = menu.findItem(R.id.menu_social_stream); + mShareMenuItem = menu.findItem(R.id.menu_share); + tryExecuteDeferredUiOperations(); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + SessionsHelper helper = new SessionsHelper(this); + switch (item.getItemId()) { + case R.id.menu_map_room: + /* [ANALYTICS:EVENT] + * TRIGGER: Click on the Map action on the Session Details page. + * CATEGORY: 'Session' + * ACTION: 'Map' + * LABEL: session title/subtitle + * [/ANALYTICS] + */ + AnalyticsManager.sendEvent("Session", "Map", mTitleString, 0L); + helper.startMapActivity(mRoomId); + return true; + + case R.id.menu_share: + // On ICS+ devices, we normally won't reach this as ShareActionProvider will handle + // sharing. + helper.shareSession(this, R.string.share_template, mTitleString, + mHashTag, mUrl); + return true; + + case R.id.menu_social_stream: + if (!TextUtils.isEmpty(mHashTag)) { + /* [ANALYTICS:EVENT] + * TRIGGER: Click on the Social Stream action on the Session Details page. + * CATEGORY: 'Session' + * ACTION: 'Stream' + * LABEL: session title/subtitle + * [/ANALYTICS] + */ + AnalyticsManager.sendEvent("Session", "Stream", mTitleString, 0L); + UIUtils.showHashtagStream(this, mHashTag); + } + return true; + } + return false; + } + + /* + * Event structure: + * Category -> "Session Details" + * Action -> Link Text + * Label -> Session's Title + * Value -> 0. + */ + void fireLinkEvent(int actionId) { + /* [ANALYTICS:EVENT] + * TRIGGER: Click on a link on the Session Details page. + * CATEGORY: 'Session' + * ACTION: The link's name ("Watch Live", "Follow us on Google+", etc) + * LABEL: The session's title/subtitle. + * [/ANALYTICS] + */ + AnalyticsManager.sendEvent("Session", getString(actionId), mTitleString, 0L); + } + + /** + * {@link com.google.samples.apps.iosched.provider.ScheduleContract.Sessions} query parameters. + */ + private interface SessionsQuery { + int _TOKEN = 0x1; + + String[] PROJECTION = { + ScheduleContract.Sessions.SESSION_START, + ScheduleContract.Sessions.SESSION_END, + ScheduleContract.Sessions.SESSION_LEVEL, + ScheduleContract.Sessions.SESSION_TITLE, + ScheduleContract.Sessions.SESSION_ABSTRACT, + ScheduleContract.Sessions.SESSION_REQUIREMENTS, + ScheduleContract.Sessions.SESSION_IN_MY_SCHEDULE, + ScheduleContract.Sessions.SESSION_HASHTAG, + ScheduleContract.Sessions.SESSION_URL, + ScheduleContract.Sessions.SESSION_YOUTUBE_URL, + ScheduleContract.Sessions.SESSION_PDF_URL, + ScheduleContract.Sessions.SESSION_NOTES_URL, + ScheduleContract.Sessions.SESSION_LIVESTREAM_URL, + ScheduleContract.Sessions.SESSION_MODERATOR_URL, + ScheduleContract.Sessions.ROOM_ID, + ScheduleContract.Rooms.ROOM_NAME, + ScheduleContract.Sessions.SESSION_COLOR, + ScheduleContract.Sessions.SESSION_PHOTO_URL, + ScheduleContract.Sessions.SESSION_RELATED_CONTENT, + ScheduleContract.Sessions.SESSION_TAGS, + ScheduleContract.Sessions.SESSION_SPEAKER_NAMES + }; + + int START = 0; + int END = 1; + int LEVEL = 2; + int TITLE = 3; + int ABSTRACT = 4; + int REQUIREMENTS = 5; + int IN_MY_SCHEDULE = 6; + int HASHTAG = 7; + int URL = 8; + int YOUTUBE_URL = 9; + int PDF_URL = 10; + int NOTES_URL = 11; + int LIVESTREAM_URL = 12; + int MODERATOR_URL = 13; + int ROOM_ID = 14; + int ROOM_NAME = 15; + int COLOR = 16; + int PHOTO_URL = 17; + int RELATED_CONTENT = 18; + int TAGS = 19; + int SPEAKER_NAMES = 20; + + int[] LINKS_INDICES = { + YOUTUBE_URL, + MODERATOR_URL, + PDF_URL, + NOTES_URL, + }; + + int[] LINKS_TITLES = { + R.string.session_link_youtube, + R.string.session_link_moderator, + R.string.session_link_pdf, + R.string.session_link_notes, + }; + } + + private interface SpeakersQuery { + int _TOKEN = 0x3; + + String[] PROJECTION = { + ScheduleContract.Speakers.SPEAKER_NAME, + ScheduleContract.Speakers.SPEAKER_IMAGE_URL, + ScheduleContract.Speakers.SPEAKER_COMPANY, + ScheduleContract.Speakers.SPEAKER_ABSTRACT, + ScheduleContract.Speakers.SPEAKER_URL, + }; + + int SPEAKER_NAME = 0; + int SPEAKER_IMAGE_URL = 1; + int SPEAKER_COMPANY = 2; + int SPEAKER_ABSTRACT = 3; + int SPEAKER_URL = 4; + } + + private interface FeedbackQuery { + int _TOKEN = 0x4; + + String[] PROJECTION = { + ScheduleContract.Feedback.SESSION_ID + }; + } + + private static final int TAG_METADATA_TOKEN = 0x5; + + @Override + public Loader<Cursor> onCreateLoader(int id, Bundle data) { + CursorLoader loader = null; + if (id == SessionsQuery._TOKEN){ + loader = new CursorLoader(this, mSessionUri, SessionsQuery.PROJECTION, null, + null, null); + } else if (id == SpeakersQuery._TOKEN && mSessionUri != null){ + Uri speakersUri = ScheduleContract.Sessions.buildSpeakersDirUri(mSessionId); + loader = new CursorLoader(this, speakersUri, SpeakersQuery.PROJECTION, null, + null, ScheduleContract.Speakers.DEFAULT_SORT); + } else if (id == FeedbackQuery._TOKEN) { + Uri feedbackUri = ScheduleContract.Feedback.buildFeedbackUri(mSessionId); + loader = new CursorLoader(this, feedbackUri, FeedbackQuery.PROJECTION, null, + null, null); + } else if (id == TAG_METADATA_TOKEN) { + loader = TagMetadata.createCursorLoader(this); + } + return loader; + } + + @Override + public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { + if (loader.getId() == SessionsQuery._TOKEN) { + onSessionQueryComplete(cursor); + } else if (loader.getId() == SpeakersQuery._TOKEN) { + onSpeakersQueryComplete(cursor); + } else if (loader.getId() == FeedbackQuery._TOKEN) { + onFeedbackQueryComplete(cursor); + } else if (loader.getId() == TAG_METADATA_TOKEN) { + mTagMetadata = new TagMetadata(cursor); + cursor.close(); + tryRenderTags(); + } else { + cursor.close(); + } + } + + @Override + public void onLoaderReset(Loader<Cursor> loader) {} } diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionDetailFragment.java b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionDetailFragment.java deleted file mode 100644 index b824bba..0000000 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionDetailFragment.java +++ /dev/null @@ -1,1306 +0,0 @@ -/* - * Copyright 2014 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.samples.apps.iosched.ui; - -import android.app.Fragment; -import android.app.LoaderManager; -import android.content.*; -import android.database.Cursor; -import android.graphics.Paint; -import android.graphics.drawable.ShapeDrawable; -import android.graphics.drawable.shapes.OvalShape; -import android.net.Uri; -import android.os.Build; -import android.os.Bundle; -import android.os.Handler; -import android.text.TextUtils; -import android.util.Pair; -import android.view.*; -import android.view.View.OnClickListener; -import android.view.animation.DecelerateInterpolator; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.google.android.gms.plus.PlusOneButton; -import com.google.android.youtube.player.YouTubeIntents; -import com.google.samples.apps.iosched.Config; -import com.google.samples.apps.iosched.R; -import com.google.samples.apps.iosched.model.TagMetadata; -import com.google.samples.apps.iosched.provider.ScheduleContract; -import com.google.samples.apps.iosched.service.SessionAlarmService; -import com.google.samples.apps.iosched.service.SessionCalendarService; -import com.google.samples.apps.iosched.ui.widget.CheckableFrameLayout; -import com.google.samples.apps.iosched.ui.widget.MessageCardView; -import com.google.samples.apps.iosched.ui.widget.ObservableScrollView; -import com.google.samples.apps.iosched.util.*; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; - -import com.bumptech.glide.request.bitmap.RequestListener; -import com.bumptech.glide.request.target.Target; - -import static com.google.samples.apps.iosched.util.LogUtils.LOGD; -import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; - -/** - * A fragment that shows detail information for a session, including session title, abstract, - * time information, speaker photos and bios, etc. - */ -public class SessionDetailFragment extends Fragment implements - LoaderManager.LoaderCallbacks<Cursor>, - ObservableScrollView.Callbacks { - - private static final String TAG = makeLogTag(SessionDetailFragment.class); - - private static final int[] SECTION_HEADER_RES_IDS = { - R.id.session_links_header, - R.id.session_speakers_header, - R.id.session_requirements_header, - R.id.related_videos_header, - }; - private static final float PHOTO_ASPECT_RATIO = 1.7777777f; - - public static final String VIEW_NAME_PHOTO = "photo"; - - private Handler mHandler = new Handler(); - private static final int TIME_HINT_UPDATE_INTERVAL = 10000; // 10 sec - - private TagMetadata mTagMetadata; - - private String mSessionId; - private Uri mSessionUri; - - private long mSessionStart; - private long mSessionEnd; - private String mTitleString; - private String mHashTag; - private String mUrl; - private String mRoomId; - private String mRoomName; - private String mTagsString; - - // A comma-separated list of speakers to be passed to Android Wear - private String mSpeakers; - - private boolean mStarred; - private boolean mInitStarred; - private boolean mDismissedWatchLivestreamCard = false; - private boolean mHasLivestream = false; - private MenuItem mSocialStreamMenuItem; - private MenuItem mShareMenuItem; - - private ViewGroup mRootView; - private View mScrollViewChild; - private TextView mTitle; - private TextView mSubtitle; - private PlusOneButton mPlusOneButton; - - private ObservableScrollView mScrollView; - private CheckableFrameLayout mAddScheduleButton; - - private TextView mAbstract; - private LinearLayout mTags; - private ViewGroup mTagsContainer; - private TextView mRequirements; - private View mHeaderBox; - private View mHeaderContentBox; - private View mHeaderBackgroundBox; - private View mHeaderShadow; - private View mDetailsContainer; - - private boolean mSessionCursor = false; - private boolean mSpeakersCursor = false; - private boolean mHasSummaryContent = false; - - private ImageLoader mSpeakersImageLoader, mNoPlaceholderImageLoader; - private List<Runnable> mDeferredUiOperations = new ArrayList<Runnable>(); - - private StringBuilder mBuffer = new StringBuilder(); - - private int mHeaderTopClearance; - private int mPhotoHeightPixels; - private int mHeaderHeightPixels; - private int mAddScheduleButtonHeightPixels; - - private boolean mHasPhoto; - private View mPhotoViewContainer; - private ImageView mPhotoView; - boolean mGapFillShown; - private int mSessionColor; - private String mLivestreamUrl; - - private static final float GAP_FILL_DISTANCE_MULTIPLIER = 1.5f; - - private Runnable mTimeHintUpdaterRunnable = null; - - private boolean mAlreadyGaveFeedback = false; - private boolean mIsKeynote = false; - - // this set stores the session IDs for which the user has dismissed the - // "give feedback" card. This information is kept for the duration of the app's execution - // so that if they say "No, thanks", we don't show the card again for that session while - // the app is still executing. - private static HashSet<String> sDismissedFeedbackCard = new HashSet<String>(); - - private TextView mSubmitFeedbackView; - private float mMaxHeaderElevation; - private float mFABElevation; - - private int mTagColorDotSize; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - final Intent intent = BaseActivity.fragmentArgumentsToIntent(getArguments()); - mSessionUri = intent.getData(); - - if (mSessionUri == null) { - return; - } - - mSessionId = ScheduleContract.Sessions.getSessionId(mSessionUri); - - setHasOptionsMenu(true); - - mFABElevation = getResources().getDimensionPixelSize(R.dimen.fab_elevation); - mMaxHeaderElevation = getResources().getDimensionPixelSize( - R.dimen.session_detail_max_header_elevation); - - mTagColorDotSize = getResources().getDimensionPixelSize(R.dimen.tag_color_dot_size); - - mHandler = new Handler(); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - - mRootView = (ViewGroup) inflater.inflate(R.layout.fragment_session_detail, container, false); - mScrollViewChild = mRootView.findViewById(R.id.scroll_view_child); - mScrollViewChild.setVisibility(View.INVISIBLE); - - mDetailsContainer = mRootView.findViewById(R.id.details_container); - mHeaderBox = mRootView.findViewById(R.id.header_session); - mHeaderContentBox = mRootView.findViewById(R.id.header_session_contents); - mHeaderBackgroundBox = mRootView.findViewById(R.id.header_background); - mHeaderShadow = mRootView.findViewById(R.id.header_shadow); - mTitle = (TextView) mRootView.findViewById(R.id.session_title); - mSubtitle = (TextView) mRootView.findViewById(R.id.session_subtitle); - mPhotoViewContainer = mRootView.findViewById(R.id.session_photo_container); - mPhotoView = (ImageView) mRootView.findViewById(R.id.session_photo); - - mPlusOneButton = (PlusOneButton) mRootView.findViewById(R.id.plus_one_button); - mAbstract = (TextView) mRootView.findViewById(R.id.session_abstract); - mRequirements = (TextView) mRootView.findViewById(R.id.session_requirements); - mTags = (LinearLayout) mRootView.findViewById(R.id.session_tags); - mTagsContainer = (ViewGroup) mRootView.findViewById(R.id.session_tags_container); - - mAddScheduleButton = (CheckableFrameLayout) - mRootView.findViewById(R.id.add_schedule_button); - mAddScheduleButton.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View view) { - boolean starred = !mStarred; - SessionsHelper helper = new SessionsHelper(getActivity()); - showStarred(starred, true); - helper.setSessionStarred(mSessionUri, starred, mTitleString); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - mRootView.announceForAccessibility(starred ? - getString(R.string.session_details_a11y_session_added) : - getString(R.string.session_details_a11y_session_removed)); - } - - /* [ANALYTICS:EVENT] - * TRIGGER: Add or remove a session from My Schedule. - * CATEGORY: 'Session' - * ACTION: 'Starred' or 'Unstarred' - * LABEL: Session title/subtitle. - * [/ANALYTICS] - */ - AnalyticsManager.sendEvent( - "Session", starred ? "Starred" : "Unstarred", mTitleString, 0L); - } - }); - - ((BaseActivity) getActivity()).getLPreviewUtils().setViewName(mPhotoView, VIEW_NAME_PHOTO); - - setupCustomScrolling(mRootView); - return mRootView; - } - - private void recomputePhotoAndScrollingMetrics() { - final int actionBarSize = UIUtils.calculateActionBarSize(getActivity()); - mHeaderTopClearance = actionBarSize - mHeaderContentBox.getPaddingTop(); - mHeaderHeightPixels = mHeaderContentBox.getHeight(); - - mPhotoHeightPixels = mHeaderTopClearance; - if (mHasPhoto) { - mPhotoHeightPixels = (int) (mPhotoView.getWidth() / PHOTO_ASPECT_RATIO); - mPhotoHeightPixels = Math.min(mPhotoHeightPixels, mRootView.getHeight() * 2 / 3); - } - - ViewGroup.LayoutParams lp; - lp = mPhotoViewContainer.getLayoutParams(); - if (lp.height != mPhotoHeightPixels) { - lp.height = mPhotoHeightPixels; - mPhotoViewContainer.setLayoutParams(lp); - } - - lp = mHeaderBackgroundBox.getLayoutParams(); - if (lp.height != mHeaderHeightPixels) { - lp.height = mHeaderHeightPixels; - mHeaderBackgroundBox.setLayoutParams(lp); - } - - ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) - mDetailsContainer.getLayoutParams(); - if (mlp.topMargin != mHeaderHeightPixels + mPhotoHeightPixels) { - mlp.topMargin = mHeaderHeightPixels + mPhotoHeightPixels; - mDetailsContainer.setLayoutParams(mlp); - } - - onScrollChanged(0, 0); // trigger scroll handling - } - - @Override - public void onActivityCreated(Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - if (mSpeakersImageLoader == null) { - mSpeakersImageLoader = new ImageLoader(this.getActivity(), R.drawable.person_image_empty); - } - if (mNoPlaceholderImageLoader == null) { - mNoPlaceholderImageLoader = new ImageLoader(this.getActivity()); - } - } - - private void setupCustomScrolling(View rootView) { - mScrollView = (ObservableScrollView) rootView.findViewById(R.id.scroll_view); - mScrollView.addCallbacks(this); - ViewTreeObserver vto = mScrollView.getViewTreeObserver(); - if (vto.isAlive()) { - vto.addOnGlobalLayoutListener(mGlobalLayoutListener); - } - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - if (mScrollView == null) { - return; - } - - ViewTreeObserver vto = mScrollView.getViewTreeObserver(); - if (vto.isAlive()) { - vto.removeGlobalOnLayoutListener(mGlobalLayoutListener); - } - } - - private ViewTreeObserver.OnGlobalLayoutListener mGlobalLayoutListener - = new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() { - mAddScheduleButtonHeightPixels = mAddScheduleButton.getHeight(); - recomputePhotoAndScrollingMetrics(); - } - }; - - @Override - public void onScrollChanged(int deltaX, int deltaY) { - final BaseActivity activity = (BaseActivity) getActivity(); - if (activity == null) { - return; - } - - // Reposition the header bar -- it's normally anchored to the top of the content, - // but locks to the top of the screen on scroll - int scrollY = mScrollView.getScrollY(); - - float newTop = Math.max(mPhotoHeightPixels, scrollY + mHeaderTopClearance); - mHeaderBox.setTranslationY(newTop); - mAddScheduleButton.setTranslationY(newTop + mHeaderHeightPixels - - mAddScheduleButtonHeightPixels / 2); - - mHeaderBackgroundBox.setPivotY(mHeaderHeightPixels); - int gapFillDistance = (int) (mHeaderTopClearance * GAP_FILL_DISTANCE_MULTIPLIER); - boolean showGapFill = !mHasPhoto || (scrollY > (mPhotoHeightPixels - gapFillDistance)); - float desiredHeaderScaleY = showGapFill ? - ((mHeaderHeightPixels + gapFillDistance + 1) * 1f / mHeaderHeightPixels) - : 1f; - if (!mHasPhoto) { - mHeaderBackgroundBox.setScaleY(desiredHeaderScaleY); - } else if (mGapFillShown != showGapFill) { - mHeaderBackgroundBox.animate() - .scaleY(desiredHeaderScaleY) - .setInterpolator(new DecelerateInterpolator(2f)) - .setDuration(250) - .start(); - } - mGapFillShown = showGapFill; - - LPreviewUtilsBase lpu = activity.getLPreviewUtils(); - - mHeaderShadow.setVisibility(lpu.hasLPreviewAPIs() ? View.GONE : View.VISIBLE); - - if (mHeaderTopClearance != 0) { - // Fill the gap between status bar and header bar with color - float gapFillProgress = Math.min(Math.max(UIUtils.getProgress(scrollY, - mPhotoHeightPixels - mHeaderTopClearance * 2, - mPhotoHeightPixels - mHeaderTopClearance), 0), 1); - lpu.setViewElevation(mHeaderBackgroundBox, gapFillProgress * mMaxHeaderElevation); - lpu.setViewElevation(mHeaderContentBox, gapFillProgress * mMaxHeaderElevation + 0.1f); - lpu.setViewElevation(mAddScheduleButton, gapFillProgress * mMaxHeaderElevation - + mFABElevation); - if (!lpu.hasLPreviewAPIs()) { - mHeaderShadow.setAlpha(gapFillProgress); - } - } - - // Move background photo (parallax effect) - mPhotoViewContainer.setTranslationY(scrollY * 0.5f); - } - - @Override - public void onResume() { - super.onResume(); - updatePlusOneButton(); - if (mTimeHintUpdaterRunnable != null) { - mHandler.postDelayed(mTimeHintUpdaterRunnable, TIME_HINT_UPDATE_INTERVAL); - } - - // Refresh whether or not feedback has been submitted - getLoaderManager().restartLoader(FeedbackQuery._TOKEN, null, this); - } - - @Override - public void onStop() { - super.onStop(); - if (mInitStarred != mStarred) { - if (UIUtils.getCurrentTime(getActivity()) < mSessionStart) { - // Update Calendar event through the Calendar API on Android 4.0 or new versions. - Intent intent = null; - if (mStarred) { - // Set up intent to add session to Calendar, if it doesn't exist already. - intent = new Intent(SessionCalendarService.ACTION_ADD_SESSION_CALENDAR, - mSessionUri); - intent.putExtra(SessionCalendarService.EXTRA_SESSION_START, - mSessionStart); - intent.putExtra(SessionCalendarService.EXTRA_SESSION_END, - mSessionEnd); - intent.putExtra(SessionCalendarService.EXTRA_SESSION_ROOM, mRoomName); - intent.putExtra(SessionCalendarService.EXTRA_SESSION_TITLE, mTitleString); - } else { - // Set up intent to remove session from Calendar, if exists. - intent = new Intent(SessionCalendarService.ACTION_REMOVE_SESSION_CALENDAR, - mSessionUri); - intent.putExtra(SessionCalendarService.EXTRA_SESSION_START, - mSessionStart); - intent.putExtra(SessionCalendarService.EXTRA_SESSION_END, - mSessionEnd); - intent.putExtra(SessionCalendarService.EXTRA_SESSION_TITLE, mTitleString); - } - intent.setClass(getActivity(), SessionCalendarService.class); - getActivity().startService(intent); - - if (mStarred) { - setupNotification(); - } - } - } - } - - private void setupNotification() { - Intent scheduleIntent; - final Context context = getActivity(); - - // Schedule session notification - if (UIUtils.getCurrentTime(context) < mSessionStart) { - LOGD(TAG, "Scheduling notification about session start."); - scheduleIntent = new Intent( - SessionAlarmService.ACTION_SCHEDULE_STARRED_BLOCK, - null, context, SessionAlarmService.class); - scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_START, mSessionStart); - scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_END, mSessionEnd); - context.startService(scheduleIntent); - } else { - LOGD(TAG, "Not scheduling notification about session start, too late."); - } - - // Schedule feedback notification - if (UIUtils.getCurrentTime(context) < mSessionEnd) { - LOGD(TAG, "Scheduling notification about session feedback."); - scheduleIntent = new Intent( - SessionAlarmService.ACTION_SCHEDULE_FEEDBACK_NOTIFICATION, - null, context, SessionAlarmService.class); - scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_ID, mSessionId); - scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_START, mSessionStart); - scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_END, mSessionEnd); - scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_TITLE, mTitleString); - scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_ROOM, mRoomName); - scheduleIntent.putExtra(SessionAlarmService.EXTRA_SESSION_SPEAKERS, mSpeakers); - context.startService(scheduleIntent); - } else { - LOGD(TAG, "Not scheduling feedback notification, too late."); - } - } - - private void updateTimeBasedUi() { - final Context context = mRootView.getContext(); - long currentTimeMillis = UIUtils.getCurrentTime(context); - boolean canShowLivestream = mHasLivestream; - - if (canShowLivestream && !mDismissedWatchLivestreamCard - && currentTimeMillis > mSessionStart - && currentTimeMillis <= mSessionEnd) { - // show the "watch now" card - showWatchNowCard(); - } else if (!mAlreadyGaveFeedback && mInitStarred && currentTimeMillis >= (mSessionEnd - - Config.FEEDBACK_MILLIS_BEFORE_SESSION_END) - && !sDismissedFeedbackCard.contains(mSessionId)) { - // show the "give feedback" card - showGiveFeedbackCard(); - } - - String timeHint = ""; - long countdownMillis = mSessionStart - currentTimeMillis; - - if (TimeUtils.hasConferenceEnded(context)) { - // no time hint to display - timeHint = ""; - } else if (currentTimeMillis >= mSessionEnd) { - timeHint = context.getString(R.string.time_hint_session_ended); - } else if (currentTimeMillis >= mSessionStart) { - long minutesAgo = (currentTimeMillis - mSessionStart) / 60000; - if (minutesAgo > 1) { - timeHint = context.getString(R.string.time_hint_started_min, minutesAgo); - } else { - timeHint = context.getString(R.string.time_hint_started_just); - } - } else if (countdownMillis > 0 && countdownMillis < Config.HINT_TIME_BEFORE_SESSION) { - long millisUntil = mSessionStart - currentTimeMillis; - long minutesUntil = millisUntil / 60000 + (millisUntil % 1000 > 0 ? 1 : 0); - if (minutesUntil > 1) { - timeHint = context.getString(R.string.time_hint_about_to_start_min, minutesUntil); - } else { - timeHint = context.getString(R.string.time_hint_about_to_start_shortly, minutesUntil); - } - } - - final TextView timeHintView = (TextView) mRootView.findViewById(R.id.time_hint); - - if (!TextUtils.isEmpty(timeHint)) { - timeHintView.setVisibility(View.VISIBLE); - timeHintView.setText(timeHint); - } else { - timeHintView.setVisibility(View.GONE); - } - } - - private void setTextSelectable(TextView tv) { - if (tv != null && !tv.isTextSelectable()) { - tv.setTextIsSelectable(true); - } - } - - private void onFeedbackQueryComplete(Cursor cursor) { - // Views have not been set up yet -- continue loading the rest of data - if (mSubmitFeedbackView == null) { - LoaderManager manager = getLoaderManager(); - manager.restartLoader(SessionsQuery._TOKEN, null, this); - manager.restartLoader(SpeakersQuery._TOKEN, null, this); - manager.restartLoader(TAG_METADATA_TOKEN, null, this); - } - - // Is there existing feedback for this session? - mAlreadyGaveFeedback = cursor.getCount() > 0; - - if (mAlreadyGaveFeedback) { - final MessageCardView giveFeedbackCardView = (MessageCardView) mRootView.findViewById( - R.id.give_feedback_card); - if (giveFeedbackCardView != null) { - giveFeedbackCardView.setVisibility(View.GONE); - } - if (mSubmitFeedbackView != null) { - mSubmitFeedbackView.setVisibility(View.GONE); - } - } - LOGD(TAG, "User " + (mAlreadyGaveFeedback ? "already gave" : "has not given") + " feedback for session."); - cursor.close(); - } - - /** - * Handle {@link SessionsQuery} {@link Cursor}. - */ - private void onSessionQueryComplete(Cursor cursor) { - mSessionCursor = true; - if (!cursor.moveToFirst()) { - if (isAdded()) { - // TODO: Remove this in favor of a callbacks interface that the activity - // can implement. - getActivity().finish(); - } - return; - } - - mTitleString = cursor.getString(SessionsQuery.TITLE); - mSessionColor = cursor.getInt(SessionsQuery.COLOR); - - if (mSessionColor == 0) { - // no color -- use default - mSessionColor = getResources().getColor(R.color.default_session_color); - } else { - // make sure it's opaque - mSessionColor = UIUtils.setColorAlpha(mSessionColor, 255); - } - - mHeaderBackgroundBox.setBackgroundColor(mSessionColor); - ((BaseActivity) getActivity()).getLPreviewUtils().setStatusBarColor( - UIUtils.scaleColor(mSessionColor, 0.8f, false)); - - mLivestreamUrl = cursor.getString(SessionsQuery.LIVESTREAM_URL); - mHasLivestream = !TextUtils.isEmpty(mLivestreamUrl); - - // Format the time this session occupies - mSessionStart = cursor.getLong(SessionsQuery.START); - mSessionEnd = cursor.getLong(SessionsQuery.END); - mRoomName = cursor.getString(SessionsQuery.ROOM_NAME); - mSpeakers = cursor.getString(SessionsQuery.SPEAKER_NAMES); - String subtitle = UIUtils.formatSessionSubtitle( - mSessionStart, mSessionEnd, mRoomName, mBuffer, getActivity()); - if (mHasLivestream) { - subtitle += " " + UIUtils.getLiveBadgeText(getActivity(), mSessionStart, mSessionEnd); - } - - mTitle.setText(mTitleString); - mSubtitle.setText(subtitle); - - for (int resId : SECTION_HEADER_RES_IDS) { - ((TextView) mRootView.findViewById(resId)).setTextColor(mSessionColor); - } - - mPhotoViewContainer.setBackgroundColor(UIUtils.scaleSessionColorToDefaultBG(mSessionColor)); - - String photo = cursor.getString(SessionsQuery.PHOTO_URL); - if (!TextUtils.isEmpty(photo)) { - mHasPhoto = true; - mNoPlaceholderImageLoader.loadImage(photo, mPhotoView, new RequestListener<String>() { - @Override - public void onException(Exception e, String url, Target target) { - mHasPhoto = false; - recomputePhotoAndScrollingMetrics(); - } - - @Override - public void onImageReady(String url, Target target, boolean b, boolean b2) { - // Trigger image transition - recomputePhotoAndScrollingMetrics(); - } - }); - recomputePhotoAndScrollingMetrics(); - } else { - mHasPhoto = false; - recomputePhotoAndScrollingMetrics(); - } - - mUrl = cursor.getString(SessionsQuery.URL); - if (TextUtils.isEmpty(mUrl)) { - mUrl = ""; - } - - mHashTag = cursor.getString(SessionsQuery.HASHTAG); - if (!TextUtils.isEmpty(mHashTag)) { - enableSocialStreamMenuItemDeferred(); - } - - mRoomId = cursor.getString(SessionsQuery.ROOM_ID); - - final boolean inMySchedule = cursor.getInt(SessionsQuery.IN_MY_SCHEDULE) != 0; - - setupShareMenuItemDeferred(); - - // Handle Keynote as a special case, where the user cannot remove it - // from the schedule (it is auto added to schedule on sync) - mTagsString = cursor.getString(SessionsQuery.TAGS); - mIsKeynote = mTagsString.contains(Config.Tags.SPECIAL_KEYNOTE); - mAddScheduleButton.setVisibility( - (AccountUtils.hasActiveAccount(getActivity()) && !mIsKeynote) - ? View.VISIBLE : View.INVISIBLE); - - tryRenderTags(); - - if (!mIsKeynote) { - showStarredDeferred(mInitStarred = inMySchedule, false); - } - - final String sessionAbstract = cursor.getString(SessionsQuery.ABSTRACT); - if (!TextUtils.isEmpty(sessionAbstract)) { - UIUtils.setTextMaybeHtml(mAbstract, sessionAbstract); - mAbstract.setVisibility(View.VISIBLE); - mHasSummaryContent = true; - } else { - mAbstract.setVisibility(View.GONE); - } - - updatePlusOneButton(); - - // Build requirements section - final View requirementsBlock = mRootView.findViewById(R.id.session_requirements_block); - final String sessionRequirements = cursor.getString(SessionsQuery.REQUIREMENTS); - if (!TextUtils.isEmpty(sessionRequirements)) { - UIUtils.setTextMaybeHtml(mRequirements, sessionRequirements); - requirementsBlock.setVisibility(View.VISIBLE); - mHasSummaryContent = true; - } else { - requirementsBlock.setVisibility(View.GONE); - } - - // Build related videos section - final ViewGroup relatedVideosBlock = (ViewGroup) mRootView.findViewById(R.id.related_videos_block); - relatedVideosBlock.setVisibility(View.GONE); - - - // Build links section - buildLinksSection(cursor); - - // Show empty message when all data is loaded, and nothing to show - if (mSpeakersCursor && !mHasSummaryContent) { - mRootView.findViewById(android.R.id.empty).setVisibility(View.VISIBLE); - } - - updateTimeBasedUi(); - mHandler.post(new Runnable() { - @Override - public void run() { - onScrollChanged(0, 0); // trigger scroll handling - mScrollViewChild.setVisibility(View.VISIBLE); - //mAbstract.setTextIsSelectable(true); - } - }); - - mTimeHintUpdaterRunnable = new Runnable() { - @Override - public void run() { - if (isAdded()) { - updateTimeBasedUi(); - mHandler.postDelayed(mTimeHintUpdaterRunnable, TIME_HINT_UPDATE_INTERVAL); - } - } - }; - mHandler.postDelayed(mTimeHintUpdaterRunnable, TIME_HINT_UPDATE_INTERVAL); - } - - private void tryRenderTags() { - if (mTagMetadata == null || mTagsString == null || !isAdded()) { - return; - } - - if (TextUtils.isEmpty(mTagsString)) { - mTagsContainer.setVisibility(View.GONE); - } else { - mTagsContainer.setVisibility(View.VISIBLE); - mTags.removeAllViews(); - LayoutInflater inflater = LayoutInflater.from(getActivity()); - String[] tagIds = mTagsString.split(","); - - List<TagMetadata.Tag> tags = new ArrayList<TagMetadata.Tag>(); - for (String tagId : tagIds) { - if (Config.Tags.SESSIONS.equals(tagId) || - Config.Tags.SPECIAL_KEYNOTE.equals(tagId)) { - continue; - } - - TagMetadata.Tag tag = mTagMetadata.getTag(tagId); - if (tag == null) { - continue; - } - - tags.add(tag); - } - - if (tags.size() == 0) { - mTagsContainer.setVisibility(View.GONE); - return; - } - - Collections.sort(tags, TagMetadata.TAG_DISPLAY_ORDER_COMPARATOR); - - for (final TagMetadata.Tag tag : tags) { - TextView chipView = (TextView) inflater.inflate( - R.layout.include_session_tag_chip, mTags, false); - chipView.setText(tag.getName()); - - if (Config.Tags.CATEGORY_TOPIC.equals(tag.getCategory())) { - ShapeDrawable colorDrawable = new ShapeDrawable(new OvalShape()); - colorDrawable.setIntrinsicWidth(mTagColorDotSize); - colorDrawable.setIntrinsicHeight(mTagColorDotSize); - colorDrawable.getPaint().setStyle(Paint.Style.FILL); - chipView.setCompoundDrawablesWithIntrinsicBounds(colorDrawable, - null, null, null); - colorDrawable.getPaint().setColor(tag.getColor()); - } - - chipView.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View view) { - getActivity().finish(); // TODO: better encapsulation - Intent intent = new Intent(getActivity(), BrowseSessionsActivity.class) - .putExtra(BrowseSessionsActivity.EXTRA_FILTER_TAG, tag.getId()) - .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); - startActivity(intent); - } - }); - - mTags.addView(chipView); - } - } - } - - private void buildLinksSection(Cursor cursor) { - final Context context = mRootView.getContext(); - - // Compile list of links (I/O live link, submit feedback, and normal links) - ViewGroup linkContainer = (ViewGroup) mRootView.findViewById(R.id.links_container); - linkContainer.removeAllViews(); - - - // Build links section - // the Object can be either a string URL or an Intent - List<Pair<Integer, Object>> links = new ArrayList<Pair<Integer, Object>>(); - - long currentTimeMillis = UIUtils.getCurrentTime(context); - if (mHasLivestream - && currentTimeMillis > mSessionStart - && currentTimeMillis <= mSessionEnd) { - links.add(new Pair<Integer, Object>( - R.string.session_link_livestream, - getWatchLiveIntent(context))); - } - - // Add session feedback link, if appropriate - if (!mAlreadyGaveFeedback && currentTimeMillis > mSessionEnd - - Config.FEEDBACK_MILLIS_BEFORE_SESSION_END) { - links.add(new Pair<Integer, Object>( - R.string.session_feedback_submitlink, - getFeedbackIntent() - )); - } - - for (int i = 0; i < SessionsQuery.LINKS_INDICES.length; i++) { - final String linkUrl = cursor.getString(SessionsQuery.LINKS_INDICES[i]); - if (TextUtils.isEmpty(linkUrl)) { - continue; - } - - links.add(new Pair<Integer, Object>( - SessionsQuery.LINKS_TITLES[i], - new Intent(Intent.ACTION_VIEW, Uri.parse(linkUrl)) - .addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET) - )); - } - - // Render links - if (links.size() > 0) { - LayoutInflater inflater = LayoutInflater.from(context); - int columns = context.getResources().getInteger(R.integer.links_columns); - - LinearLayout currentLinkRowView = null; - for (int i = 0; i < links.size(); i++) { - final Pair<Integer, Object> link = links.get(i); - - // Create link view - TextView linkView = (TextView) inflater.inflate(R.layout.list_item_session_link, - linkContainer, false); - if (link.first == R.string.session_feedback_submitlink) { - mSubmitFeedbackView = linkView; - } - linkView.setText(getString(link.first)); - linkView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - fireLinkEvent(link.first); - Intent intent=null; - if (link.second instanceof Intent) { - intent = (Intent) link.second; - } else if (link.second instanceof String) { - intent = new Intent(Intent.ACTION_VIEW, Uri.parse((String) link.second)) - .addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - } - try { - startActivity(intent); - } catch (ActivityNotFoundException ignored) { - } - } - }); - - // Place it inside a container - if (columns == 1) { - linkContainer.addView(linkView); - } else { - // create a new link row - if (i % columns == 0) { - currentLinkRowView = (LinearLayout) inflater.inflate( - R.layout.include_link_row, linkContainer, false); - currentLinkRowView.setWeightSum(columns); - linkContainer.addView(currentLinkRowView); - } - - ((LinearLayout.LayoutParams) linkView.getLayoutParams()).width = 0; - ((LinearLayout.LayoutParams) linkView.getLayoutParams()).weight = 1; - currentLinkRowView.addView(linkView); - } - } - - mRootView.findViewById(R.id.session_links_header).setVisibility(View.VISIBLE); - mRootView.findViewById(R.id.links_container).setVisibility(View.VISIBLE); - - } else { - mRootView.findViewById(R.id.session_links_header).setVisibility(View.GONE); - mRootView.findViewById(R.id.links_container).setVisibility(View.GONE); - } - - } - - @Override - public void onPause() { - super.onPause(); - if (mTimeHintUpdaterRunnable != null) { - mHandler.removeCallbacks(mTimeHintUpdaterRunnable); - } - } - - private Intent getWatchLiveIntent(Context context) { - LPreviewUtilsBase lpu = ((BaseActivity) getActivity()).getLPreviewUtils(); - if (lpu.hasLPreviewAPIs() && YouTubeIntents.canResolvePlayVideoIntent(context)) { - String youtubeVideoId = SessionLivestreamActivity.getVideoIdFromUrl(mLivestreamUrl); - return YouTubeIntents.createPlayVideoIntentWithOptions( - context, youtubeVideoId, true, false); - } - return new Intent(Intent.ACTION_VIEW, mSessionUri).setClass(context, - SessionLivestreamActivity.class); - } - - private void updatePlusOneButton() { - if (mPlusOneButton == null) { - return; - } - - if (!TextUtils.isEmpty(mUrl) && !mIsKeynote) { - mPlusOneButton.initialize(mUrl, 0); - mPlusOneButton.setVisibility(View.VISIBLE); - } else { - mPlusOneButton.setVisibility(View.GONE); - } - } - - private void showWatchNowCard() { - final MessageCardView messageCardView = (MessageCardView) mRootView.findViewById( - R.id.live_now_card); - messageCardView.show(); - messageCardView.setListener(new MessageCardView.OnMessageCardButtonClicked() { - @Override - public void onMessageCardButtonClicked(String tag) { - if ("WATCH_NOW".equals(tag)) { - Intent intent = getWatchLiveIntent(getActivity()); - startActivity(intent); - } else { - mDismissedWatchLivestreamCard = true; - messageCardView.dismiss(); - } - } - }); - } - - private void showGiveFeedbackCard() { - final MessageCardView messageCardView = (MessageCardView) mRootView.findViewById( - R.id.give_feedback_card); - messageCardView.show(); - messageCardView.setListener(new MessageCardView.OnMessageCardButtonClicked() { - @Override - public void onMessageCardButtonClicked(String tag) { - if ("GIVE_FEEDBACK".equals(tag)) { - /* [ANALYTICS:EVENT] - * TRIGGER: Click on the Send Feedback action on the Session Details page. - * CATEGORY: 'Session' - * ACTION: 'Feedback' - * LABEL: session title/subtitle - * [/ANALYTICS] - */ - AnalyticsManager.sendEvent("Session", "Feedback", mTitleString, 0L); - Intent intent = getFeedbackIntent(); - startActivity(intent); - } else { - sDismissedFeedbackCard.add(mSessionId); - messageCardView.dismiss(); - } - } - }); - } - - private Intent getFeedbackIntent() { - return new Intent(Intent.ACTION_VIEW, mSessionUri, getActivity(), - SessionFeedbackActivity.class); - } - - private void enableSocialStreamMenuItemDeferred() { - mDeferredUiOperations.add(new Runnable() { - @Override - public void run() { - mSocialStreamMenuItem.setVisible(true); - } - }); - tryExecuteDeferredUiOperations(); - } - - private void showStarredDeferred(final boolean starred, final boolean allowAnimate) { - mDeferredUiOperations.add(new Runnable() { - @Override - public void run() { - showStarred(starred, allowAnimate); - } - }); - tryExecuteDeferredUiOperations(); - } - - private void showStarred(boolean starred, boolean allowAnimate) { - mStarred = starred; - - mAddScheduleButton.setChecked(mStarred, allowAnimate); - - ImageView iconView = (ImageView) mAddScheduleButton.findViewById(R.id.add_schedule_icon); - ((BaseActivity) getActivity()).getLPreviewUtils().setOrAnimatePlusCheckIcon( - iconView, starred, allowAnimate); - mAddScheduleButton.setContentDescription(getString(starred - ? R.string.remove_from_schedule_desc - : R.string.add_to_schedule_desc)); - } - - private void setupShareMenuItemDeferred() { - mDeferredUiOperations.add(new Runnable() { - @Override - public void run() { - new SessionsHelper(getActivity()).tryConfigureShareMenuItem(mShareMenuItem, - R.string.share_template, mTitleString, mHashTag, mUrl); - } - }); - tryExecuteDeferredUiOperations(); - } - - private void tryExecuteDeferredUiOperations() { - if (mSocialStreamMenuItem != null) { - for (Runnable r : mDeferredUiOperations) { - r.run(); - } - mDeferredUiOperations.clear(); - } - } - - private void onSpeakersQueryComplete(Cursor cursor) { - mSpeakersCursor = true; - final ViewGroup speakersGroup = (ViewGroup) - mRootView.findViewById(R.id.session_speakers_block); - - // Remove all existing speakers (everything but first child, which is the header) - for (int i = speakersGroup.getChildCount() - 1; i >= 1; i--) { - speakersGroup.removeViewAt(i); - } - - final LayoutInflater inflater = getActivity().getLayoutInflater(); - - boolean hasSpeakers = false; - - while (cursor.moveToNext()) { - final String speakerName = cursor.getString(SpeakersQuery.SPEAKER_NAME); - if (TextUtils.isEmpty(speakerName)) { - continue; - } - - final String speakerImageUrl = cursor.getString(SpeakersQuery.SPEAKER_IMAGE_URL); - final String speakerCompany = cursor.getString(SpeakersQuery.SPEAKER_COMPANY); - final String speakerUrl = cursor.getString(SpeakersQuery.SPEAKER_URL); - final String speakerAbstract = cursor.getString(SpeakersQuery.SPEAKER_ABSTRACT); - - String speakerHeader = speakerName; - if (!TextUtils.isEmpty(speakerCompany)) { - speakerHeader += ", " + speakerCompany; - } - - final View speakerView = inflater - .inflate(R.layout.speaker_detail, speakersGroup, false); - final TextView speakerHeaderView = (TextView) speakerView - .findViewById(R.id.speaker_header); - final ImageView speakerImageView = (ImageView) speakerView - .findViewById(R.id.speaker_image); - final TextView speakerAbstractView = (TextView) speakerView - .findViewById(R.id.speaker_abstract); - - if (!TextUtils.isEmpty(speakerImageUrl) && mSpeakersImageLoader != null) { - mSpeakersImageLoader.loadImage(speakerImageUrl, speakerImageView); - } - - speakerHeaderView.setText(speakerHeader); - speakerImageView.setContentDescription( - getString(R.string.speaker_googleplus_profile, speakerHeader)); - UIUtils.setTextMaybeHtml(speakerAbstractView, speakerAbstract); - - if (!TextUtils.isEmpty(speakerUrl)) { - speakerImageView.setEnabled(true); - speakerImageView.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View view) { - Intent speakerProfileIntent = new Intent(Intent.ACTION_VIEW, - Uri.parse(speakerUrl)); - speakerProfileIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - UIUtils.preferPackageForIntent(getActivity(), speakerProfileIntent, - UIUtils.GOOGLE_PLUS_PACKAGE_NAME); - startActivity(speakerProfileIntent); - } - }); - } else { - speakerImageView.setEnabled(false); - speakerImageView.setOnClickListener(null); - } - - speakersGroup.addView(speakerView); - hasSpeakers = true; - mHasSummaryContent = true; - } - - speakersGroup.setVisibility(hasSpeakers ? View.VISIBLE : View.GONE); - - // Show empty message when all data is loaded, and nothing to show - if (mSessionCursor && !mHasSummaryContent) { - mRootView.findViewById(android.R.id.empty).setVisibility(View.VISIBLE); - } - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.session_detail, menu); - mSocialStreamMenuItem = menu.findItem(R.id.menu_social_stream); - mShareMenuItem = menu.findItem(R.id.menu_share); - tryExecuteDeferredUiOperations(); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - SessionsHelper helper = new SessionsHelper(getActivity()); - switch (item.getItemId()) { - case R.id.menu_map_room: - /* [ANALYTICS:EVENT] - * TRIGGER: Click on the Map action on the Session Details page. - * CATEGORY: 'Session' - * ACTION: 'Map' - * LABEL: session title/subtitle - * [/ANALYTICS] - */ - AnalyticsManager.sendEvent("Session", "Map", mTitleString, 0L); - helper.startMapActivity(mRoomId); - return true; - - case R.id.menu_share: - // On ICS+ devices, we normally won't reach this as ShareActionProvider will handle - // sharing. - helper.shareSession(getActivity(), R.string.share_template, mTitleString, - mHashTag, mUrl); - return true; - - case R.id.menu_social_stream: - if (!TextUtils.isEmpty(mHashTag)) { - /* [ANALYTICS:EVENT] - * TRIGGER: Click on the Social Stream action on the Session Details page. - * CATEGORY: 'Session' - * ACTION: 'Stream' - * LABEL: session title/subtitle - * [/ANALYTICS] - */ - AnalyticsManager.sendEvent("Session", "Stream", mTitleString, 0L); - UIUtils.showHashtagStream(getActivity(), mHashTag); - } - return true; - } - return false; - } - - @Override - public void onPrepareOptionsMenu(Menu menu) { - } - - @Override - public void onDestroyOptionsMenu() { - } - - /* - * Event structure: - * Category -> "Session Details" - * Action -> Link Text - * Label -> Session's Title - * Value -> 0. - */ - void fireLinkEvent(int actionId) { - /* [ANALYTICS:EVENT] - * TRIGGER: Click on a link on the Session Details page. - * CATEGORY: 'Session' - * ACTION: The link's name ("Watch Live", "Follow us on Google+", etc) - * LABEL: The session's title/subtitle. - * [/ANALYTICS] - */ - AnalyticsManager.sendEvent("Session", getString(actionId), mTitleString, 0L); - } - - /** - * {@link com.google.samples.apps.iosched.provider.ScheduleContract.Sessions} query parameters. - */ - private interface SessionsQuery { - int _TOKEN = 0x1; - - String[] PROJECTION = { - ScheduleContract.Sessions.SESSION_START, - ScheduleContract.Sessions.SESSION_END, - ScheduleContract.Sessions.SESSION_LEVEL, - ScheduleContract.Sessions.SESSION_TITLE, - ScheduleContract.Sessions.SESSION_ABSTRACT, - ScheduleContract.Sessions.SESSION_REQUIREMENTS, - ScheduleContract.Sessions.SESSION_IN_MY_SCHEDULE, - ScheduleContract.Sessions.SESSION_HASHTAG, - ScheduleContract.Sessions.SESSION_URL, - ScheduleContract.Sessions.SESSION_YOUTUBE_URL, - ScheduleContract.Sessions.SESSION_PDF_URL, - ScheduleContract.Sessions.SESSION_NOTES_URL, - ScheduleContract.Sessions.SESSION_LIVESTREAM_URL, - ScheduleContract.Sessions.SESSION_MODERATOR_URL, - ScheduleContract.Sessions.ROOM_ID, - ScheduleContract.Rooms.ROOM_NAME, - ScheduleContract.Sessions.SESSION_COLOR, - ScheduleContract.Sessions.SESSION_PHOTO_URL, - ScheduleContract.Sessions.SESSION_RELATED_CONTENT, - ScheduleContract.Sessions.SESSION_TAGS, - ScheduleContract.Sessions.SESSION_SPEAKER_NAMES - }; - - int START = 0; - int END = 1; - int LEVEL = 2; - int TITLE = 3; - int ABSTRACT = 4; - int REQUIREMENTS = 5; - int IN_MY_SCHEDULE = 6; - int HASHTAG = 7; - int URL = 8; - int YOUTUBE_URL = 9; - int PDF_URL = 10; - int NOTES_URL = 11; - int LIVESTREAM_URL = 12; - int MODERATOR_URL = 13; - int ROOM_ID = 14; - int ROOM_NAME = 15; - int COLOR = 16; - int PHOTO_URL = 17; - int RELATED_CONTENT = 18; - int TAGS = 19; - int SPEAKER_NAMES = 20; - - int[] LINKS_INDICES = { - YOUTUBE_URL, - MODERATOR_URL, - PDF_URL, - NOTES_URL, - }; - - int[] LINKS_TITLES = { - R.string.session_link_youtube, - R.string.session_link_moderator, - R.string.session_link_pdf, - R.string.session_link_notes, - }; - } - - private interface SpeakersQuery { - int _TOKEN = 0x3; - - String[] PROJECTION = { - ScheduleContract.Speakers.SPEAKER_NAME, - ScheduleContract.Speakers.SPEAKER_IMAGE_URL, - ScheduleContract.Speakers.SPEAKER_COMPANY, - ScheduleContract.Speakers.SPEAKER_ABSTRACT, - ScheduleContract.Speakers.SPEAKER_URL, - }; - - int SPEAKER_NAME = 0; - int SPEAKER_IMAGE_URL = 1; - int SPEAKER_COMPANY = 2; - int SPEAKER_ABSTRACT = 3; - int SPEAKER_URL = 4; - } - - private interface FeedbackQuery { - int _TOKEN = 0x4; - - String[] PROJECTION = { - ScheduleContract.Feedback.SESSION_ID - }; - } - - private static final int TAG_METADATA_TOKEN = 0x5; - - @Override - public Loader<Cursor> onCreateLoader(int id, Bundle data) { - CursorLoader loader = null; - if (id == SessionsQuery._TOKEN){ - loader = new CursorLoader(getActivity(), mSessionUri, SessionsQuery.PROJECTION, null, - null, null); - } else if (id == SpeakersQuery._TOKEN && mSessionUri != null){ - Uri speakersUri = ScheduleContract.Sessions.buildSpeakersDirUri(mSessionId); - loader = new CursorLoader(getActivity(), speakersUri, SpeakersQuery.PROJECTION, null, - null, ScheduleContract.Speakers.DEFAULT_SORT); - } else if (id == FeedbackQuery._TOKEN) { - Uri feedbackUri = ScheduleContract.Feedback.buildFeedbackUri(mSessionId); - loader = new CursorLoader(getActivity(), feedbackUri, FeedbackQuery.PROJECTION, null, - null, null); - } else if (id == TAG_METADATA_TOKEN) { - loader = TagMetadata.createCursorLoader(getActivity()); - } - return loader; - } - - @Override - public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { - if (!isAdded()) { - return; - } - - if (loader.getId() == SessionsQuery._TOKEN) { - onSessionQueryComplete(cursor); - } else if (loader.getId() == SpeakersQuery._TOKEN) { - onSpeakersQueryComplete(cursor); - } else if (loader.getId() == FeedbackQuery._TOKEN) { - onFeedbackQueryComplete(cursor); - } else if (loader.getId() == TAG_METADATA_TOKEN) { - mTagMetadata = new TagMetadata(cursor); - cursor.close(); - tryRenderTags(); - } else { - cursor.close(); - } - } - - @Override - public void onLoaderReset(Loader<Cursor> loader) {} -} diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionFeedbackActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionFeedbackActivity.java index e4a9f3a..d2bf0fb 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionFeedbackActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionFeedbackActivity.java @@ -16,10 +16,12 @@ package com.google.samples.apps.iosched.ui; +import android.app.Fragment; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.app.Fragment; +import android.support.v7.widget.Toolbar; +import android.view.View; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.provider.ScheduleContract; @@ -39,11 +41,23 @@ public class SessionFeedbackActivity extends SimpleSinglePaneActivity { } mSessionId = ScheduleContract.Sessions.getSessionId(getIntent().getData()); + + Toolbar toolbar = getActionBarToolbar(); + toolbar.setTitle(R.string.title_session_feedback); + toolbar.setNavigationIcon(R.drawable.ic_up); + toolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + navigateUpToFromChild(SessionFeedbackActivity.this, + new Intent(Intent.ACTION_VIEW, + ScheduleContract.Sessions.buildSessionUri(mSessionId))); + } + }); } @Override protected int getContentViewResId() { - return R.layout.activity_letterboxed_when_large; + return R.layout.activity_feedback; } @Override diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionFeedbackFragment.java b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionFeedbackFragment.java index 0f59861..e5e0d92 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionFeedbackFragment.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionFeedbackFragment.java @@ -18,7 +18,6 @@ package com.google.samples.apps.iosched.ui; import android.app.Fragment; import android.app.LoaderManager; -import android.content.ContentValues; import android.content.CursorLoader; import android.content.Intent; import android.content.Loader; @@ -30,7 +29,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.RatingBar; -import android.widget.SeekBar; import android.widget.TextView; import com.google.android.gms.common.ConnectionResult; @@ -54,7 +52,7 @@ public class SessionFeedbackFragment extends Fragment implements GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener { - private static final String TAG = makeLogTag(SessionDetailFragment.class); + private static final String TAG = makeLogTag(SessionDetailActivity.class); // Set this boolean extra to true to show a variable height header public static final String EXTRA_VARIABLE_HEIGHT_HEADER = diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionLivestreamActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionLivestreamActivity.java index 73cc886..eec9202 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionLivestreamActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionLivestreamActivity.java @@ -765,7 +765,7 @@ public class SessionLivestreamActivity extends BaseActivity implements } private int getActionBarHeightPx() { - int[] attrs = new int[] { android.R.attr.actionBarSize }; + int[] attrs = new int[] { R.attr.actionBarSize }; return (int) getTheme().obtainStyledAttributes(attrs).getDimension(0, 0f); } diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionsFragment.java b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionsFragment.java index 5c0793c..6427cd4 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/SessionsFragment.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/SessionsFragment.java @@ -20,8 +20,14 @@ import android.app.Activity; import android.app.Fragment; import android.app.ListFragment; import android.app.LoaderManager; -import android.content.*; +import android.content.Context; +import android.content.CursorLoader; +import android.content.Intent; +import android.content.Loader; +import android.content.SharedPreferences; import android.database.Cursor; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; import android.net.Uri; import android.os.Bundle; import android.os.Handler; @@ -41,6 +47,8 @@ import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; +import com.bumptech.glide.GenericRequestBuilder; +import com.bumptech.glide.ListPreloader; import com.google.samples.apps.iosched.Config; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.model.TagMetadata; @@ -48,7 +56,12 @@ import com.google.samples.apps.iosched.provider.ScheduleContract; import com.google.samples.apps.iosched.ui.widget.CollectionView; import com.google.samples.apps.iosched.ui.widget.CollectionViewCallbacks; import com.google.samples.apps.iosched.ui.widget.MessageCardView; -import com.google.samples.apps.iosched.util.*; +import com.google.samples.apps.iosched.util.ImageLoader; +import com.google.samples.apps.iosched.util.PrefUtils; +import com.google.samples.apps.iosched.util.ThrottledContentObserver; +import com.google.samples.apps.iosched.util.TimeUtils; +import com.google.samples.apps.iosched.util.UIUtils; +import com.google.samples.apps.iosched.util.WiFiUtils; import java.text.DateFormat; import java.util.ArrayList; @@ -56,10 +69,11 @@ import java.util.HashMap; import java.util.List; import java.util.TimeZone; -import com.bumptech.glide.GenericRequestBuilder; -import com.bumptech.glide.ListPreloader; - -import static com.google.samples.apps.iosched.util.LogUtils.*; +import static com.google.samples.apps.iosched.util.LogUtils.LOGD; +import static com.google.samples.apps.iosched.util.LogUtils.LOGE; +import static com.google.samples.apps.iosched.util.LogUtils.LOGV; +import static com.google.samples.apps.iosched.util.LogUtils.LOGW; +import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; import static com.google.samples.apps.iosched.util.UIUtils.buildStyledSnippet; /** @@ -72,6 +86,10 @@ public class SessionsFragment extends Fragment implements private static final String TAG = makeLogTag(SessionsFragment.class); + // Disable track branding + public static final String EXTRA_NO_TRACK_BRANDING = + "com.google.android.iosched.extra.NO_TRACK_BRANDING"; + private static final String STATE_SESSION_QUERY_TOKEN = "session_query_token"; private static final String STATE_ARGUMENTS = "arguments"; @@ -92,6 +110,7 @@ public class SessionsFragment extends Fragment implements private Uri mCurrentUri = ScheduleContract.Sessions.CONTENT_URI; private Cursor mCursor; private boolean mIsSearchCursor; + private boolean mNoTrackBranding; // this variable is relevant when we start the sessions loader, and indicates the desired // behavior when load finishes: if true, this is a full reload (for example, because filters @@ -231,6 +250,7 @@ public class SessionsFragment extends Fragment implements mArguments = savedInstanceState.getParcelable(STATE_ARGUMENTS); if (mArguments != null) { mCurrentUri = mArguments.getParcelable("_uri"); + mNoTrackBranding = mArguments.getBoolean(EXTRA_NO_TRACK_BRANDING); } if (mSessionQueryToken > 0) { @@ -292,6 +312,8 @@ public class SessionsFragment extends Fragment implements mCurrentUri = ScheduleContract.Sessions.CONTENT_URI; } + mNoTrackBranding = mArguments.getBoolean(EXTRA_NO_TRACK_BRANDING); + if (ScheduleContract.Sessions.isSearchUri(mCurrentUri)) { mSessionQueryToken = SessionsQuery.SEARCH_TOKEN; } else { @@ -694,6 +716,7 @@ public class SessionsFragment extends Fragment implements int sessionColor = mCursor.getInt(SessionsQuery.COLOR); sessionColor = sessionColor == 0 ? getResources().getColor(R.color.default_session_color) : sessionColor; + int darkSessionColor = 0; final String snippet = mIsSearchCursor ? mCursor.getString(SessionsQuery.SNIPPET) : null; final Spannable styledSnippet = mIsSearchCursor ? buildStyledSnippet(snippet) : null; final boolean starred = mCursor.getInt(SessionsQuery.IN_MY_SCHEDULE) != 0; @@ -717,14 +740,18 @@ public class SessionsFragment extends Fragment implements final TextView snippetView = (TextView) view.findViewById(R.id.session_snippet); final TextView abstractView = (TextView) view.findViewById(R.id.session_abstract); final TextView categoryView = (TextView) view.findViewById(R.id.session_category); - final View boxView = view.findViewById(R.id.info_box); final View sessionTargetView = view.findViewById(R.id.session_target); if (sessionColor == 0) { // use default sessionColor = mDefaultSessionColor; } - sessionColor = UIUtils.scaleSessionColorToDefaultBG(sessionColor); + + if (mNoTrackBranding) { + sessionColor = getResources().getColor(R.color.no_track_branding_session_color); + } + + darkSessionColor = UIUtils.scaleSessionColorToDefaultBG(sessionColor); ImageView photoView = (ImageView) view.findViewById(R.id.session_photo_colored); if (photoView != null) { @@ -738,23 +765,23 @@ public class SessionsFragment extends Fragment implements }); } // colored - photoView.setColorFilter(UIUtils.setColorAlpha(sessionColor, - UIUtils.SESSION_PHOTO_SCRIM_ALPHA)); + photoView.setColorFilter(mNoTrackBranding + ? new PorterDuffColorFilter( + getResources().getColor(R.color.no_track_branding_session_tile_overlay), + PorterDuff.Mode.SRC_ATOP) + : UIUtils.makeSessionImageScrimColorFilter(darkSessionColor)); } else { photoView = (ImageView) view.findViewById(R.id.session_photo); } - ((BaseActivity) getActivity()).getLPreviewUtils().setViewName(photoView, - "photo_" + sessionId); - - + ViewCompat.setTransitionName(photoView, "photo_" + sessionId); // when we load a photo, it will fade in from transparent so the // background of the container must be the session color to avoid a white flash ViewParent parent = photoView.getParent(); if (parent != null && parent instanceof View) { - ((View) parent).setBackgroundColor(sessionColor); + ((View) parent).setBackgroundColor(darkSessionColor); } else { - photoView.setBackgroundColor(sessionColor); + photoView.setBackgroundColor(darkSessionColor); } String photo = mCursor.getString(SessionsQuery.PHOTO_URL); @@ -818,11 +845,6 @@ public class SessionsFragment extends Fragment implements abstractView.setText(mBuffer.toString()); } - // in expanded mode, the box background color follows the session color - if (useExpandedMode()) { - boxView.setBackgroundColor(sessionColor); - } - // show or hide the "in my schedule" indicator view.findViewById(R.id.indicator_in_schedule).setVisibility(starred ? View.VISIBLE : View.INVISIBLE); @@ -840,7 +862,7 @@ public class SessionsFragment extends Fragment implements if (cardContainer != null && abstractContainer != null) { cardContainer.setVisibility(cardShown ? View.VISIBLE : View.GONE); abstractContainer.setVisibility(cardShown ? View.GONE : View.VISIBLE); - abstractContainer.setBackgroundColor(sessionColor); + abstractContainer.setBackgroundColor(darkSessionColor); } } @@ -891,7 +913,6 @@ public class SessionsFragment extends Fragment implements } private void setupLocalOrRemoteCard(final MessageCardView card) { - card.overrideBackground(R.drawable.card_bg); card.setText(getString(R.string.question_local_or_remote)); card.setButton(0, getString(R.string.attending_remotely), CARD_ANSWER_ATTENDING_REMOTELY, false, 0); @@ -924,7 +945,6 @@ public class SessionsFragment extends Fragment implements } private void setupWifiOfferCard(final MessageCardView card) { - card.overrideBackground(R.drawable.card_bg); card.setText(getString(TimeUtils.hasConferenceStarted(getActivity()) ? R.string.question_setup_wifi_after_i_o_start : R.string.question_setup_wifi_before_i_o_start)); @@ -955,13 +975,11 @@ public class SessionsFragment extends Fragment implements } private void setupIOExtendedCard(final MessageCardView card) { - card.overrideBackground(R.drawable.card_bg); card.setText(getString(R.string.question_i_o_extended)); card.setButton(0, getString(R.string.no_thanks), CARD_ANSWER_NO, false, 0); card.setButton(1, getString(R.string.browse_events), CARD_ANSWER_YES, true, 0); - final Context context = getActivity().getApplicationContext(); card.setListener(new MessageCardView.OnMessageCardButtonClicked() { @Override public void onMessageCardButtonClicked(final String tag) { diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/SettingsActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/SettingsActivity.java index 1e2e1a7..4e138c8 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/SettingsActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/SettingsActivity.java @@ -16,12 +16,14 @@ package com.google.samples.apps.iosched.ui; -import android.annotation.TargetApi; +import android.content.ComponentName; import android.content.Intent; import android.content.SharedPreferences; -import android.os.Build; import android.os.Bundle; -import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; +import android.support.v4.content.IntentCompat; +import android.support.v7.widget.Toolbar; +import android.view.View; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.service.SessionCalendarService; @@ -30,50 +32,71 @@ import com.google.samples.apps.iosched.util.PrefUtils; /** * Activity for customizing app settings. */ -public class SettingsActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { +public class SettingsActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getActionBar().setDisplayHomeAsUpEnabled(true); - } + setContentView(R.layout.activity_settings); - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); - setupSimplePreferencesScreen(); - PrefUtils.registerOnSharedPreferenceChangeListener(this, this); - } + Toolbar toolbar = getActionBarToolbar(); + toolbar.setTitle(R.string.title_settings); + toolbar.setNavigationIcon(R.drawable.ic_up); + toolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + navigateUpToFromChild(SettingsActivity.this, + IntentCompat.makeMainActivity(new ComponentName(SettingsActivity.this, + BrowseSessionsActivity.class))); + } + }); - @Override - protected void onDestroy() { - super.onDestroy(); - PrefUtils.unrgisterOnSharedPreferenceChangeListener(this, this); + if (savedInstanceState == null) { + getFragmentManager().beginTransaction() + .add(R.id.container, new SettingsFragment()) + .commit(); + } } - private void setupSimplePreferencesScreen() { - // Add 'general' preferences. - addPreferencesFromResource(R.xml.preferences); - if (PrefUtils.hasEnabledBle(this)) { - addPreferencesFromResource(R.xml.ble_preferences); + public static class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener { + public SettingsFragment() { } - } - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if (PrefUtils.PREF_SYNC_CALENDAR.equals(key)) { - boolean shouldSyncCalendar = PrefUtils.shouldSyncCalendar(this); + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setupSimplePreferencesScreen(); + PrefUtils.registerOnSharedPreferenceChangeListener(getActivity(), this); + } + + @Override + public void onDestroy() { + super.onDestroy(); + PrefUtils.unregisterOnSharedPreferenceChangeListener(getActivity(), this); + } - Intent intent; - if (PrefUtils.shouldSyncCalendar(this)) { - // Add all calendar entries - intent = new Intent(SessionCalendarService.ACTION_UPDATE_ALL_SESSIONS_CALENDAR); - } else { - // Remove all calendar entries - intent = new Intent(SessionCalendarService.ACTION_CLEAR_ALL_SESSIONS_CALENDAR); + private void setupSimplePreferencesScreen() { + // Add 'general' preferences. + addPreferencesFromResource(R.xml.preferences); + if (PrefUtils.hasEnabledBle(getActivity())) { + addPreferencesFromResource(R.xml.ble_preferences); } + } + + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + if (PrefUtils.PREF_SYNC_CALENDAR.equals(key)) { + Intent intent; + if (PrefUtils.shouldSyncCalendar(getActivity())) { + // Add all calendar entries + intent = new Intent(SessionCalendarService.ACTION_UPDATE_ALL_SESSIONS_CALENDAR); + } else { + // Remove all calendar entries + intent = new Intent(SessionCalendarService.ACTION_CLEAR_ALL_SESSIONS_CALENDAR); + } - intent.setClass(this, SessionCalendarService.class); - startService(intent); + intent.setClass(getActivity(), SessionCalendarService.class); + getActivity().startService(intent); + } } } } diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/SocialActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/SocialActivity.java index 6acb8da..ce43a3e 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/SocialActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/SocialActivity.java @@ -17,7 +17,6 @@ package com.google.samples.apps.iosched.ui; import android.os.Bundle; -import android.app.ActionBar; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.util.AnalyticsManager; @@ -38,7 +37,7 @@ public class SocialActivity extends BaseActivity { } setContentView(R.layout.activity_social); - getLPreviewUtils().trySetActionBar(); + if (null == savedInstanceState) { getFragmentManager().beginTransaction() .replace(R.id.container, HashtagsFragment.newInstance()) @@ -56,21 +55,6 @@ public class SocialActivity extends BaseActivity { overridePendingTransition(0, 0); } - private void updateActionBarNavigation() { - boolean show = !isNavDrawerOpen(); - if (getLPreviewUtils().shouldChangeActionBarForDrawer()) { - ActionBar ab = getActionBar(); - ab.setDisplayShowTitleEnabled(show); - ab.setDisplayUseLogoEnabled(!show); - } - } - - @Override - protected void onNavDrawerStateChanged(boolean isOpen, boolean isAnimating) { - super.onNavDrawerStateChanged(isOpen, isAnimating); - updateActionBarNavigation(); - } - @Override protected int getSelfNavDrawerItem() { return NAVDRAWER_ITEM_SOCIAL; diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/VideoLibraryActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/VideoLibraryActivity.java index 3f764a8..8b1c28c 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/VideoLibraryActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/VideoLibraryActivity.java @@ -16,7 +16,6 @@ package com.google.samples.apps.iosched.ui; -import android.app.ActionBar; import android.app.Fragment; import android.os.Bundle; import android.text.TextUtils; @@ -35,7 +34,9 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import static com.google.samples.apps.iosched.util.LogUtils.*; +import static com.google.samples.apps.iosched.util.LogUtils.LOGD; +import static com.google.samples.apps.iosched.util.LogUtils.LOGE; +import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; public class VideoLibraryActivity extends BaseActivity implements VideoLibraryFragment.Callbacks { private static final String TAG = makeLogTag(VideoLibraryActivity.class); @@ -64,7 +65,7 @@ public class VideoLibraryActivity extends BaseActivity implements VideoLibraryFr } setContentView(R.layout.activity_video_library); - getLPreviewUtils().trySetActionBar(); + mDrawShadowFrameLayout = (DrawShadowFrameLayout) findViewById(R.id.main_content); /* [ANALYTICS:SCREEN] @@ -87,7 +88,7 @@ public class VideoLibraryActivity extends BaseActivity implements VideoLibraryFr @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); - enableActionBarAutoHide((CollectionView)findViewById(R.id.videos_collection_view)); + enableActionBarAutoHide((CollectionView) findViewById(R.id.videos_collection_view)); } @Override @@ -119,27 +120,12 @@ public class VideoLibraryActivity extends BaseActivity implements VideoLibraryFr } } - private void updateActionBarNavigation() { - boolean show = !isNavDrawerOpen(); - if (getLPreviewUtils().shouldChangeActionBarForDrawer()) { - ActionBar ab = getActionBar(); - ab.setDisplayShowTitleEnabled(show); - ab.setDisplayUseLogoEnabled(!show); - } - } - @Override protected void onActionBarAutoShowOrHide(boolean shown) { super.onActionBarAutoShowOrHide(shown); mDrawShadowFrameLayout.setShadowVisible(shown, shown); } - @Override - protected void onNavDrawerStateChanged(boolean isOpen, boolean isAnimating) { - super.onNavDrawerStateChanged(isOpen, isAnimating); - updateActionBarNavigation(); - } - private void onYearSelected(int year) { if (mSelectedYear == year) { return; @@ -292,7 +278,7 @@ public class VideoLibraryActivity extends BaseActivity implements VideoLibraryFr private void populateSpinner(Spinner spinner, ArrayList<String> items) { ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.explore_spinner_item, android.R.id.text1, items); - adapter.setDropDownViewResource(R.layout.explore_spinner_item_dropdown); + adapter.setDropDownViewResource(R.layout.video_library_spinner_item_dropdown); spinner.setAdapter(adapter); } } diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/debug/actions/ShowSessionNotificationDebugAction.java b/android/src/main/java/com/google/samples/apps/iosched/ui/debug/actions/ShowSessionNotificationDebugAction.java index b23dde8..271c677 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/debug/actions/ShowSessionNotificationDebugAction.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/debug/actions/ShowSessionNotificationDebugAction.java @@ -26,7 +26,7 @@ import android.support.v4.app.TaskStackBuilder; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.provider.ScheduleContract; -import com.google.samples.apps.iosched.ui.MapFragment; +import com.google.samples.apps.iosched.ui.BaseMapActivity; import com.google.samples.apps.iosched.ui.debug.DebugAction; import com.google.samples.apps.iosched.util.UIUtils; @@ -46,7 +46,7 @@ public class ShowSessionNotificationDebugAction implements DebugAction { UIUtils.getMapActivityClass(context)); mapIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME); - mapIntent.putExtra(MapFragment.EXTRA_ROOM, "keynote"); + mapIntent.putExtra(BaseMapActivity.EXTRA_ROOM, "keynote"); PendingIntent piMap = TaskStackBuilder .create(context) .addNextIntent(mapIntent) diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/phone/MapActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/phone/MapActivity.java index 094b07e..d9b8fc3 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/phone/MapActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/phone/MapActivity.java @@ -16,18 +16,16 @@ package com.google.samples.apps.iosched.ui.phone; -import android.app.ActionBar; -import android.app.Fragment; import android.app.FragmentManager; -import android.content.res.Resources; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; +import android.graphics.Rect; import android.os.Bundle; -import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.animation.DecelerateInterpolator; import com.google.samples.apps.iosched.R; +import com.google.samples.apps.iosched.ui.BaseMapActivity; import com.google.samples.apps.iosched.ui.MapFragment; -import com.google.samples.apps.iosched.ui.NearbyActivity; import com.google.samples.apps.iosched.ui.NearbyFragment; import com.google.samples.apps.iosched.ui.PartnersFragment; import com.google.samples.apps.iosched.util.AnalyticsManager; @@ -35,19 +33,16 @@ import com.google.samples.apps.iosched.util.AnalyticsManager; import static com.google.samples.apps.iosched.util.LogUtils.LOGD; import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; -public class MapActivity extends NearbyActivity implements MapFragment.Callbacks { +public class MapActivity extends BaseMapActivity implements MapFragment.Callbacks { private static final String TAG = makeLogTag(MapActivity.class); - public static final String EXTRA_DETACHED_MODE - = "com.google.samples.apps.iosched.EXTRA_DETACHED_MODE"; private static final String SCREEN_LABEL = "Map"; private static final String PARTNERS_FRAGMENT_TAG = "partners"; - private int mActionBarOnColor; - private int mActionBarOffColor; - private ColorDrawable mActionBarBgDrawable; private boolean mPopupVisible = false; // Nearby or Partners + private boolean mFirstPopupAnimate = true; + private View mPopupContainerView; @Override protected void onCreate(Bundle savedInstanceState) { @@ -58,16 +53,7 @@ public class MapActivity extends NearbyActivity implements MapFragment.Callbacks } setContentView(R.layout.activity_map); - getLPreviewUtils().trySetActionBar(); - - if (null == savedInstanceState) { - // Pass arguments to MapFragment - MapFragment fragment = MapFragment.newInstance(); - fragment.setArguments(intentToFragmentArguments(getIntent())); - getFragmentManager().beginTransaction() - .replace(R.id.main_content, fragment) - .commit(); - } + mPopupContainerView = findViewById(R.id.fragment_container_popup); /* [ANALYTICS:SCREEN] * TRIGGER: View the Map screen on a phone. @@ -79,69 +65,52 @@ public class MapActivity extends NearbyActivity implements MapFragment.Callbacks overridePendingTransition(0, 0); - final Resources res = getResources(); - mActionBarOffColor = res.getColor(R.color.translucent_actionbar_background); - mActionBarOnColor = res.getColor(R.color.theme_primary); - - // Initialise and set background drawable here explicitly to ensure the background - // is drawn when the background color is changed on JellyBean - mActionBarBgDrawable = new ColorDrawable(mActionBarOffColor); - getActionBar().setBackgroundDrawable(mActionBarBgDrawable); - getFragmentManager().addOnBackStackChangedListener( new FragmentManager.OnBackStackChangedListener() { @Override public void onBackStackChanged() { mPopupVisible = (getFragmentManager().getBackStackEntryCount() == 1); - updateActionBarNavigation(); + updatePopup(); } } ); - updateActionBarNavigation(); + updatePopup(); } - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); - Fragment nearbyFragment = getFragmentManager().findFragmentByTag(NEARBY_FRAGMENT_TAG); - Fragment partnersFragment = getFragmentManager().findFragmentByTag(PARTNERS_FRAGMENT_TAG); - mPopupVisible = nearbyFragment != null || partnersFragment != null; - updateActionBarNavigation(); - } - - private void updateActionBarNavigation() { - boolean show = !isNavDrawerOpen(); - ActionBar ab = getActionBar(); - if (getLPreviewUtils().shouldChangeActionBarForDrawer()) { - ab.setDisplayShowTitleEnabled(show); - ab.setDisplayUseLogoEnabled(!show); - } - - if (mPopupVisible) { - ab.hide(); - } else { - ab.show(); + private void updatePopup() { + View mapContainerView = findViewById(R.id.fragment_container_map); + if (mFirstPopupAnimate) { + if (mPopupVisible) { + mPopupContainerView.setTranslationY(mapContainerView.getHeight()); + mPopupContainerView.setVisibility(View.VISIBLE); + mFirstPopupAnimate = false; + } else { + return; + } } + mPopupContainerView.animate() + .translationY(mPopupVisible ? 0 : mapContainerView.getHeight()) + .setInterpolator(new DecelerateInterpolator()) + .setDuration(250); } @Override - protected void onNavDrawerStateChanged(boolean isOpen, boolean isAnimating) { - super.onNavDrawerStateChanged(isOpen, isAnimating); - updateActionBarNavigation(); + public void onInsetsChanged(Rect insets) { + super.onInsetsChanged(insets); + ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) + mPopupContainerView.getLayoutParams(); + lp.topMargin= insets.top; + mPopupContainerView.setLayoutParams(lp); } @Override - protected void onNavDrawerSlide(float offset) { - super.onNavDrawerSlide(offset); - // Make Action Bar gradually fade into the theme color - mActionBarBgDrawable.setColor(Color.argb( - Color.alpha(mActionBarOffColor) + (int) (offset * (Color.alpha(mActionBarOnColor) - Color.alpha(mActionBarOffColor))), - Color.red(mActionBarOffColor) + (int) (offset * (Color.red(mActionBarOnColor) - Color.red(mActionBarOffColor))), - Color.green(mActionBarOffColor) + (int) (offset * (Color.green(mActionBarOnColor) - Color.green(mActionBarOffColor))), - Color.blue(mActionBarOffColor) + (int) (offset * (Color.blue(mActionBarOnColor) - Color.blue(mActionBarOffColor))) - )); - getActionBar().setBackgroundDrawable(mActionBarBgDrawable); + public void onBackPressed() { + // Force checking the native fragment manager for a backstack rather than + // the support lib fragment manager. + if (!getFragmentManager().popBackStackImmediate()) { + super.onBackPressed(); + } } @Override @@ -152,36 +121,17 @@ public class MapActivity extends NearbyActivity implements MapFragment.Callbacks @Override public void onShowPartners() { getFragmentManager().beginTransaction() - .replace(R.id.main_content, PartnersFragment.newInstance(true), + .add(R.id.fragment_container_popup, PartnersFragment.newInstance(true), PARTNERS_FRAGMENT_TAG) .addToBackStack(null) .commit(); } - @Override - protected int getSelfNavDrawerItem() { - if (getIntent().getBooleanExtra(EXTRA_DETACHED_MODE, false)) { - // in detached mode, we don't have a nav drawer - return NAVDRAWER_ITEM_INVALID; - } else { - return NAVDRAWER_ITEM_MAP; - } - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (getIntent().getBooleanExtra(EXTRA_DETACHED_MODE, false) - && item.getItemId() == android.R.id.home) { - finish(); - } - return super.onOptionsItemSelected(item); - } - // Show whichever Fragment has been provided by NearbyActivity. @Override protected void showNearbyFragment(String tag) { getFragmentManager().beginTransaction() - .replace(R.id.main_content, NearbyFragment.newInstance(true), tag) + .add(R.id.fragment_container_popup, NearbyFragment.newInstance(true), tag) .addToBackStack(null) .commit(); } diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/tablet/MapMultiPaneActivity.java b/android/src/main/java/com/google/samples/apps/iosched/ui/tablet/MapMultiPaneActivity.java index 259ec84..fe132e5 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/tablet/MapMultiPaneActivity.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/tablet/MapMultiPaneActivity.java @@ -16,19 +16,12 @@ package com.google.samples.apps.iosched.ui.tablet; -import android.app.ActionBar; -import android.app.Fragment; import android.app.FragmentBreadCrumbs; import android.app.FragmentManager; import android.content.Intent; import android.content.res.Configuration; -import android.content.res.Resources; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.net.Uri; import android.os.Bundle; import android.view.Gravity; -import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; @@ -36,8 +29,12 @@ import android.widget.LinearLayout; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.model.TagMetadata; import com.google.samples.apps.iosched.provider.ScheduleContract; -import com.google.samples.apps.iosched.ui.*; -import com.google.samples.apps.iosched.ui.phone.MapActivity; +import com.google.samples.apps.iosched.ui.BaseMapActivity; +import com.google.samples.apps.iosched.ui.MapFragment; +import com.google.samples.apps.iosched.ui.NearbyFragment; +import com.google.samples.apps.iosched.ui.PartnersFragment; +import com.google.samples.apps.iosched.ui.SessionDetailActivity; +import com.google.samples.apps.iosched.ui.SessionsFragment; import com.google.samples.apps.iosched.util.AnalyticsManager; import com.google.samples.apps.iosched.util.UIUtils; @@ -45,11 +42,10 @@ import static com.google.samples.apps.iosched.util.LogUtils.LOGD; /** * A multi-pane activity, where the primary navigation pane is a - * {@link MapFragment}, that shows {@link SessionsFragment}, - * {@link SessionDetailFragment} as popups. This activity requires API level 11 - * or greater because of its use of {@link FragmentBreadCrumbs}. + * {@link MapFragment}, that shows {@link NearbyFragment}, + * {@link PartnersFragment} as popups. */ -public class MapMultiPaneActivity extends NearbyActivity implements +public class MapMultiPaneActivity extends BaseMapActivity implements FragmentManager.OnBackStackChangedListener, MapFragment.Callbacks, SessionsFragment.Callbacks { @@ -61,17 +57,10 @@ public class MapMultiPaneActivity extends NearbyActivity implements private FragmentBreadCrumbs mFragmentBreadCrumbs; private String mSelectedRoomName; - private MapFragment mMapFragment; - - private int mActionBarOnColor; - private int mActionBarOffColor; - private ColorDrawable mActionBarBgDrawable; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_map); - getLPreviewUtils().trySetActionBar(); FragmentManager fm = getFragmentManager(); fm.addOnBackStackChangedListener(this); @@ -79,16 +68,6 @@ public class MapMultiPaneActivity extends NearbyActivity implements mFragmentBreadCrumbs = (FragmentBreadCrumbs) findViewById(R.id.breadcrumbs); mFragmentBreadCrumbs.setActivity(this); - mMapFragment = (MapFragment) fm.findFragmentByTag("map"); - if (mMapFragment == null) { - mMapFragment = MapFragment.newInstance(); - mMapFragment.setArguments(intentToFragmentArguments(getIntent())); - - fm.beginTransaction() - .add(R.id.fragment_container_map, mMapFragment, "map") - .commit(); - } - findViewById(R.id.close_button).setOnClickListener(new View.OnClickListener() { public void onClick(View view) { clearBackStack(false); @@ -107,53 +86,6 @@ public class MapMultiPaneActivity extends NearbyActivity implements LOGD("Tracker", SCREEN_LABEL); overridePendingTransition(0, 0); - - final Resources res = getResources(); - mActionBarOffColor = res.getColor(R.color.translucent_actionbar_background); - mActionBarOnColor = res.getColor(R.color.theme_primary); - - // Initialise and set background drawable here explicitly to ensure the background - // is drawn when the background color is changed on JellyBean - mActionBarBgDrawable = new ColorDrawable(mActionBarOffColor); - getActionBar().setBackgroundDrawable(mActionBarBgDrawable); - } - - private void updateActionBarNavigation() { - boolean show = !isNavDrawerOpen(); - if (getLPreviewUtils().shouldChangeActionBarForDrawer()) { - ActionBar ab = getActionBar(); - ab.setDisplayShowTitleEnabled(show); - ab.setDisplayUseLogoEnabled(!show); - } - } - - @Override - protected void onNavDrawerStateChanged(boolean isOpen, boolean isAnimating) { - super.onNavDrawerStateChanged(isOpen, isAnimating); - updateActionBarNavigation(); - } - - @Override - protected void onNavDrawerSlide(float offset) { - super.onNavDrawerSlide(offset); - // Make Action Bar gradually fade into the theme color - mActionBarBgDrawable.setColor(Color.argb( - Color.alpha(mActionBarOffColor) + (int) (offset * (Color.alpha(mActionBarOnColor) - Color.alpha(mActionBarOffColor))), - Color.red(mActionBarOffColor) + (int) (offset * (Color.red(mActionBarOnColor) - Color.red(mActionBarOffColor))), - Color.green(mActionBarOffColor) + (int) (offset * (Color.green(mActionBarOnColor) - Color.green(mActionBarOffColor))), - Color.blue(mActionBarOffColor) + (int) (offset * (Color.blue(mActionBarOnColor) - Color.blue(mActionBarOffColor))) - )); - getActionBar().setBackgroundDrawable(mActionBarBgDrawable); - } - - @Override - protected int getSelfNavDrawerItem() { - if (getIntent().getBooleanExtra(MapActivity.EXTRA_DETACHED_MODE, false)) { - // in detached mode, we don't have a nav drawer - return NAVDRAWER_ITEM_INVALID; - } else { - return NAVDRAWER_ITEM_MAP; - } } @Override @@ -222,10 +154,11 @@ public class MapMultiPaneActivity extends NearbyActivity implements boolean landscape = getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; boolean detailShown = findViewById(R.id.map_detail_spacer).getVisibility() == View.VISIBLE; - - mMapFragment.setCenterPadding( - landscape ? (detailShown ? 0.25f : 0f) : 0, - landscape ? 0 : (detailShown ? 0.25f : 0)); + if (mMapFragment != null) { + mMapFragment.setCenterPadding( + landscape ? (detailShown ? 0.25f : 0f) : 0, + landscape ? 0 : (detailShown ? 0.25f : 0)); + } } void updateBreadCrumbs() { @@ -260,46 +193,17 @@ public class MapMultiPaneActivity extends NearbyActivity implements * [/ANALYTICS] */ AnalyticsManager.sendEvent(SCREEN_LABEL, "selectsession", sessionId); - getLPreviewUtils().startActivityWithTransition( + getLUtils().startActivityWithTransition( new Intent(Intent.ACTION_VIEW, ScheduleContract.Sessions.buildSessionUri(sessionId)), clickedView, - SessionDetailFragment.VIEW_NAME_PHOTO + SessionDetailActivity.TRANSITION_NAME_PHOTO ); } @Override public void onTagMetadataLoaded(TagMetadata metadata) {} - private void showList(Fragment fragment, Uri uri){ - // Show the sessions in the room - clearBackStack(true); - showDetailPane(true); - fragment.setArguments(BaseActivity.intentToFragmentArguments( - new Intent(Intent.ACTION_VIEW, - uri - ))); - getFragmentManager().beginTransaction() - .replace(R.id.fragment_container_detail, fragment) - .addToBackStack(null) - .commit(); - updateBreadCrumbs(); - } - - private void showDetails(Fragment fragment, Uri uri){ - // Show the session details - showDetailPane(true); - Intent intent = new Intent(Intent.ACTION_VIEW,uri); - //intent.putExtra(SessionDetailFragment.EXTRA_VARIABLE_HEIGHT_HEADER, true); - fragment.setArguments(BaseActivity.intentToFragmentArguments(intent)); - getFragmentManager().beginTransaction() - .replace(R.id.fragment_container_detail, fragment) - .addToBackStack(null) - .commit(); - updateBreadCrumbs(); - } - - // TODO: This should also update the breadcrumbs, which will likely involve a major // refactoring of the way breadcrumbs are handled. Perhaps we can store breadcrumb titles in // every back stack entry... @@ -313,13 +217,4 @@ public class MapMultiPaneActivity extends NearbyActivity implements .addToBackStack(null) .commit(); } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (getIntent().getBooleanExtra(MapActivity.EXTRA_DETACHED_MODE, false) - && item.getItemId() == android.R.id.home) { - finish(); - } - return super.onOptionsItemSelected(item); - } } diff --git a/android/src/lpreview/java/com/google/samples/apps/iosched/ui/widget/AddToScheduleFABFrameLayout.java b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/AddToScheduleFABFrameLayout.java index 88b8a45..3087376 100644 --- a/android/src/lpreview/java/com/google/samples/apps/iosched/ui/widget/AddToScheduleFABFrameLayout.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/AddToScheduleFABFrameLayout.java @@ -18,7 +18,6 @@ package com.google.samples.apps.iosched.ui.widget; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; -import android.animation.ValueAnimator; import android.annotation.TargetApi; import android.content.Context; import android.graphics.Color; @@ -30,10 +29,11 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewAnimationUtils; import android.view.ViewGroup; +import android.view.ViewOutlineProvider; import com.google.samples.apps.iosched.R; -@TargetApi(Build.VERSION_CODES.L) +@TargetApi(Build.VERSION_CODES.LOLLIPOP) public class AddToScheduleFABFrameLayout extends CheckableFrameLayout { private View mRevealView; private float mHotSpotX, mHotSpotY; @@ -72,9 +72,13 @@ public class AddToScheduleFABFrameLayout extends CheckableFrameLayout { @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); - Outline outline = new Outline(); - outline.setOval(0, 0, w, h); - setOutline(outline); + ViewOutlineProvider viewOutlineProvider = new ViewOutlineProvider() { + @Override + public void getOutline(View view, Outline outline) { + outline.setOval(0, 0, view.getWidth(), view.getHeight()); + } + }; + setOutlineProvider(viewOutlineProvider); setClipToOutline(true); } @@ -82,9 +86,11 @@ public class AddToScheduleFABFrameLayout extends CheckableFrameLayout { public void setChecked(boolean checked, boolean allowAnimate) { super.setChecked(checked, allowAnimate); if (allowAnimate) { - ValueAnimator animator = ViewAnimationUtils.createCircularReveal( + // TODO: switch to mHotSpotX/mHotSpotY/getWidth if/when nested reveals can be clipped + // by parents. was possible in LPV79 but no longer as of this writing. + Animator animator = ViewAnimationUtils.createCircularReveal( mRevealView, - (int) mHotSpotX, (int) mHotSpotY, 0, getWidth()); + (int) getWidth() / 2, (int) getHeight() / 2, 0, getWidth() / 2); animator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/CaptureInsetsFrameLayout.java b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/CaptureInsetsFrameLayout.java deleted file mode 100644 index 3c37aaa..0000000 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/CaptureInsetsFrameLayout.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2014 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.samples.apps.iosched.ui.widget; - -import android.content.Context; -import android.graphics.Rect; -import android.util.AttributeSet; -import android.widget.FrameLayout; - -/** - * A layout that captures the insets passed to {@link #fitSystemWindows(Rect)}, i.e. the area above - * UI chrome (status and navigation bars, overlay action bars). - */ -public class CaptureInsetsFrameLayout extends FrameLayout { - private OnInsetsCallback mOnInsetsCallback; - - public CaptureInsetsFrameLayout(Context context) { - super(context); - } - - public CaptureInsetsFrameLayout(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public CaptureInsetsFrameLayout(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - } - - @Override - protected boolean fitSystemWindows(Rect insets) { - if (mOnInsetsCallback != null) { - mOnInsetsCallback.onInsetsChanged(insets); - } - return false; // don't actually consume the insets - } - - /** - * Allows the calling container to specify a callback for custom processing when insets change (i.e. when - * {@link #fitSystemWindows(Rect)} is called. This is useful for setting padding on UI elements based on - * UI chrome insets (e.g. a Google Map or a ListView). When using with ListView or GridView, remember to set - * clipToPadding to false. - */ - public void setOnInsetsCallback(OnInsetsCallback onInsetsCallback) { - mOnInsetsCallback = onInsetsCallback; - } - - public static interface OnInsetsCallback { - public void onInsetsChanged(Rect insets); - } -} diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/MessageCardView.java b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/MessageCardView.java index 0cac141..5e7fff0 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/MessageCardView.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/MessageCardView.java @@ -16,27 +16,23 @@ package com.google.samples.apps.iosched.ui.widget; -import android.animation.Animator; -import android.annotation.TargetApi; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Typeface; +import android.support.v7.widget.CardView; import android.text.TextUtils; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; -import android.widget.FrameLayout; import android.widget.TextView; import com.google.samples.apps.iosched.R; -import com.google.samples.apps.iosched.util.UIUtils; -import static com.google.samples.apps.iosched.util.LogUtils.LOGD; import static com.google.samples.apps.iosched.util.LogUtils.LOGW; import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; -public class MessageCardView extends FrameLayout implements View.OnClickListener { +public class MessageCardView extends CardView implements View.OnClickListener { private static final String TAG = makeLogTag("MessageCardView"); private TextView mTitleView; private TextView mMessageView; @@ -50,16 +46,22 @@ public class MessageCardView extends FrameLayout implements View.OnClickListener public void onMessageCardButtonClicked(String tag); } - public MessageCardView(Context context, AttributeSet attrs) { - this(context, attrs, 0); + public MessageCardView(Context context) { + super(context, null, 0); + initialize(context, null, 0); } - public MessageCardView(Context context) { - this(context, null, 0); + public MessageCardView(Context context, AttributeSet attrs) { + super(context, attrs, 0); + initialize(context, attrs, 0); } public MessageCardView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); + initialize(context, attrs, defStyle); + } + + private void initialize(Context context, AttributeSet attrs, int defStyle) { LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE); mRoot = inflater.inflate(R.layout.message_card, this, true); @@ -76,7 +78,7 @@ public class MessageCardView extends FrameLayout implements View.OnClickListener button.setOnClickListener(this); } - TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MessageCard, 0, 0); + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MessageCard, defStyle, 0); String title = a.getString(R.styleable.MessageCard_messageTitle); setTitle(title); String text = a.getString(R.styleable.MessageCard_messageText); @@ -98,6 +100,10 @@ public class MessageCardView extends FrameLayout implements View.OnClickListener if (button2text != null) { setButton(1, button2text, button2tag, button2emphasis, emphasisColor); } + + setRadius(getResources().getDimensionPixelSize(R.dimen.card_corner_radius)); + setCardElevation(getResources().getDimensionPixelSize(R.dimen.card_elevation)); + setPreventCornerOverlap(false); } public void setListener(OnMessageCardButtonClicked listener) { diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/MultiSwipeRefreshLayout.java b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/MultiSwipeRefreshLayout.java index 041e1f1..5c82736 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/MultiSwipeRefreshLayout.java +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/MultiSwipeRefreshLayout.java @@ -20,6 +20,7 @@ import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.drawable.Drawable; +import android.support.v4.widget.SwipeRefreshLayout; import android.util.AttributeSet; import com.google.samples.apps.iosched.R; diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/ScrimInsetsFrameLayout.java b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/ScrimInsetsFrameLayout.java new file mode 100644 index 0000000..9f6547f --- /dev/null +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/ScrimInsetsFrameLayout.java @@ -0,0 +1,142 @@ +/* + * Copyright 2014 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.iosched.ui.widget; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.support.v4.view.ViewCompat; +import android.util.AttributeSet; +import android.widget.FrameLayout; + +import com.google.samples.apps.iosched.R; + +/** + * A layout that draws something in the insets passed to {@link #fitSystemWindows(Rect)}, i.e. the area above UI chrome + * (status and navigation bars, overlay action bars). + */ +public class ScrimInsetsFrameLayout extends FrameLayout { + private Drawable mInsetForeground; + + private Rect mInsets; + private Rect mTempRect = new Rect(); + private OnInsetsCallback mOnInsetsCallback; + + public ScrimInsetsFrameLayout(Context context) { + super(context); + init(context, null, 0); + } + + public ScrimInsetsFrameLayout(Context context, AttributeSet attrs) { + super(context, attrs); + init(context, attrs, 0); + } + + public ScrimInsetsFrameLayout(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(context, attrs, defStyle); + } + + private void init(Context context, AttributeSet attrs, int defStyle) { + final TypedArray a = context.obtainStyledAttributes(attrs, + R.styleable.ScrimInsetsView, defStyle, 0); + if (a == null) { + return; + } + mInsetForeground = a.getDrawable(R.styleable.ScrimInsetsView_insetForeground); + a.recycle(); + + setWillNotDraw(true); + } + + @Override + protected boolean fitSystemWindows(Rect insets) { + mInsets = new Rect(insets); + setWillNotDraw(mInsetForeground == null); + ViewCompat.postInvalidateOnAnimation(this); + if (mOnInsetsCallback != null) { + mOnInsetsCallback.onInsetsChanged(insets); + } + return true; // consume insets + } + + @Override + public void draw(Canvas canvas) { + super.draw(canvas); + + int width = getWidth(); + int height = getHeight(); + if (mInsets != null && mInsetForeground != null) { + int sc = canvas.save(); + canvas.translate(getScrollX(), getScrollY()); + + // Top + mTempRect.set(0, 0, width, mInsets.top); + mInsetForeground.setBounds(mTempRect); + mInsetForeground.draw(canvas); + + // Bottom + mTempRect.set(0, height - mInsets.bottom, width, height); + mInsetForeground.setBounds(mTempRect); + mInsetForeground.draw(canvas); + + // Left + mTempRect.set(0, mInsets.top, mInsets.left, height - mInsets.bottom); + mInsetForeground.setBounds(mTempRect); + mInsetForeground.draw(canvas); + + // Right + mTempRect.set(width - mInsets.right, mInsets.top, width, height - mInsets.bottom); + mInsetForeground.setBounds(mTempRect); + mInsetForeground.draw(canvas); + + canvas.restoreToCount(sc); + } + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + if (mInsetForeground != null) { + mInsetForeground.setCallback(this); + } + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (mInsetForeground != null) { + mInsetForeground.setCallback(null); + } + } + + /** + * Allows the calling container to specify a callback for custom processing when insets change (i.e. when + * {@link #fitSystemWindows(Rect)} is called. This is useful for setting padding on UI elements based on + * UI chrome insets (e.g. a Google Map or a ListView). When using with ListView or GridView, remember to set + * clipToPadding to false. + */ + public void setOnInsetsCallback(OnInsetsCallback onInsetsCallback) { + mOnInsetsCallback = onInsetsCallback; + } + + public static interface OnInsetsCallback { + public void onInsetsChanged(Rect insets); + } +}
\ No newline at end of file diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/ScrimInsetsScrollView.java b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/ScrimInsetsScrollView.java new file mode 100644 index 0000000..4ee90ff --- /dev/null +++ b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/ScrimInsetsScrollView.java @@ -0,0 +1,142 @@ +/* + * Copyright 2014 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.iosched.ui.widget; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.support.v4.view.ViewCompat; +import android.util.AttributeSet; +import android.widget.ScrollView; + +import com.google.samples.apps.iosched.R; + +/** + * A layout that draws something in the insets passed to {@link #fitSystemWindows(Rect)}, i.e. the area above UI chrome + * (status and navigation bars, overlay action bars). + */ +public class ScrimInsetsScrollView extends ScrollView { + private Drawable mInsetForeground; + + private Rect mInsets; + private Rect mTempRect = new Rect(); + private OnInsetsCallback mOnInsetsCallback; + + public ScrimInsetsScrollView(Context context) { + super(context); + init(context, null, 0); + } + + public ScrimInsetsScrollView(Context context, AttributeSet attrs) { + super(context, attrs); + init(context, attrs, 0); + } + + public ScrimInsetsScrollView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(context, attrs, defStyle); + } + + private void init(Context context, AttributeSet attrs, int defStyle) { + final TypedArray a = context.obtainStyledAttributes(attrs, + R.styleable.ScrimInsetsView, defStyle, 0); + if (a == null) { + return; + } + mInsetForeground = a.getDrawable(R.styleable.ScrimInsetsView_insetForeground); + a.recycle(); + + setWillNotDraw(true); + } + + @Override + protected boolean fitSystemWindows(Rect insets) { + mInsets = new Rect(insets); + setWillNotDraw(mInsetForeground == null); + ViewCompat.postInvalidateOnAnimation(this); + if (mOnInsetsCallback != null) { + mOnInsetsCallback.onInsetsChanged(insets); + } + return true; // consume insets + } + + @Override + public void draw(Canvas canvas) { + super.draw(canvas); + + int width = getWidth(); + int height = getHeight(); + if (mInsets != null && mInsetForeground != null) { + int sc = canvas.save(); + canvas.translate(getScrollX(), getScrollY()); + + // Top + mTempRect.set(0, 0, width, mInsets.top); + mInsetForeground.setBounds(mTempRect); + mInsetForeground.draw(canvas); + + // Bottom + mTempRect.set(0, height - mInsets.bottom, width, height); + mInsetForeground.setBounds(mTempRect); + mInsetForeground.draw(canvas); + + // Left + mTempRect.set(0, mInsets.top, mInsets.left, height - mInsets.bottom); + mInsetForeground.setBounds(mTempRect); + mInsetForeground.draw(canvas); + + // Right + mTempRect.set(width - mInsets.right, mInsets.top, width, height - mInsets.bottom); + mInsetForeground.setBounds(mTempRect); + mInsetForeground.draw(canvas); + + canvas.restoreToCount(sc); + } + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + if (mInsetForeground != null) { + mInsetForeground.setCallback(this); + } + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (mInsetForeground != null) { + mInsetForeground.setCallback(null); + } + } + + /** + * Allows the calling container to specify a callback for custom processing when insets change (i.e. when + * {@link #fitSystemWindows(Rect)} is called. This is useful for setting padding on UI elements based on + * UI chrome insets (e.g. a Google Map or a ListView). When using with ListView or GridView, remember to set + * clipToPadding to false. + */ + public void setOnInsetsCallback(OnInsetsCallback onInsetsCallback) { + mOnInsetsCallback = onInsetsCallback; + } + + public static interface OnInsetsCallback { + public void onInsetsChanged(Rect insets); + } +}
\ No newline at end of file diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SwipeProgressBar.java b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SwipeProgressBar.java deleted file mode 100644 index f12b14e..0000000 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SwipeProgressBar.java +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Copyright 2014 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.samples.apps.iosched.ui.widget; - -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.Rect; -import android.graphics.RectF; -import android.support.v4.view.ViewCompat; -import android.view.View; -import android.view.animation.AnimationUtils; -import android.view.animation.Interpolator; - - -/** - * Custom progress bar that shows a cycle of colors as widening circles that - * overdraw each other. When finished, the bar is cleared from the inside out as - * the main cycle continues. Before running, this can also indicate how close - * the user is to triggering something (e.g. how far they need to pull down to - * trigger a refresh). - */ -final class SwipeProgressBar { - - // Default progress animation colors are grays. - private final static int COLOR1 = 0xB3000000; - private final static int COLOR2 = 0x80000000; - private final static int COLOR3 = 0x4d000000; - private final static int COLOR4 = 0x1a000000; - - // The duration of the animation cycle. - private static final int ANIMATION_DURATION_MS = 2000; - - // The duration of the animation to clear the bar. - private static final int FINISH_ANIMATION_DURATION_MS = 1000; - - // Interpolator for varying the speed of the animation. - private static final Interpolator INTERPOLATOR = BakedBezierInterpolator.getInstance(); - - private final Paint mPaint = new Paint(); - private final RectF mClipRect = new RectF(); - private float mTriggerPercentage; - private long mStartTime; - private long mFinishTime; - private boolean mRunning; - - // Colors used when rendering the animation, - private int mColor1; - private int mColor2; - private int mColor3; - private int mColor4; - private View mParent; - - private Rect mBounds = new Rect(); - - public SwipeProgressBar(View parent) { - mParent = parent; - mColor1 = COLOR1; - mColor2 = COLOR2; - mColor3 = COLOR3; - mColor4 = COLOR4; - } - - /** - * Set the four colors used in the progress animation. The first color will - * also be the color of the bar that grows in response to a user swipe - * gesture. - * - * @param color1 Integer representation of a color. - * @param color2 Integer representation of a color. - * @param color3 Integer representation of a color. - * @param color4 Integer representation of a color. - */ - void setColorScheme(int color1, int color2, int color3, int color4) { - mColor1 = color1; - mColor2 = color2; - mColor3 = color3; - mColor4 = color4; - } - - /** - * Update the progress the user has made toward triggering the swipe - * gesture. and use this value to update the percentage of the trigger that - * is shown. - */ - void setTriggerPercentage(float triggerPercentage) { - mTriggerPercentage = triggerPercentage; - mStartTime = 0; - ViewCompat.postInvalidateOnAnimation(mParent); - } - - /** - * Start showing the progress animation. - */ - void start() { - if (!mRunning) { - mTriggerPercentage = 0; - mStartTime = AnimationUtils.currentAnimationTimeMillis(); - mRunning = true; - mParent.postInvalidate(); - } - } - - /** - * Stop showing the progress animation. - */ - void stop() { - if (mRunning) { - mTriggerPercentage = 0; - mFinishTime = AnimationUtils.currentAnimationTimeMillis(); - mRunning = false; - mParent.postInvalidate(); - } - } - - /** - * @return Return whether the progress animation is currently running. - */ - boolean isRunning() { - return mRunning || mFinishTime > 0; - } - - void draw(Canvas canvas) { - final int width = mBounds.width(); - final int cx = width / 2; - final int cy = mBounds.top + mBounds.height() / 2; - boolean drawTriggerWhileFinishing = false; - int restoreCount = canvas.save(); - canvas.clipRect(mBounds); - if (mRunning || (mFinishTime > 0)) { - long now = AnimationUtils.currentAnimationTimeMillis(); - long elapsed = (now - mStartTime) % ANIMATION_DURATION_MS; - long iterations = (now - mStartTime) / ANIMATION_DURATION_MS; - float rawProgress = (elapsed / (ANIMATION_DURATION_MS / 100f)); - // If we're not running anymore, that means we're running through - // the finish animation. - if (!mRunning) { - // If the finish animation is done, don't draw anything, and - // don't repost. - if ((now - mFinishTime) >= FINISH_ANIMATION_DURATION_MS) { - mFinishTime = 0; - return; - } - // Otherwise, use a 0 opacity alpha layer to clear the animation - // from the inside out. This layer will prevent the circles from - // drawing within its bounds. - long finishElapsed = (now - mFinishTime) % FINISH_ANIMATION_DURATION_MS; - float finishProgress = (finishElapsed / (FINISH_ANIMATION_DURATION_MS / 100f)); - float pct = (finishProgress / 100f); - // Radius of the circle is half of the screen. - float clearRadius = width / 2 * INTERPOLATOR.getInterpolation(pct); - mClipRect.set(cx - clearRadius, mBounds.top, cx + clearRadius, mBounds.bottom); - canvas.saveLayerAlpha(mClipRect, 0, 0); - // Only draw the trigger if there is a space in the center of - // this refreshing view that needs to be filled in by the - // trigger. If the progress view is just still animating, let it - // continue animating. - drawTriggerWhileFinishing = true; - } - // First fill in with the last color that would have finished drawing. - if (iterations == 0) { - canvas.drawColor(mColor1); - } else { - if (rawProgress >= 0 && rawProgress < 25) { - canvas.drawColor(mColor4); - } else if (rawProgress >= 25 && rawProgress < 50) { - canvas.drawColor(mColor1); - } else if (rawProgress >= 50 && rawProgress < 75) { - canvas.drawColor(mColor2); - } else { - canvas.drawColor(mColor3); - } - } - // Then draw up to 4 overlapping concentric circles of varying radii, based on how far - // along we are in the cycle. - // progress 0-50 draw mColor2 - // progress 25-75 draw mColor3 - // progress 50-100 draw mColor4 - // progress 75 (wrap to 25) draw mColor1 - if ((rawProgress >= 0 && rawProgress <= 25)) { - float pct = (((rawProgress + 25) * 2) / 100f); - drawCircle(canvas, cx, cy, mColor1, pct); - } - if (rawProgress >= 0 && rawProgress <= 50) { - float pct = ((rawProgress * 2) / 100f); - drawCircle(canvas, cx, cy, mColor2, pct); - } - if (rawProgress >= 25 && rawProgress <= 75) { - float pct = (((rawProgress - 25) * 2) / 100f); - drawCircle(canvas, cx, cy, mColor3, pct); - } - if (rawProgress >= 50 && rawProgress <= 100) { - float pct = (((rawProgress - 50) * 2) / 100f); - drawCircle(canvas, cx, cy, mColor4, pct); - } - if ((rawProgress >= 75 && rawProgress <= 100)) { - float pct = (((rawProgress - 75) * 2) / 100f); - drawCircle(canvas, cx, cy, mColor1, pct); - } - if (mTriggerPercentage > 0 && drawTriggerWhileFinishing) { - // There is some portion of trigger to draw. Restore the canvas, - // then draw the trigger. Otherwise, the trigger does not appear - // until after the bar has finished animating and appears to - // just jump in at a larger width than expected. - canvas.restoreToCount(restoreCount); - restoreCount = canvas.save(); - canvas.clipRect(mBounds); - drawTrigger(canvas, cx, cy); - } - // Keep running until we finish out the last cycle. - ViewCompat.postInvalidateOnAnimation(mParent); - } else { - // Otherwise if we're in the middle of a trigger, draw that. - if (mTriggerPercentage > 0 && mTriggerPercentage <= 1.0) { - drawTrigger(canvas, cx, cy); - } - } - canvas.restoreToCount(restoreCount); - } - - private void drawTrigger(Canvas canvas, int cx, int cy) { - mPaint.setColor(mColor1); - canvas.drawCircle(cx, cy, cx * mTriggerPercentage, mPaint); - } - - /** - * Draws a circle centered in the view. - * - * @param canvas the canvas to draw on - * @param cx the center x coordinate - * @param cy the center y coordinate - * @param color the color to draw - * @param pct the percentage of the view that the circle should cover - */ - private void drawCircle(Canvas canvas, float cx, float cy, int color, float pct) { - mPaint.setColor(color); - canvas.save(); - canvas.translate(cx, cy); - float radiusScale = INTERPOLATOR.getInterpolation(pct); - canvas.scale(radiusScale, radiusScale); - canvas.drawCircle(0, 0, cx, mPaint); - canvas.restore(); - } - - /** - * Set the drawing bounds of this SwipeProgressBar. - */ - void setBounds(int left, int top, int right, int bottom) { - mBounds.left = left; - mBounds.top = top; - mBounds.right = right; - mBounds.bottom = bottom; - } -} diff --git a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SwipeRefreshLayout.java b/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SwipeRefreshLayout.java deleted file mode 100644 index 14fc442..0000000 --- a/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SwipeRefreshLayout.java +++ /dev/null @@ -1,496 +0,0 @@ -/* - * Copyright 2014 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.samples.apps.iosched.ui.widget; - -import android.content.Context; -import android.content.res.Resources; -import android.content.res.TypedArray; -import android.graphics.Canvas; -import android.support.v4.view.ViewCompat; -import android.util.AttributeSet; -import android.util.DisplayMetrics; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewConfiguration; -import android.view.ViewGroup; -import android.view.animation.AccelerateInterpolator; -import android.view.animation.Animation; -import android.view.animation.Animation.AnimationListener; -import android.view.animation.DecelerateInterpolator; -import android.view.animation.Transformation; -import android.widget.AbsListView; - - -/** - * The SwipeRefreshLayout should be used whenever the user can refresh the - * contents of a view via a vertical swipe gesture. The activity that - * instantiates this view should add an OnRefreshListener to be notified - * whenever the swipe to refresh gesture is completed. The SwipeRefreshLayout - * will notify the listener each and every time the gesture is completed again; - * the listener is responsible for correctly determining when to actually - * initiate a refresh of its content. If the listener determines there should - * not be a refresh, it must call setRefreshing(false) to cancel any visual - * indication of a refresh. If an activity wishes to show just the progress - * animation, it should call setRefreshing(true). To disable the gesture and progress - * animation, call setEnabled(false) on the view. - * - * <p> This layout should be made the parent of the view that will be refreshed as a - * result of the gesture and can only support one direct child. This view will - * also be made the target of the gesture and will be forced to match both the - * width and the height supplied in this layout. The SwipeRefreshLayout does not - * provide accessibility events; instead, a menu item must be provided to allow - * refresh of the content wherever this gesture is used.</p> - */ -public class SwipeRefreshLayout extends ViewGroup { - private static final long RETURN_TO_ORIGINAL_POSITION_TIMEOUT = 300; - private static final float ACCELERATE_INTERPOLATION_FACTOR = 1.5f; - private static final float DECELERATE_INTERPOLATION_FACTOR = 2f; - private static final float PROGRESS_BAR_HEIGHT = 4; - private static final float MAX_SWIPE_DISTANCE_FACTOR = .6f; - private static final int REFRESH_TRIGGER_DISTANCE = 120; - - private SwipeProgressBar mProgressBar; //the thing that shows progress is going - private View mTarget; //the content that gets pulled down - private int mOriginalOffsetTop; - private OnRefreshListener mListener; - private MotionEvent mDownEvent; - private int mFrom; - private boolean mRefreshing = false; - private int mTouchSlop; - private float mDistanceToTriggerSync = -1; - private float mPrevY; - private int mMediumAnimationDuration; - private float mFromPercentage = 0; - private float mCurrPercentage = 0; - private int mProgressBarHeight; - private int mCurrentTargetOffsetTop; - private int mProgressBarTop; - - // Target is returning to its start offset because it was cancelled or a - // refresh was triggered. - private boolean mReturningToStart; - private final DecelerateInterpolator mDecelerateInterpolator; - private final AccelerateInterpolator mAccelerateInterpolator; - private static final int[] LAYOUT_ATTRS = new int[] { - android.R.attr.enabled - }; - - private final Animation mAnimateToStartPosition = new Animation() { - @Override - public void applyTransformation(float interpolatedTime, Transformation t) { - int targetTop = 0; - if (mFrom != mOriginalOffsetTop) { - targetTop = (mFrom + (int)((mOriginalOffsetTop - mFrom) * interpolatedTime)); - } - int offset = targetTop - mTarget.getTop(); - final int currentTop = mTarget.getTop(); - if (offset + currentTop < 0) { - offset = 0 - currentTop; - } - setTargetOffsetTopAndBottom(offset); - } - }; - - private Animation mShrinkTrigger = new Animation() { - @Override - public void applyTransformation(float interpolatedTime, Transformation t) { - float percent = mFromPercentage + ((0 - mFromPercentage) * interpolatedTime); - mProgressBar.setTriggerPercentage(percent); - } - }; - - private final AnimationListener mReturnToStartPositionListener = new BaseAnimationListener() { - @Override - public void onAnimationEnd(Animation animation) { - // Once the target content has returned to its start position, reset - // the target offset to 0 - mCurrentTargetOffsetTop = 0; - } - }; - - private final AnimationListener mShrinkAnimationListener = new BaseAnimationListener() { - @Override - public void onAnimationEnd(Animation animation) { - mCurrPercentage = 0; - } - }; - - private final Runnable mReturnToStartPosition = new Runnable() { - - @Override - public void run() { - mReturningToStart = true; - animateOffsetToStartPosition(mCurrentTargetOffsetTop + getPaddingTop(), - mReturnToStartPositionListener); - } - - }; - - // Cancel the refresh gesture and animate everything back to its original state. - private final Runnable mCancel = new Runnable() { - - @Override - public void run() { - mReturningToStart = true; - // Timeout fired since the user last moved their finger; animate the - // trigger to 0 and put the target back at its original position - if (mProgressBar != null) { - mFromPercentage = mCurrPercentage; - mShrinkTrigger.setDuration(mMediumAnimationDuration); - mShrinkTrigger.setAnimationListener(mShrinkAnimationListener); - mShrinkTrigger.reset(); - mShrinkTrigger.setInterpolator(mDecelerateInterpolator); - startAnimation(mShrinkTrigger); - } - animateOffsetToStartPosition(mCurrentTargetOffsetTop + getPaddingTop(), - mReturnToStartPositionListener); - } - - }; - - /** - * Simple constructor to use when creating a SwipeRefreshLayout from code. - * @param context - */ - public SwipeRefreshLayout(Context context) { - this(context, null); - } - - /** - * Constructor that is called when inflating SwipeRefreshLayout from XML. - * @param context - * @param attrs - */ - public SwipeRefreshLayout(Context context, AttributeSet attrs) { - super(context, attrs); - - mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); - - mMediumAnimationDuration = getResources().getInteger( - android.R.integer.config_mediumAnimTime); - - setWillNotDraw(false); - mProgressBar = new SwipeProgressBar(this); - final DisplayMetrics metrics = getResources().getDisplayMetrics(); - mProgressBarHeight = (int) (metrics.density * PROGRESS_BAR_HEIGHT); - mDecelerateInterpolator = new DecelerateInterpolator(DECELERATE_INTERPOLATION_FACTOR); - mAccelerateInterpolator = new AccelerateInterpolator(ACCELERATE_INTERPOLATION_FACTOR); - - final TypedArray a = context.obtainStyledAttributes(attrs, LAYOUT_ATTRS); - setEnabled(a.getBoolean(0, true)); - a.recycle(); - } - - @Override - public void onAttachedToWindow() { - super.onAttachedToWindow(); - removeCallbacks(mCancel); - removeCallbacks(mReturnToStartPosition); - } - - @Override - public void onDetachedFromWindow() { - super.onDetachedFromWindow(); - removeCallbacks(mReturnToStartPosition); - removeCallbacks(mCancel); - } - - private void animateOffsetToStartPosition(int from, AnimationListener listener) { - mFrom = from; - mAnimateToStartPosition.reset(); - mAnimateToStartPosition.setDuration(mMediumAnimationDuration); - mAnimateToStartPosition.setAnimationListener(listener); - mAnimateToStartPosition.setInterpolator(mDecelerateInterpolator); - mTarget.startAnimation(mAnimateToStartPosition); - } - - /** - * Set the listener to be notified when a refresh is triggered via the swipe - * gesture. - */ - public void setOnRefreshListener(OnRefreshListener listener) { - mListener = listener; - } - - private void setTriggerPercentage(float percent) { - if (percent == 0f) { - // No-op. A null trigger means it's uninitialized, and setting it to zero-percent - // means we're trying to reset state, so there's nothing to reset in this case. - mCurrPercentage = 0; - return; - } - mCurrPercentage = percent; - mProgressBar.setTriggerPercentage(percent); - } - - /** - * Notify the widget that refresh state has changed. Do not call this when - * refresh is triggered by a swipe gesture. - * - * @param refreshing Whether or not the view should show refresh progress. - */ - public void setRefreshing(boolean refreshing) { - if (mRefreshing != refreshing) { - ensureTarget(); - mCurrPercentage = 0; - mRefreshing = refreshing; - if (mRefreshing) { - mProgressBar.start(); - } else { - mProgressBar.stop(); - } - } - } - - /** - * Set the four colors used in the progress animation. The first color will - * also be the color of the bar that grows in response to a user swipe - * gesture. - * - * @param colorRes1 Color resource. - * @param colorRes2 Color resource. - * @param colorRes3 Color resource. - * @param colorRes4 Color resource. - */ - public void setColorScheme(int colorRes1, int colorRes2, int colorRes3, int colorRes4) { - ensureTarget(); - final Resources res = getResources(); - final int color1 = res.getColor(colorRes1); - final int color2 = res.getColor(colorRes2); - final int color3 = res.getColor(colorRes3); - final int color4 = res.getColor(colorRes4); - mProgressBar.setColorScheme(color1, color2, color3,color4); - } - - /** - * @return Whether the SwipeRefreshWidget is actively showing refresh - * progress. - */ - public boolean isRefreshing() { - return mRefreshing; - } - - private void ensureTarget() { - // Don't bother getting the parent height if the parent hasn't been laid out yet. - if (mTarget == null) { - if (getChildCount() > 1 && !isInEditMode()) { - throw new IllegalStateException( - "SwipeRefreshLayout can host only one direct child"); - } - mTarget = getChildAt(0); - mOriginalOffsetTop = mTarget.getTop() + getPaddingTop(); - } - if (mDistanceToTriggerSync == -1) { - if (getParent() != null && ((View)getParent()).getHeight() > 0) { - final DisplayMetrics metrics = getResources().getDisplayMetrics(); - mDistanceToTriggerSync = (int) Math.min( - ((View) getParent()) .getHeight() * MAX_SWIPE_DISTANCE_FACTOR, - REFRESH_TRIGGER_DISTANCE * metrics.density); - } - } - } - - @Override - public void draw(Canvas canvas) { - super.draw(canvas); - mProgressBar.draw(canvas); - } - - public void setProgressBarTop(int top) { - mProgressBarTop = top; - mProgressBar.setBounds(0, mProgressBarTop, getWidth(), mProgressBarTop + mProgressBarHeight); - } - - @Override - protected void onLayout(boolean changed, int left, int top, int right, int bottom) { - final int width = getMeasuredWidth(); - final int height = getMeasuredHeight(); - mProgressBar.setBounds(0, mProgressBarTop, getWidth(), mProgressBarTop + mProgressBarHeight); - if (getChildCount() == 0) { - return; - } - final View child = getChildAt(0); - final int childLeft = getPaddingLeft(); - final int childTop = mCurrentTargetOffsetTop + getPaddingTop(); - final int childWidth = width - getPaddingLeft() - getPaddingRight(); - final int childHeight = height - getPaddingTop() - getPaddingBottom(); - child.layout(childLeft, childTop, childLeft + childWidth, childTop + childHeight); - } - - @Override - public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - if (getChildCount() > 1 && !isInEditMode()) { - throw new IllegalStateException("SwipeRefreshLayout can host only one direct child"); - } - if (getChildCount() > 0) { - getChildAt(0).measure( - MeasureSpec.makeMeasureSpec( - getMeasuredWidth() - getPaddingLeft() - getPaddingRight(), - MeasureSpec.EXACTLY), - MeasureSpec.makeMeasureSpec( - getMeasuredHeight() - getPaddingTop() - getPaddingBottom(), - MeasureSpec.EXACTLY)); - } - } - - /** - * @return Whether it is possible for the child view of this layout to - * scroll up. Override this if the child view is a custom view. - */ - public boolean canChildScrollUp() { - if (android.os.Build.VERSION.SDK_INT < 14) { - if (mTarget instanceof AbsListView) { - final AbsListView absListView = (AbsListView) mTarget; - return absListView.getChildCount() > 0 - && (absListView.getFirstVisiblePosition() > 0 || absListView.getChildAt(0) - .getTop() < absListView.getPaddingTop()); - } else { - return mTarget.getScrollY() > 0; - } - } else { - return ViewCompat.canScrollVertically(mTarget, -1); - } - } - - @Override - public boolean onInterceptTouchEvent(MotionEvent ev) { - ensureTarget(); - boolean handled = false; - if (mReturningToStart && ev.getAction() == MotionEvent.ACTION_DOWN) { - mReturningToStart = false; - } - if (isEnabled() && !mReturningToStart && !canChildScrollUp()) { - handled = onTouchEvent(ev); - } - return !handled ? super.onInterceptTouchEvent(ev) : handled; - } - - @Override - public void requestDisallowInterceptTouchEvent(boolean b) { - // Nope. - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - final int action = event.getAction(); - boolean handled = false; - switch (action) { - case MotionEvent.ACTION_DOWN: - mCurrPercentage = 0; - mDownEvent = MotionEvent.obtain(event); - mPrevY = mDownEvent.getY(); - break; - case MotionEvent.ACTION_MOVE: - if (mDownEvent != null && !mReturningToStart) { - final float eventY = event.getY(); - float yDiff = eventY - mDownEvent.getY(); - if (yDiff > mTouchSlop) { - // User velocity passed min velocity; trigger a refresh - if (yDiff > mDistanceToTriggerSync) { - // User movement passed distance; trigger a refresh - startRefresh(); - handled = true; - break; - } else { - // Just track the user's movement - setTriggerPercentage( - mAccelerateInterpolator.getInterpolation( - yDiff / mDistanceToTriggerSync)); - float offsetTop = yDiff; - if (mPrevY > eventY) { - offsetTop = yDiff - mTouchSlop; - } - updateContentOffsetTop((int) (offsetTop)); - if (mPrevY > eventY && (mTarget.getTop() < mTouchSlop)) { - // If the user puts the view back at the top, we - // don't need to. This shouldn't be considered - // cancelling the gesture as the user can restart from the top. - removeCallbacks(mCancel); - } else { - updatePositionTimeout(); - } - mPrevY = event.getY(); - handled = true; - } - } - } - break; - case MotionEvent.ACTION_UP: - case MotionEvent.ACTION_CANCEL: - if (mDownEvent != null) { - mDownEvent.recycle(); - mDownEvent = null; - } - break; - } - return handled; - } - - private void startRefresh() { - removeCallbacks(mCancel); - mReturnToStartPosition.run(); - setRefreshing(true); - mListener.onRefresh(); - } - - private void updateContentOffsetTop(int targetTop) { - final int currentTop = mTarget.getTop(); - if (targetTop > mDistanceToTriggerSync) { - targetTop = (int) mDistanceToTriggerSync; - } else if (targetTop < 0) { - targetTop = 0; - } - setTargetOffsetTopAndBottom(targetTop - currentTop); - } - - private void setTargetOffsetTopAndBottom(int offset) { - mTarget.offsetTopAndBottom(offset); - mCurrentTargetOffsetTop = mTarget.getTop(); - } - - private void updatePositionTimeout() { - removeCallbacks(mCancel); - postDelayed(mCancel, RETURN_TO_ORIGINAL_POSITION_TIMEOUT); - } - - /** - * Classes that wish to be notified when the swipe gesture correctly - * triggers a refresh should implement this interface. - */ - public interface OnRefreshListener { - public void onRefresh(); - } - - /** - * Simple AnimationListener to avoid having to implement unneeded methods in - * AnimationListeners. - */ - private class BaseAnimationListener implements AnimationListener { - @Override - public void onAnimationStart(Animation animation) { - } - - @Override - public void onAnimationEnd(Animation animation) { - } - - @Override - public void onAnimationRepeat(Animation animation) { - } - } -} diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/AccountUtils.java b/android/src/main/java/com/google/samples/apps/iosched/util/AccountUtils.java index 153ff6e..ef1256f 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/util/AccountUtils.java +++ b/android/src/main/java/com/google/samples/apps/iosched/util/AccountUtils.java @@ -182,6 +182,12 @@ public class AccountUtils { PREFIX_PREF_PLUS_IMAGE_URL), null) : null; } + public static String getPlusImageUrl(final Context context, final String accountName) { + SharedPreferences sp = getSharedPreferences(context); + return hasActiveAccount(context) ? sp.getString(makeAccountSpecificPrefKey(accountName, + PREFIX_PREF_PLUS_IMAGE_URL), null) : null; + } + public static void refreshAuthToken(Context mContext) { invalidateAuthToken(mContext); tryAuthenticateWithErrorNotification(mContext, ScheduleContract.CONTENT_AUTHORITY); diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/FeedbackUtils.java b/android/src/main/java/com/google/samples/apps/iosched/util/FeedbackUtils.java index aff85ac..13a4c93 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/util/FeedbackUtils.java +++ b/android/src/main/java/com/google/samples/apps/iosched/util/FeedbackUtils.java @@ -22,6 +22,7 @@ import android.content.Intent; import android.net.Uri; import com.google.samples.apps.iosched.provider.ScheduleContract; +import com.google.samples.apps.iosched.service.FeedbackListenerService; import com.google.samples.apps.iosched.service.SessionAlarmService; import static com.google.samples.apps.iosched.util.LogUtils.LOGD; @@ -72,7 +73,8 @@ public class FeedbackUtils { * should result in removal of the corresponding notifications on both ends. */ public static void dismissFeedbackNotification(Context context, String sessionId) { - Intent dismissalIntent = new Intent(SessionAlarmService.ACTION_NOTIFICATION_DISMISSAL); + Intent dismissalIntent = new Intent(context, FeedbackListenerService.class); + dismissalIntent.setAction(SessionAlarmService.ACTION_NOTIFICATION_DISMISSAL); dismissalIntent.putExtra(SessionAlarmService.KEY_SESSION_ID, sessionId); context.startService(dismissalIntent); } diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/ImageLoader.java b/android/src/main/java/com/google/samples/apps/iosched/util/ImageLoader.java index b264867..2285f79 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/util/ImageLoader.java +++ b/android/src/main/java/com/google/samples/apps/iosched/util/ImageLoader.java @@ -26,7 +26,7 @@ import com.google.samples.apps.iosched.R; import java.util.regex.Matcher; import java.util.regex.Pattern; -import com.bumptech.glide.DrawableRequestBuilder; +import com.bumptech.glide.BitmapRequestBuilder; import com.bumptech.glide.Glide; import com.bumptech.glide.ModelRequest; import com.bumptech.glide.load.Transformation; @@ -103,7 +103,7 @@ public class ImageLoader { */ public void loadImage(String url, ImageView imageView, RequestListener<String> requestListener, Drawable placeholderOverride, boolean crop) { - DrawableRequestBuilder<String> request = beginImageLoad(url, requestListener, crop) + BitmapRequestBuilder request = beginImageLoad(url, requestListener, crop) .animate(R.anim.image_fade_in); if (placeholderOverride != null) { request.placeholder(placeholderOverride); @@ -113,11 +113,12 @@ public class ImageLoader { request.into(imageView); } - public DrawableRequestBuilder<String> beginImageLoad(String url, + public BitmapRequestBuilder beginImageLoad(String url, RequestListener<String> requestListener, boolean crop) { return mGlideModelRequest.load(url) + .asBitmap() // don't allow animated GIFs .listener(requestListener) - .bitmapTransform(crop ? mCenterCrop : mNone); + .transform(crop ? mCenterCrop : mNone); } /** diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/LPreviewUtilsBase.java b/android/src/main/java/com/google/samples/apps/iosched/util/LPreviewUtilsBase.java deleted file mode 100644 index e4fa0ae..0000000 --- a/android/src/main/java/com/google/samples/apps/iosched/util/LPreviewUtilsBase.java +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright 2014 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.samples.apps.iosched.util; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; -import android.app.Activity; -import android.content.Intent; -import android.content.res.Configuration; -import android.graphics.Color; -import android.graphics.Typeface; -import android.os.Handler; -import android.support.v4.app.ActionBarDrawerToggle; -import android.support.v4.widget.DrawerLayout; -import android.view.MenuItem; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; - -import com.google.samples.apps.iosched.R; - -public class LPreviewUtilsBase { - protected Activity mActivity; - private ActionBarDrawerToggle mDrawerToggle; - private ActionBarDrawerToggleWrapper mDrawerToggleWrapper; - private Handler mHandler = new Handler(); - - LPreviewUtilsBase(Activity activity) { - mActivity = activity; - } - - public ActionBarDrawerToggleWrapper setupDrawerToggle(DrawerLayout drawerLayout, - final DrawerLayout.DrawerListener drawerListener) { - mDrawerToggle = new ActionBarDrawerToggle(mActivity, drawerLayout, - R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) { - @Override - public void onDrawerClosed(View drawerView) { - super.onDrawerClosed(drawerView); - drawerListener.onDrawerClosed(drawerView); - } - - @Override - public void onDrawerOpened(View drawerView) { - super.onDrawerOpened(drawerView); - drawerListener.onDrawerOpened(drawerView); - } - - @Override - public void onDrawerStateChanged(int newState) { - super.onDrawerStateChanged(newState); - drawerListener.onDrawerStateChanged(newState); - } - - @Override - public void onDrawerSlide(View drawerView, float slideOffset) { - super.onDrawerSlide(drawerView, slideOffset); - drawerListener.onDrawerSlide(drawerView, slideOffset); - } - }; - drawerLayout.setDrawerListener(mDrawerToggle); - mDrawerToggleWrapper = new ActionBarDrawerToggleWrapper(); - return mDrawerToggleWrapper; - } - - public void trySetActionBar() { - // Do nothing pre-L - } - - public boolean hasLPreviewAPIs() { - return false; - } - - public boolean shouldChangeActionBarForDrawer() { - return true; - } - - public void showHideActionBarIfPartOfDecor(boolean show) { - // pre-L, action bar is always part of the window decor - if (show) { - mActivity.getActionBar().show(); - } else { - mActivity.getActionBar().hide(); - } - } - - public void setMediumTypeface(TextView textView) { - textView.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD); - } - - public class ActionBarDrawerToggleWrapper { - public void syncState() { - if (mDrawerToggle != null) { - mDrawerToggle.syncState(); - } - } - - public void onConfigurationChanged(Configuration newConfig) { - if (mDrawerToggle != null) { - mDrawerToggle.onConfigurationChanged(newConfig); - } - } - - public boolean onOptionsItemSelected(MenuItem item) { - if (mDrawerToggle != null) { - return mDrawerToggle.onOptionsItemSelected(item); - } - return false; - } - } - - public void startActivityWithTransition(Intent intent, View clickedView, - String sharedElementName) { - mActivity.startActivity(intent); - } - - public void setViewName(View v, String viewName) { - // Can't do this pre-L - } - - public void postponeEnterTransition() { - // Can't do this pre-L - } - - public void startPostponedEnterTransition() { - // Can't do this pre-L - } - - public int getStatusBarColor() { - // On pre-L devices, you can have any status bar color so long as it's black. - return Color.BLACK; - } - - public void setStatusBarColor(int color) { - // Only black. - } - - public void setViewElevation(View v, float elevation) { - // Can't do this pre-L - } - - public void setOrAnimatePlusCheckIcon(final ImageView imageView, boolean isCheck, - boolean allowAnimate) { - final int imageResId = isCheck - ? R.drawable.add_schedule_button_icon_checked - : R.drawable.add_schedule_button_icon_unchecked; - - if (imageView.getTag() != null) { - if (imageView.getTag() instanceof Animator) { - Animator anim = (Animator) imageView.getTag(); - anim.end(); - imageView.setAlpha(1f); - } - } - - if (allowAnimate && isCheck) { - int duration = mActivity.getResources().getInteger( - android.R.integer.config_shortAnimTime); - - Animator outAnimator = ObjectAnimator.ofFloat(imageView, View.ALPHA, 0f); - outAnimator.setDuration(duration / 2); - outAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - imageView.setImageResource(imageResId); - } - }); - - AnimatorSet inAnimator = new AnimatorSet(); - outAnimator.setDuration(duration); - inAnimator.playTogether( - ObjectAnimator.ofFloat(imageView, View.ALPHA, 1f), - ObjectAnimator.ofFloat(imageView, View.SCALE_X, 0f, 1f), - ObjectAnimator.ofFloat(imageView, View.SCALE_Y, 0f, 1f) - ); - - AnimatorSet set = new AnimatorSet(); - set.playSequentially(outAnimator, inAnimator); - set.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - imageView.setTag(null); - } - }); - imageView.setTag(set); - set.start(); - } else { - mHandler.post(new Runnable() { - @Override - public void run() { - imageView.setImageResource(imageResId); - } - }); - } - } -} diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/LUtils.java b/android/src/main/java/com/google/samples/apps/iosched/util/LUtils.java new file mode 100644 index 0000000..f34fcff --- /dev/null +++ b/android/src/main/java/com/google/samples/apps/iosched/util/LUtils.java @@ -0,0 +1,181 @@ +/* + * Copyright 2014 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.iosched.util; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.annotation.TargetApi; +import android.app.ActivityOptions; +import android.content.Intent; +import android.graphics.Color; +import android.graphics.Typeface; +import android.graphics.drawable.AnimatedStateListDrawable; +import android.graphics.drawable.Drawable; +import android.os.Build; +import android.os.Handler; +import android.support.v7.app.ActionBarActivity; +import android.text.TextUtils; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.google.samples.apps.iosched.R; + +@TargetApi(Build.VERSION_CODES.LOLLIPOP) +public class LUtils { + private static final int[] STATE_CHECKED = new int[]{android.R.attr.state_checked}; + private static final int[] STATE_UNCHECKED = new int[]{}; + + private static Typeface sMediumTypeface; + + protected ActionBarActivity mActivity; + private Handler mHandler = new Handler(); + + private LUtils(ActionBarActivity activity) { + mActivity = activity; + } + + public static LUtils getInstance(ActionBarActivity activity) { + return new LUtils(activity); + } + + private static boolean hasL() { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP; + } + + public void startActivityWithTransition(Intent intent, final View clickedView, + final String transitionName) { + ActivityOptions options = null; + if (hasL() && clickedView != null && !TextUtils.isEmpty(transitionName)) { +// options = ActivityOptions.makeSceneTransitionAnimation( +// mActivity, clickedView, transitionName); + } + + mActivity.startActivity(intent, (options != null) ? options.toBundle() : null); + } + + public void setMediumTypeface(TextView textView) { + if (hasL()) { + if (sMediumTypeface == null) { + sMediumTypeface = Typeface.create("sans-serif-medium", Typeface.NORMAL); + } + + textView.setTypeface(sMediumTypeface); + } else { + textView.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD); + } + } + + public int getStatusBarColor() { + if (!hasL()) { + // On pre-L devices, you can have any status bar color so long as it's black. + return Color.BLACK; + } + + return mActivity.getWindow().getStatusBarColor(); + } + + public void setStatusBarColor(int color) { + if (!hasL()) { + return; + } + + mActivity.getWindow().setStatusBarColor(color); + } + + public void setOrAnimatePlusCheckIcon(final ImageView imageView, boolean isCheck, + boolean allowAnimate) { + if (!hasL()) { + compatSetOrAnimatePlusCheckIcon(imageView, isCheck, allowAnimate); + return; + } + + Drawable drawable = imageView.getDrawable(); + if (!(drawable instanceof AnimatedStateListDrawable)) { + drawable = mActivity.getResources().getDrawable(R.drawable.add_schedule_fab_icon_anim); + imageView.setImageDrawable(drawable); + } + imageView.setColorFilter(isCheck ? + mActivity.getResources().getColor(R.color.theme_accent_1) : Color.WHITE); + if (allowAnimate) { + imageView.setImageState(isCheck ? STATE_UNCHECKED : STATE_CHECKED, false); + drawable.jumpToCurrentState(); + imageView.setImageState(isCheck ? STATE_CHECKED : STATE_UNCHECKED, false); + } else { + imageView.setImageState(isCheck ? STATE_CHECKED : STATE_UNCHECKED, false); + drawable.jumpToCurrentState(); + } + } + + public void compatSetOrAnimatePlusCheckIcon(final ImageView imageView, boolean isCheck, + boolean allowAnimate) { + + final int imageResId = isCheck + ? R.drawable.add_schedule_button_icon_checked + : R.drawable.add_schedule_button_icon_unchecked; + + if (imageView.getTag() != null) { + if (imageView.getTag() instanceof Animator) { + Animator anim = (Animator) imageView.getTag(); + anim.end(); + imageView.setAlpha(1f); + } + } + + if (allowAnimate && isCheck) { + int duration = mActivity.getResources().getInteger( + android.R.integer.config_shortAnimTime); + + Animator outAnimator = ObjectAnimator.ofFloat(imageView, View.ALPHA, 0f); + outAnimator.setDuration(duration / 2); + outAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + imageView.setImageResource(imageResId); + } + }); + + AnimatorSet inAnimator = new AnimatorSet(); + outAnimator.setDuration(duration); + inAnimator.playTogether( + ObjectAnimator.ofFloat(imageView, View.ALPHA, 1f), + ObjectAnimator.ofFloat(imageView, View.SCALE_X, 0f, 1f), + ObjectAnimator.ofFloat(imageView, View.SCALE_Y, 0f, 1f) + ); + + AnimatorSet set = new AnimatorSet(); + set.playSequentially(outAnimator, inAnimator); + set.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + imageView.setTag(null); + } + }); + imageView.setTag(set); + set.start(); + } else { + mHandler.post(new Runnable() { + @Override + public void run() { + imageView.setImageResource(imageResId); + } + }); + } + } +} diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/LoginAndAuthHelper.java b/android/src/main/java/com/google/samples/apps/iosched/util/LoginAndAuthHelper.java index 094010e..7426b11 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/util/LoginAndAuthHelper.java +++ b/android/src/main/java/com/google/samples/apps/iosched/util/LoginAndAuthHelper.java @@ -21,6 +21,7 @@ import android.app.Dialog; import android.content.Context; import android.content.Intent; import android.content.IntentSender; +import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; @@ -43,7 +44,10 @@ import com.google.android.gms.plus.model.people.PersonBuffer; import java.io.IOException; import java.lang.ref.WeakReference; -import static com.google.samples.apps.iosched.util.LogUtils.*; +import static com.google.samples.apps.iosched.util.LogUtils.LOGD; +import static com.google.samples.apps.iosched.util.LogUtils.LOGE; +import static com.google.samples.apps.iosched.util.LogUtils.LOGW; +import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; /** * This helper handles the UI flow for signing in and authenticating an account. It handles @@ -303,8 +307,13 @@ public class LoginAndAuthHelper implements GoogleApiClient.ConnectionCallbacks, // Record profile ID, image URL and name LOGD(TAG, "Saving plus profile ID: " + currentUser.getId()); AccountUtils.setPlusProfileId(mAppContext, mAccountName, currentUser.getId()); - LOGD(TAG, "Saving plus image URL: " + currentUser.getImage().getUrl()); - AccountUtils.setPlusImageUrl(mAppContext, mAccountName, currentUser.getImage().getUrl()); + String imageUrl = currentUser.getImage().getUrl(); + if (imageUrl != null) { + imageUrl = Uri.parse(imageUrl) + .buildUpon().appendQueryParameter("sz", "256").build().toString(); + } + LOGD(TAG, "Saving plus image URL: " + imageUrl); + AccountUtils.setPlusImageUrl(mAppContext, mAccountName, imageUrl); LOGD(TAG, "Saving plus display name: " + currentUser.getDisplayName()); AccountUtils.setPlusName(mAppContext, mAccountName, currentUser.getDisplayName()); Person.Cover cover = currentUser.getCover(); diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/PrefUtils.java b/android/src/main/java/com/google/samples/apps/iosched/util/PrefUtils.java index 87725fa..750240a 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/util/PrefUtils.java +++ b/android/src/main/java/com/google/samples/apps/iosched/util/PrefUtils.java @@ -161,7 +161,7 @@ public class PrefUtils { public static void markUserRefusedSignIn(final Context context, final boolean refused) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); - sp.edit().putBoolean(PREF_USER_REFUSED_SIGN_IN, refused).apply(); + sp.edit().putBoolean(PREF_USER_REFUSED_SIGN_IN, refused).commit(); } public static boolean hasUserRefusedSignIn(final Context context) { @@ -313,8 +313,8 @@ public class PrefUtils { sp.registerOnSharedPreferenceChangeListener(listener); } - public static void unrgisterOnSharedPreferenceChangeListener(final Context context, - SharedPreferences.OnSharedPreferenceChangeListener listener) { + public static void unregisterOnSharedPreferenceChangeListener(final Context context, + SharedPreferences.OnSharedPreferenceChangeListener listener) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); sp.unregisterOnSharedPreferenceChangeListener(listener); } diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/RecentTasksStyler.java b/android/src/main/java/com/google/samples/apps/iosched/util/RecentTasksStyler.java new file mode 100644 index 0000000..c16779f --- /dev/null +++ b/android/src/main/java/com/google/samples/apps/iosched/util/RecentTasksStyler.java @@ -0,0 +1,55 @@ +/* + * Copyright 2014 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.samples.apps.iosched.util; + +import android.annotation.TargetApi; +import android.app.Activity; +import android.app.ActivityManager; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.os.Build; + +import com.google.samples.apps.iosched.R; + +/** + * Helper class that applies the proper icon, title and background color to recent tasks list. + */ +public class RecentTasksStyler { + private static Bitmap sIcon = null; + + private RecentTasksStyler() { + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public static void styleRecentTasksEntry(Activity activity) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + return; + } + + Resources resources = activity.getResources(); + String label = resources.getString(activity.getApplicationInfo().labelRes); + int colorPrimary = resources.getColor(R.color.theme_primary); + + if (sIcon == null) { + // Cache to avoid decoding the same bitmap on every Activity change + sIcon = BitmapFactory.decodeResource(resources, R.drawable.ic_stat_notification); + } + + activity.setTaskDescription(new ActivityManager.TaskDescription(label, sIcon, colorPrimary)); + } +}
\ No newline at end of file diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/SessionsHelper.java b/android/src/main/java/com/google/samples/apps/iosched/util/SessionsHelper.java index 8d70429..aa98f11 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/util/SessionsHelper.java +++ b/android/src/main/java/com/google/samples/apps/iosched/util/SessionsHelper.java @@ -16,25 +16,20 @@ package com.google.samples.apps.iosched.util; -import android.annotation.TargetApi; import android.app.Activity; import android.content.AsyncQueryHandler; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.net.Uri; -import android.os.Build; import android.support.v4.app.ShareCompat; import android.view.MenuItem; import com.google.samples.apps.iosched.R; import com.google.samples.apps.iosched.appwidget.ScheduleWidgetProvider; -import com.google.samples.apps.iosched.gcm.ServerUtilities; import com.google.samples.apps.iosched.provider.ScheduleContract; import com.google.samples.apps.iosched.sync.SyncHelper; -import com.google.samples.apps.iosched.sync.TriggerSyncReceiver; -import com.google.samples.apps.iosched.ui.MapFragment; -import com.google.samples.apps.iosched.ui.phone.MapActivity; +import com.google.samples.apps.iosched.ui.BaseMapActivity; import static com.google.samples.apps.iosched.util.LogUtils.LOGD; import static com.google.samples.apps.iosched.util.LogUtils.makeLogTag; @@ -55,8 +50,8 @@ public final class SessionsHelper { public void startMapActivity(String roomId) { Intent intent = new Intent(mActivity.getApplicationContext(), UIUtils.getMapActivityClass(mActivity)); - intent.putExtra(MapFragment.EXTRA_ROOM, roomId); - intent.putExtra(MapActivity.EXTRA_DETACHED_MODE, true); + intent.putExtra(BaseMapActivity.EXTRA_ROOM, roomId); + intent.putExtra(BaseMapActivity.EXTRA_DETACHED_MODE, true); mActivity.startActivity(intent); } @@ -71,27 +66,7 @@ public final class SessionsHelper { public void tryConfigureShareMenuItem(MenuItem menuItem, int messageTemplateResId, final String title, String hashtags, String url) { - // Intentionally removed by Roman -// if (UIUtils.hasICS()) { -// ActionProvider itemProvider = menuItem.getActionProvider(); -// ShareActionProvider provider; -// if (!(itemProvider instanceof ShareActionProvider)) { -// provider = new ShareActionProvider(mActivity); -// } else { -// provider = (ShareActionProvider) itemProvider; -// } -// provider.setShareIntent(createShareIntent(messageTemplateResId, title, hashtags, url)); -// provider.setOnShareTargetSelectedListener( -// new ShareActionProvider.OnShareTargetSelectedListener() { -// @Override -// public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) { -// AnalyticsManager.sendEvent("Session", "Shared", title, 0L); -// return false; -// } -// }); -// -// menuItem.setActionProvider(provider); -// } + // TODO: remove } public void shareSession(Context context, int messageTemplateResId, String title, diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/UIUtils.java b/android/src/main/java/com/google/samples/apps/iosched/util/UIUtils.java index 2cafde5..6440085 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/util/UIUtils.java +++ b/android/src/main/java/com/google/samples/apps/iosched/util/UIUtils.java @@ -26,11 +26,12 @@ import android.content.pm.ActivityInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; -import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; -import android.graphics.*; -import android.graphics.drawable.Drawable; +import android.graphics.Color; +import android.graphics.ColorFilter; +import android.graphics.ColorMatrixColorFilter; +import android.graphics.Typeface; import android.net.Uri; import android.os.Build; import android.preference.PreferenceManager; @@ -74,9 +75,10 @@ public class UIUtils { * Factor applied to session color to derive the background color on panels and when * a session photo could not be downloaded (or while it is being downloaded) */ - public static final float SESSION_BG_COLOR_SCALE_FACTOR = 0.65f; - public static final float SESSION_PHOTO_SCRIM_ALPHA = 0.75f; + public static final float SESSION_BG_COLOR_SCALE_FACTOR = 0.75f; + private static final float SESSION_PHOTO_SCRIM_ALPHA = 0.25f; // 0=invisible, 1=visible image + private static final float SESSION_PHOTO_SCRIM_SATURATION = 0.2f; // 0=gray, 1=color image public static final String TARGET_FORM_FACTOR_ACTIVITY_METADATA = "com.google.samples.apps.iosched.meta.TARGET_FORM_FACTOR"; @@ -294,9 +296,7 @@ public class UIUtils { } public static boolean isTablet(Context context) { - return (context.getResources().getConfiguration().screenLayout - & Configuration.SCREENLAYOUT_SIZE_MASK) - >= Configuration.SCREENLAYOUT_SIZE_LARGE; + return context.getResources().getConfiguration().smallestScreenWidthDp >= 600; } // Whether a feedback notification was fired for a particular session. In the event that a @@ -429,7 +429,7 @@ public class UIUtils { } } - private static final int[] RES_IDS_ACTION_BAR_SIZE = { android.R.attr.actionBarSize }; + private static final int[] RES_IDS_ACTION_BAR_SIZE = { R.attr.actionBarSize }; /** Calculates the Action Bar height in pixels. */ public static int calculateActionBarSize(Context context) { @@ -467,10 +467,6 @@ public class UIUtils { return scaleColor(color, SESSION_BG_COLOR_SCALE_FACTOR, false); } - public static boolean hasActionBar(Activity activity) { - return activity.getActionBar() != null; - } - public static void showHashtagStream(final Context context, String hashTag) { final String hashTagsString = getSessionHashtagsString(hashTag); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse( @@ -537,4 +533,16 @@ public class UIUtils { return (value - min) / (float) (max - min); } + + // Desaturates and color-scrims the image + public static ColorFilter makeSessionImageScrimColorFilter(int sessionColor) { + float a = SESSION_PHOTO_SCRIM_ALPHA; + float sat = SESSION_PHOTO_SCRIM_SATURATION; // saturation (0=gray, 1=color) + return new ColorMatrixColorFilter(new float[]{ + ((1 - 0.213f) * sat + 0.213f) * a, ((0 - 0.715f) * sat + 0.715f) * a, ((0 - 0.072f) * sat + 0.072f) * a, 0, Color.red(sessionColor) * (1 - a), + ((0 - 0.213f) * sat + 0.213f) * a, ((1 - 0.715f) * sat + 0.715f) * a, ((0 - 0.072f) * sat + 0.072f) * a, 0, Color.green(sessionColor) * (1 - a), + ((0 - 0.213f) * sat + 0.213f) * a, ((0 - 0.715f) * sat + 0.715f) * a, ((1 - 0.072f) * sat + 0.072f) * a, 0, Color.blue(sessionColor) * (1 - a), + 0, 0, 0, 0, 255 + }); + } } diff --git a/android/src/main/java/com/google/samples/apps/iosched/util/WiFiUtils.java b/android/src/main/java/com/google/samples/apps/iosched/util/WiFiUtils.java index b1fb0cd..ec8786a 100644 --- a/android/src/main/java/com/google/samples/apps/iosched/util/WiFiUtils.java +++ b/android/src/main/java/com/google/samples/apps/iosched/util/WiFiUtils.java @@ -16,7 +16,13 @@ package com.google.samples.apps.iosched.util; -import android.app.*; +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.DialogFragment; +import android.app.Fragment; +import android.app.FragmentManager; +import android.app.FragmentTransaction; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -32,7 +38,6 @@ import android.util.Log; import android.widget.TextView; import android.widget.Toast; -import com.google.samples.apps.iosched.BuildConfig; import com.google.samples.apps.iosched.Config; import com.google.samples.apps.iosched.R; @@ -151,17 +156,23 @@ public class WiFiUtils { ft.remove(prev); } ft.addToBackStack(null); - new WiFiDialog(isWiFiEnabled(activity)).show(ft, "dialog_wifi"); + WiFiDialog.newInstance(isWiFiEnabled(activity)).show(ft, "dialog_wifi"); } public static class WiFiDialog extends DialogFragment { + private static final String ARG_WIFI_ENABLED + = "com.google.samples.apps.iosched.ARG_WIFI_ENABLED"; + private boolean mWiFiEnabled; - public WiFiDialog() {} + public static WiFiDialog newInstance(boolean wiFiEnabled) { + WiFiDialog wiFiDialogFragment = new WiFiDialog(); + + Bundle args = new Bundle(); + args.putBoolean(ARG_WIFI_ENABLED, wiFiEnabled); + wiFiDialogFragment.setArguments(args); - public WiFiDialog(boolean wifiEnabled) { - super(); - mWiFiEnabled = wifiEnabled; + return wiFiDialogFragment; } @Override @@ -171,6 +182,8 @@ public class WiFiUtils { final TextView wifiTextView = new TextView(getActivity()); int dialogCallToActionText; int dialogPositiveButtonText; + + mWiFiEnabled = getArguments().getBoolean(ARG_WIFI_ENABLED); if (mWiFiEnabled) { dialogCallToActionText = R.string.calltoaction_wifi_configure; dialogPositiveButtonText = R.string.wifi_dialog_button_configure; diff --git a/android/src/lpreview/res/anim-v21/add_schedule_fab_state_list_anim.xml b/android/src/main/res/anim-v21/add_schedule_fab_state_list_anim.xml index 4e1d87c..2c6e6dc 100644 --- a/android/src/lpreview/res/anim-v21/add_schedule_fab_state_list_anim.xml +++ b/android/src/main/res/anim-v21/add_schedule_fab_state_list_anim.xml @@ -1,5 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- +<?xml version="1.0" encoding="utf-8"?><!-- Copyright 2014 Google Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,20 +15,24 @@ --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:state_enabled="true" android:state_pressed="true"> + <item + android:state_enabled="true" + android:state_pressed="true"> <set> - <objectAnimator android:duration="@android:integer/config_shortAnimTime" - android:propertyName="translationZ" - android:valueTo="@dimen/fab_press_translation_z" - android:valueType="floatType"/> + <objectAnimator + android:duration="@android:integer/config_shortAnimTime" + android:propertyName="translationZ" + android:valueTo="@dimen/fab_press_translation_z" + android:valueType="floatType" /> </set> </item> <item> <set> - <objectAnimator android:duration="@android:integer/config_shortAnimTime" - android:propertyName="translationZ" - android:valueTo="0" - android:valueType="floatType"/> + <objectAnimator + android:duration="@android:integer/config_shortAnimTime" + android:propertyName="translationZ" + android:valueTo="0" + android:valueType="floatType" /> </set> </item> </selector> diff --git a/android/src/main/res/drawable-hdpi/ic_launcher.png b/android/src/main/res/drawable-hdpi/ic_launcher.png Binary files differdeleted file mode 100755 index 633e56f..0000000 --- a/android/src/main/res/drawable-hdpi/ic_launcher.png +++ /dev/null diff --git a/android/src/main/res/drawable-mdpi/ic_launcher.png b/android/src/main/res/drawable-mdpi/ic_launcher.png Binary files differdeleted file mode 100755 index 786a92f..0000000 --- a/android/src/main/res/drawable-mdpi/ic_launcher.png +++ /dev/null diff --git a/android/src/lpreview/res/drawable-v21/add_schedule_fab_icon_anim.xml b/android/src/main/res/drawable-v21/add_schedule_fab_icon_anim.xml index 809878e..b161902 100644 --- a/android/src/lpreview/res/drawable-v21/add_schedule_fab_icon_anim.xml +++ b/android/src/main/res/drawable-v21/add_schedule_fab_icon_anim.xml @@ -15,267 +15,209 @@ --> <animated-selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:state_checked="true" android:id="@+id/state_on"> - <bitmap android:src="@drawable/ic_done_anim_030" - android:tint="@color/theme_accent_1" /> + <item + android:id="@+id/state_on" + android:state_checked="true"> + <bitmap android:src="@drawable/ic_done_anim_030" /> </item> <item android:id="@+id/state_off"> - <bitmap android:src="@drawable/ic_plus_anim_030" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_030" /> </item> - <transition android:fromId="@+id/state_on" android:toId="@+id/state_off"> + <transition + android:fromId="@+id/state_on" + android:toId="@+id/state_off"> <animation-list> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_000" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_000" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_001" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_001" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_002" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_002" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_003" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_003" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_004" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_004" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_005" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_005" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_006" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_006" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_007" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_007" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_008" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_008" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_009" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_009" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_010" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_010" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_011" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_011" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_012" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_012" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_013" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_013" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_014" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_014" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_015" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_015" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_016" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_016" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_017" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_017" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_018" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_018" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_019" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_019" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_020" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_020" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_021" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_021" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_022" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_022" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_023" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_023" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_024" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_024" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_025" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_025" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_026" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_026" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_027" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_027" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_028" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_028" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_029" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_029" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_plus_anim_030" - android:tint="#fff" /> + <bitmap android:src="@drawable/ic_plus_anim_030" /> </item> </animation-list> </transition> - <transition android:fromId="@+id/state_off" android:toId="@+id/state_on"> + <transition + android:fromId="@+id/state_off" + android:toId="@+id/state_on"> <animation-list> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_000" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_000" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_001" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_001" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_002" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_002" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_003" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_003" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_004" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_004" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_005" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_005" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_006" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_006" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_007" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_007" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_008" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_008" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_009" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_009" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_010" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_010" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_011" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_011" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_012" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_012" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_013" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_013" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_014" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_014" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_015" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_015" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_016" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_016" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_017" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_017" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_018" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_018" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_019" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_019" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_020" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_020" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_021" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_021" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_022" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_022" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_023" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_023" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_024" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_024" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_025" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_025" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_026" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_026" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_027" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_027" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_028" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_028" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_029" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_029" /> </item> <item android:duration="16"> - <bitmap android:src="@drawable/ic_done_anim_030" - android:tint="@color/theme_accent_1" /> + <bitmap android:src="@drawable/ic_done_anim_030" /> </item> </animation-list> </transition> diff --git a/android/src/lpreview/res/drawable-v21/add_schedule_fab_ripple_background_off.xml b/android/src/main/res/drawable-v21/add_schedule_fab_ripple_background_off.xml index a839888..a839888 100644 --- a/android/src/lpreview/res/drawable-v21/add_schedule_fab_ripple_background_off.xml +++ b/android/src/main/res/drawable-v21/add_schedule_fab_ripple_background_off.xml diff --git a/android/src/lpreview/res/drawable-v21/add_schedule_fab_ripple_background_on.xml b/android/src/main/res/drawable-v21/add_schedule_fab_ripple_background_on.xml index 3b2dcad..2a4d1fe 100644 --- a/android/src/lpreview/res/drawable-v21/add_schedule_fab_ripple_background_on.xml +++ b/android/src/main/res/drawable-v21/add_schedule_fab_ripple_background_on.xml @@ -15,7 +15,7 @@ limitations under the License. --> -<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="#f1f1f1"> +<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="#ccc"> <item> <shape> <solid android:color="#fff" /> diff --git a/android/src/lpreview/res/drawable-v21/photo_item_foreground.xml b/android/src/main/res/drawable-v21/photo_item_foreground.xml index a04f8f0..a04f8f0 100644 --- a/android/src/lpreview/res/drawable-v21/photo_item_foreground.xml +++ b/android/src/main/res/drawable-v21/photo_item_foreground.xml diff --git a/android/src/lpreview/res/values-v21/dimens.xml b/android/src/main/res/drawable-v21/photo_item_foreground_borderless.xml index 6e4a762..7926e0a 100644 --- a/android/src/lpreview/res/values-v21/dimens.xml +++ b/android/src/main/res/drawable-v21/photo_item_foreground_borderless.xml @@ -14,6 +14,4 @@ limitations under the License. --> -<resources> - <dimen name="spinner_left_padding">16dp</dimen> -</resources> +<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="#2fff" /> diff --git a/android/src/lpreview/res/drawable-v21/popup_item_background.xml b/android/src/main/res/drawable-v21/popup_item_background.xml index ffae241..ffae241 100644 --- a/android/src/lpreview/res/drawable-v21/popup_item_background.xml +++ b/android/src/main/res/drawable-v21/popup_item_background.xml diff --git a/android/src/lpreview/res/drawable-v21/schedule_item_touchoverlay.xml b/android/src/main/res/drawable-v21/schedule_item_touchoverlay.xml index 43c61ba..43c61ba 100644 --- a/android/src/lpreview/res/drawable-v21/schedule_item_touchoverlay.xml +++ b/android/src/main/res/drawable-v21/schedule_item_touchoverlay.xml diff --git a/android/src/lpreview/res/drawable-v21/schedule_item_touchoverlay_dark.xml b/android/src/main/res/drawable-v21/schedule_item_touchoverlay_dark.xml index 77ddead..77ddead 100644 --- a/android/src/lpreview/res/drawable-v21/schedule_item_touchoverlay_dark.xml +++ b/android/src/main/res/drawable-v21/schedule_item_touchoverlay_dark.xml diff --git a/android/src/main/res/drawable-xhdpi/ic_launcher.png b/android/src/main/res/drawable-xhdpi/ic_launcher.png Binary files differdeleted file mode 100755 index a9f7abb..0000000 --- a/android/src/main/res/drawable-xhdpi/ic_launcher.png +++ /dev/null diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_000.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_000.png Binary files differindex 46feef4..46feef4 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_000.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_000.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_001.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_001.png Binary files differindex cbbf40c..cbbf40c 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_001.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_001.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_002.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_002.png Binary files differindex 5deacdd..5deacdd 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_002.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_002.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_003.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_003.png Binary files differindex 5abe18a..5abe18a 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_003.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_003.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_004.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_004.png Binary files differindex ef47e6b..ef47e6b 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_004.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_004.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_005.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_005.png Binary files differindex d77a26d..d77a26d 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_005.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_005.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_006.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_006.png Binary files differindex 14f724f..14f724f 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_006.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_006.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_007.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_007.png Binary files differindex e35e72f..e35e72f 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_007.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_007.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_008.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_008.png Binary files differindex afb842d..afb842d 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_008.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_008.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_009.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_009.png Binary files differindex 5a475ce..5a475ce 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_009.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_009.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_010.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_010.png Binary files differindex e678436..e678436 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_010.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_010.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_011.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_011.png Binary files differindex 66dab92..66dab92 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_011.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_011.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_012.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_012.png Binary files differindex 9183138..9183138 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_012.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_012.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_013.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_013.png Binary files differindex 76efc27..76efc27 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_013.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_013.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_014.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_014.png Binary files differindex f625bff..f625bff 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_014.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_014.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_015.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_015.png Binary files differindex b3da51e..b3da51e 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_015.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_015.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_016.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_016.png Binary files differindex ebfc72e..ebfc72e 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_016.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_016.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_017.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_017.png Binary files differindex ddb0f7f..ddb0f7f 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_017.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_017.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_018.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_018.png Binary files differindex b870294..b870294 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_018.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_018.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_019.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_019.png Binary files differindex 230a339..230a339 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_019.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_019.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_020.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_020.png Binary files differindex a7f3517..a7f3517 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_020.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_020.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_021.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_021.png Binary files differindex 3202040..3202040 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_021.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_021.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_022.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_022.png Binary files differindex 4ad8d2e..4ad8d2e 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_022.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_022.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_023.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_023.png Binary files differindex 62003d1..62003d1 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_023.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_023.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_024.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_024.png Binary files differindex f6633de..f6633de 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_024.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_024.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_025.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_025.png Binary files differindex 200accf..200accf 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_025.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_025.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_026.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_026.png Binary files differindex 00f7159..00f7159 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_026.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_026.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_027.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_027.png Binary files differindex 0950651..0950651 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_027.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_027.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_028.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_028.png Binary files differindex abe9fb3..abe9fb3 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_028.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_028.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_029.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_029.png Binary files differindex 9c527e8..9c527e8 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_029.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_029.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_030.png b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_030.png Binary files differindex 84d2d40..84d2d40 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_done_anim_030.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_done_anim_030.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_000.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_000.png Binary files differindex 84d2d40..84d2d40 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_000.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_000.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_001.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_001.png Binary files differindex f604272..f604272 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_001.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_001.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_002.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_002.png Binary files differindex 99d9b28..99d9b28 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_002.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_002.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_003.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_003.png Binary files differindex cb5d248..cb5d248 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_003.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_003.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_004.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_004.png Binary files differindex c297a58..c297a58 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_004.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_004.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_005.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_005.png Binary files differindex 72aace8..72aace8 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_005.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_005.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_006.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_006.png Binary files differindex 180d34e..180d34e 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_006.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_006.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_007.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_007.png Binary files differindex 581baf2..581baf2 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_007.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_007.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_008.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_008.png Binary files differindex 059fbc9..059fbc9 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_008.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_008.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_009.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_009.png Binary files differindex cb15f09..cb15f09 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_009.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_009.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_010.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_010.png Binary files differindex 369919f..369919f 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_010.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_010.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_011.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_011.png Binary files differindex 337ec63..337ec63 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_011.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_011.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_012.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_012.png Binary files differindex e9850e4..e9850e4 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_012.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_012.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_013.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_013.png Binary files differindex 0e45eba..0e45eba 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_013.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_013.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_014.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_014.png Binary files differindex 6fc754c..6fc754c 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_014.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_014.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_015.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_015.png Binary files differindex 9bd9e27..9bd9e27 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_015.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_015.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_016.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_016.png Binary files differindex 08d9dbd..08d9dbd 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_016.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_016.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_017.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_017.png Binary files differindex 2d594a8..2d594a8 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_017.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_017.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_018.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_018.png Binary files differindex abc0437..abc0437 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_018.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_018.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_019.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_019.png Binary files differindex e3f434d..e3f434d 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_019.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_019.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_020.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_020.png Binary files differindex ef5d60f..ef5d60f 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_020.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_020.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_021.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_021.png Binary files differindex 01e5ebc..01e5ebc 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_021.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_021.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_022.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_022.png Binary files differindex 4f78187..4f78187 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_022.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_022.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_023.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_023.png Binary files differindex 3427a60..3427a60 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_023.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_023.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_024.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_024.png Binary files differindex 48cee4a..48cee4a 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_024.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_024.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_025.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_025.png Binary files differindex 4464692..4464692 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_025.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_025.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_026.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_026.png Binary files differindex dd43d81..dd43d81 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_026.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_026.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_027.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_027.png Binary files differindex 7a5ee16..7a5ee16 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_027.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_027.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_028.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_028.png Binary files differindex 5e4863f..5e4863f 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_028.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_028.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_029.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_029.png Binary files differindex b03b5ce..b03b5ce 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_029.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_029.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_030.png b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_030.png Binary files differindex 4372596..4372596 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_plus_anim_030.png +++ b/android/src/main/res/drawable-xxhdpi-v21/ic_plus_anim_030.png diff --git a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_ab_close.png b/android/src/main/res/drawable-xxhdpi/ic_ab_close.png Binary files differindex 319f7af..319f7af 100644 --- a/android/src/lpreview/res/drawable-xxhdpi-v21/ic_ab_close.png +++ b/android/src/main/res/drawable-xxhdpi/ic_ab_close.png diff --git a/android/src/main/res/drawable-xxhdpi/ic_action_share.png b/android/src/main/res/drawable-xxhdpi/ic_action_share.png Binary files differindex ea53bb6..343dea6 100644 --- a/android/src/main/res/drawable-xxhdpi/ic_action_share.png +++ b/android/src/main/res/drawable-xxhdpi/ic_action_share.png diff --git a/android/src/main/res/drawable-xxhdpi/ic_action_social_stream.png b/android/src/main/res/drawable-xxhdpi/ic_action_social_stream.png Binary files differindex 41f1e04..5334780 100644 --- a/android/src/main/res/drawable-xxhdpi/ic_action_social_stream.png +++ b/android/src/main/res/drawable-xxhdpi/ic_action_social_stream.png diff --git a/android/src/main/res/drawable-xxhdpi/ic_drawer.png b/android/src/main/res/drawable-xxhdpi/ic_drawer.png Binary files differindex 26420e5..19bae3e 100644 --- a/android/src/main/res/drawable-xxhdpi/ic_drawer.png +++ b/android/src/main/res/drawable-xxhdpi/ic_drawer.png diff --git a/android/src/main/res/drawable-xxhdpi/ic_drawer_accounts_collapse.png b/android/src/main/res/drawable-xxhdpi/ic_drawer_accounts_collapse.png Binary files differindex 71358dc..877de76 100644 --- a/android/src/main/res/drawable-xxhdpi/ic_drawer_accounts_collapse.png +++ b/android/src/main/res/drawable-xxhdpi/ic_drawer_accounts_collapse.png diff --git a/android/src/main/res/drawable-xxhdpi/ic_drawer_accounts_expand.png b/android/src/main/res/drawable-xxhdpi/ic_drawer_accounts_expand.png Binary files differindex 254eebb..2dad32e 100644 --- a/android/src/main/res/drawable-xxhdpi/ic_drawer_accounts_expand.png +++ b/android/src/main/res/drawable-xxhdpi/ic_drawer_accounts_expand.png diff --git a/android/src/main/res/drawable-xxhdpi/ic_drawer_feedback.png b/android/src/main/res/drawable-xxhdpi/ic_drawer_feedback.png Binary files differdeleted file mode 100644 index 71b5219..0000000 --- a/android/src/main/res/drawable-xxhdpi/ic_drawer_feedback.png +++ /dev/null diff --git a/android/src/main/res/drawable-xxhdpi/ic_drawer_people_met.png b/android/src/main/res/drawable-xxhdpi/ic_drawer_people_met.png Binary files differindex 7695310..f602193 100644 --- a/android/src/main/res/drawable-xxhdpi/ic_drawer_people_met.png +++ b/android/src/main/res/drawable-xxhdpi/ic_drawer_people_met.png diff --git a/android/src/main/res/drawable-xxhdpi/ic_drawer_social.png b/android/src/main/res/drawable-xxhdpi/ic_drawer_social.png Binary files differindex 7932aa1..541c615 100644 --- a/android/src/main/res/drawable-xxhdpi/ic_drawer_social.png +++ b/android/src/main/res/drawable-xxhdpi/ic_drawer_social.png diff --git a/android/src/main/res/drawable-xxhdpi/ic_launcher.png b/android/src/main/res/drawable-xxhdpi/ic_launcher.png Binary files differdeleted file mode 100755 index 9680dc4..0000000 --- a/android/src/main/res/drawable-xxhdpi/ic_launcher.png +++ /dev/null diff --git a/android/src/main/res/drawable-xxhdpi/ic_up.png b/android/src/main/res/drawable-xxhdpi/ic_up.png Binary files differindex dc2da0b..3396894 100644 --- a/android/src/main/res/drawable-xxhdpi/ic_up.png +++ b/android/src/main/res/drawable-xxhdpi/ic_up.png diff --git a/android/src/main/res/drawable-xxxhdpi/ic_launcher.png b/android/src/main/res/drawable-xxxhdpi/ic_launcher.png Binary files differdeleted file mode 100644 index 3864db3..0000000 --- a/android/src/main/res/drawable-xxxhdpi/ic_launcher.png +++ /dev/null diff --git a/android/src/main/res/layout-sw600dp/activity_map.xml b/android/src/main/res/layout-sw600dp/activity_map.xml index 2e7ff8a..427032e 100644 --- a/android/src/main/res/layout-sw600dp/activity_map.xml +++ b/android/src/main/res/layout-sw600dp/activity_map.xml @@ -16,14 +16,20 @@ <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".ui.phone.MapActivity"> - <FrameLayout android:layout_width="match_parent" - android:layout_height="match_parent"> + <com.google.samples.apps.iosched.ui.widget.ScrimInsetsFrameLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:id="@+id/capture_insets_frame_layout" + app:insetForeground="@color/translucent_statusbar_background" + android:fitsSystemWindows="true"> <FrameLayout android:id="@+id/fragment_container_map" @@ -34,9 +40,9 @@ <View android:layout_width="fill_parent" android:layout_height="fill_parent" /> - <include layout="@layout/toolbar_actionbar_with_translucent_background" /> + <include layout="@layout/toolbar_actionbar_translucent" /> - </FrameLayout> + </com.google.samples.apps.iosched.ui.widget.ScrimInsetsFrameLayout> <LinearLayout android:id="@+id/map_detail_spacer" android:visibility="gone" @@ -46,46 +52,58 @@ android:orientation="horizontal" android:weightSum="2" android:gravity="end" - android:baselineAligned="false"> + android:baselineAligned="false" + android:clipToPadding="false"> - <RelativeLayout android:id="@+id/map_detail_popup" + <android.support.v7.widget.CardView android:id="@+id/map_detail_popup" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginLeft="@dimen/multipane_half_padding" android:layout_marginBottom="@dimen/multipane_half_padding" android:layout_marginRight="@dimen/map_multipane_right_padding" - android:background="@drawable/card_bg"> - - <ImageButton android:id="@+id/close_button" - android:layout_alignParentTop="true" - android:layout_alignParentRight="true" - android:src="@drawable/ic_pane_close" - android:background="?selectableItemBackgroundBorderless" - android:layout_width="48dp" - android:layout_height="@dimen/detail_breadcrumb_height" - android:contentDescription="@string/close_detail_pane" /> - - <android.app.FragmentBreadCrumbs android:id="@+id/breadcrumbs" - android:layout_alignParentTop="true" - android:layout_alignParentLeft="true" - android:layout_toLeftOf="@id/close_button" - android:paddingLeft="8dp" - android:layout_height="@dimen/detail_breadcrumb_height" - android:layout_width="match_parent" - android:gravity="center_vertical|left" /> + app:cardBackgroundColor="#fff" + app:cardCornerRadius="@dimen/card_corner_radius" + app:cardElevation="@dimen/card_elevation" + app:cardPreventCornerOverlap="false"> - <FrameLayout android:id="@+id/fragment_container_detail" - android:layout_alignParentBottom="true" - android:layout_alignParentLeft="true" - android:layout_alignParentRight="true" - android:layout_below="@id/breadcrumbs" + <RelativeLayout android:layout_width="match_parent" - android:layout_height="0dp" /> - </RelativeLayout> + android:layout_height="match_parent"> + + <ImageButton + android:id="@+id/close_button" + android:layout_width="48dp" + android:layout_height="@dimen/detail_breadcrumb_height" + android:layout_alignParentRight="true" + android:layout_alignParentTop="true" + android:background="?selectableItemBackgroundBorderless" + android:contentDescription="@string/close_detail_pane" + android:src="@drawable/ic_pane_close" /> + + <android.app.FragmentBreadCrumbs + android:id="@+id/breadcrumbs" + android:layout_width="match_parent" + android:layout_height="@dimen/detail_breadcrumb_height" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_toLeftOf="@id/close_button" + android:gravity="center_vertical|left" + android:paddingLeft="8dp" /> + + <FrameLayout + android:id="@+id/fragment_container_detail" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_alignParentBottom="true" + android:layout_alignParentLeft="true" + android:layout_alignParentRight="true" + android:layout_below="@id/breadcrumbs" /> + </RelativeLayout> + </android.support.v7.widget.CardView> </LinearLayout> <!-- Nav drawer --> - <include layout="@layout/navdrawer_for_ab_overlay" /> + <include layout="@layout/navdrawer" /> </android.support.v4.widget.DrawerLayout> diff --git a/android/src/main/res/layout-sw600dp/activity_welcome.xml b/android/src/main/res/layout-sw600dp/activity_welcome.xml index 9c314fe..d2e234b 100644 --- a/android/src/main/res/layout-sw600dp/activity_welcome.xml +++ b/android/src/main/res/layout-sw600dp/activity_welcome.xml @@ -15,6 +15,7 @@ --> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" @@ -30,92 +31,98 @@ android:tint="#7000" android:layout_gravity="center|top" /> - <LinearLayout + <android.support.v7.widget.CardView android:layout_width="500dp" android:layout_height="wrap_content" - android:orientation="vertical" - android:background="@drawable/card_bg" - android:layout_gravity="center"> + android:layout_gravity="center" + iosched:cardBackgroundColor="#fff" + iosched:cardCornerRadius="@dimen/card_corner_radius" + iosched:cardElevation="@dimen/card_elevation" + iosched:cardPreventCornerOverlap="false"> - <ScrollView + <LinearLayout android:layout_width="match_parent" - android:layout_height="0dp" - android:layout_weight="1"> + android:layout_height="match_parent" + android:orientation="vertical"> - <LinearLayout + <ScrollView android:layout_width="match_parent" - android:paddingLeft="72dp" - android:paddingRight="72dp" - android:paddingTop="48dp" - android:paddingBottom="48dp" - android:orientation="vertical" - android:layout_height="wrap_content"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textSize="@dimen/text_size_xlarge" - android:textColor="@color/theme_primary" - android:textStyle="@integer/font_textStyle_medium" - android:fontFamily="@string/font_fontFamily_medium" - android:text="@string/welcome_to_google_i_o_app" /> + android:layout_height="0dp" + android:layout_weight="1"> - <TextView - android:layout_height="wrap_content" - android:layout_marginTop="16dp" + <LinearLayout android:layout_width="match_parent" - android:textColor="@color/body_text_2" - android:autoLink="web" - android:textSize="@dimen/text_size_medium" - android:text="@string/welcome_text" /> - - <TextView android:layout_height="wrap_content" - android:layout_marginTop="16dp" - android:layout_width="match_parent" - android:textColor="@color/body_text_2" + android:orientation="vertical" + android:paddingBottom="48dp" + android:paddingLeft="72dp" + android:paddingRight="72dp" + android:paddingTop="48dp"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:fontFamily="@string/font_fontFamily_medium" + android:text="@string/welcome_to_google_i_o_app" + android:textColor="@color/theme_primary" + android:textSize="@dimen/text_size_xlarge" + android:textStyle="@integer/font_textStyle_medium" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:autoLink="web" + android:text="@string/welcome_text" + android:textColor="@color/body_text_2" + android:textSize="@dimen/text_size_medium" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:autoLink="web" + android:text="@string/eula_legal_text" + android:textColor="@color/body_text_2" + android:textSize="@dimen/text_size_medium" /> + + </LinearLayout> + </ScrollView> + + <!-- Button bar --> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="48dp" + android:layout_gravity="bottom" + android:background="@color/theme_primary"> + + <Button + android:id="@+id/button_decline" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:background="?photoItemForeground" + android:fontFamily="@string/font_fontFamily_medium" + android:text="@string/decline" + android:textAllCaps="true" + android:textColor="#8fff" android:textSize="@dimen/text_size_medium" - android:autoLink="web" - android:text="@string/eula_legal_text" /> + android:textStyle="@integer/font_textStyle_medium" /> + + <Button + android:id="@+id/button_accept" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:background="?photoItemForeground" + android:fontFamily="@string/font_fontFamily_medium" + android:text="@string/accept" + android:textAllCaps="true" + android:textColor="#fff" + android:textSize="@dimen/text_size_medium" + android:textStyle="@integer/font_textStyle_medium" /> </LinearLayout> - </ScrollView> - - <!-- Button bar --> - <LinearLayout - android:layout_height="48dp" - android:background="@color/theme_primary" - android:layout_gravity="bottom" - android:layout_width="match_parent"> - - <Button - android:layout_width="0dp" - android:layout_weight="1" - android:layout_height="match_parent" - android:background="?photoItemForeground" - android:text="@string/decline" - android:textColor="#8fff" - android:textSize="@dimen/text_size_medium" - android:textStyle="@integer/font_textStyle_medium" - android:fontFamily="@string/font_fontFamily_medium" - android:textAllCaps="true" - android:id="@+id/button_decline" /> - - <Button - android:id="@+id/button_accept" - android:layout_width="0dp" - android:layout_weight="1" - android:layout_height="match_parent" - android:background="?photoItemForeground" - android:text="@string/accept" - android:textSize="@dimen/text_size_medium" - android:textStyle="@integer/font_textStyle_medium" - android:fontFamily="@string/font_fontFamily_medium" - android:textAllCaps="true" - android:textColor="#fff" /> - </LinearLayout> - - </LinearLayout> - + </android.support.v7.widget.CardView> </FrameLayout> diff --git a/android/src/lpreview/res/layout-v21/include_add_schedule_fab.xml b/android/src/main/res/layout-v21/include_add_schedule_fab.xml index 591b3ae..591b3ae 100644 --- a/android/src/lpreview/res/layout-v21/include_add_schedule_fab.xml +++ b/android/src/main/res/layout-v21/include_add_schedule_fab.xml diff --git a/android/src/main/res/layout/activity_browse_sessions.xml b/android/src/main/res/layout/activity_browse_sessions.xml index c5f3e62..6d2089a 100644 --- a/android/src/main/res/layout/activity_browse_sessions.xml +++ b/android/src/main/res/layout/activity_browse_sessions.xml @@ -20,6 +20,7 @@ android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".ui.BrowseSessionsActivity"> <!-- Main layout --> @@ -56,11 +57,9 @@ <LinearLayout android:id="@+id/filters_box" android:visibility="gone" - android:layout_marginTop="?actionBarOverlayTopOffset" android:paddingLeft="?spinnerBarInsetStart" android:layout_width="match_parent" android:layout_height="@dimen/filterbar_height" - android:background="@color/theme_primary" android:orientation="horizontal"> <Spinner style="@style/Widget.IOSched.HeaderBar.Spinner" @@ -82,12 +81,12 @@ <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" - android:layout_marginTop="?android:actionBarSize"> + android:layout_marginTop="?actionBarSize"> <include layout="@layout/include_butter_bar" /> </FrameLayout> </com.google.samples.apps.iosched.ui.widget.DrawShadowFrameLayout> <!-- Nav drawer --> - <include layout="@layout/navdrawer_for_ab_overlay" /> + <include layout="@layout/navdrawer" /> </android.support.v4.widget.DrawerLayout> diff --git a/android/src/main/res/layout/activity_experts_directory.xml b/android/src/main/res/layout/activity_experts_directory.xml index ffef6a7..6095f23 100644 --- a/android/src/main/res/layout/activity_experts_directory.xml +++ b/android/src/main/res/layout/activity_experts_directory.xml @@ -20,6 +20,7 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" + android:fitsSystemWindows="true" tools:context=".ui.ExpertsDirectoryActivity" android:layout_height="match_parent"> @@ -49,11 +50,9 @@ <!-- Spinners for additional filters --> <LinearLayout android:id="@+id/filters_box" - android:layout_marginTop="?actionBarOverlayTopOffset" android:paddingLeft="?spinnerBarInsetStart" android:layout_width="match_parent" android:layout_height="@dimen/filterbar_height" - android:background="@color/theme_primary" android:orientation="horizontal"> <Spinner style="@style/Widget.IOSched.HeaderBar.Spinner" @@ -73,6 +72,6 @@ </com.google.samples.apps.iosched.ui.widget.DrawShadowFrameLayout> <!-- Nav drawer --> - <include layout="@layout/navdrawer_for_ab_overlay" /> + <include layout="@layout/navdrawer" /> </android.support.v4.widget.DrawerLayout> diff --git a/android/src/lpreview/res/layout-v21/toolbar_actionbar.xml b/android/src/main/res/layout/activity_feedback.xml index 04af731..a19e57e 100644 --- a/android/src/lpreview/res/layout-v21/toolbar_actionbar.xml +++ b/android/src/main/res/layout/activity_feedback.xml @@ -14,8 +14,17 @@ limitations under the License. --> -<Toolbar xmlns:android="http://schemas.android.com/apk/res/android" - android:theme="@style/ActionBarThemeOverlay" - android:id="@+id/toolbar_actionbar" +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="?android:actionBarSize" /> + android:layout_height="match_parent" + android:orientation="vertical" + tools:context=".ui.SessionFeedbackActivity"> + + <include layout="@layout/toolbar_actionbar_with_headerbar" /> + + <FrameLayout + android:id="@+id/root_container" + android:layout_width="match_parent" + android:layout_height="match_parent" /> +</LinearLayout>
\ No newline at end of file diff --git a/android/src/main/res/layout/activity_map.xml b/android/src/main/res/layout/activity_map.xml index 4c63eb7..6312b32 100644 --- a/android/src/main/res/layout/activity_map.xml +++ b/android/src/main/res/layout/activity_map.xml @@ -15,30 +15,39 @@ --> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".ui.phone.MapActivity"> - <FrameLayout android:layout_width="match_parent" - android:layout_height="match_parent"> + <com.google.samples.apps.iosched.ui.widget.ScrimInsetsFrameLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:id="@+id/capture_insets_frame_layout" + app:insetForeground="@color/translucent_statusbar_background" + android:fitsSystemWindows="true"> <!-- Main layout --> <FrameLayout - android:id="@+id/main_content" + android:id="@+id/fragment_container_map" android:layout_width="match_parent" android:layout_height="match_parent" /> - <!-- Empty view on top of map to avoid rendering issues with navigation drawer pre-JB --> - <View android:layout_width="match_parent" - android:layout_height="match_parent" /> + <include layout="@layout/toolbar_actionbar_translucent" /> - <include layout="@layout/toolbar_actionbar_with_translucent_background" /> + <android.support.v7.widget.CardView + android:id="@+id/fragment_container_popup" + android:visibility="gone" + android:clickable="true" + android:layout_width="match_parent" + android:layout_height="match_parent" /> - </FrameLayout> + </com.google.samples.apps.iosched.ui.widget.ScrimInsetsFrameLayout> <!-- Nav drawer --> - <include layout="@layout/navdrawer_for_ab_overlay" /> + <include layout="@layout/navdrawer" /> </android.support.v4.widget.DrawerLayout> diff --git a/android/src/main/res/layout/activity_my_schedule_narrow.xml b/android/src/main/res/layout/activity_my_schedule_narrow.xml index 428bd36..31734cf 100644 --- a/android/src/main/res/layout/activity_my_schedule_narrow.xml +++ b/android/src/main/res/layout/activity_my_schedule_narrow.xml @@ -20,6 +20,7 @@ android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".ui.MyScheduleActivity"> <!-- Main layout --> diff --git a/android/src/main/res/layout/activity_my_schedule_wide.xml b/android/src/main/res/layout/activity_my_schedule_wide.xml index 35442e2..c8d4c92 100644 --- a/android/src/main/res/layout/activity_my_schedule_wide.xml +++ b/android/src/main/res/layout/activity_my_schedule_wide.xml @@ -20,6 +20,7 @@ android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".ui.MyScheduleActivity"> <!-- Main layout --> diff --git a/android/src/main/res/layout/activity_nearby_eula.xml b/android/src/main/res/layout/activity_nearby_eula.xml index eb52681..e63ed99 100644 --- a/android/src/main/res/layout/activity_nearby_eula.xml +++ b/android/src/main/res/layout/activity_nearby_eula.xml @@ -15,6 +15,7 @@ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" @@ -42,37 +43,46 @@ <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="100dp" android:paddingBottom="16dp" android:paddingLeft="16dp" - android:paddingRight="16dp"> + android:paddingRight="16dp" + android:paddingTop="100dp" + android:clipToPadding="false"> - <LinearLayout + <android.support.v7.widget.CardView android:layout_width="match_parent" - android:padding="24dp" - android:orientation="vertical" - android:background="@drawable/card_bg" - android:layout_height="wrap_content"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textSize="@dimen/text_size_xlarge" - android:textColor="@color/theme_primary" - android:textStyle="@integer/font_textStyle_medium" - android:fontFamily="@string/font_fontFamily_medium" - android:text="@string/physicalweb_intro_title" /> + android:layout_height="wrap_content" + iosched:cardBackgroundColor="#fff" + iosched:cardCornerRadius="@dimen/card_corner_radius" + iosched:cardElevation="@dimen/card_elevation" + iosched:cardPreventCornerOverlap="false"> - <TextView - android:layout_height="wrap_content" - android:layout_marginTop="16dp" + <LinearLayout android:layout_width="match_parent" - android:textColor="@color/body_text_2" - android:textSize="@dimen/text_size_medium" - android:autoLink="web" - android:text="@string/physicalweb_intro_text" /> - - </LinearLayout> + android:layout_height="wrap_content" + android:orientation="vertical" + android:padding="24dp"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:fontFamily="@string/font_fontFamily_medium" + android:text="@string/physicalweb_intro_title" + android:textColor="@color/theme_primary" + android:textSize="@dimen/text_size_xlarge" + android:textStyle="@integer/font_textStyle_medium" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:autoLink="web" + android:text="@string/physicalweb_intro_text" + android:textColor="@color/body_text_2" + android:textSize="@dimen/text_size_medium" /> + + </LinearLayout> + </android.support.v7.widget.CardView> </FrameLayout> </ScrollView> diff --git a/android/src/main/res/layout/activity_people_ive_met.xml b/android/src/main/res/layout/activity_people_ive_met.xml index 04bb368..ad8c28a 100644 --- a/android/src/main/res/layout/activity_people_ive_met.xml +++ b/android/src/main/res/layout/activity_people_ive_met.xml @@ -22,6 +22,7 @@ android:id="@+id/drawer_layout" android:layout_width="match_parent" tools:context=".ui.PeopleIveMetActivity" + android:fitsSystemWindows="true" android:layout_height="match_parent"> <!-- Main layout --> diff --git a/android/src/main/res/layout/activity_search.xml b/android/src/main/res/layout/activity_search.xml index 5275ef4..f46faea 100644 --- a/android/src/main/res/layout/activity_search.xml +++ b/android/src/main/res/layout/activity_search.xml @@ -14,9 +14,18 @@ limitations under the License. --> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" - android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".ui.SearchActivity"/> + android:orientation="vertical"> + + <include layout="@layout/toolbar_actionbar_with_headerbar" /> + + <FrameLayout + android:id="@+id/fragment_container" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" + tools:context=".ui.SearchActivity" /> +</LinearLayout>
\ No newline at end of file diff --git a/android/src/main/res/layout/fragment_session_detail.xml b/android/src/main/res/layout/activity_session_detail.xml index c4c0764..e1a8207 100644 --- a/android/src/main/res/layout/fragment_session_detail.xml +++ b/android/src/main/res/layout/activity_session_detail.xml @@ -13,6 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. --> + <com.google.samples.apps.iosched.ui.widget.ObservableScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:iosched="http://schemas.android.com/apk/res-auto" @@ -33,8 +34,7 @@ <!-- Background photo --> <FrameLayout android:id="@+id/session_photo_container" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:foreground="@drawable/photo_banner_scrim"> + android:layout_height="wrap_content"> <ImageView android:id="@+id/session_photo" @@ -63,6 +63,7 @@ iosched:button2tag="WATCH_NOW" iosched:button2emphasis="true" iosched:emphasisColor="@color/theme_accent_2" + iosched:cardBackgroundColor="#fff" android:layout_marginLeft="@dimen/keyline_2_session_detail" android:layout_marginBottom="16dp" android:visibility="gone" @@ -77,6 +78,7 @@ iosched:button2text="@string/give_feedback" iosched:button2tag="GIVE_FEEDBACK" iosched:button2emphasis="true" + iosched:cardBackgroundColor="#fff" android:layout_marginLeft="@dimen/keyline_2_session_detail" android:layout_marginBottom="16dp" android:visibility="gone" @@ -191,9 +193,6 @@ <LinearLayout android:orientation="vertical" android:id="@+id/links_container" - android:divider="?android:dividerHorizontal" - android:showDividers="middle" - android:dividerPadding="16dp" android:layout_marginLeft="@dimen/keyline_2_session_detail" android:layout_width="match_parent" android:layout_height="wrap_content" /> @@ -212,63 +211,48 @@ </LinearLayout> <!-- Title/subtitle bar (floating; position determined at run time as the content view scrolls) --> - <FrameLayout android:layout_width="match_parent" + <LinearLayout + android:id="@+id/header_session" + android:layout_width="match_parent" android:layout_height="wrap_content" android:clipChildren="false" android:clipToPadding="false" - android:id="@+id/header_session"> + android:orientation="vertical" + android:paddingBottom="16dp"> - <!-- height assigned dynamically --> - <View android:id="@+id/header_background" - android:layout_width="match_parent" - android:layout_height="0dp" /> + <include layout="@layout/toolbar_actionbar" /> - <LinearLayout - android:id="@+id/header_session_contents" + <!-- Session title --> + <TextView android:layout_height="wrap_content" android:layout_width="match_parent" - android:orientation="vertical" - android:paddingLeft="@dimen/keyline_2_session_detail" - android:paddingTop="16dp" - android:paddingRight="@dimen/keyline_1" - android:paddingBottom="16dp" - android:layout_height="wrap_content"> - - <!-- Session title --> - <TextView android:layout_height="wrap_content" - android:layout_width="match_parent" - android:layout_marginBottom="0dp" - android:text="@string/placeholder_session_title" - android:id="@+id/session_title" - android:maxLines="4" - android:ellipsize="end" - android:textSize="@dimen/text_size_large" - android:lineSpacingMultiplier="1.1" - android:textStyle="@integer/font_textStyle_medium" - android:fontFamily="@string/font_fontFamily_medium" - android:textColor="@color/body_text_1_inverse" - android:textAlignment="viewStart" /> - - <!-- Session subtitle --> - <TextView android:layout_height="wrap_content" - android:layout_width="match_parent" - android:text="@string/placeholder_session_subtitle" - android:id="@+id/session_subtitle" - android:maxLines="2" - android:ellipsize="end" - android:textSize="16sp" - android:textColor="@color/body_text_2_inverse" - android:textAlignment="viewStart" /> - - </LinearLayout> - - <View android:id="@+id/header_shadow" + android:layout_marginBottom="0dp" + android:layout_marginLeft="@dimen/keyline_2_session_detail" + android:layout_marginRight="@dimen/keyline_1" + android:text="@string/placeholder_session_title" + android:id="@+id/session_title" + android:maxLines="4" + android:ellipsize="end" + android:textSize="@dimen/text_size_large" + android:lineSpacingMultiplier="1.1" + android:textStyle="@integer/font_textStyle_medium" + android:fontFamily="@string/font_fontFamily_medium" + android:textColor="@color/body_text_1_inverse" + android:textAlignment="viewStart" /> + + <!-- Session subtitle --> + <TextView android:layout_height="wrap_content" android:layout_width="match_parent" - android:layout_height="6dp" - android:layout_gravity="bottom" - android:layout_marginBottom="-6dp" - android:background="@drawable/bottom_shadow" /> + android:layout_marginLeft="@dimen/keyline_2_session_detail" + android:layout_marginRight="@dimen/keyline_1" + android:text="@string/placeholder_session_subtitle" + android:id="@+id/session_subtitle" + android:maxLines="2" + android:ellipsize="end" + android:textSize="16sp" + android:textColor="@color/body_text_2_inverse" + android:textAlignment="viewStart" /> - </FrameLayout> + </LinearLayout> <!-- FAB --> <include layout="@layout/include_add_schedule_fab" /> diff --git a/android/src/main/res/layout/activity_settings.xml b/android/src/main/res/layout/activity_settings.xml new file mode 100644 index 0000000..26be77d --- /dev/null +++ b/android/src/main/res/layout/activity_settings.xml @@ -0,0 +1,31 @@ +<!-- + Copyright 2014 Google Inc. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + tools:context=".ui.SettingsActivity"> + + <include layout="@layout/toolbar_actionbar_with_headerbar" /> + + <FrameLayout + android:id="@+id/container" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" /> +</LinearLayout> diff --git a/android/src/main/res/layout/activity_social.xml b/android/src/main/res/layout/activity_social.xml index 53f4141..3cb29b0 100644 --- a/android/src/main/res/layout/activity_social.xml +++ b/android/src/main/res/layout/activity_social.xml @@ -20,6 +20,7 @@ android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".ui.SocialActivity"> <!-- Main layout --> diff --git a/android/src/main/res/layout/activity_video_library.xml b/android/src/main/res/layout/activity_video_library.xml index 3f424d8..7e58d24 100644 --- a/android/src/main/res/layout/activity_video_library.xml +++ b/android/src/main/res/layout/activity_video_library.xml @@ -20,6 +20,7 @@ android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".ui.VideoLibraryActivity"> <!-- Main layout --> @@ -49,11 +50,9 @@ <!-- Spinners for additional filters --> <LinearLayout android:id="@+id/filters_box" - android:layout_marginTop="?actionBarOverlayTopOffset" android:paddingLeft="?spinnerBarInsetStart" android:layout_width="match_parent" android:layout_height="@dimen/filterbar_height" - android:background="@color/theme_primary" android:orientation="horizontal"> <Spinner style="@style/Widget.IOSched.HeaderBar.Spinner" @@ -73,6 +72,6 @@ </com.google.samples.apps.iosched.ui.widget.DrawShadowFrameLayout> <!-- Nav drawer --> - <include layout="@layout/navdrawer_for_ab_overlay" /> + <include layout="@layout/navdrawer" /> </android.support.v4.widget.DrawerLayout> diff --git a/android/src/main/res/layout/activity_welcome.xml b/android/src/main/res/layout/activity_welcome.xml index 582c29e..0edeeea 100644 --- a/android/src/main/res/layout/activity_welcome.xml +++ b/android/src/main/res/layout/activity_welcome.xml @@ -15,6 +15,7 @@ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" @@ -42,46 +43,55 @@ <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="100dp" android:paddingBottom="16dp" android:paddingLeft="16dp" - android:paddingRight="16dp"> + android:paddingRight="16dp" + android:paddingTop="100dp" + android:clipToPadding="false"> - <LinearLayout + <android.support.v7.widget.CardView android:layout_width="match_parent" - android:padding="24dp" - android:orientation="vertical" - android:background="@drawable/card_bg" - android:layout_height="wrap_content"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textSize="@dimen/text_size_xlarge" - android:textColor="@color/theme_primary" - android:textStyle="@integer/font_textStyle_medium" - android:fontFamily="@string/font_fontFamily_medium" - android:text="@string/welcome_to_google_i_o_app" /> - - <TextView - android:layout_height="wrap_content" - android:layout_marginTop="16dp" - android:layout_width="match_parent" - android:textColor="@color/body_text_2" - android:autoLink="web" - android:textSize="@dimen/text_size_medium" - android:text="@string/welcome_text" /> - - <TextView - android:layout_height="wrap_content" - android:layout_marginTop="16dp" - android:layout_width="match_parent" - android:textColor="@color/body_text_2" - android:textSize="@dimen/text_size_medium" - android:autoLink="web" - android:text="@string/eula_legal_text" /> + android:layout_height="wrap_content" + iosched:cardBackgroundColor="#fff" + iosched:cardCornerRadius="@dimen/card_corner_radius" + iosched:cardElevation="@dimen/card_elevation" + iosched:cardPreventCornerOverlap="false"> - </LinearLayout> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:padding="24dp"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:fontFamily="@string/font_fontFamily_medium" + android:text="@string/welcome_to_google_i_o_app" + android:textColor="@color/theme_primary" + android:textSize="@dimen/text_size_xlarge" + android:textStyle="@integer/font_textStyle_medium" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:autoLink="web" + android:text="@string/welcome_text" + android:textColor="@color/body_text_2" + android:textSize="@dimen/text_size_medium" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:autoLink="web" + android:text="@string/eula_legal_text" + android:textColor="@color/body_text_2" + android:textSize="@dimen/text_size_medium" /> + + </LinearLayout> + </android.support.v7.widget.CardView> </FrameLayout> </ScrollView> diff --git a/android/src/main/res/layout/dialog_about.xml b/android/src/main/res/layout/dialog_about.xml index c030704..d502ca2 100644 --- a/android/src/main/res/layout/dialog_about.xml +++ b/android/src/main/res/layout/dialog_about.xml @@ -18,7 +18,5 @@ android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="match_parent" - android:padding="16dp" - android:textSize="@dimen/text_size_medium" - android:background="@android:color/white" - android:textColor="@android:color/black" /> + android:padding="24dp" + android:textSize="@dimen/text_size_medium" /> diff --git a/android/src/main/res/layout/explore_spinner_item_dropdown.xml b/android/src/main/res/layout/explore_spinner_item_dropdown.xml index f11c1c8..d81bc6b 100644 --- a/android/src/main/res/layout/explore_spinner_item_dropdown.xml +++ b/android/src/main/res/layout/explore_spinner_item_dropdown.xml @@ -39,7 +39,7 @@ android:textColor="@color/body_text_3" /> <TextView - android:id="@+id/normal_text" + android:id="@android:id/text1" android:layout_height="@dimen/explore_dropdown_item_height" android:layout_width="match_parent" android:paddingLeft="16dp" diff --git a/android/src/main/res/layout/fragment_experts_directory.xml b/android/src/main/res/layout/fragment_experts_directory.xml index 5d1efc2..63846e9 100644 --- a/android/src/main/res/layout/fragment_experts_directory.xml +++ b/android/src/main/res/layout/fragment_experts_directory.xml @@ -20,7 +20,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:iosched="http://schemas.android.com/apk/res-auto" - android:padding="@dimen/half_explore_grid_padding" + android:padding="@dimen/explore_grid_padding_half" android:clipToPadding="false" android:scrollbarStyle="outsideOverlay" iosched:internalPadding="@dimen/explore_grid_padding" /> diff --git a/android/src/main/res/layout/fragment_hashtags.xml b/android/src/main/res/layout/fragment_hashtags.xml index 939e4f9..e482470 100644 --- a/android/src/main/res/layout/fragment_hashtags.xml +++ b/android/src/main/res/layout/fragment_hashtags.xml @@ -23,9 +23,11 @@ android:id="@+id/social_collection_vew" android:layout_width="match_parent" android:layout_height="match_parent" - android:padding="@dimen/social_grid_padding" + android:paddingTop="@dimen/explore_grid_padding" + android:paddingLeft="@dimen/explore_grid_padding_half" + android:paddingRight="@dimen/explore_grid_padding_half" + iosched:internalPadding="@dimen/explore_grid_padding" android:layout_marginStart="@dimen/social_hz_margin" android:layout_marginEnd="@dimen/social_hz_margin" android:clipToPadding="false" - iosched:internalPadding="@dimen/social_grid_padding" tools:context="com.google.samples.apps.iosched.ui.HashtagsFragment" /> diff --git a/android/src/main/res/layout/fragment_map.xml b/android/src/main/res/layout/fragment_map.xml index 6580e3f..b7deaea 100644 --- a/android/src/main/res/layout/fragment_map.xml +++ b/android/src/main/res/layout/fragment_map.xml @@ -17,6 +17,4 @@ android:id="@+id/map_container" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/theme_primary" > - -</FrameLayout> + android:background="@color/theme_primary" />
\ No newline at end of file diff --git a/android/src/main/res/layout/fragment_nearby.xml b/android/src/main/res/layout/fragment_nearby.xml index c40e7db..d5b257b 100644 --- a/android/src/main/res/layout/fragment_nearby.xml +++ b/android/src/main/res/layout/fragment_nearby.xml @@ -20,28 +20,28 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <LinearLayout android:id="@+id/headerbar" + <FrameLayout android:id="@+id/headerbar" android:layout_width="match_parent" - android:layout_height="?android:actionBarSize" - android:orientation="horizontal" + android:layout_height="?actionBarSize" + android:elevation="@dimen/headerbar_elevation" android:background="#e5e5e5"> <ImageButton android:id="@+id/close_button" - android:layout_width="48dp" + android:layout_width="56dp" android:layout_height="match_parent" android:background="?selectableItemBackgroundBorderless" android:src="@drawable/ic_pane_close" android:contentDescription="@string/close_detail_pane" /> - <TextView android:layout_width="wrap_content" + <TextView android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_marginLeft="4dp" + android:layout_marginLeft="@dimen/keyline_2" android:textSize="@dimen/text_size_large" android:textColor="@color/body_text_1" android:gravity="center_vertical" android:text="@string/map_nearby_button" /> - </LinearLayout> + </FrameLayout> <FrameLayout android:id="@+id/list_container" android:layout_width="match_parent" diff --git a/android/src/main/res/layout/fragment_partners.xml b/android/src/main/res/layout/fragment_partners.xml index 0b70e32..1eef654 100644 --- a/android/src/main/res/layout/fragment_partners.xml +++ b/android/src/main/res/layout/fragment_partners.xml @@ -21,14 +21,15 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <LinearLayout android:id="@+id/headerbar" + <FrameLayout android:id="@+id/headerbar" android:layout_width="match_parent" - android:layout_height="?android:actionBarSize" + android:layout_height="?actionBarSize" + android:elevation="@dimen/headerbar_elevation" android:orientation="horizontal" android:background="#e5e5e5"> <ImageButton android:id="@+id/close_button" - android:layout_width="48dp" + android:layout_width="56dp" android:layout_height="match_parent" android:background="?selectableItemBackgroundBorderless" android:src="@drawable/ic_pane_close" @@ -36,13 +37,13 @@ <TextView android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginLeft="4dp" + android:layout_marginLeft="@dimen/keyline_2" android:textSize="@dimen/text_size_large" android:textColor="@color/body_text_1" android:gravity="center_vertical" android:text="@string/partners" /> - </LinearLayout> + </FrameLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="0dp" @@ -53,8 +54,8 @@ android:id="@+id/collection_view" android:layout_width="match_parent" android:layout_height="match_parent" - android:paddingLeft="@dimen/half_explore_grid_padding" - android:paddingRight="@dimen/half_explore_grid_padding" + android:paddingLeft="@dimen/explore_grid_padding_half" + android:paddingRight="@dimen/explore_grid_padding_half" android:paddingTop="@dimen/explore_grid_padding" android:clipToPadding="false" android:scrollbarStyle="outsideOverlay" diff --git a/android/src/main/res/layout/fragment_session_feedback.xml b/android/src/main/res/layout/fragment_session_feedback.xml index 13642d7..8177731 100644 --- a/android/src/main/res/layout/fragment_session_feedback.xml +++ b/android/src/main/res/layout/fragment_session_feedback.xml @@ -19,7 +19,8 @@ android:id="@+id/scroll_view" android:orientation="vertical" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:fillViewport="true"> <LinearLayout android:orientation="vertical" diff --git a/android/src/main/res/layout/fragment_sessions.xml b/android/src/main/res/layout/fragment_sessions.xml index 84507fc..ffb781c 100644 --- a/android/src/main/res/layout/fragment_sessions.xml +++ b/android/src/main/res/layout/fragment_sessions.xml @@ -22,7 +22,7 @@ android:id="@+id/sessions_collection_view" android:layout_width="match_parent" android:layout_height="match_parent" - android:padding="@dimen/half_explore_grid_padding" + android:padding="@dimen/explore_grid_padding_half" android:clipToPadding="false" android:scrollbarStyle="outsideOverlay" iosched:internalPadding="@dimen/explore_grid_padding" /> @@ -30,7 +30,7 @@ <ProgressBar android:id="@+id/loading" android:visibility="gone" - android:paddingTop="?android:actionBarSize" + android:paddingTop="?actionBarSize" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -39,7 +39,7 @@ <TextView android:id="@+id/empty_text" android:visibility="gone" - android:paddingTop="?android:actionBarSize" + android:paddingTop="?actionBarSize" android:layout_gravity="center" android:gravity="center" android:layout_width="match_parent" diff --git a/android/src/main/res/layout/fragment_video_library.xml b/android/src/main/res/layout/fragment_video_library.xml index a596f1c..95e8a9f 100644 --- a/android/src/main/res/layout/fragment_video_library.xml +++ b/android/src/main/res/layout/fragment_video_library.xml @@ -25,9 +25,9 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" - android:paddingLeft="@dimen/explore_grid_padding" - android:paddingRight="@dimen/explore_grid_padding" - android:paddingBottom="@dimen/explore_grid_padding" + android:paddingTop="@dimen/explore_grid_padding" + android:paddingLeft="@dimen/explore_grid_padding_half" + android:paddingRight="@dimen/explore_grid_padding_half" iosched:internalPadding="@dimen/explore_grid_padding" /> <!-- Empty view --> @@ -40,7 +40,7 @@ android:textSize="@dimen/text_size_medium" android:textColor="@color/body_text_2" android:text="@string/no_matching_videos" - android:paddingTop="?android:actionBarSize" /> + android:paddingTop="?actionBarSize" /> </FrameLayout> diff --git a/android/src/main/res/layout/header_experts_directory.xml b/android/src/main/res/layout/header_experts_directory.xml index f655a68..56bbea9 100644 --- a/android/src/main/res/layout/header_experts_directory.xml +++ b/android/src/main/res/layout/header_experts_directory.xml @@ -33,5 +33,6 @@ iosched:messageTitle="@string/experts_directory_header_title" iosched:messageText="@string/experts_directory_header_body" iosched:button1text="@string/experts_directory_header_dismiss" - iosched:button1emphasis="true" /> + iosched:button1emphasis="true" + iosched:cardBackgroundColor="#fff" /> </FrameLayout> diff --git a/android/src/main/res/layout/include_link_row.xml b/android/src/main/res/layout/include_link_row.xml index 19c837e..4c4255d 100644 --- a/android/src/main/res/layout/include_link_row.xml +++ b/android/src/main/res/layout/include_link_row.xml @@ -17,7 +17,4 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:showDividers="middle" - android:divider="?android:dividerVertical" - android:dividerPadding="8dp" /> + android:layout_height="wrap_content" /> diff --git a/android/src/main/res/layout/list_item_session.xml b/android/src/main/res/layout/list_item_session.xml index ad10d4f..19b5d30 100644 --- a/android/src/main/res/layout/list_item_session.xml +++ b/android/src/main/res/layout/list_item_session.xml @@ -17,71 +17,53 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="300dp" - android:id="@+id/session_target" - android:foreground="?photoItemForeground"> + android:foreground="?photoItemForeground" + android:id="@+id/session_target"> - <!-- Session info --> - <LinearLayout - android:orientation="vertical" + <!-- Session image --> + <ImageView android:id="@+id/session_photo_colored" android:layout_width="match_parent" - android:layout_height="match_parent"> - - <!-- Session image --> - <FrameLayout android:layout_width="match_parent" - android:layout_height="0dp" - android:layout_weight="1"> - - <ImageView android:id="@+id/session_photo" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:scaleType="centerCrop" /> + android:layout_height="match_parent" /> - <!-- Live Now indicator --> - <include layout="@layout/include_live_now_badge" /> - - <!-- Session category/group if non-default (e.g. "Workshop") --> - <TextView android:id="@+id/session_category" - style="@style/ExploreItem.Category" - android:padding="16dp" - android:layout_width="wrap_content" - android:layout_height="wrap_content" /> + <!-- Session category/group if non-default (e.g. "Workshop") --> + <TextView android:id="@+id/session_category" + style="@style/ExploreItem.Category" + android:padding="16dp" + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> - </FrameLayout> + <!-- Info box --> + <LinearLayout + android:id="@+id/info_box" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="bottom" + android:padding="16dp" + android:orientation="vertical"> - <!-- Info box --> - <LinearLayout - android:id="@+id/info_box" + <!-- Session title --> + <TextView android:id="@+id/session_title" + style="@style/ExploreItem.Title" android:layout_width="match_parent" - android:layout_height="120dp" - android:gravity="center" - android:padding="16dp" - android:orientation="vertical" - android:background="@color/theme_primary"> - - <!-- Session title --> - <TextView android:id="@+id/session_title" - style="@style/ExploreItem.Title" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/placeholder_session_title" /> + android:layout_height="wrap_content" + android:text="@string/placeholder_session_title" /> - <!-- Subtitle --> - <TextView android:id="@+id/session_subtitle" - style="@style/ExploreItem.Subtitle" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:paddingBottom="8dp" - android:text="@string/placeholder_session_subtitle" /> + <!-- Subtitle --> + <TextView android:id="@+id/session_subtitle_short" + style="@style/ExploreItem.Subtitle" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingBottom="8dp" + android:text="@string/placeholder_session_subtitle" /> - <!-- Abstract snippet --> - <TextView android:id="@+id/session_snippet" - style="@style/ExploreItem.Snippet" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:maxLines="3" - android:text="@string/placeholder_lorem_ipsum" /> + <!-- Abstract snippet --> + <TextView android:id="@+id/session_snippet" + style="@style/ExploreItem.Snippet" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:maxLines="5" + android:text="@string/placeholder_lorem_ipsum" /> - </LinearLayout> </LinearLayout> <!-- "In schedule" indicator --> @@ -92,4 +74,6 @@ android:src="@drawable/indicator_in_schedule" android:contentDescription="@null" /> + <!-- Live Now indicator --> + <include layout="@layout/include_live_now_badge" /> </FrameLayout> diff --git a/android/src/main/res/layout/list_item_session_hero_narrow.xml b/android/src/main/res/layout/list_item_session_hero_narrow.xml index c5b9cff..2912c96 100644 --- a/android/src/main/res/layout/list_item_session_hero_narrow.xml +++ b/android/src/main/res/layout/list_item_session_hero_narrow.xml @@ -23,6 +23,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:animateLayoutChanges="true" @@ -99,6 +100,7 @@ android:layout_marginBottom="8dp" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" + iosched:cardBackgroundColor="#fff" android:visibility="visible" android:layout_height="wrap_content" /> diff --git a/android/src/main/res/layout/list_item_session_hero_wide.xml b/android/src/main/res/layout/list_item_session_hero_wide.xml index cbd2a4d..be1d337 100644 --- a/android/src/main/res/layout/list_item_session_hero_wide.xml +++ b/android/src/main/res/layout/list_item_session_hero_wide.xml @@ -21,6 +21,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:animateLayoutChanges="true" @@ -110,6 +111,7 @@ android:layout_height="wrap_content" android:clickable="true" android:focusable="true" + iosched:cardBackgroundColor="#fff" /> </FrameLayout> </FrameLayout> diff --git a/android/src/main/res/layout/message_card.xml b/android/src/main/res/layout/message_card.xml index 9a494c1..c7f70a1 100644 --- a/android/src/main/res/layout/message_card.xml +++ b/android/src/main/res/layout/message_card.xml @@ -19,8 +19,7 @@ android:id="@+id/card_root" android:orientation="vertical" android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@drawable/card_bg"> + android:layout_height="match_parent"> <TextView android:id="@+id/title" @@ -91,4 +90,4 @@ </LinearLayout> -</LinearLayout> +</LinearLayout>
\ No newline at end of file diff --git a/android/src/main/res/layout/my_schedule_item.xml b/android/src/main/res/layout/my_schedule_item.xml index b09d0d1..c39991d 100644 --- a/android/src/main/res/layout/my_schedule_item.xml +++ b/android/src/main/res/layout/my_schedule_item.xml @@ -115,6 +115,5 @@ android:scaleType="center" android:src="@drawable/ic_schedule_feedback" android:background="?photoItemForeground" /> - - </FrameLayout> + </FrameLayout> </LinearLayout> diff --git a/android/src/main/res/layout/navdrawer.xml b/android/src/main/res/layout/navdrawer.xml index 0d7027b..f05fe26 100644 --- a/android/src/main/res/layout/navdrawer.xml +++ b/android/src/main/res/layout/navdrawer.xml @@ -1,4 +1,3 @@ -<?xml version="1.0" encoding="utf-8"?> <!-- Copyright 2014 Google Inc. All rights reserved. @@ -15,19 +14,114 @@ limitations under the License. --> -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" +<com.google.samples.apps.iosched.ui.widget.ScrimInsetsScrollView + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="@dimen/navdrawer_width" android:layout_height="match_parent" - android:id="@+id/navdrawer" android:layout_gravity="start" - android:background="@color/navdrawer_background"> + android:id="@+id/navdrawer" + android:background="@color/navdrawer_background" + android:fitsSystemWindows="true" + app:insetForeground="#4000"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> - <include layout="@layout/navdrawer_content" /> + <FrameLayout + android:id="@+id/chosen_account_view" + android:layout_width="match_parent" + android:layout_height="@dimen/navdrawer_chosen_account_height" + android:foreground="?photoItemForeground"> + + <ImageView android:layout_width="match_parent" + android:layout_height="match_parent" + android:scaleType="centerCrop" + android:src="@drawable/default_cover" + android:tint="@color/session_photo_scrim" + android:id="@+id/profile_cover_image" /> + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingLeft="@dimen/keyline_1" + android:paddingRight="@dimen/keyline_1" + android:paddingTop="@dimen/keyline_1" + android:id="@+id/chosen_account_content_view"> + + <com.google.samples.apps.iosched.ui.widget.BezelImageView + android:id="@+id/profile_image" + android:layout_width="@dimen/navdrawer_profile_image_size" + android:layout_height="@dimen/navdrawer_profile_image_size" + android:src="@drawable/person_image_empty" + android:scaleType="centerCrop" + app:maskDrawable="@drawable/circle_mask" /> + + <ImageView + android:id="@+id/expand_account_box_indicator" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:visibility="gone" + android:layout_marginLeft="16dp" + android:paddingBottom="16dp" + android:layout_alignParentEnd="true" + android:layout_alignParentBottom="true" + android:scaleType="center" + android:src="@drawable/ic_drawer_accounts_expand" /> + + <TextView + android:id="@+id/profile_email_text" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignLeft="@id/profile_image" + android:layout_toLeftOf="@id/expand_account_box_indicator" + android:layout_alignParentBottom="true" + android:paddingBottom="16dp" + android:textSize="@dimen/text_size_medium" + android:textColor="@color/body_text_2_inverse" + android:maxLines="1" + android:singleLine="true" + android:ellipsize="end" /> + + <TextView + android:id="@+id/profile_name_text" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_above="@id/profile_email_text" + android:layout_alignLeft="@id/profile_image" + android:layout_toLeftOf="@id/expand_account_box_indicator" + android:textSize="@dimen/text_size_large" + android:textColor="@color/body_text_1_inverse" + android:maxLines="1" + android:singleLine="true" + android:ellipsize="end" /> + + </RelativeLayout> + + </FrameLayout> + + <FrameLayout android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <!-- Account items --> + <LinearLayout + android:id="@+id/account_list" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:orientation="vertical" + android:visibility="invisible" /> + <!-- Drawer items --> + <LinearLayout + android:id="@+id/navdrawer_items_list" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:orientation="vertical" /> + </FrameLayout> </LinearLayout> -</ScrollView> +</com.google.samples.apps.iosched.ui.widget.ScrimInsetsScrollView>
\ No newline at end of file diff --git a/android/src/main/res/layout/navdrawer_content.xml b/android/src/main/res/layout/navdrawer_content.xml deleted file mode 100644 index ddba93d..0000000 --- a/android/src/main/res/layout/navdrawer_content.xml +++ /dev/null @@ -1,113 +0,0 @@ -<!-- - Copyright 2014 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<merge xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:iosched="http://schemas.android.com/apk/res-auto"> - - <FrameLayout - android:id="@+id/chosen_account_view" - android:layout_width="match_parent" - android:layout_height="@dimen/navdrawer_chosen_account_height" - android:foreground="?photoItemForeground"> - - <ImageView android:layout_width="match_parent" - android:layout_height="match_parent" - android:scaleType="centerCrop" - android:src="@drawable/default_cover" - android:tint="@color/session_photo_scrim" - android:id="@+id/profile_cover_image" /> - - <RelativeLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:paddingLeft="@dimen/keyline_1" - android:paddingRight="@dimen/keyline_1" - android:paddingTop="@dimen/keyline_1"> - - <com.google.samples.apps.iosched.ui.widget.BezelImageView - android:id="@+id/profile_image" - android:layout_width="@dimen/navdrawer_profile_image_size" - android:layout_height="@dimen/navdrawer_profile_image_size" - android:src="@drawable/person_image_empty" - android:scaleType="centerCrop" - iosched:maskDrawable="@drawable/circle_mask" /> - - <ImageView - android:id="@+id/expand_account_box_indicator" - android:layout_height="wrap_content" - android:layout_width="wrap_content" - android:visibility="gone" - android:layout_marginLeft="16dp" - android:paddingBottom="16dp" - android:layout_alignParentEnd="true" - android:layout_alignParentBottom="true" - android:scaleType="center" - android:src="@drawable/ic_drawer_accounts_expand" /> - - <TextView - android:id="@+id/profile_email_text" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_alignLeft="@id/profile_image" - android:layout_toLeftOf="@id/expand_account_box_indicator" - android:layout_alignParentBottom="true" - android:paddingBottom="16dp" - android:textSize="@dimen/text_size_medium" - android:textColor="@color/body_text_1_inverse" - android:maxLines="1" - android:singleLine="true" - android:ellipsize="end" /> - - <TextView - android:id="@+id/profile_name_text" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_above="@id/profile_email_text" - android:layout_alignLeft="@id/profile_image" - android:layout_toLeftOf="@id/expand_account_box_indicator" - android:textSize="@dimen/text_size_large" - android:textStyle="bold" - android:textColor="@color/body_text_1_inverse" - android:maxLines="1" - android:singleLine="true" - android:ellipsize="end" /> - - </RelativeLayout> - - </FrameLayout> - - <FrameLayout android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <!-- Account items --> - <LinearLayout - android:id="@+id/account_list" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:orientation="vertical" - android:visibility="invisible" /> - - <!-- Drawer items --> - <LinearLayout - android:id="@+id/navdrawer_items_list" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp" - android:orientation="vertical" /> - </FrameLayout> -</merge> diff --git a/android/src/main/res/layout/navdrawer_for_ab_overlay.xml b/android/src/main/res/layout/navdrawer_for_ab_overlay.xml deleted file mode 100644 index 1b7a090..0000000 --- a/android/src/main/res/layout/navdrawer_for_ab_overlay.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright 2014 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="@dimen/navdrawer_width" - android:layout_height="match_parent" - android:id="@+id/navdrawer" - android:layout_gravity="start" - android:background="@color/navdrawer_background" - android:paddingTop="?actionBarOverlayTopOffset" - android:clipToPadding="false"> - - <LinearLayout android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <include layout="@layout/navdrawer_content" /> - - </LinearLayout> - -</ScrollView> diff --git a/android/src/main/res/layout/navdrawer_item.xml b/android/src/main/res/layout/navdrawer_item.xml index a734953..bda2962 100644 --- a/android/src/main/res/layout/navdrawer_item.xml +++ b/android/src/main/res/layout/navdrawer_item.xml @@ -33,11 +33,11 @@ android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:gravity="start|center_vertical" android:layout_gravity="start|center_vertical" + android:gravity="start|center_vertical" + android:fontFamily="@string/font_fontFamily_medium" + android:textStyle="@integer/font_textStyle_medium" android:textSize="14sp" - android:textStyle="@integer/font_textStyle_drawer_item" - android:fontFamily="@string/font_fontFamily_drawer_item" android:text="@string/placeholder_lorem_ipsum" /> </LinearLayout> diff --git a/android/src/main/res/layout/nearby_button.xml b/android/src/main/res/layout/nearby_button.xml index 20baf93..4965c5b 100644 --- a/android/src/main/res/layout/nearby_button.xml +++ b/android/src/main/res/layout/nearby_button.xml @@ -32,6 +32,7 @@ android:textStyle="@integer/font_textStyle_medium" android:fontFamily="@string/font_fontFamily_medium" android:textAllCaps="true" + android:stateListAnimator="@null" android:background="@drawable/nearby_button_background" android:textColor="@color/body_text_1_inverse"/> diff --git a/android/src/main/res/layout/toolbar_actionbar.xml b/android/src/main/res/layout/toolbar_actionbar.xml index 57d3173..7717e34 100644 --- a/android/src/main/res/layout/toolbar_actionbar.xml +++ b/android/src/main/res/layout/toolbar_actionbar.xml @@ -14,6 +14,13 @@ limitations under the License. --> -<merge xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="0dp" - android:layout_height="0dp" /> +<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto" + iosched:theme="@style/ActionBarThemeOverlay" + iosched:popupTheme="@style/ActionBarPopupThemeOverlay" + android:id="@+id/toolbar_actionbar" + android:background="@null" + iosched:titleTextAppearance="@style/ActionBar.TitleText" + iosched:contentInsetStart="?actionBarInsetStart" + android:layout_width="match_parent" + android:layout_height="?actionBarSize" /> diff --git a/android/src/lpreview/res/layout-v21/toolbar_actionbar_with_translucent_background.xml b/android/src/main/res/layout/toolbar_actionbar_translucent.xml index aca3d8e..5861831 100644 --- a/android/src/lpreview/res/layout-v21/toolbar_actionbar_with_translucent_background.xml +++ b/android/src/main/res/layout/toolbar_actionbar_translucent.xml @@ -14,9 +14,13 @@ limitations under the License. --> -<Toolbar xmlns:android="http://schemas.android.com/apk/res/android" - android:theme="@style/ActionBarThemeOverlay" - android:background="@color/translucent_actionbar_background" +<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto" + iosched:theme="@style/ActionBarThemeOverlay" + iosched:popupTheme="@style/ActionBarPopupThemeOverlay" android:id="@+id/toolbar_actionbar" + android:background="@color/translucent_actionbar_background" + iosched:titleTextAppearance="@style/ActionBar.TitleText" + iosched:contentInsetStart="?actionBarInsetStart" android:layout_width="match_parent" - android:layout_height="?android:actionBarSize" /> + android:layout_height="?actionBarSize" /> diff --git a/android/src/lpreview/res/layout-v21/toolbar_actionbar_with_headerbar.xml b/android/src/main/res/layout/toolbar_actionbar_with_headerbar.xml index 47c3296..578aea0 100644 --- a/android/src/lpreview/res/layout-v21/toolbar_actionbar_with_headerbar.xml +++ b/android/src/main/res/layout/toolbar_actionbar_with_headerbar.xml @@ -14,9 +14,13 @@ limitations under the License. --> -<Toolbar xmlns:android="http://schemas.android.com/apk/res/android" +<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto" style="@style/HeaderBar" - android:theme="@style/ActionBarThemeOverlay" + iosched:theme="@style/ActionBarThemeOverlay" + iosched:popupTheme="@style/ActionBarPopupThemeOverlay" android:id="@+id/toolbar_actionbar" + iosched:titleTextAppearance="@style/ActionBar.TitleText" + iosched:contentInsetStart="?actionBarInsetStart" android:layout_width="match_parent" - android:layout_height="?android:actionBarSize" /> + android:layout_height="?actionBarSize" /> diff --git a/android/src/main/res/layout/video_library_spinner_item_dropdown.xml b/android/src/main/res/layout/video_library_spinner_item_dropdown.xml new file mode 100644 index 0000000..d1b38d0 --- /dev/null +++ b/android/src/main/res/layout/video_library_spinner_item_dropdown.xml @@ -0,0 +1,32 @@ +<!-- + Copyright 2014 Google Inc. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <TextView + android:id="@android:id/text1" + android:layout_height="@dimen/explore_dropdown_item_height" + android:layout_width="match_parent" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:drawablePadding="8dp" + android:gravity="center_vertical|start" + android:textSize="16sp" + android:textColor="@color/list_dropdown_foreground_color" /> +</LinearLayout> diff --git a/android/src/main/res/menu/browse_sessions.xml b/android/src/main/res/menu/browse_sessions.xml index 5185805..82b0f70 100644 --- a/android/src/main/res/menu/browse_sessions.xml +++ b/android/src/main/res/menu/browse_sessions.xml @@ -13,50 +13,51 @@ See the License for the specific language governing permissions and limitations under the License. --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_search" android:icon="@drawable/ic_action_search" - android:title="@string/description_search" android:orderInCategory="1" - android:showAsAction="always" /> + android:title="@string/description_search" + iosched:showAsAction="always" /> <item android:id="@+id/menu_refresh" - android:title="@string/description_refresh" android:orderInCategory="1" - android:showAsAction="never" /> + android:title="@string/description_refresh" + iosched:showAsAction="never" /> <item android:id="@+id/menu_wifi" - android:title="@string/description_configure_wifi" android:orderInCategory="98" - android:showAsAction="never" /> + android:title="@string/description_configure_wifi" + iosched:showAsAction="never" /> <item android:id="@+id/menu_i_o_hunt" - android:title="@string/description_i_o_hunt" android:orderInCategory="99" - android:showAsAction="never" /> + android:title="@string/description_i_o_hunt" + iosched:showAsAction="never" /> <item android:id="@+id/menu_io_extended" - android:visible="false" - android:title="@string/description_i_o_extended" android:orderInCategory="99" - android:showAsAction="never" /> + android:title="@string/description_i_o_extended" + android:visible="false" + iosched:showAsAction="never" /> <item android:id="@+id/menu_map" - android:visible="false" - android:title="@string/description_map" android:orderInCategory="100" - android:showAsAction="never" /> + android:title="@string/description_map" + android:visible="false" + iosched:showAsAction="never" /> <item android:id="@+id/menu_debug" - android:visible="false" - android:title="@string/description_debug" android:orderInCategory="101" - android:showAsAction="never" /> + android:title="@string/description_debug" + android:visible="false" + iosched:showAsAction="never" /> <item android:id="@+id/menu_about" - android:title="@string/description_about" android:orderInCategory="99" - android:showAsAction="never" /> + android:title="@string/description_about" + iosched:showAsAction="never" /> </menu> diff --git a/android/src/main/res/menu/my_schedule.xml b/android/src/main/res/menu/my_schedule.xml index 23707a0..0f9463a 100644 --- a/android/src/main/res/menu/my_schedule.xml +++ b/android/src/main/res/menu/my_schedule.xml @@ -13,49 +13,50 @@ See the License for the specific language governing permissions and limitations under the License. --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_search" android:icon="@drawable/ic_action_search" android:title="@string/description_search" android:orderInCategory="1" - android:showAsAction="always" /> + iosched:showAsAction="always" /> <item android:id="@+id/menu_refresh" android:title="@string/description_refresh" android:orderInCategory="1" - android:showAsAction="never" /> + iosched:showAsAction="never" /> <item android:id="@+id/menu_wifi" android:title="@string/description_configure_wifi" android:orderInCategory="98" - android:showAsAction="never" /> + iosched:showAsAction="never" /> <item android:id="@+id/menu_i_o_hunt" android:title="@string/description_i_o_hunt" android:orderInCategory="99" - android:showAsAction="never" /> + iosched:showAsAction="never" /> <item android:id="@+id/menu_io_extended" android:visible="false" android:title="@string/description_i_o_extended" android:orderInCategory="99" - android:showAsAction="never" /> + iosched:showAsAction="never" /> <item android:id="@+id/menu_map" android:visible="false" android:title="@string/description_map" android:orderInCategory="100" - android:showAsAction="never" /> + iosched:showAsAction="never" /> <item android:id="@+id/menu_debug" android:visible="false" android:title="@string/description_debug" android:orderInCategory="101" - android:showAsAction="never" /> + iosched:showAsAction="never" /> <item android:id="@+id/menu_about" android:title="@string/description_about" android:orderInCategory="99" - android:showAsAction="never" /> + iosched:showAsAction="never" /> </menu> diff --git a/android/src/main/res/menu/nearby.xml b/android/src/main/res/menu/nearby.xml index 256d9d7..247e692 100644 --- a/android/src/main/res/menu/nearby.xml +++ b/android/src/main/res/menu/nearby.xml @@ -1,5 +1,3 @@ -<?xml version="1.0" encoding="utf-8"?> - <!-- Copyright 2014 Google Inc. All rights reserved. @@ -16,10 +14,11 @@ limitations under the License. --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_nearby" android:title="@string/map_nearby_button" android:orderInCategory="1" - android:showAsAction="ifRoom" - android:actionLayout="@layout/nearby_button" /> + iosched:showAsAction="ifRoom" + iosched:actionLayout="@layout/nearby_button" /> </menu> diff --git a/android/src/main/res/menu/search.xml b/android/src/main/res/menu/search.xml index e473f9a..6b41dbe 100644 --- a/android/src/main/res/menu/search.xml +++ b/android/src/main/res/menu/search.xml @@ -13,11 +13,12 @@ See the License for the specific language governing permissions and limitations under the License. --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_search" android:icon="@drawable/ic_action_search" android:title="@string/description_search" android:orderInCategory="0" - android:actionViewClass="android.widget.SearchView" - android:showAsAction="always" /> + iosched:actionViewClass="android.support.v7.widget.SearchView" + iosched:showAsAction="always" /> </menu> diff --git a/android/src/main/res/menu/session_detail.xml b/android/src/main/res/menu/session_detail.xml index 224f894..8cef605 100644 --- a/android/src/main/res/menu/session_detail.xml +++ b/android/src/main/res/menu/session_detail.xml @@ -13,21 +13,22 @@ See the License for the specific language governing permissions and limitations under the License. --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_map_room" android:icon="@drawable/ic_action_map" android:title="@string/description_map" android:orderInCategory="1" - android:showAsAction="ifRoom" /> + iosched:showAsAction="ifRoom" /> <item android:id="@+id/menu_share" android:icon="@drawable/ic_action_share" android:title="@string/description_share" android:orderInCategory="1" - android:showAsAction="ifRoom" /> + iosched:showAsAction="ifRoom" /> <item android:id="@+id/menu_social_stream" android:icon="@drawable/ic_action_social_stream" android:title="@string/description_social_stream" android:orderInCategory="1" android:visible="false" - android:showAsAction="ifRoom" /> + iosched:showAsAction="ifRoom" /> </menu> diff --git a/android/src/main/res/menu/session_livestream.xml b/android/src/main/res/menu/session_livestream.xml index 4ea44ed..9bf002e 100644 --- a/android/src/main/res/menu/session_livestream.xml +++ b/android/src/main/res/menu/session_livestream.xml @@ -13,26 +13,27 @@ See the License for the specific language governing permissions and limitations under the License. --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_presentation" android:icon="@drawable/ic_media_route_off_holo_light" android:title="@string/description_presentation" android:orderInCategory="1" android:visible="false" - android:showAsAction="ifRoom" /> + iosched:showAsAction="ifRoom" /> <item android:id="@+id/menu_captions" android:icon="@drawable/ic_action_captions" android:title="@string/description_captions" android:orderInCategory="1" android:visible="false" - android:showAsAction="ifRoom" /> + iosched:showAsAction="ifRoom" /> <item android:id="@+id/menu_share" android:icon="@drawable/ic_action_share" android:title="@string/description_share" android:orderInCategory="1" - android:showAsAction="ifRoom" /> + iosched:showAsAction="ifRoom" /> </menu> diff --git a/android/src/main/res/menu/sessions_context.xml b/android/src/main/res/menu/sessions_context.xml index 53ea059..88da537 100644 --- a/android/src/main/res/menu/sessions_context.xml +++ b/android/src/main/res/menu/sessions_context.xml @@ -13,25 +13,26 @@ See the License for the specific language governing permissions and limitations under the License. --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:iosched="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_star" android:icon="@drawable/ic_action_add_schedule" android:title="@string/description_add_schedule" android:orderInCategory="1" - android:showAsAction="ifRoom" /> + iosched:showAsAction="ifRoom" /> <item android:id="@+id/menu_map_room" android:icon="@drawable/ic_action_map" android:title="@string/description_map" android:orderInCategory="2" - android:showAsAction="ifRoom" /> + iosched:showAsAction="ifRoom" /> <item android:id="@+id/menu_share" android:icon="@drawable/ic_action_share" android:title="@string/description_share" android:orderInCategory="3" - android:showAsAction="ifRoom" /> + iosched:showAsAction="ifRoom" /> <item android:id="@+id/menu_social_stream" android:icon="@drawable/ic_action_social_stream" android:title="@string/description_social_stream" android:orderInCategory="3" - android:showAsAction="ifRoom" /> + iosched:showAsAction="ifRoom" /> </menu> diff --git a/android/src/main/res/mipmap-hdpi/ic_launcher.png b/android/src/main/res/mipmap-hdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..494089c --- /dev/null +++ b/android/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/android/src/main/res/mipmap-mdpi/ic_launcher.png b/android/src/main/res/mipmap-mdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..09a8ae6 --- /dev/null +++ b/android/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/android/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/src/main/res/mipmap-xhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..8f2bd09 --- /dev/null +++ b/android/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/android/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/src/main/res/mipmap-xxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..ec08ac7 --- /dev/null +++ b/android/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..6d13883 --- /dev/null +++ b/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/android/src/lpreview/res/transition-v21/shared_element.xml b/android/src/main/res/transition-v21/shared_element.xml index 6d7b28c..6d7b28c 100644 --- a/android/src/lpreview/res/transition-v21/shared_element.xml +++ b/android/src/main/res/transition-v21/shared_element.xml diff --git a/android/src/lpreview/res/transition-v21/window_enter_exit.xml b/android/src/main/res/transition-v21/window_enter_exit.xml index e299a0c..e299a0c 100644 --- a/android/src/lpreview/res/transition-v21/window_enter_exit.xml +++ b/android/src/main/res/transition-v21/window_enter_exit.xml diff --git a/android/src/main/res/values-sw360dp/dimens.xml b/android/src/main/res/values-sw360dp/dimens.xml index 9cb8340..880cdef 100644 --- a/android/src/main/res/values-sw360dp/dimens.xml +++ b/android/src/main/res/values-sw360dp/dimens.xml @@ -18,4 +18,8 @@ <!-- Live Stream --> <dimen name="livestream_spinner_width">240dp</dimen> + <dimen name="navdrawer_chosen_account_height">164dp</dimen> + <dimen name="navdrawer_width">304dp</dimen> + <dimen name="navdrawer_profile_image_size">64dp</dimen> + </resources> diff --git a/android/src/lpreview/res/values-v21/attrs.xml b/android/src/main/res/values-sw600dp-v21/styles.xml index 6661e6a..934a527 100644 --- a/android/src/lpreview/res/values-v21/attrs.xml +++ b/android/src/main/res/values-sw600dp-v21/styles.xml @@ -15,7 +15,12 @@ --> <resources> - <declare-styleable name="ThemeLPreview"> - <attr name="actionBarIconColor" format="color" /> - </declare-styleable> + + <style name="Theme.IOSched.SessionDetails" parent="Theme.IOSched.SessionDetails.Base"> + <item name="android:windowBackground">@android:color/white</item> + <item name="android:windowFullscreen">true</item> + + <item name="android:windowElevation">16dp</item> + </style> + </resources> diff --git a/android/src/main/res/values-sw600dp/dimens.xml b/android/src/main/res/values-sw600dp/dimens.xml index f2b9883..25434d0 100644 --- a/android/src/main/res/values-sw600dp/dimens.xml +++ b/android/src/main/res/values-sw600dp/dimens.xml @@ -21,8 +21,6 @@ <dimen name="add_to_schedule_button_height">72dp</dimen> <!-- including padding --> <dimen name="add_to_schedule_button_height_no_padding">56dp</dimen> - <dimen name="navdrawer_chosen_account_height">140dp</dimen> - <dimen name="filter_spinner_width">200dp</dimen> <integer name="filter_spinner_weight">0</integer> diff --git a/android/src/main/res/values-sw600dp/styles.xml b/android/src/main/res/values-sw600dp/styles.xml index 4966da1..d5a4d6d 100644 --- a/android/src/main/res/values-sw600dp/styles.xml +++ b/android/src/main/res/values-sw600dp/styles.xml @@ -28,4 +28,6 @@ <item name="android:colorBackgroundCacheHint">@null</item> </style> + <style name="Theme.IOSched.SessionDetails" parent="Theme.IOSched.SessionDetails.Base" /> + </resources> diff --git a/android/src/main/res/values-v17/styles.xml b/android/src/main/res/values-v17/styles.xml index fe3e0e3..d6e7971 100644 --- a/android/src/main/res/values-v17/styles.xml +++ b/android/src/main/res/values-v17/styles.xml @@ -18,7 +18,7 @@ <!-- Enable RTL support on newer devices --> <!-- Prevents crash on certain devices to namespace conflict --> - <style name="FrameworkRoot.Theme" parent="android:Theme.Holo.Light.DarkActionBar"> + <style name="FrameworkRoot.Theme" parent="Theme.AppCompat.Light"> <item name="android:paddingStart">?android:attr/paddingLeft</item> <item name="android:paddingEnd">?android:attr/paddingRight</item> <item name="android:layout_marginStart">?android:attr/layout_marginLeft</item> diff --git a/android/src/lpreview/res/values-v21/fonts.xml b/android/src/main/res/values-v21/fonts.xml index 2680a08..9b6c194 100644 --- a/android/src/lpreview/res/values-v21/fonts.xml +++ b/android/src/main/res/values-v21/fonts.xml @@ -17,7 +17,4 @@ <resources> <integer name="font_textStyle_medium">0</integer> <!-- normal --> <string name="font_fontFamily_medium">sans-serif-medium</string> - - <integer name="font_textStyle_drawer_item">0</integer> <!-- normal --> - <string name="font_fontFamily_drawer_item">sans-serif-medium</string> </resources> diff --git a/android/src/lpreview/res/values-v21/refs.xml b/android/src/main/res/values-v21/refs.xml index edab140..edab140 100644 --- a/android/src/lpreview/res/values-v21/refs.xml +++ b/android/src/main/res/values-v21/refs.xml diff --git a/android/src/main/res/values-v21/styles.xml b/android/src/main/res/values-v21/styles.xml new file mode 100644 index 0000000..361f4dd --- /dev/null +++ b/android/src/main/res/values-v21/styles.xml @@ -0,0 +1,49 @@ +<!-- + Copyright 2014 Google Inc. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources> + + <style name="Theme" parent="FrameworkRoot.Theme" /> <!-- doesn't contain the pre-L code from the values/styles.xml --> + + <style name="Theme.IOSched" parent="Theme.IOSched.Base"> + <item name="popupItemBackground">@drawable/popup_item_background</item> + <item name="photoItemForeground">@drawable/photo_item_foreground</item> + <item name="photoItemForegroundBorderless">@drawable/photo_item_foreground_borderless</item> + + <item name="android:navigationBarColor">#000</item> + <item name="android:statusBarColor">?colorPrimaryDark</item> + + <item name="android:alertDialogTheme">@style/Theme.IOSched.AlertDialog</item> + </style> + + <style name="Theme.IOSched.WithNavDrawer" parent="Theme.IOSched"> + <item name="android:statusBarColor">@android:color/transparent</item> + </style> + + <style name="Theme.IOSched.AlertDialog" parent="android:Theme.Material.Light.Dialog.Alert"> + <item name="android:colorPrimary">@color/theme_primary</item> + <item name="android:colorPrimaryDark">@color/theme_primary_dark</item> + <item name="android:colorAccent">@color/theme_accent_2</item> + </style> + + <style name="Widget.IOSched.HeaderBar.Spinner" parent="Widget.IOSched.HeaderBar.Spinner.Base"> + <item name="android:theme">@style/ActionBarThemeOverlay</item> + </style> + + <style name="TabIndicator"> + <item name="android:theme">@style/ActionBarThemeOverlay</item> + </style> +</resources> diff --git a/android/src/main/res/values/attrs.xml b/android/src/main/res/values/attrs.xml index 73eb02c..dde6599 100644 --- a/android/src/main/res/values/attrs.xml +++ b/android/src/main/res/values/attrs.xml @@ -16,12 +16,12 @@ <resources> <declare-styleable name="BaseTheme"> - <attr name="actionBarOverlayTopOffset" format="dimension" /> + <attr name="actionBarIconColor" format="color" /> <attr name="actionBarInsetStart" format="dimension" /> <attr name="spinnerBarInsetStart" format="dimension" /> - <attr name="selectableItemBackgroundBorderless" format="dimension" /> - <attr name="popupItemBackground" format="dimension" /> - <attr name="photoItemForeground" format="dimension" /> + <attr name="popupItemBackground" format="reference" /> + <attr name="photoItemForeground" format="reference" /> + <attr name="photoItemForegroundBorderless" format="reference" /> </declare-styleable> <declare-styleable name="MultiSwipeRefreshLayout"> @@ -33,6 +33,10 @@ <attr name="shadowVisible" format="boolean" /> </declare-styleable> + <declare-styleable name="ScrimInsetsView"> + <attr name="insetForeground" format="reference|color" /> + </declare-styleable> + <declare-styleable name="BezelImageView"> <attr name="maskDrawable" format="reference" /> <attr name="borderDrawable" format="reference" /> diff --git a/android/src/main/res/values/colors.xml b/android/src/main/res/values/colors.xml index fd57b75..d5d91a2 100644 --- a/android/src/main/res/values/colors.xml +++ b/android/src/main/res/values/colors.xml @@ -50,13 +50,12 @@ <color name="navdrawer_background">#ffffffff</color> <color name="navdrawer_text_color">@color/body_text_1</color> <color name="navdrawer_text_color_selected">@color/theme_primary</color> - <color name="navdrawer_icon_tint">#808080</color> + <color name="navdrawer_icon_tint">#888</color> <color name="navdrawer_icon_tint_selected">@color/theme_primary</color> <color name="refresh_progress_1">@color/theme_accent_2</color> <color name="refresh_progress_2">@color/theme_accent_1</color> - <color name="refresh_progress_3">@color/theme_primary_dark</color> - <color name="refresh_progress_4">@color/theme_primary_light</color> + <color name="refresh_progress_3">@color/theme_primary</color> <color name="data_item_background_light">#ffffff</color> <color name="data_item_lightbg_title">#404040</color> @@ -66,6 +65,8 @@ <color name="session_photo_scrim">#6000</color> <color name="default_session_color">@color/theme_primary</color> + <color name="no_track_branding_session_tile_overlay">#8333</color> + <color name="no_track_branding_session_color">#333</color> <color name="nearby_header_color">#00c</color> <color name="nearby_url_color">#0a0</color> @@ -76,6 +77,7 @@ <color name="butter_bar_light">#eee0e0e0</color> <color name="translucent_actionbar_background">#cc3f51b5</color> + <color name="translucent_statusbar_background">#cc3f51b5</color> <color name="tab_background">@color/theme_primary</color> <color name="tab_selected_strip">@color/theme_accent_1</color> diff --git a/android/src/main/res/values/dimens.xml b/android/src/main/res/values/dimens.xml index 6933048..dafa969 100644 --- a/android/src/main/res/values/dimens.xml +++ b/android/src/main/res/values/dimens.xml @@ -51,7 +51,7 @@ <dimen name="list_item_action_height">90dp</dimen> <dimen name="list_item_action_margin">2dp</dimen> <dimen name="action_button_padding">10dp</dimen> - <dimen name="spinner_left_padding">4dp</dimen> + <dimen name="spinner_left_padding">16dp</dimen> <!-- body content --> <dimen name="element_spacing_normal">8dp</dimen> @@ -71,7 +71,7 @@ <dimen name="map_content_padding">8dp</dimen> <dimen name="map_infowindow_width">260dp</dimen> - <dimen name="navdrawer_chosen_account_height">120dp</dimen> + <dimen name="navdrawer_chosen_account_height">140dp</dimen> <dimen name="navdrawer_width">260dp</dimen> <dimen name="navdrawer_profile_image_size">40dp</dimen> @@ -79,6 +79,9 @@ <dimen name="action_bar_auto_hide_min_y">152dp</dimen> <dimen name="action_bar_auto_hide_sensivity">48dp</dimen> + <dimen name="swipe_refresh_progress_bar_start_margin">-40dp</dimen> + <dimen name="swipe_refresh_progress_bar_end_margin">16dp</dimen> + <dimen name="browse_sessions_anim_amount">400dp</dimen> <dimen name="butter_bar_height">64dp</dimen> <dimen name="filterbar_height">48dp</dimen> @@ -89,7 +92,8 @@ <dimen name="explore_dropdown_item_height">48dp</dimen> <dimen name="explore_spinner_width">200dp</dimen> <dimen name="explore_grid_padding">4dp</dimen> - <dimen name="half_explore_grid_padding">2dp</dimen> + <dimen name="explore_grid_padding_half">2dp</dimen> + <dimen name="explore_hero_item_height">240dp</dimen> <dimen name="filter_spinner_width">0dp</dimen> @@ -113,17 +117,19 @@ <dimen name="keyline_2_session_detail">@dimen/keyline_2</dimen> <dimen name="session_detail_speaker_left_offset">@dimen/keyline_1</dimen> - <dimen name="fab_elevation">2dp</dimen> - <dimen name="fab_press_translation_z">2dp</dimen> - <dimen name="session_detail_max_header_elevation">2dp</dimen> - <dimen name="headerbar_elevation">2dp</dimen> + <dimen name="fab_elevation">8dp</dimen> + <dimen name="fab_press_translation_z">6dp</dimen> + <dimen name="headerbar_elevation">4dp</dimen> + <dimen name="session_detail_max_header_elevation">@dimen/headerbar_elevation</dimen> + <dimen name="card_elevation">2dp</dimen> + + <dimen name="card_corner_radius">2dp</dimen> <!-- Social --> <dimen name="hashtag_line_height">1dp</dimen> <dimen name="hashtag_height">120dp</dimen> <dimen name="hashtag_desc_size">40dp</dimen> - <dimen name="social_grid_padding">4dp</dimen> <dimen name="social_hz_margin">0dp</dimen> <dimen name="hashtag_text_size">14sp</dimen> <dimen name="hashtag_hero_text_size">45sp</dimen> diff --git a/android/src/main/res/values/fonts.xml b/android/src/main/res/values/fonts.xml index dd12fd4..9e33312 100644 --- a/android/src/main/res/values/fonts.xml +++ b/android/src/main/res/values/fonts.xml @@ -17,7 +17,4 @@ <resources> <integer name="font_textStyle_medium">1</integer> <!-- bold --> <string name="font_fontFamily_medium">sans-serif</string> - - <integer name="font_textStyle_drawer_item">0</integer> <!-- normal --> - <string name="font_fontFamily_drawer_item">sans-serif</string> </resources> diff --git a/android/src/main/res/values/refs.xml b/android/src/main/res/values/refs.xml index 5269692..a627782 100644 --- a/android/src/main/res/values/refs.xml +++ b/android/src/main/res/values/refs.xml @@ -15,8 +15,6 @@ --> <resources> - <item name="toolbar_actionbar_with_headerbar" type="layout">@layout/toolbar_actionbar</item> - <item name="toolbar_actionbar_with_translucent_background" type="layout">@layout/toolbar_actionbar</item> <item name="schedule_item_touchoverlay_dark" type="drawable">@drawable/schedule_item_touchoverlay</item> <item name="header_shadow" type="drawable">@drawable/bottom_shadow</item> </resources> diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml index 4a8438d..6f11514 100644 --- a/android/src/main/res/values/strings.xml +++ b/android/src/main/res/values/strings.xml @@ -32,6 +32,12 @@ <item quantity="other">%d sessions are about to start.</item> </plurals> + <!-- Indicates a certain number of sessions. --> + <plurals name="session_plurals"> + <item quantity="one">1 session</item> + <item quantity="other">%1$d sessions</item> + </plurals> + <!-- Title for the notification that alerts the user that some of their sessions are about to begin. --> <plurals name="session_notification_title"> <item quantity="one">1 session is starting in <xliff:g id="remaining_time">%1$d</xliff:g> min.</item> diff --git a/android/src/main/res/values/styles.xml b/android/src/main/res/values/styles.xml index ffd2b15..e33f9ba 100644 --- a/android/src/main/res/values/styles.xml +++ b/android/src/main/res/values/styles.xml @@ -18,49 +18,50 @@ <!-- Root styles that vary by API level --> <!-- Disable RTL support on older devices --> <!-- Prevents crash on certain devices to namespace conflict --> - <style name="FrameworkRoot.Theme" parent="android:Theme.Holo.Light.DarkActionBar" /> - <style name="FrameworkRoot.ActionBar" parent="android:Widget.Holo.ActionBar" /> - <style name="FrameworkRoot.ActionBar.TitleText" parent="android:TextAppearance.Holo.Widget.ActionBar.Title" /> - <style name="FrameworkRoot.ActionBar.TabBar" parent="android:Widget.Holo.ActionBar.TabBar" /> - <style name="FrameworkRoot.EditText" parent="android:Widget.Holo.Light.EditText" /> - <style name="FrameworkRoot.Widget" parent="android:Theme.Holo" /> - <style name="FrameworkRoot.Widget.ActionButton.Overflow" parent="android:Widget.Holo.ActionButton.Overflow" /> - <style name="FrameworkRoot.Widget.Spinner" parent="android:Widget.Holo.Light.Spinner" /> - <style name="FrameworkRoot.Widget.ListView.DropDown" parent="android:Widget.Holo.Light.ListView.DropDown" /> - <style name="FrameworkRoot.Widget.PopupMenu" parent="android:Widget.Holo.Light.PopupMenu" /> - <style name="FrameworkRoot.TextAppearance.Widget.PopupMenu.Large" parent="android:TextAppearance.Holo.Widget.PopupMenu.Large" /> + <style name="FrameworkRoot.Theme" parent="Theme.AppCompat.Light" /> + <style name="FrameworkRoot.Widget" parent="Theme.AppCompat" /> <!-- Immediate parent theme to specify base values for custom attributes --> <style name="Theme" parent="FrameworkRoot.Theme"> <!-- Only needed for pre-L --> - <item name="android:actionOverflowButtonStyle">@style/ActionButton.Overflow</item> <item name="android:editTextBackground">@drawable/edit_text</item> <item name="android:editTextStyle">@style/Widget.IOSched.EditText</item> - <item name="android:actionBarWidgetTheme">@style/Theme.IOSched.Widget</item> - <item name="android:actionDropDownStyle">@style/Widget.IOSched.HeaderBar.Spinner</item> </style> <style name="Theme.IOSched.Base" parent="Theme"> - <item name="actionBarOverlayTopOffset">?android:actionBarSize</item> - <item name="actionBarInsetStart">?android:actionBarSize</item> - <item name="spinnerBarInsetStart">?android:actionBarSize</item> - <item name="selectableItemBackgroundBorderless">?android:selectableItemBackground</item> + <item name="actionBarIconColor">#fff</item> + <item name="actionBarInsetStart">@dimen/keyline_2</item> + <item name="homeAsUpIndicator">@drawable/ic_up</item> + <item name="spinnerBarInsetStart">@dimen/keyline_2_minus_16dp</item> <item name="popupItemBackground">?android:selectableItemBackground</item> <item name="photoItemForeground">?android:selectableItemBackground</item> + <item name="photoItemForegroundBorderless">?android:selectableItemBackground</item> + + <item name="colorPrimary">@color/theme_primary</item> + <item name="colorPrimaryDark">@color/theme_primary_dark</item> + <item name="colorAccent">@color/theme_accent_2</item> + + <item name="android:textColorLink">@color/theme_accent_2</item> + + <item name="windowActionBar">false</item> + <item name="android:windowNoTitle">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowBackground">@android:color/white</item> - <item name="android:actionBarStyle">@style/ActionBar</item> <item name="android:homeAsUpIndicator">@drawable/ic_up</item> <item name="android:popupMenuStyle">@style/Widget.IOSched.PopupMenu</item> <item name="android:listPopupWindowStyle">@style/Widget.IOSched.PopupMenu</item> <item name="android:dropDownListViewStyle">@style/Widget.IOSched.ListView.DropDown</item> <item name="android:textAppearanceLargePopupMenu">@style/TextAppearance.LargePopupMenu</item> + + <item name="searchViewStyle">@style/Widget.IOSched.SearchView</item> </style> <style name="Theme.IOSched" parent="Theme.IOSched.Base" /> + <style name="Theme.IOSched.WithNavDrawer" parent="Theme.IOSched" /> + <style name="Theme.IOSched.Widget" parent="FrameworkRoot.Widget"> <item name="android:popupMenuStyle">@style/Widget.IOSched.PopupMenu</item> <item name="android:listPopupWindowStyle">@style/Widget.IOSched.PopupMenu</item> @@ -68,55 +69,67 @@ <item name="android:textAppearanceLargePopupMenu">@style/TextAppearance.LargePopupMenu</item> </style> - <style name="ActionButton.Overflow" parent="FrameworkRoot.Widget.ActionButton.Overflow"> - <item name="android:src">@drawable/ic_action_overflow</item> + <style name="ActionBarThemeOverlay" parent=""> + <item name="android:textColorPrimary">#fff</item> + <item name="colorControlNormal">?actionBarIconColor</item> + <item name="colorControlHighlight">#3fff</item> </style> - <style name="Theme.IOSched.Welcome" parent="Theme.IOSched"> - <item name="android:windowActionBar">false</item> - <item name="android:windowNoTitle">true</item> + <style name="ActionBarPopupThemeOverlay" parent="ThemeOverlay.AppCompat.Light" /> + + <style name="ActionBar.TitleText" parent="TextAppearance.AppCompat.Widget.ActionBar.Title"> + <item name="android:textColor">#fff</item> + <item name="android:textSize">18sp</item> </style> - <style name="Theme.IOSched.Sessions.Base" parent="Theme.IOSched"> - <item name="android:windowActionBarOverlay">true</item> + <style name="Theme.IOSched.Welcome" parent="Theme.IOSched" /> + + <style name="Theme.IOSched.Sessions" parent="Theme.IOSched.WithNavDrawer"> + <item name="actionBarInsetStart">@dimen/keyline_2_minus_16dp</item> + <item name="spinnerBarInsetStart">@dimen/keyline_2_minus_16dp</item> <item name="android:windowBackground">@color/gray_background</item> </style> <style name="Theme.IOSched.Search" parent="Theme.IOSched"> <item name="android:windowBackground">@color/gray_background</item> + <item name="android:autoCompleteTextViewStyle">@style/Widget.IOSched.Search.AutoCompleteTextView</item> + <item name="colorControlActivated">@color/theme_accent_1</item> </style> - <style name="Theme.IOSched.Sessions" parent="Theme.IOSched.Sessions.Base" /> - - <style name="Theme.IOSched.VideoLibrary" parent="Theme.IOSched"> - <item name="android:windowActionBarOverlay">true</item> + <style name="Widget.IOSched.Search.AutoCompleteTextView" parent="Widget.AppCompat.Light.AutoCompleteTextView"> + <item name="android:textColorHint">#5fff</item> </style> - <style name="Widget.IOSched.HeaderBar.Spinner.Base" parent="FrameworkRoot.Widget.Spinner"> + <style name="Theme.IOSched.VideoLibrary" parent="Theme.IOSched.WithNavDrawer" /> + + <style name="Widget.IOSched.HeaderBar.Spinner.Base" parent="Widget.AppCompat.Light.Spinner.DropDown.ActionBar"> <item name="android:background">?android:selectableItemBackground</item> <item name="android:dropDownSelector">?android:selectableItemBackground</item> <item name="android:divider">@null</item> <item name="android:dividerHeight">0dp</item> + <item name="android:overlapAnchor">true</item> </style> <style name="Widget.IOSched.HeaderBar.Spinner" parent="Widget.IOSched.HeaderBar.Spinner.Base" /> - <style name="Widget.IOSched.PopupMenu" parent="FrameworkRoot.Widget.PopupMenu"> + <style name="Widget.IOSched.PopupMenu" parent="Widget.AppCompat.Light.PopupMenu"> <item name="android:dropDownSelector">?popupItemBackground</item> </style> - <style name="Widget.IOSched.ListView.DropDown" parent="FrameworkRoot.Widget.ListView.DropDown"> + <style name="Widget.IOSched.ListView.DropDown" parent="Widget.AppCompat.Light.ListView.DropDown"> <item name="android:listSelector">?popupItemBackground</item> <item name="android:divider">@null</item> <item name="android:dividerHeight">0dp</item> </style> - <style name="TextAppearance.LargePopupMenu" parent="FrameworkRoot.TextAppearance.Widget.PopupMenu.Large"> + <style name="TextAppearance.LargePopupMenu" parent="TextAppearance.AppCompat.Widget.PopupMenu.Large"> <item name="android:textColor">@color/body_text_1</item> </style> + <style name="Widget.IOSched.SearchView" parent="Widget.AppCompat.SearchView" /> + <!-- My Schedule --> - <style name="Theme.IOSched.MySchedule" parent="Theme.IOSched" /> + <style name="Theme.IOSched.MySchedule" parent="Theme.IOSched.WithNavDrawer" /> <!-- Intermediary theme for SessionDetails (so we can override it on large screens) --> <style name="Theme.IOSched.SessionDetails.Base" parent="Theme.IOSched"> @@ -124,15 +137,11 @@ </style> <!-- Session Details --> - <style name="Theme.IOSched.SessionDetails" parent="Theme.IOSched.SessionDetails.Base"> - <item name="android:actionBarStyle">@style/TransparentActionBar</item> - <item name="android:windowActionBarOverlay">true</item> - </style> + <style name="Theme.IOSched.SessionDetails" parent="Theme.IOSched.SessionDetails.Base" /> <!-- Social --> - <style name="Theme.IOSched.Social" parent="Theme.IOSched"> + <style name="Theme.IOSched.Social" parent="Theme.IOSched.WithNavDrawer"> <item name="android:windowBackground">@color/gray_background</item> - <item name="android:windowContentOverlay">@drawable/header_shadow</item> </style> <!-- Account chooser --> @@ -140,55 +149,32 @@ <item name="android:actionBarStyle">@style/ActionBar.Accounts</item> </style> - <style name="ActionBar.Accounts" parent="ActionBar"> + <style name="ActionBar.Accounts" parent=""> <item name="android:displayOptions">showHome|useLogo</item> </style> <!-- People I've Met --> - <style name="Theme.IOSched.PeopleIveMet" parent="Theme.IOSched"> - <item name="android:windowContentOverlay">@drawable/header_shadow</item> - </style> + <style name="Theme.IOSched.PeopleIveMet" parent="Theme.IOSched.WithNavDrawer" /> <!-- Experts --> - <style name="Theme.IOSched.ExpertsDirectory" parent="Theme.IOSched"> - <item name="android:windowActionBarOverlay">true</item> - </style> - - <!-- Action bar --> - <style name="ActionBar.Base" parent="FrameworkRoot.ActionBar"> - <item name="android:background">@drawable/actionbar_background</item> - <item name="android:icon">@drawable/actionbar_icon</item> - <item name="android:displayOptions">showHome|showTitle</item> - <item name="android:titleTextStyle">@style/ActionBar.TitleText</item> - <item name="android:logo">@drawable/actionbar_logo</item> - </style> - - <style name="ActionBar" parent="ActionBar.Base" /> - - <style name="ActionBar.TitleText" parent="FrameworkRoot.ActionBar.TitleText"> - <item name="android:textColor">#fff</item> - <item name="android:textSize">18sp</item> - </style> + <style name="Theme.IOSched.ExpertsDirectory" parent="Theme.IOSched.WithNavDrawer" /> + <!-- Misc --> <style name="TabIndicator" /> <!-- Transparent Action Bar --> - <style name="TransparentActionBar" parent="ActionBar"> + <style name="TransparentActionBar" parent=""> <item name="android:background">@null</item> </style> - <style name="TranslucentActionBar" parent="ActionBar"> + <style name="TranslucentActionBar" parent=""> <item name="android:background">@color/translucent_actionbar_background</item> </style> <!-- Live stream --> <style name="Theme.IOSched.Livestream" parent="Theme.IOSched"> <item name="android:windowBackground">@color/gray_background</item> - </style> - - <!-- Etc. --> - <style name="Theme.IOSched.WithElevatedHeader" parent="Theme.IOSched"> - <item name="android:windowContentOverlay">@drawable/header_shadow</item> + <item name="actionBarInsetStart">@dimen/keyline_2_minus_16dp</item> </style> <!-- Empty views --> @@ -278,10 +264,7 @@ </style> <!-- Map --> - <style name="Theme.IOSched.Map" parent="Theme.IOSched"> - <item name="android:actionBarStyle">@style/TranslucentActionBar</item> - <item name="android:windowActionBarOverlay">true</item> - </style> + <style name="Theme.IOSched.Map" parent="Theme.IOSched.WithNavDrawer" /> <style name="MapInfoText" parent="@style/TextHeaderSub"> <item name="android:textColor">@color/map_info_1</item> @@ -312,7 +295,7 @@ <item name="android:shadowRadius">3</item> </style> - <style name="Widget.IOSched.EditText" parent="FrameworkRoot.EditText"> + <style name="Widget.IOSched.EditText" parent="Widget.AppCompat.EditText"> <item name="android:background">@drawable/edit_text</item> </style> @@ -329,7 +312,10 @@ <item name="android:textColor">@color/theme_primary</item> </style> - <style name="HeaderBar" /> + <style name="HeaderBar"> + <item name="android:background">?colorPrimary</item> + <item name="android:elevation">@dimen/headerbar_elevation</item> + </style> <!-- Session feedback --> diff --git a/art/actionbar_action_icons.ai b/art/actionbar_action_icons.ai index b1eac2c..316a7d4 100644 --- a/art/actionbar_action_icons.ai +++ b/art/actionbar_action_icons.ai @@ -1,40 +1,41 @@ %PDF-1.5
%
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 23 0 R 40 0 R]/Order 41 0 R/RBGroups[]>>/OCGs[5 0 R 23 0 R 40 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 36149/Subtype/XML/Type/Metadata>>stream
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 23 0 R 40 0 R 57 0 R 74 0 R 91 0 R 108 0 R 125 0 R]/Order 126 0 R/RBGroups[]>>/OCGs[5 0 R 23 0 R 40 0 R 57 0 R 74 0 R 91 0 R 108 0 R 125 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 35924/Subtype/XML/Type/Metadata>>stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> +<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15 "> <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/"> + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:xmp="http://ns.adobe.com/xap/1.0/" + xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/" + 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#" + xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/" + 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/" + xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> <dc:format>application/pdf</dc:format> <dc:title> <rdf:Alt> <rdf:li xml:lang="x-default">Print</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>2014-05-13T13:33:23-04:00</xmp:MetadataDate> - <xmp:ModifyDate>2014-05-13T13:33:23-04:00</xmp:ModifyDate> + <xmp:MetadataDate>2014-10-03T13:33:08-04:00</xmp:MetadataDate> + <xmp:ModifyDate>2014-10-03T13:33:08-04:00</xmp:ModifyDate> <xmp:CreateDate>2014-05-13T10:50:34-04:00</xmp:CreateDate> <xmp:CreatorTool>Adobe Illustrator CS6 (Macintosh)</xmp:CreatorTool> <xmp:Thumbnails> <rdf:Alt> <rdf:li rdf:parseType="Resource"> - <xmpGImg:width>244</xmpGImg:width> + <xmpGImg:width>256</xmpGImg:width> <xmpGImg:height>256</xmpGImg:height> <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAD0AwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q==</xmpGImg:image> + <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//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:76b8e127-d7fa-c04d-881d-b2f3253df5eb</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:7b43c828-4f7b-5947-97cf-0ff6b1e671c3</xmpMM:InstanceID> <xmpMM:DocumentID>xmp.did:02801174072068118083B593782F4205</xmpMM:DocumentID> <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID> <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> @@ -55,16 +56,8 @@ </rdf:li> </rdf:Seq> </xmpMM:History> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"> <illustrator:Type>Document</illustrator:Type> <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> @@ -557,9 +550,6 @@ </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 10.01</pdf:Producer> </rdf:Description> </rdf:RDF> @@ -585,877 +575,929 @@ -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[6.50928 6.03516 25.4902 25.9648]/BleedBox[0.0 0.0 32.0 32.0]/Contents 42 0 R/LastModified(D:20140513133322-04'00')/MediaBox[0.0 0.0 32.0 32.0]/Parent 3 0 R/PieceInfo<</Illustrator 43 0 R>>/Resources<</ExtGState<</GS0 44 0 R>>/Properties<</MC0 40 0 R>>>>/Thumb 45 0 R/TrimBox[0.0 0.0 32.0 32.0]/Type/Page>>
endobj
42 0 obj
<</Filter/FlateDecode/Length 367>>stream
-H\SN1+qy])S*| -zoҮZe{lwo{.PxOANvNbT+I䘅g? -';,w"PiKd@5
TfP9wSL4*5lTkqCJ.T}q6d[OӖ%DM66NbPqXPkK֤dȔJ\{B记&4%MXy"*k7oV2i7tđ)Lz;ŎWP+.^CZK2kU! -8;Xp,*>JPW(]\SI%<2~>
endstream
endobj
46 0 obj
[/Indexed/DeviceRGB 255 47 0 R]
endobj
47 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[6.0 6.0 26.0 26.0]/BleedBox[0.0 0.0 32.0 32.0]/Contents 127 0 R/LastModified(D:20141003133307-04'00')/MediaBox[0.0 0.0 32.0 32.0]/Parent 3 0 R/PieceInfo<</Illustrator 128 0 R>>/Resources<</ExtGState<</GS0 129 0 R>>/Properties<</MC0 125 0 R>>>>/Thumb 130 0 R/TrimBox[0.0 0.0 32.0 32.0]/Type/Page>>
endobj
127 0 obj
<</Filter/FlateDecode/Length 697>>stream
+H\UKn[1~ۺEWAtmp +$?RҐGٟ|E_2K;}_1˫9Ȩ`%A.Na&rvbeKwŵcckq +5Xa)P93R79T#EYBL@)5ڙ(=lRހaPfC
I:^Mض)<hmy7Fe#0#ɼŢJ
TQ/42仺F}bK]YQpcמiߌRIQl{KQ6NZ}zpfB Ez2J6%<!nׇJig7VEUBjWe +L_jx>jo!y($p=S
j#Hߗ< +8;Xp,*>JPW(]\SI%<2~>
endstream
endobj
131 0 obj
[/Indexed/DeviceRGB 255 132 0 R]
endobj
132 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
40 0 obj
<</Intent 48 0 R/Name(Layer 1)/Type/OCG/Usage 49 0 R>>
endobj
48 0 obj
[/View/Design]
endobj
49 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>>
endobj
44 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
43 0 obj
<</LastModified(D:20140513133322-04'00')/Private 50 0 R>>
endobj
50 0 obj
<</AIMetaData 51 0 R/AIPrivateData1 52 0 R/AIPrivateData2 53 0 R/AIPrivateData3 54 0 R/AIPrivateData4 55 0 R/ContainerVersion 11/CreatorVersion 16/NumBlock 4/RoundtripStreamType 1/RoundtripVersion 16>>
endobj
51 0 obj
<</Length 914>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 16.0
%%AI8_CreatorVersion: 16.0.4
%%For: (Roman Nurik) ()
%%Title: (ab_icons.ai)
%%CreationDate: 5/13/14 1:33 PM
%%Canvassize: 16383
%%BoundingBox: 6 -26 26 -6
%%HiResBoundingBox: 6.50928 -25.9648 25.4902 -6.03516
%%DocumentProcessColors:
%AI5_FileFormat 12.0
%AI12_BuildNumber: 691
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 -32 32 0
%AI3_TemplateBox: 16.5 -16.5 16.5 -16.5
%AI3_TileBox: -272 -372 304 362
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -11 5 18.02 1448 867 18 0 0 495 737 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-290 -412
%AI7_GridSettings: 4 4 4 4 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MO
%%EndComments
endstream
endobj
52 0 obj
<</Length 2133>>stream
-%%BoundingBox: 6 -26 26 -6
%%HiResBoundingBox: 6.50928 -25.9648 25.4902 -6.03516
%AI7_Thumbnail: 124 128 8
%%BeginData: 1988 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
%524C45FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDF7FFFF
%%EndData
endstream
endobj
53 0 obj
<</Length 65536>>stream
-%AI12_CompressedDataxyu' ;i`2\[y`I
l0
M8f
6[Ol®@Yž7322w__q7?~o8t.bJ/L_/~Ç7O~Jw|S{ pz-?g!S}K|ݟ^~5Dxw8}?7e\BWuˎ17c*w>~|>Ћn}Mˏ_7o5N_o~-Ǐԧ$?
86w߾w"7W}woiUi[?u|͋8ӫ''y(x7_Z`29+懷?ӻ7c*#_~Ko_ro_~Goȋi'?֯~w}!UMֲ[Zvs+M!4c4+_<ÛoXe -Ûf=%nw_-Ǐii٬旿}}|-F{,nZ -t*4t<N<
E82J|OH8g>F;z8a??89v:O8L4)O$'ߖ3ʾe)sJ)K(ңct9vPChY/f]*sK^e^尜u\ÚֲN뼮a=vy_~i{0z2-VD5RCYha-Y/~uyQWǞU墧uEuō58Eq]ƑFpOhNKY|a<eΤDYVBo7tM ?iMtaD@xh3d3mʩNO4іZis@c384^G[Ÿm|cϿr.zgo3mHxω.ڱLmY<q& -w%6ηt'%hemֹ}4OGc#?V;ᇖ%8.DpUϴ`m6Lۭ2mx:q"buM֜mҼO]ðiTδѲ㑗3FLH~~%p4s3O`#o
1KwڐvI%6-l]{64%N/.kP_Ҏa<?BE氄=G>m/cF$()rD:!i*py*Bg9!x+|;+yѮeaˢ<c[I/@;*11av9k
)=t7]{~maң:#lqÕSL9281B0yҐ JNʚ)-
l)?"tͽLs% -I
Rd݁Hf 4%yeYb-)3*-4bHNZ$&qh -XR#`$77#`?L('ڗ5fvΚi3;kPf+
(Z?{ӂ<<Y:D"..c<Ox~fw^~7zjh\9 ,,O$COlH#fJerH!C6t<| dtH,'!C\B;vu<DIr?˺ey!C_XYX)Z*>]Gd$-+iOKҸ8{ -bV -{7@8TV#dɴ5& ,9,UHP>!EM{g,ZCcђ}OP Ӏ
;B<sX~晟90ڎVO)3-i %DHdEL+PN#{Z:n:3 -@zob2 -wb JCrtd laҁqUAzb&h QWF"~ -sM4j@pCN¦@מYMjf1ʐu11a)a00,IN -)< -<S{OpU'\ցwhVB}9Kb"&lOҁ)e3{Y>T`Q1 -'w -"p@QT4+4Q= -saCZ<ai"_A VD
6h8Xx8ҙT5unGtXP -.QhR%vS'w9}<]E'x
YF -B"wh» -'c -rL~F۟peZI+ye
nccxj
ާWEt[bH6Il^RζT/z&7k>ӧ5q%
Mk^}g9FusoCƱW3[{FRԋ[婋fxM}^̸yo}i6wSVӺzcx56X͔p[u)N$?v'Nж;2|gppΕOXkZJ^mwk:iŀ=xp:h;>8+PAH(AP$}ʧk:qPs0r<9.\o>~;
)v0aI.aDꌼ2/xR/ -STTf7Ibc]En[&mo -NM+lXCZlCNONAB @! F4d#ӈ"pO8wV&=xq;=X~1\vOmoiBם]hh2MuPrq59EVq$qIC0b![Z~G{dGϮa6RcSs7ǖa7Gz\1lN?1q hKF=MZˁТYբ:Jh ]H얕]u3Ugߟ?;ߟ?;v}o?;?[&gL+ejf*s9ey<!DNwy!%G9=^|%kC~'[w=y103"ywUtE1"l#f#I-Ϭo⠷~o<W]}nq-I}T Ts&8>(w'X::PSX|ꨖ.K$X6YX |#e
+`@tNp=FS5WoAݾZoxosp`)13|'?;g -ٟ4)<7홝:6Mܼ Qԁxne$LH - - ><(|bX%Ϫ[EGfJ!\ܬB
4XMBݿD-}`9x&ZߜyQ%X l8}US^bjXYaU=Cjt`'
b";Vlo܄_s̾${ -VATzsCҒԤ+IBs51%=k4sNY'[̮O<y%&;OnWl^, g9r7Dyri0#rS$\1榲Qߊ|4nWlړx[Z'.έ/)5GtYmEK56ElsԄtQMG^3hm)ZL1ToSԭf=n:)c<F59?:mU
fR;܁u.ɇ!*NEVdm\V$rF'k G 2# -g^`IgM.'eyitEWMՖljڇ` -Yke%'DO.pyФRAhxwK_婾zt -M$w
ݝWNMR=.p.$l3ڳ;>tj`>S{Za«p$R"uieZe &JbWbY{ҪZ3 wF]DxH{DvPu`@9nXRd lk}pve2U5! -VHpWDFT<mF1phG2c%,1\Vng0؛ XB暃YͥC3u-s!:lYAֻzZR}]0y|CQ+K-)=xYBw~j06RA^Ip="8HѠA`Gdc%j`^)+r;o|G{^_E_:wBQ=k`,
]tlۆTAXAi[G
KM>^X8/{{8_{W9=rħ^}z[O[WM2t -窼J&Ѹ˙;mZuZ -RQKTіl_CSH젆ѥ8_F3#5nlذ.Ps{ tՃ+dk5XpgRE&NhEL$\AD-#IU,@լV[JtC+ъxVĮ3Q:a섫d%g5ZSzOEj-ʢS!K=\bQR|1IW )N]M+i9b[ -vmHkL3. -^ȴ>\2iUQV5];%RzְmQ|kFΞ%lW&{p -«OTt` -Åz<#*]\8ziZƭ.e}ڰ_46raR?fiU`1[;XA|DA'uxe\n!l@`Yᶽz:&و2Oo\K/VD|tQ" -s*ϩ0> -s*ϩ0> -s*ϩ0>xϩ0> - -s*ϩ0> -s*ϩ0t(͜ld0U:_p~qG}>Р6ԟZV)<y`'WyC0*gpqqLRIZ~ -3ɍRI
'G7ÊZi -"aeYCW5gҿfu{\
K
]鰯2Zj-͝0
>㮟 A -h[1-zڔTU*4YώS]3\UtDz3yojD wnBC: *7Ceo}<jlBf;yƖ,94@~lm52]5f6yjޤo5puK${mvp}>8!2%|;k5lxbJ&D;Hw{eKE-#&yc-1hƴ]!IXt[Z9B'9{>x5̎~>
S_EƓPŝM;Vom\z\[L)}cCfoz)6_ܼ%1߷[& .,?%9 -D
op2g~gO
u-^8wG냋냫 @{V4U53'yXchHdu5kuAAl
&<6mphG_bY9U#g2:+`E.9G6inȠPZɋSpct?=VӪep-q%2eqn -b74Im~G iS~'W`Nl(k5V}b9ќhTckLIuApFhͩZjڢϬ3[Zk+ܶG_av/GЌ@T3<QU'e__އށ:x$i -A~۩y9ƥ-5>']^Mky%VgT'OkIwg@9zg|&̵gMԝٱ{Rf|,TI,g} -a91oլM}d~sT%DԟS,:ѳm|c -D^<7xhYjn(.Xm퍵ۻ3wz<u\~oGJ"Ƌ`5'Wj\F_O<:Ec1o;{͝.Bm
xjΞ]m>{ϰ~=Ëq<|ls\e~LT
n<q(̻ɷxkWp$鶐jk⸷mRjF\ - -X<8# 6#|{ȕoSw22Wj.:_{?ϛ4gOU=ul-Qt/d}p_]I$xtWgNZ=̚;{.?2\\U/+t3&ޟ+ -ݑ+Q&tgsP+\+Y+pi4vK -*J7ulqbC 8.'6dX$`-Q5I<IcF1[ j-^qcS-/|o_w[ݟjО&LD9q,Ӧ搁㠞OmQmr^K/:FMݣvP^BM"^e^ZKtZtؔW:6~fڮ3{1L6=/X9bVtaV|SE@On84~FrnFA7mͼ>צ{ܚnmPh:"<-{1OK˨s:\SrfMygуOo
6m>u~L6o`ߺuԬm0E2k#QWq6!Z<xG,ei9J4?G$ϡ&:yʨ%`B*K"Rs%t%q)&#W2apkى{f#?#K|LZۓT98<O궚dY/2Ol'1[̬/1^sD#BL57(.%6Ds EWzo}|/bw&7_wݾ7IO'R=gҁrCkbWt9Ҽ,=w?_~9[~8bmOc{:mWOvߟ?|<yw/?ysF~vx'_x|u:Kco}o^
7i -lƙ'>r(^"2Lei73m 47#0g&>C"βSbYbȑ4i\[QdWoIn+}?u =J _Dj;b!`t6ą:V|3KL7E:o IcKঠkhkQљIsFmwVXoV=V -F,/PhT23 - "
t8-X1/t&Y3e#:\p*iנ͘IhO(A;ijo*:Zi\-zA<Zr'}]hJ&(ڢU^2@k2vy - -wӲ`rq 2wHqQKB1{PAczFN~Vr3vH݀A#͓zLLJ
GyZM*5!zA&1ghZHzQ4Dާ<Q;KV>|m!j6"ts'd~|ZUyf2Ot
=oJG7+PK:10oN0ג#m[ܯZUNLvbmvR7v^</ɇ/?22٧EiiJnc4Y3$RZ$Qőb%9X b+x93>q3̤Rtϴ#"Zސ -D-X*27`xi%r!!Rp<dϧoPa -fNz%#MӼ 8IF1F<bJ4`l))h4I'T'Hkh+Q7"1 , U3h=F<F*He2vg"E$پHJݥQMN).azH^a:0ED -L"X$~n<jkL߈ -P+<JB1$[d``X',<<ie5N0PfC7oM(/+7JGty<Nl"N$:6Q(c{ 6 -5:4}{f'( -t\!AOLwo֓z"*]-PA?iauTFV'lH婃[ -ㄎ=aN5"IkF(6DZbn.[2${"rflm)ɊJt04/2ݶB!SmRԌkZxPhmM4<{NePcRQa-Ѕ@ve&cαL]*申S/uA\,PXi n##З3QwYBr:CR>'n;$e3,+7yqgʵ6,qbR`SM1_HDn1e+mlZގ.$s - ϐIYame1tEw0ue:Yƴ^Ϛok$M2F$tݥQ\5GU,+P[T0)dit4mb6~UR -`L@hIk8* vBN a
i ]F
AQ>Fa\<Wf -AIu)Ȕ]﮶( ૮g)X߀t2
lG_pJĮvL-2(TėGC' gV+[KCixȦ7΅Եf]PoQׅEzם0`dkٗa "3@<b
]@2@.uu@@6m3`,6ٍn\oX@/ -* DyL6S:S1↳~dĨ$0 R`r# -
xx ȳ3UVV)Dc+u* -5˔T$XX
uM -]FSL#<豦[nlKIp0b(itEn4JRW73P'Y6Ք>)&-WrلK D -s#jbucs붇|xa%V[Gl@1XTá-٩Q'U9Q:Gi"k4ގ:$$Qc%-wh'QSp yDZ8(Oܼbα]w|w&`3R;gn=p]ϴL5a./M+FiDJ<nqm6䦝zY\VV`K unhrQ|f+#ݲ岦ԭd.!ͅ[u2\VvÝnt-&=h&]e0eY53Nq<ntum\Wj;u-ƮֹQ4?7=w -bI7bN)ulnm5jւ1vu{\TjZV Re*:qmkUg6>]| -0e\X#o=1-ʿ`bژYZLObHUԖnO4XU3oI{SPXToRbdUK<P\W8֬+t7^QQ 4{B1(``C{qng_W)) -bzfS7?"+,
!_}E#+qfP3 -*[lūJ@7*勫&ћv>I|z;RK+h4qZۦWD&3kM:{mk1[ -+ XFCAwTQz_W8HuEFrcPV\Q_c$XV`&XuBʊ(I` e -K+@bhApDo?<[.
_A(ĵCGcEJN(9&ʡYZlq-}M3WQ|ǙY"Ie"r#,:A".Y -&,}EXPj kEЛlj1 cQy%9L;h't>Zt:AJU}XpVF.lF Q!K?z-ږ-jljW|3!֝ds54IJd/7{A:r:@TCn";~zd'yP'bEm:qV _{P'
_͂:KwmeFқΘg3<3"W I
D? -cIR]ȴ!Nyay
3 -F
@ט `S:i -vE -XRjOihEq -U4Vv5$\x* -\സTH=nUe.ZȪh܇Ҫ\na"rUvEL L -n;zػlQPwv{HU-쿞iԳ"]JuCx[~{Qo@=
Ɇ:b#π7ugР:ՕaR~ufT]c+._wܬ"Nr7t44]twWP;4RQE&A$ǁJKe:rij#p:t#9u֩CJhþN6qQfg(Ew Pmga~w!r燎Wi`{[
<XQʥD|T `*gAڙVdgM1HPҋIfOיɥ\nD3 -ԓ#P!M, -q:bfG2fe]ǝE飽MF -6Ac8-BFZcW -ed
T"U -Uڂ@o4 2&n 4%{Co*Iu,hh9TCNپ N%4C,!L[HtrQQh\!Ylc[k,vd;u,,V F6x:mpz-ږ-¼kV״%GwG7|>YnGa5EDmH1tsyLbd(D&&9'2anadelLI?y'Z"X%є%2AVvNLJnx"wZ"0OD&,%D&`. PD&p9d/i- zLp]Y& B1Kyʄ#S(@M&D&W,KmΩoO4ݧ1f1si>v9>c -I$WK7W~7?s<C1/jTV=E˖feå;_4eع%ne؉"^=AdV=է뗾{q\b/ٌ;)Ď|rc^";"a -EkH&/61_fT Ne[:U˰#eOTayq:u -;-PWaO#yYɠ -;LGh*pDϏ*H -;;MJw;N3ʤwŎevN$0:Sʒ8\,St ,4DKs:ќs
&ϯJXO_uYlH-6o,_vJڇfN?Y1q2OJO`(zFԋ@sF]8<ZՈhq62xeT`E?CI% lcj9cI<-{BP*SlseGrv85<F?buzyt̖Wݒ'8$y}*A>Xȧ2cySV˾\,pӭg`!QRP<3Z= pLVg[`3\ƥ9À - VgxxV"H3Z%9Ax f!N\MrlqD&tՁ3e5=ĘzL\3ʃ̴a;[<WTN%e[αMk:Z(kzȵl2ƚ]26Yppc^ٺjaJ5c62>#^&+DXP\ـPR.C<ZgVns8 -;(ΤOdO\j{|@Y«5V,)4gΐk'eKuFk-?>y=%]ڼ-M/d敞qlk( .MWJU$Ut/1/Uꖫe|]_j0k^+ےmZv̶wSx!^̨E-tfCk)OfV3*5:jڜ*z97[K`<b/ uD9u Z-K9_1;{<_ -L/lKvK뙖׳&xECa'cxDET'M. ymN:Bד7/;Bt)KXvҢtQ/<jf'zuMd -55«vWIu+W[벺 -[]M -:`]jyMN}ڳyuZWm0DzxZN?⺮z]WuN<fˡj5S$ -W1I1ţj,Qf (`Bg&`B q,Ě91sJ¿ δ%qH!WqMz.YY y$E\QFNU72lLL%ɰw(j-j;:!W-(c²$+Ky.s_9Â<e暂/Z\EE/L8T
-1#)|zPB-K*hR+9g˴ʱ! c+9bqe;(98LTg<O)8E)\dćR![+IKݽN)HF=3t w\<%^\!Tůs۪ggֳ7~j
ޒA$ GlT+x|j:rpml尝/A0/i -}+m}92if3:[֡PvߡU':%q8:erשCs٩N0nȪCN|vwG&woHܝw[`yJγ`\-s˂3I>8#u+Epݘ
μ뙖׳&7trl\pΕ3(ӜUMI.ɩ4U3b -lbse.Qd5ЙvV(usntM&F2u5W[5]Fw˧n!}ZV$nU-LSgPj]5rsBqU-7_6VNisc+wn0w
띢XS}-r%SMl -0%zʰubU;܋ ]ĝ - x%d=b^Yp^!A%:Tj[G<89;,Tà:l-Tנ(|ZTg:]wVtAJ:cЖb0UX/+Wi愸}VιzX9LϚA6~̐uʯ_e/_CWLBos[Z-~fKXnr- }+bZ+dRhQosu}Wös -lVT^ewkSZ~Ysܽ>V^}SRc}~q7^٦ۋ'>K1j;:oRמ4.1;P[߱u,8oLɵsڻ.S3ɊZ?&\g|a3 ΰh3 -P9wMu` q1+H!AebɒٜBڼKP`H%@aἱX0A91F5.;̦?#ODI65uTc5 o|kNU 11yw -JP8?r_GYd5.=reiP/θ.gCl0KBWZm``AʊqS^6;ZCZx<AWek߭PrVP]Z
:VgAw:ksݬT` -&'k3`ïiEALG$c I i(!Ɔ4Ii
!ZhM. oɑ}|^DۗDrDs-<"Lb)yٞp鈘 mO-ù%F8IR -63'jdhwܐd_NvMړ\~+A]yfKvpq^';ۄ(dgUUk -WdA>鉒XހQq -Ձ]չMzl&o(ϋsufQ7;d}zFjPwە-Gydα]-(!>/58jGKJ&ȁ$D<&R>Yd<k&ي&B -ZZYmh{pbU_XwB ӎ8Fl*[fM-L%P_(?Δ -WG!sA8u_LM6Q+*脿CۨVrόOHBS8 .ⶅ8yF8kji1nﰠUZƭQ1ʾ<<)%GY|k ¦(2e}9~ͺjBz*Ш<;xGMi+1%c3kx?,ىJ[t|"B*YXZ?WbbXR?$74.Ɯ tK.`}-F$9Ĵ++1<b0ZAWiJbTj=Ǿ#i%*Ζbҧ@Rsݚq)Fk`#K1rFͪ|Y{"bδ+Eb_\b&_óKbTm)./-gIeMՖ$+Y}3+qMa_[ӱO(TI}c',G>$Z2.{ vX϶]ѻq-n-=kqZcC3ōb±7O4k1]!ִ?&m;_e~q-nxki-~Xq-)A:7ֵ? -:.4
$|1:vuzn}1VicLuXqrU(r&7J;~t_U${1LDr¡5-DŽt$r1=brLž嘛oX)W|qFqO19E%19ImeLN:FLNJ!Crq@FTt*W{yQkDPr8˱_G9r9DN`F$ ""ǧOd1$#"#3"Ǘ/59S5X\e_J<"P#$ǥѽjž|T\8"\<Dh10u'*#a/q﹀{>p~G\}*_3˧ziwN-}nHv긫g)j[n*vj)viմ@z/xm*5>mF2{`gyޖ4V۟۵xR{ۗfTln?$7/ʰZ%[i_.T-{sfSnY/ݭ -|{+Drw?Ѻ<bw+F[$ӛrw<|6?KnafS_mL5Zd8sHeP'4$ēcsD ]\ _Ak//Vfb+odլeެǏ*8m*ܵ**kPj0R5@+EUAiu7v%eZ/> k -F2iIi0y]9\9BnYwQwk -6TTl\oUH{An%`,N>AT{A&c;8)JK6tejy6ȷ -G{pُ;]0)T|Cjev
faw@9k|5BBD/VJ';Se14rn93PjkqFO¶f>iF)ql\'CggzrXI_rx*ݴzRq+nzi"wS.oV8J۹_}O Dž?A?Vf6xz+^
[=Fz?Tg%jO{)^2'SZH16Tabp56J{iU|YJj -35D~/owrv0QQ:[gOWwc$pu|SR#۞Z -N=gL<:26ġD\:jlUo.nDúEI,1\d 'YuI%vB +I8y^tshAks\>bbL
Wfy(&;;RЮ^7ƀ -86.d+`6.d+`6.d+ԸٸcBvFƅlƅlƅl00pj^N\NINu!;B|)zp]N]N]Nw![{Bޅz0{0{p]V]Vh]x?#6>q䬎;"9)"9jm;kYն\?0,
"9k>hYP"9gFX{D(\$g)EHzzZzDɡjLϥQ9,$X!Tr=@@;UrpQD䠢/w*9kR&',vf^?:9=KB(r~զPuR9|~9r&!S8f:9KiC&S:5/{}y'ާtAߍHKl<Ur~痛Fq>Z}^IO.1NH]($&.R -LR -B!9P4PHF)Q g -(Br6Ji6JTOG])dRHLG])$2NG])$O -Q -騋Q˅tthA)Rs6VLcFJ!DoLJ!MGE>_?C$d_c6_d$b]"!ĒDB% !܋,-cTH䮐R]!!gJ - !B*yVH䮐R*B*yVH䮐RC&JNJNJ$R*9%R+9%ߡ_~Z[.X,cJXpo]M<Y/˧`\$^>#@G
T-HRċPQj0dIjm\#(7`nuRzd;ZcUhHZmm[.IN"͓? zQY<nGOCA<lD?˦ó'W&P"~j|Fal-;\wp:ڇ~)d鏈3;橆nBdŊVDK]JI#Gb"3nTNޱF9ζf'R{FpgъB)gxyX=7(+ˁWv9n;_ƫm^oeVlB>M-o0 0nmc#72_\!haRC}v=ZQw -FǕ0 oxT/ -ϲZJ\"1
ф6uri~ş$R408)E$%?xA/o[,C\_4AӼ8z -wwאR\AysZX=&p:UcEN,TU!$籹ٽH'ZC2/N4s:V 4iEjg<}EkV4%[?4(#fWU^1Dq)qBH ]l7XXW#M~Ąӛe'aI4kYVVZZ])VZM%͝j%j-m"΅^-Pa_~Y P_fe}BNgYE*R)nV5l>3g뮠a_D`qHY$Wf%e7+/|Vvw86}`AGkܺ{?wQDҲjjWCBJ -uH40".b;ZnHVN9Eq_n.IXT<l- /VadIP]|p{g=1 -T]{8P}%BOկݾ"Z!<ک93A3U:-]up־lmKqE~N#6Uk@C -lڼI.μ,H|Vk#Trȅ+MjZșD}qK*̥ƺ݊Ȃ6N}հyٍՙgg³oKwY):$qɋ=LR~Wn[h[Sq&ȤMk\?JvՃ;[xqlJikcvU{_^c^wA#;Yutb>{aOZMOǯ|YP4=gh3GX\kY#KmL7k^Y9#7嫴2hoJ -kFKSI}V'DpP":&tTZv>7is8=g_q&KZ^9uzhGvs]1ӯ`=\7V
GodՅb - 辤5_$
mj~\R0@^ڽ7zjQB;=yMEIxE2i䍮eڽV(kaMŃ{z3m(L8wnm'Iѻ!M7 Ľ Ls˜b[22o^v@|Wlq<1]fc*u,ێ2Möؼۻsg3m )2([I*Uo?n8 d&O֕H6Z:p9fDӆ2Rz-6+!sz\գƍecjXț]Ib<+.P5a{n7R#}BDfMHRSW=脒?]b$? -{Nc/ZO{rQ[?r:z\R{ߗ*nDЙIG
ly6
z1Gljm1~t>FHW99
u,j3=e?[2;jbռG`ыo:UK|wWι1kPU>мͅt^Ø3ԈyNͻNb6T;bE1]rLU{<&_sCSxc -[<&z=U\耖c_3h媾0L_נֳ&GF딯ynnq_ -VV&D'XїFqs7T?X} -YM7ZIiAvUg1_^J}RCoy1F<;1\lm}#QBQro3SS}sbK@*b
]*G*
z_eH]Fblet-"+m?bo/%6W`|Y}'v~O~ݜW,*BYr05GVlDUBEU8_۵iYLGеW3T`rrMUos;r~Ҧ[;w0hm=2@WbD)Vq+#`,w1q蟕;Ӛ~~GkNޮw5CG?5O2bRGܪo̓'`}EÈ5bo93>C?x|2$oZǷ1 -S0Hzǰ"ťūo#͛owްE>Q3=ɜc"a;9#{ϚɕzA$^?(>MvL?LckcnmUfJhN5wqQ(u|ҩR楴oEsL&} -]<B_7]LQ[dMgWδ.pQy"ʢ -NX,zL1$BH+|[SȽ;-oF -.NB|p渚âk3 U-|r6q`;Kŷ ->u__Zh[9cJWoXY(Rz#ҧRVie(\O=BBA\hs0<a%kGY8T -W]6A0(yݶ}%xݽĄhfX$vɎZ/ |6,g -(]a `
!{Vo1܌ɒڍR-k:H휶nƣɤ㺯Ѱ3=V| {:.r5fKMY -6h<uh6NQҨ%~0NQJ\ -E-OiĒzYO__Xw?BOFk^OOu_ihݮ{{|h/,lݘ$mJ{;/v&h6e.مoݨy5M{ 뿗K:~e4mR@\K}W NH1J 8vd:U`LTGR,Vp$e
̥i+
Ys5(#thqOū*UV -|b3hi~:%:rZ9V)Q[1q_V,2eBbRzۺaz"a*e2jRy%s16jU幩ʓr1]hYtݿKo#,%7Vś[Lb6R7bkgR7 -szaљ{1JM՜Nz%gB/̑Q-V/S%0y7LO5/ӣ\sH&*1wdZ6
տ`QjGPH='^UKw+ЅEiIYg6V)<ޑPO esDdz#y,I4{(jRAj?f -oȘbl+fjnVr"t1<47RUSŦF7kb7vB;*3ZdﻷYA,QjP֍m!|zGLWsA%?Y&zz(!=U'${*5;JY4AgapKp ,̢zɰvdWê.5rmgT:zó&dH_ȢQP;칫PS -,-ZMQ7V\n6#{i]C*# *{۪QQO}fnXN㰓(%,l/D!pA)6cKMŻR)ҢBP}h{eөVnek:v~ȼ3s^,:·0v*j\-`{Uk )e6IJxE7U>БDL9$7PqyOij[T=c*fA.})FY4s2?P>%߶<(jrF6d)5&PE24@Qu^Z8K@x>)1,1d`;;*U'!lbv3jCLl*7pZ~zcշf/<F!0n!P+`&oDBsG'E9:eX%qNiIHI&HdTn*qvV~wpQ }r _ӡwU e(za谲<^.rciq[/TP -qia{_Ɩ=ZI(q3%؏|OaR$D56,Uq!$e[*<|t0>&V[YA|f<Wq6J٘[촢ds?vK_ź!OUa3.04:?y֍W(]z6ˇplC0ijFz5@PϮ-d -TH0
ml$ϭ+S^11)7 9BxFcxc.Sb}#zX]g8DP6z_G]ꐗfe1/E|A&ONk!smF -_]+&i1OtH7}V|+[CsgˣYsݰG_D͗!{lV&$gSp - -ST0ovdmF3gb065)X -X|OA5Wdu8N/%8nm*}uIHIY{}'9a]zGKӈ0 -8]Fٌ/-$.?QuI*eps_Vq-qJ,"oxμwryZu1-{7e
7c
-~Y8d0/ML4 -Qru
0#F:.5@C}S{_mE< - -2(>;ܰ4حHhZYx
ê7A7-=jMyBӎJB /)xAeEPYa~M,6F(beGk+&.R(C~<g -ruR>MA) K"N׆xK9[6xz4}]=>i>$-}*UEM?Nͤ?-K䨺mo ?(UHʹ0Y|Xr)cDZeSv~;r3Z]dQI Ԍxgsge%fߩr]C!f -9LMs4y+-ἏvBl,J7MJxP#fS9
d8[E @66D*7N[T2}d,bd50N#GR~%q,`3jnk^%cHe -҆д lO(N'=R-nʢ/675)YW2,{!FYY=HQ\N5%X]3bsHmYl?YQumh\h!DLV d$)JXGeC)iqQp\bU/!8^b}.V҄o&E* -eOm7UkGjuQŰ(j,K/MЬ{U}*0%Z;5~rN<I袎3chK5.u(4jPۘ rdܔx@XCV$P]Q*ټ6uiփ&*x!DQD9sϸi2˫dO{qs[,̈́Eyۢ_>$<k\RRU\oĢ7Tj)݅WKc3c{^bV$(l+jXݪrm<L}U<LRdmadyXEVx4ɂnᦖ%A:^61=+BpmdYWbH -U̱XR92˷5H|AZLXEW[M~/A5A*3!cDގ@jX~[EvUst%Sd,osGg`5E}<j?Kz!S<bdJ̥4+QSt}H$22KV`3,1+{^7[o)`tΜ1f2P]C"Gm$e_ĨؔkMpU66EE#9m#G.qYsnfikbh\l~DtIHhn9+X"X*2 \q(t(eccnݹ7+R1)uڋU"\y),quYd.Cjc $*7i_@BB[SC>WUTWA[c| -0釯dS9EMzSyCY-}l̛rqlӿYS~kų6\X:|U5A~EY(N/C}:kYO{rDT؊M9L<zJ/1>\cmWVUDL>/q1/x zzZlQ9MF:F%TnN+ j3K=83:rUHm^vK`oc,JO$.rؘ*M
mwRC^BoWgk2a&Vh.*1q -(ݯ6qRfrB z!,'otn.Fo:kpPeNLU@ՌZyY
jjHaSU(rYwrQeGFܚͥЙ_𪥚G*ݥ}>zhUXa.vS0F0
W2SrʫO -DkuJڬTEOWTs,)t;e;dI+~g$VDXL}.Ր C!Фm{ɲ5&mk}z ǁ2٩JgY{PN }mO"ղY5 @
+.cb|g\M3} +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
125 0 obj
<</Intent 133 0 R/Name(Layer 1)/Type/OCG/Usage 134 0 R>>
endobj
133 0 obj
[/View/Design]
endobj
134 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 17.1)/Subtype/Artwork>>>>
endobj
129 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
128 0 obj
<</LastModified(D:20141003133307-04'00')/Private 135 0 R>>
endobj
135 0 obj
<</AIMetaData 136 0 R/AIPrivateData1 137 0 R/AIPrivateData2 138 0 R/AIPrivateData3 139 0 R/AIPrivateData4 140 0 R/ContainerVersion 11/CreatorVersion 17/NumBlock 4/RoundtripStreamType 1/RoundtripVersion 16>>
endobj
136 0 obj
<</Length 903>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 16.0
%%AI8_CreatorVersion: 17.1.0
%%For: (Roman Nurik) ()
%%Title: (actionbar_action_icons.ai)
%%CreationDate: 10/3/14 1:33 PM
%%Canvassize: 16383
%%BoundingBox: 6 -26 26 -6
%%HiResBoundingBox: 6 -26 26 -6
%%DocumentProcessColors:
%AI5_FileFormat 12.0
%AI12_BuildNumber: 273
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 -32 32 0
%AI3_TemplateBox: 16.5 -16.5 16.5 -16.5
%AI3_TileBox: -272 -372 304 362
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -27 12 16 1448 1049 18 0 0 -4 37 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-290 -412
%AI7_GridSettings: 4 4 4 4 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
137 0 obj
<</Length 2129>>stream
+%%BoundingBox: 6 -26 26 -6
%%HiResBoundingBox: 6 -26 26 -6
%AI7_Thumbnail: 128 128 8
%%BeginData: 2006 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
%524C45FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFFFFFFFF
%%EndData
endstream
endobj
138 0 obj
<</Length 65536>>stream
+%AI12_CompressedDataxn$ɕ&?_4ګEK*Tj4 **tVf!+K=ڧyD"5ԤH];{oMxwǟo/ MO7m1{|<?÷7'?y'o?^}7ojOto&<oHv~x>oͫaF˻Û{鋏}ûyG/_w&x/zw_oGo9Lk|
/+_}DOΗF߿-4vw~|v*?$KѲ+[=i>اM{?ϟo~L㧯dS{W>h`"3_߽wBWno> +}x'D=foL{K{[^[# +56I&+zʿ/zADK-ү?tY|I\}/-C6&o~=o1c꿧77B;y5߾Gݯ//@~sJ_Gޘ|}C~~zowr6G$jӇ?Б*{Ừ[rͿ~ᮿxwㆯ{O[wNi|G[VOx?nv-k7>n?yzg|x2AOO"Wͽo߽{ͥ\?I9û[Suۏyw՟tws-+{Oooۻ{OoM{~+ lwwx;k"5q?PH:B|iWBko~qR%w=MӘ&!'70uiwOnn>IOIĄIN~Z'(t1x4fboqow}OZ.ˢnԒZ mjohv.v=]
˻q7vw}O~oaܟ0pGm8$ -s=wgnY-z=}mѸimx~܍qqcIH||ۼ9Oy9iBWKj}iՎ֨#=bzjV
;D2NyiZq:as<̻8KZ2.,e#Mz۸?r9?%CPųe&#rm-fi=lO \D@[Ds4O[fm@O'ô4#xyFoYwH6RѸ߅ێ۞oG;r;',8܇i09Nt/q4iGZ@#KcӒiOSzL'|^/qhD-tvG:a-qdnA['|S;|vmF4-lL-J
[n6#7O&o5ѻuzԤ瞟Ed|&r>QODZ~w/H "i"XLc$mD;E-[
2-f=O)&Q=#R9;=- =>B鎉&;>xk檷~VAN۞?OGk]*Y9ZF//i~r:(㐞lgd98NϩaE0 amjp\7P;Z'fɺza8[[&{ޅ؍/yjᰑǎw7NNzpNr dTރK>QhMFmY[5ܻ~bXR;֭[_8FwSB13yP:;xEfSF +$XADzv?Ag(٨n)X#&.6ȸDGhr5s@<玖J:-Ӟ$3bZ5Pw `-=mOG 2,kN!P֬`^ᬞHkTPkKo?:ƶzF"[[[Cc\&kTtI(iG/3+/@#tVC[Q?O|:nXY
:6;v4BK;,T9, +&JJڶUҺJGTCSYoq9Q/m$ X} yЯKzz/ƍ#Jڑ ɨiN
XO"d!ikIަ;y%"̍"(#C_c76s|:ܐ6P$!Db(]$9MpؑfE%O +E{Z,LKĀe<3jF4!J:{uvt" +h +${vzdaQXbT"/-QӗWozzuNQ#@xQV`(aD!gX{E{AMB !N$\z-(9b
WalCWɼ-F^|wac"S0v8XxL^xGQLVkU*Ӝ4y;,اeoC3-k_\Ƙ>UnVӬmVlfXT4sFybx{J"J\25YLN7SBv- ֚PkKCf +0Ӏ +p`f611j'UW*ya:h-xXGfO_wX!McTdR5Pl.KxLQ $STL1]erAU^t֊, +o2&0&b8:Uf"^L^I[?Y9[/Y'Z-`o6RN{R
߽0lY_X'cx/VpQmvkeL?O]^lqڹPk`vuQz[]7Y3Y/YIWWVǕLM\"S'GG7#ѷyJ%EH{f$^3e#Y>D<`^h]o܁:q3b "A-EFgs<ZQZ9ѵ߀B-pr ++YrͬAO3kF:V<;*ջVU3Kʼ ++F5 +W +0{Q;8prgzw![*Vuav* ֝ʞ']t@BVYۤXPT"bՆ.5[3oh=6i_m]>V>/ⵟx=!c?^M5:xv~ V~YEl-5Qu%aVS8jx?unآD +cG'
P"H[xcDio' +$1
iB5&njUT;\·HS"q_p5gjkV34cg42d +wƵbKv&ʯ¼0 +i>Uwm
" T1-ľ/fɷy_v]Ř[Bju`IK2SM
gP#J}:̓*Ɔ-O'fBJDIQc{Ij:'&%p9 +ۺ +;::A%ۺщDa~n]EMZti>)X78o84"{աu$ru\Sa3V
uM?ugƧ-tx +7h +9*/2A@H(,U.䝺r3 JSvgm{-4ƍ;=m]EwǴoCTSNHp`DTϧxX"u +!R #Fi"p.uZ߮E}gmwmn]kӺKZ;,'s. +PW%2\VX厕PmqiE{\kkmrKF#9]BzөNȼv$_N%Y5jb/nL:u0n?谎nU%,KcH 8b0?[-z/yvwRbPm+EfVnO狐_ܿ_ܿ_ܿ_ܿ_ܿqߖE\ʡ_;|oa;(%ͥ6Qj$Oi#ld65m͚Y<M@$_\1)>xEcqON*U{ɟ܍|+bK8VX0$~M-"'vC;j%#Q6Y}{Ӽ)$7l-kZF)aqXz|Kn)$4E}'}(}YyKMoS';ফ\v47IجLb~V!yXͽ>8O( +-j֬%$`,ihd6ルZsv5]/W]UK^
gy-a1w:뒵d%(:{
w +9iDQL*kĿho|ssXk@́ӦP&>Ϛ6S7DH$}ESbjSZ;nXd|j:k[Κ0ok&wyjNM^W)?OM-jj;ȊƗ6[[ֳCTW)8z82^*UHZg7sX${7Ehf2<K{-0j&'aiJɇ KuU$#s" ;G@c>t_f(Q XȖ<',3+:֪/ckhZPCu?}f_d.3baCN?,I7m݃*{\CҰ5Y(ACkLZhvہ*-`p%4!$&5If$ԤZ
gNuԓO-O^@yrUG 1o]07EY96NC%n蔧:ٳ&2%΅CFqr:j]SxthnۆpѲӐef__Fo$7ڨނt|XJQKMi +ؚ"x|:OJQSrpfq% ݟr9r[QB1b+BGHbXLlUV.ӕ&ռO)b7A;%&ctd7!uOsZdt<;cct5U.9|y(b.E\[00ޕX&#,* +H*~ (!u8:<PHQnDƷ. +8o M:iqJ:qнWAcCEv*xn/
HilY274%AX8kEWzPAra$j=OAqFpwvW#DTxF)e"V$i3ZgD糸LǙ5II7:sV<C_OEZ1@h|ĸ,"JxvjFLjTÕ6w
'cX՟gSRݖKªfq6Kn6]s4>y'ML2)EE&H-W9-5Nnjy㳧=j9~0feIOC9 {&>jl.%[UV֣X嫭0CSD#Jz&G="Z-\A&_wuX PMA;Uie)B-toVHٴZ50'\.lglj4sJbХ>Bg g_9,ġ!>g:NRc +Cu +ugUǞ9paec`ʞ-zrR|4.%K./ \^$pyI%K./ \%K./ \^$pyI%K͔lK +.K?rkm*kUjhzNVf +i!TAΎRƗ3 +.UhUUeuHoMmVu%.iEG +"sU~0x==jlA\fy<ʖ,U@~juijMj5yҞJk5iUp~kͫ]\ ^:
]>imoVS3fst}^n7S~ęK),h +VsOi:p=:#Vy&YhBPәWků_),=~Sp? +*b._qW +UZ־u.Ā>iukutq +sGhSV%e\*Ͱ [tJ-^d-9F'*Vj=kY\OT8P-QĢ%Hقb'+=I) +gE^}YgG|_]]*[:^8+Ki]D`\kHeU>{AV!gȋaA%p7k>BlUsuTsu{UXUn+M39]\tAiO.55GlP@+$>muMn0_PHָrI,.ႋ]ǵynalЃZE.kWݩ.cGh +ݣޫ6E(ݳJ?>VYϲ'C~$P{,ɭ:,/|<'ڄ"Hv\V;I}Uhp-|ʁϥzgOW/UUQ;mz0szR0ͩemvOӚ fj;ϵ{wՄvgۺn8}n>#/a#{k?ET@'27N>/ZVEk̀jTطgۄ0AX9ܳhmϮ +e<Z57v--iMh(a6jVm!Q~k=K%r݆+$y&&:uXNEn9_͉}26PIO_/ّ٦' +RZ^q4;DWKKmC\yVmG~ut`ł[>t^}Lg1 +۟znׄL%_y4yToM05G;Mgþ7 ݯ.??zZ@sK%>'YgO3]*q9hh0M-<7< +&}F5>ʏ(wa98C@'@'a>qH7keq>N-IW|"y[-~}^bux纕kuP`}
pێ-u'}B>[RcQeY#ON褡Ҋ*%鼜zU[6:A6KÓZXXuŖ^[%b,7cZsuD/82X2Ud_`zNww\@=_1p&&L.~~^0nTY_UE+XlRU_
iJI9judo,p-✹NIb9e3{a0EE,i|QjA$Q]kr%Ō,}JRR9RфkHz^kz<7m-(u_yI/yb![)}Ξ",n#m?V٫)SCqR)"=3%h,x39_?nvnKw^U{Wk2@l5oskWd!O9tURΣqIJU<=U/r]]m爾aU,5ʀ^!NkW!p]+b%u}q++{89<?USUkI-q<%qUFWܢuͻ6RYȩ?7U!;e!*d]Yzt-PB7r74geU|k]ݬ$Q9ۛ[ɡ )UʶEz;:UnVw¶uO]86+aF~^u~찖Zy־f
*"(T!UQEV&WmTPETY9yaNsnfpϩXktZV$2u;PJEǗQ!GQji.&dA2prXl9bRՀ_GX'*s#{%
Q9.W{If/N9Ҥ%"0<3ѳ8S`& kmy%>U-.Շ_||zU)w_}D>}|OZûܑg?mBo2LB&N3f~w__r|-@=|KWϞ
.^l>ͧ~UlûOx}_H9{^yO7HokqbgQqK/\7~HYo;;À)/7 ?ט7anP!RGmn& $P3]e|eF-z8͞?7讙&'HSSOgQ7Ü0-C?m~Ec`P"a<_, :3
,j
ɃteH7DFnY*C/>n2J@R_O@ +B1Ote>Q +z3}yf\I=@_GbZh-6HA/|9}2ֈXG"BƑ +62Ўh+'Ot/1
Z@.`nRy 2ş&A°q[AVF7߂!AgI]&k4`H!{Gtd*u!FA1%hfH)d畝Fq +#1V_gMi#+N!']Q7MI@$DHVnfyUc]za1(`q^4ѧ/?26%iin;c O )sHZ)";I2D;;6Bl ;$O܌(3)A:gqđpmoH^,fY~Ⱥ᳑KSF'0AT7"ɜN6Dl!="jQu! +pVwP>Ќ8$;:!5Ge +:"M҅1j+Sthb^{Ig 4F3>F*He O2wgWx/R͉"%piV䐓@XpVNFEDCHL9}lbFTzY)'"(
R>-Og1K/q:g +<3M@ ϒFXX8ŏZL!W19)}b>]/;(OO)3W~>p#mǀ-^f2.E]3j3{b"mIR{
Y~Nh6}{yaGnhp<52:CqBYh<@)C}%M +
/xx ȳ3UV)DcabV(\ܯQ̾ܧ +C̓k:չV8=N)2_LW侲LM/FpuS:
oSMX,hlr%Mh$.I0*rTLռadPIpUA2vx)84U3kx +5Q>?FQs9+-ȣODF, +iКԨN~m(N
5`oCZv쨱iR|è)8c_bwN'^sX;Ssa~;t0c
uӀ3f8.Wj&_0` +ܦnpm#TLuU%7ƸP6FxrNϬ?.+Q-%Ʉ:74F>tˑnrY
`DV2\ݐr.+bn|Bݞnv4}
2,A]Iqci̸It7ZJyrXnu5McWܨlf]t[wIub67k5xḳ`c*5HLEz)<8
KVkunApR2HCDxg_Y0M\&a1mL,-CSc'Rc$.RJO',7
a`Ae*,*SVJej
|7|WF|1
*mpعוUsJ_{hThFd2+̄(L +/QV}g٨&4x]B)ϳ+Om\~g!67FgV!߶WE!fA5Yǯޘ.W1N{}Kߴ`1zt^Z㛗pq3! +SwN6%+.5*C|F|!WYo6"qY/ +f %87@؊4 +Q*;v,ν-.PĪw!4Q|0ȨvLRWBWQ+>Ȯ>y[#X~$^upyD}:.n"݉]o]c}wԐ; 9VKZ)S֔Dq.DmZag|RB*WgY6Y31[%f+܇Vc1Ρį% )@B@<wM)+?ܤ;tcy 2ʁ)(ڦz6Y/VF9ud+]2zbh^ꛋR9(`E"X>d"5} +b~#FخrFam r|O~d"0j@[5:C'3Yt&q8M֘ +A'O asq* +":٫ЯMU +wN.dѯiJ<ك/A,LG\5u@(>;IJKpCOA$,Fo|JX;lte_,-bA4Z2Qhѷ{X|.fD=H/)xo j"'Ƀ*[1< D'yJcAiqS +4"AX?FX|64Sxf& +b#ܫfzcCY̽^5g/h|?=XgZ +1iļeL5i&ZRIhJYEeWL
[0gdK_Ou3+z$s/~ƞf'$9*?&$@D?j33=dJllIkefdRLA +;`bgCMбs+Nvfgg +å6aa{vu +宮jȷ"q5<D/WrMwy<ޥ-W7̓M~4.#Z +K</Mr<%A5Ô&*T.jYÕ7aeqIbq]+q2Gq=ӨlV\nұi[n]ʕ:Ljq )RФq@0WgU!eӼl:Q)3fK; +~SV`v5
*nQ+'gOh0Vc
퀘o~͚#$GNמIC5OOwkPC#]4jdMr4P.G<ANP:ڐSa:Td܆v;ޑac7gevbXt~!vw"w~(z0/\.4.:7A̐fn(r$.]ErD%dr\妙F43pf)2ZY,FEf4R+Tjr!mXEUKW#=̥b\,kx8Dgq}&E76ڃ]p!nlgRcOz,ZFn;uͫaXsMsoL94ndnLE2ZզvւNq|4d&<=pg=0|2c +%SXe-ϡu֙w),詬5MSnթRT~V/BV +mYbXgm*Y| gpU2"0 gCA*3=EUfx3~'ؔ՟7SjP5y_ʄ%ŤsdYs^1<.^%8; u202RoHKJMlbeOʤ9R8,JY ˷Ye-eKXzu40,[B'㛵J:[o]hGmy;?> ~} +WyలJT0ϫ)
sPaz@lXA8"GVjSuf'(Y:AeD( +e.,C!6uF2e(Yg(^MQ>Sw7j}6|hfO@9gJh:_"DIpGQ\UarUq&}@\Upcj(ɪ`? +ObɪFxU1jaXU0DKVGIhɪPz*'-YɪFGfɪ pZdU +i#,($z*HARUfz*ܗJW.4XwOKWř +^2'#p-<#IhdU9b~?M|A +OUު\&(W9g_ܯŨ" tBKe\]al0g*ƩGh$Q*BVj-(XI61jUnC\NJ[ s$pprBHa^.")WG"vRwGIjSKC4y +ZνU-䔊^ Qo+ E{MqR}5s/+.el3:o9dӊ<rO
ՊADZ$ڬJxpg5*#j"pkYPNR<ZsRne39K/E)EGRkyijW}.$qt_SUdЯ0JQWE"JΖkz_~~fjcZ>~zOۚ>^&̫Z@^YYF@Uj}Kx5vX[b^lC+lW/ڋ/E{#} zּNps$K=a;R&^بE)rlB)OlU6*ju*z)gsM`4b/ڋL7DQ;z Z-d;_?Ai;4w +L/lˁ7ˆ˕ᗫ&x5sy#cxutETMz. y]F>Bגo7/9Bw)7Ңwa-<Yj$T;
]_d'^8#-o[q_U._c 𬂎IէĎ,*gUz-gܿ)~3Nu*{תFCbg\#!A`*u( +R& V*LB +cOJP0`L,T)0pUc[6U7gM *<oqH +$U# K"JU{hS;V })s^c}I#wpn 4L$2+-pb0I#}8FɦH:G~ +iw:{H`=f2E0$ڡ, C2ƅΟ4韹1A
0f8 +yiE(l
NX"Jܥ6W>&#tsx&JBm&)&~W͂%5qLL$0w4>L2!6!&&N?Oɢ *=&8R.`'Dp!U^q)'e&ԧB(SV/iWps>+lgO`\df*IAEQS]hSSމ?Et3-(a$+Ki)L=MJ0Q20+I͵-.`D"S0ϤE!DGMQ
3)=r_F̕U2"lRCxvLeؐVqYҕ LTg<Ϋ) ?pSHLK8C + ԷFԗzz
Hc0re +bi@" 9xIX)|I +h8,ce
BPj($a;߂5[a@W@9;!rdΙatӏC~2mCN&~uJ0mCqu䐯S/*SCC`:]U:;Lߐt ;@,WsAܲLҭHJ0\7f8cv3rf fcqyM1\&?ܬsJ-TWUqSEnrj'7M|X1s\scK~nTk$D7$Yt&mJ«]ua#e7CL]̕VMb[Hq-436[nU1Ӯ)n +^|Cn)ZQ%s(8UrFdpA3jy``:^@RፉeVLqx*)R2إ<7)`p[RU
*aQb*kP/UT5+WYu}Kȗ+1#r)w@a W'xZgvhFE]($!QbZr<puO+UmP~_"_(Z֭fVQhn*wVLe2-I]M>5|uB&{E`%A ,{AB>|ko^v0$ +]eJΚ{!WD8@EmYHQ$·4Mb.g<JB'@AC@lTy_W| +ٛj30fpRagvZ4{`X[G&'(j,Q3 +eQ+mڨXGUuѦ9z840,^q0SݕelA6.8߰kSy}"2BW̙}-V Ή֬#8-7B8w8lb0sURqvzkOY:GX|_.hcY +Òz/a9%g'\fڃ%McVe`vՆ<:|p&\9 +x7-vYa$7\5TR%%QXV_G"$+5p*3 +X
<Tg +\Tfa +wwUO8N5KVqj"EUbf-HVZ;"H5.v PL̆kU(5
=gj^_H7DxE.5J]}vjЌK=vHD8O|ȍx[ߑbX`)v;)P8aaWi+<i2q5x:m3mPs|ɓ_m
ߣ~d0Qc| +"-J "qQ=Wl
JV +%%gws34]|V;sh_f9,+454͘VԖ5BLB +{N +%!o'Rn$mEqodIxVa 1d4%ɭQݾ,qXˣY,aT9hqn +_l(f]Q=شJR|Y,^wĻi.q,lv%.^Q{-?,"o$,zV+Dz?U},0eNj沬J̍2'˲>X[_ѾFk2'*5)r 0iMfY*ŚK5 _pS?ʴ&sEm2SXX9n(0E]PcƢ\f|ӢZ=2g5$2ׯt.Eq/Ȝڥ2M2'(`_O$=~({Y[{ZoygG=.
¢Zu(ꐶcR_>3{,|y/,'$?|Q>>^;/{MV˓"oiN_vd#[yMnDύ55Q_ 4ɖqMf]7)CAkr+Ě]Uk7Ěοk2-i5 }MVVqaeL-0{kڶ.өiW7\e5H%[\eqX:Q\^V3,|p_ykrVGeY-27,CJWM,, YӲLF,A&b.D\qXe* Ī~*g&vS$]R1vSZTݤ"axfMu2""GdMMRiuP^A7eF
k~t#sl^A7 fЍqI&n|CJ$nB>n|/;imt3MeUDn:N5n\aQZ^#~o8 n_']Yhۗx=|{BoN5Vʹy]ykkNWw7,b +Y~u=mfUJiJAuU +9֕4UW{xyڻ`]A;0ʦwTʰwwZvȽi +co+hb[J +twbF#7ҭc-6@UyEyNW.W2Iۼc/)n +M?,w;.ݽbPL557CHR4KIkx\'4tfSsD[\.&8p,RVb.)oޥ@eq̪uc*4jN[YVSW^U
F
M9HƠ~:@=RVt4jbmwg7%>}%h;^Bg%RZPYJuAY\^a^zUbx-諟4]H9b`0]~f3WPWAP\r{ 5\ig[XOF>8xaF'IQ!\mo}a0?Σ66:ҏ7|Ae1G}Eܝ{xH3E`"vʴ@<RBWdI_M@+H}JKlC߉X/`19RSyg~\IqBߤ_dMWa=B;J"Zϱ(e%J)S+x?`R0RZwϵV%6*bPv%y%HDTlTrĹ8mBXE)w9uE:#`3l`9`3au:!Cv +IAIsTʎx$%d7\˚Y$]GlQ۽SpK>\ +[J
? 8z(~x7,ʙ6sqJh(؉& +uhb +-'"6Ҁ9vvTΘ8sh04Z1u#[)J3ŋDC%GPR:tF~mz٫G/V;H枢1<qǐn iy伈Sb;{K9.ʙr.V˯%Mj
'f*Bbozź[}QW,: OؠXҼadXPռ!xR@/^Xa\ +֬+>aܙCQf! +7=(uǧ1L.[;zl܌;=a7pj1u<to'Aꊓ3v^atU!\I8:R^IGm̳Uwyo5 gq>9OW}nDy6{cU<x?R携$L&`L1[¬D#a-:oݤدu=xb0sf_~д]Ŷk?'UXU*C U)v]YhW"PWJHZPERRc0fk,#IkW]&dk|m/H+&a1Zp&f[>; V@nj@|k%f4FY8"Wiyok{Stm@v
o,(+H4UG !N7xZKg@7;6[ZvLp5A>:KXsѯϱvL1yQv>vޮ=@(ux=;q;B=07V&_ak~{u7((+G.\CbWrX͜ew83+ +sgHqz72PF'%(2f3_ڌjL͙$Cӌ!ݜ2웳WI.9f9ˌHOjsvNnj(D=ct>b$LsT@.k2L-2釾FbZr3Ks&<rqt2ǒ.Cb&"s623ݞH%g فTw2uX&-Sat=6=d&<|a{ݳͬ +:GoEkAGxBķpQT=t4;_,E mqv*@WoWПVw~MLOb'1("A91&}XA+|<jG߉;~i*'{!?sQ i-CuV,bzC"<dnOހ+S՟&3Ebs`gZ\ 2m%b3cQJ[K A
m1rGK2}eKye[9|{n7,'愑?'|F9L2'|9ȋO1s{V[jEDx +w&C0X7qk;OVM7j:?+0m2v/pFTkkGr;8{PE\L7G?ESq<UbPA~N+-y.tbўS pLq7ݪ3Xqvg[3PY)J'myӢ'x"?*G9r 瀝~e9d*o[<[3"Pۇ8!>Amj/`DPVui#ԅmPz0a]&'U(jvP^t:laphyn^-eÛS<ap7v+ؙ;}F2ŶU*#<<IWry
^ŗ)ʆi)q檺4Dkvجyvv(u%I:N>?t}YWN|e"[|wO|qډ#3x/U|ddZϺ_̫EӅ蜍Į
Q{_WL2V(!nYGon\RUO5/N8 k*ƈFGsMr|~UPM*mzUi}K˲dE~PGҭI4Bw< {42-knTL»D/piO4j\RWVlv؊P]^0R@%u*a7 abb3ϧՉ̩~תQڊUr
+yƜk}tBuPV)KBşjM߲&dMZj&lb=aQ3{q:#J^":&>[u^V«P{ϯ֒^IuOD7IRwa;K3
nUe֭DEq_nrX&lBD^:Vcmf +{ vwS|%~!DDurLBCWel#'!S\V-&C:-T MR}Z 85Aan}2*4^9 u>b嘷+v;MmTt jdRQnA. /ay)¼hϩ#y=|;I1OsySͦ͛Lb~s@>>:h3rȅD)cȭZp)J"ksEć^Rn\d,
D~PjͿL3q-nGt`5ts+fobaȕ{xH^Y?I͢Aشƅíި^wǑm6Lߙּ6fW5rb#4ZW[F쌴|gQӉ{<j5=MtfiW? qFa-Ә6kY̡df
cw6|Vfm +m[iSURr
|wi_4gueq@Y+hWlfIGuqGskИ;yc+Υ 7hĽqSwoCʩ㘝bo<_3NM_
c}R\]'V!N?bK/*ةKp\+hҮXH_2iM>^r'_t}Ik9|I*;]!Z<LzyW"䶦E秗v/4"7GZz|NO!o҃,^ѽL=y+v'J;{|.>2ۦnn7N[wI'K<d8cm,/6<Y62g ؖF̛ +5[$.ϠhJ3QsGE*df-;:6oGhL<vL>JFV)NԦ(o})zueb1$YlqNp].Y꫰2*#Þf^o.VLbڸúxQ-WWΠ7I,Gq`\?lfU=bab!jmGQ:qOO@1=hy1bz^ +8.vW:͵{\*n(L$T#:Qy6kuzT0Gljm1~PqX (>1響]#4%QxF=Bexw$zѕ-^?d t
6X`eYhīNyǙĘ5(*qjWB}i:Ћ$bxQ35Q1ϩyP̆3:Kn}VGBc<>;7S 12ZօT~AhAlg
?}XݿXm592Z|ͣr۴x 7WPթZe0ʠc5NG_jP!`a05}`p ڼ_%bi_ksTLsKxLTJ2#+*ƺ[RtҰlH+JET*|Rͪ;Fz5\/)CDJҐPKыWeV={ț*{(T,5ƨ7g@2rtM! +߂1gqiTFNڝ=}.BuЗZE?_&h",ʽ*-k=4Dh;vYM|n[tZcGOtcNI{7UG(UMP69 +22@!pad|8F?.b2}gZ"ү?0ӯhMqF|!'IFL?[QyDq1yF-urgozA2ޗQM6Ft:̜۟$2HF&B9'e5N[Fms +nΒҌ|䜒3<=d;Wc<(7ϕU|P5,CJ!\3Hkkd쉆JaZØk~5_<I3" tk6Oyf7)Au+sKk9E{yϚ{u1scYfm@=Ֆjf3I^zƙK߹ G;Ӊg1LMNN}0,g2:!2iLN$ӆ%Dn|2;m2/ۨF+n,йi\u2=mqGxn"3>53՞[Ҟ]kOۏ[M/6->O1 +f7ݔY pi{7q.1Fc_{0Ś\Db +WP b +4KHg<X 'ޮ m1ΑERJ"qGF߈6FQ+CO,3D՟w|叺ߣ-m:~H=vU֣ԥ1^TZ=zDûEa,ڭo0d'i[!/
ָ<_ecK* +ܷ@iܴ:D.'D?)
}}kcVVՍ,aSP~G6q~#S#U}M>^ݷT&902#EH~lȏ%k֯اq&_Brl~x
%3X.2Ma>]zPULuݢ.g=~ߏcV8 +ǵ>3V+UVa]JgF,,`7)*Lεt,W.Z),C@^]0_&ڡowfPKftYfUQ4V${TE@bv0>dFs0#vPq?nLՅl+CYEy<'QIAފC]I}aW6<¦b)Y]#w-(#"/a9;2F80U(NNmQn<,D߉Т$Mio|·LY+ǭMѠq8mU]]_G% !)bx~3+D +X +I4kص+zZ\=K\J?[ȫ<Ņq[~
vZZ$K`Cοg~_ 澛2 6,[xA_~\.EY?(NqKP2F; Dt.3ZټJa$~l]S?- 6Uy}}lmQba5~a|U|~_Vp5n귢-D7ltO፵yaQ֟k<19wr?h2|DD.MZTS5$m?nẢ!q͢qk i;GDyR}0̋:y/rx_=ߵxFw2~_~'7__}__0QMS۾7yOO/w~ow_w[W7~_}}?}?tW_}˯_б??q0}Y+B?/~~ݿwO~)?x>|h?~˿g~]7ؿl_}~:5~~cO?_Oo~W}*XvV +4_uZdђw?1!XRo?6uS:6^gr㛾h+ N?%{ӟx3~,oOnD.ڙ31(J/]C6\ڽ;>\b֡koݨ5M[{ +u%":re3UbSƛL֛DV#h:H߈I + *,Iy} 0Uݓ;WDIi+L +;<fXK-sN^*iS +$P +8H@J@}Оi_0DbEY|硹pRj\v-7tW:4+Ѵ3e=cԷ"qYc}?G#oXųv*UFgMˣqr\sަM{wދ7wL^꼡m
:k%Zu]] x]h՛Md:nWê7մKArG+gi
)}Ӫqh/ld/M{UU_U>vp&*%9ԧ$7
ze{i]+ -jݪ{۪QO}fnX[갓h + i)`i>E)Ң0}ý+Jm7{5塖[~(CgƽXd?tUZ'3au{=vG;Nuui#$x;:[D
5#Q;:r_Aonz51B2K·a<SIH͑B\쇥1hܿX:UqGYE#N,CWgp^ސzZ5JRfCL`l*/pZ~c7?0yS7ܸ&&oDrsG'E9:rj!X%phϩtߡ
xN)l\QfR]ax,#7;x1 !r~@e`dX5:;O0T]k:s&j-lꀹɝas%. /w+ͷ0aщk5f]V,JXZ1~Pd4q5# 9𮨰iA.O{
b2?UED<g^_~f (*QH%N#/z6dt$Ji)~=%SMFFqxx۰Tn,B$D˶To.`}\/Kc
j>Vkj +pEӘ[촢Ds?qoƗqmeӏuķK8:
+rVT+0ovdeg'hFu0pboD?1z˝%;5.Ev7TYBg\-cp5?F@&viUoV$I\VFEWMխTlMo&QU-z^mZ?6Ӌn $[JG>c] +`o#:/\oVD:je/74)O>9c
0\.G`=7|-at^m骧G0f}am!yru3OȔW/[*Sb-j3wҙQ`u
>oaZ% +؇1wwӆp$6x }XaX"J`>FYyFm{̱İȑG4DD\=H(冑~K,P $ljngQ :Z2@,TcMv%TaS%z')^iᢖqLG4kS̒EK{vKJmޘ Twsdz}
J`t,8ÒĊf{uQ܃99љ`<JC7,
vk"V+?^MvHGF%pT9ډ!1˘,;QZ&G#$iVH&KME +XZD8d]q!w(Sdƙ>S^ib>ʗL9LX2]qR6(XJT݂(ξ֣V'RlTiSJjq!0po,궽Y"p")g=aaǖMٍÛ3gLVͬEA#Ĉ8S3kDio5]np}JuuLg Ia.h}8V-Gۍ4l6i{ۜeljyqfRRtZßYBP .˱'I8Z<Y\`廴-B(~lX%IG2-vfX{bPM|$(V,keEa4+dr_)\QWku-pH1~;FbͲPÚ1w7.-We[$-v %Qbl=]NHٝ\%]rK\3<˾EC%U}ݢʊf ++!EtK,זΨ<?璖Fl+&
:̽䭴>*ʂ +QkH+۳4*EBTrrB'@M($Kn o +7va>TI%ŎRM?bâ,P6A=TU<B2j1J>8x6E,77'ђTk\nQ&hRkS;An4"U4؉:=~]~ul^ ֺEA~!{IHV83nu@*ӞK3aQ(g꾧. s1[fTDC%ŁQ[ +jwBchXL`&- m("ۊsN=Uzj\Szu<pa7B 2uV-VU;(^%Dx]Ix.MzyLb0Yvn֥X4=RBs>Tط5C|AZLXEז\M5A5A*3!cDގ1SA÷>*(JYbj0y Ջ홗#B2[aQ; +K%'up(Idne*0Yb6WGn`2&ٗS&)a=4+鄝9c +p]e:bD&աH˾lQg)S[ךllCsFr3G3 +\@NoݪVQIi +Pŏ~ңŏz$Tp@,fm{:ײꎱ1
M֍ĺj*1j^J1jkgjG-3m,G6#8KQ{(B@zz*;8vWVe㪊k+Hsp0#A V~ +ujw6+j2/D + ̵9h$MWCk%[bЛ.'. +0gkjFskwh+iUvU^<vOFҩEbZ&WGy3٦]n4γ<~H<4' +0O[<ZaTǹQvi[-31ZGjj_Ҭ|cQJ$qQu{T!/#KUel3~vr}R^H%ڮmҟ˄:xZ꽨PRW_=m@l(3"@ABXOh\Tt# ^ʜ*祙j}k^JAU¦QDw5)ճ~ʎpgC4_𪥷J*u>zhUria.vU0F0
WW2SBO +Dkuqٽ2JڬT5OWTs,)t:v$}3SRJ"v,F-K5:(lP64*n,}IZq #pyvRGR0cFjA\۞E +sX5 @
+
cb|g\M3} QY&\ -ԈJ+,5rZRaӵ dHui<R|X1)Rd]tn%!%pXSb.$-?+*qߧ0"JC<_{x -W[8CmPlU/p$R& -4v]yх乪i1mu¨~5K"@@uD5b2r]Rڽ3sG H6w{o9MjF&cF4X:~<QHq*QXsXNO`0X -iwׄ;m+cF*:J85[jU,"M8L_k&1m/sHdҜ?.RޗJTfҌe }"NyU݀i}.F-X88hd,3\jo<öR~76h 6*Hq$"jviOZsYܢThd6٬rRlk0˕!q=oQ{HqTm*É,!llF橤S= -H̝30f$"$U bw:luO$,XC%9/r(VUB yWrp7ETJ3>m]BWMnio+,#:Yiܰՙ3:v+zjU$ T>5 hv=:3J՟h!ˍVPB81IYV1 -}V{sª -r %~mfP)K -ȭ:Sul$q(˲]Y -D]ga}P=I#MD(#W@4Pd;#SZY[=[f~JyuG߄2t_&K+]D4^k^Ѧql^f^p[RED#blݨUi4@ԑFY9`mg^|i2Xn%ۮ"?+HwFm̺K?;YV@4eD8RaKaÜh\TBE0MeAD/3+עFTCFe9PMKٗ -T7.g\vsVv/Mڢsjfջ`p,5gtzfCZBG[|yռY&5ŠYMoГps.Ϥf\/!n:
<`3ؘ.\ -Y')W ֺѝ4zO-QQg,Z"'>:zEUwƹ|3.u7J^(Fl+v -`)w^ -D^ڕ1&<j19wKC*yeH"cP+FgAg)j -JՖ4tHKP.9L>@I0B 4bYvNF)2.E6mUTvut[f6͉Ωsnij̭P\{H -%n*qK5zU|W,e᠈rzT~=lTz2espTđ<vX]ۀ%'q n(Ht%D}l
a_٬\V^jgۻeVi
ܦLKk6-fv`Q)aU2=IḪ@8$'֖sngjB2VGf -MvfZQc(_E{.;^&E"\P"Op8BÎӲ@0EaIUaV8j1B}]6DnїMPw>e֕tE7hmRK$դ!݆]XMIsZ ߑE1yJE^\wkB0zKLv4Im4JvG|,H 5i;@q#N«BеլOՋ_ -zr2h&µy<Kt8`軲Ew:qm}M%Evl,N*¢jq;d #~).?YIP9¶KLUʩP;.CA$%zhnbXl?nsPf=UVj[ug&B$UAU=,:8M荶 -_bѯ&!"tQ+5`Wa5b1MSi~5ԣW*1@JJW0dkQ~V'fG5ǵ4]sSFf146E
v~L*8B1oi!2~\CqB4ks m[kB"sDh-bҍb6Gh*mS|4G1RۖqF͕w!]<qU.qCz?Dh2(Uݨ
} -u04U%,i0('Tb-fN[oS3Fr7J6ߗMf1:ILQ^`0Ȣ$_zUMy!<[QtzȦD6$ҌXgi}hmټKLMM7mۻéev?2.ŪBM镜6K)e7JqޑPPw.-ϩLE`KQ#»NgrfbsK"@1R&r"ZeʅWjiaBq -0*M>Aj2=(q""_ÇV`p#گj#{ǰ;]P3q[խyf -O --3lAF +k(̈́P c*|!ddTUCPNJ' *AVZ:dL'R2!Ȱ2,oY- | YaNAVky#dd2oAeFay#*J(hDԕr' Q#AmBadDaYQ5b=dAƢ8! -X/&AQ aD2lڸÄ +"AVHBAV{I4nX P?d$T:,m dR'mFP iOYQ+ +B2/YeFkndi>!^Ј +GYFYAV$6 vdEAV(,d
AVd0djo AVX,FY]7 0!Ȫg A&È +J02& Ab #79!Ȩՙdh -9"*݉ A& gvBq&YFYA&AVCuDzJJyDaDu#*{ю BUU}
3L$O#LAVFad&YUA5M2aGmBy@u -:{'0nz&&> d2323<d'#L'^g@OYa dU@V&{ -O2m}2LD d@V$6dl&Y_g a$1 dܷ@V"%ܑ@Vd}@u&a dE]O։@a"Hm$ B+@u"a d Lg2}@/d<0i d c ,lA +"B@V(=dvFYN xddXf7L e""ad\D +g{rΣFY&Y>~$}Ȉ2'@ S`q$a"u*8ݑ@F -@6XY7lǃ@Fx"v/Y^H ɘ d^2 d%aI+r>J<@6XYd)d|@D "Ddydd@"^ dDD'lt`4YQet~ -FA +@VBx5 dr,'`dBt"1 d,3L 떑@֭A cҞ dB_2`3L #t& d&? d2i25;N2 di ditZ$292'+`K V8=d:n"U> d@w&q2YY@aay' -tN1L_13$8cEL?eac1'cܮ?HË?Fg)8NJh*1#Yc#ě?VHmN1B=3a3Ϛc4?ƕ1&:dcES+{@ܜ?fwkayǸЙ?V$䏽gϹ*kcEcx/#^1G8?Aڑ?F00h+:JhXYcGH ρ??F?Fh8NJjcM8MYXVAډ٪4t=cLzщ?Fڃ?Fc1cE?\3ʵN1EOI?#)4 -So1/OAӉ?:qcBc>c'4dxJN1>+XQ -pz̆=VV=Ǹ3zl1աN11uN1Nnc1aF11c0ǺeDuDQ0NJ:ޞ1JgXNDISC=uFac:+1O{ ܌S}ք,zlJOc|=cf,/YG,z~=V$
;Xog`c豢p+˟{n<&i1^1^ =&i =Fi8Ǩ -c2i
X=f=O1g7ztFX'nccfcfcfyg,zLc@13zreF-~JOǰ1,3zLۺzLzl~Tc'Mz0=hFac2:ǸzL"OJzFXmF!BacicHcGO1DIkeD;c˼c' =qD=~Ǫz =&=G%zj1 l?chccici[ =&тz* =;4=6Gc5zL28?cFc2<c|fX]7zOyz,-#z,OXU=F5фSu@~Lj1E\'XZF8GX]7z0=qD=1܈Kcici#z|=c|1HKc4TI
1&zL#kDO1O=GNzdc&z+15r3SSlbBI7vDU1 1\ =F1L1%=c'y,
#y<"<o{ǔc&OyL3Dzj$c*c0Ǻc5RH#"j$pcUO5nciXUHcvcO5D3Ã< Io$9xʱ1q&Ǟ1byLO]MyDE#*9h cDKc$1h|64< -zT:Z"dLU9c,BfLy̔1gQJg)R?"ƈTYykxiaBc;fr/\sZYG$˶Ś6(-]R,bt,bĊAkFa6@÷dC<ٮ`?*q-gg rՎhZ:(J`S@?0g3MHRi0jGH,l+[$$L_CDA0.7|I\oRtթ4|v -#V PE0ڛ]r }}o}Ppy+KR*
LSLFJ6evHNx0l&`R9Ksc,iV}il0=`)}W4jkGPlkF1ԗs;ވv4K-3L
zuu4%*qԔh0B i8ot2Y &sd{d0,]g2w2*sJD2N[w09~[U+`۲\ Q:C!:$d0:$u
w`[~e`q
dJ1*r.0EHIө` -v(|A6@)4Ƒ`H"خc2:L;˞Ğ{sUrQm!Q`qM s0.'0q]q-!`]5qW:"v5^cO="8@#K*ᴮ-_ -[*6:$lT&d[;ӆ8[`~/t;Ku@bEd~K.bW_DaoՊI^ -߳0tBX>1WF~-1_j(,yK/|{gN*Y/2f]3yK+L"w"~Ix僜P]a2yU,/ZI/|5sNB~mс_&L'z!~
_:KIȈ_8h_&ɑ_%{@~/Ӥ_GXK#k@~m!!ȯv絛06{*)/ntc *+G+/
R3=ߗGkb (
ҍT -iX%dWjLBϽ]x}i^(Te {5hmSߢe8#2@{ڦ{m%ӽtf-^S^Oo%łsA2t/ǵ^(ZTA@WUpUo+t5ܮdGнP^[
}X^zJ{3G>NBhmݲ|Et㽖P^[5E=jGq{l,x/JLc㸇xDw{ae#קD1)H{Qj({m%㽶x/CSv齹^^6V}ZR@y`9٥[yr9 FznrmJ&{33^d/) {ao+^j~T\j {%%d/y]Į3}Q*~#R%ډcD^%P;"Ea#8|;}ےu7|VERg<-$$0^H e\Y uPxI"݈N>X96^g1TcT6kk"%\jLduظD ωu7V2K&3Zf1dе][HȮ%K9*
|<i9`V2k2uإ'/v&.}Fׅ!;{u1|06K'2Kѽr,܉?HB&v-%.:g4=8W_}L;@*QN>/]ͺf%vA vqܠΉ]R]<}7YNz*bUdb*@v?BvIw}dd:g
Y>+K=%"qEbrb] -=46PX.>K|.Ep/!b!H]L).a2T!/yB=s3|<I-.r-fWF;0y=]^.sױCxҪRu0:kVf^!]"\٥Z#$UĚE\_ہ](}6dxvI}ׇR䉪u)%@߲.5/^,vu*bp]uN&+.M.ץXWSRp]/quEׅuXq](ߐk%,x]:&2K/T(`J^ۄqrnZC
N1~{.Wua-
ZW?<ݖp]\k%axdP~e]֥ʴ.Q=A=0h]VP\֥qxNк[ZWÞo**pZW-תԱ;D{
-{ׅ_iCd\)"nҷfqХ=ϿX(JDFuɳ}($Y] -v>SQ] uI2@]otiK,00]#ڥZ؏~ -"t8Gt]8ZJO}7wԡZY\Wy>\sù.aOes~vaWmg%sɻdvƹ\$2;kepZdKi#\*ٌ'VE -s-ApIN0 Y@OT$7K"]hG84 Yz/c$JΔVp,&EkS$%(Y
*-H*oi@"L,)ȐfA}CJǻ!YzE2$GFd-T Y-L:+A[* Y[-Z<N@4P,|%tH8
^Bmjf>Uŀ<wSGh.<&P/5
y%e08dHmi3)ڐ,eխi((Y - -%DhdYl45#ãd)9eYLM{ -fDEe)YʜYW\Pf(YX=FdE\dO^E2%"l^dє,nwd&((Y8jcS8ed)OD'(YԸ)
JEz)2%=J`P,.f#S8RPdwJ{oQ=l]*홛E5c;&#}`jբ]~Z%-ARvduFO4jՅj)Y4%}̔,oNc$z\ YR-Bk,v,,\Ep`,,&K{
NZӳĶȠ,28(K'8Y -6gNJVrcndѡvc8YJ(@Y2^)K,
Ϊ>XY$0zYYn+ Ҙͼ^*e_`eiNPYfFj,,vT{EĂÚXv
endstream
endobj
54 0 obj
<</Length 65536>>stream
-,-7+K0H L_zᎱAY ɒO֒AR@/3~øf"4|wBd;#n?qOӴMSHb0(ra~+,#ˎ{adY'#Kq`d5&,Xeut"K-Ҹ"Yz穩\U[QYD -6ҫ}zsyߙEme%RU(ˌ,D*lN0#%[dnPAꄋ],,2#H-$RAybda(q:Y-Yx+Yh -Ff`dI`όO,bjU|p0$hbɈܵY} Y߉ du9m9da;Y/%b -BV{E3MNKsYkdE{hE:D8=8 -cX;P"KתqcIi2c3X86yn -O:+ue8VnW`n~XDe? -8/"A}c6G_QBO㞉f6kZOx,"2fݎ9 - ` db6z|<R16"caEtӭ -뼼.X,BcXκ|(r_bEo6U ]}n{PݭBXЙXjO3X -RuE,yس#sEܹV<3JwwΕ|IjmE\)BmL/@:Qrw[llhJlE/`dZ6KX%sڃ2J3Q0V[ `j[E+i%^=AR ,V:fij8xV*rf8+5r2tg%;}e"$ӭ -Sc/;+z(+ 3 -1QK#y0e -R&.'Xi6l`įZbZRYXYP@%E+=҆fߘ2WAnc3sdU09U|/ptV@WYEK+g<]EO*lO7\*q -/f<[.3
nc̭Ȗ>UXOCR_#x -J9wM{Vq[jŭ s$R`*U*5fnсfd/E\w:ܫ'ME} -ꍠ"cQ[Zl)}[mxa:ɧō$(ZĠVi)A$TtkU=読#\ܪ%dp\|ŮjO*4^e˿k2J_ЫZ[*xbWy;^e T*-lGUk]rW-%ë*U,G+*B*EmU0xj^E8zص,%ëL )6+UXz{Wρë$`*TWap*MA5֢Wα[wz۰-ywbW*sAN- -H`DzEjAkƻxἎRMjwvUen]Yk -; Cî]U4hkXaĮ2q&'QRS7=:\6g]\e]e9J1Af]]EPkRQ*$è̮R(Ixռ2UK-:VtIkm]!ԿBW!(UJsX䊐2EP]]E BBWmU=r;RJzl
QpRu%tv']:U --Uݰ(Vz8<c{V)`j̎s瓀븭ghWP*UjާUZ-Ua6UTk\bVi}
rU 2D>7JV.%j,5UM7/*5twrK)>399PURA-U -,k`I9aj/4#LYj"|s8#hFV
LjNPwUv4WiDФ&籃VMWn?&U{dp4vj[2<
Ms0im$Lpv!T",etB&rI ªT\İRm>XsU$Djcj -[*_L|TzJ{+zpJUMĒ:4p4ڈK൘X Xu=r&ܗ+SJyf
kpŚrߣhjjgaE.ssW4Qn!^m^/â[n*cLZIϰ;R\Ql2"VYPx9ũg|!v[ 5'&XʽY[ՒC)6.5K)Sէ}V[I)9? i-vS{T_5 evmhɗWa컥Ġ7$}z5pB3CA/Jk]-;wjaTH-pQ;Cg=lVROlM1<5i8et"?fH1%'Tǔ"Dj6i%"SZCKqK)ej,V:|(L! -fݛPʅyb$TCDf_ -;at5.`jJ&\Zl4 yiHI{c:"`xMFɊ)9_MY͗Rn1J"VIddq3l^.TZYpDDْ+Ϟn(\'/^^Z;u -Aufo2O H:752 -K;6K*g$B$́FBtk$1->0 r*!rjzBֽ~*RKީzVad<cU(<qFarԸ-| -YVÃ˥&VJi}6'w+vjt+ -S]u&\PכEôi4seVgPNهfɶs:rp[)1i/|,V'ي4j7<}QkT;q75K\{89]'LWVS]Rbc>+<vfA۩]3mze5bgj0MG7'%blU}j֢V/CĜݻ]ziݣfWII^[n謿<}=x{jWBujzV͝;+pzBV쫞Ve8}U).,0[ -~()j(f0ު=җT[VTT
j2,q]q*2 C --R6/N/]nPPLLMqD3EY(y@ (6gRss¶8R]ECY8QRH_) }{8a(a eE8RSE_sg;nu6+;1HL-4l/!>K\ĦoeܑKZD+כ,9%
Kv,O$)O*L< +ԈJ+,5rZRUdHui<R|Xб]Vbӱ٭Mג8H1AיI(HJ +b,{TO9L`#o\+!\*u܄mlZcW1zܪI_!}d{,x1YmjnkŢv,Kb2&+#PO;|ۼX/jTo=Y +gಚ\(KQXs2$,rNF80:aJINkT&(퐏1-9O#2+3rU͗eZ3iZX-m<UYf7GVr*GɁj +/4VJo{Ȧ +l@W!)T-;+Fi)EJF1EudDQ4G5r +"QI0DT%c,MYf]8W'Z/&u^
r;p;NuTԪ!u6Y Ep~Ir;x +:etNk_[*>><sVT=ާu̽XUAn1pIC؎^UWYUc3PeÉenɄ,ކoXq5X + +#]][hKfUYdk"m_.~}[Fj*DyYt/Nk2aT^0
w篩IKSIxbc)<iKA틗钌YQU5Eq PWJr+/ʃp]Pur`K՜b>,Lb^$? +l[jAue\&}&,B jhDsqR(ybԓ3h9: +]}O@wORgx[⚟V:*zR6 RY <T_gJ\ZKb3.+XqzW`Ys:<l!U?Gw02flqbY"mxbğE^1K^1xCwX7IVS3n&$g +4"J|͈(R>` [CuI2P/e
}Ϩ$_/nz6%:dk7QFNi^vF(Vz^ +)"Y3떏 =lSel:SOY
V]Gix\Me\ټ=ZᾅNH/G>غQ)i#u77E[`rLЋۦϼD>;eJ]E~dWGX
sۘu~q/ؙhJˈpX2D=^-
+9e9j2!`Bm˂4^gVE<Ȇ:s`$/Z@n\PljeҤ-:W1 +XbQjp֏Og6[:cz}%HW͛e),lRS= (?Lj&7ƚ=CRաțUzzbxJqfr3\W_~g7Rw/䅂`fqlMv)GIʁߋR[EQ7FpamjAPҎ +[cUp{]>)R:ӐuW&XteXU*n7ڙiF8ZP~}V{0JيpC%<UdD';N`Uū#jRUƨZO8[Nu٬ +N|Z,w,GX(oq.+Y,,f1j.\7γD3V;02&ln|!G+N\[hAcgkD}-8HESw]hd?y,$j(Vsa%&*{}^Cj` hyf=u71Z,T79Z(ՈL*+-:3{o!*̠x&F[ /o1Wh:Ěd0ݫaG\^ +~5ԣW*1@JJW0dk5a%}2nvTp^K`>':eda&
NcSڐ`#.5Q*PI1W +rm۹߶5;Ϗ!$b>G"Jn!x^.fsF;F{#Umywh~\RCW:cH$/ÏRՍ:З qVoӢj&=Llp9c2aJ^M_ Xl3=sě(UFfҸPXS
̎4 +,1J^!+W5\Ϥ*ұ%U#P+$sٞmmͽ P]
,Gi4ˁk M-7ck^\-NM^UVqH5_*F|b+^)[>x0j$wSTiC}d(d{w5\=WEeIuLe)Vw#(JM{˛lIo*S-($ֲy>oOۻéev?2.ŪBM镜6K)e7JqޑPPw.-ϩLE`KQ#»NrfbsK"@1R&r"ZeʅWjiaBq c:Ėj]X\5lC㮏R>FZEGW|9>Q}%>ټ=O%C&90
i<]#rHevZX- +0*M>Aj2=(q""_ÇV`p#گj#{ǰ;]Pp[խyf + AVdd*" AVz"J +6>!y#Ȱ2,{:L A&> AVR,d`ŨqY'l= AFmF
x5XAAF [2#ȸAvoaZ0d\@ e"ayȰ2,3'%GjS3ln
{&z{Lr$jqdH[GV!d<7= B&sf#L BRf20Ȱ2Sx2ȐhdU2oYYCj&P'SA& à +`&X1FrbUZ'Y-ufU ebU?dAefay3jiY-AvO0*sbUuZ˛A& edax3Ȱ2,3˛AVgdUJA#(?ԣ?d'd2l ''60Ȋ;]H +w2ʼnAVz12Ҩ# `a-d&OYBpdt[طH+w`aduJ. c&dz, ddis~ +2=dn3LwN{2ȊzY#d`ax1J-3Zs`u Kc0AbFY!j=202"MAV + +Be +쀞` +W{30Nb12겼d'AV%<3ȰM2FOYQa`1L,+e,/ɉAF C 81Ȥ42Ȥ0dd:idc2
#d;&gM2bl q`A/{0kdidiAVy1ȪVȑAViOdoM2h'/@01022駌#kfUr#,
#AVًvPk`md&y2dd27 01Ȫ2ib[<2lL<dm̨RQ7zq`/#gbW<202~A&$AƳd8A4dp_ʦd6L2řdRd&Y=ʛA 01숙AFrbUu}2m^2&3 놁A֍ b2yo`Dady 6 t҈ >d#qBuÀ Kc Ȫ6#L/ ӈ C V҈ dAш c2!0aYeDu{#rAV;"FYQaF; Av{37 mDa@ 8!dd2<d=#02~" + +"R7S {BiDadfd: ʈ +"AF c0!Ȋ +^B 6"ȺeD
VGtu~A& 2#ȰdXg,L R'Y9Asp|4"0!Ⱥ5d#]AFuF)8!dD#,
[
AV2oAeFdXg,Lgd*wpFuˈ @*Lr@iydef`IY;n}D1dplFOA&˄ ә/H|Day#ȸAVȠM2 Ⱥ5d(| Ȉpde;2K!ȊGNƌ #Bq؈ +KXIAVJTq-O2 Ⱥ5d%O ;_2''A&A& gM2 #R.':d#!Ȋ-#pAV(6d^Y'dXʫ c9!ˀ @" cd%fYn
#Bdčf78، 7Ɍ CvF!IDqBЈ Kˈ K#4 ȤQDqDц8!^$ F_ @ AVUyDUZ'A]#de@M CdX&d/cg&U0@Fn&ս<d@Fx$ dD62L2o#L@M S.a"YU@ ˋ@&\D #4f$Iޞm +&*=|i!c/&?VU<dx01=t֓?2j3>|Qaݏmmma`*4c@&LmcԎL1oc3(yѓcXmc*c:u:
K!o^@f76( #Q1ȈdO +F' +<c6Ǹ(/)u'yǔc(+~X=f2l|.c8o'1?V٪])Q5dc1Y^13W3ǰc3L?:ǰL1/ƙ?lT1,3_+1R>BLVcdfؐpoXrfBWzmt?qacƏQ:̙c~1,o?{8dyǪr~,ڌB1N1ɌS?V?V_U)F
1:fX]OjY1Μc?Vc?F?qƏeďM'&~L ?eƏayj1%~.?Ə|s*&XSS c +cL9~ +~L?V%c5F&?9-:0L*~L=~L ?&?F})kďY|gď){Ǥ8ǺD 1"3~еOQnG#~|TO>a3t/F,~Lgc@N1?VdByt
1@oXUFOXjďѳ1hvxT>Ǹ?F?VDc?~̺F?:ԃ4dyǔccjx~wa}1>hƏqoY1#~A>lc1I1!1#}Lt1r_1ރ>V5S>>FeDc1("cU>1ȳ1xpt'XQ}QmcD_&1E}L> ?}L%/J& + +|9wFݯ4!t00{KǸscRǙrFZ{L1gV=&Rkp0>19yM11=&`dubac +(_OXQ.|`Yjd)5dc:8cjGzcT/L1^1(&F1G#{LEO鑑==V2Ǩc=zh>Ptf鸉=ub)9NJ'{DE&RKoZp'kc'f:ꑺYfY|bi9j]O1';=Ǝcncjcuϰʈ1U13<c1=f:dcX1&Xݏ=&m{clg`&5c|^?cc +znc1B}dqSlbUE#1"3{#f)<;ǴcI<c213{˛=adOa=Fuf'Ϲ<6~Ǩɞce=1Z13{ucOdc:qbß1K챢.=Vyz13{$*qd`eb2Ǭub2O%3{2Ǻedud>S
OgIkdQ[bI`b,ndQ{bAU{,X7{L%){b7{G^떑=6X=V +AzLW#z*,xd|=&oDuÀKcǪ4FÀS}p'4zL#z=V}FQ3>Dc%}jcD&E</Q =FKȈ'X=& =F#==v5wsDӡE
Cn2He]۹ֵSN4:vIO휡c1ڑc:8'mڶ:qL$uݣμuz*Rp";fخzۨe8cJ\]eƌ8;eL8R:dH1FpJʛXKcT101r:ŤY.֤8Gl1m㖚h1$3$d44&WX04(&vuT1k9;TLӭvHR)F +'N'L{w0_YUXgDe0"U)eCrua78YcMz%KdaL9kQ5W+f^;̆Z
fc\3`Fl^\j`[Q)+6}`)WLyHmLd0٘&@a>Odh0,TT#2H~v4*C<gتbNؖJ2Ҟ` +
&8
fBǚh0n6V:lU`/\<#=n#Cu4,X)2JeQrqFR +i$=q:LQ{bN3B6_8գ{D0 +(k[JpL:06]]IZ7L@~a<Y%fuʀJܠ*$~1S< ~fX(ٙF)zW$
}U90SЙ/l%IS%uֹiŦG[]'IN/I4I]XŴnPw +=k E95Ν
N2dRUc~ٹzn{~-!C/ZDng~nk}c̯Zb0\ՠyQYjc_$6T泘__se5f|&.VEP|߅J9#. ;ء5~/`^!_\vDڢ:IIM>Oݽt䗄!53LT38K6_I%14D G(Bb~-1_U_ql,TS_܀[f?WVV_=x&y>'g{/_w#!:`~QG;6Eųjؚ3=̯fY_ zvǸ2%q̡?0%{F~I;/1=G})o.wKn*HϻK|
%CW]Db}"Lgj|=RsQS!_/lſg!.|{!|;{s4]Z|/̧܌r߅W;B[d/Lm :qU;[J|!8K%[ع^_ WpzLoX/J+cZbra^ԓ}VWUzIPpTDpP <3o
Y;f~z"#^K\{10/0Q,x5(K9WI +kjvEˢqK値J{%^͊I[1 P6K%e]^d)4--kP-x/,kF +.nںeSE#:ߋ-{-j|/z4Y^Ԙrǂq1:F{O$bT}+K:RQJ{m5^z{s߽l*} +Z9krKrۋ:NnOh/^m%WB9 /g2(f^R.VS
WLG{2MJJB{m5^2 .]g +KTmzKKlj>cԮK&2^wE%|fzqZ{$P%buqH/ g<^[H<%KمIa^,=2KſqH^eE + +ErlςxȮyK!-lEJdcԋqyPndn\zIglŶ^;bɠkC]KdJysW +66Gw +b`l`N|Ye`b{y=ӹmÌZJFv-ё]hzpdJE{%w4UV@v}" +"͊j3|A_#9 #xn٥!bU.]w +.Tr좁^2P.)uN +}Vf{:KHH73l{hlXJm}::f +LrE_إUSpWKʿeS]
_.`إJSUu)`:;0ҝ"MVx]"^\KDYuI>c_26*SBP.==!uKXY +K8u1 )?'TTฮF_w\U[8ᵿȼ.-SNE܂ץo,K{PRiQKú|@]e(
+X`p4mGKoE%%q躰хnBS(_|й.s]r| +C0@<:Ίy; s͇팃;Id0~| +Rul.'ţ10Ц\Vh
v&sɳP%/) .m3\A(v*;24\+ɥu\s#NjMd=0xN@Go<זƥL* +3xyDfqYP\\|
UPxNeqnA0¼LVQM+zXMF傝:1v[DiSvR}Rmk\a}XLBRYexEނJ$_-oi=ηR% +{IHѳtKզb~qK~[[&ϳx[p[t&]ж;ۻ`[2X;ڵ eN6kW2[ڢodӕ~ؖ·jEY83mԁv NjtmǾnĘBV"uJJe2nK1f3Ht\gp52mVhSEGFmBUNz+9 X}hl)Ģ 0[:ю{Q`E@T/4
ǚ(u6e&+]-1 +SqϋR$8YQH'K掔YNT/FpƋ>Om;0Y5//JCPP.,䭝uJeg˔,ޔ,T[%T>nd5}nJ^JDT%[da`PJvE2%[юpFiP_I,)1YkO2CCMdIKbaLU[,TҠdE (YR,)Y͜dѕ|wSgeJA[xwQ[tVd<TQ(R7[x4di5(YxRK,bq3%0բ-$(Y͌ +$y#K@d\@yLFd^mk"87$K`pȔ,^?f*R)Y(%GQ[P`9L:ьɲش-ij9FGRrʲr`͉˚1$c9d)~eaz256&ҟdLEؼv
endstream
endobj
139 0 obj
<</Length 65536>>stream
+)+0Y~"MDQ`,qdq&ˌR8O`qS,RdLV{"',k1YJ]XFdq&da",d{غ$0YU37&-kd))w +NYG&d=tOժEiJz[4h"ԪM՜chJ"1YdƘH7>(QZ(YX)Y(&1dYB9Yt90%N~ d,2ůgm]IYeNqR>NlLϠ,S)n?6ʢCX!Q0e +T0s2+KYŝUW}H`&òܛ-Xs-A1yU
Ҝ
(iYXY(,,٩5=XaYZoXh +뙾bpc`݅%j%Ё^zdq>Fi"
3*Iw5gd!~➦iŀdQ?epW% Y*HqOHjMY Y< F[gq%D0SS~-34c,lpW39$ڌK$P!YT9$Aٜd9G2%KvbA + K YxVeHVg3 Y[H-:$ QuL`[@0#V9AT,͚ɒ!YtYհPkdIĒYk!#"k$r"dtCw|d^YK(= d&du\0*!oLȒ Y2!"@&dI%dY),, Y@ûE;B=e%"";x'%DQ/=_1@di/J-Y̑L18"̬#8hSBdIh!hքiy'hH,KɚGXZը f,8"f*%3"Q@d!沈a9LȢ +Ң +tx+7z,,T|%lPX +4NO^E\Gc]im ycOj븼+XIIu
[
4mӂ^B[Lca@L~hCsX[
8|sL:Xf)!tWL;5@tݮM1lj:fѱRt,6^}E2vBmξ=JmִXDN e:kͺs\BȢl<+yFb&dMmD:Ê,X[':yy]X4:=40aYk-uP"lPb [baDCԞ%f0 -$m(҉Xn]v'@mn%98,
X `Xau;B&a)aF.k#5Z:L/ +)W!c牺дp|E +4gҕJ-+
fNRxW-^qux=^M +-V,dj+ي0?_(T-!V[d+SdmH;Jeg`~a.)T+2: +WsČX+Jzi0Xt. hu-q +Q8VX/gcƣlGX˚B/L\lj `WgԁJ.F5W{^
̀^%1e<AƆR>8arr^쪭{K*% X8/VWx6ʟUhn4UfxwF¶H!.R{YUPǝcLCy +ŮëP"kxwv +cWr WyAˬda`\4-OXBWa}tUQh3O]Y'8J#N=&Wѱ=rۮj+\e,r z\_Fk\Ex]g*V\%-}ƤſFn4spj +\8\*AWI.U8}'Utk*Ds[Y^ԋtWOnýA3EV1[@RRX$8?FuOHP2jRI~=s0{U[GG¹UK-:^^"Uh89ʖ|ŧez$W!U[LvTZَ6SW'ZAZJW-1UsX@VU4)0B7U-ӫVp(\kYJWhA;S\mVЫ,B WIU[LXU_EGkҝc*]a1[< +)U[ %v'8JEF'vFׂJ坍waWXy + ]#,*3%&xbw4*]!u1{W+iWU ^eLNE"EnbWYGzuJm2 +Q:svb,2JG1.:$THQ^P2:yeeU[tx) x*dŮBP'u^瘱!e2 +#-]ĮڢzvJ(plذ$]utK*DN2J-uЫXɃU߉]ZaQ<*qyTYRr\m'q["WѮ`UԼO'}[hqil`wָp//`V=Vu,@dV)|nv):*]pUK\XkNn_`Ujx弿R@U}Bf#UM
t>Jm[Y הrÎ b<+_@FLv{pH8ͬh,iDXN;IQc8~Lfi1N>oϹUSyF`FBWIT?#"X
CDYMU3©| bx}NfY\) cՌԖuD4r@VY0CX
jm|Z im+c̬#haLS3[m㕒:'lBgj(f_h%:QڿnH/\U'*?KgR +[0aJiTrR`(ep5yp˾ѭr&R"ApXX)oy(ve%^n!ߑUݶS[t +g>$N*U(|xБ4z2ˎ/51qZmTs㰦$;!(_Fե
<4 j-wi3K*x/UI;ɮTZtw(D%e|əÚoKO:&mn<qаnľJ_+|_28D,KxUZ>L42h^EĒ:DqB)0lQB+L|NPRUQEe0aF]U97KԌN=8D=vR[x-(DsVa'T2D^ۙ)t&\q(ZX`b8JM\"{Wn[WA-K+b͛ +j"S!҇m4,ǎo&WZ,sA"V3aVqjcYm|=_hȽVDxk͑ rohVP>l +p7q@sRoT8}cŰAzz,ÖxRKOCnZ&|?,iW]CGgU~o@n!1(;86>}:M)QаK}Z[ΝbU9b?=AԎ)Yum=0[q\%mMNyY-HOR|j|aty 52%a~rܒjsmi`f`U)# +BS{B9*v7'r*X9 Uć{e(x'uI
Hކt;RtyҟXdN4^hw.kUߦK
GYL$4{6B/ +
d8$|dgOY\\//˭^}:UB79'QSfNEg%3dÚi@amf +])c{IQH<\*M3PZhuu!~l;)q%u2҈[QzpmU@Om|_Kv#K+{nOս3xawSfFQxZ7JCubD~eh<ն)EH)6dGm4ڕ>ӦW8\\s+vȑh{tDsR+VUϯ.a-jR0Kڥz|=/vdƾ/׃:KW(^v@*YgfwmU-ܹ+C"'hnžiev8G]9ò/Nڅ/ +rMۯV$Kv[R)KkSL` +`9e-aE9nfxʑ϶ouof&E>4.dVԃt6^8٫ScԚRbȥz8jPfaRE[d){s +,4`a-NP{.U(.zlK<lUqvo`W-Tљw"kvs| +v}Mc&l['<]p6jJ*@Bd8ETt{u)3;Ka+KޏUIY)BӫW RUHly<QFa\k=çyrߞw_c𱝈5EIlҰ#6``Rmi˼LޤT7*7:Ãgѥ$KmL'dTJ^՛`0j֣B7̄ꧮEhmgB +tm}>7_m3jѦMC,:0mk#¤v_yB +{qfI=ΰkƬ:DҦXJ3jjE[t7Nc)&U&;aS0ؤa)nR2?nvH:VB 7ODdK%E;K$7URDlu]G]/(ml}Gl,:nDZ]GuoRmU`lަ:nY7ѦjC}Uڬed) +0K%2Rm|z [gjj4ʼQM:N7öˡ:VEHV@]ӆif~ +):NQSyP??O0A[ۦL}nPVQc[<zTkCw +R ++oq(!Y8,ęZݠ_jkn7lKݭfz')ނ%wXqDቫ;rpIkPoz%#dɮe⩛d8I.?', +!?؇5S,78ۦQzUK3K]77-lGyQT,u#5.Ʝd-KE'-Ů'n߫tB448&$3%fnk͖J4l4a3VPnB3XWEc}Vm͎f̚2S{=VYnf˲1OQz"[VT~93>KC<Y1e^y!H!n)|b@ Sȼ*]]$wY9>Bdtشwe#bSNNؤOty& +iPqOTV`N[a&PUk
Z}\]X1u+\iZy-H}\1ʻ:wԙ];W=6芚 Hܞcs - -/r*Uz-= ٔ̋iƛ*[\
gGc ,tFR8E¥P"<)']Xz1d]|F\]C.]iRFF[v籃<Jl0N+-g*`{*|N3W -f):z7:S)э-v^Q&`)=Լ=6oj v?7[}I,` -@ⱓzQ4zy@I!p ӭTtimH -ڙNq:fJ1X=
C@In)c+M5ZkT7T3TL?xPafgC -[R0ͅ -[08Wb`
r1N\1g_w93hcR+,mCWE1)Йj.>OC6M̆i - IBv(} - G -q_Pd'qj=Ow7U.LDiUF+i=bkMH`O+W7sT -J%wj -XT;rIJ3ظO|_dv4H֡?/E-x/,`w7gk-J: -.B{5ʑrQEAE`aȭ3a7.걍*2)/U%G"jdPiyfb&|3 -8^taQBi(b@T+JHUu|;C4Mб?ƷռBqߞ]"6{<٫+݊XiG0 n3E:FA ѥC]uMN!<Lf2_L'w7Ư[s@chݾN\ -n|-9șo_ -T<ORNJ!7uMS
f\O
I -73uvBp&ҳŪC -/3JT{S,5CftiAT̢IQ?Txy)
Q)%%kRAUHKeA;YܵL,?ᅻӵ<?O&Kr4CDøkzJ+U>F^H]<r(|TU]k
^ -%U`ޠbOF 7RFlNd@X@>qPYP D[ 4W4JV)A^?t+-|_e9g=fQj#k߂zknieeɾk4{o}ׅ+\HʟaڬC4xjaBRn-klv:b^3ڂX3q)ZŰy,D>,,9gHgQP] zY$XBHc]8y0XWHH^NO4q3PjKDJhroϱ!ljsؼjyPu$_UFռcԌYp<băzuRf휴 -ֺAVtT.k晞4ՋMϱ9lT[xNV$-]mfC 5NSaA0<9gCspN0 -h1aB#]JyIT<(1EOE;Q>J)C˲Xg7iԓG [ -[yxFZ{[7|"F@ɓԞ]*բR<UѬx. u"^'Y -4com11U1&{JC8l'
J~hIA -Àb3Mj{[
COoFн^ 6Y-l}ۨxy{LSs8c)
5o(ma8U+qc;<vT:A{6Uꐬ;Y`C:Ȧ'HEhюZH6-Bp85~RpdQA谠J -%0 -@P[*Jn78mT3tE/ NlCv`LU0Is9DgP=64&ٙ_t֮(9ێYq>f7 -زݕB%xmgM;pZˤ;zǎڽKh£Onۦ14^0vF\euu%/{uiUˡj5^n3-sDs>k7\7j5b<xv~uDZ yVƉmUB3Oá -tax-FYܣQ2a(7buN"Ux^BWq܉Лy]daOrBSk^0r֠@Qnn:fcAATtӺ6%^ xe9l%ߏa|S!sX@j+irZއחh,(mh+yCsf?D/ -alj-~\}[H~*1jPlouU0}c^lS4m"^I8VCtjߢlIZ&ۚpW3iZ9YKWz:Y%䀾I%zX2$jRV -[ g^IW+P5k]tcn@H*O@pX]birc,{K -(Z
Cr`?ppiPvUE->bxZORRVUC@l^@Z!r㲎bP`^cj,yKzqN2x>" -moXpU#'C⤗uY}ꝲ`(K#Q&O^(8DL -o+@T:V?KϫmSE#Z؇Z`Qlw7m%/6́SKGεOi:!}ϗłjRq:'&z3j8sT/GtLٶVWAWyTKslz(5U0QN57by)+^)CPkYifóCkrTEN7'
s:5J-3+td>ض}oKU(cgm="ٌKIW;m= UkLg+@Js),m{߶4n!LTiɊ[,YeL^vVyZ$]V䓭ҫ^"]<\a06N@ו¹}\YE)P2Pi)xJ@99tG+7sڱr+qEwᝄUITV4s;&Q3z -Umw&0}I^jn-ڊ}Fq\D -۽K|])*wan}{|kj]EguXm> blxdA_wW֭VGQK[ZzNd4Cg# :N {q9|72mH7s]7;l\ὙsfDҌèsJ+A9r' -pr+IR^O.p4lU{5s^9SGcw˔;'mrqcn[
H92L ivy @>?ŗsO`TLnaH= -bm+tU<cԀìwtPhdwFzkrUGآINۼq6gshuLx -5kRY6\z]lj%\b>.I<!AJ7nsNJP\}[rD!ctH862f `G|y>X -~+|]z|A"QFY1%Y/CUedIj>IRx -n*Zw> )l1sk{[ۥYnDyqPRFz]vvIf3=u8hz3nwwke0Vv}lT5i%'JEݖڊ"~"𗺺&F+Cc Ry(uK?uK]S'wBMubaz4O^8Y}"ʮ1b~v*Mdz#J8OCu6RbPP֖S ;7oWQV8 -3WፐF=\#҃KpHVkSU3=ߑ;AF2R&ZܡF^{5Xf*/2ץ&Vd4mnaM5GS a^"`,LyӸa[P[>F942$H{(:n(j5/0UC7w -KحmP - -\Vdgl0ogᅠbQC&f-8^ݬ`-[4<:۹>7foF 1 @<J -B8) -C)@<;ēPxi^xz+O/U.Qx/o[DS&X}xR+A?7] 9 -OU"bK&-"+BKJ"m5x}t8!iD>sxI4"?)@}xح"ʸ3?D<ad"/B0xIu"B%iU%Xx]LKTQxm:G -_W"ݶs쇈G^Oڗ'T"'P -CJ2OR%}Gʘ.U%)Zx*ED<y:}xR+7B5CCMD<+D<>CӯD<%?DAi&Zxl?D<vg{LCP3D<JӷD$"(D%)%)s_xD<}x:/"r!jT"V2oAߦFx"*OuLj[ID<|x7C1CC-D<Bg/xR+OJ%I0.D<݅g/OㅈgLKJ`m5BO_KcUx -Oۨ -J@<0o -ē{'0d+@N//OjaxQRxش C ēPx*YP33 -OU8[b -ē*@ - '.@u -o+ -Cg-Xr ^RoӾs -ăģ -|yxR2OyxD^ -OʗG/CS\hAKqxj/8A~.'TfAC)8<Oj^px<_"_ڣ_Zqx? -OS(4WTm_Ԋ78<3JaRpx(l )4<}B4ZixTƇgCe1w 1ߣYf◆&<A9TʇZhx('C -
OςL ԢQThx}ǙZhx#ڼy -Oe%g;8<*O1SϽz$Oہ/#,ZpxDX?8<]k;pxc|px7 -OJh ,8<óaqx\G$ã8f/ݨ8<"#qxJg|qxK)TqxD>8<=aGuၩM*SQfBYAYl8<)_hEu#9]Q%DUpxT}pxG'.=z#i^^XqxQ8<zãA)A*8<lEoOIU0 -*O+/; -Jg/
3[4~ub ix7eZ8\4뗆bJJg/
:2
NBóY闆aB
+i
Qhhx~ -
݇Ghx}QCãԠ4T^WU^{@J
XWʇN4<)_fJã(P
OJIBÓiRixR*
OK/
^L#ixز|˓hx8C
Y$T
xG6g8ÓX`xO0<BH'/Oj
(Ri'#axځV%+#kS`xE|`xT@OV`x>0<GQ,]`x_axz?0<l_O?2$V)WN\0<|axco;QZ`x|ó_Aãi0<8Vzt-p S`xzS+>5$f#]`x(0<*O1 -#Y>*0<%0<;oy>O/O) -S -36sQ(0</ã +3r+Uz4.= ٔ̋iǛ2[l
gG +c ,tFR8E¥P"<)']Xىz1d]|F\]C.]iRFF[v<JlpN+.g*{*|NsW +憋):z7BS)
.v`Q&)=Լ=6oj v?7\~I,` +PⱓzQtzy`I!p ӽTtimH +ڙNq:fJ1X=
C@In)c+MuZkT7T3TL?xPbfgC +[R0ͅ +[p8Wb
r1N\1g_wY3h
cR+,mCWE1)ЙAj.>OC6M̆k* IBv(} + G ڜ@ʆ-i\bFi-T52b8R}=Ƙe'SGb@4DfF'9-M`N}6EFil^=B^Ih30\Fզ'<2 @"04Ѱ~ޯ}Ntsԫ4蝪V`OaJd[czTJ85-J?ynEȵpAxODJllT<vR/V-qo%anZ:Z*~,:Ni){aj0 EQs)'Fb'Od&DWjlOovSVs2L"}&"ژjNbRe,*S}`G~%{QFR0f6x^ +r_Pd'qj=Ow7U.LDiUF/"i=bkMH`OW7sT +XT;IJ3ظO|_dv4H֡?/E-x3,w7gk-L: +.B{5ʑrQEAE`qȭ3a7.걍*2)/U%G"jdP4i{n؋b&|3 +8c_ubQbi(b@U+JHUu|;C4Mй?ƷռBsߞ]"6뇛<-݊XiG0 n3E:FA@ѥC]uMN!<Lf2_L'w7Ư[sAcݾNl +n-
:șo_4-vؐJeg> Ms2l=@hɖrKeA)!.l_ secz-¼샐W0 +73uvp&ҳŪC +/3JT{S,5CftiAT®IQ?Uxy)
Q)%%kRAUHKeA;YL,?ӵ<?O&Kr4CDkzJ+U>FfH^<r(|TU]kM^ +%UpޠOF 7RNlN@X@>qPYP D[ 4W4JV)^ ?t+-_9g=Qj#k߂zknieeɾk4{o}+\HʟaڬS4xjaBRn-klv:b^3ڂX3q)Zy,D>,,9g䱝HgaP] zY$XBHc]8y0XWHH^VO4q3PjeLDJhroϱ)ljsjyPu$_UFռdԌYp<fbĄzuR휴 +ֺAVtT.m晞4ՋMϱAlT[xNV$-]mfC 5NSA0؈<9gCsN8 +h1B#]JyIT<,1EOE;QFJ)C˲Xg7iԓG \N +[yx"FZ{[7|"F@ɓԞ]*բR<UѬx. u"^'Y +4comA1U1'{JC@l'
J~hIA +ÀEb3Mj{[
COoFн^$6Y-l}ۨxy{LSsXc)5o(ma8U+qc;a=vT:A{6Uꐬ;Y`C:Ȧ'P컅hΪZL6-Bp85~RpdQA谠J +%p +BP[*Jn7@mT3tE/ PlCv`LU0Is9EgP=64&ٚ_xޮ(#9ێYq>f7 +زݕB%mgM;pZˤ;zǎڽKh£Snۦ14^0vF\euu%/{uiUˡj5^n3-sDs>k7\7l5b<x
v~uDZ yVmUB3O +tx-FYܣQ2a,7buN"Ux^1BW܉Лfy]daOrBSk^0r֠aA +qlj-~\}[H*1jPlouU0}cс^lc4m"^ýI8VCpj_½lIZ&ۚpW3iZ9YKWz:Y%䠾I%zX2$jRV +[ h^IW+P5k]tgn@H*OHpX]birc0{K=t=(k +(Z
Cr`?xpiPvUE->bxZORRVUC@l^@Z!r㲎bP`B^cj,yKzqN2x>" +mo`pU#'C⤗uY}ꝲ(K#Q&O^,8DL +o+@T:V?KϫmSE#Z؇ZpQlw7m%/6
SKGεOi:!}ϗjRq:'&z3j8sT/GtLٶVWAWyTKslz05U0QN57by)+^)CPkYif óCkrTFN7'
s:5J-3+td>ض}oKU(cgm="ٌKIW;m= UkLg+@Js),m{߶4n!LTiɊ[,YeL^vVyZ$]Vd蓭ҫ^B]<\a06O@ו¹}\YE)P2Pi)xJ@99tG+7sڱ r+qEwᝄUITV4s;&Q3z@=,RWNG1"|;)}z:8Q^U-žfY;ܹB`="[!*\Ԗ<c'֒K +Umw&0}I^jn-ڊ}Fq\D +۽K~])*wan}{|kj]EguXm> blxdA_wW֭VgQK[ZzNd4Cg# :N${q9|72mH7s]7;l\ὡsfDҌðsJ+A9r' +xr+IץH!8\hpfjֽsPǹ>)w(O۸љJsdT-0(i}~Ћ/ΩOΝKt}{wƈs9Xb(eoxm$R^aq#)G 2ܝ2^ˈ)<wp9tXRenVp +yFǀYJ!p>dE1ͫ,|y3mΒаϧ +oN峢%B4ԓ<]ZV|z{5Y7÷,(#T;S onVm~JIiF*j3TzclЉxpEKR9}$]yB6n +od+'6y{/9uC|Ǡp(mdD@| +NNWW|%/SԹxDvۣh& bJ_ +e9҇&"}n/XB$T}K}mC6Sbv RKK ܈⠤:*QػF8vTPg,&{kqOmg0ݜ0R,`ج:IkJO +-;D6Dr/uuMҍVn[KIKrCQ2%~p떺NL4+ i2:q<E]1cH3*TL{&Fn)qF)_ +RU:m +F`?H3-*vfoHڭpNdK){d}nfǨ_aެ!4݀Kk:0=E<,s|Z{J?in=('1qq3JVIl)TD%;7_&ۑٷ(+WCMQhcQz^qQP-zgf6!)zG7.Lʧbgz#wxIdɥLvCE1kT^ZevKN>:i`iV +YvkA<DNTYqö:}rhdHx&vQ!tݜQ+Qkj^`Z}cHo[
25AS{%y];q[@+N)JEK<;% /\Uό`A3MZpXսYZh߷pxt\us'7=}oߌ_"D<Ug}xl"ױR!]D<"V_"̕RxvL%i'lK&V"ް/\:_"^߾N3L& +ēRxRҔx` +^%%@< +T5g3bKAKJ%K5&e5oe&^sxpC|ēRx9$J*`H<-SH$^坐xxgNGϽx7fN~xܪ#x<{?HugOhF{Rx>e$ioI.$js*$pA$$bAd$/OjEIH<j>H<T$)#?~I4~xR+ +O|A♭TFc2SMPwZQ~xĿ +OsdEuz\$TB EId뷐xEF|xOi)xx$D?H<hNZH<j Tq@Sx}Bm%!hH<~RF [)H<q%$g~xR+H<)_$c^Am%#H<Ӫģ) \o+TG "Euz2lAi"H<m4MA1$f/OjEIHObE$Id$1]FSε"TTx2u"V$vPmxWx|wEi_x*xӌ ءxl6Af$BA'xo_x[IH-OaSJS"dWxT"t\E`.H<H$pըHd$VMA0-H<U$*o+@Qx="=*oeZx(7_ V$ēE:\x +OJ!aK318OS%iDd"^R7ت'"D<nH&Ux_"WY"Q2,5xb"hAģ~1~xc3H&(KX#4'V"\_"b!♒x(3(D<BC()D<)'Cij%C&A+D<ṅ+x42"{B3%8hP&Pxj5D<B%iSSxS&%%Ds&AT"V<'/Oj%Vxf_"B%8Cģ i+D<j>D<'T%"gf"!"p +o ufLÅQ&iHDw&D<m*O_K#Uxv2/) &"CC-D<)'K#Tx;=D<Oj%%]xo89Z"V2oAijxzD<: +i!!)xLo+U#Y@50(6.D<L +}Y!BWx慝x!iȫD<ʔo+ (D<?_"p!)Tx[D9JJ
x +:BV"J!q懈g{&ID<>D<}JSq%m%D<yU"/OOx%E(D<M_"J]x +T~x:,f"^_C3ߞLKJ"m5x +V"懈GZ0ueD<㒉xue!QUU"%eDN")y"^O/[",D$"V}C%!iD<yo+ iD<=q" BS +ǰ4V".:PxR@<eI)@<Br +V~x
V *O/OQS e /5 /4GY`
m>@<T-^xx/O㕇/*<<]/OjI<<?<<tRxx(ãty<<E*G헇PZ
Ii<<۾<<o^yxP +EKٌ#ARpx7ᩗ)8<ƍφʌc8-8@có/OSፍ\y'0?8sI8<P +Ot*ϊ~qx+i`8<s8Aw|pxTeBqELWV_|\~pxR/*3:x΄#J/P CE3YIOiUqx
"3ãz3Gy?6J*϶wz׃yx +Ub@ܗ{H/_vGX~xx +/vnCAXxx(gÅ/t +HćGwp<<_Qyx?<<E*G":S(}xxz*6ÃSTã$C<<óNó"óyxR<<}S }GsãKãP:>"hÃND=]a@z3K*<>( "yx4Gu1S$TxxVޞÓjѫ +7W<<!Vyxƫ+<<2t|ᇇG+TBQ G̬ <<`+jO'V>~xxXO_P><Bgg&>h_<<3ZŇǵ*<<Su0M<<
~1 xx?#hך9^oq'엇ë<<o<< +2OUVR_~ޅ!ã|Gc.!Y'j3b#bXpxRg4F6:O#W&̄`Q]Xpx5q#pxR)'z-ϔ_g*zpx (o8<6qpx
:/OF)8<ͫ_ueg/ׅ^[څã Xks+8<[u.:GAi$8~j%zjᱮ,8<m)ZqxR8<G!BQrÓ+8<'RT8_G>e',8<۳KI +ᩚ +
O_J`2
Ojq
嗆Gl!4<KWՏG֦(:Là =}hx,B,CZ2hx~x)eI4<S2
hx^Ir +]wKãg4<ꙆGAC(Pixxeq
NZ4-
V}$jI(4< &GP~ix +UbZG6Có}UhxJ}ixXv2}_R@pgpL#Phx_EGRm?4<f2
3?4<%*
Bix?4<l +
O /
3
L[B4q?4<ܿ4<%+
mf(/4<}JS:Kkix}hxٖixR*
Oʗ'5h*4<_Ló[ѣK.4<rꙆ퇆0ߋ4<}/
_9Ds^ix'~hxX910<%Z`xo>0倻`xd +OCG RA(0<_ãةXgޠ۠0<]/ٯtY*6O +#VQ`x(#ãã(\0<o#6OhQ-h(0<óc~ax|^I0Ag/owu)0<
_ +PaxaN0<TƂ +e dPYx~XxX//7u +m^j`(w$s4<,<C),<)_bM|/obǘYxYxI
Zr]'R +oT\k +s (<TlQx|(<DCr +OOXQx?>(<ǂP +OJE}#A((<(<& +̟2 +8ZPxS +gYSh:5u(<+ +oAAJAQAQxP +Oр-(ϿTQQxWPxR(<Ԃ#Qx(<* +OS£(-(<m?(<ԂRQxR(< +MoAV/(<GgAiEkTAXQx[(zU ǸAi[Qx1f (: +UPx֝C-(<EY,(q57x}3 +O1KJ*j'+ +OGAs(-d^R@}eF>_bG4 _QcWPx$G~QxGcAIfBF(<LGNA}s֔EiVQx殒QxALAaSPx|PxfSPxXPx|/ + +ꇂ~Qxf + +Ԍ#gPx}Ft(NJ(<(<?(<# + +R
@[BQUSPx}PxVQx +o+@ +AA-)(<E* +: +P2 +O?PQxR* +OG+,QxTPQxJ-(<U}Qx[B/T/ +EAiPQxK)(<S3 +ve"PxT}Pxy&ޝg_̔£8cV
Pg£Px[5>:Ͽ(<GFQ1WPx(RPx#Qxl + +HAm%(N!p`Aq? + +\3 +/ +OHAaG[Px`>(<*J B](<Rg.(<d(<j + + +|2 +oe +\YFᩜ(EᙚQxd)(<-+ +%G<h@)(<,>(<^£SpV,'s,(P +/) gjFaQPx8|PxTAI(< +Oo'x + +C>(<i -OZPx(g1(^?(I,:MSKJBm5Px e;h
摹Qxd -o -_bA/ -o` -> -O7qc(yQx[(u-(EAx&k o+v,5HxC蛄7qsy* ,59 OGd*6ACai$< >Km" -A}"I9^A}$<fBcQHxt`~Hx'tb"hcudgORHx!I-$<GpC³,w&)ZIx_GP ($<Z - χh@!Tf_|`H~Hx*$<+$<)_j!I$< _mw%)%\Hx_j!I$<)_mǦFXaB£³
5~Hx $d^R*Bc\$<3 τ_^RǏ*$qEN&J!I,JC@%%%l5HxkKÏe2 /2`|HxVIxD - O/ O1J#IxM/ (q!+$<#$<L£ݱ|Ixq3 !_HL£U9okJ@$<sW$A 0)$<jg>$<I$<N,$<>guGC!uhc$<3 - K&tC* o)gj&3O$>#FIx'%wdGU`!i)%mu\{L!-q)$<z>$<$<ӅLjօDžIGՇZHx('K$<)'K#ЕIx$<{N~Ixb$<]JKJ_%IxT*ھ$< BJ&-u* OGʢ{$gLPCS{%X$<>$<< B3\/ dJ!Q[WHx!1+ BS(K³K&QWVHxII$ OTIx_#+$< LC)$<$<6G\Ix[
^'Ix8gʙꗄW-$<(@{BSC%m.^B3_y2e5Og>P2ԅG,TNRIxjL$<S2 ϔ_̕HxC#
Ix4K!)ZHx8}Hx+LRIx~Hx9^Q( OBQHxJ)$<)D35($<W>$< - oCcVN݅7KZHxx!478!1VUćZHxYHx|PIx - C o0m-+ Oy&($dVH%KBmcn oASx+O$b$<[R&_BC($< O_IxP$<->$]CS+p!m%$<C£ә -,K£iK&!'~HxXIx[I$%.3 dLJgo&QIx[$)š* aIx<uGJ!n%}% - >$<BɧpK7K$<Z3 o gj&QZHxD>$<B$< - O ?B3'LSHKqGfeQl)$^Ax~@x[ : -o~@xOJ|@xGު)+ <, -KJ%Axc%pGY)_AxLP? <}^, VUd <VӚLm5@x83|^T]Axt}@xZT
I)WAxXh* <%Ao -:f opw+ŷ'm0n۬U3EŇ,6Nw'A M#mO:o+ʧdcǀjSN;TDVT? yMwi]N0w$!G=ip4ˎ7N["dӠ2=x d=}ޕc'I0Sب!v8ǝfMOO'${cD"ׅPXiK\:)i&x9ռ(
:T*!R7>;lӣH߆::K_Q۶lPuµu-&֭'^]hAW);U'"=!Qw~T#ޤh%㰼f] -)N?@:V畀t=^ѩԑuGd(ŕht,x=^1c DG']$q{C4qg)]xBo!ZkZ7]9 tbmP̚ tV]S=s\@'o@'JkZ tM & tӦ -y,itMz7}aC̟C\8s(kx˺ -e=yVBPCCp#`́4h,+\9%r*ۇ>+G(a\OI͕VIw}qs<\91@gvgqFh,on,k`QȄqFz﹇c|w&`o+,z6vXWI :{I_o,VYnAӶaa8طÚqB5qbߥU\Ngym`M\XD13b][`dV,ULŁqr[5^כfds嶒r[
OݺF ql%.uyKpJ~+Pms:RV
[s]e7GI>fwNQneHarXUcٙ}<DvRRjCrޢjJ`]dmB%%hFS@Ɓh9=Fa'ma=?3YnAp1NӿJSYeX;rf*t&B;|Gn̯r,'=s\]ri5~Uqk(\9C7kvڝ]\d\R+:>rߔSr|,gӀ>aEĊ9Lզ0r(E_Jd92sLAӫªh嶒rIu\g㭝Y )# .6,rZ_̳,3&sj8uڇg{νcAEJdO,jdp+ 5h -Z=xb%L9 MЉrT%I<NdIA|]`rf)Eֆ/(=kUPrW,$p@~L9-I97FN3\Ph3DNᅥ@C&m!8ʤ4;>fL.}ڡ5NkilIvzAh)q^^nRv^V8<n}YW
;>+gIa}q]8A4qy+[8>j55/zܫA[B-1q)L5Uk1-Y?oyrdV"H
kZŮJ|ǎ>mC䒒 r[
\:ܶ r֞ -C}0q"'er2D -"׆ȡ98pF*Dn8%YdV"gnvc!r +opBFicEI(< + +8 +O/`~(<[WQPx[( +OHA(-$VFፕH(<ĶQxL(<(<PPx(>,QxZ}PxhVJFm5Px6 +5GeA3 +O/ +^A-(dGjAYG'\AI)(< +ӖC((<Nt' +OWPxK\(<fȎ +fߌ£3QxK]=SCU5x -)9Y!Ⓐ^_\Yj獁S䶒)r[5\ryDVRi0ԇPqP=~ҊjI)r(YI4qS"ה$<(rjV2EnAK14,<\ktfTMU:4-a3'UL
AhxrU #>NuO -Qظ-$jɼ72 -1Ny֞
Syqܛw]@*8=j4c\*
ctb]_ckޝIl4đg֚ɺynd:ܟ&dW6Zl8 sm4noN[43zkvy72!p[\Nd
.BvaNy7.MYeeefX8EN'*N;wo,6;kd;X-`8-mDᶒp[u0U>E\M|V}d5g`o8:K0\Ypmzq8NBvzo/-OKá2=pվJvj\d8)u_.}V2"C:NAT;J#D۵psh^Vb+r@{9!)^C`rp8߷,Mq -7B:y`UT0*pz -{f2ם@Q}8y:kV4/4'a5D{LeDW*spauYbGMŅCﳹpx*cu.up,>pE}mpKZX8n~c[?၅AD`02үT82+,*N$BSTc9ԅy -'*E#ѦxQf""S(`%T8+57 *qm*\!'~3XFus6z+ɹp1~{P8)Wi 9
(mYr&p=C_݁4ࠌ֬8aZP8{Z;y;E~\P8طZP8
D|)}@4STp\5zN#K~}J6 -5I.p,{//>/U@dpc3(^ڑpD8
@]i(ߊa4GlLBm*h'ucpPCTuYAp29pm4 -@Lz3BlmP( -MEtS9߹n*vdrrb8lc%lM`58,5}CHM&=yuSir\S=W.HtbH7IM/5'JN^$87Rin -0pVٺ*6?Pn(DڼC~m*7o-eyQ9A`ܞBq3Bk'nC[}/p_,L&XpN&(wTܳL6ZН)ӽ-sV`۔"mJvm#ϓ6i) -W̨6Zn먼|xM<9mӦyiT92#&`iBٲQgWw}ٔ:h6J}ﻒٴ4`65FT <flD٣3^1=z!h+Y@6A<m<+
692106,MXlyDt˩[W&4ؐ06gcc;ilcknzY*.[k>[U:rXl- -
piPQg-FүYYb&+Ś2A7YiJ\fr*z
UbI(XlYXl,b#K<M2}q&CKCjؚ˹My@2l!h˥4HwKMsT.233jxRZQl~y?3}PCƙTM=xFAc#tCkDࠒؤR#hl:.G!""cd,6."a`PIXl,jbS.*[#;c0z4_N"L,6(1,Fbәї'abf˄,z,zNb -AvfLOy觉gckʽQ06wF7ckalb+-*`I9>6Mg[3맾Ylmĺ$XlzI2MƷ:9Xl
x|*GқbV*(!wkI -/tl:,6v(zSgY,fd#c[a!\ch 6TAb!97M`,63^?&-Yl(HU7cSA:`l$fr?"֭06ͬ<0x9l۽`lt%\06]AM/pǨ06C_c،2Ɔu8QUl
ZfX06l4mlg,qwub6 MeVpcӲ _##R( {]!`xraalj -Uܳc$ؠ/4h0v{eIJ3`l&v cJ:+{,eݵƦR(+hlilr*ghm06
.ZJ06tk-kN063(oOYlR-Nl,6|
vۄ&46KvzM{'p86= MQfiXkcө0 >Amjt[P#qlԭz<6,.l
Gi"u=w@.~l?lZ$lm/eW2~C.DDi/Tntɂ֠:w"[7')!ka@ndӚz-ɦMωdLdp]>DMxU焱)@?2/Gb#ڟvCkv/\9Ք;
,bcbSw2MN'Pl( -@!۬Zb,6]y
VO5x'
3b)2-)@aQl>Ql_1>ZG9
j ņH[P_%tzaK-p(6)fƝHlzcAlf><$d[R9Um6%6c-S
'O+acⰡJaC,6Æ'MRG$;kf -
84XEC$5w<=z (ݜ -M*A -[#GS8IiZ -[4߽(lQ0lR,.1l -X90l
j*acg\[7ETrHİb6)t&ŋ2&vac/Z`P6TY683#:NaSp(7)dx -NqSo%d[R;@1u֨ K`VF6wܜqŴ/`kՠ_HF!p0f^l) -;JFV乏 -aCmNX -Iak>V)lpK
e8эæn9@l -Z(@lGË4m^#v Va7$vxm;aY1&Fʿ]?{[Q\kDǘ'a)bxIFR+5z?@$7L4#W%k!%ĵ -p
$kكFmm<:kbFQpxwf=Ìp';~lg -*H5D;:9ƭ@?t⩩4:`c-!!,q@)lDR#;C\ۍFsO{U~B&?m*fVnOSWJ;M.8tNe|HQ#60i-vYg>&Vzy29Mt8MfMVigS6My.NAM;n24p{)*ȴ%$b
v䥩UK0dA$lΰ4Y=Pi|vURzn6YMN2&mAI# ݛoCGڀ3Zy<#ML&6H@>S;'΄4wX/;qBR=IHk^i]B!H]#Y5B&hˀ43rwg7.|4i `; MlLCwf05i(bu Fz&!M4^hmx`ѴͲ6hNI|gѤH×<a -8]+NG[j - $j?ϝ|ִZS
U!1b>S承Җ iSG]4y}+4n9lq6B¹4Dԧ9/4OD/Ȉ43 - ˢ&PA+HGGM L@õgԬ:TA<LO@Pd=3!
[Y<ӂE'`+LHq6:!$> -HO|(UH[JF%iTP4 nÒ2bN7i(8gBƹgB<A -f ek YJ"% i}f|fYEw59LHC&"hA3i4pDZ6 -Mn,\nJ`6Eb@iL܅DSKSws2EԑFC -*TZ2i:$H7:Ǩlq[_tU6P <?p4mx4r<Nj
.b+ -mf/9lR^K) -& -+v.ݤ jKblEJmSkȒfMNE+)tJ><ߣZSaKٵ4i:]pttn월gAۖ*fpTn!Т[Rl@Cy\->-m?8 -]ۆESV's^߅k
J -\_q,4#!&5c`a~~Mo4j%PM<!BiI9OF.V^D>Z& -*ҀD+x#eLַ'PԀqH~AZ|(Y&eGVZ;ƽ%ɘUdSfzPmhe%렉!N[nQ<ha%[ Or9GL΄JFiP/x~L<xsR b畢mvZ#/[)>T
m벲?ܩdS^b'u2jfR_!?wVa4K^]R(0mxy>T-яoqCo=Tj`= -wR8H6D&P*;4KQ|ncQ>h;3lvc)J0MGz'%$uXtu4CqK2b0)ݣg<6csmbzx*>
l*!Etc,*/m~4lٟG=o'lv.C括"g$r8@*HʩeN5t24JQk2ێM N2[ -Kun\c=ѷdquXʽmK=OkgLzϫ7sD6> OӱMLR6UuW3OjV>X6L.>4ںʝDm -Eː`L5a" -(Зu\f9dD7|gj,A;9y(8ѷP"[Q랔<LUKzsx -v[NېCr,Y,zRJQG0ݴ\ -9 -*iX&XbDUˣ%]Ӄ*r:-fFJC,L"nR *:x՝WC;_0fUKk>I4ڀP7 -s0FH77?ԭq8SJ!}}ܠ
aN|o<iֶ+vo[,9TJ]τB,)P@Oʯ|`ś~ej1ThTk@vqAKwyjՔ_SE0+"t͟lR&͞7) -H峸nlb͚G\r(w9w}-eC8i*vmq8<NnB>
2IK9۫&meF4BC6B<4hnn_LOEǜxv6xی9W-lYröVOJǖkoLs1D -vu&uB{S(>X-)O6d2}C:r -8i>Mk,j5[>߶BDCKQ/XKŊk$R-APK'Jk
^W*ԡyP\k'ol#HGqKS$\ -(\R,7H91KaӺ^
utw"/.~FF3>s
\*v7V - -p?>|(&XLf[1]lJ܁=Ve+8nOoLA'}JZP(fx &T(H7͎'&5J$XHth<A@~EجCuIX(fC -il.k9e)V%'?9Aw<m -/S%jKA;ra۬6S.HѺibv?5u,'8eޏ& +YkK!=Z0X2n<"=i\2[R ->PDLN+qyaYLg+> SqUt}2
RkѲxi0f@Iz{"$v'b) Jtl9mn;w+%NN]-nxR&ـj)%8Ѫ?rVMEg_8>KE;6oxz5^Tp&-ҲS>FBEwYL6Ug8жn۩,9kj -%cAc<H'*I% ժeN%%BR/巓+E<B9u.KDMȔf,DJT-FCKbP n$9WO~U]0N'i8tSǘ=(6rr(EauFiEygH5XQCY)iIeEдg+ŝ*k86#l5:`Bv~H -uR8(9t(?2P3{P:_E&MN/r(*5 9V -68ʑe}v"(<yhmelG^i>r:HϵrrH)vi m*xeuwxuVړݙu,*uX˫>ca_~RlWH%6sD@)E7cD^"{d$=Ẫ4wVg{۬ynQQauV<!o~f[M"V/Z[<:}H
-F}hhQBX=-7ex -ߪNrn*֝ MP&ŪpaʍI7,QC7w>r$V*YQ-y,Dvf ;L 3U8:wzLEQ4+ČvNU2ĝK}\9av;cD -ic:!pkT\PswR u<
7t8+.DO-v>a(Wu}M4cCbTKo6}1B$K;Ek'yvt;ՁIGVWP1"
`P?):tUjqgX<:̬O)"pؚd!}ZG"tKw<:
(저]VP)Cm說'ߔ3sQVfJIeU6/ -ORHJ%Zj MBrV-9.4
c:SiGd=gm1e7Dr02-zxcx^!(va!brcq{R,TEfDr$߈ryfKkg$,emg)O꘠CgsET&FObL&YJi+Q!g!j@hhf6hDkOf:Amm02՜xV(i5_3j2"Q{D>B4 -!YTZO!,#. -F;Ժ6tl@vxgJIiV'5t0V-,0tJj7E~(wD=#y(iܠ@m=r"FVeb5H*R ȹQW2.Rbj:/6j\ -hى"TO -,[)D:$\'D
ꅴP)t0mFh /s"Z0l<ΦJ-{bUeϜԛaʬǾ(HCzԧdEF#aBlh9y02 ةt3rtVԬ}!"߶oHg{ݞa4߭S<2݅*tdr`} Y)6(+@:ɞXSou'"\KG2qz4<F:" n-tN;%z2 0u40eؚRQ+Z@:,mv߲'FDS4hh:rrJXK$W'ğ1R|N >UT2q>)=PWYy(G[qdZYՊ{TSeey2<.Z5~q"|0TM,Ayy*M!4<~U)FΓXERTΪUtYvN u"NDYt0
\wneL@W$4Y"*pt68:S7;nH>htێBG
-[7SVKrN.4SwY9ܳ@BEt
7ӥY<ۼ
0ZIm3}._h^cP9 -MT -0:@@Xfސ/%O -kHRaHz -6k-l<\:mf7.A_04C/OM.j߭8 -ΠTV}蓲CV*$T a֡a [ri4?7y&N!;s~pbn@ӡP*21Wj@Cĭ@8X%dBɛt婉Jrdt@5ϓLJ.Aݭ6y/d:i'sXtA(Nj{j{vBY᧑
wJGl\zRŦ[ x(N3}.8vVd$eRbsKWa{, :JnM
@1!gO~CY)Xk<4mQ}g%W$u -GE]ټеmm[Sj閠̘F}RO Q`3tV]'_.U-F\sMNXzmR5tkwU؟jS ǫM,YBmۏZFm6>FxÂv S -BbchvX+>{by9Ǩhb?ANl?TYclںnl NS_߽n/`?)hyR\(ߝᮼT?:(Vc"9D'B\BaAr>KaE,YllݷyjgXIXB&{G\+8b˒~;Ɗ-=k3ۍ}gMt_ho4oNpNcdKKY5qP~#j\.MOSUFvc,y3
1!=n-NJ܊LRO|]ʃ*JX -QCrg3ɿ3uu\~lrrGݷ+*P`9E#ΔjfG -16d\c]O IVaXvDz)1a,:x̛qx!iW"aRIU$XCսcl!J+QaP$C -eXJTTj
Cԓ^==ך:Džq1k(T;S o춱mvRRأE*uжn$a
6.(p,l$yBՁ -%,J6/[RjK͑e(ר?31.EL|PwMNopVRԩj{gz~`Jڀ;)\iI*-
ctfr/!"p4`ZfUޚ Isww>Rid+ԽT-7f]uD厽ǗbeO-.mb
V|ʮž/yƢgs4adl""Ko\.m(k*5;R1-ԈNfNbhfݰ eu_TBB˕`hsDi/٤<ɭg3IC&O}2n}m9Ua|;I>IZNK)+c8v -PȚS
-D<d
d;Dv$я2kK
"^Ӻ_1u'=8*=yHd "C)@5s2OJI -k0>xIW fcR~]aL'ixMkXVbf&Ba5/llH<Dy'"ڽ}He$^#xxO,xBi,|#PO -EicT'oWA}H֊#V<x(SLUWSxR*O'fnE@}] vE, -o xx{x$ԊēRxRH]cޔxS*!V$$N\'"T$.[$^;"#:Ŕ u''sEiH84'C)H.oO$Dv~'"P^H -'zEu}"| -$/$^5 # -S{J$^WUA'<u2?ecRx}'"v3o'"P -J2?=Rt"TTx>^H<TAy!,Zx 8"o$'N#\Wxl_H<vg{Cy!P3 xO$6#+o*@) -Qx"kxFH]ɂF} -.BSD IUTx{;C۷냈oQD=PӅשNDN䃈?HDB:EC,D<S2ϔO"JC)D<ZQxR -OR u^"^zyOB%G{V")+e"^*BSMӦ:|LKJ"-5x=*&_;D<-u|>wxR+OJ%uz1>xROB!qċqD~D̋E'"JZZx28$"xS"^gvD~7?{%iHD;B"^'x]0e"^RoAQLD<ɋZxR*OʛןRx(/"JӇD~GY~&́zB[J&-5xr%4-D<4D<>3i!-%jD]LSMēZxR*OLēZx(+_D".b%-%:xz& -_wxLÅ -SSSM/#iyx%<<Ef+Nj'H
/gU
r^G! -d'nIsg@gCe1{ 1,3hVpx$,*OZI8<P -'h})Pqx8<
ǴTpx8<&i8<o1 -pxZT>~ʟE7Oy :xÓТPY8I8
zTSpx -xqxZV^g8<{ImA"=Zpx}_pb<<TT<~oI*Sxx] O둹<<<$!8yx}Ҷ@ƋGtT'Ob$蓇Uxx\G(d~ӯQyx -־yx -=TD)ueSOӹ*+MT{yxPxxg@gW+:u<<}S
9_wxxDH<.L_7zI!'\xx'Ju+<>:czZãTtySyV^:P,ǝxxR͠4xxREN -E09OSV)ai4<<V*>yxʛT͕}4^Z1Xxx#Eyx0xx2k˳YE
N/Sԫ|h<<E`+O7O/<<_GÓZyxh0<<{eo^Bu-2Ca1&^yxL'O߾ã - -
oIã3<(4<u}hx*
ONᩎMcShx=Z&
o_pShxzR+
F
5$
nB#]hx(4<uT*+
t拆gqLã=v\4<,;
o>
~
eXiVix\9\ix;OUGRi_4<Kf%2
WhxX- -ݧ`_}6Qixv"?T-Ht4<# -
HZ4<
O|x@DãEóֶL#4ThxhxR3
BCN4<KeM*4<}BPhxJѾhx=ix:Qix~4<畆G⋆GsY_o9UhgЫ0<
o5HR -<TgC0<+Oۭ -S] -Sd~Ȫ0<bbG-C3iO0< -ONo -C)0<; -OJIy,a
)0<
GӣUax -07Зy),<ZXx(ǹ>Yxꀪ,<gpbffq+kIcu\&A*Obaxla)(_YxR,<=gKBb-5Xxrϫ,<vL,<h<^R1@/ 8`Bfm(<,62 - -hxC1G`(<쌵((<M>~NJ3OOǂh|P -2 -= -(<yQx2(< + +3JB!}PxOAoPxg - -P +Ԍ£}PxօQxx/~gN -B -O霂£Px:+ -O?IE̟I f7 -f7 -OQہZd,(<V{AxP -OJEIy/(<6zA((NF -O%[jN((ζ(d(<>QxIu_4QxRPxR(<6WEa
B<vA-%$QxzˊcÐe2 -/2Ā+ -]AiFgxGɑObFI(;Oa܌C(<;uA)[QxGJnQx_^o -OmloԊ7'C(<^XPxgu R>QxiW'3()(<³BOjASPA(dbSq' -⤄HTZBaQPxT -h(0 -ϔGUMAᩂ³J͌QxK
+ -3~:̴qfuT/jAd7 -OoPQxF(<< +'NCSHIxIu>HJCP3 *$USVHx8XEQDKJ`N/ RBSd%~HxLcYHxK)$ O{BɔIx5e%Kjpf,$<<"$<z?$<&BST%TUHxJ2 oADzt]EV;^Ixߐ?$V,!LpwO"a"1-1 +NKY9m*gyl.Z#v@3 GL0WtVOǎk'vۧ,[eJXٝp:C5|Ңaix?,oD2N[Ae{0N+Nbͱ`7رS-S찎;
8^8NI;6EҖuͥS.L:}syQ uB\oGZ(n,@VٮGb6
u6GDjkm̡kC{[NWׅ9DSnߍwN,zB<6'tGIK(_a
Sw (ܛtJ+z8S536N70T+hZl?4:";cN$dOE8t71h9IhЩi9sNb5sA״p~ۻt
w;#iFС7#56ND=6NߝA״?w#2&]#MUXt!B5]oZÆ\+E?@Fp +u=zVBPCC#`́84h,+`9%rۈ>,G,a\OI
WIw}s<`91@gvgFh-on-k`aĖsf +Z=x%P9 M̔Бr*T%I@NI|]hr$f)Gֆ%0=kbVXrW,%p@L 9-I97GN3\`Dh3ENᅥ`DFm! +"צȡ98tF*En8eYdV"gnvc)r -Oj* -OW -PxK
ޡtcQx* -O[JFᙚQxŨ(<]7 -OEף!b|0L(<; - -OjEI(<y>* -j{4UueK*}:SE(<>GFI(< -ԌC)(<(3pFiڭ(d^R9d^Pے= +)9[!Ⓐf_\Yn獃c䶒1r[5\syDVRi0ԇPq`=~ҪjլI1r(YI4q-S#ה$<0rjV2FnK14,>\kfTMU:4-aC'L
ʁhxrU !#>NO9Eom9mL9|9\&ȡYF=l '~29}5? rMi:2iAJ&m5rM.oYdףF NGz)g +Qܸ-$lɼ73 +2Ny֞MS}qw]@*8=4c\*Mct +{f4`Q~8y:kV6/6G5DL"afDW*spa4vYbGMCpx*gu.u->xEݍmpKZ\8n~s[?ADpp2үX82+,,N$鼂STc9օy'*#ѦxQf""c(`%X8+57 ,ʏqm,\!'3\Fys6Az+ɹpA1~{T8)Wi 9
*mYr&p=C_݉tࠌ֬9EÌaZT8{Z;y;E~\T8طZT8
D|)}P4STp\5P'K~J6 +4 +@L3 +MՅtS9߹n*vdrrb8lc%lM58,50}SHM&=yLuSir\S=W.HubL7IM/5'JN^$<7Rqn +0pWڄ*6?
Xn(DڼnC~m* 7o-eyQ9Ipܞq3Bk'nC[}/Ap`,L&\xN&(wTܴLn6z*ӽ-Vp۔"mJvn#ϓ6i) Bҋ vw۲.n-mkضpڦQⶀ-3^̶RA۬S+Ll;g5tl<v*kgF6: +W̬6[|x]<AmӦyiT92#&ib۲QhYw}ٔ:l6J}ﻢٴ5d65FT<lD3^1=z1h+YD6A<m`<+
892DZ346,M`lyDt˩[ W&4ؐ46gcAcA;ilLck8nzY*.[k>[U:r`l- +
piPQg-FүyY&+Ś2C7YiJ\fr*z
UI(`lY`l<
c#K<M2a~qߛ&CKCjؚ˹My`2l!h˥4HwKMsT.233jxRZYl~y?3}PCƙTM=xFc#tCkࠒؤR#pl:.G!""Lcd06."aPI`l,jcS.*[$;c0z4_N"L06(10F
cәї)af˄,z,zNb +vφLOy v;,KpĒ}teVav[n#Z϶0,7Xm6xȌ +\k)ؠfS46:جE{B&cgPnMkЁcd~(:wc!xlJ(@6M[s .E##0? +Ma:ʦ&MO9FMc÷Ny +f 6=JĦ$YGQ@l\ 1Jq(X46@"NY6G/yEb#fg"5>2wL؊$6gF&b lHlW!I%$6WZCS"xYvX߶a"T,r +MM7lS$6 +_ب5#IlĆr8bNg3M"LacHJ$M-æYa{OtԊd[#1lGIiZ[4߽0lQ8lR,.9l +X98l
jj3e.acg^[7_j*Q{9%mrPi6)<t&MF;[ఱݥ/ZpP68
,o:3#:vɳ7
m +¶D7c +6)3aBu^ig6ZZJ"uz7{[RcA`ӟ<ب[F +lK:x +\|AbSײFAb{?sn, °с.(l7*`1\}!-6b>,k5N1Hkהcg+̕ 6pOڱ{)k"&/wyjDҴGQkl&p"}1l0*\H_ B(5DT\3H0̷[I]Fakk;c; r6xn
iE3dͥXa;iq\R2_mW{(tlQx܇Wro+Y`{<Vw뱙j[hЩjyٍEfXARřF{vG%GxN@5YOMK;Nm Dݏ
FƟL(5H{:7H+)jMBs +Pݩ{U~B&@m*fVnP}FS*2?M(-xYgF3{nJyR˓iKENtY7MSS`ӎLM;=chf2mFL;TK0Ԃ"ẐK9gҎ`UQi{1eM!sҦ4,ڽ<ktQ{=WQ@p0CDԦ40 i ۾g*ߡ<G-%S +4`/#1HO?Dd5&"MW@-@Y6 ~hz'ҤZ3 +G[1 ٢5EIV1t= +}'Y?O:;ҩ趃@
\~L0ԆӺ=#/Ð3:n3P*RHm(#8>!V;SgJ[ɂ*ŗ`jwe>Ԛ!zhsbdj@d05*KIDfX TKP&n + +]ۆ:*YNBu8$K3e;A6HO(*rZ~F)8ӌTh:U6HiVØ50TRi'T@X5Ғ6f_.1X +ó['ٝլjݼ>ʡ $j+z)c<hi}~
0H˟Ϗ鏹0ZAkϖԦ<zV$ט`7jC++'qaȵf8>>DwKrXQlE:SkB}%Q~)0ԉt#ӡh//Ao;T(ybEkHKU~ϖD |:c ;Pӟ%7 +5tgFEK +3!|F6oâ؇9m:n(ɡ
+g1ЦXGpհ>i
;ހ_SZ?Nc)&Uvxw;n<K
u'<Htμokl7}q}]|SPHDv*Lo +Q> # ,>:)ؓ[Vp67H/}GDMٍRsL\J[Pi3`Ӹƍ5 +Po}AyYB8L() ,=&[ +h'lBݤG +͍]"X+JO]smƜ+j, +e]Oa[ +'mcˊ=7g&ѵd7;ƺR{S(>X-)l8D37dn +W>!|w@>TU/~J~~=.FĄ%'hc=i`KU{hLy-
<Du +mnMe#6I*`=Oݡ8ySX*j%gAK@10p:aQFSSDM?cge&luQm+8*hRREoG }ٕ,:4ʃk@;w8;$ +:3O +il.ﹹ^%'?9AwP=c +g/J4D[T.Ҡ"@`lBU#mβ-Eu]cR_82ď7?'5Gu,=O[56`Ca9iln{<B^yz0BU5kx\n8k%_MvC;TH|EG
f"RL/zcCJjuvljaJ aI50p\X6fDž0Z7MN姦nZ5I9NicaCeJemZRHOӋ5R3̄}kzxD] +bmu˴!bHKjD2%~4L(T1)/ż<F3pZH`+* Akyi6!fvxnX؇%|0MDZa'nbdMl6mʷONH8QjeޙcgQ:TU7+X:Nvͻ
4-=^❳DdQIDьX.4cAN.qn>a2.6z Fؕ('vCs<1ߞ
t6h8g.mЯaۻ*d~_M br_y$穗f1ɇ\R^_nܽ}<'(&sU }~C5mlbW3(q$=vHfw'l<G⠠500xN[[e SawG4`6aV ZJAm hUGȟ9]˄eS1cdڱyBx4Lԡ]%ZۿSvpԶ%QPQ/,kM'~3Zn۩A-5kDYFCࢾjaŔzYRsƉ]\9k^=qIoOP"*(_8I1+T$z"jB+GXXTʌ&%g[(9+^CA'h_=Ֆ`'iLgqtSɘoUN^E(ΰn<C +lR0(1.LдgyIֲk86#Ok<uȄv~H +uba e:Dad0竈DCp$r[f+XX(Gqש
~"(<pC426#gڢ.ns-;R-0gz|h9d|w&C'JV4sgk? =d MP,||
31Qq8 +'[̺Ә.Au=mRdcMhø̍Xo݆?ږ$8GCnd1Z X99vL CU8:wzLEa4+ČwN9{Ie祺ZYvȈ(=t7B*9pZP +Zr\i3D:MTR{۰n"ek)),NJ!(ra!brcq{R,Q1"OoDGD<5g$.eegV'wULP!\QE*-p +43cj5t.AD8,
mmЈ}xa"-Wsp%@?uܖHG (f=tR1=J5!,#. I5
Q_uZkCs),@)8lmo5Qxk3$tRBrZn
:lP?=)|RI7궅AFh~c[H:QrGIؓ QU遲>?T)o#P[o
}#2L1@>q"PY`.+uX-̊N_^)k)h'L66!),[)H:$\CQOPH:
Nã6<yQ_IfL%O7T%1Z;U@= +ӛz6N{ +T:TO7H}Iu$JN8,}sdҳt3rtfj^EϾ:!"߶oHg{=a +2l͌T9c\H|l +pRNز2<^\^5~q"|0TVM,Aμۚ*M!4<zU)FSS=ұLRA*37nHGFnQ,vh8*LA,HX"n1+IJCp
,ć4*҅qvoƣ'a@pљqHGAGv:jxn٪eֶZҖtu٨eq0h$6
$dlx7]Jx0gyv[o +kHRaHj +4a˶Ƈ~jaI>1rր֓Kɩ5U l,3L8q[(xW>/G'%K}6# + +lCAN,qdWj0s2.uX7M{e +VCx{^v^(ֳ"Iᨨ+y3-yQB)5tKPfT>`[Bìlt:QnxǓo\לt:%,G~G9V+/%yTM:b~cU=ZhTqWV%K0Px{Q+SwfAcit4:/ް`e 4p-fx6=Py[SEid:-J{L>k>RVVemg;ř̼n8sc`?}D.L[ +t/>aOs87ynGu/)3\:bT㶸qe6ijXHnQ, \E\}a7
s?_ޥΔ3V;@%)DF97ϥJpL)&LY;u=A^ĿG>F@6Sf(!TzdX'zR?^$cwf< + i"]+[oe*(<bb[ǵU6zqLŰQ~J]{@DD; +?zŲ 6TE2] +IeOMtlI|Gr㶔})-KUBwòϗモ,RIsn(n}?.lS5(mѺWl)}Ja7ͰdwNT98umTkLʧ6ѡ!t*i@`rWm*=/jcdn ܋s'՚jzSf]i^YqUT{W݇LFۼhs|wTR +r)vX{<xgXIXB&|G\L +E8ز$b'栩1iŖ=+3
~g합h<^;"H/-Ef=L*DڡiT;\J *[wFvc,f6DJ$[6:+ +#BcGUNRB- +1m"+ɸKw=A'K5gew,lϡa&R2pz37F|u,MjX>EB0N}(mu1hr!7pZF>ֵTa? ˓Gwϵ&qѸPv(xrzN2ݖ#ml߶s#+)I"r*hbwo$a
].a1X(H:# V7>.V(`g.!ʼlI-u,CGq(-b:{>{ݤ +
g%ENeX;-c`?{0cirp_fKPm@<榳&"Ge\O3!iNG*;플?2<wE.M%FZ(iD:9Q}cB<}3.ﲧ-)lb
houٮ/yƢgs4adMEDNQg3<]Cc{_P|Q_]R#:)IJhfհ e>utɄBB˕`(sNfD6)OTr7l82wۤғ>2n]}m9e3Jz{S#ŊʘſR;'O,e};m
?w4楴=#dSY%\q[?"Vuy([yp˪%^[ʾwKUnO@|5"sMArkV.($y]-ڛxF +mW6~64'xi +ώH<x*8H<Q+OHʊo7D Yx7ƈx3'" c!$(H<ԂC!mH<.57 Đ5N`!D?bȌKJ-5xML؝X/$ӧHD"q.ڳ +1'T"">Z%;.Dd"^R]x
7O<J3v,$RO2U+zk״RPM0+AP3@/lmL<DēRx~e&^#xBxEP;`Xf&\ic40W&N#X<x(f2&ēf≚[x{x+L]!۵+L}o&bad& +OjeIL<)o&ޮޔx7Sr忘xR+ +o'0ēXxR*oW_/&^yDfuܔu''seiL` ēJC)LvL<l&OJe⡼x]%O}3 xo)TOI +2:Kb%јx|`xR+e?3_L<סd&^]7'xe%%1L<Ӫ뢮&^ע0xIu&^W0%1:0:o&^W0 +?T'33x]}L +o߶_aIL~̙'2P +$K2?=RtI_OMeɋTx?^L<G;#0bYf1802o&/7R#^Wx_L<gCy1P30L<lfW&T2oS2z33x GbA`.L<ྙxЕOw2xSL<&]~o0vR +o)` Ox*{39*o?1/&ja&~_aIL<['gL<ޅg7O3Dxf%%1{+O鍱/&R2oSĒx_L<=]Eb&RU&Bo&"ǸVx苉GēRx/&AēRxvO2L<o&Cdaԩ0xK
&W|]$M Go$yǵ_H<R"xK
$V=!X}#A2<_AiF (.H<x +Oۨ[JBH]>+H}x@.H:!:/$^BBu +O LH<SxR+ P^H.jEAI)H< /$g{Ux}?ףW $T${OjE♒xI4(#V)5$o$65<e$^RoaH~_AiH|_AIH<))FI-H< /$^m_FBuf^H.:!$T$g+H<Ԃ̌/$^gǓxiEM!#H양xo$^Ӑx-x_Fu-^H.gFAH$$RMH<ZxR*OןRx(/$ԊӇH~/?#@ xK
$SH"$bo$bG̴ xK5$.tF)FIH<)gēZx(Ǚ/$^O7"xSH<ׯWxL +)x +Tx:,#f$^]3I[JF%ՑxV$^gB/H<)$Zx\ /$?KB%ѐxDR)bFu +O7O6&,9o*@u+H~]Ӽ]xzT$T +oӠ]x +ѾxU$U\E7O"ԖGiAY[JF-ՑxMH<:Xxԗ$m͎8?g5gFBq\AIy#vu(H<o$n:"/D<۪-OJ!{U"b.ӴG"
x^D<쏉hO%ѾEij$G"qX&!P3K!}Hs" +ϲ@<tRxO +|0(R(@<7xd^Qi|@< / +#UWx^@<gC9#ARxxGvݙCPPyxcy<<L|4>+óc'TʋZxx(GvG +<<
ocZ*<<
o@Tzgʋ1 +_<<-b*O?o~훇'c<FIhQxx[$xx\ +c\xxo(2OkyxRݠ 8F/raBom_hŜx2T d ^?7On +똽+)_x=2d q#u*2Ov +CI@<ij} +O +S
Sx$2O7+ZxU ^?_ @<]/ >I*@<75 +c.@~UЁxv2V <x"|Uu#8}c@<-ēBN +弁xR+:P,ǝxRCi +S:/ O@<:+He 2/ !lW#XxzU o E:liU +Uxj_@<Vx(/ ^Bgg& .@O ^ע*:o cru4}4[O@<xzY4g -Ӈ}4T 2C!t^i%T ^g/FOuZ]xx7P<<)f +OjV,^cJsH5#s +xx]<<Ti:EJ +_e:/^{IZiLq&us<6ʙSmM'OejoJ*<<Moenv7W!xx=N@oNz +ӟHxx=%ixyx *_@<_yx=<eZxxzxx(/S>yx xPOJIx:-2wIy:G2OJiu%,TQVxx
ToDÓ f7:oĂÓpx!(oԊÃRpxR8<=,8<oN6ث8oa,8NCur3+oSicdfά8]hoޮD`W|/_8<S28qx'qxl8}k_8<oԂSGgQyPpx|4 +TÓcSpx=J&o_=V$/jI(8< /&GPqx28<9+tgqã<v\8<zv8<^8<aeXqgt3rM퐺qx2Ӿpx8<Ldgpx)8<J +oO(8<l +o?qxYpx;ɟA*ogqx$qx +[Ug(o.Ӈ8<8<%(E{-
^8<GV|Hg%2"ov}(8<h_88<] 8<Sqx +eã>y?99U
hۋwЫ4<
oLÓ4Ͽixr=U\Ooގ?.4<i-\ixnU|oNQ)Uix* +
19
/C3
E)O4<:4<Rhxv7
JÓY4<7
oǒix*
Wa//Dy)0<Z`x(ǵax0<gpͺql*[J%W@e;x
tL0<
Vax!J{z'
KPaxN0$$Ryn՛ .YGKJ9,<"L,<٬MRFf^WbᡰsSYxfs\£%XYxGcQXx`Xxg2= +P +#ȋtNaQCXXxd|^,~?o~CJ3 +OʛZXxDR3O(MeP-2O-,<V{AxPOJeIy/,<6Gs#,PXx;f1,[jPXxG?ȘYx&|,<TaiX}PYxlo?£7싅f͵o)(TgOV/
9 +[f-! +O+dyVy\Xx|,<\5'ӛgNYxK
'W^gfui1qf>P2O?PYx^7'#ЕYx+,<{NYxUFe%%,<'gGpaXxK
Be~Tv35Ũ,<7O&Q1Yx|hXx4,,<jv_,<'8,<* +hhWYx +o)Tu_|'P^,<S3K~:3One-%,N!:ZQXxV9d?|hO3ěR,`QYxfgM2OM.+o'2³FP73ԅuiaNRYxJYxf)g7OKCI,<b,< ''Mei/WYx{Vcw£ca:³>S +"£PxK
oPx +4Bf*()+(<j. -l3 -O/Ï4CQx! -OU*2L5Px9* -l>QxfʔQx2(' -ό2 -of -O҂S9IE)aFᙚQxd)(<-+ -%#
Qx* -O7 -O4\Ea%BI(<)cA -` -|@ -O} -O;RQxII(<S3 -OW^y2*(}(<YpQxR+ -S'$TPxwB7 -OjEI(<)ojAʂ/CEdPxv -OCJE-%(<+ -ˇO}* -QxKH() -Oᭌ#?Qx ~$BAPx:}Em@iBz֯R2 -o³7X(<(<UAUڌSSR2 -Ԍ£ -vuuPxR+ -OJA!PxR -x_t+ -o) @/(]K -fߌ£3QxIʪ -O]WPx"* -O1 -ObA!{P -OJEIy -[BFᙚQxԡQ -O!-pAѾÐ(<}7 -OOAE£ɮ;($$RGO!/iBÀP^$<LT7k - B£(HxK
XNE£ԬH/ꋄG\",$dRRBӨRHxT OJ3哄 aXHxښIx:?Hx;$<^$<E%* Oa \%bMS.SHxS$) OMB>7 fLj+$wG ? Ú&";K9k"G -ROkG92D!=xğ}8bә-~ſ}خnx
Р+1UvʼsԨ\+^;5py1كSgwj#$^;A/ܝ3z˴;,kgp=Cn$ -~kIuMkcTNMCաNU;+NOr.R>ƹHuRO%յ:{Jսǟfly=T'ul۳@u2@uR:!L4WOR"}݂ -[U%T]q$]S@ªSec!`뤺SCWP,Z:<JZ:jϾ(uf\ u')2i:Z:*:9Ê6!?L[gXF̹kiN><KX\N߃"t'[ҁaV.Lݏ5O/3g$@0m -}P(pNŰRڋ4ܧS0GUsX -$~@ױ/kaį -NܞĪk0oTǦ+3Pms:R[]<,,0tR!A'0Fw+:n)p9Yg)vmG:$eMII쩤z\6vɓAR}tm7tKN]yDJ`+F`%=;TxݎRA _AYՃ^BЙYt
5D`cn -\tk2hV70sRXO\]̡J
9NR5c3g@ꉙBM10s)@)vK$+sbq,OU
eAKɰnN۵ko"TP6*/m撒hsK
\z6is|Fk͡-ڜ6'ep2mN*C͡۹hs(ZeڜTVГ6{kF̓r5}L^0DN斒isK
ڜÕri7LkL{>NO?_+.xv(~iR0qR2nnk8iUAbL7'ܜt, - jGP{,FL7h;-%:qsz(vMgS.>ǢMaB(4(BNᵓJ9n9ҏ8m~}Hs(wm+i<Erj6IsR'htAGW:i)M\椹R443AQ)tB? -D_Ɗg<W\ܴB\
L -AՅ2mfTf=ڈ0c䚹 'Z!5/Z iKu'{K"ȡ2BN%L!虾d8Q\ c! 51[sB9s!d݇k@u<Ur"pSD)Ą u2n"h&!G33B0Th9duMږTMs!hV3# -[;?Nԯ]qj 8pH?Nja)^a:BMt|Iyx}+kJ|TP&>NOѣxIaQqR&>ECQrǑ8}&?qMSkTAs4${q6NEc(qA8GvVz"PhDj7q}`IT@І69:F=53Qm0[3pz
'oՏnT -s~8$A0OR1Mz\71DAfTjy),IPOqLaqX8}~[[/|0O8^d KG;;NKuWtDA@]i(ʍa`4GlL6*43NXZPMd gTby0N!o'M+ ;Vܕrk\6
5ާςtLP[OΉZ.ʉS>epZ''N{-s=ޙKGdSɉ#FzrxN`Psq4{gPq(N - CQPދ=HqvWR>X8]1q#`N8r9PqO -Z
.j{˅(R~+R<d?gqtCh8vGѵ6IDEyf0Z2"NS~E[R']w{lQ1p92p:N2XN;&.<NٞwGB&pf,#ߏ3Lfj.p*theF]ߌ6J:U6Ur9>)y8MISx@߶&.lV85CUlMRߡH2EsdO8l/ -Sp?eI&!n͊QJv;qv}\7Yƫbg#zw+aY!(,V0w~̞T?6 -w.@#qˈ)$^Ϲ`nJd**?Yn2*o]QnDrKy9nR"Z<pSi9nNܥ&}}YTƷ閻ow6L&x9vUv}e""}vGA1t6sPڦw~Arj[S5ydMs CҤ@89Vڦ3M/4kPxR1mZmUlʹm- -
3m(&Me3Mi
5*{AۤX7UiceW39%چ`BۤPp6 _(6594H̶fA˽2[mR<I$MHb5
$]٦ďSlSiNCbub)n`5(6fF쭼@0E]m
/f -Jze3M*amªm /cTza6b7ѓpƶIHpb6Y^BHDJ6Lm"hJI36%NC2Mw՞rumzB&fqX*dBGtdB@{AJ3M5Jtڦo>84lZ&jDJ&͔muچ%mR&&жfQ}A mCj6J6mvh⠟ۡmkm<thڦmwkivB4X4.mJ1?Cءжm4̬2ynUm]Pm4MJ?c1ۤF㯴Is.h[3Ym*˿ڦMIm#ȏm.EmȬڦBm]eP̟]ѝ1%S۔գ+nR{g3mJm3gԶekF9OaPa&j矫Rۺעh6^iN&J5~٠QSm>c:Sqj2+VZmj[#rGQk5QAlԶFn6c۔TeM -ƅ٦f6ZI?ޅ4m)#49#m(mЪ ۴H-e"Tyş6G42mԙ"&rlC-m(9s6Y_>w`g{2p+̶Ξ"3ۖ!aIuffWY?o-<61_H6D\$نr8&ժA=mR45di
b8 -ؖDl[jd1d -7u2UymtS6m
帯k# @qں%k4?kk،6
wk[BM1`m
CmM]g휬6{TTf_gkԦԚ`2
1Rk:}
R3KsKڴﷰEږ96F-l"YmW)؆[ږYmIu@Ռ4Ѻk+IOXNWLB˰6(VVÍPpf^`maml؎sֆFM --hF -\2AlSלg+=J3۴f0u\tvV)YAGbXV]}o-61,k5W>]&s,JkW&Hx<6Eu6<ЦKhp9w?4mx6|lz3 - "o\@jZ32ً/$5u
=gfc_$5SP(qIRCa,522KsM&1QjZ=oTb -Z6ѽrP/lNޕ5ZRi~b5Yt`P(u\`XB8E)'λM0(jK
6fQ&
FM8vq %%Ԗ$5.Rk7,5D3`rZQ45m05i6:M
SC aj:=S=Ђݹ3Mms:-%Ԗ05{hj'05U'Y0/T>τ)m;SkxlmԚa^kS3뚀QJ#IԚF2k8M0505)f05Rc&4Tҹlhj}.M!Ԧ(5R 4G5 -kg/V8eO
RKj饢iOz`2J[yNIJM\KMfÛ fjNZl~(bRGWF99Ag-!L@m"҈Y'tBˋa>t?VWWPjl(5-:(5YGĎ4i@m{ծ6_y\*RKJb-5XjTq.|Hk?QjY(5Hjbgq.ww9#m}0^JB%ORKJB-5Pj}esUlQv=UE3(5xSaBRQj:L&RBFM1Hj
EKz-JghH͔'
fRu8 -Qh6zD^RɅ#^[z$"nʦʰ18u -t8Y(3y%t4AӞ7Vr0Dm -ve2ITh8B߅]e{l9Ż[ȜID&\|QЏ[f 'iՉB7\'Kϐl$sYCD -O2Qm PwmڳT:䱺+ͫqn(egY*XLS"wN.Kޠq*LǵJjS!\Ȭ$I2*S(_"|G8ҖaOڞHe\!$$cAnrdf_WbfKs"3k
tm Gۂ;v^RF+ogx-<">x=ItTHƩ}6jEXi(?n'97UWb?7Rkr֛[Ryr3#w5jE_]mnQ*Dx*?5!Oӏ.֏d\ yu'UN~tٶ}Uvё<m=66Gm";<mmx#yeѐZnn$O?l4iӏNC?Q7](Kr{{~s8l]$ D)BfǖVVk4:ށfx -pCh닸NآWgRmˌnF XoQ/BZ412!vVǕ")w`-MA7>Uhyka6DcY[ͺ Θ29!%N* -BIDP2i̍MˀD4k9C}j\o<OH^odwyȺ5q7% ?szU.ih2A6'7Yufde*C4bMltޏD٨ 4NG>\r똔~dL֯(Q"ZŌz&ɪ91J1b.(J]X>%h+nX¬Дl"Vl&<Jl#~r-d%ml{XP1| -m0ڬi8,vjYI
)& uގ^gc<^1RT'4uMyW5,"ls=iܘ7bpoS&k#:=yk<ۛC6ރ]Nf`:{#:Pޱ/co.#3:7ٮ<P>11ZE#$^R֚x<ِr$Ɉ" -Mex -e&Db.prPc;2{gm8+iUwRRˤU1OgD9{p̤3HL"2 -,](JRڛD^qam{)I/3O(0WK^.P݇՝kNm!DZќَPq){PRwNcǰj-k$`&ުaJCR3igVh:\䀉7m$!x3pQjٷ|l&4oy4%t&P ]IϺk'8k5y|o]
LL;`ji{?
X#K2wncɼ0b4EV6#ylN՜\K.B8/?L -Q)gq^x銊{&6wS] Æeٰo
!&;"+koܱ "q8gLB)4b@ByU㍟Ej -z=[^2jPzՕ{ۢpvHY*{־5Zֹ0v+L5*xdf+ĉ &dA}X7]ߚed"Bg;U,Cߔ/۷Y.])ȳn!Ӭm.
X XsĮ)1}mnDA=%͍iƍn"42'zDLEjc62刜ٰ+%G&aA:Vnc:SqP-Tr'+%X=IVG6eA`AdG-9:Ša^fkH^fY
lL̀긱_^ -! -dSWEgD}%f{ -T1hZBG -mK{ah55:YǁI3Bc5 -Mn/& QwdbGHNRrY%{e㤾e=ˆ&JR9票^o>7nJ1!h`3"՜3.?9I&uCWETvkuf6iR-!6cqFF,g%^v]vFF36|4O}j] g8xhld-c^}iSVޮ#"Aob"ȔP"ۣU-o}7So&oQ24kTv\K
AKL_ &9_/f' m t -˙BIL=^:>%">&EH6)' ϬP/e@\sVr%m8sAuۜ}~vAs3=|[Kޘ%\"Wi%h sуk]Xƺ֏(ػwOYk(m=IڥI}Q.W~T^Q'^NLD?S -Yg>/RVq"rDHT-|}͇S{E#xgض є=<k=c%jk5iϒd@#lCh$^KaNqT)^G-G4]H-û7qr6~
7P(YlL#J+Щ@KAnIh - 6 -D'+|0$QAD-v9;?&Qt H)b#/<k(OYBynYS=;R2BbӬd8=o&ȧY0GQKJ)Y6;"5:Z}2B9 P -*mE!kDN,J澈v2VJfʕ2~3>[0]C`
AYNWi -9MC.I"8ezQp]鴧%s6aA|BŜQ>VEDp`hH.k tS+%{tք/E{ji n~<mjЭHꜽCNDd>#R6U= )1N|t.
w8F=ke&ʩ&ZEz6fJ&qIЀ}P]k@qC˹JnJN)j^%!:)F\!N6|cNi'rFI3!'Lsyyd+-%.¬Ұ"ؓr -HQiJ f{]CCn#9x10줮܅_"*|٣v@ublZXi -6T@8APE0{
%1C7z;)DFLh3۫/2WhHY5ha<bqLzC$"FgV3k@.ǡش)rti|@c/[F9}u8yZmӛ6p`jG3{NA̟ĩpB<>H4^)96K_`LZ-."vd45/h -̡(w##}0CA?(Oԭf AI|sg4ZAJq!!SmjjrJkV`S;jeA:~l6JQCilj2ËZ\!vsr~{ -h0=v6o4Cn-iڦ138;M`dR -t"Wر"M07䆾J"Q<sע/,,=f -dVWAbUMLNGc.nbFM/~Z^rA"8^Y+LSALm5ch꼄A[zǣjȡ5kP'y͆`"/7FA7,xIDKrL4Cä""
n@:N -b7
b'5Tq7
7K<&Mtds5:WCc6jD45j>όj}C{2Il?Bd9vU$+HY59+j0.$Jӏ6QĮi9
(u۳t^9[DP8/#BU$/r -UJs_{Vk,+ш@=>Y}T7n8wFz HWg~X;Svㅢ+%[};ؙ3 1nv<KKq$6؈͊rKJgP>._$q[764i>f[^f8n)c~0-41.|C^wUh
b0.IqШLi2[\!V>-`
x[gcfe"Bcm.e;Y-T?IҒT
EQz'yc+e#oږ -oP~.,qdҺط=[ڳɓA*o`l> #HEQٲ8b֭;46P(NA˪n\#ĮKrM -j@hڍ)h%ASFacQE^RK5witԌoUO5})Rf~ '¼OhC9 YmGl0unI1qjx$;n'`H\ˏcמH}tR4X -oAlTK֛5"pf(RjlVsWr$h -"1$*RABֲFtw -+'ˈX9m+<ahzKCS!OPiL8<yO6]A.[[Hs6 -A*,34.<\;EK^/-!:DIֺ@TlQh
OO0OrAV!M4la@b%PU&\mP^Y0oQkxH=w
Mh:mi+I+1R),zT&` -c -j\Kil@P<)ʫh4q
^
8> `y~-JIމI- -sY!.rME}9ٙ-O1{5(;%JůUdo(k%Cö+cϒ MhDfg -nTQK$$
_a+9eC%?@K}a?\]cB -O6{$YE2K7&JkUnC"/繰|ogt3uF[j߂K~'>iAAL~S$>;JԷ" lNsʅM㍆Vo(\,[KO0Ze "sΖ˙Ға% -еtZbHΈ0NSyEQadgoѠ\3adcPF`Z7DD;Q-)oz`ۺ -G%3f*a -&*egtñ}-Ҍw'6k\kA(UT -rj2nݭt|_12JZbhIzX<KHEҠqir4dAlڼ{,+̡~xOZyb~qm6,V1e2R -v!FUkejh)G83hcMyds4(/߷za%ݏotgb3:dU[%4K.mXq7RoC͍B *^KѠ`a샹7
5JŲW/樆wc`Hq$K\m%<>`^7+0;3ZGKHdj䆬7Xo 7AE`$sa^8qub@.=Vu:yo -5yR(l,؎ݪI.FZwUQ؊\g[i[B:iNt|n=,ϐ2]ϷT$-Cqd%"=VAGBRK[=96C.^m8olB[Z6oRa4V:iՃx850Y;Ʃb{)ehK:4O+[6jUKoKBy楚]̂GA]WcdH)$KW'\vQieEAQ[f#Z:Y+HM/lD\5,,
ZZK -)I @o̢XϴPxFRmhbm{1b)10^hVu4=ܨXٲMԥ[V5<i)MhfYȏш[h~LLjuaG@To~l -J1pjZTc!V -Ijsxo<(b^h>/5wh?Adəz8]?ѓz\nJEejOfv\EeJ^QBJ,[c:.!Cq+}M('Dxo&i5{=W?>+#g/P]ͭ GWG_s
0WC~zI\ -"9f F1H1|fԵ -ᒞg5"Ӌ_fap|Q/*x9/q(s -{g.8W<GsBxGs;B_LkS8r*[V;/롪ibZ}/{l]Py)u#>m?z<wvׯ/3/_$M -#Y/Xx.oH?q/Έs}mW;w3G.ŭǴ.#^c| -qt^{j)c?
v~ X&9+@OnM/ίw=^^rfK<1xzxqj?_]J})cԝn]חy\^loz| 77q3fC1CgSi1r(=]t{W`(/Gw7E>-b=b'&\M'$WoC=HWdܰﴯ_ -m -m=ox=!xRiۯ -)~]
)CҹJ)1v2/SI8R,MNCgPRhǝyb[u.>Ԟ%HΎ'םI +P'ܺP±˧9<Gc%t.JN]+Ա!ä:+c~SL!_խuߟz'|KNjcL./!+}-rqTZ_`o]|.cV٨'<~CBGc.dR|
o3)]^ʩL\_ɩaZ ]hr+ -3dA&$*Yje{NlZ$aH$2ru,7B)jץ{* -i!fQGk -圀qa_y$lM~'BqJy(E)&bJĖJ~q|Cy**ёN+Rv<QcvWBLA'i#;?P`.lpאI:hѷ|NF1'ɒ;? -*GCAPV6=vɐtȦH
JEh`ePEک&1f#k`哋p+L}6qO>p#s"TQ]BH=D6AA`*B%ny|iAT(DcT[㓥fM*wv}=L8*薪[hrJb2Q [mb$LNVl(q}\<iKU7RkPf]eEO>SA=7!߰\%9h8!ePf8NLV/L},K)HfzVL$VnR%N@PtRR*N} ux&$D]d_ԫ4DTQMxW"(QÁ&&نy<xxnP4TG$y3ZH&t)8cƩ-GՕCGZC!MV;6]ņĩ`jTyQu3*Mj'wQ~ܡ1`:#)9l+둕6sLI/c斮cb]=]=/ -( -u2x|Qٸ68hzD{(:LucPEJX4t(ՊQ1 +STA%%(}%qGS +YA+(<:ƿPx/Us *QxK
~Qp +O3@њ5yu~;(<^(<E%* + +Oa \EɱF)FZQx*)()d"SGUFu;d3_wӚ& "=K9k"cvOkE +N;|c!Qus:{kh:X:
'vͣr0}aϸ{QNrHOԩauJ<ǵur*:sl6Q"?[Xӎ¡snDaӝ'%Ұ0.af\:}ҝ#Ke_"G EmN3g&H +/} Pp80O)Ee1D`#`́rƜ6%]+~N{1k-w%u{į:4sPcĴ> :8KnZeiY<A=:esc+@uYؔBٟkᇽбUX<m;'uۢ/R:机`髳=:}k 0%3:oVk"oFAĞXlA>+{! +~B(S}tm7!tKN]zDJ倓+A`%=;YngRA؍(ʠk +B{1Yttj^;JƼCr:j`<A'k!8漮Sr0=N'ZN}(T7|l蒒tK
]'?uE 'zEAxA'Px+t,bŜtk18voJ:ML( +&_[n)A`u6Wqx:5xO:~Sp,::g3ShAb{4[)3Y緌!ϊT0d5oAU` 3aZL]0蚱GeihrǾpsTߥ8k{VL+CA'͆R'!0?0Bpڡݤ?'m$4<. >ƨ×"G[sTC=mXfo}qjgsʥ},꜖z +tdq/N#s*X9ͨg?o%Sqs_9Ikn 57 C@=@sm6dΜv3Txxr\a_l5J}q +-M\mγIд9f\ޡ5!NopM5RbUÊgN +ək"˜9TBKΙ,U3gN_;8sz)d3טkbD2h)M{Tv-%9m-\](vo^=%%f6qs|Fk͡-ܜ7'ep2nN*C͡۹ps(ZeܜTV7{kMI`9>&1DN斒qsK
ܜ+n57ט|"~V\
diڡEH7Gӎ斒ysK5\SIUi0ޜԛ_.xsR>X9H7'Ə͡X9μFLoNwvj[JMuRL&H5J8*oΦ\:77EiR蕥A9r
Wbȑ~@xSso[EI|Ps(̙m+j<rj6QsR'ptG35ה۩.sT +jnk!xԨDZ:JeϏA +np'M9qTN0erK3鞅=us0HN(̑#&{"qS+ +CnS7' +34V<j:n3aRrK
9X$nWM{@NQ2W"h66@N'>2@NOj +73bȩvN!չyʐSy5&'CN
bF!t )v;frA.PrJLۯL +#SqvB:w t-/9ރ!Ő2Za̐01`BTf})NN"k"7Ä3tYrdĝ0'I = rQ rٴ9܋ VrRnu(>ldQ2`a\|k Y L G" +.Di$WqW?Nt^IŅ2qzc'?N +ʀ7q(dL~l GzC!0M\20:ZL@aiHE89>Ԇ +ǽ>r +YqȮ@-r'Sdst:({dkfqc0fMXz/|5"ON7nT +s8$0Mu&>Q~:^(p3E*3Z^$(MqySfaqX8}~[['>/r|>tO8
1/@q.]qY:N a +ap4GlLZmTj)/hciA5q'QqZ"Y8".NV +S>eZ'(N|-=ޙKGdS #FzxNwk@@q@3)'$š(XPq +CCy8+*Nv:+Nwl\%إ+N8yVCEmoXq:+@{/Pq;LS?B{zO8L$%Ǹ=1dFvaW']F!EŤé;e=t6M"pbKl8호i8vr]>Lph`h|?s0 +A`͢#m8t)mMTҷQ7/b۔,8e7 +]}K %ɍMNڌeS(Mp۳Kf?bܷrQ`n=V~iBDQ*qǑoNڋ69ֲoOsEГ75nwnN
+x|q}a۴|\uƶdKM-֚OVUΦ
UmAmCO6mR,㘩mROcm8~EmbTڦIt^6οɱjIm(m>(694HжfA˽B[mR<I$MH5
$]ڦď=Sm5l!Aۨ:cA۔{\{@-(6fFxV^ m
}Wh[
AP8ZٌmJXfrۤj0nyRm^t| n,mkj5mR1 Nn[ORHi&<mDBAmC4SiNNmS2;A-S0^絨mzJ{62|cQty!(fqX*dRTGtdR`{QtMAmk"&aV4Ͻ#o`6?M"e%fXԶrޤp jCImkk+Ymmuɤ%kejMƧ8vj[Ffj%7چYPcPT[)mpNjM43 +UAmkQF3mͺUh#m[bJF杌lC@?mR&eg6 +4?&-ϹmgŶɖ1#MMm#ȏm.mz[9M32F{Irm6)ۦUqۦ;m30WlA5X>uZVmXyF3Y`@\
FǶqurH65PS`۰
K7oIƶ.JLc۔Y1kIƶq&3mUö3j¶Z%m=2Om)qeM +FP?mZ$mm/>Ыm26MƟJ6Z0m
N|ldi%`۔=mB_fxVl6m,66l<#9}5m +2
@wda +w)@-lkP 6rHڛSg[L_LGwqj؆J? +_(]Akә'q;}UeZT+MF(8hm +h/6frZ;Ak#+Gŵ6gabI`p;f;+MA#m +Z@ʟ9opifbk;ĵڔ"1`m,XmTYƥ.Fʿ]ӆӆa
se#iSph({mJ^6 ci{IxtԂAp6`_pc3cdM!l,A@..5P욘tP4#Rl6^mLd
B<7/uE-`B/Plwl&;M+' dRQY|5
֛ a4\ObѦjo&W+`yno2 l*MDK4. ж +_#^cx.5n +MM\
t/H걸pf;TGv,{Rk^
5VH0Ԭ%!SSFRRkPvd3 +0"o\HjZ32_Qjz6*J=qqǾPj\aV]*`j(22LsMMVcԴzz%b ie~hfwIMwp 5kt فR+ +uxDinRS6`f')*n^ER6~ I][ԒHj^"Z*!Hj4FwgH^;AjjK\@jRAj4NHFYkѴV9HMe}1H 5i4֚ 5yklZ Fl&e> +Z2ѽP; 5Nlţ5ZRi~b5:8j(Xd2Gm,FKpvU'#OݣM0'aԖ5mL>}/59pRKJ"-5Pj +<]"oajրqjmxEuԴ $Ԥ85M
TnMM`@Lv89J}fAS[J-5hj©i;N`^G}ISS,v|EESkZdk;B5dVphjRwԤX3g!45>v8N
́SkP%6qj)O{ؗLmjR#~@BsFZ@vf1uIGc-!ԒCjp;#MI
LfѾq')`)K`I},rxQs8` +rrS[B:r{X
H#fЉ.7)}6!~WWXjuԴsdWXj:R#4I;Ҁa]+\m}q]S[jpq.bn>~:=ޟgPH"eƵls,5e0*} +ZRKmR+4b* +`@ +K
ODfzּ<hj4q8Lm +6@5-5g{G:aA#Hj<iIi$g^jIRVG6OKo|ln;SFMe 2DMh Cv#r$"PcMP5nv,|2>mOۣC^ӆ +<M%MݻATXWgƥHN>_|a]w?_/~os/:?~_//~ݻǿɯ^//_ /ܯOޏ?/߮;2K ?]|3}߿}ֿ<_o[___g|Ͽ'^m????w]8 +n!Ff=R;
mo&6f_dYȳoZyyc#rd{-z2qNf.IQ5ܶ%?-{k]>{{Ȓ@2^ 5{F^#58Czs&Y[PREȽ;HYPbq,Bd&>)Tެ-KHFڒ%"ORQ?s;%2I.d&pǼ+%fvP5U|7S[C!qHDfyB#\f@%/܃!jPW""'7D/u7,UÄ^a8e +aHO#'#K;](c"$c[ %\mPԐζc/9O2Bct +?tB2/ +>lM\/7JX)6:,hfB26:]$_am=;VD,D 9淜i,vC[z^dM9ވ1ocՏy wȠVb,v$a6ڨ/n_7I~m u}ȏN=dkՔ2V2F5
vY*7';k$"q|4✠M߿hSBm3:ԤLdsb"b0MZm->n0[$iVr[덌.Y &dcA%1
M&&,LeF̱ ;Q=~쑎Bq6(0U|shڇ+]n \7Z6}%FCKQ$Yp5'^)F,gsQD^mr{}֭=XKM$d6GmdOCRımxEoG\?̒oVLPpY˪%y6σ JxNYڔwXR%Ȧ:0fݮύy-&6e96Ӄw_l]& efs${ee\F=0JOm̢Vex)&4^!b6gI2bBTBه'uD֔H +M˂0F^1on"_S#6ބfM#u$[n0դ +Ęfҳ( DM|8vﭫ] `CLͣ5m李5kdu5Tm"ql7F#Bfc!
֩+ui%')Aa?zb=L7o\Qq&qx0yOL(>`6,ˆ}Lp60ԋqN<7pdZQU2>2 ͧЈE^ +~i{Tz*,*M_Uhb*Pۣ*kE +!)-}ɣ}{\贳Fg& +ՀbdQ+9l +L
؍yYn5)GM9m<9xf
րz@Oe,v`X/,3.m3ƹmkcx۵<oS\L4DZ,2TgM(A]
6ֵ~E!lm}͏)ЦK߿'= ^ )<J*o܋pщ3uJ!L-*NDnH_/o pjqhd1/l8X!gg,Cm&Yhm͂~B2@>)n*(tq
Eܮ_C/-uh);hr7JRr +'t*RkD}R:*ó͟I +IToQ]O(H ]@|䬭,|z +؈7j%{gd[֭TN.=k@o4k7F$5NOp 4iQoJVH
NoV:_bQH"'``Pc`:_x?dm }R4ۮPJLRـyxkcz2XVח>(ˢs0"
GbV.vTq"nCp 00I=JfQ6ɺh;$k`Fn:q[<$B)'ƥ: f~Ea8ʄ%$v~G@f4dfdD'6!d+V#hZQΒ~
yWD?BpHN4]?q/X\ u
d2N=yFȳJ9pBB7&u6wٝ8To҂Ire!izo@ 'y))C%D"%aO'բiH"IBd,B/*+s>kAkɷ!\c%H4 +BgJ6RW^LgMRTƣN@OuX)hSnE.TuR&I)itCti|*k}m^6BFJlj5Pء[`#HjƠ^RG4;
طյ 7[,䔢u*1;Rl̄kd7& +N]h%g=jT'o!ɦa_(H +bcW,Eg¨`#[~0Au^*c ^d +#{phP3DrS)BdD6Zr*sUZ#47tA(hthme>fMB/pIITZH"zIYUA-oW'ϊ6鼠*j
~4#WI +'4㕒cś Ɣe"b#1yP{!ESUeEAu|__Avxhe6KrNh;Q
RjxVSv֊VZ3CQ'U+f dsȠWJ'NgS^b\5
8+W˖^RGP뱳 H}!rk1H/6<Aف\l _#&ӕŎEi M>X$7
>0HVYb_]}day?1 +:o
Z1e
`jiMCS%Lb'EUCY3:Ѡu;4@m6ͤe 6ZQ%(g5"rXZ&gĤ*f`Fyќluu7qRTbo;lViT4k#Soѹ T'Q0QyfI7O`SG"#y@ YAB̪aYVt!Vdow~,) vMyl`G9Cߞͦ3ʱ<"*4P$+\A| "i}E(4}k;sK^VΨ?${xŠ
D"Ip +s*-/VQ?7;@NZ +dU7X8ڬs6bF7ƤRS&MFY$DVb8}ccphhYlvR6?4gh>7pD[:At5f':[ $Uf +jB""ܚjǨ˂S2|h k#F3AniI`ڋdC-
\hEnb?]|끅mSPʀoD`"̹'55wT"W{_mfYF\ +ik`Z<3,=ku-ٵ"lwhIG5]n(dώr? +M;D1ȝ>BZd+tX 0Ԗ +65I`%g}}Z<zu^&3i3|=4 +Ye^\!aP0ksjr[n7<RWr=Ъn<&kܵY>{0=*~щ 9chdK,rt D(R%E6̿wM-"u^bj5&7館]4X0*TwM{7+Fg1":V#IIX|V.}4PR$ > + +'7c8^$-[3Va,;ZRiVy%Gמm։m@_Wg" +F^3.@L[k2XEHeO3 ,G;ޚ٨bpխ7/'kDPeX +HEVDxY5}sMQ}645-@TC3e'IYqWEz +1E +CK>fwZZ(mKH֩тN+}{Rq}o7>ČxK,)Bjʉ*nb|q[Llha#<Yh:߆/Lq.
nlroΊf]FC"/VwhZ\*³\(EcHT +eVʠY &/Ć=-mG{ꢨg,I%B4y@w+h"oymfr0zKZWľU艭2A;cA_*ˉRJ3dMy}PM\-YD :¼ 78)KK0-FĦ +rc!'͆!CVV
Ogcr6/5BW +R%xªC D"4upy&lF]IӷdlP-+ +DadUi催BhX/KBSMXڠpaޢb5jK{(}ntVV,cF+R%Y0Mh3 +aM1qɕg%arPa}->(kE:$cy )c|FrT#'-|!IV<tR۵b2ڽpB;ϒjܫHqBH'ln^8}%ƟvADl }kIU +A'nVxXᲖ^<; H*F,^V6dR%Fæ՜p<eB0;M$$eMTlϮc&%Z9NmbB#ZP]c?* 7z5CﱴgI 1wCA=p`a9$(=w +eMR-kbu8Fyd[j7WJe[4(be"Вx摊ցA)Ih8T!شy&YWCp +$lXZ'٭.bNj%d7.h +VKLIPV2KtC.ˍB8+RLq@MgV
1khP^e/oUr\
7J3/s-r48fNCuȪ@Jh\rynԥ߆M#-@TF7Asov!7knr?ke^Q
ƨHJ5Uy}nV`PowfN%`L1!
Yo0V-nm7I>mBp>Q]4z&7t
ˊV+}"nzdg˿$_p|VC罖7V[YY&U [A`5Hy)1ZsG?*[>'뼩Z^iE(di9Qrߔke&>QJ-cK!答T~<oإ|E[}+<fg!C#rc<IK!-5ַ%Q7CمZHZ= +Y]/$`j0*V\j̖ʸ8þ]5I5fXuy:}fC_Ǵ@x]qyp
c?]4ڬ6ԀY+VxLRи+AZ&cAvJӶ<V j"t{XZE$5s
:VGj~G6EQَ +]!6bi'uZƎօrB?6&[e-۱[2܈Aε*7J[?oK"-3YyKCBG#͉
cag2_e(nlġ]*0H>Yji'fhū_26[h~K:Мc]RJ7lJ'zgf=8k8U_`/ŖmIiEbFVy-~I\U9TYH:jLZݒ 1dD@"kU.7=0jxlcY64['a酭ޑ&řa^^KkXZAظd +2F,Lwn Ն&Vڶ#o#fZKLu#̍-D]eUÓl҄va&ȝXE(Ĥ]vDu~^~nsfN5qkPo6aVKN͍R-V%J3RsG_Dc
Hþy=Ǖ|n*zGUxR7*/-SjUbܚHʇU#WY3"% +$JWGw}klvAtNtdj$Z8cU8wU(R>F4T|Nj+
+<[JC'@;|lW.__>ytݾ<t8yU]#,xS~ #$; =OyF.n{S?}b?_pfc|ravߥ}W_\>l/xqv㉘d0xtS]LJ t aY!O^Q|?H@?Cyşw+i.CyӬ3h}ӚbLJ!3s0CٖsmC+ȇ!<Cǔ{xw`xIDZj<~[7h!ӿyCmw}W'<n!]p}yyyQ==.?fw}suw}嫏oJ|s;hw?ϼ;8i?7i\n><qt;D|*JO//~]8u;ۘ,>#w=Co\5pu݈3G=;93=98sΜ398sΜJ|T3uL|uMwWˬ>PHZ=B(^.ȫ1^vm뫇?_="x~ScyYe9/3,˱ + '衲վVv*[)ߗwgwjapj,Z}o+xz[(;$y'$Po.vpWOS?z [_G?yge#}Y{>r0܈s}m۫W;ۏ]0Yb|L^핔|$Bm?AEy@G:?~ ǾxVa
#|K4^ߟ_<_j4yy5/q]fo)m?DO}z9=\=\<1xW;9Y{O.Zo/o/Wgoz.5nov+Txy^pTAj<qRjַ<=mf)mOI/^W l]/fr촃{BaD&:˷_Ơm?GO$cÖJ +`3_|k{pl
.:X+`>,+`fnMD+~vUflh_`x0f73w0]dMswhI?/-CCw&R$á^ȋt{C=f'XHw__\=|;8U<|w\~H]:w``緥ްKbShɃ=W^@{>}{^"%F;.sy{]ӵdcmlk}9ԿlqNOF8mO7훇nRsb*kK\^_vCOx<yC=TOoVjV^z~w;+ҭ;xbvrag=tP^_~BjO/e}W'^s}*IW}"_=|us +翿cmTNW?k˟>拻_*u\o}Wowǯ䟎N?}8WoSICWR{om|]Qwb4
Cr?x?orN>-CH}ΏN\<..
9~\Orm,N;})7R>>NS.4wsRNc +(]e8>_Lp:Xj.Ϡю; !ȷBOP{ϗ#9;z=ΰ;ND vcOsįy_j3GYZJ+N|1Χ!ä:+c~SL!_%uߟz'|KNjcL!v=6֧>qiλ?ƈ}0[=v>I'ᣮ~CBGC=hiWoUhtEzkq9uR)P;K1=mB+";[a%6mu^*uH +&X[9a鄟1@M5R'j;~`2/Bl +}"Av?-1ʇw</
>[ uK-n)%R]-.Ů`Tu.:yc [{2o@ڍڸm0=XNN]R<"(;ǺNuC;U6O>ʞ03I +NC°* +Št+$_r%d}QJ+>WBÐ0>C,AOQ<ɪoR jK߁*8"TyzX3y6{Hm&PGL +X9ƗՏ:Ȼ2ZKe]>Vrݻ=xap{ϡe7/"{X̥\D^Hu+wOU܊h*(`qlTJA0t>%(8nȫOZ +Ty=Y?s.ҵ7|$=.A`0PǕr=@Vl9`J10TVV$խW)Y%_\I88-J}n]V-ԩ"9r6u9U";sW*C8l cN6Ce
\uT^Nָu=UqA
>CQ4#aF=zJMW({c=9OT
Oud=p]RcQ-nvdC]^2uڰjO~.Zn>S%}}*
cmB4@lA{Y'$>Q.΅b:^/I6
:}!k +A[J³]\ | ] +HC9yޅqdh9?nBUq@ Ţ8hE:؉7-G>/"
Xs u`s.@U~N]-<L<H|{Wyt0&1jPoTWũ[D!N !
FZz;UFj(q&ԸaT
>nI}DHm^AXg`@SQ Cw4뉞x(VBqR(0/Dq8kH\$+i3.;M*ƨyCAvVn=v`͐tɭ`H +J(P`<PکFé2&]lݪQ@\pVZ)A99 ՚T^DH=D90@Af7E*n|i9
B+WG3Eױqvv9Co LOk(@@=,Lp]7=l]Vк>wŀCM&:l8Iy×W/9JzL*|_YFaeKOvBJyX5Zgy24O'&?k} {=H&WLTVʼnS%!מ@QĞR0%zxV$帆)^dlhHԫ5DQ[{sW"N)T!A')%نyG<x8oQ4TG1%|3U`*-8{&-G^veB +/
\MdEЉW:8vdQylflzJl!yB7V^sN"Xnދw/\pܪxk#%У:;ڟQGõ*B.ɾ̩4.8݅tj0yVa(wB RW~ZD0qMGHtBR@@L@%jE')Ū'#F/>ޙo_u:cWo>ZoH{:z+㨯?g_N=2})ɼZu9L8gGyduԁDNTBz.`_h1[ц2~82&¡K=B[d URq^]s4s/K>w>{YPOP +tY[K_VU'']ւΎ̸̰kS2 +şI$( +լM<P|Mw:ɝ}7!c8نZhx`<<5a-]4ZՎCLv+N{G酝TfdΚ<o6E
ME#`v&CPsX#FtM~ID,ư2t;^:K +;DYcF/`/z@MQ4
>-jö,y9^Y{ i֥'YZ]\xǂW3S?\DFqS,ƤLySI,bAra> +4)Eq]G@{S3,+Z ۫Ew4@Ɯocf{>3[PyUi.u#z` +bS{sF<Mzݩq}*ZTށQsG;njrsxVfYGg $w *B=hJzhV唠{,& +R1jo/s
dظL
ɹ
\0\{e*7%PR>2JJ,Z&4pY9
%8a'STXA⳥zX"x("BB^"R>*㉃Ĩ=Rz:hfo-oG60bv(" +nLY4(Zqq +`sʪfM;PYa:3MD"fA"` +\"T/{Js21/(0*uCsS=%ZNJCYKOd,4]U"Y*I + nU䘔i謂Ph#[2,XR1iPݽ2 :DREWw<x`ZPrhVu3(YKG&Wf2A1gxl ATUURi~QEԕSi5kE'DژEM۞(f Lk]$OPLv'+FGSX*1B'W8f +0<+
7h Txu*De${{ՑbY~YcSMt2=@VMXAXq#rl?ۈPSabŰY84, +rUy ք}&&Q~wDHeP.~@;ƞ<Esm{[ 蹋i
$-Q%H!4+Y;NAFD +N +Zv<hS~<iᴖED?2!,_YΚZ +Dabu
P
+FFX *GCf5WtbI'IeՈp5ek5Ԡ$IE90AH֭M<Eב`}v# џJ^i# c;E#s2?C8 +*`=Yu
`qRʜ)`cRiem:Pِf_X`Q:寎azY +ep(8=W
7:m&#>'aFIC#McDdgF +Ht4Q53lDC$UC'2ՋHR(x+FS"W6?F*P coA~`YݖJ#c$)8ʜLpTJz3D)I -Dzez\ȷh.&+i7G2K\n^
E!<g[AQKQ,!t˿b"µ'uEMЉGlg䬥H -S?\D*qS,ƤΝL7S+VbAa? 4Ep] -b7W1l<?zzݩqՀ*|Z܁sF;fx4j9++
sgRp@DѠ3TC)Q*KLCcX`5^&ǠWf97Gfp9`H URJ -4dē(MײG -*ljCĎ=OMzĪ(eS-n96pbZ(b LY( -qq4U̡jt
!j"-1<HN@~ -l#Vdhc<dVf%aQi ~Y)Z&)YFfQ%5n2=]nw=s[:ӉGh|.2Ⰴ+LZذ?ROc[W$1ӏ)g =cRXdZU
lF -/{eg+hzĉ/W@P$=|S'&"ǃk`5x -1Xȫ9,j60lTp4$#Hsȍ):i^sDf <tA PԸ<SԠwYYDeo -=]WUd)BpX=g8P1@<T7kS"Ѕ/%|Od&euzf=\a>Nq/ˤ^nnOEb.pFH=3:RĬ`qvapi8à,JpUyj X&$Q~wLDdP.~@;f<ErlD[`x
$,a!84+X;JN?ߐd;U/T41BGx1W'pY @QtCr4f92 NAX"5Ѧa>7牁K'e5̉Ioӟ -2%Vp
JKޠjZ]$^%sDCbUK/x0#g@K,
2Mvqm/(Mbfec& -^mS88?j -309Y/CR+}h\T -Q 0$Z\I -r48p6@Uhe[VQWFq40.*|dpsuٌHg1Gl -lh/:?!"uZTxBVC2Ƣe$fYtEhh= <{ܱ 0+s;u (N.i,r(z͜~G$1JPPrh+3_Y7#g
Ψuw@it/:F 2D+5ܵ0s>Lm[}[]룍=!@6z A*5tBX7aszfGBl/ҽf`VNumnM7F̦ԥbacV+GKux.TR|)@iD4<$<T !
ʢԼ -պ~ -v+:}lDn!NU0j%rOReS1<VG
}kjA
Hs@4MZJy#/}SU F@?8G -D:$1+ġGLd~$i7q&0e'OXG`!4,s7H{-T?Ew!@&<b9It<>9!XD!y3*Lૣt_j!:oUw@!h -l*l?a;n
r[4)h*6s{rVAR(8{i#PDHҟF[; n5VUËG
P\eqT㋦$Drl~T» -D@_ -+F(H3SZ9q9 #ᤔ554gBI ;(b&s)H)ʯ
ATqђFRRqb{Ml@'@U{ѳa߲g1kC+ -ۥ9$%xJf/ϵ6~}Q e682'M<ZiB'U{̾Օ r;"Xz5VǼfy.%F}m'V˯jWǽ]= cU -9yў,ͿݐJz!v'~{ - !7%[(OY
ćY*iKdWSAzd~{Z~p,>F -w fY~Nx&g}`Ӄ<Hep\$+ެ jv{kXmeAđt"ilU{(RPesJ=K樓/g4kl5>Mًj7ET/k'홱LPronn._˵Qn5\γѪT9U_z^~wr2dپSh?؟GEPJZ43}UEAWܟ}881HfoưrU} rpRA>W<gnomUdg'Dg7O}&ݯd؏;(C U=r:^ul%UAi쳟!ECva3Hpݼq،q];yםl\5@ge&Lu}::On/9r&%
Uw:1'\m/^nbj|d{HQ.)Z5&ՇIOąFBcPG*uiE֟mǓ'>qɢD-ps46rc-wl~v4775bNq6J\tН隮FGK paBgaix[:xh~ǿ{uXSpS/7
|_u&_DwC{uxpyz/3d7o^ɍG/|Ot.ζKz#Io))ER~R1Ia / CäQ)#R(+Ra[#X?&lol.+.Mz0[-R8(U^7ds^Iv{}i?I={U?jO;JX?;%
Wll8gM?Msκ={nB[>2^7|Dn=Lgzgnï&~u/1nP0ՊmY7[s+mmR$l@QPv#ڡ(}
;75VwsevmifjX~L 2w -t-eMH?9]KIĴ$X]ঊ0'I`s+}rRNK -g "ͬY3IPzUA<{}gH28!x+%.<1G8>W6_xwg}zqOwxT/?]&|w]_ŷ{ݿQ>'ߝ!hb$oקVT~EGRtD$dS\+"K-j7%` FAq`Y - Rӣdoױ'Zޏ\fK"/aɝ -=1(Ia'QCWj(M -ugČ0ix2p?*oDF#)RQF9dg-Un#Ԍn#6[a,Xr3 -V=ևl@}FTIJQ+/>C)+eU$gzNeJ- 7jLuU~ӹ:Hx(ؽ\ъ
(jNj$՞_ʧ*łEP-^@RͲT4eeE %qN9(V,RGB)tr`;"J,g -9,{t^$yіTLƱT^D=$p5<ݑD0W/IX(elܧ -1pkO9;9qCp,xD2[̞Ex{*pBxw*u$Yj Exˀa&'ulY>#܇^"EHN/,pP90Ɲ>AȢSE0I ]\E6-yD -ԞDMzi
MuX>yK.HN.u]lqw(Z 33"]X5 w#
!s'+x"̃M(z9RB&] n`ČPLvR|'#Y)e#Y$$6zf -TIwU~n+(X-d TJ\,ZY^@rrc.0+ -$EENTΪI#+.\v͔~f<`S -7K]fsp]mԓf˽hXZuj%g*%v7DzLr,5c%Q^H)<_y/U<ujA)Uw3"YBGqzT$NԷ?1YjɝlC 5QB2b$9'*
C,ZvA4OzЃő!2O_HtfJ',''\Nc:RM|xCF#?yΣ̡ - \fNөA*aϳ1~D -!.u|7TDgc+-R!A\8\g;y'ql戅=%f^j -Q0e = -p[;2#DK*3i{"~_)܈2IؠWgSD{TO2_PrsYJ2zKU:bMPLqi0.RFmsM$7@@/o{]8ѥ]e.fb{5 -K-䦜c#J!n^ݬ <Ö<l -o03 -:ZIiA܄ sW~KZVXc9zF(͑8擤gԐ2])y2PF4dyZ^2r[`%8qϛY^L}4`}zeu. >ne!~rk']"!>r?$-ys/yjfB/5NJ}DWJKe$JZPjj; 8^]uj7(w,t^s_HNe(z-Jݩ^ t`t9Փ▏"poznR~=Ka{s6c::?~-:2~dNwx}÷WWk>n<uJeɯ+:8>t9vR4%USrVzq;_zpϥ?Nx խ":(v#kK qx R1,}[?}r ?nmL~lO]Yk]dM@/۾ġȗɏcX+^-?$C?
qqk{|`cxU3xֱ0͙Qj_`~<qk{8~eťZ~}֏G-6lQ܌ehPϜ8OndOˡ+X2[RØ.Fk߈ڷ\=E8j%t!"_smx7\^}T5$]_k-k⇵{R*u2ҏ>Uf -HA]XDbO"P㻈rbCoa,^g-$r/EUAo\ʖNA\fwevz.5 I䀦XufѫDeǔfgDPdK*4N{Y'!2&f5ad/`"O%95tIqd0%R -)32FKť!ˑ^6D>?*r2惜ĂVn\5lp9UC^eҟLF͐Zt(q~F7;&DM@p -oPYi6WOx -_[?FNq|JJ -"tXdޒ<"N5ZC@N@0ICT?včS-M>~P|--*rpxu%9v;<LV%0IX{*x`#H1 :"Qe~s
&/Iʽ AN*@#ЙKVIr*L(1%?*eVe;9Lx 9^M=ሴFkkHJ7X{YwaJaAlpҺsiQ) -ÌE)_yMT/wUlQXM57dǟ$q]]b-/ԋ?*7K|h5lgtJqDsUΈY*vEؒAx-9.VX*XW -WưƑLP@ՁM, ) -ti#ǂF(Ks76XDemv+|WQ\(e'oP~ -KI]eo CLĪZxFs7Rtr]ҼĩO wuʕ -Hp@{'W -}B+mm9qѫqv<ɖ$+`ΑQ|@&"Y⑭&Lfj"/J(v Pbl4U|J)kJCþ7vjШ ppv[5f
7k3I0jHa#(*>hM:`^nּXQTYE1kgy&(F)cvi<iTcfHO0@b.;M1 -I?p!j$y?Je9xHGq@{;t䌚`P;9S`xWI@99>jC3NŤBSLL] -rH454ɢCsֈv[o g^y7XV#mҚrPA曽H - H mƀ\PDE"+8ѩ8Wrx3#i6RB#(~>w"3>`ˬC'̫RrFoY"Et<V@ -xf"_/CWKpcxP;tgM؉YT2֣uKo2<7 d5ƀ'v',;^lUu0NBc3`L~_* !9I"#XyEm<v%tN1,BY$rHRpzI -*tEBW]jBPBWK&5"XPBWU]UP]
Ij,tE +BU]!3<BW]jBJ.7ȭP섪5"XPBW]j,tE +B5"ԄЕ5"ԄBW]rB芐!+BN]r,tEȱN*nfCW]cm"X芐c+BN]q.&$-9"x芐c+BX#C!CW]"!BW]e]r,tjB)8E +B9"!BWD6" +Q;r,t%Z
]r,tEȱ!'U]j,tE +B5"ԄBW]jBPc+B51t!'8a:Ʊ1 -k[f`cnAф1ƌZC*jmDe'4fccv"6֭Uκ%ԍA5Wk¨uc=47z -Acz;YX![XvUx;nHrցcƺ9crR -ɋ،ȜM4_:K]fRG6W?xd_}ޢv|O[V4ަ2ӝԕѩw, -F}ۿ4sBN!ʼ/,Ÿ5s|8uw)+4̙y;݁D`@k!5s~ЇNQ'tĈ" -~`W|ZG^J>OPW&WU1{Z$PWLڷPWe5@PWFqX/xg҃s0Hg+.Mv2W -} g9nz+F:. -P\vIHSc\K,:wZו(tPx5FsUЂ09zm#ra!B7XF8p7&g - N0Ilo-l-"2mDFp`B
":Fjՙ@)IT/#
' |qi}_~SC]!hS^>ѩc#EAK|EJD5REH6c=a%tWqx2g)axC'zniփA+: U͖ sGl"dϔ^AQ#4kx3_8;#Uʏb9az -P灎qb&ڈl8w!!vun
~9TDP -?'1:
##:k`U)571 h0;uc`)mWܖ/#`".#,8,PO((>PۢT)ËKJTs+t}r{d2w -Tw4cIWP-xWPI)"NmZͣB~a
ycC~|K
IXvPeG-B-'@s@rx0ŴCƋXX;^4;Lt|,B3.T_G:ğe%bLվDPx[îe.(\BW}Y\~Cб<y:*f٘KDXp2A,T+\< I$U\H5jj_E5dє)&k.nM@.膪ɚEh}}-'UYT6E]e"4321>^mlUp2NR-M]2_&)2)VO?Y`|8d5~lYpU|6͗Q <e7JRJ7w"EJ݃ލX[6Asլ~Od16Y韧6eo#5fb0hC'ąSS1aĻSLi1G$bz () -Ƀp -#B#'Q]D@t0N,5r' ye};Y|U5x>5ƦMM_V:-|n\נ17j,OhV?F۟ڗt5$oVE&lf}
:QoVjoNoؘ_z͝nqg=VIJmt~ow7ڃvkp>>oMUˍ/'.7%<
=eg/:vՍ)*cIyALly4v5܄7HPvI$:^$y(Q!Dg~9d"o5&ΚqM}==s̉>@U@Ml 8)Yϡ;<G`=JTro -9/OUhs$:s&A&2QӅ'UIҝR@QDJALhP -* *orDP9ZũpI8Eeɭ]TLfj -čwF<Ulz[2X\*>1c".⺅h%8T|ՋrH%G/t!QI`5Zu"siDr18/9_ -
K<=eAp -L>Bb%uJJ\ b<*%!$m ?딂-x)DHq1 -!Jz˴BdWTT -!ɅMMy -oE6K4^(¡DG($FI -&u$42B"T*ah`@9*ELhV"v22"T!;ʂCQTDUWSHGIϺ%^gbL -2 -l2B}Ġ)S3ah$ӄ3s$ӹ4 -"Q¢ y1 -Dtn@b4HCC r?0"D -șGǴ,Rc`$Xp<fxGAD0B,qAYx$8-;fZDA2H2LQ]2[oNfc,u@b0*#>یCYģzƹ%jűP0TVSUU!XnziOjoc -B*$&a>"K -JouUD+EbTsxr(ˡe]לsi整2d28t_Q42ghQ(
ͣ̔T? j,c%uԚbBZ<#V@eQ"IČ#;wΊD<,`)F⤢0 -CfEBW9%1(
EHEKkn-4הIcaY'5d$Yb>8WFN|3 -IŌ[ -+ȦnO>`?[ ư -åxZ\g<QS. -%([!#,ˡ55!Z;i RГM/'c -Z!&2D@tV&\l -!)y!(6i/E2 -#Qw]\Τ!lH9|Phs&+3fM-I?BG̲GuVF[F~Gl +PAYe+c~oOQңy0x8zb@,Y)"ұ}Y -V!Rv\
GR+swN(]p.'6|8 =&_I+Īl -q9aev4L:9ူ U5|1Iac˕-d)v+a`ZFJI#ɥAST"~jS6 &MSP -TV!y:uGGSQӊu$N`8_T! -PV&R8.ڐrٿYʆa*nOS%B3~b(59D0}Wa\n#N]YLRQW"j[xe@X!]0NW
V
\e Oy)ҝ&`g1*>=e wJ 59+<MI1(*P:uJ,!mYxN2|73VH pw0B@@sŒkpr^!r:l&ZR"3a~RdV -y -n*õ])c)6 -\BiM|qDMh3fz){%_E/
]rSw=S]ƕ>ZV߀1?sN;6W?9_)%U)Ԏ@c8#OK,ɾLx4q,<1E3!*ҔI#+h횤MѥIlDTg\T%RTbUtiFd)]6|2]i!L.SaJeGeNQET`wNڸ$?Jq8
*9Kr𑲯( |.JD-%|7Y F+z -]@ְ{[0'3! Bw(s6ՉU"ܼtqL*oQ^;9L -lPÔ^HN<% -,EK - -M
JD_}nY0Tr+,Mm)(\
ė9?3sS؈<&B\魒q(:ջ
醸`SW&ךH!`Ig$np5\ҍ:َI\wPGCMCscAoN2RIQnR fpteE%<UEp3IGޛL1o/#
N+<$PrsfJ@kH3Tv&@w`e -jE'
_ɽ-Q\cki0[zY >R*RzJp+&o3!.K -iT0"n3 -BDt#+k5(usܔ 3Y-n4bҁ:TZ"xJ|z$-(eafFPIΈBtÁ%cQ~@ -J$=uĮX2 -I׃i -*!abRł1 *go<1]!³4$
jFܲ& -(jPOqFD@&鬳44-,A -I5%ږ1Ϡi?'q.OGB 2\VOҠדb@!<^es, ԬDʲAB0} $5zݸNcE-Ƥ9ހǤ-Q̡lпC -i*QJ[| `Ƅss G>>8')$W%AQc -S8?h<@ZApu0H@rhqP
_"8^2(4xES9ɩصT4(/WamK^g@cIBWxyȊبuO 1{JS!)Eg$5|4u*,`enc -([nZ%A`0ԤTՉnʞ〈d2pӤPĶ5u@wz(R"xW!HzX4[SJ8@>˂2iNcѐ-rĜ'\dVtW"<Efu3$i͑CVEuusVh$p_gtTVprtsrK C:dO-fTؕnafӪgt_j9lߕc:P+DO?Moo)o5b!'SJ%dECu/$ym6lY5\F<a%OTgy,=Dk\EZ:R% -m:cv$`?L=>_JFXGmL,wڍk'kng<:LmyMG&TS3_ču?xk{f{ޔ8Z95Y=:-SZlc[UkD]r٣mbhdG{mbОܘ֔mW&jN{(/7_Cmӗ}D/o=6Q~Vr蕄_A/!&RisCCgZi`Sh -~a=ӰUV_7ԭ4l+Zq}wy`XפIBkyhgg^`jAJ^Ҧ'D 36%n[7R?90"MaP~y:'1.s[qv͊25MMJIv^۸5m"v1XV=ku~ٸ:]d5C/LkZvJ{5[ -&wFTc~9Mek4j}20CUS#?lZEcs#B6nB}O /'sxgn~јj^yAsnh\C,$'{{2$\y&zݾmr&꯱IOn-rb
;͝?b+qjh7<6?O<']:W~ݫ~~֝Jԙ_o~M pጶgޓ]16.ڝZD;cUv;mm<%dZZ -\@7NV;E_-<'"Lͯncv"H_PZKrxGz'<,54(2Ն춼8II5sAmTk+6Z5D5&Ku9<O-AOUI]s0;5jlb|?GC먾%R&ͧ3\өKKj|OITQw -0֎>75NwjQ;PӲރu-kl[`p?NDB!-C`pt9"~썎%+H_ҕAu]ۄ?|+=LQi
݉9>
S;RxdGrl9t$^{:jv@Q5[a/5=7JMF
x4WHPO -,JE~P'@oB~mH`
-dšQSsإ^n<oDǜw}^^θd -
J|S'~b+?q}?yevw_\/.CjI;
g!fBAy2Ke;sm}cP& -8*UEZqJWx}E>GO7Ykaܿ"i
-gLzCnx]!=BqJZ[:λa(SeN$sr -RˢdڃaC4ЉT4ӵ)jz&Uoޔ}pRVILw7Uo4y
XVX >挣`-zSBWzC,ڰm윻̛˄7UOmƑ53j'ED%vUuOPQxib*G?ˏ^=llwmWz"kNlNwwUs -Uf>&T)jł -`a7ʲXFs)gĭ45"p
3Qғc -xwX=$)iLLEЛ(*ӛHLw"&1++K['/QN.Av# -YH}J6PhMG`1a,.KͷIyb|)+:D -"`sj,n]nQ*ePrs)Dyѥ;Wނ`J+fGx -h,2fRqAŪr:U Lկ^R֖RR_AB+{ <#*Ϙf74_?
&`tփ=(ҊL{&i(c"KCtLSτ*ӤJE%+O[8]f~ -OPRJL+*3>Rat QYVu]i@(&- -dxaTH]˪"sԔU),W t)#jqkNf%OIHr:s"TA($1S-](g(^9)j$Oj1WDӁʓVJ<G+WiEϴbAdn,g!R@BN]Cl& \%Ts-sIe -faVJRNPBIf沼Lm auDlQҼPR&k(ÕٻcǁQF8PR;K)c VFGNY9 tb\YaٮeM($Qh%0p -qvC`8n7}<4{nz55w{3]o[GF5myg̞OQӃ,gUDViZYWф)*ETyJZ0u+ӄf\Jp)JY,f,a;:4JKHVi,ǓCf[~?.$'=QYBYB~>pZT%g$X7WyA[d
ҫI&Xys8D\؝yjeX̍(6ld:t9+B/)Q,Kx8Cm&WΚ֟e?LLC)&HWGXOD^H+ގ*цú4qS[^.$c"/Rij9*e -5j,W>j]eև$)'Vs>e^V7"
i|JKhc0[^&c&R\UƷcdk;WΘ|BKh_Rn38k(Iւ\4?R/MV{8lJEm4:~{|5G
9l<j>
?4Y*De ;AXz*^p|8?jDO^٣~4G >oo\O?~hq=73v{ϳh9Z%]|VNwwq3z6AeM^-733FK@L=flkv:=9֦c=zL8{}a믴驘8;(~?sWM>h7S4:/'vtx}E0d>b%o~.P3S:,c0/eU٥gi2߳sІ~ٖ߽YqB>g!ۓiѿ=txU߶ǃV{ FX2!F~{e?+ofu]!I\2\^>qذ$?Гu.$pq.ȰFA:?%l_%oY?|Q/"ĸ?@ޞx236JlGa(2'mS8lQΣk<sTQmw -ԏd5-F;`Ej:-6RvO77l&7&J;-Uy$$)v~32g5wwk,FZfceXuf]n7Gfsytx?Mbz֧?ڴ3wvca5GMD;],BPcvvukLJ횖XZ^(!Eyb3d~f}z -u\]:v*,ON7MZV,E4N*c&jw5G܇xe --@X¶am\%aTuT״H4g-lXYáiwS)gEVisѨԟCu;5gapPCL*璹$Pc5>֎]+L7׳\!k)TY)8\rLJU'17jr?N'Ҙ*?i1fMϣ̰g|E=2/4a ,#V{&[{:3+-*ۥ3phn'ܳp=Mkj(,^+-ʋ|[&{nZ:zZ7n9zsdUB
/v\^*9+PjvΎ0ߵξJ3'نk!gwLȞLP+;hڋ}z]hAgvvύfFZv壍ɫIyX6}banqUcc{`'A=k_C_|e*
T_UfJ4Ѱu<%5::eb'Tmp|p?'33x#NLIeu79>CITr|ÁXjjSC9??~Z.om%ёGq7
%&BQ(09Ϟ6FGݳ4ãg( -5:=2:p5I\y'?3w3?&56[
?uv?l+1-[nKz{{+P~{@0ZpQ-6m~>A>WW<ˣOs;p掇mKw<t[ce >J{tTvlM(ű
Gݹ].]g?7G'u{bҾ
LSvL1-JM8:U|'";gQJrGSFĦiM@X7B1>PH;~|7vRg WhctVv{'2j|ZԐѮ9Gfv;;tw'h{zG8e-hda![v?3~B#Yr-Шsi/ފ*ؾlk's%n
O#bf!"'WDwjpwEMz&Rs`M#n63DY<Ƙ"hh%3
\g
-n99%61Pi4MmiL:E{ntm{1KxǞl
BøI-v:bO\т'4jM)N}u9S&6nxC,Q{CV$>\t#jZE:Mj_oyB;#CV&([v; -WSv8OW3%8<[FP^*6-a)@4{=9 -Vgc\E{ܧ.?lxƯ9T>&Y8TcSz~ӡOEy_Fvw=k<YuVnmvMi/gHQ4ex$v|Pctt\ -]Ї^FbZƽ^۩&mIpyjzqUanW+K>M-}UC*qW>Z\}Դ_^UkomuEKp{ϯѠ+,}.u{/]<:8Z,.o7~ҟ_]?`nyye{m,<|-z aeGX|6.-nn7yAG?Hn.}9ݼf-Kf&;ǫ3~y%MgFž^{k凫74n]TKqև⇅t5X>~u-_cp0h]ĻW7<Y{3λg٥?ӻvnz+i\^Y`SӾ%AX2}H[)z,ĝ-ޜ]+ʦxhMnRc25F}?< -ƋXpAM0
["MdjƤ{AQ:ү-32xTRscCӍruz㍚`#j`Fo,7-JNĵ>{KxeМ$8,xݭʓDd4%#NE-f4~2 x1V[&zŝx6ndڠ؟:M~]
7
<HS_PNX
Mb4w4yKbnIsяeױweqOmP`T=-+><zu}9-ŰJig˝wV[~Ģ,P'hds&T; sFbAC]ٟ|U2.7_<|Rʓwvxd;\tߜ֯uohum{~)&f1]_i_Yu+hJ+\> LPЦ)l۪clR6۟"5%89iMO'0M(tKc9}}Jٝ3{lя^>X"5weY!m{?<\\Yz#R* x -m"ùG,8yw}{ɳd9ɨ`|+ -o6,z<tfZ}yإ&.->|6zxwefomIV]da4ۿp{={qK]o6x1ԝLu[=R;yʷMѓ߿һ'i81Q݇_ݙ݉uov7z}_kJŋGG[l{ -[+߬_IM4w5i_jeOk[xmRn'Mb{?nLTj!9\z%һ?Fnuڦd=77wo.|%{{;?=}Ukk+]:5}mϧ5z~xܺFOGxFgZu9Jۻ+?GaƨP˒G_]~N667y@;4]%s/d0orJw]y%l⻋V>;?4a'h{oU'W.X: -5o33<yaxxe0=TgqӶ^-\ũK~zRwTrVM"bQm~ePKdff.-/_[^b5iqr+oo\ќ_ʣ{K
+W6λRV^n>:z{O˗_^x6*ӌru7SM/-<>?8^ܝ]@9X-w\Yt_w,2Dǽ'+
+vVo^qW,>Z|}z
MF:֪@{ap~;v^07`+-5/nޝc@9(ekǗ;PVޞnkzz躽6s˟#^op|'2sT/Vtt)fO7o]ϢUOgruQ>| -FBhDzozzٹNgևsm$@:$@ZN!{g'ɽȖ1ֳnh4ͥa~>ߗVR -s?ǠYP'>Jmy(eOٔaފ:woժwe78>{^/~!:tfˢE/\ + +2l#n0sƧ6&sZC=ko7E NИ9eEt5ZDnc
]L2A8ڐjπEY +nN)@߲gBoT)MQV棭ǼbѾ>I3{=_m(cja9a/>=3"j?ܟ~yVaAxض֫m éRhUe/t.?J@J9zl_,BO#
"|%-O˿ܢ/_]]>Ws&һORҮ;_xr'հzyovG>`SGO Ѣm4[L#fX)è gϩ-[W%'}ϐ;\Ð2Td=E?9;JaxĘdmN\^ռs[d[G +UJ$rpLRdBi0?iT +(숔.6ʊa)l5w֏<ˊߒb +wq(+O!˄ +Y7Df8 1U6W]x:"G@'HvY:nkCΌ-}}cmGn]Ө[2rxTczᜀG3S>ChR$*EYOʔWBw,̹B4Y'LV{J)9M D`#)wz ¦L;d[d/Ygkʝhm;i
Nl>1xzie +(И?j008!JZM*R_TcZ xbņK65l +HMl;ڬ>gDLDX\d\KBFQ1EsJ/0bAꂄ&R̔bR +DzbEYq7gR\:H'¸U4A3$ESo;<rQv +nI +O{x+ﹸ]>^$C%<¾H(DJ,"G18L +s
+5YGUP +V91l+ݟFԓIJNP@)cUANϪ1ˤf 7jtU~59Hx(ؽY$˛_ʧE4-^R`@RͲАd eEB %q"K9(V,R@sAr`;" +,gb +8i! QbG :otNqT+^С`>^g21rhPܝJC`|Qj;V2`Ib[ψ@,U;*'X +aU. b;xu*v5,fn*82?w`F$d-!dVdV7xRYE#Ȥ˵ּWRDS$8=XZNd$7)5Uz\¾ݷ + lYөSA*aϳ.~օD&b,5[uIܕ2]W~H
B{UdA~Q:8:Nk*謝xxBI^ +$9K{lG^0D?#XTg,K-]"z琰*{bACI~: ;@nxsLd""+UOrn!u(e䙽Ńv/E{ߢ(d%( + R*iv+&hQZ)NQ.UZzRL:v#ף8|$hE"n$$rEfgeoXc=Ni-d8W<eD`VduִeQȤ +Ǣ,r'XB,wdF(&kUfD̬PqB ꩁRIؠWg2 DTO+1\RPrنY zK]4V&bPLqi0.R8 +FsM$Zw@@/U{]8ѥ]#.jV{5~F +䎗cW_#J.^ݬ)a}6ex6$.,K6L[7z?NzCYAEOχn9sX%{Z+rRP=LMHISXpjHMxo&#v]p2\{nf9xE,UEȭtj=2`A}7Ґfz.zfK}ax<9Aҗ<ގ2Nbegvs>+%A6a%hh(5If>0Ρ]W
F9Jk85K+ +RD7^twwHuW~(#n(rH6٭^y|lϪgcĒ>yz9Âw~~GaVCl囷S;۫Ϯ..֢}`69V"JǓ_W+ou4q|VsfR +HrOofd)"총kRgv l眜:wm=R@7މ^kQrYڞɓ{v
QcYP芒_Cpj/ssv#>!9ю5^!<rHӟٹwN{E1t.JB%0~2sm;mQN?gQTCKZm>(5"9p٢9*ġ@NELK0X0߇?"4K%dL1˓z7Q!Ψek1MI2pE$Iܛ)B/N>8@>2bCRSPnP]A{JlcmͲş ?
S!i˟'Ђ +/B H +!1܍$F+m\HU|W6w(m+(rxGn6 +?DNCթ*$PӁ,Ȧh>Y. i$/rrׄ1X]F9 +'F]䴃<+|Ւ.T$D@EV:P(] +3){eeӔ4#ڪXh燭Ԃ~Q cȎMrMYH*_BU9ZT!$w@1x)@g8rR-$.L"s']n"@X0VϋyWY5NJ'.\Fnz.5' Ymj-SٝU CI$4X%/Rmחg5I w &7 +:JGK`6\FW$2eqP(,(KeN:r +I8 c"g9oD ǡ$ht{E<{7 +~O<QdX-4j``Wlܥ;I|l=k+s^tY(siY"m ` +;YYܥ:)T[KN +mLy,G*8Id$:C; rS!8ĆוMhŞXaR|'6TޒS>~'-MI +$(Kv|Lle\aRׯs)w@NrQu2!:%eHM%&y-Bc-9˩<&1T bX(;ɉyb2m
@#"k(SeIZMC +D
цuaV"OU텯cQ~QmUH6_P8I,9 %2(bkEq(
* H$y`VUNs\)pްb9X.,HVNT䰰9qI5CLG8J4be5h^HD'3 +`8$:7@@;f@p2@0Yѕ ?F@;%!=/msJș 0矤+Y:@Ѣ_<HIx@l*E OҋI4Q6 C _M`ˤkgCDL5&sx +.jp$3tyrϬZᣇHUΫ:BaK`еR +@ +zmڀ/eD; +Ds_Trk]66W K-(])A[E2'jDn$/}:*@$<pEzU/iNQhjḾ./m=
xEp偵nOK[YnvP|+Rkk=^eE!4sQ9Ew 7y23ʂمLJwjk-wj[P핗,6I
`Άl
I~pFcP$ Nutg-&mxۇoH*;DUIiH#v$lMuAu(Y'T]ܲ*L@X +vb{Ҫdkn ;â{ +|-L鄼j*.Bq<5 +̋k@<4 !5W(1 +;:]&Ysg$Fє,ysbiN4BQW
TD<K<q`1QQ7TwQsH=o䩙 +^R@`aW" +!!3S,AZ>*$i~~sc͏'G+JpŲ-x_xbgP122m/#vkq<Ɓ֧'bں>%ڟCkD +6Xaȹ&XtN¾IxRp̯qogDja4-hKTA +.BbDAbK9@8hSЪzՈkD*[kD;M\A|eA&y%,,a8M9k+S#(xFkPi_?:M*M)]C`P:,Q +*Τ{um_Vum +m72x=IHOH؝yzP9Nsky +>aTNn +KN
9@"P,!$|cAN~H8#LNNs#z,(,&@ftyd>eK zD>-#7q +~XE EztA=00pN|OBcdg$&KϊZS;Sդ;o"ּ⢹}-ihSTTɸsJn, p)6,hj1(^Td/'nbFɛaa4;f>Jp3rm^mswc7k^"D`JXYPGFi!壊E B.>nPaeB gJk%&XqB&d$DvpLt:M¨?%nRژsbÄv2*,5nq책#Sgq +1j)FI\l`$> 3JeXILN0=c4t=:MPbeH5v Z&#$4iL奯hYDkbtjL=pA
u@D k\ih}oΰ_o;v߿;>|ܺfqR8G.h_zTRov6;ýxoo:]bٵ?qhPD
2ngĥn֥˭/.۵.Ie3\znF4;͞-^>wo[sŒ`<0~1 2&^Z{_>˷HP6Id9^x :eZV+feŦܞ*f%8#(|cmM PC؝-cg[@GC( + +,@:Q`gH٢0Z <(܇+sT(ؤ[@PWd.k&+sb3ɂ_2_ +TRR쓃ͤ +fϕs
E6b~R3PR+0fgx%.-$A1P( +2gݝbFV`WMkzVhx뢈ABڗXu'!l4+HJoPuKWGUajx1,k|zOr +_E~y#R6 +3WU02\}6\hmߙ<z|iD(5 E + +%2~n*)r[4̸`|eT I4݂h^`.q(bfs:Ub D89E^dG*s:85BiXŜfT]qS\i|=uc+d6^><KJbޒ"l#
0/Y9L\T +Zp(>v݀'NΏ3UYA#g0o_J~u("Faߤ6kFf(+Q@+즑3* \ +V 0l(`IFPgȹ<o,m" rcB*Iy^,(7Z .mtD`&MdqĈRڌd9PU8Qg-$9 >WNٞ|@ ]aI[jxY\WרbW)C +~o )BTTkλ) +bRD@&~d@!߱]Q2e"B!#QJs#G`mIQp#Aa"QM˕q) Q }WlrbŇC+H`U43nCB? {.+Gòg>;=k^|1H|˵˴XNWsx0#B"a!QdҠ*B4i +YsN#"kyh*f`K
] ߷GǠX +w`Elvk0L +a MiWPЅ8vy
*ֲ)"1*L:g6..ɎNd' GAŊ(|+`vIW"o1P-93lYKO`7q^kU7)qS7GZq,NT +Od楋cxˊ2A`3)aBrs`CSt!(!*Y8+5=:(ǙVRƃP2-SR IEd)xj63$&)vC +\yZueBWevmf5" -!.V)-n.C!.(XU6h8.ɴ~L6(pQtVI
WݨX0Jv$H8Ppa-F9,g+)96bCWN5j:m.SH +HS +?=N
asR0cϑ`њl15Iz%y[" +FìP2I~ ^ty炘$;2aC(ؒfPLQx|EPj1ILy| OFW,֦Ҡl`#/qSЃ>fu<;2QQPsQ ߡ^KgxtArÀbS|] [T8~fM+"Q)U Հl@K#8L969nC"VNb(d脄z֘"jFHۡFII5ü
F(]6AV~YRu>!6ŒRDATSp5Yҋ]7|2buVߚi]ó0$Ί
jNܲ(5"w@D$AǀdyLFYMX* CMrn\G r;/G-\S8Ȓnڊ.ʡ~ZP0c
P=9[|(9{i>T)$?eI +ɢi%6\H!N;"+6kof,: LaAL QYP +f)YqV1X\`j2[j2?y)<z3ל@mf7L\06jćA٨9.@ ѮQ`#*$4v8'^1)A
E<6'P 7ctS]gwYZBSO%GˌM<Yr& i +=ӝW鬵38<w[Qu8D~3Z +eK)Yl +xD2~Z +F-\/`{<]x{A\>τlɉC%!^JµOgC"TͯDa?6㝟g01Kſlߏ1ܥv<<ΰx^>Awǖ|jvx"ɲ[s +iuDM +kN-m7R'_ǮA}WIj0AךowLJ.B.="G
xܺס&[3m21Zf0 +
Rm@z(A4˚P~TPDh_b=|?'Nf\+ +ɵӿ@w(Ie9E{F +]!:P|0i1CdSO +>v92*nذYBw&myͽɆԡ3yr 0FZ*#B[Dg2nԗt@̖Q
Ú\6MdVS#(&KQ)H9"SOLFf6M7I7D{m'g*s0+lN]gSTJeL2$וf2$V@`׀90\J"5=qYC!CIDڸI(~x!DNr& V*`TXOr*T1 eTéUno&Ke3L
,a2HK:ߦ%J'eHD[WmΕHvKLT`ϤmT`ܯiA99:_E.ti +*KZo#2RPP@@R0
1#td,v*)hyo5k
,!LEzX
j *a3&NN-wVF-G,9tL$pWe^X*Sqs`/Hf(r߲)BbKjY(} #*S ++2 酚.Ԟ'ޗ J"F֤x(aI־iZ[:\k^i><¡vVqZ+⡝.opjQQ[ߩmpu|d4zѶwOmyvMttIRŏGW^;l B;dͱ%*FRe,$$' -%(nF
nåe!{71@OhH=4cU(xӉ7kFFеf!jGI:&mqE`iK(ې32٬0s9!+%My,t)X{ :bKS:1<
ES3VTNhTh]2uNQcIeUD3чHI52@#Π*CO6aw`ꟲX ɸc6"H4z
r4=X(ԓAv 3GNb6ڴR(TQXZՄPoiMk&H0$gȣ?:cVɁzɄo8r2#kmv5}/SLixsٛ7cmtGܛz5YEQoۆÄ)EG35tF#3 zH?a_quǝ
!=l=jߏZ?_;>hsXo>;öy;괇;?$?
LJ#":{vV;LJx=F{}8 OܜzU2{:vFٯo9gUuZ;h
8}[\ư=wo{M'}գnlh;fݝne|1퉖Vg||D^M`5ye֪3:h=1t,Qo\#ϒGSda0(sl98:>˷[Gʠ7>Q+{&puZ8Bg3Em"-S}ǽnUhiǝ?\YK۵3Gx!NF32so2E;A{]HWfgQ.aIS֮ۖ{3p6dFѮfs[۸*u
a}=<Bh'=w>>ʵA{kTo`'g+ùg14vg+O#g+;+H˞YRD8h4Sʄ+J[{c=5Z]/m|oTh^<o~>cq}ihT GvaW5poff+.[8G3=
#%;gX!1WƕLgA٘Ş>g?ĕ8mGEfvGKɾ!yC7GrLcpJG{|FP"(Κ]ʽpڂ/=}>(2!WW0fMh{06f7~<wgdw8m>e^Oĉ:?D&lxYM5^q{+Yz,n~W=JS:'N&Rv&THhp~9 +J¦'{ZZ>=zq6SQ(TokmZq +ŴziylwznO'/cggV0ldͱͩg,K<қ%pVtU0)[dv +6%c47gNDU'8(w{vIțՇj,3bU5.Rdp%ЅKɻY)I6>+uz_#kVOi`D<QL0<Ӑ%<
/byjl ++aϓaDQ֬$IHBr4H4>nO:}x/ϼL(|:qg[(.{JŦ/9Znvq)9pOwAx~)Yl{mF,f
L$j<c=`ÓKz=Og띭gL] +ޠ
,_[RO"MGLEqN,_S
HK\`ϷW45ܶu:#"s?Jn '
KN.mN3#0(o'h +=i`oO`B;}w-ku2-ҖLċH1XtHb48\ PŔƇ1,jQjnkCkuhB'@Fad|24`0팺H)؏(N9c^X4'vspZS 0=Y To;}X74Fi<eAgkzLv3#^𦮍ipYI:]9qm6RSfp{|J -Ah4Ӛkv"ln︿s +A 4Qv{TA1^zz65E^Ǜ?_n&OG~"52n+24^
06" CN>#2t8uuGМ\OMBFӳVRg4(/G˄" 2y>sk1AaCg?[F+'soav3Πi9@|<](jX$RafXwv?Mᣵh.Bt-~ssg"t^14[Q$v:ۄyXF |Rvuv{GýA{A0B NXk.i'~<vn8:3b50+.KJL1oGcseju2x_FoGF:KR~U
7W>uhF5ϔD3LW>l;XΎ=:S.OѠ?9;::ydo, lgbDC<5Rfr~/GںG^6RЉэdIN2aa>?[o' '37IrAivx3l܁F~,IP:OQ\3d<k=rd'#s`M\>Lݢ5]!_WL
k<gqvO#ąƴYiW{?+h[ײ@]T;D/?0 mxYDdY'm&AO'^6*h4c9p6N88O'^rNWO,xvNGL=FYL$w"AǕ@vNcv
Pq96[v7N=C;h^rm=::s4#]N"z`ӧeN?=$eo8;Zi2Z[NFΥN5bwv?N#9B\ 7156ap:2(2F]ssHJM:2}x +3S/9n:xi%mubمQZғz/[D#0[/uo"ӓ+xM/ȶ.E4_
&_fx߫wWos^/ޫwVһ[VLw
ظ,~:~uT_cp8ܹqw+>~do~l)x5Oww};qwv'ԘJ_A +W"}-66v +}^_Ģ_&h6iH~K44M0Un{X腚h.rS۲T&~i|x7KE{:FMO؈6^+MӠuJ6*||waq\%<d[NӯBh~VU.`0yrn\-j+֘&ɍѬRp&JvNZ*XrTnnzHJ?سO~R/䴊Բűiǡ!o?CL-iOJ\~Lx1
<),=}m穑d0xcܕ0qo~g+7ovzYY$Nlu&; ubBC]ݟ~/x\me{^98~Ç.Z~Yz_}fm$H{JÍ[_+>?Z۹rqMGzX_\Yd+HJ0V +znaTSuo}D/6?K3THJR99jb>̉}P݃g[ec:4R>uՇŷ?,ÅcA*)"w)aٌf˿ԿW>m<]zAws:9@f)w? +Vn'ك_W-AˏF|yأ"7Du/=Q6~a}!ߥ=luyfFswֳλN6/VĎϪko\xen7<:xgn}?uS(+-7RVʻdy+_묽y&7Ap.\~^R{Q,`/W˅l/=yzhw/}].XTarWW l<":ښ6oߞY^͵._"Ɵ}$/78Q7[S:U>]R
{uvocsxcdta>sWwo&<%_nt-xʴ%չ7_^|RWwn>nys=n|vm0Q-ʷ(0Xt~dxɣd+^]~w
ܰsɋFҡm*[0h]Lكs>_Zm M|sֻJ?hR4¾ ++Eg)yi+ھs=u^i8;ئk@ +4:~}$"[Ƭ빞,7TFhnM0j4y9n{?G );:T#p1{(O'/+0]7%h'#75xRRr4o`&څ^o_`Z@M9wU~tأ>$3r>jVqmDa3`ý^QӇ_rXVŪz?X|Uy$냝>b34.ߠUh*>:=ZQtKc.,S:y5\͢*RK2ߍJp -m^E$&A'zl/*}bUE"lug죓c&o4z˾,yOnC}~~6.#$ygS03@i9܉MAq9Pc 0j d;ﲋOEᲄ\)jMJZE*/:w"oKmAcU4p:j*ZM]ه|`Uzpaz>yYkײڰ -'|v^x
Ӯai׃U
7wzy+q77u?gϠg>ɗDTgS݅MkRk -?8+joLզZJҌphΐZȧ jjO,8;['
ϯlם뼉D'}`Aor_=sp&.c}䛀TdWOA͚/:_{Xˋ/sv *JiiQ)4"QpQvd⨩֒$OݡsYk˙2<rCOtC8.<OT<|
x$/r Ńx^' -}(Ex9+ _>_`y3_\83
^ŜCUQꆡ -E!b
煏utm4 B,Nk>}vȷaAm_: -M4Ԧ|~To -$+v}Zv0'luƏB'8o}?P 7^\^*RBANdOճԭng -:ۻXTpNFd_h*twG -|h@mgomQW:(
-uxw|>N(6Vou0ʺӋY}+J݄P(c^mrşnO)A -55J=.\u_~b}zOQ
깵/vŋKB.BN>=wKU/&_
u}[\BmO?5c -}Pߨ~?뿻l&*:z`)RkB3QzۨaNAՠ ړ*MeK8+B#RX, V]nª:&ArR*v;A)ؘV+]EQ[AF6],WhnEU0Nr3MPXv;.a4_ {TK{Zo?'#VYf7\o3{[/\3Ozͨd_{N)_ްo3Lq5Eiߗ^ݿs魊c1mb~iU+Xwz{ijxž}NN۷jRw`M3S~j8燸_*=odc9}j~sBطt}{\4c%' 0oSMvڜކ;Pfg]2\U럱](ũjw])f -3R}?/h&87y,obQ^u˻~?46JG6"7c{Z]>P<wrUƱBn]T,Z` -ep_h? -&ZeۊV:B+t&/4Ȳb3'Y3-Є[UիX/l -փJ(-0x -l/zcE6T(bMQ<+V?|cdݛawg]ꋗ;^[AJqrQ[^7"ҟ:0u~~XD>Z䳍*P\,9!&|ܬ , ږ>qk# rk^33?R掯O T{A{ v^ZpS2P -S)\%UjRUJ^D&̏r"m~(̘:;sx?en}!^Zo[Y2ˀ*Ա$.0<jI$RȜd569w`xIy<^݁gRgXSV8Dv3P>Nn1"wRwqtwYo|CK;7fn|nnEaU䳘U}RWa\O[q|nDuG2_ 92IFN}b4)1=R]vMxԁrMGty
6)4b4cN1y?C%GV6@D-Jz57;\#|ߍk0mH+Kf
3+T,2;;1،yc%J6 O֭'?k(nVkP};W=!1@u/YUaaf+zp54,,_O"I
bOKzA : 1b^/OoHUgc 9hVaf/>M Π՝rid\'cmjz LoJ:w.C-iԍo6UJAwwS~gSUdmUL -OZaJjSޙdcr6P}!/$ -ݴ_%/q%M~r7zR{9dG9 -]oad8g&:yHnrmMup/߀H;d\Yyk{қ픻[ߪmV8+$fa鯗qxmoR^3tIk9:vG GE\MJTlyO\SZD~d]DJTOPA0$n 1&fycDX+egnmj4n#h -`LqcWu%&^XjbAQx^@^h>c]i|
REq'YIyeo(ȣ2y4q0oj2q~̜ޚĞËUGF?(3ZK+V(TAM8
cN̴RA~@~YPv(7 : )|\օr6Ov{N\;+7KΆ/{c,$f߾ͅVg1k]ZYұc˨scQW:\4lG}bT -xzp$tR<%a`m֠K䬌zv|*?? fwt3c
8Fd -= K@_ƈƹi9n"SU +(tx'J,*8Ѻ`bbʽ6<Y1d$\m1ލ!
V5{r#r0o|ICUP"4+gRweB>y֜Rbqs5=wr}|"T1t:OtXE1N3F)>:c-hCg3@Z#Z:xlmf*t&A1s" -xWD1Q҃8c$tHdѭCX!f.S:Xmr&JHI1)QeSSX"e5>_2K~Kc¥uH!
Gw`'L{M:FfG~O C#|~La!nNK08a&0g-O #O啁iB=e;#8IY*q @Nul~=vE:~w0;u|248TK X(#J1VURfỲOI*G〉>#rSxdGf=~|v<2} 0 -D*CvjIׇTAF(aس=UP8}=vj(79N_N;oºN~Wp:^N?F>rU ??U%9^iUb&"@/H*EQ$p Cb,0Cn.}-y*כRj\8 xGui¬q>@).w_ɨj8wb|)(mxuPKMs])>*r<2qRbPgpc^C^.^Jݍ,+4^8W8]3Bzl}Lp
-mDBX\x'©nW[LF`7:*Tc
{xÁ^PgU-מp=n_Xz%*|/9 -/om"=?uYCVX%_j;&UZ%ѽouhykc!l_̠RffqҎ蜩B]2$gZ%4AC3!-%3#'$r}3K6B>\L73:KF8Ҙa]I{zA燱[8O#<&N'/tzXcx4/^?N~?fMG䄐#tGtz4\y24N?
NKGcMk2M{R4q#=
NK9mN[/7R:Mg:FN4M4iNt8h:rAөHO;ctէF -9BojΈtN缡btXXavJg߮bB\#ZB7B 9TDe IHߩDJ,) B.QJr6]W,pD0wLk0^C{}.)0T1~RGJ=?T}v"k{4uf$S^Hl|ags+1{`G D5/;])ǯ_[-:qW{3ƟwUvecJ»-<Uޝ/wU)*}.m*aX'|ǁްT=b_Mc<lAP%1> -UBvO#P^/d:7Qcm]c -emu,`ՈA
/e -hG<g|ZzxŃ0˸1%*;9r%j_I~Rmt5G9yVDG6 - E3IоTL=$xH6 -[%(JUHMݩ2 IfROR8 -u,'+!hF;ɓ6Pi&d>k
qw,bRb[rx*[Ж8->XC6gqK @kvQ' h$C2.ϰf$Z 92(s#=S4! -!zgabfYq }2hDguR -hؤYC,ƺYf,3ˢWk
f{37Rsict,q|CcG -|fNÌ(9:Vɓi#7#2)QJ;I^X)[)Ef`|V?gC]l(¼~DgC'k Άtl^?~G
+O_φ:"$"qd蹲u"aV?גCϸi*yd;"n^?EOht99cgA/qOf^?Éf3v[: RW7 -~z0Iiw̻~Ty7Tt -47AnYOhD0s8+:|ǀ#%M(5
YuTbz -Hq$F"8AƊ)ף#O{6`d~ıARSY[/ -iac7*kW[W'I99r{yf$|L7j[.WRyW]ΛM8Y_x6~,7rاЛZMaS7sw@|s]n!l\bTAG=>faW˽ᎊ/\ޗdx=% -GVp"3]{+\3G*BF:
fu0&<P AOC3)5)އ/Z8j9:tH❊".
ed#ܬB)*5mhrmXްN_6YJ{+ȬkY:
i7P='Mз6cJNfiD*|TQ3 -|A/Z/ud*iR73 -=M:S}_PYRKh?\/bQ4gM*L->B7wW}_zUwrU98<K6٪@8urL^}ONᐑ[| -ZT.e/kymYy3C -}h#nT -pWЩf1<Sg %k4Q֡z^h5>>n\>ÇONI*_㰎PJ!vd&35Um_ϻ/ -dգе -YI>4*2xw?@slF=>y*-or_xޢ5*T<%yՔlT(g~f~46cʜ\bawË|+(W\=ԛY;g+{{ -W/VPaLZpm]1}
#
]@>X NnGWM-іZyGNПw~~/"sGtElU쫫|?˝KOL:Xg()5NbE -g#Ex9yug|4댌fSrsι$=ηC-|~Qm Lvi\Y<,wfiЪOZqme*d:$ۤ3?}*h;#b>v\}E-%fMm[g -~%5^_1`\P7i.bw1#$Wː8ܨDd;Cyt -{oa94 nq_GyHRP?ePD^;8g2{ҜMQ q}Fmɨj%f -b~H
-ؓ1j1v8b* rJcvz9 -W?'MȜojFP8;20B X_e5E?l/,si)>/3o26-/~aB[&~j!- -KW<TzhO\Q/hKn=$ī$GvǂZ%!P-V0Cqu.<K'%nec?j4{L*4A? -IS:RY(c# N):L&dViD'$SPh"i;1Z/cT -I(ИI(M'23At@$)(I#TyFtG@TDzl>xߤQ;1&I"@%@93 CQ# -_6ɦ8? M0h -D{d,XKS"^R$&ΤB@A3fje49L Je9 ѝdї'acT"Z$#C-Ƃ%=JKDRAGD&A߂`Y
>@txQvS6fiA4>Kqld1l@Tl:+=]I!@%H`;`)`AsS* +Z]5tPg:k^֦%9k[J=^J҇O@VWhOg:+ic'2gڃIY(PL5j6Q-6 +*tI/8䴋`JB꼗SE2%$\HP^<d[RuO#/dٞ&ԅWs%&J8f
UzXfkJjjԦ;dz-T*C0.\]ϵ78}Ӱ5#Z5Bŋߺ_+{;87Zf`~#K9߽-3{)Go4 dd}JnuUBwv/9CZ$Ʌ\.-d)Y}7?Rը0b;3@~1&ы +8:2PU!76F^xs/?QmvKF{}{U{fhC'}| +.Q>VN`> b\-+6vMJU͋H}m^KߩJ)
T%WKuv]CX;S}m$tIEl7Ė3X-<Cob>
uKuҍxzsnҷ۽v D4+n⯨V4j+;ڽծ~;l@yCaL/ۯiW/O:ꃸZ}VSiZn9LUy+EB
v4+m4K3B^c8ojQcT_XMJ^Ep-V*r2[p`*-֬tP=*mܮMk]}ş߸ZyR0.rV +^ڕ}n4+u?S?VR`똾&tL5B'JT;R[I3T*} +n9E]VNiXi@Qͽs48̀jSk%__ƘJbV*Rׁlg{Y75QZB
SCC;G9y}4+}.?>~ݏ&R[Z_hWڎENCR aOÆc!-\hU+׆wJoROJ7]6)*.X2x~1TJMa/f7Is\_1i/q +AZoؕ&VZRXWkORJQv[x+*%~JSGu棎aRިf3Xeo['X3O)&ý-ҪY\~9zZYxw}þM3x(~_b</SvpY`o'[Œ[t:4/;wQڑUQ;z\jg\5b>'Q;[5)~\ط?uvĔŷ*-נI +&).'mܯ=v[ +ZI,lpɛ*I+?YRm(t8J/TSjBOJ}dJ8`+E?R` V +";R@]_)P=Wiۋbp˪:EG6_=_y|78-seҹz%8EIK u$|儋籨p*$ɯ}gCb-CE3MjE>x5chܟ +'kYK0:Pc;O)J"xۘ&݁rqe3̕>mxbE_-z5aE͈uko[)&aE62ӞP-hG/i۱b7+?Nk}IW1ԹXsmDF&h6TJIz5xWieCZ0z +P#4WShM]&j?0~Zs<H89uI* +]Pϻqt:VX:P?A&-dZZ (&PV ռq{/4I.ԗ}CeddQd0HE"(~=vY͌oҤi^{Қ\Nkz%.:Mk4 Cgs u#_6KbabwbQ,'[(qI.I')Lm7btRYp{B%v~Qj2\ݑڱleZ)rL`k}qYYm\ev?V5Mei-q;<Ƈ[* ˲A[1l*|1NS4duS + +&/~.)kﻆ(dp&#OnJXSk + K1WfO+״Kkd=_%lKV!k%&Hv\kR`%)ru/G7 +31%0iln˛h<q9rC\k=q3-E&Rxl`k&!4HgdOmniH=>c9DٍlSJ¯hr@izH*0ōU%oK4,x&
D3=A9%wc]R「rtvBe"ҳ[:J< 67Y݀ח/5 +{z͉YPؓݔbd~B?FAjIrT{l)ʱJԊwreT)|Zڅ|5OV{ ;_ԛ%]`WgSf]hfW18j]ZUcE"ǯb
^zŔCꯅH¼m,p'F' GG3[+eSbVnuDJ[gW¬nI4~ň]~$a-8ehV +"PMc 81:̲vwFvGBu"Ncnĉp6r+솷O7$Ҳ"3M̐ C +&;6fc|$Y)J;C(MALuhlbieuf8\ +7 mW3hV¢$fvF1&p|#SC }UZ}9q*jA4gOE0k=GKo01z N!w>p3s<9V3wRhGQLeʽ~XTk tYWmf SAoS)`ᐯE
tgw,>cIl +P(Q(`S5ȠrGА2^_xF{Z@뒆4b{= +-h#ah +jϋh9dΘ`J,De7N, +ݠ1i"dァqꀮe}1$0#إK&cMtЬ:BtquR =J2{%nޝ,Rp1`-Ù?<Vߩpp&pzAH8:'=5Ny(;5d;Vᔶn["٬#wHP<&[D>b"nTPu4:*'d4H*H.U$ND:CL,exng` =Y"HU:
Aah14I6m^dӜ17}0xdPI(*fXH`iZ0kɽҊ!v24D*86@DgG!Rǎ!:vLH\P R6ArNHx1TX)c&V\ CSM˧a4T@ةp(_7P8q99xb Nz(W@cY_O1z/l*ɉr}10H`Q ""?Τ:d';r%OܬսaQ.wTcy/Ҫ2}١Vϸz'W+F^ B҆W_jb\UʑiR`5M<Nr,ZIF;Kg%OogI¾!mVJ;e=ztSi#Tbe;N vBfBE||8]$o8۫Oatzҹ~>kK^2v>Uz/GءQ5<KݹwWAeMTb~-"z[IW BnlpEGtYcXm$iQpQk2V3UKzLy^!hHt&>$rq}dD?oFFHgkFyFgYG>_s|""l+i:}O1h0ftZv +]Zq([}4t-'O.LPg{hğFg]<$f0qA-:a& u?9'e5;J<<4gp=#]h(TP(1h(PYD~`3}'A>Z +uFܮZH"O1Q)*$&Rˎ +#r@(K5qySaa'IdxDI.,);Z4CPoB$:ZPw SkڇSe0/[sk*Q5n
&^NEu(XV͖OBŪv vxAiD +agc+h1Yy@SD5sꂮWUjLB{o;\1w%p6Կyز>ǃQd +I+ǁް8TV꽜D>qybK$]T*)G0@9}_JmnH`e9oIۺTt7ՑU":6\I|{V([)V*+}#zWZu.P WE壏.VI(-̮5q}ǕJYy{gEO,,ta ?
e13$XA9%C$CMoTdlڝ*3rdf!$UCC*x4S<ifRFOM/wg:"I(-|!&(-[Qx?&iڣU[> sgJ/ 6j:pHFu/jVN1#ioY:zP;ҳ,?E +h`ĝYCƚYfLfEǫDXUQCIΥE1Ev
S +.r;H$># +]H=6)'@Y맘<.Jg{=I^?~'[p-AZ'ⷴxQqy 4әkED3H'GR^?c͡맃{0맯N?woN44맿,"8>Jk||4N0}~NoPjKŧDZ'sl!y^^Qy맟M\^?>¼~g:Q(\T;/'R^?+Ywʙټ~]U~N +y4EO\8~-3yؕK+у~! +^WH?^///k|6rsa;=)xzU+<loK?_d HN0
?Gb팃DL6qjK_Liz<hwTl_itwsٱ}EF;s>t6Z0σwfA$B
W^"LTtܔk>CJt"͉VI׀XӢC>lK}C 4+^2sbt7;gs16 +rr<֞zMx:|k-{VG/EP$ +r,E9(qCALx˰eOn dMC
>,oí#GdsO-=mޢ[+͍U^?.bm'2dvWډP~Wb~ݵPzrIۖcA?\>(K$%Q"=&M)>YWf/v*bWFQuq1--?cK%
rS&.]^n!w|&` Kx3mS쯇쑿'p#i|^ ąY9el)<#]m]EA"lTGsw1rη=08jmsபo_IٚJ^uLK7]p@l߯\M`Ln +bM-7UJN̾߮|U$2u4:/uZ
vTtDw+(_d1 -Q 8۸[f4X9PB7'(RЛD@!=
(ƧԤ4Fh`,V!{"<qϺ4S2Zf2ڦĤEKayDz-} +--o%NjTB3vh\@b:iXfʶ +q|e`|k^+p#
cG#VHn%q +~"&%ъlV"@^D/o:^+|yGW3^4֡ +O2o}3/u^fsha+,(){?K|}HEgR(%/dQhaƼdmxmеۻXs[!H94i8iɷ[cwQ8BvQ%{ `0p·APAا +>,j@ۭ9Q$=/+{qw_Rlf]ƹNƴTDx 7%>xBӡ<.$vhvQtC})~Nn`fw杚8WG7g%%:J巉-Lqna/,@Z?PP8 ;_O&qG@@Wz +kۇtK"F$,+>el4|-(e1Fiiw]UrTR +^S
@=YX W)准= +涂.d{\hn8(B!@BnT
QQY +ntQS;YVxAEH)-Q77b_:-Сu!)a$ +9rPHas^K`/?tP#"gX +%(NN=Ƽ((~Ǻ͊+`(S
*Lp+ MFܖGT%Ż
(<Jy0|Y~$|1:YᙿJ49I4`*q<^n2iS]&"wl.ɖ*hE,[kцm67ܭ֖3NO~>co*sF33& +]Զ} +2$t".+ן0-6-.CSЬ@אqwvͷ8g @d$ORKPq|KЃIT:ARt<>IGD +ŴmMLGXG2?X:uD?bP9 8MxQ9$2t*7)OF| +θq)0
/D/$"3+L
8t$
?A +x5::A]9ǖi8e tI! ԖFK(&Ƞ]'G\934=_q q V'Q9O71=:| 0000000016 00000 n
-0000000173 00000 n
-0000036399 00000 n
+0000000248 00000 n
+0000036249 00000 n
0000000006 00000 f
-0000235736 00000 n
+0000235775 00000 n
0000000008 00000 f
-0000036450 00000 n
+0000036300 00000 n
0000000009 00000 f
0000000010 00000 f
0000000011 00000 f
0000000012 00000 f
0000000013 00000 f
0000000016 00000 f
-0000235993 00000 n
-0000236024 00000 n
+0000236974 00000 n
+0000237005 00000 n
0000000017 00000 f
0000000018 00000 f
0000000019 00000 f
0000000020 00000 f
0000000021 00000 f
0000000022 00000 f
+0000000024 00000 f
+0000235845 00000 n
+0000000025 00000 f
+0000000026 00000 f
+0000000027 00000 f
+0000000028 00000 f
+0000000029 00000 f
+0000000030 00000 f
+0000000033 00000 f
+0000236858 00000 n
+0000236889 00000 n
+0000000034 00000 f
+0000000035 00000 f
+0000000036 00000 f
+0000000037 00000 f
+0000000038 00000 f
+0000000039 00000 f
+0000000041 00000 f
+0000235916 00000 n
+0000000042 00000 f
+0000000043 00000 f
+0000000044 00000 f
+0000000045 00000 f
+0000000046 00000 f
+0000000047 00000 f
+0000000050 00000 f
+0000236742 00000 n
+0000236773 00000 n
+0000000051 00000 f
+0000000052 00000 f
+0000000053 00000 f
+0000000054 00000 f
+0000000055 00000 f
+0000000056 00000 f
+0000000058 00000 f
+0000235987 00000 n
+0000000059 00000 f
+0000000060 00000 f
+0000000061 00000 f
+0000000062 00000 f
+0000000063 00000 f
+0000000064 00000 f
+0000000067 00000 f
+0000236626 00000 n
+0000236657 00000 n
+0000000068 00000 f
+0000000069 00000 f
+0000000070 00000 f
+0000000071 00000 f
+0000000072 00000 f
+0000000073 00000 f
+0000000075 00000 f
+0000236058 00000 n
+0000000076 00000 f
+0000000077 00000 f
+0000000078 00000 f
+0000000079 00000 f
+0000000080 00000 f
+0000000081 00000 f
+0000000084 00000 f
+0000236510 00000 n
+0000236541 00000 n
+0000000085 00000 f
+0000000086 00000 f
+0000000087 00000 f
+0000000088 00000 f
+0000000089 00000 f
+0000000090 00000 f
+0000000092 00000 f
+0000236129 00000 n
+0000000093 00000 f
+0000000094 00000 f
+0000000095 00000 f
+0000000096 00000 f
+0000000097 00000 f
+0000000098 00000 f
+0000000101 00000 f
+0000236393 00000 n
+0000236424 00000 n
+0000000102 00000 f
+0000000103 00000 f
+0000000104 00000 f
+0000000105 00000 f
+0000000106 00000 f
+0000000107 00000 f
0000000000 00000 f
-0000235806 00000 n
+0000236201 00000 n
0000000000 00000 f
0000000000 00000 f
0000000000 00000 f
@@ -1463,8 +1505,8 @@ I(ИI(M'23At@$)(I#TyFtG@TDzl>xߤQ;1&I"@%@93 0000000000 00000 f
0000000000 00000 f
0000000000 00000 f
-0000235877 00000 n
-0000235908 00000 n
+0000236275 00000 n
+0000236307 00000 n
0000000000 00000 f
0000000000 00000 f
0000000000 00000 f
@@ -1472,21 +1514,21 @@ I(ИI(M'23At@$)(I#TyFtG@TDzl>xߤQ;1&I"@%@93 0000000000 00000 f
0000000000 00000 f
0000000000 00000 f
-0000037936 00000 n
-0000236109 00000 n
-0000036781 00000 n
-0000038236 00000 n
-0000038123 00000 n
-0000037217 00000 n
-0000037375 00000 n
-0000037423 00000 n
-0000038007 00000 n
-0000038038 00000 n
-0000038310 00000 n
-0000038528 00000 n
-0000039492 00000 n
-0000041676 00000 n
-0000107264 00000 n
-0000172852 00000 n
-0000236134 00000 n
-trailer
<</Size 57/Root 1 0 R/Info 56 0 R/ID[<9409B0CDFC6845A0AE06E338F771D8CE><7BE266E630D442A18F9757E7A5281539>]>>
startxref
236318
%%EOF
\ No newline at end of file +0000038113 00000 n
+0000237090 00000 n
+0000036622 00000 n
+0000038419 00000 n
+0000038305 00000 n
+0000037389 00000 n
+0000037549 00000 n
+0000037599 00000 n
+0000038187 00000 n
+0000038219 00000 n
+0000038495 00000 n
+0000038719 00000 n
+0000039673 00000 n
+0000041854 00000 n
+0000107443 00000 n
+0000173032 00000 n
+0000237117 00000 n
+trailer
<</Size 142/Root 1 0 R/Info 141 0 R/ID[<9409B0CDFC6845A0AE06E338F771D8CE><85278AF4F7A3494B9CAC35047413BBF2>]>>
startxref
237302
%%EOF
\ No newline at end of file diff --git a/art/drawer_icons.ai b/art/drawer_icons.ai index f0eee67..d68265e 100644 --- a/art/drawer_icons.ai +++ b/art/drawer_icons.ai @@ -1,40 +1,41 @@ %PDF-1.5
%
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 22 0 R 39 0 R]/Order 40 0 R/RBGroups[]>>/OCGs[5 0 R 22 0 R 39 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 41291/Subtype/XML/Type/Metadata>>stream
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 22 0 R 39 0 R 56 0 R 73 0 R]/Order 74 0 R/RBGroups[]>>/OCGs[5 0 R 22 0 R 39 0 R 56 0 R 73 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 45825/Subtype/XML/Type/Metadata>>stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> +<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15 "> <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/"> + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:xmp="http://ns.adobe.com/xap/1.0/" + xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/" + 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#" + xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/" + 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/" + xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> <dc:format>application/pdf</dc:format> <dc:title> <rdf:Alt> <rdf:li xml:lang="x-default">Print</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>2014-05-20T14:57:44-04:00</xmp:MetadataDate> - <xmp:ModifyDate>2014-05-20T14:57:44-04:00</xmp:ModifyDate> + <xmp:MetadataDate>2014-09-17T12:23:13-04:00</xmp:MetadataDate> + <xmp:ModifyDate>2014-09-17T12:23:13-04:00</xmp:ModifyDate> <xmp:CreateDate>2014-05-12T17:59:24-04:00</xmp:CreateDate> <xmp:CreatorTool>Adobe Illustrator CS6 (Macintosh)</xmp:CreatorTool> <xmp:Thumbnails> <rdf:Alt> <rdf:li rdf:parseType="Resource"> <xmpGImg:width>256</xmpGImg:width> - <xmpGImg:height>164</xmpGImg:height> + <xmpGImg:height>236</xmpGImg:height> <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgApAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYqw
38yvzZ8m/l5pgu9euv8ASZlJstNho9zOR/IlRRfF2IUeNcVfJnnz/nLb8y/ME0sOhyJ5b0wkiNLY
CS6ZO3qXDg0P/GNUxV5BqvmDXtXlMuraldajKx5NJdzyTsT4kyMxxVBwTz28qywSNFKv2ZEYqw+R
G+Ks+8o/n7+bHleSP6j5guLq1TrZagxu4Sv8oEvJkH+oy4q+n/yk/wCcqvKvnCeHSPMUaaBr0lEh
ZnrZ3DnakcjbxsT0V/oYnbFXueKuxV2KuxV2KuxV4X+bX/OVflXyhPNpHl2Jdf12IlJnV6WcDjYq
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</xmpGImg:image> + <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA7AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FUNqOp6bplnJe6ldw2NnFvLc3MiRRKP8p3KqPvxV495u/5y1/KjQmkg06a41+7TbjYx0g5e
88pRSPdA2KvH/Mf/ADmr54vCyaBo1jpUJ+y85e8mHuG/cx/ehxV5xrP/ADkH+cursxufNV5AG6LZ
FLMAeA+rLEfxxViN95s806g3K/1m+u2JqTPczSGvj8bHxxVKsVbBINRsRiqa2Pm3zVp7crDWb60a
tawXM0Rrtv8AAw8MVZdo3/OQn5zaQV+r+arydVpVbzheVA7E3Kyt+OKvR/Lf/Oavne0ZE1/RrHVY
RQNJbl7SYjuSf30f3IMVew+UP+cs/wAp9eKQ6hcT+X7ttuF/HWEt/kzxeooHu/HFXsGn6jp+pWkd
5p11DeWcorFc28iyxsPFXQlTiqIxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kpdr/m
LQvL2mS6prl9Dp2nw/3lxO4Ra9lFd2Y02UbnFXzR+ZH/ADmcFeWw8gWAcAlf01fqaHtyhtqg+4Mh
+aYq+bvNPnbzb5svfrvmPVbjU56kp67koleojjFI4x7KoGKpJirsVdirsVdirsVdirsVdirsVT3y
p5583+Ur0XnlzVrjTJqguIX/AHb07SRNyjkHs6kYq+k/y2/5zNgk9Kw8/wBj6LbL+mrBSyf601tu
w9zGT7IMVfSmheYNE8waZFqmiX0OoafN/d3Nu4dCe6mnRh3U7jviqYYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq8c/OX/nJPyv5B9XSdNCaz5pUEGzRv3Fs1NjcyL3/4rX4vHjscVfGXnj8w/N/n
fVDqPmTUJLyQE+hBXjBCp/ZhiHwoNvme5OKsbxV2KuxV2KuxVciPI4RFLuxoqqKknwAGKpjH5X8z
SIJI9IvXRt1ZbeUgj2IXFXSeV/M0aGSTSL1EXdma3lAA9yVxVLnR43KOpR1NGVhQg+BBxVbirsVd
irsVdirJfIv5jecPI2qjUvLmoPauSPrFsfjt51H7M0R+Fh79R2IOKvs/8m/+ckfKvn8Q6XfhdG80
kU+oyN+5uGHU20jdT39NviHblSuKvYMVdirsVdirsVdirsVdirsVdirsVdiriQBU7AdTir5W/P3/
AJylZXufK3kC5oV5Rah5giO9RUNHaMPxl/4H+bFXys7vI7SSMXdyWd2NSSdySTiq3FXYq7FWc+Rf
yV/Mnzvwl0PR5PqDf9LK5/0e1p4rI9OfyjDHFXvnlH/nCXTIlSbzdr8tzJ1ez0xBEgPh68wdmH/P
NcVet+Xv+cevyd0JV+reWbW6lXrNfhrxifGlwZEH+xUYqzrT9J0rToxFp9lBZxAUCW8SRLQdqIAM
VRWKuxVC6hpOlajGYtQsoLyIihS4iSVaHtRwRirBfMP/ADj1+Tuuq31nyza2srdJrANZsD40tzGh
/wBkpxV5J5u/5wl0yVXm8o6/LbSdUs9TQSoT4evCEZR/zzbFXgfnr8lfzJ8kc5dc0eT6gv8A0srb
/SLWni0iV4fKQKcVYNirsVdiq6OSSKRZI2KSIQyOpIYMDUEEdCMVfVn5Bf8AOUpla38rfmBdAOaR
af5hlNKnosd2fHsJf+C/mxV9TAgio3B6HFXYq7FXYq7FXYq7FXYq7FXYq7FXyP8A85Kf85GvfyXf
kjydc8bBC0Gs6tE285Gz28DD/dXZ3H2+g+H7Sr5jxV2KuxVln5e/lf5z8/an9R8u2LTJGR9avpPg
toAe8sp29woqx7A4q+vPyy/5xU8heVUhvddRfMetrRjJcr/okbeEduahqfzScvEBcVe1oiIioihU
UAKoFAANgABireKuxV2KuxV2KuxV2KuxVp0R0ZHUMjAhlIqCDsQQcVeKfmb/AM4qeQvNSTXuhIvl
zW2qwktl/wBEkbwktxQLX+aPj4kNir5D/ML8r/OfkHU/qPmKxaFJCfqt9H8dtOB3ilG3uVNGHcDF
WJ4q7FXYq+nf+cav+cjJLGS08j+cbnlYNSHRtWmYfuD0W3nZj/d9kY/Z6H4acVX1virsVdirsVdi
rsVdirsVdir5x/5yp/PN9Cs5PIvly44azeR/7mLyNvitrdxUQoR0llU7n9lPdgQq+OcVdirsVe3f
kV/zjbq3ntotd171NN8pg1jYfDcXlDusNR8Me3xSH5LXcqq+1fL/AJd0Py7pMGkaHZRafp1sKRW8
Ioo8ST1Zj3ZiSe+KpjirsVdirsVSHzX578oeUo7aTzJqsGlpdlltmnJAcxgFgKA9OQxVj3/K/vya
/wCpssf+Cb/mnFUfoH5v/lp5g1aDSNF8w2l9qdzz+r2sTMXf00aR6VA6IhOKswxV2KuxV2KuxVLv
MHl3Q/MWkz6RrllFqGnXIpLbzCqnwIPVWHZlII7Yq+Kvz1/5xt1byI0uu6D6mpeUyayMfiuLOp2W
ag+KPf4ZB8mpsWVeI4q7FXYq+yP+cWPzzfzBZp5H8x3HPW7KP/cRdyN8V1bxjeJiessSiviyf6pJ
VfRmKuxV2KuxV2KuxV2KsF/Ob8zrH8u/JN1rMnGXUpv9H0i0b/dty4PEkfyRj439hTqRir879T1K
/wBU1G51LUJ3ub68kaa5uJDV3kc8mYn3JxVC4q7FX0D/AM42f849nzbcRebfNNuR5XgYmxtH2+vS
o1CWH++EIIb+Y7dK4q+0IIILeCOCCNYoIlCRRIAqIiiiqqjYADYAYqvxV2KuxV2KuxV8wf8AOcf/
AByvKP8Axnvf+IQ4q+SsVeq/84uf+T28s/8AR9/3T7jFX3/irsVdirsVdirsVWTwQXEEkE8aywSq
UlicBkdGFGVlOxBGxBxV8X/85J/849nylcS+bfK1uT5XnYG+tE3+oyu1AVH++HJAX+U7dKYq+fsV
diqK0vU7/StRttS06dra/s5UntbiM0ZJIzyVh8iMVfoj+TX5m2X5ieSLXWkCxajF/o2rWqn+7uUA
5ED+Rweaexp1BxVnOKuxV2KuxV2KuxV8Af8AORv5oN57/MC4FpMX0DRi9npSg1R+JpNcD/jK67H+
ULiryrFXYq9U/wCcfvybuPzG81VvFaPyzpZWXVZxVfUJ3S2Q/wA0lPiI+ytT141VffdnaWtlaQ2d
pEsFrbosUEEYCoiIOKqoHQACmKquKuxV2KuxV2KuxV8wf85x/wDHK8o/8Z73/iEOKvkrFXqv/OLn
/k9vLP8A0ff90+4xV9/4q7FXYq7FXYq7FXYqpXlpa3tpNZ3cSz2twjRTwSAMjo44srA9QQaYq+BP
+cgfybuPy581Vs1aTyzqhaXSpzVvTI3e2c/zR1+En7S0PXlRV5XirsVerf8AOOP5ot5E8/wLeTcN
A1opZ6qCfhSppDcH/jE7bn+Qtir7+xV2KuxV2KuxV5T/AM5LfmG/k38srwWkvp6vrR/R1gQaOokU
meUd/giqAw6MVxV8A4q7FUbouj6jrWr2ekabCZ7+/mS3toh+1JIwVfkN9z2xV+jv5Y/l9pXkLydY
+XbABmhX1L66AoZ7lwPVlPzOy+CgDtirKsVdirsVdirsVdirsVfMH/Ocf/HK8o/8Z73/AIhDir5K
xV6r/wA4uf8Ak9vLP/R9/wB0+4xV9/4q7FXYq7FXYq7FXYq7FWK/md+X2leffJ195dvwFaZfUsbo
ipguUB9KUfI7N4qSO+Kvzi1rR9R0XV7zSNShMF/YTPb3MR/ZkjYq3zG2x74qgsVdir7+/wCcavzD
PnL8srP61L6mr6KRp2oFjV2ESj0ZT3POKlWPVg2KvVsVdirsVdir4d/5y786trn5m/oSGTlY+XIV
t1UGqm5mAlnb5/YQ/wCrirw3FXYq+nv+cMvy5W61DUPPl/FWOyrY6RyG3rOoM8q1/kRggP8AlN4Y
q+tsVdirsVdirsVdirsVdir5g/5zj/45XlH/AIz3v/EIcVfJWKvVf+cXP/J7eWf+j7/un3GKvv8A
xV2KuxV2KuxV2KuxV2KuxV8k/wDOZv5cra6hp/nywipHe0sdX4jb1kUmCVqfzopQn/JXxxV8w4q7
FXuX/OIfnVtD/M39CTScbHzHA1uQTRRcwgywN8yA6D3bFX3FirsVdiqE1jVLXSdJvdUu242thby3
Vw3hHChkc/8AArir8xNc1e71nWr/AFe8bld6jcS3Vw3jJM5dvxbFUDiq+KKSWRIolLySMFRFFSWJ
oAB74q/Sn8sPJsPkzyFovlxABLZW6/W2XcNcyfvJ2r4GVmp7YqyjFXYq7FXYq7FXYq7FXYq+YP8A
nOP/AI5XlH/jPe/8QhxV8lYq9V/5xc/8nt5Z/wCj7/un3GKvv/FXYq7FXYq7FXYq7FXYq7FWL/mf
5Nh85+Qta8uOAZb23b6ozbBbmP8AeQNXwEqrX2xV+a0sUkUjxSqUkjYq6MKEMDQgj2xVZiqO0PV7
vRtasNXs243enXEV1bt4SQuHX8VxV+nekana6rpNlqlo3K1v4Irm3brWOZA6H7mxVF4q7FXln/OT
ev8A6G/JjXijcZ9QEVhD7/WJVEg/5Eh8Vfn9irsVekf847+WF8xfnB5etZV5W1nOdQuAdxxs1Myg
juGkVV+nFX6GYq7FXYq7FXYq7FXYq7FXYq+YP+c4/wDjleUf+M97/wAQhxV8lYq9V/5xc/8AJ7eW
f+j7/un3GKvv/FXYq7FXYq7FXYq7FXYq7FXYq/PP/nIjywvl384PMNrEvG2vJxqFuBsON4omYAdg
sjMv0Yq83xV2Kv0C/wCcZdfOs/kxoLO3KfT1lsJfYW8rLGP+RPDFXqWKuxV84/8AObeqNF5K8v6W
DQXeotcMB3FtAy+HjP44q+OcVdir6U/5wi0ZZvNfmTWStTY2MNopPY3cpf8AVa4q+wMVdirsVdir
sVdirsVdirsVfMH/ADnH/wAcryj/AMZ73/iEOKvkrFXqv/OLn/k9vLP/AEff90+4xV9/4q7FXYq7
FXYq7FXYq7FXYq7FXx//AM5u6MsPmvy3rIWhvrGa0YjubSUP+q6xV814q7FX2N/zhJqjS+SvMGlk
1FpqK3Cg9hcwKvh4weOKvo7FXYq+Tv8AnOS6LX/k+0qtIor6XiPtfvGgWp36fu9vpxV8uYq7FX2D
/wA4RWap5S8yXo+1NfxQnrWkMIYe3+7jir6TxV2KuxV2KuxV2KuxV2KuxV8wf85x/wDHK8o/8Z73
/iEOKvkrFXqv/OLn/k9vLP8A0ff90+4xV9/4q7FXYq7FXYq7FXYq7FXYq7FXzZ/zm7Zq/lLy3en7
UN/LCOtaTQlj7f7pGKvj7FXYq+o/+cG7orf+cLSq0lisZeJ+1+7adajfp+83+jFX1jirsVfIH/Ob
3/KVeWv+YGb/AJPYq+asVdir7V/5wpA/5VZqp7/pyff/AKNLXFXv+KuxV2KuxV2KuxV2KuxV2Kvm
D/nOP/jleUf+M97/AMQhxV8lYq9N/wCca9R0/Tvzs8tXeoXMVpaq12jTzusaBpbKeNAWYgfE7hR7
nFX6D4q7FXYq7FXYq7FXYq7FXYq7FXgH/OawH/KrNKPf9OQb/wDRpdYq+KsVdir6V/5wh/5SrzL/
AMwMP/J7FX1/irsVfJf/ADnHa8dU8o3fGnqwXsXOu59J4WpT29XFXy/irsVfYn/OEd4r+TPMVnX4
odRSYivaaBVG3/PLFX0hirsVdirsVdirsVdirsVdir5g/wCc4/8AjleUf+M97/xCHFXyVirsVev/
AJUf85LeePIvo6feOdd8upRRp9y59WFBt/o8x5MlOyNVfADrir7D/Ln83PI/5gWPr6BfA3aLyudM
npHdw/60dTyX/LQlfeuKsyxV2KuxV2KuxV2KuxV2Kvm//nNy8VPJnl2zr8U2ovMBXtDAynb/AJ64
q+O8Vdir6g/5wcteWqebrvjX0oLKLnXceq8zUp7+lir60xV2Kvm3/nN3TTJ5S8t6nTa1v5bav/MT
CX/7FsVfHuKuxV9Nf84QawI/MPmfRSd7u0t7xVr/AMssrRsQP+jkVxV9dYq7FXYq7FXYq7FXYq7F
XYqk3mvyd5Z82aS+leYtOh1GyfcJKPiRunONxR42/wApSDir5N/Nf/nETzDonrap5HeTW9LFXbTH
p9eiHUhKUWcf6oD9uJ64q+eZoZoJXhmRopo2KyRuCrKwNCGB3BGKrMVROnalqOmX0N/p11LZ3tuw
eC5gdo5EYd1dSCMVfTX5Uf8AOYdxD6OlfmHEZ4tkTXrZB6i9q3ECgBh/lR7/AOSeuKvqPRdc0fXN
Nh1PR72G/wBPuByhubdw6N4io6EdCDuO+Ko7FXYq7FXYq7FXYq+Rf+c39YEnmHyxooO9paXF4y1/
5apVjUkf9Gxpir5lxV2KvsL/AJwi0wx+UfMmqU2utQitQf8AmGhD/wDYzir6SxV2KvJ/+cpNBbV/
yY1lo15Taa0F/GKV2ilCyH6Inc4q+A8Vdir1D/nGrzOnl/8AOPQpZn4W2ou+mznpX60vCIf8jvTx
V+gmKuxV2KuxV2KuxV2KuxV2KuxV2KvOfzR/IfyJ+YULzX9t9R1vjSLWbQBZqgUAlH2Zl9m38CMV
fHP5pfkL57/L2WSe+t/0hofKkWs2is0NCaL6y/ahbfo21ejHFXm+KuxVlPkL8zPOfkTUvr3lzUHt
uRBuLR/jtpwO0sR+Fttq7MOxGKvr78qP+cpvJnm/0dN14p5e8wNRQkzf6HO3/FUzfYJP7ElPAFsV
e24q7FXYq7FXYq/Pv/nJTzOvmD84tdlifnbac6abBvWn1VeEv/Jbniry/FXYq+/P+cXNBbSPyY0Z
pBxm1Jp7+QUptLKVjP0xIhxV6xirsVQHmDRrbW9B1HRroVttStZrSb/UnjMZ/BsVfmHqen3Wm6ld
6deJ6d3ZTSW9xH/LJExRx9DLiqGxVVtbq4tLqG6tnMVxbussMi9VdCGVh8iMVfph5B82W3m7yZo/
mS3oE1K2SWRF3CTD4Zo6/wDFcqsv0Yqn+KuxV2KuxV2KuxV2KuxV2KuxV2KrZoYponhmRZIpFKSR
uAysrChVgdiCMVfPX5r/APOIvl3XfW1TyS8eiaq1WfTnr9Rlbr8NAWgP+qCv+SOuKvkzzZ5M8z+U
tVfSvMWnS6derUqko+F1BpzjkWqSL/lKSMVSXFXYq9f/ACo/5yW88eRfR0+8c675dSijT7lz6sKD
b/R5jyZKdkaq+AHXFX2j+X3n7QvPflqHzDogmWzlZomS4jMTrIlOa71VqV+0hK+9QcVZJirsVSDz
95stvKPkzWPMlxQppts8saNsHmPwwx1/4slZV+nFX5n3V1cXd1NdXLmW4uHaWaRurO5LMx+ZOKqW
KonTNPutS1K006zT1Lu9mjt7eP8AmklYIg+lmxV+nmgaRb6LoWnaPbf7z6baw2kPb4IIxGv4LiqP
xV2KuxV8Jf8AOWHktvL/AOa1zqMMfGx8wxLfxECiib+7uF/1ua+of9fFXjGKuxV9Wf8AOF35hqU1
LyHey0YE6jpAY9QaLcxLXw+FwB/lHFX1RirsVdirsVdirsVdirsVdirsVdirsVdiqTea/J3lnzZp
L6V5i06HUbJ9wko+JG6c43FHjb/KUg4q+TfzX/5xE8w6J62qeR3k1vSxV20x6fXoh1ISlFnH+qA/
bieuKvnmaGaCV4ZkaKaNiskbgqysDQhgdwRiqfeQPJWq+dfNuneW9MFJ76SkkxBKwwr8Usr07IgJ
9+nU4q/SDyz5d0vy3oFhoOlRejp+nQrBbp3oo3Zj3ZjVmPcnFUzxV2Kvlf8A5zR/MNQmm+Q7KWrE
jUdXCnoBVbaJqePxOQf8k4q+U8Vdir2f/nE/yW3mH81bbUZY+Vh5eja/lJFQZv7u3X/W5t6g/wBT
FX3birsVdirsVeN/85U/l83mr8tJtQtIzJqvlxjf24UVZoKUuo/+RY9T5oBir4PxV2Kpr5X8yan5
Z8xafr+lyenf6bMs8BPQlTujU6q61Vh4HFX6QeQ/Oek+dPKmn+Y9LetvfRhniqC0Mo2khf8Aykao
/Hpiqf4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXnP5o/kP5E/MKF5r+2+o63xpFrNoAs1QKASj
7My+zb+BGKpL+QX5CR/lmNVvNQuYdR1q9kMMF5CrKqWSkMqgNurSN8Ug3GyippUqvYMVdiqQefPO
ek+S/KmoeY9UelvYxlkiqA00p2jhT/KdqD8emKvzf80eZNT8zeYtQ1/VJPUv9SmaecjoCx2Ra9FR
aKo8BiqVYq7FX3j/AM4r/l+fKv5ZwX91Fw1TzEwv7iooywEUtoz/AM8zz9i5xV7HirsVdirsVadE
dGR1DIwIZSKgg7EEHFX54/nz+Wcn5f8A5gXmnQoRo17W80eTt6EjGsXfeFqp40APfFXnWKuxV7P/
AM41/nT/AIC8xnSdYmI8q6w4Fyx+za3Gypcj/Jp8MntQ/s0xV91xyRyxrJGweNwGR1IKspFQQR1B
xVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVWySRxRtJIwSNAWd2ICqoFSST0AxV8Kf85K
fnT/AI98xjSdHmJ8q6O5Fsw+zdXG6vcn/Jp8MftU/tUxV4xirsVejfkL+WUn5gfmBaafOhOi2NLz
WJO3oRkUir4zPRPlU9sVfoaiIiKiKFRQAqgUAA2AAGKt4q7FXYq7FXYq82/Pv8qYfzF8kS2duqjX
tO5XOizGg/e0+OAsaUWZRx9m4ntir8+Li3ntriW2uI2huIXaOaJwVdHQ0ZWU7ggihGKqeKuxV9N/
84y/85Drpv1byP5wulTTf7vRdWnanoGvw20zHb0/5GP2Ps/ZpxVfXIIIqNwehxV2KuxV2KuxV2Ku
xV2KuxV2KuxV2KuxV2KuxVxIAqdgOpxV8jf85Nf85DrqX1nyP5PulfTf7vWtWgavrmvxW0LDb0/5
2H2/s/ZryVfMmKuxVVtba4urmK1tommuZ3WKCFAWd3c8VVQNySTQYq/Qf8hfyqi/LvyPDZXCqde1
Djda1MtD+9I+CEEVqsKnj4E8j3xV6RirsVdirsVdirsVdir5Z/5yv/I55fW/MPy5b8nAr5is4xvQ
Cn1xQPDpLT/W/mOKvlHFXYq7FX0X+Qn/ADlBceXI7byx51ke50FAIrHVKF5rRRsEkA+KSEdv2lG2
4oAq+wdP1Cw1Gygv7C4ju7K5QSW9zCweN0boystQRiqIxV2KuxV2KuxV2KuxV2KuxV2KuxV2KofU
NQsNOsp7+/uI7SytkMlxczMEjRF6szNQAYq+Pvz7/wCcoLjzHHc+WPJUj22guDFfapQpNdqdikYP
xRwnv+0w22FQVXzpirsVdir6w/5xQ/I5oRD+YfmO3pIwr5ds5B0VhT64wPcg0ir/AK38pxV9SYq7
FXYq7FXYq7FXYq7FWnRJEaORQ6OCrowqCDsQQcVfFn/OR3/OPE/lO6uPNnleAyeV5353lnGKmwdj
4D/dDH7J/Z+ydqYq+f8AFXYq7FXoP5Wfnd52/Lm6ppU4utHkfndaPcktA5PVkp8UT0/aX/ZBumKv
sb8sv+chfy98+JFbwXQ0rXHoG0i9ZUkZv+KJNkmHhx+LxUYq9NxV2KuxV2KuxV2KuxV2KuxV2KvM
vzN/5yF/L3yGktvPdDVdcSoXSLJleRW/4vk3SEePL4vBTir45/NP87vO35jXVNVnFro8b87XR7Yl
YEI6M9filen7Tf7EL0xV59irsVdir6A/5xw/5x5n813UHmzzTb8PK0DcrOzlBBv3XoabfuFbqf2v
s9K4q+01VVUKoCqooqjYADsMVbxV2KuxV2KuxV2KuxV2KuxVZPBBcQSQTxrLBKpSWJwGR0YUZWU7
EEbEHFXx1+fv/OMN3oDXHmfyTA91oRJkvdJSrzWlSSXiHV4R4bsvuNwq+c8VdirsVbBINRsRir1X
yF/zkv8Aml5QWO2+vjWtMjoBZanym4qNqRzArMtB0HIqP5cVe/eUf+cy/wAvNSWOLzFZ3eg3JoJJ
Qv1u2HvziAl/5JYq9b8v/mZ+XvmFV/QvmLT712FfQS4jEwHvCxWQfSuKslxV2KuxV2Ksa8wfmZ+X
vl5W/TXmLT7J1FfQe4jMxHtCpaQ/QuKvJPN3/OZf5eaaskXl2zu9euRURylfqlsffnKDL/ySxV4D
59/5yX/NLzeslt9fGi6ZJUGy0zlDyU7UkmJaZqjqOQU/y4q8qJJNTuTirWKuxV2Kvo/8gv8AnGC6
11rbzR54t3ttE2lsdHeqS3Y6q83Ro4fAdX9l+0q+woIILeCOCCNYoIlCRRIAqIiiiqqjYADYAYqv
xV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvn/APOn/nFbRvNDT675PEWk6+1ZJ7IjhZ3TdSaKP3MjeIHE
nqBu2Kvj/wAx+WPMHlrVZdJ16wm07UIftwTLQ0PRlIqrKezKSDiqV4q7FXYq7FXYqm+mebvNelKq
6XrV/YKtOItrqaEDj0pwZelMVTyL85vzaijCL5w1cqOhe8mc7mu7MxOKul/Ob82pYyjecNXCnqUv
JkOxrsysDiqR6n5v82aqGGqa1f34avIXV1NMDXrXmzdcVSjFXYq7FXYq7FU18teVvMPmfVotJ0Cw
m1HUJvswwrWi1ALu32UQV3ZiAMVfYX5Lf84saJ5UaDXPNvpav5hWkkNoBys7VuoIDD97Iv8AMfhH
YbcsVe+4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqx/zp5B8pedNLOm+ZNOivoBUwuw4yxMwp
yilWjofkd++Kvlj8yP8AnDnzNpjzX3ki5Gs6eKsNOuGWK9QeCt8MUv8Awp7UOKvn7VdH1bSL6Sw1
WynsL2L+8trmN4ZF+aOAcVQeKuxV2KuxV2KuxV2KuxV2KuxVG6Rour6zfx6fpFlPf30v93bW0bSy
Ht9lQTTfrir6D/Lb/nDjzFqfpX/ni7/Q1kaN+jLYrLeMPB3+KKL/AIc+IGKvqbyd5E8peTdLGm+W
9Ni0+22MrIKyysP2pZWq8h/1jt22xVPsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiq
T+ZfJ3lbzRZ/U/MOlW2p29CEFxGrslepjf7aH3Ug4q8P84f84X+SNQ5zeWNSudDmO6283+mWw9hz
KTD5mRvlirx7zH/ziL+b2lFmsILTW4RUhrO4VHp7pcehv7KTirzjWfy2/MHRS36V8t6lZolQZZLW
YR7daSBeB+g4qxxlZWKsCrKaMp2IIxVrFXYq2qszBVBZmNFUbkk4qyTRvy0/MLWyv6K8t6ldq1KS
x2svp77ishUIPpOKvR/Ln/OIn5uaqyNqENpokB3ZrudZHp7Jb+tv7MRir2Hyh/zhh5H05kn8y6ld
a5MtC1vEPqdsT3BCF5W+YkX5Yq9w8t+UPK/lmz+p+X9KttMt9uS20aoXp3dgOTn3Yk4qm+KuxV2K
uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVKtZ/wAK7fpr6j2p9d9H3p/e
/TirFn/5UJzbn/hXnU8q/o6te9a4q5P+VCc14f4V51HGn6OrXtSmKsp0b/Cu/wChfqPev1L0fav9
19GKprirsVdirsVdirsVdirsVdirsVdirsVdirsVf//Z</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:f21941fa-684b-0243-9598-073ee97645bb</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:ae1ee86d-0c82-1d46-9d41-278a65bd0927</xmpMM:InstanceID> <xmpMM:DocumentID>xmp.did:01801174072068118083B593782F4205</xmpMM:DocumentID> <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID> <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> @@ -55,16 +56,8 @@ </rdf:li> </rdf:Seq> </xmpMM:History> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"> <illustrator:Type>Document</illustrator:Type> <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> @@ -565,9 +558,6 @@ </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 10.01</pdf:Producer> </rdf:Description> </rdf:RDF> @@ -593,867 +583,898 @@ -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[1.0 5.0 23.0 19.0]/BleedBox[0.0 0.0 24.0 24.0]/Contents 41 0 R/LastModified(D:20140520145744-04'00')/MediaBox[0.0 0.0 24.0 24.0]/Parent 3 0 R/PieceInfo<</Illustrator 42 0 R>>/Resources<</ExtGState<</GS0 43 0 R>>/Properties<</MC0 39 0 R>>>>/Thumb 44 0 R/TrimBox[0.0 0.0 24.0 24.0]/Type/Page>>
endobj
41 0 obj
<</Filter/FlateDecode/Length 260>>stream
-HDQAn -atY _N+l+Qʾ
w/<b̸]s@15EZ7+dr
(rkkKm7,G1G.SjP{2bٜwnnlhs,e1{'.QfQsbQ%덻CYSz m|XuQB 4bkC:v<籓'{4ú"!y\|ї -8;Ue`J-(6$!rr<-!!*~>
endstream
endobj
45 0 obj
[/Indexed/DeviceRGB 255 46 0 R]
endobj
46 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[2.0 2.0 22.0 22.0]/BleedBox[0.0 0.0 24.0 24.0]/Contents 75 0 R/LastModified(D:20140917122313-04'00')/MediaBox[0.0 0.0 24.0 24.0]/Parent 3 0 R/PieceInfo<</Illustrator 76 0 R>>/Resources<</ExtGState<</GS0 77 0 R>>/Properties<</MC0 73 0 R>>>>/Thumb 78 0 R/TrimBox[0.0 0.0 24.0 24.0]/Type/Page>>
endobj
75 0 obj
<</Filter/FlateDecode/Length 237>>stream
+HLMN0>/Ol)XpiK8?gW]6\NpFm^ժ;n(KE(朰
SN(:pXKG9҈+Y<ߠg +Dv0IdehV@68"R;w/N.xDcМ_.Xqf%vWF*(Z7اiYz#V."|1ywM/8I +8;Ue`J-(6$!rr<-!!*~>
endstream
endobj
79 0 obj
[/Indexed/DeviceRGB 255 80 0 R]
endobj
80 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
39 0 obj
<</Intent 47 0 R/Name(Layer 1)/Type/OCG/Usage 48 0 R>>
endobj
47 0 obj
[/View/Design]
endobj
48 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>>
endobj
43 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
42 0 obj
<</LastModified(D:20140520145744-04'00')/Private 49 0 R>>
endobj
49 0 obj
<</AIMetaData 50 0 R/AIPrivateData1 51 0 R/AIPrivateData2 52 0 R/AIPrivateData3 53 0 R/AIPrivateData4 54 0 R/ContainerVersion 11/CreatorVersion 16/NumBlock 4/RoundtripStreamType 1/RoundtripVersion 16>>
endobj
50 0 obj
<</Length 930>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 16.0
%%AI8_CreatorVersion: 16.0.4
%%For: (Roman Nurik) ()
%%Title: (drawer_icons.ai)
%%CreationDate: 5/20/14 2:57 PM
%%Canvassize: 16383
%%BoundingBox: 1 -19 23 -5
%%HiResBoundingBox: 1 -19 23 -5
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 12.0
%AI12_BuildNumber: 691
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 -24 24 0
%AI3_TemplateBox: 12.5 -12.5 12.5 -12.5
%AI3_TileBox: -276 -368 300 366
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -70.6665 20.6665 12 1823 955 18 1 0 167 544 1 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-294 -408
%AI7_GridSettings: 4 4 4 4 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MO
%%EndComments
endstream
endobj
51 0 obj
<</Length 4248>>stream
-%%BoundingBox: 1 -19 23 -5
%%HiResBoundingBox: 1 -19 23 -5
%AI7_Thumbnail: 128 84 8
%%BeginData: 4126 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
%524C45FD23FF7D7D2727FD04F827527DFD23FFA87D2727FD05F82752A8FD
%43FFA87DFD0DF8527DFD1EFFA827FD0CF82752FD40FF7D27FD10F827FD1B
%FFA852FD11F87DFD3DFF27FD14F8A8FD18FF7DFD14F852A8FD3AFF27FD16
%F87DFD16FF7DFD16F827A8FD38FFFD19F87DFD14FF52FD18F827A8FD36FF
%27FD1AF8A8FD12FF7DFD1AF827FD35FF52FD1CF8FD11FFA8FD1CF852FD33
%FFA8FD1DF852FD10FF52FD1DF8A8FD32FF27FD1EF87DFD0EFFA8FD1EF827
%FD31FFA8FD1FF852FD0EFF27FD1FF8A8FD30FF27FD20F8A8FD0CFFA8FD20
%F852FD30FF27FD20F87DFD0CFF7DFD21F8FD2FFFA8FD21F852FD0CFF27FD
%21F87DFD2EFF52FD21F827FD0CFF27FD21F87DFD2EFF52FD22F8A8FD0BFF
%FD22F852FD2EFF27FD22F8FD0BFFA8FD22F852FD2EFF27FD22F8A8FD0AFF
%A8FD22F827FD2EFF27FD22F8FD0BFF7DFD22F852FD2EFF52FD22F8A8FD0A
%FFA8FD22F827FD2EFF52FD22F8FD0BFFA827FD21F87DFD2EFF7DFD21F827
%FD0CFFFD22F87DFD2EFFA8FD21F852FD0CFF52FD21F8A8FD2FFFFD21F87D
%FD0CFF7DFD20F827FD30FF7DFD1FF827FD0EFFFD20F852FD30FFA8FD1FF8
%52FD0EFF52FD1FF8A8FD31FF27FD1EF8FD0FFFA8FD1EF852FD32FFA8FD1D
%F87DFD10FF52FD1DF8A8FD33FF7DFD1BF827FD12FF27FD1BF87DFD35FF52
%FD1AF8A8FD12FFA8FD1AF852FD37FF52FD17F827A8FD14FFA8FD18F827FD
%39FF52FD16F87DFD16FFA8FD16F827FD3BFF7DFD13F852A8FD19FF27FD13
%F87DFD3DFFA827FD10F87DFD1CFF7DFD10F827A8FD40FF7D52FD0BF8277D
%FD20FF7D27FD0AF82727A8FD45FF7D522727F82727527DA8FD24FF7D7D52
%27F8272752527DA8FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDD9FFA8A87DA8
%FD077DA8A8FD23FF7DA8FD077DA8A8FD40FF7D7D52522727FD0BF827F827
%527D7DA8FD1DFF52FD09F827F82727527DA8A8FD34FF7D7D2727FD19F827
%27527DFD1AFF52FD11F8527DA8A8FD2CFF7D5227FD22F82752A8FD17FF7D
%FD13F82727A8A8FD25FFA85227FD29F82752A8FD15FF7DFD16F8277DA8FD
%20FF7D52FD2FF82752FD14FF7DFD17F82752A8FD1BFFA87DFD35F852A8FD
%12FF52FD19F82752FD18FF5227FD38F827A8FD11FF52FD1BF87DFD14FF7D
%FD3DF852A8FD0FFFA8FD1CF8277DFD10FFA852FD3FF8277DFD0FFF7DFD1D
%F827FD0EFF7DFD43F827FD0FFF27FD1EF87DFD0BFF52FD46F8A8FD0DFFA8
%FD1FF852FD09FF27FD48F8A8FD0DFF27FD1FF852FD07FF27FD4AF8A8FD0C
%FF7DFD20F852FD05FF52FD4CF8FD0DFFFD21F852FFFFFFA8FD4DF827FD0C
%FF52FD21F8A8FFFF27FD4EF87DFD0BFF52FD21F827FFA8FD4FF852FD0BFF
%A8FD22F87D27FD50F8FD0BFFA8FD22F85227FD50F87DFD0BFFFD74F87DFD
%0AFFA8FD74F852FD0BFFFD74F87DFD0AFFA8FD74F852FD0BFFFD74F87DFD
%0AFFA8FD74F852FD0BFFFD74F87DFD0AFFA8FD74F852FD0BFFFD74F87DFD
%0AFFA8FD74F852FD0BFFFD74F87DFD0AFFA8FD74F852FD0BFFFD74F87DFD
%0AFFA8FD74F852FD0BFFFD74F87DFD0AFFA8FD74F852FD0BFFFD23F8527D
%527D527D527D527D527D527D527D527D527D527D527D527D527D527D527D
%527D527D527D527D527D527D527D527D527D527D527D527D527D527D527D
%527D527D527D527D527D527D527D527D527D52A8FD0BFF7D527D527D527D
%527D527D527D527D527D527D527D527D527D527D527D527D527D527D
%%EndData
endstream
endobj
52 0 obj
<</Length 65536>>stream
-%AI12_CompressedDataxyoɕ/ ;Eglxܵ/ۍCAVeVI~O?wDz&dX;?_|b?ܾH7fؿ}ootnbJo߿~L<?o_7߿^zj^/?gqYț2o_~IKkw?ov7]ܼ&͋B_{~xoo~WF_^n͛w|p-۷/?lB4lW^?|[zi
.{ꋺϸ<oʗ>и聘]7yi^Og7/"MQތ~>yxS[=/<m^i٤qܤiۿ|wooe?|)K3}_~ÛXĥUfWᄒ}COo^s@kxS-_-)~߽Wyl&,k~FMٟwy:DwVZ?yE߿dƝ,Ϳɨi>|}oAgf?7
=o -cFxK{ͻoo3>wW`_},_}?wxwOt+:´_o~EQ=O^FH_pG:]rϷo}tW^zo/x=//ij:]Mo9{=74z^~۷_}˯iwxwWq3['
O":w'{߿|7_~ׯ=IOXۺ+_|7_>xq7ǯ_{ϗy՟~_}{ۯiu}͗z-Ƈ?/xqՏf?kb($^B,|B+nv_17ss釜aDIa2q]ƌeڽo>O -On$=qLBL$ -z\'?gA:xKf3}1~onQMZ]E!O}O9QG۲von܅]]ͻevay_~ٯ~?쏇}GjvaqGc9kE-mEnI}mѸ#Z0i:Ni?J/<)Nc9c9}ٕmYR2RrI%PFpƾY;ZNG~-ve<˼λy?B˲n9.5$ee]ݺ_i;n6mpgǠm<Ƌ_?rx88ZRڹ$bmg{mVem[F;9(4f$r9,{-B6%ði>R{-B3=|9Qv\t|ou;˝fL'F~G?C~1m?iCJ4f״K{DQfz6>iU"Lect(G:aD3iҹ;L':2WfC;mO>'ZU>TZ8Gl[Ty|gO@ԎږM80шpssI=?"iȏ=@o_
L21H`A,aۅXD$0lD;Eح[
:=&(%O݂RR579-=>މw80ь }w}vOG~W<oÕKW[`:;QǀI20ٝUfPMfmY}~քnG&6v[0oUL
*JN>tL:;fٲp|ɿB6h_ŞiƎڪmq*6i+ڲޱiᬍtކ+&%b'&{%R1!
3ֽ]A9::^iD @fΚp=q -*e1s(|Zdsm*2
Cm@i ^\B7M1b@~:B<]T)/KD/$:+aƅuy,'9){qƑؼܽϋB5D?"M?~~iT(O818VwWZi%܌$'ׁ=#M"Qhĕ&~!Jqi짨_Pw Ϳ7zVú@ -mg:4D0$NFh^hI:cX7fclvnh阔ԭEk;-"i1mf
'<rEzN?0۷/z^:W.rfvH -u)|&)rxV9~uY|&Y=L\"_HgZCYtW^W^NĝUeX(;RdB5uVqiGbx-?Ac{$oaeH4a,[DwOX!,5@Z -v"Րh` +# -" e ->{daxif}t>5 -8gA
- -ϭ~M#ϼxp_nk> - ^gVG|0WJkX6/*&fM`QQ;0ZyVf:@P"{xD'6Yٳge:3 I<9-J,Kh!;~mau -0+U -2 v2ZVrˋ/f[]ȉQnyU[yBuu:kvʫ>ܘD2~H:4`% VjAO1nAmEۤmvQFi[m; };L)rȘҊ61lmtJնfx0CM6n|<%¬f0[&0Qf8jV
(ryȚ>ĞD!y꧁ilPj(&PNVFvXNV5ednF6uT88S9t
dk%9&9K[ķF`_uemOEKv#æF13ȦŠfꢆUMVMFQNOOI0@˵)-XsLc-J:+/9Vy2*j,,eP'gxᵓu5j,RJB:1u-<>֒|;?A( -ߔ;8%~Q=6vO4h;cw.A.8x=>LzrYzo|%߬I^hW%w4D1ˈxqV=+GבRχ)8Pu.[qSɭ[# -W\OVpv@k9|r]b[ILeb'6oҡL35b881`7V'G<9&6$g!3fPp'HX'3I[uFyU/9"{ћ!<Ux=dWA,*?LZOj='I3ۖL$LVqDħ0"=;%"me1b% (ΐW>(ZsаzA_`~p^{C
ɯmۥqˬ>ƉuYK}tRAʞd_p|)*Qϩx2 9COQ9tb-Z5b nh۳5I@N3kJ[ -]F6_kmUYN]TO͚Fsg_CROz$1ٕx]_rq_u);Nc[gzlgpwhYk1G-EکU;{wF,bIA316<YLΓmT=1vdvnbޮpNۨhm9y;vpL?իoU_I&W`u;o4In[W}m-k.3/C#Jڪ,NXY0zP.Aa"hMވ
vVU˻].[2q+{7Jjm;j^w֓SVT -@R՞!iVPA
dIҬ4)N ,4/M~+CDבޥ$6'ga#rT߬CQ/#q.+8wz
A#^$Ϋ{7W4j܁MOd8,8ƳKyZH8E$3E?|iTǸ3s24cg42d*TwƵbKqgh.xM=^Q٭yBgڠj -pt^;.%9._aqetV, -+ȚŎ+fA9I!IPs\}9a!PF24-"wfP0
L8c7Ƒ=S13/g=cϲXx쁙Y iĩiM5\ S:<3^6_})lz(e8T&CVġ&/p +}0Ai-80ds6IHȌvX1v
͂{{Nf7o7yhsbu9%\ZפmSv84xOpK
4*rf&HȸGO&]%/2øB6B5%(@I0adMnUCT2kMS=?$Ʃ4?y}UكӫףO?lsrq3Vu<8uqWw!'diUTWsNʪ-gn!AM;CD\ɿm?
wamx:TPhV< tr!0BZ3"@%p\,2' -h۫m14λpmӡbz~?#%ws<qܝgZcsyc<tǺtɶm?r|ġA5O,9TAޱ -;T[AA҃ -........eeeee]F]F2jY,yJ'0pOMTq"i|e8Ga
|1{LlN)ֵ휏V.:3-C,#ky._+k@a'$+;kg_lKg:GU/1lNN8IA+o;Ֆ^&6g~NVeTx7uPC)zvPWZ^f}A^eh\<s477o`&0hG&v,uJmR'+sb=3G -@}͢=/OЦcө)VG{jB˕xQ!-T!)LYXw;PNEAY{j|ƿ- i8p"N
Iq8z ->ܕrgyϒ]I+wwVK
A*1"K7.Y2R7tsic<)'[Qx+OssZN"1t7Hl&&3/Hbő13tQa<zsj6j0KkZnJ*!kЭbCgTiiԩNa*54'Xk[rk*J̝qw+mvcMHV>SS1OI
k6IfƊ˫W!v*IQ"df^X9kGe!V9M9QG(ݖ[:OimJX' -UUcM^v+O6;{5BWk;߈{yCZ/~t'#76Qß'r
>j -plΓ=Z:*L2R:oklvW27ںQ"YK<{zqϏʵCvy"3npoG<mm~>
URy-1pŚm→pj;j+a]Wnz8~~?z^f5ai7!]N;A甹ӼҌncܚ$%M7s\tTGvŲz5nXdw'9F,VNrMwԱҬJ6;صV>Xi+ij)+B -)quZFX| }q}wͽH+ىL^؎3/2,;2kjJ=#dv4:Y\/0
rjD{?5ѣ\߹3zx_.fCU4X5? -:T(=@DDw3EE,>x6V@g)SQΕ̗H"ܑ
fV4E\'7q/$
(Ic@7tAF@l{.DjlE -{ -sn?ŗ'ǿ'A0+zj;//^KbÙ|Gj{]_guA1TZǢ.(
jNg!$:2if/mx];o[ۼq2oˇγ'ȫxsdnǷE -W8y\|+ -:*5{Xz -<oFrShpgREYъI0s-k(=Kisъ'q"^̆65 -MSc:ItE٪ikzT_D61de!r#eV뵲7Ni3Eu4&j79FvLY3š<kRVҤYe0h/^-zWU:-ˀ+5:y[ΚPPcThM?= k{>vd\i'z Mke/EJgy -R!Y#W2^*d=J.:,eau
F;cr)8GZޞkY^#Tzzyų'UƙRX\YfXz쾠gJ[==Q\s$I,X<'xNb9s$I,X|$I,X<'xNb9s$I,>CL7sӓy\Xi,X^-%Ç[9~UVZKjе["ǃS;OnTƠH3s5ltd,+iX:c QM[lY2zIe,IȒah;+m _mMM2xΎj,;bZr۲v"MJ -N|i+3eT5Wgrra0s7$^yHMZ&p+-nMyG+S;xR뭆`ҭrծ[,"3
"<$Mn*umqg_K;)hTLNa<qnZ<y&ˣCgW?Z8чE [O[Pe+mcCS{i|쫻dge7:{_+mo̬mA*Z_aT
Juԇ__.*TW]U=VU 7:j1mBC: "" -V/}+zu=[n=W]}<^`CcK{ wXM?m5y]f5y/* Mޤӟo}ּE.ܮ!c5m
݊jƬS.Jk3eEٓ,A̢eu ˖)bzCzTXht͙Ʋ,fL[G8j]:`/~j~ר}Y5_8jV?WFUTaqnlh~Y -
ﺠxhUT:)C{^IV&,k`'np5Xf[QYUP>85(VuHKg[>x0}!ؤ< -pn0*$ձ̏#cG -84CxJ:wv~Hຸh{.i>@S5) çj * $g2ݧQni"ٺ\Cz듋r!CGOpEϼ5X#k<rMϬኃCu3]Ҿa2\7tJ -py٭{./9^PC/viʞVǻ3kEU1lf9g%FH{7"ĻBߟGjYDڪ(mjj9yĎEOνg>W]ҽk}h Yw_UKkv1jkyf8T]opqkGnx[ۧ;|P~HscB8^[8O,)}wT~qxi^42hqkַϟѴWXB=q8,єқzЄ7XMkBW<<QkE;y]Ǔ<Km
uWuXOʼnpo/LH9FN -t'5iX.Ý5*}BM`TxV&\Օ 獭=Ej.pO>rç%:ӈ[)v4r)K,ժu)`)F%n'0cC47
/<{;("a}wWX_g}BBLGˊ! -J a|Ȭ9P$'ͬ[}i|֦#mwZ8oǵ]4j>dQ3 -LGt$V1:c<"Ѳ"Փ~jt%$!=_p&e~^KD1u;|z`,uɩ/2Tt!D*%g@_g{f/%4y{Wk_UKDtU99N,}juZZAZ+HB^yڹآוMiVMdIWTZ%^,@k9sks~$.|ZyKi
Q-li?/J<IorO?fSD;~s_j|j~'fnYs -_W"Z$]ε,=p{=Pk;%fUV?Z)oRy\GHl<jh]wX[ōM.oWX2}u<tI-b*e]Z"ώyl;Hbq۹ѦJE
k%rE~^#n}_Mjl%u-DNM{wZKUM^ŐUL#/qwee۬nu:[WlL~쎽Tej= -34b|eJ"稞kiV͚ف2p&`O5"e@#gF!AY$?Ps:u':DiJ$m%EIZW&*)g廚]VÉPC/~-XVR]z~OXi+֔CçtMc`WsxdçIf#dhls -;QBYI$٤nPVUK釮A<YQ9N=.|woxoyQ?I/^~p-}wo^T>itSHjڄОؔ5݄uN4/7$얿/cC?/zͯ6?Xoœ6lڀ~vpbg_}x{:_~vҜ}on?#}A:8q -8&Lfi9kӷ)rAcܲЈ~ns=],7yYwO<
k^q+ߗ)CbN wēBj
d|C ]&HW
d1L#M2%9HW&^i~ -NP7
87u7q,7Dv(,!"y&iP -MH+MRUpͳ<N7TaB5ԇ^ih1 -eX}\ye'`U+ -JR,/ШhV2_3 "`{"W{3慮USH b˅ ,QVze++-:7.d^#m@MFO(r_t?~H,Wh'υzH&n0]Q2A{2qy - -EZ9 ËH r|F4\9$9?o1 kQD""Y;:8 -wNi9^xbIȰbðOD3Yx8qst(3
H7aqԗ%#@'6SH"(ja2Ć & %/0e̡+u, {Ճ[x -u:4_}Gf( -t\!An>/H -$뉨@I5GmN!YY#NNn:F<6-"^3Be&"#6
;vٖ!1DKTI(Wpi=Y]gP:Q( $BjJyݑ!`jA/v4rB:roDwP2P;BiHE!@2zٕQ:2utfSN -qbZY81iLix&/c~e~ј24m〰8v! - -2)wJ@%S0 pw" -BeuU
bsx3%S#|^XwtQFB -bTlth)0[Si2I1y0ʍm;`YVbl&:$.k8/aPsym9И~Z*X)۫Y!o2 -uR6]Yap&~Ťz\`2&ǚ@aqe#Ƒk{'HB:pE$#W["jkR4*e -WA5X\uc\ZLS
'Ք@/H+r_~Q¦)·LA,MQg
f46i&4X\$\WZ9wU~j0R2$B*D:<^ -'50*Z#;Ζ_U#�b"~_L4UϬW}lBsd8ePP7+SL6ʷC\g[G0a&tD۬vl7xpϏ~/쎤Ê~t+-0 -t=q8%;45个S0_;J(SDqf:ۑV;jDڡ厔;$0jc -d;طpŝW9#$wFp4٭μ땖&itr[>\pȵ+(\UǍ1.ܴͦS3bJ -lbI2
M.=lr[\tX#W7pNvnsyZ.$x'vMpäf47rbfPWRX)3nR5ǍmQ܀*x]
sSp:7*NA"FlW6)nwݵMV
Z0Ǯ.(J
R+SѪD,UE'qCmjVݧoTa+t0k'Q6^:"ECLYXC3KːI,Iˠړ-˼FfM}y<io*XP -ꔵRZ|
UjQ,_Lúzvvub?
X\x?2^*\`a'ZkaĦ&0 -3a"J>DoEQz+&1uD -SK(>yvE7ņfP**DjU=W;l5&14}+e*4}v!ViOr;2!`83>{_=o!$ -I]#?@]GA7 :~l`v-=u#/|a6CNt'v$v -&2]s 'j -&<[:R2r7a0\`9]o}iuK>:KZ9_+BH")CxלCMk7v01!aQl߭Xzmog JHle*S'LҕxnhwM%.9U}u_c$XpT!],ZƉF%D@|Ǔs/ϳQgp#b%-EBND͘pPs%q{"60ΙmRŁ<l8۠Yb#: m@A4.:21ڕVP0-X!1Gf:Ƴ^3> ق3C^8uHnZ]S=9v-@p(F$zɒ5.s(ᬫ -}gWxC!f|`P.S8MOH&kj7U쑣:0X]bӾ-yC@ -2p}fg-,"AT'A#-q
ܴ_;"av WPw<$3H],;^l}k2i+4M
Bw\Ju٦}i[Ͷa=}W|9m=IYu:?!B]Ʉw/?~
ѡ"mcMM" -@f恟e@y2zχG'RIay.Ҙ<&KBy"rT2pud - bx3fkH\kk,3$bnѷP#2p6FitL$biC`EIp -]yj- -<)Y1ɣ81m%,<XY]w1\RX/8jaX^$g9d\8,3X&M`KX#a$P/yo<Qq"hCp;OAvGB̄Pqx8F>]ayS>w]jlҭ}C|-W:|`cp%$Mt8&eYBA Ӵ|I2vrԜeWɭU9\GSXV-q$)Q o0OϕPP <21S|dx"~(%#YCv2}48TndЁ$|8 -(QPXs̅qԱ2BW3_pp1δV,xu<5Yfﭰ`] !F@rwIL]@@("pP\KTci.
(.a>ӺSNEϤA+xY!jhEJјk"U#T**+`.̀T^4RI.~=m$YsV /,{ΜYy({Oc 7'AL
g!/fzȜو?<ˤƃ`rhUgYr얚Z/~%9Oi$@GMs=$B 6@YHS͏|Gz8F|4<)OH?6iޢPmaTM3Mf 8 ->p)m"48N5 t)ptj]1Byo|_xln>2-G=^Qq7i죝C塖v<Sf)GuO=}EjDfQJ'QrAF,hZjtBd.zm%mXUQF^#+[hyxбLv60;@gghl
va?=lܸO{7W檆x\P!DwY#]z
~W-Hw!wY]}ɺ<u*.ˈy%.@Rs2k
ZO RoͩqzA皠A=F,}k>=a]Z U<)56OK6õOazg0eKԡ -'0}ZqzgF\J\&rvO\1)Uw,*vV\,*[W.v{ -[zM'S@hjt)lP9}~fG!gi~H63إYGg|d0OU7Õ
d3çN4߱vv@7fqxO#p~Ϥyާ-
ء.5q%9T]r(I#s`ɠcF(aȩNuUxnGu -Ȱ -anuuйշSmG72wZۢ]jW]UkYg˃`c2[V1ZbU#7 3G7pԤe/ڵ" -gg!呟LY[>J%c'%k0GMmh()b%x{JW̶36Z_5*}AW*3!à
9PÞ"j_3YdOHlɻJ -x'&4Fst+w5N}w]P3*YF}N_擄J4C6sE L)Ie -dF&
iek` 晀Jz7)dK $*KoL@Pdo]e,<{dRmZG$+/+<pY.Te2X)2߰L= 6 jhuIԎ,A}`r&[^m:Vw6C}
QWGԅlL٦}韩;̇Ї{{M>}tt3W3[h"D͒T&QW1am^q6~QWp_jJ(`A Ob&x&Ք' -$2^!;bW%79=UOZ+3^M0|OVS2^?OpVW企 -%,vf3z+H?R5r^o&h=+bjLqLlg).2^]Mm+.e6ػ??m^,N;,yGDs+0]O^?k(~%}7vW~>'zD* c%.ASʡ&&ˈ
.EK06ЉT`U,Z9kS PLKM:ֶņAK)MDsIIp&{L5PE%=yf.v=횩!΄O?K6D7pjĻ /Ƈ4SPŧD.-(4%)|b'bmFVa朴P±BwH2\/Yp!kH; yvusQ -2zn(~T5eqJ6YMDR/8y4LHbb:E>܀PcN4eY/XEWH3 ެ*LB\ -!Hva+̤%EZ%Y|=YMDk5^s~RG eMP`ӇYE"3gMǓR$T{\-UI<^ -Jn҈zt(dҨ -U~[4"^*!%x]%hF\yQV{)mNFS
p:NrSZ)!(|RBjs9G&~A+DEd>Ū0ӋZaeMV*1 űR ZP*h%HDVimτWJQ=˼j_i^}Z,a -<J"5W:YsNh~8.r\+Z1!"^[Y4lW0RmQʹ%@~+6%
-_X졂JKVWTk -2⏹fee
zGܵ@=rZ!IiZI8DZJ}_q*fBYxLʹ>SjŔUn
4'VsTٛKP$(^(H<KxJrG
%7
1uUիbU.jUivWg֫66gi[Kڄy%v^kYZȫvUn}o o+[̋mhEz|}[{_0p{DZdXϚ"dYlG5]d$z-uBFżsGSE/픳n vBX{!뎨{k'^v>"S%x)nK'hn_^yX wĝzzir^y2zWVdirj ?^$ R^cgu](ze]ȃB%+gR`AnVZD-6a/<Y$T; ]_d(a; -o[q߈Y._c j𢂎I.*X z+ܿ)zNuc+{Fbj\#!AcRF@@qdU p5IH<Pufj@`{
̘jyCuBg9S}VE3oYiSa?2mn)YUby,;lI1? -$U_ǧ?[6<2jDA^U o[JeuۊfȪ<ɪŰKAd"h$mRۮK"ijFQ6v2JlO\Ċ̈X -WA=p@$#/DE/=3`̀:~dgQ&,â)U'^-_%tx.Ahj;6 -rη{VuзCPÎ~s -i$.ސ(1 mj 8ASv٪6(|
wjt-V+(U)JU0SmٯL|kRWnӄ'|ej
_I+grXa|FI#^t_:Wϻn' @r8)l;jOi5_\x"7NisڕҗĆ -Ձ]uJκ{&w=pmwqYHI$ʷtMb.^'.ȵsRD}!hh>!Vz-#: -C.,'ayfU@AׁudxZY %;p IhcoQW@16QyqxgaPh߇9ۮcD -?}I"[0Sa/۪i'ٖnmeǣ{"X=g6v;+SkSQOMW -C*A]6Fc ("c!e(h(2#4=c'g c\SM$2س,+TT4ԁ/}H<V$F>X,Ilôr>7Q=U>Hl+DTgW0 - y⺎^؉XGھ#Ģ -mtq毛U8Qpt>_¡ d7kQ -'wJGN --Yod*8]';sHA˙awR<z:p"&WsMzb&Q+;QpX|[%0iE_h>w瓞.:s <$+pV@*
p\8JMHM,~\2o' -7Ϋd:"άcR߲%Ran\4a3;}Gv}ol9[/u &`SVB#b$!c@oI<Hۧw{[
9Cժuxv8T:w: -ZDmW9ZH4ʾ?_.\'LY`MgjTg\]^^BTrX&0!鷑tCDhD@nRB(Whϸc7ގt*
Ap}]U|fˌent6eS"_ڗnqu=.I:n.*_8@6;6UqC5l(Vs!_l=>}z[_\<Z8FT|m)44V:Ĉ/:ٵ| -[?@lQY)Q,CarvZW)ЌnbgYTXTir1b71Hf!zPCB wI|qft.hC[xWưC{Âl'F5{b)TSa&h=RUǵ Rd|I~5uw/JKT*Ke,-siu!_
jB4[Zh<!=D-t` 1w}"H*_Z?WlbĘXCjX$O7 4d:>ɍbRT\S1"naui*f6*TJL5 -Ye -뿶x)PmlafѦ,\lc..mi.Fɇ=kDW:⢠ bTRǹY&f^OK~_%jseza&p͉8&W/5X\F,֧5$N
z}-[NqglK'v?/όdܴ?>sY̓q#hpL
IdL1+I'c%J@b/⢩߿!&web2vNMu퓱432]fBKѶ NqB ->G-1tpi;|Ja>x}>1Ǎcu|t]%;13sfM1A"|Lә9,sua>[j!c9tqSTNxDTNp[LӱA9ˠꎜ19DJAEk-5brHX{LlzLlαy1U丢'19%
qt5N19^*!ɩ -)qe_"19i3eUfD0crN5r\aA;fXgXOE -RC\/y&Cc#~/ -|j- Xz|5-oaܪ^ە=ꖄKsuk
2-;iխ۵x^{Zޗ`,oᥨ0J~XETZIeXNy\rJVX˥7g.GUoE:U4\}-[[Q'_BN-DW-))-^1ӗ7U&NV@Aݏ
LCvЩ:f_S>Ivχv"r"V9|.[.( >/t+հlg1/HB7ಋN! -$hV~[U6Ha5,If+ m*&%F)qE(_HB2:b=R~R|Իg7K:%<=>B%5:ŋZ aJu,Y^x
a/wI.T!ĕf)u[DF{=P04Io0ĝgEApQvR8;>%bȣQZj%I \pM|a0έ6M$<؏%"%ݲKȻHܝ{T3H`"vB:eZq5LYcL!MΫp^"W{TŤD`#ҫl=4bB -U!>bt&`u=Έ7P6cMvq|*
s1XY^O@r&-E!>?$XcF_߷d - dj.F)HRP] ->?ߍNK҂CA掕 EyDF#+>^E
)E %)E,%@,_q{t|y&X 8@b.\Ti,=Rȥ<rW}zbYlW[M9)=`ၶ|Aku,"}e鯜%Y6G+5^|ڼ:%-xեlgOu͂=z9R{h\~'!t9 -{uhLllP2X7sޓk녉ߠʷ˂R[STR"}{]?zYgEⳋgz8?6#B83qTuiZ5|jowbn~Sp/$BjvTf~,Ww܀9j\g]d($Fj:QpgW -ĨdHD/P\3rO}EG5X胶$}ɱz)jA`}<!aM&} 䬤"w;"7z&WӚElJJiz%WgV8lܯ>ۧ -XrBb\&JWRqd7DեtҢL^fG*CӬzґ%JS5\ @,VMt< -͊\ -JTڷǺBب3,Vf//'}WnɲJnF@E^;w9[|eؼm-~1knEl&@ኵC,\$7kC~^Of<R U$_ >ӇZMVnG36};Db~m]~/D| -hdE_QWAC@Va -K8Q &?` -ంJ$Tc_zF|l&vNI5|z.P ]T CC0 Om:Lar%4g)(,6S -aNT@Ww1Q:xm,Z -8&;K8H%Q -*Zȧ~l!~l!~B>eyeye--c[vGȧ~l ~l ~l <ޢ<{|ylxle-;ȇB/Z|jylyly-[{[!Zޢ<[<[|jylyx{?#6yBT8qȫUjuy5Jz˫;qx-jkdv,j+
wS^JSTW#jKUʫ;Ge;z.]`C砯hWh
yW1R-vV~ܩ6v}5)3.Hw5 -<=14H]a*0R*LMR*L -S94TF0QGT(r4Ji4JƔG]bjTG]b*.15G]b*.1Oט.2QᨫLQWLp~rA1Us4ȔzMiTSDoJaFՆsġ4ݧqP
FO:)ߥuBfK,26SY'Ge:!ߕuBdV "]Y'Dge:-CY'Dge:!?$ż{RITIIIZ'ESZ'USZgzX;Tr[UOj҄TCVǥO壖uJP)=0#|6Yct]?Cr&;455[5ဴ)
6lrÖ݃/=%,Ϯ.pMh{ǨnTOе\V!+1v6ψ2eָ}~-vq$oՎ<QC.T^WVOnoiɷ{*_jg?"I^옼lDVts][#Ү3nUgޱFS$ζf裼P! .O<#"73E13^xYy|{3[W/b^}ӯ;FyG2-뫌 -C-UHfC𗺳Փ"U~+ -Z4W*YY/{_0n]&l\VhjP#>.^u$zS6BNA<7?WwقD=O{܍}U_krlϝC4yWi9b+/A~+'`A ÕeMZHrMmc=/ٽPYuOܯ3S"JK&>%Iݹ?_UV}'\cCN/8?xB8/~(q[|n 3(x͛%<]zŪ4G2 -]>&1t8UcGd*:aO-}iWԲYX6fpÛzTS,60L56-w+bLofAu,?+Ȼ7}BY{BP3骒>@DD'㹤Vd]Mh%^0R - Kl{
?}ݿm45K_GiZ{uoΠI46Q!gl>5jv:`(u">GCg/6|^jir:Xp"%HNJTvc+)E:iX6WݕC뢅i{;p)~#.N4-P)QPEj)ʛ{\,U5ƨ7gI03tMg ->whyhFX6XS74MAk*|-T!2wN;PU\yhg3ѷXG?VZs5-+#3J{]jćݏRBkdĤU+"5</Y{1}[W?x2$_Zǯ1 -7#}+ -ݕg:|n}7CL,M*A0,uv/{W@Za֣X%T7Vh"]f#ї6fĵQ Hɲe~Ɖawox>&ʣqToILJ2#=zj?Q$jFZpDȈv -ϾyZ\~>~#sgdg(D -<du|UoD^exÀ$BBc<cLRH?'>C69 2d6n"_/yWwu~'0IQ')jNnëo6
ګRאYZ*tBZOd:g~Hqi9rfם7,Gh G|D1LO2x9;0;9";5OS/BbbgǹrAiri0$EAbt>T<U!k3JQ9ҩ<4cEUL&B#<ŠFABv鎣iє"gqx"τTAКH=.]t]bTZ/c XQT8c'gx݇x[7D8f2Sx;8rb1bܞdPQٰhdNtoN'sK%INbu%@qњLTWxⓉVcUYyh{}=VO^=aOU/*&o/ۂetጬwEF(Wrӥ55F*Г>c6Ό~RβVk<-Q(6,$ӫy)dg_LnL#$2 Fcb5FJM}n.ĻP$!UJD䎄H8@^Riŕcy%DbLxÏBfEĆ-R.oȾ3$ -A!6 bպ1Y҃Fj8|_j~_Jqa$5h͂y7S pQ֟319lwdݏu4ks6HK -Z[%ٽ섗I:V]nÙHH8p*DAmq,R76WRbAZ#͜/{=ujwƹ͗h)5igX:ex YyiP6iٶnH)c\%|"DuFsTz -3i72pصzD&bDZv&%`ٓ|);k-rmXyaҊ $z#Wrʨ](QӸb/JU@j\ͭGHWL尴z+]؉
6+Ģm1$ROs{N1NUG.ѢV'%ZZE4I :kb<QSI
3DިUApYץꃮL;%&(?]=bGj4!6؍YeI9./IY+:'sq5F% -,]|LH%h@zST)L~X^P=;::9Q^tAe`7s=lf@!!nbKa3`&mY6ti8-G1_Ql||m<LQmAQv*BZE
]9;t; !U=dj{7p{
2C8Qu
P-"êʯs7SXߵ7aZk7QmfSPu)
ډ&9:7@r}| H۷n9] -eօNrEYN̠'i>]3:o -Hxr;t]/ݫn8ݔߩ=[-v':[D1`@u-[{ѧ%E&-{ -CLi/mw63SƆj.cx/QԽlO -IV g1bύ+%}ӧm;8]Fٌ[&I/2U"l=cXjcyģX]Ls@V=p)]'{^<HDQa`JXm3,X%uXLG֪`Q˞paCs,1d "Q3m)/Ww -i?ɉx5O Vqq1OU2iAhbmȧFPNl'=X-nʢ/2356*YW7L{!FYY=HQ\N*5$X]<bsn~,D,s~XFv{YŨ7D4"`DU&V`YuRҐD
F[]#!8Ee;\lpx0AFqF@+Op*Hvf>TI%^8m%"'bâ,P6AS)yd-A˧kGƱMē.e!9dZRw2E& 7WMyX*rlGrB|'TL*P数h[Nd7F"$jEQ`=V?I(m4o{0jh6KGJ1TrLSvW_)/?<ʋfkJ4Zn<"Z҂(8]o6˵0%SS -1`?a-QSob!XSH$BDuZ",n{٠gcx(W[ɲs.},Ţׯ#*T1c!0H4._~)k8AZLXE\M5&AA*#cD^1SA÷>*(JYbj0y Ղ홗#B2[=Q; -K'QpIdle(~HYb4WGn6sgtWP-ЬV欎)0uV8ߗl}Q{(S7ךl,CjFr3G3%f
ߺU98ͷ|a}OsMG0H -Hgo9+X"X,2 \q(t(eccnݹa+R1-u܋UcռmE:P9ȡEq5f -|"-vVEFzR%0IX)ԩqxʼJ&RpLThEd}SE-*VBor{X,nTr(XcŮARܡ˧VuرFW
{S4LU$jI/fJM~igyPviXN -l,Iz/̔{t=vR
JM -ц&1SMQ5i[K}9dD^>JU -/Q줚 -\d%ݫ -iwׄ;m+Zc;J85~[jU,h"M8L_k$FnsU$CeVtEin4 sh)K%`r*3i?Ӏ2ŸnS>^FMX88hd,#\j_8òR~7xmV5lT"5HD<UcǍ,J沸E,~hd6جrR,k0hJĐ8䁞7(JB{qTm*É,!llq^Qy*)uzo*}jUSBZ묂2kMA.gOX.yf9l՜R;m髨HV8jѼ.V1.,8ޙ{Sy[voxSSAmHZlM"2@YEWL?TqM\k$EŪJB(!TX(*TipZK(vM;-{咥$q$n
ꙝ:a✭V]K%S)A9`ڣS>ïY)»hqbD!AZH -vT{* -T]gQTQNĵ(wK&d6jbDT4 -VcӽUK z):PaE&k)@|i~?g~
J< <tT -#]][hKfUYdk"m_
.~}[Fj*DyQt/Nk)ɡaT>0]S 1&STx8qӒb3/ۚC%y_fFU}8'\)˭(71Pw3BMxʁ-]JVsX0q{q"Tѐ_*/&H@ -E3E ճjWHɚ_|Ea.c
RjEDZ?Jw5T:٫[xKR~D샥*:Rw#\6+}-K#ӺXP<ѭdUGvE~4鎕F.ҷ"%+s4MivXRfx赇a%x0;Z-UF9~"P[
癕kQ#&f% wKVP3B/qٽ4iUb,V±X(͖khCm U&f+D -K,f7AO½9=:I~~~OG̞!pPX*=IT<p{lz3Gguq}.AT+үJ7Rw/䅂`fq,Md)GIʁދR[ʋ)&DoVDYLաTs5
L:eT .Ҫtm0TtKC*yeH"cTi+Jv܂ -j'S?WjVp|/fqu}[f9rFypYbe E4Vsڼ%Rf1wew; ?Z B48#J<0@/>.,YQEuɢ Ϧd&iVC簚[^^.1QT)CR3t -V&g(C[wbAusR(4멲R[-À>3")QśTäoڄh+r"P+F -m""BոX3{6,]#8pW3JN=~sHTI\,_=} 2S&<OͶjTki8Q)#3lІԁ],_LS -P[w{Pd[C%͚\)ȥmjZ<߆ir0)tyQ,#JMQTFܡQiczHye\UKޏ9 @ ھ?JU7`jwC_&&YN%0Y/@В+U4i~t.RPScżaGonƣTeUDâJnDx@A`~#-?;i)F[bLT#k+B*V/XuY<JrW@~xek-V"d7k0Cu7hЫoYL]Ml oIܔ,S_:jaxp -lltZFR1#\j7O)ăU#JJD@D$SGso(1*YTVGTf!o5x'?b4Nٴ٘&AV!b/0ՂB- -C+K0?[nW5VýcX.iy<JKuD -u:YA}Z-[;002ȺSc%`BAd1LR=n9Lc`jRA&C;L=dE200dAVT90Ⱥa`1d|bdAVZ44HSm`x1ȊBPY<2 -+'(?0dfd'YaduY2 @d&#L'(00T&k2 Xgb!baddRz2d242t'e cA>1ȹ>dA^L'3l9>0dx2dd{ddvbq,
,m #>03*2#/Y92* cA& hvbq&YFYA&AVCudzJNydadu3*k -bU}
3L$O#LAVfad&YUڃA5M2qGYm 3* 놁Tԍsd ͙d44c` d'}g_#, AVY2Af83L9# Gy3\d&m13ȈQNρA͋A cd00ȺdtY̘& 2#L;vd:A<2!Ș'Y74j<"ȤBO2I>2$^2i%2 AV=dZ2(,
Ӈ@UJYFY]7.nj Kd5#kDfٽd=#p2F2LA&AvO3È '0x,҈ +u#Ȋ='>O AfAp +d{_2
3 0"Ҙ2ی + Y +O> :#Ȱ6' 0!ȴAV6"ȊGY :!0ۿL A=GB&YdidaY4 ^r Aƀ1 A@!GY` +L2o#[F`uYJWGgdN2,3AuF2!dy!ȰN2.uBd9VG#,
[Afdr2"3L AF #B8 Xdidj -OwD@x#Ȱ2,3Ո :#dd +Wy ȸ3[FYOaBL #.3#K"Ⱥ-AEu# 7!fYDadL2B:!ȊG7kdڄ ,[Av7lAFxBV/Y` ɘd^26d%a+)s>"J A6XYd)d SxBaz"ddN2kBgdgr9щ ,A6
AVlcBф +z J=? FP^M A6XY1d-o c-1#ȺeDuk g,، #n4#]df{dOf:3I'LݎtFYZFYAA&'L}#6 A -G$"jNndUOY%}Bd7LV a dX2=ĉ@e")N"Jb"f}ȈB}Ȉ -x⏱Z_adv|0"}?a3Զi7h+gSW"Ã]Ljca&XQS氁?ƝcEyLM#珕$
>ɛ?T+DFX?1ǔac?c%pvÁ~yur\V}G6JJ?&+acE?ccJO17L։?eax01e'7bac"oXeccjcgX#'3dž̀(`~Ǫ3#Lg1~À7~?`΄4cXgXgďayǰ1 ?&?VcdfXuƏtp1!c<1cUXbԀnƏ~c?V=cٮ ?ϞcLcgYFشcdcXf7~S>c|o7'bUao11UO11 ?Ɛ3ǨP{Ǵ(c%Z\?VCkďic|~L/#~Ä|S1ǔ]c<cO1 -'O|F7~L~:~L~<ތ#>]ďvď)~?8?z ? ?},6dcC -GX6ǔH~ǪP#~?F?: ?E1Z*$ʈF1uXc֭5ǰ1,o? ?&?tֈS?Ϟc|~?ďq?cf}ȫ1^?f~Iw cz#}7E;cUo@c~T3ǨcL/ED}j4~p2&y֑>/D+ʹ1#3}DSW>Fh)0^q磏$ESIDSHEj\1Ɖ>F>q0l}Lc&}+cu;gC>?'_/sD|do=}#|Lu"#|>&a8"| >$yǤ&JǺa `uz,&}I#vC&41F#|>q5FX!F=Pc>ƀ>ǐsWaIJI{,
ӝcL${;:=&|`!i/`dHUdskfcQ,1X{uQ 'c<=&Ó=Ɯ<1cN1,3{=zYOb)d51͖OrY#{L=ݞ1#{LA͑=v'{L=FCbbldqd0Tdcjc%/#{=ݟc3Yc1m7ǰcN10GXcdcCjScc1Y'X=R7cX15O1>'X
=c%0XcU#{¹=-#{lz^M{cU=꽑=f'{[=5<1Y',{˛=u1Ǥ
bU}#{,CD{S1=&9=놑=֭S-G;1&XU4#B8N1o³{L밉=ē=&0ǰc1Fmd6c\g{3i7{=VU:NJ\=VJ{L֑='dY}`u"ӓ=bxfXc%Q#{L+{L=fE-O{L=s>cL1떑=f֑=Vv'{{L5<=&=Fm=&==Fɋ=U91<c1L1}1ScxU3{[F`uXC4bE=-cyf^1Y',#{Û=VcEq͑=SidInb+dU1,qh:{Lu{z7{Lݭ{L{[FX{317{`fNc2:Ǩ}cEoO%3{D'@ǤbIq`Iqb!:ǰ1mbf'ؽ\{anf>kb
=6X%fg|t#{3ebُ|NJaG,{[=VNcEjsϭ3Mݑ=Fދ='2$M:ǘ1'U!3{[ +6Ǭ3=P#fn!cU
#{ޠ7{̬#{,#{,Oe`{L=afᘿcT챺EOu ֙=efiY`I2pbMՏj{zb&X1,3{[FY7ubIUSI1_1{L"#{{=
1i1rg{b{00c216t'{j:豛c2<cUǪ=V1==`ěc-xǨcC{,cisq=V#0d챺.{=md=&Ó=Ƒ'7zc}PFcici>cUeD{Lց=F#<qcicfc*cu=1{OƑ=Gzxp#{.ufa`-cʖ챊d9T 9{,S%6^1Y#{~b}ǰ1=Ǵӓ=&00c\Qg{`4GbkO{L#{pfIudL1B/Xݎ=$,(#\=ǐcic11Sr|Dac2<c21fDeՈ#;T.4Ǻa@uj*FSՈ#>Ǫ -115nciXUƈctcO53=@IoD8xʱ1q&Ǟ1bzLO]Mzׄ#*9h cKc$1h|64= -y!-!cFw젱Z1p3Uf̘SƄ(CcWԬɁI1F%3ac9`L.qV/&Ͳt&=aE=JediD!! aX1b`ZQX$N7`pnِ[1PS-؏ma\١bn3@H1jؤPᏎ%Z+T;MjYb@[p -V 5SPQ&K-
_ėmu8p6 -~Hx}@pF:)fWp=qm8a[0C)ʜJ:#/M)-;۽I<doΒts+u_zMF8{Ӿ+`zjkg٫Vkg;\
ƫ`El^\j`[Q)+6}`))
yHmLd0&@a>Odh0,TT#2H~v4*C<gتbNؖJ2Қ` -
&8
fBǚh0n6V:lU`/\<}#=n#Bu4,)2JeQrqFR -i$=q:LQ{bN3D6_8գ{D0 -(k[JpL:06]]IZ7L@~a<%fuʀJܠ*$~1R< ~F(F)zW$
}U90CЙ/l%IS%uֹnņG\b%|.j:5]UԒx~Iw:Z' -.tK~eD~O|%#`~!_:bT`~k~ -|{D%_i_iS^OHڢbd~Bev$֑_TJN/j}@~i8P^_hI4I]XŴnPw -a0ǘ__`~3A.10IlXg1̿/kM̧]/ $2%=rG\TlwCkwɭU^'Ch%0=:kE'~u0}{7 / '#C~ay%jf~*$g~qmeLJb~ia/͏QZb0:ٿXާ0?ҍ&(0'z40:K/MJA}O/<_v%G?C(u>HwRmg-805gz_0h</<?qe&zKC m`J| dw6_[c1{R[]KڗT`_/w-֗LX=K<RE;Ռ"{47K6|iS&C._B|]BRw<|iһ^OM%3/䚿lwF{^ux\/w륕Bq#xKj`s0"\F .soyḆ^VzQ0y`'9XF;bb1z`@WzxgbŇv\/* EFp^!1 =bva-^{aX:jPr%VbEhIiﵕJ㽚{cOA{>mK<Rh[x/[{h[^RY]Vj}puZB{m5^wyo*E8]x/2u˦Gt[+ZB{m^9%&i1#;buޕӗ2_IĘV;"IEuﵕj.Mܥ{{T>[rkIAQԷfn=$Ouݞ^*K߯jr:^dPh/{ůw\텿@{Rue핔jdve\ ^GKGHh'}z]LdPHKN/H^mK2Y^1Ky -ER%3ef2]R5f:.=>Ftdđɉofv)ذBett.^2R bv)2A0 -f=(S3
"'ABԷ@H0]]Ā`v)Nx1h^.IKbdGY]zv9pf.3k8Xk^.\cVbqm'v.%R337_2K'"֯`!]96KוR uuv:`ץ;E4E -,^b]MJ}u鋿MemT^$ۃׅb3u\{zCҗj -KFri՚*{`\-y\-KTfgqE&12k<^E髡p݂`yc2>V2nG;Kub^Ҧ25֭\)(s!d!iHZzFoJ\Fމ1z
.g-薪M. -ŷPdY0D"xlDdQnU?ohh;A@!jP)Y4gJ{ a%E[HPUH,FMȢB<bD>qnH)Y!~TtkSPӗKVd)s(<,uei[Dse2&;(8vm&5cHd)sf]qRdae0klLs-?yɘ,yES -W`E -dY⨍Lb<qdQ㮧40Y=ȘDN,0YւAYcLKD1Y5[uI`:gnL[RS,L"{«Uwk>>&Ki*<DU9dєD1c:13`s=to|PdI
endstream
endobj
53 0 obj
<</Length 65536>>stream
-Qh۱SP'p-L b"ɲ3sr`K,A6@Yd_lMۺ"˜,} -,eVr4,;ePMe7g[,Z,Kc6z,s9Pbeiq+n(Q;XY,XVSk{ۅò#, 5$V3};"'eX'KFZK&K
!},WEg:TkB=M7$KO!5ɢȅ=~ -K@T0,;gi, Eh@c
y),$2#K>K`d靧2sUmEZfdi~#Y*b#K]}gsHHUI4.CsH9s4dJoջ@.vAʐf APM[tH $K$9fdaFsd*, Y5%9?C:FֳaWɒ%3:rBdwGd'DIEȒ&d$P.{A2WM`TB%!1!K%deBDLȒKҳRYYd9~2@w/4XGw!;";vz:ʈ
J6E -DwN -K,^z3"b@^[ #/cq.DYGdqѦȒhDCdм OѐY5L"Q5FAdi6+Y[)qDTJgD7B8-erEMȢ ->d>*Kokc}͇BiFkH|,_Jp>qg%_|,T -nErȒb»xP+;"mWEW*o X -OdI -b_NUm -=q{&Zi="@tu;),-$Ey;VJLȚڈ<uYNN*tch?uF{hFca"òZ:NET&t@tJb*Cb=)J`bA;<[HQ$"NJs&pXN;x/&=vk xMRYD\\,(Fj -(Xu%_ -2HGg{oZY*:_Wa~PZ[CVjd+,2wb!h`+,FZ]nSV'duo9W J%` Z] -[ -",pU4Uz3J"[ -ST*[U$vUQ]<NfW!*1c+BAevF[v%<j]EgWJQ"*a7DIJ]Uڝdv>[Wëֿ*@Wiwâ`[y1TFX;Y o/% -3;ΝO㶆E]A WyNxWiZVӆVRq Z^^z6XTWR+Rpt\Uખ\לV5Ԝy/j8%UGd}.bUIT)@)%K1Aq;S^ no DZUstsx +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
73 0 obj
<</Intent 81 0 R/Name(Layer 1)/Type/OCG/Usage 82 0 R>>
endobj
81 0 obj
[/View/Design]
endobj
82 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 17.1)/Subtype/Artwork>>>>
endobj
77 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
76 0 obj
<</LastModified(D:20140917122313-04'00')/Private 83 0 R>>
endobj
83 0 obj
<</AIMetaData 84 0 R/AIPrivateData1 85 0 R/AIPrivateData2 86 0 R/AIPrivateData3 87 0 R/AIPrivateData4 88 0 R/ContainerVersion 11/CreatorVersion 17/NumBlock 4/RoundtripStreamType 1/RoundtripVersion 16>>
endobj
84 0 obj
<</Length 931>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 16.0
%%AI8_CreatorVersion: 17.1.0
%%For: (Roman Nurik) ()
%%Title: (drawer_icons.ai)
%%CreationDate: 9/17/14 12:23 PM
%%Canvassize: 16383
%%BoundingBox: 1 -22 23 -2
%%HiResBoundingBox: 1 -22 23 -2
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 12.0
%AI12_BuildNumber: 273
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 -24 24 0
%AI3_TemplateBox: 12.5 -12.5 12.5 -12.5
%AI3_TileBox: -276 -368 300 366
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -69.6667 19.6667 12 1888 1055 18 1 0 371 37 1 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-294 -408
%AI7_GridSettings: 4 4 4 4 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
85 0 obj
<</Length 6279>>stream
+%%BoundingBox: 1 -22 23 -2
%%HiResBoundingBox: 1 -22 23 -2
%AI7_Thumbnail: 128 116 8
%%BeginData: 6156 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
%524C45FD35FFA8A852522727F827FD07F8272752527D7DA8FD65FFA8A852
%27FD18F8277D7DFD5EFFA87D27FD20F85252FD58FFA87D27FD26F8277DFD
%53FFA82727FD2BF852A8FD4EFF7D27FD30F8277DFD4AFFA827FD34F8277D
%FD46FF7D27FD38F827A8FD43FF52FD3CF852FD40FF7DFD40F87DFD3CFFA8
%52FD42F827FD3AFF7DFD1CF82727FD09522727FD1DF8A8FD37FF7DFD18F8
%27277DA8FD0FFFA8A87D5227FD18F87DFD35FF27FD16F82752A8FD18FFA8
%7D27FD16F852FD33FF27FD14F82752FD1FFFA87D27FD14F827FD31FFFD14
%F827A8FD24FF7D27FD13F827A8FD2EFFFD13F852A8FD28FFA852FD12F827
%A8FD2CFFFD12F827A8FD2CFFA827FD11F827A8FD2AFFFD11F8277DFD30FF
%7DFD11F827A8FD28FFFD11F852A8FD33FF27FD10F827FD27FF27FD10F8A8
%FD36FF7DFD10F852FD25FF52FD10F8A8FD38FFA827FD0FF852FD23FF7DFD
%0FF827FD18FFFD09A8FD1BFF52FD0FF87DFD21FFA8FD0FF827FD19FFFD09
%F8FD1CFF52FD0FF8A8FD20FF27FD0EF852FD1AFF27FD07F827FD1DFF7DFD
%0EF827FD1FFF52FD0EF852FD1BFF27FD08F8FD1EFF7DFD0EF852FD1DFFA8
%FD0EF852FD1CFF27FD07F827FD1FFF52FD0EF8A8FD1CFFFD0EF827FD1DFF
%FD09F8FD20FF52FD0DF827FD1BFF7DFD0DF827FD1EFF27FD07F827FD21FF
%27FD0DF87DFD19FFA8FD0EF8FD1FFFFD09F8FD21FFA8FD0EF8FD19FF7DFD
%0DF8A8FD1FFF27FD07F827FD22FF7DFD0DF852FD17FFA8FD0DF852FD20FF
%FD09F8FD23FF52FD0DF8A8FD16FF52FD0CF827FD21FF27FD07F827FD24FF
%FD0DF87DFD15FFA8FD0DF87DFD21FF27FD08F8FD24FFA8FD0DF8FD15FF7D
%FD0CF852FD22FF27FD07F827FD25FF52FD0CF852FD14FFFD0DF8A8FD22FF
%FD09F8FD25FFA8FD0CF827A8FD12FF7DFD0CF87DFD23FF27FD07F827FD26
%FF52FD0CF8A8FD12FF27FD0CF8A8FD23FFFD09F8FD27FFFD0CF827FD12FF
%FD0CF852FD24FF27FD07F827FD27FF52FD0CF8A8FD10FF52FD0CF8A8FD24
%FFFD09F8FD27FFA8FD0CF87DFD10FF52FD0BF852FD25FF27FD07F827FD28
%FF27FD0BF827FD10FFFD0CF87DFD25FF27FD08F8FD28FF7DFD0CF8A8FD0E
%FF7DFD0CF8FD26FF27FD07F827FD29FF27FD0BF8A8FD0EFF52FD0BF852FD
%26FFFD09F8FD29FF27FD0BF852FD0EFF27FD0BF87DFD26FF27FD07F827FD
%29FFA8FD0BF827FD0DFFA8FD0CF8FD27FFFD09F8FD29FFA8FD0CF8FD0DFF
%A8FD0BF827FD27FF27FD07F827FD2AFF27FD0BF8A8FD0CFF52FD0BF852FD
%27FFFD09F8FD2AFF52FD0BF87DFD0CFF52FD0BF87DFD27FF27FD07F827FD
%2AFF7DFD0BF852FD0CFF27FD0BF8A8FD27FF27FD08F8FD2AFFA8FD0BF852
%FD0CFF27FD0BF8FD28FF27FD07F827FD2AFFA827FD0AF827FD0CFFFD0BF8
%27A8FD27FFFD09F8FD2BFFFD0CF8A8FD0AFFA827FD0AF827FD28FF27FD07
%F827FD2BFF52FD0BF8FD0BFFA8FD0BF852FD28FFFD09F8FD2BFF27FD0BF8
%A8FD0AFFA8FD0BF852FD28FF27FD07F827FD2BFF52FD0BF8A8FD0AFFA8FD
%0BF87DFD28FFFD09F8FD2BFF52FD0BF87DFD0AFFA8FD0BF852FD28FF27FD
%07F827FD2BFF7DFD0BF8A8FD0AFFA8FD0BF87DFD28FF27FD08F8FD2BFF52
%FD0BF87DFD0AFF7DFD0BF852FD28FF27FD08F87DFD2AFF7DFD0BF8A8FD0A
%FFA8FD0BF852FD28FFFD0AF827A8FD28FF52FD0BF87DFD0AFFA827FD0AF8
%52FD28FF27FD0BF852A8FD26FF52FD0BF8FD0BFFA8FD0BF852FD28FFFD0E
%F852FD25FF27FD0BF8A8FD0BFF27FD0AF827FD28FF27FD0EF827A8FD23FF
%27FD0BF8FD0CFFFD0BF827A8FD27FFA827FD0FF852A8FD21FFFD0BF827FD
%0CFF52FD0BF8FD2AFFA8FD0FF82752FD1FFFA8FD0BF827FD0CFF52FD0BF8
%7DFD2BFF52FD10F87DFD1DFFA8FD0BF852FD0CFF7DFD0BF87DFD2CFFA852
%FD0FF852A8FD1BFF52FD0BF852FD0CFF7DFD0BF827FD2EFF7DFD10F852FD
%1AFF52FD0BF87DFD0DFFFD0BF827FD30FF52FD10F87DFD18FFFD0CF8A8FD
%0DFF27FD0BF8A8FD30FFA852FD0FF8277DFD15FF7DFD0CF8FD0EFF27FD0B
%F852FD32FFA827FD0FF852FD14FF7DFD0BF852FD0EFF7DFD0BF827FD34FF
%52FD10F87DFD12FFFD0CF852FD0EFFA8FD0CF8A8FD35FF52FD0FF827A8FD
%0FFFA8FD0CF8FD10FFFD0CF852FD36FFA827FD0FF827FD0EFF52FD0BF827
%FD10FF7DFD0BF827A8FD37FF7D27FD0EF8A8FD0DFFFD0CF852FD10FFA8FD
%0CF87DFD38FFA852FD0CF852FD0DFF52FD0CF8A8FD11FF27FD0BF827FD3B
%FF27FD09F827FD0EFF27FD0BF827FD12FF7DFD0CF87DFD3BFF7D27FD07F8
%A8FD0DFF7DFD0CF852FD12FFA8FD0CF827FD3DFF7DFD05F852FD0EFF27FD
%0CF8FD14FF27FD0CF87DFD3DFFA827F8F8F8A8FD0DFF52FD0CF852FD14FF
%A8FD0DF8FD3FFF7D2752FD0DFFA827FD0CF8A8FD15FF27FD0CF827FD4EFF
%52FD0CF827FD16FF7DFD0DF87DFD4CFFA8FD0DF8A8FD17FF27FD0DF8A8FD
%4BFFFD0DF827FD18FFA8FD0DF852FD4AFF27FD0DF8A8FD19FF52FD0DF852
%FD48FF52FD0DF827FD1AFFA8FD0EF87DFD46FF7DFD0EF8FD1CFF52FD0EF8
%A8FD44FF7DFD0EF87DFD1DFF27FD0EF8A8FD42FFA8FD0EF827FD1EFFA8FD
%0FF8A8FD40FFA8FD0FF8A8FD1FFF7DFD0FF8A8FD3EFF7DFD0FF87DFD21FF
%52FD0FF87DFD3CFF7DFD0FF827FD23FF27FD0FF87DFD3AFF52FD0FF827FD
%24FFA8FD10F852A8FD37FF27FD10F8A8FD25FF7DFD10F8277DFD34FFA8FD
%11F8A8FD27FF7DFD11F852FD31FFA852FD11F87DFD29FF7DFD12F87DFD2E
%FF7D27FD11F87DFD2BFF7DFD12F8277DFD2AFFA827FD12F87DFD2DFF7DFD
%13F8277DFD26FF7D27FD13F87DFD2FFF7DFD14F82752FD21FFA87DFD15F8
%A8FD31FFA827FD15F8527DFD1BFFA8A827FD16F8A8FD33FFA827FD17F827
%52A8A8FD12FFA87D7D27FD17F827FD37FF52FD1BF852527D7DFD07A87DA8
%7D522727FD1AF852FD39FF7DFD44F87DFD3CFF27FD40F852A8FD3EFF7D27
%FD3DF87DFD41FFA852FD3AF852FD45FFA827FD36F852A8FD48FFA852FD32
%F827A8FD4CFFA852FD2EF852A8FD50FFA87D27FD28F8277DFD56FFA87D27
%FD22F82752A8FD5BFFA87D5227FD19F82727527DFD63FFA87D7D2727FD10
%F82752527DA8FD6CFFA8A8FD097DA8A8FDB9FFFF
%%EndData
endstream
endobj
86 0 obj
<</Length 65536>>stream
+%AI12_CompressedDataxyo%Ǖ/ ;顋Ȉ3=x$ۍƃ@Wr=R~O?w{/%d%2722O_ؾztOwn~xK}&7=ݴ߿~0 wo_xsGyw~on_n^gaYH0|/~n_09ҵݻzݻI7/aCO/w//{ywohȿr7ou{sqܷhhx/o^opG=L~O}Q-]=aEnǗw橧k}?*iC}?y&o^Gނy1LEMMG{7~N&`W)G_˗?{o_
ݫ7t_[(
}Zwo~j'owX wwow<r3 ayބ>8<;{Do۟yY_~UV2io{o5Mwo-hUW_So_}U6[#o}#/7߿5e7?П?>tiM_m~AY=ۗa{{?'W?}#qz|7ᆱ+o_mw7oooL˵tJ;߲z=7Tzn?W{k;pz=~{ݻ7m']/Uxy+t$a$C?ן@)}7o뗗p$ۧl}wo^mOՕ/nxWݷ^k"rW|/xݽo_;H+tƇ?ί5xqmy51N6_ow/ĺU]3c3,nb4_>qKz>)^?On~3n21a(b_??fA:xKf3y1~7w&-ueQnԒZ mjohv.v=]
˻q7vw}O~oaܟ0pGm8$ -s=wgnY-z=}mѸimx~܍qHc#eOywy<)9#@jiVo[<uGvAO-P04bӪ`[)O4M˴va:N9qNs'y7˼,n/H6nmh-O.;"Tm8ksȰ;n[nGZu=6Ӂ;94f$V<=ӖfkYi<<Ӊf0in43H3h[>kx|A"5l&n4.wo42N K4!FLiK=MڑV!ǘ洤mӔӉ6_t\f:8;c> +RO ͲY=?Oe +fFclgt+2515k99ƕhFM +!ԋ +lP$B2ams'OX\"b(2: + +U:]ht +,EIمv$@Y싁
=HiH,m +I3Xo3ٌ +[)fېɑY mraLgiX,5n)YzZʼnG6i,yf&Ռyi0k=CLGt$E* ED654m`hP<ad`(ӽI홑F%|)t3`#âŨ;6DD_f[./XA`{Gz1Pց!+6]C>-$<6` +AB4НHZf 2;PsTIwŠd®yO[xC%3r'D x4axiq<f];,I諤+TV9i\vnY9<?HfZ5851?8|&NYۨ(i~'FE"6dj :o.Nk[5'''֖:`3[mbb)զOd+*PUDYÞuZ"̞̏,z?CL46:'̥&Ukl]>4\QIcUe{V
&[+2k+"5ʘ4$_Tx1y%mdldhu:lH:)FI;7|°{d=|a
mXEyۭ3]w4m;WwvyqhCmiErR2muddd&]%^![W2Z4rcOD)
6,{0{ÀfED{)B_w_6bǿqϤ&);p:h}DiD`~ +039Ԇl8 +ilHjnp*#c<2Dl8ᕹOJM0q!-b##ױVfuJlN3mωKkvrC1+=VhEi{.b8 JpT伳8AOmf<q۲:u1͉ptvYur +.h"ɱ'**"r +$U,*|-l{^J2>fD(f1$) ,,Ť F3,ݼpp#Ciu;kHhKrG's4b#(0dMkˑW7=*ϬUXp:VV[W.n\,+\b>.+XpkfܭsͣAY/ܔ*|՜+t +$_쫟ԪVlk)W?g]W]W0\rZuz2SFVUY|Պۑ}v6_[fZ܋Vԭc<ؙLzE,l{3'TsC
(B7vl6o9A-I®r<l5=Cy;|,Ol/f.Vsc[NRشú yR7Ľ.V'u5L4 g.(,NEɝ_+snxDL[Յ[۱7&tZw*{tE=( +e_[fm6`A[PeXUZl9j뾡ghZ +HYkO!9c*U +H$6<Bp"C m JU;D^z)J|ٲj'J-ICa`2"jt{Z^p:{f|e]0?^.!u(yй}!hZPZQiQi+ӑa;_wj2U Ɍam8H2i<5qSK߭Bڙh碝v>|F:Wsfi5C3vF39/3NfL@({g\/&dJJi*̻0;S}F 2 +nAB[b|뜧eUɾ/d^VD!3Ԁyn:! +nh<'<blDy}iɁ-$[HD5:D,}bm`}lb\gNyꪰ[ "J_l'vr +MeKֲc>Y✛I'E*xc 3sѱkF5X@";V0Ou<[&uG`$*ct|Ƌn5QQ%ģ[oK25~39#ظwGfGGrYq>f^gvP<?d{ϲDXI DӬJ hZS"+13eO݇F +țt2H3nU5dńKe*I4CwfZX- I}`#Q BB<13g(; +KY!2..) +S\Zx2a]sTCsrZ9ςn{μPZoM:m֝]j_>u?8i*4lW>ǃC3{BHy˘ɒ#tjvs vmwaKRAD*ҹs^/=,b'QM;")@ +p#( +E군 +D@ydN$d稵ḣL%*#r焥`cRgZ\yl
MUJ5|5g`1/veƝB?lG>醴{Pt{+bHT8k}=5hhRmݮr;p@,(\z *
@!IwMr,5%&=(ECY'뼓u6䓫b2P&\B[i/
a+sFƬӐmI:Ni$,LsQܺZWT +MR +pq$+l<JBnZ5%P}l8j + [̊E +"Ya2U[NWjޛTr\Ȣ/<9ߤ픘MSyN݄dA<miMSM,iTR<qqoxWb-8:ʢ+*k")&hH1Fp#j8uHW8W]X4|KnIsת)lԨQHzO464[4h܁v=(sCZj^tUg>Uxk$W)(=.c.j$h +<,ؼUdъ$~sVk|8&i5\g]ъ'qbH+hvo@ED ԎRtu]
qJxrpfdCLyJ9C +riX\X,f-Ʋk=ہ'$I&$*rR\=vr|t`G-8Ƭ6i('aϹ2C
ڥqkyjzp|fhWÝ}@^zGDKe+hԤ.Ӽʡ h'J< E%8ґ +2;V^˅9CQ81fRI~ԇA>UlLU+8t5ħUI>zLacRBAݣA.838.Lc3^ٳeXO +Vsq:p= :Vy&YhBPәWků_),=~Sp? +*b._qW +UZ־u.Ā>iukutq +;o{,ϡ:'/ +ќJ]f4`vs\.:wWMxhC[NںOswXk(%;ȞfhpQ?C4tw8;DG"&ϋUCZ3;U'6!m<h,c{)BsM鍝ooKr8JXcgڶU_nߚ +S%4CC#S]Lgɂ.d@rŤ)O, +i.U|\G,c4)KSV]8Y{GfT 4m5O;XV_ + i$3mBohGloH8(қy[?ƿj| b}ngOjeŋ϶?^{l^x4g_{?O8(ɸĥlr.^?D銬Ýa@~k̛0O7@67 +kÙL22#=ffϟstLGp
$NAz)eꩧ3( apÏ}[~6"B10z(n#n
A0P/@]nD5gA2H"#]I7,!fD7%ivi' +-D<P.H*
mhVs_3}u{iiWd:#$SI_QѬ$";g@EGCEd4-4O3N?fPWhjL:\qqט'a(COe
1hSQq +-$iwZڋtEe2^d>Wt"'t%Hΐ0j<;dZ=ęo< ӂ$lc
ϯ#1-$Ѡ>ӀFk|#HHti +62Ўȵ4t/1
Z@.L;xq4U4D;{3Qx1&26D5Ac3I0{0Db
L4bb<?o +,"
!3#sqVQgIh d,6KD0?=,, +0(Mbt4LfaS~{>k"pI*9x
vFqWhU\ŶbYE}"L62ZC/]
_q@q={0u1 OD.j +иij`|WV +E $:}Tdn40}'fe3,o@:BlG_pBĦL>ُᙴZ:e6 +XZZ5Ǭc
Wg N&(QI`FKFɍԜBIrc[0'pX= +WٗT +u˔T$XX
uM +C{SLzycM'#!:W*gT}I5%PҀW6inJgAm)S}KSYMZ
$ׅA# +@"Hnp/~jf
v-qg˯`KFh
�H>iHW\Yz)7fd8ePP3+SL6ʷC\H0|:lV|S;6_x8ȁ@?j6GaE?y]ɚӈE:8Zur\)ï
s)F3mHCN5V"rCvo1wkXΉ+vugj7ϑzg;#u̿anpgJUZ4-.mҕJfOn)b%6$P&ȇnr9-[.kHJ悫\u{[#Yee7ܹ<]|v@RhA͎aU3_69]13+)n,m7FWW6[)Onum)QbjMss Lt#+nnR7Zz`-cWyuLU"Ŕ碢ǸӶ5~zjc7N* ++ XFCAǷWQF_W2HuYFLjٛ"LCh +t9+Y MlP#De# +x M"hjhKp6~Kh)@b)x" +0g0_4 +pY(X +tL4 +02m4 +`# F{!7i|=F:Sɢp4YZRax??^B[.<gL) 4*?dxa7Tƕ0oZ#X* VgcnG)Vg;9Ҕ^< +EZaIM<}#^HgLꂗOPŤ>wB`wgf(VF]ç-ZM^NmPD}cQƢ&3J`vL- +hÀI;"w,AA` ~%NPcs^̆*¶gؘ u5:,F]3(ձB
+gVYΐ6Cjc]Og U;@X{% -~,1yXϟbI#q5zȢY +UTZv5$\X<kV-%\z҂Q^s$9@{q<MQqhe17;"27T!Sbӌ]KU+3$bBUJD,<r-%W(_sj3H +R֮5Qٮyw:`nG.r6箘zz]-&`wUb]n] +(D⏫n)cs; +rS&2Y5S&`"xÑ|}jɗY{:Mq^cᎥQ#'oP*S )ZUPwuF,<Z/C|e*)D4YE
/ߛ$wiR2Y: +>;:-dͧdXMEI8,*,EB_ꗭS߅7k>d<JϙNcv~h}`D9h& O_9 +:iv'(抬b/N0vxN +)gTBNJaJPA&Uj4A%P`9a*\ؗ¢jZ(@#UIB Qh
-xamлJ+zdTeGݐ3k/3?<p@T%ĜjJF &SM$8,8J6n8ґŢ1e`Zo82O[f+xpj[fbx +YoY:,x6E6OLa>4߄>|߫kږ]3槣Y?E* p"YG$upvK%#pHTO;2E$# +5V%Ƽ.%'E^o3 '5!*eёa2V}R +5 y40ǒ<lN-ys[s,i@GȿJ%<\r㑙kF ?hۉ5;f$D,Ϲ%p+H2`/e~aqP_ +/s^&hc;p!ڬjxM>`uc"5qMj/B9gJ8jId^N*,8b\DȎ>J^\~~eNUj(u\(4[b#TTV5}媍=mk|xI%0Tkd_8yf*/W-ڭc|y
U]ok/[ҪTrY]͑,52`vBbF-J1(>YMyJ3P֙Q1P;T˫9,ejڜ{A7'^!^ Ήאs朏jI:7^RSsVeez=g^a^ϸWsF^\5++,bE
/\hPtk-6d,YFʼc#yHTK^RKkU, ի] k1]L5]v._{F&{O6h#{ QW̨^Q5jk$^ԵZ6^'U jW\m)jWoUk6ׂ5-ϫź"Ue'jקu6u5Ẫus]%i}8YS3 Va/2.)rD&t(/aVF8rNɐJEe,XIb6E+5m#'2MQe<#ݼZrdm+'r}C \9/ҫீ +Cːڪʑ̑>[6<rP2@| 1巕J0rjȓ: XRw|` +4(q"6>ҊPZץ%DKmد|LF쿐Mĕ̕fLRLppK =ЙHai}8eBlB$0&&N$L)ҳo3~I
v/>^UAWPrRVkB}!:b?euu +^/2-g*9}+3U?e5o τL6YE5SOZ4{5KXYj|;8Զ6 +rη{VuзCPlÎ~s +4ŕ*aQb*kP/UT5+WYu}Kȫ}Қ˘9X)
&d +#]Z:9"28Wn܄0Uijn4"+d,X(*TWԥVK_/ܦ yJO~A҄X:!֫bK ~'B+[g/}_el +_."0V5iaeUQT\VhkA۳oC3XJR,2S>V\dMX-*VCW$ŢZa6vY +X(։ȬJ5Yp&'^t^640.->mOfLDk㲢eVyCae~}p3^5+xfR-3c7F
Փ}ze"}9T=e\i#c Scͳ\pfJwj^9˒^q\V|a 8 +]yvZ)!P\rVlW\6}1u70[EU%ou_9RhhWhBx&?5/vS.\dNo0YᇩjV>&WCJӔF$b̬tZjzg +{KWȐnj5+R˒shBQA_͎
Eӱhd(Zvzڛn!K"B`&r 9ªd_jS0<_U*N2DbY@f.˪;\и,s*,냵U3n&ӾxɈhM]Mk2RA(dSӚUX?-DObQ5㢌VF,(eތriUL2o2,ʜi`{"j?,\(97(#Xg:.55ۢ\s_Z}Q~?ϒef=lUY[j'Զ5ȴ%٨BX_{8.#31\8(p=ْkyҜ&7⏽G8܈ +(krdq&a̖nҨ5Y"X]\Nk7Ěԕȿk2$5 ⳮ}MVVqa_!07 +IJLZcU~?X3P? +))MZ*nH0n<wI2:muSkgME=Riu街A7eF
Ek~t#sl^A7 fЍqIZ n|=C?=n*B8n|/;i
t3ueUDn:N5n\aQ[^#~g8Ɂn_鳩'1v}iC#}m}~{ +)֞רa6:o^Y ++ +͟2z`\l(X}:h=[1M1- QSygĮi#JL%otn@Wmsvfs8VA8B:v<|A`̯5*ykMwD*۫Ҿ,Q]̳/ +dО*,fgk.L#lmA-hL=-dhOݍ m3lpŴ`auZ{CZUa +c:qGgjꪄ& a_I)ެT@|=nLkg.Q:3J=2Ii0y]}9\9B6-D"]'v9kٸ|$JЮFY=n;;z5L9ƈaqRNlTC(Z^M!>->
6(QH?3/quL/Cw;^^
+9/8~C0MC^8|L9@45M{qXmB. ue缈Sb;{K9.ʙr.V%JjQw
'f dBboʠ.F_pr6U%0N."6`,4oH4T5o5:ĻJ391Vn?@n6\ %ήE,q |',;t{(,ksfJ)Bq.j̄/F}5gkw[wdp'77L&4NT<19M27H'kr+lN*+ ǚQUjrk9騳M0yv +>? ,ۇ;iA +ݶ܍(Fx/w,O;^^s!ucIMb>;.1GH*uI{Yzlpm fa؏m%~*[O&EK-ұr+T$cOVO/QӢf!<VS^Tt_+!jA
yK +FQy?Hh,,r>+͖]<sߚ %9XW&䘼ozljn p:m Bd\017V&_ak~@u74++G.\C +,$b5s.11^QA#3#^NgdDhkka9蓶!}ɹz +=VuB8tvf'5}%'*,M۹ѻt:HUhhּaK*PJ&+m\j#ĽW^p\Jɧ[HWk0x/Iw-հUiCLARiQq/#ˣedBK(\7ƆS=ڼ>@,VoF_4[IXY~o:?J[!B\=r8[иQQz:[MTWwb$.hr|SR# &ouQR`>_b*hU<kb ;.]{~Y݃ol6J5|/ SJM">Ʌeb0}?粝}ˤ\m{}w$.&6Ъ!+Km>0@úҢ16Bl[jS3WT3Pt#7wM)/,_ +a7qGwjA_ѽYSYz]gp)yX\{~7~uZƑ+¼EqYK*'y=8_PC82bX_<_|x";YQ51e7<#>Aa/8>Ҍ!ldČGtD$L?o@=4s|ƴʣ#cCLtɅuY61[oA;-yZQedQӫE
rr;Tim7 .tzЊJ7n(6,&touoHA2Gq(s@f3n.ujecb돊ڎQ4{w=yaɣ
LN];!_B_wkBR:+楲 mŚ'I(@ġrh;"/b;`;sc؇bIi`̙/ySYм|"W~;*tݠe.]`V +RW' +R = #PDA|4jr$G{} 彘Q2Ɯ'?h}/@l:|BGwAH).R]!g2^ԖY2j q@!㮁BƳBw
2!d<k q@h\!d<k q@!!zB +B +B +O")d"d"s&ߡdc +]`>ߡ0Lo/
I)_?^%P1 4 N)Ib4mp^U4XJ88>^ʽ(X[]vGdYCU轪HXmm[.IuN"͓;zX +w&#@Yܡ ~O_Jc7j:?+'Snxr1u>~#L0UMݭ;8{PmCLG?EPqTWbPieN+y.pQAQ1WL) q7Y/'X\yTvg[3tDYsh=#3dE!3O<<,GE~Ts@̫;y7r/pcU߶xD2&Pg=!_@|7=jU/^S
+>Xc۠>`VL`9B5]Uw ]E7_8q8Z8v38/af+/ynC<)*jLǪS)JG9-Zl[44q%KUFs®lWLA,cɮml<G;DJD=]8)Q~#AZ?}ޗuU(Iʽw?%k=}Q<z;X +vWYqqٶyCTSX
&eUcMR졘G$(\R~V5x_(tqɑEj;L#e +UZר +ОK<8[u/qPH~J&^{mkE$40"؞wa;KnXn5DVwN7q_nIRXTj+цF.VJdE{S=Kcz;ijcj%Y_wѺǮ˚u%m1)ZV)n^ ~2EyYaE2j<(.,_qIE`h:ۙiR+4GZ?wIFZQaK>r9c}EC>y\R*RXfgYZ`&w}a>0KE~N#6뫈k8lڼ\<),G5|VXzrȅD)JqaȭZ(D^*f +XNrdyٍՙg[oKX4hTl;Aa_Wi5HDti[MýQ3}g<#lYi3ym̮jo|3FhJUyi" xJejz<~uSo͢909Ӯ~@t㌖1Úa1{m|CWCN
?*8۶.b҈bz5^I +ǪG/:q:%JnX2iM>5r'_@h@',tskiBհ6Lz3`WⶦEWv/4'\7GZz|NO!oL҃,^ѽLZۤ:y+v'J;{{# +8ы-(]21鄼]#4h㹩ӱyJNVZ_/+GCեl9X"Yxթ</4H971f
ʳzܷP{"0^T*FMFTsjl):)'[&pU9|y/
l^L)Tjs-kYz}͠3Ԧ 3}ᆟ>S\_6ZϚSQgmZ}i^+~Ze@Gc5NG_jP`at1XhB= ڼ_%81i_ksTLOGxLT9+*ƺ[RtҰl߹+GqչT*|Rͪ;F5\/)CV{PKыWeV={ț{/Օ5ƨ7gu2rts;V4{;Jwf?oIoNl JUmXlMsQHA%oLPHrCIebW_qm=\{zT9{?Or? 6rdsB5(ZE?_&蝊QȽ*]k=6tvbMMpn[bGOtcNI{7UG(UIP69 +22@!pad|8F?.b2}gZ"ү?0ӯhMqF|!'IFL?[QyDq1yF-urgozA2ޗQM6Ft:̜۟$2HF&B9'e5N[Fms +nΒҌ|䜒3<=d;Wc<(7ϕ7U|P5,CJ!\3Hkkd쉆JaZØk~5_<I3" tk6Oyf7)Au+sKk9E{yϚ{u1scYfm@=Ֆjf3I^zƙK߹ G;Ӊg1LMNN}0,g2:!2iLN$ӆ%Dn|2;m2/ۨF+n,йi\u2=mqGxn"3>53՞[Ҟ]kOۏ[DM)6->O1 +f7ݔY p6q.b_{0ŚODb +WP b +JRe<X ' +YRبekCdLRG%?ί~n +3B7B`{3^²QPBSCy,U<ζIr:Ë)c},QD6ڏlJ ~$cj籈B)ռ-я~껌YhNقW'+K֤o +n+p+}Pa\A wx +rD%L##UjB9'wKgQLzN&Ҽ6͎1HW~7TvL[CU\_{iś wx,Fؙĵ맧<Y6}Iφ1J0{KR"úCV"wZ^|77oFyrnl +,UZiTt%(EWHT#ڧj?,4ȅ|>V_w=aZEfQI\uIHAm ,e$(D֦Kk|eu]@9&jut'Y/S@jAEWc8L2Ty݆%`3j!}Jp3>g_LRnLo]AJa3M~f,N\ +pߋsZgoEJS7~ZJWz-n6Xkz>?dh/YNJjYC]ꙓ*a/_߳OEm~_y$~E}9I$/'-Y~/?.BӢwI埶_8e>ooN81+=@f\z5g9MU5_R5*b14bFYjTIW(^%EB(d8̃a`sbOxnK +?C26c`r 6徫U\QmN FeBl;FUb?o%Qp+9ܓ;ItYw$siZ)>Dm=WkkUZiZYBV>t*cXfptdwqp9잵N:lGc(,6fG4.VbQ?"XT(s8ަ'ݛOew +8@l%Y^^²g0)W}~s݈?fMuFD#LzG[wKj
Q=puʰݻ2<jmһ`<@QXU.ݬ=Z^">YqU-ȗd? +@Pl4x%^EE[8P{pp/%dJR̰JUޞH5iR",vgE,pײ +~JDHe*1e
`J2b[mѪuSkC'%-b+¾y3ջ F=8XJ>o9kw4Q6R7bAmgR8rpzaљr1J]՝J%gB/ΑQmV0S%0y7NVOs 5/ӣ\KL +'rhz6`Q +4Cţn(Jq*ܻͥ¢Ԃ$3s$fFOw5WBXg`H Kj- +pXFJ?]=̈́DUk6؍"ݬΤrmV~"T/26 <ߺrӋ8gObG,<UG^HjG +Ԫe:X{W +%Ҭj +,-RMQ7W\n6g&x(T6@)XU_4طU)ͪݰ(fg
$a'QKW4z_#߂Ru@lƄi +xMU>NSE6a*sS(5tmC7}gƽXd?aUظZ'3 <(AS0lލel8~|T//M#)F^I|fط(Ay*TЂJj]sw5Rrhd~Jоm3-O-jSnL6e1hX;!|q@|SfX1b)?twfw)e%GB5JWf +/2@gِT^ƪo
6_xBaMCXrvx"(UDc9m'%wB i(_7 n;+S}?S8h>l/:C2={ȰjtXiaF?ôwmNn1Ƹ븉v-~cQ}O}:|?HxA̾[i NO^k6xTzjbAfk|4_IEH18Z/! +_Z0WkcKvM +1Hh"Oy*I?U[>uaB@;|N, 53VA'@҇p{KVh1YZ>n`I]¸Xж2䩬?lf%]F'owUvۺsJ>KOcpmBWY
# + mX(g{G,v[ތ)j +IFQ5EF.JL x{eXǴ4$F?^\Q}PE⍹L:ՎZ~Tna%|zy0y~u3$CN <nFf>߾NmYx^ +<;XQ)|uIŬ,N[T?u!Y/sZUln
ݝ3,RVgujʸ}5_My[-dMJ?Oek]͙jHwͽ U8|_ӽ"|nFD(\MQoT0iI0Ä0pboDg +ʜdcfʨhX¬{j7k.^) Z<5\c;@⸵9=%#%Ag}D(:AwNEN# +j'hz[c.o,͞W0:M(t#e3~}am!vrծOTV.[ +lSbVyģtmX[u@wֶ{doa)]Uط3l ߊYԚ3evh11G%kU0coZXbXIfr!_crHw¥6bhojQ]m(Y ?W8H%"n[oށH8l지˓
y@K+wҬѩH5/K/-qGFSN6{=, ]%"mO7(Z K$&)6m.Fg + +2(U>;ܰ4حHhZYx
*7I7-=jyBӎRB /)xAiEPYa.M,6F)bۣ/&.R(C~<g +ruR>MA) K"N׆yK9f[7xz4]}>i@e$-}*UIM?N
~?-K䨺mo ?(eHʹ0Y|Xr)cDZeSv +[>e&ؑJYuZ@$tZnp۹8] +QiH+۳4*EB"#rrB@M4Kn o +Ty%lZ!ӦMJU$B Z csqӤWI5$MX E8S=~Hx ՂW5#ze*ވEo&VRP5E+jg7% v7nHiCQVһUxR)Pɨ7:nA*i&MJu,vlҳcz(Wۄɲu.},ŢWrcrABb*,J0/Jj|OPQm\'A6v@6^#i32_"w֧CQ]%]#5\Y=_pQ!@Z=s^H{xAb!Q{`.k$WhIdne*$eYb6WGn?$2H [YqFM'S`*5$2}F\_e;
:MWecq\\4Ӗy<qT5xVm氚*6?N
WHgk*Q$HۜTH Y.%լ!ޞ]QmBbZ^16<֝AN)"úraXWX%dNyVq:wZZўE2ff=Prca쿑
X!&D E=}okqUJu%5GەyUO9JHBBF+ s\?:;5UI +$gk:^Fskwh+iUvU^<vOFEIZ&W!,Gy3]n4γ<~4Nl +f䦮i )
❢<2+8,ң'7^K͇ۮB̧॥0֫HMALEyȘjB술3*=^L~OgOkh4YLb9f1o)MffbTO5[TFpYGbid9e須[;;Q=_kJkd=
2R)c+T70be֧*ͨjp[|]YVF2qTĻ$i}vnEwS7ъ{Qf%nN+ 2K=aawVB
y6IVZ[%Ƿ1LAWЌIOW +lL&TE]Vʶ;! +lw/!7i+5Ls^۵M"[0\QO+YnWO8bJIs9!{7Z7#7g̵W8(ǿ2Jsi(jFZ䬆TWqRsU$*`]M=I;ߨ#\#vr/xR#Ll>=*q0rIUUB)dj
I#o冫kR)I'gh"ѵL^]ct%KCmV~Kt+*Zp:Z]睲v$}3SJ"v,վ[~juPلmhҷ=UdYUg=@FDT=`(njb'܃ +=5Wf`'F:\68ZR7@s6+W)Def壚p)P#*}Ӯi~H1nđN׃$!=Bzv\V-HXaAǤ3Ka:va5ƑndaME NV}NC(
M4
$DGs҉TA$3Z툤qY3qQ
4ڲi +`4bq>gq5AQ'{ͪ$`\^oeBUVJ5R $-<`Y$\>n`ȝJ.1j
FX%>T̉GHZHE)),|M%F^xn.RAt*1Drs7E.:Von\6
LqիyId S|$ܯ쐾aJeIS{1YmjnkŢv,Kb2&zW6!iQ;Fޟvy_>&8ͣ{|We5,E\G!as0i^Nх*JMH8mb(RP4ΈʢO9Z*WaX|YFZ5ƠՂN6.O\zY]t%x\?KJO=9PMw"
[~'''UH3yiNl&Qq2B +aџҟQLEѺQӧmKe&l'>H +W/fzH6ͻqEVҽ +YZcJN\&SD'&sw76o^FG*8H~'(D%ovEvŴ t.YvGHԸwO
wYj:+]#%"7Q,"qYl(P6|6^bDU"řFjbabI,g8=`)6]ͮ_*MtlU98$40Y~̴5r"*+JsvsfKy_*kSI3&|8-UuZ0` +[Q$䮽*>SMݼք4({Rg&QAfSW +`_}Gm6ZWT*ƅ;so*BK[+D"1wTT#ExV>*nމ>[`
>ȡXUI% +_S*vX<Wku E^k6iUt\ deqÖzVgxح8ggUWdPI +}V{sª +6Z\i#=g3FrK1ƽo& Wjjf38̈́쵼yBFD _1Eʒ,!rkT!9Iql}AWuE<=TϦDR0 {m5)+ΈŔ%bV֫_R#E$k~7mjo6WI)Jk(klu+'W+ܷ)t8[7*eUZ#
u&FhlV)"zqw(GZux[ɶȏ슴h"+}o.ҏ"%;s4MivRfx赇a%x0'Z-UF94>vLSyY&ʵP'RY*uӒ;b%B(Սjݜ䮕K\ŸY.,EbY?>l=і`_^5obCIJIM1h${3cKNC0596Ke/W"oVI +?i'MfsTę9;ȉs^~Uq.ߌKݽ +QJǽv6}(Пn')S}/sKo-+SEM@j&ʪ&d)h +`)w^ +D^ڕ&<j19gwKC*yeH"cP+FgAg)j +JՖ4tHKP.9L>@I0B 4bYvNF)2.E6mUTvut[f6͉Ωsnik̭P\{H +%n*qK5zU|W,e᠈rzT~=lTz2esxTđ<vX]ۀ%'q n(Ht%D}l
a_٬\V^jۻeVi
ܦLKk6-fv`Q)aU2=IḪ@8$'֖sngjB2VGf +j'U?WjVp|'/fqu[f9rFypYbe E4Vsڼq%:xa@H]ݎCVЂ>
&ֈ"[6qXT-n],d~6ť'K5I8\rJ9^jǥא{(X1DCDmM}J5<ӬJm[073E VE[6D8D0qf=6L*lXF,FuQ6)_͠+9J=*3Y$z!ByԄɸQjy-M(딑@j68MQhC],_,S +P[w{PdGC%Z\)ȥmjZ<?irH-tyQ,#JMQTAܡQiszHye\UKޏ9 @ ھ?JU7`jwC_&&YN%0Y/@В+U{5i~t.RPScͼaGoƣTeUDâJnDx@A`}FZL403;wD((R/(zFvT\^pY<JrW@~xe{-v"dY7k0Cu7hȫ,Ԧo6$n,ʏyr0L<86M6ozU KZ- +`In#|uvx֛lMR
eYDd G#7Sr\F%yҫ2Uh[
ɏآ(C6-.o6&IDP'1fȪ8K;LC@X]bjoI<w?mMN-ǰu)VjJYJ55(V(dЏ%tؼ+piyN-d,[?iޕgt:産4%6S\jI0G5/T.мRNc&P\dDA%U%V2acw}JM1*Z=5W"+y*2ѬɅhO"CBΏu(dӊͼjmIVx=5&ɽg]z,˷w6@U(quVo RA%Q>3\~U!h5;<݁zܜۚׯnͣT7Kx15-C]n "3R1&j* VվFYKy!)t"%:+\MW[q9bXIC54RUkxLj?gZC?X<~"pL-[/~o~ic~(q\̱Gi@ 0!Ȋ4wgYdE9A L<#ddv̌ ӧ23AVL" +W)I=lAVRh/d ApAuFad>dN2Y6 QLf C.F?dyL2l3l22"P/zAU{+Ղ@&Z,˛@u&a dX=,A?P de uk3ۛ@f2#lU#C:d2=x!a!dYL2)W6Cd!d2L2Ed23d<AefYAD [`|3R3a?1Ș +_2GUx5ƊiP5"Ҋ>1j3Jsf(N, L2,3˛AVK{0j9~AVyldZ2',#ÛAufadXJ? R +dGu 81t dad&=a?dE\AVTbEj}Ycd(NwdaFE0ddvn 01dx2ȊPDGg#P`¾EZ,
#=5V&t1O3 +c K3;Y +ud2Խ3tړAV?0Ȋ!ËAVjdE՚YAƇO2042 +QAA`i
/YQ|`*GYad=LfYڛAqbAV 810L*Amb02dx2Ȋ2IebfX(cy1HNN2u&"@/ƉA&A&'L I#LdMdl'9'118kbidcsmOL2}كAƯd\ K K[0ȈȋAVBJ{ x38lb F;1D-~1d܆AA`I?edtd^3Sdid^3ȀdUe_n 4ɓA& adխd'AVU`qMLAfc mdFEd0U}o19LAA`Uc2!2 ákd1d| bU6#ab( z 01Q2GAfG2bs`!nb41Ș'Y7ntY=]3x#t#È AfAF> cdYAVd{!t'$FO/Fo DǞ2F{ Ac *,#AVcFեDA5"Ȋ3 LۃdOl# A&È AaDAVGYAiDd՞AL[' 3À iQFYA8pD
2½/ۆ AVdidiLmFcH +wDJ'}A@adXfYQAuBad: +RldE +#KBadf_A& ә#LB&Ya +OwD@x#Ȱ2,3Ո :#dd: +Wy ȸ3[FYWaBL #.3#K"Ⱥ-AEu# Ӏde3ȅ"Ȱ2Y&|!ddEB#AƵBmB
A֭ GAF +@'d]AV$8"p2fFY ~XJʜRr7lyB
A֭ +x +B)m<!Ȱ=2Y^2Y'>kBgdgr9щ ,A6
AVlcBф +z J=? FP^M A6XY1dL-o c/1#ȺeDuk Șg,، #n4#]dfgdOf:3I'LݎtFYZFYAA&'L}#6 A +G$Gd5 +'Y]LM'Ғ>!2A&+k^02,oD 2'{;3dY_2u3A v_2"# +L2,or ̪Y_^2&Ѥ@6'L$o@F J>d41 +7~lL~nk +@F${ 4?dg + @Fgo + w +GX6ǔH~ǪP#~?F?: ?E1Z*$ʈF1uXc֭5ǰ1,o? ?&?tֈS?Ϟc~?ďA3~+xďWc?f~Iw cz#}LQ7ǘ_1U1*C'>FD1>Fuq>;NJr}'}lL#2,c/Wsc* xT0T +Xl=ad1\ kb d&1y#{Lm/{{ϞsUGzNJr{̚NV'{L=&iOƑ=S;ғ=zabQb!G1O6 +#{gg{*d!cg'7{Lى=}SNqdacX1OG#{̎xO1B3{=Q~噴=FM+`ѪfacE+~=&Ӊ{LdY}`u"ӓ=fxfXc%Q#{L+{L=fE-O{L=|(c<=-#{̬#{Njx:{L +\#{{L{Leq#{ړ{,5r<cfyǺ1c*IccV8fX챲h0Ŋf'{[:1cN1YF7{(9NJ#{˛=!dU1,qh:{Lu{z7{Lݭ{L{[FX{oc7{q0'ncfc>챢'{=V cw|Ǥ8Ǥ8ԐbacXfyJm3{L{ޮ|=47T5ff:F=&ˋ=f֑=&dIÎ1ۙ=6XX{(0NJ[==f#{{WdbItb:c;N1BfXL3AZ=VmfY=f2B#{ę=F3ݢ==C:ǪFAoYGYFY1|=&/2#{1Ǩ\cu13{Ӷd,y/=F#LdcXfX11nȓ==Vkc/c'DG=/Ƒ={L<cZc&2/Ɖ=abaxdc:md郟챪=nbdQZ:{LX%>ǘ:fXZFX=obIfb
{dcĭXL16O=GO<Ǹ=Vo2KKc=VU`QM4oc1b3{L==fƁ="Α=V801dac{d'{7RgXXڂ=l8_O-{L{=?Uk{c{(=md=1G=:{L{=8T9[{ǨcҍcU3{L#{`br|vL1%a`9TLEIO =KÈFGfD۞1%G =&=&nj豬cD}'ʅFX7ntXR@2cc'XUa=&=g
1y|#zX=Vզ1ǘS
=?@1cRcl^r3zb ='zS/=FWӄ#5(yLjJN1ZBFX=1eL1)1
{@Cğ3 +y!-!cFw젱Z1p3Uf̘SƄ(CcWԬɁE1F%3ac9`L.9#^LebMz{Êz6nC2CBkAKHJcrHnH!blW[LøCń9jg4-uby)I
KZ'VwXՆ$-&k(LN[$/l7)Tq>ha;m!@l ++)*JuRͮ`{>pԿ>0axQA S5)_uF)(_#R%RZ;$w\'>{x0ޜ%`Ϲ14W4LF8{Ӿ+`EN\qb浳l`65˹
foV;Lť
:Ҹ`Ikʪ6|e4Z:VD9`=43DRZ;L9M5"}gG;?sƉ*d0mY$( O`3`,tS_vmlV86R;TG˂b Tv`0)L[a$..Iғc'T09,dnZj3HۑH]=HCpeBu w==K'ƣ嘯B0x?H=I`w9`\<O>8`1`ZR10tdo%BǞ +ϡ8b-\%2î+4-ߡ6 ~IƓz$~)"o'~ԫce/0^ڕįUzƓe0_2l]W
mM3kh$~lJW5=IX6_9Uۉ_2\gVlz>ub~?+_EM"+7@Z/N^GDn~i{C8_Nħ_2m
lZ +/~Oo$+
+mbc~ UT/Rț<d:JB Q?-_bj(z+j-gr +WFW%:浚:!PFWEʪ-_i_/MYq^$oN/.a_[;~ID +%NYy٠خ E='m(aԯn@!gyƹ A&GcgΣb{~a~1_DKn9i!A<vʿFWgK%%6WI3__/ ֬67O/$F䗂zu%õr䗎UM"ZE^ГQhe ~Iw3W7:()ɂ$_vL/]°)zd/Iࢎ/3R/M0엱/(b}̯n_iWvǖ>K`jJf~{*>/^/I4I]XŴnPw + +t*zq!ֹ^|8kOع^BZdk bps/ff_e1e)*iYB{m5^
y.}(vY4at^[x:ޫY1i?${I\ཤ+ދ,Fqmֽ%emphF +k
(Y)x%Ve'ƫ^̑SP!څ-C[l(qD{e|%VeCZbR&ߋSX08!&Q]^8}و|/)Do{i#^TZ*^[|KД]zoWMU_:@+{maѽTuXN}`vVރ\Nb{[ǩi+y^(þ0LŌWz7Kj*^ +h/UZ)^IIhKfW6L!{it_ov8guD뎴H@roL/<_ku߶d].3;lky)0=9̫v%ҢGByY@y8lT@^HCA;c(Pv2V=Y/5o)$UښHl,z1?Yc6./sw͟K/)ضkG"tmhkR?oN +7vh@kZfdصLjLF v] mKav^]҉/Rct/7Gu:wtR m6q]KȮ%:MW_)#h.JjȮO7BSdWvY]mF/]7sd64 +K*`vq2UK=3P."()D}t +n +KSīu)Ք(+.g,^K4x]fqFuajA=x](<s^8ڼ.} 6`NR33.=Ũ6lPjC㺾pUp]znijgKO%^W7k$Q h)A0YuAעu2ATytO\<Wui'.&!g2ě{ +˵2u^ju!uqץeʩ[Yus/>R*Qp]2-1Cv9 +xp vXTVub4P]RA[A]ZNvRH"}Cd2]ֳ"0}Muk~V<|:tKNS\2z}(]GGsUY\2ogd.q0b9Ϛo`Ҫ~*f0J6c"IUs
0Wۯ
RaRX\wl2ьkH[h.W4gtHP\T +NExt:&6ڔ:Kd.ye^ E?RCm5NzWq04kn$)QIR aѸTIEaqOq=ϹQ\h,.+Ӽ/ᵪ^ϩ,-F?)߿9*i%C@[}TѨ\T'n+(mN[/_[jݺ͕r28+>I([2LR +M2u֖6}Ȩ-\I[a%'z͜-X4fQ'q/sȖrJXe &Ld9f`9|-3υzc +<UlǫZMh=2XKFR#Ζ;a<zk(7L_d^H[W&ji# ?ZJdqEIO_&jo׃H-f +ig -)鐭hB8SG
3DKF YX);ZY7Tgi~.,iz1q/xܥ,;Z,YK@-YlPsnP۸Yqp63K5X:2K91yR1eA˒aͿEӽPYl,F>(r3 d{ܘ,-(Y$ 9&* +7!aȉ1Yd4-LG'7&p
"1NN30Yzem|+55ڔKJ2(Y(6Ś^dwF6'S4M-A"k$(Y̔,TJ+%❠dINgdf6(YdgdI&Al&%9"<$H]h,<:rߐ,
dc!YZ.y +jQFߐ,ALBi%dIa7Ny9Y:X' +idܑ2ɒu +L<Á"Q;1Y?MM4(0YJNYV.c^c9Ѷ{a`Y3dL2g,Eٯ,LVQ1Ycd8>0Yqɢ.0Y40q&]1Y0 +L%ؘ,$v1Y L5zJEѳ^jOe-5:&KȘ,$,L$^[,}[&J{da͜,e:N"d,)Z(~VIcK`1YMZusLMId3&3 8C%JT%9:%qd &,K(18'.&lEu,+2) +RFWfRfe)7K~X dX{s"p%H4f3ʻ{ٻ0W> `Yӡ%VQ<6+E^e5:;&]8,K=
R#Abe=Wnc,rRpdTd`:K0""
ߝ}YyC%λ,O4my@R,\㧬$Aɲ#^ Y|ɒ@\4 Y>$=`Y2xK,34
endstream
endobj
87 0 obj
<</Length 65536>>stream
+Fyj*=WVԯeF&~7
.v0j\w?dQqaTJ2$0d!(,>GHd.V (Y[T:b{i$Ϫl$k մEdP Y8@4JbilHfĊ8'HY3 Y3$cn=vj-, X2#!w-DV~wDwBd-1YDN[,YoBL!k 岇,sU߄F%d Y2^3!!_BZ&dAȄ, ,=+E3W t2!K1uqx#cGY㯌ؠd#Q@d}"'0#X+,E"9RI1Bd!uDmJ,M4Dۚ0-$
e)Yȴ + jV4b߉9V +J匱B|xH+~YBŰVs
"Xm!*ֽTV6:P_Ѩzaӫa0ѫ8'U P*'v:LBU.<]zo5UziVdJ*φWQ7 +Ӎw; +M֜xFi4GWiDRUtV*:gAb۵ Wm%LE>A}h-(WL\ت7$pӘT>f=`]"UA-BW"tt?}Ce"* +oUnM\hntp8ڋzQ>םIS6bBz#hܪuV5fH*[JߖD^ǨNaq JV-1UZJ# "گgnfj(H8j \EGW59kZ +
WbL*+U`ΠWY7JK1f||a\+UK%>~.| +;BPJcۻez*W+v-K*>{g+ +z^U=s* :+5Uk08 +Awhz
Us_6,fK'U!ʢq}zĮb$Gh(^ĮZbt(ZP.*+u8TS8Ay^e`UY䴾ۀWqB쎦zP+DW.f/*}%;M*ښVj;LIxTDM*(|AϴN@WiMYfW?*W`WY2~ήRLYfW(EgW8Ԛ$T +0*ëJf^G5x2j0E1⯽]EZ`WuUdvR3"LTfWa$ `WQ£|U[tvUNP.vCT8}Եnn]IfW鳰z>y:j;Btv7, +Ce45*~؞U +BZb0$:nkY* +rwpVu-n;m
l.UE̪ǪnE|*Ͱ.w@UſjuiUMJ9ROߌ_RNB-VToK>RXRv1Aq;S^ no DZUstsx ]:}{0ζb7ٷ5VķZZ[8Nk!+-Ůl7}Sk-;j6]tjn5 hJ/(š92WpU`e MZnu]ƿ/;3Kk6yDXukĊ$I -4O=:U/Cyq%[7&NMSسunTCc'E#h `S.mrIPe良*xX'uJ롔../93xXm~ITGĴM̀3vÚWWKz^"k^gx J+҇_fԫ9XR(B1S(-]h_TT{ yZj>H&[=Uk*FbIGzp8zĥtZP,YO˕bKeǷ3S5MbMQ4
y5*Xq(DܶnZVj-Ś7Ԁ1D|Ct5hX~)L(6KN]YVC!4Efì³wՍzА{Mך#XA,Ьjɡ|koZa暥ߔ٩ -Tq>aw+X-ܴM{~xY*VůŇ2n;>4˫06RBbPwRqFSm} -?u4`ǍS<aחk%;0es${ASFJ{6d+a&Jښj5H[:ܟokeJw} -SE4!)c-!%%ժ25Vk"SF0QTsTnN(=U -OrL1"/~0::QNd5%m=6
4tw?o0i]ת9)`MYݗRv1ʏ"VIhdq3l^.TZYpHD,Ϟ0\'/^^[;
uAforO H:;52K;6K*g4%B5%F͆Bto$1->0@r*!zBֽ~ROީVaJe=cU(<qNaԸ-|Y^̥&^i}6gw5+vjt+ -S]u2&\Xכõi24sVgPN釋nɶZriq[)1/|,U
V(٪4j7@},Q T;q7n6K`{8A]'LWVSmRbc>+LvfA۩]3mze5bgj0MG48'%blU}֢V/CĜ]ziݣnWIIf[謿b <}=x{jWBuj|V͝;8+rzV쫞Vf8}U)0,0] -
~m3/DSDE7W2CTֺ(:\*JQU"4~"Ue˖eQqxHH`[0|!WyWEށ=0ۉH{^ST&
; --V,4:uu^>GlV[hʬ)L>EsmŜj,S\aE'eE34DI,bB -CLARlI9#2IŀyUzH:r -,%mK㞨ÈMR9>
ړ1&CBǻbJYCV -L
$['b -1wu(3_- -)+vRzm5=A:?6ϑ=Zf7L9</<7Vli\z,AP) 47e'r9Ύ@.6RYAX茔)9qKE -y<7xo
RNcɺ.:]ZEuϻӬtXA9?y2$w!V 07\L?)TTj`<
Stn*p3S\T"
LSz۩y{m"~n؉,9< -Y2d'.*c'f'B%,$:|{ڐ"zJWFY]WKZ(fCtkW,\5NR㩊fUBІmyzYX~,t_h'x1Rዝ8iW)83Wct̔ -Hc{,BiquwRV(;S ^oػgZ
שl~4o9]oum/9`qjg8b$'c -ξyf>1<"ƤVXvۆJ#cRl30&V]|zm6
,Ukq;$@PjB{eJ/=rA1x[9
[Ҹ8o
*)ĘT[jDeq*1{1Nh;Āi<i=qwOsZ2Qٛ=8lm,U -(3>;}ټҫ{н,=f`AUMO<ydD"Gaha_Z8PW3i -Mu2R6Cҵ;a@RHOO2`L7OcZWߢ(-d.6D,/Q}O?M(D&1)K": X)!ˎY02T*Pm2JL(
a""l+;k<O<4o+"zj6ɷof] -"w?Ҫ|^aE${0ך땟V+%n5B$wż,HƄqn
P!/_JqaJ<v,cAN>B#tco]}"쓟#S@hUס#!G6Do3͑O{<G+-eh:=P7+۸nD#JsbMzTZo>mרڪ 3/
FR}֪e31#n2Id-I -,GTt$JX4}1wdf߱q${ji` C-!~^
Zf:UY# -$ǻWU&XoSkmPKѐ,/LOkqbpL5ywmk[pƾĨe6PV]
R
Vzwh~soy%&|=DX1,m7yWMw=l[2JaN@gtZ:KX(^CxneJ/Ntn*_V,[ f+Vs/л}[?Sh:#w[t3mLނAhZ!|v7+ez~-~Y=>ʂRBL]2_;<)Aʎ*#[><@$oy_ѕ!QZ
Da -O[Ɏǿ*,Kȶ
RPXC\4Cɮ8HyN߭-NdB -P֫ERQ\ϟV0fPSPtbyW^RlUMrL:@j
<&*PS9ZC -iTEi@j?&z,j(ݎ`5T$hKyQnj_L&A\I5K;}ä}!BLqܬ5O=7ܚOM̀k|/VV?SNz
Dh{%mةx:Mbuo욦$̸N_@ɲ$k,xo'Ӛݲ0vM'!u<+ -;P*r]6$ 5Ee: %Eb6j0f<dGҔ$σ)+JzAG@*Yoٜs2M|Bʡ@pihԕbR6A~VI[o3sz
5F&",ʒ}mh$VNuEv5?{MÀYM -h-BÄZt֏żf$fRAX|X8Y.sc;N°j<H#D?Ɔqa@}I -≯V<Ǭ
wz+tVmի!Y7w2T)xB=E%tMO:w4UlZP"9Ie )pBkå(bh5lZaA -EGD 6^c'0;R=7W"܅Ƨv5 -۽`䎭AÂ4 -@{#fyoL s58 ӯvgӴst12zat^J8PA}J0^2dHԬ -=t=t:~ԗ4:"Wɧ;G>U5)kɣ@oJp_6lb -MLKa^
ӓ28E[Z"&=ϵ-f艰vZ[>Ԟ |=5_s3bйKh.'̬ivwOVQ6M:j̩ؓ>!M7d6Cp`nw7mlJq锦M@CdyGq
O^9kMy5{:h=RTRצ
u98 ;M6ѩB9
*}xxqT!(z[/
+ Μ+ ZhG@ -v -lQ8tommfAI uTw0&q%fXL9898&`9a:ܭY _'ZYu0=\("u[k+wm_^ -bﯓJ冢e,AK-u5Ni4V@J5
d<uzdy8̋(bƐ=gTک6MR(q<
RuJ!BfBY[N%T^G[B^R>X%Z܊͎QYCIi~× -u`{.iy^Y, -ٽ~ӺzaQpEOʽc6fxQ-RڵvI=*Jnwxo@M#osQV,ćУƢK㨯[ )l^7BRpeH.o]RO7#Y,ίOU|G:Kktt{c`^8`w[}uҶ6Myz90MmuBmȐ"MCܻ9W֣֪ռT/$<),aceC[/k@%J0Jv(VVS^+pyvJZAR_/D
Egప{uоonOnz,_ߘDx*D<*
cCӻPxjy-D<zD<+J2OB%2%z%MD<a_"3OcG!u2lD}gPLc!ID<D<zovZx(LD<>jBCxC$9=w!iDdZR͓^`V%ⱀD<f"QxDRxR@<')X KJm5xkpY3fXŖ|KjL<jkO7k2L&k8+53 -} '"sH<U$^#xZ|x?H;! PϜ{#o̜V5X"UG*?#x~x#ϞЌij"}H<Ҫ$j\H<T$c$I/H<% -?H<ĂCH< _$ԊēRx$}x
HySF}oVh V$$C3[ģסe$^2"$Ȋ\?H<,$JAaēo!:ًC dFR @+H<~x -.ќx,/) @ -"pυJB%ѐxăARx(JH< V$^"xRH<jkǼJF%ՑxUGS`Au$V2/SAFEad$$E)~]x$ֱ$icz-H<j_$ԊēRx$ĊC)H<,H<
H)cTkE"dEIH< -ۨ5!8 OV"U jAC $m3CH<O"+O߾"x[$}E"TE鸊\x?H<Qx[Ha[x2H<U$V2oģp%!T{E{T$8˘ P -o@IH<)'u -OE% %ⱃ+D<m*o+e Xj(,DGz!cBMg"LQ旈F&iND<LD<B3%L%QfPx(!Q$RxR -OgKLă$WxܘWhd,D<h"ugJ&q&ѠL
jXxfKӦ:|LKJ"m5xwLă!iD<x*O%_"JÑ:D<?J&qćGAJ!Vx}xROB%fKC-D<D<>C/(D<"2oAn/LӐxL-xU"Ge"^RoAQMD<~ɇZxR*OʗG2vz(x("JK3"qr*Dd"Vg!xt~"ABóCS3"V2oFijj"aR!Ql\x"^BÅ;8CӐWx)"V2oA;QxzD<BS -Og~xT"*0B3LJ&mՉx\e""JF#?%,D"""a!iĭD<]/u
à -Oq -ģ.[_+_Txx_ÓRyxxx -P><<G{|yx|Ul Si(<<]/OO\Qyx}yxR+O)嗇7JG% -o5S/kQ=Spx
pZpx߁8g_N`~px/ÓRqx(jOHU+4WR
\~qxJqxNC8<Oׯ8Ͽ^Tfu G0^ -f΅,Y/8*8<=vG3'DfPG
Pgjl+<<Tm/<<ŀ -O1/C둸_<<m<<haw^_)(<<)ãP>藇_r#yx<ƿ<<Ow~xx<TD)u.PPUmԅ7<<OGI쇇yxggEgW+|yx<tꇇGGWQu|DЂzÀ艇g#xUxxd}QDEhJ{ -c?HΗ>.<<='բWHdPTCZxx_Z<<X|ه~Sڤn<< -yxpC2W#Wxxd2OVB/aYA)ѣyx -VTN<<}nHZ|xx=L<<}оxxgkUxx\`~yxc@?~FL5s,<N<<}/T])Wyx$~yx(dΫ<<<<C G/Ƃ3$]QC,8<OBgGİ< -OCWijmuFãM ãk*FSO -Cqp[8<)4+-)8<Tnׅã%@Qޔqxjmpt_*S(qxW8<8<:1 -f_^85GA)8<v #Wpx]tRHPqx~^UyJ4)8<Ԃc]Ypx(ۂS:|qx+BãC-8<)'WpxOJI8<-q8<ze3|-Oa
Ypxlo?8<gS57 -
:ix3
ƃBS燆Q.4<[Bhxc[%#OM4<H>4<LÓPhx>4<M -
w4<Ŵ*
l懆gaLã;,4e4<4<+
O)J3/
̙GF74<
.B~hx4<Keg~hxJU -7'9~hx<_gf݅/RixzhxixJ -V B#Q_hxtޗ7*2
O:hE-T/
OjѢUhx(4<陆g9LãG嗆]hx3
O
oa
OTix_4<rhO>OC-sc~axJ`wH|`xw/ÃQ`x0<?*OGS0A/Ai-Xaxz__TmYGQ3FG)G)CQaxޠGm -ãZP`x(gÓRaxΖ_ޘQR`x0<TiPax*0<ϗ(y),<)_jaȠ{&_^n<86N/)`0VQ5Ifi-,y<?,<,YxRXxR,H*,,<)_Ď1gm!2O -$,Qx8( -'{%& -O |Px -GAсAÉ GcQPx}QxL?eJAq' -ϲjEuj~QxW߂£?C-(<££?*h*(<2>[RQxߛ!%A8|QxG$5$|QxڷUVGOsAQ[Px~|Qx'|Qxނ^Px +4O=:U/Cyq%[7&NMSسunTCc'E#h `S.mrIPe良*xX'uJ롔../93xXm~ITGĴM̀3vÚWWKz^"k^gx J+҇_fԫ9XR(B1S(-]h_TT{ yZj>H&[=Uk*FbIѩQ +v})oVR_kk_ڹS*]v?GRl;q4>ngCzfkb!aVi=/0@O/8.?aZDp!0UOC.22R_"[RzN-
,Sla*1eDAh +uQH5GR.S+'t#0WaCsDVnQ2i1:cېNC|Gʘ.O,֩-nE:۔})ax(+ifO7FEBD/>ue+@\Th&'<$p,3_#ө謽cbyFS,~XS"(ml@.TIFB?oKj6O!U~C%
:1M.^{HUS1z(gƪP8 xdq[TaKMZlδjnWV<8LA»8eL>v7) +kVetiJ[Π.ݒm'%NⶎSc_Xq+Bj=QUuind)qe/8Y<֭Aw/,nJ=l( +OK&X)qcNlQï6()|}V&cSg +˞kn9amohpNJrت>%E^ +4}9wAX]WGܮط:YxzTgi +%KծH>L,%;wvq(V
8ޭW=n'q>S`XVra%Ie9 +D)-ﻙ'(b'`!C{`>:>Mv +:7,E\]F͎YJD~z&Il|ɱhGtz7 +1T*2qHmt{[Eݷ7-TǍ^Kta.mZ]܀ +T-F64quYb~JYՀ,Ef)D@[PXz,P_RmYUR70ɱTfv9{b^aӪȀ) +(BK}|ڰ;LvDCA1es5Y)jJ9jھRgu&hzk`tI
+۪8jlGVϓjmHvkqfGFVJ!}1nt<$8SKQcW@R~fҟm٬:\ s[0Ӱ+8<q^ qG.i\od4ރ,ٵL<ubt?0}~ +Wž.+[HnϳbDLXrjI4.$a%
ꖔRbT:ʊi+1$j-Ӡ=Qk2+t+0nA`0@K2O/y+ CyW2:բ"b'u]QcsLOo~XQaqÔRscŶJ_ƥ>y1=MxS|R-tObl#H{R*HQCY{ +;1[?暬ψbۥPT;͚[Jhˎ<~ӞG)Nris]B\~O[i +Zp1E[Rw*=3?N,*p1šQئm^-.r熋ϒS?ɣp%OvB@<vR;nvB/l1)Q"Bw +.
) MzhOudb6DN|F|UC$U>hV]%-mH1kچ='rMG~ʼnv(!؉vRC;^;s5)NL؝<KDza(h|1\w}7-%`lB}
_j|?U~ʖJL#yL~xVRc^!xK +PanvCA.Ir0ߝ7k-b9aLaem*10&V:3cRmixצipR%C$I +)ZlKuL#ZIgõE;ϭV]}"IcHxC큠ӒjNQj3?%$M>6^'CKя0T)-#o?,`1T-];S(j.ĈZ$ ̄}J4u-ڎb +jNiCIJosڄ@dRT-ҩR_ #Ceab +/6(ӯd/JTr&"O;۫YB[V#XkC"N-6i#|j֥)r(%XYD2S^ ^iR^c{y D2}7\JdLP.U;
ă.Hn2+D\< *I=.O,>82A]uZ?rdsJtZ6W +ΣȀ}^^^uAZp3HF=4G-&ل/ Gù>v +,;`$g*Z0:&tJrrDEGbANMjAsqG6 \iF{I̮F :E۠e|oSe~<lE3)S +Ѥ<O'ǻ#Փ+OPMrPyUP`e~n1ḛ5T
7.Twqvqfͼ]g렎?@]6X\l3
EPXQjՐ `E wg`:GWRhr۳Kfp!wW%[K<
`&
tH(3tվ5;VD7Ơukuβ`b 1wՉ3Fa3A9|-R'inw^Z1Rs,(%߁+#5Ódx2RO哙S +|Ui `&5H+~!V\դ(Ǥ|oQjRҎ/<%5FY@5QәjbQς
VLLAVep:醞6d¸.1T7L!~OG-$~ATZ4sí̧YB[9=oe53UP {MTWb>߆gIʩT)ơ^ƮiJI5 d͜,Ob鋺"v2-ˮ
c`t2b:_dzR
)9}jmnZUrիL#e >#FyW)dJ +PiP2@xPq{Glp4ӘJ7"C2lY O`4ݩhze^OrjcIi݂EIqƢOSz6&))-%~?+5X!1<O&9 mٽ}P@xFܧY-fW{ה(uÔ8]ݯ6MP0fRiD!p&ssNDCzXuHVFɗqoJ啡&9bH>P;"*Y5<Jg +//!*#wM*7J@s x,(|t?v'ה{GidI_}`ѕxcxMOcx)kSY}-kS@"lxRcyZTQR$+FkxSkFyCFIx$MyO<BRAT<~TҝFɘ͉<(+'.**hF]) %knX]~6<P#jPmmB[Po--,6zfO}`TWiWXS4Xt2@-4LHʭ~NgxZkF[Kb&.X]Z4ȇ2<,#A/Ki1Bcl'oԗ + )I7nJYMIAH M96z<UmW-R4֨W]̟1:njO`RpSnCaS:<\VZ7ۊt߲-<ӓzo^96y{)ъĶ˿l(fYi*0(3'Lv| W-f>\H_dK:/v#h9X)9ex}YvL&mzRU;K +ؔZUW|Vwu-('ݧ.6Tu
F5dUb
S^kMaB~+oOHkofހO(<y2ڳkVZtZG +?b#Yk$K=VAC4Fz-(*&Z >Pd[iĶAm6w^p6HcHlvb)Om0sav(Ħ5%=bMoR;oijk,;
e; j3`{@q'N=J'huf\Ju#pgQ9+Cl(4STB'pT}M!YUɦE!TVP'ܯ=\.V85T `x{4oD4dеrT^AhwKERV<6ۍfjh%jMt.,; {.S8]RgԆ##[|es$s1+.瑑ތF[62óRH>li{gUQqbgBqCw}M^xtb +ۭUrq۴P=v߫.߈aK츎6_be/b:M*{9Tfˍa>~shgM{"-Fb18D/>J<jApi<T]n1|Er({:J]f;C,PtI +a5qRJ1pP;#zӌ>O|5+", []h|jWcF4,H +4^Ys*=02lt^"ns;3ey69R'*)9(N`jE:*$$-}NW{OڒKUl|n,.Z +N}/!Í9ERe(C})6=*
XtS& +UdF@Ta}K>7ScEfm̭Y KSR:MNvl&cv>v u[| +CwCG}I#yu-|ȾsDkcPUYZ<
漭eAp*VPù} >M'_`pRR*.ZGD4^oQ
gљEx >=۶ +PyJ0W9j~Iym6Q +#©wU"/eek9Ey(y-+`:͌䱜ux_?bT|O.:H7PxRTCSbe`NSL۶s +%~VmG$w)jjil~YHi.?BUw\?āR*9Y1t%ɫwӎ5OkB5$t+ۊ}UzU8V+, R8k>H0=T<J]F*-eO)h?'hFN;6An|%.*Ó +fnGr$ +>|fV\eC]i7FWd}'oTR/sVg__1 *ޫjؗ5q;WhGd+sVڒoaZ;})`S!
Ĵ;=)S+_Qݭ%b\[oh6`CS0<<,X +nU!(050Y)އ(&㚜ysR6oFY2tR16dt6wbZyU@Ppӝ1_0tq{sZ!iMvHͩ|VTSzǷKʓOsϽ&c?f3! +_e*:7on{5AVLrK,GPUD$?pOB(J֢cm&u#[L.Zvi)aQ^ +m,Q>Z>E[{lzx#$QWRF%t3ZTULw/i>In@w8Hw^8f
K+u)v!Y'
,mjX!kӮ{!H)*S4nV'ּQ/. +=ν3ye=jZLUBPos6va[&0T4xj$k'Nzhi5Ehg$1ax!}BPtYW7+XvnǢ5YK/BģҰ:V?D<BӪKSP +ώD<>-$T"-xZW"J%1CK4v"^'KщxD<`"JciMģaxrDf/D>t9L ~s"JJ%Չx*<l_"LIk&H4/x('ēZxR*OQ2U+@$ V]x +@5lUl)xIɷdģ0tL&kVx2P30^xϑxR*=SIQE5e렼 7;i[/[Ux3g7n|! H<{xzO*ާ#A6ɅSmNE=A.H<SC,H<ēEIH<)GMڀ7e$Vo5OjEq\AI 0/H<H<zx_Fu)N+/WAiHNēQB$6H<lH<Oi4-SI x[
$^_@1|xh*\H$$^
OH<Xp$~+2OjEu 2'ģ p+Hd$^RPxZ}x4$^}Am%#H<dT$vHNo@F-H<M_$GmAaA⑦)H<ׂӬEIH<)7pAIH<C :ɒӀTxߑ2K|xʹV$j*ON_$Ԋ P + H<m+OYoxX$;}Af?#P>H<ԌC(H</O?"+o+ @)QxJixJW$*Oj_$H< +WO_$GE⍳ P $ԊēRxRH<\wAٳSxA!<#@X[=ӗ"XU$KJBm5x05 +Ǡ"^l$gFm5xģ{ <g~F?H< +OJEI"z$ijc~x +V$\*OD_$"xIu$xCu'D<H!I)D<~x&f""!ibD<MLK[D6
D< +oPK4^T"0+_";B6RBB/xԯ"8o,t&D<e~xkd"JăKC,D<S2ϔ_"eRx("E"'$|xdD<HrǍzzFBc!QPxd"g
D< +OgVhD<mj*wD$"VqwD<`"Jӊd_%ID< +ӌKēZxd"G|x">mGЇ'$T"j־D<BL?D<BSN!-!D얉x1D<
)DЂ
\%xz*.^&%%DA|x'|x$ +o!ID<? z'GBJ&m5x2OOGW!4-D<<[>D<>3i!m%jD<&"&u"ƅI]!/+D<\ +ϼ33?D<
yGr!m%D<Kc.D<*o+4GY)Yx_"O]!Q[x"JC)D<}D<)ևVx5Dd"V'/Jӣ% D<)KēZx+OOe"BU?zxۓxIIDOJH"!"a\2!Ɱ,D<*^Dl"I$e6/"B!i%aQ!Y=vKD<DjoD<?D<
G;o!m%D<=M'C#A_xVU"@t旈M%/ +Oǽ,@<)GH#TxT s/O +ēSC) +xT B#_ ēf ē(@<+ +ÓZyx.ϗW(<<`<<5VӵJ<>)t<<xۗ'+ϜR~yxxJh)qx$H +O_]38<V3ǸPqxcpxy*8+O7b8<)JI4TnPY/O{1-g78<*C(8<N8<}OEeFXϙpxZ e*ah\8<>˂9r)Ypxs>8<-*Oӳ`w4xBdpx +UOOXF]xxp><<}#Txx~xxPxxiPxxV$xxv2Oʗ/Zyx*cQ<oNX~xx~QxxtxjQG-xxЉ<<HxxfIyx=WAg%ATD;.<<fPyx|yx +CSxxR-z<<DE5 ӌUyxʗ}xx9g~?<<M*Oã7$*x<<RzG./`e@(*t9d_=: +?e0^wÓBLEq]8<zXdM&<Aب:yóNãlVuaKpxZ}qx$cm`.8<r~g^_A(5(8<U^D3RC-8<֕ᱸ-8<S+Oٸ(D(8<Jn>8<ԂÓRpx>8< +
OI/
B[ASKS4<.Μixd +
OKãhB*4<퇆g9LóZq懆dZѡPhxc}2
o㇆GM)qfa֚ix+]hx"7G`ᑠ-4<ҬE/QixJ}ix"t3
V
:2
OJIf-ZK#ixs4<zT~ixمGN={AoK#hxz+
Oc49g<vqWpAi(A0<hy|ax;+`ւ1.Kц)Uax* +7c`x2|`x2
zۆ0<>0<
R`xv/+0<)7ln.aPax*O5l_ 2 +Xpz| +eJaY,<*ooeccSTk[
cu\dn2XXx('4X,eM3o1p2/]K+D + DQXxޭJK
FM\`Ma5BPX9 +ORBzh߽PxRWBiat+ +پXpjAI( +`jA,˝Qx +V^E-(<>(<ԂC)(< +A>(<2 +#A)PPx%R!* + + +OZPxDR3 +O}[Ei]Qx~Qx4źZPxR* +OG[~A-(GX,(<m(q*+ +o+TJ:>(<m{+ +:ƌ3TG + +o\ѺQxRPxR(<67oF)PQxII"[
dEZ((<bnK(<`0gѻ6SLd`#J\Px + +/ +1hw,(<)_a܌C(<;)h)(@oۚ(<-* +U2 +_0)(<b + +ڙ +lj + +EY@BQPPx/ +2 +OܙQxD + +,JC-(<o(<ݐ[JAᙚQx +ψnI g{DAQXPxZ~Qxۺa(<S~PxK\(<j + + +*53 +tAm%(<uAq>(<%hREQGAJFI* +OJEItee62 +Ϟ_* +OW +߂QxK](<ӃEᑲ((<* +o)gjFٮ,0T^Qx=! +* +?τûRPx|Px}̊£lQxԕ^R +o'U^(<* + +35P + +~/ +MaA)(dV9dl?(<GAᙫrFE)(<h +TPQx[)#AWegLGSAATFuA+(<T(<S3 +ϔ3%sE$Hg
(RPxtNr%T~W +`964F=?(<R - -ς6AᩂQxI +OJE%%L(<,8 -qӶc(<~QxIu?;ZPx('cXPx+ -k -ofb -?#Qx[(:ʌAY-|F+(<m(<$* -h@F
6y(<nH3 -vǂE(<³#~Qx02 -V漭)]%z - ̦&8_ $ + +*c{?(<SwA/^Aq9MA
N(<m(<!AaAgA7TCqogKtQx 4 -Ϣ(<ԂC)(</ -;
(G<FQPxVߑQx -PxGUq=3ą£)R3LV2 -o[ZRPx&UuTjAd/ -OT/ -@WFYf#9Eᩊt5* -/) TGQ[Pxh-(< -o+ԅ_(<=_)RPxf2 -C -OEףbrL(<; -x)(<)Gm]AqǬ(< +o+@i1RQx8>)(<sۘ[b( 6 +ϖ 2' -O/ -6/G]YA%%j(<}REu|Qx|£bP>(<S3 -GqJFm5PxCF~*g_^Î -OU2Pxz +W%3 +O +o +\Px[( +FF,(<tF)EA+(<35B-(<w+(<)AaڒQxljdA*VV +og1ÌAQx|f2 +ogJq³F_O]AQRPx~QxF_I(< +p)(<# +[BAᙚQxԡQ +ϺP3 +ӲÏI t\AY w[}Hx +WV2 /N£§iBRIx(j&Qj + B£(HxIuX )%QjVHxW,$< OIx2 o) ioUHx02 t$<S~Ix[
ΌC£W4UW]y1GCdRHx +U*$< + OIB[B&-1HxXN£C£*t+ 7$݊e:inI1L$E>Fii6>Ce{1b7ŶSkvp_hf[۪i1pnrz+vb~^ԡ]vk}<N٠HOZ4;,
¾ͲӞ@Fi4sO1f"ivwI9v;vjeq!vɺ8? a!ѾHx: +zfz5.Կ[rtRVFpΛD&]>,]/k)&}@'uǻtgF5G@'ol&еAmYt
ÆkT1ĖkwG.J(0./.l͟K.hsd%H9egolʞS!ҔNtMH<'v;'hHN[HԹ%t<fΒM9}\-C +8-:RggFm5r.B)vwYr23k|6Z\BEy(}Mc8mD<w夼rNYN=5=-Ư1Nc6, +<6 +`YIN۟^pFh
ݮYaόl8o'6\'{ʆS^{ņh8Id8̌h +Te.?.Kip(}63OΥ0q03xIkAͯv.r7<pp0.NFGT{#ߣi$Wpz,P:`Rp$]X8XDd,g&CQq8ӗ4$sxy(o5HBo897"pA8 +g9T8
d77µ7RAs-KN#t;ٚv< Gpv#@aBb +pzO+}'o(>Տ +V +AϢ1%*yʔ +kTFӳdOX)఼҆^#(MpI"cᴆ9 Nߟ}Eʝ*\sl(KC;Ns? 'qp+
eQ[ypZ9uW(MYYpj!r*1+ N}7N:=C psC8Ξ] +(5e(7[Ez}ߴ02o6٬)e(<o
t6MIwx߱pR- +E +M\7ӺΨtyc7->f@q'wA`9nzws*K&%-G'vD}|9m.솝n>y6M
YgkF+MPS1nwEB)O_Ai#n*G;7MpێtS×VtS}ĂipawPfEucF3S&Po wQ݄'n +<QT7VriYnWЂ56@饦$ԞBɩËd禞X +3M=*[0Qe!M +n2@M#myܦ3-%6UXz1n[m%ݹmw6WS4 +Sж3eKvR*hujŔb9m'zGNeȆW?VG*&c}_k3mxcqT1/;*GFqdQ$6_6u[ע! + +aր5*/cz[P5/KdX3U5sH:+
X+7LNEo9X06)Mu:ڻaldgbI^f5/{ؤxhsHZ<Z[pa9c)3,6U
59d]c~)n``bSffF^J8M/gf5o +ch8SQBcjQIU86/(7plnp
TTj
T(DDݔilE$06*I^alʥ=]bckdwFo˛ݩQđi^Fq%&ֈal:5r1%L0lcSёcSީXL5Ю06?40hlM7|Ʀ_8ڨRfhl6͔alcCe06)džIck7XM/}VQiT'AOHzal[E7c0`-IcӸ%cSQMGSo0]4̄bcylK4,`lmwĆJ8;PlR6$fIFgڤE6
%>}*?hl*?T"77,ZgZĺ^Ʀg0pƺ>ieflklS4(Jc|QոCU|،+ޕF⠍McLxƆ Q346*yK2
pс@c61AckWg7ֈ=mkwp\46}[r{榱ZS[pl +-uFK- +,$Rņ}ffi|h",6< '"obC9|C̖J3COl,PQؤwBQ'Y,>IlIuTᣃؔxO 66Ķ[L5@lƟ@l`ȾAlUĆZ@l(Fw7
Jf 6JĦ$v( 6,w`a$6
HlSe9HlDL$gX [1:}ƔȤ$6W*UHlR b@ݬPM)<njmBbmF8^3ޙĆ*Hl(,yV9ؔ!6Z8DҴmh6 +/y(OGHư5y:0o +X5KFu&æ +7 +¦00a#8LU@Q +6"}T +js8RO[ia#K\"8l(ÑnD 6uAbSײFAb{=H؆a;.(l`qzCb0ilwSӫNak5k1}
ŕ 6pOڱ{)k"&/wyjD)i]uMDH
0D3sMazUR"}\IR{f=`nˣ&)vm=~g3wvAP*hmxn
i֢Da;*c&q-VNf|dRX4Qxq߇H[M٫W Vv汙j[hЩjؼ"3 T#T#i +C'J<vCiS
FƟL(5H{: +1Ҋ3E͵P'hj;G +"[yͤp.
&iDa=͓y +ɓr͎ x؈s?օt:~|n{j4E:kӆ"2jPLmTTBg:5(5 jwˏ P.ψ0䌎۬w({6PV;SgJ[dAK^05P2nӮ>Ԛ!zhsfdj@d05*KIDfX TSq8SMņWw%xhx1&q]eo^%Z3Rv&6{*`>t*>uv=']m?7yU+*ѽ(;R +dpϕJ-TrRwh_r|~mSfS嘵sRgk<=֖z94kBRo +̆bW<)@i;)_$K59DYP ~0d%.P90lpn0~7
3@l<xo +ڊ2YSs+)W1mG=p'v<6Ac^6^y<: ++ +Rݛu@ +?i^c8j2jJU}o3:ߗl0ڒz[bnqӡ5STG~u +nR$%S7Wҍ"t5dH'܈x%'7^Tp=~(f2;SIG7ξIymaG@6'Xuޒb?EDuX_Rcے
60SumYT:u]}?.J?% ]6N =|Ekj9N#0qTh:U6]H4Q50T*b'T@XiI~[/o1X +ó['ٝլY7ﺎPP$z+z)c<
@?nC2.cUZApk&gT=+kL
0F pC'.8yZp3A+ݒ|\|jV͡h=Rg&W8J/
z!sd:UiEێpJ>uhmӻ~ܒnP-Ooْ(oWgS?ȦN8s2jfRc!CwVatK_]R(2my>T-яoqCo=`= +)t2l1=(YS度iؕ?gֿ-oԁ+7[)qz*e.EpD[6ڣ>̠VeQTĕ=qq6e~5Yf`)DLzT"\YUХ(@yPS1өH67<eM"*+XR{>LeIIv!IgE- +wQƉ}QݪZ`ZқL+TwKѾ+p)bRd77 MhS +l{60fQo-DX*].7(LITѣVURڜ
ц:Mag˔b?Y( +WQL>o#懲rPwlfk.PnCMg-xo=WLށav">c +ؤ>fRYZI}}[̵)io9nCJhf2dSIi(mFuӮr*t(~Q/`mcAB,W1tM*'ˁp]*
c3q`I%"@ȫw{Ww^OR31ЦXGpeXfZCJr A!Z~Nc)&U&vK)ƱyPol7ԝ#y8~#7X v7`\M5^ϒc +eV +)P<`͢R\%{Uj՟aM +'mcˊ57g&{1D +M;[Ri8D+n$) +#j D}J%:4ʃk@;w8;/ +~rqtP|n%]K0/{)'ծbD8JžvkCE -\~QxɔQx<@ePS9IEQ35L(<S~QxZ2WJB -4xFрRPxX>|Px.GhA$A
X2 -OJEᱻAXPxE -OcDAs£+T^R -ԌÂp^2*(1 -ZQx8uި/ -OjA|PxZQxVjAqfA~CE_*(< -o(Qx(<MBQx[
#/ -3Qx[H(% -Oᭌ+?PxmlIPx,CQx -P>(<}|EYB=v
:Ljlk -˂Og_#X[Px[(<S3 -*Ԃ³p/ -NRPx-PPxANbEm%Px3(<;GgFm!z(<kE(gC((<P -'3/ -O,h(%GjA5^((<-?(<x -Ϝ2 -O!/ -OOpGՇx%!m%$<*| - !/$<)!fUHxp($< - /)T'ፕ -"_f8%2KCy*RHx[
V)XA OkJ3嗄 XHxy>$<zE - OSu%ѕ!iSIx4~HxL& \%bK£-$%de)$<>$<2 Ow!3 8 HݭXC&D -Db[cFos>Tp#v\l;Fm'5f@a5>鼭*6,NnOYX;m!RZQa'Eʸߕh-w;tܑ
$kE~Y0;*{,;HdNZ0a&6ayW~?c'oc[awb7q>q>;vl틄`B-qDK\bgu4wPn+!ގZQvXdo]Bm~5^lj
6-& -kj#9
V2z -YIOd"е}"5b}OZ -5fBsʜ*Zѧ%d1$é$8`0-juLn .E),f3'[Ėd6zDV~r*!oj`W1r6\
r1`4N8XSY`9Ӷp5w'a I}I,Kd9zi#0 -7=,x[r1b>bȧ*ZNߺh9F7Z-G}͖# -WfˡDl9t~)r纝-oΖb}fVu6|)l9Ʋ3jy$V# -.EՔ=OaMCۼŖKJbm5r)9YrzXN,zfV-B/dbǟ-,9ʰvgU*d9\Rd9&ӡ_LA}7YN{/d9S")l~q4jCQrn>;r[`:Xu|')"XYΦ=}NËsF˙Ma8QC-gr-WUBm%h[;@RSFqG.Q]$oYp@g3Z'g67qjh9f{Ǎǂ$-2,5rMu5ZLrM0V6k; - r]V rR~U9әr6s&LC[rz6ANe.rj~td҂ Lj\~pG -@%RD( -3ሗpj)*N! {Ãd_pdJWXX8=*Q ,Iy۩r, -N*U(GM̀EDQJ*pVjoX8.X8} +.:JC2N -cpS8J@v}s*\{#T8w۲L`$z?0B+AYir? -g=&$pwvSpopԉ,*SiLPfAk4={>N(0"mxK5Ǚ+2Nk]`Y-,^_|^dNIE>džQ134?SpG' -"~;w(?8i, -
x6M -qmL+wm:dRrtbGM>ϗ",nIx[ngcԐunth]B<uvw[.8rrqs#T -8L70|iL7~qJ,vukq:YT7j43խa58pM8zP'Aun,{\6v --nZc ^jJO2M):=H&xnꉥp1aۃ Um~riQ&qy0U@n4[r ==<fXq[˱2HO3@^' -7YMBM,Q^ᗹiݞ9m;T__C1X
{5[/)CkDp۔<F'+m:RAnSe]6[ҝ6}לms:M0mm;[fh9$!m'YVL)-Ùvbj7I!xTϊl {au "XYm28ݷ5QX&x9چ8MΩrdtGM"-iZQAhSe{-J10Ц?!X
<)ulwEiIj$lj9;je;y̷CvGgczxbVvly PyVprec3gԹil -1X8H:S4A8Li.!)hlƂf+cwMcRՙpܦzT\4|R-4u6gZa*Ҁf
[Z065 -_MV5Se[3DoҀrC_TcBQ$]ؚyFx&e[7M<ɣJa5
s1><SbSePCfu=KiRj -\,,6effT~f[#j9f03+46 [5c?/z2; -~F - A%iIFp@u\^BDD -M&<`l\DLcC4YNƦ\U(0Hvz`fiٝEalPbal{Ʀ3 h/[/Sc͖ Y06Y06[:
cәOX3֔{'hlk*%o֟(8mLV[06T.cr}l+0fO}ڈuIge6~;oAurT7FU$]QpCx*06
֒06;^206talP:ckE`l{s˒\=Aú1`_H:]JmݖF&$[ i~{EDfĬM @^cWͿfͪ<a|L~#m[B
Eb꣒P gMgCr,q"xL7?炱ħOS#U_tM%꠱@46;n碱)ofEƆkd$il;ܮIcŦ/ᤱ*hlZx'hlJc36/S}:*J
mZf\46l4m_46dil؞j -U<Ac$/4h4v{eIq&3hl&vIcӅZ%hl=ԲڂcShS86Z -l86c9]F346Ly-%Ԍ`:E5F5C'_intalR-Nl06|
vۤ&86KvzM{'p<6 MQfi`kdGa<6]A᱙mj[P#ylԭz@6</؉l
GiBu=w`.i62ٴI04|_@edS](dt5^F0;w$[7G)!ka`dӚz-ɦMd昌dp"]>DM |dU礱)`?3b#ڟvCkv'jJڝņU`;B&u',6u -
84XEc$5<=z$+/Q6{8AcVx$1>$62i4
eEbLŸ -M*A H<%R-
b[SHl2ݰM]h\3'kF;PYC
pbŜ6*g3DF+0 -X98l
j*acg^[7ETrJ䰡b6)<t&ŋ2&vac/ZpP6TY6=83#:NaSp*7)d -x -Nq8So%d[R<@1u֨ KȀL+#;θcZs^5n/p8 l -h/6Ô^a#+G6GQ#`İ5LF6%Æ2F -bSzP$6}-k$X3E6~/tAa;@؎Hs`;؈:}(7sc毑oį)5 -v^f5 !5Q&kӫ5ՐZH56vv_5Ik(8ly;֞aFp?
,WY@k sl`N͐5&bM/vQ67kմr2-%Ֆ|JǦpp%Ƌ>Dj%j^]nOڽ`{7͌US.BNUe7aAHgq}LOQ:TO@ԄԖJKtl0Ҕ6dBAQxϏV;S\ۍFs -P{U~B&@m*fVnPSWJ;M.8tNe~PQ#60i-xYgb?&Vzy2:Mt9M#4!q0n\vej,ST<9iKHȴ)1p# LS=[0dA$lδ4Y=Xi|vUTzo6YMP2'mI# ݛoCGڀ3Zy<$ML&6IA>S;iU#^v∴{*7@X=H3s!:B&F`NHkLTі ifg -"o\ -`ܩkP#
2#sMDMVc"ҴzzH6 -mxDgnRy5'A[y -I1 -G[1 Nlњ$+t=\|1%іt4mL3M8vqW-) )t'im
#
ܖֆ7T%M`=$M%
IC !it{px?E?*3%mVI[j@EI>4K: Zy&$MhȐ4x-4">g)f5I:Y@Қ%7͐4f4)4Rc&朒EsPHMJ~JktJa_KSH&"Tx賦՚j -"y0O
Hl<R<}q<GAaS5@ Υa0Ҥ>͑hx9y28 3P{(8.OF2@K3HGgM0L@õgԬ:!TA<LOBPd=3"
[Y<E'`+Hq6:"$> -HO|(UH[Jf%iTP4H#~!%ieĂn Pp4Έ4T;#rs3"i>[)T%%d) TGY -feޡcD笛2"
HҤbi!D;ӛUCJ!nAs4L}ݒHk[ M -{MKo2Mk젣WFS.@^S(\4sM%+q*2mAEۧACцs -M-MSG=AD{f\@??˟sӆDy- &T8q|<)c66珡u!]|d
yZ%T="S")D1O*{<AN
Jn;c6T<3"296J^>
eg<Tg҇2YP'RLM<Ԯ+Ok?8f!⩩3٢P3v;́jͲRQH#Tv\(TSn]qIEZ4>_e̟j܆}@b7g#D M^ -Xin13g6|5jO~]?FWͶ8CaՊ -,vt/9챔B %sR$#ڗ_۔Yz9fƶhm*OOf/ny5Mۺ؝8c -cr{ - RMQF{/T6ltAIlb9fn!Fg[#M̹/*o;[uBTvf419d!hlkӆ7IsP4M2nk(t^0LoE[{LoLVD5"::*??*TBɓaHhAi`HmO* -,Tz2m:L*}aF~cXfڪnFjXr69l'5
A$Ɗ|¢E4>M~_l)2hE!>ΌPܽFO[@`ϾlRּG"G[{)/.D)4P}24/ieAћ4
,P+y!I bmۂ8J_-ը]3MT\M284.3Wb~ـXlma9R\Qhެ;LLE;QOCPmCyPېPS*G}E{9fіsCC?0hMu\)pg1&eLR[;u|%=(2P>hN_Cl4kyR͍(ZyH-3x/Ib0îGٵ4tN~m?&=4;&YԶʇY[JH"k[)Pu#rݖn!jmCJ)PivT9oN¶q CE.^SϨwr1!3\D -'\kx69>X_cj9X6BO
d8,agkp>>DwKrYQV6ڢJɚP_(
4Dt(KҊ>'( -|^)XAfw?Ry$ݠ -A[ ?T*mV;1lJLC?*CN(o&5&2tgFGU%QG>nôM۰(he~,~|뽤PqJ7e۞S^-"0k\4%2:P8s>u窧n\R
Gj=jUfEJٓzm*^懼o_SMNQxZoBAʤI%2ʝUEݡ ]5u3tmc[$Rٳrؙ*(am/hNJI<l-jhHEqKL1Qk<7csmn kU|(;Tb賎Of-Uv~m;Ig,.zuᣮ0/8x -l;6%,4;ɁoI/,Eَ1*F߶M=bحb)-p>2μ7uܸަcN
7- mN%:g-yW3SjV|]X6L.m{m]jΊz"߶TŢHqWgqo.Rb0S@q[Z.Xe˃j.á0On;CN><?8ѷP"[U랔<LUKzx in)v4EL~B wJ_ڞm,q%OÚh+QźR)*z4jJ*@ -v[NېE,Y<z46|iWCms|?UӨX&X⧣DỤ&]ӃJr`;-fgba[!G}}&l7DWyyxxIҙ$P8>q*a
muZa5TZm@(k*U42nRUonm -7q'$OwSEwZ2</6gNmJ(̦tůd_tP㖂FMJMet[vKKa[=h&懓u;u~J)lAߖlTFhfm*L`vRcYOUIN(TͲU ӯ lAYRC8f -Mr
2.N?c)##:S7|~ -+\Zy|
C1324&jc<brVo~XQB -(0EoGȉZٕJ*4uh^=G:v~pvN -, -Y2 -& -+ͭ$Ŭ;3:0+d'F S9h9 -q(`zʼnBUXv-MR&Nwiq!s }6)4p͇Tas\&yl_RӈG^Μ_&Χ<``),"'sROl90`-8)pR{!
E8Fvl, -TF=<SR+ $<*Ox)o E?y[ۡh1r\TT;8-PՈj#am8ǁD"遺1|)/D
i&RPX(>.eDg/=z@!t<=>X]v
# -KZBӎ`8T_{^ji6!fvxnXE>p&"u7_L8Mr[t8JY):h]m2pb1(J@_Ek*Ȫ7+X::v]|Ö?щ@|Y"샨$0#)u;35hmV8p?,^&^w_o<c~j9ߞ
t6h8gUH+/_owU 2H -i~>:Ot7L>`sra* -D/`(g2Z61s=mJnL"P|q|w,ϑ8(DM!;Ӗlcn)#{@Jބ0;u9o`]3a@3kaTtEcTc&WEg}uYZ>VZvjۇèTBlgQN*fXn۩,Ykj -%cAcJQe& -挓rsWjUpMP~|WFI]KE:'&dyUQ@3o"XZ*eIJN%qp(t7'ڪ.ד4Y}TeLVW9Arz٢:43!U4AWrhڀϳjIsWkk8qlbGOk<uȄ"!gq&XrQ9~ehguMNr(*59V -68"ʑe}v?Sh<pC426#gڢ>ZX9}9v;Ӵam6;<:r+LO:U4sxGh潟 =4R[9"1fbYĽ4ð]UE+}3ɽmV<KQP(tOȜEY#+`OL-la} -RNIa9|<k"&ǭ<)'"HU4jF$I(g6@-\vfQr䮎 7T0{F?Wtpj~KebT -4+zk"؟5DqJb6vjjFd/v3)\͉J`Ձ?K/E㶌5@:HP?BlH'GV,kiH%tRb\YkCߌRRw㰵eևLF[!z͐tdnMH -F;Ժ6tl@vxgJIiV'5t0V-,0tJj7~(wD= #(iܠb@m"FV2L|Dҡʡ@0rhԕbƦf/",4DM\1mmJ&: |`h? Rz!-To -$L[Q6<H㣾IfL%O/RKb&.Y;^:zl~;7&mm2+챯+RPPu? )'pIu$ZN8,}sF2AJaI9:+j^EϾLio۷EO0S\փDLЌAT:]9dĭuR"ҌdlwI
2Ժ.ťtA8=IgxtslHTD:JyxHVs%&%|,
8LefTT'sc\H|t#bjyID:E}vx-'DA<xI;#5G[$Bl!wI\Y? -5VUڑDOU AvmV
Q v$%Y7`lmO95AvGM2$nn;U)9te=D+dol1&Q۳N*<RDs9͒|kCeм0AfMTeQfX<ˎq>o,p( ӻ-,&NG{k3^j\(mzJ Eh|uv8v땜T:-!|p%w[!j,,#%jԽh_@y<$eRPOw2?)ł9.ăy>i{4{O*~8Dwo?IMBs;b2p*r -uYM(wqπwxq¼R,O~ؑf>i$TSimU%˷䜴\HZSU]2ÔEwex*NNrD}Rg32ݡ: -'eDݬY2 %+ %t«o*v{'Nw
LGЗj+ͺ˓{Lw&N`s5( U}d:,*E -. 5eaGu(`xX -lCANY"pԄašp4Rl`ޣG)5ӳ[Sp""䬔b -ֿuKuPvJ
<34=ðY-8R}lJsԳ -IeOMt$ -#q[yNξ[* awIyj9u7b7kϲȩjM7q[XW<-/R=V83j3l-ٝS?x1`':
cbu-̈^jo٦4 -NŮdhvX+>{by9Ǩhb!?ANӆm.شu/A{^Ua,~6S6/BQ;*j) -/-Mf=.Ԉg'P:<TH0UΑ?n`1ߙ70Rj^ܲԮdJ -oj@{Ȅ3%ZaQ$]$x7y;7i`BSy
k0 -Ǝ,T;INVvB- -59=NTeB6-#ml߶sԏQ))I"r:hbw7FvhgM~an -6NH<! -~vB-}=˖Rwsd`=uGFi1w~WXo8+)rT\=v=S?0%mPN˴
ctfr/!"p4`ZfU4@}"AN#sWk{ۥ[nDyBI$|TJ{]/eO-)mb
V|heׂ<cѳ9łW026vS%ST.هc6{wE˘KjD'UF'rPnX2:/q*B!Jgl4E9NŴlRVܳB@ߡjn'>tI7>}m9Uag>;I>IZNK)+c8v -=a`%̔ġVTћ<ca^V^<fMډӾޢ -ᘓxR*O -셈KD<pDžLK+a&']xƘݎ[JIjPvF@Pb5-^nY x侰Yq2)
&k+LF.3-BOcᛉZxRJL3oxo{e혵V&C)Ljo&ޮēRxRL<Qs+oss+dQxaC,L<ܯ0V&ēfj(L{zWU'280v#_L<'2v1:שL;L<+Osde}~&TB&0xM&Cy1Z*#&H땉US2 xo)TOI -2:NWb%e1hL<Rfu`xR+e?3_L<סd&^.g2xK
&BeiUfuQW -kWxKL:+Sxxހ+LN7+Vx]]Wן0L/&^Ia+L<ǜx;_L<Rx(/&^'Yxyx2K|%^L<7Z#bIL< -̋g_L<=PG|0x!xZ&cbⱵ/L<g&ʋxǟff&2xK&'֛g,L<o&>saă\xědapSx{&ޮBH)Ld&R'<Uf⩵uT&~/&1/&ja&~_aIL<['ӵU&ijg囉'Va"<3HXIߕx3v1r[JfMu2vX2RǠ2HL[j0APHe1&}1>*L<)ǜb,L<)g|1+Oahf1D&N[j0$Rx6$$JH<3 -~!H%$^[JF-5x;[c}H<|UA&\xj0~#$Q2:x -ooǯ B[T6otAu*Bu N}!ϔ3'"P -V$ēB}V_H.߫+H^ēPx^H<gJFq&ѠZ$^4[x -^xT$^xIIHGD -OOKE}/$~'"T$^' $$Gx۾ͼx]tBIHWxǙgxOB}V7ěb :[F{x+OCJFſ3/@u`z!*3 -n^F%%!Hā㛼x'"xٿx(BIH<]lE;3o8U$R2oijx}x -)W$AӂSLS3#$R2oH<E9H<'"/H<RxB!t+o)7Չ;Qx~4\x - U$RojegEi |#x -O[E)FIH< :E'ӵU$^W RxK
$^/$qo$zwAu^H<G@2hfA骟xG<_Hd$^R(kEu/$iēb@⡼xg$_S"g=xIYH$H -OQxx$^<<K*o;vJ<<*3q?goF'r%xx1Vyx*OJxxRxxdyxDOӠi`<<P1Nwxx;PxxiSyx{ַo:u'Eᡲn
-tYt0gS}L)iy[yx"Tcf'<< -c"jhfH+S!JNq⩚:^ וzȯ@ ~
pM2hb}:'n;x -dxD7 -OJ|$V J}t]Ux"^@NOq@|7OU ~ -S
Sx$2O7+ZxU ^?_ @<}Vu_@<]I*@<75 -S\xne ^@<౪ {uWOa yP ryz ^@3;7+@<JOE7O7Oju<3r 'J'PPDx -x4eU f/ F -Sl"I)\x]OCQU ױ@<RtG+<U+@,@<E*O7&S*xtbi@<B/ -ӥU AhӇx=@ǘ\x"|u8M@<
~{O@<=,3guWb@<M)Lq)Qx:z*NO>c.<ۛXxx(V<<)TӥV|R_Z -UkGRxxxx_<w!̛yxtu/^=Э4yx|8]RrڹN^ʙSo&67Ojש<<Moenv7W!xx=|i'Ok7Jz -ӌTyx$ -V_<ӒgFW02%r^C-<~=_<<Oj)ZyxR<AeQPxxZyx'$xx#]xxR<HI<<-q<$*<<Uxx*OoDS9B<<7:oĂÓpxG-aC*8<P8<)qxR+{Xpx(84l)Wqx;0ߊã:XG]dά8oO7oqx:v
qx/^qx|ᙒqxĉC-8<)'ۧV}qxWQpx;oGA(Pqxv*Outo[4qxK8<FӛZqx4px'$pxtCˠT_qx3_8<gQYpx9pxpx, +.?)[4fO'{W/lmjS|P0LcsqX[PrUrsԏ9)p6 +]8ԽMԆJgH" +e#;6N*))ڕHaOr^
eHl'Y<7kE?yZۡh1r\TT;8-PՈj#am8_gىE
u]cR82ďÓ;VM<Q|\ʈJ_6/{<B^yz|dAU
!G&bn8kK8
Dv~43Ə)lKugBe|Yw4{T!e%[p;Ax#0%y2f밤/Vj3?ۅ0Z7MN秦n,W9SSZpXkPYҙu[%3#bߚ#5Q/.Hi1¶:k]2mX1ҒQ}?Q&[YYV)/j N;fP2JS`^ji6!fvxnXI>p&"u7_vO8Mr[t8LY):h]m2pb1(J@_Ek*Ȫ7+q[::v]|Ö?щ@|Y"샨$0#)u;39hmV8p:?,^&^W_O<{c~j9ߞ
t6h8ΪV^@@d}-6-}uzXnә|E;(养xT\8a_!Pelbz+8Io]DDY,#qPPBv
<-խـcn)-{@Jބ0;u9o`]3a@KN*²G}hMOƋJDzD|i;Զ%QPQl{QN*>3,vp[TQD,5kDYa(2RsIʹrR+HyyS&f(m>AЫK~$J.ϥPNrQ2弪by'R,-2äl%Вba8tFJNՓ_mUIc>N*2ro 9=lQXQx{QR
VԐ|V +p E}xY+94m@Y5 +bqJA"M4)|ǴP]$dRB0K6"0Wm
G"kyκhιrdY:<6_4 +O!t[WڢnZX9}9v;Ӵam6;<:r\+LN:U4sxGh潟 ە=4Rd MPJ|
31Q^qIaخ*ݢ>6+k[((FvXzOȜEY'S6َ0w>RCKQk'>Z=VOM·[ugaD'n2F)TIj:lcr#zO
KԐ
mx)\' 8.?9-U~JbTD9)`&ǡs*fE;=A̰sĕdbƁ;*{Ie祾pV2"4d1艐 +}N5^P +E̓,.U +fN-RoLJA5fŘZoM$F WB>β=QIClC6ZTmЈuxa"喫9p7\ :Pjg|)"eDh|iBd@:=Jg^KCXF +](Aj7D}E$X>3KI>VޝƎY3mi莾6Cґ7!+TAP@
'+9GӲ'YD
\Xݶ(<,*Às)ZNǮvt="$H*dz序ngs}f>Dn1X"0j'U@sEe06]6+t`}a_tm|{)h'Pm?mB,XDhs?lS2tICQOiz[S 40`:@_efH:6;`*xzQMZ3qi:c˞9=7ikYa}]aJ)O9NÄ ra`+d@0R +]HYQ*dBH`~۾-"u{jԘr.L%`RwfrБʁ%$nې|f${fcMMon
p).@^H<óeD$ Q:S(;Ebˈt-a6)fia*<,˰5+:W=ƵtʧY@Km~߲(FDAS4hh:rrJXK$W'ğ1R|N"N**z8zuUS +MT +4:@`Xfސ/%O +kHRaHz +$zk;Z,W$@d:ɂLmhěQ@pxL2"kչ\A䙭bec"Y +츽"dj(ӚpEm5Wu1m"NI8VC9tL6C'Mօ0p_<M[+-6<fTgfpR&N*L͚u,3pRRLgnLn(ڬnxwgt}Ь<7t}o$(6[R
BZAOʢQ$Z@_C`PfvYlɥѐca^F6txJ[lsCe6ƄDMpU +O\Z),a9;ȱZ{.۬j[?B$WeY"o&:ulH},.ӫ3|?IS +pFRm%s9PGwLLSE3+^-۔CAЩ:lM6ksT=/z5[,'Ƞ?I5pO7m9wbK>,f7Es^1wGE-@+/ŏމF +E8ز$b'栩1bKvߙ2}W<Ǜ~G +r;<o+EVTSrG&)A"#"J'yss+f)TqݕװH`ȢJ4de7=,ik.ʑUwc!394E@c5gKcŁ_]|[L +bm+W65h< +bm7"+ɸ؋ |e94SƩcXuC?7Bv҈ä哪Hۇb{njBߗWàIv2+*QQ5QOr;{zyd9.uYk7@&uL(f~s%wdm;}M-"W-f}w3 akPmvpFp``#d"7NXO+HP׳*!ڼlI-u7G\\Ǹ|d1O@y7wz{{"NeX;-c`?{0SILKPmm 3{ 2sLH|N;%]mnn5%S%*/w]w=o.{rnqwmh0|Ը~r08Vv}-~3=S,x #cc7Y"~;E}x0voCww_P<Q)hFtR5kt,G5UN(r"ZtFS}#*TL{&Nn=)L6xrCO1t3זS#H>2f#jg
}ǩ&iaҲ;yiw=Yk>fɇKtxfG:wQpE_ʵbf?^jՂ-e_*^ |TkDB5}#ꃬr{碬x?rzUQގZjo3߯T +lI;q[@+Nk~|h% sUYPNAqނQ?ã㪻[1_2"_xxM V$^;#:^_H<!+>#}~#) + 옊2OBEg'JuE IYxMxS
:xg$^'ёxă?BIH<ȸXH< `3 + PH C[xb'pw0xJC3dF%%ؖHZb&N,~pF*=Hd""AC)D?Ck8d"Jē{!*q!-%D<}Jk@xIW"1fc!R~]P7ixM`Vf(B5/lmL<D +z'2ڽLF93}3zP;`Xf&&=i[;o&ޮ~^x;fGx2P +o0T&7O\ܟa +Y&ޮEXa{3%30+L<'2x; +oǽ)3?UbIL<+LObeIL]_LyDfu)N|7OYx@4'C)L.so&D~'2P^L +'zeu}3 +S|ʂ&^WUa'Lu2?㋉cRxOje1g&ގObe&ʋId&^/&{_OMe2~xR+;#0bYf1x]a/&n#Ux<L<Z +x]aC1&m3CL<#xLd&0De ff*3vA&O3ěă\x6}3+&Fe-%3:x&.0vR +o)` Oxj{3t틉e̋Zx(gxR+VaIy3tn0^f≱UxL$VR=f/we$Lo|1xSL&ăb6L<*oYxK
&ި2}3L<Ƶ3?/&G'23^L<'2/&2L<o&CdaaTxIIL;klAq"gABa31#x]A/$ĂRxKHogxx G |#p*H<ڄO
o$;6"RP'oWPA$]_H}@.HNuBuB%_HBBu$֩/$bA♒x|#V$JA⡼x]ԊēRx^HJ{Ux}?+x*='"LH<^I4(#V)5$o$65<e$^RoQ5xj?Rx;9AIH<)iFI-H< /$^Ƕ/#u|!b3/$^gx*$jAʌ_HΎ'!>ӊěBFM1x-#=H!%#-x_Fu-^HʌijxIIHG5q &/$jAIH<)o$^/$JA⡼xR+O'[xě:NU[j 2O7O!#hZxix}f$1ӂ[JF-Րx +Wx_H<]Ċ[JFMu"L$^A1
$HědY)YxH<VxxR+ xZx¢ēF*+CXxS)H_O7OqS /$Ԋ#RHSaG4 tHޣLz/$R2/S":cxAI1pt P^H<Ԃ +B)YPxH,$^
I$e +_ 4oW$7[j 4hW$B/$2|hUE)4F)WxzM_EiZx%FaZxxKH:w҂ sH}vsf$ގ/$$7o@AUxo$苈ǾlM,D<)GHE-TxT"ގi +O'Qxx$^<<K*o;vJ<<*3q2<<fOJcUCyP|RA^yxLKc(<NCyv,xEL+S]}בxxH<<)- +ukP9X/c +O7O3s<<
7QTxxPOآ[!VB +ij
S5Iu+)_x=2d q#u:2Ov +CI@<ij7 +O +@<3@lj)Tx;^ו~t&G +@X@V +Ӫ
+OW}V NP^@BgL@<>x]`Xx!g ^
o=(@]Ϣ9 ^oq% N
ӔRxW r/ +U VRo @u։iT~ԧUyxޅ{{j'ÓZyx:ÓrRkQY5jmzC +Q<=>H)<z¼j MHIL^ǻpu3O +Jg7W^WJN;kT9TxxmpԦU:ҙióVŮ<<u +?/i
Qixx]Cuٿyx*_٪׃8yxZyxHPyx +RUDQSVxxׯ狇I<<S+Oʛ1<<* +O7cqyx$Oʛ1<<)%Λ5dPJS@ O˰37g䚌!u}/8<ڐ -}, qx8<|)8<Z -oO(8<l -o?%8v" ?B*ogqx$qx -[Ug(oU8<8<%(E{-
G/ԌãGPqx3ϒnG7O_>R/|O>to8<2OyџQy?aixE1AN4<~B#]4<-*
OCG
Rᩔ4Ͽixz4<U=ix;%p7
OkJvT"٩4<_4<%*
XEὣ?3FG#>QPhx|LCxv
BSӛ'P -
ώy'ixx
BӰdgJ#wժ4<jG -G<0<)o^ -ót%!0<UR -uo&gilc/)jw0Xf6 Kqz]Yx4Oe!Zz~Zd&Oceᙩ7cQXx`Xxg։#buJg7bᑓ+,<OjaL-,<ڴ^,<bYg<,<TvG܋ZXx(G!ȋtNaCXXxd|^,~?oCJ3 -OʛZXxDR3O(MeP-2O[oӠYYx~Yx'Yx\D'Yx酅KJb-5Xxx'~϶(d,<YxIu_4YxRXxR,<6We
bva-%$Yx.㋅!Gas,%d^R -SPa,dbSq7HTZbaQXxT -h,0ϔ/GUMaᩂ³JYxK
+3~:дqfuT/jad7O:^7'#ЕYxx=',<ՐUFe%%,<*qOo
da%%,<Ӄf9,<*o)gjfto,<W^30,,<zv_,<'8,<: -ihWYxԕR2/u*O:2OBeXxfJaٗfu3One-%,N!:ږQXxfYx*?|~cYXxR,`QYxf33SeeDfYxfYx3C]XxZI*O 73%Lfi\Yx(ǿ_,<'>TISYxUVr/RYxXx:^Q -oeCL,m=' -W/6/ab-%,<*#XYx -xYx#W[JfᙚYxTޮOjeI),<Oja!'Xx%OwXxK۵t{l,< ->3o ԈN4Yx<u!3~$BaqދZXxR*Oʛ+K,<z3o gjfQZXxD^,<TG7CӒ,<WXxD>cb -&£PxK
>|H4BfUPx((< +}, qx8<^9Spx(x~Qpx~DKʂۉ&N8[)lUqxGqxTN|x`ãóֶ#4TpxpxR3CN8<KeM*8<}PpxJѾpx=qxzqx~8<GG苆sY_
o9U
hۋgЫ4<
o5HRJ<Tg
C4<+
OۭJS]盆JSd~Ȫ4<bb1<
ZBkg$hx84<Rhxv7
+4<)'Mdzhx7
o$;4<T
OVT+4<$@_ã^/j
ST?+0<37sT\ _K0wpL0<
0<<ÿaxR`xĞ^0<|IyT/ Ԁ>Rح{3<KcH;XxI?Tg@Xxข2IX,<J,<v£~* +Ĝ׃}w3֢$t7Y0Xx+LmYxxHd£C-,<s8, +OꛅZXx('cXXxyUް/YxkRrHR,<v_,<9 +[f-! +,3o,<oގ~f)J\XxYxD^af!f۱f,<³#Yx^"(y[7xbv}fI,pYxR,<ㅅǛN T +UYx7O;SDwfE8RXxVC-,<3Yx*,< 35T,Yx*fQXxJ+_,<# +S͛qb[b),<U0YxVYxZcUR2oqreuo^Yx"£C-,<f*uYxR,<]_a}S
YejT^Rk£Tf +Xx'Yx:£g>YxfuGSiHea\Xxo}0-,<-9*OqGS?F (zh+(< -/) @+;L}_(<J +/) @QSPx|GZ0)(< +5x5eGEAQUPxII( +o_ ,GaBQjVPx -T_ABPxt%̂[JF-5Px*+(<*Gnɨ(<SQxK
ׯ£+STh}VQx -U*(<H+ -O27b$TQxc}h({f@.98i.IԚ&xTn{i-(xt\[+Ox/:҃P#<} x -V1$X]S/>>`uM=VװQ2YUw[:pqV]ֹ?U\:) }_:)=]v,V]S$o -k+T*RԱm"q Ix3Ng/TB}A- -kpQ8NGթelwuTݩ!+Ns}-PspRyTNEg_:3^S!ujtشtFq-D*}vBaU]khB-jpܵ4Qt'kV9KX`N߃"t'GaV/Lݏ7Oq͙I'0;\`>$IfLsBDD`tSv@#mIqUC~9tS%:<{>C֚ -e_#="M,@ה{j>5eeAo)褲tjNmMaQ7k^XpJ] ޛK:*Ej#E1"2"0L0@UƜ6%]]@ -{3k-w%uڽt/ۍ1'5FLIЙY<ʠӶyN{0t枧4V_벰):?X{#0FcS}u xAǿwN궅/R:机`髳=:]g5u tK7`5Eٷd]!ba6Qssaƽt -p k>O:͛dT'="%rps YngRAϱl9Q?AYՋ[bЙYt
5oEhcnl<g!<y-ǜUt -[@xQDFLpȇ.)@ uZWNW«:)[ósfЙگŠDlAgߒJ:ML( -&_[n)A`u6WqxxO:~Spb<N̠qm14\l`5̠co-8azYSJBokEpV6AhuflQtZ5k3\#/!w)3zVL;CA'͆R'!0?0Bpno -Ekʠ4ySE]R2mnv5+j0㸇w[$R7`Mߧpswo7'IܱP8qs(v.V7'boc#(yXξ89F R2nnp%vڍ&SSK,_Zys>/v7̛[ZNGdUQSkI7'śC!ysRm}śy*oi_.xsSR2on7bd2ArQys6Cl~,m.I+Kr04^;9Ě#8SjNϽm5'B͡ߙ3۶Wy>5'"l\O5K35ה.sT -jnk!xԨDZ:JmϏʠFA -@![#To"`x.g]UAіybź`F;! rT\f\3;{!䤐]+EO#䴷=m9~/~I9T&`II0M]r25Dd2QxF!nkS֖!g?CN}8\s\!(n/'9kLNBČ -C[@0Sn;vJfV@aȡ*m2!rNn$hfR< -"gsWIWk=rGv. -{f"6Kqu95^9ΐmfɑrwZ 'H$mi= r(AEw> }cX!)ne?¸8+@N] / -?N*ǡh1q(*S. ->_l^Џ%Jߌ7SR?C$Ayo{2m9a]0tO|^TqvA0vxj8,V' Qu=1i>ؘ^wYmTj)/h̸ܱϨ8-,bVSި.NV -Sݮ2@q-e -7fkMۋ5z.sEQ#svĿc:m^P\}K G :7Кg* ~S/sviܬ2L&RRSTTժ~FiE4GF -֠% -w.D#qiDzUqn\47%2079,7""ɦ 7^1n:頸)ϵcAܔr=.cZNᦥa_ nV.mzA3^bF_ٵmjnQm`A8,T¶)myD@"m
'q^m\4m$wmⶁ<¶ilmɖf
l^o[*5TzM9EV2b
E?٤IcI=ԶFs/j6Mcз̕;j&PPLj -&sBmxX3SHmk+Ѿu]&cKD@$h[pAšmJ36t9$h]},hrkh[ImSjfDQ~0;jg+mR LnV
m?O2M/m#vCkp=Z
gnT')Dmd6n"!4SiNNmS2;A-S(kQXyPۨ. Wm{ڦ3"m6)<5R!ڦ&?#Զv܋ڦ3mj[P4 (El;b} -MLj[3X]mL%ڦ>+S(ٴ۩m\A?S7J0Shy$6 5MJAm0@Uiܱh\PTfc~C;m-h&[Y1ܶ%-R}!軠x'#Pif~lǂI'2ϴIs.j[3Ym*˿ۦMm#ȏm.mȼۦÂm^e`̠]ҝ1%c۔գ+nb{g3mm3gضekF9oa`a&l蟫bۺ¶h64'myFY?l`(-ضv1E)8M+-6oBհm5m[r¶[6e:UYmS- -&M:p2۴&fˀieπ)GwLfit`ˇInxUnl9m -C(жWgFmtgMf<R-K6O\9-Դ;MϦYM=HI;`B˻Nf4 -&bmBqVҏw!Mfd+E6MfF -Dgƨ+6-pK6Up'Mc
ed`hu&ȮIܯ@P)qh~m}Tj<;8ct=m؎h[gOmKɔ:
m,
m묟jh֘/$h".mC9OKV -KmjmР6) -M^ܴM vlKBB-5m2m20O6YWb[Ro1 m"xb6BlC6 /bb!A(6)/bJlӏHw -ym=l/۟(j"צӇq~kҴ+6g >M -w)@-lk*7%*@l*7x`ޫ~):Ҿ]S6T&n:6)`ݶ؆rW8mݒwisV5|Fip`-!ڦ6L!ɶɉ֦ͮ3JvNX{TVf_gkզԚ`2
@1Tjc{ǵcW|Նw%T[U%Pm["PmKɅIuTF- l"amW)؆[ږamIuBՌ4ѺAkә'q;}ueZt+MF(8hm -h/6Vz6wlGFV乏kCmb -aya0HkKɤ5SD Қ'R:ju*!#701kg-eڹ<5\zuΌ5Z5YߚtM2 v39MgGOTjLQ[5怫M!ՖZp'IVS4VX]Վ{yU9cgQ$0To֮T{Gay6T[E&]j}0U7@Ԯg&:M
Vy$MX|pf;TxىԖ_K{UnFz͇fB8LM~֠H(53r{i7.$5mpR3uu\~ܱ/)W(wUD - -uFz&KM&1YjZ=oTb ie~0D3DRNRr $fHGAaLZQC#ZsK8JMڀՊ,)IMڂDR3IMR ARTČI^ vz ԤzC0NHFYkaZ+&2_AqUG$+dDZ2H:ITHY^AjGwÚr-4?:8j(d:.8jY"
KpvUǓӏQM&wIFM3(v -c~ԒHjK
Oa耩d09N
6Zd4ڢ!45}ASӅhIv6GyعyYԖijK
pj'45U'Y0/T>Ϥ)m;LSkxlmԚa^kLS3뚠QJ#IԚF2k8M4545)f45Rc&ǩ8Ulpj}.M!Ԧ,5R$4g5d -kg/V8eORKj饢iOz`2KGyNIKM\LMӜfÛƉ3L
(-g6cHPL ''0%d#h~LF15N,vy<Lg> -K
_YE]#+RqVp,5Bؑ$mڵ+?k^E:ajII0L1So>_,5OZyK
$RfZaj|>RS/F٧`%%Ԗ,2KHS*(mL0P,5}M&SBfM1Pj
EKz-Jg[;+)O48gARu8 ->>;XX[D vB7>,rzm+zpR${JR2R뤈J\ɂ -.0+b$eJl -z)-D^7u,@ˁm?";'G$_Hcνkk\!HdYHV`"5e(P1 [݉l܁eϝ8d10S]ifgtP_:SM\@m8N!1)ĠK!mk+
[ Dz}K:
U/ -ƕ{ǜmnLMkj%`Xиx߶Ep -Q#C:N6o
qڭv: 8˼0D%|Ӵ|SÇnrJC"/#ELcԼxC
P >-ֳjI 3)uuGڴ-rفol;ym;z.@m88%̷ɭ`LG28Fy,Wr<CCS>&l;2A
(tLKnb0E\E Q0"@O(,TUfҨd'S48m9V
qUu -Z*"m G2ea - -r2"#G!LX~f0P.4#6I (X=C:%}{Ga0Zң'XSzȒrg(Խ> g}sk - -ш,[o}SZYye"fݰډ2_IaDEx1QD 6\δVQ~>__Q'dр)o8cG|ǀ|S]0 R˳ -F)bbxt"h9M_v2<d=@ftQg}(~h4^^PZeH̩Q;iʀz)#̽qmjlU];TSˣtML -?rbFqdki| "]Zo9<T+ŀŦ1²-*CHĠ+oϦ5c BVZ{CNzV!2[(/GچGPb:> -l0l#;?Z̬<SQ,뼱8f`n*bMgT*
g8k[ޕbK\a6<Ͷ]
y{;LۖI -LreȅF)d8'PFЉlm_'Y,JXbٮ+)qc}6>_wNEru,@Z,}IV)vtk'^ 8Q0>Rp0H@k2vqhA"yI:szsU#o9X'0V
z#vy&j&9 0Fō`1#jxCL%BXH5HBCd(?hJo
&4MQM"2p7Lyos튭UL
6~09 -}=l5뺾udm4ۛ!FHLBbǕMHC;h)X6<1)(O.HOl}+J}ޔLjt1w9>c[(0
hE:|[C%7ىf"i -V jG%Eۉ0BT`ye/|.z(CE@`lw44;Tu\E4cWTWR[T0UA Y!MT<o,l~Xo]l@0k - !2l -`ʍe+3md
<dm͊RP\?ѷ%f9fSL^cںfCd}js'ϼ<42VޏVI"&"c!rm -Qd)jI))r -ӿح< \x3Q.CdM8bVԜj~u0+c<]ਖx;<O)('ۧvxuۘa7Xo*Ǎ 2P˩ -`i[EjD}fkYV|@f4NI.{fIؚvleC5e1DBY)S$դ}6Fꀨɚ
Qb=!e -i0\<Ѯhܫt٭$|
"G9Ȯnؿ}"!|`2,L&5.&0^:u
қU,G:b*]yttY͂ګvo'-&D^ozVr -A-SCWbQBż+\yE&Iƾ1p, -@T`Ɋ~fQִ&-' 3}7i\K -C3v|4Ku %?s9qjŽM-(۞`>!E-.SUHbNEo(˕( 8 -uGZZ -ګς' -f"f&ĔgW`:`},t}`&1EHR{vU6PivgB-BoS1
ځoXy[NQ -HdxDTslqNR{]aC!LмJI,&ش$R'B4 ImLX1DHCo)|eC>--0/I61,%)&-6H?v̚PZ݀M&^?G%EbiA=)^+ِ
d]
`5G} -Nou -Vt|X]RwBtSYq -d "A -$Ujdߗg輱ig -0iGJ<A6ƬrZ1*BccLf{ң-Y}au nk\k/G.#-Q:*㣓r4}#GQJLP{1k]#@rBIۘb7PѸo' -NVT}#^Z+O˝;}Mԡhg;Ƕ1]D:*6%ݯ -p1VrKd֭CQdhE5C76@5F̀(KD -87t B4-&5%
* -Qmf$UZ":U]:b|YXhB -LEL -dANU=iB - -~?X6)Ø!N2pyso -kR!̫ʉh<_=iIpEN@I$WoM/JMz \B𫕁82q;)Y&L[U;wDc1A Z%(Vq+h* -z+(RCaYJ%Ġ%pJ)3ya|uODn٪ Z"IN
X'49fG@K1Y(5-S>ZsLr7Nh_LYn'"jvA92DAen[V-q 9z?N!n --gy -cW7ƨA#ִXY?ADpOkY7Y͏]SL4zBc)0$+:Q|d0'쐹4C\5ѷ4ݏͱd8YnP%$'*}/u9k[1߬fuY V -Q&-fՀr^D̰ta_,r/Y|dR4ϓM -Q\:Q'íFA9K9;&>%nNh'6CEBKg+ P9' -T'S/`}(Oiu
A#^a*C%qNo&6oj&U/~"{˥[5f*7@XmF%6In -0\&
Ej -lrzP!Ka -%'uot@lgID#40"-MBE5g*f(E&ą"mQ -ASwS#%i;*,YHh -M_<[JL!"! `"D))ϒ`KqYThc.&`B.,*4фe-.j +Z[r^,Mm}^oK2%Zy_A}.)ס$nB*"Jiv=˒Kè@F(\K -, +w*3i#'x@;QU-? -O국{9\Ҷ3jqA;e+9<+fNʳRkjLB+"NJapd=̜%qud!ҍÔ+$Jc$\t0隝& -~Bj^KoF}nJ7J,E cGu]: '4(ܹRp-r0,]#x1i{d/ގc}nRPdeXzxd3qI-͒JKE%){DᕘM&1}Bq%êZ$ -ũؾ*NyᣂhYi=K1˵|-lLhBgI{Ӯ(a>[LD㨖0ʰ\-'Jez@jBM.Am-)Z{"h-Qk""s+W5f/CBgWSܤhsV -NXW#ŵ\<`טQ#, &IL<B3P2r^CrN-&OQԊ̰@<#8QV"aGؿewDgjEeLlUɣ9M
TR@
hPsrs`Rx᧽KS@!oa4`5T -c.?,s6L;$u_n!6ۓyAi*XjhU8-FKv,VlI,>},c3uѾ5%#$S̐9Әzd%磈my95p`lTecYv
kA0:h;/`sZv܉X3K#-s$=1@ێ[F'`_fh,{-
]ruj>Vr@r#fL@[Lڀ[w"CQ/W5h]zdJ-<{ӣiX{DINݽY$a+fҚ>y|%IӈcAG'D5_kH6VBuڙƖNjͪ@Z{ -J.[I
ͫ4fI4ׯ߮qXVKLIP\4KuD;w*е -6ZlLFBigjѐ*)|s?F X}=b`y|GݙjY%hˤD)3vfG<$2^ˤТ$2ojj[gԬTC1h0e:h&hUC?`f7xPogHV'ϢXE[(|d-i۞Rӛy%CyY5L_ӿ/_i1!8ƴ#b=Zk+0 d+V=v -LV,x9k~zSMPHr&rk# I+kִP/rx-6ox7 g$5 SjgC>ߍ-bw矴$r^c{3RzQsZ{u$y}GHʹdY1"(Y<P-_m3.5ooORз6hyy'N$-7opËfT1dr`D+bO6kN,Vx̸v-c_{j3v"7H[pXZ{iZ -fm,g/||}y6tҾ{Qbb)10>nVw}FZϖp6
cYm%}X(]SՒL][bR7UM`IL -J>b%={IQ9+{I
z#@3cH;;٩}1sW[{oӻn8}꿰$8Y2$X!:CHeDwLH'Ab(+T?^Y~8ǿxx?2xNEJ'Wu&cȽs;!;DԿ|:B%ʠfo?|IhΫC[v6'f@bJzxl -DVN:Fa)p2uvںf{pvL Ȃ&bÆ'q
8.f߸-x+E[^GSpdE_n:HkEzHӍ)c͵nZ+_)ZɹwUD -RGA$%!Hi5r\'ura`!fNQpGͪZө=<;0)Sфn`Sz}l/v3*+} -D[ _]T!~{B`b$B_`.fS[, ْ臸$0vh'%!7f$j ɒB]C?/j9߭_ONL1b|N՟~W_7w.WWwx>;ooNyp藟ߟZ\|{uǿۇo|wRj]o[i_}xkPh\b>釫Wn$m+~=z-//{{N틻o7Û#0Y?:>?ݶzU[>[x_o^_^\nk<}{ۋ/}O|aw_=\=\<Ba?\]ovi}s?/ۊWOB\mWx5߆c=SL&[q'>_\o. [##tsm1r?d滻7W;ܝc./|}A5T -xPQOY|}^]yQJևzPO (sgK;tH})@p5=Ŀ-pr_}{L/E(Z;z1ԇGOo>½xo\~Q^mO_} -BgX>;Q{7rnk~ww۟çw]훇X/r7o__\~uq~x'_5t:D^]>O%Pi}Zp~$~_l?ݐne-{nH;,eG'E~wwud*/RRؾ2?i/} [s=bRB'X'Ȓq{}"} -";9|zc&nIޙ|_/O$#q<:kMpJm` lC^_Nؿ?uv{Lߊ髫I>Xyls[G4ۻ뻿nͅGmy@eM{ -ĿRngswK:yW;`؞rgogzEυ3=
om?ˋ]Or\~|$lBwK*D$/G}<7[cٳaG[蹰/|w}~qysyO9]m}Rwl=^~vi{)ݚw2ِj7>w_oA>p{~U~R6=:~:/NDw ǺՆ
g_=x 41E^o=__m=M[ԫK4IO`]ݚ^_\yxRM>y YUp~y^g|14Xl}^z~>DwGQyN!lf6I6.iL;`؞f6YOEl3Oȭ8r\W\!pfﴥGe^pk~Eυ=cϯʋxq3ۯЁ"z>?;43.VC@0os?<>^L/Yݬ/,u{#3)"?aOEb?<ρmE2}zvoWA|;}'o@u;PݩAx;Pu;PFݦnws0"?Yy hKʗh.Mu ,;Nxr'FU%n/_=j\ݾ|}u蓨X.ܡ'_ߖDPpg>U7ߡζkzNwGusc𰧫w}cw՟뿟?(Dmٹ;R/MɧՒ:xK.k&99@oԾ'N?&w7ݽjo>B>DFĿ=oB=.$| -ydӅ>)>IE aσ%;=za{r`AG{By[Ń>]r|9G7g;Z@v9|8 -%e+տi4}W_dvˬϱ_Ds|/dsl_bsl"{^E>Nk\sϗ]wW,BJ{~J}A^TePibZJ?}~[:./y'oG4L -"#uw=<zrg2zc=Ч<{B?=g۟Ȟ]sRA}>ã{,Tɏ7/|en[tϹyjρNvi{bb͟5wC/`үH8^ˢ<i*'Pϻɋ)rHEEdkӧ"z\q,\ˌ\G3|;pۿmFܮ_^e_9< O5t^l;iۯT8P*_g߅Ll9M>DlOdd;lɇ!i!OXrq=ePv">'W?;O_曻룟Jq^q:G~8ǿ>;~?:t(.p
j%VPnlSQW۸qwCi\|UNsOR_Cc?t]OS7\gzSj'i?xwc祕_ت}>>Iq]
}.XS:W!4 -JG~w]L -6TȪB"Sr9gtS")ԑʩM6 :\?Jo{*vs]Bwg%dc -;fBXVt$UX" - -T;Y]2l%GFOFJɓgv= NrO -˞WJ1}$ `;9oTW27%zKDҕ&-
$챏']N`*jbB]Y\+c-we>]S7
lj1+Ty*r! - rnݾw>S@*
Xa@4p=ȡW7vwHs!ΥN]>sFn^?U=g/]+sGVoE;AXE0T] "aĘ@[ŕ~{*pz̄z%uXrs8Ƶ-_Qw(/ -4:AY`y'|A~N].<L!<J|^W==Qn- FA+HU':i -y(E0 -0UR8P(aHjJx_X aE&<&R߫r~R@n`u -Zٙ-iVޓ-V@qP`r0Lgtq,f:[l@)'6a?@6(wvV\=v@&W"w%R!&@9]Cb觪K<e M\*T@XpgD1^ -#i"0xoD'?P -J<R\/"~'#0eUDmʉ:頒XYW - B5
/Q]ǂA&8] znWrDQ ,t2.I﹕DFc - ;όB]I`R(4c=w%(Bh -̰n686;6]Qt:*[.F3`&bHՠ&U -WP:wnN5y?b -Y F@sD9Zڲ8>X4;;Z j3®mGKE2w$E8@<, -qmtPzA'&f8j#MxuvF]Z;:Bs -F?b/pnhSv鸝H/YYy*@Hš˄9àË80Nj^)7(PElC:Y:5nۥkw<\wj~WGCQy4nC3ՃYk[6± jށ_AߩQ4?ܝb.68:_#9*".np": -?vMX8D)%\siqp߀6}#j&łxb'+_XD،5pk~8zC=0>dDX`\mXr=.*]Di>C*h)IxV.y}F#5t:)"f
y42b!v SXbȢ
"IA'gCS -= "B05 -<Cg@ msu Jď;Rf'(H; -b:ƣ0JtTю{Q"z"Fר %RFX&r;6J@ A^)W7ѦEpHS$DÌ40)JnokEa7(-Wx%) B~xVQá}=FN& [ԷJi?jtyS@,brP9C9ҕElѦyt4l!9?ƕ@7Q7l+3~nc~^En9`C>sˋy`<ns=L+3V:u ی&ӗ(zZG_3yTrkA؋\Alo<!xQgoFB\Bpb9ZTT22D&lu h肁M@b^#~;pÞ^#L -
ȇ+ñwTJYƜ^-S7Į,8qq@Z -Q,PFA -é$A9Zq#4`Y] -e?brrMAQuZii$RI -,v5 -˥'&h|gr@±0Vc+Sq9ekfc -a@A¥y'DavƊ^9gI<k<ݾfmՆaW,M"6wMS3Z KA)DW&=KR!"9B[ͼF5}%fak_mSA?_~~Vg_Vڌ%xru}oozVY?}wmWFl\'tJjU9w¾kWDG1H!'OOK - T̈́'Ov]@cm'g{QxƐ]Ax'8hҝ<u'v'jux'v<#z>'D!N~TGXG>OnNGG3ƴ-Ǣ^+:z\>M_K&=I
qX.D}K/~?̿>4b"'NVrv8lXˋqvknϿb;YtM+RDwOtb7ڰȷ،L'qnI
:RX+Achzbt! -C{?)H
||liڜ}m~)?7<lۣV乞-u'MA:v3~1Gtxp8Ԏurz8[ -.IɆNlh{I -NQoGRE8c)Ik({SH2L'd
{;d7Em6.b -I+7@j'Yxߞd_DTQ9K-|zH7C@$.WBˀg_".JqԒ]+Q¼% ՆbxdڑnX,/$YV\:V"R^߅hv -ugϬy35{Dk @5/oǴ|%ӊzY#{3}e]9ձ'/.M.I=W~__jMƛW~}p|}w9485Xqv|#iJ>B$4Hj*Ғ9B@JkyFȁEġ9_rKE0!dGASIE -q Rԣt*رg$$xק7=P~.:%J}&2C5tCF - -s]("&0+~
PRGdKT#Yt)!LaQ9 -78$%5_ 2zaoNvR'#1RF^RFɕg"I]y2J?+rKC@lǺ -[^2Acz.0+#aD{t<LZk9V;H67+!}RX|"&I*YHCbQiQ^f')=ZITO"QT@ Sэ|3osJ"rAĦz8':"Fc%!ÌHLj<r%:T%A*[YdD͊kV{Y<ZE%$n`7TEhY2/"a'V,^jdA[Q)1Zg&Kz^*,'֝ГHVȻwt4%?H%5Ho$/Χ^8d({if$|E))LL8OH=Zeb%3nt"NG&օ nI+yBIaaR1jl'bP_9X~LS/䛅\8eŁwR<;rDdb;y>%B 5IB""D0C,ZzA4ahJQD2/W*H.` u[ei!gTR/~r4ݠt$*,jё fF%A?z7?H<yE&gNT -P\L55c9^z%t )37H (5xd(AR}II -#];}IA_$@Y;){zQ -<KzhG\PD>N^9bQ(GШg],Zhz&PVE)P,{z9uSq=^݀x -DQ#be˃ȅס֔g{%+Ypk{gJSP@x kIBEVr̼?QX-LQ-0VZT ښzV%ʥueQN߮)!VKp*|"f$0yKuX --jĨlV
-Dr/O&¨<d%Y -4XpeRX!j >T!SLC?ȌT!^QI$B!
ew'TeW@B -=D" -aI%a(VcXB_"4K+%dNQJM -}"%[q3z76Rս*P,(`qq!( -nRJ]A{J]c^7_ C㜿N<g'4F# H -F]䜐<+CՂ -s"64xvڙ̰lr j -, lnT)RR>3J'Zryd(+<,|k;xu1 -.n2
yɶob;'}MwىB냨 73oDu8$/&ʞf9AI8S"@8::)'E-S<\y,D=jWS#&kNLܸ=Ӂ#v+x -Xhֲ<ANt*D=v&+=Lq5֕1 =p*TkOs<`Kܿij-8{G4 AF&&%.0iN{J`#Ȋ) g:\Qu~gNI$Ϧ& K^_71(J1]^h]KTrD3-@tb;9N삕Vf<9^=HRkkh -75{BzV0C - -ss̹y %2(2GYj OA"- -/CuKMYATհnZSuPl!tmTUn]CZ8g -2yE@o蓖L^5r,J -FK -zm-s/D? -Xs -r,*H[`~`8yAW/oRbуVRe5P0xit7<픓$(pmw,dGI9JM9qfdxIlAjW -e=
(cLYuM^0*Š@Ƀ/V.[S^lK/Tg6Mҡhlal8ifoh֞3"ѽp"MF(:/t!w<-_ؠο!DϪJJFw'j[dz$h"ӡqOGՅP( GN"CrO:Ѓ\Mp=O$aByX@T{ ظJ8ݎFy)m(NCNG@o,4~m*~W遥ʠ+/MhOmq]#Ȫmy P"/6P6mjWJQ -.lm5q-W -+%ynjPl~m7@+?ӏN\Wv)ѩ -zWv_7ļ QH/6G)2x8H/),pA_=Jj]VAT*h?Z]]b|Gܡ:Uqp
ylqE(:*pi'0BP(zRX9rRYVwU$gA!UXIeq&7U$^"".lA{PBe
'nYu -/G[hcAAFA*;nLIi̖dMjДNkJDZOv6L)7y -CT{aŵn8 -uqWKGˁ|MrwKʱsV0<fk ƱԈ^yh
-z&^Pw# e.J! -_N06Y֠^ù%uB &$T9Ǹ r:JF1r,Tԍs) rzФ yB pLO j9ݸ -rq8"#98139ݸ' - Q9ApR^`F.Ӎ˼9=z9mub:ztEWK1,q!Q@T)At(.15Dt -̏Cz -s^D"zp\RRkNDϝ*'";"zTU=NJ@ʋF9=\bjjNs*aEt$ dֳK \y&"v~$B&.kJ<3^ls`=D&
Abz+'yU 8R[L*8Si,0j:nt
|Wk`rWFro&b5K:J_cow
'k");Xy#<'FUjH,Uz`]>Q8<xq<0RN887$ɣr]bp9 -F ?q%~"L;@<" 8 -OikpA@oB&aQ; iP0DAd5l `.qȋu8ؗΪn
rƺ5Q)Ұ`G5I\3]pte4,0a?ws"E`{')(B -w}&̨(d) -a.
gu/P]K'n,utdTքn9w% -)bփn'o23렬`Rty"#2FP; :#6FjcD贶 -PQc蝽d4V8KqMՀ!lBYD<8ⱆ6P.p|.%.RAY9aMQB - LBkdg$='KZԉ)Lc=)+ֽ7^qQ型5b -z&,)C[ -E,[:<DV~) -ҟc,TL2QVBt1^l8) g40=$ 2R=}9N-&T?`{.d*E -20fThtb$δM1!3MT=pMiy$T5Ӵ/SKΰ#@8 -|D.<8X!k@ -3SK(96^#%J|nLuDkdM]o>J4^¡@{n -B9ZacQJJE1bݨc@\rKТ81!.;]Q`JJRlUmRhéFQg3W^02\{7}h<z}ĉ3%bCk6Pj4VO+H-['9dA,a"ů,٠Шc0Rb6R+(>M8C8&*sK= -z9$Ґ؊vsJ1cxŢ~`g,<Ut"+mټHT(:8B YŞfU]rS,i|=U{1ۣ[!sYRPPW%aA,oɔEtHa)RjΡrJw;uQ1oE+R3(C!1r(E|d=ODAX]A?v7-Wx0/PpH+ɲ3K=9ΊKAC< `E#܅☢ -CeFW90S<RsDw`7:|[̤QH7k>8VFNTwnEE-+HoO> ?[ǰ - <-.ܳkTq@pflI -GtJy+2QQqj@0J\X -/|"?n@K XwcʂákDtD\<AHȖ"eB!m%1,^da' - RA8b53axř(L*[һEᐒ --i#rڤvwetiu<V#Ajf:~fkQ."}Gբ@6Ìr V@UStT5wG/3f_\V%3Eҧ86X"_)V4HW㺢4ʆYOϯDq8,}Ȓ켂m ˊ/[8H/ -f!:Gh\.L9;'-d>[Aׯps\U1!tIDeBLs\>R=I'g!VYAJ[n| -حeY& 3.`&.QU'`pyݝ -iJqp¨;jOz'
94I&?z(:K2FEY|$Zd<M u!+<c@
(:d%!}>xNEw&z96re9̘vWg!@H,s2QsPrCr:h&r!~ZŬ> z
-dYaZq)6f9{P|1BWI bEۢW^ʝ<糟XG1jB )dI grTRtNHG*}%Ζj -z!+-Ƚr01s5HQA]^{0!8IQ -pеe[t}`KzENu9 a|b]p"wu w$^Hڎs -)mnBʥ̄U0ymSAB6=@QAbRTU*%̺|жyDBѧ@nHKO,](h
$J ӂ7Hso̹P/|3QFmgF88?_&Td7S00'[%٘.`5 -,qB6UxGF؈H-ϸK(6.hFh!b5rɏp Pdb!H*ү 8vJՋF@kY2g.*LC;g]Kңdw@!I?ȡbs$5 -)d -g.$يa丟e]П@oT^kUÜόnۣX.8f'JPW
'RX -|P$^~@JKDbajGršLy -ǩ -j]<-SR Iy)xj738&ؔ;»ufPyɼ&fd;j!th9˭6&Y;`It]#ʥ]^#ҘgJŕhawz
a`QW0lj.6t>,B
,$;."trA -5-4;ߜ)֒n -.E5*
:mSSDZHr((kd(o{ n0wH&ۖAر+dشr&`:[2DL-bҲ\ޖ(@b.rYڮ?-z7 lϠ44KԴ<eh -^&o3NeKsRk<tHR!5i4%WDU#!P*`JKxJq$XK~w<(+Дb)ݨOèvJxQ !*w^$3<cҬ1S稠 i -!3R
Fze:ha|arU(XCȈ~,~D14pxBB=kL!z#8F{ۡFAI5CUQbrB -,(:!VŒPDNDSj0 _rrVLYJ[dgaHUEXYsFy-ch@T,] -vj)Z1X`ŧ4X \;&!S2sWMm(zӺeJTAee{$˞D85Jlؠ ~<JќtLR{D -.hpLE_/!O+Ww]ޛvX9?=%7C|(}½/0w_NPjRt4#P!X -p iѺvvW8Y p"Tqt>k%oX -/zѲL(˸(FEѢ>DX^[;vՕNpB=zJNE9+>).wWr*! u7h<u\]/(f`|j
\is>!r<^H&_ndoo'f -`E`'-WӕvGe9ñD#isk~"]{4{{j7x|\dh"՚-((dU^&8WX;@:3|WٳW&ο\ǿњο:cU筫mM+ᠥvxn_XwY+oxڟ6:#|SbsR`[ZM)scM<PY܉gcVEuuJvKvp]hN4(t -(fBEBdqXt.0nâl2cࠅǘI*
A%ȃ,[R_*?h@ι2"搰? 0
r% -܂C7]dv[Mm{#KXt]t
_Beɶ<P55l`xOO a~_A0/1'vSsMl NSRp̰-F}_ -t⾤M"taok7<r_VO`4S[9d[%K
f8Lh01~)/dnaeomNƇA;j=uG?}|븒OԖ-OZie/ -ia:&lG綛E3o_"գݫä5qu~kٵ%+~ -Q{\ .px85Inu/x-f$ej!pPA6{? RЬ{:Gߥ[]{@_ؒ6f{w3_d?YV]15,ynbzHO݂,+{4 -p1?M}qswzo/0w(i@{ô^+_nb[\U3/"|rO#d!q[%DX1 -\؟6r<܊ӈ-fMw_ӯBLMʰI4v"^ſmܙeHa~?z,X鷮uy1_[
Z\yfUE/?{A-Lڝoj{DNzT>Zn&3ZٙFm1f4'e#syBRWt -}X,,4 pYкX-H%
-;[]뭹B4[4V:}-֣qwrJ}7H.Yoqߖ:\HkmYLmmiݖ~қN-Q)[q戥ͷ'YWr5~ߵŷLD[̼d\ϯnWD.@[R<R,ͭZ\Mz]+/<Ū~f3HOݍߺG{{G(+||;,˞v#X-| :yy0Gs1Tw?/tamؖBfxS -%e8} FRYYshFMfm< ؼk/|BIشz8_ˑ\Uc)|<XY~/R swk6/oȱԉSĝJ/$#bCwZ&D]"ꟈ'Vo]?gh3x |Bԏc
\]6ylǯ϶wp{ y?GKFV8\b|[✌?'4 -2vtwlwfxoɌwϨ߷ЋHŷz~S!kz`
?
{[tQ؛Zނã;!7*~x侻R
7O !!>C^L}[]rk]p-ɣh>]BS_Qg(3VnH$ٿ,$U7>O8hG%㸑K*' ʧWjCQ^ -eVP_3_nA՝OF̏و7R3Q_Jtwڢ4L8̅VK&7^LVvvT%9))qD?(lD>Ћ/w#G U4mK:{Ó'n#'ʡƻm"x{97:4l)eOlIke%nLxY_ߥ;_½6
qKCљ,T2we'o4љzWFyVLIGӭ>O~N)>oh.S`cWg87-jtG3phq/Z\>ݙ^燽Io[UPUQOR|Ph`wZ{LFU ec)o]*lEL$M
, c,(dceہ_Qڍ1,YAڟm_Rkh4:34.)Oar]dyjEIB*eLAҥ1Ko@ -QhJ-Zz>s5&U)
-+fp ~IĭySÛѿYeJ`|EI*$>%RjTR?Hnڞ8M -"ns -3|#ZGٜf6-&J%QueD+ mUVhbt'H.a9H/lg7&8SpKL*=1 e^X4BP.WV,D:Y_KhPgb"]::XCƯG3#op+>'UfhUh#\g1Bv*A)YRa<12XZ.谲T{+fwƟɌoM>TVL-
v-:@b)՞(!8s':5:
Q$611Fd4Ҳ4IVjGGVLYgvLbc䐣@@F6En<kBӹQ֒.AS(<PK -l{4 -9ӊ ӊ"+Jj5G^ x`db7ח~BgOs3!s8Mn'fV555.WZة29L9oN$o5WKNTJZ^H1<[<dZ(K2N9 zM7'k=q4o+R{t=|$$Yvɤ\{~^{REzzJf̈́/Шr'KC]zN[$,s7|aen/hi`Q6Unl+j1 -+mTSbH.5-̬Y - -wr<}JNF=y[ٶKSkbN>ՠ7IObMnGjmjk, q"$
)+
mhپFNw<LGg]ҴzG -QoОtZ#\O=z=n{orتwNXp`?vq?d8opxcvq簻wB׃$ww;#W%.vz>WKOet;>A'W{}{pYalu'q䣳f1fem[^Y6bf&Cm{ۥ=D7H;p9],ۣ=$Y~:u{]A.W3EwOSphWǑ]]؏՝zxݿa6fnr?{pG9v|<4J1TWv︷03i<{ɰ=tG+j"hyz=v^O&̢oO_k(-)\ǽ>Hu9GAOgoϖ_\#M^<%t-z@6u2 -Yro"ra|ro=g"xdR`2~d|u3.*'H'udx(R#?s@=tYM
t;^i`֫dxO2۬Ds.<zS7{6/.c-;SBNjaf*jb`y>ܓ-+E_ݶm3U:ޱ%#aȁk{r1;:3*,xg??/چFݓI;h?*9F%??/\_GiQ㢿,ǧD/x_qcqW(.m8Nr<p?7_m_8s^۲Aswc:~QGŘ^dlK^qB}co8>c(>]c6.l/aɯer9wB"COD7?.DA`i쒴
tϟt5Omgx2tWay'¶#pt>"w,@\âx6x^;qv{t^$?ĊQRٓ
&Qݹ #(xrۧW۹?|R7گ?=rؔZ'O?^{8>틜pj5dM>9nm'nk{x#gk=3_Bf;n{|$^>NZaĽXlXf0xҊ0lI?K!sPYRdrNtl뛵&3n۔KjBgvmNkB̦W {.i
ԎFݽo솽VC&Whz-*ƓrhN/O[Q+YI8]2*Z'H-&>{LPdԪ\u*UXs?:nw37v{o2Nj7B^X-J"jq^Ni⩩SogYz)[" -mGy{j]_hۿ۞غ[Cx؉kv{%㟟@o^[&\*S6<+OoRn<k2eU3jLgO&ޠۚt4딒c -f1n6 -^]9\oO@Zmvbpjx;[kx2lyavvNwA&Dv>yZmw^t//؊D0½#b@^ܘ:r+n-eՏ/~(^Czfif9{јps-roXو5<sjUe9# -3cO]¬D%5v,EOQTBC߁e='vq7dZ?8_-vꍽ+8C>tX-ŰjfGY)o,9EG)'dkY -K++`c[sOkskzX[c=_Zm&E5|l_%29-^l+T\bkk,V45˭ހ|gg4/_KcdPSo?uxNuJ-FV쒝aāi_Y3UbAJV-rFo%XzMLwLyE1G,8E^/pNޅO]K3IinYmui7oS'=n"Hg7j|H#spA]qv(
5f;clV!gn-?թb/QV䰥~w%'C7>,#5KZZG he_uvzÔ;a?FR\p6){g]tVTT(&Gd;g-ui%:Á ލ1w.Gr!3K,@Ӝv9t?Ա{k{.PKg"+wRunΞs.-3&*Bb[fǏfOo49>\3NVw -z^G31('æIs6 -a\l4Yh0YMh88ޡdןG5kvSւF36z4 4Cj7٤͖=cP;e`bfkibx)yZ+h. -RViӥnkmHb~Xyh˭9|qħ ӱNJvw4xKwڿuZQwﮤB~(5q8nobJY'(_{-DÉi8.9[lo:ex
x
㦆pTf+R3jL-˫=+;kfTÏG^^/W-9:v0gW\뵗_On_έk[?|Slnȇ,~p5}\}}병/tzpۭ7twgwVg}i˃LqUxuh5h29r+ds]|3g߾aҳ;]כ?6^:~uds<-ϯXz8Y;,r|i#~}/s;v㵟~O~]w/Vv?^N_t6:ۅCyu7Wr{˧kݓn=NzW6g-Q~ڟѕNVv._}ϯ?ʠѕ/G?x_:ĕDh~.[exk_j>|5{ލϟo\˽緊OWn<{yM~#5{k0o't+sly -sZ_Rɨܝ}{h6d&Ә3ݿnWnyqnUgscgDpgW埏Zew<<9|m7rbrᗶڏV+[L-/y72x'ᶃ?>Qn -
dnƠ -ώ7:W,Wb$7݃Wwk -^DžP>D)d۪9glV[.?| -e9%˭pr_N. 8/`""s"Pۃ*:M$<u˻~?N(fS,,hf%,[Yʣ,Y4V~~h]{F~:sUu&mv!ƗLao_~_?~V9IW]X9Bk?|v+?..ٳ+lp@A0iYC@Q?6Od|uKb|scpbOJƬ_,,oo⻣o@O_gQnvuԿ3~5zvyn>?C[{QۏWL\}:,ك?T,_z+$m\=w7|U[r7Wvzg}c^tN^~/uR`]\?gƱil7ibW+j٧7Nkq/VaƯk/ G~U}yЧ"D7/=YymGr2Z~vk={~\|j鱰혛yZvupcT7bޮDuw!dww_oXNxx'dqCmt7~z&Ap/otd?[Ko|Uʷ_m<~rJwX{U[_xLE,u3kK_lwvVW/\^ &}$_[;3:}<U_oثW?~dz[|Y>|l1<YZL~;7\~%
_e鮮lwYS}z2p@B0!tH$Z ssSugH,˒,YAmjS q3<ռr:'ȏ<.fH8{*#I-.:Z+2BR)<]hxCܽX^ڼx -գr!Y.d?e._~O~&Z$;~fe% -pݗ՞b5O
{$*U,:myx (K+覿s}hljS<τP.O<]9h"75KHrTo7jw*ҙ^n3m~wkҁ)r.Z#Zh,|3r^].~̖MUvZL~A:bU>n|3\|Ud<cb>uV2ӲrW(#ZY -b -uL3Võ{((m,%nkIr}ZƧ -R~g)p;\] -lou:N>?I̙"LrKĒn_ތ9،Z;0bGXGo?O䏛Ȝd":@;3c(30% ,
7^.B(h,Gq>6S2qQ^Fnhag|Xbg@+OJӷ&P;A-@w&`~*!oeWXzUڵ$oq}ڼ~E|V('Y4I2Ic+Ѩ; g" -^ (SaVۥmHNդ{7X/^O}&8BG0+vٿ>? ĵ{_;p;=ab\ -Z>`\j|29/>"Mz@(\-<k|=*j$NhF_d
xi(ɨ܁Cu֒B>h#HsI?uW~qp2\< v{zy[}ҭ -n5\6oFSmdՃTgLʲ?I't$6ftKsK*oH E2e6m]ܓJ|(AauWb%H׳lMq-oZ< -Y~E6\..4>o8M*UPQ0sB --j).zi7:#ȸP
, :\`SMR}e90w5[N&y$݉C,:r"))e o2}DF(D贉`&cE٠3^jΩ0vbx v7z6j;iZDC٣dk\%B^~|gA!7CfVL˦Ew'H0Spq)mQӁ1CA6s-QoL{*s舯o }"|ho"ՕzK -m -H}(Wt2.bY^sS}-<x|XqU( & '3̮|l<c/VϚ{\R>}Brg -f&g.M' -}}GWp~t[EWyۇ]}lŭA㊓{':(uL7.8<e|o*=GʳN쩴|0N(·l X`!x -ߵG˷\>;5ã]yCa -m3Sr75u2|-KA*Os -v)<*HQ:;az
]*נd)AI=π_7:DU_e -ח2ky[nSI^FD@J1 m7ߕ.Mʾh=k&SRΛU=3t"
)HYHB|EHAMO]?FojAZFe -Da-`l-y4qPCH!rL!RFt̍g^4HW\#gCnTyҝOS}l[ k0'ԮqBTHt5InJan=B2J}_WwRփtpq<PL8uUIO?f[RN?XwzbT9rdI}D]D1ng}7RNtbrK44N}z2-:<Nur>-c+)sq4iʔRӾS`~u!>-Dδxr*zP[`f})Es܋cѓnJqcha\TX?
']CyFla!?%ɷts(ρ2G|xtNNmmhu -ZdP -GyGkwH"j1ҡ"KސtD"=@?HG''G -RHy
y/Bo#D"9GE -R` }Qx#?/"FH^*RS(HW:EC5㔄]/tFVnܧ)-֭{/Di}~͉rk uMY10B3}hC6!LzZIU^@pK3&}g"Kdt|_xGEԘE٭rb}}J;p*D݉
4{<dgרIR(Iu^0MD$myy]9<JJ6#zצ',, -ڀ;_9'#>0*0=P.O`{Vkej!%HlRlRMo8*m -4tVbaFp1T,l_O9y`S'Y^PK;$)[bjf]s=2\יՎڱjgZ˷\&rPg}Yo-x?vk$pˤZvX5>dRKJ^MaU#t0eV&!"'o7D -XjF܍&&Ӟh% -]/6lr)2c{ B8%
]:LKcӨZZ)/V" -3PgО=v[zzW$ -`߮&3 -H60mz<=HbIޢyvZTYc#[j:ޗz7t_Q3N*vUkJ2gdDQ3ò?3˜?j{X'z~(&+&J$kJP%^V(
69`{#9,&#!:'1ch6j+,ٍno8Ҳd2M̐&A)l
:ޱpGk2_eYI3{<=V)}uhnbeضq8I5nmS7hv -Uf6TǷ1709R9i$cUz;{uDkTV/E>~1FSw%f91F̠N!Tv>h)vsu{R4Mz'Ԏ_.jՁNUM`N&5]vmfSAoi/A0qWd\
gwՂ'[|&gղGQ(`S54B=|}TiS̝C4Jq[lo#0Is:d|c˼2#ӫP~_qm.wtL%)$mIzFZw5A:N~.wiveiphL :ȨG?櫘bVdng$$#s<2{FMGF3I9NGN -]4˫4,NК!U%tKPH=NL:L>r:|8}w|=,lE.ztN&q:N{(Έ;t>)ɇSXY-NkѶu`&p;XL$ -NC -"#ퟑ -"#±v$C~h #X}4l=
5prЩp(0prTj6=R3P2? -URcbHdħ/jX!bbY
<d;:!v7l-y([,ڼWq8A,UBz1@%.3_ߧ~x4ڔʩlܕѵHr"FeË2 -B>2,,B8#ϯɢIu$1G酞wOߑNv;^gi+9shvv(m"eʍQOCnNHXib\P%
Ru=?Zpt6d?YAEzRhH[t -SGCzΰC -&kt%y{zakĘ'.uAGLy]P|Bnlp#;&<BU5ױZXh/f(T8l^3U,x*½-HdC3!m3O&EӫfVljk
X&YYj{ԏ>_*cz!"jtƞ]vͦӳZ˦x>̞tz>A|?N/nGz6/^?~l:Y9{^tzLN!nf6>V,N/MKg1F6]~l:Eރf)7dar(Mݤ#k6r:Noțӂ2)S6M<l6uM?P6NMgcul:Cg -T0'TJ3Q&Y˩7vjhFMJ:]L-jܤgNeTn2w9WU]Q,*Y,sG䲖Hg)@8>Y)tXUs+UfTܙz!a.s'0ƅ.ssL -Y<pdzE`!Jrvʟ]X4Ќ?a4
=D4;3ACAd:TןU|"xh*zgC{*w;&v -11Z+\lҴޫQu`{KfmGPZjrc6P;ߴUN`(FQ6 -wF^a;jO}](jzX9+M[b61^C; -Ann$f¡jfLryv]Q( B[03~-4&+IL%V1+iLNNPPӘ>Kf<+>+J|Uw+[hDvJkO1l9{ʯQuKlq
C"SŠb"rt}}h@9mTuVGJys\)aXz6qMl*z@$fU [GGGx|lރܡr<w/<ȵK+UT𬎞wJ]-]xiS$=ͪe&
răJE -.yj_QIED>iu -R9K!]#SVĉRGd9}/zHH`m9U^_GvvGA*yb7w͈ tRT-YUVj>=ёJͲ*=C GգOy/0J=YL%e}nǴJY#z{ԋgO,/t&Q~bf8iamϵMzJvhI*XIm2OlZ2rTfI*VQn2@h'(NsYi&Jk?k
lWY4i+JK;_,Vc(^iيՈk&.mL͔ -^o>?Q^E,կܧ(UIdLPW8b]?KgC]Άk]?~;
S+oۯ|gCPϜQ82D\Y,@]ê~-.q4Uo - u;K]?tDSͭrY;3>K߳BW@m@ePՍޡ^2ww[u@?!o8,']k]?UGVg`맙.)\4 uɜg]?k"#u~J/jιڹ1{~sm5T/`r=>rrUO;}fsl3{0ۭgQ?m$eAvͦY]?fuuZAw#Wۿ$&c5fWOު3'JݻC1u}jXoO_ź~^Pϸz|;ejv]ݓቪ~mɪ~S3Ҭb;3tv3.DU?so']G]?EpU9zPSϐ# - 3V]?XqEڪ~[哬uJaLNXϒw]?r$7pk)S`yXGuvԏО+OTԬ.ݵkxI[TqcM|NcߔʧZ!#30Lv,QY}V_.\/7L5I`>:sa|SWt2˯r-u~o~g7&/^#\g=iv_L/O"
VYJ=0i^&x?sXxMҿg7]2;n\7cW</Kl:Nsvf'W$ͺSfrg+"<,)r|\u*>x3-h9Sn)'\`έޖ!N
РK@zweWzB -a4/2/||%DlV|/nd(? -p*4EE(~,?*9ð]>_Y߇ 1`}4 -=Öz~`Vv9~i#r~!=6"dGO)`I{'naf. -4Jy͇5<&+x>u -Y'9J -Dy.'Dmk/dYW9zH>`CeUFW|UhsoKt%3=aѳ5iFaeVttL>cҬ( - uvŁ">qnbpwNj/dg+xチ.\?r[UW`q$))F=GMRE`ػTv.%9N?s҃[VYE_9*R]7YtkO<x`O ]]V3h(ʧ$ë'C{wŊB8?,"u;GgGHk`2Q;<֖9,okIN,CNFWTRzǍ%)-VZFrޑ^~P b@ͨ~pKԠeRAFɈף!!:~$MqHW]P xA@_Bң'}=֭1_"[a>pgdjM|T3~ -O_,Mu5ExX^@|/a)#S"=/22(J˻?RZ;{^ΛuaҲ !i:w"C ڧrtet⛚fღ.I˱7q -h*P"9&X uwQ655 _Co߳/)oj;MDHX%B6V #ǭ*A@+/*C+u߽ƟM0o8Lֶ6n{1PĪ?i{s&jR퐆R_ͫvH#'\@l -Sچmi9 VofN,8BNښE*nz -`C<+9>՟:Za!B=Bb*Bj=rN/g;lUc>G`o!J|JoȽR RhZ -1 pH=&oXc`Aދv:hgx01bqq"X@,O8%G s6p쩅})A -*$Z>OVچx_?W&q孓=nK:o -ronVڠ2[/2<ŬCQOY3/_0 -)}Zx, -B:8|@'п2Ec RɘBu0-ilF`sbSI2=q*98؞hp
Ȏ/̬ - -N8' z8Mb/6drD/9 -ˋ,Bj ܒ:f_BP:&6IX"<%@">3-qArEFI- -' -2.-~5(2x9ЎI!ʿ')0I&H&ѝx)o,y+$ZRR@q9,ïh;X\7zd)cV P@YQ9A֭ظ
-L@Q,n1Y$ -_ RjA xSK}gL")-7FqDhG;44cWzO{A/ 2)܆_1
nDr(2E ,W 'TJqá+}7._aB4ko0ayq{dk?mq<[pb -L: G&TJ@Z0fS><r$Jt\O"p"+E. d|BW8 + +£k.XeR2 +oS_AiT)(<tMFE[jf,(<mM(~_(<U]y/GCưSTF)FZQxj)()d&SGUFu;dK +? +Ӛ& "=K9k"GROkG:B#=x +ZgؾuZQ +j`KՔ*AO⩽&h]UǠ'Z:hu!26+jZح`uM\5-LX]FʬfUmPYuZTV]2s|&}|tAKdzXuMYuU?{e5QᨺEұk'ɅT!zPxU'sΊI΅8NgaTT];)tat.RwuΪZHuRǶ=Tq/T'ͨ:PuRjU8*KFH:>V;BQus:y=@uNIQ9u}aϸ{QNrHOԩauJ<ǵuUuslUu2m&E~ +ODOǎ¡snDaӝ'%bX}0.af\:}ҝ#KeX0Mv?<sL:N +} PpNŰR4ܧc0GUsXtWv-*$ﯵ~ޕ@/k"į:|n7Ɯ:1'A>͟UuϳtcS6<=2 +]Mi,+s57>c:6W'1tݼs"P-|Y0dsAl2t@`%Jf-1t,-Edߒt=XF*N}VB<fhuZB3L'T]ۮn)A7ՉSfg:w\3_VtiI H2D-%#59\NJjQ t:s{ImTSƯC!t(m5t7w̟IƈsӹDW t&RrvR*ӏtL!SIhhۧmT)'Ѧ<鸧6oB薒!tSF'WōJzvfA7,Nc:r?*)1YbЙYt
5oEhcnl<g!<y-ǜUt +[@xQDFLpȇ.)@ uZWNy+Q +C@YĊ93LbBlAgߒJ:ML( +&_[n)A`u6WqxxO:~Spb<N̠qm14\l`5y̠co-8azYSJBokEpV6AhuflQtZ5k3\#/!g)=zVL;CA'͆R'!0?0Bpno +\%gNʮ5yK=MΜM +,
hxk[<Nw[9Eo?UԜϷj5r8|g^ٶPY9)a5'zG9QsMi2GMy.rG +iNAxjv1sX)sW}2'Kw1s,uJw̧~TĜ|uQUM!x9Ƶrڷ=Yr;3ZNE4v-y)$r+a( +NjTs}_P9 +6m_ +0X +ٵkJq_9BN{Ӗꎐ◄CeKC4}ݕ!Ɉ9)q_@D>*CNwׁk9jmr +}s1݇k`u9<Ur"pSd)Ą0亵3n`*h&"Gwf&sȑ8;!rV:w t-/9ރ!qobgfA0!rj'\'{ +S5 09]f!'q% rtO6*A vߓ ҟ{Pt +ANåG3 +ANq+C9@ŷv]r +O?~)&Akc?No`_*>>N>n0HS}ݕ'j$PW8ʢ:&r8.J#;TwB%xE*q{:bI +`N(!ǢũW=wũbűMFꆍ`F=ݶS>E}^AqY(E~}2(N㝹$@qD6[8bG+(NQ +<@q
u?(NAw&x}\8*YcPq(Ogә}Nb銑V{ĊS,g<NGXqM\8R@@=3)N{(N7jn?a(&)(q(HCKfiϱqrUꄵ߰N8p-*&NM'Sf8Ngo2}XbiEs4DZs^?H@;܌Eu%p& +Stϲ$Rp7 gf({EEv;v>N<eU_=ջuە0ڬG+M<?O*u{; tSu8eDzUqn\47%2079,7""ɦ 7^1nz=AqSkǂ)z\ƴ7`'nS MKþܬ\*tݷ<~3Rg*kۄ>m;ˣ:qnYmS;?S 9)DD`N<2 ۦ!ibH
,f+mxmrۦ[5mzmض|R-ضq6\ԶUXچʈ6d&2&4ֆSϽmR*S4ߋFB2WBmC}0mR(8 +ju: +MapNm#M<YrжFu-h-yIk1mMI)cCT吠mwmʽ[=m
'2M?<{+/жF}Wh[zچB m^ٌmJXfrۤj0n<i6^8
%mkj5mR)ܶOM"yP۸<چRLmk9 +65ԶƯ}m5^6&5EmR4]Ͻ#7
0֟ &m3e,j[yݤp jCImkk+IT_ԶdR{ej%6~;8vj[Bfj-7F>Ơq[)m6;jl6v(tqEͤ5s+6F۶DpU*/d}dd*
lҏX6);DѠ+m"aqVl/fF~Szb fl{a)2o+Ƕ)qFư`۰$G63(nĶtgL6e芛6Llb"<m'kZŶQjS6:wf +imZ[e۴g۔ǣ;&4:C$*l6!h+KFmtgMfR-C6_&rZiwhM+hz=4Rw"8mCQ1w*hb%;Mf&jmS3B6Vml66hUQWmZ$2m<Ofƀ#\6LN{]B_R6{6y_>wpg{B۰+жΞ"Cۖ)aIuhnXY?o-<6̭1_H6D\$چr8&ժA=mR45fi
d@ +ٖl[j 3ddh&ajmĶbAl3Dlo"(6m؆m^6Bl>QmR^6JئDXi8mt,C6ql}Je 9mDL6:֘ȶ}̌H&"ȤY#P{_6^WAI%6ZCO3n6[]NFuMDѹFuS ݄ۚgE~/dh79mU6g;^<bk#3Uym*X0KEVɻEYTkI6u>dkO^Xᵡ>xmQmRMlq`[S-QbϔW9{u^Kёr6)tֱT-dN~ +Pҭ6࠵)̢[ޱ
ZY>*
9)^Z + +_#^cָ.5n8xM][B-M1k}05:
Tk tZg}Ikpkl6矉PCwN(Ԇ幆 -%LU%Hk*J ֩Zӛ,FĬᷔ)kSpw{S|J;3k!d}k>NX6$v7j?Q2Em6V["hÝ&YMP2XM'`uV;1WMUCEU<P5Y*S
[6yM2PmS# ݷHt
8SW +>K-)`YrFBUEmT`d MJMDf̼<hj4p2KmRk-Z2gsoQ:o0@#Hj<i5S
i$g_jŵfG6OKo2GMn;SFMm 2DMF4v{!rdIC1&j;>m +6OSKSww2(r.N{ɸigwo~_şih_^wٿөOhG~??o>/5>?7N_ſo{[__m[O[W_ӟn3_Wgb}Y_L?տ_՟⧿|ֱͯ7_m?o~ˏ~_M]Â3ͰNwUV\HU⥿wͯ_Lr}J.(Ϣ?gznN ǒ% ?pGQ*zω
>!Cz`ׇe{w[&WR,̃e;ݗLÌV7?Qb#ޜƝPG߹~)\ޑv +->li3_{=y9)s3p
16Fj\_)Ň)Xb&bل~
dX_Ҷ{~ݎ}ݬNn-qFFIiCCņd:n1:5`R>#Kj|*)hG|cxiiGhJP8$~LTq-?/v''@8ϱ&<Ci_3E|N}J) +8nLW?㗀5LdS7m2t&RP2ď|d6?{8˪J[QaGm]lMN@l"Nx|lx{oql ?d&]2_$(4SZL473FhWX8h4)8#2B.%Ԁ#2V]9T"dmh0L^XDFF)''{CՆIA#f!-<1N^BkzIO0 +6
}V sRꈛǬEQAa"E~'@sˁm?;'G$\Hcνk*k\!cHV`"5}e(P1| [݉5P6>ϝ؎d1^ًx\ifgtP )Ju6 +#5b+dhq'7Fy*SV6 +ܝl٠D:^7h1"N"s^)Y '@dL*3bTw +'6Θ?vE?~O"~Z;t +6l69?ZjYSiO,=qL D$8g1ϒT'k8IXrDؘflܐäm
pf
g勍3xpj|Ts㫷bHFc!DS%;e8{v1{iPB!ŤOB*_%͚XCb7dfE@;$PP{h@25R{)J9M+b$0:yY \\l3Ue%%nQּgi7Th!XW x;HwdRE`Hf'2L+ź>pNH6zqq`|`2Q(#ÅM1Lo=;|A9o% \"$$?Nk}
FrNa +4*GDʍs<`䍂4c0GxPCL9B H%zHB&Cd(?bhJo
ƛ4I.bM"s2=>oÙsos튭UL
6~0>} +6Uu]ߺh<s6cM#>$LƉQ &d!)XM61.(O.HOl}amloB<0]F]ؖ., +Laùl8HokQ`q{㝝ho!ȬF @tS +g;e5Cl]\'qW +t75eKAM/frrDǛ&M1~k
Kp{$L&W;K0fa|kxr7N!}htk$K%F40KQe&`F)PT~cSR= +68[6fT[A,=Efd +f2+GF +<B@UM +4$+RHjJ>7'0I^o +Ad(6G&5L7)h,GH{<mC4RY.J e +&Y;~_^)rցwQ+3J_H
Dܳq`_`(]/$&iW +5/̎ +fBfUJ1(&%7L:aMHn`Ċ!B,MIʣ(Ć|Zc^LmXJsMZCm~6eP˚ڀM&J#{"1iKA=)^lHցT*>: +% +IdHsV:i __ݐԊG=jLI!\LTUbd3&i&n tdPd:Y6nyO7+s}s.U$ZUN:}ҍ*8=rG[zNHMzwh&3l1H~lCmMw(ѰVEBtS1q +y{)Qh:iŨ@s
`2ؓmI:]ЬCi[^a]Fx-Z$"uԇ'hF>bں(4F儼1n q߾O&FOL܋VT̽|pQV +N%o2s AM=<}2]yfi=ƾ#"7th뉬LD?CLM>w#ͱ49L +gp$ݯ +U, zX,ZKxF1ƻG +[=C=!ؼ'ߺ5q( +|XjhzjDYnT
柝:k(9Ced1d59~FO9ITf +dQ$`Ԍ$m_Bb6uQLlc~P͗~PEvgNf鷓
bMB}7. +V"We{sjgv7VYԢ,YX٭`/FS][B^0d%7.]@ +2*jkƫSI|$|{Ȗ%Hb
m +!08 ~Q31g&d5y'HYI<Sn)LZ5'@TT)Avsh6~\9!n +gq +ntgS?;skSLZ6}L#*y1]Smն}.VzZXOl4 +LJthW`P堞LJmkZ)V}GAKxjYMvVcS'eF3wE'愙2v&ưQ9LѸ\(G55*DJ'9M;j*['ru0#a)4E9yX)Ԕ"
a1YE]GMY&}MM2 +0ErvXԒ=fr-[8=\LlLX^lEKB5*7U Vz6#$\,h.D%Mo{op;-;Ag +̍4.ZfgfS&w#ER`ӣY3
endstream
endobj
88 0 obj
<</Length 64273>>stream
+nDd."(d +˰e1s9SKs+m+!Dw-g(Fh3=!a,EZ%0gj^q)MշZO @0 F)}MYGzJG?wV*3K``\ `GEz-A%03˾.kg)T} Zifo!11X8@'4VELAPlT/o]lk6بEooLGp1|igU&LcmpQޒbjj{}[yu-xeT +s d'~TyQR9X%_F2 +G)ZP|gX)SIs9ADWط3 +߹Rpb0]1#dx91i{Tė#|B6Yuy#^sAhox3qI-͂JKy*{ᕘM&1-F`n. +M`X^M +QRb>e,,*ET +ؾ*NyyGz>Cx|28brk[<-ЮΒh]Q +>(%[Mq!9[)8%{z)pIR=FiƘ$QJ[l~02LC^j҉昝OOQL@<#8Q"nGޞcԒ䡩R˸Gs*JSΣM7NrþKޣyOK@!o,[ *m*T1W +Ǐd7*ܲ*18,H].W$b
V#9#U%KGRTnTHdʢ%kTĎyL??;CQ^Z2\2->Eɩ/蜓 K,%t>Ylϩc +,5'?k9f=?zZ8 zbD7ԭROXXQ_3.I18 +-ƙ,ӓ k4K5D;wе +fA,h/4)¿M/_i1 8hgÿ'|h=\kK0$!dK,=v +L,떼ό5ij)qYif(j9i Rpl@Cw5Rsgx9f0зr:Mo1LIzEuh Ȕ됹vcmVnRIS"-5&7%1%WC?g$^DjE?V+hfɄJDȋl;-q9q}=IFv" $38ެQ[/j +tN[p_(6;s,8>1]z6a\дXIr~oS[9Q"{-vGRgdv\nˣKjs'vN|W +6aiZ770B3{(b4-:lmq^}4ŕ31z +'ƈi
'O@p\̤qٓ[Q,E[^GSpdE՟KHE^m~kckZīJ |sw:ܻc "IQwRQ)Ix+hix }xXHĵ.rk8wFk5t.kq'c:nʔ~?=
lJ#
NpFW +fv㺿T6}ִ7=s)Rwq~%φڽ ǙCf3{ǙgvOZz13ۯټ/qg;;<ǙP8LD43NVOa<D,~y|9ϙǩeb+"=+ym+۞=5۞ۋ#o8חH۞=홷=u{&mϻmj6q./mb}VV%z%?Kh&xT/y~}]t|JaڹNvO|C Y9iv$'V{}{~z#MLx.[RͷHSj}>}n}Cwԟ뿟?HG'Vǔ#(wKST}VZ] +g7W,>FmnxG7>4d9H./.Y{FNއ:y8n{Vd9hyL><Bp}.$B'k/)}>zഏB۟_q)MwQ?oڕyo۟}iyc۟ɴOmλgۜ6珮ms~uk:aZ1>7hݓ/_痗7oˋ?:CNխ9lwRHJҾ͓/W +u7oo_??ګ* +n覶zk>ǒ>ʔRo>Wܞ^?dg+:ˣTZ/vw^4kѴ?_P}g>r +2c^ +K{)p/HR(n͂D):m`/qb^܋x{b#<# CyQܼt%ʁ3П}~ݐ^tKȰR(>_sRߵ/S}٣\ʍqi?>9ͷgwGr{ChwXRo%]%G~qhQR;NN>f-wOyDlֵ?ڂLV9lwQ/N!}K{{.OKطzo\'Yx13k__\|3lzjkX/c|.|o~{Թ?/7珐K.ns}qO{i<홧_U~f,^{3M{҆ˋ?^<<?Xk{꼬w\?"Odd9h?h9]y Qt!a=]?'>/}҅=+/ GU/*8|$?<ZH/ +>}ρ?/n_99<F-Ӕ}>#*/َaw@㣛> +!{]c ~<{F}d9y7ާ?:mx>碒xn?ާ>V +ȗc?[O_ꫛ˃J~q~ZW?;;|:8x(.p
^
j%VPnlSAwR9P꿝˹Bqq.]K_}]Ӄ#u +qꆜ<|wS.GvjgGyitwCqrWpqK!tBqJ]+'utx>ڧǡ>dcr0Uףqu&p\qq݄FDl
%|~CzP':sE nk}v;){euTb?u돱n}<>ScMuMu)Cc% Fu;o=|E{RA)G]Cb cL2Z!u*UzW2)]Y:EwX0x|n +N0IQc$VKB2NKX +;pf>XVt UXEPR{QJ+>WBc} 8}Uɗ*:!l
LZn}vu.ȆW+Rxݲ:'éյT,/8z:Ow -YVܙ>9e7D`3[X )>Ur+*9#-#٨W a|H! +0B=)k*R5d.t)p,CD:=GPJof׃zPqr} +sb#GX߇:xmqb ++\~N.n[)uz}mKvޑ!p!=n{Y7$Q.c:^8Iv
}!g +PK\|Y۸+JxP +5&2kۜ WD.d1$E뽒wzu*
ӍɪZߩ2^w䊑ʊxqd<:#rz"H`T"D-ߊ$y!ɨv|B0.*v
JfRʈ +;R\/~1[yL_VQ)'⤃HMc}rRXhN`zt^;:@9zՑo +q%!Ņuvt|u=|h\Dɲ|V +*A/:[ +}Hb&(!`%>Y-AREN4ZDzx](30#7[AmGN=AG-wfU]U
2x4;;QAMF}XAͧΝ$^OjgIi^G[T!bRv@ipdʑ6* +qrn=ꨣNNp;2GFws& +;xtNXX)%Ōsiq0_6s/L*mDA_lԞO)UA8X跎'y;=@+AnpIW32ݕNf38o"'4=RFǮ/|f;Xp{S,].^|7^,81ŀ%,::;*dtr5eF[@veiQ,Z!'!YX + Q'|2ґD=$0 4 +Mzp?\jZ=f~q=>@:gd4fIze}$:]ͤsPPQ
ԒոN }y(ly?;3wY8z{3Y:̼Jx۟`%5 XGo +'PF.ng"UPSOSV^7
jځ:UbCtNo(?10 +2?D"tS@
t13RҡJ}W)ҘgpB֏hqP8Mm а?iA\SLs!y}G3%~<u+:I$lk{Tf"V|W5Ÿt; +/^vE*g8
M]ONHk=0!c*+nH^9|w0wY̝Y(WDU +(LoS6Ì40)nq3k]~ ˰+Xd(}=O&eAb7用VJCxy[orV9w<CNҕ&ƹd%9>ĕ7QtWl+D3~nc~^o9 + +CTs˳swsݷM+өVܢ::w xM\=6/<(!c9yi)}[_=a/rkI,`9&F58
{HqPܨN&A!Ba3G6aKgtpۑg`v=@B-ѫX?s`᩹9<Yl҇p;h|1CW:Q4x6x̝f^5ϛz}Q9LlBt@?PٍP^sdJ].uЄ:Fsxt\̤/SeKLQ٭:ҽ%B&Aqe84Gr\)Kӳw֙!y(.|~gpMkP
dT +o@]k3O@2TRy~gk +bihR;;U3B +oLD+N +%k
oU`7/ZJb4iV}E-=U (G}/aB +4*
5zL27o'7'Sl轆b_`A_iJIG"/T5pwR2.5nT0LF}N"W
'\-#ƍ4L56K8|!'0vMX.i 3[zX IUL'H)WYFW"W?J c4pt,PFA ++k힏%{R"9G[ͼ5.}%fak_mSA_~z{g_~Rڌ%ڿ|{uq}zw_enbOlQATIcmʇ28j%x ?=Z/,O#" +ZtiϾ\#ïoO_]_Fǹ=r BϤXp+4lc<*}a-zg^f:Ӷ@gil`{kd%0m1߁Z|}O;\Ð4U9;RApȐhmO{(!xWXD#;{Z{xR¼E!{o-TIͭ+&RRk=yui}+iHwkcU6TohU<WN"4K_&=Jb4휙UC +2d.P'OJ +WỄ4`J5j&A +ӣQs("υQF:hXUJgͼ^#L^#v[GYP{E!H +^Izu@0^vӨ@>qe2deJc YAb4 +G[e+s +YK3kc$T2sؽ0wϊB~16 8B1sd^7 "%'K}K-Ap1HBG:k2DTNX<Y40%a>)";h$N
+Ef<e$yRԂ'a`Bh˲ Rkx>NRN!jĵXtցHp=SxFވvtd,uSA23.~D$bL5[%J2]W$y !s=*O2 y:~"u&פ³v1`1ɫQ" ю! suC` QE}Y8<x/ɶL +;Inxsd "3Un!uHeŇݣfD½ֱ('Db"eL +5LzK1ZGˣ-E~~e{\$ұ YkXzu1JZܜÓfz.L`Af[gN[&I +K88&e6.
Bv@/axGdiI"R1YEAx`f`QM
UQ
j5V
K~w-jr +ߖbg,&x3/yј Ce2EU;0>qQ2$so( يUV!P7*`:Zw5>fRkADaCqUԆ[ +Pl +oNZ$u;i;AEC7!=c]Ҋk(<T(:|/Yt(5$}j^47q2ݼXL5 BB}Lhp"[_z@A
,"fP +ҜWT7_KCJ<oQK_XeB/6yJdts=*%CA%7a/L2'jrl}C]WZ9Rk(+,c3I" +}<L k +r0dѥJ,(6bX#MhcpUJd_B~hEFsmy
.Ԇej-Y$&"5 v-nk?xc w4\}XMZQ*;̤nP~Kac`asH{Nፄp8R +)?M fRvDdgc:1!N^ʪ\lfd +i3boFS" '$
ּHgZ&em,e:ASoˉ>Aل#LUL2UՙIUTA%wyMLHAgܵiG.Qc.!xLS4>GIJ :Ȓe/X>%>̠|ΛAQ%/a-9N*]$8 +PQU +~O<QT<RΰL;ZFYiNiQsvl]!esT"r!/{#WLrs缢3;liZ"m ` +,JG)z<0fhMIz6&B2*;fp(:,tu3~x($RN$ҀzJNeAٌ &8Pmj=r"r2t;jHʫAN?u2S%E W:`M*_;Xp#vF"Rv[){M"tGu`Ejg7|2mO(©ewoU/߄u!)ãUf.df\.Kq*Xy+"0CЙuݎ76'K~
Q,zOÕ$]+ +n +oR
O o;dk +@KgֶJoҖW[߲j:&/N3SAp+_FIv!9]x;5ʵ:-P6I͆ 0V`l +D©l6 h`Fq na~HZ*)annǪ +`VƉ$-U<WDQM@X +vb{Ҋdkn$ ;Ţ{]SGCmiS"CʴjQC +R +N@t?z+x
Y϶zpw[ n$xc* MўR,?e*1|(cUk!P$JG" +e`@NrDL?:r-^ݥnG)UPX3~m_crbb#vFLG.xTlD(˄k wR{HL JF^b5+A*&*yd\4D|y$Cm<0hਛ>NGD@^2 JydDܾQ唔ԅ7s,<:)3iP4;`(8XvȝjFIn0h^
QYI4[;PH! րxiN#@DbKPbCBITrx=± +Ug^@4 +IG\GXc }7\E +bc!TCNO]0 +R7LH^;V +FC+-f:QCԀp@ aqY#xj,={Ut~S|вLZc|dEl48Ox(,!Z3恀փS+::)KO}jow@~QBG(~,{mEju9NiJNOg JN[`{$s1(j}jp5^ +]gM؉µ:T֣S߆x- H5LG'hvS9Z6^lY)| +A~MB'1A>cs~NHǀ>D. Qց!-n7#A6w%KP@3, B-3B;GhQ>W[H="#+Rq]"c\Wr["G\Wq]zu+]WdX۹H="G\W8#+RH=u%*ŭH="c\Wq]zuE1+RH="וH="G\Wq]jTu+Rq]juErJ2.\Wq]km"ՈT#+Rq].F$-5"ըT#+R8GcRH5"UuE1+RH5""Ո +ܻsTc\Wq]juE1+RtuEc\Wrlju%s]juEƸH]w]zuE1+RH="G\Wq]z#+RH=u8Stca=" +u0BPXwjHXswuքuGuu +eWKz9]r!Q@T)At61'5dt +č#{ 3^2zpX2RkVFϬ*'[p2z6[]=VL +@3ٳ2zض=NFv^C%%!
iP̓lrDPⱞX"2vS/ׯHFW֏Ds&K#;
YgԾG&A)cz+z.8 f!]*g0$TqH0x: o-t +\X+ +fSXQ2v& +b=KZJ_cGorF
#l"-YX Y$<+U)*H(V:`^>AT,IxaX0 +VN@o90Dr^b8 +F a%~"M:V@<2 {9 +Gi+p^@oBFʖbQ= Gql0wdi_{= `6qϋv0J +a3kfpMI[/{VwI|iQsrᵰwK2/\GOO"_LsMػz@`3zg m`"d=8v4:3ʊMiM.H'=k1Ī 5+koFN+@08g*a88F&NZD-U25BdƇN9@P!T@H*nC8v&`Jrg^s$&att`h` ZPXԍ|ѥ +.-J}l4{uQ?@}%ZEj̯ͥT+mS)|_PU\:OV
S)9Jap
Ó/*>NsKu +h+?|zB.4EseHE҃ܙR5krB!khb6|
[mfկ,lp1=Z +,]3F5/y9TA"gw9I
aߠ|pYóY%a-2 "!Ю\XpFͪ +Αd 䅼ro9p.v
j)0ǼJC3>T}
zSGtzdyKsUQ_Bkz[O +
{OBchg$&ϲZ +)Lm)J՝7K^aԾŴ)AѸSHn̗ p)Vjj!(\Td/'nbF7()8:o۰"6u^2eURAWgF\^!*nl;G1Bs^ɖi9I-TZm4-1ǂc2![^& !c3t,'4_F1tƔ%&QR0'([8>ZN|aQA
!DX?W`j+4D+4eG:2Ѝ(@g[d<Rǻdhu4/[;/Dn,wEw&^' ";Ggp|7f"F(kJU&ci]@~V DR:&#Kusaa`¦eY'H sCd/aZc_v: +Uv%N>.պe<eM0MKwfB-DZ;>~r|c>4EcS| O*DPahUy(f;lԞrndv*?B{1ҏ26:3`' +qU1bĻSi1G%b| 0)ƱFs0ЬaC +K_c_Tw.`cTďF-A/MGn{V={Ԯ^,A{aHO(o-aeIwO=eHuTBE9$#(q=2"
LbOF=A~U9O'Ҍ r,eW9e["C9Bds"Elkx:Gvf4,^ hmA#ER]aYj4pBF>g~'Z+w_^y}*:5BNL[W;-ٸn@1whؘZ+G?Z>=ݸE{n\樹m>TbQf"a/ 6ma)Tnw;vwvԏ:vkNc蚝7(SӍ'&M.ݲBza{ْߋLxkucX/4_oƮ[3"U {>1 +$NwVpY[+uf岁bSmebdjsؑYCǛp1mI PC؝-ag[@A!d +S:3gmfdS@d0 RHԡ +d +fl "qADdC֬Xv=3yhBUqL7kpz𝆹𝅥<e\xٖTgOc +[777Z͞a@")mpe@D3\\q+TP,X,PIk/`5{h5]tiW.5H<9cqA \> +%?5וYSfhpNR_6 D;4"~))B?:5KdAO|0>(kHxÁJȶvҟ2#_2&؏¬ +JH0bݨc@\rQЌ81TEYD( \vIU9{bRξHmܫ;N"SPJɯg +* +G4,9"c$@e6bQg +jYrᜂqG U79-`f\0HA2AO*@QZ[nFf4X0l`G1~R)"{:)E^GS:8%BiXŜfT]pS\i|=Q}w{1b[!YSPaAoTxTôK3KR#i
drI1=}Hf1/%?C\:#oRRR#f(+Q@+*\ +.Pp%6BY1cbc"~xYs3'LhSUN|ȌL*f)E!ѿ(pi#؍L3/l"FfM5*H'⌂DbJ-IoOq> ?0'-5 ,kT變!GlflA +GtJy212$$Ԁ$`: +5]Ob +iW2U + BA8b3ax(L*ҹE +-i#2٤RJ(挝 +8{nyII?BGrGu֠YìW39
fZcz +7UM!SX&? }.+G2gd, +>;9kF|1H|˵˴XLWrx0Ă#a&QҠ +B4. +@!?70H$֚ .liSN#"Kyh*f`M
] ߷ /-[ +.<+mHUXgAsX9ϴM9;Ar$fVڍ,0
JkH'3GIAǝLX|1B桗I bIۢW^=yg?a}%Jf% aԄB$u1΄<9*(XK'd#3-\YNfk +z!+ -Ȝr01s@QB]fN{0!L[IQw +pеat}`KzENu9 a|b^p"wv$^H3 +
)mvBX) +*gY`;m {t4圚R-ff6)sNL1$}<D;҆@D@(=-xsD.8#{ƜE"·9!?=y`DvfjI
@se"
f)+LA͉!6lLI-%g5 +9/7E&KqNx.p'C;lk)B 28)/)YabbmZ{,
!f:.n +zǬNl#u<W 5{"rB;Wx?.0Xn(kRswdJ +!R
Fze:ha\arMIa
5##:EbP (1Eꕌm9'%s`ӂ7zLieN1סMO
*$%2 VyH@BCַd(R <<sCPHp-5^`F0fHE+Ϝ$" :ij`JR@P@ns;(HY: +O3y)mO sޑيJ,^C#V+ 2aJY,"}s +QrĮ|H&Uq~F67mYmkɢi%6\H~"N;"vWBF}#%yNicSXSw(X-sOY58N,LwS,X`,VRs9G8~ F6+iհTx*O'悲1E{$˜TD85lؠR*@Ly2]% i$HJl(A-Mw2iuiPp3VA&Q> +x90^&mH]s%gm3@@f@ҼғF=W`9$[۔GV'NzK +wWR\:'ʛ_<BN#lq[O5n>o7Ͱ2~ +/{KnPǻ"E{_`ﮜt5}Sդ)6~8CAS+:kwwWw8Y p"Tt>i%oX +/zѰL(˸(FEѠ>E)X^fӍmmGVp7֞Ni=%EȂR.w7.TC@~^+_`V93m(yf-g&|j
\i?!<^H&_ndoo'f +X+`di +Eր|לÄp!WRtE"O"YV) ۰('/8h1fR +xAëm~?"AD
X/RO4J{ ?TvQjnW]alv9v! +3VZᏱ;cwNU4mJT +XAa1dBwewl -6U+5rʹAbw_/W*jh')Ԝ:uy@g[6,Ie'wB(97t¨iX5cR#U/rjCw4`WC)I-
% CqՠH8
h}{FA*b<MYh&j~/jq 暧.2!-E +&orr'frK'qȴ㑩OhTAO{<rX:s= {.Zm" +~@XPNکFw
]Eb$PPjP(-(w%
n9m}lӄ<}$'8\g.NjFi2ҒI#w{G#Hx33&4xx_ +QNL-vڍyov5Ǖf7:-[Y996mntcfb* >_#.6 SafzQj3͡+ojATn8h[f1Xo+v~7Q\ ,wX<7aN3m>gtA3\/mPiO4Kw-
wTsc軕mSRR[oS39cLB|W (ُ_scK][cktVHO݂,K7 +p&?M[q}wjo0qkeOF6pa\Q1/222:KjC"tCT1((ޱcHѱ?mxs+N#\醊 +17)&ь?Sx%bq{g=}1)̧scn0Oݯs+Zt\Pޠe:3E.zYg1ma{l}N+@h3<Kܣf8a}QHٷM!i7jzEŏ\̮c d~,hI +!$"a ZK egj{1ߘhLc{9ߠ7\[_>Ov64n^yl9> +I+]Rt?"9]qcϛGY+qZ
.-K[~kxڏ7'}SGw,\j>nR]/f)WRCZH_4!JUdA۷vىK7Nv[dv-g?.zvY?5g#'`~64_0(myHʒg'_l3z:G>t5/16pSrjv=j[UD;xɗ?Á%Q+͖}k[m۾)U^P܉;
v=2;n@k_;J(ǝG_h/"OUlV?}"(3z+VA.(dzI
^?߂zݎ7v+_E^p3q
DVWd,aO ~so\Xyqz=+"IP~FY÷$(*PRAI<eOV#f\u;??<gQMI%
:;mF\@&D \!Vog}%R/JHx})Hn@ksDK?ݷ'w|Ƌ$'}~HT|TL#~dHgswɕ$R=Tx7
TNA|xq2W)rXRH83E^92g5N+Q?h7}6:p^Z_i5jU[Ui=%>I~Jy@'ᛀZmwZ/(>24rLBSV[lGzstIS$oi)^D>5VS:67Pm76%nLre"^:S4<cltV{6i7h$2%K/n?nJg +K +W +( +QffR2p + ,U{H%
3MF~ʟMW,dI2DA@T&}PKAi}JެVdUa"OyĈ<BdYVuL6`V ЉVo$mL*YjE\.KhE*ys%]z
n@yLGIM +%̼0XH-AH+K2}~pء͗7 +mBX\viIQ*pƕ2/qnAINۡRY$H<E"sզFXѤ(&h*+E 3&2צo,Z 5k6KҾ +MSssS#C~Et, Km@ܶA@] +ti\Ats{qm3W>q"-2]*R'6BD8Z'f4IifN"gӁLIF4:ifr#dȡHx9玐vI;4!Y;Z3ZEIƔMه'9#8"ӄ҆Zٔ_G k#qˡuQ4)Td-5/>ڰ̐:c;O4*Rb":aSbLjEjD=An5%D0j$I5bZT[b)і+i4F=
"^sљJҔ&gv$1|iߊᎬO]'cTJ%L2ӌ$Յf28V@`׀)j-Je
姆%`]hrǡJÅՠuD +A2lXf|N*<R2+7&w?cj` +AE-0^6-QR*3DJJeA$Pu2URn i + YƸ_Ӭr,mst$D]gnp?JYK},iSalːJi,BF-_ׂBr4ӑ0ӗgƪUepf7^2kx2aQ;w0?lׯFfiD۱ZlmyhrBC'ϴOw2y:! +nƊL; -"Ķd`ї02
ϳZ +j:.HsR{z?D(M";,Q7MsBdk
KgZ\jc<7p+U|Z.omEm}'ɱGx?ŖO>fRSTAi+nNߗBK\̫كNJ0c<Xi1-"Dao55b +^OC:6f0t-'&A%y|#I:$maYug$9yʶDP6ZlCfuEevZ`BBI{HYpŅUWR*$t- .eL+!KC?ZZנDDseJQeIaED3@5À#Π"Ӥm;:KsbLHqԦkh')w勼F +QF2$?Z_=$NfrEru1HjZ[]4 *g^ɟc0fl_\2*\'-~\o
u`.N}mŰizW{4ZȁKylydMƍsp5vT?GAjv^Nv Zzjѕv[)f
7dD3^?v51$ͯo飹-;͡3 +3~uǗ5]
K??i+~iaU./Va0QyzwzicCNY:b"#w<h,W#1& +.=_ݸ{h 6W8UxH wWra4\
ge{L'ƋFn ;sdIje>u}lߵz9a?nPXl##jhTL76?n{WO +or{wȨ)iz*sx6\/
iZ/Ryv1˯ھ%Y4*}UGj|RRDӻ-Ib=}zrZV-\ZgR};uBTrLIjei/a;u,m7#9Ƒ|zg{!ehH`ͳz47vx<Ġ.>~0D٫v*w3tƓAȣ̏-Y+Rk[7Xk~#w;}ɊgdO*)iv{w75Gyi't6NCsP)#|5YjI2;+wJz99ll3\Kۮx#|r^y!+Q1<h7-$U56O'/ԉw;!Jwo7q*#wwЪ"/OM:~(0^_%TA[w~oƑpq;@(Vl4OHn;܋ǮySs2tZpq~Pu5UE4uhf0a+&rGmHѷtuv:gX|y焤uG:Gu_+yN7g/>;3kڛ w;HTg^4thHYmp7ŷw>~]li!".4Jeq,7#L_g.{3_ޗ?2lvj/2t.1+6lCzGoKT_D?[8lXɿxwTgBEK͠lMK'GQ6|RGPR[//O,.)u3Pïam2Rޣ;ons(8.:'䳜%\銼ە74[n};cg|m) Z"Պ,
r˩Qgp`V)p=i2=m:}76/i#ٗ3}zQFqֹo[=FLG8\mؚ:cgx< hjغ}3h{Gg٫jJ3:IX +Y}cO<:j<D=Vd/G)9"?lF{X9C}84*e Rc
#?ݴQO{z_T=sЃAԊn(Jh˄_X'nleRqKeζVb=ʶGk$ޣ{17s[8D_^{Ыm:Guko\ov/9ؿ}xp}½צ.t_wֲ@ݺV&BI2X-uqŅkǃ}9718q +.y+7[G}iW'nW?YVf-6KwWofOWկϗ?t/?\Km˟=~ғgwfqë&O֧nMLbyy]쾸|0\9_h9_ZmO.?v̐+o̧KV<S|ui{Esdb0uҏVԻ_]\t}}r{[G|\]8E2__]ܝuyK0{d6Qnt|n.[wՏׅozo,[~?O띕_̵r7t3x1rwk}:x3_齽lus
5{hLfv"u<{|uq:lw#o.>Xk.\ZpUd-BE&&_*||>_/]/7o]ovX-iosY^L{~ +'W+Yy+SӅ?7\Kb95b7/gѱA\ګSg?P!udZKgf,|كzK{S{1+8)=%\MM҅3y_NC||O?9ZJ'k}x+|.cDrKC]\qս`ṷf/J5df0.WN@/-LCă;r{&W8\;k;吃-fRنU"5VoczmӮ>QriKH2k֝: {.CVBc8bf^>S?_yY3+w95=ώyb|q>ƶO?w8VBzs𪬈ҍ/!<\`ZWh]w.342./זۃ!L3SfKf[a7? |ՎRs\ Dp_=n1^/;i뤷weu.
Ä4'Qn~{{}}q ɓ/oFB/}KÏ,ھ- +7r+o/mGk4Hv6O$ƽ>oΦϥt;/51:x>S,cOgf.;>>\O`s3z"fGR;>8/g9w
ڂƪb8/wdᕁ1U\vgAU&aiVRξ˝W(hTG0+v%:`p~wa7zUq.GۙBIjz<ke`quSxǥF:hY_ u:''Ô w{e!92Ӵ_O)?~T5gh8Ԇa-{Hȧ"7\rOlz8^KNL9<ݧrfeTLD j>A3/ +xS7Тd._`ԅ#`5AH5fe?Ƞf5藏u_]WJG18m"~f~;cu葤rj\uĿrgJӱVH}m8gޛoPlncћύ^R-Y4R_MWAP!ފr}WQVP9̾8ln|1~rؿ h^1K>xl!q6[ܫ{r)MK|`o Kwo oO]Y+D\O=fSh
1O[WP
+S>NW3Hb0r0{_ +O/[_zS?*\tntc8f>&J +P: +a> EƚDg֏~o2O> +؎z2пW.XH{ۃ툝c}}|VvL/v}zjJ6"IoCM/&w0fg_\d^Щ- ++Kz<X̕fn4/biҷ$BCI0im2te֛HhAiN +cn0]RMI?zk SNؼW6c^MLy>X$Vl\:`ގOYIf8ц3<n|c|8+'RukIn2(5DqYhtfU
;pmBkK{dc;Hc=1j,p
Wf!~Jxx}
#ؘ5~@vK\5
^RVkбBZX%l(V_uaYheK& +=8OB#[{0j;</OP{q Gs?b:\J(w%pv +u[Ԟo<* +quU? +ۨP^D*
|r8[~Wt>qt|Kom4K(6=7oG(4+R%*EB3/w,/=UP'^C7j{Y]<>BP֗*x9?..ӣcB^BN>v/7eɺЫ|۹{{,f| +?B(5ý-'QB7ٌh(h`!!nrB3Q- +(6g4n+A|BP-s,4 +J??^]BW'aCK= .0X6P +(6fJQVPhqeR5o +z_F
02O\F/QŢןB9Ch&P2f]^lpIèM+Uktf9Hz}kI[: |
\3J2|!=]3Q~y[VϱR=Ͻf;WW8f~~&<O@~ڿ8T8ڻ5יAO?Y÷l~ޜc9rxA|=䧯ܱ1Nzgu;ıq%!}
tw$>cP'}}98
Ϯ#˓9v9d+6DzZGe^
D^+rCKQ? |:nlytzLXfȶ +ཊ'R/?Ohްdͷ +ۨ:GgD?
ьUfV(H)o/}-/ﱨN..Z,Z +Muu3P0{LV! +СX#k\4B*Չ`^|,E?PG-E7bPhue#OVhO,jp늅6EC\<:"X|YNcfjSnؾN3I[{r^WI<F<F?y`ؐP'~~<+D>[Ag/%zeX&|'\ͤ ,ؖ>qs^!5*?ZY(/`)Ums/N$r8:$s:ִ@@*]$}> +~dUqP)mk?ݫ?4~4;h˷uҎTyhCl˧!^Sd̪xmR3$xe, +1>TIX]faԑdrdU_sޒy$yk.2'hV=^DB@:`cͻ<Yf0>rxOyzj4*?βimig18qe側`YR*,i6v IA)3G
0@vr2r< +aAmytgt/[& bU/lF5B/^XYq6|rd}\tܥe m{
e.|Ct,{+*@u6υHüm=®q$ 8,iOaD[tݷVk_m;5Xk +ǘ]'a)8?C8JD@=81cQӴTř֕Ph
y5zL`c%/wmnok@= &^w!K;311'1&,&Fmj-gD4#㡫gre!B-?=]y=3qse+>e{v3#1tt;E:"Z!Ӣt:oACn#(hAG::w'aЙA,t)[&@`*YzzK!6TŰF8d~-ޗ~wu=1`cc>tNJ*s|6=9Q{|4b8,!_r}ϕy3=J䣍V%+l#)BAg +I?x(aU?V_fa >:Bt|)NK<;-9feo6+Z>Щf@rٲ&y{k%/g A 0gdBީưSV|6bD Q@?+jA6.g?&7{'ꒆ4"$4̰D?eZ^Q(X!IϹ3R [J6 +wx-ppzȀ8g<w#v=%`'x8ݎCfx8Zl#H@JI-Yb"gL1vc95(@b{4:}F:,8"l!:;@r"(1
1s&
!2E<l:0ޞ6Pi +C@z#uRqogEKAiC#:;Bl-ӴHa#mOC{
5#fv]P+Tiͤ7B])#"l~;A + +b#R!] R!c
Kb>4@ȇ:2 +F +5brg%Z_u%3
n|P>/ aK_I`엎5B꣯!=]\hJdT< +#P+]Irc|=Uнx3QLo{YOY*)_YO*wr`Sl7UׄꏡJ}1JS<uҎX]es{)1Hڠ!љQ&}Vy쒍> +3R*r9*(2JցD
C%2AeYL":/$6{lYDw[Ӝsho掘] Ę掄b1HDwU=g2CR1(BlNaNso66;8J<iNdY\,Di~cy@ӎI lcgұD4 f|!(v rK2[-P߈'lu6iz!K
&9 +c"HV(H9\}F:L]h"v1)leGĘF`}T@Hl'ڲ(3EdeÊ^i1!.D#+qRh9 2E9ع%a&U_*!xpK"fMGIo0Bt@g`:fTAhu¡X&o0l1L3JR
EpŦye!Iv)OĖ)o[<)oaHp%C6pG +s9pz9D?m}SXٛ9.CXkD>&A|%9WztF<ǶC@L.c&P<'v+vW*i6ג1X@Lq%X`LFNURJaL +1ìl<\n1|:8VOV֡ı
Q@sHH +P'*1 +99 +P']o1VNQ@e +P%P_cnI3mOӖ1)ɫ$ȶ|3B7POYX;OgΏo$#GeR>$z`RJI,m6.Άbt6y4MP~6GPy^!땸~G=j~~se^?;$Ԭ~.#.1iyt1e e^?z"T7g GjfYo:,~t(yK](
Y$ա]>`S~]ol|7"R7gajji3p[3CNOwfcx +Ž$="[\k[S[Vh8j~t"vy(cm9w/D&s>)T,S4)`m;rnv4?w7o1N0GoGlOmjq||4v0|~c1ٝ`pψH.αmCSR[9soS~[1^wq>Pmi9^OSVy̮dmV?)gNûyNy,EՏ~.{^z9<֕[SUV
y +0>'*sgX<-gvӴ0+OT4̕.ٵK7u$˘{?kq7%͐.~3J)֭DK}_0\x/\5N ʳ?q'>x'E%?y5Co_+p볽u!y
Ep~KfkW7ɿqK'cAҊ]dx/'ÇWct{>ҏq9MZI`MԵĿ/)yprG|艅;1|$OJU>\5upXge|I˭lѧXzeO||ds=6͞
pA$/tvZbbh +XEP:]?:zt/Bp=M&jPbEsNBip&MAZt$R({]JLBIL| +)> ^c&t'u]K߃-EڞMm?sB}M[ޟ<E80$:|KU(9E9p9;ѷ>yfB3j+$R[yO{=3x&}'8Yx6i)<~@7f֛,5AonfS,!ZfiL;G
j-
*{|@KhøWΒ@8.[JzhKg"`|̅y0s"kd_7PbȮ71䉀JzjqOY>|pgMa)ʽtC~gCVs\ ;j_ +ɟ7P34IvVlQ=ǯ@f&iE+<$];.?nFw:Kp$R%h]u}tX5'T{݃ @g$#)λ<Y6ԛ+hy6u'Lԗ|[ 9 /*9(c%M_ +^LX(,0ybdӻ@@bB v +e@_^*Lż?M9xX7cG, +ljց2*LԾ +6W+=!Ǥf7%|pNt|9{˘Vn&c`J)2 g1-'61FcS͈' +L +J%Y[B?|[.ԟ~x7fF?8Zj>{3X'r QO쐯4|O1Zfup:_o{@$ƽUw-u *_z7a!5ޅ IՔbz +[Y'MgbP̮eXV܆QG1I+.K7qL.W#(!; +V՚:(\ak<O?oOU]mq[A܆b?* d`wf$,Ȋ&".틨x&|]W]r)ǩh);:}NMrTN֝v]ރWVYPiъ=dCQ>Q^dj?j·n4ऻIv/4JYeDC^Zqoq|~W/w|:(_
v|(F9ْrN'TP<xĮ䗼)mQ,d(~*7If/q q?8b[,VL)t4?Ui +cjag. +wq:0hΐs,nf>̥zQ9#P>
?KW-)/O=oۡ,"h*߭Uߑ\m=V&(%PU+co0Ud9 +kacl7]jhy\5Cgf X/)TL@]p`KG3йhjS@5h%|UM\}P
Tq8ZTn-jK*THܚCXv+rMf4mԞW/$,vZq
ҪhgW +d=tdǿ22呜{EfV,|iKȰUaxX "Y +7>ݮ@Bp(b;C!q 4Hdnlu!9f(6@Bs܌f.hG<*#UhK鰁1VNwԮk23Zp9f0N[J +/4o~PzÇ-}Hr1`z" DV_d 2L + +_C'fJX`b:ynހV-h~58:\ب6uXfF%V摆DnJh!:yP }c-V1TVjL%*Zqbrpr~Y9kIIUIP]3Q Q: w[uZ/] +0$OU+XChɁ]jb+I+TQ[FК[|[~E*^>'M/^Mޥ=?:`; ?|[?ΏV7NLʲW[Q_@<heL빂:CkADZ`=#i$yWX"B=tX0 ikADZ|;Z-;ZIHЖa-HQւ +jhp:L0{[^1@z˘*HB}et +-_ +JFӕuQ8w|=~t^~#l82dc !FM'SPf4oI
oH2!`L!_|,kÉDڭ8!p]K&4CN;i0x~Le2ЍgE@PƷ1!x9%$%t +.aOJH'K&3)\B豈RqI$Q(23,9D#ؐ + BQU:|@]J*HB~FopJCU +[ +H8('Z$M/>~VEOp#qDr$aA~*u4 + +?oe-NȊH8#CnXX@e&"*vЀ"?*Hc[Zgl]׃!HrҔg2xao]fKw@5]j &_o`;F\JH(7 +b$ݐw2@ᡐCZ*T-\1m-2]tQ ",73^[I03eRI-di
|G仿 +rD&G +44^O"X[MQ"!jh˯qm8Hc>R>M3Z艀TK*]=PhFW%MJ%ƫ*hXDLD<xELSFNT_xbP<PxƇi,M[,/M=hiniN &jDK|4OFt?hEz{!oE.9j,zߓgMUo5'hQPW?p?iQ
endstream
endobj
5 0 obj
<</Intent 13 0 R/Name(Layer 1)/Type/OCG/Usage 14 0 R>>
endobj
22 0 obj
<</Intent 30 0 R/Name(Layer 1)/Type/OCG/Usage 31 0 R>>
endobj
39 0 obj
<</Intent 47 0 R/Name(Layer 1)/Type/OCG/Usage 48 0 R>>
endobj
56 0 obj
<</Intent 64 0 R/Name(Layer 1)/Type/OCG/Usage 65 0 R>>
endobj
64 0 obj
[/View/Design]
endobj
65 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 17.1)/Subtype/Artwork>>>>
endobj
47 0 obj
[/View/Design]
endobj
48 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>>
endobj
30 0 obj
[/View/Design]
endobj
31 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>>
endobj
13 0 obj
[/View/Design]
endobj
14 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>>
endobj
74 0 obj
[73 0 R]
endobj
89 0 obj
<</CreationDate(D:20140512175924-04'00')/Creator(Adobe Illustrator CS6 \(Macintosh\))/ModDate(D:20140917122313-04'00')/Producer(Adobe PDF library 10.01)/Title(Print)>>
endobj
xref
0 90
0000000004 65535 f
0000000016 00000 n
-0000000173 00000 n
-0000041541 00000 n
+0000000201 00000 n
+0000046103 00000 n
0000000006 00000 f
-0000245520 00000 n
+0000250900 00000 n
0000000008 00000 f
-0000041592 00000 n
+0000046154 00000 n
0000000009 00000 f
0000000010 00000 f
0000000011 00000 f
0000000012 00000 f
0000000015 00000 f
-0000245777 00000 n
-0000245808 00000 n
+0000251531 00000 n
+0000251562 00000 n
0000000016 00000 f
0000000017 00000 f
0000000018 00000 f
0000000019 00000 f
0000000020 00000 f
0000000021 00000 f
+0000000023 00000 f
+0000250970 00000 n
+0000000024 00000 f
+0000000025 00000 f
+0000000026 00000 f
+0000000027 00000 f
+0000000028 00000 f
+0000000029 00000 f
+0000000032 00000 f
+0000251415 00000 n
+0000251446 00000 n
+0000000033 00000 f
+0000000034 00000 f
+0000000035 00000 f
+0000000036 00000 f
+0000000037 00000 f
+0000000038 00000 f
+0000000040 00000 f
+0000251041 00000 n
+0000000041 00000 f
+0000000042 00000 f
+0000000043 00000 f
+0000000044 00000 f
+0000000045 00000 f
+0000000046 00000 f
+0000000049 00000 f
+0000251299 00000 n
+0000251330 00000 n
+0000000050 00000 f
+0000000051 00000 f
+0000000052 00000 f
+0000000053 00000 f
+0000000054 00000 f
+0000000055 00000 f
0000000000 00000 f
-0000245590 00000 n
+0000251112 00000 n
0000000000 00000 f
0000000000 00000 f
0000000000 00000 f
@@ -1461,8 +1482,8 @@ L: G&TJ@Z0fS><r$Jt\O"p"+E. d|BW8 0000000000 00000 f
0000000000 00000 f
0000000000 00000 f
-0000245661 00000 n
-0000245692 00000 n
+0000251183 00000 n
+0000251214 00000 n
0000000000 00000 f
0000000000 00000 f
0000000000 00000 f
@@ -1470,21 +1491,21 @@ L: G&TJ@Z0fS><r$Jt\O"p"+E. d|BW8 0000000000 00000 f
0000000000 00000 f
0000000000 00000 f
-0000042957 00000 n
-0000245893 00000 n
-0000041909 00000 n
-0000043257 00000 n
-0000043144 00000 n
-0000042238 00000 n
-0000042396 00000 n
-0000042444 00000 n
-0000043028 00000 n
-0000043059 00000 n
-0000043331 00000 n
-0000043549 00000 n
-0000044529 00000 n
-0000048828 00000 n
-0000114416 00000 n
-0000180004 00000 n
-0000245918 00000 n
-trailer
<</Size 56/Root 1 0 R/Info 55 0 R/ID[<C608F11244074067977B0FAE083324B3><9E88FDBF18DF47A7945AFDB7B8126468>]>>
startxref
246102
%%EOF
\ No newline at end of file +0000047496 00000 n
+0000251647 00000 n
+0000046471 00000 n
+0000047796 00000 n
+0000047683 00000 n
+0000046777 00000 n
+0000046935 00000 n
+0000046983 00000 n
+0000047567 00000 n
+0000047598 00000 n
+0000047870 00000 n
+0000048088 00000 n
+0000049069 00000 n
+0000055399 00000 n
+0000120987 00000 n
+0000186575 00000 n
+0000251672 00000 n
+trailer
<</Size 90/Root 1 0 R/Info 89 0 R/ID[<C608F11244074067977B0FAE083324B3><863430D6442A4B4387E3F00C72C80C81>]>>
startxref
251856
%%EOF
\ No newline at end of file diff --git a/art/ic_launcher_material-xxxhdpi.psd b/art/ic_launcher_material-xxxhdpi.psd Binary files differnew file mode 100644 index 0000000..ef8413c --- /dev/null +++ b/art/ic_launcher_material-xxxhdpi.psd diff --git a/art/ic_launcher_material.ai b/art/ic_launcher_material.ai index 74bef3d..636f523 100644 --- a/art/ic_launcher_material.ai +++ b/art/ic_launcher_material.ai @@ -1,22 +1,28 @@ %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 48233/Subtype/XML/Type/Metadata>>stream
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 68 0 R]/Order 69 0 R/RBGroups[]>>/OCGs[5 0 R 68 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 47721/Subtype/XML/Type/Metadata>>stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> +<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c014 79.151739, 2013/04/03-12:12:15 "> <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/"> + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:xmp="http://ns.adobe.com/xap/1.0/" + xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/" + 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#" + xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/" + 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/" + xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> <dc:format>application/pdf</dc:format> <dc:title> <rdf:Alt> <rdf:li xml:lang="x-default">ic_launcher_material</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>2014-06-09T22:14:20-04:00</xmp:MetadataDate> - <xmp:ModifyDate>2014-06-09T22:14:20-04:00</xmp:ModifyDate> + <xmp:MetadataDate>2014-09-15T18:58:56-04:00</xmp:MetadataDate> + <xmp:ModifyDate>2014-09-15T18:58:56-04:00</xmp:ModifyDate> <xmp:CreateDate>2014-06-09T22:14:20-04:00</xmp:CreateDate> <xmp:CreatorTool>Adobe Illustrator CS6 (Macintosh)</xmp:CreatorTool> <xmp:Thumbnails> @@ -25,16 +31,11 @@ <xmpGImg:width>256</xmpGImg:width> <xmpGImg:height>256</xmpGImg:height> <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FUHqWs6VpkfqahdxWykVUSMAzf6q/ab6Bk4Y5T+kWgkBg+tfnf5VsSyWaSX0gruP3aH6SGf
71zYYuy8kuezVLOAwnVPz81+aq2NvFbL2bjyb73LD/hczsfZMBzNtRzljN9+anne7JLalLHX/fbG
P8I+A/DMqOgxDowOWSS3HmbXrg1mvZXJ/mNf11y8YIDkGHEUKdTvz/u5vwyfAFtw1O/H+7m/DHgC
2irfzNr1uaw3sqEfymn6qZA4IHmF4inVj+anne0IK6lLJT/fjGT8JOY/DKJaDEejMZZMm0v8/Nfh
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</xmpGImg:image> + <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FUHqWs6VpkfqX93FbKRVRIwDN/qr9pvoGThjlLkLQSAwjWfzu8rWJZLNJL6QV3H7tD9JDP9
65n4+zMkuezWcoDCtT/PvX5qrY28VsvZuPJvvcsP+FzNh2VAczbWcxYze/mn52uyS2pSx1/32xj/
AAj4D8Myo6HEOjE5Ck0/mXXbg1mvZXJ/mav665eMEByDHiKFOpXx/wB3Nk+AItw1K+H+7mx4Atoq
DzLrtuaw3sqEfytT9VMgcEDzCeIpzZfmn52tCCupSyU/34xk/CTmPwyiWhxHoyGQsm0z8+9fhot9
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
7FXYq//Z</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:01a1d342-952c-d340-9f61-9fd0d1780793</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:988cbbe1-e1c7-4e43-b107-9ca1a5d992c8</xmpMM:InstanceID> <xmpMM:DocumentID>xmp.did:0180117407206811822AD6C1BCB96A7E</xmpMM:DocumentID> <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID> <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> @@ -62,22 +63,14 @@ </rdf:li> </rdf:Seq> </xmpMM:History> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"> <illustrator:Type>Document</illustrator:Type> <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>True</xmpTPg:HasVisibleTransparency> <xmpTPg:NPages>1</xmpTPg:NPages> <xmpTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>96.004883</stDim:w> - <stDim:h>96.004883</stDim:h> + <stDim:w>96.004900</stDim:w> + <stDim:h>96.004900</stDim:h> <stDim:unit>Points</stDim:unit> </xmpTPg:MaxPageSize> <xmpTPg:PlateNames> @@ -599,9 +592,6 @@ </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 10.01</pdf:Producer> </rdf:Description> </rdf:RDF> @@ -627,27 +617,28 @@ -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[0.0 0.0 96.0049 96.0049]/BleedBox[0.0 0.0 96.0049 96.0049]/Contents 8 0 R/Group 9 0 R/LastModified(D:20140609221420-04'00')/MediaBox[0.0 0.0 96.0049 96.0049]/Parent 3 0 R/PieceInfo<</Illustrator 10 0 R>>/Resources<</ExtGState<</GS0 11 0 R/GS1 12 0 R/GS2 13 0 R/GS3 14 0 R/GS4 15 0 R/GS5 16 0 R>>/Properties<</MC0 5 0 R>>/XObject<</Fm0 17 0 R/Fm1 18 0 R/Fm2 19 0 R/Fm3 20 0 R/Fm4 21 0 R/Fm5 22 0 R/Fm6 23 0 R>>>>/Thumb 24 0 R/TrimBox[0.0 0.0 96.0049 96.0049]/Type/Page>>
endobj
8 0 obj
<</Filter/FlateDecode/Length 327>>stream
-HtRN0+rFk'N\ӄ&|Ɓ6_InTJy?gx찝o&kmIgp7j?
"ʲd/G3<=~%Qr=ԍ: p9aƍ,|͘o4Wk[*]վÕY3
'xZ^y弛U ۅ=˿tA(4G<<dOVfˎTSYS-U5igj]-s̐cI)ـbDZC{.,8 #ꖒ!"epw*qGSwG +<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[0.0 0.0 96.0049 96.0049]/BleedBox[0.0 0.0 96.0049 96.0049]/Contents 70 0 R/Group 71 0 R/LastModified(D:20140915185856-04'00')/MediaBox[0.0 0.0 96.0049 96.0049]/Parent 3 0 R/PieceInfo<</Illustrator 72 0 R>>/Resources<</ExtGState<</GS0 73 0 R/GS1 74 0 R/GS2 75 0 R/GS3 76 0 R/GS4 77 0 R/GS5 78 0 R>>/Properties<</MC0 68 0 R>>/XObject<</Fm0 79 0 R/Fm1 80 0 R/Fm2 81 0 R/Fm3 82 0 R/Fm4 83 0 R/Fm5 84 0 R/Fm6 85 0 R>>>>/Thumb 86 0 R/TrimBox[0.0 0.0 96.0049 96.0049]/Type/Page>>
endobj
70 0 obj
<</Filter/FlateDecode/Length 329>>stream
+HtRAN1>#NlrN8 +jxR@+e3>/`\-pGGPӛ{GeYs㮕}Ս>adVdr/ܸa͔|Ts2i?\BMÍYG֭3_<xC yWy103{.)eb#aD<&ygMd~kQI;b 9&DސC}?hW9" At@zeTRR#TT<QbwƊ+oh|J}0 8;SUNYn=c*#QlGP7<UC#_ban]V91Jq-\C"FB:ZgkF`n4W@j3/F3Uq,H?.2+S4mDGW -NNu<j,A0o&c1;DMaZVSf#(P]DmCN<:_YU17$O8CWhZ+gd6i$~>
endstream
endobj
25 0 obj
[/Indexed/DeviceRGB 255 26 0 R]
endobj
26 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+NNu<j,A0o&c1;DMaZVSf#(P]DmCN<:_YU17$O8CWhZ+gd6i$~>
endstream
endobj
87 0 obj
[/Indexed/DeviceRGB 255 88 0 R]
endobj
88 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
17 0 obj
<</BBox[16.3711 74.6152 88.6113 18.6953]/Group 27 0 R/Length 360/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 28 0 R/GS1 11 0 R>>/XObject<</Fm0 29 0 R>>>>/Subtype/Form>>stream
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
79 0 obj
<</BBox[16.3711 74.6152 88.6111 18.6953]/Group 89 0 R/Length 363/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 90 0 R/GS1 73 0 R>>/XObject<</Fm0 91 0 R>>>>/Subtype/Form>>stream
q /GS0 gs 0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do Q 1 1 1 rg /GS1 gs -q 1 0 0 1 81.043 48.2192 cm +q 1 0 0 1 81.043 48.2193 cm 0 0 m -0 -9.068 -7.347 -16.42 -16.41 -16.42 c --25.474 -16.42 -32.821 -9.068 -32.821 0 c +0 -9.068 -7.347 -16.421 -16.41 -16.421 c +-25.474 -16.421 -32.821 -9.068 -32.821 0 c -32.821 9.07 -25.474 16.422 -16.41 16.422 c -7.347 16.422 0 9.07 0 0 c -44.856 -15.326 -15.316 30.653 re @@ -658,7 +649,7 @@ q 1 0 0 1 81.043 48.2192 cm h f Q -
endstream
endobj
18 0 obj
<</BBox[20.8711 69.623 95.3965 0.267578]/Group 30 0 R/Length 276/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 31 0 R>>/Shading<</Sh0 32 0 R>>>>/Subtype/Form>>stream
+
endstream
endobj
80 0 obj
<</BBox[20.8711 69.6231 95.3965 0.267593]/Group 92 0 R/Length 280/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 93 0 R>>/Shading<</Sh0 94 0 R>>>>/Subtype/Form>>stream
q 95.396 40.383 m 75.831 60.223 l @@ -673,26 +664,26 @@ W n q 0 g /GS0 gs -52.292347 -52.292347 -52.292347 -52.292347 27.5405273 68.3037109 cm +52.2923088 -52.2923088 -52.2923088 -52.2923088 40.3362274 63.0186615 cm BX /Sh0 sh EX Q Q -
endstream
endobj
19 0 obj
<</BBox[0.0 48.269 96.0049 0.0]/Group 33 0 R/Length 312/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 11 0 R>>>>/Subtype/Form>>stream
+
endstream
endobj
81 0 obj
<</BBox[0.0 48.2693 96.0049 0.0]/Group 95 0 R/Length 313/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 73 0 R>>>>/Subtype/Form>>stream
0.149 0.196 0.22 rg /GS0 gs -q 1 0 0 1 48.002 0.5 cm +q 1 0 0 1 48.0019 0.5 cm 0 0 m --25.941 -0.097 -47.781 21.341 -47.996 47.752 c --47.997 47.836 -48.002 47.586 -48.002 47.502 c +-25.941 -0.097 -47.781 21.341 -47.996 47.753 c +-47.997 47.836 -48.002 47.586 -48.002 47.503 c -48.002 20.991 -26.511 -0.5 0 -0.5 c -26.512 -0.5 48.003 20.991 48.003 47.502 c -48.003 47.586 47.997 47.669 47.996 47.752 c -47.861 21.356 26.428 0.099 0 0 c +26.512 -0.5 48.003 20.991 48.003 47.503 c +48.003 47.586 47.997 47.669 47.996 47.753 c +47.861 21.357 26.428 0.099 0 0 c f Q -
endstream
endobj
20 0 obj
<</BBox[0.0 96.0049 96.0049 47.7524]/Group 34 0 R/Length 304/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 11 0 R>>>>/Subtype/Form>>stream
+
endstream
endobj
82 0 obj
<</BBox[0.0 96.0049 96.0049 47.7525]/Group 96 0 R/Length 305/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 73 0 R>>>>/Subtype/Form>>stream
1 1 1 rg /GS0 gs -q 1 0 0 1 48.002 95.5049 cm +q 1 0 0 1 48.0019 95.5049 cm 0 0 m 26.428 0 47.861 -21.357 47.996 -47.752 c 47.997 -47.669 48.003 -47.586 48.003 -47.502 c @@ -702,7 +693,7 @@ q 1 0 0 1 48.002 95.5049 cm -47.86 -21.357 -26.427 0 0 0 c f Q -
endstream
endobj
21 0 obj
<</BBox[20.8711 69.6465 81.043 26.3252]/Group 35 0 R/Length 476/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 11 0 R>>>>/Subtype/Form>>stream
+
endstream
endobj
83 0 obj
<</BBox[20.8711 69.6465 81.043 26.3252]/Group 97 0 R/Length 476/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 73 0 R>>>>/Subtype/Form>>stream
0.149 0.196 0.22 rg /GS0 gs q 1 0 0 1 49.8486 69.6465 cm @@ -723,7 +714,7 @@ h -28.978 -36.285 15.316 -0.468 re f Q -
endstream
endobj
22 0 obj
<</BBox[20.8711 70.1152 81.043 26.793]/Group 36 0 R/Length 445/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 11 0 R>>>>/Subtype/Form>>stream
+
endstream
endobj
84 0 obj
<</BBox[20.8711 70.1152 81.043 26.793]/Group 98 0 R/Length 445/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 73 0 R>>>>/Subtype/Form>>stream
1 1 1 rg /GS0 gs q 1 0 0 1 47.8174 69.6475 cm @@ -741,33 +732,33 @@ h 33.226 -21.507 33.215 -21.583 33.214 -21.662 c 33.087 -12.701 25.8 -5.474 16.815 -5.474 c 7.831 -5.474 0.543 -12.701 0.417 -21.662 c -0.416 -21.583 0.405 -21.507 0.405 -21.428 c +0.415 -21.583 0.405 -21.507 0.405 -21.428 c f Q -
endstream
endobj
23 0 obj
<</BBox[0.0 96.0049 96.0049 0.0]/Group 37 0 R/Length 221/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 11 0 R>>>>/Subtype/Form>>stream
+
endstream
endobj
85 0 obj
<</BBox[0.0 96.0049 96.0049 0.0]/Group 99 0 R/Length 221/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 73 0 R>>>>/Subtype/Form>>stream
1 1 1 rg /GS0 gs -q 1 0 0 1 96.0049 48.0024 cm +q 1 0 0 1 96.0049 48.0025 cm 0 0 m -0 -26.511 -21.491 -48.002 -48.003 -48.002 c --74.514 -48.002 -96.005 -26.511 -96.005 0 c +0 -26.511 -21.491 -48.003 -48.003 -48.003 c +-74.514 -48.003 -96.005 -26.511 -96.005 0 c -96.005 26.511 -74.514 48.002 -48.003 48.002 c -21.491 48.002 0 26.511 0 0 c f Q -
endstream
endobj
37 0 obj
<</I false/K false/S/Transparency/Type/Group>>
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
36 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
35 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
34 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
33 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
30 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
32 0 obj
<</AntiAlias false/ColorSpace/DeviceRGB/Coords[0.0 0.0 0.0 0.0 0.0 1.0]/Domain[0.0 1.0]/Extend[true true]/Function 38 0 R/ShadingType 3>>
endobj
38 0 obj
<</Bounds[0.179044]/Domain[0.0 1.0]/Encode[0.0 1.0 1.0 0.0]/FunctionType 3/Functions[39 0 R 40 0 R]>>
endobj
39 0 obj
<</C0[0.14902 0.196078 0.219608]/C1[0.14902 0.196078 0.219608]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
40 0 obj
<</C0[0.14902 0.196078 0.219608]/C1[0.14902 0.196078 0.219608]/Domain[0.0 1.0]/FunctionType 2/N 1.7308>>
endobj
31 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask 41 0 R/Type/ExtGState/ca 1.0/op false>>
endobj
41 0 obj
<</G 42 0 R/S/Luminosity/Type/Mask>>
endobj
42 0 obj
<</BBox[-32768.0 32767.0 32767.0 -32768.0]/Group 43 0 R/Length 98/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 11 0 R>>/Shading<</Sh0 44 0 R>>>>/Subtype/Form>>stream
+
endstream
endobj
99 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
73 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
98 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
97 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
96 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
95 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
92 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
94 0 obj
<</AntiAlias false/ColorSpace/DeviceRGB/Coords[0.0 0.0 0.0 0.0 0.0 1.0]/Domain[0.0 1.0]/Extend[true true]/Function 100 0 R/ShadingType 3>>
endobj
100 0 obj
<</Bounds[0.179044]/Domain[0.0 1.0]/Encode[0.0 1.0 1.0 0.0]/FunctionType 3/Functions[101 0 R 102 0 R]>>
endobj
101 0 obj
<</C0[0.14902 0.196078 0.219608]/C1[0.14902 0.196078 0.219608]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
102 0 obj
<</C0[0.14902 0.196078 0.219608]/C1[0.14902 0.196078 0.219608]/Domain[0.0 1.0]/FunctionType 2/N 1.7308>>
endobj
93 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask 103 0 R/Type/ExtGState/ca 1.0/op false>>
endobj
103 0 obj
<</G 104 0 R/S/Luminosity/Type/Mask>>
endobj
104 0 obj
<</BBox[-32768.0 32767.0 32767.0 -32768.0]/Group 105 0 R/Length 102/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 73 0 R>>/Shading<</Sh0 106 0 R>>>>/Subtype/Form>>stream
q 0 g /GS0 gs -52.292347 -52.292347 -52.292347 -52.292347 27.5405273 68.3037109 cm +52.2923088 -52.2923088 -52.2923088 -52.2923088 40.3362274 63.0186615 cm BX /Sh0 sh EX Q -
endstream
endobj
43 0 obj
<</CS/DeviceGray/I false/K false/S/Transparency/Type/Group>>
endobj
44 0 obj
<</AntiAlias false/ColorSpace/DeviceGray/Coords[0.0 0.0 0.0 0.0 0.0 1.0]/Domain[0.0 1.0]/Extend[true true]/Function 45 0 R/ShadingType 3>>
endobj
45 0 obj
<</Bounds[0.179044]/Domain[0.0 1.0]/Encode[0.0 1.0 1.0 0.0]/FunctionType 3/Functions[46 0 R 47 0 R]>>
endobj
46 0 obj
<</C0[0.2]/C1[0.2]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
47 0 obj
<</C0[0.02]/C1[0.2]/Domain[0.0 1.0]/FunctionType 2/N 1.7308>>
endobj
27 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
29 0 obj
<</BBox[16.3711 74.6152 88.6113 18.6953]/Group 48 0 R/Length 71/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 49 0 R>>/ProcSet[/PDF/ImageC]/XObject<</Im0 50 0 R>>>>/Subtype/Form>>stream
+
endstream
endobj
105 0 obj
<</CS/DeviceGray/I false/K false/S/Transparency/Type/Group>>
endobj
106 0 obj
<</AntiAlias false/ColorSpace/DeviceGray/Coords[0.0 0.0 0.0 0.0 0.0 1.0]/Domain[0.0 1.0]/Extend[true true]/Function 107 0 R/ShadingType 3>>
endobj
107 0 obj
<</Bounds[0.179044]/Domain[0.0 1.0]/Encode[0.0 1.0 1.0 0.0]/FunctionType 3/Functions[108 0 R 109 0 R]>>
endobj
108 0 obj
<</C0[0.2]/C1[0.2]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
109 0 obj
<</C0[0.02]/C1[0.2]/Domain[0.0 1.0]/FunctionType 2/N 1.7308>>
endobj
89 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
91 0 obj
<</BBox[16.3711 74.6152 88.6111 18.6953]/Group 110 0 R/Length 71/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 111 0 R>>/ProcSet[/PDF/ImageC]/XObject<</Im0 112 0 R>>>>/Subtype/Form>>stream
q /GS0 gs -72.2400029 0 0 55.9200022 16.3710938 18.6952322 cm +72.2399984 0 0 55.9199988 16.3710995 18.6952509 cm /Im0 Do Q -
endstream
endobj
48 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
50 0 obj
<</BitsPerComponent 8/ColorSpace/DeviceRGB/DecodeParms<</BitsPerComponent 4/Colors 3/Columns 301>>/Filter/FlateDecode/Height 233/Intent/RelativeColorimetric/Length 29506/Name/X/SMask 51 0 R/Subtype/Image/Type/XObject/Width 301>>stream
+
endstream
endobj
110 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
112 0 obj
<</BitsPerComponent 8/ColorSpace/DeviceRGB/DecodeParms<</BitsPerComponent 4/Colors 3/Columns 301>>/Filter/FlateDecode/Height 233/Intent/RelativeColorimetric/Length 29530/Name/X/SMask 113 0 R/Subtype/Image/Type/XObject/Width 301>>stream
HR8!
b'_dqT} as{y}: Xz73(J) 9c=BK v г$Al@kA#{0z @O~]-&u @@ -819,88 +810,84 @@ C(KLkfjCv9Utq1-_jד8_TJըGB4'7|lٜR 9K%8T@{nX/y3,ҩkqn_d;A.Œdsbȏ!ɖ
Y>
S.S18ǻ6]c Uj6×X<,a}<<1^ޕt冧+s[Θ.YIaMaFxwG9IDbÃ3<J4ż.UݬWXᅁxcQC9"ჄE1b<I1VlbVU1H^7d.Ca6!NLI$Y&'*{YZ"[CHrpXdȊnLT50}q[wU3*UFDIx<NGM,h[SIDq?sI
$hN;CtCgilj-nukpohua-%eO.)n!riQ>N>pGi5aC"FPOsN{)0VadYnq.SUp֣\^wtvN~={sդ-ZɊ0lDxIÂγġUIpmOu_g}XՊAU1jkb)m9Η0(OU1WG20 yC,^p"92`IQ* &R*=CW0wj@^xxd_3('Jmy^9`wJu=z[ɢy@)ʧ|/CN/MKIuTCCqStY2D;s T64Z%_1~
Cp<X;[cVFUr?//m7z+izh W')e?fT-0)}E-q"Yh g{2ư'%vƠf%WF1 |^1\Vkʍ^ -XPỈT1g-Q!%ECBw C~#ldFVќcj^X'Z -n*pRVE
rD$JaL`UF'(VU;&esL'8#A$âSA ZSlWZFI:0܍0m>~:hGnZfCZ,>hq
h͆^zrHL7|?L -I]J{)W[/HMjM=9= n|uGD!a^>^a7`ۯH!ir0D5 -lJ=Jc4~t l*D[msq=oUF'ĺ/0z{J.,U*2k#oٺ _r8p9OUgcX0OZ:T(4aI:6 aoDB.ÞXM:tC!ׇpZ/$џOH`?ԯkaXSzG#څk;=<һJChy_0g!;+{~BQʋab:B$ܱ*nO^~Smc~D~홐x"Zq50Uyg9bs.7O&pu=h56`(4.JIE%FZX\q>)}WSTo3$_ "URF/0mu= ⶇ Nʬ .~T}p`?ms{ -cΈ#-G@QU|"11TtGBaAgQR'=JKT̃=fd:Nq&oC&őN!j*U/sa
gKG0¯xN҆"]33ZR0Ta buA{t$bQ95vHjmR@լU/0 -&15ghiJ'jGGqV86M%գQO"y*Y_z!QGz? ɖ;-'5`uFJRTɻJE3k<Y:.R_9c{йʋjl;J "z " -ՅV>qee+ڤRSd `S]Dh#\pA4C=< xW>~`q08u0Euɠ"oN<zә{NUYWb(U@Ii
=9m%lE,pCNCE8Vb$qG2;^C$s>a l='9'E -'g#QqA Ҩ8 -ؐڊ kiBimtОǰyH!) C6C`%&4un'[8Y)%ͧDWb6FGKpem7 }}G1/=EB tK0h -"C6A -3#i -ݠL:) -bT2f[,XڴXa֗yϓ`h0K9 æ;S+fOvVRH`q[0lkHJvw8yYV
<Sqҋc_ڸ펰@dȗ:-t^!Y -?3и㊖d]mu0̎`$)23i4-U ME -/:cALK,WOK{j(t[ە -ƼF5lj$2bF`cø`x5͝=<ɑS*`ȫXs < )M;r<6y3Kǎi]TC2yDB{Ŵ<Ŏ*
GB4P-ma𱎇Etо< -0HݧfXxXs֑N~r9'I8~嚓x?EqfMI ұHz3'eo=Nti(lQUu/6gp8wK0?y{ -B?`s~.Êa -#s0 G6^!CUΆ5LCLb$ۘ1'y1dRҗFdj'q]l\Ig
*0 @Z;x#w -}vCpKSUs֢DMvFYLmɸ -Q4K
̓B]2=wh3 rtew -:0+0\aHS=!?_1c6qk'.!>9Xᐅ R`g?Z4WinkZ"D32 -9Wk&Ӽ(=mشq|&x#0T?'CxDBol}v(P&ɷL0%44N$`_l]OIoxvKs-ROMS -}ana^Ք^~-5>-9|ueiڍݹ=L[U?"81sQ'1ƝvaA,C;K28fC#%R{N3tŢ#Gm i&D!3)RZG]1Y[11Űh=yG(4pc5/32/LJWxyamj*`h(K1Tng> -E"Wӣa(~02h\IOړ×ZV㸶e=ۉK@uK|b=W)D!B -TJ;LbTq1ae;
+ogR.qbxsV?e -'D(yZEOp2@)Q ¤0M_2X1\aLxԤ7% A@@&EB.ZCVt/86,S7Tl]Q(Y8+iC225>C,1/2t -tn>ڹb\b<DF!)Rvг%KPFҧZәNd\w>MQnyVWwKRj03Ze` -/w`EؖS
@RI
2)C0,kC
e#e3TsHv_=Ф:hWqsuCaP7AXi+hLJi0laHsz%$*a"ư98<^B7 ؈mGPWi)-mQar'c\ȄPzKqLG`/K0?'Ű!
Eg9FnƓ5a, Cn>B]5Ͷ -T#=.mʇUsr^Cc T}0~~p+`~4L -|=C$ݲƐU.e;>˞7CALG1HMc#h^\4UT3nˁйgڧ]VCK[0[R؏H Qa+ 2γXEʪG!@`g#wάĭe$~#Axbq[-XhKUue{fdl2CmjU<Dz/?wSj(ۊ(&9o;ðG|8?Vq/c#$
1#EB^Cu$ח R(b ->qN+z>pu:zppB+&H۞>2e -.FU gv'FQ~DZFhRx0}mn^VAs͓ґJ
3Ryv'`4vȀA^Ä^c[ɃXv#߈~:`)tɑHH*;hZY:Sz#QmݥN%Nվk_u]uH:En9\XH$STaH'pk1LMxKG:N< Hqsw^2VrH\l%*<
_!+/tyjM~1kjKS;{̛Ӊ=gç+j+\d{dη^Z0kP:ET -}D< - -& -c=s좤lwÑb+Mλa(kaIgO"XSt4ֽ`i\/S# -8Vcz`ZPD&M`(v%-yn⛗[70[9){pA6Ȏᐃ櫂awcbP4'B`hlH[Dgqe˅#eqQd+kt\̭!!C(UEef\UJa<Rlr -]-@YFbpّ?&]a͑J~Iv%2!-qpݤV2KS" θ -b?u-Mhx)q`:`g#6nGb80W!O`MJ)4DUNU`GzPn -M:ъb6ӛ8\g>i5(Nܨ4S"'d<5d#;MWUOVzZ˄O uc:ݒBθIH6-iM8^]p
h}c8]a)v<8Q0cn`ÛP4"HN۶#W -$NO(Z4'XHs9_KA|W}!}4RE2c(?e
,:O;{0 -Č!Z:ϥa>G J+CWC;CPYjFvi'dn3`BLjZt>)tε >K)|lr"JZ -1Y^sjt~'=:M~x {{ǰO*MOb]XPOE0P -Փr%hDaiP}7ar`Z-%AT-`Oy;;Eޑ5]bI
-/&6r*b6=kaC/HW$yQ0%E4jE0}E-;B n0bg 5k8aiGh]K#gӜ -R`H醽D=?JMGz+yQeCQ=ؠAEѦ:Ǧ}T0{~-8X -]̞cӞ1H\~\Yk{d,8mRcG7Yq~B -vݟ{pP#@03NlAC5r-42s)TYbY[kr/95mA[hJ0^*=oJbrrEYbUPͿR=5=Rbx?~ĖPq - -WQB0)l*GbrHV_CZ \ O`IZ,lģЭ܋&ەU}5l͢,q~G]}\,
;jcS!Rr^{uFQ2@!fb -2;O$'jGoIi;kNS,$>ci7!5rII(-q2OGA%B1F#tz+Ca -٭JPlαwe?K"]`H:D(xswbHv`j>&pibkIJSjv| )9Nh
h9ԣvZݰpC<NJj O0KNstQ<Vw0d02yY-[ --@ӑ
P&)pK+jH@ׁ8$GxN#)D<F4=ˮsM9!vy[PW01{ި%'52(>To/@zmׁoư=6Vr}ҊU}l)@ÚkPn`IxLQp0Qb_0!]ӬUzbi aXpD">/ᅩ, Ms7eֺu-N`sWl0j][^,ѓjVq(5tosQG_7wtڟC3g!gw:D܌apR${=}
i-,H'IC+ɊaP: 艊6Hy!$M^o)֟Ĺ{B$njGI"l_eƭzG
WgՓ*O3RCZlMM_PB#Mۛї`~C٥"En/cwqJ2<IkCb'ql)6<;bRH+xs]-!"$IEH~1S9 -=<&G -_!I11a111*[ -3um;%jFBV?$?hAc9aKlsDJbLQgÐ<K1g*=g0<F-mx1?QJI@.6 -w0%0<{khQI|k#VQg̚9S@E*tK}3KęN<5DE"ƺ櫎bvѥbgǖ*fTVsDkX&ҫbȓmXzeKMZV G+on9~.Q(!<Ry4$JOq^SQ-;zg{%hzӇr}FE|k-=eB̈́>.!1QޔЬGgd3Ei^xT +XPỈT1g-Q!%ECBw C~#ldFVќcj^X'Z +ꚙoIHw|!?40x(|=C>wM; +Hg1=掝j]t*eđ
>s&7psU)(:D"+D{Xjkz]A|-PPL`,z©/Vpa4ɾCq`acV=øBܠt:)FbS/16a :L]sCՂU `zU3'3$jjumWY +LJkal-[/$[/00)*u*R[N_1'3g0OّNwrR8LÆZa@E +-?m/j՝FG|+$dN<XL%3CɃ+Mw>.1ujbmMoNcvjSYOٴZ_Ȁ rɒe/IP_yqfxe4RE!cHYV86*C¨`"&NHXU혔%o.3GHEQh +^nɚbbb4z,ObM/пn4Wn~E#`xs85 -C}2#֊g1!U֞lȯl/j53}=LKIp
ZXmGMԓ31~0WwD@ +@>Wğaya|ܵ0tQi0\wz#ul96.0I +PS{DV&c"VuB# +)]5U6͘v\9Gמ 'RJ1Fs#ʼ<yFhНn6wꂸ`h/pn*`Wx#f!J nVaS:HceZ{cQd#mX}dSLiRͤ|`W#`pzmAYA\0 %ʩ= +k!Oms{ +cΈ#-_wJ2Tt_uf#aaAgIi']JT̃=fd:Nq&oC&őN!j*U/Ζ +鏮0¯xNtcIN*2{z1?>3%ucM0,!1m3y,X'Dl]$D~fA/ +B
RL$wf8y(tjG]v,s$sMRH$ +""
@a6@
mtоC'#9]0HQ鄈`H51* QOb +8V=jAZ()_jCaozcb |"0C,@e#TJU Hsad+-P "'9϶sRK~P_~t5U>"CFQlVLs {#C{R1"pXíC`%*r&^MyKG:+䝓¿ԂjAau$/shBz =>fH₡C( +vlJ +;nm` i%;E +_,S8ؗ6h#,!8G}/]0aCL04%ms[{{#;IcGRXfVߍJ1ۊ/]3D]bJ_Yk<?/ nVlW2B +,:V:O^3ė6:!#P9h:o`yc\tƙ(ܷ(ؔ E(_*)vSR-YI3͜LylNÏpC +sDul$pX*,1]@34_}rv%RWL9'P
hc$-r*0M[]$oGJ;0 K6^!C4*a
뭊K6.ʝ/0&c<o^UOy1rAasdBy}SkG`o~x +Wpڏu˾ȣof= +2uȍMQ0Xt=ac]Z1loPHưJY/c-FJHlƎ +H`c0M6T&[3n% +w"KQ2?8gR;QyJۼ
өba`PJҫ"dIcC7mh2V +/0%$-ʆΣbC7$|:Ûkg +cZB +
yc@)qfjK݆+Ya\,H-]VQ:!5`}g<> +!S0ìrd9c4LWXeD!R225gT9a"tvⱵG`hC1lPb<DV!)Rv\gKH3P0*4*GH+U/Dމ!U?~H7EXx^=Af)AC h^0 +OW`%ؖS
@RI
2a1^azPbPRft,ad'quj$qs,睾K &T]J0&`aFWДLJi^0laHsz%$*a,ư984}ưcE,x3Hŵ;.M& N5.-&*?%d6W> *lJA
ȄPzKq{`OSp1Oa?C8EJFs +<rf6jCfp*Ļ(o<4vbKjV[m14]YҬ.[+[wSz,H8<;'oE:g]3cC/DͦbZ: +9p;Yg
kB;*~¤oMJQ$=0gck1X+"Fb? +T#Fᢱ<*99'U_1Lo܊!DZ
{hgC|dݲƐU.ehF3b "RwtF=ߞxV'<]j*QQE5Ӑw=莏,6>=bT?^fbZoChmMKAb?b3"%(F1N'-g/q$Cl8,RJBKu + +\=}X_d[%$m +pn;2{2S"{A`Ț`(`^;RzDM Ai_ii0YZ:{Oz\SƊ,O0yq<B=0l;5a LY1Tu]ZJ#ɪQ-hDL* Ū* +6FU ZZAq_>a8^(RcQe;<.0s*awb0FlL>aP8%~8|A0L5 +<cd7_tTPÄHM&GJ~
i=g) +}D<J +M:ъb6ӛ8\g1ُk"Q +8RyP%S"'ϒd<5d#;MWUOVzZ˄8L uc:ݒ>mW҆8^p
h}c8]as;z|S(Re7H`ÛP4"HN۶ႫeqV'A@-K/R$ĹҜ y쁡!K)dm"1q2yNFX'=cb-LD0# \%-a?CPh5#4CVr70 +Փr%hDaiP}7aᠲ`2i[ +K[zviw#kzrŒ%1^J!vMlRϩ09w$_ّFeILP0%bE4jE0sE-;B ;'`Κj^Qgk8aiGh]KO2Ns*\H!Z!6[φp*7=GQE$bFYE4NQ-hvF0BvV3pyY +LT$/aBkN85-c%I+? +}[o$+ҍP051Fw +ʑU
WP6\CsBK4d{,lģЭ<&ٕT~}5l͢,q~GmC^,
;+ﲥcS!Rr^{uh(W31 +HXL91E:0 +Nɞwx +%30?C{?>aH)mnw," )i9$S0L"H0`43F*J}8''>J)`}곏Oɀz7W]2eps$yje6M
<~)yމo*W;SLaGI%J_S04<s0A+k}E ϟaњ#uFi!I5~+8x?۶DQ
jFtFEnKe?9sd;ӬA,RK~*)
yIg=P%B 'aؽPaޣQl3|TZě
ՠ!CkT4~fbbdiHe )Γ)>!ڑ[GhtNڥT-6/X~MȇD=g!dRJKQnB Ps+~=b߃a1,6Wa85ZΦ{7P0̠X|$CKb7w'*dj3F)iw&Z;H,;y_Ns4%"Y!Z-z47N.z(qשXI
fiΪ'
Y=*/ah֢{] k#INe#(g:"U?Qd5{iX
:GU1DH:x8MOgD<z;єSbwQ/e9z?-u+o +ыi_4&݈e'/Gވg1lC +af%$+4̔QecKHۜH{?R7p}I:TRUW?Ǔx8\(ψRyMg6kc(یD&1ļum"ۼVE^x'` yaMgelTbM֪hJ⨃!N
GfI/> +80lh!k
5`
g5Q/Q<ָ!/ +flsԆoq˳FNb^։TᐋpbcݵV_-bٱ$DfIj/d-0&ەIlSԦS`d*9J[0x#,G3UnX^[ 6-)A|uhnvM &d\dc&R -C.䞡fN务VBW> -tQL"-uwHl)StJ}.TCI랸T%ttuJ[*Q4օes2<2H!u`#(-*[~gm?t(]l<$e'EBK++pF|7&I
iJ\
ÞMDܤY<~~bFPՃVƗQŰUI1ݟ#lD6 -wb{bb7KG;6Wk1
-~! -8KH˸&=QxDo #H -Zt5KʲB!3Z+in(+:IqIKd4jɫ}|8d!`m7 F -cPrBZðUzz چkEf[|-RQ.}vt=0T5p_Nt$j=QPBz']ĕ7s43243ֶ8Y@m+2 -sdo&2Uy/ePizig=A8S~ٶ~Ah@X=D\|ft5(KNGmxq>mkZc9δa#rpjcz -tWoC&bp#lvžYUҝb~n(giS5l19V\rIiIJ`gm=/gw\0aB_/(h -3RJ@o/"@R;x;f&n!@3;q\EfNgiPFYi[2!L. 2Z*F;S;D1ME -OԽbEU -Y11K1L+妡*F@.ZˁZA.1FK_{.cƾbwZSC9nɫ%$""ed@j&j'/'x+>6!_7p?&߽\ -]F!C)%%l2pa9vWʆ_LEM<+mL3ɏ$JGzG-2rbhtQ1#W *&cQ@ -eUqP-2jpGmd
1fiϞ7A
=\7
LNdbʎWo)Lmf㦄Tb&v -m"a+D5( -fee &9xg8x9K4"i,Bj(̫#-gmy!zuGM>/v컝cnLʐ%4&Yv7Wچ:%v4zq;
\@2H>_ ݿEC-ohD"e`a
:Qm11]d4z~msPAEu¸v{ -1_FŦJŰv~Pɧ'(,M -P9k*J诈1iUT+s4FpHmg w"Q*%ɩ3^ˆg팏zѴ 畺%SNhK6A<O2D1ѿwPz40=P6/;#Jg֡s>SӱoqeǍQ;9Ww2~VQXt
- -XG]Yh*HL@)iX4<R&/{o
-≰W|dDqCZ0rJإe401rcS|wzjk -@7~QC5_7ToƹiՓz1,qQ`*L&ֶȟZF%/5
;tF'U ~%:ck18
_gS.}PW?~[@ډtλ&<hL2 ~0PLޚ
!sL<րb G#ސY'>y*1bS9>pqVF:P~P
yE/.
Wp
,Pb(CR[᷑r.njmsF}ؓф"
4Y]ES!ʄbl)ְi8k
5ΘNPλa2{=5OEК')_seϿ ~\b^3 - -d߯L2zCƑku.q`Y4ɧObR"Ӊ}R
K}0v0)R:뀋$NLWMhV*:+{K:MЂo~.7mKGDy=ώ v)AcĈ~AraS]ͮo: +C.䞡fN务VBW> +tQL"-uw<Hl)StJ}.TCI랸T%ttuJ[*Q4օes2<2H!u`#(-*#?3mCmz(]l<$e'EBK+pF|7&I
iJ\
ÞMDܤY<~~bFPՃVƗQŰUI1ݟ#;oD6 +wb{bb7KG6Wk1
+~! +8KH˸&=QxDw #H +Zt5KʲB!3Z+in(+:IqNKd4jɫ}||P0\6~cQjLz#L
a#8qt_2%spX@N
,
bNhTui&;/ЦH2a%'ґL邺cxhT?<O4ӟ[$=2@^{NTT]t}|Uy|EOʳ +zQƜ +&ߒ ~%Wދ!W+GQFh^;xKĝAgP«iϻң՚Ge(l(C*$kD˄2)6./\#qZxvwviҭ>${^\+z[t1` 4*o<=wV +P+Ifڟ9?@bܸagnHOSjhd&GC1xZVXmLHzh%)u憢H&79]nHys9"g @|IgfwRd;][. +/<"$.dMĜM* _h[j_:M +hU,V||;\q%|jX|zx<tKdޅ!JyR +YB]?*gi"nWlY%N-
8p{FSYgb%|G\ܙ)HkNTժϊ ٬
2zN7Ȩ7g)QU˪of5`:>panF9Aqç?=
%DPa~*~Q.XHkWoZDp-T̵w+e_8|W<ų/5[ J[!ԉW3Q"r9 +7vap_UEl y(H'r<Ucjŵ+4/;|ƹso!xVx'+Mp/(>]ݏ/$]>#>tJ"m.wnL3ZmfP즚Qr48h_dh$qFeDU}E/"k"n.=CD1\T +r1\s3#x`"bW9ZL?#TLH\]P +Sٸ)!؆ @ 4b07,;X{.}oJpeiޢ24*t^+W&2pYHJK7 +V2F(
ؔb;Tki{N/$.7".Hu[z2NHa]{'"djɍo:kEF{)a(Fe,m +S +B`w^nz=¯ayE7Q
YY|IDޥaΥR.͆h{ +,jG?`[lȀ^$Q:5Aϋp1αH^7&eْ,᛫kmCmM;Z=IٸS.oFqfj/_ߢ!@7g" +cu@ +èHȘQژ.e2BzO?6pvɢaa\=
jv
bSbX;Q V +P&` +J@b:
A^%*~9<Xo+L=b4|]1FY3U1TlXm1=2C!c+WXݛ9:=.AmT9GJHk˳;,U ?F4]X$@& ]i4Av )MdA=MDثD>2"Zԡ|q-Y9% +Ҍ2@|JFЎ])_>G+,ښ1M=_aFPr
՛qyZ^"K\= + -k<QIKMFцI8ȅ_ɂAN@ٔK6ߏV#vbb'])8 +; 2/b)&5g3_*~l\`'5O5H>&7dOJTOu5\l@ƭ_ i>uC^`KKU4\+K1.3bmZۢŜQ?d4!HoBj!MrVWl20{<[5,qZuC3酢n^"&eEj
S`A&Id +5A/h_fL4@?Z`<[PumY4.W48)]ٸft#)qaP$&ZU>cbmUdRM3,g7Ks;al~SY+:.ސqn݅=p\%DM>Htb_DRnݳqy7Lʽ:"UZUf:JN%`B&hA7?SofOgHԔbNxBm0詮f{Y %-}!sZv`-]^w1<aț9uF9KEe<ۑ캆y2FzpEcmspEXS܌8|JX +zi)1fQĚ."f#r^\Nez]x_̭ݼa0n<f!ɲ)dy놕|oÁί*ɫ]K>q;dH!AWH1 3KXmbض$2>8u'<g[.1wbZ!m340.`"72J_k3\lZs_ڊ-nGm [i04YlgR:fǂ%Q &"/zz}b @@ -917,7 +904,7 @@ nYmepj$b|34EO rڛK}C!9I
bn}3Oz 3'e N{rg-:+}yO )&ȝ3q+l/?bG
'TIOĈ8Ά\)f'Ƌ :2v@"q``-6n6\ȝWICXv/à_`#p`!!('\Ixsu~j -heī˼mv| +heī˼mv| HׇWYDHФ7)"FT,{oϖ{gos&r{(2(|}%_dx:]#OqePP/~0Th
6K 0`#V+:Fkņ+Fcx<\#-&X/Lb h.F{/BbEST&IiuCXHɦ @@ -959,75 +946,78 @@ Ka(Rf `3zsnIĘP֮)UL3rp>%fFn
VSA" W"ZNa;3-0QlIl[+cmزu'O.4uknGO)2s5(hfGy`[!Z+E?5uDEa2,-mEV )` AX&t5ڵЅDdJ {DzāyCLX/\OBV]+ԂK~SJ?䚚 ܾ]X[~ڡ-XNua0ָpc- y5+X<ulaInnu!Yrrg2v*>/}FXA\-"H[~jb@vV(oހ&"Nb
t֒@0,,BY -YV0ا,7g(~W@XA\/]qV몸E)Q!iD$qiiVbzN1eKWv9+J-WXIw(kZ3Qdp8urr9;q-ڒT\d+RZ͵U9">hc&"d<Z-ձ&0$ 57=EӇrvc:;;{xrBb/(5tޫĂEQ@((-" ee+E(FEc-Pb%v$k:љyof~^˝OU[e.*%.=ܔVۭ5ڴT;6X9ZaiHmr:`Qe
2/8*K$H"/'+cfZZZl^=xA`NDƥ@<eOmرU,"FLvh%XڿիUO@x%ٙ<tޢek7Cxv|lM?G훗ϝmVp|:i̇ -K ,h!QLJ)%!YY9<d.Ͷ{zM+.Uû\ڼ3cjT8_?Wt=&pbQPJ`dϞJ+PXP%n\Vp}e<zBц߯\\U$LA{Qˀ!#"c2sTہJ -AX4Fa!dZ?E74e[tޭ-,L<F"Z]z,]},>!Q,%X<+Ei,;qa]iiȽgX#GjqKY_ƆCkу3[Kw LҰSR`|?_(T.PGψ Vʥz -ւH6sKWZH;!<&/ -J$J.GXzʉ -LR,`UTցw pWo: -Vhzh|a$'5.٥t<tMMͭAY4#.W*,*)[z߀-</лz8+hCqjZ\)'R/w>춴X СOAcRg(bUwnǏ[_l{vi`xbxaY@m\16("6iFf@Aڼ -RMRwT.
dSZ"3^Cx\i͕ҦҥCX6ff斨,Oo g$fj8a)-ߍw)GmYt^a~zBTa0KCn`YXe}160bJf*pd|/A|Hus\lPSZ=DikؾkXZlx.`[ZeG%I[}\,XzF[w|>S9d5* tR|J:e2#ª[V(5Q-T}8.ǰqfOZ<]!۰m,,,l]y=>,zw\&n%>歹Ū2KW~U!ͥj<#81&1I%)U -ɟp"+/:lv`
ؤ4D& -J%b1E%,[1|öbfiۍKGnYJdgceem<3+" - -^k; -u -V"QD^TFa5mp,<*K˕ao뫋3phy"/N`SX66DYc -EbiaiY/88a\&C~~ #qR0WG*3s} :IE -<5elx<@^Rn,8+SXNa;v"W*/7/W,]eaNwڝqr&! \ $# -d!+}L;Gʰ$DXc' dVA
eI3/Y۽lWVt5RKq)JP`k[*acZ;Zm}X<V\\|@X~'t]z`YB6ܳe傰:ن9KKINO-6W-6aCT{j|ڴ/:GG=kj6*KJLHHY|@VaIWߌ -6y=n[6yw?{ nC|9ar>;12HX|Lc d!%EaZU]`;sꭻ1
~
mXC܆I1
4(,jRR%%#ke`VWvV:U@p´˷=EaC?ݝϟ<sòy=Z)4:Fa,599JgĀ,
[t꺦s۶ȩ?^'G*+"h.+H81BX]XB1 dݵM-!b<J{yY6NxM7(n|3XK;vϷ=]s6,f -JrYV(isKB
YZ68[:f.\y^dVdf=wKg߶vXE씄މeXZͤh)WLe8,p,YQn%e._ӄVl܉!lÁexv^8_eU ix7߈QX(TzJ -ZU[`JRl26u_!Zbw ad92YXW -XԸѣz!!a 9i:ɐbd!%a5ո*,&caZ&Zm_uaE$+-ex]f!'x֯
0YU,& -\PPK)૮YyyFKyE 0-A|D/,ù9f%YdJe2|BEj(3
z!duxڧ-XiO]Go"ܽu}XX^-6af+DT'CȪ #Z[MlsCS!h
:xdnaYSt#,_Xd٬4'ead!%miAb4VWTZY1k}GN!hHa˰3{Q/-C28tPU*JMz:33K/=
g,\e_q'!ei -0PX\&+պ78 <0G>`Ch@q;iaUuRej`djݎRS^vB*Id*{[5jOъVXo-ܰlޔn)i&6Vd/*(88%zR*b9.4u)H<I,dܼ)2²Ea| -u~:FINИlo|Ɲ`!>~6⌏9 -ݶk:t-$1,K~Z)+Th!BV`lRMK$&$$&q* [ݾ{4GcEk{*%nk!)a-uX -tR _n|( -%iS-*uNˌ}><_̞=USCs9d:"/)A$% -»9W*Zb`9;,VYSTٲE_hiihh]+&1=Ni%b['sz? -m:{ %!:<dVOg,7z6l8LMTSUQZ3fքZ?{19#bE
sh:,0,X@°07sd`k*+))jjjrۃ*/~ -S(k͘chܞ`Y([9BE~/X%XK -n^ƤAy` -TXFp 4k7ϋrYl` -G~_ZR-5ey99pJaãU$OҒקbY
`VHXn$E?'ϓmoptqF%`x{ -V_H(ngcckGgqBq#HYt4U&O,7EImtxӿ_NU?n i
P>{q=؋X=CrV+/ם> -?Vd|JausֻQwasf98:s=GPQ$++;INAY}Lp2DO?_E^I/huSqJQnnfʥ6KPm4(S86$65 >$Hfx -K,WYy̾#p
AJ{m\c;XN.<j -̗BO0~xQ)ˏz2:ju@""\M$'qHT+4'5»0};~#?H/<ck,m5șə%Ƀ~Pơ-U+\#`z),TIAYfhUyqOm)q*k۟?dŤ'
[_tB\d҉7)!p>./-̥XD7%yO!@2^atӱIjH[~oׄ8ۚkʋ2ѭErl,r --M_~iښchdbJs`ZqIՏqzH\(dz SO[A`Jd^Ŭ`ЭVCu* DzX[9r*&F2Z} -
?w!153NIYUm]C"yn(D"QqV -3R.D V^Z7P'7C8|eW-{|=Κ}I~Wz{QyizJXx+=)6_zow{EʂJjg,ꮀC75h9q6rJFvA!G aQT?y¼#͘t*+чP4=et́¢R%5NQWWwwOOO%ÖiL -pqyn>"X뼸L[3HY -r2R|Eh$7o!Ea1A\ʪj<mlƸ{qqЇ -.=3δT5omzǦDrse=@I{BГ%y1-C'OrP=ϭmjZ\^]^@~ArV!;HAS--@W
tˋ9Pl8c}1hKV"X~`?{骪)1 <>=C=ãS33s; ->LOM;|. -sYpvHi+_ڳ`x9F8)0<bmut{v|tu k+Bz )$ @kd/(Kt< ]\UVkF1 42.%_RZ:9 -!XHzWvmI2WnݹgjaF
NH}ʪ:{F'
ZX0624PS+b&E"C1Lt4UdC=h¤u3я`*5uu
; ->T+x%9B}<]zT$4?ZZ/#wl_$c`lneNOd -J<^YYyyyŎOee<d$é>^)DzSY>"eYP>T,QHıSe]w'h.Wor -#C[jW/_8{ڄs(sMރGx75<:>desr9 ->r89,VFZreh/ +H,wOPBu%c-[G<WVy -+^u
[;{z^(*Yiq -n1m
UEygNnXK4g.)kA@ZxTL|br*#-= з4Fjrb|lTDh?|{!dHYZj -ϟڮsl{8ti4);y@HxT\##x -3dQ8[%~Gʲ4rEvem?l>{t
\Oݼ||C"Ii9¢.[R\Tb`$E|A
<tq@ٍ߽e%9:yNZNo:p6+DɇL~..$dH^ΎOxKǵU熲(^Eii*jh1DGu$@Ha3_2TlvvV&+b>N6H_&PA - R;|.9DuȱSRbO36 ;>urvqq۶rqq?eۺBvl$!!Ͱ mUQgLsν| !J@>G<p{ܸ -V&KbTJ:W%nN6j<FQ沍xG#t~:[_Yۼ!4ij/_߿}ݻwo߾yۯ_x~z{X3Sx< Vx -biwΊerbDXFbj -,U.l6(QX+)^#+i,H-.!C\z356+Vj`Xrn|ѓo_|k+hϟc;tM*jԩ`+>ڊYRkYkñx6LUkBmOOW*Ra"IT:;Q\(PY|nOk7:"K$S\p<,,=O>}zxx~{;wn\צJL2*N
[a;Vk3$=`86Og\4VN.ͤSD<z`u)ʪ촲[*\4\|"CsI8;;؞;wlmZUJX4s;(*H@Ȋ7WZXZP$QcmEފEp(8ALk -TjVAJOiF=unTɄVҖ,3L;p$O$St&Ee;Ǔx4 -|f1! -OM-х-/T&+J$R(GX|%RY[YyF).zQF38xPH$LFv٨R`*P0aQV-%p -_R9V7M)ZlNѠi5j -\Fn,U(Pz:r=+V"?~"K#k\
^T_w&"04| ʗk+7শ8_̧"~'-\\ -?kv3+("b-RZ$J:
D"1nY
Bӳ)<w"~'8*GCH8x]A\{Gt$6d/(:~vR*cz\٧C8#ZF1rFvIQăOdKLZ܁AMfZLql-hɇZתR !$ƺz|ud^%JR*dQG7Vր@(HerB!I%b`!ZV?_ PbPrA?ZҺ^T<nتXZ.~ +YV0ا,7g(~W@XA\/]qV몸E)Q!iD$qiiVbzN1eKWv9+J-WXIw(kZ3Qdp8urr9;q-ڒT\d+RZ͵U9">hc&"d<Z-ձ&0$ 57=EӇrvc:;;{xrBb/Ϩ,5KzUGAP@((")r; *"XĮ1vbKT$*8Ʋk9{߹f%s?=x/-7oԸ0\pSZMwn^=u+L"E磥V^Xz??C60XFTYGQe%RD,fO̚+R p߱5VtYETZ\
`ASC7JPؑA|?]WXCXF]tr5:(H
kZNvVVvNO(zpܼӌ-?|Ӻ[ҙܸba
14|h-d_ +K˔e8"Z,)/女@7?zy?|A4tV'rjkۺ*(bq Z\2 r֣аQDYBU7mZ^O$+ڹr)lQ/e ׇ[qkKcݕړ|zqE0'?M
]=zS ,d2Ha:Rsy>=}oP`pJa4ZxjC`SeyGe(,)RUڲ֍;'="P[{] +:)f8ZDz,cCC,aFuv_$ + -P %sI %$%Da2_zA\ğU[3)(&ؤɨ,\"H,ϨXXv3 VC' +H"^=ckJ$ZS<w,l<D'OeahQ^>o
@jKȔXjOZghJDcC]mz:,[K3##c,PV(++/+aIY'VCS+<sp$V:z.Sg +2ōų
aCAY];(hDLB$P +;*X,%)~SNf+e?-b-8$yɣP.D!LML6G%O-I0X$Z.U94XGj.\Nd/Zpak^<[0wwime^>BFSe)U*-`UcSHRh}dʹv|[5CzbTxKXfjeN?)-T-x:k%Xa1X4Ehz5zH1a]*,LMe6jFY,% ֢5xv~zlƛ᳷]RA{Î= +OIIJ`U.\z#VDC`gH3c]JCi{`hwtyͻxt@tE=ĩfq<Kxa2,--.z1 +j`?_eX.v66BPր!QSҳB!98I߯e
b5K,-bxyϡys6,WG;[;GWGD'M d2By밪,_>{l̒s`;e
8!LY:I_EV,o]=w|SF
O:,'{;[;FYqIiw%ˤRLNanA,YtZ-Pnna99;teFƧOVJ"HeJ
52mXv$>xYup+Կ_/OeoF5<LR***H% +'BVB@ Kg/ +NgrY'(i0F +js14qOmwTxrRVdf=vmZ>o8⌔Q2,\f2),OLVPR8VUiʭ5
-㻺ux")ZeH +<\;UUtF[1 +LIaB1l./=_}mb.5JT흳LÇ:$,,+z֠ӐڰD4Jffad!%aj*fXjtg +#D尘<lNEB:ZTEDfC,C*SJ4N_$BJ +]X[e3
:FTT'Y>@KZ/Boe=~W!aQXtN:Z˪DJj{k*+Lz:;;G/2;<q8{]RKC<1XQ˺؏,tFeHiX*i&/#=/*dֹFCZPrr
%Vsش߹ =B'~JJV..C*ҩB>eyEY(,eEzJ.˒+պruçyadZ`!wj#8vjmF]vP3% +~ ng 7G%Ke*{{-Rsp`'zHhEDW/504PNUXkm%(ZCYH\bF% +E91<=H<E,dܺqm+aYC"B@--(FO0/G. +!Pk}ëKR6Z}0R-![#A5(˔KDBTT*0,hADHp5/Y}߱3n>qh
B8XΟ<Ͱ'80d",RHP3RoGQY>4ेNLjh
gZ:/H}<܅#yYԄ5e +1 +Io}k0ZZ5|i" +<E&ޅCG<K%W]E$_-rӘ:%*i0}#{ rO!b`ٶv1»@-EFw+- +qXe R2\5U˖ +ٌ䤤d;Ceq;,ZuaD-XO;%|IBD;7 »(F:d)\V +Z,;Ri 4D7a{|#֥w= +Wmu +l&`X:a)tˠF
E,`@" ri& "MKu}ahFs?gwA$% +»Y)*b`i&k
Lhh +<n%ebW:Z&khh]+269Nq9bK;sz? +m¶{nZ¥}۽P0>XNZ#Ö$q"e-3Ss +К1{7D
8~b|J6H[ +7,b{l䙣0q${Ð`M| +)ey5w4uEIU5fYؚ`Y([Y"E~/X%X6J2n\ECu`Ѡ`F5"E8s +렯ߎimeiE9A* +<q.o!ѸºTOJz +e;ձ֒U~u=vqœf5;T6SIv: kzG
iazm&e|2RKINqr#K[G- xff^QI%ĦN$oנX|نXU/M{!,O;6֠!$.M}8+ XJv?}=-Â~қ}PV +ـV;YW0+XPJn>f6OE̺[Bܲ@!dԇC Òk,W=ONL!V +A-ZPȹYwJ*k\NɋtF'a /3%JdXp beu ur:C`,[ao{(wuրvWOϫWLzӅKG[qQ<\<.5Rp(*o낲>Lk$Ԉu٨+ )yfW/ɋEI;`R}usғ/zXmŬ
;UYA|<ԧ[ao~)1- +3tuuvv@a4 ]|C|mBkei)KANF +B/@mu-h |884r<+^IEՓWW: 7 ޞn@
j!Vog&Ŝ?}.̊fh +#9?4çgm*"IAPD@ b d߉!@ؗ@0@ !,a @Xd}_sOvF={wbX'.+[yR>r&gVV76Vk+K:;[jW)`lVV;6 +.=3ΌėT?7G;kM!ʺ6 +3[]Fkqyux?[ +,,j!]YxUMHȸ̜Ҋ$S*V``pĻ+g1b_U"|Ejn㉮Y+Q𩿿O!h!乏S"zGSHE~e& ^8-QxZ6iu-bPxtBZpu#^3s +e,I-`PWۡ,9тuɳye\OlIσiQ4fv^A mhz+A ==o:ېb +}`&'DRH+k+ǰO႔p<Ƕ7q߁C(j@s<Hσ"cRY9_ +mmPmmAkkKscC]Mue9"LOTo7 5YibYY
E{!Ow""c/|c_FS(?VVx<@Pw,T&IH\(BsY=H@ꋗthlv~aqY9_S[WWU]]mmMuU[Z\b$F 7<2
muEFtup6LVAUS:ՓJ
¿X4ZX54$(Џ@\ Z=ƛ?|؊h/;Rە$ZP42 +o5p9{EDS3s8E%ee\n9*. HKN}2{[SMk+4?߳W_Jbsu_5ulV1<|Hd/\\~P|!qx{8>%,f8~GʂsCYNIw(R'G٢4FWT5#:
R^D!C12Xٹlv*6;7' +h5j(U@sƼD:?]m{ً_o}ݻog?=ệX+s3d< Vx +biwΊerbTX +FRj +,U.l6*QX+)^c+i,H-.!#\z351+Vj`Xrn'Oo_|k+hϟcr!TըS)V|[W9֢˳hcl,Rְ_TӥT.N%Atv43soFVLGa%sZa\"| +tunqi]<h?>~Ӄ'}}g͕Bm$c!?2JوFj9Oct&ASmrLz2Lc(OXBj*N+EHŇ,R\N?0Wӊغso{>xsuRJi*}nE j)Y155h./EX5VX4 +áBIwטn5@ +L% +U},٪N6 +_R9V7M)ZlNѠi5j +d˒Né.Ņ7HJB%P24+ +jSrdD, +HEu6bqdu$"':Nsx9[坭jى euPYǧB\M'DbU4+\.ɤiA)b*>&Ms5
`6@:R/mHԚP"7
[ۛn./TXjbaI6$%DAQR`FZp^H0DWo;pD6=Liva,7W͕1#vTYGq>+lK`Ibfm~ +OYY:#.5qTdzx$PZ +LP,T<w٨0c裸`?s|XrWwJoqzVr2ɤ'm7c~8nfBTPDZHuEDb" ^%zgSxyO& +qU:p(Z!9?cPl^*Qu&~
T,$"|O!&pG +cr9^XC@K՛,VjZ5ac]Vjހkգ +xcO:V?Id +JR)2Ya(ZHkH K2BˤP0DXٍuh-Jk/#(H(r9
VbEiq!`%
8},cQkQZݽ}EzY]bh +Zpɫ:K)n8A]{{ÉO q /GS0 gs -72.2400029 0 0 55.9200022 16.3710938 18.6952322 cm +72.2399984 0 0 55.9199988 16.3710995 18.6952509 cm /Im0 Do Q -
endstream
endobj
55 0 obj
<</CS/DeviceRGB/I false/K false/S/Transparency/Type/Group>>
endobj
57 0 obj
<</BitsPerComponent 8/ColorSpace/DeviceGray/DecodeParms<</BitsPerComponent 4/Colors 1/Columns 301>>/Filter/FlateDecode/Height 233/Intent/RelativeColorimetric/Length 21314/Name/X/Subtype/Image/Type/XObject/Width 301>>stream
+
endstream
endobj
117 0 obj
<</CS/DeviceRGB/I false/K false/S/Transparency/Type/Group>>
endobj
119 0 obj
<</BitsPerComponent 8/ColorSpace/DeviceGray/DecodeParms<</BitsPerComponent 4/Colors 1/Columns 301>>/Filter/FlateDecode/Height 233/Intent/RelativeColorimetric/Length 21282/Name/X/Subtype/Image/Type/XObject/Width 301>>stream
HׇWYDHФ7)"FT,{oϖ{gos&r{(2(|}%_dx:]#OqePP/~0Th
6K 0`#V+:Fkņ+Fcx<\#-&X/Lb h.F{/BbEST&IiuCXHɦ @@ -1069,1112 +1059,1188 @@ Ka(Rf `3zsnIĘP֮)UL3rp>%fFn
VSA" W"ZNa;3-0QlIl[+cmزu'O.4uknGO)2s5(hfGy`[!Z+E?5uDEa2,-mEV )` AX&t5ڵЅDdJ {DzāyCLX/\OBV]+ԂK~SJ?䚚 ܾ]X[~ڡ-XNua0ָpc- y5+X<ulaInnu!Yrrg2v*>/}FXA\-"H[~jb@vV(oހ&"Nb
t֒@0,,BY -YV0ا,7g(~W@XA\/]qV몸E)Q!iD$qiiVbzN1eKWv9+J-WXIw(kZ3Qdp8urr9;q-ڒT\d+RZ͵U9">hc&"d<Z-ձ&0$ 57=EӇrvc:;;{xrBb/(5tޫĂEQ@((-" ee+E(FEc-Pb%v$k:љyof~^˝OU[e.*%.=ܔVۭ5ڴT;6X9ZaiHmr:`Qe
2/8*K$H"/'+cfZZZl^=xA`NDƥ@<eOmرU,"FLvh%XڿիUO@x%ٙ<tޢek7Cxv|lM?G훗ϝmVp|:i̇ -K ,h!QLJ)%!YY9<d.Ͷ{zM+.Uû\ڼ3cjT8_?Wt=&pbQPJ`dϞJ+PXP%n\Vp}e<zBц߯\\U$LA{Qˀ!#"c2sTہJ -AX4Fa!dZ?E74e[tޭ-,L<F"Z]z,]},>!Q,%X<+Ei,;qa]iiȽgX#GjqKY_ƆCkу3[Kw LҰSR`|?_(T.PGψ Vʥz -ւH6sKWZH;!<&/ -J$J.GXzʉ -LR,`UTցw pWo: -Vhzh|a$'5.٥t<tMMͭAY4#.W*,*)[z߀-</лz8+hCqjZ\)'R/w>춴X СOAcRg(bUwnǏ[_l{vi`xbxaY@m\16("6iFf@Aڼ -RMRwT.
dSZ"3^Cx\i͕ҦҥCX6ff斨,Oo g$fj8a)-ߍw)GmYt^a~zBTa0KCn`YXe}160bJf*pd|/A|Hus\lPSZ=DikؾkXZlx.`[ZeG%I[}\,XzF[w|>S9d5* tR|J:e2#ª[V(5Q-T}8.ǰqfOZ<]!۰m,,,l]y=>,zw\&n%>歹Ū2KW~U!ͥj<#81&1I%)U -ɟp"+/:lv`
ؤ4D& -J%b1E%,[1|öbfiۍKGnYJdgceem<3+" - -^k; -u -V"QD^TFa5mp,<*K˕ao뫋3phy"/N`SX66DYc -EbiaiY/88a\&C~~ #qR0WG*3s} :IE -<5elx<@^Rn,8+SXNa;v"W*/7/W,]eaNwڝqr&! \ $# -d!+}L;Gʰ$DXc' dVA
eI3/Y۽lWVt5RKq)JP`k[*acZ;Zm}X<V\\|@X~'t]z`YB6ܳe傰:ن9KKINO-6W-6aCT{j|ڴ/:GG=kj6*KJLHHY|@VaIWߌ -6y=n[6yw?{ nC|9ar>;12HX|Lc d!%EaZU]`;sꭻ1
~
mXC܆I1
4(,jRR%%#ke`VWvV:U@p´˷=EaC?ݝϟ<sòy=Z)4:Fa,599JgĀ,
[t꺦s۶ȩ?^'G*+"h.+H81BX]XB1 dݵM-!b<J{yY6NxM7(n|3XK;vϷ=]s6,f -JrYV(isKB
YZ68[:f.\y^dVdf=wKg߶vXE씄މeXZͤh)WLe8,p,YQn%e._ӄVl܉!lÁexv^8_eU ix7߈QX(TzJ -ZU[`JRl26u_!Zbw ad92YXW -XԸѣz!!a 9i:ɐbd!%a5ո*,&caZ&Zm_uaE$+-ex]f!'x֯
0YU,& -\PPK)૮YyyFKyE 0-A|D/,ù9f%YdJe2|BEj(3
z!duxڧ-XiO]Go"ܽu}XX^-6af+DT'CȪ #Z[MlsCS!h
:xdnaYSt#,_Xd٬4'ead!%miAb4VWTZY1k}GN!hHa˰3{Q/-C28tPU*JMz:33K/=
g,\e_q'!ei -0PX\&+պ78 <0G>`Ch@q;iaUuRej`djݎRS^vB*Id*{[5jOъVXo-ܰlޔn)i&6Vd/*(88%zR*b9.4u)H<I,dܼ)2²Ea| -u~:FINИlo|Ɲ`!>~6⌏9 -ݶk:t-$1,K~Z)+Th!BV`lRMK$&$$&q* [ݾ{4GcEk{*%nk!)a-uX -tR _n|( -%iS-*uNˌ}><_̞=USCs9d:"/)A$% -»9W*Zb`9;,VYSTٲE_hiihh]+&1=Ni%b['sz? -m:{ %!:<dVOg,7z6l8LMTSUQZ3fքZ?{19#bE
sh:,0,X@°07sd`k*+))jjjrۃ*/~ -S(k͘chܞ`Y([9BE~/X%XK -n^ƤAy` -TXFp 4k7ϋrYl` -G~_ZR-5ey99pJaãU$OҒקbY
`VHXn$E?'ϓmoptqF%`x{ -V_H(ngcckGgqBq#HYt4U&O,7EImtxӿ_NU?n i
P>{q=؋X=CrV+/ם> -?Vd|JausֻQwasf98:s=GPQ$++;INAY}Lp2DO?_E^I/huSqJQnnfʥ6KPm4(S86$65 >$Hfx -K,WYy̾#p
AJ{m\c;XN.<j -̗BO0~xQ)ˏz2:ju@""\M$'qHT+4'5»0};~#?H/<ck,m5șə%Ƀ~Pơ-U+\#`z),TIAYfhUyqOm)q*k۟?dŤ'
[_tB\d҉7)!p>./-̥XD7%yO!@2^atӱIjH[~oׄ8ۚkʋ2ѭErl,r --M_~iښchdbJs`ZqIՏqzH\(dz SO[A`Jd^Ŭ`ЭVCu* DzX[9r*&F2Z} -
?w!153NIYUm]C"yn(D"QqV -3R.D V^Z7P'7C8|eW-{|=Κ}I~Wz{QyizJXx+=)6_zow{EʂJjg,ꮀC75h9q6rJFvA!G aQT?y¼#͘t*+чP4=et́¢R%5NQWWwwOOO%ÖiL -pqyn>"X뼸L[3HY -r2R|Eh$7o!Ea1A\ʪj<mlƸ{qqЇ -.=3δT5omzǦDrse=@I{BГ%y1-C'OrP=ϭmjZ\^]^@~ArV!;HAS--@W
tˋ9Pl8c}1hKV"X~`?{骪)1 <>=C=ãS33s; ->LOM;|. -sYpvHi+_ڳ`x9F8)0<bmut{v|tu k+Bz )$ @kd/(Kt< ]\UVkF1 42.%_RZ:9 -!XHzWvmI2WnݹgjaF
NH}ʪ:{F'
ZX0624PS+b&E"C1Lt4UdC=h¤u3я`*5uu
; ->T+x%9B}<]zT$4?ZZ/#wl_$c`lneNOd -J<^YYyyyŎOee<d$é>^)DzSY>"eYP>T,QHıSe]w'h.Wor -#C[jW/_8{ڄs(sMރGx75<:>desr9 ->r89,VFZreh/ +H,wOPBu%c-[G<WVy -+^u
[;{z^(*Yiq -n1m
UEygNnXK4g.)kA@ZxTL|br*#-= з4Fjrb|lTDh?|{!dHYZj -ϟڮsl{8ti4);y@HxT\##x -3dQ8[%~Gʲ4rEvem?l>{t
\Oݼ||C"Ii9¢.[R\Tb`$E|A
<tq@ٍ߽e%9:yNZNo:p6+DɇL~..$dH^ΎOxKǵU熲(^Eii*jh1DGu$@Ha3_2TlvvV&+b>N6H_&PA - R;|.9DuȱSRbO36 ;>urvqq۶rqq?eۺBvl$!!Ͱ mUQgLsν| !J@>G<p{ܸ -V&KbTJ:W%nN6j<FQ沍xG#t~:[_Yۼ!4ij/_߿}ݻwo߾yۯ_x~z{X3Sx< Vx -biwΊerbDXFbj -,U.l6(QX+)^#+i,H-.!C\z356+Vj`Xrn|ѓo_|k+hϟc;tM*jԩ`+>ڊYRkYkñx6LUkBmOOW*Ra"IT:;Q\(PY|nOk7:"K$S\p<,,=O>}zxx~{;wn\צJL2*N
[a;Vk3$=`86Og\4VN.ͤSD<z`u)ʪ촲[*\4\|"CsI8;;؞;wlmZUJX4s;(*H@Ȋ7WZXZP$QcmEފEp(8ALk -TjVAJOiF=unTɄVҖ,3L;p$O$St&Ee;Ǔx4 -|f1! -OM-х-/T&+J$R(GX|%RY[YyF).zQF38xPH$LFv٨R`*P0aQV-%p -_R9V7M)ZlNѠi5j -\Fn,U(Pz:r=+V"?~"K#k\
^T_w&"04| ʗk+7শ8_̧"~'-\\ -?kv3+("b-RZ$J:
D"1nY
Bӳ)<w"~'8*GCH8x]A\{Gt$6d/(:~vR*cz\٧C8#ZF1rFvIQăOdKLZ܁AMfZLql-hɇZתR !$ƺz|ud^%JR*dQG7Vր@(HerB!I%b`!ZV?_ PbPrA?ZҺ^T<nتXZ.~ -%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 16.0
%%AI8_CreatorVersion: 16.0.4
%%For: (Roman Nurik) ()
%%Title: (io_paper.ai)
%%CreationDate: 6/9/14 10:14 PM
%%Canvassize: 16383
%%BoundingBox: -32 -65 65 32
%%HiResBoundingBox: -31.9785 -64.0049 64.0264 32
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 12.0
%AI12_BuildNumber: 691
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBCustomColor: 0 0.749492 0.832088 (PANTONE 3115 C)
%%RGBProcessColor: 0.14901 0.196208 0.220044 (Blue Grey 900)
%%+ 0.946889 0.94633 0.946441 (Grey 100)
%%+ 0 0 0 ([Registration])
%AI3_Cropmarks: -31.9785 -64.0049 64.0264 32
%AI3_TemplateBox: 16.5 -16.5 16.5 -16.5
%AI3_TileBox: -271.9761 -372.002 304.0234 361.9976
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -55 37 7.19 1448 863 18 0 0 -4 37 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-290 -412
%AI7_GridSettings: 4 4 4 4 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MO
%%EndComments
endstream
endobj
62 0 obj
<</Length 28195>>stream
-%%BoundingBox: -32 -65 65 32
%%HiResBoundingBox: -31.9785 -64.0049 64.0264 32
%AI7_Thumbnail: 128 128 8
%%BeginData: 28052 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
%524C45FD35FFA9A984A97E7E547E545A547E545A547E7E7F7EA9A9FD66FF
%A8A97E7E54542F5429542F5429542F5429542F5429542F542954545A5485
%A8AFFD5DFFA8A95A5A2F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F54547E7EA9FD57FF847E545429542930295429542954
%29542954295429542954295429542954295429542954295429302F5A7EA9
%A8FD50FFA9A9545430542F5430542F5430542F5430542F5430542F543054
%2F5430542F5430542F5430542F5430542F543054307E7EFD4DFFA95A542F
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F5429
%542F5429542F5429542F5429542F542954547EA8FD48FFA87E54542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430545AA9FD44FFA95454295429
%542954295429542954295429542954295429542954295429542954295429
%5429542954295429542954295429542954295429542930297EA8FD40FFA9
%7F54542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430547EFD3EFF7E5429542F5429542F5429542F5429542F5429542F5429
%542F5429542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F54295429542F85FD3AFFA9545430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F7EA9
%FD36FFA87E2F302954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%54295429542954295429542954293029547EFD34FFA97E30542F5430542F
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430545AFD32FF845429542F5429542F5429542F5429542F5429
%542F5429542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F3053
%A9FD2FFF7E5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F5430542F5430542F5430542F5430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5430542FA9FD2DFF5A
%542954295429542954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542930297EA9FD2AFF5A542F
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430542F54307EA9FD28FF54542F
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F5429
%542F5429542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542F542954295AA8FD26FF54
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F54305AA9
%FD24FF535429542954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%5429542954A8FD22FF545430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F7EFD21FF543029542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F54297EFD1FFF5A5430542F
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%54297FFD1DFF7E3029542954295429542954295429542954295429542954
%295429542954295429542954295429542954295429542954295429542954
%295429542954295429542954295429542954295429542954295429542954
%2954295429542954295429542930297EFD1BFFA8542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%A9FD19FFA854295429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F54295453A9FD18FF7E295430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F5430542F5430542F5430542F5430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5454FD17FF7E295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%54295429542954295429542954295429542954295429307EFD15FFAF3054
%2F5430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F5430542F5430542F5430542F5430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F543054A8FD14FF53542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542954A9FD12FF7E542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F5430542F5430542F5430542F5430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F5430542F5430542F5430542F5430542F542F85
%FD11FFA85429542954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%54295429542954295429542954295429542954295429542FA9FD10FF7F30
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430545AFD0FFFA929542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F3029542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F54A8FD0EFF5A542F5430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F5430542F54547E545430542F5430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F542F7EFD0DFF7E542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%5429542954295429542954295429A8FFFF7D302954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%542954295429542954295429A9FD0CFF7E30542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F54A8FFFF7E29542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F54305454FD0BFFA929542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F302FFFFFFF2F2F295429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F30A8FD0AFF5A542F5430542F5430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F542F7EFFFFA85329542F542F5430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F542F7EFD09FFA8542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%5429542954295429542954295429307EFFCAA8292F292F292F2954295429
%542954295429542954295429542954295429542954295429542954295429
%5429542954295429542954295429542FA9FD08FFA930542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430A9FFFF7E2F29542F54295430
%542F5430542F5430542F542F54295430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F5430547EFD08FF53542F5429542F
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F5429
%542F5429542F5429542F5429542F5429542F542954A8FFA854292F295329
%2F29542F542954293029542F54537E547E53542F3029542F5429542F5429
%542F5429542F5429542F5429542F5429542F5429542954A9FD06FFA8542F
%5430542F5430542F5430542F5430542F5430542F5430542F542F542F542F
%542F542F542F542F542F542F542F5430542F5430542F54305454FFFFFF29
%532F5329542F542954305429545AA9A8FD07FFA8FF847E53542F542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430A9FD06FF7E29
%542954295429542954295429542954295429542954295AA8A984A9A8A984
%A9A8A984A9A8A984A9A8A9A8A9533029542954295429542954297ECFFF7E
%29292F292F2953292F292F2F7EA8FFCFFFA8FFA8FFA8FFA8FFA8FFFFFF7E
%5A292F29542954295429542954295429542954295429542954295429305A
%FD06FF54542F5430542F5430542F5430542F5430542F5430542F545AFD14
%FF7E295430542F5430542F54305484FFFF7E29542F5429542F5429547EFD
%14FFA954542F542F5430542F5430542F5430542F5430542F5430542F5430
%5AFD05FF84542F5429542F5429542F5429542F5429542F5429542F54297E
%CFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF532929542F5429542F54
%29542FA9CAFF53292953292F2953295AA8FFCFFFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFFFFF7E54295429542F5429542F5429542F5429542F54
%29542F54295429A9FD04FF7E295430542F5430542F5430542F5430542F54
%30542F54305454FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD04FF7E295329
%5430542F543054295AFFFFA854295329542F5329A8FFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA85429542F5430542F5430542F
%5430542F5430542F5430542F547EFD04FF54302954295429542954295429
%5429542954295429542954295AA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FF5329292F295429542954293054FFCFA8292F292F292F29A8CFFFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA854295429
%54295429542954295429542954295429542954295AFFFFFFA9542F543054
%2F5430542F5430542F5430542F5430542F54305454FD14FF7E295329532F
%542F54305429A9FFFF7E2F2F53295429A9FD1FFF5A295430542F5430542F
%5430542F5430542F5430542F5454FFFFFFA9295429542F5429542F542954
%2F5429542F5429542F542954295AA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FF532F292F2953295429542F54A8FFFF7E2953292F29A8FFFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA854
%29542F5429542F5429542F5429542F5429542F54295484FFFF7E5430542F
%5430542F5430542F5430542F5430542F5430542F545AFD05FFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFF5A2953295329542F542F5454FFFFFF532F295329
%7EFD04FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF
%FFFFA8FFA85429542F542F5430542F5430542F5430542F543054297FFFFF
%5A295429542954295429542954295429542954295429542954297EA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF5329282F292F292F2954297ECA
%FFA82F292F2954A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FF7E29295429542954295429542954295429
%542954293053FFFF545430542F5430542F5430542F5430542F5430542F54
%30542F545AFD14FF7E29532F5329542F542F547EFFFFA929532953A8FD25
%FF53542F542F5430542F5430542F5430542F5430542F5AFFA85429542F54
%29542F5429542F5429542F5429542F5429542F54297ECFFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FF53292953292F2953292F29A9FFFF532F2929
%53FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFFFA829542F5429542F5429542F5429542F5429542F54
%29AFA92F542F5430542F5430542F5430542F5430542F5430542F54305454
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD04FF7E295329532F5329542953
%A8FFFF5A295329A9FD04FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF5A29542F542F5430542F5430542F
%5430542F543054A87E302954295429542954295429542954295429542954
%29542954295AA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF5329292F
%292F292F292F53FFA8AF292F295ACFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7E2929542954
%295429542954295429542954295429848530542F5430542F5430542F5430
%542F5430542F5430542F54305454FD14FF7E295329542F542954297EFFFF
%A853292F7EFD29FF2F542F542F5430542F5430542F5430542F5430547E54
%542F5429542F5429542F5429542F5429542F5429542F542954295AA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF532F292F2953292F292F7EFFCF
%7E292F29FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFF5A2954295429542F5429542F5429
%542F542954297E5A295430542F5430542F5430542F5430542F5430542F54
%30542F545AFD05FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF5A295329532954
%2F5329FFFFFF532F295AFD04FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF7E2F29542F542F5430
%542F5430542F5430542F5454533029542954295429542954295429542954
%2954295429542954297EA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%5329292F292F29532953A8FFA853292959FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A9
%292F295429542954295429542954295429542954542F5430542F5430542F
%5430542F5430542F5430542F5430542F545AFD14FF7E29532F5329542F2F
%5AFFFFA9295429A8FD2AFFA95429542F542F5430542F5430542F5430542F
%54542F5429542F5429542F5429542F5429542F5429542F5429542F54297E
%CFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF53292953292F2953297E
%CFFF7E29292F7EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF2F2F2954295429542F54
%29542F5429542F5429545430542F5430542F5430542F5430542F5430542F
%5430542F54305454FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD04FF7E2953
%29542F532954A8FFFF7E295329A9FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA85A2954
%2F542F542F5430542F5430542F5430542F29542954295429542954295429
%54295429542954295429542954295AA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FF5329292F2953292F29FFCFFF2F2F292F7EFFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FF532F292F295429542954295429542954295429545430542F54
%30542F5430542F5430542F5430542F5430542F54305454FD14FF7E295329
%542F54297EFFFFA854295329A9FD2AFFA85A29542F542F542F5430542F54
%30542F5430542F29542F5429542F5429542F5429542F5429542F5429542F
%542954295AA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF532F292F29
%5329297EFFFFA82953292F7EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF2953292F29
%542F5429542F5429542F5429542F54542F5430542F5430542F5430542F54
%30542F5430542F5430542F545AFD05FFA8FFFFFFA8FFFFFFA8FFFFFFA8FF
%FF7E29532F53295429A9FFFF7E2F29542984FD04FFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFA8
%5429542F542F542F542F5430542F5430542F543029542954295429542954
%29542954295429542954295429542954297EA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FF5329292F292F2953A8FFA854292F292F59FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8A8292F295429302954295429542954295429542954542F
%5430542F5430542F5430542F5430542F5430542F5430542F545AFD14FF7E
%29542F54295454FFFFFF2F532954297EFD2AFF7E2F29542F542F5430542F
%5430542F5430542F5454533029542F5429542F5429542F5429542F542954
%2F5429542F54297ECFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF5329
%2953292F297EFFFF7E2F292F292F2FA9A8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFCA7E292F
%2954295429542F5429542F5429542F5429547E30542F5430542F5430542F
%5430542F5430542F5430542F54305454FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FD04FF7E295329542F2F7EFFFF7E29542F53295484FFA8FFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF
%A8FFFFFF2F542F542F542F542F542F542F5430542F543054545430295429
%542954295429542954295429542954295429542954295AA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FF532F292F292F29A9A8FF5329292F292F29
%7ECAFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FF7E292953293029542954295429542954295429
%54297EA929542F5430542F5430542F5430542F5430542F5430542F543054
%54FD14FF7E295329542954FFFFA85429542F5429542FAFFD27FF7E29542F
%542F5430542F5430542F5430542F5430547E7E302F5429542F5429542F54
%29542F5429542F5429542F542954295AA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FF532F292F292F54FFCFA9292F2953292F292F7DFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFCFA8292F2954295429542F5429542F5429542F54295429A8A92F5430
%542F5430542F5430542F5430542F5430542F5430542F545AFD05FFA8FFFF
%FFA8FFFFFFA8FFFFFFA8FFFF7E29542F5429A8FFFF7E2F2F5329542F5429
%54A8FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FFFFFF53302F5429542F542F542F542F5430542F5430542F
%54A8A854295429542954295429542954295429542954295429542954297E
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF5329292F292FA8FFCF7E
%2953292F2953292F297EA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7E2F2953292F2954295429542954
%295429542954293029FFFF545430542F5430542F5430542F5430542F5430
%542F5430542F545AFD14FF7E29542F542FFFFFFF53542F5429542F542F54
%29A8FD22FFA85429542F542F542F542F5430542F5430542F5430542F5AFF
%FF7E29542F5429542F5429542F5429542F5429542F5429542F54297ECFFF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF53292953295AA8FFA82F2953
%292F2954292F293029A8CFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA85A292F2954295429542F5429542F542954
%2F5429542F3054FFFF7E302F5430542F5430542F5430542F5430542F5430
%542F54305454FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD04FF7E2953292F
%7EFFFFA8295329542F5429542F54295453A8FD04FFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA9FFCF7E29542F5429542F542F542F
%542F5430542F5430542F5429A9FFFFA92954295429542954295429542954
%29542954295429542954295AA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FF532F292F29A8CFFF532F292F2953292F2954292F292F2FA8A8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87E292F2954
%292F295429542954295429542954295429542954A8FFFFFF542F5430542F
%5430542F5430542F5430542F5430542F54305454FD14FF7E29542954A9FF
%FF7E295429542F542F542F542F542F5453A9FD1AFFA87E29542F542F542F
%542F542F5430542F5430542F5430542F5454FD04FF5A3029542F5429542F
%5429542F5429542F5429542F542954295AA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FF532F292F53FFFFA9292F292F2954292F2954292F295429
%2F297EA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF845329
%53292F2954295429542F5429542F5429542F5429542F54297EFD04FFA929
%542F5430542F5430542F5430542F5430542F5430542F545AFD14FF7E2954
%297EFFFFA82F29542F5429542F5429542F5429542F54297EA8FD05FFA8FF
%FFFFA8FFFFFFA8FD07FF7D54295429542F542F542F542F542F542F543054
%2F5430542F5430307EFD04FFA85429542954295429542954295429542954
%295429542954297EA8CFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8AEA8FF5329
%292F7EFFCA7E292F2953292F2954292F2954292F2954292F295353A8A8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA87E2F292953292F2954293029542954
%295429542954295429542954295429FD06FF5A542F5430542F5430542F54
%30542F5430542F5430542F54545A537E535A537E535A537E535A537E535A
%537E535429542FFFFFFF542F29542F542F542F542F542F542F542F542F54
%2F302F7E7EA8A8FD07FFCFFFA8A85954295429542F542F542F542F543054
%2F5430542F5430542F5430542F542F7EFD06FFA9295429542F5429542F54
%29542F5429542F5429542F542954292F292F292F292F292F292F292F292F
%292F292F292F2954A8FFA854292F2954292F29542954295429542954292F
%2954292F292F2953537E7D7E7D7E7D7E535329292954292F295429542954
%2F5429542F5429542F5429542F5429542F5429307EFD06FFA95430542F54
%30542F5430542F5430542F5430542F5430542F542F5429542F5329542F53
%29542F5329542F5329542F2F5AFFFFA929542F5429542F542F542F542F54
%2F542F542F5429542F542954292F2954292F2954292F29542F5429542F54
%2F542F542F542F542F542F542F5430542F5430542F5430542FFD08FF5330
%295429542954295429542954295429542954295429542954292F2953292F
%2953292F2953292F2953292F2953297ECFFF7E292953292F2954292F2954
%2930295429302954292F2954292F2954292F2953292F2953292F2954292F
%2954293029542954295429542954295429542954295429542954297EFD09
%FF2F542F5430542F5430542F5430542F5430542F5430542F5430542F542F
%542F542F542F542F542F542F542F542F54A8FFFF7E29542F542F542F542F
%542F542F542F542F542F542F542F542F542F542F542F542F542F542F542F
%542F542F542F5430542F5430542F5430542F5430542F5430542F543054A8
%FD09FF5A295429542F5429542F5429542F5429542F5429542F5429542F54
%2954292F2954292F2954292F2954292F29542FFFA8FF532F2954292F2954
%295429542954295429542954295429542954295429302954293029542930
%2954295429542F5429542F5429542F5429542F5429542F5429542F542954
%53FD0AFF7E5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F542F5429542F5429542F5429542F54297EFFFFA8542F5429542F54
%2F542F542F542F542F542F542F542F542F542F542F542F542F542F542F54
%2F542F542F542F542F542F542F542F5430542F5430542F5430542F543054
%29A9FD0BFF2F302954295429542954295429542954295429542954295429
%5429542954292F2954292F2954292F2954292F7EFFCFA82953292F295429
%2F2954293029542930295429302954293029542930295429542954293029
%542954295429542954295429542954295429542954295429542954295429
%54A8FD0BFFA929542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F542F542F542F542F542F542F7E7EA859542F542F542F54
%2F542F542F542F542F542F542F542F542F542F542F542F542F542F542F54
%2F542F5430542F5430542F5430542F5430542F5430542F5430542F543030
%7EFD0CFFAF54295429542F5429542F5429542F5429542F5429542F542954
%2F5429542F542954295429542954295429542930292F2954292F29542954
%29542954295429542954295429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F54295453FD
%0EFF7E5430542F5430542F5430542F5430542F5430542F5430542F543054
%2F5430542F542F542F542F542F542F5429542F5429542F542F542F542F54
%2F542F542F542F542F542F542F542F542F542F542F542F542F542F542F54
%2F542F542F542F542F5430542F5430542F5430542F54305429A9FD0FFF53
%302F54295429542954295429542954295429542954295429542954295429
%3029542930295429302954292F2954292F29542930295429302954293029
%542930295429302954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954FD10FFAF2F542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F542F542F
%542F542F542F542F542F542F542F542F542F542F542F542F542F542F542F
%542F542F542F542F542F542F542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F543054A8FD11FF7E295429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542954295429542954
%29542954295429542954295429542954295429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429305AFD12FFA95430542F5430542F5430542F5430542F54
%30542F5430542F5430542F5430542F542F542F542F542F542F542F542F54
%2F542F542F542F542F542F542F542F542F542F542F542F542F542F542F54
%2F542F542F542F542F542F542F542F5430542F5430542F5430542F543054
%2FFD14FF7E2F295429542954295429542954295429542954295429542954
%295429542954295429302954293029542930295429302954293029542930
%295429542954295429542954295429542954295429542954295429542954
%295429542954295429542954295429542954295429A8FD15FF5A30305430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%542F542F542F542F542F542F542F542F542F542F542F542F542F542F542F
%542F542F542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F54297EFD17FF2F3029542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F54295429542954295429542954
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F542954A9FD
%17FFA929542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F542F542F542F542F542F542F542F542F542F542F542F
%542F542F542F542F542F542F542F542F542F542F542F542F542F5430542F
%5430542F5430542F5430542F543054A8FD19FF7E29542954295429542954
%295429542954295429542954295429542954295429542930295429302954
%293029542930295429542954295429542954295429542954295429542954
%29542954295429542954295429542954295429542954295429542954292F
%7EFD1BFF7E295430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F542F542F542F542F542F542F542F542F542F542F542F
%542F542F542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F547EFD1DFF5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F3053FD1FFF5429
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%542F542F542F542F542F542F542F542F542F542F542F542F542F542F542F
%542F542F542F542F542F542F5430542F5430542F5430542F5430542F5430
%542F5453FD20FFA853295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%542954295429542954293029FD22FFA9542F542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F542F542F542F542F
%542F542F542F542F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542FFD24FFA854295429542F5429
%542F5429542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F5429
%542F5429542F5429542F5429542F5429542F54295429A9FD25FFA8542954
%2F5430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F542F542F542F542F542F542F542F542F542F542F542F542F542F54
%2F5430542F5430542F5430542F5430542F5430542F5430302FFD28FFA854
%295429542954295429542954295429542954295429542954295429542954
%295429542954295429542954295429542954295429542954295429542954
%2954295429542954295429542954295429542954295429302FA9FD2AFF5A
%295430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F5430542F5430542F5430542F5430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5454FD2DFF7E29542F
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F5429
%542F5429542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F542954292953FD2FFF84295430542F543054
%2F5430542F5430542F5430542F5430542F5430542F5430542F542F542F54
%2F542F542F542F542F542F542F542F5430542F5430542F5430542F543054
%2F5430542F54305429547EFD31FFA9293029542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%5384FD34FF5A302F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F5430542F5430542F
%5430542F5430542F5430542F5430542F54297EFD37FF7E5329542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F2F29A9FD3AFF7E295430542F5430542F5430542F5430542F5430542F54
%30542F5430542F5430542F542F542F542F542F5430542F5430542F543054
%2F5430542F5430542F54305429547EFD3DFFA9532F295429542954295429
%542954295429542954295429542954295429542954295429542954295429
%5429542954295429542954295429542954295429302954A8FD40FFA85429
%5430542F5430542F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F543054295453A9FD
%44FF842F30295429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542F5429542F54293029547E
%FD48FF7E5A29302F5430542F5430542F5430542F5430542F5430542F5430
%542F5430542F5430542F5430542F5430542F5430542F54293053A9FD4CFF
%A95A53293029542954295429542954295429542954295429542954295429
%5429542954295429542954295429542929297EA8FD51FFA95A5429543054
%305430542F5430542F5430542F5430542F5430542F5430542F5430542F54
%305429542F7E7EFD56FFA9A85354292F2954295429542F5429542F542954
%2F5429542F5429542F542954292F29542F7E7EFD5EFF7E7E53542F302954
%2F542F5430542F5430542F542F54293029542F5A7EA8A8FD64FFA8A97E7E
%535A53542954292F2954292F2954537E7EA8A8FFA9FD32FFFF
%%EndData
endstream
endobj
63 0 obj
<</Length 65536>>stream
-%AI12_CompressedDataxr%Ǖ&w~S /nXI*RIʮd&-T|gsqHX3A ×|g/_~uww/?{_͛>g0tWz?߽?d->}v>]o/}|3{ pz:|yȻ+?D~x_^{1;/EWwe-}^v|wͻbw3^~Cy7on_W]/C7_oG0.W?}O}Q~-](=3?4ڮH?)_w)aw|=}&2ҧÛvϻq!%aFnwmA?~/w߾|lqo
8m>eY81PwwG:O7HYλ?_~희/e#]oh<EWᄒ{Cow/s7?|c1hS?agyo{wc|1v-51=11A'D+9m뷿xtx6~?+wouя6nSo>s=)푷+F?_?|'oEogko~?w?|˷x}&TFn'$¿|{?}qz~7ᆱ+/~xןy_//J:e߲z=7Tn|/Өo߿|EO>6H{k;rqwxwWq_3>['
'{ -} ǿޏ/ylݟ$o-^zs埿pww5+{^_=}X?~5/xLлo$k|-w8|E,&/^tawx[x=HHo_~KtgU]qwWB?Cy)L9EcpGOsw}zi/;E^vnܑuew_ې,4I}X.uCˎ~
p]b WK/ϴc_QeZxe!u=M1N-1#<ɕjs'wI;>ݘtk1c.>Xb˷O ߺ~6j_U:Sx8n11xq9x>ޞS8S>
4t8Ot{y<Oy~[6o9Q[Uu:~oU[Vm^iFCB[dqIyhin3Mq8af"0iD@||{Rn<9S9tYƛ믴F&YiNgko_xsyy?inD݇e\eYq9-~y?-!!xa8&5zVK}_`qA[_jשjǪ.~9<Lh>yi~8ni+ô'Z6O4NÔ4EwxK[4ø'Zj6ڴjcӆUӯf/EnjW~&c՝F7IsZ!&
gtNDz:f@nx"xf:#=M͑&$$L7<.4<4qt{=vmpNu -cMAD" DHSG9n'jt4My<OxMFm,oI[ƛߐB&E3HcOGq9̇DG4zƙ푎BGx<ЁNv^NòS?%5Ej5JD=m^uJ댕>*;0qѣw 2oБ7[lTZV掅Sp-Bkmxqֻx~BVOoC.89 -zL]DD' -FZcee{Dm5xKȫф$[Og*A -j8&gDHL{V.v2mle˾`g}hGo\N[wv+0)U\30҇sI(hԞiTa.u_h{cv#mXZG߆&P"D핯\h2g[
>ruwLhnYٮ}^+^ mr}2~cb+GO#D:1Hj~4SuzztF]iH٘bRaY+':V*<U!Oګ3-noI9{tn(]<'c&9Sbr .LSyqIx4R$v(Ə<ѦsNyDO᎔g%9h"0q!a0<ƜH'1S }NXvκY7;fg?F!.ae'Z u,\>6ex_'S -LR - -3*SD3$yfnϰ%1f Weԑн㎁QU݆V*I]YQ45V Qj - 9bRrPj3v- -mn]e}n3+NU6UM
]c۸nݨ -Ө -<PzDaŇޫ#Of -N_N5%pUi\oWofٳink7Y]bF.htSm|n4Ŧh٢e,YIVxօeE-=[Dae+hdfYGVo>5 -&@9/%Ka6^7r3\
*9c'Q?G?CA0d'7]#aWZU6g՚jqG -[ J*ATcZaFTo-]=4X5$pMFZ։X<3-nW̼v*d+ٖ7q
h
ѷ5^7^ZwPXwRaiYFcX؆j vƫ94|TF'GF܉Rb]#{\aU -߲3Qdb70[1IB&|/Łfu&:nD@ -m5//2߮ЩcytM.Y9A- -Qf -Ξ -v:wz3"N3a-3# [d< -ᖙMϰ EebjM̉fFs$i,۹S۶G%6.YJ '9ΛaRӒ -53R1*툷،{;EAO@a5#TpY8UH9\,TUS*%)w -
H]Q7]ni&~sPjK`5r$Ň_&!(Knګ *(-ξUf -Z~گPեleKoew.ݺ>]s&Wٓ3+O'O$&-;b4V{{ -l}bw;Ÿ%ud)p`I0+x -4VWn"\ߺ;Q״O:&;kJ'XR_O2J]ٝ4+75i;,%OT-0aCAO;yޖ
evgkck7[n+uo[gnؐu$Hԭ.# -Y-,u45`sگN8~-W\U5Z3W@J4 - -94An{ pdH( vb`@ - -mС[QCEudRCI
)ei -QG:D}4vet 3ֵ*|H]ýmuǴLCl>;w"M^EڝkI5f7`Z//,n<5ɁX]VVJI]ZJǍZTϟt]*Ἵ֎mr.U\^nOuӴnu=hžkܪd0ː0'b*l$6|ؐQrpq#twN.]vkT{U&d~[y[y[y[VVVVVVVVVV|tRU9Y["V,^D,UXJIlwlFOuYq_N*EČ9p[]fdyG+y-E2-;a-6K2)ɴff]+?`ײ_M=rN3?Ϛx<H#mdӞc22ΗgrQlq+tpc #dDQ{Ӱ#vo;Tt9s0nN'kٺcVu:e0j~'LCy,|Q9c!ffj?z%Lޑ -4LK<8$l9*C1q9`+/{mDH=}?ҵ*L[`mCp#,pN);ogۺ\UE{Ω\{ -l`EI=m-Vk:Պ餹/bQRղ![6m6v2̚X7i6)8eIQu?V`A o*=cW튣Ӕz1y)iP;9Ik9Y5'Uj̬RTrRid&UwLO\z@EK}')/}.R b]($8+DѲfo5j3캡9E-wjUe<Nirp.=Y|感ߜ9u~s^sǜ2z) \;:]W -U"<Kv+=$`ڬÕȔ"P%X:H\&"5.IR!IzkXMu]:H'Wj:$4W0K%V!>J1zY*"b>B̕Ot<Wu[v+3f -`wO9SNULϷ%h~ߩj>$o87~h6B6<X( -Ѩ3:c}F[t[FO4Aێ'xOnJqzDW/xtіwGWzl0&wI|%|Ftj´{j6̣*l2/4m*"IfĬӂч=o>b>GQ4XKˇnK|d+|d㺤['4Uux:zageqY$uHARS'HURI8z7I&[,ԁªyҰ&q֨/>oRH8$G.pGe͟s
:"tS4=~T>m$***QL -l=V]ݝ$:e:xUT4qYkωs!-h2_:Jj<KX⾄i-9u<JWեJPT䑇66u֢fřˀ`]E#1O
XX7DR='O9[NDٶ'ZΞA_)$ٸB]p#}f7%ktqnjZOx&9<yN9%sJ<)yS<yN9%sJ<;|N9%sJ<)yS<yN9%O(
͔d~RsR<æ5<mS -KJImmX1 -p"!V3&ŬF,5s -Nn,(ftsԵ5n5(sG0{QAnxXաɧru5
ֱR+8ZRe[*
חI`xrpe"1]xuz߲`kVDIkT*
SrKv:`uy:Ud=ȯ챊ٷ0]b^_W[ٺ:*FЭ -l6|9;+B#XYcMn4h>FzykNoU==vnY=]YZ/P\Y\6E@+z*ZIևlZvK9vcdGdxc^zYaHSCY&y?䁕ڍwJ7'N8Mr3̘~&Qq6nCkh~> -ch݅Pd{JkjP%̙ۏGdzWZc;jcF77C<D>V&J,iM둵GgFv Z;I\(݆]oQk Q9:FW>b廜Y}x)o<j'ZMXCΏjk~\Uk\wU.;.?IT
ղuK#CCk]%CQ}dlϺRk^AU3Yփ=s1}f$qLJOW/'=֮FܲhنPC=ނC4ԏjkuX>ޫt`==P_):ʭ[ڒm-
6ڈM{V.ٲ>l~!ʂvzU}Atӆ~Z{mjz_QղRR+Mnx\h^תkwzZ}ւN|z]eG|cŷ{g.[Õ*t#n{um骕q! %Q74!p)ɧ4ѭYJuH-iףyKɝ(>W Rlnx'%4>wٖFwS=ܠ\A-$>?c\MJ yXeꙕYaM<wUJ:)N\;x&[zJy4\*]u,Ò@ɺƗQ*M\ZTEVM㺫:'G7 -ҭZ]D;ފ=8TF/1=ۙE+F?o>CRb֢jRXkZĘ4wV@\[ٻ$Ka +2
64/y8/dU^Fl
ri U^'M-2uY"AW\V:['dg؎>@_WN'vϒ}+|-';tѽ?o0mm2L tUtը`ij"]?#kH&5ZNkvmĽt>=zAĦ(,beY-_s];mlE;U?b\^z %]LY-6}4 -.{nUOV7u/zl.}okyd+ٺZ=uQ7j9u4I<ZNZZ-Yg&r餩tjON[US9\pƶʶUӮqZEz?Aђ?N^?as~QBt-Th{⬶A=k-Il'{/'Fl'X0.mv9ρ~9Ѣ WTn}PձWllDyYOIyָlhdk\k[˟b-{Uҧt_C˗d-=T>x5':ݧHY͵F8r~̉sLʡW8uMW'z#]W~~x/*C$wߒwܑg?Bov!7#vÒn2]잿??Zw?/?~ヨ|b}Oc}uϿ?߿pzwo_~ݛg_||uw:Kso_ꋻW~{14s -NP777swn3GQLYX2/I -xh2_ZgbL,<24ӮP8~eFE윑v -M͢H?b˅Qzy+-zD.d^"m@w:Qi --$yimh/cόhbLЀ=8<z -tI?_DODp"M'}10UqfC2qaH#햛1\w:Db6Yc-<
~1BiF?|Zq&|E`t8l~w{5o~n}voOu~w_|Eß_7\ᄊ=;qv/y1AIDQ6kEҠ&KTrX,:sM:i= zM F:L痤q.:3K`훉!"߬K x -P/<KB1$[d7`ðODYxx83`Cm@:ؿ}/7o $2yDI$uŰ|`Fiؽ!>h =($HGh#7ðD ʅJR=]Z0~OnYgÞP|<} ]/{}H'[?o6HT\:@I5nGmN!YY#NN -F4<c/c~f~ј2`19aqB=W -* Dy,S㠳c
Wg N&(QI`Anx#FljxN$F-8q,ˊ@L3DyI;%x4Oñ363Xq+eG0+6
[% TYUZt{#I=zx;+2/8 -/Q7}glr L.٧6.ƋW|N
3̋o۫YT -SwNSlhuҕQȚ -}>|h>+,\4w;rPғXO{PC N}&ҳ"ZHe -1uI/T& -c$Xp4!0#2"jTBD~O?=FC+i,v$Bh.#:+Ag#~l-tWTatEʼn,HXn -`~!F֮rBamvdB
9<'?2GFg]qIO
gL9D:$7-.[cO); {F$ǩxɜ5.s(ᬋ -${z - IfIl^D\z,e̊ -pX+%eq\-$ 5ez{G*zdʁWZmtfZ! -n/n;A7X4CYc$
|. ,jP*>B=@T$y(">/<3m6,ڼj>g~B-'֠:kNiAj#/ꋻ^~ԩFS
$t -kzDXvxܱBdy<~1UyiyDٲd8zvdUyXaJr˥4R -u&?إjȽd K_|] -%::t bezfLlᬠ)7cA̍ĽD2C/_A%"ktAôhHR!+.&?4Q\$tA b5@fxSmvsD3-<rmhPdbcɍMxouf< ._Up9vA"3qYUTguP|(R<9b~Gd]|3j!paƆ~k
Ah&uV+O@Ҥ :ͩ`,YOxÄ́%թgM -G9dp<k@')TyGM+ucy.asD#$ګd -lЮr -Eia[F;˷@sLp*
WPï@d>IYtY[u~Zy?IN̡bHG/yNg,.4|.:sڒ03TZX.RR%t kD\-$},"hW+, KpD2܅ե3tZ`=b*҈ya3i -^֤E@#jf4qѨ8J!_ˮ&??@B*-\K$r:gW9YE--{ޜIly,[ScI7GAL
f!/fzȔل?4ɤƃrhUL9vKXJle)Üۼ4K!f ],,ΩA~Zȑ=CN?3
QJj i ڏwĤwx(0*[GZf{Vos|@-,At,oLlgKcl8:|u*}^|j48:% Eht<ZWʂׁ/<>P7N !FDۣl4BRpK;tڔ[B;h{6ߍ$5"R(i(9UWj4 5gaF=:h*
]Msvr
-T!<<';j[y34vWL;sj~l vn\ݧC+UhxuUCM<.DQ.x`{R(oһܻ,.mydMm:O_eD>dNe:PɈ`rMUPѸMsIҠ"Ae6׃%4BE&*KQEwzpIZ0=ȳp$Pz9?\-kr9DL,#6HLS%Kz^W9'zZ&Wp|+{ZW-s+MzW=
LQ-ULR)Wm TF5E -46(JLc3߀{M!*evig_o*ӮAe
0*;pv
jw]YsD^63ih^9.`M -vhFMIFtgCu2ةJGXr8S]j,;n};2l,&Pn8d]n8CE/<&_xKۅEf!(rZ
E0֕Zd)WM1HPҊIfO)ɥ\niD3 -a"H'|8zS -/ylFAD2Mex,{XIKd}FoL P;UhgZ~PgٸKNaFOeUƯip_N¦"vzg - -2V@,!>)95-gh9.o@CLO/t2*`eaŶdZ'U_TBn }|l̀W|:PHZ`S -}H 蹯\"K+9'$,gֳ_aW@UXcW ̀^?ev"fyNR\N}Ż{"a4m3__]y8lspzg)>(#Ͽ$7W?|Ż/qʇe!H'a%h9D1л!ߥhFzq[Qk#gu=!I5~.igp■p0h8>?s>=|t^%@$ksISŋ#韋^ObfZ4afb)
<*
\1/q!7&12K3J''
*}Ik2X&~U97-q,CCН:H#K5j$¥lh<;8\?%!Ҩ놂|VLSS>>Ni -E[#^*"%x^-hFa)J |SM?ۜZbH$OSB'P*և -tVC -VJpn UFGN/nAo"X Ιx)嬒V<hzMxUջ̫wVUݧPQ,I -@ˠQuE%1->=<@a鄖*hc#¸a"5֘US)Ŗ7(C+ٖs[b/Xo8ic @K G-84(u -}2h#rp%6++<= -"eZfzQ_^~)\/$ֳ5#Yj-x25jF-JAe(rMyJ}fPQ1P; TF;,ke{j'^к!^ډv5jm7^ҟ ZveVezIqg^za^ܸW1wF^\5++,b7.TR_4kû5Ak͗e^yPdL -_g16QMt%OV@ .B7YweL< -o[q_ZY._c A֡O\T -/t/q6c@&@fT , -G'Ü4qbH -4(s;>ҊPݥ%DKmد|LFMĕ&Q5(3z13@߅q0!ʄ،,Ě9=7&&g,L_M݅4JBxUU>.!+5>bDv ->kqMI2EL\Bt4db*/R\r,}Y1WVAˈIY
a?e1ŗi?cCXA cGJWsZvm2Q<:gimL(b]g #0/Ŗ)dPRQ_rkD+S{Ob0oKQOLX>ar~fc3ৌ -cisZu2SipS&|z94P9芬:dam'7ar';OpyDZ8O -7ٸf+(S]UMI.ɩ4U3bUlbse.Qd1ЙvZ(usntM&F2u1Wֲ[5]Fw˧n!m}ZV$nU-LQgPj]5rsBqU-7_6VFisc+wn0w
덢XS}-r%QMl -0%xh~e4 b
z+3Q+# -<>.
(TLjDίl -C..'ayfU@Asudyx`Ua®#
=v#YeKjX"ߢ2}m{#sOR?GLs0]id
a|1Uo'bq:W34s:pV~,s?E`+KkQHӖO;Po6 -Rtؠ1=??h6>l_, @ gGNv*D+DO@BK@@ -ClP( QP%/| -W -qǟ+4p@ȼ&A -tL:0MJG%$pe: OŋL-4+4- -CDoM{ݑL?I -}E}N 6ȱ *jmx"uok\!H-U5?]cZDERm.y7ўw*A{(Đ>_JJi4+juL<;TeUΤޮީ0U_v:;zX -ؙ^2v둻N -H3/>kW{9PW]nTj -NBKqjjG -#fK$[;"jIu@.@)#PL}L1VYV`("P#
7n8H]`= -RzFޑV]SO_W?2#HCEmߗE> s?r_;x!\.m+<zV\ql'ܯeA'7Tӆ"6R`_Gpy6oSH{B7wLFj揖CCgaaC]7hA"udXJ/,]v}
Sju
9Q<&EEZ!u"S -<oE40_Q;p+t:K:F5I@ ->fWƤCÂi'Fu{b*SSah=RŤU5 QdtI~5uw/KT*Kel,siu:)_^4Xx<=Dms` -r{"H*gZ?WZ -b8XZ;kX$Q7Ŝ Dd`m})FW9.H bĴ냮Ҧ I1J1t*|!F -7'L\khwt^P1"L3$OX
z}Ie] --_-/WOJq)nܨ/McK1̼7R -bBivۊ<U=FvzNmymIFiztb7qڶa|l~n>Om152Hj%~>s=syrD!\x[yf3A]pJPAsϪAR
9weYM2_IP{U1w/r7B5d,s,> jqHYkH! -ES犯|pt0x -mT/k)Ն>dzP6(
]ET+Q궈sfaD'< -}Zlw-Ͷ -ҢG9MHEZH>Bx<Ћp"JpFek$r՛mFb4N8Ws/7_?Vߔ%Bƾqw9I^q"RaBH#] K+ӊIg,sV -ir^ͦ''}:kV -X*i!-
iCEg̯5x%|kM -KU8&&Kq1K(#TlzTisĹ8_mTBE)w9uEI:F]$ՎkF<R-+*SFEFJ8b^wGBJʁGRR)9}åL#OEVBZW4-*~ -ENPVTs.*lE;aqWΔ)M型ICn$wN4ő,8/BGpbpjW%9qNJ|Hf^i3h7&{br4=j3E21Ii0y]ylydqaf\މFOܭÍ9TtXm\oSHAn^ 89(lϱ#ęcXG!) -
B2H/qv-f.}o, Τ5?5D\كR1~M3Q d䲵ÁN_?*ָӓpxYҚa*zYkEw`&ݍpr$89l^MYJcͨ*595ܜt٦=<;\GF_[RCA掝 EaDF#;^^ō
/)= %)M͔l%@,q{t|y& 8pm }AvJT4LJN[Tek VV)Qb>ZVS-ͳ_G`!<V/hEBld.h``ɫ͈X/>MX,_CWLh*UL̶ȥwo"BbCixVq -E8*>k"$ 0TvYPVxkAC$o|g~wπrvYQxN}ktuV8"_c^cRӕ]ηkxV9JރP~銹N@@zk
媕WXRi߫^3rq?ĊאLD(VG'C錩"X)Y(5rŵ8#'Zt[3 GU L\H6S# 1pXOk/KO W%`W݉%u:HhȔ&bK*MWJ:+\jÆ}ZOp`8. z%.-5{htKx5lxPAn;H[J -SevxyLLjIPBx -Yʑ]t+ +MǓPUu;dS7.gjsߙ//=l;] -ڋ^DZxz|PN -e-S\&3ЗRLKnf3ri΄G.=S2.ݚ@Xe\Zd&\y[Fwf"4;PTe*,.sgF7'ҝ]xӞ;~{5]Gg Ù p{3̍Nn~Ps;y2d>vYd67 ڍ-J$LdžcSsgc܇e{گe6<u=c[YJ,}l7{6ܖl_{e@lq{n;[f]VkսMܣmtz `[sǏ22R(!,QbF!`+t`hk=h2Ȝh73e -'DڏuONQΰبK_{'}Wn$w~9[Pr$݀g}6xhۆ1kj%j&@~8{xIמf<R U$o >ӋZMVG3|Y68DgDӿsq}n{gOx-6 U#D] rG
qgdG9|PX?h_ v!>VPjL"^).[yg/mӪ/mv
!K-p,(U-PL<Ɠ|[DuoIYJ,Jj{TT eF>QyG#YJ/|%TSFreQ2SОg~0B쓴f4*ʶ>f#Q͢5 - -Z8eV)8>\jKyJYݔUT?#U(:kRl[j)g륲MVRc=.G砫hU\
YU-R
vVܩv]5);3x/Hwe5 -S18P]>;=եjFv|Rdz;->C\t0(.t>^U?;t5fzUIV'NwYןeuB^Wysdਪ]U'NϪ:!UuB\ꄸ]Ubꄸ]U'rO:):):)?ꤸ~ꤺ~L%G]cߊ:_~Z%:.q/]|=po]GCa˧w\$^>I7kPxd7ąP#X+#Qa#!y=ti>xQR1ք7Y0POfL=eAϭ
eRqg(SS֎zzx6x8lDZoā#WFiœۮyG^൨?Qt_eFr3]S$_vLUM>E;8V4GN3\_g ^ϼc'IڝmGygB"\HxFogU")gxyX=7(+ˁWv9n;_ƫm^oeUΨFmBZ=-o0 սԡ#Q5W\xWɼR5B=]wGsY_BTx=;٘4/q
r\{m{psoO]^(?W5.pQI/ʭZ -%<$Dw/RP{&M*<\-LYvVK=78!Ʈ_γ{??ڭ i\ IOInҤ~ܟ/J۷~pw~}Z=f:I9/AUggeϺkH `RüQөWbM8]{+S!NPvGo\k! '".U1M{nQaPMcXhu;-أbq)=[H'8j7VVIxF]Ey,\x_W2.&xT&<K:mX[Y.u [r_ǡbhp~,&~/>+Q]xϲ -TTRi<kmf֑G+5AkőXIZJ.nBKUf)%}iaǡXr4žeM⣿5n]1`ռ`[5դ!1i=Y"d7a\q-S9Sc`|Vf}OtѨHG(;E
'q*iTGHc5~J+wO,R=@'v;KFCXǐ3[ֽ|]&ơ+iIQWc &\ҡ+O`+/k9H__4?䀝ƥ:$f}$ih7rj!@A -;ov<Z!<ةVI -(3Lj.bجʒU7qX9ykZwt4&(6@G -G=Lva$DfMHp,vb翟.Ku={VsbAU=/]QJ⇫y{n`k=7Y&x*y͚c?AqWt[ VB1h@E:oi(*xF@s8(}PbID^_CA ]
XrEX%Sz^%h>+nbT|o+~p>41Aa0f05bSK.
]Lܲ>^gc<>;7
S -#12Zj@Alg
?}XݿXm592Z|ͣts۴x7WPZepc5NG_jPK`a0]}`p ڼ_f?GƴɄD!7ұbn;`%H'
ˆr]P=
OǷ!o{_ fò*5 -Xmܣ雺R]1\cz{y+cتM۴I[(7ߙ)uI9%UgqhF.C#ۏvW;ڃW[t5n*]"ŮHJo4+K<%-s~|A@lɬݹ;/T/~YUaj"v؈ܫҜkJikJng)]!>vE5vM8vT
}S]zd:_tS /#WF'Yc"?+-w5-+#3J{]jćݏRBkdĤUߚO XYSkr\g|.~$}eH0ocD;|3N9I"c9dltm"sRFYsh4e6,a*8qηK)9c̝3~+@ƹs0q\y~^ +YV0ا,7g(~W@XA\/]qV몸E)Q!iD$qiiVbzN1eKWv9+J-WXIw(kZ3Qdp8urr9;q-ڒT\d+RZ͵U9">hc&"d<Z-ձ&0$ 57=EӇrvc:;;{xrBb/Ϩ,5KzUGAP@((")r; *"XĮ1vbKT$*8Ʋk9{߹f%s?=x/-7oԸ0\pSZMwn^=u+L"E磥V^Xz??C60XFTYGQe%RD,fO̚+R p߱5VtYETZ\
`ASC7JPؑA|?]WXCXF]tr5:(H
kZNvVVvNO(zpܼӌ-?|Ӻ[ҙܸba
14|h-d_ +K˔e8"Z,)/女@7?zy?|A4tV'rjkۺ*(bq Z\2 r֣аQDYBU7mZ^O$+ڹr)lQ/e ׇ[qkKcݕړ|zqE0'?M
]=zS ,d2Ha:Rsy>=}oP`pJa4ZxjC`SeyGe(,)RUڲ֍;'="P[{] +:)f8ZDz,cCC,aFuv_$ + -P %sI %$%Da2_zA\ğU[3)(&ؤɨ,\"H,ϨXXv3 VC' +H"^=ckJ$ZS<w,l<D'OeahQ^>o
@jKȔXjOZghJDcC]mz:,[K3##c,PV(++/+aIY'VCS+<sp$V:z.Sg +2ōų
aCAY];(hDLB$P +;*X,%)~SNf+e?-b-8$yɣP.D!LML6G%O-I0X$Z.U94XGj.\Nd/Zpak^<[0wwime^>BFSe)U*-`UcSHRh}dʹv|[5CzbTxKXfjeN?)-T-x:k%Xa1X4Ehz5zH1a]*,LMe6jFY,% ֢5xv~zlƛ᳷]RA{Î= +OIIJ`U.\z#VDC`gH3c]JCi{`hwtyͻxt@tE=ĩfq<Kxa2,--.z1 +j`?_eX.v66BPր!QSҳB!98I߯e
b5K,-bxyϡys6,WG;[;GWGD'M d2By밪,_>{l̒s`;e
8!LY:I_EV,o]=w|SF
O:,'{;[;FYqIiw%ˤRLNanA,YtZ-Pnna99;teFƧOVJ"HeJ
52mXv$>xYup+Կ_/OeoF5<LR***H% +'BVB@ Kg/ +NgrY'(i0F +js14qOmwTxrRVdf=vmZ>o8⌔Q2,\f2),OLVPR8VUiʭ5
-㻺ux")ZeH +<\;UUtF[1 +LIaB1l./=_}mb.5JT흳LÇ:$,,+z֠ӐڰD4Jffad!%aj*fXjtg +#D尘<lNEB:ZTEDfC,C*SJ4N_$BJ +]X[e3
:FTT'Y>@KZ/Boe=~W!aQXtN:Z˪DJj{k*+Lz:;;G/2;<q8{]RKC<1XQ˺؏,tFeHiX*i&/#=/*dֹFCZPrr
%Vsش߹ =B'~JJV..C*ҩB>eyEY(,eEzJ.˒+պruçyadZ`!wj#8vjmF]vP3% +~ ng 7G%Ke*{{-Rsp`'zHhEDW/504PNUXkm%(ZCYH\bF% +E91<=H<E,dܺqm+aYC"B@--(FO0/G. +!Pk}ëKR6Z}0R-![#A5(˔KDBTT*0,hADHp5/Y}߱3n>qh
B8XΟ<Ͱ'80d",RHP3RoGQY>4ेNLjh
gZ:/H}<܅#yYԄ5e +1 +Io}k0ZZ5|i" +<E&ޅCG<K%W]E$_-rӘ:%*i0}#{ rO!b`ٶv1»@-EFw+- +qXe R2\5U˖ +ٌ䤤d;Ceq;,ZuaD-XO;%|IBD;7 »(F:d)\V +Z,;Ri 4D7a{|#֥w= +Wmu +l&`X:a)tˠF
E,`@" ri& "MKu}ahFs?gwA$% +»Y)*b`i&k
Lhh +<n%ebW:Z&khh]+269Nq9bK;sz? +m¶{nZ¥}۽P0>XNZ#Ö$q"e-3Ss +К1{7D
8~b|J6H[ +7,b{l䙣0q${Ð`M| +)ey5w4uEIU5fYؚ`Y([Y"E~/X%X6J2n\ECu`Ѡ`F5"E8s +렯ߎimeiE9A* +<q.o!ѸºTOJz +e;ձ֒U~u=vqœf5;T6SIv: kzG
iazm&e|2RKINqr#K[G- xff^QI%ĦN$oנX|نXU/M{!,O;6֠!$.M}8+ XJv?}=-Â~қ}PV +ـV;YW0+XPJn>f6OE̺[Bܲ@!dԇC Òk,W=ONL!V +A-ZPȹYwJ*k\NɋtF'a /3%JdXp beu ur:C`,[ao{(wuրvWOϫWLzӅKG[qQ<\<.5Rp(*o낲>Lk$Ԉu٨+ )yfW/ɋEI;`R}usғ/zXmŬ
;UYA|<ԧ[ao~)1- +3tuuvv@a4 ]|C|mBkei)KANF +B/@mu-h |884r<+^IEՓWW: 7 ޞn@
j!Vog&Ŝ?}.̊fh +#9?4çgm*"IAPD@ b d߉!@ؗ@0@ !,a @Xd}_sOvF={wbX'.+[yR>r&gVV76Vk+K:;[jW)`lVV;6 +.=3ΌėT?7G;kM!ʺ6 +3[]Fkqyux?[ +,,j!]YxUMHȸ̜Ҋ$S*V``pĻ+g1b_U"|Ejn㉮Y+Q𩿿O!h!乏S"zGSHE~e& ^8-QxZ6iu-bPxtBZpu#^3s +e,I-`PWۡ,9тuɳye\OlIσiQ4fv^A mhz+A ==o:ېb +}`&'DRH+k+ǰO႔p<Ƕ7q߁C(j@s<Hσ"cRY9_ +mmPmmAkkKscC]Mue9"LOTo7 5YibYY
E{!Ow""c/|c_FS(?VVx<@Pw,T&IH\(BsY=H@ꋗthlv~aqY9_S[WWU]]mmMuU[Z\b$F 7<2
muEFtup6LVAUS:ՓJ
¿X4ZX54$(Џ@\ Z=ƛ?|؊h/;Rە$ZP42 +o5p9{EDS3s8E%ee\n9*. HKN}2{[SMk+4?߳W_Jbsu_5ulV1<|Hd/\\~P|!qx{8>%,f8~GʂsCYNIw(R'G٢4FWT5#:
R^D!C12Xٹlv*6;7' +h5j(U@sƼD:?]m{ً_o}ݻog?=ệX+s3d< Vx +biwΊerbTX +FRj +,U.l6*QX+)^c+i,H-.!#\z351+Vj`Xrn'Oo_|k+hϟcr!TըS)V|[W9֢˳hcl,Rְ_TӥT.N%Atv43soFVLGa%sZa\"| +tunqi]<h?>~Ӄ'}}g͕Bm$c!?2JوFj9Oct&ASmrLz2Lc(OXBj*N+EHŇ,R\N?0Wӊغso{>xsuRJi*}nE j)Y155h./EX5VX4 +áBIwטn5@ +L% +U},٪N6 +_R9V7M)ZlNѠi5j +d˒Né.Ņ7HJB%P24+ +jSrdD, +HEu6bqdu$"':Nsx9[坭jى euPYǧB\M'DbU4+\.ɤiA)b*>&Ms5
`6@:R/mHԚP"7
[ۛn./TXjbaI6$%DAQR`FZp^H0DWo;pD6=Liva,7W͕1#vTYGq>+lK`Ibfm~ +OYY:#.5qTdzx$PZ +LP,T<w٨0c裸`?s|XrWwJoqzVr2ɤ'm7c~8nfBTPDZHuEDb" ^%zgSxyO& +qU:p(Z!9?cPl^*Qu&~
T,$"|O!&pG +cr9^XC@K՛,VjZ5ac]Vjހkգ +xcO:V?Id +JR)2Ya(ZHkH K2BˤP0DXٍuh-Jk/#(H(r9
VbEiq!`%
8},cQkQZݽ}EzY]bh +Zpɫ:K)n8A]{{ÉO +%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 16.0
%%AI8_CreatorVersion: 17.1.0
%%For: (Roman Nurik) ()
%%Title: (ic_launcher_material.ai)
%%CreationDate: 9/15/14 6:58 PM
%%Canvassize: 16383
%%BoundingBox: -32 -65 65 32
%%HiResBoundingBox: -31.9785 -64.0049 64.0264 32
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 12.0
%AI12_BuildNumber: 273
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBCustomColor: 0 0.749286 0.838862 (PANTONE 3115 C)
%%RGBProcessColor: 0.14901 0.196208 0.220044 (Blue Grey 900)
%%+ 0.946889 0.94633 0.946441 (Grey 100)
%%+ 0 0 0 ([Registration])
%AI3_Cropmarks: -31.9785 -64.0049 64.0264 32
%AI3_TemplateBox: 16.5 -16.5 16.5 -16.5
%AI3_TileBox: -361.976 -304.0024 372.024 271.9976
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -68.9082 37.8345 7.19 1888 1055 18 0 0 371 37 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-290 -412
%AI7_GridSettings: 4 4 4 4 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
124 0 obj
<</Length 28147>>stream
+%%BoundingBox: -32 -65 65 32
%%HiResBoundingBox: -31.9785 -64.0049 64.0264 32
%AI7_Thumbnail: 128 128 8
%%BeginData: 28004 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
%524C45FD35FFA9A9A8A97E7E547E547E547E547E54FD047EA9A9FD66FFA8
%A97E7E5354535429542F5429542F5429542F5429542F542954535A5485A8
%FD5EFFA8A95A5A2F542F542F5454542F5454542F5454542F5454542F5454
%542F5430542F54547E7EA9FD57FF847E5454295429542954295429542F54
%29542F5429542F5429542F5429542F5429542954295429542F5A7EA9A8FD
%50FFA9A9FD04542F5454542F5454542F5454542F5454542F5454542F5454
%542F5454542F5454542F5454542F545454537E7EFD4DFFA95A542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F542954537EA8FD48FFA87E54542F5454542F54
%54542F5454542F5454542F5454542F5454542F5454542F5454542F545454
%2F5454542F5454542F5454542F542F545AA9FD44FFA95454295429542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542954297EA8FD40FFA97F5454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F5454542F5454542F5454542F5454542F545454
%7EFD3EFF7E5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5453A9FD3AFFA954542F542F5454542F5454542F54
%54542F5454542F5454542F5454542F5454542F5454542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F7EA9FD36FF
%A87E2F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429547EFD34FFA97E54542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F5454542F5454542F5454542F5454542F545454
%2F5454545AFD32FF845429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5453A9FD2F
%FF7E542F542F5454542F5454542F5454542F5454542F5454542F5454542F
%5454542F5454542F5454542F5454542F5454542F5454542F5454542F5454
%542F5454542F5454542F5454542F5454542F5454542FA9FD2DFF7E542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F54297EA9FD2AFF7E542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F5454542F5454542F5454542F5454542F545454
%2F5454542F5454542F5454542F5454542F54547EA9FD28FF54542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F542954295AA8FD26FF54542F54
%54542F5454542F5454542F5454542F5454542F5454542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F5454542F5454542F5454542F542F7EA9FD24FF
%5354295429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2954A8FD22FFFD04542F5454542F5454542F5454542F5454542F5454542F
%5454542F5454542F5454542F5454542F5454542F5454542F5454542F5454
%542F5454542F5454542F5454542F5454542F5454542F5454542F5454542F
%5454542F5454542F7EFD21FF545429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F54297EFD1FFF7E5454542F5454542F
%5454542F5454542F5454542F5454542F5454542F5454542F5454542F5454
%542F5454542F5454542F5454542F5454542F5454542F5454542F5454542F
%5454542F5454542F5454542F5454542F5454542F5454542F545454297EFD
%1DFF7E5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F54297EFD1BFFA8542F5454542F5454542F5454542F
%5454542F5454542F5454542F5454542F5454542F5454542F5454542F5454
%542F5454542F5454542F5454542F5454542F5454542F5454542F5454542F
%5454542F5454542F5454542F5454542F5454542F5454542F5454A9FD19FF
%A854295429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F54295453A9FD18FF7E295454542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F5454542F5454542F5454542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54FD17FF7E295429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F5429
%542F5429542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429547EFD15FFA954542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F5454542F5454542F5454542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F545454A8FD14FF53542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2954A9FD12FF7E542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F5454542F5454542F5454542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F5454542F5454542F5454542F542F85FD11FFA8
%54295429542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542F5429542F542954295429
%542F5429542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542FA9FD10FF7F2F542F5454
%542F5454542F5454542F5454542F5454542F5454542F5454542F5454542F
%5454542F5454542F5454542F5454542F5454542F5454542F5454542F5454
%542F5454542F5454542F5454542F5454542F5454542F5454542F5454542F
%5454542F5454542F5454542F5454547EFD0FFFA929542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F54A8FD0EFF5A542F5454542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F545484545453542F5454542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F542F7EFD0DFF7E54295429542F5429542F5429542F5429
%542F5429542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429A8FFFF7D2F29542954295429542F5429542F5429
%542F5429542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F54295429A9FD0CFF7E2F542F5454542F5454542F5454542F5454
%542F5454542F5454542F5454542F5454542F5454542F5454542F5454542F
%5454542F5454542F54A8FFFF7E29542F5454542F5454542F5454542F5454
%542F5454542F5454542F5454542F5454542F5454542F5454542F5454542F
%5454542FFD0454FD0BFFA929542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F5429
%542F5429542F542FFFFFFF2F2F295329542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F5429
%542F5429542F54A8FD0AFF7E542F5454542F5454542F5454542F5454542F
%5454542F5454542F5454542F5454542F5454542F5454542F5454542F5454
%542F5454542F542F7EFFFFA853295329542F5454542F5454542F5454542F
%5454542F5454542F5454542F5454542F5454542F5454542F5454542F5454
%542F5454542F542F7EFD09FFA854295429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F5429542F5429307EFFCAA8292F2953295329542F5429542F542954
%295429542954295429542954295429542F5429542F5429542F5429542F54
%29542F5429542F5429542FA9FD08FFA92F542F5454542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F542FA9FFFF7E2F29532F53295454542F545454
%2F5454542F542F5429542F542F5454542F5454542F5454542F5454542F54
%54542F5454542F5454542F5454547EFD08FF53542F5429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F542954A8FFA853292F2953292F29532F54
%29542F3029542F54537E547E53542F3029542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542954A9FD06FFA8542F5454542F54
%54542F5454542F5454542F5454542F5454542F542F542F542F542F542F54
%2F542F542F542F542F5454542F5454542FFD0454FFFFFF2953295329532F
%532954535429545AA9A8FD07FFA8FF847E53542F542F5453542F5454542F
%5454542F5454542F5454542F5454542F542FA9FD06FF7E295429542F5429
%542F5429542F5429542F5429542F54297EA8A9A8A9A8A9A8A9A8A9A8A9A8
%A9A8A9A8A9A8A953302954295429542F542954297ECFFF7E292853292F29
%53292F292F537EA8FFFFFFA8FFA8FFA8FFA8FFA8FFFFFF7E5A292F295429
%542954295429542F5429542F5429542F5429542F5429545AFD06FF54542F
%5454542F5454542F5454542F5454542F5454542F547EFD14FF7E29545454
%2F5454542F54545484FFFF7E2953295329542F5329547EFD14FFA954542F
%542F5454542F5454542F5454542F5454542F5454542F54305AFD05FF8454
%2F5429542F5429542F5429542F5429542F5429542F54297ECFFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FF532929542F5429542F5429542FA9CAFF
%53292953292F2953295AA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFFFFF7E54295429542F5429542F5429542F5429542F5429542F542954
%29A9FD04FF7E295454542F5454542F5454542F5454542F5454542FFD0454
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD04FF7E2953295454542F545454
%295AFFFFA85329532953295329A8FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA85429542F5453542F5454542F5454542F545454
%2F5454542F547EFD04FF535429542F5429542F5429542F5429542F542954
%2F542954297EA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF5329292F
%295429542954293054FFCFA8282F292F292F29A8CFFFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA85429542954295429542F54
%29542F5429542F5429542F54295AFFFFFFA9542F5454542F5454542F5454
%542F5454542F5454542FFD0454FD14FF7E295329532F542F54545429A9FF
%FF7E532953295329A9FD1FFF5A295453542F5454542F5454542F5454542F
%5454542F5454FFFFFFA9295429542F5429542F5429542F5429542F542954
%2F542954297EA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF532F292F
%2953295429542F54A8FFFF7E2853292F28A8FFFFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA85429542F5429542F54
%29542F5429542F5429542F54295484FFFF7E5454542F5454542F5454542F
%5454542F5454542F5454542F545AFD05FFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FFFF7E2953295329532F542F5454FFFFFF532F2953297EFD04FFA8FFFFFF
%A8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFA8542954
%53542F5454542F5454542F5454542F545454297FFFFF5A29542F5429542F
%5429542F5429542F5429542F5429542954297EA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FF53292853292F29532954297EA8FFA853292F2853A8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FF7E292954295429542F5429542F5429542F5429542F5453FFFF
%FD04542F5454542F5454542F5454542F5454542F5454542F545AFD14FF7E
%2953295329542F532F547EFFFFA829532953A8FD25FF535453542F545454
%2F5454542F5454542F5454542F5AFFA85429542F5429542F5429542F5429
%542F5429542F5429542F54297ECFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FF53292953292F2953292F29A9FFFF5329292953FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFF
%A829542F5429542F5429542F5429542F5429542F5429AFA92F542F545454
%2F5454542F5454542F5454542F5454542FFD0454FFFFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FD04FF7E295329532F5329532953A8FFFF54295329A9FD04
%FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFF54295453542F5454542F5454542F5454542F545454A87E54
%2F5429542F5429542F5429542F5429542F5429542F542954297EA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF5329292F2953292F292F53FFA8A9
%29292854CFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FF7E292954295429542F5429542F542954
%2F5429542984852F542F5454542F5454542F5454542F5454542F5454542F
%FD0454FD14FF7E295329532F532954297EFFFFA85329537EFD29FF2F542F
%542F5454542F5454542F5454542F5454547E54542F5429542F5429542F54
%29542F5429542F5429542F542954297EA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FF532F292F29532953292F7EFFCF7E292F29FFFFFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFFF5A2953295429542F5429542F5429542F542954297E7E2F5454
%542F5454542F5454542F5454542F5454542F5454542F545AFD05FFA8FFFF
%FFA8FFFFFFA8FFFFFFA8FFFF7E2953295329532F5329FFFFFF5353295AFD
%04FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF
%A8FFFFFFA8FFFFFFA8FF7E2F29542F542F5454542F5454542F5454542F54
%54535429542F5429542F5429542F5429542F5429542F5429542954297EA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF53292853292F29532953A8
%FFA853282959FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8292F2953295429542F5429
%542F5429542F542954542F5454542F5454542F5454542F5454542F545454
%2F5454542F545AFD14FF7E2953295329542F2F59FFFFA9295329A8FD2AFF
%A95429542F542F5454542F5454542F5454542F54542F5429542F5429542F
%5429542F5429542F5429542F5429542F54297ECFFFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FF53292953292F2953297EFFFF7E29292F7EFFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FF2F2F2954295329542F5429542F5429542F5429FD04
%542F5454542F5454542F5454542F5454542F5454542FFD0454FFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA8FD04FF7E2953295329532953A8FFFF7E295329
%A9FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FFFFFFA8FFFFFFA85A295429542F542F5454542F5454542F
%5454542F29542F5429542F5429542F5429542F5429542F5429542F542954
%297EA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF5329292F2953292F
%29FFCFFF2F2F292F7EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF532F295329542953
%29542F5429542F54295429FD04542F5454542F5454542F5454542F545454
%2F5454542FFD0454FD14FF7E295329542F53297EFFFFA853295329A9FD2A
%FFA85A29542F5453542F5453542F5454542F5454545329542F5429542F54
%29542F5429542F5429542F5429542F542954297EA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FF532F292F295329297DFFFFA8285329297EFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFFFFF295329532954295429542F5429542F5429542F54
%542F5454542F5454542F5454542F5454542F5454542F5454542F545AFD05
%FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF7E29532953295329A9FFFF7E2F29
%532984FD04FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF
%A8FFFFFFA8FFFFFFA8FFFFFFA8FFA85329542F542F542F542F5453542F54
%54542F5453295429542F5429542F5429542F5429542F5429542F54295429
%54297EA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF53292953292F29
%53A8FFA853292F292959FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8292F2953295329
%5429532954295429542F542954542F5454542F5454542F5454542F545454
%2F5454542F5454542F545AFD14FF7E29532F53295353FFFFFF2F53295329
%7EFD2AFF7E5329542F542F5453542F5453542F5454542F5454535429542F
%5429542F5429542F5429542F5429542F5429542F54297ECFFFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FF532929532953297EFFFF7E2F292F295329
%A9A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA87E2953295429542954295429542F5429542F
%54295A7E2F542F5454542F5454542F5454542F5454542F5454542FFD0454
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD04FF7E295329532F2F7EFFFF7E
%29532953295384FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF2F542F5429542F542F545354
%2F5453542FFD06542F5429542F5429542F5429542F5429542F5429542F54
%2954297EA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF5329292F2953
%29A9A8FF53292953292F297ECFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7E29295329532954
%295329542954295429542954297EA929542F5454542F5454542F5454542F
%5454542F5454542FFD0454FD14FF7E295329542954FFFFA85329542F5329
%542FAFFD27FF7E29542F542F5453542F5453542F5453542F5454547E7E54
%2F5429542F5429542F5429542F5429542F5429542F542954297EA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF532F292F292F53FFCFA8292F2953
%2953292F7DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFCFA8292F295329532954295429542F542954
%2F54295429A8A92F5454542F5454542F5454542F5454542F5454542F5454
%542F545AFD05FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF7E29532F5329A8FF
%FF7E53295329542F532954A8FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF53532F5429542F542F5453
%542F5453542F5453542F54A8A85429542F5429542F5429542F5429542F54
%29542F5429542954297EA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%53292953292FA8FFCF7E2853292F29532953297EA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7E292953
%29532954295329542954295429542954295429FFFFFD04542F5454542F54
%54542F5454542F5454542F5454542F545AFD14FF7E29532F5353FFFFFF53
%532F5329542F54295429A8FD22FFA85329542F542F5453542F5453542F54
%53542F5453542F7EFFFF7E29542F5429542F5429542F5429542F5429542F
%5429542F54297ECFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF532929
%53295AA8FFA82F2953295329532953295329A8CFFFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA85A29532953295329
%54295429542F5429542F5429542F2F54FFFF7E542F5454542F5454542F54
%54542F5454542F5454542FFD0454FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FD04FF7E295329537EFFFFA8295329542F5329542F54295353A8FD04FFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA9FFCF7E29542F
%5429542F542F5453542F5453542F5453542F5429A8FFFFA9295429542F54
%29542F5429542F5429542F5429542F542954297EA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FF5329292F29A8FFFF5329292F2953295329532953
%292F2FA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA87E292F29532953295429532954295429542954295429542954A8FF
%FFFF542F5454542F5454542F5454542F5454542F5454542FFD0454FD14FF
%7E29532954A9FFFF7E295329542F542F542F542F542F5353A8FD1AFFA87E
%295329542F542F5453542F5453542F5453542F5453542F5453FD04FF5A30
%29542F5429542F5429542F5429542F5429542F542954297EA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FF532F292F53FFFFA92953295329532953
%295329532953292F297EA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA85329532953295429532954295429542F5429542F5429542F54
%297EFD04FFA929542F5454542F5454542F5454542F5454542F5454542F54
%5AFD14FF7E2953297EFFFFA85329542F5329542F5429542F5429542F5329
%7EA8FD05FFA8FFFFFFA8FFFFFFA8FD07FF7D53295329542F5429542F542F
%5453542F5453542F5453542F5453547EFD04FFA854295429542F5429542F
%5429542F5429542F5429542F54297EA8CFA8FFA8A8A8FFA8A8A8FFA8A8A8
%FFA8A8A8FF5329292F7EFFCA7E292F295329532953295329532953295329
%2F295353A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87E2F292953295329
%53295329542953295429542954295429542954295429FD06FF5A542F5454
%542F5454542F5454542F5454542F5454542F54547E537E535A537E535A53
%7E535A537E535A537E535329542FFFFFFF535329542F542F542F542F542F
%542F542F5429542F53297E7EA8A8FD07FFCFFFA8A85954295329542F542F
%542F542F5453542F5453542F5453542F5453542F542F7EFD06FFA9295429
%542F5429542F5429542F5429542F5429542F542954292F2953292F292F29
%29292F2929292F2929292F29532954A8FFA8532953295329532954295329
%542953295429532953292F29532953537E7D7E7D7E7D7E53532929295329
%53295329532954295429542F5429542F5429542F5429542F5429547EFD06
%FFA95430542F5454542F5454542F5454542F5454542F5454542F54535429
%542F5329542F5329542F5329542F5329542F2F5AFFFFA929542F5329542F
%5429542F5429542F5429542F5429542F532954292F295329532953295329
%542F5329542F5429542F542F542F542F5453542F5453542F5453542F5453
%542FFD08FF53302F5429542F5429542F5429542F5429542F542954295429
%542953295329532953295329532953295329532953297ECFFF7E29295329
%532953295329532953295329532953295329532953295329532953292F29
%532953295329532953295329542953295429542954295429542954295429
%542954297EFD09FF2F542F5454542F5454542F5454542F5454542F545454
%2F5454542F542F542F542F542F542F542F542F5429542F54A8FFFF7E2954
%2F542F542F542F542F542F542F542F542F542F542F542F542F542F542F54
%29542F542F542F542F542F542F5453542F5453542F5453542F5453542F54
%53542F545354A8FD09FF5A295429542F5429542F5429542F5429542F5429
%542F5429542F542954295329542953295429532954295329532FFFA8FF53
%2F2953295329542953295429532954295329542953295429532954295329
%5429532954295329542953295429542954295429542F5429542F5429542F
%5429542F54295453FD0AFF7E5454542F5454542F5454542F5454542F5454
%542F5454542F5454542F542F5429542F5429542F5429542F54297EFFFFA8
%542F5329542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F542F542F542F542F542F5453542F5453542F
%5453542F54535429A9FD0BFF53542F5429542F5429542F5429542F542954
%2F5429542F5429542954295429532954295329532953295329297DFFCFA8
%295329532953295329542953295429532954295329542953295429532954
%295329542953295429532954295329542953295429542954295429542954
%2954295429542954A8FD0BFFA929542F5454542F5454542F5454542F5454
%542F5454542F5454542F5454542F542F542F542F542F542F54297E7EA859
%542F542F542F542F542F542F542F542F542F542F542F542F5453542F5453
%542F5453542F5453542F5453542F5453542F5453542F5453542F5453542F
%5453542F5454547EFD0CFFA954295429542F5429542F5429542F5429542F
%5429542F5429542F5429542F532954295329542953295429532953295329
%532953295429532954295329542953295429532954295329542953295429
%542954295429542954295429542954295429542F5429542F5429542F5429
%542F54295453FD0EFF7E5454542F5454542F5454542F5454542F5454542F
%5454542F5454542F54535429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F542F542F542F542F542F542F542F
%542F542F542F542F542F542F5453542F5453542F5453542F5453542F5453
%5429A9FD0FFF53542F5429542F5429542F5429542F5429542F5429542F54
%29542F542954295329542953295429532954295329532953295329532954
%295329542953295429532954295329542953295429532954295329542953
%29542953295429542954295429542954295429542954295429542954FD11
%FF2F542F5454542F5454542F5454542F5454542F5454542F5454542F5454
%542F542F542F542F542F542F542F542F542F542F542F542F542F542F542F
%5453542F5453542F5453542F5453542F5453542F5453542F5453542F5453
%542F5453542F5453542F5453542F5453542F545354A8FD11FF7E29542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542953
%295429532954295329542953295429532954295329542953295429532954
%2954295429542954295429542954295429542954295429542F5429542F54
%29542F5429542F5429542F5429545AFD12FFA9542F542F5454542F545454
%2F5454542F5454542F5454542F5454542F5454542F542F542F542F542F54
%2F542F542F542F542F542F542F542F542F542F542F542F542F542F542F54
%2F542F542F542F542F542F542F5453542F5453542F5453542F5453542F54
%53542F5453542FFD14FF7E2F2F5429542F5429542F5429542F5429542F54
%29542F5429542F5429542F54295429532954295329542953295429532954
%295329542953295429532954295329542953295429532954295329542953
%295429532954295429542954295429542954295429542954295429A8FD15
%FF7E54535454542F5454542F5454542F5454542F5454542F5454542F5454
%542F5454542F5453542F5453542F5453542F5453542F5453542F5453542F
%5453542F5453542F5453542F5453542F5453542F5453542F5453542F5453
%542F5453542F5453542F5453542F54297EFD17FF535429542F5429542F54
%29542F5429542F5429542F5429542F5429542F5429542F54295429542954
%295429542954295429542954295429542954295429542954295429542954
%295429542954295429542F5429542F5429542F5429542F5429542F542954
%2F542954A9FD17FFA929542F5454542F5454542F5454542F5454542F5454
%542F5454542F5454542F5453542F542F542F542F542F542F542F542F542F
%542F542F542F542F542F542F542F542F542F542F542F542F5453542F5453
%542F5453542F5453542F5453542F5453542F542F54A8FD19FF7E29542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542953
%295429532954295329542953295429532954295329542953295429532954
%295329542953295429532954295429542954295429542954295429542954
%29542954292F7EFD1BFF7E295454542F5454542F5454542F5454542F5454
%542F5454542F5454542F5454542F5453542F5453542F5453542F5453542F
%5453542F5453542F5453542F5453542F5453542F5453542F5453542F5453
%542F5453542F5453542F5453542F5453542F547EFD1DFF5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542954
%295429542954295429542954295429542954295429542954295429542954
%295429542F5429542F5429542F5429542F5429542F5429542F5429542F2F
%53FD1FFF54295454542F5454542F5454542F5454542F5454542F5454542F
%5454542F5454542F542F542F542F542F542F542F542F542F542F542F542F
%542F542F542F542F542F5453542F5453542F5453542F5453542F5453542F
%5453542F5453542F5453FD20FFA85329542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542953295429532954295329
%542953295429532954295329542953295429542954295429542954295429
%542954295429542954295429542954292F29FD22FFA9542F542F5454542F
%5454542F5454542F5454542F5454542F5454542F5454542F5454542F5453
%542F5453542F5453542F5453542F5453542F5453542F5453542F5453542F
%5453542F5453542F5453542F5453542F5453542F5454542FFD24FFA85429
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F5429
%542F54295429542954295429542954295429542954295429542F5429542F
%5429542F5429542F5429542F5429542F5429542F5429542F54295429A9FD
%25FFA85429542F5454542F5454542F5454542F5454542F5454542F545454
%2F5454542F5453542F542F542F542F542F542F542F542F542F5453542F54
%53542F5453542F5453542F5453542F5453542F5453542F5453542F545354
%2FFD28FFA854295429542F5429542F5429542F5429542F5429542F542954
%2F5429542F54295429532954295329542953295429542954295429542954
%29542954295429542954295429542954295429542954295429542954292F
%2FAFFD2AFF7E295454542F5454542F5454542F5454542F5454542F545454
%2F5454542F5454542F5453542F5453542F5453542F5453542F5453542F54
%53542F5453542F5453542F5453542F5453542F5453542F5453542F5453FD
%2DFF7E29542F5429542F5429542F5429542F5429542F5429542F5429542F
%5429542F5429542F5429542F5429542F5429542F5429542F5429542F5429
%542F5429542F5429542F5429542F5429542F542954292953FD2FFFA82954
%54542F5454542F5454542F5454542F5454542F5454542F5454542F545454
%2F5453542F5453542F5453542F5453542F5453542F5453542F5453542F54
%53542F5453542F5453542F54535429547EFD31FFA9292F2F5429542F5429
%542F5429542F5429542F5429542F5429542F5429542F5429542954295429
%542954295429542954295429542954295429542954295429542954295429
%5429542954295384FD34FF7E542F5454542F5454542F5454542F5454542F
%5454542F5454542F5454542F5454542F5453542F5453542F5453542F5453
%542F5453542F5453542F5453542F5453542F5453542F54297EFD37FF7E53
%29542F5429542F5429542F5429542F5429542F5429542F5429542F542954
%2F5429542F5429542F5429542F5429542F5429542F5429542F5429542F54
%29542F542954292F29A8FD3AFF7E295454542F5454542F5454542F545454
%2F5454542F5454542F5454542F5453542F5453542F5453542F5453542F54
%53542F5453542F5453542F5453542F54535429547EFD3DFFA9532F295429
%542F5429542F5429542F5429542F5429542F5429542F5429542954295429
%5429542954295429542954295429542954295429542954295429542954A8
%FD40FFA854295454542F5454542F5454542F5454542F5454542F5454542F
%5454542F5453542F5453542F5453542F5453542F5453542F5453542F5454
%54295453A9FD44FF84532F295429542F5429542F5429542F5429542F5429
%542F5429542F5429542F5429542F5429542F5429542F5429542F5429542F
%54295429547EFD48FF7E7E29542F5454542F5454542F5454542F5454542F
%5454542F5454542F5453542F5453542F5453542F5453542F5453542F5429
%5353A9FD4CFFA959532954295429542F5429542F5429542F5429542F5429
%542F542954295429542954295429542954295429542929297EA8FD51FFA9
%5A54295430542F5454542F5454542F5454542F5454542F5454542F545354
%2F5453542F5453542954537E7EFD56FFA8A85354292F29542F5429542F54
%29542F5429542F5429542F5429542F542954292F2953537E7EFD5EFF7E7E
%53542F5429542F542F5454542F5454542F542F54295429542F5A7EA8A8FD
%64FFA8A97E7E535A535329542953295429532954537E7EA8A8FFA9FD32FF
%FF
%%EndData
endstream
endobj
125 0 obj
<</Length 65536>>stream
+%AI12_CompressedDatax{' ;#f9 +%m:7so2oZw^{Up|}57w^ހ싷/_c~~͏t hW j۷_ +]7ڰFɸziQ[mZWD3<!=my]2,i˸˲iO˙@3>_C<xa9 +>Cm}i۪? +c8(/N&m^iUӟ>RKW}r%`%~x"|GH^0X-[C71<3́h:ѡ[⡣UK~V4TZ$cb4`` +
ҳ~?E/PZ}$͖~#Di&.'N|5~.4c
RWOxa84EB&#FgIJ)id}-3IQQGye".fA}"'閤oI9z.fqf8ei/4,cы4
9-a7^sozb=xs +HIbz^1nH|H_=qoN̓ywH=+lBgF2%VA`rCzhzBe2
av6N0;Ɣ!#]0,< +h4i@RӉfƎH|uO2?q?xYbG"tQ·h1QӭMߋ+;o;>k5߬ uUuMb_@wº<y;U<Zhk=XZUqf5ƁgVe22k3fg鄜U1@A#@S7@}]G]TJ[@2(FUYwR^P%^5^GePnFIFK3+<xbe
x5W!\ȟVLTUI&WeH3&H tWI + M".Eِo[^)aS6,k +br cL9F͓<fc yȺl]fD)#)Ɗx<QlPz)⢈`"T<ϛvGؤ~OF)0a5?x/UU݆Fm1>S+ ʫDXȱ7ֆK73!t8Ӆb3YiG;6M{*VԙYBl)ƐƐ@1AdK |`H3ȑÅ)(lw#`zݑHA-x g1ٱ1<hyTkiL$Z*fW4;f9=Q[P"P͂#LH,FdEn$!=J01`aA\^YЬk!'4M3#TψĴ +lThM DV AĂ0fN@Ambjskle^mS-^rd5a-;eڸ++{&g*O&-A_
ȯ?П1j-Fj(Fkj۰k\lCQ#IrSY6j2UfMlUVΎ~-UWP,r=e4$P5P$bў";,{DBJY1.q6$SfMzO{֥YbBP_N)&efuٳ
.ϨçDq:8< +ZzK}:p+8quuʌ"d]g*٦[4§$ |R[H& s(f_`GV/*Ps(G4f٭,1+n͙~rs~aߜ1^Y~~iji_DU2I. +A`!NU𭹅JT&zr*Lg'uFl2tt` Z^c
=@vxŚn\Ŝ.kvuptj2Zvmn-m[ +yw*VB~H/bƆb"ŴYwRpQ=6$l3,;CW4A1<+ޙN!{a{ղk(nFMǃ<cKH}rg3p"p+w /S%-*G3e`ߩnVЁ!tj$NĬԙ̵-S۬.mΦl
$w^c5fnjUàLNRfw:xN*>j`٫39^փX3rbbsVNT X!ȴH~1c̺ШCqC-ܶm +c{;Tp*\D_:?ТS:bߛu+3D
ѡ}ouuW+KUw__jV"x`?=3;atXW'ݰsC5(8٭p)&7wc6Gfsefg接ٽ4q{CqnH*ְv׀BE)
P2+ܭALhNuj.L;3'ݷ4C sTfNz=ݻ{+TPܬaZT3o}R6|k
΅yvo~ԙW\Ш(C8ӨCB@c'9mVشliŭVvvFqUDV<*"eR4m(eUmgQԣ0ToZ-*xQh˕6kTI`TaڨQEm꣺F!uVEdtTIA+:)J
*z)Lu-jxk-E]*uxyoȮohLM(IF39G`k<o0'.d9 +0vfÿBlX?櫙XmaQG,Zq<BJձZv_sͅoj=o+g/bX;s}'?ѝC1IːmZyzO/9oX?a1JE:pa*{' i%PY̹n,NXoRikٶ}㕚/7Ge¶mY°W[m<Z=)cy/qPXt'3Qw20ryaAtSԌO%S1@]'>0?5S=OMwc٠.+p<- +|9V@F-PH|M&2:9{`ϣS +B[C
$~udFMmm,:*-D5%AEVVcIKY;;Li5LFUPt|Q}'u#+-2ulEFpXz4qа\w_s@ѻ-~Q&p>s*M xg`D~%1)XǛ-7;~xn09Lg8'!Ċ
7-Hg2<2KN~H/<VC5v{v +v
GmbuO3Č^2VJ:0dQ&
E:щ;cAHÑɂe|Y +0!bVpVۨF 9p.#K+q\sP\qA(;mpVg@D +^[ݺq2cZBEsQ<fɡI.?c;t̜Ml%tQ)lE,똸[}[4sZC4ƾļ{݀$3Ȍ?"-Cz'3筰Uot'vnwp{;hٙ]Yܥ%VN-\=jJESލgVAۡw:
#zWYBS圩 +24Uxs[c3guv+Rrb Y*_t%T4}(xQl5[p]g> +fɏ*=Zoh!ǍAey=2_d%s$%iB'5|a?l\I|:hbri9kQUu\ZUD "&WĆT5&oj'8bO[ lҐA,`[4KY`Y)eXĢ:b+ S27LWЊQk˱o֮u0\ĪQ)Bs);)R"*n5.ZB%ʕvRϮӪ"(h7s9P"k-3^N$RLgf>hɥCsVYgUE[<N-%}脢9u~t^tzL];ŋ:U WbJ^kROnї:vׯoҙ]eul0zP3RӐDIh^Bp$Z>tjeqy]sZ,}It01n:'2qr]Z眵QUTg4[cITlج?:&-]te5譛DkhR(Cgc#` #x5:]qk;S__1XX;͍uں6蹶EɸqV[yl\km$DB>h\jOc<P үϞI瑩PbZNCA e:.Y0b
)y,9WHծ}SKkG.J.sG;VD٥2rW:'tKs0'UE̟a]v=H/vnuY.ki^NV/N +sdT%fVtU-6ɥZ*rZf +n@1T9]W/b<UW;)-g?kEߺ3kpzjNszpޭns*k8:vb?e
+[Zu*_m<v}H_k5u(fiU 0u%|Rn-V.̪mq%EN+M +;jۦKYqR^1{R ԙ`)˨2Vz;9y YK-ZD2E-n}F讑C4/udVPSXl.$6 +e_ښik"$qՆ6EnS_ظW6e
䡭\l݇:qz#(+EJZU:skl)
Vi$K@v'p@")a3aԅDi۞8yS%l/ZL~,M[jGN/ |u"֭zzW#1f43F-%sT-61#zS\ITMKdTd"i@A:Q,ƉOƋԆ)oAآT^۬k{OM[9feDUzO
Q<[է'&ak ;@qYD`[՛ƛ0FU#qƓu=L +l;Ԧ0ԘxvFIҍҹtslf&XҴ;4+AOlV,J kWPF
"mzHܴ:f^G@ԩ1 Ie +
>,Kl02Vlndj:{~z'0)At+ +O=TTlO#WOיY:[Ij߷J~In.uMbhXIE'|rte$1hT}ګXU뺶cnPXU̺f1&W\ZoQH*lqɡs䪌v|InrW{U̇챊ٷ1]ƼuudOV*KJl^S#F"\\ 2Ί/k|p^Lbv^wvOT[oY[xnY=]Z/]Tb6EY`+*?]+S$\9sH09J!=kSpG% +:0?Hdmx%mxA5R^G,2f\|ϺӁwdYl$}rRAI0&{;ݸ'O56'y/5ÅհrF-鳕?kIR@X\pCJkېZ'+t`Y=Pf)hssJ>Zaqk.B*^h=@v}7ԇw+!U&tz
+۔R&e%vWVVxh+^ɵPECAru[
]vwqǕTYJⶻW~7]Ur.ws´4/)a;ЇhnLbcܖsoOs-=};o3ܼJ_\ĒRa>#==g=6<unZ=XÏnʟ4_}`@Y.a'7RYDs羋Jo&x"کXItPzE|&82v[YWtsxH>`:emYqxz,/qAf6?o>GU.+Џ_^S>vzd=3N1'֣;I@`HbW +99{¬{2:wu1%qz[ja)V)ܒo%H?5u>t?Y;K"4MHh~\mYˬm2&Fsݺ뭻ˏiz +C8j܅ =bfnf95m_?\uZi~4?M7Ia8'މhVG}y{NAR`5EIg-,5%Krux.R\]i\Z+&g<IfQX +lkJTeT7m6RwEDK!+CKCC1~8ʽ91Rt&(IeJT2SGmu +74އww;z?d76̢uI_{ߨcv3*ƴbJ:98YgtYW_\]V_lՈiH٫ۤU^^{qi^4Sҙ1+2^dl},,kgnPVykV]ߵԭSh$+4ٽQx<](ۺ^nRi/^,}Ee'ɶrK9{?Ӈest/NJюvMl!٤^/{qJSսxsKQU;sU_6lY˱~Nh}/=cSa:3%F%NY827pUѲ5r[M-7UYP2 ܙ%6}t@-ٞl!Tgt}QƤXT5jKϱUWi8ޓ}?e_BS3}^UzݣbT{Zlv{|nvt&}79k q|d)I٥qYRpU+.5"OWtUo_~ϞU]EMox$ݾyw$٧]HM&i|C0K wqo<=~A?/}_o/ؘI{mBTlw/~ϻ>g7o^>R7/߽y^Z_xF*-Cĵ9&e("!&(fナ)~o5 ИwanPy <LtwgJ8yt3qw&rD #PTH=747 +h +p^˫?C6d~O9qgaG\Ao*÷4!R=f,.Х2#iu7E@;8R7]E: +X](GLe3mei +l3mhW{z@"3Rmݸ@3;?P>M\}r·?dD
ϩ_ + ༈FWqM ,(`cphkT!7;@ %\mo5![(5g<db@ + 2<^ +'%0Mʚ> +#<gsL{,|ޭE~A1rh(GO+78p6_g==6/ +GW,mfEwmopЦ-o0U|WD}\r;HhqZƦWwL,5le;h`H
+^זbН5W+,fPUFzf7@.HnWWv8{Ud15,ů,Q@l|Y\G^Q%xf}!ʬDofե-F&t0ɚuōlϳA)^^fp0@}3
.|5bA-@uQխ,yziƼ*ͧȦK: +%~J^-gTiGa,`S$ő(| +gyI 1[_ZzE/1_;`08̓kB0C2UVb +9'}gU8?И(LkfuYoCWՉA;.::<T7.aTS.jlT"dE"}FV_dY2e ذZԞc(_&Ɯ}`7Rw$% +kn|:\eU}UyaYX!a;C+i]?bГ
/Pxg6Pk'^rl>mD,ot8@D0@E̪*`Dɧl"Rc5*lm^1Z&O
2u&(,VtPb5y +*VsH(<VsHYܪ,Ts@+:RȬڳH!gbY +,Y?7@C5gԤz&qYZhrBDy$E@qN#5 $Rx~8cTϟPZxĻj~R7U >AaDž.5 +0KVˠ ++M|h@ExaZ8x/FI*maf;1 + +Q6kt%=}/->l1L twA"b8P}p@qfI'JSe0@ +v\X˺HJrt<x=LMEm
+1i
]N'4bN,WCWr`%+]]3,,1VL\GԬEWA1>K'aqoe$RKp8GgYֆـBo01iؼe5n&5KI+:?k@J(_?x5@撉/q=[( +!ϽxQzIs8č"2MR@_)M%iE11|L$"V 쒒$R/~9h&PwG/rP(kkh6%<KZ$UVѓWxTG +cz(`2<T2+GUBcx<&n̩Ǘ9A4'{uGfsoNf8uJ=ʮꩢ^3P& +8hI69QeH=Ty&ZT*kF*\bgokM/i8]eh^<ׄ +vvCC].(d_her< |6aVcM0k˚pl<l;v6I]Pr9sL=4ȮnrG»l.P7.v{}-:Q&⊀J&s+u𱼧yLQo{[-iTʊڥ]Y쒩y4mPuS0R@~r83TDSck.lW9ެ9"^8?lkϤi5}q@(E&Q+*
/*Qk<QG;5Dֱj->ݮua#?n2 颛.ɴN\P:W;=t-zloi
V}sto!P3Hl,K5, 1CI&=\g&riâx +g4QͨTJ7>ZIuVadհns-f7Z^p7w{1nt
E2r[*q&Ԙӥ7VN]|rKXnm07ֺ\ۈ}2|)m.{ɫŮ]|@\I01 -D-G"n1|FB+̂EV
+PƮM^S/C^EP3E` +% +y3b1YɹE hG|tIPҧ>iZ`1BD}ħWv|9hkW8u#8`O#[Z!8X2+!/-*#qr+N{%[%HJv_>/pY += ؖBg
R@s\ZK#~4nE@/'x)t8V*"5WBdAB +pRUtX@XuqZAG:γh#AGT:<۠}GztCR:9.J
br.\Lr+GbJX9cL]X,Wsc,3H9Ҟs$ϯOO t(y8~#8C𫱌1 :rPg#bqa)U9Iz*CDMأbҌ[N+0ZaѺB@ +3/ ̱d'0$[Sba,ǖDJ(Il#2n +#ऍQc5~J\Vb!bQS&.-PQ:K[eܹ,945Ey +\JI`'b7S.u#|ڸ2,؉+mIn*ܪegsZ[6 +y0 vË}ARxZνtX^_ɪuH+PT +czYP)#^W& +Q7VjGlV4
^p_;U`"FUUT)ug
˪ui&^y
qRjLj섕r;,P<sxB|;x{ϜRk(~\L(4[RbTdU.cyOksF>|zOM_/d浖u-5lK& lׁZQ^S+= +Z\ܕr/#% 2\zּZWs$KU/;qaRj0JHVcR0TnfX̫5Ϋ9Vj9Kz6G^͑zksU@xu9#ZsDvyz!='^lɪkȯ3*^c3^{1F"VpjӘWWl)XJΔyEdžyyqHd-zI*]圧l8To錬t^+e6<Wt٫n:9>܊xU>j
EC]@¢&CxF:.x-SZi-xeTzI^c]^U3ڈo^դ<날בmr^O+\ȧVX뢮WuXudNnP @ulyo~U%90a 0@ypp,!XbL6E+.mŊ#쫢2Me<Cܼ>rdPm+'Tru@& 0?s^8^E3WN_5!u##7/48neA?z-HHǘv*: id2mw"(h$ᧁc_lIt
jl9k8'5gu,
a&U%Pr|.KCUF9
[v<g lY5t0'X%-U Jaw:;ax,qH/iR[@Ƹ@ðxF{X>"Sj>O9C)KGAl# ,"WBAaDʌ$#\ + طrҗzzM9 g +bi>
W$-bBby*X:WX~fD[WµLXjTVqW+[m*4WFUr^st^tvU*jG?Ds +0ӏBXʴ9Zu4W$m0s3ױ,*ddžev +ڑAA&wot pwqNc\ﴨ4lFb?,8tRR4NĻD3`6nq:=5+S*$g0On*יb69W2ܨpn|sNt;^͔ϙW7 :Ævnt+kۭΣx6[R],pcIfmܪb]S +ī)7rTXv)4̋fj)`Ꞧr,[b*k(WWVZ-QW~]7٥o y/ZST6+^ BV:x^V +ٯb!DArE"ħr
\llYMʯ+_d/_,CSRLD^:ͩKD7.L<e$0&{'U +U\^)A ^m , +VX|ѭk*7 +pV`yLG*yoe0@?J%͘>!LjofrNB=@Ʒ;]$#XDL2%
pan2X%, +O
f +ڴDZ2@>Љ"2S8?B/d%'(p_Nw&){䉨F}G`MTi& 7D*% }11iw +nD(zzAB +F\5[l_f@QF2ih@VffXfo +bK1"aGJ +@چNhyX
@z +^`!&A#,`<(ܬG5@"2e~6EG +5>z*@\:%vEF+,eciaTt?m6J6[z)"UBr*W?W%z*bX)/ +4ǜ J`mk}9F9.+%1j:*.ZAWibzTŘvj¾£i1*VcBȧNsݚq5F$`#1nFոs{*Vcδ㋯<Vc_\_KWcߚ:m5.$/gvP2td_0DAb|d^Ta,ʽK}Dو8|.40c5/{
&LOWe=ԉkm7ۏ/@65b܈(qdqab&nRX!V.zoŸc =qg]b-LArEnȷ ecW7.\WcE}>Y +]!kX:q\^?2|p_yIq(GXͺ7*TIǬYzLFTS/IĿ\kXx5r~gh&hS\mhS"DTڤ +AMvvȀvu=mv`T*Q%*)8fr,}ڬrܬsO)OURoݪ tnUÿ2vaEvS>w\ds*%[E7}oF*B6]ET WEnWZElWEr|vz{@nW@we>߮4ncy|RJm@Yی +Yzsm@yNf@hUYuהFV鯬鄆8mlc(f˵\lKƆNbs5Y
@F"uQMe
vJEEj][Vd~Ь* "hE4$jcY<G׆Ĕ 4KyIoI_ vK^RR}@h9lpTDAE/7\QE4V{5a&%oPO +:.qx$Fe +$-r՛lE,4[7[Q[ӫx?-p~7ǭ--,Iw瞣+_Dr\NA_V<G#@RHJ~^6>OWj-6m,>&fצ쏡(]ϼ3SߴNi% +ƒw:nfXTֹAlp;ֿ蛲 L;F1`ˠ/ߒsϵ&1"AU2^MdE(bP.UCPE{5>G4|e$Ϳ}a5aB0z
DL:@]졢QZwgoT-< +D.}eP,rZ ;J1NU_Wƨԓ\ +p(u:@\y7,.Ǚ rqYq綮؉ɝ%424UKþ2SLY馤v{ܘְ6փ]"Y~ugTuae"2}aZsrҨfZމFOܭrtSѷq7&? - Z'~8^zN9vvi8sh0r4Zө1u#"[ɀ2ŋDX@PcR:t啰*0x +s眂"(Su}*GsCK 4wԀ"Nrr*pX\ʹXrcr*qVGQhN5\\ py.8nBۺk}QW: OȂXҧaXPէ!2|.^Xa\ + +)M͔l%qIy9MM2Zc'!gsn7i~\l+Sz2)*C:mQ%[Y0]5sj<Ŷخ"zi4ၶX$_)HVʭT*[M^mFrtay%6lLƺvfTb\RlK_~'uQI͠[/rY-/6tFjP6y/r{
hTvYPV86*A&Co|gN~wπgYQXxޟVqDG>ڽ2w EbUv +K_3y}F]р5Xq>rvR+?g!+Zv錩z,ZΌ,x9ZJ-jOڪ{&v(e*)@C= iWٙї@Jp7^+mFb [8^"vZ-t=)Kds>T*vW_b~{qOЙ+ўn!OU忤ҝJWVq/u2J5çEǽ̎/r),)pO0kpXQ}n%aexjO*ny" +Ms熿˙"/owrvC㎆GaWD/tz뼂bWo}5Q{^)!⢊Zn8 +箧YMɷt'3AgFǴ+ܳmf
'gQp{r{B3\=s9d5w
Hvc i#ıyde:ak
m]Ϙ֯g-b?.=K͞=^[^A0n[4oYW'՚nu/wOb6**W5I"ddPBFXĮ CV$fDE<F* g +"?+.;#8qOXRK#&Fč~o#sCZyF?KΧ*JgKe*zSE}ve%,6IBq9w-~iyXZ_nj́ɷxdh
aѝ(E6|P~to֬zTVs4{xVDמ{@Vq$J0eQzdo~RJIG&W>bf?·LV;ׯ-#;c!y@NVp
9cDLh
$1&0|PX?4f|+%1W/,!(>c,P~)t;\"1n,S]r!e}V5M[l@VY7tgbf^$X
q$I^<xh<)3][Û%RPQ#KBCb#r,Ż 靾p}^yhҥqn4-Nȗڽ|ʻylB[I +P_u>q +|ġ|:y+4D+PLMm]fU##|ð4BN(߬Af%E%i(P37p囥7k|g륲M1=}G }` +aZJ\"1
]66kri%C'}IdJD<e$ZϝʤC_sߑw?ek<?O$%+°/բnV,F\@0bWI"Ti(V<IvCUXi|T {h7iol4&֪\'\hk*ƈ<xY)>b9En>?Њ*#V%^Q.7q)e@H F\Ա7XW!J~ʒ={A}U).VP!VzI Z:*4yK]pÖq +/ԸJsߋϜ>JP'3ZGcVQ5(sB]/` +{hZE$.xV6}˲
>YogEs*~zOe5nݽU2i[ !їiU"VeO㊻ʥY,{!+8 +vWWɤgW9d,eSgCVRE=7I4E/h +*0ٯcQQܤ'/dmʨ<fB6s
,q/O+s=w,fgDt9ᗷhLSWpX5ti5WZ0]USXyF˟xz(=z +Z"|<+ze|X2iM>r'_2h$',tsiiBtSmrJ.<%mM/I^ZiHo6=wӝ<C&)Y<{IruFW'{^+N~w0=5|ddSM uqo&;^NV݃ԇ&`{bYV=?l&RS9e<-QMn7/;P+8r\A.H31o'厊"M +mE&a[vx'\lގݹɳ6y|$U%j7PޒRTHcbi-]bWaeUFhC#=ʽ\xVţqcu8(ȦV3oX8bT~d$a߳{;V=śu5t=DO(9
q{PkUK>B>~FPˡy{DSYC!(\fR g'7G,t/ӬIh>ϳY#G֣9:N"oC#X1̸~EZ oiHYxTs8i.}Pya`G!^4V^CN^]
KrEV6mSy^%h>+ rnbgo+tZs>4E1AaT@KټE$fCSG%Lx>#!s1^S12Z@AfLAlg
?}XݿXm592Z|ͣr۴x 7WPՅ6A/j4j>`
{n7фs/6|yi49J a҂#fUs:VRU>؍uaPsWFrsTv!Uwk8_R.CLR˪{7a9zi2^KhkQoo8jee[`[zwԭhvܛ~Ԍ~_ĖTՆơUTl?fʔt}PQ9 w;Zf(vEWz,^JlIo4*b#Of>R9/T7hYUaj"؈ىܫzkӪ
MkK{ng]a> +vEj/vM8v
}Szd\5teS /#WF'c"?+-w5-+#3J{]jćݏRBkdĤUߚO XYSkr\g|.~$}eH0ocD;|3N9I"c9dltm"sRFYsh4e6,a*8qηK)9c̝3~+@ƹs0q\y~^ 1X2T?t0}͌Fht<G^ȓt?#r)L.KkDgv"ԏQw24f\䩺W37e&Smf6;\g{pt3x[g -3}r "ȴjD2:mX2KH')¹ql2<2U.s{ȍ&2S^3S%صEckdnw+}MɚǾzzwRR46ǎ8 -7#Z(ݕg9n}P!@&?*A|aXluq/sBvX~(V ՍUڮHe!r9>qeMѷ6fĵQ Hɲi8uaw??8>5PP8+7d}5J匯(-t6#8dNSig?fZ'/m}{g %$f09!T0fa ۿ0z/zU?$WW@b8.M~8<;j՚3 -aEnƩU:lVUE?TR-DJpkZd;KB;dӹpIz{zHw6SǕ"̼vm oEM$.>VH3p+}PaSǃkCsD%L#(d,ɩ-xE3 z!;Zԕq8
nO)+帵wCy".xͻK \>!ĩUOݏBvf<qH1A
CglCj
U0V9\ڢB(u?.~|E).-^x#onތ|,0-䌒(&I<gy
1{|N?9Ny0:(y:LN<w$3QGyԸG˃4h& @A/w.
PwXن`qTh'h@D=N\Ts"arIN,:r[S`hXS^ kɜK9,|j!wM(y,>UUHGKSJED5*~Ju:^?!Vâ-ԔD>?>~9CT(T
TQnOBĨhX+4R'7'ɓɥTEqK*Rh
VJ
j+RbպX<mosbQaxT)ԫ'|PQ=XT?]]4}0`*Wdݽ'l6bqM~8Rqf,p, -+whӢ,UI,!JodLZ! -h<&rktwzR^WEb҅?{',LH -nn`RsMvy;%ax=Rz^TЌ~qø}Pa_\M@
~g=>8(6ECT0vW`"h;pΥ7[!U$a -vv -xozj%zīTLTHQPRES29@?oUbv};f¸{rJh*4Z|E]yY*t93-M,zV)%ˬס1sr<AkR/~y_j˦JbpUS;=JxjlU:E}V,GdٳIb>(QßRw`][gdD1G9~1=Ҭ<PuCvy*klgn/L)=uDbJVk`4UΎJVH?VFlieƥ5)M'F,9
^fg"FEsi/Vjj̰J\uNq;+kH$~n^m0=0RʸJE3DuJsTQ 3i
wR4p赿ziKUqw-&Mua9ƵXCCAT6,:SaF^X)BE^L՜2/wJf244n-9atQl.ծKbig)Tg -=lV4EibDHJ%F;v^\E.,JL2tڻ2C-9LlQ#"Ddz@:fQ $K3M4Sŷz )ʼn*eriyCmn}ECL;\3sﻷYQYB8gY.NCL\wpz8-WЦ3=LJٻR!/PnwZ %\WoBEv> VI6e&Um -"`g&~gbvp7[zF3ZUe] -nW` njr*_]C-Jrܰ9ܛH=좂^ri{PV`V
ޏ"4~s4vâ6XD -(\j#B;Y;[̧h^m0ILHBU
SH592mn!bq>.W%j0/wπ=3Q:2Ha];͍}\[z?QiI::iWaa-|*@֨|Q\U7Af -Iqhp_[wmp,)SU?S z6k巨c&:^OL>ቂ_Z0"WkcK"Mz$$җG!^2uڴlh4 w
Kn20.SԽlO -IFކl6gV\* o`؛+˜aҼqJ oe=J+vi~T:ae֫00y~u3$C!<nFf>߾%Nmx^ -<;Q*|uI㚿(8N[T?u!HsZUln
3,RVvj}5_My[=)cʧ@ZPяϲLl5WӌL1JP#px?;+߈ kkDD+B F5㛝F_E;ى06rg1e65)XJQ[p/]rg=N
KݍTlƙ-"xKf+\lMOlHn.yl$_347x/F웕:`$R鷸USa=U[AyӛywwU ^W֏[RXh0cF:AKU`vN# -Zqً
-%J@V g˕lƕ%}ӫm;8]Fٌ/-t#/?QFI**eps_V1qJ,EٱunQ:r -.:Lk@V=pqܔ[Ќ=
tT2xR2V;K4V,1G]#kU0ۨmz!9BhF◫i0ҪrZ4
Vo, -D1PVj{^N1ۺ LuJe?E&-v?\r8) -Րd)0Hk8Z,i1bK##Ģ8g -ru\>MG) K"N<ІQK9[xz4#JDB>Q,*-}*UIM?N -%rTݶ7KY$\} ,91ز)qx_Rp0JU-?(}gjF<|39ܳƲ<uT!3((,EͲO3JCzEThyc!V&-vo#O82/.L%QbNk3TH*a9ğS'VZN|4ܰYX
g5rYRCi5ۊb-,~(n\%S+e=k2j]nc2ot(]WYjuX3ElT.Ӣ$<[Zq )b8ҝУAnqu+YgٷaȱdCJ[1PYuLq^1z%$nRy\ӈa $?GpGCEYP[!jtxmi%pt{&Z%]HJNNHq~y
"@66D*7N[T2}d,bdJ/0N#GR~%,`3jnPm^%+cH~v,҆ lO(N'=$-nʢ/6457*YW7,{!FYY=HQ\N5%X]&<bs(nYl?YQun#i!DĈLV d)JGkC^oqv:1`mV]їbU.m,S}jk\=bK8%"',EQcY"lf{S)ydbS}qi9$m:Zon-ָݢLҨQocj'ȍrSVf;ѳ\`I"ե -Ty%lZ!ӦM҆ -F Z8sϸiO{&v[,̈́Eyۢ_p$<+n0RR\oĢ7nm)W -Kc3{hV$(l+Xݪrm<LI}E̦ OXfAzy;XEVx4ɂ%^61=+BpmdYWbH -U̱XR92˷5B|AZLXE\M5A5A*3c$ގ~k$~RO]PTnW8GIW2lmv8{~VW1\g!6lϼ^:`hb FQ\*< 5E$N"s+S4Eb?u.1ɾ2H [YqFM'S`*5$2}F\_e;M:M:Wecr\\4Ӗy<qTD5ҭa5Um~D`dgk*=A*P訬GB@{XjVioOۮݶGCx-KsX۔XaH}I^"_PcDt0yF=29{Tn,lӘ7ÿ+$ᡷZc-\qQU6X.xRp*8Y 9ibHy>rh%aPvpa*+!M -b\;/It5Z2|!U|.bArq`-.i~ɩF{4WFpR.fZa]5cdԜZ(mrz$QO:7SmeK<ㇺOJp/ޜU#X=$M(-J#29bUm|blH -q%[O| -)DZk|Z*oT1U&Ȏë<L+ZuNQ~FFT|)ciVK\"o/ni)lEed
e3I՟zMsQOf_(u/55FwA8LnM+v sk}fXKە~li$.$^L2~H٧YzMVD+~lSF FP9péţFxawVB3y6IVZ[ʷ1%OY\IOW -lL@3zTE]Vʶ;' -lw/!7-+R&Lm.ދJL[%u&ͶRj=,\ND/%DHM=f̩}^ -ѷV+/9U\\ !l -EtWSR=N7v9?ZR]裇VF.bJh7Iea8 c
pu1i*sq: -qP1&#i$C[F7~%sTJÐ@k&Am^3t]'8*"\?KJP=9P
TAeJ-vyUT*$ř<e'6`Ũ8
!OR(HL#([F6a;Z| V(z 0e0(FŴlލU.MT -6UTn4j;hZ\UV̽< -J-HGXL]b6G$-6& }Uܼa}"ADg2|l/yCJ3"ý)J -U0x -"QI0T%c,MšYf]8W'Z/&u^
r;p;NuTԪ!u6YEp~Ir;x -:etNk_[*>><sVT=ާu̽XUAn1pICa؎^UWYUc3FeÉenɄ,ކoXq5X -/joNXU726;Vj/}כM%CceĈG E=CGd4EVQ2,Ⱥ{z..х&o?4+;*1VE%h성$6ΛJh9L%uZG)mEK}v{vD)@ xH]J\eJm/.XvRhaȖSZkw"H(ּ+N9Epqļ/NC3{ -҆U2bLT['ܖqA `9\ŀIv7}X9KcкxCO"A!MV$
J{ -!vZWUij2PF;CFxD`۾8]4>$'T^ԝD/Z"`^S ީQ&SRx8 -qӖb3/;%/wj>xZV^9&<.T%9}X,ļH=u8?hH/ -Z"ȫDն#z]ӸJ_[Ey4*^<R8ʸLLY\+ &-2QVX'g'-stA!|Xȥ|994?t~J|l.@n@yB)ڇ8.f
2\V8sp,jtx4B&`dͰŲD:)??;c$c+KJnx学f6_LH^+p'hDxCQ,)|"Ldǡ`.vg)tQI^ClJ$u -?i+MfsTę9;{- äW_~g7Rw/䅂`fqlMl)GIʁߋR[EQ7pamjAPҎ -;N`Uū#jRUƨZO.[Nu٬ -N|Z,w,GX(oq.+Y,,f1j.\7γD3V;0(&ln|!G+N\[hAcgkD}-8Z.Y4<{mKOjf5qEr>ԎK!5CPb4<3@ں--jDyYOhqIaDofPUizi@m+p`T -bC{l2UذtX~A(_͠+9J=*3Y$zAdFMyXIը&:?ωNY Ĩf6>"2Eży7q
Ey -9TҬu̕\zvmc)[H7Ţ18⫴NHn[:6WߡwPUĭ Tuvx7ebl[ZI%\-iXR5W9H 55k{1a<JUQE$>,4FoG3#G4"¨x+KjdmGHk
3t,7?a yJG -> -5#kD1!2 -O-3lʃAF +kḦ́R c*|1ddT+CՈPNJ+ *ϙAV\:dL'R21Ȱ2,oY- |0 YaNAVky3dd2o֙Aefay3*J)hdԕz' Q#ÓAmbaddqYQ9b=dAƢ81 -\/&ޑAQ ad2lڹ +BAVBAVP{i4nX P?d$T:,m dZ'mfP iOYQ/ +b2/YefUkndi>1^ +DGYFYAV60vdE!AV,dГAVd0djoƉAVX,FY]7 01ȪgA& +02&Ab #991(֙d -92* 㰉A& hvbq&YFYA&AVCudzJNydadu3*{ -bU}
3L$O#LAVfad&YUڃA5M2qGmby`u@*F|W92 cL2GYFYAVՏ10Ȅ~2x3A`!AV2ކAf83L9# Gy3\d&13ȈQNρA͋A cd00ȺdtYX& 2#L;Nd'udB:NndiYxDI d|dH>dJd{"ȴ3dQ&Y; noY]AV:#juG> + -:{'0!nzF&>d2323<d'#L'^gAOYadYAVFW{ -O2m}2LDdAV6 dl&Y`g@aD1dܷAV")AV(d}AuFadEmO AaBHmD)B/AuBad Lg2}A/d<"0"i@d c@,l +BBAV=dvFY x!ddXf7 eBBad\ +g{#rΣFY&Y>~D}#Ȉ2' S`qDaBu!*<AF - A6XY7lAFxBv/Y` ɘd^2d%a+)s>"J< A6XYd)d|A "D"dy!dd AB^dDD'lt`4YQet~# -F +AVBy5dr,'`dBtB1d,3Č A֭ cҞdB_2`3ь #tFdF?d2$i2u;N2diditz4292'+`E+du27!Ȫ*OJK c;#ȸoyA 0Ȱ dzD SE cJb"f}ȈB}Ȉ -O -Q?Vz1e&X ]p1Nc3'cU/-.Rk:q=ccXgXfayX=guac^13L?écXfț?Vec|&b/&9?Vy!31 -*Ņ'~0>uƏ)3*
/?VcX13~LpďU<Y?V@c*c?"~?ƙ3~Rct^ղ<c9* '~"53~~3ˈNL~ˌƏcJX]~7SUL*?? ?F?0ǘr&j/6%#~DKj1M8#~s[uďacUқz*&~L'~2 ?FS Sψ#SƏIquy_ǏǛcDgk11G_Ə|fb_1˳1Y&|cc5+#~nSCɄ#Ə ?Vc?V奍1%*6ԈgcƏƏN}q3~7~ -2Ǹ#~LV/uk1,3~?uďiď)]=,5ď'#%69c|Ќ -1>cG|Ə#%,(ccB?c$GHcc}j
1}LU=}Љ>bQD4Ǫf}'cgcN@>I+:LjL1u?c$&#}'A9J^1L1 -#1)_iB~]1`aadqU<Ǥ31$1 -8bo,{L6=&`a}cr=c1<c#{L^S=&2](_OXQ.|`Yjd)5dc:8cjGzcT/L1^1(&F1G#{LEO鑑==V2Ǩc=zh>Ptf鸉=ub)9NJ'{DE&RKoZp'kc'f:ꑺYfY|bi9j]O1';=Ǝcncjcuϰʈ1U13<c1=f:dcX1&Xݏ=&m{clg`&5c|^?cc -znc1B}dqSlbUE#1"3{#f)<;ǴcI<c213{˛=adOa=Fuf'Ϲ<6~Ǩɞce=1Z13{ucOdc:qbß1K챢.=Vyz13{$*qd`eb2Ǭub2O%3{2Ǻedud>S
OgIkdQ[bI`b,ndQ{bAU{,X7{L%){b7{G^떑=6X=V -AzLW#z*,xd|=&oDuÀKcǪ4FÀS}p'4zL#z=V}FQ3>Dc%}jcD&E</Q =FKȈ'X=& =F#==v5wsDE
Cn2He]۹ֵSN4:vIO휡c1ڑc:8'mڶ:qL$uݣμuz*Rp";fخzۨe8cJ\]eƌ8;eL8R:dH1FpJʛXKcT101r:ŤY.֤8Gl1m㖚h1$3$d44&WX04(&vuT1k9;TLӭvHR)F -JIt`3"LA2*ٔ2@!:ăI,I{Yoa20t^ (r⚿3
fC1\
P_el0{#`J/.l0u-`ԨLZSV>+
`ͶR&2lLIEywm`X'w4`*i`k?;l`!3NlUX'alr%LGiOd0xFu3ecM4Zk`g
\u.^FHء:L](I8` -#)pQ4pH8=1od!p/Pc_#ٖ箜J.Bn͂s;p7Ҍed|wg^SR:ѽ3LfMp9쉿3lib/-|&{i_"7,$LeEJreE{\0=:} -Bǵ -y{%8KxG+/^H[v&X $>pwC%F\EH3zKCQ&~)%8O!MpO!~IE¬G6_X<nuֹuqh"]/턟Sc~)yKЯNK=(x%m?/Da[-C0è`үe/}Q_̯%$҂ê'X^Jڦ"3B>Ye㔌:F~RQ{@~~eʄj֢lUgT _K%W3V_rF}RVsڢ#(Yq^J|-oF~+\ǻ`
s.~ C Ȕ/`d}o./%rȵg܋e7藊ƤsڢY'21Ct\zQo=V@_K@-" -߳@tBX:1+3/g5h^T%ƽ3
+,\aM߿%DF~;w!$B∋jv(b0d$9A] ~m!įNRRϓ^_|p=27Zf旉BrM0iRI/#,Q5J0_KWg;{rO>X*6K7!r/=7)K 93}}<!> IA`'Zpa`k0lga~'y^x~/L1V%Il[c?1=G})o.3)gC}U ߶@_+uN5c͍RzI|iS&C._㋿g!.|{!|;{s4]Z|/̧܌r߉W^-e*Kם-ziqv%-X\/Qu[ymqp7s`^T-L1zu0X/I>+֫юXipXL(^*X"U^+o
Y;f~z"#^K\{10/0Q,x5(K9WI -kjvEӢqK値J{%^͊I[1 P6K%e]^d)4--kP-x/,kF -.nںeSE#:ߋ-{-j|/z4Y^Ԙrłq
1:F{O$bT}+K:RQJ{m5^zss߽l*} -Z9krKrۋ:NnOh/m%WB9 /dPh/{įw\텿@{+R4+) @{&@v)d/㏖R-/N'R.Ƞzݑ ^.
k@ۖe"p'<-b"C -K"')8^p(hGtNʱ?"-^[3)R/f5a<'p^.".m=v .A׆vm!1.D -ddWf>36k)ٵDGv:]+ed큗TZ-vF(j֎7+}urdЋUy tޭ*$#PzKJg.#Ce0Ak8*tY]}.!1#-dR鈴a*]T=,wev);x -as.f%q0е
"ּ]~Ǭ.b7NBﳉ]($3K˩bgf3_2K'"֯`!]96K畦R uuv:`ץ+E4E -,^b]MJ}u鋿MemT^$ۃׅb3u\{zCҗj -K7M4p]lif[{-^0*-%&+w[.;Z.M+DuKׄZuYAs\q9bRl=p]
&[wq]\+S1(.q.^k)y]ZKߚYP>?m(%3d7`u)Oeu]/F% uQtԥ/tiڎhjq?1+$7KK,uai=+C݄.QjQfgs]s]0M>%ۇaڅxt4_%vVA撛s)*v`.j^`.of -KFri՚*{`\-y\-KTfgqyDfqYP\|
UPxNeqnA0¼LVQM+zXMF傝:1v[DiSvR}Rmk\a}XLBRYexEނJ$_-oi=ηR% -{IH=ѳtKզb~qK-KYH_[-:^h[]-tZC2yw_-bmѷUZJ?lKGXۢ,Yu@m5:sc_
W EbL!m:i%
FуAk$:3p[
uR+`[4}@Y[#s*K'mhy>4sbPGhǽ([Q [A*cMغ_2a.1 -55k 7`3T\U#43.ʼ,QAY,*^,Q`Yt:yͶAbﳀ 7pNgұEbcX.!0Yx&qEJdztp}c -ɒHd27%nQPyJWadIGd5sꛒEW=M#j)Y<2z%oEɲnaYERFɢHݪ~(nw1BԠdK-Siϔ,jJVd53*,Y,=?Es1zyΉ|8ܐ,)!ShCx6S}MBw_.9Zݚ -LS˘,mN^,X!̙u&Kn+ecTLX1YεL>".1Ya&&dx+&4FɲQ+]fLDyEdQ"c9dYeRj62&WX -L&x-LKY=scrfN]rdudNC^ZvP^%0YJSΘ&B:T9&$eMi[{%KEhEێ8kaHN%yE^dwB"S:`kze_'eX(K_2Vnz@Ym,:n(KX[)Yƫ@e3W`)a?`Y\Yu,Zo2,˽9ۂe8$`YK]ݽ`Y+,Ѐ+Kی[(XY
vEю"byXYu.ƀe +V719)]8Y2Z20Y -wHocdξZ,ӡtYsF/4my@tR,\㧬$Aɲ#^ Yɒ@\4 Y>$=`Y2xK,34Fyj*=WVԯeF&~7
Nv0h\w?dQqaTJ2$0d!(,GHd.V (Y[T:b{h$Ϫl$k մEdP Y8@4JbilHfĊ8'HY3 Y3$cn=vj-, X2#!w-DV~wD;!N"-BL?,|7!K&ᅐrCBoBVvτ,YY Y2!K/!KJ!db -"KoY"Jy#hR8# Dii.c̈́,hz@m6+XCdXڃp>N}b7o -!"*XǕ
>~)P) >1 Kc3 K' KA1hRE_udU\cd,)e%ȢM -=q{&Zi="@tu;),-$Ey;VJLȚڈ<uYNN*tch?uF{hFca"òZzC9832,zBM -snUR{RĂwx -7H'bItE؝ -#8X*Q -kQ3K -QͰ+b+2.МIW*EdO68W[Hp-:Jj^dz!fd֑x5oZY*:_Wa~PZ[CVjd+,2wb!h`+,FZ]nSV'duo9W J%`|Xt. hu-q -Q8VX/gcƣlGX˚B/L\lj `WgԁJ.F5W{^
̀^%1e<AƆR8arr^쪭{C*% X8VWx6ʟUhn4UfxwF¶H!.R{YUPǝcLCy -ΧëP"kxwv -cWr W\9Y$rU<=,4Hh
r[.誢dh?
tvf*T -8j\E,URl䪭drU'r~%rE6Yvyi[fpDBxSUҬU<k[#EH*\DpU/pvL\% -H`DzE߉]Ql뵠Ryg]UVp^GBq`W5;@i}Uk -; C]UeWU2q&'QRS7=:]6g]\e]e9J1Af]]EPkRQ*$èR(Ixռ2UK-:O{+6 w*DW>f,rEH"̮H@~Gq`Wm!R) -\[%=6솨p8 `Wk: -Q̮{aK*V}`ux;Btv7, -nCe45*~؞U -BZb0$:nkY* -rwpVu-n;m
l.UE̪ǪnE|*Ͱ.w@UWU洪VW{)T'ToƁ/?R@'sJ*JarM),)g; V̓n)^̈́o'y̪99V o -i68{(t$
0KzMoLV4{8 .N+FvhujO'MAZ]咠j5KyUR'e^d]*RP2ÚoKw:&mn<qаnľJ7_+|_28D,KxUZH&I4R -LO(vV|
&RYS
'i"20#R/Tժ%ui'ikA$C -{dM<q/W-!2L4ኋ5eG 4ª\c=sQjCrۺ -jq_Z-GkT8PՔ>la9v|0,e8ue[
,SY7oBC5'B_kL`{C%aSpi]kb)SV[I-9? i=vST_u ev}h/xKrAIMoI>+<lNf]_JZ T;waTH-pQ;{=֍lVROlM,q<5j8eBr:NScS6O)E+LmӐKpԗTSnK4[XtLQDcRQ9T)I2Lj$>̾<v/\D;լ[LZ8h@65ߑ2˓ǂ'u*F8B˟w_z礀6eu_Jm0^(?ʊdZe$ٓͰzQPmhe%@"ʗLfytŅ:iIm Se*4{~H8Ej3_#ө=cbyFS,~XS"(ml@.TnIFBӟ:$~qr(iЉiw)jG,*aT&C90V+g>)LEO!ˋvxtīU/LveNnŃC3e -])c{IQH<\*M3PZhuu!~l;)q%u2҈[QzpmU@Om|_Kv#K3{nOս3xaWSfFQ[7JCubD~fh<ն)EH)6dGmo4ڕ>ӦW8\v\s+JM#$W_S]Z`Hӗ{K8mq{'vdƾKS]+
Xp/U - z3Y8][UK4W8LP p[zZ>NQW}"Kvr -yy(=vx}Qe^J 8;7+dL;M5i@eU?XXI_c-MX -]Y],QoniP%}!2"*ѽ͔ŝҰ%G -gQ,+*S\f(0N!!=m)B^÷]y|l'"qxMQ}4 -۪8jlGVjmHvkqfGFRJ!}1nt<$xV7(+);ėNl?RwYuA -簧`j a{)Vqx*'6@~+\Қ%:[d)i Ykg&8N~Raz|ω)KcH -bKʱ\ηجqI:NN0̫bEq-J@\a -Z Ufj%߂ԗ<SsGMբ"b'u]QcsLOm?g0ay)繱b[oMcZM -(R㡬{[or҉sMgI\p1z({f-kdeNJq?i'bI.-̇4W{{anwS);b -i`ÞN(ClS[WKb'O(fP"Îo[L -kH`BKkCH.^9E"gv-Yk
!߯_pP:I*hWIAR̚byf}<`Ijxӑ_x|qlŤ2JH/vx]P^cT@}J%c0JTλϖ0TGžH|
Iϟ*NzMu? -l_eӈGއ?8t5{%?x<s{)1d%\S;{! $9A]ESpU|ʛ51Ѐ0&²6TzPDb2cRmixצipR%C$I -)ZlKuL#ZIgõE;ϭV]"$1^HxC큠ӒjNQj3?%$M>6^'CKя0T)-#o?,`1T-];S(j.ĈZ$ ̄}J4u-ڎb -jNiCIJosڄ@dRT-ҩR_ #Ceab -/ ?+ً4270jP|&";?мS
~ڈ;{$߾u)d J5z -VL;_kBW~Zbט;^^L6"nĹd7K@Nk|=/+Ņe+ a}m;y -lJ`~'alBՠ 99%:~i|+LȀ}^^^uAZp3rKF=4G-&ل/ Gùv -,+`${*Z0:&tJrrDEGbANMjAsqG6 iF{$GOfgK#K`j E۠e|oSe~<lE3)S -7]U=lRO/X<*I8u)iu0 -:.bhrza*7*gz~wcPi:gJ0[ZԘ;F~f+Fa3Ay[0M6RٙOB\f5[/c/[YPJ˿c}WFkx'%ȜXez'3 -L j -*W,oC*IQIH
gԤQ_ -xJ6GkHa=j(
H3XOU
1+u1U ZR^vzn ";Ft'W8lR>&N00$SH6iB=[);XpOn\#rz>jgIAm|
;❔SRC{]Ӕd|k69YvuEdZ[]d~J6Shscת'ߔ+^UfJIe(a_0ʻJ!S*eUJC"pהQ -'W87w>M$<{U/%_ǽ)aW!QD:B4 DfaפR(Պ*5ޠ*I$X,I&^SnZџY\%9|EW!a5%VLُS#3 -J^o8}oPQ'#Jw)'c6'\lLSD pPYP D[ 4W4JV)^ ?t)-_9{=Qj#k߂zknieeɾk4{o}+\HʟaڬS4xjaBRn-klv:b^3ڂX3q)Zy,D>,,9g䱝HgaP zX$XBHc]8y0XWHH^VO4q3PjeLDJhrmϱ)ljsjyPu$_UFռdԌYp<fbĄzuR휴 -ֺAVtT.m晞4ՃMyY 6*)<lD+. -ӚePlDPWCsN8 -h1B-]JyHT<,1EOE;QFJ)C˲X3iԝG \N - <#y>RX#pwjϮYji:UxѬx:f,X
pU17趠êh@E^'{JC@l'
J~hIA -ÀEb3Mj{t[
COoFе^$6Y-l}ۨxy{LSsXc)5o(ea8U+qc;a=vrT:A{6Uꐬ+Y`C:Ȧ'P컅hΪZL6-Bp85~RpdQA谠J -a^)js'vz@o牯FwED=a˹Oj{[i -̪QBUUEzYqxVdx
&Zé F{&9i@nkq;/_3i%bVg-]e>kfp&`&a:dȐYKY -Pd:BDu2tR-PcS#?,ufB+cniN -bjt3bZhUYCĤ" DQ衻^G}I#yu-|ȾsDkcPUYZ<
漭eAp*VPù} >M'_`pRR*.ZGqD4^oQ
\3Ջ/6#k/ -"L -BUw\?āR*9Y1t%ɫwӎ5OkB5$t+ۊ}UzU8V+, R8k>H0=TJ]F*-eO)h'hFN;6An|%.*Ó -fnGr$ ->|fV\eC]i7FWd}'oTR/sVg__1 *ޫjؗ5q;Wh[d+sVڒoaZ;})q`S!
Ĵ;=)S+_Qݭ%b\[oh6`CS0<<,X -nU!(050Y)އ(&㚜ysR6oFY2ywR16dt6wb'ZyU@Ppӕ1_0tq{sZ!iMvHͩWTSzǷKʓwsϽ&c?f3! -=¨3{Dzp)}#z`t~|*Jw/i>In@w8Hwz8f
K+u)v!Y'
,mjX!kӮ{!H)*S4nV'ּQ/N -=ν3ye=jZLUBPos6va[&0T4xj$k'Nzhi5Ehg$1ax!}BPtYW7+XvnǢ5YK/BģҰ:V?D<=BӪKSP -ώD<-$T"-xZW"J%1CK4v"^'KщxD<`"JciMģaxrDf/D>t9L ~s"JJ%Չx*<l_"LIk&H4/x('ēZxR*OQ2U+@$ V]x -@5lUl)xIɗdģ0tL&kVx2P30^xϑxR*=SIQE5e렼 7;i[/KUx3{7n|!H<xzN*Ϟ#A6ɅSmNE=A.H<SC,H<ēEIH<)GMڀ7e$R/5OjEq\AI 0/H<H<zx_Fu)N+/WAiHNēQB$6H<lH<Oi4-SI x[
$^_@1|xh*\H$$^
OH<Xp$~+2$Ԋ@d2OGmmAWx[H:OPxZ}x4$^}Am%#H<dT$vHNo@F-H<M_$GmAaA⑦)H<ׂӬEIH<)7pAIH<C :ɒӀTxߑ2K|xʹV$j*ON_$Ԋ P$Ai]xW$$ޠ4#@-H<v$[ij~F|xPx|/O?"+o+ @)QxJixJW$*Oj_$H< -WO_$GE⍳ P $ԊēRxRH<\wAٽSxA!<#@X[=ӗ"t[U$KJBm5x05 -۠"^l$3#H<QEQA=]x3?$G'"|x=OJE1?H<O+O.P'S/H_x[H:o<桺x//RxR -_" -41U"JJ&%Չxz"aKd"~^7(%~Ux/*O/\!iUx[)RG!f!vD<o㇈7j:d"2D<52Osb%e%!")g/2BC)D<"BēRx>D<[2d"$B|x=G#c!G(D<S2W
D< -OgVhD<mj*wD$"VqwD<`"Jӊd_%ID< -ӌKēZxd"G|x">mGЇ'$T"j־D<B㕙{x2B[B&-1x-p%acxR2/DЂ
\%x*N^&%%DA|x'|x$ -o!ID<? z'GBJ&m5x Kģ"-"bG̴x[5"TbBäzؗ".tg^ؙ+?D<
yGr!m%D<=Kc.D<*o+4GY)Yx_"w]!Q[x<"JC)D<^!xR*íO߭Tk\x[DO^l[K^xz -OS'4qW""D<ח~&~̷'x[
"H"!"a\2!Ɱ,D<*^Dl"I$e6/"B!i%aQ!Y=vKD<DjoD<?D<
G;o!m%D<M;C#A_xVU"@/O1JS_R%!aZxx[D:LCģYxhvĹDݜ7CB÷C6,D<%ξxx0 /kYxR -[@<_ b' -S:@<F@<a'C@<"/'#QxV -OÓZyxR* ]ʇ'hc/<</OÃQxx"~yxj0<<s)Vyx}Rr}yx+*O/OjW9F)<<CR6HD
f~qxe8<g -qó2N;,3Tpxc#W oŜqxR*C-8<Ói -O]ьQTpx}=Zpx|}
~ó흞`ewP)a^xx=}-<<"<<1><<'P~yxtJp<<#Q]xx3}|jTaO<<3<% -<<"rãT}xx&G(P3ӠH6le/O_TǢ:xxߜ@(b*<<*><<ãZQOyx=̒4z -<<JvMioQA]xx̠yx|yx -CSxxR-z<<DE5 ӌUyxʗ}xx9g~?<<M*Oã7$*x<<RzG./`e@(*t9d_=: -UVR_~ޅ!ã|Gc.!Y'j3b#bXpxRg4F6:O#W&̄`Q]Xpx5q#pxR)'z-ϔ_Tnׅã%@Qޔqxjmpt_*S(qxW8<8<:1 -f_^85GA)8<v #Wpx]tRHPqx~^UyJ4)8<Ԃc]Ypx(ۂS:|qx+BãC-8<)'WpxOJI8<-q8<ze3|-Oa
Ypxlo?8<gS57 -
o,Osh)4<%x4<^YhxfފwH))Xix$h
4뇆G~KTy_`4<LãCóζLÓRixR4<GVȦg2
_~vS4<eh?4^4<Q|ixȹ&Jã=CS?
Dn7)]`x\#}-#cP`x0<J2Fi0<=&_N?0<`}ax~Raxa`xJdUF>GB!|`xaxG+jDC -OJ
:[~axcGKiX4?T -S
uB4?_£䥰|YxRXx/O Yxxq[Th;,$VCX]F`&Ae!JaIf
o|Yx;GlKjxג,<Qwk@yR.Rg<Qx72XSDMxDFb(<vF!(<w/Px,|(<]NJAi/(<GZPxR* -; -=FAYMF1~PxfQx(+?(<G0~Px(<V+ -SSqjA QGUA
((<]^7) -Oq'C-(<"'Ӿ(<E^(<z -b݂C-(<)'£-o#,PPxTxA_ -OKW%`PPxKGcFKQ7h(<ԂC)(<)_ł]QxX~Px7(B -OYQx:(<8 - -[Fm!+3 -gGM(<7#9C(< -OG72 -ώEd(<Zu - -;P/ -O3w}(<b - -£v3ǛN ~((ng`EE(<"RPxEJA(<`2 -ORPxf93bGqRBY}GF) AQPxT_nX@ -ϔ -£³J͌#0]Px[( -o]Px -jIA)TQxQ}PxQx(<}@EI(<)_³FF}SCElT^R -oO(<_)RPxf2 -C -OEףbrL(<; -x)(<)Gm]AqǬ(< - -O/ -6/G]YA%%j(<SEu|Qx|£bP>(<S3 -GqJFm5PxCFz*g_Î -OU2Pxz - -\~QxɔQx<@ePS9IEQ35L(<S~QxZ2WJBG<h@)(<,>(<£SpV,'s,(P -OcDAs£+T^R -ԌÂp^2*(1 -ZQx8u/ -OjA|Px'0/(<">(<ԂǻPx
~P>(}\F4gJFm5PxZT(<,D +3}r "ȴjD2:mX2KH')¹ql2<2U.s{ȍ&2S^3S%صEm٤bkdn`v+}M +ܠG5Qc+*$z'D~
UagוkVc*|7߷^ +튤]Zv]&?)
}ݑ5+EZF:DS*8G,q~th|Wy8sMT5nTi +-=#}`GK[Oe$?R~0֯w=ri8NƋnW˥C?f7qetTsT$V1&?$|j|V4V6kX|j#u !}lf{ +)FNm +@Fmqoc:Dab.@9ܛhA.LCRcf]!4bRܭBEhW&:uoNa$>EةbAAT)ԅբ6+č}!
mPn;ulIQ/ax:0kۮ'|Hyr$
$Dilw
uV2oKk|Wcu]29&j'Y+S@jmAEW*Lw݆%2\!}Jrp3}>g_LDnL]~A4`3M}.,
N\oߋrZrgﴒ~JE7)~,zJ%Wz-rk6V +jz>?SkTXb9.5<!.5Ix +'o~"|AE_⌌qVe%ˏLQhtZ8*bk;>6'3ۛs NAV?h]#lVNSAU>f%CVoFz)*Wr +} +rE-?#%6ooX/|3;ob5~<鋟ּi ?}_p>G~ohx^v38lO.$P9[{cwD*·nԴƦ
=ViGQJ?C2ߙ6)_`F!$UZQINFDBb&l;F!U~* +&˧#0 +V+ovrD{j3Km{ZVzU֠\>讂Y +5iDw4iQ6Rb!igR7*pzaљp1J9HR%gBɑQUW.S%0y7s*JDeOs5/ӣ\B]6Q\By6%ج2g2:JZD*x9\JȽ^!.,(L:)lidTvG6C$Ty֍f!p{²5FK53767z &ʼn*briymn}E6YIa,j۬(c@!^dl@wuc[$^Q<+_ZMiD~y^*#GO/#?fI0 ^@+ufV4}nYҷ2DB^-,m$Ut;Vs)ޝ$u8>R&;HmO` k|f#FRC?M+o85FiSBs n9ܛH=R +%OwEH1͢)A$<)BWfNPçʘ8-(Kc +%8&ֺ3PZ;{*p +""HIwz-qksV4{K=J:0{=Qqu6o8;3H
F +#Sg6OX0,X/cv+bJ1֪`鷱9$"̱İG4TB\=Hň冑Kl,PoԙjngQ :;2@,TcMv%7R%),idqEͷG4k4(R˒EK{vK/m^/d;wsdz}
J`B,84nIqJ;99љ`<JuC7,
vk"V+?^MMGZ?s%pP9!1ˠ{,sPX&G#$iVPyFI&KM% +Xż`i˺;n?8=B,JP%\3OScPDga5RbNT
=ަ`~\W~NIGJUPӏS5v9nۛ%JЀ,r.L}V1pqlٔ8h7D;2d̪.Y>BM35#FęYcfWwPW{t}z-E
ͲO3JChyc}T&-voq(d^ɷ֕$9gV'QNX9AxN[XQiq .]Zpf!$[b6]Ԓ#e;3vw5ӦuS=ĢgXNq*2ⷋVaYtRV3~ۭص[x1,cv.NqeU5cn\DʬʶH2E1γŮ={ "* =Jz('y}K?G,Ei-͔#:WB-KX-՝ǝQy!?-1 +yLMs4y+-ἏvBhj,J7MJx#fS9d8[E <bmlTnڽ)dm>YO%N$aFf%XK(2Qprb" rV
-um]+bdx]SώEAl2A-%T%9É`P +MYeP,~>%k6Jep/(kr[#2)*kIqD9+wuWl?'2˜Q^V/&
y-HQPI*,<x4%Q +ul$-.K<X D8#[k_/Ū\(ˤ(TELbMRH^-1.v8AEe uOAW\WQ*CaGO[Ή'i]Bxss
IƥeF 7"&MyXI7؉:=~=ml^ ֺEA~@{iHVzg4U +ͧ=I-f¢mQ/}OabrU
f^Y) +7bћB+e%boyʱڙtMȽݍ,[D+APEtanf6>xJ*o&029["vPJdApS]m/!6aܬK+KhU{\*},1po+k@"s +K1̋.^,jS<TfT1B_54I~
%}ǽ!~WHZןPTnW8GIW2Ũlv8{~VW1\g!cϼ^:`(a FQ\*5#ɻ5E҇$N"s+S`)b?u1ɾ2H [YqFM'S`*5$2}F\_e;:MWecq\\4Ӗy<qTuVm氚*6?N}W(gk*-$HҜT +lLvt&TE]Vʶ;! +lw/!7E+Lj^۵MZ0\HO+dYnWO8bJ!Is9!{77"7g˵W8(ǿ2Jsi'jFZFRWqRsU$*`]M4I;ߨ#\#d*/x#Ll>=*M0rIUUB cj
I#o冫KR)%'gh"ѵ:^]Zt%KCmV~Kt+*Zp:Z]ޝv$}3SҩJ"v,&Ѿ[~juPلmh=UdYUg=@FDT%=`(njb'܃ +=5f`'F:\68Z6@s6+W)Def壚p)P#*YӮi~H1n4N$!Bzv\V-HXaADŽ2Ka:va5Նn`aME N +$V}N#(
M4
DGsTA$3Z툤qY+qQ
4ڲi +`4bq>gq짩4AQ'{ͪ_[^oeBUIVJ5R#-帎<`YP$\>n`ȝJ.
j44%>ˉGHZHE)),|M +aџҟQLEAѧmKe&l',H +W/fzH2ͻqEVҽ +YZcJN\!S'&sw7i6o^P_K8(~'(D%ovEvŴ -EXvGHԸwO
w5j:+]#%@"7Q,"qYlP6|6^bDU"řFjbabI,g8=A`)6]ͮh_*MtlU9#40Y~5r"*+JsvS$}sfKy_*kSI3&|8-UuZ0` +aG>`R؊'!wuVaj&̠Q@ٳ',<31jR"mꫨܘv8jѺ.V1.,8ޙ{Syu"\s,DdijW,?TqN\k$EŪJB(!TX(*TipZK +[M;-{咥v|T!+35Գ:SuFn9[o=Sʗ~JڧLr.G|_iS-w*yY4&)k*& ,l1ZOZ{BZŨ֝dQe907Y[զ(
-yzsbJScSKZt$ +"QI0T%c,M'f]8WGZ/&u^
r;p;Nu4Ԫ$O8lGa).8wNP@
2t蘝TO +!eU!||xjc9J{TOi{3X>cVrL;h/{'ν
P(Ƭgˆq3~ݒ Y
ALA5j"*v+ +h %~mfP)K +ȭ:Sul$qh˲]Y +D]gaxP=I"MD(#W@4Pd;#SZY[=[f~JyuG߄2t_&K+]D4^k^Ѧql^f^p[RED#blݨUi4@ԑFY9`mg^|i2Xn%ۮ"?+Hwm̺K?;YV@4eD8RaKaÜh\TBE0MeAD/3+עFs +j'U?WjVp|'/fqu[f9rFypYbe E4Vsڼq%:oaH]ݎCVЂ>
&ֈ"[6qèXT-n],d~6ť'K5I8\rJ9^jǥא{(X1DCDmM}J5<ӬJm[073E VE[6D8D0qf=6L*lXF,FuQ6)_͠+9J=*3Y$z!0yԄɸQji-M\(딑@j68MQhC],_,S +P[w{PdGC%Z\)ȥmjZ<?ir.tyQ,#JMQTAܡQiszHye\UKޏ9 @ ھ?JU7`jwC_&&YN%0Y/@В+U{5i~t.RPScͼaGoƣTeUDâJnDx@A`}FZL403;wD((R/(zFvT\^pY<JrW@~xe{-v"dY7k0Cu7 ȫ,Ԧo6$n,ʏyr0L<86M6ozU KZ- +`In#|uvx֛lMR
eYDd G#7Sr\F%yҫ2Uh[
ɏآ(C6-.o6&IDP'1f8K;LC@P]bjoI<w?mMN-ǰu)VjJYJ55(V(dЏ%tؼ+piyN-d,[?iޕgt:唣4%6S\jI0G5/T.мRNc&P\dD?%U%V2acw}JM1*Z=5W"+y*2ѬɅhO"CBΏu(dӊͼjmIVx=5&ɽg]z,˷w6@U(quVo RA%Q>3\~U!h5;<݁zܜۚׯnͣT7Kx15-C]n "3R1&j* VվFYKy!)t"%:+\MW[q9bXIC54RUkxLj?gZC[<{~",[.4O?}7?7wQ|8}أ0 +@qa +Ñ@Vy +ڃxoA"܁@@֍+ +^'d"ꑀ uC' dP$2 d:I +dE@E +Ź@
,A '^ڋ@V dH KH KcȊYَ(@> +u#yȊB&3\M 8 +H &ad&YL 6d d2< dE@Ƥ2^\td&': D rH Г@&c'餑@}$O2@d5ȴ~jJ96L'LƁ@GA N2y"a -dDfYEdE Z!GY9q"z d6ȄdbdN2nD KH KcȤ2j(Z@V(4ntYe/ d _@Vu&II q$0V2D *U{ȸ@&jH 1 նM2c"n8Ea.ǁ@Ʒd@&ZH KH KcȪ1Oz"wY52>d"A~*@0Lg&I;g$ad(oB#D #fʉ@V9Ȑy_dY7:.qd@aI} 3 +쾠O + @6X@Vd/ +, +Soď1/OA ?:qքcBc>c'4dxJ~N1>+XQ +V&,ẙZ1Y',yL$Q23x 3y[FYGX1c1tF/&F'/XjQx ucT2(yǬNq$Uncce
ͺOt&c*:zdc1oXQs$5G7yL<&<fCI+c܍<6X`uP'ro[''Xn
0o`&Oc2:Ǩ}cEoO%3yD'@Ǥ"Iq Iq"!E:ǰ1"f'ؽ]yin&>k"
<6X%'1Mu13yLy̬#yL<f?I+c3yln
XQ8a$i=zy4uG{/D4DcuxǴwcTnfy\L'ydFB3y<fE#y,Syt"U 71z111<c3yL<_1eG<c&Q2e?%E'cXg<m݃<&<6YT?^1y<FIc4ǰncfcԉ<&U'yL%=#y6ǐ_~0N141z_1#y'xǤ2ȝM1e^1yD"8tH?cU{ց<FDIˣ<VuJ} 1u䱴4y-Dh<FDcHKLj[
<&['ucl1l#yL11>y"qq3y<'<e<< 'yAh"):QcĀg"y,-#y̌yLE#yǛ<q"acI8HYOn$ե4䱴yL<Vq1[> +$X{ 1ً<5x'Q'yH#yL'=c21yË<uX{ q Js$)$QO1Ǥ;Ǫg[GD#"cKBr1x <<֍Sӷ=cJ1xL'xL<cYo5LjN1nc)@d~T5O౪xL'xcFX74xMc1;1էxWKcǤ7cg8xLcO1 <^'x <FkQc{1c˘c4Rcjc^{?g +C& +#V N50]RD }{o}@
y++R*SHFJ6%vHNt0l&`9KschV}ih0=@)}W4jk'Plk&1ԗs;ވv2K-3Lyuu2*qAҔնd0B +s*D0 [%w.9~[U*ֹ`۲\Q:C!:~gLWX&4*Y'*lqDm$7S+CB9ʱ`-3 +6 +\
T0R'N)fOۙ`rY +;됮Q_4mL8lAGWEJ"YhA/ÈqZ-I\e}]WXZ?W'&Mx'RBaA{-t2 bu}al=KJm؉`xK͘j0A1sUTb8yz^|Q:3/m4T {s}a3y_K>t;KFoӊMN/vr%}Ԉ_d:wWQC%h'\
/z{˶ ҟ#KFA-C]1ů)_\$~a ~-_lOy=A"jEyǑZZ~Q'u_:8KW-#Pg +|r&~(u=bByC|tAj?_;kį}CjƯE@gyq+@[Jg[SKg$sڗ2`_~wҌzkd@_s5H/-̗tFP.ߩf!_J.1K=5u&_xEz9KկEzop/YI}] {ſ3+ҖcWz龳]T/4SdX^Rz5 + +wY{K=ϻ-f +cP8T/>cz'HTW!-2굄L +1^I/m2łQs,tmh[,0D[G|OpdWRլ܋x +mýXp.^REB#݂{Y6Eʲ6^j +lWmu +kK~Up/:})@{ᕡ[tP8ӽ2_q +kFȡG-(nME)w,^qt/|lp9H",ҽ4IZt/jS-tdVwahX.7+˦٪/ý^K +&+]t+A.'xHϭT
<V^R~U`/Q_Xr&b{+~%b5`/܍ހK_tjK-`$V%+zxp?Z:J֯7DʽD;q|3Kͺd"uGZ$^y7l5Go[.Rن +|U絅DZb]T;i!,kT{?u]*/\xA!^';+,J7*xm]D6K韬9aJvɣyvQj#q6kص +\Lb +j4 Xbj3z;@EjtZ:nAuQusѺ^kк8MqL2T-h],gE)(.YX!<x;K~*:}1. UҠ.~KvDVяY]$]^b焮CY]؉s:S5{?+j>pn6%h.ټ>.`.Y.|8KQDrfͷ,WriU?
u\8}3cP%r*c@]^Ar)0),\.;6K̂˅Bhsq0}+׳\bȂEd.*_|A"~\<llJh̥amz_`g.U\/r6 r`gr+CR\X57K딨֤LV){zkMzmX\*0ވ8K .J4mi^qZUL/J_dT#KϔߜlѴ\r>hT.[jH6e&--5nIE\օ$-ōYU&)pO[-Dr23{-U*7N|1kp;k!Tm/-nw﷿uia<ukE_kKT%{]kR=ox!\-ֻJKv:]^@m)|+P[%3 +cR9 +bK9HBp2 + +EuQe <ςeV`eɋ߅ʢ^,Uk
N#ԄS;snHvM,rAbě YDݐ,U$֣spd',pHVk>HVUrmFVڥB%F,bbMFz/3XB;FVړY&`d5gg, +DfF*ȒBN0$]0FQ3,r3!$yYZ6Ȓbh@"C4DicEGda9YoDv ˈ,v-Q[KbR<OEd5(oD +`dq&ɒJtdQ0%K˔,EoAEoPdHedI:oofζ%Qbdq?#bMYڞ=^XgdY6xȢ"9Au0HfFV#fdD9Y0aNU%F& # `dafI\$3+gt#Koe( +n߽q(3t?tmHD$$˔YB-
FN] %R7oF]x7#K}VfdQ,w#˺Ig%FcK%#"uyEG3 F +Q/">3K
#Y-B̦ pgnj@d@&r8s#Ȣ
3m"^<r5
$KCd͐,Mۂ&cw,%,+!Y v/@|h۽ YC2$K3H"W$Ǩ,C^cCka,ɋHdQk,Re,DT$GmlHg̐,剈$w=ɢY/Ed'rbɲԅldHgX +Hx-HKY=sCfJ]rdudJCw^ZvN^% YJSΐ&BT9$$eMi[{#KEhEێ8kAHJ%yE^dwB"S:^kzex_dX&K_2Vnz0Yzm,:n
endstream
endobj
126 0 obj
<</Length 65536>>stream
+&KX['Yƫ +wDo#dNZ,<ӡt]sB'i6߿<Yz +QDE.SOx\@dw/,>K@dI .FDkN di%q YYB!K<5ўj+2!K?AR;YzOz.;#DJqHE# Dq$3d~+vޭ +@D~)Ϥs: ӈ6%@D& mMGP|Ȳ9dZx̭% + KoY"JyhR8 @ii.c|,hz<m6WбH'ӱ'Vt,]z[8so>J3ZCDc)?ZUӱ8;t,)RcRpt,bc&<f<6O
<b^)iL-@Ry- +Ek5+c+X(sW<rjEJUK; +a-=^T6[k EϧNt4W<cMl,;;R);l'HϿp`B0\l@>#P0 + +5+m(U&KT:KIQb~ق(@ߌ"%vaw~P"3ÒpYj}0a< +r˟´?!34wKA%K<V*JGpVWJE,fVnQY,sxoHV[duuXa:{wjaxGcZ0b%rX!>f<v||$Y!"XQ +NAjPz: + ̰w'Wѡ*:{Vz~n=*̹J&qaAElpr%pw\ +iD*[kDOVI0Vio*!apQ::UßUڡ2dlD +[ӷ{[E&B47:UE(N{HVO?[4Sdj:jQU -oK
/cT'%C*-%}3 +]uy$[̭ڢޜU- ]cëlẁW^|ZfWIbxBk]ſO*}0og,|Jh3j
0uuR쪥dv]e?h]Es!Z(}]2 +dOMRdvV3ŕfKo/*9pv|]ſ*5^;Ut4Z*9vu%N誐\e8X>iER"W1 TxaHw"W-1:hz-Txr:QP U<20,PrZm8xmBW!vS=arPt&tm +%3 WVj ]EGWQ@WJ"iMv:]*q2 +QW)U|\R*0B(Q\>U[H-:Gn'TVI
!*N>UZNDB$YRU<X]UJS2ǚGU?Xyl*Lx{V-1Uv|p5,n -6Fm!(<2 -oDB!³%eBEI,(<Cg 5D0V2 -o³(<Gg_#X[Px[(<S3 -*Ԃ³p/ -NRPx-PPxӕ,(<ŊJB-q,fQx ;>(<}3 -όBF-uL)UQx+(<*P +VJt;J+6J}jK*
bcUA[ +Df\ΞêVĀU欪UWN{)P'ToƁ//N0'saJ*JanM ,)g;U̓^)^̓oxGĪ9V n@؎FJ>h<vԪjv/혆nXiTH]5!I~3--tIU>.~P5J@ND)!X5ʗVX+:aΰjÕ Vh, @m9G<-c*aR^+euV"9v9K=q(;%56\)Qe(p&&Ώ_6~yVY?{OUmy~x6~akky,E VH%#(~.YXC~'[j+g[-U-'5abWE> @_ Pm.:E{%Fw4+TΩGW~HeXf_->zqJ._IڗͥCV5A~ +ꤾ_er
+H!8^SӦU&ME):7k=ۡbEi$Z]ڀISpb&sy$ZmR^IY4KPJyTR46$lb٦VSaM̫ЫwQ
/5'CBV?D/3EU8,CWa(.W"k<-Q5գ^f۵JsΣy57D5Rx-$DVY'~TC^㛙)p&\Q( +M["sW^[@-K#pb +jRZ҇m3,Îk&Wg,kA"Rl285,]uc6/4]n}" +3g>'LŝO!ˉnx`tĩU/<vNnECo+Sizxx6mU6fΡ)p+vJTC.
n8=&݅%0ڪ6ڣ$[MFQFW!c:czg!ӭf tob>6U>jxiSRlgŎ?hu;+}MPYVLM#$O_S=Z`Hӗӛ{K8mq{_*)Ɋ}^Ov}P1`T*@TOڪsaWbMO݊}ӊqB=r8e!F_24_`$_H2:&̶R +_, +~ۙ +؍\QD]ٖz)y$تXޠsS34E,:m)=V
j>ca=|Ml.4Ob%*weuyGmBDpF6Sf(3JZW<%[+\E)ɓ_S|Wӯ0Krul¸8*z/ lOr:=諭;c; kؤa BlJyۙIn +5n)K)N+7JYNd%Ib37#`PɭG^ O=j6)lUe2:8}ǧʍo'(fgԢMXu`I,*6a̰6z*a8YuM16cBK.Q7Urn|S!LMvK) +x +AJ%ՖUi uJunmC-u&ȏB˻p"Ļǧ
<˴nAS6Ouį+eLn +~<P7a +M癔ܘ*&Ƕxm<҆d +mwF7LCpX>3AYN!<vt-lf+ن[jNR8SK8
K>⇾W9[w,ѡ&KFNI=Ȓ];S7 qJ +7 +C՛ +Wadb#R_ULA8e4uEaW=EPNUϡ
'@9߶Bʣ)祜熊m=6mK#j}6%b08q{FS.;F*+228T8Np)TH!mAIVfb3YWqPgK롨yw1і+>(y=R&[?|. +F' +xJ0<쵂bMTzfqtC*WT 8bC{;5xM"Z]ύ;1%~G0KƟ%Xxv^ bR\DDt'"]ZR$@@?UO ʁ(b1>jɀ]kl~I{<UϬ@JZڐbu;O3{ +nPUb$B_L2tfŤڪ_M&ᙥ:|={HI߂@mBhQG.b{~7o+6'a`rAAErjU:NT߱80f mԏ1g7Q<!HNK&*{k_*CAQeFg/Wzu=a"Q'LHc(L4k_k4jf"
v4Sٖ^G&6kM[rn8E^P8R1A5[%f~oEK[Izl΅KaSZFX&cZv:4HQ\ +XI, 7>Ɠi5[[՜%ӆe0? eaȤ6&eZS+%@x1E@j^/ؿmQ_^`KD
vWx|gF61<mEZDOmpF<9#MժK!SQZI8lxdaZ}c
!2@xdnɘP###\>wZ!}Y).,^]e;hVhdPN{,\6X}ad +W:~$贺mi02Ght7Н{?6AGꂴfz`9;DiZD ]@NJKsu݇s}U[P2=aw%HZUa&uDw%7,=2 @Q]ሊDRɝՂ;=bLҌ;6$a:]-0,u!ϋA}Q<J*<>8$ Z0f"9R +LKnbđ xm + +phPٙ& x[?ٵ產r)EpL@HzC*4 +L j +*W,oC*IQIF
gԤQ_ +8J6kHa=pjb(
8DXOS
1ƙ*vy)/U;u=7\mɄq8#\v9ȓ+c&f}ioA#[H6iB[);XynK\#rz>jgIAm|
;ⓔSRC{
]Ӕdד|k69YvsEdZ[]ƀd2uPcS:s<е7 +WmGR)ʸA|F RȔJYH35eT-t٠i:1nDken3iS]n`˼^9%0 ʓӺo&E9kdq""mRMMRPSZJliuWj,CbHy(* L\is5Z۬{Uz$OZ̮)QdY)Oq*_m:`:ͤ҉B.9Lb禮 +EթR`=9|\{ +UUEWZksצ6DpL3A8V~cZ
ГHx0pBIU778H;더19q5P)V"O\5TV9T,RAJ&J<ib"mW9YϹFԠڄZ|%[ZYYm͞[uʩ(Ү i6L;^yeZh[ L\c q1h'cNC;ylY6TaG^ bh:N8/) Rѓ:
nfْ-slx4ZhT2WխQ5?5ct$^݆%¦,u9*`;'nPuC+,*eZy'Ma,slSm^o[PgͲTPP(6bg(OΙe +Z|x}u^GpSNsRrP*֙M*+v8`Nb;)>bini- խ+wbSZj
Tj^[m `ۣtRR +K0Pu5Ԑ1Vx5TOyբ5y <"y>RX#OjϮYjiv*|hbw<:fѓ,X
pU17䶐êh@E=lO^%?٤qx vZa@ⰙzqĦ?=8lzέ ֡ާ7#^/r֬Y6mzK=97b0xϸ1kŝ0;yJ*սns*uH֍GU +^DOQ cS4Mh'U-"!T8hHNRYaBy +pp)JH2Z
[ tXP%1ѼGMxN,L^;HPpACQzm`_(-K%Zsl7
da}6uڗj6ѡR@\@*$친Nqt"3JiQl/sZ gWIX́vmǬGFV{3lJ!U}CeR =c%N_4{щ%lVEmBJ#].˲::B|Ւк4ŪPU/7J99\5]m.1f;s:V|+mĶ!>ڧPuOpAM,Q(uY0BQo'*<8I!+ŰAmĎTM<讈v'l9w]v/ck0 M(jnSW̘ mi]vzq/ݲV0)א9,wJ5fv49-oOm4
f64Zw!9UOרpzcm-yX$;AY5J(귺}>@/k!NÊ6ޤXSC!8/yo$?-mM8bݙzf4]ꬥ^zm=Pr0ߤD=W +MwPAo +Osx +"r{Noy<')Zd!QE6o3 tHL|9qYG1(q0amJ +M/15%=R8i +N'Z[wCsx<r鶷^(8*ɑIq˺ˬulNYVSUHB'W +"&H *BzNl%x"iCUMfi-(p +Z{6;Pܗ
X#@
Z'\4~KBIJhjŃxxD5DFg_lvG$^,0IE>ZJ3o\ ]*Qm/"ϱ-R&=VpDP8U䥬L{-H<B5eZ<G +ņS1;4@Y|xh*Y,i*V`ٿy.UD +S5'+nd1yn[iMHp2ve[UzOJGx +4vap4]W +qg fGCBL)iM݅wV%~xRYHΛD̪ѓS0bK_9aMJe++D{UͶf9p +ml`ΪsS[-XKv/%q*dVz'epz+DLzk+m[qa촶\[}==<zjzgł +sf6[NY)lt<S'}BÛn:.m6n,2FMIi1Չ>X9柼0s|*-mkvٯwW)l.uzt0;܅͚rq@v(vmSar7U$t#9-^BP~]Y^V<Zכ8WD.>li1;a +T8D=I)9ϊJTTx +POviYyadguc;R>NU&k3ْ[Mvnۚ1*%5P^[P_-U̲B'eS/:LKe.t Or QRڸ)usPVے`$ڼ
>C¡M7; (:U8.__sXLe0
!m2u&Ȋ)Q)\H*$NRsIRB_`UepP Z{,q
Nqdޞ%XK.-%r#ʋ Dec"\MصKR6Csq<EspM,ts8u[+ANct'aH{(>Q*D.,VɅս6I7[l-_`/
EXA[j:1hjkx0ZpQvŌ{ΨS1m"Py,z*@U)B ̈́Jؙy#j1<k;:.}2Jj{. +^ve// (\ZYi4{{+ħuC{m~_(Y%Zk3zX/U>|><kGfz碬X\7GE9ꕟzQ_G1@QArk?MSټBo0\J߀nF2X_+t%
2'2
5NǬ2Syiٽ.4q8$뤁ms[
+dmu9" r9Seaʛ
ښ1ʡ!9EڛEЩwsF1GUy_Hj= ySXn5l^րJNaui_oQ +//^061kaUfk}߂q
(X&13"yxTQUxx^H7ZxxZ~yx +1WJ1ǧeóE/O{Xyxz<<f(r F~yx}":ϐ2ÓZyx,yxt6PΙxx|셇Ån4Ir^{^yx[:Oe'Acyx^{B|qxR+OJI1FS*8<V{j+O`fͯ,/),ՈxT"ndxM +qV"j&!"^+9OJ/x*(@Fx9Hz{xw =}ߘ7zkRq +D~ +l@<ISh-@<c?@<4Zxվ@<'~?@<Rx( ^'Ux*;Rt +/O +S%RēZxA Q jq^ ~)
O3cⱱ/@<g xǟW }m%@<!*O /O +ē_Nq~ +ă]xII@F +ēTɒß +cyxx_ƋdcWxxFUV@QYxx<<"/[ӜXyxP~yxgJãȠP +ãDϖG1^;Xxx><< +ϔLA@Ѱ헇MMuNj:ΙRyxZTK<<[uZ1~yxRwråSڗZxxyx|_Pxx*)<%dי2_&F!%ߙZ<<}/OT<$Vף8xxT/dPPP><<tg<=PgUxx[<B*<<cˇg3-<dVgâãԸ+<e]vq懇!(R.<dVw|yxLÅ +ãz7>0<*3q20<=O76p N'P>0<C)0<) +
0<+Vi`0<x̓"}QEaxlj1_ax[q!>I9X+aC%0<͜gY0'=^.0<:lWi7T`xzfO=0</Whx*+4<=^_)pWixbp_v#qhx|ixaB#*4PASC#QhxR*
嗆G`$}/
L*4<"߅G1xixFy4<LS:K,\2
OJ#" 4<
JՇoRix +
5 +
:
+
ϊd
ϮVIE+
O%x,!
/*
ޯBãCC-4<
6t
I3
G:Lã$hђԅ8
O/
xPZ]hx(z{ +
OE/Ƞᡨ4!Shx*
O
/B3LmᇆI)\ixd^[◆GJeLSEN3_B3LSKãG'4<>4<XixJ#Rb-4<}JCz-hx/
}~4<XתNׁ44
ƀQDã^kL#Yhxŝhx_BSH(P4<WixZI}ixy^?<6_g@ãX`x(Zg-0<aIy4Z0<P?0<\G1OGua1?0<TƍI,
`xRhVZ0<S~ax݂7GKã)ڄ5X0<U^P:4~ax։axtbJ0^2`x=LiOk/BcS`x>0<Gίl0<T0߫hQ/`xǺP>0<tjI4WGZ`xR +Oo/OK +ÓRaxZ|axf9Õ[~`xl +/%)j/o;0<w9_Xx病h|eB*,<~YxR+o +c3ӻaZXxᕅه'L,rbx'w+Xxt/[ugO@e]Xx!?,<:ף#h6K,<FӛZYx|Xx'$|Xx4Ce)HWYxiUGwTa)eaYXx9Xx7~YxJ1VR +o,Ofsh),<%x,<,,<Z3oŻO_s,<G£%*O/o0TdufъaYg[fI,<)_£EP~Yxd3rnG/O?ȩg2ނ|/>
,<SYx\Oyeўa)c}LwY"/.(<jAᑾB1((<
_%HK4QxT^/ +bcQx_dZt(<fe(<ڰ?(<%* +XEA}f +R +R£p!>(Ax(<=GP -r/ -+ PPxC-(<| +ώEy'-(1ߍ£֥4,Qx* +OCEᩆ:TSQxN/D!QRHxR$<BC)$<>뗄'A%!Mb$<x,ql* +^RymA `.ck0M [Hxx~Hx |Ix37UYHxR$cNB&%5kue8( + V59[<@x[)c3B SAxP)Axb&X<"PY +K;IYjqPPOJ <=M>c4£C- <)@&|? <3 <OjL- <e3O + <GZ@x(G!GTBU@xd|> <E +O7?CJS1Dq\IPHjIo <+O/£XPOJIh/ <67Ym7Sam%U X'moQǘAx& <~T+Zw2P +OfuWư < +³Z#zW@x&~AxITрl~AxD^!f'#AxgG 2e:(y[SZᙻJ>1ALQ;MMqb <H < +X)_Ax}q;3DE)~AxR@x_v0RAxK) <S3y1
£8)#p( <OK/o[7zgoGUMSYf. dVǷ. <.M <> <C < _@I <)_³FsSCjT^R*£T[@x8@V2oPAxz <RC-L <ەe"+G?Q@xxwR~AxS +ںYAx40BY_m^2KJm@x +>G\|@xfJُ), <"j:1Á( <sU <T <"mC*o+e$uJ̓)y* <? < . <rer +SgjᙒAxd <i£|x] +NIXd +cwϱB,}@xƈ£GWJI $GQeT@xcc'p. <Q_+ <0) '0/ <"> <? < +cT@x(>.@xml _Ax3Fm% <-F*LJ_"gns@xK[7V~"ْ2X$B|@x +³ziauZo+ +J-q,fAx ;> <}3B-uL)UAx+ <*P +n/+ P@xN>g_Y2AxK( <S3:#jYjP@xZ@x9 dB_+ <"4+;ߎbO!J%9xT#_8xR*C<>pVMY`Q8xE^R/+|;E<J +Oqe2Uf-p< +&Sూ֔g/oÙp|8x+2rhpL +OASҗGSU) Z8xK%R9xt}8x4[ex}Cf@p|[LG0-M?o;(l;-f4}(:v/6氹vj8ط;Fk1}l+\}y[M>MX +Flis2lMdC]\JVşwKNߺ.yğkşk%y97x7~lfm͟rw6:+aא +}kԾDb`Zm-Xch9pp\CVrRm2ݑi|[Oj6:s0W>r(T$FaZ +]C
_=1Ϡ`zLʩolq=+'o{6VW%#bPc4}OUuϻro!Y,G~YKZ?+ǿYdqa9_)c{'],gM&'}r[I`-XNU +J%rv2]gڧ\bHLi~1f>Rl,Gmn +a1FD'c$9ͨVpOiZ9 i< ď[b㨒"vL2<NOkS:<'[qR5xyK=ۑrzY5+8e9_5<vv\[V<h +}Vv\cS|'ǵvy.PDqdp״q[ZT<n Ā50T)4㚶dL繫}r[
\#o6ieT6q;k͐KJbm5rpb{Z{*CrR8.c(s\!*;3 +:rX/o=&㔯W"g1䶒r[
m6vڍff)(s^K2[q(~yseU79Jm rMYI)Z rRBqKշU&ȡ<f%ę7L-\S*Z- r[DN/dpјQ!r6VPӜ!ےT35(N=U%ҏ8>mq(pmLrsf8m~
\L5Ȥ?n+5yLgq^|K,8%녈Q +p5Bo[. +7Nx*PDţS㶐qKf2'8*8[{6/NՕqo\u$(1ӌq6+kwi}Mys&y-lNG~SWk'Æ%&Otp"[h}ᴂϵp[H`%Nj9n
Kv܌ʄm%cX8
ÓQ7p +څIX8ݬ p +6fa{RAcl^T8T8.߽p\خ{;T`phWm ΅JmչpVXsp2fkXOpTOpZgµaŅ8EN +ٵ
kjt.FTTw..?/d`fV~*۩sס~2yYpz$\8MS-.\þ8+IoyZZ`8x
| +4${"ܔd0&GOQFtVB#S8d8+"|+m۵p;+pp^7GA$~Yp8kp"|#1^aecV,A6yX8|չԁ3u
f/imSᰧNS4oT*B@ +5AH2CȔjp{TP8
+NQշSP8HJ(TPD +G<T@@$p(*>.T8ǵpVTT8rud*/TPTGP8'f12T;1,p\ &LFj7peəI@}uU2"[Ҏ3vYh!LH,3Niŧq14cj14YL8$0ORa1s͂ hy2}|,Qa +Epi 3 Vd(0'!t[PϿȚV}x [h'i$7Nu,~+
Nc"|1 +ö)7 A
DTS9fv_GQ=~pX +Ch6ߤGuL*W +9}}oP`gQoJwC;^G~ӌ;.sofTSWTR&2C}jX7U<ooMfޛJoن%2o&{8K +͠ⶖceT'9l +K/&lm˺m;7m9C*ufFavƷȶszIBNJmNRZ,3Ĝ@o<бZ۩ +V( +fӒHprw,R&rk7xvEdge846 +='HԦ2+kwؽhDXZ2tۨny+>1j.[f YU5r"b3c,6sndbݕpXw,6-l,6n{e)XlLTkFvƬVUb3sUi6Xf/g,6LO5~`Q[YllS [8,FnXdZ%Xl=ԲcShS06Z +l06#9]F346L9-%̌`9E5F5C'ռ_ins(6'6]MD>ņr;m_%tFc Ʀ8jƦ(kc345DZRMLQXl +65ilzҭb(hl{46i=<6놣4ٺ9oA
DZ
D6-lmD66ߗ2ЫGTJ{4cl*7ddk[X;Qݛٔ0\tX!iMlAdӦ$ Z@sLit{.&
UalԪsPo^A_2b#ڟpvCkv'jJڝĆQ ;B&u'$6u +N 6163G2-n*6{toN Ʊ`ؖR~ͼ
7v +aP
%cư!HaJæGb#Ý|5SÆyV,Fâ
pƚx{(=1a+FGorؘrqV4}Æqb\& fp^jUDVa
ۆP-p)6nئ.8l4_s5#9lÆr8bNg3M"LNaCHJ$Maa_Otd[#GC8IiZ[4߽ lQ(lR,.)l +X9(l
j*LacgZ[6EFTrFڤb6)<t&ŋ2&vAac/ZPP6TY6=83 +#:NAaSp&7)dx +;JFV乏`CmX + ak>V!lpK
e8Ѝæn98l +Z(8liې7 lG8p`;NoH#_#vòVc:&Fʿ]?{[Q\k$ǘ&a)bxǮIFR(5z?0$?Fh&)"LJTCJ/k!"I*.[-}yt$Ů
ਵZ{Nt6iw\eMcwY;Z4#\5 +hqOi۳LQ8 -!ӦhÍ&.MZleZ>Ѥ&&esf!BAJ㛵{12obҦ)iSH|{\={=(i2e"̈4i
D +LGjAG2> +:/f:G<9]x8S%'GkTx8Zck=b5EIV1{ + y0O
Hl<R<|q<GaS5@ +6iFrCKʈ; +feޡc@笛2
H@Ҥb i!@;ӛUCJnģAsx4L}ݒGk[M +{MKo2Mk`WDFS. +M-MSG=C{ɸqh?S
rZ>7M*Ja7wR1NQЪ>rZǏCcoPHy-xP|VV|CmA%\'=~ + F@ms1AP*V舰0۬w({6P֕;gBYbA}K^(5yP2n>ԚyXsVj8T0ǩ5)KI<fP TSq8QM]+b +Vin3g&{5j"K~=cf!0jEw;eXJ!RJR +KRϯmJ0,wJvZfm*OOf
/nY5Mۺ²؝8ccrz + RE1F{/&5T6YltAIkb9dn!F'[M̹/*o;[Uvf/ێ!Xliӆ7)sH4TM2nk(t^0Ln؇`Rߘ6jDlt(L6~*~UUO ߙɓ]HwXAa`GmOr* +(T:2m:L}AF~cPfnFjr69L'5
A$|ۇEh|*⩿R +8eъA|v
{?SaJ6}a٤yuEwGu6R:I_T69Sf$+i)teh^|ˣ7i^PF|-4Ch4p̭-&hq(WQ[咻HgTpg;]f.c"ο2p0-e߽Uwvb@eiYc8hjJUyo3:zߗlڒz[Znqۡ5S~68EnnR%S5W҃" +evd5dHZ'ڈ8ŷNTlo=~(f?IGIymraGm>"ZԵ{K-c(:]밮"%m`J2vېRuJD 4|[0mArBPqr3GDaL3"mRY8Wmt#FӬFYăRySdbEd%!mo;\^Fg.Nͳ;Yw2nuU'
HtbW=Rty`h}|~
dGg:: 1-M<zV$ט`7߆jC++%.89rm-EӇn)@~>*PS^3+QBzyiUX#@+E*(ZtG_*S!h[|M%meS?ȦN0s2jrfR[!;wVaK]]R( u6,
a*WǢ鸡KNul +S8ee"b{>IQt=첦sM̱+{ά[Cߨ|
37[)mvsd2`o-U@m|fP1(TΞ8E8oTq2?|SDRm,rx+"R&M* TMR<S6ѾeL"&=+Xr=V$γ֢X4}1}))/yB=/`,'Oulmd-%[pBD]XdxR_6ʙt6 RV5t;|U!EV3] j$Բ|Cߚv:gI&E/^uIamܦہaf'O-鄥h7,1Ov\X,^NYƙ4՛N|}ShyåzKK~SmYs̒#O5M3>z^[Z-UhQYܛGT!_TP,\chH^
ۃ#h¡p'c7N-TVӺ'%SՒ/eZW];Mަ"gB藶gc-b\``|kID%0&JT߱]$P=fZ-TIhs6DNo6I-SF(?JVf+E)*2!n1ڿ*FiCcΕVMػ
ٶ\3yvډH)*bF^[QHei% SmPl
4*ŢaMWHOJBi3v5TQ7GS:mRxX*n: +KD_<L5=@<|,ov&6UbygAvJDxW+l$OR3zØU khS#ײ+$UhB1ހ_SZ?Nc)&U&vK)ƱyP +Nxҁy5;Hf+!n)x,9NOQfjLo +< # ,>:)Sb' +m31l }F<ئb7e7FU:`RB-u?HctMf7h[CUaͪ(ag,@L \`!Yl)䂢tʲZS'iTc`da:]FPqzJqJr`y7nPx%3nj6=$VblJqZZAMM/?{0n)hzmdۤDTF_Dj`Ճ6nRo~8[0ZG᧔BJdAmyaN|o<iֶ;vo;,9TH]B,-P@O5:˶,Ec-'1(׀,n^12:28){?7S0)"tlR&7) +H峰nl~e~UCf#ʁX.9DBUq_}-eC8i*vo?q8U<Nn?ËgN$%FEATi6 ppt6M}h$P,4:⁍;SQmuXE$1#u}
6cwK5[Emܮ-ՓұeE3ZQ*ݝzc])Oq?bK5h;$C?7BU:|_ǝ^^BIq?uk?K_ϲ1a8|}*XORenS^}n[T: +mmMe#6I
xܟLC9o$ ͉ Uxj%gAK +sJ{ &!9L{N[7z({EYvJ5Bp!RXA*+hg4*`~|PHd̶c$):z72a_=zNV2MqN?![WK0'M*iAʣp%a P aP7;zB/_(`!ѡW(/D6i_g">q(bj-a
||Ux~<T@JR̺I^<>ָ|%y_}ql +Q]?V8q:H +K>ۮ%5җ@$I>Q9-N<d-a݆1Ś&P*L7o-Shkٙ[Ӥ ,\ss RJN~.r1'wFۢ'P3wȎŀʨg;%E)PΫ̐ +`BZ4qG3;<ry,C>p&"5_L6Mr[l8jD%S$uկѸjeޙcgQ:TU5nW&uz l8}6]4i[D
^R;g}/Ȳ,X.4cAN.Y%$s|e]lu+GP
G.<2FZyV_xA6D +>PDLN+qyeYLg+>
SqU +3Jo/<CRJNĨHz/+z%
<FXA,4V){c;%~ +_1%Tm =P'03AM2,E;eUDltCQHt-YV9O,Udž6@PA9}0tq{kAؑRLvI=Tq'3>YT갎W}Ǥ9B6aOPOo1z͊ Gx<-ZSImYEbDaxB4-ҷX +meY +ٚ>zM9C8eeDߑTZua3$TYխ$$hhݒMi:3vDs؆9SvC$(,í[ +RNIa9|<k"&ǭ<)'"HU4jF$I(g6@-\vfQr䮎 7T0{F?Wtpj~KebT +4+zk؟5DrqJb6vjjFd/v3)\͉{J`Ձ?K/E㶌58:HP?BlG'GV,kiH%xtRb\t-5!oFq)Yaһq2{&-M=f@:27T%xj#j]@A6d;y%hvZ4@GEEep:%5Bkiݎn;ZGĞR]ő,\L_|nP1RGH
}#2L|ҡʡ@ rhԕbFf/"vF&>1mmJ&: \`h? Pz!-To + L[Q6<H㣾HfL%O/RKb&.;^:zl~;7&mm2+챯+R0Pu?E )pGuZN8(}s62v0Ō5kg_>&dY^v ).wT"&uwyh g +8_2HUJ
)NiFg;$[j@Qu$3<k:QNH?[N^$+Gǧ%&%\,
8LefTT'sc\G|
G6Ԩ}5xtf +l A*gjԸlQN-:T+}GۭWr2P>U +Wnm5̗Q}1ݫaɤC=Dw5\6|"h<NcL# +ql+~>3Ç3Xv@d)YC'UE&Z#P3 +$vᚅyXn+#z\C}tOI*Hӄ-۪4>;KI#o
9i=*仚e)'n
gTBcf\Cu" $^/}M.~G}xL'YpP
x3 + +'ebDݬY2 %+ %t«o*v{'Nw
KGЗj+ͺ˓{Kw&N`s1( U}\:,*E +. 5eaGu(`xX + +to>aZ><њs[)_R%4GvR^:c{υ#Ag:U\YF!{4\OTJHnQ, S:|ao챻V~K)gM%5w%)DF97ϥ*1yY0mp|Jj{4CNP0'Zy-E2%bkօ?4ʖ",fU%ͣqq-+s}2`ËST{r+TR8.{NMtGL\Hvd&b%5dLBRY~97>3Hnܖu/ž{JBnXwRżZ*iN
,r*a-+Ŗnv+INJ<0C11Mnf^|zlS +BbchvX+>{by9Ǩhb?ANj?TYclںnl NS_߽n/`?)hyR\(ᮼT?(Vc9D'B\BaAr>KaE,YllݷyjgXIXB&{G\+8b˒~;Ɗ-{fh<ޜ;"Hȗ&EjDڡq;q|7=2LUs$n*!qxzhw46lTDZ$l8+;r+ +v3I=u)/R(a)HG
y '=qqnϻe6wxvV2@M
y/pU4;<wX?t+;^ƿ_3= +t=ljf'wY)HoDVqw=!'[3b"shاSDŽ T~3o:_I
'U` ۇb{njBߗWàIv2L'=<z{5uBc-Pvz*ʵmmck徦~JIIbPA3Ծ Rl5G\8lj[8ucPt +G VVXo+HP׳*!ڼlI-u7Gܣ\Ǹ|d1O@y7wzYIS2vC=Fy)iqp_%}m 3{ 2s4zw#vJ"XK.M%r#kJ%[JTz_ػz|)6ϼo.{rnqOmh0|Ը}r08D+N)҄,r><fx؇}|(J]]R#:5:Uuêw'~9S +Y-W:e)Ҿv*LdD'R&UsT<9p!`NvTiwғ|$<ޓpB_RWpD/8Մ<?AZַ~1/!z,s ی|ZnT; +CVLܬqKV-Z~TDjHR k(+O}܅dr3?/Q_˥f'$~%(\ڏ[zp*-Uw7ڭIؙtf%
k$+o<5'N{c`I^Z46SQs:+p΄B4i Mn+Qs5' Z,^Bh=X,G 3e8=q7s9On@rfvv(V>JI}A檲9'/%U~z7+\
GUw?˿cֿdD?S>[I@NwuxAV ^W} uR J12OBc'Bu GYxbMxbS:xBg ^'
сx +ă=I@<X@< @3 + +O*6!Rx]vD<l&OJ%⡼x]
OJ(&u +o) Nxj{9*o?ØP +o?V"Bē&U"Bijg囈'V! <8XIߕ&8cl狈Lě$d"OA%iWx B@H%1"}0>*D<)ǜ",D<)g|+OAJh&1D"ND[j +[J-5x;[c}
@<|U$\xj/~ Q2:x +oo +bV ē}V_@.3@v^ēPx^@<gJq&ѠZ ^4[x +^xT ^xII@GOOK}/ 3OjI@N+7OjI(@<x:}ׯy:ēPx +n^%%@㛼x'xٿx(I@<} +wTg q9(@d Rg!~R@<g3-@d R
xrxR+OJi^xR+ +@ ^ +S
ēZx(Ǚ/ juʊ2OVx]ěJ-5x:x +ĽxU " xV ^B + / @<ק~ExIu kxOa *@<dA)Ϫ{xI4 ^'wx]V7O6&,9o* +Sh
StM_iZx2%_ZxxK@:Ϫw +
OHhxTN9wix6Tfi9e&ix +
oXI4<)J/4<*
O +
OCPhx;}ޙ &Bq⋆ELW/h}I=#XhxRY*֠& ע9X/c +
O7
OJr4<
/QThxP
E6C/1g +Q*w*^?7O$)J8@~Oo^jqxE8>aہS #QpxR*'P.*8<ݮ#uj2cucqx:kToB#qxgqx]ԂS,OOXZו~I*SoqxPpx^qxv2S8<౪{%뮎C E+8<^oQ8<)>C)8۵Ag^v,^o^+WpxP.n +B9oԊ8@gOO +ȉC4&iʪ8<%^8<يSE7OyS:/O8<cqx2OVumy6W#XpxzUoM:liUĊUqxj_8<Vqx(/^ó3Oz +AVױ0<"^0N. tf4ֿ`xjm0<,ax;pәl
ە,0<} +Soϔ+'NjI0<)o>ow
ã +OGI.0<o*OG:ó}U`x;Ho7=G20<-͜axƭ0N7ã
/%3Ǚ/3GB)0<GMGdgN0v0<} +YeoVG{DHG~CToĒÃT`x`xږax +{OjѣU`x(0<gIãI]`xz +O)oR'O0<}7oBO|}0s,<bX 'jam{.Tz£)TZYx,<U=U,SRtțpeiUYx|TXYxT}/YGQ_2F#>bQPXx|CxvSӛ'P +ώfqRYxR,}<aaiX~vJ3OCe;jUA#L
e((<j^ -7(<}£e>PPxfuG³.Ԍ{-(<s(<4(<WPxD>iVvVB╄7LK)$<>C#_HxR* CC$<ުVMY!`QHxE^R /N+;E$<J - OqJe!2 Uf!-$< - &S&᱂֔g/ oAÙ|HxJ£+C2hL - OAJSҗGSU!) ZHxK$% RIxt}Hx4[ex%}Cf@p[L0-M?p;(t;-f},9:v/F汹vj8ع;Nk̀1}lk\y[U>mX@;VmﲰvBNo"Nϋ:q+N[`gw#IIf`vTYv(;ma)L$;m ;~6NcNL:7n|z|:Ywg'!#$ O.K[^77NV3)]Gi$ rVBi얻 - \ؑ!ynEɧrio=_hQ*XV-Í,'4r`!5'X8дoL9Q^)2 [QN={^ONQ(proML49ڰG}M*KTHeDt2HNKy͑ӌzi95L*r -|\˗]*U#<Nۋ_Uhǵ{o5g56qRX/|\k2>uMt|v|oR5>UxK-! -E29c"zACykSPXegT[AEN_a:\m"u2J,V2EnAOۦiXlfl?q|Vm ◧W[%ydV
#\nUbL#'!T9)ǵj}Z5kR}phVMkJPs9EKFn+#L5Z3*FΦ٪BnS䖰!r[rq@i4SqmUԿ_6Atͼ\&ȡYF=l '~29}5td҂ Lj\~pG -@%RD( -3ሗpj)*N! {d_pdJWXX8=*Q ,Iy۩r, -N*U(GM̀EDQJ*pVjoX8.X8} +.:JC2N -cpS8J@v}s*\{#T8w۲L`$z?0B+AYir? -g=&$pwvSpopԉ,*SiLP9gAk4={>N(0"mxK5g+2Nk]`Y-,Z__dNIE>džQ134?SpG' -"~;wmN]?
hSp2չ=i?L7I;+N -۷[i?ae[AlY!R2Q.xh~m&#,c[[ -
fKYT^$8na7OVrlҝ7! 0o -r^i) Bҋ vw۲.n-mkضpڦQⶀ-3^̶RA۬S+Ll;g5tl<v*k寊l {au "XYm28ݷ5QX&x9چ8MS6,JD:ZҦѦnZrc<DaM/~gCfEgx\
gSs(fӒHrw0R&vo7xdgDe@<6 fΨsb4qu[%>"hl
pDc\bCRȟ1VcOvYz.MVT#݀ jPׯfdL q -)5;:#\cwMcRՙMzT\4|R-4u6gZ -
piPMB#`l
k,&+Ŋ2YD/3kJ\yC_8z
UIo06 ,0f=
c#K<M27M<ɣJa5
s1><Sb3l!(뗋5HwKM9Ŧ^J8M3Q7
14`l^ILؤتyQql0
ؤ\86PQH)$2H)`l(8I^alʥ=]F5@+6Kx4
c\$>7Mg^0F].M 7[&dTGtdTw*S`l
|6MgzC?M`=#$[S
Oޑ6rJެ?a8mLV[06T.cr}l3g[O}ڈuIgeMƷ0=x>F#M7G{WiiqˤdJ(ءtckQE`l͚SXl<mp5MbP gM߆,6)q"بxL7׆ħFrTMHuH rs3͢D[-ilʛ<i46;EcĦ{_EccETشO،{Jc3656)cl[Z4֨*46ʿwf%hl8hc8=^PSp
G7oI_.*(L&&hlqgIq&3hlƦ/bkuVn46RzjM)+plqlr+
>6,ZJ46{-+N463uQ@y3^cjqbQD3`l(5qYKW?plvPkpl݃qFAR5 -@ȦH - -Ma:ʦMO9FMc÷Ny -P
%ب!Pb/MR&]5z\-w`a$6 -
HlSּ }?Eb#fg"5>2wL؊[$6w^F&b $6Tؤ۫Y-!C)<>,b;0*݂n9Ħk֯IlԚ$6TPAbC9f1óĦ&Q1l$pfw%aEV`ؾwͧEy:jE2~6yS`ؤ4 -Y6c&g4g[p'L$sXkk\M%jo-*&nqؤ)3q(bgk6EܕF@ -ak4}bt;*Mo9Hl -Z(Hl߱ߜ4m;1lgt -M - 1l4w+hةZˇrp3g4y5R^5A_p2k^;ǘ(a")bxIF+MkN'Bj&kS5yHr-B\C$I5@aƭ=GgMR0 -[{_/ΰwZ#x^Ai, l`.k-!k.-Ě/<Mt|5}@նj[
Dacpp'_ƛ>DmWwdǃx뱙j[hЩjy"3 T#=B=Q4PM|| -4`/#1HOBd5"MW@-@Y6 ~hz'ҤZ3 -<ƉsFZ[yHCnKNIkM0 &jچ!̐4}IktxM?ᙒ=pY@Ҷ!i[
H)i'fɐ4QwA[F$3Zs!i HPgIk*4CҤZ눀I^IC 5!iRۜSPh,yk[i%NIU%Hm!H>kZCUiL\_Ʉyi[Ȉ#E]4^uSi<rZljLz i -R0XiRH4VӼii=g ۢ鋑&PabQ@iK(4SgK3bjVirj`_틐F5YόH,=E'`+Hq6:"$}FkFZHHK3p
FAn!%iՈvHCqFZi|7w"meFt,l%![I:"RϬ9mVlQ*98F@uSFȈ4JШH+MH Җ4Xzެ*R:%iXg[;fʛ
Yj -d+/TrRw(_rmSfK혵kR@kKy{BmWT I1+0]qLzL.a/ܑoyr2ڻx;HԔ?lj%I;
]̩0s`Pu 0:;_a0~
3 6Tk8[>aE[Q&!k>Ee
qP8!)ymu+Ic>BƐ^SfDGAeVq;䫐OB}aH!Mk1Аڞ~e1e -,Tj2m:L RAul,hޯx
6_뫇*ǡ,'-x9uM?
/tkm'5
o5H/3 h|.qVl)2]hE!
9&z'7Fϭ/SRW`6hQhk/3eH?gFj&-o\p[ozf4km_<$M έm*lqX_-ը-L0EFۚKx6`AR_+] o)cx -O#j%!m;|`):Nͳլj<tPIX@=1]~@ -u"t*K+kE>'( -|^)XAfP~<ޠ -A[ ?:dҐؗ7PbbK -usEfRa⩆¨яTvIp&dԙ;hڦmZ5Z2g?7MME^b;9Uz -riY>yWSPpfRq%/),ǔvҲ@:P+^4viN6ͥa<4>q[IXZ.߄>)|ЧzMK]RUmYsݬ)5+G>۾6L.>4ںʓDmE#^Žu הJ#uG.9(з\f97"o,O|
j8^zv) -w؍}U(.\#)y$X\wKѾ+p)bRd77!MhS -x6i̢ Za6ZMb%r<]hJ GfZ-TIhs -;{WOΌORO31ЦXGpհ>iM;ބ@VNc)&Uvx_ -lyG
ut$:g͎YJ~<쾓yv>K%n$KT;N7(TM|]_G]XqX-M?C֛wRTܠ -U,@.+q mf+!+@h9_xkzsne=udDq2){7 -#p -P~כYx5[j}s --.$1EƱUzD ->#j E`pJ -MWOQ7! -{2n(+$@,T%|XN4'Jdn
+b5;8-PՈj#ie߱8gى"遺9})/כӓ:ǗXKyQ|\ʌN_6ͽz@!t<=}byAU
!힞G&(W1>5ΚashO4gQ=ƨȶT4?*gei{Zuqt;AxO4%dg봤^.vy3Dž0Z7-ܠSS7-W絰Bt2`-Qs)'b%33bߚ#5Q-yxa[}k]2mX1ҒL( -#¬,Ut@ -K1/!e,0VR)j/ؿ=J -aB^CGm l @V㉛o{&YE8Mrt8j):k.[,:9FxZ hcAYqc5}lwѼ+߄Os'*oE*9|AD}dA͈%if;hD\l8}ZLMxF~jp/̷p!ݰ
}N@it7_xW"lޟ{|DLN+q<=,pvPKssra2W"NOߝyl0곖M̤ -c%Nߤ.L"Pp-LTfeKu+6߱s7,pr⑽X M/BX9oҺDg6Zߜe²t1u_2ؼInpp&ݷ%Z?(;xZviۇèTBlgM'~3Z
p[Ta¿ƵZ",d!pQt{0bJ 9®rmT -R58Ѥ<'(zzk?NR̊v{.;}히Q@3o"V,-2I6JN%銥T 0wmz4~V'N71_Udk㦼3v|;C8r"9JM=# Ow^b&vF4cZL(o T?P'Fƙ`QCDI$>A|-N4;m
G"kyκhεrdY_wZ3FA9}P DZ#L
{qׅZiOog2ui5I3G
~:]Ӭ_P>"G0O1|Lώ#LHzx<-Z$vyY((Ft'ԜEY#+`Oזlj;} -*>I -Ӡy1QI^Kc1f%iYi(FE s=
l7xtv"ґv}9[jmG"v6ji0Ʒw[9g)M (M^>:3/m@J*սn}##PƊJ;r6qP -4:@`e0'$M v$%Y?6 -`lzrTkE%1?Y&3,:EƖSBsbݩ$ZNCa7tk{E#*^E
Ylmj唊7KMlC{C^Xa -E&EebImv̊y۳lÍz_OԷtkɰt2AUTzqQN-:ԗuvtV+tZ(> -e+HcKm5̗{ѾyHʢҡ^Du>k7\7J5b<6ww|Q0V^~3Ӈ3h
AOSJ8ۛThCՄbaHx!YWɟ;R=o)'EXB5U&lٶ}#o
9i=ZKUN]2ÔEwex)NNvD}R{O(~{t-u 2dAC24(d ?n8LHZ>?8_d:=NjoK3<f㎐xP;Lky0u1F/2TD\bqL
-@?#f`: -=iRf*El/3Rxi.PJiɰcF?K5IY`:3Q+ֱ
@`:Ku« -Ou^;mECn;ӡaIPlo
ԵANʢ/Q$J%<f - -˷,.IWXJxvۑеi{b\(v7Kmn\h:)'9 -o\r-F\sENXjVRt5Ǫ{Od뮬!6K`VD:izuE_i;¿")-D>hBZlw7mM@{) P1-03}~7lv3˙y=q|D.L[ -t/>aO_s87yGuӝF -zͲ 6TE2] -IeO':s$ ->|fx,ee<'WߊRհ祿zUҜ -[kĿeȥؗ՚nh]+v[%08Gg$y3l-ٝSxc:Np(~Ĵބ;S5#vnoMit(hf]}[(ix]JczZ[,'ȠIf?c.شl<8E}}x^cZ0f7Es^廣` +oŏ>fcҀVcc#9ɦ`PXNٗ[Ē&;ZNJZ21f;"XeZ4V(qĖ%݈AAScӊ-{+3Mt_ho4_/Np^Nadԗ"١gwq}72,U9W*8==4;4mrsHv7tjW2% -QTPլ]:BMyLCynD(L -o< ׳wdivy hн]"X;n<E9\#;7oҌ"SyO+0 -YT;INVBm -1m"+ɸKw=A'K5gew,lϡa&R2pz3N7F|unMjX>EB0Nx}(mu1hv!7pZF>gZ~Aޫ'=:EB]c[;6w[춱~$gU(mkjH)Tc
g]651Y(H3 V.V(`g.!ʼlI-u,CF]y(-b:{>{ݢJ:۰vZرn{0cirڞp]VKPN@榳&"Ge\O3!iNG*;플?2=wE.-%FZ(iD:9Q}ybB:Y}3nﲧ-)lb
houٮ
ӝbs8łW02m""Ko\;Ocؽm(k*;XKjD'YX-ԬV;8PBh,E{pL{&JnRUsTzrч==]tʹO[NY#Jz{S3ŊʘͿR''O,e}l
w4楴{,|̒v.qxOXƵpE]ʽc֪7ݲjy26nF$Tqo>YP{\؊m_oBBJ9ꕟzF[}R%cY.-=w+K7VܤvUnw:0KqF^{c`I^Z4m"s -i@Qz3ahOY$=AIc(H$ -Y&"0_&bad&ވ~'2T&/o0ݛ2{+o+ēZxWxObeIL?LN)N|/OYx@4'F!Rx]~x-&C0J*#&H땉)eu5A0 -kWx[L:+SxxڀjVx/+Vx]UWhx?L>&7?0V&ޠsf
Z^0$V&Ja|xdIfa}Gʘ.+a齩L<y*LJ'2hUxf>L<l&&a遪L<[ģԪ0&;}af?3P>L<C(L</>63+o)`)QxBk}xL!dai2l?L<̅g/rajT&V2oG0ȅ7H)Ld&V'<Uf⩴Lq&-c>L<C)LqēZx -OʗVxϞ_&[gKJ"a%cW&ė7q&V2o7(bL<H&Ӯ"1?oU&B_&"ǸVx臉GēRx&AēRxvO]x -sW&F/!0hTxIIL+kl$M G_$ygxO/KEm%#HV=!X"!G |"~Ux $ -H<vpmTEm.$ސ F;ool$tAuL :
tTxZ~xgJFēZx(AuQ+ -OJAI V?HWx=zOBEG V$)ǙD2kRx]lA)xEiSSxSF%%!HwH<=- @IH<))EI-H< $^m_FAuf>H.:!$T$? P33 :;[V$2onןEwT$ċg$^h$2kAu93 -.^F%%!Hn@K>H<ԂēRxRH$JA|xR+O_"[>NJFm5x2O/O!#hZxi~x}f$1ӂJFmՐxC -3?H$.bEm%#xz' -@1
$H[bY)YxH<Vx~xR+ 8C-H(#|xnו!,H$V@^E)]x]OjE)@)PA鰌#Yx}uH&K#eHX#-^xRH< g~xJT$b/)DCuIe*H>$l_$/Og,H$VN }$֣"Rx[
$SS"H<FH<*Og~xU$ĿH<*LzEe$V2o3nBģ h{_xhvĹH93oq'Pxt*H<]/uMc_xU%q/OJ!U"b.7hZC#Rx<"DSh!Y#8,xG~x9 -K3F&p%Kx6@A~G ͕>@<7 ij,/ ] :~x/@<둟x<_ ģ+_))Tx? -M #ix%@<Ef+'H /B♫!PHD.<;_
pZxx߁8g_F<<1Vyx*OJ|xxRxxd~yxDOӠi`<<P1ޠ;P><AC(<<N<<}o<<}&9O -DCe<<$㳨`<<˅'L)iy[yx"df'
*xx -c"j(fHV'#JN -둹_@<@$ !S9x}@Gt -Pd t^nT _ B#xg|x]S,5OOX*+MT P3 -Uxj?@<Vx( ^Bgg& >h_@EUu0,@<3iiGO@<H@<=,3guw~xR*O -Sáx:*NQSV1x^C,<<4:O -ÓZyx'>KEfتãRkRxx
kL<>xx]<<Ti:EJ -?e:^{IZiLq&us]<ʙSmMOej_J*<<M_e.v/W!xx=.@_Nz -ӟHxx=%ixyx *@<߫yx=<eZxx~xx(S>|yx POJI:-2wI:G2OJiu%,TQVxx
T_DÓP3p/ObIH8<KXpxĐ -O/OjAJ)8<)_Ԋ/oM8<%*o -oa|8<,8A0_H
VnGUQQpx/8<}SÃYRpxZJ2PÓqxh/tzY-(RgއS[Ug/Os^qx'~px8g4<9gM
ZhxD>4<^i eyKÓzLSRtȗpiUixu~ixr$V";GDV(4oߌ2?;>4AxѩTI4<Bóc~ix|^I4<)_ޘ4,ixKvix4<r^J#VhxI]jST?+0<fn
4cSq'V2|-"`.kKfi-0<} -ãg/P -G<0<)_^ -ót%!0<ϫ0<Uo&wklc/)v,5XxD蛅 +Xx,Y8CCai,< -ޟ ,<컃G?c-J2OOXYxGcQXx`~Xxg2; ->,<C),< 9G
aa}UnIe}o),<+,<)_jaI,< _47ZdZl}Yx -OfeieeQ_XxlzoDs#,PXxNf OKJbm5XxN(,q£maad,<~YxIu?4~YxRXxR,<67
a
^£vam%E,<c£!Gas,-d^R -UYx/O;SBwf&C),<3P,< -O7YxfB's/sRbHdhQXxO/onXgoUSXxr0}Yx,<*o+`qreu_^YxgfP%$|YxuYxR,<]GO³䗅'YejT^RkÉ[Xxr~Yx -~/84VV2/2Oe³ʙ'ᇅWG[Xx!,<'JemK
^³6,<kʔYxjrYYx/AeP֥';Ie)aeᙚYxd),<-+%G<$T_4\eJZYxR*W3&O_vB'XxfjezeTXxcZpYxR+V݅:/OjaI,<NSXxJU<_RYxR,<?,<2o0m}XxC1ӐRYx[,O{£/O~beoSx+F'21F;*O{Oba!ʇ,Oo~Yx[
^f_ȕGYxf.VCBaq⇅;YXxbH³70|f2/4~Yx<u!3$BaqއZXxR*OʗoXxg2ÇZXxD>,<YC*G/%Ge7|Yx:|fG]AQwPPxII( -OA7?(<GCP3 -*()+(<j. +BJAqo:* +YA1\PxXhǦJ(dZR=pBP]րGfBi-(<}1XPx(G#[Px +W7 +O/AEYp:PxK
* +O)ݺ7 +X46ısL5HxC苄;Hx,Y 8LCDCai$<戮@IxP=w 7c-J2 OO߱D&($<Z0_$<B3L{O"h{:DL³Lc}J!q拄'mZ/B3 OEoLD* vB£AEC-$<B£ES:!,$<2>/^JORIxCJE3 + OʛZHxDR3 O(M%0-2 O[oBӠYIx~Ix'IxBZB'Ix酄JKJ"-5Hxx'~&f[Hx2f $: /UHxV$<BC)$<)oBϫp}v^LZE$<JcEÐe2 /2LӉGM|v3 OQBS<M#J\Hx + 7 1$Tގ7 0n&!dMS$@KJnIx 닄67 Oj%uL&f'&Y@":ovڕ% $<p + P盄ZHx(&TR2 LSP&8GqR"aVHx*|($< O4on닄g oA£T&Yf&iUIxK$ Oɕ|IxdZ&u83 : P2 O?PIxL&$<< + Ϟoj* OwWK
7 BHxK
B%~TvL35TQIxo+ GC$"aHxw=/JRIx"}T4"i$< + o)TuJ_|'P^$<S3 K~:iIxIu^'IxtBmK($<U$<HxzE + ?B&᱇,$<UTRH0 $<&)S&䲒v"3$<3$.$<K O$gj&ᙒIx|d$<D/iLPIxZIx$<* + Oj%I$<vw_$< (V +y$<'IxǙ_$<}J)<$< o$m]"'J[J&-5HxV$<T7+HxS[G~" oo[%i"I,$<BCytJEE[#<__$dRg`TUIxk3 O7 OqJ#X[HxK$<S3 *B"I$<)"I-$<B Od!.VR oA#_Hxn/;Gg&-!IU7 4DTb/BC($<{P OJ%Iy L[B&ᙚIxԡQ O!-p!ѾMÐ$<}7 OO£ɮ;( $RGO7_ <M@xǥ +o֔=GQT%% }%pGY+ <_ <cY@xK O~Q
6g7oÚ5yu~TwTAxt@xJT
/*OA +Si]AxS*O}oV>W@x/ T K#j@/58^ xZI=-}w-W܋~ 12NW:A;=NaJU
W`4v"^OUw({>ƨwҞ^w8^bީ;-Id<;Sp x'u\w'_}t[0w\u70H=c'tr'N&Tn + r7N]!~QY;x먌;qNɓ +SuWDévjϳ<svvʋl\9Nʉ)ucYb^%ݶXv[ۤm&N_:깎ĮS\8Nj:Ռ:nqvMg)dyZGkci=7*uā5+nWKJ:=vWwaUkbսȘ٬i
cJB5usU״~3Qu
+tEC1'5*SIu͊EEJk
"5xN'}fWT.F ꚖH4'NɩC]P];+N'9NJ\:)eSAu^ҹ8u;^^ohI,NDZNN7~6Iَ-PT⨨/#!蚪T +Qv{^՝Ͻr0a9P:
'ŚGQ.Ũ; =Q6M;L')xԩnW̱VEX)d8=z3 +G]MLw]iaD]-ͨt<A;F? + +˰jaZ%~y:ϜtóYN)Yα4o4Q,@Dj E7 i9;`ۖGŨ8D9m7B7[3î?dIPFQ;h-7_{2sMcZSN3{/bN*KɟknTIuFsem<
`N꽹.(C96*J.(s!cT]icYu<۵s黷XyW\ǽ?zpisPc4}A;[:mz?gþ@\yzDcƻ.V3s53>b:W&1tysСn[ja*EI/nN:۳IӇP2nAfad"LkC85*nVt:Ҹ1| +k-O:N8?&n)@ +^D +[Y[e}<DwRz*+kt.j[D5T'tMR2nAh9JxXIU,^?nAuFYNG%5!FV|ֽt=t + +&_[n)@ u6WQx|wO:~SpqbNLom4\l 5x&б7q D=ܬ)ON]S
5 +d]S8L+Ik4: +r$q/N#ysjX9ͨg?m㩰9_9Iin 47̩ȇz`6lȔ9='e䔹r}2hE+4)s6/rRj2'Af@8!s
/<CknoM5B=ÊeN +Ik˔9TBAKN,U3eN_;(sz)d2טkbD2f)M{TpQ̚[j] rM +E{J l8l.) 6Ԁ5+m6i&ۂI!8asRw,2Nʽ6UvIe=asƱ k< +g_uHln)6Ԁ_ZN;[as|)ik%@/-B9>;N[J-hsM
'#RLrAyNǢ͡@ʴ96~mǢq<64b.9E۩mn)67IKk2h9rcw!6?ln +5dDᔥA9r
W"ȑ~ǩ|n4 +VmPG̙m+h<rj6AsR'`tG34ה-sT +hnk xԨpDZ:JMϏ7ʞFA +A\u2]nSl\-}s,3lTBmʝ/2VN"7)rCQ@wNdʝCB ؼ<PniƓ#ݳ q*gOdݵ"S]Ja5Fbo}14u:!B!M1 +D[Ɗg<Wm\ܴB\
L~Rax0?N!V1Ղ`ST́ӉS|e^?;P` +A[@Sn;vFVV@!ȡ*m2rNn,3)BLى¹M\פmyA;Ah=3AƀS8y :sTڮIN '6 +e=Nz'oPɘ8)|
=AӇn1g3Ft?>NC"gX8R*cqS +@v] +
מH<oL8 +Ц2GZЧGf7 Lxfnkf{|Na~q4mj1aǔD>q)S*8ݳ kF{9?~(}3LJ =3a4I@^E> 'lx hGǩvJb5q+
neQSqZ9ju\FeƑBKI;a +a<i8=}i0Yq'c)ڞT{kئ"uY0nۃɉcY1q墾Q8ES&E~}b2&N㝹$0qD6[8bG+&NQ +<0q
u?&NAwx}q\8(Y[@q(OgWz}N"鎑Rt")3A#\xRjnQ[.RΣ @q=/@q;̉ޟZPt='HE$#N噁{bhɄ8M9 NfQJvf Edérʌ{"d8Ebp1qq +2noBDBO-bnk*Q$&\]xyp&+<Zp +/.4Y5oG/ZϾoJb*o +T;_7
.l/踤o?if"D&q^&Yr{5/@ W*R|lYo/&M$77ub2oO5ofU2_ݗӸY71ae臑&MU89{1 +=zvv{:omqi51ozM7768M/A`EPϩ A1Jݔ偘x7vvFvxlQ79-|۞u{,ms+ +Q`)M"5 vpnVWہX\cĺQ6Ί
ۮf<ZYn81wRyX+XvpL;iSqWIsܔTT~Sޞ܈8܋&N'cz$:<pSh9 nNܤ&}}YT鑻ow6J&fx9vUt}e "}rv|GŶ1t63PڦO~fErh[S5|yeMs C҄@9Vڦ3M'[5mzmж|R-жu6\̶UXنʈ6d&2&4҆3ϽmR*34ߋFB2WlCs0mR(8 +f}: +Mapl#M<YrȶFu-d-yIk0mMIG)cϔ#T吐mwmʽ[=m
'2M?{+/ȶF}Wd[zنB mIlI%,3mRX5M<i6^
%Amkj5mR)ԶKM"y0۸<نRlk9:Mɴ~̶ovl`:lSbl\]f5},fδZ`5ڤpL̶6KLfLf[Ӿ63q/fδ?mM=$h[Mw?msM˦gIdBLVΛ6T.lr(41mPmwe5v_Lf^RVfQi3lk(l3('6?n;+M +hj7'"?nY"srhgd
sIrm3{vMh@wƔmSV mSτx+F,}b@:Uh漅ms,m +mk_چbC8ӜM֕j +he<m$C}-t`=6eV$C8жF +U3jZ%m=2Om)ש +jz=l6uFn6=(\&i@&mJ_<C: Oս>ѾE7tY3X_̶v.fPbI"LcdOg6tͲ]Am0Qۦ7ۦܨ52x8Mb6}2 +mSmӓn[Gzƶ)Ula=l%nǰ +Mc3Nt-n#LRA鍠۴I4|_@unSa(ntoDnSѵAo6D(+6ed0wt[SHˌnӚؚ-ݦM>ݦ<1ܦсg$/&
UmgU然)|g ^A_2Gl~;mۨaj^B'!\~iݑmz62mI@JLJ݉
E- +~نJ[ Ps,dQmrܿ.|>>8ӅDa:Vm=EF-%363
7~Z:yX/mX[cmH
p:-1[), +MU/+Cz ۤhj*69q26a- ض +pX08hmRhA+6%׆2FkSz`¾<XK#43M`SnA7am`Vt$ejòVc:ܨ4X0m5)mTcA(X21@ɟ- =O6_}/>˱kD)i{I#lਅfl`_hc¤IfB!^cqYnA .*5P욘t04#lfs/6@kw\eMg[vhb$6Ir\æm)ö=wtV:]My$Id6lljz,F-7Uk%Z5qI{
C6*z8>&yVYQP sQ5Q"Hum 4`):nϽԴ4Le"QjI'[-Pk9L 5蕳BmkR2gT%Q ~Aiʘ5]dd1&dX;wgۛR.VRݙ]&[1vI&Nwx0GIW +\p)jh)d5jҴj + 5VRC.#HO?$d5&IMWj[,5mlh潓8jR9jRN( 5 R+ +}xDkn7w C,sZQ6~I][pԒ8j^Z*!8j]QNÝ5DTohsFhȾ;i-Lk%zcԤ\+5ꈄQwx`ԔHXkbT[cBƨ5_g[5)5k+F
qbs\<)גJꠃBLア֘Z +Sk0%6aj)O{ؗJmjAR#~AsBZ?v&1b:SHjK$F^**q&xoǩ@ΥaԤ>ix99PjL0P{`(rf;F +.Fh;@QWV|qͫH'J-) @Qu3ƹPj狤F]IRx?"D$5T;Jkls$52Hj*} +ZRImAR+4b* +O$@ +I
LR̼<Xj4p2ImRk-Z2g{oQ:aXFpLyҠ9S
i$g_jrŵfG6OKo2EMn;SDMm 2BMF4v{!rpdICƧ1&7j;<m +6ŀNSKSww2r.N{ɸih/ß]/˟~͟ΏGiGO̿C9sاO7ܗ/~3_m~;onW_:g/OdпyXa}\rWgq:_~W*+vۏ??Əl?DGŭ֧rMM*,~#3_G>Ȓs +XD0b#]}֡>|beXo|
Soe__JquqC4"_[g|ѐh_u?xGWyUӯxZwq;wG|%+{߿[-}.GrYOwIc(#"_$8#~DI+
DIpѤ4O9YhT5*$pdF/=BYGZаgk!f؍҆39F9dn!Cl`%-Dl"6@}ě%em#ރH<) u·rbA9s;%2:12T-*[䓚{"MrBTPƕ|
ڭ y8$L߄p%!/=cYtJNp
@gH'*8 ':[4d-xd,f)&d +AJHČ4fbLU̲tBdLh> W\( muTrȓRLf?ɴT# +#hmFu+V@⟋"eM>@%bK9ou\(q?.ֲ/~:tS|VgA4ޙkpny嬻;XlT iCO +XdW(l^!k{p$RP(I!YT + +hhqEҁx^f )/w(uko1J<@0nK\d*n,NnҮzITh#.HK(t7h3Qum=PNi>7<1)Ȏu%g_QE:dBMU^sbbb]P|6%J +Mrex +eMDYS"Bd8K[OD[f6Y}fb+pUҪ`@ +ae7J&m<y4+fAC/rm,0lkL_[6Q@2v|F<N]hqPɳVVMO"|m6!2刜ٰJLӃv fu⠮[9Nϕ,C`$<XuڄՖQ\o2,|ZDB/{,a35nfcj&ǵ(UXTAU MߪИ4(Z#+1ۓ|UG{U(B=Rh]Gig?L➁B9WrG䠲N +8 d-A?tU;UDs@˒llLNd̙NSLQ>:>="A&HpH6駍)XϬPWe@\Vr%npӖAu ۜ}~ovAs!3I딂Ɇ|[K^%\:W)%h<sуk^Xƺ֏(`1!S|s]6? +@.{Od{jv!S(v_y6U* ghcBșϻU3U_|ԽA +BԂ$wc &^b/-qB4}ZXZMڳ$QЈER1Ā}V*UQQ.
fR
E|k^[j(RTwPn,f&\+Щ@KA.
Jh:@ +D'I,|0$ѾAD9v9;A,QtNs%gmgS0F$_yP(ٳ<d(!ܲnuz^wr5Ydze%<R5qz߬O@V}SmvFjur2b9 DP
*mE!kOJw3Ε+e~-
g}`0w0e`}郲,:/ +<q0r
>'s`+96K_`UȘ
hj!TbH4tՙCQhGFAbǃ~P](4hqR=2$r%,OۣAzT[Y:dTJ ++VgS^c\58+W˞^VG`PH}qk1`/6<ّ\l `#&Ӗ!ŒUq +1FDf5o;@!VUT$1uJLh$F<EͰU!-t-]ཱུb4WQ:KġŎ=ZfuC,whl&ӛQKzn
QςD䴴@ZMĉ3TY!B9yѫԽԩ-3
vRAuwSpIԨ"\D_:YIUt{?fSD*a[̨7-nLD5ӕ.DVKQpWAUB2N@n1XnSemAn +afogJZ/UnCk@Sr}C-A5y?D'Y_oHB +Em&"̭_a7pz>0;=,Sȇ*B6n#9D0
j鮽apA6
+(ZF .Ҝ{zTc\nQSJpYryW'6|f@>^}p n-]QѮ|#)+vh^>{EϕliE^bg:$fPfE^kӾBXZ#1FlV3X.4~n{^ERk^
FpB -oG3fZ1?~P
w_h]"6p$ø$zB&6tqeX50n-M䞋H]%;p$$KFR +v&rBs#Xs=S;dޠWfO☠Ņ
%,K^PVԇv$)/0`yEo)B4eKL;4r/NC*!@B1i>V4l:vT";RHȾ9qJKˌ%KOEĠ^Rhpl5KGJ-@ð#1%BI>SkV
Xd xx
pb$!ր4,ަw +ё9P chd0rv D)R\+E>wM-ךu`bj6&8)(fTX0*T
wM}7 +Fi1:V#IyXV;%Ӎ4BPҒ%Eڈ > M3tQF4W} ), +rA lTL֛"fr` +LॷіDxY5~sMQ64=-U@GSf'Y +sWE| +1E +C?f1{MZe($nKx֩قN+{rq
endstream
endobj
127 0 obj
<</Length 65536>>stream
+o7@cqNHYr˅;֔
BT +: [M2fjQꋢ[$ }C%*vKLHE´[.ej+hV'EQC^,'K)mϐ5A7qd#w,'*MX227"//>ôZ0s%Ζ+uRA: +]_B<{o)1}6!Щ%Xd0d$b0FkXxUҧ +ijTicS0v +M5ak4 +{Z-QbҫmhEiK^IZy`P^Iv7EW\<teI5RWmZROcR^^O!H^,w젍hj% 1˞DoWJ +OLlQ蟓 +qmb.ЙL5 glJ)yUQ%K&2h){vzX: ;=ĝ(Xl22/,Y҄ƴ +oqOE>\U,i5<@IlӺo +6;ni!%cM{|s44/ޒza[% ޏougb;dՠ[&%TK1mX7*SpC͏z 2^ˤ`a7
8UY/橆wk`It$L\n%Ҫ<B?`n7<3ZG"KHgj䆮7(f-nmI@mBp>Q<]4z&|W3}"nzhg"_|V:V[yY&![a`Hy)1ZsH?)[>'Cp^ie(j9 UrkX&>VKiKQ筤~:<o9%}E[}+@fg!C#vc<IK"-5'%=]X7CѻI-$e$CLn[.x0Ee{+wZuofKg\kao3,cALJ<ݾYԥޯZ@n8HcR=F1W.myUj`,c<fMbAsch\CH-V1 ZE"}ajC+bZZ5:2kHiZL$9s:tVGjG.EvqQgHq>rL2$hVҠ4jKV_HJ\[~=lZ">Xb-qf_gcՆÔBn'mģ2O^91%؋j`M;:[&cs:e|}#v-?*YE.f-d-'9]Ï4/:>7)ٞ
k +RS[I1WM,3QVjqI=e7Id&譒YKՙohQ5Mk^a +n<k]01@7~OZA* wc8-DY4E&&5;и#@7Gos]85S-uw +Z2%QIJ,[kcw:B*a5#XYWmB8`3Pj +d@1sSRHl׆=d@̟HZmu$|Jn=[h1'eǫfܼ4g "&aU2k{ss;ް*KRFQ0ZG}(퍜c(^ɝUZHȵ_F KY+MNb羳 +MŴUa G8)S~~q4Bib'9+``z^H.JϫbRdj A[7"|(wZJ>}5;:p[ lHk_sX$!!;d6$gɐB^TBV{i!p}x}ɉ:Lpoɟo6so;+ÿOۛڭ>^8'.ypu_q_^ot]_/wחEmGy+~w? ֮cG<n<${|ݫڿ +fGXއ+ի6ץ>|=s.pV+\aθ|\"l~jM}b\^^}<h:+~om, _m^L6c +7)n?erqw};D9*{^XG/6HŅrR،hB~7E^U2
83nUB<p圽/8HJH: +cZt}x1%#?헟TЗ۹6R{^di?<|Kvo{"6Ճ|;ȷxv)8H=n ݶn?k IttXMF_ntxaBn(qϽ6(7ƃ?l&J*/xϫ?\Jw.1NfO[&o| ˡ&͡&O:7ߢ*ͦڧ4}cwԟ뿟?HO<yy>fyq/r}ݳcOEWo1>PfP/2ɯa}>ſ3O؏ͮg?'3̶q}y3}EÙq_®Kon7t$6cuG)a9=r^&yfӁ3@rO㽤!=q?
u%]]?f>ğGp'O!t'[ Cs>Ĝ!|98Ĝ1CwYw%1_]~vYv]"l9Ucn-!"|U]w>uuss㻹KTx>-av+wp\p\|puuI̮>{u']\=~pBd88vAn=8iMe+/۷F:uG|~M#G|.vfW{~[-|?BkQnY]+t~n>_R98sΜ3Dzgzv98sΜ398s^3y gt55"S_faPE9\x٥96O/?^\??G\e96/r(q8BJp*\}g_NCe]=B~G +СnYD +"7r?9K}@^DZ\b_\\c!{qy©_7]y[
f#ߖ!utӏFHq
+c$)x{IvѶr8b
m\Fv[,[h+|}7ԿlpTOF8rcD؛/.[ɹ΅y1ŌŌn/['o|x6ߋ}E=Tϯ)Ϸ +D>s\~W[]mq/_±|qOƿǕtPAyz} +՞(뽉FqP^yppI>lcuX~~ss3u\vg<?Lg;\1s8AwJ't\ՇK%wX3OY +Hj8]$kܛ6|}t{Qڸ>mׅoo졽}(?m.h?n
*/!onK|^|1SdcPcWw,_&"pk}7`?{fxus +t6yݷ-{}}ݕu~j5?8|u;O;ۻ?PyqvnE}*PUwo^o~p{&&i>>h;s<'D4ާ77;42%dz{}ŧuݗq]eR60'B~-O__z;o=W?wow +Oӡ؇np?44y\_Jjﭣoޱ+8NGӜtw{uap!X9T8:q4PNc7\ySs9>ɧǡݩ;/O!OI<pr?/rcW@J.Yb:u;'tH6]8
]AI!wZACo)ì
%ן/9/GrvzawZgK]16pi5q8Q`~̡X)ݩK=4P?V{Tvc%xw_)+u°u]WSt)x}g<1/O]LxP.w>zWr:{>jcCBT'W9D|+CWJϑԷ\͔DPTN0xf +'0X>}N1l";[\m +.< +
P*PRӅZ_+`JȬU'gl,uN@]=&!Q;b<'$@6N7uV^uq㘇\U( 9`12B[O3S7Y=di|-fh-xCwԳ)Pa \e BbaM]寄fFʼ$Ui9IfSps-TZܵUOI]Udv:ѐD (Ow(Q%~OQuCE{}/{"4$)#T*bS8*:+81RYZb|?kJs5ħ*TEC/T_
ߑQ*Snj5G {pJG0j: UqO.4ιZzNiHb9Y^U *HܼuSpɥi=J"__ÝP=FJsʴ:T(` +PbVR>{W߫3eB%*dt5}1#[|@^.QnӾnq8[dpF0s\xhurR!R&s=ȝuVs +k!fQGk圀}awy$M~'BqJy(E*(v#JĪJq
|Cɯy!}**+ё+rv<QsWRLQ'iS;?P`7tpאI:Ao"f`6Fpv40
UjQ,z!ܑEt> +ԒK +-SM!cޏ_l\[,U@"CySɜjĮ\!( n 0ӡN<A4,#TK(D/c`]㓥9M*x&~=LY*~Zh r:bri cʭbq\N+fl4É}\<iKU?eR_v]EOBnX*Z7gy2O'&3ju~A~(L]4TbB+Ζ/gj}6#6"zXq먨S!(3=5Ў9]$cCL^!7UeKLs.\E9 +n]hfJ#jqUiJ'N=[4wy?nsqsSrdqEǸT#
)bcU bֱr|Rԓq{p/: +JL۱u_-<$=]ņ6ߏ'SOLH2/DFk]@+SȝPpl S7#P2£FXxg~X/Ŭ^,c-+ј#c"<)x +VO=N2Z%uwG3¿dpܪ`-y(z'/V{[AA0TU2q + +B\(\<릯;R h학TNzy!UUSQB>C6ꦴC~2v˂JQB4\ ݫM<ఴP|*Kw:m6#(ٚ:AG22!yhcZD.i +fa[JG?1WW&+䙪W05Ĝ%2|;ZqDDMhÒMb{0 +%ѫ)HYe@uuhb(>S'}\%xKK\G6^95J6 +b;Wlؤ<?zzݩq݀*Z܁ sF;l +hԈosUV&WYE ڱ3n1*SA]gJzhO⟔8x%&ߡ_ +@0jm/sch̫
Iˣ5J\2{e*)% +O2IJ
S&TkYy5X%^`u'{STHAƳzH"~i(nCǣ]❙r~:Nz {U"Z0*ważP^A:PchQ4"h
nb/.YDYi=Z]1 +C(\>c7f2wRh
uu.P%Zb
bSXrȢˣ5509l-ddhm@#dVf%aQi ~Y)j&)Y^FfQ%5n2H;-l#FsV&-و? +#*grvB<wtVWZqC[CR3J= n)ZAѬAݪGdwR
V77A,A֜eLxgks6*QK}8bi$.9H. +c +<ht"*"Z $v1
^<!EzTaN_XP 38=^Qx̄:@PEte<Z$
PijXq>M +:#"L41(0]@ TZ9A3$W^-
=x-A;hF7ʃ8/&|?l1DauP?k1'{e1tv4=C +y +Jj<g]r<}h^DX=2!_YTZՏ +R$,VԭA34]CΉE,W4~N7,&vV{}*Wp~pwK"5IRQqpfRIkS)OQudŢo&58HEG2AEǘ$a8tQ̏$P&5p$l)ZXziOE{]C.'Dԫ2'<iY! ''+7I^S +3/G,D(W_Zj% +=7Gju34ϐLX`m# +Wv롐&q"Be2pnU3J#wx@ +gO`!m*h r]Hakg6"A;N21ZJ8, +8.IJshIrN$ɦAx-@ +4Ziqz9S8 1JP#Y[C1q(cf +bqJRJc$ʸhI#)8y=?_M@'<Amge^E#%i9e-c-qԇ +!r
|x +c^IB`fϗ_aG:I xaHR6d*lvؓ$4H)<>r쓷J@.5A]@<3|S+6MHFj|\@QQ9`,NǼFfy0%B['
+˯jWƽ]<cuj"9yў,ͿݐJz!r'~{ + !7%[(OY/TR8ȞOr9+$&Cc61T#N0sOeL紎g"{lΗ1zNT]pǤ8 c2gi7+<'|Ađt"ilPt"-{&=|K1_K4KiW>w^SGR4if/Zk)ؠJ_~?}x\/?kόӿy{{}wxw__nFIբ +JByY`nlU z}3:w0a#u8՟Xp0{2nG)"riëwuN|rbG0Tw|p϶͵"8wAjO!O<TJFT=vxhm?3"*2W[=$O+,/IIHhH3,pWx2d'N9Yu2ȱGK_||vT]6l\6tLť4Mtŗ5xecYj5|K|I=ɩ*~fw*xhEǿ{MYSs/
|>?_|~m;_|~/ ?O?օ?^<>^=.Wr/K?6+|zOWUz=KܲzKAJ)$lV~I-xL('J1%F9'eF +[:=1c>8R{F긏ReB ++^X$Á`ԅ( +JW H?2w&:;XT C4
eHƄRtB=1!
١@繣sKĉbqt +_bGeU|ӳ>E=D2[Ys
9bMR,pb pvEV +rH]QXd! .?^^UnJQ,F^@fN1L`g:꒑\HIPgr=vj*뤞8*?ya!Y +HrJʓi>y,%(wK b ÿr9׳;+`*QhOEqZYLUf" 4VM^-#3:Hc"qПbmQJ~iInfߜKJU=B@
l%0 +w%O\#yIjda[1BL> +$+NTʬIA+ը[\ v͔~ +7˕̐& +$]n'!DlK}B-v16 4B3sz)^7 (UO:ىT& #3zh;S&RHFD420͢iwH C4Asp.g +p[;2#DKe*3Fcr{(5!~_)܈NzlЫ\pj'V.XmC,~PGp=@~Jj4x#C +9G&B` +YixЋD *ݽ.RȒP\hv+:`֨KrW[{XN!(k!{5v&s:/Ç-wDٔҥڐ,,v[O3nMPZuH;Rezvze=->Ag$TjIrCJ8擤fǛq5/AɈ];7/7^YN+!y,3&ys4K"jr/rA,=A9Er4ٯ^.Y$G_X]3vN%Sx&wYJpz);D ZJBm)sUGrx:tk +eI\9Z])E!q?8R0K@wZ_C,q
p-E6l,ud{V=#hs6c:˳g~zʏoޢN/?JRΟow7_?~s<|qs}y~Sy9]w<,z.Ώf?iwCbT7wV8ڝ_?Ay|_qG'r8e\VPCB~kueq)KcF*>yӧN?.iĜ" ^֧˄ȗɏc/Xx +---ں~Le?,\]˔B}p`S:yEp6\ ++5,h?l"Oߥ)> R$<9aQ" +1K*<Z<<8mIcmI8$FF$pBv*vЄPx!(Sa@Z(Q+ +I\zBS8bQ90/?BwGJdքZRIschSX$O0Uvٚ9"1BL/y@n: !A(aS"L[*M@E$$Rv> +!cB3#d
s4u|2I + Q[.1]^K%&B +WF[(X,$s@M/·NR'{,e@'0̑ 1 ^x/2<pbPc@3!tӍCITr7HglາQ[ƭ䤚 +U3+<LK)<'*\Pe~s
Ĩ&/Iʽ AN*@#3#T$ MɒPbJzU@Y2YRU1߁ا\m%@BFEH2YC]CbµˆS`CeCrtCZAYr`9Ę\fE)|{OkM!~gV$ D'}T@\ +Lcni4Ѧbwr<=&Ɖq[p
Z*7=$" +,PBs'}bI`+/L8NDPֈh<x*ꐊDÒ|uS +pw3`7fnnvdQbbcj +R>E2`sZBg& +/}l +fjUDU%ՁԆ~ GSn^T""_Iw%+d^[|@Vې]bf .iXqꜨs w +Ij믻 .!u5 + +yT6XN&ߎ"9n>"ѪId3_ZcU +/n<: +gƽY./ngnBt9>p7_jR5/@&Fss#N1:Zil>ٸ#~A|ܷ3@#*ܨVh4\Bj@=R͗UBPinC~K+~
89*.!inBP@Q)hDij16=stNEHD'JC :R^ਸ|mi4@v ^XHxy`VЫ5挅(cWeE#|Js6r-DBE2 +o/Oah$@tZ ^٥H6SD$($3?=/ *:A^##lB*b504A#3Tw.eiSޔE#rG)[拧26HE*"EM,0㮥i41RwrfQʢD},qCxJEB&NLGB̃RƐE_,&}Apm grGSoYc ]0 +J벱E%8\~Dum9qq<ʗޓDdQDeIiC5ЪqXVS&Sig;e2u (1v:c* ++ۙ}ff냴oR?zVYA<Y%>e$ +D0;&"LE`pV:U5QQ3p?
QPN+Ȧ?)N[@!<05XkC)Pdi`ѩޠhOh~ztcEh]2I^Z(t/xBP!2e.qטЁ2oyL`O d$;=V@1=J +1/C_$%bpəӸûK,hD>P8OY`a( +u@):V&Q^)z&A^:ƻfC硁l29H9VJ@DX 34I,Ds.L;,8 g^y!8W#Ғ(kf ^Fcy{` +ꆀT7D*zaDtteKO0k#+<!%:y틧h+k[f: +J!M@(Y]D'iHĨh`R)a2~Xl5Ɖ@wf;ބ"[1&(MC^C1Ą=AewJ7%f]ݡX's@O!$:Fn;8K|[$$`!It +WCq+\[U9n,ǁP +m< +WCq+\[j(nr +A9ƭp5P +W#VvAn9n'T)nVP +WCq+\[j(nFĭD(nFĭp5P +#V,ǭpY[rD +Cq+\ŭXq3P +j.V[rD܊r!!mɡ.V[r(nłyŭ8wr9P +.Gĭp9P +.S +Cq+f..#SP +Cq+\[r(n.FĭD誓ˡh6nˡ.VU9nFĭp5P +W#V[j(nq+\
ŭp5ȸca[7Vz +tk0$JJ/3+:KV:WCVuQEV: +ACVz;YJ![Jv{;lHrٖCV9+=JFN%h ]o5hЀ?@Zg>SB =l/e"V[ꊊ Иj,uDrԕLXKڑ@te@Ky>vfWH1Ӱz;c+SC:^zTKh-uc@[,]Eh,uXLZga"eRz|r<,W\Qc&L, ,Y +gM2;= +4FY=l(ތ7TNHn\ +3) +BBX)0|0ip89(={AI9'=kcj9~DȩRD#dw,ȳ)w=2e6҇BѬOrDح:P2VB22^DG +n +PsbyHp6uo#ܠ + *&R88%N+3eFPٰ`E@VpymYu&PJS^ys$V/0) +<_]ȹeԁ9/rn;`c9Տt {d&)9%21@Sľ7ӏkj32 ^).G( +>6*ʁ1a8s\O:́;!AA`);[gp|Gѵr[hp"2¦¼+1ƴ4ՀѼyS +zH1z+3BPT0'.sPIaN56;nT=hI
5al
kBSs~GC=+C[F*K咊ւh͎=,\ȉ0Pnшbd9e\AbBPC)!hW(a6 +ci7(捂rƔ
IXrj`eG-@3-'@s@rx0!i/$;^;&:>jԗDHs̀a++Yf +.N!A.ɚg}i])ePRٶF,Wnh4[rNiinjeR{\'o9J'B6\'aU]=/CmpFo05;B=c2Fؕ6Žq+5'01lY)웻l#8|eehҿOl6Kcg#5b1Gv`!bgBө0)C$bz () +P_`c!;ok1)t
F~+^Wɹ&7۞z~=S + )$
K?1I% +, +eʱ/ʇS)D`1ZEboq:xn f<ű l&z +^$KUNOsIA9Ea+M#J-FOA!E"fͱқ +o|FJ2S_N8[jO9P}F$@ +L>L L12J\@4J7PT) q&qi_YTe!4ȁ*
0 +.CkG4i.+#<Hf +JDe71Y}Ȥ!TABU}¤P:U 2?XI<\s(t ?)sHx +8@ +B}3# +"oY2 +t"@tISlFh`TZп"A4T>b)S3ahDi3Z%ҩ4 +S@ =VIh1т& + F)eDҠ +XfFƂqrA 1VDحg(A.(=pD~LౄZP,>@$R͔:2IpK{Enw}Q(fGBb2CdII\4
F]Hm +6%R +_q>%BB*W5\Zy%mdprhg"SLG)ԬTPxX& +9 +0M)&Urx1J P +$FH3hXٹ<<,082)'iTY`UIa@8:P7-4הc&:jDMd|ZP<)Qn@B(P!xTc 0C +s1d éi># +rR@[VܔT䖎3,eBJl͙d"ݩOg)*|'L2D +&J
>!|xXaB<K[N;0yoXF1{I/8^ +JR|J|QLj$_i4;չ8̠ +`+C"ۜ#Ce@q2JR]UgR^6)@EoDJI iΘ5-궀k#x$\-L,{]Gl5)i wЋ?TfT4LH)>+lYl>a"\",x4NH}1yZ@I)Ḇ< 0A>8 -f(,Huq@"}z% +ǁѻJP1r(yU!LY|Q +L9$hp Qᔹ1E{r"Çr+p`28ܔXUMam\N"$K)?,{&NJF8@AlgkgͲN6Lrel&&Y8JȦ+(?VbA#!%$E)rDzjS6 L +6Mʕa!Z9ө;R4Fg9#0N8:R|! +aR6ԻKJN͌T69)Sw{-1xn0$ZD8mEZwmD@ITզ{+(>2@.'% +*áG,AR<&Gvi}=8YaNl%&U^J+mB*b~<;]f +4d[,a^1!"#)f3ђ!22aInY+|P&w +S(.Z
3gVłyL1h˱:bih9OS4& +zV-A td +JAȑ89
0=~B^jbѐ +i7_! +nLz cV@c*"P +Z+<^=aF +#^Kg
,I32G< +z#7i1G,`\Of +LzyI;"W,DIHQSC nHP8)y}oJ+x!^lp +$$-[DaE);B3",9q$:IP#+# +ӂ& XNnA 1WITWwpukSCT~rZ&FNaֱ_PKeUt*NFiJrX>LS85 +x(P<Oۄ@g3(e34+!v 2'F[\R^`ˑS{kSa~a*S䞆K +5Aa5Wh5eDeh t +8+1Y KIR]/7_-{xBZZ+ ~BX0ysVXkZ US0o<qXm*;
+2p6;=p\]t8Sy-
ʳvv8`jb_134%j[W0!3=٠7spLϝ܊qmaVm]
N&۩oKxEosџ_5Smw4ǝOUѰ_6Z5Y6j@2V7M@=j/aoփ tg$ޙozzV|{U`Qh +D[u_l
+eDԛo&_/" PKǣ饸XXZҋϬqK!E*}KNL_Yj2fpH:֙9HLKGg?bžo3>7u~_?' +.a %F0|v,1'+ikg+0^oZ7W֊I5b)h5-@@EdFtҢ<@4ZRI!4v&Xcd$9__ 7i 8k xȸLPʿeWY_UÇ5*;jDQJ3i~$s>%Wy)sADC^гjHV&^kN|zpʇ pzx~5_6mJ!
6f{55[Z2@`+ɕ|ۍ^A0cy{}v6iǠ?jR+^cσ̀Z\vN>磰6;a^:/|2?d+Q<P57Px
_o!/eQ|߸hdPvoqR2!8E߉bw)3b+on4n?7<hs//2_I'C"2.ȶ?g +@]_uZQ_?%?xH-\wG5qA4Yi\ee
jDqStc>LP`^:$6'?0X/VFD)e_鿜IokY;~i?9\Fj_KiY< PgEbj 9j`i΅
= +0<֩,wzF_w}/:RK~yK^dGi ٯ)s&\<zmvݖcWc埥}m%ZjyXԶ6ZQ+C YH8,Z6uMX*OSev}Y3/>Y+aBrHS2:JyՍb(9P +x䠛Y|8 2Dp&R_&$jZ?9-\!XKujDd.ꁶEۦ,S8ua˟k"$"PC(фůz +͐.ޡ3mGfgif;4$n#8(1{Q=kiagM}ϔP.,8GH͉]c8Y!r<مis,p +%'DϦb 072*VS9X%zn~D\a))q(gםu˰ǴH$q=1[3<Xu=G[
g$sU40/dy<{2Qcn(=M6MɄ4D> o#G< Q29Os KA]#)Wn|,^sf +xȹ!Ş-F`FV3b99VfaD +8!ڡ8I3d&SN|VOυ>g! ߸XAFѮHQճ' +_=6;sNN""G:O5Qd(S-"TcwXF%&Rea{,e4HuPO8^ yTۥ'X}fr ~L#)7*dϨ0cWki).V;B['/#hjEuYhͣ6X<KXgȩ6g-rm(97V6$=2oY鳝Y9ꓽ'2_Se8)zgtn}ӜD~i)6=1<AG4EE;ajG|9pj*wn|ѧ +iKERUhFꩶDHf [[pY$5Q2i|NYBAp3t[l*4CdȆena3&5UhU +Sڒaܝ\(=I?` +:h[ +=O&-Z
5]gaYM.GRKKnmʤWdf|) +5u
UijDZcDH@3cısF3,{N{ +;^glwM<#ZUS&C`};{C~w̿12γ۹[dt u6x2r#ϳـ]|Vf0c3ڿ¿3Wz;AaӮmx~
v +
Tk=.=پ^ZGoql/rV5Ђv겺@6 :ֻXBF.4-ߚ"9BFZku:/,Xo4Zkv}^>Mzj5h\zm@VɆux*daoP_דc2A h ٌBp');`v˝3!Wc{|~8Ƕ SXlvn)Vs@c+W CކPf
"lzXhJ?rS@Pm{pZ[ޚ'|FXlխq|YSfSSJ?bUpxirΑ n
ʆZMp*\2&VˊtSS"5jU#'cp{sDo0~p:mq&l:'kZ+/TwH6H ++IY^XgfXeQF5h3%[,{
u;AN%*!ˣiXU^ z4ZW{ TsƷ6k*\8vPk\6^Ν9t\쎻MZk]M8o1-~RVjUr^%VYޝM<Q!^hTQpe+!+Qyznhi3aȑL`$ydj{Q<MK.낃fߌu1wt'l؟_^'c:5f0-VqqsEZy0 +<cln +ϩ5εe6;]n]РNZ/&N
D"flwgD±;C#u\Ec_[[ۿ_?S큔ştMfpQ3<5Q"-LB:Tz]89.'jbu4m +F܈o+:^'f!)L)]LnLZFF5@ <Ru֥ ɦeDiԏ{S?^~ȕ3{S`!īhcjZw%*+_Or z˻߱|zLCz_o}Oczvl C0%~,}%,}{ +hFj̒<7ԧx\Bl6'Uczo8{rAȂP9/, '.bU-ύ9*O7ƌ5Q]䢡Ƈ_^z/~w;t\=ЛXv4bX5-R|ٗ{Vv.06~ጀq`^y +^}P͆O|H)>>G}5 +w&}qlqJnU4.ʶnvG.(S.v(kqߣ;O +vnݏ7j~FB +LPЦ)ضEksHP/l3{5%84Mo'&Fs:K#9}ߝx%o=x6}bPx]oYhH[{+kzKOXz:v0lB[^xnecVhӖ Π~=omU=O'8y/Mo`Ajml<8ntuӭoEq|w1HYFAuxS}wog +chhd~n ow^>K'7!}(
~#i+mzslVgT4'ʺueM7-=^3ѳWէOvm08\Md;zjJ#SY[<5Hrm;~&ooI +vf +^7;ɣO˥'n^Ғ۞^-lr嗴οv;miqoN,?Lhs9{⮺pap{~5tmT;i'Mѓ?iXǎ4MLkL sV_7c9ݍ8ҚRbnj-껭Z7jf{UO5{.`?~|>}Tٻ-fK'*$Pίٸ6yawWv_jPk_h*7&q4}iJ-Dw7ox_z`F[|t)lhJV{sџ]J<X0]8͏מnjVumS7FodOwJM4]?A?'Gw:挊UwנGar_˒cRd/,?Y~~DwV?M^hdNEwj/@F>ڧ+
`._Z9YnvEi[(}Ի<n^}xgjff3xb5{{d01ZgwmOwc18u O^Oz@%b'սjV~i_Kdbf/-W-/<rW&Vl4'ż{~QAwJS+%5/eAkC-_>mЌrn:>^]|~w}/}t2s0xǓ@9K[k/w\?Uz]:/Bqpl~+4-tuO
ߴ:y
6֪^O{ipo?<^xw`ӛAGn}Ꮟ_@9K*ڕ W'+M7Q䃭?wYY?x#^4ށpvGܘޝZ+zŖ6,.^ϢUOgrf?FGF8wk|oLmmZWm=ȺVv7ڮv3GјbFkO͛BKҽ&:Ӿ#||Oﵫ TՇdVv?Ʒ:ХDH^-h7>z(:oZ4%Ef +ٍ3;gznbd~(,\5xg~ɱ}"67bfvG4I".)}2o__86gSM +Oۛ(O4!e `P +,6%ATzo7E`'=/Wz1Dߟf'/U<N<(-PJ/G$ZG*|,R
]k=Z̓KsW./ޏ۶<vQyH&\muYa @p>^Y9Hz/c6͈xr"o,/~&|mm@-}>Dܚ%y^6[|Ud@l/okw77VsfauMjXɏdV8?#4;qGǒ?]*tGxos4"|y0R<.n{d*8jݏSтƞ'nI&N{aJ45.B +.z7[}~6~u>ػ"rDDX?'b^tpiТ^Z*uqݗUԞODG&#[vW:i_.2b_FAaGK?<ׂ%4=PnwH-zr-K:QzJf~yկw(rRĚz(eDI&z:p<⟍@ԣNdbi~,_Uji\Wnmc| ofuS+wKMOvKNeUk{Ȕ&3wG~fWoL魽:X̔-Nzf6^_ͼ[^X]S{vax~|>LV'?UjK'GԵC{XZ(m6qT6<З6_'^vI'kv!GZ~wLtSez+MdLxpXŻJRk=M|#|'>\;=y>:J^;DvzG@#L1;Բn{Lv:bn_rL/Kp)Z4~~Ym=~ߌzV{y~c6F.\^ݎ"vE+IY?ߍteݍ^hz:%{jI_Od'MonU-zߝ"J<e:?NNnϟOt:{h.Nf.:]1^a$Y'3//ѝ~\(N?lFuZޞuѷNko4ᾏtİOOc3:W/;]B:1a yWbӻtruz4io6t,]}hl_]m17.c:mw7gq.[c>tJXYמڳߞmGv3aynxvTy1/ٍwGBdNw|NGѝnzTt٨N Md_c&ifc1ӭ[N) ?rL'-{9w[^Sjݞc')eb:=ܳX̞ #ݶy;oNb +q%{9kO[E_.,1c\:&䧁kgVc~Z5W'^߬'?۽W.dۡۻZ߹b9OU5b{XY3姡q<}k2OAW;q63XKs[W3Y'~2n؎j/Mgn&v?̰O*AT^k/m][oF.G.ב?Ws_T\ȔCa~ۥT{˙'߄4w=)sֵ>='z&M<p`j: +"[{ofMo\UPE!M'F9ѝb;%LgM'S:Q;Yn~G4sSE^`z/tiW[mNAD?gў4S2/NA/:$uiv +2b_ڪ{xpt#~ܫ؏f#tt_ؾcb<!^~V4oό;S?ٸgp˔uJPߟ~,N>ĴW \={4 +<ŔP1e0du@[Cu_M2Řet.*=Nϥ<Qv2us6̻r9-QGxe-q-s3N9.)Nж d '`xo(u%rd+W/q9k߾UCRXxIƷU +/J'),-k)(LX4bt+tNVz7aH3뱼6O)^K7b[A' +d~mD[C6;vSͧiLg(ݎ{xYcJL7Ju} +ݴ=~Dc;&-.Ĺ +i!Y 3/EۓkH:S$XMrea +h̒3]#ytiME@!j0I'ǶvN!JBwnGw4/GxAت+QBr?I//}k|ZE,7ԕ|l/ߟ<En]MZa.FGWZw.DQ509yj<'^Ȼ G'2J-xJa KNx +A?ꀝ4/qE`;9:aR|%i/qYJ*'xO|W,W)C^AƴP)BJLȵ}M7)u2h[XFX{ԓƼ ,$dƚ݉11t%+lXoqGp}A!p1ЕluY5lϙR<Ѽ:ts3& .SȠ2.9N'.9NȡKΠӲȡKΠK*.9C=[w]Z,̡KΠysaZc3.)i]=._j9#~#i-Nj:nb0`yӶ+*x|!M2NFǗXrV[_̹\~ҫ)&*iHQ)sYJKEk 2BA0~,2{q*m:,m$e ٭av2Y~-ƘѵNniAK jI
Y +d3hC}f].w*+/>S}JuY'XtpxzIo"f{XĊ]Y`(v{EUfOMOI1ԗ\ܠfR4ׯc|(݂~iZϝrb6NX|etX~tk31M4CJӌ_wబ:#2ɲ!oXPߎ[&i.s&.3sʞ:({WS+{q
c{hSiFTV_H
0hYi1J\h'ȍtHsNJ.y2RK(bHN֝y'BUBIC\gDFr䱵xǾugމOF<O_:XFD"
IG&r1$Isg.0OCJN4`J)IȬE(5" SXdCzN]1(z@!!4^,2l-24
-`H픟W"i_O.9uQ.,oHa9>n<r)6CrN`"躴?Z1Gk:IC1]/4,EX(t!2[S^]AUȫKW&d +w6n$RЫȖzµH{)yLL>e1up%.* +ÏAgE>\RպOȇ{>
c
:.Xw3ױJ@4UPႺX[fYOb"ISzLdl&&r!ULd'y 6:3iS&$Ǡdr"b;S4\o;+gD<[OcgB@k92H*CXbY(:Ǵ0L|w/FnTvOL>2ig t\c;%ciŅYKw[aM>K.QN +z=OD2#2{d!o 'OH"#J[DF*m']J +0O .ǐLthY hD^pyeNt])uRs{F\erKK ,oVӜ2hJu]G"c2LAw}soK<z@+ofI^yQzܐ"wϹ<ѦigP1itTyNJK<90>#u~!%!찋 2:;?}';aDhj3GՆ|cb
E6UxPcHc"
$W=Q08[:5%kgVB쑙s١Tqg@kwÉ; +HAưh3wNnTv<5)z,ҥxDM<.n )qDͷA`H>"Nу'.@ +ŪHd[,Ep?E"C*|'ʸ3zaDpEVww]Rc0p7:;)|"qR^0L8NKJ wI3?.mUsbɓsԉbHAϦ-6X~D"ӡs@7C5"h;ܲbۉυ
$1t*3uĤzE)])ZܷiLi&p4iLCvʦĺĦ12vv!
*$1YSAW$"zvbN0<`9}TA.T⫊Q:2^;\iC
(04U2KW=v8)cO"s+RWfٌ~4mujwYZݮ3ݩRZ +8}>ayw]3PV/'(#iPvDe|O(66@NtR̔T ZlgK*xXΤp")ѼsO%Z*S[˺gK=Z*4"Qb:i-Zq +P}Lp^.wuA<Y|0z1.||6㋵ԞBw员x`wd,8-9+:ʐ/7+IҸ6$%Tyv +xOʩֹJHtqΉ:7C\Sfh):V06 +tPA)_Q*~jC}h
w_wqJ|_O"K +EkݟkCp_<s#Cs:er
Ƞx߈ѕA7\G.z>OHTN +;~&o,TKV4jǍښ3n}t}fJw-8_/`|p_1Ge;7?Xmk_ļ+plf/{%Y9\J;+mWeQM~8MbWghc rP cY]k@í>VKG=;OѱpTڹȧ[loxދ]̷l4Q`n9!3#ӷh+-:dio1W{7<)Pͻţl:cǮX/?9y|^<po7w?sWT)Z<Zs(#ϻ=z;>cT<guD8?-Uhƃ{}_m/bh.&n0cG5+Y.>e(a ++>\ّD8sqTlғ8ok|<Uxtj0ZϜ8W_<sѼ_=]^=F'ʬ'!aXE ljtS0\R +Kve7L7[DmQgqpWU?8{wJk]0:F%Y+Bt2Kl9)!:2_}JRV+ Л +X"(jMiՎX}Fƾ></ҐJ7s {pq7wQMۮ_mЅpTj8 +r*c}w
@19 cHʂ1Vl^f(ayőyT=FXBE챞HF|=DO{LCpߦ +c7o +8z*Sq䌵x5ᾜM1`2v&ǐQj4 +u_#`W̉"X]O-CgM.
t~*^^2V/jf}qԭ#Onl(Z>Sܾζ@:63E8A5uXǼWuXʓ0ZQ߾S'-.u +&Pǽy +XT0m6KlQ,gMaِzsfXQU+hQa5?8)}|^aV}a鶿iZt9[d'{*E8)O܃f$Rp d4OK +O7rAqT^^Nވ<TRW>wOxbT{ԡE^Z,>Yvwqf*l*<7b0eM<%gvy_Uv6ձQWgFե_?ΖnZ,yrw6u&wەklNxg%,w?>z-5q{VmKcV^ +;`pUOX`݂PPdRDY-?jZ-so5o{W5[zU݅S:0GXo -STA%%(XլH?(< -cYPx[( -OVӨRPxtMFEjhXPxښ|Qx~PxUUyGA°SX#(<2 -oSPEᩎ£* +_%p:lNwէ^ϒ";eUI#{
eKEUVE7 zBKH/LZ\3 6[]\|I;m$ +^sa!?%%GTB%E:!T1m.|f-˪?^DDZJmur>#4GiyKqCOs6rc>țW<,tի_@8m9ow\$,`ib>}/pʍ,4Ruoc]*`ypNؚS@F'ߵ}j +<B#P܇;S!1!n5䄛y琂1ծ<aTciJ
K;T.wzwRc;1RN%
t|I1b?{O7_d\"`s۬Ud{,Y=f})bKfiQYj}~ +|i_*SI +2"fs3<-k4@x1 +m#icT<=;A$kUpVMcJ̚}ܕScOK BH=@-ppȶgĈAK7r0;;o_7/yߦ?긭Q^'黛W#Sݼ1Ϋsϯ__>_>hu8NhsmQGϝwѥ:}zvtatag'?G{g]iy-EҬ\ jWZӮ4&[vmrfA:yߣ=5z|jnGDtѲӨض[!ߪ5G;Z52仮Wo\Rk5=^s*~[#ᝑv5*\yy=GA# =o#{#7#Bq݈Uq^2#=qak9d?֜yǮ8
Q +
+}qGo~5W'1G]!_kx$ +UKX[1hKt>H +j 4}ɷ9HD"ؠX);"ڤ$}yJ?%r)MhHF>iIqj^߳.wZ?ݕzdC. +LiQde& +6
+@z /yMeT*Z'զ 6T|<j i`5l=bBYp[|K` T\]#{Oz`Zt)Jh!d#+ws)ШϰQ1l5jJ
ԝA68.{3F@O9Y,֡wS;ztUz^?˕vupM?'AH#a^4TBJGH_4@LmYIy"^:Q*9pOV+,*uX@ ͍_%>hH/ +rxLQZC)&z^@WrN/S4;+d_TH+n`& +9! ~ +81kfWXEX!GeR"4^G`BQ) \G]^ +31 2 +
EwpwRA5ٸP:wIL<]!]whlBDzjܑKAD04e&Z+PCbP*vp^ḍR!C偘dtl@E\ +0nZJG!^R<[<]Q!sU&^&`oDjؔ06(\6
))-J(`Ydj."bJP +yqH4 +!T9#(j4 +ۄc$%2n_-{/Ij@iFIchɌR<uQд"Y"u{ +~ +a $7hb`L4
7"° aak8M#͎S.B@O`i
sBdYVT؆<ufooSiSM٣Bf=6(c += C?!JY!%86'}L]VyhJ0N?6rz2@^y"Po|J
C36&5@Ase$HY$ȢYHiJ ung #e>Bq݁ƍ$XhPh{!ݑNIOQPT5*% fÀbH]6Rp?"L)0tz`ksUe96 +e=mQbB~D"70$pib + .n͛Bś6jXXI"6X,Ąʟq0롤aX1
٠g&gMJ˸
OFeEG^h3
* +
- +Łͦ0&(0v^kZ ]q&HHu0<PzA}aeUx`F'] :ؖU9M`Q".b+,E]Ў1^&|OHR
vTA(@ !u0 +0 +{+hUShTg* +K[,BBE;3D]1;14i/BI--lr@GCZh&\zxؒjRh}RJC +&as!IT= -7 -<ޭ$NkZ$@o8cRokG:UyB"=x -PQJ:2=XwӬ:-?lјV"cn3U*kiwmT̪knUb=\U:ٜͪ7ͪUNJ:ͪkM -N;|c!ɮQukTRz̽ϽAu4,Y9u1ug)u9BTph:%ވ:9}vB9\]k(_BmjiGй{4Qt{4sQt[3.~OEp.?Ke_"G Ï6O3N$avtmbhSJWIv͂8:BDD`tKv@#IqTCTos薐1t[t -KEy4֤V(Cp_Fኼtԝ2tMcZSV4obN*KEk
oNێzFym<A.u@ -")Hs9w9PΘƲDto&Cy6N]J/k&:4=sPcĴ> :8KnZeiy7N{:esc;@}[ؔB{ᇽбUX<m?Aǿw.qD_V-Lh?t9uOg{tCJ8̠b0XX[)Ⱦ%3#Gt
*N4x<h97봄fL3Pu1ldR2r궊k7Eo:N@9n+A@5?8rbP?Boro5 -TOWСD:au䶚
;<-, tR1B'@fw+:ϰ=,3y*$TR=Z.dF( -~B(S}tm t[.]zDJ倓;A`%;YgЭVAϱl9Q?+)1o=Ag݇PR$Q6ָ"v;4:)qA1})tjrDb&uQ}NAKJ"m5tӟ{AU -S@ѳsfЙ͠D~%_+141٢(t|mUdVAx}Ԉ=1#6.CY0tu1f6Nj\S:f{ Cԣ;奔a Škx],@f5ôYF`5c;ʠbYјaqsTߥ8p:+CA'͆R'!0?0Cpڡ=?'m$4<. >ƨ×"WKsTCmXf}sjgsʥ17uNKL=U:wBj1x6rN9snfԫ_7㭸9o$EԂ5[bd!vL2gNOřk*<~a<9gɰwp%9)Cřk:yzw[9 63\ߌkt;&
FV\jXIa}8sMBw3J(58sy69s|8K̙O`Μ-gn 35-kA^DZ<.|A[ɴoN۵{k+Ů@4㸆O۸$V7̰nӨxM9ԧBqLXIe(\96nE삛 -zec#װɼ ,g?}:F V2nnp'vڍ&S)i{%@_Zys>o:8on+7U54QSkI}s͛C!ysRm͛}+oiĤ\tmdRoN/d@rQQys6ґܸ%l\HE,
hxr^5#Gq'6jNۿk*jN߯j5r:|ΜَQQsnԜKrԜ騹4ݠQsK)jigQBSh(=^5 -@ʘ9EU,ꔹ;>SKw1GܐbYYsn\u2_nSl.}{]-3ld9{H,'\9}CQ`p;mQ)P9 -څI9,9F 2W"h66@N'2@NݧO{C5 -73͐S>XCsޕ!(5&CN
bF!t )8frA.PrJ,? "GBșun"5j[^ r`-4Cѿ]!Ge!a@cȩV< r5+DN$D_D g290'I ҽrY rٴ^9> VrR_.u(>ldQ2`aj *@NU /D -ʀq(d,~l GzC%0-\20:ZL@aiHE897>Ԇ -}=|47Bǵ7RG -]_}KG L7էP0)~藹o=z'&46ӂԣTU5#ߨ;<0mreyQ9͑ -n߲$Iv33ʨh>savSO8+v6W{7nC Ì<ZYnqzz{;1/;R&~MsS"SQsS>F$7)r;
WNf:(nscnRmLpvm*Aiirw٥2MXgtPob/XeQWvot0myyVpsP'mscc6Hmk -"al[8L¶i.aHZ6hwmᶁ<ƶilmɖf
l^o[*5TzM6PP1چ[mR,㘩mR/cm8~MmbTڦItlj }\y_Xz
UIp6 ,694LжfAQm6)[$&
b$Aۚ.mSǞ)6rH6껮6-жF'2Mh[<hv=;jgR+mR ,nV
m?/2M՛/m#v5m\3M*&mkrC -!)m`$2H#m(fj[#ͩЩmJ=c5ej7MOyσچ\]5}nj4/DPeRLԶ6OK,j,j[i_m
|6MgԶ&haEl~;f3a$RVmMm+-j*I9XԶfRۚ5ֆKM/}Vaٴ۩m|zn5.aQH~өm 5MJAm0vQ4X4.mr٘mPj[2Emk֭By
*=6;نJ~0ۤ87M`6 -4^?&-ﵩmWŶɖ3#MCm#6?ƶQSdۦÂm$9Yv/lHwƔmSVmS¶fa
m#>1mUlVsQL6пwŶuƶh6δN ۦj -l~a-ض\1E )4ql2+f-6oáj6њ}FM6}[r{ƶ[6e:ඩ -Mck6-
ަG*oAigki@>~J{4*7j`58ͲuݦnSF -s5 -imZ[e۴g۔ǣ:&4:C"+j\6!h'oF1tg-fPq:
DNI5v4e@T衁:
E% -nmS1_BZ6fE6MfFZ1x٦ERM.bi8༌̕mgr9؋~چ-m(g6ܿo <1|}p[ -mXuڶL KCvm~mQzm5
.mC9OKV -Kmjux(PhMM٦^ܔM vlKBBm5mOg FSDlSJlKJK
bO6
|@!؆Zm(&ClC,6&ClӣTmp
@Rx>N+
ƁlbRFcߧ^;w)dQ6{8MNZk,d[}̌H&ͫ"ȤY#Pgldg*UmR b@嬖Pl#xWUY6-]NFlr
wS ۚ=WEldh79U6g;Z<bk#3]ym2,XK~"+xm;_Ӣ,$^O_k8kҴ+6w<Ful]m -xeۚDM}T -l# 8mݒwisY?lkÁm2MwkBµ-1hm4 L6$&'Z6gq-X{VVf?hզԊ`2
s{PM}jc{cWޥX,:ﭒ.jӾjJ6r$Qm'B[PѸ:N6e:m֖T'f5hmҥ 6I~ܝObZu^)@Irn֦00Bk#8l+c;6"sV\js)^J - -/dĶ9oұC{شrbJm5@lWj Ms&6mF6^lO˃xE`7]k%Z5qI}mVq1{RZQP p8$[ZbPajZu21@tJg}ҧw:,05앴B6ZkV2iT%Q&9jPJ2hM2uvELYϳNY뽷7OXIug[voĚZZc'd`vovDܢW;?Uch2[mNjRjwp$lX5T5 cU㗵2h`K#洞yTۢEExqj4U5@g&:M
Vyz,>8]oߪ#n;qV`l+|aj]_#)nG5(;R2Jy{i7.$5mYً(5U
Wfu~96J͔;'0ުkPXL
_F~Rӿj,VG$5y[,$5ml
ѬN"INRrQ $fR1!;PjE(
]Qj$5E+Ijڦ=۵I-)flFSktHj~ƳAj:RSh^RmRtB4gEZ^ 5)tǘ;"Bf<@jJXk䭱i!m(@jDGzw@8j=ߕ֔{I
~pTg>ਡ`}\pXD-qnZST~<O6A>xQj`Դ1#h=Ўp+;'DRjx CLE i%HI1pj(mLSӧ[45}ѓ-0iڝ8(Mm+ՠ}2kLS;ɂyZ}MMheZ6MY#{sij P -I4YiINSb͜@j,Ԥ85z4NAt0©V^6NMWqxؗLmiR#~BBsFZ@vf1uEGcm!ԒCjp;#ME
LfѾq')`)K`I},rzQs8` -rrSB:s{X
?FL*Kn_)RV'bC+Kg`iAb)Ȋt.FhvIu;\m}q]Sjpyman>~:=wPH"egyw+"VYj -[`aT",$Vwfi -=We
KUb&*RY10%d[ԜU~lka As$52 z/{\ql ?a]_d̶l -%A:OZYݻ{ % -DP$I(F'q4^ѮOV!nOziHiZXrYIiO%ޜtti4usW_q~{v~}:Qڍ݆7ҡN5x^WokG};y!G_ܞq_ӨϮ_}]g7w[{rsvzj۟|ɻ8=NlwO}'ozWHȟ[=_/EY;Kcs~Z -nh{#50`J"bg4z䱑GYeyQ?o}3yllC^#0U;|{ὍjM6cz#y8e#7 -aOUpuO/Ih[pNXqR/L Nu|? #iȘUȐzˍ}\/46*GA.t7!'l -;]yR&x@uwAwy}9QrЭOڦwmzXMxg֯ù}CŖdb
P%}<}r* -`CnnI<n胊Mw͢&!XCC6jQB1;->@Y#Jɬ.LtQ1YZt&;gCs(cj`VDn~}:J -{6k3֢2kFT -ij$3g@cE2R"fՖzT2gmX{QMfAeʄ17*6 -m0ڬq89ZvjY -)' uގ^/y0bLOpց6])ְԈ0)0Ƨf1ooIM
g0{ޮ -h`~Xpc;W_A(x(\ 1KDEjRٳѦ<%qLkTLpvf41e٤L71)}u,C$0
"]Hg8ةqbSlfwdƣO\4b!'`Ͳ˦ܵe"c(hL67bwBӀ4Nryj7M)mh"rJ>L])91OrvՙJnhgs?Sɝd,C`$<XuHڄՖQY<6ł=-"E!fZ,a3y՚ma7Xo&ǍGTz*,*MŦoUhb*PѨZBG -K{iahlv$xW_;%
@uV&{Qb=U2$$v1 Fe^f{7
M+2mFK#^{&D/o\Շ<f!<>N5.:0n:MMlj9PmgKm^@ؔI,+%l#8*foԼ}2GwN9QWQBŢ-ExYh+#$\GE^- SFdn)zHϸMJɼW2Uq5A4}kf|aKl<HeYΟB4GO6jjh_YpYW͡iit9Ӊy)35K`7v@g^$hIF41kV5Zj>U,hܝk^abj@θ3bβ>;裮dcϏ5n<HqN5ds3IpR0ِokPʞ5g.z0v-5X(B cRt2QPtD'k2|cGQlS\ERyEH'X?C+~P?N}^D7t
R
-Ar,<b;[@bނk $^{KT47feT!- kWJuTtKTt4{C gjЋxCm -h P(@LJY[Y$b4,Y!M<[ݱם{l)^!Di$ o2TMjoVȧYGIKJFԬ6;L#:Z}2b9 DP -*mE!kO,JHw3VJf2~3>[0]CqX`_,αaE]0JgE\ᖊ``f{&l͢mzBvH2/|ʥBu[<$B/)'u@"s8ʄ%$~G@fdfd%D'6!V4FЌ05u4q
%IjT`?"gh@80Xμ
d\4~ή>ՓyFȳDJ9pBB7,u6xٝ;MT16ni%[kzL -⩛r@ 'Wz)5C%D"&`bO\!'Bjȉ"IBdiY(*+ݐ4C=jɽ!\cUH4 BgK^8RWLgMRT[6A&aaTЦFފ]0pHm$٪Ҧ$'ߨE "CХ6~UP ڼzmD9Dk(CV;#FЫIaAi -hxMxb%7%}oI%fKBtR9qmClā9OT$!.f+1%n¬0&qI/4rAK|<ث4줰ܙ@*|٣vBubm^[i -ZNCKVWQi -1FDf}5o;@!VUT^bhl
I}6>CV-]l
Z1f
`(PBS%VbGE[UGY3:ѡu;4Am6ͨō Ѵu"BԳ.9--ЁV{gj,f`jyќuqRTzo;Ǡm\$jRPnm/Spѿ$T)QQs{fS7R`J"k%ȉ AB̪d_Vt7N@n1XnSdmAn -RYFЍ`$gÕ&{Ay`Zk75Ȇ[ƲĄ6˻Ӎ=2(>XEĴEsĠG547U*W{uk6P ->=FEI's48Q
FpB \-o'3fZ1?W~P
_h]"6pqn&Ml'ŕb -6$\Db-%xgݡ'y'YZ6B@v! z{v;ŒXJʶ巂[bxa$@>56ǿҞ-Vfi5v
c^[ּY1>fU-M!l -ٮՁGi"Zu˓j!v-H]hZ NjыMJ5`Y4+#GL<i|<2Xl>6k+$DMyט>-LRٕnݥK-=+OU?I[+#+=vI29ĽAlކJc6β,y;[NPIKm~'>I0[9:cKa-`ڡ8Do٪ -rϣ^n2;#:̀']!#sKS;$TJ1~n%S4/Qr-UCbAKeMU9;j.,v50"a)4ee9XQ"
a]Sr˺ZNL!pa96QL)E)ۦڀQ7 -@h -(ڍheA<+$0ıvR -if.
_Azr<N -shH3{e@<Yɍ^A9* wzst\D{?QVJ-
ʯZ_ZYxlJIP7ٔkKzW(c$ Ka.#GYħS_`<q]kZG\sUrKqھ|tg-T7-h4wT&lbҧj3.]3)'mm35dgݢL~ĘE*~$#\p -_rA~?@쥞jQꋢ[r]I }CT^A -G"%#Y,ɒ@ -]_B<{-
!BHt*c % 6Dad՟i催BUX8L襝!BSMXpQYpoIy4%J=Tz
MhܒWz-^ƼJW0hK$;SaТʃ+.fl$̚)gp-)cR^^O!H^,w\젍hj
='EN>+E@g2p!;e+9\*fhYJL"e"Rrt8vz;Qdae_Y@ is<"|ޫ*X - -O6f{*YEK:&uJҘkUnC#/繰|zqI-͒ފo%ɐax@S0 z~^O)n^Fbng%u\bc6B&C,7Xh`N.|% -éؼ -O"0ZogoZORr
ϴţBtGZZ -
o0ED|tm*x٫(BoUo Gy6r,EQ.-Qk"#Ɏsih8aÌ,sX
oECsRrJvt=@+$0rz97ĉ+WȆAy&9{様 \ۨN3Z"d3aGގʩ]+*;ދ 7-,QA-/րPP<9憰ǽŹ+15"rTA$^&V[%d
p*q"vbjMh -+ɀb#;?N]鑭e-xvAp1[܍)lCYd
lؤJLO;f+??;Q^-LˇO2C8; Ř$%eMTlϮcc-Ҽw'8k\kA(UM1A Ia\˝X$옿JS0N2dj˞;&)5܍:PK4QkE+g -rߊfܲ[~PtGfPCYG_$,
ZM459M7jAD6oPG<'H@2?=m6,/bNjȻo\ - >0x}Kz
笅
U$DvfShFͪDZ{JJ.dWh%\~v* ҷr\g,O2Y0N7\)*t8
D[ZrsX!eoN%[V_/7 \~1b1"Qw*1CV
eRBӖѻUy2e7ݮhA L
&0̿i=ݬƹ]~.z1O5T+sHZ#`r+1VsYAݟr?:YG2̈́8S#7tA'E0kqdo^FMoA,'#5_#hE'r'/m@~8ӧ Y v<$vj<jsmG`Rv VkTG1[u+gA/$Bo*WZ -Zt~FBz|kDBcַ5Rkghxy+i߰xN\쒾- b3!gz]\%.,
PfbCVP"5Ӣó-<"ъ=NVn|eI*60ͤ5@]qrE#1B&_&4,m"thۨf`:cƍ$7xn4c_PZxj37ȳVnсH_ivЊ -g{DnՑփ)vlum\98[`o$Pd@J1ysSRHl׆=d@Np̟ȝZou$}Jn=[h1 -}7calvA4DJtd$Gosۚ^*CYR%&Q(ZG}(˭ _(^ɝSZHȵ\F -^|1wWwGw|a{+O}n{O7#o=LJt߭xmL~A'Gi{ھOgu!'-o}{{u}qqy}{gz ~e^l2/SE}ͷ[cIg#Ӟ]>{ -PX"V%˷o{o;%~w[ {Ys^^Q핷tKt{nm6~g&Oݩ(~c_&zMD0m
ay,W~AmUQſ/<c>39x{~uzUˋ^:ł:?&o<jdvTW]~@O˖Ǿ˻V}Cwԟ뿟?(bܻSQ͋k%?4J}Mxps9ogO\}`('\y]y #ɅNzdgxMt I=k7{al/"."w,
K'_>qǟ1'_}yǟN|"#f^pT7'R=1oy.}ysǜ?jE~<a53Tz}=0쌯U$흧;/_y}~rs]ͦ⽇,on_V~˷O<VVyn=%.nۻDzN7GឮN,O=?j3ۛO<'7t-M.zs!i?87[r/G|~AxؙLY߽
P%ӳwD};x㭙P'NOyigWU/Q/9{gޙw9{gޙw'\7Q}:{gӶeΜq<|n'JuM=xngUGV;\cbOsl"'z|sǰG;BGSO zWN}egU˺jx><VO_}w_Cϰpu[_bh胳y0ȿ^yBw/%wM -#EXx*oHqΈsն|}Lw4ŋ{ -ICsבzH=7Ք~O_~g{O/ -촽3DcL{sotO6_dж_gBRiۭ -ȾG*_aQFdOV/䡽ݗUkӳ}r(Wgw?=~
O?<>ʦנveO{[y:Ma}=
5k<G=r/-dm=~{髳{hDk<ݡ饩'7ׯNw6I[kon_o_[1{˻+}~ua\z/՛{ֵ//rOxq}jF?}?SE.T~ORk;=|ĻAl[K_F9מϧ=핧MyJjO3`SW,li.aևSfx{Ӂħ=ONl/{\K!Oˋ/N/gǰG;B?BgG}S?=?ȴޟWR'rqwso߶Eig_{fk;]֦-vM?5ʶCO3=gS?P_}~.ۂ7b>Eըg]ASiCvI^Sy/H`Wq<O(绑~q -Q/bv`yvr -tɶNܵ-;sxy~ۧEy*|wk>Ock<^!7g_Pyvv_ann">{d -!Aox:<='=uZvo"C{":s@D}zyLɇx>|Vw/UV %P c:g^\OpWl#ʟꛛ˃_z;?9q:?UI??_y<}8WSFY5Q+6yͮ;q9Ԟ.w~@OЗt]S7\wcr9<ǽOCc;/O!OχG8?ϥsW:W)8ҕ\ÓOqb㘜!!%Uz4B@\</9.GrrrYwr{Lw#&ކ]> !
?u9"й*;v}\:)ԏJj;a~w?:aX:ޮ]bt}p}ѕBRHuCK:xuq]tTR|#B2ػڇ![i*eU)#o9`}t%
F -K
KalpjCuqcܧ.eSr+b,=8k]}꠲PRp1`ʁuN8xp#,w]Ofrg;rO~`+/Be }O;\Rm τ:#KCVBԢr\RעneȵlʒUXԏlʮ] +䒀AYP,A/~ +k7P#V
ΤX_ +)Qʢ P +L:mOAp,Bh%rL$DQ1vjdir"Yii=CTs +F/𡔊ϖϙ
%V;jѿbh\ٚ6O!<y4pM(}"C!afDA\fN6!Pp׆+~at?"?! P$UP^R%a +;H Dg +1 @Xe/&càHlkܙKEY"!K\n)kp<M9HpN!G :э<B0X kYnOV)aXg*5,i$!eCL>nr&Zw +tFEt0Q7Uh,C(|3SJ5bRnp0S1_-E#* +hAB
+?3pU +ŏ;hp_'\`_t%Oq+*XP$,-pnPuH쁶E@HSd.pLc@
ll6!pn߂#uC챸h^Cb 2<cHy'$ +*TuEO/DfP(H)lyУFQ`]KRi!&z.G
kTWY#,,D8rk
!iAqeVSPzDwKT0`iB7r5nJ7 S& g<\~&T*fviN$DCVR3$k+1r566`A[
=`6@"L`@@U<NO0P +Q`˿`:
!(=B +BV\ű[OKU!yR!P qO->9(7+>#̤3zuPX9!ZVBS'<N}pA +8䬐-{ۺ<LX
t* +fTi@M6ȥ4szmg{|6)<Cg`6h7+-̇%<YLȅ$UcaZ~S
: +M\*4@WuT|:%4W1HR-~ j.]TN&A=p:IO] }Ԛ}/KY[`3Ft
Eb`3ͤT
W` ,y,HA7FI@`!u^6wSb37S),?Z@ +'$hXEκX&Dp(5"<Vse'aS +-}pqfh&즎%@YсAFtCʳm#!VaHu:f1MG +}FŔpG@VFXw¯tH*Г&NQh0S!wRfsgq!rK暟AB
|SAczh"fC=b0ⷚ<~Hx*puEni PF*fdMV$PcD7驾(5chabRMV-YlJ8!lNp.M|5~Ȋze(oF@OS"sFN.Z~ԖT[ 1$Vg_ĝ<4FV92%b_
cɤ&tKfyI$4xGP/:E(DsCp5yLEj,u %!b1#H3AYJÉNUZ͖ڃd9lmj1lvl"Zewcad>?N,?AE* +T`H
,ߐqh&gnkUp_ۖX, +FaH#jrnEX`+&-S!X
nfaQ-$"!( +Jtfa+L,mQEO\Z#2d0WsHlw1UFD`
4/PS̐UQ0\}6]!nPYTQ + +JNRM\ED7SXW0xcjO^f͇13Ss)ks0x +ӎ1^JBh +7=y4#! +üsb#0(sF\9M1=[Ԍ +VP"RQ"d ü+ʊ3v,lmnrrkaPyF\(R3xd**a;/? (4I?GΉnK!T_Os +Ng.zmiR*Jh7we+QkBxjx@= +˪8<Sc-dQ}j04!+%PY/nGDtfЫ> C #7¤j `|?ſϭG#VEΩQ"9fS|=ɥC`xH4$U#1ח +)1(ʡۂ$asg%ONb =sm9d:,"c-PIJXBEj;8Csi%RP1;<"M~!Z" + +U!%dcjE:C2A'*KIgP{Ian)-շ}x8b0!;p/~ؒi$+TY^+wU1h +d+k`BvjD*`/L
C +`bhm-S}m1b`h0AWa3 8
LKčr)MBۊOjբR˥C`Hp0VX{#B1;`D7Z2͐ɥĦ%1z"D&Ȓrux.S?\ +gb
a/u5pvPd!&bdCU1v(B07ܐl5^]fz2TYaQMqwA֘/"j×ͽC)`H
={|gD!&5c`h_a5'Kr/
a$+;S$|b҄2nT( +ėza802C=2!&x,pWE֛TS}#yv$<QH|([le;
%ҨMxGJKGabH0;"嶐aW504;p+ K(CIbXM2<y^DKKD +HatY( +n/r4S4D7)FKtV!0ěx=vDDw6ل3-ob8wqK)F%IHYJaCKIF0ƛK)SC0̹.?ɶHbHS`(ݢ#ch0&1ù
oSyrӯ;`-S%lv&D>NYKi +p!Dfqa1)V%E01[gXA;'6u}&7V6:lV`(hXEci_鍥C00 +`XECayYfj25Rᓰ:Jb(R}yDw< C +kf㰕ZꬺR3fC +xUP(MP~DPc77vYahFOTjq+AB=(&!$<Cpms&;JF)Gu!;O0ϖxCv°ðu ˸b/q(5<ϗfA瘠}vSTYY6 +'˸W~9MC@aIoa +ìl}賡([- !m% $H{AADEP6D "bX.6:>{ 7ݿ|$$'ګ0`%͏烋
C +< +ب(9[ZZZh4Lψyz0~A)J?lP-Rɒ +UW缹*Xo8DCʂ}>Z<3}q݁nGb/ȩ6 +.
eXiC#M#F +Wf&]~ +\AߏUXybd8n0G#cU([[VѪT1W߫2St"0nÇ +H#0420d +!9ɩݮSEH|L%T>Z{NpyEAbhSE4ߕaO(>CQS +|7(&$k~þp5KpI
^b:ktuxYSɣRWͭJID6E1c,̝LFc4a/<OYa(!5deFfnqU(\j*(0nM}uRz@Igejo?G},=|04mþ4]#:Oi+;֧4ם
',g'>C=pFCAΆ)ٌ$Tv +~P"AרWˎFPԎә?Mj +Յ(.%$Mm
U@B6a"^[~nF")20n +sO06 +D[<?
2Fi
)r5ADTʨMxrZ)/ +'haD}GJGuj +aFH/sd46t;0]04Lá*te,#b=)6YK?O!$h'n= +uͩa=ߋ= 54RL:xd_rHiO|21Vpc]t EeJC:HMcF+0dKj[xEHq`%nd^2륚L
DgŪ24]3dU0!7UKd8,z + +dt1Qa(g>Tɴ3
w`FK#$5CǞ3)*T3{dB>1d ˤF
e++MfؐH)KqFSܘv?9??I9_ΣFJH81YB,1_O#eeeaNC-&(|އ]XAdž,aQO5v8Q*즓?FE9B</2ψ[_B`˫P| Ml# k2^F*CxFE*ehѐ}`͟xĪ +jo6!ndDz0zh%CJ3QkUWح\k{Ts.r*4riSjHmnHT0ѐZyN!m܉](6j̶K/4e\TȍI}!J̔TmӅ]>)5lGvStkLc1DqdPI;I'oJF8>2Yw'S ,0400{@!|7Ty"40ħ%B?.ʿ +EmY,U5&EiJ4
[%i9@О!0m Ǿܻ,,w%M.MQݦr5)NCb\ .DXH'-?Uf9R5έG핏SHi#n9"$q+"RIeFw,kfp{
%A~S
g6߰h^R="@]yr><Wcho
B6ĔT4tVQn`ij4[RreXa|ހ@.饾0t!w`y>QF>D6B=A<FlIe*\e/Du닥Ә.]n{:#Hi4d6{ɨ@ s>)TDJEa49TA)*a1Đ1Q%ӥ5kT_Z.
̙0-]TRᤤN`pdFJM 5|!HF'3£TΜF{EЇi4F;SMNqQδ,.Ġv1#|5'*ȟ:jKͨ/qKX(BUU0X-/8_sΜB>FCset8.2l-dQ6E! Vm`K6hP0'RJ0 ̣hb)#y!J%JE\s g3A]5!dW@UtJ)lqrK*N9!n
wXƠZ&;X#;HNJ@ЩCUGd)+z[۔>yB4ʣRP(1rlvT6c*,-NqΙ
K"eo~iJ;˩3*T0ÐCҍ~>Uд@2ImLl~/y_HL\S#Q
=R"s:TG͞cY2*8EӪShhi2 +)(
RFa
XliNƠӝDK>#☾/P'PaY$sL%sSE"ڶz+`_6n(cVi)aiȉ|hϿKdrAIw +-T0"j!)
)&8)Q!'Tٸ#B/03hu>FFsosBʩ-V;HîSS1zOCoi4D5̷ v^#蠮4R0L4U4!0d2)X΄Q`*@/jʾItg2s#[1GNi"`}bxCeqd*06ԕ!LvyJ <d/JWaP +Ұʷ#X.
#vJY$=;yjM.S;!oF7j=?#2)dDy6
6Lwp@ +OTfb\ +
jJ}EKPm}EP=kEpP~ƒJ/&jUXe4tGCAC>fmHJS&hb=nFUM*<aL"bjmJ;@#d+mMׁ8?A#|5\@#aҪ +IVNImT-ٸ +AFˠa[MаK +5!T2C;HE3"<3fFiitMh.$Ǵ֦OܔLhOH
q^Nj>RW@UH306!f-]a@f6 +a&'anRM9 +^U:E.\f_@2hKU2 CU=/H5b +]cu4$! +ϔ{NriWp94tFt3Q1ӎ͟<-2E0w)z&A1
;vJ})4@yf,4RCvlRf"1%<Rww#`O22US5a]0~}G
$wkxe9O'[EnQ'qn@Ȇ8PHh'XX٧Rhh#:MP0IÌt
:]RB|5Do{_TIu2U{_Kaec3đ_L%Eþ
RL$4US@y0@(N^؊&ʢ3Z,Gb"nWTPkˣ.*bC.$SAS^! &
m<Hg,JS?CvG(Kq T#4"st]7RU
UDI +}ADEg P!
Nz r0E.fb(H5\S{°F2 "B55s-Z,3%+ybs' +%v;j.Vgh' +{%"16#ŀHN<4CSF2@nF8.ZJ375RH=F3Tc&a +Ҡ^t&d'CzSk.5jN0r5!ϭJ=[>Oe7P]"*4n1z|"]J_*̜
T]Y\Έ=нKԋïeUK6f8ȮjAх]z/P<d6422)TU7FW!NHF+_*Hdw
%qLF
&H$"^_&Vd4ߌA[SXa~J+O}F347v&1߃2<N-T6 }"yuR4ĄdCb+d3[q9Ff65b7+D!'_^îi/B&raqDF4&J}`(PBzL3$y[mcVn&IFZV2YHҾZ&J!\2㇈Qb`[(PE ULi
MC &1KPF؍/sR!duU1hk6 mlAFw, K܆v4{6M2hhhdt(;=⿺aʖ>_}c0Hf$Hw
5]uU~٥ۉ~s&RR4o[fz%CToeXf:n=R*zd47eYYexGGFA@dW )5h ,t2#n0<(3{$܆dM6NPTpC\6
==HM4$L@et52!5l'8hHǦR>&E*=6 +Nߠ9(GuߏVC<L3IWr `@*lct+E('SK@1c\\nT$ !Wa8
-ig +L]WaP +H"]VF/BahADq5qd"eRDR=ڎXM$%M0b4,ePEPᶤKӘ!9߃A4k[QK.dxDCl ahJ+H5rVWA0MWa.mA߈>-nEɀq>IC'&*UH4&"ۯgt[FK34Lq*J0,ȾS!))H8K)NAMSPP5ꨥ:2c`eK]S5doP{[!:19ß{*lvaI>:x0g%s
v}GaU8[P)܁R]2Z a8B1hHqtΰ3hW Q*Tð9NynLiKgAF2bހ{uME.E
(Uj㌟mS'`Pd2C\Zh_^+V
mJ0E:Ć 1ǽq&R7r\#_B9lYm2er+#!vhg献ٳ*bЏ_\a*;0v}DPJebjhCqt
|WAvm"C}F]khWeɤ4nF:_ʦoL E7w^-Ƀ='ylA=[
,qI,2KI\e<$4䗚O6:jB8/nEƠqlRDi +*4iA*{Qэ|T0v]vޡt*}I""M<-`IF5=`[ޘ(_f +,Nsf!A@a)"o֯62jRcD(69hroSs0Z0)<̤J"I DDcS-<0~OG.(3"3nib+=U м/LLS8FhsO짿.1^5|hT͠-}yFfzy&+S}qCK,n'cg4<GMjKg)fF1SvYd7Y&TB1ɊO +-xc>eS1LAUעz cMȉEFLWACE$R'bQ& MI5Ñ G%"A03^m's9hB/m$3[3> +en(ic2
;HwnS&i!'n\.aSor
\Va!r%a$f~#I4_3TSyIhf `_i p@KPyDST!SJ(ڼ+gbX +Q9 +
#2mNX&"(dedsze]3kA<0ڙ Re(}Bۗ&@8.ᢘ#vvǓN$ 0h j9[K0[v<rX]
p<ݴ<XMup4M U4i?O:!fAT>6FZP7jxS9pѤ"[JG.+addA*=RqY p*V~f\h-Ζg4#[q4$0/ L"B0K"3AUqWnt$A +9FdYI4-(Bb::'{,DLOu6}j-( J $I +_Pu5c'LHZn "zNIU˩S[dB&rk$E&3-(2!\N)?9Hf.O~q߅ .LQ/Q"×ʧ$>bxS2$1շUYڮmIGFFa#}ᢡ^Nmt\#N +AGrH>79JaNTѨlgKE+ +g`ǭH)*oN0Q! +4>61\|:s(o@iO68"]z_z&jX 9b 6#쌬0!r$iDbSYm=P&s+9Ym/'tSt
?!UhJz
D
|Q(bj0@أ3-p /[ifeW/lUjѰB7푔ԙ.fș} HX<UgrӨk?>-=YƫatpR(y^i( 0JaoVoRg\$ZDFYmluIS;e*96u6Ut<D:SNj3n*c$%-]aހlp#ydz3*Nj_t{fnrw}LҤP-PVS<q1u4Qߣzv\F]x3uUa@! +az,1]E66kLGZŶQ7_UaϰNa)7 +|UWcXtRL[^V([l +`s4
nLDjUu\cIHW!(QF=T@ +:Q"磼j0ńIni + +c+ԲK,DsG7$-2pdn&yf1Į؊-,RBdUSW`Q+eovƮ؊-ʾ<7`8QLi_ʾu&R@SnV-tǪ`P6&R5u4vVlUڅȹm:r7]SjZ7f6Jf[r0F/_b)
=g;K؊U&WDyLn`I8|:+ȹͣ$;
6`1Vl,X^U+A_.alŖ, ȎdMEHuVl
T&H{6v؊nDEFsu5%F؊SZ0_%;kJYq0bd7Q:YllU1VlEw[uc+Ϊ]lVlVlVlVlVlVlVlVlVlVlViDc+b+b+*?WC?LYJU8+WiKeK@U. X.2ΕK +<i)Ħ
뉣_<X@<[j{ӛ94CRs+$/ٓ<VmڵС}V~OZ-Q+B<\ed:
$&zYuҵkm-wsgBee@gB<X?uN]vضUG)TPK:SrzN<X]rYM|sr{իgA^mZ)uk@Fy5fՀWAh/V݆qweۜz)ݫ[Tg|zj'{=W?ϼtw +9Q845s[w+,<b 'M`JNT3%T(r#Lcu:5kFʹ''9-
WxpX{i/E2VR2 )'Yu9{3tQ&L4q +2|^+-5%ɎԮ+ +
IMqC|i$&2,P.,<rS XڮEF;tJPax})noF ٢e6m۵oߡC۷k&U +Oby7iǖT¯bpƖȧ^.P?#hB!'Y8=l@qAYTҗ_ZxPj.{*E;t5[^^~~vөC6Mdx\p"v:=åLj1GgwdBjZZzz_LKKb"jH,|-DV.?yTw6 +2XЗaC!z4bSq+tɟEETMlf./ պmN]UTܷ߀4|Æ<h~}zvԾ
Io#"RhE1jթeOJjѪu6Z.Rvk8Y!iM1BsXӟµ,YCF49,v +]tIM*ޞnױsW +=@*m $zuܱ]vT=1sjjGE֘ xt0)1KPrAӃax]z?xHP8Θ5gEW.e˗_keW_E͙5}qGدW8^! W5Z)L1U4oE6na}KT4BIޅ=ss:dxӚZk^JhZ) S1`:CN~7q,^z+[z
7]{M7]{
kVnW/Y`iWߢy]:0\!%T0ZTt_Unx؇5zq`њ-qƎ=jİ!),ӮUȗ̎-+JHðiY M:i!OsG<n=Wآ*(;pȱΜ@-[qݪ5keínۼv\7߶
5V^͟=}ʄ+ߥcAy-2*j**V?Zu6%2[wҽ!#F0mƌfkXϚ5s8x懐CL4[; ;0"k`F X֩2Нي*4|)3,kV7l|]woٺ}ݻm떻ctêk/]<IcGߧW~qpU+)8
ۣi3[hK,]zZtɒ+9
=r;1DVC!|g0 +kSmܸᖛpδ #!oz/4Y=J%{۬tl4/ز]N^>]o|Ȯ'vݷ<zzᅃx}];z{mMkV.r>5rH0(+Bֽx 3]r+{lٺu불ܲ垻q˺[~F,5qÿ +
+s +=i7ݵm#yg'O~_
W_<_|!`W_<ݻvܿ7]|1oZXX;7bҜۼu87|$O֛oF۷n^w9F9;@/e O>0+ZBI`332{o|'Bu#{@<|}=?}|W'7_;uݷ|Չj|ɞc8Rܡ]`
~t7I0d +[bͷ}ߎ]{p> +`~~맟~o#'}>/xgzõl,"<*G pKy2n6o{_>&l#x > HΛG_>ɇm^rqCzؚVtZBdMa0UN@
5qƂVp0}ToC "ͷ#L?/~>/?c8^3{{n[+L7_3Z-,䇽E&Yꖻԁ.ė_|''>|/xjwݲj霉wlknh)bDK[u\%VY`(Evyѓg-Zj&8V}G +hӥpW^۟x9o+uY4h6?ώK<[rA]%X ÀHbSVig( +v۽WRz'ZX`|N~7S?
Zh
$R2V)Yfm7sٱxϿ_~?_~?z۽
/9nPa6tP0يf5D`WP3buӦ{@{W^? 8V~#w:TY- 'xywlIlEDxhYKVmܲcW|//B<Yo?+vزqՒY!XI`$8&+zĩX%{wYT"ZX=^}(H'*PZL/.>\@E\Z"L7GP~m
V$5~<o}ɗ +: +`T5?Hr7'?F롭ݴrɜI#涏{:H`}B` +O=MkW,+_O["}GM,?+]E +/؈WXT-֡$z^=<WɈ-,؊F5
`Mа@
>L:-[ wn|{wk/#auU/beXѣO>kܹ +]t+zYsȮZk/8XUIO1WDo;,<Xu nxeEȚ`-j,X|ĊGт#/<w_Ý*aЪ.)EAd +bEVtQBd Z6{*e-; -V>a5uyM8XBd +Db +RtU!RP EkEӰMTU7X +j:u2dc&Nuo~ᷔ!]}!6\H
md`u@6͑ TMes
6jԹKVy=W=.h^ߴbIkh{$X-ۡnw6KeŦ;j8dɳqևw?'UտD"&kE,,˓ظnX~WJkbEDߋ1#_ҷ&b#<ij/GգRUVzm7,;=be2X͓NgTO +oF,RRx..T}>xVVwfII)Pk>#Q_C;`s\[ +~jR}վ;lQ+CfҕA"h]l$W\ԫ'v<r^qY7d5+E!F$,G'-Y4,]ȡ,Wa/X~H=хnT[DZ +-k8%15s'{J+]֩]m@7yAte<!Q:Z`4xf7X8ufvx5
<ixI.Z>_FE66`5NGsc/R<DQݡ%kck5j" +%E5aF4]H,mU~X 2C,gyJ~N~vQ2|Ḵ8r"+`aG#*d50`͛<mZfef(IWJeDUBS_ß,{K6fW@%ҥ0j`xmvCG5DVq[<i͒Τt_f=<5<D4,@3SH,l5Qs=E
H~dX +@jٲU6<mY4<a;xbqR76ueIs[7݀(ރ;D٭ZnX"kҲdGbBū3tIÚ[Ԓ +V
$XO<X7_]H0$*`݈=w&;EkLDfGG> lUŝ{T1^{$_n h,;mӦmn=z)$hjz3{BSJt6ѺCbzBU +#g'{t, +AbN4XSG]еSv>|QF9 +\mL69]tT1 W!l/fMJ=rs:o1'Y8|e#pD&ut|lu:7Qh +oBl]GR-ӣ[gIѣw59/֫[/2Z7mŔ#ҕTZSチUHKMZ +r +{t^г#9n*iQ^'YMp[MR+a" 3xh}
bA%?0Voy=׆5@9B3,Nq:!9ԩ= +z*.4!Jzu _v ]R$pH[+o¢iF<x|xbNb(N +{XvYG
ߧwQQ%1;EV~l!.h&C.}UocO=yaaa']I*d5~Es<bz!11tU;sI[ܻg4q!8d4*u[l,6~(4.샏>RCg.I:*:Vx_]wxG?{L 8I(G$49Da"gLN" zۻ{z4#$am]F5__Wy8
MUk -JT\;F|އѶ6h
\*8čӽiQ7[\pD0IsDyhorRH!Q%,QMhwrՉ˱+Pe7;'o*vs] -*敒W05;)!5THX30ԋŭ3%G,$ZGGj[8ԪzȻ:D
?NE'|K'qSW C] RA_C5MG ̛up6IN4@:ViE}"?^, -HԔ<L^B;4q81i}>zyo]+n0T5K]
fo9j I
w7ouHiP{g _p/Ղx-4x;H;l(!d@e@ӽ|&,VF]YtI-4 -M$g !u<T)ɴ>S8d뒄*VLV6YR%L@PmOtƃQ'{
lx -|'+dOM
?^D ص}T#iH5UYzGD|ܹߩJ=u;` -.=ZW`yj?;Bw0b$!Y8^( -A/eT{y&=O?=:A*aCY.\'~զ"±Y|@g3iɓR<#.R$Fyfs*e5h5L1*(PV.&5+?qu 3h֯0j.:
9 -*sbaQ=b*=R
N<Oq<#,-.hp3bY6G2܄0UΓƝSe/Y6=$/fH<!A'\<릯;R f학OuTNgx!TUSP@>C6ꤴCxHWëe$AZ~!g{pXZ~vJ%;NNY6edr>YF|46cGWal:lq{TR>ݪ~d<SUzuza#fj#M1y\vCsSt,f=,($f#Zp^zzo8I؋ě7?]Jg13YgVs>pҧ
ѿ.?-X\@58"xq*',`iheq)]FSgΐ!8pIu4ڌILEO:0WSZoXKpUc@OYLt2!\hGNea5"8?2Ui>(ċ$q&{Qt=38^aՂUKNNWNb*13<-<GH*4F}p0T
5cNlRawkD7 駊xڇw`AܻNŪ|MMm.ʤ"B(K?T;O<e=It_PיRI箲;uK%
MC2`<nȼڐ4˩9;0ICW+#TI)tTx*taMR b`r6Z2ϣl/ -ZpxFuNgO!PpkOQV7ց8}@tNg h >`4܉ՇS,c6" 9C=H - -+i_kQ?Elߴ+XrGǢ.NQNX3$+5SJȆ.,P7۩+W`?Aߪ7G.L -Ǜw9 C_Ǵ>b\&~W=~Bde84pnG{%` -IKWBs -IjdLdz,X=Ak: -E@)>Gf=!;":'F1cDdgFx -N@4ѯ53lD|Ws -~đX )RÂ<A3M$Ajtm#}}(趴Va kMiidsR:HlL!؟rd0Gےj|Q -"ȋ=X"Ǽ8!:'4ylͮ_aF:I da( U.Ա'?,4*n\j'o;0\&#W)ЀV
2|S0MH<jV|R,N= ũSc5yk<'ShՠwsڕTq`W3XG%=i D"Ôt:'/S~R</ُbO9YY!!"䦤ڋ5Z~@XH0v5>ˡ'fgYǂlLc{G|`/[OaLޏsZC=ko7E@U])wE/RN@#dΒmhy-kO6|v4SCΪ=e)9||˞ mwϿ%R4CFPEs'Gk"HJ&Tkᛢ
W_ۻZXgZ*Do7Wקw/r{zZf핤]^Jp{q.vZhUer/t/?ԉ:J9zl_0)BO#"0z%-Ͼ]ooO_\_FǸ9Yi1'aQs\=<|y3fgggW
t~vmgJYҒPJ!T`l?g{V|Ɛ$Nn^U4lQ뎌6Mq\@ge&<Mu}:On/;Ir&%
Uw:1 ,vb6Fg/o71mc5}ʽo($C-ӗIFBcVHG_<CҊɰbǣG>qѢ^b:Xn
k1Nt?9_tb}'8i%j隮yF?ᗄθ#QRRСL0G}}mץR?>]OYj|FW_{ 8>o79j\/NoW7w;t~uwnn.ן%xsBn,ׇ_Urnt6]XSN -BpJ^jaw?XK! / C -<8<lZ5H:ˆ̼pDž˴p+U\,*_i.K{¸U4uwQ8%6IS;TيG9.)<> -cf=*]ăH]ٸUo+wg/&Ƈtzw_o>;ys͍{׀c'~٧ggo;E&ם -"gZX<kYCd@Ν&i:
R``PFHIs-(,Q -fT# -*2yPFڜ$e=_{6Zo@R&klCF'}s$0)LdjJm;8 OA%".&|b`N"/@-`d#OĬQ
Y]YRۈ 3SۈVFH=+]$'-,mQ -8ޜjpM'pӈ"X4 -rd(#El* -G݃U^l^Dy|b@e{Y 'AytN
<gl¤c;K8ʋ(5m';zB%aYk]'D b&G:/DNq\$K/^+ѡ3Fb>^ggQhd7J;,n5Zve0{'ulY>#%Y>ZHUGN/,pP90Ɲ=AU:RPRQѹ^J=cڴS7̛&`_^sDbD%n'YZ:N.qfݡ&$̈T\/bհ\4қJ.R(E꽢%H] -tfDzU*%)xy;3 NF)RF.jD<Y-u D:<ԫVPZ"(AZ=㩔<,%(w~ /f ÿrz1 -FwF!8UWy<MkynUŏ>c5+Ek8I2$XJV.we*+fֺ}2UtIêE=dpQpR;()9Z4 -YԤ -^*.ƝBGVfw$_Hr#5Sy`S -7Vo]mfQ4r."OQ3vtN߫G&ցQNjfI*[BRH!{)@yO3PL
,cB-HŁ{R<;Qdaa|$wrI:5k*dDԵ/*
C,Zv$nA4MzЁő 2OK\Gp0D]r|IJ5%N
ziF~G?-s#6Aؑy̨2(ZFu=<Yq5S5Eey<O*+/3u%臤^ 9pn8[HfAkTo/^tN<Bꗡ~ĥHIu#/zw'`X ,Y1tRLȪ(RE{Y*R`R`<mPoRa"SX"`d{D:ԐLqü;D{ߢ9( -Q$*&B˽(D-A'(*-H%Ex3}M=kRL:v%wN|+%hոc7KC,SNiWUt(%'qvv~2{Al"8`=Qb^xc -Dp[;2#DK*3Fi{"~_)܈:1A -bs/w'©<Vd$c9aB}Rt,:P*ATøH.RU97 S -Ѓ^uDB#B[;vؙ^Z^`&V\saDI0Ľ٫5y>l#fSXjCυelSJ=xpk2@GQ -JNU&tXDZ|>t x ,J
]0WU'AwE^k*HǢ(yP=#|J/3AeJ2͓EҊY9Y<U7wmodfz+,ϩpi`nӂٸ1
+*8/I:DoYx6S)Hx@C{;nZ[))\sM)h9LI*\N9JsPҀ4n ,ics8Ut~uBB2֛Θ;5E(.$eVTe(T%7Vy07S>ZΆucT¼_W͞5ݎ)<Z/eIfb+/vuZYkNǕbfo}&/R`W%JVJ?F:?S ͊4'X7a4әxpMν4s\ HzSKAЏKh6ð~A.9,3S
)Le,Lk¼" FfdBmp я$%P9Vz+_0HO۾A\;iXad j.m?YF_pQp?I~r< mtKHlg5QL -B r *xԢyd̢"![آhM.0=ysc7\WD% -}iFcny,~ri#a[p1 -dnq~^D?(D0XEfRd6!1ShuD4~,̓f'5)s -}z39N~paT$ -_fLj<~(He>+f]JG986R7E*@R(%Tm@D%Ij -}Ib}@iњP5_*rzB;i<fm -xhVAts9k_$JB 2s%OH^[O*]}q.kюcAA -BtK
Xya/cк(a!@oq aE -2'.aOZڠ' - 7K?%zb!CT -)s2FKAP w+|j -m3AtXР^MJ'7'BȘ:5lМMFW&1a>3<.t0Qa!&j - fАMCrsR wM^X]0Ȯ'OD&6$ڌEEt -1*Qx ZE;-I#A+\Ndp#$aŗI!Nc]7ҋn4!xѵ,+[HzK͆S~@ HZ]"d% -/rW1
2I6RU8TERb9rnBJ!0/̰%y6qBSK&䘒l6ʬdwsB,)*S:x !#"$鬡!1'ceɅz.#10(4PZ>Ur`99H\fDSzKћI!~gV$ D'#}TF@[K>"(2&yn::AQsf39*H -wj@< -Xp3=0_^J,o4H -PR!j -cXIOPH
d! R$j%,L=|zb* -8=r4
JeDĝMO -tb D#H$:08BY:rC -
K2V07 -WoEJE,'af|\Ҧ.KR]9@q -!nx9Pxxao1^ -2^) - -EsrvBoPSm%1ꨤ
b]кtCT< HiXQ!yꆂ.Kw81C<T@<
{w>ꝑsc)X2脎anqFkUBgfK0b
-]PaQ!>܁4헖:
ج*.!i]7!((GD445S9<v"$%"])I/epUw[I= 벾 }7fE; - -HhX(;BI|UypSct`Dk!%RE\y -X"xPp@gc?y
Ј%74ƵJsJovW)IPIfzj_2b#qFBGƭDTbw$
4I \r4vִ.o*"E]9KH.pvoFh%P"Щ|2L5k`97UOF1@N=4JYI-8S6,}8e{0 -2 -n[K2 - -,", 8³Q8Cz<CTL6?ea낅(ṁ[FӃlr}2Bt=VE̴ %Y)ab$R]Cwj0ܣR -
*)RA,â[/(]rxXZAnSBC(zl}0ȬU'8XE)U rۙC%kę1-
L"E4=Z^7t߯{AyFnmo}TQcN-I#"P1cO!8đ, '2ܞ@Gmgv19sV -W#V*ǭp5Ո]bǭp5"nVU9nr -(\ixVP -W-s[j(nFĭDRPV[jD -WCq+\
ŭp5"nVVP -WCq+\[e9nq+\ŭp9bASl -Cq+<|mV[r(nq+E%V[r(nˡrv⌏np -Cq+\VP -Cq+<~Lq+\ŭtLrD -Cq+\ŭp9"nˡ.V#W'Cq+Zm -Cq+\ŭp9"nr -WCq+\[j(nFĭp5P -W#V[j(nq+(p9BI5 -EhuXK*dga"Pԭ+ S9>92z:Wf +Ir: -AT?%vpjzjIpZnj$þ5݁x@Sz銝B0{GӿSx-2@/v" -8 t{C| YuEEih\ -VOW -З]Èf^jJ|qYj<TD.8"F3dǁn\03pԾg+؛QSc
~X=͑UC% ;*zjpZMu4_JinUS{©a*4 "':M
%ɊńSѕM\.^f.MQZ'6[L0o>V,GR10WAot`p`l,NfN=(_@Ԯ2L,
"3JSQ3aB0 -%K̊3P¤TB# ' |Im;(VAfP7(6-zo=6Ocg.c -۷+j%f#* <l3kQEnWBKqa
?3Ss7CY[-=(0 {|2 P估¹92n\r*@NNKrD(%41@Sǩ5ӏkJ3< ^.rG[AyG "9#8U֭?%c !ܡW$%S]Af-q@s3n,Fb;RF`"C|p"EE""8+ -UT2_9ae7T,V -H.(3̮pS7s$7S()C66xb7״MA,_0/㓠elE/!(2ŚG%ln/§?Nrc-FSD&(AY0# k&5=*h =6 -J[/F0lLKM[T3(;lg9CM{>d%%ef Y01TB:ğ/F)tU<Sum4 -tո.uVވ%Yz -HK/VRJOVm⍩H -N!JNi%*1`UՐ+Ek{D{EVLX%mYSnqkr17XF%>nQ?L<-ʶE0h4f0d4b<`ypCr =aJoy+dO([9diNҍ
<I>Egqt%~DGcbS@RƠW#n>BMМ~5+ş}sm?{ocV_9T66tɼpaG;
nqX}Nt,F4|1-FCw,D_Lq,F@77@#90ԯ0-/cm*4O.>cT -A^-Io\ȹMW{,N-_[X&xĐ4h/,(B.6aa -rN2T }IhE0o "w&1C7}.D0o">d3W)B!RD3
CGE|$<Գ<cz -mK:!GDa0t#Lfmf4ޏ!hiC#FR
]Ct0,%tF!y_-T@)}
|N
c檽rkoՠ2Wvەc6Z4as^i쵛'?'+Ӻ=h^'gMjȊ̌\eb&J6ZckF[~sknuZOlx?κA0huSy21Yy;6&V:\]~5udbGoFWѓ9mN3}y+GcXy1]R9rXyF` -)4v'_ToőY7 F2P8[B})mABB_=ߧ1lsQ9K#3)9f@&F'UQz$ѧ -YAtic-@8LSg)fbr01V1)tz{ -0G/&bp`rLcFA gP%˹5b䲆(LđcNW8$F3z(rB%DקR0xCv;pyҫ;{pc\wXT%>1~!T$[uu3rRzX*+!XՇNx,n >1|\(qg.m_.N%sᗶ,H52%P*e@XD8t)@d3 -=Jo0ob(ICeH@ˡt$~)By<qsti4Qא -RQQWg80)E)]< -A K tOM<(a]DE3Ș4,$0z@z_UP*':*!{s8z4PBoGc -) +0>M-)&(Upo(w2B1P -$-FH3hXɹ<,08")'jR`U)&a@8:`7<-4טc!8bDMd<6O'| -w[P+ -n1|8^:u31̐:,̫kļTpj\H2& -lJ2 ,WS -Q2HnXarr@24&qY&%7~x3V=iI -'L*D -c8 -!Ȇ%pI-Z#R$q;w%sƬi uT<캖I>WɲWuV6zūA -[ch O1 -
_LVPs--r`|LY -);',8')>Z^/Ǖ妴t -# 'lR=#YJaI3tRRBf>[=ketaƖ+[e31VB:]A &_D.P Ks?`Rph -D -x&z)50OwOO<- -|%31 +و*xH5D AA^"l3f,Gr̕nR )r&dj@ -&A.c" p7[əR$^4o( -xNI-S%q=P/q,յPuN3DC"Fq0z6]>XbGLa &*Sӯ:Cq 7
eVauEdT@X 9+qv6`FvRH}E3 -'u1d%Bgja.-ȌT@}:V - $&)6ss}04W0/~0AAR4B42v/LAԔ5B n!8QI0ʆ UWFӚ;gz`EE$U$=;&"%溋 -v$0ip@݂Sc1 7'h"R& - tZSZLR0HaHAB$: hY 50=wu5 |9K'
z%<|E6{VoV.g`TJB)q{rw`Vh8Y DB$G;:aM(ȒQLK~$c'`,ߋxqp1p`=l
MSdܘ@Ǭր&c*B -Z+,^<aF -^D3Dt@
,I3e2G< -mxCЉB;F!e'DôƘP D -\)!AS`7$D - 34$֊
UeMMVOԂ#10"3'^Ygp2 JdZch9 -9Y|h)9(zPFSJ~dx7(<ʈ$3Pp#5,V -
(2R=f̣##39F7 iAtA,'+1pN"x -x]FB21rX
9m0{ӲrQ;3f+a YnMM4 -%3uS{NǸ `Ґ ɀkel ՖBV&fRM]*&\ϕ'a_] -dj .r<e0'dmL]3c`dJ2 @ -;Ei\
-G`v2P-Zi3
5x[qo#3'̒I+c_ "nw܈tVh(a2_Ke|wd(
0!6=ɳk<$4+ XFI7L;Ѫ$XzK֬/%B - (/
<'@ΛZNLߓvϬWD+<k+3}o:Γ_tgjv, /g3;sY?
˯`E~ѽZt@E`՚55jvHF%0F q -|0FLTWW,]?\U}BpYK7.gbf "r:38Ȝ㰏
iWRI!6uNklY*#A9uvk5de5њ_d
= !s -$( Dg*E`#iCY'm>QyTeZNi> &=a7h{N_ӫ/$uArפ9?]ꞵΦ<lk~7G6}#F -]%k$V^"rOnClJ~"TRIbIh{%G6:JGʴ^?bQQ`xbYj"ae\(Ρ./kÕw,SY:^+geHQ*USNEOϫ6i+7&ߐly{.V[ӳVtF`EբRZѺ.hc_OQR4k$Cc5S:&2|lcx&v[&Ǯ*cEd4c)$ E!!~`XZ{<ex$Q" -g!9~b3%Un>E^(hy7I7PaWŹZ Ofk -}g~A@4~T"X.$=4
$m֥eA52'\(@ -:ՆRHfN09@
/w:8W{(m,35!}$+SWnmOL0۔ϑV'U@EonK;Ӟgvvj&5+}P> -fGȾU8PѕJp-2ڳiK(V+2}4Fvr,L f6M/?U0'CkBa:2[*U4:L3+Nec`xP&#!<Ƀf otR#BKSdR -\Id{Qh&<w;&!*2}*](e*C`R@"9<WL 266D -vKaM1& f}1@R =6E8E1 <,rFu5s}ȣ}j&x<( <rBV2uaZ+:%[xga*]aי|ʑF% -,Y!vjXP&CL?s;QהՌ -LAWkt4_So@?G|o5( -o:?5jVvZGP_@_(][/V¸%UrR
8NµkpVAO`',A,C<'Yxf$FT&6϶ןTlo Ҥ2$=BOWns
~ީVLNRA\!h)u+4UC - -#G,F".nޗփK(L6kVk7`=i;Hkֆ+6,o"5D=fMdD(Wvki55HEX[;b^g:EmOn.cX~bG"-ēc5iσ}kDnp+CowςqS[}2 -^cc f~Y-22
B~rPC
Y7w3Yvt\|դReVߝmu{Z?\ Ud_4zǴug=^Yڍgï" 8ZlWԿJ1YCwkh|mqrʹoqFs >#?ukiiq|q-C˰oNx56fJ{6ݳAUQ=q4<8&2w.hlnt%'_{=
J4,HPΤM ~*;M<rnf*8ِ#{iFa]$<X')l6M\/iF_SHq?F")Hg8zQѰԪn"*gYn琤R=t+O**'I|P -,|\/k3=Uglx sqZ}z CY:X8|:[M_ɛh"vE>qlr8<YZ{LU(`袾TnL.5-ƣN+3{Ũ#)NOƫkS/kNF[Y (׆1gQhחk>uǙq.ʲjYhg]xvippZkwv7uO\g+g~k&{S<<?{wN\>(ճ\yȒp=wۢxt%{xb|U~?gyFG>Ij'gC6כwh^k읯L9M'ّ^skǩCMo;on}|dZT?..<ZM>h*z^noKWl.ޢ -ܫKlhQ\^bVɓ^ܻMO,=pqk
H~[9}mXX:.35?>[&~]wӫAgƋXtリ&0
[n'26ˤäGk -vZV -V7ɓK/>9B/O.˯i>jcP}1{`ഘ7q]G7tݟ%C -1{sˏ߬ach꼰5j[7nZ>Uk7LLNp>JG''7G*5LICgu~q`F^G|t-75&ٙO%<\0]8ڵOw[inZ_~ΨE_js'{?^j2|?yvώ[+LSFŪ[mhR!,dˇKϖvpx/zh>ρthJfd4M??ZXn*/C|RM[W;wG zwX;c+Okgmf0؛)&/Vwϖs+[,>nokU{~GX,N\_I=x`{ Iue(6~X>|H껣棛j1wRݤzF}ayFS6K;xV6/R^Ngi+wPBʕ>ktkqp<~|yv`fO'p^w]U^kE=w|nuSh|~yz0ysWk0<kلsr\jsˇ=%
|xލnovkMoe}/ d`%~VM-b)`w^]\rT) -ȆJ4}7{[QXbU7ML m2/2~)<c7H78̅A+vp VoP/\3OuGn -Ր=rQnyܮ|,e/l;}xLH͵)BmS:~ѕ7njlؑ2o*'X<eH8 @qmsQCeUZ(6.KJ&|
<^DwAc//2x86%a7.ANnrzY>BcbW?1~ڍ/i;At^0H7IOv>C=&*4; l'HV]zEvWSy̝/Bw>Ч{/56{ף]~f9z{~;ZM̭zжhsmpShJMIu.y!FwѹS1{.B}D)%m+ ہyoX/y~-G.>~?4-/lV#ڊعz鞫N"fhE*i=Ə/-Cm(wu`sD+o':7lɿ|QVFA3iQ_*3}=WϚ;%GgcpA6~{QB^߀@$%Cdlh!w nhO]4ɣ{<yx2=v؋
eNKDLt|B -*l<}Gug_KS|`M(M7/߳gؚyWˆll`w=?{
&hvW!q.mU'*N"'څxAUNČ
ׯ{e?3։xחUBpA'; -sq/JxWjt2E;臛ѥܨc~û81v D>g1qAwvn/:mbZS^?єiݦRS!6;n͕!LKk (^_sDT-6kGX0z"L]ѯ0E[ԯ_Cq=,U&WqQ;XRqۋ+/;v>;sS٭KTɤөۓVjwvrKM9ZN7U9cR}tް[ν<.6f0^M]oF2ϳ3o7ZIp㉵|z:0seO,4y/n}q4ۮ.Pnوn<?OuY'VG\}9tnuƞߩf?Yiv8,ߖ+Z4v~}lvӛ;]kgNoG2nU[kNS玝ytXsӑ궓|S --;^ ZXvYu$3~x|Hsa&3k=)ݮ~`k~:'S/W9Vm{zgXRڶy;ZTdӷN/մݰNG2i7?1]S:nv;}T}J8uמUy1NjzFz.ӑjȻ3o:&?wf-nct$9q)>+oWNOFɆN'<d:c7úm<zEHYX֛O-֘]7?v7sC;ݺsNWOKya,];c[7oOO -Ns_C;%v:u8鶛9X qs,SF>}g}ZO;v;ǵՐN?6ORpo<|jN!=(݇sf -Zs3XjS1m9-x@S8پNl~|mD{:T^['Agv3ӗMS/Nⱽalº-F ߕu#cut*yc-q7^Nm:<>?/<tکhsN3~_.?\͇Z?Ȟ=C]fμ>Hr6l%\?n}ϯvn>Tᅪ]'zL~,'G}ɞ\^.9W/}RW=#V7vuzv}CWZ=}urЫ2TՏ1b?gЫ?^vC:U߈]=5{SЫNu(|2W{aΦ'B, ̍#r҅vں23!\-Ki/*?M,Nur?3wp5"=ɠcK4̥Tiu4O[MM..?P|cNnf9sylvͱnDl!ycz+#cYߗixeQAnF2[tB:si$SD~yLWtB;wiuZͷ{Z٩^囮Q{ջ5x N>Ȥ3){]?vS
NG2 ~T9\h(SNF Sz'>I;{yc?ѻjbN-} hfW_9q{>Wց&?X~-汉z>lktUw?Ly,:%{r3tbrFKfNys۔#/ оN!c
v -~sb7-ݕ - -0l0uH[ C}.d-L}έ3ǁ¹X9JFNpcvƂq<~]&]4;zq{N·,e̯lM'1}B6_$w#iυdkn^*>)?%J{SOZ6;#PƔ@fT73i%-d5 _t:`<(H/s.$"{pNLH&2-?RD -]O>ۻO\ELs /o8Z%u;z40>eӣtl_)am vb&`enl`\<zJw(?72Vcxs<M|H;:ɖcẇ(%~f;*AJ?JH ٲ1 #CXu0]vS2=ΧeY3hOW Ĩ$TH>B -B50:D+Y_4[DN0[^Q#y'<IA#Y.#H½j|K1?_zF?ny^d"V:[;& -[JXO",s!:'qk00/uث11Iz`$[H.fu4PżzyuZhDpt+H^M"2:4|8e1up%.( -zȳ".*Bupp` *&qgDC;Jq·0|8c Բ|8.ցL3
,&5eDɖIb"Das+,aDd'l'IIh+$a;E2DS4H7㝵lB"sOSDx@j9:*H*CXdY : -Ǥ0a`c;'$3DJ2.NxIjZaaLZcaoÂN -Hz
9pOc Hf^]&1Ĥ
$#`2RAdBX 2Rde=*qP\$hjAF}G}Г -L -=Hn4G,ZwB#NAp$.Rc (P'zħoI*R9F-JMYv]0":l.꼌<K|r7ch9/s -
wM]l0fb/e%g6]MЋrz|ϦGMgl`邚C6]l ?˦ʥd%"..v`\6]좥wtA;:l\j}dxk6]p:t6]DCMm*vOឲdf%~<My}ʦiĺΦ̱X6]pn`8.[≁@6]y0AdxFM_M4JT6]\&`rB_,)_Mx7͑0)W}:#gՅK饘j(+X$\FBHsCy)))H`Cur#RRqv9d359{шt1fch˜-+j\%{.twDJ JH(@":>Ymt\?&e&JhX"Lq&zܷ9Pʝ;'1yBs.{B
bc'сiOH$y$>0<#q~!%"찋 2Pӟzyhj;Ն -1ˈb*&<q4k*6~,q4k,YDwt`3Ҿd> -#ʁON]Z"@lŗ)ˎ%J
XwOݻ\U@hl cO+t(2vר K2ԑxXMv )qA`.섻cüoZE;@[5"@T᰻XՃ]yx -Yí=&\KF0l
j c=Ml$CB VrC-%ImOljg4̒ԒZ:uYX{݄Eey*OI4l=y^ݾZC],</JˋăUH&=qZy|rqvt^LM`mo$(}c=[TR*YH^~*ѪD_ɸ݂]]յ>[ѲlVф,~ՊZ"`4bXjp -:0bKazzS]c}d^;T|呐r3G|Y-[t&SW9Vh^J#i[TtTNUD*`ܖ1<k:g_]fh,n761WobsysbjĶCI|zLIXXYIs -PЇC_6Q*~jCj
_wqJ_O -k"kC_Jľ~ё!r~q\2F7ʠ_yl=g<oWv -|lg&7KMB3Óse5T]!tS$^'o!^=$V3VSdΒ4ګ14Hfd7\{Tt=6_yޜtV[;+36lkwGKh2Om~>J^Ἰrxܕ!iw3jNV%/D+rN|h;f#Ҹg6&0G$Rb싥jeuydͮ[j~}cÞ}ruԲ*>(<'{bɞZ~Qمv"43J꒳xr0'.lJob`x.wEuH^;+_K%ǶU|T{kAO{}ym/-6HK
6fnL7]=WOɩxXyw벫x)ע*sYlӺ9r|#na-Vhgƍ'oZ+s}v:[t -'{)\*0bǧnzzyt)^ߊW0&Y^5LC|a#O;Wj݁?qY)\O4Q&Oœ2k<8wup$Wۉ=xG*Qy%4SxW:se{yk#t,I@V9(O⢛yݸf*>:O}.i-Z]Zɬ\? -rA*7P/M9usVn94rEgW_ЇKyUg[n1KX?i/-d>/}kl=./ܣ,NqՑ>r{RNF엻d};,'6{i]DZuz?Z#|[n@wli* Lin/=R7~ -T(`֟٥Iir1mNT,-kGy\
Ã&fZ_/xB&[^.,'_#kO~-t玪[G84kٵynr# c, -c[0M T`eyi<PU9Aj9/aI W'CiLf4.uھUUVQn$sĭ_g*˛`v.&gܑ
au@#=VvKEc -oR%we.f%5Yo7Sco
TiNM9ZOM<?udH# -w|y_T5@[^HA/#˾(O6gQglkasuyQ2uS{["1B؟GBR=ħ3[ rs۳B$vg)y,< 9g{9L+5\rfk|}ŧk%\qn{DavqX{M$ -oOnw2ͪ0*|MZּN6sLNJxʋox*Hj^EzZ9ԩ%|N;P˥$*(V}]D?c+AYL&~}p%AZ}Ut(2 -O[F&e)GR侷MҵUe.I$BFȸUʈ⾤M{32߳*šդǞE{I^5|Ǘ|G6w<N?{AdxHKo4iux*^MX+Zњ.]aV:z*gVP86\|w$;~|w_T?wz鞿n/o q~[]z<n/eЇVD((L42!8ч=|u~Jsi/8V;}8% `㼹\{%)?:@RCkwqKow50b_@j$k+]dD?kLEO|ĒKqq1V5M=+ƞ|\_#PFocŢܻc$3q>iw->?b.|_\cL@ƶe@llw[c}!d%nb8@%5v(3hZ -jMm5 -_bgࡄgȒ`f,⣞HC%5Kam[E]'g+Ƒ/i˳L<k(c -"Ey}S\VUiR1HogS˫9wxdqͦx -;>k.Ϗ_/ֶ>mb -YjD~͟f{xjE -="Ab{#BZO~5l-=P+f/K_%OL0[RF_+eDOJAf*cQH=PXomu˘`{@E}Xm==o- lՌ,UaqkTI*Na}u}!gkYtrrQZΧ׳y=sݲj-r|(K@>Tھ[>K\\J
L?OPK$+gsbOPI뉫_XM䏚te{ˊQxsX>UnC'?'G*|W
ȩyxi,9l -KϚusٮS5NHj0t`L=G2]{4dgvdj$nkE9ɰon^^yGhNsԩ5vr$څyeeWhen4at_FgK{{Wll,GsʶY˻]#,ͪ]mFrްUv
ߺv^meմG#?O5t;RgJSzٲOU)l1 -ukh XU6^ǭ/FJU6VYSoDgw;lʆ\G>^`'ȗ|h0znj_v^_2+gλ{=C~~j7_7VٮstY~w{yaPb#Y,ۑS\mrٱ.kgl}u-{q]oIk7Qp[/^.ڣmox1<cx1<cxy8~_dcx/<o1<~3 -~M3nIUd -٢B!!@VH_Ɨmr Vtc:H,cV8 uٯ$tDdqxyYG^jvdz_R+bkNefn+583gTch1P3qxehallk@WsN#k3V3ҕ)c== Ցt1dcx#8h00Vabj=0'v
`r5"D3b -Ie$=-0ָwИJȤ;ه,dpjAuZ$}dg
9<~a&Z!Bƹx N@u[ 2G76"02YiW2o]!RVsjVbۚ\ -~c S3<usRƭ$+hPD2Ɨfsi)iO\|J1eu-;
cSs=v,X!Pd M3wX!(zm C\%U♱Y%M+
&
bLer)x=&PV04s.z5?zÄ=~~>H1l3d eYabhaM̢K"0}iB"}'6!:36Jn\eZ-nn>
nU*xN#N7~<n{iNg@Z!}C #DZaX -D<8 -y>zTN/t1dXP$',K|@HÓ/r -xL4AZC186z@WrN/C4?/l]ԐH -hAL1>o $DW06 a8ި =wX*Í1z*ޑPnß<>,B%K^+9):~#SJ/ Zov{J}v+t7P>Ől\"ub5ssd1f༨VHz r!YD QM} -h}a -2uMwxLjBg9qt-DOb1NL.bH -ڏWwh[-`Eܱ !mHf`rMRE#@WA;8/̣ŚV!%ܥ!(ݜGO(e+̔_vq4'((<媎JIb9LXGMcL>0a01 U;؞3[vK#PxOb1-Wb])XV;mH3<cqcuÌ$cCC3%X<fK& 9/箈ũG\u! -یS$8L44:I3Z -V -#ɫ9:u8wc{AskشzX2f VUajT-eW˚H#`TPTQhy짜<1po}!t -%]"mqV*\K+ -XO̗\xM]^c>@;b$y8eۘ_#8踕 "HCDB'd:3 -HL
f:WTvAkEI^
,9)-]w<0آ:IQ2@#4 -@!gD)gim/0M)-LHz˾!9/d cWR,WrdkI<B&̑[SM?ykMS"ǡ`蛒TdqY84!Ot[ujQ\gzJt<Q {ZJ=ժZ\!I8R炢s@LpXoT5Cn -a
LXb42};ES2pU\MV䴀
U9 1gf(cWqA֡B)r%o#=yUl)4FҌj@cHڤe8(|`/Bd(^xA<v]Ye1 -*a6[CW@Y@ذTY(6Pua`F+!]Ԛ0S?܄93BY}jY㘌 -X -:P
Br(Ea0T -D0b8 @_"1Ls"9`S@GmAl.j -IYQ?$[XTZi^] Tr@"I`4:Fm JU79qPˤn\:qTpD5 t]G"mJJ0P1PR&Aq!ŰIuK0D'i& s3J6D>N0 -{+dY)g+ -*Uc\DK\֪A/U=E|x -,#![P(a/9 -k5P#Mh'׆dw|{A/+oS^hdQ/Yu -趈g:+`a^Kы1Dpܣ%ÖhgDnI50!g$]J -3ncnMbgGn# G \:md:Xqɑl)sL$PI3W`2vutS$H!תTJ"LF-,skc5H_1CR42BHkB{)jR?ZQHCadA\Ƹ -%Cf
G%JRtbE&BIIdC? -<BMlQhr;Ud5|~=DJRoU1ZTU -t!DU2m2
M1lJ0a?KdU0LLRSJxF4BQyG I -2a"E}Nl*Pp:뉚([Pn5L
{$,90mQbi\- -=Tkj9h{K.*qIsJΩM.h#ct
`ƝBw5ÖV#'1s}jsdbћ=)jUI
Ű$FL(8J@0>RIŠhQ&k`-R(&^$S)9$c? -bR9t0kn
YvC2;+*̡mM8s["oG2Mwx[J4D6zzHtNiOt -la+*x1agɡsj}ZU -Z\2Z" 1 mhܢEDSҎF!Ψ.&u4ˑ4ʨ⮘,)yT~CRry4yu&wcWE8blrɈJ*YP/ -$IfK.fEi"$ƣ LsL w2JPh$OTR\M`ªLFv03lmqy
U,J悚w} EAE[$6f Bh`Mj,H1vEKW
PeFt7nWOW=?3!Yaɕ}:凙z`b7R1+s%w'fn4]C@AMhXaBVC IO$
$r -RV\ͱ[ODɪrMRz(x&!J"H3ͤ^w<216٘AI\bIzGıJmiqU'0f -0jZ4JBTHl74U/8V0Skrj -wRH{8`8OXQepU``blٻnI1ߐK -nNHuAHVWd6&TH.m\ -C!*Ȓ]Dt[ -CYhEaԨrqb=6M:x~ό0I}I-l zs[
+
U<jKWX[)>aZL -jCL`ISt(- -DiyS 7VSuMbSޣ9 LN'9>$#i8U"#nxHW|(4s4ݮ0[p1k4³`xobs.ix?(8\E^(**ifNH uwRyŜZ$t6(= 9MlȢg[iBg]Gt[}<$gqQe23lE5"\^sg'QS -@9Db^Cbd/+̤EMB@{Y"Z:XVn$(w-+aWrBaDG2>]8|;32zDvST,`@/C#1Y趼L0N带`KC ) 8bch;L -%boܐ4nl^lvAIcdFẗ#EPPiѩEϐAd:NŷM$,n<B9㏓#%φzJb(:
.6OB7Cbm2(K1:4r`2 -#DI2,(62A]FN?i9u\UHQ0gRkADnl0M)R1x$MyqZ"6EtgZr 9e,K[N_FD_Z$кH=ܰ)h968wҒB&/|!Qd;+ -Q*Ѣd -@ -<tz5TLK0GDwC!fCгbi^!-- -P"F3cAHuzx4 -"9Zc=haHkXm9dا
ՃKQxx0) "b0`,m,:B= -CQFNq^Kbh/]y4"! -ň 2d<X.b$gЋ<-"騞JbCtT+f0̙0tdbX(j4rpӒO3eÐv="[P딄+`ؔ0b"2MZ*mDgJ!`MgX3E$1#6_B5!ESi5*q7bq00t`0%jҦg`HԯePW)#, ۿyY`HIrT%˦DmU1ucgI`ļjDI='(X>,eh6t)9[?88Z`8yw[a{!3IVHKͥGR`x[n Z^ƀgN:$n5|V-KT|){zآg/74s
feɠjO[P`nP0{riY{CDo&Ϧ`|'uame$T#Dׄu,$-sY(O-xCh:uҮ0ZaUr#&a&O
C.P(B:XtDwb֪b-RPQB_cF9^/Kw@}V$?֥=k((jTNgCfP앬УEt)ۧD* -iGH,_-V!DHo;yB%9%bT%FGTp3y0E0$NM1$n9'#!!T_vsz0Nl"7s=Ԗ'I[fF쮮$),lX*_eDI=nV=>0qyn2LJ8a'DQ#MŰC k(pb6Ճ:ǯ(RygTBY3xԣ=53i$zw]hdT3a(eJ:ѭ$Һ''>cBK
0C!QJם^8iWQj2j>5Cf!B"-yÐPM0Pp%@i:oOưmNJz5YT"of%!JV1/Cn`Gt̕!OEtCO7-cQ`yB-§oi{4a*Z-r0
Mѧfl70d*X2NIŐBDw; x)^)
Ta+Lx#*pTOГ9ucʰh
2>5:C"GTiZ~!q0|OaX'ϺPnݔR -0(ˡB$N
腳>OAmf 5se 8T:2c,XIJjTBj;8a6\
0dB'I\1m-A*bEF0j;s$fŮՒ1WP7dT_Szl#dA&SnQ\'=5CjM+=cV7oR91QT]A -u -O!:Cx.Rr\<n˥=K0&!p6P"I1,DGtH>2K7sj%5`Q(r{Ve="_ -^x4*&;OOpcz7Bb\|~!A0 `RÌ6"+"\s:+.U`،?@:<545ɛ0D_.$DKQ-*\:a6 -K(iyÜJ30 -)=)2鵸eDK0i2DsaR!ץTZ!CYF0}Ű=bsھn -V -DjRȧиH=<<#N\*9zaUrqߖfpP0+2. ;g;@1t##qHCU!-&JIIиI{7DIP7{#d։?a66Qvu4I
veD6*r/+VY[Gdu3~Ͼ$G7 IN2оxNS!ۂ4҉R`C!(nWEt -eLNE"B;2Z!g=0ħ>0mb<I*ʭC8Mc\0ݤd,uYi0&!3H5b{y1(cpnjHJUj`b8wq*_Z -Qݢ*^Z
6(Խ1X -0}]l(rKBHr[';{ -* -X bXPATTDl{Zv̜9瞛,CHN;p]03b%&EClA+fhM7SsQ^oB#3U?N, -K]Ja:];N4,dESI1,یX՟iFʪ~
^3 ã}v]#x5,`iJ,uisaD)m:MUPg
;To"
-W&
#NWڵH j -R.ji9fd*JU9KCt@=f"0XY <1WtLÐiGs Yh -9>:>-ɳ?z-Ml/ļX9<aKʡaȺXCr> TV!nmnx%$L(i,AѲ -8e0=4?%
<kסKCY)!xla2Lꓳ !zÖ,lUikSqYڙlj/Gòr.
}N4$"ayP"#$e/;˵
crS+}E͛Ą_hK?0 Ɵ3ҰlT+q+
</x%F)ǐ[}_ZެƗw8({=!ykH,ix)KdhRizLƙpf(>,,[ -gEjqnv{z
Ю$͋c*Q=M&}-))7t -p4L|*htyƒD@Qch2иť#efrU }?2}~/9!a!T8?IfMX1
MAd \Hئae*CY?0SchGdјS%7ay^X0dmyl4ּ:{`nސ~VЗi壹84dE>`tò;W
-C%
9;QC>.+,'cpp_/(~IC -S
9ވhQNct4oLU28D8 -8Z(_WUq3bN_aps;-ITltO$#a^T0 +Y(p@e\Z*453B -<\wG9 Pi翲O.C~LU8W|ҌHK=\Nn0DW.!f(aSB3]=*p9@!8 - -q*)RBCw,[%<6GD^](>.
}iüaj LЬ+ǐih gw^ l= AUs3XzKI*1
g"w|*| -yb°X>Z"U*Z}"iglH6ٴe'),)So J!3t{XZ?*SRZG3-XX'Y.ui^
>eFFᑓp&F,c*E|& -PԤ*/Jh (7"UQA=cBs -|11c5d9ibwNi;bD8N0'}XC=qo gHBGH)ӑ9eެZs6#3dqZTR2yPBz_Ωݎti4YC4D,!j@3 -IQh
2eT➌հ"%T!?{H ܟEqaT
mQ i}>'c=:|@e`R:`FaM#aTaEGRQԌYc.1T4dTgף;,@DOݧy-V|ԔظviUiLHmaRuTdݣyvЬrqeӐ}/DC342ӈF -1Fa1lMzUԒYROGc4l= -A -+.,R1RCvɕ -hJJJjUBX
y5B,UYOH/@jc(c""WХ!uACK{hP<4}7/IM0+C'σI#&V1S^9«ZCl,sT]!9D -B`"&[go44_#
\Ky|?E2UNPgi6-UqHbKi_}O\7.)pLs
>- -!] -Eoy,U
&i^R,R -g1R4 J rjOD41Jw1cKH]C<&+@JStiA-^L!BtrRrΏhCr9W1ҳ"s0@(f*g8"F~9,%CQȍ4^GEPbޔtu¸7<c"ZL(6P -<oRۋjlNҸE"WIC|DgD=+Ghi(ICB2@00>~q{/G9CD=d'4BD<t -R2-Ҩ_*NrF=S] 4DmcKjKKST.=yv?ipbR3q;CR᧢.`KEPPS`>ڐa$R싫`-c(>&Q\1;a+0p#=XnN -yE9兣e)ĸv1b5'%9jKͨ#aúWhQm<"ad]_9G-4$4:(H+#%2av60-YtQ0o,`@K`D}D((Iԕ"/4c3A4'dWLut -9O-GqiWz42L>H`4t'h"_9`Dd)^W#`p1}V豴iUH2y34%?(;b"oB,rE\uzuU,OqW~y'%QKsw<]_Hfj:SHmvа9nhŲI7hdb3ۄ) -NbXrQf4DM%ZxĤWL\1P,QbiSh\y ->AAa"tP°9_cyEAAx4QGPȇ'Y[eg<A,bLk/C
L2=<PF#ST
wҐwlssd.VDRQ0,Cql@"pV4 -cfS4NoЏx%JK"ç#cD?11}YDO
RNuhB=@jS8j40&if$oq:Q9,R1bt>Caq -X,U(r0+ -BɁO_iʱIz3r#[11eGUqi4zZh,F(P1%79*CxaQ0+ˎDR -+J䖓2iS Aܡn -zy=_b(fQ03rOfƐaCWf TiLL0M)V|OUyBQGX ʰ-OS!11TN(c%T&Q0<D*Ta0X
zk
gڐ
%,GƏJvUxT"ddzT6hS,8)o%sXg|a}5"V}J Ę1&X>F^>0,C*P&Is{m(>ͤ|8zV -a:E\9`cQz_֑c|ՈY*,v"(<s -dHeTp4A,eǽOVkLYaPLCN/hRt_J
^ȌEjǐ -%#`nOln\Ec"Re4J]X/fVbdh' -g%Eb27a>#ńH=CKErtu`t R$#˄bxͅu4 -Ґ'ya:Bԫ'jX.99/9\adUm[LWJtزx|,ż)J <xO*g<>rՓ#^RtVRd0h觮dqFtLh?JȞ~-=;"ƽJmLC10<gFNrHKo\V1T)B!d"UR'5T9}7:BI"^X&bNdjƤI֔4[3@@hFq%tzP')2Se.a&
)1G+DC,HQjI'3MXhքݬГ4z
f36+6jHԆQ@V4.h)<QM~%P~RAXhs"|s|˛und+tJ$!tM/ 埘D%SB*K -fdL=Tptb0X2a|YXfk3,I͕ku 6T> G;E? ݮ &qLL,ZbΏϪPzL&ImNbpN:31@U<[h<Oa!4KdѶ -=A1:J>Ԍ!)cCrpe[2Racr -6pT9HC8Qh8
Me4ɧ2g+BF4)`̤|bVT&i *J)f#idSplh(LBEwTv&s4,1p*Z0ȱS!(HK/Nq̀KPP樣4,10c2ϥȮ
YVN@AL{F9XCrI9FcN~w\
+KM膖jͦNFS/cbҐ2`#ЖWQ;cX:7;y~$d2Xj{n8~_.sӄۥIE -m}mJ -8}L,N`b56₶`Tm뉣F㲆kDTMb8w3n%zx`6Y/aZ4^8/><6þQ砝lj89IM,e"hTgʾ'+Gid(ceLHZMwTްVA\A{<ǁuǐ=)v0Q jPo[İNY0(9~?+lpІ<D3Ni&lRm052dRc 2JCi;X&w4{F|%,.sC'zdficŦ t*Lvc;4T
di1ۥM(D>YL8@\9k*/J6BFU:vK`L>Q;
sĕ\i&TtW1,c_,:d'Ht.Att/#5O<@76h(c qkFi\-3`&05k~7VѪKP\?*7[OCr@x$F']i3*SPqQLi;oRd0D?aM6T; -+;c yhRYT0АE:RlʹյMVT%ˮvp\. 1QbdYƜʠ4PtJ-q<tW'(!UNWK&iV!y$SB*t,ijlDU= -t(#,1eGMSA?HEhs*AjU4
TBFETyVMd|\B/LMʉq7([ebȝԦ(-˿eNq:34HKҕfE -dR*"CJPLQyW.[F؋~}0ygt5'zx&<Ay=xB%}n-B¬h($4UVѝy݇GJfZ]EeZDۘE?FP~jj7U떱^9%մEN ;gRUggԏ4,QGÞ`9#6C['P)&&M`SG|0Rh1*1!CJcg1brf8*x'bxeW' mGuIR'aBE9HT]-k"wkfK9JVF/YҲz">WF7ӪeOX321 k?s$.9xIQJ.4gOЪDc-cBgL-JL-ĉE<G+A:GnB'$Э#dóF(>f=ەN4˛nuySGIh1PuޢQqʊ,H٤gAʀ?.mu!"qc>=Q%"*`h!_9<o1$} T'`m`y"GN:OӴx3f" -=A6D+r9uxN)d"FA@ -P-2yEXEWPUN Y=GnƉ~62@ȫGɊ,:rz_h=7l![}+P]im,6*e442 -33L
f+>E")F*# -0lY\vlzɖtUn,Z9*M(.1"YxP1TASy*QG`2㲮~I$RA$@9V`BV?FO%"jGè2++{̍3բQ=D2ψ3Xh o
?2l0 -aS3g|ynZӽ*1,ǖ9hȨ|FM`Ye>gEC5ȘG皼D]64-F2ΌC=ͤ{p81劂LVv`WZ`]崙Lqq0y7%|#Jf<e1WkT~@ G\#E"&jK=w"Hr*9 ,H쎡.1L
n/FM$2l0SltݶO,2س@k<"ʑ_bE+ogir#* &
!CƳRdqF׀I*\eȻ h0=8)Fl|+1S%K>`*NH}@R#+7dEk
fCUg%N3Vǰ4ǰ238sɨnV
-.T`fdJbE -E 01 -*05 -M\J&M#{ -Ohwd塳vO7Os2l9s0C\jˢ)@0*8d&zT51(8پv0Q,e)VQ${\1>Zzߑlb(?.L孋n|+杇 -ه%Rap]pW[i^?[ -E.,F)3jiܖ1)1<L"N:)*@ -DngOCVF=& 1_X2dëNj2JndnڢoNOI^yGZOR0+}6WH@JGV*>=wתYŏ~k -;Raog.eNkzբ0*zD)Qqh5&`IJǡ
OY8&+-yBDyrwAG>Su5:QyHF7.5Ɓ$.*["#nDm0`zQc8𱴉vQRXw -PрdO28"]k=/E+DŽɪ -V9xH#,`'+IBl,yړ|N{U524FGtD
40.+,R.%=lNIV9Z(=07N8}O>*բJJ,ܬGRRg"l.@)O=1' -{4sSUTDVn:)kߖ-ƫajѴpr(*EJ_y(!0`/VoRGت\$QZDưuXX_-o픓Fxd3zT
O -t%6*cX*'tآ?iŦ`#xcң*Ƌ_Z3ҧ>fR -(UNݵZu=b[-և*0Ώ`+M8 -i,yL`k -貨?E.wP43F iʜ`"[hڜV$}" -
A uUܥ]+Dx%WfAܸ@(Mmt$BwK,TS!i
,tpJ8]*t*]!wt <Gg -lOZ:gB<L -&:3jԮ ƚصg߷WNm[ùujTG O`{=7?Ѻp - T 9UD),`!^<Xm;;p#FܿOgg6/z:`)"*-)>0㥿M$,9es#:t3`ȈQnj9lPImGM<@H`&9%IcP\(>Q/r-ZD:
3Q8X
1zcGҿWv-b6b̛1N -q 85kժmZj5ŨQPd=V)KA'q>r-kT/Sdծ,,jݩg!#N<yӭ -%ϬQ.7+κQԬE˖ŭpv\W-(%pcL=|v+E֨Sf"Əfy; -RaHX~~/ݣkvb&Vݚ xgYfm5" {.&,@[PAg0:`Ȉ1L5we+Wu߰K//K/ٸaE.X{ު/ -xoiK|jʔɓ&N7f!KzuئońʕEeedc؎,Ys̞1Uw#ԗ[,0%z4|g_@/tUW_ڭ[õu[+.tu`KΝ5mؑCѹ}Hi'**+*͌K{"-uY2hبqT3oH,̟7Qkײr4kװ(N,vȚ;9ضja ;qڬys6\zWoz7m~˭v;nn\}嗬pKΙ1y,=.5~ZѲd\fsF]{ sqEKXyΪUWV^꜕($A?t@[&3`)"P9(3X0bPX0xI,\/xٕƛo;q}߿s<sw7pݖt/7}wj۲ Pΰfȸ``E7y<:_oذaÂOufe͜<EF_"Hdr#Em:c"k}@o -ěBx8Ppɪ6^yMc -?#J?`~ -$(mD." -&@UZˎ$hݽZ4cmK56"X ~JxA./?}G`G6X:dQhYgF
:x! oݵi -S_JK.Bk#u.X *qH[|Gu -,;V -V* .V܌֡w_{nnENDl RXr|I|
'Y:ik^4yb}i';vSg_{|7 ` -Be%57O}m Vp j
i G\`|w~K_,ӰޑE{T>)&?aԙ0.z-Ç~yMWoXdʱiCbcXE:XgX4@zRd-$fM:yҤI͜xZX _{'_~O?RpiV!;/غ+ձްp -SNKHdaɞ(ӛ:e3.Zq -;w>B4p%~X/gƋ>cK_>g6: -`a$ыnձgaX3˗v9}ڴiXZXx+ ->R?XRX<l!a" -=
ֲ+W,Z>WzұҎHDSK -HS,;TƙgUgG(cpɲZYXiц`K@^BKRa0l>`խY㬳p&gfY -Yu߳_fҫC*JOPUV:$l^4YhD=Hd;)c.~sZ?tVΕÍl -KKKmEYTXkۀDE`-uŵ:Za%͗~~gؽm:<CjPN:2sы/YK%XdSxT,Kןz_:sn;T-Xi
թS~#:]& Az@(Uopo_~f/:<,5CWU`֭ Dp) p #X="2L\y.=
-Sq* -:_EfwU5u`*ZW[1D_U`o84lnѾ`9s̝p9cQ֎&ժXSRsOViǖUj7jP~4,Մ呄Y 䜵71Xd~_`UĮoꢕs' 3Rh8AF&8\VtSy$`5k̙Mj`U ^
-;<$j8"#,WՌgΞG~ׂBЀB`)S -V?3QFܰ**̣ӦϜp.۲
|՟,*gg Vըq7EDt65#N<e٣ -7
)7`T>a$t: -𮛮HmZzH^7#==X"C~CpÜy䋩&;nX/!*M;k܉QZ`5C232<&x_&CA3z g_v+Gߐܝ1T -[ZXUdfLq_rE:nj9r؉.Y}ѦnoꝭRߐanp<*
/a!X~
[MmsÇ=~E\x>UM濶3{/X6sZz'Q VsvzM# tt&OաC;y_e;G_ųdc;ozȅr2֮x+}M,hͽ5n
2|4~Zq`?&|ʖ[d),kjb(t15a`=C]W@g^zK&,*s_6FX[ĂMdee䇍8}FLFF
<_IIAFOhEWਠeqա!w\wpv^Ζ234m!$fL#O˷: UW"lf9DyÄ唂4i6#%͚>yaճg2wKlaE4U!@AJ}NZ)d-99x]Z8s$Wnz7xYpMw?KuNfnRY`fVnӦy8ʶ)xTΝv3`ιx1whDB;8+CNVM
5gF$"eD?j>=p^V=K2w(4'Uz}D y.2L%Xqo~
mWoGkڵԭgL~RJm$~D+|OwNXP ?+k9vatܾmmwoWipϼ,Ně5leDzRWIMUQ4#8õ/ޅfGv=hԔy+/t*JR?zu
IQVYrEթUQ,; 5}baIZhެEqN=0{)Kqp&S `Crʚ?E,vv,=e`ܫSfp8"gJ+S֡MfFQV`<ZLe<$B):Z`2xfu_|Ѹ*jG
<cޝ4G#xb*=̼V`(;̈prFNBcZ?w{Y=Hl8L-X8V:,ЭeR%;iQ+@w;t<(BfX~e9XKU-(VԁէKh,^R *N -H"1z
=u(DVH+zDM9Cs"X -FQ~Fa%jE1|M,%覫@,jדuA`ueu͗4;o{Q'~;-nѢevBYS%nefdPU>d=lfF:rT$Xos<XW^SH'.zԮUq1P2*r~aynS`kY<G=πĢ5{R5~3#m)6z֭Znױ[Cc8g,|571VoeqÔ{P(l$;$,Dt]=qD^]:mӦ-0p/Lkؠ~\MGk%.}I}ژspXYc8}T!l/&NHLXzuخm"N,Y"B֍wbc -^!o2jBSn -:j~eT5i:_&ԮZNx8ͅGTj>ۯ|;o!v -`vCI"X -GOlr!Okh nWfo)ºҩ#靮4-X;]|w+oƁi 1aaaq;GYxvm۠`;{:8&%hȸtyTUpgw#o9ߢuA":o&[e'FEGDBā<*qOTQCx]x]$yF_mv#?V߽|Ł
{cUZ`z<XmȨhmbF!bh bTx_T2US>j5xb{x5A企p ѱCrgN $RJ&RlHONġSRV^F5>@zm[/rS|LJVQXHo9hI
GwxKQ#_xw>X
Qh=iL`e$hcbbS3=MI e٣^$W @4?~ba"X/:ge -FM|*YiՅtzxGm__pFRDޔ[G5X"|}:nKLNӱQXARPm!WUE[rGOh=yv ❏PzH:Ö%`~%ZtZص3+ -\]˾sAZaWN?4?+#%)11)5Bܟ֬~ioEҦfU<gɪM;;}:G0O;_լL*Ī_)C״*tg5 ;359)5H!(
*un}2FK)Cej%raO^|@LϒIy
:!Tĭ^>|'9F66OJWi
o),]ZJJ -: -7D'Juv`ǧ6=FCK-H &^LސHڙ{#XAG
#nlOXtf*g$'rt驩Y(ڏ+J$hMQ2$eibSsPFUփ^8N#8xdjv5ϛ -`HOK)9VQBD a%?diKi@њh:"4z\_w/+YVRG"V7?utk/ -_Eqz]fNN))Eh}Ȣeϡ=|D崹K?_uׁPEZ/T?LFY=w*P~V/=e,>,R]dtzSD%%v;=}˗/ꫯ-^ųPeW(/d("ES3:y`!ZDDBtzͦ>W|xL -믾|;7Sٴv*GsͱxjQVm6=w268qk7ns{[ݽ{._8sȾV/?c!fX,wII(ZBkf -Xr#+Y|mݼs!EBĀA -Bu^+_7VX$BT\6<rƂeؘ9~3gΞ=gΞ=sǏڷk5Ջ:#+
6E!թeSR:vɷVN}$~xVq),ڵ0KWsGx%k/^<o^rGݹufLB x}4x]ԕA(L쁨传jMvwG=zAё#<o¦0z"yBpa4lpVn]=4S8x Sg/{W? --?6a -#dj?^-1;q9.^Zlje˗/Zx3M?z^LOq.`ҁQ1">T1pkIAq Sg[Tb5}' -E[I@]4WCak22si|xcq+'L8qM8qƌ1 -2Av2Ʃ/V|J,OD&@ ,**V"0h`aA~!/%)^{L)(>DG]Re_oo7MICGCL6c֜y.ZdҥUUUK.YxтsgϚ>uqGa9ҒxD30=Ip2gh-GZ -
'$$"0,OHDGFFD%``ZG\wpi|C#b2bG;lQcƎ7~|eǍ3zQ\ZT3 #51.:<$ru)ֹVdneZZR/ (8$4,,,¦oBC}x{vn v_!w%EײFn -E\ )\ǃQXTR:hzEٳ0?B6:"4ϧJ.PuAq[5+ֵC- GgLgȯx{yѨ4x%$"6;Z4uݗEd..Ww\|Dtl<:}V!7/ -F qFaŻ@MñJJE0iJT(2)1/8_rY,"U"!ŏ%ߌLji)I DE R*9#BBUC]#v:uнcog>nbV_znn}qss#>G
vahQt!E -W{QOGgWw\F T6gxhHP_~psݫ -QbcT -/A!!h!A~>ޞ4*Suڙ@deV
,1ҵ{&"i/kPY9{zL~@ͺJ\,R;r><X*WԚ<S!ESTȤ>.)pNڷEjC8@Ykֶ]{ -s@&eY_U+KWv#J[]N!P RĩXzKP*'^ւJ{2(=!p]j|d0e,✞Y¬u(7 -+wg7Տ,)`-ZJn -@H&ۮgl
uUL}2Scq&=,Vx=KȬ&?p"@H5-T<\jVdcn12|ht\2uuZvl_PzfJ -$Q#joj?30OZ>!zCn:2*OX66&,0Z>6B8{ڿO6Gܢ-IȨ@_/LLeW7M=ƚ-[[q7 (gM{ıZrpm!B@kƯՒ8KO_S*pΟ5jڶ7fU/zzF)9㦕&s,Od5K8tru8{RI^tXˏv1Cv+&He2p -3iՒޮNEALIk0CdI隹iۮ5k^:v Lw]ooLŭ_n]iޱLEjӮ}tiLMn;ݱ#YM#@8 Y5}2YL#F&[|,f|Βk/ڽÊ7-n푟喢^wc, j.\qḯK9px5vҔ_i\p&X~֬iOh7 -ŸiKIwP0,~So~[w;{gd%9z.97Tr.ʮεN"__Ңv*Fhd"wJTiTb;X0Q;djH)fTRH!V2jF %Vak-3dJKeE}SQ:PRGE "H().1 -JDξ9YR%YF
>N.Jv2jȠ䦲AD,W%5roQdzF,Q၀JPB"Z -Tm'oX*LpOʶ㋔ -xPR5\#!jRBHRD"*2pF#y} $R@5Ci2,SJ)QT -Tΐhm).TEd)S*%jpJxD>,OW0{1(yJ9TM cZj*g - Zh/0@P鷗Cx¿r#% -Z3F - -L/d/F0*/hTowE
RRa"p.x\FZsĖ픦wSL-xG(5SLM29t46R^EViR&{DY[pc\6I3̊6X`kCK -*wBJZeB -=A* -Z>X` J0 -~k vrJP9 ggSL?IϤ6BH}m3
)a +>599
B +7N$-aǞ;f,Kڎ5F3,pذ&EyCR +yhV)qdڟ _S:u+g3IL`eRRR22Yt +8$rhGH,UjًW9?^̂ +w3 +RHRMphV՞~!tGji´YVٴu_pkoܨ R_W\xڽv +ۛj,.v!Y
G&N5oђ+W^~}
Ȇmׯ^zϞ1e ^HKy>hB,ŘT}pkI~iԙ-[Ua3൯ +rq9< +Rjo>V#$)5^~1q`2dl5J4&{
4$1.ֆAPg`!Ĕ:n`镳fϝ7E,?o3^ғb*8wY tlRӢ;_`HXH܈Dd! #bDE L4#Ew.&evE4^}PtaGf0ŁvIN>}ƌ3fL6udRwLiQAn1A~^ZqYui1I/ (dXhXxxHMwBvn_>-E7#7"1.OG
QPTR:dzE ٳ /Bb\LdXpSbqY+δ#- 'PM<||}Ql +ysNDnw$&v\4kE7\"]j6]o6y2GSc#B)/ZLB$fFX 70bt&`Jh6hjU* +ya!DI7=JzZZjrg#Æ!R:9pPvPqtI{}0]&7*LG} L(gѾVFE +W_; 'wy GGDEPJ\,!ψА +6,44%3$(0SQ) +Q,).z^ן0+;;%8}@u!HxH/bp(YҁJ210?7[5ײKY
⍞iO¬(7 +~t#g[PSR}[q6QQZza)zMV֑6B~NVG\ + U@?/-BK#G
L[?+PDZ4E8-fU+]Ə51g=PG/yZ)wsM+fX6g,ĥ}9˕*\ר"`qc{3OdrRTUp)Zv2Hӆ`ݝ,K>;;QsIi:8͙wPk}߭M}ګo{A(d!_ +~[1%vyް̦EڽG^45DIz{7,QbK>lI +g4~K668Uێa7{pB];qm$X~Ҧ9'li(*b{y=TH¯aʯkU@^{y/!$;`2HB%a*=g(7$)(?˔_Zb( +Mrz
ER'I)|HS_#EFg|'TH!%$6%Mhd:-SJݕZH%*V%gHժZT-c4 +T%S3ZF
-V?)ɱ}'N^^R2J=*JgGBI~Viq,$W]i.5MВYa +SA;w%Z1JPܝr
kneJ+k&7߲:\[V&= +)+rZV(gIx]AY'n(-# INҤ[5'[uЃ/8mغmVo5|2:=Aoĭ"7FY%#_oo/_"2wu0TJos1Ʋl}q~\@:D2~` +\Q8 +Z+1: +1JTZ%M +F&jt?pE\U6fdF2rg\
d +m@lBIؘ--3dKLR댺(Z- ZYS`d +Bሌ* JT`:½ZF*ʁҀbaP'@HO~=ܺѺl3u?5ByFo[_zoxT1,mF, +uz|NiY1}c#Lz%m8R A":5ط@. xҰJ%/ +x:9 +BV +\βR +tXqT';H*f# +P!- +b, mS2Mh)nZr
~]^,| +25d+MQ|-siS
JFղZz¿ +MMVJPl4*ba@\UZ<$[ZgmËlFDOfV}L9ȟv7H?r`wYॅ~W%*|/(:BK`K꜍i +Nl*:NɕJ%F{E^L*UB F^XѨmh8)N{?3{?34K!aDfR͉ke`7W7sAsCO(hau:sRKb MOxR;U,mR+嬥}կ7ިΆiZ[یEj
*N/iPhje:JtpiR1#cZ'V?2kbS0qZE %:2!?>˫a6i-&15}c:Q_/+
+9J#Rk,]h,W[:F׆SgFˈ|ZhjbHa\E@LEF3iHVEVk +Ѽ|x̊%VUl#mD㯋hH=@P ZƎZ[eL_Z߹%7{fLX[@sU˅C + 2wwpC1̐_d,Rd
Hsˌ2#ķ!8&DuP
endstream
endobj
5 0 obj
<</Intent 58 0 R/Name(Layer 1)/Type/OCG/Usage 59 0 R>>
endobj
58 0 obj
[/View/Design]
endobj
59 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>>
endobj
69 0 obj
[68 0 R]
endobj
129 0 obj
<</CreationDate(D:20140609221420-04'00')/Creator(Adobe Illustrator CS6 \(Macintosh\))/ModDate(D:20140915185856-04'00')/Producer(Adobe PDF library 10.01)/Title(ic_launcher_material)>>
endobj
xref
0 130
0000000004 65535 f
0000000016 00000 n
-0000000144 00000 n
-0000048454 00000 n
+0000000159 00000 n
+0000047957 00000 n
+0000000000 00000 f
+0000402265 00000 n
+0000000000 00000 f
+0000048008 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000402335 00000 n
+0000402366 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
0000000000 00000 f
-0000130120 00000 n
-0000403644 00000 n
-0000048505 00000 n
-0000049000 00000 n
-0000049395 00000 n
-0000130919 00000 n
-0000054062 00000 n
-0000130306 00000 n
-0000130421 00000 n
-0000130546 00000 n
-0000130669 00000 n
-0000130794 00000 n
-0000050277 00000 n
-0000050856 00000 n
-0000051340 00000 n
-0000051828 00000 n
-0000052313 00000 n
-0000052973 00000 n
-0000053601 00000 n
-0000049459 00000 n
-0000049716 00000 n
-0000049764 00000 n
-0000055978 00000 n
-0000129996 00000 n
-0000056041 00000 n
-0000054427 00000 n
-0000055001 00000 n
-0000054490 00000 n
-0000054364 00000 n
-0000054301 00000 n
-0000054238 00000 n
-0000054175 00000 n
-0000053999 00000 n
+0000129646 00000 n
+0000402451 00000 n
+0000048506 00000 n
+0000048904 00000 n
+0000130450 00000 n
+0000053583 00000 n
+0000129837 00000 n
+0000129952 00000 n
+0000130077 00000 n
+0000130200 00000 n
+0000130325 00000 n
+0000049787 00000 n
+0000050369 00000 n
+0000050858 00000 n
+0000051348 00000 n
+0000051834 00000 n
+0000052494 00000 n
+0000053122 00000 n
+0000048969 00000 n
+0000049226 00000 n
+0000049274 00000 n
+0000055524 00000 n
+0000129522 00000 n
+0000055587 00000 n
+0000053948 00000 n
+0000054528 00000 n
+0000054011 00000 n
+0000053885 00000 n
+0000053822 00000 n
+0000053759 00000 n
+0000053696 00000 n
+0000053520 00000 n
+0000054166 00000 n
+0000054287 00000 n
+0000054406 00000 n
0000054644 00000 n
-0000054762 00000 n
-0000054880 00000 n
-0000055116 00000 n
-0000055169 00000 n
-0000055476 00000 n
-0000055553 00000 n
-0000055708 00000 n
-0000055826 00000 n
-0000055900 00000 n
-0000056340 00000 n
-0000107737 00000 n
-0000056403 00000 n
-0000086172 00000 n
-0000107851 00000 n
-0000107914 00000 n
-0000107944 00000 n
-0000108243 00000 n
-0000129884 00000 n
-0000108319 00000 n
-0000130190 00000 n
-0000130221 00000 n
-0000130993 00000 n
-0000131233 00000 n
-0000132398 00000 n
-0000160645 00000 n
-0000226233 00000 n
-0000291821 00000 n
-0000357409 00000 n
-0000403667 00000 n
-trailer
<</Size 68/Root 1 0 R/Info 67 0 R/ID[<4BA7FAB7356E41909CB7D5B4D79243C8><6BCE8F216A0041368D1D10A456D0F959>]>>
startxref
403866
%%EOF
\ No newline at end of file +0000054699 00000 n
+0000055014 00000 n
+0000055092 00000 n
+0000055249 00000 n
+0000055370 00000 n
+0000055445 00000 n
+0000055889 00000 n
+0000107282 00000 n
+0000055953 00000 n
+0000085748 00000 n
+0000107398 00000 n
+0000107464 00000 n
+0000107495 00000 n
+0000107798 00000 n
+0000129409 00000 n
+0000107875 00000 n
+0000129719 00000 n
+0000129751 00000 n
+0000130525 00000 n
+0000130772 00000 n
+0000131961 00000 n
+0000160161 00000 n
+0000225750 00000 n
+0000291339 00000 n
+0000356928 00000 n
+0000402476 00000 n
+trailer
<</Size 130/Root 1 0 R/Info 129 0 R/ID[<4BA7FAB7356E41909CB7D5B4D79243C8><9C5A7C4BFABD4AC0BB0739542B645821>]>>
startxref
402676
%%EOF
\ No newline at end of file diff --git a/binaries/iosched-lpreview.apk b/binaries/iosched-lpreview.apk Binary files differdeleted file mode 100644 index 5c2afe9..0000000 --- a/binaries/iosched-lpreview.apk +++ /dev/null diff --git a/build.gradle b/build.gradle index ca820e2..bf3a80f 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.12.+' + classpath 'com.android.tools.build:gradle:1.0.0' } } diff --git a/doc/BUILDING.md b/doc/BUILDING.md index 38bb756..8f96633 100644 --- a/doc/BUILDING.md +++ b/doc/BUILDING.md @@ -12,24 +12,24 @@ See the License for the specific language governing permissions and limitations under the License. - # How to build IOSched -Note: while these instructions allow you to build iosched, much of the -functionality that depends on server APIs won't work because in order to -do that you need to configure your own project in Google Developer -Console, create API keys, etc. For more information about what you -need to set up, refer to [Server side setup](#server-side-setup). +This is a Gradle-based project that works best with [Android Studio]. -This is a Gradle-based project that works best with -[Android Studio](http://developer.android.com/sdk/installing/studio.html) +<hr> +> __Note I__: While the instructions below allow you to build IOSched, much of + the functionality that depends on server APIs won't work because in order to + do that you need to configure your own project in Google Developer + Console (create API keys, etc). These additional steps required to set up, + are outlined in the [Server side setup] section in this document. -> __NOTE__: Building the project as-is requires the Android Wear SDK, which you - can download from http://developer.android.com/wear/. If you wish to build - without Android Wear support, please refer to the [Building without Android - Wear](#building-without-android-wear) section. +> __NOTE II__: If you NOT wish to build with Android Wear support, further + details can be found in the [Building without Android Wear] section in this + document. + +<hr> -To build the app: +## Building the app 1. Install the following software: - Android SDK: @@ -40,19 +40,17 @@ To build the app: http://developer.android.com/sdk/installing/studio.html 2. Run the Android SDK Manager by pressing the SDK Manager toolbar button - in Android Studio or by running the 'android' command in a terminal + in Android Studio or by running the `android` command in a terminal window. - 3. In the Android SDK Manager, ensure that the following are installed, and are updated to the latest available version: - - Tools > Android SDK Platform-tools (rev 20 or above) - - Tools > Android SDK Tools (rev 23.0.2 or above) + - Tools > Android SDK Platform-tools (rev 21 or above) + - Tools > Android SDK Tools (rev 23.0.5 or above) - Tools > Android SDK Build-tools version 20 - - Tools > Android SDK Build-tools version 19.1 - - Android 4.4 > SDK Platform (API 19) - - Android 4.4W > SDK Platform (API 20) - - Android L (API 20, L Preview) + - Tools > Android SDK Build-tools version 21 (rev 21.0.2 or above) + - Android 4.4W2 > SDK Platform (API 20) + - Android 5.0 > SDK Platform (API 21) - Extras > Android Support Repository - Extras > Android Support Library - Extras > Google Play services @@ -60,7 +58,7 @@ To build the app: 4. Create a file in your working directory called local.properties, containing the path to your Android SDK. Use local.properties.example as a - model. + model. _(On Windows, use a double-backslash (`\\`) as a path separator!)_ 5. Import the project in Android Studio: @@ -68,104 +66,115 @@ To build the app: 2. Navigate to and choose the settings.gradle file in this project 3. Press OK -6. Add your debug keystore to the project (save it as android/debug.keystore), +6. Add your debug keystore to the project (save it as android/debug.keystore), or modify the build.gradle file to point to your key. + > __NOTE__: In debug mode, you sign your app with a debug certificate + generated by the Android SDK. _(This certificate has a private key and a + known password.)_ To sign your app in release mode, you need to generate + your own certificate. If you haven't done so yet, please refer to the + [App Signing] guide for further details. Also, if you wish to build with + Android Wear support, for further details please refer to the guide + [Packaging Wearable Apps]. + 7. Choose Build > Make Project in Android Studio or run the following - command in the project root directory: - ``` + command in the project root directory: + ```sh ./gradlew clean assembleDebug - ``` -8. To install on your test device: - - ``` - ./gradlew installClassicDebug - ``` + ``` +8. To install on your test device: + ```sh + ./gradlew installDebug + ``` ## Building without Android Wear -If you do not wish to build the Android Wear component, you can remove or -comment out the following line on android/build.gradle: - - wearApp project(":Wearable") - -Also, remove ':Wearable' from settings.gradle, leaving only ':android'. - - -## Building with Android L Preview SDK - -If you wish to build the project with the Android L Preview SDK to see the -full experience, you need to set the lpreview property when building: - - ./gradlew clean - ./gradlew -Plpreview assembleDebug - -To install on your test device, use: +If you do NOT wish to build the Android Wear component, you need to make the two +changes below. - ./gradlew -Plpreview installLpreviewDebug - -You will need a device flashed with the Android L preview system image, or -you can use the emulator. + 1. Open android/build.gradle and remove (or comment out) the following line: + ``` + wearApp project(":Wearable") + ``` + 2. Open settings.gradle and remove `':Wearable'`, leaving only `':android'`. # Server-side setup -These steps are optional, in the sense that IOSched will build and run -even if you don't set up the server side. However, unless you perform -this setup, your build won't be able to use any of the Google APIs -such as Google sign in, Google Drive integration, Google Maps integration, -etc. So following the instructions in this section is highly -recommended. +> __NOTE__: These steps are optional, in the sense that IOSched will build and + run even if you don't set up the server side. However, unless you perform + this setup, your build won't be able to use any of the Google APIs such as + Google sign in, Google Drive integration, Google Maps integration, etc. So + following the instructions in this section is highly recommended. -0. Change the project's package name to your own package name. -To do that, you can set the "package" attribute of the <manifest> -tag in AndroidManifest.xml. +1. Change the project's package name to your own package name. To do that, you +can set the "package" attribute of the <manifest> tag in AndroidManifest.xml. -1. Create a project in the Google Developers Console, -at https://cloud.google.com/console +2. Create a project in the Google Developers Console, at + https://cloud.google.com/console -2. Note your project's Project ID. It is a 11-12 digit sequence -that appears in the URL, indicated by ########### below: +3. Note your project's Project ID. It is a 11-12 digit sequence that appears in +the URL; indicated by ########### below: ``` https://console.developers.google.com/project/###########/... ``` Write down this project ID number you will need it soon. -3. In the APIs and Auth section, enable these APIs: +4. Navigate to "APIs and auth" > "APIs" and enable all of the following APIs: - Drive API - Google Cloud Messaging for Android - Google Maps Android API v2 - Google+ API - YouTube Data API v3 -4. In the Credentials section, create a Client ID for Android applications -with your package name and your certificate fingerprint. As a reminder, -you can get your debug certificate fingerprint by issuing this command: - ``` +5. Navigate to "APIs and auth" > "Credentials" and create a new Client ID for +Android applications with the package name (as defined in AndroidManifest.xml in +Step 1) and your debug certificate fingerprint. As a reminder, to get your debug +certificate fingerprint, run the following command (on Windows, substitute +`%USERPROFILE%` for `$HOME`): + ```sh keytool -exportcert -alias androiddebugkey \ -keystore $HOME/.android/debug.keystore -list -v ``` - It's also advisable to create a Client ID corresponding to your release + It's also advisable to create a 2nd Client ID corresponding to your release certificate as well. To get your release certificate's fingerprint, run: - ``` + ```sh keytool -exportcert -alias your-key-name \ -keystore /path/to/your/release/keystore/file -list -v ``` - -5. Still in the Credentials section, create an API Key for Public API -access. The key's type is Key for Android applications, and you should -add both your debug and release certificate fingerprints in the -list of accepted certificates. Note the API key you created. It's -a long alphanumeric string with digits, letters and with a -few underscores. - -6. Enter your API Key from Step 5 into this file: + > __NOTE__: In order to create a Client ID, you might be required to set up + the consent screen first! _(That's the screen that will be shown to + users whenever you request access to their private data using your + Client ID.)_ To do so, go to "APIs and auth" > "Consent screen", enter a + "PRODUCT NAME" and click "Save". Finally, go back to Step 5 to create + your Client ID(s). + +6. Still at the "Credentials" page, create an API Key for Public API access. +As a key type use _"Key for Android applications"_, and you should add both your +debug and release certificate fingerprints in the list of accepted certificates. +Note the API key you created. _(It's a long alphanumeric string that may contain +digits, letters and underscores.)_ + +7. Enter the API key from Step 6 into this file: ``` android/src/main/res/values/maps_api_key.xml ``` -7. Enter your API key in the YOUTUBE_API_KEY constant in Config.java +8. Enter the API key from Step 6, as a value for the `YOUTUBE_API_KEY` constant, + into this file: + ``` + android/src/main/java/com/google/samples/apps/iosched/Config.java + ``` + +<hr> + +Done. IOSched should now work with Google sign in, Google Drive and Maps +integration. Note that we did NOT include setting up GCM. For more information +about this, see the [CUSTOM.md] file. -Done. IOSched should now work with Google sign in, Google Drive -integration and Maps integration. Note that we did NOT include -setting up GCM. For more information about this, see [CUSTOM.md](CUSTOM.md). +[Android Studio]:http://developer.android.com/sdk/installing/studio.html +[App Signing]:http://developer.android.com/tools/publishing/app-signing.html#studio +[Building without Android Wear]:https://github.com/google/iosched/blob/master/doc/BUILDING.md#building-without-android-wear +[CUSTOM.md]:https://github.com/google/iosched/blob/master/doc/CUSTOM.md +[Packaging Wearable Apps]:http://developer.android.com/training/wearables/apps/packaging.html +[Server side setup]:https://github.com/google/iosched/blob/master/doc/BUILDING.md#server-side-setup diff --git a/doc/IMAGES.md b/doc/IMAGES.md index 76feba6..2fc995c 100644 --- a/doc/IMAGES.md +++ b/doc/IMAGES.md @@ -77,7 +77,7 @@ Means that this image can be fetched at any of the following URLs: URL | Image size --- | ---------- -myserver.com/images/**__w-200-400-600-800-1000__**/session1.jpg | original +myserver.com/images/**\_\_w-200-400-600-800-1000\_\_**/session1.jpg | original myserver.com/images/w200/session1.jpg | 200px wide myserver.com/images/w400/session1.jpg | 400px wide myserver.com/images/w600/session1.jpg | 600px wide diff --git a/gcm-server/build.gradle b/gcm-server/build.gradle index 3079d11..dc529e3 100644 --- a/gcm-server/build.gradle +++ b/gcm-server/build.gradle @@ -52,7 +52,6 @@ gae { downloadSdk = true appcfg { - email = 'mangini@google.com' passIn = true oauth2 = true diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..74d7622 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,24 @@ +# +# Properties for the build which can be overridden locally. +# +# This allows build keys to be set where the app is being built in +# a gradle.properties override. See; +# +# http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html#sec:gradle_properties_and_system_properties +# +# for more information on the overriding system. +# + +# The store file location is relative to the module base, and so needs to go +# up one level of the directory hierarchy to get to the project root. + +iosched14_android_debugkey_storefile = ../android/debug.keystore +iosched14_android_debugkey_storePassword = android +iosched14_android_debugkey_keyAlias = androiddebugkey +iosched14_android_debugkey_keyPassword = android + +iosched14_android_releasekey_storefile = ../android/debug.keystore +iosched14_android_releasekey_storePassword = android +iosched14_android_releasekey_keyAlias = androiddebugkey +iosched14_android_releasekey_keyPassword = android + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3a78919..137e0e6 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip +distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip |