payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
186 lines (185 loc) • 22.6 kB
JavaScript
/* eslint-disable no-param-reassign */ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _graphql = require("graphql");
const _pluralize = require("pluralize");
const _buildMutationInputType = /*#__PURE__*/ _interop_require_default(require("../../graphql/schema/buildMutationInputType"));
const _buildObjectType = /*#__PURE__*/ _interop_require_default(require("../../graphql/schema/buildObjectType"));
const _buildPaginatedListType = /*#__PURE__*/ _interop_require_default(require("../../graphql/schema/buildPaginatedListType"));
const _buildPoliciesType = require("../../graphql/schema/buildPoliciesType");
const _buildWhereInputType = /*#__PURE__*/ _interop_require_default(require("../../graphql/schema/buildWhereInputType"));
const _formatName = /*#__PURE__*/ _interop_require_default(require("../../graphql/utilities/formatName"));
const _formatLabels = require("../../utilities/formatLabels");
const _buildGlobalFields = require("../../versions/buildGlobalFields");
const _docAccess = require("./resolvers/docAccess");
const _findOne = /*#__PURE__*/ _interop_require_default(require("./resolvers/findOne"));
const _findVersionByID = /*#__PURE__*/ _interop_require_default(require("./resolvers/findVersionByID"));
const _findVersions = /*#__PURE__*/ _interop_require_default(require("./resolvers/findVersions"));
const _restoreVersion = /*#__PURE__*/ _interop_require_default(require("./resolvers/restoreVersion"));
const _update = /*#__PURE__*/ _interop_require_default(require("./resolvers/update"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function initGlobalsGraphQL(payload) {
Object.keys(payload.globals.config).forEach((slug)=>{
const global = payload.globals.config[slug];
const { fields, graphQL, versions } = global;
if (graphQL === false) {
return;
}
const formattedName = graphQL?.name ? graphQL.name : (0, _pluralize.singular)((0, _formatLabels.toWords)(global.slug, true));
const forceNullableObjectType = Boolean(versions?.drafts);
if (!payload.globals.graphQL) payload.globals.graphQL = {};
const updateMutationInputType = (0, _buildMutationInputType.default)(payload, formattedName, fields, formattedName);
payload.globals.graphQL[slug] = {
mutationInputType: updateMutationInputType ? new _graphql.GraphQLNonNull(updateMutationInputType) : null,
type: (0, _buildObjectType.default)({
name: formattedName,
fields,
forceNullable: forceNullableObjectType,
parentName: formattedName,
payload
})
};
payload.Query.fields[formattedName] = {
args: {
draft: {
type: _graphql.GraphQLBoolean
},
...payload.config.localization ? {
fallbackLocale: {
type: payload.types.fallbackLocaleInputType
},
locale: {
type: payload.types.localeInputType
}
} : {}
},
resolve: (0, _findOne.default)(global),
type: payload.globals.graphQL[slug].type
};
payload.Mutation.fields[`update${formattedName}`] = {
args: {
...updateMutationInputType ? {
data: {
type: payload.globals.graphQL[slug].mutationInputType
}
} : {},
draft: {
type: _graphql.GraphQLBoolean
},
...payload.config.localization ? {
locale: {
type: payload.types.localeInputType
}
} : {}
},
resolve: (0, _update.default)(global),
type: payload.globals.graphQL[slug].type
};
payload.Query.fields[`docAccess${formattedName}`] = {
resolve: (0, _docAccess.docAccessResolver)(global),
type: (0, _buildPoliciesType.buildPolicyType)({
entity: global,
scope: 'docAccess',
type: 'global',
typeSuffix: 'DocAccess'
})
};
if (global.versions) {
const idType = payload.db.defaultIDType === 'number' ? _graphql.GraphQLInt : _graphql.GraphQLString;
const versionGlobalFields = [
...(0, _buildGlobalFields.buildVersionGlobalFields)(global),
{
name: 'id',
type: payload.db.defaultIDType
},
{
name: 'createdAt',
label: 'Created At',
type: 'date'
},
{
name: 'updatedAt',
label: 'Updated At',
type: 'date'
}
];
payload.globals.graphQL[slug].versionType = (0, _buildObjectType.default)({
name: `${formattedName}Version`,
fields: versionGlobalFields,
forceNullable: forceNullableObjectType,
parentName: `${formattedName}Version`,
payload
});
payload.Query.fields[`version${(0, _formatName.default)(formattedName)}`] = {
args: {
id: {
type: idType
},
...payload.config.localization ? {
fallbackLocale: {
type: payload.types.fallbackLocaleInputType
},
locale: {
type: payload.types.localeInputType
}
} : {}
},
resolve: (0, _findVersionByID.default)(global),
type: payload.globals.graphQL[slug].versionType
};
payload.Query.fields[`versions${formattedName}`] = {
args: {
where: {
type: (0, _buildWhereInputType.default)({
name: `versions${formattedName}`,
fields: versionGlobalFields,
parentName: `versions${formattedName}`,
payload
})
},
...payload.config.localization ? {
fallbackLocale: {
type: payload.types.fallbackLocaleInputType
},
locale: {
type: payload.types.localeInputType
}
} : {},
limit: {
type: _graphql.GraphQLInt
},
page: {
type: _graphql.GraphQLInt
},
sort: {
type: _graphql.GraphQLString
}
},
resolve: (0, _findVersions.default)(global),
type: (0, _buildPaginatedListType.default)(`versions${(0, _formatName.default)(formattedName)}`, payload.globals.graphQL[slug].versionType)
};
payload.Mutation.fields[`restoreVersion${(0, _formatName.default)(formattedName)}`] = {
args: {
id: {
type: idType
}
},
resolve: (0, _restoreVersion.default)(global),
type: payload.globals.graphQL[slug].type
};
}
});
}
const _default = initGlobalsGraphQL;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvaW5pdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHsgR3JhcGhRTEJvb2xlYW4sIEdyYXBoUUxJbnQsIEdyYXBoUUxOb25OdWxsLCBHcmFwaFFMU3RyaW5nIH0gZnJvbSAnZ3JhcGhxbCdcbmltcG9ydCB7IHNpbmd1bGFyIH0gZnJvbSAncGx1cmFsaXplJ1xuXG5pbXBvcnQgdHlwZSB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uLy4uL3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRNdXRhdGlvbklucHV0VHlwZSdcbmltcG9ydCBidWlsZE9iamVjdFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRPYmplY3RUeXBlJ1xuaW1wb3J0IGJ1aWxkUGFnaW5hdGVkTGlzdFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRQYWdpbmF0ZWRMaXN0VHlwZSdcbmltcG9ydCB7IGJ1aWxkUG9saWN5VHlwZSB9IGZyb20gJy4uLy4uL2dyYXBocWwvc2NoZW1hL2J1aWxkUG9saWNpZXNUeXBlJ1xuaW1wb3J0IGJ1aWxkV2hlcmVJbnB1dFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uLy4uL2dyYXBocWwvdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgeyB0b1dvcmRzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2Zvcm1hdExhYmVscydcbmltcG9ydCB7IGJ1aWxkVmVyc2lvbkdsb2JhbEZpZWxkcyB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL2J1aWxkR2xvYmFsRmllbGRzJ1xuaW1wb3J0IHsgZG9jQWNjZXNzUmVzb2x2ZXIgfSBmcm9tICcuL3Jlc29sdmVycy9kb2NBY2Nlc3MnXG5pbXBvcnQgZmluZE9uZVJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2ZpbmRPbmUnXG5pbXBvcnQgZmluZFZlcnNpb25CeUlEUmVzb2x2ZXIgZnJvbSAnLi9yZXNvbHZlcnMvZmluZFZlcnNpb25CeUlEJ1xuaW1wb3J0IGZpbmRWZXJzaW9uc1Jlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2ZpbmRWZXJzaW9ucydcbmltcG9ydCByZXN0b3JlVmVyc2lvblJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL3Jlc3RvcmVWZXJzaW9uJ1xuaW1wb3J0IHVwZGF0ZVJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL3VwZGF0ZSdcblxuZnVuY3Rpb24gaW5pdEdsb2JhbHNHcmFwaFFMKHBheWxvYWQ6IFBheWxvYWQpOiB2b2lkIHtcbiAgT2JqZWN0LmtleXMocGF5bG9hZC5nbG9iYWxzLmNvbmZpZykuZm9yRWFjaCgoc2x1ZykgPT4ge1xuICAgIGNvbnN0IGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnID0gcGF5bG9hZC5nbG9iYWxzLmNvbmZpZ1tzbHVnXVxuICAgIGNvbnN0IHsgZmllbGRzLCBncmFwaFFMLCB2ZXJzaW9ucyB9ID0gZ2xvYmFsXG5cbiAgICBpZiAoZ3JhcGhRTCA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZE5hbWUgPSBncmFwaFFMPy5uYW1lID8gZ3JhcGhRTC5uYW1lIDogc2luZ3VsYXIodG9Xb3JkcyhnbG9iYWwuc2x1ZywgdHJ1ZSkpXG5cbiAgICBjb25zdCBmb3JjZU51bGxhYmxlT2JqZWN0VHlwZSA9IEJvb2xlYW4odmVyc2lvbnM/LmRyYWZ0cylcblxuICAgIGlmICghcGF5bG9hZC5nbG9iYWxzLmdyYXBoUUwpIHBheWxvYWQuZ2xvYmFscy5ncmFwaFFMID0ge31cblxuICAgIGNvbnN0IHVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlID0gYnVpbGRNdXRhdGlvbklucHV0VHlwZShcbiAgICAgIHBheWxvYWQsXG4gICAgICBmb3JtYXR0ZWROYW1lLFxuICAgICAgZmllbGRzLFxuICAgICAgZm9ybWF0dGVkTmFtZSxcbiAgICApXG4gICAgcGF5bG9hZC5nbG9iYWxzLmdyYXBoUUxbc2x1Z10gPSB7XG4gICAgICBtdXRhdGlvbklucHV0VHlwZTogdXBkYXRlTXV0YXRpb25JbnB1dFR5cGVcbiAgICAgICAgPyBuZXcgR3JhcGhRTE5vbk51bGwodXBkYXRlTXV0YXRpb25JbnB1dFR5cGUpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHR5cGU6IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgIG5hbWU6IGZvcm1hdHRlZE5hbWUsXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgZm9yY2VOdWxsYWJsZTogZm9yY2VOdWxsYWJsZU9iamVjdFR5cGUsXG4gICAgICAgIHBhcmVudE5hbWU6IGZvcm1hdHRlZE5hbWUsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBwYXlsb2FkLlF1ZXJ5LmZpZWxkc1tmb3JtYXR0ZWROYW1lXSA9IHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgZHJhZnQ6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIH0sXG4gICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGZpbmRPbmVSZXNvbHZlcihnbG9iYWwpLFxuICAgICAgdHlwZTogcGF5bG9hZC5nbG9iYWxzLmdyYXBoUUxbc2x1Z10udHlwZSxcbiAgICB9XG5cbiAgICBwYXlsb2FkLk11dGF0aW9uLmZpZWxkc1tgdXBkYXRlJHtmb3JtYXR0ZWROYW1lfWBdID0ge1xuICAgICAgYXJnczoge1xuICAgICAgICAuLi4odXBkYXRlTXV0YXRpb25JbnB1dFR5cGVcbiAgICAgICAgICA/IHsgZGF0YTogeyB0eXBlOiBwYXlsb2FkLmdsb2JhbHMuZ3JhcGhRTFtzbHVnXS5tdXRhdGlvbklucHV0VHlwZSB9IH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgZHJhZnQ6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBsb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiB1cGRhdGVSZXNvbHZlcihnbG9iYWwpLFxuICAgICAgdHlwZTogcGF5bG9hZC5nbG9iYWxzLmdyYXBoUUxbc2x1Z10udHlwZSxcbiAgICB9XG5cbiAgICBwYXlsb2FkLlF1ZXJ5LmZpZWxkc1tgZG9jQWNjZXNzJHtmb3JtYXR0ZWROYW1lfWBdID0ge1xuICAgICAgcmVzb2x2ZTogZG9jQWNjZXNzUmVzb2x2ZXIoZ2xvYmFsKSxcbiAgICAgIHR5cGU6IGJ1aWxkUG9saWN5VHlwZSh7XG4gICAgICAgIGVudGl0eTogZ2xvYmFsLFxuICAgICAgICBzY29wZTogJ2RvY0FjY2VzcycsXG4gICAgICAgIHR5cGU6ICdnbG9iYWwnLFxuICAgICAgICB0eXBlU3VmZml4OiAnRG9jQWNjZXNzJyxcbiAgICAgIH0pLFxuICAgIH1cblxuICAgIGlmIChnbG9iYWwudmVyc2lvbnMpIHtcbiAgICAgIGNvbnN0IGlkVHlwZSA9IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSA9PT0gJ251bWJlcicgPyBHcmFwaFFMSW50IDogR3JhcGhRTFN0cmluZ1xuXG4gICAgICBjb25zdCB2ZXJzaW9uR2xvYmFsRmllbGRzOiBGaWVsZFtdID0gW1xuICAgICAgICAuLi5idWlsZFZlcnNpb25HbG9iYWxGaWVsZHMoZ2xvYmFsKSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgICAgdHlwZTogcGF5bG9hZC5kYi5kZWZhdWx0SURUeXBlIGFzICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgIGxhYmVsOiAnQ3JlYXRlZCBBdCcsXG4gICAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ3VwZGF0ZWRBdCcsXG4gICAgICAgICAgbGFiZWw6ICdVcGRhdGVkIEF0JyxcbiAgICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICAgIH0sXG4gICAgICBdXG5cbiAgICAgIHBheWxvYWQuZ2xvYmFscy5ncmFwaFFMW3NsdWddLnZlcnNpb25UeXBlID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgbmFtZTogYCR7Zm9ybWF0dGVkTmFtZX1WZXJzaW9uYCxcbiAgICAgICAgZmllbGRzOiB2ZXJzaW9uR2xvYmFsRmllbGRzLFxuICAgICAgICBmb3JjZU51bGxhYmxlOiBmb3JjZU51bGxhYmxlT2JqZWN0VHlwZSxcbiAgICAgICAgcGFyZW50TmFtZTogYCR7Zm9ybWF0dGVkTmFtZX1WZXJzaW9uYCxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgIH0pXG5cbiAgICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2B2ZXJzaW9uJHtmb3JtYXROYW1lKGZvcm1hdHRlZE5hbWUpfWBdID0ge1xuICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgaWQ6IHsgdHlwZTogaWRUeXBlIH0sXG4gICAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb2x2ZTogZmluZFZlcnNpb25CeUlEUmVzb2x2ZXIoZ2xvYmFsKSxcbiAgICAgICAgdHlwZTogcGF5bG9hZC5nbG9iYWxzLmdyYXBoUUxbc2x1Z10udmVyc2lvblR5cGUsXG4gICAgICB9XG4gICAgICBwYXlsb2FkLlF1ZXJ5LmZpZWxkc1tgdmVyc2lvbnMke2Zvcm1hdHRlZE5hbWV9YF0gPSB7XG4gICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgdHlwZTogYnVpbGRXaGVyZUlucHV0VHlwZSh7XG4gICAgICAgICAgICAgIG5hbWU6IGB2ZXJzaW9ucyR7Zm9ybWF0dGVkTmFtZX1gLFxuICAgICAgICAgICAgICBmaWVsZHM6IHZlcnNpb25HbG9iYWxGaWVsZHMsXG4gICAgICAgICAgICAgIHBhcmVudE5hbWU6IGB2ZXJzaW9ucyR7Zm9ybWF0dGVkTmFtZX1gLFxuICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi4ocGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIH0sXG4gICAgICAgICAgICAgICAgbG9jYWxlOiB7IHR5cGU6IHBheWxvYWQudHlwZXMubG9jYWxlSW5wdXRUeXBlIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgIGxpbWl0OiB7IHR5cGU6IEdyYXBoUUxJbnQgfSxcbiAgICAgICAgICBwYWdlOiB7IHR5cGU6IEdyYXBoUUxJbnQgfSxcbiAgICAgICAgICBzb3J0OiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb2x2ZTogZmluZFZlcnNpb25zUmVzb2x2ZXIoZ2xvYmFsKSxcbiAgICAgICAgdHlwZTogYnVpbGRQYWdpbmF0ZWRMaXN0VHlwZShcbiAgICAgICAgICBgdmVyc2lvbnMke2Zvcm1hdE5hbWUoZm9ybWF0dGVkTmFtZSl9YCxcbiAgICAgICAgICBwYXlsb2FkLmdsb2JhbHMuZ3JhcGhRTFtzbHVnXS52ZXJzaW9uVHlwZSxcbiAgICAgICAgKSxcbiAgICAgIH1cbiAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2ByZXN0b3JlVmVyc2lvbiR7Zm9ybWF0TmFtZShmb3JtYXR0ZWROYW1lKX1gXSA9IHtcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIGlkOiB7IHR5cGU6IGlkVHlwZSB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlOiByZXN0b3JlVmVyc2lvblJlc29sdmVyKGdsb2JhbCksXG4gICAgICAgIHR5cGU6IHBheWxvYWQuZ2xvYmFscy5ncmFwaFFMW3NsdWddLnR5cGUsXG4gICAgICB9XG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBpbml0R2xvYmFsc0dyYXBoUUxcbiJdLCJuYW1lcyI6WyJpbml0R2xvYmFsc0dyYXBoUUwiLCJwYXlsb2FkIiwiT2JqZWN0Iiwia2V5cyIsImdsb2JhbHMiLCJjb25maWciLCJmb3JFYWNoIiwic2x1ZyIsImdsb2JhbCIsImZpZWxkcyIsImdyYXBoUUwiLCJ2ZXJzaW9ucyIsImZvcm1hdHRlZE5hbWUiLCJuYW1lIiwic2luZ3VsYXIiLCJ0b1dvcmRzIiwiZm9yY2VOdWxsYWJsZU9iamVjdFR5cGUiLCJCb29sZWFuIiwiZHJhZnRzIiwidXBkYXRlTXV0YXRpb25JbnB1dFR5cGUiLCJidWlsZE11dGF0aW9uSW5wdXRUeXBlIiwibXV0YXRpb25JbnB1dFR5cGUiLCJHcmFwaFFMTm9uTnVsbCIsInR5cGUiLCJidWlsZE9iamVjdFR5cGUiLCJmb3JjZU51bGxhYmxlIiwicGFyZW50TmFtZSIsIlF1ZXJ5IiwiYXJncyIsImRyYWZ0IiwiR3JhcGhRTEJvb2xlYW4iLCJsb2NhbGl6YXRpb24iLCJmYWxsYmFja0xvY2FsZSIsInR5cGVzIiwiZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUiLCJsb2NhbGUiLCJsb2NhbGVJbnB1dFR5cGUiLCJyZXNvbHZlIiwiZmluZE9uZVJlc29sdmVyIiwiTXV0YXRpb24iLCJkYXRhIiwidXBkYXRlUmVzb2x2ZXIiLCJkb2NBY2Nlc3NSZXNvbHZlciIsImJ1aWxkUG9saWN5VHlwZSIsImVudGl0eSIsInNjb3BlIiwidHlwZVN1ZmZpeCIsImlkVHlwZSIsImRiIiwiZGVmYXVsdElEVHlwZSIsIkdyYXBoUUxJbnQiLCJHcmFwaFFMU3RyaW5nIiwidmVyc2lvbkdsb2JhbEZpZWxkcyIsImJ1aWxkVmVyc2lvbkdsb2JhbEZpZWxkcyIsImxhYmVsIiwidmVyc2lvblR5cGUiLCJmb3JtYXROYW1lIiwiaWQiLCJmaW5kVmVyc2lvbkJ5SURSZXNvbHZlciIsIndoZXJlIiwiYnVpbGRXaGVyZUlucHV0VHlwZSIsImxpbWl0IiwicGFnZSIsInNvcnQiLCJmaW5kVmVyc2lvbnNSZXNvbHZlciIsImJ1aWxkUGFnaW5hdGVkTGlzdFR5cGUiLCJyZXN0b3JlVmVyc2lvblJlc29sdmVyIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBZ0xwQzs7O2VBQUE7Ozt5QkEvSzBFOzJCQUNqRDsrRUFNVTt3RUFDUDsrRUFDTzttQ0FDSDs0RUFDQTttRUFDVDs4QkFDQzttQ0FDaUI7MkJBQ1A7Z0VBQ047d0VBQ1E7cUVB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