From 30926eed0010c753f20b21f7876c11ddbbfff853 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Wed, 21 Sep 2022 17:27:20 -0500 Subject: [PATCH 001/228] added diagrams Signed-off-by: Hao Luo --- .../scaffolder-task-broker-blocking.drawio.png | Bin 0 -> 67549 bytes .../scaffolder-task-broker-events.drawio.png | Bin 0 -> 64340 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/architecture-overview/scaffolder-task-broker-blocking.drawio.png create mode 100644 docs/assets/architecture-overview/scaffolder-task-broker-events.drawio.png diff --git a/docs/assets/architecture-overview/scaffolder-task-broker-blocking.drawio.png b/docs/assets/architecture-overview/scaffolder-task-broker-blocking.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..214de226f1e7959e9bb56f91173a6c415f74eb40 GIT binary patch literal 67549 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

G)`MV)WGa_Q&}=T0^d#0YbB= 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

G)`MV)WGa_Q&}=T0^d#0YbB= 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

F*wE6DYsH4XSOJDC@h8{pVMt@FD! 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 From a0d7fc396530872a17b4da2bb9a495cefb9588a8 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 13 Oct 2022 17:20:32 -0500 Subject: [PATCH 015/228] updated diagrams Signed-off-by: Hao Luo --- ...scaffolder-task-broker-blocking.drawio.png | Bin 80393 -> 82140 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/assets/architecture-overview/scaffolder-task-broker-blocking.drawio.png b/docs/assets/architecture-overview/scaffolder-task-broker-blocking.drawio.png index 4abdbb44e4462e428d8de6284abdfbfeabfd594a..34f2c31f81a715fa59775c4667b36742d5c162eb 100644 GIT binary patch literal 82140 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 X^hsA_{xp6U0)8|v>Z#?QzaIKOQtggM From 57f61203bcca314d8a68d86fc00fb0f0f2571c7e Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Mon, 17 Oct 2022 17:01:19 -0500 Subject: [PATCH 016/228] removed wait-action Signed-off-by: Hao Luo --- .../sample-templates/all-templates.yaml | 1 - .../longrunning-demo/wait-action.yaml | 43 -------- .../actions/builtin/createBuiltinActions.ts | 2 - .../actions/builtin/stress/index.ts | 17 --- .../actions/builtin/stress/waitWorkflow.ts | 102 ------------------ 5 files changed, 165 deletions(-) delete mode 100644 plugins/scaffolder-backend/sample-templates/longrunning-demo/wait-action.yaml delete mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts delete mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts diff --git a/plugins/scaffolder-backend/sample-templates/all-templates.yaml b/plugins/scaffolder-backend/sample-templates/all-templates.yaml index a3c81f8af0..6637c9479b 100644 --- a/plugins/scaffolder-backend/sample-templates/all-templates.yaml +++ b/plugins/scaffolder-backend/sample-templates/all-templates.yaml @@ -6,7 +6,6 @@ metadata: spec: targets: - ./remote-templates.yaml - - ./longrunning-demo/wait-action.yaml # For local development of a template, you can reference your local templates here. # Examples: # diff --git a/plugins/scaffolder-backend/sample-templates/longrunning-demo/wait-action.yaml b/plugins/scaffolder-backend/sample-templates/longrunning-demo/wait-action.yaml deleted file mode 100644 index 56032408b7..0000000000 --- a/plugins/scaffolder-backend/sample-templates/longrunning-demo/wait-action.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: scaffolder.backstage.io/v1beta3 -# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-template -kind: Template -metadata: - name: wait-action - title: wait-action - description: template with a waiting task for a long running action -spec: - owner: user:guest - type: service - - # These parameters are used to generate the input form in the frontend, and are - # used to gather input data for the execution of the template. - parameters: - - title: Fill in some steps - required: - - name - properties: - name: - title: Name - type: string - description: Unique name of the component - default: some value - ui:autofocus: true - ui:options: - rows: 5 - - # These steps are executed in the scaffolder backend, using data that we gathered - # via the parameters above. - steps: - - id: someAsyncCall - name: Some Async Call - action: debug:log - input: - message: Some async call that return a tickedId (guid, for instance, that identifies a process) - - - id: waitWorkflow - name: Wait Creation - action: stress:waitWorkflow - input: - name: 'test' #${{ steps.someAsyncCall.output.ticketId }} - delayMilliseconds: 1000 - maxCalls: 30 diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts index 8f1fd056e0..e388a70f00 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts @@ -55,7 +55,6 @@ import { createPublishGitlabAction, createPublishGitlabMergeRequestAction, } from './publish'; -import { waitWorkflow } from './stress'; /** * The options passed to {@link createBuiltinActions} @@ -185,7 +184,6 @@ export const createBuiltinActions = ( config, githubCredentialsProvider, }), - waitWorkflow(), ]; return actions as TemplateAction[]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts deleted file mode 100644 index 9260f41e2c..0000000000 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2021 The Backstage Authors - * - * 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. - */ - -export { waitWorkflow } from './waitWorkflow'; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts deleted file mode 100644 index eeb5603e19..0000000000 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2021 The Backstage Authors - * - * 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. - */ - -import { createTemplateAction } from '../../createTemplateAction'; - -export function waitWorkflow() { - type InputParameters = { - name: string; - delayMilliseconds: number; - maxCalls: number; - }; - - return createTemplateAction({ - id: 'stress:waitWorkflow', - schema: { - input: { - required: ['name'], - type: 'object', - properties: { - name: { - type: 'string', - title: 'Name', - description: - 'The Ticket Number used to check the status of the Workflow.', - }, - delayMilliseconds: { - type: 'number', - title: 'Delay', - description: - 'The amount of milliseconds to delay before the next checkStatus call.', - }, - maxCalls: { - type: 'number', - title: 'Max Calls', - description: - 'The amount of maximum calls allowed to check a status before stopping.', - }, - }, - }, - output: { - type: 'object', - properties: { - status: { - title: 'Status', - type: 'object', - properties: { - message: { - title: 'Status Message', - type: 'string', - }, - }, - }, - results: { - title: 'Results from Ticket execution', - type: 'object', - }, - }, - }, - }, - async handler(ctx) { - const { name, maxCalls, delayMilliseconds } = getParameters(ctx.input); - - ctx.logger.info(`Running the long running workflow: ${name}...`); - - let i = 1; - - for (;;) { - ctx.logger.info(`waiting... [${i}/${maxCalls}]`); - - if (i++ >= maxCalls) { - break; - } - - await new Promise(res => setTimeout(res, delayMilliseconds)); - } - - ctx.output('status.message', 'Workflow completed'); - }, - }); - - function getParameters(input: InputParameters) { - const { name, delayMilliseconds, maxCalls } = input; - return { - name, - maxCalls: maxCalls ?? 30, - delayMilliseconds: delayMilliseconds ?? 2000, - }; - } -} From 05644d862e0ff3be0c2a1db225f66288f69acc32 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Mon, 17 Oct 2022 17:10:16 -0500 Subject: [PATCH 017/228] added TSDocs for the option Signed-off-by: Hao Luo --- .../src/scaffolder/tasks/TaskWorker.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts index 1dc8d01aad..9af818c421 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts @@ -51,6 +51,18 @@ export type CreateWorkerOptions = { workingDirectory: string; logger: Logger; additionalTemplateFilters?: Record; + /** + * The number of tasks that can be executed at the same time by the worker + * @defaultValue 10 + * @example + * ``` + * { + * concurrentTasksLimit: 1, + * // OR + * concurrentTasksLimit: Infinity + * } + * ``` + */ concurrentTasksLimit?: number; additionalTemplateGlobals?: Record; }; @@ -75,7 +87,7 @@ export class TaskWorker { integrations, workingDirectory, additionalTemplateFilters, - concurrentTasksLimit = 2, // Or Infinity + concurrentTasksLimit = 10, // from 1 to Infinity additionalTemplateGlobals, } = options; From cb823a809e5a45d4a64e7050411827daeba045cc Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Wed, 26 Oct 2022 11:57:24 -0500 Subject: [PATCH 018/228] added test for concurrentTasksLimit Signed-off-by: Hao Luo --- .../src/scaffolder/tasks/TaskWorker.test.ts | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts index ee8ae400c4..bc09d8605e 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts @@ -127,3 +127,70 @@ describe('TaskWorker', () => { expect(event?.body.output).toEqual({ testOutput: 'testmockoutput' }); }); }); + +describe('Concurrent TaskWorker', () => { + let storage: DatabaseTaskStore; + + const integrations: ScmIntegrations = {} as ScmIntegrations; + + const actionRegistry: TemplateActionRegistry = {} as TemplateActionRegistry; + const workingDirectory = '/tmp/scaffolder'; + let asyncTasksCount = 0; + + const workflowRunner: NunjucksWorkflowRunner = { + execute: () => { + asyncTasksCount++; + return new Promise(resolve => { + setTimeout(() => { + resolve({ output: { testOutput: 'testmockoutput' } }); + }, 1000); + }); + }, + } as unknown as NunjucksWorkflowRunner; + + beforeAll(async () => { + storage = await createStore(); + }); + + beforeEach(() => { + asyncTasksCount = 0; + jest.resetAllMocks(); + MockedNunjucksWorkflowRunner.mockImplementation(() => workflowRunner); + }); + + const logger = getVoidLogger(); + + it('should be able to run multiple tasks at once', async () => { + const dispatchANewTask = () => + broker.dispatch({ + spec: { + apiVersion: 'scaffolder.backstage.io/v1beta3', + steps: [{ id: 'test', name: 'test', action: 'not-found-action' }], + output: { + result: '{{ steps.test.output.testOutput }}', + }, + parameters: {}, + }, + }); + + const expectedConcurrentTasks = 3; + const broker = new StorageTaskBroker(storage, logger); + const taskWorker = await TaskWorker.create({ + logger, + workingDirectory, + integrations, + taskBroker: broker, + actionRegistry, + concurrentTasksLimit: expectedConcurrentTasks, + }); + + taskWorker.start(); + + await dispatchANewTask(); + await dispatchANewTask(); + await dispatchANewTask(); + await dispatchANewTask(); + + expect(asyncTasksCount).toEqual(expectedConcurrentTasks); + }); +}); From 7150d819b3eef78374f1a22bf281befe3bddea89 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Wed, 26 Oct 2022 13:05:55 -0500 Subject: [PATCH 019/228] fixed yarn.lock Signed-off-by: Hao Luo --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 77dd94a965..ebb4f6c698 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3314,7 +3314,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-model@npm:^1.1.1, @backstage/catalog-model@npm:^1.1.2": +"@backstage/catalog-model@npm:^1.1.2": version: 1.1.2 resolution: "@backstage/catalog-model@npm:1.1.2" dependencies: @@ -3599,7 +3599,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-components@npm:^0.11.1, @backstage/core-components@npm:^0.11.2": +"@backstage/core-components@npm:^0.11.2": version: 0.11.2 resolution: "@backstage/core-components@npm:0.11.2" dependencies: @@ -3722,7 +3722,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-plugin-api@npm:^1.0.6, @backstage/core-plugin-api@npm:^1.0.7": +"@backstage/core-plugin-api@npm:^1.0.7": version: 1.0.7 resolution: "@backstage/core-plugin-api@npm:1.0.7" dependencies: @@ -5066,7 +5066,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-react@npm:^1.1.4, @backstage/plugin-catalog-react@npm:^1.2.0": +"@backstage/plugin-catalog-react@npm:^1.2.0": version: 1.2.0 resolution: "@backstage/plugin-catalog-react@npm:1.2.0" dependencies: From 09d0e5fc61db3152cc667256efda61dadc97a8f7 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Wed, 26 Oct 2022 14:02:32 -0500 Subject: [PATCH 020/228] fixed tests error Signed-off-by: Hao Luo --- .../scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts index bc09d8605e..8903f3b6b5 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts @@ -161,6 +161,8 @@ describe('Concurrent TaskWorker', () => { const logger = getVoidLogger(); it('should be able to run multiple tasks at once', async () => { + const broker = new StorageTaskBroker(storage, logger); + const dispatchANewTask = () => broker.dispatch({ spec: { @@ -174,7 +176,6 @@ describe('Concurrent TaskWorker', () => { }); const expectedConcurrentTasks = 3; - const broker = new StorageTaskBroker(storage, logger); const taskWorker = await TaskWorker.create({ logger, workingDirectory, From 7aec2d97e61f00ef08a441a8ffb2e08d733e4407 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 27 Oct 2022 16:57:51 -0500 Subject: [PATCH 021/228] Update TaskWorker.test.ts per maintainer suggestion Co-authored-by: Johan Haals Signed-off-by: Hao Luo --- .../scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts index 8903f3b6b5..cef93c9247 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts @@ -134,7 +134,7 @@ describe('Concurrent TaskWorker', () => { const integrations: ScmIntegrations = {} as ScmIntegrations; const actionRegistry: TemplateActionRegistry = {} as TemplateActionRegistry; - const workingDirectory = '/tmp/scaffolder'; + const workingDirectory = os.tmpdir(); let asyncTasksCount = 0; const workflowRunner: NunjucksWorkflowRunner = { From 5b00f413cd8558164383bb63dda331fce5edf804 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 27 Oct 2022 17:03:44 -0500 Subject: [PATCH 022/228] added os import Signed-off-by: Hao Luo --- .../scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts index cef93c9247..42415f4f11 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import os from 'os'; import { getVoidLogger, DatabaseManager } from '@backstage/backend-common'; import { ConfigReader } from '@backstage/config'; import { DatabaseTaskStore } from './DatabaseTaskStore'; From 052226bd65eac21a3add863de2c5e585717709d4 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Fri, 28 Oct 2022 17:27:21 -0500 Subject: [PATCH 023/228] deprecated taskWorkers option in RouterOption Signed-off-by: Hao Luo --- .changeset/little-chairs-dance.md | 7 +++---- plugins/scaffolder-backend/src/service/router.ts | 11 +++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.changeset/little-chairs-dance.md b/.changeset/little-chairs-dance.md index 07cbf52389..f99b3443cb 100644 --- a/.changeset/little-chairs-dance.md +++ b/.changeset/little-chairs-dance.md @@ -1,12 +1,11 @@ --- '@backstage/plugin-scaffolder-backend': minor --- +Deprecated the `taskWorkers` option in RouterOptions in favor of `concurrentTasksLimit` which sets the limit of concurrentTasks in a single TaskWorker -Added optional "concurrentTasksLimit" option to TaskWorker +TaskWorker can now run multiple (defaults to 10) tasks concurrently using the `concurrentTasksLimit` option available in both `RouterOptions` and `CreateWorkerOptions`. -TaskWorker can now run multiple (defaults to 10) tasks concurrently. - -To use the option, in `createRouter`: +To use the option to create a TaskWorker: ```diff const worker = await TaskWorker.create({ diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 9d4aa547f8..6ae54b6530 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -67,7 +67,16 @@ export interface RouterOptions { scheduler?: PluginTaskScheduler; actions?: TemplateAction[]; + /** + * @deprecated taskWorkers is deprecated in favor of concurrentTasksLimit option with a single TaskWorker + * @default 1 + */ taskWorkers?: number; + /** + * Sets the number of concurrent tasks that can be run at any given time on the TaskWorker + * @default 10 + */ + concurrentTasksLimit?: number; taskBroker?: TaskBroker; additionalTemplateFilters?: Record; additionalTemplateGlobals?: Record; @@ -160,6 +169,7 @@ export async function createRouter( catalogClient, actions, taskWorkers, + concurrentTasksLimit, scheduler, additionalTemplateFilters, additionalTemplateGlobals, @@ -211,6 +221,7 @@ export async function createRouter( workingDirectory, additionalTemplateFilters, additionalTemplateGlobals, + concurrentTasksLimit, }); workers.push(worker); } From e777427133404b6f15d0a8159a0b36eaf7204928 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Fri, 28 Oct 2022 17:36:29 -0500 Subject: [PATCH 024/228] fixed typo Signed-off-by: Hao Luo --- .changeset/little-chairs-dance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/little-chairs-dance.md b/.changeset/little-chairs-dance.md index f99b3443cb..fd0acc36a2 100644 --- a/.changeset/little-chairs-dance.md +++ b/.changeset/little-chairs-dance.md @@ -1,7 +1,7 @@ --- '@backstage/plugin-scaffolder-backend': minor --- -Deprecated the `taskWorkers` option in RouterOptions in favor of `concurrentTasksLimit` which sets the limit of concurrentTasks in a single TaskWorker +Deprecated the `taskWorkers` option in RouterOptions in favor of `concurrentTasksLimit` which sets the limit of concurrent tasks in a single TaskWorker TaskWorker can now run multiple (defaults to 10) tasks concurrently using the `concurrentTasksLimit` option available in both `RouterOptions` and `CreateWorkerOptions`. From 560232de3a7a34f8b952645ada34a664601b4ee7 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Fri, 28 Oct 2022 21:45:56 -0500 Subject: [PATCH 025/228] fixed linting errors Signed-off-by: Hao Luo --- .changeset/little-chairs-dance.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.changeset/little-chairs-dance.md b/.changeset/little-chairs-dance.md index fd0acc36a2..c08dd3838c 100644 --- a/.changeset/little-chairs-dance.md +++ b/.changeset/little-chairs-dance.md @@ -1,6 +1,7 @@ --- '@backstage/plugin-scaffolder-backend': minor --- + Deprecated the `taskWorkers` option in RouterOptions in favor of `concurrentTasksLimit` which sets the limit of concurrent tasks in a single TaskWorker TaskWorker can now run multiple (defaults to 10) tasks concurrently using the `concurrentTasksLimit` option available in both `RouterOptions` and `CreateWorkerOptions`. From 29ba69a4ab1f891d2fc79d861ede34a04c8d4396 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Fri, 28 Oct 2022 22:52:32 -0500 Subject: [PATCH 026/228] generated api-report Signed-off-by: Hao Luo --- plugins/scaffolder-backend/api-report.md | 17 +++++++++-------- .../scaffolder-backend/src/service/router.ts | 4 ++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 9510c69f09..6d49df8979 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -200,7 +200,7 @@ export function createGithubRepoCreateAction(options: { requireCodeOwnerReviews?: boolean | undefined; requiredStatusCheckContexts?: string[] | undefined; requireBranchesToBeUpToDate?: boolean | undefined; - repoVisibility?: 'internal' | 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | 'internal' | undefined; collaborators?: | ( | { @@ -281,7 +281,7 @@ export function createPublishBitbucketAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | undefined; sourcePath?: string | undefined; enableLFS?: boolean | undefined; token?: string | undefined; @@ -298,7 +298,7 @@ export function createPublishBitbucketCloudAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | undefined; sourcePath?: string | undefined; token?: string | undefined; }>; @@ -311,7 +311,7 @@ export function createPublishBitbucketServerAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | undefined; sourcePath?: string | undefined; enableLFS?: boolean | undefined; token?: string | undefined; @@ -369,7 +369,7 @@ export function createPublishGithubAction(options: { requireCodeOwnerReviews?: boolean | undefined; requiredStatusCheckContexts?: string[] | undefined; requireBranchesToBeUpToDate?: boolean | undefined; - repoVisibility?: 'internal' | 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | 'internal' | undefined; collaborators?: | ( | { @@ -415,7 +415,7 @@ export function createPublishGitlabAction(options: { }): TemplateAction<{ repoUrl: string; defaultBranch?: string | undefined; - repoVisibility?: 'internal' | 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | 'internal' | undefined; sourcePath?: string | undefined; token?: string | undefined; gitCommitMessage?: string | undefined; @@ -435,7 +435,7 @@ export const createPublishGitlabMergeRequestAction: (options: { sourcePath?: string | undefined; targetPath?: string | undefined; token?: string | undefined; - commitAction?: 'update' | 'create' | 'delete' | undefined; + commitAction?: 'create' | 'update' | 'delete' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; @@ -552,6 +552,7 @@ export interface RouterOptions { additionalTemplateGlobals?: Record; // (undocumented) catalogClient: CatalogApi; + concurrentTasksLimit?: number; // (undocumented) config: Config; // (undocumented) @@ -566,7 +567,7 @@ export interface RouterOptions { scheduler?: PluginTaskScheduler; // (undocumented) taskBroker?: TaskBroker; - // (undocumented) + // @deprecated (undocumented) taskWorkers?: number; } diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 6ae54b6530..dbd085bf4c 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -69,12 +69,12 @@ export interface RouterOptions { actions?: TemplateAction[]; /** * @deprecated taskWorkers is deprecated in favor of concurrentTasksLimit option with a single TaskWorker - * @default 1 + * @defaultValue 1 */ taskWorkers?: number; /** * Sets the number of concurrent tasks that can be run at any given time on the TaskWorker - * @default 10 + * @defaultValue 10 */ concurrentTasksLimit?: number; taskBroker?: TaskBroker; From 6ffa47bb0ac7527730211bcb124b73f58f77965e Mon Sep 17 00:00:00 2001 From: Gustaf Lundh Date: Thu, 27 Oct 2022 19:34:58 +0200 Subject: [PATCH 027/228] Catalog kind filter fixes & clean-up Various fixes: * CatalogDefaultPage cannot handle Capitalized kinds from the kind query parameter. This breaks ownership cards and both CatalogKindHeader and EntityKindPicker turns up empty. There may be other places where the catalog expects to handle capitalized Kinds. After all, the default Kinds are capitalized in the entities. * If a non existing kind is specified, CatalogKindHeader works but not the EntityKindPicker. Well, at least as long as the non-existing kind is not capitalized(!) * The CatalogKindHeader supports allowed kinds, but not the EntityKindFilter. So depending on Catalog-setup they will list different kinds. Refactoring: * Refactored out helper functions to a util library. This ensured that similar logic can be shared between the Kind pickers (and in turn their behaviour is similar). Tests: * Relevant tests added Signed-off-by: Gustaf Lundh --- .changeset/brave-bags-sniff.md | 5 + .changeset/neat-lies-know.md | 5 + plugins/catalog-react/api-report.md | 15 +++ .../EntityKindPicker.test.tsx | 57 ++++++++++ .../EntityKindPicker/EntityKindPicker.tsx | 106 +++++------------- plugins/catalog-react/src/index.ts | 2 + plugins/catalog-react/src/utils/index.ts | 1 + .../src/utils/kindFilterUtils.ts | 82 ++++++++++++++ .../CatalogKindHeader/CatalogKindHeader.tsx | 41 ++----- 9 files changed, 207 insertions(+), 107 deletions(-) create mode 100644 .changeset/brave-bags-sniff.md create mode 100644 .changeset/neat-lies-know.md create mode 100644 plugins/catalog-react/src/utils/kindFilterUtils.ts diff --git a/.changeset/brave-bags-sniff.md b/.changeset/brave-bags-sniff.md new file mode 100644 index 0000000000..2608ca7f1e --- /dev/null +++ b/.changeset/brave-bags-sniff.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog': minor +--- + +Fixes in kind selectors (now OwnershipCards work again) diff --git a/.changeset/neat-lies-know.md b/.changeset/neat-lies-know.md new file mode 100644 index 0000000000..cb355c638f --- /dev/null +++ b/.changeset/neat-lies-know.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-react': minor +--- + +Cleanup and small fixes for the kind selector diff --git a/plugins/catalog-react/api-report.md b/plugins/catalog-react/api-report.md index e8f0b0e6ee..ea67702c9b 100644 --- a/plugins/catalog-react/api-report.md +++ b/plugins/catalog-react/api-report.md @@ -175,6 +175,7 @@ export const EntityKindPicker: ( // @public export interface EntityKindPickerProps { + allowedKinds?: string[]; // (undocumented) hidden?: boolean; // (undocumented) @@ -431,6 +432,13 @@ export type FavoriteEntityProps = ComponentProps & { entity: Entity; }; +// @public +export function filterAndCapitalize( + allKinds: string[], + allowedKinds?: string[], + forcedKinds?: string[], +): Record; + // @public export function getEntityRelations( entity: Entity | undefined, @@ -503,6 +511,13 @@ export type UnregisterEntityDialogProps = { entity: Entity; }; +// @public +export function useAllKinds(): { + loading: boolean; + error?: Error; + allKinds: string[]; +}; + // @public export function useAsyncEntity< TEntity extends Entity = Entity, diff --git a/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.test.tsx b/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.test.tsx index 65ad3f227a..a62669caf9 100644 --- a/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.test.tsx +++ b/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.test.tsx @@ -147,6 +147,43 @@ describe('', () => { }); }); + it('renders unknown kinds provided in query parameters', async () => { + const rendered = await renderWithEffects( + + + + + , + ); + + expect(rendered.getByText('Frob')).toBeInTheDocument(); + }); + + it('limits kinds when allowedKinds is set', async () => { + const rendered = await renderWithEffects( + + + + + , + ); + + const input = rendered.getByTestId('select'); + fireEvent.click(input); + + expect( + rendered.getByRole('option', { name: 'Component' }), + ).toBeInTheDocument(); + expect( + rendered.getByRole('option', { name: 'Domain' }), + ).toBeInTheDocument(); + expect( + rendered.queryByRole('option', { name: 'Template' }), + ).not.toBeInTheDocument(); + }); + it('responds to external queryParameters changes', async () => { const updateFilters = jest.fn(); const rendered = await renderWithEffects( @@ -180,4 +217,24 @@ describe('', () => { kind: new EntityKindFilter('domain'), }); }); + + it('renders kind from the query parameter even when not in allowedKinds', async () => { + const rendered = await renderWithEffects( + + + + + , + ); + + expect(rendered.getByText('Frob')).toBeInTheDocument(); + + const input = rendered.getByTestId('select'); + fireEvent.click(input); + expect( + rendered.getByRole('option', { name: 'Domain' }), + ).toBeInTheDocument(); + }); }); diff --git a/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.tsx b/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.tsx index c626a68d10..89313790f5 100644 --- a/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.tsx +++ b/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.tsx @@ -17,64 +17,15 @@ import { Select } from '@backstage/core-components'; import { alertApiRef, useApi } from '@backstage/core-plugin-api'; import { Box } from '@material-ui/core'; -import capitalize from 'lodash/capitalize'; -import sortBy from 'lodash/sortBy'; -import React, { useEffect, useMemo, useRef, useState } from 'react'; -import useAsync from 'react-use/lib/useAsync'; -import { catalogApiRef } from '../../api'; +import React, { useEffect, useMemo, useState } from 'react'; import { EntityKindFilter } from '../../filters'; import { useEntityList } from '../../hooks'; - -function useAvailableKinds() { - const catalogApi = useApi(catalogApiRef); - - const [availableKinds, setAvailableKinds] = useState([]); - - const { - error, - loading, - value: facets, - } = useAsync(async () => { - const facet = 'kind'; - const items = await catalogApi - .getEntityFacets({ - facets: [facet], - }) - .then(response => response.facets[facet] || []); - - return items; - }, [catalogApi]); - - const facetsRef = useRef(facets); - useEffect(() => { - const oldFacets = facetsRef.current; - facetsRef.current = facets; - // Delay processing hook until facets load updates have settled to generate list of kinds; - // This prevents resetting the kind filter due to saved kind value from query params not matching the - // empty set of kind values while values are still being loaded; also only run this hook on changes - // to facets - if (loading || oldFacets === facets || !facets) { - return; - } - - const newKinds = [ - ...new Set( - sortBy(facets, f => f.value).map(f => - f.value.toLocaleLowerCase('en-US'), - ), - ), - ]; - - setAvailableKinds(newKinds); - }, [loading, facets, setAvailableKinds]); - - return { loading, error, availableKinds }; -} +import { filterAndCapitalize, useAllKinds } from '../../utils/kindFilterUtils'; function useEntityKindFilter(opts: { initialFilter: string }): { loading: boolean; error?: Error; - availableKinds: string[]; + allKinds: string[]; selectedKind: string; setSelectedKind: (kind: string) => void; } { @@ -84,23 +35,15 @@ function useEntityKindFilter(opts: { initialFilter: string }): { updateFilters, } = useEntityList(); - const flattenedQueryKind = useMemo( + const queryParamKind = useMemo( () => [kindParameter].flat()[0], [kindParameter], ); const [selectedKind, setSelectedKind] = useState( - flattenedQueryKind ?? filters.kind?.value ?? opts.initialFilter, + queryParamKind ?? filters.kind?.value ?? opts.initialFilter, ); - // Set selected kinds on query parameter updates; this happens at initial page load and from - // external updates to the page location. - useEffect(() => { - if (flattenedQueryKind) { - setSelectedKind(flattenedQueryKind); - } - }, [flattenedQueryKind]); - // Set selected kind from filters; this happens when the kind filter is // updated from another component useEffect(() => { @@ -109,18 +52,26 @@ function useEntityKindFilter(opts: { initialFilter: string }): { } }, [filters.kind]); - const { availableKinds, loading, error } = useAvailableKinds(); - useEffect(() => { updateFilters({ kind: selectedKind ? new EntityKindFilter(selectedKind) : undefined, }); }, [selectedKind, updateFilters]); + // Set selected kinds on query parameter updates; this happens at initial page load and from + // external updates to the page location. + useEffect(() => { + if (queryParamKind) { + setSelectedKind(queryParamKind); + } + }, [queryParamKind]); + + const { allKinds, loading, error } = useAllKinds(); + return { loading, error, - availableKinds, + allKinds: allKinds ?? [], selectedKind, setSelectedKind, }; @@ -132,17 +83,22 @@ function useEntityKindFilter(opts: { initialFilter: string }): { * @public */ export interface EntityKindPickerProps { + /** + * Entity kinds to show in the dropdown; by default all kinds are fetched from the catalog and + * displayed. + */ + allowedKinds?: string[]; initialFilter?: string; hidden?: boolean; } /** @public */ export const EntityKindPicker = (props: EntityKindPickerProps) => { - const { hidden, initialFilter = 'component' } = props; + const { allowedKinds, hidden, initialFilter = 'component' } = props; const alertApi = useApi(alertApiRef); - const { error, availableKinds, selectedKind, setSelectedKind } = + const { error, allKinds, selectedKind, setSelectedKind } = useEntityKindFilter({ initialFilter: initialFilter, }); @@ -156,21 +112,21 @@ export const EntityKindPicker = (props: EntityKindPickerProps) => { } }, [error, alertApi]); - if (availableKinds?.length === 0 || error) return null; + if (error) return null; - const items = [ - ...availableKinds.map((kind: string) => ({ - value: kind, - label: capitalize(kind), - })), - ]; + const options = filterAndCapitalize(allKinds, allowedKinds, [selectedKind]); + + const items = Object.keys(options).map(key => ({ + value: key, + label: options[key], + })); return hidden ? null : ( } - value={selectedKind} + input={} + value={selectedKind.toLocaleLowerCase('en-US')} onChange={e => setSelectedKind(e.target.value as string)} classes={classes} > From 061f19dff1a3d5be8dfef1519aa77760eea69601 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Wed, 9 Nov 2022 22:50:00 -0600 Subject: [PATCH 028/228] generated api-report without only Signed-off-by: Hao Luo --- plugins/scaffolder-backend/api-report.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 6d49df8979..9a06f24ab2 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -200,7 +200,7 @@ export function createGithubRepoCreateAction(options: { requireCodeOwnerReviews?: boolean | undefined; requiredStatusCheckContexts?: string[] | undefined; requireBranchesToBeUpToDate?: boolean | undefined; - repoVisibility?: 'public' | 'private' | 'internal' | undefined; + repoVisibility?: 'internal' | 'private' | 'public' | undefined; collaborators?: | ( | { @@ -281,7 +281,7 @@ export function createPublishBitbucketAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'public' | 'private' | undefined; + repoVisibility?: 'private' | 'public' | undefined; sourcePath?: string | undefined; enableLFS?: boolean | undefined; token?: string | undefined; @@ -298,7 +298,7 @@ export function createPublishBitbucketCloudAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'public' | 'private' | undefined; + repoVisibility?: 'private' | 'public' | undefined; sourcePath?: string | undefined; token?: string | undefined; }>; @@ -311,7 +311,7 @@ export function createPublishBitbucketServerAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'public' | 'private' | undefined; + repoVisibility?: 'private' | 'public' | undefined; sourcePath?: string | undefined; enableLFS?: boolean | undefined; token?: string | undefined; @@ -369,7 +369,7 @@ export function createPublishGithubAction(options: { requireCodeOwnerReviews?: boolean | undefined; requiredStatusCheckContexts?: string[] | undefined; requireBranchesToBeUpToDate?: boolean | undefined; - repoVisibility?: 'public' | 'private' | 'internal' | undefined; + repoVisibility?: 'internal' | 'private' | 'public' | undefined; collaborators?: | ( | { @@ -415,7 +415,7 @@ export function createPublishGitlabAction(options: { }): TemplateAction<{ repoUrl: string; defaultBranch?: string | undefined; - repoVisibility?: 'public' | 'private' | 'internal' | undefined; + repoVisibility?: 'internal' | 'private' | 'public' | undefined; sourcePath?: string | undefined; token?: string | undefined; gitCommitMessage?: string | undefined; @@ -435,7 +435,7 @@ export const createPublishGitlabMergeRequestAction: (options: { sourcePath?: string | undefined; targetPath?: string | undefined; token?: string | undefined; - commitAction?: 'create' | 'update' | 'delete' | undefined; + commitAction?: 'update' | 'delete' | 'create' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; From 303c68d1f5fef8689c16fd26b8bc4edd16a91b2c Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 10 Nov 2022 02:31:36 -0600 Subject: [PATCH 029/228] generated api-report all Signed-off-by: Hao Luo --- plugins/scaffolder-backend/api-report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 9a06f24ab2..771d871646 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -435,7 +435,7 @@ export const createPublishGitlabMergeRequestAction: (options: { sourcePath?: string | undefined; targetPath?: string | undefined; token?: string | undefined; - commitAction?: 'update' | 'delete' | 'create' | undefined; + commitAction?: 'update' | 'create' | 'delete' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; From 2ea0b2d634bcc17b7a14fdca1d8121be24b621d4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Nov 2022 15:32:25 +0100 Subject: [PATCH 030/228] scaffolder-backend: add failing test for task worker queue Signed-off-by: Patrik Oldsberg --- .../src/scaffolder/tasks/TaskWorker.test.ts | 62 ++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts index 42415f4f11..d39671cb67 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts @@ -19,10 +19,11 @@ import { getVoidLogger, DatabaseManager } from '@backstage/backend-common'; import { ConfigReader } from '@backstage/config'; import { DatabaseTaskStore } from './DatabaseTaskStore'; import { StorageTaskBroker } from './StorageTaskBroker'; -import { TaskWorker } from './TaskWorker'; +import { TaskWorker, TaskWorkerOptions } from './TaskWorker'; import { ScmIntegrations } from '@backstage/integration'; import { TemplateActionRegistry } from '../actions'; import { NunjucksWorkflowRunner } from './NunjucksWorkflowRunner'; +import { TaskBroker, TaskContext, WorkflowRunner } from './types'; jest.mock('./NunjucksWorkflowRunner'); const MockedNunjucksWorkflowRunner = @@ -196,3 +197,62 @@ describe('Concurrent TaskWorker', () => { expect(asyncTasksCount).toEqual(expectedConcurrentTasks); }); }); + +describe('TaskWorker internals', () => { + const TaskWorkerConstructor = TaskWorker as unknown as { + new (options: TaskWorkerOptions): TaskWorker; + }; + + it('should not pick up tasks before it is ready to execute more work', async () => { + const inflightTasks = new Array<{ + task: TaskContext; + resolve: () => void; + }>(); + const workflowRunner: WorkflowRunner = { + async execute(task) { + await new Promise(resolve => { + inflightTasks.push({ task, resolve }); + }); + return { + output: {}, + }; + }, + }; + + let claimedTaskCount = 0; + const taskWorker = new TaskWorkerConstructor({ + runners: { workflowRunner }, + taskBroker: { + async claim() { + claimedTaskCount++; + return { + spec: { + apiVersion: 'scaffolder.backstage.io/v1beta3', + }, + createdBy: `test-${claimedTaskCount}`, + async complete(_result, _metadata) {}, + } as TaskContext; + }, + } as TaskBroker, + concurrentTasksLimit: 2, + }); + + expect(claimedTaskCount).toBe(0); + taskWorker.start(); + + // This will wait for all higher priority promise ticks to complete + await new Promise(resolve => setTimeout(resolve)); + + // Once we start the worker it should pick up 2 tasks, since that's our limit + expect(claimedTaskCount).toBe(2); + expect(inflightTasks.length).toBe(2); + + // This completes the first task, making space for one more + inflightTasks.shift()?.resolve(); + await new Promise(resolve => setTimeout(resolve)); + + // We now expect one more task to have been claimed, and two tasks in the queue again + expect(claimedTaskCount).toBe(3); + expect(inflightTasks.length).toBe(2); + }); +}); From 7ddab188a0fdd7db1eec4cd01e3030962dcd3d48 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 10 Nov 2022 07:48:29 -0600 Subject: [PATCH 031/228] wait for pending to be available to claim task Signed-off-by: Hao Luo --- .../src/scaffolder/tasks/TaskWorker.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts index 9af818c421..e03cee846a 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts @@ -110,13 +110,26 @@ export class TaskWorker { start() { (async () => { for (;;) { - await this.taskQueue.onEmpty(); + await this.onReadyToClaimTask(); const task = await this.options.taskBroker.claim(); this.taskQueue.add(() => this.runOneTask(task)); } })(); } + onReadyToClaimTask(): Promise { + if (this.taskQueue.pending < this.options.concurrentTasksLimit) { + return Promise.resolve(); + } + return new Promise(resolve => { + // "next" event emits when a task completes + // https://github.com/sindresorhus/p-queue#next + this.taskQueue.on('next', () => { + resolve(); + }); + }); + } + async runOneTask(task: TaskContext) { try { if (task.spec.apiVersion !== 'scaffolder.backstage.io/v1beta3') { From 5f3f0f000285ecdd7535528152df10ad96850bfd Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 10 Nov 2022 09:01:39 -0600 Subject: [PATCH 032/228] added protected to onReadyToClaimTask method. regenerated api-report Signed-off-by: Hao Luo --- plugins/scaffolder-backend/api-report.md | 2 ++ plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 771d871646..512c520128 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -799,6 +799,8 @@ export class TaskWorker { // (undocumented) static create(options: CreateWorkerOptions): Promise; // (undocumented) + protected onReadyToClaimTask(): Promise; + // (undocumented) runOneTask(task: TaskContext): Promise; // (undocumented) start(): void; diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts index e03cee846a..005276038b 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts @@ -117,7 +117,7 @@ export class TaskWorker { })(); } - onReadyToClaimTask(): Promise { + protected onReadyToClaimTask(): Promise { if (this.taskQueue.pending < this.options.concurrentTasksLimit) { return Promise.resolve(); } From 61d4efe9787afbe9beb0b53f0808dad45a0f6e18 Mon Sep 17 00:00:00 2001 From: Damon Kaswell Date: Mon, 28 Nov 2022 07:50:31 -0800 Subject: [PATCH 033/228] Update changeset Signed-off-by: Damon Kaswell --- .changeset/sharp-shoes-bathe.md | 5 +++ .../IncrementalIngestionDatabaseManager.ts | 30 ++++++++++++----- .../src/engine/IncrementalIngestionEngine.ts | 33 ++++++++++++++++--- 3 files changed, 54 insertions(+), 14 deletions(-) create mode 100644 .changeset/sharp-shoes-bathe.md diff --git a/.changeset/sharp-shoes-bathe.md b/.changeset/sharp-shoes-bathe.md new file mode 100644 index 0000000000..7c44559e2c --- /dev/null +++ b/.changeset/sharp-shoes-bathe.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-incremental-ingestion': minor +--- + +Make incremental providers more resilient to failures diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts b/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts index 3c91b24e2c..c6d5fe795b 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts @@ -287,6 +287,15 @@ export class IncrementalIngestionDatabaseManager { */ async computeRemoved(provider: string, ingestionId: string) { return await this.client.transaction(async tx => { + const rows = await tx('final_entities') + .count({ total: '*' }) + .join('search', 'search.entity_id', 'final_entities.entity_id') + .where( + 'search.key', + `metadata.annotations.${INCREMENTAL_ENTITY_PROVIDER_ANNOTATION}`, + ) + .andWhere('search.value', provider); + const total = rows.reduce((acc, cur) => acc + (cur.total as number), 0); const removed: { entity: string; ref: string }[] = await tx( 'final_entities', ) @@ -302,23 +311,26 @@ export class IncrementalIngestionDatabaseManager { .join('search', 'search.entity_id', 'final_entities.entity_id') .whereNotIn( 'entity_ref', - tx('ingestion_marks') + tx('ingestion.ingestion_marks') .join( - 'ingestion_mark_entities', - 'ingestion_marks.id', - 'ingestion_mark_entities.ingestion_mark_id', + 'ingestion.ingestion_mark_entities', + 'ingestion.ingestion_marks.id', + 'ingestion.ingestion_mark_entities.ingestion_mark_id', ) - .select('ingestion_mark_entities.ref') - .where('ingestion_marks.ingestion_id', ingestionId), + .select('ingestion.ingestion_mark_entities.ref') + .where('ingestion.ingestion_marks.ingestion_id', ingestionId), ) .andWhere( 'search.key', `metadata.annotations.${INCREMENTAL_ENTITY_PROVIDER_ANNOTATION}`, ) .andWhere('search.value', provider); - return removed.map(entity => { - return { entity: JSON.parse(entity.entity) }; - }); + return { + total, + removed: removed.map(entity => { + return { entity: JSON.parse(entity.entity) }; + }), + }; }); } diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts b/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts index a742f63045..36b683fa9a 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts @@ -27,6 +27,8 @@ import { Duration, DurationObjectUnits } from 'luxon'; import { v4 } from 'uuid'; import { stringifyError } from '@backstage/errors'; +const REMOVAL_THRESHOLD = 5; + export class IncrementalIngestionEngine implements IterationEngine { private readonly restLength: Duration; private readonly backoff: DurationObjectUnits[]; @@ -279,12 +281,33 @@ export class IncrementalIngestionEngine implements IterationEngine { const removed: DeferredEntity[] = []; if (done) { - removed.push( - ...(await this.manager.computeRemoved( - this.options.provider.getProviderName(), - id, - )), + this.options.logger.info( + `incremental-engine: Ingestion '${id}': Final page reached, calculating removed entities`, ); + const result = await this.manager.computeRemoved( + this.options.provider.getProviderName(), + id, + ); + const total = result.total + added.length; + const percentRemoved = + total > 0 ? (result.removed.length / total) * 100 : 0; + if (percentRemoved <= REMOVAL_THRESHOLD) { + this.options.logger.info( + `incremental-engine: Ingestion '${id}': Removing ${result.removed.length} entities that have no matching assets`, + ); + removed.push(...result.removed); + } else { + const notice = `Attempted to remove ${percentRemoved}% of ${total} matching entities!`; + this.options.logger.error( + `incremental-engine: Ingestion '${id}': ${notice}`, + ); + await this.manager.updateIngestionRecordById({ + ingestionId: id, + update: { + last_error: `REMOVAL_THRESHOLD exceeded on ingestion mark ${markId}: ${notice}`, + }, + }); + } } await this.options.connection.applyMutation({ From 77c207ccba33b5d80f3d06e5d5f513ddaa62f4dc Mon Sep 17 00:00:00 2001 From: Damon Kaswell Date: Mon, 28 Nov 2022 08:03:35 -0800 Subject: [PATCH 034/228] Remove reference to unused schema Signed-off-by: Damon Kaswell --- .../IncrementalIngestionDatabaseManager.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts b/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts index c6d5fe795b..0fd560544d 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts @@ -311,14 +311,14 @@ export class IncrementalIngestionDatabaseManager { .join('search', 'search.entity_id', 'final_entities.entity_id') .whereNotIn( 'entity_ref', - tx('ingestion.ingestion_marks') + tx('ingestion_marks') .join( - 'ingestion.ingestion_mark_entities', - 'ingestion.ingestion_marks.id', - 'ingestion.ingestion_mark_entities.ingestion_mark_id', + 'ingestion_mark_entities', + 'ingestion_marks.id', + 'ingestion_mark_entities.ingestion_mark_id', ) - .select('ingestion.ingestion_mark_entities.ref') - .where('ingestion.ingestion_marks.ingestion_id', ingestionId), + .select('ingestion_mark_entities.ref') + .where('ingestion_marks.ingestion_id', ingestionId), ) .andWhere( 'search.key', @@ -463,7 +463,7 @@ export class IncrementalIngestionDatabaseManager { } /** - * Starts the cancel process for the current ingestion. + * Starts the cancel process for the current * @param ingestionId - string * @param message - string (optional) */ @@ -478,7 +478,7 @@ export class IncrementalIngestionDatabaseManager { } /** - * Completes the cancel process and triggers a new ingestion. + * Completes the cancel process and triggers a new * @param ingestionId - string */ async setProviderCanceled(ingestionId: string) { From 6eefcb878076ef2324b371c4cf94cd6f369704e1 Mon Sep 17 00:00:00 2001 From: Damon Kaswell Date: Mon, 28 Nov 2022 08:05:22 -0800 Subject: [PATCH 035/228] Typos Signed-off-by: Damon Kaswell --- .../src/database/IncrementalIngestionDatabaseManager.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts b/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts index 0fd560544d..03a749d70c 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts @@ -463,7 +463,7 @@ export class IncrementalIngestionDatabaseManager { } /** - * Starts the cancel process for the current + * Starts the cancel process for the current ingestion. * @param ingestionId - string * @param message - string (optional) */ @@ -478,7 +478,7 @@ export class IncrementalIngestionDatabaseManager { } /** - * Completes the cancel process and triggers a new + * Completes the cancel process and triggers a new ingestion. * @param ingestionId - string */ async setProviderCanceled(ingestionId: string) { From f506a945753e5b2a8045bf41a7c5ad602f4e00cb Mon Sep 17 00:00:00 2001 From: Damon Kaswell Date: Mon, 28 Nov 2022 12:25:37 -0800 Subject: [PATCH 036/228] Use last ingestion cycle to generate total Signed-off-by: Damon Kaswell --- .../IncrementalIngestionDatabaseManager.ts | 45 +++++++++++++++---- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts b/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts index 03a749d70c..fd99f1207d 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/database/IncrementalIngestionDatabaseManager.ts @@ -113,6 +113,25 @@ export class IncrementalIngestionDatabaseManager { }); } + /** + * Finds the last ingestion record for the named provider. + * @param provider - string + * @returns IngestionRecord | undefined + */ + async getPreviousIngestionRecord(provider: string) { + return await this.client.transaction(async tx => { + const record = await tx('ingestions') + .where('provider_name', provider) + .andWhereNot('completion_ticket', 'open') + .first(); + if (!record) { + // This is the first time this entity provider has run. Return the current record. + return await this.getCurrentIngestionRecord(provider); + } + return record; + }); + } + /** * Removes all entries from `ingestion_marks_entities`, `ingestion_marks`, and `ingestions` * for prior ingestions that completed (i.e., have a `completion_ticket` value other than 'open'). @@ -286,16 +305,24 @@ export class IncrementalIngestionDatabaseManager { * @returns All entities to remove for this burst. */ async computeRemoved(provider: string, ingestionId: string) { + const previousIngestion = (await this.getPreviousIngestionRecord( + provider, + )) as IngestionRecord; return await this.client.transaction(async tx => { - const rows = await tx('final_entities') - .count({ total: '*' }) - .join('search', 'search.entity_id', 'final_entities.entity_id') - .where( - 'search.key', - `metadata.annotations.${INCREMENTAL_ENTITY_PROVIDER_ANNOTATION}`, - ) - .andWhere('search.value', provider); - const total = rows.reduce((acc, cur) => acc + (cur.total as number), 0); + let total = 0; + if (previousIngestion.id !== ingestionId) { + const rows = await tx('ingestion_mark_entities') + .count({ total: '*' }) + .join( + 'ingestion_marks', + 'ingestion_marks.id', + 'ingestion_mark_entities.ingestion_mark_id', + ) + .join('ingestions', 'ingestions.id', 'ingestion_marks.ingestion_id') + .where('ingestions.id', previousIngestion.id); + + total = rows.reduce((acc, cur) => acc + (cur.total as number), 0); + } const removed: { entity: string; ref: string }[] = await tx( 'final_entities', ) From 8ba66bd0ac044759e1ca70ba4566cfbe1af9897b Mon Sep 17 00:00:00 2001 From: Gustaf Lundh Date: Sun, 20 Nov 2022 22:53:31 +0100 Subject: [PATCH 037/228] Fixed review comments * Now we don't react on external changes to the query kindParameter * Casing is always correct (APIs instead of Apis etc) Signed-off-by: Gustaf Lundh --- .changeset/brave-bags-sniff.md | 1 + .changeset/neat-lies-know.md | 2 +- plugins/catalog-react/api-report.md | 6 ++ .../EntityKindPicker.test.tsx | 62 ++++--------------- .../EntityKindPicker/EntityKindPicker.tsx | 12 +--- plugins/catalog-react/src/index.ts | 2 +- plugins/catalog-react/src/utils/index.ts | 2 +- .../src/utils/kindFilterUtils.ts | 43 +++++++------ .../CatalogKindHeader.test.tsx | 38 +----------- .../CatalogKindHeader/CatalogKindHeader.tsx | 12 +--- 10 files changed, 51 insertions(+), 129 deletions(-) diff --git a/.changeset/brave-bags-sniff.md b/.changeset/brave-bags-sniff.md index 2608ca7f1e..3fa542a4e3 100644 --- a/.changeset/brave-bags-sniff.md +++ b/.changeset/brave-bags-sniff.md @@ -3,3 +3,4 @@ --- Fixes in kind selectors (now OwnershipCards work again) +EntityKindPicker now accepts an optional allowedKinds prop, just like CatalogKindHeader. diff --git a/.changeset/neat-lies-know.md b/.changeset/neat-lies-know.md index cb355c638f..01fc002668 100644 --- a/.changeset/neat-lies-know.md +++ b/.changeset/neat-lies-know.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-catalog-react': minor +'@backstage/plugin-catalog-react': patch --- Cleanup and small fixes for the kind selector diff --git a/plugins/catalog-react/api-report.md b/plugins/catalog-react/api-report.md index ea67702c9b..91c57c3498 100644 --- a/plugins/catalog-react/api-report.md +++ b/plugins/catalog-react/api-report.md @@ -432,6 +432,9 @@ export type FavoriteEntityProps = ComponentProps & { entity: Entity; }; +// Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration +// Warning: (ae-missing-release-tag) "filterAndCapitalize" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// // @public export function filterAndCapitalize( allKinds: string[], @@ -511,6 +514,9 @@ export type UnregisterEntityDialogProps = { entity: Entity; }; +// Warning: (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration +// Warning: (ae-missing-release-tag) "useAllKinds" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// // @public export function useAllKinds(): { loading: boolean; diff --git a/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.test.tsx b/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.test.tsx index 784580b636..04d8df3d16 100644 --- a/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.test.tsx +++ b/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.test.tsx @@ -148,21 +148,21 @@ describe('', () => { }); it('renders unknown kinds provided in query parameters', async () => { - const rendered = await renderWithEffects( + await renderWithEffects( , ); - expect(rendered.getByText('Frob')).toBeInTheDocument(); + expect(screen.getByText('FROb')).toBeInTheDocument(); }); it('limits kinds when allowedKinds is set', async () => { - const rendered = await renderWithEffects( + await renderWithEffects( @@ -170,56 +170,20 @@ describe('', () => { , ); - const input = rendered.getByTestId('select'); + const input = screen.getByTestId('select'); fireEvent.click(input); expect( - rendered.getByRole('option', { name: 'Component' }), + screen.getByRole('option', { name: 'Component' }), ).toBeInTheDocument(); + expect(screen.getByRole('option', { name: 'Domain' })).toBeInTheDocument(); expect( - rendered.getByRole('option', { name: 'Domain' }), - ).toBeInTheDocument(); - expect( - rendered.queryByRole('option', { name: 'Template' }), + screen.queryByRole('option', { name: 'Template' }), ).not.toBeInTheDocument(); }); - it('responds to external queryParameters changes', async () => { - const updateFilters = jest.fn(); - const rendered = await renderWithEffects( - - - - - , - ); - expect(updateFilters).toHaveBeenLastCalledWith({ - kind: new EntityKindFilter('component'), - }); - rendered.rerender( - - - - - , - ); - expect(updateFilters).toHaveBeenLastCalledWith({ - kind: new EntityKindFilter('domain'), - }); - }); - it('renders kind from the query parameter even when not in allowedKinds', async () => { - const rendered = await renderWithEffects( + await renderWithEffects( ', () => { , ); - expect(rendered.getByText('Frob')).toBeInTheDocument(); + expect(screen.getByText('Frob')).toBeInTheDocument(); - const input = rendered.getByTestId('select'); + const input = screen.getByTestId('select'); fireEvent.click(input); - expect( - rendered.getByRole('option', { name: 'Domain' }), - ).toBeInTheDocument(); + expect(screen.getByRole('option', { name: 'Domain' })).toBeInTheDocument(); }); }); diff --git a/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.tsx b/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.tsx index 89313790f5..b0d1565cfb 100644 --- a/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.tsx +++ b/plugins/catalog-react/src/components/EntityKindPicker/EntityKindPicker.tsx @@ -20,7 +20,7 @@ import { Box } from '@material-ui/core'; import React, { useEffect, useMemo, useState } from 'react'; import { EntityKindFilter } from '../../filters'; import { useEntityList } from '../../hooks'; -import { filterAndCapitalize, useAllKinds } from '../../utils/kindFilterUtils'; +import { filterKinds, useAllKinds } from '../../utils/kindFilterUtils'; function useEntityKindFilter(opts: { initialFilter: string }): { loading: boolean; @@ -58,14 +58,6 @@ function useEntityKindFilter(opts: { initialFilter: string }): { }); }, [selectedKind, updateFilters]); - // Set selected kinds on query parameter updates; this happens at initial page load and from - // external updates to the page location. - useEffect(() => { - if (queryParamKind) { - setSelectedKind(queryParamKind); - } - }, [queryParamKind]); - const { allKinds, loading, error } = useAllKinds(); return { @@ -114,7 +106,7 @@ export const EntityKindPicker = (props: EntityKindPickerProps) => { if (error) return null; - const options = filterAndCapitalize(allKinds, allowedKinds, [selectedKind]); + const options = filterKinds(allKinds, allowedKinds, selectedKind); const items = Object.keys(options).map(key => ({ value: key, diff --git a/plugins/catalog-react/src/index.ts b/plugins/catalog-react/src/index.ts index 783b9c1959..de8b32282a 100644 --- a/plugins/catalog-react/src/index.ts +++ b/plugins/catalog-react/src/index.ts @@ -36,6 +36,6 @@ export { getEntitySourceLocation, isOwnerOf, useAllKinds, - filterAndCapitalize, + filterKinds, } from './utils'; export type { EntitySourceLocation } from './utils'; diff --git a/plugins/catalog-react/src/utils/index.ts b/plugins/catalog-react/src/utils/index.ts index 197eff3a55..8262d1cc81 100644 --- a/plugins/catalog-react/src/utils/index.ts +++ b/plugins/catalog-react/src/utils/index.ts @@ -18,4 +18,4 @@ export { getEntityRelations } from './getEntityRelations'; export { getEntitySourceLocation } from './getEntitySourceLocation'; export type { EntitySourceLocation } from './getEntitySourceLocation'; export { isOwnerOf } from './isOwnerOf'; -export { useAllKinds, filterAndCapitalize } from './kindFilterUtils'; +export { useAllKinds, filterKinds } from './kindFilterUtils'; diff --git a/plugins/catalog-react/src/utils/kindFilterUtils.ts b/plugins/catalog-react/src/utils/kindFilterUtils.ts index 939c7296dd..a0441db33f 100644 --- a/plugins/catalog-react/src/utils/kindFilterUtils.ts +++ b/plugins/catalog-react/src/utils/kindFilterUtils.ts @@ -15,14 +15,12 @@ */ import { useApi } from '@backstage/core-plugin-api'; -import { capitalize } from '@material-ui/core'; import useAsync from 'react-use/lib/useAsync'; import { catalogApiRef } from '../api'; /** * Fetch and return all availible kinds. - * - * @public + * @internal */ export function useAllKinds(): { loading: boolean; @@ -48,35 +46,40 @@ export function useAllKinds(): { /** * Filter and capitalize accessible kinds. * - * @public + * @internal */ -export function filterAndCapitalize( +export function filterKinds( allKinds: string[], allowedKinds?: string[], - forcedKinds?: string[], + forcedKinds?: string, ): Record { // Before allKinds is loaded, or when a kind is entered manually in the URL, selectedKind may not // be present in allKinds. It should still be shown in the dropdown, but may not have the nice // enforced casing from the catalog-backend. This makes a key/value record for the Select options, // including selectedKind if it's unknown - but allows the selectedKind to get clobbered by the // more proper catalog kind if it exists. - const availableKinds = allKinds - .concat(forcedKinds ?? []) - .filter(k => - allowedKinds - ? allowedKinds.some( - a => a.toLocaleLowerCase('en-US') === k.toLocaleLowerCase('en-US'), - ) || - forcedKinds?.some( - f => f.toLocaleLowerCase('en-US') === k.toLocaleLowerCase('en-US'), - ) - : true, + let availableKinds = allKinds; + if (allowedKinds) { + availableKinds = availableKinds.filter(k => + allowedKinds.some( + a => a.toLocaleLowerCase('en-US') === k.toLocaleLowerCase('en-US'), + ), ); + } + if ( + forcedKinds && + !allKinds.some( + a => + a.toLocaleLowerCase('en-US') === forcedKinds.toLocaleLowerCase('en-US'), + ) + ) { + availableKinds = availableKinds.concat([forcedKinds]); + } - const capitalizedKinds = availableKinds.sort().reduce((acc, kind) => { - acc[kind.toLocaleLowerCase('en-US')] = capitalize(kind); + const kindsMap = availableKinds.sort().reduce((acc, kind) => { + acc[kind.toLocaleLowerCase('en-US')] = kind; return acc; }, {} as Record); - return capitalizedKinds; + return kindsMap; } diff --git a/plugins/catalog/src/components/CatalogKindHeader/CatalogKindHeader.test.tsx b/plugins/catalog/src/components/CatalogKindHeader/CatalogKindHeader.test.tsx index 9f68252ca7..acff9e3cda 100644 --- a/plugins/catalog/src/components/CatalogKindHeader/CatalogKindHeader.test.tsx +++ b/plugins/catalog/src/components/CatalogKindHeader/CatalogKindHeader.test.tsx @@ -105,14 +105,14 @@ describe('', () => { await renderWithEffects( , ); - expect(screen.getByText('Frobs')).toBeInTheDocument(); + expect(screen.getByText('FRObs')).toBeInTheDocument(); }); it('updates the kind filter', async () => { @@ -136,40 +136,6 @@ describe('', () => { }); }); - it('responds to external queryParameters changes', async () => { - const updateFilters = jest.fn(); - const rendered = await renderWithEffects( - - - - - , - ); - expect(updateFilters).toHaveBeenLastCalledWith({ - kind: new EntityKindFilter('components'), - }); - rendered.rerender( - - - - - , - ); - expect(updateFilters).toHaveBeenLastCalledWith({ - kind: new EntityKindFilter('template'), - }); - }); - it('limits kinds when allowedKinds is set', async () => { await renderWithEffects( diff --git a/plugins/catalog/src/components/CatalogKindHeader/CatalogKindHeader.tsx b/plugins/catalog/src/components/CatalogKindHeader/CatalogKindHeader.tsx index 7de842abe6..5a69f89106 100644 --- a/plugins/catalog/src/components/CatalogKindHeader/CatalogKindHeader.tsx +++ b/plugins/catalog/src/components/CatalogKindHeader/CatalogKindHeader.tsx @@ -25,7 +25,7 @@ import { } from '@material-ui/core'; import { EntityKindFilter, - filterAndCapitalize, + filterKinds, useAllKinds, useEntityList, } from '@backstage/plugin-catalog-react'; @@ -90,15 +90,7 @@ export function CatalogKindHeader(props: CatalogKindHeaderProps) { }); }, [selectedKind, updateFilters]); - // Set selected Kind on query parameter updates; this happens at initial page load and from - // external updates to the page location. - useEffect(() => { - if (queryParamKind) { - setSelectedKind(queryParamKind); - } - }, [queryParamKind]); - - const options = filterAndCapitalize(allKinds, allowedKinds, [selectedKind]); + const options = filterKinds(allKinds, allowedKinds, selectedKind); return (

F*wE6DYsH4XSOJDC@h8{pVMt@FD! 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 literal 0 HcmV?d00001 From 7e0a0ed6992ee69df589606cc3e952508ef8a79f Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 22 Sep 2022 14:35:47 -0500 Subject: [PATCH 002/228] added long-running action and example template Signed-off-by: Hao Luo --- .../sample-templates/all-templates.yaml | 1 + .../longrunning-demo/wait-action.yaml | 43 ++++++++++ .../actions/builtin/createBuiltinActions.ts | 2 + .../actions/builtin/stress/index.ts | 1 + .../actions/builtin/stress/waitWorkflow.ts | 86 +++++++++++++++++++ 5 files changed, 133 insertions(+) create mode 100644 plugins/scaffolder-backend/sample-templates/longrunning-demo/wait-action.yaml create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts diff --git a/plugins/scaffolder-backend/sample-templates/all-templates.yaml b/plugins/scaffolder-backend/sample-templates/all-templates.yaml index 6637c9479b..a3c81f8af0 100644 --- a/plugins/scaffolder-backend/sample-templates/all-templates.yaml +++ b/plugins/scaffolder-backend/sample-templates/all-templates.yaml @@ -6,6 +6,7 @@ metadata: spec: targets: - ./remote-templates.yaml + - ./longrunning-demo/wait-action.yaml # For local development of a template, you can reference your local templates here. # Examples: # diff --git a/plugins/scaffolder-backend/sample-templates/longrunning-demo/wait-action.yaml b/plugins/scaffolder-backend/sample-templates/longrunning-demo/wait-action.yaml new file mode 100644 index 0000000000..56032408b7 --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/longrunning-demo/wait-action.yaml @@ -0,0 +1,43 @@ +apiVersion: scaffolder.backstage.io/v1beta3 +# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-template +kind: Template +metadata: + name: wait-action + title: wait-action + description: template with a waiting task for a long running action +spec: + owner: user:guest + type: service + + # These parameters are used to generate the input form in the frontend, and are + # used to gather input data for the execution of the template. + parameters: + - title: Fill in some steps + required: + - name + properties: + name: + title: Name + type: string + description: Unique name of the component + default: some value + ui:autofocus: true + ui:options: + rows: 5 + + # These steps are executed in the scaffolder backend, using data that we gathered + # via the parameters above. + steps: + - id: someAsyncCall + name: Some Async Call + action: debug:log + input: + message: Some async call that return a tickedId (guid, for instance, that identifies a process) + + - id: waitWorkflow + name: Wait Creation + action: stress:waitWorkflow + input: + name: 'test' #${{ steps.someAsyncCall.output.ticketId }} + delayMilliseconds: 1000 + maxCalls: 30 diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts index fcddf127e2..68e8e4cef0 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts @@ -55,6 +55,7 @@ import { createPublishGitlabAction, createPublishGitlabMergeRequestAction, } from './publish'; +import { waitWorkflow } from './stress'; /** * The options passed to {@link createBuiltinActions} @@ -181,6 +182,7 @@ export const createBuiltinActions = ( config, githubCredentialsProvider, }), + waitWorkflow(), ]; return actions as TemplateAction[]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts new file mode 100644 index 0000000000..d6b15d0f2a --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts @@ -0,0 +1 @@ +export { waitWorkflow } from './waitWorkflow'; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts new file mode 100644 index 0000000000..317d4ee4aa --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts @@ -0,0 +1,86 @@ +import { createTemplateAction } from '@backstage/plugin-scaffolder-backend'; + +export function waitWorkflow() { + type InputParameters = { + name: string; + delayMilliseconds: number; + maxCalls: number; + }; + + return createTemplateAction({ + id: 'stress:waitWorkflow', + schema: { + input: { + required: ['name'], + type: 'object', + properties: { + name: { + type: 'string', + title: 'Name', + description: + 'The Ticket Number used to check the status of the Workflow.', + }, + delayMilliseconds: { + type: 'number', + title: 'Delay', + description: + 'The amount of milliseconds to delay before the next checkStatus call.', + }, + maxCalls: { + type: 'number', + title: 'Max Calls', + description: + 'The amount of maximum calls allowed to check a status before stopping.', + }, + }, + }, + output: { + type: 'object', + properties: { + status: { + title: 'Status', + type: 'object', + properties: { + message: { + title: 'Status Message', + type: 'string', + }, + }, + }, + results: { + title: 'Results from Ticket execution', + type: 'object', + }, + }, + }, + }, + async handler(ctx) { + const { name, maxCalls, delayMilliseconds } = getParameters(ctx.input); + + ctx.logger.info(`Running the long running workflow: ${name}...`); + + let i = 1; + + for (;;) { + ctx.logger.info(`waiting... [${i}/${maxCalls}]`); + + if (i++ >= maxCalls) { + break; + } + + await new Promise(res => setTimeout(res, delayMilliseconds)); + } + + ctx.output('status.message', 'Workflow completed'); + }, + }); + + function getParameters(input: InputParameters) { + const { name, delayMilliseconds, maxCalls } = input; + return { + name, + maxCalls: maxCalls ?? 30, + delayMilliseconds: delayMilliseconds ?? 2000, + }; + } +} From 6fa7fc3118304a5d197c34174060d3d1f664758a Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Mon, 3 Oct 2022 23:59:24 -0500 Subject: [PATCH 003/228] implemented concurrentTasksLimit on worker Signed-off-by: Hao Luo --- .../src/scaffolder/tasks/TaskWorker.ts | 42 ++++++++++++++++++- .../scaffolder-backend/src/service/router.ts | 2 +- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts index 9defd71c49..b18f06f1f6 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts @@ -32,6 +32,7 @@ export type TaskWorkerOptions = { runners: { workflowRunner: WorkflowRunner; }; + concurrentTasksLimit: number; }; /** @@ -46,8 +47,18 @@ export type CreateWorkerOptions = { workingDirectory: string; logger: Logger; additionalTemplateFilters?: Record; + concurrentTasksLimit?: number; }; +// Same implementation as StorageTaskBroker +function makeLock() { + let unlock = () => {}; + const promise = new Promise(_ => { + unlock = _; + }); + return { promise, unlock }; +} + /** * TaskWorker * @@ -56,6 +67,29 @@ export type CreateWorkerOptions = { export class TaskWorker { private constructor(private readonly options: TaskWorkerOptions) {} + private runningTasks: number = 0; + + private workerLock = makeLock(); + + private get isWorkerAvailable() { + return this.runningTasks < this.options.concurrentTasksLimit; + } + + private completeTask() { + this.runningTasks--; + if (this.runningTasks === this.options.concurrentTasksLimit - 1) { + this.workerLock.unlock(); + this.workerLock = makeLock(); + } + } + + private async waitWorkerToBeAvailable() { + if (this.isWorkerAvailable) { + return; + } + await this.workerLock.promise; + } + static async create(options: CreateWorkerOptions): Promise { const { taskBroker, @@ -64,6 +98,7 @@ export class TaskWorker { integrations, workingDirectory, additionalTemplateFilters, + concurrentTasksLimit = 10, // Or Infinity } = options; const workflowRunner = new NunjucksWorkflowRunner({ @@ -77,14 +112,17 @@ export class TaskWorker { return new TaskWorker({ taskBroker: taskBroker, runners: { workflowRunner }, + concurrentTasksLimit, }); } start() { (async () => { for (;;) { + await this.waitWorkerToBeAvailable(); const task = await this.options.taskBroker.claim(); - await this.runOneTask(task); + this.runningTasks++; + this.runOneTask(task); } })(); } @@ -107,6 +145,8 @@ export class TaskWorker { await task.complete('failed', { error: { name: error.name, message: error.message }, }); + } finally { + this.completeTask(); } } } diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 28dd1ca413..3fbfe24074 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -199,7 +199,7 @@ export async function createRouter( const actionRegistry = new TemplateActionRegistry(); const workers = []; - for (let i = 0; i < (taskWorkers || 3); i++) { + for (let i = 0; i < (taskWorkers || 1); i++) { const worker = await TaskWorker.create({ taskBroker, actionRegistry, From 1b701258705e27824c8f997efb389e420a51e562 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Tue, 4 Oct 2022 00:16:01 -0500 Subject: [PATCH 004/228] fixed linting errors Signed-off-by: Hao Luo --- .../scaffolder/actions/builtin/stress/index.ts | 16 ++++++++++++++++ .../actions/builtin/stress/waitWorkflow.ts | 18 +++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts index d6b15d0f2a..9260f41e2c 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/index.ts @@ -1 +1,17 @@ +/* + * Copyright 2021 The Backstage Authors + * + * 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. + */ + export { waitWorkflow } from './waitWorkflow'; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts index 317d4ee4aa..eeb5603e19 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/stress/waitWorkflow.ts @@ -1,4 +1,20 @@ -import { createTemplateAction } from '@backstage/plugin-scaffolder-backend'; +/* + * Copyright 2021 The Backstage Authors + * + * 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. + */ + +import { createTemplateAction } from '../../createTemplateAction'; export function waitWorkflow() { type InputParameters = { From 92cd574898be08cfc717706813f4e1a79b5cb6b3 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Tue, 4 Oct 2022 00:28:56 -0500 Subject: [PATCH 005/228] added api-report.md Signed-off-by: Hao Luo --- plugins/scaffolder-backend/api-report.md | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 35e3dab0b5..5b9f65cd41 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -448,6 +448,7 @@ export type CreateWorkerOptions = { workingDirectory: string; logger: Logger; additionalTemplateFilters?: Record; + concurrentTasksLimit?: number; }; // @public From b32005e98aeaf6452526510985b98045e0b6a739 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Tue, 4 Oct 2022 00:39:44 -0500 Subject: [PATCH 006/228] added changeset Signed-off-by: Hao Luo --- .changeset/little-chairs-dance.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .changeset/little-chairs-dance.md diff --git a/.changeset/little-chairs-dance.md b/.changeset/little-chairs-dance.md new file mode 100644 index 0000000000..07cbf52389 --- /dev/null +++ b/.changeset/little-chairs-dance.md @@ -0,0 +1,21 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Added optional "concurrentTasksLimit" option to TaskWorker + +TaskWorker can now run multiple (defaults to 10) tasks concurrently. + +To use the option, in `createRouter`: + +```diff +const worker = await TaskWorker.create({ + taskBroker, + actionRegistry, + integrations, + logger, + workingDirectory, + additionalTemplateFilters, ++ concurrentTasksLimit: 10 // (1 to Infinity) +}); +``` From d64bae4974fc4efd07814a5aa442575095af4c37 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 6 Oct 2022 11:28:14 -0700 Subject: [PATCH 007/228] removed multiple TaskWorkers Signed-off-by: Hao Luo --- .../scaffolder-backend/src/service/router.ts | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 9d4aa547f8..6fe914202e 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -201,20 +201,6 @@ export async function createRouter( const actionRegistry = new TemplateActionRegistry(); - const workers = []; - for (let i = 0; i < (taskWorkers || 1); i++) { - const worker = await TaskWorker.create({ - taskBroker, - actionRegistry, - integrations, - logger, - workingDirectory, - additionalTemplateFilters, - additionalTemplateGlobals, - }); - workers.push(worker); - } - const actionsToRegister = Array.isArray(actions) ? actions : createBuiltinActions({ @@ -227,7 +213,17 @@ export async function createRouter( }); actionsToRegister.forEach(action => actionRegistry.register(action)); - workers.forEach(worker => worker.start()); + + const worker = await TaskWorker.create({ + taskBroker, + actionRegistry, + integrations, + logger, + workingDirectory, + additionalTemplateFilters, + additionalTemplateGlobals, + }); + worker.start(); const dryRunner = createDryRunner({ actionRegistry, From 0c55e847a41fdaf84a643b71c929cc54336e9a75 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 6 Oct 2022 12:02:44 -0700 Subject: [PATCH 008/228] removed 'taskWorkers' options Signed-off-by: Hao Luo --- plugins/scaffolder-backend/api-report.md | 3 --- plugins/scaffolder-backend/src/ScaffolderPlugin.ts | 3 --- plugins/scaffolder-backend/src/service/router.ts | 2 -- 3 files changed, 8 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 96a3d33fa7..2ea9884b99 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -562,8 +562,6 @@ export interface RouterOptions { scheduler?: PluginTaskScheduler; // (undocumented) taskBroker?: TaskBroker; - // (undocumented) - taskWorkers?: number; } // @public (undocumented) @@ -599,7 +597,6 @@ export const scaffolderPlugin: ( // @alpha export type ScaffolderPluginOptions = { actions?: TemplateAction[]; - taskWorkers?: number; taskBroker?: TaskBroker; additionalTemplateFilters?: Record; additionalTemplateGlobals?: Record; diff --git a/plugins/scaffolder-backend/src/ScaffolderPlugin.ts b/plugins/scaffolder-backend/src/ScaffolderPlugin.ts index 09d7bdcbb2..84bf355156 100644 --- a/plugins/scaffolder-backend/src/ScaffolderPlugin.ts +++ b/plugins/scaffolder-backend/src/ScaffolderPlugin.ts @@ -36,7 +36,6 @@ import { createRouter } from './service/router'; */ export type ScaffolderPluginOptions = { actions?: TemplateAction[]; - taskWorkers?: number; taskBroker?: TaskBroker; additionalTemplateFilters?: Record; additionalTemplateGlobals?: Record; @@ -105,7 +104,6 @@ export const scaffolderPlugin = createBackendPlugin({ const { additionalTemplateFilters, taskBroker, - taskWorkers, additionalTemplateGlobals, } = options; const log = loggerToWinstonLogger(logger); @@ -135,7 +133,6 @@ export const scaffolderPlugin = createBackendPlugin({ reader, actions, taskBroker, - taskWorkers, additionalTemplateFilters, additionalTemplateGlobals, }); diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 6fe914202e..ddef93e396 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -67,7 +67,6 @@ export interface RouterOptions { scheduler?: PluginTaskScheduler; actions?: TemplateAction[]; - taskWorkers?: number; taskBroker?: TaskBroker; additionalTemplateFilters?: Record; additionalTemplateGlobals?: Record; @@ -159,7 +158,6 @@ export async function createRouter( database, catalogClient, actions, - taskWorkers, scheduler, additionalTemplateFilters, additionalTemplateGlobals, From 19ecf558172e96bd63bbba2fab1193c156620ee7 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 6 Oct 2022 12:46:47 -0700 Subject: [PATCH 009/228] implemented p-queue for use as a taskQueue Signed-off-by: Hao Luo --- plugins/scaffolder-backend/package.json | 1 + .../src/scaffolder/tasks/TaskWorker.ts | 41 +++---------------- yarn.lock | 20 ++++++++- 3 files changed, 25 insertions(+), 37 deletions(-) diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 2be7b62f75..c273e509bf 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -72,6 +72,7 @@ "octokit": "^2.0.0", "octokit-plugin-create-pull-request": "^3.10.0", "p-limit": "^3.1.0", + "p-queue": "^7.3.0", "uuid": "^8.2.0", "vm2": "^3.9.11", "winston": "^3.2.1", diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts index 26a342d754..799510b278 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts @@ -15,6 +15,7 @@ */ import { TaskContext, TaskBroker, WorkflowRunner } from './types'; +import PQueue from 'p-queue'; import { NunjucksWorkflowRunner } from './NunjucksWorkflowRunner'; import { Logger } from 'winston'; import { TemplateActionRegistry } from '../actions'; @@ -54,15 +55,6 @@ export type CreateWorkerOptions = { additionalTemplateGlobals?: Record; }; -// Same implementation as StorageTaskBroker -function makeLock() { - let unlock = () => {}; - const promise = new Promise(_ => { - unlock = _; - }); - return { promise, unlock }; -} - /** * TaskWorker * @@ -71,28 +63,9 @@ function makeLock() { export class TaskWorker { private constructor(private readonly options: TaskWorkerOptions) {} - private runningTasks: number = 0; - - private workerLock = makeLock(); - - private get isWorkerAvailable() { - return this.runningTasks < this.options.concurrentTasksLimit; - } - - private completeTask() { - this.runningTasks--; - if (this.runningTasks === this.options.concurrentTasksLimit - 1) { - this.workerLock.unlock(); - this.workerLock = makeLock(); - } - } - - private async waitWorkerToBeAvailable() { - if (this.isWorkerAvailable) { - return; - } - await this.workerLock.promise; - } + private taskQueue: PQueue = new PQueue({ + concurrency: this.options.concurrentTasksLimit, + }); static async create(options: CreateWorkerOptions): Promise { const { @@ -125,10 +98,8 @@ export class TaskWorker { start() { (async () => { for (;;) { - await this.waitWorkerToBeAvailable(); const task = await this.options.taskBroker.claim(); - this.runningTasks++; - this.runOneTask(task); + this.taskQueue.add(() => this.runOneTask(task)); } })(); } @@ -151,8 +122,6 @@ export class TaskWorker { await task.complete('failed', { error: { name: error.name, message: error.message }, }); - } finally { - this.completeTask(); } } } diff --git a/yarn.lock b/yarn.lock index c2019f86ad..ba20ab94b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6680,6 +6680,7 @@ __metadata: octokit: ^2.0.0 octokit-plugin-create-pull-request: ^3.10.0 p-limit: ^3.1.0 + p-queue: ^7.3.0 supertest: ^6.1.3 uuid: ^8.2.0 vm2: ^3.9.11 @@ -21960,7 +21961,7 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.1, eventemitter3@npm:^4.0.4": +"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.1, eventemitter3@npm:^4.0.4, eventemitter3@npm:^4.0.7": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 @@ -31128,6 +31129,16 @@ __metadata: languageName: node linkType: hard +"p-queue@npm:^7.3.0": + version: 7.3.0 + resolution: "p-queue@npm:7.3.0" + dependencies: + eventemitter3: ^4.0.7 + p-timeout: ^5.0.2 + checksum: eda8b8d4dac9456d1722c8ee0892bbb2e7f7b79d1f90b6cc1bac5fb9dcf3120285f90c28a68dc2f66bc9e46c7d7d42ad206a2c4d83e7aad27a0226ae042081ee + languageName: node + linkType: hard + "p-retry@npm:^4.5.0": version: 4.5.0 resolution: "p-retry@npm:4.5.0" @@ -31147,6 +31158,13 @@ __metadata: languageName: node linkType: hard +"p-timeout@npm:^5.0.2": + version: 5.1.0 + resolution: "p-timeout@npm:5.1.0" + checksum: f5cd4e17301ff1ff1d8dbf2817df0ad88c6bba99349fc24d8d181827176ad4f8aca649190b8a5b1a428dfd6ddc091af4606835d3e0cb0656e04045da5c9e270c + languageName: node + linkType: hard + "p-transform@npm:^1.3.0": version: 1.3.0 resolution: "p-transform@npm:1.3.0" From 0b4430b0859bbe450e70bf12ebab0ef4e7e2865a Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 6 Oct 2022 13:40:04 -0700 Subject: [PATCH 010/228] reverted p-queue to ^6 for non-esm loading Signed-off-by: Hao Luo --- plugins/scaffolder-backend/package.json | 2 +- yarn.lock | 21 ++------------------- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index c273e509bf..0255d4045f 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -72,7 +72,7 @@ "octokit": "^2.0.0", "octokit-plugin-create-pull-request": "^3.10.0", "p-limit": "^3.1.0", - "p-queue": "^7.3.0", + "p-queue": "^6.6.2", "uuid": "^8.2.0", "vm2": "^3.9.11", "winston": "^3.2.1", diff --git a/yarn.lock b/yarn.lock index ba20ab94b7..8b43a7fb95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6680,7 +6680,7 @@ __metadata: octokit: ^2.0.0 octokit-plugin-create-pull-request: ^3.10.0 p-limit: ^3.1.0 - p-queue: ^7.3.0 + p-queue: ^6.6.2 supertest: ^6.1.3 uuid: ^8.2.0 vm2: ^3.9.11 @@ -21961,7 +21961,7 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.1, eventemitter3@npm:^4.0.4, eventemitter3@npm:^4.0.7": +"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.1, eventemitter3@npm:^4.0.4": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 @@ -31129,16 +31129,6 @@ __metadata: languageName: node linkType: hard -"p-queue@npm:^7.3.0": - version: 7.3.0 - resolution: "p-queue@npm:7.3.0" - dependencies: - eventemitter3: ^4.0.7 - p-timeout: ^5.0.2 - checksum: eda8b8d4dac9456d1722c8ee0892bbb2e7f7b79d1f90b6cc1bac5fb9dcf3120285f90c28a68dc2f66bc9e46c7d7d42ad206a2c4d83e7aad27a0226ae042081ee - languageName: node - linkType: hard - "p-retry@npm:^4.5.0": version: 4.5.0 resolution: "p-retry@npm:4.5.0" @@ -31158,13 +31148,6 @@ __metadata: languageName: node linkType: hard -"p-timeout@npm:^5.0.2": - version: 5.1.0 - resolution: "p-timeout@npm:5.1.0" - checksum: f5cd4e17301ff1ff1d8dbf2817df0ad88c6bba99349fc24d8d181827176ad4f8aca649190b8a5b1a428dfd6ddc091af4606835d3e0cb0656e04045da5c9e270c - languageName: node - linkType: hard - "p-transform@npm:^1.3.0": version: 1.3.0 resolution: "p-transform@npm:1.3.0" From cbb618c6694b31ff879cc791028829a1451eb61a Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 13 Oct 2022 16:44:59 -0500 Subject: [PATCH 011/228] added taskWorkers back in Signed-off-by: Hao Luo --- plugins/scaffolder-backend/api-report.md | 3 +++ plugins/scaffolder-backend/src/ScaffolderPlugin.ts | 3 +++ plugins/scaffolder-backend/src/service/router.ts | 2 ++ 3 files changed, 8 insertions(+) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 2ea9884b99..96a3d33fa7 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -562,6 +562,8 @@ export interface RouterOptions { scheduler?: PluginTaskScheduler; // (undocumented) taskBroker?: TaskBroker; + // (undocumented) + taskWorkers?: number; } // @public (undocumented) @@ -597,6 +599,7 @@ export const scaffolderPlugin: ( // @alpha export type ScaffolderPluginOptions = { actions?: TemplateAction[]; + taskWorkers?: number; taskBroker?: TaskBroker; additionalTemplateFilters?: Record; additionalTemplateGlobals?: Record; diff --git a/plugins/scaffolder-backend/src/ScaffolderPlugin.ts b/plugins/scaffolder-backend/src/ScaffolderPlugin.ts index 84bf355156..09d7bdcbb2 100644 --- a/plugins/scaffolder-backend/src/ScaffolderPlugin.ts +++ b/plugins/scaffolder-backend/src/ScaffolderPlugin.ts @@ -36,6 +36,7 @@ import { createRouter } from './service/router'; */ export type ScaffolderPluginOptions = { actions?: TemplateAction[]; + taskWorkers?: number; taskBroker?: TaskBroker; additionalTemplateFilters?: Record; additionalTemplateGlobals?: Record; @@ -104,6 +105,7 @@ export const scaffolderPlugin = createBackendPlugin({ const { additionalTemplateFilters, taskBroker, + taskWorkers, additionalTemplateGlobals, } = options; const log = loggerToWinstonLogger(logger); @@ -133,6 +135,7 @@ export const scaffolderPlugin = createBackendPlugin({ reader, actions, taskBroker, + taskWorkers, additionalTemplateFilters, additionalTemplateGlobals, }); diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index ddef93e396..6fe914202e 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -67,6 +67,7 @@ export interface RouterOptions { scheduler?: PluginTaskScheduler; actions?: TemplateAction[]; + taskWorkers?: number; taskBroker?: TaskBroker; additionalTemplateFilters?: Record; additionalTemplateGlobals?: Record; @@ -158,6 +159,7 @@ export async function createRouter( database, catalogClient, actions, + taskWorkers, scheduler, additionalTemplateFilters, additionalTemplateGlobals, From 86de58739da823e3827c95a0fff414708cae0644 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 13 Oct 2022 16:50:56 -0500 Subject: [PATCH 012/228] reverted back to multiple TaskWorkers Signed-off-by: Hao Luo --- .../scaffolder-backend/src/service/router.ts | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 6fe914202e..9d4aa547f8 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -201,6 +201,20 @@ export async function createRouter( const actionRegistry = new TemplateActionRegistry(); + const workers = []; + for (let i = 0; i < (taskWorkers || 1); i++) { + const worker = await TaskWorker.create({ + taskBroker, + actionRegistry, + integrations, + logger, + workingDirectory, + additionalTemplateFilters, + additionalTemplateGlobals, + }); + workers.push(worker); + } + const actionsToRegister = Array.isArray(actions) ? actions : createBuiltinActions({ @@ -213,17 +227,7 @@ export async function createRouter( }); actionsToRegister.forEach(action => actionRegistry.register(action)); - - const worker = await TaskWorker.create({ - taskBroker, - actionRegistry, - integrations, - logger, - workingDirectory, - additionalTemplateFilters, - additionalTemplateGlobals, - }); - worker.start(); + workers.forEach(worker => worker.start()); const dryRunner = createDryRunner({ actionRegistry, From d7dad72fdbd414175b5c86ab9ca836923016b846 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 13 Oct 2022 16:55:36 -0500 Subject: [PATCH 013/228] implemented that only claim new tasks if queue is empty Signed-off-by: Hao Luo --- plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts index 799510b278..1dc8d01aad 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts @@ -75,7 +75,7 @@ export class TaskWorker { integrations, workingDirectory, additionalTemplateFilters, - concurrentTasksLimit = 10, // Or Infinity + concurrentTasksLimit = 2, // Or Infinity additionalTemplateGlobals, } = options; @@ -98,6 +98,7 @@ export class TaskWorker { start() { (async () => { for (;;) { + await this.taskQueue.onEmpty(); const task = await this.options.taskBroker.claim(); this.taskQueue.add(() => this.runOneTask(task)); } From 85607e499820149a11e9baf7e5bbbdb3f2ca9e79 Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Thu, 13 Oct 2022 17:16:00 -0500 Subject: [PATCH 014/228] updated diagrams Signed-off-by: Hao Luo --- ...scaffolder-task-broker-blocking.drawio.png | Bin 67549 -> 80393 bytes .../scaffolder-task-broker-events.drawio.png | Bin 64340 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/assets/architecture-overview/scaffolder-task-broker-events.drawio.png diff --git a/docs/assets/architecture-overview/scaffolder-task-broker-blocking.drawio.png b/docs/assets/architecture-overview/scaffolder-task-broker-blocking.drawio.png index 214de226f1e7959e9bb56f91173a6c415f74eb40..4abdbb44e4462e428d8de6284abdfbfeabfd594a 100644 GIT binary patch literal 80393 zcmeFZ2|Sg1*FMf}Cz81mA~PxTEVMJrm}Ja6XV@|i$&g4TQ&N&BN||LUvsBWkgiKLs zFk~o{q5kXMLkHD)&Ure|`@Em`_dg#WhugjHVSU%S*0rv+zQyS4s#C3IUQI$mLZzvp zVn9N&B7=kk#XwF5N0>(T_rd>2y$#frND3Zqd{086&f=qL;^Q9R=;G!;!XvJX|A|Lj z6@IpNv2pUUapw^eak1wSSK$#8(^WIISJCq`HWssU-4Q73p)2O#28ZDc4;yy}{5kqI zP7Z>i$Wh!y+ym6TY&@NHu=dEQBK86Jvt&di@gKAg#2=6nk;Wfz@*>_%MO=bHut4-jQ%IPk0Ud zhX^-B4(ztGaU(tl{^5|L#xC|g&iHd>Bp02n;o#!rOuVzG2;ncbHg>K~URYlb!u@!} z#2s<};VTSfVWQ|(HOYbaX?;3ghyP--`T~-VYjD^9df!qtUerb_HlQE z-$da@a5Xn&tQ*z~_fFz!xc}g|w~rUr)nUQ^I=LJ9rWQ?1A-wg(Dc<)8-F9AsF3n`8xd4=%Qj0_!lP{ zU4&qWMMf8skj0;~*yy5Cgb)6X)d_g=U-aAmiqRz`mwEb6j4n<*w$$i^koX;=6Yjmp z=(@fh`+V(Oy$x-=T@8EzjJ+BuE(gIGQuwocY`mNt2x*UKe#8!NDLCO5Da6ac&Bn*YZ}CZDB0pOU0ubtB zT_Cl7Pd%d2g!Ln=yOab01&NoyKNR6p%d(0(G2P&<{jU-YF@Y@#KRYi68y^P)tS=ah zfAf!_$M5g#-~kWo1@Lgmv7W0n3=OJLspRMLUf&&O$gQfb3y$SdH^LUgb zH2!R4dDsFUHlNA@qq;F{c8ZQfm4xF;D0V~ zng|{^?Eeo&KOqGEk?0qfkR*gDF=`3x@b7{F(Vza2XeYS#qI7^y1V3QFf4G4AbM*cX zRUhKggry+nU0DLaEaqEyd>0e>$N3iF-pjJ)|2WPPL3J_lApp@ojI)0i5T%#VVQ~>W z@ctAK-2;}vskFGLkl4~fN0OL7i6MmNe}oVIR@NkX$)Z3K75a{m@B_f=eqTh9QNns6 zbc*;J{0XUheu%gKAqKUG4t*C>@D=}`GN!*J3J~+oa#i5p;Zov~5=++bI{JUsM zP=A&dUV_rgQv5%HwS=fzoe)yR*sLL#Cf;!-l=64Ihl(y~&r@TXs|>94@~CzT$7 z;r&X%!@uhirj0-JL#q8Hp_Y^)$TkGf79&bXi$I%L4==`S83Lsz#{Rz}(@7BAnjQ5qz!zf2P)B$p-xaYFJY(8M2zp*XRhKu93V&WG^+y*is{szq?;Z{y;F z!x9lkXlg+()WILV<9Xk5rJEl)87Z&vrvehWyLcnY8xEpC7sI-N(D;Ku?t;j1Hpn*@ z4@Vad=&!+#Zdk16kLCHYdlDi_GjWA zf|3N3l7UkZKtZ%VZA2H;$9jWFKtmK)vBmoMVBHs;KokRgu%5_032ewc09wtS&O#0@ zoLP#{@?<|ElfmHtGjIz}BAVPnyx_;@IOL!fj zE?Hcx6At}zDEyas-H(1Ki7+yU00%p0Ccsbs&B~U5Jb#+E|1E+=jImz-PiA3JqP9w8MFg={WKk9-Hn^571p#D!XDKB9 zZWdm|O#eq^nV)Ix;{UiVLjcF+dbo&;khtjg|3sDs(qEOv|F(utY<&~mf~U2_XVgTkQUl;zFV_ zi}33ohz6oVEi#F{gQJ6&7u0rQA}TK4o;E&q&OcZQMnqvU7MZ;uR$RXBFog+<0T!9! z_!-4tR8#y4^M6eV7NjOZI)Wm$wprwmB79l!$v;kZ3vWqvH!|M!$|e?fHotyLqSgt)Yj z)K8*f(F#icG@3*ui81zD>4Xrxf4QjpZ>1Arq%W=piR#lbuKipxxsMI3y7Kt^RLH^S_d+{ zD=R4?A}J{=DYB?XR1GKLY5l*8RtzCS*NH;vfr=b%_%So<#@> zi%jftFHVC*8vi@XElJ3ui2#rPPT)k$!ZJ@5cV?oao0QnK<;h*b>BJzvT%8?zPAgM4E$)8vn11)4w1J;!pY6 zRN5jc@Tbb-Z>=LCs)-BqFFcwkWc|)M67};xGPoE*Fn0fPbHGyPUF_EQH(y3i{-qR1 z)cBWB9h`Ih2!j7OvmxGmkryLPI!Ivn9^HOl2iW+wD2L(G5w2lpi|F7E?w&qC@t3*# zvcUg;LHzqkvHgPv{NsWWYdNCiM$Bpwl0rn%xhMuC#Ds`j_ZGvMn557@p!yN#85X&M zk{i~}6+bDmY}1mCgPpUDhl@9Ckp2Ic{-_W@To8Iu5(3r4^7@3*Co9^#sK;mY!#TgKvn0^Gze>?*cx4&)~NH-*&yL9H`hslGbbb=@sF5M1sIh5?o%=O{XL_RQTrukx2-?S;fOsytcofxO}l%_rZ7_TH;_7`p9Y;0y5)?}uGZ zFNSaQ4G&fa7nY^J=n6jXJNDM}(T%~bGS`mC!)T2#+!wnu%DB)n*}c2`Zh=LW{a9a( zSARXJtk1jnjobXRb<<=x`1I0GiaR}Qetykqu<b5gxH+c52w+=_MV5BI_NS_f{6sM+bg< zv*!ZcOFB+^TQT>p(nLAmeLP|uGD+N;FW*mQYo)w?dFzV6-3uAto~Uf#+!ykcNb?q+&LKQqEG&qUOWyptMv z6!?nN2}4P^MdlHVWJ!T>7P7cuxL(kV``#(R-Hl`E!5X8v!sSWM z85-=+?N}Cv-W$G?!-aJMqHAn|zAemXJxGibN|fbbEos0h3yw+rv}4UvFW2|`m~?6ScNVO(%t>|_K~q==N-0S z?eu_`6oau2L~ACI>xZREFpp5;o*#3coITC2EoYaQM~{q4N5Q$$eb06Z7#D23_BFCg zM7}JESH}Q#WA|m0fNDeeuL`5-7< z^C=Oms&0^_F`y#u@lL!wfqJ8i{w3XW0?JWq5~fGHxApNdV^G}i)qeoBHsj$YWi$M* zv}EBA&uzQ6DRiDAiBHdn;_%CSYt}8**QuB#;&&V(yLC3OG#clP^)~1Os~?+tT)$=G zSX9MrO+)%&r#+2&yAn#5L&WQ~#+UhzkM=}l1_-@x#5VUu$jrIw&o7S&1PkE} zMnchalw_rIUh_4JS71qIY3>nP3YC*2mNLCT!}$e)6R)L$xq>E&yl_SekEhTNi#mRS z?=}nR>c;^rySkK7F%0z~-|h+5Y1}%xj$wP}fV%Y~{SliM4Vq{g?kYXx`Kb9Yq(kGR z_A{eg7}9;4wAxkRrNZXe=7KrpCHu7U&C2Y-C)Z|7C_XNYL#(j|KCtgINpWy1e1KV@ z-7N;KjeMXxX{57Q8JvkTaPqZiwrly+t4G_voxFVhpqWSAf*;fNgYqkL-0e;2@V>wg zZl;`h+xulAyy0HzEwP;8Xo`1mUwhk4k4aaM<%D365DM@zF4()PyWrDshaMRX+g9Pa z`I2$jx1VjYNpUM004sW8lM=HvBdPBF5zf0o8uha1yczJ)VF&QE7KW|@i*02Vnuk}f zOS8NGE$Bwj)V{LI?;|M~PQJb7+EHL|)o}BavEti}(rF_i$dfg(g7GR@44Bsnz!jBv z?tIj!zm7i8JJVf(O*td()Z%nLgcsl=0YXRfoSbi)S?k)(1{<744pTC=bv=adEfFgz zxd92DWN9+EwCA0HKfjLpIw|YaGhVEWduTa$=mHim=8-rOKF4Y)jrtHYebrb3hd+dE ziE}HbX}Q~(F5$Ij?C+%r3j>6lqUYJE!rDa$;u6OP%*hS@gDuGh`DT(=EUL;43oR|C z;vQYkp`m2q#sL|5JXkd>Bfw;yLBoxc`5W4qgQ7AHBQmpa>lou8tO>oFQ;FZG*^cH9 zT9KL>V*4XRK{msuy9Fh>Uj9SBVQeDhZnHk*~^tiB>>T#(kKc*$$9 zB~dCQf`^wwfJ2B*Ao$Cq1CP?wN3xgVE>E%qN*OuV*{-`F>HX$@qNJ-4k7L3a zX{*`;208j1Jc=vUovn3y<9%WVh4;KX2$S1E=+0VEw2Y{@BY!6y{SoGH=NB`yX`iqA zji%CP(q3%6U&-Pgd{HXi?Fb$LMBy=6#SKTCvnV`m*Sj?4ok!p2>Mx(`bDvK2zg4V` ztSbhVwVF($KNPO}DjS3PKse#X*wIV3kQ1yGNmuKCymLh1I6e5*1$63z_^=)59={h= z4=fJ}N&4Z_A7)!ffept|;{nFCg*4Li{k~(jcU^wq!H2)wjfL4u3%HAMk_KUPHm;lA z%nSEBM&T#56D7)nKk4?Tm$t9)kE951JK4xi%1Z5dPf$Rd2aqK!n7mRa{`v#UnZ0*Q zPa^M^rW}T9leN2*u67z$fsX9{kY+swsT0`vaw19dAR}vDQ308NF?Cl0|ev4 z=Ey5YYyHpGe5ktMB8u4dv>se$UeuQ6qDmOUHU4l%ac*l`(u&?0k82$nTCo=RwD5To zSiy2NcLtWMfON17F3i<0wd0Lcu!aAQr`8CRd6K{xtJct0ZD2*EomPz&H|HQtBHWDE z!j+It>U|M=(`$sW>07Sg?l(huFxbP5${3}n_>dqtL?NRaR{M2!c=A=;_7=zyJm4Oy zN89twvqQgq6$|?0{K%<6WP9k>>QC=lmCefCHt)G=Nb$zdck8UU?~q~O+jIWh4lO4s z(hIwhe2JC&02z=fhdRVoX@Tsru~o=al+?}?AwggvCv9&XUFm+2MYq4{KGj8S7R`P& zy!C_&{qYIxBe{%0n39RkSt*@VX{^UF5-NX_2)c~+a`v<;-(g-Z^%H9}*YfgWT8&=R zhA8MLl?q$c%JV0%2(j>;dlYjfN$pq&4=Jo0&fwE~dGheSQm>0Tu{HyNBj4fnz{s=D zRs_v|o?xlYG}>PY;XTNs`sHQs`l)?1 z{6kUFlKvlhp5z(}Phm$#OOHBke5)0v#9i*(sx;L)R2<1V)9ZhJwp#a`T+50yfjw7Q z?)yY}hgH@~b5iJ)OlJae{1mEYzGhT}yMN6d?D51-s( z{DC*~2yIU!`rUQ!w^>>#LOU}!kFT>Sc&8PPT6vO$Rl+$Qmh}!p3uQviTmZnsl=MbB zD%SEK3`d*(WoqHub-UzzhkTT)K5uK`ij#jym+`qya*fIP;YTZOU|-at4+klwJzn1! z%TZm{zfw9NtCg+sbnDmf6{|et9=;y8(!Jj^HGZ*-n}oQQ_&iGrYiSe)Zq&gQkas~; zlqP3Sze{+ILUIg+e(vR`H`;dxn?B9fx?FuqPNGu)6G9bY%TYOd084sx_z6cP?NfM< z8XKy-LdguH!mODardYlGN@-V(@~^r@=Cns_?8$#?GW?>%;T~0}_?T2>AD8ZZZC0k~ zV`xtGdiR-{?vdD@V;bwTuqECUsl-Mj7p!)XVbSR zTz^7FQIs@w17GKWAjbDdQSAm_a?#t|kGXX+Et~z)?!=s7U2D3ELgpA@E%R~{YIu;4 z^QZMJC3)7k`lai)uM3JRb0jBDRIC!GB~5+&WtP4;h~~wCk2>p4<Y$|9>D?& z>u$3F-oRG?19Hc7dG3`h30%=;+bFOsUuiP4I|5(I)HsTYK4NPOTsRl!o766O*6j7O zoLx6x4O}b8haw_R{Ww_(S(^Z=xNj}zdZj{_rl{9{U zOaQ}?HxIWy-|kjgThjk>!*G|*k!IirSBJM2)9yWD7$V>9>NnE43n0q%nSbQBp^?fP z7HuxQb!|fqQ^_lhJL1X;ocZ?Z_E}oEo-Xnyvs$fRv3;NOc8b%Q_3jb(A@Kx0D>g<@ zzTX3Nf*~VeLqX*9)8i_^c~7+gHqXckjjW?kNyM)a%U#!KUwlausa8LQG7KKo?mI75 znmK6NK;PfA)x=gl9i2w7ukY7&J1LP$jQuNlrDfRd7x7On=p%VgKsH?+^^nK9TOaR)l+D-J^2WA%wXP`u8w^3w_n!0&1Bmc`ns8}RZA%zqc>LQHgz@X zko4Z*n=WVHCgLj_5}?qNa_r&X==z(Er=So%R5?@gQ0U<2aho%;-k08mq)TeLk_#y+ zlX;zs=^5I5xO1fE`nAi{!-}n6CI@#jJp#xR44Ipza*b~+lg_&xD25{xBuIv3hU@ax z$1oL=(R*$pt@;pLlfRDKtRk~ywf@NN-n!6GCWWBV$x~*kyk8xsvdm@#dODX z<)uB3_g(bafR%C8Tv5zuQx9b@O)8Hbu7;&&568f}k}1X9sf@s|Gl(09Wh8L-bD{?N zW@wM{ljlFXC9rkk%yba%8`7!u8C8CxtGB&w59Tkcae9=VJlb7x4>(~PjZzp#y#Gii z$7okslBnJ7%69@8SMZ#ol^dA9PM6y~XVieMO03k0b6lkK?<0BV{ujYxEA~+(Khr#l;Vs@;+2<-x*OGg!zl-kR zF~$16nZ95>9(iE-LsTosCa&AwTD=)k%SWu9zH+SVTIa13*WcUT@8J5Sr5zQYov;+ z4Er771wGh8x(==&txY9KBkhd9zFax&#JDr2MRs0eQo^jA7>tF4D-#T zz3}nPgWYv-3d|${+FPo@Y1|~e9M%$SY7ZYKz00Hii zcdw@D)Vnk6a*A6YtcRMW_3RG8R@9829ul!|Q@+@79E6LubW&SEyj$&82X*5^)Jd|# zJL^BhnC2|>2f`m(5f-hOIDPQr1L<@Ti^wS{e6OL>H>+hG&lHfN)wWgjv z+_fFBjoW%VvW~??{!lQdbF1A=T4%<~1RoT}wTyuVY z+YdbU00X?-CfDH5FN2JaQd^HP3I{duiw&3H(^Talc*bqF&lr(m*xMPdk=$rjhR?Y1 zB6OWQICO4QTJQ9S7zRFh+fra=QgLFr5K$1!A~Ene&5I4SO((-N8Lpjtx`LaWLEN$Mk$hr^e8_VZ__+UZ@%%MmVONlwJw$G%#EsmHV%np-`~kzI zs=$wqaT`KD4@4_(bVygj`J**Gd@f1tP)N*XQaY|0ckm%7XPsOb zkFl3(${2>8`iW>_5R69LKut4Sc%D zx`8Uabq$kPWJJ_kyg5~3!t_X)v&)|!k42A5RRXIP3z_w~Vt6GnR`QwvVuK@As0q$y z6l-Qc=}g;|-C!pqwxM2^kB~4gcMHETupjSqyEp;McpfKsIJRC;eNwsKP8JG+<1Es; zfB}r}c}=$?{w$M@kzZXBNygJRddr_(h5z822WR=9T9}9&dh_sH_e94QDg=4M1K8nW zG#B|fp*Tn`b$f0A)rYWV5^t;owr?-RuJyP;CH;neX%Qc2{((2RaPRe(bQfu}9PXW( z3Q(h5zqPqL0+&MB)gXTC(0v~qCkDI9-OU>u`}nWyzKjR~&G*lUXJf)qe$sbl5u~i2 zKo`B4Yd6QPlg?l8OCp)7#njDDYCXEq%BgxZpvk$|_SVKw!KWlR&p=j~FV+YZvM_S( zQ5HyT5lw5_Q56yu=Ee(|in`lsng}-Vc0|-Iz*}Xdp(Q{^X{xj+M~2#}WKpF1UF zF+}l9=e%N#`teg+jD>Q70&qf2JjNPqwBnWh{4RKpWY9sIw||@GdZaj)H>=a?GGA1D z2v(Sk_8sK#`H4H5!~!SnWA2oNSNV^fGRim8gwS>Xx=BVWT|v41>*tH=$9Xjqo4C|^ z`#Gfj4Lik=9INdPqu#{V; z{=)p*?cZW(R=BK0jL~!i!1s84ckfoE=5fbh$dgxx4lc}InaZ%cbE2$jb2~%`2DM+4 z#Fa}umU-}b%WC0|prDS(m`_a7_4QCN@M=IMkOjh4L|MVsOoq=3GcOd%9JHKBC<@_0-Cnu=$e-rAEJDxriMFG zRGx1RFADsR*t6D1i|uUr$H(X0TcK#J0T3_eC@L>C@1!mEf%|uPCW39Puw)Po=L>?_(4UdcWp!e_^ zx(pGLQ9z>B1&HgV%Wo$C7&)`<(HI~!W%}D~{vXx`IML}+a;(WTEw)u%$9sH1+tgNz z#O~uj^rjZ*1|-h}_Sc6e%6h-)^gEi5koB-|aB-@QYqwQJPHmUz6*iG9l5wdV?+x=J8 zi>vqB`)4j5yoQH-{jeJ^nN1-5$j`pJSb}|_XxypAg)kO&dUTNDb??nfp*>*Ty9^%#8v`cbEAE(M^Yv)M7!5p+B+~LP#S) zGSAX&Qy9hCzIsBgN9$(ne|3AOTe_TYi#NU4vCvPg>IQ|DHT7FwCKT|5jak07!}!_Z zoZoXB;4z~GDafk{kW%jL)>9bd%ykh!pdeD0#5`?&cDPVrw_y3s9by$weO#gK@qZCw z-2dE`11Nr5zPWLF;2S1TKsDK;KW@O~J#&QBY%7&!kqZ5KVBOb45AG4{PtOO56m>UU zp=!3FocY*#!NjrJIbDZhR{4OU>iNlgF~*Ht8W@$DqRtYBW7WW;U++K`r+^n!zmkDM zgY2W9MxO8H;UVOG@-)nKuR;6I;{*HR^i&chT-&wtDIJi<%G-P0;09<~&@o&6+LKKg zhgez=`5w{j6*i!j83reYfS@LHE$t1$s4(x)r-ZEv5-Z(1i+1dZc-(z--IkqzVoHT4 zoo*bhe-Zjku;RtRsx+DXjeGo_njmjEjyzPO>jmvIVq!k;^c#ZK60oF+q7?hWGA5eQ zGJs>^P#~J(Ge^9Hi$Ph`2G^rFJJjbxL|Mp8La!+iY9`8dsbai;ach%AaDYHq;{8_l zZt@n!{Rx<6G`su&g$|I0X5VoY9BRtJdR>mQKC&QekaYxegi}x+UlfFeq9E96w^~-4 z0Dn`}=B8awIvzcLYVdfE;jp(kotl(kPbSZN8Gy0brk2vl^J(uyhqYj|M`0FM+!(&R6m&i zT0Eu_?I}3gTV>3y@`s&z982&0?b;lmVhbf`b&7YPM!Dzm_yDpBpF>eJ^5bEp?%hVIlCEl7xveQl z1KKLEFNBu8__1DvpilZ|ZE0Afj!WQCNW~uNCxeS>RAmliloXw+>{_R`BE5>T!mW!f z-DfM^e(@y#E+uL<`DWkE)ojS8F)B#I5&Dv+r27I6$!pY0p&+B~5td$NGfO{s7R$*u z54M0~90gK&8pf?A?Abe$y%Z=>MR6F&oA$uqQ5-EwNQ8LsfJ?V0%#;M*jG_|g zS!4Ma`nL(I5hSQQRSykfgsec_L*F5mF_6F!uMq6lFeA9sKl-A3ADop=sT!*_51Jm) z6u_;s8H!NB?i_BMRPNX3cjO;r=^ z-!h}w5}{#s${w*_y)T-KdLw@{&89bf%>^u9-fcKO`p~G*QgGR_ZTAy~IJ)6KCKNh9 zvFa|)orcNRZZXnEx{H8Jg~M)_8xr{9p@aWrFvY5J%2RQv6ofcK*)jnMx zG9D0uEPq5jaIO6ITD??>yX&T(Gt}==00>>?JT&zlZmQ!@3TOf&S|O7fjWeA$ z#YsVPBZaYjZ8-ybxjMaHQLNo+q7SrMV5!}|kc>pFT06W0s)u_dC*E-2yhj@~uHie{ zwWqz%YD{}Yr|TVBe$Z3cyXBX9o+74d!a>%(OXAAj>t10_<03exUmxz29;jBd(DL!o z_OZMZ*D6kM=|h{*wA4AFzbbjL%{OKAa;Y8HH>W=^d6$ngz2PR#Uu4k_(-pRy5pzha z37**rPMh|0|8!dd8tEsSLIHv~f=jtXtXWYyH}otw5mA$-yRq3|Y0~st_$x7?p?S&& zGZL?~q@32Iyb6YA*kxK|9S+Uerit>$xax=;P}Vu;^@N*aD{f7OslHVQ>3Pr zrme3%kMy3~3awsHy?Jtb0|O>UdQxE76C5ga&~U4j2kbwi5L~|O zp_PkR`XXRZq`AN0kh09#%ZSq;2wp{j0HET+r`_SS_=yezPCWHMR+l`n9-1%Nz@vxq zIxK^AW~WD4?5V<8Px$$bcKPmJFt6}PrcwNi85dg<><3wC`##tA^sX$S>Y-|JZ265r zhXj$T3rPcgfp1x1P{*O@^2dN^T7J`#tov!QyO+IK=~=`S5$qW&JHtpN@(+ZDXonG?xKA3RHy}KX$XQla8B)@g) z)t}e+i6%teOuSSyn;g?W*L0XDK82N zX2nU}b-No@>ko_c-wOm0noKV zsua5qP}@Ykf-#zm55Y&YtvD)cqey&}j=!9Nv889n@<0qGkL0sd8GU~3&PVCU4-l9J zdoF%ECv2tYo3=jq-KwSx|B#rP`z1k`RvL@#<=sV!PxH!mR8GT~PM{Y@wau!pv5!8Z zVx>3Y91T+q=|}Q_z32{LJz9@l&sD!Dc{N&<9{)Zj*1z|wJPKoPF_-1<;Zbf64(`cYZvcNMcHvNrHuX{U5z8~y!jj|daNuNM}Qn)-; z5vgQdb6&Lln{w6wQ^XvrugS_D=@$nWib$poKF?l>1#<4OnxXv;s$_~M<=NclH)pXy zXm1hWYxJud%G$^D_72-217t9XK`j&1^qDe>6+dOcPAUuxE6R$#FY}7gM6!NIzU8W1 zl0zLk>h|B^E(DFHWiHHbJ`kOk#21OjxsnBJ0os2un@L0ulT_M4L}%}rr1zefq^@x4W>HLTQ3&Tk3$@(Ox#gMWqRk*yJCWrd+O=5`J^i~^R}pdIt(q{@%v^S=gn?e<*@1J zk~|Zp_T8R0HD|Ws>KyaKQ$lYn6sBj$JGf2-XP^_s>u;P?4(_6ZS(nu6z>mma;T{>8 z0tG8`DpQ57F7tx8XH%KNa%a*DX?;JD3Nx{VeAq!(6RE~Q%YN)IX_*t=GI(axsZFf&JFir`5mDzV3M-^W64VSPs~^$ z|Ke|{PO;pydQc9rN~MNZU(t5!<*!wNQJ$-f9#c|e6oDJ(1Gna%4-U4NdXYC!6vH#| zSlQ-W=RVOZD?ODMl&muSPg{F(zAZYI)+>1`%onxqoHgI4`6AuZbbgilo(Y^c^~_Il zQ6Q!EDcqGSGk&l&>ImJKr!mQN*};vjyOgKG_HEl$ad3Y$BUbJSj3_AXYTdwZ=4rw= zQ;R;B5p()@jrE1c#Tctdlek095wuMPC!i-Kz;Q%$A~|M5=poOWpOM}{(ya~WhpShA zK6ur<;)9Ns5&B2g%T=R1 zDvlcDVh3Wtg{}6PFh&U5jCsoCs*_l`%~D-EXnxGwv*4jw%#EUSt-8%q6=a6z3+u*1 z2J|$-hBUdlCf29awuhPB4CgAg${a|c0Ss27Bj=8|SwOw&RZVHGPCG*gDjd?5utAMg z+U!wuNiDj#_FWP0^dS;KtJ--T^BA5}Irruqim6{krEGK$KbF0VBWL*cXVo36Z<1d7+D^i7&eHq@yxBiG}-KRXOD2hPV1EZ2} z7ov>nuD7|y0!n?_-)HKUpB@W?1D3ky6-U1`wpqP~&Nc6wXX9mT&u$2_&t9Ax*}_d8 zTJd2;>S^^((iD;^4b%zl{)LT4-*6|R+7eQ4MM7vkz`MY=NnAv0#@&a9% z9IjP9~?iDO*WmEF>B@1!Qxv@Uu-66?CrQ(IW)2Tqs%^(0Ss-_|> zBm7tA&U)h~ay9pxf>~I`XwC9QBb}QP>4#I*$GBCD3O64 zA&W$y=U47m`uF;#2>RYO=V|Z|q}x2FLz`jL?ej+6ZI?|d36=etykJ>d_mk#Fdz0)# zZMUD~wynHG8x`Y;;XctYTZ2g~J}u%GUj1pjLoY z);CyY%|aRgE!~fLF#B2U?t5EHHOQ7c*asC8>2{Ob2WsDa3vq?ojkDry1H!?@{$vI< zQ5ux`Bi&LU>6A%xL?+Fsyy)mVN>O%sbRv1zuCZ4`H4o}<(rn)f(^7`rtF0H3bW3b{ z!+Q7SdfZH1*bv%rW^?fv=g~rU)cExo<}JeqgU)U9H>%E8x)r?Ld^kO^vaeWi=h*uk z@#>-1JU4_>gRA%6>!Q9)u1_vn^J0H>Y@^roTw@@R1odV)!e&zAmp{(g4d0iLmE zxhYP$8-aSs=<(Hz^Q@Wh&%NBt+~wBW{bx6X&8 zcWTirj1=)64TNSsGU_^1`(%2EQQTv)W!nJD%dc}|#*YfVL1RProzNUk;-%w&P6}P# zhx|{s7_Cl*ep@h(S#@d{?IY8Vka=zyebTFO9|v8YBpF%-SG|-UlRVKb7cXT+DdZYj z%~#vy>as5QYuB|CWizu6VdQ)dGAmzwSmUV`P?gsA3mj_>Q0VviDGj82Ra%!n8ceC* zs~56nw%F&rK^$Y}TPf$9;N&L!;C5UA}sOGn5@U4=rP)#v@i_=JpATu@8BU zV&>nC@&gLG5cpJwmwu1Mz$(IA$;%7rqDbSlf!08nnzIU zGK{c^9}1~MrUr`}MaP>jSZf`IsfM6(n<7h#K3mK&flySNfZL~X>VdrX$J&!U%I*kw z^p}-I8NNEa5}h)wKU?y^D&lgaWtMZMYrc86$Edjs>cw2&P06E2(1P?+T5%YwK9j=0 zv3!h#_!$3+P)>zR*M}YVPD{GB=hT|lWVU}(AHHF;t%0H5oAw38GUb81E7r5=IFtBQ z=`S9_wUKnExlai`OCh1+7SEf>>Pq2zD1ezdxS#xTQx+5UO_>bkB?asw%8{>7x*1x~ zD13^yZae@oC6w29blfAiV0;7ewv*b_kcCVXmyfX)Y{(;_QfF74vn(!PRqK{(TK7%u z30sX+r@8i*$>YJ%{k)|WnbfY&riX$#Xlb0`wWC0ynJsGlT?b9JwiTrAMOG(5PL&qDdS!$W&q%+O1Gq}C=@i0d3oLqL~nnuai zbm0W&3S^>=O&`1e$`_N4Fy6IanT~Ame95ejO&A;{o#MfW9t;n_)Qq(>Rfo@h#-NcG znCpA`ZH79D>e&kBBdeZRk?pgxbR2VSlT-T?CO7uHFnI4ZN1ZYuwq>4ZQw249KK-NW zPfxVyJnou4Gv{k)A61_Z?8{5%ah+VByXskL{jJn_ZWy~U3$vXZ7G5!uTUdLQWYv@O z84VNnDeCMg%ga|r+e|$}4&Mmkn`re@mbsamdu`{1LVmflr;MBCS%EH>F&rhCy3?Dr z<(YX{MCYS!K& z&TT4Sh}*gyZE1b6!*Zy$|Jo&;vwfdrAF40VRtB+bcz_zt%#X>oy?^}09Y$8ISMpIf_HSgpFoZ&sDOQFG!@ zSzjMV<=1jD)Zr$}tN?7)#gz-N(I^>1?R%D`G#GlJh}g99d7$sM+V(u&PxKA@%x$|D zoDa?p9+5HIJIL@sSaBCMe7;6IE70F z5Bx{FBv2AUAN zN`t3Ip6{d47`fMs6U!6W!$M?=g@ww)uMeIw=WIm}bB7mEux~p6o$PGOnjo8wTdNTs zQhxS1Z#s7^{6t6J!ZW1I(|sk@S;bqw~az+~(trLg3L3fh)8(VB-RJkPyugYSNw+wC90-9M?VMb{MV1P9m&OJ~rTQLp~k= zQaz@J7DlknW=eF&Z{B^W8NuHs2CZ>4(sv1j@g*Kel@Szc(2rUDdpMx`l)|lQ* zM1Hh>@LtN`=ZRM(PLJ5iqF>W&pJxZji7_(e=Gkyxi><{xo^zuW_W&WYln$>h9wj&D z3rCa7&yU}H0^3`rHag+@K?Hg3PQ3^DCFnqEmhF3H`}l_V*(SD7lSh6q9QnSZ@O)dI z>C-b&O*Vyv7FE0fq9V3UWSMdu!Sl?rnK!q(zuv)b38}HsHTZVy*&zwU&HRC zWxi@>Jp=P1gCJ8TfwCn}mcOm=E+wN-&V!aMMtS_$nyFJC*Ld!Vi>6}X?L0OCLjdt$ zjULrgXKe&dzq(}v?Y;Z&XoGj44w6gkYtt~R@L1La__E>oIccmV4~B_1UmuhI4a7uWA7+Ow+_aqGp!eQ;s<-{e z%PPRE%kv_eLkFNOD>@V|o~r81SM73tz{G~B#(BqM>$Y5KzX$D&-uZ_m z(bBXg*S)e03-+3hvkW}ln!tmIbxe}`PVOYXrG&b~5CBiJCkwqyRgdzs+qRzjS>RaB zjBO{S_t|tw*Hg!#JD;E8u%DMS;MMpFx)yp_6!fqXzI~mkn?&NWfUaE|B}MQ2Br8UK zqKRR76lV6CHGj;cZJOwt96Qn!oE3vM>(|PpgYFH zyo#Z|oqYw_n)t%n*`sz$;rr!7W=ri`PHIxK%Bj@S_1_cVQYI1Jz@ap8b8#aquDEw@ zdUSU%FPn@f2I+gf>O1{(9-6E|pqnLw6#pbmx0sKE0Xl@y)^++L>soAu!$FzM3E2+1 zvR&{NM|W=89jIoH6KIw3h$Vdjsv;1=vHrPgSoBER<+fbv};YP!jT~$ka*r-xwc;>p@$-Pv+dlv_4Jt237IgmCNY{>6y^VZir{QRnCGGZQAMbraXltU%3yFC{w_OKonFIkx&et-lkKFKAY( zZ}VztIte^9a{Hk3_!{32JfP1d_HFXnO*<`V@HSVL`BxPG{-B}@?dynDO@dZxDeg%@5V!yb(m*o=p4d1%F^ z396-$lsh0PKKbnl9v{@K!#c~o#qnWJ$*rFwt*~W@AA7nNcFXM1WQsRw${&Q`8>4A& zTh=;b%tf`>EHKy;=r(9XW0~pvU_Wj9BR$f4{p_t|Vm6 zZ{4XfP;8wg@A}!QWI#M1o8Fitob`_f_4hbVB$Byija7fteaqaCUX_Xg1RI2sY+0YN zI^6G3s-)KK<4jyIVNnxabIdIzo?~6ip87DJT8a^v1X#U(D?bb^8P=JixJ10)Xn*NH zM1#J219HL@bXTbh7qnN`EhW6wnSLqIYCPP*p;L2qbvv5#Q#s7Md5CqFmBT(;364wyejI9q+vk0krKf3zs4w9|AMWJJN0`Yu0O{ zSmk_ZU(1CpZQQYV%skFihGA1dWEk>hF!R9~q%C>Hyh3Q^Fy*FfF4y|$Z5jnPC2eY> zkqt2h;P1MftbxAQp7x>T{6_ep1F{}x$Wye6lEhg6pmBtj|A625ZT`B*?osF=AM4qF zhc#+Os`>**wP!=b%KccUfRit0M&R}o<&K?YuEz7sOcxwh(Xg%U*`%R(684qRx(>K- zTT_Qav2@qMzn5nj4y@{o%@=@{U124)&Mhrb8!{c5`N)K;bxDKa}l5Csea{ST` zY~3Z*vqQPmL%!A)Iw?ZuF!rEy$rdpL817}jOuq%-ybCn+W!J-|pApBWs+b;uHyCIQ%;x_Y0y2vippe)QC`vxT1+#aRsi~Q-kP{gk6;X6V!f3fp@?hk3YA(OsiXc=Vo2%$Qv1# zC){TgLvC18WtrbonCamvteH-Q-s_!wa%cZEdW_{E=%+BVn0d^6+^QR$fXuW;YC@vc z4wF}qLl87kQ$Oea=E>gbvqyP^j^(`ejsTM>n_Z|2u$}=%~j7LB#U4S z`4n_=WpX-31SrsIB*MFjv(QRyP4qEu&&2qZ=s~qq%oCqMatlq8bTChIQV5)eAs`zi zi1fcld!HD(78P%|1|xkY^zAhE7*QL2vaYofR}gT9&&+BbjR4! z%W;Q-9uy?PR5YZp>~cnN$<*ilaZqTH$6@N(^dlpojj)&4ZhxFV%Mh9452N=_ zDzH|2_>}1Bf)3yP0)m{O`DZuC!#m1!NSQy;GKDt6kgMUF`dAie<`*4JasjiST#z}! zwC$ma#mZdM{<;z)J6JZK2pBM^3G&_XguVi&@YQ5ADWpSBxZ*38`vrK1coMd zyip%zy7d-@rxIZhMvoe9{2LbZdC}5-%I^wJ!GN@&p2E~gU>r|cql5wGk;x=Tgdz7w z`c-bSeM)#)2{|0uF0*=@Ua~;4!a2$6^(yGCCPf&z<^Uj}N zVJDAMjQ};~01(!%5EK{5m!o#;3pOE#UJx!5(kAQT!)qi`{M&I%iE|tN05Qf_x3?2+ zId?PCf}AtIja7@SNjh{Rx2JG14e;Pdgx_f1Z^g<}VXZpR$Go1Z`0Vus=vL!X&SGGA z-XrpHD|QmjN-#0Nta3uQ7htTZLM6Y-o??QF0`Rr0hCY!ku_MG@Ws~ zHUZc81VnyR66S-ad*Y$L)O<=(KEWUlzP17IIWORS1CCJRmmWr?Sh42340e3nD7>$J zd<4>mK~Q7EgvX{@>9NpxZhBlY9wJT+s@V0gzPQd%e4Oul;TwU;&jAtS9#t!l*&Fx$ ziphV~909~b)L}|_S=Nj*Kg7UkB$FkffI{>K&P13AKvCsKjKx1IyyU7a`OSWz-}FhL zQ9%NsX#{t@mR{KlwpicHR2yD|trhBn@*SeKrv=9(qEgNnpJ-@-6}*-V^8*nT-SL(R z)S*AJwTGD}%%$D~=xD6^_PLa;#4VPZtv9s8tCP140=q zaE}D;v7~D+j@|>g>niBZqh3!w8?C_fdny=B!T0=Q-5VeqKYu$@p${GBvKk<2ACv+z zJ!=$QjRZuhj?4?TQ4jD11^#_OBNSRJwPwDE2UfBL21M|3bE8Z?;W7ZZu|S(eV_Uv^ z9vPR1^AipP?x_0HjZMyE^5K*{XqEkLUO;e_)Kr@eJT3ip%Cy(>z0zc<%#DN)UAMdiTH5kFcGuoA$$@Y~aSEEL-+(JJyObATNSEDNx1`~3fX zh6wnKKHgV21dRT6fqh9LE~|ZzS|Z;wC_W_DZv3m(Wn!=%Diehn%HM^p(e*k&;URLC zjssr}CjF$MH-9+@AXvtK@?zUb4mnZNY6hqgio#4-KH0w?BR;Hb+4gS_1J|L=DtUD< z1cm^hjsp=&((T%QbYp!FA5f!FojADUm<>a_0xdu_xCZzb&^SQ6KZHrLV?Ll%Q^)bU zJxd0F8y$wIX*^=P^?mo-`t^9U5mTlW6RVaiawGLM?i4jxTYZ2`jS{i=4n;=+)on89 zBEIZa6(k|dE5O6F26mR*+gNahhR~8w#&VO`GF29kO(wtwL8+fedI1bT?&cTM)`XC7 zr0*IH9!EJd=Rdm$!M_iuoI;$TeL#H`#bz==^%zA#2JS<+q@@U;wFG^4hD1(Bq~+d5{d+!1luR!^G5ju6O$P3^SqtTaH=f|082`=+$p8qd z06`lMfu$p&M(H~Cd_{-PpOcY-) zsO#5YVg0KoRms30g-VC+KwWbw?IeETkc9nxU-QOt2PBr zDdbu3aWl~g#66$>(dY|baUs@TVv5frU~@;(9dKK+2op;HqsWp%;*=uJQzuJmTuy+CrV4M<$RMn)TV z02=`?zno{W>ZAWdtfsRGgFw;GwBXPv5CMC+6S07%fbn=tEUBcQ1_d}k2pGH(ZGf_u z8>n+r`RzZw-5yi468QnjJi|ICT1KCvNoKHOaYLU_UhMy21@Gf!c-i6XHgKFgvh3@-}rP5^t(4zcHuZ-5|erZ#tbAA9*?8N%rel2wpsHNfHM_~m*`eXeSP_58TK1o4_b12h-jL-=tEmb8h}Pa zf=Q~)6SSXLoK*vk|{#w`Uc^*`dNOgRP13IE@6!bdD8!737ItOPbajl*CQ z(7_g+L%kn?lllb*U~)j6g&lkz_dj+ zUd>;?(IL#e;DU<5tLZi&_RtFnOxA`5_*|c=+j%z%qeM2`1tmt3-{67rm?Iu&2gpOB5R;xTx>!6&ISh+<-hxt4^KoS$Ceb8bbo(!453QQE?yH7O zgzy@AY=73b?FBt+Urs|hZ|@ee2i0a|_%JW*StX)9T>`Q%JkW2yLqcY-yaKIlKET@4 z_x6DOXCu`TTtQL*Mk-_sEFeN`do0+qA%F{(az| z?)z5rz(@ejDN^Gxq$m0%_SC?-R%T2N`GM zndgT4Gc|+dm_#T<#yudx2kU!+R3Jl>jFOE#%S<4Wag}8__RpF|yZI(PPtjOe$_|*V zafU7e^-bfqC;ZD_nQ{$w9Pz(f8kpNgMy8K`FcY?Qv85mX6j*=|qKX0zY3U{Gv|d*= z5qOUD8s5Gh*^s+N18arWj;9x!n58J0bBctS1d(USGRuS(l!2bv;lTp2_c#H+ak) zzN3DI@(2q}ZYY(3D=h_vg{?XF6}Xc*|J}(?K{@f+IdVo1DB2?Q4c_sC6M{#$SaTk^ zY24i$!E$c5z77VPPOi%`T6fTTTSnmJb-}#q=b6rvzc2}1&ZbP=Vr&8meA}>C_ydDY z2~e#lBTC3fL$Y3Yxt(D1#8#(0+E?01& zZKnMg{c;i28q0m^8UxMA{ydC26pGG61%_RP_`bm$f&(L^YS1}Mc4n|{em^9GE5@nZq z3B+pqP*vv^6O>yVXRBHrFAjtHL`CR3UW$m>?_qqVKLU4hzfW(TeAoGWV$kZe6sV6H z$yXAVUGH`F735#YJ{Ihl(ew~Mnnq~(`5A!)qF8_C5a3Azpci5Ru<=K5sxNpz0d}h6 zgQ$g4{(=QU`fq_yAQniS>>eA_3!0l65BZjR^L%=A=IdscCC92gz#2|2#c#jx4k_8n zYs>J=QywSO*o*akESVMRe?nvo{WF{1zwokaW%lMU z#48Qu7TW0))>H@}s_iK{yLaS|gZ16c;tza!{Lu2E$H!&6+>ZhHQR4XA8J}nrWY3*Q zkSk_zXsMkGtNZ(&jcTOw|HbLoqG_C)%nl?f*OlRxSf6Q)PEUCB@O)rfc4u{#TwI~r z;cPASE=H+pHK5dy&!^)@xSU#Y?LyFtb+Z1AP~yJi_?Gzc0=7g8OcjOx=iLmdOX+be z_Sp3vcX5=rCv|ovwer!_f0f?wm(oSeh|_pRu3}TPY+Y!MU>u=I#(hQ9Ish<#9E6FV z1foPInG%5yhMD#nG@&d65m^Aco`1`>-NqMlmgt4A`I`$MQtAlr{J+}jf4$p)Fq{#B zoBPE6P|p4^x+hXQX1GIvx|uGUact}l(~%-&bm+MQ4DVM+t}gfLtM+P*G`8AZH1gg` z_NVY=7&g4si{2IHNYi#qrrs!z4V|5cBjFUGn?AOD(D#%HOAU^V|5{uwdRLrd?^={2 zznDaIqz4vypY%lf)nLO~+G_q$#_G^BUTxkl8mk&x=uQ=S10oyS{i1( zj(e=b`1-Hiqc6IRA54r7qkTo~Q-4rAGx_wcnA6_GK8e|22f1KDRgxUG+J1L_A>;9; zZVh0i1D#>FBDwWRh}_*|P-A|*RdoCQr^~LLpLdhBLx)zX((yGY(;Woy=4Hc%fgGi% zOSXX6!?v=A7;z~bgGbI?-cHPLG7a&~hQuYVEV zLcY-_D5t+#lh>|7F%>_@UFFTDmBMNU zz1jqRC-oN@$6HOM&ubjd=U`>pUc*yiQQ0B$2knfm-)^qVf{|#S*LC%tKIMWzrS9kbx+8Z6lu-y;8=)9!*QOp_0XJfO2bFIJc)11O`@b_iqqrPsL#4xaits$))We)LW=L-8IQvT z%{S0oHmeW%zrYIDx}6`P8V^Gpx7zsW^F7PuepMKCcw-64`nQ~)HpX!qcx?$aX(>oY zI?dr@`m!8wQnPLG!!fEd@tnn+}La39&O+hix+?=Mktx_FV<})Poy8- z41cMvdUb^1*?RES)7|Xezw_iamTGhb^_ly6;A!U6v(a`g@KneAxgH!62R4F0uKJZ| zVTVIFT>`N|f&?5;QCgnU!0cNl!&rtMrvA4SBr|5Z9yx~5hE0O{OaYNZ@kF~MrLeXL zCRGMdvP_{$Cf9+4C(>1ry^VoHr4W2-s$W;_>EA%%jlgmS5+d0Rl$k-Ka}tn?7$fi@ zMgZHab|YFnxE#$k3Xxfv$K5Pz5=g(871tSG&|g#72Dy?CrJOhB5_w)> zh3}?F@N=A&7&gC`Ehu~Vxl4x`-BzmiJd@@3Wb2L%^0na~hv+eelz_@w}HDb&ApHAr`+@K)nzYBuC8HF{3K(X@$1FFB(oJxTlDyK(Pl)$ zPuRRv=jly937IbofP}X@p%Gw_=|1M7g)9I!WsLurS;Jvm$4R)wB5_v|qwd307A=;w zE4$wXQS$!gkuVQj5Sv#hk`1kZW>2t7cN_%{0n_ok?~Q#TI=?=8ApUJ{gAxopWX-X2 z?#<-?xgk52|PG!Fo`}lLbIay)03-SJ7~?T zu`@b981fO4=ULnPQTLZR1}T`-^*H0nm?yMF`+#*De%Yn3Nr_sCjbChBj-7W{Ku1e3 z6DeD1fuhHLc4kSPvPc`CQeCz*&hp@TJv8X<6&!UoFtgM#h7MXt-#(c`@j zYa02!o}QlXnH1y2nhv*PLWYtwnT9U$*8X$n7P)ssZKVDfjlPjH@b)<1_H6PXJzL<> ziX2oraF3(BavYMOU>mPlxTke=PhE46&O9}KMaeQWx^Z{%a93 zq7b3rQz?0n;uO@$hD*Wc?tJtTY6;95prP|9Z}p~M4y1*js2GK$C_5WbQni-A3(t$_ z00AUHD{Oqe{;0N|<@BIp+C9s2cCiDqhBN8Qmi{|fQOH)29)$DtBK*gX4RK~`|KD7IBdv~l z$EF==NMkfj#m?hshg_W?$>WjV!G8kyVx-*l5@{eyKlHi=_PFM} za8C(m%88JiOMTRc;n=5;%n4Izr^<7pWt<(&Qgm+)6Oaz0k#~8oe06CDh?_WCX$)e1 zN}D4s(xKqRAf!-hfzN>>Q#S{yQ!r{9lfREJADAMM0F)2`*mnE_c~ogY-d=%(atCkt zk2<_+1}$TSz422f2|g4L)AZRm}9_{=^=%n3fm1%)ShL#J``Kv+&amNo3rA19yh!DXST*+qHy)(&%t0{CiPcQ zY5DgjU*+K#JZ9f5l%-08U{PxQe>{v!o-wLs8Xg|M0wFRS0il5;&+&1E^j)Hc;0gYup|IC%kGjJPMAMLwrsWs z3H&1GQx=&*Ap5C==lTwaY_=a`e}_w6ffis5j0(_RK(1?512jYdoTcSqg(|Oa9D^bq z@E?~0Tu82I=Xk$vC=AE3%w4bXT`A!_LL7`86SeB4?vZ5n5R~4J0n!Oetw4Yf=diFZ zNaO2m55Lxmk7j|8TIclglS5A_6e2(Q5Ce$X!C7_-noS9eAXq3sd zqU2B0+q($LKQ2Pq`_zUPwdtbo)E!>9M6TAc2CbGS$i@{`T6__sSL-vkFYQoWI9;FKi&xW9Rx+Lfmp_r+VBl^e z&{J#W5bkIKmv%`U?Ja_9;1vOgnEqoxerxPJTly^fY5}B#6t{w)s%cHq%=&q&!^L)& z(@k}9?&W*w=34vN0zw`DC#%XXAoAjq*z^e1rw~Lag42E*<|^|L=kqbxE>fF3s(=Y{ zqCuudE8=tjN1k6343>R2bON%S>JCTt!Q+)cdeE(^9X7Utr(9DOpGjaP^`kRRgyx|cX3-(LTI4$vV-!c-4eyruB| zz}75~2~-sBUqkb>*lDQ)g)>xz>h03$gXOYhe$F?;38*y%)(0*n50V1H(^{CBS&oJ2tZ`eLsJk|N; zNL-~mJ7UbZ%{IzH)_`eBi-ydA`%{w zpqZb{!hu9}2gkqNNe&kVs&m=ngh7V-0ZZI(29ne|!kRd#^_~e$BQ`}5 zb49Z`GkAIhr6@$|JQtjT5`PK8z9O+7 zp6J!ASL^q5HLH3LnP_2!za`9h63VGmoGxJf^Nf$-P=A{*TS0|r(=#65D6WuQll z#^l3_whdR`2T6L|c=u-+?$2rr(XhQvXY?8lvKO&A39m z4<=H{&nDsv1{37gRdn+nu)f#veOyN)Q-dVifdkjvQmoaoTjupcr+t}XxmmlKqOj2y zEBzu5ICmc%%TUnPk>1y{T^;nZ=|$#OpK-`(kA$;^_Ot$+e@SJ=E;g$0P1?zAvx+1y zJlr76+=DWZxI18i`h$l`NqNCUu|$r!2NKDAxHnU8Z& z>)y>;UHZ*VgAGm|i3kK@o3ny&V2Ez~cD zj9~Vw%97_^PGklP7wkjo*4<{rT>v&MnqB@$S**^TE{_VUjqz24d z5o7_aY8N$VzSJxeZf}1i`ahwAIpne_Y8CCJTTF`T1`xp~=sGzj9L*hvO|geMuLSY; z%rk7h4Xz$A4K|vzvbG*v-Fp2#k=1u=<&Z#ShqQ|}-#4v(Nl`3CuPJ`}Wm;#Zb;9t$ zz8G6p^xXixn7Us!aK~H+;*D2Es})MH0Sqt!a3AF4bbYUG&;ZqpnN$OzS%S}ZBG z(3;A=_@pap7DD=vZsyxRu7>bQbUQ>}d5XX|EHDf?{RWV`#iT-0fgRh(qLn+;R~NhY zk+ogSyVpxa8<*dvH5A&vPBXZgdDB5k>;*VRj0f%t>)29n?`N${vy8&jhFzbKW-Pe<$N9^?R&;FoSE=MTsfA&Br$*WK&Ojt2_;Synb`3 z>q;r$kPedDey;@hfNULm#rgcwaoW18gP(NMk)hN*2a$B=F;@O zy@`E`yP1YkMJ{GFl>eg2& z$^DUXO7i66vKPPb@4-x*$vp2&%YjIWEtEI&z(nKD7oaTH!%7flXHN#Jwl|0m$ z8P{06Ad5`F|6)TMx`Xv_qD<1Cwgejg-WEew*m#cea?i2fh~LFlocnloaxYfWUcP_z z-r_)c@zvKm@w?k#4QwmLCsc84dhtHt3OPhoN(5C0N|v6$({a=Cw~wPgsT9tpP8dx0 zISfMZy8M3UwFbyhB41=>V$y z)h7}^-Q~hMG=iIh`XAL0)QhsaC`B)d=?eO%*$c+kx=;$eRgjCO{DMPK5ok^+wJ7X} zMI|()^GE^BV3)U>8lo;x;M6)i*9W&k_^UD{M$nlfaCLO+s^v7W&r`FU%K18YpKxgL z>Li}6Oy00d#9pi>Z-6;Y_w0MdwiIfxZ_Ix*|M(BSy41cNdqj(a z|G~YDoB#j3BWQ}JJf9}S2k-J0J2;Nn8zdo%VC(1l88+v6~v z4r5icjG#urbLWm5betzsjdn~q0{fkA>-x4_U%Q?gfFPrGXA>Z@KCtLVV4sInQ-H&a zOAL z#HctQ7n8(dWMmyjb{A4pe#{)kO?*8Ys%V($P53j2qt16JsxEC##LQL0KgZ0NWx>GM zBfl)cqog8tZ>&ki{k6cd=MxPvzplGXN_0Z2)Fra7p;TT9;6O@LOZ8MOPaiLra?5n>k z0J#2+ubN+sdcX}k3RE(zfxG_7XI;*i4Ja=C{Q$9cyRzPAR1rw`Yj581d|-mJc3_lO z{yx$1UgY*R`tHq7+#70>11_Tw_MOL`R1L$0#}*3=C=a6iIE@{K6E3ML6bP~*BxCtK zG+(BdxxY+)4pC*J5hFPIe$%CWtWX-KIIo1f4VwvTp85&nFGSz`B*5QakS}c6H6RvU zGdWYAX4M&pZ+SZ7OK|J$f~!FE>M5AS5@jgjFju#O#>|!(CKBl{0R)HDROKkn;YGgy z|2bl+38@IS(1hNSY=nbzIS)vVbd1WJ9iI9Ih3Q9DOB3LcPcAFJwhgTN36ifcNU#}} zt}1@zC<|iuOu}=mX^d%Q{-n(P6?3KMOady$HgP~8-8s9Sa_pkA|Ec|!-r{lH@Sb(G zm?q}$Z5TZY5qWu9t)86wrzd|Hza_Ao4NiaUERj^QTuGa?I?Qp1qc{0g+!ISDq3%ri zUVOD1D~`{a(QT>}a+gsARHxEOvTZ8PwXT&C zy{y*0kfP$ByY7#ndse{n1-eMq>f6o31VbscmMbN7Q6dmv1>?)^F1 z$kL_r5x?b9;tfgh6Vh_y1a{0?o4ZHFZV9Kozl0ejVmDe!F|EwY1sFPwY6pL_7kjzo z-&`GYR(Vc`R@og3)iX^R{n|Qv<>I}*nrk8#hs1{`XwgQe$MvROUwUwyjpK@{#YAJl zWp9cC%}MBZ+IjkH-&jxl9<@J{srVb^lvu8QON~YK|2*IoI5tlOT7bVGDSDe)pm+Zb zcWLks55JJrMy4#gn1wQq`r!{=awmR`JF`_68O_nyYMO^y)${RgC*S)7OnjN@v0o*> zCI3B;)q4NLS|$B=(4vy~(MOTdZ*lvH-_q#R{c{{DI!ZEX_1=}%2c`pD}IehpO=y+JAj| zqRHrX)Gan5@f*ZbXX^2Lyj2mtJ-oEtv-p>&(HI0^>VS;e)-*B zs!8Sj6`tp6s>b%6gMhmK%;UA89VZbLp!`FaRU3!2_`m!DRzNQWZuJ$&R zI(hJ5$6cw}sPmLGy-bvo z?Y1@;E4I$vzHWWMcj<@h>xtU31fSytc{7G_y0`6a1+5{x$%xn`2C&@UnkB&WTE zp2yNH#%f}jQ)nCQjPkrY2EV!n5w}P4-)Es2LAH}rWCT*?$Mb2`jlrsjDVif#}H^2Pa$MY3qFd1F0YPP`%!4Odsf#$4d7Xcr~&Q> zAdyIXva&Ys(pQ3+--W#kmHt8y_=tAMx$hLXn-D@GitM&sbZ+Y)Gd`Hv?9OC)IWo2r zzYYjHe)?V*g^-3K^Vt~1enKBknMmJk-B~szfV!; zeI0$VXV>BSqGq?JNi1ePklFl8TyB20f-^Ku*dxS=e z%sVKRi!%iXyb-46XmJd6JL{jH)~X-F)IET(ugE&~cgpD@^@qe&LEG0#vW`X3^ymowq6tm`| zKDtfI`>VHnBtcj*EFCS|0DhNq8EAj9u3AC7v0+Xeac@vuHqa7RAz!^XJDX zWaNhG$GWmrXF86d&!6pIRIi>ATwDT${ANl__o_thoR_vQuulG}wpOiCF*g&|#fn_j zy&M9z-935J=%6dy|2}ovh*5~js-VdgZ$Wva{>O%(?2#0~eW)&+f zuD2pK5p#CV5%7Jy!3%Ed+NkiSTYiK=oi2*ej+Jb*OB%crspU@s2Hk>UIiEzkZoA{> zq^|aD=k-D3x_t)I3r7A?PVKiQw5p=3O>J&pOMWo%Bi@g)aARsNLH5wt*rR%o=A8Q| zomm!)r$bMAUbjlu69mKBcyB(BgkJE5a`pWA2`YrjBek)gknd)Y|A_hyrY?%eebzya5opC@P~ocnlD zC~mErvM`!gOFXC-^T1I4JeW=E(EZ?3u`?7%o9O1JhuZkEXj`v&@V zcN>o6qc-rj-c@OSrQMARZIUSIHiD?Xe^QFy?DAT(Y*iU95_b|kLIWmc79j0XN4`ED z5! z1W@FSI9gif-@xv6mTk8i9~FXzQ|p}e;GIu}P*iv~$R#Wj_T#VLSni`9{;se~Wf)5Q z7uZ1=lI_)6He@=MoJ?5n84m8?Ql1o|`OTMptW+!rd zOr=G|sPiIKlOYw%cazWnEmF{!ctMk}tp2cFX?^R(fcNocP|S=kA%+^7aYtLYBq?jF z6L-%&_s6so4abHp#y|9t&1F*;U}tOoxrxwP1~#Ovw#yM|{4LWDw!k!0XeDvihiRSj zseL*fALdV#}VC8f_J zliHRh*RBt?kUO99!6WnR4datVv$FOx(-ttoCqs=)J!ZHa7i({+w27>)lF(rWr5ES3 zO5N~kjCBALqZ~9#Pz=I)35Mv_mxbH zfJH{lrLsItMt!K#a~aT_s4LQS4?NGBo&ajP*AjbgeJo3*5XK$=M}ij^);+L*&QFp_ zH$6t94V*my`cvy-WCB0)k!(rCE!_n!X@g)Zx`0i@*cCYcpE|$XmsEy&u9<(AEj_;+ zD~XAsBd4_7-+3eAjrTd*snd1zfgF)IX}#$sgp{%(D&UbMsqyNn}~eyT`(EfI=>VQE5Ou9A5EIm`%=eWZ|lTSoB{U{ zNomU71tMk5!9BpKz=mGQ);r^EhqhD2W9Z71ZuBlwRAZ8HsH7wSW49rjC|~7F(SZeh}K$U0sm{p*^SeTqUqa6>$eA=O@yx+?pn!&l(FSjlSl#5BS~= z$69NvK^Pl>(e&$CTe@PTzivvlnMUY)pGxS|(x)-LbQ`qihcmbTvj-sAL48$-hR}Tn zWZ35VRZL+?hH_&b$WexdaO2_>dRTWFk@!ikF8#qv)(?}O3tdnJgH_z#cR1VCVP>u1 z(@h-!`HHL=5OJ>od*yaqWYGmQ)MKIZc?8cNkdquI>V1xej2#fUVaIu7w(Dz6zA-R~unWxJydxwLSXo)&gXaA2 zBMPL&cG`O_|HXPTUYqdVeMxvrqdD@!8=ip;CR461ZeB7p1U<#^iA*8w>Fb=>_dh+q z0Q8$!re4O<1kJ4N0xGEhVr53O-r&B2YLm4ANAeRv7mOgGAyeLaiSIr zCQR2>YtSNP2&xjJkeNd}NaM-EBy=6PD=RX8MqnXtqj4xe-6u{gfLbv1@KG1zK!}zr z{8D~QIZWQx7a9rL!`>P?!fvx2-|NL z{`EngCa7C6j2|K;f?8HLg&)C!A3+|ys3Ympoy^M8FGHNr=Gi5S*gg-cEPDLuukMc3Raylv;w6Wi@2W3!35nav_ zf9cbrI6I*V#WzHyw8dT}$E@zS{$x)pF);$MP`80f^ebxFS<}msIYuT4?kO`D|M4X- zx$Ns15y>ctfD4r7e{unUc_(2H9Qkh)gINhMG$ERhU#mmUgKd=dDTFt^n42R4xod`` z=3b=o$VzWnxR{Bi5u-L~`I~F~89?<8{2-Vi;#n1;q$@xxN88l?`x7;z@WkU;JK=tN4m5gzYya=N{j&{_uiNLQk=EmZb-lWQdevsO1u zne7J{^E$t=>E|JD5lb9Me6##hw62FmqH-}zq;e$m;%SduUFEW#2giJ&!c;51Bo1=K zQ!u{FXV~Hh+5t;a(-l6NKO@S9R*~VWb2QbC7XCPa+P0^m6AjBf`a$(;wa-Gi{i={G z?N18b5 zhoHCQK*+HlH1%gBMqtUiOisDA2j`OplCaLE*ew3lhN$mMm!$kPUk>73F`b6vBqquO zqH^3N!g2`S?Y4-5eBe1zT!;fEZkI_4`qhOZB4Ub>WbaZw8Vufm7{6^65k^`Me(j&Y z-Bk>8Q~pF#!p$90%-hAqD5h)H3&$ZrNq>C2r1D4NLLyxMa^!U2$x}udoS}B|24CUXJBb44p(eZolc=P3#m#zwh1f zcrf6Wx3U0s`zovdneU?mH9gl8}^*HjB1h|G^QOb;vqX~vZ1|py7cR)PBaqMY2Blq zE|Q53K<%T;bd`9eX&w6WoYXxdTXU;=|L$bjagO6lUO5h_e4}?at>BVufM}l+ey_1J zn}g@s6a9)jSSlz=};T+krScOd$%LXZI#35!)EUvE{0O z<2+kTw=LidCsIw9vNP~y(Vv-&E%p7OZZ?*>#)Qx8k9;+uS(`!qkJ-MPOCnIRCx+m7 zsWMGvmYBv2M9dkdEn^ked%`Dg=z5rnQTV|MCux^xyE<0l0O8NmR&xwJx|g9n9` zgRw1uLD^v`#46_rMqF~OcLqoK@3rc9Y9@+z%#ZzE)Ctb~VU2Dcy%aU2rX+E%(4jOY z0BW}8pG9Asn?u*AB(-QLX(fKnzw$6L^%FW5m!2c9_1z5*NqLHeLPUjgi91hrY1Fw! zc!Rk_;2+EgQLN)w7W%8Qw1;$I>cN&`Nt|8LmGgcbS7Em?L?T2U`8e2$c%F`#H0MKy z5I8J9(;zuMI<;W?#gJUl7m4KlzuvqI@_-nW5){V|oNkvJIrHAO{&G3mi2PNnZ9=Z= zo{d`1gF^@rLsog3Zbr!w{q7>d!qL?nWvro={Aq;_zBhX%=7SB01&+U#e@8F~(7oF3 z!TB7DWa30CfZPmP3|(GY2{ZQYJ8?FS_5p0}@K)Ma1gR7xFX~35UUpyQ|Xcg zZbB?Bxyy945@IMc};lB%Et<4a9ow*UcZ0!1ttVKG{ zKxVlnJ~^Wytq%K;N`b?SwgBi(Cifg)>}RU^QkPxmG4J$QPcyaMnPw4}e?tT{i?No2 z87h-mEMnq!*A`z)8d}(PE4bPyJ%zF0(MXsi*1Dnbxf#vNPO`EU91ta48&fm56#b9rfE1o+nSi-b6)bE<7hoBPe`P?Gt{U2pTf#H7f?@mIyx-uKpq>C$vU;8# zXy9^nV}NOLu+p~7%6%{?50i)Jr>{ZGOwS{wh`3_?%h6~k3BEy)3utIY3u%7Q5LH(A zBe`Af*#Y=~-k;v)VaXN*>0-(vW^0sr>LT)jrHhU(#G;&Q{x{iy>66ek$`!if9$`wq z71t)~N+#F}YGx3UVTFph0R|c!oQnn9W*$uKT~I>6 z9EC%G@pdKYRgMas4(_?GdQT=tiI4$|PS)JqzgdGUd+8IrwNmPX)~k5@J3N99<5sId zs6CY(AKGvjf8}9G9>|O-ir~1(cpi%U-6L0r(Lp)9Q)Em7%>x;iTw$@i0MOGHQ}%B| zj;GdCb>g~_J`&MYIiyU-!yLprPe{G?PU;<_-Vd+CxM&xJ##8LdOV=w;x6ge;M)Xd7 z_aKAqmqJDgZZNAFHdxKRRij-5@t2^#H@IPA`;;=r8|yEQHWFj{B?SGE_8Z;0SQ!Fe?3lknVd2~@nN5M09ib)W2n&b%4)ID;hgwB_PY{{`BD32r^GO%bSE^|zRCj=_g6L^2y{U12P zC1}=n)o>GZzhr><1M`^97-nIK#(zIL9|{=WEJ}s;W1PRzLk*iM{?l46HP4KniFFj& zA6Ogq$%6!il$IufARE*O!J%3=Ug`ff@q^2(4pavl=sz#@WqB4SLd~hK~ zRzZO=nFG5&4K*z?rE8MkjM1FiN1;x7@S^VeT&IgpG^+lDN3rtG;*9!XcUVi|isXir zX7;k==`*3Ltd4$|Bqmv~y~%isZ?#-I8~Df{m>}PRWF=*u_uSwgsDGgLa9nv5c7(A) zjK*B@$wRfXh9WYUEbE854m58n3l};32pU-hDAgRI6+#&nG)6Qgl9${nOMjvdDi5tm z^rDcuTPzYdpV{Vfp7n@XrpHGdv3`Ny<^b%odH;ifNhWO9_DT$gf2nU^Vc~93u5zP? zM^@X>sq7ngAr)P|s=GH`cf*quEsUa>+e`8sEq~%(q75Kmdz}=3a4{gC1NY=(8GH=0 z5*~|ga(NaS84>N!*ad*<@m*rV3C~|GF{A1paM5yIna24eKU|>qfUt!?gaQ>(5RPHQ z1ip)eB?a_VeA=*Z>1-?#8D;)M%=kDEFnDZ2z(+g(1_(Z(eeEm~rK1AszQsu0aEv6S zl{?FQ-riveHLv-Y{-_#}DU0=bFNYzcvnCQrgEk89m_s%;DhV3kb(b~vTuZFb6Cahk zd%za(-SOKW)#%ZQoD$U{thPb4$WW(FkS^3z+KcI8NhU+nBh*x$@tlmFOC^U&@$m;v z-6iswE#D^rD!*1Y6&g?|EDfS0z0w ze?{^%uf3&qJv?xsmuQyFhNBZXe1&EMBwNiH9p@p&vpNs+U{Z5T5;fh;MILM=YPNS! zrwU)GRWm<4?Nr*f4|O~_*!y3cdV?Ba#$;rcmA`NzSz0t&Ma9gr4JL%Y zM1N%pf~Iuzp(uR(2t;YWd8=ACrH@`zPok{{v4xC)8FA9VY$&PObD8m^#Yi<`IARzCavM`NA9Lr-=cE&e3=BzCD9}4rcgJw zSPr6+r%$5Xr8I6Txhq2l>EE^kTZ(F$gn1B@gQ6{jWYYvAB zd8!9K_E{S9?6T942nFWKU}*gl|EAOV!PE7KsY&~}d0Mvr!`6GpW7)^=!(35Dxa^Yb zJ+mo$3)!2Pq7TIcuFoDt*Y=Dx{_-{2<(HZd@T#3zcEuO?#>sGRaB5qt{ z)6P3qML0k99VmpSBx6EZnLLT6d@3j}$)cMuxk9osjrL=IRNL;UJ`?{;;~;*iM^MIU z!{mKHbW?Fp*&2}&%>kj!2cNTZ!Ovd06A4O+997?Y&YtH^D`d(_->GHL)3`kEmERP8 zHNrLRO^XnzQwo5B8%L*t+POR*P5A}txeFXhf7@_Q6e@4ra$57@dRC7^m#-B|BjMJ< zUmk+XPa&g@A>lC?kiqBV80(VUF}cajhlyu}8^Syvol<=fpJi;LJoeHyqt&K7&4JYX zTXgD`{FLoi^p@odRA-5oJvwPSya+B_kzO!$Sr(zt2s2wgeg9cFDN_S;Np9IAbJ$F= zgofSYWs@qBy4*{h@vXV`hW9xzv7K}_7B9_o5UMhcY2OOBj-W1^gz_!@M zvQ!&+v$G-wHDW3G<*zneQiFD}W&F~|R7tg57;4I3nTbv3vdAPfV}_1L4KWqn)NpvL zir;Hd;P9L^@HpR#epKe!nid;MUlaVE6s7NF_?@`r;?b?Rgzr)@ethU?TZN0mavRfP zw*EpNgPVxowY?NcR^fzxE3hv)(`Iyd!=a>U07K@Gr6Q*5;f4xXY*D8OQ zn_Lll-2MRS@f^bRit%*XpSQ2H$e5{XQgH>e3|<~$^;EHVc`2Jl-=N0f#XE@7`?G{b z5-_@1CvI-WP2W(swjlnrqQf_fs2MYY2&Cph#Q(JI$4l14u#unWd<}I)3akb za3$iH-d6uGlbV7d#PHQSb}(p(UHUfWZqsSjb?2xoNi50za~fPmg?JVf1Jc;W5W-$Or2%pZ3#K2@n8TKak(+mFma_@y zzS9feYddG^t@Xgrbn{|S&8v58QX$-Jf((&X{Xg!OHhet}IaH9sIdAlPr+EGGR>2L?c|{zTJ)$noIcz>pwRInx1PUn z&TwUl0bhg>>o}+rB$!ON&)$~L{?HtKJhCAxUB*@O#FFHEwO-8!D$IzMi>>{2{tX~_ z=CHX#mgUmI4eGdc{I}NGxDwD=Xm2*6F9so(uI$y(Yd_FNkx}#l)K=maoG03%lrrB| z<_nzDE-ebJk`9LY^rE*0vGG^v+a+&Tc#Pv{t`Iy229}30U6L$}`Ip+bv3U24tr8Lp z{aP*zw~&*ZCmH2j&vyEdEsulAl}<;4!L>R;5~KZoofxS+^dhdVjsH*sT%ASsH{;Bx z;)^4(;nvYXjtt*t?%$^sH`+KCnK6+)m8M*+VkBK|;g~(e;9Rp|xzc*i7rB_YtZTU# z>W?hvTAtecIEmhpk7u2Ip0O_4lI|53;D~c@t*qu1iibUnl$w4Eop{cN@qH@YhbU%& z^tq`D6*_I)W-}Um?h&O`Za={H*IE1lBeVh9YS%LLHzT^_#3JOS&_!CJ@N*7M2utOUuMjyWxVW_aq=|7 zqZU!SWZ)L?{%rqqOOf*U!BO+7_SOBW9AT9Dm1D?j%up;F5#!5#jXa5GB1>%|bChdd#SDMG@zjE8<0o|kb`O2?nqPrhWn{C-(Z4&%uMwXI?q%XD9UNdN5X!Wm6ZH#(SB za%8U1lD0uV#RqFy1^6Lp zk+C>{Fe(X6U!Y9HjCTggCOP4K#85MHk&SaHz%@%;^c-0xBbqql z3?{xaX8MmVd6W}fKsy;%v!{t?3yovC4nBfxc?C!Ou+2Digx0dST~5awPZNIuz$Ydj zcQ_fZHGOAyR~>xXewp&x5T2+AQ6CL3cP$%cd}8~BYcWG;z(f6*II1nM{bGUBjC~N! zEe&=qEb4y%a;+aPrEEF{Rnx9u*{XFO*s}X^i>k{8S+p;H z!D)*pNO76DV$l<_j9{me&`jx$_8sczXZ^9XQYBhvtoT}lh?TU-ICMKVm+o8KJNx>X zD3D#;3%f73X$ObRdnNerI78e^TdwcD>j8qjHOdG#bA&Wf>|k}q!%1D#j)3%b&w@;D z3CLtm`YkpYhRAsy!?5ztZ#n2#XzkrVXNhj_zz7~$x*c9%__h?iCcWZ4-WWSzx^mvR zqcMxy&E3Y1#g-9mXYmY9aZO+|-{#W2|2{Gzt>t?PAgPwI7NM%aiBRnEP_#tgikKQ+ZZwM&kHQeL3!K?sR1ff$ z?9mC(FEZ2uJWK8jvA$u=m$dsNw=hGY5^{`)2*85fX4upRiuWGZ_YXC~>}qoJK#{!1 z?fpGU7y3sS?HBK>F-@ICxoCA51y3{>OvMLGp8JEL`2T&Df^}bvLcfLS8RmDD+uE+hQo@qB13tIYN-i(!y5#NAXg zw7KcCD&$UJ3M$1(1dnNzW?J6syi$t?LPy<;*Pe@(iOLPAQ$HciDx;gJ1{LC4?v9}~ z!PtC;s7gTC^*8zZA0PktEf=Qxn}x zC|?DRx=$GrCdGMW0j-S}N*YAp%>$S562qrIccJkM&KGP0*Pf7fQSS);FBg6?g)+-0 zX0|R~BC37I-+4`K2)Zj-pJ|~vx z&$y|*bA9I`@k1Oy0Ck|4kV2wnrKOmHR1wQgHtRVM_vc5_Bn*xZ;b{8C*rx&MkY3;I zwf7ao8<_hRThVqc#yH8h(mNihl&}|y3|mxJ;}+?K$pb02c1Pq#Fepde=`vDQg-- zvaBF&_BM7Eo~Aev1IdxfExp?l4Yg|m?C0NH*p)A<$z)t$4P)%{gf;M4l1nGi!Gl-Q&0n6 zQA@=%{rNnHp?Mp)&XRF9dyPp4C8_1Fq6F7Q^Q8ymLXZM9#g6O~N_28h$2HK>iO5Bor$<93%TG zLX{^8xSiz!>~%V%f(`PIdP?lV@cjr@@U_ za@YUg_s(N2o-_BQBcI{4e-`8OFul^h!B6=+B{3~N85AxI5=-7Z&`C9`ki5BR?<=_{w;dG$)OhLsg2%!XQNU1*BB3AUTSVyX(W>$)(_vI+65KCXEx zYLy6`wYj-DT^K;C@etIN*rkuB=DWGIxTTw}9zRX|X|DM2;O9B7!=K4>gTG3DwLTh7 zkRBk#akB{bmKNqzjuDpG_Hm&#KaUXYoaq)cyG=2m+Kt|7Wq;drvH|7PlLh zJ9FH}R|7>EAI9JD^2yT-INQ{u0E4V;qn96hD6f)K+1y@u*^<}A8Ydk>j69@l>1=V$ z>;=KfPbpXo8O@*)VhvahM9HQYQCitG6h;Em|5-n%%Vw@`7yTeV+zCG8`g;nu)@?c> zSM8}R|AgP;S)Oz`*ZH3L?TTL_H0qd30z#)wE}9TpBAX8J@4fc zR%F(skEhR>FY~y6Eb&8fkry{^8&;t7xulc;>zssH`!giG^nn+cT@E&Gc>%l|Tgj3B z7=V@uQvMIgp?mF{SzE5xYVb<>NbU;OVyFP6O<#)M8{01|;oZ;lT*;%J?7+AJEi$g4 zk^Y2N^3Yg2w??Kw%3NjXLH?~vG}!rfburB^=%L)e;cmh0R*gWh=k{bvCM)qZqX0YX1CUi6w>at;We7KZ5gOY##CJjm0WfaiLlBJ&`G#I`3l5H2yVyh};*)XrG%Y5fepPiV#Id$~7m{ZwL`gSUV3?t2U zhc;rEP4~_1(-PyVf=`)J<}hf+3aICy9uW7))7SKMl6)^24wVg65SYn@CnHpz$Nn(i zZ~dp}4E|bGSjVPw#z}i?Gh1as4$}euH6vxHS^(e*lX=2CO{Fw=70RjdlD3ftQVK%Y`UH@Z*`kDbxwH)zwG{Drke;-MW&gM zPcXSiz_Fm%YETTI{zeK@EC~!7A2~~vVRFcwa0doBKZ5OHh50KNX2Eworr)@3aq4Cr zx3FW@!Gw>Ih;zkx^FEXDyM8LyhW$B?FE#Rz3KJ&43c5pQ;AuAX{&Lsp#A3UCj?)JCN3EgJ&=1Nx7bUza>pmEV&hj?> z&QALBS|^VMXfEF>1_*=Fgp8W;I%i)^h;QXOBm1%1?QfDUKCO)`Y{c04=EuPz3S!9B zV(YM~_nx)CM9#|;n8M^T(}wE>6sx<7Pa)G$0pR)n_ZZ{!D)kRMxui46Mo>RQM!hiO zymT^ve!X+&;_IPV;!-1+!craDKaz!BO}jvndd*kkP$tRAI(Nq)(cQ`bZ_=!D+SG9` z1Rj0lrgV;PEZqNiY;>|fc>{CFCvWO9|^JfQF!Q42Go&E{aNlR`QO6O*a^!##)C9Yy z(h3^c(97CnS$7sy@a6Sw7o}lwF#_M;p zq8y~m=GQK-;S&TLnk*}Z?(I_*WJj%{ogCd;gfbcN zcy4||KZm)EVdYvxyaRAyA3-{Z14NxD3b89E!yfYIchJQrFfe*Y$5o8>+@y5D$@YLE zW>k=4A<%0XGNBinNg_Wr45t3O6^vJ`JJICNH-6VGm(7R%B%f`1cw$gn-?^H=@?Je=^QYuUPLgxvRZ!*fVOUn%t znDI(aE7n7?*^hS&8;VlzlCk>GstKzeo^CvWpD+_zz(;bk1-N1|U943Xh_QumA}X4?lre;L1k_@ZleAaZO%;4-d!FEZo@n zT^(kKZU3F?HS+?a$Ms)6&bTSTc^HkQ(hn}yziTpeZ3GYrsc@WtA zH1d0+MJCvuX1r!vwtn7b6Y=D7@PkgXpX+bTZrudg;SDKd^{l<3F~r`mg1GkxeSkn0 zLZ=(~GwlBK|7nS_W`caYCl$K%#e=OIPK7%#49#4ceyw;09kiVRneO-LcN9y=vOuIK z7TDJnfKw;M9-D^aFfJ-h>^jG6VcZ>NFHD#~@j#w8dmYd}(!htEiD7A~3+XaUvG8te zKww)l^M6(<$y2@Ku-o~8- z(0mj7w(JQHfP&qXBk8O&ZdbZLG=Tivm>dSQkAY^DA7=6ocZbc#b*`wYK#$d?BBWR| zaPOQycK+*)xkxG1&pyw(3)XE_(kcUMr?xI6mAU8mON_Xqc7Sd@0c`1L2mm=)?%g}d z#I-(>X^6whj)Ui@k}+%+UY}j06rPYr@hMq=A>)wL$yKKBkvu9w;&m81nc^UXh@n8N z^=1l03|S~Lj7L>zTt@5lI%zxkNJ~aL}o5$T9?0mE+IvxhvIXc9n|$p4a*&{+EcKmu4H8M{R!BZ-!4m1B=qQ$;tIOMs#c} zrJH^|?l2H!Pp-{1#K1H#;<`hxume6#nJx)83X~{}-`-)b9#8U&BMZ}@#@z>YRF()1 zNX)2eCkYr5f5>v}FZvHlz|9ZAPTMM6e;RXoi-kV&vX ziBhbUHk~BEV8nHhd}_q&1Ly8t^;;cX_vlyDrwUNW*OO!g@cVQ=dvmz@ zyx*!{HKFw2_^oL1vnB<_%2WWYJuxxcEDvxZ&jv}UT98NVeQ-+> zrhLlQap#UcJ-FZA77B-r6`L)f)XVCL+6teNL&HYC_;^9V7cRs)4qZPms*;$Tn$||iTP*ZT{dnNm~>kNrvrur#=25P|y&rIs%tn;`= zy%V;HR&M4Agg~bgrXqG+)Ait8AWnPw_U`ES&(}f5jSZw#%l-VW@XQ`@UC?C|>5)DP z{)!@F;!Uq*i~LZOAaq|?#dM-5q0l0|Zti6BDARSXP3&;yNhz~J#3kKa$W>v&I*3$n7Y2<0p%0z{0z64X! zrK2J7a_EzCq+`pzQNFi|wKyyIzVnz4%= zyJl#+Gj1Q9HNevxn1|YOzn5y?Y$6fmjs%z|MmQS9w?7HsK5abMRtR^bWlb)*d7VP~E1tTI^mEM0 z2o}`{$~L?|Z#kW4D$&I!Ci^=BE1eO8_cbD`>wkJ=j?9<1-_R^J7DCu0(|y7|r%I(X8!gfi;^I?4!cUsJs2?3nB~{H~N&Rcv^2zVRt%iT?t#V3u@5BLnaSaOHgXyjyP==OaYTo1ybFmU# z1`2?G9Zv7NAMI2nITQ|HyKC$-Y-}$783+j5G$;s85)8`wXDiX&v#C5T__ev@*M}RsNAO7h)t)waA z$o!Y*CNR54M(*Omvj{mB>5MUW37(aOhu%SRM_e3rX;x1y{9Vp73%o&xabSA?e*8l_ zUx^+v^vueLQ?6f1H*SiukIz4N(oV}W)RW=8$WESJ`)1Zsi7qgOwK=dol}8%Nbk;mf z7^pC|Q3%`-LL@{I)pc&h^YX_GxI}EX>rahVh}N8Ql(}x{;%W*u|DpQ$Syl0lPFg*! z!Y0P;*|7Q-GfCFh+PT`vV}yfOsU8KZ_!IYfToG7Gf#AO%;VN zvIBP&ZHszm_LG29sLCAleDP-eQ{QP54upElM<#9h{**@ck8mV|(_EfS~ym?uy;mJPe^+N+ zkYEI;oBssaOw~Ii2f!RXuoRB9>D42#Uvn1nws2f2Ry?YFjAOW9x&EgoxY=LB`e4$% z)KaLHf7>sK`o+jE$&}-1XzP+wdu{b8(f$;B=ShSNTOkrIu~H{BV-Js3RazfHEo%-L zD#WH{>N)MuS5?rzn*$svxM*^b*Y~A(%^I1^79KoJeP-(rspnmmP&Y>r&Pig#-PxZY zje!*;R)(cn6juL~nz5wI&>|Ua2>iJ>t|FrK3?B(_hd#hK^L5bJn=S94d6EfJyyg^| zVILkI|GIteR&D#{74$>V?K02J8AK|#(SLKM9XCli>>CJ0FH6kVgSBS$h0IvIDu^Ky z@QGcZu;Iqb)wZ4?;WL0r6TWMFk3C6*^s50P3n4s1KKE*}_q#ar<@zw%e+C6~8 zF9Fmi^Ksf2z`70iK0H14sGWXvX-B~HvHuSNETQ0Ym?!=}qDAV?xt>pAa=^|Xe`~te z$4{P(V-X^ldxHLX?B-lwy?vD=%pTQ3ZOA|s6&uQ`L>sv2N`fX%U&ZaiE?fZVnrS>1 z#oy|{4;Mkf%>kk;L#{?8DfyRS=LIP^XDhFn@UX z60aWyp*qz?#+iWQZrF#;Hc$Q8s~#hm)`H5$r_%P+5&O;F0seVxwkxMwN4!f3*KWUO zdUE&7@G)Q!NF!T0Z>$A%l^3h~j zNgs?G?W*wlSKVmM40*yt*G(zdUdw!9fLD5OT?|l{i-H%-WCB+HzOAPbQ6j zWU?hLUn3RpI(#Cht5xQPPnhfUUj3uV|mp)i`pd6mp82d}5keP62 z=|{5dd0V3H23Y)^H<`4O$j^u=&GA0Pf|A1(W8EJq< zd|_0IS(LoT#C0(CVD#?NBm78vs6`G^;q~EGyBS`Sz-E(Q$=AveEQLf!4Jya<0OyYS zayBx~7=qe<&Gm;TC2Iu7zejs^BW?=$boHKND#sYjVgi$-tlK&+!ft$foli}1bFGA3=rXG-XRC{iqSb}4# zo19=f#JTDCk5&Nl^~Byu<~CL=E}a8l{9$?jZn*X4*7u0vodO7qUJF&a27a7&fo!c?FEyD_-oXM6Yq4tzH2R~es_syus$DcvrvT@n_QD7EqI>G3FD4IfVZ)TI5!gu8!k&>7&>CR z4?RefMD+Vo=EWC_sg$CI`w2#&OsH(n$TeL0NII4e*pyy|#a#N41wvA$=TwOpLVr1a zbC;_xKi|R}U|-@A8r*%CYloCk`ZG=MRR6L0n)o?E-CV0}v2@lp+xl}*0nCy_uT|$} zo;QBL?dF|Pzipp8#u`z>=+;0qIQ5b#PC5YEP0w3OFm`>@1}$+p!-%tnmOlxFU5KbS zGhO$1_AXI=xr3!twB3N3v(G5q6$lz$x035$mZzyat65%0#9B4{`C`N;W@8+Lb<|1iS%<-VBr*LJ?VjjejB)f1iYOnYM1>PAC4@Bkt&cy}riWB0tKHF@;VdQ^Sky>o&k z0nnhKDuda@0gkKDa|26n?11!yrCao1)bJ|3D{&po5JzEm)>D!(tVnXsR|{m1zW4u7 zbL305Ad!{|JqX!on^cQe3iu&ATV-@bbw$_z0O%qFaV}D*xQOGueGKJb#WSdJB(%`S zjI01NS_Mf}`vX0otx+-pz8X*vZQhe;xZ;M;o>@zHezW*lpIbWdT;TqVi{Gqs#kV&E z9?pLlRi+ciN~bbx)$!gJA1uL8|H5(G!CK5Q&^qz${ir`izxsEl-R1G?H zm7+-d+92(fd7!C~`?b5wD&{)dn`L@%3N*_l9Td|kWa)$9p_<~P>xm%42IBCyXQ9gF zEr=gzkHD}|0M@ffV*^LT%mWVy@g+|j*viL~3*hji}-z1cSg;1?r zeG1?#x|`uAK$e_4@`xC_YM};=9ldBlp1wqMA#-nSyl{pzum*I_5n2u^E2Rbigv3JYZ&FU(fUGb*FQ*g@y0A`~DVHO86WGD`~V%=isZx>rOc?TGP6BsCYJln|#gW+bje7e&hRgQx7T@G^ zC7BBGOR9fRqOmCh1FjsTg@_Y3Qc$QmcT^kZ_^?o54?8Hp$~b1b^`n+fBrg__#9R`& zVYWEs8i`A*GfN6Pet37$ngCe{e~Y;`SqCW7x~~K+`p$&24v^sSL41Gx8&DRuinY`b z0-eef1Bu{=PDINXP(}m%5jca8ww26d^7%lNxl9|CI#_6s4AbeIR-jG^1Wg9(`0g|l&ZJ796WG1&V01Oqd|4Z0aE zC!e71-3>)TT{g?9 zR+3gS{5*Zk?`5~-+?yIfeDe2x)9IkN3k%!HBWBR7+J}Pppw-G8G`V7*tQLMKxm+l_ z)6;a4sCHZ6wJJ{=8z7EgT zyFvC|v{r>K7$IF!4`ASJ$eW_adSL{0g{pk*fV1BPQ1zK8!7C4Mu1osieN=}9%j$6!K8+eg(F0)2EnSP|mIQOnY`!y{ zu~Wl#k10+Z^4czeH}|o{zQ1U5WO$14r9b!}r2YP4?~8b2f}~Lv%y&I^f+FI(0YaGj zLe5kjuNRG(S>=`F=9g1w+Tg9Fop-$$GXmNZEb2r*o97ikp*@Ov5H z2)?lf$fPwI@PPUvwrzz1<(pQnA6`2v_L~Vd{&QkyJ2gYyz0>nKj(r8BYJb}=tL7P zJ3iX`GjspmV(L;Lbf*gs0DY1NVP1FjGcO@%2I(TouuJmxuMH!evZ5DTDV4J@HnV3+cWeQn}{HdBV!3#znwn&0;*+Ms9jm&j4Dz~+M9!~a1xxWkY8Vlk4s`8#ds81w;7Ut4xy<4@= zjR;Z>KnWt{Dn~rcWZ{$VjgER@G~!;Gsv`@jlKeFj7RgCT?SHjP z75z&)KKNL8Qmc#wF#d2zBGReQXe3l3K2ZC!(wHPQF>pe#+{5mgJAG|@Q6IC?ukBGZ zq!nuak&K-&pMr}6dO5IvWw^hgX~Q87f{BItJ(lgBl?G+00{(x0#0QS*>OI#%y-n30 zHqHH*#;=Yl#!BN|Gkq6T44%e^0!Ke=D-Ka0U13`f!e=el3ry^C4h-?lQ zJCz&=#(&M}H!i>Y$lKM)!pQtt{kCssXmSF)0%(zw1_EO&{+IobjXS^-DySFj{`Z%| zNWioZPsGV36Fr@X^mgQaWA~|qq4GxfRpOhR6q$b)krD;+7J7vXKn|(r3l!$f$)f-_ zK|T(ocA{VrIyKL&%N)J?mIooo+GIY_ZT<4pHG)Qo&#NsyZ1-9IzAbhj08o{o5RwZN zxcoo|YmgWo`u9ud0^1-#QPi6BJbpf`7sgUa(2-!O&m=De7uF}&y({ZUw(-rKJ3n%~FAlu!P=X-#r7 zv=s*C_CPKSAP8i&AaOBnVwe>5=OY8KxL_-CDzB*-O38#SI{W`-@fh=dTsQk}qZ41t z*hD`P`OhpLH$zyb=Q~trpaIi>6xYb@)c>B7>>yYNUBR6F>%M;Tj^r@HbQH(^0aVdXFpGMSfuVF z)MUGhUpwm&e=l$?ypS&j7%KRQKA9=#r8(?^?ueA0uWk2-(6&W;qoJTbuNMn15mkBE zh0pqObj<0^!TWaOA8G9l1?bODnGK@Q7DC9&((&UK0U=Vm9f;W40G=z}2sbJ1-y)o3 zBER4sDrPdDZ?aa~4Wg?Nz?GPP{A1NB3RS3zyg|Io)Ki0-@enWDXT5-QR7vrL(e;04 zQW;r>^ABPxq@L?JE{+x7ui8WEq@nije74%@VDu7s&Y02^IBJJowI?jm5j{{HsxOV> zBK~)v4rCyGBeL&v?QUJgAEfeL>d-NMNgS=HT+Ldqpt@^Fgghxs8Ks)UrM3ADhy=Y3 z=aL!U5ON9r`vE3JxYi$zKD1}@7T`Ruz5Oa7Kd~tRG5HZ~{~Aaf zl0e{JD>!Jomgi0>B>%1AyqhH7{c&S ztE1J)0Ls3d^#ZD*iVDvSasS(g2n=ktqsIm)z$qt3^zu1=SllO?+%Hr7$eo-=9S&rt zaI3JCEuit}u>0wmNNGgRGp9QCKa>uC@0_V)&a1{k4lDEk{< zJjK5vYqhe6Gn5W(S$MkgqIyMCd)_>QRF3=ES6RJXPTIt54 zzpRe^)LXWn3mJC888oos7@e8n?gcI~Ujeks&;FN@YrBYb{GUrnhj|IM@vig?^C`;) zq{i;fi%4qR{XlQ@HM)_V{LJmLra!BN158eO#??;TAYG}oX$1AKpuhGN>1n_#Y@5+t z!3a(!NP4IG%Yj8qU_qDom)fQssyopGIWW>8q$AKfs~dwDU++UyErohI5Lm-ig+J*K zRAM8Y1uB#JSiblLG>C>8jCCF88J|TZR*K{ih&tQ;iDBXuEoM98`CX=@$CtlB)k>LD zvir|%g$pZ#tb%Ss`P0KNJ;vOQ-!#TQefY<6hI+kUF11r&4JCn1u*LliTz(F_;?Tg1 z=mB@#!G*668}#QTNPw&D${99{sNcbN}nFDpRd>pJ?^xnm$>4P3H(f ziZtp}!=f{ezOIK=b*+(lOWegB1my+5@|jE?L-)|4CU&SV%V9#*R0924gBjlembe- z@znC_d-J(+G$$a=GT>Yw43!pi-vx{~lcZ#Z@4tNrz`8?{g;9kYk&LZ4bwJdi7lH)h zpY!!MjXC7+TYn)o{Lt_WSua_&ENJBL`|RBT8?Tk47?$~^Z2P|JMCZl?>dPXmH7ounC93MkY^K(9S5wZZW1DP00%P=k|3RSJCHkm33@B^ zo(!}yf8slEBPw9!u8s;ZI0!i}i@SGA-2WLhwvl;BP+BXG^{RsWHzQ@Z8YA?*IZ8xG zW!_k#Q1>;-|M)v)Ivm)NV2r0m-&tKwK6+I>`ZB?9;#`14*WONvWHr?R$7-I;f6Po^ zbF%rv*IG^$)?L{%0wBgMt{zklaBbO|?>(@2+kVM9G+k+M_t z?d!ilF#B0EoXEks2S6eSeVydR5-vxje;+~*BXv}=Bfh%*SUjh$Mhc6S(O-93@eVl_ zCweW#B8h=C7Ku`%9}`}lg^ssDp&gW}W%o=a!~Pv^%Rmfld#*~?kimP<5$$((GC2J8 zY1nux(EZ%?Nn=08A_^`ZxT3klBh}8C5LA0kVM1abfxw^p3!1n723TvZ17|v zduH?BYW{b|O|T#1T(0s?)UUIT$#x(pPHD2dBV%#*pK1Pcsg>zk;guCV&wS9{M54B# z-o}o7hpKw1Z)T4~sAyDi3=RG{lfQu$G@c+-9QQ3Zf@J)tv(UMz;Hm${#JNE#<0{R; zk&qVSC(>wKM7aWD0#=+aR_f5Pd;+*wW?w|KksW4ZT2CdKIw(cI>C?X_nrZ2Y3+Bl_D)Z z2SNvbZ9{+ryw{%SCPy;y2t>d?B}?m9uD(%K9V$0gBF|>m$#pYQF`_03GeyC4R)Y0d z%{^Spb%+7`OU$laykZgXP#D;mTT)XGuE{+*Zy90)9^j?(q+?$py=2qT+BF0=I_A6m z*)n9cEu6HJ)VYSRYiuE!dhNN`{a0-r9ga6MaOal4=EVYTMZWtCUxcsvVbOjpwO9g5 z(6ydb^~RrbihcpNg|TwlaK#a8Ciz1*^s9F!Yu7&(GwgId&S0W}l|F~#Nt&hKZ4R}e z64IRcc>VY^ZWG}uvKevp!oh)OBbAKO^lbMO?SMv7_rO?zTYfVHmsHo&xI1V;c7Q69 zbM5h5#l0UNyf1RS1?lmAS2&+~QXmJQCp)1Z3A#jjdY>jh+HBZJ`W`{{0?*9`!!OUT zC0h^+51Vw)N`JkA|8KX$43T{vb>pg`-{^~vb#rDb%2qBetW1hmhv-3MLRJ|p6efCu zMY=ds#@x4Eg_iFX0@FE?5C zulO%F!9vhDtbuKN0ml2zfRpu1*BhHYRU9ZbZ@Q`aLp=&O3yasPKA>>p9m#`-j#DyZ zN4`o7S43r?sAl;2I7_>r2$=om_SaWf-GzCPZ!#CXF8w=A^4t({Y)t!;|12s6al#uq%2g)&R}VlO2-7Rl~>aq}P{1K&u1>cZ7z zEL)LpX|H0byK9N!W5--tJs@W!BNpw1;mwK??|Lbi)e0h{*U-3kTfQi7w6v=bKug2n zS{i+hXRh)7=Zy1NV1EZccYh3Q4%sCgp!zjR+thWrdV)SDEh=GwQ(Qw7PFWYaj8Qs1 zRB9oB<$->_UcPbULaqN--vzJpYL-X(hz2SYI&4}uxfI12MM*xAP*NtNYblO&;?)8e zNab-ez3QgY?n@WzPa=JP`H?EcuQreWrdwdr&@V7-c*Af}2rO4&aVs|2(Jzzxu*g`h z!sZhN>8>5~|1y@%1aN`Jd-1sBI&suSMb$$W=gfKjCq0Xk$Rzp~bpG>ehR6qY7t`jr zOWivOiRfjf<_-FS2ML6~lB0YK}kU1lZs;K^ygtV>>ITz+W zB#IQ^+&%U5p-f6t_}@=hq=P41UhOnKP?`GlQlQ`OrblYMd&#_Jv5OFS_TgIBf?Z5Q z^gl26FN&e#gUh{giHVK@znWLKdQ3+uLz@Qu!pzZ)`O^Qg_F#{|J6y$iVx%A(7-_&; zpt=S#VO0!Iw+s@%5L}P1VTd>5OOmw3nd15gBd`c~ETOnUtojXvJY6?072&&Be+RH~zv@D`j_)4lf1q(`{@ zFb9fx$uPCi4O0*n3l9Lc1&0CtN+4EPDwwypH6}e(Z07u0Xa@qZDp9#5qWB4o{ReV= zhG$8X6EWIAA+*WaWTY(u!`&nqS2w`21*6pu&oi`VFPjVY z6Tc`BT?ktBg+*X`PS1n=lWCxe9EBFmZU(eMU+a-GP!3(s1+Hinz^qsU9OWkWJx?c? zRogXo9)1o;JGxgJD+PLm4r1}2><+5gpV)aJ<0`{O+*z-jj4Es!Z-hXD8~*>nU(dW# zeH(<>u)JYpg=EQj4XLybT~rg_7D#t_QvE9vWQ0B@aTj`})x98`uYgp-%98WpP{cVd$0r-i$nXS`F=Mh;F^r0sE-ub`jHt+&m+QXn&e!HV}x896$Gb99;_X z>E^D^7v(Z2Nsr+29R`frMZjIGOf+6=xl7(UI4})Z?d4!t*?%oSzU_wQ*?zl#t(#7uIwA-va$#kmW`yFgI_$LMV7gN1Cc)@Dnv7SB{+LOr7o~%$W zRDR^^e3+`@2vfM$BW1VFTU%1rb(e0FdA@oMX%ia|=OoOuN8%Uxv&cvr9mR`a;td-* z2Gu*5nvS{4_>+((W$;vVb}Y>}ZUJkozK5=<)p4U|T^m)hMNMhz%RRuK-rSe>#=Gu( zXt?~7o$Iql#-X8En1mR;X58T5u(7`ero&jGI*p6chm#wLUk!t!H}Wvt4~gR2{~AOn z$)g4+SZ>OrP8lr>Fud^UwJ(T5eWabwlt6tVfYmc(s!Jmq*5j!#TxS;7{{dXu-FLgoqsWp)@=^-Btk z?4azi-PXCIlm!o>_rFg*T@g4E7g#rU6~hPCiN!MFT-n|TLK?qcs?PwMa{-< zkAEADoTY2INd5H#RH?6DDoi0zTe(Q?qw}N;!}#`xj){O=Q_(mhE&(g;pTAz6?mc4H zUYz22eaAW>c2tThs`Ge!Xy}zlfBa`xrYscKlPsVjm;R^p-JpmsLuU)$)Xa3Xj-1XYi_up|P&p7yd ze6GlcDxVHFH@BUH9hLYOaV5@4or+3f(G%C6fa{$}doeT;#=ok&xIBb=7PrpZOTH_O zLSbT|+3GMbD;GVa2|H-hQ?E$bcW=p5q(-D-a#dr79S7UEsAL=m*Gqh*m%>OM?QFl2 zd~IUo)oo$A*A#@Gi2ADDvJMmBKSREbSK8%)i6Z%1V$E7Ryx@w5RV!CH1rFv=_AZY{ z0i9F;HuCxQyBqh@Q-uuZ_=ysT+l;{6ppP?$$9kgoZRfs)vy*qN%%yIP^{T)h+ z?aNgnS2-4RZ~vZ8zIm&DDs4PKoldxEEJ5o3Y46G(q5i)9%ruxup#=#UMA^&EkWrF7 zp~kMV%Pu=LmQspjUy4zQ8f&s|BiZ+5LPaFoFp~9S%X6p3=llEv&ri?SuQ>O8mV53w z_ny}|NxM}`Z6d>Tay(Wh>LCyq;;1POVmh-l?X@^*smHS&qExPv|JDCScT6ku(v(7h zXSd@$<$X@OIF9P{5tZT0f$)3sgUoAUqIiu}lcuDMpO8A8mdj#)mLTpgJMQ$AqN82@$ZiW(GT27?3y2QT+jY`z@b8bC3pxA0rFqk@?QE=#e`iHN!&}?khSC1XA>f?O!`-C|OL&eE<#fOmLQ!?zH7J(B9rWwNrT-EtF1ujex)TA33EL@AEC5#f-9fqaYR$ zs2(GbX5ssUZM;o#jyk`Z0Gb^djDVW0i^n9b)o5%A!{GX^hv579h=CYJ0|$ot8{-i? z!owS-pmJ0($kLm1m1!kX9QF4Tag5-v+23M#SXwlQO3MlWR9^xh&tB=s&Kyp2!DiT> zKG+%5nxa&+uWR(BwjP$h@(K5}#6q_lB|MwejI|whg@g zyP`aMwD7SIX#Cc`Kc=#F15#e=K{p zs(M{0&gwUCV5)MTirY<&6WC)x6pM&k^5YdgjGIyZqE8WQRwd% zqx5Znr9UNP^bBr#fe;&T`$K+s zDqSC7jt%qj^0F|3#fgBY!J0I1A7ff{^IrOmr(Sws=3CNstHRp1l+2-Nar1J0FcMB{ zefnLyxS_7DE;-T6^~&L|9in;f6+qq}Tsgv!)&!pd_`!72DXH2*kK~lW!nwpWC~F3I zG0TvWo&5>Y?3EIR1IO?H5|(og%(97ns;u`#SYBKz8iYj&O`_9nIv$JG=;OturKJWc zAKN;{61_I&i@R@IW$}1&TPyi3j`hiR`hl0D>|M(y;f&>j)5wv}(nnZg?3I1NWIual zFmoo9nWje+iwO>LJmv9`P?(QHp?%R0d6Ptu@$;cM;i-d`fx2!+e7k1n4kw>{ua_pP z8^OAvlX1?1I^be;VZ@B*REXyJSh$?yh5S=coe!U>?UO;xR~Om9-SKVsaC9^iw;yHg zNBP>C&qzd9SJyjAtM?>-aLg}F`Pf}q3O5M822S<+9%0eVDfxn6#1C5dK2O(;#fe)^ zCEv=gP~R;>cKU$1*ki84?=D6x;Nxc9lB5_-ofbyNaHgl}uX* zG#mcTQxBvOwTcbhCx;4E$;7zokVfr4s<&56+43fsXp8y83`qtdl z=ac1~TM`9%1cD)TCOS{hVn`);u3L4^?$Ag@+1RO5h{d3?*x+**8urVTNmrPrl+@BluHDADPG)6j0OZzX`tSf3fq3vs;2si<-lb!{| zH&lB%k~Q4~9#BSW%trhsqMRD;A0z|dtyrhC9w@->wxr*eW8&(hek&1|IwlA`s|6_u zvp9oGoqRcEdPCcQl2tS%AE-`x%zq3+nY+e_mwe=8XH7||8(XrfxIb%c46&g3X0gD; zi7;y>uQGegQOa#8uv<6JAxV6h`tM^VQrdpQzv{ybOYQ$Wxql| z=pT0sfsO8G!PJO7M{_f~VouiopaN*PLBjPu)}#{@6B|&02CZH%mY!x6PQr4A>t*H7 zqqk48VknEp1fBA&?X*NXSB9JE?J>53gB>5$Q=lbDNbNJaH|gIeLY&No1`mj5<^4F! z))7|RUT+bJ#JdI+OeXOHH`W*`8ZjM4`v}BIpj%z7cSH(YF8VC*ckq0PefPsCJtBTu zwBdu6JH64dPOtbWlNR8!$jg+htZ7cnWXc8fS5QT-rSe56vz1A+9^xcBU1X2R>Yh^Q z8+U2F&HzD_gZm;TLuqc&om&?Fe)SXdT?3oeU6|CXiO#fT)An4bEn`TuzZ(3G#mP zm{i0KbfFf@TW|V-XFR27=S7mhns|B1JmQv*S4qbBd*1|^5W`K>xY;>?r}(N+wQ;|O zLE3rU>WE^e=hc*i&!sMAj?03>*M-R9M6evhQcu(YQpk zM7hY>sxhAt6}}}#{$Yn1D)MXGP`2s&f5a#T#Ax~+Pr2yN>|psoxbp*jQsR_thhucu zWSJxRn(Gz`YegDg24zq^1tS0XzgJZ8YnNW9u$@%`4A!(h`bYb*4c$aZDQH$vQ*9x8 z{J5N}d9}JcBlV!6I{KU|;6UL&8bLjo{140f%qNdJXe9b;|1%E?u+r~08}IFjD_~E& zyq9T)_;_f@+aW2Hq^Mm|_a*;w#-@bf)#ZNVS;HQMEyM;I{D?R%6WT_kly;AFRt{Od9Ep~%bCt7YFvm>UL7zD zc$xXdt!`www4-9{B3cW`}|$S z`D~B02_Z-3k9c2TcC0E7Ez)_aRl#yiFR%OK)Aacg} zuO6QP3W^pd6eBRQu)2*W-)69-T)W@P$vz%(+~>hSix6k=uB%;UV=4COz2n6d6(-7y z5O1`b{_(wFcL0vSzv=Be1G|Id+S*P|Kj`A(M&jNbC-RU{n>%&8wO0FtjNJtMsCB5_ z0ZiPA@2|hKFQE}swYU<*vva|wDs%p0L@4(;2BshEu#$3*12iKn=Lc%cW?O+nPtob^tP9ns zUTLo@nfZP2r<}RWW#?-bHkmx$)%jD5E?tUX%8>i&9tO&Bu3AR4mecfzng*Znj6Hdr zHzuCww*DKG+nm^*!Ml3aKW8+WcpjxGa~aJF2QA_aR@5(CdUAp^UJSrybjM^a z>_zfQAYoZHw`jVL(Sm(hcfl5a>NeOyug{5Wd(KOczGsN)%{nzY`+&(^ib0@O^_q-~ z4C|2)F!x(ij;5v@rP&WyH3+|h(7}a_#r+ugfAwaSgpG}U~P7ypMCZlp^ho@<*wuH zO7_kxb5zVfQ^vd29_uH;6D|L`ffitb(r&D_N{HK;#GlN+E$iOdPH&;TCCF}X231$g z?ylyE&nIjpxjH)=QDs~C}guE;vZpRpRtt)Hn6T6bk5tV z=X$tz65E`{Kss5{w0Xxuad3TDBx8a`HuHcSH`eqbEt#?bGHjLa+YcK>u;^C{UCoU) z_-5?iX>ej zb3TfS+cPkJ;Of+S%;}+6IO24^5#RGW`rmGwJF?PPhy}@o;Dm+MRT`#rL*(hd?0b>PDv^XH+)q5$jB#)%A zCV3czvx9fqvbbNw;l67L^vyD?>NY1_+uQvdKr)ii??Z8NfV!I&E8*pU92@7Uy~J7_ zu=W^VaR8PN)MEZdO>qZbJ6ql-OxyY=!PeJpdU}mzQ5{g%eRI=0ezWQ3#7P=!EgFEe zL()mAL{^{{5ukLQ|A$In6u@(-+%cyP!E*wMqLk!7KR9>m0fr8HWO`w7#u<2UaM<2Aj*Ztv@ysoT&h5k4=Ucah(e)cL4=z%TAW>7qmN?3 zIJrwoOW)RqG0c@-E3l+A_L+H=Z5UX|)p4)vr_t&I!NhAZoh^jCAeEL`s7Q#Rol@s= zvgCvb5Cyj-MWDQXvfSs5PO<<_(Pv*jH%-Zl;O3C*y)mN%>!k}~!q;246O{J}cZant znIdz+9m3{tmsU6KGo{s|1E*eBC;#Va=1;^7T+`%l4E{Ro9D}}4Ld}(!>Siftc60wr zImkHbtpxzGV5@w8ehTTE57=trbPHby6=`>ytkAc^Fs?OT-wQ-y9sglPxJ+0{7=?by9l+TD7+ec zdET8oXHq{S{@0l3fM(co#}2Slm;CwPCI2hf{|oa$o(@_Pa|chgLCi6|v||rf2HR!0 X^hsA_{xp6U0)8|v>Z#?QzaIKOQtggM literal 67549 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