@maccuaa/intellitrust-issuance-sdk
Version:
TypeScript SDK client for Entrust Adaptive Issuance Instant ID API
648 lines (647 loc) • 264 kB
JavaScript
// packages/issuance-sdk/index.ts
import * as Oazapfts from "@oazapfts/runtime";
import * as QS from "@oazapfts/runtime/query";
var defaults = {
headers: {},
baseUrl: "https://customer.region.trustedauth.com"
};
var oazapfts = Oazapfts.runtime(defaults);
var servers = {
server1: "https://customer.region.trustedauth.com"
};
function authenticateAdminApiUsingPost({ adminApiAuthentication }, opts) {
return oazapfts.fetchJson("/api/web/v1/adminapi/authenticate", oazapfts.json({
...opts,
method: "POST",
body: adminApiAuthentication
}));
}
function listApplicationInfoUsingGet(opts) {
return oazapfts.fetchJson("/api/web/v1/applicationinfo", {
...opts
});
}
function listAdminApiApplicationsUsingGet(opts) {
return oazapfts.fetchJson("/api/web/v1/applications/adminapi", {
...opts
});
}
function createAdminApiApplicationUsingPost({ adminApiApplicationParms }, opts) {
return oazapfts.fetchJson("/api/web/v1/applications/adminapi", oazapfts.json({
...opts,
method: "POST",
body: adminApiApplicationParms
}));
}
function updateAdminApiSharedSecretUsingPut({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/applications/adminapi/regenerate/${encodeURIComponent(id)}`, {
...opts,
method: "PUT"
});
}
function getAdminApiApplicationUsingGet({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/applications/adminapi/${encodeURIComponent(id)}`, {
...opts
});
}
function updateAdminApiApplicationUsingPut({ id, adminApiApplicationParms }, opts) {
return oazapfts.fetchJson(`/api/web/v1/applications/adminapi/${encodeURIComponent(id)}`, oazapfts.json({
...opts,
method: "PUT",
body: adminApiApplicationParms
}));
}
function removeAdminApiApplicationUsingDelete({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/applications/adminapi/${encodeURIComponent(id)}`, {
...opts,
method: "DELETE"
});
}
function listApplicationTemplatesUsingGet(opts) {
return oazapfts.fetchJson("/api/web/v1/applications/templates", {
...opts
});
}
function updateEnrollments({ enrollmentApiPayload }, opts) {
return oazapfts.fetchJson("/api/web/v1/enrollment/api", oazapfts.json({
...opts,
method: "PUT",
body: enrollmentApiPayload
}));
}
function createEnrollments({ enrollmentApiPayload }, opts) {
return oazapfts.fetchJson("/api/web/v1/enrollment/api", oazapfts.json({
...opts,
method: "POST",
body: enrollmentApiPayload
}));
}
function deleteEnrollments({ enrollmentApiPayload }, opts) {
return oazapfts.fetchJson("/api/web/v1/enrollment/api", oazapfts.json({
...opts,
method: "DELETE",
body: enrollmentApiPayload
}));
}
function readEnrollments({ readEnrollmentApiPayload }, opts) {
return oazapfts.fetchJson("/api/web/v1/enrollment/api/readEnrollments", oazapfts.json({
...opts,
method: "POST",
body: readEnrollmentApiPayload
}));
}
function getIssueMfpBulkOperationDetails(opts) {
return oazapfts.fetchJson("/api/web/v1/mobileFlashPass", {
...opts
});
}
function issueMobileFlashPassBulkOperation({ enrollmentMultiFlashPassApiRequestV1 }, opts) {
return oazapfts.fetchJson("/api/web/v1/mobileFlashPass", oazapfts.json({
...opts,
method: "POST",
body: enrollmentMultiFlashPassApiRequestV1
}));
}
function cancelMobileFlashPassBulkOperation({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/cancel/${encodeURIComponent(id)}`, {
...opts,
method: "DELETE"
});
}
function downloadMfpBulkOperationLogs({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/download/logs/${encodeURIComponent(id)}`, {
...opts
});
}
function getFlashPassDownloadUri({ walletType, enrollmentId }, opts) {
return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/downloadUri/${encodeURIComponent(walletType)}/${encodeURIComponent(enrollmentId)}`, {
...opts
});
}
function downloadAppleMobileFlashPass({ enrollmentId, claimToken }, opts) {
return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/downloads/apple/${encodeURIComponent(enrollmentId)}/${encodeURIComponent(claimToken)}`, {
...opts
});
}
function downloadGoogleMobileFlashPass({ enrollmentId, claimToken }, opts) {
return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/downloads/google/${encodeURIComponent(enrollmentId)}/${encodeURIComponent(claimToken)}`, {
...opts
});
}
function getMobileFlashPassRequestDetails({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/${encodeURIComponent(id)}`, {
...opts
});
}
function getPrintEnrollmentsBulkOperationDetails(opts) {
return oazapfts.fetchJson("/api/web/v1/print", {
...opts
});
}
function printEnrollmentsBulkOperation({ enrollmentMultiPrintApiRequestV1 }, opts) {
return oazapfts.fetchJson("/api/web/v1/print", oazapfts.json({
...opts,
method: "POST",
body: enrollmentMultiPrintApiRequestV1
}));
}
function cancelPrintEnrollmentsBulkOperation({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/print/cancel/${encodeURIComponent(id)}`, {
...opts,
method: "DELETE"
});
}
function downloadPrintEnrollmentsBulkOperationLogs({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/print/download/logs/${encodeURIComponent(id)}`, {
...opts
});
}
function resumePrintJob({ resumePrintJobApiRequest }, opts) {
return oazapfts.fetchJson("/api/web/v1/print/resume", oazapfts.json({
...opts,
method: "POST",
body: resumePrintJobApiRequest
}));
}
function singleEnrollmentPrint({ enrollmentPrintApiRequestV1 }, opts) {
return oazapfts.fetchJson("/api/web/v1/print/single", oazapfts.json({
...opts,
method: "POST",
body: enrollmentPrintApiRequestV1
}));
}
function getPrintRequestDetails({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/print/${encodeURIComponent(id)}`, {
...opts
});
}
function getPrintCounts(opts) {
return oazapfts.fetchJson("/api/web/v1/printcounts", {
...opts
});
}
function readPrinters({ fields, withStatus }, opts) {
return oazapfts.fetchJson(`/api/web/v1/printers${QS.query(QS.explode({
fields,
withStatus
}))}`, {
...opts
});
}
function createPrinter({ printer }, opts) {
return oazapfts.fetchJson("/api/web/v1/printers", oazapfts.json({
...opts,
method: "POST",
body: printer
}));
}
function getPrintStatus({ printStatusId }, opts) {
return oazapfts.fetchJson(`/api/web/v1/printers/print/${encodeURIComponent(printStatusId)}`, {
...opts
});
}
function cancelPrint({ printStatusId }, opts) {
return oazapfts.fetchJson(`/api/web/v1/printers/print/${encodeURIComponent(printStatusId)}`, {
...opts,
method: "DELETE"
});
}
function updatePrint({ printStatusId, basicPrintUpdateRequest }, opts) {
return oazapfts.fetchJson(`/api/web/v1/printers/print/${encodeURIComponent(printStatusId)}`, oazapfts.json({
...opts,
method: "PATCH",
body: basicPrintUpdateRequest
}));
}
function printersSummary(opts) {
return oazapfts.fetchJson("/api/web/v1/printers/summary", {
...opts
});
}
function readPrinter({ printerId }, opts) {
return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}`, {
...opts
});
}
function replacePrinter({ printerId, printer }, opts) {
return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}`, oazapfts.json({
...opts,
method: "PUT",
body: printer
}));
}
function deletePrinter({ printerId }, opts) {
return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}`, {
...opts,
method: "DELETE"
});
}
function readPrinterPreferences({ printerId }, opts) {
return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}/preferences`, {
...opts
});
}
function replacePrinterPreferences({ printerId, printerPreferences }, opts) {
return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}/preferences`, oazapfts.json({
...opts,
method: "PUT",
body: printerPreferences
}));
}
function print({ printerId, basicPrintRequest }, opts) {
return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}/print`, oazapfts.json({
...opts,
method: "POST",
body: basicPrintRequest
}));
}
function deletePrinterWithTenantId({ printerId, tenantId }, opts) {
return oazapfts.fetchText(`/api/web/v1/printers/${encodeURIComponent(printerId)}/${encodeURIComponent(tenantId)}`, {
...opts,
method: "DELETE"
});
}
function getPrintJobs(opts) {
return oazapfts.fetchJson("/api/web/v1/prints", {
...opts
});
}
function getPaginatedPrintJobs({ searchParms }, opts) {
return oazapfts.fetchJson("/api/web/v1/prints/paginated", oazapfts.json({
...opts,
method: "POST",
body: searchParms
}));
}
function getPrintJob({ printJobId }, opts) {
return oazapfts.fetchJson(`/api/web/v1/prints/${encodeURIComponent(printJobId)}`, {
...opts
});
}
function deletePrintJob({ printJobId }, opts) {
return oazapfts.fetchJson(`/api/web/v1/prints/${encodeURIComponent(printJobId)}`, {
...opts,
method: "DELETE"
});
}
function cancelAllActivePrintJobs({ printerId }, opts) {
return oazapfts.fetchJson(`/api/web/v1/prints/${encodeURIComponent(printerId)}/cancelAllActivePrints`, {
...opts,
method: "POST"
});
}
function listSiteRolesUsingGet(opts) {
return oazapfts.fetchJson("/api/web/v1/roles", {
...opts
});
}
function getSiteRoleUsingGet({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/roles/${encodeURIComponent(id)}`, {
...opts
});
}
function getSpIdentityProviderUsingGet({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/tenants/${encodeURIComponent(id)}/spidentityprovider`, {
...opts
});
}
function setSpIdentityProviderUsingPut({ id, spIdentityProviderParms }, opts) {
return oazapfts.fetchJson(`/api/web/v1/tenants/${encodeURIComponent(id)}/spidentityprovider`, oazapfts.json({
...opts,
method: "PUT",
body: spIdentityProviderParms
}));
}
function getUserRolesUsingGet({ userid }, opts) {
return oazapfts.fetchJson(`/api/web/v1/users/${encodeURIComponent(userid)}/roles`, {
...opts
});
}
function getUserSiteRoleAssociationUsingGet({ userid, roleid }, opts) {
return oazapfts.fetchJson(`/api/web/v1/users/${encodeURIComponent(userid)}/roles/${encodeURIComponent(roleid)}`, {
...opts
});
}
function modifyUserSiteRoleAssociationUsingPut({ userid, roleid }, opts) {
return oazapfts.fetchJson(`/api/web/v1/users/${encodeURIComponent(userid)}/roles/${encodeURIComponent(roleid)}`, {
...opts,
method: "PUT"
});
}
function deleteUserSiteRoleAssociationUsingDelete({ userid, roleid }, opts) {
return oazapfts.fetchJson(`/api/web/v1/users/${encodeURIComponent(userid)}/roles/${encodeURIComponent(roleid)}`, {
...opts,
method: "DELETE"
});
}
function getWebhooksUsingGet(opts) {
return oazapfts.fetchJson("/api/web/v1/webhooks", {
...opts
});
}
function createWebhookUsingPost({ webhookParms }, opts) {
return oazapfts.fetchJson("/api/web/v1/webhooks", oazapfts.json({
...opts,
method: "POST",
body: webhookParms
}));
}
function testWebhookUsingPost({ id, webhookTestParms }, opts) {
return oazapfts.fetchJson(`/api/web/v1/webhooks/test/${encodeURIComponent(id)}`, oazapfts.json({
...opts,
method: "POST",
body: webhookTestParms
}));
}
function readWebhookUsingGet({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/webhooks/${encodeURIComponent(id)}`, {
...opts
});
}
function updateWebhookUsingPut({ id, webhookParms }, opts) {
return oazapfts.fetchJson(`/api/web/v1/webhooks/${encodeURIComponent(id)}`, oazapfts.json({
...opts,
method: "PUT",
body: webhookParms
}));
}
function deleteWebhookUsingDelete({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v1/webhooks/${encodeURIComponent(id)}`, {
...opts,
method: "DELETE"
});
}
function updateEnrollmentsV2({ body }, opts) {
return oazapfts.fetchJson("/api/web/v2/enrollments", oazapfts.json({
...opts,
method: "PUT",
body
}));
}
function deleteEnrollmentsV2({ enrollmentDelete }, opts) {
return oazapfts.fetchJson("/api/web/v2/enrollments", oazapfts.json({
...opts,
method: "DELETE",
body: enrollmentDelete
}));
}
function readEnrollmentsDesignNames(opts) {
return oazapfts.fetchJson("/api/web/v2/enrollments/enrollmentDesigns", {
...opts
});
}
function readEnrollmentsV2({ enrollmentDesignName, offset, limit, body }, opts) {
return oazapfts.fetchJson(`/api/web/v2/enrollments/read/${encodeURIComponent(enrollmentDesignName)}${QS.query(QS.explode({
offset,
limit
}))}`, oazapfts.json({
...opts,
method: "POST",
body
}));
}
function createEnrollmentsV2({ enrollmentDesignName, body }, opts) {
return oazapfts.fetchJson(`/api/web/v2/enrollments/${encodeURIComponent(enrollmentDesignName)}`, oazapfts.json({
...opts,
method: "POST",
body
}));
}
function readEnrollmentV2({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v2/enrollments/${encodeURIComponent(id)}`, {
...opts
});
}
function issueMobileFlashPassBulkOperationV2({ enrollmentMultiFlashPassApiRequestV2 }, opts) {
return oazapfts.fetchJson("/api/web/v2/mobileFlashPass", oazapfts.json({
...opts,
method: "POST",
body: enrollmentMultiFlashPassApiRequestV2
}));
}
function downloadMfpLogsV2({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v2/mobileFlashPass/download/logs/${encodeURIComponent(id)}`, {
...opts
});
}
function printEnrollmentsBulkOperationV2({ enrollmentMultiPrintApiRequestV2 }, opts) {
return oazapfts.fetchJson("/api/web/v2/print", oazapfts.json({
...opts,
method: "POST",
body: enrollmentMultiPrintApiRequestV2
}));
}
function downloadPrintEnrollmentsLogsV2({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v2/print/download/logs/${encodeURIComponent(id)}`, {
...opts
});
}
function singleEnrollmentPrintV2({ singleEnrollmentPrintRequest }, opts) {
return oazapfts.fetchJson("/api/web/v2/print/single", oazapfts.json({
...opts,
method: "POST",
body: singleEnrollmentPrintRequest
}));
}
function getPrinters(opts) {
return oazapfts.fetchJson("/api/web/v2/printers", {
...opts
});
}
function getPrintersWithGroupRestriction(opts) {
return oazapfts.fetchJson("/api/web/v2/printers/restricted", {
...opts
});
}
function readPrinterByDeviceId({ deviceId }, opts) {
return oazapfts.fetchJson(`/api/web/v2/printers/${encodeURIComponent(deviceId)}`, {
...opts
});
}
function updatePrinterV2({ printerId, updatePrinterV2Request }, opts) {
return oazapfts.fetchJson(`/api/web/v2/printers/${encodeURIComponent(printerId)}`, oazapfts.json({
...opts,
method: "PUT",
body: updatePrinterV2Request
}));
}
function getPaginatedPrintJobsV2({ searchParams }, opts) {
return oazapfts.fetchJson("/api/web/v2/prints/paginated", oazapfts.json({
...opts,
method: "POST",
body: searchParams
}));
}
function getCreateTenantAsyncResultUsingGet({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v4/async/tenants/${encodeURIComponent(id)}/createresult`, {
...opts
});
}
function getCreateTenantAsyncStatusUsingGet({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v4/async/tenants/${encodeURIComponent(id)}/createstatus`, {
...opts
});
}
function getEntitlementUsageInfoUsingPost({ searchParms }, opts) {
return oazapfts.fetchJson("/api/web/v4/tenants/entitlements/usage", oazapfts.json({
...opts,
method: "POST",
body: searchParms
}));
}
function getTenantUsingGet({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(id)}`, {
...opts
});
}
function removeTenantUsingDelete({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(id)}`, {
...opts,
method: "DELETE"
});
}
function lockTenantUsingPut({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(id)}/lock`, {
...opts,
method: "PUT"
});
}
function unlockTenantUsingPut({ id }, opts) {
return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(id)}/unlock`, {
...opts,
method: "PUT"
});
}
function getTenantEntitlementsUsingGet({ tenantid }, opts) {
return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(tenantid)}/entitlements`, {
...opts
});
}
function setTenantEntitlementUsingPut({ tenantid, entitlementParms }, opts) {
return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(tenantid)}/entitlements`, oazapfts.json({
...opts,
method: "PUT",
body: entitlementParms
}));
}
function getTenantEntitlementUsingGet({ tenantid, $type }, opts) {
return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(tenantid)}/entitlements/${encodeURIComponent($type)}`, {
...opts
});
}
function deleteTenantEntitlementUsingDelete({ tenantid, $type }, opts) {
return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(tenantid)}/entitlements/${encodeURIComponent($type)}`, {
...opts,
method: "DELETE"
});
}
function getTenantsPageUsingPost({ searchParms }, opts) {
return oazapfts.fetchJson("/api/web/v4/tenantspaged", oazapfts.json({
...opts,
method: "POST",
body: searchParms
}));
}
function createTenantAsyncUsingPost({ createTenantParms }, opts) {
return oazapfts.fetchJson("/api/web/v5/async/tenants", oazapfts.json({
...opts,
method: "POST",
body: createTenantParms
}));
}
export {
updateWebhookUsingPut,
updatePrinterV2,
updatePrint,
updateEnrollmentsV2,
updateEnrollments,
updateAdminApiSharedSecretUsingPut,
updateAdminApiApplicationUsingPut,
unlockTenantUsingPut,
testWebhookUsingPost,
singleEnrollmentPrintV2,
singleEnrollmentPrint,
setTenantEntitlementUsingPut,
setSpIdentityProviderUsingPut,
servers,
resumePrintJob,
replacePrinterPreferences,
replacePrinter,
removeTenantUsingDelete,
removeAdminApiApplicationUsingDelete,
readWebhookUsingGet,
readPrinters,
readPrinterPreferences,
readPrinterByDeviceId,
readPrinter,
readEnrollmentsV2,
readEnrollmentsDesignNames,
readEnrollments,
readEnrollmentV2,
printersSummary,
printEnrollmentsBulkOperationV2,
printEnrollmentsBulkOperation,
print,
modifyUserSiteRoleAssociationUsingPut,
lockTenantUsingPut,
listSiteRolesUsingGet,
listApplicationTemplatesUsingGet,
listApplicationInfoUsingGet,
listAdminApiApplicationsUsingGet,
issueMobileFlashPassBulkOperationV2,
issueMobileFlashPassBulkOperation,
getWebhooksUsingGet,
getUserSiteRoleAssociationUsingGet,
getUserRolesUsingGet,
getTenantsPageUsingPost,
getTenantUsingGet,
getTenantEntitlementsUsingGet,
getTenantEntitlementUsingGet,
getSpIdentityProviderUsingGet,
getSiteRoleUsingGet,
getPrintersWithGroupRestriction,
getPrinters,
getPrintStatus,
getPrintRequestDetails,
getPrintJobs,
getPrintJob,
getPrintEnrollmentsBulkOperationDetails,
getPrintCounts,
getPaginatedPrintJobsV2,
getPaginatedPrintJobs,
getMobileFlashPassRequestDetails,
getIssueMfpBulkOperationDetails,
getFlashPassDownloadUri,
getEntitlementUsageInfoUsingPost,
getCreateTenantAsyncStatusUsingGet,
getCreateTenantAsyncResultUsingGet,
getAdminApiApplicationUsingGet,
downloadPrintEnrollmentsLogsV2,
downloadPrintEnrollmentsBulkOperationLogs,
downloadMfpLogsV2,
downloadMfpBulkOperationLogs,
downloadGoogleMobileFlashPass,
downloadAppleMobileFlashPass,
deleteWebhookUsingDelete,
deleteUserSiteRoleAssociationUsingDelete,
deleteTenantEntitlementUsingDelete,
deletePrinterWithTenantId,
deletePrinter,
deletePrintJob,
deleteEnrollmentsV2,
deleteEnrollments,
defaults,
createWebhookUsingPost,
createTenantAsyncUsingPost,
createPrinter,
createEnrollmentsV2,
createEnrollments,
createAdminApiApplicationUsingPost,
cancelPrintEnrollmentsBulkOperation,
cancelPrint,
cancelMobileFlashPassBulkOperation,
cancelAllActivePrintJobs,
authenticateAdminApiUsingPost
};
//# debugId=AEF9306797CF3C9764756E2164756E21
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvaXNzdWFuY2Utc2RrL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIi8qKlxuICogRW50cnVzdCBJZGVudGl0eSBhcyBhIFNlcnZpY2UgSXNzdWFuY2UgQVBJXG4gKiA1LjQ2XG4gKiBETyBOT1QgTU9ESUZZIC0gVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCB1c2luZyBvYXphcGZ0cy5cbiAqIFNlZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vYXphcGZ0c1xuICovXG5pbXBvcnQgKiBhcyBPYXphcGZ0cyBmcm9tIFwiQG9hemFwZnRzL3J1bnRpbWVcIjtcbmltcG9ydCAqIGFzIFFTIGZyb20gXCJAb2F6YXBmdHMvcnVudGltZS9xdWVyeVwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRzOiBPYXphcGZ0cy5EZWZhdWx0czxPYXphcGZ0cy5DdXN0b21IZWFkZXJzPiA9IHtcbiAgICBoZWFkZXJzOiB7fSxcbiAgICBiYXNlVXJsOiBcImh0dHBzOi8vY3VzdG9tZXIucmVnaW9uLnRydXN0ZWRhdXRoLmNvbVwiXG59O1xuY29uc3Qgb2F6YXBmdHMgPSBPYXphcGZ0cy5ydW50aW1lKGRlZmF1bHRzKTtcbmV4cG9ydCBjb25zdCBzZXJ2ZXJzID0ge1xuICAgIHNlcnZlcjE6IFwiaHR0cHM6Ly9jdXN0b21lci5yZWdpb24udHJ1c3RlZGF1dGguY29tXCJcbn07XG5leHBvcnQgdHlwZSBBZG1pbkFwaUF1dGhlbnRpY2F0aW9uID0ge1xuICAgIC8qKiBBZG1pbmlzdHJhdGlvbiBBUEkgYXBwbGljYXRpb24gaWQgKi9cbiAgICBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG4gICAgLyoqIElmIHNldCB0byB0cnVlLCBhIHNlc3Npb24gY29va2llIG5hbWVkIElOVEVMTElUUlVTVF9TRVNTSU9OX0lEIGlzIHJldHVybmVkIHdpdGggdGhlIGF1dGhlbnRpY2F0aW9uIHJlc3BvbnNlLiBUaGlzIGNvb2tpZSBtdXN0IGJlIHJldHVybmVkIHdpdGggYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMuICovXG4gICAgZW5hYmxlV2ViU2Vzc2lvbj86IGJvb2xlYW47XG4gICAgLyoqIFNoYXJlZCBTZWNyZXQgKi9cbiAgICBzaGFyZWRTZWNyZXQ6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBBZG1pbkFwaUF1dGhlbnRpY2F0aW9uUmVzdWx0ID0ge1xuICAgIC8qKiBBdXRob3JpemF0aW9uIHRva2VuIHJldHVybmVkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbi4gKi9cbiAgICBhdXRoVG9rZW4/OiBzdHJpbmc7XG4gICAgLyoqIENyZWF0aW9uIHRpbWUgb2YgdGhlIGF1dGhlbnRpY2F0aW9uIHRva2VuLiAqL1xuICAgIGNyZWF0aW9uVGltZT86IHN0cmluZztcbiAgICAvKiogRXhwaXJ5IHRpbWUgb2YgdGhlIGF1dGhlbnRpY2F0aW9uIHRva2VuLiAqL1xuICAgIGV4cGlyYXRpb25UaW1lPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEVycm9ySW5mbyA9IHtcbiAgICAvKiogRXJyb3IgQ29kZXMgc3BlY2lmaWMgdG8gY2F1c2Ugb2YgZmFpbHVyZS4gKi9cbiAgICBlcnJvckNvZGU/OiBzdHJpbmc7XG4gICAgLyoqIEFkZGl0aW9uYWwgRXJyb3IgTWVzc2FnZSBkZXNjcmliaW5nIHRoZSBlcnJvci4gKi9cbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIE9wdGlvbmFsIGFkZGl0aW9uYWwgZXJyb3IgaW5mb3JtYXRpb24uICovXG4gICAgcGFyYW1ldGVycz86IG9iamVjdFtdO1xufTtcbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uSW5mbyA9IHtcbiAgICAvKiogVGhlIHRlbXBsYXRlIHRoZSBhcHBsaWNhdGlvbiB3YXMgY3JlYXRlZCBmcm9tLiAqL1xuICAgIGFwcGxpY2F0aW9uVGVtcGxhdGU/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVVUlEIG9mIHRoZSB0ZW1wbGF0ZSB0aGUgYXBwbGljYXRpb24gd2FzIGNyZWF0ZWQgZnJvbS4gKi9cbiAgICBhcHBsaWNhdGlvblRlbXBsYXRlSWQ/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBhcHBsaWNhdGlvbiBhdXRoZW50aWNhdGlvbiBtZXRob2QuICovXG4gICAgYXV0aGVudGljYXRpb25NZXRob2Q/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVVUlEIG9mIHRoZSBhcHBsaWNhdGlvbi4gKi9cbiAgICBpZD86IHN0cmluZztcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uLiAqL1xuICAgIG5hbWU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgQWRtaW5BcGlBcHBsaWNhdGlvbiA9IHtcbiAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgYXBwbGljYXRpb24gY2FuIHVzZSBhIGxvbmctbGl2ZWQgdG9rZW4gZm9yIGF1dGhlbnRpY2F0aW9uLiAqL1xuICAgIGFsbG93TG9uZ0xpdmVkVG9rZW4/OiBib29sZWFuO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gdGVtcGxhdGUgc3BlY2lmaWMgdG8gdGhpcyBhcHBsaWNhdGlvbiB0eXBlLiAqL1xuICAgIGFwcGxpY2F0aW9uVGVtcGxhdGU6IHN0cmluZztcbiAgICAvKiogQXBwbGljYXRpb24gdGVtcGxhdGUgaWQgc3BlY2lmaWMgdG8gdGhpcyBhcHBsaWNhdGlvbiB0eXBlLiAqL1xuICAgIGFwcGxpY2F0aW9uVGVtcGxhdGVJZD86IHN0cmluZztcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gb2YgYXBwbGljYXRpb24uICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgLyoqIEFwcGxpY2F0aW9uIElELiAqL1xuICAgIGlkPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgVVVJRCBvZiB0aGUgSVAgQWRkcmVzc2VzIGxpc3QuICovXG4gICAgaXBMaXN0SWQ/OiBzdHJpbmc7XG4gICAgLyoqIExhc3Qgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbiB0aW1lIHRvIHVzZSBhZG1pbmlzdHJhdGlvbiBhcGkgKi9cbiAgICBsYXN0QXV0aG5EYXRlPzogc3RyaW5nO1xuICAgIC8qKiBCYXNlNjQgZW5jb2RlZCBsb2dvIGltYWdlLiAqL1xuICAgIGxvZ28/OiBzdHJpbmc7XG4gICAgLyoqIE5hbWUgb2YgYXBwbGljYXRpb24uICAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogVGhlIFVVSUQgb2YgdGhlIFNpdGUgcm9sZSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIEFQSSBhcHBsaWNhdGlvbi4gUGFzcyBhbiBlbXB0eSBzdHJpbmcgdmFsdWUgdG8gdW5zZXQgdGhlIHNpdGUgcm9sZS4gKi9cbiAgICByb2xlSWQ/OiBzdHJpbmc7XG4gICAgLyoqIFNoYXJlZCBzZWNyZXQgZm9yIGFwcGxpY2F0aW9uLiAqL1xuICAgIHNoYXJlZFNlY3JldD86IHN0cmluZztcbiAgICAvKiogVGhlIFVVSUQgb2YgdGhlIHNlcnZpY2UgcHJvdmlkZXIgcm9sZSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIEFQSSBhcHBsaWNhdGlvbi4gUGFzcyBhbiBlbXB0eSBzdHJpbmcgdG8gdW5zZXQgdGhlIHNlcnZpY2UgcHJvdmlkZXIgcm9sZS4gKi9cbiAgICBzcFJvbGVJZD86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBBZG1pbkFwaUFwcGxpY2F0aW9uUGFybXMgPSB7XG4gICAgLyoqIERldGVybWluZXMgaWYgYSBsb25nLWxpdmVkIHRva2VuIGlzIGFsbG93ZWQgaW4gdGhpcyBhcHBsaWNhdGlvbi4gKi9cbiAgICBhbGxvd0xvbmdMaXZlZFRva2VuPzogYm9vbGVhbjtcbiAgICAvKiogVGhlIFVVSUQgb2YgdGhlIGFwcGxpY2F0aW9uIHRlbXBsYXRlLiAgVGhpcyB2YWx1ZSBpcyBvbmx5IHVzZWQgd2hlbiBjcmVhdGluZyBhIG5ldyBhcHBsaWNhdGlvbi4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgYWRtaW5pbnN0cmF0aW9uIEFQSSB0ZW1wbGF0ZSBpcyB1c2VkLiAqL1xuICAgIGFwcGxpY2F0aW9uVGVtcGxhdGVJZD86IHN0cmluZztcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gb2YgYXBwbGljYXRpb24uICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVVUlEIG9mIHRoZSBJUCBBZGRyZXNzZXMgbGlzdC4gKi9cbiAgICBpcExpc3RJZD86IHN0cmluZztcbiAgICAvKiogQmFzZTY0IGVuY29kZWQgbG9nbyBpbWFnZS4gKi9cbiAgICBsb2dvPzogc3RyaW5nO1xuICAgIC8qKiBOYW1lIG9mIGFwcGxpY2F0aW9uLiAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVVUlEIG9mIHRoZSBTaXRlIHJvbGUgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBBUEkgYXBwbGljYXRpb24uIFBhc3MgYW4gZW1wdHkgc3RyaW5nIHZhbHVlIHRvIHVuc2V0IHRoZSBzaXRlIHJvbGUuIEVpdGhlciB0aGlzIHZhbHVlIG9yIHNwUm9sZUlkIGlzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgdGhlIGFwcGxpY2F0aW9uLiAqL1xuICAgIHJvbGVJZD86IHN0cmluZztcbiAgICAvKiogVGhlIFVVSUQgb2YgdGhlIHNlcnZpY2UgcHJvdmlkZXIgcm9sZSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIEFQSSBhcHBsaWNhdGlvbi4gUGFzcyBhbiBlbXB0eSBzdHJpbmcgdG8gdW5zZXQgdGhlIHNlcnZpY2UgcHJvdmlkZXIgcm9sZS4gRWl0aGVyIHRoaXMgdmFsdWUgb3Igcm9sZUlkIGlzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgdGhlIGFwcGxpY2F0aW9uLiAqL1xuICAgIHNwUm9sZUlkPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uVGVtcGxhdGUgPSB7XG4gICAgLyoqIFRoZSB0eXBlIHRoZSBhcHBsaWNhdGlvbiB0ZW1wbGF0ZS4gUG9zc2libGUgdmFsdWVzIGFyZSBTQU1MMjAsIFJBRElVUywgQUFBUywgSURHLCBPSURDLCBBVVRIQVBJLCBBRE1JTkFQSSwgU0lFTUFQSS4gKi9cbiAgICBhdXRoZW50aWNhdGlvbk1ldGhvZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGVzY3JpcHRpb24gb2YgYXBwbGljYXRpb24gdGVtcGxhdGUuICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVVUlEIG9mIHRoZSBhcHBsaWNhdGlvbiB0ZW1wbGF0ZS4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gdGVtcGxhdGUuICovXG4gICAgbmFtZTogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEVucm9sbG1lbnRBcGlQYXlsb2FkID0ge1xuICAgIC8qKiBUaGUgRW5yb2xsbWVudCBEYXRhLiBQcmltYXJ5IGtleSBmaWVsZCBpcyBtYW5kYXRvcnkgaW4gY2FzZSBvZiBVcGRhdGUgYW5kIERlbGV0ZS4gKi9cbiAgICBlbnJvbGxtZW50RGF0YTogb2JqZWN0W107XG4gICAgLyoqIE5hbWUgb2YgdGhlIEVucm9sbG1lbnQgRGVzaWduLiAqL1xuICAgIGVucm9sbG1lbnREZXNpZ25OYW1lOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgRXJyb3IgPSB7XG4gICAgLyoqIFRoZSBzZXJ2ZXIgZXJyb3IgY29kZSAqL1xuICAgIGNvZGU6IHN0cmluZztcbiAgICAvKiogQSBodW1hbi1yZWFkYWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXJyb3IgKi9cbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgLyoqIFRoZSB0YXJnZXQgb2YgdGhlIGVycm9yICovXG4gICAgdGFyZ2V0Pzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFJlYWRFbnJvbGxtZW50QXBpUGF5bG9hZCA9IHtcbiAgICAvKiogTmFtZSBvZiB0aGUgRW5yb2xsbWVudCBEZXNpZ24uICovXG4gICAgZW5yb2xsbWVudERlc2lnbk5hbWU6IHN0cmluZztcbiAgICAvKiogRmlsdGVyIGNyaXRlcmlhIGJhc2VkIG9uIHdoaWNoIGVucm9sbG1lbnRzIHJlY29yZHMgc2hvdWxkIGJlIGZldGNoZWQuIElmIG5vdCBwcm92aWRlZCwgYWxsIHJlY29yZHMgYXJlIGZldGNoZWQgYmFzZWQgb24gcGFnZSBzaXplIGFuZCBudW1iZXIuICovXG4gICAgZmlsdGVyQ3JpdGVyaWE/OiBvYmplY3RbXTtcbiAgICAvKiogUGFnZSBudW1iZXIgb2YgRW5yb2xsbWVudCByZWNvcmRzIHRvIGJlIGZldGNoZWQuIERlZmF1bHQgaXMgMS4gKi9cbiAgICBwYWdlTnVtYmVyPzogc3RyaW5nO1xuICAgIC8qKiBNYXhpbXVtIG51bWJlciBvZiBFbnJvbGxtZW50IHJlY29yZHMgdG8gYmUgZmV0Y2hlZC4gRGVmYXVsdCBpcyA1MC4gKi9cbiAgICBwYWdlU2l6ZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBJc3N1ZU1vYmlsZUZsYXNoUGFzc0J1bGtPcGVyYXRpb25EZXRhaWxzID0ge1xuICAgIC8qKiBUaGUgZXJyb3IgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBmaXJzdCBlcnJvciBlbmNvdW50ZXJlZCBwcm9jZXNzaW5nIHRoZSBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByb3cgbnVtYmVyIG9mIHRoZSBmaXJzdCByb3cgdGhhdCBmYWlsZWQuICovXG4gICAgZmlyc3RGYWlsZWRSb3c/OiBudW1iZXI7XG4gICAgLyoqIFRoZSB1bmlxdWUgVVVJRCBvZiB0aGUgYnVsayBvcGVyYXRpb24uICovXG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB0aW1lIHRoaXMgYnVsayBvcGVyYXRpb24gd2FzIGluaXRpYWxpemVkLiAqL1xuICAgIGluaXRUaW1lPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGlzIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBidWxrIG9wZXJhdGlvbiBjb21wbGV0ZWQgcHJvY2Vzc2luZy4gKi9cbiAgICBwcm9jZXNzaW5nRW5kVGltZT86IHN0cmluZztcbiAgICAvKiogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIGJ1bGsgb3BlcmF0aW9uIGJlZ2FuIHByb2Nlc3NpbmcuICovXG4gICAgcHJvY2Vzc2luZ1N0YXJ0VGltZT86IHN0cmluZztcbiAgICAvKiogSG93IGxvbmcgdGhlIGJ1bGsgb3BlcmF0aW9uIHRvb2sgdG8gY29tcGxldGUgcHJvY2Vzc2luZy4gKi9cbiAgICBwcm9jZXNzaW5nVGltZT86IG51bWJlcjtcbiAgICAvKiogVGhlIG51bWJlciBvZiByb3dzIHRoYXQgaGF2ZSBmYWlsZWQgd2hlbiBwcm9jZXNzZWQuICovXG4gICAgcm93c0ZhaWxlZD86IG51bWJlcjtcbiAgICAvKiogVGhlIG51bWJlciBvZiByb3dzIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQuICovXG4gICAgcm93c1Byb2Nlc3NlZD86IG51bWJlcjtcbiAgICAvKiogVGhlIHN0YXRlIG9mIHRoZSBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBzdGF0ZT86IFwiRkFJTEVEXCIgfCBcIkNBTkNFTExFRFwiIHwgXCJDT01QTEVURURcIiB8IFwiQVdBSVRJTkdfREFUQVwiIHwgXCJQUk9DRVNTSU5HXCIgfCBcIlNDSEVEVUxFRFwiO1xuICAgIC8qKiBUaGUgdHlwZSBvZiBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBcInR5cGVcIj86IFwiSU1QT1JUX1VTRVJTXCIgfCBcIklNUE9SVF9HUk9VUFNcIiB8IFwiSU1QT1JUX1VTRVJfR1JPVVBTXCIgfCBcIklNUE9SVF9IQVJEV0FSRV9UT0tFTlNcIiB8IFwiSU1QT1JUX0VOUk9MTE1FTlRTXCIgfCBcIlBSSU5UX0VOUk9MTE1FTlRTXCIgfCBcIlNFTkRfTUZQXCIgfCBcIkFTU0lHTl9FTlRSVVNUX1NUXCIgfCBcIkFTU0lHTl9HT09HTEVfU1RcIiB8IFwiQVNTSUdOX1BBU1NXT1JEU1wiIHwgXCJSRVNFVF9QQVNTV09SRFNcIiB8IFwiREVMRVRFX1VTRVJTXCIgfCBcIklNUE9SVF9JREVOVElUWUdVQVJEXCIgfCBcIklNUE9SVF9HUklEU1wiIHwgXCJFWFBPUlRfQVNTSUdORURHUklEU1wiIHwgXCJFWFBPUlRfQVNTSUdORURUT0tFTlNcIiB8IFwiRVhQT1JUX0FVRElURVZFTlRTXCIgfCBcIkVYUE9SVF9TRUxGQVVESVRFVkVOVFNcIiB8IFwiRVhQT1JUX1VOQVNTSUdORURHUklEU1wiIHwgXCJFWFBPUlRfVU5BU1NJR05FRFRPS0VOU1wiIHwgXCJFWFBPUlRfVVNFUlNcIiB8IFwiU0VUX1JFR0lTVFJBVElPTlwiIHwgXCJTRVRfVkVSSUZJQ0FUSU9OXCIgfCBcIkFTU0lHTl9HUklEU1wiIHwgXCJFWFBPUlRfVVNBR0VcIiB8IFwiQ1JFQVRFX1VOQVNTSUdORURfR1JJRFNcIiB8IFwiQVNTSUdOX0hBUkRXQVJFX1RPS0VOU1wiIHwgXCJTRVRfR1JJRFNcIiB8IFwiRVhQT1JUX0VOUk9MTE1FTlRTXCIgfCBcIkRFTEVURV9HUk9VUFNcIiB8IFwiRVhQT1JUX0dST1VQU1wiIHwgXCJSRVNFVF9UT0tFTlNcIiB8IFwiREVMRVRFX0VOUk9MTE1FTlRTXCIgfCBcIlBST1ZJU0lPTl9TQ0lNXCIgfCBcIkNSRUFURV9URU5BTlRcIiB8IFwiUkVWT0tFX01GUFwiIHwgXCJERUxFVEVfR1JJRFNcIiB8IFwiREVMRVRFX1RPS0VOU1wiO1xufTtcbmV4cG9ydCB0eXBlIEVucm9sbG1lbnRNdWx0aUZsYXNoUGFzc0FwaVJlcXVlc3RWMSA9IHtcbiAgICBlbnJvbGxtZW50RGVzaWduTmFtZT86IHN0cmluZztcbiAgICBwcmltYXJ5S2V5cz86IHN0cmluZ1tdO1xufTtcbmV4cG9ydCB0eXBlIE1vYmlsZUZsYXNoUGFzc1JlcXVlc3REZXRhaWxzID0ge1xuICAgIC8qKiBUaGUgZXJyb3IgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBmaXJzdCBlcnJvciBlbmNvdW50ZXJlZCBwcm9jZXNzaW5nIHRoZSBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByb3cgbnVtYmVyIG9mIHRoZSBmaXJzdCByb3cgdGhhdCBmYWlsZWQuICovXG4gICAgZmlyc3RGYWlsZWRSb3c/OiBudW1iZXI7XG4gICAgLyoqIFRoZSB1bmlxdWUgVVVJRCBvZiB0aGUgcmVxdWVzdC4gKi9cbiAgICBpZD86IHN0cmluZztcbiAgICAvKiogVGhlIHRpbWUgdGhpcyBidWxrIG9wZXJhdGlvbiB3YXMgaW5pdGlhbGl6ZWQuICovXG4gICAgaW5pdFRpbWU/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoaXMgYnVsayBvcGVyYXRpb24uICovXG4gICAgbmFtZT86IHN0cmluZztcbiAgICAvKiogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIGJ1bGsgb3BlcmF0aW9uIGNvbXBsZXRlZCBwcm9jZXNzaW5nLiAqL1xuICAgIHByb2Nlc3NpbmdFbmRUaW1lPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgYnVsayBvcGVyYXRpb24gYmVnYW4gcHJvY2Vzc2luZy4gKi9cbiAgICBwcm9jZXNzaW5nU3RhcnRUaW1lPzogc3RyaW5nO1xuICAgIC8qKiBIb3cgbG9uZyB0aGUgYnVsayBvcGVyYXRpb24gdG9vayB0byBjb21wbGV0ZSBwcm9jZXNzaW5nLiAqL1xuICAgIHByb2Nlc3NpbmdUaW1lPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHJvd3MgdGhhdCBoYXZlIGZhaWxlZCB3aGVuIHByb2Nlc3NlZC4gKi9cbiAgICByb3dzRmFpbGVkPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHJvd3Mgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZC4gKi9cbiAgICByb3dzUHJvY2Vzc2VkPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIHN0YXRlPzogXCJGQUlMRURcIiB8IFwiQ0FOQ0VMTEVEXCIgfCBcIkNPTVBMRVRFRFwiIHwgXCJBV0FJVElOR19EQVRBXCIgfCBcIlBST0NFU1NJTkdcIiB8IFwiU0NIRURVTEVEXCI7XG4gICAgLyoqIFRoZSB0eXBlIG9mIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIFwidHlwZVwiPzogXCJJTVBPUlRfVVNFUlNcIiB8IFwiSU1QT1JUX0dST1VQU1wiIHwgXCJJTVBPUlRfVVNFUl9HUk9VUFNcIiB8IFwiSU1QT1JUX0hBUkRXQVJFX1RPS0VOU1wiIHwgXCJJTVBPUlRfRU5ST0xMTUVOVFNcIiB8IFwiUFJJTlRfRU5ST0xMTUVOVFNcIiB8IFwiU0VORF9NRlBcIiB8IFwiQVNTSUdOX0VOVFJVU1RfU1RcIiB8IFwiQVNTSUdOX0dPT0dMRV9TVFwiIHwgXCJBU1NJR05fUEFTU1dPUkRTXCIgfCBcIlJFU0VUX1BBU1NXT1JEU1wiIHwgXCJERUxFVEVfVVNFUlNcIiB8IFwiSU1QT1JUX0lERU5USVRZR1VBUkRcIiB8IFwiSU1QT1JUX0dSSURTXCIgfCBcIkVYUE9SVF9BU1NJR05FREdSSURTXCIgfCBcIkVYUE9SVF9BU1NJR05FRFRPS0VOU1wiIHwgXCJFWFBPUlRfQVVESVRFVkVOVFNcIiB8IFwiRVhQT1JUX1NFTEZBVURJVEVWRU5UU1wiIHwgXCJFWFBPUlRfVU5BU1NJR05FREdSSURTXCIgfCBcIkVYUE9SVF9VTkFTU0lHTkVEVE9LRU5TXCIgfCBcIkVYUE9SVF9VU0VSU1wiIHwgXCJTRVRfUkVHSVNUUkFUSU9OXCIgfCBcIlNFVF9WRVJJRklDQVRJT05cIiB8IFwiQVNTSUdOX0dSSURTXCIgfCBcIkVYUE9SVF9VU0FHRVwiIHwgXCJDUkVBVEVfVU5BU1NJR05FRF9HUklEU1wiIHwgXCJBU1NJR05fSEFSRFdBUkVfVE9LRU5TXCIgfCBcIlNFVF9HUklEU1wiIHwgXCJFWFBPUlRfRU5ST0xMTUVOVFNcIiB8IFwiREVMRVRFX0dST1VQU1wiIHwgXCJFWFBPUlRfR1JPVVBTXCIgfCBcIlJFU0VUX1RPS0VOU1wiIHwgXCJERUxFVEVfRU5ST0xMTUVOVFNcIiB8IFwiUFJPVklTSU9OX1NDSU1cIiB8IFwiQ1JFQVRFX1RFTkFOVFwiIHwgXCJSRVZPS0VfTUZQXCIgfCBcIkRFTEVURV9HUklEU1wiIHwgXCJERUxFVEVfVE9LRU5TXCI7XG59O1xuZXhwb3J0IHR5cGUgQnVsa1ByaW50T3BlcmF0aW9uRGV0YWlscyA9IHtcbiAgICAvKiogVGhlIGVycm9yIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUgZmlyc3QgZXJyb3IgZW5jb3VudGVyZWQgcHJvY2Vzc2luZyB0aGUgYnVsayBvcGVyYXRpb24uICovXG4gICAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcm93IG51bWJlciBvZiB0aGUgZmlyc3Qgcm93IHRoYXQgZmFpbGVkLiAqL1xuICAgIGZpcnN0RmFpbGVkUm93PzogbnVtYmVyO1xuICAgIC8qKiBUaGUgdW5pcXVlIFVVSUQgb2YgdGhlIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIGlkPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdGltZSB0aGlzIGJ1bGsgb3BlcmF0aW9uIHdhcyBpbml0aWFsaXplZC4gKi9cbiAgICBpbml0VGltZT86IHN0cmluZztcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhpcyBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgYnVsayBvcGVyYXRpb24gY29tcGxldGVkIHByb2Nlc3NpbmcuICovXG4gICAgcHJvY2Vzc2luZ0VuZFRpbWU/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBidWxrIG9wZXJhdGlvbiBiZWdhbiBwcm9jZXNzaW5nLiAqL1xuICAgIHByb2Nlc3NpbmdTdGFydFRpbWU/OiBzdHJpbmc7XG4gICAgLyoqIEhvdyBsb25nIHRoZSBidWxrIG9wZXJhdGlvbiB0b29rIHRvIGNvbXBsZXRlIHByb2Nlc3NpbmcuICovXG4gICAgcHJvY2Vzc2luZ1RpbWU/OiBudW1iZXI7XG4gICAgLyoqIFRoZSBudW1iZXIgb2Ygcm93cyB0aGF0IGhhdmUgZmFpbGVkIHdoZW4gcHJvY2Vzc2VkLiAqL1xuICAgIHJvd3NGYWlsZWQ/OiBudW1iZXI7XG4gICAgLyoqIFRoZSBudW1iZXIgb2Ygcm93cyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkLiAqL1xuICAgIHJvd3NQcm9jZXNzZWQ/OiBudW1iZXI7XG4gICAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgYnVsayBvcGVyYXRpb24uICovXG4gICAgc3RhdGU/OiBcIkZBSUxFRFwiIHwgXCJDQU5DRUxMRURcIiB8IFwiQ09NUExFVEVEXCIgfCBcIkFXQUlUSU5HX0RBVEFcIiB8IFwiUFJPQ0VTU0lOR1wiIHwgXCJTQ0hFRFVMRURcIjtcbiAgICAvKiogVGhlIHR5cGUgb2YgYnVsayBvcGVyYXRpb24uICovXG4gICAgXCJ0eXBlXCI/OiBcIklNUE9SVF9VU0VSU1wiIHwgXCJJTVBPUlRfR1JPVVBTXCIgfCBcIklNUE9SVF9VU0VSX0dST1VQU1wiIHwgXCJJTVBPUlRfSEFSRFdBUkVfVE9LRU5TXCIgfCBcIklNUE9SVF9FTlJPTExNRU5UU1wiIHwgXCJQUklOVF9FTlJPTExNRU5UU1wiIHwgXCJTRU5EX01GUFwiIHwgXCJBU1NJR05fRU5UUlVTVF9TVFwiIHwgXCJBU1NJR05fR09PR0xFX1NUXCIgfCBcIkFTU0lHTl9QQVNTV09SRFNcIiB8IFwiUkVTRVRfUEFTU1dPUkRTXCIgfCBcIkRFTEVURV9VU0VSU1wiIHwgXCJJTVBPUlRfSURFTlRJVFlHVUFSRFwiIHwgXCJJTVBPUlRfR1JJRFNcIiB8IFwiRVhQT1JUX0FTU0lHTkVER1JJRFNcIiB8IFwiRVhQT1JUX0FTU0lHTkVEVE9LRU5TXCIgfCBcIkVYUE9SVF9BVURJVEVWRU5UU1wiIHwgXCJFWFBPUlRfU0VMRkFVRElURVZFTlRTXCIgfCBcIkVYUE9SVF9VTkFTU0lHTkVER1JJRFNcIiB8IFwiRVhQT1JUX1VOQVNTSUdORURUT0tFTlNcIiB8IFwiRVhQT1JUX1VTRVJTXCIgfCBcIlNFVF9SRUdJU1RSQVRJT05cIiB8IFwiU0VUX1ZFUklGSUNBVElPTlwiIHwgXCJBU1NJR05fR1JJRFNcIiB8IFwiRVhQT1JUX1VTQUdFXCIgfCBcIkNSRUFURV9VTkFTU0lHTkVEX0dSSURTXCIgfCBcIkFTU0lHTl9IQVJEV0FSRV9UT0tFTlNcIiB8IFwiU0VUX0dSSURTXCIgfCBcIkVYUE9SVF9FTlJPTExNRU5UU1wiIHwgXCJERUxFVEVfR1JPVVBTXCIgfCBcIkVYUE9SVF9HUk9VUFNcIiB8IFwiUkVTRVRfVE9LRU5TXCIgfCBcIkRFTEVURV9FTlJPTExNRU5UU1wiIHwgXCJQUk9WSVNJT05fU0NJTVwiIHwgXCJDUkVBVEVfVEVOQU5UXCIgfCBcIlJFVk9LRV9NRlBcIiB8IFwiREVMRVRFX0dSSURTXCIgfCBcIkRFTEVURV9UT0tFTlNcIjtcbn07XG5leHBvcnQgdHlwZSBDcmVkZW50aWFsRGVzaWduUHJpbnRSZXF1ZXN0UHJpbnRlciA9IHtcbiAgICAvKiogVGhlIG1lc3NhZ2UgdG8gZGlzcGxheSBvbiB0aGUgcHJpbnRlciBMQ0Qgc2NyZWVuIHdoZW4gdGhlIGV4Y2VwdGlvbiBzbG90IGlzIHNlbGVjdGVkLiBNYXhpbXVtIDQ1IGNoYXJhY3RlciBsaW1pdCBmb3IgU2lnbWEgcHJpbnRlcnMsIGFuZCAzMiBjaGFyYWN0ZXIgbGltaXQgZm9yIG9sZGVyIHByaW50ZXJzLiAqL1xuICAgIGV4Y2VwdGlvblNsb3RNZXNzYWdlPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcHJpbnRlciBob3BwZXIgdG8gdXNlLiBWYWx1ZSBvZiAwIHdpbGwgdXNlIHRoZSBwcmludGVyIGV4Y2VwdGlvbiBzbG90LiAqL1xuICAgIGhvcHBlcj86IG51bWJlcjtcbiAgICBwcmludGVySWQ/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgRW5yb2xsbWVudE11bHRpUHJpbnRBcGlSZXF1ZXN0VjEgPSB7XG4gICAgY3JlZGVudGlhbERlc2lnbk5hbWU/OiBzdHJpbmc7XG4gICAgZW5yb2xsbWVudERlc2lnbk5hbWU/OiBzdHJpbmc7XG4gICAgcHJpbWFyeUtleXM/OiBzdHJpbmdbXTtcbiAgICBwcmludGVyRGV0YWlscz86IENyZWRlbnRpYWxEZXNpZ25QcmludFJlcXVlc3RQcmludGVyO1xufTtcbmV4cG9ydCB0eXBlIFJlc3VtZVByaW50Sm9iQXBpUmVxdWVzdCA9IHtcbiAgICAvKiogVGhlIHByaW50IGpvYiBpZCBvYnRhaW5lZCB0aHJvdWdoIHRoZSBwcmUgcHJpbnQgd2ViaG9vayBwYXlsb2FkLiAgKi9cbiAgICBwcmludEpvYklkOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgUmVzdW1lUHJpbnRKb2JBcGlSZXNwb25zZSA9IHtcbiAgICAvKiogVGhlIGpvYiBpZCBvZiB0aGUgcmVxdWVzdGVkIHByaW50IGpvYiB0byByZXN1bWUgKi9cbiAgICBwcmludEpvYklkPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEVucm9sbG1lbnRQcmludEFwaVJlcXVlc3RWMSA9IHtcbiAgICAvKiogVGhlIGRlc2lnbiBuYW1lIG9mIHRoZSBlbnJvbGxtZW50LiA8Yj5Ob3RlOjwvYj4gcHJpbWFyeUtleSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgd2hlbiB0aGlzIHBhcmFtZXRlciBpcyBwcmVzZW50LiAqL1xuICAgIGVucm9sbG1lbnREZXNpZ25OYW1lPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdW5pcXVlIGVucm9sbG1lbnQgSUQgb2J0YWluZWQgZnJvbSBSZWFkIEVucm9sbG1lbnRzIHJlcXVlc3QuIDxiPk5vdGU6PC9iPiBwcmltYXJ5S2V5IGFuZCBlbnJvbGxtZW50RGVzaWduTmFtZSBwYXJhbWV0ZXJzIGFyZSBub3QgcmVxdWlyZWQgd2hlbiB0aGlzIHBhcmFtZXRlciBpcyBwcmVzZW50LiAqL1xuICAgIGVucm9sbG1lbnRJZD86IHN0cmluZztcbiAgICAvKiogVGhlIHByaW1hcnkga2V5IG9mIHRoZSBlbnJvbGxtZW50ICovXG4gICAgcHJpbWFyeUtleT86IHN0cmluZztcbiAgICBwcmludGVyRGV0YWlsczogQ3JlZGVudGlhbERlc2lnblByaW50UmVxdWVzdFByaW50ZXI7XG59O1xuZXhwb3J0IHR5cGUgRW5yb2xsbWVudFByaW50QXBpUmVzcG9uc2UgPSB7XG4gICAgLyoqIFRoZSBqb2IgaWQgb2YgdGhlIHJlcXVlc3RlZCBlbnJvbGxtZW50IHByaW50ICovXG4gICAgcHJpbnRKb2JJZD86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBQcmludFJlcXVlc3REZXRhaWxzID0ge1xuICAgIC8qKiBUaGUgZXJyb3IgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBmaXJzdCBlcnJvciBlbmNvdW50ZXJlZCBwcm9jZXNzaW5nIHRoZSBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByb3cgbnVtYmVyIG9mIHRoZSBmaXJzdCByb3cgdGhhdCBmYWlsZWQuICovXG4gICAgZmlyc3RGYWlsZWRSb3c/OiBudW1iZXI7XG4gICAgLyoqIFRoZSB1bmlxdWUgVVVJRCBvZiB0aGUgcmVxdWVzdC4gKi9cbiAgICBpZD86IHN0cmluZztcbiAgICAvKiogVGhlIHRpbWUgdGhpcyBidWxrIG9wZXJhdGlvbiB3YXMgaW5pdGlhbGl6ZWQuICovXG4gICAgaW5pdFRpbWU/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoaXMgYnVsayBvcGVyYXRpb24uICovXG4gICAgbmFtZT86IHN0cmluZztcbiAgICAvKiogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIGJ1bGsgb3BlcmF0aW9uIGNvbXBsZXRlZCBwcm9jZXNzaW5nLiAqL1xuICAgIHByb2Nlc3NpbmdFbmRUaW1lPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgYnVsayBvcGVyYXRpb24gYmVnYW4gcHJvY2Vzc2luZy4gKi9cbiAgICBwcm9jZXNzaW5nU3RhcnRUaW1lPzogc3RyaW5nO1xuICAgIC8qKiBIb3cgbG9uZyB0aGUgYnVsayBvcGVyYXRpb24gdG9vayB0byBjb21wbGV0ZSBwcm9jZXNzaW5nLiAqL1xuICAgIHByb2Nlc3NpbmdUaW1lPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHJvd3MgdGhhdCBoYXZlIGZhaWxlZCB3aGVuIHByb2Nlc3NlZC4gKi9cbiAgICByb3dzRmFpbGVkPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHJvd3Mgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZC4gKi9cbiAgICByb3dzUHJvY2Vzc2VkPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIHN0YXRlPzogXCJGQUlMRURcIiB8IFwiQ0FOQ0VMTEVEXCIgfCBcIkNPTVBMRVRFRFwiIHwgXCJBV0FJVElOR19EQVRBXCIgfCBcIlBST0NFU1NJTkdcIiB8IFwiU0NIRURVTEVEXCI7XG4gICAgLyoqIFRoZSB0eXBlIG9mIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIFwidHlwZVwiPzogXCJJTVBPUlRfVVNFUlNcIiB8IFwiSU1QT1JUX0dST1VQU1wiIHwgXCJJTVBPUlRfVVNFUl9HUk9VUFNcIiB8IFwiSU1QT1JUX0hBUkRXQVJFX1RPS0VOU1wiIHwgXCJJTVBPUlRfRU5ST0xMTUVOVFNcIiB8IFwiUFJJTlRfRU5ST0xMTUVOVFNcIiB8IFwiU0VORF9NRlBcIiB8IFwiQVNTSUdOX0VOVFJVU1RfU1RcIiB8IFwiQVNTSUdOX0dPT0dMRV9TVFwiIHwgXCJBU1NJR05fUEFTU1dPUkRTXCIgfCBcIlJFU0VUX1BBU1NXT1JEU1wiIHwgXCJERUxFVEVfVVNFUlNcIiB8IFwiSU1QT1JUX0lERU5USVRZR1VBUkRcIiB8IFwiSU1QT1JUX0dSSURTXCIgfCBcIkVYUE9SVF9BU1NJR05FREdSSURTXCIgfCBcIkVYUE9SVF9BU1NJR05FRFRPS0VOU1wiIHwgXCJFWFBPUlRfQVVESVRFVkVOVFNcIiB8IFwiRVhQT1JUX1NFTEZBVURJVEVWRU5UU1wiIHwgXCJFWFBPUlRfVU5BU1NJR05FREdSSURTXCIgfCBcIkVYUE9SVF9VTkFTU0lHTkVEVE9LRU5TXCIgfCBcIkVYUE9SVF9VU0VSU1wiIHwgXCJTRVRfUkVHSVNUUkFUSU9OXCIgfCBcIlNFVF9WRVJJRklDQVRJT05cIiB8IFwiQVNTSUdOX0dSSURTXCIgfCBcIkVYUE9SVF9VU0FHRVwiIHwgXCJDUkVBVEVfVU5BU1NJR05FRF9HUklEU1wiIHwgXCJBU1NJR05fSEFSRFdBUkVfVE9LRU5TXCIgfCBcIlNFVF9HUklEU1wiIHwgXCJFWFBPUlRfRU5ST0xMTUVOVFNcIiB8IFwiREVMRVRFX0dST1VQU1wiIHwgXCJFWFBPUlRfR1JPVVBTXCIgfCBcIlJFU0VUX1RPS0VOU1wiIHwgXCJERUxFVEVfRU5ST0xMTUVOVFNcIiB8IFwiUFJPVklTSU9OX1NDSU1cIiB8IFwiQ1JFQVRFX1RFTkFOVFwiIHwgXCJSRVZPS0VfTUZQXCIgfCBcIkRFTEVURV9HUklEU1wiIHwgXCJERUxFVEVfVE9LRU5TXCI7XG59O1xuZXhwb3J0IHR5cGUgUHJpbnRDb3VudCA9IHtcbiAgICAvKiogVGhlIGNvdW50LiAqL1xuICAgIGNvdW50PzogbnVtYmVyO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgY291bnQuICovXG4gICAgbmFtZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBQcmludENvdW50UmVzcG9uc2UgPSB7XG4gICAgY291bnRzPzogUHJpbnRDb3VudFtdO1xufTtcbmV4cG9ydCB0eXBlIFByaW50ZXIgPSB7XG4gICAgLyoqIFRvdGFsIGNhcmRzIHN1Y2Nlc3NmdWxseSBwcmludGVkIGJ5IHByaW50ZXIuICovXG4gICAgY2FyZHNQcmludGVkPzogbnVtYmVyO1xuICAgIC8qKiBudW1iZXIgb2YgY2FyZHMgcmVtYWluaW5nIGJlZm9yZSBjbGVhbmluZyAqL1xuICAgIGNhcmRzUmVtYWluaW5nPzogbnVtYmVyO1xuICAgIC8qKiBTZWxmIHNpZ25lZCBjZXJ0cyBmb3IgbGVnYWN5IHByaW50ZXJzICovXG4gICAgY2VydGlmaWNhdGU/OiBzdHJpbmc7XG4gICAgLyoqIFByaW50ZXJzIHVuaXF1ZSBkZXZpY2UgSUQgb2J0YWluZWQgZnJvbSB0aGUgcHJpbnRlciBMQ0QuICovXG4gICAgZGV2aWNlSWQ/OiBzdHJpbmc7XG4gICAgLyoqIE9wdGlvbmFsIHBoeXNpY2FsIGxvY2F0aW9uIG9mIHRoZSBwcmludGVyLiAqL1xuICAgIGxvY2F0aW9uPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcHJpbnRlciBuYW1lICovXG4gICAgbmFtZT86IHN0cmluZztcbiAgICAvKiogVGhlIHByaW50ZXIgcGxhdGZvcm0gKi9cbiAgICBwcmludGVyUGxhdGZvcm0/OiBzdHJpbmc7XG4gICAgLyoqIEEgZmxhZyB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgcHJpbnRlciBoYXMgUFRQIHJpYmJvbiBvciBub3QgKElnbm9yZSB0aGlzIGZpZWxkIGluIHRoZSBBUEkgcmVxdWVzdCBvciByZXNwb25zZSkgKi9cbiAgICBwdHBSZWFkeT86IGJvb2xlYW47XG4gICAgLyoqIFRoZSBwYXJ0IG51bWJlciBvZiB0aGUgcmV0cmFuc2ZlciByaWJib24gaW5zdGFsbGVkIG9uIHByaW50ZXIgKi9cbiAgICByZXRyYW5zZmVyUGFydE51bWJlcj86IHN0cmluZztcbiAgICAvKiogcGVyY2VudGFnZSBvZiByZXRyYW5zZmVyIHJvbGwgcmVtYWluaW5nIGluIHByaW50ZXIgKi9cbiAgICByZXRyYW5zZmVyUm9sbFJlbWFpbmluZz86IG51bWJlcjtcbiAgICAvKiogSUQgb2YgdGhlIGNsb3VkIGVuYWJsZWQgcmliYm9uIGluc3RhbGxlZCBpbiB0aGUgcHJpbnRlciAoSWdub3JlIHRoaXMgZmllbGQgaW4gdGhlIEFQSSByZXF1ZXN0IG9yIHJlc3BvbnNlKSAqL1xuICAgIHJpYmJvbklkPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcGFydCBudW1iZXIgb2YgdGhlIHByaW50IHJpYmJvbiBpbnN0YWxsZWQgb24gcHJpbnRlciAqL1xuICAgIHJpYmJvblBhcnROdW1iZXI/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByZWdpb24gb2YgdGhlIHJpYmJvbiBpbnN0YWxsZWQgKi9cbiAgICByaWJib25SZWdpb24/OiBzdHJpbmc7XG4gICAgLyoqIHBlcmNlbnRhZ2Ugb2YgcmliYm9uIHJlbWFpbmluZyBpbiBwcmludGVyICovXG4gICAgcmliYm9uUmVtYWluaW5nPzogbnVtYmVyO1xuICAgIC8qKiBBIGZsYWcgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHNtYXJ0IGNhcmQgc2ltdWxhdG9yIG5lZWRzIHRvIGJlIGludm9rZWQgKi9cbiAgICBzY1NpbXVsYXRvcj86IGJvb2xlYW47XG4gICAgLyoqIFRoZSB1bmlxdWUgc2VyaWFsIG51bWJlciBvZiB0aGUgcHJpbnRlciAqL1xuICAgIHNlcmlhbE51bWJlcj86IHN0cmluZztcbiAgICBzdGF0dXM/OiBcIkJVU1lcIiB8IFwiSURMRVwiIHwgXCJUSU1FT1VUXCIgfCBcIklOVkFMSURcIjtcbn07XG5leHBvcnQgdHlwZSBQcmludGVyUmVhZCA9IHtcbiAgICAvKiogVG90YWwgY2FyZHMgc3VjY2Vzc2Z1bGx5IHByaW50ZWQgYnkgcHJpbnRlci4gKi9cbiAgICBjYXJkc1ByaW50ZWQ/OiBudW1iZXI7XG4gICAgLyoqIG51bWJlciBvZiBjYXJkcyByZW1haW5pbmcgYmVmb3JlIGNsZWFuaW5nICovXG4gICAgY2FyZHNSZW1haW5pbmc/OiBudW1iZXI7XG4gICAgLyoqIFNlbGYgc2lnbmVkIGNlcnRzIGZvciBsZWdhY3kgcHJpbnRlcnMgKi9cbiAgICBjZXJ0aWZpY2F0ZT86IHN0cmluZztcbiAgICAvKiogUHJpbnRlcnMgdW5pcXVlIGRldmljZSBJRCBvYnRhaW5lZCBmcm9tIHRoZSBwcmludGVyIExDRC4gKi9cbiAgICBkZXZpY2VJZD86IHN0cmluZztcbiAgICAvKiogVGhlIGRhdGUgd2hlbiB0aGUgZmlybXdhcmUgdmVyc2lvbiB3YXMgbGFzdCBjaGVja2VkICovXG4gICAgZmlybXdhcmVDaGVja2VkT24/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByZXF1ZXN0IGlkIGZvciBhbiBhY3RpdmUgZmlybXdhcmUgdXBkYXRlICovXG4gICAgZmlybXdhcmVVcGRhdGVSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBkYXRlIHdoZW4gdGhlIGZpcm13YXJlIHZlcnNpb24gd2FzIGxhc3QgdXBkYXRlZCAqL1xuICAgIGZpcm13YXJlVXBkYXRlZE9uPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgZmlybXdhcmUgdmVyc2lvbiAqL1xuICAgIGZpcm13YXJlVmVyc2lvbj86IHN0cmluZztcbiAgICAvKiogVGhlIG51bWJlciBvZiBob3BwZXJzICovXG4gICAgaG9wcGVycz86IG51bWJlcjtcbiAgICBpZD86IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgcGh5c2ljYWwgbG9jYXRpb24gb2YgdGhlIHByaW50ZXIuICovXG4gICAgbG9jYXRpb24/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwcmludGVyIG1vZGVsICovXG4gICAgbW9kZWw/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwcmludGVyIG5hbWUgKi9cbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIC8qKiBBIG5ld2VyIGZpcm13YXJlIHZlcnNpb24gKi9cbiAgICBuZXdGaXJtd2FyZVZlcnNpb24/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwcmludGVyIHBsYXRmb3JtICovXG4gICAgcHJpbnRlclBsYXRmb3JtPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcHJpbnRlciB0eXBlICovXG4gICAgcHJpbnRlclR5cGU/OiBzdHJpbmc7XG4gICAgLyoqIEEgZmxhZyB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgcHJpbnRlciBoYXMgUFRQIHJpYmJvbiBvciBub3QgKElnbm9yZSB0aGlzIGZpZWxkIGluIHRoZSBBUEkgcmVxdWVzdCBvciByZXNwb25zZSkgKi9cbiAgICBwdHBSZWFkeT86IGJvb2xlYW47XG4gICAgLyoqIFRoZSBwYXJ0IG51bWJlciBvZiB0aGUgcmV0cmFuc2ZlciByaWJib24gaW5zdGFsbGVkIG9uIHByaW50ZXIgKi9cbiAgICByZXRyYW5zZmVyUGFydE51bWJlcj86IHN0cmluZztcbiAgICAvKiogcGVyY2VudGFnZSBvZiByZXRyYW5zZmVyIHJvbGwgcmVtYWluaW5nIGluIHByaW50ZXIgKi9cbiAgICByZXRyYW5zZmVyUm9sbFJlbWFpbmluZz86IG51bWJlcjtcbiAgICAvKiogSUQgb2YgdGhlIGNsb3VkIGVuYWJsZWQgcmliYm9uIGluc3RhbGxlZCBpbiB0aGUgcHJpbnRlciAoSWdub3JlIHRoaXMgZmllbGQgaW4gdGhlIEFQSSByZXF1ZXN0IG9yIHJlc3BvbnNlKSAqL1xuICAgIHJpYmJvbklkPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcGFydCBudW1iZXIgb2YgdGhlIHByaW50IHJpYmJvbiBpbnN0YWxsZWQgb24gcHJpbnRlciAqL1xuICAgIHJpYmJvblBhcnROdW1iZXI/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByZWdpb24gb2YgdGhlIHJpYmJvbiBpbnN0YWxsZWQgKi9cbiAgICByaWJib25SZWdpb24/OiBzdHJpbmc7XG4gICAgLyoqIHBlcmNlbnRhZ2Ugb2YgcmliYm9uIHJlbWFpbmluZyBpbiBwcmludGVyICovXG4gICAgcmliYm9uUmVtYWluaW5nPzogbnVtYmVyO1xuICAgIC8qKiBBIGZsYWcgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHNtYXJ0IGNhcmQgc2ltdWxhdG9yIG5lZWRzIHRvIGJlIGludm9rZWQgKi9cbiAgICBzY1NpbXVsYXRvcj86IGJvb2xlYW47XG4gICAgLyoqIFRoZSB1bmlxdWUgc2VyaWFsIG51bWJlciBvZiB0aGUgcHJpbnRlciAqL1xuICAgIHNlcmlhbE51bWJlcj86IHN0cmluZztcbiAgICBzdGF0dXM/OiBcIkJVU1lcIiB8IFwiSURMRVwiIHwgXCJUSU1FT1VUXCIgfCBcIklOVkFMSURcIjtcbn07XG5leHBvcnQgdHlwZSBSZXNvdXJjZUlkUmVzcG9uc2UgPSB7XG4gICAgbGluaz86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBSZXNvdXJjZUlkUmVzcG9uc2VSZWFkID0ge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIGxpbms/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgU21hcnRDYXJkQ29tbWFuZFJlc3BvbnNlID0ge1xuICAgIHJlc3BvbnNlPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEJhc2ljUHJpbnRSZXNwb25zZURhdGEgPSB7XG4gICAgY29waWVzUmVtYWluaW5nPzogbnVtYmVyO1xuICAgIHNtYXJ0Y2FyZFJlc3BvbnNlcz86IFNtYXJ0Q2FyZENvbW1hbmRSZXNwb25zZVtdO1xufTtcbmV4cG9ydCB0eXBlIEJhc2ljUHJpbnRSZXNwb25zZSA9IHtcbiAgICBjcmVhdGVkT24/OiBzdHJpbmc7XG4gICAgZGF0YT86IEJhc2ljUHJpbnRSZXNwb25zZURhdGE7XG4gICAgc3RhdHVzPzogXCJRVUVVRURcIiB8IFwiV0FJVElOR19TTUFSVENBUkRcIiB8IFwiSU5fUFJPR1JFU1NcIiB8IFwiQ09NUExFVEVEXCIgfCBcIkZBSUxFRFwiIHwgXCJDQU5DRUxMRURcIiB8IFwiVU5LTk9XTlwiIHwgXCJBV0FJVElOR19QUklOVFwiO1xuICAgIC8qKiBQcmludCBzdGF0dXMgZGV0YWlscyByZXR1cm5lZCBmcm9tIHRoZSBwcmludGVyLiAqL1xuICAgIHN0YXR1c0RldGFpbHM/OiBzdHJpbmc7XG4gICAgdXBkYXRlZE9uPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFNtYXJ0Q2FyZENvbW1hbmQgPSB7XG4gICAgY29tbWFuZDogc3RyaW5nO1xuICAgIHJlc3VsdE1hdGNoZXI/OiBzdHJpbmc7XG4gICAgXCJ0eXBlXCI6IFwiQVBEVVwiIHwgXCJDT1VQTEVSXCI7XG59O1xuZXhwb3J0IHR5cGUgQmFzaWNQcmludFVwZGF0ZVJlcXVlc3RTbWFydGNhcmQgPSB7XG4gICAgY29tbWFuZHM/OiBTbWFydENhcmRDb21tYW5kW107XG59O1xuZXhwb3J0IHR5cGUgQmFzaWNQcmludFVwZGF0ZVJlcXVlc3QgPSB7XG4gICAgc21hcnRjYXJkPzogQmFzaWNQcmludFVwZGF0ZVJlcXVlc3RTbWFydGNhcmQ7XG59O1xuZXhwb3J0IHR5cGUgUHJpbnRPcGVyYXRpb25SZXNwb25zZSA9IHtcbiAgICBwcmludFN0YXR1cz86IFJlc291cmNlSWRSZXNwb25zZTtcbn07XG5leHBvcnQgdHlwZSBQcmludE9wZXJhdGlvblJlc3BvbnNlUmVhZCA9IHtcbiAgICBwcmludFN0YXR1cz86IFJlc291cmNlSWRSZXNwb25zZVJlYWQ7XG59O1xuZXhwb3J0IHR5cGUgUHJpbnRlclN1bW1hcnlSZXNwb25zZSA9IHtcbiAgICAvKiogVGhlIHRvdGFsIG51bWJlciBvZiBwcmludGVycyAqL1xuICAgIHByaW50ZXJDb3VudD86IG51bWJlcjtcbn07XG5leHBvcnQgdHlwZSBMYW1pbmF0b3JzID0ge1xuICAgIExhbWluYXRvcjE/OiBcIkRPX05PVF9BUFBMWVwiIHwgXCJBUFBMWV9PTkNFXCIgfCBcIkFQUExZX1RXSUNFXCI7XG4gICAgTGFtaW5hdG9yMj86IFwiRE9fTk9UX0FQUExZXCIgfCBcIkFQUExZX09OQ0VcIiB8IFwiQVBQTFlfVFdJQ0VcIjtcbn07XG5leHBvcnQgdHlwZSBMYW1pbmF0aW9uID0ge1xuICAgIGJhY2s/OiBMYW1pbmF0b3JzO1xuICAgIGZyb250PzogTGFtaW5hdG9ycztcbn07XG5leHBvcnQgdHlwZSBQcmludGVyUHJlZmVyZW5jZXMgPSB7XG4gICAgYmFja09yaWVudGF0aW9uPzogXCJQT1JUUkFJVFwiIHwgXCJMQU5EU0NBUEVcIjtcbiAgICAvKiogUm90YXRlIGJhY2sgc2lkZSBjYXJkIGltYWdlIDE4MCBkZWdyZWVzPyAqL1xuICAgIGJhY2tSb3RhdGUxODA/OiBib29sZWFuO1xuICAgIC8qKiBQcmludCBiYXIgY29kZXMgdXNpbmcgbW9ub2Nocm9tZT8gKi9cbiAgICBiYXJDb2Rlc01vbm9jaHJvbWU/OiBib29sZWFuO1xuICAgIC8qKiBQcmludCBibGFjayBpbWFnZSBwaXhlbHMgdXNpbmcgbW9ub2Nocm9tZT8gKi9cbiAgICBibGFja1BpeGVsc01vbm9jaHJvbWU/OiBib29sZWFuO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIGNvcGllcyB0byBwcmludCAqL1xuICAgIGNvcGllcz86IG51bWJlcjtcbiAgICAvKiogRGVib3cgY2FyZD8gKi9cbiAgICBkZWJvdz86IGJvb2xlYW47XG4gICAgZGlzYWJsZVByaW50aW5nPzogXCJmYWxzZVwiIHwgXCJBTExcIiB8IFwiRlJPTlRcIiB8IFwiQkFDS1wiO1xuICAgIGZyb250T3JpZW50YXRpb24/OiBcIlBPUlRSQUlUXCIgfCBcIkxBTkRTQ0FQRVwiO1xuICAgIC8qKiBSb3RhdGUgZnJvbnQgc2lkZSBjYXJkIGltYWdlIDE4MCBkZWdyZWVzPyAqL1xuICAgIGZyb250Um90YXRlMTgwPzogYm9vbGVhbjtcbiAgICAvKiogVGhlIGlucHV0IGhvcHBlciBmcm9tIHdoaWNoIHRvIHNlbGVjdCBhIGNhcmQgKi9cbiAgICBpbnB1dEhvcHBlcj86IG51bWJlcjtcbiAgICBsYW1pbmF0aW9uPzogTGFtaW5hdGlvbjtcbiAgICAvKiogVGhlIHJlc29sdXRpb24gYXQgd2hpY2ggcHJpbnRlciB3aWxsIHByaW50LiBUaGlzIHdpbGwgYmUgTkEgaWYgcHJpbnRlciBzdXBwb3J0cyBvbmx5IDEgcmVzb2x1dGlvbi4gKi9cbiAgICBwcmludFJlc29sdXRpb24/OiBcIk5BXCIgfCBcIkJFU1RcIiB8IFwiU1RBTkRBUkRcIjtcbiAgICAvKiogUmV3cml0ZSBjYXJkPyAqL1xuICAgIHJld3JpdGU/OiBib29sZWFuO1xuICAgIHNwbGl0UmliYm9uPzogXCJmYWxzZVwiIHwgXCJZTUNUX0ZST05UX0tfQkFDS1wiIHwgXCJZTUNfRlJPTlRfS1RfQkFDS1wiIHwgXCJLX0ZST05UX1lNQ1RfQkFDS1wiIHwgXCJZTUNfRlJPTlRfS19CQUNLXCIgfCBcIktfRlJPTlRfWU1DX0JBQ0tcIiB8IFwiS19GUk9OVF9ZTUNLVF9CQUNLXCIgfCBcIktUX0ZST05UX1lNQ0tUX0JBQ0tcIiB8IFwiWU1DS1RUX0ZST05UX0tfQkFDS1wiIHwgXCJZTUNLRlRfRlJPTlRfS19CQ