@tripsnek/tmf
Version:
TypeScript Modeling Framework - A TypeScript port of the Eclipse Modeling Framework (EMF)
141 lines • 21.2 kB
JavaScript
import { EPackage } from './api/epackage.js';
/**
* This is a MINIMAL version of EcorePackage, with only what is necessary for the metamodel
* to operate (definition of datatypes).
*/
export class EcorePackage extends EPackage {
// Static constants used in ecorepackage_full.ts (only those that are referenced)
static E_MODEL_ELEMENT_FEATURE_COUNT = 1;
static E_NAMED_ELEMENT_FEATURE_COUNT = EcorePackage.E_MODEL_ELEMENT_FEATURE_COUNT + 1;
static E_TYPED_ELEMENT_FEATURE_COUNT = EcorePackage.E_NAMED_ELEMENT_FEATURE_COUNT + 9;
static E_STRUCTURAL_FEATURE_FEATURE_COUNT = EcorePackage.E_TYPED_ELEMENT_FEATURE_COUNT + 8;
static E_CLASSIFIER_FEATURE_COUNT = EcorePackage.E_NAMED_ELEMENT_FEATURE_COUNT + 6;
static E_DATA_TYPE_FEATURE_COUNT = EcorePackage.E_CLASSIFIER_FEATURE_COUNT + 1;
static isInited = false;
static eINSTANCE = EcorePackage.init();
// Essential data types that are actually used in tutils.ts
eStringEDataType;
eBooleanEDataType;
eBooleanObjectEDataType;
eDoubleEDataType;
eDoubleObjectEDataType;
eFloatEDataType;
eFloatObjectEDataType;
eShortEDataType;
eShortObjectEDataType;
eIntEDataType;
eIntegerObjectEDataType;
eLongEDataType;
eLongObjectEDataType;
eDateEDataType;
constructor() {
super('ecore', 'http://www.eclipse.org/emf/2002/Ecore');
}
// Literals class with only used types
static Literals = class {
static E_STRING = EcorePackage.eINSTANCE.getEString();
static E_BOOLEAN = EcorePackage.eINSTANCE.getEBoolean();
static E_BOOLEAN_OBJECT = EcorePackage.eINSTANCE.getEBooleanObject();
static E_DOUBLE = EcorePackage.eINSTANCE.getEDouble();
static E_DOUBLE_OBJECT = EcorePackage.eINSTANCE.getEDoubleObject();
static E_FLOAT = EcorePackage.eINSTANCE.getEFloat();
static E_FLOAT_OBJECT = EcorePackage.eINSTANCE.getEFloatObject();
static E_SHORT = EcorePackage.eINSTANCE.getEShort();
static E_SHORT_OBJECT = EcorePackage.eINSTANCE.getEShortObject();
static E_INT = EcorePackage.eINSTANCE.getEInt();
static E_INTEGER_OBJECT = EcorePackage.eINSTANCE.getEIntegerObject();
static E_LONG = EcorePackage.eINSTANCE.getELong();
static E_LONG_OBJECT = EcorePackage.eINSTANCE.getELongObject();
static E_DATE = EcorePackage.eINSTANCE.getEDate();
};
static init() {
if (EcorePackage.isInited)
return this.eINSTANCE;
const theEcorePackage = new EcorePackage();
this.eINSTANCE = theEcorePackage;
EcorePackage.isInited = true;
theEcorePackage.createPackageContents();
return theEcorePackage;
}
getEFactoryInstance() {
return this._eFactoryInstance;
}
// Essential getters used by Literals
getEString() {
return this.eStringEDataType;
}
getEBoolean() {
return this.eBooleanEDataType;
}
getEBooleanObject() {
return this.eBooleanObjectEDataType;
}
getEDouble() {
return this.eDoubleEDataType;
}
getEDoubleObject() {
return this.eDoubleObjectEDataType;
}
getEFloat() {
return this.eFloatEDataType;
}
getEFloatObject() {
return this.eFloatObjectEDataType;
}
getEShort() {
return this.eShortEDataType;
}
getEShortObject() {
return this.eShortObjectEDataType;
}
getEInt() {
return this.eIntEDataType;
}
getEIntegerObject() {
return this.eIntegerObjectEDataType;
}
getELong() {
return this.eLongEDataType;
}
getELongObject() {
return this.eLongObjectEDataType;
}
getEDate() {
return this.eDateEDataType;
}
// Minimal package contents creation
createPackageContents() {
// Create only the essential data types with IDs
this.eStringEDataType = this.createEDataType(0);
this.eBooleanEDataType = this.createEDataType(1);
this.eBooleanObjectEDataType = this.createEDataType(2);
this.eDoubleEDataType = this.createEDataType(3);
this.eDoubleObjectEDataType = this.createEDataType(4);
this.eFloatEDataType = this.createEDataType(5);
this.eFloatObjectEDataType = this.createEDataType(6);
this.eShortEDataType = this.createEDataType(7);
this.eShortObjectEDataType = this.createEDataType(8);
this.eIntEDataType = this.createEDataType(9);
this.eIntegerObjectEDataType = this.createEDataType(10);
this.eLongEDataType = this.createEDataType(11);
this.eLongObjectEDataType = this.createEDataType(12);
this.eDateEDataType = this.createEDataType(13);
// Initialize the data types with names
this.initEDataType(this.eStringEDataType, 'EString');
this.initEDataType(this.eBooleanEDataType, 'EBoolean');
this.initEDataType(this.eBooleanObjectEDataType, 'EBooleanObject');
this.initEDataType(this.eDoubleEDataType, 'EDouble');
this.initEDataType(this.eDoubleObjectEDataType, 'EDoubleObject');
this.initEDataType(this.eFloatEDataType, 'EFloat');
this.initEDataType(this.eFloatObjectEDataType, 'EFloatObject');
this.initEDataType(this.eShortEDataType, 'EShort');
this.initEDataType(this.eShortObjectEDataType, 'EShortObject');
this.initEDataType(this.eIntEDataType, 'EInt');
this.initEDataType(this.eIntegerObjectEDataType, 'EIntegerObject');
this.initEDataType(this.eLongEDataType, 'ELong');
this.initEDataType(this.eLongObjectEDataType, 'ELongObject');
this.initEDataType(this.eDateEDataType, 'EDate');
// Factory instance will be set later if needed
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvcmVwYWNrYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tZXRhbW9kZWwvZWNvcmVwYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUk3Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sWUFBYSxTQUFRLFFBQVE7SUFDeEMsaUZBQWlGO0lBQzFFLE1BQU0sQ0FBQyw2QkFBNkIsR0FBRyxDQUFDLENBQUM7SUFDekMsTUFBTSxDQUFDLDZCQUE2QixHQUFHLFlBQVksQ0FBQyw2QkFBNkIsR0FBRyxDQUFDLENBQUM7SUFDdEYsTUFBTSxDQUFDLDZCQUE2QixHQUFHLFlBQVksQ0FBQyw2QkFBNkIsR0FBRyxDQUFDLENBQUM7SUFDdEYsTUFBTSxDQUFDLGtDQUFrQyxHQUFHLFlBQVksQ0FBQyw2QkFBNkIsR0FBRyxDQUFDLENBQUM7SUFDM0YsTUFBTSxDQUFDLDBCQUEwQixHQUFHLFlBQVksQ0FBQyw2QkFBNkIsR0FBRyxDQUFDLENBQUM7SUFDbkYsTUFBTSxDQUFDLHlCQUF5QixHQUFHLFlBQVksQ0FBQywwQkFBMEIsR0FBRyxDQUFDLENBQUM7SUFFOUUsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDekIsTUFBTSxDQUFDLFNBQVMsR0FBaUIsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTVELDJEQUEyRDtJQUNuRCxnQkFBZ0IsQ0FBYTtJQUM3QixpQkFBaUIsQ0FBYTtJQUM5Qix1QkFBdUIsQ0FBYTtJQUNwQyxnQkFBZ0IsQ0FBYTtJQUM3QixzQkFBc0IsQ0FBYTtJQUNuQyxlQUFlLENBQWE7SUFDNUIscUJBQXFCLENBQWE7SUFDbEMsZUFBZSxDQUFhO0lBQzVCLHFCQUFxQixDQUFhO0lBQ2xDLGFBQWEsQ0FBYTtJQUMxQix1QkFBdUIsQ0FBYTtJQUNwQyxjQUFjLENBQWE7SUFDM0Isb0JBQW9CLENBQWE7SUFD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QztRQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFakQsK0NBQStDO0lBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFUGFja2FnZSB9IGZyb20gJy4vYXBpL2VwYWNrYWdlLmpzJztcclxuaW1wb3J0IHsgRURhdGFUeXBlIH0gZnJvbSAnLi9hcGkvZWRhdGEtdHlwZS5qcyc7XHJcbmltcG9ydCB7IEVGYWN0b3J5IH0gZnJvbSAnLi9hcGkvZWZhY3RvcnkuanMnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgYSBNSU5JTUFMIHZlcnNpb24gb2YgRWNvcmVQYWNrYWdlLCB3aXRoIG9ubHkgd2hhdCBpcyBuZWNlc3NhcnkgZm9yIHRoZSBtZXRhbW9kZWxcclxuICogdG8gb3BlcmF0ZSAoZGVmaW5pdGlvbiBvZiBkYXRhdHlwZXMpLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVjb3JlUGFja2FnZSBleHRlbmRzIEVQYWNrYWdlIHtcclxuICAvLyBTdGF0aWMgY29uc3RhbnRzIHVzZWQgaW4gZWNvcmVwYWNrYWdlX2Z1bGwudHMgKG9ubHkgdGhvc2UgdGhhdCBhcmUgcmVmZXJlbmNlZClcclxuICBwdWJsaWMgc3RhdGljIEVfTU9ERUxfRUxFTUVOVF9GRUFUVVJFX0NPVU5UID0gMTtcclxuICBwdWJsaWMgc3RhdGljIEVfTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UID0gRWNvcmVQYWNrYWdlLkVfTU9ERUxfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgMTtcclxuICBwdWJsaWMgc3RhdGljIEVfVFlQRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UID0gRWNvcmVQYWNrYWdlLkVfTkFNRURfRUxFTUVOVF9GRUFUVVJFX0NPVU5UICsgOTtcclxuICBwdWJsaWMgc3RhdGljIEVfU1RSVUNUVVJBTF9GRUFUVVJFX0ZFQVRVUkVfQ09VTlQgPSBFY29yZVBhY2thZ2UuRV9UWVBFRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA4O1xyXG4gIHB1YmxpYyBzdGF0aWMgRV9DTEFTU0lGSUVSX0ZFQVRVUkVfQ09VTlQgPSBFY29yZVBhY2thZ2UuRV9OQU1FRF9FTEVNRU5UX0ZFQVRVUkVfQ09VTlQgKyA2O1xyXG4gIHB1YmxpYyBzdGF0aWMgRV9EQVRBX1RZUEVfRkVBVFVSRV9DT1VOVCA9IEVjb3JlUGFja2FnZS5FX0NMQVNTSUZJRVJfRkVBVFVSRV9DT1VOVCArIDE7XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGlzSW5pdGVkID0gZmFsc2U7XHJcbiAgcHVibGljIHN0YXRpYyBlSU5TVEFOQ0U6IEVjb3JlUGFja2FnZSA9IEVjb3JlUGFja2FnZS5pbml0KCk7XHJcblxyXG4gIC8vIEVzc2VudGlhbCBkYXRhIHR5cGVzIHRoYXQgYXJlIGFjdHVhbGx5IHVzZWQgaW4gdHV0aWxzLnRzXHJcbiAgcHJpdmF0ZSBlU3RyaW5nRURhdGFUeXBlITogRURhdGFUeXBlO1xyXG4gIHByaXZhdGUgZUJvb2xlYW5FRGF0YVR5cGUhOiBFRGF0YVR5cGU7XHJcbiAgcHJpdmF0ZSBlQm9vbGVhbk9iamVjdEVEYXRhVHlwZSE6IEVEYXRhVHlwZTtcclxuICBwcml2YXRlIGVEb3VibGVFRGF0YVR5cGUhOiBFRGF0YVR5cGU7XHJcbiAgcHJpdmF0ZSBlRG91YmxlT2JqZWN0RURhdGFUeXBlITogRURhdGFUeXBlO1xyXG4gIHByaXZhdGUgZUZsb2F0RURhdGFUeXBlITogRURhdGFUeXBlO1xyXG4gIHByaXZhdGUgZUZsb2F0T2JqZWN0RURhdGFUeXBlITogRURhdGFUeXBlO1xyXG4gIHByaXZhdGUgZVNob3J0RURhdGFUeXBlITogRURhdGFUeXBlO1xyXG4gIHByaXZhdGUgZVNob3J0T2JqZWN0RURhdGFUeXBlITogRURhdGFUeXBlO1xyXG4gIHByaXZhdGUgZUludEVEYXRhVHlwZSE6IEVEYXRhVHlwZTtcclxuICBwcml2YXRlIGVJbnRlZ2VyT2JqZWN0RURhdGFUeXBlITogRURhdGFUeXBlO1xyXG4gIHByaXZhdGUgZUxvbmdFRGF0YVR5cGUhOiBFRGF0YVR5cGU7XHJcbiAgcHJpdmF0ZSBlTG9uZ09iamVjdEVEYXRhVHlwZSE6IEVEYXRhVHlwZTtcclxuICBwcml2YXRlIGVEYXRlRURhdGFUeXBlITogRURhdGFUeXBlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoJ2Vjb3JlJywgJ2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUnKTtcclxuICB9XHJcblxyXG5cclxuICAvLyBMaXRlcmFscyBjbGFzcyB3aXRoIG9ubHkgdXNlZCB0eXBlc1xyXG4gIHB1YmxpYyBzdGF0aWMgTGl0ZXJhbHMgPSBjbGFzcyB7XHJcbiAgICBzdGF0aWMgRV9TVFJJTkc6IEVEYXRhVHlwZSA9IEVjb3JlUGFja2FnZS5lSU5TVEFOQ0UuZ2V0RVN0cmluZygpO1xyXG4gICAgc3RhdGljIEVfQk9PTEVBTjogRURhdGFUeXBlID0gRWNvcmVQYWNrYWdlLmVJTlNUQU5DRS5nZXRFQm9vbGVhbigpO1xyXG4gICAgc3RhdGljIEVfQk9PTEVBTl9PQkpFQ1Q6IEVEYXRhVHlwZSA9IEVjb3JlUGFja2FnZS5lSU5TVEFOQ0UuZ2V0RUJvb2xlYW5PYmplY3QoKTtcclxuICAgIHN0YXRpYyBFX0RPVUJMRTogRURhdGFUeXBlID0gRWNvcmVQYWNrYWdlLmVJTlNUQU5DRS5nZXRFRG91YmxlKCk7XHJcbiAgICBzdGF0aWMgRV9ET1VCTEVfT0JKRUNUOiBFRGF0YVR5cGUgPSBFY29yZVBhY2thZ2UuZUlOU1RBTkNFLmdldEVEb3VibGVPYmplY3QoKTtcclxuICAgIHN0YXRpYyBFX0ZMT0FUOiBFRGF0YVR5cGUgPSBFY29yZVBhY2thZ2UuZUlOU1RBTkNFLmdldEVGbG9hdCgpO1xyXG4gICAgc3RhdGljIEVfRkxPQVRfT0JKRUNUOiBFRGF0YVR5cGUgPSBFY29yZVBhY2thZ2UuZUlOU1RBTkNFLmdldEVGbG9hdE9iamVjdCgpO1xyXG4gICAgc3RhdGljIEVfU0hPUlQ6IEVEYXRhVHlwZSA9IEVjb3JlUGFja2FnZS5lSU5TVEFOQ0UuZ2V0RVNob3J0KCk7XHJcbiAgICBzdGF0aWMgRV9TSE9SVF9PQkpFQ1Q6IEVEYXRhVHlwZSA9IEVjb3JlUGFja2FnZS5lSU5TVEFOQ0UuZ2V0RVNob3J0T2JqZWN0KCk7XHJcbiAgICBzdGF0aWMgRV9JTlQ6IEVEYXRhVHlwZSA9IEVjb3JlUGFja2FnZS5lSU5TVEFOQ0UuZ2V0RUludCgpO1xyXG4gICAgc3RhdGljIEVfSU5URUdFUl9PQkpFQ1Q6IEVEYXRhVHlwZSA9IEVjb3JlUGFja2FnZS5lSU5TVEFOQ0UuZ2V0RUludGVnZXJPYmplY3QoKTtcclxuICAgIHN0YXRpYyBFX0xPTkc6IEVEYXRhVHlwZSA9IEVjb3JlUGFja2FnZS5lSU5TVEFOQ0UuZ2V0RUxvbmcoKTtcclxuICAgIHN0YXRpYyBFX0xPTkdfT0JKRUNUOiBFRGF0YVR5cGUgPSBFY29yZVBhY2thZ2UuZUlOU1RBTkNFLmdldEVMb25nT2JqZWN0KCk7XHJcbiAgICBzdGF0aWMgRV9EQVRFOiBFRGF0YVR5cGUgPSBFY29yZVBhY2thZ2UuZUlOU1RBTkNFLmdldEVEYXRlKCk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdCgpOiBFY29yZVBhY2thZ2Uge1xyXG4gICAgaWYgKEVjb3JlUGFja2FnZS5pc0luaXRlZCkgcmV0dXJuIHRoaXMuZUlOU1RBTkNFO1xyXG4gICAgY29uc3QgdGhlRWNvcmVQYWNrYWdlID0gbmV3IEVjb3JlUGFja2FnZSgpO1xyXG4gICAgdGhpcy5lSU5TVEFOQ0UgPSB0aGVFY29yZVBhY2thZ2U7XHJcbiAgICBFY29yZVBhY2thZ2UuaXNJbml0ZWQgPSB0cnVlO1xyXG4gICAgdGhlRWNvcmVQYWNrYWdlLmNyZWF0ZVBhY2thZ2VDb250ZW50cygpO1xyXG4gICAgcmV0dXJuIHRoZUVjb3JlUGFja2FnZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvdmVycmlkZSBnZXRFRmFjdG9yeUluc3RhbmNlKCk6IEVGYWN0b3J5IHtcclxuICAgIHJldHVybiB0aGlzLl9lRmFjdG9yeUluc3RhbmNlITtcclxuICB9XHJcblxyXG4gIC8vIEVzc2VudGlhbCBnZXR0ZXJzIHVzZWQgYnkgTGl0ZXJhbHNcclxuICBwdWJsaWMgZ2V0RVN0cmluZygpOiBFRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuZVN0cmluZ0VEYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFQm9vbGVhbigpOiBFRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuZUJvb2xlYW5FRGF0YVR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RUJvb2xlYW5PYmplY3QoKTogRURhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLmVCb29sZWFuT2JqZWN0RURhdGFUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVEb3VibGUoKTogRURhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLmVEb3VibGVFRGF0YVR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RURvdWJsZU9iamVjdCgpOiBFRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuZURvdWJsZU9iamVjdEVEYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFRmxvYXQoKTogRURhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLmVGbG9hdEVEYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFRmxvYXRPYmplY3QoKTogRURhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLmVGbG9hdE9iamVjdEVEYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFU2hvcnQoKTogRURhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLmVTaG9ydEVEYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFU2hvcnRPYmplY3QoKTogRURhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLmVTaG9ydE9iamVjdEVEYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFSW50KCk6IEVEYXRhVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5lSW50RURhdGFUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVJbnRlZ2VyT2JqZWN0KCk6IEVEYXRhVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5lSW50ZWdlck9iamVjdEVEYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFTG9uZygpOiBFRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuZUxvbmdFRGF0YVR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RUxvbmdPYmplY3QoKTogRURhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLmVMb25nT2JqZWN0RURhdGFUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVEYXRlKCk6IEVEYXRhVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5lRGF0ZUVEYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIC8vIE1pbmltYWwgcGFja2FnZSBjb250ZW50cyBjcmVhdGlvblxyXG4gIHB1YmxpYyBjcmVhdGVQYWNrYWdlQ29udGVudHMoKTogdm9pZCB7XHJcbiAgICAvLyBDcmVhdGUgb25seSB0aGUgZXNzZW50aWFsIGRhdGEgdHlwZXMgd2l0aCBJRHNcclxuICAgIHRoaXMuZVN0cmluZ0VEYXRhVHlwZSA9IHRoaXMuY3JlYXRlRURhdGFUeXBlKDApO1xyXG4gICAgdGhpcy5lQm9vbGVhbkVEYXRhVHlwZSA9IHRoaXMuY3JlYXRlRURhdGFUeXBlKDEpO1xyXG4gICAgdGhpcy5lQm9vbGVhbk9iamVjdEVEYXRhVHlwZSA9IHRoaXMuY3JlYXRlRURhdGFUeXBlKDIpO1xyXG4gICAgdGhpcy5lRG91YmxlRURhdGFUeXBlID0gdGhpcy5jcmVhdGVFRGF0YVR5cGUoMyk7XHJcbiAgICB0aGlzLmVEb3VibGVPYmplY3RFRGF0YVR5cGUgPSB0aGlzLmNyZWF0ZUVEYXRhVHlwZSg0KTtcclxuICAgIHRoaXMuZUZsb2F0RURhdGFUeXBlID0gdGhpcy5jcmVhdGVFRGF0YVR5cGUoNSk7XHJcbiAgICB0aGlzLmVGbG9hdE9iamVjdEVEYXRhVHlwZSA9IHRoaXMuY3JlYXRlRURhdGFUeXBlKDYpO1xyXG4gICAgdGhpcy5lU2hvcnRFRGF0YVR5cGUgPSB0aGlzLmNyZWF0ZUVEYXRhVHlwZSg3KTtcclxuICAgIHRoaXMuZVNob3J0T2JqZWN0RURhdGFUeXBlID0gdGhpcy5jcmVhdGVFRGF0YVR5cGUoOCk7XHJcbiAgICB0aGlzLmVJbnRFRGF0YVR5cGUgPSB0aGlzLmNyZWF0ZUVEYXRhVHlwZSg5KTtcclxuICAgIHRoaXMuZUludGVnZXJPYmplY3RFRGF0YVR5cGUgPSB0aGlzLmNyZWF0ZUVEYXRhVHlwZSgxMCk7XHJcbiAgICB0aGlzLmVMb25nRURhdGFUeXBlID0gdGhpcy5jcmVhdGVFRGF0YVR5cGUoMTEpO1xyXG4gICAgdGhpcy5lTG9uZ09iamVjdEVEYXRhVHlwZSA9IHRoaXMuY3JlYXRlRURhdGFUeXBlKDEyKTtcclxuICAgIHRoaXMuZURhdGVFRGF0YVR5cGUgPSB0aGlzLmNyZWF0ZUVEYXRhVHlwZSgxMyk7XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgZGF0YSB0eXBlcyB3aXRoIG5hbWVzXHJcbiAgICB0aGlzLmluaXRFRGF0YVR5cGUodGhpcy5lU3RyaW5nRURhdGFUeXBlLCAnRVN0cmluZycpO1xyXG4gICAgdGhpcy5pbml0RURhdGFUeXBlKHRoaXMuZUJvb2xlYW5FRGF0YVR5cGUsICdFQm9vbGVhbicpO1xyXG4gICAgdGhpcy5pbml0RURhdGFUeXBlKHRoaXMuZUJvb2xlYW5PYmplY3RFRGF0YVR5cGUsICdFQm9vbGVhbk9iamVjdCcpO1xyXG4gICAgdGhpcy5pbml0RURhdGFUeXBlKHRoaXMuZURvdWJsZUVEYXRhVHlwZSwgJ0VEb3VibGUnKTtcclxuICAgIHRoaXMuaW5pdEVEYXRhVHlwZSh0aGlzLmVEb3VibGVPYmplY3RFRGF0YVR5cGUsICdFRG91YmxlT2JqZWN0Jyk7XHJcbiAgICB0aGlzLmluaXRFRGF0YVR5cGUodGhpcy5lRmxvYXRFRGF0YVR5cGUsICdFRmxvYXQnKTtcclxuICAgIHRoaXMuaW5pdEVEYXRhVHlwZSh0aGlzLmVGbG9hdE9iamVjdEVEYXRhVHlwZSwgJ0VGbG9hdE9iamVjdCcpO1xyXG4gICAgdGhpcy5pbml0RURhdGFUeXBlKHRoaXMuZVNob3J0RURhdGFUeXBlLCAnRVNob3J0Jyk7XHJcbiAgICB0aGlzLmluaXRFRGF0YVR5cGUodGhpcy5lU2hvcnRPYmplY3RFRGF0YVR5cGUsICdFU2hvcnRPYmplY3QnKTtcclxuICAgIHRoaXMuaW5pdEVEYXRhVHlwZSh0aGlzLmVJbnRFRGF0YVR5cGUsICdFSW50Jyk7XHJcbiAgICB0aGlzLmluaXRFRGF0YVR5cGUodGhpcy5lSW50ZWdlck9iamVjdEVEYXRhVHlwZSwgJ0VJbnRlZ2VyT2JqZWN0Jyk7XHJcbiAgICB0aGlzLmluaXRFRGF0YVR5cGUodGhpcy5lTG9uZ0VEYXRhVHlwZSwgJ0VMb25nJyk7XHJcbiAgICB0aGlzLmluaXRFRGF0YVR5cGUodGhpcy5lTG9uZ09iamVjdEVEYXRhVHlwZSwgJ0VMb25nT2JqZWN0Jyk7XHJcbiAgICB0aGlzLmluaXRFRGF0YVR5cGUodGhpcy5lRGF0ZUVEYXRhVHlwZSwgJ0VEYXRlJyk7XHJcblxyXG4gICAgLy8gRmFjdG9yeSBpbnN0YW5jZSB3aWxsIGJlIHNldCBsYXRlciBpZiBuZWVkZWRcclxuICB9XHJcbn0iXX0=