150 lines
21 KiB
Plaintext
150 lines
21 KiB
Plaintext
import { didYouMean } from "/_nuxt/node_modules/graphql/jsutils/didYouMean.mjs?v=e4f18c29";
|
|
import { inspect } from "/_nuxt/node_modules/graphql/jsutils/inspect.mjs?v=e4f18c29";
|
|
import { invariant } from "/_nuxt/node_modules/graphql/jsutils/invariant.mjs?v=e4f18c29";
|
|
import { suggestionList } from "/_nuxt/node_modules/graphql/jsutils/suggestionList.mjs?v=e4f18c29";
|
|
import { GraphQLError } from "/_nuxt/node_modules/graphql/error/GraphQLError.mjs?v=e4f18c29";
|
|
import { Kind } from "/_nuxt/node_modules/graphql/language/kinds.mjs?v=e4f18c29";
|
|
import { isTypeDefinitionNode } from "/_nuxt/node_modules/graphql/language/predicates.mjs?v=e4f18c29";
|
|
import {
|
|
isEnumType,
|
|
isInputObjectType,
|
|
isInterfaceType,
|
|
isObjectType,
|
|
isScalarType,
|
|
isUnionType,
|
|
} from "/_nuxt/node_modules/graphql/type/definition.mjs?v=e4f18c29";
|
|
|
|
/**
|
|
* Possible type extension
|
|
*
|
|
* A type extension is only valid if the type is defined and has the same kind.
|
|
*/
|
|
export function PossibleTypeExtensionsRule(context) {
|
|
const schema = context.getSchema();
|
|
const definedTypes = Object.create(null);
|
|
|
|
for (const def of context.getDocument().definitions) {
|
|
if (isTypeDefinitionNode(def)) {
|
|
definedTypes[def.name.value] = def;
|
|
}
|
|
}
|
|
|
|
return {
|
|
ScalarTypeExtension: checkExtension,
|
|
ObjectTypeExtension: checkExtension,
|
|
InterfaceTypeExtension: checkExtension,
|
|
UnionTypeExtension: checkExtension,
|
|
EnumTypeExtension: checkExtension,
|
|
InputObjectTypeExtension: checkExtension,
|
|
};
|
|
|
|
function checkExtension(node) {
|
|
const typeName = node.name.value;
|
|
const defNode = definedTypes[typeName];
|
|
const existingType =
|
|
schema === null || schema === void 0 ? void 0 : schema.getType(typeName);
|
|
let expectedKind;
|
|
|
|
if (defNode) {
|
|
expectedKind = defKindToExtKind[defNode.kind];
|
|
} else if (existingType) {
|
|
expectedKind = typeToExtKind(existingType);
|
|
}
|
|
|
|
if (expectedKind) {
|
|
if (expectedKind !== node.kind) {
|
|
const kindStr = extensionKindToTypeName(node.kind);
|
|
context.reportError(
|
|
new GraphQLError(`Cannot extend non-${kindStr} type "${typeName}".`, {
|
|
nodes: defNode ? [defNode, node] : node,
|
|
}),
|
|
);
|
|
}
|
|
} else {
|
|
const allTypeNames = Object.keys({
|
|
...definedTypes,
|
|
...(schema === null || schema === void 0
|
|
? void 0
|
|
: schema.getTypeMap()),
|
|
});
|
|
const suggestedTypes = suggestionList(typeName, allTypeNames);
|
|
context.reportError(
|
|
new GraphQLError(
|
|
`Cannot extend type "${typeName}" because it is not defined.` +
|
|
didYouMean(suggestedTypes),
|
|
{
|
|
nodes: node.name,
|
|
},
|
|
),
|
|
);
|
|
}
|
|
}
|
|
}
|
|
const defKindToExtKind = {
|
|
[Kind.SCALAR_TYPE_DEFINITION]: Kind.SCALAR_TYPE_EXTENSION,
|
|
[Kind.OBJECT_TYPE_DEFINITION]: Kind.OBJECT_TYPE_EXTENSION,
|
|
[Kind.INTERFACE_TYPE_DEFINITION]: Kind.INTERFACE_TYPE_EXTENSION,
|
|
[Kind.UNION_TYPE_DEFINITION]: Kind.UNION_TYPE_EXTENSION,
|
|
[Kind.ENUM_TYPE_DEFINITION]: Kind.ENUM_TYPE_EXTENSION,
|
|
[Kind.INPUT_OBJECT_TYPE_DEFINITION]: Kind.INPUT_OBJECT_TYPE_EXTENSION,
|
|
};
|
|
|
|
function typeToExtKind(type) {
|
|
if (isScalarType(type)) {
|
|
return Kind.SCALAR_TYPE_EXTENSION;
|
|
}
|
|
|
|
if (isObjectType(type)) {
|
|
return Kind.OBJECT_TYPE_EXTENSION;
|
|
}
|
|
|
|
if (isInterfaceType(type)) {
|
|
return Kind.INTERFACE_TYPE_EXTENSION;
|
|
}
|
|
|
|
if (isUnionType(type)) {
|
|
return Kind.UNION_TYPE_EXTENSION;
|
|
}
|
|
|
|
if (isEnumType(type)) {
|
|
return Kind.ENUM_TYPE_EXTENSION;
|
|
}
|
|
|
|
if (isInputObjectType(type)) {
|
|
return Kind.INPUT_OBJECT_TYPE_EXTENSION;
|
|
}
|
|
/* c8 ignore next 3 */
|
|
// Not reachable. All possible types have been considered
|
|
|
|
false || invariant(false, 'Unexpected type: ' + inspect(type));
|
|
}
|
|
|
|
function extensionKindToTypeName(kind) {
|
|
switch (kind) {
|
|
case Kind.SCALAR_TYPE_EXTENSION:
|
|
return 'scalar';
|
|
|
|
case Kind.OBJECT_TYPE_EXTENSION:
|
|
return 'object';
|
|
|
|
case Kind.INTERFACE_TYPE_EXTENSION:
|
|
return 'interface';
|
|
|
|
case Kind.UNION_TYPE_EXTENSION:
|
|
return 'union';
|
|
|
|
case Kind.ENUM_TYPE_EXTENSION:
|
|
return 'enum';
|
|
|
|
case Kind.INPUT_OBJECT_TYPE_EXTENSION:
|
|
return 'input object';
|
|
// Not reachable. All possible types have been considered
|
|
|
|
/* c8 ignore next */
|
|
|
|
default:
|
|
false || invariant(false, 'Unexpected kind: ' + inspect(kind));
|
|
}
|
|
}
|
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlBvc3NpYmxlVHlwZUV4dGVuc2lvbnNSdWxlLm1qcz92PWU0ZjE4YzI5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpZFlvdU1lYW4gfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2pzdXRpbHMvZGlkWW91TWVhbi5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHsgaW5zcGVjdCB9IGZyb20gXCIvX251eHQvbm9kZV9tb2R1bGVzL2dyYXBocWwvanN1dGlscy9pbnNwZWN0Lm1qcz92PWU0ZjE4YzI5XCI7XG5pbXBvcnQgeyBpbnZhcmlhbnQgfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2pzdXRpbHMvaW52YXJpYW50Lm1qcz92PWU0ZjE4YzI5XCI7XG5pbXBvcnQgeyBzdWdnZXN0aW9uTGlzdCB9IGZyb20gXCIvX251eHQvbm9kZV9tb2R1bGVzL2dyYXBocWwvanN1dGlscy9zdWdnZXN0aW9uTGlzdC5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHsgR3JhcGhRTEVycm9yIH0gZnJvbSBcIi9fbnV4dC9ub2RlX21vZHVsZXMvZ3JhcGhxbC9lcnJvci9HcmFwaFFMRXJyb3IubWpzP3Y9ZTRmMThjMjlcIjtcbmltcG9ydCB7IEtpbmQgfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2xhbmd1YWdlL2tpbmRzLm1qcz92PWU0ZjE4YzI5XCI7XG5pbXBvcnQgeyBpc1R5cGVEZWZpbml0aW9uTm9kZSB9IGZyb20gXCIvX251eHQvbm9kZV9tb2R1bGVzL2dyYXBocWwvbGFuZ3VhZ2UvcHJlZGljYXRlcy5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHtcbiAgaXNFbnVtVHlwZSxcbiAgaXNJbnB1dE9iamVjdFR5cGUsXG4gIGlzSW50ZXJmYWNlVHlwZSxcbiAgaXNPYmplY3RUeXBlLFxuICBpc1NjYWxhclR5cGUsXG4gIGlzVW5pb25UeXBlLFxufSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL3R5cGUvZGVmaW5pdGlvbi5tanM/dj1lNGYxOGMyOVwiO1xuXG4vKipcbiAqIFBvc3NpYmxlIHR5cGUgZXh0ZW5zaW9uXG4gKlxuICogQSB0eXBlIGV4dGVuc2lvbiBpcyBvbmx5IHZhbGlkIGlmIHRoZSB0eXBlIGlzIGRlZmluZWQgYW5kIGhhcyB0aGUgc2FtZSBraW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUG9zc2libGVUeXBlRXh0ZW5zaW9uc1J1bGUoY29udGV4dCkge1xuICBjb25zdCBzY2hlbWEgPSBjb250ZXh0LmdldFNjaGVtYSgpO1xuICBjb25zdCBkZWZpbmVkVHlwZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gIGZvciAoY29uc3QgZGVmIG9mIGNvbnRleHQuZ2V0RG9jdW1lbnQoKS5kZWZpbml0aW9ucykge1xuICAgIGlmIChpc1R5cGVEZWZpbml0aW9uTm9kZShkZWYpKSB7XG4gICAgICBkZWZpbmVkVHlwZXNbZGVmLm5hbWUudmFsdWVdID0gZGVmO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgU2NhbGFyVHlwZUV4dGVuc2lvbjogY2hlY2tFeHRlbnNpb24sXG4gICAgT2JqZWN0VHlwZUV4dGVuc2lvbjogY2hlY2tFeHRlbnNpb24sXG4gICAgSW50ZXJmYWNlVHlwZUV4dGVuc2lvbjogY2hlY2tFeHRlbnNpb24sXG4gICAgVW5pb25UeXBlRXh0ZW5zaW9uOiBjaGVja0V4dGVuc2lvbixcbiAgICBFbnVtVHlwZUV4dGVuc2lvbjogY2hlY2tFeHRlbnNpb24sXG4gICAgSW5wdXRPYmplY3RUeXBlRXh0ZW5zaW9uOiBjaGVja0V4dGVuc2lvbixcbiAgfTtcblxuICBmdW5jdGlvbiBjaGVja0V4dGVuc2lvbihub2RlKSB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBub2RlLm5hbWUudmFsdWU7XG4gICAgY29uc3QgZGVmTm9kZSA9IGRlZmluZWRUeXBlc1t0eXBlTmFtZV07XG4gICAgY29uc3QgZXhpc3RpbmdUeXBlID1cbiAgICAgIHNjaGVtYSA9PT0gbnVsbCB8fCBzY2hlbWEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaGVtYS5nZXRUeXBlKHR5cGVOYW1lKTtcbiAgICBsZXQgZXhwZWN0ZWRLaW5kO1xuXG4gICAgaWYgKGRlZk5vZGUpIHtcbiAgICAgIGV4cGVjdGVkS2luZCA9IGRlZktpbmRUb0V4dEtpbmRbZGVmTm9kZS5raW5kXTtcbiAgICB9IGVsc2UgaWYgKGV4aXN0aW5nVHlwZSkge1xuICAgICAgZXhwZWN0ZWRLaW5kID0gdHlwZVRvRXh0S2luZChleGlzdGluZ1R5cGUpO1xuICAgIH1cblxuICAgIGlmIChleHBlY3RlZEtpbmQpIHtcbiAgICAgIGlmIChleHBlY3RlZEtpbmQgIT09IG5vZGUua2luZCkge1xuICAgICAgICBjb25zdCBraW5kU3RyID0gZXh0ZW5zaW9uS2luZFRvVHlwZU5hbWUobm9kZS5raW5kKTtcbiAgICAgICAgY29udGV4dC5yZXBvcnRFcnJvcihcbiAgICAgICAgICBuZXcgR3JhcGhRTEVycm9yKGBDYW5ub3QgZXh0ZW5kIG5vbi0ke2tpbmRTdHJ9IHR5cGUgXCIke3R5cGVOYW1lfVwiLmAsIHtcbiAgICAgICAgICAgIG5vZGVzOiBkZWZOb2RlID8gW2RlZk5vZGUsIG5vZGVdIDogbm9kZSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYWxsVHlwZU5hbWVzID0gT2JqZWN0LmtleXMoe1xuICAgICAgICAuLi5kZWZpbmVkVHlwZXMsXG4gICAgICAgIC4uLihzY2hlbWEgPT09IG51bGwgfHwgc2NoZW1hID09PSB2b2lkIDBcbiAgICAgICAgICA/IHZvaWQgMFxuICAgICAgICAgIDogc2NoZW1hLmdldFR5cGVNYXAoKSksXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHN1Z2dlc3RlZFR5cGVzID0gc3VnZ2VzdGlvbkxpc3QodHlwZU5hbWUsIGFsbFR5cGVOYW1lcyk7XG4gICAgICBjb250ZXh0LnJlcG9ydEVycm9yKFxuICAgICAgICBuZXcgR3JhcGhRTEVycm9yKFxuICAgICAgICAgIGBDYW5ub3QgZXh0ZW5kIHR5cGUgXCIke3R5cGVOYW1lfVwiIGJlY2F1c2UgaXQgaXMgbm90IGRlZmluZWQuYCArXG4gICAgICAgICAgICBkaWRZb3VNZWFuKHN1Z2dlc3RlZFR5cGVzKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBub2Rlczogbm9kZS5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuY29uc3QgZGVmS2luZFRvRXh0S2luZCA9IHtcbiAgW0tpbmQuU0NBTEFSX1RZUEVfREVGSU5JVElPTl06IEtpbmQuU0NBTEFSX1RZUEVfRVhURU5TSU9OLFxuICBbS2luZC5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OXTogS2luZC5PQkpFQ1RfVFlQRV9FWFRFTlNJT04sXG4gIFtLaW5kLklOVEVSRkFDRV9UWVBFX0RFRklOSVRJT05dOiBLaW5kLklOVEVSRkFDRV9UWVBFX0VYVEVOU0lPTixcbiAgW0tpbmQuVU5JT05fVFlQRV9ERUZJTklUSU9OXTogS2luZC5VTklPTl9UWVBFX0VYVEVOU0lPTixcbiAgW0tpbmQuRU5VTV9UWVBFX0RFRklOSVRJT05dOiBLaW5kLkVOVU1fVFlQRV9FWFRFTlNJT04sXG4gIFtLaW5kLklOUFVUX09CSkVDVF9UWVBFX0RFRklOSVRJT05dOiBLaW5kLklOUFVUX09CSkVDVF9UWVBFX0VYVEVOU0lPTixcbn07XG5cbmZ1bmN0aW9uIHR5cGVUb0V4dEtpbmQodHlwZSkge1xuICBpZiAoaXNTY2FsYXJUeXBlKHR5cGUpKSB7XG4gICAgcmV0dXJuIEtpbmQuU0NBTEFSX1RZUEVfRVhURU5TSU9OO1xuICB9XG5cbiAgaWYgKGlzT2JqZWN0VHlwZSh0eXBlKSkge1xuICAgIHJldHVybiBLaW5kLk9CSkVDVF9UWVBFX0VYVEVOU0lPTjtcbiAgfVxuXG4gIGlmIChpc0ludGVyZmFjZVR5cGUodHlwZSkpIHtcbiAgICByZXR1cm4gS2luZC5JTlRFUkZBQ0VfVFlQRV9FWFRFTlNJT047XG4gIH1cblxuICBpZiAoaXNVbmlvblR5cGUodHlwZSkpIHtcbiAgICByZXR1cm4gS2luZC5VTklPTl9UWVBFX0VYVEVOU0lPTjtcbiAgfVxuXG4gIGlmIChpc0VudW1UeXBlKHR5cGUpKSB7XG4gICAgcmV0dXJuIEtpbmQuRU5VTV9UWVBFX0VYVEVOU0lPTjtcbiAgfVxuXG4gIGlmIChpc0lucHV0T2JqZWN0VHlwZSh0eXBlKSkge1xuICAgIHJldHVybiBLaW5kLklOUFVUX09CSkVDVF9UWVBFX0VYVEVOU0lPTjtcbiAgfVxuICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gIC8vIE5vdCByZWFjaGFibGUuIEFsbCBwb3NzaWJsZSB0eXBlcyBoYXZlIGJlZW4gY29uc2lkZXJlZFxuXG4gIGZhbHNlIHx8IGludmFyaWFudChmYWxzZSwgJ1VuZXhwZWN0ZWQgdHlwZTogJyArIGluc3BlY3QodHlwZSkpO1xufVxuXG5mdW5jdGlvbiBleHRlbnNpb25LaW5kVG9UeXBlTmFtZShraW5kKSB7XG4gIHN3aXRjaCAoa2luZCkge1xuICAgIGNhc2UgS2luZC5TQ0FMQVJfVFlQRV9FWFRFTlNJT046XG4gICAgICByZXR1cm4gJ3NjYWxhcic7XG5cbiAgICBjYXNlIEtpbmQuT0JKRUNUX1RZUEVfRVhURU5TSU9OOlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuXG4gICAgY2FzZSBLaW5kLklOVEVSRkFDRV9UWVBFX0VYVEVOU0lPTjpcbiAgICAgIHJldHVybiAnaW50ZXJmYWNlJztcblxuICAgIGNhc2UgS2luZC5VTklPTl9UWVBFX0VYVEVOU0lPTjpcbiAgICAgIHJldHVybiAndW5pb24nO1xuXG4gICAgY2FzZSBLaW5kLkVOVU1fVFlQRV9FWFRFTlNJT046XG4gICAgICByZXR1cm4gJ2VudW0nO1xuXG4gICAgY2FzZSBLaW5kLklOUFVUX09CSkVDVF9UWVBFX0VYVEVOU0lPTjpcbiAgICAgIHJldHVybiAnaW5wdXQgb2JqZWN0JztcbiAgICAvLyBOb3QgcmVhY2hhYmxlLiBBbGwgcG9zc2libGUgdHlwZXMgaGF2ZSBiZWVuIGNvbnNpZGVyZWRcblxuICAgIC8qIGM4IGlnbm9yZSBuZXh0ICovXG5cbiAgICBkZWZhdWx0OlxuICAgICAgZmFsc2UgfHwgaW52YXJpYW50KGZhbHNlLCAnVW5leHBlY3RlZCBraW5kOiAnICsgaW5zcGVjdChraW5kKSk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQzFGLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDcEYsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUN4RixNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ2xHLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFD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QyxPQUFPLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDMUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXO0FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7QUFDbkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ1gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztBQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWTtBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQy9DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDO0FBQ25FLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWTtBQUN4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO0FBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSTtBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBQ0Y7QUFDQSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtBQUMzRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUI7QUFDM0QsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCO0FBQ2pFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQjtBQUN6RCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUI7QUFDdkQsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCO0FBQ3ZFLENBQUM7O0FBRUQsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtBQUNyQyxDQUFDLENBQUM7O0FBRUYsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUI7QUFDckMsQ0FBQyxDQUFDOztBQUVGLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCO0FBQ3hDLENBQUMsQ0FBQzs7QUFFRixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQjtBQUNwQyxDQUFDLENBQUM7O0FBRUYsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUI7QUFDbkMsQ0FBQyxDQUFDOztBQUVGLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkI7QUFDM0MsQ0FBQyxDQUFDO0FBQ0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzs7QUFFakQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEU7O0FBRUEsUUFBUSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCO0FBQ25DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQzs7QUFFckIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtBQUNuQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUM7O0FBRXJCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0I7QUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDOztBQUV4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CO0FBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQzs7QUFFcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtBQUNqQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUM7O0FBRW5CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkI7QUFDekMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUMzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOztBQUVuRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRXZCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztBQUNYLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEUsQ0FBQyxDQUFDO0FBQ0Y7In0= |