@asoftwareworld/form-builder
Version:
ASW Form Builder helps you with rapid development and designed web forms which includes several controls. The key feature of Form Builder is to make your content attractive and effective. We can customize our control at run time and preview the same befor
193 lines • 29.2 kB
JavaScript
/**
* @license
* Copyright ASW (A Software World) All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file
*/
function getConstatnts() {
const defaultImage = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMABgQFBgUEBgYFBgcHBggKEAoKCQkKFA4PDBAXFBgYFxQWFhodJR8aGyMcFhYgLCAjJicpKikZHy0wLSgwJSgpKP/bAEMBBwcHCggKEwoKEygaFhooKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKP/AABEIATgDUgMBIgACEQEDEQH/xAAVAAEBAAAAAAAAAAAAAAAAAAAACP/EABQQAQAAAAAAAAAAAAAAAAAAAAD/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AqkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//2Q==';
const titleMessages = {
homeTitle: 'ASW | Form Builder',
aboutUsTitle: 'ASW | About Us',
contactUsTitle: 'ASW | Contact Us',
};
const accountValidationMessages = {
name: [
{ type: 'required', message: 'Name is required.' },
{ type: 'minlength', message: 'Name must be at least 5 characters long.' },
{ type: 'maxlength', message: 'Name cannot be more than 25 characters long.' },
{ type: 'pattern', message: 'Your username must contain only numbers and letters.' }
],
emailAddress: [
{ type: 'required', message: 'Email is required.' },
{ type: 'email', message: 'Please enter a valid email address.' },
{ type: 'pattern', message: 'Email format should be xyz@example.com.' }
],
phoneNumber: [
{ type: 'required', message: 'Phone number is required.' },
{ type: 'minlength', message: 'Phone number must be at least 10 characters long.' },
{ type: 'maxlength', message: 'Phone number cannot be more than 10 characters long.' },
],
message: [
{ type: 'required', message: 'Message is required.' },
{ type: 'minlength', message: 'Message must be at least 6 characters long.' },
{ type: 'maxlength', message: 'Message cannot be more than 255 characters long.' },
],
label: [
{ type: 'required', message: 'Label is required.' },
{ type: 'minlength', message: 'Label must be at least 5 characters long.' },
{ type: 'maxlength', message: 'Label cannot be more than 25 characters long.' }
],
maxlength: [
{ type: 'required', message: 'Maxlength is required.' },
{ type: 'pattern', message: 'Maxlength must contain only numbers.' },
],
minlength: [
{ type: 'required', message: 'Minlength is required.' },
{ type: 'pattern', message: 'Minlength must contain only numbers.' },
],
key: [
{ type: 'required', message: 'Option key is required.' },
{ type: 'minlength', message: 'Sorry, your option key must be between 1 and 50 characters long.' },
{ type: 'pattern', message: 'Sorry, only letters (a-z), numbers (0-9), and periods (- and _) are allowed.' },
{ type: 'unique', message: 'Option key is already exist. Try another.' }
],
value: [
{ type: 'required', message: 'Option value is required.' },
{ type: 'minlength', message: 'Sorry, your option value must be between 1 and 999 characters long.' }
],
searchAddress: [
{ type: 'unique', message: 'Searched address not found.' }
],
id: [
{ type: 'required', message: 'Unique id is required.' }
],
operationValue: [
{ type: 'required', message: 'Operation is required.' }
],
control: [
{ type: 'required', message: 'Operator is required.' },
],
width: [
{ type: 'required', messages: 'Width is required.' },
{ type: 'max', message: 'Please enter a value between 0 and 600' }
],
height: [
{ type: 'required', messages: 'Height is required.' },
{ type: 'max', message: 'Please enter a value between 0 and 600' }
]
};
const columns = [
{
value: 'col-md-1',
label: 'Column 1'
},
{
value: 'col-md-2',
label: 'Column 2'
},
{
value: 'col-md-3',
label: 'Column 3'
},
{
value: 'col-md-4',
label: 'Column 4'
},
{
value: 'col-md-5',
label: 'Column 5'
},
{
value: 'col-md-6',
label: 'Column 6'
},
{
value: 'col-md-7',
label: 'Column 7'
},
{
value: 'col-md-8',
label: 'Column 8'
},
{
value: 'col-md-9',
label: 'Column 9'
},
{
value: 'col-md-10',
label: 'Column 10'
},
{
value: 'col-md-11',
label: 'Column 11'
},
{
value: 'col-md-12',
label: 'Column 12'
}
];
const operations = [
{
value: '+',
label: 'Addition'
},
{
value: '-',
label: 'Subtraction'
},
{
value: '*',
label: 'Multiplication'
},
{
value: '/',
label: 'Division'
},
{
value: 'x̄',
label: 'Average'
},
];
const dataTypes = {
dataTypeString: 'string',
dataTypeNumber: 'number',
dataTypeBoolean: 'boolean'
};
const cssClass = {
cssClassCardHidden: 'quote-card-hidden',
cssClassCardVisible: 'quote-card-visible'
};
const matchPattern = {
emailPattern: '^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$',
passwordPattern: '((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,20})',
phonePattern: '[6-9]\\d{9}',
numberPattern: '^[0-9]*$'
};
const notificationMessage = {
notificationDisplayDuration: 10000,
errorNotification: 'There is some problem. Please contact to administrator',
emailSuccessNotification: 'Thank you! Your message has been sent successfully.'
};
const messages = {
waringMessage: 'Are you sure you want to remove this field?',
optionKeyValidationMessage: 'That option key is already exist. Try another.'
};
const applicationConstants = {
applicationTitle: 'ASW Form Build',
titleMessages,
accountValidationMessages,
cssClass,
dataTypes,
matchPattern,
notificationMessage,
messages,
columns,
operations,
defaultImage
};
return applicationConstants;
}
export const Constants = getConstatnts();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZm9ybS1jb250cm9sL2NvcmUvY29uc3RhbnQvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILFNBQVMsYUFBYTtJQUVsQixNQUFNLFlBQVksR0FBRyx5dUdBQXl1RyxDQUFDO0lBQy92RyxNQUFNLGFBQWEsR0FBRztRQUNsQixTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLFlBQVksRUFBRSxnQkFBZ0I7UUFDOUIsY0FBYyxFQUFFLGtCQUFrQjtLQUNyQyxDQUFDO0lBRUYsTUFBTSx5QkFBeUIsR0FBRztRQUM5QixJQUFJLEVBQUU7WUFDRixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFO1lBQ2xELEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsMENBQTBDLEVBQUU7WUFDMUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSw4Q0FBOEMsRUFBRTtZQUM5RSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLHNEQUFzRCxFQUFFO1NBQ3ZGO1FBQ0QsWUFBWSxFQUFFO1lBQ1YsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRTtZQUNuRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFO1lBQ2pFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUseUNBQXlDLEVBQUU7U0FDMUU7UUFDRCxXQUFXLEVBQUU7WUFDVCxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFO1lBQzFELEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsbURBQW1ELEVBQUU7WUFDbkYsRUFBRSxJQUFJLEVBQUUs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WUFBWSxFQUFFLGlEQUFpRDtRQUMvRCxlQUFlLEVBQUUsc0RBQXNEO1FBQ3ZFLFlBQVksRUFBRSxhQUFhO1FBQzNCLGFBQWEsRUFBRSxVQUFVO0tBQzVCLENBQUM7SUFFRixNQUFNLG1CQUFtQixHQUFHO1FBQ3hCLDJCQUEyQixFQUFFLEtBQUs7UUFDbEMsaUJBQWlCLEVBQUUsd0RBQXdEO1FBQzNFLHdCQUF3QixFQUFFLHFEQUFxRDtLQUNsRixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUc7UUFDYixhQUFhLEVBQUUsNkNBQTZDO1FBQzVELDBCQUEwQixFQUFFLGdEQUFnRDtLQUMvRSxDQUFDO0lBRUYsTUFBTSxvQkFBb0IsR0FBRztRQUN6QixnQkFBZ0IsRUFBRSxnQkFBZ0I7UUFDbEMsYUFBYTtRQUNiLHlCQUF5QjtRQUN6QixRQUFRO1FBQ1IsU0FBUztRQUNULFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsUUFBUTtRQUNSLE9BQU87UUFDUCxVQUFVO1FBQ1YsWUFBWTtLQUNmLENBQUM7SUFFRixPQUFPLG9CQUFvQixDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsYUFBYSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IEFTVyAoQSBTb2Z0d2FyZSBXb3JsZCkgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcclxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZVxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIGdldENvbnN0YXRudHMoKTogYW55IHtcclxuXHJcbiAgICBjb25zdCBkZWZhdWx0SW1hZ2UgPSAnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwvOWovNEFBUVNrWkpSZ0FCQVFBQUFRQUJBQUQvNGdJb1NVTkRYMUJTVDBaSlRFVUFBUUVBQUFJWUFBQUFBQVF3QUFCdGJuUnlVa2RDSUZoWldpQUFBQUFBQUFBQUFBQUFBQUJoWTNOd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUE5dFlBQVFBQUFBRFRMUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBbGtaWE5qQUFBQThBQUFBSFJ5V0ZsYUFBQUJaQUFBQUJSbldGbGFBQUFCZUFBQUFCUmlXRmxhQUFBQmpBQUFBQlJ5VkZKREFBQUJvQUFBQUNoblZGSkRBQUFCb0FBQUFDaGlWRkpEQUFBQm9BQUFBQ2gzZEhCMEFBQUJ5QUFBQUJSamNISjBBQUFCM0FBQUFEeHRiSFZqQUFBQUFBQUFBQUVBQUFBTVpXNVZVd0FBQUZnQUFBQWNBSE1BVWdCSEFFSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGaFpXaUFBQUFBQUFBQnZvZ0FBT1BVQUFBT1FXRmxhSUFBQUFBQUFBR0taQUFDM2hRQUFHTnBZV1ZvZ0FBQUFBQUFBSktBQUFBK0VBQUMyejNCaGNtRUFBQUFBQUFRQUFBQUNabVlBQVBLbkFBQU5XUUFBRTlBQUFBcGJBQUFBQUFBQUFBQllXVm9nQUFBQUFBQUE5dFlBQVFBQUFBRFRMVzFzZFdNQUFBQUFBQUFBQVFBQUFBeGxibFZUQUFBQUlBQUFBQndBUndCdkFHOEFad0JzQUdVQUlBQkpBRzRBWXdBdUFDQUFNZ0F3QURFQU52L2JBRU1BQmdRRkJnVUVCZ1lGQmdjSEJnZ0tFQW9LQ1FrS0ZBNFBEQkFYRkJnWUZ4UVdGaG9kSlI4YUd5TWNGaFlnTENBakppY3BLaWtaSHkwd0xTZ3dKU2dwS1AvYkFFTUJCd2NIQ2dnS0V3b0tFeWdhRmhvb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LUC9BQUJFSUFUZ0RVZ01CSWdBQ0VRRURFUUgveEFBVkFBRUJBQUFBQUFBQUFBQUFBQUFBQUFBQUNQL0VBQlFRQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUQveEFBVUFRRUFBQUFBQUFBQUFBQUFBQUFBQUFBQS84UUFGQkVCQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9hQUF3REFRQUNFUU1SQUQ4QXFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFILy8yUT09JztcclxuICAgIGNvbnN0IHRpdGxlTWVzc2FnZXMgPSB7XHJcbiAgICAgICAgaG9tZVRpdGxlOiAnQVNXIHwgRm9ybSBCdWlsZGVyJyxcclxuICAgICAgICBhYm91dFVzVGl0bGU6ICdBU1cgfCBBYm91dCBVcycsXHJcbiAgICAgICAgY29udGFjdFVzVGl0bGU6ICdBU1cgfCBDb250YWN0IFVzJyxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgYWNjb3VudFZhbGlkYXRpb25NZXNzYWdlcyA9IHtcclxuICAgICAgICBuYW1lOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ05hbWUgaXMgcmVxdWlyZWQuJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdtaW5sZW5ndGgnLCBtZXNzYWdlOiAnTmFtZSBtdXN0IGJlIGF0IGxlYXN0IDUgY2hhcmFjdGVycyBsb25nLicgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnbWF4bGVuZ3RoJywgbWVzc2FnZTogJ05hbWUgY2Fubm90IGJlIG1vcmUgdGhhbiAyNSBjaGFyYWN0ZXJzIGxvbmcuJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdwYXR0ZXJuJywgbWVzc2FnZTogJ1lvdXIgdXNlcm5hbWUgbXVzdCBjb250YWluIG9ubHkgbnVtYmVycyBhbmQgbGV0dGVycy4nIH1cclxuICAgICAgICBdLFxyXG4gICAgICAgIGVtYWlsQWRkcmVzczogW1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdyZXF1aXJlZCcsIG1lc3NhZ2U6ICdFbWFpbCBpcyByZXF1aXJlZC4nIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2VtYWlsJywgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MuJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdwYXR0ZXJuJywgbWVzc2FnZTogJ0VtYWlsIGZvcm1hdCBzaG91bGQgYmUgeHl6QGV4YW1wbGUuY29tLicgfVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgcGhvbmVOdW1iZXI6IFtcclxuICAgICAgICAgICAgeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlOiAnUGhvbmUgbnVtYmVyIGlzIHJlcXVpcmVkLicgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnbWlubGVuZ3RoJywgbWVzc2FnZTogJ1Bob25lIG51bWJlciBtdXN0IGJlIGF0IGxlYXN0IDEwIGNoYXJhY3RlcnMgbG9uZy4nIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ21heGxlbmd0aCcsIG1lc3NhZ2U6ICdQaG9uZSBudW1iZXIgY2Fubm90IGJlIG1vcmUgdGhhbiAxMCBjaGFyYWN0ZXJzIGxvbmcuJyB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgbWVzc2FnZTogW1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdyZXF1aXJlZCcsIG1lc3NhZ2U6ICdNZXNzYWdlIGlzIHJlcXVpcmVkLicgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnbWlubGVuZ3RoJywgbWVzc2FnZTogJ01lc3NhZ2UgbXVzdCBiZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMgbG9uZy4nIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ21heGxlbmd0aCcsIG1lc3NhZ2U6ICdNZXNzYWdlIGNhbm5vdCBiZSBtb3JlIHRoYW4gMjU1IGNoYXJhY3RlcnMgbG9uZy4nIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBsYWJlbDogW1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdyZXF1aXJlZCcsIG1lc3NhZ2U6ICdMYWJlbCBpcyByZXF1aXJlZC4nIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ21pbmxlbmd0aCcsIG1lc3NhZ2U6ICdMYWJlbCBtdXN0IGJlIGF0IGxlYXN0IDUgY2hhcmFjdGVycyBsb25nLicgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnbWF4bGVuZ3RoJywgbWVzc2FnZTogJ0xhYmVsIGNhbm5vdCBiZSBtb3JlIHRoYW4gMjUgY2hhcmFjdGVycyBsb25nLicgfVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgbWF4bGVuZ3RoOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ01heGxlbmd0aCBpcyByZXF1aXJlZC4nIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ3BhdHRlcm4nLCBtZXNzYWdlOiAnTWF4bGVuZ3RoIG11c3QgY29udGFpbiBvbmx5IG51bWJlcnMuJyB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgbWlubGVuZ3RoOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ01pbmxlbmd0aCBpcyByZXF1aXJlZC4nIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ3BhdHRlcm4nLCBtZXNzYWdlOiAnTWlubGVuZ3RoIG11c3QgY29udGFpbiBvbmx5IG51bWJlcnMuJyB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAga2V5OiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ09wdGlvbiBrZXkgaXMgcmVxdWlyZWQuJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdtaW5sZW5ndGgnLCBtZXNzYWdlOiAnU29ycnksIHlvdXIgb3B0aW9uIGtleSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNTAgY2hhcmFjdGVycyBsb25nLicgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAncGF0dGVybicsIG1lc3NhZ2U6ICdTb3JyeSwgb25seSBsZXR0ZXJzIChhLXopLCBudW1iZXJzICgwLTkpLCBhbmQgcGVyaW9kcyAoLSBhbmQgXykgYXJlIGFsbG93ZWQuJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICd1bmlxdWUnLCBtZXNzYWdlOiAnT3B0aW9uIGtleSBpcyBhbHJlYWR5IGV4aXN0LiBUcnkgYW5vdGhlci4nIH1cclxuICAgICAgICBdLFxyXG4gICAgICAgIHZhbHVlOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ09wdGlvbiB2YWx1ZSBpcyByZXF1aXJlZC4nIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ21pbmxlbmd0aCcsIG1lc3NhZ2U6ICdTb3JyeSwgeW91ciBvcHRpb24gdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDk5OSBjaGFyYWN0ZXJzIGxvbmcuJyB9XHJcbiAgICAgICAgXSxcclxuICAgICAgICBzZWFyY2hBZGRyZXNzOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ3VuaXF1ZScsIG1lc3NhZ2U6ICdTZWFyY2hlZCBhZGRyZXNzIG5vdCBmb3VuZC4nIH1cclxuICAgICAgICBdLFxyXG4gICAgICAgIGlkOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ1VuaXF1ZSBpZCBpcyByZXF1aXJlZC4nIH1cclxuICAgICAgICBdLFxyXG4gICAgICAgIG9wZXJhdGlvblZhbHVlOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ09wZXJhdGlvbiBpcyByZXF1aXJlZC4nIH1cclxuICAgICAgICBdLFxyXG4gICAgICAgIGNvbnRyb2w6IFtcclxuICAgICAgICAgICAgeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlOiAnT3BlcmF0b3IgaXMgcmVxdWlyZWQuJyB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgd2lkdGg6IFtcclxuICAgICAgICAgICAgeyB0eXBlOiAncmVxdWlyZWQnLCBtZXNzYWdlczogJ1dpZHRoIGlzIHJlcXVpcmVkLid9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdtYXgnLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCA2MDAnIH1cclxuICAgICAgICBdLFxyXG4gICAgICAgIGhlaWdodDogW1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdyZXF1aXJlZCcsIG1lc3NhZ2VzOiAnSGVpZ2h0IGlzIHJlcXVpcmVkLid9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdtYXgnLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCA2MDAnIH1cclxuICAgICAgICBdXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGNvbHVtbnMgPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ2NvbC1tZC0xJyxcclxuICAgICAgICAgICAgbGFiZWw6ICdDb2x1bW4gMSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdjb2wtbWQtMicsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnQ29sdW1uIDInXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnY29sLW1kLTMnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ0NvbHVtbiAzJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ2NvbC1tZC00JyxcclxuICAgICAgICAgICAgbGFiZWw6ICdDb2x1bW4gNCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdjb2wtbWQtNScsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnQ29sdW1uIDUnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnY29sLW1kLTYnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ0NvbHVtbiA2J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ2NvbC1tZC03JyxcclxuICAgICAgICAgICAgbGFiZWw6ICdDb2x1bW4gNydcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdjb2wtbWQtOCcsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnQ29sdW1uIDgnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnY29sLW1kLTknLFxyXG4gICAgICAgICAgICBsYWJlbDogJ0NvbHVtbiA5J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ2NvbC1tZC0xMCcsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnQ29sdW1uIDEwJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ2NvbC1tZC0xMScsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnQ29sdW1uIDExJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ2NvbC1tZC0xMicsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnQ29sdW1uIDEyJ1xyXG4gICAgICAgIH1cclxuICAgIF07XHJcblxyXG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnKycsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnQWRkaXRpb24nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnLScsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnU3VidHJhY3Rpb24nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnKicsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnTXVsdGlwbGljYXRpb24nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnLycsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnRGl2aXNpb24nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAneMyEJyxcclxuICAgICAgICAgICAgbGFiZWw6ICdBdmVyYWdlJ1xyXG4gICAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IGRhdGFUeXBlcyA9IHtcclxuICAgICAgICBkYXRhVHlwZVN0cmluZzogJ3N0cmluZycsXHJcbiAgICAgICAgZGF0YVR5cGVOdW1iZXI6ICdudW1iZXInLFxyXG4gICAgICAgIGRhdGFUeXBlQm9vbGVhbjogJ2Jvb2xlYW4nXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGNzc0NsYXNzID0ge1xyXG4gICAgICAgIGNzc0NsYXNzQ2FyZEhpZGRlbjogJ3F1b3RlLWNhcmQtaGlkZGVuJyxcclxuICAgICAgICBjc3NDbGFzc0NhcmRWaXNpYmxlOiAncXVvdGUtY2FyZC12aXNpYmxlJ1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBtYXRjaFBhdHRlcm4gPSB7XHJcbiAgICAgICAgZW1haWxQYXR0ZXJuOiAnXlthLXpBLVowLTlfListXStAW2EtekEtWjAtOS1dKy5bYS16QS1aMC05LS5dKyQnLFxyXG4gICAgICAgIHBhc3N3b3JkUGF0dGVybjogJygoPz0uKlxcXFxkKSg/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKltAIyQlXSkuezgsMjB9KScsXHJcbiAgICAgICAgcGhvbmVQYXR0ZXJuOiAnWzYtOV1cXFxcZHs5fScsXHJcbiAgICAgICAgbnVtYmVyUGF0dGVybjogJ15bMC05XSokJ1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBub3RpZmljYXRpb25NZXNzYWdlID0ge1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbkRpc3BsYXlEdXJhdGlvbjogMTAwMDAsXHJcbiAgICAgICAgZXJyb3JOb3RpZmljYXRpb246ICdUaGVyZSBpcyBzb21lIHByb2JsZW0uIFBsZWFzZSBjb250YWN0IHRvIGFkbWluaXN0cmF0b3InLFxyXG4gICAgICAgIGVtYWlsU3VjY2Vzc05vdGlmaWNhdGlvbjogJ1RoYW5rIHlvdSEgWW91ciBtZXNzYWdlIGhhcyBiZWVuIHNlbnQgc3VjY2Vzc2Z1bGx5LidcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgbWVzc2FnZXMgPSB7XHJcbiAgICAgICAgd2FyaW5nTWVzc2FnZTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgdGhpcyBmaWVsZD8nLFxyXG4gICAgICAgIG9wdGlvbktleVZhbGlkYXRpb25NZXNzYWdlOiAnVGhhdCBvcHRpb24ga2V5IGlzIGFscmVhZHkgZXhpc3QuIFRyeSBhbm90aGVyLidcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgYXBwbGljYXRpb25Db25zdGFudHMgPSB7XHJcbiAgICAgICAgYXBwbGljYXRpb25UaXRsZTogJ0FTVyBGb3JtIEJ1aWxkJyxcclxuICAgICAgICB0aXRsZU1lc3NhZ2VzLFxyXG4gICAgICAgIGFjY291bnRWYWxpZGF0aW9uTWVzc2FnZXMsXHJcbiAgICAgICAgY3NzQ2xhc3MsXHJcbiAgICAgICAgZGF0YVR5cGVzLFxyXG4gICAgICAgIG1hdGNoUGF0dGVybixcclxuICAgICAgICBub3RpZmljYXRpb25NZXNzYWdlLFxyXG4gICAgICAgIG1lc3NhZ2VzLFxyXG4gICAgICAgIGNvbHVtbnMsXHJcbiAgICAgICAgb3BlcmF0aW9ucyxcclxuICAgICAgICBkZWZhdWx0SW1hZ2VcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFwcGxpY2F0aW9uQ29uc3RhbnRzO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ29uc3RhbnRzID0gZ2V0Q29uc3RhdG50cygpO1xyXG4iXX0=