@vendasta/billing 12.23.0 → 12.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_internal/billing.api.service.mjs +6 -2
- package/esm2022/lib/_internal/interfaces/billable-item.interface.mjs +1 -1
- package/esm2022/lib/_internal/interfaces/index.mjs +1 -1
- package/esm2022/lib/_internal/interfaces/subscription.interface.mjs +1 -1
- package/esm2022/lib/_internal/objects/billable-item.mjs +4 -1
- package/esm2022/lib/_internal/objects/index.mjs +2 -2
- package/esm2022/lib/_internal/objects/subscription.mjs +30 -1
- package/fesm2022/vendasta-billing.mjs +37 -1
- package/fesm2022/vendasta-billing.mjs.map +1 -1
- package/lib/_internal/billing.api.service.d.ts +3 -2
- package/lib/_internal/interfaces/billable-item.interface.d.ts +1 -0
- package/lib/_internal/interfaces/index.d.ts +1 -1
- package/lib/_internal/interfaces/subscription.interface.d.ts +6 -0
- package/lib/_internal/objects/billable-item.d.ts +1 -0
- package/lib/_internal/objects/index.d.ts +1 -1
- package/lib/_internal/objects/subscription.d.ts +9 -0
- package/package.json +1 -1
|
@@ -219,6 +219,9 @@ export class BillableItem {
|
|
|
219
219
|
if (typeof this.source !== 'undefined') {
|
|
220
220
|
toReturn['source'] = this.source;
|
|
221
221
|
}
|
|
222
|
+
if (typeof this.autoBillable !== 'undefined') {
|
|
223
|
+
toReturn['autoBillable'] = this.autoBillable;
|
|
224
|
+
}
|
|
222
225
|
return toReturn;
|
|
223
226
|
}
|
|
224
227
|
}
|
|
@@ -832,4 +835,4 @@ export class UnexpireBillableItemRequest {
|
|
|
832
835
|
return toReturn;
|
|
833
836
|
}
|
|
834
837
|
}
|
|
835
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGFibGUtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JpbGxpbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvYmlsbGFibGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTlCLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUFZLEVBQUUsS0FBYTtJQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sT0FBTyxlQUFlO0lBUXhCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzlCLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFBQyxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUFDO1FBQ3hFLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQUM7UUFDbEUsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUFtQztRQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFB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QUFFRCxNQUFNLE9BQU8sMkJBQTJCO0lBTXBDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFDMUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBK0M7UUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUFDO1FBQ2xFLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUM7UUFDdkYsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUM5RSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQYWdlZFJlcXVlc3RPcHRpb25zLCBQYWdlZFJlc3BvbnNlTWV0YWRhdGEgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBQcm9kdWN0UHJpY2luZyB9IGZyb20gJy4vcHJvZHVjdC1wcmljaW5nJztcbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuQmlsbEl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBiaWxsaW5nU3RhcnQ6IERhdGU7XG4gICAgcHJvcmF0ZWRUbzogRGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJpbGxJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEJpbGxJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5iaWxsaW5nU3RhcnQpIHttLmJpbGxpbmdTdGFydCA9IG5ldyBEYXRlKHByb3RvLmJpbGxpbmdTdGFydCk7fVxuICAgICAgICBpZiAocHJvdG8ucHJvcmF0ZWRUbykge20ucHJvcmF0ZWRUbyA9IG5ldyBEYXRlKHByb3RvLnByb3JhdGVkVG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CaWxsSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gbnVsbCkge3RvUmV0dXJuWydiaWxsaW5nU3RhcnQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYmlsbGluZ1N0YXJ0ID8gKHRoaXMuYmlsbGluZ1N0YXJ0IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmJpbGxpbmdTdGFydDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9yYXRlZFRvICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnByb3JhdGVkVG8gIT09IG51bGwpIHt0b1JldHVyblsncHJvcmF0ZWRUbyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wcm9yYXRlZFRvID8gKHRoaXMucHJvcmF0ZWRUbyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wcm9yYXRlZFRvO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCBpbXBsZW1lbnRzIGkuQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgaXRlbXM6IEl0ZW1bXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pdGVtcykge20uaXRlbXMgPSBwcm90by5pdGVtcy5tYXAoSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXRlbXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaXRlbXMgIT09IG51bGwpIHt0b1JldHVyblsnaXRlbXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaXRlbXMgPyAodGhpcy5pdGVtcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pdGVtczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5CaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmlsbGFibGVJdGVtIGltcGxlbWVudHMgaS5CaWxsYWJsZUl0ZW1JbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIGV4cGlyeTogRGF0ZTtcbiAgICBiaWxsaW5nU3RhcnQ6IERhdGU7XG4gICAgY3JlYXRlZDogRGF0ZTtcbiAgICB1cGRhdGVkOiBEYXRlO1xuICAgIGZyZXF1ZW5jeTogZS5GcmVxdWVuY3k7XG4gICAgbmV4dFJlbmV3YWw6IERhdGU7XG4gICAgY3VzdG9tZXJOYW1lOiBzdHJpbmc7XG4gICAgcHJvZHVjdE5hbWU6IHN0cmluZztcbiAgICBjdXN0b21lckFkZHJlc3M6IEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcztcbiAgICBjdXN0b21Vbml0UHJpY2U6IG51bWJlcjtcbiAgICByZXRhaWxGcmVxdWVuY3k6IGUuRnJlcXVlbmN5O1xuICAgIG5leHRSZXRhaWxSZW5ld2FsOiBEYXRlO1xuICAgIHJldGFpbFVuaXRQcmljZTogbnVtYmVyO1xuICAgIHN0YXR1czogZS5TdWJzY3JpcHRpb25TdGF0dXM7XG4gICAgcHJpY2U6IFByb2R1Y3RQcmljaW5nO1xuICAgIHN1YnNjcmlwdGlvbklkOiBzdHJpbmc7XG4gICAgZGVsZXRlZDogRGF0ZTtcbiAgICBzb3VyY2U6IGUuU291cmNlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbGFibGVJdGVtIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbGFibGVJdGVtKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmV4cGlyeSkge20uZXhwaXJ5ID0gbmV3IERhdGUocHJvdG8uZXhwaXJ5KTt9XG4gICAgICAgIGlmIChwcm90by5iaWxsaW5nU3RhcnQpIHttLmJpbGxpbmdTdGFydCA9IG5ldyBEYXRlKHByb3RvLmJpbGxpbmdTdGFydCk7fVxuICAgICAgICBpZiAocHJvdG8uY3JlYXRlZCkge20uY3JlYXRlZCA9IG5ldyBEYXRlKHByb3RvLmNyZWF0ZWQpO31cbiAgICAgICAgaWYgKHByb3RvLnVwZGF0ZWQpIHttLnVwZGF0ZWQgPSBuZXcgRGF0ZShwcm90by51cGRhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by5mcmVxdWVuY3kpIHttLmZyZXF1ZW5jeSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRnJlcXVlbmN5PihlLkZyZXF1ZW5jeSwgcHJvdG8uZnJlcXVlbmN5KTt9XG4gICAgICAgIGlmIChwcm90by5uZXh0UmVuZXdhbCkge20ubmV4dFJlbmV3YWwgPSBuZXcgRGF0ZShwcm90by5uZXh0UmVuZXdhbCk7fVxuICAgICAgICBpZiAocHJvdG8uY3VzdG9tZXJBZGRyZXNzKSB7bS5jdXN0b21lckFkZHJlc3MgPSBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3MuZnJvbVByb3RvKHByb3RvLmN1c3RvbWVyQWRkcmVzcyk7fVxuICAgICAgICBpZiAocHJvdG8uY3VzdG9tVW5pdFByaWNlKSB7bS5jdXN0b21Vbml0UHJpY2UgPSBwYXJzZUludChwcm90by5jdXN0b21Vbml0UHJpY2UsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5yZXRhaWxGcmVxdWVuY3kpIHttLnJldGFpbEZyZXF1ZW5jeSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRnJlcXVlbmN5PihlLkZyZXF1ZW5jeSwgcHJvdG8ucmV0YWlsRnJlcXVlbmN5KTt9XG4gICAgICAgIGlmIChwcm90by5uZXh0UmV0YWlsUmVuZXdhbCkge20ubmV4dFJldGFpbFJlbmV3YWwgPSBuZXcgRGF0ZShwcm90by5uZXh0UmV0YWlsUmVuZXdhbCk7fVxuICAgICAgICBpZiAocHJvdG8ucmV0YWlsVW5pdFByaWNlKSB7bS5yZXRhaWxVbml0UHJpY2UgPSBwYXJzZUludChwcm90by5yZXRhaWxVbml0UHJpY2UsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zdGF0dXMpIHttLnN0YXR1cyA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuU3Vic2NyaXB0aW9uU3RhdHVzPihlLlN1YnNjcmlwdGlvblN0YXR1cywgcHJvdG8uc3RhdHVzKTt9XG4gICAgICAgIGlmIChwcm90by5wcmljZSkge20ucHJpY2UgPSBQcm9kdWN0UHJpY2luZy5mcm9tUHJvdG8ocHJvdG8ucHJpY2UpO31cbiAgICAgICAgaWYgKHByb3RvLmRlbGV0ZWQpIHttLmRlbGV0ZWQgPSBuZXcgRGF0ZShwcm90by5kZWxldGVkKTt9XG4gICAgICAgIGlmIChwcm90by5zb3VyY2UpIHttLnNvdXJjZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuU291cmNlPihlLlNvdXJjZSwgcHJvdG8uc291cmNlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQmlsbGFibGVJdGVtSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4cGlyeSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5leHBpcnkgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJ5J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV4cGlyeSA/ICh0aGlzLmV4cGlyeSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcnk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gbnVsbCkge3RvUmV0dXJuWydiaWxsaW5nU3RhcnQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYmlsbGluZ1N0YXJ0ID8gKHRoaXMuYmlsbGluZ1N0YXJ0IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmJpbGxpbmdTdGFydDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNyZWF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsnY3JlYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jcmVhdGVkID8gKHRoaXMuY3JlYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jcmVhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVwZGF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudXBkYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWyd1cGRhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnVwZGF0ZWQgPyAodGhpcy51cGRhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnVwZGF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZnJlcXVlbmN5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydmcmVxdWVuY3knXSA9IHRoaXMuZnJlcXVlbmN5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5leHRSZW5ld2FsICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm5leHRSZW5ld2FsICE9PSBudWxsKSB7dG9SZXR1cm5bJ25leHRSZW5ld2FsJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm5leHRSZW5ld2FsID8gKHRoaXMubmV4dFJlbmV3YWwgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubmV4dFJlbmV3YWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lck5hbWUnXSA9IHRoaXMuY3VzdG9tZXJOYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb2R1Y3ROYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwcm9kdWN0TmFtZSddID0gdGhpcy5wcm9kdWN0TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lckFkZHJlc3MgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY3VzdG9tZXJBZGRyZXNzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2N1c3RvbWVyQWRkcmVzcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jdXN0b21lckFkZHJlc3MgPyAodGhpcy5jdXN0b21lckFkZHJlc3MgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3VzdG9tZXJBZGRyZXNzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbVVuaXRQcmljZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tVW5pdFByaWNlJ10gPSB0aGlzLmN1c3RvbVVuaXRQcmljZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXRhaWxGcmVxdWVuY3kgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldGFpbEZyZXF1ZW5jeSddID0gdGhpcy5yZXRhaWxGcmVxdWVuY3k7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgIT09IG51bGwpIHt0b1JldHVyblsnbmV4dFJldGFpbFJlbmV3YWwnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgPyAodGhpcy5uZXh0UmV0YWlsUmVuZXdhbCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5uZXh0UmV0YWlsUmVuZXdhbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXRhaWxVbml0UHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldGFpbFVuaXRQcmljZSddID0gdGhpcy5yZXRhaWxVbml0UHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdHVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0dXMnXSA9IHRoaXMuc3RhdHVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByaWNlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnByaWNlICE9PSBudWxsKSB7dG9SZXR1cm5bJ3ByaWNlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnByaWNlID8gKHRoaXMucHJpY2UgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3Vic2NyaXB0aW9uSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N1YnNjcmlwdGlvbklkJ10gPSB0aGlzLnN1YnNjcmlwdGlvbklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlbGV0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZGVsZXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWydkZWxldGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmRlbGV0ZWQgPyAodGhpcy5kZWxldGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmRlbGV0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc291cmNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzb3VyY2UnXSA9IHRoaXMuc291cmNlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENhbkJpbGxJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuQ2FuQmlsbEl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDYW5CaWxsSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBDYW5CaWxsSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNhbkJpbGxJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlVXNhZ2VSZXF1ZXN0IGltcGxlbWVudHMgaS5DcmVhdGVVc2FnZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIHF1YW50aXR5OiBudW1iZXI7XG4gICAgdXNhZ2VEYXRlOiBEYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlVXNhZ2VSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ3JlYXRlVXNhZ2VSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnF1YW50aXR5KSB7bS5xdWFudGl0eSA9IHBhcnNlSW50KHByb3RvLnF1YW50aXR5LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udXNhZ2VEYXRlKSB7bS51c2FnZURhdGUgPSBuZXcgRGF0ZShwcm90by51c2FnZURhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DcmVhdGVVc2FnZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucXVhbnRpdHkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3F1YW50aXR5J10gPSB0aGlzLnF1YW50aXR5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzYWdlRGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy51c2FnZURhdGUgIT09IG51bGwpIHt0b1JldHVyblsndXNhZ2VEYXRlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnVzYWdlRGF0ZSA/ICh0aGlzLnVzYWdlRGF0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy51c2FnZURhdGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzIGltcGxlbWVudHMgaS5CaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3NJbnRlcmZhY2Uge1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICBjaXR5OiBzdHJpbmc7XG4gICAgc3RhdGU6IHN0cmluZztcbiAgICB6aXA6IHN0cmluZztcbiAgICBjb3VudHJ5OiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3Mge1xuICAgICAgICBsZXQgbSA9IG5ldyBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3MoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFkZHJlc3MgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FkZHJlc3MnXSA9IHRoaXMuYWRkcmVzczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jaXR5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjaXR5J10gPSB0aGlzLmNpdHk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXRlJ10gPSB0aGlzLnN0YXRlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnppcCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnemlwJ10gPSB0aGlzLnppcDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb3VudHJ5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb3VudHJ5J10gPSB0aGlzLmNvdW50cnk7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5FeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBleHBpcnk6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5leHBpcnkpIHttLmV4cGlyeSA9IG5ldyBEYXRlKHByb3RvLmV4cGlyeSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXhwaXJ5ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmV4cGlyeSAhPT0gbnVsbCkge3RvUmV0dXJuWydleHBpcnknXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXhwaXJ5ID8gKHRoaXMuZXhwaXJ5IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmV4cGlyeTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeHBvcnRTdWJzY3JpcHRpb25zUmVxdWVzdCBpbXBsZW1lbnRzIGkuRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbHRlcnM6IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFeHBvcnRTdWJzY3JpcHRpb25zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEV4cG9ydFN1YnNjcmlwdGlvbnNSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZpbHRlcnMpIHttLmZpbHRlcnMgPSBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzLmZyb21Qcm90byhwcm90by5maWx0ZXJzKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maWx0ZXJzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZpbHRlcnMgIT09IG51bGwpIHt0b1JldHVyblsnZmlsdGVycyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5maWx0ZXJzID8gKHRoaXMuZmlsdGVycyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5maWx0ZXJzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMgaW1wbGVtZW50cyBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2Uge1xuICAgIHNrdXM6IHN0cmluZ1tdO1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdXMnXSA9IHRoaXMuc2t1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnMgaW1wbGVtZW50cyBpLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2Uge1xuICAgIHNrdXM6IHN0cmluZ1tdO1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgc2VhcmNoVGVybTogc3RyaW5nO1xuICAgIHN0YXR1czogZS5TdWJzY3JpcHRpb25TdGF0dXM7XG4gICAgZXhwaXJlZERhdGVHdGU6IERhdGU7XG4gICAgZXhwaXJlZERhdGVMdGU6IERhdGU7XG4gICAgZnJlcXVlbmNpZXM6IGUuRnJlcXVlbmN5W107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5zdGF0dXMpIHttLnN0YXR1cyA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuU3Vic2NyaXB0aW9uU3RhdHVzPihlLlN1YnNjcmlwdGlvblN0YXR1cywgcHJvdG8uc3RhdHVzKTt9XG4gICAgICAgIGlmIChwcm90by5leHBpcmVkRGF0ZUd0ZSkge20uZXhwaXJlZERhdGVHdGUgPSBuZXcgRGF0ZShwcm90by5leHBpcmVkRGF0ZUd0ZSk7fVxuICAgICAgICBpZiAocHJvdG8uZXhwaXJlZERhdGVMdGUpIHttLmV4cGlyZWREYXRlTHRlID0gbmV3IERhdGUocHJvdG8uZXhwaXJlZERhdGVMdGUpO31cbiAgICAgICAgaWYgKHByb3RvLmZyZXF1ZW5jaWVzKSB7bS5mcmVxdWVuY2llcyA9IHByb3RvLmZyZXF1ZW5jaWVzLm1hcCgodjogc3RyaW5nKSA9PiBlbnVtU3RyaW5nVG9WYWx1ZTxlLkZyZXF1ZW5jeT4oZS5GcmVxdWVuY3ksIHYpKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdXMnXSA9IHRoaXMuc2t1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlYXJjaFRlcm0gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NlYXJjaFRlcm0nXSA9IHRoaXMuc2VhcmNoVGVybTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0dXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXR1cyddID0gdGhpcy5zdGF0dXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXhwaXJlZERhdGVHdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXhwaXJlZERhdGVHdGUgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJlZERhdGVHdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXhwaXJlZERhdGVHdGUgPyAodGhpcy5leHBpcmVkRGF0ZUd0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcmVkRGF0ZUd0ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5leHBpcmVkRGF0ZUx0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5leHBpcmVkRGF0ZUx0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWydleHBpcmVkRGF0ZUx0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5leHBpcmVkRGF0ZUx0ZSA/ICh0aGlzLmV4cGlyZWREYXRlTHRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmV4cGlyZWREYXRlTHRlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZyZXF1ZW5jaWVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydmcmVxdWVuY2llcyddID0gdGhpcy5mcmVxdWVuY2llczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5HZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBwcm9qZWN0aW9uRmlsdGVyOiBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0QmlsbGFibGVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldEJpbGxhYmxlSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ucHJvamVjdGlvbkZpbHRlcikge20ucHJvamVjdGlvbkZpbHRlciA9IFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXIuZnJvbVByb3RvKHByb3RvLnByb2plY3Rpb25GaWx0ZXIpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucHJvamVjdGlvbkZpbHRlciAhPT0gbnVsbCkge3RvUmV0dXJuWydwcm9qZWN0aW9uRmlsdGVyJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgPyAodGhpcy5wcm9qZWN0aW9uRmlsdGVyIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnByb2plY3Rpb25GaWx0ZXI7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UgaW1wbGVtZW50cyBpLkdldEJpbGxhYmxlSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpdGVtOiBCaWxsYWJsZUl0ZW07XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRCaWxsYWJsZUl0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLml0ZW0pIHttLml0ZW0gPSBCaWxsYWJsZUl0ZW0uZnJvbVByb3RvKHByb3RvLml0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRCaWxsYWJsZUl0ZW1SZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLml0ZW0gIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaXRlbSAhPT0gbnVsbCkge3RvUmV0dXJuWydpdGVtJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLml0ZW0gPyAodGhpcy5pdGVtIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLml0ZW07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCBpbXBsZW1lbnRzIGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgc3Vic2NyaXB0aW9uS2V5czogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleVtdO1xuICAgIHByb2plY3Rpb25GaWx0ZXI6IFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5zdWJzY3JpcHRpb25LZXlzKSB7bS5zdWJzY3JpcHRpb25LZXlzID0gcHJvdG8uc3Vic2NyaXB0aW9uS2V5cy5tYXAoR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnByb2plY3Rpb25GaWx0ZXIpIHttLnByb2plY3Rpb25GaWx0ZXIgPSBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyLmZyb21Qcm90byhwcm90by5wcm9qZWN0aW9uRmlsdGVyKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN1YnNjcmlwdGlvbktleXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3Vic2NyaXB0aW9uS2V5cyAhPT0gbnVsbCkge3RvUmV0dXJuWydzdWJzY3JpcHRpb25LZXlzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnN1YnNjcmlwdGlvbktleXMgPyAodGhpcy5zdWJzY3JpcHRpb25LZXlzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnN1YnNjcmlwdGlvbktleXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvamVjdGlvbkZpbHRlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wcm9qZWN0aW9uRmlsdGVyICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Byb2plY3Rpb25GaWx0ZXInXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucHJvamVjdGlvbkZpbHRlciA/ICh0aGlzLnByb2plY3Rpb25GaWx0ZXIgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucHJvamVjdGlvbkZpbHRlcjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSBpbXBsZW1lbnRzIGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHN1YnNjcmlwdGlvbnM6IEJpbGxhYmxlSXRlbVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5zdWJzY3JpcHRpb25zKSB7bS5zdWJzY3JpcHRpb25zID0gcHJvdG8uc3Vic2NyaXB0aW9ucy5tYXAoQmlsbGFibGVJdGVtLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3Vic2NyaXB0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zdWJzY3JpcHRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ3N1YnNjcmlwdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc3Vic2NyaXB0aW9ucyA/ICh0aGlzLnN1YnNjcmlwdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc3Vic2NyaXB0aW9uczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJdGVtIGltcGxlbWVudHMgaS5JdGVtSW50ZXJmYWNlIHtcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIGJpbGxpbmdTdGFydDogRGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEl0ZW0ge1xuICAgICAgICBsZXQgbSA9IG5ldyBJdGVtKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmJpbGxpbmdTdGFydCkge20uYmlsbGluZ1N0YXJ0ID0gbmV3IERhdGUocHJvdG8uYmlsbGluZ1N0YXJ0KTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuSXRlbUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5iaWxsaW5nU3RhcnQgIT09IG51bGwpIHt0b1JldHVyblsnYmlsbGluZ1N0YXJ0J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmJpbGxpbmdTdGFydCA/ICh0aGlzLmJpbGxpbmdTdGFydCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5iaWxsaW5nU3RhcnQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleSBpbXBsZW1lbnRzIGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleUludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3QgaW1wbGVtZW50cyBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgZmlsdGVyczogTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycztcbiAgICBwYWdpbmdPcHRpb25zOiBQYWdlZFJlcXVlc3RPcHRpb25zO1xuICAgIHNlYXJjaFRlcm06IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5maWx0ZXJzKSB7bS5maWx0ZXJzID0gTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycy5mcm9tUHJvdG8ocHJvdG8uZmlsdGVycyk7fVxuICAgICAgICBpZiAocHJvdG8ucGFnaW5nT3B0aW9ucykge20ucGFnaW5nT3B0aW9ucyA9IFBhZ2VkUmVxdWVzdE9wdGlvbnMuZnJvbVByb3RvKHByb3RvLnBhZ2luZ09wdGlvbnMpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maWx0ZXJzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZpbHRlcnMgIT09IG51bGwpIHt0b1JldHVyblsnZmlsdGVycyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5maWx0ZXJzID8gKHRoaXMuZmlsdGVycyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5maWx0ZXJzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ09wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGFnaW5nT3B0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydwYWdpbmdPcHRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ09wdGlvbnMgPyAodGhpcy5wYWdpbmdPcHRpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBhZ2luZ09wdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2VhcmNoVGVybSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2VhcmNoVGVybSddID0gdGhpcy5zZWFyY2hUZXJtO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2UgaW1wbGVtZW50cyBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGl0ZW1zOiBCaWxsYWJsZUl0ZW1bXTtcbiAgICBwYWdpbmdNZXRhZGF0YTogUGFnZWRSZXNwb25zZU1ldGFkYXRhO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaXRlbXMpIHttLml0ZW1zID0gcHJvdG8uaXRlbXMubWFwKEJpbGxhYmxlSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ01ldGFkYXRhKSB7bS5wYWdpbmdNZXRhZGF0YSA9IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YS5mcm9tUHJvdG8ocHJvdG8ucGFnaW5nTWV0YWRhdGEpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXRlbXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaXRlbXMgIT09IG51bGwpIHt0b1JldHVyblsnaXRlbXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaXRlbXMgPyAodGhpcy5pdGVtcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pdGVtczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdpbmdNZXRhZGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wYWdpbmdNZXRhZGF0YSAhPT0gbnVsbCkge3RvUmV0dXJuWydwYWdpbmdNZXRhZGF0YSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wYWdpbmdNZXRhZGF0YSA/ICh0aGlzLnBhZ2luZ01ldGFkYXRhIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBhZ2luZ01ldGFkYXRhO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdCBpbXBsZW1lbnRzIGkuTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBmaWx0ZXJzOiBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzO1xuICAgIHBhZ2luZ09wdGlvbnM6IFBhZ2VkUmVxdWVzdE9wdGlvbnM7XG4gICAgcHJvamVjdGlvbkZpbHRlcjogU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlcjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5maWx0ZXJzKSB7bS5maWx0ZXJzID0gTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycy5mcm9tUHJvdG8ocHJvdG8uZmlsdGVycyk7fVxuICAgICAgICBpZiAocHJvdG8ucGFnaW5nT3B0aW9ucykge20ucGFnaW5nT3B0aW9ucyA9IFBhZ2VkUmVxdWVzdE9wdGlvbnMuZnJvbVByb3RvKHByb3RvLnBhZ2luZ09wdGlvbnMpO31cbiAgICAgICAgaWYgKHByb3RvLnByb2plY3Rpb25GaWx0ZXIpIHttLnByb2plY3Rpb25GaWx0ZXIgPSBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyLmZyb21Qcm90byhwcm90by5wcm9qZWN0aW9uRmlsdGVyKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsdGVycyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5maWx0ZXJzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZpbHRlcnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZmlsdGVycyA/ICh0aGlzLmZpbHRlcnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmlsdGVyczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdpbmdPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ09wdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsncGFnaW5nT3B0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wYWdpbmdPcHRpb25zID8gKHRoaXMucGFnaW5nT3B0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wYWdpbmdPcHRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucHJvamVjdGlvbkZpbHRlciAhPT0gbnVsbCkge3RvUmV0dXJuWydwcm9qZWN0aW9uRmlsdGVyJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgPyAodGhpcy5wcm9qZWN0aW9uRmlsdGVyIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnByb2plY3Rpb25GaWx0ZXI7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZSBpbXBsZW1lbnRzIGkuTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgc3Vic2NyaXB0aW9uczogQmlsbGFibGVJdGVtW107XG4gICAgcGFnaW5nTWV0YWRhdGE6IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnN1YnNjcmlwdGlvbnMpIHttLnN1YnNjcmlwdGlvbnMgPSBwcm90by5zdWJzY3JpcHRpb25zLm1hcChCaWxsYWJsZUl0ZW0uZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5wYWdpbmdNZXRhZGF0YSkge20ucGFnaW5nTWV0YWRhdGEgPSBQYWdlZFJlc3BvbnNlTWV0YWRhdGEuZnJvbVByb3RvKHByb3RvLnBhZ2luZ01ldGFkYXRhKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN1YnNjcmlwdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3Vic2NyaXB0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydzdWJzY3JpcHRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnN1YnNjcmlwdGlvbnMgPyAodGhpcy5zdWJzY3JpcHRpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnN1YnNjcmlwdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnaW5nTWV0YWRhdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGFnaW5nTWV0YWRhdGEgIT09IG51bGwpIHt0b1JldHVyblsncGFnaW5nTWV0YWRhdGEnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFnaW5nTWV0YWRhdGEgPyAodGhpcy5wYWdpbmdNZXRhZGF0YSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wYWdpbmdNZXRhZGF0YTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyIGltcGxlbWVudHMgaS5TdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVySW50ZXJmYWNlIHtcbiAgICBwcmljZTogYm9vbGVhbjtcbiAgICBpbmNsdWRlRGVsZXRlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXIge1xuICAgICAgICBsZXQgbSA9IG5ldyBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5TdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVySW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ByaWNlJ10gPSB0aGlzLnByaWNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmluY2x1ZGVEZWxldGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpbmNsdWRlRGVsZXRlZCddID0gdGhpcy5pbmNsdWRlRGVsZXRlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLlVuZXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBVbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBVbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlVuZXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==
|
|
838
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGFibGUtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JpbGxpbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvYmlsbGFibGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTlCLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUFZLEVBQUUsS0FBYTtJQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sT0FBTyxlQUFlO0lBUXhCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzlCLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFBQyxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUFDO1FBQ3hFLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQUM7UUFDbEUsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUFtQztRQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFB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ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBhZ2VkUmVxdWVzdE9wdGlvbnMsIFBhZ2VkUmVzcG9uc2VNZXRhZGF0YSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IFByb2R1Y3RQcmljaW5nIH0gZnJvbSAnLi9wcm9kdWN0LXByaWNpbmcnO1xuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQmlsbEl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5CaWxsSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIGJpbGxpbmdTdGFydDogRGF0ZTtcbiAgICBwcm9yYXRlZFRvOiBEYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbEl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbEl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmJpbGxpbmdTdGFydCkge20uYmlsbGluZ1N0YXJ0ID0gbmV3IERhdGUocHJvdG8uYmlsbGluZ1N0YXJ0KTt9XG4gICAgICAgIGlmIChwcm90by5wcm9yYXRlZFRvKSB7bS5wcm9yYXRlZFRvID0gbmV3IERhdGUocHJvdG8ucHJvcmF0ZWRUbyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5iaWxsaW5nU3RhcnQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2JpbGxpbmdTdGFydCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5iaWxsaW5nU3RhcnQgPyAodGhpcy5iaWxsaW5nU3RhcnQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYmlsbGluZ1N0YXJ0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3JhdGVkVG8gIT09ICd1bmRlZmluZWQnICYmIHRoaXMucHJvcmF0ZWRUbyAhPT0gbnVsbCkge3RvUmV0dXJuWydwcm9yYXRlZFRvJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnByb3JhdGVkVG8gPyAodGhpcy5wcm9yYXRlZFRvIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnByb3JhdGVkVG87fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0IGltcGxlbWVudHMgaS5CaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBpdGVtczogSXRlbVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLml0ZW1zKSB7bS5pdGVtcyA9IHByb3RvLml0ZW1zLm1hcChJdGVtLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pdGVtcyAhPT0gbnVsbCkge3RvUmV0dXJuWydpdGVtcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pdGVtcyA/ICh0aGlzLml0ZW1zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLml0ZW1zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2UgaW1wbGVtZW50cyBpLkJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCaWxsYWJsZUl0ZW0gaW1wbGVtZW50cyBpLkJpbGxhYmxlSXRlbUludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgZXhwaXJ5OiBEYXRlO1xuICAgIGJpbGxpbmdTdGFydDogRGF0ZTtcbiAgICBjcmVhdGVkOiBEYXRlO1xuICAgIHVwZGF0ZWQ6IERhdGU7XG4gICAgZnJlcXVlbmN5OiBlLkZyZXF1ZW5jeTtcbiAgICBuZXh0UmVuZXdhbDogRGF0ZTtcbiAgICBjdXN0b21lck5hbWU6IHN0cmluZztcbiAgICBwcm9kdWN0TmFtZTogc3RyaW5nO1xuICAgIGN1c3RvbWVyQWRkcmVzczogQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzO1xuICAgIGN1c3RvbVVuaXRQcmljZTogbnVtYmVyO1xuICAgIHJldGFpbEZyZXF1ZW5jeTogZS5GcmVxdWVuY3k7XG4gICAgbmV4dFJldGFpbFJlbmV3YWw6IERhdGU7XG4gICAgcmV0YWlsVW5pdFByaWNlOiBudW1iZXI7XG4gICAgc3RhdHVzOiBlLlN1YnNjcmlwdGlvblN0YXR1cztcbiAgICBwcmljZTogUHJvZHVjdFByaWNpbmc7XG4gICAgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZztcbiAgICBkZWxldGVkOiBEYXRlO1xuICAgIHNvdXJjZTogZS5Tb3VyY2U7XG4gICAgYXV0b0JpbGxhYmxlOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbGFibGVJdGVtIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbGFibGVJdGVtKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmV4cGlyeSkge20uZXhwaXJ5ID0gbmV3IERhdGUocHJvdG8uZXhwaXJ5KTt9XG4gICAgICAgIGlmIChwcm90by5iaWxsaW5nU3RhcnQpIHttLmJpbGxpbmdTdGFydCA9IG5ldyBEYXRlKHByb3RvLmJpbGxpbmdTdGFydCk7fVxuICAgICAgICBpZiAocHJvdG8uY3JlYXRlZCkge20uY3JlYXRlZCA9IG5ldyBEYXRlKHByb3RvLmNyZWF0ZWQpO31cbiAgICAgICAgaWYgKHByb3RvLnVwZGF0ZWQpIHttLnVwZGF0ZWQgPSBuZXcgRGF0ZShwcm90by51cGRhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by5mcmVxdWVuY3kpIHttLmZyZXF1ZW5jeSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRnJlcXVlbmN5PihlLkZyZXF1ZW5jeSwgcHJvdG8uZnJlcXVlbmN5KTt9XG4gICAgICAgIGlmIChwcm90by5uZXh0UmVuZXdhbCkge20ubmV4dFJlbmV3YWwgPSBuZXcgRGF0ZShwcm90by5uZXh0UmVuZXdhbCk7fVxuICAgICAgICBpZiAocHJvdG8uY3VzdG9tZXJBZGRyZXNzKSB7bS5jdXN0b21lckFkZHJlc3MgPSBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3MuZnJvbVByb3RvKHByb3RvLmN1c3RvbWVyQWRkcmVzcyk7fVxuICAgICAgICBpZiAocHJvdG8uY3VzdG9tVW5pdFByaWNlKSB7bS5jdXN0b21Vbml0UHJpY2UgPSBwYXJzZUludChwcm90by5jdXN0b21Vbml0UHJpY2UsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5yZXRhaWxGcmVxdWVuY3kpIHttLnJldGFpbEZyZXF1ZW5jeSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRnJlcXVlbmN5PihlLkZyZXF1ZW5jeSwgcHJvdG8ucmV0YWlsRnJlcXVlbmN5KTt9XG4gICAgICAgIGlmIChwcm90by5uZXh0UmV0YWlsUmVuZXdhbCkge20ubmV4dFJldGFpbFJlbmV3YWwgPSBuZXcgRGF0ZShwcm90by5uZXh0UmV0YWlsUmVuZXdhbCk7fVxuICAgICAgICBpZiAocHJvdG8ucmV0YWlsVW5pdFByaWNlKSB7bS5yZXRhaWxVbml0UHJpY2UgPSBwYXJzZUludChwcm90by5yZXRhaWxVbml0UHJpY2UsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zdGF0dXMpIHttLnN0YXR1cyA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuU3Vic2NyaXB0aW9uU3RhdHVzPihlLlN1YnNjcmlwdGlvblN0YXR1cywgcHJvdG8uc3RhdHVzKTt9XG4gICAgICAgIGlmIChwcm90by5wcmljZSkge20ucHJpY2UgPSBQcm9kdWN0UHJpY2luZy5mcm9tUHJvdG8ocHJvdG8ucHJpY2UpO31cbiAgICAgICAgaWYgKHByb3RvLmRlbGV0ZWQpIHttLmRlbGV0ZWQgPSBuZXcgRGF0ZShwcm90by5kZWxldGVkKTt9XG4gICAgICAgIGlmIChwcm90by5zb3VyY2UpIHttLnNvdXJjZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuU291cmNlPihlLlNvdXJjZSwgcHJvdG8uc291cmNlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQmlsbGFibGVJdGVtSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4cGlyeSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5leHBpcnkgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJ5J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV4cGlyeSA/ICh0aGlzLmV4cGlyeSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcnk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gbnVsbCkge3RvUmV0dXJuWydiaWxsaW5nU3RhcnQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYmlsbGluZ1N0YXJ0ID8gKHRoaXMuYmlsbGluZ1N0YXJ0IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmJpbGxpbmdTdGFydDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNyZWF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsnY3JlYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jcmVhdGVkID8gKHRoaXMuY3JlYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jcmVhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVwZGF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudXBkYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWyd1cGRhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnVwZGF0ZWQgPyAodGhpcy51cGRhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnVwZGF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZnJlcXVlbmN5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydmcmVxdWVuY3knXSA9IHRoaXMuZnJlcXVlbmN5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5leHRSZW5ld2FsICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm5leHRSZW5ld2FsICE9PSBudWxsKSB7dG9SZXR1cm5bJ25leHRSZW5ld2FsJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm5leHRSZW5ld2FsID8gKHRoaXMubmV4dFJlbmV3YWwgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubmV4dFJlbmV3YWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lck5hbWUnXSA9IHRoaXMuY3VzdG9tZXJOYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb2R1Y3ROYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwcm9kdWN0TmFtZSddID0gdGhpcy5wcm9kdWN0TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lckFkZHJlc3MgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY3VzdG9tZXJBZGRyZXNzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2N1c3RvbWVyQWRkcmVzcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jdXN0b21lckFkZHJlc3MgPyAodGhpcy5jdXN0b21lckFkZHJlc3MgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3VzdG9tZXJBZGRyZXNzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbVVuaXRQcmljZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tVW5pdFByaWNlJ10gPSB0aGlzLmN1c3RvbVVuaXRQcmljZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXRhaWxGcmVxdWVuY3kgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldGFpbEZyZXF1ZW5jeSddID0gdGhpcy5yZXRhaWxGcmVxdWVuY3k7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgIT09IG51bGwpIHt0b1JldHVyblsnbmV4dFJldGFpbFJlbmV3YWwnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubmV4dFJldGFpbFJlbmV3YWwgPyAodGhpcy5uZXh0UmV0YWlsUmVuZXdhbCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5uZXh0UmV0YWlsUmVuZXdhbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXRhaWxVbml0UHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JldGFpbFVuaXRQcmljZSddID0gdGhpcy5yZXRhaWxVbml0UHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdHVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0dXMnXSA9IHRoaXMuc3RhdHVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByaWNlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnByaWNlICE9PSBudWxsKSB7dG9SZXR1cm5bJ3ByaWNlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnByaWNlID8gKHRoaXMucHJpY2UgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3Vic2NyaXB0aW9uSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N1YnNjcmlwdGlvbklkJ10gPSB0aGlzLnN1YnNjcmlwdGlvbklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlbGV0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZGVsZXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWydkZWxldGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmRlbGV0ZWQgPyAodGhpcy5kZWxldGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmRlbGV0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc291cmNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzb3VyY2UnXSA9IHRoaXMuc291cmNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmF1dG9CaWxsYWJsZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYXV0b0JpbGxhYmxlJ10gPSB0aGlzLmF1dG9CaWxsYWJsZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDYW5CaWxsSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLkNhbkJpbGxJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ2FuQmlsbEl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ2FuQmlsbEl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DYW5CaWxsSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENyZWF0ZVVzYWdlUmVxdWVzdCBpbXBsZW1lbnRzIGkuQ3JlYXRlVXNhZ2VSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBxdWFudGl0eTogbnVtYmVyO1xuICAgIHVzYWdlRGF0ZTogRGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENyZWF0ZVVzYWdlUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZVVzYWdlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5xdWFudGl0eSkge20ucXVhbnRpdHkgPSBwYXJzZUludChwcm90by5xdWFudGl0eSwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnVzYWdlRGF0ZSkge20udXNhZ2VEYXRlID0gbmV3IERhdGUocHJvdG8udXNhZ2VEYXRlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ3JlYXRlVXNhZ2VSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnF1YW50aXR5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydxdWFudGl0eSddID0gdGhpcy5xdWFudGl0eTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51c2FnZURhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudXNhZ2VEYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ3VzYWdlRGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy51c2FnZURhdGUgPyAodGhpcy51c2FnZURhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudXNhZ2VEYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcyBpbXBsZW1lbnRzIGkuQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzSW50ZXJmYWNlIHtcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgY2l0eTogc3RyaW5nO1xuICAgIHN0YXRlOiBzdHJpbmc7XG4gICAgemlwOiBzdHJpbmc7XG4gICAgY291bnRyeTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3NJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hZGRyZXNzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhZGRyZXNzJ10gPSB0aGlzLmFkZHJlc3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2l0eSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY2l0eSddID0gdGhpcy5jaXR5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXRlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0ZSddID0gdGhpcy5zdGF0ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy56aXAgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ppcCddID0gdGhpcy56aXA7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY291bnRyeSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY291bnRyeSddID0gdGhpcy5jb3VudHJ5O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLkRlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IERlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkRlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgZXhwaXJ5OiBEYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZXhwaXJ5KSB7bS5leHBpcnkgPSBuZXcgRGF0ZShwcm90by5leHBpcnkpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5FeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4cGlyeSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5leHBpcnkgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJ5J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV4cGlyeSA/ICh0aGlzLmV4cGlyeSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcnk7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3QgaW1wbGVtZW50cyBpLkV4cG9ydFN1YnNjcmlwdGlvbnNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBmaWx0ZXJzOiBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBFeHBvcnRTdWJzY3JpcHRpb25zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5maWx0ZXJzKSB7bS5maWx0ZXJzID0gTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycy5mcm9tUHJvdG8ocHJvdG8uZmlsdGVycyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkV4cG9ydFN1YnNjcmlwdGlvbnNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsdGVycyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5maWx0ZXJzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZpbHRlcnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZmlsdGVycyA/ICh0aGlzLmZpbHRlcnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmlsdGVyczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzIGltcGxlbWVudHMgaS5MaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlIHtcbiAgICBza3VzOiBzdHJpbmdbXTtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycyB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3VzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3VzJ10gPSB0aGlzLnNrdXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzIGltcGxlbWVudHMgaS5MaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlIHtcbiAgICBza3VzOiBzdHJpbmdbXTtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIHNlYXJjaFRlcm06IHN0cmluZztcbiAgICBzdGF0dXM6IGUuU3Vic2NyaXB0aW9uU3RhdHVzO1xuICAgIGV4cGlyZWREYXRlR3RlOiBEYXRlO1xuICAgIGV4cGlyZWREYXRlTHRlOiBEYXRlO1xuICAgIGZyZXF1ZW5jaWVzOiBlLkZyZXF1ZW5jeVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycyB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3RhdHVzKSB7bS5zdGF0dXMgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlN1YnNjcmlwdGlvblN0YXR1cz4oZS5TdWJzY3JpcHRpb25TdGF0dXMsIHByb3RvLnN0YXR1cyk7fVxuICAgICAgICBpZiAocHJvdG8uZXhwaXJlZERhdGVHdGUpIHttLmV4cGlyZWREYXRlR3RlID0gbmV3IERhdGUocHJvdG8uZXhwaXJlZERhdGVHdGUpO31cbiAgICAgICAgaWYgKHByb3RvLmV4cGlyZWREYXRlTHRlKSB7bS5leHBpcmVkRGF0ZUx0ZSA9IG5ldyBEYXRlKHByb3RvLmV4cGlyZWREYXRlTHRlKTt9XG4gICAgICAgIGlmIChwcm90by5mcmVxdWVuY2llcykge20uZnJlcXVlbmNpZXMgPSBwcm90by5mcmVxdWVuY2llcy5tYXAoKHY6IHN0cmluZykgPT4gZW51bVN0cmluZ1RvVmFsdWU8ZS5GcmVxdWVuY3k+KGUuRnJlcXVlbmN5LCB2KSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3VzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3VzJ10gPSB0aGlzLnNrdXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZWFyY2hUZXJtICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzZWFyY2hUZXJtJ10gPSB0aGlzLnNlYXJjaFRlcm07fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdHVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0dXMnXSA9IHRoaXMuc3RhdHVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4cGlyZWREYXRlR3RlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmV4cGlyZWREYXRlR3RlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2V4cGlyZWREYXRlR3RlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV4cGlyZWREYXRlR3RlID8gKHRoaXMuZXhwaXJlZERhdGVHdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXhwaXJlZERhdGVHdGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXhwaXJlZERhdGVMdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXhwaXJlZERhdGVMdGUgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJlZERhdGVMdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXhwaXJlZERhdGVMdGUgPyAodGhpcy5leHBpcmVkRGF0ZUx0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcmVkRGF0ZUx0ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mcmVxdWVuY2llcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZnJlcXVlbmNpZXMnXSA9IHRoaXMuZnJlcXVlbmNpZXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0QmlsbGFibGVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuR2V0QmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgcHJvamVjdGlvbkZpbHRlcjogU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlcjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldEJpbGxhYmxlSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnByb2plY3Rpb25GaWx0ZXIpIHttLnByb2plY3Rpb25GaWx0ZXIgPSBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyLmZyb21Qcm90byhwcm90by5wcm9qZWN0aW9uRmlsdGVyKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0QmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9qZWN0aW9uRmlsdGVyICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgIT09IG51bGwpIHt0b1JldHVyblsncHJvamVjdGlvbkZpbHRlciddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wcm9qZWN0aW9uRmlsdGVyID8gKHRoaXMucHJvamVjdGlvbkZpbHRlciBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wcm9qZWN0aW9uRmlsdGVyO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlIGltcGxlbWVudHMgaS5HZXRCaWxsYWJsZUl0ZW1SZXNwb25zZUludGVyZmFjZSB7XG4gICAgaXRlbTogQmlsbGFibGVJdGVtO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0QmlsbGFibGVJdGVtUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRCaWxsYWJsZUl0ZW1SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pdGVtKSB7bS5pdGVtID0gQmlsbGFibGVJdGVtLmZyb21Qcm90byhwcm90by5pdGVtKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0QmlsbGFibGVJdGVtUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pdGVtICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLml0ZW0gIT09IG51bGwpIHt0b1JldHVyblsnaXRlbSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pdGVtID8gKHRoaXMuaXRlbSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pdGVtO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3QgaW1wbGVtZW50cyBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHN1YnNjcmlwdGlvbktleXM6IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXlbXTtcbiAgICBwcm9qZWN0aW9uRmlsdGVyOiBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3Vic2NyaXB0aW9uS2V5cykge20uc3Vic2NyaXB0aW9uS2V5cyA9IHByb3RvLnN1YnNjcmlwdGlvbktleXMubWFwKEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXkuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5wcm9qZWN0aW9uRmlsdGVyKSB7bS5wcm9qZWN0aW9uRmlsdGVyID0gU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlci5mcm9tUHJvdG8ocHJvdG8ucHJvamVjdGlvbkZpbHRlcik7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdWJzY3JpcHRpb25LZXlzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnN1YnNjcmlwdGlvbktleXMgIT09IG51bGwpIHt0b1JldHVyblsnc3Vic2NyaXB0aW9uS2V5cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zdWJzY3JpcHRpb25LZXlzID8gKHRoaXMuc3Vic2NyaXB0aW9uS2V5cyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zdWJzY3JpcHRpb25LZXlzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucHJvamVjdGlvbkZpbHRlciAhPT0gbnVsbCkge3RvUmV0dXJuWydwcm9qZWN0aW9uRmlsdGVyJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgPyAodGhpcy5wcm9qZWN0aW9uRmlsdGVyIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnByb2plY3Rpb25GaWx0ZXI7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2UgaW1wbGVtZW50cyBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBzdWJzY3JpcHRpb25zOiBCaWxsYWJsZUl0ZW1bXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3Vic2NyaXB0aW9ucykge20uc3Vic2NyaXB0aW9ucyA9IHByb3RvLnN1YnNjcmlwdGlvbnMubWFwKEJpbGxhYmxlSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN1YnNjcmlwdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3Vic2NyaXB0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydzdWJzY3JpcHRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnN1YnNjcmlwdGlvbnMgPyAodGhpcy5zdWJzY3JpcHRpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnN1YnNjcmlwdGlvbnM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSXRlbSBpbXBsZW1lbnRzIGkuSXRlbUludGVyZmFjZSB7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBiaWxsaW5nU3RhcnQ6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBJdGVtIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgSXRlbSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5iaWxsaW5nU3RhcnQpIHttLmJpbGxpbmdTdGFydCA9IG5ldyBEYXRlKHByb3RvLmJpbGxpbmdTdGFydCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkl0ZW1JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5iaWxsaW5nU3RhcnQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2JpbGxpbmdTdGFydCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5iaWxsaW5nU3RhcnQgPyAodGhpcy5iaWxsaW5nU3RhcnQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYmlsbGluZ1N0YXJ0O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXkgaW1wbGVtZW50cyBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXlJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXkoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXlJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0IGltcGxlbWVudHMgaS5MaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbHRlcnM6IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnM7XG4gICAgcGFnaW5nT3B0aW9uczogUGFnZWRSZXF1ZXN0T3B0aW9ucztcbiAgICBzZWFyY2hUZXJtOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZmlsdGVycykge20uZmlsdGVycyA9IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMuZnJvbVByb3RvKHByb3RvLmZpbHRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ09wdGlvbnMpIHttLnBhZ2luZ09wdGlvbnMgPSBQYWdlZFJlcXVlc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5wYWdpbmdPcHRpb25zKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsdGVycyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5maWx0ZXJzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZpbHRlcnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZmlsdGVycyA/ICh0aGlzLmZpbHRlcnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmlsdGVyczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdpbmdPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ09wdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsncGFnaW5nT3B0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wYWdpbmdPcHRpb25zID8gKHRoaXMucGFnaW5nT3B0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wYWdpbmdPcHRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlYXJjaFRlcm0gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NlYXJjaFRlcm0nXSA9IHRoaXMuc2VhcmNoVGVybTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5MaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpdGVtczogQmlsbGFibGVJdGVtW107XG4gICAgcGFnaW5nTWV0YWRhdGE6IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLml0ZW1zKSB7bS5pdGVtcyA9IHByb3RvLml0ZW1zLm1hcChCaWxsYWJsZUl0ZW0uZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5wYWdpbmdNZXRhZGF0YSkge20ucGFnaW5nTWV0YWRhdGEgPSBQYWdlZFJlc3BvbnNlTWV0YWRhdGEuZnJvbVByb3RvKHByb3RvLnBhZ2luZ01ldGFkYXRhKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLml0ZW1zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLml0ZW1zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2l0ZW1zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLml0ZW1zID8gKHRoaXMuaXRlbXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaXRlbXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnaW5nTWV0YWRhdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGFnaW5nTWV0YWRhdGEgIT09IG51bGwpIHt0b1JldHVyblsncGFnaW5nTWV0YWRhdGEnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFnaW5nTWV0YWRhdGEgPyAodGhpcy5wYWdpbmdNZXRhZGF0YSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wYWdpbmdNZXRhZGF0YTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3QgaW1wbGVtZW50cyBpLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgZmlsdGVyczogTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycztcbiAgICBwYWdpbmdPcHRpb25zOiBQYWdlZFJlcXVlc3RPcHRpb25zO1xuICAgIHByb2plY3Rpb25GaWx0ZXI6IFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZmlsdGVycykge20uZmlsdGVycyA9IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnMuZnJvbVByb3RvKHByb3RvLmZpbHRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ09wdGlvbnMpIHttLnBhZ2luZ09wdGlvbnMgPSBQYWdlZFJlcXVlc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5wYWdpbmdPcHRpb25zKTt9XG4gICAgICAgIGlmIChwcm90by5wcm9qZWN0aW9uRmlsdGVyKSB7bS5wcm9qZWN0aW9uRmlsdGVyID0gU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlci5mcm9tUHJvdG8ocHJvdG8ucHJvamVjdGlvbkZpbHRlcik7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpbHRlcnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZmlsdGVycyAhPT0gbnVsbCkge3RvUmV0dXJuWydmaWx0ZXJzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZpbHRlcnMgPyAodGhpcy5maWx0ZXJzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmZpbHRlcnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnaW5nT3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wYWdpbmdPcHRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ09wdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFnaW5nT3B0aW9ucyA/ICh0aGlzLnBhZ2luZ09wdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nT3B0aW9uczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9qZWN0aW9uRmlsdGVyICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgIT09IG51bGwpIHt0b1JldHVyblsncHJvamVjdGlvbkZpbHRlciddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wcm9qZWN0aW9uRmlsdGVyID8gKHRoaXMucHJvamVjdGlvbkZpbHRlciBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wcm9qZWN0aW9uRmlsdGVyO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2UgaW1wbGVtZW50cyBpLkxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHN1YnNjcmlwdGlvbnM6IEJpbGxhYmxlSXRlbVtdO1xuICAgIHBhZ2luZ01ldGFkYXRhOiBQYWdlZFJlc3BvbnNlTWV0YWRhdGE7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5zdWJzY3JpcHRpb25zKSB7bS5zdWJzY3JpcHRpb25zID0gcHJvdG8uc3Vic2NyaXB0aW9ucy5tYXAoQmlsbGFibGVJdGVtLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8ucGFnaW5nTWV0YWRhdGEpIHttLnBhZ2luZ01ldGFkYXRhID0gUGFnZWRSZXNwb25zZU1ldGFkYXRhLmZyb21Qcm90byhwcm90by5wYWdpbmdNZXRhZGF0YSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdWJzY3JpcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnN1YnNjcmlwdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsnc3Vic2NyaXB0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zdWJzY3JpcHRpb25zID8gKHRoaXMuc3Vic2NyaXB0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zdWJzY3JpcHRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ01ldGFkYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ01ldGFkYXRhID8gKHRoaXMucGFnaW5nTWV0YWRhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nTWV0YWRhdGE7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlciBpbXBsZW1lbnRzIGkuU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlckludGVyZmFjZSB7XG4gICAgcHJpY2U6IGJvb2xlYW47XG4gICAgaW5jbHVkZURlbGV0ZWQ6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlcigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByaWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwcmljZSddID0gdGhpcy5wcmljZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbmNsdWRlRGVsZXRlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaW5jbHVkZURlbGV0ZWQnXSA9IHRoaXMuaW5jbHVkZURlbGV0ZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVW5leHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5VbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVW5leHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVW5leHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -37,7 +37,7 @@ export { CreateRefundRequest, ListRefundsRequest, ListRefundsResponse, Refund, }
|
|
|
37
37
|
export { CreateSalesCreditNoteRequest, ListSalesCreditNoteRequestListSalesCreditNoteFilters, ListSalesCreditNoteRequest, ListSalesCreditNoteResponse, SalesCreditNote, } from './sales-credit-note';
|
|
38
38
|
export { GetSalesInvoiceRequest, GetSalesInvoiceResponse, ListSalesInvoiceRequestListSalesInvoiceFilters, ListSalesInvoiceRequest, ListSalesInvoiceResponse, PostSalesInvoiceRequest, SalesInvoice, SendSalesInvoiceEmailRequest, SendSalesInvoiceReceiptEmailRequest, } from './sales-invoice';
|
|
39
39
|
export { SubscribeValidation, } from './subscribe-validation';
|
|
40
|
-
export { AlignmentSubscription, CanCreateSubscriptionsRequest, CanCreateSubscriptionsResponse, ChangeCustomUnitPriceRequest, ChangeFrequencyRequest, ChangeRenewalDateRequest, CreateSubscriptionRequest, CreateSubscriptionsRequest, CreateSubscriptionsResponse, ReverseSubscriptionRequest, SetRenewalStartRequest, CanCreateSubscriptionsRequestSkusEntry, Subscription, CanCreateSubscriptionsRequestSubscriptionItem, ValidateResponse, } from './subscription';
|
|
40
|
+
export { AlignmentSubscription, CanCreateSubscriptionsRequest, CanCreateSubscriptionsResponse, ChangeCustomUnitPriceRequest, ChangeFrequencyRequest, ChangeRenewalDateRequest, CreateSubscriptionRequest, CreateSubscriptionsRequest, CreateSubscriptionsResponse, ReverseSubscriptionRequest, SetAutoBillableRequest, SetRenewalStartRequest, CanCreateSubscriptionsRequestSkusEntry, Subscription, CanCreateSubscriptionsRequestSubscriptionItem, ValidateResponse, } from './subscription';
|
|
41
41
|
export { ContractDocument, DeleteContractDocumentRequest, ListContractDocumentsRequestFilters, ListContractDocumentsRequest, ListContractDocumentsResponse, } from './contract-document';
|
|
42
42
|
export { GetRetailCustomerConfigurationRequest, GetRetailCustomerConfigurationResponse, RetailCustomerConfiguration, UpsertRetailCustomerConfigurationRequest, } from './retail-customer-configuration';
|
|
43
43
|
export { AddCreditRequest, CreditBalance, GetBalanceRequest, GetBalanceResponse, } from './credit';
|
|
@@ -46,4 +46,4 @@ export { CreateMerchantServicesReportRun, GetMerchantServicesReportRun, Merchant
|
|
|
46
46
|
export { Access, } from './annotations';
|
|
47
47
|
export { ListSubscriptionRelationshipsRequestFilters, GetMultiSubscriptionRelationshipsRequest, GetMultiSubscriptionRelationshipsResponse, ListSubscriptionRelationshipsRequest, ListSubscriptionRelationshipsResponse, ReplaceSubscriptionRelationshipsRequest, ReplaceSubscriptionRelationshipsResponse, SubscriptionRelationship, } from './subscription-relationship';
|
|
48
48
|
export { DeleteRetailPricingRequest, GenerateBillableItemsCSVRequest, GenerateBillableItemsCSVResponse, GenerateVendorReportRequest, GenerateVendorReportResponse, GetMultiBundleRetailPricingRequest, GetMultiBundleRetailPricingResponse, GetMultiProductPricingRequest, GetMultiProductPricingResponse, GetMultiRetailPricingRequest, GetMultiRetailPricingResponse, GetMultiWholesaleCostRequest, GetMultiWholesaleCostResponse, GetPurchaseCostRequest, GetPurchaseCostResponse, GetRevenueStatsRequest, GetRevenueStatsResponse, GetStatisticsRequest, GetStatisticsResponse, GetWholesaleComparisonRequestGetWholesaleComparisonFilters, GetWholesaleComparisonRequest, GetWholesaleComparisonResponse, GetWholesaleComparisonResponseGetWholesaleComparisonResult, GetMultiBundleRetailPricingResponsePricesEntry, UpsertRetailPricingRequestPricingEntry, GetMultiRetailPricingResponseProductPricesEntry, GetMultiProductPricingResponseProductPricesEntry, SetWholesaleProductStrategyRequest, SetWholesaleProductVolumeCommitmentRequest, StartRevRecTemplateBackfillRequest, UpsertRetailPricingRequest, } from './api';
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsb0NBQW9DO0FBQ3BDLE9BQU8sRUFDSCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN4QixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsVUFBVSxHQUNiLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsR0FBRyxHQUNOLE1BQU0sT0FBTyxDQUFDO0FBRWYsT0FBTyxFQUNILFNBQVMsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzVCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILGFBQWEsRUFDYixjQUFjLEVBQ2Qsd0JBQXdCLEdBQzNCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNILGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixJQUFJLEVBQ0osK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4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QyxxQ0FBcUMsRUFDckMsdUNBQXVDLEVBQ3ZDLHdDQUF3QyxFQUN4Qyx3QkFBd0IsR0FDM0IsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QixrQ0FBa0MsRUFDbEMsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLDBEQUEwRCxFQUMxRCw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDBEQUEwRCxFQUMxRCw4Q0FBOEMsRUFDOUMsc0NBQXNDLEVBQ3RDLCtDQUErQyxFQUMvQyxnREFBZ0QsRUFDaEQsa0NBQWtDLEVBQ2xDLDBDQUEwQyxFQUMxQyxrQ0FBa0MsRUFDbEMsMEJBQTBCLEdBQzdCLE1BQU0sT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzIEluZGV4LlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5leHBvcnQge1xuICAgIEV4cG9ydFJlc3BvbnNlLFxuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnMsXG4gICAgUGFnZWRSZXNwb25zZU1ldGFkYXRhLFxufSBmcm9tICcuL2NvbW1vbic7XG5cbmV4cG9ydCB7XG4gICAgQ29tbWl0bWVudCxcbn0gZnJvbSAnLi9jb21taXRtZW50JztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkRmVlLFxuICAgIEZlZSxcbn0gZnJvbSAnLi9mZWUnO1xuXG5leHBvcnQge1xuICAgIEZpZWxkTWFzayxcbn0gZnJvbSAnLi9maWVsZC1tYXNrJztcblxuZXhwb3J0IHtcbiAgICBDb21wb25lbnRQcmljaW5nLFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICBDcmVhdGVQcmljaW5nUGxhblJlc3BvbnNlLFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5SZXNwb25zZSxcbiAgICBQcmljaW5nUGxhbixcbiAgICBQcmljaW5nUGxhblByb2R1Y3RQcmljaW5nLFxuICAgIFByb2R1Y3RQcmljaW5nUnVsZSxcbiAgICBVcGRhdGVQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5SZXNwb25zZSxcbn0gZnJvbSAnLi9wcmljaW5nLXBsYW4nO1xuXG5leHBvcnQge1xuICAgIFByb2R1Y3RQcmljZXMsXG4gICAgUHJvZHVjdFByaWNpbmcsXG4gICAgV2hvbGVzYWxlQ29zdEl0ZW1SZXF1ZXN0LFxufSBmcm9tICcuL3Byb2R1Y3QtcHJpY2luZyc7XG5cbmV4cG9ydCB7XG4gICAgQmlsbEl0ZW1SZXF1ZXN0LFxuICAgIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCxcbiAgICBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlLFxuICAgIEJpbGxhYmxlSXRlbSxcbiAgICBDYW5CaWxsSXRlbVJlcXVlc3QsXG4gICAgQ3JlYXRlVXNhZ2VSZXF1ZXN0LFxuICAgIEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcyxcbiAgICBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgIEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBJdGVtLFxuICAgIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXksXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIExpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlcixcbiAgICBVbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG59IGZyb20gJy4vYmlsbGFibGUtaXRlbSc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZERpc2NvdW50LFxufSBmcm9tICcuL2FwcGxpZWQtZGlzY291bnQnO1xuXG5leHBvcnQge1xuICAgIEJ1bmRsZSxcbiAgICBCdW5kbGVJdGVtLFxuICAgIEJ1bmRsZVByaWNpbmcsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXNwb25zZUJ1bmRsZXNFbnRyeSxcbiAgICBMaXN0QnVuZGxlc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldE11bHRpQnVuZGxlUmVxdWVzdCxcbiAgICBHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlLFxuICAgIExpc3RCdW5kbGVzUmVxdWVzdCxcbiAgICBMaXN0QnVuZGxlc1Jlc3BvbnNlLFxuICAgIEJ1bmRsZUl0ZW1QcmljZSxcbiAgICBCdW5kbGVQcmljaW5nUHJpY2VBbmRGcmVxdWVuY3ksXG4gICAgVXBzZXJ0QnVuZGxlUmVxdWVzdCxcbn0gZnJvbSAnLi9idW5kbGUnO1xuXG5leHBvcnQge1xuICAgIENvbnRyYWN0LFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVzcG9uc2VDb250cmFjdHNFbnRyeSxcbiAgICBDcmVhdGVDb250cmFjdFJlcXVlc3QsXG4gICAgQ3JlYXRlQ29udHJhY3RSZXNwb25zZSxcbiAgICBHZXRDb250cmFjdFJlcXVlc3QsXG4gICAgR2V0Q29udHJhY3RSZXNwb25zZSxcbiAgICBHZXRNZXJjaGFudFdob2xlc2FsZUN1cnJlbmN5UmVxdWVzdCxcbiAgICBHZXRNZXJjaGFudFdob2xlc2FsZUN1cnJlbmN5UmVzcG9uc2UsXG4gICAgR2V0TXVsdGlDb250cmFjdHNSZXF1ZXN0LFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVzcG9uc2UsXG4gICAgTGlzdENvbnRyYWN0c1JlcXVlc3QsXG4gICAgTGlzdENvbnRyYWN0c1Jlc3BvbnNlLFxuICAgIFVwZGF0ZUNvbnRyYWN0UmVxdWVzdE11dGF0aW9uLFxuICAgIFJlc2V0Q29udHJhY3RQcmljaW5nUmVxdWVzdCxcbiAgICBVcGRhdGVDb250cmFjdFJlcXVlc3QsXG4gICAgVXBkYXRlQ29udHJhY3RSZXNwb25zZSxcbiAgICBVcGRhdGVDb250cmFjdFN1YnNjcmlwdGlvblJlcXVlc3QsXG59IGZyb20gJy4vY29udHJhY3QnO1xuXG5leHBvcnQge1xuICAgIEN1c3RvbWVyU3VtbWFyeSxcbiAgICBHZXRNdWx0aUN1c3RvbWVyU3VtbWFyaWVzUmVxdWVzdCxcbiAgICBHZXRNdWx0aUN1c3RvbWVyU3VtbWFyaWVzUmVzcG9uc2UsXG59IGZyb20gJy4vY3VzdG9tZXItc3VtbWFyeSc7XG5cbmV4cG9ydCB7XG4gICAgQmFua0FjY291bnQsXG4gICAgQ3JlYXRlU3RyaXBlRXh0ZXJuYWxBY2NvdW50UmVxdWVzdCxcbiAgICBEZWxldGVCYW5rQWNjb3VudFJlcXVlc3QsXG4gICAgTGlzdEJhbmtBY2NvdW50c1JlcXVlc3QsXG4gICAgTGlzdEJhbmtBY2NvdW50c1Jlc3BvbnNlLFxuICAgIFNldERlZmF1bHRCYW5rQWNjb3VudFJlcXVlc3QsXG59IGZyb20gJy4vZXh0ZXJuYWwtYWNjb3VudCc7XG5cbmV4cG9ydCB7XG4gICAgUHJvZHVjdFN1bW1hcnlEaXNjb3VudCxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0UHJvZHVjdFN1bW1hcmllc1RvdGFsUmVxdWVzdCxcbiAgICBHZXRQcm9kdWN0U3VtbWFyaWVzVG90YWxSZXNwb25zZSxcbiAgICBMaXN0UHJvZHVjdFN1bW1hcmllc1JlcXVlc3QsXG4gICAgTGlzdFByb2R1Y3RTdW1tYXJpZXNSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlHcm91cFJlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeVNLVVJlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25SZXF1ZXN0LFxuICAgIFByaWNpbmcsXG4gICAgUHJvZHVjdFN1bW1hcnksXG4gICAgUmV0ZW50aW9uTWV0cmljcyxcbiAgICBQcmljaW5nUnVsZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlHcm91cFJlc3BvbnNlU3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlHcm91cCxcbn0gZnJvbSAnLi9wcm9kdWN0LXN1bW1hcnknO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZURpc2NvdW50UmVxdWVzdCxcbiAgICBEaXNjb3VudCxcbiAgICBFeHBpcmVEaXNjb3VudFJlcXVlc3QsXG4gICAgTGlzdERpc2NvdW50c1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3REaXNjb3VudHNSZXF1ZXN0LFxuICAgIExpc3REaXNjb3VudHNSZXNwb25zZSxcbiAgICBVcGRhdGVEaXNjb3VudFJlcXVlc3QsXG59IGZyb20gJy4vZGlzY291bnQnO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWRUYXhSYXRlLFxufSBmcm9tICcuL2FwcGxpZWQtdGF4LXJhdGUnO1xuXG5leHBvcnQge1xuICAgIEFyY2hpdmVUYXhSZXF1ZXN0LFxuICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0LFxuICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZSxcbiAgICBDYWxjdWxhdGVUYXhSZXF1ZXN0LFxuICAgIENhbGN1bGF0ZVRheFJlc3BvbnNlLFxuICAgIENyZWF0ZVRheFJlcXVlc3QsXG4gICAgTGlzdFRheFJlcXVlc3RGaWx0ZXJzLFxuICAgIEdldE11bHRpVGF4UmVxdWVzdCxcbiAgICBHZXRNdWx0aVRheFJlc3BvbnNlLFxuICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0TGluZUl0ZW0sXG4gICAgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlTGluZUl0ZW1UYXhlcyxcbiAgICBMaXN0VGF4UmVxdWVzdCxcbiAgICBMaXN0VGF4UmVzcG9uc2UsXG4gICAgVGF4UmF0ZSxcbiAgICBVcGRhdGVUYXhSZXF1ZXN0LFxufSBmcm9tICcuL3RheC1yYXRlJztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkQnVuZGxlLFxuICAgIEFwcGxpZWRCdW5kbGVJdGVtLFxufSBmcm9tICcuL2FwcGxpZWQtYnVuZGxlJztcblxuZXhwb3J0IHtcbiAgICBBZGRCdW5kbGVSZXF1ZXN0LFxuICAgIEFkZEJ1bmRsZVJlc3BvbnNlLFxuICAgIEFkZExpbmVJdGVtUmVxdWVzdCxcbiAgICBBZGRMaW5lSXRlbVJlc3BvbnNlLFxuICAgIENoYXJnZUludm9pY2VSZXF1ZXN0LFxuICAgIENyZWF0ZUludm9pY2VSZXF1ZXN0LFxuICAgIENyZWF0ZUludm9pY2VSZXNwb25zZSxcbiAgICBDcmVhdGVQYXltZW50TGlua1JlcXVlc3QsXG4gICAgQ3JlYXRlUGF5bWVudExpbmtSZXNwb25zZSxcbiAgICBJbnZvaWNlQ3VzdG9tZXJBZGRyZXNzLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3RGaWx0ZXJzRGF0ZUZpbHRlcixcbiAgICBEZWxldGVJbnZvaWNlUmVxdWVzdCxcbiAgICBEZWxldGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgRGVsZXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBEdXBsaWNhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBEdXBsaWNhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgTGlzdEludm9pY2VzUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0SW52b2ljZVJlcXVlc3QsXG4gICAgR2V0SW52b2ljZVJlc3BvbnNlLFxuICAgIEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXF1ZXN0LFxuICAgIEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXNwb25zZSxcbiAgICBJbnZvaWNlLFxuICAgIEludm9pY2VJdGVtLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgTGlzdEludm9pY2VzUmVzcG9uc2UsXG4gICAgTm90ZSxcbiAgICBQYXlJbnZvaWNlUmVxdWVzdCxcbiAgICBQYXltZW50TGlua0l0ZW0sXG4gICAgUmVtb3ZlQnVuZGxlUmVxdWVzdCxcbiAgICBSZW1vdmVCdW5kbGVSZXNwb25zZSxcbiAgICBTZW5kSW52b2ljZVJlcXVlc3QsXG4gICAgVXBkYXRlQnVuZGxlUmVxdWVzdCxcbiAgICBVcGRhdGVCdW5kbGVSZXNwb25zZSxcbiAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0LFxuICAgIFVwZGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlLFxuICAgIFVwZGF0ZUludm9pY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZUludm9pY2VSZXNwb25zZSxcbiAgICBVcGRhdGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgVXBkYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBWb2lkSW52b2ljZVJlcXVlc3QsXG59IGZyb20gJy4vaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgQWNjb3VudEJhbGFuY2UsXG4gICAgQmFsYW5jZSxcbiAgICBCYWxhbmNlQW1vdW50LFxufSBmcm9tICcuL2JhbGFuY2UnO1xuXG5leHBvcnQge1xuICAgIERhdGVSYW5nZSxcbn0gZnJvbSAnLi9kYXRlLXJhbmdlJztcblxuZXhwb3J0IHtcbiAgICBMaXN0UGF5b3V0c1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3RQYXlvdXRzUmVxdWVzdCxcbiAgICBMaXN0UGF5b3V0c1Jlc3BvbnNlLFxuICAgIFBheW91dCxcbiAgICBSZWNvbmNpbGVQYXlvdXRSZXF1ZXN0LFxuICAgIFJlY29uY2lsZVBheW91dFJlc3BvbnNlLFxuICAgIFJldGFpbFBheW91dCxcbn0gZnJvbSAnLi9wYXlvdXQnO1xuXG5leHBvcnQge1xuICAgIENhbmNlbFJldGFpbEJpbGxpbmdSZXF1ZXN0LFxuICAgIENoYXJnZVNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgQ29ubmVjdFN0cmlwZUFjY291bnRSZXF1ZXN0LFxuICAgIENvbm5lY3RTdHJpcGVBY2NvdW50UmVzcG9uc2UsXG4gICAgQ3JlYXRlTWVyY2hhbnRSZXF1ZXN0LFxuICAgIERlZmF1bHRDdXN0b21lckNvbmZpZ3VyYXRpb24sXG4gICAgR2V0TWVyY2hhbnRSZXF1ZXN0LFxuICAgIEdldE1lcmNoYW50UmVzcG9uc2UsXG4gICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1Jlc3BvbnNlLFxuICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVzcG9uc2UsXG4gICAgR2V0UGF5b3V0U3VtbWFyeVJlcXVlc3QsXG4gICAgR2V0UGF5b3V0U3VtbWFyeVJlc3BvbnNlLFxuICAgIEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlc3BvbnNlLFxuICAgIEdldFJldGFpbEJhbGFuY2VSZXF1ZXN0LFxuICAgIEdldFJldGFpbEJhbGFuY2VSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxQYXlvdXRSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW91dFJlc3BvbnNlLFxuICAgIENyZWF0ZU1lcmNoYW50UmVxdWVzdEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHMsXG4gICAgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0SW5jbHVkZUluRmluYW5jaWFsUmVjb3JkcyxcbiAgICBMaXN0UmV0YWlsUGF5b3V0c1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbFBheW91dHNSZXNwb25zZSxcbiAgICBNZXJjaGFudCxcbiAgICBSZXRhaWxDb25maWd1cmF0aW9uLFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXNwb25zZVJldGFpbENvbmZpZ3VyYXRpb25zRW50cnksXG4gICAgU2VhcmNoTWVyY2hhbnRzUmVxdWVzdCxcbiAgICBTZWFyY2hNZXJjaGFudHNSZXNwb25zZSxcbiAgICBTZXRBdXRvQ2hhcmdlSW52b2ljZXNSZXF1ZXN0LFxuICAgIFNldEF1dG9Qb3N0SW52b2ljZXNSZXF1ZXN0LFxuICAgIFNldERlZmF1bHRQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgU2V0SGFzQWx0ZXJuYXRpdmVQYXltZW50TWV0aG9kUmVxdWVzdCxcbiAgICBTZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzUmVxdWVzdCxcbiAgICBVcGRhdGVNZXJjaGFudFJlcXVlc3QsXG4gICAgVXBzZXJ0RGVmYXVsdFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgVXBzZXJ0UmV0YWlsQ29uZmlndXJhdGlvblJlcXVlc3QsXG59IGZyb20gJy4vbWVyY2hhbnQnO1xuXG5leHBvcnQge1xuICAgIExpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzUmVxdWVzdCxcbiAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1Jlc3BvbnNlLFxuICAgIE1lcmNoYW50UmVwb3J0LFxufSBmcm9tICcuL21lcmNoYW50LXJlcG9ydCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlTWV0ZXJlZENvbXBvbmVudFJlcXVlc3QsXG4gICAgTWV0ZXJlZENvbXBvbmVudCxcbiAgICBUaWNrQ29tcG9uZW50VXNhZ2VSZXF1ZXN0LFxufSBmcm9tICcuL21ldGVyZWQtY29tcG9uZW50JztcblxuZXhwb3J0IHtcbiAgICBBZGp1c3RtZW50LFxuICAgIFJldGFpbFBheW1lbnRDYXJkRGV0YWlscyxcbiAgICBDbG9zZVJldGFpbERpc3B1dGVSZXF1ZXN0LFxuICAgIENvbmZpZ3VyZVJldGFpbFBheW1lbnRQcm92aWRlclJlcXVlc3QsXG4gICAgQ29uZmlndXJlUmV0YWlsUGF5bWVudFByb3ZpZGVyUmVzcG9uc2UsXG4gICAgQ29uZmlybVJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIERpc3B1dGUsXG4gICAgRGlzcHV0ZUV2aWRlbmNlLFxuICAgIFN1Ym1pdEV2aWRlbmNlUmVxdWVzdERpc3B1dGVFdmlkZW5jZSxcbiAgICBEaXNwdXRlRXZpZGVuY2VEZXRhaWxzLFxuICAgIEZpbGUsXG4gICAgR2V0UmV0YWlsRGlzcHV0ZVJlcXVlc3QsXG4gICAgR2V0UmV0YWlsRGlzcHV0ZVJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW1lbnRQcm92aWRlclJlcXVlc3QsXG4gICAgR2V0UmV0YWlsUGF5bWVudFByb3ZpZGVyUmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsUGF5bWVudFJlcXVlc3QsXG4gICAgR2V0UmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIEdldFdob2xlc2FsZVByb3ZpZGVyUHVibGljS2V5UmVxdWVzdCxcbiAgICBHZXRXaG9sZXNhbGVQcm92aWRlclB1YmxpY0tleVJlc3BvbnNlLFxuICAgIExpc3RQYXltZW50UmVxdWVzdExpc3RQYXltZW50RmlsdGVycyxcbiAgICBMaXN0UGF5bWVudFJlcXVlc3QsXG4gICAgTGlzdFBheW1lbnRSZXNwb25zZSxcbiAgICBMaXN0UmV0YWlsRGlzcHV0ZXNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxEaXNwdXRlc1Jlc3BvbnNlLFxuICAgIExpc3RSZXRhaWxQYXltZW50c1JlcXVlc3RMaXN0UmV0YWlsUGF5bWVudHNGaWx0ZXJzLFxuICAgIExpc3RSZXRhaWxQYXltZW50c1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbFBheW1lbnRzUmVzcG9uc2UsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1JlcXVlc3RMaXN0UmV0YWlsVHJhbnNhY3Rpb25zRmlsdGVycyxcbiAgICBMaXN0UmV0YWlsVHJhbnNhY3Rpb25zUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsVHJhbnNhY3Rpb25zUmVzcG9uc2UsXG4gICAgUHJlcGFyZVJldGFpbFBheW1lbnRSZXF1ZXN0T3JkZXIsXG4gICAgUGF5bWVudCxcbiAgICBQYXltZW50UGF5bWVudEFsbG9jYXRpb24sXG4gICAgUHJlcGFyZVJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVzcG9uc2UsXG4gICAgUmVmdW5kUmV0YWlsUGF5bWVudFJlcXVlc3QsXG4gICAgUmVmdW5kUmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIFJldGFpbFBheW1lbnQsXG4gICAgUmV0YWlsUGF5bWVudHNFbmFibGVkUmVxdWVzdCxcbiAgICBSZXRhaWxQYXltZW50c0VuYWJsZWRSZXNwb25zZSxcbiAgICBSZXRhaWxSZWZ1bmQsXG4gICAgUmV0YWlsU3RhdHVzUmVxdWVzdCxcbiAgICBSZXRhaWxTdGF0dXNSZXNwb25zZSxcbiAgICBSZXRhaWxUcmFuc2FjdGlvbixcbiAgICBTdWJtaXRFdmlkZW5jZVJlcXVlc3QsXG4gICAgVXBkYXRlUmV0YWlsUGF5bWVudFByb3ZpZGVyUmVxdWVzdCxcbiAgICBSZXRhaWxTdGF0dXNSZXNwb25zZVZlcmlmaWNhdGlvbkVycm9yLFxuICAgIFJldGFpbFN0YXR1c1Jlc3BvbnNlVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRzLFxufSBmcm9tICcuL3BheW1lbnQnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICBEZWxldGVQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgTGlzdFBheW1lbnRDYXJkc1JlcXVlc3QsXG4gICAgTGlzdFBheW1lbnRDYXJkc1Jlc3BvbnNlLFxuICAgIFBheW1lbnRDYXJkLFxuICAgIFNldERlZmF1bHRQYXltZW50TWV0aG9kUmVxdWVzdCxcbiAgICBVcGRhdGVQYXltZW50Q2FyZFJlcXVlc3QsXG59IGZyb20gJy4vcGF5bWVudC1jYXJkJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIERlbGV0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1JlcXVlc3RMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c0ZpbHRlcnMsXG4gICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXF1ZXN0LFxuICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVzcG9uc2UsXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0UHJpY2luZ0VudHJ5LFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RQcmljaW5nRW50cnksXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdFByaWNpbmdFbnRyeSxcbiAgICBQcmljaW5nUGxhblByb2R1Y3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBVcGRhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBVcHNlcnRXaG9sZXNhbGVQcmljaW5nUmVxdWVzdCxcbn0gZnJvbSAnLi9wcmljaW5nLXBsYW4tcHJvZHVjdCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUHJvZHVjdFJlcXVlc3QsXG4gICAgRGVsZXRlUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByb2R1Y3RSZXNwb25zZSxcbiAgICBMaXN0UHJvZHVjdHNSZXF1ZXN0TGlzdFByb2R1Y3RzRmlsdGVycyxcbiAgICBMaXN0UHJvZHVjdHNSZXF1ZXN0LFxuICAgIExpc3RQcm9kdWN0c1Jlc3BvbnNlLFxuICAgIFByb2R1Y3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2VQcm9kdWN0c0VudHJ5LFxuICAgIFVwZGF0ZVByb2R1Y3RSZXF1ZXN0LFxufSBmcm9tICcuL3Byb2R1Y3QnO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWRDcmVkaXQsXG4gICAgTGlzdFB1cmNoYXNlUmVxdWVzdExpc3RQdXJjaGFzZUJpbGxpbmdTdHJhdGVneUZpbHRlcixcbiAgICBMaXN0UHVyY2hhc2VSZXF1ZXN0TGlzdFB1cmNoYXNlRmlsdGVycyxcbiAgICBMaXN0UHVyY2hhc2VJdGVtc1JlcXVlc3RMaXN0UHVyY2hhc2VJdGVtc0ZpbHRlcnMsXG4gICAgTGlzdFB1cmNoYXNlSXRlbXNSZXF1ZXN0LFxuICAgIExpc3RQdXJjaGFzZUl0ZW1zUmVzcG9uc2UsXG4gICAgTGlzdFB1cmNoYXNlUmVxdWVzdCxcbiAgICBMaXN0UHVyY2hhc2VSZXNwb25zZSxcbiAgICBQYXVzZUR1bm5pbmdSZXF1ZXN0LFxuICAgIFB1cmNoYXNlLFxuICAgIFB1cmNoYXNlSXRlbSxcbiAgICBSZXN1bWVEdW5uaW5nUmVxdWVzdCxcbiAgICBSZXRyeVB1cmNoYXNlUmVxdWVzdCxcbiAgICBTdG9wRHVubmluZ1JlcXVlc3QsXG4gICAgVm9pZFB1cmNoYXNlUmVxdWVzdCxcbn0gZnJvbSAnLi9wdXJjaGFzZSc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUmVmdW5kUmVxdWVzdCxcbiAgICBMaXN0UmVmdW5kc1JlcXVlc3QsXG4gICAgTGlzdFJlZnVuZHNSZXNwb25zZSxcbiAgICBSZWZ1bmQsXG59IGZyb20gJy4vcmVmdW5kJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVTYWxlc0NyZWRpdE5vdGVSZXF1ZXN0LFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXF1ZXN0TGlzdFNhbGVzQ3JlZGl0Tm90ZUZpbHRlcnMsXG4gICAgTGlzdFNhbGVzQ3JlZGl0Tm90ZVJlcXVlc3QsXG4gICAgTGlzdFNhbGVzQ3JlZGl0Tm90ZVJlc3BvbnNlLFxuICAgIFNhbGVzQ3JlZGl0Tm90ZSxcbn0gZnJvbSAnLi9zYWxlcy1jcmVkaXQtbm90ZSc7XG5cbmV4cG9ydCB7XG4gICAgR2V0U2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBHZXRTYWxlc0ludm9pY2VSZXNwb25zZSxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVxdWVzdExpc3RTYWxlc0ludm9pY2VGaWx0ZXJzLFxuICAgIExpc3RTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RTYWxlc0ludm9pY2VSZXNwb25zZSxcbiAgICBQb3N0U2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBTYWxlc0ludm9pY2UsXG4gICAgU2VuZFNhbGVzSW52b2ljZUVtYWlsUmVxdWVzdCxcbiAgICBTZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsUmVxdWVzdCxcbn0gZnJvbSAnLi9zYWxlcy1pbnZvaWNlJztcblxuZXhwb3J0IHtcbiAgICBTdWJzY3JpYmVWYWxpZGF0aW9uLFxufSBmcm9tICcuL3N1YnNjcmliZS12YWxpZGF0aW9uJztcblxuZXhwb3J0IHtcbiAgICBBbGlnbm1lbnRTdWJzY3JpcHRpb24sXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlLFxuICAgIENoYW5nZUN1c3RvbVVuaXRQcmljZVJlcXVlc3QsXG4gICAgQ2hhbmdlRnJlcXVlbmN5UmVxdWVzdCxcbiAgICBDaGFuZ2VSZW5ld2FsRGF0ZVJlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdCxcbiAgICBDcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBDcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgUmV2ZXJzZVN1YnNjcmlwdGlvblJlcXVlc3QsXG4gICAgU2V0UmVuZXdhbFN0YXJ0UmVxdWVzdCxcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdFNrdXNFbnRyeSxcbiAgICBTdWJzY3JpcHRpb24sXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3RTdWJzY3JpcHRpb25JdGVtLFxuICAgIFZhbGlkYXRlUmVzcG9uc2UsXG59IGZyb20gJy4vc3Vic2NyaXB0aW9uJztcblxuZXhwb3J0IHtcbiAgICBDb250cmFjdERvY3VtZW50LFxuICAgIERlbGV0ZUNvbnRyYWN0RG9jdW1lbnRSZXF1ZXN0LFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1JlcXVlc3QsXG4gICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVzcG9uc2UsXG59IGZyb20gJy4vY29udHJhY3QtZG9jdW1lbnQnO1xuXG5leHBvcnQge1xuICAgIEdldFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVzcG9uc2UsXG4gICAgUmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uLFxuICAgIFVwc2VydFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG59IGZyb20gJy4vcmV0YWlsLWN1c3RvbWVyLWNvbmZpZ3VyYXRpb24nO1xuXG5leHBvcnQge1xuICAgIEFkZENyZWRpdFJlcXVlc3QsXG4gICAgQ3JlZGl0QmFsYW5jZSxcbiAgICBHZXRCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRCYWxhbmNlUmVzcG9uc2UsXG59IGZyb20gJy4vY3JlZGl0JztcblxuZXhwb3J0IHtcbiAgICBSZWN1cnJpbmdJbnZvaWNlQ3VzdG9tZXJBZGRyZXNzLFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnNEYXRlRmlsdGVyLFxuICAgIERlbGV0ZVJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnNEZXRhaWxlZEludGVydmFsLFxuICAgIEdldFJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnMsXG4gICAgTGlzdFJlY3VycmluZ0ludm9pY2VzUmVxdWVzdCxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNSZXNwb25zZSxcbiAgICBSZWN1cnJpbmdJbnZvaWNlLFxuICAgIFJlY3VycmluZ0ludm9pY2VCdW5kbGUsXG4gICAgUmVjdXJyaW5nSW52b2ljZUl0ZW0sXG4gICAgUmVjdXJyaW5nSW52b2ljZUxpbmVJdGVtLFxuICAgIFVwZGF0ZVJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxufSBmcm9tICcuL3JlY3VycmluZy1pbnZvaWNlJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxuICAgIEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG4gICAgTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bixcbn0gZnJvbSAnLi9yZXBvcnQtcnVuJztcblxuZXhwb3J0IHtcbiAgICBBY2Nlc3MsXG59IGZyb20gJy4vYW5ub3RhdGlvbnMnO1xuXG5leHBvcnQge1xuICAgIExpc3RTdWJzY3JpcHRpb25SZWxhdGlvbnNoaXBzUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25SZWxhdGlvbnNoaXBzUmVxdWVzdCxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvblJlbGF0aW9uc2hpcHNSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmVsYXRpb25zaGlwc1JlcXVlc3QsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJlbGF0aW9uc2hpcHNSZXNwb25zZSxcbiAgICBSZXBsYWNlU3Vic2NyaXB0aW9uUmVsYXRpb25zaGlwc1JlcXVlc3QsXG4gICAgUmVwbGFjZVN1YnNjcmlwdGlvblJlbGF0aW9uc2hpcHNSZXNwb25zZSxcbiAgICBTdWJzY3JpcHRpb25SZWxhdGlvbnNoaXAsXG59IGZyb20gJy4vc3Vic2NyaXB0aW9uLXJlbGF0aW9uc2hpcCc7XG5cbmV4cG9ydCB7XG4gICAgRGVsZXRlUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2VuZXJhdGVCaWxsYWJsZUl0ZW1zQ1NWUmVxdWVzdCxcbiAgICBHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXNwb25zZSxcbiAgICBHZW5lcmF0ZVZlbmRvclJlcG9ydFJlcXVlc3QsXG4gICAgR2VuZXJhdGVWZW5kb3JSZXBvcnRSZXNwb25zZSxcbiAgICBHZXRNdWx0aUJ1bmRsZVJldGFpbFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXNwb25zZSxcbiAgICBHZXRNdWx0aVJldGFpbFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpUmV0YWlsUHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpV2hvbGVzYWxlQ29zdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlXaG9sZXNhbGVDb3N0UmVzcG9uc2UsXG4gICAgR2V0UHVyY2hhc2VDb3N0UmVxdWVzdCxcbiAgICBHZXRQdXJjaGFzZUNvc3RSZXNwb25zZSxcbiAgICBHZXRSZXZlbnVlU3RhdHNSZXF1ZXN0LFxuICAgIEdldFJldmVudWVTdGF0c1Jlc3BvbnNlLFxuICAgIEdldFN0YXRpc3RpY3NSZXF1ZXN0LFxuICAgIEdldFN0YXRpc3RpY3NSZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVxdWVzdEdldFdob2xlc2FsZUNvbXBhcmlzb25GaWx0ZXJzLFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXF1ZXN0LFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzcG9uc2VHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzdWx0LFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1Jlc3BvbnNlUHJpY2VzRW50cnksXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3RQcmljaW5nRW50cnksXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVzcG9uc2VQcm9kdWN0UHJpY2VzRW50cnksXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlUHJvZHVjdFByaWNlc0VudHJ5LFxuICAgIFNldFdob2xlc2FsZVByb2R1Y3RTdHJhdGVneVJlcXVlc3QsXG4gICAgU2V0V2hvbGVzYWxlUHJvZHVjdFZvbHVtZUNvbW1pdG1lbnRSZXF1ZXN0LFxuICAgIFN0YXJ0UmV2UmVjVGVtcGxhdGVCYWNrZmlsbFJlcXVlc3QsXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vYXBpJztcblxuIl19
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsb0NBQW9DO0FBQ3BDLE9BQU8sRUFDSCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN4QixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsVUFBVSxHQUNiLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsR0FBRyxHQUNOLE1BQU0sT0FBTyxDQUFDO0FBRWYsT0FBTyxFQUNILFNBQVMsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzVCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILGFBQWEsRUFDYixjQUFjLEVBQ2Qsd0JBQXdCLEdBQzNCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNILGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixJQUFJLEVBQ0osK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4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QyxvQ0FBb0MsRUFDcEMscUNBQXFDLEVBQ3JDLHVDQUF1QyxFQUN2Qyx3Q0FBd0MsRUFDeEMsd0JBQXdCLEdBQzNCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUNILDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsZ0NBQWdDLEVBQ2hDLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLG1DQUFtQyxFQUNuQyw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiwwREFBMEQsRUFDMUQsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5QiwwREFBMEQsRUFDMUQsOENBQThDLEVBQzlDLHNDQUFzQyxFQUN0QywrQ0FBK0MsRUFDL0MsZ0RBQWdELEVBQ2hELGtDQUFrQyxFQUNsQywwQ0FBMEMsRUFDMUMsa0NBQWtDLEVBQ2xDLDBCQUEwQixHQUM3QixNQUFNLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cyBJbmRleC5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuZXhwb3J0IHtcbiAgICBFeHBvcnRSZXNwb25zZSxcbiAgICBQYWdlZFJlcXVlc3RPcHRpb25zLFxuICAgIFBhZ2VkUmVzcG9uc2VNZXRhZGF0YSxcbn0gZnJvbSAnLi9jb21tb24nO1xuXG5leHBvcnQge1xuICAgIENvbW1pdG1lbnQsXG59IGZyb20gJy4vY29tbWl0bWVudCc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZEZlZSxcbiAgICBGZWUsXG59IGZyb20gJy4vZmVlJztcblxuZXhwb3J0IHtcbiAgICBGaWVsZE1hc2ssXG59IGZyb20gJy4vZmllbGQtbWFzayc7XG5cbmV4cG9ydCB7XG4gICAgQ29tcG9uZW50UHJpY2luZyxcbiAgICBDcmVhdGVQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5SZXNwb25zZSxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUmVzcG9uc2UsXG4gICAgUHJpY2luZ1BsYW4sXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0UHJpY2luZyxcbiAgICBQcm9kdWN0UHJpY2luZ1J1bGUsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUmVzcG9uc2UsXG59IGZyb20gJy4vcHJpY2luZy1wbGFuJztcblxuZXhwb3J0IHtcbiAgICBQcm9kdWN0UHJpY2VzLFxuICAgIFByb2R1Y3RQcmljaW5nLFxuICAgIFdob2xlc2FsZUNvc3RJdGVtUmVxdWVzdCxcbn0gZnJvbSAnLi9wcm9kdWN0LXByaWNpbmcnO1xuXG5leHBvcnQge1xuICAgIEJpbGxJdGVtUmVxdWVzdCxcbiAgICBCaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3QsXG4gICAgQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZSxcbiAgICBCaWxsYWJsZUl0ZW0sXG4gICAgQ2FuQmlsbEl0ZW1SZXF1ZXN0LFxuICAgIENyZWF0ZVVzYWdlUmVxdWVzdCxcbiAgICBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3MsXG4gICAgRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdCxcbiAgICBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgIEV4cG9ydFN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgIEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlLFxuICAgIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgSXRlbSxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdCxcbiAgICBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlLFxuICAgIFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXIsXG4gICAgVW5leHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxufSBmcm9tICcuL2JpbGxhYmxlLWl0ZW0nO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWREaXNjb3VudCxcbn0gZnJvbSAnLi9hcHBsaWVkLWRpc2NvdW50JztcblxuZXhwb3J0IHtcbiAgICBCdW5kbGUsXG4gICAgQnVuZGxlSXRlbSxcbiAgICBCdW5kbGVQcmljaW5nLFxuICAgIEdldE11bHRpQnVuZGxlUmVzcG9uc2VCdW5kbGVzRW50cnksXG4gICAgTGlzdEJ1bmRsZXNSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRNdWx0aUJ1bmRsZVJlcXVlc3QsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXNwb25zZSxcbiAgICBMaXN0QnVuZGxlc1JlcXVlc3QsXG4gICAgTGlzdEJ1bmRsZXNSZXNwb25zZSxcbiAgICBCdW5kbGVJdGVtUHJpY2UsXG4gICAgQnVuZGxlUHJpY2luZ1ByaWNlQW5kRnJlcXVlbmN5LFxuICAgIFVwc2VydEJ1bmRsZVJlcXVlc3QsXG59IGZyb20gJy4vYnVuZGxlJztcblxuZXhwb3J0IHtcbiAgICBDb250cmFjdCxcbiAgICBHZXRNdWx0aUNvbnRyYWN0c1Jlc3BvbnNlQ29udHJhY3RzRW50cnksXG4gICAgQ3JlYXRlQ29udHJhY3RSZXF1ZXN0LFxuICAgIENyZWF0ZUNvbnRyYWN0UmVzcG9uc2UsXG4gICAgR2V0Q29udHJhY3RSZXF1ZXN0LFxuICAgIEdldENvbnRyYWN0UmVzcG9uc2UsXG4gICAgR2V0TWVyY2hhbnRXaG9sZXNhbGVDdXJyZW5jeVJlcXVlc3QsXG4gICAgR2V0TWVyY2hhbnRXaG9sZXNhbGVDdXJyZW5jeVJlc3BvbnNlLFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVxdWVzdCxcbiAgICBHZXRNdWx0aUNvbnRyYWN0c1Jlc3BvbnNlLFxuICAgIExpc3RDb250cmFjdHNSZXF1ZXN0LFxuICAgIExpc3RDb250cmFjdHNSZXNwb25zZSxcbiAgICBVcGRhdGVDb250cmFjdFJlcXVlc3RNdXRhdGlvbixcbiAgICBSZXNldENvbnRyYWN0UHJpY2luZ1JlcXVlc3QsXG4gICAgVXBkYXRlQ29udHJhY3RSZXF1ZXN0LFxuICAgIFVwZGF0ZUNvbnRyYWN0UmVzcG9uc2UsXG4gICAgVXBkYXRlQ29udHJhY3RTdWJzY3JpcHRpb25SZXF1ZXN0LFxufSBmcm9tICcuL2NvbnRyYWN0JztcblxuZXhwb3J0IHtcbiAgICBDdXN0b21lclN1bW1hcnksXG4gICAgR2V0TXVsdGlDdXN0b21lclN1bW1hcmllc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlDdXN0b21lclN1bW1hcmllc1Jlc3BvbnNlLFxufSBmcm9tICcuL2N1c3RvbWVyLXN1bW1hcnknO1xuXG5leHBvcnQge1xuICAgIEJhbmtBY2NvdW50LFxuICAgIENyZWF0ZVN0cmlwZUV4dGVybmFsQWNjb3VudFJlcXVlc3QsXG4gICAgRGVsZXRlQmFua0FjY291bnRSZXF1ZXN0LFxuICAgIExpc3RCYW5rQWNjb3VudHNSZXF1ZXN0LFxuICAgIExpc3RCYW5rQWNjb3VudHNSZXNwb25zZSxcbiAgICBTZXREZWZhdWx0QmFua0FjY291bnRSZXF1ZXN0LFxufSBmcm9tICcuL2V4dGVybmFsLWFjY291bnQnO1xuXG5leHBvcnQge1xuICAgIFByb2R1Y3RTdW1tYXJ5RGlzY291bnQsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvblJlcXVlc3RGaWx0ZXJzLFxuICAgIEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlcXVlc3QsXG4gICAgR2V0UHJvZHVjdFN1bW1hcmllc1RvdGFsUmVzcG9uc2UsXG4gICAgTGlzdFByb2R1Y3RTdW1tYXJpZXNSZXF1ZXN0LFxuICAgIExpc3RQcm9kdWN0U3VtbWFyaWVzUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvbkJ5R3JvdXBSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlTS1VSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uUmVxdWVzdCxcbiAgICBQcmljaW5nLFxuICAgIFByb2R1Y3RTdW1tYXJ5LFxuICAgIFJldGVudGlvbk1ldHJpY3MsXG4gICAgUHJpY2luZ1J1bGUsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvbkJ5R3JvdXBSZXNwb25zZVN1YnNjcmlwdGlvblJldGVudGlvbkJ5R3JvdXAsXG59IGZyb20gJy4vcHJvZHVjdC1zdW1tYXJ5JztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVEaXNjb3VudFJlcXVlc3QsXG4gICAgRGlzY291bnQsXG4gICAgRXhwaXJlRGlzY291bnRSZXF1ZXN0LFxuICAgIExpc3REaXNjb3VudHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0RGlzY291bnRzUmVxdWVzdCxcbiAgICBMaXN0RGlzY291bnRzUmVzcG9uc2UsXG4gICAgVXBkYXRlRGlzY291bnRSZXF1ZXN0LFxufSBmcm9tICcuL2Rpc2NvdW50JztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkVGF4UmF0ZSxcbn0gZnJvbSAnLi9hcHBsaWVkLXRheC1yYXRlJztcblxuZXhwb3J0IHtcbiAgICBBcmNoaXZlVGF4UmVxdWVzdCxcbiAgICBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdCxcbiAgICBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVzcG9uc2UsXG4gICAgQ2FsY3VsYXRlVGF4UmVxdWVzdCxcbiAgICBDYWxjdWxhdGVUYXhSZXNwb25zZSxcbiAgICBDcmVhdGVUYXhSZXF1ZXN0LFxuICAgIExpc3RUYXhSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRNdWx0aVRheFJlcXVlc3QsXG4gICAgR2V0TXVsdGlUYXhSZXNwb25zZSxcbiAgICBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdExpbmVJdGVtLFxuICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZUxpbmVJdGVtVGF4ZXMsXG4gICAgTGlzdFRheFJlcXVlc3QsXG4gICAgTGlzdFRheFJlc3BvbnNlLFxuICAgIFRheFJhdGUsXG4gICAgVXBkYXRlVGF4UmVxdWVzdCxcbn0gZnJvbSAnLi90YXgtcmF0ZSc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZEJ1bmRsZSxcbiAgICBBcHBsaWVkQnVuZGxlSXRlbSxcbn0gZnJvbSAnLi9hcHBsaWVkLWJ1bmRsZSc7XG5cbmV4cG9ydCB7XG4gICAgQWRkQnVuZGxlUmVxdWVzdCxcbiAgICBBZGRCdW5kbGVSZXNwb25zZSxcbiAgICBBZGRMaW5lSXRlbVJlcXVlc3QsXG4gICAgQWRkTGluZUl0ZW1SZXNwb25zZSxcbiAgICBDaGFyZ2VJbnZvaWNlUmVxdWVzdCxcbiAgICBDcmVhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBDcmVhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgQ3JlYXRlUGF5bWVudExpbmtSZXF1ZXN0LFxuICAgIENyZWF0ZVBheW1lbnRMaW5rUmVzcG9uc2UsXG4gICAgSW52b2ljZUN1c3RvbWVyQWRkcmVzcyxcbiAgICBMaXN0SW52b2ljZXNSZXF1ZXN0RmlsdGVyc0RhdGVGaWx0ZXIsXG4gICAgRGVsZXRlSW52b2ljZVJlcXVlc3QsXG4gICAgRGVsZXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIERlbGV0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgRHVwbGljYXRlSW52b2ljZVJlcXVlc3QsXG4gICAgRHVwbGljYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEludm9pY2VSZXF1ZXN0LFxuICAgIEdldEludm9pY2VSZXNwb25zZSxcbiAgICBHZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3UmVxdWVzdCxcbiAgICBHZXRVcGNvbWluZ0ludm9pY2VQcmV2aWV3UmVzcG9uc2UsXG4gICAgSW52b2ljZSxcbiAgICBJbnZvaWNlSXRlbSxcbiAgICBMaXN0SW52b2ljZXNSZXF1ZXN0LFxuICAgIExpc3RJbnZvaWNlc1Jlc3BvbnNlLFxuICAgIE5vdGUsXG4gICAgUGF5SW52b2ljZVJlcXVlc3QsXG4gICAgUGF5bWVudExpbmtJdGVtLFxuICAgIFJlbW92ZUJ1bmRsZVJlcXVlc3QsXG4gICAgUmVtb3ZlQnVuZGxlUmVzcG9uc2UsXG4gICAgU2VuZEludm9pY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZUJ1bmRsZVJlcXVlc3QsXG4gICAgVXBkYXRlQnVuZGxlUmVzcG9uc2UsXG4gICAgVXBkYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdCxcbiAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZSxcbiAgICBVcGRhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBVcGRhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgVXBkYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIFVwZGF0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgVm9pZEludm9pY2VSZXF1ZXN0LFxufSBmcm9tICcuL2ludm9pY2UnO1xuXG5leHBvcnQge1xuICAgIEFjY291bnRCYWxhbmNlLFxuICAgIEJhbGFuY2UsXG4gICAgQmFsYW5jZUFtb3VudCxcbn0gZnJvbSAnLi9iYWxhbmNlJztcblxuZXhwb3J0IHtcbiAgICBEYXRlUmFuZ2UsXG59IGZyb20gJy4vZGF0ZS1yYW5nZSc7XG5cbmV4cG9ydCB7XG4gICAgTGlzdFBheW91dHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0UGF5b3V0c1JlcXVlc3QsXG4gICAgTGlzdFBheW91dHNSZXNwb25zZSxcbiAgICBQYXlvdXQsXG4gICAgUmVjb25jaWxlUGF5b3V0UmVxdWVzdCxcbiAgICBSZWNvbmNpbGVQYXlvdXRSZXNwb25zZSxcbiAgICBSZXRhaWxQYXlvdXQsXG59IGZyb20gJy4vcGF5b3V0JztcblxuZXhwb3J0IHtcbiAgICBDYW5jZWxSZXRhaWxCaWxsaW5nUmVxdWVzdCxcbiAgICBDaGFyZ2VTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIENvbm5lY3RTdHJpcGVBY2NvdW50UmVxdWVzdCxcbiAgICBDb25uZWN0U3RyaXBlQWNjb3VudFJlc3BvbnNlLFxuICAgIENyZWF0ZU1lcmNoYW50UmVxdWVzdCxcbiAgICBEZWZhdWx0Q3VzdG9tZXJDb25maWd1cmF0aW9uLFxuICAgIEdldE1lcmNoYW50UmVxdWVzdCxcbiAgICBHZXRNZXJjaGFudFJlc3BvbnNlLFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXF1ZXN0LFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXNwb25zZSxcbiAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXF1ZXN0LFxuICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlc3BvbnNlLFxuICAgIEdldFBheW91dFN1bW1hcnlSZXF1ZXN0LFxuICAgIEdldFBheW91dFN1bW1hcnlSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxCYWxhbmNlUmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsUGF5b3V0UmVxdWVzdCxcbiAgICBHZXRSZXRhaWxQYXlvdXRSZXNwb25zZSxcbiAgICBDcmVhdGVNZXJjaGFudFJlcXVlc3RJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzLFxuICAgIFVwZGF0ZU1lcmNoYW50UmVxdWVzdEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHMsXG4gICAgTGlzdFJldGFpbFBheW91dHNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxQYXlvdXRzUmVzcG9uc2UsXG4gICAgTWVyY2hhbnQsXG4gICAgUmV0YWlsQ29uZmlndXJhdGlvbixcbiAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2VSZXRhaWxDb25maWd1cmF0aW9uc0VudHJ5LFxuICAgIFNlYXJjaE1lcmNoYW50c1JlcXVlc3QsXG4gICAgU2VhcmNoTWVyY2hhbnRzUmVzcG9uc2UsXG4gICAgU2V0QXV0b0NoYXJnZUludm9pY2VzUmVxdWVzdCxcbiAgICBTZXRBdXRvUG9zdEludm9pY2VzUmVxdWVzdCxcbiAgICBTZXREZWZhdWx0UGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIFNldEhhc0FsdGVybmF0aXZlUGF5bWVudE1ldGhvZFJlcXVlc3QsXG4gICAgU2V0SW5jbHVkZUluRmluYW5jaWFsUmVjb3Jkc1JlcXVlc3QsXG4gICAgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0LFxuICAgIFVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgIFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0LFxufSBmcm9tICcuL21lcmNoYW50JztcblxuZXhwb3J0IHtcbiAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1JlcXVlc3QsXG4gICAgTGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNSZXNwb25zZSxcbiAgICBNZXJjaGFudFJlcG9ydCxcbn0gZnJvbSAnLi9tZXJjaGFudC1yZXBvcnQnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZU1ldGVyZWRDb21wb25lbnRSZXF1ZXN0LFxuICAgIE1ldGVyZWRDb21wb25lbnQsXG4gICAgVGlja0NvbXBvbmVudFVzYWdlUmVxdWVzdCxcbn0gZnJvbSAnLi9tZXRlcmVkLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB7XG4gICAgQWRqdXN0bWVudCxcbiAgICBSZXRhaWxQYXltZW50Q2FyZERldGFpbHMsXG4gICAgQ2xvc2VSZXRhaWxEaXNwdXRlUmVxdWVzdCxcbiAgICBDb25maWd1cmVSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIENvbmZpZ3VyZVJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIENvbmZpcm1SZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBEaXNwdXRlLFxuICAgIERpc3B1dGVFdmlkZW5jZSxcbiAgICBTdWJtaXRFdmlkZW5jZVJlcXVlc3REaXNwdXRlRXZpZGVuY2UsXG4gICAgRGlzcHV0ZUV2aWRlbmNlRGV0YWlscyxcbiAgICBGaWxlLFxuICAgIEdldFJldGFpbERpc3B1dGVSZXF1ZXN0LFxuICAgIEdldFJldGFpbERpc3B1dGVSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVQcm92aWRlclB1YmxpY0tleVJlcXVlc3QsXG4gICAgR2V0V2hvbGVzYWxlUHJvdmlkZXJQdWJsaWNLZXlSZXNwb25zZSxcbiAgICBMaXN0UGF5bWVudFJlcXVlc3RMaXN0UGF5bWVudEZpbHRlcnMsXG4gICAgTGlzdFBheW1lbnRSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50UmVzcG9uc2UsXG4gICAgTGlzdFJldGFpbERpc3B1dGVzUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsRGlzcHV0ZXNSZXNwb25zZSxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0TGlzdFJldGFpbFBheW1lbnRzRmlsdGVycyxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxQYXltZW50c1Jlc3BvbnNlLFxuICAgIExpc3RSZXRhaWxUcmFuc2FjdGlvbnNSZXF1ZXN0TGlzdFJldGFpbFRyYW5zYWN0aW9uc0ZpbHRlcnMsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1Jlc3BvbnNlLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdE9yZGVyLFxuICAgIFBheW1lbnQsXG4gICAgUGF5bWVudFBheW1lbnRBbGxvY2F0aW9uLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBQcmVwYXJlUmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIFJlZnVuZFJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIFJlZnVuZFJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBSZXRhaWxQYXltZW50LFxuICAgIFJldGFpbFBheW1lbnRzRW5hYmxlZFJlcXVlc3QsXG4gICAgUmV0YWlsUGF5bWVudHNFbmFibGVkUmVzcG9uc2UsXG4gICAgUmV0YWlsUmVmdW5kLFxuICAgIFJldGFpbFN0YXR1c1JlcXVlc3QsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2UsXG4gICAgUmV0YWlsVHJhbnNhY3Rpb24sXG4gICAgU3VibWl0RXZpZGVuY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZVJldGFpbFBheW1lbnRQcm92aWRlclJlcXVlc3QsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2VWZXJpZmljYXRpb25FcnJvcixcbiAgICBSZXRhaWxTdGF0dXNSZXNwb25zZVZlcmlmaWNhdGlvblJlcXVpcmVtZW50cyxcbn0gZnJvbSAnLi9wYXltZW50JztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgRGVsZXRlUGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50Q2FyZHNSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50Q2FyZHNSZXNwb25zZSxcbiAgICBQYXltZW50Q2FyZCxcbiAgICBTZXREZWZhdWx0UGF5bWVudE1ldGhvZFJlcXVlc3QsXG4gICAgVXBkYXRlUGF5bWVudENhcmRSZXF1ZXN0LFxufSBmcm9tICcuL3BheW1lbnQtY2FyZCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBEZWxldGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXF1ZXN0TGlzdFByaWNpbmdQbGFuUHJvZHVjdHNGaWx0ZXJzLFxuICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1Jlc3BvbnNlLFxuICAgIFByaWNpbmdQbGFuUHJvZHVjdFByaWNpbmdFbnRyeSxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0UHJpY2luZ0VudHJ5LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RQcmljaW5nRW50cnksXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgVXBzZXJ0V2hvbGVzYWxlUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vcHJpY2luZy1wbGFuLXByb2R1Y3QnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIERlbGV0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdExpc3RQcm9kdWN0c0ZpbHRlcnMsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJvZHVjdHNSZXNwb25zZSxcbiAgICBQcm9kdWN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlc3BvbnNlUHJvZHVjdHNFbnRyeSxcbiAgICBVcGRhdGVQcm9kdWN0UmVxdWVzdCxcbn0gZnJvbSAnLi9wcm9kdWN0JztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkQ3JlZGl0LFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3RMaXN0UHVyY2hhc2VCaWxsaW5nU3RyYXRlZ3lGaWx0ZXIsXG4gICAgTGlzdFB1cmNoYXNlUmVxdWVzdExpc3RQdXJjaGFzZUZpbHRlcnMsXG4gICAgTGlzdFB1cmNoYXNlSXRlbXNSZXF1ZXN0TGlzdFB1cmNoYXNlSXRlbXNGaWx0ZXJzLFxuICAgIExpc3RQdXJjaGFzZUl0ZW1zUmVxdWVzdCxcbiAgICBMaXN0UHVyY2hhc2VJdGVtc1Jlc3BvbnNlLFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3QsXG4gICAgTGlzdFB1cmNoYXNlUmVzcG9uc2UsXG4gICAgUGF1c2VEdW5uaW5nUmVxdWVzdCxcbiAgICBQdXJjaGFzZSxcbiAgICBQdXJjaGFzZUl0ZW0sXG4gICAgUmVzdW1lRHVubmluZ1JlcXVlc3QsXG4gICAgUmV0cnlQdXJjaGFzZVJlcXVlc3QsXG4gICAgU3RvcER1bm5pbmdSZXF1ZXN0LFxuICAgIFZvaWRQdXJjaGFzZVJlcXVlc3QsXG59IGZyb20gJy4vcHVyY2hhc2UnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVJlZnVuZFJlcXVlc3QsXG4gICAgTGlzdFJlZnVuZHNSZXF1ZXN0LFxuICAgIExpc3RSZWZ1bmRzUmVzcG9uc2UsXG4gICAgUmVmdW5kLFxufSBmcm9tICcuL3JlZnVuZCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlU2FsZXNDcmVkaXROb3RlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNDcmVkaXROb3RlUmVxdWVzdExpc3RTYWxlc0NyZWRpdE5vdGVGaWx0ZXJzLFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXF1ZXN0LFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXNwb25zZSxcbiAgICBTYWxlc0NyZWRpdE5vdGUsXG59IGZyb20gJy4vc2FsZXMtY3JlZGl0LW5vdGUnO1xuXG5leHBvcnQge1xuICAgIEdldFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgR2V0U2FsZXNJbnZvaWNlUmVzcG9uc2UsXG4gICAgTGlzdFNhbGVzSW52b2ljZVJlcXVlc3RMaXN0U2FsZXNJbnZvaWNlRmlsdGVycyxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVzcG9uc2UsXG4gICAgUG9zdFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgU2FsZXNJbnZvaWNlLFxuICAgIFNlbmRTYWxlc0ludm9pY2VFbWFpbFJlcXVlc3QsXG4gICAgU2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3QsXG59IGZyb20gJy4vc2FsZXMtaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgU3Vic2NyaWJlVmFsaWRhdGlvbixcbn0gZnJvbSAnLi9zdWJzY3JpYmUtdmFsaWRhdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQWxpZ25tZW50U3Vic2NyaXB0aW9uLFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBDaGFuZ2VDdXN0b21Vbml0UHJpY2VSZXF1ZXN0LFxuICAgIENoYW5nZUZyZXF1ZW5jeVJlcXVlc3QsXG4gICAgQ2hhbmdlUmVuZXdhbERhdGVSZXF1ZXN0LFxuICAgIENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlLFxuICAgIFJldmVyc2VTdWJzY3JpcHRpb25SZXF1ZXN0LFxuICAgIFNldEF1dG9CaWxsYWJsZVJlcXVlc3QsXG4gICAgU2V0UmVuZXdhbFN0YXJ0UmVxdWVzdCxcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdFNrdXNFbnRyeSxcbiAgICBTdWJzY3JpcHRpb24sXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3RTdWJzY3JpcHRpb25JdGVtLFxuICAgIFZhbGlkYXRlUmVzcG9uc2UsXG59IGZyb20gJy4vc3Vic2NyaXB0aW9uJztcblxuZXhwb3J0IHtcbiAgICBDb250cmFjdERvY3VtZW50LFxuICAgIERlbGV0ZUNvbnRyYWN0RG9jdW1lbnRSZXF1ZXN0LFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1JlcXVlc3QsXG4gICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVzcG9uc2UsXG59IGZyb20gJy4vY29udHJhY3QtZG9jdW1lbnQnO1xuXG5leHBvcnQge1xuICAgIEdldFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVzcG9uc2UsXG4gICAgUmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uLFxuICAgIFVwc2VydFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG59IGZyb20gJy4vcmV0YWlsLWN1c3RvbWVyLWNvbmZpZ3VyYXRpb24nO1xuXG5leHBvcnQge1xuICAgIEFkZENyZWRpdFJlcXVlc3QsXG4gICAgQ3JlZGl0QmFsYW5jZSxcbiAgICBHZXRCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRCYWxhbmNlUmVzcG9uc2UsXG59IGZyb20gJy4vY3JlZGl0JztcblxuZXhwb3J0IHtcbiAgICBSZWN1cnJpbmdJbnZvaWNlQ3VzdG9tZXJBZGRyZXNzLFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnNEYXRlRmlsdGVyLFxuICAgIERlbGV0ZVJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnNEZXRhaWxlZEludGVydmFsLFxuICAgIEdldFJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnMsXG4gICAgTGlzdFJlY3VycmluZ0ludm9pY2VzUmVxdWVzdCxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNSZXNwb25zZSxcbiAgICBSZWN1cnJpbmdJbnZvaWNlLFxuICAgIFJlY3VycmluZ0ludm9pY2VCdW5kbGUsXG4gICAgUmVjdXJyaW5nSW52b2ljZUl0ZW0sXG4gICAgUmVjdXJyaW5nSW52b2ljZUxpbmVJdGVtLFxuICAgIFVwZGF0ZVJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxufSBmcm9tICcuL3JlY3VycmluZy1pbnZvaWNlJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxuICAgIEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG4gICAgTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bixcbn0gZnJvbSAnLi9yZXBvcnQtcnVuJztcblxuZXhwb3J0IHtcbiAgICBBY2Nlc3MsXG59IGZyb20gJy4vYW5ub3RhdGlvbnMnO1xuXG5leHBvcnQge1xuICAgIExpc3RTdWJzY3JpcHRpb25SZWxhdGlvbnNoaXBzUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25SZWxhdGlvbnNoaXBzUmVxdWVzdCxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvblJlbGF0aW9uc2hpcHNSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmVsYXRpb25zaGlwc1JlcXVlc3QsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJlbGF0aW9uc2hpcHNSZXNwb25zZSxcbiAgICBSZXBsYWNlU3Vic2NyaXB0aW9uUmVsYXRpb25zaGlwc1JlcXVlc3QsXG4gICAgUmVwbGFjZVN1YnNjcmlwdGlvblJlbGF0aW9uc2hpcHNSZXNwb25zZSxcbiAgICBTdWJzY3JpcHRpb25SZWxhdGlvbnNoaXAsXG59IGZyb20gJy4vc3Vic2NyaXB0aW9uLXJlbGF0aW9uc2hpcCc7XG5cbmV4cG9ydCB7XG4gICAgRGVsZXRlUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2VuZXJhdGVCaWxsYWJsZUl0ZW1zQ1NWUmVxdWVzdCxcbiAgICBHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXNwb25zZSxcbiAgICBHZW5lcmF0ZVZlbmRvclJlcG9ydFJlcXVlc3QsXG4gICAgR2VuZXJhdGVWZW5kb3JSZXBvcnRSZXNwb25zZSxcbiAgICBHZXRNdWx0aUJ1bmRsZVJldGFpbFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXNwb25zZSxcbiAgICBHZXRNdWx0aVJldGFpbFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpUmV0YWlsUHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpV2hvbGVzYWxlQ29zdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlXaG9sZXNhbGVDb3N0UmVzcG9uc2UsXG4gICAgR2V0UHVyY2hhc2VDb3N0UmVxdWVzdCxcbiAgICBHZXRQdXJjaGFzZUNvc3RSZXNwb25zZSxcbiAgICBHZXRSZXZlbnVlU3RhdHNSZXF1ZXN0LFxuICAgIEdldFJldmVudWVTdGF0c1Jlc3BvbnNlLFxuICAgIEdldFN0YXRpc3RpY3NSZXF1ZXN0LFxuICAgIEdldFN0YXRpc3RpY3NSZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVxdWVzdEdldFdob2xlc2FsZUNvbXBhcmlzb25GaWx0ZXJzLFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXF1ZXN0LFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzcG9uc2VHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzdWx0LFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1Jlc3BvbnNlUHJpY2VzRW50cnksXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3RQcmljaW5nRW50cnksXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVzcG9uc2VQcm9kdWN0UHJpY2VzRW50cnksXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlUHJvZHVjdFByaWNlc0VudHJ5LFxuICAgIFNldFdob2xlc2FsZVByb2R1Y3RTdHJhdGVneVJlcXVlc3QsXG4gICAgU2V0V2hvbGVzYWxlUHJvZHVjdFZvbHVtZUNvbW1pdG1lbnRSZXF1ZXN0LFxuICAgIFN0YXJ0UmV2UmVjVGVtcGxhdGVCYWNrZmlsbFJlcXVlc3QsXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vYXBpJztcblxuIl19
|