ng-number-to-text
Version:
Set of pipes for angular2+ projects to convert numbers to words as ordinal numbers
317 lines (316 loc) • 22.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Pipe } from '@angular/core';
var NumberToTextArPipe = /** @class */ (function () {
function NumberToTextArPipe() {
this.first = 'الحادى';
}
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.transform = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var number;
if (typeof 'value' === 'string') {
number = parseInt(value, 10);
}
else {
number = value;
}
return this.checkNumber(number);
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkNumber = /**
* @param {?} value
* @return {?}
*/
function (value) {
if (this.checkZero(value)) {
return 'الارضى';
}
else {
if (value > 0 && value <= 10)
return this.checkSingle(value);
else if (value > 10 && value <= 20)
return this.checkTenth(value);
else if (value > 20 && value <= 30)
return this.checkTwentieth(value);
else if (value > 30 && value <= 40)
return this.checkThirtieth(value);
else if (value > 40 && value <= 50)
return this.checkFortieth(value);
else if (value > 50 && value <= 60)
return this.checkFiftieth(value);
else if (value > 60 && value <= 70)
return this.checkSixtieth(value);
else if (value > 70 && value <= 80)
return this.checkSeventieth(value);
else if (value > 80 && value <= 90)
return this.checkEightieth(value);
else if (value > 90 && value <= 100)
return this.checkNinetieth(value);
}
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkZero = /**
* @param {?} value
* @return {?}
*/
function (value) {
return value === 0;
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkSingle = /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value < 10 && value > 0) {
if (value === 1)
return 'الاول';
else if (value === 2)
return 'الثانى';
else if (value === 3)
return 'الثالث';
else if (value === 4)
return 'الرابع';
else if (value === 5)
return 'الخامس';
else if (value === 6)
return 'السادس';
else if (value === 7)
return 'السابع';
else if (value === 8)
return 'الثامن';
else
return 'التاسع';
}
else {
return 'العاشر';
}
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkTenth = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var prefix = ' عشر';
if (value > 10 && value < 20) {
value -= 10;
if (value === 1)
return 'الحادى عشر';
else
return this.checkSingle(value) + prefix;
}
else {
return 'العشرون';
}
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkTwentieth = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var prefix = ' و العشرون';
if (value > 20 && value < 30) {
value -= 20;
if (value === 1)
return this.first + prefix;
else
return this.checkSingle(value) + prefix;
}
else {
return 'الثلاثون';
}
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkThirtieth = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var prefix = ' و الثلاثون';
if (value > 30 && value < 40) {
value -= 30;
if (value === 1)
return this.first + prefix;
else
return this.checkSingle(value) + prefix;
}
else {
return 'الاربعون';
}
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkFortieth = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var prefix = ' و الاربعون';
if (value > 40 && value < 50) {
value -= 40;
if (value === 1)
return this.first + prefix;
else
return this.checkSingle(value) + prefix;
}
else {
return 'الخمسون';
}
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkFiftieth = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var prefix = ' و الخمسون';
if (value > 50 && value < 60) {
value -= 50;
if (value === 1)
return this.first + prefix;
else
return this.checkSingle(value) + prefix;
}
else {
return 'الستون';
}
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkSixtieth = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var prefix = ' و الستون';
if (value > 60 && value < 70) {
value -= 60;
if (value === 1)
return this.first + prefix;
else
return this.checkSingle(value) + prefix;
}
else {
return 'السبعون';
}
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkSeventieth = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var prefix = ' و السبعون';
if (value > 70 && value < 80) {
value -= 70;
if (value === 1)
return this.first + prefix;
else
return this.checkSingle(value) + prefix;
}
else {
return 'الثمانون';
}
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkEightieth = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var prefix = ' و الثمانون';
if (value > 80 && value < 90) {
value -= 80;
if (value === 1)
return this.first + prefix;
else
return this.checkSingle(value) + prefix;
}
else {
return 'التسعون';
}
};
/**
* @param {?} value
* @return {?}
*/
NumberToTextArPipe.prototype.checkNinetieth = /**
* @param {?} value
* @return {?}
*/
function (value) {
/** @type {?} */
var prefix = ' و التسعون';
if (value > 90 && value < 100) {
value -= 90;
if (value === 1)
return this.first + prefix;
else
return this.checkSingle(value) + prefix;
}
else {
return 'المائة';
}
};
NumberToTextArPipe.decorators = [
{ type: Pipe, args: [{ name: 'numberToTextAr' },] }
];
return NumberToTextArPipe;
}());
export { NumberToTextArPipe };
if (false) {
/** @type {?} */
NumberToTextArPipe.prototype.first;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXRvLXRleHQtYXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLW51bWJlci10by10ZXh0LyIsInNvdXJjZXMiOlsibGliL3BpcGVzL251bWJlci10by10ZXh0LWFyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOzs7cUJBS3hDLFFBQVE7Ozs7OztJQUVoQixzQ0FBUzs7OztJQUFULFVBQVUsS0FBVTs7UUFDbEIsSUFBSSxNQUFNLENBQVM7UUFFbkIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDL0IsTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNMLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDakM7Ozs7O0lBRU8sd0NBQVc7Ozs7Y0FBQyxLQUFhO1FBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixPQUFPLFFBQVEsQ0FBQztTQUNqQjthQUFNO1lBQ0wsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzVCLElBQUksS0FBSyxHQUFHLEVBQUUsSUFBSSxLQUFLLElBQUksRUFBRTtnQkFDaEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMzQixJQUFJLEtBQUssR0FBRyxFQUFFLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2hDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDL0IsSUFBSSxLQUFLLEdBQUcsRUFBRSxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUNoQyxPQUFP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SSxNQUFNLEdBQUcsWUFBWSxDQUFDO1FBQzFCLElBQUksS0FBSyxHQUFHLEVBQUUsSUFBSSxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQzdCLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLEtBQUssS0FBSyxDQUFDO2dCQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7O2dCQUUzQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQzNDO2FBQU07WUFDTCxPQUFPLFFBQVEsQ0FBQztTQUNqQjs7O2dCQTNMSixJQUFJLFNBQUMsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7OzZCQUY5Qjs7U0FHYSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe25hbWU6ICdudW1iZXJUb1RleHRBcid9KVxyXG5leHBvcnQgY2xhc3MgTnVtYmVyVG9UZXh0QXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gIGZpcnN0ID0gJ9in2YTYrdin2K/ZiSc7XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIGxldCBudW1iZXI6IG51bWJlcjtcclxuXHJcbiAgICBpZiAodHlwZW9mICd2YWx1ZScgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIG51bWJlciA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBudW1iZXIgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5jaGVja051bWJlcihudW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja051bWJlcih2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmNoZWNrWmVybyh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuICfYp9mE2KfYsdi22YknO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHZhbHVlID4gMCAmJiB2YWx1ZSA8PSAxMClcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja1NpbmdsZSh2YWx1ZSk7XHJcbiAgICAgIGVsc2UgaWYgKHZhbHVlID4gMTAgJiYgdmFsdWUgPD0gMjApXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tUZW50aCh2YWx1ZSk7XHJcbiAgICAgIGVsc2UgaWYgKHZhbHVlID4gMjAgJiYgdmFsdWUgPD0gMzApXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tUd2VudGlldGgodmFsdWUpO1xyXG4gICAgICBlbHNlIGlmICh2YWx1ZSA+IDMwICYmIHZhbHVlIDw9IDQwKVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrVGhpcnRpZXRoKHZhbHVlKTtcclxuICAgICAgZWxzZSBpZiAodmFsdWUgPiA0MCAmJiB2YWx1ZSA8PSA1MClcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja0ZvcnRpZXRoKHZhbHVlKTtcclxuICAgICAgZWxzZSBpZiAodmFsdWUgPiA1MCAmJiB2YWx1ZSA8PSA2MClcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja0ZpZnRpZXRoKHZhbHVlKTtcclxuICAgICAgZWxzZSBpZiAodmFsdWUgPiA2MCAmJiB2YWx1ZSA8PSA3MClcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja1NpeHRpZXRoKHZhbHVlKTtcclxuICAgICAgZWxzZSBpZiAodmFsdWUgPiA3MCAmJiB2YWx1ZSA8PSA4MClcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja1NldmVudGlldGgodmFsdWUpO1xyXG4gICAgICBlbHNlIGlmICh2YWx1ZSA+IDgwICYmIHZhbHVlIDw9IDkwKVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrRWlnaHRpZXRoKHZhbHVlKTtcclxuICAgICAgZWxzZSBpZiAodmFsdWUgPiA5MCAmJiB2YWx1ZSA8PSAxMDApXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tOaW5ldGlldGgodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1plcm8odmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlID09PSAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1NpbmdsZSh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh2YWx1ZSA8IDEwICYmIHZhbHVlID4gMCkge1xyXG4gICAgICBpZiAodmFsdWUgPT09IDEpXHJcbiAgICAgICAgcmV0dXJuICfYp9mE2KfZiNmEJztcclxuICAgICAgZWxzZSBpZiAodmFsdWUgPT09IDIpXHJcbiAgICAgICAgcmV0dXJuICfYp9mE2KvYp9mG2YknO1xyXG4gICAgICBlbHNlIGlmICh2YWx1ZSA9PT0gMylcclxuICAgICAgICByZXR1cm4gJ9in2YTYq9in2YTYqyc7XHJcbiAgICAgIGVsc2UgaWYgKHZhbHVlID09PSA0KVxyXG4gICAgICAgIHJldHVybiAn2KfZhNix2KfYqNi5JztcclxuICAgICAgZWxzZSBpZiAodmFsdWUgPT09IDUpXHJcbiAgICAgICAgcmV0dXJuICfYp9mE2K7Yp9mF2LMnO1xyXG4gICAgICBlbHNlIGlmICh2YWx1ZSA9PT0gNilcclxuICAgICAgICByZXR1cm4gJ9in2YTYs9in2K/Ysyc7XHJcbiAgICAgIGVsc2UgaWYgKHZhbHVlID09PSA3KVxyXG4gICAgICAgIHJldHVybiAn2KfZhNiz2KfYqNi5JztcclxuICAgICAgZWxzZSBpZiAodmFsdWUgPT09IDgpXHJcbiAgICAgICAgcmV0dXJuICfYp9mE2KvYp9mF2YYnO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuICfYp9mE2KrYp9iz2LknO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICfYp9mE2LnYp9i02LEnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1RlbnRoKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHByZWZpeCA9ICcg2LnYtNixJztcclxuICAgIGlmICh2YWx1ZSA+IDEwICYmIHZhbHVlIDwgMjApIHtcclxuICAgICAgdmFsdWUgLT0gMTA7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gMSlcclxuICAgICAgICByZXR1cm4gJ9in2YTYrdin2K/ZiSDYudi02LEnO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tTaW5nbGUodmFsdWUpICsgcHJlZml4O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICfYp9mE2LnYtNix2YjZhic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrVHdlbnRpZXRoKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHByZWZpeCA9ICcg2Ygg2KfZhNi52LTYsdmI2YYnO1xyXG4gICAgaWYgKHZhbHVlID4gMjAgJiYgdmFsdWUgPCAzMCkge1xyXG4gICAgICB2YWx1ZSAtPSAyMDtcclxuICAgICAgaWYgKHZhbHVlID09PSAxKVxyXG4gICAgICAgIHJldHVybiB0aGlzLmZpcnN0ICsgcHJlZml4O1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tTaW5nbGUodmFsdWUpICsgcHJlZml4O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICfYp9mE2KvZhNin2KvZiNmGJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tUaGlydGlldGgodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgcHJlZml4ID0gJyDZiCDYp9mE2KvZhNin2KvZiNmGJztcclxuICAgIGlmICh2YWx1ZSA+IDMwICYmIHZhbHVlIDwgNDApIHtcclxuICAgICAgdmFsdWUgLT0gMzA7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gMSlcclxuICAgICAgICByZXR1cm4gdGhpcy5maXJzdCArIHByZWZpeDtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrU2luZ2xlKHZhbHVlKSArIHByZWZpeDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAn2KfZhNin2LHYqNi52YjZhic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrRm9ydGlldGgodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgcHJlZml4ID0gJyDZiCDYp9mE2KfYsdio2LnZiNmGJztcclxuICAgIGlmICh2YWx1ZSA+IDQwICYmIHZhbHVlIDwgNTApIHtcclxuICAgICAgdmFsdWUgLT0gNDA7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gMSlcclxuICAgICAgICByZXR1cm4gdGhpcy5maXJzdCArIHByZWZpeDtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrU2luZ2xlKHZhbHVlKSArIHByZWZpeDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAn2KfZhNiu2YXYs9mI2YYnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0ZpZnRpZXRoKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHByZWZpeCA9ICcg2Ygg2KfZhNiu2YXYs9mI2YYnO1xyXG4gICAgaWYgKHZhbHVlID4gNTAgJiYgdmFsdWUgPCA2MCkge1xyXG4gICAgICB2YWx1ZSAtPSA1MDtcclxuICAgICAgaWYgKHZhbHVlID09PSAxKVxyXG4gICAgICAgIHJldHVybiB0aGlzLmZpcnN0ICsgcHJlZml4O1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tTaW5nbGUodmFsdWUpICsgcHJlZml4O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICfYp9mE2LPYqtmI2YYnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1NpeHRpZXRoKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHByZWZpeCA9ICcg2Ygg2KfZhNiz2KrZiNmGJztcclxuICAgIGlmICh2YWx1ZSA+IDYwICYmIHZhbHVlIDwgNzApIHtcclxuICAgICAgdmFsdWUgLT0gNjA7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gMSlcclxuICAgICAgICByZXR1cm4gdGhpcy5maXJzdCArIHByZWZpeDtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrU2luZ2xlKHZhbHVlKSArIHByZWZpeDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAn2KfZhNiz2KjYudmI2YYnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1NldmVudGlldGgodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgcHJlZml4ID0gJyDZiCDYp9mE2LPYqNi52YjZhic7XHJcbiAgICBpZiAodmFsdWUgPiA3MCAmJiB2YWx1ZSA8IDgwKSB7XHJcbiAgICAgIHZhbHVlIC09IDcwO1xyXG4gICAgICBpZiAodmFsdWUgPT09IDEpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlyc3QgKyBwcmVmaXg7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja1NpbmdsZSh2YWx1ZSkgKyBwcmVmaXg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJ9in2YTYq9mF2KfZhtmI2YYnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0VpZ2h0aWV0aCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBwcmVmaXggPSAnINmIINin2YTYq9mF2KfZhtmI2YYnO1xyXG4gICAgaWYgKHZhbHVlID4gODAgJiYgdmFsdWUgPCA5MCkge1xyXG4gICAgICB2YWx1ZSAtPSA4MDtcclxuICAgICAgaWYgKHZhbHVlID09PSAxKVxyXG4gICAgICAgIHJldHVybiB0aGlzLmZpcnN0ICsgcHJlZml4O1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tTaW5nbGUodmFsdWUpICsgcHJlZml4O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICfYp9mE2KrYs9i52YjZhic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrTmluZXRpZXRoKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHByZWZpeCA9ICcg2Ygg2KfZhNiq2LPYudmI2YYnO1xyXG4gICAgaWYgKHZhbHVlID4gOTAgJiYgdmFsdWUgPCAxMDApIHtcclxuICAgICAgdmFsdWUgLT0gOTA7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gMSlcclxuICAgICAgICByZXR1cm4gdGhpcy5maXJzdCArIHByZWZpeDtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrU2luZ2xlKHZhbHVlKSArIHByZWZpeDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAn2KfZhNmF2KfYptipJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19