251 lines
22 KiB
JavaScript
251 lines
22 KiB
JavaScript
import { z } from 'zod/v4';
|
|
import { ZodMetaMap } from '../map.js';
|
|
import { extendZodWithOpenApi } from '@hono/zod-openapi';
|
|
extendZodWithOpenApi(z);
|
|
export const CompetitorSchema = z.object({
|
|
place_id: z.string(),
|
|
title: z.string(),
|
|
description: z.string().optional().nullable(),
|
|
address: z.string().optional().nullable(),
|
|
gps_coordinates: z.object({
|
|
latitude: z.number(),
|
|
longitude: z.number(),
|
|
}).optional().nullable(),
|
|
phone: z.string().optional().nullable(),
|
|
website: z.string().optional().nullable(),
|
|
operating_hours: z.record(z.string(), z.any()).optional().nullable(),
|
|
thumbnail: z.string().optional().nullable(),
|
|
types: z.array(z.string()).optional().nullable(),
|
|
continent: z.string().optional().nullable(),
|
|
country: z.string().optional().nullable(),
|
|
city: z.string().optional().nullable(),
|
|
updated_at: z.string().optional().nullable(),
|
|
raw_data: z.record(z.string(), z.any()).optional().nullable()
|
|
});
|
|
// Shared schemas
|
|
export const GpsCoordinatesSchema = z.object({
|
|
latitude: z.number(),
|
|
longitude: z.number()
|
|
});
|
|
export const OperatingHoursSchema = z.object({
|
|
sunday: z.string(),
|
|
monday: z.string(),
|
|
tuesday: z.string(),
|
|
wednesday: z.string(),
|
|
thursday: z.string(),
|
|
friday: z.string(),
|
|
saturday: z.string()
|
|
});
|
|
// Extension schemas
|
|
export const AccessibilityExtensionSchema = z.object({
|
|
accessibility: z.array(z.string())
|
|
});
|
|
export const CrowdExtensionSchema = z.object({
|
|
crowd: z.array(z.string())
|
|
});
|
|
export const ExtensionsSchema = z.array(z.union([AccessibilityExtensionSchema, CrowdExtensionSchema]));
|
|
// Locality info schemas
|
|
export const AdministrativeAreaFullSchema = z.object({
|
|
name: z.string(),
|
|
description: z.string(),
|
|
isoName: z.string(),
|
|
order: z.number(),
|
|
adminLevel: z.number(),
|
|
isoCode: z.string(),
|
|
wikidataId: z.string(),
|
|
geonameId: z.number()
|
|
});
|
|
export const AdministrativeAreaMinimalSchema = z.object({
|
|
name: z.string(),
|
|
order: z.number(),
|
|
adminLevel: z.number()
|
|
});
|
|
export const AdministrativeAreaWithWikidataSchema = z.object({
|
|
name: z.string(),
|
|
description: z.string(),
|
|
order: z.number(),
|
|
adminLevel: z.number(),
|
|
wikidataId: z.string()
|
|
});
|
|
export const AdministrativeAreaWithGeonameSchema = z.object({
|
|
name: z.string(),
|
|
description: z.string(),
|
|
order: z.number(),
|
|
adminLevel: z.number(),
|
|
wikidataId: z.string(),
|
|
geonameId: z.number()
|
|
});
|
|
export const InformativeAreaFullSchema = z.object({
|
|
name: z.string(),
|
|
description: z.string(),
|
|
isoName: z.string(),
|
|
order: z.number(),
|
|
isoCode: z.string(),
|
|
wikidataId: z.string(),
|
|
geonameId: z.number()
|
|
});
|
|
export const InformativeAreaBasicSchema = z.object({
|
|
name: z.string(),
|
|
description: z.string(),
|
|
order: z.number()
|
|
});
|
|
export const InformativeAreaWithGeonameSchema = z.object({
|
|
name: z.string(),
|
|
description: z.string(),
|
|
order: z.number(),
|
|
wikidataId: z.string(),
|
|
geonameId: z.number()
|
|
});
|
|
export const InformativeAreaWithWikidataSchema = z.object({
|
|
name: z.string(),
|
|
description: z.string(),
|
|
order: z.number(),
|
|
wikidataId: z.string()
|
|
});
|
|
export const InformativeAreaMinimalSchema = z.object({
|
|
name: z.string(),
|
|
order: z.number()
|
|
});
|
|
export const LocalityInfoSchema = z.object({
|
|
administrative: z.array(z.union([
|
|
AdministrativeAreaFullSchema,
|
|
AdministrativeAreaMinimalSchema,
|
|
AdministrativeAreaWithWikidataSchema,
|
|
AdministrativeAreaWithGeonameSchema
|
|
])),
|
|
informative: z.array(z.union([
|
|
InformativeAreaFullSchema,
|
|
InformativeAreaBasicSchema,
|
|
InformativeAreaWithGeonameSchema,
|
|
InformativeAreaWithWikidataSchema,
|
|
InformativeAreaMinimalSchema
|
|
]))
|
|
});
|
|
// Geo schema
|
|
export const GeoSchema = z.object({
|
|
latitude: z.number(),
|
|
longitude: z.number(),
|
|
localityLanguageRequested: z.string(),
|
|
continent: z.string(),
|
|
continentCode: z.string(),
|
|
countryName: z.string(),
|
|
countryCode: z.string(),
|
|
principalSubdivision: z.string(),
|
|
principalSubdivisionCode: z.string(),
|
|
city: z.string(),
|
|
locality: z.string(),
|
|
postcode: z.string(),
|
|
plusCode: z.string(),
|
|
localityInfo: LocalityInfoSchema
|
|
});
|
|
// Google Media schemas
|
|
export const SearchMetadataSchema = z.object({
|
|
id: z.string(),
|
|
status: z.string(),
|
|
json_endpoint: z.string(),
|
|
created_at: z.string(),
|
|
processed_at: z.string(),
|
|
google_maps_photos_url: z.string(),
|
|
raw_html_file: z.string(),
|
|
prettify_html_file: z.string(),
|
|
total_time_taken: z.number()
|
|
});
|
|
export const SearchParametersSchema = z.object({
|
|
engine: z.string(),
|
|
data_id: z.string(),
|
|
hl: z.string()
|
|
});
|
|
export const CategorySchema = z.object({
|
|
title: z.string(),
|
|
id: z.string()
|
|
});
|
|
export const PhotoSchema = z.object({
|
|
thumbnail: z.string(),
|
|
image: z.string(),
|
|
photo_meta_serpapi_link: z.string()
|
|
});
|
|
export const SerpapiPaginationSchema = z.object({
|
|
next: z.string(),
|
|
next_page_token: z.string()
|
|
});
|
|
export const GoogleMediaSchema = z.object({
|
|
search_metadata: SearchMetadataSchema,
|
|
search_parameters: SearchParametersSchema,
|
|
categories: z.array(CategorySchema),
|
|
photos: z.array(PhotoSchema),
|
|
serpapi_pagination: SerpapiPaginationSchema
|
|
});
|
|
// Raw data schema
|
|
export const LocationSchema = z.object({
|
|
position: z.number(),
|
|
title: z.string(),
|
|
description: z.string(),
|
|
place_id: z.string(),
|
|
data_id: z.string(),
|
|
data_cid: z.string(),
|
|
reviews_link: z.string(),
|
|
photos_link: z.string(),
|
|
gps_coordinates: GpsCoordinatesSchema,
|
|
place_id_search: z.string(),
|
|
provider_id: z.string(),
|
|
type: z.string(),
|
|
types: z.array(z.string()),
|
|
type_id: z.string(),
|
|
type_ids: z.array(z.string()),
|
|
address: z.string(),
|
|
open_state: z.string(),
|
|
hours: z.string(),
|
|
operating_hours: OperatingHoursSchema,
|
|
phone: z.string(),
|
|
website: z.string(),
|
|
extensions: ExtensionsSchema,
|
|
thumbnail: z.string(),
|
|
serpapi_thumbnail: z.string(),
|
|
page: z.number(),
|
|
geo: GeoSchema,
|
|
meta: z.record(z.string(), z.any()),
|
|
google_media: GoogleMediaSchema
|
|
}).partial();
|
|
// Main CompetitorSchemaFull
|
|
export const CompetitorSchemaFull = z.object({
|
|
place_id: z.string(),
|
|
title: z.string(),
|
|
address: z.string().optional().nullable(),
|
|
gps_coordinates: GpsCoordinatesSchema.optional().nullable(),
|
|
phone: z.string().optional().nullable(),
|
|
website: z.string().optional().nullable(),
|
|
operating_hours: OperatingHoursSchema.optional().nullable(),
|
|
thumbnail: z.string().optional().nullable(),
|
|
types: z.array(z.string()).optional().nullable(),
|
|
raw_data: LocationSchema.optional().nullable(),
|
|
continent: z.string().optional().nullable(),
|
|
country: z.string().optional().nullable(),
|
|
city: z.string().optional().nullable(),
|
|
updated_at: z.string().optional().nullable()
|
|
});
|
|
export const CompetitorResponseSchema = z.object({
|
|
message: z.string(),
|
|
data: z.array(CompetitorSchemaFull).optional(),
|
|
});
|
|
export const CompetitorDetailResponseSchema = z.object({
|
|
message: z.string(),
|
|
data: CompetitorSchemaFull.optional(),
|
|
});
|
|
let schemaMap;
|
|
export const CompetitorRequestSchemaMap = () => {
|
|
schemaMap = ZodMetaMap.create();
|
|
schemaMap.add('location', z.string().default('dresden, germany'), { 'ui:group': 'Search Parameters' })
|
|
.add('query', z.string().default('plastichub'), { 'ui:group': 'Search Parameters' })
|
|
.add('filterCity', z.string().optional(), { 'ui:group': 'Filters' })
|
|
.add('filterContinent', z.string().optional(), { 'ui:group': 'Filters' })
|
|
.add('filterCountry', z.string().optional(), { 'ui:group': 'Filters' })
|
|
.add('filterType', z.string().optional(), { 'ui:group': 'Filters' })
|
|
.add('excludedTypes', z.array(z.string()).optional(), { 'ui:group': 'Filters' })
|
|
.add('concurrency', z.string().optional().default('5'), { 'ui:group': 'Settings' })
|
|
.add('refresh', z.boolean().optional().default(false), { 'ui:group': 'Settings' })
|
|
.add('limit', z.string().optional().default('250'), { 'ui:group': 'Settings' });
|
|
return schemaMap;
|
|
};
|
|
export const CompetitorRequestSchema = CompetitorRequestSchemaMap().root();
|
|
export const CompetitorUISchema = CompetitorRequestSchemaMap().getUISchema();
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wZXRpdG9ycy9zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV6RCxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3JDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pDLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3RCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO1FBQ3BCLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0tBQ3hCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDeEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDekMsZUFBZSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEQsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0MsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDekMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNoRSxDQUFDLENBQUE7QUFFRixpQkFBaUI7QUFDakIsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNwQixTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN4QixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2xCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2xCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ25CLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3JCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2xCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3ZCLENBQUMsQ0FBQTtBQUVGLG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pELGFBQWEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztDQUNyQyxDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztDQUM3QixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUNuQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsNEJBQTRCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUNoRSxDQUFBO0FBRUQsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakQsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdkIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbkIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbkIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDeEIsQ0FBQyxDQUFBO0FBRUYsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNwRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNqQixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN6QixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pELElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3ZCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3RCLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3pCLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEQsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdkIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDeEIsQ0FBQyxDQUFBO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN2QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNqQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN0QixTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN4QixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9DLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3ZCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3BCLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDckQsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdkIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDeEIsQ0FBQyxDQUFBO0FBRUYsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN0RCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN2QixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNqQixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN6QixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pELElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3BCLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkMsY0FBYyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQ25CLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDSiw0QkFBNEI7UUFDNUIsK0JBQStCO1FBQy9CLG9DQUFvQztRQUNwQyxtQ0FBbUM7S0FDdEMsQ0FBQyxDQUNMO0lBQ0QsV0FBVyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQ2hCLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDSix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLGdDQUFnQztRQUNoQyxpQ0FBaUM7UUFDakMsNEJBQTRCO0tBQy9CLENBQUMsQ0FDTDtDQUNKLENBQUMsQ0FBQTtBQUVGLGFBQWE7QUFDYixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNwQixTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNyQix5QkFBeUIsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3JDLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3JCLGFBQWEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3pCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3ZCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3ZCLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNwQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNwQixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNwQixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNwQixZQUFZLEVBQUUsa0JBQWtCO0NBQ25DLENBQUMsQ0FBQTtBQUVGLHVCQUF1QjtBQUN2QixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2QsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDekIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDeEIsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNsQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN6QixrQkFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzlCLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDL0IsQ0FBQyxDQUFBO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNsQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNqQixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNqQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNqQixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNoQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNyQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNqQix1QkFBdUIsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3RDLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsZUFBZSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDOUIsQ0FBQyxDQUFBO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN0QyxlQUFlLEVBQUUsb0JBQW9CO0lBQ3JDLGlCQUFpQixFQUFFLHNCQUFzQjtJQUN6QyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7SUFDbkMsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQzVCLGtCQUFrQixFQUFFLHVCQUF1QjtDQUM5QyxDQUFDLENBQUE7QUFFRixrQkFBa0I7QUFDbEIsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdkIsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbkIsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDeEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdkIsZUFBZSxFQUFFLG9CQUFvQjtJQUNyQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMzQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDMUIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbkIsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ25CLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3RCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLGVBQWUsRUFBRSxvQkFBb0I7SUFDckMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbkIsVUFBVSxFQUFFLGdCQUFnQjtJQUM1QixTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNyQixpQkFBaUIsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzdCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLEdBQUcsRUFBRSxTQUFTO0lBQ2QsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNuQyxZQUFZLEVBQUUsaUJBQWlCO0NBQ2xDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtBQUVaLDRCQUE0QjtBQUM1QixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pDLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDekMsZUFBZSxFQUFFLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEQsUUFBUSxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDOUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0MsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDekMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDL0MsQ0FBQyxDQUFBO0FBR0YsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUNqRCxDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ25ELE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ25CLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxRQUFRLEVBQUU7Q0FDeEMsQ0FBQyxDQUFBO0FBVUYsSUFBSSxTQUF3QyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEdBQUcsRUFBRTtJQUMzQyxTQUFTLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBcUIsQ0FBQTtJQUNsRCxTQUFTLENBQUMsR0FBRyxDQUNULFVBQVUsRUFDVixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFRLEVBQzNDLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLENBQUM7U0FDckMsR0FBRyxDQUNBLE9BQU8sRUFDUCxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBUSxFQUNyQyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1NBQ3pDLEdBQUcsQ0FDQSxZQUFZLEVBQ1osQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBUyxFQUMxQixFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztTQUMvQixHQUFHLENBQ0EsaUJBQWlCLEVBQ2pCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQVMsRUFDMUIsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7U0FDL0IsR0FBRyxDQUNBLGVBQWUsRUFDZixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFTLEVBQzFCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDO1NBQy9CLEdBQUcsQ0FDQSxZQUFZLEVBQ1osQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBUyxFQUMxQixFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztTQUMvQixHQUFHLENBQ0EsZUFBZSxFQUNmLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFTLEVBQ25DLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDO1NBQy9CLEdBQUcsQ0FDQSxhQUFhLEVBQ2IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQVEsRUFDdkMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUM7U0FDaEMsR0FBRyxDQUNBLFNBQVMsRUFDVCxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBUSxFQUMxQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQztTQUNoQyxHQUFHLENBQ0EsT0FBTyxFQUNQLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFRLEVBQ3pDLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUE7SUFFckMsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsMEJBQTBCLEVBQUUsQ0FBQyxJQUFJLEVBQVMsQ0FBQztBQUNsRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDIn0=
|