311 lines
45 KiB
Plaintext
311 lines
45 KiB
Plaintext
import { inspect } from "/_nuxt/node_modules/graphql/jsutils/inspect.mjs?v=e4f18c29";
|
|
import { isObjectLike } from "/_nuxt/node_modules/graphql/jsutils/isObjectLike.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 { print } from "/_nuxt/node_modules/graphql/language/printer.mjs?v=e4f18c29";
|
|
import { GraphQLScalarType } from "/_nuxt/node_modules/graphql/type/definition.mjs?v=e4f18c29";
|
|
/**
|
|
* Maximum possible Int value as per GraphQL Spec (32-bit signed integer).
|
|
* n.b. This differs from JavaScript's numbers that are IEEE 754 doubles safe up-to 2^53 - 1
|
|
* */
|
|
|
|
export const GRAPHQL_MAX_INT = 2147483647;
|
|
/**
|
|
* Minimum possible Int value as per GraphQL Spec (32-bit signed integer).
|
|
* n.b. This differs from JavaScript's numbers that are IEEE 754 doubles safe starting at -(2^53 - 1)
|
|
* */
|
|
|
|
export const GRAPHQL_MIN_INT = -2147483648;
|
|
export const GraphQLInt = new GraphQLScalarType({
|
|
name: 'Int',
|
|
description:
|
|
'The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.',
|
|
|
|
serialize(outputValue) {
|
|
const coercedValue = serializeObject(outputValue);
|
|
|
|
if (typeof coercedValue === 'boolean') {
|
|
return coercedValue ? 1 : 0;
|
|
}
|
|
|
|
let num = coercedValue;
|
|
|
|
if (typeof coercedValue === 'string' && coercedValue !== '') {
|
|
num = Number(coercedValue);
|
|
}
|
|
|
|
if (typeof num !== 'number' || !Number.isInteger(num)) {
|
|
throw new GraphQLError(
|
|
`Int cannot represent non-integer value: ${inspect(coercedValue)}`,
|
|
);
|
|
}
|
|
|
|
if (num > GRAPHQL_MAX_INT || num < GRAPHQL_MIN_INT) {
|
|
throw new GraphQLError(
|
|
'Int cannot represent non 32-bit signed integer value: ' +
|
|
inspect(coercedValue),
|
|
);
|
|
}
|
|
|
|
return num;
|
|
},
|
|
|
|
parseValue(inputValue) {
|
|
if (typeof inputValue !== 'number' || !Number.isInteger(inputValue)) {
|
|
throw new GraphQLError(
|
|
`Int cannot represent non-integer value: ${inspect(inputValue)}`,
|
|
);
|
|
}
|
|
|
|
if (inputValue > GRAPHQL_MAX_INT || inputValue < GRAPHQL_MIN_INT) {
|
|
throw new GraphQLError(
|
|
`Int cannot represent non 32-bit signed integer value: ${inputValue}`,
|
|
);
|
|
}
|
|
|
|
return inputValue;
|
|
},
|
|
|
|
parseLiteral(valueNode) {
|
|
if (valueNode.kind !== Kind.INT) {
|
|
throw new GraphQLError(
|
|
`Int cannot represent non-integer value: ${print(valueNode)}`,
|
|
{
|
|
nodes: valueNode,
|
|
},
|
|
);
|
|
}
|
|
|
|
const num = parseInt(valueNode.value, 10);
|
|
|
|
if (num > GRAPHQL_MAX_INT || num < GRAPHQL_MIN_INT) {
|
|
throw new GraphQLError(
|
|
`Int cannot represent non 32-bit signed integer value: ${valueNode.value}`,
|
|
{
|
|
nodes: valueNode,
|
|
},
|
|
);
|
|
}
|
|
|
|
return num;
|
|
},
|
|
});
|
|
export const GraphQLFloat = new GraphQLScalarType({
|
|
name: 'Float',
|
|
description:
|
|
'The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).',
|
|
|
|
serialize(outputValue) {
|
|
const coercedValue = serializeObject(outputValue);
|
|
|
|
if (typeof coercedValue === 'boolean') {
|
|
return coercedValue ? 1 : 0;
|
|
}
|
|
|
|
let num = coercedValue;
|
|
|
|
if (typeof coercedValue === 'string' && coercedValue !== '') {
|
|
num = Number(coercedValue);
|
|
}
|
|
|
|
if (typeof num !== 'number' || !Number.isFinite(num)) {
|
|
throw new GraphQLError(
|
|
`Float cannot represent non numeric value: ${inspect(coercedValue)}`,
|
|
);
|
|
}
|
|
|
|
return num;
|
|
},
|
|
|
|
parseValue(inputValue) {
|
|
if (typeof inputValue !== 'number' || !Number.isFinite(inputValue)) {
|
|
throw new GraphQLError(
|
|
`Float cannot represent non numeric value: ${inspect(inputValue)}`,
|
|
);
|
|
}
|
|
|
|
return inputValue;
|
|
},
|
|
|
|
parseLiteral(valueNode) {
|
|
if (valueNode.kind !== Kind.FLOAT && valueNode.kind !== Kind.INT) {
|
|
throw new GraphQLError(
|
|
`Float cannot represent non numeric value: ${print(valueNode)}`,
|
|
valueNode,
|
|
);
|
|
}
|
|
|
|
return parseFloat(valueNode.value);
|
|
},
|
|
});
|
|
export const GraphQLString = new GraphQLScalarType({
|
|
name: 'String',
|
|
description:
|
|
'The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.',
|
|
|
|
serialize(outputValue) {
|
|
const coercedValue = serializeObject(outputValue); // Serialize string, boolean and number values to a string, but do not
|
|
// attempt to coerce object, function, symbol, or other types as strings.
|
|
|
|
if (typeof coercedValue === 'string') {
|
|
return coercedValue;
|
|
}
|
|
|
|
if (typeof coercedValue === 'boolean') {
|
|
return coercedValue ? 'true' : 'false';
|
|
}
|
|
|
|
if (typeof coercedValue === 'number' && Number.isFinite(coercedValue)) {
|
|
return coercedValue.toString();
|
|
}
|
|
|
|
throw new GraphQLError(
|
|
`String cannot represent value: ${inspect(outputValue)}`,
|
|
);
|
|
},
|
|
|
|
parseValue(inputValue) {
|
|
if (typeof inputValue !== 'string') {
|
|
throw new GraphQLError(
|
|
`String cannot represent a non string value: ${inspect(inputValue)}`,
|
|
);
|
|
}
|
|
|
|
return inputValue;
|
|
},
|
|
|
|
parseLiteral(valueNode) {
|
|
if (valueNode.kind !== Kind.STRING) {
|
|
throw new GraphQLError(
|
|
`String cannot represent a non string value: ${print(valueNode)}`,
|
|
{
|
|
nodes: valueNode,
|
|
},
|
|
);
|
|
}
|
|
|
|
return valueNode.value;
|
|
},
|
|
});
|
|
export const GraphQLBoolean = new GraphQLScalarType({
|
|
name: 'Boolean',
|
|
description: 'The `Boolean` scalar type represents `true` or `false`.',
|
|
|
|
serialize(outputValue) {
|
|
const coercedValue = serializeObject(outputValue);
|
|
|
|
if (typeof coercedValue === 'boolean') {
|
|
return coercedValue;
|
|
}
|
|
|
|
if (Number.isFinite(coercedValue)) {
|
|
return coercedValue !== 0;
|
|
}
|
|
|
|
throw new GraphQLError(
|
|
`Boolean cannot represent a non boolean value: ${inspect(coercedValue)}`,
|
|
);
|
|
},
|
|
|
|
parseValue(inputValue) {
|
|
if (typeof inputValue !== 'boolean') {
|
|
throw new GraphQLError(
|
|
`Boolean cannot represent a non boolean value: ${inspect(inputValue)}`,
|
|
);
|
|
}
|
|
|
|
return inputValue;
|
|
},
|
|
|
|
parseLiteral(valueNode) {
|
|
if (valueNode.kind !== Kind.BOOLEAN) {
|
|
throw new GraphQLError(
|
|
`Boolean cannot represent a non boolean value: ${print(valueNode)}`,
|
|
{
|
|
nodes: valueNode,
|
|
},
|
|
);
|
|
}
|
|
|
|
return valueNode.value;
|
|
},
|
|
});
|
|
export const GraphQLID = new GraphQLScalarType({
|
|
name: 'ID',
|
|
description:
|
|
'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.',
|
|
|
|
serialize(outputValue) {
|
|
const coercedValue = serializeObject(outputValue);
|
|
|
|
if (typeof coercedValue === 'string') {
|
|
return coercedValue;
|
|
}
|
|
|
|
if (Number.isInteger(coercedValue)) {
|
|
return String(coercedValue);
|
|
}
|
|
|
|
throw new GraphQLError(
|
|
`ID cannot represent value: ${inspect(outputValue)}`,
|
|
);
|
|
},
|
|
|
|
parseValue(inputValue) {
|
|
if (typeof inputValue === 'string') {
|
|
return inputValue;
|
|
}
|
|
|
|
if (typeof inputValue === 'number' && Number.isInteger(inputValue)) {
|
|
return inputValue.toString();
|
|
}
|
|
|
|
throw new GraphQLError(`ID cannot represent value: ${inspect(inputValue)}`);
|
|
},
|
|
|
|
parseLiteral(valueNode) {
|
|
if (valueNode.kind !== Kind.STRING && valueNode.kind !== Kind.INT) {
|
|
throw new GraphQLError(
|
|
'ID cannot represent a non-string and non-integer value: ' +
|
|
print(valueNode),
|
|
{
|
|
nodes: valueNode,
|
|
},
|
|
);
|
|
}
|
|
|
|
return valueNode.value;
|
|
},
|
|
});
|
|
export const specifiedScalarTypes = Object.freeze([
|
|
GraphQLString,
|
|
GraphQLInt,
|
|
GraphQLFloat,
|
|
GraphQLBoolean,
|
|
GraphQLID,
|
|
]);
|
|
export function isSpecifiedScalarType(type) {
|
|
return specifiedScalarTypes.some(({ name }) => type.name === name);
|
|
} // Support serializing objects with custom valueOf() or toJSON() functions -
|
|
// a common way to represent a complex value which can be represented as
|
|
// a string (ex: MongoDB id objects).
|
|
|
|
function serializeObject(outputValue) {
|
|
if (isObjectLike(outputValue)) {
|
|
if (typeof outputValue.valueOf === 'function') {
|
|
const valueOfResult = outputValue.valueOf();
|
|
|
|
if (!isObjectLike(valueOfResult)) {
|
|
return valueOfResult;
|
|
}
|
|
}
|
|
|
|
if (typeof outputValue.toJSON === 'function') {
|
|
return outputValue.toJSON();
|
|
}
|
|
}
|
|
|
|
return outputValue;
|
|
}
|
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjYWxhcnMubWpzP3Y9ZTRmMThjMjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5zcGVjdCB9IGZyb20gXCIvX251eHQvbm9kZV9tb2R1bGVzL2dyYXBocWwvanN1dGlscy9pbnNwZWN0Lm1qcz92PWU0ZjE4YzI5XCI7XG5pbXBvcnQgeyBpc09iamVjdExpa2UgfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2pzdXRpbHMvaXNPYmplY3RMaWtlLm1qcz92PWU0ZjE4YzI5XCI7XG5pbXBvcnQgeyBHcmFwaFFMRXJyb3IgfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2Vycm9yL0dyYXBoUUxFcnJvci5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHsgS2luZCB9IGZyb20gXCIvX251eHQvbm9kZV9tb2R1bGVzL2dyYXBocWwvbGFuZ3VhZ2Uva2luZHMubWpzP3Y9ZTRmMThjMjlcIjtcbmltcG9ydCB7IHByaW50IH0gZnJvbSBcIi9fbnV4dC9ub2RlX21vZHVsZXMvZ3JhcGhxbC9sYW5ndWFnZS9wcmludGVyLm1qcz92PWU0ZjE4YzI5XCI7XG5pbXBvcnQgeyBHcmFwaFFMU2NhbGFyVHlwZSB9IGZyb20gXCIvX251eHQvbm9kZV9tb2R1bGVzL2dyYXBocWwvdHlwZS9kZWZpbml0aW9uLm1qcz92PWU0ZjE4YzI5XCI7XG4vKipcbiAqIE1heGltdW0gcG9zc2libGUgSW50IHZhbHVlIGFzIHBlciBHcmFwaFFMIFNwZWMgKDMyLWJpdCBzaWduZWQgaW50ZWdlcikuXG4gKiBuLmIuIFRoaXMgZGlmZmVycyBmcm9tIEphdmFTY3JpcHQncyBudW1iZXJzIHRoYXQgYXJlIElFRUUgNzU0IGRvdWJsZXMgc2FmZSB1cC10byAyXjUzIC0gMVxuICogKi9cblxuZXhwb3J0IGNvbnN0IEdSQVBIUUxfTUFYX0lOVCA9IDIxNDc0ODM2NDc7XG4vKipcbiAqIE1pbmltdW0gcG9zc2libGUgSW50IHZhbHVlIGFzIHBlciBHcmFwaFFMIFNwZWMgKDMyLWJpdCBzaWduZWQgaW50ZWdlcikuXG4gKiBuLmIuIFRoaXMgZGlmZmVycyBmcm9tIEphdmFTY3JpcHQncyBudW1iZXJzIHRoYXQgYXJlIElFRUUgNzU0IGRvdWJsZXMgc2FmZSBzdGFydGluZyBhdCAtKDJeNTMgLSAxKVxuICogKi9cblxuZXhwb3J0IGNvbnN0IEdSQVBIUUxfTUlOX0lOVCA9IC0yMTQ3NDgzNjQ4O1xuZXhwb3J0IGNvbnN0IEdyYXBoUUxJbnQgPSBuZXcgR3JhcGhRTFNjYWxhclR5cGUoe1xuICBuYW1lOiAnSW50JyxcbiAgZGVzY3JpcHRpb246XG4gICAgJ1RoZSBgSW50YCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIG5vbi1mcmFjdGlvbmFsIHNpZ25lZCB3aG9sZSBudW1lcmljIHZhbHVlcy4gSW50IGNhbiByZXByZXNlbnQgdmFsdWVzIGJldHdlZW4gLSgyXjMxKSBhbmQgMl4zMSAtIDEuJyxcblxuICBzZXJpYWxpemUob3V0cHV0VmFsdWUpIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBzZXJpYWxpemVPYmplY3Qob3V0cHV0VmFsdWUpO1xuXG4gICAgaWYgKHR5cGVvZiBjb2VyY2VkVmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIGNvZXJjZWRWYWx1ZSA/IDEgOiAwO1xuICAgIH1cblxuICAgIGxldCBudW0gPSBjb2VyY2VkVmFsdWU7XG5cbiAgICBpZiAodHlwZW9mIGNvZXJjZWRWYWx1ZSA9PT0gJ3N0cmluZycgJiYgY29lcmNlZFZhbHVlICE9PSAnJykge1xuICAgICAgbnVtID0gTnVtYmVyKGNvZXJjZWRWYWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBudW0gIT09ICdudW1iZXInIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKG51bSkpIHtcbiAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IoXG4gICAgICAgIGBJbnQgY2Fubm90IHJlcHJlc2VudCBub24taW50ZWdlciB2YWx1ZTogJHtpbnNwZWN0KGNvZXJjZWRWYWx1ZSl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG51bSA+IEdSQVBIUUxfTUFYX0lOVCB8fCBudW0gPCBHUkFQSFFMX01JTl9JTlQpIHtcbiAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IoXG4gICAgICAgICdJbnQgY2Fubm90IHJlcHJlc2VudCBub24gMzItYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlOiAnICtcbiAgICAgICAgICBpbnNwZWN0KGNvZXJjZWRWYWx1ZSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBudW07XG4gIH0sXG5cbiAgcGFyc2VWYWx1ZShpbnB1dFZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dFZhbHVlICE9PSAnbnVtYmVyJyB8fCAhTnVtYmVyLmlzSW50ZWdlcihpbnB1dFZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoUUxFcnJvcihcbiAgICAgICAgYEludCBjYW5ub3QgcmVwcmVzZW50IG5vbi1pbnRlZ2VyIHZhbHVlOiAke2luc3BlY3QoaW5wdXRWYWx1ZSl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGlucHV0VmFsdWUgPiBHUkFQSFFMX01BWF9JTlQgfHwgaW5wdXRWYWx1ZSA8IEdSQVBIUUxfTUlOX0lOVCkge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoUUxFcnJvcihcbiAgICAgICAgYEludCBjYW5ub3QgcmVwcmVzZW50IG5vbiAzMi1iaXQgc2lnbmVkIGludGVnZXIgdmFsdWU6ICR7aW5wdXRWYWx1ZX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5wdXRWYWx1ZTtcbiAgfSxcblxuICBwYXJzZUxpdGVyYWwodmFsdWVOb2RlKSB7XG4gICAgaWYgKHZhbHVlTm9kZS5raW5kICE9PSBLaW5kLklOVCkge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoUUxFcnJvcihcbiAgICAgICAgYEludCBjYW5ub3QgcmVwcmVzZW50IG5vbi1pbnRlZ2VyIHZhbHVlOiAke3ByaW50KHZhbHVlTm9kZSl9YCxcbiAgICAgICAge1xuICAgICAgICAgIG5vZGVzOiB2YWx1ZU5vZGUsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IG51bSA9IHBhcnNlSW50KHZhbHVlTm9kZS52YWx1ZSwgMTApO1xuXG4gICAgaWYgKG51bSA+IEdSQVBIUUxfTUFYX0lOVCB8fCBudW0gPCBHUkFQSFFMX01JTl9JTlQpIHtcbiAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IoXG4gICAgICAgIGBJbnQgY2Fubm90IHJlcHJlc2VudCBub24gMzItYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlOiAke3ZhbHVlTm9kZS52YWx1ZX1gLFxuICAgICAgICB7XG4gICAgICAgICAgbm9kZXM6IHZhbHVlTm9kZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bTtcbiAgfSxcbn0pO1xuZXhwb3J0IGNvbnN0IEdyYXBoUUxGbG9hdCA9IG5ldyBHcmFwaFFMU2NhbGFyVHlwZSh7XG4gIG5hbWU6ICdGbG9hdCcsXG4gIGRlc2NyaXB0aW9uOlxuICAgICdUaGUgYEZsb2F0YCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIHNpZ25lZCBkb3VibGUtcHJlY2lzaW9uIGZyYWN0aW9uYWwgdmFsdWVzIGFzIHNwZWNpZmllZCBieSBbSUVFRSA3NTRdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lFRUVfZmxvYXRpbmdfcG9pbnQpLicsXG5cbiAgc2VyaWFsaXplKG91dHB1dFZhbHVlKSB7XG4gICAgY29uc3QgY29lcmNlZFZhbHVlID0gc2VyaWFsaXplT2JqZWN0KG91dHB1dFZhbHVlKTtcblxuICAgIGlmICh0eXBlb2YgY29lcmNlZFZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBjb2VyY2VkVmFsdWUgPyAxIDogMDtcbiAgICB9XG5cbiAgICBsZXQgbnVtID0gY29lcmNlZFZhbHVlO1xuXG4gICAgaWYgKHR5cGVvZiBjb2VyY2VkVmFsdWUgPT09ICdzdHJpbmcnICYmIGNvZXJjZWRWYWx1ZSAhPT0gJycpIHtcbiAgICAgIG51bSA9IE51bWJlcihjb2VyY2VkVmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbnVtICE9PSAnbnVtYmVyJyB8fCAhTnVtYmVyLmlzRmluaXRlKG51bSkpIHtcbiAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IoXG4gICAgICAgIGBGbG9hdCBjYW5ub3QgcmVwcmVzZW50IG5vbiBudW1lcmljIHZhbHVlOiAke2luc3BlY3QoY29lcmNlZFZhbHVlKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVtO1xuICB9LFxuXG4gIHBhcnNlVmFsdWUoaW5wdXRWYWx1ZSkge1xuICAgIGlmICh0eXBlb2YgaW5wdXRWYWx1ZSAhPT0gJ251bWJlcicgfHwgIU51bWJlci5pc0Zpbml0ZShpbnB1dFZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoUUxFcnJvcihcbiAgICAgICAgYEZsb2F0IGNhbm5vdCByZXByZXNlbnQgbm9uIG51bWVyaWMgdmFsdWU6ICR7aW5zcGVjdChpbnB1dFZhbHVlKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5wdXRWYWx1ZTtcbiAgfSxcblxuICBwYXJzZUxpdGVyYWwodmFsdWVOb2RlKSB7XG4gICAgaWYgKHZhbHVlTm9kZS5raW5kICE9PSBLaW5kLkZMT0FUICYmIHZhbHVlTm9kZS5raW5kICE9PSBLaW5kLklOVCkge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoUUxFcnJvcihcbiAgICAgICAgYEZsb2F0IGNhbm5vdCByZXByZXNlbnQgbm9uIG51bWVyaWMgdmFsdWU6ICR7cHJpbnQodmFsdWVOb2RlKX1gLFxuICAgICAgICB2YWx1ZU5vZGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlTm9kZS52YWx1ZSk7XG4gIH0sXG59KTtcbmV4cG9ydCBjb25zdCBHcmFwaFFMU3RyaW5nID0gbmV3IEdyYXBoUUxTY2FsYXJUeXBlKHtcbiAgbmFtZTogJ1N0cmluZycsXG4gIGRlc2NyaXB0aW9uOlxuICAgICdUaGUgYFN0cmluZ2Agc2NhbGFyIHR5cGUgcmVwcmVzZW50cyB0ZXh0dWFsIGRhdGEsIHJlcHJlc2VudGVkIGFzIFVURi04IGNoYXJhY3RlciBzZXF1ZW5jZXMuIFRoZSBTdHJpbmcgdHlwZSBpcyBtb3N0IG9mdGVuIHVzZWQgYnkgR3JhcGhRTCB0byByZXByZXNlbnQgZnJlZS1mb3JtIGh1bWFuLXJlYWRhYmxlIHRleHQuJyxcblxuICBzZXJpYWxpemUob3V0cHV0VmFsdWUpIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBzZXJpYWxpemVPYmplY3Qob3V0cHV0VmFsdWUpOyAvLyBTZXJpYWxpemUgc3RyaW5nLCBib29sZWFuIGFuZCBudW1iZXIgdmFsdWVzIHRvIGEgc3RyaW5nLCBidXQgZG8gbm90XG4gICAgLy8gYXR0ZW1wdCB0byBjb2VyY2Ugb2JqZWN0LCBmdW5jdGlvbiwgc3ltYm9sLCBvciBvdGhlciB0eXBlcyBhcyBzdHJpbmdzLlxuXG4gICAgaWYgKHR5cGVvZiBjb2VyY2VkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gY29lcmNlZFZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29lcmNlZFZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBjb2VyY2VkVmFsdWUgPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29lcmNlZFZhbHVlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNGaW5pdGUoY29lcmNlZFZhbHVlKSkge1xuICAgICAgcmV0dXJuIGNvZXJjZWRWYWx1ZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IoXG4gICAgICBgU3RyaW5nIGNhbm5vdCByZXByZXNlbnQgdmFsdWU6ICR7aW5zcGVjdChvdXRwdXRWYWx1ZSl9YCxcbiAgICApO1xuICB9LFxuXG4gIHBhcnNlVmFsdWUoaW5wdXRWYWx1ZSkge1xuICAgIGlmICh0eXBlb2YgaW5wdXRWYWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IoXG4gICAgICAgIGBTdHJpbmcgY2Fubm90IHJlcHJlc2VudCBhIG5vbiBzdHJpbmcgdmFsdWU6ICR7aW5zcGVjdChpbnB1dFZhbHVlKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5wdXRWYWx1ZTtcbiAgfSxcblxuICBwYXJzZUxpdGVyYWwodmFsdWVOb2RlKSB7XG4gICAgaWYgKHZhbHVlTm9kZS5raW5kICE9PSBLaW5kLlNUUklORykge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoUUxFcnJvcihcbiAgICAgICAgYFN0cmluZyBjYW5ub3QgcmVwcmVzZW50IGEgbm9uIHN0cmluZyB2YWx1ZTogJHtwcmludCh2YWx1ZU5vZGUpfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBub2RlczogdmFsdWVOb2RlLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVOb2RlLnZhbHVlO1xuICB9LFxufSk7XG5leHBvcnQgY29uc3QgR3JhcGhRTEJvb2xlYW4gPSBuZXcgR3JhcGhRTFNjYWxhclR5cGUoe1xuICBuYW1lOiAnQm9vbGVhbicsXG4gIGRlc2NyaXB0aW9uOiAnVGhlIGBCb29sZWFuYCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIGB0cnVlYCBvciBgZmFsc2VgLicsXG5cbiAgc2VyaWFsaXplKG91dHB1dFZhbHVlKSB7XG4gICAgY29uc3QgY29lcmNlZFZhbHVlID0gc2VyaWFsaXplT2JqZWN0KG91dHB1dFZhbHVlKTtcblxuICAgIGlmICh0eXBlb2YgY29lcmNlZFZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBjb2VyY2VkVmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZShjb2VyY2VkVmFsdWUpKSB7XG4gICAgICByZXR1cm4gY29lcmNlZFZhbHVlICE9PSAwO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IoXG4gICAgICBgQm9vbGVhbiBjYW5ub3QgcmVwcmVzZW50IGEgbm9uIGJvb2xlYW4gdmFsdWU6ICR7aW5zcGVjdChjb2VyY2VkVmFsdWUpfWAsXG4gICAgKTtcbiAgfSxcblxuICBwYXJzZVZhbHVlKGlucHV0VmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIGlucHV0VmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoUUxFcnJvcihcbiAgICAgICAgYEJvb2xlYW4gY2Fubm90IHJlcHJlc2VudCBhIG5vbiBib29sZWFuIHZhbHVlOiAke2luc3BlY3QoaW5wdXRWYWx1ZSl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlucHV0VmFsdWU7XG4gIH0sXG5cbiAgcGFyc2VMaXRlcmFsKHZhbHVlTm9kZSkge1xuICAgIGlmICh2YWx1ZU5vZGUua2luZCAhPT0gS2luZC5CT09MRUFOKSB7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhRTEVycm9yKFxuICAgICAgICBgQm9vbGVhbiBjYW5ub3QgcmVwcmVzZW50IGEgbm9uIGJvb2xlYW4gdmFsdWU6ICR7cHJpbnQodmFsdWVOb2RlKX1gLFxuICAgICAgICB7XG4gICAgICAgICAgbm9kZXM6IHZhbHVlTm9kZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlTm9kZS52YWx1ZTtcbiAgfSxcbn0pO1xuZXhwb3J0IGNvbnN0IEdyYXBoUUxJRCA9IG5ldyBHcmFwaFFMU2NhbGFyVHlwZSh7XG4gIG5hbWU6ICdJRCcsXG4gIGRlc2NyaXB0aW9uOlxuICAgICdUaGUgYElEYCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIGEgdW5pcXVlIGlkZW50aWZpZXIsIG9mdGVuIHVzZWQgdG8gcmVmZXRjaCBhbiBvYmplY3Qgb3IgYXMga2V5IGZvciBhIGNhY2hlLiBUaGUgSUQgdHlwZSBhcHBlYXJzIGluIGEgSlNPTiByZXNwb25zZSBhcyBhIFN0cmluZzsgaG93ZXZlciwgaXQgaXMgbm90IGludGVuZGVkIHRvIGJlIGh1bWFuLXJlYWRhYmxlLiBXaGVuIGV4cGVjdGVkIGFzIGFuIGlucHV0IHR5cGUsIGFueSBzdHJpbmcgKHN1Y2ggYXMgYFwiNFwiYCkgb3IgaW50ZWdlciAoc3VjaCBhcyBgNGApIGlucHV0IHZhbHVlIHdpbGwgYmUgYWNjZXB0ZWQgYXMgYW4gSUQuJyxcblxuICBzZXJpYWxpemUob3V0cHV0VmFsdWUpIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBzZXJpYWxpemVPYmplY3Qob3V0cHV0VmFsdWUpO1xuXG4gICAgaWYgKHR5cGVvZiBjb2VyY2VkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gY29lcmNlZFZhbHVlO1xuICAgIH1cblxuICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGNvZXJjZWRWYWx1ZSkpIHtcbiAgICAgIHJldHVybiBTdHJpbmcoY29lcmNlZFZhbHVlKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgR3JhcGhRTEVycm9yKFxuICAgICAgYElEIGNhbm5vdCByZXByZXNlbnQgdmFsdWU6ICR7aW5zcGVjdChvdXRwdXRWYWx1ZSl9YCxcbiAgICApO1xuICB9LFxuXG4gIHBhcnNlVmFsdWUoaW5wdXRWYWx1ZSkge1xuICAgIGlmICh0eXBlb2YgaW5wdXRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBpbnB1dFZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5wdXRWYWx1ZSA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzSW50ZWdlcihpbnB1dFZhbHVlKSkge1xuICAgICAgcmV0dXJuIGlucHV0VmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgR3JhcGhRTEVycm9yKGBJRCBjYW5ub3QgcmVwcmVzZW50IHZhbHVlOiAke2luc3BlY3QoaW5wdXRWYWx1ZSl9YCk7XG4gIH0sXG5cbiAgcGFyc2VMaXRlcmFsKHZhbHVlTm9kZSkge1xuICAgIGlmICh2YWx1ZU5vZGUua2luZCAhPT0gS2luZC5TVFJJTkcgJiYgdmFsdWVOb2RlLmtpbmQgIT09IEtpbmQuSU5UKSB7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhRTEVycm9yKFxuICAgICAgICAnSUQgY2Fubm90IHJlcHJlc2VudCBhIG5vbi1zdHJpbmcgYW5kIG5vbi1pbnRlZ2VyIHZhbHVlOiAnICtcbiAgICAgICAgICBwcmludCh2YWx1ZU5vZGUpLFxuICAgICAgICB7XG4gICAgICAgICAgbm9kZXM6IHZhbHVlTm9kZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlTm9kZS52YWx1ZTtcbiAgfSxcbn0pO1xuZXhwb3J0IGNvbnN0IHNwZWNpZmllZFNjYWxhclR5cGVzID0gT2JqZWN0LmZyZWV6ZShbXG4gIEdyYXBoUUxTdHJpbmcsXG4gIEdyYXBoUUxJbnQsXG4gIEdyYXBoUUxGbG9hdCxcbiAgR3JhcGhRTEJvb2xlYW4sXG4gIEdyYXBoUUxJRCxcbl0pO1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3BlY2lmaWVkU2NhbGFyVHlwZSh0eXBlKSB7XG4gIHJldHVybiBzcGVjaWZpZWRTY2FsYXJUeXBlcy5zb21lKCh7IG5hbWUgfSkgPT4gdHlwZS5uYW1lID09PSBuYW1lKTtcbn0gLy8gU3VwcG9ydCBzZXJpYWxpemluZyBvYmplY3RzIHdpdGggY3VzdG9tIHZhbHVlT2YoKSBvciB0b0pTT04oKSBmdW5jdGlvbnMgLVxuLy8gYSBjb21tb24gd2F5IHRvIHJlcHJlc2VudCBhIGNvbXBsZXggdmFsdWUgd2hpY2ggY2FuIGJlIHJlcHJlc2VudGVkIGFzXG4vLyBhIHN0cmluZyAoZXg6IE1vbmdvREIgaWQgb2JqZWN0cykuXG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZU9iamVjdChvdXRwdXRWYWx1ZSkge1xuICBpZiAoaXNPYmplY3RMaWtlKG91dHB1dFZhbHVlKSkge1xuICAgIGlmICh0eXBlb2Ygb3V0cHV0VmFsdWUudmFsdWVPZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgdmFsdWVPZlJlc3VsdCA9IG91dHB1dFZhbHVlLnZhbHVlT2YoKTtcblxuICAgICAgaWYgKCFpc09iamVjdExpa2UodmFsdWVPZlJlc3VsdCkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlT2ZSZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvdXRwdXRWYWx1ZS50b0pTT04gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBvdXRwdXRWYWx1ZS50b0pTT04oKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0VmFsdWU7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUNwRixNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQzlGLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDNUYsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUNoRixNQUFNLENBQUMsQ0FBQyxD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QUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZOztBQUUxQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVk7QUFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWTtBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRztBQUNkLENBQUMsQ0FBQyxDQUFDOztBQUVILENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVk7QUFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3RFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWTtBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFSixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0FBQ3JCLENBQUMsQ0FBQyxDQUFDOztBQUVILENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWTtBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUNyRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFSixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDOztBQUU3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZO0FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFSixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHO0FBQ2QsQ0FBQyxDQUFDLENBQUM7QUFDSCxDQUFDLENBQUM7QUFDRixNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDO0FBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyxXQUFXO0FBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDOztBQUVqSyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQzs7QUFFckQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUVKLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWTs7QUFFMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztBQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUVKLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZO0FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUVKLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUc7QUFDZCxDQUFDLENBQUMsQ0FBQzs7QUFFSCxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZO0FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUVKLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVU7QUFDckIsQ0FBQyxDQUFDLENBQUM7O0FBRUgsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZO0FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0FBQ2pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUVKLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0FBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztBQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDLFdBQVc7QUFDYixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRTNMLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUMxSCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPOztBQUU1RSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVk7QUFDekIsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFSixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFSixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxD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Q3pDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWTtBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDOUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVTtBQUNyQixDQUFDLENBQUMsQ0FBQzs7QUFFSCxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVk7QUFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUztBQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztB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QUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVU7QUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFSixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQyxDQUFDOztBQUVILENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWTtBQUM1QixDQUFDLENBQUMs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 |