From f9869374244207e995883d7bba40d4def3503c1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Tue, 17 Oct 2023 13:39:40 +0200 Subject: [PATCH 1/6] MOBILE-4362 activity: Show only description on list mod type page --- .../components/module/core-course-module.html | 6 ++-- .../course/components/module/module.ts | 29 ++++++++++++++----- .../pages/list-mod-type/list-mod-type.html | 11 ++++++- .../pages/list-mod-type/list-mod-type.ts | 25 +++++++++++----- 4 files changed, 52 insertions(+), 19 deletions(-) diff --git a/src/core/features/course/components/module/core-course-module.html b/src/core/features/course/components/module/core-course-module.html index 209ee9b14..98b0ee2ac 100644 --- a/src/core/features/course/components/module/core-course-module.html +++ b/src/core/features/course/components/module/core-course-module.html @@ -80,14 +80,14 @@ -
-
+
@@ -95,7 +95,7 @@
-
diff --git a/src/core/features/course/components/module/module.ts b/src/core/features/course/components/module/module.ts index cccd63e81..439b3dab6 100644 --- a/src/core/features/course/components/module/module.ts +++ b/src/core/features/course/components/module/module.ts @@ -50,6 +50,11 @@ export class CoreCourseModuleComponent implements OnInit, OnDestroy { @Input() showActivityDates = false; // Whether to show activity dates. @Input() showCompletionConditions = false; // Whether to show activity completion conditions. @Input() showLegacyCompletion?: boolean; // Whether to show module completion in the old format. + @Input() showCompletion = true; // Whether to show module completion. + @Input() showAvailability = true; // Whether to show module availability. + @Input() showExtra = true; // Whether to show extra badges. + @Input() showDownloadStatus = true; // Whether to show download status. + @Input() showIndentation = true; // Whether to show indentation @Input() isLastViewed = false; // Whether it's the last module viewed in a course. @Output() completionChanged = new EventEmitter(); // Notify when module completion changes. @HostBinding('class.indented') indented = false; @@ -70,14 +75,24 @@ export class CoreCourseModuleComponent implements OnInit, OnDestroy { */ async ngOnInit(): Promise { const site = CoreSites.getRequiredCurrentSite(); - const enableIndentation = await CoreCourse.isCourseIndentationEnabled(site, this.module.course); - this.indented = enableIndentation && this.module.indent > 0; + if (this.showIndentation && this.module.indent > 0) { + this.indented = await CoreCourse.isCourseIndentationEnabled(site, this.module.course); + } else { + this.indented = false; + } this.modNameTranslated = CoreCourse.translateModuleName(this.module.modname, this.module.modplural); - this.showLegacyCompletion = this.showLegacyCompletion ?? - CoreConstants.CONFIG.uselegacycompletion ?? - !site.isVersionGreaterEqualThan('3.11'); - this.checkShowCompletion(); + if (this.showCompletion) { + this.showLegacyCompletion = this.showLegacyCompletion ?? + CoreConstants.CONFIG.uselegacycompletion ?? + !site.isVersionGreaterEqualThan('3.11'); + this.checkShowCompletion(); + } else { + this.showLegacyCompletion = false; + this.showCompletionConditions = false; + this.showManualCompletion = false; + this.hasCompletion = false; + } if (!this.module.handlerData) { return; @@ -86,7 +101,7 @@ export class CoreCourseModuleComponent implements OnInit, OnDestroy { this.module.handlerData.a11yTitle = this.module.handlerData.a11yTitle ?? this.module.handlerData.title; this.moduleHasView = CoreCourse.moduleHasView(this.module); - if (this.module.handlerData?.showDownloadButton) { + if (this.showDownloadStatus && this.module.handlerData.showDownloadButton) { const status = await CoreCourseModulePrefetchDelegate.getModuleStatus(this.module, this.module.course); this.updateModuleStatus(status); diff --git a/src/core/features/course/pages/list-mod-type/list-mod-type.html b/src/core/features/course/pages/list-mod-type/list-mod-type.html index edf62be15..8fdd57ed8 100644 --- a/src/core/features/course/pages/list-mod-type/list-mod-type.html +++ b/src/core/features/course/pages/list-mod-type/list-mod-type.html @@ -18,8 +18,17 @@ + + +

+ + +

+
+
- +
diff --git a/src/core/features/course/pages/list-mod-type/list-mod-type.ts b/src/core/features/course/pages/list-mod-type/list-mod-type.ts index c27314dcc..8e9ab9a25 100644 --- a/src/core/features/course/pages/list-mod-type/list-mod-type.ts +++ b/src/core/features/course/pages/list-mod-type/list-mod-type.ts @@ -37,7 +37,7 @@ export class CoreCourseListModTypePage implements OnInit { sections: CoreCourseSection[] = []; title = ''; loaded = false; - courseId?: number; + courseId = 0; protected modName?: string; protected archetypes: Record = {}; // To speed up the check of modules. @@ -64,9 +64,16 @@ export class CoreCourseListModTypePage implements OnInit { * @inheritdoc */ async ngOnInit(): Promise { - this.title = CoreNavigator.getRouteParam('title') || ''; - this.courseId = CoreNavigator.getRouteNumberParam('courseId'); - this.modName = CoreNavigator.getRouteParam('modName'); + try { + this.title = CoreNavigator.getRouteParam('title') || ''; + this.courseId = CoreNavigator.getRequiredRouteParam('courseId'); + this.modName = CoreNavigator.getRequiredRouteParam('modName'); + } catch (error) { + CoreDomUtils.showErrorModal(error); + CoreNavigator.back(); + + return; + } try { await this.fetchData(); @@ -95,7 +102,9 @@ export class CoreCourseListModTypePage implements OnInit { } section.modules = section.modules.filter((mod) => { - if (!CoreCourseHelper.canUserViewModule(mod, section) || !CoreCourse.moduleHasView(mod)) { + if (!CoreCourseHelper.canUserViewModule(mod, section) || + !CoreCourse.moduleHasView(mod) || + mod.visibleoncoursepage === 0) { // Ignore this module. return false; } @@ -110,11 +119,11 @@ export class CoreCourseListModTypePage implements OnInit { ); } - if (this.archetypes[mod.modname] == CoreConstants.MOD_ARCHETYPE_RESOURCE) { + if (this.archetypes[mod.modname] === CoreConstants.MOD_ARCHETYPE_RESOURCE) { return true; } - } else if (mod.modname == this.modName) { + } else if (mod.modname === this.modName) { return true; } }); @@ -137,7 +146,7 @@ export class CoreCourseListModTypePage implements OnInit { * @returns Promise resolved when done. */ async refreshData(refresher: IonRefresher): Promise { - await CoreUtils.ignoreErrors(CoreCourse.invalidateSections(this.courseId || 0)); + await CoreUtils.ignoreErrors(CoreCourse.invalidateSections(this.courseId)); try { await this.fetchData(); From 0e31b8214a33decb998bde50f3689c51be85bf94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Tue, 17 Oct 2023 11:40:40 +0200 Subject: [PATCH 2/6] MOBILE-4362 activity: Infinite loading on list mod type page --- .../infinite-loading/infinite-loading.ts | 2 +- .../course/pages/contents/contents.ts | 2 +- .../pages/list-mod-type/list-mod-type.html | 29 ++++++++++-------- .../pages/list-mod-type/list-mod-type.ts | 30 ++++++++++++++++--- 4 files changed, 44 insertions(+), 19 deletions(-) diff --git a/src/core/components/infinite-loading/infinite-loading.ts b/src/core/components/infinite-loading/infinite-loading.ts index ab0a4b7fa..87e2125b7 100644 --- a/src/core/components/infinite-loading/infinite-loading.ts +++ b/src/core/components/infinite-loading/infinite-loading.ts @@ -22,7 +22,7 @@ const THRESHOLD = .15; // % of the scroll element height that must be close to t * Component to show a infinite loading trigger and spinner while more data is being loaded. * * Usage: - * + * */ @Component({ selector: 'core-infinite-loading', diff --git a/src/core/features/course/pages/contents/contents.ts b/src/core/features/course/pages/contents/contents.ts index 31d6a537b..88345545b 100644 --- a/src/core/features/course/pages/contents/contents.ts +++ b/src/core/features/course/pages/contents/contents.ts @@ -298,7 +298,7 @@ export class CoreCourseContentsPage implements OnInit, OnDestroy, CoreRefreshCon await this.loadData(true, true); } finally { // Do not call doRefresh on the format component if the refresher is defined in the format component - // to prevent an inifinite loop. + // to prevent an infinite loop. if (this.displayRefresher && this.formatComponent) { await CoreUtils.ignoreErrors(this.formatComponent.doRefresh(refresher)); } diff --git a/src/core/features/course/pages/list-mod-type/list-mod-type.html b/src/core/features/course/pages/list-mod-type/list-mod-type.html index 8fdd57ed8..92d8c00f1 100644 --- a/src/core/features/course/pages/list-mod-type/list-mod-type.html +++ b/src/core/features/course/pages/list-mod-type/list-mod-type.html @@ -17,21 +17,24 @@ - - - -

- - -

-
-
- - - + + + + +

+ + +

+
+
+ + + +
+ diff --git a/src/core/features/course/pages/list-mod-type/list-mod-type.ts b/src/core/features/course/pages/list-mod-type/list-mod-type.ts index 8e9ab9a25..d10977796 100644 --- a/src/core/features/course/pages/list-mod-type/list-mod-type.ts +++ b/src/core/features/course/pages/list-mod-type/list-mod-type.ts @@ -34,10 +34,14 @@ import { CoreAnalytics, CoreAnalyticsEventType } from '@services/analytics'; }) export class CoreCourseListModTypePage implements OnInit { + private static readonly PAGE_LENGTH = 10; // How many activities should load each time showMoreActivities is called. + sections: CoreCourseSection[] = []; title = ''; loaded = false; courseId = 0; + canLoadMore = false; + lastShownSectionIndex = -1; protected modName?: string; protected archetypes: Record = {}; // To speed up the check of modules. @@ -84,8 +88,6 @@ export class CoreCourseListModTypePage implements OnInit { /** * Fetches the data. - * - * @returns Resolved when done. */ protected async fetchData(): Promise { if (!this.courseId) { @@ -97,7 +99,7 @@ export class CoreCourseListModTypePage implements OnInit { let sections = await CoreCourse.getSections(this.courseId, false, true); sections = sections.filter((section) => { - if (!section.modules) { + if (!section.modules.length || section.hiddenbynumsections) { return false; } @@ -134,16 +136,36 @@ export class CoreCourseListModTypePage implements OnInit { const result = await CoreCourseHelper.addHandlerDataForModules(sections, this.courseId); this.sections = result.sections; + + this.lastShownSectionIndex = -1; + this.showMoreActivities(); } catch (error) { CoreDomUtils.showErrorModalDefault(error, 'Error getting data'); } } + /** + * Show more activities. + * + * @param infiniteComplete Infinite scroll complete function. Only used from core-infinite-loading. + */ + showMoreActivities(infiniteComplete?: () => void): void { + let modulesLoaded = 0; + while (this.lastShownSectionIndex < this.sections.length - 1 && modulesLoaded < CoreCourseListModTypePage.PAGE_LENGTH) { + this.lastShownSectionIndex++; + + modulesLoaded += this.sections[this.lastShownSectionIndex].modules.length; + } + + this.canLoadMore = this.lastShownSectionIndex < this.sections.length - 1; + + infiniteComplete?.(); + } + /** * Refresh the data. * * @param refresher Refresher. - * @returns Promise resolved when done. */ async refreshData(refresher: IonRefresher): Promise { await CoreUtils.ignoreErrors(CoreCourse.invalidateSections(this.courseId)); From 702abcdfd10623885edf39c241b80a53632b7242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Wed, 18 Oct 2023 11:30:36 +0200 Subject: [PATCH 3/6] MOBILE-4362 course: Apply Infinite loading improvements from type list --- .../course-format/course-format.html | 2 +- .../components/course-format/course-format.ts | 43 ++++++------------- 2 files changed, 13 insertions(+), 32 deletions(-) diff --git a/src/core/features/course/components/course-format/course-format.html b/src/core/features/course/components/course-format/course-format.html index 2e1f6aeb5..a98e46850 100644 --- a/src/core/features/course/components/course-format/course-format.html +++ b/src/core/features/course/components/course-format/course-format.html @@ -21,7 +21,7 @@
- + diff --git a/src/core/features/course/components/course-format/course-format.ts b/src/core/features/course/components/course-format/course-format.ts index 3c432a9c1..341f3d215 100644 --- a/src/core/features/course/components/course-format/course-format.ts +++ b/src/core/features/course/components/course-format/course-format.ts @@ -70,7 +70,7 @@ import { CoreBlockSideBlocksComponent } from '@features/block/components/side-bl }) export class CoreCourseFormatComponent implements OnInit, OnChanges, OnDestroy { - static readonly LOAD_MORE_ACTIVITIES = 20; // How many activities should load each time showMoreActivities is called. + static readonly LOAD_MORE_ACTIVITIES = 10; // How many activities should load each time showMoreActivities is called. @Input() course!: CoreCourseAnyCourseData; // The course to render. @Input() sections: CoreCourseSectionToDisplay[] = []; // List of course sections. @@ -89,7 +89,7 @@ export class CoreCourseFormatComponent implements OnInit, OnChanges, OnDestroy { allSectionsComponent?: Type; canLoadMore = false; - showSectionId = 0; + lastShownSectionIndex = 0; data: Record = {}; // Data to pass to the components. courseIndexTour: CoreUserTourDirectiveOptions = { id: 'course-index', @@ -514,8 +514,7 @@ export class CoreCourseFormatComponent implements OnInit, OnChanges, OnDestroy { } else { this.previousSection = undefined; this.nextSection = undefined; - this.canLoadMore = false; - this.showSectionId = 0; + this.lastShownSectionIndex = -1; this.showMoreActivities(); } @@ -594,40 +593,22 @@ export class CoreCourseFormatComponent implements OnInit, OnChanges, OnDestroy { * @param infiniteComplete Infinite scroll complete function. Only used from core-infinite-loading. */ showMoreActivities(infiniteComplete?: () => void): void { - this.canLoadMore = false; - - const sections = this.sections || []; let modulesLoaded = 0; - let i: number; - for (i = this.showSectionId + 1; i < sections.length; i++) { - if (!sections[i].hasContent || !sections[i].modules) { + while (this.lastShownSectionIndex < this.sections.length - 1 && + modulesLoaded < CoreCourseFormatComponent.LOAD_MORE_ACTIVITIES) { + this.lastShownSectionIndex++; + + if (!this.sections[this.lastShownSectionIndex].hasContent || !this.sections[this.lastShownSectionIndex].modules) { continue; } - modulesLoaded += sections[i].modules.reduce((total, module) => - !CoreCourseHelper.isModuleStealth(module, sections[i]) ? total + 1 : total, 0); - - if (modulesLoaded >= CoreCourseFormatComponent.LOAD_MORE_ACTIVITIES) { - break; - } + modulesLoaded += this.sections[this.lastShownSectionIndex].modules.reduce((total, module) => + !CoreCourseHelper.isModuleStealth(module, this.sections[this.lastShownSectionIndex]) ? total + 1 : total, 0); } - this.showSectionId = i; - this.canLoadMore = i < sections.length; + this.canLoadMore = this.lastShownSectionIndex < this.sections.length - 1; - if (this.canLoadMore) { - // Check if any of the following sections have any content. - let thereAreMore = false; - for (i++; i < sections.length; i++) { - if (sections[i].hasContent && sections[i].modules && sections[i].modules?.length > 0) { - thereAreMore = true; - break; - } - } - this.canLoadMore = thereAreMore; - } - - infiniteComplete && infiniteComplete(); + infiniteComplete?.(); } /** From 355fd88bb29aaf437fe1e3229556baea8edeea0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Tue, 17 Oct 2023 14:14:27 +0200 Subject: [PATCH 4/6] MOBILE-4362 icons: Change detected icon aliases --- .../features/course/components/module/core-course-module.html | 2 +- .../features/course/pages/module-preview/module-preview.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/features/course/components/module/core-course-module.html b/src/core/features/course/components/module/core-course-module.html index 98b0ee2ac..ea67ff1c2 100644 --- a/src/core/features/course/components/module/core-course-module.html +++ b/src/core/features/course/components/module/core-course-module.html @@ -28,7 +28,7 @@ {{ 'core.course.hiddenfromstudents' | translate }} - + {{ 'core.course.hiddenoncoursepage' | translate }}
diff --git a/src/core/features/course/pages/module-preview/module-preview.html b/src/core/features/course/pages/module-preview/module-preview.html index c2656b26b..7df03de9d 100644 --- a/src/core/features/course/pages/module-preview/module-preview.html +++ b/src/core/features/course/pages/module-preview/module-preview.html @@ -40,7 +40,7 @@ {{ 'core.course.hiddenfromstudents' | translate }} - + {{ 'core.course.hiddenoncoursepage' | translate }}
From 45090441441fddc75e7b53ac2fd4d5f1c4049568 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Tue, 17 Oct 2023 16:21:59 +0200 Subject: [PATCH 5/6] MOBILE-4362 theme: Apply transparent popover backdrop only on Android --- src/theme/theme.base.scss | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/theme/theme.base.scss b/src/theme/theme.base.scss index 99d13131a..18d615a3a 100644 --- a/src/theme/theme.base.scss +++ b/src/theme/theme.base.scss @@ -1898,10 +1898,12 @@ ion-popover { &.md { margin-top: 2px; margin-bottom: 2px; - } - // Never show backdrop on popovers - ion-backdrop { - background: transparent; + + // Never show backdrop on popovers on Android + // @todo Apply box shadow on ios and make it transparent too. The main problem is the box arrow. + ion-backdrop { + background: transparent; + } } } From 697ddd811cea3cef5009b424bb7a5636f77e2b66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Wed, 18 Oct 2023 16:46:51 +0200 Subject: [PATCH 6/6] MOBILE-4362 behat: Test scroll when seeing all sections --- .../tests/behat/basic_usage-311.feature | 32 +++---- .../course/tests/behat/basic_usage.feature | 88 ++++++++++-------- ...-course-in-app-view-course-contents_46.png | Bin 34946 -> 34939 bytes ...-course-in-app-view-course-contents_50.png | Bin 0 -> 39385 bytes 4 files changed, 64 insertions(+), 56 deletions(-) create mode 100644 src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_50.png diff --git a/src/core/features/course/tests/behat/basic_usage-311.feature b/src/core/features/course/tests/behat/basic_usage-311.feature index 99b642baf..32644ce60 100755 --- a/src/core/features/course/tests/behat/basic_usage-311.feature +++ b/src/core/features/course/tests/behat/basic_usage-311.feature @@ -85,20 +85,20 @@ Feature: Test basic usage of one course in app And I press "OK" in the app And I wait loading to finish in the app Then the header should be "Course 1" in the app + And I should find "Test forum name" in the app + And I should find "Test wiki name" in the app And I should find "Choice course 1" in the app And I should find "assignment" in the app - And I should find "Test forum name" in the app - And I should find "Test chat name" in the app - And I should find "Web links" in the app And I should find "Test external name" in the app - And I should find "Test feedback name" in the app - And I should find "Test glossary" in the app - And I should find "Quiz 1" in the app And I should find "Test survey name" in the app - And I should find "Test wiki name" in the app - And I should find "Test lesson name" in the app + And I should find "Test chat name" in the app + And I should find "Quiz 1" in the app And I should find "Test scorm name" in the app + And I should find "Test feedback name" in the app + And I should find "Test lesson name" in the app And I should find "Test workshop name" in the app + And I should not find "Web links" in the app + And I should not find "Test glossary" in the app Scenario: Guest access Given I entered the course "Course 1" as "teacher1" in the app @@ -122,16 +122,16 @@ Feature: Test basic usage of one course in app When I press "View course" "ion-button" in the app Then the header should be "Course 1" in the app + And I should find "Test forum name" in the app + And I should find "Test wiki name" in the app And I should find "Choice course 1" in the app And I should find "assignment" in the app - And I should find "Test forum name" in the app - And I should find "Test chat name" in the app - And I should find "Web links" in the app - And I should find "Test feedback name" in the app - And I should find "Test glossary" in the app - And I should find "Quiz 1" in the app And I should find "Test survey name" in the app - And I should find "Test wiki name" in the app - And I should find "Test lesson name" in the app + And I should find "Test chat name" in the app + And I should find "Quiz 1" in the app And I should find "Test scorm name" in the app + And I should find "Test feedback name" in the app + And I should find "Test lesson name" in the app And I should find "Test workshop name" in the app + And I should not find "Web links" in the app + And I should not find "Test glossary" in the app diff --git a/src/core/features/course/tests/behat/basic_usage.feature b/src/core/features/course/tests/behat/basic_usage.feature index 8cb9e184d..c1e9904cd 100755 --- a/src/core/features/course/tests/behat/basic_usage.feature +++ b/src/core/features/course/tests/behat/basic_usage.feature @@ -83,25 +83,33 @@ Feature: Test basic usage of one course in app Scenario: View course contents When I entered the course "Course 1" as "student1" in the app Then the header should be "Course 1" in the app + And I should find "Test forum name" in the app + And I should find "Test wiki name" in the app And I should find "Choice course 1" in the app And I should find "assignment" in the app - And I should find "Test forum name" in the app - And I should find "Test chat name" in the app - And I should find "Web links" in the app And I should find "Test external name" in the app - And I should find "Test feedback name" in the app - And I should find "Test glossary" in the app - And I should find "Quiz 1" in the app And I should find "Test survey name" in the app - And I should find "Test wiki name" in the app - And I should find "Test lesson name" in the app + And I should find "Test chat name" in the app + And I should find "Quiz 1" in the app And I should find "Test scorm name" in the app + And I should find "Test feedback name" in the app + And I should find "Test lesson name" in the app And I should find "Test workshop name" in the app + And I should not find "Web links" in the app + And I should not find "Test glossary" in the app When I set "page-core-course-index .core-course-thumb" styles to "background" "lightblue" And I set "page-core-course-index .core-course-thumb img" styles to "display" "none" Then the UI should match the snapshot + # Test infinite scroll on course + When I scroll to "Test workshop name" in the app + Then I should find "Web links" in the app + And I should find "Test glossary" in the app + + # Test Collapsible header + And the UI should match the snapshot + When I press "Choice course 1" in the app Then the header should be "Choice course 1" in the app @@ -161,20 +169,20 @@ Feature: Test basic usage of one course in app Scenario: View section contents When I entered the course "Course 1" as "student1" in the app Then the header should be "Course 1" in the app + And I should find "Test forum name" in the app + And I should find "Test wiki name" in the app And I should find "Choice course 1" in the app And I should find "assignment" in the app - And I should find "Test forum name" in the app - And I should find "Test chat name" in the app - And I should find "Web links" in the app And I should find "Test external name" in the app - And I should find "Test feedback name" in the app - And I should find "Test glossary" in the app - And I should find "Quiz 1" in the app And I should find "Test survey name" in the app - And I should find "Test wiki name" in the app - And I should find "Test lesson name" in the app + And I should find "Test chat name" in the app + And I should find "Quiz 1" in the app And I should find "Test scorm name" in the app + And I should find "Test feedback name" in the app + And I should find "Test lesson name" in the app And I should find "Test workshop name" in the app + And I should not find "Web links" in the app + And I should not find "Test glossary" in the app When I press "Course index" in the app And I press "General" in the app @@ -337,20 +345,20 @@ Feature: Test basic usage of one course in app Scenario: Navigation between sections using the bottom arrows When I entered the course "Course 1" as "student1" in the app Then the header should be "Course 1" in the app + And I should find "Test forum name" in the app + And I should find "Test wiki name" in the app And I should find "Choice course 1" in the app And I should find "assignment" in the app - And I should find "Test forum name" in the app - And I should find "Test chat name" in the app - And I should find "Web links" in the app And I should find "Test external name" in the app - And I should find "Test feedback name" in the app - And I should find "Test glossary" in the app - And I should find "Quiz 1" in the app And I should find "Test survey name" in the app - And I should find "Test wiki name" in the app - And I should find "Test lesson name" in the app + And I should find "Test chat name" in the app + And I should find "Quiz 1" in the app And I should find "Test scorm name" in the app + And I should find "Test feedback name" in the app + And I should find "Test lesson name" in the app And I should find "Test workshop name" in the app + And I should not find "Web links" in the app + And I should not find "Test glossary" in the app When I press "Course index" in the app And I press "General" in the app @@ -425,20 +433,20 @@ Feature: Test basic usage of one course in app And I press "OK" in the app And I wait loading to finish in the app Then the header should be "Course 1" in the app + And I should find "Test forum name" in the app + And I should find "Test wiki name" in the app And I should find "Choice course 1" in the app And I should find "assignment" in the app - And I should find "Test forum name" in the app - And I should find "Test chat name" in the app - And I should find "Web links" in the app And I should find "Test external name" in the app - And I should find "Test feedback name" in the app - And I should find "Test glossary" in the app - And I should find "Quiz 1" in the app And I should find "Test survey name" in the app - And I should find "Test wiki name" in the app - And I should find "Test lesson name" in the app + And I should find "Test chat name" in the app + And I should find "Quiz 1" in the app And I should find "Test scorm name" in the app + And I should find "Test feedback name" in the app + And I should find "Test lesson name" in the app And I should find "Test workshop name" in the app + And I should not find "Web links" in the app + And I should not find "Test glossary" in the app Scenario: View blocks on drawer Given the following "blocks" exist: @@ -447,20 +455,20 @@ Feature: Test basic usage of one course in app | activity_modules | Course | C1 | course-view-* | site-pre | | And I entered the course "Course 1" as "student1" in the app Then the header should be "Course 1" in the app + And I should find "Test forum name" in the app + And I should find "Test wiki name" in the app And I should find "Choice course 1" in the app And I should find "assignment" in the app - And I should find "Test forum name" in the app - And I should find "Test chat name" in the app - And I should find "Web links" in the app And I should find "Test external name" in the app - And I should find "Test feedback name" in the app - And I should find "Test glossary" in the app - And I should find "Quiz 1" in the app And I should find "Test survey name" in the app - And I should find "Test wiki name" in the app - And I should find "Test lesson name" in the app + And I should find "Test chat name" in the app + And I should find "Quiz 1" in the app And I should find "Test scorm name" in the app + And I should find "Test feedback name" in the app + And I should find "Test lesson name" in the app And I should find "Test workshop name" in the app + And I should not find "Web links" in the app + And I should not find "Test glossary" in the app Then I press "Open block drawer" in the app And I should find "HTML title test" in the app And I should find "body test" in the app diff --git a/src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_46.png b/src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_46.png index 431c0a806dcdf980f5e5dc3860679da1d85788cf..12ebfcb86e0ccaac2e8adb05d2c66d00a12677e7 100644 GIT binary patch delta 17365 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 Dn~bf( diff --git a/src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_50.png b/src/core/features/course/tests/behat/snapshots/test-basic-usage-of-one-course-in-app-view-course-contents_50.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc6ce75b82190abd9d30a86240b3790c0234362 GIT binary patch literal 39385 zcmd43bySsY_b$4Slx{&vKmieulI~PQL0TFNkVd+@q(#D@L8YXmy95OZrKDTBJI{Rl z_TK00KYnNIarPPGoOg`R_j}iJt@S+jJ?}ZMd0p3h!c-qB65w9NMWIjx_wLH6p-`95 z;eWk2Sja2(4ukM7GzT?B8Pu0<+9ed~8tR^$w1(@4)p0j{4b54sO|zsRIt=nQ0)5q9 zJ6VnXjK60jc08WQMNqQW5{Xe)Wvi9*%5Y0xqj zjf-srjUb_3g^m2nmnG@%%~fySyqP3uOFuR~Ui|#$RawE1(7WwnWUNywD|jw0E^q@a zlamar4?l1_mO5f!VluL^eO5YI+VRw#ZNZ4f^4nhK^0m3DN*ytxWb`>^6|OQwRvPuLP7#}ekE7)Te@t>F7H#- zOp~;FEHqRSpBZ8I2jKuTbS&e&<$G$gon>lUrJJ2@dCA(oZ( z8ZHr0`|6)ko|kiXBk0AimOlRp!H^*`+ZsmZIv=n7W9<1O|8qa@*x1-E@2TOF7K}Y%oYM`TiqD*CcUnNg@uWX z{!A9VvcA6F(bd)e_={HF^!j=fHQ#gd#PJ#zB6$69_qPhk)vLG+3=9!;qFOcQ!^KaM zM4Z^&57r~QlSQBOrb)YAoE^lbq!_NA(TO_atAAAX`}B!b#AQ8#gjvCOWv~F2nLE8sHo_3uY{aj*)!O|c^ilAxqDBaJ!2FQDF0!wH()>08pitq%*Yy@N{)P^!4cm57dFVrJeN&^Cf?HI#~Dd4NKhn3(8P zJKn5zT=I9@S!fy?qZPEBXl)9>wqN>nBQQ9)xiyRJz-#}HnNEcbU2SbG5-@kO)lRoN zZzC&Yf3*F~YOhN7ad^ zO>kZtA;bj)1VSStIbB9e+=roS&$&ksr>4-~P&K ziL$e|Z~75`YwPH5>TIOo#AnC%^ue#=SXE5_b|)|XDgER;-j}J!7_Wr=*tY`MK-*!NI|zl9JqhZ#X`1hix&8vX1^JRK(RgxOv)z-&7>eG_tujH(ST^ zAD5c8Yp}#gXZB4MHk|u^`UDvxQz7zKy@dS?M!&_KU_v_GRi#k4E|ZOkI^>K%VjK{C z`}XbT-d;iPyxWcMaEKuRaa)h@*BP}Ky)GFMhX0%Fu(a5hX}`1ZlRaMZQ7yX30pk8(Y!<8%A1^bY>n^VL+l*Dgx=@d!*Vgs17y z7Xu-uWpX$O=xJy%qjU%GV3G2ymed47MGTQ(-1*D^$Wj!7E(GfnMCeO)0) zpKE>%_On>9hv5bi+KJ-$sP}@lgXizK?%COKD@4;rdY$Z}`R)(x!{vutzkmNe{P55f zepa_;)r3toZ$M;J>uK}d7Z5KZj*GrSh8_eP4Hps`>=X}^MKGr(r^9b)e<2@L$TtVqtD^gbzQb|NDgpqMw%y#k5d$Hxbj*Fwj~#+HA^NE;f`Pk5hLe-LvcRm&kyNlAgcgapO; z;Ve;WTU$D0QK%Hyka51A1cih=Ss$x1|CM!_<-t1)QBhI-25&mJpFp@Z85xw z=r?8Ei|Z|ZqF8&jKg!L=*OH_D$qv#g0Gu@SPY;L7EU%!hF*2f^ogB2o(iAzb=_Z$d z(XS$9WMo8e2IK}48=I)bMf1SGz{b{Aj1VG*L9A#fNmG&+M?~-LSO&lN{jsUJ`O+0G z{l-{k#oj#a+pA+$WNJBIyPh~K_A;(L{odLtM=Rk;MNdyZl1B?ia{BMzPpL%yp`ZPK zymvAp(bCew!NbdoKeAMC5S zwyoQv3?^cTf}?95a_t8$dQec%aGi%>{n@^roT8#^wp!Eo@0TYgCX&QG1l|c)=a!xk zNuK&beVUo0^m&CMHg!!)62w>#TVh z;~4*v6lXA6nz@#lL8W61z(lUF(9p(T+4no?7R)E>#V?_w?|DDT(j`Ffu10kT5qC8t zZ}z1wA_N}QV^x=__ z=HI``@F+Qa^YZf2-<$Cp8g7c1&d!t-{_IljE0K3lcC)9g6|2$8TivL?An75XM^!0f zIq>m$RvsJh+dFc&G!U-a=v3{lSqvCFjxHY<26#0)HDq!)-+bfx4c3-l&6f)FKkzv3 z-gR|evszpbk1Z*6u$#(L{UGW?^8Mz`qVf`%cEa_f(;1!0uU00D3-Qa|j`*+D)%ptV zv&st2hZ%eNSkuP=JOIQlldU!lFa)mk*6X-95?a~_c+qsS-V3@9K1aUDZ>?KTxL2#B zQNABO=zoxKpxnUBZwrn_?;B~WQhG*7PHsGER>M=&Ks3ioouzhDM0_A!=450g?0X#!1FE2--w6(RN=FcX(Of(hfReUv>f_T=capqi~s0$A!pfQDW>w2~~1OUr^ zu7dJX2>>ENM`a9fck|$&{mo7FBHKxc)sZqhz}$9@ zj;+vha6kJ&j*@~r3K%y4Iud4xgJcn>W^4veUpT}==YF|25-2In7pG7t_``QeoppL9 zdvdcg=)U>dOhj|D%;`b++2NA15N~NoZ~hDQ!=FjP-N`AJP#+o&Z#l1ygfj+U8&5VB z7VQUUx_TV3oAX~)PLaU&<}+&k?d5LL-2Zs^bV+yZcIs^+uK*;J9{>5{nj0W``nNmy zNoFt-E}kVXXb9K;Tt+3;Y;x`%ECpElj7uq7(PH=p?HCT8OS2bxi8`;zKi8tP$}g~= z@3HLY=xA*`mq_BVCWUfo==q}jp ziI0y=elO`4ui3}rV)N&cfrxmJilDV(|KvfL$<*>*!{(oLuh6I{`2ei)#o2N6-=7}( zhlO3{(yxvv5WNVuf1)rQGW#he=}jPG09KmbQ1>v6CovIe+|=L%MfjvE1@BvO>bH-R z=1zDgJe?%!#oh7meZOgEHB5Ye(wibG@+unJN$H{KMdIPMD%EvTvJc`eXcy!37$}^R zbr0I3b456rnZ=pR3tig--h!RS>*9_}+Z)4WE|N1dvwazE4z*%Wbc1|^`aPOE2xx^= z^Nkwn$JR(mNui+&5pvy3gDwkFtIY1wZ$;1ZqrWmZjP)n$qSLdpnWa6=L3nKtR@VZF znIt8RDyyo(9+y531H>Qp;R7wwCH3W~v)Z2>JEd#owLy`R19Z~%^SxjYu}tmBdX4Fi zH#cXX7eYP^ziWt3FQx;*B+d|2ZL)tl)T*5x63%IKIH`Plb~tZ<39 zMD_6L&N4zzPwI(fLQ}f~!^7%thljqekbnL>L8sI^)75JWmobp|Z?_RS*~g#1%AcKE zhPQrwyd&?~j1I3$rigJWG#tJzU)>%#I9m5I-3`ATwv)((#~64hDxv^s`O#Q-1gT7@ zsdeP>Nj=pa@7zjF@xYxAr|@4OGh}bz#nIy>2AA@r5^bV&SpW-28kv z_+nO?=+mdk8uD6W~hKntu_xD;hw$?=DQ+tlW8(uw{{TNz#h`}g#G+B2T zh&^+3S-mYM^_&&?-f3pZ&?_v*uXZE4mgyJVn?AD=Q&LhgadCZ-*||i>AQ1ss^GS2y z<(STSgk%Dsw*@V$R&MvBOoepKJS}MPrJS7w06$;lH%H}YyaIGHdwR43Z4@1(h34jF zZl7~cArX;gIG}~K+qh6VwpI!owDvfMZe5MU`s5=KF6zQu=75E@=Yypu=o#_+L2{aE z$JT1&IphLqnP&7g@2V=dB(Z5sen&fBWfsngl-W<-&1vU7jRgjJI(m90uURhlV~E$dprgK8P2lf46A;sp>6sb`SGmR9 zMOj)}CM6{yUlq7|hR@Z_+397p7p9OY{Za{6x7=K7+NK1lY^2G6zfGq3moY2~ktO zD+HlTa&U4?jb&iY(7z?aK*^@i;qdXP-@Q(X@8L}R#V}gR`QgK=RQY?}Lf)jZSVVH8 z0tLpVrv530DT{M`B&6cS^Ja$DN-; zkbc=WLsD)YYL+x06sLqTive7q65?}9pLP0N*f}ouUk<<~`UbuI)ckyqS&ADLFbHCR zX=9U;aI)2qEE7MRKrimDkvnm0dQgvkIMb+&Ld7dxzJLFIEw77!NF~LY{Ugi%;nEEh z*TuQwqlzub)O5A%UkQwH_sV1mC`eK_Q4`{IUkle(uclq_dEFmBHz7tLA%#^gaQDH3 zJi8Ox)iuW->TKj}s_ggkJ7LRqmj=j6|2E)8N6}3U)X`w=?esY>N!oMRoLBAok(xvJ>s8(t+)EOA*eSv+-~hSJbC()fXxRtAEw= zQ&{8sLi~`v7kUJ$I~E$nd+hPJFRN<1cr~KWdd}Dw<%*w`D6$0I%T~)bsG)TD+ugSG z`;-0Qris;PIRUgnBRoHl7TVUxgKQYzy6ZEEtBtA;N?x06cy!6zP0;3#UtpkIKAtBL z0Ud2j-23n?_2ALFzowDpMWo_MVFFQ8VRXi1JIjjk$Z>&f*u<0aNBzas6nuygT#z z`8oa3r)RgOeOB6|U5Z8MkGRB7>F=o)_srPi23>M^el&ALB6}Z+;S>x~a;=$-#<*_~ zuBfT1zbP$Hr$`tIN4;(YHbQHIu*)c^a7s=)sB+2H!26Xo>^^w#Al-9y$N-wtw@!H) z>{*{aWj=T>fb>$(jrM+i#7rycO-n!{5EvAMiSSybDppqC$G@xK(pcW&ce3#R`0&9i zOf*zzr9EB%mRRQ5ywA>Hvc=F6gwjJnFLwnjLQiU4i{9{PmELm~Kee#kU3`A4MOEfC z^}IVBT|Zbvu%PyxorPS^P0M~1gnJ&l&UO^f0%+~!asY(F#i>WWg2{Hz zt$m_tf)JpFV}iK*&Ad2uvZsINuH6)tui=nvKv7e_MWuB0WY}(`2)VBYc6(sGIzKNs zxsD@xQFBGA&t-0-!D*wDgpMZsS~G{`B;8XhZ}@={nGSSAnrqc>44@ zq-Xnsb%X1yteNuR89cQ}^8k!prOO6A6bk=<03Kj-o|>5rO_Ah`UKJH+1{fF~HB@(( z_GnrW2v}=DuY1ZAxF`gaZtvi|D)4bu_4#nRgztSZ%g)QoTWs0mtzYR_)o++?6Jz42CKz9D24VQrR1-{>k1e!1Fc4-oK`C?MT@gVO9F)u8i z$>?tkK87tP3|{D8wx!uXSIIXBRE<~Mr!EuA6^QG@M zb2`5NY#TC}%!pG|)X_;wJb8?g7e~8H^g1Rv4xJGrn20(8Do$HrgMptyW>Z;%jd9aT zxScpthKx0JZ{cm|EbR_Eh&npDngN3pZ8U0+q-2hbiCK-6pl?NYT?jkRkVhp8WqT!W zUL&EYSe3G|F)WJ;XQbNWMnmc7>M{ulQ31R54H8!Dn>Pr#gY-{RO#vgFhrq#a0fA>a z`z;a(#lTE}w?E&9Tru(_k?NZd_4f8gjvSPWzEU$4dR3j2*baau4hVGZC zsi~1}>Hh7yKtFWsODIFPc?#e(jRBAX-bJuS6rCujBbqzdAEVyQi&9+tDWZPD+9UN| ztK0P~-VJGG8%I<&n|?gIvHrXN`(*=BkEx$GHjI~BFH;FTjp=qzm6(7s(o(JBACs6G z{Yj+q$fwG%d|US?Edx9g|&A zMf+lG%hY(L$Bii6Gh>_Q!A^b~jB|P1tD=V#q;ap)RM~o=Ymc}pfgyYTwpQ!ic2u2W zJE5!FH-4)>#dyNPRaCtjFAjIt3i#x{?iLIcxt;vo^!meq8$_Edp3*!cNO=hrEFroX zcEZ8Y^>fR9>Vi>d?$+u!gMa^5{^60~wEL_?`4@{`Ys0kxb#w`w?sP`07o?*SqXgI< z9?G;A{`)D{H1D_?OV;lA_=SdtE3Rm9>69-ztyPx*s-PO)c;UI5N{}S%!nnUSf_1y+ z3p8)M{^jd(y6#xWi5q+Td%CaKG!aX{(XMgXCBgLfe$N*4O6GrRsV5Bf%bmM{FGfR- z1lF#H?x_0SNqip4_b(O!N|pb^-dQv&kJF4R1g7@NaKAv<=Pu)$v9Wra$ENtyVrhm( zdJmtPLxJc z$ige0$92=V`001jwUzvQ4#;$j^@lTf$!ltAYI3@|@1TzXViL5i%gK96*=ml9z0$zi zLlcw4ZQ`#}>uR5~XIS-8{`CB0L!`4iRq{4aV{%qj`8Y&GS8Qx-L`KKzz4Q?M4T$yo zA4Hs#kRHx*=*!X@9-A>C9$=L2X6SFC1dXPE~JjS5Qvr#=8e)ZD1O zy&Vs9UVC7hNk@%z|A0hG0kYr~8JuG8GxzDWwSrP_5bKa{z`(|awgKnzWfJ&pAb4I> z{He6h1d_GykL}U+yeS}mnb22W3J5E&*k1?)4d@h5T~Ww-QA1b zyHmu&k9Pjfwlnz1IXd#gCKS1B81jQ^@$lip&HepgV4Sq_b^JCr?eyzCsW<9RxVCq8 z`f@dIiJk5KHvj#RV8ZP$oqnA=MPFZ^PJ_4j7lWE$z)C~QJhvWzRu-GUb4Nqqzk2}^ zf@MPp8E@Xa3{u!3@S`TSw$UKbT@w|pQJUA9;{#rj3G2O-&Lk&rq9EEKGT`giuX~G3 zWbuLKhl(bGYV7R9LqkJDm}&v5VZf-kKqgs@Rg!RVaiM&Hi8a}pX-ndLh70fd0;9g% zk8B)Uyb{790mcTsOa^qEV(U=>!1Aa@XtK7Nuo;Y}n}cG$Ki%BkZmxD(xfVy^^;Ohm zUC!9}+Vk!YVgCM?K*?f)C9iYe%WccltUf-7>pet?W7%g_T+f!5U2O=-Z9{%wYrU2lnrS zMKki^UWDy|lsBNMDLnKXNbM>KLbCshb3xl|0bl2)a__)*jg4odpo@tb85ylk)YbIw zIWgfsy@fZue69WCbkrR+0WdWbZ}065oY#DnQe|!SwOvFPdVJ3^Yn1~zro3uI0gai3 z_i-`cbFF4MB&pc~j(iXmDOAzeeu{~b^f=3MRG%LtybMc!5AFwz*&pwiH-!SaidKHf zHIQN6Y8j9=DXIo0dYLI8&@YUBF!(biihK0;pfRW(Bm?qTm(eA<7Y^<0WF23a>ROKP z8@x+mGOuK=UOL*AN9gBnV+SnH4?m}8t!zFo!}lyQ#IIAwyxUX&&06kGPI*sR{Fevm zF+*~qa8-*8WnNzjJgH(jRlj4?!Hqw{yv&#uGqld;9q*3Ce|2IY8i;WgAOpAyR>aXi zz7&4By=|Gn316jfoAq|XIuTjNQ?;kh{tn9N!Pi9?K6fU3`sz5QfUo8f-{Py!f*$CrRM2PUf&5;SQg$#vL1nEP2Tc0hLCz>E z>-?Ax?+70--o685d@k+-6GpXPe8!g6FNy>-PP{`NMiJgse)xn44Q}n)zelDmD&s_Z1Q_802r)yL*uO7erEYDN}?# zxa$v%o^~S=6diCLwLOGXx_+h7BB zl#ZA{Vm1zrK&1j{T?GLR3ks`z4$HairsZAy{<~DDSA@R0nSN?HGJa~9*-8Z2YHiHmBP0j9arKUA2QTPRVjL#6J0-_@Lpj-1-5r;N+(MubOZE>zeX^X`Fv&@2b@n;O9V z77UO$?l+YRgll)YR~B-aomoPHezrYY(c4>s<>3b$Chu5@aV_>P z`_3SeiSu>w&}DEw2-#l(I}{bac}#aTmw+eXV)46D%yTyLOg<2SnU%BP)And)f7iZN00>aRjG7}jL{HX9<|t?L$<#@ z9uAdGd$|rt_Rq=$%&rLwQ~&w%#~flNtRYvg%mNby*Z1r3`pk@))hKKtItmK8QvM2f z%22OlzRij_uj0VIbj)w#meu%NoG0K&p(!q&vr8G6-DId=aY8+=;^`U+^7v$rV_OIu-^cPjK^}21KDWBC|c>? zA0OlyNI)%2AJFab1)jk-!}9R{Ha7;eRLdN*hwjyRB9ZPV&cF#iavty9yC>wfoz=aKSTn#y zv^bD=1#D@KgJ37S`_~D49$yUWaIajs0!mJzjtVU7^y+E^D9kfJ^N!5Bxw*OiO?H9Z z#IjbAzXzYRgARWcHpR>h4nqC;u_a0h;`xV93$lt*1%|qZKW-IHeMlH*9;WS*jOSnt6iHMG(vwY6f1bK&yk%dX(*>I0>3 znGPR{zet8wi!ZdPKm!%o&nf^$XS#ET0)#IaKp*+n^9oqYxVwuWC#JDc z3al3yUDYYx$1hF~8ZO$P%|+5CV7srDLxdpxOE-9*{TQo|52qAzTqG{H`s0tR*N~A< zkTQ!bz-}I|V@Kt;yxF?#eu$8s6Kh7c*g|7l>j%aYdcY<<fhQT(vJaTXY0us&BncGX*nSAdw^Gv?Uwn4S zWGvvR&f_FL94LpHG1)=F(5I86CYdgN)R4q)6~C(xr?4OMU5EoYwA3%F$fF1e@ab`K zDX@O=mG*T^5VEk;%EZDovjek#b>xne!t?T`5!Lz9%Kv~f{cd`ICK<~yo!P!}m*RD; zV~+D^v0keos4S=FANb?cv%G)(({rkB?AoFLb^^j4om{<$;Pt}9*|ZjK|BYTg}MdI+3c#z8GgRZIRdU9;>KDL*C5`*=I= z%<&*m^_70*4pGa=9T2%ihxJB@Vy^ZRw8@VmV>+|gKJS=JrQXMdTz~fhKBiz*FsvCNi$RXJ|HW@6m= z^MX1<7u6V|9Zi#O1Fu$hTr-){H_c+q#YE}f4;R!KM{05(+1{#&UXU;$(T9LG`T$^% z%Y$zqCkZd$!L@$DfA4GtgczvbMR`75#6sE~G8H+h#g*Z!9;x18g0cue^mi9mHqPU2 z#~xRh*=!W<(3pQR_uV?!2EqPy>bE_xtSA=lC1> ztz;1j%H?Znz zF9?9;tQFkCd%CvwAe$AxoL9Qe!eV-HezpkmTjW5Q`<{hvl;Y z4QW4dnyB}pL8?6PZfGhhJy-KWLPM3b&6*qM2FJIghe(Pv$$i9Ly3W*PaBucsLpAm# zHQ4d*i}-Jx=`vey?d-IGkLhb+BFAHYfGj4^T8=!k9?`gX7<{t7)>39UL`+4cvn+s^ zy92NYkhEV}S*cO;5VoOxAdI_rsQ8Y*dz7N%!>fb(qJDWV>`}h=3TmFH-5NIvpAI|V z-t(!srLn%bKxZ$oWtbg8q;Fs_y}X?3W&QklutMb3bg*B>vwspBDomWrjE#*&0|bfi zCxu8mC$7QDLd>;Km7k2NoL_kS;X!Rk>BTOVM!UN61Cn0rtQ6gx`vqFe&>aJ&lZVpH z^R$C_b+W<8?7flC83p*tf)W$2h>45y0HoEgcD#(*{B{2}BbYbAscYxrq6lGAygfcX zZhx|G4YWwh_&6QlP&5>+@JkF}HDxPo#(SZtg0-1R(&*s)^1O8%NMDkYl8)_+zy8MEs=|5{3pP-#`T8ONz~L0o zzKHV+FiK2ptRHA9=|D4430P49G6;d_S$cCj?z`Rkm@rb|;jOkRhrgTs>MGN7-{V|Y z3M!CE0i@`H1+qPguBB$9K5x8&X%xX-6}FS#z{OhRabS~`ojnb-5XZhm1Aqx|BCHM< zqXY9I+tBP34Y~oPii~(lD8&2 zHW-l_a!rJlK;UKR)tfae>q1G%$&s)tPrw>PCGO4-5(*Dk`o%6zcMwx0 z>KgPF!otD;`^k}&hh;H^YZ|Wi5+%pQ1jrBWq;#ZjHp2#Fo}UuZ35u5q{MTFMVDLjC zJe6(j78ZOf*h2!4P(xgy`$Nudqey>(Tp_Gpgkha~I&7g%u_-11+E-=iCN06pf26oC z-^8aAAqS^_6Ep&`iHX=`WMn}0&_GxqhXxSg)`(>xBeZ%AXZtj$De#|Ef*%)ryNK!1 zabtoGJm3m>S_LslNuSk+Uwqb|K`A@fmpra5kKbJwZc_IZl`88f% z@U+27OXQN7OhIaO9lp~xw(qrPxUYC;(>Mc=?q>~l#5-f=2F6#ri*qkP_RU~Zh97Z- zrncDY#2GQIg4Y#}CAZ*hiF+kXhVRDy zbMqH3w9^@b3IuxwJL<4szI=&7feBQkGl&@V>RU&0a&j?ZWdq}^k@wLJ;FyWPKwo>j zoQM2=o`x+zd@x`kCktYSLNE2r8;x{p#0G)_3&g-vabcvNkqc(4+krFV8BMybkPDb~DV@PrdlfDf3N{7FM$YH*5KOqfzVa;kI z-?wk6p)ZGyKNvx-h%vvjyUly7$Sjrxmo4@gp; zr(5kKaSr}%# z|0`?pblcw-?E-Ho#4xDFiq zR1s||1i#LA7RCHegkK1eI?&;DholV*2|axjEL1*t)WN}_;{_e< zaLF^gjLb~r9i&`>Um*aZ3At%-j?;=b;y~{WUGKM4pYzKe9v;Z39dH-_rP|^2ZG}O% z-cy)^ld~9{+e(<(icpZH(^ZYZ4G*N2jH{~<%%Vj~cpXCqB!!_nP4+9Fhqquh$#z+T zszY_b#PFnE-ft?^=TdbfgwSu&3IjU{jGoiYn;8zjN%|ecBtEBm;J$eZ0uI81KtP7T zB$X+GFm`uaL61P8ARpr3;50%R3AkeDiUz2t1*$sIKCdNXe1cPwm319jTlrBZqZDY{ zDM7Ys1N%Llv>l8<;X@`*MTS%h<~%8!G#q-n&0&%+g9p+HVjq(oACh z{MU6gx;6syuj~(wooR2WJ_FoNcYl-RtP(6{2p#-9_P-+`+UlC}$;;HJR}bf;`eLLv z>x@W}k>(Vz>ki!Jq;ev{xx?PF(n6o|mSJp39T1mQRQwJqAk!`$d>@ z(}8!}*Ne5BSPwkt@5FPK^^pypHt#Z`8m#>+IAtP~q~1hBN*7jTxG)clxLj6VcMuwC znBnoR`ONfB(HZZDSCMWdA;G!Ky$w-7i$BNxE0%J9v!(;SFx$CK(TY9O<_|M{SR*mN zdJn!LUX!&2rRo@N3Ri)2GZP7w`J%(nI6WHZe=ABX!F4!Mh*N(6Hg@R!c3b)G_DI>b z&$y)U1^*9)#%(QCK&}ksdxJiJKuZulY49|Lo4eLcan zv0frCy3u|mgdN@sYFfa@x1Atqd9QuWgAj6AM*oDG{y%ucu(T;Sh%)17jVr&^J_gNM z?0NrwRr$7w6j$E1!vZYjXDb;Twz)FVS4P<>XptX_P6?0~fAPPQNgCWsK~t}y6?Qwi z)Avt7NsLQ0ItaP^l=o&yiNk-FZ}>#9d2_yMt>imW0Uc5Fl{-MU;7iy(EIu`7ye@&| z{cv3$N|pF821TW13NI~!>qlikhvb5> z9lx^dp#R2dJe!}(C{kT4P`t*+SNh{*dF>ufxqucopXN0I#>-0aN=9w4hT@Ojuv3_l zy*9S7u;@+qQ(P)An|icF{TOb+PbS?rxqxDh_a@ArTAWqigLElNDw76OG;=UP-<)`nLFq?pIb;sVbo6KM|NUX=|A}?_j!gkE66>}rEf2;E(CMC*yz@|f zr@C?j<$H&!4-GXh}%=$T(RAi7d*%*{J1yvu7%rJIW&l{}!GD7DE5v zmH_<{R3$t^rj9@UW;w*K68pRPuMT=%>JUs=5O!Iv#OA(qzb16)vSz7&fi&9G8mP?% z+ol<$!7eXbg9RQR0UerLPfG2aeu&tZ&OgiuB}E66RLtEpwLAhfpZFFjH47}O0?xhv zNQciXt;0ZA4Cpt==8j2-#cU5I*d70OBnEry(SGrjSkz4@g`hEFfK=zofGB9gA$DN0 zl74K=@HMQ_tAXhp-fIK@jhH^yVM zoQX8V8mf%U6(u5aB1t} zGu0KW3GPEk4_pDE+tGnnzSm9>bn-0^PqYvD*+~OGDZdcn!WHVL^Xk*h;apwUv8swL z6+Vr=zFhMieqSX5FyM2iQu*={V!Wv9GtRGYwQ$Ki`70R_@fy_jwKv;^6}$E@)8gqa zL06&vD)^G&PWkKrvKjNA$xPDn;%A1Uxd>sh(ItxCAJg2J3VC%-G@8feGHRmYW)KgeHh9feKI)n0D>v(r&PTRW16 zCP6z!YHgdJ4-^Y;(DTDs_~+j-Y+HSQa`95_Jzger>_zT zZ)oIje);mn&dF(@UVx8J7RWUqE;iWXwco7_6|R(t!Ew#y?syQQM0Rlj&zNvkf7UFp zDQY=-eOxc?ZhEiU=Uz3owgh(3dZtSv%%bcWmo(Ah<)2bZ({7^6P5PrV>0(K;;k@$a z79nKz~GEoaZ>A(PJ0#(<$v$ZZI8K?tLL^)kBJhs zzHV}_qX%b9qc0kIFSMd!d;RJ#l~W|L0OSl6-*bFYGO}100tc%;kGs7+X3Q&1od z!FvP~hykmst0M6=;1ogF1_Z6s`<&Wy=zhhSpPx@S19*w>G%>GV`-A3Y0uL=fhVhqc z8BmC(0UkXV5+DQ+nJx7pPPG{_3`7(_I#)2kMo9$gNqE?$@3b*~a!PRSAuOc^1`dO>K4 z<}@6#f4Ohhe8cT;hXMV~`9vec*EC#iP4g{^E*$CpKr=?63bew(lgb3>8Cv{SX!?4; z7>GtNNYb~pwH>aO_8?DQKnzEK9T@=GTXH%;I3afr&zgt=)M*OtokI}Owh|jo+g^5o z)dz7R=j)c?LVULas6|LP5XUMWp7Q7`AATLv&sMvM z3|;^SFb#}U+eDoQ2^Cf7pHeezJr{5q!RRoeOTobSoM1IkON~4NU~{?!@lc%}uM{Gq*3jQaUz{H_ zpx7_id2f9sXdNZPY>CC=HYDMW5 zKnstBST@B@R!hwXa*<}wk5M*wD*SdmO4T0ympMO`m@7A!vPmc?g5X}Bz;iU9gM_*M zAV~K5T#8_Fx=wnpVBUMH?aEzclZbYB^9e16WgBkpXe@ zKP5L5qG-dwzMTf~Cx-#ykJzpd`44p1;(qzOff?W!0sy~MR0txE zJ%J`64VuM~V?2Lf7|P6qDF)&&xx<~*3;a4mpaKukQN7hpme6ov+SVVjAPn5_unxHM zC=sDfx~Z<10gfPI2?Ls7q})0jtbZNzFA;+)KsXpVhuccaF1rEqeoV1AAcD(-zYSF9 zPzdB%c(el&E-O2!DWQw$a{^DW*ww$cxr*q9(HD3wdp?|R3vx~wnCfhaJdny*UA4mT z_kHt*Ja28h+NlLvm9zm1sFk20;vh6FvqFTFk`gYx*X|<_3q~|Q_L+l(z{>sNR~GxT zON|Kc_Wb8NgkjgIbHAgcq|}?KNCb^N1H>rmL|44-hBZMx5nHEaN6olxB!y{ zheEf^zoMdIo(hJ?QBwErUH0_Mz1Vn8NOzEmj)H*&cmNCXL>N1GcE+2;L|J0?!4x(w zE(I9AM@_{l()%g1lf-~EqcqT)SP2XQK124kT9yMJN+Yts^ zUTc4jIzrV#M~V##f$;NiT&*uj_g= zpJ+KI3Fi9HHq%Z)3%(soBcn<8fvS1|+lh#FdJp6|F2z=PVnV+R;XXhpPm=WUj`vzf zla-tMK4#I?*l2#^T~5|vPd2Y-<)>awcregc+ev!fxA-tr4(`jyc~&6t;g{e%SGw;Z zZkK1mtnBQ#;13DV;rIrpopaRkgvFYLGQ1CRsD6#}&)hE9^p2;zNPqwJD>)>{3jTtS zz`&_^Z9{2KPcg8B>aBPKi4Ek6UL*m^`0Wi~hDOtR3IyQM9MV!!z5@a~Gb&DJAFRT{ z!&|cNCn9d3y+2`XrXVT^eD0Q$BSNphMPHZ?6ijAwvVUOlQ7wntYM2{&UIwyxK+7UN z801++;6lPsuih^+?&ff@q(5u>Omjl8^kS%N4SagoQt zASVe(Qy2n{M0N`h3=9?$hqoPqAz>40EHiunIUjJG;LGp9xg4yX)c*#i6=V(>@WX7y zq<0IDQ7}VgPA%H2BjU6i2ujj4F#k})L?DNUusmQ-k#hq#agE+(gg}EqrGp6%BA|+Z zRs8pK7{v8?FzMqmr+1CX{aTfQptNkxoav!^SghVir8=Hj_lL_MQgIkmlS9}e`UrS^ zIL=1Fg{lK~35c!Ogaj<$P5zs-0B{?Hs@-hHb3GV$;epbPNHD zgbPZalhH|zrijpvxG?2CE1x>o8&?WiTCQrCAKcN-H_V$eRlbKSmB@WN@JPwNT&nTy zCAxFL()A};&7RpwB#M3qNzxd%%4_80@m! z1~-%uFwZtX-FKr4&mx&bwA{V3oR*1t!zh#}@kWXz; z#cTB5%y^=aAJ32^kYD9tfZ*p8y+E`y)AaOU4uPjBN;)*z%1>RWVG)R!6O}n5Y@eSn z3U>DjR4$`iLrjUiz2DpzI{eLR>cIoU2cJ(?G2kmyre1R+Uo5fA;D7ks@S$aSw5?Y0 zy02T14Dth0B|PZjx<_e>w-~f3V0+|T25O#3F*%1*L;!z7uiITeG+4u5r9ViuhxlM> zK6n)t_)x{%d(`tEe=glyWtNU--D_G%3IX-$vQa2)aJna1Y+>)DY=u|@0D2=_pruDFcuHf;A^+J;~6xrCw5NVh?8cwuEnOfBbOQI zH`^{HNUOwPTj9Bb#K_O5yiLaZ8K+T%|3`Cg0#5bX|BbH2GG!J*XrUy@ zRMOlsM59zlW?Jm-3!^MB8K z-s@avU;Ape4Qs96{kwnn{r!HXJ9j~N!qBj0LTP4Nnq5`m-c^FM%_9pU-Y#8A*?<1o z-vj4>_rcwg!o5~a?JT)mSS52IV&?})m-MGjZR~KzEApyE=5TozQ*mEI&E9lHE0>&G zy+l5kH;~9`BvuG*(Vv{8PZ;^9rM(+ccAK%^awC{kL*6czeEaNkTY)tkJZ`7y4*DW; z^7~}g$nn{z93g1WCoSn1`ch>|)iS564dnxcdGu~6f%EjsS=)e`q)6GSa?k}d>if+1 zm$X{bGare}mh9C1NGA8;-_!Cjmc~CZ7Z)(+M(o1%l)d#pb3fuBr9qXGSM>1CALC(0 z2~?FV_K-kF->g(qY0I2eiRaPuZ++Ovg=_ZY#j~I$U>VEg9ax@f_i-Z^Mq5s3OXNO6 zphVv{m}J~v7;j=1}T&S*2VIwP9*UvKUl+YUdt zdAr$&KDG7jO1VS%iz}|*)Z<{H(Bt#Zci7DZxlR3bpq9wF^z)W-U71<=S*VJM^7M0b ze)=(dOs{X3lM{6LrmMfeHmHY~N1&#pyla{DuTd z8t~%BFW7Ae+c#{ht>rH^RTsS0bqE78G$6@w{Ly3Sbre4TUCW4IHq?}du3$1Gv(soG zWS~iCdw`)nSFb@oL$hI5s}zTk#<~*=drJo^`+0qjx&20Fi7vq2$gSv%kGZWMu$h?} zL)KJa>kn5nlPW4I^?kPrmEpP5mS&IDaW$jm+IcE>td3uti>BR2C zZ~MlGlmVe!e!wxlrry7;siPCppaOl!Gc@JUC4>b9(MVby`e}+Esb3&)szON>eeD_y zsix8ANfMonjg8w-yGC6OWEFH-+3E-JXddww)|%)gY!uQVg67jUGZP1WP2%ak{rF)T zbq5w8lAVPbDiPfuv^id}6ZXm?gqG36f?G{P*>XR>j|R+Tq~EzaPvMsz5B4qV_S}rKO?({!5AGG ziJ8bk>>?Re3i@2qW@+o_5OZl0;z=PN2qoQmUY-d0IZ+ba21T(LG-_Iiz-$=9?TbXS z`xPG}&KWnABxLbOY_R?0i5m!vkaSVF_$A6HFu6okY2+ONIUVo)u!1P=vFcIi&@Q1J zMqAnm3xF;};jt4r_(Y^n1#&S2sT^X)paI%C@3=yRKM(FeDgiw1QM^pdb|U2I!_1DqN;t--2>Uoz;dfwUJZ+w|3QA@T)!F5K!k|tzJkWf;fS(p)~=DHb1 zhoL~91j<8n%H1b75WbX+N4$*8@LLlSYs%Nn0h| z*i~PYpf2V86@E*NS*lhaR~B|~JM+=#+uljBWh+;f6hE-onR9w~x#{A4e}=bO%P&-@ zStARm>cR!CqLJE_^V(~GO(eIDfL=tPNP+ez7(QiymHeWj=TlPTUf$lk7;+&L389&p zN>G=6b6*c*n^es92Ujk~#~%}7V?S0b@Z6u<3DD}a}g6i+l@keih~cu8F8`$0=e{_vPAd`n~X8Y^eUl&8zH11veyh#VEd_mIHRW)n=`o927U3FIz z{|#UwQJ%Pd+zYIj>`Rv1*${gf>O~pds4`pCLo<}0cG&f z;J!NtlvHQpal`lm}N?&cOs+C>?G^XXd_;yDDmF5e{|yECm|h2Vm;neRt$xc+QN z6{o*^X*Y;f3-Cr2)&T;SqOB+L6xY%j&)5^++)qbluCzRu^p?RFBu{;5rQGC`sjWRw zi*?{@t@E{7np~)7@V=x#w{h8`%byuvR)|+z51&2q_2nM&z1!ylr7WF)U8}Y&xekMH z-cHM{6eMj>$sj8quI3_IH%N80;I1GJ*OZi$4X^rmxw*H&H5?_rety3JAVu-R4o%V; zu{1-xL1afX4L@Ur9G|0Vt4qg`4Vzs=48+(rh()Ntv)`#lmf{C3Oac_K^-kGM$UP<5 zs3bucyi>MCquK0?$LhvRBnZbf#s+G1O-=v)jqx!3H%tr`w%loN`@eHpY8g8c?gsmX zb!&X}oU2h4Oxai9sYDkj9~`qFmEx630c(YNMzQA-zi`*tY>D^RnsZ%wF@0d$ed_qW zdgQRn{7;(=Ro!2lbkLoIz;kfn?KfHA_|s-+$2mD{}`bnUfnNxL5-lN|{|< zUE#)lInXD-zy9XuV08T#7;giXB+d+bUFn}F6^V%gF@bV!uM(4xwM+?f@7WZ?ePXHY*MT~EA% zWDg;aCV)Gl8UqggxX9}a@eC3zJS5m|2vK`^Q~k|5F`@$oJV!zi!KwiYq=Rh(H$)OE zhM@T*Pp4-iknK+`4{w(3zIRb;-Py_!lbyJv5vd63f6d8nZz-AH- z-xAFHWd6pT>wflZKIFTnr)T@FU4e*fMahx{(x|SikO;AeBc5d4LRq#6sjP;zJrJ1_ zi#)iCI>uVSf2f{1h(P&gR*gapHc>u1J3AulCbCMz7!#W9+Lp84#a})rMQ;hmQ$du^ z+js0J2ewbPPOMs0?AiV&purKuOUYF4N&+fkE%S%w0A#@wYf4x{oP*Vmn@3jG|< zZzZRn^k;xMqG-Ch$;|foy@s!^(G^Y)PdJ%!Xm0UMq-Ni*Rz)1+l`B__zYmLkFuM0I zExVDc32l=pc88gXru;IM>Lv`BKr+pD8$g zdd^r=F8XNC!K|`9JxKmd)Z@axov<#fn($kG`JfQ>8=!jSt!998K$*Nw*`|9tWNmDoaGb`l#t25Cv!;`_O^)#b$-eRax17C*>J* zJ})51VftMGHO)XKv;8@()-a?o$u6W7m&c3|iBsvoAV+iJA-8u(HoEIuWWFzUUNhIqqP41{WcT%JaFfi-dXU)!riPehV2%8 zUGHOZYlUvn+W`tro;scX^k{-=Xf~IDk%3uw$9`^7iq9Bc+_4Mq z!AUlBsSdy*J$AcTe?*q)Jlf|jnJcoI;OM-v|C8vSUT^OLjB89M4q$ltx~96OhS{nP zs98+Se+d%)FCmNn+kWYcTtyi+GO}R+P{=EgCs!@*sHODi)UXXw${Kr`pqxI8or8PT z<8aiCD5VpyF7uS;d_wyY4v&fiN}Uy@vN_w?8;>#CplVKMSCyu;Do2%7K@V z0BlrTbes`DT>Hva6!cB$Q5h~T%h0~ZU|lEdBcZdgVW2s^?cFeezoBC;gWe-yf9lUO z?=dVcFH^1Qh{Y#feR6C8Z0Y305n>1-1p|`D+DV;sxXXP#r5ypq3`hw`Tnvf~a<;@0 zpCKx$I zHby!Wm=y?$<2yGS*AJws5?w0^0Yd1@+unE(UpBoTQsWx$oSRw!>GBYG{lfsr8sgL- z&cHBQlUyuz_P*t>a5P*}<00?Hyy>6j13ZAvAROvH+V)M0w;hOs29T<&7`Tfgp> zT{t_I=_`fYExhHE=0#|e5v@ZiVcgxgo9YyzM=`3I!VZouxCwV|WMqU-Ow1%X9gtlo zs6}GIZ^#D1Kmzy)4<1=9R#^s)Gs~$#o`7D%!^7hx&UnY%A5UEZ{`~PtX>bD5tg%$U z@KYP=2MR+^FREdjEW|ZvQw1rwt4E%s!_&-^!Y(?|SD(m?XjHnT*jAv(AZnG| zFWza*o%kh5R=uO5sK9Y7#*!sBr;Ce=GolK8&)9uGdL=Hdxyb1B>GghRI(d5g&<2+S zm_Z&}wMHNotojosA~*|!;`jKm>dom_QVcXe&bb~%>uCl9OeqRWm(nO$$@UL=fA8wD z1{ktkPfzFAF$I^FJnK*Q8~d!+h=EY#h8P1bfQIQQ+{=M#M{7F#emDvt&+RMIZrKB| z4+DPvc*C66Xs&;Hdgj#(ikQb{@8i%ZP*OxTx|P0sxjTNVuOz&V0e9|L#?C-$6l9W7 zjlhVvaIf8L9BeIAC$1gG_p&#q2_>~uPeQt_)Yq2)SJ0n57Sks7F5(@7P|DDyzU}OU z#BHCE9d&)EI!W>%cF2ZvtE0oiHPI~&wav{gBJB`734Y;5At*oZ-n&Pu4CT!|?SgAF zdT8c&qKycjZs~>cZka5zzX;yTn{T}u7r}H$I}Pbo1RjV4bpLst{bD4XC|J`UxlBgu zb??8I!V?PrO#rkZ$n4`tu$l3{K`HY#%Hnt=b@oOi} z!oq|**)V{Ocm7S+IKHE``TXK0{y6BL?m_^Ju_fXx;E^sTM(2=A5DjroJBn(pef#){ zfgTmz*Xu`ar)H%S5f3p4w9SsIr<>;TfHWrYP5JK2T)*RP#fI&cz5Jpf_E8rJ=-xUz z%u9qyfby=VrD#MJN#QFKTf>t>s~kWiH6_#X7O)4(TUG0L;-2wB|g8Yc>e!< zOZc~sr`K$}Xzlgg^?lrVGVItzyJ?$GZlJOzWo3mUtjB$^K$eJmJ{NSe_|t;qsdH#c z$E2khZTnwfwX7L@pb!;wE?=bNo=L)pJ*0z0iiJ*il94>*Z{b=NY0ARRGZMPH*@1g> ztmBai^R{J9-J{-XT*bIjwL4Pkh+y0RpW%iYM~L3?ggov3-d>8EzDVBRG}o0aU!wAe z>{)AX>X3g$4O@Qh0yFd2kWl|V^1oc!5M?{0ykH9?^t0)S%1g=H5?pnC(ZFzn@qOrQ^Lb{-Lh~2KlQ>^^LT2=dp117 z;=5&I6SOmeU)Z`k5f03|*uRy`qR3|llfi1bIbFvWy=c^(!F&H9ib3Du2HlT4G^m{L zp5x;2J%rBJLFkZMO@C!s>xy79GfzSPwV^!!09U`$d}u>;=Xfg(w^OB;SmnLePh0do zKC)aa+E#Ne(^=V~g#C)6Sn;Ogg;5uIz}yrz=^z#x&_l=>P_BPCEwlHkZr_9EzgD~LUte2mUnVIu zGcytAu;zA-jKR88(}4LGh_hx0zN2+a*3fxenfKLwjuH#rKJg)^*mQ{E1_+|?@=^?H=7E8<={ z!*(!;BZj@=;GMPm_mDMKQc;v)EV0jR;kBn?B0PhcUVIe!0?rHfqbu(tCY;zgu_~hj><3x>-!>*TTOY#567NGZ~m+^daK3#zB`-G2;<9$_s}oyjRl(m ze3^+t^pgN3o6eG`m+Ph;3n_j*wcA9-`vdN^S#962oOxsPy6wH?d_r4@F(&Xr^TSk(2(281=xE$2# z=N@xUS>|Zm)7KRI!g}|jY{S~=n+sgZulUwE*_DTc_=Dm}wLaTqyr4CmYEK*@#B zAeZ%jJq8K}W$#_UxY($xA;Yyw@2p%gFepnbxBpQ!-1xkP?!{tJ z;be({Kq6uNy&VhxZyArHhOY@^3-`G=q*^s73CTHPpTwi}7eRc7VXX!#L0A$SFmA{^ zeFmedv*aB}#|V4^jDwirpPH;9_2u*D+etbg;d_WI9ZUtl?azi}BUR3`6k&JVZ#QJM zhnZ>Hg5<9AL66n#%lnelcv5wVU>dAcT_jG)SxCko5i%f?(kpP-ADco36M>=t%4dOV zTDokR6r{^IZcY=ryDWmmsFIo<2PSobr>H_j&9`I;@xpyJKLT=ysK@{mf=xh)$fszQ zM+&X9PEz@UZ6iD+Ihlq+3U46pu*Z=MUyPgbnek&}Ub*MD3~azmpFUBl!pxFuRp6f0 zTpn2czJ?n7xY>{+Qr9<7uE-;>4`x)R%P)dJBqpGCCYT-!&)f+%LrC-bWu+`aa)kv2 z1&u4pFq|kO!7e!D#~CZ=pqGicb<5e1{3XKznU;qkUH5FvhcFK=$(*9`i3v6efpJ(h z7XyYJw&f%L;Muk?zmQrIDm2WRLb zU+|iYHGcXuhwQi?0tQ_4B98a55pim)-`+1;nmnKO)zdfh56Dmvz(etlr` z8*8*YD5TJ6JQlly=&b+D5@Z$XVego2QRKRIeZ;l=qA%yVONXY*BbS0jB7##C%=yOPc zMgT;TYyig8?$e_Gq&#gnvj-TIw_9H8HEK(7>RN5BMG~rgSiwkmC+g&rJ?~glufKep ziKS|CW}=Pg{L@whqwlNlISHD1UME@u-X7-bCkU>L;E_Q23%-gc^^Ax2_|NlTfQXV7 zSsiLf_Tr@cHzld!e^Zh^R2@PkAgSoGi1pc5=k~F;V%w*+%tmXw-iXpUW5lmPF`N~KOopDVB~M@#{-SCMEhiwg<6=j{f<35 z8t06i%&%}SeND6wUv8Si<5FMc#ME}9Dm8J^iePe8K_2TILX=s+VNKK$cP$n0fdrml z*g(p;@T8(0p`&mIj?bd662?oxjS5D6ZwCv1qGErH+T=egihr_`S9dHWj4vC|bPO);IKsRmfzv*XriySIl!K zciC&;(dc*`tsM*?@F+*ZZsyJ|Z2rH=_MHCkaKyw7XYL1Ep;0>g_=kll zVcFCa*LrO|QJ48So9mirrrD#u7o_?z*y^HgPvkxEb*L3m+l8O?Z_pec5e(~Gk~Z=C z((4^$3-0igkXY-2pX#>$Vbn^SinN62WyM*k9X*^0cMHp|SZ2v5uEOIg6tU3ITh`yY zt#nl*+Sa=_@(o3l9o6_srUa*)7t?#gdepoaHodITvzUT zVo30^hb{8+Pn5>ot_J?Oj-j=TWR_s@nQj}r;NEX>)(IPUuA8^N9}?mr6^AS;4!NkD zVtc;>wGV3^gy4#9mo2kqG`Ef4)zVvW=K1qxEG^O_^oNe3-SM>Fi=W7wu*ZKmrW7^6 z{(H1kvqkaaiY`2xo8`>b+A~_#bBu`DlVGNp6CdXFjAq*LDT|4h%QyjEwvkiA`Q z6?C;Qm+RCE+xjc9>i>N4uk@CgLJpMVI~$t+0XSFgJBp(IZ$TD-#{FNpi!Itj=CMcP z01IBrWG3mD=c!%I|Fxh|>>m}G(EkUDMlIp3JVyn%GIF?*#q`#r_jwSpKT_DP%gYQW z>acC8XlmQb;;OX%Ve9iiJw9=dLzoev;d*>-{W_99MMY-KYWml;7Hy5&k$mdjAvqNM zF{UPze6uKquaND24lqyef9yf`l79(2>syDQ1od{$EU^F!zdJk6>)r@1C~z_o>)OFi zoh=!fIH2LG3`JYQs+FPtLDU#>k-l~NGJ)JbHZ2a(+XT*QU)+(5fA!^k#L`4CL!9WL zk@M9*+rs%1fB$PGFc7TdNa?9;Fa)aY-M)RXH%WW} zTUV@C;|aYuk|`Y=Vhlk8O92?fVFSmXkCDJ;u=0k5TXFuz>%r^j_gdA~aS<*QoRrgN zxB&LS{)JjbOQEE35?cQ+^&Q80KRsEFt)u5rU+k4DloWO)P{oGhxlRqW)53OOpn|Iyi6sRym45o_!56Lq>RZjMO zBj0XmnQ2@C@MxqG^q zA{(V>xOy=uE|FP^@Jyms=|tKgv3DI+zzKq!ATpm}cvWnku@{XuAC+6RitzXdmd+7- zqn67BwG)*BCXk%`1n4iM=q#pT?uT}lfGIGETGrN5@7}$u2Vzw>PDTPpo*}G*19#EE zLl34nlF(S!M~oy0l$gXWqk=pxr#k3Mh`xmcKR};Ep&-U1`2KD01rdvss!^FjBXaEa zQ66Rtc@6Of;b=z+1Ih~G)xuc9_A$MMhR>ni`Bd3T_4-hz?+hoBQVn%_b#-*4;kY0@ z3*o1~b5ro%PaCq3N<+$dv>wrf7Yzw9TG0pl0DhYPoI;_baUo+@9wbB7n|2qGr=7vM?IRS?tA zvE?2^LzLov4Ad|+p;_5&{O2KxkW}Y6gkz>;KZFQN7eF26$Xi6U){T=wd#~@*Ld@~= zfF2uqOt4Q3ymmayiY9dNEEwF1+DX2I53rK)=;qm_p2Q4c;M2$iTO-pccAdj5>`c+&Qq6(1MIR6sZ#)HRm zNWvgp@-gSkpNLh8JKFs2?lw+}&|$WLs}P(akEl^Z(DP@LKPdC27C3CyQ&QeJfr%MS zaPR$40l-rR2~PykY`*>90nNA`AA2C0w;KLWXl9&i&qTz3hcg@9f3eD&h<<;4D+1*7 zu3f>ah{bRi>YKypU5q|w;=u<($WXkx@njWY><*ImBMlT#oJjqZ8fkH%6e*mEe8<@iI^jL|A{e%v(P4QPsSd}%wuq#+E=kE|BiK(n)1ugE z(*&$>JjgvK7XZ=Z( z9V+M(9vUq0R<^=g-vqmmoe@VjlbSsF{aCZPouLd9~N6 zyz;mkBZ400)w)Xs)ZF(t&2JDNDBR|SnFYUYi3-d^t-UWqBPNU#ld=M-WJlX4@j;E! zv{=xo;H$c)vK2Yc{(*+Gx|eRYK#T9KUYDuwo#LVk=6~~8N{_5%Ye@)eV6FOOvkCLR zzAm3S82RN(T;L6tp^3rF6(Z~I+69m+>Q*#W{}^&C&Gk@O@y)Z&ReP$;5@cW7%E3L-77VEN@m0TZ}3AR{z zn%7#B>xw?mM%Qm0yfK?IHZ^;8oM&=18`V^*?6xoy8R8K+4-Td=4r&e#AAakQe&8%< zI9|RSkIoWb{lrx{6&h!m<_GNbh28+a&Hf1^uD^IG-Q27#Z+onj#X!_rtr4?UrB)YC zS4s10-wo%Z3rEoTBfhS>sv(`q&Vmd59$7fT-S%;?)+2wb__YbcMeJl)pUX5Yra2Y- zzM0!Yqk5h6?xqEH{bebU^n!Mc68P5Y(_gC^ah!>U;^m56vcbEJj-Oe}7TD|3krUvb zA2r57BbJKM`ZQO*lof&oKJPOpt9^BsC;W_}1ZI7G!p^0$uy(+}Y_BwbrLH3JaAX;C z#ca22xTSC2=%10r?D5YF=%*d!OUW=yaAybc>rm&xgK-ey(n+a1DfhnTYv;1StGk`@ z&mZJrDJ!79@n*iV#R9F5 z^7Y+uMogxytZI?Vl;@m3I#`$4s%m7aw@1-QLAP)e_^n9qx(1-1DN;^-k|{20DZ6E_ zSrw=+EOQ9T&E>WADvd4NpRdQ8^p=(!O}xE~hSc*OJ+di2McbD;#VflN<_R{tOZ+)2 z1Y3<(PiOzdAFGJU-q8F$XR{Nx@|-Yj^UmxphkJ=s&$m6?^=WnOX+t?TJoFE6GCZE} zyc8E>rD;SLRoDQaX25MCqXZ{{!I1_J-WK289vWp<%8cdRiHe1RCiV*og5J`uIMgMM z3E*?FS7_Pn=ynDaBIdg-` z4T{I1^<1o4*{h{qK3J?pT}S7_FGbrYYFym8jJsG6D?n1(Lpw6Md_m!?QO;kZWMhdBWU`ZxjNIi!Yj_@lf-IOuJr+EyRd1@?Y!M3AJ1^W-YdGRdb=FGz-}L zGB{KB@^22{%X`x2R)2g2w%cTe-Mf-mMK584bQVoEEZt<|1JmQf=R9A@=9!y?%Sutl z<9EUVDA!w1k&rP!)!@@t+;pmy*|5b~f?{>(O3KI)w>d86UxVJcT)D=PNU88QcV zPrQ-Lli5_(${ZW^%!U@aHrr%fs$#DM>!>$#AsdFVzroI&dLpfid7b?ulUFx#p-6u4 zo}u}~+iT(9h8gZO;OH^T4M(cVrz;s%3)%ZERp&muSUBlfXMZK`O8ee7yxaD>dlhDO zv18`BE4j9;P2?Y*ty>>6!i&!9~m{BqqMj z_0K?$J60=nL2P)_LyLTyMvwbNn}rU1x$V@LFK_AVpypIJ@+=36qOk$l`qo?ffuMgI zcyM%?a_$0y^p+!YW2+|ypU?oUP_DVowz>SS9-vbwbJH(sJnt+P5wyL&Y~O)h=MT-m z=<}$M_?=$sw~F}JZe;d$!A#Fj9 zcb`=Q&I`M(b~-7q6RF4T?PAWIWEAM-zNJp(O#J5qmoHTwoZ+eo-PV3oaXbu+Psw*_ z@hX<~qqFa2I{9fDe4Dj&xmrf(8}fTLom#>7Iz{kJZ{eEb+n-S;JhsV&ctoEaaeH1Z zi+A(pu}nS{%V~Si>X;*kyz!%rd`G#T_i;~3FLhy>t*z4M>XR&dxYqXYLcD0=HWyW| zd^5^IAGKEQxpP8YHPK9NY}~@GZBi1PvPtcqepc;QwxOpO>@Exr^`rN4om~ENPS{U$ z+P18bQ+Tymn?c#w9u`^z?}Qd_{<8T?)f|w$C|pfH(AC%1yHtvjw`i`BGnbyTcgd9{ zTf^}lYVBuyP0sCpaEOmx{!k><_c*ilGS-A>rgY&U^@nUH*Z+EcxZYMV*xOzuwy2r*3 zKkcCI$*3w!*w0oX$Rnvrdt+BST@_25njpA3@+s9lm@#Iqk^X)~H zAw{o=it!d^Y3t>z0UD34eSI(`+IyW-bF&cUi1hBB?Mnh*>*G8)3#AsOq_<7gHA)Kt z^xGdk?B1He*KIfdrgWdgHP<-DlYmlcDk3S{;OZ2>FgbMwkNnwLL{yDntyciYg2^?<(Lr~tdkNOawqaQ1~{p@!?Nsq zxLdb~*BmEDCXwD5;v7;cuk&eoQt%ZjUt+lj=t>MIsH7_)>SZPVka>#+Vo`{OsG*_3 zq9!#x{TbXT1l=TxZ-^nvh(y({PWa9Vv{N-870CC<;evpF9h{slMM1^FNrVPC&x5qk zNE{>vdxRi&N9At0=0h-*btntD}|U9I0T4C{n*-@HD)+# zBMcuMtu)V{UfhrJr2VP)>^E;342a+?TI`yaqwLw_+5M_Uk@h-lq`71%rr<9`n4z^+}KB-ro*PWb>~R)roo z2uI1mqNgQ7|y1E)=|2`0HpmUN+N+h{DXYLG;U}f|sF~GLN!{@cvuw>}qK;nDx z>dwvR2w6#R?|r>nny?^|3?HEWSz0x9wY5Z8P0kpFzC{}t34!z_HqJgQNN#W!f!AiHfFdMkOOk+w z2M-<)?YUXLI}6ECUR^C=Is9BEnxr)l;)^o5xdiOl?pqrS1(cDAKq9V5imRg}CN#2L zz&TwW2S~*sBqT(>M@h)a;x{xjM8~%G$hmV^0ZN~nv)z3YpKlqn*G1Gyg!MJuoFz0m z?#xqVVbM*t?B^zX8WRR2yFm)N<(AH;v!_>#v=^B-LHSiCNDFfvoUrle8kD!p0Qt@$s#h9_w3vhz`vg zb5y5QmNB2GXphPOo{h~VN8oeAy5ZpBqJ!LdoFpeo&OSp-aqp0;CLissXi?R|u!y^P z!-^YE-5wk=eR|35sP)TVo8oykj(Qi@oRIIy-WF;w%uGqED)x}EfAYDP_yMA4I(*$C zBO^sNoRkCP5(J941M~&S%fP8c4C0i5Mo&Tv1t(qpf%AiVN-9>_CQ|H7h+En`9x=i9 z!yI!SK~H#+;4fq*Qa!*K4&Tp9T!gi!d>0I>r^VIh7A3wf-m&Rv7W;ZMvO9=o24=8bN_DjCO;)e{? z5Ge9&?d^9SewvdrbygB|5Xd$HdRzkr2V-ZO3w@~upSJG40+uTuDfwxPr%caT{2T23 zx2TF;*f6OWk{Hyv?wW}yUm{AKCrXR_w`Y1UTd45eB~pk_6ktZWug%`$zfl_)w3E zV{1F1S?kkx+6yxE9~K(&R~fiD2Gy{@`qLG?JDB9=UMq7!g8IQp4S%k2QhS;4#qz1- zQj>wT8X2e7+WGj6C66>-xo{YTHzhuw-?ph=$B!s7u914Y@0tLDa$m)Z%G%}Dxh>1xGhHlAWF1zV7vpKkyHeZ3@1L(}JGZsJmBubA9QQZPNU6 zE$6x;?T#Ud)h@Z^ADTOcclRG+{x&MFPL-BPJbRA&8h>hgp^6`$+recQA|tB^w_9DU z^9;l}mc>(JhF*ic*kSQW$pmp}fVb$x|DCk-~6O$^=*oh`mUch7oing;`_V~#Ym`C0YxT@pyBrMp;dlFYGw*B;1 zbAjoplh4Z%WRFeX*_}E4X>1#XPoJ|htoSzPMPt7dnI9pmF@wE}ElmDM@URhfmk1DH zP2nB>xd9aoS!;=(2Iftf5AUVe?_T|yA(J@y;@2iK#j7>#-Cd@ z2=9B#Yt+B+$&0YRHs&V0@4-UK5oee9zNeX;`E)-uU!>bGj+&THeSLP0ZO`|2`g@ai z0g@oCAJ%Kd%9NeD3loOT_gX!q?PI>xE<)HKlt&*f5dE^rKabLM64tr*+0En091DX%LQ`U-LQmj-fd z({7};zut6lP`$-DsM1<@E~vh0BS(PWUm>3#9ooG=hf??WUG=Xb-Jyic+cbu0-wxyR z)S8E73QV^&m-NhulRosIROUuXnaoX!-xX^d4NYffGLDNKk7zV~l`&aoqf-sLkK9E?(Hh zN7EQpC{bW?w@%=a6QohaBL8~zyW_jtx_Y;1B?n`PspXq!XVpusOfrPmsDGjUc(f~v zYo`=FoLbmA@PyZ2X@ar+3CEfzs$bb-MCxtFqQq!ev4ebl@;Sf7QE&f9PG@p$T-o+m zG{paX&$CyHv%@Zg>$K(3x@8KD1kpWTGa0CGQrRWVD4Bes&=;fEok7dWonrbDu#y_| z7n2la$Z%`mbODo3>zIq{dak?-{u}AZR!ot)ma zEMK(fY(5{KIrCi#iqA_aF{Z3OhuA8lZ~C3~k#4G49^!OreyRk#Gf((w+WyLru3Pfx z0qWdadeH{jQJrPS#nbHk^-s?1K-G)9!>O1l)-)vnmHnPqi z#D({TAA8s-)G+@-R+*`>^TVGPUnh5_B4*r%{aKZ%BGZ+MvYGFLU$oQw@+<|}JJd$@ zuCJwR9X=q)oMF#7HPP3nwyxfkAycW0%GAP~hUA2cCDZb*ZH_8dkB#}uAJ;oss=YD>2r3{WqpFJQ8yo|hiEM$Jzv zv(1u{S7q7|H^y#eAk4SFS^_1^&I!Y)&S*V0KAd*n;#i;DA#_o4>6JsbXpKd=oZ1Gj;09!ZA4lB1d_roiY{8zzHp3-f zX#SI;DSQ+rLFTiElaAj{73Hm(;Qi)~I~u^gxF{Cto_ig4l@upOe#L%d%6Ay*3K`0A zh?q9HptETc{dM2n!HlqrrK*(@v)mgNuclWVS8S5d)83{-b6-C{=_J0yX?K~Hs0uSg z4<{7uJ)^=rQo6@}<*2vB(+OtQ*ocx+O--F7mG<4Gek=K$);L|uSnIxs3}-Q`uMtz% z7E9@}n}!S*QT;FPtA6?IWNDpoIlq%iU-Bd^ohsSL3f(iAe0RNu<~|l{)`?kiEv4X} N9ozJ@A8J|!{2u_&s(Ana literal 0 HcmV?d00001