From 5132d40b2fee2ba99eff9d22df5c1cce9ac40b77 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 21 Jun 2023 16:04:25 -0400 Subject: [PATCH 01/66] data migration: update sourceId --- packages/db/.gitignore | 1 + .../2023-06-21_update-sourceid.ts | 55 +++++++++++++++++++ packages/db/prisma/data-migrations/index.ts | 1 + 3 files changed, 57 insertions(+) create mode 100644 packages/db/prisma/data-migrations/2023-06-21_update-sourceid.ts diff --git a/packages/db/.gitignore b/packages/db/.gitignore index e0782e2c28..860b3b54bf 100644 --- a/packages/db/.gitignore +++ b/packages/db/.gitignore @@ -18,6 +18,7 @@ seed/migrate-v1/_generated/* seed/data/downloaded/* !seed/data/downloaded/.gitkeep seed/migrate-edits/*.json +seed/recon/generated/*.json prisma/generated prisma/dbml diff --git a/packages/db/prisma/data-migrations/2023-06-21_update-sourceid.ts b/packages/db/prisma/data-migrations/2023-06-21_update-sourceid.ts new file mode 100644 index 0000000000..1e0cf407f0 --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-06-21_update-sourceid.ts @@ -0,0 +1,55 @@ +import { prisma } from '~db/index' +import { isSuccess } from '~db/prisma/common' +import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' + +/** Define the job metadata here. */ +const jobDef: JobDef = { + jobId: '2023-06-21_update-sourceid', + title: 'Update source id for migration', + createdBy: 'Joe Karow', +} +/** + * Job export - this variable MUST be UNIQUE + * + * Use the format `jobYYYYMMDD` and append a letter afterwards if there is already a job with this name. + * + * @example `job20230404` + * + * @example `job20230404b` + */ +export const job20230621a = { + title: `${jobDef.jobId} - ${jobDef.title}`, + task: async (_ctx, task) => { + /** + * Do not edit this part + * + * This ensures that jobs are only run once + */ + if (await jobPreRunner(jobDef, task)) { + return task.skip(`${jobDef.jobId} - Migration has already been run.`) + } + /** + * Start defining your data migration from here. + * + * To log output, use `task.output = 'Message to log'` + * + * This will be written to `stdout` and to a log file in `/prisma/migration-logs/` + */ + + // Do stuff + + const update = await prisma.source.update({ + where: { id: 'clfii2q0e00009kjupxn7403t' }, + data: { id: 'srce_01H3FR96DFKRAM07AZ8T8MXHE5' }, + }) + task.output = `${isSuccess(update)} Source record updated` + + /** + * DO NOT REMOVE BELOW + * + * This writes a record to the DB to register that this migration has run successfully. + */ + await jobPostRunner(jobDef) + }, +} satisfies ListrJob diff --git a/packages/db/prisma/data-migrations/index.ts b/packages/db/prisma/data-migrations/index.ts index f4ee39c0b5..ce949a24dc 100644 --- a/packages/db/prisma/data-migrations/index.ts +++ b/packages/db/prisma/data-migrations/index.ts @@ -30,4 +30,5 @@ export * from './2023-06-12_survey-options' export * from './2023-06-13_user-type' export * from './2023-06-14_remote-tags/index' export * from './2023-06-20_tags-for-suggestions' +export * from './2023-06-21_update-sourceid' // codegen:end From 8bd05a8e7239df39f3ecb3cf914a747d5303bf79 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Thu, 22 Jun 2023 11:48:25 -0400 Subject: [PATCH 02/66] basics, generators for helper data --- packages/db/seed/recon/attributes.ts | 23 ++++ packages/db/seed/recon/generator.ts | 169 +++++++++++++++++++++++++++ packages/db/seed/recon/index.ts | 39 +++++++ packages/db/seed/recon/logger.ts | 21 ++++ packages/db/seed/recon/types.ts | 19 +++ packages/db/seed/recon/utils.ts | 9 ++ 6 files changed, 280 insertions(+) create mode 100644 packages/db/seed/recon/attributes.ts create mode 100644 packages/db/seed/recon/generator.ts create mode 100644 packages/db/seed/recon/index.ts create mode 100644 packages/db/seed/recon/logger.ts create mode 100644 packages/db/seed/recon/types.ts create mode 100644 packages/db/seed/recon/utils.ts diff --git a/packages/db/seed/recon/attributes.ts b/packages/db/seed/recon/attributes.ts new file mode 100644 index 0000000000..458ebdeb3c --- /dev/null +++ b/packages/db/seed/recon/attributes.ts @@ -0,0 +1,23 @@ +import { prisma, type Prisma } from '~db/client' + +//#region Helper - isTruthy + +/** + * It takes a value, converts it to a string, converts that string to lowercase, and then returns true if the + * string is "yes" or "true", false if it's "no" or "false", and undefined if it's "unknown" + * + * @param val - Typeof value + * @returns A function that takes a value and returns a boolean. + */ +const isTruthy = (val: string | boolean | number | undefined | unknown[]) => { + const check = val?.toString().toLocaleLowerCase() + if (check === 'unknown') return undefined + if (check === 'yes' || check === 'true') return true + return false +} + +//#endregion + +//#region Data Maps + +export const countryMap = new Map() diff --git a/packages/db/seed/recon/generator.ts b/packages/db/seed/recon/generator.ts new file mode 100644 index 0000000000..da854c8cc2 --- /dev/null +++ b/packages/db/seed/recon/generator.ts @@ -0,0 +1,169 @@ +import compact from 'just-compact' +import superjson from 'superjson' + +import fs from 'fs' +import path from 'path' + +import { prisma, type Prisma } from '~db/client' +import { attachLogger } from '~db/seed/recon/logger' +import { type ListrJob } from '~db/seed/recon/types' + +// import { createLogger } from './logger' + +const writeSuperJSON = (filename: string, data: unknown) => { + fs.writeFileSync(path.resolve(__dirname, `./generated/${filename}.json`), superjson.stringify(data)) +} + +export const generateCountryMap = { + title: 'Generate Country Map', + task: async (_ctx, task) => { + attachLogger(task) + const countries = await prisma.country.findMany({ + where: { activeForOrgs: true }, + select: { cca2: true, id: true }, + }) + task.output = `Countries retrieved: ${countries.length}` + const countryMap = new Map(countries.map((c) => [c.cca2.toLowerCase(), c.id])) + + writeSuperJSON('countryMap', countryMap) + }, +} satisfies ListrJob + +export const generateDistList = { + title: 'Generate Governing District List', + task: async (_ctx, task) => { + attachLogger(task) + const countries = ['AS', 'UM', 'MX', 'MP', 'CA', 'VI', 'US', 'PR', 'GU'] + const dists = await prisma.govDist.findMany({ + where: { country: { cca2: { in: countries } } }, + select: { id: true, slug: true }, + orderBy: { slug: 'asc' }, + }) + task.output = `Districts retrieved: ${dists.length}` + writeSuperJSON('distList', dists) + }, +} satisfies ListrJob + +export const generateOrgIdMap = { + title: 'Generate Organization ID Map', + task: async (_ctx, task) => { + attachLogger(task) + const orgs = await prisma.organization.findMany({ + select: { id: true, legacyId: true }, + }) + task.output = `Organizations retrieved: ${orgs.length}` + const orgIdMap = new Map( + compact(orgs.map((o) => (o.legacyId ? [o.legacyId, o.id] : undefined))) + ) + + writeSuperJSON('orgIdMap', orgIdMap) + }, +} satisfies ListrJob + +export const generateLocationIdMap = { + title: 'Generate Location ID Map', + task: async (_ctx, task) => { + attachLogger(task) + const locations = await prisma.orgLocation.findMany({ + select: { id: true, legacyId: true }, + }) + task.output = `Locations retrieved: ${locations.length}` + const locationIdMap = new Map( + compact(locations.map((l) => (l.legacyId ? [l.legacyId, l.id] : undefined))) + ) + writeSuperJSON('locationIdMap', locationIdMap) + }, +} satisfies ListrJob + +export const generateServiceIdMap = { + title: 'Generate Service ID Map', + task: async (_ctx, task) => { + attachLogger(task) + const services = await prisma.orgService.findMany({ + select: { id: true, legacyId: true }, + }) + task.output = `Services retrieved: ${services.length}` + const serviceIdMap = new Map( + compact(services.map((s) => (s.legacyId ? [s.legacyId, s.id] : undefined))) + ) + writeSuperJSON('serviceIdMap', serviceIdMap) + }, +} satisfies ListrJob + +export const generateServiceTagMap = { + title: 'Generate Service Tag Map', + task: async (_ctx, task) => { + attachLogger(task) + const tags = await prisma.serviceTag.findMany({ select: { id: true, tsKey: true } }) + task.output = `Service Tags retrieved: ${tags.length}` + const serviceTagMap = new Map(tags.map((t) => [t.tsKey, t.id])) + writeSuperJSON('serviceTagMap', serviceTagMap) + }, +} satisfies ListrJob + +export const generateAttributeMap = { + title: 'Generate Attribute Map', + task: async (_ctx, task) => { + attachLogger(task) + const attributes = await prisma.attribute.findMany({ + select: { + id: true, + tsKey: true, + requireText: true, + requireLanguage: true, + requireGeo: true, + requireBoolean: true, + requireData: true, + }, + }) + task.output = `Attributes retrieved: ${attributes.length}` + const attributeMap = new Map>( + attributes.map(({ tsKey, ...rest }) => [tsKey, rest]) + ) + writeSuperJSON('attributeMap', attributeMap) + }, +} satisfies ListrJob + +export const generateLanguageMap = { + title: 'Generate Language Map', + task: async (_ctx, task) => { + attachLogger(task) + const languages = await prisma.language.findMany({ + select: { + id: true, + languageName: true, + }, + }) + task.output = `Languages retrieved: ${languages.length}` + const languageMap = new Map( + languages.map(({ languageName, id }) => [languageName.toLowerCase(), id]) + ) + writeSuperJSON('languageMap', languageMap) + }, +} satisfies ListrJob + +export const generateSocialMediaMap = { + title: 'Generate Social Media Map', + task: async (_ctx, task) => { + attachLogger(task) + const services = await prisma.socialMediaService.findMany({ + select: { name: true, id: true }, + }) + task.output = `Social Media Services retrieved: ${services.length}` + const socialMediaMap = new Map(services.map(({ name, id }) => [name.toLowerCase(), id])) + writeSuperJSON('socialMediaMap', socialMediaMap) + }, +} satisfies ListrJob + +export const generateUserTypeMap = { + title: 'Generate User Type Map', + task: async (_ctx, task) => { + attachLogger(task) + const types = await prisma.userType.findMany({ + select: { type: true, id: true }, + }) + task.output = `User Types retrieved: ${types.length}` + const userTypeMap = new Map(types.map(({ type, id }) => [type, id])) + writeSuperJSON('userTypeMap', userTypeMap) + }, +} satisfies ListrJob diff --git a/packages/db/seed/recon/index.ts b/packages/db/seed/recon/index.ts new file mode 100644 index 0000000000..64ffd4b976 --- /dev/null +++ b/packages/db/seed/recon/index.ts @@ -0,0 +1,39 @@ +import { Listr, PRESET_TIMER } from 'listr2' + +import * as generators from './generator' +import { attachLogger } from './logger' +import { type Context, type ListrJob } from './types' + +const renderOptions = { + bottomBar: 10, + persistentOutput: true, + timer: PRESET_TIMER, +} satisfies ListrJob['options'] +const injectOptions = (job: ListrJob): ListrJob => ({ ...job, options: renderOptions }) + +const jobs = new Listr( + [ + injectOptions({ + title: 'Run generators', + task: (_ctx, task) => { + attachLogger(task) + task.output = 'Running generators...' + return task.newListr(Object.values(generators).map((job) => injectOptions(job))) + }, + }), + ], + { + rendererOptions: { + formatOutput: 'wrap', + timer: PRESET_TIMER, + suffixSkips: true, + }, + fallbackRendererOptions: { + timer: PRESET_TIMER, + }, + exitOnError: false, + forceColor: true, + } +) + +jobs.run() diff --git a/packages/db/seed/recon/logger.ts b/packages/db/seed/recon/logger.ts new file mode 100644 index 0000000000..a7baf7ba8c --- /dev/null +++ b/packages/db/seed/recon/logger.ts @@ -0,0 +1,21 @@ +import { ListrTaskEventType } from 'listr2' +import { DateTime } from 'luxon' + +import fs from 'fs' +import path from 'path' + +import { type PassedTask } from './types' + +const getTimestamp = () => DateTime.now().toFormat('yyyyMMdd_HHmmss') + +const logFile = (file: string, output: string) => { + const timestamp = DateTime.now().toFormat('yyyy-MM-dd HH:mm:ss') + const outFile = path.resolve(__dirname, './logs/', file) + const formattedOutput = `[${timestamp}] ${output}\n` + fs.writeFileSync(outFile, formattedOutput, { flag: 'a' }) +} + +const timestamp = getTimestamp() +const logFilename = `${timestamp}.log` +export const attachLogger = (task: PassedTask) => + task.task.on(ListrTaskEventType.OUTPUT, (output) => logFile(logFilename, output)) diff --git a/packages/db/seed/recon/types.ts b/packages/db/seed/recon/types.ts new file mode 100644 index 0000000000..c72aeadb7f --- /dev/null +++ b/packages/db/seed/recon/types.ts @@ -0,0 +1,19 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { + type Listr, + type ListrDefaultRenderer, + type ListrTask as ListrTaskObj, + type ListrTaskWrapper, +} from 'listr2' + +//#region Listr +export type Context = { + error?: boolean +} +export type PassedTask = ListrTaskWrapper +export type ListrJob = ListrTaskObj +export type ListrTask = ( + ctx: Context, + task: PassedTask +) => void | Promise> | Listr +//#endregion diff --git a/packages/db/seed/recon/utils.ts b/packages/db/seed/recon/utils.ts new file mode 100644 index 0000000000..2f7cb8861b --- /dev/null +++ b/packages/db/seed/recon/utils.ts @@ -0,0 +1,9 @@ +import superjson from 'superjson' + +import fs from 'fs' +import path from 'path' + +export const readSuperJSON = (filename: string) => { + const data = fs.readFileSync(path.resolve(__dirname, `./generated/${filename}.json`), 'utf-8') + return superjson.parse(data) +} From 4b4f7d97ddb71b1f8994fa4e991fc7596cd0d2ab Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Fri, 23 Jun 2023 11:16:45 -0400 Subject: [PATCH 03/66] add generators, organize files --- packages/db/seed/recon/generated/types.ts | 33 +++++ packages/db/seed/recon/index.ts | 6 +- .../{generator.ts => lib/generateDbMaps.ts} | 130 +++++++++++++++++- packages/db/seed/recon/{ => lib}/logger.ts | 2 +- packages/db/seed/recon/{ => lib}/types.ts | 0 packages/db/seed/recon/{ => lib}/utils.ts | 2 +- .../db/seed/recon/{ => parsers}/attributes.ts | 8 +- packages/db/seed/recon/parsers/tagDataMaps.ts | 38 +++++ 8 files changed, 201 insertions(+), 18 deletions(-) create mode 100644 packages/db/seed/recon/generated/types.ts rename packages/db/seed/recon/{generator.ts => lib/generateDbMaps.ts} (62%) rename packages/db/seed/recon/{ => lib}/logger.ts (91%) rename packages/db/seed/recon/{ => lib}/types.ts (100%) rename packages/db/seed/recon/{ => lib}/utils.ts (65%) rename packages/db/seed/recon/{ => parsers}/attributes.ts (71%) create mode 100644 packages/db/seed/recon/parsers/tagDataMaps.ts diff --git a/packages/db/seed/recon/generated/types.ts b/packages/db/seed/recon/generated/types.ts new file mode 100644 index 0000000000..f5296a995b --- /dev/null +++ b/packages/db/seed/recon/generated/types.ts @@ -0,0 +1,33 @@ +export type CountryMap = Map + +export type DistList = { id: string; slug: string }[] + +export type OrgIdMap = Map + +export type LocationIdMap = Map + +export type ServiceIdMap = Map + +export type ServiceTagMap = Map + +export type AttributeMap = Map< + string, + { + id: string + requireText: boolean + requireLanguage: boolean + requireGeo: boolean + requireBoolean: boolean + requireData: boolean + } +> + +export type LanguageMap = Map + +export type SocialMediaMap = Map + +export type UserTypeMap = Map + +export type UserIdMap = Map + +export type PermissionMap = Map diff --git a/packages/db/seed/recon/index.ts b/packages/db/seed/recon/index.ts index 64ffd4b976..7069515955 100644 --- a/packages/db/seed/recon/index.ts +++ b/packages/db/seed/recon/index.ts @@ -1,8 +1,8 @@ import { Listr, PRESET_TIMER } from 'listr2' -import * as generators from './generator' -import { attachLogger } from './logger' -import { type Context, type ListrJob } from './types' +import * as generators from './lib/generateDbMaps' +import { attachLogger } from './lib/logger' +import { type Context, type ListrJob } from './lib/types' const renderOptions = { bottomBar: 10, diff --git a/packages/db/seed/recon/generator.ts b/packages/db/seed/recon/lib/generateDbMaps.ts similarity index 62% rename from packages/db/seed/recon/generator.ts rename to packages/db/seed/recon/lib/generateDbMaps.ts index da854c8cc2..2613093164 100644 --- a/packages/db/seed/recon/generator.ts +++ b/packages/db/seed/recon/lib/generateDbMaps.ts @@ -5,15 +5,18 @@ import fs from 'fs' import path from 'path' import { prisma, type Prisma } from '~db/client' -import { attachLogger } from '~db/seed/recon/logger' -import { type ListrJob } from '~db/seed/recon/types' +import { attachLogger } from '~db/seed/recon/lib/logger' +import { type ListrJob } from '~db/seed/recon/lib/types' // import { createLogger } from './logger' const writeSuperJSON = (filename: string, data: unknown) => { - fs.writeFileSync(path.resolve(__dirname, `./generated/${filename}.json`), superjson.stringify(data)) + fs.writeFileSync(path.resolve(__dirname, `../generated/${filename}.json`), superjson.stringify(data)) } +const typeOutput: string[] = [] + +// #region Countries export const generateCountryMap = { title: 'Generate Country Map', task: async (_ctx, task) => { @@ -29,6 +32,11 @@ export const generateCountryMap = { }, } satisfies ListrJob +typeOutput.push('export type CountryMap = Map') + +// #endregion + +// #region Districts export const generateDistList = { title: 'Generate Governing District List', task: async (_ctx, task) => { @@ -44,6 +52,12 @@ export const generateDistList = { }, } satisfies ListrJob +typeOutput.push('export type DistList = { id: string; slug: string }[]') + +// #endregion + +// #region Organization IDs + export const generateOrgIdMap = { title: 'Generate Organization ID Map', task: async (_ctx, task) => { @@ -60,6 +74,11 @@ export const generateOrgIdMap = { }, } satisfies ListrJob +typeOutput.push('export type OrgIdMap = Map') + +// #endregion + +// #region Location IDs export const generateLocationIdMap = { title: 'Generate Location ID Map', task: async (_ctx, task) => { @@ -75,6 +94,12 @@ export const generateLocationIdMap = { }, } satisfies ListrJob +typeOutput.push('export type LocationIdMap = Map') + +// #endregion + +// #region Service IDs + export const generateServiceIdMap = { title: 'Generate Service ID Map', task: async (_ctx, task) => { @@ -90,6 +115,11 @@ export const generateServiceIdMap = { }, } satisfies ListrJob +typeOutput.push('export type ServiceIdMap = Map') + +// #endregion + +// #region Service Tags export const generateServiceTagMap = { title: 'Generate Service Tag Map', task: async (_ctx, task) => { @@ -101,14 +131,21 @@ export const generateServiceTagMap = { }, } satisfies ListrJob +typeOutput.push('export type ServiceTagMap = Map') + +// #endregion + +// #region Attributes + export const generateAttributeMap = { title: 'Generate Attribute Map', task: async (_ctx, task) => { attachLogger(task) const attributes = await prisma.attribute.findMany({ select: { - id: true, tsKey: true, + tag: true, + id: true, requireText: true, requireLanguage: true, requireGeo: true, @@ -117,13 +154,23 @@ export const generateAttributeMap = { }, }) task.output = `Attributes retrieved: ${attributes.length}` - const attributeMap = new Map>( - attributes.map(({ tsKey, ...rest }) => [tsKey, rest]) + const attributeMap = new Map>( + attributes.flatMap(({ tsKey, tag, ...rest }) => [ + [tsKey, rest], + [tag, rest], + ]) ) writeSuperJSON('attributeMap', attributeMap) }, } satisfies ListrJob +typeOutput.push( + 'export type AttributeMap = Map' +) + +// #endregion + +// #region Languages export const generateLanguageMap = { title: 'Generate Language Map', task: async (_ctx, task) => { @@ -142,6 +189,11 @@ export const generateLanguageMap = { }, } satisfies ListrJob +typeOutput.push('export type LanguageMap = Map') + +// #endregion + +// #region Social Media Services export const generateSocialMediaMap = { title: 'Generate Social Media Map', task: async (_ctx, task) => { @@ -155,6 +207,12 @@ export const generateSocialMediaMap = { }, } satisfies ListrJob +typeOutput.push('export type SocialMediaMap = Map') + +// #endregion + +// #region User Types + export const generateUserTypeMap = { title: 'Generate User Type Map', task: async (_ctx, task) => { @@ -167,3 +225,63 @@ export const generateUserTypeMap = { writeSuperJSON('userTypeMap', userTypeMap) }, } satisfies ListrJob + +typeOutput.push('export type UserTypeMap = Map') + +// #endregion + +// #region User IDs + +export const generateUserIdMap = { + title: 'Generate User ID Map', + task: async (_ctx, task) => { + attachLogger(task) + const users = await prisma.user.findMany({ + select: { id: true, legacyId: true }, + }) + task.output = `Users retrieved: ${users.length}` + const userIdMap = new Map( + compact(users.map((u) => (u.legacyId ? [u.legacyId, u.id] : undefined))) + ) + writeSuperJSON('userIdMap', userIdMap) + }, +} satisfies ListrJob + +typeOutput.push('export type UserIdMap = Map') + +// #endregion + +// #region Permissions + +export const generatePermissionMap = { + title: 'Generate Permission Map', + task: async (_ctx, task) => { + attachLogger(task) + const permissions = await prisma.permission.findMany({ + select: { name: true, id: true }, + }) + task.output = `Permissions retrieved: ${permissions.length}` + const permissionMap = new Map(permissions.map(({ name, id }) => [name.toLowerCase(), id])) + writeSuperJSON('permissionMap', permissionMap) + }, +} satisfies ListrJob + +typeOutput.push('export type PermissionMap = Map') + +// #endregion + +// #region Types + +export const generateTypes = { + title: 'Generate Types', + task: async (_ctx, task) => { + attachLogger(task) + + const output = typeOutput.join('\n\n') + + task.output = `Types exported: ${typeOutput.length}` + fs.writeFileSync(path.resolve(__dirname, '../generated/', 'types.ts'), output) + }, +} + +// #endregion diff --git a/packages/db/seed/recon/logger.ts b/packages/db/seed/recon/lib/logger.ts similarity index 91% rename from packages/db/seed/recon/logger.ts rename to packages/db/seed/recon/lib/logger.ts index a7baf7ba8c..6a5f58f415 100644 --- a/packages/db/seed/recon/logger.ts +++ b/packages/db/seed/recon/lib/logger.ts @@ -10,7 +10,7 @@ const getTimestamp = () => DateTime.now().toFormat('yyyyMMdd_HHmmss') const logFile = (file: string, output: string) => { const timestamp = DateTime.now().toFormat('yyyy-MM-dd HH:mm:ss') - const outFile = path.resolve(__dirname, './logs/', file) + const outFile = path.resolve(__dirname, '../logs/', file) const formattedOutput = `[${timestamp}] ${output}\n` fs.writeFileSync(outFile, formattedOutput, { flag: 'a' }) } diff --git a/packages/db/seed/recon/types.ts b/packages/db/seed/recon/lib/types.ts similarity index 100% rename from packages/db/seed/recon/types.ts rename to packages/db/seed/recon/lib/types.ts diff --git a/packages/db/seed/recon/utils.ts b/packages/db/seed/recon/lib/utils.ts similarity index 65% rename from packages/db/seed/recon/utils.ts rename to packages/db/seed/recon/lib/utils.ts index 2f7cb8861b..649dab0ec9 100644 --- a/packages/db/seed/recon/utils.ts +++ b/packages/db/seed/recon/lib/utils.ts @@ -4,6 +4,6 @@ import fs from 'fs' import path from 'path' export const readSuperJSON = (filename: string) => { - const data = fs.readFileSync(path.resolve(__dirname, `./generated/${filename}.json`), 'utf-8') + const data = fs.readFileSync(path.resolve(__dirname, `../generated/${filename}.json`), 'utf-8') return superjson.parse(data) } diff --git a/packages/db/seed/recon/attributes.ts b/packages/db/seed/recon/parsers/attributes.ts similarity index 71% rename from packages/db/seed/recon/attributes.ts rename to packages/db/seed/recon/parsers/attributes.ts index 458ebdeb3c..a007947239 100644 --- a/packages/db/seed/recon/attributes.ts +++ b/packages/db/seed/recon/parsers/attributes.ts @@ -1,5 +1,3 @@ -import { prisma, type Prisma } from '~db/client' - //#region Helper - isTruthy /** @@ -9,7 +7,7 @@ import { prisma, type Prisma } from '~db/client' * @param val - Typeof value * @returns A function that takes a value and returns a boolean. */ -const isTruthy = (val: string | boolean | number | undefined | unknown[]) => { +export const isTruthy = (val: string | boolean | number | undefined | unknown[]) => { const check = val?.toString().toLocaleLowerCase() if (check === 'unknown') return undefined if (check === 'yes' || check === 'true') return true @@ -17,7 +15,3 @@ const isTruthy = (val: string | boolean | number | undefined | unknown[]) => { } //#endregion - -//#region Data Maps - -export const countryMap = new Map() diff --git a/packages/db/seed/recon/parsers/tagDataMaps.ts b/packages/db/seed/recon/parsers/tagDataMaps.ts new file mode 100644 index 0000000000..cbbdb6ac8c --- /dev/null +++ b/packages/db/seed/recon/parsers/tagDataMaps.ts @@ -0,0 +1,38 @@ +export const tagDataMaps = { + minAge: new Map([ + ['18 and over', { min: 18 }], + ['18 and over', { min: 18 }], + ['12-25', { min: 12, max: 25 }], + ['14-20', { min: 14, max: 20 }], + ['21+', { min: 21 }], + ['18+', { min: 18 }], + ['For individuals 18+ living in the Greater Toronto Area who receive social assistance', { min: 18 }], + ['age 15 and over', { min: 15 }], + ['13 and over', { min: 13 }], + ['age 60 and over', { min: 60 }], + ['18 years or older', { min: 18 }], + ['1877', { min: 18, max: 77 }], + ['11-22', { min: 11, max: 22 }], + ['13-24', { min: 13, max: 24 }], + ['3 months', { min: 0.25 }], + ]), + maxAge: new Map([ + ['18 and under', { max: 18 }], + ['Age 18 and under', { max: 18 }], + ['age 18 and under', { max: 18 }], + ]), + range: new Map([ + ['18-24, 18-21', { min: 18, max: 24 }], + ['13-17; 18-24', { min: 13, max: 24 }], + ['13-24 and parents', { min: 13, max: 24 }], + ['ages 19-64', { min: 19, max: 64 }], + ['18-255724', { min: 18, max: 25 }], + ]), +} + +type NumRange = { + min?: number + max?: number +} + +type MapKey = string | number | boolean From 3f225ac87c070d963a13969a4350ae9e5b06e5b7 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Fri, 23 Jun 2023 16:54:42 -0400 Subject: [PATCH 04/66] disable zod-schemas --- packages/db/lib/superjsonMiddleware.ts | 2 +- packages/db/lib/zod.ts | 33 ++++++++++++++++++++++++++ packages/db/prisma/schema.prisma | 24 +++++++++---------- 3 files changed, 46 insertions(+), 13 deletions(-) create mode 100644 packages/db/lib/zod.ts diff --git a/packages/db/lib/superjsonMiddleware.ts b/packages/db/lib/superjsonMiddleware.ts index b98801fa5d..06ecd3fb30 100644 --- a/packages/db/lib/superjsonMiddleware.ts +++ b/packages/db/lib/superjsonMiddleware.ts @@ -4,7 +4,7 @@ import { type SuperJSONResult } from 'superjson/dist/types' import { Logger } from 'tslog' import { z } from 'zod' -import { NullableJsonValue } from '../zod-schemas' +import { NullableJsonValue } from './zod' const MODELS_TO_RUN: Prisma.ModelName[] = ['AttributeSupplement', 'Suggestion'] diff --git a/packages/db/lib/zod.ts b/packages/db/lib/zod.ts new file mode 100644 index 0000000000..86ba8b3432 --- /dev/null +++ b/packages/db/lib/zod.ts @@ -0,0 +1,33 @@ +import { z } from 'zod' + +import { Prisma } from '~db/client' + +export type NullableJsonInput = + | Prisma.JsonValue + | null + | 'JsonNull' + | 'DbNull' + | Prisma.NullTypes.DbNull + | Prisma.NullTypes.JsonNull + +export const transformJsonNull = (v?: NullableJsonInput) => { + if (!v || v === 'DbNull') return Prisma.DbNull + if (v === 'JsonNull') return Prisma.JsonNull + return v +} + +export const JsonValue: z.ZodType = z.union([ + z.string(), + z.number(), + z.boolean(), + z.lazy(() => z.array(JsonValue)), + z.lazy(() => z.record(JsonValue)), +]) + +export type JsonValueType = z.infer +export const NullableJsonValue = z + .union([JsonValue, z.literal('DbNull'), z.literal('JsonNull')]) + .nullable() + .transform((v) => transformJsonNull(v)) + +export type NullableJsonValueType = z.infer diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index 254298ab09..84ef5ec7cd 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -3,18 +3,18 @@ generator client { previewFeatures = ["extendedWhereUnique", "fieldReference", "fullTextSearch", "postgresqlExtensions", "tracing", "views", "jsonProtocol"] } -generator zod { - provider = "zod-prisma-types" - output = "../zod-schemas" - useMultipleFiles = true - createModelTypes = true - createInputTypes = false - createPartialTypes = true - addInputTypeValidation = false - addSelectType = false - useDefaultValidators = false - writeBarrelFiles = true -} +// generator zod { +// provider = "zod-prisma-types" +// output = "../zod-schemas" +// useMultipleFiles = true +// createModelTypes = true +// createInputTypes = false +// createPartialTypes = true +// addInputTypeValidation = false +// addSelectType = false +// useDefaultValidators = false +// writeBarrelFiles = true +// } generator kysely { provider = "prisma-kysely" From 6a29510e4f3b4409214ebe9fd30a3f9f130affec Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Fri, 23 Jun 2023 16:57:22 -0400 Subject: [PATCH 05/66] porting over helpers --- packages/db/seed/recon/parsers/attributes.ts | 161 +++++++++++++++++++ 1 file changed, 161 insertions(+) diff --git a/packages/db/seed/recon/parsers/attributes.ts b/packages/db/seed/recon/parsers/attributes.ts index a007947239..9b198783b0 100644 --- a/packages/db/seed/recon/parsers/attributes.ts +++ b/packages/db/seed/recon/parsers/attributes.ts @@ -1,3 +1,10 @@ +import superjson from 'superjson' +import { z } from 'zod' + +import { tagDataMaps } from './tagDataMaps' +import { type AttributeMap, type CountryMap, type DistList, type LanguageMap } from '../generated/types' +import { readSuperJSON } from '../lib/utils' + //#region Helper - isTruthy /** @@ -15,3 +22,157 @@ export const isTruthy = (val: string | boolean | number | undefined | unknown[]) } //#endregion + +const countryMap = readSuperJSON('countryMap') +const distList = readSuperJSON('distList') +const attributeMap = readSuperJSON('attributeMap') +const languageMap = readSuperJSON('languageMap') + +const areaCountryMap = new Map([ + ['canada', 'ca'], + ['united-states', 'us'], + ['mexico', 'mx'], +]) + +const getAreaRecord = (tag: string): { id: string; type: 'country' | 'dist' } | undefined => { + const tagBreakdown = tag.split('-') + tagBreakdown.shift() + const type = tagBreakdown.shift() + const search = tagBreakdown.join('-') + const state = new RegExp(`\\w{2}-${search}`, 'gi') + const county = new RegExp(`\\w{2}-${search}-.*`, 'gi') + switch (type) { + case 'national': { + const cca2 = areaCountryMap.get(search) + if (!cca2) return undefined + const countryId = countryMap.get(cca2) + if (!countryId) return undefined + return { + type: 'country' as const, + id: countryId, + } + } + case 'county': + case 'state': { + const result = distList.find((x) => x.slug.match(type === 'county' ? county : state)) + if (!result) return undefined + return { + type: 'dist' as const, + id: result.id, + } + } + default: { + return undefined + } + } +} + +/** Generate "incompatible" attribute for unknown/misc tags */ +const incompatible = (tag: string, value?: string | number | boolean) => { + const attribute = attributeMap.get('system-incompatible-info') + if (!attribute) throw new Error('Cannot find "incompatible info" tag') + return { + attribute, + data: { [tag]: value }, + type: 'unknown' as const, + } +} + +export const tagParser = (tag: string, value: string | number | boolean) => { + const speakerRegex = /community-(.+)-speakers/i + const langRegex = /lang-(.+)/i + const areaRegex = /service-(?:county|national|state)-(.+)/i + const ageRegex = /elig-age.*/i + + let attribId: string | undefined + let supplementData: AttributeSupplementData + + switch (true) { + case tag === 'elig-description' && typeof value === 'string': { + attribId = attributeMap.get('eligibility.other-describe')?.id + supplementData = { text: value.toString() } + break + } + case tag === 'cost-fees' && typeof value === 'string': { + attribId = attributeMap.get(tag)?.id + supplementData = { text: value.toString() } + break + } + case ageRegex.test(tag): { + attribId = attributeMap.get('eligibility.elig-age')?.id + switch (tag) { + case 'elig-age-or-over': { + const parsedAge = z.coerce.number().safeParse(value) + const ageData = parsedAge.success ? { min: parsedAge.data } : tagDataMaps.maxAge.get(value) + if (!ageData) { + return incompatible(tag) + } + supplementData = { data: ageData } + break + } + case 'elig-age-or-under (value = #)': + case 'elig-age-or-under': { + const parsedAge = z.coerce.number().safeParse(value) + const ageData = parsedAge.success ? { max: parsedAge.data } : tagDataMaps.maxAge.get(value) + if (!ageData) { + return incompatible(tag) + } + supplementData = { data: ageData } + break + } + default: { + const range = tagDataMaps.range.get(value) + if (range) { + supplementData = { data: range } + break + } + const ageSplit = typeof value === 'string' ? value.split('-') : undefined + const ageParse = z.tuple([z.coerce.number(), z.coerce.number()]).safeParse(ageSplit) + if (!ageParse.success) { + return incompatible(tag) + } + supplementData = { data: { min: ageParse.data[0], max: ageParse.data[1] } } + } + } + break + } + case speakerRegex.test(tag): { + attribId = attributeMap.get('community-language-speakers')?.id + const [, lang] = speakerRegex.exec(tag) ?? [undefined, ''] + // !!: Check to see if this is passing the full name or just the ISO... + const langRecord = languageMap.get(lang) + if (!langRecord) { + return incompatible(tag) + } + + break + } + + case attributeMap.get(tag) !== undefined: { + const attribute = attributeMap.get(tag) + if (!attribute) return incompatible(tag) + attribId = attribute.id + + supplementData = { + boolean: attribute.requireBoolean ? isTruthy(value) : undefined, + text: attribute.requireText ? value?.toString() : undefined, + data: + !attribute.requireBoolean && !attribute.requireText + ? typeof value === 'object' + ? value + : { migrated: value } + : undefined, + } + break + } + } +} + +interface AttributeSupplementData { + countryId?: string + govDistId?: string + languageId?: string + text?: string + boolean?: boolean + data?: unknown +} From ca0c7839853f44ecb5d3d24bdde0a4037d3144bf Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 26 Jun 2023 11:21:23 -0400 Subject: [PATCH 06/66] finish up attribute parser --- packages/db/seed/recon/parsers/attributes.ts | 95 ++++++++++++++------ 1 file changed, 68 insertions(+), 27 deletions(-) diff --git a/packages/db/seed/recon/parsers/attributes.ts b/packages/db/seed/recon/parsers/attributes.ts index 9b198783b0..0d5242aa9b 100644 --- a/packages/db/seed/recon/parsers/attributes.ts +++ b/packages/db/seed/recon/parsers/attributes.ts @@ -34,7 +34,7 @@ const areaCountryMap = new Map([ ['mexico', 'mx'], ]) -const getAreaRecord = (tag: string): { id: string; type: 'country' | 'dist' } | undefined => { +const getAreaRecord = (tag: string): { data: AttributeSupplementData } | undefined => { const tagBreakdown = tag.split('-') tagBreakdown.shift() const type = tagBreakdown.shift() @@ -48,8 +48,7 @@ const getAreaRecord = (tag: string): { id: string; type: 'country' | 'dist' } | const countryId = countryMap.get(cca2) if (!countryId) return undefined return { - type: 'country' as const, - id: countryId, + data: { countryId }, } } case 'county': @@ -57,8 +56,7 @@ const getAreaRecord = (tag: string): { id: string; type: 'country' | 'dist' } | const result = distList.find((x) => x.slug.match(type === 'county' ? county : state)) if (!result) return undefined return { - type: 'dist' as const, - id: result.id, + data: { govDistId: result.id }, } } default: { @@ -69,11 +67,11 @@ const getAreaRecord = (tag: string): { id: string; type: 'country' | 'dist' } | /** Generate "incompatible" attribute for unknown/misc tags */ const incompatible = (tag: string, value?: string | number | boolean) => { - const attribute = attributeMap.get('system-incompatible-info') + const attribute = attributeMap.get('sys.incompatible-info') if (!attribute) throw new Error('Cannot find "incompatible info" tag') return { - attribute, - data: { [tag]: value }, + attributeId: attribute.id, + supplementData: { [tag]: value }, type: 'unknown' as const, } } @@ -85,19 +83,27 @@ export const tagParser = (tag: string, value: string | number | boolean) => { const ageRegex = /elig-age.*/i let attribId: string | undefined - let supplementData: AttributeSupplementData + let supplementData: AttributeSupplementData | undefined + let type: 'attribute' | 'serviceArea' | 'unknown' = 'attribute' switch (true) { + // #region Elibility description case tag === 'elig-description' && typeof value === 'string': { attribId = attributeMap.get('eligibility.other-describe')?.id supplementData = { text: value.toString() } break } + // #endregion + + // #region Cost case tag === 'cost-fees' && typeof value === 'string': { attribId = attributeMap.get(tag)?.id supplementData = { text: value.toString() } break } + // #endregion + + // #region Age restriction case ageRegex.test(tag): { attribId = attributeMap.get('eligibility.elig-age')?.id switch (tag) { @@ -105,7 +111,7 @@ export const tagParser = (tag: string, value: string | number | boolean) => { const parsedAge = z.coerce.number().safeParse(value) const ageData = parsedAge.success ? { min: parsedAge.data } : tagDataMaps.maxAge.get(value) if (!ageData) { - return incompatible(tag) + return incompatible(tag, value) } supplementData = { data: ageData } break @@ -115,7 +121,7 @@ export const tagParser = (tag: string, value: string | number | boolean) => { const parsedAge = z.coerce.number().safeParse(value) const ageData = parsedAge.success ? { max: parsedAge.data } : tagDataMaps.maxAge.get(value) if (!ageData) { - return incompatible(tag) + return incompatible(tag, value) } supplementData = { data: ageData } break @@ -129,42 +135,77 @@ export const tagParser = (tag: string, value: string | number | boolean) => { const ageSplit = typeof value === 'string' ? value.split('-') : undefined const ageParse = z.tuple([z.coerce.number(), z.coerce.number()]).safeParse(ageSplit) if (!ageParse.success) { - return incompatible(tag) + return incompatible(tag, value) } supplementData = { data: { min: ageParse.data[0], max: ageParse.data[1] } } } } break } + // #endregion + + // #region Languages offered case speakerRegex.test(tag): { - attribId = attributeMap.get('community-language-speakers')?.id + attribId = attributeMap.get('community.language-speakers')?.id const [, lang] = speakerRegex.exec(tag) ?? [undefined, ''] - // !!: Check to see if this is passing the full name or just the ISO... - const langRecord = languageMap.get(lang) + const langRecord = languageMap.get(lang.toLowerCase()) + if (!langRecord) { + return incompatible(tag, value) + } + supplementData = { languageId: langRecord } + break + } + case langRegex.test(tag): { + attribId = attributeMap.get('lang.lang-offered')?.id + const [, lang] = langRegex.exec(tag) ?? [undefined, ''] + const langRecord = languageMap.get(lang.toLowerCase()) if (!langRecord) { - return incompatible(tag) + return incompatible(tag, value) } + supplementData = { languageId: langRecord } + break + } + // #endregion + // #region Service Area + case areaRegex.test(tag): { + const area = getAreaRecord(tag) + if (!area) return incompatible(tag, value) + type = 'serviceArea' + supplementData = area.data break } - case attributeMap.get(tag) !== undefined: { - const attribute = attributeMap.get(tag) - if (!attribute) return incompatible(tag) + // #endregion + + // #region All others + case attributeMap.get(tag) !== undefined || attributeMap.get(tag.replace(/-/, '.')) !== undefined: { + const attribute = attributeMap.get(tag) ?? attributeMap.get(tag.replace(/-/, '.')) + if (!attribute) return incompatible(tag, value) attribId = attribute.id supplementData = { - boolean: attribute.requireBoolean ? isTruthy(value) : undefined, - text: attribute.requireText ? value?.toString() : undefined, - data: - !attribute.requireBoolean && !attribute.requireText - ? typeof value === 'object' - ? value - : { migrated: value } - : undefined, + ...(attribute.requireBoolean ? { boolean: isTruthy(value) } : {}), + ...(attribute.requireText ? { text: value?.toString() } : {}), + ...(attribute.requireData ? { data: typeof value === 'object' ? value : { migrated: value } } : {}), } + + // supplementData = { + // boolean: attribute.requireBoolean ? isTruthy(value) : undefined, + // text: attribute.requireText ? value?.toString() : undefined, + // data: attribute.requireData ? (typeof value === 'object' ? value : { migrated: value }) : undefined, + // } break } + // #endregion + default: { + return incompatible(tag, value) + } + } + return { + attributeId: attribId, + ...(Object.keys(supplementData).length ? { supplementData } : undefined), + type, } } From 232e756f9710d31f629ea28ed709031f337225ba Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 26 Jun 2023 14:16:58 -0400 Subject: [PATCH 07/66] add icons --- packages/db/seed/recon/lib/logger.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/db/seed/recon/lib/logger.ts b/packages/db/seed/recon/lib/logger.ts index 6a5f58f415..665fe665cd 100644 --- a/packages/db/seed/recon/lib/logger.ts +++ b/packages/db/seed/recon/lib/logger.ts @@ -4,6 +4,8 @@ import { DateTime } from 'luxon' import fs from 'fs' import path from 'path' +import { iconList, type IconList } from '~db/seed/lib' + import { type PassedTask } from './types' const getTimestamp = () => DateTime.now().toFormat('yyyyMMdd_HHmmss') @@ -19,3 +21,9 @@ const timestamp = getTimestamp() const logFilename = `${timestamp}.log` export const attachLogger = (task: PassedTask) => task.task.on(ListrTaskEventType.OUTPUT, (output) => logFile(logFilename, output)) + +export const formatMessage = (message: string, icon?: IconList, indent = false) => { + const dispIcon = icon ? `${iconList(icon)} ` : '' + const formattedMessage = `${indent ? '\t' : ''}${dispIcon}${message}` + return formattedMessage +} From 9c5ccc7a504fb3d7f1c06c5731b642a4af932675 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 26 Jun 2023 14:17:24 -0400 Subject: [PATCH 08/66] batch writer --- packages/db/seed/recon/lib/output.ts | 125 +++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 packages/db/seed/recon/lib/output.ts diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts new file mode 100644 index 0000000000..9adc6594e2 --- /dev/null +++ b/packages/db/seed/recon/lib/output.ts @@ -0,0 +1,125 @@ +import superjson from 'superjson' +import { type LiteralUnion } from 'type-fest' + +import fs from 'fs' +import path from 'path' + +import { type Prisma } from '~db/client' +import { formatMessage } from '~db/seed/recon/lib/logger' +import { type PassedTask } from '~db/seed/recon/lib/types' + +const outputDir = path.resolve(__dirname, '../output') +const createDir = path.resolve(outputDir, 'create') +const updateDir = path.resolve(outputDir, 'update') + +export const getBatchFile: GetBatchFile = ({ type, batchName }) => + type === 'create' ? `${createDir}${batchName}.json` : `${updateDir}${batchName}.json` +export const create = { + organization: new Set(), + translationKey: new Set(), + freeText: new Set(), + phoneType: new Set(), + orgLocation: new Set(), + orgPhone: new Set(), + orgEmail: new Set(), + orgWebsite: new Set(), + orgWebsiteLanguage: new Set(), + orgSocialMedia: new Set(), + outsideAPI: new Set(), + orgPhoto: new Set(), + orgHours: new Set(), + orgService: new Set(), + serviceAccess: new Set(), + attributeSupplement: new Set(), + orgServicePhone: new Set(), + orgServiceEmail: new Set(), + orgLocationService: new Set(), + orgServiceTag: new Set(), + organizationAttribute: new Set(), + serviceAttribute: new Set(), + serviceAccessAttribute: new Set(), + serviceArea: new Set(), + serviceAreaCountry: new Set(), + serviceAreaDist: new Set(), + userToOrganization: new Set(), + userPermission: new Set(), + organizationPermission: new Set(), + organizationEmail: new Set(), + organizationPhone: new Set(), +} + +export const update = { + organization: new Set(), + translationKey: new Set(), + orgLocation: new Set(), + orgPhone: new Set(), + orgEmail: new Set(), + orgWebsite: new Set(), + orgSocialMedia: new Set(), + orgService: new Set(), +} + +export const batchCount = new Map() +export const writeBatches = (task: PassedTask, clear = false) => { + // Create + for (const batchName in create) { + const batch = create[batchName] + const batchFile = getBatchFile({ type: 'create', batchName }) + if (clear) { + const outputData = new Set() + fs.writeFileSync(batchFile, superjson.stringify(outputData)) + task.output = formatMessage(`Clearing file: ${batchFile}`, 'trash') + } else { + const currentCount = batchCount.get(`create.${batchName}`) ?? 0 + const currentBatchCount = batch.size + const existingBatch = fs.existsSync(batchFile) + ? superjson.parse>(fs.readFileSync(batchFile, 'utf-8')) + : [] + const outputData = new Set([...existingBatch, ...batch]) + fs.writeFileSync(batchFile, superjson.stringify(outputData)) + batchCount.set(`create.${batchName}`, currentCount + currentBatchCount) + task.output = formatMessage( + `Records added to ${batchName}.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, + 'write', + true + ) + create[batchName].clear() + } + } + // Updates + for (const batchName in update) { + const batch = update[batchName] + const batchFile = getBatchFile({ type: 'update', batchName }) + if (clear) { + const outputData = new Set() + fs.writeFileSync(batchFile, superjson.stringify(outputData)) + task.output = formatMessage(`Clearing file: ${batchFile}`, 'trash') + } else { + const currentCount = batchCount.get(`update.${batchName}`) ?? 0 + const currentBatchCount = batch.size + const existingBatch = fs.existsSync(batchFile) + ? superjson.parse>(fs.readFileSync(batchFile, 'utf-8')) + : [] + const outputData = new Set([...existingBatch, ...batch]) + fs.writeFileSync(batchFile, superjson.stringify(outputData)) + batchCount.set(`update.${batchName}`, currentCount + currentBatchCount) + task.output = formatMessage( + `Records added to ${batchName}.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, + 'write', + true + ) + update[batchName].clear() + } + } +} + +interface GetCreateParams { + type: 'create' + batchName: LiteralUnion +} +interface GetUpdateParams { + type: 'update' + batchName: LiteralUnion +} + +type GetBatchFile = (params: GetCreateParams | GetUpdateParams) => string From fc89bb2d77985022cdd9857f7032ca0ce66bda0d Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 26 Jun 2023 18:50:50 -0400 Subject: [PATCH 09/66] data generators & corrections --- packages/db/.gitignore | 3 + packages/db/.prettierignore | 3 + .../db/seed/recon/corrections/country.json | 1 + .../seed/recon/corrections/countryById.json | 1 + .../db/seed/recon/corrections/govDist.json | 1 + .../seed/recon/corrections/govDistCity.json | 1 + packages/db/seed/recon/corrections/hours.json | 1 + packages/db/seed/recon/corrections/hours.ts | 19 ++++++ .../db/seed/recon/corrections/location.ts | 18 ++++++ packages/db/seed/recon/generated/types.ts | 8 +++ packages/db/seed/recon/lib/generateDbMaps.ts | 61 ++++++++++++++++++- 11 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 packages/db/seed/recon/corrections/country.json create mode 100644 packages/db/seed/recon/corrections/countryById.json create mode 100644 packages/db/seed/recon/corrections/govDist.json create mode 100644 packages/db/seed/recon/corrections/govDistCity.json create mode 100644 packages/db/seed/recon/corrections/hours.json create mode 100644 packages/db/seed/recon/corrections/hours.ts create mode 100644 packages/db/seed/recon/corrections/location.ts diff --git a/packages/db/.gitignore b/packages/db/.gitignore index 860b3b54bf..a2d88eefb6 100644 --- a/packages/db/.gitignore +++ b/packages/db/.gitignore @@ -19,6 +19,9 @@ seed/data/downloaded/* !seed/data/downloaded/.gitkeep seed/migrate-edits/*.json seed/recon/generated/*.json +seed/recon/corrections/*.json +seed/recon/output/**/*.json +seed/recon/input/**/*.json prisma/generated prisma/dbml diff --git a/packages/db/.prettierignore b/packages/db/.prettierignore index bd5ed053fb..8cd9b09125 100644 --- a/packages/db/.prettierignore +++ b/packages/db/.prettierignore @@ -20,3 +20,6 @@ pnpm-lock.yaml .DS_Store .eslintignore prisma/data-migrations/**/*.json +seed/recon/corrections/*.json +seed/recon/output/**/*.json +seed/recon/input/**/*.json diff --git a/packages/db/seed/recon/corrections/country.json b/packages/db/seed/recon/corrections/country.json new file mode 100644 index 0000000000..9c4d5e2c38 --- /dev/null +++ b/packages/db/seed/recon/corrections/country.json @@ -0,0 +1 @@ +{"json":[["15227","US"],["60625","US"],["73501","US"],["79901","US"],["Alberta","CA"],["CA","CA"],["Canada ","CA"],["Canada","CA"],["EE.UU","US"],["Mexico ","MX"],["Mexico","MX"],["Michoacán","MX"],["México ","MX"],["México","MX"],["MX","MX"],["The United States of America","US"],["U.S.","US"],["U.S.A","US"],["U.S.A.","US"],["US","US"],["USA ","US"],["USA","US"],["United Staes","US"],["United States ","US"],["United States of America","US"],["United States","US"],["Unites States","US"],["Virgin Islands","VI"],["Puerto Rico","PR"],["PR","PR"],["GU","GU"],["VI","VI"],["Fairbanks","US"],["85007","US"],["Northern Mariana Islands","MP"],["Palau","PW"],["Marshall Islands","MH"],["Guam","GU"],[" United States","US"],["89101","US"],["AS","AS"],["MP","MP"],["MH","MH"],["PW","PW"]],"meta":{"values":["map"]}} \ No newline at end of file diff --git a/packages/db/seed/recon/corrections/countryById.json b/packages/db/seed/recon/corrections/countryById.json new file mode 100644 index 0000000000..cf90a2c4ce --- /dev/null +++ b/packages/db/seed/recon/corrections/countryById.json @@ -0,0 +1 @@ +{"json":[["5e7e4bdad54f1760921a3ca7","US"],["60ecadc2f965f00015e51d01","US"],["5e7e4bdad54f1760921a3ec6","US"],["5e7e4bdad54f1760921a3ec7","US"],["5e7e4bdad54f1760921a3ec8","US"],["5e7e4bdad54f1760921a3ec9","US"],["5e7e4bdad54f1760921a3eca","US"],["60fac93c663b3f0015b244d1","US"],["5e7e4bdad54f1760921a3fd2","US"],["5e7e4bdad54f1760921a3fd4","US"],["5e7e4bdad54f1760921a3fd5","US"],["5e7e4bdad54f1760921a3fd6","US"],["5e7e4bdad54f1760921a3fd7","US"],["5e7e4bdad54f1760921a3fd8","US"],["5e7e4bdad54f1760921a3fd9","US"],["618aa61489824800166fe7c1","US"],["618aae9189824800166fe803","US"],["618aaeee89824800166fe816","US"],["618aaf8189824800166fe82b","US"],["618ab05889824800166fe843","US"],["618ab0e65adee200169c0572","US"],["5e7e4bdbd54f1760921a410f","US"],["6337b29cb155890016f14aa1","US"],["5e7e4bdbd54f1760921a4125","US"],["5e7e4bdbd54f1760921a4177","US"],["5e7e4bdbd54f1760921a417d","US"],["5e7e4bdbd54f1760921a4196","US"],["5e7e4bdbd54f1760921a4205","US"],["5e7e4bdbd54f1760921a428d","US"],["5e7e4bdbd54f1760921a42a2","US"],["5e7e4bdbd54f1760921a42a3","US"],["5e7e4bdbd54f1760921a42a4","US"],["5e7e4bdbd54f1760921a42a5","US"],["5e7e4bdbd54f1760921a42de","US"],["5e7e4bdbd54f1760921a42df","US"],["5e7e4bdbd54f1760921a42e0","US"],["5e7e4bdbd54f1760921a42f7","US"],["5e7e4bdbd54f1760921a430f","US"],["5e7e4bdbd54f1760921a4310","US"],["603e8cc3652598001579b701","US"],["610955b0de86b500156a2755","US"],["5e7e4bdbd54f1760921a4351","US"],["5e7e4bdbd54f1760921a4367","US"],["5e7e4bdbd54f1760921a436f","US"],["5e7e4bdcd54f1760921a4425","US"],["5e7e4bdcd54f1760921a443d","US"],["5e7e4bdcd54f1760921a445d","US"],["5e7e4bdcd54f1760921a449b","US"],["5e7e4bdcd54f1760921a44b1","US"],["5e7e4bdcd54f1760921a44c4","US"],["5e7e4bdcd54f1760921a44e2","US"],["5e7e4bdcd54f1760921a4547","US"],["5e7e4bdcd54f1760921a4548","US"],["60ff4543f6907600151fe987","US"],["5e7e4bdcd54f1760921a45a0","US"],["5e7e4bdcd54f1760921a45a1","US"],["5e7e4bdcd54f1760921a45a2","US"],["5e7e4bdcd54f1760921a45a3","US"],["5e7e4bdcd54f1760921a45a4","US"],["5e7e4bdcd54f1760921a45a5","US"],["60fefdbff6907600151fe68a","US"],["5e7e4bdcd54f1760921a45b8","US"],["5e7e4bdcd54f1760921a45bf","US"],["5e7e4bdcd54f1760921a45c0","US"],["5e7e4bdcd54f1760921a45c1","US"],["5e7e4bdcd54f1760921a45c2","US"],["5e7e4bdcd54f1760921a45c3","US"],["5e7e4bdcd54f1760921a45c4","US"],["5e7e4bdcd54f1760921a45d1","US"],["5e7e4bdcd54f1760921a45d2","US"],["5e7e4bdcd54f1760921a45d4","US"],["5f60e4638715ac00179b8c82","US"],["610c249ae0767700155da6ba","US"],["5e7e4bddd54f1760921a481e","US"],["5e7e4bddd54f1760921a4891","US"],["60da453cf033170015a76933","US"],["5e7e4bddd54f1760921a48cd","US"],["5e7e4bddd54f1760921a4938","US"],["5e7e4bddd54f1760921a495a","US"],["629f564e553d8b002edb749a","US"],["5e7e4bddd54f1760921a4968","US"],["629f50fe553d8b002edb731e","US"],["5e7e4bddd54f1760921a497c","US"],["5e7e4bddd54f1760921a498e","US"],["5e7e4bddd54f1760921a49a4","US"],["5e7e4bddd54f1760921a49b6","US"],["5e7e4bddd54f1760921a49b7","US"],["5e7e4bddd54f1760921a49d9","US"],["5e7e4bddd54f1760921a4a36","US"],["5e7e4bded54f1760921a4ab5","US"],["5e7e4bded54f1760921a4ac8","US"],["5e7e4bded54f1760921a4b07","US"],["5e7e4bded54f1760921a4b08","US"],["5e7e4bded54f1760921a4b14","US"],["5e7e4bded54f1760921a4b15","US"],["5e7e4bded54f1760921a4b16","US"],["5e7e4bded54f1760921a4b17","US"],["5e7e4bded54f1760921a4b18","US"],["5e7e4bded54f1760921a4b38","US"],["5e7e4bded54f1760921a4b39","US"],["5e7e4bded54f1760921a4b3a","US"],["5f0a4dda7ff40e00178093ee","US"],["60c911bcb5824600151f11ba","US"],["5e7e4bded54f1760921a4c2b","US"],["5e7e4bded54f1760921a4d10","CA"],["5e7e4bded54f1760921a4d11","CA"],["5e7e4bded54f1760921a4d12","CA"],["5e7e4bded54f1760921a4d22","CA"],["5e7e4bded54f1760921a4d23","CA"],["5f0611d3a440aa0017b34d54","CA"],["5e7e4bded54f1760921a4d2e","CA"],["5e7e4bded54f1760921a4d3e","CA"],["5e7e4bded54f1760921a4d47","CA"],["5e7e4bded54f1760921a4d65","CA"],["5e7e4bded54f1760921a4d6d","US"],["61017ebb4e31c70015392810","US"],["61017ee14e31c70015392813","US"],["5e7e4bded54f1760921a4d80","CA"],["5e7e4bded54f1760921a4d81","CA"],["5f628f446b370a001704c223","CA"],["5e7e4bded54f1760921a4da0","CA"],["5f6129188715ac00179b8d26","CA"],["5e7e4bded54f1760921a4dba","CA"],["5e7e4bded54f1760921a4dbb","CA"],["5e7e4bded54f1760921a4dbc","CA"],["5e7e4bded54f1760921a4dbd","CA"],["5e7e4bded54f1760921a4dbe","CA"],["5e7e4bded54f1760921a4dbf","CA"],["5e7e4bded54f1760921a4dc0","CA"],["5e7e4bded54f1760921a4dc1","CA"],["5e7e4bded54f1760921a4dc2","CA"],["5e7e4bded54f1760921a4dc3","CA"],["5e7e4bded54f1760921a4dc4","CA"],["5e7e4bded54f1760921a4dc5","CA"],["5e7e4bded54f1760921a4dc6","CA"],["5e7e4bded54f1760921a4dc7","CA"],["5e7e4bded54f1760921a4dc8","CA"],["5e7e4bded54f1760921a4dc9","CA"],["5e7e4bded54f1760921a4dca","CA"],["5e7e4bded54f1760921a4dcb","CA"],["5e7e4bded54f1760921a4dcc","CA"],["5e7e4bdfd54f1760921a4def","CA"],["5e7e4bdfd54f1760921a4e34","US"],["5e7e4bdfd54f1760921a4ea6","CA"],["5e7e4bdfd54f1760921a4f0b","US"],["5e7e4bdfd54f1760921a4f0c","US"],["5e7e4bdfd54f1760921a4f3d","CA"],["5e7e4bdfd54f1760921a4f50","CA"],["5f847d220d3c1400174f814b","US"],["5e7e4bdfd54f1760921a4f94","US"],["5e7e4bdfd54f1760921a5013","US"],["5e7e4bdfd54f1760921a503c","US"],["5e7e4bdfd54f1760921a503d","US"],["5e7e4bdfd54f1760921a503e","US"],["62c5c99d178f1100164f4d47","US"],["62c5cb77178f1100164f4d55","US"],["62c5ccb8178f1100164f4d60","US"],["5e7e4bdfd54f1760921a5055","US"],["5e7e4bdfd54f1760921a5056","US"],["5e7e4bdfd54f1760921a5057","US"],["5e7e4bdfd54f1760921a5058","US"],["5e7e4bdfd54f1760921a5095","US"],["5f729930fb580b00170a6908","US"],["5e7e4bdfd54f1760921a50b4","US"],["5f1afa57325ccf00173398fd","US"],["5f1afb8b325ccf0017339913","US"],["5f1afbe8325ccf001733991b","US"],["5f1afd21325ccf0017339924","US"],["5f1afd78325ccf001733992f","US"],["5e7e4bdfd54f1760921a50bd","CA"],["5e7e4bdfd54f1760921a50be","CA"],["5e7e4bdfd54f1760921a50d0","CA"],["5e7e4be0d54f1760921a5110","CA"],["5e7e4be0d54f1760921a5126","US"],["5e7e4be0d54f1760921a512f","CA"],["5e7e4be0d54f1760921a513f","CA"],["5e7e4be0d54f1760921a5156","CA"],["5e7e4be0d54f1760921a515f","CA"],["5e7e4be0d54f1760921a5169","CA"],["5e7e4be0d54f1760921a5176","CA"],["5e7e4be0d54f1760921a5187","CA"],["5e7e4be0d54f1760921a518b","CA"],["5e7e4be0d54f1760921a5192","CA"],["5e7e4be0d54f1760921a51a0","CA"],["5e7e4be0d54f1760921a51b8","CA"],["5e7e4be0d54f1760921a51c1","CA"],["5e7e4be0d54f1760921a51d0","CA"],["5e7e4be0d54f1760921a51e0","CA"],["5e7e4be0d54f1760921a51ec","CA"],["5e7e4be0d54f1760921a51ed","CA"],["5e7e4be0d54f1760921a51ee","CA"],["5e7e4be0d54f1760921a520e","CA"],["5e7e4be0d54f1760921a520f","CA"],["5e7e4be0d54f1760921a5210","CA"],["5e7e4be0d54f1760921a5211","CA"],["5f6d02292157be0017bf048b","CA"],["5e7e4be0d54f1760921a5227","CA"],["5e7e4be0d54f1760921a523c","CA"],["5e7e4be0d54f1760921a5260","CA"],["5e7e4be0d54f1760921a526b","CA"],["5e7e4be0d54f1760921a527d","CA"],["5e7e4be0d54f1760921a5298","CA"],["5e7e4be0d54f1760921a52c1","CA"],["5e7e4be0d54f1760921a52c2","CA"],["5e7e4be0d54f1760921a52d4","CA"],["5e7e4be0d54f1760921a52fb","CA"],["5e7e4be0d54f1760921a5313","CA"],["5e7e4be0d54f1760921a531a","CA"],["5e7e4be0d54f1760921a532c","CA"],["5e7e4be0d54f1760921a533a","CA"],["5e7e4be0d54f1760921a533b","CA"],["5e7e4be0d54f1760921a533c","CA"],["5e7e4be0d54f1760921a533d","CA"],["5e7e4be0d54f1760921a533e","CA"],["5e7e4be0d54f1760921a533f","CA"],["5e7e4be0d54f1760921a5340","CA"],["5e7e4be0d54f1760921a5341","CA"],["5e7e4be0d54f1760921a5342","CA"],["5e7e4be0d54f1760921a535b","US"],["5e7e4be0d54f1760921a537c","US"],["5e7e4be0d54f1760921a537d","US"],["5e7e4be0d54f1760921a537e","US"],["5e7e4be0d54f1760921a537f","US"],["5e7e4be0d54f1760921a5380","US"],["5e7e4be0d54f1760921a5381","US"],["61084b43d6fa370015df72a6","US"],["5e7e4be0d54f1760921a53a6","US"],["5e7e4be0d54f1760921a53a7","US"],["5e7e4be0d54f1760921a53a8","US"],["5e7e4be0d54f1760921a53a9","US"],["5e7e4be0d54f1760921a53b0","CA"],["5e7e4be1d54f1760921a53d6","CA"],["5e7e4be1d54f1760921a53d7","CA"],["5e7e4be1d54f1760921a53e4","CA"],["5e7e4be1d54f1760921a53f5","US"],["5f0c7fff39f3b00017b38055","US"],["5e7e4be1d54f1760921a5409","CA"],["5e7e4be1d54f1760921a5413","CA"],["5f6004e18715ac00179b8bca","CA"],["5e7e4be1d54f1760921a5426","CA"],["5e7e4be1d54f1760921a5436","CA"],["5e7e4be1d54f1760921a544d","CA"],["5e7e4be1d54f1760921a545e","CA"],["5e7e4be1d54f1760921a546c","CA"],["5e7e4be1d54f1760921a5498","CA"],["5e7e4be1d54f1760921a54a6","CA"],["5e7e4be1d54f1760921a552b","US"],["5e7e4be1d54f1760921a552c","US"],["5e7e4be1d54f1760921a552d","US"],["5e7e4be1d54f1760921a552e","US"],["5e7e4be1d54f1760921a5577","US"],["5e7e4be1d54f1760921a55a0","US"],["5e7e4be1d54f1760921a55a1","US"],["5e7e4be1d54f1760921a55a2","US"],["5e7e4be1d54f1760921a55a3","US"],["5e7e4be1d54f1760921a566a","US"],["5e7e4be1d54f1760921a56fc","US"],["62bb92295edbf80016281036","US"],["5e7e4be1d54f1760921a5723","US"],["5e7e4be2d54f1760921a578a","CA"],["5e7e4be2d54f1760921a578b","CA"],["5e7e4be2d54f1760921a578c","CA"],["5e7e4be2d54f1760921a57d7","US"],["5e7e4be2d54f1760921a5877","US"],["620f1597dbba06002e2fa1c7","US"],["5e7e4be2d54f1760921a5912","CA"],["5e7e4be2d54f1760921a591a","CA"],["620f1f83dbba06002e2fa1ec","US"],["620f1fd5dbba06002e2fa1f1","US"],["5e7e4be2d54f1760921a59b1","US"],["5f0cbc3a0aa72b0017658473","US"],["5e7e4be2d54f1760921a59bd","US"],["5f08f9345f09a9001739f04b","US"],["5e7e4be2d54f1760921a59da","US"],["60d32661c3164c0015bc20c6","US"],["60d338fac3164c0015bc21a0","US"],["60d33920c3164c0015bc21a5","US"],["60d33940c3164c0015bc21ab","US"],["60d33963c3164c0015bc21b2","US"],["60d339d6c3164c0015bc21dd","US"],["60d339f5c3164c0015bc21e6","US"],["60d33a26c3164c0015bc21f0","US"],["60d33a42c3164c0015bc21fb","US"],["60d33a5fc3164c0015bc2207","US"],["5e7e4be3d54f1760921a5a92","US"],["5f0916185f09a9001739f0d0","US"],["5e7e4be3d54f1760921a5a9c","US"],["5f0c99400aa72b00176582e4","US"],["5e7e4be3d54f1760921a5ae7","CA"],["5e7e4be3d54f1760921a5ae8","CA"],["5e7e4be3d54f1760921a5ae9","CA"],["5e7e4be3d54f1760921a5aea","CA"],["5e7e4be3d54f1760921a5aeb","CA"],["5e7e4be3d54f1760921a5aec","CA"],["5e7e4be3d54f1760921a5b04","CA"],["5e7e4be3d54f1760921a5b33","US"],["5f7fb78c57fe7a00175dc21d","US"],["5f7fbc3557fe7a00175dc23e","US"],["5e7e4be3d54f1760921a5b3b","CA"],["5e7e4be3d54f1760921a5b4d","US"],["5e7e4be3d54f1760921a5b5b","CA"],["5e7e4be3d54f1760921a5b6a","US"],["60e88d1be29da400157e3b68","US"],["5e7e4be3d54f1760921a5b97","CA"],["5e7e4be3d54f1760921a5be3","CA"],["5e7e4be3d54f1760921a5bec","CA"],["5e7e4be3d54f1760921a5c0c","CA"],["5e7e4be3d54f1760921a5c0d","CA"],["5e7e4be3d54f1760921a5c0e","CA"],["5e7e4be3d54f1760921a5c0f","CA"],["62b7b3ff70863900168f2e45","CA"],["5e7e4be3d54f1760921a5c26","CA"],["5e7e4be3d54f1760921a5c78","CA"],["5e7e4be4d54f1760921a5cb6","CA"],["5e7e4be4d54f1760921a5cb7","CA"],["5e8911968e957400179ddfb7","US"],["5e8916bf8e957400179ddffb","US"],["5e8916bf8e957400179ddffc","US"],["5e8916bf8e957400179ddffd","US"],["5e8916bf8e957400179ddffe","US"],["5e89172b8e957400179de007","US"],["5e89172b8e957400179de008","US"],["5e8a10638e957400179de068","US"],["5e8a237b8e957400179de079","US"],["5e8a2d928e957400179de0d6","US"],["5e8a34398e957400179de125","US"],["5e8a34a98e957400179de127","US"],["5e8a34a98e957400179de128","US"],["5e8a34a98e957400179de129","US"],["5e8a382a8e957400179de170","US"],["5e8a45bc8e957400179de1f0","US"],["5e8a58ca8e957400179de252","US"],["5e8a58ca8e957400179de253","US"],["60de0404772c7300159badc0","US"],["60de0445772c7300159badc8","US"],["5e9723dc8f45c10017baa6cf","CA"],["5e9f53eaa0121100172f4a1f","US"],["5ea62409c3402d00170e6acb","US"],["5ea75a2bc1b89f0017130653","US"],["60e485994906cf0015bc41c3","US"],["60e4864d4906cf0015bc41d9","US"],["60e486e84906cf0015bc41f3","US"],["60e4873a4906cf0015bc4208","US"],["60e488104906cf0015bc423a","US"],["5eab1a40136375001725df4b","US"],["629a4586831c5a003e700c6e","US"],["6168f9b36a40d100167af016","US"],["5ec2f168f3222c0017a1878e","US"],["60a5243783625c0015a30b29","US"],["5ee02aac5ea23e0017a7a865","US"],["5ee047b55ea23e0017a7a912","US"],["5ee11d335ea23e0017a7a98d","US"],["5ee12b015ea23e0017a7a9ba","US"],["5ee3c9901baddb0017966a25","US"],["5ee7fbea28fcbc001774f1e6","US"],["5ee9175a67416f0017b3dbbe","US"],["60e6ee87964c830015957dee","US"],["5ee8fbee67416f0017b3db62","US"],["5eea4858d45a2d0017a0f336","US"],["5eea719ed45a2d0017a0f396","US"],["5ef2238499695d0017ce2d0c","US"],["633cb43827f64200166d1cfb","US"],["5f111b4b26580400174b9642","US"],["60db921533bdd800152a4010","US"],["60db923e33bdd800152a4013","US"],["60db927233bdd800152a4017","US"],["60db92d133bdd800152a4020","US"],["60db931533bdd800152a4026","US"],["60db936633bdd800152a402d","US"],["60db93bc33bdd800152a4038","US"],["60db940233bdd800152a4044","US"],["60db946d33bdd800152a405a","US"],["5f4989eb1fe664001772b407","US"],["5f4d67875420890017bb8ee0","US"],["620e8b9adbba06002e2fa079","US"],["620e8c17dbba06002e2fa084","US"],["5f67fcc47791ec0017022c11","US"],["5f67fd9b7791ec0017022c15","US"],["5f67fe6f7791ec0017022c22","US"],["5f67ff117791ec0017022c2f","US"],["5f67ff537791ec0017022c39","US"],["5f67ffbf7791ec0017022c45","US"],["5f6800797791ec0017022c62","US"],["5f6800a87791ec0017022c73","US"],["5f6800db7791ec0017022c86","US"],["5f6801287791ec0017022ca0","US"],["5f6ec93ffe8faf0017149241","US"],["5f6ec962fe8faf0017149243","US"],["5f6ec99dfe8faf0017149246","US"],["5f7528af6303f9001733995d","US"],["5f7529636303f90017339965","US"],["5f75342e6303f90017339995","US"],["5f75345d6303f9001733999a","US"],["5f8c7ab6879ccd001739e1c0","US"],["5f99f993173ecb00177a1e95","US"],["60dcc43297360200157fd54b","US"],["6107df13d6fa370015df6d46","US"],["5f9c626903809f001743eb16","US"],["5f9ccac75da5cd0017bdf31c","US"],["5f9ef8a379a2270017c43c8b","US"],["5f9ef8cc79a2270017c43c8d","US"],["5fa4ff5e6165da00172b0aba","US"],["5fa4ffb46165da00172b0abc","US"],["5fab030808e6b400175ded97","US"],["5fbd9aa191fc6a0017aea890","US"],["5fbd9ad191fc6a0017aea892","US"],["617c4fceacb9af00162c2459","US"],["617c5005acb9af00162c2460","US"],["61048224d14cda0015d6d41a","US"],["61047d69d14cda0015d6d3c7","US"],["5fce7bda9e706e00177614b6","US"],["5fd167d1a126db0017d4766f","US"],["5fd192f8a126db0017d476a0","CA"],["5fe8dc7b365b8900173d7d90","CA"],["5fedfa9aefa4df0015b7b09c","US"],["5ff675ecd8898e001594cd31","CA"],["5ff75a4bd8898e001594cd57","US"],["5ff75d51d8898e001594cd67","US"],["5ffa29afaff7250015431183","CA"],["5ffa331caff72500154311bc","CA"],["5ffa335caff72500154311be","CA"],["5ffb6db23c817b0015a5fbdc","US"],["60ce6b351801e300155f27b8","US"],["602b4d8f129c000015532366","US"],["602b4dda129c000015532368","US"],["60c7dbceb5824600151f06e5","US"],["603c4bd7cae0620015826119","US"],["603e7508652598001579b67e","US"],["603e7533652598001579b680","US"],["6045722aabc40800159eff85","US"],["60563b47f09942001538723c","US"],["60563b65f09942001538723e","US"],["605a0d8b86a32f0015516e67","US"],["605a0db586a32f0015516e6c","US"],["605a0de186a32f0015516e71","US"],["6338735ab155890016f14d1b","US"],["6063d79505e9b60015a0e85d","US"],["60cf7d7d13a1370015c98692","US"],["60cf7de313a1370015c98697","US"],["60cf8ce113a1370015c9874d","US"],["61a86c32d929fe00166f35b6","US"],["6192c67410def9001632d583","US"],["6192c6a810def9001632d586","US"],["62bb5f4da42d3600163682b6","US"],["62bb5faca42d3600163682ba","US"],["62bb5ffda42d3600163682c7","US"],["62bb6046a42d3600163682cd","US"],["62bb60b7a42d3600163682e8","US"],["62bb6149a42d3600163682f6","US"],["60929db08e7dc30015317a2e","US"],["60929dd08e7dc30015317a30","US"],["61fb7c37aed35a002e222bf5","US"],["62cdaf574995b600164f9832","US"],["62cdbeb24995b600164f9879","US"],["60afe1512f913d0015ba1469","US"],["617ae987b8ec5b001655950c","US"],["62c85d2ca06df4001680d6ed","US"],["61953d61cf69d00016a04b86","US"],["617aea62b8ec5b0016559514","US"],["617aea8ab8ec5b0016559517","US"],["617aead2b8ec5b001655951b","US"],["60b58b76e94079001526196d","US"],["60b58bd4e940790015261970","US"],["60b58c42e940790015261975","US"],["60b58ce0e94079001526197d","US"],["60b58d3fe940790015261986","US"],["62b2028e2abbb000169caa0b","US"],["60b6f15ac585790015a66714","US"],["60b7e31c8a49790015bfc36b","US"],["60d21ae1eb60480015f2280e","US"],["62d2d421e7dfb1001682591f","US"],["62c4d34c1a8bad0016051097","US"],["60e7b2e6e29da400157e38ea","US"],["60e7b330e29da400157e38ec","US"],["6101eec63b069100156351a4","US"],["6101ef7b3b069100156351a6","US"],["6101efc13b069100156351a9","US"],["61310e83c583d40016b5e6ce","US"],["61310eecc583d40016b5e6d7","US"],["6156ace2b632290016c193d3","US"],["615b69905eabee0016ee9cc7","US"],["615b69ae5eabee0016ee9cc9","US"],["615b69d55eabee0016ee9ccc","US"],["615b6a195eabee0016ee9cd9","US"],["615b6a6c5eabee0016ee9cef","US"],["615b6a875eabee0016ee9cf5","US"],["615b6ac15eabee0016ee9cfc","US"],["61a146d06e47620016725120","US"],["61a147016e47620016725122","US"],["61a155456e47620016725149","US"],["61a16d876e476200167251aa","US"],["61a16df66e476200167251b0","US"],["61a695e49fcb5800160f0ee6","US"],["61a696019fcb5800160f0ee8","US"],["61cecc2a107d4400166c1f88","US"],["61cecc69107d4400166c1f8b","US"],["61cecc8c107d4400166c1f8e","US"],["61ceccbc107d4400166c1f92","US"],["61cecced107d4400166c1f97","US"],["61cecd0f107d4400166c1f9d","US"],["61cecd31107d4400166c1fa4","US"],["61cefe0c6c6bfb0016dcc1bd","US"],["61cf17126c6bfb0016dcc1c7","US"],["61d0893159db9600332ca889","US"],["61d08d2559db9600332ca8a2","US"],["61f4035b90fcea002e2514ae","US"],["61f4041b90fcea002e2514ed","US"],["61f4044190fcea002e2514f0","US"],["61f4047c90fcea002e251508","US"],["61f404a890fcea002e25150d","US"],["61f4057990fcea002e251515","US"],["61f4059390fcea002e251517","US"],["61f405ac90fcea002e25151a","US"],["61f405c390fcea002e25151e","US"],["61f405d490fcea002e251523","US"],["6201dda98a01fe002edde86f","US"],["62d726278e0eed0016a14e26","US"],["620322b9eb04fd002ecab38a","US"],["620942c0417025002ebd3399","US"],["620942f7417025002ebd339c","US"],["6209430e417025002ebd339f","US"],["621bcfefe4a829002e3fa020","US"],["621d0c84e4a829002e3fa514","US"],["621db16ce9deff002ef74370","US"],["621db19de9deff002ef74372","US"],["621db1cce9deff002ef74375","US"],["621db1f7e9deff002ef74379","US"],["621db21ee9deff002ef7437e","US"],["621db924e9deff002ef743cd","US"],["62339ebfe22400003e37af44","CA"],["6245e7dd8286b3002ed51b66","US"],["6245e7fe8286b3002ed51b6a","US"],["6245f1b18286b3002ed51c43","US"],["6245f61e8286b3002ed51c5b","US"],["624a1d80280ec4002ecdef1b","US"],["62584a94cd4225002ee41dca","US"],["6266b8e60e53a2003ebf8741","US"],["626b1d39b21ae1003e14f991","MX"],["6271724dbaa8d7003e5e0b2b","US"],["62709eeaff76e9003ec5f795","US"],["62758d1d49a566003e3a6a25","US"],["6279a5a652fb9c003e6dd4e3","US"],["6287d7f9a7f35f002e8ba86c","US"],["628bac0030b594002e88aa49","US"],["628bac1a30b594002e88aa4b","US"],["628bac3630b594002e88aa4e","US"],["628baca330b594002e88aa52","US"],["6291da431d5273002ef3951d","US"],["62aca091d0f7c900164b9e78","US"],["629f6a7f553d8b002edb7560","US"],["6338888db155890016f14d56","US"],["633889ecb155890016f14d92","US"],["62a7812a34961500161def7b","US"],["62bddd8065e149001633efde","US"],["62be577bf137990016de102e","US"],["62c63aee178f1100164f501e","US"],["62c63b7f178f1100164f503e","US"],["62c63c0d178f1100164f504a","US"],["62c63c9d178f1100164f5056","US"],["62c0932446d0c40016b7ed73","US"],["62c63cff178f1100164f505b","US"],["62c729fa690bcd00163c3740","CA"],["62cd99864995b600164f978a","US"],["62cd99d34995b600164f9791","US"],["62cf5a2c23b1b20016333954","US"],["62cf5ad623b1b20016333961","US"],["62cf5b1623b1b2001633396d","US"],["62cf5b5223b1b2001633397b","US"],["62dc47762c7b7f0016ac1e1d","US"],["62e44f425b13b30016bd975d","US"],["62fbdb06affb290016289caf","US"],["6302b2f22d0d7f0016ee4de1","US"],["6302b31d2d0d7f0016ee4de3","US"],["6302b34d2d0d7f0016ee4de8","US"],["6302b3812d0d7f0016ee4dec","US"],["6302b3a52d0d7f0016ee4df1","US"],["6302b3c12d0d7f0016ee4df7","US"],["6302b4072d0d7f0016ee4e13","US"],["6302b4272d0d7f0016ee4e1b","US"],["6302b4452d0d7f0016ee4e24","US"],["6302b4652d0d7f0016ee4e2e","US"],["6302b4992d0d7f0016ee4e39","US"],["6302b4b62d0d7f0016ee4e45","US"],["6316269209c8ed0016817afd","US"],["63162ae909c8ed0016817b25","US"],["63162b0909c8ed0016817b28","US"],["63162c9009c8ed0016817b33","US"],["6333538dd793a00016e670d7","US"],["6337aa8bb155890016f14a59","US"],["633748332f780e001678236f","US"],["633756322f780e00167823d3","US"],["633767092f780e001678248b","US"],["63376b8a2f780e0016782502","US"],["6337901613e4680016ded226","US"],["6337990c13e4680016ded296","US"],["6356a988e918310016eebf7b","US"],["635bfaea4d49790016f877e5","US"],["63810c3879bab100084bc952","US"],["5e7e4bdfd54f1760921a4eba","US"],["5e7e4be0d54f1760921a52ad","CA"],["60627e7286794c001521516f","CA"],["5e7e4be0d54f1760921a51ad","US"],["5f0cb7550aa72b0017658442","US"],["604aaba4d6a8130015fcd6bf","US"],["5f0916cb5f09a9001739f0d6","US"],["5e7e4be3d54f1760921a5b1b","US"],["5e7e4be3d54f1760921a5b80","US"],["5e7e4be3d54f1760921a5b8d","US"],["63531c63110d8a00163baba7","US"],["6351162aa4daa1001690e619","US"],["63511692a4daa1001690e62e","US"],["638285d1ba3e5a0008c6b2fb","US"],["6382860e1f65680008bbc106","US"],["625758451476bb002e8fe316","US"],["62044032681318002e1268cb","US"],["626be9a7b21ae1003e14f999","US"],["6320fd9fb0efd300168342a8","US"],["62bcc3865edbf80016281434","PR"],["62d5b21bdeeccd0016c3f16f","PR"],["62d5e5e9deeccd0016c3f2aa","PR"],["62d865392b86e50016749322","PR"],["62e1f57976f27d0016039c67","PR"],["62e2001d76f27d0016039c6d","PR"],["62e20a6c76f27d0016039c79","PR"],["62eb1598389733001607d5af","PR"],["62eb1a46389733001607d5ce","PR"],["62ec8bcbdd42bd0016791db4","PR"],["62ec8d7add42bd0016791db7","PR"],["62ec8ef9dd42bd0016791dba","PR"],["62f1926f2a874c0016119213","PR"],["62f3ca568e1e4500160cd73a","PR"],["62f3cb528e1e4500160cd746","PR"],["62f3ccd78e1e4500160cd754","PR"],["63b0607e1b5dfe00084df5e6","GU"],["63b0649b1b5dfe00084df5fd","AS"],["63b06805eafe7a000831b706","AS"],["63fadc1a3d28b70008345d16","US"],["6421e398e91446000884b30d","US"],["64297c44253eb5000835e92f","US"],["64297f7f5a79690008c1af13","US"],["645fda7155bfd90008a08f4c","US"],["645fda8cc772e1000809a0d6","US"],["645fdaa255bfd90008a08f50","US"],["645fdac2c772e1000809a0db","US"],["645fdadc55bfd90008a08f56","US"],["645fdaf8c772e1000809a0e2","US"],["645fdb2a55bfd90008a08f5e","US"],["646161236a6a450008191870","US"],["6464f7954d24b700089a6cb0","US"],["64616b14db1c90000810e8d5","US"],["64616b2931228900084e89ae","US"],["64616b41db1c90000810e8d8","US"],["64616b64fc2c310008884888","US"],["646a71a7709e800008b66084","US"],["644a96dfc863a90008747e8e","US"],["6472acba61bbc60008ceb8b3","US"],["6472b4864b2c3c000862b9ae","US"],["6472cd7e28b9e000084dc680","US"],["6477ed5e9455ba00084a1e80","US"],["6477f73b075f9d0008c8a8a9","US"],["6477f777075f9d0008c8a8ab","US"],["647830d69d517d0008e67270","US"],["647830e7d353ab0008310804","US"],["647b925143b62f000829a99f","US"],["647b9266f8bee900080dc2be","US"],["647bad4b64770c0008446371","US"],["647e45419414da0008cd547a","US"]],"meta":{"values":["map"]}} \ No newline at end of file diff --git a/packages/db/seed/recon/corrections/govDist.json b/packages/db/seed/recon/corrections/govDist.json new file mode 100644 index 0000000000..09c3dce4fe --- /dev/null +++ b/packages/db/seed/recon/corrections/govDist.json @@ -0,0 +1 @@ +{"json":[[" B.C.","mx-baja-california"],[" CA ","us-california"],[" D.C.","us-district-of-columbia"],[" FL","us-florida"],[" IA ","us-iowa"],[" IA","us-iowa"],[" IL ","us-illinois"],[" IL","us-illinois"],[" NV","us-nevada"],[" NY ","us-new-york"],[" NY","us-new-york"],[" Ontario","ca-ontario"],[" South Carolina","us-south-carolina"],["",null],["AB ","ca-alberta"],["AB","ca-alberta"],["AK","us-alaska"],["AL ","us-alabama"],["AL","us-alabama"],["AR ","us-arkansas"],["AR","us-arkansas"],["AZ","us-arizona"],["Aguascalientes","mx-aguascalientes"],["Alabama","us-alabama"],["Alaska ","us-alaska"],["Alaska","us-alaska"],["Alberta","ca-alberta"],["Arizona","us-arizona"],["Arkansas","us-arkansas"],["B.C.","mx-baja-california"],["BC ","ca-british-columbia"],["BC-Abbotsford ","ca-british-columbia"],["BC-Abbotsford","ca-british-columbia"],["BC-Burnaby","ca-british-columbia"],["BC-Campbell River","ca-british-columbia"],["BC-Chilliwack","ca-british-columbia"],["BC-Coquitlam","ca-british-columbia"],["BC-Courtenay","ca-british-columbia"],["BC-Cranbrook","ca-british-columbia"],["BC-Kamloops","ca-british-columbia"],["BC-Kelowna","ca-british-columbia"],["BC-Langley","ca-british-columbia"],["BC-Maple Ridge","ca-british-columbia"],["BC-Mexicali","mx-baja-california"],["BC-Mission","ca-british-columbia"],["BC-Nelson","ca-british-columbia"],["BC-New Westminster ","ca-british-columbia"],["BC-New Westminster","ca-british-columbia"],["BC-North Vancouver","ca-british-columbia"],["BC-Port Coquitlam","ca-british-columbia"],["BC-Powell River","ca-british-columbia"],["BC-Prince George","ca-british-columbia"],["BC-Richmond","ca-british-columbia"],["BC-Squamish","ca-british-columbia"],["BC-Surrey ","ca-british-columbia"],["BC-Surrey","ca-british-columbia"],["BC-Vancouver ","ca-british-columbia"],["BC-Vancouver","ca-british-columbia"],["BC-Victoria","ca-british-columbia"],["BC-Westminster","ca-british-columbia"],["Baja California ","mx-baja-california"],["Baja California Sur","mx-baja-california"],["Baja California","mx-baja-california"],["British Columbia ","ca-british-columbia"],["British Columbia","ca-british-columbia"],["CA ","us-california"],["CA","us-california"],["CDMX","mx-distrito-federal"],["CO","us-colorado"],["CT ","us-connecticut"],["CT","us-connecticut"],["California ","us-california"],["California","us-california"],["Campeche","mx-campeche"],["Cancún","mx-quintana-roo"],["Chiapas","mx-chiapas"],["Chihuahua ","mx-chihuahua"],["Chihuahua","mx-chihuahua"],["Ciudad de Mexico","mx-mexico"],["Coahuila de Zaragoza","mx-coahuila"],["Coahuila","mx-coahuila"],["Colorado","us-colorado"],["Connecticut","us-connecticut"],["D.C. ","us-district-of-columbia"],["D.C.","us-district-of-columbia"],["DC ","us-district-of-columbia"],["DC","us-district-of-columbia"],["DE","us-delaware"],["Delaware","us-delaware"],["District of Colombia ","us-district-of-columbia"],["District of Columbia","us-district-of-columbia"],["Distrito Federal","mx-distrito-federal"],["Edmonton","ca-alberta"],["Estado de Mexico","mx-mexico"],["FL ","us-florida"],["FL","us-florida"],["Federal District ","mx-distrito-federal"],["Federal District","mx-distrito-federal"],["Federal district","mx-distrito-federal"],["Florida","us-florida"],["GA","us-georgia"],["Georgia","us-georgia"],["Guam","GU"],["Guanajato","mx-guanajuato"],["Guanajuato","mx-guanajuato"],["HI ","us-hawaii"],["HI ","us-hawaii"],["HI","us-hawaii"],["Hawaii ","us-hawaii"],["Hawaii","us-hawaii"],["Hidalgo","mx-hidalgo"],["IA ","us-iowa"],["IA","us-iowa"],["ID","us-idaho"],["IL ","us-illinois"],["IL","us-illinois"],["IN ","us-indiana"],["IN","us-indiana"],["IOWA","us-iowa"],["Illinois","us-illinois"],["Iowa ","us-iowa"],["Iowa","us-iowa"],["Jalisco","mx-jalisco"],["KS ","us-kansas"],["KS","us-kansas"],["KY","us-kentucky"],["LA","us-louisiana"],["MA ","us-massachusetts"],["MA","us-massachusetts"],["MB","ca-manitoba"],["MD ","us-maryland"],["MD","us-maryland"],["ME ","us-maine"],["ME","us-maine"],["MI","us-michigan"],["MN","us-minnesota"],["MO ","us-missouri"],["MO","us-missouri"],["MS","us-mississippi"],["MT","us-montana"],["Maryland","us-maryland"],["Massachusetts ","us-massachusetts"],["Massachusetts","us-massachusetts"],["Mexicali","mx-baja-california"],["Mexico City ","mx-mexico"],["Mexico City","mx-mexico"],["Mexico","mx-mexico"],["Michoacan","mx-michoacan"],["Michoacán","mx-michoacan"],["Missouri","us-missouri"],["Montana ","us-montana"],["Montana","us-montana"],["Morelos","mx-morelos"],["Morelso","mx-morelos"],["NB","ca-new-brunswick"],["NC","us-north-carolina"],["ND","us-north-dakota"],["NE","us-nebraska"],["NH","us-new-hampshire"],["NJ","us-new-jersey"],["NL","ca-newfoundland-and-labrador"],["NM ","us-new-mexico"],["NM","us-new-mexico"],["NS","ca-nova-scotia"],["NT","ca-northwest-territories"],["NV ","us-nevada"],["NV","us-nevada"],["NY ","us-new-york"],["NY","us-new-york"],["Nayarit","mx-nayarit"],["Nebraska","us-nebraska"],["Nevada","us-nevada"],["New Brunswick","ca-new-brunswick"],["New Mexico","us-new-mexico"],["New York ","us-new-york"],["New York","us-new-york"],["North Carolina","us-north-carolina"],["North Dakota","us-north-dakota"],["Nova Scotia ","ca-nova-scotia"],["Nuevo Leon","mx-nuevo-leon"],["Nuevo León ","mx-nuevo-leon"],["Nuevo León","mx-nuevo-leon"],["OH","us-ohio"],["OK","us-oklahoma"],["ON ","ca-ontario"],["ON","ca-ontario"],["OR ","us-oregon"],["OR","us-oregon"],["Oaxaca","mx-oaxaca"],["Ohio","us-ohio"],["Ontario ","ca-ontario"],["Ontario","ca-ontario"],["Oregon","us-oregon"],["PA ","us-pennsylvania"],["PA","us-pennsylvania"],["Pennsylvania","us-pennsylvania"],["Puerto Rico ","PR"],["Puerto Rico","PR"],["Q.R.","mx-quintana-roo"],["QC","ca-quebec"],["Quebec ","ca-quebec"],["Quebec","ca-quebec"],["Queretero","mx-queretaro"],["Querétaro ","mx-queretaro"],["Querétaro","mx-queretaro"],["Quintana Roo ","mx-quintana-roo"],["Quintana Roo","mx-quintana-roo"],["Qunitana Roo","mx-quintana-roo"],["Québec","ca-quebec"],["RI ","us-rhode-island"],["Rhode Island","us-rhode-island"],["SC ","us-south-carolina"],["SC","us-south-carolina"],["SD","us-south-dakota"],["SK","ca-saskatchewan"],["San Luis Potosí","mx-san-luis-potosi"],["Saskatchewan","ca-saskatchewan"],["Sinaloa","mx-sinaloa"],["Sonora ","mx-sonora"],["Sonora","mx-sonora"],["South Carolina","us-south-carolina"],["South Dakota ","us-south-dakota"],["South Dakota","us-south-dakota"],["TN ","us-tennessee"],["TN","us-tennessee"],["TX ","us-texas"],["TX","us-texas"],["Tabasco","mx-tabasco"],["Tamaulipas","mx-tamaulipas"],["Tennessee","us-tennessee"],["Texas ","us-texas"],["Texas","us-texas"],["Tlaxcala","mx-tlaxcala"],["U.S. Virgin Island","VI"],["UT ","us-utah"],["UT","us-utah"],["Utah","us-utah"],["VA ","us-virginia"],["VA","us-virginia"],["VI ","VI"],["VI","VI"],["VT","us-vermont"],["Veracruz","mx-veracruz"],["Vermont","us-vermont"],["Virginia","us-virginia"],["Vt","us-vermont"],["WA ","us-washington"],["WA","us-washington"],["WI ","us-wisconsin"],["WI","us-wisconsin"],["WV","us-west-virginia"],["WY ","us-wyoming"],["WY","us-wyoming"],["Washington DC","us-washington"],["Washington","us-washington"],["Wyoming","us-wyoming"],["Yucatan","mx-yucatan"],["Yucatán","mx-yucatan"],["Zacatecas","mx-zacatecas"]],"meta":{"values":["map",{"13.1":["undefined"]}]}} \ No newline at end of file diff --git a/packages/db/seed/recon/corrections/govDistCity.json b/packages/db/seed/recon/corrections/govDistCity.json new file mode 100644 index 0000000000..ce02e5cff1 --- /dev/null +++ b/packages/db/seed/recon/corrections/govDistCity.json @@ -0,0 +1 @@ +{"json":[["Washington, DC","us-district-of-columbia"],["Toronto","ca-ontario"],["Mexico City","mx-distrito-federal"],["Washington, D.C.","us-district-of-columbia"],["Washington DC ","us-district-of-columbia"],["CDMX","mx-distrito-federal"]],"meta":{"values":["map"]}} \ No newline at end of file diff --git a/packages/db/seed/recon/corrections/hours.json b/packages/db/seed/recon/corrections/hours.json new file mode 100644 index 0000000000..0864c3351c --- /dev/null +++ b/packages/db/seed/recon/corrections/hours.json @@ -0,0 +1 @@ +{"json":[["08:30","08:30"],["10:30","10:30"],["",null],["09:00","09:00"],["17:00","17:00"],["10:00","10:00"],["00:00","00:00"],["9:00","09:00"],["08:00","08:00"],["18:00","18:00"],["13:30","13:30"],["12:00","12:00"],["14:00","14:00"],["14:30","14:30"],["13:00","13:00"],["8:00","08:00"],["08:45","08:45"],["17:30","17:30"],["16:00 ","16:00"],["18:00 ","18:00"],["11:00","11:00"],["20:30","20:30"],["19:30","19:30"],["15:00","15:00"],["16:00","16:00"],["07:00","07:00"],["18:30","18:30"],["19:00","19:00"],["15:30","15:30"],["8:30","08:30"],["13:00 ","13:00"],["12:00 ","12:00"],["09:30","09:30"],["07:30","07:30"],["9:30 ","09:30"],["09:00 ","09:00"],["13:30 ","13:30"],["16:30 ","16:30"],["16:30","16:30"],["9:00 ","09:00"],["07:15","07:15"],["7:30","07:30"],["23:30","23:30"],["20:00","20:00"],["09:15","09:15"],["07:45","07:45"],["11:30","11:30"],["21:00","21:00"],["7:00","07:00"],["06:30","06:30"],["12:30","12:30"],["09:00 am","09:00"],["09:40","09:40"],["9:30","09:30"],["02:00","02:00"],["08:45 ","08:45"],["08:30 ","08:30"],["6am","06:00"],["10:00 ","10:00"],["15:00 ","15:00"],["11:00 ","11:00"],["8pm","20:00"],["8:30 ","08:30"],["14:00 ","14:00"],["08:15","08:15"],["08:40","08:40"],["09:45","09:45"],["22:00","22:00"],["8","08:00"],["8:00 ","08:00"],["9:15","09:15"],["9:45","09:45"],["7:45","07:45"],["17:00 ","17:00"],["20:00 ","20:00"],["13:00 and 16:00 - 20:00","multi"],["16:15","16:15"],["0:00","00:00"],["08:30, 15:00","multi"],["9 AM","09:00"],["0830","08:30"],["12:05 pm","12:05"],["11:15 am","11:15"],["10:15","10:15"],["7am","07:00"],["10am","10:00"],["11a,","11:00"],["11am","11:00"],["4pm","16:00"],["6 pm","18:00"],["6pm","18:00"],["7pm","19:00"],["08:20","08:20"],["3:00","03:00"],["8:45","08:45"],["18:45","18:45"],["6:00 pm","18:00"],["19:15","19:15"],["Closed","closed"],["9am","09:00"],["0900","09:00"],["11:00 & 12:45","multi"],["11:00 am","11:00"],["08030","08:30"],["00:01","00:01"],["Closed/Cerrado ","closed"],["6:00","06:00"],["9:00am","09:00"],["15:45","15:45"],["Closed/Cerrado","closed"],["N/A",null],["10:00 am","10:00"],["08:00 ","08:00"],["CLOSED ","closed"],["CLOSED","closed"],["7:300","07:30"],["08:00-11:30, 13:00","multi"],["07:00 ","07:00"],["00:00 ","00:00"],["9:00/16:00","multi"],["Abierto las 24 horas del día","24h"],["1:00","01:00"],["6:30","06:30"],["11:45","11:45"],["1pm - Fuera de la clínica gratuita Justicia en Salud","13:00"],["10am ","10:00"],["Siempre abierto.","24h"],["06:00","06:00"],["14:30 ","14:30"],["8:00 am","08:00"],["8:00 / 13:00","multi"],["5:30","05:30"],["11:00 - 13:00","multi"],["23:59","23:59"],["8:00-12:00","multi"],["8:30 AM","08:30"],["8:00 AM","08:00"],["9:00/18:30","multi"],["10:45","10:45"],["10:35","10:35"],["12:15","12:15"],["13:15","13:15"],["17:15","17:15"],["21:30","21:30"],["8:15","08:15"],["3 PM","15:00"],["10 AM","10:00"],["5 PM","17:00"],["3:30 PM","15:30"],["3:00 PM","15:00"],["10 am","10:00"],["Closed | Cerrado","closed"],["12:45","12:45"],["5:00","05:00"],["0930","09:30"],["1500","15:00"],["1000","10:00"],["1300","13:00"],["1200","12:00"],["8:39","08:39"],["11:15","11:15"],["6:45am","06:45"],["9:00am ","09:00"],["10:00am/5:00pm","multi"],["7:00am","07:00"],["4:00pm","16:00"],["11:00am ","11:00"],["8:00am ","08:00"],["9:30am","09:30"],["8:30 13:00","multi"],["5pm","17:00"],["18:15","18:15"],["10:00am ","10:00"],["1:00pm ","13:00"],["1:00pm","13:00"],["closed ","closed"],["closed","closed"],["8:00am","08:00"],["6:00am","06:00"],["0600","06:00"],["12:00 pm","12:00"],["2:00 pm","14:00"],["16:45","16:45"],["18:00-20:00","multi"],["9","09:00"],["8:20","08:20"]],"meta":{"values":["map",{"2.1":["undefined"],"110.1":["undefined"]}]}} \ No newline at end of file diff --git a/packages/db/seed/recon/corrections/hours.ts b/packages/db/seed/recon/corrections/hours.ts new file mode 100644 index 0000000000..cc3534f9dd --- /dev/null +++ b/packages/db/seed/recon/corrections/hours.ts @@ -0,0 +1,19 @@ +import superjson from 'superjson' + +import fs from 'fs' +import path from 'path' + +export const hoursCorrection = superjson.parse>( + fs.readFileSync(path.resolve(__dirname, `./hours.json`), 'utf-8') +) + +export const hoursMeta = ['multi', '24h', 'closed'] +export const dayMap = new Map([ + ['sunday', 0], + ['monday', 1], + ['tuesday', 2], + ['wednesday', 3], + ['thursday', 4], + ['friday', 5], + ['saturday', 6], +]) diff --git a/packages/db/seed/recon/corrections/location.ts b/packages/db/seed/recon/corrections/location.ts new file mode 100644 index 0000000000..a735ea5bcf --- /dev/null +++ b/packages/db/seed/recon/corrections/location.ts @@ -0,0 +1,18 @@ +import superjson from 'superjson' + +import fs from 'fs' +import path from 'path' + +export const countryCorrection = superjson.parse>( + fs.readFileSync(path.resolve(__dirname, `./country.json`), 'utf-8') +) + +export const countryOverrideId = superjson.parse>( + fs.readFileSync(path.resolve(__dirname, `./countryById.json`), 'utf-8') +) +export const govDistCorrection = superjson.parse>( + fs.readFileSync(path.resolve(__dirname, `./govDist.json`), 'utf-8') +) +export const govDistFromCity = superjson.parse>( + fs.readFileSync(path.resolve(__dirname, `./govDistCity.json`), 'utf-8') +) diff --git a/packages/db/seed/recon/generated/types.ts b/packages/db/seed/recon/generated/types.ts index f5296a995b..9e3fd1d37f 100644 --- a/packages/db/seed/recon/generated/types.ts +++ b/packages/db/seed/recon/generated/types.ts @@ -2,8 +2,12 @@ export type CountryMap = Map export type DistList = { id: string; slug: string }[] +export type DistMap = Map + export type OrgIdMap = Map +export type OrgSlugSet = Set + export type LocationIdMap = Map export type ServiceIdMap = Map @@ -31,3 +35,7 @@ export type UserTypeMap = Map export type UserIdMap = Map export type PermissionMap = Map + +export type TranslationKeySet = Set + +export type TranslationMap = Map diff --git a/packages/db/seed/recon/lib/generateDbMaps.ts b/packages/db/seed/recon/lib/generateDbMaps.ts index 2613093164..2b2cb39e08 100644 --- a/packages/db/seed/recon/lib/generateDbMaps.ts +++ b/packages/db/seed/recon/lib/generateDbMaps.ts @@ -4,7 +4,7 @@ import superjson from 'superjson' import fs from 'fs' import path from 'path' -import { prisma, type Prisma } from '~db/client' +import { prisma } from '~db/client' import { attachLogger } from '~db/seed/recon/lib/logger' import { type ListrJob } from '~db/seed/recon/lib/types' @@ -38,10 +38,10 @@ typeOutput.push('export type CountryMap = Map') // #region Districts export const generateDistList = { - title: 'Generate Governing District List', + title: 'Generate Governing District List & Map', task: async (_ctx, task) => { attachLogger(task) - const countries = ['AS', 'UM', 'MX', 'MP', 'CA', 'VI', 'US', 'PR', 'GU'] + const countries = ['AS', 'CA', 'GU', 'MP', 'MX', 'PR', 'PW', 'UM', 'US', 'VI'] const dists = await prisma.govDist.findMany({ where: { country: { cca2: { in: countries } } }, select: { id: true, slug: true }, @@ -49,10 +49,12 @@ export const generateDistList = { }) task.output = `Districts retrieved: ${dists.length}` writeSuperJSON('distList', dists) + writeSuperJSON('distMap', new Map(dists.map((d) => [d.slug, d.id]))) }, } satisfies ListrJob typeOutput.push('export type DistList = { id: string; slug: string }[]') +typeOutput.push('export type DistMap = Map') // #endregion @@ -78,6 +80,25 @@ typeOutput.push('export type OrgIdMap = Map') // #endregion +// #region Organization Slugs +export const generateOrgSlugSet = { + title: 'Generate Organization Slug Set', + task: async (_ctx, task) => { + attachLogger(task) + const orgs = await prisma.organization.findMany({ + select: { slug: true }, + }) + task.output = `Organizations retrieved: ${orgs.length}` + const orgSlugSet = new Set(orgs.map(({ slug }) => slug)) + + writeSuperJSON('orgSlugSet', orgSlugSet) + }, +} satisfies ListrJob + +typeOutput.push('export type OrgSlugSet = Set') + +// #endregion + // #region Location IDs export const generateLocationIdMap = { title: 'Generate Location ID Map', @@ -270,6 +291,40 @@ typeOutput.push('export type PermissionMap = Map') // #endregion +// #region Translation Keys + +export const generateTranslationKeySet = { + title: 'Generate Translation Key Set', + task: async (_ctx, task) => { + attachLogger(task) + const keys = await prisma.translationKey.findMany({ + select: { key: true }, + }) + task.output = `Translation Keys retrieved: ${keys.length}` + const translationKeySet = new Set(keys.map(({ key }) => key)) + writeSuperJSON('translationKeySet', translationKeySet) + }, +} satisfies ListrJob + +typeOutput.push('export type TranslationKeySet = Set') + +export const generateTranslationMap = { + title: 'Generate Translation Key Set', + task: async (_ctx, task) => { + attachLogger(task) + const items = await prisma.translationKey.findMany({ + select: { key: true, text: true }, + }) + task.output = `Translation Items retrieved: ${items.length}` + const translationMap = new Map(items.map(({ key, text }) => [key, text])) + writeSuperJSON('translationMap', translationMap) + }, +} satisfies ListrJob + +typeOutput.push('export type TranslationMap = Map') + +// #endregion + // #region Types export const generateTypes = { From 4ed64efe18a47fa33bd378eea2d06256c2f980cc Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 26 Jun 2023 18:51:26 -0400 Subject: [PATCH 10/66] data migration: update active countries --- .../2023-06-26_active-country.ts | 54 +++++++++++++++++++ packages/db/prisma/data-migrations/index.ts | 1 + 2 files changed, 55 insertions(+) create mode 100644 packages/db/prisma/data-migrations/2023-06-26_active-country.ts diff --git a/packages/db/prisma/data-migrations/2023-06-26_active-country.ts b/packages/db/prisma/data-migrations/2023-06-26_active-country.ts new file mode 100644 index 0000000000..fdc98ea77c --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-06-26_active-country.ts @@ -0,0 +1,54 @@ +import { prisma } from '~db/index' +import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' + +/** Define the job metadata here. */ +const jobDef: JobDef = { + jobId: '2023-06-26_active-country', + title: 'Update Active Countries', + createdBy: 'Joe Karow', +} +/** + * Job export - this variable MUST be UNIQUE + * + * Use the format `jobYYYYMMDD` and append a letter afterwards if there is already a job with this name. + * + * @example `job20230404` + * + * @example `job20230404b` + */ +export const job20230626a = { + title: `${jobDef.jobId} - ${jobDef.title}`, + task: async (_ctx, task) => { + /** + * Do not edit this part + * + * This ensures that jobs are only run once + */ + if (await jobPreRunner(jobDef, task)) { + return task.skip(`${jobDef.jobId} - Migration has already been run.`) + } + /** + * Start defining your data migration from here. + * + * To log output, use `task.output = 'Message to log'` + * + * This will be written to `stdout` and to a log file in `/prisma/migration-logs/` + */ + + // Do stuff + const result = await prisma.country.updateMany({ + where: { cca2: { in: ['PW', 'MH'] } }, + data: { activeForOrgs: true }, + }) + + task.output = `Records updated: ${result.count}` + + /** + * DO NOT REMOVE BELOW + * + * This writes a record to the DB to register that this migration has run successfully. + */ + await jobPostRunner(jobDef) + }, +} satisfies ListrJob diff --git a/packages/db/prisma/data-migrations/index.ts b/packages/db/prisma/data-migrations/index.ts index ce949a24dc..f27330af8a 100644 --- a/packages/db/prisma/data-migrations/index.ts +++ b/packages/db/prisma/data-migrations/index.ts @@ -31,4 +31,5 @@ export * from './2023-06-13_user-type' export * from './2023-06-14_remote-tags/index' export * from './2023-06-20_tags-for-suggestions' export * from './2023-06-21_update-sourceid' +export * from './2023-06-26_active-country' // codegen:end From 5dcc88f731ee2eb2077e013a91a8488cf163e4d9 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 26 Jun 2023 18:52:33 -0400 Subject: [PATCH 11/66] recon helpers --- packages/db/seed/lib/icon.ts | 10 + packages/db/seed/recon/input/types.ts | 821 +++++++++++++++++++++ packages/db/seed/recon/lib/compare.ts | 14 + packages/db/seed/recon/lib/existing.ts | 77 ++ packages/db/seed/recon/lib/logger.ts | 1 + packages/db/seed/recon/lib/output.ts | 10 +- packages/db/seed/recon/lib/translations.ts | 96 +++ 7 files changed, 1028 insertions(+), 1 deletion(-) create mode 100644 packages/db/seed/recon/input/types.ts create mode 100644 packages/db/seed/recon/lib/compare.ts create mode 100644 packages/db/seed/recon/lib/existing.ts create mode 100644 packages/db/seed/recon/lib/translations.ts diff --git a/packages/db/seed/lib/icon.ts b/packages/db/seed/lib/icon.ts index 30b0c7fc70..b53aae32c3 100644 --- a/packages/db/seed/lib/icon.ts +++ b/packages/db/seed/lib/icon.ts @@ -20,6 +20,10 @@ * `✍️ write` * * `🚮 trash` + * + * `🔵 info` + * + * `😵 error` */ export type Log = (message: string, icon?: IconList, indent?: boolean, silent?: boolean) => void @@ -35,6 +39,8 @@ export type IconList = | 'write' | 'warning' | 'trash' + | 'info' + | 'error' export const iconList = (icon: IconList) => { switch (icon) { @@ -60,5 +66,9 @@ export const iconList = (icon: IconList) => { return '✍️' case 'trash': return '🚮' + case 'info': + return '🔵' + case 'error': + return '😵' } } diff --git a/packages/db/seed/recon/input/types.ts b/packages/db/seed/recon/input/types.ts new file mode 100644 index 0000000000..b6721fee9d --- /dev/null +++ b/packages/db/seed/recon/input/types.ts @@ -0,0 +1,821 @@ +import { z } from 'zod' + +// Generated by https://quicktype.io + +export interface ExistingOrgs { + _id: ID + is_published: boolean + description: string + name: string + properties?: { [key: string]: string } + slug: string + verified_at?: EdAt + website?: string + emails: Email[] + locations: Location[] + phones: Phone[] + schedules: Schedule[] + services: Service[] + source?: Source + created_at: EdAt + __v: number + alert_message?: string + updated_at: EdAt + description_ES?: string + website_ES?: string + alert_message_ES?: string + slug_ES?: string + name_ES?: string + owners?: Owner[] + venue_id?: string + photos?: Photo[] + social_media?: SocialMedia[] + notes_log?: NotesLog[] + is_deleted: boolean + adminEmails?: unknown[] +} + +export interface ID { + $oid: string +} + +export interface EdAt { + $date: string +} + +export interface Email { + _id: ID + email: string + first_name?: null | string + is_primary?: boolean + last_name?: null | string + show_on_organization?: boolean + title?: null | string + title_ES?: string +} + +export interface Location { + geolocation: Geolocation + _id: ID + address?: string + city?: string + is_primary: boolean + lat?: string + long?: string + name?: string + show_on_organization: boolean + state?: string + unit?: string + zip_code?: string + country_ES?: CountryES + state_ES?: string + name_ES?: string + country?: string + city_ES?: string +} + +export enum CountryES { + CA = 'CA', + Canada = 'Canada', + CountryESCanada = ' Canada', + CountryESEEUU = 'EE.UU', + CountryESEstadosUnidos = 'Estados Unidos', + CountryESMexico = 'Mexico ', + CountryESMéxico = 'México ', + CountryESUnitedStates = 'United States ', + Cánada = 'Cánada', + EEUU = 'E.E.U.U.', + EeUu = 'EE.UU.', + Eeuu = 'EEUU', + Empty = '', + EstadosUnidos = 'Estados Unidos ', + LosEEUU = 'Los EEUU', + LosEstadosUnidos = 'Los Estados Unidos', + LossEEUU = 'Loss EEUU', + Mexico = 'Mexico', + México = 'México', + PurpleEEUU = 'EE UU', + PurpleEstadosUnidos = 'Estados unidos', + UnitedStates = 'United States', + Us = 'US', + Usa = 'USA', +} + +export interface Geolocation { + coordinates: Coordinate[] + type: Type +} + +export interface Coordinate { + $numberDecimal: string +} + +export enum Type { + Point = 'Point', +} + +export interface NotesLog { + _id: ID + note: string + created_at: EdAt +} + +export interface Owner { + _id: ID + email: string + isApproved: boolean + userId: string +} + +export interface Phone { + _id: ID + digits?: null | string + is_primary?: boolean + phone_type: string + show_on_organization?: boolean + phone_type_ES?: string +} + +export interface Photo { + src: string + suffix: string + foursquare_vendor_id: string + width: number + height: number +} + +export interface Schedule { + _id: ID + monday_start?: string + monday_end?: string + tuesday_start?: string + tuesday_end?: string + wednesday_start?: string + wednesday_end?: string + thursday_start?: string + thursday_end?: string + friday_start?: string + friday_end?: string + saturday_start?: string + saturday_end?: string + sunday_start?: string + sunday_end?: string + name?: string + timezone?: Timezone + note?: string +} + +export enum Timezone { + AST = 'AST', + Akst = 'AKST', + Cdt = 'CDT', + Cst = 'CST', + Edt = 'EDT', + Empty = '', + Est = 'EST', + Hst = 'HST', + Mdt = 'MDT', + Mst = 'MST', + Pdt = 'PDT', + Pst = 'PST', +} + +export interface Service { + is_published: boolean + is_deleted: boolean + _id: ID + tags?: Tags + created_at: EdAt + access_instructions: AccessInstruction[] + description?: string + email_id?: string + location_id?: string + name: string + phone_id?: string + properties?: { [key: string]: unknown[] | string } + schedule_id?: string + slug: string + updated_at: EdAt + name_ES?: string + slug_ES?: string + description_ES?: string + notes_log?: NotesLog[] +} + +export interface AccessInstruction { + _id: ID + access_value?: string + access_type?: AccessType + instructions?: string + access_value_ES?: string + instructions_ES?: string +} + +export enum AccessType { + Email = 'email', + Empty = '', + File = 'file', + Link = 'link', + Location = 'location', + Other = 'other', + Phone = 'phone', +} + +export interface Tags { + united_states?: UnitedStates + canada?: Canada + mexico?: Mexico +} + +export interface Canada { + 'Mental Health'?: CanadaMentalHealth + 'Hygiene and Clothing'?: CanadaHygieneAndClothing + Food?: string + Legal?: CanadaLegal + 'Community Support'?: CanadaCommunitySupport + Medical?: Medical + 'Education and Employment'?: CanadaEducationAndEmployment + Housing?: CanadaHousing + 'Translation and Interpretation'?: string + Transportation?: CanadaTransportation + 'Computers and Internet'?: string + 'Sports and Entertainment'?: string +} + +export interface CanadaCommunitySupport { + 'LGBTQ centres'?: string + 'Cultural centres'?: string + 'Reception services'?: string + 'Spiritual Support'?: string +} + +export interface CanadaEducationAndEmployment { + Scholarships?: string + 'Career counseling'?: string + 'Educational support for LGBTQ youth'?: string + 'Language classes'?: string + Libraries?: string +} + +export interface CanadaHousing { + 'Housing information and referrals'?: string + 'Drop-in centres for LGBTQ youth'?: string + 'Emergency housing'?: string + 'Short-term housing'?: string +} + +export interface CanadaHygieneAndClothing { + 'Gender-affirming items'?: string + Clothes?: string + Hygiene?: string + 'Gender-neutral washrooms'?: string +} + +export interface CanadaLegal { + 'Immigration detention'?: string + 'Refugee claim'?: string + 'Deportation or removal'?: string + 'Legal hotlines'?: string + 'Crime and discrimination'?: string + 'Name and gender change'?: string +} + +export interface Medical { + 'HIV and sexual health'?: string + 'Medical clinics'?: string + 'Trans health'?: string + 'Dental care'?: string + 'OBGYN services'?: string + 'Trans Health - Hormone Therapy'?: string + 'Trans Health - Hormone and Surgery Letters'?: string +} + +export interface CanadaMentalHealth { + Hotlines?: string + 'Trans support groups'?: string + 'Support groups'?: string + 'Private therapy and counseling'?: string + 'Substance use'?: string + 'Psychological evaluations for asylum claim'?: string +} + +export interface CanadaTransportation { + 'Transportation assistance'?: string + 'Transit passes and discounts'?: string +} + +export interface Mexico { + 'Community Support'?: MexicoCommunitySupport + 'Sports and Entertainment'?: string + Medical?: { [key: string]: string } + 'Mental Health'?: CanadaMentalHealth + 'Education and Employment'?: CanadaEducationAndEmployment + Legal?: MexicoLegal + Food?: string + 'Hygiene and Clothing'?: MexicoHygieneAndClothing + 'Translation and Interpretation'?: string + Housing?: MexicoHousing + 'Computers and Internet'?: string + 'Abortion Care'?: MexicoAbortionCare + Transportation?: MexicoTransportation +} + +export interface MexicoAbortionCare { + 'Abortion Providers': string +} + +export interface MexicoCommunitySupport { + 'LGBTQ centers'?: string + 'Cultural centers'?: string + 'Spiritual Support'?: string + Sponsors?: string +} + +export interface MexicoHousing { + 'Housing information and referrals'?: string + 'Emergency housing'?: string + 'Drop-in centers for LGBTQ youth'?: string +} + +export interface MexicoHygieneAndClothing { + Hygiene?: string + Clothes?: string +} + +export interface MexicoLegal { + 'Name and gender change'?: string + 'Crime and discrimination'?: string + 'Asylum application in the US from Mexico'?: string + 'Asylum application in Mexico'?: string + 'Deportation or removal'?: string + 'Immigration detention'?: string +} + +export interface MexicoTransportation { + 'Transportation assistance': string +} + +export interface UnitedStates { + Housing?: UnitedStatesHousing + 'Education and Employment'?: UnitedStatesEducationAndEmployment + 'Hygiene and Clothing'?: UnitedStatesHygieneAndClothing + Medical?: { [key: string]: string } + 'Mental Health'?: UnitedStatesMentalHealth + Food?: string + 'Community Support'?: MexicoCommunitySupport + 'Computers and Internet'?: string + 'Sports and Entertainment'?: string + Legal?: { [key: string]: string } + Mail?: string + 'Translation and Interpretation'?: string + Transportation?: CanadaTransportation + 'Abortion Care'?: UnitedStatesAbortionCare +} + +export interface UnitedStatesAbortionCare { + 'Abortion Providers'?: string + 'Financial Assistance'?: string + 'Mental Health Support'?: string + 'Mail Order Services'?: string + 'Travel Assistance'?: string + 'Lodging Assistance'?: string +} + +export interface UnitedStatesEducationAndEmployment { + 'Career counseling'?: string + 'Career counselling'?: string + 'Leadership training and professional development'?: string + Libraries?: string + 'Educational support for LGBTQ youth'?: string + 'English classes'?: string + Scholarships?: string +} + +export interface UnitedStatesHousing { + 'Emergency housing'?: string + 'Housing information and referrals'?: string + 'Trans housing'?: string + 'Drop-in centers for LGBTQ youth'?: string + 'Short-term housing'?: string +} + +export interface UnitedStatesHygieneAndClothing { + Hygiene?: string + Clothes?: string + 'Gender-neutral bathrooms'?: string + 'Gender-affirming items'?: string + 'Gender-affirming items '?: string + Hygienee?: string + 'Haircuts and stylists'?: string +} + +export interface UnitedStatesMentalHealth { + Hotlines?: string + 'Support groups'?: string + 'Substance use'?: string + 'Private therapy and counseling'?: string + 'Trans support groups'?: string + 'BIPOC support groups'?: string + 'Support for caregivers of trans youth'?: string + 'Psychological evaluations for asylum claim'?: string + 'Support for conversion therapy survivors'?: string +} + +export interface SocialMedia { + _id: ID + name?: Name + url: string +} + +export enum Name { + Facebook = 'facebook', + Instagram = 'instagram', + Linkedin = 'linkedin', + Twitter = 'twitter', + Youtube = 'youtube', +} + +export enum Source { + OneDegree = 'OneDegree', +} + +export const idSchema = z.object({ + $oid: z.string(), +}) + +export const edAtSchema = z.object({ + $date: z.string(), +}) + +export const emailSchema = z.object({ + _id: idSchema, + email: z.string(), + first_name: z.string().optional().nullable(), + is_primary: z.boolean().optional(), + last_name: z.string().optional().nullable(), + show_on_organization: z.boolean().optional(), + title: z.string().optional().nullable(), + title_ES: z.string().optional(), +}) + +export const countryESSchema = z.nativeEnum(CountryES) + +export const coordinateSchema = z.object({ + $numberDecimal: z.string(), +}) + +export const typeSchema = z.nativeEnum(Type) + +export const notesLogSchema = z.object({ + _id: idSchema, + note: z.string(), + created_at: edAtSchema, +}) + +export const ownerSchema = z.object({ + _id: idSchema, + email: z.string(), + isApproved: z.boolean(), + userId: z.string(), +}) + +export const phoneSchema = z.object({ + _id: idSchema, + digits: z.string().optional().nullable(), + is_primary: z.boolean().optional(), + phone_type: z.string(), + show_on_organization: z.boolean().optional(), + phone_type_ES: z.string().optional(), +}) + +export const photoSchema = z.object({ + src: z.string(), + suffix: z.string(), + foursquare_vendor_id: z.string(), + width: z.number(), + height: z.number(), +}) + +export const timezoneSchema = z.nativeEnum(Timezone) + +export const accessTypeSchema = z.nativeEnum(AccessType) + +export const canadaCommunitySupportSchema = z.object({ + 'LGBTQ centres': z.string().optional(), + 'Cultural centres': z.string().optional(), + 'Reception services': z.string().optional(), + 'Spiritual Support': z.string().optional(), +}) + +export const canadaEducationAndEmploymentSchema = z.object({ + Scholarships: z.string().optional(), + 'Career counseling': z.string().optional(), + 'Educational support for LGBTQ youth': z.string().optional(), + 'Language classes': z.string().optional(), + Libraries: z.string().optional(), +}) + +export const canadaHousingSchema = z.object({ + 'Housing information and referrals': z.string().optional(), + 'Drop-in centres for LGBTQ youth': z.string().optional(), + 'Emergency housing': z.string().optional(), + 'Short-term housing': z.string().optional(), +}) + +export const canadaHygieneAndClothingSchema = z.object({ + 'Gender-affirming items': z.string().optional(), + Clothes: z.string().optional(), + Hygiene: z.string().optional(), + 'Gender-neutral washrooms': z.string().optional(), +}) + +export const canadaLegalSchema = z.object({ + 'Immigration detention': z.string().optional(), + 'Refugee claim': z.string().optional(), + 'Deportation or removal': z.string().optional(), + 'Legal hotlines': z.string().optional(), + 'Crime and discrimination': z.string().optional(), + 'Name and gender change': z.string().optional(), +}) + +export const medicalSchema = z.object({ + 'HIV and sexual health': z.string().optional(), + 'Medical clinics': z.string().optional(), + 'Trans health': z.string().optional(), + 'Dental care': z.string().optional(), + 'OBGYN services': z.string().optional(), + 'Trans Health - Hormone Therapy': z.string().optional(), + 'Trans Health - Hormone and Surgery Letters': z.string().optional(), +}) + +export const canadaMentalHealthSchema = z.object({ + Hotlines: z.string().optional(), + 'Trans support groups': z.string().optional(), + 'Support groups': z.string().optional(), + 'Private therapy and counseling': z.string().optional(), + 'Substance use': z.string().optional(), + 'Psychological evaluations for asylum claim': z.string().optional(), +}) + +export const canadaTransportationSchema = z.object({ + 'Transportation assistance': z.string().optional(), + 'Transit passes and discounts': z.string().optional(), +}) + +export const mexicoAbortionCareSchema = z.object({ + 'Abortion Providers': z.string(), +}) + +export const mexicoCommunitySupportSchema = z.object({ + 'LGBTQ centers': z.string().optional(), + 'Cultural centers': z.string().optional(), + 'Spiritual Support': z.string().optional(), + Sponsors: z.string().optional(), +}) + +export const mexicoHousingSchema = z.object({ + 'Housing information and referrals': z.string().optional(), + 'Emergency housing': z.string().optional(), + 'Drop-in centers for LGBTQ youth': z.string().optional(), +}) + +export const mexicoHygieneAndClothingSchema = z.object({ + Hygiene: z.string().optional(), + Clothes: z.string().optional(), +}) + +export const mexicoLegalSchema = z.object({ + 'Name and gender change': z.string().optional(), + 'Crime and discrimination': z.string().optional(), + 'Asylum application in the US from Mexico': z.string().optional(), + 'Asylum application in Mexico': z.string().optional(), + 'Deportation or removal': z.string().optional(), + 'Immigration detention': z.string().optional(), +}) + +export const mexicoTransportationSchema = z.object({ + 'Transportation assistance': z.string(), +}) + +export const unitedStatesAbortionCareSchema = z.object({ + 'Abortion Providers': z.string().optional(), + 'Financial Assistance': z.string().optional(), + 'Mental Health Support': z.string().optional(), + 'Mail Order Services': z.string().optional(), + 'Travel Assistance': z.string().optional(), + 'Lodging Assistance': z.string().optional(), +}) + +export const unitedStatesEducationAndEmploymentSchema = z.object({ + 'Career counseling': z.string().optional(), + 'Career counselling': z.string().optional(), + 'Leadership training and professional development': z.string().optional(), + Libraries: z.string().optional(), + 'Educational support for LGBTQ youth': z.string().optional(), + 'English classes': z.string().optional(), + Scholarships: z.string().optional(), +}) + +export const unitedStatesHousingSchema = z.object({ + 'Emergency housing': z.string().optional(), + 'Housing information and referrals': z.string().optional(), + 'Trans housing': z.string().optional(), + 'Drop-in centers for LGBTQ youth': z.string().optional(), + 'Short-term housing': z.string().optional(), +}) + +export const unitedStatesHygieneAndClothingSchema = z.object({ + Hygiene: z.string().optional(), + Clothes: z.string().optional(), + 'Gender-neutral bathrooms': z.string().optional(), + 'Gender-affirming items': z.string().optional(), + 'Gender-affirming items ': z.string().optional(), + Hygienee: z.string().optional(), + 'Haircuts and stylists': z.string().optional(), +}) + +export const unitedStatesMentalHealthSchema = z.object({ + Hotlines: z.string().optional(), + 'Support groups': z.string().optional(), + 'Substance use': z.string().optional(), + 'Private therapy and counseling': z.string().optional(), + 'Trans support groups': z.string().optional(), + 'BIPOC support groups': z.string().optional(), + 'Support for caregivers of trans youth': z.string().optional(), + 'Psychological evaluations for asylum claim': z.string().optional(), + 'Support for conversion therapy survivors': z.string().optional(), +}) + +export const nameSchema = z.nativeEnum(Name) + +export const sourceSchema = z.nativeEnum(Source) + +export const geolocationSchema = z.object({ + coordinates: z.array(coordinateSchema), + type: typeSchema, +}) + +export const scheduleSchema = z.object({ + _id: idSchema, + monday_start: z.string().optional(), + monday_end: z.string().optional(), + tuesday_start: z.string().optional(), + tuesday_end: z.string().optional(), + wednesday_start: z.string().optional(), + wednesday_end: z.string().optional(), + thursday_start: z.string().optional(), + thursday_end: z.string().optional(), + friday_start: z.string().optional(), + friday_end: z.string().optional(), + saturday_start: z.string().optional(), + saturday_end: z.string().optional(), + sunday_start: z.string().optional(), + sunday_end: z.string().optional(), + name: z.string().optional(), + timezone: timezoneSchema.optional(), + note: z.string().optional(), +}) + +export const accessInstructionSchema = z.object({ + _id: idSchema, + access_value: z.string().optional(), + access_type: accessTypeSchema.optional(), + instructions: z.string().optional(), + access_value_ES: z.string().optional(), + instructions_ES: z.string().optional(), +}) + +export const canadaSchema = z.object({ + 'Mental Health': canadaMentalHealthSchema.optional(), + 'Hygiene and Clothing': canadaHygieneAndClothingSchema.optional(), + Food: z.string().optional(), + Legal: canadaLegalSchema.optional(), + 'Community Support': canadaCommunitySupportSchema.optional(), + Medical: medicalSchema.optional(), + 'Education and Employment': canadaEducationAndEmploymentSchema.optional(), + Housing: canadaHousingSchema.optional(), + 'Translation and Interpretation': z.string().optional(), + Transportation: canadaTransportationSchema.optional(), + 'Computers and Internet': z.string().optional(), + 'Sports and Entertainment': z.string().optional(), +}) + +export const mexicoSchema = z.object({ + 'Community Support': mexicoCommunitySupportSchema.optional(), + 'Sports and Entertainment': z.string().optional(), + Medical: z.record(z.string()).optional(), + 'Mental Health': canadaMentalHealthSchema.optional(), + 'Education and Employment': canadaEducationAndEmploymentSchema.optional(), + Legal: mexicoLegalSchema.optional(), + Food: z.string().optional(), + 'Hygiene and Clothing': mexicoHygieneAndClothingSchema.optional(), + 'Translation and Interpretation': z.string().optional(), + Housing: mexicoHousingSchema.optional(), + 'Computers and Internet': z.string().optional(), + 'Abortion Care': mexicoAbortionCareSchema.optional(), + Transportation: mexicoTransportationSchema.optional(), +}) + +export const unitedStatesSchema = z.object({ + Housing: unitedStatesHousingSchema.optional(), + 'Education and Employment': unitedStatesEducationAndEmploymentSchema.optional(), + 'Hygiene and Clothing': unitedStatesHygieneAndClothingSchema.optional(), + Medical: z.record(z.string()).optional(), + 'Mental Health': unitedStatesMentalHealthSchema.optional(), + Food: z.string().optional(), + 'Community Support': mexicoCommunitySupportSchema.optional(), + 'Computers and Internet': z.string().optional(), + 'Sports and Entertainment': z.string().optional(), + Legal: z.record(z.string()).optional(), + Mail: z.string().optional(), + 'Translation and Interpretation': z.string().optional(), + Transportation: canadaTransportationSchema.optional(), + 'Abortion Care': unitedStatesAbortionCareSchema.optional(), +}) + +export const socialMediaSchema = z.object({ + _id: idSchema, + name: nameSchema.optional(), + url: z.string(), +}) + +export const locationSchema = z.object({ + geolocation: geolocationSchema, + _id: idSchema, + address: z.string().optional(), + city: z.string().optional(), + is_primary: z.boolean(), + lat: z.string().optional(), + long: z.string().optional(), + name: z.string().optional(), + show_on_organization: z.boolean(), + state: z.string().optional(), + unit: z.string().optional(), + zip_code: z.string().optional(), + country_ES: countryESSchema.optional(), + state_ES: z.string().optional(), + name_ES: z.string().optional(), + country: z.string().optional(), + city_ES: z.string().optional(), +}) + +export const tagsSchema = z.object({ + united_states: unitedStatesSchema.optional(), + canada: canadaSchema.optional(), + mexico: mexicoSchema.optional(), +}) + +export const serviceSchema = z.object({ + is_published: z.boolean(), + is_deleted: z.boolean(), + _id: idSchema, + tags: tagsSchema.optional(), + created_at: edAtSchema, + access_instructions: z.array(accessInstructionSchema), + description: z.string().optional(), + email_id: z.string().optional(), + location_id: z.string().optional(), + name: z.string(), + phone_id: z.string().optional(), + properties: z.record(z.union([z.array(z.any()), z.string()])).optional(), + schedule_id: z.string().optional(), + slug: z.string(), + updated_at: edAtSchema, + name_ES: z.string().optional(), + slug_ES: z.string().optional(), + description_ES: z.string().optional(), + notes_log: z.array(notesLogSchema).optional(), +}) + +export const existingOrgsSchema = z.object({ + _id: idSchema, + is_published: z.boolean(), + description: z.string(), + name: z.string(), + properties: z.record(z.string()).optional(), + slug: z.string(), + verified_at: edAtSchema.optional(), + website: z.string().optional(), + emails: z.array(emailSchema), + locations: z.array(locationSchema), + phones: z.array(phoneSchema), + schedules: z.array(scheduleSchema), + services: z.array(serviceSchema), + source: sourceSchema.optional(), + created_at: edAtSchema, + __v: z.number(), + alert_message: z.string().optional(), + updated_at: edAtSchema, + description_ES: z.string().optional(), + website_ES: z.string().optional(), + alert_message_ES: z.string().optional(), + slug_ES: z.string().optional(), + name_ES: z.string().optional(), + owners: z.array(ownerSchema).optional(), + venue_id: z.string().optional(), + photos: z.array(photoSchema).optional(), + social_media: z.array(socialMediaSchema).optional(), + notes_log: z.array(notesLogSchema).optional(), + is_deleted: z.boolean(), + adminEmails: z.array(z.any()).optional(), +}) diff --git a/packages/db/seed/recon/lib/compare.ts b/packages/db/seed/recon/lib/compare.ts new file mode 100644 index 0000000000..7378e5c9ec --- /dev/null +++ b/packages/db/seed/recon/lib/compare.ts @@ -0,0 +1,14 @@ +export const needsUpdate = (existing: unknown, migrated: unknown) => { + if ( + existing === null && + (migrated === undefined || migrated === null || (typeof migrated === 'string' && migrated.trim() === '')) + ) { + return false + } + if (typeof existing === 'string' && typeof migrated === 'string') { + return existing.trim() !== migrated.trim() + } + if (typeof existing === typeof migrated) { + return existing !== migrated + } +} diff --git a/packages/db/seed/recon/lib/existing.ts b/packages/db/seed/recon/lib/existing.ts new file mode 100644 index 0000000000..3c7034ec37 --- /dev/null +++ b/packages/db/seed/recon/lib/existing.ts @@ -0,0 +1,77 @@ +import { hoursCorrection } from '~db/seed/recon/corrections/hours' +import { + countryCorrection, + countryOverrideId, + govDistCorrection, + govDistFromCity, +} from '~db/seed/recon/corrections/location' +import { readSuperJSON } from '~db/seed/recon/lib/utils' + +import type * as Gen from '~db/seed/recon/generated/types' + +export const existing = { + orgId: readSuperJSON('orgIdMap'), + orgSlug: readSuperJSON('orgSlugSet'), + locationId: readSuperJSON('locationIdMap'), + serviceId: readSuperJSON('serviceIdMap'), + serviceTag: readSuperJSON('serviceTagMap'), + attribute: readSuperJSON('attributeMap'), + language: readSuperJSON('languageMap'), + socialMediaService: readSuperJSON('socialMediaMap'), + userType: readSuperJSON('userTypeMap'), + userId: readSuperJSON('userIdMap'), + permission: readSuperJSON('permissionMap'), + country: readSuperJSON('countryMap'), + govDistList: readSuperJSON('distList'), + govDistMap: readSuperJSON('distMap'), +} + +export const dataCorrections = { + hours: hoursCorrection, + country: countryCorrection, + countryOverrideById: countryOverrideId, + govDist: govDistCorrection, + govDistFromCity: govDistFromCity, +} + +const territories = ['as', 'gu', 'mh', 'mp', 'pr', 'pw', 'um', 'vi'] + +export const getGovDistId = (state: string | undefined, city: string | undefined) => { + if (state && territories.includes(existing.govDistMap.get(state.toLowerCase()) ?? '')) return undefined + if (!state) { + const slug = dataCorrections.govDistFromCity.get(city ?? '') + return slug ? existing.govDistMap.get(slug.toLowerCase()) : undefined + } + const slug = dataCorrections.govDist.get(state.toLowerCase()) + return slug ? existing.govDistMap.get(slug) : undefined +} + +export const getCountryId = ( + country: string | undefined, + state: string | undefined, + locationLegacyId: string +) => { + const location = { + country, + state, + id: locationLegacyId, + } + if (!location.country) { + location.country = dataCorrections.countryOverrideById.get(location.id) + } + if (location.state && territories.includes(dataCorrections.govDist.get(location.state) ?? '')) { + location.country = dataCorrections.govDist.get(location.state) + } + if (!location.country) { + throw new Error(`Location missing Country`, { cause: location }) + } + const cca2 = dataCorrections.country.get(location.country) + if (!cca2) { + throw new Error(`Unable to map country: ${location.country}`, { cause: location }) + } + const countryId = existing.country.get(cca2.toLowerCase()) + if (!countryId) { + throw new Error(`Unable to map country: ${cca2}`, { cause: location }) + } + return countryId +} diff --git a/packages/db/seed/recon/lib/logger.ts b/packages/db/seed/recon/lib/logger.ts index 665fe665cd..6d933a323a 100644 --- a/packages/db/seed/recon/lib/logger.ts +++ b/packages/db/seed/recon/lib/logger.ts @@ -22,6 +22,7 @@ const logFilename = `${timestamp}.log` export const attachLogger = (task: PassedTask) => task.task.on(ListrTaskEventType.OUTPUT, (output) => logFile(logFilename, output)) +export const isSuccess = (param: unknown) => (param ? `✅` : `❌`) export const formatMessage = (message: string, icon?: IconList, indent = false) => { const dispIcon = icon ? `${iconList(icon)} ` : '' const formattedMessage = `${indent ? '\t' : ''}${dispIcon}${message}` diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index 9adc6594e2..beb4930f87 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -13,7 +13,7 @@ const createDir = path.resolve(outputDir, 'create') const updateDir = path.resolve(outputDir, 'update') export const getBatchFile: GetBatchFile = ({ type, batchName }) => - type === 'create' ? `${createDir}${batchName}.json` : `${updateDir}${batchName}.json` + type === 'create' ? `${createDir}/${batchName}.json` : `${updateDir}/${batchName}.json` export const create = { organization: new Set(), translationKey: new Set(), @@ -70,6 +70,10 @@ export const writeBatches = (task: PassedTask, clear = false) => { fs.writeFileSync(batchFile, superjson.stringify(outputData)) task.output = formatMessage(`Clearing file: ${batchFile}`, 'trash') } else { + if (!batch.size) { + task.output = formatMessage(`Skipping empty batch: ${batchName}`, 'skip') + continue + } const currentCount = batchCount.get(`create.${batchName}`) ?? 0 const currentBatchCount = batch.size const existingBatch = fs.existsSync(batchFile) @@ -95,6 +99,10 @@ export const writeBatches = (task: PassedTask, clear = false) => { fs.writeFileSync(batchFile, superjson.stringify(outputData)) task.output = formatMessage(`Clearing file: ${batchFile}`, 'trash') } else { + if (!batch.size) { + task.output = formatMessage(`Skipping empty batch: ${batchName}`, 'skip') + continue + } const currentCount = batchCount.get(`update.${batchName}`) ?? 0 const currentBatchCount = batch.size const existingBatch = fs.existsSync(batchFile) diff --git a/packages/db/seed/recon/lib/translations.ts b/packages/db/seed/recon/lib/translations.ts new file mode 100644 index 0000000000..449e66be98 --- /dev/null +++ b/packages/db/seed/recon/lib/translations.ts @@ -0,0 +1,96 @@ +import { namespace } from '~db/generated/namespaces' +import { slug } from '~db/lib/slugGen' +import { type TranslationKeySet, type TranslationMap } from '~db/seed/recon/generated/types' +import { formatMessage } from '~db/seed/recon/lib/logger' +import { type PassedTask } from '~db/seed/recon/lib/types' +import { readSuperJSON } from '~db/seed/recon/lib/utils' + +const translatedStrings: Record> = {} + +export const exportTranslation = (props: ExportTranslationProps): void => { + const { ns, key, text, task } = props + if (key && text && ns) { + if (translatedStrings[ns] === undefined) { + translatedStrings[ns] = new Map([[key, text]]) + } else { + translatedStrings[ns]?.set(key, text) + } + if (task) { + task.output = formatMessage(`Translation exported: ${key}`, 'tlate', true) + } + } +} + +type ExportTranslationProps = { + ns: string | undefined + key: string | undefined + text: string | undefined + task?: PassedTask +} + +const translationKeySet = readSuperJSON('translationKeySet') +const translationMap = readSuperJSON('translationMap') +export const keyExists = (key: string) => translationKeySet.has(key) + +export const generateFreeTextKey: GenerateFreeTextKey = ({ slug, itemId, type, text }) => { + switch (type) { + case 'name': + case 'access': + case 'description': { + const key = itemId ? `${slug}.${itemId}.${type}` : `${slug}.${type}` + if (keyExists(key)) { + const currentValue = translationMap.get(key) + if (currentValue?.trim() === text.trim()) return undefined + return { + action: 'update', + ns: namespace.orgData, + key, + text: text.trim(), + } + } + return { + action: 'create', + ns: namespace.orgData, + key, + text: text.trim(), + } + } + case 'supplement': { + if (!itemId) { + throw new Error(`'itemId' is required!`) + } + const key = `${slug}.attribute.${itemId}` + if (keyExists(key)) { + const currentValue = translationMap.get(key) + if (currentValue?.trim() === text.trim()) return undefined + return { + action: 'update', + ns: namespace.orgData, + key, + text: text.trim(), + } + } + return { + action: 'create', + ns: namespace.orgData, + key, + text: text.trim(), + } + } + } +} +type GenerateFreeTextKey = (params: FreeTextKey) => + | { + ns: string + key: string + text: string + action: 'create' | 'update' + } + | undefined + +type FreeTextKey = { + slug: string + itemId?: string + type: 'access' | 'description' | 'name' | 'supplement' + text: string +} From f7c9c1da008bf8e0c28238d42be853bd6085e6f3 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 26 Jun 2023 18:52:59 -0400 Subject: [PATCH 12/66] recon location basics --- packages/db/seed/recon/index.ts | 3 + packages/db/seed/recon/reconJob.ts | 175 +++++++++++++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 packages/db/seed/recon/reconJob.ts diff --git a/packages/db/seed/recon/index.ts b/packages/db/seed/recon/index.ts index 7069515955..e47ac28dd2 100644 --- a/packages/db/seed/recon/index.ts +++ b/packages/db/seed/recon/index.ts @@ -3,6 +3,7 @@ import { Listr, PRESET_TIMER } from 'listr2' import * as generators from './lib/generateDbMaps' import { attachLogger } from './lib/logger' import { type Context, type ListrJob } from './lib/types' +import { orgRecon } from './reconJob' const renderOptions = { bottomBar: 10, @@ -20,7 +21,9 @@ const jobs = new Listr( task.output = 'Running generators...' return task.newListr(Object.values(generators).map((job) => injectOptions(job))) }, + skip: true, }), + injectOptions(orgRecon), ], { rendererOptions: { diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts new file mode 100644 index 0000000000..c0594e54c5 --- /dev/null +++ b/packages/db/seed/recon/reconJob.ts @@ -0,0 +1,175 @@ +import { geojsonToWKT } from '@terraformer/wkt' +import superjson from 'superjson' + +import fs from 'fs' +import path from 'path' + +import { prisma, type Prisma } from '~db/client' +import { createPoint } from '~db/lib/createPoint' +import { existingOrgsSchema } from '~db/seed/recon/input/types' +import { needsUpdate } from '~db/seed/recon/lib/compare' +import { dataCorrections, existing, getCountryId, getGovDistId } from '~db/seed/recon/lib/existing' +import { attachLogger, formatMessage } from '~db/seed/recon/lib/logger' +import { create, update, writeBatches } from '~db/seed/recon/lib/output' +import { type ListrJob } from '~db/seed/recon/lib/types' +import { JsonInputOrNull } from '~db/zod_util/prismaJson' + +export const orgRecon = { + title: 'Reconcile Organizations', + // skip: true, + task: async (_ctx, task) => { + attachLogger(task) + const log = (...args: Parameters) => (task.output = formatMessage(...args)) + const logUpdate = (field: string, from: unknown, to: unknown) => + log(`Updating ${field} from "${from}" to "${to}"`, undefined, true) + writeBatches(task, true) + let orgCounter = 1 + + // read input file + const orgs = existingOrgsSchema + .array() + .parse(JSON.parse(fs.readFileSync(path.resolve(__dirname, './input/existingOrgs.json'), 'utf-8'))) + log(`Organizations to process: ${orgs.length}`, 'info') + + // start loop + for (const org of orgs) { + task.title = `Reconcile Organizations [${orgCounter}/${orgs.length}]` + log(`Reconciling Organization: ${org.name}`) + + const organizationId = existing.orgId.get(org._id.$oid) + if (!organizationId) { + log(`Organization not found: ${org._id.$oid}`, 'error') + throw new Error('Organization not found', { cause: org._id.$oid }) + } + // #region Location + if (!org.locations.length) { + log('SKIPPING Location records, no locations', 'skip') + } else { + log(`Processing ${org.locations.length} Location records`, 'generate') + let locationCount = 1 + let locationSkip = 0 + const deletedLocations = await prisma.orgLocation.findMany({ + where: { + legacyId: { notIn: org.locations.map((x) => x._id.$oid) }, + deleted: false, + orgId: organizationId, + }, + select: { id: true, name: true }, + }) + if (deletedLocations.length) { + log(`Marking ${deletedLocations.length} Location records as deleted`, 'trash') + for (const location of deletedLocations) { + log(`Marking Location: ${location.name} as deleted`, undefined, true) + update.orgLocation.add({ where: { id: location.id }, data: { deleted: true } }) + } + } + + for (const location of org.locations) { + log( + `Processing Location: ${location.name} [${locationCount + locationSkip}/${org.locations.length}]`, + 'generate' + ) + + if (!location.country && !location.city && !location.state) { + log(`SKIPPING Location: ${location.name} -- Missing city, governing district, & country`, 'skip') + locationSkip++ + continue + } + const existingLocationId = existing.locationId.get(location._id.$oid) + if (existingLocationId) { + log(`Reconcile location against ${existingLocationId}`, undefined, true) + + const existingLocation = await prisma.orgLocation.findUniqueOrThrow({ + where: { id: existingLocationId }, + }) + const updateRecord: Prisma.OrgLocationUpdateArgs = { + where: { id: existingLocation.id }, + data: {}, + } + const [longitude, latitude] = location.geolocation.coordinates.map( + (x) => +parseFloat(x.$numberDecimal).toFixed(3) + ) + + if (needsUpdate(existingLocation.name, location.name)) { + logUpdate('name', existingLocation.name, location.name) + updateRecord.data.name = location.name?.trim() ?? null + } + if (needsUpdate(existingLocation.street1, location.address)) { + logUpdate('street1', existingLocation.street1, location.address) + updateRecord.data.street1 = location.address?.trim() + } + if (needsUpdate(existingLocation.street2, location.unit)) { + logUpdate('street2', existingLocation.street2, location.unit) + updateRecord.data.street2 = location.unit?.trim() ?? null + } + if (needsUpdate(existingLocation.city, location.city)) { + logUpdate('city', existingLocation.city, location.city) + updateRecord.data.city = location.city?.trim() + } + if (needsUpdate(existingLocation.postCode, location.zip_code)) { + logUpdate('postCode', existingLocation.postCode, location.zip_code) + updateRecord.data.postCode = location.zip_code?.trim() ?? null + } + if (needsUpdate(existingLocation.primary, location.is_primary)) { + logUpdate('primary', existingLocation.primary, location.is_primary) + updateRecord.data.primary = location.is_primary + } + if (needsUpdate(existingLocation.govDistId, getGovDistId(location.state, location.city))) { + logUpdate('govDistId', existingLocation.govDistId, getGovDistId(location.state, location.city)) + updateRecord.data.govDistId = getGovDistId(location.state, location.city) + } + if ( + needsUpdate( + existingLocation.countryId, + getCountryId(location.country, location.state, location._id.$oid) + ) + ) { + logUpdate( + 'countryId', + existingLocation.countryId, + getCountryId(location.country, location.state, location._id.$oid) + ) + updateRecord.data.countryId = getCountryId(location.country, location.state, location._id.$oid) + } + if ( + needsUpdate(existingLocation.longitude, longitude) || + needsUpdate(existingLocation.latitude, latitude) + ) { + logUpdate( + 'geo', + `[${existingLocation.longitude}, ${existingLocation.latitude}]`, + `[${longitude}, ${latitude}]` + ) + const geoObj = createPoint({ longitude, latitude }) + const geoJSON = JsonInputOrNull.parse(geoObj) + const geoWKT = geoObj === 'JsonNull' ? undefined : geojsonToWKT(geoObj) + updateRecord.data.latitude = latitude + updateRecord.data.longitude = longitude + updateRecord.data.geoJSON = geoJSON + updateRecord.data.geoWKT = geoWKT + } + if (needsUpdate(existingLocation.published, location.show_on_organization)) { + if (location.show_on_organization === true) { + log(`SKIPPING - Mark location as published`, 'skip', true) + } else { + logUpdate('published', existingLocation.published, location.show_on_organization) + updateRecord.data.published = location.show_on_organization + } + } + if (Object.keys(updateRecord.data).length) { + update.orgLocation.add(updateRecord) + log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) + } + } + + locationCount++ + } + } + + // #endregion + + orgCounter++ + } + writeBatches(task) + }, +} satisfies ListrJob From bbd74e7751849cff7503dde1f25c2d4d2229fd59 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:35:43 -0400 Subject: [PATCH 13/66] output folders --- packages/db/seed/recon/output/create/.gitkeep | 0 packages/db/seed/recon/output/update/.gitkeep | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/db/seed/recon/output/create/.gitkeep create mode 100644 packages/db/seed/recon/output/update/.gitkeep diff --git a/packages/db/seed/recon/output/create/.gitkeep b/packages/db/seed/recon/output/create/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/db/seed/recon/output/update/.gitkeep b/packages/db/seed/recon/output/update/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 From 9148f84adddae3a7ee9bfcf5232963e2d2ebe366 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 27 Jun 2023 17:18:59 -0400 Subject: [PATCH 14/66] data migration: add crowdin ids to strings --- packages/api/crowdin/getIdsForDb.ts | 5 +- packages/db/datastore | 2 +- packages/db/package.json | 1 + .../2023-06-27_add-crowdin-ids/data.json | 1 + .../2023-06-27_add-crowdin-ids/index.ts | 68 +++++++++++++++++++ packages/db/prisma/data-migrations/index.ts | 1 + pnpm-lock.yaml | 18 +++++ 7 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/data.json create mode 100644 packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/index.ts diff --git a/packages/api/crowdin/getIdsForDb.ts b/packages/api/crowdin/getIdsForDb.ts index fb180f1e3f..8623bfcb97 100644 --- a/packages/api/crowdin/getIdsForDb.ts +++ b/packages/api/crowdin/getIdsForDb.ts @@ -59,7 +59,10 @@ const task = async (key: string, ns: string) => { } let recordTotal = 0 const run = async () => { - const records = await prisma.translationKey.findMany({ select: { key: true, ns: true } }) + const records = await prisma.translationKey.findMany({ + where: { crowdinId: null }, + select: { key: true, ns: true }, + }) recordTotal = records.length for (const record of records) { const { key, ns } = record diff --git a/packages/db/datastore b/packages/db/datastore index 9cc9d7ff68..5ec8184e2d 160000 --- a/packages/db/datastore +++ b/packages/db/datastore @@ -1 +1 @@ -Subproject commit 9cc9d7ff680c6a6f4b22ed674ccb3702d3e66c17 +Subproject commit 5ec8184e2d666be103baa69752fbfa4456f26e1c diff --git a/packages/db/package.json b/packages/db/package.json index a28cbe77bf..c5c876461a 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -114,6 +114,7 @@ "recursive-readdir": "2.2.3", "shoetest": "1.2.2", "slugify": "1.6.6", + "sql-bricks-postgres": "0.6.0", "tiny-invariant": "1.3.1", "tsx": "3.12.7", "type-fest": "3.12.0", diff --git a/packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/data.json b/packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/data.json new file mode 100644 index 0000000000..e9d15ea9a3 --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/data.json @@ -0,0 +1 @@ +[{"crowdinId":2078435,"key":"additional.private-practice","ns":"attribute"},{"crowdinId":2078445,"key":"srvfocus.incarcerated","ns":"attribute"},{"crowdinId":2078437,"key":"orgleader.women-led","ns":"attribute"},{"crowdinId":2078441,"key":"srvfocus.disabled","ns":"attribute"},{"crowdinId":2078447,"key":"srvfocus.women","ns":"attribute"},{"crowdinId":2078439,"key":"srvfocus.caregivers","ns":"attribute"},{"crowdinId":2078443,"key":"srvfocus.elder","ns":"attribute"},{"crowdinId":2073815,"key":"bridgehaven.oeml_01H299KE5YPWT14JNVZ75ZRACN.description","ns":"org-data"},{"crowdinId":2076697,"key":"reclaim.description","ns":"org-data"},{"crowdinId":2073491,"key":"adeline-inc.ophn_01H299KETHS5T87R7G161FJCF9.description","ns":"org-data"},{"crowdinId":2077101,"key":"southside-presbyterian-church.description","ns":"org-data"},{"crowdinId":2075289,"key":"mend-seattle.oeml_01H299KDW95X14FQHRTJF3S8PP.description","ns":"org-data"},{"crowdinId":2075123,"key":"lgbtq-center-of-durham.description","ns":"org-data"},{"crowdinId":2076761,"key":"recovery-cafe-lexington.description","ns":"org-data"},{"crowdinId":2073819,"key":"bridgehaven.ophn_01H299KE5XDNZ89MFDGMDSZSMG.description","ns":"org-data"},{"crowdinId":2075873,"key":"outside-in.description","ns":"org-data"},{"crowdinId":2078261,"key":"ucsf-benioff-childrens-hospital-child-and-adolescent-gender-center.description","ns":"org-data"},{"crowdinId":2074447,"key":"glys-of-wny.description","ns":"org-data"},{"crowdinId":2077215,"key":"the-center-for-transyouth-health-and-development-at-childrens-hospital-los-angeles.description","ns":"org-data"},{"crowdinId":2077653,"key":"transforming-family.description","ns":"org-data"},{"crowdinId":2075463,"key":"miracle-of-love-inc-mol.description","ns":"org-data"},{"crowdinId":2077021,"key":"sayftee.description","ns":"org-data"},{"crowdinId":2075185,"key":"literacy-volunteers-of-greater-new-haven.description","ns":"org-data"},{"crowdinId":2073653,"key":"avol.attribute.atts_01H29ENFGRQC0XX4PPQHANMAVY","ns":"org-data"},{"crowdinId":2073745,"key":"black-and-pink.description","ns":"org-data"},{"crowdinId":2078269,"key":"united-cambodian-community.description","ns":"org-data"},{"crowdinId":2075869,"key":"outside-in.attribute.atts_01H29ENFCHMPWNE1CKNMC5JKMZ","ns":"org-data"},{"crowdinId":2073939,"key":"campaign-for-southern-equality.description","ns":"org-data"},{"crowdinId":2074631,"key":"jayne-x-praxis.description","ns":"org-data"},{"crowdinId":2074661,"key":"kentucky-black-pride.description","ns":"org-data"},{"crowdinId":2077089,"key":"southside-presbyterian-church.attribute.atts_01H29ENFAFCZE9JMQNYR5Z1PME","ns":"org-data"},{"crowdinId":2075053,"key":"lgbtq-allies-lake-county.description","ns":"org-data"},{"crowdinId":2073587,"key":"asian-pacific-islander-queer-women-and-transgender-community-apiqwtc.description","ns":"org-data"},{"crowdinId":2073659,"key":"avol.description","ns":"org-data"},{"crowdinId":2074809,"key":"lesbian-health-initiative-of-houston-inc-lhi.description","ns":"org-data"},{"crowdinId":2075239,"key":"massachusetts-transgender-political-coalition-mtpc.description","ns":"org-data"},{"crowdinId":2077341,"key":"the-nest.description","ns":"org-data"},{"crowdinId":2074527,"key":"house-of-rebirth.description","ns":"org-data"},{"crowdinId":2073861,"key":"bucks-lgbtq-center.description","ns":"org-data"},{"crowdinId":2077063,"key":"shippensburg-university-pride-and-gender-equity-center.description","ns":"org-data"},{"crowdinId":2073987,"key":"childrens-minnesota-gender-health-program.description","ns":"org-data"},{"crowdinId":2074613,"key":"jackson-jack-garner.description","ns":"org-data"},{"crowdinId":2077251,"key":"the-lower-columbia-q-center-lcqc.description","ns":"org-data"},{"crowdinId":2078381,"key":"women-with-a-vision-wwav.description","ns":"org-data"},{"crowdinId":2075575,"key":"moco-pride-center.description","ns":"org-data"},{"crowdinId":2074605,"key":"jackson-jack-garner.attribute.atts_01H29ENFPT12XQ1QARCSZ9DG5M","ns":"org-data"},{"crowdinId":2076223,"key":"point-foundation.description","ns":"org-data"},{"crowdinId":2078403,"key":"youth-improvement-services.description","ns":"org-data"},{"crowdinId":2075287,"key":"mend-seattle.description","ns":"org-data"},{"crowdinId":2078133,"key":"trillium-health.description","ns":"org-data"},{"crowdinId":2078003,"key":"tranyouniting.description","ns":"org-data"},{"crowdinId":2078315,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.description","ns":"org-data"},{"crowdinId":2077511,"key":"trans-lounge.description","ns":"org-data"},{"crowdinId":2073953,"key":"cedar-psychiatry-by-numinus.description","ns":"org-data"},{"crowdinId":2077577,"key":"transfamily-support-services.description","ns":"org-data"},{"crowdinId":2077477,"key":"trans-families.description","ns":"org-data"},{"crowdinId":2076453,"key":"queerdoc.description","ns":"org-data"},{"crowdinId":2074975,"key":"lgbt-center-of-greater-reading.description","ns":"org-data"},{"crowdinId":2073909,"key":"cambridge-womens-center.description","ns":"org-data"},{"crowdinId":2073467,"key":"988-suicide-and-crisis-lifeline.description","ns":"org-data"},{"crowdinId":2074085,"key":"covenant-house-michigan.description","ns":"org-data"},{"crowdinId":2076195,"key":"plume.description","ns":"org-data"},{"crowdinId":2077109,"key":"southside-presbyterian-church.osvc_01H299KDBCKACFV1ZC5RD6A10P.name","ns":"org-data"},{"crowdinId":2075523,"key":"mixteco-indigena-community-organizing-project-micop.description","ns":"org-data"},{"crowdinId":2077091,"key":"southside-presbyterian-church.attribute.atts_01H29ENFAG5XSB2NTF86XEFH8Q","ns":"org-data"},{"crowdinId":2074357,"key":"gender-spectrum.description","ns":"org-data"},{"crowdinId":2077981,"key":"transparent-usa.description","ns":"org-data"},{"crowdinId":2073813,"key":"bridgehaven.description","ns":"org-data"},{"crowdinId":2075825,"key":"ohsu-transgender-health-program.description","ns":"org-data"},{"crowdinId":2073759,"key":"brave-spaces-llc.description","ns":"org-data"},{"crowdinId":2075863,"key":"outside-in.attribute.atts_01H29ENFCFM7HKJ5B25BKP5EWE","ns":"org-data"},{"crowdinId":2074491,"key":"have-a-gay-day.description","ns":"org-data"},{"crowdinId":2074315,"key":"gala-north-texas.description","ns":"org-data"},{"crowdinId":2076965,"key":"san-antonio-gender-association-saga.description","ns":"org-data"},{"crowdinId":2075599,"key":"montrose-grace-place.description","ns":"org-data"},{"crowdinId":2077133,"key":"st-stephens-episcopal-church.description","ns":"org-data"},{"crowdinId":2076737,"key":"reclaimed-divergence.description","ns":"org-data"},{"crowdinId":2076023,"key":"planned-parenthood-greater-boston-health-center.description","ns":"org-data"},{"crowdinId":2076395,"key":"queer-therapy-boston.description","ns":"org-data"},{"crowdinId":2073691,"key":"balsam-pine-birthing.description","ns":"org-data"},{"crowdinId":2075945,"key":"planned-parenthood-central-massachusetts-health-center.description","ns":"org-data"},{"crowdinId":2076273,"key":"pride-center-west-texas.description","ns":"org-data"},{"crowdinId":2076151,"key":"planned-parenthood-western-massachusetts-health-center.description","ns":"org-data"},{"crowdinId":2077159,"key":"team-tlc-nyc.description","ns":"org-data"},{"crowdinId":2074399,"key":"glsen.description","ns":"org-data"},{"crowdinId":2077187,"key":"the-black-trans-travel-fund.description","ns":"org-data"},{"crowdinId":2075865,"key":"outside-in.attribute.atts_01H29ENFCG9E17Z34S8N16C7PX","ns":"org-data"},{"crowdinId":2074709,"key":"kind-clinic.description","ns":"org-data"},{"crowdinId":2075389,"key":"milwaukee-lgbt-community-center-mkelgbt.description","ns":"org-data"},{"crowdinId":2076997,"key":"save-our-sisters-united-inc-sosu.description","ns":"org-data"},{"crowdinId":2073723,"key":"beyond-these-walls.description","ns":"org-data"},{"crowdinId":2074003,"key":"cope-community-services.description","ns":"org-data"},{"crowdinId":2074221,"key":"elevated-access.description","ns":"org-data"},{"crowdinId":2073927,"key":"camp-lost-boys.description","ns":"org-data"},{"crowdinId":2074571,"key":"hugh-lane-wellness-foundation.description","ns":"org-data"},{"crowdinId":2077953,"key":"transnewyork.description","ns":"org-data"},{"crowdinId":2077885,"key":"translatin-coalition-tlc.description","ns":"org-data"},{"crowdinId":2076947,"key":"salga-nyc.description","ns":"org-data"},{"crowdinId":2075663,"key":"newark-lgbtq-community-center.description","ns":"org-data"},{"crowdinId":2077295,"key":"the-masculine-identified-lesbians-of-color-collective-milcc.description","ns":"org-data"},{"crowdinId":2076743,"key":"recovery-cafe-lexington.attribute.atts_01H29ENF8PSYMWFWNCVSYETZ3X","ns":"org-data"},{"crowdinId":2075733,"key":"northwest-arkansas-equality.description","ns":"org-data"},{"crowdinId":2077397,"key":"the-river-valley-equality-center.description","ns":"org-data"},{"crowdinId":2077685,"key":"transgender-american-veterans-association-tava.description","ns":"org-data"},{"crowdinId":2077375,"key":"the-okra-project.description","ns":"org-data"},{"crowdinId":2077739,"key":"transgender-equality-network.description","ns":"org-data"},{"crowdinId":2076339,"key":"q-wave.description","ns":"org-data"},{"crowdinId":2078241,"key":"uams-health-12th-street-health-and-wellness-center.description","ns":"org-data"},{"crowdinId":2073565,"key":"arkansas-childrens.description","ns":"org-data"},{"crowdinId":2076073,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.description","ns":"org-data"},{"crowdinId":2078349,"key":"unspoken-treasure-society.description","ns":"org-data"},{"crowdinId":2076487,"key":"rady-childrens-hospital-san-diego-center-for-gender-affirming-care.description","ns":"org-data"},{"crowdinId":2077779,"key":"transkids-purple-rainbow-foundation.description","ns":"org-data"},{"crowdinId":2074183,"key":"diverse-and-resilient.description","ns":"org-data"},{"crowdinId":2073527,"key":"ariannas-center.description","ns":"org-data"},{"crowdinId":2074293,"key":"freedom-overground.description","ns":"org-data"},{"crowdinId":2077279,"key":"the-mahogany-project.description","ns":"org-data"},{"crowdinId":2077419,"key":"the-transformative-justice-law-project-of-illinois-tjlp.description","ns":"org-data"},{"crowdinId":2076901,"key":"renaitre-counseling.description","ns":"org-data"},{"crowdinId":2074147,"key":"desi-rainbow-parents-and-allies-drpa.description","ns":"org-data"},{"crowdinId":2074235,"key":"equality-community-center-ecc.description","ns":"org-data"},{"crowdinId":2075209,"key":"lurie-childrens-hospital.description","ns":"org-data"},{"crowdinId":2076745,"key":"recovery-cafe-lexington.attribute.atts_01H29ENF8QDT925Z9M3G602M2B","ns":"org-data"},{"crowdinId":2077037,"key":"sewa-aifw.description","ns":"org-data"},{"crowdinId":2074645,"key":"jessis-house.description","ns":"org-data"},{"crowdinId":2077533,"key":"trans-pride-initiative.description","ns":"org-data"},{"crowdinId":2077705,"key":"transgender-assistance-program-of-virginia-tap-va.description","ns":"org-data"},{"crowdinId":2076769,"key":"recovery-cafe-lexington.osvc_01H299KD9AWXW7S87H5DDWA44A.name","ns":"org-data"},{"crowdinId":2073777,"key":"bridge-for-youth.description","ns":"org-data"},{"crowdinId":2077447,"key":"tigerrs.description","ns":"org-data"},{"crowdinId":2073487,"key":"adeline-inc.description","ns":"org-data"},{"crowdinId":2074121,"key":"deep-cuts-barber-shop.description","ns":"org-data"},{"crowdinId":2073973,"key":"centracare.description","ns":"org-data"},{"crowdinId":2075867,"key":"outside-in.attribute.atts_01H29ENFCHF1TKTF1FESGMAY3W","ns":"org-data"},{"crowdinId":2074505,"key":"healthpartners-and-park-nicollet.description","ns":"org-data"},{"crowdinId":2074267,"key":"face-to-face.description","ns":"org-data"},{"crowdinId":2076563,"key":"rainbow-health.description","ns":"org-data"},{"crowdinId":2076921,"key":"restart-inc.description","ns":"org-data"},{"crowdinId":2073619,"key":"avenues-for-youth.description","ns":"org-data"},{"crowdinId":2076771,"key":"recovery-cafe-lexington.osvc_01H299KD9FJKCXXBMEXE0SP1PB.description","ns":"org-data"},{"crowdinId":2076765,"key":"recovery-cafe-lexington.ophn_01H299KD95K51H93K9419VBGFD.description","ns":"org-data"},{"crowdinId":2076763,"key":"recovery-cafe-lexington.oeml_01H299KD96SP04WJ2RHVKN5QQG.description","ns":"org-data"},{"crowdinId":2077605,"key":"transforming-families-minnesota.description","ns":"org-data"},{"crowdinId":2076837,"key":"red-door.description","ns":"org-data"},{"crowdinId":2076713,"key":"reclaim.osvc_01H299KDA55TB7XF7RATRY51GC.name","ns":"org-data"},{"crowdinId":2076767,"key":"recovery-cafe-lexington.osvc_01H299KD9AWXW7S87H5DDWA44A.description","ns":"org-data"},{"crowdinId":2076655,"key":"reclaim.attribute.atts_01H29ENF9HDF2TZYJP8GQ0TKQ9","ns":"org-data"},{"crowdinId":2076747,"key":"recovery-cafe-lexington.attribute.atts_01H29ENF8RHFTZKK63Y11A91HJ","ns":"org-data"},{"crowdinId":2076749,"key":"recovery-cafe-lexington.attribute.atts_01H29ENF8TTZJYPD19E59QXQ98","ns":"org-data"},{"crowdinId":2076751,"key":"recovery-cafe-lexington.attribute.atts_01H29ENF8V1S0AFB4RRN13DZFG","ns":"org-data"},{"crowdinId":2076773,"key":"recovery-cafe-lexington.osvc_01H299KD9FJKCXXBMEXE0SP1PB.name","ns":"org-data"},{"crowdinId":2076775,"key":"recovery-cafe-lexington.osvc_01H299KD9K6P5YEYQ809KRN5CY.description","ns":"org-data"},{"crowdinId":2076753,"key":"recovery-cafe-lexington.attribute.atts_01H29ENF8VND62YHM5R7WXBV8P","ns":"org-data"},{"crowdinId":2076755,"key":"recovery-cafe-lexington.attribute.atts_01H29ENF8XK0M8RTF6VJZKR7M2","ns":"org-data"},{"crowdinId":2076757,"key":"recovery-cafe-lexington.attribute.atts_01H29ENF8XPNNS0K7A5NC69ZV9","ns":"org-data"},{"crowdinId":2076701,"key":"reclaim.oeml_01H299KD9WPAE3FHY4KN8YK1T4.description","ns":"org-data"},{"crowdinId":2076759,"key":"recovery-cafe-lexington.attribute.atts_01H29ENF8YRX4MHMTZ18SR7D4G","ns":"org-data"},{"crowdinId":2076777,"key":"recovery-cafe-lexington.osvc_01H299KD9K6P5YEYQ809KRN5CY.name","ns":"org-data"},{"crowdinId":2076639,"key":"reclaim.attribute.atts_01H29ENF98SPF737VN2004GACZ","ns":"org-data"},{"crowdinId":2076707,"key":"reclaim.osvc_01H299KDA012XW32VWPJNBCYSE.description","ns":"org-data"},{"crowdinId":2076705,"key":"reclaim.ophn_01H299KD9WXNJN05SXJZNFCJVV.description","ns":"org-data"},{"crowdinId":2076643,"key":"reclaim.attribute.atts_01H29ENF99FZXN48BVZQ9X2EMF","ns":"org-data"},{"crowdinId":2076637,"key":"reclaim.attribute.atts_01H29ENF982A74G49Y8DARM46M","ns":"org-data"},{"crowdinId":2076699,"key":"reclaim.oeml_01H299KD9W6WP17W08E10EHW2S.description","ns":"org-data"},{"crowdinId":2076703,"key":"reclaim.ophn_01H299KD9VFWCABG8HG2BNTNP8.description","ns":"org-data"},{"crowdinId":2076709,"key":"reclaim.osvc_01H299KDA012XW32VWPJNBCYSE.name","ns":"org-data"},{"crowdinId":2076645,"key":"reclaim.attribute.atts_01H29ENF9C57R0GJQWAKECP5Q2","ns":"org-data"},{"crowdinId":2076711,"key":"reclaim.osvc_01H299KDA55TB7XF7RATRY51GC.description","ns":"org-data"},{"crowdinId":2076641,"key":"reclaim.attribute.atts_01H29ENF9991JFG2VST7N4H5SZ","ns":"org-data"},{"crowdinId":2076647,"key":"reclaim.attribute.atts_01H29ENF9DDFB98N7JR7SCTV5A","ns":"org-data"},{"crowdinId":2076651,"key":"reclaim.attribute.atts_01H29ENF9EWW1BVRAXP8XJXRQ6","ns":"org-data"},{"crowdinId":2076649,"key":"reclaim.attribute.atts_01H29ENF9EN5A0HBDYXZHBAVBR","ns":"org-data"},{"crowdinId":2076657,"key":"reclaim.attribute.atts_01H29ENF9HK6K37SMXS3QX94J8","ns":"org-data"},{"crowdinId":2076653,"key":"reclaim.attribute.atts_01H29ENF9FASKAZYESTNBQVQY4","ns":"org-data"},{"crowdinId":2076715,"key":"reclaim.osvc_01H299KDABBQYEECQH0SRBT8ZZ.description","ns":"org-data"},{"crowdinId":2076663,"key":"reclaim.attribute.atts_01H29ENF9KV6BS8VTYVTQ443VT","ns":"org-data"},{"crowdinId":2076667,"key":"reclaim.attribute.atts_01H29ENF9NQBZM2PT7WJ8545WM","ns":"org-data"},{"crowdinId":2076671,"key":"reclaim.attribute.atts_01H29ENF9QWNT8SARBMGCJMZ45","ns":"org-data"},{"crowdinId":2076665,"key":"reclaim.attribute.atts_01H29ENF9M3QQGFPF3NV4WC6T3","ns":"org-data"},{"crowdinId":2076675,"key":"reclaim.attribute.atts_01H29ENF9RCYV5XG1QHAAKSMP7","ns":"org-data"},{"crowdinId":2076661,"key":"reclaim.attribute.atts_01H29ENF9KGWFJ7GP0TM8P634C","ns":"org-data"},{"crowdinId":2076659,"key":"reclaim.attribute.atts_01H29ENF9JPVBM3NS2Q91JGVV1","ns":"org-data"},{"crowdinId":2076717,"key":"reclaim.osvc_01H299KDABBQYEECQH0SRBT8ZZ.name","ns":"org-data"},{"crowdinId":2076719,"key":"reclaim.osvc_01H299KDAGP2Q26P1FTN9ES3HZ.description","ns":"org-data"},{"crowdinId":2076669,"key":"reclaim.attribute.atts_01H29ENF9P93XASTXV2T1JKQQX","ns":"org-data"},{"crowdinId":2076673,"key":"reclaim.attribute.atts_01H29ENF9QZSBNZBGCDS3X209D","ns":"org-data"},{"crowdinId":2076677,"key":"reclaim.attribute.atts_01H29ENF9TMSY95QM10JCCC2S2","ns":"org-data"},{"crowdinId":2076721,"key":"reclaim.osvc_01H299KDAGP2Q26P1FTN9ES3HZ.name","ns":"org-data"},{"crowdinId":2076723,"key":"reclaim.osvc_01H299KDATWFD94NXZ3K9Z6PMH.description","ns":"org-data"},{"crowdinId":2076679,"key":"reclaim.attribute.atts_01H29ENF9YV0V7PAAEH7CJ0ZCQ","ns":"org-data"},{"crowdinId":2076681,"key":"reclaim.attribute.atts_01H29ENF9ZDKGWEQ5B807DXE8G","ns":"org-data"},{"crowdinId":2076683,"key":"reclaim.attribute.atts_01H29ENFA03NXWBMAZKCRRYH19","ns":"org-data"},{"crowdinId":2076685,"key":"reclaim.attribute.atts_01H29ENFA0H8KFHKGRX42FGAQ6","ns":"org-data"},{"crowdinId":2076725,"key":"reclaim.osvc_01H299KDATWFD94NXZ3K9Z6PMH.name","ns":"org-data"},{"crowdinId":2076687,"key":"reclaim.attribute.atts_01H29ENFA1ZSE00Y1DZ44Z7AQF","ns":"org-data"},{"crowdinId":2076689,"key":"reclaim.attribute.atts_01H29ENFA2XX9QEWE3YJ6KHT3P","ns":"org-data"},{"crowdinId":2077105,"key":"southside-presbyterian-church.ophn_01H299KDBA7TKKFJK7EHGWF1AX.description","ns":"org-data"},{"crowdinId":2077111,"key":"southside-presbyterian-church.osvc_01H299KDBEXG43JH8V0XYS0FRD.description","ns":"org-data"},{"crowdinId":2076729,"key":"reclaim.osvc_01H299KDAYS3H4P54Z86FP4ZE1.name","ns":"org-data"},{"crowdinId":2076693,"key":"reclaim.attribute.atts_01H29ENFA3AJYFXA0XV1DEAPXT","ns":"org-data"},{"crowdinId":2077103,"key":"southside-presbyterian-church.oeml_01H299KDBA8DRNTMK9N46D6Y2Y.description","ns":"org-data"},{"crowdinId":2077097,"key":"southside-presbyterian-church.attribute.atts_01H29ENFAJN1H5WT2H6E551A84","ns":"org-data"},{"crowdinId":2076727,"key":"reclaim.osvc_01H299KDAYS3H4P54Z86FP4ZE1.description","ns":"org-data"},{"crowdinId":2077107,"key":"southside-presbyterian-church.osvc_01H299KDBCKACFV1ZC5RD6A10P.description","ns":"org-data"},{"crowdinId":2076691,"key":"reclaim.attribute.atts_01H29ENFA30FAGQD7VWB8Y32YK","ns":"org-data"},{"crowdinId":2076695,"key":"reclaim.attribute.atts_01H29ENFA5W98E24YGQF2QSTDA","ns":"org-data"},{"crowdinId":2077093,"key":"southside-presbyterian-church.attribute.atts_01H29ENFAHK59K84M7CA04VFZF","ns":"org-data"},{"crowdinId":2077095,"key":"southside-presbyterian-church.attribute.atts_01H29ENFAJ3T1ZACHFPNJCVB40","ns":"org-data"},{"crowdinId":2077113,"key":"southside-presbyterian-church.osvc_01H299KDBEXG43JH8V0XYS0FRD.name","ns":"org-data"},{"crowdinId":2077099,"key":"southside-presbyterian-church.attribute.atts_01H29ENFAK1B2HVAYVJ5Q7E2BD","ns":"org-data"},{"crowdinId":2075139,"key":"lgbtq-center-of-durham.ophn_01H299KDBPZZB52XRG3RKSYSJ8.description","ns":"org-data"},{"crowdinId":2075129,"key":"lgbtq-center-of-durham.oeml_01H299KDBP9QENNVBE76442S0Q.description","ns":"org-data"},{"crowdinId":2075127,"key":"lgbtq-center-of-durham.oeml_01H299KDBP9EKN0TSA7Q54HHZN.description","ns":"org-data"},{"crowdinId":2075131,"key":"lgbtq-center-of-durham.oeml_01H299KDBP9QP884YJT03M7XX0.description","ns":"org-data"},{"crowdinId":2075133,"key":"lgbtq-center-of-durham.oeml_01H299KDBPDV204DGMJKXTDMYA.description","ns":"org-data"},{"crowdinId":2075137,"key":"lgbtq-center-of-durham.oeml_01H299KDBQT649JHV4FDP25C1N.description","ns":"org-data"},{"crowdinId":2075135,"key":"lgbtq-center-of-durham.oeml_01H299KDBQAAFE87EYHE3QNQ65.description","ns":"org-data"},{"crowdinId":2075141,"key":"lgbtq-center-of-durham.osvc_01H299KDC4TR48H9S4A97YHHRY.description","ns":"org-data"},{"crowdinId":2075073,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFB6YHPPVZ0XDK7VGZTE","ns":"org-data"},{"crowdinId":2075075,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFB7PNKMJ38G94GDPK44","ns":"org-data"},{"crowdinId":2075077,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFB7X1YWJFDB85J6CS5E","ns":"org-data"},{"crowdinId":2075143,"key":"lgbtq-center-of-durham.osvc_01H299KDC4TR48H9S4A97YHHRY.name","ns":"org-data"},{"crowdinId":2075147,"key":"lgbtq-center-of-durham.osvc_01H299KDC8XW9D0H82CB5HKCP7.name","ns":"org-data"},{"crowdinId":2075125,"key":"lgbtq-center-of-durham.oeml_01H299KDBP65NT78F6EA8WC72Y.description","ns":"org-data"},{"crowdinId":2075145,"key":"lgbtq-center-of-durham.osvc_01H299KDC8XW9D0H82CB5HKCP7.description","ns":"org-data"},{"crowdinId":2075079,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFB8PVSEG219E27ZC2BH","ns":"org-data"},{"crowdinId":2075071,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFB6XDYB0M575RK5KQ3Q","ns":"org-data"},{"crowdinId":2075083,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBAWJEMWZWFVQ06SQKN","ns":"org-data"},{"crowdinId":2075081,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFB99F6QEKW71HDFR63M","ns":"org-data"},{"crowdinId":2075087,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBBQSFA398YBSY64W16","ns":"org-data"},{"crowdinId":2075897,"key":"outside-in.osvc_01H299KDDHF715JGJ31AJA8PDG.description","ns":"org-data"},{"crowdinId":2075149,"key":"lgbtq-center-of-durham.osvc_01H299KDCA8BCK5KRVAKE26447.description","ns":"org-data"},{"crowdinId":2075151,"key":"lgbtq-center-of-durham.osvc_01H299KDCA8BCK5KRVAKE26447.name","ns":"org-data"},{"crowdinId":2075089,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBCM072BFJQ77AH89ZA","ns":"org-data"},{"crowdinId":2075085,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBBAJYMFJS311G5KCJE","ns":"org-data"},{"crowdinId":2075099,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBJPXHSAN8Y4969SXWR","ns":"org-data"},{"crowdinId":2075159,"key":"lgbtq-center-of-durham.osvc_01H299KDCGP0ZX6J98J9QTY3D1.name","ns":"org-data"},{"crowdinId":2075153,"key":"lgbtq-center-of-durham.osvc_01H299KDCC90TFX831RX6T0X89.description","ns":"org-data"},{"crowdinId":2075157,"key":"lgbtq-center-of-durham.osvc_01H299KDCGP0ZX6J98J9QTY3D1.description","ns":"org-data"},{"crowdinId":2075093,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBE5Y6G0PGE4TNTT8MB","ns":"org-data"},{"crowdinId":2075155,"key":"lgbtq-center-of-durham.osvc_01H299KDCC90TFX831RX6T0X89.name","ns":"org-data"},{"crowdinId":2075091,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBDTAPVJ3C03TBD2JMJ","ns":"org-data"},{"crowdinId":2075097,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBHKQ10F8HF60GHN7E2","ns":"org-data"},{"crowdinId":2075095,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBF99RPPV836FAC2PAX","ns":"org-data"},{"crowdinId":2075161,"key":"lgbtq-center-of-durham.osvc_01H299KDCNKR86YGB5Y97EAJGH.description","ns":"org-data"},{"crowdinId":2075105,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBPMD1QRA5YPZ6VQ6EB","ns":"org-data"},{"crowdinId":2075101,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBKD9RVQJ8F5Z6064HQ","ns":"org-data"},{"crowdinId":2075103,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBPEV9TFTEDD1XTP7YV","ns":"org-data"},{"crowdinId":2075163,"key":"lgbtq-center-of-durham.osvc_01H299KDCNKR86YGB5Y97EAJGH.name","ns":"org-data"},{"crowdinId":2075107,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBQ1KXS8YNXZJ4F7XP8","ns":"org-data"},{"crowdinId":2075165,"key":"lgbtq-center-of-durham.osvc_01H299KDCSDTRPTZDGZ2QBPBK5.description","ns":"org-data"},{"crowdinId":2075113,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBW9HAN7NKWWEWE3FSS","ns":"org-data"},{"crowdinId":2075109,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBT104RNMD9QSP531AM","ns":"org-data"},{"crowdinId":2075111,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBVTR49TCTB8Q1D4S0D","ns":"org-data"},{"crowdinId":2075167,"key":"lgbtq-center-of-durham.osvc_01H299KDCSDTRPTZDGZ2QBPBK5.name","ns":"org-data"},{"crowdinId":2075169,"key":"lgbtq-center-of-durham.osvc_01H299KDCXMFWDWRXFD4MAXA9Q.description","ns":"org-data"},{"crowdinId":2075171,"key":"lgbtq-center-of-durham.osvc_01H299KDCXMFWDWRXFD4MAXA9Q.name","ns":"org-data"},{"crowdinId":2075877,"key":"outside-in.ophn_01H299KDD79QEV3J00JZVZS05P.description","ns":"org-data"},{"crowdinId":2075117,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBZZF8JH62K47N8PWVM","ns":"org-data"},{"crowdinId":2075119,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFC1YBS0W78KCJZ7ZF09","ns":"org-data"},{"crowdinId":2075115,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFBZDPR6Y9RJW5SXA1FP","ns":"org-data"},{"crowdinId":2075879,"key":"outside-in.ophn_01H299KDD7CBXPSWH9G2C3CT6Z.description","ns":"org-data"},{"crowdinId":2075173,"key":"lgbtq-center-of-durham.osvc_01H299KDD08M0HPESWVC0R4720.description","ns":"org-data"},{"crowdinId":2075175,"key":"lgbtq-center-of-durham.osvc_01H299KDD08M0HPESWVC0R4720.name","ns":"org-data"},{"crowdinId":2075883,"key":"outside-in.ophn_01H299KDD840C3E56N05TP0RW0.description","ns":"org-data"},{"crowdinId":2075881,"key":"outside-in.ophn_01H299KDD83JTWSV6B0JFKC7Z3.description","ns":"org-data"},{"crowdinId":2075885,"key":"outside-in.ophn_01H299KDD93MNBWVRTZCD7MXAQ.description","ns":"org-data"},{"crowdinId":2075121,"key":"lgbtq-center-of-durham.attribute.atts_01H29ENFC2R4VSVBBFX1SJQ2GN","ns":"org-data"},{"crowdinId":2075875,"key":"outside-in.oeml_01H299KDDAR1RE56HKWG964PBT.description","ns":"org-data"},{"crowdinId":2075887,"key":"outside-in.ophn_01H299KDD9TREPYXCM9Q9AVA6P.description","ns":"org-data"},{"crowdinId":2075889,"key":"outside-in.osvc_01H299KDDBQK1HWDYE8YG8MHMF.description","ns":"org-data"},{"crowdinId":2075853,"key":"outside-in.attribute.atts_01H29ENFCBXM9V82B3XCK1AWDT","ns":"org-data"},{"crowdinId":2075855,"key":"outside-in.attribute.atts_01H29ENFCC41G5EHG4CV9JT42M","ns":"org-data"},{"crowdinId":2075891,"key":"outside-in.osvc_01H299KDDBQK1HWDYE8YG8MHMF.name","ns":"org-data"},{"crowdinId":2075857,"key":"outside-in.attribute.atts_01H29ENFCCQN91KHV84F81EF2W","ns":"org-data"},{"crowdinId":2077613,"key":"transforming-family.attribute.atts_01H29ENFCRCNAGF3SBE815RQVE","ns":"org-data"},{"crowdinId":2077655,"key":"transforming-family.oeml_01H299KDDPGJ6JFEERM3D6SJCY.description","ns":"org-data"},{"crowdinId":2075899,"key":"outside-in.osvc_01H299KDDHF715JGJ31AJA8PDG.name","ns":"org-data"},{"crowdinId":2075861,"key":"outside-in.attribute.atts_01H29ENFCECKCQ75VV84Y1CJVA","ns":"org-data"},{"crowdinId":2077657,"key":"transforming-family.osvc_01H299KDDS3NSWWETJ3FV95643.description","ns":"org-data"},{"crowdinId":2075895,"key":"outside-in.osvc_01H299KDDE63RBV0V36JH31ABP.name","ns":"org-data"},{"crowdinId":2075859,"key":"outside-in.attribute.atts_01H29ENFCE3D3026QKESR1JQBD","ns":"org-data"},{"crowdinId":2075893,"key":"outside-in.osvc_01H299KDDE63RBV0V36JH31ABP.description","ns":"org-data"},{"crowdinId":2077615,"key":"transforming-family.attribute.atts_01H29ENFCRNBXZTA1KGRNY9EMB","ns":"org-data"},{"crowdinId":2077659,"key":"transforming-family.osvc_01H299KDDS3NSWWETJ3FV95643.name","ns":"org-data"},{"crowdinId":2075871,"key":"outside-in.attribute.atts_01H29ENFCJR27AMDVPBCH2HCT4","ns":"org-data"},{"crowdinId":2077617,"key":"transforming-family.attribute.atts_01H29ENFCS73WFBB8VP2EHS5GX","ns":"org-data"},{"crowdinId":2077661,"key":"transforming-family.osvc_01H299KDDWDPKRH2X5Y3Q53ED7.description","ns":"org-data"},{"crowdinId":2077621,"key":"transforming-family.attribute.atts_01H29ENFCV7BAGH8SKBER0H2M9","ns":"org-data"},{"crowdinId":2077619,"key":"transforming-family.attribute.atts_01H29ENFCSEWMW7DSVWNPVSFG1","ns":"org-data"},{"crowdinId":2077623,"key":"transforming-family.attribute.atts_01H29ENFCV9YXQP7MQHZQPEFRX","ns":"org-data"},{"crowdinId":2077625,"key":"transforming-family.attribute.atts_01H29ENFCW59HC6XYPXSF0BMR7","ns":"org-data"},{"crowdinId":2077627,"key":"transforming-family.attribute.atts_01H29ENFCWEB8BRMT71AH1Y4FS","ns":"org-data"},{"crowdinId":2077663,"key":"transforming-family.osvc_01H299KDDWDPKRH2X5Y3Q53ED7.name","ns":"org-data"},{"crowdinId":2077665,"key":"transforming-family.osvc_01H299KDE6NQ36TA7WMAM7C7Y5.description","ns":"org-data"},{"crowdinId":2077671,"key":"transforming-family.osvc_01H299KDE8BW12H1PAYXSJW1V0.name","ns":"org-data"},{"crowdinId":2077635,"key":"transforming-family.attribute.atts_01H29ENFCZEEBRE1RC5PCQK5FE","ns":"org-data"},{"crowdinId":2077639,"key":"transforming-family.attribute.atts_01H29ENFD64KWRE7ZCAEZ9ZSER","ns":"org-data"},{"crowdinId":2077633,"key":"transforming-family.attribute.atts_01H29ENFCYBP9Y1H4221G6RPPE","ns":"org-data"},{"crowdinId":2077667,"key":"transforming-family.osvc_01H299KDE6NQ36TA7WMAM7C7Y5.name","ns":"org-data"},{"crowdinId":2077631,"key":"transforming-family.attribute.atts_01H29ENFCY74AYQTDVT2XP8KTZ","ns":"org-data"},{"crowdinId":2077643,"key":"transforming-family.attribute.atts_01H29ENFD7XTFK5M8J338MWPMG","ns":"org-data"},{"crowdinId":2077669,"key":"transforming-family.osvc_01H299KDE8BW12H1PAYXSJW1V0.description","ns":"org-data"},{"crowdinId":2077637,"key":"transforming-family.attribute.atts_01H29ENFD08ZCZWHKXDPZW30YZ","ns":"org-data"},{"crowdinId":2077629,"key":"transforming-family.attribute.atts_01H29ENFCXNESRV5CSXTE7KZ1W","ns":"org-data"},{"crowdinId":2077641,"key":"transforming-family.attribute.atts_01H29ENFD7AMMH0NDGAE9W6HK8","ns":"org-data"},{"crowdinId":2077647,"key":"transforming-family.attribute.atts_01H29ENFD99D380JQPPP305XE7","ns":"org-data"},{"crowdinId":2077673,"key":"transforming-family.osvc_01H299KDEBZB87BH09N3ST7P9E.description","ns":"org-data"},{"crowdinId":2077645,"key":"transforming-family.attribute.atts_01H29ENFD97Z9FF16T2QY0CMD8","ns":"org-data"},{"crowdinId":2077651,"key":"transforming-family.attribute.atts_01H29ENFDACE1BMJZS8J628PY6","ns":"org-data"},{"crowdinId":2077675,"key":"transforming-family.osvc_01H299KDEBZB87BH09N3ST7P9E.name","ns":"org-data"},{"crowdinId":2077649,"key":"transforming-family.attribute.atts_01H29ENFDA612VYFFB6Y95Q9BC","ns":"org-data"},{"crowdinId":2078263,"key":"ucsf-benioff-childrens-hospital-child-and-adolescent-gender-center.ophn_01H299KDEJ7QNGF7JEJY8HCVSE.description","ns":"org-data"},{"crowdinId":2078265,"key":"ucsf-benioff-childrens-hospital-child-and-adolescent-gender-center.osvc_01H299KDEMCB11DMVEDSDPVQP1.description","ns":"org-data"},{"crowdinId":2078251,"key":"ucsf-benioff-childrens-hospital-child-and-adolescent-gender-center.attribute.atts_01H29ENFDH9E0XJWRQGKRX12S7","ns":"org-data"},{"crowdinId":2078257,"key":"ucsf-benioff-childrens-hospital-child-and-adolescent-gender-center.attribute.atts_01H29ENFDKW58QS33QJKSAVHSN","ns":"org-data"},{"crowdinId":2078253,"key":"ucsf-benioff-childrens-hospital-child-and-adolescent-gender-center.attribute.atts_01H29ENFDJD66HGNYK632X77RA","ns":"org-data"},{"crowdinId":2077217,"key":"the-center-for-transyouth-health-and-development-at-childrens-hospital-los-angeles.oeml_01H299KDEX2Q588HPWPC8FV2VC.description","ns":"org-data"},{"crowdinId":2077223,"key":"the-center-for-transyouth-health-and-development-at-childrens-hospital-los-angeles.osvc_01H299KDEZSWYEFM123347RXCN.description","ns":"org-data"},{"crowdinId":2077221,"key":"the-center-for-transyouth-health-and-development-at-childrens-hospital-los-angeles.ophn_01H299KDEX60N9G2HGTF1CZ8BG.description","ns":"org-data"},{"crowdinId":2078259,"key":"ucsf-benioff-childrens-hospital-child-and-adolescent-gender-center.attribute.atts_01H29ENFDMRBXV7JS4KSYXNSM5","ns":"org-data"},{"crowdinId":2077219,"key":"the-center-for-transyouth-health-and-development-at-childrens-hospital-los-angeles.ophn_01H299KDEWSHQY4JPXNP3GKDRB.description","ns":"org-data"},{"crowdinId":2078267,"key":"ucsf-benioff-childrens-hospital-child-and-adolescent-gender-center.osvc_01H299KDEMCB11DMVEDSDPVQP1.name","ns":"org-data"},{"crowdinId":2078255,"key":"ucsf-benioff-childrens-hospital-child-and-adolescent-gender-center.attribute.atts_01H29ENFDJD67J21KN234H54ZB","ns":"org-data"},{"crowdinId":2077209,"key":"the-center-for-transyouth-health-and-development-at-childrens-hospital-los-angeles.attribute.atts_01H29ENFDW7NF75AMDS272DS3W","ns":"org-data"},{"crowdinId":2077207,"key":"the-center-for-transyouth-health-and-development-at-childrens-hospital-los-angeles.attribute.atts_01H29ENFDW4GFDA969FT8T143A","ns":"org-data"},{"crowdinId":2077213,"key":"the-center-for-transyouth-health-and-development-at-childrens-hospital-los-angeles.attribute.atts_01H29ENFDYE3E28V4F7XWK43A8","ns":"org-data"},{"crowdinId":2074453,"key":"glys-of-wny.ophn_01H299KDF61X6YC2D578M6C05C.description","ns":"org-data"},{"crowdinId":2077211,"key":"the-center-for-transyouth-health-and-development-at-childrens-hospital-los-angeles.attribute.atts_01H29ENFDXT0BX1JGNF1Q2XAXJ","ns":"org-data"},{"crowdinId":2077225,"key":"the-center-for-transyouth-health-and-development-at-childrens-hospital-los-angeles.osvc_01H299KDEZSWYEFM123347RXCN.name","ns":"org-data"},{"crowdinId":2074451,"key":"glys-of-wny.oeml_01H299KDF6KAYEZCNRF1G5ENMN.description","ns":"org-data"},{"crowdinId":2074449,"key":"glys-of-wny.oeml_01H299KDF6H17ME96S4KPC5FSR.description","ns":"org-data"},{"crowdinId":2074423,"key":"glys-of-wny.attribute.atts_01H29ENFE6J4BNNMBTS97S24HC","ns":"org-data"},{"crowdinId":2074455,"key":"glys-of-wny.osvc_01H299KDFAKRQY2T6NX4GRHCRG.description","ns":"org-data"},{"crowdinId":2074421,"key":"glys-of-wny.attribute.atts_01H29ENFE6767DBP547Y3JNF88","ns":"org-data"},{"crowdinId":2074433,"key":"glys-of-wny.attribute.atts_01H29ENFEBEFQRRR67A2GG5FDM","ns":"org-data"},{"crowdinId":2074427,"key":"glys-of-wny.attribute.atts_01H29ENFE7E1TDREP8H9A32BP9","ns":"org-data"},{"crowdinId":2074459,"key":"glys-of-wny.osvc_01H299KDFFDM0EK6DDSSHK7XZ0.description","ns":"org-data"},{"crowdinId":2074457,"key":"glys-of-wny.osvc_01H299KDFAKRQY2T6NX4GRHCRG.name","ns":"org-data"},{"crowdinId":2074425,"key":"glys-of-wny.attribute.atts_01H29ENFE78RPBZN7DAGWTHFNN","ns":"org-data"},{"crowdinId":2074431,"key":"glys-of-wny.attribute.atts_01H29ENFEAREHP9AX3X7DJN094","ns":"org-data"},{"crowdinId":2073671,"key":"avol.osvc_01H299KDHY74VN3DRGK1CZFG1S.name","ns":"org-data"},{"crowdinId":2074429,"key":"glys-of-wny.attribute.atts_01H29ENFE9S0WP1PQ1X049P1BM","ns":"org-data"},{"crowdinId":2074461,"key":"glys-of-wny.osvc_01H299KDFFDM0EK6DDSSHK7XZ0.name","ns":"org-data"},{"crowdinId":2074435,"key":"glys-of-wny.attribute.atts_01H29ENFEDDA82SH1XMH37W3F3","ns":"org-data"},{"crowdinId":2074463,"key":"glys-of-wny.osvc_01H299KDFHRG2TX42ET3D4VWRS.description","ns":"org-data"},{"crowdinId":2074465,"key":"glys-of-wny.osvc_01H299KDFHRG2TX42ET3D4VWRS.name","ns":"org-data"},{"crowdinId":2074437,"key":"glys-of-wny.attribute.atts_01H29ENFEEEAFTEE7GEYZNTHH0","ns":"org-data"},{"crowdinId":2074439,"key":"glys-of-wny.attribute.atts_01H29ENFEG46WH56QFRW4VFYHC","ns":"org-data"},{"crowdinId":2074467,"key":"glys-of-wny.osvc_01H299KDFMPEVAD21TWY4QGHWJ.description","ns":"org-data"},{"crowdinId":2074469,"key":"glys-of-wny.osvc_01H299KDFMPEVAD21TWY4QGHWJ.name","ns":"org-data"},{"crowdinId":2074441,"key":"glys-of-wny.attribute.atts_01H29ENFEG57S3GMDZ5G1413DW","ns":"org-data"},{"crowdinId":2074471,"key":"glys-of-wny.osvc_01H299KDFQ2FP0NSHJCYH38AEH.description","ns":"org-data"},{"crowdinId":2074443,"key":"glys-of-wny.attribute.atts_01H29ENFEJABACVA4QKNS8P1VQ","ns":"org-data"},{"crowdinId":2074473,"key":"glys-of-wny.osvc_01H299KDFQ2FP0NSHJCYH38AEH.name","ns":"org-data"},{"crowdinId":2077015,"key":"sayftee.attribute.atts_01H29ENFESV3RMHFS59XDNSY8H","ns":"org-data"},{"crowdinId":2077027,"key":"sayftee.osvc_01H299KDFYEW30MMMQ55FHEN85.name","ns":"org-data"},{"crowdinId":2077023,"key":"sayftee.osvc_01H299KDFYAW6C85PEH9ENM7ZF.name","ns":"org-data"},{"crowdinId":2077031,"key":"sayftee.osvc_01H299KDG04PSZ0MSACM6206Y4.name","ns":"org-data"},{"crowdinId":2074445,"key":"glys-of-wny.attribute.atts_01H29ENFEKJ2D59TM4J0BYQVBQ","ns":"org-data"},{"crowdinId":2077029,"key":"sayftee.osvc_01H299KDG04PSZ0MSACM6206Y4.description","ns":"org-data"},{"crowdinId":2075467,"key":"miracle-of-love-inc-mol.ophn_01H299KDG65TT6EE9DM51368K0.description","ns":"org-data"},{"crowdinId":2077017,"key":"sayftee.attribute.atts_01H29ENFESWN8DE1GQMTJM1WA1","ns":"org-data"},{"crowdinId":2075469,"key":"miracle-of-love-inc-mol.ophn_01H299KDG6PCSETQHMWMM7Y331.description","ns":"org-data"},{"crowdinId":2077019,"key":"sayftee.attribute.atts_01H29ENFEVJX06AKPFFY4K4Q74","ns":"org-data"},{"crowdinId":2077025,"key":"sayftee.osvc_01H299KDFYEW30MMMQ55FHEN85.description","ns":"org-data"},{"crowdinId":2075465,"key":"miracle-of-love-inc-mol.oeml_01H299KDG8P0K7Z9AJRM07V5CG.description","ns":"org-data"},{"crowdinId":2075473,"key":"miracle-of-love-inc-mol.ophn_01H299KDG81H4QQJ4WS6S72BS7.description","ns":"org-data"},{"crowdinId":2075471,"key":"miracle-of-love-inc-mol.ophn_01H299KDG78TDQKHBZTBMSGMP1.description","ns":"org-data"},{"crowdinId":2075499,"key":"miracle-of-love-inc-mol.osvc_01H299KDGMCQ2GABHT125M99T8.description","ns":"org-data"},{"crowdinId":2075475,"key":"miracle-of-love-inc-mol.osvc_01H299KDGAR6DS83FRBZ4MSQ9B.description","ns":"org-data"},{"crowdinId":2075443,"key":"miracle-of-love-inc-mol.attribute.atts_01H29ENFF3QBJ9XK210GS3MEKT","ns":"org-data"},{"crowdinId":2075477,"key":"miracle-of-love-inc-mol.osvc_01H299KDGAR6DS83FRBZ4MSQ9B.name","ns":"org-data"},{"crowdinId":2075445,"key":"miracle-of-love-inc-mol.attribute.atts_01H29ENFF5FCSJBDEY8Z0318Z5","ns":"org-data"},{"crowdinId":2075479,"key":"miracle-of-love-inc-mol.osvc_01H299KDGCQAZRQN4ZYAQC7M5D.description","ns":"org-data"},{"crowdinId":2075481,"key":"miracle-of-love-inc-mol.osvc_01H299KDGCQAZRQN4ZYAQC7M5D.name","ns":"org-data"},{"crowdinId":2075451,"key":"miracle-of-love-inc-mol.attribute.atts_01H29ENFF8XCMP269JVMPBEJ8G","ns":"org-data"},{"crowdinId":2075447,"key":"miracle-of-love-inc-mol.attribute.atts_01H29ENFF6TMFTW4M65WJXNMZM","ns":"org-data"},{"crowdinId":2075483,"key":"miracle-of-love-inc-mol.osvc_01H299KDGE165PWYZJPQDQN100.description","ns":"org-data"},{"crowdinId":2075453,"key":"miracle-of-love-inc-mol.attribute.atts_01H29ENFFAX4AJDPAR4RCV327K","ns":"org-data"},{"crowdinId":2075485,"key":"miracle-of-love-inc-mol.osvc_01H299KDGE165PWYZJPQDQN100.name","ns":"org-data"},{"crowdinId":2075487,"key":"miracle-of-love-inc-mol.osvc_01H299KDGHBD3MF0MHX7DT8FCC.name","ns":"org-data"},{"crowdinId":2075449,"key":"miracle-of-love-inc-mol.attribute.atts_01H29ENFF8DEPVTDETSTN8YSDE","ns":"org-data"},{"crowdinId":2075489,"key":"miracle-of-love-inc-mol.osvc_01H299KDGJ50JA1513ACH4069F.name","ns":"org-data"},{"crowdinId":2075495,"key":"miracle-of-love-inc-mol.osvc_01H299KDGJCP70QHF83NAFBER1.name","ns":"org-data"},{"crowdinId":2075497,"key":"miracle-of-love-inc-mol.osvc_01H299KDGJW244NRYNZ0DTQKVG.name","ns":"org-data"},{"crowdinId":2075493,"key":"miracle-of-love-inc-mol.osvc_01H299KDGJB7D2GS8AYK08QDBF.name","ns":"org-data"},{"crowdinId":2075491,"key":"miracle-of-love-inc-mol.osvc_01H299KDGJB7D2GS8AYK08QDBF.description","ns":"org-data"},{"crowdinId":2075455,"key":"miracle-of-love-inc-mol.attribute.atts_01H29ENFFC2HPKNJ6BKGFZE29J","ns":"org-data"},{"crowdinId":2075503,"key":"miracle-of-love-inc-mol.osvc_01H299KDGMRP08YWA5AZDWXMZR.name","ns":"org-data"},{"crowdinId":2075459,"key":"miracle-of-love-inc-mol.attribute.atts_01H29ENFFE619P2CBFS45BT3D5","ns":"org-data"},{"crowdinId":2075507,"key":"miracle-of-love-inc-mol.osvc_01H299KDGMSJWMB16ABZBTNGSE.name","ns":"org-data"},{"crowdinId":2075505,"key":"miracle-of-love-inc-mol.osvc_01H299KDGMSJPYCG2TB2FKYR51.name","ns":"org-data"},{"crowdinId":2075457,"key":"miracle-of-love-inc-mol.attribute.atts_01H29ENFFDJBME96ETC85ZPFB4","ns":"org-data"},{"crowdinId":2075461,"key":"miracle-of-love-inc-mol.attribute.atts_01H29ENFFFW3JE753JNR73A2N6","ns":"org-data"},{"crowdinId":2078275,"key":"united-cambodian-community.ophn_01H299KDGWDM3QEN597TA6PXZ6.description","ns":"org-data"},{"crowdinId":2078279,"key":"united-cambodian-community.osvc_01H299KDGY2FPFPDZZ2P81BM64.name","ns":"org-data"},{"crowdinId":2075501,"key":"miracle-of-love-inc-mol.osvc_01H299KDGMCQ2GABHT125M99T8.name","ns":"org-data"},{"crowdinId":2078283,"key":"united-cambodian-community.osvc_01H299KDGYANX75WX70KQYQCE9.name","ns":"org-data"},{"crowdinId":2078271,"key":"united-cambodian-community.oeml_01H299KDGXR5SQBY3FSAPQ1F5R.description","ns":"org-data"},{"crowdinId":2078273,"key":"united-cambodian-community.ophn_01H299KDGVK7HDR74YS1CZXSFF.description","ns":"org-data"},{"crowdinId":2078277,"key":"united-cambodian-community.ophn_01H299KDGWNVGD06J5TDKBEEP0.description","ns":"org-data"},{"crowdinId":2078281,"key":"united-cambodian-community.osvc_01H299KDGY83ZZ39A6MJVHMHM7.name","ns":"org-data"},{"crowdinId":2075193,"key":"literacy-volunteers-of-greater-new-haven.ophn_01H299KDH1MKDC709G26MZ035K.description","ns":"org-data"},{"crowdinId":2078285,"key":"united-cambodian-community.osvc_01H299KDGYTFAN7RXYJ24GF89Y.name","ns":"org-data"},{"crowdinId":2075191,"key":"literacy-volunteers-of-greater-new-haven.ophn_01H299KDH1HZBHYYEJHA773PR2.description","ns":"org-data"},{"crowdinId":2075195,"key":"literacy-volunteers-of-greater-new-haven.osvc_01H299KDH40DEPJ2V9F4W0Z4J3.description","ns":"org-data"},{"crowdinId":2075177,"key":"literacy-volunteers-of-greater-new-haven.attribute.atts_01H29ENFFXXRDXMHSA43YP26SA","ns":"org-data"},{"crowdinId":2075187,"key":"literacy-volunteers-of-greater-new-haven.oeml_01H299KDH1QGF7XKF1G2X8QEEC.description","ns":"org-data"},{"crowdinId":2075189,"key":"literacy-volunteers-of-greater-new-haven.oeml_01H299KDH2TNTCPZ9BNNGXZQE0.description","ns":"org-data"},{"crowdinId":2075199,"key":"literacy-volunteers-of-greater-new-haven.osvc_01H299KDH755GZTWANJWR3FKQA.description","ns":"org-data"},{"crowdinId":2075183,"key":"literacy-volunteers-of-greater-new-haven.attribute.atts_01H29ENFG0GQ70K5T18H6W47B8","ns":"org-data"},{"crowdinId":2075179,"key":"literacy-volunteers-of-greater-new-haven.attribute.atts_01H29ENFFY14REKTXC4BARSBJG","ns":"org-data"},{"crowdinId":2075197,"key":"literacy-volunteers-of-greater-new-haven.osvc_01H299KDH40DEPJ2V9F4W0Z4J3.name","ns":"org-data"},{"crowdinId":2075181,"key":"literacy-volunteers-of-greater-new-haven.attribute.atts_01H29ENFFYT60AAWT070STXFXZ","ns":"org-data"},{"crowdinId":2073747,"key":"black-and-pink.oeml_01H299KDHGQSG253C9PT2885JV.description","ns":"org-data"},{"crowdinId":2073661,"key":"avol.ophn_01H299KDHVGB2N92WNYGP8K9V6.description","ns":"org-data"},{"crowdinId":2073665,"key":"avol.ophn_01H299KDHWQ0GK0YMDEYA6X4VT.description","ns":"org-data"},{"crowdinId":2073743,"key":"black-and-pink.attribute.atts_01H29ENFGGQACS8QQMZF995RVY","ns":"org-data"},{"crowdinId":2073751,"key":"black-and-pink.osvc_01H299KDHP4BJPYBQ9GPRWFQSP.description","ns":"org-data"},{"crowdinId":2073739,"key":"black-and-pink.attribute.atts_01H29ENFGB5ABBK8TYMYKEKM5A","ns":"org-data"},{"crowdinId":2075201,"key":"literacy-volunteers-of-greater-new-haven.osvc_01H299KDH755GZTWANJWR3FKQA.name","ns":"org-data"},{"crowdinId":2073753,"key":"black-and-pink.osvc_01H299KDHP4BJPYBQ9GPRWFQSP.name","ns":"org-data"},{"crowdinId":2073741,"key":"black-and-pink.attribute.atts_01H29ENFGBMKSJ92Y1AG9FVBZ1","ns":"org-data"},{"crowdinId":2073749,"key":"black-and-pink.oeml_01H299KDHHBKV4F6FG12ZMDZ9B.description","ns":"org-data"},{"crowdinId":2073663,"key":"avol.ophn_01H299KDHW82ABA4YQBJXY803C.description","ns":"org-data"},{"crowdinId":2073651,"key":"avol.attribute.atts_01H29ENFGRBMMQVS4A86P2F1PX","ns":"org-data"},{"crowdinId":2073669,"key":"avol.osvc_01H299KDHY74VN3DRGK1CZFG1S.description","ns":"org-data"},{"crowdinId":2073667,"key":"avol.ophn_01H299KDHXC22JK0C6P6TAAFEB.description","ns":"org-data"},{"crowdinId":2073649,"key":"avol.attribute.atts_01H29ENFGQ9N41YW8QAF15RKJ6","ns":"org-data"},{"crowdinId":2073657,"key":"avol.attribute.atts_01H29ENFGTG11QAYBPVKW06TCR","ns":"org-data"},{"crowdinId":2073655,"key":"avol.attribute.atts_01H29ENFGT6HXGN4MQNP70AZ5G","ns":"org-data"},{"crowdinId":2073943,"key":"campaign-for-southern-equality.ophn_01H299KDJ64MRN4FD8MBD59T98.description","ns":"org-data"},{"crowdinId":2073675,"key":"avol.osvc_01H299KDJ17JQNJJD6CMMFE0X5.name","ns":"org-data"},{"crowdinId":2073673,"key":"avol.osvc_01H299KDJ17JQNJJD6CMMFE0X5.description","ns":"org-data"},{"crowdinId":2073947,"key":"campaign-for-southern-equality.osvc_01H299KDJ9TCMS7WWZVQYBBK9Z.name","ns":"org-data"},{"crowdinId":2073933,"key":"campaign-for-southern-equality.attribute.atts_01H29ENFH2AZM39ESRJ81BCZGP","ns":"org-data"},{"crowdinId":2073937,"key":"campaign-for-southern-equality.attribute.atts_01H29ENFH41NAVP4E7RE7CWJAR","ns":"org-data"},{"crowdinId":2073941,"key":"campaign-for-southern-equality.oeml_01H299KDJ6BVPMBTGXHRTK792P.description","ns":"org-data"},{"crowdinId":2074635,"key":"jayne-x-praxis.osvc_01H299KDJG5QA0ZHC3GD1RFB53.description","ns":"org-data"},{"crowdinId":2074627,"key":"jayne-x-praxis.attribute.atts_01H29ENFHB3QDGGK6S363M60RZ","ns":"org-data"},{"crowdinId":2073935,"key":"campaign-for-southern-equality.attribute.atts_01H29ENFH2PSC4RAQ2E6NHTZJ2","ns":"org-data"},{"crowdinId":2074633,"key":"jayne-x-praxis.ophn_01H299KDJFF2HX138TGK8XQKKA.description","ns":"org-data"},{"crowdinId":2073945,"key":"campaign-for-southern-equality.osvc_01H299KDJ9TCMS7WWZVQYBBK9Z.description","ns":"org-data"},{"crowdinId":2073593,"key":"asian-pacific-islander-queer-women-and-transgender-community-apiqwtc.osvc_01H299KDJQXX9SRPQTA6BM0VWK.description","ns":"org-data"},{"crowdinId":2074629,"key":"jayne-x-praxis.attribute.atts_01H29ENFHB64DFHHN0FCT2T4JE","ns":"org-data"},{"crowdinId":2074637,"key":"jayne-x-praxis.osvc_01H299KDJG5QA0ZHC3GD1RFB53.name","ns":"org-data"},{"crowdinId":2073589,"key":"asian-pacific-islander-queer-women-and-transgender-community-apiqwtc.oeml_01H299KDJPBBWG987NXF87G6ZJ.description","ns":"org-data"},{"crowdinId":2073581,"key":"asian-pacific-islander-queer-women-and-transgender-community-apiqwtc.attribute.atts_01H29ENFHJ8BRAZVG18ZG54BVB","ns":"org-data"},{"crowdinId":2073591,"key":"asian-pacific-islander-queer-women-and-transgender-community-apiqwtc.ophn_01H299KDJPNF4A64DC5NRSQ9KH.description","ns":"org-data"},{"crowdinId":2073585,"key":"asian-pacific-islander-queer-women-and-transgender-community-apiqwtc.attribute.atts_01H29ENFHKP1GHGJN8VZD8PD84","ns":"org-data"},{"crowdinId":2073595,"key":"asian-pacific-islander-queer-women-and-transgender-community-apiqwtc.osvc_01H299KDJQXX9SRPQTA6BM0VWK.name","ns":"org-data"},{"crowdinId":2074665,"key":"kentucky-black-pride.ophn_01H299KDJVG2768SXJ9EXBC1MJ.description","ns":"org-data"},{"crowdinId":2074663,"key":"kentucky-black-pride.oeml_01H299KDJWPK4XN77CWS19TH6D.description","ns":"org-data"},{"crowdinId":2073583,"key":"asian-pacific-islander-queer-women-and-transgender-community-apiqwtc.attribute.atts_01H29ENFHK9D7WA831WHVR60NB","ns":"org-data"},{"crowdinId":2074811,"key":"lesbian-health-initiative-of-houston-inc-lhi.oeml_01H299KDK3T1Q43KKG3J09XMPB.description","ns":"org-data"},{"crowdinId":2074835,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKFVRJ2P7ZMP252P1T8.name","ns":"org-data"},{"crowdinId":2074819,"key":"lesbian-health-initiative-of-houston-inc-lhi.ophn_01H299KDK3T40EH27C3CGFH0J4.description","ns":"org-data"},{"crowdinId":2074653,"key":"kentucky-black-pride.attribute.atts_01H29ENFHS292PEH82FH1PNA9M","ns":"org-data"},{"crowdinId":2074657,"key":"kentucky-black-pride.attribute.atts_01H29ENFHTZDH9J9EXB8NZ5SEH","ns":"org-data"},{"crowdinId":2074669,"key":"kentucky-black-pride.osvc_01H299KDJXXWWS2T61R0189VYY.name","ns":"org-data"},{"crowdinId":2074817,"key":"lesbian-health-initiative-of-houston-inc-lhi.ophn_01H299KDK3QCTBDF4DCAZHE6B6.description","ns":"org-data"},{"crowdinId":2074667,"key":"kentucky-black-pride.osvc_01H299KDJXXWWS2T61R0189VYY.description","ns":"org-data"},{"crowdinId":2074659,"key":"kentucky-black-pride.attribute.atts_01H29ENFHVTGMCY94R17Y8JBGC","ns":"org-data"},{"crowdinId":2074655,"key":"kentucky-black-pride.attribute.atts_01H29ENFHSKPRBRK49S4MM8MPK","ns":"org-data"},{"crowdinId":2074743,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJ42FJYC4GDPYPS3P29","ns":"org-data"},{"crowdinId":2074821,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDK6S6CM0AP699FKQPGC.description","ns":"org-data"},{"crowdinId":2074815,"key":"lesbian-health-initiative-of-houston-inc-lhi.oeml_01H299KDK4PVRHW0WBB8W3MY3D.description","ns":"org-data"},{"crowdinId":2074813,"key":"lesbian-health-initiative-of-houston-inc-lhi.oeml_01H299KDK49FH4KQ57Z81RRSKA.description","ns":"org-data"},{"crowdinId":2074741,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJ3AJZG8AM2FRKBFSCJ","ns":"org-data"},{"crowdinId":2074747,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJ5NRQY5JNX7QGQPXGB","ns":"org-data"},{"crowdinId":2074745,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJ4ZAQXP7PTM96V63NN","ns":"org-data"},{"crowdinId":2074825,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKAYVE9K86XX778X9MV.description","ns":"org-data"},{"crowdinId":2074823,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDK6S6CM0AP699FKQPGC.name","ns":"org-data"},{"crowdinId":2074749,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJ5Z0G7T5NH7TYDSXWT","ns":"org-data"},{"crowdinId":2074757,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJ8QK7WCT6DJVPZ9F68","ns":"org-data"},{"crowdinId":2074763,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJAXPJGHCW5CQ73D0D4","ns":"org-data"},{"crowdinId":2074759,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJ99WDK5HCXEK4F9SHP","ns":"org-data"},{"crowdinId":2074751,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJ6BVDKQXHKG3N668DZ","ns":"org-data"},{"crowdinId":2074829,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKCADDMBSA7AV2FPX6C.description","ns":"org-data"},{"crowdinId":2074831,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKCADDMBSA7AV2FPX6C.name","ns":"org-data"},{"crowdinId":2074761,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJAGM66H8JESHR65CJR","ns":"org-data"},{"crowdinId":2074755,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJ7PY509QX4NZV5F70C","ns":"org-data"},{"crowdinId":2074753,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJ7H1S9EB0ZQVY2KK35","ns":"org-data"},{"crowdinId":2074827,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKAYVE9K86XX778X9MV.name","ns":"org-data"},{"crowdinId":2074833,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKFVRJ2P7ZMP252P1T8.description","ns":"org-data"},{"crowdinId":2074767,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJCZFJV16R1H5AFAQBN","ns":"org-data"},{"crowdinId":2074765,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJCKDQEDJWXDRGSSAC2","ns":"org-data"},{"crowdinId":2074769,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJDN15EV6J46WHBN4VM","ns":"org-data"},{"crowdinId":2074837,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKHBYZHVT67KM70ZX6Q.description","ns":"org-data"},{"crowdinId":2074775,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJGXR6YJ3BC7ZGVNMJT","ns":"org-data"},{"crowdinId":2074771,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJE20ZGJR96D6P1Z51W","ns":"org-data"},{"crowdinId":2074841,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKNPEFEKC9SWDNNS4YX.description","ns":"org-data"},{"crowdinId":2074773,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJFW1RWEHKG5C3N3PD2","ns":"org-data"},{"crowdinId":2074839,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKHBYZHVT67KM70ZX6Q.name","ns":"org-data"},{"crowdinId":2074845,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKQZBAMAP8Z3S9ET8M9.description","ns":"org-data"},{"crowdinId":2074779,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJKRGYCNX44AF88R3DZ","ns":"org-data"},{"crowdinId":2074781,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJM4WF0F0K8W18TMXRD","ns":"org-data"},{"crowdinId":2074783,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJN01F1F4KVVTXWF7JF","ns":"org-data"},{"crowdinId":2074777,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJJ194GTW0GWGNWR51A","ns":"org-data"},{"crowdinId":2074847,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKQZBAMAP8Z3S9ET8M9.name","ns":"org-data"},{"crowdinId":2074787,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJPTASHJEXERVC1RA8F","ns":"org-data"},{"crowdinId":2074789,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJQCBV9SHFD6C8AJK78","ns":"org-data"},{"crowdinId":2074843,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKNPEFEKC9SWDNNS4YX.name","ns":"org-data"},{"crowdinId":2074785,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJPM5MWHAKYT3DDD5Y1","ns":"org-data"},{"crowdinId":2074851,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKTPRNTG28J2TWBTV5Q.name","ns":"org-data"},{"crowdinId":2074849,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKTPRNTG28J2TWBTV5Q.description","ns":"org-data"},{"crowdinId":2074793,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJS56P4KJGCD90KJJWV","ns":"org-data"},{"crowdinId":2074795,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJS7F85DV07GH9GN69E","ns":"org-data"},{"crowdinId":2074791,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJR7DWMFFSGQGWJSXGV","ns":"org-data"},{"crowdinId":2074801,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJVVRP1J4TJKGSKRT2C","ns":"org-data"},{"crowdinId":2074799,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJVPNJ0N19FWKMMEYQM","ns":"org-data"},{"crowdinId":2074797,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJV0P0GZKZHAPC16MT7","ns":"org-data"},{"crowdinId":2074853,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKWV84X5FXBHS6TYNJQ.description","ns":"org-data"},{"crowdinId":2074855,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKWV84X5FXBHS6TYNJQ.name","ns":"org-data"},{"crowdinId":2075055,"key":"lgbtq-allies-lake-county.oeml_01H299KDM4B7DMVPM0863XCMXT.description","ns":"org-data"},{"crowdinId":2074859,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKZ8WA34BH4TGDNC5C8.name","ns":"org-data"},{"crowdinId":2074803,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJX5ZHZRDCNE41GKG7C","ns":"org-data"},{"crowdinId":2075029,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFK3PBYTS0E1W0VFM29A","ns":"org-data"},{"crowdinId":2075031,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFK4K0RQ5MGX15A9658B","ns":"org-data"},{"crowdinId":2074807,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJY37EJDWZ1P6WRDRRE","ns":"org-data"},{"crowdinId":2074857,"key":"lesbian-health-initiative-of-houston-inc-lhi.osvc_01H299KDKZ8WA34BH4TGDNC5C8.description","ns":"org-data"},{"crowdinId":2075057,"key":"lgbtq-allies-lake-county.ophn_01H299KDM4RMT29X6B8A23NVAR.description","ns":"org-data"},{"crowdinId":2075059,"key":"lgbtq-allies-lake-county.osvc_01H299KDM6630N0DJB66FSMXY1.description","ns":"org-data"},{"crowdinId":2075035,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFK6111WDGA6F493DZZA","ns":"org-data"},{"crowdinId":2074805,"key":"lesbian-health-initiative-of-houston-inc-lhi.attribute.atts_01H29ENFJXFQ0Q85TJJTMN5NGW","ns":"org-data"},{"crowdinId":2075061,"key":"lgbtq-allies-lake-county.osvc_01H299KDM6630N0DJB66FSMXY1.name","ns":"org-data"},{"crowdinId":2075033,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFK4T3WKMP0NW2FT2H9M","ns":"org-data"},{"crowdinId":2075063,"key":"lgbtq-allies-lake-county.osvc_01H299KDMAGCXWX67F8NGPZT50.description","ns":"org-data"},{"crowdinId":2075039,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFK7FP7K80KFWF2CD56B","ns":"org-data"},{"crowdinId":2075041,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFK8DD0E41WT5NNB8WK3","ns":"org-data"},{"crowdinId":2075037,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFK7E1K3HZ81BSR83BES","ns":"org-data"},{"crowdinId":2075065,"key":"lgbtq-allies-lake-county.osvc_01H299KDMAGCXWX67F8NGPZT50.name","ns":"org-data"},{"crowdinId":2075043,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFK9ZMPMT6DAZJ6F7RHN","ns":"org-data"},{"crowdinId":2075067,"key":"lgbtq-allies-lake-county.osvc_01H299KDMDF1XZ380P0NFY0DS7.description","ns":"org-data"},{"crowdinId":2074535,"key":"house-of-rebirth.osvc_01H299KDMSS4KC3148W1RR9HZB.description","ns":"org-data"},{"crowdinId":2075047,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFKAKKX9QHM15B08PFKK","ns":"org-data"},{"crowdinId":2074515,"key":"house-of-rebirth.attribute.atts_01H29ENFKGPF5579GGVZR5E37S","ns":"org-data"},{"crowdinId":2075049,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFKBF6DBJJF6XMFAH759","ns":"org-data"},{"crowdinId":2074531,"key":"house-of-rebirth.oeml_01H299KDMRJBD420Y7R1HRQ2AX.description","ns":"org-data"},{"crowdinId":2075069,"key":"lgbtq-allies-lake-county.osvc_01H299KDMDF1XZ380P0NFY0DS7.name","ns":"org-data"},{"crowdinId":2074529,"key":"house-of-rebirth.oeml_01H299KDMR3YW5941PX66KQ47P.description","ns":"org-data"},{"crowdinId":2075045,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFKA9KEGF4PW0N7TV9WT","ns":"org-data"},{"crowdinId":2074533,"key":"house-of-rebirth.ophn_01H299KDMQKN1NBKFX2A39282G.description","ns":"org-data"},{"crowdinId":2074537,"key":"house-of-rebirth.osvc_01H299KDMSS4KC3148W1RR9HZB.name","ns":"org-data"},{"crowdinId":2075051,"key":"lgbtq-allies-lake-county.attribute.atts_01H29ENFKCD9M5MVWBJKDGJ1JR","ns":"org-data"},{"crowdinId":2074519,"key":"house-of-rebirth.attribute.atts_01H29ENFKHSEAFA834MZA72FGN","ns":"org-data"},{"crowdinId":2074517,"key":"house-of-rebirth.attribute.atts_01H29ENFKHKESMSA0ZSAFD0ZHH","ns":"org-data"},{"crowdinId":2074521,"key":"house-of-rebirth.attribute.atts_01H29ENFKJ2NZMEYPH651SW4B6","ns":"org-data"},{"crowdinId":2074539,"key":"house-of-rebirth.osvc_01H299KDMVWZ1AYGGC7K1VQ2J0.description","ns":"org-data"},{"crowdinId":2074523,"key":"house-of-rebirth.attribute.atts_01H29ENFKK5QCP00R8J00GR7A4","ns":"org-data"},{"crowdinId":2074541,"key":"house-of-rebirth.osvc_01H299KDMVWZ1AYGGC7K1VQ2J0.name","ns":"org-data"},{"crowdinId":2074525,"key":"house-of-rebirth.attribute.atts_01H29ENFKMY35JX5F0K4H89EMQ","ns":"org-data"},{"crowdinId":2073989,"key":"childrens-minnesota-gender-health-program.ophn_01H299KDMZCC660P1Z4M0X9X43.description","ns":"org-data"},{"crowdinId":2073991,"key":"childrens-minnesota-gender-health-program.ophn_01H299KDMZCJGXGKZG41Z3KFDT.description","ns":"org-data"},{"crowdinId":2073995,"key":"childrens-minnesota-gender-health-program.osvc_01H299KDN183ERJXT7N7G83X0B.name","ns":"org-data"},{"crowdinId":2073981,"key":"childrens-minnesota-gender-health-program.attribute.atts_01H29ENFKYNA8SSW71Y1YVR56Z","ns":"org-data"},{"crowdinId":2073983,"key":"childrens-minnesota-gender-health-program.attribute.atts_01H29ENFKYPZDJZAC0NK54KHBB","ns":"org-data"},{"crowdinId":2073869,"key":"bucks-lgbtq-center.ophn_01H299KDN8ZZE6THEVK40XHERT.description","ns":"org-data"},{"crowdinId":2073993,"key":"childrens-minnesota-gender-health-program.osvc_01H299KDN183ERJXT7N7G83X0B.description","ns":"org-data"},{"crowdinId":2073867,"key":"bucks-lgbtq-center.ophn_01H299KDN8PB8ZG74WM23440SN.description","ns":"org-data"},{"crowdinId":2073863,"key":"bucks-lgbtq-center.ophn_01H299KDN78DZ48442BCBDEA2S.description","ns":"org-data"},{"crowdinId":2073865,"key":"bucks-lgbtq-center.ophn_01H299KDN85N0RCHQC21YNDM68.description","ns":"org-data"},{"crowdinId":2073985,"key":"childrens-minnesota-gender-health-program.attribute.atts_01H29ENFKZFEYWM3753SQJE08H","ns":"org-data"},{"crowdinId":2073871,"key":"bucks-lgbtq-center.osvc_01H299KDNB9XGCKAHYNF2QPNA9.description","ns":"org-data"},{"crowdinId":2073825,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFM63HHH1J0V1KWT7QWM","ns":"org-data"},{"crowdinId":2073827,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFM6GARA9YVKEMEPWTNB","ns":"org-data"},{"crowdinId":2073875,"key":"bucks-lgbtq-center.osvc_01H299KDNE7JK26C7H77FVBZZ8.description","ns":"org-data"},{"crowdinId":2073829,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFM7NKCAS3ZNK2SYH81B","ns":"org-data"},{"crowdinId":2073873,"key":"bucks-lgbtq-center.osvc_01H299KDNB9XGCKAHYNF2QPNA9.name","ns":"org-data"},{"crowdinId":2073877,"key":"bucks-lgbtq-center.osvc_01H299KDNE7JK26C7H77FVBZZ8.name","ns":"org-data"},{"crowdinId":2073833,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMAVZYR16XM6TWPHWHX","ns":"org-data"},{"crowdinId":2073879,"key":"bucks-lgbtq-center.osvc_01H299KDNJFF6FPVWCB9YJ2C7A.description","ns":"org-data"},{"crowdinId":2073831,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFM9FHJ23NWRX7VG8CYN","ns":"org-data"},{"crowdinId":2073835,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMBT7FNVFCK5J0TX7KY","ns":"org-data"},{"crowdinId":2073839,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMENWMW99EJ8QA8NSDA","ns":"org-data"},{"crowdinId":2073845,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMHW6F8W7X8XHCEM5QY","ns":"org-data"},{"crowdinId":2073885,"key":"bucks-lgbtq-center.osvc_01H299KDNN9NGE118DA6FT354G.name","ns":"org-data"},{"crowdinId":2073881,"key":"bucks-lgbtq-center.osvc_01H299KDNJFF6FPVWCB9YJ2C7A.name","ns":"org-data"},{"crowdinId":2073847,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMK8TEJA3Y98J313FPB","ns":"org-data"},{"crowdinId":2073841,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMG5GWQ0KH708Y5DZDP","ns":"org-data"},{"crowdinId":2073843,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMH0FGFK5NQA2VEB6ZR","ns":"org-data"},{"crowdinId":2073837,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMDPCT1KHB5NRERSNYT","ns":"org-data"},{"crowdinId":2073887,"key":"bucks-lgbtq-center.osvc_01H299KDNR33K23B91E5K464JT.description","ns":"org-data"},{"crowdinId":2073889,"key":"bucks-lgbtq-center.osvc_01H299KDNR33K23B91E5K464JT.name","ns":"org-data"},{"crowdinId":2073849,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMMBX1GXX0XGXKY7EVW","ns":"org-data"},{"crowdinId":2073853,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMQM15VVM7CZEQJXN8C","ns":"org-data"},{"crowdinId":2073883,"key":"bucks-lgbtq-center.osvc_01H299KDNN9NGE118DA6FT354G.description","ns":"org-data"},{"crowdinId":2073851,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMNKDNNFV8DJ7HXA04Q","ns":"org-data"},{"crowdinId":2073891,"key":"bucks-lgbtq-center.osvc_01H299KDNV2FT3MEEKQVYKFQJM.description","ns":"org-data"},{"crowdinId":2073857,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMRMBM8Z63HP5SQRTER","ns":"org-data"},{"crowdinId":2073859,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMT1N6NK12Z1ABAVT8R","ns":"org-data"},{"crowdinId":2073893,"key":"bucks-lgbtq-center.osvc_01H299KDNV2FT3MEEKQVYKFQJM.name","ns":"org-data"},{"crowdinId":2073855,"key":"bucks-lgbtq-center.attribute.atts_01H29ENFMR5MCX978SGGN7D61C","ns":"org-data"},{"crowdinId":2077255,"key":"the-lower-columbia-q-center-lcqc.ophn_01H299KDP1E108QQXSGEM0TTHN.description","ns":"org-data"},{"crowdinId":2077261,"key":"the-lower-columbia-q-center-lcqc.osvc_01H299KDP6EVQJ51XDBFJJQHK0.description","ns":"org-data"},{"crowdinId":2077257,"key":"the-lower-columbia-q-center-lcqc.osvc_01H299KDP3FBV1Q6XCNQ3R4W7S.description","ns":"org-data"},{"crowdinId":2077263,"key":"the-lower-columbia-q-center-lcqc.osvc_01H299KDP6EVQJ51XDBFJJQHK0.name","ns":"org-data"},{"crowdinId":2077229,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN0HV60V0CZV3DP53Y7","ns":"org-data"},{"crowdinId":2077233,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN2MV69N2GH7YGDYEE4","ns":"org-data"},{"crowdinId":2077253,"key":"the-lower-columbia-q-center-lcqc.oeml_01H299KDP1KQ0AH7TBN73ECPYP.description","ns":"org-data"},{"crowdinId":2077227,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFMZN2G7GHX9HXFR0H83","ns":"org-data"},{"crowdinId":2077231,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN0VP9HP117KSDDGPNT","ns":"org-data"},{"crowdinId":2077235,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN364AK6TYN14WERVYY","ns":"org-data"},{"crowdinId":2077259,"key":"the-lower-columbia-q-center-lcqc.osvc_01H299KDP3FBV1Q6XCNQ3R4W7S.name","ns":"org-data"},{"crowdinId":2077265,"key":"the-lower-columbia-q-center-lcqc.osvc_01H299KDP9NM8DYW546KEAHFYG.description","ns":"org-data"},{"crowdinId":2077237,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN3NN6NVW2QC2THNZGB","ns":"org-data"},{"crowdinId":2077239,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN5R9Z4TM1WERKYHCK6","ns":"org-data"},{"crowdinId":2077243,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN6QZZP8PFSZ8527S85","ns":"org-data"},{"crowdinId":2077267,"key":"the-lower-columbia-q-center-lcqc.osvc_01H299KDP9NM8DYW546KEAHFYG.name","ns":"org-data"},{"crowdinId":2077241,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN6PA6ZN3ADW9WM8Z19","ns":"org-data"},{"crowdinId":2077269,"key":"the-lower-columbia-q-center-lcqc.osvc_01H299KDPBY5P3AFEK4BKZ6YE9.description","ns":"org-data"},{"crowdinId":2077247,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN8821YHPE6NXNJHBF0","ns":"org-data"},{"crowdinId":2077271,"key":"the-lower-columbia-q-center-lcqc.osvc_01H299KDPBY5P3AFEK4BKZ6YE9.name","ns":"org-data"},{"crowdinId":2077245,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN87NSE4Y7K8HTBKJ9F","ns":"org-data"},{"crowdinId":2077067,"key":"shippensburg-university-pride-and-gender-equity-center.oeml_01H299KDPHEQQRHFTDC1PPF0QC.description","ns":"org-data"},{"crowdinId":2077249,"key":"the-lower-columbia-q-center-lcqc.attribute.atts_01H29ENFN9AMEKME064KTD3N2S","ns":"org-data"},{"crowdinId":2077065,"key":"shippensburg-university-pride-and-gender-equity-center.oeml_01H299KDPH92B61DDHGW5SNCPC.description","ns":"org-data"},{"crowdinId":2077073,"key":"shippensburg-university-pride-and-gender-equity-center.osvc_01H299KDPNXC3TZTBRK7DHYD7R.description","ns":"org-data"},{"crowdinId":2077069,"key":"shippensburg-university-pride-and-gender-equity-center.oeml_01H299KDPJNBM53H6JGW7SMT0M.description","ns":"org-data"},{"crowdinId":2077071,"key":"shippensburg-university-pride-and-gender-equity-center.ophn_01H299KDPH6DXHG55CEKT1J8DP.description","ns":"org-data"},{"crowdinId":2077051,"key":"shippensburg-university-pride-and-gender-equity-center.attribute.atts_01H29ENFNJC87643XJAQHXCPJ8","ns":"org-data"},{"crowdinId":2077075,"key":"shippensburg-university-pride-and-gender-equity-center.osvc_01H299KDPNXC3TZTBRK7DHYD7R.name","ns":"org-data"},{"crowdinId":2077053,"key":"shippensburg-university-pride-and-gender-equity-center.attribute.atts_01H29ENFNJCQRTVR662M94ZMXQ","ns":"org-data"},{"crowdinId":2077049,"key":"shippensburg-university-pride-and-gender-equity-center.attribute.atts_01H29ENFNH38290SGEWAJ9PZ4B","ns":"org-data"},{"crowdinId":2077055,"key":"shippensburg-university-pride-and-gender-equity-center.attribute.atts_01H29ENFNKA00KT1WSCBJDQJN3","ns":"org-data"},{"crowdinId":2077077,"key":"shippensburg-university-pride-and-gender-equity-center.osvc_01H299KDPQ8B3XJ368NN98N2Q5.description","ns":"org-data"},{"crowdinId":2077057,"key":"shippensburg-university-pride-and-gender-equity-center.attribute.atts_01H29ENFNKWGF3XWQT7QZW6C89","ns":"org-data"},{"crowdinId":2077081,"key":"shippensburg-university-pride-and-gender-equity-center.osvc_01H299KDPSGXTB1FP8Q9Z1YSJN.description","ns":"org-data"},{"crowdinId":2077079,"key":"shippensburg-university-pride-and-gender-equity-center.osvc_01H299KDPQ8B3XJ368NN98N2Q5.name","ns":"org-data"},{"crowdinId":2077059,"key":"shippensburg-university-pride-and-gender-equity-center.attribute.atts_01H29ENFNNFFB88ZQ84KBPGG59","ns":"org-data"},{"crowdinId":2077083,"key":"shippensburg-university-pride-and-gender-equity-center.osvc_01H299KDPSGXTB1FP8Q9Z1YSJN.name","ns":"org-data"},{"crowdinId":2077061,"key":"shippensburg-university-pride-and-gender-equity-center.attribute.atts_01H29ENFNPXKST315SG4K8AQA0","ns":"org-data"},{"crowdinId":2077085,"key":"shippensburg-university-pride-and-gender-equity-center.osvc_01H299KDPTMGET4ZVTG78X3W9E.name","ns":"org-data"},{"crowdinId":2077087,"key":"shippensburg-university-pride-and-gender-equity-center.osvc_01H299KDPV21BRD3FSD7HWCZAP.name","ns":"org-data"},{"crowdinId":2075249,"key":"massachusetts-transgender-political-coalition-mtpc.osvc_01H299KDQ19XA0GMNAYZPKBDQ4.description","ns":"org-data"},{"crowdinId":2075225,"key":"massachusetts-transgender-political-coalition-mtpc.attribute.atts_01H29ENFNVQHYP5N1DKZVV4P65","ns":"org-data"},{"crowdinId":2075241,"key":"massachusetts-transgender-political-coalition-mtpc.oeml_01H299KDPXMKMTEZHE35H9RZPG.description","ns":"org-data"},{"crowdinId":2075243,"key":"massachusetts-transgender-political-coalition-mtpc.ophn_01H299KDPX9CTTTG30R1AQNQ9V.description","ns":"org-data"},{"crowdinId":2075221,"key":"massachusetts-transgender-political-coalition-mtpc.attribute.atts_01H29ENFNTBDASWHZZT080RRWC","ns":"org-data"},{"crowdinId":2075247,"key":"massachusetts-transgender-political-coalition-mtpc.osvc_01H299KDPZQK9G0RKJ2BV91KK0.name","ns":"org-data"},{"crowdinId":2075227,"key":"massachusetts-transgender-political-coalition-mtpc.attribute.atts_01H29ENFNVR5K2X2T0S3QB7ZXX","ns":"org-data"},{"crowdinId":2075245,"key":"massachusetts-transgender-political-coalition-mtpc.osvc_01H299KDPZQK9G0RKJ2BV91KK0.description","ns":"org-data"},{"crowdinId":2075223,"key":"massachusetts-transgender-political-coalition-mtpc.attribute.atts_01H29ENFNTXNWJAHCNJV9X9C4Y","ns":"org-data"},{"crowdinId":2075229,"key":"massachusetts-transgender-political-coalition-mtpc.attribute.atts_01H29ENFNWQ85BN55BWSK8K6SW","ns":"org-data"},{"crowdinId":2075231,"key":"massachusetts-transgender-political-coalition-mtpc.attribute.atts_01H29ENFNX9973KDK7VPKMNDZJ","ns":"org-data"},{"crowdinId":2075233,"key":"massachusetts-transgender-political-coalition-mtpc.attribute.atts_01H29ENFNXY14PGT2NT176X5P4","ns":"org-data"},{"crowdinId":2075251,"key":"massachusetts-transgender-political-coalition-mtpc.osvc_01H299KDQ19XA0GMNAYZPKBDQ4.name","ns":"org-data"},{"crowdinId":2075235,"key":"massachusetts-transgender-political-coalition-mtpc.attribute.atts_01H29ENFNY47CQF1F6M73254BK","ns":"org-data"},{"crowdinId":2075253,"key":"massachusetts-transgender-political-coalition-mtpc.osvc_01H299KDQ3NV7NK8SHNHS72QQ6.description","ns":"org-data"},{"crowdinId":2077347,"key":"the-nest.ophn_01H299KDQ8Y7ETWH2SRRPVR6D0.description","ns":"org-data"},{"crowdinId":2077343,"key":"the-nest.ophn_01H299KDQ87HTQ17CKK63YVVE9.description","ns":"org-data"},{"crowdinId":2075237,"key":"massachusetts-transgender-political-coalition-mtpc.attribute.atts_01H29ENFNYNWJBMJR9J9MGVXBR","ns":"org-data"},{"crowdinId":2075255,"key":"massachusetts-transgender-political-coalition-mtpc.osvc_01H299KDQ3NV7NK8SHNHS72QQ6.name","ns":"org-data"},{"crowdinId":2077345,"key":"the-nest.ophn_01H299KDQ87XMES87C6R99570P.description","ns":"org-data"},{"crowdinId":2077305,"key":"the-nest.attribute.atts_01H29ENFP75X94MXMGR6QNEZNK","ns":"org-data"},{"crowdinId":2077351,"key":"the-nest.ophn_01H299KDQ9QBPXVGN48T645M5F.description","ns":"org-data"},{"crowdinId":2077349,"key":"the-nest.ophn_01H299KDQ9CF3WT04FDBM5ATSA.description","ns":"org-data"},{"crowdinId":2077307,"key":"the-nest.attribute.atts_01H29ENFP7CDAM89JZZ74F61RR","ns":"org-data"},{"crowdinId":2077313,"key":"the-nest.attribute.atts_01H29ENFPAA8S5K1SD0CNYFNWX","ns":"org-data"},{"crowdinId":2077357,"key":"the-nest.osvc_01H299KDQHGNMBM4ETXA8C7TTM.description","ns":"org-data"},{"crowdinId":2077355,"key":"the-nest.osvc_01H299KDQDK225N8KNJHFGMXG2.name","ns":"org-data"},{"crowdinId":2077353,"key":"the-nest.osvc_01H299KDQDK225N8KNJHFGMXG2.description","ns":"org-data"},{"crowdinId":2077309,"key":"the-nest.attribute.atts_01H29ENFP8G2HME7ZM7Z0AXG6D","ns":"org-data"},{"crowdinId":2077311,"key":"the-nest.attribute.atts_01H29ENFP8XAB11G64GJ925X2S","ns":"org-data"},{"crowdinId":2077315,"key":"the-nest.attribute.atts_01H29ENFPAMBRJJR22FKJFF6PZ","ns":"org-data"},{"crowdinId":2077317,"key":"the-nest.attribute.atts_01H29ENFPBQXJK41B2B54GDDCJ","ns":"org-data"},{"crowdinId":2077319,"key":"the-nest.attribute.atts_01H29ENFPBTCBXFZ9H5ZMJ39W2","ns":"org-data"},{"crowdinId":2077359,"key":"the-nest.osvc_01H299KDQHGNMBM4ETXA8C7TTM.name","ns":"org-data"},{"crowdinId":2077323,"key":"the-nest.attribute.atts_01H29ENFPC3D36W7YRAYJV3CX0","ns":"org-data"},{"crowdinId":2077361,"key":"the-nest.osvc_01H299KDQNQRRNTBF2148JKHK0.description","ns":"org-data"},{"crowdinId":2077327,"key":"the-nest.attribute.atts_01H29ENFPEFTRKMFHAQ0QG3T41","ns":"org-data"},{"crowdinId":2077321,"key":"the-nest.attribute.atts_01H29ENFPC2AVWSGVEBDH8FPZK","ns":"org-data"},{"crowdinId":2077325,"key":"the-nest.attribute.atts_01H29ENFPE30A69VYGQC4G8EVK","ns":"org-data"},{"crowdinId":2077329,"key":"the-nest.attribute.atts_01H29ENFPFBF2V4TK0A7YAYDYF","ns":"org-data"},{"crowdinId":2077331,"key":"the-nest.attribute.atts_01H29ENFPFR05GN83EKJMGE473","ns":"org-data"},{"crowdinId":2077365,"key":"the-nest.osvc_01H299KDQRNBAN7TB0R9QCMHPF.description","ns":"org-data"},{"crowdinId":2074615,"key":"jackson-jack-garner.ophn_01H299KDQY8ZGV0W6GSARW319G.description","ns":"org-data"},{"crowdinId":2077337,"key":"the-nest.attribute.atts_01H29ENFPJV8N76MRFYYRBDYQR","ns":"org-data"},{"crowdinId":2077335,"key":"the-nest.attribute.atts_01H29ENFPJFECZZ4WA7CYS453Z","ns":"org-data"},{"crowdinId":2074617,"key":"jackson-jack-garner.ophn_01H299KDQYG2QX33J4KWSAB1MY.description","ns":"org-data"},{"crowdinId":2077367,"key":"the-nest.osvc_01H299KDQRNBAN7TB0R9QCMHPF.name","ns":"org-data"},{"crowdinId":2077339,"key":"the-nest.attribute.atts_01H29ENFPKTH9TCF9CV7XV4ZKS","ns":"org-data"},{"crowdinId":2077363,"key":"the-nest.osvc_01H299KDQNQRRNTBF2148JKHK0.name","ns":"org-data"},{"crowdinId":2077333,"key":"the-nest.attribute.atts_01H29ENFPHQ2M67VVP8R0BRFGP","ns":"org-data"},{"crowdinId":2074599,"key":"jackson-jack-garner.attribute.atts_01H29ENFPRENY81Q4FAQWRADMA","ns":"org-data"},{"crowdinId":2074619,"key":"jackson-jack-garner.osvc_01H299KDR5CZ6TMQJ5JX1QD7FK.description","ns":"org-data"},{"crowdinId":2074597,"key":"jackson-jack-garner.attribute.atts_01H29ENFPQQ7MWCY20A9DNSY9S","ns":"org-data"},{"crowdinId":2074603,"key":"jackson-jack-garner.attribute.atts_01H29ENFPS2CT2WKGSFJ69G2NH","ns":"org-data"},{"crowdinId":2074621,"key":"jackson-jack-garner.osvc_01H299KDR5CZ6TMQJ5JX1QD7FK.name","ns":"org-data"},{"crowdinId":2074623,"key":"jackson-jack-garner.osvc_01H299KDR79086ECD1NXZY8HPG.description","ns":"org-data"},{"crowdinId":2074601,"key":"jackson-jack-garner.attribute.atts_01H29ENFPS0GDRY686TSTDFJDZ","ns":"org-data"},{"crowdinId":2074607,"key":"jackson-jack-garner.attribute.atts_01H29ENFPVHE68T8JTXKTR78AM","ns":"org-data"},{"crowdinId":2074625,"key":"jackson-jack-garner.osvc_01H299KDR79086ECD1NXZY8HPG.name","ns":"org-data"},{"crowdinId":2074609,"key":"jackson-jack-garner.attribute.atts_01H29ENFPVXESQRFFQJC7JBWF0","ns":"org-data"},{"crowdinId":2074611,"key":"jackson-jack-garner.attribute.atts_01H29ENFPWZR0NCASC8EG1717Y","ns":"org-data"},{"crowdinId":2078389,"key":"women-with-a-vision-wwav.osvc_01H299KDRF111T1K7TZ8W3SZ6C.description","ns":"org-data"},{"crowdinId":2078373,"key":"women-with-a-vision-wwav.attribute.atts_01H29ENFQ351Y01KDMQ929T54R","ns":"org-data"},{"crowdinId":2078387,"key":"women-with-a-vision-wwav.ophn_01H299KDRDQMQ6GCHYCZY1Z0P4.description","ns":"org-data"},{"crowdinId":2078367,"key":"women-with-a-vision-wwav.attribute.atts_01H29ENFQ1243PQJS8KF80R480","ns":"org-data"},{"crowdinId":2078385,"key":"women-with-a-vision-wwav.ophn_01H299KDRDNQ6VEXEVWMQJR6R0.description","ns":"org-data"},{"crowdinId":2078371,"key":"women-with-a-vision-wwav.attribute.atts_01H29ENFQ2KTTYX2BJ3SBT14GE","ns":"org-data"},{"crowdinId":2078369,"key":"women-with-a-vision-wwav.attribute.atts_01H29ENFQ1A0VNKTP7K4E3SKM2","ns":"org-data"},{"crowdinId":2078377,"key":"women-with-a-vision-wwav.attribute.atts_01H29ENFQ487CPQ35NJBP2TRK0","ns":"org-data"},{"crowdinId":2078383,"key":"women-with-a-vision-wwav.oeml_01H299KDRDRNEM8VSZBAGXHS8Z.description","ns":"org-data"},{"crowdinId":2078395,"key":"women-with-a-vision-wwav.osvc_01H299KDRJS63RSPPMSD340HT8.name","ns":"org-data"},{"crowdinId":2078375,"key":"women-with-a-vision-wwav.attribute.atts_01H29ENFQ3QJ9ZQV8Z7GC027PM","ns":"org-data"},{"crowdinId":2078391,"key":"women-with-a-vision-wwav.osvc_01H299KDRF111T1K7TZ8W3SZ6C.name","ns":"org-data"},{"crowdinId":2078393,"key":"women-with-a-vision-wwav.osvc_01H299KDRJS63RSPPMSD340HT8.description","ns":"org-data"},{"crowdinId":2075579,"key":"moco-pride-center.ophn_01H299KDRPENMESBC9639R09FF.description","ns":"org-data"},{"crowdinId":2078379,"key":"women-with-a-vision-wwav.attribute.atts_01H29ENFQAPMBP4KTKZ0XZS003","ns":"org-data"},{"crowdinId":2075577,"key":"moco-pride-center.oeml_01H299KDRPM29Z8E479M6CCGZ6.description","ns":"org-data"},{"crowdinId":2075569,"key":"moco-pride-center.attribute.atts_01H29ENFQFVKXGCBNCQBQSGZ4J","ns":"org-data"},{"crowdinId":2075581,"key":"moco-pride-center.osvc_01H299KDRRCF0KGKM01WXHK307.description","ns":"org-data"},{"crowdinId":2075565,"key":"moco-pride-center.attribute.atts_01H29ENFQEWES5EYMMK9JQSCFJ","ns":"org-data"},{"crowdinId":2076227,"key":"point-foundation.ophn_01H299KDRY0VBARFN0NFA3V2F9.description","ns":"org-data"},{"crowdinId":2076229,"key":"point-foundation.ophn_01H299KDRZ39RTKHKBR4SCD5DR.description","ns":"org-data"},{"crowdinId":2076225,"key":"point-foundation.oeml_01H299KDRZ28A7YD5AD6KE9000.description","ns":"org-data"},{"crowdinId":2075585,"key":"moco-pride-center.osvc_01H299KDRT0W0HTWYM27V20DW1.description","ns":"org-data"},{"crowdinId":2075567,"key":"moco-pride-center.attribute.atts_01H29ENFQFFPJ1M1ECKB2G7FGP","ns":"org-data"},{"crowdinId":2075573,"key":"moco-pride-center.attribute.atts_01H29ENFQH0WT6JQC2Y76P1M5X","ns":"org-data"},{"crowdinId":2078163,"key":"trillium-health.osvc_01H299KDSGA40NWZ0H6QM79CK5.description","ns":"org-data"},{"crowdinId":2075571,"key":"moco-pride-center.attribute.atts_01H29ENFQGR7V02HWDN6HTQBQX","ns":"org-data"},{"crowdinId":2076211,"key":"point-foundation.attribute.atts_01H29ENFQP77K2ZYQC7JNN08KQ","ns":"org-data"},{"crowdinId":2075583,"key":"moco-pride-center.osvc_01H299KDRRCF0KGKM01WXHK307.name","ns":"org-data"},{"crowdinId":2075587,"key":"moco-pride-center.osvc_01H299KDRT0W0HTWYM27V20DW1.name","ns":"org-data"},{"crowdinId":2076231,"key":"point-foundation.osvc_01H299KDS0RG3P893FQWQTPCR1.description","ns":"org-data"},{"crowdinId":2076233,"key":"point-foundation.osvc_01H299KDS0RG3P893FQWQTPCR1.name","ns":"org-data"},{"crowdinId":2076213,"key":"point-foundation.attribute.atts_01H29ENFQQJW6XS46WAKDH3AYZ","ns":"org-data"},{"crowdinId":2076235,"key":"point-foundation.osvc_01H299KDS21FXN9TB20VJQVN43.description","ns":"org-data"},{"crowdinId":2076215,"key":"point-foundation.attribute.atts_01H29ENFQR47YR2QZJVWG2XQ3K","ns":"org-data"},{"crowdinId":2076239,"key":"point-foundation.osvc_01H299KDS417FZSQK4XGJX87QM.description","ns":"org-data"},{"crowdinId":2076217,"key":"point-foundation.attribute.atts_01H29ENFQRR1N7ZA5TVKR1C4DX","ns":"org-data"},{"crowdinId":2076237,"key":"point-foundation.osvc_01H299KDS21FXN9TB20VJQVN43.name","ns":"org-data"},{"crowdinId":2076219,"key":"point-foundation.attribute.atts_01H29ENFQS5H42078P0F7GK0DX","ns":"org-data"},{"crowdinId":2078141,"key":"trillium-health.ophn_01H299KDS995JWD2HNBXNQ1RPS.description","ns":"org-data"},{"crowdinId":2078147,"key":"trillium-health.ophn_01H299KDSAM4QVTA8KKNRB78Y9.description","ns":"org-data"},{"crowdinId":2076241,"key":"point-foundation.osvc_01H299KDS417FZSQK4XGJX87QM.name","ns":"org-data"},{"crowdinId":2078153,"key":"trillium-health.ophn_01H299KDSBPVDM3NJ8YRS55F7V.description","ns":"org-data"},{"crowdinId":2078139,"key":"trillium-health.ophn_01H299KDS8QVS0S80BGBRMBM24.description","ns":"org-data"},{"crowdinId":2076221,"key":"point-foundation.attribute.atts_01H29ENFQTWTNHZTA32VDHHK89","ns":"org-data"},{"crowdinId":2078149,"key":"trillium-health.ophn_01H299KDSAV5WMFE2QCKENRBAS.description","ns":"org-data"},{"crowdinId":2078143,"key":"trillium-health.ophn_01H299KDS9BH9VTJ1YQHG4EJV6.description","ns":"org-data"},{"crowdinId":2078145,"key":"trillium-health.ophn_01H299KDSA50R90YHBAPHTYQNY.description","ns":"org-data"},{"crowdinId":2078151,"key":"trillium-health.ophn_01H299KDSB9N22KMTTQGWRK1S1.description","ns":"org-data"},{"crowdinId":2078157,"key":"trillium-health.ophn_01H299KDSCD0THESEKG96DS2PT.description","ns":"org-data"},{"crowdinId":2078155,"key":"trillium-health.ophn_01H299KDSC4N7N141GAKNS6PRM.description","ns":"org-data"},{"crowdinId":2078159,"key":"trillium-health.ophn_01H299KDSCF4NHJ54HH8VR3E8W.description","ns":"org-data"},{"crowdinId":2078161,"key":"trillium-health.ophn_01H299KDSDENTK36ZC4H2FB9AS.description","ns":"org-data"},{"crowdinId":2078137,"key":"trillium-health.oeml_01H299KDSDG586VVKT7JSVXDYA.description","ns":"org-data"},{"crowdinId":2078021,"key":"trillium-health.attribute.atts_01H29ENFR2X1XD30W4CKAXCXKB","ns":"org-data"},{"crowdinId":2078135,"key":"trillium-health.oeml_01H299KDSD9EF458TR80ZKPJAG.description","ns":"org-data"},{"crowdinId":2078023,"key":"trillium-health.attribute.atts_01H29ENFR3JBWRZJCKM22MBW39","ns":"org-data"},{"crowdinId":2078025,"key":"trillium-health.attribute.atts_01H29ENFR3WZY7YC1VKBHY0ECP","ns":"org-data"},{"crowdinId":2078165,"key":"trillium-health.osvc_01H299KDSGA40NWZ0H6QM79CK5.name","ns":"org-data"},{"crowdinId":2078173,"key":"trillium-health.osvc_01H299KDSQAR02Q8QX86JNN96B.name","ns":"org-data"},{"crowdinId":2078035,"key":"trillium-health.attribute.atts_01H29ENFR9E9YKVPK7TEAT9V0R","ns":"org-data"},{"crowdinId":2078167,"key":"trillium-health.osvc_01H299KDSMEYRQVNNPHZHTCXD6.description","ns":"org-data"},{"crowdinId":2078027,"key":"trillium-health.attribute.atts_01H29ENFR5T66X6Z13R1W01SNZ","ns":"org-data"},{"crowdinId":2078033,"key":"trillium-health.attribute.atts_01H29ENFR837V5KEJ27Q66HJ2B","ns":"org-data"},{"crowdinId":2078171,"key":"trillium-health.osvc_01H299KDSQAR02Q8QX86JNN96B.description","ns":"org-data"},{"crowdinId":2078037,"key":"trillium-health.attribute.atts_01H29ENFR9PVBQDBBPHM8HCEGK","ns":"org-data"},{"crowdinId":2078169,"key":"trillium-health.osvc_01H299KDSMEYRQVNNPHZHTCXD6.name","ns":"org-data"},{"crowdinId":2078029,"key":"trillium-health.attribute.atts_01H29ENFR6ERASFK5N610BXGFB","ns":"org-data"},{"crowdinId":2078031,"key":"trillium-health.attribute.atts_01H29ENFR6H72DKWECPPNK2AJE","ns":"org-data"},{"crowdinId":2078039,"key":"trillium-health.attribute.atts_01H29ENFRBWEA0189BJW7CG4FN","ns":"org-data"},{"crowdinId":2078043,"key":"trillium-health.attribute.atts_01H29ENFRCF0K2GRQ3DE8GMBFZ","ns":"org-data"},{"crowdinId":2078041,"key":"trillium-health.attribute.atts_01H29ENFRC5C1KV993FX8T4Q8B","ns":"org-data"},{"crowdinId":2078175,"key":"trillium-health.osvc_01H299KDST9JE94RTPYFEYXEJ9.description","ns":"org-data"},{"crowdinId":2078045,"key":"trillium-health.attribute.atts_01H29ENFRDBCJBZXRZ6TQ9WK8F","ns":"org-data"},{"crowdinId":2078047,"key":"trillium-health.attribute.atts_01H29ENFRDCNG8KT5NQXHRE45C","ns":"org-data"},{"crowdinId":2078177,"key":"trillium-health.osvc_01H299KDST9JE94RTPYFEYXEJ9.name","ns":"org-data"},{"crowdinId":2078179,"key":"trillium-health.osvc_01H299KDSY2GJQKKEN9N5BRA4N.description","ns":"org-data"},{"crowdinId":2078049,"key":"trillium-health.attribute.atts_01H29ENFREAXFMRGVJ6JSTQ91M","ns":"org-data"},{"crowdinId":2078051,"key":"trillium-health.attribute.atts_01H29ENFRG67CF3SAJ7PEPEM6Y","ns":"org-data"},{"crowdinId":2078183,"key":"trillium-health.osvc_01H299KDT23SGXT64082Z8VVZH.description","ns":"org-data"},{"crowdinId":2078063,"key":"trillium-health.attribute.atts_01H29ENFRPP95Z65MV3VR33J9S","ns":"org-data"},{"crowdinId":2078181,"key":"trillium-health.osvc_01H299KDSY2GJQKKEN9N5BRA4N.name","ns":"org-data"},{"crowdinId":2078059,"key":"trillium-health.attribute.atts_01H29ENFRMEZT01TGPX41814YP","ns":"org-data"},{"crowdinId":2078055,"key":"trillium-health.attribute.atts_01H29ENFRH74SB8QK2PTMN8TGE","ns":"org-data"},{"crowdinId":2078053,"key":"trillium-health.attribute.atts_01H29ENFRGEGQM4KR1PWG90WV9","ns":"org-data"},{"crowdinId":2078187,"key":"trillium-health.osvc_01H299KDT5YS6T6R4VNY3Z7PSH.description","ns":"org-data"},{"crowdinId":2078061,"key":"trillium-health.attribute.atts_01H29ENFRMY0C6SAFNG0JTJWSV","ns":"org-data"},{"crowdinId":2078185,"key":"trillium-health.osvc_01H299KDT23SGXT64082Z8VVZH.name","ns":"org-data"},{"crowdinId":2078189,"key":"trillium-health.osvc_01H299KDT5YS6T6R4VNY3Z7PSH.name","ns":"org-data"},{"crowdinId":2078057,"key":"trillium-health.attribute.atts_01H29ENFRKN4YVXS6JT1Q815WB","ns":"org-data"},{"crowdinId":2078065,"key":"trillium-health.attribute.atts_01H29ENFRQ1E2NNVDJ4JSQHA2D","ns":"org-data"},{"crowdinId":2078067,"key":"trillium-health.attribute.atts_01H29ENFRSM2WANMM50S9ZGR7Q","ns":"org-data"},{"crowdinId":2078191,"key":"trillium-health.osvc_01H299KDT8KV2JK0VGC2KPTWFA.description","ns":"org-data"},{"crowdinId":2078193,"key":"trillium-health.osvc_01H299KDT8KV2JK0VGC2KPTWFA.name","ns":"org-data"},{"crowdinId":2078195,"key":"trillium-health.osvc_01H299KDTBFJSF2KZWBZ88Y0FC.description","ns":"org-data"},{"crowdinId":2078071,"key":"trillium-health.attribute.atts_01H29ENFRWKZJPWE0FCCY5NKY2","ns":"org-data"},{"crowdinId":2078069,"key":"trillium-health.attribute.atts_01H29ENFRVJB9TFFN60B8HNXN0","ns":"org-data"},{"crowdinId":2078197,"key":"trillium-health.osvc_01H299KDTBFJSF2KZWBZ88Y0FC.name","ns":"org-data"},{"crowdinId":2078075,"key":"trillium-health.attribute.atts_01H29ENFRYB35Q7D91NFYAH6N6","ns":"org-data"},{"crowdinId":2078085,"key":"trillium-health.attribute.atts_01H29ENFS2SWNGC568YRTGN50V","ns":"org-data"},{"crowdinId":2078205,"key":"trillium-health.osvc_01H299KDTHCS0X18XDN3SZP9HS.name","ns":"org-data"},{"crowdinId":2078073,"key":"trillium-health.attribute.atts_01H29ENFRY1VMJ9D9FMF77VX2B","ns":"org-data"},{"crowdinId":2078077,"key":"trillium-health.attribute.atts_01H29ENFRZH7NXECMAJ5PCF1PE","ns":"org-data"},{"crowdinId":2078199,"key":"trillium-health.osvc_01H299KDTEESMG2PEG2ET05D9N.description","ns":"org-data"},{"crowdinId":2078081,"key":"trillium-health.attribute.atts_01H29ENFS1ZPD5S579SHHTPKB6","ns":"org-data"},{"crowdinId":2078083,"key":"trillium-health.attribute.atts_01H29ENFS23GC23CCE5W9EVJBK","ns":"org-data"},{"crowdinId":2078079,"key":"trillium-health.attribute.atts_01H29ENFRZY0PT6XWD9K2MNQJV","ns":"org-data"},{"crowdinId":2078201,"key":"trillium-health.osvc_01H299KDTEESMG2PEG2ET05D9N.name","ns":"org-data"},{"crowdinId":2078203,"key":"trillium-health.osvc_01H299KDTHCS0X18XDN3SZP9HS.description","ns":"org-data"},{"crowdinId":2078207,"key":"trillium-health.osvc_01H299KDTNVKQMFJPXN1HQVD5C.description","ns":"org-data"},{"crowdinId":2078087,"key":"trillium-health.attribute.atts_01H29ENFS57J91DWJ9GZ1780X0","ns":"org-data"},{"crowdinId":2078089,"key":"trillium-health.attribute.atts_01H29ENFS5E5ZR4V4YYMJRKFPX","ns":"org-data"},{"crowdinId":2078209,"key":"trillium-health.osvc_01H299KDTNVKQMFJPXN1HQVD5C.name","ns":"org-data"},{"crowdinId":2078211,"key":"trillium-health.osvc_01H299KDTR73BYFJ08B0QBWGGJ.description","ns":"org-data"},{"crowdinId":2078095,"key":"trillium-health.attribute.atts_01H29ENFS8NHE45ZFT9Y91SA04","ns":"org-data"},{"crowdinId":2078091,"key":"trillium-health.attribute.atts_01H29ENFS7NBSJNSTHG6Q8KYMA","ns":"org-data"},{"crowdinId":2078213,"key":"trillium-health.osvc_01H299KDTR73BYFJ08B0QBWGGJ.name","ns":"org-data"},{"crowdinId":2078093,"key":"trillium-health.attribute.atts_01H29ENFS8CM29SZEFW1AQANG2","ns":"org-data"},{"crowdinId":2078097,"key":"trillium-health.attribute.atts_01H29ENFSAV41BH6JNXK586R7F","ns":"org-data"},{"crowdinId":2078105,"key":"trillium-health.attribute.atts_01H29ENFSENVB570Q6P34X268N","ns":"org-data"},{"crowdinId":2078217,"key":"trillium-health.osvc_01H299KDTWM3GEF7BS4KWW0ZM0.name","ns":"org-data"},{"crowdinId":2078219,"key":"trillium-health.osvc_01H299KDV041GP6MQ1XQX1B8JK.description","ns":"org-data"},{"crowdinId":2078099,"key":"trillium-health.attribute.atts_01H29ENFSB7Q9DRNPG0CCK75BW","ns":"org-data"},{"crowdinId":2078117,"key":"trillium-health.attribute.atts_01H29ENFSJVF3QTVZ0RDGD32W0","ns":"org-data"},{"crowdinId":2078101,"key":"trillium-health.attribute.atts_01H29ENFSC3G3PG4XA3ZD1QRRS","ns":"org-data"},{"crowdinId":2078107,"key":"trillium-health.attribute.atts_01H29ENFSEP7C6ZFJH6FX8W1KS","ns":"org-data"},{"crowdinId":2078109,"key":"trillium-health.attribute.atts_01H29ENFSF90CRP0TVY5R6923J","ns":"org-data"},{"crowdinId":2078103,"key":"trillium-health.attribute.atts_01H29ENFSC7PAXG53FFJ4FTKYQ","ns":"org-data"},{"crowdinId":2078221,"key":"trillium-health.osvc_01H299KDV041GP6MQ1XQX1B8JK.name","ns":"org-data"},{"crowdinId":2078215,"key":"trillium-health.osvc_01H299KDTWM3GEF7BS4KWW0ZM0.description","ns":"org-data"},{"crowdinId":2078223,"key":"trillium-health.osvc_01H299KDV3P50H2QSWRPK6NBH1.description","ns":"org-data"},{"crowdinId":2078111,"key":"trillium-health.attribute.atts_01H29ENFSGGTGZWHF6ZXX7JNW4","ns":"org-data"},{"crowdinId":2078113,"key":"trillium-health.attribute.atts_01H29ENFSH80VJC98X4TYGQR37","ns":"org-data"},{"crowdinId":2078225,"key":"trillium-health.osvc_01H299KDV3P50H2QSWRPK6NBH1.name","ns":"org-data"},{"crowdinId":2078115,"key":"trillium-health.attribute.atts_01H29ENFSJNGRXS8CEC98KM56Z","ns":"org-data"},{"crowdinId":2078119,"key":"trillium-health.attribute.atts_01H29ENFSM0WMVTFFTJ2R669T1","ns":"org-data"},{"crowdinId":2078401,"key":"youth-improvement-services.attribute.atts_01H29ENFTEG107V8CEPPYX7Q9Y","ns":"org-data"},{"crowdinId":2078227,"key":"trillium-health.osvc_01H299KDV51ZQPFK2X06498HNE.description","ns":"org-data"},{"crowdinId":2078121,"key":"trillium-health.attribute.atts_01H29ENFSNHD1EVX96QC3X3T6C","ns":"org-data"},{"crowdinId":2078231,"key":"trillium-health.osvc_01H299KDV99NB6GQR2D4VXN67W.description","ns":"org-data"},{"crowdinId":2078233,"key":"trillium-health.osvc_01H299KDV99NB6GQR2D4VXN67W.name","ns":"org-data"},{"crowdinId":2078125,"key":"trillium-health.attribute.atts_01H29ENFSP97SS0XMGN3Y7XKEQ","ns":"org-data"},{"crowdinId":2078123,"key":"trillium-health.attribute.atts_01H29ENFSNQ6TY0619FVTDXB7J","ns":"org-data"},{"crowdinId":2078229,"key":"trillium-health.osvc_01H299KDV51ZQPFK2X06498HNE.name","ns":"org-data"},{"crowdinId":2078005,"key":"tranyouniting.oeml_01H299KDVMJENWWVCE70FQ24PW.description","ns":"org-data"},{"crowdinId":2078009,"key":"tranyouniting.osvc_01H299KDVQ7HDNMJN2K3VS3ABP.description","ns":"org-data"},{"crowdinId":2078127,"key":"trillium-health.attribute.atts_01H29ENFSR2AVFWCT8696EWDJH","ns":"org-data"},{"crowdinId":2078129,"key":"trillium-health.attribute.atts_01H29ENFSR7DM0Z0EXQ42NATB8","ns":"org-data"},{"crowdinId":2078007,"key":"tranyouniting.ophn_01H299KDVEY8Y0TP75MQZ16XSP.description","ns":"org-data"},{"crowdinId":2078131,"key":"trillium-health.attribute.atts_01H29ENFSSBAXB0SHTW0YWW5NW","ns":"org-data"},{"crowdinId":2078011,"key":"tranyouniting.osvc_01H299KDVQ7HDNMJN2K3VS3ABP.name","ns":"org-data"},{"crowdinId":2077991,"key":"tranyouniting.attribute.atts_01H29ENFT14H9BC8JQWMJYGHE5","ns":"org-data"},{"crowdinId":2077993,"key":"tranyouniting.attribute.atts_01H29ENFT19BBJP26YS05133FJ","ns":"org-data"},{"crowdinId":2078013,"key":"tranyouniting.osvc_01H299KDVTC535AD1TRPN5HZ41.description","ns":"org-data"},{"crowdinId":2078015,"key":"tranyouniting.osvc_01H299KDVTC535AD1TRPN5HZ41.name","ns":"org-data"},{"crowdinId":2077995,"key":"tranyouniting.attribute.atts_01H29ENFT32GTFNCN4W5EWEBER","ns":"org-data"},{"crowdinId":2077997,"key":"tranyouniting.attribute.atts_01H29ENFT4ZW5EJWXVV1PGD5DZ","ns":"org-data"},{"crowdinId":2077999,"key":"tranyouniting.attribute.atts_01H29ENFT6A1QZTKYEP57BQ32P","ns":"org-data"},{"crowdinId":2078017,"key":"tranyouniting.osvc_01H299KDVX571JQ318KE2XNBEK.description","ns":"org-data"},{"crowdinId":2078019,"key":"tranyouniting.osvc_01H299KDVX571JQ318KE2XNBEK.name","ns":"org-data"},{"crowdinId":2075293,"key":"mend-seattle.osvc_01H299KDWBDH1V082J09HYMGNG.description","ns":"org-data"},{"crowdinId":2078405,"key":"youth-improvement-services.oeml_01H299KDW42YF1MATPMZFVQNZF.description","ns":"org-data"},{"crowdinId":2078409,"key":"youth-improvement-services.ophn_01H299KDW3Z4Q3F95Y9YRZY96P.description","ns":"org-data"},{"crowdinId":2078001,"key":"tranyouniting.attribute.atts_01H29ENFT7AF0MNGKYB3GX9E6M","ns":"org-data"},{"crowdinId":2075291,"key":"mend-seattle.ophn_01H299KDW97SEJBHK2Z4VRK5HH.description","ns":"org-data"},{"crowdinId":2075257,"key":"mend-seattle.attribute.atts_01H29ENFTJCAGFD9RAN5A04Y6N","ns":"org-data"},{"crowdinId":2078399,"key":"youth-improvement-services.attribute.atts_01H29ENFTDNZNQW66MFBCJ5EXZ","ns":"org-data"},{"crowdinId":2078411,"key":"youth-improvement-services.osvc_01H299KDW4BTXBD9KA5DSFTXXN.description","ns":"org-data"},{"crowdinId":2078413,"key":"youth-improvement-services.osvc_01H299KDW4BTXBD9KA5DSFTXXN.name","ns":"org-data"},{"crowdinId":2078407,"key":"youth-improvement-services.ophn_01H299KDW3DRBZB53BS4BZC163.description","ns":"org-data"},{"crowdinId":2078397,"key":"youth-improvement-services.attribute.atts_01H29ENFTCZSAWDPX76VVSM3WG","ns":"org-data"},{"crowdinId":2075259,"key":"mend-seattle.attribute.atts_01H29ENFTKATE629G9T6S51N66","ns":"org-data"},{"crowdinId":2075261,"key":"mend-seattle.attribute.atts_01H29ENFTKWQR8F4JYDF3KXQ15","ns":"org-data"},{"crowdinId":2075263,"key":"mend-seattle.attribute.atts_01H29ENFTM8D5FRQ36PCE3VJT6","ns":"org-data"},{"crowdinId":2075295,"key":"mend-seattle.osvc_01H299KDWBDH1V082J09HYMGNG.name","ns":"org-data"},{"crowdinId":2075269,"key":"mend-seattle.attribute.atts_01H29ENFTVGC16YBPFW3SPTR9H","ns":"org-data"},{"crowdinId":2075265,"key":"mend-seattle.attribute.atts_01H29ENFTMQA055A00DABMPCEP","ns":"org-data"},{"crowdinId":2075267,"key":"mend-seattle.attribute.atts_01H29ENFTPY95SW4WH1DKDJXPR","ns":"org-data"},{"crowdinId":2075297,"key":"mend-seattle.osvc_01H299KDWFREFNWY2AP1BGCX85.description","ns":"org-data"},{"crowdinId":2075301,"key":"mend-seattle.osvc_01H299KDWKH0S6GFQSD92B46MM.description","ns":"org-data"},{"crowdinId":2075279,"key":"mend-seattle.attribute.atts_01H29ENFTZXDHBBQGV0DBD06ZT","ns":"org-data"},{"crowdinId":2075283,"key":"mend-seattle.attribute.atts_01H29ENFV0FWZZ1EPR9QBH8WM0","ns":"org-data"},{"crowdinId":2075273,"key":"mend-seattle.attribute.atts_01H29ENFTWRCWN0XYPTG5A67T3","ns":"org-data"},{"crowdinId":2075271,"key":"mend-seattle.attribute.atts_01H29ENFTW0HZAWR8ZTQDDHM69","ns":"org-data"},{"crowdinId":2075277,"key":"mend-seattle.attribute.atts_01H29ENFTZK5BXWFF1QC8D2QR8","ns":"org-data"},{"crowdinId":2075281,"key":"mend-seattle.attribute.atts_01H29ENFV00RV5XQ2D0BF74YVJ","ns":"org-data"},{"crowdinId":2075285,"key":"mend-seattle.attribute.atts_01H29ENFV1R4YFN9S1FYA2DV6G","ns":"org-data"},{"crowdinId":2075299,"key":"mend-seattle.osvc_01H299KDWFREFNWY2AP1BGCX85.name","ns":"org-data"},{"crowdinId":2078317,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.ophn_01H299KDWS0Z9Y5T43CFGS5SKP.description","ns":"org-data"},{"crowdinId":2075303,"key":"mend-seattle.osvc_01H299KDWKH0S6GFQSD92B46MM.name","ns":"org-data"},{"crowdinId":2075275,"key":"mend-seattle.attribute.atts_01H29ENFTXHKECQP7Z5K5NWGFA","ns":"org-data"},{"crowdinId":2078319,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.osvc_01H299KDWW7KZ3RX9GC5Y2A7WP.description","ns":"org-data"},{"crowdinId":2078289,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFV8Q12VJZ8YTTRMHWPQ","ns":"org-data"},{"crowdinId":2078287,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFV89QWSFDESF1MXQXF9","ns":"org-data"},{"crowdinId":2078321,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.osvc_01H299KDWW7KZ3RX9GC5Y2A7WP.name","ns":"org-data"},{"crowdinId":2078291,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFV925R7R6QWMQAEV7NB","ns":"org-data"},{"crowdinId":2078293,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVA71RB17D8YKHGJBQ1","ns":"org-data"},{"crowdinId":2078323,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.osvc_01H299KDWY6CKK4J0Q2859A7AF.description","ns":"org-data"},{"crowdinId":2078295,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVAQN9953DTKZNR0708","ns":"org-data"},{"crowdinId":2078325,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.osvc_01H299KDWY6CKK4J0Q2859A7AF.name","ns":"org-data"},{"crowdinId":2078329,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.osvc_01H299KDX0P7E1B9B05AFE5HGB.name","ns":"org-data"},{"crowdinId":2078303,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVCVR9JY8G1N0QR9594","ns":"org-data"},{"crowdinId":2078297,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVB76D1PPJ5RR4N4RPQ","ns":"org-data"},{"crowdinId":2078299,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVBK659KX0J2JZTSCT9","ns":"org-data"},{"crowdinId":2078301,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVCEBZDS5868AGGEAEV","ns":"org-data"},{"crowdinId":2078305,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVD8398VCXMJGB5KFFC","ns":"org-data"},{"crowdinId":2078333,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.osvc_01H299KDX2E0P671W5DWHJCZ1T.name","ns":"org-data"},{"crowdinId":2078327,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.osvc_01H299KDX0P7E1B9B05AFE5HGB.description","ns":"org-data"},{"crowdinId":2078331,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.osvc_01H299KDX2E0P671W5DWHJCZ1T.description","ns":"org-data"},{"crowdinId":2078307,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVECB601AJ760APJP31","ns":"org-data"},{"crowdinId":2078335,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.osvc_01H299KDX49H9E0FR6MFJCR7VN.description","ns":"org-data"},{"crowdinId":2078311,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVFJZAFGD7CN7P4V5MN","ns":"org-data"},{"crowdinId":2078309,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVFJBZCQM411EZS04HS","ns":"org-data"},{"crowdinId":2078337,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.osvc_01H299KDX49H9E0FR6MFJCR7VN.name","ns":"org-data"},{"crowdinId":2078313,"key":"university-of-alabama-at-birmingham-lgbtq-mental-health-and-wellness-clinic.attribute.atts_01H29ENFVGN9J3PF34E8AAEJCJ","ns":"org-data"},{"crowdinId":2077515,"key":"trans-lounge.osvc_01H299KDXD8R5VW10KG10HWFHR.description","ns":"org-data"},{"crowdinId":2077513,"key":"trans-lounge.oeml_01H299KDXA1AVXT10PDY60XCKD.description","ns":"org-data"},{"crowdinId":2077485,"key":"trans-lounge.attribute.atts_01H29ENFVP1ZEB5X6SX4E9E7KC","ns":"org-data"},{"crowdinId":2077487,"key":"trans-lounge.attribute.atts_01H29ENFVPZ3WNDBG0A0KWXSDS","ns":"org-data"},{"crowdinId":2077501,"key":"trans-lounge.attribute.atts_01H29ENFVTFQF2A37Y7NDDP9A2","ns":"org-data"},{"crowdinId":2077503,"key":"trans-lounge.attribute.atts_01H29ENFVV46CHJC0W8FWXRKJF","ns":"org-data"},{"crowdinId":2077489,"key":"trans-lounge.attribute.atts_01H29ENFVQA05FHF8QD4D9314R","ns":"org-data"},{"crowdinId":2074939,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXW7BAWJ6HD2HF7T1CA","ns":"org-data"},{"crowdinId":2077519,"key":"trans-lounge.osvc_01H299KDXFNKMQTZ2JY6BQ022Q.description","ns":"org-data"},{"crowdinId":2077517,"key":"trans-lounge.osvc_01H299KDXD8R5VW10KG10HWFHR.name","ns":"org-data"},{"crowdinId":2077499,"key":"trans-lounge.attribute.atts_01H29ENFVTBVV16Q5E1M9YPMQ5","ns":"org-data"},{"crowdinId":2077495,"key":"trans-lounge.attribute.atts_01H29ENFVS3VFBVB1CH5K87H3G","ns":"org-data"},{"crowdinId":2077493,"key":"trans-lounge.attribute.atts_01H29ENFVRA2VGJD73AZGGYFR4","ns":"org-data"},{"crowdinId":2077507,"key":"trans-lounge.attribute.atts_01H29ENFVW8NSD84P3DZK4PPN3","ns":"org-data"},{"crowdinId":2077491,"key":"trans-lounge.attribute.atts_01H29ENFVQY1TVZCRRYG6R0P21","ns":"org-data"},{"crowdinId":2077521,"key":"trans-lounge.osvc_01H299KDXFNKMQTZ2JY6BQ022Q.name","ns":"org-data"},{"crowdinId":2077505,"key":"trans-lounge.attribute.atts_01H29ENFVVPQHXDMBFCM786M2T","ns":"org-data"},{"crowdinId":2077497,"key":"trans-lounge.attribute.atts_01H29ENFVSV7DAR9MM5P3TW4EQ","ns":"org-data"},{"crowdinId":2077523,"key":"trans-lounge.osvc_01H299KDXJ17TWTC98R3H0PSS5.description","ns":"org-data"},{"crowdinId":2077525,"key":"trans-lounge.osvc_01H299KDXJ17TWTC98R3H0PSS5.name","ns":"org-data"},{"crowdinId":2077583,"key":"transfamily-support-services.osvc_01H299KDXSZR103ZBGBTRGRR40.description","ns":"org-data"},{"crowdinId":2077509,"key":"trans-lounge.attribute.atts_01H29ENFVX7Y026ADG7R2AVFTZ","ns":"org-data"},{"crowdinId":2077579,"key":"transfamily-support-services.oeml_01H299KDXQECRKDEQ3KM8ZQMRV.description","ns":"org-data"},{"crowdinId":2077581,"key":"transfamily-support-services.ophn_01H299KDXPAA1YA972A21RYQKS.description","ns":"org-data"},{"crowdinId":2077549,"key":"transfamily-support-services.attribute.atts_01H29ENFW4BWNDNM51G1AAE5TD","ns":"org-data"},{"crowdinId":2077553,"key":"transfamily-support-services.attribute.atts_01H29ENFW6066MRF9KR6FZAT1M","ns":"org-data"},{"crowdinId":2077551,"key":"transfamily-support-services.attribute.atts_01H29ENFW4WDKBXQ8W8JMXG762","ns":"org-data"},{"crowdinId":2077543,"key":"transfamily-support-services.attribute.atts_01H29ENFW32W78DFHW4DY5290K","ns":"org-data"},{"crowdinId":2077587,"key":"transfamily-support-services.osvc_01H299KDXWWP01PVV7MRTPAV5P.description","ns":"org-data"},{"crowdinId":2077547,"key":"transfamily-support-services.attribute.atts_01H29ENFW3V17DPZ127SVDBKW2","ns":"org-data"},{"crowdinId":2077555,"key":"transfamily-support-services.attribute.atts_01H29ENFW6YAV0QY0SCW5GERXX","ns":"org-data"},{"crowdinId":2077585,"key":"transfamily-support-services.osvc_01H299KDXSZR103ZBGBTRGRR40.name","ns":"org-data"},{"crowdinId":2077545,"key":"transfamily-support-services.attribute.atts_01H29ENFW3D7D3XN8FC111TWR5","ns":"org-data"},{"crowdinId":2077557,"key":"transfamily-support-services.attribute.atts_01H29ENFW6YZC91PTJ7GMRNEDK","ns":"org-data"},{"crowdinId":2077559,"key":"transfamily-support-services.attribute.atts_01H29ENFW7JYH922MYZT6EACRN","ns":"org-data"},{"crowdinId":2077589,"key":"transfamily-support-services.osvc_01H299KDXWWP01PVV7MRTPAV5P.name","ns":"org-data"},{"crowdinId":2077591,"key":"transfamily-support-services.osvc_01H299KDXZ9M6N4PAKKMCA5QAX.description","ns":"org-data"},{"crowdinId":2077565,"key":"transfamily-support-services.attribute.atts_01H29ENFW9W0ZP51DN6DH5DGJM","ns":"org-data"},{"crowdinId":2077561,"key":"transfamily-support-services.attribute.atts_01H29ENFW84R07QQ6209G6BRFK","ns":"org-data"},{"crowdinId":2077563,"key":"transfamily-support-services.attribute.atts_01H29ENFW92G0PY0RMMC0MKSP6","ns":"org-data"},{"crowdinId":2077593,"key":"transfamily-support-services.osvc_01H299KDXZ9M6N4PAKKMCA5QAX.name","ns":"org-data"},{"crowdinId":2077595,"key":"transfamily-support-services.osvc_01H299KDY2Q4PBYAJRNS2Q5MGG.description","ns":"org-data"},{"crowdinId":2077979,"key":"transparent-usa.attribute.atts_01H29ENFYGYTJ23KTYNT7TXRY4","ns":"org-data"},{"crowdinId":2077567,"key":"transfamily-support-services.attribute.atts_01H29ENFWAY2H7WAAGB0HE0906","ns":"org-data"},{"crowdinId":2077575,"key":"transfamily-support-services.attribute.atts_01H29ENFWDC8DNDBK17KBFJXSY","ns":"org-data"},{"crowdinId":2073949,"key":"cedar-psychiatry-by-numinus.attribute.atts_01H29ENFWJH9PSYPYD92087MB1","ns":"org-data"},{"crowdinId":2073955,"key":"cedar-psychiatry-by-numinus.oeml_01H299KDY80CPD20WMVEMKHP5Q.description","ns":"org-data"},{"crowdinId":2073959,"key":"cedar-psychiatry-by-numinus.ophn_01H299KDY7T1JBFTJHV971FTV8.description","ns":"org-data"},{"crowdinId":2077571,"key":"transfamily-support-services.attribute.atts_01H29ENFWBFHBD1NS3M408BX7C","ns":"org-data"},{"crowdinId":2073957,"key":"cedar-psychiatry-by-numinus.ophn_01H299KDY72TDV8312M0T1MEGD.description","ns":"org-data"},{"crowdinId":2077573,"key":"transfamily-support-services.attribute.atts_01H29ENFWC4Z0AYJZAG1GSM3VG","ns":"org-data"},{"crowdinId":2077597,"key":"transfamily-support-services.osvc_01H299KDY2Q4PBYAJRNS2Q5MGG.name","ns":"org-data"},{"crowdinId":2073961,"key":"cedar-psychiatry-by-numinus.osvc_01H299KDYA7M3SAD9RC6XBVXCC.description","ns":"org-data"},{"crowdinId":2077569,"key":"transfamily-support-services.attribute.atts_01H29ENFWB2EV1N1JH3ZPG8XD9","ns":"org-data"},{"crowdinId":2073963,"key":"cedar-psychiatry-by-numinus.osvc_01H299KDYA7M3SAD9RC6XBVXCC.name","ns":"org-data"},{"crowdinId":2073951,"key":"cedar-psychiatry-by-numinus.attribute.atts_01H29ENFWMNFRW9B2CAHXMA0C5","ns":"org-data"},{"crowdinId":2074979,"key":"lgbt-center-of-greater-reading.ophn_01H299KDYE43D915QEA385D4VD.description","ns":"org-data"},{"crowdinId":2074977,"key":"lgbt-center-of-greater-reading.oeml_01H299KDYE57ZKZJVW300BMQ1K.description","ns":"org-data"},{"crowdinId":2074981,"key":"lgbt-center-of-greater-reading.osvc_01H299KDYHN6HQVA7BFVWB0QZR.description","ns":"org-data"},{"crowdinId":2074863,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFWTWFRDMEKBQWB3716F","ns":"org-data"},{"crowdinId":2074867,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFWVWQ5JFHHP1EJPXY81","ns":"org-data"},{"crowdinId":2074869,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFWVYYAMP3SW5XRBXE18","ns":"org-data"},{"crowdinId":2074861,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFWTBJ4C3PNAQ8565KSD","ns":"org-data"},{"crowdinId":2074865,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFWV6KYEJ6KBG267E4ZV","ns":"org-data"},{"crowdinId":2074871,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFWWSXNRB5M4RKF8TWJB","ns":"org-data"},{"crowdinId":2074875,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFWYF6VGNM9PMKQV3PX1","ns":"org-data"},{"crowdinId":2074873,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFWY0HNFHKX8XXNNG226","ns":"org-data"},{"crowdinId":2074879,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFWZKMYRAPP3D8XW0RQD","ns":"org-data"},{"crowdinId":2074985,"key":"lgbt-center-of-greater-reading.osvc_01H299KDYVA6BHZKN7BXET4VP3.description","ns":"org-data"},{"crowdinId":2074983,"key":"lgbt-center-of-greater-reading.osvc_01H299KDYHN6HQVA7BFVWB0QZR.name","ns":"org-data"},{"crowdinId":2074881,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX1690M5ESPBTYJ5VNJ","ns":"org-data"},{"crowdinId":2074877,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFWZHRW2F8KXZHEDQEDQ","ns":"org-data"},{"crowdinId":2074987,"key":"lgbt-center-of-greater-reading.osvc_01H299KDYVA6BHZKN7BXET4VP3.name","ns":"org-data"},{"crowdinId":2074359,"key":"gender-spectrum.oeml_01H299KE0ET5SDF5F3KAG6DNPZ.description","ns":"org-data"},{"crowdinId":2074989,"key":"lgbt-center-of-greater-reading.osvc_01H299KDYY1CVH84WCEJW6G2G0.description","ns":"org-data"},{"crowdinId":2074887,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX2D9BEKBVCZCW482VX","ns":"org-data"},{"crowdinId":2074883,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX1NY12Z4VDA690DHB4","ns":"org-data"},{"crowdinId":2074885,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX2AJVCXRC5Y7GEHM6K","ns":"org-data"},{"crowdinId":2074889,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX3AGH0N3DEVAJ792HN","ns":"org-data"},{"crowdinId":2074991,"key":"lgbt-center-of-greater-reading.osvc_01H299KDYY1CVH84WCEJW6G2G0.name","ns":"org-data"},{"crowdinId":2074891,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX4SM166876KBPNJB89","ns":"org-data"},{"crowdinId":2074893,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX6G1TFMTEVYH03B3AS","ns":"org-data"},{"crowdinId":2074993,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZ3ZH5ANZK552Q5XAWK.description","ns":"org-data"},{"crowdinId":2074895,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX6GX67D9H215DBDYSK","ns":"org-data"},{"crowdinId":2074997,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZ7YWF4XAGYXV3C81C4.description","ns":"org-data"},{"crowdinId":2074901,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX9A8A8NBS7QJVHS43F","ns":"org-data"},{"crowdinId":2074909,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXB4X1DZPQW1DJEJZD4","ns":"org-data"},{"crowdinId":2074905,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXAMFZ5YJ1Y155DG705","ns":"org-data"},{"crowdinId":2074897,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX718G37CW0CYE71DGF","ns":"org-data"},{"crowdinId":2074899,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX7BP10FYVV6D5EQJQY","ns":"org-data"},{"crowdinId":2074903,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFX9KCQCDPHAS8S72GNV","ns":"org-data"},{"crowdinId":2074907,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXASK8WK76HAJ979SRS","ns":"org-data"},{"crowdinId":2074995,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZ3ZH5ANZK552Q5XAWK.name","ns":"org-data"},{"crowdinId":2074999,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZ7YWF4XAGYXV3C81C4.name","ns":"org-data"},{"crowdinId":2074913,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXDEMA0DJ3GA6KVZ06M","ns":"org-data"},{"crowdinId":2074911,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXCGZ14X24GYBT0VDEX","ns":"org-data"},{"crowdinId":2075001,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZB0DXRQJSDNXMMY7NM.description","ns":"org-data"},{"crowdinId":2074915,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXEAXA0CJ838XQXT1CP","ns":"org-data"},{"crowdinId":2074917,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXEFEQCB0RTTTN41KBJ","ns":"org-data"},{"crowdinId":2074919,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXF9WSN5W2CR3EGBEFF","ns":"org-data"},{"crowdinId":2075003,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZB0DXRQJSDNXMMY7NM.name","ns":"org-data"},{"crowdinId":2074923,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXQ7SQ9QKCJS63WN0ZF","ns":"org-data"},{"crowdinId":2074921,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXG8DJKP8SMFS3N5XFE","ns":"org-data"},{"crowdinId":2075005,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZGG7444P3ZQE495R8D.description","ns":"org-data"},{"crowdinId":2075009,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZMA7DRS5PXP6MJ6X65.description","ns":"org-data"},{"crowdinId":2075011,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZMA7DRS5PXP6MJ6X65.name","ns":"org-data"},{"crowdinId":2074925,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXQN4J6B9MZ8AAY795Z","ns":"org-data"},{"crowdinId":2074927,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXRSCWJPF88JVXW0VJJ","ns":"org-data"},{"crowdinId":2074933,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXTW6M597H5YECCC924","ns":"org-data"},{"crowdinId":2074941,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXXX0VYJQSDAB9G3SMV","ns":"org-data"},{"crowdinId":2075007,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZGG7444P3ZQE495R8D.name","ns":"org-data"},{"crowdinId":2074937,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXVVD4R4X3V8YXXKTQY","ns":"org-data"},{"crowdinId":2074935,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXVMBQFR964S9MQ1ABC","ns":"org-data"},{"crowdinId":2074943,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXY99M7CMDA4WKX2WS5","ns":"org-data"},{"crowdinId":2074931,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXT006ZHGCP0QPQY8DA","ns":"org-data"},{"crowdinId":2074945,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXYX2AJ74N74Z89C0D5","ns":"org-data"},{"crowdinId":2075013,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZQ17XDVM3XCWS57YCZ.description","ns":"org-data"},{"crowdinId":2074929,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXRSDG6HE727Y8EFK9C","ns":"org-data"},{"crowdinId":2074949,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXZDJTP5190S94Y83QW","ns":"org-data"},{"crowdinId":2074947,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFXZ2BT5SBJPREN6JFNG","ns":"org-data"},{"crowdinId":2075017,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZTBZXJ58TM8H9345MF.description","ns":"org-data"},{"crowdinId":2075015,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZQ17XDVM3XCWS57YCZ.name","ns":"org-data"},{"crowdinId":2074953,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY1HMM2E633P56XN0S1","ns":"org-data"},{"crowdinId":2074951,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY11F8RXAHJ9VDW92DQ","ns":"org-data"},{"crowdinId":2074955,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY28PAV2BNM51NG0Q9J","ns":"org-data"},{"crowdinId":2075023,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZY2DV3DVF6ZZJ7YBQM.name","ns":"org-data"},{"crowdinId":2074957,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY3QB4KDZFJC05BJSNV","ns":"org-data"},{"crowdinId":2075019,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZTBZXJ58TM8H9345MF.name","ns":"org-data"},{"crowdinId":2075021,"key":"lgbt-center-of-greater-reading.osvc_01H299KDZY2DV3DVF6ZZJ7YBQM.description","ns":"org-data"},{"crowdinId":2075025,"key":"lgbt-center-of-greater-reading.osvc_01H299KE01VTRC9SPWNQR83NW5.description","ns":"org-data"},{"crowdinId":2074959,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY44CG4J4TXVHZJAJ5C","ns":"org-data"},{"crowdinId":2074969,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY8QH9RKBZ7EA7S56JW","ns":"org-data"},{"crowdinId":2074967,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY8DFNMEN6W8JG5RCF2","ns":"org-data"},{"crowdinId":2074963,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY5T1177160WZTRX2GZ","ns":"org-data"},{"crowdinId":2074965,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY6V3TVFTZNMJNEBAW1","ns":"org-data"},{"crowdinId":2074961,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY5QKEKG4T0HZKABCGD","ns":"org-data"},{"crowdinId":2074971,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY99VZYQ8JJ0YHXZKEW","ns":"org-data"},{"crowdinId":2074973,"key":"lgbt-center-of-greater-reading.attribute.atts_01H29ENFY9PMX3H2P49DBT5TNT","ns":"org-data"},{"crowdinId":2075027,"key":"lgbt-center-of-greater-reading.osvc_01H299KE01VTRC9SPWNQR83NW5.name","ns":"org-data"},{"crowdinId":2077983,"key":"transparent-usa.osvc_01H299KE07MQ8MH0K8SNYXGV4S.description","ns":"org-data"},{"crowdinId":2077971,"key":"transparent-usa.attribute.atts_01H29ENFYEKTJV42N0E2K8V0XE","ns":"org-data"},{"crowdinId":2077967,"key":"transparent-usa.attribute.atts_01H29ENFYDDBHDMFZ77TYZ2PDH","ns":"org-data"},{"crowdinId":2077969,"key":"transparent-usa.attribute.atts_01H29ENFYE9PTCJND18M07XXS9","ns":"org-data"},{"crowdinId":2077985,"key":"transparent-usa.osvc_01H299KE07MQ8MH0K8SNYXGV4S.name","ns":"org-data"},{"crowdinId":2074329,"key":"gender-spectrum.attribute.atts_01H29ENFYMNW13K9HJW53EW4WN","ns":"org-data"},{"crowdinId":2077987,"key":"transparent-usa.osvc_01H299KE09B9FC15WW1BQ6WE3A.description","ns":"org-data"},{"crowdinId":2077975,"key":"transparent-usa.attribute.atts_01H29ENFYFQFE8TW2NYDF0F7XT","ns":"org-data"},{"crowdinId":2074361,"key":"gender-spectrum.osvc_01H299KE0FYWF5XW7KBZD1A9HY.description","ns":"org-data"},{"crowdinId":2077973,"key":"transparent-usa.attribute.atts_01H29ENFYF21XFA537DGZZAZHZ","ns":"org-data"},{"crowdinId":2074331,"key":"gender-spectrum.attribute.atts_01H29ENFYN7C3Y2DNMD3F81R4Z","ns":"org-data"},{"crowdinId":2074363,"key":"gender-spectrum.osvc_01H299KE0FYWF5XW7KBZD1A9HY.name","ns":"org-data"},{"crowdinId":2074327,"key":"gender-spectrum.attribute.atts_01H29ENFYMHBYM8S9AXQBVZ4VX","ns":"org-data"},{"crowdinId":2077989,"key":"transparent-usa.osvc_01H299KE09B9FC15WW1BQ6WE3A.name","ns":"org-data"},{"crowdinId":2077977,"key":"transparent-usa.attribute.atts_01H29ENFYGWN44DSJX6QH61JRA","ns":"org-data"},{"crowdinId":2074365,"key":"gender-spectrum.osvc_01H299KE0GYMXVNZSV3FB2B2JA.description","ns":"org-data"},{"crowdinId":2074335,"key":"gender-spectrum.attribute.atts_01H29ENFYPGZVXMWNYZQ3A1YC2","ns":"org-data"},{"crowdinId":2074333,"key":"gender-spectrum.attribute.atts_01H29ENFYP8BNJJX46WN5DW3Q3","ns":"org-data"},{"crowdinId":2074367,"key":"gender-spectrum.osvc_01H299KE0GYMXVNZSV3FB2B2JA.name","ns":"org-data"},{"crowdinId":2074337,"key":"gender-spectrum.attribute.atts_01H29ENFYQ69JR3HESMP2S2XSK","ns":"org-data"},{"crowdinId":2074369,"key":"gender-spectrum.osvc_01H299KE0J513K1EG3R3KEVP4T.description","ns":"org-data"},{"crowdinId":2074339,"key":"gender-spectrum.attribute.atts_01H29ENFYQN4N2S2CGGJ6XJ3YP","ns":"org-data"},{"crowdinId":2074343,"key":"gender-spectrum.attribute.atts_01H29ENFYRMWGAX2MNJFQ88VFG","ns":"org-data"},{"crowdinId":2074341,"key":"gender-spectrum.attribute.atts_01H29ENFYRHTVMM2HGN02X31V3","ns":"org-data"},{"crowdinId":2074371,"key":"gender-spectrum.osvc_01H299KE0J513K1EG3R3KEVP4T.name","ns":"org-data"},{"crowdinId":2074349,"key":"gender-spectrum.attribute.atts_01H29ENFYTJQVDZCTF1WGR7N8W","ns":"org-data"},{"crowdinId":2074377,"key":"gender-spectrum.osvc_01H299KE0PDC8PXQ4ZW7MEDM59.description","ns":"org-data"},{"crowdinId":2074373,"key":"gender-spectrum.osvc_01H299KE0MQA1G6NZRE9PHDJYA.description","ns":"org-data"},{"crowdinId":2074379,"key":"gender-spectrum.osvc_01H299KE0PDC8PXQ4ZW7MEDM59.name","ns":"org-data"},{"crowdinId":2074351,"key":"gender-spectrum.attribute.atts_01H29ENFYVDMWPPS92XDNKSKGQ","ns":"org-data"},{"crowdinId":2074347,"key":"gender-spectrum.attribute.atts_01H29ENFYSRPNP8EA05FEJA6KM","ns":"org-data"},{"crowdinId":2074375,"key":"gender-spectrum.osvc_01H299KE0MQA1G6NZRE9PHDJYA.name","ns":"org-data"},{"crowdinId":2074355,"key":"gender-spectrum.attribute.atts_01H29ENFYW91CA1HR8X7QSP1DF","ns":"org-data"},{"crowdinId":2074345,"key":"gender-spectrum.attribute.atts_01H29ENFYSMK42H8QQ4269W8Y9","ns":"org-data"},{"crowdinId":2074353,"key":"gender-spectrum.attribute.atts_01H29ENFYVTNGSR14MP5GDRHDH","ns":"org-data"},{"crowdinId":2076197,"key":"plume.oeml_01H299KE0VBMR5K0SMCT2AJZ3E.description","ns":"org-data"},{"crowdinId":2076201,"key":"plume.ophn_01H299KE0V14QDHPZX1WD1Z0GR.description","ns":"org-data"},{"crowdinId":2076199,"key":"plume.ophn_01H299KE0TW0ZJABFGB8DRV8RG.description","ns":"org-data"},{"crowdinId":2076427,"key":"queerdoc.attribute.atts_01H29ENG09PN18KVY9V8N5N94E","ns":"org-data"},{"crowdinId":2076467,"key":"queerdoc.osvc_01H299KE269FFCJZ741HMRJY0G.name","ns":"org-data"},{"crowdinId":2076203,"key":"plume.osvc_01H299KE18AWCZ2YJJS3QZDW99.description","ns":"org-data"},{"crowdinId":2073473,"key":"988-suicide-and-crisis-lifeline.ophn_01H299KE39JNTRF7FATRR74PTM.description","ns":"org-data"},{"crowdinId":2076185,"key":"plume.attribute.atts_01H29ENFZCPENE806TVBGTY9A7","ns":"org-data"},{"crowdinId":2076181,"key":"plume.attribute.atts_01H29ENFZBJ2TC0R99GAGVZJS2","ns":"org-data"},{"crowdinId":2076183,"key":"plume.attribute.atts_01H29ENFZCG1DCYZ2P04ARVGXW","ns":"org-data"},{"crowdinId":2076187,"key":"plume.attribute.atts_01H29ENFZD1NK1ZP99F93QB333","ns":"org-data"},{"crowdinId":2076417,"key":"queerdoc.attribute.atts_01H29ENG04CF40ST4S1B34ZTQN","ns":"org-data"},{"crowdinId":2076457,"key":"queerdoc.ophn_01H299KE1Y31S86HG6JFGDRP0E.description","ns":"org-data"},{"crowdinId":2076193,"key":"plume.attribute.atts_01H29ENFZSPMM1WV4X22Z56PJR","ns":"org-data"},{"crowdinId":2076189,"key":"plume.attribute.atts_01H29ENFZDG0WCNEBVR8M9PMHD","ns":"org-data"},{"crowdinId":2076207,"key":"plume.osvc_01H299KE1NBVM13HDV8YK7DWF0.description","ns":"org-data"},{"crowdinId":2076461,"key":"queerdoc.osvc_01H299KE22PHPR7QMYPSX7BW4B.description","ns":"org-data"},{"crowdinId":2076459,"key":"queerdoc.ophn_01H299KE1ZYFSQPTT7X6ERPZPQ.description","ns":"org-data"},{"crowdinId":2076191,"key":"plume.attribute.atts_01H29ENFZSHNJAKZ4YS112M0TS","ns":"org-data"},{"crowdinId":2076455,"key":"queerdoc.oeml_01H299KE1ZNGTAFVX74TTQ4A3P.description","ns":"org-data"},{"crowdinId":2076209,"key":"plume.osvc_01H299KE1NBVM13HDV8YK7DWF0.name","ns":"org-data"},{"crowdinId":2076205,"key":"plume.osvc_01H299KE18AWCZ2YJJS3QZDW99.name","ns":"org-data"},{"crowdinId":2076419,"key":"queerdoc.attribute.atts_01H29ENG04RFVVTX59WR1PVC4D","ns":"org-data"},{"crowdinId":2076421,"key":"queerdoc.attribute.atts_01H29ENG05YJ3FN5SZF0JJJZWQ","ns":"org-data"},{"crowdinId":2076463,"key":"queerdoc.osvc_01H299KE22PHPR7QMYPSX7BW4B.name","ns":"org-data"},{"crowdinId":2076465,"key":"queerdoc.osvc_01H299KE269FFCJZ741HMRJY0G.description","ns":"org-data"},{"crowdinId":2076423,"key":"queerdoc.attribute.atts_01H29ENG081PZYM2QHH6XSPS2E","ns":"org-data"},{"crowdinId":2076431,"key":"queerdoc.attribute.atts_01H29ENG0CJPMRY7AY3C5Z8NY0","ns":"org-data"},{"crowdinId":2076425,"key":"queerdoc.attribute.atts_01H29ENG08T8H46CHTANKZ52MH","ns":"org-data"},{"crowdinId":2076469,"key":"queerdoc.osvc_01H299KE2AB6R0HAZJMTPCDHVD.description","ns":"org-data"},{"crowdinId":2076429,"key":"queerdoc.attribute.atts_01H29ENG0CDNXTZY78HV5JEJ9K","ns":"org-data"},{"crowdinId":2076435,"key":"queerdoc.attribute.atts_01H29ENG0GGAMH01FV4EN89BVG","ns":"org-data"},{"crowdinId":2076437,"key":"queerdoc.attribute.atts_01H29ENG0GJB8MS4AN91YZGX88","ns":"org-data"},{"crowdinId":2076473,"key":"queerdoc.osvc_01H299KE2E31J7WRWY3BHW1KZ2.description","ns":"org-data"},{"crowdinId":2076477,"key":"queerdoc.osvc_01H299KE2P1ZSZM9AT3J81CGF0.description","ns":"org-data"},{"crowdinId":2076439,"key":"queerdoc.attribute.atts_01H29ENG0HY1RVEQGA5P4E1R2K","ns":"org-data"},{"crowdinId":2076433,"key":"queerdoc.attribute.atts_01H29ENG0DPXV0YAD1QZZ4ZF3Y","ns":"org-data"},{"crowdinId":2076441,"key":"queerdoc.attribute.atts_01H29ENG0MDX1BYDMEEZYKPTJG","ns":"org-data"},{"crowdinId":2076475,"key":"queerdoc.osvc_01H299KE2E31J7WRWY3BHW1KZ2.name","ns":"org-data"},{"crowdinId":2076471,"key":"queerdoc.osvc_01H299KE2AB6R0HAZJMTPCDHVD.name","ns":"org-data"},{"crowdinId":2076443,"key":"queerdoc.attribute.atts_01H29ENG0MG8T22659NCVYT9T3","ns":"org-data"},{"crowdinId":2076479,"key":"queerdoc.osvc_01H299KE2P1ZSZM9AT3J81CGF0.name","ns":"org-data"},{"crowdinId":2076445,"key":"queerdoc.attribute.atts_01H29ENG0NXY9M1KVDC5XM0YEW","ns":"org-data"},{"crowdinId":2076481,"key":"queerdoc.osvc_01H299KE2T89SZBBPGCSRPPM9V.description","ns":"org-data"},{"crowdinId":2076449,"key":"queerdoc.attribute.atts_01H29ENG0R6GHW2TFNK7TJPVAA","ns":"org-data"},{"crowdinId":2076447,"key":"queerdoc.attribute.atts_01H29ENG0R6E2K5VHA1HY84XEV","ns":"org-data"},{"crowdinId":2076451,"key":"queerdoc.attribute.atts_01H29ENG0SJF25R6YQS5ASEJZD","ns":"org-data"},{"crowdinId":2076483,"key":"queerdoc.osvc_01H299KE2T89SZBBPGCSRPPM9V.name","ns":"org-data"},{"crowdinId":2077481,"key":"trans-families.osvc_01H299KE32VWWZ25FJE2V9K702.description","ns":"org-data"},{"crowdinId":2077479,"key":"trans-families.ophn_01H299KE313B8C3W8XBZ5YA5DA.description","ns":"org-data"},{"crowdinId":2077465,"key":"trans-families.attribute.atts_01H29ENG0ZEG4Y1RFRF7T75V69","ns":"org-data"},{"crowdinId":2077473,"key":"trans-families.attribute.atts_01H29ENG11GTM37TS2PHEK3M3R","ns":"org-data"},{"crowdinId":2077469,"key":"trans-families.attribute.atts_01H29ENG10TW1V5A3QFT026Q3V","ns":"org-data"},{"crowdinId":2077475,"key":"trans-families.attribute.atts_01H29ENG11S4TWHM88D5GZSTS0","ns":"org-data"},{"crowdinId":2077467,"key":"trans-families.attribute.atts_01H29ENG0ZHX881DVNK3AZCYWS","ns":"org-data"},{"crowdinId":2073469,"key":"988-suicide-and-crisis-lifeline.ophn_01H299KE378BWJRSWXJG72R2C5.description","ns":"org-data"},{"crowdinId":2073471,"key":"988-suicide-and-crisis-lifeline.ophn_01H299KE3843Q6TP22Y4P03JCN.description","ns":"org-data"},{"crowdinId":2073475,"key":"988-suicide-and-crisis-lifeline.ophn_01H299KE3A64Q1XPNSRFT3008W.description","ns":"org-data"},{"crowdinId":2073477,"key":"988-suicide-and-crisis-lifeline.ophn_01H299KE3ABSZRWJ84BFE8YHGP.description","ns":"org-data"},{"crowdinId":2077471,"key":"trans-families.attribute.atts_01H29ENG10Z255ZD0FTS9XS56P","ns":"org-data"},{"crowdinId":2077483,"key":"trans-families.osvc_01H299KE32VWWZ25FJE2V9K702.name","ns":"org-data"},{"crowdinId":2073455,"key":"988-suicide-and-crisis-lifeline.attribute.atts_01H29ENG17HNKSC210K83S4NN3","ns":"org-data"},{"crowdinId":2073479,"key":"988-suicide-and-crisis-lifeline.osvc_01H299KE3BNHVGXNGAN74A6HN3.description","ns":"org-data"},{"crowdinId":2073457,"key":"988-suicide-and-crisis-lifeline.attribute.atts_01H29ENG1CRWCEW0TK1GKCFHKC","ns":"org-data"},{"crowdinId":2073459,"key":"988-suicide-and-crisis-lifeline.attribute.atts_01H29ENG1CTEX1NYECY5M8DTYH","ns":"org-data"},{"crowdinId":2073461,"key":"988-suicide-and-crisis-lifeline.attribute.atts_01H29ENG1DB8N698FZ1MK5G5XE","ns":"org-data"},{"crowdinId":2073463,"key":"988-suicide-and-crisis-lifeline.attribute.atts_01H29ENG1DT6HP8NK9M7M4NAH6","ns":"org-data"},{"crowdinId":2073465,"key":"988-suicide-and-crisis-lifeline.attribute.atts_01H29ENG1EJMNAX6GNM8D30SBQ","ns":"org-data"},{"crowdinId":2075531,"key":"mixteco-indigena-community-organizing-project-micop.ophn_01H299KE3H1EXZ8H9X70S2DSVW.description","ns":"org-data"},{"crowdinId":2073481,"key":"988-suicide-and-crisis-lifeline.osvc_01H299KE3BNHVGXNGAN74A6HN3.name","ns":"org-data"},{"crowdinId":2075511,"key":"mixteco-indigena-community-organizing-project-micop.attribute.atts_01H29ENG1P48GQK32Y9B3DV7A5","ns":"org-data"},{"crowdinId":2075533,"key":"mixteco-indigena-community-organizing-project-micop.ophn_01H299KE3J61KDAT6KBHTBCAJC.description","ns":"org-data"},{"crowdinId":2075535,"key":"mixteco-indigena-community-organizing-project-micop.ophn_01H299KE3JHTRJZG8JBHG4K8M6.description","ns":"org-data"},{"crowdinId":2075527,"key":"mixteco-indigena-community-organizing-project-micop.oeml_01H299KE3KB0SHVY59Y67T1WFC.description","ns":"org-data"},{"crowdinId":2075539,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3MN3W1B3F0FATXX5GD.name","ns":"org-data"},{"crowdinId":2075525,"key":"mixteco-indigena-community-organizing-project-micop.oeml_01H299KE3J5QPVN399NNHT912C.description","ns":"org-data"},{"crowdinId":2075541,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3Q72EJ17GHAD2P02N6.description","ns":"org-data"},{"crowdinId":2075529,"key":"mixteco-indigena-community-organizing-project-micop.oeml_01H299KE3KXBWRV4NDWV55KVTQ.description","ns":"org-data"},{"crowdinId":2075537,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3MN3W1B3F0FATXX5GD.description","ns":"org-data"},{"crowdinId":2075545,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3SP8955DZ9V3X6D129.description","ns":"org-data"},{"crowdinId":2075509,"key":"mixteco-indigena-community-organizing-project-micop.attribute.atts_01H29ENG1MBYDV02CPZN2XNZHN","ns":"org-data"},{"crowdinId":2075543,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3Q72EJ17GHAD2P02N6.name","ns":"org-data"},{"crowdinId":2075513,"key":"mixteco-indigena-community-organizing-project-micop.attribute.atts_01H29ENG1R675ERN75QK4DK0HP","ns":"org-data"},{"crowdinId":2075549,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3V4P36JH997RYQCRBR.description","ns":"org-data"},{"crowdinId":2075547,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3SP8955DZ9V3X6D129.name","ns":"org-data"},{"crowdinId":2075553,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3WTN7MDPQS2JEV7T8K.description","ns":"org-data"},{"crowdinId":2075515,"key":"mixteco-indigena-community-organizing-project-micop.attribute.atts_01H29ENG1TQV29XK9M832D7Z29","ns":"org-data"},{"crowdinId":2075517,"key":"mixteco-indigena-community-organizing-project-micop.attribute.atts_01H29ENG1VPMR1YXFVGVPEG39J","ns":"org-data"},{"crowdinId":2075551,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3V4P36JH997RYQCRBR.name","ns":"org-data"},{"crowdinId":2075555,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3WTN7MDPQS2JEV7T8K.name","ns":"org-data"},{"crowdinId":2075557,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3Y3ZNNDJ3H5SWMYHDS.description","ns":"org-data"},{"crowdinId":2075561,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE40WPMKYP3STYA8DGV2.description","ns":"org-data"},{"crowdinId":2075563,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE40WPMKYP3STYA8DGV2.name","ns":"org-data"},{"crowdinId":2073915,"key":"cambridge-womens-center.osvc_01H299KE45AK57NDN1ESKP12EV.description","ns":"org-data"},{"crowdinId":2073911,"key":"cambridge-womens-center.oeml_01H299KE443JC11ZPCAQ9HJQT2.description","ns":"org-data"},{"crowdinId":2075521,"key":"mixteco-indigena-community-organizing-project-micop.attribute.atts_01H29ENG1ZRJD6X34X4VM1PT72","ns":"org-data"},{"crowdinId":2075559,"key":"mixteco-indigena-community-organizing-project-micop.osvc_01H299KE3Y3ZNNDJ3H5SWMYHDS.name","ns":"org-data"},{"crowdinId":2073897,"key":"cambridge-womens-center.attribute.atts_01H29ENG24KEJC6A8B7HQ84TQK","ns":"org-data"},{"crowdinId":2074061,"key":"covenant-house-michigan.attribute.atts_01H29ENG2EHV85MYNWYPFQAX5Z","ns":"org-data"},{"crowdinId":2073913,"key":"cambridge-womens-center.ophn_01H299KE447N1FZ34XJBTR0KRC.description","ns":"org-data"},{"crowdinId":2075519,"key":"mixteco-indigena-community-organizing-project-micop.attribute.atts_01H29ENG1XNPM9BWPQW4D0D24B","ns":"org-data"},{"crowdinId":2073895,"key":"cambridge-womens-center.attribute.atts_01H29ENG23282S5285Z0DDKXY8","ns":"org-data"},{"crowdinId":2073917,"key":"cambridge-womens-center.osvc_01H299KE45AK57NDN1ESKP12EV.name","ns":"org-data"},{"crowdinId":2073919,"key":"cambridge-womens-center.osvc_01H299KE4751VKVF6V3RRN1TR8.description","ns":"org-data"},{"crowdinId":2073899,"key":"cambridge-womens-center.attribute.atts_01H29ENG25Q2AVS54R6720V2JN","ns":"org-data"},{"crowdinId":2073901,"key":"cambridge-womens-center.attribute.atts_01H29ENG25QCBA99CX9D3HTAMD","ns":"org-data"},{"crowdinId":2073903,"key":"cambridge-womens-center.attribute.atts_01H29ENG263M7Z085TBSCTNJ8M","ns":"org-data"},{"crowdinId":2073907,"key":"cambridge-womens-center.attribute.atts_01H29ENG27R3FEX4Q150JKQABZ","ns":"org-data"},{"crowdinId":2073905,"key":"cambridge-womens-center.attribute.atts_01H29ENG26QG3P02TC1C5BRN6X","ns":"org-data"},{"crowdinId":2073921,"key":"cambridge-womens-center.osvc_01H299KE4751VKVF6V3RRN1TR8.name","ns":"org-data"},{"crowdinId":2074053,"key":"covenant-house-michigan.attribute.atts_01H29ENG2C6HW8A4X8ZQDAWYGC","ns":"org-data"},{"crowdinId":2074095,"key":"covenant-house-michigan.osvc_01H299KE4EZ0XQTRAASYASS14V.description","ns":"org-data"},{"crowdinId":2074055,"key":"covenant-house-michigan.attribute.atts_01H29ENG2DHPKTWPMZ1ZC2A9JE","ns":"org-data"},{"crowdinId":2074091,"key":"covenant-house-michigan.ophn_01H299KE4C8Y0CP1K5DVHZB99Z.description","ns":"org-data"},{"crowdinId":2074093,"key":"covenant-house-michigan.ophn_01H299KE4DFP55WZF8FE2R52HJ.description","ns":"org-data"},{"crowdinId":2074087,"key":"covenant-house-michigan.oeml_01H299KE4DEH19Q6V6Q24T7EE0.description","ns":"org-data"},{"crowdinId":2074089,"key":"covenant-house-michigan.oeml_01H299KE4DRB1DPDZHA2QBDWNE.description","ns":"org-data"},{"crowdinId":2074097,"key":"covenant-house-michigan.osvc_01H299KE4EZ0XQTRAASYASS14V.name","ns":"org-data"},{"crowdinId":2074051,"key":"covenant-house-michigan.attribute.atts_01H29ENG2BMM2M2NN1S1FXD4S8","ns":"org-data"},{"crowdinId":2074049,"key":"covenant-house-michigan.attribute.atts_01H29ENG2B4KK8C1NJ8BVZG4A0","ns":"org-data"},{"crowdinId":2074059,"key":"covenant-house-michigan.attribute.atts_01H29ENG2EGTGSW03ADP9V9KBT","ns":"org-data"},{"crowdinId":2074057,"key":"covenant-house-michigan.attribute.atts_01H29ENG2EE7ARZYGZDCFTB575","ns":"org-data"},{"crowdinId":2074099,"key":"covenant-house-michigan.osvc_01H299KE4HD3H6B0MV2ZVX3R6S.description","ns":"org-data"},{"crowdinId":2074101,"key":"covenant-house-michigan.osvc_01H299KE4HD3H6B0MV2ZVX3R6S.name","ns":"org-data"},{"crowdinId":2074063,"key":"covenant-house-michigan.attribute.atts_01H29ENG2FNQW3CD7ZZR2V29MZ","ns":"org-data"},{"crowdinId":2074105,"key":"covenant-house-michigan.osvc_01H299KE4KM79JAT4JJTN071S9.name","ns":"org-data"},{"crowdinId":2074103,"key":"covenant-house-michigan.osvc_01H299KE4KM79JAT4JJTN071S9.description","ns":"org-data"},{"crowdinId":2074065,"key":"covenant-house-michigan.attribute.atts_01H29ENG2G2C61RK68S3SX0T7S","ns":"org-data"},{"crowdinId":2074069,"key":"covenant-house-michigan.attribute.atts_01H29ENG2HKXDJZA3ES9XYQW6D","ns":"org-data"},{"crowdinId":2074067,"key":"covenant-house-michigan.attribute.atts_01H29ENG2G6W0AR9WE0RV3NB99","ns":"org-data"},{"crowdinId":2074113,"key":"covenant-house-michigan.osvc_01H299KE4RQH3RHZ9508ZNQR82.name","ns":"org-data"},{"crowdinId":2074111,"key":"covenant-house-michigan.osvc_01H299KE4RQH3RHZ9508ZNQR82.description","ns":"org-data"},{"crowdinId":2074079,"key":"covenant-house-michigan.attribute.atts_01H29ENG2MJY7FQK9XXAQ0NQNS","ns":"org-data"},{"crowdinId":2074075,"key":"covenant-house-michigan.attribute.atts_01H29ENG2K912P7N7ZWGBZHQXB","ns":"org-data"},{"crowdinId":2074073,"key":"covenant-house-michigan.attribute.atts_01H29ENG2JNHYH4GQPWY6JR9ZZ","ns":"org-data"},{"crowdinId":2074109,"key":"covenant-house-michigan.osvc_01H299KE4PVZ2RSB912JN4CN36.name","ns":"org-data"},{"crowdinId":2074107,"key":"covenant-house-michigan.osvc_01H299KE4PVZ2RSB912JN4CN36.description","ns":"org-data"},{"crowdinId":2074077,"key":"covenant-house-michigan.attribute.atts_01H29ENG2M18BAFW31VBD47V49","ns":"org-data"},{"crowdinId":2074081,"key":"covenant-house-michigan.attribute.atts_01H29ENG2NF6QK1476MGG9G7S9","ns":"org-data"},{"crowdinId":2074071,"key":"covenant-house-michigan.attribute.atts_01H29ENG2J49SHJF2SZV21ZY5T","ns":"org-data"},{"crowdinId":2073761,"key":"brave-spaces-llc.osvc_01H299KE4WZ42T77V0ZXN988DH.description","ns":"org-data"},{"crowdinId":2073763,"key":"brave-spaces-llc.osvc_01H299KE4WZ42T77V0ZXN988DH.name","ns":"org-data"},{"crowdinId":2074083,"key":"covenant-house-michigan.attribute.atts_01H29ENG2PBY52XFF07ZHWNH5Y","ns":"org-data"},{"crowdinId":2073755,"key":"brave-spaces-llc.attribute.atts_01H29ENG2SK8RW4P2YMYWAJVJF","ns":"org-data"},{"crowdinId":2073757,"key":"brave-spaces-llc.attribute.atts_01H29ENG2TS38TY8QMH4HKHNA1","ns":"org-data"},{"crowdinId":2075829,"key":"ohsu-transgender-health-program.ophn_01H299KE50GYZCTQ8M9ZHEF941.description","ns":"org-data"},{"crowdinId":2075831,"key":"ohsu-transgender-health-program.ophn_01H299KE5102EY6GXHDATMDY5K.description","ns":"org-data"},{"crowdinId":2075827,"key":"ohsu-transgender-health-program.oeml_01H299KE51DF58Y8JF1B5EE8FN.description","ns":"org-data"},{"crowdinId":2075833,"key":"ohsu-transgender-health-program.osvc_01H299KE529FMP5N0KDDGAT0H1.description","ns":"org-data"},{"crowdinId":2075793,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG382HVA84A26M8YKCVP","ns":"org-data"},{"crowdinId":2075773,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG32XS2TZEQ37CXG4TJB","ns":"org-data"},{"crowdinId":2075771,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG31Y78YMQT3KMDJRMFE","ns":"org-data"},{"crowdinId":2075763,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG2Z6PA27FBD9RYDREBT","ns":"org-data"},{"crowdinId":2075837,"key":"ohsu-transgender-health-program.osvc_01H299KE55VRPFRC087QV5D0WP.description","ns":"org-data"},{"crowdinId":2075835,"key":"ohsu-transgender-health-program.osvc_01H299KE529FMP5N0KDDGAT0H1.name","ns":"org-data"},{"crowdinId":2075775,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG32Z1W44EFZ7MMA98CQ","ns":"org-data"},{"crowdinId":2075769,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG30CCMBWSAHT92H63X5","ns":"org-data"},{"crowdinId":2075761,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG2YK12REQMJ9R9E6A91","ns":"org-data"},{"crowdinId":2075767,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG2ZXTAV9G59Y2H3PVDG","ns":"org-data"},{"crowdinId":2075765,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG2Z9WSK3Y06JXAW9CFA","ns":"org-data"},{"crowdinId":2075777,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG336S079YGZB088X37D","ns":"org-data"},{"crowdinId":2075781,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG34RPXFS7W0FEPAYVNC","ns":"org-data"},{"crowdinId":2075779,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG33FD9828CHGH99ZDDE","ns":"org-data"},{"crowdinId":2075783,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG35KPREXC3P3BMXT48G","ns":"org-data"},{"crowdinId":2075839,"key":"ohsu-transgender-health-program.osvc_01H299KE55VRPFRC087QV5D0WP.name","ns":"org-data"},{"crowdinId":2075787,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG36M511GZBG3DTXN7EB","ns":"org-data"},{"crowdinId":2075785,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG360MJP5N5CA6VZZPRG","ns":"org-data"},{"crowdinId":2075789,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3792YK3Z59FN28FDFQ","ns":"org-data"},{"crowdinId":2075791,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG37PFG89YNCFJKRXD0K","ns":"org-data"},{"crowdinId":2075841,"key":"ohsu-transgender-health-program.osvc_01H299KE5E0P40JYMKB0C1R55P.description","ns":"org-data"},{"crowdinId":2075843,"key":"ohsu-transgender-health-program.osvc_01H299KE5E0P40JYMKB0C1R55P.name","ns":"org-data"},{"crowdinId":2075805,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3C738055W20BW7PFRA","ns":"org-data"},{"crowdinId":2075801,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3BC7FAZ96VWC3501VQ","ns":"org-data"},{"crowdinId":2075797,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3AAQ167ZY80EETKM6N","ns":"org-data"},{"crowdinId":2075795,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG39CHRNV5W8MQYTXHPR","ns":"org-data"},{"crowdinId":2075807,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3CWBBG7W6RBPHKH240","ns":"org-data"},{"crowdinId":2075809,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3D8J90KPDT6CKD5EWH","ns":"org-data"},{"crowdinId":2075845,"key":"ohsu-transgender-health-program.osvc_01H299KE5K36FW8NBMB1BWPWKG.description","ns":"org-data"},{"crowdinId":2075803,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3BXAM79XHX4WER1F2R","ns":"org-data"},{"crowdinId":2075799,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3AKYGESWVKDQAVVEKN","ns":"org-data"},{"crowdinId":2075849,"key":"ohsu-transgender-health-program.osvc_01H299KE5QE6Z3M3PEJ2XBG0WG.description","ns":"org-data"},{"crowdinId":2075811,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3EQPRD446TQBTSN7M5","ns":"org-data"},{"crowdinId":2075847,"key":"ohsu-transgender-health-program.osvc_01H299KE5K36FW8NBMB1BWPWKG.name","ns":"org-data"},{"crowdinId":2075815,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3FX8A7BD36AWS9X7PD","ns":"org-data"},{"crowdinId":2075813,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3FC3GMQP26XR40A3X9","ns":"org-data"},{"crowdinId":2075817,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3FXSJEMBPKE90W2Y8B","ns":"org-data"},{"crowdinId":2075821,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3GYDXCQ48HQYW0391D","ns":"org-data"},{"crowdinId":2075823,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3HRVDCGJX03Z01W7CQ","ns":"org-data"},{"crowdinId":2075819,"key":"ohsu-transgender-health-program.attribute.atts_01H29ENG3GGVFXZ8B86ZPEDCTG","ns":"org-data"},{"crowdinId":2075851,"key":"ohsu-transgender-health-program.osvc_01H299KE5QE6Z3M3PEJ2XBG0WG.name","ns":"org-data"},{"crowdinId":2073821,"key":"bridgehaven.osvc_01H299KE60D4E3BAJZ93HF2S2B.description","ns":"org-data"},{"crowdinId":2073805,"key":"bridgehaven.attribute.atts_01H29ENG3PFVE4YSD95SN6FPZ4","ns":"org-data"},{"crowdinId":2074321,"key":"gala-north-texas.ophn_01H299KE65K9JM951V9HF9CHT2.description","ns":"org-data"},{"crowdinId":2073809,"key":"bridgehaven.attribute.atts_01H29ENG3QPB2EFZE452BHG6DZ","ns":"org-data"},{"crowdinId":2073817,"key":"bridgehaven.ophn_01H299KE5X1NFWRA44V8NBV0PJ.description","ns":"org-data"},{"crowdinId":2073823,"key":"bridgehaven.osvc_01H299KE60D4E3BAJZ93HF2S2B.name","ns":"org-data"},{"crowdinId":2074319,"key":"gala-north-texas.oeml_01H299KE66K69GPRK971VC06F8.description","ns":"org-data"},{"crowdinId":2074317,"key":"gala-north-texas.oeml_01H299KE66E8RMPEJWR391GPX2.description","ns":"org-data"},{"crowdinId":2073807,"key":"bridgehaven.attribute.atts_01H29ENG3Q6RGY34BMN4TW0TMF","ns":"org-data"},{"crowdinId":2074323,"key":"gala-north-texas.osvc_01H299KE6771V9V305ADY9STB1.description","ns":"org-data"},{"crowdinId":2073811,"key":"bridgehaven.attribute.atts_01H29ENG3R3THJJECJBNAH03PC","ns":"org-data"},{"crowdinId":2074305,"key":"gala-north-texas.attribute.atts_01H29ENG41ANXHAKKKAJ1Y9HM3","ns":"org-data"},{"crowdinId":2074307,"key":"gala-north-texas.attribute.atts_01H29ENG41X9CDJ1YHVTNAV86M","ns":"org-data"},{"crowdinId":2074309,"key":"gala-north-texas.attribute.atts_01H29ENG42MYZ1626KVA47D9BP","ns":"org-data"},{"crowdinId":2074325,"key":"gala-north-texas.osvc_01H299KE6771V9V305ADY9STB1.name","ns":"org-data"},{"crowdinId":2074313,"key":"gala-north-texas.attribute.atts_01H29ENG4723WZBDRE438T8NFJ","ns":"org-data"},{"crowdinId":2074311,"key":"gala-north-texas.attribute.atts_01H29ENG45487H9EZXKE1GP7V1","ns":"org-data"},{"crowdinId":2075603,"key":"montrose-grace-place.ophn_01H299KE6GAKJ3M2CX9QPDSNA8.description","ns":"org-data"},{"crowdinId":2075601,"key":"montrose-grace-place.oeml_01H299KE6GXV6WPQVQ928V7FDW.description","ns":"org-data"},{"crowdinId":2075605,"key":"montrose-grace-place.osvc_01H299KE6JNKEX7NV8BGH2W0HM.description","ns":"org-data"},{"crowdinId":2075595,"key":"montrose-grace-place.attribute.atts_01H29ENG4DKS1P14XQYG82SHVM","ns":"org-data"},{"crowdinId":2075591,"key":"montrose-grace-place.attribute.atts_01H29ENG4CPKZR3SZBHFXW9BHE","ns":"org-data"},{"crowdinId":2074475,"key":"have-a-gay-day.attribute.atts_01H29ENG4K9TJ8YJ3BVJTMZCRJ","ns":"org-data"},{"crowdinId":2075607,"key":"montrose-grace-place.osvc_01H299KE6JNKEX7NV8BGH2W0HM.name","ns":"org-data"},{"crowdinId":2075589,"key":"montrose-grace-place.attribute.atts_01H29ENG4CAT2DJ7E2JDGGGBFS","ns":"org-data"},{"crowdinId":2074493,"key":"have-a-gay-day.ophn_01H299KE6R6S69RA3WY3JNGXVX.description","ns":"org-data"},{"crowdinId":2074477,"key":"have-a-gay-day.attribute.atts_01H29ENG4KJ0BGR16FEAG35Z3T","ns":"org-data"},{"crowdinId":2074481,"key":"have-a-gay-day.attribute.atts_01H29ENG4MHYYVMFTDHWN8YES1","ns":"org-data"},{"crowdinId":2074479,"key":"have-a-gay-day.attribute.atts_01H29ENG4M6CNQKJMKS87XPN0Y","ns":"org-data"},{"crowdinId":2074497,"key":"have-a-gay-day.osvc_01H299KE6TVW8PX503F2F53VNB.name","ns":"org-data"},{"crowdinId":2075597,"key":"montrose-grace-place.attribute.atts_01H29ENG4EXWYSY080AHN2QHB7","ns":"org-data"},{"crowdinId":2075593,"key":"montrose-grace-place.attribute.atts_01H29ENG4CWQ0516S2E8BEECGN","ns":"org-data"},{"crowdinId":2074495,"key":"have-a-gay-day.osvc_01H299KE6TVW8PX503F2F53VNB.description","ns":"org-data"},{"crowdinId":2074499,"key":"have-a-gay-day.osvc_01H299KE6WGMGDW6142757B8M1.description","ns":"org-data"},{"crowdinId":2074483,"key":"have-a-gay-day.attribute.atts_01H29ENG4NM509P5XPF8HQVFJE","ns":"org-data"},{"crowdinId":2076967,"key":"san-antonio-gender-association-saga.oeml_01H299KE725M4GV1F0CBRX478N.description","ns":"org-data"},{"crowdinId":2074485,"key":"have-a-gay-day.attribute.atts_01H29ENG4PBDHQ3BP5GTPWHPVV","ns":"org-data"},{"crowdinId":2074489,"key":"have-a-gay-day.attribute.atts_01H29ENG4R3ZR6G4THPMPMC4S6","ns":"org-data"},{"crowdinId":2074501,"key":"have-a-gay-day.osvc_01H299KE6WGMGDW6142757B8M1.name","ns":"org-data"},{"crowdinId":2074487,"key":"have-a-gay-day.attribute.atts_01H29ENG4PQ6JHZZ44XCW8PX1B","ns":"org-data"},{"crowdinId":2077139,"key":"st-stephens-episcopal-church.ophn_01H299KE77040H9VX9WC8W4RD0.description","ns":"org-data"},{"crowdinId":2077135,"key":"st-stephens-episcopal-church.oeml_01H299KE7709W8DNNJ5J0FTRVT.description","ns":"org-data"},{"crowdinId":2076959,"key":"san-antonio-gender-association-saga.attribute.atts_01H29ENG4VB5XPSXZE4X28DMZA","ns":"org-data"},{"crowdinId":2076969,"key":"san-antonio-gender-association-saga.osvc_01H299KE737WYZYZHKBVMQ5VN2.description","ns":"org-data"},{"crowdinId":2076039,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KE9Y7Z0RSQGJTC3BXAA9.name","ns":"org-data"},{"crowdinId":2077137,"key":"st-stephens-episcopal-church.oeml_01H299KE781P1EX7001DP9D86C.description","ns":"org-data"},{"crowdinId":2076963,"key":"san-antonio-gender-association-saga.attribute.atts_01H29ENG4W5T093JN004NM6170","ns":"org-data"},{"crowdinId":2077141,"key":"st-stephens-episcopal-church.ophn_01H299KE77JKDNJGXFQSP357CJ.description","ns":"org-data"},{"crowdinId":2076971,"key":"san-antonio-gender-association-saga.osvc_01H299KE737WYZYZHKBVMQ5VN2.name","ns":"org-data"},{"crowdinId":2076961,"key":"san-antonio-gender-association-saga.attribute.atts_01H29ENG4VNADWW2SW49CMTPGM","ns":"org-data"},{"crowdinId":2077143,"key":"st-stephens-episcopal-church.osvc_01H299KE78P14QY2A7TXQX1B9E.description","ns":"org-data"},{"crowdinId":2077119,"key":"st-stephens-episcopal-church.attribute.atts_01H29ENG51M5R6Y15AAXKTG8P8","ns":"org-data"},{"crowdinId":2077115,"key":"st-stephens-episcopal-church.attribute.atts_01H29ENG50FXVYBR43FS69HCZ9","ns":"org-data"},{"crowdinId":2077147,"key":"st-stephens-episcopal-church.osvc_01H299KE7A46R0TZFFH0H27C1Y.description","ns":"org-data"},{"crowdinId":2077145,"key":"st-stephens-episcopal-church.osvc_01H299KE78P14QY2A7TXQX1B9E.name","ns":"org-data"},{"crowdinId":2077121,"key":"st-stephens-episcopal-church.attribute.atts_01H29ENG52S1W4R1DN2BBXRT5R","ns":"org-data"},{"crowdinId":2077117,"key":"st-stephens-episcopal-church.attribute.atts_01H29ENG517DTHQSK797T6YTP1","ns":"org-data"},{"crowdinId":2077149,"key":"st-stephens-episcopal-church.osvc_01H299KE7A46R0TZFFH0H27C1Y.name","ns":"org-data"},{"crowdinId":2077151,"key":"st-stephens-episcopal-church.osvc_01H299KE7C1HNFP8SX2DA7YGNV.description","ns":"org-data"},{"crowdinId":2077123,"key":"st-stephens-episcopal-church.attribute.atts_01H29ENG53QMC45CPR4R0KR4QT","ns":"org-data"},{"crowdinId":2077153,"key":"st-stephens-episcopal-church.osvc_01H299KE7C1HNFP8SX2DA7YGNV.name","ns":"org-data"},{"crowdinId":2076733,"key":"reclaimed-divergence.attribute.atts_01H29ENG59T5JZ8H60BKSX8XGE","ns":"org-data"},{"crowdinId":2076731,"key":"reclaimed-divergence.attribute.atts_01H29ENG58ZVHTBTMZGST1RHA5","ns":"org-data"},{"crowdinId":2076739,"key":"reclaimed-divergence.osvc_01H299KE7JHVH636JTECHJV8Z1.description","ns":"org-data"},{"crowdinId":2077131,"key":"st-stephens-episcopal-church.attribute.atts_01H29ENG55GVS0BBETW9THAHRG","ns":"org-data"},{"crowdinId":2077127,"key":"st-stephens-episcopal-church.attribute.atts_01H29ENG54GJN0AZ4ZQJ4NKQZJ","ns":"org-data"},{"crowdinId":2077125,"key":"st-stephens-episcopal-church.attribute.atts_01H29ENG54FYD00YT8ZXZGFF46","ns":"org-data"},{"crowdinId":2077129,"key":"st-stephens-episcopal-church.attribute.atts_01H29ENG54X2X1D32RMQYMPX7B","ns":"org-data"},{"crowdinId":2076741,"key":"reclaimed-divergence.osvc_01H299KE7JHVH636JTECHJV8Z1.name","ns":"org-data"},{"crowdinId":2076735,"key":"reclaimed-divergence.attribute.atts_01H29ENG5A6VH9RG33NX1XNZ9P","ns":"org-data"},{"crowdinId":2073695,"key":"balsam-pine-birthing.ophn_01H299KE7PB2BN88QVG6KTMKTR.description","ns":"org-data"},{"crowdinId":2073693,"key":"balsam-pine-birthing.oeml_01H299KE7PV1FJ1NBZNFM11GSY.description","ns":"org-data"},{"crowdinId":2073697,"key":"balsam-pine-birthing.osvc_01H299KE7QKCACK6JQRA2EZR72.description","ns":"org-data"},{"crowdinId":2073677,"key":"balsam-pine-birthing.attribute.atts_01H29ENG5EH4QSQ05YWWNJ1YB1","ns":"org-data"},{"crowdinId":2073679,"key":"balsam-pine-birthing.attribute.atts_01H29ENG5EJEWSZJ7GDQSN4JJ9","ns":"org-data"},{"crowdinId":2073699,"key":"balsam-pine-birthing.osvc_01H299KE7QKCACK6JQRA2EZR72.name","ns":"org-data"},{"crowdinId":2073701,"key":"balsam-pine-birthing.osvc_01H299KE7SEPXS6C88ZGGYTRZQ.description","ns":"org-data"},{"crowdinId":2073703,"key":"balsam-pine-birthing.osvc_01H299KE7SEPXS6C88ZGGYTRZQ.name","ns":"org-data"},{"crowdinId":2073685,"key":"balsam-pine-birthing.attribute.atts_01H29ENG5GRG4Z2RR6D2TXSX9R","ns":"org-data"},{"crowdinId":2073681,"key":"balsam-pine-birthing.attribute.atts_01H29ENG5FBW6W04SXZFEY9NG5","ns":"org-data"},{"crowdinId":2075949,"key":"planned-parenthood-central-massachusetts-health-center.ophn_01H299KE82ZG95GAMRN1EH2PED.description","ns":"org-data"},{"crowdinId":2073705,"key":"balsam-pine-birthing.osvc_01H299KE7V7KD4B0EJJBP4TMVS.description","ns":"org-data"},{"crowdinId":2073707,"key":"balsam-pine-birthing.osvc_01H299KE7V7KD4B0EJJBP4TMVS.name","ns":"org-data"},{"crowdinId":2075951,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE853MXVDNW80ZSJCQ2W.description","ns":"org-data"},{"crowdinId":2073683,"key":"balsam-pine-birthing.attribute.atts_01H29ENG5GNEE0545TMZBVKM6Q","ns":"org-data"},{"crowdinId":2075947,"key":"planned-parenthood-central-massachusetts-health-center.ophn_01H299KE826KTNVS8J7JF4X7ZG.description","ns":"org-data"},{"crowdinId":2073687,"key":"balsam-pine-birthing.attribute.atts_01H29ENG5HJAHK2DF7VS7HQTSR","ns":"org-data"},{"crowdinId":2073689,"key":"balsam-pine-birthing.attribute.atts_01H29ENG5JHK5TF9DZSCH1D9YJ","ns":"org-data"},{"crowdinId":2075901,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG5S6V68JEN8H1C3X862","ns":"org-data"},{"crowdinId":2075905,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG5TYJF58YC75V4ZNMBY","ns":"org-data"},{"crowdinId":2075903,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG5TPA40ZD5H605BE11T","ns":"org-data"},{"crowdinId":2075907,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG5V7GRCXR0AADJYK08R","ns":"org-data"},{"crowdinId":2075953,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE853MXVDNW80ZSJCQ2W.name","ns":"org-data"},{"crowdinId":2075909,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG5WVTX97W14BMPRHDSR","ns":"org-data"},{"crowdinId":2075955,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE8C0B8A41G8KCWQ1RKJ.description","ns":"org-data"},{"crowdinId":2075959,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE8F3FP6Y9JZ5B75XSSC.description","ns":"org-data"},{"crowdinId":2075913,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG5XNATG7BKRBTS3BVBJ","ns":"org-data"},{"crowdinId":2075911,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG5X7540MPAQYHTEFQ2R","ns":"org-data"},{"crowdinId":2075429,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEE9B1EJ5PN4DQM3XWEQ.name","ns":"org-data"},{"crowdinId":2075957,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE8C0B8A41G8KCWQ1RKJ.name","ns":"org-data"},{"crowdinId":2075923,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG61V69DTJKEC1V6PKX8","ns":"org-data"},{"crowdinId":2075961,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE8F3FP6Y9JZ5B75XSSC.name","ns":"org-data"},{"crowdinId":2075963,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE8J62F3J44379ZZ9ZBM.description","ns":"org-data"},{"crowdinId":2075927,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG62AZQR8TR73QYRJRGN","ns":"org-data"},{"crowdinId":2075919,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG5ZYB3W4TAEFE8EZPXC","ns":"org-data"},{"crowdinId":2075917,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG5ZTJCHP1E3KCYH531D","ns":"org-data"},{"crowdinId":2075921,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG601DEPC0R7MSEBWH0A","ns":"org-data"},{"crowdinId":2075915,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG5Z2SXF8ZGSZ7MN28WW","ns":"org-data"},{"crowdinId":2075925,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG628DRDJ694G1BJVHZZ","ns":"org-data"},{"crowdinId":2075929,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG63T5NK6HKKM5DBK3W6","ns":"org-data"},{"crowdinId":2075967,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE8NVW864Z7KC3NKEWGC.description","ns":"org-data"},{"crowdinId":2075965,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE8J62F3J44379ZZ9ZBM.name","ns":"org-data"},{"crowdinId":2075931,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG64A1WMFPHTNKT10NPA","ns":"org-data"},{"crowdinId":2075933,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG650YNJCVSH5Q0EM2BG","ns":"org-data"},{"crowdinId":2075935,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG65RMRWA65P6RJGF4VG","ns":"org-data"},{"crowdinId":2075943,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG68SEKE5DYA4CDQ1XRX","ns":"org-data"},{"crowdinId":2075969,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE8NVW864Z7KC3NKEWGC.name","ns":"org-data"},{"crowdinId":2075937,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG66DPAH13ETZXJFVC13","ns":"org-data"},{"crowdinId":2075971,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE8RHEEVWA7AZZB31P7C.description","ns":"org-data"},{"crowdinId":2075939,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG67WV6QDB0VCDHZQPZC","ns":"org-data"},{"crowdinId":2076155,"key":"planned-parenthood-western-massachusetts-health-center.ophn_01H299KE8YW9A9CM06HSRHJ3CW.description","ns":"org-data"},{"crowdinId":2076099,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6FSCFVYC5ZA2B3ACFM","ns":"org-data"},{"crowdinId":2076105,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6G8ZV1BBK0X87SFYVZ","ns":"org-data"},{"crowdinId":2076157,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE90F6BYP2P958XC1XR1.description","ns":"org-data"},{"crowdinId":2076097,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6FH5KB4D9CD2MY51RZ","ns":"org-data"},{"crowdinId":2075973,"key":"planned-parenthood-central-massachusetts-health-center.osvc_01H299KE8RHEEVWA7AZZB31P7C.name","ns":"org-data"},{"crowdinId":2076153,"key":"planned-parenthood-western-massachusetts-health-center.ophn_01H299KE8XX7XRV9WGEX1PMXPR.description","ns":"org-data"},{"crowdinId":2076257,"key":"pride-center-west-texas.attribute.atts_01H29ENG8FB106FM0B8WXXA3CQ","ns":"org-data"},{"crowdinId":2075941,"key":"planned-parenthood-central-massachusetts-health-center.attribute.atts_01H29ENG6851KEQ4W3V6054YG8","ns":"org-data"},{"crowdinId":2076101,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6G2ZRFWAP3NNHG760P","ns":"org-data"},{"crowdinId":2076103,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6G5KZ61EV9MM60JWA6","ns":"org-data"},{"crowdinId":2076159,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE90F6BYP2P958XC1XR1.name","ns":"org-data"},{"crowdinId":2076111,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6J8XX0S4KHX6RXAM7X","ns":"org-data"},{"crowdinId":2076107,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6HX9NMPF47DE5ZKBCW","ns":"org-data"},{"crowdinId":2076161,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE94RSBT5J0Q50Q7W044.description","ns":"org-data"},{"crowdinId":2076115,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6QF7N0B7787VPFGSDZ","ns":"org-data"},{"crowdinId":2076119,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6RZV2JSKM4E4T9B8XY","ns":"org-data"},{"crowdinId":2076113,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6QAB5JG9RAYQPX3KVS","ns":"org-data"},{"crowdinId":2076109,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6J6W645MSSES7VSJCD","ns":"org-data"},{"crowdinId":2076117,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6RF7DP2D742QXKMKW2","ns":"org-data"},{"crowdinId":2076165,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE98B62TY15NE2WVV2JD.description","ns":"org-data"},{"crowdinId":2076167,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE98B62TY15NE2WVV2JD.name","ns":"org-data"},{"crowdinId":2076169,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE9AAKT0BMEC84FD5F45.description","ns":"org-data"},{"crowdinId":2076129,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6XH0XD089EM84TRCAA","ns":"org-data"},{"crowdinId":2076121,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6T4VSC68CTR6K79XCZ","ns":"org-data"},{"crowdinId":2076125,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6TKAKQ0GXZ418RH21Q","ns":"org-data"},{"crowdinId":2076123,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6T4VTATWGCBPVM9F69","ns":"org-data"},{"crowdinId":2076127,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6WPTAGPCFJ1G2W5JXA","ns":"org-data"},{"crowdinId":2076163,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE94RSBT5J0Q50Q7W044.name","ns":"org-data"},{"crowdinId":2076133,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6XSRRVNYKPCZ1YM5AW","ns":"org-data"},{"crowdinId":2076131,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6XSKJ3YC89A05SWQPX","ns":"org-data"},{"crowdinId":2076171,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE9AAKT0BMEC84FD5F45.name","ns":"org-data"},{"crowdinId":2076173,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE9EYVSKQ7KCKBKR9FS8.description","ns":"org-data"},{"crowdinId":2076135,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG6Y692VCM7Q3KDZC33K","ns":"org-data"},{"crowdinId":2076139,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG70ZX9QSQYCAP1X06VZ","ns":"org-data"},{"crowdinId":2076137,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG70K5XXVK5XD8VDSANM","ns":"org-data"},{"crowdinId":2076143,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG71Y3C8AYMNH55PHTKR","ns":"org-data"},{"crowdinId":2076175,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE9EYVSKQ7KCKBKR9FS8.name","ns":"org-data"},{"crowdinId":2076141,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG71AP48ASNQ18MV012F","ns":"org-data"},{"crowdinId":2076177,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE9G3GFY39DTN176K5KJ.description","ns":"org-data"},{"crowdinId":2076147,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG73XGT2PHS2DXVVBZ8D","ns":"org-data"},{"crowdinId":2076145,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG7343QA6EMEX0F0FW36","ns":"org-data"},{"crowdinId":2075975,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7AB03FZSBGM4ED7AA5","ns":"org-data"},{"crowdinId":2076029,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KE9R0NY12JFCZ06XZR5P.description","ns":"org-data"},{"crowdinId":2075977,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7ARJVJFD6GN93RW2ZB","ns":"org-data"},{"crowdinId":2076179,"key":"planned-parenthood-western-massachusetts-health-center.osvc_01H299KE9G3GFY39DTN176K5KJ.name","ns":"org-data"},{"crowdinId":2075979,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7AYFE0DB0HAY3ZPTGN","ns":"org-data"},{"crowdinId":2076149,"key":"planned-parenthood-western-massachusetts-health-center.attribute.atts_01H29ENG74EGD8VKZWK9ZW9V4S","ns":"org-data"},{"crowdinId":2076025,"key":"planned-parenthood-greater-boston-health-center.ophn_01H299KE9N4N9SEZNN2XHNAW7G.description","ns":"org-data"},{"crowdinId":2076031,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KE9R0NY12JFCZ06XZR5P.name","ns":"org-data"},{"crowdinId":2076027,"key":"planned-parenthood-greater-boston-health-center.ophn_01H299KE9P9Q8J5155ANQJKZT3.description","ns":"org-data"},{"crowdinId":2075983,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7B965M87MH44YRS2Z3","ns":"org-data"},{"crowdinId":2075981,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7B49EECM95M6KA5B64","ns":"org-data"},{"crowdinId":2076033,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KE9V9XKEGJTER8MKW8AZ.description","ns":"org-data"},{"crowdinId":2075985,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7C2S56AT10NSZ6H4CE","ns":"org-data"},{"crowdinId":2075991,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7DYRRMS4S4P2VJZYR6","ns":"org-data"},{"crowdinId":2075989,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7DWP0N2TRX89QVEGM5","ns":"org-data"},{"crowdinId":2075987,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7D2W9V61VN7T50QPFQ","ns":"org-data"},{"crowdinId":2076035,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KE9V9XKEGJTER8MKW8AZ.name","ns":"org-data"},{"crowdinId":2076037,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KE9Y7Z0RSQGJTC3BXAA9.description","ns":"org-data"},{"crowdinId":2076041,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KEA1H75PWSZSM3V3G31H.description","ns":"org-data"},{"crowdinId":2075995,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7FCDN3NV7Y1RTA4RMN","ns":"org-data"},{"crowdinId":2076003,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7JN358Q4XZP4BRCMS7","ns":"org-data"},{"crowdinId":2076043,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KEA1H75PWSZSM3V3G31H.name","ns":"org-data"},{"crowdinId":2076007,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7KFV5Q43S3B9WE5QG2","ns":"org-data"},{"crowdinId":2075999,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7HJDSTFGV4CRFZFNMX","ns":"org-data"},{"crowdinId":2075993,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7F4W2MPP2G2DQD23AJ","ns":"org-data"},{"crowdinId":2076005,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7JXQ6ATF37T9Y73T3E","ns":"org-data"},{"crowdinId":2076045,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KEA4X4DDKY80GFPMB03X.description","ns":"org-data"},{"crowdinId":2076001,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7JFZYB5116THAXAZCV","ns":"org-data"},{"crowdinId":2075997,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7GTSCTBGYPA28X9H41","ns":"org-data"},{"crowdinId":2076011,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7N6E6G8J4BZAFNF8J6","ns":"org-data"},{"crowdinId":2076009,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7N5AZHKS4MNBND7PXM","ns":"org-data"},{"crowdinId":2076013,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7P680TYHZFKGHCGRPM","ns":"org-data"},{"crowdinId":2076015,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7PX689EFSR05AH8EDX","ns":"org-data"},{"crowdinId":2076047,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KEA4X4DDKY80GFPMB03X.name","ns":"org-data"},{"crowdinId":2076019,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7RP1TYRHX4Q5NYQWQQ","ns":"org-data"},{"crowdinId":2076049,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KEA7V97X3748TBYE8ZFY.description","ns":"org-data"},{"crowdinId":2076021,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7RYZ84DC15S6K5NFXC","ns":"org-data"},{"crowdinId":2076017,"key":"planned-parenthood-greater-boston-health-center.attribute.atts_01H29ENG7R5TMS05CFM7QXH6Q8","ns":"org-data"},{"crowdinId":2076277,"key":"pride-center-west-texas.oeml_01H299KEACWWQ6Z28RAZCYAZM1.description","ns":"org-data"},{"crowdinId":2076051,"key":"planned-parenthood-greater-boston-health-center.osvc_01H299KEA7V97X3748TBYE8ZFY.name","ns":"org-data"},{"crowdinId":2076247,"key":"pride-center-west-texas.attribute.atts_01H29ENG8955YJXSEKD9W804FT","ns":"org-data"},{"crowdinId":2076283,"key":"pride-center-west-texas.osvc_01H299KEAMZQ563T4HMWTRGYP8.name","ns":"org-data"},{"crowdinId":2076251,"key":"pride-center-west-texas.attribute.atts_01H29ENG8AFFPDQJV5WQR5QFH3","ns":"org-data"},{"crowdinId":2076275,"key":"pride-center-west-texas.oeml_01H299KEAC8DS161ZMVAE8CZ21.description","ns":"org-data"},{"crowdinId":2076245,"key":"pride-center-west-texas.attribute.atts_01H29ENG84Z36S6ZA6GM57ET4C","ns":"org-data"},{"crowdinId":2076281,"key":"pride-center-west-texas.osvc_01H299KEAMZQ563T4HMWTRGYP8.description","ns":"org-data"},{"crowdinId":2076249,"key":"pride-center-west-texas.attribute.atts_01H29ENG897J0AZ5VCRR53NSDS","ns":"org-data"},{"crowdinId":2076279,"key":"pride-center-west-texas.ophn_01H299KEACRH0YEH4FBFHGW4Y7.description","ns":"org-data"},{"crowdinId":2076287,"key":"pride-center-west-texas.osvc_01H299KEATPKWVHEMH9ZVEAMHB.name","ns":"org-data"},{"crowdinId":2076285,"key":"pride-center-west-texas.osvc_01H299KEATPKWVHEMH9ZVEAMHB.description","ns":"org-data"},{"crowdinId":2076243,"key":"pride-center-west-texas.attribute.atts_01H29ENG84NK8SEAY2X424KMK4","ns":"org-data"},{"crowdinId":2076253,"key":"pride-center-west-texas.attribute.atts_01H29ENG8E7D7SDS32ABRARF9G","ns":"org-data"},{"crowdinId":2076289,"key":"pride-center-west-texas.osvc_01H299KEAZHMNM5D9YEWZ2632X.description","ns":"org-data"},{"crowdinId":2076255,"key":"pride-center-west-texas.attribute.atts_01H29ENG8EA3A405MCJBCBEN9M","ns":"org-data"},{"crowdinId":2076259,"key":"pride-center-west-texas.attribute.atts_01H29ENG8FYYMVDV4DAD4XXG4C","ns":"org-data"},{"crowdinId":2074711,"key":"kind-clinic.ophn_01H299KECNB5M5HBT5X80Z3NJS.description","ns":"org-data"},{"crowdinId":2076293,"key":"pride-center-west-texas.osvc_01H299KEB5HEXKCEJGAHFRN85F.description","ns":"org-data"},{"crowdinId":2076291,"key":"pride-center-west-texas.osvc_01H299KEAZHMNM5D9YEWZ2632X.name","ns":"org-data"},{"crowdinId":2076269,"key":"pride-center-west-texas.attribute.atts_01H29ENG8YX7EYTWN4KKQNK19F","ns":"org-data"},{"crowdinId":2076265,"key":"pride-center-west-texas.attribute.atts_01H29ENG8SKCGR782T12J64XHP","ns":"org-data"},{"crowdinId":2076263,"key":"pride-center-west-texas.attribute.atts_01H29ENG8MW035SAF6BHFYJWYX","ns":"org-data"},{"crowdinId":2076295,"key":"pride-center-west-texas.osvc_01H299KEB5HEXKCEJGAHFRN85F.name","ns":"org-data"},{"crowdinId":2076261,"key":"pride-center-west-texas.attribute.atts_01H29ENG8MT1G6K52664PJ6XCQ","ns":"org-data"},{"crowdinId":2076299,"key":"pride-center-west-texas.osvc_01H299KEBGTPRWZP38YATW6YYJ.name","ns":"org-data"},{"crowdinId":2076301,"key":"pride-center-west-texas.osvc_01H299KEBMT4TXMA7W8B1YNRRY.description","ns":"org-data"},{"crowdinId":2076267,"key":"pride-center-west-texas.attribute.atts_01H29ENG8X28XX3JXZG6AEG7FN","ns":"org-data"},{"crowdinId":2076271,"key":"pride-center-west-texas.attribute.atts_01H29ENG8YZFWRH89PYF1WDCC2","ns":"org-data"},{"crowdinId":2076297,"key":"pride-center-west-texas.osvc_01H299KEBGTPRWZP38YATW6YYJ.description","ns":"org-data"},{"crowdinId":2076303,"key":"pride-center-west-texas.osvc_01H299KEBMT4TXMA7W8B1YNRRY.name","ns":"org-data"},{"crowdinId":2077161,"key":"team-tlc-nyc.oeml_01H299KEBTN9DZWG84M0G4DPFM.description","ns":"org-data"},{"crowdinId":2077163,"key":"team-tlc-nyc.osvc_01H299KEBVE0C0M1R9P7CMXF3G.description","ns":"org-data"},{"crowdinId":2077155,"key":"team-tlc-nyc.attribute.atts_01H29ENG94SJYB9RM9ZJFESDQ1","ns":"org-data"},{"crowdinId":2077165,"key":"team-tlc-nyc.osvc_01H299KEBVE0C0M1R9P7CMXF3G.name","ns":"org-data"},{"crowdinId":2077157,"key":"team-tlc-nyc.attribute.atts_01H29ENG957PNWPB5612MR0AYS","ns":"org-data"},{"crowdinId":2076399,"key":"queer-therapy-boston.ophn_01H299KEBZ8DVSG52Y5EY83M2J.description","ns":"org-data"},{"crowdinId":2076397,"key":"queer-therapy-boston.oeml_01H299KEBZ0617VNJGJWRG5T59.description","ns":"org-data"},{"crowdinId":2076363,"key":"queer-therapy-boston.attribute.atts_01H29ENG98WNWDYVEQV77DZD3W","ns":"org-data"},{"crowdinId":2076401,"key":"queer-therapy-boston.osvc_01H299KEC0MRBCN9RGRGVVM2FY.description","ns":"org-data"},{"crowdinId":2076377,"key":"queer-therapy-boston.attribute.atts_01H29ENG9CG74EPEDFDQ50SX0F","ns":"org-data"},{"crowdinId":2076365,"key":"queer-therapy-boston.attribute.atts_01H29ENG99828CFMADPKJPETWT","ns":"org-data"},{"crowdinId":2076407,"key":"queer-therapy-boston.osvc_01H299KEC2JDB0PSYJR94ZYHY8.name","ns":"org-data"},{"crowdinId":2076369,"key":"queer-therapy-boston.attribute.atts_01H29ENG9AN5EP36E8E08TBT0P","ns":"org-data"},{"crowdinId":2076371,"key":"queer-therapy-boston.attribute.atts_01H29ENG9BN78EZXCG9QJQ04ZP","ns":"org-data"},{"crowdinId":2076367,"key":"queer-therapy-boston.attribute.atts_01H29ENG999Q0FHTW15QT4P0FG","ns":"org-data"},{"crowdinId":2076403,"key":"queer-therapy-boston.osvc_01H299KEC0MRBCN9RGRGVVM2FY.name","ns":"org-data"},{"crowdinId":2076409,"key":"queer-therapy-boston.osvc_01H299KEC4NRQE5C15W0R42SAA.description","ns":"org-data"},{"crowdinId":2076379,"key":"queer-therapy-boston.attribute.atts_01H29ENG9DWXKC7880N2XZD4KD","ns":"org-data"},{"crowdinId":2076405,"key":"queer-therapy-boston.osvc_01H299KEC2JDB0PSYJR94ZYHY8.description","ns":"org-data"},{"crowdinId":2076383,"key":"queer-therapy-boston.attribute.atts_01H29ENG9ESKM3FRQ4R8Q2537X","ns":"org-data"},{"crowdinId":2076375,"key":"queer-therapy-boston.attribute.atts_01H29ENG9C8BVC7A5EXHF8BZSY","ns":"org-data"},{"crowdinId":2076373,"key":"queer-therapy-boston.attribute.atts_01H29ENG9BS9CCFZQZYPZ9G0NR","ns":"org-data"},{"crowdinId":2076381,"key":"queer-therapy-boston.attribute.atts_01H29ENG9ERYNFSV92WH6NGN5W","ns":"org-data"},{"crowdinId":2076411,"key":"queer-therapy-boston.osvc_01H299KEC4NRQE5C15W0R42SAA.name","ns":"org-data"},{"crowdinId":2076385,"key":"queer-therapy-boston.attribute.atts_01H29ENG9F7Z18W1Z4WSJD5264","ns":"org-data"},{"crowdinId":2076413,"key":"queer-therapy-boston.osvc_01H299KEC66C1ZZ0BYENYEWCS3.description","ns":"org-data"},{"crowdinId":2076387,"key":"queer-therapy-boston.attribute.atts_01H29ENG9GA7NFZDEH58HF228F","ns":"org-data"},{"crowdinId":2076391,"key":"queer-therapy-boston.attribute.atts_01H29ENG9GPQB52E78GK34QJQ4","ns":"org-data"},{"crowdinId":2076389,"key":"queer-therapy-boston.attribute.atts_01H29ENG9GFPPSXA6VJN0P85EB","ns":"org-data"},{"crowdinId":2074381,"key":"glsen.attribute.atts_01H29ENG9MAJB5WW7YN551TP95","ns":"org-data"},{"crowdinId":2074405,"key":"glsen.osvc_01H299KECCXYM5PNM4NPA3HANQ.description","ns":"org-data"},{"crowdinId":2076393,"key":"queer-therapy-boston.attribute.atts_01H29ENG9HQMNKTNPJ0D0REYCD","ns":"org-data"},{"crowdinId":2074383,"key":"glsen.attribute.atts_01H29ENG9NQ1WPPTEGJCQC7EV5","ns":"org-data"},{"crowdinId":2074387,"key":"glsen.attribute.atts_01H29ENG9PVA8X2Q758FGQ73EE","ns":"org-data"},{"crowdinId":2074401,"key":"glsen.oeml_01H299KECANM9VTEX6ECQ6Z534.description","ns":"org-data"},{"crowdinId":2074409,"key":"glsen.osvc_01H299KECD3K5SCH4YDJS692SX.description","ns":"org-data"},{"crowdinId":2074403,"key":"glsen.ophn_01H299KECAH9YB7E2CYKA52KDP.description","ns":"org-data"},{"crowdinId":2076415,"key":"queer-therapy-boston.osvc_01H299KEC66C1ZZ0BYENYEWCS3.name","ns":"org-data"},{"crowdinId":2074407,"key":"glsen.osvc_01H299KECCXYM5PNM4NPA3HANQ.name","ns":"org-data"},{"crowdinId":2074411,"key":"glsen.osvc_01H299KECD3K5SCH4YDJS692SX.name","ns":"org-data"},{"crowdinId":2074389,"key":"glsen.attribute.atts_01H29ENG9QG6FMJRW0000ETPV5","ns":"org-data"},{"crowdinId":2074385,"key":"glsen.attribute.atts_01H29ENG9P5X6A88E9225TN25F","ns":"org-data"},{"crowdinId":2074413,"key":"glsen.osvc_01H299KECFR5GDRVEPMP1G70E8.description","ns":"org-data"},{"crowdinId":2074415,"key":"glsen.osvc_01H299KECFR5GDRVEPMP1G70E8.name","ns":"org-data"},{"crowdinId":2074417,"key":"glsen.osvc_01H299KECGX07Z5KNX067VTBK1.description","ns":"org-data"},{"crowdinId":2074395,"key":"glsen.attribute.atts_01H29ENG9Y6P0P5HZ7G5E3RHKN","ns":"org-data"},{"crowdinId":2074391,"key":"glsen.attribute.atts_01H29ENG9RJ569WG41NFY6T4D8","ns":"org-data"},{"crowdinId":2074419,"key":"glsen.osvc_01H299KECGX07Z5KNX067VTBK1.name","ns":"org-data"},{"crowdinId":2074393,"key":"glsen.attribute.atts_01H29ENG9XA48CM9JXGTVN19JT","ns":"org-data"},{"crowdinId":2074679,"key":"kind-clinic.attribute.atts_01H29ENGA5MH9E0QWYBKH67AP7","ns":"org-data"},{"crowdinId":2074713,"key":"kind-clinic.ophn_01H299KECNHW9QMRZ3TP5AQMG4.description","ns":"org-data"},{"crowdinId":2074671,"key":"kind-clinic.attribute.atts_01H29ENGA36KWSJKTWZSKFPCQS","ns":"org-data"},{"crowdinId":2074397,"key":"glsen.attribute.atts_01H29ENG9YE6ZHS5K6J18T4ZVM","ns":"org-data"},{"crowdinId":2074717,"key":"kind-clinic.osvc_01H299KECPWAQ2Y1HJ3PAAXEWX.description","ns":"org-data"},{"crowdinId":2074715,"key":"kind-clinic.ophn_01H299KECNZFMZMQ0SD8M5YKSC.description","ns":"org-data"},{"crowdinId":2074675,"key":"kind-clinic.attribute.atts_01H29ENGA4A4QAJ8C3AZ4VHEFB","ns":"org-data"},{"crowdinId":2074721,"key":"kind-clinic.osvc_01H299KECRF7DDTXHDW5PAVKWM.description","ns":"org-data"},{"crowdinId":2074673,"key":"kind-clinic.attribute.atts_01H29ENGA3BACW6MMPBB1Q2299","ns":"org-data"},{"crowdinId":2074719,"key":"kind-clinic.osvc_01H299KECPWAQ2Y1HJ3PAAXEWX.name","ns":"org-data"},{"crowdinId":2074677,"key":"kind-clinic.attribute.atts_01H29ENGA5602NGBD1WHC1X8QD","ns":"org-data"},{"crowdinId":2074723,"key":"kind-clinic.osvc_01H299KECRF7DDTXHDW5PAVKWM.name","ns":"org-data"},{"crowdinId":2074683,"key":"kind-clinic.attribute.atts_01H29ENGA79Z1TF7YWK1D4XVWP","ns":"org-data"},{"crowdinId":2074681,"key":"kind-clinic.attribute.atts_01H29ENGA6EYE4RSX5HA4Z69KP","ns":"org-data"},{"crowdinId":2074725,"key":"kind-clinic.osvc_01H299KECVKSTEQZ3SS3HJ59TH.description","ns":"org-data"},{"crowdinId":2074685,"key":"kind-clinic.attribute.atts_01H29ENGA86BYJEMGMC6WEY3F1","ns":"org-data"},{"crowdinId":2074727,"key":"kind-clinic.osvc_01H299KECVKSTEQZ3SS3HJ59TH.name","ns":"org-data"},{"crowdinId":2074687,"key":"kind-clinic.attribute.atts_01H29ENGA8X10CMF17A3TP1RRQ","ns":"org-data"},{"crowdinId":2074729,"key":"kind-clinic.osvc_01H299KECXF6S5BGCRT767KYTA.description","ns":"org-data"},{"crowdinId":2074689,"key":"kind-clinic.attribute.atts_01H29ENGA9KZKZ8M61YHFDDQ77","ns":"org-data"},{"crowdinId":2074737,"key":"kind-clinic.osvc_01H299KED2W1T4XF6JEE0G84HX.description","ns":"org-data"},{"crowdinId":2074733,"key":"kind-clinic.osvc_01H299KECZV95FAKXAA9A0RBNR.description","ns":"org-data"},{"crowdinId":2074701,"key":"kind-clinic.attribute.atts_01H29ENGADKC3RJGV4R0SSMA6N","ns":"org-data"},{"crowdinId":2074691,"key":"kind-clinic.attribute.atts_01H29ENGAA3QRZFV1N69CDK8CX","ns":"org-data"},{"crowdinId":2074735,"key":"kind-clinic.osvc_01H299KECZV95FAKXAA9A0RBNR.name","ns":"org-data"},{"crowdinId":2074699,"key":"kind-clinic.attribute.atts_01H29ENGACCTHNMMR0E26WY7D6","ns":"org-data"},{"crowdinId":2074693,"key":"kind-clinic.attribute.atts_01H29ENGAAP0VGWFY12EQAWFY7","ns":"org-data"},{"crowdinId":2074731,"key":"kind-clinic.osvc_01H299KECXF6S5BGCRT767KYTA.name","ns":"org-data"},{"crowdinId":2074697,"key":"kind-clinic.attribute.atts_01H29ENGAC5SJ196QT6DVYG5ZT","ns":"org-data"},{"crowdinId":2074695,"key":"kind-clinic.attribute.atts_01H29ENGAB5JSCEVNDATGFVEPV","ns":"org-data"},{"crowdinId":2074703,"key":"kind-clinic.attribute.atts_01H29ENGAEYT6H60XXV1JZGQHF","ns":"org-data"},{"crowdinId":2074739,"key":"kind-clinic.osvc_01H299KED2W1T4XF6JEE0G84HX.name","ns":"org-data"},{"crowdinId":2074705,"key":"kind-clinic.attribute.atts_01H29ENGAEZEXATNZ0WQSMRZ33","ns":"org-data"},{"crowdinId":2074707,"key":"kind-clinic.attribute.atts_01H29ENGAF3C0K6HVR7Z9D22S3","ns":"org-data"},{"crowdinId":2077001,"key":"save-our-sisters-united-inc-sosu.ophn_01H299KED64M9F8HPPNF9RSBYK.description","ns":"org-data"},{"crowdinId":2076999,"key":"save-our-sisters-united-inc-sosu.oeml_01H299KED7681SNGZGD9YMSCVD.description","ns":"org-data"},{"crowdinId":2077003,"key":"save-our-sisters-united-inc-sosu.osvc_01H299KED7M824F448F52EB1BY.description","ns":"org-data"},{"crowdinId":2076973,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGAK9R6QYWV391HJ43XP","ns":"org-data"},{"crowdinId":2076977,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGAMVTCRVS06F5JBWW61","ns":"org-data"},{"crowdinId":2076975,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGAM8XYTCVQAHVXQ3BTK","ns":"org-data"},{"crowdinId":2076987,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGAQ8BEYVTHNFGFR57B9","ns":"org-data"},{"crowdinId":2076991,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGARGM089A4ZF5DVXX3A","ns":"org-data"},{"crowdinId":2077005,"key":"save-our-sisters-united-inc-sosu.osvc_01H299KED7M824F448F52EB1BY.name","ns":"org-data"},{"crowdinId":2076981,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGANM06NCEWADSRAV9PS","ns":"org-data"},{"crowdinId":2077011,"key":"save-our-sisters-united-inc-sosu.osvc_01H299KEDC3A5JC5Z0EFM1VGR0.description","ns":"org-data"},{"crowdinId":2077009,"key":"save-our-sisters-united-inc-sosu.osvc_01H299KEDAPX7QKB537EVAX8KG.name","ns":"org-data"},{"crowdinId":2076993,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGARPH6CVK0E0CTY9X70","ns":"org-data"},{"crowdinId":2076983,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGAPBS9JJG6SKYPH7DDD","ns":"org-data"},{"crowdinId":2076979,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGANAM5FD8FY349JNZZ2","ns":"org-data"},{"crowdinId":2077007,"key":"save-our-sisters-united-inc-sosu.osvc_01H299KEDAPX7QKB537EVAX8KG.description","ns":"org-data"},{"crowdinId":2076985,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGAPYK047PRW9FAX6VP0","ns":"org-data"},{"crowdinId":2076995,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGAS3CRPG1ETC6MZ8RT7","ns":"org-data"},{"crowdinId":2076989,"key":"save-our-sisters-united-inc-sosu.attribute.atts_01H29ENGAREQ9SMR16GWDCJJCY","ns":"org-data"},{"crowdinId":2077013,"key":"save-our-sisters-united-inc-sosu.osvc_01H299KEDC3A5JC5Z0EFM1VGR0.name","ns":"org-data"},{"crowdinId":2075393,"key":"milwaukee-lgbt-community-center-mkelgbt.ophn_01H299KEDGCP94WG4AS21D7X6B.description","ns":"org-data"},{"crowdinId":2075311,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGAZCXN9SSH4H2K4ZTF0","ns":"org-data"},{"crowdinId":2075391,"key":"milwaukee-lgbt-community-center-mkelgbt.oeml_01H299KEDGD7337W8YAN9ZNRE3.description","ns":"org-data"},{"crowdinId":2075307,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGAYTVTRM4GHK4DT34M0","ns":"org-data"},{"crowdinId":2075395,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDHFAR1AJ0TERNMJJSD.description","ns":"org-data"},{"crowdinId":2075305,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGAY275GENRQBGGTDS6V","ns":"org-data"},{"crowdinId":2075321,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB1EM5RCQ1FYTX5NXZ5","ns":"org-data"},{"crowdinId":2075327,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB3CJY9ZMTJP128VRMN","ns":"org-data"},{"crowdinId":2075323,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB2EM78BJ091CPPYF9G","ns":"org-data"},{"crowdinId":2075315,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB0PW0GYPS65Q5K4HZM","ns":"org-data"},{"crowdinId":2075319,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB118KW3NVCJJQW893Q","ns":"org-data"},{"crowdinId":2075313,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB0BB37Y78T7E9N0Q1B","ns":"org-data"},{"crowdinId":2075397,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDHFAR1AJ0TERNMJJSD.name","ns":"org-data"},{"crowdinId":2075309,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGAZ8XQKHK4YD0DMAAX6","ns":"org-data"},{"crowdinId":2075399,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDPRX8H16MMQSRAK82M.description","ns":"org-data"},{"crowdinId":2075317,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB0WBPCGBKYKWF6Z5H3","ns":"org-data"},{"crowdinId":2075403,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDRK6FWJTDT839HQYXX.description","ns":"org-data"},{"crowdinId":2075329,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB4Q80NXRAQG7Y23A2V","ns":"org-data"},{"crowdinId":2075401,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDPRX8H16MMQSRAK82M.name","ns":"org-data"},{"crowdinId":2075325,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB32YTB9Y08PNX6JM91","ns":"org-data"},{"crowdinId":2075331,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB52TK0GMPVQ1SZMBW9","ns":"org-data"},{"crowdinId":2075333,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB5NDYMCRDF0EPXW47W","ns":"org-data"},{"crowdinId":2075405,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDRK6FWJTDT839HQYXX.name","ns":"org-data"},{"crowdinId":2075407,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDTYNBV4CWFA7MF1AJQ.description","ns":"org-data"},{"crowdinId":2075335,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB61KJQ9RBTYDEXCHTC","ns":"org-data"},{"crowdinId":2075337,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB70CX65Q20JBZPD2YS","ns":"org-data"},{"crowdinId":2075415,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDXVTWCHXK7YEKXJFXH.description","ns":"org-data"},{"crowdinId":2075345,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB9XHJJFM2V8B7DNRDP","ns":"org-data"},{"crowdinId":2075411,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDW6CZY44J7X9D9970R.description","ns":"org-data"},{"crowdinId":2075413,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDW6CZY44J7X9D9970R.name","ns":"org-data"},{"crowdinId":2075369,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBG2JZF1ZZV2TSTGJNY","ns":"org-data"},{"crowdinId":2075409,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDTYNBV4CWFA7MF1AJQ.name","ns":"org-data"},{"crowdinId":2075343,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB93439F1XB33AVER7F","ns":"org-data"},{"crowdinId":2075417,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEDXVTWCHXK7YEKXJFXH.name","ns":"org-data"},{"crowdinId":2075347,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBA3MBNADDBAVHSHEY3","ns":"org-data"},{"crowdinId":2075339,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB7T6825K2HTMA80Q8G","ns":"org-data"},{"crowdinId":2075351,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBB6J0WWZ1N2W17AZX2","ns":"org-data"},{"crowdinId":2075349,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBAE0MJYZRMM4DPQRC1","ns":"org-data"},{"crowdinId":2075427,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEE9B1EJ5PN4DQM3XWEQ.description","ns":"org-data"},{"crowdinId":2075341,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGB82FC00GRXM4J75314","ns":"org-data"},{"crowdinId":2075419,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEE4W71775ZCH6Q4KX95.description","ns":"org-data"},{"crowdinId":2075355,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBC54667HFTQW77JPYW","ns":"org-data"},{"crowdinId":2075353,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBC2F82NN8S9NVQS15H","ns":"org-data"},{"crowdinId":2075421,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEE4W71775ZCH6Q4KX95.name","ns":"org-data"},{"crowdinId":2075359,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBDTERC3GKPJZ5DZFFD","ns":"org-data"},{"crowdinId":2075423,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEE6W62YK7QS6EQHD5RZ.description","ns":"org-data"},{"crowdinId":2075363,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBEWBW518PKTNTT24D6","ns":"org-data"},{"crowdinId":2075361,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBE7ECN2X8EDRXZJBBD","ns":"org-data"},{"crowdinId":2075431,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEEAND018QEP5809GDSW.description","ns":"org-data"},{"crowdinId":2075433,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEEAND018QEP5809GDSW.name","ns":"org-data"},{"crowdinId":2075373,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBJB7XG1SXJBZSGC0QQ","ns":"org-data"},{"crowdinId":2075367,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBFS8PTRT8669E449BR","ns":"org-data"},{"crowdinId":2075371,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBHFR2MMTEXWAEYA97V","ns":"org-data"},{"crowdinId":2075357,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBDK2PZGB2EC9DH7B2E","ns":"org-data"},{"crowdinId":2075365,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBFJQ0W7K46VVHN9X3R","ns":"org-data"},{"crowdinId":2075375,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBJWG1E0KE7T1TW0STK","ns":"org-data"},{"crowdinId":2075435,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEEBFVACMGXY3PX9SRXM.description","ns":"org-data"},{"crowdinId":2075425,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEE6W62YK7QS6EQHD5RZ.name","ns":"org-data"},{"crowdinId":2075377,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBKDV6HYMXD4BPHKT1C","ns":"org-data"},{"crowdinId":2075379,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBKJMP3F7ZAYR99594A","ns":"org-data"},{"crowdinId":2075437,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEEBFVACMGXY3PX9SRXM.name","ns":"org-data"},{"crowdinId":2075381,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBMBFA6024D2NWNEVYN","ns":"org-data"},{"crowdinId":2075385,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBNYRRSDR6CN2060XF4","ns":"org-data"},{"crowdinId":2075441,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEED9JETQHRAQ4H4Z5PW.name","ns":"org-data"},{"crowdinId":2075439,"key":"milwaukee-lgbt-community-center-mkelgbt.osvc_01H299KEED9JETQHRAQ4H4Z5PW.description","ns":"org-data"},{"crowdinId":2075383,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBNK2PM8JEFZ1N099Z1","ns":"org-data"},{"crowdinId":2073731,"key":"beyond-these-walls.osvc_01H299KEEJYBQYXPKF0GGKR303.description","ns":"org-data"},{"crowdinId":2073725,"key":"beyond-these-walls.oeml_01H299KEEHBPW05QT0SQFMHZ4J.description","ns":"org-data"},{"crowdinId":2073709,"key":"beyond-these-walls.attribute.atts_01H29ENGBS7WASKM0BXR0HJVKM","ns":"org-data"},{"crowdinId":2073729,"key":"beyond-these-walls.oeml_01H299KEEHXRFM5553W8E90GDZ.description","ns":"org-data"},{"crowdinId":2073733,"key":"beyond-these-walls.osvc_01H299KEEJYBQYXPKF0GGKR303.name","ns":"org-data"},{"crowdinId":2075387,"key":"milwaukee-lgbt-community-center-mkelgbt.attribute.atts_01H29ENGBP29XTJWXFBKGWNTV6","ns":"org-data"},{"crowdinId":2073711,"key":"beyond-these-walls.attribute.atts_01H29ENGBTMPRG471XMSXF5PKD","ns":"org-data"},{"crowdinId":2073713,"key":"beyond-these-walls.attribute.atts_01H29ENGBTZH83J647GC4A98M3","ns":"org-data"},{"crowdinId":2073727,"key":"beyond-these-walls.oeml_01H299KEEHX4VFYDQWY7EW2G6W.description","ns":"org-data"},{"crowdinId":2073715,"key":"beyond-these-walls.attribute.atts_01H29ENGBVCN8HFEH2K29C4MS9","ns":"org-data"},{"crowdinId":2073735,"key":"beyond-these-walls.osvc_01H299KEEMRZTS75ECFYQJ8Z6B.description","ns":"org-data"},{"crowdinId":2073719,"key":"beyond-these-walls.attribute.atts_01H29ENGBW9T9FBBVFSX6CBTZG","ns":"org-data"},{"crowdinId":2073717,"key":"beyond-these-walls.attribute.atts_01H29ENGBVR34DY98XB3CJZR2Y","ns":"org-data"},{"crowdinId":2073737,"key":"beyond-these-walls.osvc_01H299KEEMRZTS75ECFYQJ8Z6B.name","ns":"org-data"},{"crowdinId":2073721,"key":"beyond-these-walls.attribute.atts_01H29ENGBXWPPRCPQWME1TGXJG","ns":"org-data"},{"crowdinId":2074225,"key":"elevated-access.osvc_01H299KEES84DAC2VA0XVH935H.description","ns":"org-data"},{"crowdinId":2074213,"key":"elevated-access.attribute.atts_01H29ENGC0A5NDNZ1KXMFF5SKB","ns":"org-data"},{"crowdinId":2074223,"key":"elevated-access.ophn_01H299KEER73R0FTV9SJRB81WD.description","ns":"org-data"},{"crowdinId":2074215,"key":"elevated-access.attribute.atts_01H29ENGC0QP1ZRREEPT731PDY","ns":"org-data"},{"crowdinId":2074219,"key":"elevated-access.attribute.atts_01H29ENGC1Y4D2KGWM5WZ0Z70Q","ns":"org-data"},{"crowdinId":2074227,"key":"elevated-access.osvc_01H299KEES84DAC2VA0XVH935H.name","ns":"org-data"},{"crowdinId":2074217,"key":"elevated-access.attribute.atts_01H29ENGC1X3PGDWF5M488VFSW","ns":"org-data"},{"crowdinId":2074005,"key":"cope-community-services.ophn_01H299KEEY306AYD9MG1ZP2E19.description","ns":"org-data"},{"crowdinId":2074011,"key":"cope-community-services.ophn_01H299KEEZFNF1KJRTHDM6TXZF.description","ns":"org-data"},{"crowdinId":2074007,"key":"cope-community-services.ophn_01H299KEEYGRRZE10EG7SFCYGC.description","ns":"org-data"},{"crowdinId":2074013,"key":"cope-community-services.ophn_01H299KEEZJ8T0H76D89YFYYSJ.description","ns":"org-data"},{"crowdinId":2074015,"key":"cope-community-services.ophn_01H299KEEZV1D2REAAG00AAR76.description","ns":"org-data"},{"crowdinId":2074009,"key":"cope-community-services.ophn_01H299KEEYWE72DSF9J02R4YCA.description","ns":"org-data"},{"crowdinId":2074019,"key":"cope-community-services.ophn_01H299KEF0Q8NKK1QE0PXEEY93.description","ns":"org-data"},{"crowdinId":2074017,"key":"cope-community-services.ophn_01H299KEF0JSZ2SGN8YX01BV28.description","ns":"org-data"},{"crowdinId":2074025,"key":"cope-community-services.ophn_01H299KEF1ZRGJCYTZT8GJ01HK.description","ns":"org-data"},{"crowdinId":2074029,"key":"cope-community-services.ophn_01H299KEF2EPZZGGPSVPS70XSN.description","ns":"org-data"},{"crowdinId":2074027,"key":"cope-community-services.ophn_01H299KEF29T9H649PE7RBCMTN.description","ns":"org-data"},{"crowdinId":2074021,"key":"cope-community-services.ophn_01H299KEF1DMW8DEATTKFV7P4B.description","ns":"org-data"},{"crowdinId":2074023,"key":"cope-community-services.ophn_01H299KEF1FC7WYYXS5VWY0GAK.description","ns":"org-data"},{"crowdinId":2074033,"key":"cope-community-services.ophn_01H299KEF36EQEXADKKWJ7H023.description","ns":"org-data"},{"crowdinId":2074031,"key":"cope-community-services.ophn_01H299KEF35F97WCM3K1BFWF11.description","ns":"org-data"},{"crowdinId":2074035,"key":"cope-community-services.ophn_01H299KEF3GY3QEZ56HSABW3PM.description","ns":"org-data"},{"crowdinId":2074037,"key":"cope-community-services.ophn_01H299KEF48CRJA06SP5SPD26T.description","ns":"org-data"},{"crowdinId":2074041,"key":"cope-community-services.ophn_01H299KEF4ZX22VDJ110B0XRG5.description","ns":"org-data"},{"crowdinId":2073999,"key":"cope-community-services.attribute.atts_01H29ENGCHNZTK0A9X859SSACT","ns":"org-data"},{"crowdinId":2074039,"key":"cope-community-services.ophn_01H299KEF4FKA6XEQAR9MDV9K5.description","ns":"org-data"},{"crowdinId":2073997,"key":"cope-community-services.attribute.atts_01H29ENGCBHREBXFRT6MW6W6S8","ns":"org-data"},{"crowdinId":2074047,"key":"cope-community-services.osvc_01H299KEF6VMCQFYHNQBEXAJAN.name","ns":"org-data"},{"crowdinId":2074043,"key":"cope-community-services.ophn_01H299KEF5F994PTDKWJG2YN20.description","ns":"org-data"},{"crowdinId":2074577,"key":"hugh-lane-wellness-foundation.osvc_01H299KEFBVJQ49QYPFXYRNA74.description","ns":"org-data"},{"crowdinId":2074045,"key":"cope-community-services.osvc_01H299KEF6VMCQFYHNQBEXAJAN.description","ns":"org-data"},{"crowdinId":2074001,"key":"cope-community-services.attribute.atts_01H29ENGCHV5NTNTZA7TBP698Z","ns":"org-data"},{"crowdinId":2074573,"key":"hugh-lane-wellness-foundation.oeml_01H299KEFBK8FE3XPGJT26QGS4.description","ns":"org-data"},{"crowdinId":2074575,"key":"hugh-lane-wellness-foundation.ophn_01H299KEFBXH7KT8ENVXNYXE7G.description","ns":"org-data"},{"crowdinId":2074543,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGCP9F5SD5D7MEGR56ZW","ns":"org-data"},{"crowdinId":2074581,"key":"hugh-lane-wellness-foundation.osvc_01H299KEFEQPGYARYXH35QYNVN.description","ns":"org-data"},{"crowdinId":2074545,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGCPNYWGTKBZTWGV3D53","ns":"org-data"},{"crowdinId":2074579,"key":"hugh-lane-wellness-foundation.osvc_01H299KEFBVJQ49QYPFXYRNA74.name","ns":"org-data"},{"crowdinId":2074547,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGCQZEBHB474CJDC15HM","ns":"org-data"},{"crowdinId":2074549,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGCTJ2C0Z7YXJ1EC68H3","ns":"org-data"},{"crowdinId":2074583,"key":"hugh-lane-wellness-foundation.osvc_01H299KEFEQPGYARYXH35QYNVN.name","ns":"org-data"},{"crowdinId":2074551,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGCTRXP12XRW61NGB672","ns":"org-data"},{"crowdinId":2074553,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGCTYN1HXS0XYHCH9ZBD","ns":"org-data"},{"crowdinId":2074585,"key":"hugh-lane-wellness-foundation.osvc_01H299KEFHE4JTNXQV8MQ1YP51.description","ns":"org-data"},{"crowdinId":2074587,"key":"hugh-lane-wellness-foundation.osvc_01H299KEFHE4JTNXQV8MQ1YP51.name","ns":"org-data"},{"crowdinId":2074555,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGCX90NTPZHK91FGQTH1","ns":"org-data"},{"crowdinId":2074561,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGD1Z2WH2326MQ4DKRD1","ns":"org-data"},{"crowdinId":2074591,"key":"hugh-lane-wellness-foundation.osvc_01H299KEFMA4ADHEMS3ZTA3G93.name","ns":"org-data"},{"crowdinId":2074589,"key":"hugh-lane-wellness-foundation.osvc_01H299KEFMA4ADHEMS3ZTA3G93.description","ns":"org-data"},{"crowdinId":2074557,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGCZ7M30Y2YNA4469E5E","ns":"org-data"},{"crowdinId":2074559,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGCZYBFKEM7AWN5MC3E2","ns":"org-data"},{"crowdinId":2075673,"key":"newark-lgbtq-community-center.osvc_01H299KEGBSBAGMTMVF5XBHWQP.description","ns":"org-data"},{"crowdinId":2075617,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDNQAKVR92G0W3VQX7J","ns":"org-data"},{"crowdinId":2074593,"key":"hugh-lane-wellness-foundation.osvc_01H299KEFQP6DGT3Y7HWPT205T.description","ns":"org-data"},{"crowdinId":2074563,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGD2J2QP0P66Y6N46VE6","ns":"org-data"},{"crowdinId":2074569,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGD4QW397NCEKZ73H4W5","ns":"org-data"},{"crowdinId":2074565,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGD2NAF377F5J1PQQ5NH","ns":"org-data"},{"crowdinId":2074567,"key":"hugh-lane-wellness-foundation.attribute.atts_01H29ENGD3M41EA1ZVHF8R4VYM","ns":"org-data"},{"crowdinId":2074595,"key":"hugh-lane-wellness-foundation.osvc_01H299KEFQP6DGT3Y7HWPT205T.name","ns":"org-data"},{"crowdinId":2073925,"key":"camp-lost-boys.attribute.atts_01H29ENGD9HV7M93MDN85PYJ7Y","ns":"org-data"},{"crowdinId":2077299,"key":"the-masculine-identified-lesbians-of-color-collective-milcc.ophn_01H299KEG1J89FK79MMY4K2A95.description","ns":"org-data"},{"crowdinId":2073931,"key":"camp-lost-boys.osvc_01H299KEFXJ7VR5C18CEJ1KD7E.name","ns":"org-data"},{"crowdinId":2073923,"key":"camp-lost-boys.attribute.atts_01H29ENGD8Y6GMBPF38X4C2RG8","ns":"org-data"},{"crowdinId":2073929,"key":"camp-lost-boys.osvc_01H299KEFXJ7VR5C18CEJ1KD7E.description","ns":"org-data"},{"crowdinId":2077289,"key":"the-masculine-identified-lesbians-of-color-collective-milcc.attribute.atts_01H29ENGDD5FCH84JRH8S6BQ4V","ns":"org-data"},{"crowdinId":2077301,"key":"the-masculine-identified-lesbians-of-color-collective-milcc.osvc_01H299KEG2YT1NT6DPYHBTBFYG.description","ns":"org-data"},{"crowdinId":2077293,"key":"the-masculine-identified-lesbians-of-color-collective-milcc.attribute.atts_01H29ENGDER1S00XJYYYQ806H0","ns":"org-data"},{"crowdinId":2077303,"key":"the-masculine-identified-lesbians-of-color-collective-milcc.osvc_01H299KEG2YT1NT6DPYHBTBFYG.name","ns":"org-data"},{"crowdinId":2077297,"key":"the-masculine-identified-lesbians-of-color-collective-milcc.oeml_01H299KEG1TVZYWAAECZD5BR3C.description","ns":"org-data"},{"crowdinId":2077291,"key":"the-masculine-identified-lesbians-of-color-collective-milcc.attribute.atts_01H29ENGDDVSE6S4YZD8NWVDKZ","ns":"org-data"},{"crowdinId":2075665,"key":"newark-lgbtq-community-center.oeml_01H299KEG7Z8KDEEJCZXA7H2XK.description","ns":"org-data"},{"crowdinId":2075669,"key":"newark-lgbtq-community-center.osvc_01H299KEG91JM1C3GW0DNSJ7CJ.description","ns":"org-data"},{"crowdinId":2075667,"key":"newark-lgbtq-community-center.ophn_01H299KEG76P6TWPHTKHT7E4AM.description","ns":"org-data"},{"crowdinId":2075611,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDK05HVRW5NQ5QA4VCQ","ns":"org-data"},{"crowdinId":2075609,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDJDBX686AKKQHZ5FS1","ns":"org-data"},{"crowdinId":2075619,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDNWWHBRBA82DV03CJT","ns":"org-data"},{"crowdinId":2075615,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDMY6ZGHYT8NRZ4W197","ns":"org-data"},{"crowdinId":2075621,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDPQHJNS9HDWC6XQ9PV","ns":"org-data"},{"crowdinId":2075671,"key":"newark-lgbtq-community-center.osvc_01H299KEG91JM1C3GW0DNSJ7CJ.name","ns":"org-data"},{"crowdinId":2075613,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDK3TNMM24TBDS7ZKCC","ns":"org-data"},{"crowdinId":2075675,"key":"newark-lgbtq-community-center.osvc_01H299KEGBSBAGMTMVF5XBHWQP.name","ns":"org-data"},{"crowdinId":2075625,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDRR6QPT2H3Q296YK4C","ns":"org-data"},{"crowdinId":2075677,"key":"newark-lgbtq-community-center.osvc_01H299KEGETPTZM8QPXMFTZ9SG.description","ns":"org-data"},{"crowdinId":2075627,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDRSMMK9R12BEVD8GR7","ns":"org-data"},{"crowdinId":2075623,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDR493Q7W19CFKWPQVQ","ns":"org-data"},{"crowdinId":2075631,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDTNZCQJ7SHM1WYQQE2","ns":"org-data"},{"crowdinId":2075679,"key":"newark-lgbtq-community-center.osvc_01H299KEGETPTZM8QPXMFTZ9SG.name","ns":"org-data"},{"crowdinId":2075683,"key":"newark-lgbtq-community-center.osvc_01H299KEGGQDSRWDZ2KPRNEDTV.name","ns":"org-data"},{"crowdinId":2075629,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDT8SHMN5W6FR236ZV3","ns":"org-data"},{"crowdinId":2075633,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDVYETZR5MNFBDDBRBM","ns":"org-data"},{"crowdinId":2075681,"key":"newark-lgbtq-community-center.osvc_01H299KEGGQDSRWDZ2KPRNEDTV.description","ns":"org-data"},{"crowdinId":2075635,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDWKCRTW35KWNT1E7M3","ns":"org-data"},{"crowdinId":2075641,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDXSQRNBAVMAK716E15","ns":"org-data"},{"crowdinId":2075685,"key":"newark-lgbtq-community-center.osvc_01H299KEGK48WM69P9QD7MWTXH.description","ns":"org-data"},{"crowdinId":2075637,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDXA7Z8WZY9TWEB1EF3","ns":"org-data"},{"crowdinId":2075689,"key":"newark-lgbtq-community-center.osvc_01H299KEGPMAD094RM106V4AAH.description","ns":"org-data"},{"crowdinId":2075639,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDXNRFNWGEYTM1EWABY","ns":"org-data"},{"crowdinId":2075687,"key":"newark-lgbtq-community-center.osvc_01H299KEGK48WM69P9QD7MWTXH.name","ns":"org-data"},{"crowdinId":2075643,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGDZVCCTNZ7K7K2EGW2C","ns":"org-data"},{"crowdinId":2075649,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGE0GNB1Q8EQV40XYETV","ns":"org-data"},{"crowdinId":2075645,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGE0C0X79FSPYBB4NWAV","ns":"org-data"},{"crowdinId":2075651,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGE1H0K8M2X0HKJ7N60X","ns":"org-data"},{"crowdinId":2075647,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGE0GGB12YEQG59WWB6F","ns":"org-data"},{"crowdinId":2075691,"key":"newark-lgbtq-community-center.osvc_01H299KEGPMAD094RM106V4AAH.name","ns":"org-data"},{"crowdinId":2075693,"key":"newark-lgbtq-community-center.osvc_01H299KEGRFS6TQ9MRTTNJKYWX.description","ns":"org-data"},{"crowdinId":2075655,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGE34E9MMCR3Q3DCBN6V","ns":"org-data"},{"crowdinId":2075695,"key":"newark-lgbtq-community-center.osvc_01H299KEGRFS6TQ9MRTTNJKYWX.name","ns":"org-data"},{"crowdinId":2075661,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGE5QJDFAQGH4K0Q07B6","ns":"org-data"},{"crowdinId":2075657,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGE3CWF9QPXBG75AK2G1","ns":"org-data"},{"crowdinId":2075653,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGE2ZCE4QHRKAGHV3QST","ns":"org-data"},{"crowdinId":2075659,"key":"newark-lgbtq-community-center.attribute.atts_01H29ENGE4BB1X1AFHABN1MDRW","ns":"org-data"},{"crowdinId":2077689,"key":"transgender-american-veterans-association-tava.ophn_01H299KEH314XXGTNNK2Q0KGXA.description","ns":"org-data"},{"crowdinId":2077691,"key":"transgender-american-veterans-association-tava.ophn_01H299KEH49J25WX1W6WDG2KAZ.description","ns":"org-data"},{"crowdinId":2077687,"key":"transgender-american-veterans-association-tava.oeml_01H299KEH4VZYKBV8ZTXGYNCP3.description","ns":"org-data"},{"crowdinId":2077693,"key":"transgender-american-veterans-association-tava.osvc_01H299KEH5P72CSDNZXQVHZGJ6.description","ns":"org-data"},{"crowdinId":2077679,"key":"transgender-american-veterans-association-tava.attribute.atts_01H29ENGEA7JZANQA0H8WZHC30","ns":"org-data"},{"crowdinId":2077695,"key":"transgender-american-veterans-association-tava.osvc_01H299KEH5P72CSDNZXQVHZGJ6.name","ns":"org-data"},{"crowdinId":2077677,"key":"transgender-american-veterans-association-tava.attribute.atts_01H29ENGEA4A34F52ZY9P21J87","ns":"org-data"},{"crowdinId":2077681,"key":"transgender-american-veterans-association-tava.attribute.atts_01H29ENGEAP3PE8JEZ81RHNEX5","ns":"org-data"},{"crowdinId":2077955,"key":"transnewyork.oeml_01H299KEH9HERSHRSD89WN11FV.description","ns":"org-data"},{"crowdinId":2077931,"key":"transnewyork.attribute.atts_01H29ENGEF2F7WCRPMJ60XG79D","ns":"org-data"},{"crowdinId":2077959,"key":"transnewyork.osvc_01H299KEHB5265XP0B3GSJ5DE0.description","ns":"org-data"},{"crowdinId":2077683,"key":"transgender-american-veterans-association-tava.attribute.atts_01H29ENGEB0A8XYZQQJV7AE70T","ns":"org-data"},{"crowdinId":2077957,"key":"transnewyork.ophn_01H299KEH9JD46JHTEJ3KQAY32.description","ns":"org-data"},{"crowdinId":2077937,"key":"transnewyork.attribute.atts_01H29ENGEGTGXRD9S81HH5FZR4","ns":"org-data"},{"crowdinId":2077935,"key":"transnewyork.attribute.atts_01H29ENGEGMZMEKCH75EX9SREY","ns":"org-data"},{"crowdinId":2077939,"key":"transnewyork.attribute.atts_01H29ENGEH47QEGHBHMYZ67CSJ","ns":"org-data"},{"crowdinId":2077941,"key":"transnewyork.attribute.atts_01H29ENGEHWEZ2BP1XZBQNW5KT","ns":"org-data"},{"crowdinId":2077961,"key":"transnewyork.osvc_01H299KEHB5265XP0B3GSJ5DE0.name","ns":"org-data"},{"crowdinId":2077963,"key":"transnewyork.osvc_01H299KEHFHFJ2F9WGECEXZJYJ.description","ns":"org-data"},{"crowdinId":2077933,"key":"transnewyork.attribute.atts_01H29ENGEGGM7FFTA21MD0V3PM","ns":"org-data"},{"crowdinId":2077943,"key":"transnewyork.attribute.atts_01H29ENGEKJY6YDR0EMS8F15ND","ns":"org-data"},{"crowdinId":2077945,"key":"transnewyork.attribute.atts_01H29ENGEM9SA1PM0DCBX39DP7","ns":"org-data"},{"crowdinId":2077949,"key":"transnewyork.attribute.atts_01H29ENGEMFBJ6RSQAW4CQ3VHG","ns":"org-data"},{"crowdinId":2077947,"key":"transnewyork.attribute.atts_01H29ENGEMDJ2YVQ60V6DFYYMH","ns":"org-data"},{"crowdinId":2077951,"key":"transnewyork.attribute.atts_01H29ENGEN149M5T5PNSYRN95C","ns":"org-data"},{"crowdinId":2076933,"key":"salga-nyc.attribute.atts_01H29ENGES1PMMTA2QEKBF6NCM","ns":"org-data"},{"crowdinId":2076951,"key":"salga-nyc.osvc_01H299KEHN69VYM792H9DX4D0G.description","ns":"org-data"},{"crowdinId":2076949,"key":"salga-nyc.oeml_01H299KEHKHHT9RPA7A2BSH14W.description","ns":"org-data"},{"crowdinId":2077965,"key":"transnewyork.osvc_01H299KEHFHFJ2F9WGECEXZJYJ.name","ns":"org-data"},{"crowdinId":2076953,"key":"salga-nyc.osvc_01H299KEHN69VYM792H9DX4D0G.name","ns":"org-data"},{"crowdinId":2076935,"key":"salga-nyc.attribute.atts_01H29ENGESZ8YTTKM0Y25Z0B80","ns":"org-data"},{"crowdinId":2076937,"key":"salga-nyc.attribute.atts_01H29ENGETH9DTA6RBYDYQ6RBV","ns":"org-data"},{"crowdinId":2076955,"key":"salga-nyc.osvc_01H299KEHQQGVWNDP6MTQWBX3X.description","ns":"org-data"},{"crowdinId":2076943,"key":"salga-nyc.attribute.atts_01H29ENGEWXN46PHBSTFNPS2ZA","ns":"org-data"},{"crowdinId":2076941,"key":"salga-nyc.attribute.atts_01H29ENGEWDKRV1S4XX0HTCKY5","ns":"org-data"},{"crowdinId":2076939,"key":"salga-nyc.attribute.atts_01H29ENGEV0JJZHZ47F9YMCNC0","ns":"org-data"},{"crowdinId":2076945,"key":"salga-nyc.attribute.atts_01H29ENGEXTDCDHVKFMZC6PG4M","ns":"org-data"},{"crowdinId":2076341,"key":"q-wave.oeml_01H299KEHV30KZGDYY06EAACJB.description","ns":"org-data"},{"crowdinId":2076957,"key":"salga-nyc.osvc_01H299KEHQQGVWNDP6MTQWBX3X.name","ns":"org-data"},{"crowdinId":2076343,"key":"q-wave.osvc_01H299KEHWMGHVMGCFVYPFB2ZZ.description","ns":"org-data"},{"crowdinId":2076309,"key":"q-wave.attribute.atts_01H29ENGF2J7WW6P373K8BCTR5","ns":"org-data"},{"crowdinId":2076345,"key":"q-wave.osvc_01H299KEHWMGHVMGCFVYPFB2ZZ.name","ns":"org-data"},{"crowdinId":2076307,"key":"q-wave.attribute.atts_01H29ENGF1TJA1YHV3ESGH0X1N","ns":"org-data"},{"crowdinId":2076305,"key":"q-wave.attribute.atts_01H29ENGF1AM7Q33NHYP8DENV7","ns":"org-data"},{"crowdinId":2076311,"key":"q-wave.attribute.atts_01H29ENGF333VQJ52M15Q21XYA","ns":"org-data"},{"crowdinId":2076347,"key":"q-wave.osvc_01H299KEHZ3ZTPY7F8SZJYDP3E.description","ns":"org-data"},{"crowdinId":2076313,"key":"q-wave.attribute.atts_01H29ENGF3DB92TCFWH0627B18","ns":"org-data"},{"crowdinId":2076349,"key":"q-wave.osvc_01H299KEHZ3ZTPY7F8SZJYDP3E.name","ns":"org-data"},{"crowdinId":2076317,"key":"q-wave.attribute.atts_01H29ENGF524XR999P0B3SW1XE","ns":"org-data"},{"crowdinId":2076315,"key":"q-wave.attribute.atts_01H29ENGF4CMEW58TDST00DEB7","ns":"org-data"},{"crowdinId":2076351,"key":"q-wave.osvc_01H299KEJ1V9YMGZZEHZSPRZY2.description","ns":"org-data"},{"crowdinId":2076319,"key":"q-wave.attribute.atts_01H29ENGF5WCAVG0MN7AVZF3E8","ns":"org-data"},{"crowdinId":2076353,"key":"q-wave.osvc_01H299KEJ1V9YMGZZEHZSPRZY2.name","ns":"org-data"},{"crowdinId":2076355,"key":"q-wave.osvc_01H299KEJ3AB6T1DV34QFH0HHP.description","ns":"org-data"},{"crowdinId":2076321,"key":"q-wave.attribute.atts_01H29ENGF6ZQN776PD5TAHC3QF","ns":"org-data"},{"crowdinId":2076357,"key":"q-wave.osvc_01H299KEJ3AB6T1DV34QFH0HHP.name","ns":"org-data"},{"crowdinId":2076323,"key":"q-wave.attribute.atts_01H29ENGF73S3YNBF26M1WBY4E","ns":"org-data"},{"crowdinId":2076325,"key":"q-wave.attribute.atts_01H29ENGF7M0FVHBXPDH70TW6K","ns":"org-data"},{"crowdinId":2076327,"key":"q-wave.attribute.atts_01H29ENGF88C9Y9ZQ5N152XGTJ","ns":"org-data"},{"crowdinId":2076359,"key":"q-wave.osvc_01H299KEJ6K34T28AYEKHFJ113.description","ns":"org-data"},{"crowdinId":2076331,"key":"q-wave.attribute.atts_01H29ENGFA27GDZZ8NVK9GFP17","ns":"org-data"},{"crowdinId":2076333,"key":"q-wave.attribute.atts_01H29ENGFAXGCMX4KW0HDYTK43","ns":"org-data"},{"crowdinId":2076329,"key":"q-wave.attribute.atts_01H29ENGF9GVDNECPS3NFNFVY7","ns":"org-data"},{"crowdinId":2076335,"key":"q-wave.attribute.atts_01H29ENGFBV70MQGDEPAP2MQS1","ns":"org-data"},{"crowdinId":2077889,"key":"translatin-coalition-tlc.ophn_01H299KEJBFG1GZJ2EBCRNSAQ7.description","ns":"org-data"},{"crowdinId":2076337,"key":"q-wave.attribute.atts_01H29ENGFGFPD4H0DK602Z7GEC","ns":"org-data"},{"crowdinId":2077887,"key":"translatin-coalition-tlc.oeml_01H299KEJB2QD20V43FH4CR20R.description","ns":"org-data"},{"crowdinId":2077797,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFMXPF02QVAMZGZM0KC","ns":"org-data"},{"crowdinId":2076361,"key":"q-wave.osvc_01H299KEJ6K34T28AYEKHFJ113.name","ns":"org-data"},{"crowdinId":2077801,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFNNTZRG7CNNNRHM4CP","ns":"org-data"},{"crowdinId":2077891,"key":"translatin-coalition-tlc.osvc_01H299KEJCY8A7T2TXZN7V94N7.description","ns":"org-data"},{"crowdinId":2077799,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFNAD116C7GSNBBRQJ0","ns":"org-data"},{"crowdinId":2077893,"key":"translatin-coalition-tlc.osvc_01H299KEJCY8A7T2TXZN7V94N7.name","ns":"org-data"},{"crowdinId":2077809,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFRKR9JK9ACGTQMSTRR","ns":"org-data"},{"crowdinId":2077897,"key":"translatin-coalition-tlc.osvc_01H299KEJFMFD8WXY7KJ2VGXMB.name","ns":"org-data"},{"crowdinId":2077811,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFS62TGB7PBBSGKQ5D2","ns":"org-data"},{"crowdinId":2077805,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFQD5G0YR25E4MP346B","ns":"org-data"},{"crowdinId":2077895,"key":"translatin-coalition-tlc.osvc_01H299KEJFMFD8WXY7KJ2VGXMB.description","ns":"org-data"},{"crowdinId":2077803,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFPWVKTTP2MJ3DCSV3D","ns":"org-data"},{"crowdinId":2077807,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFR64EJEG0V2SD911YT","ns":"org-data"},{"crowdinId":2077813,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFS6FFDJJRWH08KP21S","ns":"org-data"},{"crowdinId":2077819,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFVWGGJS4YMVWBBJ7J3","ns":"org-data"},{"crowdinId":2077899,"key":"translatin-coalition-tlc.osvc_01H299KEJJ2XMZBM8J82F65K1Y.description","ns":"org-data"},{"crowdinId":2077815,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFTR8KTBD9VN9NGDE76","ns":"org-data"},{"crowdinId":2077825,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFXGNM8K1P2NKZ3XEHT","ns":"org-data"},{"crowdinId":2077817,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFV80G7MW76BX4AWDWB","ns":"org-data"},{"crowdinId":2077901,"key":"translatin-coalition-tlc.osvc_01H299KEJJ2XMZBM8J82F65K1Y.name","ns":"org-data"},{"crowdinId":2077821,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFW5WH3CN1WMT2HDZAR","ns":"org-data"},{"crowdinId":2077903,"key":"translatin-coalition-tlc.osvc_01H299KEJN343JYZ26MSYPYYHT.description","ns":"org-data"},{"crowdinId":2077829,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFYSGDJTMJCHJ7DVNTE","ns":"org-data"},{"crowdinId":2077823,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFX3FRZQ07CJJP6RK6Y","ns":"org-data"},{"crowdinId":2077905,"key":"translatin-coalition-tlc.osvc_01H299KEJN343JYZ26MSYPYYHT.name","ns":"org-data"},{"crowdinId":2077827,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFYDZQBS8RE0XQBM0TE","ns":"org-data"},{"crowdinId":2077909,"key":"translatin-coalition-tlc.osvc_01H299KEJQD86AN5RS131YJKE9.name","ns":"org-data"},{"crowdinId":2077839,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG1M61K6R0CWJ978WZQ","ns":"org-data"},{"crowdinId":2077833,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG06CFSSXDXTEFSXDNA","ns":"org-data"},{"crowdinId":2077843,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG2HPR0KM42YWX1S7XC","ns":"org-data"},{"crowdinId":2077831,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGFZX5P4BTEMQE5D7NCW","ns":"org-data"},{"crowdinId":2077837,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG0SKC4A2FZXF4XRXGM","ns":"org-data"},{"crowdinId":2077845,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG2Z4X3ZDVHJDY94Y1A","ns":"org-data"},{"crowdinId":2077911,"key":"translatin-coalition-tlc.osvc_01H299KEJSDWKFTF0KNNZAZST0.description","ns":"org-data"},{"crowdinId":2077841,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG28V1RQ2CPYEA12NN8","ns":"org-data"},{"crowdinId":2077907,"key":"translatin-coalition-tlc.osvc_01H299KEJQD86AN5RS131YJKE9.description","ns":"org-data"},{"crowdinId":2077835,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG0A65YP4AXSNS2M74E","ns":"org-data"},{"crowdinId":2077849,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG3QWDEEA361WP8PQ0V","ns":"org-data"},{"crowdinId":2077847,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG3MGTHHF3AE2JJCWY4","ns":"org-data"},{"crowdinId":2077913,"key":"translatin-coalition-tlc.osvc_01H299KEJSDWKFTF0KNNZAZST0.name","ns":"org-data"},{"crowdinId":2077915,"key":"translatin-coalition-tlc.osvc_01H299KEJW7NYR0FZSG1625GKC.description","ns":"org-data"},{"crowdinId":2077851,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG4DMC5MNBNSKXTBP9Y","ns":"org-data"},{"crowdinId":2077855,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG5KKWQE01CP58NZA9M","ns":"org-data"},{"crowdinId":2077853,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG59EA3077BY5PTNYZN","ns":"org-data"},{"crowdinId":2077859,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG6X037S1KMT5Z7CV1K","ns":"org-data"},{"crowdinId":2077917,"key":"translatin-coalition-tlc.osvc_01H299KEJW7NYR0FZSG1625GKC.name","ns":"org-data"},{"crowdinId":2077921,"key":"translatin-coalition-tlc.osvc_01H299KEJZAXX2VKKMJ3CN4QAR.name","ns":"org-data"},{"crowdinId":2077861,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG7Q6RPE8AK8EJ91A4H","ns":"org-data"},{"crowdinId":2077857,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG6NX266V5V5DK8V34K","ns":"org-data"},{"crowdinId":2077867,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG8R2K13PKV0RJHKCP7","ns":"org-data"},{"crowdinId":2077865,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG873BZ6QZRHQ1G76E2","ns":"org-data"},{"crowdinId":2077923,"key":"translatin-coalition-tlc.osvc_01H299KEK1DY8KQM5KVGXCTETY.description","ns":"org-data"},{"crowdinId":2077919,"key":"translatin-coalition-tlc.osvc_01H299KEJZAXX2VKKMJ3CN4QAR.description","ns":"org-data"},{"crowdinId":2077863,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG814K17PQA4Q7TS7EW","ns":"org-data"},{"crowdinId":2077871,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGGA2GBMB3KRRZVX6B9R","ns":"org-data"},{"crowdinId":2077869,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGG9QT9DN6TT74AJQKT6","ns":"org-data"},{"crowdinId":2077873,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGGAREPN16WD621GNY5K","ns":"org-data"},{"crowdinId":2077879,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGGCJ4Z3KXCY3FQ6B8MX","ns":"org-data"},{"crowdinId":2077925,"key":"translatin-coalition-tlc.osvc_01H299KEK1DY8KQM5KVGXCTETY.name","ns":"org-data"},{"crowdinId":2077927,"key":"translatin-coalition-tlc.osvc_01H299KEK45XPJKG7G4WYS02WN.description","ns":"org-data"},{"crowdinId":2077875,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGGBVWX29NRHZVD7764A","ns":"org-data"},{"crowdinId":2077883,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGGDSZBKWWFYDBX476H4","ns":"org-data"},{"crowdinId":2077877,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGGCEVY28Z687N71ZWF4","ns":"org-data"},{"crowdinId":2077929,"key":"translatin-coalition-tlc.osvc_01H299KEK45XPJKG7G4WYS02WN.name","ns":"org-data"},{"crowdinId":2077881,"key":"translatin-coalition-tlc.attribute.atts_01H29ENGGDQA83F4VB1K9F5Y5A","ns":"org-data"},{"crowdinId":2076095,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.osvc_01H299KEN9WE80ENE08WF9BXF9.name","ns":"org-data"},{"crowdinId":2077401,"key":"the-river-valley-equality-center.ophn_01H299KEKFN9BDCDXV9Q9QD9Z9.description","ns":"org-data"},{"crowdinId":2077373,"key":"the-okra-project.attribute.atts_01H29ENGGJTEYW4EW7PFXZSK00","ns":"org-data"},{"crowdinId":2077379,"key":"the-okra-project.osvc_01H299KEK9HBKA8Z9T2F73A0P8.name","ns":"org-data"},{"crowdinId":2077403,"key":"the-river-valley-equality-center.osvc_01H299KEKF0RB8PQQRCGC2GA22.description","ns":"org-data"},{"crowdinId":2077377,"key":"the-okra-project.osvc_01H299KEK9HBKA8Z9T2F73A0P8.description","ns":"org-data"},{"crowdinId":2077369,"key":"the-okra-project.attribute.atts_01H29ENGGHD1355K04N48ZGX4S","ns":"org-data"},{"crowdinId":2077399,"key":"the-river-valley-equality-center.oeml_01H299KEKFHSR58NGZYCY3PM9P.description","ns":"org-data"},{"crowdinId":2077381,"key":"the-river-valley-equality-center.attribute.atts_01H29ENGGRAV1CE0X75A39QGJN","ns":"org-data"},{"crowdinId":2077371,"key":"the-okra-project.attribute.atts_01H29ENGGJ8YZ4Z96A7QWKRXCX","ns":"org-data"},{"crowdinId":2077383,"key":"the-river-valley-equality-center.attribute.atts_01H29ENGGRKV31CTZQ9EQBZSBG","ns":"org-data"},{"crowdinId":2077385,"key":"the-river-valley-equality-center.attribute.atts_01H29ENGGSBC0CX8Z5H7WKGHJJ","ns":"org-data"},{"crowdinId":2077389,"key":"the-river-valley-equality-center.attribute.atts_01H29ENGGTE5N3454E29K2VY69","ns":"org-data"},{"crowdinId":2077405,"key":"the-river-valley-equality-center.osvc_01H299KEKF0RB8PQQRCGC2GA22.name","ns":"org-data"},{"crowdinId":2077387,"key":"the-river-valley-equality-center.attribute.atts_01H29ENGGSY0112EWH56WE0DVB","ns":"org-data"},{"crowdinId":2077407,"key":"the-river-valley-equality-center.osvc_01H299KEKJG4VR1HMWGX37K2AY.description","ns":"org-data"},{"crowdinId":2077391,"key":"the-river-valley-equality-center.attribute.atts_01H29ENGGTZ6DZ5FHDA0ZGW2XX","ns":"org-data"},{"crowdinId":2077395,"key":"the-river-valley-equality-center.attribute.atts_01H29ENGGVJKZ36W4E8D8SP49H","ns":"org-data"},{"crowdinId":2077409,"key":"the-river-valley-equality-center.osvc_01H299KEKJG4VR1HMWGX37K2AY.name","ns":"org-data"},{"crowdinId":2077393,"key":"the-river-valley-equality-center.attribute.atts_01H29ENGGV9Q60P6XQN5HHBJKN","ns":"org-data"},{"crowdinId":2077741,"key":"transgender-equality-network.osvc_01H299KEKVK85NPHQ9GD2C9FYX.description","ns":"org-data"},{"crowdinId":2076491,"key":"rady-childrens-hospital-san-diego-center-for-gender-affirming-care.ophn_01H299KENDYH1WDDF0JWDW3XH6.description","ns":"org-data"},{"crowdinId":2077729,"key":"transgender-equality-network.attribute.atts_01H29ENGH1KAYTH69254BF34Y4","ns":"org-data"},{"crowdinId":2077743,"key":"transgender-equality-network.osvc_01H299KEKVK85NPHQ9GD2C9FYX.name","ns":"org-data"},{"crowdinId":2077727,"key":"transgender-equality-network.attribute.atts_01H29ENGH01GQK6MGQR9N8S1RX","ns":"org-data"},{"crowdinId":2077725,"key":"transgender-equality-network.attribute.atts_01H29ENGH00YBW1T1EPK0T7N70","ns":"org-data"},{"crowdinId":2077747,"key":"transgender-equality-network.osvc_01H299KEKYKHQ39Y4PDG19K1MR.name","ns":"org-data"},{"crowdinId":2077721,"key":"transgender-equality-network.attribute.atts_01H29ENGGZ8DG2FG3MCFKQF5TV","ns":"org-data"},{"crowdinId":2077719,"key":"transgender-equality-network.attribute.atts_01H29ENGGYMEP6V53JFZFMZ5D9","ns":"org-data"},{"crowdinId":2077723,"key":"transgender-equality-network.attribute.atts_01H29ENGGZYND85W771394BJ3X","ns":"org-data"},{"crowdinId":2077745,"key":"transgender-equality-network.osvc_01H299KEKYKHQ39Y4PDG19K1MR.description","ns":"org-data"},{"crowdinId":2077731,"key":"transgender-equality-network.attribute.atts_01H29ENGH2ZHR9HA9ECK7R5S20","ns":"org-data"},{"crowdinId":2077735,"key":"transgender-equality-network.attribute.atts_01H29ENGH4GHTM5E188HZEYYMB","ns":"org-data"},{"crowdinId":2077733,"key":"transgender-equality-network.attribute.atts_01H29ENGH3T6AAFRYT80GARXD7","ns":"org-data"},{"crowdinId":2077737,"key":"transgender-equality-network.attribute.atts_01H29ENGH4Y304D0Y3TKR7758D","ns":"org-data"},{"crowdinId":2077749,"key":"transgender-equality-network.osvc_01H299KEM047HBMYH2JMYN97FT.description","ns":"org-data"},{"crowdinId":2077751,"key":"transgender-equality-network.osvc_01H299KEM047HBMYH2JMYN97FT.name","ns":"org-data"},{"crowdinId":2075735,"key":"northwest-arkansas-equality.oeml_01H299KEM5YJVXNW2FMAW6CF0X.description","ns":"org-data"},{"crowdinId":2075741,"key":"northwest-arkansas-equality.osvc_01H299KEM6Y045GQ13Z6HS9A0R.description","ns":"org-data"},{"crowdinId":2075739,"key":"northwest-arkansas-equality.ophn_01H299KEM5Q8H03X0NK9VBW196.description","ns":"org-data"},{"crowdinId":2075737,"key":"northwest-arkansas-equality.ophn_01H299KEM4FZGZDC5X76JJ0FPE.description","ns":"org-data"},{"crowdinId":2075745,"key":"northwest-arkansas-equality.osvc_01H299KEM9JGH410HWMB7893A3.description","ns":"org-data"},{"crowdinId":2075699,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGH9FVHTF9945R4Y5B9M","ns":"org-data"},{"crowdinId":2075701,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGH9ZNCZM0BCPTAPTV43","ns":"org-data"},{"crowdinId":2075703,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHA0EZ6HSF3D4XA7096","ns":"org-data"},{"crowdinId":2075705,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHAFXN1GQE46TTPJSBQ","ns":"org-data"},{"crowdinId":2075743,"key":"northwest-arkansas-equality.osvc_01H299KEM6Y045GQ13Z6HS9A0R.name","ns":"org-data"},{"crowdinId":2075697,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGH9236G1FQMW9YC3D7P","ns":"org-data"},{"crowdinId":2075747,"key":"northwest-arkansas-equality.osvc_01H299KEM9JGH410HWMB7893A3.name","ns":"org-data"},{"crowdinId":2075707,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHBC4QHYR3CT29B0XP8","ns":"org-data"},{"crowdinId":2075711,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHCPDWRHKZKEPX823VA","ns":"org-data"},{"crowdinId":2075709,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHCE2HK5S8V9GWA36WQ","ns":"org-data"},{"crowdinId":2074191,"key":"diverse-and-resilient.ophn_01H299KEPCWPFB9CSW7Z3N6ZBT.description","ns":"org-data"},{"crowdinId":2075749,"key":"northwest-arkansas-equality.osvc_01H299KEMA5PKW9KJKRH4VWW7Q.description","ns":"org-data"},{"crowdinId":2075713,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHDKJ2GZ6P0DKWWCAC8","ns":"org-data"},{"crowdinId":2075717,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHEM9X0JRHJQD6HWKXB","ns":"org-data"},{"crowdinId":2075753,"key":"northwest-arkansas-equality.osvc_01H299KEMCAY8HNE73AHXHBVCC.description","ns":"org-data"},{"crowdinId":2076489,"key":"rady-childrens-hospital-san-diego-center-for-gender-affirming-care.oeml_01H299KENEDGQB4QPB37GDTFXD.description","ns":"org-data"},{"crowdinId":2075751,"key":"northwest-arkansas-equality.osvc_01H299KEMA5PKW9KJKRH4VWW7Q.name","ns":"org-data"},{"crowdinId":2075715,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHE48BH473WS32F2ZP2","ns":"org-data"},{"crowdinId":2075719,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHFMN04M0BKD4C5BDT1","ns":"org-data"},{"crowdinId":2075727,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHHVNESHGAH53M87YZ0","ns":"org-data"},{"crowdinId":2075723,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHG7EY099GB9JFEX49P","ns":"org-data"},{"crowdinId":2075755,"key":"northwest-arkansas-equality.osvc_01H299KEMCAY8HNE73AHXHBVCC.name","ns":"org-data"},{"crowdinId":2075757,"key":"northwest-arkansas-equality.osvc_01H299KEMF13ZQ392VZ32WBRWP.description","ns":"org-data"},{"crowdinId":2075725,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHHDQ3WY320XZ38Q1GG","ns":"org-data"},{"crowdinId":2075759,"key":"northwest-arkansas-equality.osvc_01H299KEMF13ZQ392VZ32WBRWP.name","ns":"org-data"},{"crowdinId":2075729,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHJA2AR87H02VE4K8VX","ns":"org-data"},{"crowdinId":2075731,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHJGG9CW73CFG94QT58","ns":"org-data"},{"crowdinId":2075721,"key":"northwest-arkansas-equality.attribute.atts_01H29ENGHFNP2YCVN7CAV2D4PG","ns":"org-data"},{"crowdinId":2073567,"key":"arkansas-childrens.ophn_01H299KEMK1B3PCTS5G4A15PHK.description","ns":"org-data"},{"crowdinId":2073569,"key":"arkansas-childrens.ophn_01H299KEMKBNV7YM9BE3B2BPVM.description","ns":"org-data"},{"crowdinId":2073577,"key":"arkansas-childrens.osvc_01H299KEMN1E3A9KEXJJPGQJBR.description","ns":"org-data"},{"crowdinId":2073573,"key":"arkansas-childrens.ophn_01H299KEMM3QY5NK15CS46TAEZ.description","ns":"org-data"},{"crowdinId":2073575,"key":"arkansas-childrens.ophn_01H299KEMN7H3TGA4AGKC2ZPNR.description","ns":"org-data"},{"crowdinId":2073559,"key":"arkansas-childrens.attribute.atts_01H29ENGHQKN2XM72XYXAXYZR9","ns":"org-data"},{"crowdinId":2073561,"key":"arkansas-childrens.attribute.atts_01H29ENGHRVW1C97FHYEB8K1KP","ns":"org-data"},{"crowdinId":2073571,"key":"arkansas-childrens.ophn_01H299KEMM3HK2BXXE9K4HS0WZ.description","ns":"org-data"},{"crowdinId":2073557,"key":"arkansas-childrens.attribute.atts_01H29ENGHQEBB7CZNKXV775ZVA","ns":"org-data"},{"crowdinId":2073563,"key":"arkansas-childrens.attribute.atts_01H29ENGHS3HA1Z24JDM1DRE9Q","ns":"org-data"},{"crowdinId":2073579,"key":"arkansas-childrens.osvc_01H299KEMN1E3A9KEXJJPGQJBR.name","ns":"org-data"},{"crowdinId":2078243,"key":"uams-health-12th-street-health-and-wellness-center.oeml_01H299KEMV068DT1ES435X3VVW.description","ns":"org-data"},{"crowdinId":2074189,"key":"diverse-and-resilient.ophn_01H299KEPCEJ0Y2BMETMFP6V8T.description","ns":"org-data"},{"crowdinId":2078245,"key":"uams-health-12th-street-health-and-wellness-center.ophn_01H299KEMT8MFCSN1AXY2PSZPC.description","ns":"org-data"},{"crowdinId":2078249,"key":"uams-health-12th-street-health-and-wellness-center.osvc_01H299KEMWNVEZD4AZJGYY528D.name","ns":"org-data"},{"crowdinId":2076077,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.osvc_01H299KEN1H9KTXH1QBANWRREC.description","ns":"org-data"},{"crowdinId":2076075,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.ophn_01H299KEN0VD8JBNJ9ZT38SVHG.description","ns":"org-data"},{"crowdinId":2078237,"key":"uams-health-12th-street-health-and-wellness-center.attribute.atts_01H29ENGHXNFT4TZXQNAE0FKN2","ns":"org-data"},{"crowdinId":2078247,"key":"uams-health-12th-street-health-and-wellness-center.osvc_01H299KEMWNVEZD4AZJGYY528D.description","ns":"org-data"},{"crowdinId":2078235,"key":"uams-health-12th-street-health-and-wellness-center.attribute.atts_01H29ENGHXG6XVZZ7BVV39PPWK","ns":"org-data"},{"crowdinId":2078239,"key":"uams-health-12th-street-health-and-wellness-center.attribute.atts_01H29ENGHY6V660EBN31FTV1EC","ns":"org-data"},{"crowdinId":2076055,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.attribute.atts_01H29ENGJ6M9HD4YV7053BNFAB","ns":"org-data"},{"crowdinId":2076053,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.attribute.atts_01H29ENGJ62A5C0FEG74R7JKYH","ns":"org-data"},{"crowdinId":2076081,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.osvc_01H299KEN3Z9K9SPN6SKASM3G0.description","ns":"org-data"},{"crowdinId":2076057,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.attribute.atts_01H29ENGJ85B0XK4P16P6S2PWS","ns":"org-data"},{"crowdinId":2076059,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.attribute.atts_01H29ENGJ8J2TBSJ7Y44SMP42J","ns":"org-data"},{"crowdinId":2076079,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.osvc_01H299KEN1H9KTXH1QBANWRREC.name","ns":"org-data"},{"crowdinId":2076085,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.osvc_01H299KEN5P1XQ2JNPKXZHC8RN.description","ns":"org-data"},{"crowdinId":2076083,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.osvc_01H299KEN3Z9K9SPN6SKASM3G0.name","ns":"org-data"},{"crowdinId":2076063,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.attribute.atts_01H29ENGJA85TRTZRZHEMK8N6Q","ns":"org-data"},{"crowdinId":2076061,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.attribute.atts_01H29ENGJ9P2H5KYWT1BMH2ZDV","ns":"org-data"},{"crowdinId":2076089,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.osvc_01H299KEN79YM6EJ1NJVVP5GR6.description","ns":"org-data"},{"crowdinId":2076067,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.attribute.atts_01H29ENGJCJ81XYXJNMN62777P","ns":"org-data"},{"crowdinId":2076091,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.osvc_01H299KEN79YM6EJ1NJVVP5GR6.name","ns":"org-data"},{"crowdinId":2076069,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.attribute.atts_01H29ENGJDZ9TGB5EWTMDXYG3R","ns":"org-data"},{"crowdinId":2076493,"key":"rady-childrens-hospital-san-diego-center-for-gender-affirming-care.osvc_01H299KENEDVH529PG7YYGGDN3.description","ns":"org-data"},{"crowdinId":2076093,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.osvc_01H299KEN9WE80ENE08WF9BXF9.description","ns":"org-data"},{"crowdinId":2076065,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.attribute.atts_01H29ENGJBJBPTKNE1WKVD5NDY","ns":"org-data"},{"crowdinId":2076087,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.osvc_01H299KEN5P1XQ2JNPKXZHC8RN.name","ns":"org-data"},{"crowdinId":2076071,"key":"planned-parenthood-little-rock-aldersgate-road-health-center.attribute.atts_01H29ENGJEP76SB1Q80K3M3GHW","ns":"org-data"},{"crowdinId":2076495,"key":"rady-childrens-hospital-san-diego-center-for-gender-affirming-care.osvc_01H299KENEDVH529PG7YYGGDN3.name","ns":"org-data"},{"crowdinId":2076485,"key":"rady-childrens-hospital-san-diego-center-for-gender-affirming-care.attribute.atts_01H29ENGJJCXV4GTAWD4GZYFFR","ns":"org-data"},{"crowdinId":2078353,"key":"unspoken-treasure-society.ophn_01H299KENJKQ1T2JH9NN8GYXTQ.description","ns":"org-data"},{"crowdinId":2078339,"key":"unspoken-treasure-society.attribute.atts_01H29ENGJQZGB434AN17HR17WN","ns":"org-data"},{"crowdinId":2078351,"key":"unspoken-treasure-society.oeml_01H299KENJBQ92VBQHD5HR6D9B.description","ns":"org-data"},{"crowdinId":2078355,"key":"unspoken-treasure-society.osvc_01H299KENMEZB1MZ7YSFM1R7CD.description","ns":"org-data"},{"crowdinId":2078359,"key":"unspoken-treasure-society.osvc_01H299KENQNS7DGE65FA9772V6.description","ns":"org-data"},{"crowdinId":2078341,"key":"unspoken-treasure-society.attribute.atts_01H29ENGJRV5SHP0H352C9EWG8","ns":"org-data"},{"crowdinId":2078357,"key":"unspoken-treasure-society.osvc_01H299KENMEZB1MZ7YSFM1R7CD.name","ns":"org-data"},{"crowdinId":2078343,"key":"unspoken-treasure-society.attribute.atts_01H29ENGJSM6SS5CFY300MPTCV","ns":"org-data"},{"crowdinId":2078345,"key":"unspoken-treasure-society.attribute.atts_01H29ENGJTQGBJNZ9J8DHZQZEE","ns":"org-data"},{"crowdinId":2078347,"key":"unspoken-treasure-society.attribute.atts_01H29ENGJVD2DTR8BQN9DJKCAG","ns":"org-data"},{"crowdinId":2078363,"key":"unspoken-treasure-society.osvc_01H299KENR5JDGKZBW9QW5T1A0.description","ns":"org-data"},{"crowdinId":2078365,"key":"unspoken-treasure-society.osvc_01H299KENR5JDGKZBW9QW5T1A0.name","ns":"org-data"},{"crowdinId":2077757,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGJZM13X4702FKWQCQ6T","ns":"org-data"},{"crowdinId":2077755,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGJZ6KSKV2G0X305RCE9","ns":"org-data"},{"crowdinId":2077753,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGJYTPZV09VHGY71S0QG","ns":"org-data"},{"crowdinId":2077781,"key":"transkids-purple-rainbow-foundation.osvc_01H299KENWPPYTF766EJ2RZ2KH.description","ns":"org-data"},{"crowdinId":2078361,"key":"unspoken-treasure-society.osvc_01H299KENQNS7DGE65FA9772V6.name","ns":"org-data"},{"crowdinId":2077763,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGK0HQJS0ZK3S9EKFVW5","ns":"org-data"},{"crowdinId":2077759,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGK01GNH2NM83JPX84VR","ns":"org-data"},{"crowdinId":2077761,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGK0473R4PR51RFJP65Q","ns":"org-data"},{"crowdinId":2077783,"key":"transkids-purple-rainbow-foundation.osvc_01H299KENWPPYTF766EJ2RZ2KH.name","ns":"org-data"},{"crowdinId":2077767,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGK2PD5JMXMBJ6GYN2P9","ns":"org-data"},{"crowdinId":2077765,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGK2MZ3KDHYG1JE72H95","ns":"org-data"},{"crowdinId":2077785,"key":"transkids-purple-rainbow-foundation.osvc_01H299KEP0HBW6ZTH47GC680WH.description","ns":"org-data"},{"crowdinId":2077789,"key":"transkids-purple-rainbow-foundation.osvc_01H299KEP11BY68937NW2TGHMR.description","ns":"org-data"},{"crowdinId":2077771,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGK3MME6TDV9K9QCVRWV","ns":"org-data"},{"crowdinId":2077775,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGK4KDX6WBW3DZFZVQ0X","ns":"org-data"},{"crowdinId":2077769,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGK31YA3Y0K6VY14D8DW","ns":"org-data"},{"crowdinId":2077787,"key":"transkids-purple-rainbow-foundation.osvc_01H299KEP0HBW6ZTH47GC680WH.name","ns":"org-data"},{"crowdinId":2074185,"key":"diverse-and-resilient.oeml_01H299KEPCASNF8Y303HPSECPK.description","ns":"org-data"},{"crowdinId":2077791,"key":"transkids-purple-rainbow-foundation.osvc_01H299KEP11BY68937NW2TGHMR.name","ns":"org-data"},{"crowdinId":2077795,"key":"transkids-purple-rainbow-foundation.osvc_01H299KEP4M22K0GC6WYA1G2SS.name","ns":"org-data"},{"crowdinId":2074193,"key":"diverse-and-resilient.osvc_01H299KEPFDEJEEC8FGSWPCY90.description","ns":"org-data"},{"crowdinId":2077793,"key":"transkids-purple-rainbow-foundation.osvc_01H299KEP4M22K0GC6WYA1G2SS.description","ns":"org-data"},{"crowdinId":2077773,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGK4GDZ34C9NWXDEMNST","ns":"org-data"},{"crowdinId":2074161,"key":"diverse-and-resilient.attribute.atts_01H29ENGKB544DTM8F265QH1HT","ns":"org-data"},{"crowdinId":2074187,"key":"diverse-and-resilient.ophn_01H299KEPB66FG513YRZJTQ7BZ.description","ns":"org-data"},{"crowdinId":2074165,"key":"diverse-and-resilient.attribute.atts_01H29ENGKCTSJXDSJ47EMRCKHP","ns":"org-data"},{"crowdinId":2077777,"key":"transkids-purple-rainbow-foundation.attribute.atts_01H29ENGK5C2EK1DEGZSWMRR84","ns":"org-data"},{"crowdinId":2074163,"key":"diverse-and-resilient.attribute.atts_01H29ENGKCGGQSBZK5S9DKXY7P","ns":"org-data"},{"crowdinId":2074195,"key":"diverse-and-resilient.osvc_01H299KEPFDEJEEC8FGSWPCY90.name","ns":"org-data"},{"crowdinId":2074173,"key":"diverse-and-resilient.attribute.atts_01H29ENGKEZ96EPTNWDK10WJR3","ns":"org-data"},{"crowdinId":2074167,"key":"diverse-and-resilient.attribute.atts_01H29ENGKD1HHFYW7GM13ZMQ4M","ns":"org-data"},{"crowdinId":2074197,"key":"diverse-and-resilient.osvc_01H299KEPHAG0Y0X812BBJ86H6.description","ns":"org-data"},{"crowdinId":2074169,"key":"diverse-and-resilient.attribute.atts_01H29ENGKE2A1S8R77DF3S95VB","ns":"org-data"},{"crowdinId":2074171,"key":"diverse-and-resilient.attribute.atts_01H29ENGKEWD4VVSR64XPD684S","ns":"org-data"},{"crowdinId":2074177,"key":"diverse-and-resilient.attribute.atts_01H29ENGKFMYEE610DC6JJZXJB","ns":"org-data"},{"crowdinId":2074199,"key":"diverse-and-resilient.osvc_01H299KEPHAG0Y0X812BBJ86H6.name","ns":"org-data"},{"crowdinId":2074201,"key":"diverse-and-resilient.osvc_01H299KEPMA7MB8XNKKT6F7FWV.description","ns":"org-data"},{"crowdinId":2074175,"key":"diverse-and-resilient.attribute.atts_01H29ENGKFEHSNTXZ569MCTV2F","ns":"org-data"},{"crowdinId":2074179,"key":"diverse-and-resilient.attribute.atts_01H29ENGKG465SZYZJBFGJK8B7","ns":"org-data"},{"crowdinId":2074203,"key":"diverse-and-resilient.osvc_01H299KEPMA7MB8XNKKT6F7FWV.name","ns":"org-data"},{"crowdinId":2074209,"key":"diverse-and-resilient.osvc_01H299KEPNTK0TSAMV0RJPBXQF.description","ns":"org-data"},{"crowdinId":2074205,"key":"diverse-and-resilient.osvc_01H299KEPMP39QRGYK37JN97R7.description","ns":"org-data"},{"crowdinId":2074211,"key":"diverse-and-resilient.osvc_01H299KEPNTK0TSAMV0RJPBXQF.name","ns":"org-data"},{"crowdinId":2073529,"key":"ariannas-center.oeml_01H299KEPSB72BNQW60EXN1K1A.description","ns":"org-data"},{"crowdinId":2074181,"key":"diverse-and-resilient.attribute.atts_01H29ENGKHYCXWB1VV6S5X66DW","ns":"org-data"},{"crowdinId":2073531,"key":"ariannas-center.ophn_01H299KEPSY5RGM65970MWHVVB.description","ns":"org-data"},{"crowdinId":2073499,"key":"ariannas-center.attribute.atts_01H29ENGKQZRB7NRXNFX2S7CXK","ns":"org-data"},{"crowdinId":2074207,"key":"diverse-and-resilient.osvc_01H299KEPMP39QRGYK37JN97R7.name","ns":"org-data"},{"crowdinId":2073533,"key":"ariannas-center.osvc_01H299KEPVZ5C0T44NZMXJQSGB.description","ns":"org-data"},{"crowdinId":2073537,"key":"ariannas-center.osvc_01H299KEPYZV14QW51RE336RTE.description","ns":"org-data"},{"crowdinId":2073497,"key":"ariannas-center.attribute.atts_01H29ENGKQ2WN0CWGX1NHFEYVD","ns":"org-data"},{"crowdinId":2073501,"key":"ariannas-center.attribute.atts_01H29ENGKSQWGHGJ5PP1XXEQEK","ns":"org-data"},{"crowdinId":2073535,"key":"ariannas-center.osvc_01H299KEPVZ5C0T44NZMXJQSGB.name","ns":"org-data"},{"crowdinId":2073503,"key":"ariannas-center.attribute.atts_01H29ENGKTQSMNCS47469236SK","ns":"org-data"},{"crowdinId":2073505,"key":"ariannas-center.attribute.atts_01H29ENGKWEK7MQSWAHMF0GDTF","ns":"org-data"},{"crowdinId":2073539,"key":"ariannas-center.osvc_01H299KEPYZV14QW51RE336RTE.name","ns":"org-data"},{"crowdinId":2073541,"key":"ariannas-center.osvc_01H299KEQ1C4HW21YNMRF1X096.description","ns":"org-data"},{"crowdinId":2074151,"key":"desi-rainbow-parents-and-allies-drpa.osvc_01H299KERH78R2ABZGAGZWQ66W.name","ns":"org-data"},{"crowdinId":2073507,"key":"ariannas-center.attribute.atts_01H29ENGKWMWS54MS3SFCH6FX8","ns":"org-data"},{"crowdinId":2073545,"key":"ariannas-center.osvc_01H299KEQ4KSHD83FV8YYM6WZX.description","ns":"org-data"},{"crowdinId":2073543,"key":"ariannas-center.osvc_01H299KEQ1C4HW21YNMRF1X096.name","ns":"org-data"},{"crowdinId":2073509,"key":"ariannas-center.attribute.atts_01H29ENGKZMHEVRHHTE8A989PE","ns":"org-data"},{"crowdinId":2073511,"key":"ariannas-center.attribute.atts_01H29ENGKZP499RAT5P2Y5GVB1","ns":"org-data"},{"crowdinId":2073513,"key":"ariannas-center.attribute.atts_01H29ENGKZV3Y7AFMZ7FYJFS4Y","ns":"org-data"},{"crowdinId":2073547,"key":"ariannas-center.osvc_01H299KEQ4KSHD83FV8YYM6WZX.name","ns":"org-data"},{"crowdinId":2073515,"key":"ariannas-center.attribute.atts_01H29ENGM11SGVH44KNX2B8132","ns":"org-data"},{"crowdinId":2073549,"key":"ariannas-center.osvc_01H299KEQ7DDVV7QGR1ZJ1SNEX.description","ns":"org-data"},{"crowdinId":2073551,"key":"ariannas-center.osvc_01H299KEQ7DDVV7QGR1ZJ1SNEX.name","ns":"org-data"},{"crowdinId":2073519,"key":"ariannas-center.attribute.atts_01H29ENGM2C22JCTFWWK1JE3MB","ns":"org-data"},{"crowdinId":2073523,"key":"ariannas-center.attribute.atts_01H29ENGM5QY9NEE1KMZ6T9CNA","ns":"org-data"},{"crowdinId":2073525,"key":"ariannas-center.attribute.atts_01H29ENGM5TJD0WHN1MXG9BR4Y","ns":"org-data"},{"crowdinId":2073517,"key":"ariannas-center.attribute.atts_01H29ENGM269RAABF5S7RNY54X","ns":"org-data"},{"crowdinId":2073553,"key":"ariannas-center.osvc_01H299KEQAJ04D9DKAFJA2QMB2.description","ns":"org-data"},{"crowdinId":2073521,"key":"ariannas-center.attribute.atts_01H29ENGM5DZM0RS002NP5F6JW","ns":"org-data"},{"crowdinId":2074295,"key":"freedom-overground.oeml_01H299KEQFWYHGA5H5E816P4YY.description","ns":"org-data"},{"crowdinId":2073555,"key":"ariannas-center.osvc_01H299KEQAJ04D9DKAFJA2QMB2.name","ns":"org-data"},{"crowdinId":2074297,"key":"freedom-overground.osvc_01H299KEQFHAZJZGWMVWSX236V.description","ns":"org-data"},{"crowdinId":2074289,"key":"freedom-overground.attribute.atts_01H29ENGMBVVVNQ31SQ5D66VRJ","ns":"org-data"},{"crowdinId":2074285,"key":"freedom-overground.attribute.atts_01H29ENGMAXBPCC3PPF4SKFM6N","ns":"org-data"},{"crowdinId":2074301,"key":"freedom-overground.osvc_01H299KEQGDJWMDTTFFW0ZQPYF.description","ns":"org-data"},{"crowdinId":2074303,"key":"freedom-overground.osvc_01H299KEQGDJWMDTTFFW0ZQPYF.name","ns":"org-data"},{"crowdinId":2074291,"key":"freedom-overground.attribute.atts_01H29ENGMBZWX8Y6037EJ76BQG","ns":"org-data"},{"crowdinId":2074287,"key":"freedom-overground.attribute.atts_01H29ENGMAXG76GFQ66QS65A6M","ns":"org-data"},{"crowdinId":2077191,"key":"the-black-trans-travel-fund.osvc_01H299KEQN9GZ8YZHRHFTF04RA.description","ns":"org-data"},{"crowdinId":2077167,"key":"the-black-trans-travel-fund.attribute.atts_01H29ENGMF4JA5R4JTEBNHT765","ns":"org-data"},{"crowdinId":2074299,"key":"freedom-overground.osvc_01H299KEQFHAZJZGWMVWSX236V.name","ns":"org-data"},{"crowdinId":2077193,"key":"the-black-trans-travel-fund.osvc_01H299KEQN9GZ8YZHRHFTF04RA.name","ns":"org-data"},{"crowdinId":2077189,"key":"the-black-trans-travel-fund.oeml_01H299KEQMPJNQ5YKGSRZQY1MA.description","ns":"org-data"},{"crowdinId":2077195,"key":"the-black-trans-travel-fund.osvc_01H299KEQQW53YMJXGF4C868B5.description","ns":"org-data"},{"crowdinId":2077173,"key":"the-black-trans-travel-fund.attribute.atts_01H29ENGMHQR6SRZBJRYBK390A","ns":"org-data"},{"crowdinId":2074133,"key":"desi-rainbow-parents-and-allies-drpa.attribute.atts_01H29ENGNCD8B9J1TQ9KGF26F4","ns":"org-data"},{"crowdinId":2077169,"key":"the-black-trans-travel-fund.attribute.atts_01H29ENGMFSNK684MVAC475T9M","ns":"org-data"},{"crowdinId":2077175,"key":"the-black-trans-travel-fund.attribute.atts_01H29ENGMJCMR6HFYCW1ZWVSVB","ns":"org-data"},{"crowdinId":2077197,"key":"the-black-trans-travel-fund.osvc_01H299KEQQW53YMJXGF4C868B5.name","ns":"org-data"},{"crowdinId":2077171,"key":"the-black-trans-travel-fund.attribute.atts_01H29ENGMH2T72Q549ZHV620P6","ns":"org-data"},{"crowdinId":2077199,"key":"the-black-trans-travel-fund.osvc_01H299KEQSKJSD3Q6CKJ2MHZ65.description","ns":"org-data"},{"crowdinId":2077177,"key":"the-black-trans-travel-fund.attribute.atts_01H29ENGMKJP558FY5V0BYRVCR","ns":"org-data"},{"crowdinId":2077205,"key":"the-black-trans-travel-fund.osvc_01H299KEQV39RA5JYZRE3XBY9X.name","ns":"org-data"},{"crowdinId":2077201,"key":"the-black-trans-travel-fund.osvc_01H299KEQSKJSD3Q6CKJ2MHZ65.name","ns":"org-data"},{"crowdinId":2077181,"key":"the-black-trans-travel-fund.attribute.atts_01H29ENGMMTAS5DC81SWH0AVYF","ns":"org-data"},{"crowdinId":2077203,"key":"the-black-trans-travel-fund.osvc_01H299KEQV39RA5JYZRE3XBY9X.description","ns":"org-data"},{"crowdinId":2077179,"key":"the-black-trans-travel-fund.attribute.atts_01H29ENGMKNEE6JYCDW4PV49T7","ns":"org-data"},{"crowdinId":2077183,"key":"the-black-trans-travel-fund.attribute.atts_01H29ENGMR8Z9F11N1YVEGT5GF","ns":"org-data"},{"crowdinId":2077185,"key":"the-black-trans-travel-fund.attribute.atts_01H29ENGMS70T4NEG8J7J5TG57","ns":"org-data"},{"crowdinId":2075213,"key":"lurie-childrens-hospital.ophn_01H299KER0PT395GXM7YJMMPCP.description","ns":"org-data"},{"crowdinId":2075215,"key":"lurie-childrens-hospital.ophn_01H299KER0VEJXXGCT8QV8H43A.description","ns":"org-data"},{"crowdinId":2075211,"key":"lurie-childrens-hospital.ophn_01H299KEQZGJ6WTP9MDQY26Q80.description","ns":"org-data"},{"crowdinId":2076909,"key":"renaitre-counseling.osvc_01H299KES96GMK0QYBFACQ6NC1.name","ns":"org-data"},{"crowdinId":2076893,"key":"renaitre-counseling.attribute.atts_01H29ENGP0ZH6MX860EG3RZ8WY","ns":"org-data"},{"crowdinId":2075203,"key":"lurie-childrens-hospital.attribute.atts_01H29ENGMY6S51EX6MVXTWR2DX","ns":"org-data"},{"crowdinId":2075217,"key":"lurie-childrens-hospital.osvc_01H299KER1K6YXMFR52KSA4SS6.description","ns":"org-data"},{"crowdinId":2075205,"key":"lurie-childrens-hospital.attribute.atts_01H29ENGMYRYCVRQ42T0ZZAG94","ns":"org-data"},{"crowdinId":2075207,"key":"lurie-childrens-hospital.attribute.atts_01H29ENGMZ50YTFMS3T80ARE9W","ns":"org-data"},{"crowdinId":2077283,"key":"the-mahogany-project.ophn_01H299KER656B7MMTMDW2D4XEH.description","ns":"org-data"},{"crowdinId":2077281,"key":"the-mahogany-project.oeml_01H299KER6AEZXM14DSE6VG3Q6.description","ns":"org-data"},{"crowdinId":2077285,"key":"the-mahogany-project.osvc_01H299KER7MHV30G3HQK8VJMJ4.description","ns":"org-data"},{"crowdinId":2075219,"key":"lurie-childrens-hospital.osvc_01H299KER1K6YXMFR52KSA4SS6.name","ns":"org-data"},{"crowdinId":2077421,"key":"the-transformative-justice-law-project-of-illinois-tjlp.oeml_01H299KERB4G506N5RG49XAQBK.description","ns":"org-data"},{"crowdinId":2077273,"key":"the-mahogany-project.attribute.atts_01H29ENGN31PBXNVTHT3EWRG8Z","ns":"org-data"},{"crowdinId":2077275,"key":"the-mahogany-project.attribute.atts_01H29ENGN3GQSQ71V14GAF75X0","ns":"org-data"},{"crowdinId":2077277,"key":"the-mahogany-project.attribute.atts_01H29ENGN47AFDH9SXKCR5RWQY","ns":"org-data"},{"crowdinId":2077287,"key":"the-mahogany-project.osvc_01H299KER7MHV30G3HQK8VJMJ4.name","ns":"org-data"},{"crowdinId":2077417,"key":"the-transformative-justice-law-project-of-illinois-tjlp.attribute.atts_01H29ENGN8QHM8KY4N0N77N8MK","ns":"org-data"},{"crowdinId":2077423,"key":"the-transformative-justice-law-project-of-illinois-tjlp.ophn_01H299KERBSDZ6VEV1XESAJY5M.description","ns":"org-data"},{"crowdinId":2077425,"key":"the-transformative-justice-law-project-of-illinois-tjlp.osvc_01H299KERCJM70PFXE5B2XX6VH.description","ns":"org-data"},{"crowdinId":2077411,"key":"the-transformative-justice-law-project-of-illinois-tjlp.attribute.atts_01H29ENGN77DN9SJJGYZV0W19X","ns":"org-data"},{"crowdinId":2077413,"key":"the-transformative-justice-law-project-of-illinois-tjlp.attribute.atts_01H29ENGN7KNQMJVDMYZNFQRNJ","ns":"org-data"},{"crowdinId":2077427,"key":"the-transformative-justice-law-project-of-illinois-tjlp.osvc_01H299KERCJM70PFXE5B2XX6VH.name","ns":"org-data"},{"crowdinId":2074149,"key":"desi-rainbow-parents-and-allies-drpa.osvc_01H299KERH78R2ABZGAGZWQ66W.description","ns":"org-data"},{"crowdinId":2074131,"key":"desi-rainbow-parents-and-allies-drpa.attribute.atts_01H29ENGNC3JNVW8G1K9TD5K5B","ns":"org-data"},{"crowdinId":2077415,"key":"the-transformative-justice-law-project-of-illinois-tjlp.attribute.atts_01H29ENGN8K6KW2BT6T2VH3JK1","ns":"org-data"},{"crowdinId":2074135,"key":"desi-rainbow-parents-and-allies-drpa.attribute.atts_01H29ENGNCS2DFSA16BRTMSYFT","ns":"org-data"},{"crowdinId":2074153,"key":"desi-rainbow-parents-and-allies-drpa.osvc_01H299KERJQTE4PGD9Y8VYFMVD.description","ns":"org-data"},{"crowdinId":2074141,"key":"desi-rainbow-parents-and-allies-drpa.attribute.atts_01H29ENGNEVCSJ6GBGG95SMEXF","ns":"org-data"},{"crowdinId":2074155,"key":"desi-rainbow-parents-and-allies-drpa.osvc_01H299KERJQTE4PGD9Y8VYFMVD.name","ns":"org-data"},{"crowdinId":2074137,"key":"desi-rainbow-parents-and-allies-drpa.attribute.atts_01H29ENGNE3RCK9HHJGZ3W37DP","ns":"org-data"},{"crowdinId":2074139,"key":"desi-rainbow-parents-and-allies-drpa.attribute.atts_01H29ENGNECTVM8FFR9J2GV6GM","ns":"org-data"},{"crowdinId":2077043,"key":"sewa-aifw.ophn_01H299KERR28BP0AYW8A95SSQD.description","ns":"org-data"},{"crowdinId":2074159,"key":"desi-rainbow-parents-and-allies-drpa.osvc_01H299KERM5V7CWGBGCGT2B9JY.name","ns":"org-data"},{"crowdinId":2074145,"key":"desi-rainbow-parents-and-allies-drpa.attribute.atts_01H29ENGNGXGD4XV8KJTBN2574","ns":"org-data"},{"crowdinId":2074157,"key":"desi-rainbow-parents-and-allies-drpa.osvc_01H299KERM5V7CWGBGCGT2B9JY.description","ns":"org-data"},{"crowdinId":2077041,"key":"sewa-aifw.ophn_01H299KERR12490YAB7424XBV2.description","ns":"org-data"},{"crowdinId":2077047,"key":"sewa-aifw.osvc_01H299KERSSVS38N42Y48BK11Z.name","ns":"org-data"},{"crowdinId":2077033,"key":"sewa-aifw.attribute.atts_01H29ENGNMCDDBB2EW850PB7MC","ns":"org-data"},{"crowdinId":2074143,"key":"desi-rainbow-parents-and-allies-drpa.attribute.atts_01H29ENGNFD80XTZ8KC9XMKQSZ","ns":"org-data"},{"crowdinId":2077045,"key":"sewa-aifw.osvc_01H299KERSSVS38N42Y48BK11Z.description","ns":"org-data"},{"crowdinId":2077039,"key":"sewa-aifw.oeml_01H299KERRVS3T70VG244GCXR4.description","ns":"org-data"},{"crowdinId":2077035,"key":"sewa-aifw.attribute.atts_01H29ENGNN9E3AWJW4WFTH2KHN","ns":"org-data"},{"crowdinId":2074239,"key":"equality-community-center-ecc.ophn_01H299KERXFB2N9FT5FW72C8Y2.description","ns":"org-data"},{"crowdinId":2074241,"key":"equality-community-center-ecc.osvc_01H299KERZP3MF2VS0PAQ4W6PA.description","ns":"org-data"},{"crowdinId":2074229,"key":"equality-community-center-ecc.attribute.atts_01H29ENGNT3C3XZ7MF73Q18K9H","ns":"org-data"},{"crowdinId":2074237,"key":"equality-community-center-ecc.oeml_01H299KERXM01C7SKKXHY0K33N.description","ns":"org-data"},{"crowdinId":2074231,"key":"equality-community-center-ecc.attribute.atts_01H29ENGNT79Y8TGDHB8P2THJF","ns":"org-data"},{"crowdinId":2076905,"key":"renaitre-counseling.ophn_01H299KES9XC7DNBCATQ2SV6DX.description","ns":"org-data"},{"crowdinId":2074233,"key":"equality-community-center-ecc.attribute.atts_01H29ENGNVTW62BTQHJPMBCQK9","ns":"org-data"},{"crowdinId":2074243,"key":"equality-community-center-ecc.osvc_01H299KERZP3MF2VS0PAQ4W6PA.name","ns":"org-data"},{"crowdinId":2076903,"key":"renaitre-counseling.oeml_01H299KES9MRBS6N0NNXWXFWGV.description","ns":"org-data"},{"crowdinId":2076889,"key":"renaitre-counseling.attribute.atts_01H29ENGNZC91MSJFQXP8M86BV","ns":"org-data"},{"crowdinId":2076885,"key":"renaitre-counseling.attribute.atts_01H29ENGNYEGCHP9S02TSXCTKE","ns":"org-data"},{"crowdinId":2076887,"key":"renaitre-counseling.attribute.atts_01H29ENGNYEPK6JK1STKKT9N8E","ns":"org-data"},{"crowdinId":2076907,"key":"renaitre-counseling.osvc_01H299KES96GMK0QYBFACQ6NC1.description","ns":"org-data"},{"crowdinId":2076911,"key":"renaitre-counseling.osvc_01H299KESBHAS9B9RP5RP0ZBA7.description","ns":"org-data"},{"crowdinId":2076891,"key":"renaitre-counseling.attribute.atts_01H29ENGP09BM1FMG432JF52SG","ns":"org-data"},{"crowdinId":2076913,"key":"renaitre-counseling.osvc_01H299KESBHAS9B9RP5RP0ZBA7.name","ns":"org-data"},{"crowdinId":2076899,"key":"renaitre-counseling.attribute.atts_01H29ENGP2Y0WXHXCFHX750RND","ns":"org-data"},{"crowdinId":2076895,"key":"renaitre-counseling.attribute.atts_01H29ENGP1J814HVH27BT2WD7X","ns":"org-data"},{"crowdinId":2076897,"key":"renaitre-counseling.attribute.atts_01H29ENGP1X3WAZKD89CC6X14W","ns":"org-data"},{"crowdinId":2077537,"key":"trans-pride-initiative.ophn_01H299KESFX23PM59YN9VM3A5K.description","ns":"org-data"},{"crowdinId":2077535,"key":"trans-pride-initiative.oeml_01H299KESG5FC4EZ4PCK2963HM.description","ns":"org-data"},{"crowdinId":2077539,"key":"trans-pride-initiative.osvc_01H299KESH8NJS7HQPPJSTB7PZ.description","ns":"org-data"},{"crowdinId":2077529,"key":"trans-pride-initiative.attribute.atts_01H29ENGP7G6JH6HV5QPGRYR0M","ns":"org-data"},{"crowdinId":2077527,"key":"trans-pride-initiative.attribute.atts_01H29ENGP6WFVQVDWS43XB9AQ7","ns":"org-data"},{"crowdinId":2074641,"key":"jessis-house.attribute.atts_01H29ENGPAT3AZYTNP51RF4Q7J","ns":"org-data"},{"crowdinId":2077531,"key":"trans-pride-initiative.attribute.atts_01H29ENGP7V8ER74E0SFX0XM00","ns":"org-data"},{"crowdinId":2074639,"key":"jessis-house.attribute.atts_01H29ENGPAMKRKD8M6ZNYMZPF6","ns":"org-data"},{"crowdinId":2077541,"key":"trans-pride-initiative.osvc_01H299KESH8NJS7HQPPJSTB7PZ.name","ns":"org-data"},{"crowdinId":2074651,"key":"jessis-house.osvc_01H299KESP6J0TTF83H5B306MV.name","ns":"org-data"},{"crowdinId":2077709,"key":"transgender-assistance-program-of-virginia-tap-va.ophn_01H299KEST2HXWPZ8XWWWXEYMG.description","ns":"org-data"},{"crowdinId":2074643,"key":"jessis-house.attribute.atts_01H29ENGPB8DQQYT9NKX7V8FN4","ns":"org-data"},{"crowdinId":2074647,"key":"jessis-house.oeml_01H299KESPE8PSGGCZHWMQ6E34.description","ns":"org-data"},{"crowdinId":2077711,"key":"transgender-assistance-program-of-virginia-tap-va.osvc_01H299KESVKMEQJ58JZ9902KVY.description","ns":"org-data"},{"crowdinId":2077707,"key":"transgender-assistance-program-of-virginia-tap-va.oeml_01H299KESVVX9FAAHE9HZ8W2GN.description","ns":"org-data"},{"crowdinId":2074649,"key":"jessis-house.osvc_01H299KESP6J0TTF83H5B306MV.description","ns":"org-data"},{"crowdinId":2077697,"key":"transgender-assistance-program-of-virginia-tap-va.attribute.atts_01H29ENGPF4VEM47HD2XWP6Z8S","ns":"org-data"},{"crowdinId":2077699,"key":"transgender-assistance-program-of-virginia-tap-va.attribute.atts_01H29ENGPFAM3MBCTBY0CC3YMK","ns":"org-data"},{"crowdinId":2077715,"key":"transgender-assistance-program-of-virginia-tap-va.osvc_01H299KESW4FCWJAR2Y40RYT11.description","ns":"org-data"},{"crowdinId":2077713,"key":"transgender-assistance-program-of-virginia-tap-va.osvc_01H299KESVKMEQJ58JZ9902KVY.name","ns":"org-data"},{"crowdinId":2077701,"key":"transgender-assistance-program-of-virginia-tap-va.attribute.atts_01H29ENGPGAEKAY6H00JW2A5P5","ns":"org-data"},{"crowdinId":2073783,"key":"bridge-for-youth.ophn_01H299KET0G7F078AJX2AMHQPQ.description","ns":"org-data"},{"crowdinId":2073785,"key":"bridge-for-youth.ophn_01H299KET0SPAPZ1W6P0HTFG2V.description","ns":"org-data"},{"crowdinId":2077703,"key":"transgender-assistance-program-of-virginia-tap-va.attribute.atts_01H29ENGPGRZ1M5486M6QAHADR","ns":"org-data"},{"crowdinId":2077717,"key":"transgender-assistance-program-of-virginia-tap-va.osvc_01H299KESW4FCWJAR2Y40RYT11.name","ns":"org-data"},{"crowdinId":2077445,"key":"tigerrs.attribute.atts_01H29ENGQ0G97SCKQWNEXYNEX4","ns":"org-data"},{"crowdinId":2073789,"key":"bridge-for-youth.osvc_01H299KET3V793AMQNDH1S4RZC.description","ns":"org-data"},{"crowdinId":2073779,"key":"bridge-for-youth.oeml_01H299KET129RSJE6M1PX64M81.description","ns":"org-data"},{"crowdinId":2073781,"key":"bridge-for-youth.oeml_01H299KET1X46Z3QS8ET6B85SX.description","ns":"org-data"},{"crowdinId":2073791,"key":"bridge-for-youth.osvc_01H299KET3V793AMQNDH1S4RZC.name","ns":"org-data"},{"crowdinId":2073787,"key":"bridge-for-youth.ophn_01H299KET1ND6AN53MPYQCSMFJ.description","ns":"org-data"},{"crowdinId":2073767,"key":"bridge-for-youth.attribute.atts_01H29ENGPPDFA9CXXZRCK7XR2W","ns":"org-data"},{"crowdinId":2073797,"key":"bridge-for-youth.osvc_01H299KET4AEKYC327G195KBS7.description","ns":"org-data"},{"crowdinId":2073799,"key":"bridge-for-youth.osvc_01H299KET4AEKYC327G195KBS7.name","ns":"org-data"},{"crowdinId":2073769,"key":"bridge-for-youth.attribute.atts_01H29ENGPQBAWMFWSXB7A25ACP","ns":"org-data"},{"crowdinId":2073793,"key":"bridge-for-youth.osvc_01H299KET43GEN8PNDX7RKJCVC.description","ns":"org-data"},{"crowdinId":2073765,"key":"bridge-for-youth.attribute.atts_01H29ENGPPB24VJE1YSXA3ZCVF","ns":"org-data"},{"crowdinId":2073773,"key":"bridge-for-youth.attribute.atts_01H29ENGPQPJZC3RX83D88K2DD","ns":"org-data"},{"crowdinId":2073795,"key":"bridge-for-youth.osvc_01H299KET43GEN8PNDX7RKJCVC.name","ns":"org-data"},{"crowdinId":2073771,"key":"bridge-for-youth.attribute.atts_01H29ENGPQD9NFE0VA6C7G9RJC","ns":"org-data"},{"crowdinId":2077431,"key":"tigerrs.attribute.atts_01H29ENGPV44WNDG41339VN754","ns":"org-data"},{"crowdinId":2073775,"key":"bridge-for-youth.attribute.atts_01H29ENGPRB62FX7NZA3B8XDC3","ns":"org-data"},{"crowdinId":2077449,"key":"tigerrs.oeml_01H299KET84P1TQYYJVGMKC9QP.description","ns":"org-data"},{"crowdinId":2077453,"key":"tigerrs.osvc_01H299KET9H8PWJ4H0ZSCCGF2T.description","ns":"org-data"},{"crowdinId":2073801,"key":"bridge-for-youth.osvc_01H299KET5VMEHJ2M4BMJSA3G7.description","ns":"org-data"},{"crowdinId":2077451,"key":"tigerrs.oeml_01H299KET86ZSCKRX93VVQ53WP.description","ns":"org-data"},{"crowdinId":2073803,"key":"bridge-for-youth.osvc_01H299KET5VMEHJ2M4BMJSA3G7.name","ns":"org-data"},{"crowdinId":2077455,"key":"tigerrs.osvc_01H299KET9H8PWJ4H0ZSCCGF2T.name","ns":"org-data"},{"crowdinId":2077429,"key":"tigerrs.attribute.atts_01H29ENGPV1CY0FKWFEBG9M9BC","ns":"org-data"},{"crowdinId":2077433,"key":"tigerrs.attribute.atts_01H29ENGPWQBFBZP99Q3R1A34Q","ns":"org-data"},{"crowdinId":2077437,"key":"tigerrs.attribute.atts_01H29ENGPXWFE3NSX2ZAT1MYD9","ns":"org-data"},{"crowdinId":2077457,"key":"tigerrs.osvc_01H299KETBHNEFFJAVSWEEJJZ0.description","ns":"org-data"},{"crowdinId":2077435,"key":"tigerrs.attribute.atts_01H29ENGPXD857PKTPXMEDP7FT","ns":"org-data"},{"crowdinId":2077459,"key":"tigerrs.osvc_01H299KETBHNEFFJAVSWEEJJZ0.name","ns":"org-data"},{"crowdinId":2077439,"key":"tigerrs.attribute.atts_01H29ENGPYMT0YMT0FN6Y30CHR","ns":"org-data"},{"crowdinId":2077461,"key":"tigerrs.osvc_01H299KETDW8JMM392JCVVD8JR.description","ns":"org-data"},{"crowdinId":2077441,"key":"tigerrs.attribute.atts_01H29ENGPZ5P6AY25K3HCQ71PV","ns":"org-data"},{"crowdinId":2077463,"key":"tigerrs.osvc_01H299KETDW8JMM392JCVVD8JR.name","ns":"org-data"},{"crowdinId":2073489,"key":"adeline-inc.oeml_01H299KETH07QE57X7PHWNS4RH.description","ns":"org-data"},{"crowdinId":2077443,"key":"tigerrs.attribute.atts_01H29ENGPZBQ0YY7SGMVY5Z5GY","ns":"org-data"},{"crowdinId":2073485,"key":"adeline-inc.attribute.atts_01H29ENGQ4J67W12QZBKHP1W7T","ns":"org-data"},{"crowdinId":2074125,"key":"deep-cuts-barber-shop.ophn_01H299KETP9A7J2025KF3X75BJ.description","ns":"org-data"},{"crowdinId":2074123,"key":"deep-cuts-barber-shop.oeml_01H299KETPYDBJ4QHREHSWMWBA.description","ns":"org-data"},{"crowdinId":2074127,"key":"deep-cuts-barber-shop.osvc_01H299KETQKJAY6MHSKKG098BK.description","ns":"org-data"},{"crowdinId":2074117,"key":"deep-cuts-barber-shop.attribute.atts_01H29ENGQDP0FD9TQMFVQMH4SD","ns":"org-data"},{"crowdinId":2073483,"key":"adeline-inc.attribute.atts_01H29ENGQ4GDGK9HV6HBSFAS32","ns":"org-data"},{"crowdinId":2073495,"key":"adeline-inc.osvc_01H299KETJC3QB0MK4FFD4J72C.name","ns":"org-data"},{"crowdinId":2074115,"key":"deep-cuts-barber-shop.attribute.atts_01H29ENGQD3H4MD96KV8E9B4NZ","ns":"org-data"},{"crowdinId":2073493,"key":"adeline-inc.osvc_01H299KETJC3QB0MK4FFD4J72C.description","ns":"org-data"},{"crowdinId":2074129,"key":"deep-cuts-barber-shop.osvc_01H299KETQKJAY6MHSKKG098BK.name","ns":"org-data"},{"crowdinId":2074119,"key":"deep-cuts-barber-shop.attribute.atts_01H29ENGQE81YMEDEMGAC35SEC","ns":"org-data"},{"crowdinId":2074503,"key":"healthpartners-and-park-nicollet.attribute.atts_01H29ENGQH17PC2HEGBBRAJTAV","ns":"org-data"},{"crowdinId":2074509,"key":"healthpartners-and-park-nicollet.ophn_01H299KETVTV9DR44DHBN0JQ50.description","ns":"org-data"},{"crowdinId":2074511,"key":"healthpartners-and-park-nicollet.osvc_01H299KETW67JQF07A4V734PAX.description","ns":"org-data"},{"crowdinId":2074507,"key":"healthpartners-and-park-nicollet.ophn_01H299KETVQ5FPJKWEVPKAKWEY.description","ns":"org-data"},{"crowdinId":2074513,"key":"healthpartners-and-park-nicollet.osvc_01H299KETW67JQF07A4V734PAX.name","ns":"org-data"},{"crowdinId":2073977,"key":"centracare.osvc_01H299KEV1827Q772SPXF1EGP8.description","ns":"org-data"},{"crowdinId":2073975,"key":"centracare.ophn_01H299KEV0GT1V9GE08S6YC3GE.description","ns":"org-data"},{"crowdinId":2073967,"key":"centracare.attribute.atts_01H29ENGQPYTT249CVM4JFMCZC","ns":"org-data"},{"crowdinId":2073965,"key":"centracare.attribute.atts_01H29ENGQPXPN6RPRAJ91WB3Q7","ns":"org-data"},{"crowdinId":2073979,"key":"centracare.osvc_01H299KEV1827Q772SPXF1EGP8.name","ns":"org-data"},{"crowdinId":2073623,"key":"avenues-for-youth.ophn_01H299KEV6HYP4QK1CJFXAPMVB.description","ns":"org-data"},{"crowdinId":2073625,"key":"avenues-for-youth.ophn_01H299KEV74NK9D9VZECQREK40.description","ns":"org-data"},{"crowdinId":2073969,"key":"centracare.attribute.atts_01H29ENGQQ1J3B0J9XBADWMNSD","ns":"org-data"},{"crowdinId":2073971,"key":"centracare.attribute.atts_01H29ENGQREXQ3NH7GKMGB9TG4","ns":"org-data"},{"crowdinId":2073629,"key":"avenues-for-youth.ophn_01H299KEV7Z4PCXHWED60F5FYZ.description","ns":"org-data"},{"crowdinId":2073627,"key":"avenues-for-youth.ophn_01H299KEV7PMAG70QNBKJ981AB.description","ns":"org-data"},{"crowdinId":2073631,"key":"avenues-for-youth.ophn_01H299KEV83G9KK21ZCEEH51FT.description","ns":"org-data"},{"crowdinId":2073621,"key":"avenues-for-youth.oeml_01H299KEV8168G2AGEHGWZMR8G.description","ns":"org-data"},{"crowdinId":2073633,"key":"avenues-for-youth.osvc_01H299KEVA5NCJ72PJMGV4G14V.description","ns":"org-data"},{"crowdinId":2073601,"key":"avenues-for-youth.attribute.atts_01H29ENGQY2N8B7MNME63GBZB2","ns":"org-data"},{"crowdinId":2073603,"key":"avenues-for-youth.attribute.atts_01H29ENGQYYFR5FECK28SBR7RK","ns":"org-data"},{"crowdinId":2073597,"key":"avenues-for-youth.attribute.atts_01H29ENGQXBC1P9P2E7RHR9FTJ","ns":"org-data"},{"crowdinId":2073635,"key":"avenues-for-youth.osvc_01H299KEVA5NCJ72PJMGV4G14V.name","ns":"org-data"},{"crowdinId":2073599,"key":"avenues-for-youth.attribute.atts_01H29ENGQXN3MYMSVXEC52XEK2","ns":"org-data"},{"crowdinId":2073605,"key":"avenues-for-youth.attribute.atts_01H29ENGQZ7VYWDE03BNYG02C8","ns":"org-data"},{"crowdinId":2073637,"key":"avenues-for-youth.osvc_01H299KEVDTBV72E9G1S83SV25.description","ns":"org-data"},{"crowdinId":2073639,"key":"avenues-for-youth.osvc_01H299KEVDTBV72E9G1S83SV25.name","ns":"org-data"},{"crowdinId":2073611,"key":"avenues-for-youth.attribute.atts_01H29ENGR1DQD6D9RXW79DK3QY","ns":"org-data"},{"crowdinId":2073607,"key":"avenues-for-youth.attribute.atts_01H29ENGR012SANZRXZFBZXXSN","ns":"org-data"},{"crowdinId":2073641,"key":"avenues-for-youth.osvc_01H299KEVFBRGJ9VPD1CYYB9Y3.description","ns":"org-data"},{"crowdinId":2073613,"key":"avenues-for-youth.attribute.atts_01H29ENGR2JG56AVFBW0GZ8E1H","ns":"org-data"},{"crowdinId":2073609,"key":"avenues-for-youth.attribute.atts_01H29ENGR14A7R14KYEYNHX5RV","ns":"org-data"},{"crowdinId":2073645,"key":"avenues-for-youth.osvc_01H299KEVH7E921PXAB3ZZ90H9.description","ns":"org-data"},{"crowdinId":2073643,"key":"avenues-for-youth.osvc_01H299KEVFBRGJ9VPD1CYYB9Y3.name","ns":"org-data"},{"crowdinId":2073615,"key":"avenues-for-youth.attribute.atts_01H29ENGR35XQT0K6DMWYZQYDD","ns":"org-data"},{"crowdinId":2076843,"key":"red-door.ophn_01H299KEVNA01R8CB4MXJ6TRZ7.description","ns":"org-data"},{"crowdinId":2073647,"key":"avenues-for-youth.osvc_01H299KEVH7E921PXAB3ZZ90H9.name","ns":"org-data"},{"crowdinId":2073617,"key":"avenues-for-youth.attribute.atts_01H29ENGR48P4M6C9H704HKEKN","ns":"org-data"},{"crowdinId":2076841,"key":"red-door.ophn_01H299KEVN5PKH2XYP00VXXTW0.description","ns":"org-data"},{"crowdinId":2076785,"key":"red-door.attribute.atts_01H29ENGRAZ3PPWHFY8DE8RZZR","ns":"org-data"},{"crowdinId":2076781,"key":"red-door.attribute.atts_01H29ENGR9M2VNQVFS505CT5AA","ns":"org-data"},{"crowdinId":2076779,"key":"red-door.attribute.atts_01H29ENGR930F09JTMR8QTPR9V","ns":"org-data"},{"crowdinId":2076839,"key":"red-door.oeml_01H299KEVPZ9M1S7KTXYPTKGP3.description","ns":"org-data"},{"crowdinId":2076845,"key":"red-door.osvc_01H299KEVQ3QX9R5Z1KRZTCG30.description","ns":"org-data"},{"crowdinId":2076847,"key":"red-door.osvc_01H299KEVQ3QX9R5Z1KRZTCG30.name","ns":"org-data"},{"crowdinId":2076783,"key":"red-door.attribute.atts_01H29ENGRAMJ95Y2PA6Y1YMEXD","ns":"org-data"},{"crowdinId":2076849,"key":"red-door.osvc_01H299KEVTNXDHDA7PYKYE7JFQ.description","ns":"org-data"},{"crowdinId":2076791,"key":"red-door.attribute.atts_01H29ENGRDY6FC66A7KXGHZ0WB","ns":"org-data"},{"crowdinId":2076787,"key":"red-door.attribute.atts_01H29ENGRC6WZBAXA2BMKZG90F","ns":"org-data"},{"crowdinId":2076853,"key":"red-door.osvc_01H299KEW2FJ0HPCZ1RHRM6CEG.description","ns":"org-data"},{"crowdinId":2076789,"key":"red-door.attribute.atts_01H29ENGRCG391GTDFEDB4ZHPZ","ns":"org-data"},{"crowdinId":2076871,"key":"red-door.osvc_01H299KEWCNB5E5JS21BJD5FNG.name","ns":"org-data"},{"crowdinId":2076817,"key":"red-door.attribute.atts_01H29ENGRQTQHFJG0GP134TQPM","ns":"org-data"},{"crowdinId":2076851,"key":"red-door.osvc_01H299KEVTNXDHDA7PYKYE7JFQ.name","ns":"org-data"},{"crowdinId":2076795,"key":"red-door.attribute.atts_01H29ENGREGW17XQTR9V9TNG2E","ns":"org-data"},{"crowdinId":2076793,"key":"red-door.attribute.atts_01H29ENGRE7QK75MFV7TKV3E2M","ns":"org-data"},{"crowdinId":2076855,"key":"red-door.osvc_01H299KEW2FJ0HPCZ1RHRM6CEG.name","ns":"org-data"},{"crowdinId":2076797,"key":"red-door.attribute.atts_01H29ENGRFSKJ4BK05QS400ZHC","ns":"org-data"},{"crowdinId":2076799,"key":"red-door.attribute.atts_01H29ENGRG987GM7PKCXDZZENR","ns":"org-data"},{"crowdinId":2076857,"key":"red-door.osvc_01H299KEW4J57C60BSXPBFKGJT.description","ns":"org-data"},{"crowdinId":2076859,"key":"red-door.osvc_01H299KEW4J57C60BSXPBFKGJT.name","ns":"org-data"},{"crowdinId":2076801,"key":"red-door.attribute.atts_01H29ENGRHDHENSG00PAMBPQGF","ns":"org-data"},{"crowdinId":2076803,"key":"red-door.attribute.atts_01H29ENGRHJPSHMZVZD1RCWXG0","ns":"org-data"},{"crowdinId":2076863,"key":"red-door.osvc_01H299KEW70FRQFFWT7NT3N4PW.name","ns":"org-data"},{"crowdinId":2076861,"key":"red-door.osvc_01H299KEW70FRQFFWT7NT3N4PW.description","ns":"org-data"},{"crowdinId":2076805,"key":"red-door.attribute.atts_01H29ENGRJAB1A4M2TV5W44ZKG","ns":"org-data"},{"crowdinId":2076809,"key":"red-door.attribute.atts_01H29ENGRK44NMSDCPHC92JB6T","ns":"org-data"},{"crowdinId":2076865,"key":"red-door.osvc_01H299KEWATADHA47AVBNVBRGK.description","ns":"org-data"},{"crowdinId":2076815,"key":"red-door.attribute.atts_01H29ENGRPJT94GMGY7YAEHE98","ns":"org-data"},{"crowdinId":2076867,"key":"red-door.osvc_01H299KEWATADHA47AVBNVBRGK.name","ns":"org-data"},{"crowdinId":2076807,"key":"red-door.attribute.atts_01H29ENGRK0G2PST1G1KWCNSSS","ns":"org-data"},{"crowdinId":2076811,"key":"red-door.attribute.atts_01H29ENGRNBPMRN3DPVXBNGA08","ns":"org-data"},{"crowdinId":2076813,"key":"red-door.attribute.atts_01H29ENGRNBRTNNCWQP3W92PMV","ns":"org-data"},{"crowdinId":2076823,"key":"red-door.attribute.atts_01H29ENGRSP9J4VF4ZVTTZADW8","ns":"org-data"},{"crowdinId":2076869,"key":"red-door.osvc_01H299KEWCNB5E5JS21BJD5FNG.description","ns":"org-data"},{"crowdinId":2076873,"key":"red-door.osvc_01H299KEWEBJ7X6KF9CNVRSVW1.description","ns":"org-data"},{"crowdinId":2076819,"key":"red-door.attribute.atts_01H29ENGRR9FTJKBAX2R6RP8T9","ns":"org-data"},{"crowdinId":2076875,"key":"red-door.osvc_01H299KEWEBJ7X6KF9CNVRSVW1.name","ns":"org-data"},{"crowdinId":2076825,"key":"red-door.attribute.atts_01H29ENGRVAWMCMTHM1T3J4RZA","ns":"org-data"},{"crowdinId":2076827,"key":"red-door.attribute.atts_01H29ENGRVQ3DXV4669GMFT93X","ns":"org-data"},{"crowdinId":2076821,"key":"red-door.attribute.atts_01H29ENGRSBKH7731MAYFBDYC6","ns":"org-data"},{"crowdinId":2076879,"key":"red-door.osvc_01H299KEWHHNH81FKDJ7H0S0MZ.name","ns":"org-data"},{"crowdinId":2076877,"key":"red-door.osvc_01H299KEWHHNH81FKDJ7H0S0MZ.description","ns":"org-data"},{"crowdinId":2076881,"key":"red-door.osvc_01H299KEWK0E8PCR0SSJ29WFQZ.description","ns":"org-data"},{"crowdinId":2076829,"key":"red-door.attribute.atts_01H29ENGRWSMATTZC87YK4JEA5","ns":"org-data"},{"crowdinId":2076831,"key":"red-door.attribute.atts_01H29ENGRXNV4K2Z5MPY7QGJGD","ns":"org-data"},{"crowdinId":2076833,"key":"red-door.attribute.atts_01H29ENGRXXVECH4NEA33B8JFA","ns":"org-data"},{"crowdinId":2076883,"key":"red-door.osvc_01H299KEWK0E8PCR0SSJ29WFQZ.name","ns":"org-data"},{"crowdinId":2076589,"key":"rainbow-health.ophn_01H299KEWVXQB84DTNT4J59R64.description","ns":"org-data"},{"crowdinId":2076579,"key":"rainbow-health.ophn_01H299KEWTAV8713ZCPKDQPPM2.description","ns":"org-data"},{"crowdinId":2076583,"key":"rainbow-health.ophn_01H299KEWTHNHXNQ7NXXWMWEBF.description","ns":"org-data"},{"crowdinId":2076577,"key":"rainbow-health.ophn_01H299KEWSY0DHP8ERXW6PNP1X.description","ns":"org-data"},{"crowdinId":2076575,"key":"rainbow-health.ophn_01H299KEWSH1PSQDVDZY7RWTT5.description","ns":"org-data"},{"crowdinId":2076581,"key":"rainbow-health.ophn_01H299KEWTD0TCC132GPDMTCNK.description","ns":"org-data"},{"crowdinId":2076835,"key":"red-door.attribute.atts_01H29ENGRY8HG8MC4XEQ1F1GRD","ns":"org-data"},{"crowdinId":2076587,"key":"rainbow-health.ophn_01H299KEWVR5QDRGY0TKXM4482.description","ns":"org-data"},{"crowdinId":2076585,"key":"rainbow-health.ophn_01H299KEWVNW0NQMJFP8AX1K6C.description","ns":"org-data"},{"crowdinId":2076591,"key":"rainbow-health.ophn_01H299KEWWED0YBWY4RT6HCNA7.description","ns":"org-data"},{"crowdinId":2076565,"key":"rainbow-health.oeml_01H299KEWW4D0SJJH3MM0137GK.description","ns":"org-data"},{"crowdinId":2076569,"key":"rainbow-health.oeml_01H299KEWW8ZB7Z5DKD28QA85G.description","ns":"org-data"},{"crowdinId":2076573,"key":"rainbow-health.oeml_01H299KEWWSY7P7J6ZPRBVRRQE.description","ns":"org-data"},{"crowdinId":2076571,"key":"rainbow-health.oeml_01H299KEWWG89J7CFTGDX0QK38.description","ns":"org-data"},{"crowdinId":2076567,"key":"rainbow-health.oeml_01H299KEWW5SHTFN83T2HWZ90S.description","ns":"org-data"},{"crowdinId":2076593,"key":"rainbow-health.osvc_01H299KEX0STHZHPF77JH0C12B.description","ns":"org-data"},{"crowdinId":2076497,"key":"rainbow-health.attribute.atts_01H29ENGS7RCZ52G83J2V0708P","ns":"org-data"},{"crowdinId":2076595,"key":"rainbow-health.osvc_01H299KEX0STHZHPF77JH0C12B.name","ns":"org-data"},{"crowdinId":2076597,"key":"rainbow-health.osvc_01H299KEX1VJZ9DAM7E4NKMWHY.description","ns":"org-data"},{"crowdinId":2076601,"key":"rainbow-health.osvc_01H299KEX3NZ46NTJA3355PMZA.description","ns":"org-data"},{"crowdinId":2076501,"key":"rainbow-health.attribute.atts_01H29ENGS9YCGWQY8FNE7ZQ9AH","ns":"org-data"},{"crowdinId":2076503,"key":"rainbow-health.attribute.atts_01H29ENGSACXD5GNNP193EQDTC","ns":"org-data"},{"crowdinId":2076499,"key":"rainbow-health.attribute.atts_01H29ENGS9R24ZQDVE3ZJZ9E6R","ns":"org-data"},{"crowdinId":2076599,"key":"rainbow-health.osvc_01H299KEX1VJZ9DAM7E4NKMWHY.name","ns":"org-data"},{"crowdinId":2076507,"key":"rainbow-health.attribute.atts_01H29ENGSBSYDMVSTGSDNTVP33","ns":"org-data"},{"crowdinId":2076603,"key":"rainbow-health.osvc_01H299KEX3NZ46NTJA3355PMZA.name","ns":"org-data"},{"crowdinId":2076605,"key":"rainbow-health.osvc_01H299KEX51HEFEFNNFCJN7RCF.description","ns":"org-data"},{"crowdinId":2076511,"key":"rainbow-health.attribute.atts_01H29ENGSCEPKBQ098SAS8TYTZ","ns":"org-data"},{"crowdinId":2076505,"key":"rainbow-health.attribute.atts_01H29ENGSBCD9Y427XMBBS3DAA","ns":"org-data"},{"crowdinId":2076509,"key":"rainbow-health.attribute.atts_01H29ENGSC4Z15YD1GMD54TSNQ","ns":"org-data"},{"crowdinId":2076513,"key":"rainbow-health.attribute.atts_01H29ENGSDBXX7KRKNDQSR8Z5T","ns":"org-data"},{"crowdinId":2076517,"key":"rainbow-health.attribute.atts_01H29ENGSE04EAHVXZP6GNVY2R","ns":"org-data"},{"crowdinId":2076607,"key":"rainbow-health.osvc_01H299KEX51HEFEFNNFCJN7RCF.name","ns":"org-data"},{"crowdinId":2076515,"key":"rainbow-health.attribute.atts_01H29ENGSDZHS0H8WEC5WB9P26","ns":"org-data"},{"crowdinId":2076609,"key":"rainbow-health.osvc_01H299KEX74A245PCJ3KFMEQP3.description","ns":"org-data"},{"crowdinId":2076519,"key":"rainbow-health.attribute.atts_01H29ENGSEB5ZGF2VZV4DQH8RY","ns":"org-data"},{"crowdinId":2076523,"key":"rainbow-health.attribute.atts_01H29ENGSFK50STB40KJ0F7ZQD","ns":"org-data"},{"crowdinId":2076521,"key":"rainbow-health.attribute.atts_01H29ENGSFHJW44RFMPFVJV9MW","ns":"org-data"},{"crowdinId":2076611,"key":"rainbow-health.osvc_01H299KEX74A245PCJ3KFMEQP3.name","ns":"org-data"},{"crowdinId":2076527,"key":"rainbow-health.attribute.atts_01H29ENGSGRC8XTJ5AHT4V675P","ns":"org-data"},{"crowdinId":2076531,"key":"rainbow-health.attribute.atts_01H29ENGSHKEN9K445HGHQQQ9K","ns":"org-data"},{"crowdinId":2076533,"key":"rainbow-health.attribute.atts_01H29ENGSJGS3FTTT0G197X8DE","ns":"org-data"},{"crowdinId":2076613,"key":"rainbow-health.osvc_01H299KEX9MXREMCJYDT76ZBP1.description","ns":"org-data"},{"crowdinId":2076525,"key":"rainbow-health.attribute.atts_01H29ENGSGJ1AATZ4C2Z2YPB5F","ns":"org-data"},{"crowdinId":2076615,"key":"rainbow-health.osvc_01H299KEX9MXREMCJYDT76ZBP1.name","ns":"org-data"},{"crowdinId":2076617,"key":"rainbow-health.osvc_01H299KEXBHJD8RFP0N1FF922J.description","ns":"org-data"},{"crowdinId":2076529,"key":"rainbow-health.attribute.atts_01H29ENGSH3PD3TW920BYFXGJS","ns":"org-data"},{"crowdinId":2076535,"key":"rainbow-health.attribute.atts_01H29ENGSJVX8WBRV77C7KH2M8","ns":"org-data"},{"crowdinId":2076619,"key":"rainbow-health.osvc_01H299KEXBHJD8RFP0N1FF922J.name","ns":"org-data"},{"crowdinId":2076537,"key":"rainbow-health.attribute.atts_01H29ENGSKFRNJ0ST5WBGQ2P83","ns":"org-data"},{"crowdinId":2076621,"key":"rainbow-health.osvc_01H299KEXFTD0HMTC92MQW5N6B.description","ns":"org-data"},{"crowdinId":2076541,"key":"rainbow-health.attribute.atts_01H29ENGSNNN5Q3WTXRXB6SG8J","ns":"org-data"},{"crowdinId":2076539,"key":"rainbow-health.attribute.atts_01H29ENGSN359204M9HA88WCZV","ns":"org-data"},{"crowdinId":2076623,"key":"rainbow-health.osvc_01H299KEXFTD0HMTC92MQW5N6B.name","ns":"org-data"},{"crowdinId":2076543,"key":"rainbow-health.attribute.atts_01H29ENGSPQC8KKZZWH40DT639","ns":"org-data"},{"crowdinId":2076625,"key":"rainbow-health.osvc_01H299KEXH1V2CSPBZPGS3YPWQ.description","ns":"org-data"},{"crowdinId":2076547,"key":"rainbow-health.attribute.atts_01H29ENGSQGFK65QAR8YNRWSPX","ns":"org-data"},{"crowdinId":2076545,"key":"rainbow-health.attribute.atts_01H29ENGSQ3VQ788JM3E9C37M4","ns":"org-data"},{"crowdinId":2076631,"key":"rainbow-health.osvc_01H299KEXJS649C5QCF4CC8V3G.name","ns":"org-data"},{"crowdinId":2076549,"key":"rainbow-health.attribute.atts_01H29ENGSR4DXRC0PNG50W15R1","ns":"org-data"},{"crowdinId":2076629,"key":"rainbow-health.osvc_01H299KEXJS649C5QCF4CC8V3G.description","ns":"org-data"},{"crowdinId":2076555,"key":"rainbow-health.attribute.atts_01H29ENGSSM37RX3VNDPH5XKRZ","ns":"org-data"},{"crowdinId":2076551,"key":"rainbow-health.attribute.atts_01H29ENGSRB5C42V35P4MS57ZJ","ns":"org-data"},{"crowdinId":2076553,"key":"rainbow-health.attribute.atts_01H29ENGSS778YQFMMP60F3Y35","ns":"org-data"},{"crowdinId":2076627,"key":"rainbow-health.osvc_01H299KEXH1V2CSPBZPGS3YPWQ.name","ns":"org-data"},{"crowdinId":2074251,"key":"face-to-face.attribute.atts_01H29ENGTKBTH7PPXX1EAC34BW","ns":"org-data"},{"crowdinId":2076557,"key":"rainbow-health.attribute.atts_01H29ENGSWADSKQNDYYS5AZ429","ns":"org-data"},{"crowdinId":2076633,"key":"rainbow-health.osvc_01H299KEXPVFJMSBCDKGAF70G6.description","ns":"org-data"},{"crowdinId":2076559,"key":"rainbow-health.attribute.atts_01H29ENGSWSYDNPQKFH2RFA8GT","ns":"org-data"},{"crowdinId":2076635,"key":"rainbow-health.osvc_01H299KEXPVFJMSBCDKGAF70G6.name","ns":"org-data"},{"crowdinId":2076927,"key":"restart-inc.ophn_01H299KEXTT1G6BGTZDWJG7J70.description","ns":"org-data"},{"crowdinId":2076561,"key":"rainbow-health.attribute.atts_01H29ENGSX1THZ8D9MKGGPD6JJ","ns":"org-data"},{"crowdinId":2076929,"key":"restart-inc.osvc_01H299KEXVDHB9TXQ71QXKN341.description","ns":"org-data"},{"crowdinId":2076915,"key":"restart-inc.attribute.atts_01H29ENGT1A3TBC7EE6QCZ47G9","ns":"org-data"},{"crowdinId":2076925,"key":"restart-inc.ophn_01H299KEXTC03XMR0N0YPF2P5S.description","ns":"org-data"},{"crowdinId":2076923,"key":"restart-inc.oeml_01H299KEXT7M90S5DBGQVYZ6K3.description","ns":"org-data"},{"crowdinId":2076917,"key":"restart-inc.attribute.atts_01H29ENGT1X915RK5K0R7T9CWG","ns":"org-data"},{"crowdinId":2076931,"key":"restart-inc.osvc_01H299KEXVDHB9TXQ71QXKN341.name","ns":"org-data"},{"crowdinId":2076919,"key":"restart-inc.attribute.atts_01H29ENGT2KY7PCANVRYDSHZT3","ns":"org-data"},{"crowdinId":2077599,"key":"transforming-families-minnesota.attribute.atts_01H29ENGT903E3WFA6ZM6XT860","ns":"org-data"},{"crowdinId":2077607,"key":"transforming-families-minnesota.oeml_01H299KEXZ7MCP4D3PBKD3PVSK.description","ns":"org-data"},{"crowdinId":2077603,"key":"transforming-families-minnesota.attribute.atts_01H29ENGTAY9EV2BZB9BZ6C2HQ","ns":"org-data"},{"crowdinId":2077601,"key":"transforming-families-minnesota.attribute.atts_01H29ENGTA9XEP9RH07YT892ZD","ns":"org-data"},{"crowdinId":2077611,"key":"transforming-families-minnesota.osvc_01H299KEY0DBNZ2XZTYF3440CP.name","ns":"org-data"},{"crowdinId":2077609,"key":"transforming-families-minnesota.osvc_01H299KEY0DBNZ2XZTYF3440CP.description","ns":"org-data"},{"crowdinId":2074271,"key":"face-to-face.ophn_01H299KEY4Z0NJQGHGGE5W8G42.description","ns":"org-data"},{"crowdinId":2074273,"key":"face-to-face.osvc_01H299KEY7V8D65RPSB54EQ77H.description","ns":"org-data"},{"crowdinId":2074269,"key":"face-to-face.ophn_01H299KEY48ZSRRHT3XHRJ4KSD.description","ns":"org-data"},{"crowdinId":2074247,"key":"face-to-face.attribute.atts_01H29ENGTHXWQYFT4TRY60BD2M","ns":"org-data"},{"crowdinId":2074245,"key":"face-to-face.attribute.atts_01H29ENGTHC3AXB8SMSPDT21SV","ns":"org-data"},{"crowdinId":2074249,"key":"face-to-face.attribute.atts_01H29ENGTJENQ1R6W901P81F82","ns":"org-data"},{"crowdinId":2074277,"key":"face-to-face.osvc_01H299KEYAQYCFMD44856W0BKH.description","ns":"org-data"},{"crowdinId":2074275,"key":"face-to-face.osvc_01H299KEY7V8D65RPSB54EQ77H.name","ns":"org-data"},{"crowdinId":2074255,"key":"face-to-face.attribute.atts_01H29ENGTM32BVY8NY8Q0MVCQV","ns":"org-data"},{"crowdinId":2414725,"key":"immigration-none","ns":"user"},{"crowdinId":2074257,"key":"face-to-face.attribute.atts_01H29ENGTM3D9H0K03XEKV4BMV","ns":"org-data"},{"crowdinId":2074253,"key":"face-to-face.attribute.atts_01H29ENGTM0CY05CNY27QVGBT3","ns":"org-data"},{"crowdinId":2074261,"key":"face-to-face.attribute.atts_01H29ENGTPZCEKFC7S2K9YJFWR","ns":"org-data"},{"crowdinId":2414743,"key":"userserviceprovider.case-mananger","ns":"attribute"},{"crowdinId":2414727,"key":"immigration-prefer-not-to-say","ns":"user"},{"crowdinId":2074279,"key":"face-to-face.osvc_01H299KEYAQYCFMD44856W0BKH.name","ns":"org-data"},{"crowdinId":2414747,"key":"userserviceprovider.lawyer","ns":"attribute"},{"crowdinId":2414751,"key":"userserviceprovider.paralegal","ns":"attribute"},{"crowdinId":2414753,"key":"userserviceprovider.social-worker","ns":"attribute"},{"crowdinId":2074263,"key":"face-to-face.attribute.atts_01H29ENGTQ3D7KVJSYEKV0HE2Q","ns":"org-data"},{"crowdinId":2074283,"key":"face-to-face.osvc_01H299KEYDQGVW9NY5F8X4N1PW.name","ns":"org-data"},{"crowdinId":2074265,"key":"face-to-face.attribute.atts_01H29ENGTRKV65T5W0M7AFCBCW","ns":"org-data"},{"crowdinId":2074281,"key":"face-to-face.osvc_01H299KEYDQGVW9NY5F8X4N1PW.description","ns":"org-data"},{"crowdinId":2074259,"key":"face-to-face.attribute.atts_01H29ENGTP42PWQ0RYVFNWJVZA","ns":"org-data"},{"crowdinId":2078451,"key":"community-support.reentry-services","ns":"services"},{"crowdinId":2414749,"key":"userserviceprovider.other","ns":"attribute"},{"crowdinId":2078449,"key":"community-support.community-social-groups","ns":"services"},{"crowdinId":2414757,"key":"userserviceprovider.therapist-counselor","ns":"attribute"},{"crowdinId":2414755,"key":"userserviceprovider.teacher","ns":"attribute"},{"crowdinId":2078453,"key":"sports-and-entertainment.art-music-literature","ns":"services"}] \ No newline at end of file diff --git a/packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/index.ts b/packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/index.ts new file mode 100644 index 0000000000..4ef954ce7e --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/index.ts @@ -0,0 +1,68 @@ +import { z } from 'zod' + +import fs from 'fs' +import path from 'path' + +import { prisma } from '~db/index' +import { batchRunner } from '~db/prisma/batchRunner' +import { type ListrJob } from '~db/prisma/dataMigrationRunner' +import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' +/** Define the job metadata here. */ +const jobDef: JobDef = { + jobId: '2023-06-27_add-crowdin-ids', + title: 'Add CrowdIn ids to database', + createdBy: 'Joe Karow', +} +/** + * Job export - this variable MUST be UNIQUE + * + * Use the format `jobYYYYMMDD` and append a letter afterwards if there is already a job with this name. + * + * @example `job20230404` + * + * @example `job20230404b` + */ +export const job20230627a = { + title: `${jobDef.jobId} - ${jobDef.title}`, + task: async (_ctx, task) => { + /** + * Do not edit this part + * + * This ensures that jobs are only run once + */ + if (await jobPreRunner(jobDef, task)) { + return task.skip(`${jobDef.jobId} - Migration has already been run.`) + } + /** + * Start defining your data migration from here. + * + * To log output, use `task.output = 'Message to log'` + * + * This will be written to `stdout` and to a log file in `/prisma/migration-logs/` + */ + + // Do stuff + const DataSchema = z + .object({ + crowdinId: z.number(), + key: z.string(), + ns: z.string(), + }) + .array() + + const data = DataSchema.parse(JSON.parse(fs.readFileSync(path.resolve(__dirname, 'data.json'), 'utf-8'))) + + const transactions = data.map(({ crowdinId, key, ns }) => + prisma.translationKey.update({ where: { ns_key: { ns, key } }, data: { crowdinId } }) + ) + + await batchRunner(transactions, task, 'CrowdIn ID updates') + + /** + * DO NOT REMOVE BELOW + * + * This writes a record to the DB to register that this migration has run successfully. + */ + await jobPostRunner(jobDef) + }, +} satisfies ListrJob diff --git a/packages/db/prisma/data-migrations/index.ts b/packages/db/prisma/data-migrations/index.ts index f27330af8a..60e9bedbb7 100644 --- a/packages/db/prisma/data-migrations/index.ts +++ b/packages/db/prisma/data-migrations/index.ts @@ -32,4 +32,5 @@ export * from './2023-06-14_remote-tags/index' export * from './2023-06-20_tags-for-suggestions' export * from './2023-06-21_update-sourceid' export * from './2023-06-26_active-country' +export * from './2023-06-27_add-crowdin-ids/index' // codegen:end diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2dbb4b13d..542d549dd3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1162,6 +1162,9 @@ importers: slugify: specifier: 1.6.6 version: 1.6.6 + sql-bricks-postgres: + specifier: 0.6.0 + version: 0.6.0 tiny-invariant: specifier: 1.3.1 version: 1.3.1 @@ -23556,6 +23559,17 @@ packages: /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + /sql-bricks-postgres@0.6.0: + resolution: {integrity: sha512-JbStbgWRWSV9pOnJLjBUzgFT4z3n2e90IyZsCCMLa/bYBg3uIyd8Uawk567gt4b25TRKDdX91+ru5SneCqeMgA==} + dependencies: + sql-bricks: 3.0.0 + underscore: 1.13.6 + dev: true + + /sql-bricks@3.0.0: + resolution: {integrity: sha512-P9fXYWdPFOcU2uQr7hwzNa0m6qOjMSV6wmo3DPk1Nzxh9rZWyjgbFaRji41EMV1uHps4SCgwa+Cdv0tUJ+mySw==} + dev: true + /ssri@10.0.4: resolution: {integrity: sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -24672,6 +24686,10 @@ packages: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + /underscore@1.13.6: + resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} + dev: true + /undici@5.11.0: resolution: {integrity: sha512-oWjWJHzFet0Ow4YZBkyiJwiK5vWqEYoH7BINzJAJOLedZ++JpAlCbUktW2GQ2DS2FpKmxD/JMtWUUWl1BtghGw==} engines: {node: '>=12.18'} From 65138e0ba737c40bc1c776a3a55524b00ab3cd7a Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 27 Jun 2023 17:40:21 -0400 Subject: [PATCH 15/66] update types, utils --- packages/db/seed/lib/icon.ts | 5 + packages/db/seed/recon/input/types.ts | 442 ++++++++++++++++---------- packages/db/seed/recon/lib/output.ts | 14 +- packages/db/seed/recon/lib/utils.ts | 2 + 4 files changed, 294 insertions(+), 169 deletions(-) diff --git a/packages/db/seed/lib/icon.ts b/packages/db/seed/lib/icon.ts index b53aae32c3..53129177aa 100644 --- a/packages/db/seed/lib/icon.ts +++ b/packages/db/seed/lib/icon.ts @@ -24,6 +24,8 @@ * `🔵 info` * * `😵 error` + * + * `🧑‍💻 update` */ export type Log = (message: string, icon?: IconList, indent?: boolean, silent?: boolean) => void @@ -41,6 +43,7 @@ export type IconList = | 'trash' | 'info' | 'error' + | 'update' export const iconList = (icon: IconList) => { switch (icon) { @@ -70,5 +73,7 @@ export const iconList = (icon: IconList) => { return '🔵' case 'error': return '😵' + case 'update': + return '🧑‍💻' } } diff --git a/packages/db/seed/recon/input/types.ts b/packages/db/seed/recon/input/types.ts index b6721fee9d..d5a74fdadb 100644 --- a/packages/db/seed/recon/input/types.ts +++ b/packages/db/seed/recon/input/types.ts @@ -1,15 +1,15 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +// Generated by ts-to-zod import { z } from 'zod' -// Generated by https://quicktype.io - -export interface ExistingOrgs { +export interface Organizations { _id: ID is_published: boolean - description: string + description?: string name: string properties?: { [key: string]: string } slug: string - verified_at?: EdAt + verified_at?: EdAt | null website?: string emails: Email[] locations: Location[] @@ -30,9 +30,9 @@ export interface ExistingOrgs { venue_id?: string photos?: Photo[] social_media?: SocialMedia[] - notes_log?: NotesLog[] is_deleted: boolean - adminEmails?: unknown[] + notes_log?: NotesLog[] + adminEmails?: any[] } export interface ID { @@ -40,7 +40,7 @@ export interface ID { } export interface EdAt { - $date: string + $date: Date } export interface Email { @@ -52,6 +52,11 @@ export interface Email { show_on_organization?: boolean title?: null | string title_ES?: string + title_es?: EEs +} + +export enum EEs { + InitialValue = 'initial value', } export interface Location { @@ -59,11 +64,11 @@ export interface Location { _id: ID address?: string city?: string - is_primary: boolean + is_primary?: boolean lat?: string long?: string name?: string - show_on_organization: boolean + show_on_organization?: boolean state?: string unit?: string zip_code?: string @@ -79,7 +84,7 @@ export enum CountryES { Canada = 'Canada', CountryESCanada = ' Canada', CountryESEEUU = 'EE.UU', - CountryESEstadosUnidos = 'Estados Unidos', + CountryESEstadosUnidos = 'Estados Unidos ', CountryESMexico = 'Mexico ', CountryESMéxico = 'México ', CountryESUnitedStates = 'United States ', @@ -88,12 +93,13 @@ export enum CountryES { EeUu = 'EE.UU.', Eeuu = 'EEUU', Empty = '', - EstadosUnidos = 'Estados Unidos ', + EstadosUnidos = 'Estados Unidos', LosEEUU = 'Los EEUU', LosEstadosUnidos = 'Los Estados Unidos', LossEEUU = 'Loss EEUU', Mexico = 'Mexico', México = 'México', + PurpleCanada = 'Canada ', PurpleEEUU = 'EE UU', PurpleEstadosUnidos = 'Estados unidos', UnitedStates = 'United States', @@ -134,6 +140,7 @@ export interface Phone { phone_type: string show_on_organization?: boolean phone_type_ES?: string + phone_type_es?: EEs } export interface Photo { @@ -160,9 +167,9 @@ export interface Schedule { saturday_end?: string sunday_start?: string sunday_end?: string - name?: string timezone?: Timezone note?: string + name?: string } export enum Timezone { @@ -176,6 +183,7 @@ export enum Timezone { Hst = 'HST', Mdt = 'MDT', Mst = 'MST', + Nst = 'NST', Pdt = 'PDT', Pst = 'PST', } @@ -192,7 +200,7 @@ export interface Service { location_id?: string name: string phone_id?: string - properties?: { [key: string]: unknown[] | string } + properties?: { [key: string]: any[] | boolean | string } schedule_id?: string slug: string updated_at: EdAt @@ -229,17 +237,23 @@ export interface Tags { export interface Canada { 'Mental Health'?: CanadaMentalHealth + Legal?: CanadaLegal + 'Education and Employment'?: CanadaEducationAndEmployment 'Hygiene and Clothing'?: CanadaHygieneAndClothing Food?: string - Legal?: CanadaLegal 'Community Support'?: CanadaCommunitySupport - Medical?: Medical - 'Education and Employment'?: CanadaEducationAndEmployment + Medical?: CanadaMedical Housing?: CanadaHousing - 'Translation and Interpretation'?: string + 'Sports and Entertainment'?: string Transportation?: CanadaTransportation + 'Translation and Interpretation'?: string 'Computers and Internet'?: string - 'Sports and Entertainment'?: string + 'Abortion Care'?: CanadaAbortionCare +} + +export interface CanadaAbortionCare { + 'Abortion Providers': string + 'Mail Order Services'?: string } export interface CanadaCommunitySupport { @@ -250,18 +264,18 @@ export interface CanadaCommunitySupport { } export interface CanadaEducationAndEmployment { + 'Language classes'?: string Scholarships?: string 'Career counseling'?: string 'Educational support for LGBTQ youth'?: string - 'Language classes'?: string Libraries?: string } export interface CanadaHousing { 'Housing information and referrals'?: string + 'Short-term housing'?: string 'Drop-in centres for LGBTQ youth'?: string 'Emergency housing'?: string - 'Short-term housing'?: string } export interface CanadaHygieneAndClothing { @@ -272,31 +286,34 @@ export interface CanadaHygieneAndClothing { } export interface CanadaLegal { - 'Immigration detention'?: string - 'Refugee claim'?: string 'Deportation or removal'?: string + 'Refugee claim'?: string + 'Immigration detention'?: string + 'Name and gender change'?: string 'Legal hotlines'?: string 'Crime and discrimination'?: string - 'Name and gender change'?: string } -export interface Medical { +export interface CanadaMedical { 'HIV and sexual health'?: string - 'Medical clinics'?: string 'Trans health'?: string + 'Medical clinics'?: string + 'Physical evaluations for refugee claim'?: string 'Dental care'?: string 'OBGYN services'?: string - 'Trans Health - Hormone Therapy'?: string 'Trans Health - Hormone and Surgery Letters'?: string + 'Trans Health - Primary Care'?: string + 'Trans Health - Hormone Therapy'?: string } export interface CanadaMentalHealth { - Hotlines?: string - 'Trans support groups'?: string 'Support groups'?: string + 'Trans support groups'?: string + Hotlines?: string 'Private therapy and counseling'?: string + 'Psychological evaluations for refugee claim'?: string 'Substance use'?: string - 'Psychological evaluations for asylum claim'?: string + 'BIPOC support groups'?: string } export interface CanadaTransportation { @@ -305,25 +322,21 @@ export interface CanadaTransportation { } export interface Mexico { + 'Mental Health'?: MexicoMentalHealth + Food?: string + 'Hygiene and Clothing'?: MexicoHygieneAndClothing + Housing?: MexicoHousing + Medical?: MexicoMedical + Legal?: MexicoLegal 'Community Support'?: MexicoCommunitySupport 'Sports and Entertainment'?: string - Medical?: { [key: string]: string } - 'Mental Health'?: CanadaMentalHealth 'Education and Employment'?: CanadaEducationAndEmployment - Legal?: MexicoLegal - Food?: string - 'Hygiene and Clothing'?: MexicoHygieneAndClothing 'Translation and Interpretation'?: string - Housing?: MexicoHousing 'Computers and Internet'?: string - 'Abortion Care'?: MexicoAbortionCare + 'Abortion Care'?: CanadaAbortionCare Transportation?: MexicoTransportation } -export interface MexicoAbortionCare { - 'Abortion Providers': string -} - export interface MexicoCommunitySupport { 'LGBTQ centers'?: string 'Cultural centers'?: string @@ -338,17 +351,42 @@ export interface MexicoHousing { } export interface MexicoHygieneAndClothing { - Hygiene?: string Clothes?: string + Hygiene?: string } export interface MexicoLegal { + 'Asylum application in Mexico'?: string + 'Asylum application in the US from Mexico'?: string + 'Immigration detention'?: string 'Name and gender change'?: string 'Crime and discrimination'?: string - 'Asylum application in the US from Mexico'?: string - 'Asylum application in Mexico'?: string 'Deportation or removal'?: string - 'Immigration detention'?: string +} + +export interface MexicoMedical { + 'Medical clinics'?: string + 'HIV and sexual health'?: string + 'Trans health'?: string + 'Trans Health - Hormone Therapy'?: string + 'Trans Health - Gender Affirming Surgery'?: string + 'OBGYN services'?: string + 'COVID-19 services'?: string + 'Dental care'?: string + 'Physical evaluations for refugee claim'?: string + 'Physical evaluations for asylum claim'?: string +} + +export interface MexicoMentalHealth { + 'Trans support groups'?: string + 'Support groups'?: string + Hotlines?: string + 'Private therapy and counseling'?: string + 'Support for conversion therapy survivors'?: string + 'Substance use'?: string + 'Psychological evaluations for asylum claim'?: string + 'BIPOC support groups'?: string + 'Support for caregivers of trans youth'?: string } export interface MexicoTransportation { @@ -356,25 +394,28 @@ export interface MexicoTransportation { } export interface UnitedStates { + Medical?: UnitedStatesMedical + 'Mental Health'?: MexicoMentalHealth Housing?: UnitedStatesHousing 'Education and Employment'?: UnitedStatesEducationAndEmployment 'Hygiene and Clothing'?: UnitedStatesHygieneAndClothing - Medical?: { [key: string]: string } - 'Mental Health'?: UnitedStatesMentalHealth Food?: string 'Community Support'?: MexicoCommunitySupport 'Computers and Internet'?: string 'Sports and Entertainment'?: string - Legal?: { [key: string]: string } + Legal?: UnitedStatesLegal Mail?: string - 'Translation and Interpretation'?: string Transportation?: CanadaTransportation + 'Translation and Interpretation'?: string + 'Translation/interpretation for healthcare'?: string + 'Translation/interpretation for legal services'?: string + 'Translation & interpretation'?: string 'Abortion Care'?: UnitedStatesAbortionCare } export interface UnitedStatesAbortionCare { - 'Abortion Providers'?: string 'Financial Assistance'?: string + 'Abortion Providers'?: string 'Mental Health Support'?: string 'Mail Order Services'?: string 'Travel Assistance'?: string @@ -409,16 +450,35 @@ export interface UnitedStatesHygieneAndClothing { 'Haircuts and stylists'?: string } -export interface UnitedStatesMentalHealth { - Hotlines?: string - 'Support groups'?: string - 'Substance use'?: string - 'Private therapy and counseling'?: string - 'Trans support groups'?: string - 'BIPOC support groups'?: string - 'Support for caregivers of trans youth'?: string - 'Psychological evaluations for asylum claim'?: string - 'Support for conversion therapy survivors'?: string +export interface UnitedStatesLegal { + 'Deportation or removal'?: string + 'Deferred Action for Childhood Arrivals (DACA)'?: string + 'Crime and discrimination'?: string + 'Legal hotlines'?: string + 'Name and gender change'?: string + 'Special Immigrant Juvenile Status (SIJS)'?: string + 'Asylum application'?: string + 'Immigration detention'?: string + Citizenship?: string + 'Employment Authorization'?: string + 'U Visa'?: string + 'Family Petitions'?: string + Residency?: string + 'T Visa'?: string +} + +export interface UnitedStatesMedical { + 'Trans Health - Hormone Therapy'?: string + 'OBGYN services'?: string + 'Trans Health - Primary Care'?: string + 'HIV and sexual health'?: string + 'Medical clinics'?: string + 'Physical evaluations for asylum claim'?: string + 'Dental care'?: string + 'Trans Health - Hormone and Surgery Letters'?: string + 'Trans Health - Gender Affirming Surgery'?: string + 'Trans Health - Speech Therapy'?: string + 'COVID-19 services'?: string } export interface SocialMedia { @@ -443,20 +503,13 @@ export const idSchema = z.object({ $oid: z.string(), }) +export const sourceSchema = z.nativeEnum(Source) + export const edAtSchema = z.object({ - $date: z.string(), + $date: z.date().or(z.string()), }) -export const emailSchema = z.object({ - _id: idSchema, - email: z.string(), - first_name: z.string().optional().nullable(), - is_primary: z.boolean().optional(), - last_name: z.string().optional().nullable(), - show_on_organization: z.boolean().optional(), - title: z.string().optional().nullable(), - title_ES: z.string().optional(), -}) +export const eEsSchema = z.nativeEnum(EEs) export const countryESSchema = z.nativeEnum(CountryES) @@ -486,6 +539,7 @@ export const phoneSchema = z.object({ phone_type: z.string(), show_on_organization: z.boolean().optional(), phone_type_ES: z.string().optional(), + phone_type_es: eEsSchema.optional(), }) export const photoSchema = z.object({ @@ -500,28 +554,33 @@ export const timezoneSchema = z.nativeEnum(Timezone) export const accessTypeSchema = z.nativeEnum(AccessType) -export const canadaCommunitySupportSchema = z.object({ - 'LGBTQ centres': z.string().optional(), - 'Cultural centres': z.string().optional(), - 'Reception services': z.string().optional(), - 'Spiritual Support': z.string().optional(), +export const canadaMentalHealthSchema = z.object({ + 'Support groups': z.string().optional(), + 'Trans support groups': z.string().optional(), + Hotlines: z.string().optional(), + 'Private therapy and counseling': z.string().optional(), + 'Psychological evaluations for refugee claim': z.string().optional(), + 'Substance use': z.string().optional(), + 'BIPOC support groups': z.string().optional(), +}) + +export const canadaLegalSchema = z.object({ + 'Deportation or removal': z.string().optional(), + 'Refugee claim': z.string().optional(), + 'Immigration detention': z.string().optional(), + 'Name and gender change': z.string().optional(), + 'Legal hotlines': z.string().optional(), + 'Crime and discrimination': z.string().optional(), }) export const canadaEducationAndEmploymentSchema = z.object({ + 'Language classes': z.string().optional(), Scholarships: z.string().optional(), 'Career counseling': z.string().optional(), 'Educational support for LGBTQ youth': z.string().optional(), - 'Language classes': z.string().optional(), Libraries: z.string().optional(), }) -export const canadaHousingSchema = z.object({ - 'Housing information and referrals': z.string().optional(), - 'Drop-in centres for LGBTQ youth': z.string().optional(), - 'Emergency housing': z.string().optional(), - 'Short-term housing': z.string().optional(), -}) - export const canadaHygieneAndClothingSchema = z.object({ 'Gender-affirming items': z.string().optional(), Clothes: z.string().optional(), @@ -529,32 +588,30 @@ export const canadaHygieneAndClothingSchema = z.object({ 'Gender-neutral washrooms': z.string().optional(), }) -export const canadaLegalSchema = z.object({ - 'Immigration detention': z.string().optional(), - 'Refugee claim': z.string().optional(), - 'Deportation or removal': z.string().optional(), - 'Legal hotlines': z.string().optional(), - 'Crime and discrimination': z.string().optional(), - 'Name and gender change': z.string().optional(), +export const canadaCommunitySupportSchema = z.object({ + 'LGBTQ centres': z.string().optional(), + 'Cultural centres': z.string().optional(), + 'Reception services': z.string().optional(), + 'Spiritual Support': z.string().optional(), }) -export const medicalSchema = z.object({ +export const canadaMedicalSchema = z.object({ 'HIV and sexual health': z.string().optional(), - 'Medical clinics': z.string().optional(), 'Trans health': z.string().optional(), + 'Medical clinics': z.string().optional(), + 'Physical evaluations for refugee claim': z.string().optional(), 'Dental care': z.string().optional(), 'OBGYN services': z.string().optional(), - 'Trans Health - Hormone Therapy': z.string().optional(), 'Trans Health - Hormone and Surgery Letters': z.string().optional(), + 'Trans Health - Primary Care': z.string().optional(), + 'Trans Health - Hormone Therapy': z.string().optional(), }) -export const canadaMentalHealthSchema = z.object({ - Hotlines: z.string().optional(), - 'Trans support groups': z.string().optional(), - 'Support groups': z.string().optional(), - 'Private therapy and counseling': z.string().optional(), - 'Substance use': z.string().optional(), - 'Psychological evaluations for asylum claim': z.string().optional(), +export const canadaHousingSchema = z.object({ + 'Housing information and referrals': z.string().optional(), + 'Short-term housing': z.string().optional(), + 'Drop-in centres for LGBTQ youth': z.string().optional(), + 'Emergency housing': z.string().optional(), }) export const canadaTransportationSchema = z.object({ @@ -562,15 +619,26 @@ export const canadaTransportationSchema = z.object({ 'Transit passes and discounts': z.string().optional(), }) -export const mexicoAbortionCareSchema = z.object({ +export const canadaAbortionCareSchema = z.object({ 'Abortion Providers': z.string(), + 'Mail Order Services': z.string().optional(), }) -export const mexicoCommunitySupportSchema = z.object({ - 'LGBTQ centers': z.string().optional(), - 'Cultural centers': z.string().optional(), - 'Spiritual Support': z.string().optional(), - Sponsors: z.string().optional(), +export const mexicoMentalHealthSchema = z.object({ + 'Trans support groups': z.string().optional(), + 'Support groups': z.string().optional(), + Hotlines: z.string().optional(), + 'Private therapy and counseling': z.string().optional(), + 'Support for conversion therapy survivors': z.string().optional(), + 'Substance use': z.string().optional(), + 'Psychological evaluations for asylum claim': z.string().optional(), + 'BIPOC support groups': z.string().optional(), + 'Support for caregivers of trans youth': z.string().optional(), +}) + +export const mexicoHygieneAndClothingSchema = z.object({ + Clothes: z.string().optional(), + Hygiene: z.string().optional(), }) export const mexicoHousingSchema = z.object({ @@ -579,31 +647,59 @@ export const mexicoHousingSchema = z.object({ 'Drop-in centers for LGBTQ youth': z.string().optional(), }) -export const mexicoHygieneAndClothingSchema = z.object({ - Hygiene: z.string().optional(), - Clothes: z.string().optional(), +export const mexicoMedicalSchema = z.object({ + 'Medical clinics': z.string().optional(), + 'HIV and sexual health': z.string().optional(), + 'Trans health': z.string().optional(), + 'Trans Health - Hormone Therapy': z.string().optional(), + 'Trans Health - Gender Affirming Surgery': z.string().optional(), + 'OBGYN services': z.string().optional(), + 'COVID-19 services': z.string().optional(), + 'Dental care': z.string().optional(), + 'Physical evaluations for refugee claim': z.string().optional(), + 'Physical evaluations for asylum claim': z.string().optional(), }) export const mexicoLegalSchema = z.object({ + 'Asylum application in Mexico': z.string().optional(), + 'Asylum application in the US from Mexico': z.string().optional(), + 'Immigration detention': z.string().optional(), 'Name and gender change': z.string().optional(), 'Crime and discrimination': z.string().optional(), - 'Asylum application in the US from Mexico': z.string().optional(), - 'Asylum application in Mexico': z.string().optional(), 'Deportation or removal': z.string().optional(), - 'Immigration detention': z.string().optional(), +}) + +export const mexicoCommunitySupportSchema = z.object({ + 'LGBTQ centers': z.string().optional(), + 'Cultural centers': z.string().optional(), + 'Spiritual Support': z.string().optional(), + Sponsors: z.string().optional(), }) export const mexicoTransportationSchema = z.object({ 'Transportation assistance': z.string(), }) -export const unitedStatesAbortionCareSchema = z.object({ - 'Abortion Providers': z.string().optional(), - 'Financial Assistance': z.string().optional(), - 'Mental Health Support': z.string().optional(), - 'Mail Order Services': z.string().optional(), - 'Travel Assistance': z.string().optional(), - 'Lodging Assistance': z.string().optional(), +export const unitedStatesMedicalSchema = z.object({ + 'Trans Health - Hormone Therapy': z.string().optional(), + 'OBGYN services': z.string().optional(), + 'Trans Health - Primary Care': z.string().optional(), + 'HIV and sexual health': z.string().optional(), + 'Medical clinics': z.string().optional(), + 'Physical evaluations for asylum claim': z.string().optional(), + 'Dental care': z.string().optional(), + 'Trans Health - Hormone and Surgery Letters': z.string().optional(), + 'Trans Health - Gender Affirming Surgery': z.string().optional(), + 'Trans Health - Speech Therapy': z.string().optional(), + 'COVID-19 services': z.string().optional(), +}) + +export const unitedStatesHousingSchema = z.object({ + 'Emergency housing': z.string().optional(), + 'Housing information and referrals': z.string().optional(), + 'Trans housing': z.string().optional(), + 'Drop-in centers for LGBTQ youth': z.string().optional(), + 'Short-term housing': z.string().optional(), }) export const unitedStatesEducationAndEmploymentSchema = z.object({ @@ -616,14 +712,6 @@ export const unitedStatesEducationAndEmploymentSchema = z.object({ Scholarships: z.string().optional(), }) -export const unitedStatesHousingSchema = z.object({ - 'Emergency housing': z.string().optional(), - 'Housing information and referrals': z.string().optional(), - 'Trans housing': z.string().optional(), - 'Drop-in centers for LGBTQ youth': z.string().optional(), - 'Short-term housing': z.string().optional(), -}) - export const unitedStatesHygieneAndClothingSchema = z.object({ Hygiene: z.string().optional(), Clothes: z.string().optional(), @@ -634,21 +722,45 @@ export const unitedStatesHygieneAndClothingSchema = z.object({ 'Haircuts and stylists': z.string().optional(), }) -export const unitedStatesMentalHealthSchema = z.object({ - Hotlines: z.string().optional(), - 'Support groups': z.string().optional(), - 'Substance use': z.string().optional(), - 'Private therapy and counseling': z.string().optional(), - 'Trans support groups': z.string().optional(), - 'BIPOC support groups': z.string().optional(), - 'Support for caregivers of trans youth': z.string().optional(), - 'Psychological evaluations for asylum claim': z.string().optional(), - 'Support for conversion therapy survivors': z.string().optional(), +export const unitedStatesLegalSchema = z.object({ + 'Deportation or removal': z.string().optional(), + 'Deferred Action for Childhood Arrivals (DACA)': z.string().optional(), + 'Crime and discrimination': z.string().optional(), + 'Legal hotlines': z.string().optional(), + 'Name and gender change': z.string().optional(), + 'Special Immigrant Juvenile Status (SIJS)': z.string().optional(), + 'Asylum application': z.string().optional(), + 'Immigration detention': z.string().optional(), + Citizenship: z.string().optional(), + 'Employment Authorization': z.string().optional(), + 'U Visa': z.string().optional(), + 'Family Petitions': z.string().optional(), + Residency: z.string().optional(), + 'T Visa': z.string().optional(), +}) + +export const unitedStatesAbortionCareSchema = z.object({ + 'Financial Assistance': z.string().optional(), + 'Abortion Providers': z.string().optional(), + 'Mental Health Support': z.string().optional(), + 'Mail Order Services': z.string().optional(), + 'Travel Assistance': z.string().optional(), + 'Lodging Assistance': z.string().optional(), }) export const nameSchema = z.nativeEnum(Name) -export const sourceSchema = z.nativeEnum(Source) +export const emailSchema = z.object({ + _id: idSchema, + email: z.string(), + first_name: z.string().optional().nullable(), + is_primary: z.boolean().optional(), + last_name: z.string().optional().nullable(), + show_on_organization: z.boolean().optional(), + title: z.string().optional().nullable(), + title_ES: z.string().optional(), + title_es: eEsSchema.optional(), +}) export const geolocationSchema = z.object({ coordinates: z.array(coordinateSchema), @@ -671,9 +783,9 @@ export const scheduleSchema = z.object({ saturday_end: z.string().optional(), sunday_start: z.string().optional(), sunday_end: z.string().optional(), - name: z.string().optional(), timezone: timezoneSchema.optional(), note: z.string().optional(), + name: z.string().optional(), }) export const accessInstructionSchema = z.object({ @@ -687,49 +799,53 @@ export const accessInstructionSchema = z.object({ export const canadaSchema = z.object({ 'Mental Health': canadaMentalHealthSchema.optional(), + Legal: canadaLegalSchema.optional(), + 'Education and Employment': canadaEducationAndEmploymentSchema.optional(), 'Hygiene and Clothing': canadaHygieneAndClothingSchema.optional(), Food: z.string().optional(), - Legal: canadaLegalSchema.optional(), 'Community Support': canadaCommunitySupportSchema.optional(), - Medical: medicalSchema.optional(), - 'Education and Employment': canadaEducationAndEmploymentSchema.optional(), + Medical: canadaMedicalSchema.optional(), Housing: canadaHousingSchema.optional(), - 'Translation and Interpretation': z.string().optional(), + 'Sports and Entertainment': z.string().optional(), Transportation: canadaTransportationSchema.optional(), + 'Translation and Interpretation': z.string().optional(), 'Computers and Internet': z.string().optional(), - 'Sports and Entertainment': z.string().optional(), + 'Abortion Care': canadaAbortionCareSchema.optional(), }) export const mexicoSchema = z.object({ + 'Mental Health': mexicoMentalHealthSchema.optional(), + Food: z.string().optional(), + 'Hygiene and Clothing': mexicoHygieneAndClothingSchema.optional(), + Housing: mexicoHousingSchema.optional(), + Medical: mexicoMedicalSchema.optional(), + Legal: mexicoLegalSchema.optional(), 'Community Support': mexicoCommunitySupportSchema.optional(), 'Sports and Entertainment': z.string().optional(), - Medical: z.record(z.string()).optional(), - 'Mental Health': canadaMentalHealthSchema.optional(), 'Education and Employment': canadaEducationAndEmploymentSchema.optional(), - Legal: mexicoLegalSchema.optional(), - Food: z.string().optional(), - 'Hygiene and Clothing': mexicoHygieneAndClothingSchema.optional(), 'Translation and Interpretation': z.string().optional(), - Housing: mexicoHousingSchema.optional(), 'Computers and Internet': z.string().optional(), - 'Abortion Care': mexicoAbortionCareSchema.optional(), + 'Abortion Care': canadaAbortionCareSchema.optional(), Transportation: mexicoTransportationSchema.optional(), }) export const unitedStatesSchema = z.object({ + Medical: unitedStatesMedicalSchema.optional(), + 'Mental Health': mexicoMentalHealthSchema.optional(), Housing: unitedStatesHousingSchema.optional(), 'Education and Employment': unitedStatesEducationAndEmploymentSchema.optional(), 'Hygiene and Clothing': unitedStatesHygieneAndClothingSchema.optional(), - Medical: z.record(z.string()).optional(), - 'Mental Health': unitedStatesMentalHealthSchema.optional(), Food: z.string().optional(), 'Community Support': mexicoCommunitySupportSchema.optional(), 'Computers and Internet': z.string().optional(), 'Sports and Entertainment': z.string().optional(), - Legal: z.record(z.string()).optional(), + Legal: unitedStatesLegalSchema.optional(), Mail: z.string().optional(), - 'Translation and Interpretation': z.string().optional(), Transportation: canadaTransportationSchema.optional(), + 'Translation and Interpretation': z.string().optional(), + 'Translation/interpretation for healthcare': z.string().optional(), + 'Translation/interpretation for legal services': z.string().optional(), + 'Translation & interpretation': z.string().optional(), 'Abortion Care': unitedStatesAbortionCareSchema.optional(), }) @@ -744,11 +860,11 @@ export const locationSchema = z.object({ _id: idSchema, address: z.string().optional(), city: z.string().optional(), - is_primary: z.boolean(), + is_primary: z.boolean().optional(), lat: z.string().optional(), long: z.string().optional(), name: z.string().optional(), - show_on_organization: z.boolean(), + show_on_organization: z.boolean().optional(), state: z.string().optional(), unit: z.string().optional(), zip_code: z.string().optional(), @@ -777,7 +893,7 @@ export const serviceSchema = z.object({ location_id: z.string().optional(), name: z.string(), phone_id: z.string().optional(), - properties: z.record(z.union([z.array(z.any()), z.string()])).optional(), + properties: z.record(z.union([z.array(z.any()), z.boolean(), z.string()])).optional(), schedule_id: z.string().optional(), slug: z.string(), updated_at: edAtSchema, @@ -787,14 +903,14 @@ export const serviceSchema = z.object({ notes_log: z.array(notesLogSchema).optional(), }) -export const existingOrgsSchema = z.object({ +export const organizationsSchema = z.object({ _id: idSchema, is_published: z.boolean(), - description: z.string(), + description: z.string().optional(), name: z.string(), properties: z.record(z.string()).optional(), slug: z.string(), - verified_at: edAtSchema.optional(), + verified_at: edAtSchema.optional().nullable(), website: z.string().optional(), emails: z.array(emailSchema), locations: z.array(locationSchema), @@ -815,7 +931,7 @@ export const existingOrgsSchema = z.object({ venue_id: z.string().optional(), photos: z.array(photoSchema).optional(), social_media: z.array(socialMediaSchema).optional(), - notes_log: z.array(notesLogSchema).optional(), is_deleted: z.boolean(), + notes_log: z.array(notesLogSchema).optional(), adminEmails: z.array(z.any()).optional(), }) diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index beb4930f87..fcbcf41607 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -66,9 +66,10 @@ export const writeBatches = (task: PassedTask, clear = false) => { const batch = create[batchName] const batchFile = getBatchFile({ type: 'create', batchName }) if (clear) { - const outputData = new Set() - fs.writeFileSync(batchFile, superjson.stringify(outputData)) - task.output = formatMessage(`Clearing file: ${batchFile}`, 'trash') + if (fs.existsSync(batchFile)) { + fs.rmSync(batchFile) + task.output = formatMessage(`Deleting file: ${batchFile}`, 'trash') + } } else { if (!batch.size) { task.output = formatMessage(`Skipping empty batch: ${batchName}`, 'skip') @@ -95,9 +96,10 @@ export const writeBatches = (task: PassedTask, clear = false) => { const batch = update[batchName] const batchFile = getBatchFile({ type: 'update', batchName }) if (clear) { - const outputData = new Set() - fs.writeFileSync(batchFile, superjson.stringify(outputData)) - task.output = formatMessage(`Clearing file: ${batchFile}`, 'trash') + if (fs.existsSync(batchFile)) { + fs.rmSync(batchFile) + task.output = formatMessage(`Deleting file: ${batchFile}`, 'trash') + } } else { if (!batch.size) { task.output = formatMessage(`Skipping empty batch: ${batchName}`, 'skip') diff --git a/packages/db/seed/recon/lib/utils.ts b/packages/db/seed/recon/lib/utils.ts index 649dab0ec9..8d0057b407 100644 --- a/packages/db/seed/recon/lib/utils.ts +++ b/packages/db/seed/recon/lib/utils.ts @@ -7,3 +7,5 @@ export const readSuperJSON = (filename: string) => { const data = fs.readFileSync(path.resolve(__dirname, `../generated/${filename}.json`), 'utf-8') return superjson.parse(data) } + +export const trimSpaces = (str?: string) => (str ? str.trim().replace(/ +(?=[^\S\n])/g, ' ') : undefined) From 019e2f1efdb14bc61e697024341d4d69e81cbcbd Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 27 Jun 2023 17:41:13 -0400 Subject: [PATCH 16/66] reconcile org basic fields --- packages/db/seed/recon/reconJob.ts | 86 ++++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 11 deletions(-) diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index c0594e54c5..c5709711b5 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -5,13 +5,15 @@ import fs from 'fs' import path from 'path' import { prisma, type Prisma } from '~db/client' +import { namespace } from '~db/generated/namespaces' import { createPoint } from '~db/lib/createPoint' -import { existingOrgsSchema } from '~db/seed/recon/input/types' +import { organizationsSchema } from '~db/seed/recon/input/types' import { needsUpdate } from '~db/seed/recon/lib/compare' import { dataCorrections, existing, getCountryId, getGovDistId } from '~db/seed/recon/lib/existing' import { attachLogger, formatMessage } from '~db/seed/recon/lib/logger' import { create, update, writeBatches } from '~db/seed/recon/lib/output' import { type ListrJob } from '~db/seed/recon/lib/types' +import { trimSpaces } from '~db/seed/recon/lib/utils' import { JsonInputOrNull } from '~db/zod_util/prismaJson' export const orgRecon = { @@ -21,12 +23,12 @@ export const orgRecon = { attachLogger(task) const log = (...args: Parameters) => (task.output = formatMessage(...args)) const logUpdate = (field: string, from: unknown, to: unknown) => - log(`Updating ${field} from "${from}" to "${to}"`, undefined, true) + log(`Updating ${field} from "${from}" to "${to}"`, 'update', true) writeBatches(task, true) let orgCounter = 1 // read input file - const orgs = existingOrgsSchema + const orgs = organizationsSchema .array() .parse(JSON.parse(fs.readFileSync(path.resolve(__dirname, './input/existingOrgs.json'), 'utf-8'))) log(`Organizations to process: ${orgs.length}`, 'info') @@ -34,13 +36,75 @@ export const orgRecon = { // start loop for (const org of orgs) { task.title = `Reconcile Organizations [${orgCounter}/${orgs.length}]` - log(`Reconciling Organization: ${org.name}`) + log(`Reconciling Organization: ${org.name}`, 'generate') const organizationId = existing.orgId.get(org._id.$oid) if (!organizationId) { log(`Organization not found: ${org._id.$oid}`, 'error') throw new Error('Organization not found', { cause: org._id.$oid }) } + /** + * . + * + * === Update basic org fields === + * + * . + */ + // #region Organization basics + const existingOrgRecord = await prisma.organization.findUniqueOrThrow({ + where: { id: organizationId }, + include: { description: { include: { tsKey: true } } }, + }) + const updateOrgRecord: Prisma.OrganizationUpdateArgs = { + where: { id: organizationId }, + data: {}, + } + + if (needsUpdate(existingOrgRecord.name, trimSpaces(org.name))) { + logUpdate('name', existingOrgRecord.name, trimSpaces(org.name)) + updateOrgRecord.data.name = trimSpaces(org.name) + } + if ( + existingOrgRecord.description && + needsUpdate(existingOrgRecord.description.tsKey.text, trimSpaces(org.description)) + ) { + logUpdate('description', existingOrgRecord.description.tsKey.text, trimSpaces(org.description)) + update.translationKey.add({ + where: { ns_key: { ns: namespace.orgData, key: existingOrgRecord.description.key } }, + data: { text: trimSpaces(org.description) }, + }) + } + if (needsUpdate(existingOrgRecord.deleted, org.is_deleted)) { + logUpdate('deleted', existingOrgRecord.deleted, org.is_deleted) + updateOrgRecord.data.deleted = org.is_deleted + } + if (needsUpdate(existingOrgRecord.published, org.is_published)) { + if (org.is_published === true) { + log(`SKIPPING - Mark organization as published`, 'skip', true) + } else { + logUpdate('published', existingOrgRecord.published, org.is_published) + updateOrgRecord.data.published = org.is_published + } + } + if (org.verified_at?.$date && needsUpdate(existingOrgRecord.lastVerified, org.verified_at?.$date)) { + logUpdate('lastVerified', existingOrgRecord.lastVerified, org.verified_at.$date) + updateOrgRecord.data.lastVerified = org.verified_at.$date + } + + if (Object.keys(updateOrgRecord.data).length) { + update.organization.add(updateOrgRecord) + log(`Updated ${Object.keys(updateOrgRecord.data).length} keys`, undefined, true) + } + + // #endregion + + /** + * . + * + * === LOCATION === + * + * . + */ // #region Location if (!org.locations.length) { log('SKIPPING Location records, no locations', 'skip') @@ -90,25 +154,25 @@ export const orgRecon = { (x) => +parseFloat(x.$numberDecimal).toFixed(3) ) - if (needsUpdate(existingLocation.name, location.name)) { - logUpdate('name', existingLocation.name, location.name) - updateRecord.data.name = location.name?.trim() ?? null + if (needsUpdate(existingLocation.name, trimSpaces(location.name))) { + logUpdate('name', existingLocation.name, trimSpaces(location.name)) + updateRecord.data.name = trimSpaces(location.name) ?? null } if (needsUpdate(existingLocation.street1, location.address)) { logUpdate('street1', existingLocation.street1, location.address) - updateRecord.data.street1 = location.address?.trim() + updateRecord.data.street1 = trimSpaces(location.address) } if (needsUpdate(existingLocation.street2, location.unit)) { logUpdate('street2', existingLocation.street2, location.unit) - updateRecord.data.street2 = location.unit?.trim() ?? null + updateRecord.data.street2 = trimSpaces(location.unit) ?? null } if (needsUpdate(existingLocation.city, location.city)) { logUpdate('city', existingLocation.city, location.city) - updateRecord.data.city = location.city?.trim() + updateRecord.data.city = trimSpaces(location.city) } if (needsUpdate(existingLocation.postCode, location.zip_code)) { logUpdate('postCode', existingLocation.postCode, location.zip_code) - updateRecord.data.postCode = location.zip_code?.trim() ?? null + updateRecord.data.postCode = trimSpaces(location.zip_code) ?? null } if (needsUpdate(existingLocation.primary, location.is_primary)) { logUpdate('primary', existingLocation.primary, location.is_primary) From 8bbe9941e9493907db79e68d63eb3ca6930a30f7 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 27 Jun 2023 17:43:13 -0400 Subject: [PATCH 17/66] placeholders --- packages/api/crowdin/generated/.gitkeep | 0 packages/db/seed/recon/generated/.gitkeep | 0 packages/db/seed/recon/logs/.gitkeep | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/api/crowdin/generated/.gitkeep create mode 100644 packages/db/seed/recon/generated/.gitkeep create mode 100644 packages/db/seed/recon/logs/.gitkeep diff --git a/packages/api/crowdin/generated/.gitkeep b/packages/api/crowdin/generated/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/db/seed/recon/generated/.gitkeep b/packages/db/seed/recon/generated/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/db/seed/recon/logs/.gitkeep b/packages/db/seed/recon/logs/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 From 8cee9e160f5c4107b133fd8ab114ed4d87dea8cc Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 27 Jun 2023 18:36:45 -0400 Subject: [PATCH 18/66] create resendCode, change default baseUrl for message --- packages/auth/lib/resendCode.ts | 10 ++++++++++ packages/aws-messaging/src/index.ts | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 packages/auth/lib/resendCode.ts diff --git a/packages/auth/lib/resendCode.ts b/packages/auth/lib/resendCode.ts new file mode 100644 index 0000000000..e5a1d234f5 --- /dev/null +++ b/packages/auth/lib/resendCode.ts @@ -0,0 +1,10 @@ +import { ClientId, cognito, generateHash } from './cognitoClient' + +export const resendVerificationCode = async (email: string) => { + const response = await cognito.resendConfirmationCode({ + ClientId, + Username: email, + SecretHash: generateHash(email), + }) + return response +} diff --git a/packages/aws-messaging/src/index.ts b/packages/aws-messaging/src/index.ts index 666e65f1e9..8d8d1e7d55 100644 --- a/packages/aws-messaging/src/index.ts +++ b/packages/aws-messaging/src/index.ts @@ -17,7 +17,7 @@ const clientMetadataDefaults = (triggerSource: CustomMessageTriggerEvent['trigge const resetPw = triggerSource === 'CustomMessage_ForgotPassword' return { - baseUrl: `http://localhost:3000`, + baseUrl: `https://app.inreach.org`, subject: resetPw ? 'Reset your password' : 'Confirm your account', message: resetPw ? 'Click the following link to reset your password:' From fb083ec1ad5b285c96c8b6525a28ccd3cc215663 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 27 Jun 2023 18:48:18 -0400 Subject: [PATCH 19/66] disable build --- apps/web/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/package.json b/apps/web/package.json index 94bc605a15..543dd007e0 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -3,7 +3,7 @@ "version": "0.100.0", "private": true, "scripts": { - "build": "next build", + "buildx": "next build", "clean:node": "rm -rf ./node_modules/ || true && rm -rf ./.next || true", "dev": "next dev", "preinstall": "npx only-allow pnpm", From e2bf75986c4defdeff0d69f529288b046c53553e Mon Sep 17 00:00:00 2001 From: InReach Bot <108850934+InReach-svc@users.noreply.github.com> Date: Wed, 28 Jun 2023 13:25:23 +0000 Subject: [PATCH 20/66] chore: lint & format Signed-off-by: InReach Bot <108850934+InReach-svc@users.noreply.github.com> --- packages/auth/lib/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/auth/lib/index.ts b/packages/auth/lib/index.ts index 903562b14b..4ca332659a 100644 --- a/packages/auth/lib/index.ts +++ b/packages/auth/lib/index.ts @@ -11,6 +11,7 @@ export * from './genUserSession' export * from './getBaseUrl' export * from './logger' export * from './refreshSession' +export * from './resendCode' export * from './resetPassword' export * from './userLogin' export * from './userLogout' From a594f396f76870f796c30a55c20fa52467285c41 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 28 Jun 2023 11:27:33 -0400 Subject: [PATCH 21/66] reconcile emails --- packages/config/tsconfig/base.json | 1 + packages/db/datastore | 2 +- packages/db/seed/recon/reconJob.ts | 64 ++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/packages/config/tsconfig/base.json b/packages/config/tsconfig/base.json index 050c54eb8d..97519a9275 100644 --- a/packages/config/tsconfig/base.json +++ b/packages/config/tsconfig/base.json @@ -2,6 +2,7 @@ "$schema": "https://json.schemastore.org/tsconfig", "compilerOptions": { "allowJs": true, + "disableSizeLimit": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "incremental": true, diff --git a/packages/db/datastore b/packages/db/datastore index 5ec8184e2d..a1e7c3c226 160000 --- a/packages/db/datastore +++ b/packages/db/datastore @@ -1 +1 @@ -Subproject commit 5ec8184e2d666be103baa69752fbfa4456f26e1c +Subproject commit a1e7c3c226dc4c7c4e17fb157dc543fc7f764828 diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index c5709711b5..91fe1874dc 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -7,6 +7,7 @@ import path from 'path' import { prisma, type Prisma } from '~db/client' import { namespace } from '~db/generated/namespaces' import { createPoint } from '~db/lib/createPoint' +import { generateId } from '~db/lib/idGen' import { organizationsSchema } from '~db/seed/recon/input/types' import { needsUpdate } from '~db/seed/recon/lib/compare' import { dataCorrections, existing, getCountryId, getGovDistId } from '~db/seed/recon/lib/existing' @@ -232,6 +233,69 @@ export const orgRecon = { // #endregion + /** + * . + * + * === EMAILS === + * + * . + */ + // #region Emails + if (!org.emails.length) { + log('SKIPPING Email records, no emails', 'skip') + } else { + log(`Processing ${org.emails.length} Email records`, 'generate') + let emailCount = 1 + const emailSkip = 0 + + for (const email of org.emails) { + log(`Processing Email: ${email.email} [${emailCount + emailSkip}/${org.emails.length}]`, 'generate') + const existingRecord = await prisma.orgEmail.findUnique({ + where: { legacyId: email._id.$oid }, + }) + if (existingRecord) { + log(`Reconcile email against ${existingRecord.id}`, undefined, true) + const updateRecord: Prisma.OrgEmailUpdateArgs = { + where: { id: existingRecord.id }, + data: {}, + } + if (needsUpdate(existingRecord.email, email.email)) { + logUpdate('email', existingRecord.email, email.email) + updateRecord.data.email = trimSpaces(email.email) + } + if (needsUpdate(existingRecord.primary, email.is_primary)) { + logUpdate('primary', existingRecord.primary, email.is_primary) + updateRecord.data.primary = email.is_primary + } + if (needsUpdate(existingRecord.published, email.show_on_organization)) { + if (email.show_on_organization === true) { + log(`SKIPPING - Mark email as published`, 'skip', true) + } else { + logUpdate('published', existingRecord.published, email.show_on_organization) + updateRecord.data.published = email.show_on_organization + } + } + if (needsUpdate(existingRecord.firstName, email.first_name)) { + logUpdate('firstName', existingRecord.firstName, email.first_name) + updateRecord.data.firstName = email.first_name + } + if (needsUpdate(existingRecord.lastName, email.last_name)) { + logUpdate('lastName', existingRecord.lastName, email.last_name) + updateRecord.data.lastName = email.last_name + } + + if (Object.keys(updateRecord.data).length) { + update.orgEmail.add(updateRecord) + log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) + } + + emailCount++ + } + } + } + + // #endregion + orgCounter++ } writeBatches(task) From b9c55f3bca40a807c28d3070d46329629efaaff1 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 3 Jul 2023 16:44:54 -0400 Subject: [PATCH 22/66] add slug redirect table --- packages/api/.gitignore | 1 + packages/db/lib/idGen.ts | 1 + packages/db/lib/slugGen.ts | 33 +++++++++++++++++++ .../migration.sql | 20 +++++++++++ packages/db/prisma/schema.prisma | 13 ++++++++ packages/db/seed/recon/index.ts | 5 ++- packages/db/seed/recon/lib/output.ts | 1 + 7 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 packages/db/prisma/migrations/20230703204425_slug_redirect_table/migration.sql diff --git a/packages/api/.gitignore b/packages/api/.gitignore index 0cd46e5f85..6c5875ba49 100644 --- a/packages/api/.gitignore +++ b/packages/api/.gitignore @@ -1 +1,2 @@ crowdin/generated/*.json +temp.ts diff --git a/packages/db/lib/idGen.ts b/packages/db/lib/idGen.ts index efe3e80c34..93d27f7e9d 100644 --- a/packages/db/lib/idGen.ts +++ b/packages/db/lib/idGen.ts @@ -34,6 +34,7 @@ export const idPrefix = { serviceCategory: 'svct', serviceTag: 'svtg', session: 'sess', + slugRedirect: 'slgr', socialMediaLink: 'smdl', socialMediaService: 'smsv', source: 'srce', diff --git a/packages/db/lib/slugGen.ts b/packages/db/lib/slugGen.ts index f670ef9454..0da76c7ef6 100644 --- a/packages/db/lib/slugGen.ts +++ b/packages/db/lib/slugGen.ts @@ -1,6 +1,39 @@ import slugify from 'slugify' +import { prisma } from '~db/client' + type SlugifyOptions = Parameters['1'] export const slug = (string: string, options: SlugifyOptions = { lower: true, strict: true, trim: true }) => slugify(string, options) + +const getSlugs = async () => { + const activeSlugs = await prisma.organization.findMany({ select: { slug: true } }) + const redirectedSlugs = await prisma.slugRedirect.findMany({ select: { from: true, to: true } }) + return new Set([ + ...activeSlugs.map(({ slug }) => slug), + ...redirectedSlugs.flatMap(({ from, to }) => [from, to]), + ]) +} +export const generateUniqueSlug: GenerateUniqueSlug = async (org, existingSlugs) => { + const slugSet = existingSlugs ?? (await getSlugs()) + + const slugCandidates = [slug(org.name), slug(`${org.name} ${org.id.slice(-4)}`)] + for (const slug of slugCandidates) { + if (!slugSet.has(slug)) return slug + } + throw new Error('Unable to generate unique slug') +} + +type GenerateUniqueSlug = (org: { name: string; id: string }, existingSlugs?: Set) => Promise + +export const slugUpdate: SlugUpdate = async (org, existingSlugs) => { + if (slug(org.name) === org.slug) { + return org.slug + } + return await generateUniqueSlug(org, existingSlugs) +} +type SlugUpdate = ( + org: { name: string; id: string; slug: string }, + existingSlugs?: Set +) => Promise diff --git a/packages/db/prisma/migrations/20230703204425_slug_redirect_table/migration.sql b/packages/db/prisma/migrations/20230703204425_slug_redirect_table/migration.sql new file mode 100644 index 0000000000..0296009198 --- /dev/null +++ b/packages/db/prisma/migrations/20230703204425_slug_redirect_table/migration.sql @@ -0,0 +1,20 @@ +-- CreateTable +CREATE TABLE "SlugRedirect" ( + "id" TEXT NOT NULL, + "from" TEXT NOT NULL, + "to" TEXT NOT NULL, + "orgId" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "SlugRedirect_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "SlugRedirect_from_key" ON "SlugRedirect"("from"); + +-- CreateIndex +CREATE UNIQUE INDEX "SlugRedirect_to_key" ON "SlugRedirect"("to"); + +-- AddForeignKey +ALTER TABLE "SlugRedirect" ADD CONSTRAINT "SlugRedirect_orgId_fkey" FOREIGN KEY ("orgId") REFERENCES "Organization"("id") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index 9300b00363..d2471dc5a3 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -453,6 +453,7 @@ model Organization { updatedAt DateTime @updatedAt auditLogs AuditLog[] notes InternalNote[] + oldSlugs SlugRedirect[] /// Does this record need to be checked by staff after migration? checkMigration Boolean? @@ -462,6 +463,18 @@ model Organization { @@index([id, published, deleted]) } +model SlugRedirect { + id String @id @default(cuid()) + from String @unique + to String @unique + + org Organization @relation(fields: [orgId], references: [id]) + orgId String + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + /// Organization email contacts - can be general or location specific model OrgEmail { id String @id @default(cuid()) diff --git a/packages/db/seed/recon/index.ts b/packages/db/seed/recon/index.ts index e47ac28dd2..fbca8510cd 100644 --- a/packages/db/seed/recon/index.ts +++ b/packages/db/seed/recon/index.ts @@ -10,7 +10,10 @@ const renderOptions = { persistentOutput: true, timer: PRESET_TIMER, } satisfies ListrJob['options'] -const injectOptions = (job: ListrJob): ListrJob => ({ ...job, options: renderOptions }) +const injectOptions = (job: ListrJob): ListrJob => ({ + ...job, + options: job.options ? { ...renderOptions, ...job.options } : renderOptions, +}) const jobs = new Listr( [ diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index fcbcf41607..9ceb485bcc 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -46,6 +46,7 @@ export const create = { organizationPermission: new Set(), organizationEmail: new Set(), organizationPhone: new Set(), + slugRedirect: new Set(), } export const update = { From bb380371269c4c0df278194f86238e71cb426e70 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 3 Jul 2023 16:45:29 -0400 Subject: [PATCH 23/66] update slug --- packages/db/seed/recon/reconJob.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 91fe1874dc..7cf178b40f 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -8,6 +8,7 @@ import { prisma, type Prisma } from '~db/client' import { namespace } from '~db/generated/namespaces' import { createPoint } from '~db/lib/createPoint' import { generateId } from '~db/lib/idGen' +import { slugUpdate } from '~db/lib/slugGen' import { organizationsSchema } from '~db/seed/recon/input/types' import { needsUpdate } from '~db/seed/recon/lib/compare' import { dataCorrections, existing, getCountryId, getGovDistId } from '~db/seed/recon/lib/existing' @@ -20,6 +21,7 @@ import { JsonInputOrNull } from '~db/zod_util/prismaJson' export const orgRecon = { title: 'Reconcile Organizations', // skip: true, + // options: { bottomBar: false }, task: async (_ctx, task) => { attachLogger(task) const log = (...args: Parameters) => (task.output = formatMessage(...args)) @@ -64,6 +66,15 @@ export const orgRecon = { if (needsUpdate(existingOrgRecord.name, trimSpaces(org.name))) { logUpdate('name', existingOrgRecord.name, trimSpaces(org.name)) updateOrgRecord.data.name = trimSpaces(org.name) + + const newSlug = await slugUpdate( + { name: trimSpaces(org.name) as string, id: existingOrgRecord.id, slug: existingOrgRecord.slug }, + existing.orgSlug + ) + if (newSlug !== existingOrgRecord.slug) { + updateOrgRecord.data.slug = newSlug + create.slugRedirect.add({ from: existingOrgRecord.slug, to: newSlug, orgId: existingOrgRecord.id }) + } } if ( existingOrgRecord.description && From 494e59fe2c7f6ff2add5e2b2bb1b7f0d57ded2de Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 3 Jul 2023 17:19:59 -0400 Subject: [PATCH 24/66] empty strings -> null --- packages/db/seed/recon/lib/utils.ts | 5 ++++- packages/db/seed/recon/reconJob.ts | 31 ++++++++++++++++------------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/packages/db/seed/recon/lib/utils.ts b/packages/db/seed/recon/lib/utils.ts index 8d0057b407..87f5ef5e31 100644 --- a/packages/db/seed/recon/lib/utils.ts +++ b/packages/db/seed/recon/lib/utils.ts @@ -8,4 +8,7 @@ export const readSuperJSON = (filename: string) => { return superjson.parse(data) } -export const trimSpaces = (str?: string) => (str ? str.trim().replace(/ +(?=[^\S\n])/g, ' ') : undefined) +export const trimSpaces = (str?: string) => (str ? str.trim().replaceAll(/ +(?=[^\S\n])/g, ' ') : undefined) + +export const emptyStrToNull = (str: string | null | undefined) => + str === '' || str === null ? null : trimSpaces(str) diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 7cf178b40f..3d65973231 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -15,13 +15,13 @@ import { dataCorrections, existing, getCountryId, getGovDistId } from '~db/seed/ import { attachLogger, formatMessage } from '~db/seed/recon/lib/logger' import { create, update, writeBatches } from '~db/seed/recon/lib/output' import { type ListrJob } from '~db/seed/recon/lib/types' -import { trimSpaces } from '~db/seed/recon/lib/utils' +import { emptyStrToNull, trimSpaces } from '~db/seed/recon/lib/utils' import { JsonInputOrNull } from '~db/zod_util/prismaJson' export const orgRecon = { title: 'Reconcile Organizations', // skip: true, - // options: { bottomBar: false }, + options: { bottomBar: false }, task: async (_ctx, task) => { attachLogger(task) const log = (...args: Parameters) => (task.output = formatMessage(...args)) @@ -72,6 +72,7 @@ export const orgRecon = { existing.orgSlug ) if (newSlug !== existingOrgRecord.slug) { + logUpdate('slug', existingOrgRecord.slug, newSlug) updateOrgRecord.data.slug = newSlug create.slugRedirect.add({ from: existingOrgRecord.slug, to: newSlug, orgId: existingOrgRecord.id }) } @@ -168,7 +169,7 @@ export const orgRecon = { if (needsUpdate(existingLocation.name, trimSpaces(location.name))) { logUpdate('name', existingLocation.name, trimSpaces(location.name)) - updateRecord.data.name = trimSpaces(location.name) ?? null + updateRecord.data.name = emptyStrToNull(location.name) ?? null } if (needsUpdate(existingLocation.street1, location.address)) { logUpdate('street1', existingLocation.street1, location.address) @@ -176,15 +177,17 @@ export const orgRecon = { } if (needsUpdate(existingLocation.street2, location.unit)) { logUpdate('street2', existingLocation.street2, location.unit) - updateRecord.data.street2 = trimSpaces(location.unit) ?? null + updateRecord.data.street2 = emptyStrToNull(location.unit) ?? null } - if (needsUpdate(existingLocation.city, location.city)) { - logUpdate('city', existingLocation.city, location.city) - updateRecord.data.city = trimSpaces(location.city) + const washdcRegex = /washington.*dc/i + + if (needsUpdate(existingLocation.city, location.city?.replace(washdcRegex, 'Washington'))) { + logUpdate('city', existingLocation.city, location.city?.replace(washdcRegex, 'Washington')) + updateRecord.data.city = trimSpaces(location.city?.replace(washdcRegex, 'Washington')) } if (needsUpdate(existingLocation.postCode, location.zip_code)) { logUpdate('postCode', existingLocation.postCode, location.zip_code) - updateRecord.data.postCode = trimSpaces(location.zip_code) ?? null + updateRecord.data.postCode = emptyStrToNull(location.zip_code) ?? null } if (needsUpdate(existingLocation.primary, location.is_primary)) { logUpdate('primary', existingLocation.primary, location.is_primary) @@ -286,13 +289,13 @@ export const orgRecon = { updateRecord.data.published = email.show_on_organization } } - if (needsUpdate(existingRecord.firstName, email.first_name)) { - logUpdate('firstName', existingRecord.firstName, email.first_name) - updateRecord.data.firstName = email.first_name + if (needsUpdate(existingRecord.firstName, emptyStrToNull(email.first_name))) { + logUpdate('firstName', existingRecord.firstName, emptyStrToNull(email.first_name)) + updateRecord.data.firstName = emptyStrToNull(email.first_name) } - if (needsUpdate(existingRecord.lastName, email.last_name)) { - logUpdate('lastName', existingRecord.lastName, email.last_name) - updateRecord.data.lastName = email.last_name + if (needsUpdate(existingRecord.lastName, emptyStrToNull(email.last_name))) { + logUpdate('lastName', existingRecord.lastName, emptyStrToNull(email.last_name)) + updateRecord.data.lastName = emptyStrToNull(email.last_name) } if (Object.keys(updateRecord.data).length) { From 120cd386d06097adba1f40edd9d06fbe2e0f0b8b Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 4 Jul 2023 15:48:35 -0400 Subject: [PATCH 25/66] update deps --- packages/db/package.json | 1 + pnpm-lock.yaml | 35 ++++++++++++++++------------------- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/packages/db/package.json b/packages/db/package.json index 208a684f4e..f29fbdd345 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -54,6 +54,7 @@ "@vercel/kv": "0.2.2", "@vercel/postgres-kysely": "0.4.0", "@weareinreach/env": "workspace:*", + "just-filter-object": "3.2.0", "kysely": "0.25.0", "prisma-kysely": "1.5.0", "sql-bricks": "3.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 85b51298a4..5794a92fec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -990,6 +990,9 @@ importers: '@weareinreach/env': specifier: workspace:* version: link:../env + just-filter-object: + specifier: 3.2.0 + version: 3.2.0 kysely: specifier: 0.25.0 version: 0.25.0 @@ -1246,7 +1249,7 @@ importers: version: 1.1.4(eslint@8.44.0) eslint-import-resolver-typescript: specifier: 3.5.5 - version: 3.5.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-i@2.27.5-3)(eslint@8.44.0) + version: 3.5.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-i@2.27.5-4)(eslint@8.44.0) eslint-plugin-codegen: specifier: 0.17.0 version: 0.17.0 @@ -1255,7 +1258,7 @@ importers: version: 6.0.3 eslint-plugin-import: specifier: npm:eslint-plugin-i@latest - version: /eslint-plugin-i@2.27.5-3(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) + version: /eslint-plugin-i@2.27.5-4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) eslint-plugin-node: specifier: 11.1.0 version: 11.1.0(patch_hash=45p4dc3r2kwi3h2jyimmny42ju)(eslint@8.44.0) @@ -12705,6 +12708,7 @@ packages: define-properties: 1.2.0 es-abstract: 1.21.2 es-shim-unscopables: 1.0.0 + dev: false /array.prototype.flatmap@1.3.1: resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} @@ -15260,8 +15264,8 @@ packages: '@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.1.6) eslint: 8.44.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-i@2.27.5-3)(eslint@8.44.0) - eslint-plugin-import: /eslint-plugin-i@2.27.5-3(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-i@2.27.5-4)(eslint@8.44.0) + eslint-plugin-import: /eslint-plugin-i@2.27.5-4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.44.0) eslint-plugin-react: 7.32.2(eslint@8.44.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.44.0) @@ -15316,7 +15320,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-i@2.27.5-3)(eslint@8.44.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-i@2.27.5-4)(eslint@8.44.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -15327,7 +15331,7 @@ packages: enhanced-resolve: 5.15.0 eslint: 8.44.0 eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) - eslint-plugin-import: /eslint-plugin-i@2.27.5-3(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) + eslint-plugin-import: /eslint-plugin-i@2.27.5-4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) get-tsconfig: 4.6.0 globby: 13.1.4 is-core-module: 2.12.1 @@ -15365,7 +15369,7 @@ packages: debug: 3.2.7 eslint: 8.44.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-i@2.27.5-3)(eslint@8.44.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-i@2.27.5-4)(eslint@8.44.0) transitivePeerDependencies: - supports-color dev: true @@ -15409,28 +15413,22 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-i@2.27.5-3(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0): - resolution: {integrity: sha512-fxJkCgJmJ1j/4fQwoonVtXT9nwF/MZ5GTUm9bzFvJQIauJgkkaPblqiMox+2pFjXN+2F7xUeq+UzCDJGBJ+vOA==} - engines: {node: '>=4'} + /eslint-plugin-i@2.27.5-4(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0): + resolution: {integrity: sha512-X3Z+dp9nZw7d/y41EDO6JyFw4WVMOT91SFuoJvL0C0/4M1l6NxQ5mLTjXHuYhq0AazW75pAmj25yMk5wPMzjsw==} + engines: {node: '>=12'} peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^7.2.0 || ^8 dependencies: - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 eslint: 8.44.0 eslint-import-resolver-node: 0.3.7 eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) get-tsconfig: 4.6.0 - has: 1.0.3 - is-core-module: 2.12.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.6 resolve: 1.22.3 - semver: 6.3.0 + semver: 7.5.3 transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-typescript @@ -23731,7 +23729,6 @@ packages: /sql-bricks@3.0.0: resolution: {integrity: sha512-P9fXYWdPFOcU2uQr7hwzNa0m6qOjMSV6wmo3DPk1Nzxh9rZWyjgbFaRji41EMV1uHps4SCgwa+Cdv0tUJ+mySw==} - dev: true /ssri@10.0.4: resolution: {integrity: sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==} From a405aac6df89379467e6cd9f844d87916febe128 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 4 Jul 2023 15:51:19 -0400 Subject: [PATCH 26/66] update helpers --- packages/db/.gitignore | 2 +- .../seed/recon/corrections/countryById.json | 2 +- .../seed/recon/corrections/govDistById.json | 1 + .../db/seed/recon/corrections/location.ts | 3 + packages/db/seed/recon/lib/compare.ts | 4 +- packages/db/seed/recon/lib/existing.ts | 23 ++++-- packages/db/seed/recon/lib/output.ts | 78 +++++++++++++++++++ packages/db/seed/recon/lib/translations.ts | 23 +++--- packages/db/seed/recon/lib/utils.ts | 4 +- 9 files changed, 116 insertions(+), 24 deletions(-) create mode 100644 packages/db/seed/recon/corrections/govDistById.json diff --git a/packages/db/.gitignore b/packages/db/.gitignore index eea13e8aec..769cd8384c 100644 --- a/packages/db/.gitignore +++ b/packages/db/.gitignore @@ -19,7 +19,7 @@ seed/data/downloaded/* !seed/data/downloaded/.gitkeep seed/migrate-edits/*.json seed/recon/generated/*.json -seed/recon/corrections/*.json +# seed/recon/corrections/*.json seed/recon/output/**/*.json seed/recon/input/**/*.json diff --git a/packages/db/seed/recon/corrections/countryById.json b/packages/db/seed/recon/corrections/countryById.json index cf90a2c4ce..50af88ee75 100644 --- a/packages/db/seed/recon/corrections/countryById.json +++ b/packages/db/seed/recon/corrections/countryById.json @@ -1 +1 @@ -{"json":[["5e7e4bdad54f1760921a3ca7","US"],["60ecadc2f965f00015e51d01","US"],["5e7e4bdad54f1760921a3ec6","US"],["5e7e4bdad54f1760921a3ec7","US"],["5e7e4bdad54f1760921a3ec8","US"],["5e7e4bdad54f1760921a3ec9","US"],["5e7e4bdad54f1760921a3eca","US"],["60fac93c663b3f0015b244d1","US"],["5e7e4bdad54f1760921a3fd2","US"],["5e7e4bdad54f1760921a3fd4","US"],["5e7e4bdad54f1760921a3fd5","US"],["5e7e4bdad54f1760921a3fd6","US"],["5e7e4bdad54f1760921a3fd7","US"],["5e7e4bdad54f1760921a3fd8","US"],["5e7e4bdad54f1760921a3fd9","US"],["618aa61489824800166fe7c1","US"],["618aae9189824800166fe803","US"],["618aaeee89824800166fe816","US"],["618aaf8189824800166fe82b","US"],["618ab05889824800166fe843","US"],["618ab0e65adee200169c0572","US"],["5e7e4bdbd54f1760921a410f","US"],["6337b29cb155890016f14aa1","US"],["5e7e4bdbd54f1760921a4125","US"],["5e7e4bdbd54f1760921a4177","US"],["5e7e4bdbd54f1760921a417d","US"],["5e7e4bdbd54f1760921a4196","US"],["5e7e4bdbd54f1760921a4205","US"],["5e7e4bdbd54f1760921a428d","US"],["5e7e4bdbd54f1760921a42a2","US"],["5e7e4bdbd54f1760921a42a3","US"],["5e7e4bdbd54f1760921a42a4","US"],["5e7e4bdbd54f1760921a42a5","US"],["5e7e4bdbd54f1760921a42de","US"],["5e7e4bdbd54f1760921a42df","US"],["5e7e4bdbd54f1760921a42e0","US"],["5e7e4bdbd54f1760921a42f7","US"],["5e7e4bdbd54f1760921a430f","US"],["5e7e4bdbd54f1760921a4310","US"],["603e8cc3652598001579b701","US"],["610955b0de86b500156a2755","US"],["5e7e4bdbd54f1760921a4351","US"],["5e7e4bdbd54f1760921a4367","US"],["5e7e4bdbd54f1760921a436f","US"],["5e7e4bdcd54f1760921a4425","US"],["5e7e4bdcd54f1760921a443d","US"],["5e7e4bdcd54f1760921a445d","US"],["5e7e4bdcd54f1760921a449b","US"],["5e7e4bdcd54f1760921a44b1","US"],["5e7e4bdcd54f1760921a44c4","US"],["5e7e4bdcd54f1760921a44e2","US"],["5e7e4bdcd54f1760921a4547","US"],["5e7e4bdcd54f1760921a4548","US"],["60ff4543f6907600151fe987","US"],["5e7e4bdcd54f1760921a45a0","US"],["5e7e4bdcd54f1760921a45a1","US"],["5e7e4bdcd54f1760921a45a2","US"],["5e7e4bdcd54f1760921a45a3","US"],["5e7e4bdcd54f1760921a45a4","US"],["5e7e4bdcd54f1760921a45a5","US"],["60fefdbff6907600151fe68a","US"],["5e7e4bdcd54f1760921a45b8","US"],["5e7e4bdcd54f1760921a45bf","US"],["5e7e4bdcd54f1760921a45c0","US"],["5e7e4bdcd54f1760921a45c1","US"],["5e7e4bdcd54f1760921a45c2","US"],["5e7e4bdcd54f1760921a45c3","US"],["5e7e4bdcd54f1760921a45c4","US"],["5e7e4bdcd54f1760921a45d1","US"],["5e7e4bdcd54f1760921a45d2","US"],["5e7e4bdcd54f1760921a45d4","US"],["5f60e4638715ac00179b8c82","US"],["610c249ae0767700155da6ba","US"],["5e7e4bddd54f1760921a481e","US"],["5e7e4bddd54f1760921a4891","US"],["60da453cf033170015a76933","US"],["5e7e4bddd54f1760921a48cd","US"],["5e7e4bddd54f1760921a4938","US"],["5e7e4bddd54f1760921a495a","US"],["629f564e553d8b002edb749a","US"],["5e7e4bddd54f1760921a4968","US"],["629f50fe553d8b002edb731e","US"],["5e7e4bddd54f1760921a497c","US"],["5e7e4bddd54f1760921a498e","US"],["5e7e4bddd54f1760921a49a4","US"],["5e7e4bddd54f1760921a49b6","US"],["5e7e4bddd54f1760921a49b7","US"],["5e7e4bddd54f1760921a49d9","US"],["5e7e4bddd54f1760921a4a36","US"],["5e7e4bded54f1760921a4ab5","US"],["5e7e4bded54f1760921a4ac8","US"],["5e7e4bded54f1760921a4b07","US"],["5e7e4bded54f1760921a4b08","US"],["5e7e4bded54f1760921a4b14","US"],["5e7e4bded54f1760921a4b15","US"],["5e7e4bded54f1760921a4b16","US"],["5e7e4bded54f1760921a4b17","US"],["5e7e4bded54f1760921a4b18","US"],["5e7e4bded54f1760921a4b38","US"],["5e7e4bded54f1760921a4b39","US"],["5e7e4bded54f1760921a4b3a","US"],["5f0a4dda7ff40e00178093ee","US"],["60c911bcb5824600151f11ba","US"],["5e7e4bded54f1760921a4c2b","US"],["5e7e4bded54f1760921a4d10","CA"],["5e7e4bded54f1760921a4d11","CA"],["5e7e4bded54f1760921a4d12","CA"],["5e7e4bded54f1760921a4d22","CA"],["5e7e4bded54f1760921a4d23","CA"],["5f0611d3a440aa0017b34d54","CA"],["5e7e4bded54f1760921a4d2e","CA"],["5e7e4bded54f1760921a4d3e","CA"],["5e7e4bded54f1760921a4d47","CA"],["5e7e4bded54f1760921a4d65","CA"],["5e7e4bded54f1760921a4d6d","US"],["61017ebb4e31c70015392810","US"],["61017ee14e31c70015392813","US"],["5e7e4bded54f1760921a4d80","CA"],["5e7e4bded54f1760921a4d81","CA"],["5f628f446b370a001704c223","CA"],["5e7e4bded54f1760921a4da0","CA"],["5f6129188715ac00179b8d26","CA"],["5e7e4bded54f1760921a4dba","CA"],["5e7e4bded54f1760921a4dbb","CA"],["5e7e4bded54f1760921a4dbc","CA"],["5e7e4bded54f1760921a4dbd","CA"],["5e7e4bded54f1760921a4dbe","CA"],["5e7e4bded54f1760921a4dbf","CA"],["5e7e4bded54f1760921a4dc0","CA"],["5e7e4bded54f1760921a4dc1","CA"],["5e7e4bded54f1760921a4dc2","CA"],["5e7e4bded54f1760921a4dc3","CA"],["5e7e4bded54f1760921a4dc4","CA"],["5e7e4bded54f1760921a4dc5","CA"],["5e7e4bded54f1760921a4dc6","CA"],["5e7e4bded54f1760921a4dc7","CA"],["5e7e4bded54f1760921a4dc8","CA"],["5e7e4bded54f1760921a4dc9","CA"],["5e7e4bded54f1760921a4dca","CA"],["5e7e4bded54f1760921a4dcb","CA"],["5e7e4bded54f1760921a4dcc","CA"],["5e7e4bdfd54f1760921a4def","CA"],["5e7e4bdfd54f1760921a4e34","US"],["5e7e4bdfd54f1760921a4ea6","CA"],["5e7e4bdfd54f1760921a4f0b","US"],["5e7e4bdfd54f1760921a4f0c","US"],["5e7e4bdfd54f1760921a4f3d","CA"],["5e7e4bdfd54f1760921a4f50","CA"],["5f847d220d3c1400174f814b","US"],["5e7e4bdfd54f1760921a4f94","US"],["5e7e4bdfd54f1760921a5013","US"],["5e7e4bdfd54f1760921a503c","US"],["5e7e4bdfd54f1760921a503d","US"],["5e7e4bdfd54f1760921a503e","US"],["62c5c99d178f1100164f4d47","US"],["62c5cb77178f1100164f4d55","US"],["62c5ccb8178f1100164f4d60","US"],["5e7e4bdfd54f1760921a5055","US"],["5e7e4bdfd54f1760921a5056","US"],["5e7e4bdfd54f1760921a5057","US"],["5e7e4bdfd54f1760921a5058","US"],["5e7e4bdfd54f1760921a5095","US"],["5f729930fb580b00170a6908","US"],["5e7e4bdfd54f1760921a50b4","US"],["5f1afa57325ccf00173398fd","US"],["5f1afb8b325ccf0017339913","US"],["5f1afbe8325ccf001733991b","US"],["5f1afd21325ccf0017339924","US"],["5f1afd78325ccf001733992f","US"],["5e7e4bdfd54f1760921a50bd","CA"],["5e7e4bdfd54f1760921a50be","CA"],["5e7e4bdfd54f1760921a50d0","CA"],["5e7e4be0d54f1760921a5110","CA"],["5e7e4be0d54f1760921a5126","US"],["5e7e4be0d54f1760921a512f","CA"],["5e7e4be0d54f1760921a513f","CA"],["5e7e4be0d54f1760921a5156","CA"],["5e7e4be0d54f1760921a515f","CA"],["5e7e4be0d54f1760921a5169","CA"],["5e7e4be0d54f1760921a5176","CA"],["5e7e4be0d54f1760921a5187","CA"],["5e7e4be0d54f1760921a518b","CA"],["5e7e4be0d54f1760921a5192","CA"],["5e7e4be0d54f1760921a51a0","CA"],["5e7e4be0d54f1760921a51b8","CA"],["5e7e4be0d54f1760921a51c1","CA"],["5e7e4be0d54f1760921a51d0","CA"],["5e7e4be0d54f1760921a51e0","CA"],["5e7e4be0d54f1760921a51ec","CA"],["5e7e4be0d54f1760921a51ed","CA"],["5e7e4be0d54f1760921a51ee","CA"],["5e7e4be0d54f1760921a520e","CA"],["5e7e4be0d54f1760921a520f","CA"],["5e7e4be0d54f1760921a5210","CA"],["5e7e4be0d54f1760921a5211","CA"],["5f6d02292157be0017bf048b","CA"],["5e7e4be0d54f1760921a5227","CA"],["5e7e4be0d54f1760921a523c","CA"],["5e7e4be0d54f1760921a5260","CA"],["5e7e4be0d54f1760921a526b","CA"],["5e7e4be0d54f1760921a527d","CA"],["5e7e4be0d54f1760921a5298","CA"],["5e7e4be0d54f1760921a52c1","CA"],["5e7e4be0d54f1760921a52c2","CA"],["5e7e4be0d54f1760921a52d4","CA"],["5e7e4be0d54f1760921a52fb","CA"],["5e7e4be0d54f1760921a5313","CA"],["5e7e4be0d54f1760921a531a","CA"],["5e7e4be0d54f1760921a532c","CA"],["5e7e4be0d54f1760921a533a","CA"],["5e7e4be0d54f1760921a533b","CA"],["5e7e4be0d54f1760921a533c","CA"],["5e7e4be0d54f1760921a533d","CA"],["5e7e4be0d54f1760921a533e","CA"],["5e7e4be0d54f1760921a533f","CA"],["5e7e4be0d54f1760921a5340","CA"],["5e7e4be0d54f1760921a5341","CA"],["5e7e4be0d54f1760921a5342","CA"],["5e7e4be0d54f1760921a535b","US"],["5e7e4be0d54f1760921a537c","US"],["5e7e4be0d54f1760921a537d","US"],["5e7e4be0d54f1760921a537e","US"],["5e7e4be0d54f1760921a537f","US"],["5e7e4be0d54f1760921a5380","US"],["5e7e4be0d54f1760921a5381","US"],["61084b43d6fa370015df72a6","US"],["5e7e4be0d54f1760921a53a6","US"],["5e7e4be0d54f1760921a53a7","US"],["5e7e4be0d54f1760921a53a8","US"],["5e7e4be0d54f1760921a53a9","US"],["5e7e4be0d54f1760921a53b0","CA"],["5e7e4be1d54f1760921a53d6","CA"],["5e7e4be1d54f1760921a53d7","CA"],["5e7e4be1d54f1760921a53e4","CA"],["5e7e4be1d54f1760921a53f5","US"],["5f0c7fff39f3b00017b38055","US"],["5e7e4be1d54f1760921a5409","CA"],["5e7e4be1d54f1760921a5413","CA"],["5f6004e18715ac00179b8bca","CA"],["5e7e4be1d54f1760921a5426","CA"],["5e7e4be1d54f1760921a5436","CA"],["5e7e4be1d54f1760921a544d","CA"],["5e7e4be1d54f1760921a545e","CA"],["5e7e4be1d54f1760921a546c","CA"],["5e7e4be1d54f1760921a5498","CA"],["5e7e4be1d54f1760921a54a6","CA"],["5e7e4be1d54f1760921a552b","US"],["5e7e4be1d54f1760921a552c","US"],["5e7e4be1d54f1760921a552d","US"],["5e7e4be1d54f1760921a552e","US"],["5e7e4be1d54f1760921a5577","US"],["5e7e4be1d54f1760921a55a0","US"],["5e7e4be1d54f1760921a55a1","US"],["5e7e4be1d54f1760921a55a2","US"],["5e7e4be1d54f1760921a55a3","US"],["5e7e4be1d54f1760921a566a","US"],["5e7e4be1d54f1760921a56fc","US"],["62bb92295edbf80016281036","US"],["5e7e4be1d54f1760921a5723","US"],["5e7e4be2d54f1760921a578a","CA"],["5e7e4be2d54f1760921a578b","CA"],["5e7e4be2d54f1760921a578c","CA"],["5e7e4be2d54f1760921a57d7","US"],["5e7e4be2d54f1760921a5877","US"],["620f1597dbba06002e2fa1c7","US"],["5e7e4be2d54f1760921a5912","CA"],["5e7e4be2d54f1760921a591a","CA"],["620f1f83dbba06002e2fa1ec","US"],["620f1fd5dbba06002e2fa1f1","US"],["5e7e4be2d54f1760921a59b1","US"],["5f0cbc3a0aa72b0017658473","US"],["5e7e4be2d54f1760921a59bd","US"],["5f08f9345f09a9001739f04b","US"],["5e7e4be2d54f1760921a59da","US"],["60d32661c3164c0015bc20c6","US"],["60d338fac3164c0015bc21a0","US"],["60d33920c3164c0015bc21a5","US"],["60d33940c3164c0015bc21ab","US"],["60d33963c3164c0015bc21b2","US"],["60d339d6c3164c0015bc21dd","US"],["60d339f5c3164c0015bc21e6","US"],["60d33a26c3164c0015bc21f0","US"],["60d33a42c3164c0015bc21fb","US"],["60d33a5fc3164c0015bc2207","US"],["5e7e4be3d54f1760921a5a92","US"],["5f0916185f09a9001739f0d0","US"],["5e7e4be3d54f1760921a5a9c","US"],["5f0c99400aa72b00176582e4","US"],["5e7e4be3d54f1760921a5ae7","CA"],["5e7e4be3d54f1760921a5ae8","CA"],["5e7e4be3d54f1760921a5ae9","CA"],["5e7e4be3d54f1760921a5aea","CA"],["5e7e4be3d54f1760921a5aeb","CA"],["5e7e4be3d54f1760921a5aec","CA"],["5e7e4be3d54f1760921a5b04","CA"],["5e7e4be3d54f1760921a5b33","US"],["5f7fb78c57fe7a00175dc21d","US"],["5f7fbc3557fe7a00175dc23e","US"],["5e7e4be3d54f1760921a5b3b","CA"],["5e7e4be3d54f1760921a5b4d","US"],["5e7e4be3d54f1760921a5b5b","CA"],["5e7e4be3d54f1760921a5b6a","US"],["60e88d1be29da400157e3b68","US"],["5e7e4be3d54f1760921a5b97","CA"],["5e7e4be3d54f1760921a5be3","CA"],["5e7e4be3d54f1760921a5bec","CA"],["5e7e4be3d54f1760921a5c0c","CA"],["5e7e4be3d54f1760921a5c0d","CA"],["5e7e4be3d54f1760921a5c0e","CA"],["5e7e4be3d54f1760921a5c0f","CA"],["62b7b3ff70863900168f2e45","CA"],["5e7e4be3d54f1760921a5c26","CA"],["5e7e4be3d54f1760921a5c78","CA"],["5e7e4be4d54f1760921a5cb6","CA"],["5e7e4be4d54f1760921a5cb7","CA"],["5e8911968e957400179ddfb7","US"],["5e8916bf8e957400179ddffb","US"],["5e8916bf8e957400179ddffc","US"],["5e8916bf8e957400179ddffd","US"],["5e8916bf8e957400179ddffe","US"],["5e89172b8e957400179de007","US"],["5e89172b8e957400179de008","US"],["5e8a10638e957400179de068","US"],["5e8a237b8e957400179de079","US"],["5e8a2d928e957400179de0d6","US"],["5e8a34398e957400179de125","US"],["5e8a34a98e957400179de127","US"],["5e8a34a98e957400179de128","US"],["5e8a34a98e957400179de129","US"],["5e8a382a8e957400179de170","US"],["5e8a45bc8e957400179de1f0","US"],["5e8a58ca8e957400179de252","US"],["5e8a58ca8e957400179de253","US"],["60de0404772c7300159badc0","US"],["60de0445772c7300159badc8","US"],["5e9723dc8f45c10017baa6cf","CA"],["5e9f53eaa0121100172f4a1f","US"],["5ea62409c3402d00170e6acb","US"],["5ea75a2bc1b89f0017130653","US"],["60e485994906cf0015bc41c3","US"],["60e4864d4906cf0015bc41d9","US"],["60e486e84906cf0015bc41f3","US"],["60e4873a4906cf0015bc4208","US"],["60e488104906cf0015bc423a","US"],["5eab1a40136375001725df4b","US"],["629a4586831c5a003e700c6e","US"],["6168f9b36a40d100167af016","US"],["5ec2f168f3222c0017a1878e","US"],["60a5243783625c0015a30b29","US"],["5ee02aac5ea23e0017a7a865","US"],["5ee047b55ea23e0017a7a912","US"],["5ee11d335ea23e0017a7a98d","US"],["5ee12b015ea23e0017a7a9ba","US"],["5ee3c9901baddb0017966a25","US"],["5ee7fbea28fcbc001774f1e6","US"],["5ee9175a67416f0017b3dbbe","US"],["60e6ee87964c830015957dee","US"],["5ee8fbee67416f0017b3db62","US"],["5eea4858d45a2d0017a0f336","US"],["5eea719ed45a2d0017a0f396","US"],["5ef2238499695d0017ce2d0c","US"],["633cb43827f64200166d1cfb","US"],["5f111b4b26580400174b9642","US"],["60db921533bdd800152a4010","US"],["60db923e33bdd800152a4013","US"],["60db927233bdd800152a4017","US"],["60db92d133bdd800152a4020","US"],["60db931533bdd800152a4026","US"],["60db936633bdd800152a402d","US"],["60db93bc33bdd800152a4038","US"],["60db940233bdd800152a4044","US"],["60db946d33bdd800152a405a","US"],["5f4989eb1fe664001772b407","US"],["5f4d67875420890017bb8ee0","US"],["620e8b9adbba06002e2fa079","US"],["620e8c17dbba06002e2fa084","US"],["5f67fcc47791ec0017022c11","US"],["5f67fd9b7791ec0017022c15","US"],["5f67fe6f7791ec0017022c22","US"],["5f67ff117791ec0017022c2f","US"],["5f67ff537791ec0017022c39","US"],["5f67ffbf7791ec0017022c45","US"],["5f6800797791ec0017022c62","US"],["5f6800a87791ec0017022c73","US"],["5f6800db7791ec0017022c86","US"],["5f6801287791ec0017022ca0","US"],["5f6ec93ffe8faf0017149241","US"],["5f6ec962fe8faf0017149243","US"],["5f6ec99dfe8faf0017149246","US"],["5f7528af6303f9001733995d","US"],["5f7529636303f90017339965","US"],["5f75342e6303f90017339995","US"],["5f75345d6303f9001733999a","US"],["5f8c7ab6879ccd001739e1c0","US"],["5f99f993173ecb00177a1e95","US"],["60dcc43297360200157fd54b","US"],["6107df13d6fa370015df6d46","US"],["5f9c626903809f001743eb16","US"],["5f9ccac75da5cd0017bdf31c","US"],["5f9ef8a379a2270017c43c8b","US"],["5f9ef8cc79a2270017c43c8d","US"],["5fa4ff5e6165da00172b0aba","US"],["5fa4ffb46165da00172b0abc","US"],["5fab030808e6b400175ded97","US"],["5fbd9aa191fc6a0017aea890","US"],["5fbd9ad191fc6a0017aea892","US"],["617c4fceacb9af00162c2459","US"],["617c5005acb9af00162c2460","US"],["61048224d14cda0015d6d41a","US"],["61047d69d14cda0015d6d3c7","US"],["5fce7bda9e706e00177614b6","US"],["5fd167d1a126db0017d4766f","US"],["5fd192f8a126db0017d476a0","CA"],["5fe8dc7b365b8900173d7d90","CA"],["5fedfa9aefa4df0015b7b09c","US"],["5ff675ecd8898e001594cd31","CA"],["5ff75a4bd8898e001594cd57","US"],["5ff75d51d8898e001594cd67","US"],["5ffa29afaff7250015431183","CA"],["5ffa331caff72500154311bc","CA"],["5ffa335caff72500154311be","CA"],["5ffb6db23c817b0015a5fbdc","US"],["60ce6b351801e300155f27b8","US"],["602b4d8f129c000015532366","US"],["602b4dda129c000015532368","US"],["60c7dbceb5824600151f06e5","US"],["603c4bd7cae0620015826119","US"],["603e7508652598001579b67e","US"],["603e7533652598001579b680","US"],["6045722aabc40800159eff85","US"],["60563b47f09942001538723c","US"],["60563b65f09942001538723e","US"],["605a0d8b86a32f0015516e67","US"],["605a0db586a32f0015516e6c","US"],["605a0de186a32f0015516e71","US"],["6338735ab155890016f14d1b","US"],["6063d79505e9b60015a0e85d","US"],["60cf7d7d13a1370015c98692","US"],["60cf7de313a1370015c98697","US"],["60cf8ce113a1370015c9874d","US"],["61a86c32d929fe00166f35b6","US"],["6192c67410def9001632d583","US"],["6192c6a810def9001632d586","US"],["62bb5f4da42d3600163682b6","US"],["62bb5faca42d3600163682ba","US"],["62bb5ffda42d3600163682c7","US"],["62bb6046a42d3600163682cd","US"],["62bb60b7a42d3600163682e8","US"],["62bb6149a42d3600163682f6","US"],["60929db08e7dc30015317a2e","US"],["60929dd08e7dc30015317a30","US"],["61fb7c37aed35a002e222bf5","US"],["62cdaf574995b600164f9832","US"],["62cdbeb24995b600164f9879","US"],["60afe1512f913d0015ba1469","US"],["617ae987b8ec5b001655950c","US"],["62c85d2ca06df4001680d6ed","US"],["61953d61cf69d00016a04b86","US"],["617aea62b8ec5b0016559514","US"],["617aea8ab8ec5b0016559517","US"],["617aead2b8ec5b001655951b","US"],["60b58b76e94079001526196d","US"],["60b58bd4e940790015261970","US"],["60b58c42e940790015261975","US"],["60b58ce0e94079001526197d","US"],["60b58d3fe940790015261986","US"],["62b2028e2abbb000169caa0b","US"],["60b6f15ac585790015a66714","US"],["60b7e31c8a49790015bfc36b","US"],["60d21ae1eb60480015f2280e","US"],["62d2d421e7dfb1001682591f","US"],["62c4d34c1a8bad0016051097","US"],["60e7b2e6e29da400157e38ea","US"],["60e7b330e29da400157e38ec","US"],["6101eec63b069100156351a4","US"],["6101ef7b3b069100156351a6","US"],["6101efc13b069100156351a9","US"],["61310e83c583d40016b5e6ce","US"],["61310eecc583d40016b5e6d7","US"],["6156ace2b632290016c193d3","US"],["615b69905eabee0016ee9cc7","US"],["615b69ae5eabee0016ee9cc9","US"],["615b69d55eabee0016ee9ccc","US"],["615b6a195eabee0016ee9cd9","US"],["615b6a6c5eabee0016ee9cef","US"],["615b6a875eabee0016ee9cf5","US"],["615b6ac15eabee0016ee9cfc","US"],["61a146d06e47620016725120","US"],["61a147016e47620016725122","US"],["61a155456e47620016725149","US"],["61a16d876e476200167251aa","US"],["61a16df66e476200167251b0","US"],["61a695e49fcb5800160f0ee6","US"],["61a696019fcb5800160f0ee8","US"],["61cecc2a107d4400166c1f88","US"],["61cecc69107d4400166c1f8b","US"],["61cecc8c107d4400166c1f8e","US"],["61ceccbc107d4400166c1f92","US"],["61cecced107d4400166c1f97","US"],["61cecd0f107d4400166c1f9d","US"],["61cecd31107d4400166c1fa4","US"],["61cefe0c6c6bfb0016dcc1bd","US"],["61cf17126c6bfb0016dcc1c7","US"],["61d0893159db9600332ca889","US"],["61d08d2559db9600332ca8a2","US"],["61f4035b90fcea002e2514ae","US"],["61f4041b90fcea002e2514ed","US"],["61f4044190fcea002e2514f0","US"],["61f4047c90fcea002e251508","US"],["61f404a890fcea002e25150d","US"],["61f4057990fcea002e251515","US"],["61f4059390fcea002e251517","US"],["61f405ac90fcea002e25151a","US"],["61f405c390fcea002e25151e","US"],["61f405d490fcea002e251523","US"],["6201dda98a01fe002edde86f","US"],["62d726278e0eed0016a14e26","US"],["620322b9eb04fd002ecab38a","US"],["620942c0417025002ebd3399","US"],["620942f7417025002ebd339c","US"],["6209430e417025002ebd339f","US"],["621bcfefe4a829002e3fa020","US"],["621d0c84e4a829002e3fa514","US"],["621db16ce9deff002ef74370","US"],["621db19de9deff002ef74372","US"],["621db1cce9deff002ef74375","US"],["621db1f7e9deff002ef74379","US"],["621db21ee9deff002ef7437e","US"],["621db924e9deff002ef743cd","US"],["62339ebfe22400003e37af44","CA"],["6245e7dd8286b3002ed51b66","US"],["6245e7fe8286b3002ed51b6a","US"],["6245f1b18286b3002ed51c43","US"],["6245f61e8286b3002ed51c5b","US"],["624a1d80280ec4002ecdef1b","US"],["62584a94cd4225002ee41dca","US"],["6266b8e60e53a2003ebf8741","US"],["626b1d39b21ae1003e14f991","MX"],["6271724dbaa8d7003e5e0b2b","US"],["62709eeaff76e9003ec5f795","US"],["62758d1d49a566003e3a6a25","US"],["6279a5a652fb9c003e6dd4e3","US"],["6287d7f9a7f35f002e8ba86c","US"],["628bac0030b594002e88aa49","US"],["628bac1a30b594002e88aa4b","US"],["628bac3630b594002e88aa4e","US"],["628baca330b594002e88aa52","US"],["6291da431d5273002ef3951d","US"],["62aca091d0f7c900164b9e78","US"],["629f6a7f553d8b002edb7560","US"],["6338888db155890016f14d56","US"],["633889ecb155890016f14d92","US"],["62a7812a34961500161def7b","US"],["62bddd8065e149001633efde","US"],["62be577bf137990016de102e","US"],["62c63aee178f1100164f501e","US"],["62c63b7f178f1100164f503e","US"],["62c63c0d178f1100164f504a","US"],["62c63c9d178f1100164f5056","US"],["62c0932446d0c40016b7ed73","US"],["62c63cff178f1100164f505b","US"],["62c729fa690bcd00163c3740","CA"],["62cd99864995b600164f978a","US"],["62cd99d34995b600164f9791","US"],["62cf5a2c23b1b20016333954","US"],["62cf5ad623b1b20016333961","US"],["62cf5b1623b1b2001633396d","US"],["62cf5b5223b1b2001633397b","US"],["62dc47762c7b7f0016ac1e1d","US"],["62e44f425b13b30016bd975d","US"],["62fbdb06affb290016289caf","US"],["6302b2f22d0d7f0016ee4de1","US"],["6302b31d2d0d7f0016ee4de3","US"],["6302b34d2d0d7f0016ee4de8","US"],["6302b3812d0d7f0016ee4dec","US"],["6302b3a52d0d7f0016ee4df1","US"],["6302b3c12d0d7f0016ee4df7","US"],["6302b4072d0d7f0016ee4e13","US"],["6302b4272d0d7f0016ee4e1b","US"],["6302b4452d0d7f0016ee4e24","US"],["6302b4652d0d7f0016ee4e2e","US"],["6302b4992d0d7f0016ee4e39","US"],["6302b4b62d0d7f0016ee4e45","US"],["6316269209c8ed0016817afd","US"],["63162ae909c8ed0016817b25","US"],["63162b0909c8ed0016817b28","US"],["63162c9009c8ed0016817b33","US"],["6333538dd793a00016e670d7","US"],["6337aa8bb155890016f14a59","US"],["633748332f780e001678236f","US"],["633756322f780e00167823d3","US"],["633767092f780e001678248b","US"],["63376b8a2f780e0016782502","US"],["6337901613e4680016ded226","US"],["6337990c13e4680016ded296","US"],["6356a988e918310016eebf7b","US"],["635bfaea4d49790016f877e5","US"],["63810c3879bab100084bc952","US"],["5e7e4bdfd54f1760921a4eba","US"],["5e7e4be0d54f1760921a52ad","CA"],["60627e7286794c001521516f","CA"],["5e7e4be0d54f1760921a51ad","US"],["5f0cb7550aa72b0017658442","US"],["604aaba4d6a8130015fcd6bf","US"],["5f0916cb5f09a9001739f0d6","US"],["5e7e4be3d54f1760921a5b1b","US"],["5e7e4be3d54f1760921a5b80","US"],["5e7e4be3d54f1760921a5b8d","US"],["63531c63110d8a00163baba7","US"],["6351162aa4daa1001690e619","US"],["63511692a4daa1001690e62e","US"],["638285d1ba3e5a0008c6b2fb","US"],["6382860e1f65680008bbc106","US"],["625758451476bb002e8fe316","US"],["62044032681318002e1268cb","US"],["626be9a7b21ae1003e14f999","US"],["6320fd9fb0efd300168342a8","US"],["62bcc3865edbf80016281434","PR"],["62d5b21bdeeccd0016c3f16f","PR"],["62d5e5e9deeccd0016c3f2aa","PR"],["62d865392b86e50016749322","PR"],["62e1f57976f27d0016039c67","PR"],["62e2001d76f27d0016039c6d","PR"],["62e20a6c76f27d0016039c79","PR"],["62eb1598389733001607d5af","PR"],["62eb1a46389733001607d5ce","PR"],["62ec8bcbdd42bd0016791db4","PR"],["62ec8d7add42bd0016791db7","PR"],["62ec8ef9dd42bd0016791dba","PR"],["62f1926f2a874c0016119213","PR"],["62f3ca568e1e4500160cd73a","PR"],["62f3cb528e1e4500160cd746","PR"],["62f3ccd78e1e4500160cd754","PR"],["63b0607e1b5dfe00084df5e6","GU"],["63b0649b1b5dfe00084df5fd","AS"],["63b06805eafe7a000831b706","AS"],["63fadc1a3d28b70008345d16","US"],["6421e398e91446000884b30d","US"],["64297c44253eb5000835e92f","US"],["64297f7f5a79690008c1af13","US"],["645fda7155bfd90008a08f4c","US"],["645fda8cc772e1000809a0d6","US"],["645fdaa255bfd90008a08f50","US"],["645fdac2c772e1000809a0db","US"],["645fdadc55bfd90008a08f56","US"],["645fdaf8c772e1000809a0e2","US"],["645fdb2a55bfd90008a08f5e","US"],["646161236a6a450008191870","US"],["6464f7954d24b700089a6cb0","US"],["64616b14db1c90000810e8d5","US"],["64616b2931228900084e89ae","US"],["64616b41db1c90000810e8d8","US"],["64616b64fc2c310008884888","US"],["646a71a7709e800008b66084","US"],["644a96dfc863a90008747e8e","US"],["6472acba61bbc60008ceb8b3","US"],["6472b4864b2c3c000862b9ae","US"],["6472cd7e28b9e000084dc680","US"],["6477ed5e9455ba00084a1e80","US"],["6477f73b075f9d0008c8a8a9","US"],["6477f777075f9d0008c8a8ab","US"],["647830d69d517d0008e67270","US"],["647830e7d353ab0008310804","US"],["647b925143b62f000829a99f","US"],["647b9266f8bee900080dc2be","US"],["647bad4b64770c0008446371","US"],["647e45419414da0008cd547a","US"]],"meta":{"values":["map"]}} \ No newline at end of file +{"json":[["5e7e4bdad54f1760921a3ca7","US"],["60ecadc2f965f00015e51d01","US"],["5e7e4bdad54f1760921a3ec6","US"],["5e7e4bdad54f1760921a3ec7","US"],["5e7e4bdad54f1760921a3ec8","US"],["5e7e4bdad54f1760921a3ec9","US"],["5e7e4bdad54f1760921a3eca","US"],["60fac93c663b3f0015b244d1","US"],["5e7e4bdad54f1760921a3fd2","US"],["5e7e4bdad54f1760921a3fd4","US"],["5e7e4bdad54f1760921a3fd5","US"],["5e7e4bdad54f1760921a3fd6","US"],["5e7e4bdad54f1760921a3fd7","US"],["5e7e4bdad54f1760921a3fd8","US"],["5e7e4bdad54f1760921a3fd9","US"],["618aa61489824800166fe7c1","US"],["618aae9189824800166fe803","US"],["618aaeee89824800166fe816","US"],["618aaf8189824800166fe82b","US"],["618ab05889824800166fe843","US"],["618ab0e65adee200169c0572","US"],["5e7e4bdbd54f1760921a410f","US"],["6337b29cb155890016f14aa1","US"],["5e7e4bdbd54f1760921a4125","US"],["5e7e4bdbd54f1760921a4177","US"],["5e7e4bdbd54f1760921a417d","US"],["5e7e4bdbd54f1760921a4196","US"],["5e7e4bdbd54f1760921a4205","US"],["5e7e4bdbd54f1760921a428d","US"],["5e7e4bdbd54f1760921a42a2","US"],["5e7e4bdbd54f1760921a42a3","US"],["5e7e4bdbd54f1760921a42a4","US"],["5e7e4bdbd54f1760921a42a5","US"],["5e7e4bdbd54f1760921a42de","US"],["5e7e4bdbd54f1760921a42df","US"],["5e7e4bdbd54f1760921a42e0","US"],["5e7e4bdbd54f1760921a42f7","US"],["5e7e4bdbd54f1760921a430f","US"],["5e7e4bdbd54f1760921a4310","US"],["603e8cc3652598001579b701","US"],["610955b0de86b500156a2755","US"],["5e7e4bdbd54f1760921a4351","US"],["5e7e4bdbd54f1760921a4367","US"],["5e7e4bdbd54f1760921a436f","US"],["5e7e4bdcd54f1760921a4425","US"],["5e7e4bdcd54f1760921a443d","US"],["5e7e4bdcd54f1760921a445d","US"],["5e7e4bdcd54f1760921a449b","US"],["5e7e4bdcd54f1760921a44b1","US"],["5e7e4bdcd54f1760921a44c4","US"],["5e7e4bdcd54f1760921a44e2","US"],["5e7e4bdcd54f1760921a4547","US"],["5e7e4bdcd54f1760921a4548","US"],["60ff4543f6907600151fe987","US"],["5e7e4bdcd54f1760921a45a0","US"],["5e7e4bdcd54f1760921a45a1","US"],["5e7e4bdcd54f1760921a45a2","US"],["5e7e4bdcd54f1760921a45a3","US"],["5e7e4bdcd54f1760921a45a4","US"],["5e7e4bdcd54f1760921a45a5","US"],["60fefdbff6907600151fe68a","US"],["5e7e4bdcd54f1760921a45b8","US"],["5e7e4bdcd54f1760921a45bf","US"],["5e7e4bdcd54f1760921a45c0","US"],["5e7e4bdcd54f1760921a45c1","US"],["5e7e4bdcd54f1760921a45c2","US"],["5e7e4bdcd54f1760921a45c3","US"],["5e7e4bdcd54f1760921a45c4","US"],["5e7e4bdcd54f1760921a45d1","US"],["5e7e4bdcd54f1760921a45d2","US"],["5e7e4bdcd54f1760921a45d4","US"],["5f60e4638715ac00179b8c82","US"],["610c249ae0767700155da6ba","US"],["5e7e4bddd54f1760921a481e","US"],["5e7e4bddd54f1760921a4891","US"],["60da453cf033170015a76933","US"],["5e7e4bddd54f1760921a48cd","US"],["5e7e4bddd54f1760921a4938","US"],["5e7e4bddd54f1760921a495a","US"],["629f564e553d8b002edb749a","US"],["5e7e4bddd54f1760921a4968","US"],["629f50fe553d8b002edb731e","US"],["5e7e4bddd54f1760921a497c","US"],["5e7e4bddd54f1760921a498e","US"],["5e7e4bddd54f1760921a49a4","US"],["5e7e4bddd54f1760921a49b6","US"],["5e7e4bddd54f1760921a49b7","US"],["5e7e4bddd54f1760921a49d9","US"],["5e7e4bddd54f1760921a4a36","US"],["5e7e4bded54f1760921a4ab5","US"],["5e7e4bded54f1760921a4ac8","US"],["5e7e4bded54f1760921a4b07","US"],["5e7e4bded54f1760921a4b08","US"],["5e7e4bded54f1760921a4b14","US"],["5e7e4bded54f1760921a4b15","US"],["5e7e4bded54f1760921a4b16","US"],["5e7e4bded54f1760921a4b17","US"],["5e7e4bded54f1760921a4b18","US"],["5e7e4bded54f1760921a4b38","US"],["5e7e4bded54f1760921a4b39","US"],["5e7e4bded54f1760921a4b3a","US"],["5f0a4dda7ff40e00178093ee","US"],["60c911bcb5824600151f11ba","US"],["5e7e4bded54f1760921a4c2b","US"],["5e7e4bded54f1760921a4d10","CA"],["5e7e4bded54f1760921a4d11","CA"],["5e7e4bded54f1760921a4d12","CA"],["5e7e4bded54f1760921a4d22","CA"],["5e7e4bded54f1760921a4d23","CA"],["5f0611d3a440aa0017b34d54","CA"],["5e7e4bded54f1760921a4d2e","CA"],["5e7e4bded54f1760921a4d3e","CA"],["5e7e4bded54f1760921a4d47","CA"],["5e7e4bded54f1760921a4d65","CA"],["5e7e4bded54f1760921a4d6d","US"],["61017ebb4e31c70015392810","US"],["61017ee14e31c70015392813","US"],["5e7e4bded54f1760921a4d80","CA"],["5e7e4bded54f1760921a4d81","CA"],["5f628f446b370a001704c223","CA"],["5e7e4bded54f1760921a4da0","CA"],["5f6129188715ac00179b8d26","CA"],["5e7e4bded54f1760921a4dba","CA"],["5e7e4bded54f1760921a4dbb","CA"],["5e7e4bded54f1760921a4dbc","CA"],["5e7e4bded54f1760921a4dbd","CA"],["5e7e4bded54f1760921a4dbe","CA"],["5e7e4bded54f1760921a4dbf","CA"],["5e7e4bded54f1760921a4dc0","CA"],["5e7e4bded54f1760921a4dc1","CA"],["5e7e4bded54f1760921a4dc2","CA"],["5e7e4bded54f1760921a4dc3","CA"],["5e7e4bded54f1760921a4dc4","CA"],["5e7e4bded54f1760921a4dc5","CA"],["5e7e4bded54f1760921a4dc6","CA"],["5e7e4bded54f1760921a4dc7","CA"],["5e7e4bded54f1760921a4dc8","CA"],["5e7e4bded54f1760921a4dc9","CA"],["5e7e4bded54f1760921a4dca","CA"],["5e7e4bded54f1760921a4dcb","CA"],["5e7e4bded54f1760921a4dcc","CA"],["5e7e4bdfd54f1760921a4def","CA"],["5e7e4bdfd54f1760921a4e34","US"],["5e7e4bdfd54f1760921a4ea6","CA"],["5e7e4bdfd54f1760921a4f0b","US"],["5e7e4bdfd54f1760921a4f0c","US"],["5e7e4bdfd54f1760921a4f3d","CA"],["5e7e4bdfd54f1760921a4f50","CA"],["5f847d220d3c1400174f814b","US"],["5e7e4bdfd54f1760921a4f94","US"],["5e7e4bdfd54f1760921a5013","US"],["5e7e4bdfd54f1760921a503c","US"],["5e7e4bdfd54f1760921a503d","US"],["5e7e4bdfd54f1760921a503e","US"],["62c5c99d178f1100164f4d47","US"],["62c5cb77178f1100164f4d55","US"],["62c5ccb8178f1100164f4d60","US"],["5e7e4bdfd54f1760921a5055","US"],["5e7e4bdfd54f1760921a5056","US"],["5e7e4bdfd54f1760921a5057","US"],["5e7e4bdfd54f1760921a5058","US"],["5e7e4bdfd54f1760921a5095","US"],["5f729930fb580b00170a6908","US"],["5e7e4bdfd54f1760921a50b4","US"],["5f1afa57325ccf00173398fd","US"],["5f1afb8b325ccf0017339913","US"],["5f1afbe8325ccf001733991b","US"],["5f1afd21325ccf0017339924","US"],["5f1afd78325ccf001733992f","US"],["5e7e4bdfd54f1760921a50bd","CA"],["5e7e4bdfd54f1760921a50be","CA"],["5e7e4bdfd54f1760921a50d0","CA"],["5e7e4be0d54f1760921a5110","CA"],["5e7e4be0d54f1760921a5126","US"],["5e7e4be0d54f1760921a512f","CA"],["5e7e4be0d54f1760921a513f","CA"],["5e7e4be0d54f1760921a5156","CA"],["5e7e4be0d54f1760921a515f","CA"],["5e7e4be0d54f1760921a5169","CA"],["5e7e4be0d54f1760921a5176","CA"],["5e7e4be0d54f1760921a5187","CA"],["5e7e4be0d54f1760921a518b","CA"],["5e7e4be0d54f1760921a5192","CA"],["5e7e4be0d54f1760921a51a0","CA"],["5e7e4be0d54f1760921a51b8","CA"],["5e7e4be0d54f1760921a51c1","CA"],["5e7e4be0d54f1760921a51d0","CA"],["5e7e4be0d54f1760921a51e0","CA"],["5e7e4be0d54f1760921a51ec","CA"],["5e7e4be0d54f1760921a51ed","CA"],["5e7e4be0d54f1760921a51ee","CA"],["5e7e4be0d54f1760921a520e","CA"],["5e7e4be0d54f1760921a520f","CA"],["5e7e4be0d54f1760921a5210","CA"],["5e7e4be0d54f1760921a5211","CA"],["5f6d02292157be0017bf048b","CA"],["5e7e4be0d54f1760921a5227","CA"],["5e7e4be0d54f1760921a523c","CA"],["5e7e4be0d54f1760921a5260","CA"],["5e7e4be0d54f1760921a526b","CA"],["5e7e4be0d54f1760921a527d","CA"],["5e7e4be0d54f1760921a5298","CA"],["5e7e4be0d54f1760921a52c1","CA"],["5e7e4be0d54f1760921a52c2","CA"],["5e7e4be0d54f1760921a52d4","CA"],["5e7e4be0d54f1760921a52fb","CA"],["5e7e4be0d54f1760921a5313","CA"],["5e7e4be0d54f1760921a531a","CA"],["5e7e4be0d54f1760921a532c","CA"],["5e7e4be0d54f1760921a533a","CA"],["5e7e4be0d54f1760921a533b","CA"],["5e7e4be0d54f1760921a533c","CA"],["5e7e4be0d54f1760921a533d","CA"],["5e7e4be0d54f1760921a533e","CA"],["5e7e4be0d54f1760921a533f","CA"],["5e7e4be0d54f1760921a5340","CA"],["5e7e4be0d54f1760921a5341","CA"],["5e7e4be0d54f1760921a5342","CA"],["5e7e4be0d54f1760921a535b","US"],["5e7e4be0d54f1760921a537c","US"],["5e7e4be0d54f1760921a537d","US"],["5e7e4be0d54f1760921a537e","US"],["5e7e4be0d54f1760921a537f","US"],["5e7e4be0d54f1760921a5380","US"],["5e7e4be0d54f1760921a5381","US"],["61084b43d6fa370015df72a6","US"],["5e7e4be0d54f1760921a53a6","US"],["5e7e4be0d54f1760921a53a7","US"],["5e7e4be0d54f1760921a53a8","US"],["5e7e4be0d54f1760921a53a9","US"],["5e7e4be0d54f1760921a53b0","CA"],["5e7e4be1d54f1760921a53d6","CA"],["5e7e4be1d54f1760921a53d7","CA"],["5e7e4be1d54f1760921a53e4","CA"],["5e7e4be1d54f1760921a53f5","US"],["5f0c7fff39f3b00017b38055","US"],["5e7e4be1d54f1760921a5409","CA"],["5e7e4be1d54f1760921a5413","CA"],["5f6004e18715ac00179b8bca","CA"],["5e7e4be1d54f1760921a5426","CA"],["5e7e4be1d54f1760921a5436","CA"],["5e7e4be1d54f1760921a544d","CA"],["5e7e4be1d54f1760921a545e","CA"],["5e7e4be1d54f1760921a546c","CA"],["5e7e4be1d54f1760921a5498","CA"],["5e7e4be1d54f1760921a54a6","CA"],["5e7e4be1d54f1760921a552b","US"],["5e7e4be1d54f1760921a552c","US"],["5e7e4be1d54f1760921a552d","US"],["5e7e4be1d54f1760921a552e","US"],["5e7e4be1d54f1760921a5577","US"],["5e7e4be1d54f1760921a55a0","US"],["5e7e4be1d54f1760921a55a1","US"],["5e7e4be1d54f1760921a55a2","US"],["5e7e4be1d54f1760921a55a3","US"],["5e7e4be1d54f1760921a566a","US"],["5e7e4be1d54f1760921a56fc","US"],["62bb92295edbf80016281036","US"],["5e7e4be1d54f1760921a5723","US"],["5e7e4be2d54f1760921a578a","CA"],["5e7e4be2d54f1760921a578b","CA"],["5e7e4be2d54f1760921a578c","CA"],["5e7e4be2d54f1760921a57d7","US"],["5e7e4be2d54f1760921a5877","US"],["620f1597dbba06002e2fa1c7","US"],["5e7e4be2d54f1760921a5912","CA"],["5e7e4be2d54f1760921a591a","CA"],["620f1f83dbba06002e2fa1ec","US"],["620f1fd5dbba06002e2fa1f1","US"],["5e7e4be2d54f1760921a59b1","US"],["5f0cbc3a0aa72b0017658473","US"],["5e7e4be2d54f1760921a59bd","US"],["5f08f9345f09a9001739f04b","US"],["5e7e4be2d54f1760921a59da","US"],["60d32661c3164c0015bc20c6","US"],["60d338fac3164c0015bc21a0","US"],["60d33920c3164c0015bc21a5","US"],["60d33940c3164c0015bc21ab","US"],["60d33963c3164c0015bc21b2","US"],["60d339d6c3164c0015bc21dd","US"],["60d339f5c3164c0015bc21e6","US"],["60d33a26c3164c0015bc21f0","US"],["60d33a42c3164c0015bc21fb","US"],["60d33a5fc3164c0015bc2207","US"],["5e7e4be3d54f1760921a5a92","US"],["5f0916185f09a9001739f0d0","US"],["5e7e4be3d54f1760921a5a9c","US"],["5f0c99400aa72b00176582e4","US"],["5e7e4be3d54f1760921a5ae7","CA"],["5e7e4be3d54f1760921a5ae8","CA"],["5e7e4be3d54f1760921a5ae9","CA"],["5e7e4be3d54f1760921a5aea","CA"],["5e7e4be3d54f1760921a5aeb","CA"],["5e7e4be3d54f1760921a5aec","CA"],["5e7e4be3d54f1760921a5b04","CA"],["5e7e4be3d54f1760921a5b33","US"],["5f7fb78c57fe7a00175dc21d","US"],["5f7fbc3557fe7a00175dc23e","US"],["5e7e4be3d54f1760921a5b3b","CA"],["5e7e4be3d54f1760921a5b4d","US"],["5e7e4be3d54f1760921a5b5b","CA"],["5e7e4be3d54f1760921a5b6a","US"],["60e88d1be29da400157e3b68","US"],["5e7e4be3d54f1760921a5b97","CA"],["5e7e4be3d54f1760921a5be3","CA"],["5e7e4be3d54f1760921a5bec","CA"],["5e7e4be3d54f1760921a5c0c","CA"],["5e7e4be3d54f1760921a5c0d","CA"],["5e7e4be3d54f1760921a5c0e","CA"],["5e7e4be3d54f1760921a5c0f","CA"],["62b7b3ff70863900168f2e45","CA"],["5e7e4be3d54f1760921a5c26","CA"],["5e7e4be3d54f1760921a5c78","CA"],["5e7e4be4d54f1760921a5cb6","CA"],["5e7e4be4d54f1760921a5cb7","CA"],["5e8911968e957400179ddfb7","US"],["5e8916bf8e957400179ddffb","US"],["5e8916bf8e957400179ddffc","US"],["5e8916bf8e957400179ddffd","US"],["5e8916bf8e957400179ddffe","US"],["5e89172b8e957400179de007","US"],["5e89172b8e957400179de008","US"],["5e8a10638e957400179de068","US"],["5e8a237b8e957400179de079","US"],["5e8a2d928e957400179de0d6","US"],["5e8a34398e957400179de125","US"],["5e8a34a98e957400179de127","US"],["5e8a34a98e957400179de128","US"],["5e8a34a98e957400179de129","US"],["5e8a382a8e957400179de170","US"],["5e8a45bc8e957400179de1f0","US"],["5e8a58ca8e957400179de252","US"],["5e8a58ca8e957400179de253","US"],["60de0404772c7300159badc0","US"],["60de0445772c7300159badc8","US"],["5e9723dc8f45c10017baa6cf","CA"],["5e9f53eaa0121100172f4a1f","US"],["5ea62409c3402d00170e6acb","US"],["5ea75a2bc1b89f0017130653","US"],["60e485994906cf0015bc41c3","US"],["60e4864d4906cf0015bc41d9","US"],["60e486e84906cf0015bc41f3","US"],["60e4873a4906cf0015bc4208","US"],["60e488104906cf0015bc423a","US"],["5eab1a40136375001725df4b","US"],["629a4586831c5a003e700c6e","US"],["6168f9b36a40d100167af016","US"],["5ec2f168f3222c0017a1878e","US"],["60a5243783625c0015a30b29","US"],["5ee02aac5ea23e0017a7a865","US"],["5ee047b55ea23e0017a7a912","US"],["5ee11d335ea23e0017a7a98d","US"],["5ee12b015ea23e0017a7a9ba","US"],["5ee3c9901baddb0017966a25","US"],["5ee7fbea28fcbc001774f1e6","US"],["5ee9175a67416f0017b3dbbe","US"],["60e6ee87964c830015957dee","US"],["5ee8fbee67416f0017b3db62","US"],["5eea4858d45a2d0017a0f336","US"],["5eea719ed45a2d0017a0f396","US"],["5ef2238499695d0017ce2d0c","US"],["633cb43827f64200166d1cfb","US"],["5f111b4b26580400174b9642","US"],["60db921533bdd800152a4010","US"],["60db923e33bdd800152a4013","US"],["60db927233bdd800152a4017","US"],["60db92d133bdd800152a4020","US"],["60db931533bdd800152a4026","US"],["60db936633bdd800152a402d","US"],["60db93bc33bdd800152a4038","US"],["60db940233bdd800152a4044","US"],["60db946d33bdd800152a405a","US"],["5f4989eb1fe664001772b407","US"],["5f4d67875420890017bb8ee0","US"],["620e8b9adbba06002e2fa079","US"],["620e8c17dbba06002e2fa084","US"],["5f67fcc47791ec0017022c11","US"],["5f67fd9b7791ec0017022c15","US"],["5f67fe6f7791ec0017022c22","US"],["5f67ff117791ec0017022c2f","US"],["5f67ff537791ec0017022c39","US"],["5f67ffbf7791ec0017022c45","US"],["5f6800797791ec0017022c62","US"],["5f6800a87791ec0017022c73","US"],["5f6800db7791ec0017022c86","US"],["5f6801287791ec0017022ca0","US"],["5f6ec93ffe8faf0017149241","US"],["5f6ec962fe8faf0017149243","US"],["5f6ec99dfe8faf0017149246","US"],["5f7528af6303f9001733995d","US"],["5f7529636303f90017339965","US"],["5f75342e6303f90017339995","US"],["5f75345d6303f9001733999a","US"],["5f8c7ab6879ccd001739e1c0","US"],["5f99f993173ecb00177a1e95","US"],["60dcc43297360200157fd54b","US"],["6107df13d6fa370015df6d46","US"],["5f9c626903809f001743eb16","US"],["5f9ccac75da5cd0017bdf31c","US"],["5f9ef8a379a2270017c43c8b","US"],["5f9ef8cc79a2270017c43c8d","US"],["5fa4ff5e6165da00172b0aba","US"],["5fa4ffb46165da00172b0abc","US"],["5fab030808e6b400175ded97","US"],["5fbd9aa191fc6a0017aea890","US"],["5fbd9ad191fc6a0017aea892","US"],["617c4fceacb9af00162c2459","US"],["617c5005acb9af00162c2460","US"],["61048224d14cda0015d6d41a","US"],["61047d69d14cda0015d6d3c7","US"],["5fce7bda9e706e00177614b6","US"],["5fd167d1a126db0017d4766f","US"],["5fd192f8a126db0017d476a0","CA"],["5fe8dc7b365b8900173d7d90","CA"],["5fedfa9aefa4df0015b7b09c","US"],["5ff675ecd8898e001594cd31","CA"],["5ff75a4bd8898e001594cd57","US"],["5ff75d51d8898e001594cd67","US"],["5ffa29afaff7250015431183","CA"],["5ffa331caff72500154311bc","CA"],["5ffa335caff72500154311be","CA"],["5ffb6db23c817b0015a5fbdc","US"],["60ce6b351801e300155f27b8","US"],["602b4d8f129c000015532366","US"],["602b4dda129c000015532368","US"],["60c7dbceb5824600151f06e5","US"],["603c4bd7cae0620015826119","US"],["603e7508652598001579b67e","US"],["603e7533652598001579b680","US"],["6045722aabc40800159eff85","US"],["60563b47f09942001538723c","US"],["60563b65f09942001538723e","US"],["605a0d8b86a32f0015516e67","US"],["605a0db586a32f0015516e6c","US"],["605a0de186a32f0015516e71","US"],["6338735ab155890016f14d1b","US"],["6063d79505e9b60015a0e85d","US"],["60cf7d7d13a1370015c98692","US"],["60cf7de313a1370015c98697","US"],["60cf8ce113a1370015c9874d","US"],["61a86c32d929fe00166f35b6","US"],["6192c67410def9001632d583","US"],["6192c6a810def9001632d586","US"],["62bb5f4da42d3600163682b6","US"],["62bb5faca42d3600163682ba","US"],["62bb5ffda42d3600163682c7","US"],["62bb6046a42d3600163682cd","US"],["62bb60b7a42d3600163682e8","US"],["62bb6149a42d3600163682f6","US"],["60929db08e7dc30015317a2e","US"],["60929dd08e7dc30015317a30","US"],["61fb7c37aed35a002e222bf5","US"],["62cdaf574995b600164f9832","US"],["62cdbeb24995b600164f9879","US"],["60afe1512f913d0015ba1469","US"],["617ae987b8ec5b001655950c","US"],["62c85d2ca06df4001680d6ed","US"],["61953d61cf69d00016a04b86","US"],["617aea62b8ec5b0016559514","US"],["617aea8ab8ec5b0016559517","US"],["617aead2b8ec5b001655951b","US"],["60b58b76e94079001526196d","US"],["60b58bd4e940790015261970","US"],["60b58c42e940790015261975","US"],["60b58ce0e94079001526197d","US"],["60b58d3fe940790015261986","US"],["62b2028e2abbb000169caa0b","US"],["60b6f15ac585790015a66714","US"],["60b7e31c8a49790015bfc36b","US"],["60d21ae1eb60480015f2280e","US"],["62d2d421e7dfb1001682591f","US"],["62c4d34c1a8bad0016051097","US"],["60e7b2e6e29da400157e38ea","US"],["60e7b330e29da400157e38ec","US"],["6101eec63b069100156351a4","US"],["6101ef7b3b069100156351a6","US"],["6101efc13b069100156351a9","US"],["61310e83c583d40016b5e6ce","US"],["61310eecc583d40016b5e6d7","US"],["6156ace2b632290016c193d3","US"],["615b69905eabee0016ee9cc7","US"],["615b69ae5eabee0016ee9cc9","US"],["615b69d55eabee0016ee9ccc","US"],["615b6a195eabee0016ee9cd9","US"],["615b6a6c5eabee0016ee9cef","US"],["615b6a875eabee0016ee9cf5","US"],["615b6ac15eabee0016ee9cfc","US"],["61a146d06e47620016725120","US"],["61a147016e47620016725122","US"],["61a155456e47620016725149","US"],["61a16d876e476200167251aa","US"],["61a16df66e476200167251b0","US"],["61a695e49fcb5800160f0ee6","US"],["61a696019fcb5800160f0ee8","US"],["61cecc2a107d4400166c1f88","US"],["61cecc69107d4400166c1f8b","US"],["61cecc8c107d4400166c1f8e","US"],["61ceccbc107d4400166c1f92","US"],["61cecced107d4400166c1f97","US"],["61cecd0f107d4400166c1f9d","US"],["61cecd31107d4400166c1fa4","US"],["61cefe0c6c6bfb0016dcc1bd","US"],["61cf17126c6bfb0016dcc1c7","US"],["61d0893159db9600332ca889","US"],["61d08d2559db9600332ca8a2","US"],["61f4035b90fcea002e2514ae","US"],["61f4041b90fcea002e2514ed","US"],["61f4044190fcea002e2514f0","US"],["61f4047c90fcea002e251508","US"],["61f404a890fcea002e25150d","US"],["61f4057990fcea002e251515","US"],["61f4059390fcea002e251517","US"],["61f405ac90fcea002e25151a","US"],["61f405c390fcea002e25151e","US"],["61f405d490fcea002e251523","US"],["6201dda98a01fe002edde86f","US"],["62d726278e0eed0016a14e26","US"],["620322b9eb04fd002ecab38a","US"],["620942c0417025002ebd3399","US"],["620942f7417025002ebd339c","US"],["6209430e417025002ebd339f","US"],["621bcfefe4a829002e3fa020","US"],["621d0c84e4a829002e3fa514","US"],["621db16ce9deff002ef74370","US"],["621db19de9deff002ef74372","US"],["621db1cce9deff002ef74375","US"],["621db1f7e9deff002ef74379","US"],["621db21ee9deff002ef7437e","US"],["621db924e9deff002ef743cd","US"],["62339ebfe22400003e37af44","CA"],["6245e7dd8286b3002ed51b66","US"],["6245e7fe8286b3002ed51b6a","US"],["6245f1b18286b3002ed51c43","US"],["6245f61e8286b3002ed51c5b","US"],["624a1d80280ec4002ecdef1b","US"],["62584a94cd4225002ee41dca","US"],["6266b8e60e53a2003ebf8741","US"],["626b1d39b21ae1003e14f991","MX"],["6271724dbaa8d7003e5e0b2b","US"],["62709eeaff76e9003ec5f795","US"],["62758d1d49a566003e3a6a25","US"],["6279a5a652fb9c003e6dd4e3","US"],["6287d7f9a7f35f002e8ba86c","US"],["628bac0030b594002e88aa49","US"],["628bac1a30b594002e88aa4b","US"],["628bac3630b594002e88aa4e","US"],["628baca330b594002e88aa52","US"],["6291da431d5273002ef3951d","US"],["62aca091d0f7c900164b9e78","US"],["629f6a7f553d8b002edb7560","US"],["6338888db155890016f14d56","US"],["633889ecb155890016f14d92","US"],["62a7812a34961500161def7b","US"],["62bddd8065e149001633efde","US"],["62be577bf137990016de102e","US"],["62c63aee178f1100164f501e","US"],["62c63b7f178f1100164f503e","US"],["62c63c0d178f1100164f504a","US"],["62c63c9d178f1100164f5056","US"],["62c0932446d0c40016b7ed73","US"],["62c63cff178f1100164f505b","US"],["62c729fa690bcd00163c3740","CA"],["62cd99864995b600164f978a","US"],["62cd99d34995b600164f9791","US"],["62cf5a2c23b1b20016333954","US"],["62cf5ad623b1b20016333961","US"],["62cf5b1623b1b2001633396d","US"],["62cf5b5223b1b2001633397b","US"],["62dc47762c7b7f0016ac1e1d","US"],["62e44f425b13b30016bd975d","US"],["62fbdb06affb290016289caf","US"],["6302b2f22d0d7f0016ee4de1","US"],["6302b31d2d0d7f0016ee4de3","US"],["6302b34d2d0d7f0016ee4de8","US"],["6302b3812d0d7f0016ee4dec","US"],["6302b3a52d0d7f0016ee4df1","US"],["6302b3c12d0d7f0016ee4df7","US"],["6302b4072d0d7f0016ee4e13","US"],["6302b4272d0d7f0016ee4e1b","US"],["6302b4452d0d7f0016ee4e24","US"],["6302b4652d0d7f0016ee4e2e","US"],["6302b4992d0d7f0016ee4e39","US"],["6302b4b62d0d7f0016ee4e45","US"],["6316269209c8ed0016817afd","US"],["63162ae909c8ed0016817b25","US"],["63162b0909c8ed0016817b28","US"],["63162c9009c8ed0016817b33","US"],["6333538dd793a00016e670d7","US"],["6337aa8bb155890016f14a59","US"],["633748332f780e001678236f","US"],["633756322f780e00167823d3","US"],["633767092f780e001678248b","US"],["63376b8a2f780e0016782502","US"],["6337901613e4680016ded226","US"],["6337990c13e4680016ded296","US"],["6356a988e918310016eebf7b","US"],["635bfaea4d49790016f877e5","US"],["63810c3879bab100084bc952","US"],["5e7e4bdfd54f1760921a4eba","US"],["5e7e4be0d54f1760921a52ad","CA"],["60627e7286794c001521516f","CA"],["5e7e4be0d54f1760921a51ad","US"],["5f0cb7550aa72b0017658442","US"],["604aaba4d6a8130015fcd6bf","US"],["5f0916cb5f09a9001739f0d6","US"],["5e7e4be3d54f1760921a5b1b","US"],["5e7e4be3d54f1760921a5b80","US"],["5e7e4be3d54f1760921a5b8d","US"],["63531c63110d8a00163baba7","US"],["6351162aa4daa1001690e619","US"],["63511692a4daa1001690e62e","US"],["638285d1ba3e5a0008c6b2fb","US"],["6382860e1f65680008bbc106","US"],["625758451476bb002e8fe316","US"],["62044032681318002e1268cb","US"],["626be9a7b21ae1003e14f999","US"],["6320fd9fb0efd300168342a8","US"],["62bcc3865edbf80016281434","PR"],["62d5b21bdeeccd0016c3f16f","PR"],["62d5e5e9deeccd0016c3f2aa","PR"],["62d865392b86e50016749322","PR"],["62e1f57976f27d0016039c67","PR"],["62e2001d76f27d0016039c6d","PR"],["62e20a6c76f27d0016039c79","PR"],["62eb1598389733001607d5af","PR"],["62eb1a46389733001607d5ce","PR"],["62ec8bcbdd42bd0016791db4","PR"],["62ec8d7add42bd0016791db7","PR"],["62ec8ef9dd42bd0016791dba","PR"],["62f1926f2a874c0016119213","PR"],["62f3ca568e1e4500160cd73a","PR"],["62f3cb528e1e4500160cd746","PR"],["62f3ccd78e1e4500160cd754","PR"],["63b0607e1b5dfe00084df5e6","GU"],["63b0649b1b5dfe00084df5fd","AS"],["63b06805eafe7a000831b706","AS"],["63fadc1a3d28b70008345d16","US"],["6421e398e91446000884b30d","US"],["64297c44253eb5000835e92f","US"],["64297f7f5a79690008c1af13","US"],["645fda7155bfd90008a08f4c","US"],["645fda8cc772e1000809a0d6","US"],["645fdaa255bfd90008a08f50","US"],["645fdac2c772e1000809a0db","US"],["645fdadc55bfd90008a08f56","US"],["645fdaf8c772e1000809a0e2","US"],["645fdb2a55bfd90008a08f5e","US"],["646161236a6a450008191870","US"],["6464f7954d24b700089a6cb0","US"],["64616b14db1c90000810e8d5","US"],["64616b2931228900084e89ae","US"],["64616b41db1c90000810e8d8","US"],["64616b64fc2c310008884888","US"],["646a71a7709e800008b66084","US"],["644a96dfc863a90008747e8e","US"],["6472acba61bbc60008ceb8b3","US"],["6472b4864b2c3c000862b9ae","US"],["6472cd7e28b9e000084dc680","US"],["6477ed5e9455ba00084a1e80","US"],["6477f73b075f9d0008c8a8a9","US"],["6477f777075f9d0008c8a8ab","US"],["647830d69d517d0008e67270","US"],["647830e7d353ab0008310804","US"],["647b925143b62f000829a99f","US"],["647b9266f8bee900080dc2be","US"],["647bad4b64770c0008446371","US"],["647e45419414da0008cd547a","US"],["6429f2cc0391c50008143cd8","US"],["6429f2f2f39a68000899877a","US"],["6429f32e24418000082cf9d4","US"],["6429f36df39a680008998789","US"],["6429f3aa24418000082cf9e4","US"],["6429f4935d02f9000867c0f5","US"],["6429f4c924418000082cf9f6","US"],["6429f4f35d02f9000867c108","US"],["6429f52d0391c50008143cec","US"],["6429f54d5d02f9000867c11d","US"],["6429f85550339f0008621f0a","US"],["6429f87750339f0008621f21","US"],["6429f8967216a00008af2978","US"],["6429f8bd50339f0008621f3a","US"],["6429f8e25aade2000844e524","US"],["6429f90450339f0008621f55","US"],["6429f92b38ebec0008e818ee","US"],["6429f94550339f0008621f72","US"],["6429fc869c5fcc0008f47c3e","US"],["6429fcb7e87be7000817ccc4","US"],["64231f10272705000834895e","US"]],"meta":{"values":["map"]}} diff --git a/packages/db/seed/recon/corrections/govDistById.json b/packages/db/seed/recon/corrections/govDistById.json new file mode 100644 index 0000000000..eabc2b8bdb --- /dev/null +++ b/packages/db/seed/recon/corrections/govDistById.json @@ -0,0 +1 @@ +{"json":[["6429f2cc0391c50008143cd8","us-north-dakota"],["641b83a0368cab0008cb9f45","mx-chiapas"]],"meta":{"values":["map"]}} \ No newline at end of file diff --git a/packages/db/seed/recon/corrections/location.ts b/packages/db/seed/recon/corrections/location.ts index a735ea5bcf..d3cba3f695 100644 --- a/packages/db/seed/recon/corrections/location.ts +++ b/packages/db/seed/recon/corrections/location.ts @@ -16,3 +16,6 @@ export const govDistCorrection = superjson.parse export const govDistFromCity = superjson.parse>( fs.readFileSync(path.resolve(__dirname, `./govDistCity.json`), 'utf-8') ) +export const govDistFromId = superjson.parse>( + fs.readFileSync(path.resolve(__dirname, `./govDistById.json`), 'utf-8') +) diff --git a/packages/db/seed/recon/lib/compare.ts b/packages/db/seed/recon/lib/compare.ts index 7378e5c9ec..56eadccb46 100644 --- a/packages/db/seed/recon/lib/compare.ts +++ b/packages/db/seed/recon/lib/compare.ts @@ -1,3 +1,5 @@ +import { trimSpaces } from '~db/seed/recon/lib/utils' + export const needsUpdate = (existing: unknown, migrated: unknown) => { if ( existing === null && @@ -6,7 +8,7 @@ export const needsUpdate = (existing: unknown, migrated: unknown) => { return false } if (typeof existing === 'string' && typeof migrated === 'string') { - return existing.trim() !== migrated.trim() + return trimSpaces(existing) !== trimSpaces(migrated) } if (typeof existing === typeof migrated) { return existing !== migrated diff --git a/packages/db/seed/recon/lib/existing.ts b/packages/db/seed/recon/lib/existing.ts index 3c7034ec37..0e534a5fca 100644 --- a/packages/db/seed/recon/lib/existing.ts +++ b/packages/db/seed/recon/lib/existing.ts @@ -4,8 +4,9 @@ import { countryOverrideId, govDistCorrection, govDistFromCity, + govDistFromId, } from '~db/seed/recon/corrections/location' -import { readSuperJSON } from '~db/seed/recon/lib/utils' +import { readSuperJSON, trimSpaces } from '~db/seed/recon/lib/utils' import type * as Gen from '~db/seed/recon/generated/types' @@ -32,17 +33,22 @@ export const dataCorrections = { countryOverrideById: countryOverrideId, govDist: govDistCorrection, govDistFromCity: govDistFromCity, + govDistFromId, } const territories = ['as', 'gu', 'mh', 'mp', 'pr', 'pw', 'um', 'vi'] -export const getGovDistId = (state: string | undefined, city: string | undefined) => { - if (state && territories.includes(existing.govDistMap.get(state.toLowerCase()) ?? '')) return undefined +export const getGovDistId = (state: string | undefined, city: string | undefined, locId?: string) => { + if (state && territories.includes(existing.govDistMap.get(trimSpaces(state).toLowerCase()) ?? '')) + return undefined if (!state) { - const slug = dataCorrections.govDistFromCity.get(city ?? '') - return slug ? existing.govDistMap.get(slug.toLowerCase()) : undefined + const slug = + dataCorrections.govDistFromCity.get(trimSpaces(city ?? '')) ?? + dataCorrections.govDistFromId.get(locId ?? '') + return slug ? existing.govDistMap.get(slug) : undefined } - const slug = dataCorrections.govDist.get(state.toLowerCase()) + const slug = + dataCorrections.govDist.get(trimSpaces(state)) ?? dataCorrections.govDist.get(`${state}-${city}`) return slug ? existing.govDistMap.get(slug) : undefined } @@ -59,7 +65,10 @@ export const getCountryId = ( if (!location.country) { location.country = dataCorrections.countryOverrideById.get(location.id) } - if (location.state && territories.includes(dataCorrections.govDist.get(location.state) ?? '')) { + if ( + location.state && + territories.includes(dataCorrections.govDist.get(location.state)?.toLowerCase() ?? '') + ) { location.country = dataCorrections.govDist.get(location.state) } if (!location.country) { diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index 9ceb485bcc..aaaa688dd9 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -60,6 +60,12 @@ export const update = { orgService: new Set(), } +export const crowdin = { + create: new Set<{ text: string; key: string }>(), + update: new Set< + { id: number; text: string; delete?: never } | { id: number; delete: true; text?: never } + >(), +} export const batchCount = new Map() export const writeBatches = (task: PassedTask, clear = false) => { // Create @@ -122,6 +128,78 @@ export const writeBatches = (task: PassedTask, clear = false) => { update[batchName].clear() } } + if (crowdin.create) { + const batch = crowdin.create + const batchFile = getBatchFile({ type: 'create', batchName: 'crowdin' }) + if (clear) { + if (fs.existsSync(batchFile)) { + fs.rmSync(batchFile) + task.output = formatMessage(`Deleting file: ${batchFile}`, 'trash') + } + } else { + if (!batch.size) { + task.output = formatMessage(`Skipping empty batch: CrowdIn Additions`, 'skip') + } else { + const currentCount = batchCount.get(`create.crowdin`) ?? 0 + const currentBatchCount = batch.size + const existingBatch = fs.existsSync(batchFile) + ? superjson.parse>(fs.readFileSync(batchFile, 'utf-8')) + : [] + const crowdinActions = [...batch].map(({ text, key: identifier }) => ({ + op: 'add', + path: '/-', + value: { text, identifier, fileId: 794 }, + })) + const outputData = new Set([...existingBatch, ...crowdinActions]) + fs.writeFileSync(batchFile, superjson.stringify(outputData)) + batchCount.set(`create.crowdin`, currentCount + currentBatchCount) + task.output = formatMessage( + `Records added to crowdin.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, + 'write', + true + ) + crowdin.create.clear() + } + } + } + if (crowdin.update) { + const batch = crowdin.update + const batchFile = getBatchFile({ type: 'update', batchName: 'crowdin' }) + if (clear) { + if (fs.existsSync(batchFile)) { + fs.rmSync(batchFile) + task.output = formatMessage(`Deleting file: ${batchFile}`, 'trash') + } + } else { + if (!batch.size) { + task.output = formatMessage(`Skipping empty batch: CrowdIn Updates`, 'skip') + } else { + const currentCount = batchCount.get(`update.crowdin`) ?? 0 + const currentBatchCount = batch.size + const existingBatch = fs.existsSync(batchFile) + ? superjson.parse>(fs.readFileSync(batchFile, 'utf-8')) + : [] + const crowdinActions = [...batch].map((item) => + item.delete + ? { op: 'remove', path: `/${item.id}` } + : { + op: 'replace', + path: `/${item.id}/text`, + value: item.text, + } + ) + const outputData = new Set([...existingBatch, ...crowdinActions]) + fs.writeFileSync(batchFile, superjson.stringify(outputData)) + batchCount.set(`update.crowdin`, currentCount + currentBatchCount) + task.output = formatMessage( + `Records added to crowdin.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, + 'write', + true + ) + crowdin.create.clear() + } + } + } } interface GetCreateParams { diff --git a/packages/db/seed/recon/lib/translations.ts b/packages/db/seed/recon/lib/translations.ts index 449e66be98..b92df02d65 100644 --- a/packages/db/seed/recon/lib/translations.ts +++ b/packages/db/seed/recon/lib/translations.ts @@ -1,9 +1,8 @@ import { namespace } from '~db/generated/namespaces' -import { slug } from '~db/lib/slugGen' import { type TranslationKeySet, type TranslationMap } from '~db/seed/recon/generated/types' import { formatMessage } from '~db/seed/recon/lib/logger' import { type PassedTask } from '~db/seed/recon/lib/types' -import { readSuperJSON } from '~db/seed/recon/lib/utils' +import { readSuperJSON, trimSpaces } from '~db/seed/recon/lib/utils' const translatedStrings: Record> = {} @@ -32,49 +31,49 @@ const translationKeySet = readSuperJSON('translationKeySet') const translationMap = readSuperJSON('translationMap') export const keyExists = (key: string) => translationKeySet.has(key) -export const generateFreeTextKey: GenerateFreeTextKey = ({ slug, itemId, type, text }) => { +export const generateFreeTextKey: GenerateFreeTextKey = ({ orgId, itemId, type, text }) => { switch (type) { case 'name': case 'access': case 'description': { - const key = itemId ? `${slug}.${itemId}.${type}` : `${slug}.${type}` + const key = itemId ? `${orgId}.${itemId}.${type}` : `${orgId}.${type}` if (keyExists(key)) { const currentValue = translationMap.get(key) - if (currentValue?.trim() === text.trim()) return undefined + if (currentValue && trimSpaces(currentValue) === trimSpaces(text)) return undefined return { action: 'update', ns: namespace.orgData, key, - text: text.trim(), + text: trimSpaces(text), } } return { action: 'create', ns: namespace.orgData, key, - text: text.trim(), + text: trimSpaces(text), } } case 'supplement': { if (!itemId) { throw new Error(`'itemId' is required!`) } - const key = `${slug}.attribute.${itemId}` + const key = `${orgId}.attribute.${itemId}` if (keyExists(key)) { const currentValue = translationMap.get(key) - if (currentValue?.trim() === text.trim()) return undefined + if (currentValue && trimSpaces(currentValue) === trimSpaces(text)) return undefined return { action: 'update', ns: namespace.orgData, key, - text: text.trim(), + text: trimSpaces(text), } } return { action: 'create', ns: namespace.orgData, key, - text: text.trim(), + text: trimSpaces(text), } } } @@ -89,7 +88,7 @@ type GenerateFreeTextKey = (params: FreeTextKey) => | undefined type FreeTextKey = { - slug: string + orgId: string itemId?: string type: 'access' | 'description' | 'name' | 'supplement' text: string diff --git a/packages/db/seed/recon/lib/utils.ts b/packages/db/seed/recon/lib/utils.ts index 87f5ef5e31..87a8de16d6 100644 --- a/packages/db/seed/recon/lib/utils.ts +++ b/packages/db/seed/recon/lib/utils.ts @@ -8,7 +8,7 @@ export const readSuperJSON = (filename: string) => { return superjson.parse(data) } -export const trimSpaces = (str?: string) => (str ? str.trim().replaceAll(/ +(?=[^\S\n])/g, ' ') : undefined) +export const trimSpaces = (str: string) => str.trim().replaceAll(/ +(?=[^\S\n])/g, ' ') export const emptyStrToNull = (str: string | null | undefined) => - str === '' || str === null ? null : trimSpaces(str) + str === '' || str === null ? null : str === undefined ? undefined : trimSpaces(str) From f55d130d08b79981ab34cb3d23cc829f2cc05836 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 4 Jul 2023 17:19:46 -0400 Subject: [PATCH 27/66] export exceptions --- packages/db/seed/recon/lib/output.ts | 69 +++++++++++++++++-- .../db/seed/recon/output/exceptions/.gitkeep | 0 2 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 packages/db/seed/recon/output/exceptions/.gitkeep diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index aaaa688dd9..ea087aa735 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -11,9 +11,21 @@ import { type PassedTask } from '~db/seed/recon/lib/types' const outputDir = path.resolve(__dirname, '../output') const createDir = path.resolve(outputDir, 'create') const updateDir = path.resolve(outputDir, 'update') +const execptionDir = path.resolve(outputDir, 'exceptions') -export const getBatchFile: GetBatchFile = ({ type, batchName }) => - type === 'create' ? `${createDir}/${batchName}.json` : `${updateDir}/${batchName}.json` +export const getBatchFile: GetBatchFile = ({ type, batchName }) => { + switch (type) { + case 'create': { + return `${createDir}/${batchName}.json` + } + case 'update': { + return `${updateDir}/${batchName}.json` + } + case 'exceptions': { + return `${execptionDir}/${batchName}.json` + } + } +} export const create = { organization: new Set(), translationKey: new Set(), @@ -66,6 +78,15 @@ export const crowdin = { { id: number; text: string; delete?: never } | { id: number; delete: true; text?: never } >(), } +interface ExceptionItem { + organizationId: string + record: unknown + existing?: unknown +} +export const exceptions = { + phone: new Set(), + location: new Set(), +} export const batchCount = new Map() export const writeBatches = (task: PassedTask, clear = false) => { // Create @@ -91,7 +112,7 @@ export const writeBatches = (task: PassedTask, clear = false) => { fs.writeFileSync(batchFile, superjson.stringify(outputData)) batchCount.set(`create.${batchName}`, currentCount + currentBatchCount) task.output = formatMessage( - `Records added to ${batchName}.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, + `Records added to create/${batchName}.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, 'write', true ) @@ -121,13 +142,43 @@ export const writeBatches = (task: PassedTask, clear = false) => { fs.writeFileSync(batchFile, superjson.stringify(outputData)) batchCount.set(`update.${batchName}`, currentCount + currentBatchCount) task.output = formatMessage( - `Records added to ${batchName}.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, + `Records added to update/${batchName}.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, 'write', true ) update[batchName].clear() } } + // Exceptions + for (const batchName in exceptions) { + const batch = exceptions[batchName] + const batchFile = getBatchFile({ type: 'exceptions', batchName }) + if (clear) { + if (fs.existsSync(batchFile)) { + fs.rmSync(batchFile) + task.output = formatMessage(`Deleting file: ${batchFile}`, 'trash') + } + } else { + if (!batch.size) { + task.output = formatMessage(`Skipping empty batch: ${batchName}`, 'skip') + continue + } + const currentCount = batchCount.get(`exceptions.${batchName}`) ?? 0 + const currentBatchCount = batch.size + const existingBatch = fs.existsSync(batchFile) + ? superjson.parse>(fs.readFileSync(batchFile, 'utf-8')) + : [] + const outputData = new Set([...existingBatch, ...batch]) + fs.writeFileSync(batchFile, superjson.stringify(outputData)) + batchCount.set(`exceptions.${batchName}`, currentCount + currentBatchCount) + task.output = formatMessage( + `Records added to exceptions/${batchName}.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, + 'write', + true + ) + exceptions[batchName].clear() + } + } if (crowdin.create) { const batch = crowdin.create const batchFile = getBatchFile({ type: 'create', batchName: 'crowdin' }) @@ -154,7 +205,7 @@ export const writeBatches = (task: PassedTask, clear = false) => { fs.writeFileSync(batchFile, superjson.stringify(outputData)) batchCount.set(`create.crowdin`, currentCount + currentBatchCount) task.output = formatMessage( - `Records added to crowdin.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, + `Records added to create/crowdin.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, 'write', true ) @@ -192,7 +243,7 @@ export const writeBatches = (task: PassedTask, clear = false) => { fs.writeFileSync(batchFile, superjson.stringify(outputData)) batchCount.set(`update.crowdin`, currentCount + currentBatchCount) task.output = formatMessage( - `Records added to crowdin.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, + `Records added to update/crowdin.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, 'write', true ) @@ -210,5 +261,9 @@ interface GetUpdateParams { type: 'update' batchName: LiteralUnion } +interface GetExceptionsParams { + type: 'exceptions' + batchName: LiteralUnion +} -type GetBatchFile = (params: GetCreateParams | GetUpdateParams) => string +type GetBatchFile = (params: GetCreateParams | GetUpdateParams | GetExceptionsParams) => string diff --git a/packages/db/seed/recon/output/exceptions/.gitkeep b/packages/db/seed/recon/output/exceptions/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 From 25c3a88e3da9f4828d8a75df351e01471fd2e52f Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 4 Jul 2023 17:51:56 -0400 Subject: [PATCH 28/66] email recon, create record if not exist --- packages/db/seed/recon/reconJob.ts | 350 +++++++++++++++++++++++++++-- 1 file changed, 336 insertions(+), 14 deletions(-) diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 3d65973231..53c7aad42c 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -1,4 +1,6 @@ import { geojsonToWKT } from '@terraformer/wkt' +import filterObject from 'just-filter-object' +import parsePhoneNumber, { type PhoneNumber } from 'libphonenumber-js/max' import superjson from 'superjson' import fs from 'fs' @@ -13,11 +15,17 @@ import { organizationsSchema } from '~db/seed/recon/input/types' import { needsUpdate } from '~db/seed/recon/lib/compare' import { dataCorrections, existing, getCountryId, getGovDistId } from '~db/seed/recon/lib/existing' import { attachLogger, formatMessage } from '~db/seed/recon/lib/logger' -import { create, update, writeBatches } from '~db/seed/recon/lib/output' +import { create, crowdin, exceptions, update, writeBatches } from '~db/seed/recon/lib/output' +import { generateFreeTextKey } from '~db/seed/recon/lib/translations' import { type ListrJob } from '~db/seed/recon/lib/types' import { emptyStrToNull, trimSpaces } from '~db/seed/recon/lib/utils' import { JsonInputOrNull } from '~db/zod_util/prismaJson' +const washdcRegex = /washington.*dc/i +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type PlainObject = T extends Map | Set | null ? never : T extends object ? T : never +const filterUndefined = >(obj: PlainObject) => + filterObject(obj, (_k, v) => v !== undefined) export const orgRecon = { title: 'Reconcile Organizations', // skip: true, @@ -79,12 +87,17 @@ export const orgRecon = { } if ( existingOrgRecord.description && - needsUpdate(existingOrgRecord.description.tsKey.text, trimSpaces(org.description)) + needsUpdate(existingOrgRecord.description.tsKey.text, org.description) ) { - logUpdate('description', existingOrgRecord.description.tsKey.text, trimSpaces(org.description)) + logUpdate('description', existingOrgRecord.description.tsKey.text, trimSpaces(org.description ?? '')) + if (org.description && existingOrgRecord.description.tsKey.crowdinId) + crowdin.update.add({ + id: existingOrgRecord.description.tsKey.crowdinId, + text: trimSpaces(org.description), + }) update.translationKey.add({ where: { ns_key: { ns: namespace.orgData, key: existingOrgRecord.description.key } }, - data: { text: trimSpaces(org.description) }, + data: { text: org.description ? trimSpaces(org.description) : undefined }, }) } if (needsUpdate(existingOrgRecord.deleted, org.is_deleted)) { @@ -103,7 +116,7 @@ export const orgRecon = { logUpdate('lastVerified', existingOrgRecord.lastVerified, org.verified_at.$date) updateOrgRecord.data.lastVerified = org.verified_at.$date } - + updateOrgRecord.data = filterUndefined(updateOrgRecord.data) if (Object.keys(updateOrgRecord.data).length) { update.organization.add(updateOrgRecord) log(`Updated ${Object.keys(updateOrgRecord.data).length} keys`, undefined, true) @@ -149,6 +162,7 @@ export const orgRecon = { if (!location.country && !location.city && !location.state) { log(`SKIPPING Location: ${location.name} -- Missing city, governing district, & country`, 'skip') + exceptions.location.add({ organizationId, record: location }) locationSkip++ continue } @@ -167,23 +181,24 @@ export const orgRecon = { (x) => +parseFloat(x.$numberDecimal).toFixed(3) ) - if (needsUpdate(existingLocation.name, trimSpaces(location.name))) { - logUpdate('name', existingLocation.name, trimSpaces(location.name)) + if (needsUpdate(existingLocation.name, location.name)) { + logUpdate('name', existingLocation.name, location.name) updateRecord.data.name = emptyStrToNull(location.name) ?? null } if (needsUpdate(existingLocation.street1, location.address)) { logUpdate('street1', existingLocation.street1, location.address) - updateRecord.data.street1 = trimSpaces(location.address) + updateRecord.data.street1 = location.address ? trimSpaces(location.address) : undefined } if (needsUpdate(existingLocation.street2, location.unit)) { logUpdate('street2', existingLocation.street2, location.unit) updateRecord.data.street2 = emptyStrToNull(location.unit) ?? null } - const washdcRegex = /washington.*dc/i if (needsUpdate(existingLocation.city, location.city?.replace(washdcRegex, 'Washington'))) { logUpdate('city', existingLocation.city, location.city?.replace(washdcRegex, 'Washington')) - updateRecord.data.city = trimSpaces(location.city?.replace(washdcRegex, 'Washington')) + updateRecord.data.city = location.city + ? trimSpaces(location.city.replace(washdcRegex, 'Washington')) + : undefined } if (needsUpdate(existingLocation.postCode, location.zip_code)) { logUpdate('postCode', existingLocation.postCode, location.zip_code) @@ -193,9 +208,18 @@ export const orgRecon = { logUpdate('primary', existingLocation.primary, location.is_primary) updateRecord.data.primary = location.is_primary } - if (needsUpdate(existingLocation.govDistId, getGovDistId(location.state, location.city))) { - logUpdate('govDistId', existingLocation.govDistId, getGovDistId(location.state, location.city)) - updateRecord.data.govDistId = getGovDistId(location.state, location.city) + if ( + needsUpdate( + existingLocation.govDistId, + getGovDistId(location.state, location.city, location._id.$oid) + ) + ) { + logUpdate( + 'govDistId', + existingLocation.govDistId, + getGovDistId(location.state, location.city, location._id.$oid) + ) + updateRecord.data.govDistId = getGovDistId(location.state, location.city, location._id.$oid) } if ( needsUpdate( @@ -235,10 +259,43 @@ export const orgRecon = { updateRecord.data.published = location.show_on_organization } } + updateRecord.data = filterUndefined(updateRecord.data) if (Object.keys(updateRecord.data).length) { update.orgLocation.add(updateRecord) log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) } + } else { + log( + `Creating Location: ${location.name} [${locationCount + locationSkip}/${org.locations.length}]`, + 'generate' + ) + const [longitude, latitude] = location.geolocation.coordinates.map( + (x) => +parseFloat(x.$numberDecimal).toFixed(3) + ) + const geoObj = createPoint({ longitude, latitude }) + const geoJSON = JsonInputOrNull.parse(geoObj) + const geoWKT = geoObj === 'JsonNull' ? undefined : geojsonToWKT(geoObj) + if (!location.city) location.city = '' + + const newLocation: Prisma.OrgLocationCreateManyInput = { + id: generateId('orgLocation'), + orgId: organizationId, + legacyId: location._id.$oid, + name: location.name, + street1: location.address ? trimSpaces(location.address) : '', + street2: emptyStrToNull(location.unit) ?? undefined, + city: trimSpaces(location.city.replace(washdcRegex, 'Washington')), + postCode: emptyStrToNull(location.zip_code) ?? undefined, + countryId: getCountryId(location.country, location.state, location._id.$oid), + govDistId: getGovDistId(location.state, location.city, location._id.$oid), + primary: location.is_primary, + published: location.show_on_organization, + longitude, + latitude, + geoJSON, + geoWKT, + } + create.orgLocation.add(filterUndefined(newLocation) as Prisma.OrgLocationCreateManyInput) } locationCount++ @@ -266,6 +323,7 @@ export const orgRecon = { log(`Processing Email: ${email.email} [${emailCount + emailSkip}/${org.emails.length}]`, 'generate') const existingRecord = await prisma.orgEmail.findUnique({ where: { legacyId: email._id.$oid }, + include: { description: { include: { tsKey: true } } }, }) if (existingRecord) { log(`Reconcile email against ${existingRecord.id}`, undefined, true) @@ -297,15 +355,279 @@ export const orgRecon = { logUpdate('lastName', existingRecord.lastName, emptyStrToNull(email.last_name)) updateRecord.data.lastName = emptyStrToNull(email.last_name) } + if (needsUpdate(existingRecord.description?.tsKey.text, trimSpaces(email.title ?? ''))) { + logUpdate('description', existingRecord.description?.tsKey.text, email.title) + if (existingRecord.description && email.title) { + if (existingRecord.description.tsKey.crowdinId) + crowdin.update.add({ + id: existingRecord.description.tsKey.crowdinId, + text: trimSpaces(email.title), + }) + const { ns, key } = existingRecord.description + update.translationKey.add({ + where: { ns_key: { ns, key } }, + data: { text: trimSpaces(email.title) }, + }) + } else if (existingRecord.description && !email.title) { + log(`Deleting Email description: ${existingRecord.description.tsKey.text}`, 'trash', true) + if (existingRecord.description.tsKey.crowdinId) + crowdin.update.add({ id: existingRecord.description.tsKey.crowdinId, delete: true }) + updateRecord.data.description = { delete: {} } + } else if (!existingRecord.description && email.title) { + log(`Creating Email description: ${email.title}`, 'generate', true) + const freeText = generateFreeTextKey({ + orgId: organizationId, + type: 'description', + itemId: existingRecord.id, + text: trimSpaces(email.title), + }) + if (freeText) { + const id = generateId('freeText') + const { key, ns, text } = freeText + crowdin.create.add({ key, text }) + create.translationKey.add({ key, ns, text }) + create.freeText.add({ id, key, ns }) + updateRecord.data.description = { connect: { id } } + } + } + } + updateRecord.data = filterUndefined(updateRecord.data) if (Object.keys(updateRecord.data).length) { update.orgEmail.add(updateRecord) log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) } + } else { + log(`Creating Email: ${email.email} [${emailCount + emailSkip}/${org.emails.length}]`, 'generate') + const newId = generateId('orgEmail') + const newEmail: Prisma.OrgEmailCreateManyInput = { + id: newId, + email: trimSpaces(email.email), + legacyId: email._id.$oid, + primary: email.is_primary, + published: email.show_on_organization, + firstName: emptyStrToNull(email.first_name) ?? undefined, + lastName: emptyStrToNull(email.last_name) ?? undefined, + } + if (email.title) { + const freeText = generateFreeTextKey({ + orgId: organizationId, + text: trimSpaces(email.title), + type: 'description', + itemId: newId, + }) + if (freeText) { + const id = generateId('freeText') + const { key, ns, text } = freeText + crowdin.create.add({ key, text }) + create.translationKey.add({ key, ns, text }) + create.freeText.add({ id, key, ns }) + newEmail.descriptionId = id + } + } + create.organizationEmail.add({ organizationId, orgEmailId: newEmail.id as string }) + create.orgEmail.add(filterUndefined(newEmail) as Prisma.OrgEmailCreateManyInput) + } + emailCount++ + } + } - emailCount++ + // #endregion + + /** + * . + * + * === PHONES === + * + * . + */ + // #region Phones + if (!org.phones.length) { + log('SKIPPING Phone records, no phones', 'skip') + } else { + log(`Processing ${org.phones.length} Phone records`, 'generate') + let phoneCount = 1 + let phoneSkip = 0 + const deletedPhones = await prisma.orgPhone.findMany({ + where: { + legacyId: { notIn: org.phones.map((x) => x._id.$oid) }, + organization: { organizationId }, + deleted: false, + }, + select: { id: true, number: true }, + }) + if (deletedPhones.length) { + log(`Marking ${deletedPhones.length} Phone records as deleted`, 'trash') + for (const phone of deletedPhones) { + log(`Marking phone ${phone.number} as deleted`, undefined, true) + update.orgPhone.add({ where: { id: phone.id }, data: { deleted: true } }) } } + + for (const phone of org.phones) { + if (!phone.digits) { + phoneSkip++ + log( + `SKIPPING ${phone._id.$oid} - Missing digits [${phoneCount + phoneSkip}/${org.phones.length}]`, + 'skip', + true + ) + continue + } + log( + `Processing Phone: ${phone.digits} [${phoneCount + phoneSkip}/${org.phones.length}]`, + 'generate' + ) + const existingRecord = await prisma.orgPhone.findUnique({ + where: { legacyId: phone._id.$oid }, + include: { description: { include: { tsKey: true } } }, + }) + if (existingRecord) { + log(`Reconcile phone against ${existingRecord.id}`, undefined, true) + const updateRecord: Prisma.OrgPhoneUpdateArgs = { + where: { id: existingRecord.id }, + data: {}, + } + const countryCodes = ['CA', 'MX', 'US', 'PR', 'VI', 'GU', 'AS', 'MP', 'MH', 'PW'] as const + let phoneData: PhoneNumber | undefined + for (const country of countryCodes) { + const strip = /(?:,.*)|(?:option.*)/gi + phoneData = parsePhoneNumber( + phone.digits.replace(/\)-/, ') ').replaceAll(strip, '').replace(/×/, 'ext. '), + country + ) + if (phoneData?.country) { + break + } + } + if (!phoneData) { + phoneSkip++ + log( + `SKIPPING ${phone._id.$oid} - Cannot parse [${phoneCount + phoneSkip}/${org.phones.length}]`, + 'skip', + true + ) + exceptions.phone.add({ organizationId, record: phone, existing: existingRecord }) + // debugger + continue + } + const phoneCountry = existing.country.get(phoneData.country ?? 'US') + + if (needsUpdate(existingRecord.number, phoneData.nationalNumber)) { + logUpdate('number', existingRecord.number, phoneData.nationalNumber) + updateRecord.data.number = phoneData.nationalNumber + } + if (needsUpdate(existingRecord.ext, phoneData.ext)) { + logUpdate('ext', existingRecord.ext, phoneData.ext) + } + if (phoneCountry && needsUpdate(existingRecord.countryId, phoneCountry)) { + logUpdate('countryId', existingRecord.countryId, phoneCountry) + updateRecord.data.countryId = phoneCountry + } + if (needsUpdate(existingRecord.primary, phone.is_primary)) { + logUpdate('primary', existingRecord.primary, phone.is_primary) + updateRecord.data.primary = phone.is_primary + } + if (needsUpdate(existingRecord.published, phone.show_on_organization)) { + if (phone.show_on_organization === true) { + log(`SKIPPING - Mark phone as published`, 'skip', true) + } else { + logUpdate('published', existingRecord.published, phone.show_on_organization) + updateRecord.data.published = phone.show_on_organization + } + } + if (needsUpdate(existingRecord.description?.tsKey.text, phone.phone_type)) { + if (!existingRecord.description) { + const freeText = generateFreeTextKey({ + orgId: organizationId, + text: phone.phone_type, + type: 'description', + itemId: existingRecord.id, + }) + if (freeText && freeText.action === 'create') { + log(`Adding description: ${phone.phone_type}`, 'create', true) + const id = generateId('freeText') + const { key, ns, text } = freeText + create.translationKey.add({ key, ns, text }) + create.freeText.add({ id, key, ns }) + crowdin.create.add({ key, text }) + updateRecord.data.description = { connect: { id } } + } + } else { + log(`Updating description: ${phone.phone_type}`, 'update', true) + const { key, ns } = existingRecord.description + update.translationKey.add({ + where: { ns_key: { ns, key } }, + data: { text: trimSpaces(phone.phone_type) }, + }) + if (existingRecord.description.tsKey.crowdinId) + crowdin.update.add({ + id: existingRecord.description.tsKey.crowdinId, + text: trimSpaces(phone.phone_type), + }) + } + } + updateRecord.data = filterUndefined(updateRecord.data) + if (Object.keys(updateRecord.data).length) { + update.orgPhone.add(updateRecord) + log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) + } + } else { + log( + `Creating Phone: ${phone.digits} [${phoneCount + phoneSkip}/${org.phones.length}]`, + 'create', + true + ) + const newPhone: Prisma.OrgPhoneCreateManyInput = { number: '', countryId: '' } + + const countryCodes = ['CA', 'MX', 'US', 'PR', 'VI', 'GU', 'AS', 'MP', 'MH', 'PW'] as const + let phoneData: PhoneNumber | undefined + for (const country of countryCodes) { + phoneData = parsePhoneNumber(phone.digits, country) + if (phoneData?.country) { + break + } + } + const phoneCountry = existing.country.get(phoneData?.country ?? 'US') + if (!phoneData || !phoneCountry) { + phoneSkip++ + log( + `SKIPPING ${phone._id.$oid} - Cannot parse [${phoneCount + phoneSkip}/${org.phones.length}]`, + 'skip', + true + ) + exceptions.phone.add({ organizationId, record: phone, existing: null }) + continue + } + newPhone.id = generateId('orgPhone') + newPhone.legacyId = phone._id.$oid + newPhone.number = phoneData.nationalNumber + newPhone.ext = phoneData.ext + newPhone.countryId = phoneCountry + if (phone.phone_type) { + const freeText = generateFreeTextKey({ + orgId: organizationId, + text: phone.phone_type, + type: 'description', + itemId: newPhone.id, + }) + if (freeText && freeText.action === 'create') { + log(`Adding description: ${phone.phone_type}`, 'create', true) + const id = generateId('freeText') + const { key, ns, text } = freeText + create.translationKey.add({ key, ns, text }) + create.freeText.add({ id, key, ns }) + crowdin.create.add({ key, text }) + newPhone.descriptionId = id + newPhone.legacyDesc = phone.phone_type + } + } + create.organizationPhone.add({ organizationId, phoneId: newPhone.id }) + create.orgPhone.add(filterUndefined(newPhone) as Prisma.OrgPhoneCreateManyInput) + } + } + + phoneCount++ } // #endregion From 765d4c6a862d0ee7cf4a3e312d33781b7ba499a9 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 5 Jul 2023 11:09:52 -0400 Subject: [PATCH 29/66] audit logging --- packages/db/lib/zod.ts | 8 +++++++- packages/db/package.json | 1 + .../migrations/20230705144633_add_audit_log/migration.sql | 5 +++++ packages/db/prisma/schema.prisma | 7 +++++-- packages/db/seed/recon/lib/output.ts | 1 + pnpm-lock.yaml | 3 +++ 6 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 packages/db/prisma/migrations/20230705144633_add_audit_log/migration.sql diff --git a/packages/db/lib/zod.ts b/packages/db/lib/zod.ts index 86ba8b3432..eb75e9e0ed 100644 --- a/packages/db/lib/zod.ts +++ b/packages/db/lib/zod.ts @@ -23,7 +23,13 @@ export const JsonValue: z.ZodType = z.union([ z.lazy(() => z.array(JsonValue)), z.lazy(() => z.record(JsonValue)), ]) - +export const InputJsonValue: z.ZodType = z.union([ + z.string(), + z.number(), + z.boolean(), + z.lazy(() => z.array(InputJsonValue)), + z.lazy(() => z.record(InputJsonValue)), +]) export type JsonValueType = z.infer export const NullableJsonValue = z .union([JsonValue, z.literal('DbNull'), z.literal('JsonNull')]) diff --git a/packages/db/package.json b/packages/db/package.json index f29fbdd345..7ab996ca8f 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -55,6 +55,7 @@ "@vercel/postgres-kysely": "0.4.0", "@weareinreach/env": "workspace:*", "just-filter-object": "3.2.0", + "just-pick": "4.2.0", "kysely": "0.25.0", "prisma-kysely": "1.5.0", "sql-bricks": "3.0.0", diff --git a/packages/db/prisma/migrations/20230705144633_add_audit_log/migration.sql b/packages/db/prisma/migrations/20230705144633_add_audit_log/migration.sql new file mode 100644 index 0000000000..80c7ae18e6 --- /dev/null +++ b/packages/db/prisma/migrations/20230705144633_add_audit_log/migration.sql @@ -0,0 +1,5 @@ +-- AlterTable +ALTER TABLE "AuditLog" ADD COLUMN "slugRedirectId" TEXT; + +-- AddForeignKey +ALTER TABLE "AuditLog" ADD CONSTRAINT "AuditLog_slugRedirectId_fkey" FOREIGN KEY ("slugRedirectId") REFERENCES "SlugRedirect"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index d2471dc5a3..631907369f 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -471,8 +471,9 @@ model SlugRedirect { org Organization @relation(fields: [orgId], references: [id]) orgId String - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt + auditLogs AuditLog[] + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt } /// Organization email contacts - can be general or location specific @@ -1727,6 +1728,8 @@ model AuditLog { serviceCategoryId String? ServiceTag ServiceTag? @relation(fields: [serviceTagId], references: [id], onDelete: SetNull, onUpdate: Cascade) serviceTagId String? + SlugRedirect SlugRedirect? @relation(fields: [slugRedirectId], references: [id], onDelete: SetNull, onUpdate: Cascade) + slugRedirectId String? SocialMediaLink SocialMediaLink? @relation(fields: [socialMediaLinkId], references: [id], onDelete: SetNull, onUpdate: Cascade) socialMediaLinkId String? SocialMediaService SocialMediaService? @relation(fields: [socialMediaServiceId], references: [id], onDelete: SetNull, onUpdate: Cascade) diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index ea087aa735..4821aa6b26 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -59,6 +59,7 @@ export const create = { organizationEmail: new Set(), organizationPhone: new Set(), slugRedirect: new Set(), + auditLog: new Set(), } export const update = { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b1079fa9b3..fbb04b8ddb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -993,6 +993,9 @@ importers: just-filter-object: specifier: 3.2.0 version: 3.2.0 + just-pick: + specifier: 4.2.0 + version: 4.2.0 kysely: specifier: 0.25.0 version: 0.25.0 From ac01026b09fc6fcc905908829cb362d29bc3f14f Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 5 Jul 2023 17:51:17 -0400 Subject: [PATCH 30/66] add deps --- packages/db/package.json | 5 +++++ pnpm-lock.yaml | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/packages/db/package.json b/packages/db/package.json index 7ab996ca8f..b8a0cccfa7 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -54,7 +54,12 @@ "@vercel/kv": "0.2.2", "@vercel/postgres-kysely": "0.4.0", "@weareinreach/env": "workspace:*", + "json-difference": "1.9.1", + "just-compare": "2.3.0", + "just-diff": "6.0.2", + "just-diff-apply": "5.5.0", "just-filter-object": "3.2.0", + "just-map-values": "3.2.0", "just-pick": "4.2.0", "kysely": "0.25.0", "prisma-kysely": "1.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fbb04b8ddb..8e71ff31ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -990,9 +990,24 @@ importers: '@weareinreach/env': specifier: workspace:* version: link:../env + json-difference: + specifier: 1.9.1 + version: 1.9.1 + just-compare: + specifier: 2.3.0 + version: 2.3.0 + just-diff: + specifier: 6.0.2 + version: 6.0.2 + just-diff-apply: + specifier: 5.5.0 + version: 5.5.0 just-filter-object: specifier: 3.2.0 version: 3.2.0 + just-map-values: + specifier: 3.2.0 + version: 3.2.0 just-pick: specifier: 4.2.0 version: 4.2.0 @@ -18707,6 +18722,11 @@ packages: /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + /json-difference@1.9.1: + resolution: {integrity: sha512-5c2xaHKMkTq6T9KfCh4r3PVHQObpOyKMZzrySCAoYPBYJ0VqKDUW7dioddKLNS9z4Jey7yyMNSTH3bNF95Z1Nw==} + engines: {node: '>=14.x'} + dev: false + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} From c4272680a0333faac8317f60d8f958eb2a0eed9b Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 5 Jul 2023 17:52:20 -0400 Subject: [PATCH 31/66] update parsers/helpers --- packages/db/seed/recon/corrections/hours.ts | 17 ++- packages/db/seed/recon/lib/existing.ts | 9 +- packages/db/seed/recon/lib/output.ts | 3 + packages/db/seed/recon/lib/utils.ts | 9 ++ packages/db/seed/recon/parsers/attributes.ts | 20 +++ packages/db/seed/recon/parsers/hours.ts | 137 +++++++++++++++++++ 6 files changed, 192 insertions(+), 3 deletions(-) create mode 100644 packages/db/seed/recon/parsers/hours.ts diff --git a/packages/db/seed/recon/corrections/hours.ts b/packages/db/seed/recon/corrections/hours.ts index cc3534f9dd..102c886142 100644 --- a/packages/db/seed/recon/corrections/hours.ts +++ b/packages/db/seed/recon/corrections/hours.ts @@ -8,7 +8,7 @@ export const hoursCorrection = superjson.parse>( ) export const hoursMeta = ['multi', '24h', 'closed'] -export const dayMap = new Map([ +export const dayMap = new Map([ ['sunday', 0], ['monday', 1], ['tuesday', 2], @@ -17,3 +17,18 @@ export const dayMap = new Map([ ['friday', 5], ['saturday', 6], ]) + +export const timezoneMap = new Map([ + ['PST', 'America/Los_Angeles'], + ['MST', 'America/Denver'], + ['CST', 'America/Chicago'], + ['EST', 'America/New_York'], + ['PDT', 'America/Los_Angeles'], + ['EDT', 'America/New_York'], + ['MDT', 'America/Denver'], + ['AST', 'America/Anchorage'], + ['NST', 'America/St_Johns'], + ['CDT', 'America/Chicago'], + ['HST', 'Pacific/Honolulu'], + ['AKST', 'America/Anchorage'], +]) diff --git a/packages/db/seed/recon/lib/existing.ts b/packages/db/seed/recon/lib/existing.ts index 0e534a5fca..7098800699 100644 --- a/packages/db/seed/recon/lib/existing.ts +++ b/packages/db/seed/recon/lib/existing.ts @@ -1,4 +1,4 @@ -import { hoursCorrection } from '~db/seed/recon/corrections/hours' +import { dayMap, hoursCorrection, hoursMeta, timezoneMap } from '~db/seed/recon/corrections/hours' import { countryCorrection, countryOverrideId, @@ -28,13 +28,18 @@ export const existing = { } export const dataCorrections = { - hours: hoursCorrection, country: countryCorrection, countryOverrideById: countryOverrideId, govDist: govDistCorrection, govDistFromCity: govDistFromCity, govDistFromId, } +export const hoursCorrections = { + hours: hoursCorrection, + days: dayMap, + meta: hoursMeta, + tz: timezoneMap, +} const territories = ['as', 'gu', 'mh', 'mp', 'pr', 'pw', 'um', 'vi'] diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index 4821aa6b26..e7d355ffc5 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -71,6 +71,8 @@ export const update = { orgWebsite: new Set(), orgSocialMedia: new Set(), orgService: new Set(), + orgPhoto: new Set(), + attributeSupplement: new Set(), } export const crowdin = { @@ -87,6 +89,7 @@ interface ExceptionItem { export const exceptions = { phone: new Set(), location: new Set(), + socialMedia: new Set(), } export const batchCount = new Map() export const writeBatches = (task: PassedTask, clear = false) => { diff --git a/packages/db/seed/recon/lib/utils.ts b/packages/db/seed/recon/lib/utils.ts index 87a8de16d6..9b80c3d6e9 100644 --- a/packages/db/seed/recon/lib/utils.ts +++ b/packages/db/seed/recon/lib/utils.ts @@ -12,3 +12,12 @@ export const trimSpaces = (str: string) => str.trim().replaceAll(/ +(?=[^\S\n])/ export const emptyStrToNull = (str: string | null | undefined) => str === '' || str === null ? null : str === undefined ? undefined : trimSpaces(str) + +/** + * Throws an error - Use to raise an error for nullish-coalesced values + * + * @example FnThatDoesntAcceptUndefined(possibleUndefined ?? raise('this is the error')) + */ +export const raise = (err: string): never => { + throw new Error(err) +} diff --git a/packages/db/seed/recon/parsers/attributes.ts b/packages/db/seed/recon/parsers/attributes.ts index 0d5242aa9b..e30da47738 100644 --- a/packages/db/seed/recon/parsers/attributes.ts +++ b/packages/db/seed/recon/parsers/attributes.ts @@ -209,6 +209,26 @@ export const tagParser = (tag: string, value: string | number | boolean) => { } } +export const generateSupplementTxn = (updatedRecord: AttrSupp | AttrSupp[]) => { + if (Array.isArray(updatedRecord)) { + return updatedRecord.map(({ id, ...data }) => ({ + where: { id }, + data, + })) + } + const { id, ...data } = updatedRecord + return { where: { id }, data } +} +type AttrSupp = { + id?: string + data?: unknown | undefined + boolean?: boolean | null + countryId?: string | null + govDistId?: string | null + languageId?: string | null + text?: string +} + interface AttributeSupplementData { countryId?: string govDistId?: string diff --git a/packages/db/seed/recon/parsers/hours.ts b/packages/db/seed/recon/parsers/hours.ts new file mode 100644 index 0000000000..23fbda1811 --- /dev/null +++ b/packages/db/seed/recon/parsers/hours.ts @@ -0,0 +1,137 @@ +import { DateTime, Interval } from 'luxon' +import superjson from 'superjson' +import invariant from 'tiny-invariant' + +import fs from 'fs' +import path from 'path' + +import { type Prisma } from '~db/client' +import { JsonInputOrNull } from '~db/zod_util/prismaJson' + +const hoursCorrections = { + hours: superjson.parse>( + fs.readFileSync(path.resolve(__dirname, `../corrections/hours.json`), 'utf-8') + ), + days: new Map([ + ['sunday', 0], + ['monday', 1], + ['tuesday', 2], + ['wednesday', 3], + ['thursday', 4], + ['friday', 5], + ['saturday', 6], + ]), + meta: ['multi', '24h', 'closed'], + tz: new Map([ + ['PST', 'America/Los_Angeles'], + ['MST', 'America/Denver'], + ['CST', 'America/Chicago'], + ['EST', 'America/New_York'], + ['PDT', 'America/Los_Angeles'], + ['EDT', 'America/New_York'], + ['MDT', 'America/Denver'], + ['AST', 'America/Anchorage'], + ['NST', 'America/St_Johns'], + ['CDT', 'America/Chicago'], + ['HST', 'Pacific/Honolulu'], + ['AKST', 'America/Anchorage'], + ]), +} +export const parseSchedule = (schedule: Schedule) => { + const regexStart = /.*_start/i + const regexEnd = /.*_end/i + const hours: HoursObj = { + 0: {}, + 1: {}, + 2: {}, + 3: {}, + 4: {}, + 5: {}, + 6: {}, + } + const { name, note } = schedule + for (const [key, value] of Object.entries(schedule)) { + if (regexStart.test(key) || regexEnd.test(key)) { + const [day, hourType] = key.split('_') + if (!day || !hourType) continue + const dayIndex = hoursCorrections.days.get(day) + invariant(dayIndex !== undefined) + const record = hours[dayIndex] + if (record === undefined) { + throw new Error('Unable to set record') + } + if (Object.keys(hours).includes(dayIndex?.toString())) { + const time = hoursCorrections.hours.get(value) + if (time === undefined) continue + const zone = hoursCorrections.tz.get(schedule.timezone ?? '') + /* handle 'multi,' '24h,' & 'closed' */ + if (hoursCorrections.meta.includes(time)) { + switch (time) { + case 'multi': { + record.start = DateTime.fromFormat('00:00', 'HH:mm', { zone }).toJSDate() + record.end = DateTime.fromFormat('00:00', 'HH:mm', { zone }).toJSDate() + record.needReview = true + record.legacyNote = `multiple times (${value}) ${note ?? ''}`.trim() + break + } + case '24h': { + record.start = DateTime.fromFormat('00:00', 'HH:mm', { zone }).toJSDate() + record.end = DateTime.fromFormat('23:59', 'HH:mm', { zone }).toJSDate() + record.open24hours = true + break + } + case 'closed': { + record.start = DateTime.fromFormat('00:00', 'HH:mm', { zone }).toJSDate() + record.end = DateTime.fromFormat('00:00', 'HH:mm', { zone }).toJSDate() + record.closed = true + break + } + } + } else { + record[hourType] = DateTime.fromFormat(time, 'HH:mm', { zone }).toJSDate() + } + record.legacyId ??= schedule._id.$oid + record.legacyName ??= name + record.legacyNote ??= note + record.legacyTz = schedule.timezone + record.tz = hoursCorrections.tz.get(schedule.timezone ?? '') + if (record.start instanceof Date && record.end instanceof Date) { + record.interval = JsonInputOrNull.parse( + superjson.serialize( + Interval.fromDateTimes( + DateTime.fromJSDate(record.start, { zone }), + DateTime.fromJSDate(record.end, { zone }) + ) + ) + ) + } + } + } + } + return hours +} + +type HoursObj = Record< + 0 | 1 | 2 | 3 | 4 | 5 | 6, + Partial | undefined +> +interface Schedule { + _id: { $oid: string } + monday_start?: string + monday_end?: string + tuesday_start?: string + tuesday_end?: string + wednesday_start?: string + wednesday_end?: string + thursday_start?: string + thursday_end?: string + friday_start?: string + friday_end?: string + saturday_start?: string + saturday_end?: string + sunday_start?: string + sunday_end?: string + name?: string + timezone?: string + note?: string +} From c31b9a3bf60178614c6f55d7c2fcdeea7e0eaa0d Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 5 Jul 2023 17:54:14 -0400 Subject: [PATCH 32/66] auditLogs, websites, social media, photos, attributes(partial) --- packages/db/seed/recon/reconJob.ts | 515 ++++++++++++++++++++++++++++- 1 file changed, 511 insertions(+), 4 deletions(-) diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 53c7aad42c..6c91defb81 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -1,7 +1,13 @@ import { geojsonToWKT } from '@terraformer/wkt' +import { getDiff } from 'json-difference' +import compareObj from 'just-compare' +import { diff } from 'just-diff' +import { diffApply } from 'just-diff-apply' import filterObject from 'just-filter-object' +import pick from 'just-pick' import parsePhoneNumber, { type PhoneNumber } from 'libphonenumber-js/max' import superjson from 'superjson' +import { type SuperJSONResult } from 'superjson/dist/types' import fs from 'fs' import path from 'path' @@ -11,6 +17,7 @@ import { namespace } from '~db/generated/namespaces' import { createPoint } from '~db/lib/createPoint' import { generateId } from '~db/lib/idGen' import { slugUpdate } from '~db/lib/slugGen' +import { InputJsonValue } from '~db/lib/zod' import { organizationsSchema } from '~db/seed/recon/input/types' import { needsUpdate } from '~db/seed/recon/lib/compare' import { dataCorrections, existing, getCountryId, getGovDistId } from '~db/seed/recon/lib/existing' @@ -18,7 +25,9 @@ import { attachLogger, formatMessage } from '~db/seed/recon/lib/logger' import { create, crowdin, exceptions, update, writeBatches } from '~db/seed/recon/lib/output' import { generateFreeTextKey } from '~db/seed/recon/lib/translations' import { type ListrJob } from '~db/seed/recon/lib/types' -import { emptyStrToNull, trimSpaces } from '~db/seed/recon/lib/utils' +import { emptyStrToNull, raise, trimSpaces } from '~db/seed/recon/lib/utils' +// import { parseSchedule } from '~db/seed/recon/parsers/hours' +import { generateSupplementTxn, tagParser } from '~db/seed/recon/parsers/attributes' import { JsonInputOrNull } from '~db/zod_util/prismaJson' const washdcRegex = /washington.*dc/i @@ -44,16 +53,48 @@ export const orgRecon = { .parse(JSON.parse(fs.readFileSync(path.resolve(__dirname, './input/existingOrgs.json'), 'utf-8'))) log(`Organizations to process: ${orgs.length}`, 'info') + // get System userId for audit log + const { id: actorId } = await prisma.user.findUniqueOrThrow({ + where: { email: 'inreach_svc@inreach.org' }, + select: { id: true }, + }) + // start loop for (const org of orgs) { task.title = `Reconcile Organizations [${orgCounter}/${orgs.length}]` log(`Reconciling Organization: ${org.name}`, 'generate') - + const createdAt = org.created_at.$date + const updatedAt = org.updated_at.$date const organizationId = existing.orgId.get(org._id.$oid) if (!organizationId) { log(`Organization not found: ${org._id.$oid}`, 'error') throw new Error('Organization not found', { cause: org._id.$oid }) } + const genAuditUpdate = ( + from: Record, + to: Record, + links: AuditLogLinks + ) => { + const changedFields = pick(from, Object.keys(to)) + create.auditLog.add({ + actorId, + operation: 'UPDATE', + from: InputJsonValue.parse(superjson.serialize(changedFields)), + to: InputJsonValue.parse(superjson.serialize(to)), + organizationId, + ...links, + }) + } + const genAuditCreate = (to: unknown, links: AuditLogLinks) => { + create.auditLog.add({ + actorId, + operation: 'CREATE', + to: InputJsonValue.parse(superjson.serialize(to)), + organizationId, + ...links, + }) + } + /** * . * @@ -82,7 +123,14 @@ export const orgRecon = { if (newSlug !== existingOrgRecord.slug) { logUpdate('slug', existingOrgRecord.slug, newSlug) updateOrgRecord.data.slug = newSlug - create.slugRedirect.add({ from: existingOrgRecord.slug, to: newSlug, orgId: existingOrgRecord.id }) + const slugRedirect: Prisma.SlugRedirectCreateManyInput = { + id: generateId('slugRedirect'), + from: existingOrgRecord.slug, + to: newSlug, + orgId: existingOrgRecord.id, + } + create.slugRedirect.add(slugRedirect) + genAuditCreate(slugRedirect, { slugRedirectId: slugRedirect.id }) } } if ( @@ -99,6 +147,11 @@ export const orgRecon = { where: { ns_key: { ns: namespace.orgData, key: existingOrgRecord.description.key } }, data: { text: org.description ? trimSpaces(org.description) : undefined }, }) + genAuditUpdate( + { text: existingOrgRecord.description.tsKey.text }, + { text: org.description ? trimSpaces(org.description) : undefined }, + { translationKey: existingOrgRecord.description.key, translationNs: namespace.orgData } + ) } if (needsUpdate(existingOrgRecord.deleted, org.is_deleted)) { logUpdate('deleted', existingOrgRecord.deleted, org.is_deleted) @@ -118,7 +171,9 @@ export const orgRecon = { } updateOrgRecord.data = filterUndefined(updateOrgRecord.data) if (Object.keys(updateOrgRecord.data).length) { + updateOrgRecord.data.updatedAt = updatedAt update.organization.add(updateOrgRecord) + genAuditUpdate(existingOrgRecord, updateOrgRecord.data, { organizationId }) log(`Updated ${Object.keys(updateOrgRecord.data).length} keys`, undefined, true) } @@ -151,6 +206,7 @@ export const orgRecon = { for (const location of deletedLocations) { log(`Marking Location: ${location.name} as deleted`, undefined, true) update.orgLocation.add({ where: { id: location.id }, data: { deleted: true } }) + genAuditUpdate({ deleted: false }, { deleted: true }, { orgLocationId: location.id }) } } @@ -261,7 +317,9 @@ export const orgRecon = { } updateRecord.data = filterUndefined(updateRecord.data) if (Object.keys(updateRecord.data).length) { + updateRecord.data.updatedAt = updatedAt update.orgLocation.add(updateRecord) + genAuditUpdate(existingLocation, updateRecord.data, { orgLocationId: existingLocation.id }) log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) } } else { @@ -294,8 +352,11 @@ export const orgRecon = { latitude, geoJSON, geoWKT, + createdAt, + updatedAt, } create.orgLocation.add(filterUndefined(newLocation) as Prisma.OrgLocationCreateManyInput) + genAuditCreate(filterUndefined(newLocation), { orgLocationId: newLocation.id }) } locationCount++ @@ -368,6 +429,16 @@ export const orgRecon = { where: { ns_key: { ns, key } }, data: { text: trimSpaces(email.title) }, }) + genAuditUpdate( + { text: existingRecord.description.tsKey.text }, + { text: trimSpaces(email.title) }, + { + orgEmailId: existingRecord.id, + translationKey: key, + translationNs: ns, + freeTextId: existingRecord.description.id, + } + ) } else if (existingRecord.description && !email.title) { log(`Deleting Email description: ${existingRecord.description.tsKey.text}`, 'trash', true) if (existingRecord.description.tsKey.crowdinId) @@ -388,13 +459,19 @@ export const orgRecon = { create.translationKey.add({ key, ns, text }) create.freeText.add({ id, key, ns }) updateRecord.data.description = { connect: { id } } + genAuditCreate( + { key, ns, text }, + { translationKey: key, translationNs: ns, freeTextId: id, orgEmailId: existingRecord.id } + ) } } } updateRecord.data = filterUndefined(updateRecord.data) if (Object.keys(updateRecord.data).length) { + updateRecord.data.updatedAt = updatedAt update.orgEmail.add(updateRecord) + genAuditUpdate(existingRecord, updateRecord.data, { orgEmailId: existingRecord.id }) log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) } } else { @@ -408,6 +485,8 @@ export const orgRecon = { published: email.show_on_organization, firstName: emptyStrToNull(email.first_name) ?? undefined, lastName: emptyStrToNull(email.last_name) ?? undefined, + createdAt, + updatedAt, } if (email.title) { const freeText = generateFreeTextKey({ @@ -423,10 +502,15 @@ export const orgRecon = { create.translationKey.add({ key, ns, text }) create.freeText.add({ id, key, ns }) newEmail.descriptionId = id + genAuditCreate( + { key, ns, text }, + { translationKey: key, translationNs: ns, freeTextId: id, orgEmailId: newId } + ) } } create.organizationEmail.add({ organizationId, orgEmailId: newEmail.id as string }) create.orgEmail.add(filterUndefined(newEmail) as Prisma.OrgEmailCreateManyInput) + genAuditCreate(filterUndefined(newEmail), { orgEmailId: newEmail.id }) } emailCount++ } @@ -461,6 +545,7 @@ export const orgRecon = { for (const phone of deletedPhones) { log(`Marking phone ${phone.number} as deleted`, undefined, true) update.orgPhone.add({ where: { id: phone.id }, data: { deleted: true } }) + genAuditUpdate({ deleted: false }, { deleted: true }, { orgPhoneId: phone.id }) } } @@ -519,6 +604,7 @@ export const orgRecon = { } if (needsUpdate(existingRecord.ext, phoneData.ext)) { logUpdate('ext', existingRecord.ext, phoneData.ext) + updateRecord.data.ext = phoneData.ext } if (phoneCountry && needsUpdate(existingRecord.countryId, phoneCountry)) { logUpdate('countryId', existingRecord.countryId, phoneCountry) @@ -552,6 +638,10 @@ export const orgRecon = { create.freeText.add({ id, key, ns }) crowdin.create.add({ key, text }) updateRecord.data.description = { connect: { id } } + genAuditCreate( + { key, ns, text }, + { translationKey: key, translationNs: ns, freeTextId: id, orgPhoneId: existingRecord.id } + ) } } else { log(`Updating description: ${phone.phone_type}`, 'update', true) @@ -560,6 +650,16 @@ export const orgRecon = { where: { ns_key: { ns, key } }, data: { text: trimSpaces(phone.phone_type) }, }) + genAuditUpdate( + { text: existingRecord.description.tsKey.text }, + { text: trimSpaces(phone.phone_type) }, + { + orgPhoneId: existingRecord.id, + translationKey: key, + translationNs: ns, + freeTextId: existingRecord.description.id, + } + ) if (existingRecord.description.tsKey.crowdinId) crowdin.update.add({ id: existingRecord.description.tsKey.crowdinId, @@ -569,7 +669,9 @@ export const orgRecon = { } updateRecord.data = filterUndefined(updateRecord.data) if (Object.keys(updateRecord.data).length) { + updateRecord.data.updatedAt = updatedAt update.orgPhone.add(updateRecord) + genAuditUpdate(existingRecord, updateRecord.data, { orgPhoneId: existingRecord.id }) log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) } } else { @@ -578,7 +680,12 @@ export const orgRecon = { 'create', true ) - const newPhone: Prisma.OrgPhoneCreateManyInput = { number: '', countryId: '' } + const newPhone: Prisma.OrgPhoneCreateManyInput = { + number: '', + countryId: '', + createdAt, + updatedAt, + } const countryCodes = ['CA', 'MX', 'US', 'PR', 'VI', 'GU', 'AS', 'MP', 'MH', 'PW'] as const let phoneData: PhoneNumber | undefined @@ -620,10 +727,15 @@ export const orgRecon = { crowdin.create.add({ key, text }) newPhone.descriptionId = id newPhone.legacyDesc = phone.phone_type + genAuditCreate( + { key, ns, text }, + { translationKey: key, translationNs: ns, freeTextId: id, orgPhoneId: newPhone.id } + ) } } create.organizationPhone.add({ organizationId, phoneId: newPhone.id }) create.orgPhone.add(filterUndefined(newPhone) as Prisma.OrgPhoneCreateManyInput) + genAuditCreate(filterUndefined(newPhone), { orgPhoneId: newPhone.id }) } } @@ -632,8 +744,403 @@ export const orgRecon = { // #endregion + /** + * . + * + * === WEBSITES === + * + * . + */ + // #region Websites + if (!org.website) { + log('SKIPPING Website records, no entry', 'skip') + } else { + log(`Processing Website records`, 'generate') + const existingRecord = await prisma.orgWebsite.findFirst({ + where: { organizationId, published: true }, + }) + if (existingRecord) { + log(`Reconcile website against ${existingRecord.id}`, undefined, true) + const updateRecord: Prisma.OrgWebsiteUpdateArgs = { + where: { id: existingRecord.id }, + data: {}, + } + if (needsUpdate(existingRecord.url, org.website)) { + logUpdate('url', existingRecord.url, org.website) + updateRecord.data.url = org.website + } + if (Object.keys(updateRecord.data).length) { + updateRecord.data.updatedAt = updatedAt + update.orgWebsite.add(updateRecord) + genAuditUpdate(existingRecord, updateRecord.data, { orgWebsiteId: existingRecord.id }) + log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) + } + } else { + const inactiveRecord = await prisma.orgWebsite.findFirst({ + where: { organizationId }, + }) + if (inactiveRecord) { + log(`Reconcile website against inactive record ${inactiveRecord.id}`, undefined, true) + const updateRecord: Prisma.OrgWebsiteUpdateArgs = { + where: { id: inactiveRecord.id }, + data: { published: true }, + } + if (needsUpdate(inactiveRecord.url, org.website)) { + logUpdate('url', inactiveRecord.url, org.website) + updateRecord.data.url = org.website + } + if (Object.keys(updateRecord.data).length) { + updateRecord.data.updatedAt = updatedAt + update.orgWebsite.add(updateRecord) + genAuditUpdate(inactiveRecord, updateRecord.data, { orgWebsiteId: inactiveRecord.id }) + log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) + } + } else { + log(`Creating Website: ${org.website}`, 'create', true) + const newWebsite: Prisma.OrgWebsiteCreateManyInput = { + id: generateId('orgWebsite'), + organizationId, + url: org.website, + published: true, + createdAt, + updatedAt, + } + create.orgWebsite.add(newWebsite) + genAuditCreate(newWebsite, { orgWebsiteId: newWebsite.id }) + } + } + } + + // #endregion + + /** + * . + * + * === SOCIAL MEDIA === + * + * . + */ + // #region Social Media + if (!org.social_media?.length) { + log('SKIPPING Social Media records, no entry', 'skip') + } else { + log(`Processing ${org.social_media.length} Social Media records`, 'generate') + let socialCount = 1 + let socialSkip = 0 + const regex = + /(?:(?:http|https):\/\/|)(?:www\.|)(\w*)\.com\/(?:channel\/|user\/|in\/|company\/|)([a-zA-Z0-9._-]{1,})/ + for (const social of org.social_media) { + const existingRecord = await prisma.orgSocialMedia.findUnique({ + where: { legacyId: social._id.$oid }, + include: { service: true }, + }) + if (existingRecord) { + log(`Reconcile social media against ${existingRecord.id}`, undefined, true) + const updateRecord: Prisma.OrgSocialMediaUpdateArgs = { + where: { id: existingRecord.id }, + data: {}, + } + const [, service, username] = regex.exec(social.url) ?? [undefined, undefined, ''] + const serviceId = existing.socialMediaService.get(social.name ?? service ?? raise('No service')) + if (needsUpdate(social.url, existingRecord.url)) { + logUpdate('url', existingRecord.url, social.url) + updateRecord.data.url = social.url + } + if (serviceId && needsUpdate(serviceId, existingRecord.serviceId)) { + logUpdate('service', existingRecord.service.name, social.name) + updateRecord.data.service = { connect: { id: serviceId } } + } + if (username && needsUpdate(username, existingRecord.username)) { + logUpdate('username', existingRecord.username, username) + updateRecord.data.username = username + } + + if (Object.keys(updateRecord.data).length) { + updateRecord.data.updatedAt = updatedAt + update.orgSocialMedia.add(updateRecord) + genAuditUpdate(existingRecord, updateRecord.data, { orgSocialMediaId: existingRecord.id }) + log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) + } + } else { + log(`Creating Social Media: ${social.name}`, 'create', true) + const [, service, username] = regex.exec(social.url) ?? [undefined, undefined, ''] + const serviceId = existing.socialMediaService.get(social.name ?? service ?? raise('No service')) + if (!serviceId || !username) { + socialSkip++ + log( + `SKIPPING ${social._id.$oid} - Cannot parse [${socialCount + socialSkip}/${ + org.social_media.length + }]` + ) + exceptions.socialMedia.add({ organizationId, record: social, existing: null }) + continue + } + const newSocial: Prisma.OrgSocialMediaCreateManyInput = { + id: generateId('orgSocialMedia'), + legacyId: social._id.$oid, + organizationId, + url: social.url, + username, + serviceId: serviceId, + createdAt, + updatedAt, + } + create.orgSocialMedia.add(newSocial) + genAuditCreate(newSocial, { orgSocialMediaId: newSocial.id }) + } + socialCount++ + } + } + + // #endregion + + /** + * . + * + * === PHOTOS === + * + * . + */ + // #region Photos + if (!org.photos?.length) { + log('SKIPPING Photos records, no entries', 'skip') + } else { + let countPhoto = 1 + log(`Processing ${org.photos.length} Photos records`, 'generate') + const photosToDelete = await prisma.orgPhoto.findMany({ + where: { orgId: organizationId, src: { notIn: org.photos.map(({ src }) => src) } }, + }) + if (photosToDelete.length) { + log(`Marking ${photosToDelete.length} Photos records as deleted`, 'trash', true) + for (const photo of photosToDelete) { + log(`Marking ${photo.id} as deleted`, 'trash', true) + const deleteRecord: Prisma.OrgPhotoUpdateArgs = { + where: { id: photo.id }, + data: { deleted: true }, + } + update.orgPhoto.add(deleteRecord) + genAuditUpdate(photo, deleteRecord.data, { orgPhotoId: photo.id }) + } + } + for (const photo of org.photos) { + log(`Processing Photo: ${photo.src} [${countPhoto}/${org.photos.length}]`, 'generate') + const existingRecord = await prisma.orgPhoto.findFirst({ + where: { src: photo.src }, + }) + if (existingRecord) { + log(`Reconcile photo against ${existingRecord.id}`, undefined, true) + const updateRecord: Prisma.OrgPhotoUpdateArgs = { + where: { id: existingRecord.id }, + data: {}, + } + if (needsUpdate(Math.round(photo.width), existingRecord.width)) { + logUpdate('width', existingRecord.width, Math.round(photo.width)) + updateRecord.data.width = Math.round(photo.width) + } + if (needsUpdate(Math.round(photo.height), existingRecord.height)) { + logUpdate('height', existingRecord.height, Math.round(photo.height)) + updateRecord.data.height = Math.round(photo.height) + } + if (Object.keys(updateRecord.data).length) { + updateRecord.data.updatedAt = updatedAt + update.orgPhoto.add(updateRecord) + genAuditUpdate(existingRecord, updateRecord.data, { orgPhotoId: existingRecord.id }) + log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) + } + } else { + log(`Creating Photo: ${photo.src}`, 'create', true) + const newPhoto: Prisma.OrgPhotoCreateManyInput = { + id: generateId('orgPhoto'), + orgId: organizationId, + src: photo.src, + width: Math.round(photo.width), + height: Math.round(photo.height), + createdAt, + updatedAt, + } + create.orgPhoto.add(newPhoto) + genAuditCreate(newPhoto, { orgPhotoId: newPhoto.id }) + } + + countPhoto++ + } + } + + // #endregion + + /** + * . + * + * === HOURS === + * + * . + */ + // #region Hours + // if (!org.schedules?.length) { + // log('SKIPPING Hours records, no entries', 'skip') + // } else { + // log(`Processing ${org.schedules.length} Hours records`, 'generate') + // const hoursCount = 1 + // const hoursSkip = 0 + + // for (const schedule of org.schedules) { + // log(`Processing Schedule: ${schedule.name} [${hoursCount}/${org.schedules.length}]`, 'generate') + // const parsed = parseSchedule(schedule) + // for (const [day,data] of Object.entries(parsed)) { + + // } + // } + // } + + // #endregion + + /** + * . + * + * === ORG ATTRIBUTES === + * + * . + */ + // #region Org Attributes + if (!org.properties || !Object.keys(org.properties).length) { + log('SKIPPING Org Attributes records, no entries', 'skip') + } else { + log(`Processing ${Object.keys(org.properties).length} Org Attributes records`, 'generate') + let attributesCount = 1 + const attributesSkip = 0 + const unsupportedAttributes: Record[] = [] + const { id: unsupportedId } = + existing.attribute.get('sys.incompatible-info') ?? raise(`Cannot find 'incompatible' id`) + const existingAttributes = await prisma.organizationAttribute.findMany({ + where: { organizationId }, + include: { supplement: { include: { text: { include: { tsKey: true } } } } }, + }) + const existingServAreas = await prisma.serviceArea.findUnique({ + where: { organizationId }, + include: { countries: true, districts: true }, + }) + const orgAttrib: Record = {} + const orgServArea: ServArea = { countries: [], districts: [] } + for (const [tag, value] of Object.entries(org.properties)) { + log( + `Processing Tag: ${tag} [${attributesCount + attributesSkip}/${ + Object.keys(org.properties).length + }]`, + 'generate' + ) + const tagRecord = tagParser(tag, value) + + switch (tagRecord.type) { + case 'unknown': { + log(`Unsupported Attribute: ${Object.keys(tagRecord.supplementData).join()}`, undefined, true) + unsupportedAttributes.push(tagRecord.supplementData) + break + } + case 'attribute': { + const attribId = tagRecord.attributeId ?? raise('missing attributeId') + if (tagRecord.supplementData?.data) + tagRecord.supplementData.data = superjson.stringify(tagRecord.supplementData.data) + if (Object.hasOwn(orgAttrib, attribId) && tagRecord.supplementData) { + orgAttrib[attribId]?.push(tagRecord.supplementData) + } else { + orgAttrib[attribId] = tagRecord.supplementData ? [tagRecord.supplementData] : [] + } + break + } + case 'serviceArea': { + if (tagRecord.supplementData?.countryId) + orgServArea.countries.push(tagRecord.supplementData.countryId) + if (tagRecord.supplementData?.govDistId) + orgServArea.districts.push(tagRecord.supplementData.govDistId) + break + } + } + attributesCount++ + } + if (unsupportedAttributes.length) { + orgAttrib[unsupportedId] = [ + { + data: superjson.stringify(unsupportedAttributes), + }, + ] + } + for (const [attributeId, attributeSupplement] of Object.entries(orgAttrib)) { + const existingIdx = existingAttributes.findIndex(({ attributeId: id }) => id === attributeId) + if (existingIdx !== -1) { + const existing = existingAttributes.splice(existingIdx, 1)[0] ?? raise('Unable to get record') + const existingSupplements = existing.supplement.map( + ({ boolean, countryId, govDistId, languageId, data, text, id }) => + filterObject( + { + id, + boolean, + countryId, + govDistId, + languageId, + data: data + ? superjson.stringify(superjson.deserialize(data as unknown as SuperJSONResult)) + : undefined, + text: text?.tsKey.text, + }, + (k, v) => Boolean(v) + ) + ) + const changes = diff( + existingSupplements.map(({ id, ...data }) => data), + attributeSupplement + ) + if (changes.length) { + const diff = getDiff( + existingSupplements.map(({ id, ...data }) => data), + attributeSupplement + ) + const updated = diffApply(existingSupplements, changes) + + // const txns = updated.map(({ id, ...data }) => ({ + // where: { id }, + // data, + // })) + const txn = generateSupplementTxn(updated) + if (Array.isArray(txn)) { + for (const item of txn) { + if (item.data.text) { + // update TranslationKey record + } + // update.attributeSupplement.add(item) + } + } + } + // debugger + } + } + // debugger + } + + // #endregion + orgCounter++ } writeBatches(task) }, } satisfies ListrJob + +type AuditLogLinks = Omit< + Prisma.AuditLogCreateManyInput, + 'id' | 'actorId' | 'from' | 'to' | 'operation' | 'timestamp' +> + +type AttrSupp = { + id?: string + // active:boolean + data?: unknown + boolean?: boolean | null + countryId?: string | null + govDistId?: string | null + languageId?: string | null + text?: string +} + +type ServArea = { + countries: string[] + districts: string[] +} From 0e8deb9f48ecfae8903f089c10ace06a37d444a2 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Thu, 6 Jul 2023 20:20:07 -0400 Subject: [PATCH 33/66] deps --- packages/db/package.json | 4 ++++ pnpm-lock.yaml | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/packages/db/package.json b/packages/db/package.json index b8a0cccfa7..c2b9f6c3cc 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -60,7 +60,11 @@ "just-diff-apply": "5.5.0", "just-filter-object": "3.2.0", "just-map-values": "3.2.0", + "just-omit": "2.2.0", "just-pick": "4.2.0", + "just-safe-get": "4.2.0", + "just-safe-set": "4.2.1", + "just-sort-by": "3.2.0", "kysely": "0.25.0", "prisma-kysely": "1.5.0", "sql-bricks": "3.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a1640985f..ef25532cb8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1008,9 +1008,21 @@ importers: just-map-values: specifier: 3.2.0 version: 3.2.0 + just-omit: + specifier: 2.2.0 + version: 2.2.0 just-pick: specifier: 4.2.0 version: 4.2.0 + just-safe-get: + specifier: 4.2.0 + version: 4.2.0 + just-safe-set: + specifier: 4.2.1 + version: 4.2.1 + just-sort-by: + specifier: 3.2.0 + version: 3.2.0 kysely: specifier: 0.25.0 version: 0.25.0 @@ -18855,6 +18867,18 @@ packages: resolution: {integrity: sha512-gR3EOFIkZapF3g0K4IRRqH4lM+czJEfaOFgrwZl5vNfVUeJqfke9/L67Mf3CgnT3j2HM46C+mdCRvqaCD77Nqg==} dev: false + /just-safe-get@4.2.0: + resolution: {integrity: sha512-+tS4Bvgr/FnmYxOGbwziJ8I2BFk+cP1gQHm6rm7zo61w1SbxBwWGEq/Ryy9Gb6bvnloPq6pz7Bmm4a0rjTNlXA==} + dev: false + + /just-safe-set@4.2.1: + resolution: {integrity: sha512-La5CP41Ycv52+E4g7w1sRV8XXk7Sp8a/TwWQAYQKn6RsQz1FD4Z/rDRRmqV3wJznS1MDF3YxK7BCudX1J8FxLg==} + dev: false + + /just-sort-by@3.2.0: + resolution: {integrity: sha512-kfKNELhpDd0/aC/dBeT1uS+pUmFgHIcU6sDnUKZRuGoGYx8mKgZLCNlL6QfNYFzUkqPUEVOsiN9uaZs4z2X9Vw==} + dev: false + /jwa@1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: From 80d628b6729bb2720b2ed7cd8e5039c6729230ad Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Thu, 6 Jul 2023 20:20:32 -0400 Subject: [PATCH 34/66] edit timestamp --- packages/db/seed/recon/lib/logger.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/db/seed/recon/lib/logger.ts b/packages/db/seed/recon/lib/logger.ts index 6d933a323a..b1a7159a45 100644 --- a/packages/db/seed/recon/lib/logger.ts +++ b/packages/db/seed/recon/lib/logger.ts @@ -11,7 +11,7 @@ import { type PassedTask } from './types' const getTimestamp = () => DateTime.now().toFormat('yyyyMMdd_HHmmss') const logFile = (file: string, output: string) => { - const timestamp = DateTime.now().toFormat('yyyy-MM-dd HH:mm:ss') + const timestamp = DateTime.now().toFormat('HH:mm:ss.u') const outFile = path.resolve(__dirname, '../logs/', file) const formattedOutput = `[${timestamp}] ${output}\n` fs.writeFileSync(outFile, formattedOutput, { flag: 'a' }) From b82b482e515c26b0d3e8410b4bbc4069befa77c5 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Thu, 6 Jul 2023 20:22:35 -0400 Subject: [PATCH 35/66] attribute supplement reconciliation --- packages/db/seed/recon/parsers/attributes.ts | 81 +++++++- packages/db/seed/recon/reconJob.ts | 192 +++++++++++++++---- 2 files changed, 230 insertions(+), 43 deletions(-) diff --git a/packages/db/seed/recon/parsers/attributes.ts b/packages/db/seed/recon/parsers/attributes.ts index e30da47738..82a71eb953 100644 --- a/packages/db/seed/recon/parsers/attributes.ts +++ b/packages/db/seed/recon/parsers/attributes.ts @@ -1,6 +1,12 @@ +import { type diff } from 'just-diff' +import flush from 'just-flush' +import getByPath from 'just-safe-get' +import setByPath from 'just-safe-set' import superjson from 'superjson' import { z } from 'zod' +import { type Prisma } from '~db/client' + import { tagDataMaps } from './tagDataMaps' import { type AttributeMap, type CountryMap, type DistList, type LanguageMap } from '../generated/types' import { readSuperJSON } from '../lib/utils' @@ -160,9 +166,15 @@ export const tagParser = (tag: string, value: string | number | boolean) => { const [, lang] = langRegex.exec(tag) ?? [undefined, ''] const langRecord = languageMap.get(lang.toLowerCase()) if (!langRecord) { - return incompatible(tag, value) + if (lang.toLowerCase() === 'farsi') { + const langRecord = languageMap.get('persian') + supplementData = { languageId: langRecord } + } else { + return incompatible(tag, value) + } + } else { + supplementData = { languageId: langRecord } } - supplementData = { languageId: langRecord } break } // #endregion @@ -209,24 +221,70 @@ export const tagParser = (tag: string, value: string | number | boolean) => { } } -export const generateSupplementTxn = (updatedRecord: AttrSupp | AttrSupp[]) => { +export const generateSupplementTxn = ( + updatedRecord: AttrSupp | AttrSupp[], + changes: ReturnType +) => { + let pendingUpdates: AttrSuppChangesReturn | AttrSuppChangesReturn[] + const updatesToReturn = Array.isArray(updatedRecord) ? [] : {} if (Array.isArray(updatedRecord)) { - return updatedRecord.map(({ id, ...data }) => ({ + pendingUpdates = updatedRecord.map(({ id, ...data }) => ({ where: { id }, data, })) + } else { + const { id, ...data } = updatedRecord + pendingUpdates = { where: { id }, data } } - const { id, ...data } = updatedRecord - return { where: { id }, data } + const isPath = (path: unknown): path is Array => Array.isArray(path) + let idx = 0 + const changedItems = changes.flatMap(({ path }) => { + if (!isPath(path)) throw new Error('path must be an array!') + const testPath = path.at(0) ?? '' + if (typeof testPath === 'number' || typeof parseInt(testPath) === 'number') { + const [firstSegment] = path.splice(0, 1) + if (!Array.isArray(updatedRecord)) { + return [ + { get: ['where'], set: ['where'] }, + { + get: ['data', ...path.map((x) => x.toString())], + set: ['data', ...path.map((x) => x.toString())], + }, + ] + } + const returnPath = [ + { get: flush([firstSegment?.toString(), 'where']), set: flush([idx.toString(), 'where']) }, + { + get: flush([firstSegment?.toString(), 'data', ...path.map((x) => x.toString())]), + set: flush([idx.toString(), 'data', ...path.map((x) => x.toString())]), + }, + ] + idx++ + return returnPath + } + return [ + { get: ['where'], set: ['where'] }, + { + get: ['data', ...path.map((x) => x.toString())], + set: ['data', ...path.map((x) => x.toString())], + }, + ] + }) + for (const path of changedItems) { + const dataToSet = getByPath(pendingUpdates, path.get) + setByPath(updatesToReturn, path.set, dataToSet) + } + return updatesToReturn as AttrSuppChangesReturn | AttrSuppChangesReturn[] } -type AttrSupp = { +export type AttrSupp = { id?: string - data?: unknown | undefined + data?: Prisma.InputJsonValue | Prisma.NullableJsonNullValueInput boolean?: boolean | null countryId?: string | null govDistId?: string | null languageId?: string | null text?: string + textId?: string | null } interface AttributeSupplementData { @@ -235,5 +293,10 @@ interface AttributeSupplementData { languageId?: string text?: string boolean?: boolean - data?: unknown + data?: Prisma.InputJsonValue | Prisma.NullableJsonNullValueInput +} + +interface AttrSuppChangesReturn { + where: { id?: string } + data: AttrSupp } diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 6c91defb81..45a6f8cc6d 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -1,13 +1,15 @@ import { geojsonToWKT } from '@terraformer/wkt' import { getDiff } from 'json-difference' -import compareObj from 'just-compare' import { diff } from 'just-diff' import { diffApply } from 'just-diff-apply' import filterObject from 'just-filter-object' +import omit from 'just-omit' import pick from 'just-pick' +import sortArray from 'just-sort-by' import parsePhoneNumber, { type PhoneNumber } from 'libphonenumber-js/max' import superjson from 'superjson' import { type SuperJSONResult } from 'superjson/dist/types' +import { ZodError } from 'zod' import fs from 'fs' import path from 'path' @@ -27,7 +29,7 @@ import { generateFreeTextKey } from '~db/seed/recon/lib/translations' import { type ListrJob } from '~db/seed/recon/lib/types' import { emptyStrToNull, raise, trimSpaces } from '~db/seed/recon/lib/utils' // import { parseSchedule } from '~db/seed/recon/parsers/hours' -import { generateSupplementTxn, tagParser } from '~db/seed/recon/parsers/attributes' +import { type AttrSupp, generateSupplementTxn, tagParser } from '~db/seed/recon/parsers/attributes' import { JsonInputOrNull } from '~db/zod_util/prismaJson' const washdcRegex = /washington.*dc/i @@ -35,6 +37,8 @@ const washdcRegex = /washington.*dc/i type PlainObject = T extends Map | Set | null ? never : T extends object ? T : never const filterUndefined = >(obj: PlainObject) => filterObject(obj, (_k, v) => v !== undefined) +const filterUndefinedOrNull = >(obj: PlainObject) => + filterObject(obj, (_k, v) => v !== undefined && v !== null) export const orgRecon = { title: 'Reconcile Organizations', // skip: true, @@ -42,8 +46,18 @@ export const orgRecon = { task: async (_ctx, task) => { attachLogger(task) const log = (...args: Parameters) => (task.output = formatMessage(...args)) + const logUpdate = (field: string, from: unknown, to: unknown) => - log(`Updating ${field} from "${from}" to "${to}"`, 'update', true) + log( + `Updating ${field} from ${ + typeof from === 'object' ? '\n' + JSON.stringify(from, null, 1) + '\n' : `"${from}"` + } to ${typeof to === 'object' ? '\n' + JSON.stringify(to, null, 1) : `"${to}"`}`, + 'update', + true + ) + + const logAddition = (table: string, value: unknown) => log(`Adding ${value} to ${table}`, 'create', true) + writeBatches(task, true) let orgCounter = 1 @@ -62,7 +76,7 @@ export const orgRecon = { // start loop for (const org of orgs) { task.title = `Reconcile Organizations [${orgCounter}/${orgs.length}]` - log(`Reconciling Organization: ${org.name}`, 'generate') + log(`[${orgCounter}/${orgs.length}] Reconciling Organization: ${org.name}`, 'info') const createdAt = org.created_at.$date const updatedAt = org.updated_at.$date const organizationId = existing.orgId.get(org._id.$oid) @@ -76,14 +90,24 @@ export const orgRecon = { links: AuditLogLinks ) => { const changedFields = pick(from, Object.keys(to)) - create.auditLog.add({ - actorId, - operation: 'UPDATE', - from: InputJsonValue.parse(superjson.serialize(changedFields)), - to: InputJsonValue.parse(superjson.serialize(to)), - organizationId, - ...links, - }) + try { + const serializedFrom = superjson.serialize(changedFields) + const serializedTo = superjson.serialize(to) + create.auditLog.add({ + actorId, + operation: 'UPDATE', + from: JsonInputOrNull.parse(serializedFrom), + to: JsonInputOrNull.parse(serializedTo), + organizationId, + ...links, + }) + } catch (err) { + if (err instanceof ZodError) { + const flattened = err.flatten() + task.output = JSON.stringify(flattened, null, 2) + } + throw err + } } const genAuditCreate = (to: unknown, links: AuditLogLinks) => { create.auditLog.add({ @@ -737,9 +761,8 @@ export const orgRecon = { create.orgPhone.add(filterUndefined(newPhone) as Prisma.OrgPhoneCreateManyInput) genAuditCreate(filterUndefined(newPhone), { orgPhoneId: newPhone.id }) } + phoneCount++ } - - phoneCount++ } // #endregion @@ -1085,10 +1108,16 @@ export const orgRecon = { (k, v) => Boolean(v) ) ) - const changes = diff( + + const sortedExisting = sortArray( existingSupplements.map(({ id, ...data }) => data), - attributeSupplement + (data) => Object.entries(data).forEach(([k, v]) => v) ) + const sortedUpdates = sortArray(attributeSupplement, ({ id, ...data }) => + Object.entries(data).forEach(([k, v]) => v) + ) + + const changes = diff(sortedExisting, sortedUpdates) if (changes.length) { const diff = getDiff( existingSupplements.map(({ id, ...data }) => data), @@ -1096,18 +1125,119 @@ export const orgRecon = { ) const updated = diffApply(existingSupplements, changes) - // const txns = updated.map(({ id, ...data }) => ({ - // where: { id }, - // data, - // })) - const txn = generateSupplementTxn(updated) - if (Array.isArray(txn)) { - for (const item of txn) { - if (item.data.text) { + const pendingUpdates = generateSupplementTxn(updated, changes) + // #region Process Supplement Changes + const processChanges = (txn: AttrSupplementChange) => { + if (!txn.where.id) { + logAddition(`attribute ${existing.attributeId}`, 'attributeSupplement') + const { data, text, ...rest } = txn.data + const newSupplement: Prisma.AttributeSupplementCreateManyInput = { + id: generateId('attributeSupplement'), + ...rest, + ...(data + ? { + data: JsonInputOrNull.parse( + superjson.serialize(typeof data === 'string' ? superjson.parse(data) : data) + ), + } + : {}), + createdAt, + updatedAt, + } + if (text) { + logAddition('freeText', text) + const { key, ns } = + generateFreeTextKey({ + orgId: organizationId, + text, + type: 'supplement', + itemId: newSupplement.id, + }) ?? {} + if (key && ns) { + const id = generateId('freeText') + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + create.freeText.add({ id, key, ns, updatedAt, createdAt }) + crowdin.create.add({ key, text }) + txn.data.textId = id + } + } + create.attributeSupplement.add(newSupplement) + genAuditCreate(newSupplement, { attributeSupplementId: newSupplement.id }) + } else { + const existingSupp = + existing.supplement.find(({ id }) => id === txn.where.id) ?? raise('Cannot locate record') + if (txn.data.text) { // update TranslationKey record + const { key, ns, text: oldText, crowdinId } = existingSupp.text?.tsKey ?? {} + const { text } = txn.data + if (key && ns) { + logUpdate('text', oldText, text) + update.translationKey.add({ where: { ns_key: { ns, key } }, data: { text, updatedAt } }) + if (crowdinId) crowdin.update.add({ id: crowdinId, text }) + genAuditUpdate( + { text: oldText }, + { text, updatedAt }, + { translationKey: key, translationNs: ns, attributeSupplementId: txn.where.id } + ) + } else { + logAddition('freeText', text) + const { key, ns } = + generateFreeTextKey({ + orgId: organizationId, + text, + type: 'supplement', + itemId: txn.where.id, + }) ?? {} + if (key && ns) { + const id = generateId('freeText') + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + create.freeText.add({ id, key, ns, updatedAt, createdAt }) + crowdin.create.add({ key, text }) + txn.data.textId = id + } + } } - // update.attributeSupplement.add(item) + const { text: _, data, ...rest } = txn.data + // if (existingOrgRecord.name === 'North East Medical Services') debugger + + const updatedRecord: Prisma.AttributeSupplementUpdateArgs = { + where: { id: txn.where.id }, + data: { + ...(data + ? { + data: JsonInputOrNull.parse( + superjson.serialize(typeof data === 'string' ? superjson.parse(data) : data) + ), + } + : {}), + ...rest, + updatedAt, + }, + } + update.attributeSupplement.add(updatedRecord) + const { text: _origText, ...originalRecord } = existingSupp + const filteredOriginal = pick( + originalRecord, + Object.keys(updatedRecord.data) as unknown as keyof typeof originalRecord + ) + logUpdate( + updatedRecord.where?.id ?? 'attributeSupplement', + omit(filteredOriginal, 'updatedAt'), + omit(updatedRecord.data, 'updatedAt') + ) + genAuditUpdate(filteredOriginal, updatedRecord.data, { + attributeSupplementId: updatedRecord.where.id, + }) + } + } + // #endregion + + if (Array.isArray(pendingUpdates)) { + for (const item of pendingUpdates) { + processChanges(item) } + } else { + processChanges(pendingUpdates) } } // debugger @@ -1129,15 +1259,9 @@ type AuditLogLinks = Omit< 'id' | 'actorId' | 'from' | 'to' | 'operation' | 'timestamp' > -type AttrSupp = { - id?: string - // active:boolean - data?: unknown - boolean?: boolean | null - countryId?: string | null - govDistId?: string | null - languageId?: string | null - text?: string +interface AttrSupplementChange { + where: { id?: string } + data: Omit } type ServArea = { From 2d1a2b19ffcd7949245cdf29f216a154b5688161 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Fri, 7 Jul 2023 11:57:26 -0400 Subject: [PATCH 36/66] schema update --- packages/api/schemas/selects/org.ts | 1 + .../migration.sql | 55 +++++++++++++++++++ packages/db/prisma/schema.prisma | 18 +++++- 3 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 packages/db/prisma/migrations/20230707154327_add_active_authorized_fields/migration.sql diff --git a/packages/api/schemas/selects/org.ts b/packages/api/schemas/selects/org.ts index 5afe435dba..2a5a5307e3 100644 --- a/packages/api/schemas/selects/org.ts +++ b/packages/api/schemas/selects/org.ts @@ -39,6 +39,7 @@ export const orgInclude: OrgIncludeKeys = z.object({ userLists: boolFalse, websites: boolFalse, suggestions: boolFalse, + oldSlugs: boolFalse, }) const base = { id: true, createdAt: true, updatedAt: true } diff --git a/packages/db/prisma/migrations/20230707154327_add_active_authorized_fields/migration.sql b/packages/db/prisma/migrations/20230707154327_add_active_authorized_fields/migration.sql new file mode 100644 index 0000000000..892cef8464 --- /dev/null +++ b/packages/db/prisma/migrations/20230707154327_add_active_authorized_fields/migration.sql @@ -0,0 +1,55 @@ +-- AlterTable +ALTER TABLE "AssignedRole" + ADD COLUMN "authorized" BOOLEAN NOT NULL DEFAULT FALSE; + +-- AlterTable +ALTER TABLE "LocationAttribute" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "OrgLocationService" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "OrgServiceTag" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "OrganizationAttribute" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "ServiceAccessAttribute" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "ServiceAreaCountry" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "ServiceAreaDist" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "ServiceAttribute" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "UserAttribute" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "UserPermission" + ADD COLUMN "authorized" BOOLEAN NOT NULL DEFAULT FALSE; + +UPDATE + "UserPermission" +SET + "authorized" = TRUE +WHERE + "authorized" = FALSE; + +-- AlterTable +ALTER TABLE "UserToOrganization" + ADD COLUMN "authorized" BOOLEAN NOT NULL DEFAULT FALSE; + diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index 631907369f..67aebbef8a 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -1790,7 +1790,8 @@ model UserPermission { permission Permission @relation(fields: [permissionId], references: [id], onDelete: Cascade, onUpdate: Cascade) permissionId String - linkedAt DateTime @default(now()) + linkedAt DateTime @default(now()) + authorized Boolean @default(false) //@@schema("relation") @@id([userId, permissionId]) @@ -1824,7 +1825,8 @@ model UserToOrganization { phone OrgPhone? @relation(fields: [orgPhoneId], references: [id], onDelete: SetNull, onUpdate: Cascade) orgPhoneId String? @unique - linkedAt DateTime @default(now()) + linkedAt DateTime @default(now()) + authorized Boolean @default(false) //@@schema("relation") @@id([userId, organizationId]) @@ -1948,7 +1950,8 @@ model AssignedRole { role UserRole @relation(fields: [roleId], references: [id], onDelete: Cascade, onUpdate: Cascade) roleId String - linkedAt DateTime @default(now()) + linkedAt DateTime @default(now()) + authorized Boolean @default(false) //@@schema("relation") @@id([userId, roleId]) @@ -2100,6 +2103,7 @@ model OrgLocationService { serviceId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([orgLocationId, serviceId]) @@ -2113,6 +2117,7 @@ model OrgServiceTag { tagId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([serviceId, tagId]) @@ -2126,6 +2131,7 @@ model ServiceAreaCountry { countryId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([serviceAreaId, countryId]) @@ -2139,6 +2145,7 @@ model ServiceAreaDist { govDistId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([serviceAreaId, govDistId]) @@ -2170,6 +2177,7 @@ model UserAttribute { supplement AttributeSupplement[] linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([userId, attributeId]) @@ -2184,6 +2192,7 @@ model OrganizationAttribute { supplement AttributeSupplement[] linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([organizationId, attributeId]) @@ -2198,6 +2207,7 @@ model LocationAttribute { supplement AttributeSupplement[] linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([locationId, attributeId]) @@ -2212,6 +2222,7 @@ model ServiceAttribute { supplement AttributeSupplement[] linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([orgServiceId, attributeId]) @@ -2227,6 +2238,7 @@ model ServiceAccessAttribute { supplement AttributeSupplement[] linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([serviceAccessId, attributeId]) From 46052df7af869a179505906777e6cf50c0408369 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Fri, 7 Jul 2023 13:43:48 -0400 Subject: [PATCH 37/66] add utils, reconcile service areas --- packages/db/seed/recon/lib/existing.ts | 29 +++ packages/db/seed/recon/lib/output.ts | 48 ++++- packages/db/seed/recon/lib/utils.ts | 5 + packages/db/seed/recon/output/delete/.gitkeep | 0 packages/db/seed/recon/reconJob.ts | 197 ++++++++++++++++-- 5 files changed, 257 insertions(+), 22 deletions(-) create mode 100644 packages/db/seed/recon/output/delete/.gitkeep diff --git a/packages/db/seed/recon/lib/existing.ts b/packages/db/seed/recon/lib/existing.ts index 7098800699..67f403feed 100644 --- a/packages/db/seed/recon/lib/existing.ts +++ b/packages/db/seed/recon/lib/existing.ts @@ -89,3 +89,32 @@ export const getCountryId = ( } return countryId } + +export const attribsToNotDelete = new Set([ + 'attr_01GW2HHFVPSYBCYF37B44WP6CZ', + 'attr_01GW2HHFVRMQFJ9AMA633SQQGV', + 'attr_01GW2HHFVNPKMHYK12DDRVC1VJ', + 'attr_01GW2HHFVQCZPA3Z5GW6J3MQHW', + 'attr_01GW2HHFVQ8AGBKBBZJWTHNP2F', + 'attr_01GW2HHFVPTK9555WHJHDBDA2J', + 'attr_01GW2HHFVPCVX8F3B7M30ZJEHW', + 'attr_01GW2HHFVN72D7XEBZZJXCJQXQ', + 'attr_01GW2HHFVPJERY0GS9D7F56A23', + 'attr_01GW2HHFVN3RYX9JMXDZSQZM70', + 'attr_01GW2HHFVQX4M8DY1FSAYSJSSK', + 'attr_01GW2HHFVQ7SYGD3KM8WP9X50B', + 'attr_01GW2HHFVQEFWW42MBAD64BWXZ', + 'attr_01GW2HHFVNHMF72WHVKRF6W4TA', + 'attr_01GW2HHFVQVEGH6W3A2ANH1QZE', + 'attr_01GW2HHFVN3JX2J7REFFT5NAMS', + 'attr_01H273G39A14TGHT4DA1T0DW5M', + 'attr_01H273FCJ8NNG1T1BV300CN702', + 'attr_01H273FPTCFKTVBNK158HE9M42', + 'attr_01H273DMQ22TVP3RA36M1XWFBA', + 'attr_01H273GW0GN44GZ5RK1F51Z1QZ', + 'attr_01GW2HHFV5GNC11E5NVN7460QB', + 'attr_01GW2HHFV5Q7XN2ZNTYFR1AD3M', + 'attr_01H273ETEX43K0BR6FG3G7MZ4S', + 'attr_01H273GHADR15DGYH06SSN5XVG', + 'attr_01GW2HHFV5Q7XN2ZNTYFR1AD3M', +]) diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index e7d355ffc5..daa8137f44 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -11,6 +11,7 @@ import { type PassedTask } from '~db/seed/recon/lib/types' const outputDir = path.resolve(__dirname, '../output') const createDir = path.resolve(outputDir, 'create') const updateDir = path.resolve(outputDir, 'update') +const deleteDir = path.resolve(outputDir, 'delete') const execptionDir = path.resolve(outputDir, 'exceptions') export const getBatchFile: GetBatchFile = ({ type, batchName }) => { @@ -21,6 +22,9 @@ export const getBatchFile: GetBatchFile = ({ type, batchName }) => { case 'update': { return `${updateDir}/${batchName}.json` } + case 'delete': { + return `${deleteDir}/${batchName}.json` + } case 'exceptions': { return `${execptionDir}/${batchName}.json` } @@ -73,6 +77,12 @@ export const update = { orgService: new Set(), orgPhoto: new Set(), attributeSupplement: new Set(), + organizationAttribute: new Set(), + serviceArea: new Set(), +} + +export const deleteRecord = { + organizationAttribute: new Set(), } export const crowdin = { @@ -153,6 +163,36 @@ export const writeBatches = (task: PassedTask, clear = false) => { update[batchName].clear() } } + // Deletions + for (const batchName in deleteRecord) { + const batch = deleteRecord[batchName] + const batchFile = getBatchFile({ type: 'delete', batchName }) + if (clear) { + if (fs.existsSync(batchFile)) { + fs.rmSync(batchFile) + task.output = formatMessage(`Deleting file: ${batchFile}`, 'trash') + } + } else { + if (!batch.size) { + task.output = formatMessage(`Skipping empty batch: ${batchName}`, 'skip') + continue + } + const currentCount = batchCount.get(`delete.${batchName}`) ?? 0 + const currentBatchCount = batch.size + const existingBatch = fs.existsSync(batchFile) + ? superjson.parse>(fs.readFileSync(batchFile, 'utf-8')) + : [] + const outputData = new Set([...existingBatch, ...batch]) + fs.writeFileSync(batchFile, superjson.stringify(outputData)) + batchCount.set(`delete.${batchName}`, currentCount + currentBatchCount) + task.output = formatMessage( + `Records added to delete/${batchName}.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, + 'write', + true + ) + deleteRecord[batchName].clear() + } + } // Exceptions for (const batchName in exceptions) { const batch = exceptions[batchName] @@ -265,9 +305,15 @@ interface GetUpdateParams { type: 'update' batchName: LiteralUnion } +interface GetDeleteParams { + type: 'delete' + batchName: LiteralUnion +} interface GetExceptionsParams { type: 'exceptions' batchName: LiteralUnion } -type GetBatchFile = (params: GetCreateParams | GetUpdateParams | GetExceptionsParams) => string +type GetBatchFile = ( + params: GetCreateParams | GetUpdateParams | GetDeleteParams | GetExceptionsParams +) => string diff --git a/packages/db/seed/recon/lib/utils.ts b/packages/db/seed/recon/lib/utils.ts index 9b80c3d6e9..77aa7969b1 100644 --- a/packages/db/seed/recon/lib/utils.ts +++ b/packages/db/seed/recon/lib/utils.ts @@ -21,3 +21,8 @@ export const emptyStrToNull = (str: string | null | undefined) => export const raise = (err: string): never => { throw new Error(err) } + +export const conditionalObj = >( + condition: unknown, + obj: T +): T | Record => (condition ? obj : {}) diff --git a/packages/db/seed/recon/output/delete/.gitkeep b/packages/db/seed/recon/output/delete/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 45a6f8cc6d..f58a47b7d5 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -1,3 +1,4 @@ +/* eslint-disable node/no-process-env */ import { geojsonToWKT } from '@terraformer/wkt' import { getDiff } from 'json-difference' import { diff } from 'just-diff' @@ -22,12 +23,18 @@ import { slugUpdate } from '~db/lib/slugGen' import { InputJsonValue } from '~db/lib/zod' import { organizationsSchema } from '~db/seed/recon/input/types' import { needsUpdate } from '~db/seed/recon/lib/compare' -import { dataCorrections, existing, getCountryId, getGovDistId } from '~db/seed/recon/lib/existing' +import { + attribsToNotDelete, + dataCorrections, + existing, + getCountryId, + getGovDistId, +} from '~db/seed/recon/lib/existing' import { attachLogger, formatMessage } from '~db/seed/recon/lib/logger' -import { create, crowdin, exceptions, update, writeBatches } from '~db/seed/recon/lib/output' +import { create, crowdin, deleteRecord, exceptions, update, writeBatches } from '~db/seed/recon/lib/output' import { generateFreeTextKey } from '~db/seed/recon/lib/translations' import { type ListrJob } from '~db/seed/recon/lib/types' -import { emptyStrToNull, raise, trimSpaces } from '~db/seed/recon/lib/utils' +import { conditionalObj, emptyStrToNull, raise, trimSpaces } from '~db/seed/recon/lib/utils' // import { parseSchedule } from '~db/seed/recon/parsers/hours' import { type AttrSupp, generateSupplementTxn, tagParser } from '~db/seed/recon/parsers/attributes' import { JsonInputOrNull } from '~db/zod_util/prismaJson' @@ -56,7 +63,17 @@ export const orgRecon = { true ) - const logAddition = (table: string, value: unknown) => log(`Adding ${value} to ${table}`, 'create', true) + const logAddition = (table: string, value: unknown) => + log( + `Adding ${ + typeof value === 'object' ? '\n' + JSON.stringify(value, null, 1) + '\n' : `"${value}"` + } to ${table}`, + 'create', + true + ) + + const logDeletion = (table: string, value: unknown) => + log(`Deleting ${value} from ${table}`, 'trash', true) writeBatches(task, true) let orgCounter = 1 @@ -118,6 +135,14 @@ export const orgRecon = { ...links, }) } + const genAuditLink = (links: AuditLogLinks) => { + create.auditLog.add({ + actorId, + to: InputJsonValue.parse(superjson.serialize(links)), + operation: 'LINK', + ...links, + }) + } /** * . @@ -1038,7 +1063,7 @@ export const orgRecon = { where: { organizationId }, include: { supplement: { include: { text: { include: { tsKey: true } } } } }, }) - const existingServAreas = await prisma.serviceArea.findUnique({ + const existingServArea = await prisma.serviceArea.findUnique({ where: { organizationId }, include: { countries: true, districts: true }, }) @@ -1134,13 +1159,11 @@ export const orgRecon = { const newSupplement: Prisma.AttributeSupplementCreateManyInput = { id: generateId('attributeSupplement'), ...rest, - ...(data - ? { - data: JsonInputOrNull.parse( - superjson.serialize(typeof data === 'string' ? superjson.parse(data) : data) - ), - } - : {}), + ...conditionalObj(data, { + data: JsonInputOrNull.parse( + superjson.serialize(typeof data === 'string' ? superjson.parse(data) : data) + ), + }), createdAt, updatedAt, } @@ -1203,13 +1226,11 @@ export const orgRecon = { const updatedRecord: Prisma.AttributeSupplementUpdateArgs = { where: { id: txn.where.id }, data: { - ...(data - ? { - data: JsonInputOrNull.parse( - superjson.serialize(typeof data === 'string' ? superjson.parse(data) : data) - ), - } - : {}), + ...conditionalObj(data, { + data: JsonInputOrNull.parse( + superjson.serialize(typeof data === 'string' ? superjson.parse(data) : data) + ), + }), ...rest, updatedAt, }, @@ -1241,13 +1262,147 @@ export const orgRecon = { } } // debugger + } else { + logAddition('organizationAttribute', attributeId) + create.organizationAttribute.add({ attributeId, organizationId }) + genAuditLink({ attributeId, organizationId }) + + for (const supplement of attributeSupplement) { + if (supplement.text) { + const { key, ns, text } = + generateFreeTextKey({ + orgId: organizationId, + text: supplement.text, + type: 'supplement', + itemId: supplement.id, + }) ?? {} + if (key && ns && text) { + logAddition('translationKey', { key, ns, text, updatedAt, createdAt }) + create.translationKey.add({ key, ns, text }) + logAddition('freeText', supplement.text) + const textId = generateId('freeText') + create.freeText.add({ id: textId, key, ns, updatedAt, createdAt }) + crowdin.create.add({ key, text }) + supplement.textId = textId + delete supplement.text + } + } + logAddition('attributeSupplement', supplement) + create.attributeSupplement.add(supplement) + } + } + } + if (existingAttributes.length) { + log( + `Reviewing ${existingAttributes.length} existing attributes for possible deactivation`, + undefined, + true + ) + for (const record of existingAttributes) { + log(`Processing ${record.attributeId}`, undefined, true) + const { attributeId } = record + if (!attribsToNotDelete.has(attributeId)) { + logUpdate('active', 'true', 'false') + update.organizationAttribute.add({ + where: { organizationId_attributeId: { attributeId, organizationId } }, + data: { active: false }, + }) + genAuditUpdate({ active: true }, { active: false }, { organizationId, attributeId }) + } + } + } + + if (orgServArea.countries.length || orgServArea.districts.length) { + if (existingServArea) { + const current = { + countries: existingServArea.countries.map(({ countryId }) => countryId), + districts: existingServArea.districts.map(({ govDistId }) => govDistId), + } + + const changes: { add: ServArea; del: ServArea } = { + add: { countries: [], districts: [] }, + del: { countries: [], districts: [] }, + } + let hasChanges = false + + for (const key of Object.keys(orgServArea)) { + for (const id of orgServArea[key]) { + if (!current[key].includes(id)) { + changes.add[key].push(id) + hasChanges = true + } + } + } + for (const key of Object.keys(current)) { + for (const id of current[key]) { + if (!orgServArea[key].includes(id)) { + changes.del[key].push(id) + hasChanges = true + } + } + } + if (hasChanges) { + logUpdate( + 'serviceArea', + { govDistId: current.districts, countryId: current.countries }, + { ...orgServArea } + ) + update.serviceArea.add({ + where: { id: existingServArea.id }, + data: { + ...conditionalObj(changes.del.districts.length || changes.add.districts.length, { + districts: { + ...conditionalObj(changes.del.districts.length, { + deleteMany: { govDistId: { in: changes.del.districts } }, + }), + ...conditionalObj(changes.add.districts.length, { + createMany: { + data: changes.add.districts.map((govDistId) => ({ govDistId })), + skipDuplicates: true, + }, + }), + }, + }), + ...conditionalObj(changes.del.countries.length || changes.add.countries.length, { + countries: { + ...conditionalObj(changes.del.countries.length, { + deleteMany: { countryId: { in: changes.del.countries } }, + }), + ...conditionalObj(changes.add.countries.length, { + createMany: { + data: changes.add.countries.map((countryId) => ({ countryId })), + skipDuplicates: true, + }, + }), + }, + }), + }, + }) + } + genAuditUpdate(existingServArea, { ...orgServArea }, { serviceAreaId: existingServArea.id }) + } else { + logAddition('serviceArea', { ...orgServArea }) + const id = generateId('serviceArea') + create.serviceArea.add({ id, createdAt, updatedAt, organizationId }) + genAuditCreate({ ...orgServArea, createdAt, updatedAt, organizationId }, { serviceAreaId: id }) + orgServArea.countries.forEach((countryId) => { + logAddition('serviceAreaCountry', countryId) + const record = { countryId, serviceAreaId: id, linkedAt: updatedAt } + create.serviceAreaCountry.add(record) + genAuditLink({ countryId, serviceAreaId: id }) + }) + orgServArea.districts.forEach((govDistId) => { + logAddition('serviceAreaDists', govDistId) + const record = { govDistId, serviceAreaId: id, linkedAt: updatedAt } + create.serviceAreaDist.add(record) + genAuditLink({ govDistId, serviceAreaId: id }) + }) } } - // debugger } // #endregion - + if (process.env.LIMIT && parseInt(process.env.LIMIT) === orgCounter) break orgCounter++ } writeBatches(task) From 630d78e73e747f357815a82b537c1b325e427253 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Fri, 7 Jul 2023 22:50:59 -0400 Subject: [PATCH 38/66] start service reconciliation --- packages/db/seed/recon/lib/existing.ts | 11 +++ packages/db/seed/recon/reconJob.ts | 129 ++++++++++++++++++++++++- 2 files changed, 137 insertions(+), 3 deletions(-) diff --git a/packages/db/seed/recon/lib/existing.ts b/packages/db/seed/recon/lib/existing.ts index 67f403feed..d921628973 100644 --- a/packages/db/seed/recon/lib/existing.ts +++ b/packages/db/seed/recon/lib/existing.ts @@ -1,3 +1,5 @@ +import slugify from 'slugify' + import { dayMap, hoursCorrection, hoursMeta, timezoneMap } from '~db/seed/recon/corrections/hours' import { countryCorrection, @@ -118,3 +120,12 @@ export const attribsToNotDelete = new Set([ 'attr_01H273GHADR15DGYH06SSN5XVG', 'attr_01GW2HHFV5Q7XN2ZNTYFR1AD3M', ]) + +export const legacyAccessMap = new Map([ + ['email', slugify('Service Access Instructions-accessEmail', { lower: true, strict: true })], + ['file', slugify('Service Access Instructions-accessFile', { lower: true, strict: true })], + ['link', slugify('Service Access Instructions-accessLink', { lower: true, strict: true })], + ['location', slugify('Service Access Instructions-accessLocation', { lower: true, strict: true })], + ['phone', slugify('Service Access Instructions-accessPhone', { lower: true, strict: true })], + ['other', slugify('Service Access Instructions-accessText', { lower: true, strict: true })], +]) diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index f58a47b7d5..2471106b29 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -29,6 +29,7 @@ import { existing, getCountryId, getGovDistId, + legacyAccessMap, } from '~db/seed/recon/lib/existing' import { attachLogger, formatMessage } from '~db/seed/recon/lib/logger' import { create, crowdin, deleteRecord, exceptions, update, writeBatches } from '~db/seed/recon/lib/output' @@ -184,21 +185,22 @@ export const orgRecon = { } if ( existingOrgRecord.description && + org.description && needsUpdate(existingOrgRecord.description.tsKey.text, org.description) ) { logUpdate('description', existingOrgRecord.description.tsKey.text, trimSpaces(org.description ?? '')) - if (org.description && existingOrgRecord.description.tsKey.crowdinId) + if (existingOrgRecord.description.tsKey.crowdinId) crowdin.update.add({ id: existingOrgRecord.description.tsKey.crowdinId, text: trimSpaces(org.description), }) update.translationKey.add({ where: { ns_key: { ns: namespace.orgData, key: existingOrgRecord.description.key } }, - data: { text: org.description ? trimSpaces(org.description) : undefined }, + data: { text: trimSpaces(org.description) }, }) genAuditUpdate( { text: existingOrgRecord.description.tsKey.text }, - { text: org.description ? trimSpaces(org.description) : undefined }, + { text: trimSpaces(org.description) }, { translationKey: existingOrgRecord.description.key, translationNs: namespace.orgData } ) } @@ -1402,6 +1404,127 @@ export const orgRecon = { } // #endregion + + /** + * . + * + * === SERVICES === + * + * . + */ + // #region Services + if (!org.services.length) { + log(`SKIPPING Services - no records`, 'skip') + } else { + log(`Processing ${org.services.length} services`, 'generate') + let count = 1 + + for (const service of org.services) { + const existingRecord = await prisma.orgService.findUnique({ + where: { legacyId: service._id.$oid }, + include: { + serviceName: { include: { tsKey: true } }, + description: { include: { tsKey: true } }, + accessDetails: { + include: { + attributes: { include: { attribute: true, supplement: { include: { text: true } } } }, + }, + }, + }, + }) + + if (existingRecord) { + log( + `[${count}/${org.services.length}] Reconciling record against ${existingRecord.id}`, + undefined, + true + ) + + const updatedRecord: Prisma.OrgServiceUpdateArgs = { + where: { id: existingRecord.id }, + data: {}, + } + if (needsUpdate(existingRecord.deleted, service.is_deleted)) { + logUpdate('deleted', existingRecord.deleted, service.is_deleted) + updatedRecord.data.deleted = service.is_deleted + } + if (needsUpdate(existingRecord.published, service.is_published)) { + if (service.is_published === true) { + log(`SKIPPING - Mark service as published`, 'skip', true) + } else { + logUpdate('published', existingRecord.published, service.is_published) + updatedRecord.data.published = service.is_published + } + } + if ( + existingRecord.serviceName && + needsUpdate(existingRecord.serviceName.tsKey.text, service.name) + ) { + logUpdate('serviceName', existingRecord.serviceName.tsKey.text, trimSpaces(service.name)) + if (existingRecord.serviceName.tsKey.crowdinId) + crowdin.update.add({ + id: existingRecord.serviceName.tsKey.crowdinId, + text: trimSpaces(service.name), + }) + + const { key, ns } = existingRecord.serviceName + update.translationKey.add({ + where: { + ns_key: { ns, key }, + }, + data: { text: trimSpaces(service.name) }, + }) + genAuditUpdate( + { text: existingRecord.serviceName.tsKey.text }, + { text: trimSpaces(service.name) }, + { translationKey: key, translationNs: ns } + ) + } + + if ( + existingRecord.description && + service.description && + needsUpdate(existingRecord.description.tsKey.text, service.description) + ) { + logUpdate('description', existingRecord.description.tsKey.text, trimSpaces(service.description)) + if (existingRecord.description.tsKey.crowdinId) + crowdin.update.add({ + id: existingRecord.description.tsKey.crowdinId, + text: trimSpaces(service.description), + }) + + const { key, ns } = existingRecord.description + update.translationKey.add({ + where: { + ns_key: { ns, key }, + }, + data: { text: trimSpaces(service.description) }, + }) + genAuditUpdate( + { text: existingRecord.description.tsKey.text }, + { text: trimSpaces(service.description) }, + { translationKey: key, translationNs: ns } + ) + } + + if (service.access_instructions.length) { + log( + `Processing ${service.access_instructions.length} access instruction records`, + 'generate', + true + ) + for (const access of service.access_instructions) { + const existingAccess = await prisma.serviceAccess.findFirst() + } + } + } + + count++ + } + } + + // #endregion + if (process.env.LIMIT && parseInt(process.env.LIMIT) === orgCounter) break orgCounter++ } From faa3dbc2539514cbe038be22bac7196813fe1711 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Sun, 9 Jul 2023 18:09:43 -0400 Subject: [PATCH 39/66] update api routes/components for accessDetails schema change --- packages/db/seed/recon/lib/output.ts | 1 - packages/db/seed/recon/reconJob.ts | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index daa8137f44..93f6a8c31e 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -45,7 +45,6 @@ export const create = { orgPhoto: new Set(), orgHours: new Set(), orgService: new Set(), - serviceAccess: new Set(), attributeSupplement: new Set(), orgServicePhone: new Set(), orgServiceEmail: new Set(), diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 2471106b29..05e86f0a32 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -1425,11 +1425,11 @@ export const orgRecon = { include: { serviceName: { include: { tsKey: true } }, description: { include: { tsKey: true } }, - accessDetails: { - include: { - attributes: { include: { attribute: true, supplement: { include: { text: true } } } }, - }, - }, + // accessDetails: { + // include: { + // attributes: { include: { attribute: true, supplement: { include: { text: true } } } }, + // }, + // }, }, }) @@ -1514,7 +1514,7 @@ export const orgRecon = { true ) for (const access of service.access_instructions) { - const existingAccess = await prisma.serviceAccess.findFirst() + // const existingAccess = await prisma.serviceAccess.findFirst() } } } From f5065f17a2c06f0792f74f94a010e020aa212350 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Sun, 9 Jul 2023 21:01:54 -0400 Subject: [PATCH 40/66] filter for active --- packages/api/router/service/queries.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/api/router/service/queries.ts b/packages/api/router/service/queries.ts index ccb900f093..ddd76dda02 100644 --- a/packages/api/router/service/queries.ts +++ b/packages/api/router/service/queries.ts @@ -386,6 +386,7 @@ export const queries = defineRouter({ select: { attribute: { select: { id: true } }, supplement: { + where: { active: true }, select: { id: true, data: true, From e9658e025339e6399f783b669d579f189b88ac06 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Sun, 9 Jul 2023 21:29:13 -0400 Subject: [PATCH 41/66] add phone/email id map --- packages/db/seed/recon/generated/types.ts | 4 ++ packages/db/seed/recon/lib/existing.ts | 16 ++++---- packages/db/seed/recon/lib/generateDbMaps.ts | 42 ++++++++++++++++++++ packages/db/seed/recon/reconJob.ts | 3 ++ 4 files changed, 58 insertions(+), 7 deletions(-) diff --git a/packages/db/seed/recon/generated/types.ts b/packages/db/seed/recon/generated/types.ts index 9e3fd1d37f..d8c7587abf 100644 --- a/packages/db/seed/recon/generated/types.ts +++ b/packages/db/seed/recon/generated/types.ts @@ -39,3 +39,7 @@ export type PermissionMap = Map export type TranslationKeySet = Set export type TranslationMap = Map + +export type EmailIdMap = Map + +export type PhoneIdMap = Map diff --git a/packages/db/seed/recon/lib/existing.ts b/packages/db/seed/recon/lib/existing.ts index d921628973..507115bcd5 100644 --- a/packages/db/seed/recon/lib/existing.ts +++ b/packages/db/seed/recon/lib/existing.ts @@ -27,6 +27,8 @@ export const existing = { country: readSuperJSON('countryMap'), govDistList: readSuperJSON('distList'), govDistMap: readSuperJSON('distMap'), + emailId: readSuperJSON('emailIdMap'), + phoneId: readSuperJSON('phoneIdMap'), } export const dataCorrections = { @@ -121,11 +123,11 @@ export const attribsToNotDelete = new Set([ 'attr_01GW2HHFV5Q7XN2ZNTYFR1AD3M', ]) -export const legacyAccessMap = new Map([ - ['email', slugify('Service Access Instructions-accessEmail', { lower: true, strict: true })], - ['file', slugify('Service Access Instructions-accessFile', { lower: true, strict: true })], - ['link', slugify('Service Access Instructions-accessLink', { lower: true, strict: true })], - ['location', slugify('Service Access Instructions-accessLocation', { lower: true, strict: true })], - ['phone', slugify('Service Access Instructions-accessPhone', { lower: true, strict: true })], - ['other', slugify('Service Access Instructions-accessText', { lower: true, strict: true })], +export const legacyAccessMap = new Map([ + ['email', 'attr_01GW2HHFVKFM4TDY4QRK4AR2ZW'], + ['file', 'attr_01GW2HHFVKMRHFD8SMDAZM3SSM'], + ['link', 'attr_01GW2HHFVMYXMS8ARA3GE7HZFD'], + ['location', 'attr_01GW2HHFVMH6AE94EXN7T5A87C'], + ['phone', 'attr_01GW2HHFVMKTFWCKBVVFJ5GMY0'], + ['other', 'attr_01GW2HHFVMMF19AX2KPBTMV6P3'], ]) diff --git a/packages/db/seed/recon/lib/generateDbMaps.ts b/packages/db/seed/recon/lib/generateDbMaps.ts index 2b2cb39e08..75b6f1f228 100644 --- a/packages/db/seed/recon/lib/generateDbMaps.ts +++ b/packages/db/seed/recon/lib/generateDbMaps.ts @@ -325,6 +325,48 @@ typeOutput.push('export type TranslationMap = Map') // #endregion +// #region Email IDs + +export const generateEmailIdMap = { + title: 'Generate Email ID Map', + task: async (_ctx, task) => { + attachLogger(task) + const records = await prisma.orgEmail.findMany({ + select: { id: true, legacyId: true }, + }) + task.output = `Emails retrieved: ${records.length}` + const idMap = new Map( + compact(records.map((u) => (u.legacyId ? [u.legacyId, u.id] : undefined))) + ) + writeSuperJSON('emailIdMap', idMap) + }, +} satisfies ListrJob + +typeOutput.push('export type EmailIdMap = Map') + +// #endregion + +// #region Phone IDs + +export const generatePhoneIdMap = { + title: 'Generate Phone ID Map', + task: async (_ctx, task) => { + attachLogger(task) + const records = await prisma.orgPhone.findMany({ + select: { id: true, legacyId: true }, + }) + task.output = `Phone records retrieved: ${records.length}` + const idMap = new Map( + compact(records.map((u) => (u.legacyId ? [u.legacyId, u.id] : undefined))) + ) + writeSuperJSON('phoneIdMap', idMap) + }, +} satisfies ListrJob + +typeOutput.push('export type PhoneIdMap = Map') + +// #endregion + // #region Types export const generateTypes = { diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 05e86f0a32..557f964995 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -407,6 +407,7 @@ export const orgRecon = { updatedAt, } create.orgLocation.add(filterUndefined(newLocation) as Prisma.OrgLocationCreateManyInput) + existing.locationId.set(location._id.$oid, newLocation.id ?? raise('missing new id for location')) genAuditCreate(filterUndefined(newLocation), { orgLocationId: newLocation.id }) } @@ -561,6 +562,7 @@ export const orgRecon = { } create.organizationEmail.add({ organizationId, orgEmailId: newEmail.id as string }) create.orgEmail.add(filterUndefined(newEmail) as Prisma.OrgEmailCreateManyInput) + existing.emailId.set(email._id.$oid, newEmail.id ?? raise('missing new id for email')) genAuditCreate(filterUndefined(newEmail), { orgEmailId: newEmail.id }) } emailCount++ @@ -786,6 +788,7 @@ export const orgRecon = { } create.organizationPhone.add({ organizationId, phoneId: newPhone.id }) create.orgPhone.add(filterUndefined(newPhone) as Prisma.OrgPhoneCreateManyInput) + existing.phoneId.set(phone._id.$oid, newPhone.id ?? raise('missing new id for phone')) genAuditCreate(filterUndefined(newPhone), { orgPhoneId: newPhone.id }) } phoneCount++ From 8843031b5dd47ce699b493fbb9b0778e8d6275b4 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Sun, 9 Jul 2023 21:31:20 -0400 Subject: [PATCH 42/66] reconcile access instructions --- packages/db/package.json | 1 + packages/db/seed/recon/lib/output.ts | 1 + packages/db/seed/recon/lib/utils.ts | 3 + packages/db/seed/recon/reconJob.ts | 172 +++++++++++++++++++++++++-- pnpm-lock.yaml | 7 ++ 5 files changed, 175 insertions(+), 9 deletions(-) diff --git a/packages/db/package.json b/packages/db/package.json index c2b9f6c3cc..cc96ee1d43 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -56,6 +56,7 @@ "@weareinreach/env": "workspace:*", "json-difference": "1.9.1", "just-compare": "2.3.0", + "just-deep-map-values": "1.2.0", "just-diff": "6.0.2", "just-diff-apply": "5.5.0", "just-filter-object": "3.2.0", diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index 93f6a8c31e..134293517f 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -78,6 +78,7 @@ export const update = { attributeSupplement: new Set(), organizationAttribute: new Set(), serviceArea: new Set(), + serviceAccessAttribute: new Set(), } export const deleteRecord = { diff --git a/packages/db/seed/recon/lib/utils.ts b/packages/db/seed/recon/lib/utils.ts index 77aa7969b1..f8bb4eda60 100644 --- a/packages/db/seed/recon/lib/utils.ts +++ b/packages/db/seed/recon/lib/utils.ts @@ -1,4 +1,5 @@ import superjson from 'superjson' +import { type SuperJSONResult } from 'superjson/dist/types' import fs from 'fs' import path from 'path' @@ -7,6 +8,8 @@ export const readSuperJSON = (filename: string) => { const data = fs.readFileSync(path.resolve(__dirname, `../generated/${filename}.json`), 'utf-8') return superjson.parse(data) } +export const isSuperJSON = (obj: unknown): obj is SuperJSONResult => + typeof obj === 'object' && obj !== null && Object.hasOwn(obj, 'json') export const trimSpaces = (str: string) => str.trim().replaceAll(/ +(?=[^\S\n])/g, ' ') diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 557f964995..5672e4f2f5 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -1,6 +1,7 @@ /* eslint-disable node/no-process-env */ import { geojsonToWKT } from '@terraformer/wkt' import { getDiff } from 'json-difference' +import mapObj from 'just-deep-map-values' import { diff } from 'just-diff' import { diffApply } from 'just-diff-apply' import filterObject from 'just-filter-object' @@ -21,7 +22,10 @@ import { createPoint } from '~db/lib/createPoint' import { generateId } from '~db/lib/idGen' import { slugUpdate } from '~db/lib/slugGen' import { InputJsonValue } from '~db/lib/zod' -import { organizationsSchema } from '~db/seed/recon/input/types' +import { + type AccessInstruction as LegacyAccessInstruction, + organizationsSchema, +} from '~db/seed/recon/input/types' import { needsUpdate } from '~db/seed/recon/lib/compare' import { attribsToNotDelete, @@ -35,7 +39,7 @@ import { attachLogger, formatMessage } from '~db/seed/recon/lib/logger' import { create, crowdin, deleteRecord, exceptions, update, writeBatches } from '~db/seed/recon/lib/output' import { generateFreeTextKey } from '~db/seed/recon/lib/translations' import { type ListrJob } from '~db/seed/recon/lib/types' -import { conditionalObj, emptyStrToNull, raise, trimSpaces } from '~db/seed/recon/lib/utils' +import { conditionalObj, emptyStrToNull, isSuperJSON, raise, trimSpaces } from '~db/seed/recon/lib/utils' // import { parseSchedule } from '~db/seed/recon/parsers/hours' import { type AttrSupp, generateSupplementTxn, tagParser } from '~db/seed/recon/parsers/attributes' import { JsonInputOrNull } from '~db/zod_util/prismaJson' @@ -1428,15 +1432,14 @@ export const orgRecon = { include: { serviceName: { include: { tsKey: true } }, description: { include: { tsKey: true } }, - // accessDetails: { - // include: { - // attributes: { include: { attribute: true, supplement: { include: { text: true } } } }, - // }, - // }, + accessDetails: { + include: { attribute: true, supplement: { include: { text: { include: { tsKey: true } } } } }, + }, }, }) if (existingRecord) { + // #region Service Basic Info log( `[${count}/${org.services.length}] Reconciling record against ${existingRecord.id}`, undefined, @@ -1509,17 +1512,168 @@ export const orgRecon = { { translationKey: key, translationNs: ns } ) } - + // #endregion + // #region Access Instructions if (service.access_instructions.length) { log( `Processing ${service.access_instructions.length} access instruction records`, 'generate', true ) + const existingAccessInstructions = new Map( + existingRecord.accessDetails.map(({ attributeId, supplement }) => [ + attributeId, + supplement.map(({ data, ...rest }) => ({ + ...rest, + data: isSuperJSON(data) + ? superjson.deserialize(data) + : undefined, + })), + ]) + ) + // Compile access instructions in to an object to compare against + const servAccessToRecon: Record = {} for (const access of service.access_instructions) { - // const existingAccess = await prisma.serviceAccess.findFirst() + const accessType = legacyAccessMap.get(access.access_type ?? '') + if (!accessType) { + log(`SKIPPING - Unknown access type: ${access.access_type}`, 'skip', true) + continue + } + Array.isArray(servAccessToRecon[accessType]) + ? servAccessToRecon[accessType]?.push(access) + : (servAccessToRecon[accessType] = [access]) + } + for (const [accessTypeId, supps] of Object.entries(servAccessToRecon)) { + const currentData = existingAccessInstructions.get(accessTypeId) + if (!currentData?.length) { + log( + `Creating ${supps.length} missing records for access type: ${accessTypeId}`, + 'create', + true + ) + supps.forEach((record) => { + const newRecord: Prisma.AttributeSupplementCreateManyInput = { + id: generateId('attributeSupplement'), + serviceAccessAttributeAttributeId: accessTypeId, + serviceAccessAttributeServiceId: existingRecord.id, + createdAt, + updatedAt, + } + if (record.instructions && record.instructions !== '') { + const { key, ns, text } = + generateFreeTextKey({ + orgId: organizationId, + text: record.instructions, + type: 'access', + itemId: newRecord.id, + }) ?? {} + if (key && ns && text) { + const id = generateId('freeText') + crowdin.create.add({ key, text }) + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + create.freeText.add({ id, key, ns, createdAt, updatedAt }) + newRecord.textId = id + } + } + newRecord.data = JsonInputOrNull.parse(superjson.serialize(record)) + create.attributeSupplement.add(newRecord) + create.serviceAccessAttribute.add({ + serviceId: existingRecord.id, + attributeId: accessTypeId, + }) + }) + } else { + for (let record of supps) { + record = filterUndefinedOrNull( + mapObj( + // @ts-expect-error whatever. + record, + emptyStrToNull + ) + ) as unknown as LegacyAccessInstruction + const idx = currentData.findIndex(({ data }) => data?._id.$oid === record._id.$oid) + if (idx >= 0) { + const existingItem = + currentData.splice(idx, 1)[0] ?? raise('error getting existing record') + log(`Reconciling record against ${existingItem.id}`, undefined, true) + if ( + existingItem.text?.tsKey.text && + emptyStrToNull(record.instructions) && + needsUpdate(existingItem.text.tsKey.text, emptyStrToNull(record.instructions)) + ) { + const newText = emptyStrToNull(record.instructions) ?? raise('cannot parse text') + const { key, ns } = existingItem.text + logUpdate('text', existingItem.text?.tsKey.text, newText) + update.translationKey.add({ + where: { ns_key: { key, ns } }, + data: { text: newText, createdAt, updatedAt }, + }) + } + + const changes = diff(existingItem.data ?? {}, record) + if (changes.length) { + logUpdate('data', superjson.stringify(existingItem.data), superjson.stringify(record)) + update.attributeSupplement.add({ + where: { id: existingItem.id }, + data: { data: JsonInputOrNull.parse(superjson.serialize(record)), updatedAt }, + }) + } + } else { + log(`Creating missing record from ${record._id.$oid}`, 'create', true) + const newRecord: Prisma.AttributeSupplementCreateManyInput = { + id: generateId('attributeSupplement'), + serviceAccessAttributeAttributeId: accessTypeId, + serviceAccessAttributeServiceId: existingRecord.id, + createdAt, + updatedAt, + } + if (record.instructions && record.instructions !== '') { + const { key, ns, text } = + generateFreeTextKey({ + orgId: organizationId, + text: record.instructions, + type: 'access', + itemId: newRecord.id, + }) ?? {} + if (key && ns && text) { + const id = generateId('freeText') + crowdin.create.add({ key, text }) + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + create.freeText.add({ id, key, ns, createdAt, updatedAt }) + newRecord.textId = id + } + } + newRecord.data = JsonInputOrNull.parse(superjson.serialize(record)) + create.attributeSupplement.add(newRecord) + create.serviceAccessAttribute.add({ + serviceId: existingRecord.id, + attributeId: accessTypeId, + }) + } + } + if (currentData.length) { + log(`Deactivating ${currentData.length} records`, 'trash', true) + currentData.forEach((record) => { + update.attributeSupplement.add({ + where: { id: record.id }, + data: { active: false, updatedAt }, + }) + }) + } + } } + } else if (existingRecord.accessDetails.length) { + log(`Marking ${existingRecord.accessDetails.length} records as inactive`, 'trash', true) + existingRecord.accessDetails.forEach((record) => { + update.serviceAccessAttribute.add({ + where: { + serviceId_attributeId: { serviceId: record.serviceId, attributeId: record.attributeId }, + }, + data: { active: false }, + }) + }) } + // #endregion } count++ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d3bbddc8d..6af6feea68 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -996,6 +996,9 @@ importers: just-compare: specifier: 2.3.0 version: 2.3.0 + just-deep-map-values: + specifier: 1.2.0 + version: 1.2.0 just-diff: specifier: 6.0.2 version: 6.0.2 @@ -18828,6 +18831,10 @@ packages: resolution: {integrity: sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==} dev: false + /just-deep-map-values@1.2.0: + resolution: {integrity: sha512-4vpPBzHHis4UW/EbH5kHZn0gJvKP+EiMpbjD669ZSxdwx+EoAlQLMbLR08SEtydcq/MjDPPtwGiPo9R893iHVA==} + dev: false + /just-diff-apply@5.5.0: resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} dev: false From 019f114e0e4db848736fd083275a983a3875f166 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 10 Jul 2023 20:47:25 -0400 Subject: [PATCH 43/66] deps --- packages/db/.gitignore | 2 ++ packages/db/package.json | 1 + pnpm-lock.yaml | 7 +++++++ 3 files changed, 10 insertions(+) diff --git a/packages/db/.gitignore b/packages/db/.gitignore index 769cd8384c..2e73806c4e 100644 --- a/packages/db/.gitignore +++ b/packages/db/.gitignore @@ -30,3 +30,5 @@ prisma/migrations/**/*.json zod-schemas/ kysely-vercel/ +pg-diff/ +pg-diff-config.json diff --git a/packages/db/package.json b/packages/db/package.json index cc96ee1d43..26ea88c51c 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -60,6 +60,7 @@ "just-diff": "6.0.2", "just-diff-apply": "5.5.0", "just-filter-object": "3.2.0", + "just-map-keys": "2.3.0", "just-map-values": "3.2.0", "just-omit": "2.2.0", "just-pick": "4.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6af6feea68..80f425c769 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1008,6 +1008,9 @@ importers: just-filter-object: specifier: 3.2.0 version: 3.2.0 + just-map-keys: + specifier: 2.3.0 + version: 2.3.0 just-map-values: specifier: 3.2.0 version: 3.2.0 @@ -18858,6 +18861,10 @@ packages: resolution: {integrity: sha512-XdAiJUmfM7VOoBUh7I4xo+0YYuzCPiV0Xf21oAmR+1j6a/P8KxJUCigZDblmURZmkIWffNziY2sbSaHrJbNcuA==} dev: false + /just-map-keys@2.3.0: + resolution: {integrity: sha512-enWodahIp6kDnt+/dw5Ps1baTmuuc9AVFOuwwLhn3mufOyP4aWF3+4uF6oEFKVH15H0ymb7MjuO9W6j8HFQ8ng==} + dev: false + /just-map-values@3.2.0: resolution: {integrity: sha512-TyqCKtK3NxiUgOjRYMIKURvBTHesi3XzomDY0QVPZ3rYzLCF+nNq5rSi0B/L5aOd/WMTZo6ukzA4wih4HUbrDg==} dev: false From 79100901d16d0193d436b27f8ddcc52a057543ab Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 10 Jul 2023 20:47:46 -0400 Subject: [PATCH 44/66] add active/authorized fields --- .../migration.sql | 48 +++++++++++++++++ packages/db/prisma/schema.prisma | 52 ++++++++++++------- 2 files changed, 81 insertions(+), 19 deletions(-) create mode 100644 packages/db/prisma/migrations/20230710163505_add_active_authorized_fields/migration.sql diff --git a/packages/db/prisma/migrations/20230710163505_add_active_authorized_fields/migration.sql b/packages/db/prisma/migrations/20230710163505_add_active_authorized_fields/migration.sql new file mode 100644 index 0000000000..19f06fb707 --- /dev/null +++ b/packages/db/prisma/migrations/20230710163505_add_active_authorized_fields/migration.sql @@ -0,0 +1,48 @@ +-- AlterTable +ALTER TABLE "OrgLocationEmail" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "OrgLocationPhone" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "OrgPhoneLanguage" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "OrgServiceEmail" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "OrgServicePhone" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "OrgWebsiteLanguage" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "OrganizationEmail" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "OrganizationPhone" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "RolePermission" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "ServiceCategoryDefaultAttribute" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "ServiceTagCountry" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + +-- AlterTable +ALTER TABLE "ServiceTagDefaultAttribute" + ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT TRUE; + diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index bb92226148..23a3718187 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -1759,31 +1759,33 @@ enum AuditLogOperation { // Permissions -/// Assign permissions to user -model UserPermission { - user User @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: Cascade) - userId String +/// Assign default permissions to role +model RolePermission { + role UserRole @relation(fields: [roleId], references: [id], onDelete: Cascade, onUpdate: Cascade) + roleId String permission Permission @relation(fields: [permissionId], references: [id], onDelete: Cascade, onUpdate: Cascade) permissionId String - linkedAt DateTime @default(now()) - authorized Boolean @default(false) + linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") - @@id([userId, permissionId]) + @@id([roleId, permissionId]) } -/// Assign default permissions to role -model RolePermission { - role UserRole @relation(fields: [roleId], references: [id], onDelete: Cascade, onUpdate: Cascade) - roleId String +/// Assign permissions to user +model UserPermission { + user User @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: Cascade) + userId String permission Permission @relation(fields: [permissionId], references: [id], onDelete: Cascade, onUpdate: Cascade) permissionId String + authorized Boolean @default(false) + linkedAt DateTime @default(now()) //@@schema("relation") - @@id([roleId, permissionId]) + @@id([userId, permissionId]) } /// Associate User to Org - w/ contact info @@ -1794,6 +1796,8 @@ model UserToOrganization { organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade) organizationId String + authorized Boolean @default(false) + title UserTitle? @relation(fields: [orgTitleId], references: [id], onDelete: SetNull, onUpdate: Cascade) orgTitleId String? email OrgEmail? @relation(fields: [orgEmailId], references: [id], onDelete: SetNull, onUpdate: Cascade) @@ -1801,8 +1805,7 @@ model UserToOrganization { phone OrgPhone? @relation(fields: [orgPhoneId], references: [id], onDelete: SetNull, onUpdate: Cascade) orgPhoneId String? @unique - linkedAt DateTime @default(now()) - authorized Boolean @default(false) + linkedAt DateTime @default(now()) //@@schema("relation") @@id([userId, organizationId]) @@ -1926,8 +1929,9 @@ model AssignedRole { role UserRole @relation(fields: [roleId], references: [id], onDelete: Cascade, onUpdate: Cascade) roleId String - linkedAt DateTime @default(now()) - authorized Boolean @default(false) + authorized Boolean @default(false) + + linkedAt DateTime @default(now()) //@@schema("relation") @@id([userId, roleId]) @@ -1977,6 +1981,7 @@ model OrganizationPhone { phoneId String @unique linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([organizationId, phoneId]) @@ -1989,6 +1994,7 @@ model OrganizationEmail { organizationId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([orgEmailId, organizationId]) @@ -2002,6 +2008,7 @@ model OrgWebsiteLanguage { languageId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([orgWebsiteId, languageId]) @@ -2015,6 +2022,7 @@ model OrgPhoneLanguage { languageId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([orgPhoneId, languageId]) @@ -2028,6 +2036,7 @@ model OrgServicePhone { serviceId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([orgPhoneId, serviceId]) @@ -2041,6 +2050,7 @@ model OrgServiceEmail { serviceId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([orgEmailId, serviceId]) @@ -2054,6 +2064,7 @@ model OrgLocationEmail { orgEmailId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([orgEmailId, orgLocationId]) @@ -2066,6 +2077,7 @@ model OrgLocationPhone { phoneId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([orgLocationId, phoneId]) @@ -2133,9 +2145,8 @@ model ServiceAreaDist { /// Nesting attributes model AttributeNesting { - child Attribute @relation("attribChildToParent", fields: [childId], references: [id], onDelete: Cascade, onUpdate: Cascade) - childId String - + child Attribute @relation("attribChildToParent", fields: [childId], references: [id], onDelete: Cascade, onUpdate: Cascade) + childId String parent Attribute @relation("attribParentToChild", fields: [parentId], references: [id], onDelete: Cascade, onUpdate: Cascade) parentId String @@ -2241,6 +2252,7 @@ model ServiceCategoryDefaultAttribute { categoryId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([attributeId, categoryId]) @@ -2254,6 +2266,7 @@ model ServiceTagDefaultAttribute { serviceId String linkedAt DateTime @default(now()) + active Boolean @default(true) //@@schema("relation") @@id([attributeId, serviceId]) @@ -2266,6 +2279,7 @@ model ServiceTagCountry { serviceId String linkedAt DateTime @default(now()) + active Boolean @default(true) @@id([countryId, serviceId]) } From d7cdf454656af4bbaaac5a540d5bce78ab8b0353 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Mon, 10 Jul 2023 20:48:34 -0400 Subject: [PATCH 45/66] finish reconciler, create db batcher/runner --- packages/db/seed/lib/icon.ts | 69 +- packages/db/seed/recon/dbRunner.ts | 134 +++ packages/db/seed/recon/index.ts | 12 +- packages/db/seed/recon/lib/generateDbMaps.ts | 15 +- packages/db/seed/recon/lib/output.ts | 82 +- packages/db/seed/recon/reconJob.ts | 899 ++++++++++++++++++- 6 files changed, 1090 insertions(+), 121 deletions(-) create mode 100644 packages/db/seed/recon/dbRunner.ts diff --git a/packages/db/seed/lib/icon.ts b/packages/db/seed/lib/icon.ts index 53129177aa..8ca6e4c43a 100644 --- a/packages/db/seed/lib/icon.ts +++ b/packages/db/seed/lib/icon.ts @@ -26,54 +26,27 @@ * `😵 error` * * `🧑‍💻 update` + * + * `💥 unlink` */ export type Log = (message: string, icon?: IconList, indent?: boolean, silent?: boolean) => void -export type IconList = - | 'fetch' - | 'generate' - | 'tlate' - | 'create' - | 'skip' - | 'access' - | 'link' - | 'gear' - | 'write' - | 'warning' - | 'trash' - | 'info' - | 'error' - | 'update' - -export const iconList = (icon: IconList) => { - switch (icon) { - case 'fetch': - return '🐕' - case 'create': - return '🏗️' - case 'skip': - return '🤷' - case 'generate': - return '🛠️' - case 'tlate': - return '🗣️' - case 'access': - return '🔑' - case 'link': - return '🔗' - case 'gear': - return '⚙️' - case 'warning': - return '⚠️' - case 'write': - return '✍️' - case 'trash': - return '🚮' - case 'info': - return '🔵' - case 'error': - return '😵' - case 'update': - return '🧑‍💻' - } -} +export type IconList = keyof typeof iconObj +const iconObj = { + fetch: '🐕', + create: '🏗️', + skip: '🤷', + generate: '🛠️', + tlate: '🗣️', + access: '🔑', + link: '🔗', + gear: '⚙️', + warning: '⚠️', + write: '✍️', + trash: '🚮', + info: '🔵', + error: '😵', + update: '🧑‍💻', + unlink: '💥', +} as const +export const iconList = (icon: IconList) => iconObj[icon] diff --git a/packages/db/seed/recon/dbRunner.ts b/packages/db/seed/recon/dbRunner.ts new file mode 100644 index 0000000000..1f03590e10 --- /dev/null +++ b/packages/db/seed/recon/dbRunner.ts @@ -0,0 +1,134 @@ +import superjson from 'superjson' + +import fs from 'fs' +import path from 'path' + +import { prisma, type Prisma } from '~db/client' +import { attachLogger, formatMessage } from '~db/seed/recon/lib/logger' +import { + type BatchData, + createBatchNames, + type CreateBatchNames, + getBatchFile, + updateBatchNames, + type UpdateBatchNames, +} from '~db/seed/recon/lib/output' +import { type ListrJob } from '~db/seed/recon/lib/types' + +const loadBatch = < + O extends 'create' | 'update', + const B extends O extends 'create' ? CreateBatchNames : UpdateBatchNames +>( + op: O, + batchName: B +) => { + const fileName = getBatchFile({ type: op, batchName }) + if (!fs.existsSync(fileName)) return + + const data = superjson.parse>(fs.readFileSync(fileName, 'utf-8')) + + return [...data] +} + +const isValidPrismaModel = (model: string | symbol): model is keyof typeof prisma => model in prisma + +const writeBatchDebug = (data: object) => + fs.writeFileSync(path.resolve(__dirname, './output/currentBatch.json'), JSON.stringify(data)) +export const dbRun = { + title: 'Insert/Update records to DB', + task: async (_ctx, task) => { + attachLogger(task) + const log = (...args: Parameters) => (task.output = formatMessage(...args)) + + const createManyBatchSize = 10 //00 + const updateBatchSize = 500 + await prisma.$transaction( + async (tx) => { + for (const batchName of createBatchNames) { + log(`Preparing create/${batchName}`) + if (!isValidPrismaModel(batchName)) { + log(`Error: ${batchName} is not a valid Prisma model`) + continue + } + const batchData = loadBatch('create', batchName) + if (!batchData) { + log(`Skipping batch create/${batchName}, no data.`) + continue + } + let batchCount = 1 + let recordCount = 0 + const totalBatches = Math.ceil(batchData.length / createManyBatchSize) + const totalRecords = batchData.length + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const createMany = tx[batchName].createMany as (args: any) => Promise + while (batchData.length) { + const currentBatch = batchData.splice(0, createManyBatchSize) + log( + `[${batchCount}/${totalBatches}] Processing records ${recordCount + 1} to ${ + recordCount + currentBatch.length + } of ${totalRecords}` + ) + writeBatchDebug(currentBatch) + const result = await createMany({ data: currentBatch, skipDuplicates: true }) + const skipped = currentBatch.length - result.count + log( + `\t\t\tSubmitted: ${currentBatch.length}. Inserted: ${result.count}. Skipped: ${skipped}`, + 'write' + ) + + batchCount++ + recordCount += currentBatch.length + } + log( + `[${batchCount}/${totalBatches}] Batch "create/${batchName}" complete: Submitted: ${totalRecords}. Inserted: ${recordCount}. Skipped/Not Created: ${ + totalRecords - recordCount + }`, + 'create' + ) + } + }, + { + timeout: 720_000, + } + ) + for (const batchName of updateBatchNames) { + log(`Preparing update/${batchName}`) + if (!isValidPrismaModel(batchName)) { + log(`Error: ${batchName} is not a valid Prisma model`) + continue + } + const batchData = loadBatch('update', batchName) + if (!batchData) { + log(`Skipping batch update/${batchName}, no data.`) + continue + } + let batchCount = 1 + let recordCount = 0 + const totalBatches = Math.ceil(batchData.length / updateBatchSize) + const totalRecords = batchData.length + while (batchData.length) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const update = prisma[batchName].update as (args: any) => Prisma.PrismaPromise + const currentBatch = batchData.splice(0, updateBatchSize) + writeBatchDebug(currentBatch) + const batchedClients = currentBatch.map((args) => update(args)) + log( + `[${batchCount}/${totalBatches}] Processing records ${recordCount + 1} to ${ + recordCount + currentBatch.length + } of ${totalRecords}` + ) + const result = await prisma.$transaction(batchedClients) + log(`\t\t\tUpdated: ${result.length}.`, 'write') + + batchCount++ + recordCount += currentBatch.length + } + log( + `[${batchCount}/${totalBatches}] Batch "update/${batchName}" complete: Submitted: ${totalRecords}. Updated: ${recordCount}. Skipped/Not Created: ${ + totalRecords - recordCount + }`, + 'update' + ) + } + }, +} satisfies ListrJob diff --git a/packages/db/seed/recon/index.ts b/packages/db/seed/recon/index.ts index fbca8510cd..1bc51540cc 100644 --- a/packages/db/seed/recon/index.ts +++ b/packages/db/seed/recon/index.ts @@ -1,5 +1,6 @@ import { Listr, PRESET_TIMER } from 'listr2' +import { dbRun } from './dbRunner' import * as generators from './lib/generateDbMaps' import { attachLogger } from './lib/logger' import { type Context, type ListrJob } from './lib/types' @@ -15,6 +16,12 @@ const injectOptions = (job: ListrJob): ListrJob => ({ options: job.options ? { ...renderOptions, ...job.options } : renderOptions, }) +const skips = { + generators: true, + recon: false, + dbRun: true, +} as const + const jobs = new Listr( [ injectOptions({ @@ -24,9 +31,10 @@ const jobs = new Listr( task.output = 'Running generators...' return task.newListr(Object.values(generators).map((job) => injectOptions(job))) }, - skip: true, + skip: skips.generators, }), - injectOptions(orgRecon), + injectOptions({ ...orgRecon, skip: skips.recon }), + injectOptions({ ...dbRun, skip: skips.dbRun }), ], { rendererOptions: { diff --git a/packages/db/seed/recon/lib/generateDbMaps.ts b/packages/db/seed/recon/lib/generateDbMaps.ts index 75b6f1f228..aad2952455 100644 --- a/packages/db/seed/recon/lib/generateDbMaps.ts +++ b/packages/db/seed/recon/lib/generateDbMaps.ts @@ -147,7 +147,20 @@ export const generateServiceTagMap = { attachLogger(task) const tags = await prisma.serviceTag.findMany({ select: { id: true, tsKey: true } }) task.output = `Service Tags retrieved: ${tags.length}` - const serviceTagMap = new Map(tags.map((t) => [t.tsKey, t.id])) + const extraTags: [string, string][] = [ + ['mail', 'svtg_01GW2HHFBT91CV2R6WKEX6MYPE'], + ['computers-and-internet', 'svtg_01GW2HHFBN4B2F1W8HAWNK1HVS'], + ['education-and-employment.career-counselling', 'svtg_01GW2HHFBP8GY6D2YJ8N1GYTNH'], + ['food', 'svtg_01GW2HHFBP9CP8V4WGA1QCWVKQ'], + ['sports-and-entertainment', 'svtg_01GW2HHFBSYJJ8FRE5QRW4BQVR'], + ['translation-and-interpretation', 'svtg_01GW2HHFBSA32322K840DVFNSW'], + ] + task.output = `Adding ${extraTags.length} extra tags` + + const serviceTagMap = new Map([ + ...(tags.map((t) => [t.tsKey, t.id]) satisfies [string, string][]), + ...extraTags, + ]) writeSuperJSON('serviceTagMap', serviceTagMap) }, } satisfies ListrJob diff --git a/packages/db/seed/recon/lib/output.ts b/packages/db/seed/recon/lib/output.ts index 134293517f..1e0537229e 100644 --- a/packages/db/seed/recon/lib/output.ts +++ b/packages/db/seed/recon/lib/output.ts @@ -1,5 +1,5 @@ import superjson from 'superjson' -import { type LiteralUnion } from 'type-fest' +import { type CamelCasedProperties, type LiteralUnion } from 'type-fest' import fs from 'fs' import path from 'path' @@ -11,7 +11,7 @@ import { type PassedTask } from '~db/seed/recon/lib/types' const outputDir = path.resolve(__dirname, '../output') const createDir = path.resolve(outputDir, 'create') const updateDir = path.resolve(outputDir, 'update') -const deleteDir = path.resolve(outputDir, 'delete') + const execptionDir = path.resolve(outputDir, 'exceptions') export const getBatchFile: GetBatchFile = ({ type, batchName }) => { @@ -22,14 +22,15 @@ export const getBatchFile: GetBatchFile = ({ type, batchName }) => { case 'update': { return `${updateDir}/${batchName}.json` } - case 'delete': { - return `${deleteDir}/${batchName}.json` - } case 'exceptions': { return `${execptionDir}/${batchName}.json` } } } + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type RecordSet = CamelCasedProperties<{ [key in Prisma.ModelName]?: Set }> + export const create = { organization: new Set(), translationKey: new Set(), @@ -45,7 +46,6 @@ export const create = { orgPhoto: new Set(), orgHours: new Set(), orgService: new Set(), - attributeSupplement: new Set(), orgServicePhone: new Set(), orgServiceEmail: new Set(), orgLocationService: new Set(), @@ -61,9 +61,11 @@ export const create = { organizationPermission: new Set(), organizationEmail: new Set(), organizationPhone: new Set(), + attributeSupplement: new Set(), slugRedirect: new Set(), auditLog: new Set(), -} +} as const +export const createBatchNames = Object.keys(create) as (keyof typeof create)[] export const update = { organization: new Set(), @@ -79,11 +81,25 @@ export const update = { organizationAttribute: new Set(), serviceArea: new Set(), serviceAccessAttribute: new Set(), -} - -export const deleteRecord = { - organizationAttribute: new Set(), -} + serviceAttribute: new Set(), + orgServiceTag: new Set(), + orgServiceEmail: new Set(), + orgLocationService: new Set(), + orgServicePhone: new Set(), +} as const +export const updateBatchNames = Object.keys(update) as (keyof typeof update)[] +export type CreateBatchNames = keyof typeof create +export type UpdateBatchNames = keyof typeof update +export type BatchData< + T extends 'create' | 'update', + K extends T extends 'create' ? CreateBatchNames : UpdateBatchNames +> = T extends 'create' + ? K extends CreateBatchNames + ? (typeof create)[K] + : never + : K extends UpdateBatchNames + ? (typeof update)[K] + : never export const crowdin = { create: new Set<{ text: string; key: string }>(), @@ -95,11 +111,13 @@ interface ExceptionItem { organizationId: string record: unknown existing?: unknown + [k: string]: unknown } export const exceptions = { phone: new Set(), location: new Set(), socialMedia: new Set(), + serviceTag: new Set(), } export const batchCount = new Map() export const writeBatches = (task: PassedTask, clear = false) => { @@ -163,36 +181,7 @@ export const writeBatches = (task: PassedTask, clear = false) => { update[batchName].clear() } } - // Deletions - for (const batchName in deleteRecord) { - const batch = deleteRecord[batchName] - const batchFile = getBatchFile({ type: 'delete', batchName }) - if (clear) { - if (fs.existsSync(batchFile)) { - fs.rmSync(batchFile) - task.output = formatMessage(`Deleting file: ${batchFile}`, 'trash') - } - } else { - if (!batch.size) { - task.output = formatMessage(`Skipping empty batch: ${batchName}`, 'skip') - continue - } - const currentCount = batchCount.get(`delete.${batchName}`) ?? 0 - const currentBatchCount = batch.size - const existingBatch = fs.existsSync(batchFile) - ? superjson.parse>(fs.readFileSync(batchFile, 'utf-8')) - : [] - const outputData = new Set([...existingBatch, ...batch]) - fs.writeFileSync(batchFile, superjson.stringify(outputData)) - batchCount.set(`delete.${batchName}`, currentCount + currentBatchCount) - task.output = formatMessage( - `Records added to delete/${batchName}.json: ${currentBatchCount} (Total records in file: ${outputData.size})`, - 'write', - true - ) - deleteRecord[batchName].clear() - } - } + // Exceptions for (const batchName in exceptions) { const batch = exceptions[batchName] @@ -305,15 +294,10 @@ interface GetUpdateParams { type: 'update' batchName: LiteralUnion } -interface GetDeleteParams { - type: 'delete' - batchName: LiteralUnion -} + interface GetExceptionsParams { type: 'exceptions' batchName: LiteralUnion } -type GetBatchFile = ( - params: GetCreateParams | GetUpdateParams | GetDeleteParams | GetExceptionsParams -) => string +type GetBatchFile = (params: GetCreateParams | GetUpdateParams | GetExceptionsParams) => string diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 5672e4f2f5..1eb25c2b70 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -1,6 +1,8 @@ /* eslint-disable node/no-process-env */ import { geojsonToWKT } from '@terraformer/wkt' +import { flatten } from 'flat' import { getDiff } from 'json-difference' +import compact from 'just-compact' import mapObj from 'just-deep-map-values' import { diff } from 'just-diff' import { diffApply } from 'just-diff-apply' @@ -20,7 +22,7 @@ import { prisma, type Prisma } from '~db/client' import { namespace } from '~db/generated/namespaces' import { createPoint } from '~db/lib/createPoint' import { generateId } from '~db/lib/idGen' -import { slugUpdate } from '~db/lib/slugGen' +import { slug, slugUpdate } from '~db/lib/slugGen' import { InputJsonValue } from '~db/lib/zod' import { type AccessInstruction as LegacyAccessInstruction, @@ -29,14 +31,13 @@ import { import { needsUpdate } from '~db/seed/recon/lib/compare' import { attribsToNotDelete, - dataCorrections, existing, getCountryId, getGovDistId, legacyAccessMap, } from '~db/seed/recon/lib/existing' -import { attachLogger, formatMessage } from '~db/seed/recon/lib/logger' -import { create, crowdin, deleteRecord, exceptions, update, writeBatches } from '~db/seed/recon/lib/output' +import { attachLogger, formatMessage, isSuccess } from '~db/seed/recon/lib/logger' +import { create, crowdin, exceptions, update, writeBatches } from '~db/seed/recon/lib/output' import { generateFreeTextKey } from '~db/seed/recon/lib/translations' import { type ListrJob } from '~db/seed/recon/lib/types' import { conditionalObj, emptyStrToNull, isSuperJSON, raise, trimSpaces } from '~db/seed/recon/lib/utils' @@ -53,7 +54,6 @@ const filterUndefinedOrNull = >(obj: PlainObje filterObject(obj, (_k, v) => v !== undefined && v !== null) export const orgRecon = { title: 'Reconcile Organizations', - // skip: true, options: { bottomBar: false }, task: async (_ctx, task) => { attachLogger(task) @@ -159,7 +159,7 @@ export const orgRecon = { // #region Organization basics const existingOrgRecord = await prisma.organization.findUniqueOrThrow({ where: { id: organizationId }, - include: { description: { include: { tsKey: true } } }, + include: { description: { include: { tsKey: true } }, allowedEditors: true, associatedUsers: true }, }) const updateOrgRecord: Prisma.OrganizationUpdateArgs = { where: { id: organizationId }, @@ -205,7 +205,11 @@ export const orgRecon = { genAuditUpdate( { text: existingOrgRecord.description.tsKey.text }, { text: trimSpaces(org.description) }, - { translationKey: existingOrgRecord.description.key, translationNs: namespace.orgData } + { + translationKey: existingOrgRecord.description.key, + translationNs: namespace.orgData, + freeTextId: existingOrgRecord.description.id, + } ) } if (needsUpdate(existingOrgRecord.deleted, org.is_deleted)) { @@ -601,7 +605,7 @@ export const orgRecon = { log(`Marking ${deletedPhones.length} Phone records as deleted`, 'trash') for (const phone of deletedPhones) { log(`Marking phone ${phone.number} as deleted`, undefined, true) - update.orgPhone.add({ where: { id: phone.id }, data: { deleted: true } }) + update.orgPhone.add({ where: { id: phone.id }, data: { deleted: true, updatedAt } }) genAuditUpdate({ deleted: false }, { deleted: true }, { orgPhoneId: phone.id }) } } @@ -691,8 +695,8 @@ export const orgRecon = { log(`Adding description: ${phone.phone_type}`, 'create', true) const id = generateId('freeText') const { key, ns, text } = freeText - create.translationKey.add({ key, ns, text }) - create.freeText.add({ id, key, ns }) + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + create.freeText.add({ id, key, ns, createdAt, updatedAt }) crowdin.create.add({ key, text }) updateRecord.data.description = { connect: { id } } genAuditCreate( @@ -705,7 +709,7 @@ export const orgRecon = { const { key, ns } = existingRecord.description update.translationKey.add({ where: { ns_key: { ns, key } }, - data: { text: trimSpaces(phone.phone_type) }, + data: { text: trimSpaces(phone.phone_type), updatedAt }, }) genAuditUpdate( { text: existingRecord.description.tsKey.text }, @@ -779,8 +783,8 @@ export const orgRecon = { log(`Adding description: ${phone.phone_type}`, 'create', true) const id = generateId('freeText') const { key, ns, text } = freeText - create.translationKey.add({ key, ns, text }) - create.freeText.add({ id, key, ns }) + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + create.freeText.add({ id, key, ns, createdAt, updatedAt }) crowdin.create.add({ key, text }) newPhone.descriptionId = id newPhone.legacyDesc = phone.phone_type @@ -973,7 +977,7 @@ export const orgRecon = { log(`Marking ${photo.id} as deleted`, 'trash', true) const deleteRecord: Prisma.OrgPhotoUpdateArgs = { where: { id: photo.id }, - data: { deleted: true }, + data: { deleted: true, updatedAt }, } update.orgPhoto.add(deleteRecord) genAuditUpdate(photo, deleteRecord.data, { orgPhotoId: photo.id }) @@ -1175,6 +1179,8 @@ export const orgRecon = { }), createdAt, updatedAt, + organizationAttributeAttributeId: existing.attributeId, + organizationAttributeOrganizationId: organizationId, } if (text) { logAddition('freeText', text) @@ -1277,6 +1283,7 @@ export const orgRecon = { genAuditLink({ attributeId, organizationId }) for (const supplement of attributeSupplement) { + supplement.id = generateId('attributeSupplement') if (supplement.text) { const { key, ns, text } = generateFreeTextKey({ @@ -1297,7 +1304,13 @@ export const orgRecon = { } } logAddition('attributeSupplement', supplement) - create.attributeSupplement.add(supplement) + create.attributeSupplement.add({ + ...supplement, + organizationAttributeAttributeId: attributeId, + organizationAttributeOrganizationId: organizationId, + createdAt, + updatedAt, + }) } } } @@ -1359,6 +1372,7 @@ export const orgRecon = { update.serviceArea.add({ where: { id: existingServArea.id }, data: { + updatedAt, ...conditionalObj(changes.del.districts.length || changes.add.districts.length, { districts: { ...conditionalObj(changes.del.districts.length, { @@ -1435,6 +1449,10 @@ export const orgRecon = { accessDetails: { include: { attribute: true, supplement: { include: { text: { include: { tsKey: true } } } } }, }, + services: true, + emails: true, + phones: true, + locations: true, }, }) @@ -1445,7 +1463,7 @@ export const orgRecon = { undefined, true ) - + const orgServiceId = existingRecord.id const updatedRecord: Prisma.OrgServiceUpdateArgs = { where: { id: existingRecord.id }, data: {}, @@ -1478,7 +1496,7 @@ export const orgRecon = { where: { ns_key: { ns, key }, }, - data: { text: trimSpaces(service.name) }, + data: { text: trimSpaces(service.name), updatedAt }, }) genAuditUpdate( { text: existingRecord.serviceName.tsKey.text }, @@ -1504,7 +1522,7 @@ export const orgRecon = { where: { ns_key: { ns, key }, }, - data: { text: trimSpaces(service.description) }, + data: { text: trimSpaces(service.description), updatedAt }, }) genAuditUpdate( { text: existingRecord.description.tsKey.text }, @@ -1606,7 +1624,7 @@ export const orgRecon = { logUpdate('text', existingItem.text?.tsKey.text, newText) update.translationKey.add({ where: { ns_key: { key, ns } }, - data: { text: newText, createdAt, updatedAt }, + data: { text: newText, updatedAt }, }) } @@ -1674,14 +1692,853 @@ export const orgRecon = { }) } // #endregion - } + // #region Attributes + if (!service.properties || !Object.keys(service.properties).length) { + log('SKIPPING Service Attributes records, no entries', 'skip') + } else { + log( + `Processing ${Object.keys(service.properties).length} Service Attribute records`, + 'generate' + ) + let attributesCount = 1 + const attributesSkip = 0 + const unsupportedAttributes: Record[] = [] + const { id: unsupportedId } = + existing.attribute.get('sys.incompatible-info') ?? raise(`Cannot find 'incompatible' id`) + const existingAttributes = await prisma.serviceAttribute.findMany({ + where: { orgServiceId }, + include: { supplement: { include: { text: { include: { tsKey: true } } } } }, + }) + const existingServArea = await prisma.serviceArea.findUnique({ + where: { orgServiceId }, + include: { countries: true, districts: true }, + }) + const servAttrib: Record = {} + const serviceArea: ServArea = { countries: [], districts: [] } + for (const [tag, rawValue] of Object.entries(service.properties)) { + log( + `Processing Tag: ${tag} [${attributesCount + attributesSkip}/${ + Object.keys(service.properties).length + }]`, + 'generate' + ) + const value = + typeof rawValue === 'string' + ? rawValue + : Array.isArray(rawValue) + ? rawValue.join() + : rawValue.toString() + const tagRecord = tagParser(tag, value) + + switch (tagRecord.type) { + case 'unknown': { + log( + `Unsupported Attribute: ${Object.keys(tagRecord.supplementData).join()}`, + undefined, + true + ) + unsupportedAttributes.push(tagRecord.supplementData) + break + } + case 'attribute': { + const attribId = tagRecord.attributeId ?? raise('missing attributeId') + if (tagRecord.supplementData?.data) + tagRecord.supplementData.data = superjson.stringify(tagRecord.supplementData.data) + if (Object.hasOwn(servAttrib, attribId) && tagRecord.supplementData) { + servAttrib[attribId]?.push(tagRecord.supplementData) + } else { + servAttrib[attribId] = tagRecord.supplementData ? [tagRecord.supplementData] : [] + } + break + } + case 'serviceArea': { + if (tagRecord.supplementData?.countryId) + serviceArea.countries.push(tagRecord.supplementData.countryId) + if (tagRecord.supplementData?.govDistId) + serviceArea.districts.push(tagRecord.supplementData.govDistId) + break + } + } + attributesCount++ + } + if (unsupportedAttributes.length) { + servAttrib[unsupportedId] = [ + { + data: superjson.stringify(unsupportedAttributes), + }, + ] + } + for (const [attributeId, attributeSupplement] of Object.entries(servAttrib)) { + const existingIdx = existingAttributes.findIndex(({ attributeId: id }) => id === attributeId) + if (existingIdx !== -1) { + const existing = + existingAttributes.splice(existingIdx, 1)[0] ?? raise('Unable to get record') + const existingSupplements = existing.supplement.map( + ({ boolean, countryId, govDistId, languageId, data, text, id }) => + filterObject( + { + id, + boolean, + countryId, + govDistId, + languageId, + data: data + ? superjson.stringify(superjson.deserialize(data as unknown as SuperJSONResult)) + : undefined, + text: text?.tsKey.text, + }, + (k, v) => Boolean(v) + ) + ) + + const sortedExisting = sortArray( + existingSupplements.map(({ id, ...data }) => data), + (data) => Object.entries(data).forEach(([k, v]) => v) + ) + const sortedUpdates = sortArray(attributeSupplement, ({ id, ...data }) => + Object.entries(data).forEach(([k, v]) => v) + ) + const changes = diff(sortedExisting, sortedUpdates) + if (changes.length) { + const diff = getDiff( + existingSupplements.map(({ id, ...data }) => data), + attributeSupplement + ) + const updated = diffApply(existingSupplements, changes) + + const pendingUpdates = generateSupplementTxn(updated, changes) + // #region Process Supplement Changes + const processChanges = (txn: AttrSupplementChange) => { + if (!txn.where.id) { + logAddition(`attribute ${existing.attributeId}`, 'attributeSupplement') + const { data, text, ...rest } = txn.data + const newSupplement: Prisma.AttributeSupplementCreateManyInput = { + id: generateId('attributeSupplement'), + ...rest, + ...conditionalObj(data, { + data: JsonInputOrNull.parse( + superjson.serialize(typeof data === 'string' ? superjson.parse(data) : data) + ), + }), + createdAt, + updatedAt, + serviceAttributeAttributeId: existing.attributeId, + serviceAttributeOrgServiceId: orgServiceId, + } + if (text) { + logAddition('freeText', text) + const { key, ns } = + generateFreeTextKey({ + orgId: organizationId, + text, + type: 'supplement', + itemId: newSupplement.id, + }) ?? {} + if (key && ns) { + const id = generateId('freeText') + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + create.freeText.add({ id, key, ns, updatedAt, createdAt }) + crowdin.create.add({ key, text }) + txn.data.textId = id + } + } + create.attributeSupplement.add(newSupplement) + genAuditCreate(newSupplement, { + attributeSupplementId: newSupplement.id, + orgServiceId, + }) + } else { + const existingSupp = + existing.supplement.find(({ id }) => id === txn.where.id) ?? + raise('Cannot locate record') + if (txn.data.text) { + // update TranslationKey record + const { key, ns, text: oldText, crowdinId } = existingSupp.text?.tsKey ?? {} + const { text } = txn.data + if (key && ns) { + logUpdate('text', oldText, text) + update.translationKey.add({ + where: { ns_key: { ns, key } }, + data: { text, updatedAt }, + }) + if (crowdinId) crowdin.update.add({ id: crowdinId, text }) + genAuditUpdate( + { text: oldText }, + { text, updatedAt }, + { translationKey: key, translationNs: ns, attributeSupplementId: txn.where.id } + ) + } else { + logAddition('freeText', text) + const { key, ns } = + generateFreeTextKey({ + orgId: organizationId, + text, + type: 'supplement', + itemId: txn.where.id, + }) ?? {} + if (key && ns) { + const id = generateId('freeText') + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + create.freeText.add({ id, key, ns, updatedAt, createdAt }) + crowdin.create.add({ key, text }) + txn.data.textId = id + } + } + } + const { text: _, data, ...rest } = txn.data + // if (existingOrgRecord.name === 'North East Medical Services') debugger + + const updatedRecord: Prisma.AttributeSupplementUpdateArgs = { + where: { id: txn.where.id }, + data: { + ...conditionalObj(data, { + data: JsonInputOrNull.parse( + superjson.serialize(typeof data === 'string' ? superjson.parse(data) : data) + ), + }), + ...rest, + updatedAt, + }, + } + update.attributeSupplement.add(updatedRecord) + const { text: _origText, ...originalRecord } = existingSupp + const filteredOriginal = pick( + originalRecord, + Object.keys(updatedRecord.data) as unknown as keyof typeof originalRecord + ) + logUpdate( + updatedRecord.where?.id ?? 'attributeSupplement', + omit(filteredOriginal, 'updatedAt'), + omit(updatedRecord.data, 'updatedAt') + ) + genAuditUpdate(filteredOriginal, updatedRecord.data, { + attributeSupplementId: updatedRecord.where.id, + }) + } + } + // #endregion + + if (Array.isArray(pendingUpdates)) { + for (const item of pendingUpdates) { + processChanges(item) + } + } else { + processChanges(pendingUpdates) + } + } + // debugger + } else { + logAddition('serviceAttribute', attributeId) + create.serviceAttribute.add({ attributeId, orgServiceId }) + genAuditLink({ attributeId, organizationId, orgServiceId }) + + for (const supplement of attributeSupplement) { + supplement.id = generateId('attributeSupplement') + if (supplement.text) { + const { key, ns, text } = + generateFreeTextKey({ + orgId: organizationId, + text: supplement.text, + type: 'supplement', + itemId: supplement.id, + }) ?? {} + if (key && ns && text) { + logAddition('translationKey', { key, ns, text, updatedAt, createdAt }) + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + logAddition('freeText', supplement.text) + const textId = generateId('freeText') + create.freeText.add({ id: textId, key, ns, updatedAt, createdAt }) + crowdin.create.add({ key, text }) + supplement.textId = textId + delete supplement.text + } + } + logAddition('attributeSupplement', supplement) + create.attributeSupplement.add({ + ...supplement, + createdAt, + updatedAt, + serviceAttributeAttributeId: attributeId, + serviceAttributeOrgServiceId: orgServiceId, + }) + } + } + } + if (existingAttributes.length) { + log( + `Reviewing ${existingAttributes.length} existing attributes for possible deactivation`, + undefined, + true + ) + for (const record of existingAttributes) { + log(`Processing ${record.attributeId}`, undefined, true) + const { attributeId } = record + if (!attribsToNotDelete.has(attributeId)) { + logUpdate('active', 'true', 'false') + update.serviceAttribute.add({ + where: { orgServiceId_attributeId: { attributeId, orgServiceId } }, + data: { active: false }, + }) + genAuditUpdate({ active: true }, { active: false }, { orgServiceId, attributeId }) + } + } + } + + if (serviceArea.countries.length || serviceArea.districts.length) { + if (existingServArea) { + const current = { + countries: existingServArea.countries.map(({ countryId }) => countryId), + districts: existingServArea.districts.map(({ govDistId }) => govDistId), + } + + const changes: { add: ServArea; del: ServArea } = { + add: { countries: [], districts: [] }, + del: { countries: [], districts: [] }, + } + let hasChanges = false + + for (const key of Object.keys(serviceArea)) { + for (const id of serviceArea[key]) { + if (!current[key].includes(id)) { + changes.add[key].push(id) + hasChanges = true + } + } + } + for (const key of Object.keys(current)) { + for (const id of current[key]) { + if (!serviceArea[key].includes(id)) { + changes.del[key].push(id) + hasChanges = true + } + } + } + if (hasChanges) { + logUpdate( + 'serviceArea', + { govDistId: current.districts, countryId: current.countries }, + { ...serviceArea } + ) + update.serviceArea.add({ + where: { id: existingServArea.id }, + data: { + updatedAt, + ...conditionalObj(changes.del.districts.length || changes.add.districts.length, { + districts: { + ...conditionalObj(changes.del.districts.length, { + deleteMany: { govDistId: { in: changes.del.districts } }, + }), + ...conditionalObj(changes.add.districts.length, { + createMany: { + data: changes.add.districts.map((govDistId) => ({ govDistId })), + skipDuplicates: true, + }, + }), + }, + }), + ...conditionalObj(changes.del.countries.length || changes.add.countries.length, { + countries: { + ...conditionalObj(changes.del.countries.length, { + deleteMany: { countryId: { in: changes.del.countries } }, + }), + ...conditionalObj(changes.add.countries.length, { + createMany: { + data: changes.add.countries.map((countryId) => ({ countryId })), + skipDuplicates: true, + }, + }), + }, + }), + }, + }) + } + genAuditUpdate( + existingServArea, + { ...serviceArea }, + { serviceAreaId: existingServArea.id, orgServiceId } + ) + } else { + logAddition('serviceArea', { ...serviceArea }) + const id = generateId('serviceArea') + create.serviceArea.add({ id, createdAt, updatedAt, orgServiceId }) + genAuditCreate( + { ...serviceArea, createdAt, updatedAt }, + { serviceAreaId: id, orgServiceId } + ) + serviceArea.countries.forEach((countryId) => { + logAddition('serviceAreaCountry', countryId) + const record = { countryId, serviceAreaId: id, linkedAt: updatedAt } + create.serviceAreaCountry.add(record) + genAuditLink({ countryId, serviceAreaId: id, orgServiceId }) + }) + serviceArea.districts.forEach((govDistId) => { + logAddition('serviceAreaDists', govDistId) + const record = { govDistId, serviceAreaId: id, linkedAt: updatedAt } + create.serviceAreaDist.add(record) + genAuditLink({ govDistId, serviceAreaId: id, orgServiceId }) + }) + } + } + } + + // #endregion + // #region Service Tags + if (!service.tags || !Object.keys(service.tags).length) { + log(`SKIPPING Service Tag records for ${service.name}: No tags`, 'skip') + } else { + let counter = 1 + const flatTags = flatten(service.tags, { + transformKey: (k) => (['united_states', 'canada', 'mexico'].includes(k) ? '' : slug(k)), + }) as Record + + for (const tag of Object.keys(flatTags)) { + const tagId = existing.serviceTag.get(tag) // ?? raise('Cannot locate service tag') + if (!tagId) { + exceptions.serviceTag.add({ + organizationId, + record: { id: existingRecord.id }, + legacyTag: tag, + }) + continue + } + log(`[${counter}/${Object.keys(flatTags).length}] Processing ${tag}`, undefined, true) + if (!existingRecord.services.some(({ tagId: existingTagId }) => existingTagId === tagId)) { + logAddition('orgServiceTag', tagId) + create.orgServiceTag.add({ tagId, serviceId: orgServiceId }) + genAuditLink({ serviceTagId: tagId, organizationId, orgServiceId }) + } + counter++ + } + const activeTags = compact(Object.keys(flatTags).map((k) => existing.serviceTag.get(k))) + for (const { tagId: existingTagId } of existingRecord.services) { + if (!activeTags.includes(existingTagId)) { + log(`Deactivating ${existingTagId}`, undefined, true) + update.orgServiceTag.add({ + where: { serviceId_tagId: { serviceId: orgServiceId, tagId: existingTagId } }, + data: { active: false }, + }) + } + } + } + + // #endregion + // #region Linked Records + // #region Linked Emails + if (service.email_id || existingRecord.emails.length) { + const linkedEmail = existing.emailId.get(service.email_id ?? '') + if ( + linkedEmail && + !existingRecord.emails.some(({ orgEmailId }) => orgEmailId === linkedEmail) + ) { + log(`Linking ${service.email_id} to ${existingRecord.id}`, 'link', true) + create.orgServiceEmail.add({ orgEmailId: linkedEmail, serviceId: orgServiceId }) + genAuditLink({ orgEmailId: linkedEmail, organizationId, orgServiceId }) + // } else if (!linkedEmail && existingRecord.emails.length) { + // existingRecord.emails.forEach(({ orgEmailId, serviceId }) => { + // log(`Unlinking ${orgEmailId} from ${serviceId}`, 'unlink', true) + // update.orgServiceEmail.add({ + // where: { orgEmailId_serviceId: { orgEmailId, serviceId } }, + // data: { active: false }, + // }) + // }) + } + } + // #endregion + // #region Linked Locations + if (service.location_id || existingRecord.locations.length) { + const linkedLocation = existing.locationId.get(service.location_id ?? '') + if ( + linkedLocation && + !existingRecord.locations.some(({ orgLocationId }) => orgLocationId === linkedLocation) + ) { + log(`Linking ${service.location_id} to ${existingRecord.id}`, 'link', true) + create.orgLocationService.add({ orgLocationId: linkedLocation, serviceId: orgServiceId }) + genAuditLink({ orgLocationId: linkedLocation, organizationId, orgServiceId }) + // } else if (!linkedLocation && existingRecord.locations.length) { + // existingRecord.locations.forEach(({ orgLocationId, serviceId }) => { + // log(`Unlinking ${orgLocationId} from ${serviceId}`, 'unlink', true) + // update.orgLocationService.add({ + // where: { orgLocationId_serviceId: { orgLocationId, serviceId } }, + // data: { active: false }, + // }) + // }) + } + } + // #endregion + // #region Linked Phones + if (service.phone_id || existingRecord.phones.length) { + const linkedPhone = existing.phoneId.get(service.phone_id ?? '') + if ( + linkedPhone && + !existingRecord.phones.some(({ orgPhoneId }) => orgPhoneId === linkedPhone) + ) { + log(`Linking ${service.phone_id} to ${existingRecord.id}`, 'link', true) + create.orgServicePhone.add({ orgPhoneId: linkedPhone, serviceId: orgServiceId }) + genAuditLink({ orgPhoneId: linkedPhone, organizationId, orgServiceId }) + // } else if (!linkedPhone && existingRecord.emails.length) { + // existingRecord.phones.forEach(({ orgPhoneId, serviceId }) => { + // log(`Unlinking ${orgPhoneId} from ${serviceId}`, 'unlink', true) + // update.orgServicePhone.add({ + // where: { orgPhoneId_serviceId: { orgPhoneId, serviceId } }, + // data: { active: false }, + // }) + // }) + } + } + // #endregion + // #endregion + } else { + // #region Create new service + // #region Basic Info + log(`Creating Service ${service.name}`, 'create', true) + const newService: Prisma.OrgServiceCreateManyInput = { + id: generateId('orgService'), + deleted: service.is_deleted, + published: service.is_published, + createdAt, + updatedAt, + } + const orgServiceId = newService.id ?? raise('Missing new service id!') + if (service.name) { + const { key, ns, text } = + generateFreeTextKey({ + orgId: organizationId, + itemId: newService.id, + text: service.name, + type: 'name', + }) ?? {} + if (key && ns && text) { + logAddition('translationKey', { key, ns, text }) + create.translationKey.add({ key, ns, text, updatedAt, createdAt }) + logAddition('freeText', service.name) + const textId = generateId('freeText') + create.freeText.add({ id: textId, key, ns, updatedAt, createdAt }) + crowdin.create.add({ key, text }) + newService.serviceNameId = textId + newService.legacyName = service.name + } + } + if (service.description) { + const { key, ns, text } = + generateFreeTextKey({ + orgId: organizationId, + itemId: newService.id, + text: service.description, + type: 'description', + }) ?? {} + if (key && ns && text) { + logAddition('translationKey', { key, ns, text }) + create.translationKey.add({ key, ns, text, updatedAt, createdAt }) + logAddition('freeText', service.description) + const textId = generateId('freeText') + create.freeText.add({ id: textId, key, ns, updatedAt, createdAt }) + crowdin.create.add({ key, text }) + newService.descriptionId = textId + } + } + create.orgService.add(newService) + genAuditCreate(newService, { orgServiceId: newService.id }) + // #endregion + // #region Access Instructions + if (service.access_instructions.length) { + log( + `Processing ${service.access_instructions.length} access instruction records`, + 'generate', + true + ) + const servAccessToAdd: Record = {} + for (const access of service.access_instructions) { + const accessType = legacyAccessMap.get(access.access_type ?? '') + if (!accessType) { + log(`SKIPPING - Unknown access type: ${access.access_type}`, 'skip', true) + continue + } + Array.isArray(servAccessToAdd[accessType]) + ? servAccessToAdd[accessType]?.push(access) + : (servAccessToAdd[accessType] = [access]) + } + for (const [accessTypeId, supps] of Object.entries(servAccessToAdd)) { + log( + `Creating ${supps.length} missing records for access type: ${accessTypeId}`, + 'create', + true + ) + supps.forEach((record) => { + const newRecord: Prisma.AttributeSupplementCreateManyInput = { + id: generateId('attributeSupplement'), + serviceAccessAttributeAttributeId: accessTypeId, + serviceAccessAttributeServiceId: newService.id, + createdAt, + updatedAt, + } + if (record.instructions && record.instructions !== '') { + const { key, ns, text } = + generateFreeTextKey({ + orgId: organizationId, + text: record.instructions, + type: 'access', + itemId: newRecord.id, + }) ?? {} + if (key && ns && text) { + const id = generateId('freeText') + crowdin.create.add({ key, text }) + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + create.freeText.add({ id, key, ns, createdAt, updatedAt }) + newRecord.textId = id + } + } + newRecord.data = JsonInputOrNull.parse(superjson.serialize(record)) + create.attributeSupplement.add(newRecord) + create.serviceAccessAttribute.add({ + serviceId: newService.id ?? raise('Missing new service id!'), + attributeId: accessTypeId, + }) + }) + } + } + // #endregion + // #region Attributes & Service Areas + if (service.properties && Object.keys(service.properties).length) { + log( + `Processing ${Object.keys(service.properties).length} Service Attribute records`, + 'generate' + ) + let attributesCount = 1 + const attributesSkip = 0 + const unsupportedAttributes: Record[] = [] + const { id: unsupportedId } = + existing.attribute.get('sys.incompatible-info') ?? raise(`Cannot find 'incompatible' id`) + const servAttrib: Record = {} + const serviceArea: ServArea = { countries: [], districts: [] } + for (const [tag, rawValue] of Object.entries(service.properties)) { + log( + `Processing Tag: ${tag} [${attributesCount + attributesSkip}/${ + Object.keys(service.properties).length + }]`, + 'generate' + ) + const value = + typeof rawValue === 'string' + ? rawValue + : Array.isArray(rawValue) + ? rawValue.join() + : rawValue.toString() + const tagRecord = tagParser(tag, value) + + switch (tagRecord.type) { + case 'unknown': { + log( + `Unsupported Attribute: ${Object.keys(tagRecord.supplementData).join()}`, + undefined, + true + ) + unsupportedAttributes.push(tagRecord.supplementData) + break + } + case 'attribute': { + const attribId = tagRecord.attributeId ?? raise('missing attributeId') + if (tagRecord.supplementData?.data) + tagRecord.supplementData.data = superjson.stringify(tagRecord.supplementData.data) + if (Object.hasOwn(servAttrib, attribId) && tagRecord.supplementData) { + servAttrib[attribId]?.push(tagRecord.supplementData) + } else { + servAttrib[attribId] = tagRecord.supplementData ? [tagRecord.supplementData] : [] + } + break + } + case 'serviceArea': { + if (tagRecord.supplementData?.countryId) + serviceArea.countries.push(tagRecord.supplementData.countryId) + if (tagRecord.supplementData?.govDistId) + serviceArea.districts.push(tagRecord.supplementData.govDistId) + break + } + } + attributesCount++ + } + if (unsupportedAttributes.length) { + servAttrib[unsupportedId] = [ + { + data: superjson.stringify(unsupportedAttributes), + }, + ] + } + for (const [attributeId, attributeSupplement] of Object.entries(servAttrib)) { + logAddition('serviceAttribute', attributeId) + create.serviceAttribute.add({ attributeId, orgServiceId }) + genAuditLink({ attributeId, organizationId, orgServiceId }) + for (const supplement of attributeSupplement) { + supplement.id = generateId('attributeSupplement') + if (supplement.text) { + const { key, ns, text } = + generateFreeTextKey({ + orgId: organizationId, + text: supplement.text, + type: 'supplement', + itemId: supplement.id, + }) ?? {} + if (key && ns && text) { + logAddition('translationKey', { key, ns, text, updatedAt, createdAt }) + create.translationKey.add({ key, ns, text, createdAt, updatedAt }) + logAddition('freeText', supplement.text) + const textId = generateId('freeText') + create.freeText.add({ id: textId, key, ns, updatedAt, createdAt }) + crowdin.create.add({ key, text }) + supplement.textId = textId + delete supplement.text + } + } + logAddition('attributeSupplement', supplement) + create.attributeSupplement.add({ + ...supplement, + createdAt, + updatedAt, + serviceAttributeAttributeId: attributeId, + serviceAttributeOrgServiceId: orgServiceId, + }) + } + } + if (serviceArea.countries.length || serviceArea.districts.length) { + logAddition('serviceArea', { ...serviceArea }) + const id = generateId('serviceArea') + create.serviceArea.add({ id, createdAt, updatedAt, orgServiceId }) + genAuditCreate({ ...serviceArea, createdAt, updatedAt }, { serviceAreaId: id, orgServiceId }) + serviceArea.countries.forEach((countryId) => { + logAddition('serviceAreaCountry', countryId) + const record = { countryId, serviceAreaId: id, linkedAt: updatedAt } + create.serviceAreaCountry.add(record) + genAuditLink({ countryId, serviceAreaId: id, orgServiceId }) + }) + serviceArea.districts.forEach((govDistId) => { + logAddition('serviceAreaDists', govDistId) + const record = { govDistId, serviceAreaId: id, linkedAt: updatedAt } + create.serviceAreaDist.add(record) + genAuditLink({ govDistId, serviceAreaId: id, orgServiceId }) + }) + } + } + // #endregion + // #region Service Tags + if (service.tags && Object.keys(service.tags).length) { + let counter = 1 + const flatTags = flatten(service.tags, { + transformKey: (k) => (['united_states', 'canada', 'mexico'].includes(k) ? '' : slug(k)), + }) as Record + for (const tag of Object.keys(flatTags)) { + const tagId = existing.serviceTag.get(tag) + if (!tagId) { + exceptions.serviceTag.add({ + organizationId, + record: { id: orgServiceId }, + legacyTag: tag, + }) + continue + } + log(`[${counter}/${Object.keys(flatTags).length}] Processing ${tag}`, undefined, true) + logAddition('orgServiceTag', tagId) + create.orgServiceTag.add({ tagId, serviceId: orgServiceId }) + genAuditLink({ serviceTagId: tagId, organizationId, orgServiceId }) + counter++ + } + } + // #endregion + // #region Linked Records + // #region Linked Emails + if (service.email_id) { + const linkedEmail = existing.emailId.get(service.email_id ?? '') + if (linkedEmail) { + log(`Linking ${service.email_id} to ${orgServiceId}`, 'link', true) + create.orgServiceEmail.add({ orgEmailId: linkedEmail, serviceId: orgServiceId }) + genAuditLink({ orgEmailId: linkedEmail, organizationId, orgServiceId }) + } + } + // #endregion + // #region Linked Locations + if (service.location_id) { + const linkedLocation = existing.locationId.get(service.location_id ?? '') + if (linkedLocation) { + log(`Linking ${service.location_id} to ${orgServiceId}`, 'link', true) + create.orgLocationService.add({ orgLocationId: linkedLocation, serviceId: orgServiceId }) + genAuditLink({ orgLocationId: linkedLocation, organizationId, orgServiceId }) + } + } + // #endregion + // #region Linked Phones + if (service.phone_id) { + const linkedPhone = existing.phoneId.get(service.phone_id ?? '') + if (linkedPhone) { + log(`Linking ${service.phone_id} to ${orgServiceId}`, 'link', true) + create.orgServicePhone.add({ orgPhoneId: linkedPhone, serviceId: orgServiceId }) + genAuditLink({ orgPhoneId: linkedPhone, organizationId, orgServiceId }) + } + } + + // #endregion + // #endregion + // #endregion + } count++ } } - // #endregion + /** + * . + * + * === ASSOCIATED USERS === + * + * . + */ + // #region Associated Users + if (org.owners?.length) { + const permissionId = existing.permission.get('editsingleorg') ?? raise('unable to get permission id') + let counter = 1 + let skips = 0 + for (const owner of org.owners) { + const count = counter + skips + log(`[${count}/${org.owners.length}] Processing ${owner.userId}`, undefined, true) + const userId = existing.userId.get(owner.userId) + if (!userId) { + log(`SKIPPING connection for ${owner.userId}: Cannot map userId`, 'skip', true) + skips++ + continue + } + + if ( + existingOrgRecord.allowedEditors.some( + ({ userId: existingUserId }) => existingUserId === userId + ) && + existingOrgRecord.associatedUsers.some(({ userId: existingUserId }) => existingUserId === userId) + ) { + log(`SKIPPING ${owner.userId}: Already linked`, 'skip', true) + skips++ + continue + } + + log(`Linking user ${owner.userId} to ${organizationId}`, 'link', true) + create.userToOrganization.add({ organizationId, userId, authorized: owner.isApproved }) + genAuditLink({ userId, organizationId }) + create.userPermission.add({ userId, permissionId }) + genAuditLink({ userId, permissionId, organizationId }) + create.organizationPermission.add({ + permissionId, + organizationId, + userId, + authorized: owner.isApproved, + }) + log( + `🛠️ [${count}/${org.owners.length}] Org owner records for: ${ + owner.userId + } - Linked to org: ${isSuccess(true)}, Permission record: ${isSuccess( + true + )} (Approved: ${isSuccess(owner.isApproved)})` + ) + counter++ + } + } + + // #endregion if (process.env.LIMIT && parseInt(process.env.LIMIT) === orgCounter) break orgCounter++ } From 456905110062a3e3701eec62f92d5b042f602050 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 11 Jul 2023 13:39:48 -0400 Subject: [PATCH 46/66] fix prop errors --- packages/ui/components/core/AntiHateMessage.tsx | 2 +- packages/ui/components/core/Badge.tsx | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/ui/components/core/AntiHateMessage.tsx b/packages/ui/components/core/AntiHateMessage.tsx index 1a45f7b8f5..2fb6e97e23 100644 --- a/packages/ui/components/core/AntiHateMessage.tsx +++ b/packages/ui/components/core/AntiHateMessage.tsx @@ -49,7 +49,7 @@ export const AntiHateMessage = ({ noCard, stacked }: AntiHateMessageProps) => { return noCard ? ( content ) : ( - + {content} ) diff --git a/packages/ui/components/core/Badge.tsx b/packages/ui/components/core/Badge.tsx index 9426d99059..2872317176 100644 --- a/packages/ui/components/core/Badge.tsx +++ b/packages/ui/components/core/Badge.tsx @@ -96,7 +96,7 @@ const badgeVariants: BadgeVariants = (theme, params) => { radius: theme.radius.xl, padding: 0, }, - '&[data-hideBg]': { + '&[data-hidebg]': { backgroundColor: undefined, height: undefined, width: undefined, @@ -253,7 +253,7 @@ export const Badge = forwardRef { switch (props.variant) { case 'leader': { - const { tsKey, minify, hideBg: _, variant: _variant, ...rest } = props + const { tsKey, minify, hideBg: _, variant: _variant, iconBg: _iconBg, ...rest } = props passedBadgeProps = rest return minify ? null : {t(tsKey, { ns: 'attribute' })} } @@ -364,8 +364,8 @@ export const Badge = forwardRef Date: Tue, 11 Jul 2023 19:32:00 -0400 Subject: [PATCH 47/66] fix hydration errors --- packages/ui/components/core/LangPicker.tsx | 2 +- packages/ui/components/sections/Navbar.tsx | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/ui/components/core/LangPicker.tsx b/packages/ui/components/core/LangPicker.tsx index 8fb1c418a2..12c2fb3ced 100644 --- a/packages/ui/components/core/LangPicker.tsx +++ b/packages/ui/components/core/LangPicker.tsx @@ -45,8 +45,8 @@ MenuTarget.displayName = 'MenuTarget' export const LangPicker = () => { const { classes } = useStyles() const { i18n } = useTranslation() - const currentLanguage = i18n.language const router = useRouter() + const currentLanguage = router.locale const activeLang = translatedLangs.find((lang) => lang.localeCode === currentLanguage)?.nativeName diff --git a/packages/ui/components/sections/Navbar.tsx b/packages/ui/components/sections/Navbar.tsx index 0e2ea90dfc..8f5615f94c 100644 --- a/packages/ui/components/sections/Navbar.tsx +++ b/packages/ui/components/sections/Navbar.tsx @@ -1,6 +1,7 @@ import { Container, createStyles, Flex, Group, rem } from '@mantine/core' import Image from 'next/image' import { useTranslation } from 'next-i18next' +// import { useEffect } from 'react' import InReachLogo from '~ui/assets/inreach.svg' import { Button } from '~ui/components/core/Button' @@ -26,11 +27,17 @@ const useStyles = createStyles((theme) => ({ })) export const Navbar = () => { + // const { t, i18n } = useTranslation(['common'], { bindI18n: 'languageChanged loaded' }) const { t } = useTranslation() const { classes } = useStyles() const variants = useCustomVariant() const { isMobile, isTablet } = useScreenSize() + // useEffect(() => { + // i18n.reloadResources(i18n.resolvedLanguage, ['common']) + // // eslint-disable-next-line react-hooks/exhaustive-deps + // }, []) + return isMobile || isTablet ? ( ) : ( @@ -38,7 +45,13 @@ export const Navbar = () => { - {t('inreach-logo')} + {t('inreach-logo', From 68481fa13a09442f2dbc6209a9a791a5249ffc37 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 11 Jul 2023 20:01:02 -0400 Subject: [PATCH 48/66] fix linting errors --- packages/ui/components/core/GoogleMap.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ui/components/core/GoogleMap.tsx b/packages/ui/components/core/GoogleMap.tsx index 8e0d3d8800..909d304a0f 100644 --- a/packages/ui/components/core/GoogleMap.tsx +++ b/packages/ui/components/core/GoogleMap.tsx @@ -7,7 +7,7 @@ import { memo, useCallback } from 'react' import { trpc as api } from '~ui/lib/trpcClient' -export const _GoogleMap = ({ height, width, locationIds }: GoogleMapProps) => { +export const GoogleMapComponent = ({ height, width, locationIds }: GoogleMapProps) => { const { data, isLoading } = api.location.forGoogleMaps.useQuery(locationIds) const { isLoaded } = useJsApiLoader({ @@ -77,7 +77,7 @@ export const _GoogleMap = ({ height, width, locationIds }: GoogleMapProps) => { ) } -export const GoogleMap = memo(_GoogleMap) +export const GoogleMap = memo(GoogleMapComponent) interface GoogleMapProps { locationIds: string | string[] From 5880863152969cc78b2e1e88b38275e15f4145c4 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 11 Jul 2023 20:08:00 -0400 Subject: [PATCH 49/66] sentry config --- apps/app/next.config.mjs | 68 ++++++++++++++++++-------------- apps/app/sentry.server.config.ts | 2 + 2 files changed, 41 insertions(+), 29 deletions(-) diff --git a/apps/app/next.config.mjs b/apps/app/next.config.mjs index b89ab566e7..a37ce3a42c 100644 --- a/apps/app/next.config.mjs +++ b/apps/app/next.config.mjs @@ -53,10 +53,11 @@ const nextConfig = { typescript: { ignoreBuildErrors: isVercelActiveDev, }, - webpack: (config, { isServer }) => { + webpack: (config, { isServer, webpack }) => { if (isServer) { config.plugins = [...config.plugins, new PrismaPlugin()] } + config.plugins.push(new webpack.DefinePlugin({ __SENTRY_DEBUG__: false })) return config }, } @@ -72,36 +73,45 @@ function defineNextConfig(config) { // loadOtel() return withBundleAnalyzer(withRoutes()(config)) } +/** + * Wraps NextJS config with the Sentry config. + * + * @template {typeof nextConfig} T + * @param {T} nextConfig + * @returns {T} + */ +const defineSentryConfig = (nextConfig) => + withSentryConfig( + nextConfig, + { + // For all available options, see: + // https://github.com/getsentry/sentry-webpack-plugin#options + + // Suppresses source map uploading logs during build + silent: true, + + org: 'weareinreach', + project: 'inreach-app', + }, + { + // For all available options, see: + // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ -export default withSentryConfig( - defineNextConfig(nextConfig), - { - // For all available options, see: - // https://github.com/getsentry/sentry-webpack-plugin#options - - // Suppresses source map uploading logs during build - silent: true, - - org: 'weareinreach', - project: 'inreach-app', - }, - { - // For all available options, see: - // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ - - // Upload a larger set of source maps for prettier stack traces (increases build time) - widenClientFileUpload: true, + // Upload a larger set of source maps for prettier stack traces (increases build time) + widenClientFileUpload: true, - // Transpiles SDK to be compatible with IE11 (increases bundle size) - transpileClientSDK: true, + // Transpiles SDK to be compatible with IE11 (increases bundle size) + transpileClientSDK: true, - // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) - tunnelRoute: '/monitoring', + // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) + tunnelRoute: '/monitoring', - // Hides source maps from generated client bundles - hideSourceMaps: true, + // Hides source maps from generated client bundles + hideSourceMaps: true, - // Automatically tree-shake Sentry logger statements to reduce bundle size - disableLogger: true, - } -) + // Automatically tree-shake Sentry logger statements to reduce bundle size + disableLogger: true, + } + ) +// export default defineNextConfig(nextConfig) +export default defineSentryConfig(defineNextConfig(nextConfig)) diff --git a/apps/app/sentry.server.config.ts b/apps/app/sentry.server.config.ts index 39b2a992d3..6dadd8d0ab 100644 --- a/apps/app/sentry.server.config.ts +++ b/apps/app/sentry.server.config.ts @@ -12,4 +12,6 @@ Sentry.init({ // Setting this option to true will print useful information to the console while you're setting up Sentry. debug: false, + // eslint-disable-next-line node/no-process-env + enabled: process.env.NODE_ENV === 'production', }) From 7d3ab7733756efe7a02e4cfa6ad773122a2d6aa2 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 11 Jul 2023 20:08:58 -0400 Subject: [PATCH 50/66] redirect old slug to new --- .../org/[slug]/[orgLocationId]/index.tsx | 60 +++++++++----- apps/app/src/pages/org/[slug]/index.tsx | 81 +++++++++++-------- packages/api/cache/slugRedirect.ts | 30 +++++++ packages/api/router/organization/queries.ts | 20 +++++ 4 files changed, 140 insertions(+), 51 deletions(-) create mode 100644 packages/api/cache/slugRedirect.ts diff --git a/apps/app/src/pages/org/[slug]/[orgLocationId]/index.tsx b/apps/app/src/pages/org/[slug]/[orgLocationId]/index.tsx index 2dbf951d0d..877e304efd 100644 --- a/apps/app/src/pages/org/[slug]/[orgLocationId]/index.tsx +++ b/apps/app/src/pages/org/[slug]/[orgLocationId]/index.tsx @@ -1,10 +1,11 @@ import { createStyles, Divider, Grid, Skeleton, Stack, Tabs, useMantineTheme } from '@mantine/core' import { useMediaQuery } from '@mantine/hooks' // import compact from 'just-compact' -import { type GetStaticPaths, type GetStaticProps, type NextPage } from 'next' +import { type GetStaticPaths, type GetStaticPropsContext, type NextPage } from 'next' import Head from 'next/head' import { useRouter } from 'next/router' import { useTranslation } from 'next-i18next' +import { type RoutedQuery } from 'nextjs-routes' import { useEffect, useRef, useState } from 'react' import { z } from 'zod' @@ -181,32 +182,53 @@ export const getStaticPaths: GetStaticPaths = async () => { fallback: true, } } -export const getStaticProps: GetStaticProps = async ({ locale, params }) => { +export const getStaticProps = async ({ + locale, + params, +}: GetStaticPropsContext>) => { const urlParams = z.object({ slug: z.string(), orgLocationId: z.string() }).safeParse(params) if (!urlParams.success) return { notFound: true } const { slug, orgLocationId } = urlParams.data const ssg = await trpcServerClient({ session: null }) + try { + const redirect = await ssg.organization.slugRedirect.fetch(slug) + if (redirect?.redirectTo) { + return { + redirect: { + permanent: true, + destination: `/org/${redirect.redirectTo}/${orgLocationId}`, + }, + } + } - const orgId = await ssg.organization.getIdFromSlug.fetch({ slug }) - if (!orgId?.id) return { notFound: true } + const orgId = await ssg.organization.getIdFromSlug.fetch({ slug }) + if (!orgId?.id) return { notFound: true } - const [i18n] = await Promise.allSettled([ - getServerSideTranslations(locale, ['common', 'services', 'attribute', 'phone-type', orgId.id]), - ssg.organization.getBySlug.prefetch({ slug }), - // ssg.organization.getIdFromSlug.prefetch({ slug }), - ssg.location.forLocationPage.prefetch({ id: orgLocationId }), - ssg.organization.forLocationPage.prefetch({ slug }), - ]) - const props = { - trpcState: ssg.dehydrate(), - // ...(await getServerSideTranslations(locale, ['common', 'services', 'attribute', 'phone-type', slug])), - ...(i18n.status === 'fulfilled' ? i18n.value : {}), - } + const [i18n] = await Promise.allSettled([ + getServerSideTranslations(locale, ['common', 'services', 'attribute', 'phone-type', orgId.id]), + ssg.organization.getBySlug.prefetch({ slug }), + // ssg.organization.getIdFromSlug.prefetch({ slug }), + ssg.location.forLocationPage.prefetch({ id: orgLocationId }), + ssg.organization.forLocationPage.prefetch({ slug }), + ]) + const props = { + trpcState: ssg.dehydrate(), + // ...(await getServerSideTranslations(locale, ['common', 'services', 'attribute', 'phone-type', slug])), + ...(i18n.status === 'fulfilled' ? i18n.value : {}), + } - return { - props, - revalidate: 60 * 30, // 30 minutes + return { + props, + revalidate: 60 * 30, // 30 minutes + } + } catch (error) { + const TRPCError = (await import('@trpc/server')).TRPCError + if (error instanceof TRPCError) { + if (error.code === 'NOT_FOUND') { + return { notFound: true } + } + } } } diff --git a/apps/app/src/pages/org/[slug]/index.tsx b/apps/app/src/pages/org/[slug]/index.tsx index f90ceb5998..91ca508971 100644 --- a/apps/app/src/pages/org/[slug]/index.tsx +++ b/apps/app/src/pages/org/[slug]/index.tsx @@ -1,7 +1,7 @@ /* eslint-disable i18next/no-literal-string */ import { createStyles, Divider, Grid, Skeleton, Stack, Tabs, useMantineTheme } from '@mantine/core' import { useElementSize, useMediaQuery } from '@mantine/hooks' -import { type GetStaticPaths, type GetStaticProps, type NextPage } from 'next' +import { type GetStaticPaths, type GetStaticPropsContext, type InferGetStaticPropsType } from 'next' import Head from 'next/head' import { useRouter } from 'next/router' import { useTranslation } from 'next-i18next' @@ -57,13 +57,15 @@ const useStyles = createStyles((theme) => ({ }, })) -const OrganizationPage: NextPage = () => { - const { t, i18n } = useTranslation() +const OrganizationPage = ({ slug }: InferGetStaticPropsType) => { const router = useRouter<'/org/[slug]'>() - const { query } = router + // const { query } = router + const { t, i18n } = useTranslation(['common', 'services', 'attribute', 'phone-type', slug], { + bindI18n: 'languageChanged loaded', + }) const [activeTab, setActiveTab] = useState('services') const [loading, setLoading] = useState(true) - const { data, status } = api.organization.forOrgPage.useQuery(query) + const { data, status } = api.organization.forOrgPage.useQuery({ slug }, { enabled: !!slug }) const { data: hasRemote } = api.service.forServiceInfoCard.useQuery( { parentId: data?.id ?? '', remoteOnly: true }, { @@ -81,6 +83,7 @@ const OrganizationPage: NextPage = () => { const photosRef = useRef(null) const reviewsRef = useRef(null) + console.log('fallback?', router.isFallback) useEffect(() => { if (data && status === 'success') { setLoading(false) @@ -89,20 +92,14 @@ const OrganizationPage: NextPage = () => { }, [data, status]) useEffect(() => { - if (query.slug) - i18n.reloadResources(i18n.resolvedLanguage, [ - 'common', - 'services', - 'attribute', - 'phone-type', - query.slug, - ]) + slug && + i18n.reloadResources(i18n.resolvedLanguage, ['common', 'services', 'attribute', 'phone-type', slug]) // eslint-disable-next-line react-hooks/exhaustive-deps }, []) if (loading || !data || router.isFallback) return - const { userLists, attributes, description, slug, reviews, locations, isClaimed, id: organizationId } = data + const { userLists, attributes, description, reviews, locations, isClaimed, id: organizationId } = data const body = locations?.length === 1 ? ( @@ -246,33 +243,53 @@ export const getStaticPaths: GetStaticPaths = async () => { // } } -export const getStaticProps: GetStaticProps, RoutedQuery<'/org/[slug]'>> = async ({ +export const getStaticProps = async ({ locale, params, -}) => { +}: GetStaticPropsContext>) => { if (!params) return { notFound: true } const { slug } = params const ssg = await trpcServerClient({ session: null }) - const orgId = await ssg.organization.getIdFromSlug.fetch({ slug }) - if (!orgId?.id) return { notFound: true } + try { + const redirect = await ssg.organization.slugRedirect.fetch(slug) + if (redirect?.redirectTo) { + return { + redirect: { + permanent: true, + destination: `/org/${redirect.redirectTo}`, + }, + } + } - const [i18n] = await Promise.allSettled([ - getServerSideTranslations(locale, ['common', 'services', 'attribute', 'phone-type', orgId.id]), - ssg.organization.forOrgPage.prefetch({ slug }), - ]) - // await ssg.organization.getBySlug.prefetch({ slug }) + const orgId = await ssg.organization.getIdFromSlug.fetch({ slug }) + // if (!orgId) return { notFound: true, props: {} } - const props = { - trpcState: ssg.dehydrate(), - organizationId: orgId.id, - // ...(await getServerSideTranslations(locale, ['common', 'services', 'attribute', 'phone-type', slug])), - ...(i18n.status === 'fulfilled' ? i18n.value : {}), - } + const [i18n] = await Promise.allSettled([ + orgId && + getServerSideTranslations(locale, ['common', 'services', 'attribute', 'phone-type', orgId?.id]), + ssg.organization.forOrgPage.prefetch({ slug }), + ]) + // await ssg.organization.getBySlug.prefetch({ slug }) - return { - props, - revalidate: 60 * 30, // 30 minutes + const props = { + trpcState: ssg.dehydrate(), + organizationId: orgId?.id, + slug, + ...(i18n.status === 'fulfilled' ? i18n.value : {}), + } + + return { + props, + revalidate: 60 * 30, // 30 minutes + } + } catch (error) { + const TRPCError = (await import('@trpc/server')).TRPCError + if (error instanceof TRPCError) { + if (error.code === 'NOT_FOUND') { + return { notFound: true } + } + } } } diff --git a/packages/api/cache/slugRedirect.ts b/packages/api/cache/slugRedirect.ts new file mode 100644 index 0000000000..901ea23d33 --- /dev/null +++ b/packages/api/cache/slugRedirect.ts @@ -0,0 +1,30 @@ +import { kv as redis } from '@vercel/kv' +import { Logger } from 'tslog' + +const log = new Logger({ name: 'Cache - Slug redirect' }) + +export const readSlugRedirectCache = async (slug: string) => { + try { + if ((await redis.ping()) !== 'PONG') { + log.warn('Skipping cache read - Redis client not connected') + return null + } + const redirectedSlug = await redis.hget('slugRedirect', slug) + return redirectedSlug + } catch (err) { + log.error(err) + return null + } +} + +export const writeSlugRedirectCache = async (slug: string, redirectTo: string) => { + try { + if ((await redis.ping()) !== 'PONG') { + log.warn('Skipping cache write - Redis client not connected') + return + } + await redis.hset('slugRedirect', { [slug]: redirectTo }) + } catch (err) { + log.error(err) + } +} diff --git a/packages/api/router/organization/queries.ts b/packages/api/router/organization/queries.ts index 1aa73852ad..5e30103c46 100644 --- a/packages/api/router/organization/queries.ts +++ b/packages/api/router/organization/queries.ts @@ -1,5 +1,6 @@ import { z } from 'zod' +import { readSlugRedirectCache, writeSlugRedirectCache } from '~api/cache/slugRedirect' import { readSlugCache, writeSlugCache } from '~api/cache/slugToOrgId' import { handleError } from '~api/lib/errorHandler' import { getCoveredAreas, searchOrgByDistance } from '~api/lib/prismaRaw' @@ -318,4 +319,23 @@ export const queries = defineRouter({ handleError(error) } }), + slugRedirect: publicProcedure.input(z.string()).query(async ({ ctx, input }) => { + try { + const cached = await readSlugRedirectCache(input) + if (cached) { + return { redirectTo: cached } + } + const { slug: primarySlug } = await ctx.prisma.organization.findFirstOrThrow({ + where: { OR: [{ slug: input }, { oldSlugs: { some: { from: input } } }], ...isPublic }, + select: { slug: true }, + }) + if (primarySlug !== input) { + await writeSlugRedirectCache(input, primarySlug) + return { redirectTo: primarySlug } + } + return { redirectTo: null } + } catch (error) { + handleError(error) + } + }), }) From 1e748358ff1c09e48c8de4dafd099dc9196013c4 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 11 Jul 2023 20:09:33 -0400 Subject: [PATCH 51/66] flip flag for cache?? --- apps/app/src/pages/api/trpc/[trpc].ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/app/src/pages/api/trpc/[trpc].ts b/apps/app/src/pages/api/trpc/[trpc].ts index 6b4bf6c8d9..27711a6082 100644 --- a/apps/app/src/pages/api/trpc/[trpc].ts +++ b/apps/app/src/pages/api/trpc/[trpc].ts @@ -21,7 +21,7 @@ export default createNextApiHandler({ responseMeta(opts) { const { ctx, errors, type } = opts - const shouldSkip = ctx?.skipCache ?? true + const shouldSkip = ctx?.skipCache ?? false const allOk = errors.length === 0 const isQuery = type === 'query' From c5bfa06f6ca5a3f771b347506921540b2832c8a5 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Tue, 11 Jul 2023 20:10:13 -0400 Subject: [PATCH 52/66] db runner --- packages/db/seed/recon/dbRunner.ts | 2 +- packages/db/seed/recon/index.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/db/seed/recon/dbRunner.ts b/packages/db/seed/recon/dbRunner.ts index 1f03590e10..dc4cb3aecd 100644 --- a/packages/db/seed/recon/dbRunner.ts +++ b/packages/db/seed/recon/dbRunner.ts @@ -40,7 +40,7 @@ export const dbRun = { attachLogger(task) const log = (...args: Parameters) => (task.output = formatMessage(...args)) - const createManyBatchSize = 10 //00 + const createManyBatchSize = 1000 const updateBatchSize = 500 await prisma.$transaction( async (tx) => { diff --git a/packages/db/seed/recon/index.ts b/packages/db/seed/recon/index.ts index 1bc51540cc..c5ab304506 100644 --- a/packages/db/seed/recon/index.ts +++ b/packages/db/seed/recon/index.ts @@ -18,8 +18,8 @@ const injectOptions = (job: ListrJob): ListrJob => ({ const skips = { generators: true, - recon: false, - dbRun: true, + recon: true, + dbRun: false, } as const const jobs = new Listr( From 3c9e495ed9000633d35a143bfb3b849e2a1aba8c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:40:06 -0400 Subject: [PATCH 53/66] fix(db): update prisma monorepo to v5 (major) (#664) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Joe Karow <58997957+JoeKarow@users.noreply.github.com> --- apps/app/package.json | 2 +- packages/api/package.json | 2 +- packages/aws-user-migrate/package.json | 4 +- packages/db/package.json | 6 +- pnpm-lock.yaml | 124 +++++++------------------ 5 files changed, 43 insertions(+), 95 deletions(-) diff --git a/apps/app/package.json b/apps/app/package.json index d08a96a9f0..4b288dc789 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -54,7 +54,7 @@ "@opentelemetry/sdk-trace-base": "1.14.0", "@opentelemetry/sdk-trace-node": "1.14.0", "@opentelemetry/semantic-conventions": "1.14.0", - "@prisma/instrumentation": "4.16.2", + "@prisma/instrumentation": "5.0.0", "@sentry/nextjs": "7.57.0", "@tanstack/react-query": "4.29.19", "@tanstack/react-table": "8.9.3", diff --git a/packages/api/package.json b/packages/api/package.json index d4391617b3..47796a3762 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -65,7 +65,7 @@ "next": "13.4.9", "p-queue": "7.3.4", "prettier": "2.8.8", - "prisma": "4.16.2", + "prisma": "5.0.0", "trpc-client-devtools-link": "0.2.1-next", "trpc-panel": "1.3.4", "type-fest": "3.12.0", diff --git a/packages/aws-user-migrate/package.json b/packages/aws-user-migrate/package.json index 75d5bc6cb8..fb76caab49 100644 --- a/packages/aws-user-migrate/package.json +++ b/packages/aws-user-migrate/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@aws-lambda-powertools/logger": "1.11.0", - "@prisma/client": "4.16.2", + "@prisma/client": "5.0.0", "@weareinreach/db": "workspace:*" }, "devDependencies": { @@ -36,7 +36,7 @@ "aws-lambda": "1.0.7", "eslint": "8.44.0", "prettier": "2.8.8", - "prisma": "4.16.2", + "prisma": "5.0.0", "typescript": "5.1.6" } } diff --git a/packages/db/package.json b/packages/db/package.json index 26ea88c51c..1c11638cf4 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -49,8 +49,8 @@ "@opentelemetry/sdk-trace-base": "1.14.0", "@opentelemetry/sdk-trace-node": "1.14.0", "@opentelemetry/semantic-conventions": "1.14.0", - "@prisma/client": "4.16.2", - "@prisma/instrumentation": "4.16.2", + "@prisma/client": "5.0.0", + "@prisma/instrumentation": "5.0.0", "@vercel/kv": "0.2.2", "@vercel/postgres-kysely": "0.4.0", "@weareinreach/env": "workspace:*", @@ -121,7 +121,7 @@ "papaparse": "5.4.1", "prettier": "2.8.8", "pretty-bytes": "6.1.0", - "prisma": "4.16.2", + "prisma": "5.0.0", "prisma-dbml-generator": "0.10.0", "prisma-query-inspector": "1.4.4", "prisma-query-log": "3.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f6d50e3177..e8c8ea4281 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -207,8 +207,8 @@ importers: specifier: 1.14.0 version: 1.14.0 '@prisma/instrumentation': - specifier: 4.16.2 - version: 4.16.2 + specifier: 5.0.0 + version: 5.0.0 '@sentry/nextjs': specifier: 7.57.0 version: 7.57.0(next@13.4.9)(react@18.2.0) @@ -708,8 +708,8 @@ importers: specifier: 2.8.8 version: 2.8.8 prisma: - specifier: 4.16.2 - version: 4.16.2 + specifier: 5.0.0 + version: 5.0.0 trpc-client-devtools-link: specifier: 0.2.1-next version: 0.2.1-next(@trpc/client@10.33.1)(@trpc/server@10.33.1) @@ -730,7 +730,7 @@ importers: version: 3.363.0 '@next-auth/prisma-adapter': specifier: 1.0.7 - version: 1.0.7(@prisma/client@4.16.2)(next-auth@4.22.1) + version: 1.0.7(@prisma/client@5.0.0)(next-auth@4.22.1) '@weareinreach/db': specifier: workspace:* version: link:../db @@ -891,8 +891,8 @@ importers: specifier: 1.11.0 version: 1.11.0 '@prisma/client': - specifier: 4.16.2 - version: 4.16.2(prisma@4.16.2) + specifier: 5.0.0 + version: 5.0.0(prisma@5.0.0) '@weareinreach/db': specifier: workspace:* version: link:../db @@ -928,8 +928,8 @@ importers: specifier: 2.8.8 version: 2.8.8 prisma: - specifier: 4.16.2 - version: 4.16.2 + specifier: 5.0.0 + version: 5.0.0 typescript: specifier: 5.1.6 version: 5.1.6 @@ -976,11 +976,11 @@ importers: specifier: 1.14.0 version: 1.14.0 '@prisma/client': - specifier: 4.16.2 - version: 4.16.2(prisma@4.16.2) + specifier: 5.0.0 + version: 5.0.0(prisma@5.0.0) '@prisma/instrumentation': - specifier: 4.16.2 - version: 4.16.2 + specifier: 5.0.0 + version: 5.0.0 '@vercel/kv': specifier: 0.2.2 version: 0.2.2 @@ -1187,8 +1187,8 @@ importers: specifier: 6.1.0 version: 6.1.0 prisma: - specifier: 4.16.2 - version: 4.16.2 + specifier: 5.0.0 + version: 5.0.0 prisma-dbml-generator: specifier: 0.10.0 version: 0.10.0 @@ -7530,13 +7530,13 @@ packages: '@types/pg': 8.6.6 dev: false - /@next-auth/prisma-adapter@1.0.7(@prisma/client@4.16.2)(next-auth@4.22.1): + /@next-auth/prisma-adapter@1.0.7(@prisma/client@5.0.0)(next-auth@4.22.1): resolution: {integrity: sha512-Cdko4KfcmKjsyHFrWwZ//lfLUbcLqlyFqjd/nYE2m3aZ7tjMNUjpks47iw7NTCnXf+5UWz5Ypyt1dSs1EP5QJw==} peerDependencies: '@prisma/client': '>=2.26.0 || >=3' next-auth: ^4 dependencies: - '@prisma/client': 4.16.2(prisma@4.16.2) + '@prisma/client': 5.0.0(prisma@5.0.0) next-auth: 4.22.1(next@13.4.9)(react-dom@18.2.0)(react@18.2.0) dev: false @@ -7835,16 +7835,6 @@ packages: '@opentelemetry/api': 1.4.1 dev: false - /@opentelemetry/core@1.13.0(@opentelemetry/api@1.4.1): - resolution: {integrity: sha512-2dBX3Sj99H96uwJKvc2w9NOiNgbvAO6mOFJFramNkKfS9O4Um+VWgpnlAazoYjT6kUJ1MP70KQ5ngD4ed+4NUw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' - dependencies: - '@opentelemetry/api': 1.4.1 - '@opentelemetry/semantic-conventions': 1.13.0 - dev: false - /@opentelemetry/core@1.14.0(@opentelemetry/api@1.4.1): resolution: {integrity: sha512-MnMZ+sxsnlzloeuXL2nm5QcNczt/iO82UOeQQDHhV83F2fP3sgntW2evvtoxJki0MBLxEsh5ADD7PR/Hn5uzjw==} engines: {node: '>=14'} @@ -7954,20 +7944,6 @@ packages: - supports-color dev: false - /@opentelemetry/instrumentation@0.39.1(@opentelemetry/api@1.4.1): - resolution: {integrity: sha512-s7/9tPmM0l5KCd07VQizC4AO2/5UJdkXq5gMSHPdCeiMKSeBEdyDyQX7A+Cq+RYZM452qzFmrJ4ut628J5bnSg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - dependencies: - '@opentelemetry/api': 1.4.1 - require-in-the-middle: 7.1.0 - semver: 7.5.3 - shimmer: 1.2.1 - transitivePeerDependencies: - - supports-color - dev: false - /@opentelemetry/instrumentation@0.40.0(@opentelemetry/api@1.4.1): resolution: {integrity: sha512-23TzBKPflUS1uEq5SXymnQKQDSda35KvHjnvxdcDQGE+wg6hwDHgScUCWiBmZW4sxAaPcANfs+Wc9B7yDuyT6Q==} engines: {node: '>=14'} @@ -8054,17 +8030,6 @@ packages: '@opentelemetry/core': 1.14.0(@opentelemetry/api@1.4.1) dev: false - /@opentelemetry/resources@1.13.0(@opentelemetry/api@1.4.1): - resolution: {integrity: sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' - dependencies: - '@opentelemetry/api': 1.4.1 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.4.1) - '@opentelemetry/semantic-conventions': 1.13.0 - dev: false - /@opentelemetry/resources@1.14.0(@opentelemetry/api@1.4.1): resolution: {integrity: sha512-qRfWIgBxxl3z47E036Aey0Lj2ZjlFb27Q7Xnj1y1z/P293RXJZGLtcfn/w8JF7v1Q2hs3SDGxz7Wb9Dko1YUQA==} engines: {node: '>=14'} @@ -8123,18 +8088,6 @@ packages: - supports-color dev: false - /@opentelemetry/sdk-trace-base@1.13.0(@opentelemetry/api@1.4.1): - resolution: {integrity: sha512-moTiQtc0uPR1hQLt6gLDJH9IIkeBhgRb71OKjNHZPE1VF45fHtD6nBDi5J/DkTHTwYP5X3kBJLa3xN7ub6J4eg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' - dependencies: - '@opentelemetry/api': 1.4.1 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.4.1) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.4.1) - '@opentelemetry/semantic-conventions': 1.13.0 - dev: false - /@opentelemetry/sdk-trace-base@1.14.0(@opentelemetry/api@1.4.1): resolution: {integrity: sha512-NzRGt3PS+HPKfQYMb6Iy8YYc5OKA73qDwci/6ujOIvyW9vcqBJSWbjZ8FeLEAmuatUB5WrRhEKu9b0sIiIYTrQ==} engines: {node: '>=14'} @@ -8173,11 +8126,6 @@ packages: '@opentelemetry/semantic-conventions': 1.14.0 dev: false - /@opentelemetry/semantic-conventions@1.13.0: - resolution: {integrity: sha512-LMGqfSZkaMQXqewO0o1wvWr/2fQdCh4a3Sqlxka/UsJCe0cfLulh6x2aqnKLnsrSGiCq5rSCwvINd152i0nCqw==} - engines: {node: '>=14'} - dev: false - /@opentelemetry/semantic-conventions@1.14.0: resolution: {integrity: sha512-rJfCY8rCWz3cb4KI6pEofnytvMPuj3YLQwoscCCYZ5DkdiPjo15IQ0US7+mjcWy9H3fcZIzf2pbJZ7ck/h4tug==} engines: {node: '>=14'} @@ -8282,9 +8230,9 @@ packages: /@popperjs/core@2.11.7: resolution: {integrity: sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==} - /@prisma/client@4.16.2(prisma@4.16.2): - resolution: {integrity: sha512-qCoEyxv1ZrQ4bKy39GnylE8Zq31IRmm8bNhNbZx7bF2cU5aiCCnSa93J2imF88MBjn7J9eUQneNxUQVJdl/rPQ==} - engines: {node: '>=14.17'} + /@prisma/client@5.0.0(prisma@5.0.0): + resolution: {integrity: sha512-XlO5ELNAQ7rV4cXIDJUNBEgdLwX3pjtt9Q/RHqDpGf43szpNJx2hJnggfFs7TKNx0cOFsl6KJCSfqr5duEU/bQ==} + engines: {node: '>=16.13'} requiresBuild: true peerDependencies: prisma: '*' @@ -8292,8 +8240,8 @@ packages: prisma: optional: true dependencies: - '@prisma/engines-version': 4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81 - prisma: 4.16.2 + '@prisma/engines-version': 4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584 + prisma: 5.0.0 dev: false /@prisma/debug@4.13.0: @@ -8369,8 +8317,8 @@ packages: - supports-color dev: true - /@prisma/engines-version@4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81: - resolution: {integrity: sha512-q617EUWfRIDTriWADZ4YiWRZXCa/WuhNgLTVd+HqWLffjMSPzyM5uOWoauX91wvQClSKZU4pzI4JJLQ9Kl62Qg==} + /@prisma/engines-version@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584: + resolution: {integrity: sha512-HHiUF6NixsldsP3JROq07TYBLEjXFKr6PdH8H4gK/XAoTmIplOJBCgrIUMrsRAnEuGyRoRLXKXWUb943+PFoKQ==} dev: false /@prisma/engines@4.13.0: @@ -8378,15 +8326,15 @@ packages: requiresBuild: true dev: false - /@prisma/engines@4.16.2: - resolution: {integrity: sha512-vx1nxVvN4QeT/cepQce68deh/Turxy5Mr+4L4zClFuK1GlxN3+ivxfuv+ej/gvidWn1cE1uAhW7ALLNlYbRUAw==} - requiresBuild: true - /@prisma/engines@4.6.1: resolution: {integrity: sha512-3u2/XxvxB+Q7cMXHnKU0CpBiUK1QWqpgiBv28YDo1zOIJE3FCF8DI2vrp6vuwjGt5h0JGXDSvmSf4D4maVjJdw==} requiresBuild: true dev: true + /@prisma/engines@5.0.0: + resolution: {integrity: sha512-kyT/8fd0OpWmhAU5YnY7eP31brW1q1YrTGoblWrhQJDiN/1K+Z8S1kylcmtjqx5wsUGcP1HBWutayA/jtyt+sg==} + requiresBuild: true + /@prisma/fetch-engine@4.13.0: resolution: {integrity: sha512-khMMm3I8nMUgwd7DoM1wBFjMKn/Z5PZF27EMQGPtquM1nRt601blJbep0qodXR7oHioQolCK8gfbw5Hfdml1mg==} dependencies: @@ -8495,12 +8443,12 @@ packages: - supports-color dev: true - /@prisma/instrumentation@4.16.2: - resolution: {integrity: sha512-2ANtHOh/E77yYBip7iJJx0rhZC4kfAdIEy7IZCQ2w0JOnvx1NhebGXY6zeOem7mhApjiXkPiMmaniMl6zjAfzA==} + /@prisma/instrumentation@5.0.0: + resolution: {integrity: sha512-GUt9ztQXriBmxPIDBd20eBHOX+LaF3zj4ot6mpMB/2YkceU4MvicdEoaX2VkF3r/xM7TatCF9IR2d35wOIv2GA==} dependencies: '@opentelemetry/api': 1.4.1 - '@opentelemetry/instrumentation': 0.39.1(@opentelemetry/api@1.4.1) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.4.1) + '@opentelemetry/instrumentation': 0.40.0(@opentelemetry/api@1.4.1) + '@opentelemetry/sdk-trace-base': 1.14.0(@opentelemetry/api@1.4.1) transitivePeerDependencies: - supports-color dev: false @@ -22095,13 +22043,13 @@ packages: '@sqltools/formatter': 1.2.5 dev: true - /prisma@4.16.2: - resolution: {integrity: sha512-SYCsBvDf0/7XSJyf2cHTLjLeTLVXYfqp7pG5eEVafFLeT0u/hLFz/9W196nDRGUOo1JfPatAEb+uEnTQImQC1g==} - engines: {node: '>=14.17'} + /prisma@5.0.0: + resolution: {integrity: sha512-KYWk83Fhi1FH59jSpavAYTt2eoMVW9YKgu8ci0kuUnt6Dup5Qy47pcB4/TLmiPAbhGrxxSz7gsSnJcCmkyPANA==} + engines: {node: '>=16.13'} hasBin: true requiresBuild: true dependencies: - '@prisma/engines': 4.16.2 + '@prisma/engines': 5.0.0 /probe-image-size@7.2.3: resolution: {integrity: sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==} From f1f7acb99ce2c72f56ea67b79e834857e265b766 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:40:46 -0400 Subject: [PATCH 54/66] chore(app): update dependency @prisma/nextjs-monorepo-workaround-plugin to v5 (#663) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Joe Karow <58997957+JoeKarow@users.noreply.github.com> --- apps/app/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/app/package.json b/apps/app/package.json index 4b288dc789..c605a82eec 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -107,7 +107,7 @@ }, "devDependencies": { "@playwright/test": "1.35.1", - "@prisma/nextjs-monorepo-workaround-plugin": "4.16.2", + "@prisma/nextjs-monorepo-workaround-plugin": "5.0.0", "@tanstack/react-query-devtools": "4.29.19", "@tanstack/react-table-devtools": "8.7.6", "@total-typescript/ts-reset": "0.4.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8c8ea4281..30594e8609 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -361,8 +361,8 @@ importers: specifier: 1.35.1 version: 1.35.1 '@prisma/nextjs-monorepo-workaround-plugin': - specifier: 4.16.2 - version: 4.16.2 + specifier: 5.0.0 + version: 5.0.0 '@tanstack/react-query-devtools': specifier: 4.29.19 version: 4.29.19(@tanstack/react-query@4.29.19)(react-dom@18.2.0)(react@18.2.0) @@ -8557,8 +8557,8 @@ packages: - supports-color dev: true - /@prisma/nextjs-monorepo-workaround-plugin@4.16.2: - resolution: {integrity: sha512-A0ZplyjvkNz38GT8ddZlewwV9XFHXo3iwbFwtQXgA3HrQ2TWl042DzxsOybjkJUCLM5xZWa7sCC5QxqZIsX2og==} + /@prisma/nextjs-monorepo-workaround-plugin@5.0.0: + resolution: {integrity: sha512-9iPBVd2Mz29QzJccyLJforZb/oWCLAS/5Ky6ZVtV5iST/kcDdCL+R+fllzNBltwywPrNwGorUx4C8Ps6WFZaiA==} dev: true /@prisma/ni@4.13.0: From 1a86878aadb2712e793b46855b8a993f4ef2ead0 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:41:33 -0400 Subject: [PATCH 55/66] add raise util --- packages/db/prisma/common.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/db/prisma/common.ts b/packages/db/prisma/common.ts index cdbfd83093..be5f21f29b 100644 --- a/packages/db/prisma/common.ts +++ b/packages/db/prisma/common.ts @@ -1 +1,10 @@ export const isSuccess = (criteria: unknown) => (criteria ? '✅' : '❎') + +/** + * Throws an error - Use to raise an error for nullish-coalesced values + * + * @example FnThatDoesntAcceptUndefined(possibleUndefined ?? raise('this is the error')) + */ +export const raise = (err: string): never => { + throw new Error(err) +} From 640e4614c7f2b250891f65e2d576b4406ad592c5 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:42:32 -0400 Subject: [PATCH 56/66] link new service to org, create auditlog ids --- packages/db/seed/recon/reconJob.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 1eb25c2b70..e1d5bce6b1 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -116,6 +116,7 @@ export const orgRecon = { const serializedFrom = superjson.serialize(changedFields) const serializedTo = superjson.serialize(to) create.auditLog.add({ + id: generateId('auditLog'), actorId, operation: 'UPDATE', from: JsonInputOrNull.parse(serializedFrom), @@ -133,6 +134,7 @@ export const orgRecon = { } const genAuditCreate = (to: unknown, links: AuditLogLinks) => { create.auditLog.add({ + id: generateId('auditLog'), actorId, operation: 'CREATE', to: InputJsonValue.parse(superjson.serialize(to)), @@ -142,6 +144,7 @@ export const orgRecon = { } const genAuditLink = (links: AuditLogLinks) => { create.auditLog.add({ + id: generateId('auditLog'), actorId, to: InputJsonValue.parse(superjson.serialize(links)), operation: 'LINK', @@ -2198,6 +2201,8 @@ export const orgRecon = { published: service.is_published, createdAt, updatedAt, + organizationId, + legacyId: service._id.$oid, } const orgServiceId = newService.id ?? raise('Missing new service id!') if (service.name) { From 396d665c0ee91c47a6aefce983a463f6574fedb4 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:58:46 -0400 Subject: [PATCH 57/66] data migration: add remote tags --- .../2023-07-12_1-add-remote-tags/data.json | 1 + .../2023-07-12_1-add-remote-tags/index.ts | 96 +++++++++++++++++++ packages/db/prisma/data-migrations/index.ts | 1 + 3 files changed, 98 insertions(+) create mode 100644 packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/data.json create mode 100644 packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/index.ts diff --git a/packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/data.json b/packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/data.json new file mode 100644 index 0000000000..7ecf16ee99 --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/data.json @@ -0,0 +1 @@ +[{"legacyId":"5e7e4bd9d54f1760921a3c03","legacyServiceId":"5e7e4bd9d54f1760921a3c2e","remote":false},{"legacyId":"5e7e4bd9d54f1760921a3bf5","legacyServiceId":"5f98b45454d6a10017bc95cc","remote":true},{"legacyId":"5e7e4bd9d54f1760921a3bf5","legacyServiceId":"5e7e4bd9d54f1760921a3c00","remote":true},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5e7e4bdad54f1760921a3cdb","remote":true},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5e7e4bdad54f1760921a3cd8","remote":false},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5e7e4bdad54f1760921a3cca","remote":true},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5f7666653f9f9100173c07b5","remote":true},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"60c638f608fa950015c751ca","remote":true},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"60550ad68580f50015c4e53f","remote":true},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5f7664dd3f9f9100173c0798","remote":true},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5e7e4bdad54f1760921a3ce3","remote":true},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5e7e4bdad54f1760921a3ccd","remote":false},{"legacyId":"5e7e4bd9d54f1760921a3ad1","legacyServiceId":"5e7e4bd9d54f1760921a3aec","remote":false},{"legacyId":"5e7e4bd9d54f1760921a3ad1","legacyServiceId":"5e7e4bd9d54f1760921a3afc","remote":true},{"legacyId":"5e7e4bdad54f1760921a3ca4","legacyServiceId":"5e7e4bdad54f1760921a3cac","remote":true},{"legacyId":"5e7e4bdad54f1760921a3ca4","legacyServiceId":"5e7e4bdad54f1760921a3caf","remote":true},{"legacyId":"5e7e4bd9d54f1760921a3c3d","legacyServiceId":"5e7e4bd9d54f1760921a3c55","remote":true},{"legacyId":"5e7e4bdad54f1760921a3ced","legacyServiceId":"602d4e2d814295001563d476","remote":true},{"legacyId":"5e7e4bdad54f1760921a3ced","legacyServiceId":"602d5032814295001563d493","remote":false},{"legacyId":"5e7e4bdad54f1760921a3ced","legacyServiceId":"602d517e814295001563d4ad","remote":true},{"legacyId":"5e7e4bdad54f1760921a3ced","legacyServiceId":"602d52a5814295001563d511","remote":true},{"legacyId":"5e7e4bdad54f1760921a3ced","legacyServiceId":"5e7e4bdad54f1760921a3cfd","remote":false},{"legacyId":"5e7e4bdad54f1760921a3ced","legacyServiceId":"5e7e4bdad54f1760921a3cf4","remote":false},{"legacyId":"5e7e4bdad54f1760921a3ead","legacyServiceId":"5e7e4bdad54f1760921a3ebf","remote":true},{"legacyId":"5e7e4bdad54f1760921a3d01","legacyServiceId":"5e7e4bdad54f1760921a3d02","remote":true},{"legacyId":"5e7e4bdad54f1760921a3d01","legacyServiceId":"5e7e4bdad54f1760921a3d05","remote":true},{"legacyId":"5e7e4bdad54f1760921a3d01","legacyServiceId":"629a27ca831c5a003e700b8a","remote":true},{"legacyId":"5e7e4bdad54f1760921a3e58","legacyServiceId":"602c3fceff84f900155ca0e8","remote":false},{"legacyId":"5e7e4bdad54f1760921a3e58","legacyServiceId":"5e7e4bdad54f1760921a3e66","remote":true},{"legacyId":"5e7e4bdad54f1760921a3f34","legacyServiceId":"5e7e4bdad54f1760921a3f51","remote":true},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e33","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e4c","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e00","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e1c","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e2d","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e3b","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e0e","remote":true},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5eefa607efb35300179febfe","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e3f","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"602447172e57310015944e7e","remote":true},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e29","remote":true},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e25","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e48","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e17","remote":true},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e43","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"5e7e4bdad54f1760921a3e12","remote":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","legacyServiceId":"61b7d034aac9de0016b8406e","remote":false},{"legacyId":"5e7e4bdad54f1760921a3d10","legacyServiceId":"5e7e4bdad54f1760921a3d35","remote":false},{"legacyId":"5e7e4bdad54f1760921a3d10","legacyServiceId":"5e7e4bdad54f1760921a3d68","remote":false},{"legacyId":"5e7e4bdad54f1760921a3d10","legacyServiceId":"5e7e4bdad54f1760921a3d66","remote":false},{"legacyId":"5e7e4bdad54f1760921a3d10","legacyServiceId":"5e7e4bdad54f1760921a3d4d","remote":false},{"legacyId":"5e7e4bdad54f1760921a3d10","legacyServiceId":"5e7e4bdad54f1760921a3d6b","remote":true},{"legacyId":"5e7e4bdad54f1760921a3d10","legacyServiceId":"5e7e4bdad54f1760921a3d77","remote":false},{"legacyId":"5e7e4bdad54f1760921a3d10","legacyServiceId":"5e7e4bdad54f1760921a3d74","remote":false},{"legacyId":"5e7e4bdad54f1760921a3daa","legacyServiceId":"5e7e4bdad54f1760921a3dbe","remote":true},{"legacyId":"5e7e4bdad54f1760921a3daa","legacyServiceId":"5e7e4bdad54f1760921a3dca","remote":true},{"legacyId":"5e7e4bdad54f1760921a3efa","legacyServiceId":"62c838d6a06df4001680d542","remote":true},{"legacyId":"5e7e4bdad54f1760921a3d07","legacyServiceId":"5e7e4bdad54f1760921a3d0e","remote":false},{"legacyId":"5e7e4bdad54f1760921a3edf","legacyServiceId":"5e7e4bdad54f1760921a3ee5","remote":true},{"legacyId":"5e7e4bdad54f1760921a3ec5","legacyServiceId":"5e7e4bdad54f1760921a3ed9","remote":false},{"legacyId":"5e7e4bdad54f1760921a3ec5","legacyServiceId":"5e7e4bdad54f1760921a3edc","remote":false},{"legacyId":"5e7e4bdad54f1760921a3f7f","legacyServiceId":"5ee8fc2a67416f0017b3db63","remote":true},{"legacyId":"5e7e4bdad54f1760921a3f7f","legacyServiceId":"5e7e4bdad54f1760921a3f86","remote":false},{"legacyId":"5e7e4bdad54f1760921a3f7f","legacyServiceId":"5e7e4bdad54f1760921a3f89","remote":false},{"legacyId":"5e7e4bdad54f1760921a3f90","legacyServiceId":"5e7e4bdad54f1760921a3f9e","remote":true},{"legacyId":"5e7e4bdad54f1760921a3f90","legacyServiceId":"5e7e4bdad54f1760921a3f96","remote":true},{"legacyId":"5e7e4bdbd54f1760921a4204","legacyServiceId":"5e7e4bdbd54f1760921a4208","remote":false},{"legacyId":"5e7e4bdbd54f1760921a417b","legacyServiceId":"60ddecd1772c7300159bac69","remote":true},{"legacyId":"5e7e4bdbd54f1760921a414e","legacyServiceId":"5e7e4bdbd54f1760921a4153","remote":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","legacyServiceId":"5e7e4bdbd54f1760921a40e9","remote":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","legacyServiceId":"5e7e4bdbd54f1760921a40f5","remote":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","legacyServiceId":"5e7e4bdbd54f1760921a40fb","remote":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","legacyServiceId":"5e7e4bdbd54f1760921a40fe","remote":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","legacyServiceId":"5e7e4bdbd54f1760921a40ef","remote":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","legacyServiceId":"5e7e4bdbd54f1760921a40f8","remote":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","legacyServiceId":"5e7e4bdbd54f1760921a40ec","remote":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","legacyServiceId":"5e7e4bdbd54f1760921a40f2","remote":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","legacyServiceId":"5e7e4bdbd54f1760921a4104","remote":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","legacyServiceId":"5e7e4bdbd54f1760921a4101","remote":false},{"legacyId":"5e7e4bdad54f1760921a3fc9","legacyServiceId":"5e7e4bdad54f1760921a3fcc","remote":true},{"legacyId":"5e7e4bdbd54f1760921a3ff2","legacyServiceId":"5f0e04b6cd6aa900171058a7","remote":true},{"legacyId":"5e7e4bdbd54f1760921a42f6","legacyServiceId":"5e7e4bdbd54f1760921a4305","remote":true},{"legacyId":"5e7e4bdcd54f1760921a456f","legacyServiceId":"5e7e4bdcd54f1760921a457c","remote":false},{"legacyId":"5e7e4bdcd54f1760921a456f","legacyServiceId":"5e7e4bdcd54f1760921a4578","remote":true},{"legacyId":"5e7e4bdcd54f1760921a456f","legacyServiceId":"5e7e4bdcd54f1760921a457e","remote":true},{"legacyId":"5e7e4bdcd54f1760921a456f","legacyServiceId":"637d5cc9cabb280007ce5e34","remote":false},{"legacyId":"5e7e4bdcd54f1760921a4499","legacyServiceId":"5e7e4bdcd54f1760921a44a7","remote":false},{"legacyId":"5e7e4bdcd54f1760921a4499","legacyServiceId":"5e7e4bdcd54f1760921a44ad","remote":false},{"legacyId":"5e7e4bdcd54f1760921a44c1","legacyServiceId":"5e7e4bdcd54f1760921a44cc","remote":true},{"legacyId":"5e7e4bdcd54f1760921a4605","legacyServiceId":"60c7fc28b5824600151f089c","remote":true},{"legacyId":"5e7e4bdcd54f1760921a4605","legacyServiceId":"5e7e4bdcd54f1760921a4609","remote":true},{"legacyId":"5e7e4bdcd54f1760921a4592","legacyServiceId":"5e7e4bdcd54f1760921a4599","remote":false},{"legacyId":"5e7e4bdcd54f1760921a45be","legacyServiceId":"5e7e4bdcd54f1760921a45c7","remote":false},{"legacyId":"5e7e4bdcd54f1760921a45be","legacyServiceId":"6230a165cf4486002eec0e20","remote":false},{"legacyId":"5e7e4bdcd54f1760921a4678","legacyServiceId":"5e7e4bdcd54f1760921a469b","remote":true},{"legacyId":"5e7e4bdcd54f1760921a4678","legacyServiceId":"5e7e4bdcd54f1760921a4689","remote":true},{"legacyId":"5e7e4bdcd54f1760921a4678","legacyServiceId":"5e7e4bdcd54f1760921a4698","remote":false},{"legacyId":"5e7e4bdcd54f1760921a46ca","legacyServiceId":"5e7e4bdcd54f1760921a46d1","remote":true},{"legacyId":"5e7e4bdcd54f1760921a46ca","legacyServiceId":"5e7e4bdcd54f1760921a46d8","remote":true},{"legacyId":"5e7e4bdbd54f1760921a4277","legacyServiceId":"5e7e4bdbd54f1760921a4282","remote":true},{"legacyId":"5e7e4bdbd54f1760921a4277","legacyServiceId":"6102bc5b3b06910015635423","remote":true},{"legacyId":"5e7e4bdbd54f1760921a4277","legacyServiceId":"62c7101a690bcd00163c34e6","remote":true},{"legacyId":"5e7e4bdcd54f1760921a44b0","legacyServiceId":"5e7e4bdcd54f1760921a44b5","remote":true},{"legacyId":"5e7e4bdcd54f1760921a44b0","legacyServiceId":"6386eecaed1a550008e9b8eb","remote":true},{"legacyId":"5e7e4bdbd54f1760921a435d","legacyServiceId":"5e7e4bdbd54f1760921a4363","remote":true},{"legacyId":"5e7e4bdcd54f1760921a4468","legacyServiceId":"5e7e4bdcd54f1760921a4478","remote":true},{"legacyId":"5e7e4bdcd54f1760921a4545","legacyServiceId":"5e7e4bdcd54f1760921a4554","remote":true},{"legacyId":"5e7e4bdcd54f1760921a45ca","legacyServiceId":"5e7e4bdcd54f1760921a45fd","remote":true},{"legacyId":"5e7e4bdcd54f1760921a46a6","legacyServiceId":"5e7e4bdcd54f1760921a46ae","remote":false},{"legacyId":"5e7e4bdcd54f1760921a46a6","legacyServiceId":"5e7e4bdcd54f1760921a46b4","remote":false},{"legacyId":"5e7e4bdcd54f1760921a46a6","legacyServiceId":"6203fa37468d6d003ee6717c","remote":false},{"legacyId":"5e7e4bdcd54f1760921a46a6","legacyServiceId":"6203fb44468d6d003ee6718c","remote":false},{"legacyId":"5e7e4bdcd54f1760921a43e4","legacyServiceId":"63aa610a162cef000881e3a5","remote":true},{"legacyId":"5e7e4bdcd54f1760921a455e","legacyServiceId":"5e7e4bdcd54f1760921a4563","remote":false},{"legacyId":"5e7e4bdcd54f1760921a455e","legacyServiceId":"62bdea8765e149001633f08d","remote":false},{"legacyId":"5e7e4bdbd54f1760921a42cd","legacyServiceId":"6036bca19ee31a001530d3f0","remote":false},{"legacyId":"5e7e4bdbd54f1760921a42cd","legacyServiceId":"5e7e4bdbd54f1760921a42d8","remote":false},{"legacyId":"5e7e4bdbd54f1760921a42cd","legacyServiceId":"5e7e4bdbd54f1760921a42d5","remote":true},{"legacyId":"5e7e4bdcd54f1760921a439d","legacyServiceId":"5e7e4bdcd54f1760921a43e2","remote":true},{"legacyId":"5e7e4bdcd54f1760921a439d","legacyServiceId":"5e7e4bdcd54f1760921a43ae","remote":true},{"legacyId":"5e7e4bdcd54f1760921a439d","legacyServiceId":"5e7e4bdcd54f1760921a43b2","remote":true},{"legacyId":"5e7e4bdcd54f1760921a439d","legacyServiceId":"5e7e4bdcd54f1760921a43b5","remote":true},{"legacyId":"5e7e4bdcd54f1760921a439d","legacyServiceId":"618840c166b01e001698fdd6","remote":true},{"legacyId":"5e7e4bdcd54f1760921a439d","legacyServiceId":"6188428666b01e001698fde4","remote":true},{"legacyId":"5e7e4bdcd54f1760921a439d","legacyServiceId":"6188440a66b01e001698fde9","remote":true},{"legacyId":"5e7e4bdcd54f1760921a439d","legacyServiceId":"6188456b66b01e001698fded","remote":true},{"legacyId":"5e7e4bdcd54f1760921a439d","legacyServiceId":"6188467066b01e001698fdf1","remote":true},{"legacyId":"5e7e4bdcd54f1760921a443a","legacyServiceId":"5e7e4bdcd54f1760921a4445","remote":false},{"legacyId":"5e7e4bdcd54f1760921a443a","legacyServiceId":"5e7e4bdcd54f1760921a4450","remote":false},{"legacyId":"5e7e4bdcd54f1760921a443a","legacyServiceId":"5e7e4bdcd54f1760921a444a","remote":false},{"legacyId":"5e7e4bdcd54f1760921a443a","legacyServiceId":"60db6a0933bdd800152a3c74","remote":false},{"legacyId":"5e7e4bdcd54f1760921a443a","legacyServiceId":"60db6bc433bdd800152a3c9c","remote":false},{"legacyId":"5e7e4bdcd54f1760921a443a","legacyServiceId":"5e7e4bdcd54f1760921a444d","remote":false},{"legacyId":"5e7e4bdcd54f1760921a443a","legacyServiceId":"5e7e4bdcd54f1760921a4452","remote":false},{"legacyId":"5e7e4bdcd54f1760921a443a","legacyServiceId":"5e7e4bdcd54f1760921a4459","remote":false},{"legacyId":"5e7e4bdcd54f1760921a443a","legacyServiceId":"5e7e4bdcd54f1760921a4447","remote":true},{"legacyId":"5e7e4bdcd54f1760921a443a","legacyServiceId":"62c72303690bcd00163c36d1","remote":false},{"legacyId":"5e7e4bdcd54f1760921a445b","legacyServiceId":"5e7e4bdcd54f1760921a4462","remote":true},{"legacyId":"5e7e4bdcd54f1760921a445b","legacyServiceId":"5e7e4bdcd54f1760921a4465","remote":true},{"legacyId":"5e7e4bdcd54f1760921a4620","legacyServiceId":"5e7e4bdcd54f1760921a4632","remote":false},{"legacyId":"5e7e4bdcd54f1760921a4620","legacyServiceId":"62acdaa7d0f7c900164b9fd3","remote":true},{"legacyId":"5e7e4bdcd54f1760921a4620","legacyServiceId":"63aa64d14d3aa60008c33cb0","remote":false},{"legacyId":"5e7e4bddd54f1760921a488f","legacyServiceId":"60da460df033170015a76934","remote":true},{"legacyId":"5e7e4bddd54f1760921a494b","legacyServiceId":"62d709428e0eed0016a14cdd","remote":false},{"legacyId":"5e7e4bddd54f1760921a494b","legacyServiceId":"62d70e5e8e0eed0016a14d33","remote":true},{"legacyId":"5e7e4bddd54f1760921a487e","legacyServiceId":"5e7e4bddd54f1760921a4886","remote":true},{"legacyId":"5e7e4bddd54f1760921a487e","legacyServiceId":"5e7e4bddd54f1760921a488a","remote":false},{"legacyId":"5e7e4bddd54f1760921a4a63","legacyServiceId":"5e7e4bddd54f1760921a4a68","remote":false},{"legacyId":"5e7e4bddd54f1760921a4a63","legacyServiceId":"63a5fab82a1da40008fba050","remote":false},{"legacyId":"5e7e4bded54f1760921a4aa7","legacyServiceId":"5e7e4bded54f1760921a4aad","remote":true},{"legacyId":"5e7e4bded54f1760921a4aa7","legacyServiceId":"5ef0161defb35300179fec93","remote":true},{"legacyId":"5e7e4bded54f1760921a4aa7","legacyServiceId":"6313c5202de419001629c8db","remote":true},{"legacyId":"5e7e4bddd54f1760921a47d6","legacyServiceId":"5f7755a03f9f9100173c07fd","remote":false},{"legacyId":"5e7e4bddd54f1760921a47de","legacyServiceId":"5ee642ffffe17b0017c0fc3c","remote":true},{"legacyId":"5e7e4bddd54f1760921a47ed","legacyServiceId":"6026a839847dd00015124052","remote":false},{"legacyId":"5e7e4bddd54f1760921a47ed","legacyServiceId":"6026a993847dd00015124062","remote":true},{"legacyId":"5e7e4bddd54f1760921a47ed","legacyServiceId":"6026ac4d847dd0001512408d","remote":false},{"legacyId":"5e7e4bddd54f1760921a47ed","legacyServiceId":"5e7e4bddd54f1760921a47f2","remote":false},{"legacyId":"5e7e4bddd54f1760921a47ed","legacyServiceId":"5e7e4bddd54f1760921a47f6","remote":false},{"legacyId":"5e7e4bddd54f1760921a4a3c","legacyServiceId":"5e7e4bddd54f1760921a4a42","remote":false},{"legacyId":"5e7e4bddd54f1760921a4a3c","legacyServiceId":"5e7e4bddd54f1760921a4a47","remote":false},{"legacyId":"5e7e4bdcd54f1760921a4701","legacyServiceId":"5e7e4bdcd54f1760921a470d","remote":true},{"legacyId":"5e7e4bdcd54f1760921a4701","legacyServiceId":"5e7e4bdcd54f1760921a470f","remote":true},{"legacyId":"5e7e4bddd54f1760921a48cb","legacyServiceId":"5e7e4bddd54f1760921a48d2","remote":false},{"legacyId":"5e7e4bddd54f1760921a48f4","legacyServiceId":"60d4e651417e720015cc7fdf","remote":true},{"legacyId":"5e7e4bddd54f1760921a48f9","legacyServiceId":"5e7e4bddd54f1760921a4914","remote":false},{"legacyId":"5e7e4bddd54f1760921a48f9","legacyServiceId":"5f97308fc381160017d31a83","remote":false},{"legacyId":"5e7e4bddd54f1760921a48f9","legacyServiceId":"5e7e4bddd54f1760921a4927","remote":true},{"legacyId":"5e7e4bded54f1760921a4b04","legacyServiceId":"5e7e4bded54f1760921a4b0b","remote":true},{"legacyId":"5e7e4bdcd54f1760921a46e4","legacyServiceId":"602c7352ff84f900155ca3fc","remote":true},{"legacyId":"5e7e4bdcd54f1760921a46e4","legacyServiceId":"602c7120ff84f900155ca3a0","remote":true},{"legacyId":"5e7e4bdcd54f1760921a46e4","legacyServiceId":"5e7e4bdcd54f1760921a46ef","remote":false},{"legacyId":"5e7e4bdcd54f1760921a4719","legacyServiceId":"5e7e4bdcd54f1760921a471e","remote":false},{"legacyId":"5e7e4bddd54f1760921a4936","legacyServiceId":"5e7e4bddd54f1760921a493f","remote":true},{"legacyId":"5e7e4bddd54f1760921a4936","legacyServiceId":"5e7e4bddd54f1760921a4948","remote":true},{"legacyId":"5e7e4bded54f1760921a4ab4","legacyServiceId":"5e7e4bded54f1760921a4ab8","remote":true},{"legacyId":"5e7e4bded54f1760921a4ab4","legacyServiceId":"62a8e4311f3df80016e920b5","remote":false},{"legacyId":"5e7e4bdcd54f1760921a4725","legacyServiceId":"5ffe70b22dea370015bc1626","remote":true},{"legacyId":"5e7e4bdcd54f1760921a46f8","legacyServiceId":"5e7e4bdcd54f1760921a46fe","remote":true},{"legacyId":"5e7e4bdcd54f1760921a46f8","legacyServiceId":"5e9485bb11328e001779500b","remote":false},{"legacyId":"5e7e4bdcd54f1760921a46f8","legacyServiceId":"5e7e4bdcd54f1760921a46fc","remote":true},{"legacyId":"5e7e4bddd54f1760921a49c3","legacyServiceId":"60650f34120e360015025270","remote":false},{"legacyId":"5e7e4bddd54f1760921a49c3","legacyServiceId":"633741ef2f780e00167821b0","remote":false},{"legacyId":"5e7e4bddd54f1760921a4786","legacyServiceId":"5e7e4bddd54f1760921a478b","remote":true},{"legacyId":"5e7e4bddd54f1760921a489f","legacyServiceId":"5e7e4bddd54f1760921a48a7","remote":false},{"legacyId":"5e7e4bddd54f1760921a489f","legacyServiceId":"5e7e4bddd54f1760921a48ab","remote":false},{"legacyId":"5e7e4bddd54f1760921a489f","legacyServiceId":"5e7e4bddd54f1760921a48a3","remote":false},{"legacyId":"5e7e4bddd54f1760921a49d3","legacyServiceId":"5e7e4bddd54f1760921a4a10","remote":false},{"legacyId":"5e7e4bddd54f1760921a49d3","legacyServiceId":"5f08a7b75f09a9001739ed23","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4e74","legacyServiceId":"5e7e4bdfd54f1760921a4e7c","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4e74","legacyServiceId":"5e7e4bdfd54f1760921a4e79","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4e74","legacyServiceId":"5e7e4bdfd54f1760921a4e82","remote":true},{"legacyId":"5e7e4bded54f1760921a4d44","legacyServiceId":"5f62a8087d66130017e790f1","remote":true},{"legacyId":"5e7e4bded54f1760921a4d44","legacyServiceId":"5f62a7507d66130017e790ec","remote":true},{"legacyId":"5e7e4bded54f1760921a4d44","legacyServiceId":"5f62a5327d66130017e790dd","remote":true},{"legacyId":"5e7e4bded54f1760921a4d44","legacyServiceId":"5f62a3237d66130017e790d3","remote":true},{"legacyId":"5e7e4bded54f1760921a4d44","legacyServiceId":"5f62a0657d66130017e790c0","remote":true},{"legacyId":"5e7e4bded54f1760921a4d44","legacyServiceId":"5f62a1be7d66130017e790cc","remote":true},{"legacyId":"5e7e4bded54f1760921a4d44","legacyServiceId":"5e7e4bded54f1760921a4d50","remote":true},{"legacyId":"5e7e4bded54f1760921a4bc7","legacyServiceId":"5e7e4bded54f1760921a4bcf","remote":true},{"legacyId":"5e7e4bded54f1760921a4d2b","legacyServiceId":"5e7e4bded54f1760921a4d34","remote":true},{"legacyId":"5e7e4bded54f1760921a4d2b","legacyServiceId":"5e7e4bded54f1760921a4d38","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4ded","legacyServiceId":"5e7e4bdfd54f1760921a4df3","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4eac","legacyServiceId":"5e7e4bdfd54f1760921a4eb0","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4eac","legacyServiceId":"6074c62e09773f0015c009e3","remote":true},{"legacyId":"5e7e4bded54f1760921a4b45","legacyServiceId":"5e7e4bded54f1760921a4b67","remote":true},{"legacyId":"5e7e4bded54f1760921a4b45","legacyServiceId":"5e7e4bded54f1760921a4b79","remote":false},{"legacyId":"5e7e4bded54f1760921a4b45","legacyServiceId":"63f186867bce440008a5d834","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4e17","legacyServiceId":"5e7e4bdfd54f1760921a4e1f","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4eed","legacyServiceId":"5e7e4bdfd54f1760921a4efc","remote":true},{"legacyId":"5e7e4bded54f1760921a4bd2","legacyServiceId":"5e7e4bded54f1760921a4bda","remote":false},{"legacyId":"5e7e4bded54f1760921a4bd2","legacyServiceId":"5e7e4bded54f1760921a4bd7","remote":true},{"legacyId":"5e7e4bded54f1760921a4bd2","legacyServiceId":"5e7e4bded54f1760921a4be0","remote":false},{"legacyId":"5e7e4bded54f1760921a4bd2","legacyServiceId":"5e7e4bded54f1760921a4bdd","remote":false},{"legacyId":"5e7e4bded54f1760921a4bd2","legacyServiceId":"5e7e4bded54f1760921a4be3","remote":false},{"legacyId":"5e7e4bded54f1760921a4bd2","legacyServiceId":"6272c6adbbb270003e81355a","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4e3b","legacyServiceId":"602401e62e57310015944a4d","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4e3b","legacyServiceId":"5e7e4bdfd54f1760921a4e4c","remote":false},{"legacyId":"5e7e4bded54f1760921a4d63","legacyServiceId":"5f62974b7d66130017e7902b","remote":true},{"legacyId":"5e7e4bded54f1760921a4b9e","legacyServiceId":"5e7e4bded54f1760921a4ba9","remote":false},{"legacyId":"5e7e4bded54f1760921a4c17","legacyServiceId":"5e7e4bded54f1760921a4c25","remote":false},{"legacyId":"5e7e4bded54f1760921a4c17","legacyServiceId":"5ece7d636437d80017e8a6bf","remote":false},{"legacyId":"5e7e4bded54f1760921a4c17","legacyServiceId":"5e7e4bded54f1760921a4c22","remote":false},{"legacyId":"5e7e4bded54f1760921a4c17","legacyServiceId":"5e7e4bded54f1760921a4c1f","remote":false},{"legacyId":"5e7e4bded54f1760921a4c17","legacyServiceId":"63f18d6faebc5e0008d664de","remote":false},{"legacyId":"5e7e4bded54f1760921a4cde","legacyServiceId":"5e7e4bded54f1760921a4ce2","remote":false},{"legacyId":"5e7e4bded54f1760921a4cde","legacyServiceId":"5e7e4bded54f1760921a4cea","remote":false},{"legacyId":"5e7e4bded54f1760921a4cde","legacyServiceId":"5e7e4bded54f1760921a4cee","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4f15","legacyServiceId":"5e7e4bdfd54f1760921a4f19","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f15","legacyServiceId":"5e7e4bdfd54f1760921a4f1b","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f15","legacyServiceId":"608b4a260dc93800153ddd56","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f3b","legacyServiceId":"5e7e4bdfd54f1760921a4f43","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f97","legacyServiceId":"5e7e4bdfd54f1760921a4fa0","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f97","legacyServiceId":"5f2ae8e3b18617001785ef6a","remote":false},{"legacyId":"5e7e4bded54f1760921a4db8","legacyServiceId":"5f691fca7791ec0017022e7f","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4ebd","legacyServiceId":"5e7e4bdfd54f1760921a4edf","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4ebd","legacyServiceId":"5e7e4bdfd54f1760921a4edc","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4e84","legacyServiceId":"5e7e4bdfd54f1760921a4e94","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4e84","legacyServiceId":"5e7e4bdfd54f1760921a4e97","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4e84","legacyServiceId":"633c8e7027f64200166d1c14","remote":true},{"legacyId":"5e7e4bded54f1760921a4b30","legacyServiceId":"5e7e4bded54f1760921a4b33","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4f5f","legacyServiceId":"5e7e4bdfd54f1760921a4f7c","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f5f","legacyServiceId":"5fb6cfe118812b0017c80541","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4f84","legacyServiceId":"5e7e4bdfd54f1760921a4f87","remote":false},{"legacyId":"5e7e4bded54f1760921a4d07","legacyServiceId":"5e7e4bded54f1760921a4d0b","remote":true},{"legacyId":"5e7e4bded54f1760921a4c89","legacyServiceId":"62c5d624178f1100164f4de9","remote":false},{"legacyId":"5e7e4bded54f1760921a4d7f","legacyServiceId":"5e7e4bded54f1760921a4d87","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4e32","legacyServiceId":"5e7e4bdfd54f1760921a4e35","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f1d","legacyServiceId":"608ba718a60870001506323a","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4fbf","legacyServiceId":"5e7e4bdfd54f1760921a4fcb","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4fbf","legacyServiceId":"5e7e4bdfd54f1760921a4fc8","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4fbf","legacyServiceId":"5e7e4bdfd54f1760921a4fce","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4fbf","legacyServiceId":"6066a3433627720015f2c895","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4fbf","legacyServiceId":"6066a4033627720015f2c8a2","remote":false},{"legacyId":"5e7e4bded54f1760921a4b36","legacyServiceId":"5e7e4bded54f1760921a4b3c","remote":false},{"legacyId":"5e7e4bded54f1760921a4cd8","legacyServiceId":"5e7e4bded54f1760921a4cdb","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4e5f","legacyServiceId":"5e7e4bdfd54f1760921a4e6a","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4e5f","legacyServiceId":"629f660e553d8b002edb7554","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f0a","legacyServiceId":"5e7e4bdfd54f1760921a4f12","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f0a","legacyServiceId":"608a47060dc93800153dd7ab","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f0a","legacyServiceId":"608a4b100dc93800153dd7dc","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f48","legacyServiceId":"5e7e4bdfd54f1760921a4f4a","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4f48","legacyServiceId":"5e7e4bdfd54f1760921a4f4c","remote":false},{"legacyId":"5e7e4bdfd54f1760921a50a3","legacyServiceId":"620998d5417025002ebd36c4","remote":true},{"legacyId":"5e7e4bdfd54f1760921a50a3","legacyServiceId":"6209aa09417025002ebd36d1","remote":true},{"legacyId":"5e7e4bdfd54f1760921a50a3","legacyServiceId":"6209abe8417025002ebd36dd","remote":true},{"legacyId":"5e7e4bdfd54f1760921a50a3","legacyServiceId":"620bf1e483968b0030320234","remote":true},{"legacyId":"5e7e4bdfd54f1760921a50a3","legacyServiceId":"620bf29683968b003032023b","remote":true},{"legacyId":"5e7e4bdfd54f1760921a5046","legacyServiceId":"604bc7c8dbd26f0015654c32","remote":false},{"legacyId":"5e7e4be0d54f1760921a51ce","legacyServiceId":"6312b406293178001645bcd0","remote":true},{"legacyId":"5e7e4bdfd54f1760921a50ce","legacyServiceId":"6329c9eeda6df20016987f22","remote":true},{"legacyId":"5e7e4be0d54f1760921a513c","legacyServiceId":"607626107f928f00155b9013","remote":true},{"legacyId":"5e7e4be0d54f1760921a50fa","legacyServiceId":"5e7e4be0d54f1760921a50ff","remote":true},{"legacyId":"5e7e4be0d54f1760921a51b6","legacyServiceId":"5f08cfd25f09a9001739ef5d","remote":false},{"legacyId":"5e7e4be0d54f1760921a51b6","legacyServiceId":"5e7e4be0d54f1760921a51bc","remote":false},{"legacyId":"5e7e4bdfd54f1760921a50aa","legacyServiceId":"6088dc428e7e8400159e5717","remote":false},{"legacyId":"5e7e4bdfd54f1760921a4fd0","legacyServiceId":"5e7e4bdfd54f1760921a4fe0","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4fd0","legacyServiceId":"5e7e4bdfd54f1760921a4fe2","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4fd0","legacyServiceId":"5e7e4bdfd54f1760921a4fdc","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4fd0","legacyServiceId":"5e7e4bdfd54f1760921a4fda","remote":true},{"legacyId":"5e7e4bdfd54f1760921a4fd0","legacyServiceId":"5e7e4bdfd54f1760921a4fde","remote":true},{"legacyId":"5e7e4be0d54f1760921a50d2","legacyServiceId":"608c5f15a60870001506356f","remote":false},{"legacyId":"5e7e4be0d54f1760921a5180","legacyServiceId":"5f6ce88f2157be0017bf0429","remote":true},{"legacyId":"5e7e4be0d54f1760921a5186","legacyServiceId":"5e7e4be0d54f1760921a5188","remote":true},{"legacyId":"5e7e4be0d54f1760921a518a","legacyServiceId":"5e7e4be0d54f1760921a518d","remote":true},{"legacyId":"5e7e4bdfd54f1760921a5011","legacyServiceId":"5e7e4bdfd54f1760921a5030","remote":true},{"legacyId":"5e7e4bdfd54f1760921a5011","legacyServiceId":"5e7e4bdfd54f1760921a501c","remote":true},{"legacyId":"5e7e4be1d54f1760921a5407","legacyServiceId":"5e7e4be1d54f1760921a540a","remote":false},{"legacyId":"5e7e4be1d54f1760921a5423","legacyServiceId":"5e7e4be1d54f1760921a542a","remote":false},{"legacyId":"5e7e4be0d54f1760921a52dc","legacyServiceId":"617848617418a9001690a7db","remote":false},{"legacyId":"5e7e4be0d54f1760921a52dc","legacyServiceId":"5e7e4be0d54f1760921a52e2","remote":false},{"legacyId":"5e7e4be0d54f1760921a52e4","legacyServiceId":"5e7e4be0d54f1760921a52f1","remote":true},{"legacyId":"5e7e4be0d54f1760921a52e4","legacyServiceId":"6377f3c547ffd20008752909","remote":true},{"legacyId":"5e7e4be0d54f1760921a52f9","legacyServiceId":"5e7e4be0d54f1760921a5305","remote":true},{"legacyId":"5e7e4be0d54f1760921a52f9","legacyServiceId":"5e93d7c7b2c71e001730de36","remote":false},{"legacyId":"5e7e4be0d54f1760921a52f9","legacyServiceId":"5e7e4be0d54f1760921a5309","remote":false},{"legacyId":"5e7e4be0d54f1760921a52f9","legacyServiceId":"5e7e4be0d54f1760921a5301","remote":false},{"legacyId":"5e7e4be0d54f1760921a52f9","legacyServiceId":"5e7e4be0d54f1760921a530d","remote":false},{"legacyId":"5e7e4be0d54f1760921a5338","legacyServiceId":"5e7e4be0d54f1760921a5351","remote":true},{"legacyId":"5e7e4be0d54f1760921a5319","legacyServiceId":"5e7e4be0d54f1760921a531f","remote":false},{"legacyId":"5e7e4be0d54f1760921a5319","legacyServiceId":"5e7e4be0d54f1760921a5322","remote":false},{"legacyId":"5e7e4be0d54f1760921a5319","legacyServiceId":"5e7e4be0d54f1760921a5325","remote":true},{"legacyId":"5e7e4be0d54f1760921a5353","legacyServiceId":"5e7e4be0d54f1760921a5356","remote":true},{"legacyId":"5e7e4be1d54f1760921a53e2","legacyServiceId":"5e7e4be1d54f1760921a53ed","remote":false},{"legacyId":"5e7e4be0d54f1760921a5225","legacyServiceId":"5e7e4be0d54f1760921a522e","remote":false},{"legacyId":"5e7e4be0d54f1760921a5296","legacyServiceId":"5e7e4be0d54f1760921a52a5","remote":true},{"legacyId":"5e7e4be0d54f1760921a5296","legacyServiceId":"5e7e4be0d54f1760921a529b","remote":false},{"legacyId":"5e7e4be0d54f1760921a5296","legacyServiceId":"5e7e4be0d54f1760921a52a0","remote":false},{"legacyId":"5e7e4be1d54f1760921a53f3","legacyServiceId":"5e7e4be1d54f1760921a53fb","remote":false},{"legacyId":"5e7e4be1d54f1760921a53f3","legacyServiceId":"5e7e4be1d54f1760921a5403","remote":false},{"legacyId":"5e7e4be1d54f1760921a546a","legacyServiceId":"63f1c533d0d9870008cfcf1d","remote":true},{"legacyId":"5e7e4be1d54f1760921a5691","legacyServiceId":"62b342d85c01840016bf9574","remote":true},{"legacyId":"5e7e4be1d54f1760921a5691","legacyServiceId":"62d17827c028d00016b5a5dc","remote":true},{"legacyId":"5e7e4be1d54f1760921a5691","legacyServiceId":"62d178cdc028d00016b5a5dd","remote":true},{"legacyId":"5e7e4be2d54f1760921a5788","legacyServiceId":"5e7e4be2d54f1760921a57a6","remote":false},{"legacyId":"5e7e4be2d54f1760921a5788","legacyServiceId":"62b7b88570863900168f2e90","remote":false},{"legacyId":"5e7e4be2d54f1760921a5788","legacyServiceId":"62b7b96770863900168f2e91","remote":false},{"legacyId":"5e7e4be2d54f1760921a58a3","legacyServiceId":"5e7e4be2d54f1760921a58af","remote":true},{"legacyId":"5e7e4be2d54f1760921a58a3","legacyServiceId":"5e7e4be2d54f1760921a58ad","remote":true},{"legacyId":"5e7e4be2d54f1760921a58a3","legacyServiceId":"5e7e4be2d54f1760921a58b2","remote":false},{"legacyId":"5e7e4be2d54f1760921a58a3","legacyServiceId":"6023dd6a6ef1e7001526c140","remote":true},{"legacyId":"5e7e4be1d54f1760921a559f","legacyServiceId":"5e7e4be1d54f1760921a55b5","remote":false},{"legacyId":"5e7e4be1d54f1760921a559f","legacyServiceId":"5e7e4be1d54f1760921a55c1","remote":false},{"legacyId":"5e7e4be1d54f1760921a559f","legacyServiceId":"5e7e4be1d54f1760921a55b8","remote":false},{"legacyId":"5e7e4be1d54f1760921a559f","legacyServiceId":"5e7e4be1d54f1760921a55bb","remote":false},{"legacyId":"5e7e4be1d54f1760921a559f","legacyServiceId":"5e7e4be1d54f1760921a55ac","remote":false},{"legacyId":"5e7e4be1d54f1760921a559f","legacyServiceId":"5e7e4be1d54f1760921a55b2","remote":false},{"legacyId":"5e7e4be1d54f1760921a559f","legacyServiceId":"5e7e4be1d54f1760921a55af","remote":false},{"legacyId":"5e7e4be1d54f1760921a559f","legacyServiceId":"5e7e4be1d54f1760921a55be","remote":false},{"legacyId":"5e7e4be1d54f1760921a5633","legacyServiceId":"606f1ddff012bf00150675a6","remote":true},{"legacyId":"5e7e4be1d54f1760921a5633","legacyServiceId":"6284fda4201db4003e435e34","remote":true},{"legacyId":"5e7e4be1d54f1760921a5633","legacyServiceId":"628524fc201db4003e435e7e","remote":false},{"legacyId":"5e7e4be1d54f1760921a5633","legacyServiceId":"6285294c201db4003e435e8c","remote":true},{"legacyId":"5e7e4be2d54f1760921a57b4","legacyServiceId":"5f8606d6987252001768c36f","remote":true},{"legacyId":"5e7e4be2d54f1760921a57b4","legacyServiceId":"60cb95b8a3eb7a0015fcec82","remote":true},{"legacyId":"5e7e4be1d54f1760921a544b","legacyServiceId":"5e7e4be1d54f1760921a5455","remote":true},{"legacyId":"5e7e4be1d54f1760921a5476","legacyServiceId":"5f6bdc6954a96e00174945e3","remote":false},{"legacyId":"5e7e4be1d54f1760921a5476","legacyServiceId":"5e7e4be1d54f1760921a5492","remote":false},{"legacyId":"5e7e4be2d54f1760921a5844","legacyServiceId":"61bd32d45471620016388942","remote":true},{"legacyId":"5e7e4be2d54f1760921a5844","legacyServiceId":"5e7e4be2d54f1760921a585b","remote":true},{"legacyId":"5e7e4be2d54f1760921a5844","legacyServiceId":"5e7e4be2d54f1760921a5852","remote":true},{"legacyId":"5e7e4be2d54f1760921a57d5","legacyServiceId":"5e7e4be2d54f1760921a57f1","remote":false},{"legacyId":"5e7e4be2d54f1760921a57d5","legacyServiceId":"5e7e4be2d54f1760921a57da","remote":true},{"legacyId":"5e7e4be1d54f1760921a54a4","legacyServiceId":"5e7e4be1d54f1760921a54ac","remote":true},{"legacyId":"5e7e4be1d54f1760921a55d6","legacyServiceId":"5e7e4be1d54f1760921a55e3","remote":true},{"legacyId":"5e7e4be1d54f1760921a5529","legacyServiceId":"5e7e4be1d54f1760921a5540","remote":true},{"legacyId":"5e7e4be1d54f1760921a5529","legacyServiceId":"5e7e4be1d54f1760921a553e","remote":false},{"legacyId":"5e7e4be1d54f1760921a5529","legacyServiceId":"5e7e4be1d54f1760921a5538","remote":true},{"legacyId":"5e7e4be1d54f1760921a56b1","legacyServiceId":"5ee67227ffe17b0017c0fd51","remote":true},{"legacyId":"5e7e4be1d54f1760921a56b1","legacyServiceId":"5e7e4be1d54f1760921a56b9","remote":true},{"legacyId":"5e7e4be1d54f1760921a56b1","legacyServiceId":"61b639fae9370d0016ee7144","remote":true},{"legacyId":"5e7e4be1d54f1760921a5668","legacyServiceId":"5e7e4be1d54f1760921a5670","remote":true},{"legacyId":"5e7e4be1d54f1760921a5668","legacyServiceId":"602bfb3aff84f900155c9eda","remote":true},{"legacyId":"5e7e4be1d54f1760921a5668","legacyServiceId":"602c0146ff84f900155c9ef1","remote":true},{"legacyId":"5e7e4be1d54f1760921a5668","legacyServiceId":"5e7e4be1d54f1760921a5672","remote":true},{"legacyId":"5e7e4be1d54f1760921a5668","legacyServiceId":"636566c40f2d4e0016355c66","remote":true},{"legacyId":"5e7e4be1d54f1760921a5668","legacyServiceId":"644eaa36817bdc0008b12e43","remote":true},{"legacyId":"5e7e4be1d54f1760921a5668","legacyServiceId":"644eacfb53c8e700089e185f","remote":true},{"legacyId":"5e7e4be2d54f1760921a5875","legacyServiceId":"622641a8c68a07002e413741","remote":true},{"legacyId":"5e7e4be1d54f1760921a5495","legacyServiceId":"5f690c7c7791ec0017022dc6","remote":true},{"legacyId":"5e7e4be1d54f1760921a5495","legacyServiceId":"6324c2b8e525c30016646a21","remote":true},{"legacyId":"5e7e4be1d54f1760921a55fb","legacyServiceId":"5e7e4be1d54f1760921a5604","remote":false},{"legacyId":"5e7e4be1d54f1760921a55fb","legacyServiceId":"5e7e4be1d54f1760921a5600","remote":false},{"legacyId":"5e7e4be1d54f1760921a55fb","legacyServiceId":"5e7e4be1d54f1760921a560c","remote":false},{"legacyId":"5e7e4be1d54f1760921a55fb","legacyServiceId":"5e7e4be1d54f1760921a5608","remote":false},{"legacyId":"5e7e4be1d54f1760921a55fb","legacyServiceId":"5e7e4be1d54f1760921a5610","remote":false},{"legacyId":"5e7e4be1d54f1760921a545c","legacyServiceId":"5e7e4be1d54f1760921a5468","remote":true},{"legacyId":"5e7e4be1d54f1760921a5614","legacyServiceId":"5e7e4be1d54f1760921a5624","remote":false},{"legacyId":"5e7e4be1d54f1760921a5614","legacyServiceId":"5e7e4be1d54f1760921a5620","remote":true},{"legacyId":"5e7e4be1d54f1760921a5614","legacyServiceId":"5e7e4be1d54f1760921a5626","remote":false},{"legacyId":"5e7e4be1d54f1760921a5614","legacyServiceId":"5e7e4be1d54f1760921a561d","remote":false},{"legacyId":"5e7e4be1d54f1760921a5614","legacyServiceId":"5e7e4be1d54f1760921a562d","remote":false},{"legacyId":"5e7e4be1d54f1760921a5614","legacyServiceId":"5e7e4be1d54f1760921a562f","remote":false},{"legacyId":"5e7e4be1d54f1760921a5706","legacyServiceId":"6049af3cbd253100157686da","remote":false},{"legacyId":"5e7e4be1d54f1760921a54ee","legacyServiceId":"608de29cf7bb7e001543232b","remote":true},{"legacyId":"5e7e4be1d54f1760921a563b","legacyServiceId":"5e7e4be1d54f1760921a564a","remote":false},{"legacyId":"5e7e4be2d54f1760921a57aa","legacyServiceId":"6060c2885253730015fe5253","remote":false},{"legacyId":"5e7e4be2d54f1760921a57aa","legacyServiceId":"601c917908ffbe00156ebee9","remote":false},{"legacyId":"5e7e4be2d54f1760921a574d","legacyServiceId":"5e7e4be2d54f1760921a5757","remote":true},{"legacyId":"5e7e4be2d54f1760921a59ee","legacyServiceId":"5e7e4be2d54f1760921a5a25","remote":false},{"legacyId":"5e7e4be2d54f1760921a598a","legacyServiceId":"5e7e4be2d54f1760921a599b","remote":false},{"legacyId":"5e7e4be2d54f1760921a598a","legacyServiceId":"5e7e4be2d54f1760921a5998","remote":false},{"legacyId":"5e7e4be2d54f1760921a598a","legacyServiceId":"5e7e4be2d54f1760921a5992","remote":false},{"legacyId":"5e7e4be2d54f1760921a598a","legacyServiceId":"5e7e4be2d54f1760921a5995","remote":false},{"legacyId":"5e7e4be2d54f1760921a598a","legacyServiceId":"5e7e4be2d54f1760921a598f","remote":false},{"legacyId":"5e7e4be2d54f1760921a59a6","legacyServiceId":"60e481374906cf0015bc40ae","remote":true},{"legacyId":"5e7e4be4d54f1760921a5d2f","legacyServiceId":"60cb709fa3eb7a0015fcea1f","remote":true},{"legacyId":"5e7e4be4d54f1760921a5d2f","legacyServiceId":"608c34d0a6087000150633d9","remote":false},{"legacyId":"5e7e4be4d54f1760921a5d60","legacyServiceId":"5e7e4be4d54f1760921a5d74","remote":true},{"legacyId":"5e7e4be3d54f1760921a5c66","legacyServiceId":"5ee134ef5ea23e0017a7a9c0","remote":true},{"legacyId":"5e7e4be3d54f1760921a5c66","legacyServiceId":"5e7e4be3d54f1760921a5c6a","remote":false},{"legacyId":"5e7e4be3d54f1760921a5c8e","legacyServiceId":"5e7e4be3d54f1760921a5c91","remote":true},{"legacyId":"5e7e4be3d54f1760921a5baf","legacyServiceId":"5e7e4be3d54f1760921a5bb7","remote":false},{"legacyId":"5e7e4be3d54f1760921a5baf","legacyServiceId":"60c93465db23ea0015b2c775","remote":true},{"legacyId":"5e7e4be3d54f1760921a5bcd","legacyServiceId":"5e7e4be3d54f1760921a5bd8","remote":true},{"legacyId":"5e7e4be3d54f1760921a5bcd","legacyServiceId":"5e7e4be3d54f1760921a5bd3","remote":true},{"legacyId":"5e7e4be3d54f1760921a5bcd","legacyServiceId":"5e7e4be3d54f1760921a5bdd","remote":false},{"legacyId":"5e7e4be3d54f1760921a5b4b","legacyServiceId":"5e7e4be3d54f1760921a5b53","remote":false},{"legacyId":"5e7e4be3d54f1760921a5b4b","legacyServiceId":"6102c3033b06910015635480","remote":true},{"legacyId":"5e7e4be3d54f1760921a5c88","legacyServiceId":"5e7e4be3d54f1760921a5c8b","remote":true},{"legacyId":"5e7e4be3d54f1760921a5b31","legacyServiceId":"6435b992932d6d00088320f9","remote":true},{"legacyId":"5e7e4be3d54f1760921a5b31","legacyServiceId":"6435c989a2bc6f0008b10626","remote":true},{"legacyId":"5e8a34398e957400179de124","legacyServiceId":"5e8a39808e957400179de172","remote":true},{"legacyId":"5e8a34398e957400179de124","legacyServiceId":"5e8a35ad8e957400179de13d","remote":true},{"legacyId":"5e8a34398e957400179de124","legacyServiceId":"5e8a3bd08e957400179de194","remote":true},{"legacyId":"5e8a34398e957400179de124","legacyServiceId":"5e8a37c58e957400179de15d","remote":true},{"legacyId":"5e7e4be2d54f1760921a597d","legacyServiceId":"5e952800ef07fe001758d390","remote":true},{"legacyId":"5e7e4be3d54f1760921a5b59","legacyServiceId":"5e7e4be3d54f1760921a5b5f","remote":true},{"legacyId":"5e7e4be3d54f1760921a5c73","legacyServiceId":"5e7e4be3d54f1760921a5c7c","remote":false},{"legacyId":"5e7e4be3d54f1760921a5a74","legacyServiceId":"5e7e4be3d54f1760921a5a77","remote":true},{"legacyId":"5e7e4be4d54f1760921a5ca1","legacyServiceId":"5e7e4be4d54f1760921a5cb0","remote":true},{"legacyId":"5e7e4be4d54f1760921a5ca1","legacyServiceId":"5e7e4be4d54f1760921a5caf","remote":true},{"legacyId":"5e7e4be3d54f1760921a5a79","legacyServiceId":"5e7e4be3d54f1760921a5a82","remote":false},{"legacyId":"5e7e4be3d54f1760921a5a79","legacyServiceId":"5e7e4be3d54f1760921a5a8e","remote":false},{"legacyId":"5e7e4be3d54f1760921a5a79","legacyServiceId":"5e7e4be3d54f1760921a5a88","remote":false},{"legacyId":"5e7e4be3d54f1760921a5a79","legacyServiceId":"5e7e4be3d54f1760921a5a8b","remote":false},{"legacyId":"5e7e4be3d54f1760921a5a79","legacyServiceId":"5e7e4be3d54f1760921a5a85","remote":false},{"legacyId":"5e7e4be3d54f1760921a5a79","legacyServiceId":"602f24f76e3a010015c42be5","remote":true},{"legacyId":"5e7e4be3d54f1760921a5bf8","legacyServiceId":"6022aea56ef1e7001526b6cd","remote":false},{"legacyId":"5e7e4be3d54f1760921a5bf8","legacyServiceId":"6022acec6ef1e7001526b6b2","remote":false},{"legacyId":"5e7e4be3d54f1760921a5bf8","legacyServiceId":"5e7e4be3d54f1760921a5c09","remote":false},{"legacyId":"5e7e4be3d54f1760921a5bf8","legacyServiceId":"6350d55a543d290016f5f095","remote":false},{"legacyId":"5e7e4be3d54f1760921a5bf8","legacyServiceId":"6350d6f2543d290016f5f0a4","remote":false},{"legacyId":"5e7e4be4d54f1760921a5d27","legacyServiceId":"5fc595625f05f4001725261e","remote":true},{"legacyId":"5e7e4be4d54f1760921a5d2b","legacyServiceId":"5fac34c7878cec00179bd30e","remote":false},{"legacyId":"5e8a6d580a8de30017009c35","legacyServiceId":"5e8a6fdf0a8de30017009c57","remote":false},{"legacyId":"5e8a6d580a8de30017009c35","legacyServiceId":"5e8a718a0a8de30017009c5f","remote":false},{"legacyId":"5e8a6d580a8de30017009c35","legacyServiceId":"5e8a71dd0a8de30017009c67","remote":false},{"legacyId":"5e8a6d580a8de30017009c35","legacyServiceId":"5e8a71bb0a8de30017009c63","remote":false},{"legacyId":"5e8a6d580a8de30017009c35","legacyServiceId":"5e8a72130a8de30017009c6b","remote":false},{"legacyId":"5e8a6d580a8de30017009c35","legacyServiceId":"5e8a72a90a8de30017009c73","remote":false},{"legacyId":"5e8a6d580a8de30017009c35","legacyServiceId":"5e8a725d0a8de30017009c6f","remote":false},{"legacyId":"5e8a6d580a8de30017009c35","legacyServiceId":"5e8a731d0a8de30017009c77","remote":false},{"legacyId":"5e8a6d580a8de30017009c35","legacyServiceId":"5e8a734e0a8de30017009c7b","remote":false},{"legacyId":"5e7e4be2d54f1760921a599e","legacyServiceId":"5e7e4be2d54f1760921a59a4","remote":true},{"legacyId":"5e7e4be2d54f1760921a59ce","legacyServiceId":"5f0b8b5539f3b00017b37f80","remote":true},{"legacyId":"5e7e4be2d54f1760921a59ce","legacyServiceId":"5f0b8e3c39f3b00017b37f8f","remote":true},{"legacyId":"5e7e4be2d54f1760921a59ce","legacyServiceId":"5e890d068e957400179ddfa7","remote":false},{"legacyId":"5e7e4be2d54f1760921a59ce","legacyServiceId":"5e7e4be2d54f1760921a59d3","remote":false},{"legacyId":"5e7e4be2d54f1760921a59ce","legacyServiceId":"60e68982964c830015957dac","remote":false},{"legacyId":"5e7e4be2d54f1760921a59ce","legacyServiceId":"62b2670f2abbb000169cabd9","remote":false},{"legacyId":"5e7e4be3d54f1760921a5a31","legacyServiceId":"5e7e4be3d54f1760921a5a3a","remote":false},{"legacyId":"5e7e4be3d54f1760921a5a31","legacyServiceId":"5e7e4be3d54f1760921a5a36","remote":false},{"legacyId":"5e7e4be3d54f1760921a5a31","legacyServiceId":"5e7e4be3d54f1760921a5a3e","remote":false},{"legacyId":"5e7e4be3d54f1760921a5a31","legacyServiceId":"5e7e4be3d54f1760921a5a42","remote":false},{"legacyId":"5e7e4be3d54f1760921a5c7f","legacyServiceId":"60ca2108db23ea0015b2ce8b","remote":false},{"legacyId":"5e7e4be2d54f1760921a5945","legacyServiceId":"5e7e4be2d54f1760921a595c","remote":true},{"legacyId":"5e7e4be2d54f1760921a5945","legacyServiceId":"5e7e4be2d54f1760921a595f","remote":true},{"legacyId":"5e7e4be2d54f1760921a5945","legacyServiceId":"5e7e4be2d54f1760921a594e","remote":false},{"legacyId":"5e7e4be2d54f1760921a5945","legacyServiceId":"627368af620d95003e3fe856","remote":false},{"legacyId":"5e7e4be3d54f1760921a5ae1","legacyServiceId":"5e7e4be3d54f1760921a5af0","remote":false},{"legacyId":"5e7e4be3d54f1760921a5bba","legacyServiceId":"5e7e4be3d54f1760921a5bc7","remote":true},{"legacyId":"5e7e4be3d54f1760921a5bba","legacyServiceId":"627043f2ff76e9003ec5f732","remote":true},{"legacyId":"5e7e4be3d54f1760921a5bba","legacyServiceId":"62704535ff76e9003ec5f753","remote":true},{"legacyId":"5e7e4be3d54f1760921a5bba","legacyServiceId":"6270461bff76e9003ec5f761","remote":true},{"legacyId":"5e7e4be3d54f1760921a5bba","legacyServiceId":"6279d0c952fb9c003e6dd547","remote":true},{"legacyId":"5e8a237b8e957400179de076","legacyServiceId":"5e8a24c48e957400179de07e","remote":true},{"legacyId":"5e8a237b8e957400179de076","legacyServiceId":"5e8a287c8e957400179de0b2","remote":false},{"legacyId":"5e8a237b8e957400179de076","legacyServiceId":"5e8a268e8e957400179de096","remote":true},{"legacyId":"5e8a237b8e957400179de076","legacyServiceId":"5e8a259f8e957400179de082","remote":false},{"legacyId":"5e7e4be2d54f1760921a5921","legacyServiceId":"634b996f2fcb65001659cab0","remote":true},{"legacyId":"5e7e4be3d54f1760921a5ab5","legacyServiceId":"5e7e4be3d54f1760921a5aba","remote":false},{"legacyId":"5e7e4be3d54f1760921a5ab5","legacyServiceId":"5e7e4be3d54f1760921a5abf","remote":true},{"legacyId":"5e7e4be3d54f1760921a5ab5","legacyServiceId":"62acea7ad0f7c900164ba0c2","remote":true},{"legacyId":"5e7e4be4d54f1760921a5d53","legacyServiceId":"5e7e4be4d54f1760921a5d5d","remote":true},{"legacyId":"5e8911968e957400179ddfb6","legacyServiceId":"5e8915a88e957400179ddfec","remote":false},{"legacyId":"5e8911968e957400179ddfb6","legacyServiceId":"5e8915398e957400179ddfe0","remote":false},{"legacyId":"5e8911968e957400179ddfb6","legacyServiceId":"5e8912868e957400179ddfbe","remote":false},{"legacyId":"5e8911968e957400179ddfb6","legacyServiceId":"5e8914448e957400179ddfd4","remote":false},{"legacyId":"5e8911968e957400179ddfb6","legacyServiceId":"5e8915c98e957400179ddff0","remote":false},{"legacyId":"5e8911968e957400179ddfb6","legacyServiceId":"5e8914fb8e957400179ddfdc","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3b98f","legacyServiceId":"5e8f93a4cf5e26ae4eb3b9ac","remote":true},{"legacyId":"5e8f93a4cf5e26ae4eb3b98f","legacyServiceId":"5e8f93a4cf5e26ae4eb3b9aa","remote":true},{"legacyId":"5e8f93a4cf5e26ae4eb3ba75","legacyServiceId":"5e8f93a4cf5e26ae4eb3ba7b","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3ba4d","legacyServiceId":"5e8f93a4cf5e26ae4eb3ba72","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"601deb1326ddad00159b4ed3","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"5e8f93a4cf5e26ae4eb3bb09","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"5e8f93a4cf5e26ae4eb3baff","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"5e8f93a4cf5e26ae4eb3baee","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"6021b77c55d2860015bf3cb0","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"5e8f93a4cf5e26ae4eb3bb06","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"602578d066916400154db64f","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"60256e7e66916400154db570","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"602574e266916400154db5d3","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"6025769b66916400154db60b","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","legacyServiceId":"62c496aa1a8bad0016050d62","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3b9cd","legacyServiceId":"60674bc31ab9960015c17ea7","remote":true},{"legacyId":"5e8f93a4cf5e26ae4eb3b9cd","legacyServiceId":"5e8f93a4cf5e26ae4eb3b9e6","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3b9cd","legacyServiceId":"5e8f93a4cf5e26ae4eb3b9f2","remote":true},{"legacyId":"5e8f93a4cf5e26ae4eb3b9cd","legacyServiceId":"5e8f93a4cf5e26ae4eb3b9ef","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3bb28","legacyServiceId":"5ede9d92dcbd740017075442","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3bb28","legacyServiceId":"5e8f93a4cf5e26ae4eb3bb2f","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3ba33","legacyServiceId":"6062585986794c00152150f3","remote":true},{"legacyId":"5e8f93a4cf5e26ae4eb3ba33","legacyServiceId":"60625bb586794c0015215119","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3ba33","legacyServiceId":"5e8f93a4cf5e26ae4eb3ba41","remote":false},{"legacyId":"5e8f93a4cf5e26ae4eb3baa0","legacyServiceId":"5e8f93a4cf5e26ae4eb3bac2","remote":false},{"legacyId":"5eaa2855136375001725de7c","legacyServiceId":"5eaa2e30136375001725de86","remote":false},{"legacyId":"5ecfecfd0ee08b0017a6d20b","legacyServiceId":"5ecff5eb0ee08b0017a6d22a","remote":false},{"legacyId":"5ecfecfd0ee08b0017a6d20b","legacyServiceId":"6384d78abe323900089e03e3","remote":false},{"legacyId":"5eb73f170ec1c50017014127","legacyServiceId":"5eb742e6282fcc0017459d87","remote":true},{"legacyId":"5eb662290ec1c5001701411d","legacyServiceId":"60ccecf215953b0015f6a298","remote":true},{"legacyId":"5edc5c90d99b3600176ea3fb","legacyServiceId":"5edc63f5d99b3600176ea433","remote":true},{"legacyId":"5edc5c90d99b3600176ea3fb","legacyServiceId":"5edc5fdcd99b3600176ea419","remote":false},{"legacyId":"5edc5c90d99b3600176ea3fb","legacyServiceId":"5edc634ed99b3600176ea426","remote":false},{"legacyId":"5eb18ac86566c10017d6ded3","legacyServiceId":"5eb1e79f8828410017efe211","remote":true},{"legacyId":"5eb18ac86566c10017d6ded3","legacyServiceId":"602c348aff84f900155c9fe9","remote":true},{"legacyId":"5eb18ac86566c10017d6ded3","legacyServiceId":"5eb19bb86566c10017d6df3d","remote":true},{"legacyId":"5eb18ac86566c10017d6ded3","legacyServiceId":"5eb1a8836566c10017d6dfa6","remote":true},{"legacyId":"5eb18ac86566c10017d6ded3","legacyServiceId":"5eb1920d6566c10017d6df23","remote":false},{"legacyId":"5e95dfc9aefcf900176e0fc6","legacyServiceId":"5e95fdc00ad2e60017605d0b","remote":true},{"legacyId":"5e95dfc9aefcf900176e0fc6","legacyServiceId":"5faae8fa08e6b400175ded86","remote":true},{"legacyId":"5e95dfc9aefcf900176e0fc6","legacyServiceId":"5faae84408e6b400175ded84","remote":true},{"legacyId":"5ec6c473c0e9ec0017cd38c8","legacyServiceId":"60c8d35db5824600151f0b42","remote":true},{"legacyId":"5ec6c473c0e9ec0017cd38c8","legacyServiceId":"60c8ecdbb5824600151f0d07","remote":true},{"legacyId":"5ec6c473c0e9ec0017cd38c8","legacyServiceId":"60c8f2a1b5824600151f0d9b","remote":true},{"legacyId":"5ec6c473c0e9ec0017cd38c8","legacyServiceId":"5ec7234bc0e9ec0017cd391d","remote":false},{"legacyId":"5ec6c473c0e9ec0017cd38c8","legacyServiceId":"5ec6c7d5c0e9ec0017cd38cd","remote":false},{"legacyId":"5ec82230a1aef60017f0034d","legacyServiceId":"5ec824a0a1aef60017f00352","remote":false},{"legacyId":"5ec82230a1aef60017f0034d","legacyServiceId":"5ec82359a1aef60017f0034e","remote":false},{"legacyId":"5eab18bb136375001725df4a","legacyServiceId":"5eab1af8136375001725df4e","remote":true},{"legacyId":"5eb9b0e41762af001763d626","legacyServiceId":"5eba029f2598e300172a6399","remote":true},{"legacyId":"5ec6c979c0e9ec0017cd38ce","legacyServiceId":"5ec6cd3fc0e9ec0017cd38de","remote":true},{"legacyId":"5ec6c979c0e9ec0017cd38ce","legacyServiceId":"61fab8bf706e5300349c37b1","remote":false},{"legacyId":"5eab1627136375001725df38","legacyServiceId":"5eab1753136375001725df3e","remote":true},{"legacyId":"5eb4549eca0903001722f85f","legacyServiceId":"5eb479b2ca0903001722f864","remote":true},{"legacyId":"5eb78edd282fcc0017459edd","legacyServiceId":"60ec8aab656c4100158c7f7f","remote":true},{"legacyId":"5eb78edd282fcc0017459edd","legacyServiceId":"60edc5caf965f00015e520e2","remote":true},{"legacyId":"5ebcb1a0a426770017340d03","legacyServiceId":"5ebcb5d1a426770017340d08","remote":false},{"legacyId":"5ebcb1a0a426770017340d03","legacyServiceId":"5ebcb5c0a426770017340d07","remote":false},{"legacyId":"5ebcb1a0a426770017340d03","legacyServiceId":"5ebcb5a3a426770017340d06","remote":false},{"legacyId":"5ed002330ee08b0017a6d262","legacyServiceId":"6015c30e3673080015c9dcf2","remote":false},{"legacyId":"5ed002330ee08b0017a6d262","legacyServiceId":"601600073673080015c9ddf0","remote":false},{"legacyId":"5ed002330ee08b0017a6d262","legacyServiceId":"5ed004160ee08b0017a6d265","remote":false},{"legacyId":"5eaae2e1136375001725def8","legacyServiceId":"63d9806199b19c00081bae9a","remote":false},{"legacyId":"5ee7fae228fcbc001774f1e4","legacyServiceId":"5ee7fbc628fcbc001774f1e5","remote":true},{"legacyId":"5ee7fae228fcbc001774f1e4","legacyServiceId":"60e6f587964c830015957df6","remote":true},{"legacyId":"5ef8be49045c6a0017b2e787","legacyServiceId":"5efa0aef791a86001770cf3a","remote":false},{"legacyId":"5f11a56726580400174b96f8","legacyServiceId":"5f11a74b26580400174b96f9","remote":false},{"legacyId":"5f11a56726580400174b96f8","legacyServiceId":"607097eeefa61d001570006c","remote":false},{"legacyId":"5f11a56726580400174b96f8","legacyServiceId":"5f11ab3e63757b0017687d9f","remote":false},{"legacyId":"5f11a56726580400174b96f8","legacyServiceId":"5f11ab4b63757b0017687da0","remote":false},{"legacyId":"5f1702b8ae231a0017d59815","legacyServiceId":"5f18542d6eedb100171768c5","remote":false},{"legacyId":"5f1702b8ae231a0017d59815","legacyServiceId":"5f1715baae231a0017d5993f","remote":true},{"legacyId":"5f1d9ea6b7573b00175670f6","legacyServiceId":"64146b24540cd0000869dab7","remote":true},{"legacyId":"5f22ba75c2123800177bd11f","legacyServiceId":"5f22bad5c2123800177bd120","remote":true},{"legacyId":"5f0da65f0aa72b00176584f6","legacyServiceId":"5f0da6e40aa72b00176584f7","remote":false},{"legacyId":"5f0da65f0aa72b00176584f6","legacyServiceId":"5f0da7150aa72b00176584f8","remote":true},{"legacyId":"5f0da65f0aa72b00176584f6","legacyServiceId":"5f0da73e0aa72b00176584f9","remote":false},{"legacyId":"5f15ddbc8c96fb0017d5f07f","legacyServiceId":"63f13e36b6daf40008e4d0a4","remote":false},{"legacyId":"5f0d1e760aa72b00176584c2","legacyServiceId":"5f0d1eff0aa72b00176584c5","remote":true},{"legacyId":"5f22bc15c2123800177bd12d","legacyServiceId":"5f22bc4ec2123800177bd12e","remote":true},{"legacyId":"5f0fa687f17762001764f064","legacyServiceId":"60f6d0554209270015be24d8","remote":false},{"legacyId":"5f0fa687f17762001764f064","legacyServiceId":"5f0fc066f17762001764f338","remote":false},{"legacyId":"5f0fa687f17762001764f064","legacyServiceId":"5f11025226580400174b9580","remote":false},{"legacyId":"5f0fa687f17762001764f064","legacyServiceId":"5f1104a026580400174b961e","remote":true},{"legacyId":"5f0fa687f17762001764f064","legacyServiceId":"5f11059926580400174b962b","remote":false},{"legacyId":"5eea77c2d45a2d0017a0f3da","legacyServiceId":"5eea8079d45a2d0017a0f407","remote":true},{"legacyId":"5eea77c2d45a2d0017a0f3da","legacyServiceId":"5eea792bd45a2d0017a0f3e2","remote":true},{"legacyId":"5f20798a902e280017883aab","legacyServiceId":"5f207a02902e280017883aac","remote":true},{"legacyId":"5f20798a902e280017883aab","legacyServiceId":"62338efae22400003e37aeb1","remote":true},{"legacyId":"5f22c5c7c2123800177bd174","legacyServiceId":"5f22c627c2123800177bd175","remote":true},{"legacyId":"5f2a0dddb18617001785ef0b","legacyServiceId":"601b5741e7035b0015896728","remote":true},{"legacyId":"5f0148360a655c00176046c2","legacyServiceId":"5f014f6c0a655c00176046f1","remote":false},{"legacyId":"5f0148360a655c00176046c2","legacyServiceId":"5f014d420a655c00176046d0","remote":true},{"legacyId":"5f0148360a655c00176046c2","legacyServiceId":"6204acfab14d39002e6034bd","remote":true},{"legacyId":"5f20d5d7660f230017ebc169","legacyServiceId":"5f20d83d660f230017ebc16f","remote":true},{"legacyId":"5f20d5d7660f230017ebc169","legacyServiceId":"60cb6c17a3eb7a0015fce9bf","remote":true},{"legacyId":"5f20d5d7660f230017ebc169","legacyServiceId":"60cb6364a3eb7a0015fce84c","remote":true},{"legacyId":"5f20d5d7660f230017ebc169","legacyServiceId":"60cb60e2a3eb7a0015fce82b","remote":true},{"legacyId":"5f20d5d7660f230017ebc169","legacyServiceId":"60cb7027a3eb7a0015fcea14","remote":true},{"legacyId":"5f20d5d7660f230017ebc169","legacyServiceId":"60cb724fa3eb7a0015fcea51","remote":true},{"legacyId":"5f20d5d7660f230017ebc169","legacyServiceId":"60cb6a90a3eb7a0015fce98f","remote":true},{"legacyId":"5f0ef41dcd6aa900171059e7","legacyServiceId":"5f0ef47acd6aa900171059e8","remote":false},{"legacyId":"5f10a83245051b0017bd27e1","legacyServiceId":"5f10a8e845051b0017bd27e2","remote":true},{"legacyId":"5f10a83245051b0017bd27e1","legacyServiceId":"62dc4ad82c7b7f0016ac1e2b","remote":true},{"legacyId":"5f1d88bbb7573b00175670c4","legacyServiceId":"62d45a236c0ce20016cbd2df","remote":true},{"legacyId":"5ee800eb28fcbc001774f24a","legacyServiceId":"604517f5abc40800159efe2d","remote":false},{"legacyId":"5ee800eb28fcbc001774f24a","legacyServiceId":"60451a0fabc40800159efe58","remote":true},{"legacyId":"5f119ab426580400174b9674","legacyServiceId":"5f11a24726580400174b96cc","remote":false},{"legacyId":"5f119ab426580400174b9674","legacyServiceId":"5f119e4b26580400174b9697","remote":false},{"legacyId":"5f0d1a350aa72b00176584b3","legacyServiceId":"5f0d1cce0aa72b00176584bd","remote":true},{"legacyId":"5f202c4d902e28001788391f","legacyServiceId":"60e49b0ca4f35b00157afcf3","remote":false},{"legacyId":"5f202c4d902e28001788391f","legacyServiceId":"62d44c476c0ce20016cbd28c","remote":false},{"legacyId":"5f22ccdcc2123800177bd1a7","legacyServiceId":"5f22cd27c2123800177bd1a8","remote":true},{"legacyId":"5f22e4e5c2123800177bd1f6","legacyServiceId":"5f22e54ac2123800177bd1f7","remote":true},{"legacyId":"5f28bfa27b66270017b8a9be","legacyServiceId":"5f28c4877b66270017b8a9cf","remote":false},{"legacyId":"5f28bfa27b66270017b8a9be","legacyServiceId":"62acd24dd0f7c900164b9f28","remote":false},{"legacyId":"5f05c426a006e70017a6c4b6","legacyServiceId":"5f05c485a006e70017a6c4b7","remote":false},{"legacyId":"5f05c426a006e70017a6c4b6","legacyServiceId":"5f05c4e1a006e70017a6c4b8","remote":true},{"legacyId":"5f06875da440aa0017b34f80","legacyServiceId":"5f068979a440aa0017b34fac","remote":true},{"legacyId":"5f2c4d4950d82b00171842ac","legacyServiceId":"5f2ca78ac32aad0017c10b71","remote":true},{"legacyId":"5f2c4d4950d82b00171842ac","legacyServiceId":"6350ea79543d290016f5f139","remote":false},{"legacyId":"5f21d59fc2123800177bd08c","legacyServiceId":"5f21d60dc2123800177bd08d","remote":true},{"legacyId":"5f22c2b5c2123800177bd156","legacyServiceId":"5f22c2eac2123800177bd157","remote":true},{"legacyId":"5f2829d731ca1700173d1d7d","legacyServiceId":"5f282a0031ca1700173d1d7e","remote":true},{"legacyId":"5f2829d731ca1700173d1d7d","legacyServiceId":"6442dda919cf1900088da54e","remote":true},{"legacyId":"5f0c7d4139f3b00017b3800f","legacyServiceId":"5f0c7e0639f3b00017b38018","remote":false},{"legacyId":"5f1ca850b7573b0017566fbd","legacyServiceId":"5f1cab32b7573b0017566fd0","remote":true},{"legacyId":"5f4d22565420890017bb8dff","legacyServiceId":"6165a5b958c51700164171f7","remote":true},{"legacyId":"5f428fdb8a3ba80017b2fd3e","legacyServiceId":"62131a81d0977f002e6487f0","remote":true},{"legacyId":"5f4c4958f816820017d5574b","legacyServiceId":"5f4d7dcc5420890017bb8f30","remote":true},{"legacyId":"5f4c4958f816820017d5574b","legacyServiceId":"5f4d8fb85420890017bb8fae","remote":false},{"legacyId":"5f3ed83b43ae4a00175c7259","legacyServiceId":"61f4a33290fcea002e251814","remote":true},{"legacyId":"5f3b2dde4ed0e20017e317bf","legacyServiceId":"60db7e3433bdd800152a3e11","remote":false},{"legacyId":"5f3b2dde4ed0e20017e317bf","legacyServiceId":"62c3234c8f36b6001626b520","remote":true},{"legacyId":"5f4d9fbd5420890017bb8ff0","legacyServiceId":"60f595d283a5c600157a724c","remote":true},{"legacyId":"5f4d9fbd5420890017bb8ff0","legacyServiceId":"5f4db8855420890017bb905c","remote":true},{"legacyId":"5f4d9fbd5420890017bb8ff0","legacyServiceId":"62101c54f597ba002e2e0da5","remote":true},{"legacyId":"5f4d9fbd5420890017bb8ff0","legacyServiceId":"62d5a5d7deeccd0016c3f0a5","remote":true},{"legacyId":"5f35b2431c297600173128e0","legacyServiceId":"5f36e10c48938d0017a3f08b","remote":true},{"legacyId":"5f35b46d1c297600173128e5","legacyServiceId":"5f36f71148938d0017a3f09d","remote":false},{"legacyId":"5f3c238c4ed0e20017e3195f","legacyServiceId":"5f70e4ce09110e00178bd29b","remote":true},{"legacyId":"5f3c238c4ed0e20017e3195f","legacyServiceId":"64027a62ad64ba0008f3b9b9","remote":true},{"legacyId":"5f2d6021c32aad0017c10c2a","legacyServiceId":"5f2d62a6c32aad0017c10c81","remote":true},{"legacyId":"5f2d6021c32aad0017c10c2a","legacyServiceId":"5f2d6215c32aad0017c10c4e","remote":false},{"legacyId":"5f3bfea04ed0e20017e31898","legacyServiceId":"5f3c0dd24ed0e20017e318f1","remote":false},{"legacyId":"5f3bfea04ed0e20017e31898","legacyServiceId":"5f3c0d464ed0e20017e318f0","remote":true},{"legacyId":"5f45364b8ca5060017147ce4","legacyServiceId":"5f457ce78ca5060017147d64","remote":true},{"legacyId":"5f32c73aa18a3d0017546e34","legacyServiceId":"5f32dd0ba18a3d0017546e5e","remote":false},{"legacyId":"5f3c2e224ed0e20017e3196b","legacyServiceId":"5f3c36554ed0e20017e31984","remote":true},{"legacyId":"5f3fea16455a260017a5bbd7","legacyServiceId":"5f44780d8ca5060017147c75","remote":true},{"legacyId":"5f3fea16455a260017a5bbd7","legacyServiceId":"634a2233f88f5500161c74e7","remote":true},{"legacyId":"5f4dc6915420890017bb90df","legacyServiceId":"60ca1134db23ea0015b2cd25","remote":true},{"legacyId":"5f3e73ed43ae4a00175c71f7","legacyServiceId":"5f3e7b8543ae4a00175c71fe","remote":false},{"legacyId":"5f32c2cfa18a3d0017546e19","legacyServiceId":"5f32c337a18a3d0017546e1a","remote":false},{"legacyId":"5f3b58814ed0e20017e31807","legacyServiceId":"62c326b98f36b6001626b532","remote":true},{"legacyId":"5f3e803143ae4a00175c7208","legacyServiceId":"5f3e833e43ae4a00175c720d","remote":true},{"legacyId":"5f3e803143ae4a00175c7208","legacyServiceId":"5f3e881643ae4a00175c721d","remote":false},{"legacyId":"5f3e803143ae4a00175c7208","legacyServiceId":"5f3e86e943ae4a00175c7218","remote":true},{"legacyId":"5f3e803143ae4a00175c7208","legacyServiceId":"6083327e5ddbdc0015d9c330","remote":true},{"legacyId":"5f3e803143ae4a00175c7208","legacyServiceId":"6083357f5ddbdc0015d9c350","remote":true},{"legacyId":"5f3e803143ae4a00175c7208","legacyServiceId":"6083376d5ddbdc0015d9c35d","remote":true},{"legacyId":"5f3e803143ae4a00175c7208","legacyServiceId":"60833a975ddbdc0015d9c3a4","remote":true},{"legacyId":"5f31688b44d2620017961a92","legacyServiceId":"60c3b3cb291488001581459c","remote":true},{"legacyId":"5f31688b44d2620017961a92","legacyServiceId":"6012fb68e71d820015437c0c","remote":true},{"legacyId":"5f4479168ca5060017147c83","legacyServiceId":"5f447ab38ca5060017147c88","remote":false},{"legacyId":"5f4479168ca5060017147c83","legacyServiceId":"5f447f2b8ca5060017147c90","remote":false},{"legacyId":"5f50727099480e0017fb416a","legacyServiceId":"5f511a0d99480e0017fb41c8","remote":true},{"legacyId":"5f50f91f99480e0017fb418c","legacyServiceId":"5f50fe8b99480e0017fb41a0","remote":true},{"legacyId":"5f50f91f99480e0017fb418c","legacyServiceId":"61f48c7a90fcea002e2517db","remote":false},{"legacyId":"5f50f91f99480e0017fb418c","legacyServiceId":"61f57bcf07bb8a00391561b3","remote":true},{"legacyId":"5f50f91f99480e0017fb418c","legacyServiceId":"61f580ce07bb8a00391561bd","remote":false},{"legacyId":"5f50f91f99480e0017fb418c","legacyServiceId":"63498b4e486acb001651f2a0","remote":true},{"legacyId":"5f50f91f99480e0017fb418c","legacyServiceId":"6349a621486acb001651f2c1","remote":true},{"legacyId":"5f50f91f99480e0017fb418c","legacyServiceId":"6349ac50486acb001651f306","remote":true},{"legacyId":"5f611de68715ac00179b8cec","legacyServiceId":"5f61304c8715ac00179b8d3d","remote":true},{"legacyId":"5f4e927f3a8ab70017019d4a","legacyServiceId":"5f4e990a3a8ab70017019d5e","remote":false},{"legacyId":"5f4e7dfc3a8ab70017019ce1","legacyServiceId":"5f4e80f83a8ab70017019ced","remote":false},{"legacyId":"5f5292989f90f600178244eb","legacyServiceId":"5f805aa957fe7a00175dc255","remote":false},{"legacyId":"5f5292989f90f600178244eb","legacyServiceId":"5f805dcd57fe7a00175dc25b","remote":true},{"legacyId":"5f529f029f90f600178244ec","legacyServiceId":"5f52aa759f90f6001782453d","remote":false},{"legacyId":"5f529f029f90f600178244ec","legacyServiceId":"5f52a9419f90f6001782452a","remote":true},{"legacyId":"5f5cee7a6888b50017a64bbb","legacyServiceId":"6052695506aa520015fe5078","remote":true},{"legacyId":"5f5cee7a6888b50017a64bbb","legacyServiceId":"5f5cf3dd6888b50017a64bc4","remote":true},{"legacyId":"5f5cee7a6888b50017a64bbb","legacyServiceId":"5f5cf8576888b50017a64bcc","remote":true},{"legacyId":"5f660905cd7db10017f497d8","legacyServiceId":"5f75fbd96303f90017339aaa","remote":true},{"legacyId":"5f6b6fd554a96e0017494227","legacyServiceId":"63e2c080611b610008d77507","remote":true},{"legacyId":"5f6b7be054a96e00174942b0","legacyServiceId":"5f6b82af54a96e0017494336","remote":true},{"legacyId":"5f6b7be054a96e00174942b0","legacyServiceId":"623cb256258927002ee0aa05","remote":true},{"legacyId":"5f6baa6354a96e001749446e","legacyServiceId":"5f6bac5054a96e0017494479","remote":false},{"legacyId":"5f6bbcc354a96e00174944ff","legacyServiceId":"5f6bbd4554a96e0017494500","remote":false},{"legacyId":"5f6d4f202157be0017bf0518","legacyServiceId":"5f6d56122157be0017bf052b","remote":false},{"legacyId":"5f6f70d3fe8faf001714925f","legacyServiceId":"5f6f737ffe8faf0017149267","remote":true},{"legacyId":"5f6f70d3fe8faf001714925f","legacyServiceId":"5f6f723cfe8faf0017149261","remote":true},{"legacyId":"5f6f70d3fe8faf001714925f","legacyServiceId":"5f6f73e7fe8faf001714926e","remote":true},{"legacyId":"5f6f70d3fe8faf001714925f","legacyServiceId":"5f6f7439fe8faf0017149272","remote":true},{"legacyId":"5f6f70d3fe8faf001714925f","legacyServiceId":"5f6f7494fe8faf0017149277","remote":true},{"legacyId":"5f7129d109110e00178bd316","legacyServiceId":"6435cf4872297500083624fa","remote":false},{"legacyId":"5f7492a5749f350017a1a3e9","legacyServiceId":"5f749646749f350017a1a3f6","remote":true},{"legacyId":"5f74b06a749f350017a1a460","legacyServiceId":"5f74b3e2749f350017a1a485","remote":true},{"legacyId":"5f74b06a749f350017a1a460","legacyServiceId":"629df4192438c3003e58eba4","remote":true},{"legacyId":"5f7ada04812a880017c2a8f7","legacyServiceId":"5ff0fea2c70b830015d9727b","remote":true},{"legacyId":"5f7ada04812a880017c2a8f7","legacyServiceId":"5f7ae38c812a880017c2a8ff","remote":true},{"legacyId":"5f84f101987252001768c26f","legacyServiceId":"5f9cf3ad5da5cd0017bdf3a4","remote":false},{"legacyId":"5f8c85f6879ccd001739e258","legacyServiceId":"5f8c8e20879ccd001739e262","remote":true},{"legacyId":"5f8dec0a1f0408001749520f","legacyServiceId":"62beb401b5d3580016068273","remote":false},{"legacyId":"5f8f586aa15fff0017de9e65","legacyServiceId":"6107fc19d6fa370015df6dc7","remote":false},{"legacyId":"5f8fac71a15fff0017dea011","legacyServiceId":"5f8fb55ba15fff0017dea02b","remote":false},{"legacyId":"5f8fac71a15fff0017dea011","legacyServiceId":"5f8fb65aa15fff0017dea03f","remote":false},{"legacyId":"5f8fac71a15fff0017dea011","legacyServiceId":"5f8fb804a15fff0017dea04c","remote":false},{"legacyId":"5f8fac71a15fff0017dea011","legacyServiceId":"5f8fba21a15fff0017dea05a","remote":false},{"legacyId":"5f999a2f54d6a10017bc971b","legacyServiceId":"5f999e4154d6a10017bc9747","remote":true},{"legacyId":"5f999a2f54d6a10017bc971b","legacyServiceId":"5f99a54654d6a10017bc9788","remote":true},{"legacyId":"5f999a2f54d6a10017bc971b","legacyServiceId":"5f99a84154d6a10017bc97a0","remote":false},{"legacyId":"5f999a2f54d6a10017bc971b","legacyServiceId":"5f99aac954d6a10017bc97a9","remote":false},{"legacyId":"5f999a2f54d6a10017bc971b","legacyServiceId":"5f99accb54d6a10017bc97be","remote":false},{"legacyId":"5f999a2f54d6a10017bc971b","legacyServiceId":"5f99ae3354d6a10017bc97cf","remote":true},{"legacyId":"5f999a2f54d6a10017bc971b","legacyServiceId":"5f99a67e54d6a10017bc9793","remote":false},{"legacyId":"5f999a2f54d6a10017bc971b","legacyServiceId":"61faa2d6706e5300349c3749","remote":false},{"legacyId":"5f9b34c103809f001743e92b","legacyServiceId":"5f9b37d203809f001743e97e","remote":false},{"legacyId":"5f9b6bd603809f001743ea53","legacyServiceId":"5f9b6d2903809f001743ea54","remote":true},{"legacyId":"5f9c3d1003809f001743eaab","legacyServiceId":"60da56adf033170015a76a12","remote":false},{"legacyId":"5f9c52db03809f001743ead9","legacyServiceId":"5f9c598b03809f001743eae6","remote":true},{"legacyId":"5f9c52db03809f001743ead9","legacyServiceId":"6107e19ad6fa370015df6d5a","remote":true},{"legacyId":"5f9ca1395da5cd0017bdf27f","legacyServiceId":"5f9cbf655da5cd0017bdf302","remote":false},{"legacyId":"5f9cc5925da5cd0017bdf310","legacyServiceId":"5f9ccb615da5cd0017bdf321","remote":false},{"legacyId":"5f9cc5925da5cd0017bdf310","legacyServiceId":"5f9cd0d65da5cd0017bdf32a","remote":false},{"legacyId":"5f9cc5925da5cd0017bdf310","legacyServiceId":"5f9cd4fa5da5cd0017bdf337","remote":false},{"legacyId":"5f9cc5925da5cd0017bdf310","legacyServiceId":"60df078993ecad00156db365","remote":false},{"legacyId":"5f9d99ad5da5cd0017bdf3d7","legacyServiceId":"5f9d9f725da5cd0017bdf3df","remote":false},{"legacyId":"5fa032de98050a00178d59e2","legacyServiceId":"5fa03cba98050a00178d59f1","remote":true},{"legacyId":"5fa032de98050a00178d59e2","legacyServiceId":"5fa0471f98050a00178d5a19","remote":false},{"legacyId":"5fa032de98050a00178d59e2","legacyServiceId":"5fa0429998050a00178d5a08","remote":false},{"legacyId":"5fa032de98050a00178d59e2","legacyServiceId":"5fa0380998050a00178d59ed","remote":false},{"legacyId":"5fa978e6a53542001765d9d2","legacyServiceId":"5fa97c86a53542001765d9d9","remote":false},{"legacyId":"5fa978e6a53542001765d9d2","legacyServiceId":"5fa9841ca53542001765d9e5","remote":false},{"legacyId":"5fa978e6a53542001765d9d2","legacyServiceId":"5fa99558a53542001765da18","remote":false},{"legacyId":"5fa978e6a53542001765d9d2","legacyServiceId":"5fa985aba53542001765d9f2","remote":false},{"legacyId":"5fa978e6a53542001765d9d2","legacyServiceId":"637970605d461200088d16fc","remote":false},{"legacyId":"5fa978e6a53542001765d9d2","legacyServiceId":"637970a23b0af000080fa33b","remote":false},{"legacyId":"5fadfc3658197300174a9791","legacyServiceId":"5fadfdc158197300174a9793","remote":true},{"legacyId":"5fb2cab270058c0017506f3d","legacyServiceId":"5fb2d10f70058c0017506f43","remote":true},{"legacyId":"5fb81b999e518e00171228b5","legacyServiceId":"5fb8229b9e518e00171228c4","remote":false},{"legacyId":"5fb81b999e518e00171228b5","legacyServiceId":"5fb822699e518e00171228c3","remote":true},{"legacyId":"5fbdc81391fc6a0017aea958","legacyServiceId":"5fbdcc8391fc6a0017aea96a","remote":true},{"legacyId":"5fc2a197e3589500176e79b0","legacyServiceId":"63eaee96b8fe7000083637b2","remote":false},{"legacyId":"5fc2a197e3589500176e79b0","legacyServiceId":"63eaf5aae75452000880b5cf","remote":false},{"legacyId":"5fc2ad8fe3589500176e79b8","legacyServiceId":"63fe5f2b656ed20008019727","remote":false},{"legacyId":"5fc4177d6f714800176c0d5d","legacyServiceId":"5fc428846f714800176c0d61","remote":false},{"legacyId":"5fc4e9056f714800176c0d69","legacyServiceId":"608b346f0dc93800153ddcc0","remote":false},{"legacyId":"5fc4f7db6f714800176c0dcd","legacyServiceId":"5fc580855f05f400172525f9","remote":true},{"legacyId":"5fc4f7db6f714800176c0dcd","legacyServiceId":"5fc57eb45f05f400172525e7","remote":false},{"legacyId":"5fc4f7db6f714800176c0dcd","legacyServiceId":"5fc57d5e5f05f400172525e5","remote":false},{"legacyId":"5fc4f7db6f714800176c0dcd","legacyServiceId":"606c93d1bb3c2d0015da3cbd","remote":true},{"legacyId":"5fc4f7db6f714800176c0dcd","legacyServiceId":"64023c52b65f340008a468bd","remote":true},{"legacyId":"5fc5b3845f05f4001725263f","legacyServiceId":"5fc5be2e5f05f40017252646","remote":true},{"legacyId":"5fc5bdc75f05f40017252642","legacyServiceId":"5fc64d1c5f05f40017252672","remote":false},{"legacyId":"5fc5bdc75f05f40017252642","legacyServiceId":"5fc66c0e5f05f400172526ed","remote":true},{"legacyId":"5fc7027343a5180017dd7eaa","legacyServiceId":"62d2dcce3b519b0016668714","remote":false},{"legacyId":"5fc7027343a5180017dd7eaa","legacyServiceId":"62d2dd393b519b0016668715","remote":true},{"legacyId":"5fc7027343a5180017dd7eaa","legacyServiceId":"6402549faad9a200085fb6be","remote":true},{"legacyId":"5fc7bbb943a5180017dd7ede","legacyServiceId":"5fc7be2343a5180017dd7ee6","remote":false},{"legacyId":"5fcd3aec1d0a6f0017fe4459","legacyServiceId":"5fdbe02a88f39e0017f73b39","remote":true},{"legacyId":"5fcd3aec1d0a6f0017fe4459","legacyServiceId":"6089a21b8e7e8400159e58d0","remote":true},{"legacyId":"5fcd3aec1d0a6f0017fe4459","legacyServiceId":"6089a23c8e7e8400159e58d4","remote":true},{"legacyId":"5fcd3aec1d0a6f0017fe4459","legacyServiceId":"6251f365f08277002e91d359","remote":true},{"legacyId":"5fce7ab79e706e00177614b5","legacyServiceId":"5fce7fd49e706e00177614f8","remote":false},{"legacyId":"5fce7ab79e706e00177614b5","legacyServiceId":"5fce7e889e706e00177614d6","remote":false},{"legacyId":"5fce7ab79e706e00177614b5","legacyServiceId":"5fce81659e706e0017761516","remote":false},{"legacyId":"5fce7ab79e706e00177614b5","legacyServiceId":"5fce7ca29e706e00177614bd","remote":false},{"legacyId":"5fd2fa9ba2b1ae001714c088","legacyServiceId":"5fd30346a2b1ae001714c0e8","remote":false},{"legacyId":"5fd2fa9ba2b1ae001714c088","legacyServiceId":"5fd302b6a2b1ae001714c0df","remote":false},{"legacyId":"5fd2fa9ba2b1ae001714c088","legacyServiceId":"5fd3019ea2b1ae001714c0b9","remote":false},{"legacyId":"5fd2fa9ba2b1ae001714c088","legacyServiceId":"5fd30095a2b1ae001714c0b0","remote":false},{"legacyId":"5fd2fa9ba2b1ae001714c088","legacyServiceId":"6376639781955100084af82f","remote":false},{"legacyId":"5fd2fa9ba2b1ae001714c088","legacyServiceId":"637665ee98b48800082e2785","remote":false},{"legacyId":"5fd2fa9ba2b1ae001714c088","legacyServiceId":"637bdba2520e4e00083fa52c","remote":false},{"legacyId":"5fd3eb1748654100177927e6","legacyServiceId":"62576b071476bb002e8fe47d","remote":true},{"legacyId":"5fe245f4ecdf340017278937","legacyServiceId":"5fe2464aecdf340017278938","remote":true},{"legacyId":"5fe245f4ecdf340017278937","legacyServiceId":"633090ae6cfe5f0016a60e5b","remote":false},{"legacyId":"5fe245f4ecdf340017278937","legacyServiceId":"6330977f6cfe5f0016a60e65","remote":false},{"legacyId":"5fea4a87a399ed001734f239","legacyServiceId":"5fea4ed1a399ed001734f265","remote":false},{"legacyId":"5fea4a87a399ed001734f239","legacyServiceId":"62d0087323b1b200163339c8","remote":false},{"legacyId":"5feb8982ba25520017306fb9","legacyServiceId":"5feb8fadba25520017306fe2","remote":true},{"legacyId":"5feb8982ba25520017306fb9","legacyServiceId":"5feba193ba2552001730702a","remote":true},{"legacyId":"5febe690ba25520017307071","legacyServiceId":"5febf110ba255200173070cb","remote":true},{"legacyId":"5febe690ba25520017307071","legacyServiceId":"6256fab61476bb002e8fe0f4","remote":true},{"legacyId":"5febe690ba25520017307071","legacyServiceId":"6256fc831476bb002e8fe107","remote":true},{"legacyId":"5febe690ba25520017307071","legacyServiceId":"6256feb91476bb002e8fe11b","remote":true},{"legacyId":"5fec03e8df1c53001715417c","legacyServiceId":"5fec061ddf1c530017154180","remote":false},{"legacyId":"5fecf136df1c530017154195","legacyServiceId":"5fecf336df1c53001715419d","remote":false},{"legacyId":"5fedd8742081d500172acb52","legacyServiceId":"62c1844d226f700016edf492","remote":false},{"legacyId":"5fedf77cefa4df0015b7b05a","legacyServiceId":"5fedfbc0efa4df0015b7b0c1","remote":false},{"legacyId":"5fee14cfefa4df0015b7b0e4","legacyServiceId":"5fee3524efa4df0015b7b120","remote":false},{"legacyId":"5fee2c1befa4df0015b7b0eb","legacyServiceId":"5fee9725efa4df0015b7b290","remote":false},{"legacyId":"5fee558aefa4df0015b7b238","legacyServiceId":"5fee593befa4df0015b7b242","remote":true},{"legacyId":"5ff07abc00d73d00157ae31b","legacyServiceId":"5ff07cd800d73d00157ae31c","remote":false},{"legacyId":"5ff75968d8898e001594cd56","legacyServiceId":"5ff75f39d8898e001594cd6e","remote":false},{"legacyId":"600b7b53fd23e5001518374b","legacyServiceId":"60187111989ad0001504d086","remote":false},{"legacyId":"6010390b1899a0001536daef","legacyServiceId":"60d0eebac4db22001539a2e4","remote":true},{"legacyId":"6010390b1899a0001536daef","legacyServiceId":"6010af161899a0001536dbfc","remote":true},{"legacyId":"6010390b1899a0001536daef","legacyServiceId":"60106db21899a0001536db42","remote":false},{"legacyId":"6010390b1899a0001536daef","legacyServiceId":"601077a91899a0001536db79","remote":false},{"legacyId":"6010390b1899a0001536daef","legacyServiceId":"60107aa31899a0001536db9a","remote":false},{"legacyId":"6010390b1899a0001536daef","legacyServiceId":"60107b7e1899a0001536dbb3","remote":false},{"legacyId":"6010667a1899a0001536db39","legacyServiceId":"60106b6a1899a0001536db3f","remote":false},{"legacyId":"6011932ebd59d0001513e9dd","legacyServiceId":"60119e93bd59d0001513e9ec","remote":false},{"legacyId":"60146a8841e5420015632f56","legacyServiceId":"6014749b41e5420015632fbd","remote":false},{"legacyId":"6015a4853673080015c9dc9f","legacyServiceId":"6015baf93673080015c9dcc3","remote":true},{"legacyId":"6015a4853673080015c9dc9f","legacyServiceId":"6015a64a3673080015c9dca6","remote":true},{"legacyId":"6015f2093673080015c9dd7c","legacyServiceId":"6015f4b13673080015c9dd8f","remote":true},{"legacyId":"6016a0779f64a2001580cb21","legacyServiceId":"6439c3967eb786000860c5fb","remote":true},{"legacyId":"6016ab8d9f64a2001580cb52","legacyServiceId":"6016c0659f64a2001580cbaf","remote":false},{"legacyId":"6016ab8d9f64a2001580cb52","legacyServiceId":"6016b6c89f64a2001580cb73","remote":false},{"legacyId":"6016ab8d9f64a2001580cb52","legacyServiceId":"6016b7ba9f64a2001580cb79","remote":false},{"legacyId":"6016ab8d9f64a2001580cb52","legacyServiceId":"6016ba739f64a2001580cb7e","remote":false},{"legacyId":"6016ab8d9f64a2001580cb52","legacyServiceId":"6016b2769f64a2001580cb64","remote":false},{"legacyId":"6016ab8d9f64a2001580cb52","legacyServiceId":"62aa2cff729568001660d423","remote":false},{"legacyId":"6016ab8d9f64a2001580cb52","legacyServiceId":"62aa2dc8729568001660d428","remote":false},{"legacyId":"6016c9c79f64a2001580cc2a","legacyServiceId":"6016cb949f64a2001580cc45","remote":true},{"legacyId":"6016c9c79f64a2001580cc2a","legacyServiceId":"6016cda49f64a2001580cc60","remote":false},{"legacyId":"6016c9c79f64a2001580cc2a","legacyServiceId":"6016d64f9f64a2001580cce9","remote":false},{"legacyId":"6016c9c79f64a2001580cc2a","legacyServiceId":"6016cf999f64a2001580cc81","remote":false},{"legacyId":"6016ee4e9f64a2001580cd69","legacyServiceId":"6016f51c9f64a2001580cd7e","remote":true},{"legacyId":"60187ba9989ad0001504d152","legacyServiceId":"60187bd3989ad0001504d153","remote":true},{"legacyId":"6018a678989ad0001504d2fa","legacyServiceId":"6018be5e989ad0001504d43c","remote":true},{"legacyId":"6018a678989ad0001504d2fa","legacyServiceId":"6429e4c0ed5f700008ad289e","remote":true},{"legacyId":"6018af40989ad0001504d36e","legacyServiceId":"60e0f4031c361100152cd296","remote":false},{"legacyId":"601c7da908ffbe00156ebd89","legacyServiceId":"601c869508ffbe00156ebe0c","remote":true},{"legacyId":"601c8e6b08ffbe00156ebed2","legacyServiceId":"60cfcbcd13a1370015c988bc","remote":true},{"legacyId":"60244f782e57310015944f1f","legacyServiceId":"602453ff2e57310015944fcd","remote":true},{"legacyId":"6026ce51847dd000151240db","legacyServiceId":"6026d4cd847dd000151240e5","remote":false},{"legacyId":"602847bcd4f6dd0015f937a5","legacyServiceId":"6390d1a51667a10008c31a3b","remote":true},{"legacyId":"6033fee4462f7100152996ec","legacyServiceId":"60340184462f710015299704","remote":false},{"legacyId":"6036b9299ee31a001530d3d1","legacyServiceId":"6036bb729ee31a001530d3e7","remote":true},{"legacyId":"6036b9299ee31a001530d3d1","legacyServiceId":"60c8ba92b5824600151f0a23","remote":false},{"legacyId":"603bfd73a72209001521f703","legacyServiceId":"63d4155a49fe290008ad6827","remote":true},{"legacyId":"603c1f67a72209001521f7c9","legacyServiceId":"603c25eda72209001521f7d0","remote":true},{"legacyId":"603c3f73cae0620015826066","legacyServiceId":"603c4122cae0620015826084","remote":false},{"legacyId":"603c3f73cae0620015826066","legacyServiceId":"603c437ecae062001582608c","remote":false},{"legacyId":"603c4748cae06200158260dd","legacyServiceId":"603c4ed6cae0620015826148","remote":false},{"legacyId":"603c4f2ccae062001582615b","legacyServiceId":"642c711173fb49000846c87b","remote":false},{"legacyId":"603d27cacae06200158262cd","legacyServiceId":"60c11a01366206001533553f","remote":false},{"legacyId":"603d27cacae06200158262cd","legacyServiceId":"629f9049b71c5e0016c648d9","remote":true},{"legacyId":"603e7353652598001579b67a","legacyServiceId":"603e74cc652598001579b67d","remote":true},{"legacyId":"603ea64d652598001579b7f4","legacyServiceId":"603eaac4652598001579b8af","remote":false},{"legacyId":"603ea64d652598001579b7f4","legacyServiceId":"603eb3e3652598001579b935","remote":true},{"legacyId":"603eaf20652598001579b918","legacyServiceId":"603eb86e652598001579b953","remote":true},{"legacyId":"6056390cf09942001538723b","legacyServiceId":"6056437af09942001538724d","remote":false},{"legacyId":"6056390cf09942001538723b","legacyServiceId":"6056482cf09942001538725c","remote":false},{"legacyId":"6056390cf09942001538723b","legacyServiceId":"60c95099db23ea0015b2c895","remote":true},{"legacyId":"605a14f886a32f0015516e94","legacyServiceId":"61f8d1739901e80030256207","remote":false},{"legacyId":"605b9ca895b64d00153bcebd","legacyServiceId":"605bb11195b64d00153bcfa8","remote":true},{"legacyId":"605c75bf95b64d00153bd1da","legacyServiceId":"605c795095b64d00153bd1de","remote":false},{"legacyId":"6063703586794c00152155c2","legacyServiceId":"6329d68bda6df20016987f9b","remote":false},{"legacyId":"60652ad1120e360015025480","legacyServiceId":"60653434120e3600150254f0","remote":true},{"legacyId":"60652ad1120e360015025480","legacyServiceId":"60653c25120e360015025536","remote":true},{"legacyId":"60652ad1120e360015025480","legacyServiceId":"60653e9b120e36001502554d","remote":true},{"legacyId":"60652ad1120e360015025480","legacyServiceId":"606540f6120e36001502555e","remote":true},{"legacyId":"60652ad1120e360015025480","legacyServiceId":"6154dc4bcd9a9700163f448b","remote":true},{"legacyId":"60652ad1120e360015025480","legacyServiceId":"62cefa7a23b1b200163333ae","remote":true},{"legacyId":"60655115120e360015025609","legacyServiceId":"60655ad5120e360015025635","remote":true},{"legacyId":"606a5ca0dd066a001539a2f1","legacyServiceId":"606a70ebdd066a001539a4be","remote":true},{"legacyId":"606a5ca0dd066a001539a2f1","legacyServiceId":"606a6d10dd066a001539a44f","remote":true},{"legacyId":"606a5ca0dd066a001539a2f1","legacyServiceId":"61fb62c6aed35a002e222be0","remote":true},{"legacyId":"606a6792dd066a001539a3f0","legacyServiceId":"606a6cc2dd066a001539a44e","remote":false},{"legacyId":"606fbbc10b61fd001576c212","legacyServiceId":"62aa46ba729568001660d58e","remote":true},{"legacyId":"6080e210b30dc40015fe8601","legacyServiceId":"6080e7e7b30dc40015fe864e","remote":true},{"legacyId":"6080e210b30dc40015fe8601","legacyServiceId":"629a5dfb831c5a003e700cfd","remote":true},{"legacyId":"608215e85ddbdc0015d9c28a","legacyServiceId":"60822a4c5ddbdc0015d9c297","remote":true},{"legacyId":"60844b74dc73ee0015da9779","legacyServiceId":"60873ce5e82155001589aa82","remote":true},{"legacyId":"60844b74dc73ee0015da9779","legacyServiceId":"60857cab95ed0b0015338ea1","remote":true},{"legacyId":"60844b74dc73ee0015da9779","legacyServiceId":"629e4bc42438c3003e58ef03","remote":true},{"legacyId":"60873fc7e82155001589aa88","legacyServiceId":"6087888f11724d0015266018","remote":true},{"legacyId":"60873fc7e82155001589aa88","legacyServiceId":"608785b611724d0015266014","remote":true},{"legacyId":"60873fc7e82155001589aa88","legacyServiceId":"61e9bd035dd30f002e3b24c3","remote":true},{"legacyId":"608c4790a60870001506348f","legacyServiceId":"608d7916f7bb7e0015432003","remote":true},{"legacyId":"608cac6fa608700015063815","legacyServiceId":"608cb7e2a60870001506387d","remote":true},{"legacyId":"608cac6fa608700015063815","legacyServiceId":"608cc2e2a60870001506391a","remote":true},{"legacyId":"608cae02a608700015063821","legacyServiceId":"62aa157b729568001660d2e1","remote":false},{"legacyId":"60901786fc37dc0015325bed","legacyServiceId":"62e424895b13b30016bd958e","remote":false},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"6091a1651a48960015d56d2f","remote":false},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"6091a3391a48960015d56d54","remote":false},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"60919d9a1a48960015d56d24","remote":false},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"63937bc0401ff70008eedccb","remote":false},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"63937d5a8af2b2000827aa3b","remote":false},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"63937eb08af2b2000827aa5c","remote":false},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"6393809b55a5ba0008f3d52c","remote":false},{"legacyId":"6091ffd48e7dc300153179a8","legacyServiceId":"609201488e7dc300153179ad","remote":false},{"legacyId":"6091ffd48e7dc300153179a8","legacyServiceId":"609204d38e7dc300153179b5","remote":true},{"legacyId":"60929c318e7dc30015317a2d","legacyServiceId":"6092a6578e7dc30015317a5a","remote":false},{"legacyId":"60929c318e7dc30015317a2d","legacyServiceId":"60929e3c8e7dc30015317a33","remote":false},{"legacyId":"60932fa1206ab500154a0af7","legacyServiceId":"60933359206ab500154a0afd","remote":true},{"legacyId":"6099f76955102c0015d8a207","legacyServiceId":"609b372955102c0015d8a475","remote":false},{"legacyId":"6099f76955102c0015d8a207","legacyServiceId":"624cd71bc374cc003731b8cd","remote":false},{"legacyId":"609b3b6b55102c0015d8a496","legacyServiceId":"60a4807283625c0015a30b05","remote":true},{"legacyId":"609b3b6b55102c0015d8a496","legacyServiceId":"614e0d2a28fb1e0016f64119","remote":false},{"legacyId":"60a5218583625c0015a30b1e","legacyServiceId":"60a52da583625c0015a30b32","remote":false},{"legacyId":"60a6fe221abaa100155b4e1d","legacyServiceId":"60a706571abaa100155b4e4a","remote":true},{"legacyId":"60a729591abaa100155b4e9b","legacyServiceId":"62ced4874995b600164f998f","remote":false},{"legacyId":"60a729591abaa100155b4e9b","legacyServiceId":"62ced8f423b1b20016333371","remote":false},{"legacyId":"60afdf042f913d0015ba1468","legacyServiceId":"60afe2712f913d0015ba146f","remote":false},{"legacyId":"60b007f12f913d0015ba1492","legacyServiceId":"60b02a8a2f913d0015ba14a8","remote":true},{"legacyId":"60b007f12f913d0015ba1492","legacyServiceId":"60b027e22f913d0015ba14a4","remote":true},{"legacyId":"60b069b82f913d0015ba164e","legacyServiceId":"60b06a522f913d0015ba1651","remote":false},{"legacyId":"60b29c64220aea00157e64f2","legacyServiceId":"60b364e5b008ee0015b63704","remote":false},{"legacyId":"60b4e721e9407900152618a8","legacyServiceId":"631f8fa2daa2150016b55301","remote":false},{"legacyId":"60b56915e940790015261968","legacyServiceId":"6151335da1fa520016c02463","remote":true},{"legacyId":"60b58c80e940790015261979","legacyServiceId":"60b620e40ece360015297a45","remote":true},{"legacyId":"60b58c80e940790015261979","legacyServiceId":"60b5c5cce9407900152619b5","remote":false},{"legacyId":"60b66cb20ece360015297a78","legacyServiceId":"60bf9b0337aebe0015ca1501","remote":true},{"legacyId":"60b66cb20ece360015297a78","legacyServiceId":"60bf99cc37aebe0015ca14ec","remote":true},{"legacyId":"60b66cb20ece360015297a78","legacyServiceId":"60bf984737aebe0015ca14d0","remote":true},{"legacyId":"60b66cb20ece360015297a78","legacyServiceId":"63700b8fd433760008862985","remote":true},{"legacyId":"60bf9cb837aebe0015ca151a","legacyServiceId":"60c0dfc73662060015333dc2","remote":true},{"legacyId":"60bf9cb837aebe0015ca151a","legacyServiceId":"60c0f768366206001533407e","remote":true},{"legacyId":"60bfbf4e37aebe0015ca1561","legacyServiceId":"60bfc1c037aebe0015ca1569","remote":false},{"legacyId":"60bfbf4e37aebe0015ca1561","legacyServiceId":"60bfd9c23662060015333a9e","remote":false},{"legacyId":"60c2451cbe6d980015459643","legacyServiceId":"60c3adf82914880015814541","remote":true},{"legacyId":"60c2451cbe6d980015459643","legacyServiceId":"60c2479ebe6d98001545968b","remote":true},{"legacyId":"60c26c71be6d9800154599b4","legacyServiceId":"60c27a7f2914880015813f08","remote":false},{"legacyId":"60c2d62f2914880015814167","legacyServiceId":"60c423652cc3270015fb4157","remote":true},{"legacyId":"60c2d62f2914880015814167","legacyServiceId":"60c428922cc3270015fb415f","remote":true},{"legacyId":"60c2d62f2914880015814167","legacyServiceId":"619a90133484880016a432c5","remote":true},{"legacyId":"60c3b62b29148800158145d3","legacyServiceId":"60c3ce10291488001581470e","remote":true},{"legacyId":"60c3c1c32914880015814628","legacyServiceId":"60c3c8112914880015814686","remote":true},{"legacyId":"60c523d82cc3270015fb4376","legacyServiceId":"60c81ce0b5824600151f0978","remote":true},{"legacyId":"60c78d8249dcbe0015c9888a","legacyServiceId":"6165e33f58c5170016417271","remote":true},{"legacyId":"60c78d8249dcbe0015c9888a","legacyServiceId":"60c79e8b49dcbe0015c9898a","remote":true},{"legacyId":"60cfb3d813a1370015c9885b","legacyServiceId":"62c486d11a8bad0016050c62","remote":false},{"legacyId":"60d0f456c4db22001539a407","legacyServiceId":"60d22bf7eb60480015f22943","remote":false},{"legacyId":"60d20a62eb60480015f22547","legacyServiceId":"60d221e9eb60480015f2288e","remote":true},{"legacyId":"60d20a62eb60480015f22547","legacyServiceId":"60d21fe8eb60480015f22874","remote":false},{"legacyId":"60d34970c3164c0015bc229d","legacyServiceId":"60d3d080c3164c0015bc2a93","remote":false},{"legacyId":"60d34970c3164c0015bc229d","legacyServiceId":"60d3d19fc3164c0015bc2ab6","remote":false},{"legacyId":"60d37e60c3164c0015bc271a","legacyServiceId":"60d386a2c3164c0015bc277a","remote":true},{"legacyId":"60d4be67417e720015cc7cfb","legacyServiceId":"60d4bf88417e720015cc7d18","remote":false},{"legacyId":"60d516ef417e720015cc813f","legacyServiceId":"63ffd638e625720008d04655","remote":false},{"legacyId":"60da1748f033170015a76809","legacyServiceId":"640111bac315cb0008390e6c","remote":true},{"legacyId":"60da8f0bf033170015a76ad3","legacyServiceId":"60da907ff033170015a76ad8","remote":false},{"legacyId":"60da91daf033170015a76add","legacyServiceId":"60da9415f033170015a76af5","remote":false},{"legacyId":"60da91daf033170015a76add","legacyServiceId":"60da94a533bdd800152a36fc","remote":false},{"legacyId":"60da9e0b33bdd800152a37b4","legacyServiceId":"60da9e7f33bdd800152a37bb","remote":false},{"legacyId":"60db910a33bdd800152a400e","legacyServiceId":"60db95ef33bdd800152a408b","remote":false},{"legacyId":"60dcb6ef97360200157fd31c","legacyServiceId":"60dcbda997360200157fd41c","remote":false},{"legacyId":"60dd32a1772c7300159ba917","legacyServiceId":"61020dd53b0691001563528e","remote":false},{"legacyId":"60dd32a1772c7300159ba917","legacyServiceId":"60f89e41a6087f0015cc7d14","remote":false},{"legacyId":"60de3c27772c7300159bafb0","legacyServiceId":"612e961a72f2fc0015171a15","remote":true},{"legacyId":"60dfd2dd046046001560804a","legacyServiceId":"60dfd8f6046046001560805c","remote":false},{"legacyId":"60dfd2dd046046001560804a","legacyServiceId":"6424b07f4edc230008939be9","remote":false},{"legacyId":"60e0d70f1c361100152cd251","legacyServiceId":"60e0dc001c361100152cd263","remote":false},{"legacyId":"60e327d42255630015532349","legacyServiceId":"64039a3b7246af00084b8ee0","remote":false},{"legacyId":"60e746eee29da400157e36f3","legacyServiceId":"626131299e9e9c002e0ccdf4","remote":true},{"legacyId":"60e746eee29da400157e36f3","legacyServiceId":"626133ac9e9e9c002e0cce05","remote":true},{"legacyId":"60edd625f965f00015e52226","legacyServiceId":"60edf2c0c98fa500156ebf45","remote":false},{"legacyId":"60ef2849c98fa500156ec200","legacyServiceId":"60ef5ff6af95cc0015fc9e66","remote":true},{"legacyId":"60ef2849c98fa500156ec200","legacyServiceId":"60ef5fb1af95cc0015fc9e64","remote":true},{"legacyId":"60f5d14c83a5c600157a7510","legacyServiceId":"60f6eda24209270015be26c6","remote":true},{"legacyId":"60f5d14c83a5c600157a7510","legacyServiceId":"60f6d5914209270015be2512","remote":false},{"legacyId":"60f5d14c83a5c600157a7510","legacyServiceId":"60f5e68c83a5c600157a767e","remote":false},{"legacyId":"60f5d14c83a5c600157a7510","legacyServiceId":"60f5e10a83a5c600157a7643","remote":false},{"legacyId":"60f75c33a6087f0015cc7797","legacyServiceId":"60f87cf3a6087f0015cc7b85","remote":false},{"legacyId":"60f775dea6087f0015cc77b3","legacyServiceId":"60f77a17a6087f0015cc77c2","remote":true},{"legacyId":"60f84f53a6087f0015cc7a63","legacyServiceId":"60f85aeea6087f0015cc7afd","remote":false},{"legacyId":"60f99591bc8b9400154b3d97","legacyServiceId":"60feeb6af6907600151fe62a","remote":false},{"legacyId":"60f99591bc8b9400154b3d97","legacyServiceId":"60feea63f6907600151fe616","remote":true},{"legacyId":"60f99591bc8b9400154b3d97","legacyServiceId":"60fee8c3f6907600151fe5fa","remote":true},{"legacyId":"60fb68a3cc4c4f0015979e04","legacyServiceId":"60fb6971cc4c4f0015979e0b","remote":false},{"legacyId":"6102f7b23b0691001563565a","legacyServiceId":"6103005bab1662001548f821","remote":true},{"legacyId":"61032123ab1662001548f88e","legacyServiceId":"6103238cab1662001548f8c0","remote":true},{"legacyId":"61032123ab1662001548f88e","legacyServiceId":"6103239bab1662001548f8c1","remote":false},{"legacyId":"61043d7aab1662001548fa67","legacyServiceId":"61043f5cab1662001548fa68","remote":true},{"legacyId":"6105bfc490f18b0015f8ce9f","legacyServiceId":"6105c15890f18b0015f8ceb8","remote":false},{"legacyId":"6105ff3090f18b0015f8cf92","legacyServiceId":"610602fd90f18b0015f8cfbd","remote":false},{"legacyId":"6105ff3090f18b0015f8cf92","legacyServiceId":"617acee7b8ec5b00165594a9","remote":false},{"legacyId":"6109d9583b53cb001506007b","legacyServiceId":"631b9977fe80450016da0b1b","remote":true},{"legacyId":"610ab10c3b53cb001506024e","legacyServiceId":"610ab2aa3b53cb001506025c","remote":false},{"legacyId":"610ab10c3b53cb001506024e","legacyServiceId":"610ab4e73b53cb0015060277","remote":false},{"legacyId":"610adbf93b53cb00150603a5","legacyServiceId":"631f83f4daa2150016b552cf","remote":false},{"legacyId":"610c24cbe0767700155da6e3","legacyServiceId":"610c30eee0767700155da7b6","remote":false},{"legacyId":"610d58947139c2001578e3d3","legacyServiceId":"610d88417139c2001578e461","remote":true},{"legacyId":"610d58947139c2001578e3d3","legacyServiceId":"610d5bd77139c2001578e3de","remote":true},{"legacyId":"6114546f95bda10015759694","legacyServiceId":"611455a595bda10015759697","remote":false},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"611582b312b01400158515bc","remote":true},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"641dfa79c90cd00008e34b3c","remote":true},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"642762c4398eb100087494e6","remote":false},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"642f08c9fa23d50008722912","remote":false},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"642f1b6ede7e0b0008b4936e","remote":false},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"642f2890ac0d390008ab1a4d","remote":false},{"legacyId":"6115dc386504a2001515f307","legacyServiceId":"6115dc636504a2001515f308","remote":true},{"legacyId":"612d262990d41800153b5c89","legacyServiceId":"6133fb7b21cb5c0016b681a9","remote":true},{"legacyId":"612d262990d41800153b5c89","legacyServiceId":"614aae29bc518100163b9285","remote":true},{"legacyId":"612e8f0772f2fc00151719bd","legacyServiceId":"612e900772f2fc00151719c7","remote":false},{"legacyId":"6134dbcb9a911e0016353f81","legacyServiceId":"6134dd9d9a911e0016353f8a","remote":true},{"legacyId":"6147c37a512160001690c716","legacyServiceId":"6147c643512160001690c71d","remote":false},{"legacyId":"6147c37a512160001690c716","legacyServiceId":"6147c89b512160001690c732","remote":false},{"legacyId":"6147c37a512160001690c716","legacyServiceId":"6147c9a1512160001690c743","remote":false},{"legacyId":"6147c37a512160001690c716","legacyServiceId":"6147cad8512160001690c754","remote":false},{"legacyId":"6147c37a512160001690c716","legacyServiceId":"6147cb82512160001690c765","remote":false},{"legacyId":"6147c37a512160001690c716","legacyServiceId":"6147cc22512160001690c776","remote":false},{"legacyId":"6147c37a512160001690c716","legacyServiceId":"62d4b3cf6c0ce20016cbd3d7","remote":false},{"legacyId":"6147cd0a512160001690c78b","legacyServiceId":"63f128b8aa45de00081de2dd","remote":true},{"legacyId":"6156aa6eb632290016c193cb","legacyServiceId":"6156ab78b632290016c193ce","remote":false},{"legacyId":"61585206094fd50016718615","legacyServiceId":"61585990094fd50016718625","remote":true},{"legacyId":"6158c5511241ad0016757cda","legacyServiceId":"6158ca961241ad0016757ce8","remote":false},{"legacyId":"615b68355b42ec001617ec7f","legacyServiceId":"615b6c0a5eabee0016ee9d0f","remote":true},{"legacyId":"615cdea952b7730016d87474","legacyServiceId":"615ce1c152b7730016d8748f","remote":true},{"legacyId":"615cdea952b7730016d87474","legacyServiceId":"643f0bf9b2ee880008924078","remote":true},{"legacyId":"616731dd8ab5c700169045c3","legacyServiceId":"6287468ba7f35f002e8ba5b6","remote":false},{"legacyId":"616731dd8ab5c700169045c3","legacyServiceId":"62874832a7f35f002e8ba5c8","remote":false},{"legacyId":"616976a56a40d100167af0b0","legacyServiceId":"616c34ecf572db0016be22b5","remote":true},{"legacyId":"6175f84d8e5a6d0016574702","legacyServiceId":"6175ff9c8e5a6d0016574722","remote":true},{"legacyId":"6175f84d8e5a6d0016574702","legacyServiceId":"617606268e5a6d0016574737","remote":true},{"legacyId":"6178954a7418a9001690a87e","legacyServiceId":"6178a69527e6f50016b279af","remote":true},{"legacyId":"617a811cb8ec5b001655942a","legacyServiceId":"617a852cb8ec5b0016559435","remote":true},{"legacyId":"617a811cb8ec5b001655942a","legacyServiceId":"617a8889b8ec5b0016559443","remote":true},{"legacyId":"617a8eb9b8ec5b001655944e","legacyServiceId":"617bf236acb9af00162c20cc","remote":true},{"legacyId":"617becb2acb9af00162c20bd","legacyServiceId":"617f265df8f17a0016bd7b7b","remote":false},{"legacyId":"617becb2acb9af00162c20bd","legacyServiceId":"62d8481d2b86e500167492ff","remote":true},{"legacyId":"617becb2acb9af00162c20bd","legacyServiceId":"62d8482f2b86e50016749300","remote":false},{"legacyId":"617c0e4facb9af00162c218e","legacyServiceId":"62c4e0231a8bad001605119b","remote":true},{"legacyId":"617c0e4facb9af00162c218e","legacyServiceId":"62c4e1151a8bad00160511a4","remote":true},{"legacyId":"617c0e4facb9af00162c218e","legacyServiceId":"635a8b3da8bb500016948dab","remote":true},{"legacyId":"617eff48f8f17a0016bd7b00","legacyServiceId":"617f02aff8f17a0016bd7b06","remote":false},{"legacyId":"617f433af8f17a0016bd7bac","legacyServiceId":"617f4857f8f17a0016bd7bbe","remote":false},{"legacyId":"6180a9f08faefd00160f1c6b","legacyServiceId":"6180ab978faefd00160f1c72","remote":true},{"legacyId":"6180a9f08faefd00160f1c6b","legacyServiceId":"6180aeea06ed900016ed3f38","remote":true},{"legacyId":"618ad4525adee200169c068d","legacyServiceId":"618ad6b05adee200169c0692","remote":false},{"legacyId":"619beefdfd4bb8001615aabb","legacyServiceId":"619bf6e1fd4bb8001615ab15","remote":true},{"legacyId":"619d52f28c73430016fdc147","legacyServiceId":"619d53ac8c73430016fdc149","remote":false},{"legacyId":"619d52f28c73430016fdc147","legacyServiceId":"619d53908c73430016fdc148","remote":true},{"legacyId":"61a15b986e47620016725151","legacyServiceId":"61aa8a0d2c5a7400160446c7","remote":false},{"legacyId":"61a15b986e47620016725151","legacyServiceId":"61a15ebe6e4762001672516a","remote":false},{"legacyId":"61a1620e6e4762001672517d","legacyServiceId":"61a163166e47620016725186","remote":false},{"legacyId":"61a1620e6e4762001672517d","legacyServiceId":"623f01eec1e9fc002e07d26f","remote":true},{"legacyId":"61a1620e6e4762001672517d","legacyServiceId":"623f0470c1e9fc002e07d27b","remote":false},{"legacyId":"61a1620e6e4762001672517d","legacyServiceId":"62b73ee086a04e0016f259fe","remote":true},{"legacyId":"61a4474af3cc6b0016f61b9d","legacyServiceId":"62e19617956c7c00165f7834","remote":true},{"legacyId":"61a50d55f3cc6b0016f61ba5","legacyServiceId":"61a51272f3cc6b0016f61baa","remote":true},{"legacyId":"61a50d55f3cc6b0016f61ba5","legacyServiceId":"61a51d61f3cc6b0016f61bf3","remote":true},{"legacyId":"61a50d55f3cc6b0016f61ba5","legacyServiceId":"61a524a3f3cc6b0016f61c17","remote":true},{"legacyId":"61a50d55f3cc6b0016f61ba5","legacyServiceId":"61a52651f3cc6b0016f61c28","remote":true},{"legacyId":"61a656819fcb5800160f0e37","legacyServiceId":"61a656d79fcb5800160f0e39","remote":true},{"legacyId":"61a65b7c9fcb5800160f0e5b","legacyServiceId":"61a65bd89fcb5800160f0e5d","remote":true},{"legacyId":"61a65b7c9fcb5800160f0e5b","legacyServiceId":"624048796386090030da9a97","remote":true},{"legacyId":"61a679499fcb5800160f0eaa","legacyServiceId":"62b89fc070863900168f3179","remote":true},{"legacyId":"61a6b7869fcb5800160f0f29","legacyServiceId":"61a6b8c79fcb5800160f0f40","remote":true},{"legacyId":"61b622dbe9370d0016ee70e1","legacyServiceId":"61b62838e9370d0016ee70eb","remote":false},{"legacyId":"61be003714682d0016b3c4f2","legacyServiceId":"61be04f314682d0016b3c505","remote":false},{"legacyId":"61be003714682d0016b3c4f2","legacyServiceId":"61be078314682d0016b3c524","remote":false},{"legacyId":"61be003714682d0016b3c4f2","legacyServiceId":"61be02e614682d0016b3c503","remote":false},{"legacyId":"61bfb3eaaad49700168928cd","legacyServiceId":"61bfb69caad49700168928dc","remote":true},{"legacyId":"61bfb3eaaad49700168928cd","legacyServiceId":"61bfb7b4aad49700168928e9","remote":true},{"legacyId":"61c4eb09a3e6f30016ee71f4","legacyServiceId":"61c4fd17a3e6f30016ee720e","remote":false},{"legacyId":"61cbac9064fd780016ba1412","legacyServiceId":"61cbaee464fd780016ba141b","remote":true},{"legacyId":"61ce9f8d107d4400166c1f76","legacyServiceId":"61cea075107d4400166c1f79","remote":true},{"legacyId":"61cf79f46c6bfb0016dcc263","legacyServiceId":"61cf7bb86c6bfb0016dcc26a","remote":true},{"legacyId":"61cf79f46c6bfb0016dcc263","legacyServiceId":"61d76ee2dfff9b0033e4f34c","remote":true},{"legacyId":"61cf79f46c6bfb0016dcc263","legacyServiceId":"61d7718adfff9b0033e4f35f","remote":false},{"legacyId":"61cf79f46c6bfb0016dcc263","legacyServiceId":"61d77bacdfff9b0033e4f383","remote":false},{"legacyId":"61da06431baa89002eb92141","legacyServiceId":"62cc7d35b291bc001648daee","remote":false},{"legacyId":"61dddd5904b79500307ac63e","legacyServiceId":"61dde5d304b79500307ac648","remote":true},{"legacyId":"61dddd5904b79500307ac63e","legacyServiceId":"61ddea6b04b79500307ac64c","remote":true},{"legacyId":"61dddd5904b79500307ac63e","legacyServiceId":"61ddec4604b79500307ac652","remote":true},{"legacyId":"61e2010a3b67bf002e9c1b5a","legacyServiceId":"61e205393b67bf002e9c1b86","remote":false},{"legacyId":"61ef0e52c3f933002e0f4550","legacyServiceId":"61ef128bc3f933002e0f4558","remote":true},{"legacyId":"61ef0e52c3f933002e0f4550","legacyServiceId":"61ef190cc3f933002e0f4565","remote":true},{"legacyId":"61f2e55d074eef002ebaf9a9","legacyServiceId":"61f2eedc074eef002ebaf9eb","remote":true},{"legacyId":"61f2e55d074eef002ebaf9a9","legacyServiceId":"61f2f1b4074eef002ebaf9f4","remote":false},{"legacyId":"61f35935074eef002ebafd84","legacyServiceId":"62d5d717deeccd0016c3f291","remote":false},{"legacyId":"61f35935074eef002ebafd84","legacyServiceId":"62d5d893deeccd0016c3f295","remote":true},{"legacyId":"61f5454e07bb8a00391561a4","legacyServiceId":"623ded33edddbc002e92ff16","remote":false},{"legacyId":"61f5454e07bb8a00391561a4","legacyServiceId":"623dfa21edddbc002e92ff42","remote":true},{"legacyId":"61f6c51fc0528f003e830c8b","legacyServiceId":"61f6c70dc0528f003e830c92","remote":true},{"legacyId":"61f6c51fc0528f003e830c8b","legacyServiceId":"62acd717d0f7c900164b9f6f","remote":true},{"legacyId":"61f6e0f2c0528f003e830d82","legacyServiceId":"61f6e7e8c0528f003e830dad","remote":true},{"legacyId":"61f6e0f2c0528f003e830d82","legacyServiceId":"61f6ed7dc0528f003e830dfe","remote":true},{"legacyId":"61f86a5ecf5e66002e9a8c3d","legacyServiceId":"61f879bccf5e66002e9a8c48","remote":false},{"legacyId":"61f86a5ecf5e66002e9a8c3d","legacyServiceId":"62b4af0397f57f00164ccc27","remote":false},{"legacyId":"61f86a5ecf5e66002e9a8c3d","legacyServiceId":"6350cafa543d290016f5f063","remote":false},{"legacyId":"61f94f209901e800302562ba","legacyServiceId":"61f950669901e800302562bb","remote":false},{"legacyId":"620527fbb14d39002e6035a8","legacyServiceId":"620531f6b14d39002e6035ae","remote":true},{"legacyId":"620527fbb14d39002e6035a8","legacyServiceId":"620533b0b14d39002e6035b0","remote":true},{"legacyId":"620527fbb14d39002e6035a8","legacyServiceId":"62053423b14d39002e6035b1","remote":true},{"legacyId":"62053f90b14d39002e6035b2","legacyServiceId":"62054127b14d39002e6035b6","remote":true},{"legacyId":"621d0a7ee4a829002e3fa48e","legacyServiceId":"62acdcdfd0f7c900164b9ffd","remote":false},{"legacyId":"6226d086c68a07002e413883","legacyServiceId":"634870ae3e1e6f0016356b4d","remote":true},{"legacyId":"6226e0cfc68a07002e41399f","legacyServiceId":"62b1d2272abbb000169ca883","remote":false},{"legacyId":"6227692a19c0b4002e5b5e32","legacyServiceId":"622769e219c0b4002e5b5e34","remote":true},{"legacyId":"623a0679805349002e77cf7c","legacyServiceId":"623a0b2a805349002e77cf9c","remote":true},{"legacyId":"623ccc3c258927002ee0aab4","legacyServiceId":"623cd1ef258927002ee0aad0","remote":true},{"legacyId":"623cef3cedddbc002e92fdb7","legacyServiceId":"623cefccedddbc002e92fdba","remote":true},{"legacyId":"623fe3356386090030da9a1f","legacyServiceId":"6414aff4ddda1f0008e92cda","remote":true},{"legacyId":"623fe3356386090030da9a1f","legacyServiceId":"6414b97dcfb32e0008fef475","remote":true},{"legacyId":"623fe3356386090030da9a1f","legacyServiceId":"641e0126c984c60008c60ffd","remote":true},{"legacyId":"62434d6838d0db002ec3f9ac","legacyServiceId":"62434f2d38d0db002ec3f9b3","remote":true},{"legacyId":"62434d6838d0db002ec3f9ac","legacyServiceId":"6243523638d0db002ec3f9e0","remote":true},{"legacyId":"62434d6838d0db002ec3f9ac","legacyServiceId":"6243537b38d0db002ec3f9f3","remote":true},{"legacyId":"62479193ec8892002ebce973","legacyServiceId":"62479735ec8892002ebce9a1","remote":true},{"legacyId":"62479193ec8892002ebce973","legacyServiceId":"6419fddde3c1800008743ab9","remote":true},{"legacyId":"62479193ec8892002ebce973","legacyServiceId":"6419ff051339f400083d549c","remote":true},{"legacyId":"62479193ec8892002ebce973","legacyServiceId":"641a07f1e9cdd500084c04f0","remote":true},{"legacyId":"62479193ec8892002ebce973","legacyServiceId":"641a0c0741313500083121b4","remote":true},{"legacyId":"62479e7fec8892002ebce9eb","legacyServiceId":"6247a198ec8892002ebcea08","remote":false},{"legacyId":"624c9b26c374cc003731b870","legacyServiceId":"624cacb1c374cc003731b8a2","remote":false},{"legacyId":"624e08ba3fdca1003eeb2929","legacyServiceId":"624f67675fe141002ebb0a37","remote":true},{"legacyId":"625082f10b612c002ed3ef56","legacyServiceId":"6260721b901c7b003e5db019","remote":false},{"legacyId":"625098d00b612c002ed3ef6c","legacyServiceId":"62509c470b612c002ed3ef79","remote":true},{"legacyId":"625098d00b612c002ed3ef6c","legacyServiceId":"6250a9410b612c002ed3efb4","remote":true},{"legacyId":"6253702ad3fb39002e182bbb","legacyServiceId":"62537b6fd3fb39002e182bf1","remote":true},{"legacyId":"625707f71476bb002e8fe171","legacyServiceId":"62570f5d1476bb002e8fe191","remote":false},{"legacyId":"625707f71476bb002e8fe171","legacyServiceId":"625713b81476bb002e8fe1ae","remote":true},{"legacyId":"6259c3e4f183d7002e9d104a","legacyServiceId":"64231b0eceb4800008d19533","remote":false},{"legacyId":"6259c3e4f183d7002e9d104a","legacyServiceId":"642323fb633bff00089d0b7b","remote":false},{"legacyId":"6259c3e4f183d7002e9d104a","legacyServiceId":"64233724fe742b0008d66203","remote":false},{"legacyId":"6269b4a926e77e003e070366","legacyServiceId":"6269b5ea26e77e003e070373","remote":true},{"legacyId":"6269b4f526e77e003e070367","legacyServiceId":"6269b5dd26e77e003e070372","remote":true},{"legacyId":"6269b4f526e77e003e070367","legacyServiceId":"6269b67126e77e003e070384","remote":false},{"legacyId":"6269b4f526e77e003e070367","legacyServiceId":"6269b72726e77e003e0703aa","remote":false},{"legacyId":"6269b4f526e77e003e070367","legacyServiceId":"6269b7f126e77e003e0703b4","remote":false},{"legacyId":"6269b4f526e77e003e070367","legacyServiceId":"6269b84626e77e003e0703b8","remote":false},{"legacyId":"626ad2efb21ae1003e14f790","legacyServiceId":"626ad5d1b21ae1003e14f79b","remote":false},{"legacyId":"626ad2efb21ae1003e14f790","legacyServiceId":"626adce6b21ae1003e14f7b0","remote":false},{"legacyId":"626ae1c8b21ae1003e14f7b1","legacyServiceId":"626ae522b21ae1003e14f7b8","remote":true},{"legacyId":"626ae1c8b21ae1003e14f7b1","legacyServiceId":"626b0556b21ae1003e14f895","remote":false},{"legacyId":"626ae1c8b21ae1003e14f7b1","legacyServiceId":"626b09eab21ae1003e14f8af","remote":false},{"legacyId":"626ae1c8b21ae1003e14f7b1","legacyServiceId":"626b0aa5b21ae1003e14f8eb","remote":false},{"legacyId":"626c6027c8625a003e42fd89","legacyServiceId":"626c636bc8625a003e42fdba","remote":true},{"legacyId":"626c6027c8625a003e42fd89","legacyServiceId":"626c672ec8625a003e42fe05","remote":true},{"legacyId":"626d6143d75a3c003e8b4f09","legacyServiceId":"626d641ed75a3c003e8b4f20","remote":true},{"legacyId":"626ff77dbca3b6003e4281e7","legacyServiceId":"6271717ebaa8d7003e5e0b22","remote":true},{"legacyId":"62865134e6b765002e44756b","legacyServiceId":"644c4950c3fc0200086c02dc","remote":false},{"legacyId":"628baa9e30b594002e88aa48","legacyServiceId":"628d6d000fdd51002e0ffcea","remote":true},{"legacyId":"628d1ba30fdd51002e0ffbb3","legacyServiceId":"628d1dc50fdd51002e0ffbc0","remote":false},{"legacyId":"628d251b0fdd51002e0ffc7a","legacyServiceId":"628e62497b6a85002e7f7983","remote":true},{"legacyId":"6293987c4d07c0003ea26cc9","legacyServiceId":"62939b344d07c0003ea26cd9","remote":false},{"legacyId":"629514e47416cd002e4e201b","legacyServiceId":"643eda93d9d7140008d77934","remote":true},{"legacyId":"629675c1821e4f003e81844e","legacyServiceId":"6296aecfb42059002e706d48","remote":true},{"legacyId":"629675c1821e4f003e81844e","legacyServiceId":"6296b464b42059002e706d4d","remote":true},{"legacyId":"629675c1821e4f003e81844e","legacyServiceId":"6296b7d7b42059002e706d53","remote":true},{"legacyId":"6296fa20b42059002e706ddc","legacyServiceId":"63d952dfd060f0000843196f","remote":false},{"legacyId":"629f6a3a553d8b002edb755f","legacyServiceId":"64308bb17ccd2f0008870ff8","remote":true},{"legacyId":"62aa250c729568001660d35c","legacyServiceId":"62aa2dbe729568001660d427","remote":true},{"legacyId":"62ac5820d0f7c900164b9c9f","legacyServiceId":"62b05fd6301c590016ae35b4","remote":true},{"legacyId":"62b5e4ffac0b870016dfe8c7","legacyServiceId":"62b5e684ac0b870016dfe8d4","remote":true},{"legacyId":"62b5e4ffac0b870016dfe8c7","legacyServiceId":"62b5e850ac0b870016dfe8e9","remote":false},{"legacyId":"62b5e4ffac0b870016dfe8c7","legacyServiceId":"62b5e8fcac0b870016dfe8f0","remote":true},{"legacyId":"62b5e4ffac0b870016dfe8c7","legacyServiceId":"62b5e9d2ac0b870016dfe8ff","remote":true},{"legacyId":"62b938a7685bb00016bf0460","legacyServiceId":"62b93b20685bb00016bf0468","remote":true},{"legacyId":"62b938a7685bb00016bf0460","legacyServiceId":"62b93b32685bb00016bf0469","remote":true},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9edba685bb00016bf0dcc","remote":true},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9ee7e685bb00016bf0dd9","remote":true},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9f01f685bb00016bf0e07","remote":true},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9f0cd685bb00016bf0e1d","remote":false},{"legacyId":"62ba003d685bb00016bf0f6f","legacyServiceId":"62ba070e685bb00016bf0fb7","remote":true},{"legacyId":"62ba003d685bb00016bf0f6f","legacyServiceId":"62ba082a685bb00016bf0fc0","remote":true},{"legacyId":"62bcbdf45edbf80016281428","legacyServiceId":"62bcd5105edbf800162814e8","remote":false},{"legacyId":"62bf2692b5d35800160683de","legacyServiceId":"62bf2938b5d35800160683e6","remote":true},{"legacyId":"62bf36bdb5d358001606843c","legacyServiceId":"62bf37c7b5d3580016068444","remote":true},{"legacyId":"62bf3d72b5d3580016068474","legacyServiceId":"62bf3fbab5d358001606848a","remote":true},{"legacyId":"62bf44ccb5d35800160684a5","legacyServiceId":"62bf4699b5d35800160684c1","remote":true},{"legacyId":"62bf48b2b5d35800160684f2","legacyServiceId":"62bf4c7ab5d3580016068525","remote":true},{"legacyId":"62d08052c028d00016b5a25a","legacyServiceId":"632c7cc9fb4a5d0016827bf9","remote":true},{"legacyId":"62d09716c028d00016b5a2c7","legacyServiceId":"62d0a05dc028d00016b5a343","remote":true},{"legacyId":"62d09716c028d00016b5a2c7","legacyServiceId":"62d0a3c0c028d00016b5a354","remote":true},{"legacyId":"62d1b578e7dfb1001682579a","legacyServiceId":"62d1bc05e7dfb100168257b1","remote":true},{"legacyId":"62d5b677deeccd0016c3f209","legacyServiceId":"62d5b904deeccd0016c3f21e","remote":false},{"legacyId":"62dee072c69dbf00162aef6a","legacyServiceId":"643349e7e7a26e0008cb4a99","remote":true},{"legacyId":"62e19513956c7c00165f7830","legacyServiceId":"62e19a24956c7c00165f784f","remote":true},{"legacyId":"62e29b445245bc00167d7261","legacyServiceId":"62e29bed5245bc00167d7265","remote":true},{"legacyId":"62e44f425b13b30016bd975b","legacyServiceId":"63ebfc660646080008f407fb","remote":true},{"legacyId":"62f54396253d8100167943dc","legacyServiceId":"62f545ea253d8100167943de","remote":false},{"legacyId":"62f54396253d8100167943dc","legacyServiceId":"62f54612253d8100167943e0","remote":false},{"legacyId":"62f54396253d8100167943dc","legacyServiceId":"62f54647253d8100167943e2","remote":false},{"legacyId":"62fbd5a7affb290016289c87","legacyServiceId":"62fbd730affb290016289c97","remote":true},{"legacyId":"62fbd5a7affb290016289c87","legacyServiceId":"62fbda47affb290016289caa","remote":false},{"legacyId":"6302ae932d0d7f0016ee4dc8","legacyServiceId":"6302b5862d0d7f0016ee4e5f","remote":true},{"legacyId":"6317af16182a020016c01fe6","legacyServiceId":"6317b09d182a020016c01fea","remote":false},{"legacyId":"6317af16182a020016c01fe6","legacyServiceId":"6317b281182a020016c01ff3","remote":false},{"legacyId":"632e23e6a683810016f350af","legacyServiceId":"633236bbd793a00016e66cd4","remote":true},{"legacyId":"632e23e6a683810016f350af","legacyServiceId":"6430539f77cc6a0008e738d9","remote":true},{"legacyId":"632e23e6a683810016f350af","legacyServiceId":"643056d367d9d70008b62cf7","remote":false},{"legacyId":"633352cdd793a00016e670d3","legacyServiceId":"633356a0d793a00016e670f1","remote":true},{"legacyId":"633715952f780e0016781ff0","legacyServiceId":"633719b52f780e001678201c","remote":false},{"legacyId":"633715952f780e0016781ff0","legacyServiceId":"63371a552f780e0016782036","remote":false},{"legacyId":"63378f1513e4680016ded21d","legacyServiceId":"633793c313e4680016ded254","remote":true},{"legacyId":"6337981213e4680016ded28e","legacyServiceId":"63379df113e4680016ded2ba","remote":false},{"legacyId":"6338c523b155890016f14e30","legacyServiceId":"6338c7b8b155890016f14e49","remote":false},{"legacyId":"6338c523b155890016f14e30","legacyServiceId":"6338ca81b155890016f14e75","remote":false},{"legacyId":"6338c523b155890016f14e30","legacyServiceId":"6338cb2fb155890016f14e91","remote":false},{"legacyId":"6338e14cb155890016f14f5a","legacyServiceId":"6338e351b155890016f14f6f","remote":false},{"legacyId":"6338e779b155890016f14f9d","legacyServiceId":"6338e920b155890016f14fa5","remote":true},{"legacyId":"6338e779b155890016f14f9d","legacyServiceId":"6338ea76b155890016f14fab","remote":false},{"legacyId":"6338e779b155890016f14f9d","legacyServiceId":"6338ec44b155890016f14fce","remote":true},{"legacyId":"6338e779b155890016f14f9d","legacyServiceId":"6338ed5bb155890016f14fe3","remote":true},{"legacyId":"633b3870a879160016870b23","legacyServiceId":"633b38cca879160016870b24","remote":true},{"legacyId":"633b3d06a879160016870b56","legacyServiceId":"633b3ea9a879160016870b5d","remote":true},{"legacyId":"6347b51a3e1e6f00163567db","legacyServiceId":"63485b763e1e6f0016356a1f","remote":true},{"legacyId":"6347b51a3e1e6f00163567db","legacyServiceId":"634863373e1e6f0016356a41","remote":true},{"legacyId":"6348320d3e1e6f0016356929","legacyServiceId":"63483a643e1e6f001635697d","remote":true},{"legacyId":"6348320d3e1e6f0016356929","legacyServiceId":"63483be73e1e6f001635698c","remote":true},{"legacyId":"6348320d3e1e6f0016356929","legacyServiceId":"63483d3a3e1e6f0016356997","remote":false},{"legacyId":"6348320d3e1e6f0016356929","legacyServiceId":"634842f03e1e6f00163569e0","remote":false},{"legacyId":"63486b443e1e6f0016356af2","legacyServiceId":"634d80f749027f001602cd88","remote":true},{"legacyId":"6348974f3e1e6f0016356c33","legacyServiceId":"6348a382486acb001651f154","remote":true},{"legacyId":"6348974f3e1e6f0016356c33","legacyServiceId":"6348ab5f486acb001651f166","remote":false},{"legacyId":"634d8c4c49027f001602ce0e","legacyServiceId":"634d991049027f001602ce54","remote":true},{"legacyId":"634f0bff07da570016129857","legacyServiceId":"635042d1543d290016f5ec4b","remote":true},{"legacyId":"634f0bff07da570016129857","legacyServiceId":"63504747543d290016f5ec53","remote":true},{"legacyId":"634f0bff07da570016129857","legacyServiceId":"63504889543d290016f5ec57","remote":true},{"legacyId":"634f0bff07da570016129857","legacyServiceId":"63504a04543d290016f5ec5c","remote":true},{"legacyId":"634f0bff07da570016129857","legacyServiceId":"63504b94543d290016f5ec62","remote":true},{"legacyId":"634f0bff07da570016129857","legacyServiceId":"63504d8a543d290016f5ec6a","remote":true},{"legacyId":"634f0bff07da570016129857","legacyServiceId":"63504f84543d290016f5ec6e","remote":true},{"legacyId":"634f0bff07da570016129857","legacyServiceId":"63505260543d290016f5ec77","remote":true},{"legacyId":"634f0bff07da570016129857","legacyServiceId":"63505407543d290016f5ec7f","remote":true},{"legacyId":"634f0bff07da570016129857","legacyServiceId":"6352bcb5110d8a00163ba991","remote":true},{"legacyId":"6352c41d110d8a00163ba9ab","legacyServiceId":"6352d6e5110d8a00163ba9d2","remote":true},{"legacyId":"6353173d110d8a00163bab5b","legacyServiceId":"6356f817e918310016eec1a9","remote":false},{"legacyId":"6353173d110d8a00163bab5b","legacyServiceId":"6357171ee918310016eec225","remote":false},{"legacyId":"63596e0dfd58f200166ed066","legacyServiceId":"635aef67a8bb50001694901e","remote":false},{"legacyId":"635bf5244d49790016f87740","legacyServiceId":"635bf8aa4d49790016f87780","remote":false},{"legacyId":"635bf5244d49790016f87740","legacyServiceId":"635bf9ca4d49790016f877c2","remote":true},{"legacyId":"635bf5244d49790016f87740","legacyServiceId":"635c01ef4d49790016f87850","remote":false},{"legacyId":"635bf5244d49790016f87740","legacyServiceId":"635c02a44d49790016f87859","remote":true},{"legacyId":"635bf5244d49790016f87740","legacyServiceId":"635c03fb4d49790016f8785f","remote":true},{"legacyId":"635bf5244d49790016f87740","legacyServiceId":"635c04c14d49790016f87867","remote":false},{"legacyId":"635bf5244d49790016f87740","legacyServiceId":"635c05994d49790016f87873","remote":true},{"legacyId":"635ff27009eb180016b64062","legacyServiceId":"6360224409eb180016b6423c","remote":false},{"legacyId":"635ffc7d09eb180016b640b0","legacyServiceId":"636001b209eb180016b640c6","remote":true},{"legacyId":"6360050d09eb180016b640da","legacyServiceId":"63600b4e09eb180016b64112","remote":true},{"legacyId":"6360f22c3257cf0016b99589","legacyServiceId":"63e6afa4b3c1fb0008f1e619","remote":false},{"legacyId":"63640ca5c6fd290016b34199","legacyServiceId":"63694151cedc450016e93697","remote":true},{"legacyId":"63640ca5c6fd290016b34199","legacyServiceId":"63694518cedc450016e936af","remote":true},{"legacyId":"63640ca5c6fd290016b34199","legacyServiceId":"63695585cedc450016e936d3","remote":true},{"legacyId":"63686c1df0b55b00168fd28f","legacyServiceId":"63687698f0b55b00168fd2ae","remote":false},{"legacyId":"63693e908985940008b1af28","legacyServiceId":"6369452d5e4893000815410f","remote":true},{"legacyId":"636ab98af17df900166c67d3","legacyServiceId":"636ac6ecf17df900166c67e9","remote":true},{"legacyId":"636ab98af17df900166c67d3","legacyServiceId":"636acfcff17df900166c6831","remote":true},{"legacyId":"636ab98af17df900166c67d3","legacyServiceId":"636ad25af17df900166c6842","remote":true},{"legacyId":"636d6f204b08430008581d1d","legacyServiceId":"636e87cfb1c75a0008668ca6","remote":true},{"legacyId":"637275bffa94a40009390fec","legacyServiceId":"63727ae9a243050008cc36f9","remote":false},{"legacyId":"63769b5a7bcd8f0008cef141","legacyServiceId":"63769f6caa1f7d0008c5d4f2","remote":true},{"legacyId":"63769b5a7bcd8f0008cef141","legacyServiceId":"637bb6ad22db97000843d15a","remote":true},{"legacyId":"63769b5a7bcd8f0008cef141","legacyServiceId":"637bb883e976000008a4dbfb","remote":true},{"legacyId":"63769b5a7bcd8f0008cef141","legacyServiceId":"637bba95fa9f7300088a2411","remote":false},{"legacyId":"63769b5a7bcd8f0008cef141","legacyServiceId":"637bbc03fa9f7300088a2414","remote":false},{"legacyId":"63769b5a7bcd8f0008cef141","legacyServiceId":"637bbf1fe5b19f0008275f5a","remote":false},{"legacyId":"637bb726e5b19f0008275f22","legacyServiceId":"637bb90d33b3470008fb9f6e","remote":true},{"legacyId":"637bd232501b4b0008620a9b","legacyServiceId":"637bd763634a7b0008181c8a","remote":true},{"legacyId":"637bd232501b4b0008620a9b","legacyServiceId":"637d13ead11b7200083ae13c","remote":true},{"legacyId":"6384eac3b3965c000894cd24","legacyServiceId":"6384f10d4b92c30009ebfb57","remote":true},{"legacyId":"6384eac3b3965c000894cd24","legacyServiceId":"6384f47f7e3e3d00083df355","remote":true},{"legacyId":"6384f0734b92c30009ebfb56","legacyServiceId":"6384fa54ebc2750008ceb9d0","remote":true},{"legacyId":"63868f9add69330008213a3d","legacyServiceId":"6386922c38f3b20008849e4f","remote":true},{"legacyId":"63868f9add69330008213a3d","legacyServiceId":"6386942e38f3b20008849e5d","remote":true},{"legacyId":"638773762971ab0008352498","legacyServiceId":"638783662994ec0008ed01d0","remote":true},{"legacyId":"63877abaa6851d0008d022e9","legacyServiceId":"63d983fec21c7e0008da53f2","remote":true},{"legacyId":"6387e4d048c4c900085c6028","legacyServiceId":"6387e5e248c4c900085c6033","remote":false},{"legacyId":"63880f98b35ec50008403c64","legacyServiceId":"63881395366db80008134da6","remote":true},{"legacyId":"6388170d609034000807aa7c","legacyServiceId":"638822357393e90008d9cc2b","remote":true},{"legacyId":"63a2506b9a0c320008234373","legacyServiceId":"63a26276a29bc00008e10f3b","remote":true},{"legacyId":"63b0672aeafe7a000831b705","legacyServiceId":"63b06899cad54d00086aae11","remote":false},{"legacyId":"63b86aeee8931800086084f1","legacyServiceId":"63ec1450e2cefa0008ba59b9","remote":false},{"legacyId":"63d83cf3a24e6b0008f16d23","legacyServiceId":"645060745893360008c3cf44","remote":true},{"legacyId":"63d83cf3a24e6b0008f16d23","legacyServiceId":"645062d258460c0008bc6117","remote":true},{"legacyId":"63d889812d2c2900082d1db1","legacyServiceId":"63d88c6e46226c0008f2b77b","remote":true},{"legacyId":"63d889812d2c2900082d1db1","legacyServiceId":"63d88ee114a8fd0008a86bdb","remote":true},{"legacyId":"63d889812d2c2900082d1db1","legacyServiceId":"63d8901514a8fd0008a86beb","remote":true},{"legacyId":"63d889812d2c2900082d1db1","legacyServiceId":"63d891546f231d0008efc1a1","remote":true},{"legacyId":"63d889812d2c2900082d1db1","legacyServiceId":"63d8928233d0ce0008b81ab2","remote":true},{"legacyId":"63d8b954d80ea40008e8c388","legacyServiceId":"63d9a1e32a58b500086a64aa","remote":true},{"legacyId":"63d8b954d80ea40008e8c388","legacyServiceId":"63d9a517aac1df0008cadea8","remote":false},{"legacyId":"63d94c9721f9ba00084c299d","legacyServiceId":"63d94e78d7e7b60008825059","remote":true},{"legacyId":"63d94c9721f9ba00084c299d","legacyServiceId":"63d95bb17f08ca0008cb2338","remote":true},{"legacyId":"63d95de9dfacb700087f7faf","legacyServiceId":"63d96c05b7cf7e000851b222","remote":true},{"legacyId":"63d9d68e70960e00084db630","legacyServiceId":"63e7a438cd69770008a608c4","remote":true},{"legacyId":"63d9d68e70960e00084db630","legacyServiceId":"63e7acf9006a4f0008ace5bc","remote":true},{"legacyId":"63e80813dea1e00008ded0e8","legacyServiceId":"63e80a7c7116c70008ef5813","remote":false},{"legacyId":"63e80c23d5af6a0008cd5f73","legacyServiceId":"63e80d6491c316000862c097","remote":false},{"legacyId":"63e80fb191c316000862c09b","legacyServiceId":"63e8107e91c316000862c0a2","remote":false},{"legacyId":"63e80fb191c316000862c09b","legacyServiceId":"63e812d3d5af6a0008cd5f84","remote":true},{"legacyId":"63e8155f0faac4000817bd05","legacyServiceId":"63e8163534c753000850e85a","remote":true},{"legacyId":"63e81a0d4524c800083c0b1e","legacyServiceId":"63e81b231f087b0008bbea2b","remote":true},{"legacyId":"63e919876ec59b00082944ef","legacyServiceId":"63e91b2ac12ab10008a48d77","remote":false},{"legacyId":"63e919876ec59b00082944ef","legacyServiceId":"63e91eb8c12ab10008a48d8e","remote":false},{"legacyId":"63e919876ec59b00082944ef","legacyServiceId":"63e9200e9a082c0008ce0e9f","remote":false},{"legacyId":"63e919876ec59b00082944ef","legacyServiceId":"63e921316c8a0600084cf1c6","remote":false},{"legacyId":"63e919876ec59b00082944ef","legacyServiceId":"63e92474cb553f0008f97917","remote":false},{"legacyId":"63e92820e324370008390bbb","legacyServiceId":"63e92908e52b8d000842e6e4","remote":true},{"legacyId":"63e92820e324370008390bbb","legacyServiceId":"63e92a8456a5000008bcd7bf","remote":true},{"legacyId":"63e92820e324370008390bbb","legacyServiceId":"63e92c9e56a5000008bcd7ca","remote":false},{"legacyId":"63e92820e324370008390bbb","legacyServiceId":"63e92e338d758c000844a006","remote":true},{"legacyId":"63e9302c873e1f00087262a9","legacyServiceId":"63e93082873e1f00087262ab","remote":false},{"legacyId":"63e934b749d9800008456b2f","legacyServiceId":"63e93a14726e3e0008ea0b95","remote":false},{"legacyId":"63e934b749d9800008456b2f","legacyServiceId":"63e93cc873bf3000085150f4","remote":false},{"legacyId":"63ebbcdbbe073b0008573f15","legacyServiceId":"63ebbdc1be073b0008573f16","remote":false},{"legacyId":"63ebd9f58cbb340008071742","legacyServiceId":"63ebdadb8cbb34000807174c","remote":true},{"legacyId":"63ebd9f58cbb340008071742","legacyServiceId":"63ebdd088cbb340008071756","remote":true},{"legacyId":"63ebd9f58cbb340008071742","legacyServiceId":"63ebddc9eb36840008cc0f9e","remote":true},{"legacyId":"63ed27c139357f000880a287","legacyServiceId":"63ed463df6d6e100087c79ed","remote":true},{"legacyId":"63ed27c139357f000880a287","legacyServiceId":"63ed4a0cd9f9d30009a6c495","remote":false},{"legacyId":"63ed27c139357f000880a287","legacyServiceId":"63ed4bfbaa314e00084000e6","remote":false},{"legacyId":"63ed27c139357f000880a287","legacyServiceId":"63ed4d20bba2550008582c22","remote":false},{"legacyId":"63f294a46e66200008a979db","legacyServiceId":"63f2955a6e66200008a979e2","remote":false},{"legacyId":"63f294a46e66200008a979db","legacyServiceId":"63f296356e66200008a979e5","remote":false},{"legacyId":"63f294a46e66200008a979db","legacyServiceId":"63f296af6e66200008a979e8","remote":false},{"legacyId":"63f294a46e66200008a979db","legacyServiceId":"63f297454226fc000814a6f4","remote":false},{"legacyId":"63f3c9eebfd4390008193563","legacyServiceId":"63f3cad2ede88c0008958ea9","remote":false},{"legacyId":"63f3ce9327dd9a000862ed8c","legacyServiceId":"63f3d0490f616e000802b447","remote":false},{"legacyId":"63f3d56d2673980008f11cb0","legacyServiceId":"63f3d6642673980008f11cb5","remote":false},{"legacyId":"63f3d56d2673980008f11cb0","legacyServiceId":"63f3d83f5847a70008d232df","remote":false},{"legacyId":"63f3d56d2673980008f11cb0","legacyServiceId":"63f3d8c3187f780008ac1d89","remote":false},{"legacyId":"63f3d56d2673980008f11cb0","legacyServiceId":"63f3d9b9e401cb0008292ff3","remote":false},{"legacyId":"63f3d56d2673980008f11cb0","legacyServiceId":"63f3dabceb39250008c02c9b","remote":false},{"legacyId":"63f3ec1057ad3700083a32f4","legacyServiceId":"63f3f322ca12d50008d40aea","remote":true},{"legacyId":"63f40b11b27c56000816425b","legacyServiceId":"6406a7945049690008f5dedf","remote":true},{"legacyId":"63f563458e991200087e0b40","legacyServiceId":"63f564808f5615000885e96b","remote":true},{"legacyId":"63f569fd3049310008260a0d","legacyServiceId":"63f56cf78f5615000885e975","remote":false},{"legacyId":"63f569fd3049310008260a0d","legacyServiceId":"63f56e37ecb76100084cf66b","remote":true},{"legacyId":"63f569fd3049310008260a0d","legacyServiceId":"63f56f6b8f5615000885e976","remote":true},{"legacyId":"63f569fd3049310008260a0d","legacyServiceId":"63f5714fc591290008e31afa","remote":true},{"legacyId":"63f6b743a43719000888f024","legacyServiceId":"63f6b7d21242c10008e08f30","remote":false},{"legacyId":"63f6b743a43719000888f024","legacyServiceId":"63f6b7dea43719000888f025","remote":false},{"legacyId":"63f6b743a43719000888f024","legacyServiceId":"63f6b7ea8fe2ca00080f969c","remote":false},{"legacyId":"63f6b743a43719000888f024","legacyServiceId":"63f6b8618fe2ca00080f969d","remote":false},{"legacyId":"63f6b743a43719000888f024","legacyServiceId":"63f6b86c13aa7f00088d6dda","remote":false},{"legacyId":"63f6b743a43719000888f024","legacyServiceId":"63f6b8788fe2ca00080f969e","remote":false},{"legacyId":"63f6b743a43719000888f024","legacyServiceId":"63f6b8842889ce00080b6e64","remote":false},{"legacyId":"63f8fa67b5fe81000806dc89","legacyServiceId":"63f8ff13b779ab0008e61f49","remote":false},{"legacyId":"63f935e341f02b0008bf1786","legacyServiceId":"63fa33059d8be50008b12f61","remote":false},{"legacyId":"63f935e341f02b0008bf1786","legacyServiceId":"63fa3426103f9c000889c031","remote":false},{"legacyId":"63f935e341f02b0008bf1786","legacyServiceId":"645587edd82ffc0008565bf1","remote":false},{"legacyId":"63fbef601c0bfe0008c7b746","legacyServiceId":"645968fd94466700083ef5cd","remote":false},{"legacyId":"63fe58edd37be7000866b67f","legacyServiceId":"64371a49f5b4500008d95861","remote":true},{"legacyId":"63fe8d711b813600089e757d","legacyServiceId":"6424b1f9ab1ba70008d191fb","remote":false},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a83275f651a000866083a","remote":false},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a8457b1fc7200081f966f","remote":false},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a852e5f651a000866083f","remote":false},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a86135f651a0008660849","remote":false},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a8789372a630008ca0b2d","remote":false},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a88075f651a000866085b","remote":false},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a88efe893c700082cbc5e","remote":false},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a8a6ad46dad0008f97304","remote":false},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a8c5ee893c700082cbc65","remote":false},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a8edf1cf00e0008dacf1f","remote":false},{"legacyId":"6400fc2bdd32880008611415","legacyServiceId":"6400fe140fca2b0008cb029b","remote":false},{"legacyId":"6400fc2bdd32880008611415","legacyServiceId":"640102728aad140008954f46","remote":false},{"legacyId":"640109e15f829e000843e5fc","legacyServiceId":"640151503dd8df0008fed697","remote":true},{"legacyId":"64013954c456a10008a27f22","legacyServiceId":"64013bb18b273c0008bf7225","remote":true},{"legacyId":"64013954c456a10008a27f22","legacyServiceId":"64013bf18b273c0008bf7226","remote":true},{"legacyId":"6401585558caa80008a3aa25","legacyServiceId":"64015915b534eb0008fe8d6e","remote":true},{"legacyId":"640787521741ae00084de6e1","legacyServiceId":"64249be9c68ee00008217b87","remote":false},{"legacyId":"640787521741ae00084de6e1","legacyServiceId":"64249c06c68ee00008217b8b","remote":false},{"legacyId":"640787521741ae00084de6e1","legacyServiceId":"64249c70dd22c40008cb1691","remote":false},{"legacyId":"640787521741ae00084de6e1","legacyServiceId":"645d38548a6f450008b48ff7","remote":false},{"legacyId":"6408b30b185ecb0008592e41","legacyServiceId":"6408b4a724d8a1000870c3b5","remote":true},{"legacyId":"6408b30b185ecb0008592e41","legacyServiceId":"6408b699185ecb0008592e5c","remote":true},{"legacyId":"6408b30b185ecb0008592e41","legacyServiceId":"6408b74124d8a1000870c3c2","remote":true},{"legacyId":"6408b30b185ecb0008592e41","legacyServiceId":"6408b81c185ecb0008592e60","remote":true},{"legacyId":"640900aaf5f5c80008662c4f","legacyServiceId":"640904f249ea8e0008c9e508","remote":true},{"legacyId":"640900aaf5f5c80008662c4f","legacyServiceId":"6409069aac6756000865c0d1","remote":false},{"legacyId":"640900aaf5f5c80008662c4f","legacyServiceId":"6409089eac6756000865c0d2","remote":true},{"legacyId":"640900aaf5f5c80008662c4f","legacyServiceId":"640f73f3bc0b890008165cd6","remote":true},{"legacyId":"640900aaf5f5c80008662c4f","legacyServiceId":"640f7d308ca5120008a23374","remote":false},{"legacyId":"640a42752af1d40008a0cc7f","legacyServiceId":"640d10d997ac41000888d7c8","remote":true},{"legacyId":"640a61f88794fe0008c9c953","legacyServiceId":"640a6e655a966c0008a1b389","remote":true},{"legacyId":"640a61f88794fe0008c9c953","legacyServiceId":"645c464ba8f25e0008945c86","remote":true},{"legacyId":"640a61f88794fe0008c9c953","legacyServiceId":"645c47418a7abb0008490021","remote":true},{"legacyId":"640a61f88794fe0008c9c953","legacyServiceId":"645c49418a7abb0008490027","remote":true},{"legacyId":"6410d6f185694d0008a9baf0","legacyServiceId":"6410d940420784000837f0ba","remote":false},{"legacyId":"641145f490a39800082fa63b","legacyServiceId":"641149a7681e950008e60f00","remote":true},{"legacyId":"641145f490a39800082fa63b","legacyServiceId":"645e6d958e680f0008fde654","remote":true},{"legacyId":"641145f490a39800082fa63b","legacyServiceId":"645e6df9f29b7d0008d5561b","remote":true},{"legacyId":"641145f490a39800082fa63b","legacyServiceId":"645e6e4ec590660008a12f81","remote":false},{"legacyId":"641145f490a39800082fa63b","legacyServiceId":"645e6ebf979da80008104a73","remote":false},{"legacyId":"641145f490a39800082fa63b","legacyServiceId":"645e6f4d979da80008104a77","remote":true},{"legacyId":"6418be315099fd000876e9a7","legacyServiceId":"6418e3b305128d000805569c","remote":true},{"legacyId":"6418ce199d604500087aa97b","legacyServiceId":"643dc3db6adca00008504b2b","remote":false},{"legacyId":"641b775537a693000886ee4d","legacyServiceId":"645ecadeaf510f0008c0e870","remote":false},{"legacyId":"6420acc927c53d000889d001","legacyServiceId":"645ed2d0af510f0008c0e89c","remote":true},{"legacyId":"6420acc927c53d000889d001","legacyServiceId":"645ed913ea9565000842bee4","remote":true},{"legacyId":"6420acc927c53d000889d001","legacyServiceId":"645edb51629fe300080ab3c2","remote":true},{"legacyId":"64237a98c922630008ee7cc3","legacyServiceId":"645faa679323940008ec689c","remote":true},{"legacyId":"64237a98c922630008ee7cc3","legacyServiceId":"645faf989457f5000892ddd8","remote":false},{"legacyId":"642457cba77d090008930726","legacyServiceId":"645fb816e831c40008051f36","remote":false},{"legacyId":"642483e5a8391d0008de7280","legacyServiceId":"645fc0b45b605f0008295227","remote":false},{"legacyId":"642498c61630240008efaee8","legacyServiceId":"64249fa5c68ee00008217b95","remote":true},{"legacyId":"642498c61630240008efaee8","legacyServiceId":"645fce1dd3937000083bce8b","remote":false},{"legacyId":"642498c61630240008efaee8","legacyServiceId":"645fcf1cd3937000083bce8c","remote":false},{"legacyId":"642498c61630240008efaee8","legacyServiceId":"645fcfec99ce28000870870b","remote":true},{"legacyId":"64276b8889905d0008b87621","legacyServiceId":"64276e302e4bf00008c7d209","remote":false},{"legacyId":"642dd2b04f6fb20008035187","legacyServiceId":"643dc943ebacbe000825dbbc","remote":true},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"643acef6c30bf50008a481ee","remote":false},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"643acfe52aa67d00088cd0ed","remote":false},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"643ad05cc30bf50008a481f1","remote":false},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"643ad0ed2aa67d00088cd0ee","remote":false},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"643ad146a8e28100088cbf86","remote":true},{"legacyId":"64404d9dfecc2c000873a663","legacyServiceId":"646168d12c805e000830fca5","remote":true},{"legacyId":"64404d9dfecc2c000873a663","legacyServiceId":"64616a13fc2c310008884880","remote":true},{"legacyId":"644309fba157de0008b2535e","legacyServiceId":"6443103ba157de0008b25369","remote":true},{"legacyId":"644a962cf4ca4e0008d15638","legacyServiceId":"644a97273cb51c0008c7d03d","remote":false},{"legacyId":"644a962cf4ca4e0008d15638","legacyServiceId":"644a98983cb51c0008c7d044","remote":true},{"legacyId":"644a9abd3cb51c0008c7d04d","legacyServiceId":"644a9bd23cb51c0008c7d05a","remote":true},{"legacyId":"644ab187a35d41000845d292","legacyServiceId":"644ab493b53dc7000820ac7e","remote":true},{"legacyId":"644ab187a35d41000845d292","legacyServiceId":"644ab88cb53dc7000820ac7f","remote":true},{"legacyId":"644ab187a35d41000845d292","legacyServiceId":"644abc9f8b227100083a4f5a","remote":true},{"legacyId":"644ac097b53dc7000820ac92","legacyServiceId":"644ac117b53dc7000820ac93","remote":true},{"legacyId":"644ea4c05aeb850008155852","legacyServiceId":"644ea5dc5aeb850008155854","remote":true},{"legacyId":"644eb0c59ea38d0008b7737b","legacyServiceId":"644eb342477d150008187db4","remote":true},{"legacyId":"644f2256fafe6800084da13d","legacyServiceId":"644f2382fafe6800084da143","remote":false},{"legacyId":"644f2256fafe6800084da13d","legacyServiceId":"644f273efafe6800084da168","remote":false},{"legacyId":"644f2256fafe6800084da13d","legacyServiceId":"644f28878fd07500086a7788","remote":false},{"legacyId":"644f2256fafe6800084da13d","legacyServiceId":"644f296a15b58f00080d5791","remote":false},{"legacyId":"644f2256fafe6800084da13d","legacyServiceId":"644f2b68fafe6800084da175","remote":false},{"legacyId":"6457e8e50b45f20008322460","legacyServiceId":"6457e9ac5c31de0008d9212a","remote":true},{"legacyId":"6457ef319eff3c0008cab572","legacyServiceId":"6457f03a9eff3c0008cab575","remote":true},{"legacyId":"6457ef319eff3c0008cab572","legacyServiceId":"6457f1b12090cb000831e717","remote":false},{"legacyId":"645978b1f976f70008db38b3","legacyServiceId":"64597921f976f70008db38b4","remote":true},{"legacyId":"645abf6323bac20008d539eb","legacyServiceId":"645d4f19f9edec0008e220a6","remote":false},{"legacyId":"645abf6323bac20008d539eb","legacyServiceId":"645d57a901fdd50008dee50e","remote":false},{"legacyId":"645d2747465c3d00088d33be","legacyServiceId":"645d2e41a832d500088e4b9f","remote":true},{"legacyId":"645d31e08da8dd0008f7ab31","legacyServiceId":"645d33b5c2b7de00080b0419","remote":false},{"legacyId":"645d31e08da8dd0008f7ab31","legacyServiceId":"645d348bc2b7de00080b0420","remote":false},{"legacyId":"645d31e08da8dd0008f7ab31","legacyServiceId":"645d35518a6f450008b48fe9","remote":false},{"legacyId":"645af55dc999420008183952","legacyServiceId":"645af60bc999420008183957","remote":true},{"legacyId":"645af55dc999420008183952","legacyServiceId":"645af79aaf896b00084b8c11","remote":true},{"legacyId":"645af55dc999420008183952","legacyServiceId":"645af846fa25cd0008b41190","remote":true},{"legacyId":"645af55dc999420008183952","legacyServiceId":"645af8ddaf896b00084b8c15","remote":true},{"legacyId":"644aa23d7b3c6e0008a7c6d0","legacyServiceId":"644aa2c77b3c6e0008a7c6d1","remote":true},{"legacyId":"644aa23d7b3c6e0008a7c6d0","legacyServiceId":"644aa61848db6c000830dc6b","remote":true},{"legacyId":"643aaba4b4769400089d8456","legacyServiceId":"64650049b6b11a0008cf4b94","remote":true},{"legacyId":"643aaba4b4769400089d8456","legacyServiceId":"646504d5123bba0008f78376","remote":true},{"legacyId":"643aaba4b4769400089d8456","legacyServiceId":"646506c1e3ab980008843132","remote":true},{"legacyId":"643aaba4b4769400089d8456","legacyServiceId":"64650762c1f34c0008b1d58f","remote":true},{"legacyId":"643aaba4b4769400089d8456","legacyServiceId":"646507d9123bba0008f78386","remote":true},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"646593060284b20008a1dd40","remote":true},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"643ad05cc30bf50008a481f1","remote":true},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"646592474d4821000890298a","remote":true},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"646592970284b20008a1dd37","remote":true},{"legacyId":"64402422e1db9b00087bab39","legacyServiceId":"646596b6d05c200008cffbc3","remote":true},{"legacyId":"64402422e1db9b00087bab39","legacyServiceId":"646595630be5b40008594f56","remote":true},{"legacyId":"64442b58abe5a80008c3cdd5","legacyServiceId":"646a75bc43c2a20008434193","remote":true},{"legacyId":"64442b58abe5a80008c3cdd5","legacyServiceId":"646a744743c2a2000843418c","remote":true},{"legacyId":"64442b58abe5a80008c3cdd5","legacyServiceId":"646a757243c2a2000843418e","remote":true},{"legacyId":"6446df180f46420008a438af","legacyServiceId":"6446e1580f46420008a438bb","remote":true},{"legacyId":"6446df180f46420008a438af","legacyServiceId":"6446e47c0f46420008a438d7","remote":true},{"legacyId":"6446df180f46420008a438af","legacyServiceId":"6446e5f2d97f6b0008b08be6","remote":true},{"legacyId":"644721b22c92750008c65127","legacyServiceId":"646ab545fc367700083200ef","remote":true},{"legacyId":"646ab84ffe8ea4000828bc44","legacyServiceId":"646abcd31ea7000008d7cbb9","remote":true},{"legacyId":"6446d1b7cbc5540008780cac","legacyServiceId":"6446d860fe3830000823cd7b","remote":true},{"legacyId":"6446d1b7cbc5540008780cac","legacyServiceId":"646bba88a11f27000896cfdc","remote":true},{"legacyId":"6446d1b7cbc5540008780cac","legacyServiceId":"6446dbabfe3830000823cd82","remote":true},{"legacyId":"645c3283e46c180008ae2c91","legacyServiceId":"646f98ae1bda510008bcaf96","remote":true},{"legacyId":"645c3283e46c180008ae2c91","legacyServiceId":"646f984bb4280900086a03af","remote":true},{"legacyId":"645a8f80ba21100008b7a585","legacyServiceId":"645a91251cf00e0008dacf2b","remote":true},{"legacyId":"645a8f80ba21100008b7a585","legacyServiceId":"645a9254ba21100008b7a586","remote":true},{"legacyId":"645a8f80ba21100008b7a585","legacyServiceId":"645a9314e3b5620008101fd8","remote":true},{"legacyId":"645a8f80ba21100008b7a585","legacyServiceId":"645a95899f9a0000089cbde0","remote":true},{"legacyId":"645a8f80ba21100008b7a585","legacyServiceId":"645a96e8e3b5620008101ffd","remote":true},{"legacyId":"645a97a0e3b5620008102002","legacyServiceId":"645a9c33d192360008f1d42a","remote":true},{"legacyId":"645a97a0e3b5620008102002","legacyServiceId":"645a9d1a0623880008d73502","remote":true},{"legacyId":"645a97a0e3b5620008102002","legacyServiceId":"645a9eb3d192360008f1d42f","remote":true},{"legacyId":"645a97a0e3b5620008102002","legacyServiceId":"645a9e3264e1610008c91407","remote":true},{"legacyId":"645a84a35f651a000866083b","legacyServiceId":"645a870d5f651a0008660854","remote":true},{"legacyId":"645a84a35f651a000866083b","legacyServiceId":"645a8a10ba21100008b7a580","remote":true},{"legacyId":"645a84a35f651a000866083b","legacyServiceId":"645a8b845f651a0008660878","remote":true},{"legacyId":"645a84a35f651a000866083b","legacyServiceId":"645a8c571cf00e0008dacefd","remote":true},{"legacyId":"645a84a35f651a000866083b","legacyServiceId":"645a8e7d5f651a0008660897","remote":true},{"legacyId":"645a84a35f651a000866083b","legacyServiceId":"645a8e7d5f651a0008660897","remote":true},{"legacyId":"645972ade492e600087e336f","legacyServiceId":"645972fee492e600087e3370","remote":true},{"legacyId":"645d619c9532d60008ad2a21","legacyServiceId":"6472a3b0adaf3d00093cb44b","remote":true},{"legacyId":"645d619c9532d60008ad2a21","legacyServiceId":"6472a6acadaf3d00093cb451","remote":true},{"legacyId":"6472b0cdceae970008df552d","legacyServiceId":"6472b1f13c37500008157cbb","remote":true},{"legacyId":"6472b0cdceae970008df552d","legacyServiceId":"6472b32eab43e600085a1570","remote":true},{"legacyId":"64738a7e9def260008715267","legacyServiceId":"64738cc501642000087dec89","remote":true},{"legacyId":"647405eaa98094000800feb0","legacyServiceId":"64776bd1ee0a8900089c7a4f","remote":true},{"legacyId":"647405eaa98094000800feb0","legacyServiceId":"6474085386d0fa000828322e","remote":true},{"legacyId":"647405eaa98094000800feb0","legacyServiceId":"647406911b73c30008142f90","remote":true},{"legacyId":"6479563aae987b0008338a52","legacyServiceId":"647957d08de6b20008c6a809","remote":true},{"legacyId":"647965fd77f4e7000810bd26","legacyServiceId":"647966dc77f4e7000810bd27","remote":true},{"legacyId":"647965fd77f4e7000810bd26","legacyServiceId":"647aa72ba2c13000086301b2","remote":true},{"legacyId":"647965fd77f4e7000810bd26","legacyServiceId":"647aa7da0040e6000950d4b7","remote":true},{"legacyId":"647b8eb49ae155000836c8ec","legacyServiceId":"647b8f7e9ae155000836c8ed","remote":true},{"legacyId":"647b8eb49ae155000836c8ec","legacyServiceId":"647b9166f8bee900080dc2b8","remote":true},{"legacyId":"647be485bda56400087dff24","legacyServiceId":"647be5a4bda56400087dff25","remote":true},{"legacyId":"647d428e5255f6000847bd2e","legacyServiceId":"647d4820d4eb9c0008cdeff4","remote":true},{"legacyId":"647e0e2cda2e80000848b197","legacyServiceId":"647e121390309b00081e13cb","remote":true},{"legacyId":"647e44d69414da0008cd5475","legacyServiceId":"647e45579414da0008cd547b","remote":true},{"legacyId":"647e5b77abcb3b00084fb7d7","legacyServiceId":"647e5fc1abcb3b00084fb7f4","remote":true},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"63937bc0401ff70008eedccb","remote":true},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"6091a1651a48960015d56d2f","remote":true},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"63937eb08af2b2000827aa5c","remote":true},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"6091a3391a48960015d56d54","remote":true},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"60919d9a1a48960015d56d24","remote":true},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"6393809b55a5ba0008f3d52c","remote":true},{"legacyId":"60919b971a48960015d56d1e","legacyServiceId":"63937d5a8af2b2000827aa3b","remote":true},{"legacyId":"5f6ec729fe8faf0017149240","legacyServiceId":"62d61497deeccd0016c3f3be","remote":true},{"legacyId":"60929c318e7dc30015317a2d","legacyServiceId":"6092b77e8e7dc30015317aa9","remote":true}] \ No newline at end of file diff --git a/packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/index.ts b/packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/index.ts new file mode 100644 index 0000000000..9d15cdb4f9 --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/index.ts @@ -0,0 +1,96 @@ +import { z } from 'zod' + +import fs from 'fs' +import path from 'path' + +import { type Prisma, prisma } from '~db/index' +import { raise } from '~db/prisma/common' +import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' +/** Define the job metadata here. */ +const jobDef: JobDef = { + jobId: '2023-07-12_1-add-remote-tags', + title: 'Add remote tags from sheet', + createdBy: 'Joe Karow', +} + +const Schema = z + .object({ legacyId: z.string(), legacyServiceId: z.string(), remote: z.coerce.boolean() }) + .array() + +/** + * Job export - this variable MUST be UNIQUE + * + * Use the format `jobYYYYMMDD` and append a letter afterwards if there is already a job with this name. + * + * @example `job20230404` + * + * @example `job20230404b` + */ +export const job20230712a = { + title: `${jobDef.jobId} - ${jobDef.title}`, + task: async (_ctx, task) => { + /** + * Do not edit this part + * + * This ensures that jobs are only run once + */ + if (await jobPreRunner(jobDef, task)) { + return task.skip(`${jobDef.jobId} - Migration has already been run.`) + } + /** + * Start defining your data migration from here. + * + * To log output, use `task.output = 'Message to log'` + * + * This will be written to `stdout` and to a log file in `/prisma/migration-logs/` + */ + + const servIds = await prisma.orgService.findMany({ + select: { id: true, legacyId: true }, + }) + const servIdMap = new Map(servIds.map(({ id, legacyId }) => [legacyId, id])) + + // offers-remote-services + const attributeId = 'attr_01GW2HHFV5Q7XN2ZNTYFR1AD3M' + // Do stuff + const data = Schema.parse(JSON.parse(fs.readFileSync(path.join(__dirname, 'data.json'), 'utf-8'))) + task.output = `Loaded ${data.length} rows.` + const additions: Prisma.ServiceAttributeCreateManyInput[] = [] + const exceptions: typeof data = [] + + for (const item of data) { + const { remote } = item + if (!remote) continue + const orgServiceId = servIdMap.get(item.legacyServiceId) + if (!orgServiceId) { + exceptions.push(item) + continue + } + additions.push({ + orgServiceId, + attributeId, + }) + } + task.output = `Processed data with ${exceptions.length} exceptions.` + task.output = `Adding ${additions.length} remote tags.` + + const result = await prisma.serviceAttribute.createMany({ + data: additions, + skipDuplicates: true, + }) + + task.output = `Successful additions: ${result.count}` + if (exceptions.length) { + const exceptionFilePath = path.resolve(__dirname, '!exceptions.json') + task.output = `Writing ${exceptions.length} exceptions to ${exceptionFilePath}` + fs.writeFileSync(exceptionFilePath, JSON.stringify(exceptions)) + } + /** + * DO NOT REMOVE BELOW + * + * This writes a record to the DB to register that this migration has run successfully. + */ + await jobPostRunner(jobDef) + }, +} satisfies ListrJob diff --git a/packages/db/prisma/data-migrations/index.ts b/packages/db/prisma/data-migrations/index.ts index 60e9bedbb7..b60bbf772c 100644 --- a/packages/db/prisma/data-migrations/index.ts +++ b/packages/db/prisma/data-migrations/index.ts @@ -33,4 +33,5 @@ export * from './2023-06-20_tags-for-suggestions' export * from './2023-06-21_update-sourceid' export * from './2023-06-26_active-country' export * from './2023-06-27_add-crowdin-ids/index' +export * from './2023-07-12_1-add-remote-tags/index' // codegen:end From a9b1c256794e56faebdb70c5e46feea78e2c4678 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 12 Jul 2023 20:40:26 -0400 Subject: [PATCH 58/66] remove previewFeatures, now GA in prisma 5.0 --- packages/db/prisma/schema.prisma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index 23a3718187..606b502ec6 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -1,6 +1,6 @@ generator client { provider = "prisma-client-js" - previewFeatures = ["extendedWhereUnique", "fieldReference", "fullTextSearch", "postgresqlExtensions", "tracing", "views", "jsonProtocol"] + previewFeatures = ["fullTextSearch", "postgresqlExtensions", "tracing", "views"] } // generator zod { From 2cb3b5a30e9965b0592d8e7e92f858aa32fc4e61 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 12 Jul 2023 20:41:51 -0400 Subject: [PATCH 59/66] update regex, types/zod for full recon --- packages/db/seed/recon/input/types.ts | 18 +++++++++++++----- packages/db/seed/recon/parsers/attributes.ts | 5 ++--- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/db/seed/recon/input/types.ts b/packages/db/seed/recon/input/types.ts index d5a74fdadb..c8a428ff6a 100644 --- a/packages/db/seed/recon/input/types.ts +++ b/packages/db/seed/recon/input/types.ts @@ -85,6 +85,7 @@ export enum CountryES { CountryESCanada = ' Canada', CountryESEEUU = 'EE.UU', CountryESEstadosUnidos = 'Estados Unidos ', + CountryESEstadosUnidos2 = 'Estados Unidos ', CountryESMexico = 'Mexico ', CountryESMéxico = 'México ', CountryESUnitedStates = 'United States ', @@ -95,6 +96,7 @@ export enum CountryES { Empty = '', EstadosUnidos = 'Estados Unidos', LosEEUU = 'Los EEUU', + LosEEUU2 = 'Los EEU ', LosEstadosUnidos = 'Los Estados Unidos', LossEEUU = 'Loss EEUU', Mexico = 'Mexico', @@ -105,6 +107,12 @@ export enum CountryES { UnitedStates = 'United States', Us = 'US', Usa = 'USA', + NY = 'Nueva York', + Michoacán = 'Michoacán', + Georgetown = 'Georgetown', + mexico = 'mexico', + VirginIslands = 'Virgin Islands', + CDMX = 'CDMX', } export interface Geolocation { @@ -212,7 +220,7 @@ export interface Service { export interface AccessInstruction { _id: ID - access_value?: string + access_value?: string | null access_type?: AccessType instructions?: string access_value_ES?: string @@ -536,7 +544,7 @@ export const phoneSchema = z.object({ _id: idSchema, digits: z.string().optional().nullable(), is_primary: z.boolean().optional(), - phone_type: z.string(), + phone_type: z.string().optional(), show_on_organization: z.boolean().optional(), phone_type_ES: z.string().optional(), phone_type_es: eEsSchema.optional(), @@ -620,7 +628,7 @@ export const canadaTransportationSchema = z.object({ }) export const canadaAbortionCareSchema = z.object({ - 'Abortion Providers': z.string(), + 'Abortion Providers': z.string().optional(), 'Mail Order Services': z.string().optional(), }) @@ -752,7 +760,7 @@ export const nameSchema = z.nativeEnum(Name) export const emailSchema = z.object({ _id: idSchema, - email: z.string(), + email: z.string().optional(), first_name: z.string().optional().nullable(), is_primary: z.boolean().optional(), last_name: z.string().optional().nullable(), @@ -790,7 +798,7 @@ export const scheduleSchema = z.object({ export const accessInstructionSchema = z.object({ _id: idSchema, - access_value: z.string().optional(), + access_value: z.string().nullish(), access_type: accessTypeSchema.optional(), instructions: z.string().optional(), access_value_ES: z.string().optional(), diff --git a/packages/db/seed/recon/parsers/attributes.ts b/packages/db/seed/recon/parsers/attributes.ts index 82a71eb953..15d3fd3a0b 100644 --- a/packages/db/seed/recon/parsers/attributes.ts +++ b/packages/db/seed/recon/parsers/attributes.ts @@ -2,7 +2,6 @@ import { type diff } from 'just-diff' import flush from 'just-flush' import getByPath from 'just-safe-get' import setByPath from 'just-safe-set' -import superjson from 'superjson' import { z } from 'zod' import { type Prisma } from '~db/client' @@ -45,8 +44,8 @@ const getAreaRecord = (tag: string): { data: AttributeSupplementData } | undefin tagBreakdown.shift() const type = tagBreakdown.shift() const search = tagBreakdown.join('-') - const state = new RegExp(`\\w{2}-${search}`, 'gi') - const county = new RegExp(`\\w{2}-${search}-.*`, 'gi') + const state = new RegExp(`^\\w{2}-${search}`, 'gi') + const county = new RegExp(`^\\w{2}-${search}-.*`, 'gi') switch (type) { case 'national': { const cca2 = areaCountryMap.get(search) From 47338f196622ba9cf6317154f511977dd8a14151 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 12 Jul 2023 20:43:23 -0400 Subject: [PATCH 60/66] recon fixes --- packages/db/seed/recon/index.ts | 4 +- packages/db/seed/recon/reconJob.ts | 106 ++++++++++++++++++----------- 2 files changed, 70 insertions(+), 40 deletions(-) diff --git a/packages/db/seed/recon/index.ts b/packages/db/seed/recon/index.ts index c5ab304506..1bc51540cc 100644 --- a/packages/db/seed/recon/index.ts +++ b/packages/db/seed/recon/index.ts @@ -18,8 +18,8 @@ const injectOptions = (job: ListrJob): ListrJob => ({ const skips = { generators: true, - recon: true, - dbRun: false, + recon: false, + dbRun: true, } as const const jobs = new Listr( diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index e1d5bce6b1..4a06a50ab8 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -1,7 +1,6 @@ /* eslint-disable node/no-process-env */ import { geojsonToWKT } from '@terraformer/wkt' import { flatten } from 'flat' -import { getDiff } from 'json-difference' import compact from 'just-compact' import mapObj from 'just-deep-map-values' import { diff } from 'just-diff' @@ -58,7 +57,7 @@ export const orgRecon = { task: async (_ctx, task) => { attachLogger(task) const log = (...args: Parameters) => (task.output = formatMessage(...args)) - + // debugger const logUpdate = (field: string, from: unknown, to: unknown) => log( `Updating ${field} from ${ @@ -77,16 +76,13 @@ export const orgRecon = { true ) - const logDeletion = (table: string, value: unknown) => - log(`Deleting ${value} from ${table}`, 'trash', true) - - writeBatches(task, true) + // writeBatches(task, true) let orgCounter = 1 // read input file const orgs = organizationsSchema .array() - .parse(JSON.parse(fs.readFileSync(path.resolve(__dirname, './input/existingOrgs.json'), 'utf-8'))) + .parse(JSON.parse(fs.readFileSync(path.resolve(__dirname, './input/allOrgs.json'), 'utf-8'))) log(`Organizations to process: ${orgs.length}`, 'info') // get System userId for audit log @@ -455,7 +451,7 @@ export const orgRecon = { where: { id: existingRecord.id }, data: {}, } - if (needsUpdate(existingRecord.email, email.email)) { + if (email.email && needsUpdate(existingRecord.email, email.email)) { logUpdate('email', existingRecord.email, email.email) updateRecord.data.email = trimSpaces(email.email) } @@ -524,7 +520,12 @@ export const orgRecon = { updateRecord.data.description = { connect: { id } } genAuditCreate( { key, ns, text }, - { translationKey: key, translationNs: ns, freeTextId: id, orgEmailId: existingRecord.id } + { + translationKey: key, + translationNs: ns, + freeTextId: id, + orgEmailId: existingRecord.id, + } ) } } @@ -537,7 +538,7 @@ export const orgRecon = { genAuditUpdate(existingRecord, updateRecord.data, { orgEmailId: existingRecord.id }) log(`Updated ${Object.keys(updateRecord.data).length} keys`, undefined, true) } - } else { + } else if (email.email) { log(`Creating Email: ${email.email} [${emailCount + emailSkip}/${org.emails.length}]`, 'generate') const newId = generateId('orgEmail') const newEmail: Prisma.OrgEmailCreateManyInput = { @@ -686,7 +687,7 @@ export const orgRecon = { updateRecord.data.published = phone.show_on_organization } } - if (needsUpdate(existingRecord.description?.tsKey.text, phone.phone_type)) { + if (phone.phone_type && needsUpdate(existingRecord.description?.tsKey.text, phone.phone_type)) { if (!existingRecord.description) { const freeText = generateFreeTextKey({ orgId: organizationId, @@ -704,7 +705,12 @@ export const orgRecon = { updateRecord.data.description = { connect: { id } } genAuditCreate( { key, ns, text }, - { translationKey: key, translationNs: ns, freeTextId: id, orgPhoneId: existingRecord.id } + { + translationKey: key, + translationNs: ns, + freeTextId: id, + orgPhoneId: existingRecord.id, + } ) } } else { @@ -1151,7 +1157,7 @@ export const orgRecon = { ) const sortedExisting = sortArray( - existingSupplements.map(({ id, ...data }) => data), + existingSupplements.map((data) => data), (data) => Object.entries(data).forEach(([k, v]) => v) ) const sortedUpdates = sortArray(attributeSupplement, ({ id, ...data }) => @@ -1159,14 +1165,21 @@ export const orgRecon = { ) const changes = diff(sortedExisting, sortedUpdates) - if (changes.length) { - const diff = getDiff( - existingSupplements.map(({ id, ...data }) => data), - attributeSupplement - ) - const updated = diffApply(existingSupplements, changes) + const filteredChanges = compact( + changes.flatMap((change) => { + if (change.op !== 'remove') return change + const i = change.path.at(0) + if (typeof i === 'number') { + if (change.path.includes('id')) return [] + if (change.path.length === 1 && sortedExisting[i]?.id) + return { op: 'add' as const, path: [i, 'active'], value: false } + } + }) + ) + if (filteredChanges.length) { + const updated = diffApply(existingSupplements, filteredChanges) - const pendingUpdates = generateSupplementTxn(updated, changes) + const pendingUpdates = generateSupplementTxn(updated, filteredChanges) // #region Process Supplement Changes const processChanges = (txn: AttrSupplementChange) => { if (!txn.where.id) { @@ -1213,7 +1226,10 @@ export const orgRecon = { const { text } = txn.data if (key && ns) { logUpdate('text', oldText, text) - update.translationKey.add({ where: { ns_key: { ns, key } }, data: { text, updatedAt } }) + update.translationKey.add({ + where: { ns_key: { ns, key } }, + data: { text, updatedAt }, + }) if (crowdinId) crowdin.update.add({ id: crowdinId, text }) genAuditUpdate( { text: oldText }, @@ -1404,8 +1420,8 @@ export const orgRecon = { }), }, }) + genAuditUpdate(existingServArea, { ...orgServArea }, { serviceAreaId: existingServArea.id }) } - genAuditUpdate(existingServArea, { ...orgServArea }, { serviceAreaId: existingServArea.id }) } else { logAddition('serviceArea', { ...orgServArea }) const id = generateId('serviceArea') @@ -1450,7 +1466,10 @@ export const orgRecon = { serviceName: { include: { tsKey: true } }, description: { include: { tsKey: true } }, accessDetails: { - include: { attribute: true, supplement: { include: { text: { include: { tsKey: true } } } } }, + include: { + attribute: true, + supplement: { include: { text: { include: { tsKey: true } } } }, + }, }, services: true, emails: true, @@ -1612,7 +1631,7 @@ export const orgRecon = { emptyStrToNull ) ) as unknown as LegacyAccessInstruction - const idx = currentData.findIndex(({ data }) => data?._id.$oid === record._id.$oid) + const idx = currentData.findIndex(({ data }) => data?._id?.$oid === record._id.$oid) if (idx >= 0) { const existingItem = currentData.splice(idx, 1)[0] ?? raise('error getting existing record') @@ -1795,7 +1814,7 @@ export const orgRecon = { ) const sortedExisting = sortArray( - existingSupplements.map(({ id, ...data }) => data), + existingSupplements.map(({ ...data }) => data), (data) => Object.entries(data).forEach(([k, v]) => v) ) const sortedUpdates = sortArray(attributeSupplement, ({ id, ...data }) => @@ -1803,14 +1822,21 @@ export const orgRecon = { ) const changes = diff(sortedExisting, sortedUpdates) - if (changes.length) { - const diff = getDiff( - existingSupplements.map(({ id, ...data }) => data), - attributeSupplement - ) - const updated = diffApply(existingSupplements, changes) + const filteredChanges = compact( + changes.flatMap((change) => { + if (change.op !== 'remove') return change + const i = change.path.at(0) + if (typeof i === 'number') { + if (change.path.includes('id')) return [] + if (change.path.length === 1 && sortedExisting[i]?.id) + return { op: 'add' as const, path: [i, 'active'], value: false } + } + }) + ) + if (filteredChanges.length) { + const updated = diffApply(existingSupplements, filteredChanges) - const pendingUpdates = generateSupplementTxn(updated, changes) + const pendingUpdates = generateSupplementTxn(updated, filteredChanges) // #region Process Supplement Changes const processChanges = (txn: AttrSupplementChange) => { if (!txn.where.id) { @@ -1869,7 +1895,11 @@ export const orgRecon = { genAuditUpdate( { text: oldText }, { text, updatedAt }, - { translationKey: key, translationNs: ns, attributeSupplementId: txn.where.id } + { + translationKey: key, + translationNs: ns, + attributeSupplementId: txn.where.id, + } ) } else { logAddition('freeText', text) @@ -2055,12 +2085,12 @@ export const orgRecon = { }), }, }) + genAuditUpdate( + existingServArea, + { ...serviceArea }, + { serviceAreaId: existingServArea.id, orgServiceId } + ) } - genAuditUpdate( - existingServArea, - { ...serviceArea }, - { serviceAreaId: existingServArea.id, orgServiceId } - ) } else { logAddition('serviceArea', { ...serviceArea }) const id = generateId('serviceArea') From f6b202ae56bb7207d29d8b58e7e4da390ef80dac Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Wed, 12 Jul 2023 22:53:35 -0400 Subject: [PATCH 61/66] write batches/switch to insert mode --- packages/db/seed/recon/index.ts | 4 ++-- packages/db/seed/recon/reconJob.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/db/seed/recon/index.ts b/packages/db/seed/recon/index.ts index 1bc51540cc..c5ab304506 100644 --- a/packages/db/seed/recon/index.ts +++ b/packages/db/seed/recon/index.ts @@ -18,8 +18,8 @@ const injectOptions = (job: ListrJob): ListrJob => ({ const skips = { generators: true, - recon: false, - dbRun: true, + recon: true, + dbRun: false, } as const const jobs = new Listr( diff --git a/packages/db/seed/recon/reconJob.ts b/packages/db/seed/recon/reconJob.ts index 4a06a50ab8..e8f3d15486 100644 --- a/packages/db/seed/recon/reconJob.ts +++ b/packages/db/seed/recon/reconJob.ts @@ -76,7 +76,7 @@ export const orgRecon = { true ) - // writeBatches(task, true) + writeBatches(task, true) let orgCounter = 1 // read input file From 3fb4acfd2c604d4ac94dc553c4c236c9f97c83d0 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Thu, 13 Jul 2023 11:12:37 -0400 Subject: [PATCH 62/66] update template --- packages/db/prisma/common.ts | 7 +++++++ .../db/prisma/data-migrations/!YYYY-MM-DD_job-template.ts | 6 ++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/db/prisma/common.ts b/packages/db/prisma/common.ts index be5f21f29b..da01f15a7f 100644 --- a/packages/db/prisma/common.ts +++ b/packages/db/prisma/common.ts @@ -1,4 +1,11 @@ +import { iconList, type IconList } from '~db/seed/lib' + export const isSuccess = (criteria: unknown) => (criteria ? '✅' : '❎') +export const formatMessage = (message: string, icon?: IconList, indent = false) => { + const dispIcon = icon ? `${iconList(icon)} ` : '' + const formattedMessage = `${indent ? '\t' : ''}${dispIcon}${message}` + return formattedMessage +} /** * Throws an error - Use to raise an error for nullish-coalesced values diff --git a/packages/db/prisma/data-migrations/!YYYY-MM-DD_job-template.ts b/packages/db/prisma/data-migrations/!YYYY-MM-DD_job-template.ts index 0060da191d..9a1d297d31 100644 --- a/packages/db/prisma/data-migrations/!YYYY-MM-DD_job-template.ts +++ b/packages/db/prisma/data-migrations/!YYYY-MM-DD_job-template.ts @@ -1,4 +1,5 @@ -import { prisma } from '~db/index' +import { prisma } from '~db/client' +import { formatMessage } from '~db/prisma/common' import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' @@ -28,6 +29,7 @@ export const jobYYYYmmDD = { if (await jobPreRunner(jobDef, task)) { return task.skip(`${jobDef.jobId} - Migration has already been run.`) } + const log = (...args: Parameters) => (task.output = formatMessage(...args)) /** * Start defining your data migration from here. * @@ -38,7 +40,7 @@ export const jobYYYYmmDD = { // Do stuff - task.output = `Put text here to output to the terminal & log file` + log(`Put text here to output to the terminal & log file`) /** * DO NOT REMOVE BELOW From 4d4e1a2a08596ed6f676473bf998c6001517f599 Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Thu, 13 Jul 2023 11:13:25 -0400 Subject: [PATCH 63/66] data migration: leader/focus badges --- .../data.json | 1 + .../index.ts | 122 ++++++++++++++++++ packages/db/prisma/data-migrations/index.ts | 1 + 3 files changed, 124 insertions(+) create mode 100644 packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/data.json create mode 100644 packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/index.ts diff --git a/packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/data.json b/packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/data.json new file mode 100644 index 0000000000..78f2bc6bb1 --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/data.json @@ -0,0 +1 @@ +[{"legacyId":"5e7e4bd9d54f1760921a3ab6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bd9d54f1760921a3ad1","bipoc-led":true,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bd9d54f1760921a3b01","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bd9d54f1760921a3b34","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bd9d54f1760921a3b9e","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bd9d54f1760921a3bba","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bd9d54f1760921a3bd2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bd9d54f1760921a3bf5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bd9d54f1760921a3c03","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bd9d54f1760921a3c3d","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3c92","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdad54f1760921a3ca4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3cb6","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdad54f1760921a3ced","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3d01","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3d07","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3d10","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdad54f1760921a3d7e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdad54f1760921a3daa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3dd8","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdad54f1760921a3e58","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3e76","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3e92","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3ea1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3ead","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3ec5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3edf","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdad54f1760921a3ef1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3efa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3f08","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3f28","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3f34","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3f58","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3f7f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdad54f1760921a3f90","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3fa1","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3fc9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdad54f1760921a3fcf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdad54f1760921a3fe6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a3ff2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4003","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a402b","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4053","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4077","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a407f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4097","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a40a4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a40a7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a40ca","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4107","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a410e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4117","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4120","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a414e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4157","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4161","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4174","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a417b","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdbd54f1760921a4191","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4204","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a420c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a4219","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdbd54f1760921a4277","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdbd54f1760921a428b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a42a0","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdbd54f1760921a42be","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a42cd","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdbd54f1760921a42dd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdbd54f1760921a42f6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdbd54f1760921a430d","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdbd54f1760921a432d","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdbd54f1760921a435d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdbd54f1760921a4366","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdbd54f1760921a436e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a439d","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a43e4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a43fd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4423","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a443a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a445b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4468","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a447e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4499","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a44b0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a44b8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a44c1","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a44e0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4510","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4528","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a453c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4545","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a455e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a456f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4580","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4592","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a459e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a45b6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a45be","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a45ca","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a4605","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a460c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4620","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a4666","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a466f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4678","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a46a6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a46b6","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a46ca","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a46e4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a46f8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a4701","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdcd54f1760921a4711","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4719","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdcd54f1760921a4725","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bddd54f1760921a4747","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bddd54f1760921a4760","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bddd54f1760921a4786","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bddd54f1760921a4791","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bddd54f1760921a47c4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a47d6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a47de","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a47ed","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a47fa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a480d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a481c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4835","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4855","bipoc-led":true,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a486c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4876","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a487e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a488f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a489f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a48ae","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a48cb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a48f4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a48f9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a492e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4936","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a494b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4958","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4966","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a497a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a498c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a49a2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a49b5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a49c3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a49d3","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bddd54f1760921a4a18","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4a34","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4a3c","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4a4c","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4a63","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bddd54f1760921a4a6e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4a95","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4aa7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4ab4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4aee","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4b04","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4b0e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4b24","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4b30","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4b36","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4b45","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4b7e","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bded54f1760921a4b9e","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4bb2","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4bc7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bded54f1760921a4bd2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4bf6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4c05","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4c17","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4c2a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bded54f1760921a4c34","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4c58","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4c5e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4c66","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4c7f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4c89","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4cd0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4cd8","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4cde","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4cf2","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4d07","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4d0e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4d1f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4d2b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4d3c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4d44","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4d6b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4d7f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4d97","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4d9e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bded54f1760921a4db8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4ded","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4e0c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4e17","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4e23","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4e32","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4e3b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdfd54f1760921a4e5f","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdfd54f1760921a4e74","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdfd54f1760921a4e84","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4ea3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4eac","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4eb2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4eb9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4ebd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4eed","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4bdfd54f1760921a4f0a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4f15","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4f1d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4f24","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4f3b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4f48","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4f4e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4f5f","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4f84","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4f92","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4f97","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4fa2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4fbf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a4fd0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdfd54f1760921a4fe4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a500b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a5011","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdfd54f1760921a5034","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a503a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a5046","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a5053","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a507d","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdfd54f1760921a5093","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a509d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a50a3","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a50aa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdfd54f1760921a50b3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4bdfd54f1760921a50bb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4bdfd54f1760921a50ce","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a50d2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a50f1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a50fa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5106","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a510e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5123","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a512d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a513c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5154","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a515e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be0d54f1760921a5166","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5174","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5180","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5186","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a518a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5190","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a519d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a51ab","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a51b6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a51bf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a51ce","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a51df","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a51eb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a520c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5225","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a523a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5248","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a525d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be0d54f1760921a526a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a527b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5296","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a52ab","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a52be","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a52d2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a52dc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a52e4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a52f9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5311","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be0d54f1760921a5319","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5328","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5338","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5353","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5359","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a5363","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be0d54f1760921a53a5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a53d5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a53e2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a53f3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a5407","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a5423","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a5432","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a544b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a545c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a546a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a5476","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a5495","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a54a4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a54af","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a54dc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a54ee","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a5517","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a5529","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a554b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a5564","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a556d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a5574","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a557e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a558a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a5598","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a559f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a55c4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a55cb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a55d6","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a55fb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a5614","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a5633","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a563b","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a565a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a5668","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a5674","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a5691","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a56b1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a56c5","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a56d5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a56eb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a56fb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be1d54f1760921a5706","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4be1d54f1760921a5721","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a572c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a574d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a5767","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a577b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a5788","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a57aa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a57b4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a57ce","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a57d5","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a57f5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a5803","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a582e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a5844","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a585f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a586d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a5875","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a588d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a58a3","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a58b6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a58ce","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a5900","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a5908","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a5911","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a5918","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a5921","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a593c","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a5945","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a5966","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a596d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a597d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a598a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a599e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a59a6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a59af","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a59b7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a59bb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a59c4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a59ce","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a59d7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be2d54f1760921a59e6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be2d54f1760921a59ee","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e7e4be3d54f1760921a5a31","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be3d54f1760921a5a4c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5a5e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5a66","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5a6f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5a74","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5a79","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5a91","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5a9b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5aa5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5aac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5ab5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5ad5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5ae1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b03","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b12","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b18","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b2a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b31","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b3a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b4b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b59","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b68","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b8b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5b94","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be3d54f1760921a5baf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5bba","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be3d54f1760921a5bcd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5be1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5bea","bipoc-led":true,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5bf8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be3d54f1760921a5c0b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5c21","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be3d54f1760921a5c39","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5c4b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5c56","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5c5c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5c63","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5c66","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5c73","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5c7f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5c88","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be3d54f1760921a5c8e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5c94","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5ca1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5cb3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5ccf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e7e4be4d54f1760921a5ce4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5ced","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5d05","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5d12","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5d27","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5d2b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5d2f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64162dfe2faf250008f9701a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5d3e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5d4d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5d53","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e7e4be4d54f1760921a5d60","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8555677b81c40017d46088","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e875daa906b1400179359f3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8911968e957400179ddfb6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e8a03728e957400179de017","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8a06208e957400179de028","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e8a10638e957400179de067","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8a237b8e957400179de076","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8a29ff8e957400179de0c1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8a2cf08e957400179de0d5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8a34398e957400179de124","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8a3d2d8e957400179de1aa","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e8a450f8e957400179de1ed","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8a536b8e957400179de21c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8a58ca8e957400179de251","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8a663a0a8de30017009c10","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e8a6d580a8de30017009c35","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e8bab7ada6d2c00175ae0ad","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8bb098da6d2c00175ae0cb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e8f93a4cf5e26ae4eb3b98f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e8f93a4cf5e26ae4eb3b9ae","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e8f93a4cf5e26ae4eb3b9cd","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e8f93a4cf5e26ae4eb3b9fe","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8f93a4cf5e26ae4eb3ba33","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5e8f93a4cf5e26ae4eb3ba4d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8f93a4cf5e26ae4eb3ba75","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e8f93a4cf5e26ae4eb3ba7e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8f93a4cf5e26ae4eb3ba9a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e8f93a4cf5e26ae4eb3baa0","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5e8f93a4cf5e26ae4eb3badd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e8f93a4cf5e26ae4eb3bb0d","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5e8f93a4cf5e26ae4eb3bb28","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e93a314b2c71e001730d693","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e95dfc9aefcf900176e0fc6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5e95e7a4aefcf900176e0fc8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ea46e0c8e17d10017604c2c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ea611e7c3402d00170e6aba","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5ea6224cc3402d00170e6ac9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ea6e7cbc3402d00170e6b54","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ea6f6a1c3402d00170e6b7b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ea70b21c3402d00170e6bac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5ea723adc1b89f001713064f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eaa2855136375001725de7c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eaa3008136375001725de9b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5eaa394a136375001725debc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eaae2e1136375001725def8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eab1627136375001725df38","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eab18bb136375001725df4a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ead614acdeb380017a48351","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eae3a3dd5bd0c00172a62ba","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eaef933d5bd0c00172a62dc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5eafbdaf428c8d0017537d9f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eafe2fa428c8d0017537dc9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb18ac86566c10017d6ded3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb1f1f08828410017efe263","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb2f4508828410017efe304","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb365faca0903001722f726","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb43ef8ca0903001722f79c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb4549eca0903001722f85f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb662290ec1c5001701411d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb73f170ec1c50017014127","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5eb768b4282fcc0017459ebc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb78edd282fcc0017459edd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb8ba781762af001763d50d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5eb9a87e1762af001763d5de","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eb9b0e41762af001763d626","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ebb5557d76914001791263e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ebb5cc0d769140017912661","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5ebcb1a0a426770017340d03","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ec6c473c0e9ec0017cd38c8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ec6c979c0e9ec0017cd38ce","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ec82230a1aef60017f0034d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ec85d31a1aef60017f00358","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ecfecfd0ee08b0017a6d20b","bipoc-led":true,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ecffa370ee08b0017a6d24a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5ed002330ee08b0017a6d262","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5ed5343082628b00177e3764","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ed6af3286515c0017d53bac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5edc42b9d99b3600176ea2fa","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5edc539ed99b3600176ea3c1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5edc5c90d99b3600176ea3fb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5ee0046e5ea23e0017a7a864","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5ee03c7e5ea23e0017a7a8ca","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ee116985ea23e0017a7a989","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5ee1265f5ea23e0017a7a9b9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ee253eebbe7d20017459e4c","bipoc-led":false,"black-led":true,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5ee259afbbe7d20017459e6c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ee25dfcbbe7d20017459e7b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ee28ee1bbe7d20017459f75","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ee3c83f1baddb0017966a24","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ee4402fe9701c00179eb9c5","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ee7fae228fcbc001774f1e4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ee800eb28fcbc001774f24a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eea77c2d45a2d0017a0f3da","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5eeaf60fa4bb580017f446f2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ef174c1c029d10017b9379f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ef37cea68cb280017da1fcb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ef63276024bee0017adde32","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ef8be49045c6a0017b2e787","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5efbff30ef22d300179e4091","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5efe0243ec7e3200174ae559","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f012db00a655c001760457c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0148360a655c00176046c2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f0157470a655c0017604779","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f03978bf4d89f00170d9453","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f048fa6a006e70017a6c384","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f05b4a4a006e70017a6c45d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f05bf20a006e70017a6c499","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f05c426a006e70017a6c4b6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f05c93aa006e70017a6c4f1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f05d8f5a006e70017a6c509","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f05dbf6a006e70017a6c515","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f06875da440aa0017b34f80","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0c662339f3b00017b37f99","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0c711f39f3b00017b37fcb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0c74f539f3b00017b37fe8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f0c794b39f3b00017b37ff6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0c7d4139f3b00017b3800f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0c841f39f3b00017b380a8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f0c87d539f3b00017b380e9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0c8b5839f3b00017b38137","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0c90c439f3b00017b3818d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0d1a350aa72b00176584b3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f0d1e760aa72b00176584c2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0da65f0aa72b00176584f6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f0dab940aa72b0017658536","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0db7380aa72b0017658563","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0dc53c0aa72b0017658590","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0dd8260aa72b00176585d3","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0ef1ffcd6aa900171059d9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0ef41dcd6aa900171059e7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0efa4fcd6aa90017105a86","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0efc30cd6aa90017105a94","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f0efdf0cd6aa90017105aae","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f0fa687f17762001764f064","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f10a83245051b0017bd27e1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f10c0e745051b0017bd2800","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f111f9026580400174b964f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f119ab426580400174b9674","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f11a56726580400174b96f8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f11dd7c63757b0017687e27","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f124cb263757b0017687f36","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f13a37827bb9b0017bf2c40","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f13b1b627bb9b0017bf2c61","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f15941c8c96fb0017d5ed1d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f15a2908c96fb0017d5ed83","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f15d4388c96fb0017d5f00c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f15d8778c96fb0017d5f053","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f15ddbc8c96fb0017d5f07f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f16ff71ae231a0017d5980f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f1702b8ae231a0017d59815","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f1838516eedb10017176888","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f1c9cde172da500179f4d56","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f1ca850b7573b0017566fbd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f1ca892b7573b0017566fbe","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f1cd39fb7573b001756703b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f1d88bbb7573b00175670c4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f1d94e9b7573b00175670e9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f1d9ea6b7573b00175670f6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f1df07ab7573b001756711f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f202c4d902e28001788391f","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2059a1902e280017883975","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f205d8f902e280017883976","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f2069e7902e2800178839e0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f20798a902e280017883aab","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f20d5d7660f230017ebc169","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f20e2b5660f230017ebc1a0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f21d59fc2123800177bd08c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f21d75fc2123800177bd098","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f21fb57c2123800177bd0ac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f221040c2123800177bd0f3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f22ba75c2123800177bd11f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f22bc15c2123800177bd12d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f22bee3c2123800177bd13b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f22c2b5c2123800177bd156","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f22c5c7c2123800177bd174","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f22ccdcc2123800177bd1a7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f22ce6ac2123800177bd1bb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f22dd15c2123800177bd1c7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f22e4e5c2123800177bd1f6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f22f3b1c2123800177bd217","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f23230ec2123800177bd28c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f236f93384fb2001776db0f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f23780a384fb2001776db2a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f23898a384fb2001776db6d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f2829d731ca1700173d1d7d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f28bfa27b66270017b8a9be","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2a0dddb18617001785ef0b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2ad8b8b18617001785ef2a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2b696350d82b001718405a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2c184650d82b0017184099","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2c4d4950d82b00171842ac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f2c5adf50d82b00171842c4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2cdd82c32aad0017c10be7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2cddcec32aad0017c10be8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2cde09c32aad0017c10bea","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2d52b0c32aad0017c10bef","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f2d6021c32aad0017c10c2a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2d66fcc32aad0017c10ce4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f2d6c5bc32aad0017c10cfd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f2d7177c32aad0017c10d49","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f2d7232c32aad0017c10d50","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f2d7576c32aad0017c10d61","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f2d78d1c32aad0017c10d81","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f2d797fc32aad0017c10d82","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f315e1d44d2620017961a8d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f31688b44d2620017961a92","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f317e4d44d2620017961a97","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f32c124a18a3d0017546e18","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f32c2cfa18a3d0017546e19","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f32c73aa18a3d0017546e34","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f32df74a18a3d0017546e8b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f340e9490f4db00179e55ae","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f354f4f1c2976001731289a","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3553cf1c2976001731289c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f35b2431c297600173128e0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f35b46d1c297600173128e5","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f37f00625bf3c001732460e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f37f2e325bf3c001732461c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3b2dde4ed0e20017e317bf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f3b58814ed0e20017e31807","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f3be1444ed0e20017e31844","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f3bf5b14ed0e20017e3186e","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f3bfea04ed0e20017e31898","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3c1a2d4ed0e20017e31919","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3c238c4ed0e20017e3195f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3c2c374ed0e20017e31967","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3c2e224ed0e20017e3196b","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3c98f8e521510017f23959","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3d3d9ce521510017f2396d","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3d54ace521510017f2397b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3d845ee521510017f23992","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3db1f543ae4a00175c6f4c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3dc2c243ae4a00175c6f62","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3e73ed43ae4a00175c71f7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3e803143ae4a00175c7208","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f3e953443ae4a00175c7224","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f3ed83b43ae4a00175c7259","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3f0ebd455a260017a5bb43","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f3fc8fd455a260017a5bb4c","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f3fda04455a260017a5bb6d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f3fe7a4455a260017a5bbd6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f3fea16455a260017a5bbd7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f428fdb8a3ba80017b2fd3e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f42a7588a3ba80017b2fdac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f42b7bf8a3ba80017b2fe00","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f42bd5e8a3ba80017b2fe2c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f42bfa88a3ba80017b2fe33","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4439278ca5060017147b49","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4479168ca5060017147c83","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4480a68ca5060017147c9b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4484a08ca5060017147cba","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f45364b8ca5060017147ce4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f454b758ca5060017147d05","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f469e9977b0f500173811fc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f472f569ec87300177ba79c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f47efa700fe3700178e1d67","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f49092c00fe3700178e1e0b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f49106d00fe3700178e1e0e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4916a300fe3700178e1e23","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4963a91fe664001772b397","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4987751fe664001772b404","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4a9ffdc436b20017b59723","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f4abc0ac436b20017b59729","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4c4958f816820017d5574b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4d22565420890017bb8dff","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4d66bc5420890017bb8edf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4d696e5420890017bb8ee4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4d73fb5420890017bb8f05","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4d9fbd5420890017bb8ff0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4dbf1a5420890017bb90b6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4dc2a45420890017bb90c4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4dc6915420890017bb90df","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4dde985420890017bb90e4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4e602d5420890017bb9128","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4e658b5420890017bb9148","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4e6db15420890017bb915f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f4e7dfc3a8ab70017019ce1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f4e84843a8ab70017019d21","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4e927f3a8ab70017019d4a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4e9a743a8ab70017019d69","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4ea7573a8ab70017019d84","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4f87773a8ab70017019e20","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f4f8f5f3a8ab70017019e56","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4fcb573a8ab70017019ffc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4fe8db99480e0017fb3f9f","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f4fff1499480e0017fb4132","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f50727099480e0017fb416a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f50e7d299480e0017fb416e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f50f91f99480e0017fb418c","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f51107899480e0017fb41ad","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f511ba199480e0017fb41d9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f5139a45d561d0017b468f4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f5236da5d561d0017b46972","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f52444c5d561d0017b469a0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f52492e5d561d0017b469bb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f527f065d561d0017b46a1e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f5292989f90f600178244eb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f529f029f90f600178244ec","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f58dfac27a1b30017e7a76a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f5cc8a96888b50017a64b6a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f5ccedd6888b50017a64b83","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f5cd3916888b50017a64b91","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f5cee7a6888b50017a64bbb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f60b3f48715ac00179b8c18","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f610d9e8715ac00179b8cb1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6112268715ac00179b8cbc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6112c28715ac00179b8cc0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f611de68715ac00179b8cec","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f612c7e8715ac00179b8d34","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f6132bd8715ac00179b8d71","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f6351b67d66130017e79122","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f636a637d66130017e79139","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f636ea97d66130017e79149","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f638e137d66130017e791d4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f63c0b07d66130017e791eb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f660905cd7db10017f497d8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f660d36cd7db10017f49808","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6690a7cd7db10017f4981e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f67e953de111a001717b2f4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f69079a7791ec0017022d8e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f690d267791ec0017022dcd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6913007791ec0017022df2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f6a36310ab8e6001776083f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6a3ecd0ab8e60017760868","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6a45980ab8e600177608cd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6a61570ab8e60017760903","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6a80cd0ab8e60017760939","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6b46776e864b0017222a81","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6b4a9d6e864b0017222a8c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6b4d5c6e864b0017222a93","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6b53fe6e864b0017222aa6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6b62ce9af9d60017865b5d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f6b6fd554a96e0017494227","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f6b7be054a96e00174942b0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f6b857954a96e0017494352","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f6b8cd154a96e0017494375","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6b922d54a96e00174943cf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f6b95f754a96e0017494407","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f6b992a54a96e0017494420","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6ba06654a96e0017494449","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6ba22554a96e0017494451","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6ba6e454a96e001749445a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6baa6354a96e001749446e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6bad0f54a96e0017494480","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f6bb48a54a96e00174944bb","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f6bb74d54a96e00174944d5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6bbcc354a96e00174944ff","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6bbefd54a96e0017494509","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f6bc21954a96e0017494521","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f6c2e9754a96e0017494707","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f6c307c54a96e0017494708","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f6d4f202157be0017bf0518","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6de7832157be0017bf057a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f6decb62157be0017bf0593","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f6e1b882157be0017bf05db","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6e256cfe8faf0017149136","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6ec729fe8faf0017149240","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f6f70d3fe8faf001714925f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f6ff5129fb9e20017643488","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f7100d209110e00178bd2db","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7129d109110e00178bd316","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f71e83609110e00178bd35d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f721fb709110e00178bd451","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f726225fb580b00170a68c9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f748cea749f350017a1a39e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f7492a5749f350017a1a3e9","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f749f17749f350017a1a444","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f74a431749f350017a1a448","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f74b06a749f350017a1a460","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f74e03d6303f90017339877","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f74ec0f6303f900173398db","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f74f9216303f9001733990a","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f74ff836303f90017339923","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7509456303f90017339948","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7528336303f9001733995c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f7545256303f90017339a72","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f7600a06303f90017339ae2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f7787e04ec474001734f72b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f7787e64ec474001734f72c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7787eb4ec474001734f72d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f7789754ec474001734f736","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f77898d4ec474001734f737","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f7ada04812a880017c2a8f7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7b27c9812a880017c2a945","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7b2809812a880017c2a947","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7c5289a6f2ec0017e28508","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7cb4eba6f2ec0017e2859a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7db6d12159250017dd8f96","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7e1cc12159250017dd9024","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f7f487a081e6f001756e645","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f8066a957fe7a00175dc27d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f806a9557fe7a00175dc28b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f83749b1530240017421dcd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f83c7230d3c1400174f8062","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f83cc9d0d3c1400174f8064","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f847ffc0d3c1400174f8156","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f84a3ff0d3c1400174f8205","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f84f101987252001768c26f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f85149e987252001768c282","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f85bb44987252001768c2c1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f872d850336a20017152970","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f87420c0336a2001715298d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f8747d80336a200171529ab","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f874d6a0336a200171529e1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f8753f10336a20017152a1e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f875b700336a20017152a85","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f875b730336a20017152a86","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f88cd82364d640017680c19","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f89e465a4c8380017fdbf7a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f8c7891879ccd001739e1b0","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f8c85f6879ccd001739e258","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f8cea99879ccd001739e2c3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f8db6a81f04080017494ff4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f8dc40b1f0408001749501e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f8de5971f040800174951c9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f8dec0a1f0408001749520f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f8df01c1f04080017495217","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f8e4fbf1f0408001749524f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f8f2aaea15fff0017de9e25","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5f8f3c2ea15fff0017de9e26","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f8f5127a15fff0017de9e30","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f8f586aa15fff0017de9e65","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f8f5c02a15fff0017de9e97","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f8f61fba15fff0017de9eff","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f8f66cca15fff0017de9f53","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f8fac71a15fff0017dea011","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f922ddb952827001723b45f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f923952952827001723b4dc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f92ebad952827001723b54e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f932331d8cac90017d1b8f2","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f932a97d8cac90017d1b938","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f932d43d8cac90017d1b942","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f9342d1d8cac90017d1b970","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9347b8d8cac90017d1b9d4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f95fc8fd9e3ac001793e7e1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f961113d9e3ac001793e7f5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f961777d9e3ac001793e7fe","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f96fb5ad9e3ac001793e863","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9817edc381160017d31a90","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f999a2f54d6a10017bc971b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f99e84d173ecb00177a1e71","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f99f89b173ecb00177a1e94","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9b273803809f001743e8d6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9b298c03809f001743e8eb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9b34c103809f001743e92b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f9b3cc003809f001743e9c3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9b6bd603809f001743ea53","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9c3d1003809f001743eaab","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f9c52db03809f001743ead9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5f9c614b03809f001743eb15","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9ca1395da5cd0017bdf27f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f9cc5925da5cd0017bdf310","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9d8ec85da5cd0017bdf3ba","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9d99ad5da5cd0017bdf3d7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5f9ddf2179a2270017c43c46","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5f9ef4f479a2270017c43c8a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fa032de98050a00178d59e2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fa140cb1e39b20017c8a1e1","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fa978e6a53542001765d9d2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fa981d1a53542001765d9e1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5faab0aa08e6b400175ded2f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fadfc3658197300174a9791","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fb0936d12543e0017c1cb05","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fb09a5812543e0017c1cb0e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fb0a76a12543e0017c1cb5c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fb0ad7412543e0017c1cb69","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fb2d63370058c0017506f49","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fb40c74f940040017aec14a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fb4b413c2bf6e00177b917c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fb81b999e518e00171228b5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fbd992191fc6a0017aea88f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fbdc81391fc6a0017aea958","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fbe919f106002001718a0a6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fc2773ee3589500176e7897","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc27f61e3589500176e78b2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fc2a142e3589500176e79ae","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc2a178e3589500176e79af","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc2a197e3589500176e79b0","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fc2ad8fe3589500176e79b8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc2b0cae3589500176e79bf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fc2b909e3589500176e79e4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc2c3b6e3589500176e79f8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fc3f7546f714800176c0d21","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc4177d6f714800176c0d5d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc4e9056f714800176c0d69","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fc4f41c6f714800176c0db8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fc4f7db6f714800176c0dcd","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc5347a5f05f400172523d0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc548315f05f40017252438","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fc553235f05f400172524b2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc564575f05f40017252523","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc570615f05f400172525de","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fc5b3845f05f4001725263f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fc5bdc75f05f40017252642","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fc7027343a5180017dd7eaa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc7bae443a5180017dd7edc","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fc7bae743a5180017dd7edd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fc7bbb943a5180017dd7ede","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fcd3aec1d0a6f0017fe4459","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fce7ab79e706e00177614b5","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fce84d69e706e0017761544","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fce89c69e706e0017761566","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fd16461a126db0017d4766b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fd18830a126db0017d4769c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fd2fa9ba2b1ae001714c088","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fd30463a2b1ae001714c0fc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fd30c0ea2b1ae001714c1c3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fd3eb1748654100177927e6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fd6a095468141001778717d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fda7b7470d563001783a106","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fe0dd81d53b1b00175bb120","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fe245f4ecdf340017278937","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fe247e6ecdf340017278949","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fe2520aecdf340017278968","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fe25644ecdf340017278981","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fe3a006c6542000178d15c1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fe5f6af9c0881001756a9d6","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fe8dbc5365b8900173d7d8d","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fea0bb6a399ed001734f228","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fea3e22a399ed001734f229","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fea4a87a399ed001734f239","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fea5557a399ed001734f271","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fea6fe7a399ed001734f27b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5feb80c0ba25520017306f5f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5feb8982ba25520017306fb9","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5febab36ba2552001730705a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5febac92ba2552001730705b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5febe690ba25520017307071","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fec03e8df1c53001715417c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fecf136df1c530017154195","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fecf66ddf1c5300171541ae","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fecfa6edf1c5300171541d4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fed504c2081d500172acabf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fedd8742081d500172acb52","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fedf77cefa4df0015b7b05a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fee1265efa4df0015b7b0da","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5fee14cfefa4df0015b7b0e4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5fee2c1befa4df0015b7b0eb","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fee558aefa4df0015b7b238","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"5ff07abc00d73d00157ae31b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5ff50fb406627200154120b2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"5ff517de06627200154120dd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ff5230d0662720015412168","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ff6745ad8898e001594cd2d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ff75968d8898e001594cd56","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5ff7e38b9aaac60015c0c74c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ff8a123980d450015876849","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ffa2906aff7250015431180","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"5ffa3222aff72500154311ba","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6001f97c46c8bc001581b610","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"600624dac575ae00156c2c83","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60065664c575ae00156c2cc0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6009b41cd27b720015f75e4f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"600b269ffd23e500151836bd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"600b7b53fd23e5001518374b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6010390b1899a0001536daef","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6010667a1899a0001536db39","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6011932ebd59d0001513e9dd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60130d00e71d820015437c5d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6014271941e5420015632e5a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60146a8841e5420015632f56","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60146a9741e5420015632f57","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60146aec41e5420015632f58","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"601598233673080015c9dc61","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60159c703673080015c9dc83","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6015a4853673080015c9dc9f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6015d8703673080015c9dd15","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6015f2093673080015c9dd7c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6015f6c93673080015c9dd9b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"601626a93673080015c9de80","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6016878f3673080015c9de96","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6016a0779f64a2001580cb21","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6016ab8d9f64a2001580cb52","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6016bfc39f64a2001580cbac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6016c69f9f64a2001580cc18","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6016c9c79f64a2001580cc2a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6016ee4e9f64a2001580cd69","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6018406eb356600015db20e5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60184959b356600015db2102","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60187ba9989ad0001504d152","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6018a678989ad0001504d2fa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6018af40989ad0001504d36e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6019d7c8772a180015b26aae","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"601afb3e772a180015b26e41","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"601c7da908ffbe00156ebd89","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"601c8e6b08ffbe00156ebed2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6023244f6ef1e7001526bf56","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"602414392e57310015944b80","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60244f782e57310015944f1f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6026ce51847dd000151240db","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60283d1fd4f6dd0015f93705","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"602847bcd4f6dd0015f937a5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"602b4824129c000015532365","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"602c3ec5ff84f900155ca0da","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"602d3b00ff84f900155ca9ac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"602ea75f6e3a010015c42449","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603003f939933c001508592f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60307b0639933c0015085e23","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6031afce0f2dbb00159c63dc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60320dc10f2dbb00159c6458","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6032174a0f2dbb00159c646a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"603229b20f2dbb00159c647c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6033fee4462f7100152996ec","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603515ce35affb001589f297","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60354c0a35affb001589f331","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6036b9299ee31a001530d3d1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"603bdc4da72209001521f40a","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603bfd73a72209001521f703","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"603c03a3a72209001521f773","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603c1f67a72209001521f7c9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"603c3f73cae0620015826066","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603c4748cae06200158260dd","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"603c4aaccae06200158260f3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"603c4f2ccae062001582615b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603d0ae7cae06200158261d1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603d2129cae062001582629e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603d27cacae06200158262cd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"603d4ee6cae062001582658e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603d6b57cae0620015826615","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603e7353652598001579b67a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"603ea64d652598001579b7f4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603eaf20652598001579b918","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"603eb47a652598001579b936","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"603ee58c7d5a2b001532ea66","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60424212611029001516348e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60428e4261102900151636a3","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"60452881abc40800159efecb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60456aecabc40800159eff82","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60457daaabc40800159eff9a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60469204d51dc50015b65488","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"604696ccd51dc50015b65491","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6046f9387f00870015c24a29","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60482c097f00870015c2505e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"604d6b01bb580c00157c3ff8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"604ed53f8d22b400150f7f2c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"604f7d21ef91970015b45cc8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"604f7e28ef91970015b45cc9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"604fbe1aef91970015b45d18","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6050ed9e0feb2b00159bd58e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6050f72b0feb2b00159bd59e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"605328af06aa520015fe50d9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6053398406aa520015fe50f6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6056390cf09942001538723b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60577b155c79df001546a711","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"605798a45c79df001546a766","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6057a1bf5c79df001546a7b7","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6058e2ca86a32f0015516ad5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6059539086a32f0015516ca4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"605a0be086a32f0015516e43","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"605a14f886a32f0015516e94","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"605a3e006d34b300154c70de","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"605b66736d34b300154c769a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"605b9ca895b64d00153bcebd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"605c75bf95b64d00153bd1da","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"605d672a2d44240015f25349","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"605e19892d44240015f254b4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6061f8d9b35da7001535bdd9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60627d3b86794c0015215168","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6063703586794c00152155c2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6063ad8e05e9b60015a0e61a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6063c07905e9b60015a0e6e2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6063cc1505e9b60015a0e77a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6063d52205e9b60015a0e84a","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6063d57005e9b60015a0e84d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6064944505e9b60015a0ea83","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6064a86f05e9b60015a0eb45","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6064b5c205e9b60015a0ec43","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6064c43c05e9b60015a0ed24","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6064c70b05e9b60015a0ed4e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"606518a8120e3600150252c9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60651d05120e36001502532e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60652ad1120e360015025480","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"606543c3120e3600150255a5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60655115120e360015025609","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60666e003627720015f2c6f0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"606a5ca0dd066a001539a2f1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"606a6792dd066a001539a3f0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"606dc54a3cc58a0015db0789","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"606f461f0b61fd001576c11d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"606fa06a0b61fd001576c180","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"606fbbc10b61fd001576c212","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60708cfbefa61d001570001d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6070b161efa61d0015700090","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6076d8b87f928f00155b907d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60785fd61ba66b0015d4434e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"607888ee1ba66b0015d4435b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"607ee1fdc03744001598abe4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"607f72079bdde60015abb422","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6080912e9bdde60015abb6fe","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6080d09db30dc40015fe85e1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6080dce3b30dc40015fe85f7","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6080e210b30dc40015fe8601","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"608215e85ddbdc0015d9c28a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60844698dc73ee0015da9776","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60844b74dc73ee0015da9779","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60860fd1e82155001589a8f8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6087397ae82155001589aa80","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60873ad9e82155001589aa81","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60873fc7e82155001589aa88","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60874660e82155001589aab7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"608751cce82155001589ab2a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60878c2611724d0015266021","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6088885611724d001526620a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6089b8968e7e8400159e58fb","bipoc-led":true,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":true,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6089bef18e7e8400159e5928","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608a14eb8e7e8400159e5a1c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608ad08c0dc93800153dd8ab","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608ada0a0dc93800153dd8b2","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608add2a0dc93800153dd916","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"608ae9b50dc93800153dda49","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608aedc90dc93800153dda6f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608b1a250dc93800153ddc53","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608b5be90dc93800153ddd9c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"608bdb95a608700015063285","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608c45cea608700015063487","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"608c4790a60870001506348f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608c7bf0a608700015063635","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608c97a0a60870001506374d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608cac6fa608700015063815","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"608cae02a608700015063821","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"608caeaca608700015063826","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608cb90da6087000150638a1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"608cd598f7bb7e0015431fbf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"608cdeb5f7bb7e0015431fea","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608d895bf7bb7e001543207b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"608f196c24df9700158b3f4f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60901786fc37dc0015325bed","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60919b971a48960015d56d1e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6091b5b31a48960015d56db2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6091ffd48e7dc300153179a8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60929c318e7dc30015317a2d","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"60932fa1206ab500154a0af7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60933775206ab500154a0b34","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60933e89206ab500154a0b7a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6093575e206ab500154a0bf4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60994647522c790015441ca2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6099f76955102c0015d8a207","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"609b3b6b55102c0015d8a496","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"609d87394aef7b0015ea0040","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60a14ca337357800159cba2c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60a289b793b41d00158455ba","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60a4845383625c0015a30b0c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60a5218583625c0015a30b1e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60a6f41a1abaa100155b4dc5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60a6fe221abaa100155b4e1d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60a6fffb1abaa100155b4e1e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60a717141abaa100155b4e4e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60a729591abaa100155b4e9b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60a8eb33580f7c0015fe2e50","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ac39a7b493530015de7487","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ac3d42b493530015de7509","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ad9d0b0cbf240015c78a15","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ae57657b7f9a0015078083","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60aeb3047b7f9a001507808b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60aeed187b7f9a00150781d3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60afdf042f913d0015ba1468","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b007f12f913d0015ba1492","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b069b82f913d0015ba164e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b15160f300570015656461","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60b272ec220aea00157e64d8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b2884c220aea00157e64e6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60b29c64220aea00157e64f2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b3bcfdb008ee0015b63723","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b4e721e9407900152618a8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b4ff40e9407900152618c4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b50273e9407900152618da","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b507b9e9407900152618ee","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b50dc6e94079001526191c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b56915e940790015261968","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b5809fe940790015261969","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b58c80e940790015261979","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b64bde0ece360015297a4b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b66cb20ece360015297a78","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"60b6eceac585790015a6670a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b7e1f08a49790015bfc36a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b8f94ec84a5700153a897e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b93ef2c84a5700153a89f9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60b95b14c84a5700153a8a0e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60bc4dbaaa43c4001597bd45","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60bd07f49f678000152854b3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60bf9cb837aebe0015ca151a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60bfbf4e37aebe0015ca1561","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60bfdbd23662060015333aae","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c22d56be6d980015459438","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c2451cbe6d980015459643","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"60c26c71be6d9800154599b4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c281a22914880015813f86","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c2d62f2914880015814167","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60c3c1c32914880015814628","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c3c8252914880015814687","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c4fba72cc3270015fb4305","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c50e012cc3270015fb4361","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c523d82cc3270015fb4376","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c772eb49dcbe0015c98673","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c7798949dcbe0015c9871b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c78d8249dcbe0015c9888a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c80bf4b5824600151f0943","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c8df6cb5824600151f0bcb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60c9393fdb23ea0015b2c7b4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ca1dc7db23ea0015b2ce38","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60cabc55a3eb7a0015fce6fc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60cb6ed6a3eb7a0015fce9fb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60cb9ce8a3eb7a0015fcecd8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ccee6415953b0015f6a2a8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60cd00d315953b0015f6a318","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ce7c741801e300155f27df","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60cfb3d813a1370015c9885b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60d000c0c4db220015399bfc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d0dfdcc4db22001539a091","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d0f456c4db22001539a407","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d209bdeb60480015f22546","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d20a62eb60480015f22547","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d23419eb60480015f22a26","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d29837c3164c0015bc202d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d34970c3164c0015bc229d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d34af7c3164c0015bc22c2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60d3654ac3164c0015bc2585","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d36e95c3164c0015bc2657","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d37e60c3164c0015bc271a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d4b6ad417e720015cc7c9f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d4be67417e720015cc7cfb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d516ef417e720015cc813f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d5294c417e720015cc818a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d603523e48ae0015cf75bc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d659873e48ae0015cf78ee","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d6ac7c6fe656001515a948","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d6b3b36fe656001515a951","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60d8d14946da0a0015bf29b2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60d9dbdef033170015a765bf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60da1748f033170015a76809","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60da8f0bf033170015a76ad3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60da91daf033170015a76add","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60da9e0b33bdd800152a37b4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60db102533bdd800152a37ca","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60db7ea533bdd800152a3e21","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60db83fe33bdd800152a3ebe","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60db910a33bdd800152a400e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60dbe8b497360200157fcf49","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60dca6e897360200157fd268","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60dcb6ef97360200157fd31c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60dcb9f597360200157fd382","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60dcce1d97360200157fd60c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60dcd75c97360200157fd6b3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60dd32a1772c7300159ba917","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60dd33e9772c7300159ba919","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60ddf285772c7300159bacbb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60de0c97772c7300159badcd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60de1dc8772c7300159bae63","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60de2a61772c7300159bae9d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60de3c27772c7300159bafb0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60df4cba0460460015607f10","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60dfd2dd046046001560804a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60e0d70f1c361100152cd251","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60e327d42255630015532349","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60e49269a4f35b00157afb78","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60e5c3dfa4f35b00157affca","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60e5d475a4f35b00157b0003","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60e60986964c83001595794a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60e6f42b964c830015957df5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60e7265c964c830015957fbb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60e72ef6964c830015957fe8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60e746eee29da400157e36f3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60e7b0cde29da400157e38e8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60e8866ae29da400157e3b04","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60e8d00dd94a0a0015324dee","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60eca5b6f965f00015e51c9e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60edb693f965f00015e5202d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60edc5a0f965f00015e520e1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60edd625f965f00015e52226","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ede47cf965f00015e522c1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ee488bc98fa500156ec074","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60ee4f68c98fa500156ec0af","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ef2849c98fa500156ec200","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ef3391c98fa500156ec26e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60ef4572c98fa500156ec2d6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60f07f85af95cc0015fca2a2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f081daaf95cc0015fca2c0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f0ce25072bea00157de990","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f0df79072bea00157de995","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f5934383a5c600157a7224","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f5b10d83a5c600157a73fd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60f5b96783a5c600157a7466","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f5c39083a5c600157a7498","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f5d14c83a5c600157a7510","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f629314209270015be246a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60f73f054209270015be2ae4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f75c33a6087f0015cc7797","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f775dea6087f0015cc77b3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"60f83c49a6087f0015cc7984","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f84913a6087f0015cc79fe","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f84f53a6087f0015cc7a63","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f883d6a6087f0015cc7bbd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60f97403bc8b9400154b3b44","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60f99591bc8b9400154b3d97","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60f9a484bc8b9400154b3e25","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60fb61f8663b3f0015b24918","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60fb644a663b3f0015b2491e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60fb660acc4c4f0015979df9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60fb68a3cc4c4f0015979e04","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60febc6af6907600151fe383","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"60ff19d9f6907600151fe6cf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ff4024f6907600151fe95f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ffaa3e2ec2640015ffdf0b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"60ffb0512ec2640015ffdf23","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6100231f2ec2640015ffe086","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61002da82ec2640015ffe0d6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6100342d2ec2640015ffe145","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610034f22ec2640015ffe17d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610074a92ec2640015ffe461","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6100e9dc4e31c7001539273e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6100f3c14e31c7001539275f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61019917dbea77001549d07d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6101a8ba3b0691001563515c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6101e4283b069100156351a1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6102f2e43b06910015635650","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6102f7b23b0691001563565a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61031b47ab1662001548f85e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61032123ab1662001548f88e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6103fbbeab1662001548f9e2","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"61043d7aab1662001548fa67","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610497f8d14cda0015d6d420","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6105a38ad14cda0015d6d543","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6105aad890f18b0015f8ce96","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6105bfc490f18b0015f8ce9f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6105c52790f18b0015f8ced4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6105cf8390f18b0015f8cefd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6105e79f90f18b0015f8cf54","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6105f25690f18b0015f8cf5c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6105f9a890f18b0015f8cf7b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6105fb4d90f18b0015f8cf7f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6105ff3090f18b0015f8cf92","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6106afc090f18b0015f8cfe6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6106cf3490f18b0015f8d05f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6106d3b290f18b0015f8d069","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6106d82e90f18b0015f8d073","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6106dc5e90f18b0015f8d0a9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610718f2d6fa370015df6c9e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610756cbd6fa370015df6caf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610808f0d6fa370015df6dd7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61081d48d6fa370015df70ff","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610864f1d6fa370015df72bc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6109d9583b53cb001506007b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610a30d33b53cb00150600be","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610a83213b53cb0015060186","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610aadfc3b53cb001506024b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610ab10c3b53cb001506024e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610ab78d3b53cb0015060284","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610abe753b53cb00150602cf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610abfaa3b53cb00150602ef","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610ac3783b53cb0015060322","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610adbf93b53cb00150603a5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610b1781e0767700155da48d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610be124e0767700155da50c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610bfe8de0767700155da523","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"610c0c53e0767700155da528","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610c24cbe0767700155da6e3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610c79d57139c2001578e347","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610cade37139c2001578e397","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610d58947139c2001578e3d3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"610d68767139c2001578e41b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6114546f95bda10015759694","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6114ab2012b014001585148a","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6115819112b01400158515bb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"611598c812b0140015851631","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6115dc386504a2001515f307","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6116cee96504a2001515f343","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61192963cb256a001560d84a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"611977b3cb256a001560d84c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"611a3345c3c4960015b18b3d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"611a52f7c3c4960015b18cba","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"611ed6e63d97fb00151449b0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"612056b999fbfd00154b14b1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6124ed64bd3f6e00159c8ae8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"612706c64bec8a00154399aa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"612be10b5676c70015bc3937","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"612d262990d41800153b5c89","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"612e53c972f2fc001517194f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"612e8f0772f2fc00151719bd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"612e978772f2fc0015171a1d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"612ec422c100d60015ca6e5e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"612fbe58c100d60015ca6eca","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"612fc2d2c100d60015ca6ed2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"612fc79dc100d60015ca6ed7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61310d40c583d40016b5e65a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6134ca439a911e0016353f05","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6134cfb29a911e0016353f32","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6134d31b9a911e0016353f5d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6134dbcb9a911e0016353f81","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61364d0939fe2200167d8d2f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6137c89afb305b001676afcf","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6137cf6efb305b001676afee","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6147bb7c512160001690c696","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6147c37a512160001690c716","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6147cd0a512160001690c78b","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6151d1619fdc420016e916bb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61550072cd9a9700163f44aa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6155086acd9a9700163f44c1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6155bc9f775c640016325323","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6155c355775c6400163253a0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6155c500775c6400163253ab","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6156aa6eb632290016c193cb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61585206094fd50016718615","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6158a76e094fd500167186b7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6158c5511241ad0016757cda","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"615b68355b42ec001617ec7f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"615cdea952b7730016d87474","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"615ce4fa52b7730016d874bd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6161b3699c287d0016825455","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6161c0d79c287d0016825461","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6166d76c8ab5c700169044b4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"616728ba8ab5c70016904595","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61672cc18ab5c700169045a7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"616730118ab5c700169045bb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"616731dd8ab5c700169045c3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"616734678ab5c700169045db","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"616737a98ab5c700169045ef","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"616963bd6a40d100167af08b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"616976a56a40d100167af0b0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"616986026a40d100167af0c2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61698f406a40d100167af146","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"616c5ca09e4f0d00165026fd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"616fc4194d16ff0016cd69af","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6170498eccbc2c0016351f79","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6175d8ace02fdd0016d08074","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6175e15be02fdd0016d080ad","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6175f84d8e5a6d0016574702","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6178954a7418a9001690a87e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"617954f227e6f50016b279c5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"617a811cb8ec5b001655942a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"617a8eb9b8ec5b001655944e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"617becb2acb9af00162c20bd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"617bf5cdacb9af00162c20d3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"617c0e4facb9af00162c218e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"617db9fedb124200163b458b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"617eba65f8f17a0016bd7a7f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"617eed73f8f17a0016bd7ab7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"617ef952f8f17a0016bd7ae5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"617eff48f8f17a0016bd7b00","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"617f0752f8f17a0016bd7b34","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"617f433af8f17a0016bd7bac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6180a9f08faefd00160f1c6b","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6182cd0526d85400169c5f0e","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6184250c2990a000167e4228","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"618557f02990a000167e42f2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"618562611cb22d001656d4b1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"618acfc05adee200169c0670","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"618ad4525adee200169c068d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"618adca45adee200169c069f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"618ae1e25adee200169c06ac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"618dad36ecc39b001633de3f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"618ea90eecc39b001633df47","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6192648379eff600163f07c9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6192878779eff600163f07f8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61944e7bcf69d00016a04b56","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"619897c6d73e7300166ffb1a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"619bd11dfd4bb8001615aa2f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"619beefdfd4bb8001615aabb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"619d52f28c73430016fdc147","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a15b986e47620016725151","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a1620e6e4762001672517d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a4474af3cc6b0016f61b9d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a50d55f3cc6b0016f61ba5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61a513fcf3cc6b0016f61bab","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61a656819fcb5800160f0e37","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a65b7c9fcb5800160f0e5b","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a65dda9fcb5800160f0e6a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61a679499fcb5800160f0eaa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a695129fcb5800160f0ee5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a6b7869fcb5800160f0f29","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a6c2799fcb5800160f0f97","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a6caa79fcb5800160f0ffa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a6d38d9fcb5800160f107f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61a769200c3fe2001629de50","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a7ce510c3fe2001629de6b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a8fbb7d929fe00166f35d0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a93ca6d929fe00166f364c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"61a94829d929fe00166f3653","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a98036d929fe00166f3656","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61a9a8072c5a74001604469c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61aa8f0c2c5a7400160446cf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61aa956d2c5a7400160446d9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61b0fbb213c6670016451b40","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61b622dbe9370d0016ee70e1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61ba0540119a2e0016e45c7b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"61bb680f8bdf9200166360b0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61be003714682d0016b3c4f2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61be1ea814682d0016b3c68c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61bf8e92aad4970016892811","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61bf9fa7aad4970016892865","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"61bfb3eaaad49700168928cd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61c3c085eff12d00168aa904","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61c4eb09a3e6f30016ee71f4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61cb2d9164fd780016ba13a1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cbac9064fd780016ba1412","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cbafe564fd780016ba141c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cdce98107d4400166c1f3d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61ce1e10107d4400166c1f4f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61ce708b107d4400166c1f62","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61ce9f8d107d4400166c1f76","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cecbd4107d4400166c1f87","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cefcd16c6bfb0016dcc1b6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cf15cb6c6bfb0016dcc1c1","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cf2cfc6c6bfb0016dcc1f3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cf48e86c6bfb0016dcc209","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cf660e6c6bfb0016dcc225","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cf79f46c6bfb0016dcc263","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61cfcc0359db9600332ca887","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61d088c859db9600332ca888","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61da06431baa89002eb92141","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61dce0a46ea795002e0f0e5a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"61dcf30a6ea795002e0f0ebe","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61dddd5904b79500307ac63e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61e09dc7261d4b003395c9f0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61e2010a3b67bf002e9c1b5a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61e34a267fa524002e30f5dd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61e4468ee4fec2002e91fb81","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61e599077af631002ecfa0b8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61e859c7cf5c97002e67e639","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"61eaea2c4044310031f2d3ea","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61eef1ecc3f933002e0f43d9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61ef0e52c3f933002e0f4550","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61ef5f62c3f933002e0f45a4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61ef6edec3f933002e0f45b2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61f1a8a2430c2c002e194505","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61f2e55d074eef002ebaf9a9","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61f35935074eef002ebafd84","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61f4010290fcea002e2514a6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"61f4050b90fcea002e251513","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"61f40b2d90fcea002e251543","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61f5454e07bb8a00391561a4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"61f6c51fc0528f003e830c8b","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61f6e0f2c0528f003e830d82","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61f71027c0528f003e831060","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"61f86a5ecf5e66002e9a8c3d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"61f94f209901e800302562ba","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"61fc2db4aed35a002e222cf4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6201dd788a01fe002edde86e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62032249eb04fd002ecab389","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62043f88681318002e1268ca","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"620527fbb14d39002e6035a8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62053f90b14d39002e6035b2","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62094183417025002ebd3396","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6210fcae39ca050033d27691","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6216d2aa2d11c9002e485b9a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6219351d6820240033b3f366","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621b99da7f186a002e3d2a78","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621bcaa8e4a829002e3fa00e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"621be715e4a829002e3fa285","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621bf1d7e4a829002e3fa2f2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621cf657e4a829002e3fa3c1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621d0a7ee4a829002e3fa48e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621d2f4b13d6a7002eedfd26","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621d8c2f13d6a7002eedfd72","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621daf9fe9deff002ef74369","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621db847e9deff002ef743c9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621dee52e9deff002ef744a7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"621f02e95780fb002eb8df06","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"622693f3c68a07002e4137c4","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6226b79fc68a07002e41385f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6226c399c68a07002e413874","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6226d086c68a07002e413883","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6226e0cfc68a07002e41399f","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6226e63cc68a07002e413a20","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6227692a19c0b4002e5b5e32","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6227aefc19c0b4002e5b5f07","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6227b12119c0b4002e5b5f0e","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62339d7ae22400003e37af41","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6233fdb9ff35ec002ebfaa62","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6239d9b3805349002e77cf64","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"623a0679805349002e77cf7c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"623ccc3c258927002ee0aab4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"623cef3cedddbc002e92fdb7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"623d10fcedddbc002e92fded","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"623e2ac5edddbc002e92ffb4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"623fe3356386090030da9a1f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6240bbaa6386090030da9af4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6240c7d46386090030da9b21","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6242038a1d9ce4002ece3c2b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"624204d01d9ce4002ece3c2c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"624230ed1d9ce4002ece3c47","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62434d6838d0db002ec3f9ac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62435a2c38d0db002ec3fa6b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6243616e38d0db002ec3fa97","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6243fa5a46bad8002e85dce6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6244174c46bad8002e85dd0f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62442ae846bad8002e85dd2a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6244315046bad8002e85dd2e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6244315c46bad8002e85dd2f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6244af2f46bad8002e85ddd8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6245d2a98286b3002ed51a28","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6245e0578286b3002ed51b13","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6245eda48286b3002ed51c10","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6245f0a48286b3002ed51c3e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6245f5118286b3002ed51c52","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6245ff4b8286b3002ed51cbb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6246068b8286b3002ed51cda","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"624623078286b3002ed51d1a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"624632f18286b3002ed51d27","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"624639ae8286b3002ed51d2e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"624649d4c76f6c002e3761fa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62465079c76f6c002e3761ff","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62466052c76f6c002e3762ce","bipoc-led":true,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62466810c76f6c002e3762d4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62469132ec8892002ebce8e4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62479193ec8892002ebce973","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62479e7fec8892002ebce9eb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"624a1d21280ec4002ecdef1a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"624c9b26c374cc003731b870","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"624e08ba3fdca1003eeb2929","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"624f17b05fe141002ebb098a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"625082f10b612c002ed3ef56","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"625098d00b612c002ed3ef6c","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6253702ad3fb39002e182bbb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"625707f71476bb002e8fe171","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"625743f61476bb002e8fe2b3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62584a42cd4225002ee41dc9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6259c3e4f183d7002e9d104a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"625d7b8085665a003c2780e1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62602176901c7b003e5daf69","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"626183829e9e9c002e0cce5c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62631987b84c8c002e5d3f60","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6266b8580e53a2003ebf8740","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626890414e9dac003e165504","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6269a1fd26e77e003e07014b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6269b4a926e77e003e070366","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6269b4f526e77e003e070367","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626ad2efb21ae1003e14f790","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626ae1c8b21ae1003e14f7b1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626be8a4b21ae1003e14f994","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626c3c0cc8625a003e42fc30","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626c4762c8625a003e42fc7c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"626c6027c8625a003e42fd89","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626d6143d75a3c003e8b4f09","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626da68ad75a3c003e8b4f36","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626dbab5d75a3c003e8b4f3e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626dca68d75a3c003e8b4f4c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626ddfb1d75a3c003e8b4f5c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"626ff77dbca3b6003e4281e7","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62709e86ff76e9003ec5f794","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6272cca8bbb270003e813616","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"627425b3620d95003e3febac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62758cab49a566003e3a6a22","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6279a57452fb9c003e6dd4e2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6282d114a56060003e2429b6","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"62864ed1e6b765002e447561","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62865134e6b765002e44756b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"628653e9e6b765002e447573","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"628baa9e30b594002e88aa48","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"628d108b0fdd51002e0ffb6f","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"628d1ba30fdd51002e0ffbb3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"628d251b0fdd51002e0ffc7a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6291d77f1d5273002ef39517","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6293987c4d07c0003ea26cc9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"629514e47416cd002e4e201b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62963981821e4f003e81841b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"629675c1821e4f003e81844e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6296d80db42059002e706d77","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6296ef8db42059002e706dcd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6296fa20b42059002e706ddc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"629a89ca42e4ce003ef0d8df","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"629e2f3e2438c3003e58ee4e","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"629f6a3a553d8b002edb755f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"629fa037553d8b002edb7751","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"629fa54f553d8b002edb7790","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"629facab553d8b002edb7799","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"629facdd553d8b002edb779d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"629fae96553d8b002edb77b3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62a723f334961500161deb95","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62a7808934961500161def40","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62aa250c729568001660d35c","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62ac5418d0f7c900164b9c90","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62ac5820d0f7c900164b9c9f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62b0b614301c590016ae368f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b0b869301c590016ae3690","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b0b89f301c590016ae3691","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b0c178301c590016ae36e0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b0c1c5301c590016ae36e1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b0c32a301c590016ae36e7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b0cc8e301c590016ae374f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b0d0b9301c590016ae3785","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b20e942abbb000169caa35","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b20e952abbb000169caa36","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b23bc72abbb000169cab0b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62b5e4ffac0b870016dfe8c7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62b938a7685bb00016bf0460","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62b9ecd3685bb00016bf0d50","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62ba003d685bb00016bf0f6f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62ba0ad0685bb00016bf0ffb","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62ba25f3685bb00016bf1036","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62bb316fa42d360016368229","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62bcab3f5edbf80016281356","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62bcbdf45edbf80016281428","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62bdd74d65e149001633efb4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62be4b67f137990016de0f73","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62be558af137990016de100b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62be56b0f137990016de1024","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62bf2692b5d35800160683de","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62bf2f2fb5d35800160683f2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62bf36bdb5d358001606843c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62bf3d72b5d3580016068474","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62bf44ccb5d35800160684a5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62bf48b2b5d35800160684f2","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62c0919046d0c40016b7ed67","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62c0981b46d0c40016b7edad","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62c2fd308f36b6001626b4c7","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62c4208e1a8bad0016050a18","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62c6c292690bcd00163c3293","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62c6fded690bcd00163c3475","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62c72926690bcd00163c373d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62cd99364995b600164f9789","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62d08052c028d00016b5a25a","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62d09716c028d00016b5a2c7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62d1b578e7dfb1001682579a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62d1c194e7dfb100168257c8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62d5adfadeeccd0016c3f12b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62d5b677deeccd0016c3f209","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62d7182c8e0eed0016a14ddd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62d861502b86e50016749321","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62d8b5912b86e500167493a3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62d9a83c1cc91100163880f6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62dab6ca1cc9110016388438","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62dbf4a42199ee00162c571a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62dee072c69dbf00162aef6a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62e19513956c7c00165f7830","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62e19f5c76f27d00160399e0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62e1f1ef76f27d0016039c1a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"62e29b445245bc00167d7261","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62e29db55245bc00167d7278","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62e2a3cb5245bc00167d729a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62e2aea65245bc00167d72af","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62e2fa395245bc00167d7417","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62e431ca5b13b30016bd95ba","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62e487005b13b30016bd97b1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62e621a062fb950016d9c8fe","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62e8230bdcf09f001636610a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62e970ab353bf30016158586","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62eafefa389733001607d50d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62ec745fdd42bd0016791d74","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62ec8639dd42bd0016791da8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62ecc9eafde8090016ac7428","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62ed3f00fde8090016ac7484","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62ed51bdadf414001687f691","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62ed665aadf414001687f73a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62ed6868adf414001687f73e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62ed806badf414001687f802","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62ed85fbadf414001687f834","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62ed9adeadf414001687f90c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62edeb80adf414001687f928","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62edf1f7adf414001687f93a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62f00692c9c2b60016806044","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62f0a08d2a874c0016118d31","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62f0a9a42a874c0016118d61","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62f10ea02a874c0016118dbd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62f1154b2a874c0016118e38","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"62f3c62d8e1e4500160cd723","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62f409408e1e4500160cd830","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62f412858e1e4500160cd865","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62f41c6a8e1e4500160cd8a7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62f54396253d8100167943dc","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"62fbd5a7affb290016289c87","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"62ffea50582f6300165edc0d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6302ae932d0d7f0016ee4dc8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6307c094a0cc3d00164e024c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"630fe91add2c2e001608c679","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"630fefe2dd2c2e001608c69a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"630ff265dd2c2e001608c6b3","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6316263009c8ed0016817afc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6317af16182a020016c01fe6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"632e12dc45ad40001663eebc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"632e23e6a683810016f350af","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"633352cdd793a00016e670d3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"633507506ff9c700169e2487","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63370ec92f780e0016781fb6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"633715952f780e0016781ff0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63371da22f780e0016782060","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"633741112f780e001678219d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"633755052f780e00167823c1","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6337664b2f780e0016782489","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63378f1513e4680016ded21d","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6337981213e4680016ded28e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6338c523b155890016f14e30","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":true,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6338e14cb155890016f14f5a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6338e779b155890016f14f9d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"633a4fea7092f500162ba39f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"633b30fea879160016870ad8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"633b3870a879160016870b23","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"633b3d06a879160016870b56","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"633b88cba879160016870b7a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"633ba60fa879160016870ba6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"633ca20c27f64200166d1c9b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"633ce2bf27f64200166d1d67","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"633cf2a127f64200166d1d86","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"633e2efd01dbf300161fd746","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"633e403901dbf300161fd822","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6346eb293effec0016b18e69","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6347b51a3e1e6f00163567db","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6348320d3e1e6f0016356929","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63486b443e1e6f0016356af2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6348974f3e1e6f0016356c33","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6349aaef486acb001651f2fa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"634d8c4c49027f001602ce0e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"634eedb607da57001612949f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"634f0bff07da570016129857","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6351a3b4a4daa1001690e68b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6351a9f2a4daa1001690e708","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6352c41d110d8a00163ba9ab","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6353173d110d8a00163bab5b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6356a930e918310016eebf72","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6356cbc3e918310016eec137","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6357eae32081da0016ec2648","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"635803de2081da0016ec2717","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63585b6e2081da0016ec28d5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63596e0dfd58f200166ed066","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"635afa68a8bb500016949063","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"635bd9074d49790016f876f9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"635bf5244d49790016f87740","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"635fddce09eb180016b63fbf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"635ff27009eb180016b64062","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"635ffc7d09eb180016b640b0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6360050d09eb180016b640da","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63600d1a09eb180016b6411b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6360765b09eb180016b643dc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63607b6f09eb180016b643e2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"636084f409eb180016b644ad","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6360853309eb180016b644b1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6360f22c3257cf0016b99589","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6361427e3257cf0016b995bc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6361586b3257cf0016b99623","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63616d563257cf0016b99699","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63616e443257cf0016b996b1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6361806d3257cf0016b9981f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"636196ad3257cf0016b99933","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6361d7da3257cf0016b999f5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63631345a9b1800016ffafdb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"636313a0a9b1800016ffafdc","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63632938a9b1800016ffb02d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63640ca5c6fd290016b34199","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63645b66c6fd290016b34257","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63651a3e0f2d4e0016355883","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6365285c0f2d4e00163558a8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63686c1df0b55b00168fd28f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63692923c69493000805c117","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63693e908985940008b1af28","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"636a6bdefc547c0008a5204d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"636ab98af17df900166c67d3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"636adbcaf17df900166c68bd","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"636d095ef926b300080675d6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"636d6f204b08430008581d1d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"637275bffa94a40009390fec","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6374013ba56342000803565b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63769b5a7bcd8f0008cef141","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"637bb726e5b19f0008275f22","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"637bd232501b4b0008620a9b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"637e8f16e9d7c500093455c4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"637ea65b0818a300086226eb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"637eb2739be9ad0008b29f98","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"637ec59899adec000830a4d2","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"637ec9016d51e6000884ccfa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"5fa4fd556165da00172b0ab0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"637ed0f1f04a820008c7a115","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6381099c795bf400089a6a8d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"638143333bc5b5000898b5d6","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6381472ce7c4bd0008df9f3d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6384d592e85bac000843e6f6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6384e1d878ab5000080b9e5d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6384eac3b3965c000894cd24","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6384f0734b92c30009ebfb56","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6384fccdebc2750008ceb9ff","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63850b070d9e3700088aada8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63857fb5fc75f100080752d9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63862b7db4b00b000895044a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63863679120ea10008d2e704","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63868f9add69330008213a3d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"638696320c87c60008fe51c4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"638773762971ab0008352498","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"638779aea6851d0008d022cf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63877abaa6851d0008d022e9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"638785814c999600081b913e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6387bc154c2d150008d7f6e3","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6387c98ee6cbe300085b52bb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6387d1fe5d32f90008889d4a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6387d7dcc8ec3f00083e4d1f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6387e30717aeab000888ba03","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6387e4d048c4c900085c6028","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6387ffe9625db40008c69253","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6388095d9be8a8000995d5f9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63880f98b35ec50008403c64","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6388170d609034000807aa7c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6388c68f5a235600087a9aac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"638a2c86893bdc0008b1d23e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"638e03988e4cf100082b9d92","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"638e1244a5f5fa00088a039a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"638e2963ec7642000811988a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"638e376b1f1e36000890f1f3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"638e42111f1e36000890f209","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"638e467b22bdc500085eebd9","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"639213c08fd5f50008f6aa56","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6392adeafdfd820008bd2b61","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63935da8e2fbae0008717dee","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63e80813dea1e00008ded0e8","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63e80c23d5af6a0008cd5f73","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63e80fb191c316000862c09b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63e8155f0faac4000817bd05","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63e81a0d4524c800083c0b1e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63d697c92fcce500099de6a4","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63d6038115b1e200087998e3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63d95de9dfacb700087f7faf","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63d889812d2c2900082d1db1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63d94c9721f9ba00084c299d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63d876baa6667400085459fa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63cf0ae12611be000867e666","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63e919876ec59b00082944ef","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63e92820e324370008390bbb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"63e9302c873e1f00087262a9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63e934b749d9800008456b2f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63ebbcdbbe073b0008573f15","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63ebc2d060f68e0008b2fadd","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63ebd9f58cbb340008071742","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63b86aeee8931800086084f1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"63ed27c139357f000880a287","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f28c3576520d0008b20ad3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63f294a46e66200008a979db","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f2c90ac7fc940008d82954","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f2d13041118100082743c7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63f3c9eebfd4390008193563","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f3ce9327dd9a000862ed8c","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f3d56d2673980008f11cb0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63f563458e991200087e0b40","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f569fd3049310008260a0d","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63e57dd30fa62e000871cafd","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6403bed27595340009cbd6fc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6403c4843f87c70008fe6ee8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6403cb948ecf520008828bfb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64040175ba07c600080e04ff","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64054d118318150008ec84e9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64066c715a00f70008778ed3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"644eb698547d570008653f29","bipoc-led":true,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63a507d39056250008600f41","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63ab793bddb5880008c3be67","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63afca3b12ca730008429b8d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63b058559f57de00086502d4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63b05e62cad54d00086aae0c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63b0602d1b5dfe00084df5e5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63b063e31b5dfe00084df5f5","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63b0672aeafe7a000831b705","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63c82c0e81b91f00089de344","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63d3f9746de85300084da988","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6408b30b185ecb0008592e41","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"644a962cf4ca4e0008d15638","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"644a9abd3cb51c0008c7d04d","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"644aa23d7b3c6e0008a7c6d0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"644ab187a35d41000845d292","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"644ac097b53dc7000820ac92","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"644ea4c05aeb850008155852","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"644eb0c59ea38d0008b7737b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"644f2256fafe6800084da13d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63d82cf099a62c000834d228","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63d83cf3a24e6b0008f16d23","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"63d870a3a1c4280008316082","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63d8b954d80ea40008e8c388","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63d9d68e70960e00084db630","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63ee8586107d440008fce2d3","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f03ea6f297b400081754f8","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"63f3ec1057ad3700083a32f4","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f40b11b27c56000816425b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f54e6ac924c700085711a9","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f6b743a43719000888f024","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f7e39a36c25b0008608497","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f8fa67b5fe81000806dc89","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63f935e341f02b0008bf1786","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63fadb193d28b70008345d15","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63fb8c5e5ff38c000851804e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63fbef601c0bfe0008c7b746","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63fd1ef9f3f3cd0008aff174","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63fda470ae25e60008afdb4a","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63fe58edd37be7000866b67f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63fe8b6138ea840008fc68fb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63fe8d711b813600089e757d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"63fe8e5c38ea840008fc6913","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63fe8eb31b813600089e7580","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63fe98efdcdf9900086220b2","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"63fea34612c39500087021a1","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63fed341d2d36c000823e2e1","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"63feec4006d7ae0008c722aa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":true,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"63ff8a8c64f71800088fc448","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6400f46b3504f9000800f88e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6400fc2bdd32880008611415","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"640109e15f829e000843e5fc","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64012ec706b2e90008aaf77f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64013954c456a10008a27f22","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"640156ca6d168c0008468a0d","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6401585558caa80008a3aa25","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"640262137871ec00088a210a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6407704ab3396100088431fa","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"640787521741ae00084de6e1","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6408e04fb3ea4500087f5492","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"640900aaf5f5c80008662c4f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"640a42752af1d40008a0cc7f","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"640a61f88794fe0008c9c953","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6410b9ba7527190008972df6","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64297b88253eb5000835e92e","bipoc-led":true,"black-led":null,"bipoc-comm":true,"immigrant-led":null,"immigrant-comm":null,"asylum-seekers":null,"resettled-refugees":null,"trans-led":null,"trans-comm":true,"trans-youth-focus":null,"trans-masc":null,"trans-fem":null,"gender-nc":null,"lgbtq-youth-focus":null,"spanish-speakers":null,"hiv-comm":false},{"legacyId":"6410d6f185694d0008a9baf0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"641145f490a39800082fa63b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6412212460e9a50008553f80","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6415bfc5f1f7e50008fac1c0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64161f22caefd800085e3b3c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6418be315099fd000876e9a7","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6418ce199d604500087aa97b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"641b775537a693000886ee4d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6420acc927c53d000889d001","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6420fc512182240008269243","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6421df3f6ec2c60008cd0795","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64237a98c922630008ee7cc3","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"642457cba77d090008930726","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"64247c304e001d00085c3f83","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"642483e5a8391d0008de7280","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"64248ed09fa7f70008b06a1f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"642498c61630240008efaee8","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6424a45466ebde0008660476","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6426133d6d560c000882c24f","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64276b8889905d0008b87621","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"642b35d40865660008a2f064","bipoc-led":null,"black-led":null,"bipoc-comm":null,"immigrant-led":null,"immigrant-comm":null,"asylum-seekers":null,"resettled-refugees":null,"trans-led":null,"trans-comm":null,"trans-youth-focus":null,"trans-masc":null,"trans-fem":null,"gender-nc":null,"lgbtq-youth-focus":null,"spanish-speakers":null,"hiv-comm":true},{"legacyId":"642ba888700ab10008745aa7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"642dd2b04f6fb20008035187","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"642ded73a7bf210008b9b415","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"643062c02affdb0008d5aa1a","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6435844a8730800008036184","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6435e674a7f46800088afbb3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6438219aa1691e0008fd9f8c","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6439b52ea8cb040009e916fb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"643aaba4b4769400089d8456","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"643ac384b0bcae000833f695","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"643ee7850b36a20007b30a83","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64402422e1db9b00087bab39","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"644045a01d11000007378053","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"64404d9dfecc2c000873a663","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6440c638094b3300087473fd","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6442fb4714493700089b16c8","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6443012fa5c4b30008dc8634","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"644309fba157de0008b2535e","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6443b68ae13f4800080c01db","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6443bc8d4b9de70008e520b0","bipoc-led":null,"black-led":null,"bipoc-comm":null,"immigrant-led":null,"immigrant-comm":null,"asylum-seekers":null,"resettled-refugees":null,"trans-led":null,"trans-comm":null,"trans-youth-focus":null,"trans-masc":null,"trans-fem":null,"gender-nc":null,"lgbtq-youth-focus":true,"spanish-speakers":null,"hiv-comm":null},{"legacyId":"64442b58abe5a80008c3cdd5","bipoc-led":false,"black-led":null,"bipoc-comm":true,"immigrant-led":null,"immigrant-comm":null,"asylum-seekers":null,"resettled-refugees":null,"trans-led":null,"trans-comm":null,"trans-youth-focus":null,"trans-masc":null,"trans-fem":null,"gender-nc":null,"lgbtq-youth-focus":null,"spanish-speakers":null,"hiv-comm":null},{"legacyId":"6446ca2d49fc1e00080681b9","bipoc-led":null,"black-led":null,"bipoc-comm":null,"immigrant-led":null,"immigrant-comm":null,"asylum-seekers":null,"resettled-refugees":null,"trans-led":null,"trans-comm":true,"trans-youth-focus":true,"trans-masc":null,"trans-fem":null,"gender-nc":true,"lgbtq-youth-focus":null,"spanish-speakers":null,"hiv-comm":null},{"legacyId":"6446d1b7cbc5540008780cac","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6446df180f46420008a438af","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"644721b22c92750008c65127","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6449d994cc4b0c00089e7ec7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6457e8e50b45f20008322460","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6457ef319eff3c0008cab572","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645af55dc999420008183952","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645d2747465c3d00088d33be","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"645d31e08da8dd0008f7ab31","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645d989131864e00082bce23","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645fde49c772e1000809a0eb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"646ab84ffe8ea4000828bc44","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"646c0d3f6859ec0008a8d1dc","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"646c11a91135d2000852dece","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"646c19882d26b10008e6b82d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"646b8c7d99108e000827d7ce","bipoc-led":true,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64526cf5c4d9ca0009dc8004","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6454421e7956250008642f89","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645286eb8f07000008c0094f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645972ade492e600087e336f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645978b1f976f70008db38b3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645a5832931bd100087deb4b","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645a84a35f651a000866083b","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"645a8f80ba21100008b7a585","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"645a97a0e3b5620008102002","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645abf6323bac20008d539eb","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"645ae2b1fb6daa0008e92a24","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645c3283e46c180008ae2c91","bipoc-led":false,"black-led":true,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"645d619c9532d60008ad2a21","bipoc-led":true,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6472b0cdceae970008df552d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6472c89d28b9e000084dc664","bipoc-led":false,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6472cc7e28b9e000084dc678","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64501f093b79cf0008c0641a","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64689c739c07bb00080255d4","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6472e104bb6ca30008b5a32c","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":true,"immigrant-comm":true,"asylum-seekers":true,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6473815ad0aa2a00082caa46","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6473871601642000087dec64","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64738a7e9def260008715267","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64738f829def26000871527d","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"647398e13693080008a0e6f3","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"647401ec04b95300081ca5d0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"647405eaa98094000800feb0","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6477ed1a9455ba00084a1e7f","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":true,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":true,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"6477f6cd075f9d0008c8a8a7","bipoc-led":false,"black-led":true,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"64782c9a2b634500089d13ee","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"6478df3f8da3a800087ed313","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"6478f015c12e5e00084c8c1d","bipoc-led":false,"black-led":true,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"6479563aae987b0008338a52","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647965fd77f4e7000810bd26","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647aa9500040e6000950d4ba","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647ab09f7d16980008e355fa","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647b8eb49ae155000836c8ec","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647ba265dd750f00080a1ee7","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647ba80bdd750f00080a1ef9","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647babee1361b10008e24e31","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647be485bda56400087dff24","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647bebc1fb20bc0008080435","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647bed86fb20bc000808043c","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":true,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647bf058d7b22e00089a786f","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":true,"trans-fem":true,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":false},{"legacyId":"647d28cdc2886d00082e0314","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"647d383acd4d0d0008a379bc","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647d428e5255f6000847bd2e","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":true,"hiv-comm":true},{"legacyId":"647e0e2cda2e80000848b197","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":true},{"legacyId":"647e2c6a9de3220008019e24","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":false,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647e44d69414da0008cd5475","bipoc-led":false,"black-led":false,"bipoc-comm":false,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":true,"trans-youth-focus":true,"trans-masc":false,"trans-fem":false,"gender-nc":true,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false},{"legacyId":"647e5b77abcb3b00084fb7d7","bipoc-led":true,"black-led":false,"bipoc-comm":true,"immigrant-led":false,"immigrant-comm":false,"asylum-seekers":false,"resettled-refugees":false,"trans-led":false,"trans-comm":false,"trans-youth-focus":false,"trans-masc":false,"trans-fem":false,"gender-nc":false,"lgbtq-youth-focus":true,"spanish-speakers":false,"hiv-comm":false}] \ No newline at end of file diff --git a/packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/index.ts b/packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/index.ts new file mode 100644 index 0000000000..43135f4801 --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/index.ts @@ -0,0 +1,122 @@ +import { z } from 'zod' + +import fs from 'fs' +import path from 'path' + +import { prisma, type Prisma } from '~db/client' +import { formatMessage } from '~db/prisma/common' +import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' + +/** Define the job metadata here. */ +const jobDef: JobDef = { + jobId: '2023-07-12_2-leader-focus-attribs', + title: 'Add leader/focus attributes', + createdBy: 'Joe Karow', +} + +const Schema = z + .object({ + legacyId: z.string(), + 'bipoc-led': z.boolean().nullish(), + 'black-led': z.boolean().nullish(), + 'bipoc-comm': z.boolean().nullish(), + 'immigrant-led': z.boolean().nullish(), + 'immigrant-comm': z.boolean().nullish(), + 'asylum-seekers': z.boolean().nullish(), + 'resettled-refugees': z.boolean().nullish(), + 'trans-led': z.boolean().nullish(), + 'trans-comm': z.boolean().nullish(), + 'trans-youth-focus': z.boolean().nullish(), + 'trans-masc': z.boolean().nullish(), + 'trans-fem': z.boolean().nullish(), + 'gender-nc': z.boolean().nullish(), + 'lgbtq-youth-focus': z.boolean().nullish(), + 'spanish-speakers': z.boolean().nullish(), + 'hiv-comm': z.boolean().nullish(), + }) + .array() + +/** + * Job export - this variable MUST be UNIQUE + * + * Use the format `jobYYYYMMDD` and append a letter afterwards if there is already a job with this name. + * + * @example `job20230404` + * + * @example `job20230404b` + */ +export const job20230712b = { + title: `${jobDef.jobId} - ${jobDef.title}`, + task: async (_ctx, task) => { + /** + * Do not edit this part + * + * This ensures that jobs are only run once + */ + if (await jobPreRunner(jobDef, task)) { + return task.skip(`${jobDef.jobId} - Migration has already been run.`) + } + const log = (...args: Parameters) => (task.output = formatMessage(...args)) + /** + * Start defining your data migration from here. + * + * To log output, use `task.output = 'Message to log'` + * + * This will be written to `stdout` and to a log file in `/prisma/migration-logs/` + */ + + const attributes = await prisma.attribute.findMany({ + select: { tag: true, id: true }, + }) + const attributeMap = new Map(attributes.map(({ tag, id }) => [tag, id])) + + const legacyIds = await prisma.organization.findMany({ select: { id: true, legacyId: true } }) + const idMap = new Map(legacyIds.map(({ id, legacyId }) => [legacyId, id])) + + const data = Schema.parse(JSON.parse(fs.readFileSync(path.resolve(__dirname, './data.json'), 'utf-8'))) + + const batch: Prisma.OrganizationAttributeCreateManyInput[] = [] + const exceptions: typeof data = [] + + log(`Preparing batch from ${data.length} spreadsheet rows.`) + for (const item of data) { + const { legacyId, ...tags } = item + const id = idMap.get(legacyId) + if (!id) { + exceptions.push(item) + continue + } + + for (const [tag, value] of Object.entries(tags)) { + const attributeId = attributeMap.get(tag) + if (attributeId && value) { + batch.push({ attributeId, organizationId: id }) + } + } + } + + log(`Preparation complete. Records to submit: ${batch.length}. Exceptions: ${exceptions.length}.`) + + const result = await prisma.organizationAttribute.createMany({ data: batch, skipDuplicates: true }) + + log( + `Records successfully created: ${result.count}. Skipped due to potential duplication: ${ + batch.length - result.count + }` + ) + + if (exceptions.length) { + const exceptionsFile = path.resolve(__dirname, './!exceptions.json') + fs.writeFileSync(exceptionsFile, JSON.stringify(exceptions)) + log(`${exceptions.length} exceptions written to ${exceptionsFile}`) + } + + /** + * DO NOT REMOVE BELOW + * + * This writes a record to the DB to register that this migration has run successfully. + */ + await jobPostRunner(jobDef) + }, +} satisfies ListrJob diff --git a/packages/db/prisma/data-migrations/index.ts b/packages/db/prisma/data-migrations/index.ts index b60bbf772c..a7290c7e99 100644 --- a/packages/db/prisma/data-migrations/index.ts +++ b/packages/db/prisma/data-migrations/index.ts @@ -34,4 +34,5 @@ export * from './2023-06-21_update-sourceid' export * from './2023-06-26_active-country' export * from './2023-06-27_add-crowdin-ids/index' export * from './2023-07-12_1-add-remote-tags/index' +export * from './2023-07-12_2-leader-focus-attribs/index' // codegen:end From 2e867106c9d57d2c294205e124ab34849cf27c7d Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Thu, 13 Jul 2023 13:39:21 -0400 Subject: [PATCH 64/66] data migration: attributes/service tags --- .../!types.ts | 121 ++++++++++++ .../index.ts | 182 ++++++++++++++++++ .../orgAttributes.json | 1 + .../servAttributes.json | 1 + .../serviceTags.json | 1 + packages/db/prisma/data-migrations/index.ts | 1 + 6 files changed, 307 insertions(+) create mode 100644 packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/!types.ts create mode 100644 packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/index.ts create mode 100644 packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/orgAttributes.json create mode 100644 packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/servAttributes.json create mode 100644 packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/serviceTags.json diff --git a/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/!types.ts b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/!types.ts new file mode 100644 index 0000000000..83eb74b0ea --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/!types.ts @@ -0,0 +1,121 @@ +import { z } from 'zod' + +export const OrgAttributesSchema = z.object({ + 'private-practice': z.array( + z.object({ + legacyId: z.string(), + }) + ), + 'religiously-affiliated': z.array( + z.object({ + legacyId: z.string(), + }) + ), + + 'women-led': z.array( + z.object({ + legacyId: z.string(), + }) + ), +}) +export const ServAttributesSchema = z.object({ + 'caregivers-focus': z.array( + z.object({ + legacyId: z.string(), + legacyServiceId: z.string(), + }) + ), + 'disabled-focus': z.array( + z.object({ + legacyId: z.string(), + legacyServiceId: z.string(), + }) + ), + 'elder-focus': z.array( + z.object({ + legacyId: z.string(), + legacyServiceId: z.string(), + }) + ), + 'incarcerated-focus': z.array( + z.object({ + legacyId: z.string(), + legacyServiceId: z.string(), + }) + ), + 'women-focus': z.array( + z.object({ + legacyId: z.string(), + legacyServiceId: z.string(), + }) + ), +}) +export const ServiceTagsSchema = z.object({ + 'community-support.community-social-groups': z.array( + z.object({ + legacyId: z.string(), + legacyServiceId: z.string(), + }) + ), + 'community-support.reentry-services': z.array( + z.object({ + legacyId: z.string(), + legacyServiceId: z.string(), + }) + ), + 'sports-and-entertainment.art-music-literature': z.array( + z.object({ + legacyId: z.string(), + legacyServiceId: z.string(), + }) + ), +}) + +// Generated by https://quicktype.io + +export interface Attributes { + 'caregivers-focus': { + legacyId: string + legacyServiceId: null | string + }[] + 'disabled-focus': { + legacyId: string + legacyServiceId: null | string + }[] + 'elder-focus': { + legacyId: string + legacyServiceId: null | string + }[] + 'incarcerated-focus': { + legacyId: string + legacyServiceId: null | string + }[] + 'offers-remote-services': { + legacyId: string + legacyServiceId: null | string + }[] + 'private-practice': { legacyId: string }[] + 'religiously-affiliated': { legacyId: string }[] + 'women-focus': { + legacyId: string + legacyServiceId: null | string + }[] + 'women-led': { legacyId: string }[] +} + +// Generated by https://quicktype.io + +export interface ServiceTags { + 'community-support.community-social-groups': { + legacyId: string + legacyServiceId: string + }[] + 'community-support.reentry-services': { + legacyId: string + legacyServiceId: string + }[] + 'sports-and-entertainment.art-music-literature': { + legacyId: string + legacyServiceId: string + }[] +} diff --git a/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/index.ts b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/index.ts new file mode 100644 index 0000000000..ac35b17cb2 --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/index.ts @@ -0,0 +1,182 @@ +import fs from 'fs' +import path from 'path' + +import { prisma, type Prisma } from '~db/client' +import { formatMessage } from '~db/prisma/common' +import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' + +import { OrgAttributesSchema, ServAttributesSchema, ServiceTagsSchema } from './!types' + +/** Define the job metadata here. */ +const jobDef: JobDef = { + jobId: '2023-07-12_3-update-tags-attributes', + title: 'Add tags & attributes', + createdBy: 'Joe Karow', +} +/** + * Job export - this variable MUST be UNIQUE + * + * Use the format `jobYYYYMMDD` and append a letter afterwards if there is already a job with this name. + * + * @example `job20230404` + * + * @example `job20230404b` + */ +export const job20230712c = { + title: `${jobDef.jobId} - ${jobDef.title}`, + task: async (_ctx, task) => { + /** + * Do not edit this part + * + * This ensures that jobs are only run once + */ + if (await jobPreRunner(jobDef, task)) { + return task.skip(`${jobDef.jobId} - Migration has already been run.`) + } + const log = (...args: Parameters) => (task.output = formatMessage(...args)) + /** + * Start defining your data migration from here. + * + * To log output, use `task.output = 'Message to log'` + * + * This will be written to `stdout` and to a log file in `/prisma/migration-logs/` + */ + const attributes = await prisma.attribute.findMany({ + select: { tag: true, id: true }, + }) + const serviceTags = await prisma.serviceTag.findMany({ + select: { tsKey: true, id: true }, + }) + const legacyOrgIds = await prisma.organization.findMany({ select: { id: true, legacyId: true } }) + const legacyServiceIds = await prisma.orgService.findMany({ + select: { id: true, legacyId: true }, + }) + + const attributeMap = new Map(attributes.map(({ tag, id }) => [tag, id])) + const serviceTagMap = new Map(serviceTags.map(({ tsKey, id }) => [tsKey, id])) + const orgIdMap = new Map(legacyOrgIds.map(({ id, legacyId }) => [legacyId, id])) + const serviceIdMap = new Map(legacyServiceIds.map(({ id, legacyId }) => [legacyId, id])) + + const orgAttributeData = OrgAttributesSchema.parse( + JSON.parse(fs.readFileSync(path.resolve(__dirname, './orgAttributes.json'), 'utf-8')) + ) + const servAttributeData = ServAttributesSchema.parse( + JSON.parse(fs.readFileSync(path.resolve(__dirname, './servAttributes.json'), 'utf-8')) + ) + const serviceTagData = ServiceTagsSchema.parse( + JSON.parse(fs.readFileSync(path.resolve(__dirname, './serviceTags.json'), 'utf-8')) + ) + + const batch: Batches = { + orgServiceTag: [], + serviceAttribute: [], + organizationAttribute: [], + } + const exceptions: Record< + 'orgServiceTag' | 'serviceAttribute' | 'organizationAttribute', + Record[] + > = { + orgServiceTag: [], + serviceAttribute: [], + organizationAttribute: [], + } + for (const [attribute, records] of Object.entries(orgAttributeData)) { + const attributeId = attributeMap.get(attribute) + if (!attributeId) throw new Error(`Cannot map attributeId for ${attribute}`) + log(`Preparing Organization Attribute batch for ${attribute} (${records.length} items)`) + for (const { legacyId } of records) { + const organizationId = orgIdMap.get(legacyId) + if (!organizationId) { + exceptions.organizationAttribute.push({ attribute, legacyId }) + continue + } + batch.organizationAttribute.push({ attributeId, organizationId }) + } + } + for (const [attribute, records] of Object.entries(servAttributeData)) { + const attributeId = attributeMap.get(attribute) + if (!attributeId) throw new Error(`Cannot map attributeId for ${attribute}`) + log(`Preparing Service Attribute batch for ${attribute} (${records.length} items)`) + for (const { legacyId, legacyServiceId } of records) { + const orgServiceId = serviceIdMap.get(legacyServiceId) + if (!orgServiceId) { + exceptions.serviceAttribute.push({ attribute, legacyId, legacyServiceId }) + continue + } + batch.serviceAttribute.push({ attributeId, orgServiceId }) + } + } + for (const [tag, records] of Object.entries(serviceTagData)) { + const tagId = serviceTagMap.get(tag) + if (!tagId) throw new Error(`Cannot map id for ${tag}`) + log(`Preparing Service Tag batch for ${tag} (${records.length} items)`) + for (const { legacyId, legacyServiceId } of records) { + const serviceId = serviceIdMap.get(legacyServiceId) + if (!serviceId) { + exceptions.orgServiceTag.push({ tag, legacyId, legacyServiceId }) + continue + } + batch.orgServiceTag.push({ serviceId, tagId }) + } + } + + const orgAttributeResult = await prisma.organizationAttribute.createMany({ + data: batch.organizationAttribute, + skipDuplicates: true, + }) + log( + `Organization Attribute records successfully created: ${ + orgAttributeResult.count + }. Skipped due to potential duplication: ${ + batch.organizationAttribute.length - orgAttributeResult.count + }` + ) + const servAttributeResult = await prisma.serviceAttribute.createMany({ + data: batch.serviceAttribute, + skipDuplicates: true, + }) + log( + `Service Attribute records successfully created: ${ + servAttributeResult.count + }. Skipped due to potential duplication: ${batch.serviceAttribute.length - servAttributeResult.count}` + ) + const serviceTagResult = await prisma.orgServiceTag.createMany({ + data: batch.orgServiceTag, + skipDuplicates: true, + }) + log( + `Service Tag records successfully created: ${ + serviceTagResult.count + }. Skipped due to potential duplication: ${batch.orgServiceTag.length - serviceTagResult.count}` + ) + if ( + exceptions.orgServiceTag.length || + exceptions.organizationAttribute.length || + exceptions.serviceAttribute.length + ) { + const filename = path.resolve(__dirname, `./!exceptions.json`) + fs.writeFileSync(filename, JSON.stringify(exceptions)) + log( + `${ + exceptions.orgServiceTag.length + + exceptions.organizationAttribute.length + + exceptions.serviceAttribute.length + } exceptions written to ${filename}` + ) + } + + /** + * DO NOT REMOVE BELOW + * + * This writes a record to the DB to register that this migration has run successfully. + */ + await jobPostRunner(jobDef) + }, +} satisfies ListrJob + +interface Batches { + orgServiceTag: Prisma.OrgServiceTagCreateManyInput[] + serviceAttribute: Prisma.ServiceAttributeCreateManyInput[] + organizationAttribute: Prisma.OrganizationAttributeCreateManyInput[] +} diff --git a/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/orgAttributes.json b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/orgAttributes.json new file mode 100644 index 0000000000..b666e31d13 --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/orgAttributes.json @@ -0,0 +1 @@ +{"private-practice":[{"legacyId":"642dd2b04f6fb20008035187"},{"legacyId":"64404d9dfecc2c000873a663"},{"legacyId":"647b8eb49ae155000836c8ec"}],"religiously-affiliated":[{"legacyId":"5e7e4bd9d54f1760921a3c03"},{"legacyId":"5f2829d731ca1700173d1d7d"},{"legacyId":"5f6ba6e454a96e001749445a"},{"legacyId":"61cbac9064fd780016ba1412"},{"legacyId":"5e7e4bdbd54f1760921a4107"},{"legacyId":"5f22ce6ac2123800177bd1bb"},{"legacyId":"60666e003627720015f2c6f0"},{"legacyId":"5eab1627136375001725df38"},{"legacyId":"5eab18bb136375001725df4a"},{"legacyId":"5ea6f6a1c3402d00170e6b7b"},{"legacyId":"5f22ccdcc2123800177bd1a7"},{"legacyId":"60d37e60c3164c0015bc271a"},{"legacyId":"5e7e4be3d54f1760921a5ad5"},{"legacyId":"603eaf20652598001579b918"},{"legacyId":"5fe245f4ecdf340017278937"},{"legacyId":"5f22c5c7c2123800177bd174"},{"legacyId":"5f22c2b5c2123800177bd156"},{"legacyId":"5f22e4e5c2123800177bd1f6"},{"legacyId":"5fea6fe7a399ed001734f27b"},{"legacyId":"6192878779eff600163f07f8"},{"legacyId":"5e7e4be4d54f1760921a5d2b"},{"legacyId":"61698f406a40d100167af146"},{"legacyId":"5f22bc15c2123800177bd12d"},{"legacyId":"5f21d59fc2123800177bd08c"},{"legacyId":"5f22ba75c2123800177bd11f"},{"legacyId":"5f21d75fc2123800177bd098"},{"legacyId":"623ccc3c258927002ee0aab4"},{"legacyId":"5e7e4be3d54f1760921a5c7f"},{"legacyId":"5f5cee7a6888b50017a64bbb"},{"legacyId":"5e7e4be3d54f1760921a5a5e"},{"legacyId":"5e7e4be0d54f1760921a5154"},{"legacyId":"5e7e4bded54f1760921a4c89"},{"legacyId":"5e7e4bd9d54f1760921a3c03"},{"legacyId":"5e7e4bdad54f1760921a3f58"},{"legacyId":"5e7e4bdbd54f1760921a410e"},{"legacyId":"5e7e4bdfd54f1760921a4e0c"},{"legacyId":"5e7e4be1d54f1760921a556d"},{"legacyId":"5f428fdb8a3ba80017b2fd3e"},{"legacyId":"5f922ddb952827001723b45f"},{"legacyId":"5e7e4be1d54f1760921a54dc"},{"legacyId":"5e7e4be4d54f1760921a5d12"},{"legacyId":"5e7e4be2d54f1760921a59c4"},{"legacyId":"5ea6e7cbc3402d00170e6b54"},{"legacyId":"5ee03c7e5ea23e0017a7a8ca"},{"legacyId":"6058e2ca86a32f0015516ad5"},{"legacyId":"5f0157470a655c0017604779"},{"legacyId":"616986026a40d100167af0c2"},{"legacyId":"6170498eccbc2c0016351f79"},{"legacyId":"6185d2321cb22d001656d63c"},{"legacyId":"61be1ea814682d0016b3c68c"},{"legacyId":"61ef5f62c3f933002e0f45a4"},{"legacyId":"6360853309eb180016b644b1"},{"legacyId":"5e7e4bdcd54f1760921a466f"},{"legacyId":"5e7e4be2d54f1760921a59b7"},{"legacyId":"5ee1265f5ea23e0017a7a9b9"},{"legacyId":"611e84153d97fb00151449ab"},{"legacyId":"612706c64bec8a00154399aa"},{"legacyId":"626ddfb1d75a3c003e8b4f5c"},{"legacyId":"63e57dd30fa62e000871cafd"},{"legacyId":"5e7e4bddd54f1760921a48f9"},{"legacyId":"5e7e4bdad54f1760921a3efa"},{"legacyId":"5e7e4bdbd54f1760921a3ff2"},{"legacyId":"5e7e4bddd54f1760921a481c"},{"legacyId":"5e7e4bded54f1760921a4aee"},{"legacyId":"5f4963a91fe664001772b397"},{"legacyId":"5f63c0b07d66130017e791eb"},{"legacyId":"61bb680f8bdf9200166360b0"},{"legacyId":"61bfb3eaaad49700168928cd"},{"legacyId":"61dce0a46ea795002e0f0e5a"},{"legacyId":"62053f90b14d39002e6035b2"},{"legacyId":"628653e9e6b765002e447573"},{"legacyId":"63f40b11b27c56000816425b"},{"legacyId":"6457ef319eff3c0008cab572"},{"legacyId":"6421df3f6ec2c60008cd0795"}],"women-led":[{"legacyId":"61f4050b90fcea002e251513"},{"legacyId":"5feb8982ba25520017306fb9"},{"legacyId":"62479193ec8892002ebce973"},{"legacyId":"62602176901c7b003e5daf69"},{"legacyId":"6269b4f526e77e003e070367"},{"legacyId":"62b9ecd3685bb00016bf0d50"},{"legacyId":"644eb0c59ea38d0008b7737b"},{"legacyId":"644eb698547d570008653f29"},{"legacyId":"64054d118318150008ec84e9"},{"legacyId":"63fe8e5c38ea840008fc6913"},{"legacyId":"6407704ab3396100088431fa"},{"legacyId":"645d31e08da8dd0008f7ab3"},{"legacyId":"6435e674a7f46800088afbb3"},{"legacyId":"6438219aa1691e0008fd9f8c"},{"legacyId":"6440c638094b3300087473fd"},{"legacyId":"644309fba157de0008b2535e"},{"legacyId":"646c0d3f6859ec0008a8d1dc"},{"legacyId":"60c2451cbe6d980015459643"},{"legacyId":"645978b1f976f70008db38b3"},{"legacyId":"6472b0cdceae970008df552d"},{"legacyId":"647bebc1fb20bc0008080435"},{"legacyId":"647bed86fb20bc000808043c"}]} \ No newline at end of file diff --git a/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/servAttributes.json b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/servAttributes.json new file mode 100644 index 0000000000..c42d2f9d70 --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/servAttributes.json @@ -0,0 +1 @@ +{"caregivers-focus":[{"legacyId":"644ac097b53dc7000820ac92","legacyServiceId":"644ac117b53dc7000820ac93"},{"legacyId":"5e7e4bded54f1760921a4aa7","legacyServiceId":"6313c5202de419001629c8db"},{"legacyId":"62d1b578e7dfb1001682579a","legacyServiceId":"62d1bc05e7dfb100168257b1"},{"legacyId":"644a962cf4ca4e0008d15638","legacyServiceId":"644a97273cb51c0008c7d03d"},{"legacyId":"644a962cf4ca4e0008d15638","legacyServiceId":"644a98983cb51c0008c7d044"},{"legacyId":"640262137871ec00088a210a","legacyServiceId":"6402633bf6f7e700082a832b"},{"legacyId":"5f6b8cd154a96e0017494375","legacyServiceId":"5f6b8f6d54a96e00174943cb"},{"legacyId":"5e7e4bded54f1760921a4b04","legacyServiceId":"5e7e4bded54f1760921a4b0b"},{"legacyId":"6446df180f46420008a438af","legacyServiceId":"6446e47c0f46420008a438d7"},{"legacyId":"644a9abd3cb51c0008c7d04d","legacyServiceId":"644a9bd23cb51c0008c7d05a"},{"legacyId":"644a9abd3cb51c0008c7d04d","legacyServiceId":"644a9cf8c863a90008747e9d"},{"legacyId":"644a9abd3cb51c0008c7d04d","legacyServiceId":"644a9dfe3188610008b9d993"},{"legacyId":"644a9abd3cb51c0008c7d04d","legacyServiceId":"644a9eb63cb51c0008c7d070"},{"legacyId":"644a9abd3cb51c0008c7d04d","legacyServiceId":"644a9f0abc20670009245709"},{"legacyId":"5f6bbcc354a96e00174944ff","legacyServiceId":"5f6bbd4554a96e0017494500"},{"legacyId":"61ef0e52c3f933002e0f4550","legacyServiceId":"61ef128bc3f933002e0f4558"},{"legacyId":"6226e0cfc68a07002e41399f","legacyServiceId":"6226e24ec68a07002e4139c3"},{"legacyId":"6227692a19c0b4002e5b5e32","legacyServiceId":"63e6b48337b1200008a8a7bd"},{"legacyId":"626c6027c8625a003e42fd89","legacyServiceId":"626c636bc8625a003e42fdba"},{"legacyId":"62865134e6b765002e44756b","legacyServiceId":"644c4950c3fc0200086c02dc"},{"legacyId":"628d251b0fdd51002e0ffc7a","legacyServiceId":"628e62497b6a85002e7f7983"},{"legacyId":"629e2f3e2438c3003e58ee4e","legacyServiceId":"644d71c352196f0008623667"},{"legacyId":"629f6a3a553d8b002edb755f","legacyServiceId":"643878050ad1a90008d6d7fc"},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9f2d8685bb00016bf0e3e"},{"legacyId":"62b9f01f685bb00016bf0e07","legacyServiceId":"62b9f01f685bb00016bf0e07"},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"641e049446ce62000808a6db"},{"legacyId":"62e19513956c7c00165f7830","legacyServiceId":"62e19863956c7c00165f7841"},{"legacyId":"6337981213e4680016ded28e","legacyServiceId":"63379b0e13e4680016ded2a8"},{"legacyId":"635bf5244d49790016f87740","legacyServiceId":"635bfe414d49790016f87822"},{"legacyId":"6457e8e50b45f20008322460","legacyServiceId":"6457e9ac5c31de0008d9212a"},{"legacyId":"6457ef319eff3c0008cab572","legacyServiceId":"6457f03a9eff3c0008cab575"},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a88075f651a000866085b"},{"legacyId":"645af55dc999420008183952","legacyServiceId":"645af79aaf896b00084b8c11"},{"legacyId":"6420acc927c53d000889d001","legacyServiceId":"645eda22ea9565000842befd"},{"legacyId":"6420acc927c53d000889d001","legacyServiceId":"645ed983f6bea90008bde29e"},{"legacyId":"6420acc927c53d000889d001","legacyServiceId":"645edb51629fe300080ab3c2"},{"legacyId":"64237a98c922630008ee7cc3","legacyServiceId":"645faa679323940008ec689c"},{"legacyId":"64247c304e001d00085c3f83","legacyServiceId":"645fbb8cfe04ff00088d2eab"},{"legacyId":"64247c304e001d00085c3f83","legacyServiceId":"645fbdaa76be5000088d9fac"},{"legacyId":"642498c61630240008efaee8","legacyServiceId":"645fcf1cd3937000083bce8c"},{"legacyId":"642498c61630240008efaee8","legacyServiceId":"645fce1dd3937000083bce8b"},{"legacyId":"642ba888700ab10008745aa7","legacyServiceId":"645fd7de040ed80008283732"},{"legacyId":"6435e674a7f46800088afbb3","legacyServiceId":"6435eb8d801a9900088da217"},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"643ad05cc30bf50008a481f1"},{"legacyId":"644045a01d11000007378053","legacyServiceId":"646a5c9b755a4d0008bfb561"},{"legacyId":"644045a01d11000007378053","legacyServiceId":"646a5db42954bd00086f098d"},{"legacyId":"646ab84ffe8ea4000828bc44","legacyServiceId":"646abcd31ea7000008d7cbb9"},{"legacyId":"6449d994cc4b0c00089e7ec7","legacyServiceId":"644c39d6526f60000851d4f6"},{"legacyId":"645d619c9532d60008ad2a21","legacyServiceId":"6472a27e1eb1a400082649a1"},{"legacyId":"6472b0cdceae970008df552d","legacyServiceId":"6472b32eab43e600085a1570"},{"legacyId":"647398e13693080008a0e6f3","legacyServiceId":"647399813693080008a0e6f4"},{"legacyId":"647e44d69414da0008cd5475","legacyServiceId":"647e45579414da0008cd547b"}],"disabled-focus":[{"legacyId":"61f6c51fc0528f003e830c8b","legacyServiceId":"61f6c70dc0528f003e830c92"},{"legacyId":"644ea4c05aeb850008155852","legacyServiceId":"644ea5dc5aeb850008155854"},{"legacyId":"63f40b11b27c56000816425b","legacyServiceId":"63f40f2db27c560008164268"},{"legacyId":"6457ef319eff3c0008cab572","legacyServiceId":"6457f1b12090cb000831e717"},{"legacyId":"645d619c9532d60008ad2a21","legacyServiceId":"6472a27e1eb1a400082649a1"}],"elder-focus":[{"legacyId":"6180a9f08faefd00160f1c6b","legacyServiceId":"63f12de26e245d0008f39020"},{"legacyId":"63e92820e324370008390bbb","legacyServiceId":"63e92908e52b8d000842e6e4"},{"legacyId":"63e92820e324370008390bbb","legacyServiceId":"63e92a8456a5000008bcd7bf"},{"legacyId":"63e92820e324370008390bbb","legacyServiceId":"63e92c9e56a5000008bcd7ca"},{"legacyId":"63e92820e324370008390bbb","legacyServiceId":"63e92e338d758c000844a006"},{"legacyId":"644a9abd3cb51c0008c7d04d","legacyServiceId":"644a9dfe3188610008b9d993"},{"legacyId":"5e7e4bdbd54f1760921a4120","legacyServiceId":"62c6cb9c690bcd00163c3318"},{"legacyId":"61eaea2c4044310031f2d3ea","legacyServiceId":"62d22dd3e7dfb100168258c3"},{"legacyId":"6227692a19c0b4002e5b5e32","legacyServiceId":"63e551e719a5940008603282"},{"legacyId":"623a0679805349002e77cf7c","legacyServiceId":"623a0b2a805349002e77cf9c"},{"legacyId":"626c6027c8625a003e42fd89","legacyServiceId":"626c636bc8625a003e42fdba"},{"legacyId":"629e2f3e2438c3003e58ee4e","legacyServiceId":"644d712db6c8db00080f2a0e"},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"641e0841f923af0008f51f39"},{"legacyId":"63d9d68e70960e00084db630","legacyServiceId":"63e6d3b589f7040008f484c0"},{"legacyId":"63f40b11b27c56000816425b","legacyServiceId":"63f40f2db27c560008164268"},{"legacyId":"64237a98c922630008ee7cc3","legacyServiceId":"645fb29cfe8a290008af6bec"},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5f7666653f9f9100173c07b5"},{"legacyId":"6449d994cc4b0c00089e7ec7","legacyServiceId":"644cad5db838730008ffab6a"},{"legacyId":"645d619c9532d60008ad2a21","legacyServiceId":"6472a6acadaf3d00093cb451"},{"legacyId":"64738f829def26000871527d","legacyServiceId":"6473935b9def26000871528c"}],"incarcerated-focus":[{"legacyId":"5fd2fa9ba2b1ae001714c088","legacyServiceId":"5fd30095a2b1ae001714c0b0"},{"legacyId":"635ff27009eb180016b64062","legacyServiceId":"635ff70e09eb180016b6408c"},{"legacyId":"5e7e4bdfd54f1760921a4e17","legacyServiceId":"5ede70a6dcbd7400170753fb"},{"legacyId":"5e7e4bdfd54f1760921a4e17","legacyServiceId":"62bdd31165e149001633ef46"},{"legacyId":"5e7e4bdfd54f1760921a4e17","legacyServiceId":"5e7e4bdfd54f1760921a4e1f"},{"legacyId":"5e7e4bddd54f1760921a4a4c","legacyServiceId":"6357f6322081da0016ec26ba"},{"legacyId":"5ed6af3286515c0017d53bac","legacyServiceId":"644acd37cd255500080897ee"},{"legacyId":"5e7e4bded54f1760921a4aa7","legacyServiceId":"644af1d69575870008585d48"},{"legacyId":"633b3870a879160016870b23","legacyServiceId":"643078152918df0008b42b48"},{"legacyId":"635ff27009eb180016b64062","legacyServiceId":"635ff70e09eb180016b6408c"},{"legacyId":"645d989131864e00082bce23","legacyServiceId":"645d9984acacb800084ed874"},{"legacyId":"645d989131864e00082bce23","legacyServiceId":"645d9b7fbe70f70008e1866a"},{"legacyId":"6477f6cd075f9d0008c8a8a7","legacyServiceId":"6477f7a3075f9d0008c8a8ac"}],"women-focus":[{"legacyId":"60da9e0b33bdd800152a37b4","legacyServiceId":"60da9e7f33bdd800152a37bb"},{"legacyId":"61a50d55f3cc6b0016f61ba5","legacyServiceId":"61a52814f3cc6b0016f61c4b"},{"legacyId":"5f4963a91fe664001772b397","legacyServiceId":"5f4965ee1fe664001772b399"},{"legacyId":"608a14eb8e7e8400159e5a1c","legacyServiceId":"608a1a9a8e7e8400159e5a60"},{"legacyId":"60b069b82f913d0015ba164e","legacyServiceId":"60b06a522f913d0015ba1651"},{"legacyId":"60b069b82f913d0015ba164e","legacyServiceId":"62d586436c0ce20016cbd432"},{"legacyId":"61f6e0f2c0528f003e830d82","legacyServiceId":"61f6ea85c0528f003e830dc4"},{"legacyId":"6226e0cfc68a07002e41399f","legacyServiceId":"6226e24ec68a07002e4139c3"},{"legacyId":"623a0679805349002e77cf7c","legacyServiceId":"623a0b2a805349002e77cf9c"},{"legacyId":"62465079c76f6c002e3761ff","legacyServiceId":"6419f43add40b600082f56d1"},{"legacyId":"62465079c76f6c002e3761ff","legacyServiceId":"6419f486269f910008b3cd59"},{"legacyId":"62465079c76f6c002e3761ff","legacyServiceId":"6419f54ce26e32000853c336"},{"legacyId":"62465079c76f6c002e3761ff","legacyServiceId":"6419f97383a8500008b157af"},{"legacyId":"624e08ba3fdca1003eeb2929","legacyServiceId":"624e1a8c3fdca1003eeb294d"},{"legacyId":"62602176901c7b003e5daf69","legacyServiceId":"626024e5901c7b003e5daf77"},{"legacyId":"62709e86ff76e9003ec5f794","legacyServiceId":"62709ff1ff76e9003ec5f79b"},{"legacyId":"62709e86ff76e9003ec5f794","legacyServiceId":"6270a1a0baa8d7003e5e08fb"},{"legacyId":"62709e86ff76e9003ec5f794","legacyServiceId":"6270a2dbbaa8d7003e5e090d"},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9f352685bb00016bf0e44"},{"legacyId":"637eb2739be9ad0008b29f98","legacyServiceId":"644de05847a0470008efd416"},{"legacyId":"644eb0c59ea38d0008b7737b","legacyServiceId":"644eb1e3477d150008187db1"},{"legacyId":"644eb0c59ea38d0008b7737b","legacyServiceId":"644eb342477d150008187db4"},{"legacyId":"63d9d68e70960e00084db630","legacyServiceId":"63e6d57d89f7040008f484ef"},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a8457b1fc7200081f966f"},{"legacyId":"640156ca6d168c0008468a0d","legacyServiceId":"640212119baa3500087c4b30"},{"legacyId":"640156ca6d168c0008468a0d","legacyServiceId":"64021098293d7400089f4202"},{"legacyId":"6407704ab3396100088431fa","legacyServiceId":"645c351eb34e9b0008ee6f9f"},{"legacyId":"6407704ab3396100088431fa","legacyServiceId":"645c35e1e46c180008ae2ca7"},{"legacyId":"6407704ab3396100088431fa","legacyServiceId":"640770c0b3396100088431fc"},{"legacyId":"645d31e08da8dd0008f7ab31","legacyServiceId":"645d348bc2b7de00080b0420"},{"legacyId":"645d31e08da8dd0008f7ab31","legacyServiceId":"645d33b5c2b7de00080b0419"},{"legacyId":"645d31e08da8dd0008f7ab31","legacyServiceId":"645d35518a6f450008b48fe9"},{"legacyId":"642ded73a7bf210008b9b415","legacyServiceId":"6461618f3c3a29000884b400"},{"legacyId":"6438219aa1691e0008fd9f8c","legacyServiceId":"6464f620ec8663000909137b"},{"legacyId":"6449d994cc4b0c00089e7ec7","legacyServiceId":"644ca9e1142e59000888084a"},{"legacyId":"644309fba157de0008b2535e","legacyServiceId":"6443129726132a000896f01c"},{"legacyId":"646c0d3f6859ec0008a8d1dc","legacyServiceId":"646c0ee4569f24000804762f"},{"legacyId":"645abf6323bac20008d539eb","legacyServiceId":"646fab73a9d363000850d4b2"},{"legacyId":"645d619c9532d60008ad2a21","legacyServiceId":"6472a27e1eb1a400082649a1"},{"legacyId":"64738f829def26000871527d","legacyServiceId":"6473912ea66cd8000839dbe3"}]} \ No newline at end of file diff --git a/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/serviceTags.json b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/serviceTags.json new file mode 100644 index 0000000000..e065512e47 --- /dev/null +++ b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/serviceTags.json @@ -0,0 +1 @@ +{"community-support.community-social-groups":[{"legacyId":"63f3ce9327dd9a000862ed8c","legacyServiceId":"63f3d0490f616e000802b447"},{"legacyId":"63ebd9f58cbb340008071742","legacyServiceId":"63ebddc9eb36840008cc0f9e"},{"legacyId":"63ed27c139357f000880a287","legacyServiceId":"63ed294939357f000880a290"},{"legacyId":"63e8155f0faac4000817bd05","legacyServiceId":"63e8163534c753000850e85a"},{"legacyId":"63e80813dea1e00008ded0e8","legacyServiceId":"63e80a7c7116c70008ef5813"},{"legacyId":"63e919876ec59b00082944ef","legacyServiceId":"63e921316c8a0600084cf1c6"},{"legacyId":"63e919876ec59b00082944ef","legacyServiceId":"63e91eb8c12ab10008a48d8e"},{"legacyId":"63f569fd3049310008260a0d","legacyServiceId":"63f56f6b8f5615000885e976"},{"legacyId":"5e7e4bd9d54f1760921a3b9e","legacyServiceId":"5ee17eaabbe7d20017459df5"},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"60c63a8808fa950015c751f4"},{"legacyId":"5e7e4bdad54f1760921a3e58","legacyServiceId":"5e7e4bdad54f1760921a3e66"},{"legacyId":"5e7e4bdad54f1760921a3e58","legacyServiceId":"6351dea3a4daa1001690e9bf"},{"legacyId":"5e7e4bdbd54f1760921a4120","legacyServiceId":"60de40bc772c7300159bb02a"},{"legacyId":"5e7e4bdbd54f1760921a4120","legacyServiceId":"5e7e4bdbd54f1760921a4142"},{"legacyId":"5e7e4bdbd54f1760921a4120","legacyServiceId":"62c6cb9c690bcd00163c3318"},{"legacyId":"5e7e4bdbd54f1760921a4277","legacyServiceId":"62c7101a690bcd00163c34e6"},{"legacyId":"5e7e4bdcd54f1760921a4468","legacyServiceId":"5e7e4bdcd54f1760921a447b"},{"legacyId":"5e7e4bdcd54f1760921a4666","legacyServiceId":"5e7e4bdcd54f1760921a4669"},{"legacyId":"5e7e4bdcd54f1760921a4678","legacyServiceId":"5e7e4bdcd54f1760921a4698"},{"legacyId":"5e7e4bded54f1760921a4b45","legacyServiceId":"5e7e4bded54f1760921a4b58"},{"legacyId":"5e7e4bded54f1760921a4b45","legacyServiceId":"5e7e4bded54f1760921a4b6b"},{"legacyId":"5e7e4bded54f1760921a4b45","legacyServiceId":"63f186867bce440008a5d834"},{"legacyId":"60a5218583625c0015a30b1e","legacyServiceId":"60a5318f83625c0015a30b36"},{"legacyId":"60a5218583625c0015a30b1e","legacyServiceId":"628ee6897b6a85002e7f7e26"},{"legacyId":"5e7e4be1d54f1760921a5721","legacyServiceId":"5e7e4be1d54f1760921a5726"},{"legacyId":"5e7e4be4d54f1760921a5d2f","legacyServiceId":"60cb6f85a3eb7a0015fcea04"},{"legacyId":"5e7e4be4d54f1760921a5d2f","legacyServiceId":"5fb5d1b8c2bf6e00177b91d9"},{"legacyId":"5f05d8f5a006e70017a6c509","legacyServiceId":"62dea4fdc69dbf00162aede1"},{"legacyId":"5f05d8f5a006e70017a6c509","legacyServiceId":"62dea406c69dbf00162aedde"},{"legacyId":"5f05d8f5a006e70017a6c509","legacyServiceId":"62dea48ac69dbf00162aede0"},{"legacyId":"5f0c711f39f3b00017b37fcb","legacyServiceId":"5f0c72c239f3b00017b37fdc"},{"legacyId":"5f0c841f39f3b00017b380a8","legacyServiceId":"5f0c848d39f3b00017b380b0"},{"legacyId":"5f0ef1ffcd6aa900171059d9","legacyServiceId":"5f0ef299cd6aa900171059da"},{"legacyId":"5f0efa4fcd6aa90017105a86","legacyServiceId":"5f0efb15cd6aa90017105a8b"},{"legacyId":"5f0efc30cd6aa90017105a94","legacyServiceId":"5f0efc79cd6aa90017105a95"},{"legacyId":"6403bed27595340009cbd6fc","legacyServiceId":"6403bfb57595340009cbd702"},{"legacyId":"5f2d6c5bc32aad0017c10cfd","legacyServiceId":"5f2d6f05c32aad0017c10d1c"},{"legacyId":"5f2d6c5bc32aad0017c10cfd","legacyServiceId":"5f2d7027c32aad0017c10d36"},{"legacyId":"6408b30b185ecb0008592e41","legacyServiceId":"6408b4a724d8a1000870c3b5"},{"legacyId":"6408b30b185ecb0008592e41","legacyServiceId":"6408b699185ecb0008592e5c"},{"legacyId":"6408b30b185ecb0008592e41","legacyServiceId":"6408b74124d8a1000870c3c2"},{"legacyId":"5f3fea16455a260017a5bbd7","legacyServiceId":"634a2233f88f5500161c74e7"},{"legacyId":"5f49092c00fe3700178e1e0b","legacyServiceId":"5f4909c200fe3700178e1e0c"},{"legacyId":"5f4963a91fe664001772b397","legacyServiceId":"5f4965ee1fe664001772b399"},{"legacyId":"5f63c0b07d66130017e791eb","legacyServiceId":"5f63c15c7d66130017e791ed"},{"legacyId":"5f69079a7791ec0017022d8e","legacyServiceId":"5f690bbd7791ec0017022dbb"},{"legacyId":"5f6baa6354a96e001749446e","legacyServiceId":"5f6baba154a96e0017494473"},{"legacyId":"5f726225fb580b00170a68c9","legacyServiceId":"5f726440fb580b00170a68d0"},{"legacyId":"5fe245f4ecdf340017278937","legacyServiceId":"6330977f6cfe5f0016a60e65"},{"legacyId":"608a14eb8e7e8400159e5a1c","legacyServiceId":"608a18918e7e8400159e5a3a"},{"legacyId":"608a14eb8e7e8400159e5a1c","legacyServiceId":"608a1a9a8e7e8400159e5a60"},{"legacyId":"608a14eb8e7e8400159e5a1c","legacyServiceId":"608a1bba8e7e8400159e5a82"},{"legacyId":"608a14eb8e7e8400159e5a1c","legacyServiceId":"608a17828e7e8400159e5a27"},{"legacyId":"608f196c24df9700158b3f4f","legacyServiceId":"608f5b0424df9700158b425b"},{"legacyId":"60901786fc37dc0015325bed","legacyServiceId":"609039e7fc37dc0015325c23"},{"legacyId":"6091ffd48e7dc300153179a8","legacyServiceId":"609205c18e7dc300153179c9"},{"legacyId":"60994647522c790015441ca2","legacyServiceId":"609953ec522c790015441caa"},{"legacyId":"6099f76955102c0015d8a207","legacyServiceId":"609b37ec55102c0015d8a485"},{"legacyId":"60a5218583625c0015a30b1e","legacyServiceId":"628ee6897b6a85002e7f7e26"},{"legacyId":"60a5218583625c0015a30b1e","legacyServiceId":"60a5318f83625c0015a30b36"},{"legacyId":"60ac39a7b493530015de7487","legacyServiceId":"60ac3a6ab493530015de74b9"},{"legacyId":"60aeed187b7f9a00150781d3","legacyServiceId":"62cf36d323b1b20016333863"},{"legacyId":"60b069b82f913d0015ba164e","legacyServiceId":"60b06a522f913d0015ba1651"},{"legacyId":"60b069b82f913d0015ba164e","legacyServiceId":"62d586436c0ce20016cbd432"},{"legacyId":"60c2d62f2914880015814167","legacyServiceId":"619a90133484880016a432c5"},{"legacyId":"60c2d62f2914880015814167","legacyServiceId":"619a91513484880016a432c7"},{"legacyId":"60c2d62f2914880015814167","legacyServiceId":"619a96913484880016a432df"},{"legacyId":"60cfb3d813a1370015c9885b","legacyServiceId":"619aef14fd4bb8001615a9fa"},{"legacyId":"60d6b3b36fe656001515a951","legacyServiceId":"60d6b44d6fe656001515a954"},{"legacyId":"60da1748f033170015a76809","legacyServiceId":"640116a4b7f1a2000869ae78"},{"legacyId":"60da1748f033170015a76809","legacyServiceId":"60dd2b54772c7300159ba903"},{"legacyId":"60da9e0b33bdd800152a37b4","legacyServiceId":"60da9e7f33bdd800152a37bb"},{"legacyId":"6105f25690f18b0015f8cf5c","legacyServiceId":"6105f3e690f18b0015f8cf65"},{"legacyId":"6105f25690f18b0015f8cf5c","legacyServiceId":"6105f51d90f18b0015f8cf6c"},{"legacyId":"612fc2d2c100d60015ca6ed2","legacyServiceId":"612fc34dc100d60015ca6ed5"},{"legacyId":"6134ca439a911e0016353f05","legacyServiceId":"6134cd559a911e0016353f23"},{"legacyId":"616731dd8ab5c700169045c3","legacyServiceId":"62874a81a7f35f002e8ba5d1"},{"legacyId":"6180a9f08faefd00160f1c6b","legacyServiceId":"6180ace98faefd00160f1c7f"},{"legacyId":"61bf8e92aad4970016892811","legacyServiceId":"61bf9dd4aad4970016892848"},{"legacyId":"61bfb3eaaad49700168928cd","legacyServiceId":"61bfb9a7aad4970016892907"},{"legacyId":"61ce1e10107d4400166c1f4f","legacyServiceId":"61ce2865107d4400166c1f53"},{"legacyId":"61ce9f8d107d4400166c1f76","legacyServiceId":"61cea075107d4400166c1f79"},{"legacyId":"643062c02affdb0008d5aa1a","legacyServiceId":"6430632e67d9d70008b62d00"},{"legacyId":"61cf2cfc6c6bfb0016dcc1f3","legacyServiceId":"61cf3c476c6bfb0016dcc204"},{"legacyId":"61eaea2c4044310031f2d3ea","legacyServiceId":"62d22ea5e7dfb100168258cb"},{"legacyId":"61f6c51fc0528f003e830c8b","legacyServiceId":"62acd717d0f7c900164b9f6f"},{"legacyId":"61f6e0f2c0528f003e830d82","legacyServiceId":"61f6ea85c0528f003e830dc4"},{"legacyId":"61f6e0f2c0528f003e830d82","legacyServiceId":"61f6ec4bc0528f003e830de7"},{"legacyId":"623a0679805349002e77cf7c","legacyServiceId":"623a0b2a805349002e77cf9c"},{"legacyId":"623d10fcedddbc002e92fded","legacyServiceId":"623d13b9edddbc002e92fdfc"},{"legacyId":"623fe3356386090030da9a1f","legacyServiceId":"623fe50e6386090030da9a2f"},{"legacyId":"62435a2c38d0db002ec3fa6b","legacyServiceId":"62435fd038d0db002ec3fa84"},{"legacyId":"625098d00b612c002ed3ef6c","legacyServiceId":"6250a9410b612c002ed3efb4"},{"legacyId":"626c6027c8625a003e42fd89","legacyServiceId":"626c6512c8625a003e42fdd8"},{"legacyId":"62864ed1e6b765002e447561","legacyServiceId":"6286581de6b765002e447586"},{"legacyId":"62864ed1e6b765002e447561","legacyServiceId":"62865dd1e6b765002e447594"},{"legacyId":"62865134e6b765002e44756b","legacyServiceId":"6287b799a7f35f002e8ba829"},{"legacyId":"628653e9e6b765002e447573","legacyServiceId":"6287b8fca7f35f002e8ba82e"},{"legacyId":"628d251b0fdd51002e0ffc7a","legacyServiceId":"628e646b7b6a85002e7f79a5"},{"legacyId":"629514e47416cd002e4e201b","legacyServiceId":"629516497416cd002e4e2024"},{"legacyId":"6296d80db42059002e706d77","legacyServiceId":"6296d97fb42059002e706d7d"},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9f2d8685bb00016bf0e3e"},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9f0cd685bb00016bf0e1d"},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9f186685bb00016bf0e25"},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9f258685bb00016bf0e2f"},{"legacyId":"62b9ecd3685bb00016bf0d50","legacyServiceId":"62b9f352685bb00016bf0e44"},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"641e0841f923af0008f51f39"},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"642f1b6ede7e0b0008b4936e"},{"legacyId":"6115819112b01400158515bb","legacyServiceId":"644d841b69951b0008a9c72f"},{"legacyId":"62f41c6a8e1e4500160cd8a7","legacyServiceId":"62f50df8253d81001679427d"},{"legacyId":"630ff265dd2c2e001608c6b3","legacyServiceId":"630ffa1bdd2c2e001608c6d3"},{"legacyId":"630ff265dd2c2e001608c6b3","legacyServiceId":"630ffc45dd2c2e001608c6d5"},{"legacyId":"630ff265dd2c2e001608c6b3","legacyServiceId":"630fffa3dd2c2e001608c6e5"},{"legacyId":"6348974f3e1e6f0016356c33","legacyServiceId":"6348ab5f486acb001651f166"},{"legacyId":"635bd9074d49790016f876f9","legacyServiceId":"635bda704d49790016f876ff"},{"legacyId":"638e467b22bdc500085eebd9","legacyServiceId":"638e4e161d6a1a0008f995f2"},{"legacyId":"638e467b22bdc500085eebd9","legacyServiceId":"638e50e837247700085837d9"},{"legacyId":"644eb0c59ea38d0008b7737b","legacyServiceId":"644eb1e3477d150008187db1"},{"legacyId":"63f54e6ac924c700085711a9","legacyServiceId":"63f54f78c834ec00086af1c2"},{"legacyId":"640156ca6d168c0008468a0d","legacyServiceId":"64021098293d7400089f4202"},{"legacyId":"63f8fa67b5fe81000806dc89","legacyServiceId":"63f8fe31b5fe81000806dc92"},{"legacyId":"63f6b743a43719000888f024","legacyServiceId":"63f6b8788fe2ca00080f969e"},{"legacyId":"63ff8a8c64f71800088fc448","legacyServiceId":"63ff8b12d7a1940008687e30"},{"legacyId":"6457e8e50b45f20008322460","legacyServiceId":"6457e9ac5c31de0008d9212a"},{"legacyId":"63fb8c5e5ff38c000851804e","legacyServiceId":"63fbecb5ad99e200086dd433"},{"legacyId":"63fb8c5e5ff38c000851804e","legacyServiceId":"63fb8fbe35172b00097d5777"},{"legacyId":"63fb8c5e5ff38c000851804e","legacyServiceId":"63fbea30ad99e200086dd416"},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a88efe893c700082cbc5e"},{"legacyId":"63fe8e5c38ea840008fc6913","legacyServiceId":"645a8a6ad46dad0008f97304"},{"legacyId":"63fe8eb31b813600089e7580","legacyServiceId":"63fe903f2de92800087ff737"},{"legacyId":"63fe8eb31b813600089e7580","legacyServiceId":"63fe9013b1e9880008bbd069"},{"legacyId":"63fe8eb31b813600089e7580","legacyServiceId":"63fe902fb1e9880008bbd06a"},{"legacyId":"6400fc2bdd32880008611415","legacyServiceId":"6400fe140fca2b0008cb029b"},{"legacyId":"64012ec706b2e90008aaf77f","legacyServiceId":"64275129be795500087204a1"},{"legacyId":"640156ca6d168c0008468a0d","legacyServiceId":"640212119baa3500087c4b30"},{"legacyId":"640156ca6d168c0008468a0d","legacyServiceId":"64021098293d7400089f4202"},{"legacyId":"6401585558caa80008a3aa25","legacyServiceId":"64015915b534eb0008fe8d6e"},{"legacyId":"6407704ab3396100088431fa","legacyServiceId":"645c351eb34e9b0008ee6f9f"},{"legacyId":"6407704ab3396100088431fa","legacyServiceId":"645c35e1e46c180008ae2ca7"},{"legacyId":"645d31e08da8dd0008f7ab31","legacyServiceId":"645d348bc2b7de00080b0420"},{"legacyId":"640a42752af1d40008a0cc7f","legacyServiceId":"640d10d997ac41000888d7c8"},{"legacyId":"6418be315099fd000876e9a7","legacyServiceId":"645e74239d60c800089ee00e"},{"legacyId":"641b775537a693000886ee4d","legacyServiceId":"645ecadeaf510f0008c0e870"},{"legacyId":"64237a98c922630008ee7cc3","legacyServiceId":"645fad0153e01700088f7e5e"},{"legacyId":"64237a98c922630008ee7cc3","legacyServiceId":"645fb29cfe8a290008af6bec"},{"legacyId":"642498c61630240008efaee8","legacyServiceId":"645fcfec99ce28000870870b"},{"legacyId":"642ded73a7bf210008b9b415","legacyServiceId":"6461618f3c3a29000884b400"},{"legacyId":"6438219aa1691e0008fd9f8c","legacyServiceId":"6464f620ec8663000909137b"},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5e7e4bdad54f1760921a3cd8"},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5e7e4bdad54f1760921a3ccd"},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5e7e4bdad54f1760921a3cdb"},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5e7e4bdad54f1760921a3cca"},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5f7666653f9f9100173c07b5"},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"5f7664dd3f9f9100173c0798"},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"646592474d4821000890298a"},{"legacyId":"643ac384b0bcae000833f695","legacyServiceId":"646593060284b20008a1dd40"},{"legacyId":"644045a01d11000007378053","legacyServiceId":"646a5db42954bd00086f098d"},{"legacyId":"6440c638094b3300087473fd","legacyServiceId":"646a6961d4960d0008c0003e"},{"legacyId":"6442fb4714493700089b16c8","legacyServiceId":"646a6ae1d4960d0008c00043"},{"legacyId":"6442fb4714493700089b16c8","legacyServiceId":"646a6c2bd4960d0008c0004a"},{"legacyId":"6443b68ae13f4800080c01db","legacyServiceId":"646a722a62714600084fd491"},{"legacyId":"646ab84ffe8ea4000828bc44","legacyServiceId":"646abacdfe8ea4000828bc56"},{"legacyId":"646ab84ffe8ea4000828bc44","legacyServiceId":"646abba41ea7000008d7cbb2"},{"legacyId":"646b8c7d99108e000827d7ce","legacyServiceId":"646b8e5c99108e000827d7d8"},{"legacyId":"6446d1b7cbc5540008780cac","legacyServiceId":"6446d860fe3830000823cd7b"},{"legacyId":"6446d1b7cbc5540008780cac","legacyServiceId":"646bba88a11f27000896cfdc"},{"legacyId":"6449d994cc4b0c00089e7ec7","legacyServiceId":"6449e71523e6aa00086ab602"},{"legacyId":"6449d994cc4b0c00089e7ec7","legacyServiceId":"644ca7e3142e590008880835"},{"legacyId":"6449d994cc4b0c00089e7ec7","legacyServiceId":"644ca9e1142e59000888084a"},{"legacyId":"6449d994cc4b0c00089e7ec7","legacyServiceId":"644cad5db838730008ffab6a"},{"legacyId":"644309fba157de0008b2535e","legacyServiceId":"64452c1f1b4de30008d3d239"},{"legacyId":"646c0d3f6859ec0008a8d1dc","legacyServiceId":"646c0ee4569f24000804762f"},{"legacyId":"646c11a91135d2000852dece","legacyServiceId":"646c15081424850008d72f61"},{"legacyId":"646c19882d26b10008e6b82d","legacyServiceId":"646c1a662d26b10008e6b838"},{"legacyId":"645abf6323bac20008d539eb","legacyServiceId":"646fab73a9d363000850d4b2"},{"legacyId":"645d619c9532d60008ad2a21","legacyServiceId":"6472a7be59ae4e0008d4a4f4"},{"legacyId":"6472c89d28b9e000084dc664","legacyServiceId":"6472cb78925cca0008f1eaa5"},{"legacyId":"6472cc7e28b9e000084dc678","legacyServiceId":"6472cf83bb7ec800087514e8"},{"legacyId":"6472cc7e28b9e000084dc678","legacyServiceId":"6472d09fa0dcc70009ddc48b"},{"legacyId":"6473815ad0aa2a00082caa46","legacyServiceId":"647381b9d0aa2a00082caa47"},{"legacyId":"6473871601642000087dec64","legacyServiceId":"647388cc01642000087dec70"},{"legacyId":"64738a7e9def260008715267","legacyServiceId":"64738db6a66cd8000839dbd3"},{"legacyId":"64738f829def26000871527d","legacyServiceId":"6473935b9def26000871528c"},{"legacyId":"6478f015c12e5e00084c8c1d","legacyServiceId":"6478f1198f4bb10008d18d23"},{"legacyId":"647965fd77f4e7000810bd26","legacyServiceId":"647aa7da0040e6000950d4b7"},{"legacyId":"647ba265dd750f00080a1ee7","legacyServiceId":"647ba3d9dd750f00080a1eef"},{"legacyId":"647be485bda56400087dff24","legacyServiceId":"647be67c5475b80008f01913"},{"legacyId":"647be485bda56400087dff24","legacyServiceId":"647be5a4bda56400087dff25"},{"legacyId":"647be485bda56400087dff24","legacyServiceId":"647be7294c907f0008059433"}],"community-support.reentry-services":[{"legacyId":"5fd2fa9ba2b1ae001714c088","legacyServiceId":"5fd30095a2b1ae001714c0b0"},{"legacyId":"6156aa6eb632290016c193cb","legacyServiceId":"6156abf5b632290016c193d0"},{"legacyId":"617eff48f8f17a0016bd7b00","legacyServiceId":"617f02aff8f17a0016bd7b06"},{"legacyId":"617eff48f8f17a0016bd7b00","legacyServiceId":"617f02c5f8f17a0016bd7b07"},{"legacyId":"5e7e4bdfd54f1760921a4e1b","legacyServiceId":"5e7e4bdfd54f1760921a4e1b"},{"legacyId":"64297b88253eb5000835e92e","legacyServiceId":"642c23790fa8490008ff237b"},{"legacyId":"5e7e4bded54f1760921a4aa7","legacyServiceId":"644af2d40193500008b5089d"},{"legacyId":"645d989131864e00082bce23","legacyServiceId":"645d9984acacb800084ed874"},{"legacyId":"645d989131864e00082bce23","legacyServiceId":"645d9b7fbe70f70008e1866a"},{"legacyId":"64402422e1db9b00087bab39","legacyServiceId":"6465979bd05c200008cffbc4"},{"legacyId":"645d619c9532d60008ad2a21","legacyServiceId":"6472a4ad2a819e0008e8b4db"},{"legacyId":"6472e104bb6ca30008b5a32c","legacyServiceId":"6472e21535579b00094ea894"},{"legacyId":"6477f6cd075f9d0008c8a8a7","legacyServiceId":"6477f8e1142e350008ec2a52"}],"sports-and-entertainment.art-music-literature":[{"legacyId":"5e7e4bdbd54f1760921a4120","legacyServiceId":"60ff2980f6907600151fe815"},{"legacyId":"5e7e4bdbd54f1760921a407f","legacyServiceId":"5e7e4bdbd54f1760921a4083"},{"legacyId":"5e7e4bdbd54f1760921a4077","legacyServiceId":"5e7e4bdbd54f1760921a407b"},{"legacyId":"5e7e4bdbd54f1760921a4077","legacyServiceId":"5e7e4bdbd54f1760921a407d"},{"legacyId":"5e7e4bdbd54f1760921a4077","legacyServiceId":"6298ef71533d5b003ec8b5e4"},{"legacyId":"5e7e4bdbd54f1760921a4077","legacyServiceId":"6298f0c7533d5b003ec8b609"},{"legacyId":"5e7e4bdbd54f1760921a4174","legacyServiceId":"5e7e4bdbd54f1760921a4178"},{"legacyId":"5e7e4bdcd54f1760921a445b","legacyServiceId":"5e7e4bdcd54f1760921a4462"},{"legacyId":"5e7e4bdcd54f1760921a44c1","legacyServiceId":"5e7e4bdcd54f1760921a44d7"},{"legacyId":"5e7e4bdcd54f1760921a4620","legacyServiceId":"634d9f3a49027f001602ce6f"},{"legacyId":"5e7e4bdcd54f1760921a4725","legacyServiceId":"5ffe6fec2dea370015bc160e"},{"legacyId":"5e7e4bddd54f1760921a48ae","legacyServiceId":"5e7e4bddd54f1760921a48b4"},{"legacyId":"5f7509456303f90017339948","legacyServiceId":"5f750c1c6303f9001733994c"},{"legacyId":"5e8a29ff8e957400179de0c1","legacyServiceId":"5e8a2b0c8e957400179de0c8"},{"legacyId":"6161b3699c287d0016825455","legacyServiceId":"6161b3f89c287d0016825456"},{"legacyId":"616731dd8ab5c700169045c3","legacyServiceId":"62874506a7f35f002e8ba5aa"},{"legacyId":"623d10fcedddbc002e92fded","legacyServiceId":"623d13b9edddbc002e92fdfc"},{"legacyId":"62435a2c38d0db002ec3fa6b","legacyServiceId":"62435fd038d0db002ec3fa84"},{"legacyId":"625098d00b612c002ed3ef6c","legacyServiceId":"62509c470b612c002ed3ef79"},{"legacyId":"626183829e9e9c002e0cce5c","legacyServiceId":"626186879e9e9c002e0cce67"},{"legacyId":"62864ed1e6b765002e447561","legacyServiceId":"62865d16e6b765002e44758b"},{"legacyId":"629514e47416cd002e4e201b","legacyServiceId":"643eda93d9d7140008d77934"},{"legacyId":"629514e47416cd002e4e201b","legacyServiceId":"643ee0750b36a20007b30a6a"},{"legacyId":"629514e47416cd002e4e201b","legacyServiceId":"643edf200b36a20007b30a67"},{"legacyId":"62f41c6a8e1e4500160cd8a7","legacyServiceId":"62f50df8253d81001679427d"},{"legacyId":"6348974f3e1e6f0016356c33","legacyServiceId":"6348ab5f486acb001651f166"},{"legacyId":"640156ca6d168c0008468a0d","legacyServiceId":"640212119baa3500087c4b30"},{"legacyId":"63ff8a8c64f71800088fc448","legacyServiceId":"63ff8af5d7a1940008687e2e"},{"legacyId":"6407704ab3396100088431fa","legacyServiceId":"645c33c38cd2ca0008e93c33"},{"legacyId":"5e7e4bdad54f1760921a3cb6","legacyServiceId":"60c638f608fa950015c751ca"},{"legacyId":"646ab84ffe8ea4000828bc44","legacyServiceId":"646abba41ea7000008d7cbb2"},{"legacyId":"6446d1b7cbc5540008780cac","legacyServiceId":"646bba88a11f27000896cfdc"},{"legacyId":"646c11a91135d2000852dece","legacyServiceId":"646c14691135d2000852dee6"},{"legacyId":"646c11a91135d2000852dece","legacyServiceId":"646c14b5569f24000804764d"},{"legacyId":"645abf6323bac20008d539eb","legacyServiceId":"646fab73a9d363000850d4b2"},{"legacyId":"6472cc7e28b9e000084dc678","legacyServiceId":"6472cefc28b9e000084dc686"},{"legacyId":"6472cc7e28b9e000084dc678","legacyServiceId":"6472cfe6bb7ec800087514eb"},{"legacyId":"64738f829def26000871527d","legacyServiceId":"64739288a66cd8000839dc00"}]} \ No newline at end of file diff --git a/packages/db/prisma/data-migrations/index.ts b/packages/db/prisma/data-migrations/index.ts index a7290c7e99..ce4441fc74 100644 --- a/packages/db/prisma/data-migrations/index.ts +++ b/packages/db/prisma/data-migrations/index.ts @@ -35,4 +35,5 @@ export * from './2023-06-26_active-country' export * from './2023-06-27_add-crowdin-ids/index' export * from './2023-07-12_1-add-remote-tags/index' export * from './2023-07-12_2-leader-focus-attribs/index' +export * from './2023-07-12_3-update-tags-attributes/index' // codegen:end From 6167c252c3f008f5a93aa0204540e5a1ab48be8a Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Thu, 13 Jul 2023 14:54:30 -0400 Subject: [PATCH 65/66] update job for new migration runner compatibility --- .../data-migrations/2023-03-29_nest-attribs-primary-cntry.ts | 5 +++-- .../prisma/data-migrations/2023-03-31_suggestion-source.ts | 5 +++-- .../db/prisma/data-migrations/2023-04-04_badges/index.ts | 5 +++-- .../prisma/data-migrations/2023-04-04_single-loc-org-link.ts | 5 +++-- .../data-migrations/2023-04-05_user-title-namespace.ts | 5 +++-- .../data-migrations/2023-04-05_website-lang-codes/index.ts | 5 +++-- .../data-migrations/2023-04-06_attrib-updates/index.ts | 5 +++-- .../data-migrations/2023-04-10_phone-descriptions/index.ts | 5 +++-- .../data-migrations/2023-04-10_social-media-services.ts | 5 +++-- .../prisma/data-migrations/2023-04-11_basic-phone-types.ts | 5 +++-- .../data-migrations/2023-04-11_permissions-attributes.ts | 5 +++-- .../prisma/data-migrations/2023-04-21_badge-render-field.ts | 5 +++-- .../data-migrations/2023-04-25_attr-supp-schemas/index.ts | 5 +++-- .../2023-04-26_attr-supp-interpolation/index.ts | 5 +++-- .../prisma/data-migrations/2023-05-05_enabled-countries.ts | 5 +++-- packages/db/prisma/data-migrations/2023-05-08_permissions.ts | 5 +++-- .../2023-05-18_update-published-deleted/index.ts | 5 +++-- .../db/prisma/data-migrations/2023-05-18_user-permissions.ts | 5 +++-- .../prisma/data-migrations/2023-05-19_reviews-countries.ts | 5 +++-- .../data-migrations/2023-05-22_add-crowdin-ids/index.ts | 5 +++-- .../data-migrations/2023-06-05_1-leaderfocus-attrib/index.ts | 5 +++-- .../db/prisma/data-migrations/2023-06-05_2-add-tags/index.ts | 5 +++-- .../data-migrations/2023-06-06_tags-for-new-orgs/index.ts | 5 +++-- packages/db/prisma/data-migrations/2023-06-07_update-tag.ts | 5 +++-- .../data-migrations/2023-06-08_trim-city-whitespace/index.ts | 5 +++-- .../data-migrations/2023-06-08_update-law-practice-opts.ts | 5 +++-- .../data-migrations/2023-06-09_duplicate-websites/index.ts | 5 +++-- .../db/prisma/data-migrations/2023-06-12_survey-options.ts | 5 +++-- packages/db/prisma/data-migrations/2023-06-13_user-type.ts | 5 +++-- .../prisma/data-migrations/2023-06-14_remote-tags/index.ts | 5 +++-- .../data-migrations/2023-06-20_tags-for-suggestions.ts | 5 +++-- .../db/prisma/data-migrations/2023-06-21_update-sourceid.ts | 5 +++-- .../db/prisma/data-migrations/2023-06-26_active-country.ts | 5 +++-- .../data-migrations/2023-06-27_add-crowdin-ids/index.ts | 5 +++-- .../data-migrations/2023-07-12_1-add-remote-tags/index.ts | 5 +++-- .../2023-07-12_2-leader-focus-attribs/index.ts | 5 +++-- .../2023-07-12_3-update-tags-attributes/index.ts | 5 +++-- 37 files changed, 111 insertions(+), 74 deletions(-) diff --git a/packages/db/prisma/data-migrations/2023-03-29_nest-attribs-primary-cntry.ts b/packages/db/prisma/data-migrations/2023-03-29_nest-attribs-primary-cntry.ts index 8650e4668e..9ef48b9875 100644 --- a/packages/db/prisma/data-migrations/2023-03-29_nest-attribs-primary-cntry.ts +++ b/packages/db/prisma/data-migrations/2023-03-29_nest-attribs-primary-cntry.ts @@ -1,5 +1,5 @@ import { prisma, type Prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' const jobDef: JobDef = { @@ -69,4 +69,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20220329 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-03-31_suggestion-source.ts b/packages/db/prisma/data-migrations/2023-03-31_suggestion-source.ts index 0a745dff31..71bb11523c 100644 --- a/packages/db/prisma/data-migrations/2023-03-31_suggestion-source.ts +++ b/packages/db/prisma/data-migrations/2023-03-31_suggestion-source.ts @@ -1,5 +1,5 @@ import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' const jobDef: JobDef = { @@ -32,4 +32,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20220330 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-04_badges/index.ts b/packages/db/prisma/data-migrations/2023-04-04_badges/index.ts index cec68bb7f2..8da8e5559f 100644 --- a/packages/db/prisma/data-migrations/2023-04-04_badges/index.ts +++ b/packages/db/prisma/data-migrations/2023-04-04_badges/index.ts @@ -4,7 +4,7 @@ import fs from 'fs' import path from 'path' import { prisma, type Prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' const jobDef: JobDef = { @@ -95,4 +95,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20220404 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-04_single-loc-org-link.ts b/packages/db/prisma/data-migrations/2023-04-04_single-loc-org-link.ts index 2ff40095bc..76b41fbda4 100644 --- a/packages/db/prisma/data-migrations/2023-04-04_single-loc-org-link.ts +++ b/packages/db/prisma/data-migrations/2023-04-04_single-loc-org-link.ts @@ -1,6 +1,6 @@ import { prisma, type Prisma } from '~db/index' import { batchRunner } from '~db/prisma/batchRunner' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' const jobDef: JobDef = { @@ -87,4 +87,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230404b = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-05_user-title-namespace.ts b/packages/db/prisma/data-migrations/2023-04-05_user-title-namespace.ts index 488721539b..c3156653af 100644 --- a/packages/db/prisma/data-migrations/2023-04-05_user-title-namespace.ts +++ b/packages/db/prisma/data-migrations/2023-04-05_user-title-namespace.ts @@ -1,5 +1,5 @@ import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -47,4 +47,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230405 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-05_website-lang-codes/index.ts b/packages/db/prisma/data-migrations/2023-04-05_website-lang-codes/index.ts index 3d79e5aa23..e6311117cc 100644 --- a/packages/db/prisma/data-migrations/2023-04-05_website-lang-codes/index.ts +++ b/packages/db/prisma/data-migrations/2023-04-05_website-lang-codes/index.ts @@ -4,7 +4,7 @@ import fs from 'fs' import path from 'path' import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -78,4 +78,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230405b = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-06_attrib-updates/index.ts b/packages/db/prisma/data-migrations/2023-04-06_attrib-updates/index.ts index 2860e0ccd3..a5d2c10ca0 100644 --- a/packages/db/prisma/data-migrations/2023-04-06_attrib-updates/index.ts +++ b/packages/db/prisma/data-migrations/2023-04-06_attrib-updates/index.ts @@ -5,7 +5,7 @@ import path from 'path' import { prisma, Prisma } from '~db/index' import { batchRunner } from '~db/prisma/batchRunner' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -91,4 +91,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230406 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-10_phone-descriptions/index.ts b/packages/db/prisma/data-migrations/2023-04-10_phone-descriptions/index.ts index fb1152ecac..95b00d02d3 100644 --- a/packages/db/prisma/data-migrations/2023-04-10_phone-descriptions/index.ts +++ b/packages/db/prisma/data-migrations/2023-04-10_phone-descriptions/index.ts @@ -5,7 +5,7 @@ import path from 'path' import { generateId, type Prisma, prisma } from '~db/index' import { batchRunner } from '~db/prisma/batchRunner' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' import { namespaces } from '~db/seed/data/00-namespaces' @@ -102,4 +102,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230410 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-10_social-media-services.ts b/packages/db/prisma/data-migrations/2023-04-10_social-media-services.ts index 6fda711eba..8b8c051a69 100644 --- a/packages/db/prisma/data-migrations/2023-04-10_social-media-services.ts +++ b/packages/db/prisma/data-migrations/2023-04-10_social-media-services.ts @@ -1,5 +1,5 @@ import { prisma, type Prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -112,4 +112,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230410b = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-11_basic-phone-types.ts b/packages/db/prisma/data-migrations/2023-04-11_basic-phone-types.ts index b130af5c5c..1e8db10206 100644 --- a/packages/db/prisma/data-migrations/2023-04-11_basic-phone-types.ts +++ b/packages/db/prisma/data-migrations/2023-04-11_basic-phone-types.ts @@ -1,6 +1,6 @@ import { prisma, type Prisma } from '~db/index' import { slug } from '~db/lib/slugGen' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' import { namespaces } from '~db/seed/data/00-namespaces' @@ -54,4 +54,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230411 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-11_permissions-attributes.ts b/packages/db/prisma/data-migrations/2023-04-11_permissions-attributes.ts index 59e0079881..5e6add9a02 100644 --- a/packages/db/prisma/data-migrations/2023-04-11_permissions-attributes.ts +++ b/packages/db/prisma/data-migrations/2023-04-11_permissions-attributes.ts @@ -1,5 +1,5 @@ import { prisma, type Prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' import { type AttributeData } from '~db/seed/data/09-attributes' import { seedAttributes } from '~db/seed/starter/09-attributes' @@ -88,4 +88,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230411b = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-21_badge-render-field.ts b/packages/db/prisma/data-migrations/2023-04-21_badge-render-field.ts index 8c703e4ae4..c6e3034769 100644 --- a/packages/db/prisma/data-migrations/2023-04-21_badge-render-field.ts +++ b/packages/db/prisma/data-migrations/2023-04-21_badge-render-field.ts @@ -1,5 +1,5 @@ import { prisma, type Prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -49,4 +49,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230421 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-25_attr-supp-schemas/index.ts b/packages/db/prisma/data-migrations/2023-04-25_attr-supp-schemas/index.ts index 37ec29e700..a0e8f5cf79 100644 --- a/packages/db/prisma/data-migrations/2023-04-25_attr-supp-schemas/index.ts +++ b/packages/db/prisma/data-migrations/2023-04-25_attr-supp-schemas/index.ts @@ -1,5 +1,5 @@ import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' import { schemaMapping, schemas } from './!schemas' @@ -46,4 +46,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230425 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-04-26_attr-supp-interpolation/index.ts b/packages/db/prisma/data-migrations/2023-04-26_attr-supp-interpolation/index.ts index ef56d6f567..cc8c1d2384 100644 --- a/packages/db/prisma/data-migrations/2023-04-26_attr-supp-interpolation/index.ts +++ b/packages/db/prisma/data-migrations/2023-04-26_attr-supp-interpolation/index.ts @@ -5,7 +5,7 @@ import path from 'path' import { prisma } from '~db/index' import { batchRunner } from '~db/prisma/batchRunner' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -83,4 +83,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230426 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-05-05_enabled-countries.ts b/packages/db/prisma/data-migrations/2023-05-05_enabled-countries.ts index 4c4cea4ba2..de9034e868 100644 --- a/packages/db/prisma/data-migrations/2023-05-05_enabled-countries.ts +++ b/packages/db/prisma/data-migrations/2023-05-05_enabled-countries.ts @@ -1,5 +1,5 @@ import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -47,4 +47,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230505 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-05-08_permissions.ts b/packages/db/prisma/data-migrations/2023-05-08_permissions.ts index 1ef92bd5fc..43c408486e 100644 --- a/packages/db/prisma/data-migrations/2023-05-08_permissions.ts +++ b/packages/db/prisma/data-migrations/2023-05-08_permissions.ts @@ -1,5 +1,5 @@ import { prisma, type Prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -56,4 +56,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230508 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-05-18_update-published-deleted/index.ts b/packages/db/prisma/data-migrations/2023-05-18_update-published-deleted/index.ts index 954929dc30..559b6d88f6 100644 --- a/packages/db/prisma/data-migrations/2023-05-18_update-published-deleted/index.ts +++ b/packages/db/prisma/data-migrations/2023-05-18_update-published-deleted/index.ts @@ -5,7 +5,7 @@ import path from 'path' import { prisma } from '~db/index' import { batchRunner } from '~db/prisma/batchRunner' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' import { type DataOutput } from './!generate' @@ -102,4 +102,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230518b = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-05-18_user-permissions.ts b/packages/db/prisma/data-migrations/2023-05-18_user-permissions.ts index cd626c6fa8..c647c1ca0a 100644 --- a/packages/db/prisma/data-migrations/2023-05-18_user-permissions.ts +++ b/packages/db/prisma/data-migrations/2023-05-18_user-permissions.ts @@ -1,5 +1,5 @@ import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ const jobDef: JobDef = { @@ -46,4 +46,5 @@ const job: ListrTask = async (_ctx, task) => { export const job20230518 = { title: `${jobDef.jobId} - ${jobDef.title}`, task: job, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-05-19_reviews-countries.ts b/packages/db/prisma/data-migrations/2023-05-19_reviews-countries.ts index 8d551943fd..8a4448a656 100644 --- a/packages/db/prisma/data-migrations/2023-05-19_reviews-countries.ts +++ b/packages/db/prisma/data-migrations/2023-05-19_reviews-countries.ts @@ -1,5 +1,5 @@ import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -79,4 +79,5 @@ export const job20230519 = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-05-22_add-crowdin-ids/index.ts b/packages/db/prisma/data-migrations/2023-05-22_add-crowdin-ids/index.ts index 05c507e807..02a2dd6f38 100644 --- a/packages/db/prisma/data-migrations/2023-05-22_add-crowdin-ids/index.ts +++ b/packages/db/prisma/data-migrations/2023-05-22_add-crowdin-ids/index.ts @@ -5,7 +5,7 @@ import path from 'path' import { prisma } from '~db/index' import { batchRunner } from '~db/prisma/batchRunner' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ const jobDef: JobDef = { @@ -65,4 +65,5 @@ export const job20230522 = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-05_1-leaderfocus-attrib/index.ts b/packages/db/prisma/data-migrations/2023-06-05_1-leaderfocus-attrib/index.ts index 276e771583..064999e1c1 100644 --- a/packages/db/prisma/data-migrations/2023-06-05_1-leaderfocus-attrib/index.ts +++ b/packages/db/prisma/data-migrations/2023-06-05_1-leaderfocus-attrib/index.ts @@ -2,7 +2,7 @@ import fs from 'fs' import path from 'path' import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -52,4 +52,5 @@ export const job20230605a = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-05_2-add-tags/index.ts b/packages/db/prisma/data-migrations/2023-06-05_2-add-tags/index.ts index be9f5ada41..3f3d64fa16 100644 --- a/packages/db/prisma/data-migrations/2023-06-05_2-add-tags/index.ts +++ b/packages/db/prisma/data-migrations/2023-06-05_2-add-tags/index.ts @@ -5,7 +5,7 @@ import fs from 'fs' import path from 'path' import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' import { namespaces } from '../../../seed/data' @@ -345,4 +345,5 @@ export const job20230605b = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-06_tags-for-new-orgs/index.ts b/packages/db/prisma/data-migrations/2023-06-06_tags-for-new-orgs/index.ts index 4f600f8c08..a17c75be4e 100644 --- a/packages/db/prisma/data-migrations/2023-06-06_tags-for-new-orgs/index.ts +++ b/packages/db/prisma/data-migrations/2023-06-06_tags-for-new-orgs/index.ts @@ -2,7 +2,7 @@ import fs from 'fs' import path from 'path' import { Prisma, prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' const getJSON = (file: string) => JSON.parse(fs.readFileSync(path.resolve(__dirname, file), 'utf-8')) @@ -71,4 +71,5 @@ export const job20230606 = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-07_update-tag.ts b/packages/db/prisma/data-migrations/2023-06-07_update-tag.ts index ccf8aa343b..886d5c7488 100644 --- a/packages/db/prisma/data-migrations/2023-06-07_update-tag.ts +++ b/packages/db/prisma/data-migrations/2023-06-07_update-tag.ts @@ -1,5 +1,5 @@ import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -146,4 +146,5 @@ export const job20230706 = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-08_trim-city-whitespace/index.ts b/packages/db/prisma/data-migrations/2023-06-08_trim-city-whitespace/index.ts index d683b65398..01cd543bfa 100644 --- a/packages/db/prisma/data-migrations/2023-06-08_trim-city-whitespace/index.ts +++ b/packages/db/prisma/data-migrations/2023-06-08_trim-city-whitespace/index.ts @@ -4,7 +4,7 @@ import fs from 'fs' import path from 'path' import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' const getJSON = (file: string) => JSON.parse(fs.readFileSync(path.resolve(__dirname, file), 'utf-8')) @@ -65,4 +65,5 @@ export const job20230608 = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-08_update-law-practice-opts.ts b/packages/db/prisma/data-migrations/2023-06-08_update-law-practice-opts.ts index 4f8cbe1341..bb244924d7 100644 --- a/packages/db/prisma/data-migrations/2023-06-08_update-law-practice-opts.ts +++ b/packages/db/prisma/data-migrations/2023-06-08_update-law-practice-opts.ts @@ -1,5 +1,5 @@ import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -65,4 +65,5 @@ export const job20230608b = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-09_duplicate-websites/index.ts b/packages/db/prisma/data-migrations/2023-06-09_duplicate-websites/index.ts index b7e41acd47..0b549f80a6 100644 --- a/packages/db/prisma/data-migrations/2023-06-09_duplicate-websites/index.ts +++ b/packages/db/prisma/data-migrations/2023-06-09_duplicate-websites/index.ts @@ -4,7 +4,7 @@ import fs from 'fs' import path from 'path' import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' const getJSON = (file: string) => JSON.parse(fs.readFileSync(path.resolve(__dirname, file), 'utf-8')) @@ -61,4 +61,5 @@ export const job20230609a = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-12_survey-options.ts b/packages/db/prisma/data-migrations/2023-06-12_survey-options.ts index 63581588c0..ae3de231a0 100644 --- a/packages/db/prisma/data-migrations/2023-06-12_survey-options.ts +++ b/packages/db/prisma/data-migrations/2023-06-12_survey-options.ts @@ -1,6 +1,6 @@ import { prisma } from '~db/index' import { isSuccess } from '~db/prisma/common' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ const jobDef: JobDef = { @@ -80,4 +80,5 @@ export const job20230612 = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-13_user-type.ts b/packages/db/prisma/data-migrations/2023-06-13_user-type.ts index 66cc9e7ceb..dc9761f63c 100644 --- a/packages/db/prisma/data-migrations/2023-06-13_user-type.ts +++ b/packages/db/prisma/data-migrations/2023-06-13_user-type.ts @@ -1,7 +1,7 @@ import { namespace } from '~db/generated/namespaces' import { type Prisma, prisma } from '~db/index' import { isSuccess } from '~db/prisma/common' -import { type ListrJob } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -176,4 +176,5 @@ export const job20230613a = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-14_remote-tags/index.ts b/packages/db/prisma/data-migrations/2023-06-14_remote-tags/index.ts index 58532dd74d..e64b6d2517 100644 --- a/packages/db/prisma/data-migrations/2023-06-14_remote-tags/index.ts +++ b/packages/db/prisma/data-migrations/2023-06-14_remote-tags/index.ts @@ -4,7 +4,7 @@ import fs from 'fs' import path from 'path' import { prisma } from '~db/index' -import { type ListrJob } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -69,4 +69,5 @@ export const job20230614a = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-20_tags-for-suggestions.ts b/packages/db/prisma/data-migrations/2023-06-20_tags-for-suggestions.ts index 8dc82d9c0b..b8a45cc42d 100644 --- a/packages/db/prisma/data-migrations/2023-06-20_tags-for-suggestions.ts +++ b/packages/db/prisma/data-migrations/2023-06-20_tags-for-suggestions.ts @@ -1,5 +1,5 @@ import { prisma } from '~db/index' -import { type ListrJob } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -108,4 +108,5 @@ export const job20230620 = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-21_update-sourceid.ts b/packages/db/prisma/data-migrations/2023-06-21_update-sourceid.ts index 1e0cf407f0..dc8c46aa1b 100644 --- a/packages/db/prisma/data-migrations/2023-06-21_update-sourceid.ts +++ b/packages/db/prisma/data-migrations/2023-06-21_update-sourceid.ts @@ -1,6 +1,6 @@ import { prisma } from '~db/index' import { isSuccess } from '~db/prisma/common' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -52,4 +52,5 @@ export const job20230621a = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-26_active-country.ts b/packages/db/prisma/data-migrations/2023-06-26_active-country.ts index fdc98ea77c..407e2a4200 100644 --- a/packages/db/prisma/data-migrations/2023-06-26_active-country.ts +++ b/packages/db/prisma/data-migrations/2023-06-26_active-country.ts @@ -1,5 +1,5 @@ import { prisma } from '~db/index' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -51,4 +51,5 @@ export const job20230626a = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/index.ts b/packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/index.ts index 4ef954ce7e..e207fdb1ad 100644 --- a/packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/index.ts +++ b/packages/db/prisma/data-migrations/2023-06-27_add-crowdin-ids/index.ts @@ -5,7 +5,7 @@ import path from 'path' import { prisma } from '~db/index' import { batchRunner } from '~db/prisma/batchRunner' -import { type ListrJob } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ const jobDef: JobDef = { @@ -65,4 +65,5 @@ export const job20230627a = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/index.ts b/packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/index.ts index 9d15cdb4f9..aaf3e2d314 100644 --- a/packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/index.ts +++ b/packages/db/prisma/data-migrations/2023-07-12_1-add-remote-tags/index.ts @@ -5,7 +5,7 @@ import path from 'path' import { type Prisma, prisma } from '~db/index' import { raise } from '~db/prisma/common' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ const jobDef: JobDef = { @@ -93,4 +93,5 @@ export const job20230712a = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/index.ts b/packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/index.ts index 43135f4801..49953be58f 100644 --- a/packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/index.ts +++ b/packages/db/prisma/data-migrations/2023-07-12_2-leader-focus-attribs/index.ts @@ -5,7 +5,7 @@ import path from 'path' import { prisma, type Prisma } from '~db/client' import { formatMessage } from '~db/prisma/common' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type ListrJob, type ListrTask, type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ @@ -119,4 +119,5 @@ export const job20230712b = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/index.ts b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/index.ts index ac35b17cb2..f77816a450 100644 --- a/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/index.ts +++ b/packages/db/prisma/data-migrations/2023-07-12_3-update-tags-attributes/index.ts @@ -3,7 +3,7 @@ import path from 'path' import { prisma, type Prisma } from '~db/client' import { formatMessage } from '~db/prisma/common' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' +import { type MigrationJob } from '~db/prisma/dataMigrationRunner' import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' import { OrgAttributesSchema, ServAttributesSchema, ServiceTagsSchema } from './!types' @@ -173,7 +173,8 @@ export const job20230712c = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob interface Batches { orgServiceTag: Prisma.OrgServiceTagCreateManyInput[] From 5bb424418e20980661ec918939f01805a5e4b8ab Mon Sep 17 00:00:00 2001 From: Joe Karow <58997957+JoeKarow@users.noreply.github.com> Date: Thu, 13 Jul 2023 14:55:34 -0400 Subject: [PATCH 66/66] determine jobs to run as first step --- .../!YYYY-MM-DD_job-template.ts | 21 ++++---- packages/db/prisma/dataMigrationRunner.ts | 48 ++++++++++++++++++- packages/db/prisma/jobPreRun.ts | 18 ++----- 3 files changed, 61 insertions(+), 26 deletions(-) diff --git a/packages/db/prisma/data-migrations/!YYYY-MM-DD_job-template.ts b/packages/db/prisma/data-migrations/!YYYY-MM-DD_job-template.ts index 9a1d297d31..b4a455bb12 100644 --- a/packages/db/prisma/data-migrations/!YYYY-MM-DD_job-template.ts +++ b/packages/db/prisma/data-migrations/!YYYY-MM-DD_job-template.ts @@ -1,13 +1,15 @@ import { prisma } from '~db/client' import { formatMessage } from '~db/prisma/common' -import { type ListrJob, type ListrTask } from '~db/prisma/dataMigrationRunner' -import { type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' +import { type MigrationJob } from '~db/prisma/dataMigrationRunner' +import { createLogger, type JobDef, jobPostRunner, jobPreRunner } from '~db/prisma/jobPreRun' /** Define the job metadata here. */ const jobDef: JobDef = { jobId: 'yyyy-mm-dd-shortDescription', - title: 'Longer description', + title: 'Descriptive Title', createdBy: 'Your Name', + /** Optional: Longer description for the job */ + description: undefined, } /** * Job export - this variable MUST be UNIQUE @@ -21,14 +23,8 @@ const jobDef: JobDef = { export const jobYYYYmmDD = { title: `${jobDef.jobId} - ${jobDef.title}`, task: async (_ctx, task) => { - /** - * Do not edit this part - * - * This ensures that jobs are only run once - */ - if (await jobPreRunner(jobDef, task)) { - return task.skip(`${jobDef.jobId} - Migration has already been run.`) - } + /** Create logging instance */ + createLogger(task, jobDef.jobId) const log = (...args: Parameters) => (task.output = formatMessage(...args)) /** * Start defining your data migration from here. @@ -49,4 +45,5 @@ export const jobYYYYmmDD = { */ await jobPostRunner(jobDef) }, -} satisfies ListrJob + def: jobDef, +} satisfies MigrationJob diff --git a/packages/db/prisma/dataMigrationRunner.ts b/packages/db/prisma/dataMigrationRunner.ts index ce6bc4024a..3a88b33004 100644 --- a/packages/db/prisma/dataMigrationRunner.ts +++ b/packages/db/prisma/dataMigrationRunner.ts @@ -7,6 +7,9 @@ import { PRESET_TIMER, } from 'listr2' +import { prisma } from '~db/client' +import { type JobDef } from '~db/prisma/jobPreRun' + import * as jobList from './data-migrations' /** @@ -21,13 +24,53 @@ const renderOptions = { timer: PRESET_TIMER, } satisfies ListrJob['options'] const injectOptions = (job: ListrJob): ListrJob => ({ ...job, options: renderOptions }) + +const jobQueue: ListrJob[] = [] + const jobs = new Listr( - Object.values(jobList).map((job) => injectOptions(job)), + [ + { + title: 'Determine jobs to run', + task: async (ctx, task) => { + const jobs = await prisma.dataMigration.findMany({ + select: { jobId: true }, + }) + const completedJobs = jobs.map(({ jobId }) => jobId) + task.output = `${Object.values(jobList).length} migrations found in ~db/prisma/data-migrations` + + const jobNamesToRun: string[] = [] + + for (const { def, ...job } of Object.values(jobList)) { + if (completedJobs.includes(def.jobId)) { + continue + } + jobNamesToRun.push(def.jobId) + jobQueue.push(injectOptions(job)) + } + if (jobNamesToRun.length) { + ctx.pendingMigrations = true + task.output = `${jobNamesToRun.length} migrations to run:\n${jobNamesToRun.join('\n')}` + task.title = `Pending migrations: ${jobNamesToRun.length}` + } else { + task.title = `No pending migrations` + } + }, + ...renderOptions, + }, + { + title: `Apply ${jobQueue.length} pending migrations`, + task: (_, task) => task.newListr(jobQueue), + enabled: (ctx) => !!ctx.pendingMigrations, + ...renderOptions, + }, + // ...Object.values(jobList).map((job) => injectOptions(job)), + ], { rendererOptions: { formatOutput: 'wrap', timer: PRESET_TIMER, suffixSkips: true, + collapseSubtasks: false, }, fallbackRendererOptions: { timer: PRESET_TIMER, @@ -41,9 +84,12 @@ jobs.run() export type Context = { error?: boolean + pendingMigrations?: boolean } export type PassedTask = ListrTaskWrapper export type ListrJob = ListrTaskObj + +export type MigrationJob = ListrJob & { def: JobDef } export type ListrTask = ( ctx: Context, task: PassedTask diff --git a/packages/db/prisma/jobPreRun.ts b/packages/db/prisma/jobPreRun.ts index 890d81e78f..3de3988bd8 100644 --- a/packages/db/prisma/jobPreRun.ts +++ b/packages/db/prisma/jobPreRun.ts @@ -16,28 +16,20 @@ const logFile = (file: string, output: string) => { fs.writeFileSync(outFile, formattedOutput, { flag: 'a' }) } +/** Creates a log file, attaches to `stdout` and saves the output to that file. */ export const createLogger = (task: PassedTask, jobId: string) => { const timestamp = getTimestamp() const logFilename = `${jobId}_${timestamp}.log` task.task.on(ListrTaskEventType.OUTPUT, (output) => logFile(logFilename, output)) } +/** @deprecated Call `createLogger` directly in the job instead */ export const jobPreRunner = async (jobDef: JobDef, task: PassedTask) => { - try { - const exists = await prisma.dataMigration.findUnique({ - where: { jobId: jobDef.jobId }, - select: { id: true }, - }) - if (exists?.id) { - return true - } - createLogger(task, jobDef.jobId) - return false - } catch (err) { - return true - } + createLogger(task, jobDef.jobId) + return false } +/** Marks the migration job as successful in the database. */ export const jobPostRunner = async (jobDef: JobDef) => { try { await prisma.dataMigration.create({ data: jobDef })