angular-three-rapier 2.2.1 → 2.3.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.
|
@@ -74,8 +74,8 @@ export class NgtrInstancedRigidBodies {
|
|
|
74
74
|
if (colliders === false)
|
|
75
75
|
return [];
|
|
76
76
|
const physicsColliders = this.physics.colliders();
|
|
77
|
-
// if physics colliders is false explicitly, disable auto colliders for this object entirely.
|
|
78
|
-
if (physicsColliders === false)
|
|
77
|
+
// if physics colliders is false explicitly AND colliders is not set, disable auto colliders for this object entirely.
|
|
78
|
+
if (physicsColliders === false && colliders === undefined)
|
|
79
79
|
return [];
|
|
80
80
|
const options = this.options();
|
|
81
81
|
// if colliders on object is not set, use physics colliders
|
|
@@ -182,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
|
|
|
182
182
|
imports: [NgtrRigidBody, NgtrRigidBody, NgtrAnyCollider],
|
|
183
183
|
}]
|
|
184
184
|
}], ctorParameters: () => [] });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2VkLXJpZ2lkLWJvZGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcmFwaWVyL3NyYy9saWIvaW5zdGFuY2VkLXJpZ2lkLWJvZGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBb0QsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWlCLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFhaEQsTUFBTSxjQUFjLEdBQXlCLHVCQUF1QixDQUFDO0FBaURyRSxNQUFNLE9BQU8sd0JBQXdCO0lBQ3BDLFFBQVEsR0FBRyxLQUFLLENBQXlCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELFFBQVEsR0FBRyxLQUFLLENBQXVCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELEtBQUssR0FBRyxLQUFLLENBQXlCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELFVBQVUs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O1FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87UUFDM0IsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RCxDQUFDO3VHQW5HVyx3QkFBd0I7MkZBQXhCLHdCQUF3QixxekNBZ0JQLGFBQWEsb0dBM0RoQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQStCVCw0REFVUyxhQUFhLDBUQUFpQixlQUFlOzsyRkFFM0Msd0JBQXdCO2tCQS9DcEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0NBQXdDO29CQUNsRCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBK0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsSUFBSSxFQUFFO3dCQUNMLFlBQVksRUFBRSxZQUFZO3dCQUMxQixZQUFZLEVBQUUsWUFBWTt3QkFDMUIsU0FBUyxFQUFFLFNBQVM7d0JBQ3BCLGNBQWMsRUFBRSxjQUFjO3dCQUM5QixZQUFZLEVBQUUsWUFBWTtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7aUJBQ3hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0dW50cmFja2VkLFxuXHR2aWV3Q2hpbGQsXG5cdHZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGdldExvY2FsU3RhdGUsIE5ndEV1bGVyLCBOZ3RPYmplY3QzRCwgTmd0UXVhdGVybmlvbiwgTmd0VmVjdG9yMywgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgRHluYW1pY0RyYXdVc2FnZSwgSW5zdGFuY2VkTWVzaCwgT2JqZWN0M0QgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RyUGh5c2ljcyB9IGZyb20gJy4vcGh5c2ljcyc7XG5pbXBvcnQgeyBOZ3RyQW55Q29sbGlkZXIsIE5ndHJSaWdpZEJvZHksIHJpZ2lkQm9keURlZmF1bHRPcHRpb25zIH0gZnJvbSAnLi9yaWdpZC1ib2R5JztcbmltcG9ydCB7IE5ndHJSaWdpZEJvZHlPcHRpb25zLCBOZ3RyUmlnaWRCb2R5U3RhdGUsIE5ndHJSaWdpZEJvZHlUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVDb2xsaWRlck9wdGlvbnMgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RySW5zdGFuY2VkUmlnaWRCb2R5T3B0aW9ucyB7XG5cdGtleTogc3RyaW5nIHwgbnVtYmVyO1xuXHR0eXBlPzogTmd0clJpZ2lkQm9keVR5cGU7XG5cdHBvc2l0aW9uPzogTmd0VmVjdG9yMztcblx0cm90YXRpb24/OiBOZ3RFdWxlcjtcblx0c2NhbGU/OiBOZ3RWZWN0b3IzO1xuXHRxdWF0ZXJuaW9uPzogTmd0UXVhdGVybmlvbjtcblx0dXNlckRhdGE/OiBOZ3RPYmplY3QzRFsndXNlckRhdGEnXTtcblx0b3B0aW9ucz86IE5ndHJSaWdpZEJvZHlPcHRpb25zO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0clJpZ2lkQm9keU9wdGlvbnMgPSByaWdpZEJvZHlEZWZhdWx0T3B0aW9ucztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0LW9iamVjdDNEW25ndHJJbnN0YW5jZWRSaWdpZEJvZGllc10nLFxuXHRleHBvcnRBczogJ2luc3RhbmNlZFJpZ2lkQm9kaWVzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW9iamVjdDNEICNpbnN0YW5jZVdyYXBwZXI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LW9iamVjdDNEPlxuXG5cdFx0QGZvciAoaW5zdGFuY2Ugb2YgaW5zdGFuY2VzT3B0aW9ucygpOyB0cmFjayBpbnN0YW5jZS5rZXkpIHtcblx0XHRcdDxuZ3Qtb2JqZWN0M0Rcblx0XHRcdFx0W25ndHJSaWdpZEJvZHldPVwiaW5zdGFuY2UudHlwZVwiXG5cdFx0XHRcdFtvcHRpb25zXT1cImluc3RhbmNlLm9wdGlvbnNcIlxuXHRcdFx0XHRbcG9zaXRpb25dPVwiaW5zdGFuY2UucG9zaXRpb25cIlxuXHRcdFx0XHRbcm90YXRpb25dPVwiaW5zdGFuY2Uucm90YXRpb25cIlxuXHRcdFx0XHRbc2NhbGVdPVwiaW5zdGFuY2Uuc2NhbGVcIlxuXHRcdFx0XHRbcXVhdGVybmlvbl09XCJpbnN0YW5jZS5xdWF0ZXJuaW9uXCJcblx0XHRcdFx0W3VzZXJEYXRhXT1cImluc3RhbmNlLnVzZXJEYXRhXCJcblx0XHRcdFx0W25hbWVdPVwiaW5zdGFuY2Uua2V5ICsgJy1pbnN0YW5jZWQtcmlnaWQtYm9keS0nICsgJGluZGV4XCJcblx0XHRcdD5cblx0XHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RhdGEtY29sbGlkZXJzXVwiIC8+XG5cblx0XHRcdFx0QGZvciAoY2hpbGRDb2xsaWRlck9wdGlvbiBvZiBjaGlsZENvbGxpZGVyT3B0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcblx0XHRcdFx0XHQ8bmd0LW9iamVjdDNEXG5cdFx0XHRcdFx0XHRbbmd0ckNvbGxpZGVyXT1cImNoaWxkQ29sbGlkZXJPcHRpb24uc2hhcGVcIlxuXHRcdFx0XHRcdFx0W2FyZ3NdPVwiY2hpbGRDb2xsaWRlck9wdGlvbi5hcmdzXCJcblx0XHRcdFx0XHRcdFtwb3NpdGlvbl09XCJjaGlsZENvbGxpZGVyT3B0aW9uLnBvc2l0aW9uXCJcblx0XHRcdFx0XHRcdFtyb3RhdGlvbl09XCJjaGlsZENvbGxpZGVyT3B0aW9uLnJvdGF0aW9uXCJcblx0XHRcdFx0XHRcdFtzY2FsZV09XCJjaGlsZENvbGxpZGVyT3B0aW9uLnNjYWxlXCJcblx0XHRcdFx0XHRcdFtuYW1lXT1cIm9iamVjdFJlZi5uYXRpdmVFbGVtZW50Lm5hbWUgKyAnLWluc3RhbmNlZC1jb2xsaWRlci0nICsgJGluZGV4XCJcblx0XHRcdFx0XHRcdFtvcHRpb25zXT1cImNoaWxkQ29sbGlkZXJPcHRpb24uY29sbGlkZXJPcHRpb25zXCJcblx0XHRcdFx0XHQvPlxuXHRcdFx0XHR9XG5cdFx0XHQ8L25ndC1vYmplY3QzRD5cblx0XHR9XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3Q6IHtcblx0XHQnW3Bvc2l0aW9uXSc6ICdwb3NpdGlvbigpJyxcblx0XHQnW3JvdGF0aW9uXSc6ICdyb3RhdGlvbigpJyxcblx0XHQnW3NjYWxlXSc6ICdzY2FsZSgpJyxcblx0XHQnW3F1YXRlcm5pb25dJzogJ3F1YXRlcm5pb24oKScsXG5cdFx0J1t1c2VyRGF0YV0nOiAndXNlckRhdGEoKScsXG5cdH0sXG5cdGltcG9ydHM6IFtOZ3RyUmlnaWRCb2R5LCBOZ3RyUmlnaWRCb2R5LCBOZ3RyQW55Q29sbGlkZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RySW5zdGFuY2VkUmlnaWRCb2RpZXMge1xuXHRwb3NpdGlvbiA9IGlucHV0PE5ndFZlY3RvcjMgfCB1bmRlZmluZWQ+KFswLCAwLCAwXSk7XG5cdHJvdGF0aW9uID0gaW5wdXQ8Tmd0RXVsZXIgfCB1bmRlZmluZWQ+KFswLCAwLCAwXSk7XG5cdHNjYWxlID0gaW5wdXQ8Tmd0VmVjdG9yMyB8IHVuZGVmaW5lZD4oWzEsIDEsIDFdKTtcblx0cXVhdGVybmlvbiA9IGlucHV0PE5ndFF1YXRlcm5pb24gfCB1bmRlZmluZWQ+KFswLCAwLCAwLCAxXSk7XG5cdHVzZXJEYXRhID0gaW5wdXQ8Tmd0T2JqZWN0M0RbJ3VzZXJEYXRhJ10gfCB1bmRlZmluZWQ+KHt9KTtcblx0aW5zdGFuY2VzID0gaW5wdXQoW10sIHtcblx0XHRhbGlhczogJ25ndHJJbnN0YW5jZWRSaWdpZEJvZGllcycsXG5cdFx0dHJhbnNmb3JtOiAodmFsdWU6IEFycmF5PE5ndHJJbnN0YW5jZWRSaWdpZEJvZHlPcHRpb25zPiB8ICcnKSA9PiB7XG5cdFx0XHRpZiAodmFsdWUgPT09ICcnKSByZXR1cm4gW107XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fSxcblx0fSk7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblxuXHRpbnN0YW5jZVdyYXBwZXJSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxPYmplY3QzRD4+KCdpbnN0YW5jZVdyYXBwZXInKTtcblx0cmlnaWRCb2R5UmVmcyA9IHZpZXdDaGlsZHJlbihOZ3RyUmlnaWRCb2R5KTtcblxuXHRwcml2YXRlIHBoeXNpY3MgPSBpbmplY3QoTmd0clBoeXNpY3MpO1xuXHRvYmplY3RSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxPYmplY3QzRD4+KEVsZW1lbnRSZWYpO1xuXG5cdHByaXZhdGUgY29sbGlkZXJzID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xsaWRlcnMnKTtcblxuXHRwcml2YXRlIGluc3RhbmNlZE1lc2ggPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgaW5zdGFuY2VXcmFwcGVyID0gdGhpcy5pbnN0YW5jZVdyYXBwZXJSZWYoKS5uYXRpdmVFbGVtZW50O1xuXHRcdGlmICghaW5zdGFuY2VXcmFwcGVyKSByZXR1cm4gbnVsbDtcblxuXHRcdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGluc3RhbmNlV3JhcHBlcik7XG5cdFx0aWYgKCFsb2NhbFN0YXRlKSByZXR1cm4gbnVsbDtcblxuXHRcdC8vIHRyYWNrIG9iamVjdCdzIGNoaWxkcmVuXG5cdFx0bG9jYWxTdGF0ZS5vYmplY3RzKCk7XG5cdFx0Y29uc3QgZmlyc3RDaGlsZCA9IGluc3RhbmNlV3JhcHBlci5jaGlsZHJlblswXTtcblx0XHRpZiAoIWZpcnN0Q2hpbGQgfHwgIShmaXJzdENoaWxkIGFzIEluc3RhbmNlZE1lc2gpLmlzSW5zdGFuY2VkTWVzaCkgcmV0dXJuIG51bGw7XG5cblx0XHRyZXR1cm4gZmlyc3RDaGlsZCBhcyBJbnN0YW5jZWRNZXNoO1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgaW5zdGFuY2VzT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbaW5zdGFuY2VzLCBvcHRpb25zLCBpbnN0YW5jZWRNZXNoXSA9IFt0aGlzLmluc3RhbmNlcygpLCB1bnRyYWNrZWQodGhpcy5vcHRpb25zKSwgdGhpcy5pbnN0YW5jZWRNZXNoKCldO1xuXHRcdGlmICghaW5zdGFuY2VkTWVzaCkgcmV0dXJuIFtdO1xuXHRcdHJldHVybiBpbnN0YW5jZXMubWFwKFxuXHRcdFx0KGluc3RhbmNlLCBpbmRleCkgPT5cblx0XHRcdFx0KHtcblx0XHRcdFx0XHQuLi5pbnN0YW5jZSxcblx0XHRcdFx0XHRvcHRpb25zOiB7XG5cdFx0XHRcdFx0XHQuLi5vcHRpb25zLFxuXHRcdFx0XHRcdFx0Li4uKGluc3RhbmNlLm9wdGlvbnMgfHwge30pLFxuXHRcdFx0XHRcdFx0dHJhbnNmb3JtU3RhdGU6IChzdGF0ZSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0XHRcdFx0XHRcdGdldE1hdHJpeDogKG1hdHJpeCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0aW5zdGFuY2VkTWVzaC5nZXRNYXRyaXhBdChpbmRleCwgbWF0cml4KTtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBtYXRyaXg7XG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRzZXRNYXRyaXg6IChtYXRyaXgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGluc3RhbmNlZE1lc2guc2V0TWF0cml4QXQoaW5kZXgsIG1hdHJpeCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRpbnN0YW5jZWRNZXNoLmluc3RhbmNlTWF0cml4Lm5lZWRzVXBkYXRlID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdG1lc2hUeXBlOiAnaW5zdGFuY2VkTWVzaCcsXG5cdFx0XHRcdFx0XHRcdH0gYXMgTmd0clJpZ2lkQm9keVN0YXRlO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGtleTogYCR7aW5zdGFuY2Uua2V5fS0ke2luZGV4fWAgKyBgJHtpbnN0YW5jZWRNZXNoPy51dWlkIHx8ICcnfWAsXG5cdFx0XHRcdH0pIGFzIE9taXQ8Tmd0ckluc3RhbmNlZFJpZ2lkQm9keU9wdGlvbnMsICdvcHRpb25zJz4gJiB7IG9wdGlvbnM6IFBhcnRpYWw8Tmd0clJpZ2lkQm9keU9wdGlvbnM+IH0sXG5cdFx0KTtcblx0fSk7XG5cblx0cHJvdGVjdGVkIGNoaWxkQ29sbGlkZXJPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGNvbGxpZGVycyA9IHRoaXMuY29sbGlkZXJzKCk7XG5cdFx0Ly8gaWYgc2VsZiBjb2xsaWRlcnMgaXMgZmFsc2UgZXhwbGljaXRseSwgZGlzYWJsZSBhdXRvIGNvbGxpZGVycyBmb3IgdGhpcyBvYmplY3QgZW50aXJlbHkuXG5cdFx0aWYgKGNvbGxpZGVycyA9PT0gZmFsc2UpIHJldHVybiBbXTtcblxuXHRcdGNvbnN0IHBoeXNpY3NDb2xsaWRlcnMgPSB0aGlzLnBoeXNpY3MuY29sbGlkZXJzKCk7XG5cdFx0Ly8gaWYgcGh5c2ljcyBjb2xsaWRlcnMgaXMgZmFsc2UgZXhwbGljaXRseSwgZGlzYWJsZSBhdXRvIGNvbGxpZGVycyBmb3IgdGhpcyBvYmplY3QgZW50aXJlbHkuXG5cdFx0aWYgKHBoeXNpY3NDb2xsaWRlcnMgPT09IGZhbHNlKSByZXR1cm4gW107XG5cblx0XHRjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zKCk7XG5cdFx0Ly8gaWYgY29sbGlkZXJzIG9uIG9iamVjdCBpcyBub3Qgc2V0LCB1c2UgcGh5c2ljcyBjb2xsaWRlcnNcblx0XHRpZiAoIW9wdGlvbnMuY29sbGlkZXJzKSBvcHRpb25zLmNvbGxpZGVycyA9IHBoeXNpY3NDb2xsaWRlcnM7XG5cblx0XHRjb25zdCBvYmplY3RMb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZSh0aGlzLm9iamVjdFJlZi5uYXRpdmVFbGVtZW50KTtcblx0XHQvLyB0cmFjayBvYmplY3QncyBjaGlsZHJlblxuXHRcdG9iamVjdExvY2FsU3RhdGU/Lm5vbk9iamVjdHMoKTtcblxuXHRcdHJldHVybiBjcmVhdGVDb2xsaWRlck9wdGlvbnModGhpcy5vYmplY3RSZWYubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IE9iamVjdDNEIH0pO1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLnNldEluc3RhbmNlZE1lc2hNYXRyaXhFZmZlY3QoKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0SW5zdGFuY2VkTWVzaE1hdHJpeEVmZmVjdCgpIHtcblx0XHRjb25zdCBpbnN0YW5jZWRNZXNoID0gdGhpcy5pbnN0YW5jZWRNZXNoKCk7XG5cdFx0aWYgKCFpbnN0YW5jZWRNZXNoKSByZXR1cm47XG5cdFx0aW5zdGFuY2VkTWVzaC5pbnN0YW5jZU1hdHJpeC5zZXRVc2FnZShEeW5hbWljRHJhd1VzYWdlKTtcblx0fVxufVxuIl19
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2VkLXJpZ2lkLWJvZGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcmFwaWVyL3NyYy9saWIvaW5zdGFuY2VkLXJpZ2lkLWJvZGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBb0QsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWlCLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFhaEQsTUFBTSxjQUFjLEdBQXlCLHVCQUF1QixDQUFDO0FBaURyRSxNQUFNLE9BQU8sd0JBQXdCO0lBQ3BDLFFBQVEsR0FBRyxLQUFLLENBQXlCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELFFBQVEsR0FBRyxLQUFLLENBQXVCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELEtBQUssR0FBRyxLQUFLLENBQXlCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELFVBQVUs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QUNKLENBQUM7SUFFTyw0QkFBNEI7UUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUMzQixhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7dUdBbkdXLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHF6Q0FnQlAsYUFBYSxvR0EzRGhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBK0JULDREQVVTLGFBQWEsMFRBQWlCLGVBQWU7OzJGQUUzQyx3QkFBd0I7a0JBL0NwQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3Q0FBd0M7b0JBQ2xELFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUErQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUU7d0JBQ0wsWUFBWSxFQUFFLFlBQVk7d0JBQzFCLFlBQVksRUFBRSxZQUFZO3dCQUMxQixTQUFTLEVBQUUsU0FBUzt3QkFDcEIsY0FBYyxFQUFFLGNBQWM7d0JBQzlCLFlBQVksRUFBRSxZQUFZO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQztpQkFDeEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0ZWZmZWN0LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcblx0dmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgZ2V0TG9jYWxTdGF0ZSwgTmd0RXVsZXIsIE5ndE9iamVjdDNELCBOZ3RRdWF0ZXJuaW9uLCBOZ3RWZWN0b3IzLCBwaWNrIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBEeW5hbWljRHJhd1VzYWdlLCBJbnN0YW5jZWRNZXNoLCBPYmplY3QzRCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHJQaHlzaWNzIH0gZnJvbSAnLi9waHlzaWNzJztcbmltcG9ydCB7IE5ndHJBbnlDb2xsaWRlciwgTmd0clJpZ2lkQm9keSwgcmlnaWRCb2R5RGVmYXVsdE9wdGlvbnMgfSBmcm9tICcuL3JpZ2lkLWJvZHknO1xuaW1wb3J0IHsgTmd0clJpZ2lkQm9keU9wdGlvbnMsIE5ndHJSaWdpZEJvZHlTdGF0ZSwgTmd0clJpZ2lkQm9keVR5cGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZUNvbGxpZGVyT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHJJbnN0YW5jZWRSaWdpZEJvZHlPcHRpb25zIHtcblx0a2V5OiBzdHJpbmcgfCBudW1iZXI7XG5cdHR5cGU/OiBOZ3RyUmlnaWRCb2R5VHlwZTtcblx0cG9zaXRpb24/OiBOZ3RWZWN0b3IzO1xuXHRyb3RhdGlvbj86IE5ndEV1bGVyO1xuXHRzY2FsZT86IE5ndFZlY3RvcjM7XG5cdHF1YXRlcm5pb24/OiBOZ3RRdWF0ZXJuaW9uO1xuXHR1c2VyRGF0YT86IE5ndE9iamVjdDNEWyd1c2VyRGF0YSddO1xuXHRvcHRpb25zPzogTmd0clJpZ2lkQm9keU9wdGlvbnM7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RyUmlnaWRCb2R5T3B0aW9ucyA9IHJpZ2lkQm9keURlZmF1bHRPcHRpb25zO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3Qtb2JqZWN0M0Rbbmd0ckluc3RhbmNlZFJpZ2lkQm9kaWVzXScsXG5cdGV4cG9ydEFzOiAnaW5zdGFuY2VkUmlnaWRCb2RpZXMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtb2JqZWN0M0QgI2luc3RhbmNlV3JhcHBlcj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3Qtb2JqZWN0M0Q+XG5cblx0XHRAZm9yIChpbnN0YW5jZSBvZiBpbnN0YW5jZXNPcHRpb25zKCk7IHRyYWNrIGluc3RhbmNlLmtleSkge1xuXHRcdFx0PG5ndC1vYmplY3QzRFxuXHRcdFx0XHRbbmd0clJpZ2lkQm9keV09XCJpbnN0YW5jZS50eXBlXCJcblx0XHRcdFx0W29wdGlvbnNdPVwiaW5zdGFuY2Uub3B0aW9uc1wiXG5cdFx0XHRcdFtwb3NpdGlvbl09XCJpbnN0YW5jZS5wb3NpdGlvblwiXG5cdFx0XHRcdFtyb3RhdGlvbl09XCJpbnN0YW5jZS5yb3RhdGlvblwiXG5cdFx0XHRcdFtzY2FsZV09XCJpbnN0YW5jZS5zY2FsZVwiXG5cdFx0XHRcdFtxdWF0ZXJuaW9uXT1cImluc3RhbmNlLnF1YXRlcm5pb25cIlxuXHRcdFx0XHRbdXNlckRhdGFdPVwiaW5zdGFuY2UudXNlckRhdGFcIlxuXHRcdFx0XHRbbmFtZV09XCJpbnN0YW5jZS5rZXkgKyAnLWluc3RhbmNlZC1yaWdpZC1ib2R5LScgKyAkaW5kZXhcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbZGF0YS1jb2xsaWRlcnNdXCIgLz5cblxuXHRcdFx0XHRAZm9yIChjaGlsZENvbGxpZGVyT3B0aW9uIG9mIGNoaWxkQ29sbGlkZXJPcHRpb25zKCk7IHRyYWNrICRpbmRleCkge1xuXHRcdFx0XHRcdDxuZ3Qtb2JqZWN0M0Rcblx0XHRcdFx0XHRcdFtuZ3RyQ29sbGlkZXJdPVwiY2hpbGRDb2xsaWRlck9wdGlvbi5zaGFwZVwiXG5cdFx0XHRcdFx0XHRbYXJnc109XCJjaGlsZENvbGxpZGVyT3B0aW9uLmFyZ3NcIlxuXHRcdFx0XHRcdFx0W3Bvc2l0aW9uXT1cImNoaWxkQ29sbGlkZXJPcHRpb24ucG9zaXRpb25cIlxuXHRcdFx0XHRcdFx0W3JvdGF0aW9uXT1cImNoaWxkQ29sbGlkZXJPcHRpb24ucm90YXRpb25cIlxuXHRcdFx0XHRcdFx0W3NjYWxlXT1cImNoaWxkQ29sbGlkZXJPcHRpb24uc2NhbGVcIlxuXHRcdFx0XHRcdFx0W25hbWVdPVwib2JqZWN0UmVmLm5hdGl2ZUVsZW1lbnQubmFtZSArICctaW5zdGFuY2VkLWNvbGxpZGVyLScgKyAkaW5kZXhcIlxuXHRcdFx0XHRcdFx0W29wdGlvbnNdPVwiY2hpbGRDb2xsaWRlck9wdGlvbi5jb2xsaWRlck9wdGlvbnNcIlxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdH1cblx0XHRcdDwvbmd0LW9iamVjdDNEPlxuXHRcdH1cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aG9zdDoge1xuXHRcdCdbcG9zaXRpb25dJzogJ3Bvc2l0aW9uKCknLFxuXHRcdCdbcm90YXRpb25dJzogJ3JvdGF0aW9uKCknLFxuXHRcdCdbc2NhbGVdJzogJ3NjYWxlKCknLFxuXHRcdCdbcXVhdGVybmlvbl0nOiAncXVhdGVybmlvbigpJyxcblx0XHQnW3VzZXJEYXRhXSc6ICd1c2VyRGF0YSgpJyxcblx0fSxcblx0aW1wb3J0czogW05ndHJSaWdpZEJvZHksIE5ndHJSaWdpZEJvZHksIE5ndHJBbnlDb2xsaWRlcl0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHJJbnN0YW5jZWRSaWdpZEJvZGllcyB7XG5cdHBvc2l0aW9uID0gaW5wdXQ8Tmd0VmVjdG9yMyB8IHVuZGVmaW5lZD4oWzAsIDAsIDBdKTtcblx0cm90YXRpb24gPSBpbnB1dDxOZ3RFdWxlciB8IHVuZGVmaW5lZD4oWzAsIDAsIDBdKTtcblx0c2NhbGUgPSBpbnB1dDxOZ3RWZWN0b3IzIHwgdW5kZWZpbmVkPihbMSwgMSwgMV0pO1xuXHRxdWF0ZXJuaW9uID0gaW5wdXQ8Tmd0UXVhdGVybmlvbiB8IHVuZGVmaW5lZD4oWzAsIDAsIDAsIDFdKTtcblx0dXNlckRhdGEgPSBpbnB1dDxOZ3RPYmplY3QzRFsndXNlckRhdGEnXSB8IHVuZGVmaW5lZD4oe30pO1xuXHRpbnN0YW5jZXMgPSBpbnB1dChbXSwge1xuXHRcdGFsaWFzOiAnbmd0ckluc3RhbmNlZFJpZ2lkQm9kaWVzJyxcblx0XHR0cmFuc2Zvcm06ICh2YWx1ZTogQXJyYXk8Tmd0ckluc3RhbmNlZFJpZ2lkQm9keU9wdGlvbnM+IHwgJycpID0+IHtcblx0XHRcdGlmICh2YWx1ZSA9PT0gJycpIHJldHVybiBbXTtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9LFxuXHR9KTtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdGluc3RhbmNlV3JhcHBlclJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPE9iamVjdDNEPj4oJ2luc3RhbmNlV3JhcHBlcicpO1xuXHRyaWdpZEJvZHlSZWZzID0gdmlld0NoaWxkcmVuKE5ndHJSaWdpZEJvZHkpO1xuXG5cdHByaXZhdGUgcGh5c2ljcyA9IGluamVjdChOZ3RyUGh5c2ljcyk7XG5cdG9iamVjdFJlZiA9IGluamVjdDxFbGVtZW50UmVmPE9iamVjdDNEPj4oRWxlbWVudFJlZik7XG5cblx0cHJpdmF0ZSBjb2xsaWRlcnMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2NvbGxpZGVycycpO1xuXG5cdHByaXZhdGUgaW5zdGFuY2VkTWVzaCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBpbnN0YW5jZVdyYXBwZXIgPSB0aGlzLmluc3RhbmNlV3JhcHBlclJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0aWYgKCFpbnN0YW5jZVdyYXBwZXIpIHJldHVybiBudWxsO1xuXG5cdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2VXcmFwcGVyKTtcblx0XHRpZiAoIWxvY2FsU3RhdGUpIHJldHVybiBudWxsO1xuXG5cdFx0Ly8gdHJhY2sgb2JqZWN0J3MgY2hpbGRyZW5cblx0XHRsb2NhbFN0YXRlLm9iamVjdHMoKTtcblx0XHRjb25zdCBmaXJzdENoaWxkID0gaW5zdGFuY2VXcmFwcGVyLmNoaWxkcmVuWzBdO1xuXHRcdGlmICghZmlyc3RDaGlsZCB8fCAhKGZpcnN0Q2hpbGQgYXMgSW5zdGFuY2VkTWVzaCkuaXNJbnN0YW5jZWRNZXNoKSByZXR1cm4gbnVsbDtcblxuXHRcdHJldHVybiBmaXJzdENoaWxkIGFzIEluc3RhbmNlZE1lc2g7XG5cdH0pO1xuXG5cdHByb3RlY3RlZCBpbnN0YW5jZXNPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtpbnN0YW5jZXMsIG9wdGlvbnMsIGluc3RhbmNlZE1lc2hdID0gW3RoaXMuaW5zdGFuY2VzKCksIHVudHJhY2tlZCh0aGlzLm9wdGlvbnMpLCB0aGlzLmluc3RhbmNlZE1lc2goKV07XG5cdFx0aWYgKCFpbnN0YW5jZWRNZXNoKSByZXR1cm4gW107XG5cdFx0cmV0dXJuIGluc3RhbmNlcy5tYXAoXG5cdFx0XHQoaW5zdGFuY2UsIGluZGV4KSA9PlxuXHRcdFx0XHQoe1xuXHRcdFx0XHRcdC4uLmluc3RhbmNlLFxuXHRcdFx0XHRcdG9wdGlvbnM6IHtcblx0XHRcdFx0XHRcdC4uLm9wdGlvbnMsXG5cdFx0XHRcdFx0XHQuLi4oaW5zdGFuY2Uub3B0aW9ucyB8fCB7fSksXG5cdFx0XHRcdFx0XHR0cmFuc2Zvcm1TdGF0ZTogKHN0YXRlKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRcdFx0XHRcdFx0Z2V0TWF0cml4OiAobWF0cml4KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpbnN0YW5jZWRNZXNoLmdldE1hdHJpeEF0KGluZGV4LCBtYXRyaXgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIG1hdHJpeDtcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdHNldE1hdHJpeDogKG1hdHJpeCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0aW5zdGFuY2VkTWVzaC5zZXRNYXRyaXhBdChpbmRleCwgbWF0cml4KTtcblx0XHRcdFx0XHRcdFx0XHRcdGluc3RhbmNlZE1lc2guaW5zdGFuY2VNYXRyaXgubmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0bWVzaFR5cGU6ICdpbnN0YW5jZWRNZXNoJyxcblx0XHRcdFx0XHRcdFx0fSBhcyBOZ3RyUmlnaWRCb2R5U3RhdGU7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0a2V5OiBgJHtpbnN0YW5jZS5rZXl9LSR7aW5kZXh9YCArIGAke2luc3RhbmNlZE1lc2g/LnV1aWQgfHwgJyd9YCxcblx0XHRcdFx0fSkgYXMgT21pdDxOZ3RySW5zdGFuY2VkUmlnaWRCb2R5T3B0aW9ucywgJ29wdGlvbnMnPiAmIHsgb3B0aW9uczogUGFydGlhbDxOZ3RyUmlnaWRCb2R5T3B0aW9ucz4gfSxcblx0XHQpO1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgY2hpbGRDb2xsaWRlck9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgY29sbGlkZXJzID0gdGhpcy5jb2xsaWRlcnMoKTtcblx0XHQvLyBpZiBzZWxmIGNvbGxpZGVycyBpcyBmYWxzZSBleHBsaWNpdGx5LCBkaXNhYmxlIGF1dG8gY29sbGlkZXJzIGZvciB0aGlzIG9iamVjdCBlbnRpcmVseS5cblx0XHRpZiAoY29sbGlkZXJzID09PSBmYWxzZSkgcmV0dXJuIFtdO1xuXG5cdFx0Y29uc3QgcGh5c2ljc0NvbGxpZGVycyA9IHRoaXMucGh5c2ljcy5jb2xsaWRlcnMoKTtcblx0XHQvLyBpZiBwaHlzaWNzIGNvbGxpZGVycyBpcyBmYWxzZSBleHBsaWNpdGx5IEFORCBjb2xsaWRlcnMgaXMgbm90IHNldCwgZGlzYWJsZSBhdXRvIGNvbGxpZGVycyBmb3IgdGhpcyBvYmplY3QgZW50aXJlbHkuXG5cdFx0aWYgKHBoeXNpY3NDb2xsaWRlcnMgPT09IGZhbHNlICYmIGNvbGxpZGVycyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gW107XG5cblx0XHRjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zKCk7XG5cdFx0Ly8gaWYgY29sbGlkZXJzIG9uIG9iamVjdCBpcyBub3Qgc2V0LCB1c2UgcGh5c2ljcyBjb2xsaWRlcnNcblx0XHRpZiAoIW9wdGlvbnMuY29sbGlkZXJzKSBvcHRpb25zLmNvbGxpZGVycyA9IHBoeXNpY3NDb2xsaWRlcnM7XG5cblx0XHRjb25zdCBvYmplY3RMb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZSh0aGlzLm9iamVjdFJlZi5uYXRpdmVFbGVtZW50KTtcblx0XHQvLyB0cmFjayBvYmplY3QncyBjaGlsZHJlblxuXHRcdG9iamVjdExvY2FsU3RhdGU/Lm5vbk9iamVjdHMoKTtcblxuXHRcdHJldHVybiBjcmVhdGVDb2xsaWRlck9wdGlvbnModGhpcy5vYmplY3RSZWYubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IE9iamVjdDNEIH0pO1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLnNldEluc3RhbmNlZE1lc2hNYXRyaXhFZmZlY3QoKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0SW5zdGFuY2VkTWVzaE1hdHJpeEVmZmVjdCgpIHtcblx0XHRjb25zdCBpbnN0YW5jZWRNZXNoID0gdGhpcy5pbnN0YW5jZWRNZXNoKCk7XG5cdFx0aWYgKCFpbnN0YW5jZWRNZXNoKSByZXR1cm47XG5cdFx0aW5zdGFuY2VkTWVzaC5pbnN0YW5jZU1hdHJpeC5zZXRVc2FnZShEeW5hbWljRHJhd1VzYWdlKTtcblx0fVxufVxuIl19
|
package/esm2022/lib/physics.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, contentChild, DestroyRef, Directive, effect, inject, input, signal, TemplateRef, untracked, } from '@angular/core';
|
|
2
3
|
import { EventQueue } from '@dimforge/rapier3d-compat';
|
|
3
4
|
import { injectStore, pick, vector3 } from 'angular-three';
|
|
4
5
|
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
@@ -26,8 +27,21 @@ const defaultOptions = {
|
|
|
26
27
|
timeStep: 1 / 60,
|
|
27
28
|
debug: false,
|
|
28
29
|
};
|
|
30
|
+
export class NgtrPhysicsFallback {
|
|
31
|
+
static ngTemplateContextGuard(_, ctx) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrPhysicsFallback, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
35
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: NgtrPhysicsFallback, isStandalone: true, selector: "ng-template[rapierFallback]", ngImport: i0 });
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrPhysicsFallback, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{ selector: 'ng-template[rapierFallback]', standalone: true }]
|
|
40
|
+
}] });
|
|
29
41
|
export class NgtrPhysics {
|
|
30
42
|
options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
|
|
43
|
+
content = contentChild.required(TemplateRef);
|
|
44
|
+
fallbackContent = contentChild(NgtrPhysicsFallback);
|
|
31
45
|
updatePriority = pick(this.options, 'updatePriority');
|
|
32
46
|
updateLoop = pick(this.options, 'updateLoop');
|
|
33
47
|
numSolverIterations = pick(this.options, 'numSolverIterations');
|
|
@@ -48,6 +62,7 @@ export class NgtrPhysics {
|
|
|
48
62
|
store = injectStore();
|
|
49
63
|
destroyRef = inject(DestroyRef);
|
|
50
64
|
rapierConstruct = signal(null);
|
|
65
|
+
rapierError = signal(null);
|
|
51
66
|
rapier = this.rapierConstruct.asReadonly();
|
|
52
67
|
ready = computed(() => !!this.rapier());
|
|
53
68
|
worldSingleton = computed(() => {
|
|
@@ -75,7 +90,7 @@ export class NgtrPhysics {
|
|
|
75
90
|
.then(this.rapierConstruct.set.bind(this.rapierConstruct))
|
|
76
91
|
.catch((err) => {
|
|
77
92
|
console.error(`[NGT] Failed to load rapier3d-compat`, err);
|
|
78
|
-
|
|
93
|
+
this.rapierError.set(err?.message ?? err.toString());
|
|
79
94
|
});
|
|
80
95
|
effect(() => {
|
|
81
96
|
this.updateWorldEffect();
|
|
@@ -325,18 +340,24 @@ export class NgtrPhysics {
|
|
|
325
340
|
};
|
|
326
341
|
}
|
|
327
342
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrPhysics, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
328
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtrPhysics, isStandalone: true, selector: "ngtr-physics", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
329
|
-
@if (
|
|
330
|
-
|
|
343
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtrPhysics, isStandalone: true, selector: "ngtr-physics", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "fallbackContent", first: true, predicate: NgtrPhysicsFallback, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
344
|
+
@if (rapierConstruct()) {
|
|
345
|
+
@if (debug()) {
|
|
346
|
+
<ngtr-debug [world]="worldSingleton()?.proxy" />
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
<ngtr-frame-stepper
|
|
350
|
+
[ready]="ready()"
|
|
351
|
+
[stepFn]="step.bind(this)"
|
|
352
|
+
[type]="updateLoop()"
|
|
353
|
+
[updatePriority]="updatePriority()"
|
|
354
|
+
/>
|
|
355
|
+
|
|
356
|
+
<ng-container [ngTemplateOutlet]="content()" />
|
|
357
|
+
} @else if (rapierError() && !!fallbackContent()) {
|
|
358
|
+
<ng-container [ngTemplateOutlet]="$any(fallbackContent())" [ngTemplateOutletContext]="{ error: rapierError() }" />
|
|
331
359
|
}
|
|
332
|
-
|
|
333
|
-
[ready]="ready()"
|
|
334
|
-
[stepFn]="step.bind(this)"
|
|
335
|
-
[type]="updateLoop()"
|
|
336
|
-
[updatePriority]="updatePriority()"
|
|
337
|
-
/>
|
|
338
|
-
<ng-content />
|
|
339
|
-
`, isInline: true, dependencies: [{ kind: "component", type: NgtrDebug, selector: "ngtr-debug", inputs: ["world"] }, { kind: "directive", type: NgtrFrameStepper, selector: "ngtr-frame-stepper", inputs: ["ready", "updatePriority", "stepFn", "type"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
360
|
+
`, isInline: true, dependencies: [{ kind: "component", type: NgtrDebug, selector: "ngtr-debug", inputs: ["world"] }, { kind: "directive", type: NgtrFrameStepper, selector: "ngtr-frame-stepper", inputs: ["ready", "updatePriority", "stepFn", "type"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
340
361
|
}
|
|
341
362
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtrPhysics, decorators: [{
|
|
342
363
|
type: Component,
|
|
@@ -344,19 +365,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
|
|
|
344
365
|
selector: 'ngtr-physics',
|
|
345
366
|
standalone: true,
|
|
346
367
|
template: `
|
|
347
|
-
@if (
|
|
348
|
-
|
|
368
|
+
@if (rapierConstruct()) {
|
|
369
|
+
@if (debug()) {
|
|
370
|
+
<ngtr-debug [world]="worldSingleton()?.proxy" />
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
<ngtr-frame-stepper
|
|
374
|
+
[ready]="ready()"
|
|
375
|
+
[stepFn]="step.bind(this)"
|
|
376
|
+
[type]="updateLoop()"
|
|
377
|
+
[updatePriority]="updatePriority()"
|
|
378
|
+
/>
|
|
379
|
+
|
|
380
|
+
<ng-container [ngTemplateOutlet]="content()" />
|
|
381
|
+
} @else if (rapierError() && !!fallbackContent()) {
|
|
382
|
+
<ng-container [ngTemplateOutlet]="$any(fallbackContent())" [ngTemplateOutletContext]="{ error: rapierError() }" />
|
|
349
383
|
}
|
|
350
|
-
<ngtr-frame-stepper
|
|
351
|
-
[ready]="ready()"
|
|
352
|
-
[stepFn]="step.bind(this)"
|
|
353
|
-
[type]="updateLoop()"
|
|
354
|
-
[updatePriority]="updatePriority()"
|
|
355
|
-
/>
|
|
356
|
-
<ng-content />
|
|
357
384
|
`,
|
|
358
385
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
359
|
-
imports: [NgtrDebug, NgtrFrameStepper],
|
|
386
|
+
imports: [NgtrDebug, NgtrFrameStepper, NgTemplateOutlet],
|
|
360
387
|
}]
|
|
361
388
|
}], ctorParameters: () => [] });
|
|
362
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGh5c2ljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcmFwaWVyL3NyYy9saWIvcGh5c2ljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBZSxFQUFrQixVQUFVLEVBQTJCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUF1QixNQUFNLE9BQU8sQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFVbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUU3RSxNQUFNLGNBQWMsR0FBdUI7SUFDMUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0QixrQkFBa0IsRUFBRSxLQUFLO0lBQ3pCLG1CQUFtQixFQUFFLENBQUM7SUFDdEIsK0JBQStCLEVBQUUsQ0FBQztJQUNsQyx3QkFBd0IsRUFBRSxDQUFDO0lBQzNCLGtCQUFrQixFQUFFLEtBQUs7SUFDekIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsY0FBYyxFQUFFLENBQUM7SUFDakIs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RUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7OztFQVdUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdERlc3Ryb3lSZWYsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0c2lnbmFsLFxuXHR1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFJBUElFUiwgeyBDb2xsaWRlckhhbmRsZSwgRXZlbnRRdWV1ZSwgUm90YXRpb24sIFZlY3RvciwgV29ybGQgfSBmcm9tICdAZGltZm9yZ2UvcmFwaWVyM2QtY29tcGF0JztcbmltcG9ydCB7IGluamVjdFN0b3JlLCBwaWNrLCB2ZWN0b3IzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBNYXRoVXRpbHMsIFF1YXRlcm5pb24sIFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RyRGVidWcgfSBmcm9tICcuL2RlYnVnJztcbmltcG9ydCB7IE5ndHJGcmFtZVN0ZXBwZXIgfSBmcm9tICcuL2ZyYW1lLXN0ZXBwZXInO1xuaW1wb3J0IHsgX21hdHJpeDQsIF9wb3NpdGlvbiwgX3JvdGF0aW9uLCBfc2NhbGUgfSBmcm9tICcuL3NoYXJlZCc7XG5pbXBvcnQge1xuXHROZ3RyQ29sbGlkZXJTdGF0ZU1hcCxcblx0Tmd0ckNvbGxpc2lvblBheWxvYWQsXG5cdE5ndHJDb2xsaXNpb25Tb3VyY2UsXG5cdE5ndHJFdmVudE1hcCxcblx0Tmd0clBoeXNpY3NPcHRpb25zLFxuXHROZ3RyUmlnaWRCb2R5U3RhdGVNYXAsXG5cdE5ndHJXb3JsZFN0ZXBDYWxsYmFja1NldCxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVTaW5nbGV0b25Qcm94eSwgcmFwaWVyUXVhdGVybmlvblRvUXVhdGVybmlvbiB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0clBoeXNpY3NPcHRpb25zID0ge1xuXHRncmF2aXR5OiBbMCwgLTkuODEsIDBdLFxuXHRhbGxvd2VkTGluZWFyRXJyb3I6IDAuMDAxLFxuXHRudW1Tb2x2ZXJJdGVyYXRpb25zOiA0LFxuXHRudW1BZGRpdGlvbmFsRnJpY3Rpb25JdGVyYXRpb25zOiA0LFxuXHRudW1JbnRlcm5hbFBnc0l0ZXJhdGlvbnM6IDEsXG5cdHByZWRpY3Rpb25EaXN0YW5jZTogMC4wMDIsXG5cdG1pbklzbGFuZFNpemU6IDEyOCxcblx0bWF4Q2NkU3Vic3RlcHM6IDEsXG5cdGVycDogMC44LFxuXHRsZW5ndGhVbml0OiAxLFxuXHRjb2xsaWRlcnM6ICdjdWJvaWQnLFxuXHR1cGRhdGVMb29wOiAnZm9sbG93Jyxcblx0aW50ZXJwb2xhdGU6IHRydWUsXG5cdHBhdXNlZDogZmFsc2UsXG5cdHRpbWVTdGVwOiAxIC8gNjAsXG5cdGRlYnVnOiBmYWxzZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHItcGh5c2ljcycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0QGlmIChkZWJ1ZygpKSB7XG5cdFx0XHQ8bmd0ci1kZWJ1ZyBbd29ybGRdPVwid29ybGRTaW5nbGV0b24oKT8ucHJveHlcIiAvPlxuXHRcdH1cblx0XHQ8bmd0ci1mcmFtZS1zdGVwcGVyXG5cdFx0XHRbcmVhZHldPVwicmVhZHkoKVwiXG5cdFx0XHRbc3RlcEZuXT1cInN0ZXAuYmluZCh0aGlzKVwiXG5cdFx0XHRbdHlwZV09XCJ1cGRhdGVMb29wKClcIlxuXHRcdFx0W3VwZGF0ZVByaW9yaXR5XT1cInVwZGF0ZVByaW9yaXR5KClcIlxuXHRcdC8+XG5cdFx0PG5nLWNvbnRlbnQgLz5cblx0YCxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RyRGVidWcsIE5ndHJGcmFtZVN0ZXBwZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RyUGh5c2ljcyB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblxuXHRwcm90ZWN0ZWQgdXBkYXRlUHJpb3JpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3VwZGF0ZVByaW9yaXR5Jyk7XG5cdHByb3RlY3RlZCB1cGRhdGVMb29wID0gcGljayh0aGlzLm9wdGlvbnMsICd1cGRhdGVMb29wJyk7XG5cblx0cHJpdmF0ZSBudW1Tb2x2ZXJJdGVyYXRpb25zID0gcGljayh0aGlzLm9wdGlvbnMsICdudW1Tb2x2ZXJJdGVyYXRpb25zJyk7XG5cdHByaXZhdGUgbnVtQWRkaXRpb25hbEZyaWN0aW9uSXRlcmF0aW9ucyA9IHBpY2sodGhpcy5vcHRpb25zLCAnbnVtQWRkaXRpb25hbEZyaWN0aW9uSXRlcmF0aW9ucycpO1xuXHRwcml2YXRlIG51bUludGVybmFsUGdzSXRlcmF0aW9ucyA9IHBpY2sodGhpcy5vcHRpb25zLCAnbnVtSW50ZXJuYWxQZ3NJdGVyYXRpb25zJyk7XG5cdHByaXZhdGUgYWxsb3dlZExpbmVhckVycm9yID0gcGljayh0aGlzLm9wdGlvbnMsICdhbGxvd2VkTGluZWFyRXJyb3InKTtcblx0cHJpdmF0ZSBtaW5Jc2xhbmRTaXplID0gcGljayh0aGlzLm9wdGlvbnMsICdtaW5Jc2xhbmRTaXplJyk7XG5cdHByaXZhdGUgbWF4Q2NkU3Vic3RlcHMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21heENjZFN1YnN0ZXBzJyk7XG5cdHByaXZhdGUgcHJlZGljdGlvbkRpc3RhbmNlID0gcGljayh0aGlzLm9wdGlvbnMsICdwcmVkaWN0aW9uRGlzdGFuY2UnKTtcblx0cHJpdmF0ZSBlcnAgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VycCcpO1xuXHRwcml2YXRlIGxlbmd0aFVuaXQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2xlbmd0aFVuaXQnKTtcblx0cHJpdmF0ZSB0aW1lU3RlcCA9IHBpY2sodGhpcy5vcHRpb25zLCAndGltZVN0ZXAnKTtcblx0cHJpdmF0ZSBpbnRlcnBvbGF0ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnaW50ZXJwb2xhdGUnKTtcblxuXHRwYXVzZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3BhdXNlZCcpO1xuXHRkZWJ1ZyA9IHBpY2sodGhpcy5vcHRpb25zLCAnZGVidWcnKTtcblx0Y29sbGlkZXJzID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xsaWRlcnMnKTtcblx0Z3Jhdml0eSA9IHZlY3RvcjModGhpcy5vcHRpb25zLCAnZ3Jhdml0eScpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0cHJpdmF0ZSByYXBpZXJDb25zdHJ1Y3QgPSBzaWduYWw8dHlwZW9mIFJBUElFUiB8IG51bGw+KG51bGwpO1xuXHRyYXBpZXIgPSB0aGlzLnJhcGllckNvbnN0cnVjdC5hc1JlYWRvbmx5KCk7XG5cblx0cmVhZHkgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMucmFwaWVyKCkpO1xuXHR3b3JsZFNpbmdsZXRvbiA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCByYXBpZXIgPSB0aGlzLnJhcGllcigpO1xuXHRcdGlmICghcmFwaWVyKSByZXR1cm4gbnVsbDtcblx0XHRyZXR1cm4gY3JlYXRlU2luZ2xldG9uUHJveHk8V29ybGQ+KCgpID0+IG5ldyByYXBpZXIuV29ybGQodW50cmFja2VkKHRoaXMuZ3Jhdml0eSkpKTtcblx0fSk7XG5cblx0cmlnaWRCb2R5U3RhdGVzOiBOZ3RyUmlnaWRCb2R5U3RhdGVNYXAgPSBuZXcgTWFwKCk7XG5cdGNvbGxpZGVyU3RhdGVzOiBOZ3RyQ29sbGlkZXJTdGF0ZU1hcCA9IG5ldyBNYXAoKTtcblx0cmlnaWRCb2R5RXZlbnRzOiBOZ3RyRXZlbnRNYXAgPSBuZXcgTWFwKCk7XG5cdGNvbGxpZGVyRXZlbnRzOiBOZ3RyRXZlbnRNYXAgPSBuZXcgTWFwKCk7XG5cdGJlZm9yZVN0ZXBDYWxsYmFja3M6IE5ndHJXb3JsZFN0ZXBDYWxsYmFja1NldCA9IG5ldyBTZXQoKTtcblx0YWZ0ZXJTdGVwQ2FsbGJhY2tzOiBOZ3RyV29ybGRTdGVwQ2FsbGJhY2tTZXQgPSBuZXcgU2V0KCk7XG5cblx0cHJpdmF0ZSBldmVudFF1ZXVlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHJhcGllciA9IHRoaXMucmFwaWVyKCk7XG5cdFx0aWYgKCFyYXBpZXIpIHJldHVybiBudWxsO1xuXHRcdHJldHVybiBuZXcgRXZlbnRRdWV1ZShmYWxzZSk7XG5cdH0pO1xuXG5cdHByaXZhdGUgc3RlcHBpbmdTdGF0ZToge1xuXHRcdGFjY3VtdWxhdG9yOiBudW1iZXI7XG5cdFx0cHJldmlvdXNTdGF0ZTogUmVjb3JkPG51bWJlciwgeyBwb3NpdGlvbjogVmVjdG9yOyByb3RhdGlvbjogUm90YXRpb24gfT47XG5cdH0gPSB7IGFjY3VtdWxhdG9yOiAwLCBwcmV2aW91c1N0YXRlOiB7fSB9O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGltcG9ydCgnQGRpbWZvcmdlL3JhcGllcjNkLWNvbXBhdCcpXG5cdFx0XHQudGhlbigocmFwaWVyKSA9PiByYXBpZXIuaW5pdCgpLnRoZW4oKCkgPT4gcmFwaWVyKSlcblx0XHRcdC50aGVuKHRoaXMucmFwaWVyQ29uc3RydWN0LnNldC5iaW5kKHRoaXMucmFwaWVyQ29uc3RydWN0KSlcblx0XHRcdC5jYXRjaCgoZXJyKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoYFtOR1RdIEZhaWxlZCB0byBsb2FkIHJhcGllcjNkLWNvbXBhdGAsIGVycik7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpO1xuXHRcdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy51cGRhdGVXb3JsZEVmZmVjdCgpO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHRjb25zdCB3b3JsZCA9IHRoaXMud29ybGRTaW5nbGV0b24oKTtcblx0XHRcdGlmICh3b3JsZCkge1xuXHRcdFx0XHR3b3JsZC5wcm94eS5mcmVlKCk7XG5cdFx0XHRcdHdvcmxkLnJlc2V0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRzdGVwKGRlbHRhOiBudW1iZXIpIHtcblx0XHRpZiAoIXRoaXMucGF1c2VkKCkpIHtcblx0XHRcdHRoaXMuaW50ZXJuYWxTdGVwKGRlbHRhKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZVdvcmxkRWZmZWN0KCkge1xuXHRcdGNvbnN0IHdvcmxkID0gdGhpcy53b3JsZFNpbmdsZXRvbigpO1xuXHRcdGlmICghd29ybGQpIHJldHVybjtcblxuXHRcdHdvcmxkLnByb3h5LmdyYXZpdHkgPSB0aGlzLmdyYXZpdHkoKTtcblx0XHR3b3JsZC5wcm94eS5pbnRlZ3JhdGlvblBhcmFtZXRlcnMubnVtU29sdmVySXRlcmF0aW9ucyA9IHRoaXMubnVtU29sdmVySXRlcmF0aW9ucygpO1xuXHRcdHdvcmxkLnByb3h5LmludGVncmF0aW9uUGFyYW1ldGVycy5udW1BZGRpdGlvbmFsRnJpY3Rpb25JdGVyYXRpb25zID0gdGhpcy5udW1BZGRpdGlvbmFsRnJpY3Rpb25JdGVyYXRpb25zKCk7XG5cdFx0d29ybGQucHJveHkuaW50ZWdyYXRpb25QYXJhbWV0ZXJzLm51bUludGVybmFsUGdzSXRlcmF0aW9ucyA9IHRoaXMubnVtSW50ZXJuYWxQZ3NJdGVyYXRpb25zKCk7XG5cdFx0d29ybGQucHJveHkuaW50ZWdyYXRpb25QYXJhbWV0ZXJzLm5vcm1hbGl6ZWRBbGxvd2VkTGluZWFyRXJyb3IgPSB0aGlzLmFsbG93ZWRMaW5lYXJFcnJvcigpO1xuXHRcdHdvcmxkLnByb3h5LmludGVncmF0aW9uUGFyYW1ldGVycy5taW5Jc2xhbmRTaXplID0gdGhpcy5taW5Jc2xhbmRTaXplKCk7XG5cdFx0d29ybGQucHJveHkuaW50ZWdyYXRpb25QYXJhbWV0ZXJzLm1heENjZFN1YnN0ZXBzID0gdGhpcy5tYXhDY2RTdWJzdGVwcygpO1xuXHRcdHdvcmxkLnByb3h5LmludGVncmF0aW9uUGFyYW1ldGVycy5ub3JtYWxpemVkUHJlZGljdGlvbkRpc3RhbmNlID0gdGhpcy5wcmVkaWN0aW9uRGlzdGFuY2UoKTtcblx0XHQvKipcblx0XHQgKiBOT1RFOiB3ZSBkb24ndCBrbm93IGlmIHRoaXMgaXMgdGhlIGNvcnJlY3Qgd2F5IHRvIHNldCBmb3IgY29udGFjdF9uYXR1cmFsX2ZyZXF1ZW5jeSBvciBub3QuXG5cdFx0ICogYnV0IGF0IGxlYXN0LCBpdCBnZXRzIHRoZSBgY29udGFjdF9lcnBgIHZhbHVlIHRvIGJlIHZlcnkgY2xvc2Ugd2l0aCBzZXR0aW5nIGBlcnBgXG5cdFx0ICovXG5cdFx0d29ybGQucHJveHkuaW50ZWdyYXRpb25QYXJhbWV0ZXJzLmNvbnRhY3RfbmF0dXJhbF9mcmVxdWVuY3kgPSB0aGlzLmVycCgpICogMV8wMDA7XG5cdFx0d29ybGQucHJveHkubGVuZ3RoVW5pdCA9IHRoaXMubGVuZ3RoVW5pdCgpO1xuXHR9XG5cblx0cHJpdmF0ZSBpbnRlcm5hbFN0ZXAoZGVsdGE6IG51bWJlcikge1xuXHRcdGNvbnN0IHdvcmxkU2luZ2xldG9uID0gdGhpcy53b3JsZFNpbmdsZXRvbigpO1xuXHRcdGlmICghd29ybGRTaW5nbGV0b24pIHJldHVybjtcblxuXHRcdGNvbnN0IGV2ZW50UXVldWUgPSB0aGlzLmV2ZW50UXVldWUoKTtcblx0XHRpZiAoIWV2ZW50UXVldWUpIHJldHVybjtcblxuXHRcdGNvbnN0IHdvcmxkID0gd29ybGRTaW5nbGV0b24ucHJveHk7XG5cdFx0Y29uc3QgW3RpbWVTdGVwLCBpbnRlcnBvbGF0ZSwgcGF1c2VkXSA9IFt0aGlzLnRpbWVTdGVwKCksIHRoaXMuaW50ZXJwb2xhdGUoKSwgdGhpcy5wYXVzZWQoKV07XG5cblx0XHQvKiBDaGVjayBpZiB0aGUgdGltZXN0ZXAgaXMgc3VwcG9zZWQgdG8gYmUgdmFyaWFibGUuIFdlJ2xsIGRvIHRoaXMgaGVyZVxuICAgICAgb25jZSBzbyB3ZSBkb24ndCBoYXZlIHRvIHN0cmluZy1jaGVjayBldmVyeSBmcmFtZS4gKi9cblx0XHRjb25zdCB0aW1lU3RlcFZhcmlhYmxlID0gdGltZVN0ZXAgPT09ICd2YXJ5JztcblxuXHRcdC8qKlxuXHRcdCAqIEZpeGVkIHRpbWVTdGVwIHNpbXVsYXRpb24gcHJvZ3Jlc3Npb25cblx0XHQgKiBAc2VlIGh0dHBzOi8vZ2FmZmVyb25nYW1lcy5jb20vcG9zdC9maXhfeW91cl90aW1lc3RlcC9cblx0XHQgKi9cblx0XHRjb25zdCBjbGFtcGVkRGVsdGEgPSBNYXRoVXRpbHMuY2xhbXAoZGVsdGEsIDAsIDAuNSk7XG5cblx0XHRjb25zdCBzdGVwV29ybGQgPSAoaW5uZXJEZWx0YTogbnVtYmVyKSA9PiB7XG5cdFx0XHQvLyBUcmlnZ2VyIGJlZm9yZVN0ZXAgY2FsbGJhY2tzXG5cdFx0XHR0aGlzLmJlZm9yZVN0ZXBDYWxsYmFja3MuZm9yRWFjaCgoY2FsbGJhY2spID0+IHtcblx0XHRcdFx0Y2FsbGJhY2sod29ybGQpO1xuXHRcdFx0fSk7XG5cblx0XHRcdHdvcmxkLnRpbWVzdGVwID0gaW5uZXJEZWx0YTtcblx0XHRcdHdvcmxkLnN0ZXAoZXZlbnRRdWV1ZSk7XG5cblx0XHRcdC8vIFRyaWdnZXIgYWZ0ZXJTdGVwIGNhbGxiYWNrc1xuXHRcdFx0dGhpcy5hZnRlclN0ZXBDYWxsYmFja3MuZm9yRWFjaCgoY2FsbGJhY2spID0+IHtcblx0XHRcdFx0Y2FsbGJhY2sod29ybGQpO1xuXHRcdFx0fSk7XG5cdFx0fTtcblxuXHRcdGlmICh0aW1lU3RlcFZhcmlhYmxlKSB7XG5cdFx0XHRzdGVwV29ybGQoY2xhbXBlZERlbHRhKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gZG9uJ3Qgc3RlcCB0aW1lIGZvcndhcmRzIGlmIHBhdXNlZFxuXHRcdFx0Ly8gSW5jcmVhc2UgYWNjdW11bGF0b3Jcblx0XHRcdHRoaXMuc3RlcHBpbmdTdGF0ZS5hY2N1bXVsYXRvciArPSBjbGFtcGVkRGVsdGE7XG5cblx0XHRcdHdoaWxlICh0aGlzLnN0ZXBwaW5nU3RhdGUuYWNjdW11bGF0b3IgPj0gdGltZVN0ZXApIHtcblx0XHRcdFx0Ly8gU2V0IHVwIHByZXZpb3VzIHN0YXRlXG5cdFx0XHRcdC8vIG5lZWRlZCBmb3IgYWNjdXJhdGUgaW50ZXJwb2xhdGlvbnMgaWYgdGhlIHdvcmxkIHN0ZXBzIG1vcmUgdGhhbiBvbmNlXG5cdFx0XHRcdGlmIChpbnRlcnBvbGF0ZSkge1xuXHRcdFx0XHRcdHRoaXMuc3RlcHBpbmdTdGF0ZS5wcmV2aW91c1N0YXRlID0ge307XG5cdFx0XHRcdFx0d29ybGQuZm9yRWFjaFJpZ2lkQm9keSgoYm9keSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5zdGVwcGluZ1N0YXRlLnByZXZpb3VzU3RhdGVbYm9keS5oYW5kbGVdID0ge1xuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogYm9keS50cmFuc2xhdGlvbigpLFxuXHRcdFx0XHRcdFx0XHRyb3RhdGlvbjogYm9keS5yb3RhdGlvbigpLFxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHN0ZXBXb3JsZCh0aW1lU3RlcCk7XG5cdFx0XHRcdHRoaXMuc3RlcHBpbmdTdGF0ZS5hY2N1bXVsYXRvciAtPSB0aW1lU3RlcDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBpbnRlcnBvbGF0aW9uQWxwaGEgPVxuXHRcdFx0dGltZVN0ZXBWYXJpYWJsZSB8fCAhaW50ZXJwb2xhdGUgfHwgcGF1c2VkID8gMSA6IHRoaXMuc3RlcHBpbmdTdGF0ZS5hY2N1bXVsYXRvciAvIHRpbWVTdGVwO1xuXG5cdFx0Ly8gVXBkYXRlIG1lc2hlc1xuXHRcdHRoaXMucmlnaWRCb2R5U3RhdGVzLmZvckVhY2goKHN0YXRlLCBoYW5kbGUpID0+IHtcblx0XHRcdGNvbnN0IHJpZ2lkQm9keSA9IHdvcmxkLmdldFJpZ2lkQm9keShoYW5kbGUpO1xuXG5cdFx0XHRjb25zdCBldmVudHMgPSB0aGlzLnJpZ2lkQm9keUV2ZW50cy5nZXQoaGFuZGxlKTtcblx0XHRcdGlmIChldmVudHM/Lm9uU2xlZXAgfHwgZXZlbnRzPy5vbldha2UpIHtcblx0XHRcdFx0aWYgKHJpZ2lkQm9keS5pc1NsZWVwaW5nKCkgJiYgIXN0YXRlLmlzU2xlZXBpbmcpIGV2ZW50cz8ub25TbGVlcD8uKCk7XG5cdFx0XHRcdGlmICghcmlnaWRCb2R5LmlzU2xlZXBpbmcoKSAmJiBzdGF0ZS5pc1NsZWVwaW5nKSBldmVudHM/Lm9uV2FrZT8uKCk7XG5cdFx0XHRcdHN0YXRlLmlzU2xlZXBpbmcgPSByaWdpZEJvZHkuaXNTbGVlcGluZygpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIXJpZ2lkQm9keSB8fCAocmlnaWRCb2R5LmlzU2xlZXBpbmcoKSAmJiAhKCdpc0luc3RhbmNlZE1lc2gnIGluIHN0YXRlLm9iamVjdCkpIHx8ICFzdGF0ZS5zZXRNYXRyaXgpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBOZXcgc3RhdGVzXG5cdFx0XHRsZXQgdCA9IHJpZ2lkQm9keS50cmFuc2xhdGlvbigpIGFzIFZlY3RvcjM7XG5cdFx0XHRsZXQgciA9IHJpZ2lkQm9keS5yb3RhdGlvbigpIGFzIFF1YXRlcm5pb247XG5cblx0XHRcdGxldCBwcmV2aW91c1N0YXRlID0gdGhpcy5zdGVwcGluZ1N0YXRlLnByZXZpb3VzU3RhdGVbaGFuZGxlXTtcblxuXHRcdFx0aWYgKHByZXZpb3VzU3RhdGUpIHtcblx0XHRcdFx0Ly8gR2V0IHByZXZpb3VzIHNpbXVsYXRlZCB3b3JsZCBwb3NpdGlvblxuXHRcdFx0XHRfbWF0cml4NFxuXHRcdFx0XHRcdC5jb21wb3NlKHByZXZpb3VzU3RhdGUucG9zaXRpb24gYXMgVmVjdG9yMywgcmFwaWVyUXVhdGVybmlvblRvUXVhdGVybmlvbihwcmV2aW91c1N0YXRlLnJvdGF0aW9uKSwgc3RhdGUuc2NhbGUpXG5cdFx0XHRcdFx0LnByZW11bHRpcGx5KHN0YXRlLmludmVydGVkV29ybGRNYXRyaXgpXG5cdFx0XHRcdFx0LmRlY29tcG9zZShfcG9zaXRpb24sIF9yb3RhdGlvbiwgX3NjYWxlKTtcblxuXHRcdFx0XHQvLyBBcHBseSBwcmV2aW91cyB0aWNrIHBvc2l0aW9uXG5cdFx0XHRcdGlmIChzdGF0ZS5tZXNoVHlwZSA9PSAnbWVzaCcpIHtcblx0XHRcdFx0XHRzdGF0ZS5vYmplY3QucG9zaXRpb24uY29weShfcG9zaXRpb24pO1xuXHRcdFx0XHRcdHN0YXRlLm9iamVjdC5xdWF0ZXJuaW9uLmNvcHkoX3JvdGF0aW9uKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBHZXQgbmV3IHBvc2l0aW9uXG5cdFx0XHRfbWF0cml4NFxuXHRcdFx0XHQuY29tcG9zZSh0LCByYXBpZXJRdWF0ZXJuaW9uVG9RdWF0ZXJuaW9uKHIpLCBzdGF0ZS5zY2FsZSlcblx0XHRcdFx0LnByZW11bHRpcGx5KHN0YXRlLmludmVydGVkV29ybGRNYXRyaXgpXG5cdFx0XHRcdC5kZWNvbXBvc2UoX3Bvc2l0aW9uLCBfcm90YXRpb24sIF9zY2FsZSk7XG5cblx0XHRcdGlmIChzdGF0ZS5tZXNoVHlwZSA9PSAnaW5zdGFuY2VkTWVzaCcpIHtcblx0XHRcdFx0c3RhdGUuc2V0TWF0cml4KF9tYXRyaXg0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIEludGVycG9sYXRlIHRvIG5ldyBwb3NpdGlvblxuXHRcdFx0XHRzdGF0ZS5vYmplY3QucG9zaXRpb24ubGVycChfcG9zaXRpb24sIGludGVycG9sYXRpb25BbHBoYSk7XG5cdFx0XHRcdHN0YXRlLm9iamVjdC5xdWF0ZXJuaW9uLnNsZXJwKF9yb3RhdGlvbiwgaW50ZXJwb2xhdGlvbkFscGhhKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGV2ZW50UXVldWUuZHJhaW5Db2xsaXNpb25FdmVudHMoKGhhbmRsZTEsIGhhbmRsZTIsIHN0YXJ0ZWQpID0+IHtcblx0XHRcdGNvbnN0IHNvdXJjZTEgPSB0aGlzLmdldFNvdXJjZUZyb21Db2xsaWRlckhhbmRsZShoYW5kbGUxKTtcblx0XHRcdGNvbnN0IHNvdXJjZTIgPSB0aGlzLmdldFNvdXJjZUZyb21Db2xsaWRlckhhbmRsZShoYW5kbGUyKTtcblxuXHRcdFx0Ly8gQ29sbGlzaW9uIEV2ZW50c1xuXHRcdFx0aWYgKCFzb3VyY2UxPy5jb2xsaWRlci5vYmplY3QgfHwgIXNvdXJjZTI/LmNvbGxpZGVyLm9iamVjdCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGNvbGxpc2lvblBheWxvYWQxID0gdGhpcy5nZXRDb2xsaXNpb25QYXlsb2FkRnJvbVNvdXJjZShzb3VyY2UxLCBzb3VyY2UyKTtcblx0XHRcdGNvbnN0IGNvbGxpc2lvblBheWxvYWQyID0gdGhpcy5nZXRDb2xsaXNpb25QYXlsb2FkRnJvbVNvdXJjZShzb3VyY2UyLCBzb3VyY2UxKTtcblxuXHRcdFx0aWYgKHN0YXJ0ZWQpIHtcblx0XHRcdFx0d29ybGQuY29udGFjdFBhaXIoc291cmNlMS5jb2xsaWRlci5vYmplY3QsIHNvdXJjZTIuY29sbGlkZXIub2JqZWN0LCAobWFuaWZvbGQsIGZsaXBwZWQpID0+IHtcblx0XHRcdFx0XHQvKiBSaWdpZEJvZHkgZXZlbnRzICovXG5cdFx0XHRcdFx0c291cmNlMS5yaWdpZEJvZHkuZXZlbnRzPy5vbkNvbGxpc2lvbkVudGVyPy4oeyAuLi5jb2xsaXNpb25QYXlsb2FkMSwgbWFuaWZvbGQsIGZsaXBwZWQgfSk7XG5cdFx0XHRcdFx0c291cmNlMi5yaWdpZEJvZHkuZXZlbnRzPy5vbkNvbGxpc2lvbkVudGVyPy4oeyAuLi5jb2xsaXNpb25QYXlsb2FkMiwgbWFuaWZvbGQsIGZsaXBwZWQgfSk7XG5cblx0XHRcdFx0XHQvKiBDb2xsaWRlciBldmVudHMgKi9cblx0XHRcdFx0XHRzb3VyY2UxLmNvbGxpZGVyLmV2ZW50cz8ub25Db2xsaXNpb25FbnRlcj8uKHsgLi4uY29sbGlzaW9uUGF5bG9hZDEsIG1hbmlmb2xkLCBmbGlwcGVkIH0pO1xuXHRcdFx0XHRcdHNvdXJjZTIuY29sbGlkZXIuZXZlbnRzPy5vbkNvbGxpc2lvbkVudGVyPy4oeyAuLi5jb2xsaXNpb25QYXlsb2FkMiwgbWFuaWZvbGQsIGZsaXBwZWQgfSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c291cmNlMS5yaWdpZEJvZHkuZXZlbnRzPy5vbkNvbGxpc2lvbkV4aXQ/Lihjb2xsaXNpb25QYXlsb2FkMSk7XG5cdFx0XHRcdHNvdXJjZTIucmlnaWRCb2R5LmV2ZW50cz8ub25Db2xsaXNpb25FeGl0Py4oY29sbGlzaW9uUGF5bG9hZDIpO1xuXHRcdFx0XHRzb3VyY2UxLmNvbGxpZGVyLmV2ZW50cz8ub25Db2xsaXNpb25FeGl0Py4oY29sbGlzaW9uUGF5bG9hZDEpO1xuXHRcdFx0XHRzb3VyY2UyLmNvbGxpZGVyLmV2ZW50cz8ub25Db2xsaXNpb25FeGl0Py4oY29sbGlzaW9uUGF5bG9hZDIpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTZW5zb3IgSW50ZXJzZWN0aW9uc1xuXHRcdFx0aWYgKHN0YXJ0ZWQpIHtcblx0XHRcdFx0aWYgKHdvcmxkLmludGVyc2VjdGlvblBhaXIoc291cmNlMS5jb2xsaWRlci5vYmplY3QsIHNvdXJjZTIuY29sbGlkZXIub2JqZWN0KSkge1xuXHRcdFx0XHRcdHNvdXJjZTEucmlnaWRCb2R5LmV2ZW50cz8ub25JbnRlcnNlY3Rpb25FbnRlcj8uKGNvbGxpc2lvblBheWxvYWQxKTtcblx0XHRcdFx0XHRzb3VyY2UyLnJpZ2lkQm9keS5ldmVudHM/Lm9uSW50ZXJzZWN0aW9uRW50ZXI/Lihjb2xsaXNpb25QYXlsb2FkMik7XG5cdFx0XHRcdFx0c291cmNlMS5jb2xsaWRlci5ldmVudHM/Lm9uSW50ZXJzZWN0aW9uRW50ZXI/Lihjb2xsaXNpb25QYXlsb2FkMSk7XG5cdFx0XHRcdFx0c291cmNlMi5jb2xsaWRlci5ldmVudHM/Lm9uSW50ZXJzZWN0aW9uRW50ZXI/Lihjb2xsaXNpb25QYXlsb2FkMik7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHNvdXJjZTEucmlnaWRCb2R5LmV2ZW50cz8ub25JbnRlcnNlY3Rpb25FeGl0Py4oY29sbGlzaW9uUGF5bG9hZDEpO1xuXHRcdFx0XHRzb3VyY2UyLnJpZ2lkQm9keS5ldmVudHM/Lm9uSW50ZXJzZWN0aW9uRXhpdD8uKGNvbGxpc2lvblBheWxvYWQyKTtcblx0XHRcdFx0c291cmNlMS5jb2xsaWRlci5ldmVudHM/Lm9uSW50ZXJzZWN0aW9uRXhpdD8uKGNvbGxpc2lvblBheWxvYWQxKTtcblx0XHRcdFx0c291cmNlMi5jb2xsaWRlci5ldmVudHM/Lm9uSW50ZXJzZWN0aW9uRXhpdD8uKGNvbGxpc2lvblBheWxvYWQyKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGV2ZW50UXVldWUuZHJhaW5Db250YWN0Rm9yY2VFdmVudHMoKGV2ZW50KSA9PiB7XG5cdFx0XHRjb25zdCBzb3VyY2UxID0gdGhpcy5nZXRTb3VyY2VGcm9tQ29sbGlkZXJIYW5kbGUoZXZlbnQuY29sbGlkZXIxKCkpO1xuXHRcdFx0Y29uc3Qgc291cmNlMiA9IHRoaXMuZ2V0U291cmNlRnJvbUNvbGxpZGVySGFuZGxlKGV2ZW50LmNvbGxpZGVyMigpKTtcblxuXHRcdFx0Ly8gQ29sbGlzaW9uIEV2ZW50c1xuXHRcdFx0aWYgKCFzb3VyY2UxPy5jb2xsaWRlci5vYmplY3QgfHwgIXNvdXJjZTI/LmNvbGxpZGVyLm9iamVjdCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGNvbGxpc2lvblBheWxvYWQxID0gdGhpcy5nZXRDb2xsaXNpb25QYXlsb2FkRnJvbVNvdXJjZShzb3VyY2UxLCBzb3VyY2UyKTtcblx0XHRcdGNvbnN0IGNvbGxpc2lvblBheWxvYWQyID0gdGhpcy5nZXRDb2xsaXNpb25QYXlsb2FkRnJvbVNvdXJjZShzb3VyY2UyLCBzb3VyY2UxKTtcblxuXHRcdFx0c291cmNlMS5yaWdpZEJvZHkuZXZlbnRzPy5vbkNvbnRhY3RGb3JjZT8uKHtcblx0XHRcdFx0Li4uY29sbGlzaW9uUGF5bG9hZDEsXG5cdFx0XHRcdHRvdGFsRm9yY2U6IGV2ZW50LnRvdGFsRm9yY2UoKSxcblx0XHRcdFx0dG90YWxGb3JjZU1hZ25pdHVkZTogZXZlbnQudG90YWxGb3JjZU1hZ25pdHVkZSgpLFxuXHRcdFx0XHRtYXhGb3JjZURpcmVjdGlvbjogZXZlbnQubWF4Rm9yY2VEaXJlY3Rpb24oKSxcblx0XHRcdFx0bWF4Rm9yY2VNYWduaXR1ZGU6IGV2ZW50Lm1heEZvcmNlTWFnbml0dWRlKCksXG5cdFx0XHR9KTtcblxuXHRcdFx0c291cmNlMi5yaWdpZEJvZHkuZXZlbnRzPy5vbkNvbnRhY3RGb3JjZT8uKHtcblx0XHRcdFx0Li4uY29sbGlzaW9uUGF5bG9hZDIsXG5cdFx0XHRcdHRvdGFsRm9yY2U6IGV2ZW50LnRvdGFsRm9yY2UoKSxcblx0XHRcdFx0dG90YWxGb3JjZU1hZ25pdHVkZTogZXZlbnQudG90YWxGb3JjZU1hZ25pdHVkZSgpLFxuXHRcdFx0XHRtYXhGb3JjZURpcmVjdGlvbjogZXZlbnQubWF4Rm9yY2VEaXJlY3Rpb24oKSxcblx0XHRcdFx0bWF4Rm9yY2VNYWduaXR1ZGU6IGV2ZW50Lm1heEZvcmNlTWFnbml0dWRlKCksXG5cdFx0XHR9KTtcblxuXHRcdFx0c291cmNlMS5jb2xsaWRlci5ldmVudHM/Lm9uQ29udGFjdEZvcmNlPy4oe1xuXHRcdFx0XHQuLi5jb2xsaXNpb25QYXlsb2FkMSxcblx0XHRcdFx0dG90YWxGb3JjZTogZXZlbnQudG90YWxGb3JjZSgpLFxuXHRcdFx0XHR0b3RhbEZvcmNlTWFnbml0dWRlOiBldmVudC50b3RhbEZvcmNlTWFnbml0dWRlKCksXG5cdFx0XHRcdG1heEZvcmNlRGlyZWN0aW9uOiBldmVudC5tYXhGb3JjZURpcmVjdGlvbigpLFxuXHRcdFx0XHRtYXhGb3JjZU1hZ25pdHVkZTogZXZlbnQubWF4Rm9yY2VNYWduaXR1ZGUoKSxcblx0XHRcdH0pO1xuXG5cdFx0XHRzb3VyY2UyLmNvbGxpZGVyLmV2ZW50cz8ub25Db250YWN0Rm9yY2U/Lih7XG5cdFx0XHRcdC4uLmNvbGxpc2lvblBheWxvYWQyLFxuXHRcdFx0XHR0b3RhbEZvcmNlOiBldmVudC50b3RhbEZvcmNlKCksXG5cdFx0XHRcdHRvdGFsRm9yY2VNYWduaXR1ZGU6IGV2ZW50LnRvdGFsRm9yY2VNYWduaXR1ZGUoKSxcblx0XHRcdFx0bWF4Rm9yY2VEaXJlY3Rpb246IGV2ZW50Lm1heEZvcmNlRGlyZWN0aW9uKCksXG5cdFx0XHRcdG1heEZvcmNlTWFnbml0dWRlOiBldmVudC5tYXhGb3JjZU1hZ25pdHVkZSgpLFxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHR3b3JsZC5mb3JFYWNoQWN0aXZlUmlnaWRCb2R5KCgpID0+IHtcblx0XHRcdHRoaXMuc3RvcmUuc25hcHNob3QuaW52YWxpZGF0ZSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRTb3VyY2VGcm9tQ29sbGlkZXJIYW5kbGUoaGFuZGxlOiBDb2xsaWRlckhhbmRsZSkge1xuXHRcdGNvbnN0IHdvcmxkID0gdGhpcy53b3JsZFNpbmdsZXRvbigpO1xuXHRcdGlmICghd29ybGQpIHJldHVybjtcblxuXHRcdGNvbnN0IGNvbGxpZGVyID0gd29ybGQucHJveHkuZ2V0Q29sbGlkZXIoaGFuZGxlKTtcblx0XHRjb25zdCBjb2xFdmVudHMgPSB0aGlzLmNvbGxpZGVyRXZlbnRzLmdldChoYW5kbGUpO1xuXHRcdGNvbnN0IGNvbGxpZGVyU3RhdGUgPSB0aGlzLmNvbGxpZGVyU3RhdGVzLmdldChoYW5kbGUpO1xuXG5cdFx0Y29uc3QgcmlnaWRCb2R5SGFuZGxlID0gY29sbGlkZXIucGFyZW50KCk/LmhhbmRsZTtcblx0XHRjb25zdCByaWdpZEJvZHkgPSByaWdpZEJvZHlIYW5kbGUgIT09IHVuZGVmaW5lZCA/IHdvcmxkLnByb3h5LmdldFJpZ2lkQm9keShyaWdpZEJvZHlIYW5kbGUpIDogdW5kZWZpbmVkO1xuXHRcdGNvbnN0IHJpZ2lkQm9keUV2ZW50cyA9XG5cdFx0XHRyaWdpZEJvZHkgJiYgcmlnaWRCb2R5SGFuZGxlICE9PSB1bmRlZmluZWQgPyB0aGlzLnJpZ2lkQm9keUV2ZW50cy5nZXQocmlnaWRCb2R5SGFuZGxlKSA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCByaWdpZEJvZHlTdGF0ZSA9IHJpZ2lkQm9keUhhbmRsZSAhPT0gdW5kZWZpbmVkID8gdGhpcy5yaWdpZEJvZHlTdGF0ZXMuZ2V0KHJpZ2lkQm9keUhhbmRsZSkgOiB1bmRlZmluZWQ7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0Y29sbGlkZXI6IHsgb2JqZWN0OiBjb2xsaWRlciwgZXZlbnRzOiBjb2xFdmVudHMsIHN0YXRlOiBjb2xsaWRlclN0YXRlIH0sXG5cdFx0XHRyaWdpZEJvZHk6IHsgb2JqZWN0OiByaWdpZEJvZHksIGV2ZW50czogcmlnaWRCb2R5RXZlbnRzLCBzdGF0ZTogcmlnaWRCb2R5U3RhdGUgfSxcblx0XHR9IGFzIE5ndHJDb2xsaXNpb25Tb3VyY2U7XG5cdH1cblxuXHRwcml2YXRlIGdldENvbGxpc2lvblBheWxvYWRGcm9tU291cmNlKHRhcmdldDogTmd0ckNvbGxpc2lvblNvdXJjZSwgb3RoZXI6IE5ndHJDb2xsaXNpb25Tb3VyY2UpOiBOZ3RyQ29sbGlzaW9uUGF5bG9hZCB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRhcmdldDoge1xuXHRcdFx0XHRyaWdpZEJvZHk6IHRhcmdldC5yaWdpZEJvZHkub2JqZWN0LFxuXHRcdFx0XHRjb2xsaWRlcjogdGFyZ2V0LmNvbGxpZGVyLm9iamVjdCxcblx0XHRcdFx0Y29sbGlkZXJPYmplY3Q6IHRhcmdldC5jb2xsaWRlci5zdGF0ZT8ub2JqZWN0LFxuXHRcdFx0XHRyaWdpZEJvZHlPYmplY3Q6IHRhcmdldC5yaWdpZEJvZHkuc3RhdGU/Lm9iamVjdCxcblx0XHRcdH0sXG5cdFx0XHRvdGhlcjoge1xuXHRcdFx0XHRyaWdpZEJvZHk6IG90aGVyLnJpZ2lkQm9keS5vYmplY3QsXG5cdFx0XHRcdGNvbGxpZGVyOiBvdGhlci5jb2xsaWRlci5vYmplY3QsXG5cdFx0XHRcdGNvbGxpZGVyT2JqZWN0OiBvdGhlci5jb2xsaWRlci5zdGF0ZT8ub2JqZWN0LFxuXHRcdFx0XHRyaWdpZEJvZHlPYmplY3Q6IG90aGVyLnJpZ2lkQm9keS5zdGF0ZT8ub2JqZWN0LFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG59XG4iXX0=
|
|
389
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGh5c2ljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcmFwaWVyL3NyYy9saWIvcGh5c2ljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBZSxFQUFrQixVQUFVLEVBQTJCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUF1QixNQUFNLE9BQU8sQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFVbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUU3RSxNQUFNLGNBQWMsR0FBdUI7SUFDMUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0QixrQkFBa0IsRUFBRSxLQUFLO0lBQ3pCLG1CQUFtQixFQUFFLENBQUM7SUFDdEIsK0JBQStCLEVBQUUsQ0FBQztJQUNsQyx3QkFBd0IsRUFBRSxD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QUMsTUFBTTtnQkFDaEMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU07Z0JBQzdDLGVBQWUsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNO2FBQy9DO1lBQ0QsS0FBSyxFQUFFO2dCQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU07Z0JBQ2pDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQy9CLGNBQWMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNO2dCQUM1QyxlQUFlLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTTthQUM5QztTQUNELENBQUM7SUFDSCxDQUFDO3VHQTdWVyxXQUFXOzJGQUFYLFdBQVcsdVBBR1MsV0FBVyxrR0FDWixtQkFBbUIsZ0VBekJ4Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQlQsNERBRVMsU0FBUywwRUFBRSxnQkFBZ0Isc0hBQUUsZ0JBQWdCOzsyRkFFM0MsV0FBVztrQkF4QnZCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Y29udGVudENoaWxkLFxuXHREZXN0cm95UmVmLFxuXHREaXJlY3RpdmUsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0c2lnbmFsLFxuXHRUZW1wbGF0ZVJlZixcblx0dW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBSQVBJRVIsIHsgQ29sbGlkZXJIYW5kbGUsIEV2ZW50UXVldWUsIFJvdGF0aW9uLCBWZWN0b3IsIFdvcmxkIH0gZnJvbSAnQGRpbWZvcmdlL3JhcGllcjNkLWNvbXBhdCc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSwgcGljaywgdmVjdG9yMyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgTWF0aFV0aWxzLCBRdWF0ZXJuaW9uLCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0ckRlYnVnIH0gZnJvbSAnLi9kZWJ1Zyc7XG5pbXBvcnQgeyBOZ3RyRnJhbWVTdGVwcGVyIH0gZnJvbSAnLi9mcmFtZS1zdGVwcGVyJztcbmltcG9ydCB7IF9tYXRyaXg0LCBfcG9zaXRpb24sIF9yb3RhdGlvbiwgX3NjYWxlIH0gZnJvbSAnLi9zaGFyZWQnO1xuaW1wb3J0IHtcblx0Tmd0ckNvbGxpZGVyU3RhdGVNYXAsXG5cdE5ndHJDb2xsaXNpb25QYXlsb2FkLFxuXHROZ3RyQ29sbGlzaW9uU291cmNlLFxuXHROZ3RyRXZlbnRNYXAsXG5cdE5ndHJQaHlzaWNzT3B0aW9ucyxcblx0Tmd0clJpZ2lkQm9keVN0YXRlTWFwLFxuXHROZ3RyV29ybGRTdGVwQ2FsbGJhY2tTZXQsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlU2luZ2xldG9uUHJveHksIHJhcGllclF1YXRlcm5pb25Ub1F1YXRlcm5pb24gfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHJQaHlzaWNzT3B0aW9ucyA9IHtcblx0Z3Jhdml0eTogWzAsIC05LjgxLCAwXSxcblx0YWxsb3dlZExpbmVhckVycm9yOiAwLjAwMSxcblx0bnVtU29sdmVySXRlcmF0aW9uczogNCxcblx0bnVtQWRkaXRpb25hbEZyaWN0aW9uSXRlcmF0aW9uczogNCxcblx0bnVtSW50ZXJuYWxQZ3NJdGVyYXRpb25zOiAxLFxuXHRwcmVkaWN0aW9uRGlzdGFuY2U6IDAuMDAyLFxuXHRtaW5Jc2xhbmRTaXplOiAxMjgsXG5cdG1heENjZFN1YnN0ZXBzOiAxLFxuXHRlcnA6IDAuOCxcblx0bGVuZ3RoVW5pdDogMSxcblx0Y29sbGlkZXJzOiAnY3Vib2lkJyxcblx0dXBkYXRlTG9vcDogJ2ZvbGxvdycsXG5cdGludGVycG9sYXRlOiB0cnVlLFxuXHRwYXVzZWQ6IGZhbHNlLFxuXHR0aW1lU3RlcDogMSAvIDYwLFxuXHRkZWJ1ZzogZmFsc2UsXG59O1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtyYXBpZXJGYWxsYmFja10nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0clBoeXNpY3NGYWxsYmFjayB7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF86IE5ndHJQaHlzaWNzRmFsbGJhY2ssIGN0eDogdW5rbm93bik6IGN0eCBpcyB7IGVycm9yOiBzdHJpbmcgfSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0ci1waHlzaWNzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHRAaWYgKHJhcGllckNvbnN0cnVjdCgpKSB7XG5cdFx0XHRAaWYgKGRlYnVnKCkpIHtcblx0XHRcdFx0PG5ndHItZGVidWcgW3dvcmxkXT1cIndvcmxkU2luZ2xldG9uKCk/LnByb3h5XCIgLz5cblx0XHRcdH1cblxuXHRcdFx0PG5ndHItZnJhbWUtc3RlcHBlclxuXHRcdFx0XHRbcmVhZHldPVwicmVhZHkoKVwiXG5cdFx0XHRcdFtzdGVwRm5dPVwic3RlcC5iaW5kKHRoaXMpXCJcblx0XHRcdFx0W3R5cGVdPVwidXBkYXRlTG9vcCgpXCJcblx0XHRcdFx0W3VwZGF0ZVByaW9yaXR5XT1cInVwZGF0ZVByaW9yaXR5KClcIlxuXHRcdFx0Lz5cblxuXHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50KClcIiAvPlxuXHRcdH0gQGVsc2UgaWYgKHJhcGllckVycm9yKCkgJiYgISFmYWxsYmFja0NvbnRlbnQoKSkge1xuXHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGZhbGxiYWNrQ29udGVudCgpKVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGVycm9yOiByYXBpZXJFcnJvcigpIH1cIiAvPlxuXHRcdH1cblx0YCxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RyRGVidWcsIE5ndHJGcmFtZVN0ZXBwZXIsIE5nVGVtcGxhdGVPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RyUGh5c2ljcyB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblxuXHRjb250ZW50ID0gY29udGVudENoaWxkLnJlcXVpcmVkKFRlbXBsYXRlUmVmKTtcblx0ZmFsbGJhY2tDb250ZW50ID0gY29udGVudENoaWxkKE5ndHJQaHlzaWNzRmFsbGJhY2spO1xuXG5cdHByb3RlY3RlZCB1cGRhdGVQcmlvcml0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAndXBkYXRlUHJpb3JpdHknKTtcblx0cHJvdGVjdGVkIHVwZGF0ZUxvb3AgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3VwZGF0ZUxvb3AnKTtcblxuXHRwcml2YXRlIG51bVNvbHZlckl0ZXJhdGlvbnMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ251bVNvbHZlckl0ZXJhdGlvbnMnKTtcblx0cHJpdmF0ZSBudW1BZGRpdGlvbmFsRnJpY3Rpb25JdGVyYXRpb25zID0gcGljayh0aGlzLm9wdGlvbnMsICdudW1BZGRpdGlvbmFsRnJpY3Rpb25JdGVyYXRpb25zJyk7XG5cdHByaXZhdGUgbnVtSW50ZXJuYWxQZ3NJdGVyYXRpb25zID0gcGljayh0aGlzLm9wdGlvbnMsICdudW1JbnRlcm5hbFBnc0l0ZXJhdGlvbnMnKTtcblx0cHJpdmF0ZSBhbGxvd2VkTGluZWFyRXJyb3IgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2FsbG93ZWRMaW5lYXJFcnJvcicpO1xuXHRwcml2YXRlIG1pbklzbGFuZFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21pbklzbGFuZFNpemUnKTtcblx0cHJpdmF0ZSBtYXhDY2RTdWJzdGVwcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWF4Q2NkU3Vic3RlcHMnKTtcblx0cHJpdmF0ZSBwcmVkaWN0aW9uRGlzdGFuY2UgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3ByZWRpY3Rpb25EaXN0YW5jZScpO1xuXHRwcml2YXRlIGVycCA9IHBpY2sodGhpcy5vcHRpb25zLCAnZXJwJyk7XG5cdHByaXZhdGUgbGVuZ3RoVW5pdCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbGVuZ3RoVW5pdCcpO1xuXHRwcml2YXRlIHRpbWVTdGVwID0gcGljayh0aGlzLm9wdGlvbnMsICd0aW1lU3RlcCcpO1xuXHRwcml2YXRlIGludGVycG9sYXRlID0gcGljayh0aGlzLm9wdGlvbnMsICdpbnRlcnBvbGF0ZScpO1xuXG5cdHBhdXNlZCA9IHBpY2sodGhpcy5vcHRpb25zLCAncGF1c2VkJyk7XG5cdGRlYnVnID0gcGljayh0aGlzLm9wdGlvbnMsICdkZWJ1ZycpO1xuXHRjb2xsaWRlcnMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2NvbGxpZGVycycpO1xuXHRncmF2aXR5ID0gdmVjdG9yMyh0aGlzLm9wdGlvbnMsICdncmF2aXR5Jyk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuXHRwcm90ZWN0ZWQgcmFwaWVyQ29uc3RydWN0ID0gc2lnbmFsPHR5cGVvZiBSQVBJRVIgfCBudWxsPihudWxsKTtcblx0cHJvdGVjdGVkIHJhcGllckVycm9yID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXHRyYXBpZXIgPSB0aGlzLnJhcGllckNvbnN0cnVjdC5hc1JlYWRvbmx5KCk7XG5cblx0cmVhZHkgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMucmFwaWVyKCkpO1xuXHR3b3JsZFNpbmdsZXRvbiA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCByYXBpZXIgPSB0aGlzLnJhcGllcigpO1xuXHRcdGlmICghcmFwaWVyKSByZXR1cm4gbnVsbDtcblx0XHRyZXR1cm4gY3JlYXRlU2luZ2xldG9uUHJveHk8V29ybGQ+KCgpID0+IG5ldyByYXBpZXIuV29ybGQodW50cmFja2VkKHRoaXMuZ3Jhdml0eSkpKTtcblx0fSk7XG5cblx0cmlnaWRCb2R5U3RhdGVzOiBOZ3RyUmlnaWRCb2R5U3RhdGVNYXAgPSBuZXcgTWFwKCk7XG5cdGNvbGxpZGVyU3RhdGVzOiBOZ3RyQ29sbGlkZXJTdGF0ZU1hcCA9IG5ldyBNYXAoKTtcblx0cmlnaWRCb2R5RXZlbnRzOiBOZ3RyRXZlbnRNYXAgPSBuZXcgTWFwKCk7XG5cdGNvbGxpZGVyRXZlbnRzOiBOZ3RyRXZlbnRNYXAgPSBuZXcgTWFwKCk7XG5cdGJlZm9yZVN0ZXBDYWxsYmFja3M6IE5ndHJXb3JsZFN0ZXBDYWxsYmFja1NldCA9IG5ldyBTZXQoKTtcblx0YWZ0ZXJTdGVwQ2FsbGJhY2tzOiBOZ3RyV29ybGRTdGVwQ2FsbGJhY2tTZXQgPSBuZXcgU2V0KCk7XG5cblx0cHJpdmF0ZSBldmVudFF1ZXVlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHJhcGllciA9IHRoaXMucmFwaWVyKCk7XG5cdFx0aWYgKCFyYXBpZXIpIHJldHVybiBudWxsO1xuXHRcdHJldHVybiBuZXcgRXZlbnRRdWV1ZShmYWxzZSk7XG5cdH0pO1xuXG5cdHByaXZhdGUgc3RlcHBpbmdTdGF0ZToge1xuXHRcdGFjY3VtdWxhdG9yOiBudW1iZXI7XG5cdFx0cHJldmlvdXNTdGF0ZTogUmVjb3JkPG51bWJlciwgeyBwb3NpdGlvbjogVmVjdG9yOyByb3RhdGlvbjogUm90YXRpb24gfT47XG5cdH0gPSB7IGFjY3VtdWxhdG9yOiAwLCBwcmV2aW91c1N0YXRlOiB7fSB9O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGltcG9ydCgnQGRpbWZvcmdlL3JhcGllcjNkLWNvbXBhdCcpXG5cdFx0XHQudGhlbigocmFwaWVyKSA9PiByYXBpZXIuaW5pdCgpLnRoZW4oKCkgPT4gcmFwaWVyKSlcblx0XHRcdC50aGVuKHRoaXMucmFwaWVyQ29uc3RydWN0LnNldC5iaW5kKHRoaXMucmFwaWVyQ29uc3RydWN0KSlcblx0XHRcdC5jYXRjaCgoZXJyKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoYFtOR1RdIEZhaWxlZCB0byBsb2FkIHJhcGllcjNkLWNvbXBhdGAsIGVycik7XG5cdFx0XHRcdHRoaXMucmFwaWVyRXJyb3Iuc2V0KGVycj8ubWVzc2FnZSA/PyBlcnIudG9TdHJpbmcoKSk7XG5cdFx0XHR9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLnVwZGF0ZVdvcmxkRWZmZWN0KCk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcblx0XHRcdGNvbnN0IHdvcmxkID0gdGhpcy53b3JsZFNpbmdsZXRvbigpO1xuXHRcdFx0aWYgKHdvcmxkKSB7XG5cdFx0XHRcdHdvcmxkLnByb3h5LmZyZWUoKTtcblx0XHRcdFx0d29ybGQucmVzZXQoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHN0ZXAoZGVsdGE6IG51bWJlcikge1xuXHRcdGlmICghdGhpcy5wYXVzZWQoKSkge1xuXHRcdFx0dGhpcy5pbnRlcm5hbFN0ZXAoZGVsdGEpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgdXBkYXRlV29ybGRFZmZlY3QoKSB7XG5cdFx0Y29uc3Qgd29ybGQgPSB0aGlzLndvcmxkU2luZ2xldG9uKCk7XG5cdFx0aWYgKCF3b3JsZCkgcmV0dXJuO1xuXG5cdFx0d29ybGQucHJveHkuZ3Jhdml0eSA9IHRoaXMuZ3Jhdml0eSgpO1xuXHRcdHdvcmxkLnByb3h5LmludGVncmF0aW9uUGFyYW1ldGVycy5udW1Tb2x2ZXJJdGVyYXRpb25zID0gdGhpcy5udW1Tb2x2ZXJJdGVyYXRpb25zKCk7XG5cdFx0d29ybGQucHJveHkuaW50ZWdyYXRpb25QYXJhbWV0ZXJzLm51bUFkZGl0aW9uYWxGcmljdGlvbkl0ZXJhdGlvbnMgPSB0aGlzLm51bUFkZGl0aW9uYWxGcmljdGlvbkl0ZXJhdGlvbnMoKTtcblx0XHR3b3JsZC5wcm94eS5pbnRlZ3JhdGlvblBhcmFtZXRlcnMubnVtSW50ZXJuYWxQZ3NJdGVyYXRpb25zID0gdGhpcy5udW1JbnRlcm5hbFBnc0l0ZXJhdGlvbnMoKTtcblx0XHR3b3JsZC5wcm94eS5pbnRlZ3JhdGlvblBhcmFtZXRlcnMubm9ybWFsaXplZEFsbG93ZWRMaW5lYXJFcnJvciA9IHRoaXMuYWxsb3dlZExpbmVhckVycm9yKCk7XG5cdFx0d29ybGQucHJveHkuaW50ZWdyYXRpb25QYXJhbWV0ZXJzLm1pbklzbGFuZFNpemUgPSB0aGlzLm1pbklzbGFuZFNpemUoKTtcblx0XHR3b3JsZC5wcm94eS5pbnRlZ3JhdGlvblBhcmFtZXRlcnMubWF4Q2NkU3Vic3RlcHMgPSB0aGlzLm1heENjZFN1YnN0ZXBzKCk7XG5cdFx0d29ybGQucHJveHkuaW50ZWdyYXRpb25QYXJhbWV0ZXJzLm5vcm1hbGl6ZWRQcmVkaWN0aW9uRGlzdGFuY2UgPSB0aGlzLnByZWRpY3Rpb25EaXN0YW5jZSgpO1xuXHRcdC8qKlxuXHRcdCAqIE5PVEU6IHdlIGRvbid0IGtub3cgaWYgdGhpcyBpcyB0aGUgY29ycmVjdCB3YXkgdG8gc2V0IGZvciBjb250YWN0X25hdHVyYWxfZnJlcXVlbmN5IG9yIG5vdC5cblx0XHQgKiBidXQgYXQgbGVhc3QsIGl0IGdldHMgdGhlIGBjb250YWN0X2VycGAgdmFsdWUgdG8gYmUgdmVyeSBjbG9zZSB3aXRoIHNldHRpbmcgYGVycGBcblx0XHQgKi9cblx0XHR3b3JsZC5wcm94eS5pbnRlZ3JhdGlvblBhcmFtZXRlcnMuY29udGFjdF9uYXR1cmFsX2ZyZXF1ZW5jeSA9IHRoaXMuZXJwKCkgKiAxXzAwMDtcblx0XHR3b3JsZC5wcm94eS5sZW5ndGhVbml0ID0gdGhpcy5sZW5ndGhVbml0KCk7XG5cdH1cblxuXHRwcml2YXRlIGludGVybmFsU3RlcChkZWx0YTogbnVtYmVyKSB7XG5cdFx0Y29uc3Qgd29ybGRTaW5nbGV0b24gPSB0aGlzLndvcmxkU2luZ2xldG9uKCk7XG5cdFx0aWYgKCF3b3JsZFNpbmdsZXRvbikgcmV0dXJuO1xuXG5cdFx0Y29uc3QgZXZlbnRRdWV1ZSA9IHRoaXMuZXZlbnRRdWV1ZSgpO1xuXHRcdGlmICghZXZlbnRRdWV1ZSkgcmV0dXJuO1xuXG5cdFx0Y29uc3Qgd29ybGQgPSB3b3JsZFNpbmdsZXRvbi5wcm94eTtcblx0XHRjb25zdCBbdGltZVN0ZXAsIGludGVycG9sYXRlLCBwYXVzZWRdID0gW3RoaXMudGltZVN0ZXAoKSwgdGhpcy5pbnRlcnBvbGF0ZSgpLCB0aGlzLnBhdXNlZCgpXTtcblxuXHRcdC8qIENoZWNrIGlmIHRoZSB0aW1lc3RlcCBpcyBzdXBwb3NlZCB0byBiZSB2YXJpYWJsZS4gV2UnbGwgZG8gdGhpcyBoZXJlXG4gICAgICBvbmNlIHNvIHdlIGRvbid0IGhhdmUgdG8gc3RyaW5nLWNoZWNrIGV2ZXJ5IGZyYW1lLiAqL1xuXHRcdGNvbnN0IHRpbWVTdGVwVmFyaWFibGUgPSB0aW1lU3RlcCA9PT0gJ3ZhcnknO1xuXG5cdFx0LyoqXG5cdFx0ICogRml4ZWQgdGltZVN0ZXAgc2ltdWxhdGlvbiBwcm9ncmVzc2lvblxuXHRcdCAqIEBzZWUgaHR0cHM6Ly9nYWZmZXJvbmdhbWVzLmNvbS9wb3N0L2ZpeF95b3VyX3RpbWVzdGVwL1xuXHRcdCAqL1xuXHRcdGNvbnN0IGNsYW1wZWREZWx0YSA9IE1hdGhVdGlscy5jbGFtcChkZWx0YSwgMCwgMC41KTtcblxuXHRcdGNvbnN0IHN0ZXBXb3JsZCA9IChpbm5lckRlbHRhOiBudW1iZXIpID0+IHtcblx0XHRcdC8vIFRyaWdnZXIgYmVmb3JlU3RlcCBjYWxsYmFja3Ncblx0XHRcdHRoaXMuYmVmb3JlU3RlcENhbGxiYWNrcy5mb3JFYWNoKChjYWxsYmFjaykgPT4ge1xuXHRcdFx0XHRjYWxsYmFjayh3b3JsZCk7XG5cdFx0XHR9KTtcblxuXHRcdFx0d29ybGQudGltZXN0ZXAgPSBpbm5lckRlbHRhO1xuXHRcdFx0d29ybGQuc3RlcChldmVudFF1ZXVlKTtcblxuXHRcdFx0Ly8gVHJpZ2dlciBhZnRlclN0ZXAgY2FsbGJhY2tzXG5cdFx0XHR0aGlzLmFmdGVyU3RlcENhbGxiYWNrcy5mb3JFYWNoKChjYWxsYmFjaykgPT4ge1xuXHRcdFx0XHRjYWxsYmFjayh3b3JsZCk7XG5cdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0aWYgKHRpbWVTdGVwVmFyaWFibGUpIHtcblx0XHRcdHN0ZXBXb3JsZChjbGFtcGVkRGVsdGEpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBkb24ndCBzdGVwIHRpbWUgZm9yd2FyZHMgaWYgcGF1c2VkXG5cdFx0XHQvLyBJbmNyZWFzZSBhY2N1bXVsYXRvclxuXHRcdFx0dGhpcy5zdGVwcGluZ1N0YXRlLmFjY3VtdWxhdG9yICs9IGNsYW1wZWREZWx0YTtcblxuXHRcdFx0d2hpbGUgKHRoaXMuc3RlcHBpbmdTdGF0ZS5hY2N1bXVsYXRvciA+PSB0aW1lU3RlcCkge1xuXHRcdFx0XHQvLyBTZXQgdXAgcHJldmlvdXMgc3RhdGVcblx0XHRcdFx0Ly8gbmVlZGVkIGZvciBhY2N1cmF0ZSBpbnRlcnBvbGF0aW9ucyBpZiB0aGUgd29ybGQgc3RlcHMgbW9yZSB0aGFuIG9uY2Vcblx0XHRcdFx0aWYgKGludGVycG9sYXRlKSB7XG5cdFx0XHRcdFx0dGhpcy5zdGVwcGluZ1N0YXRlLnByZXZpb3VzU3RhdGUgPSB7fTtcblx0XHRcdFx0XHR3b3JsZC5mb3JFYWNoUmlnaWRCb2R5KChib2R5KSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnN0ZXBwaW5nU3RhdGUucHJldmlvdXNTdGF0ZVtib2R5LmhhbmRsZV0gPSB7XG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiBib2R5LnRyYW5zbGF0aW9uKCksXG5cdFx0XHRcdFx0XHRcdHJvdGF0aW9uOiBib2R5LnJvdGF0aW9uKCksXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0c3RlcFdvcmxkKHRpbWVTdGVwKTtcblx0XHRcdFx0dGhpcy5zdGVwcGluZ1N0YXRlLmFjY3VtdWxhdG9yIC09IHRpbWVTdGVwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGludGVycG9sYXRpb25BbHBoYSA9XG5cdFx0XHR0aW1lU3RlcFZhcmlhYmxlIHx8ICFpbnRlcnBvbGF0ZSB8fCBwYXVzZWQgPyAxIDogdGhpcy5zdGVwcGluZ1N0YXRlLmFjY3VtdWxhdG9yIC8gdGltZVN0ZXA7XG5cblx0XHQvLyBVcGRhdGUgbWVzaGVzXG5cdFx0dGhpcy5yaWdpZEJvZHlTdGF0ZXMuZm9yRWFjaCgoc3RhdGUsIGhhbmRsZSkgPT4ge1xuXHRcdFx0Y29uc3QgcmlnaWRCb2R5ID0gd29ybGQuZ2V0UmlnaWRCb2R5KGhhbmRsZSk7XG5cblx0XHRcdGNvbnN0IGV2ZW50cyA9IHRoaXMucmlnaWRCb2R5RXZlbnRzLmdldChoYW5kbGUpO1xuXHRcdFx0aWYgKGV2ZW50cz8ub25TbGVlcCB8fCBldmVudHM/Lm9uV2FrZSkge1xuXHRcdFx0XHRpZiAocmlnaWRCb2R5LmlzU2xlZXBpbmcoKSAmJiAhc3RhdGUuaXNTbGVlcGluZykgZXZlbnRzPy5vblNsZWVwPy4oKTtcblx0XHRcdFx0aWYgKCFyaWdpZEJvZHkuaXNTbGVlcGluZygpICYmIHN0YXRlLmlzU2xlZXBpbmcpIGV2ZW50cz8ub25XYWtlPy4oKTtcblx0XHRcdFx0c3RhdGUuaXNTbGVlcGluZyA9IHJpZ2lkQm9keS5pc1NsZWVwaW5nKCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICghcmlnaWRCb2R5IHx8IChyaWdpZEJvZHkuaXNTbGVlcGluZygpICYmICEoJ2lzSW5zdGFuY2VkTWVzaCcgaW4gc3RhdGUub2JqZWN0KSkgfHwgIXN0YXRlLnNldE1hdHJpeCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIE5ldyBzdGF0ZXNcblx0XHRcdGxldCB0ID0gcmlnaWRCb2R5LnRyYW5zbGF0aW9uKCkgYXMgVmVjdG9yMztcblx0XHRcdGxldCByID0gcmlnaWRCb2R5LnJvdGF0aW9uKCkgYXMgUXVhdGVybmlvbjtcblxuXHRcdFx0bGV0IHByZXZpb3VzU3RhdGUgPSB0aGlzLnN0ZXBwaW5nU3RhdGUucHJldmlvdXNTdGF0ZVtoYW5kbGVdO1xuXG5cdFx0XHRpZiAocHJldmlvdXNTdGF0ZSkge1xuXHRcdFx0XHQvLyBHZXQgcHJldmlvdXMgc2ltdWxhdGVkIHdvcmxkIHBvc2l0aW9uXG5cdFx0XHRcdF9tYXRyaXg0XG5cdFx0XHRcdFx0LmNvbXBvc2UocHJldmlvdXNTdGF0ZS5wb3NpdGlvbiBhcyBWZWN0b3IzLCByYXBpZXJRdWF0ZXJuaW9uVG9RdWF0ZXJuaW9uKHByZXZpb3VzU3RhdGUucm90YXRpb24pLCBzdGF0ZS5zY2FsZSlcblx0XHRcdFx0XHQucHJlbXVsdGlwbHkoc3RhdGUuaW52ZXJ0ZWRXb3JsZE1hdHJpeClcblx0XHRcdFx0XHQuZGVjb21wb3NlKF9wb3NpdGlvbiwgX3JvdGF0aW9uLCBfc2NhbGUpO1xuXG5cdFx0XHRcdC8vIEFwcGx5IHByZXZpb3VzIHRpY2sgcG9zaXRpb25cblx0XHRcdFx0aWYgKHN0YXRlLm1lc2hUeXBlID09ICdtZXNoJykge1xuXHRcdFx0XHRcdHN0YXRlLm9iamVjdC5wb3NpdGlvbi5jb3B5KF9wb3NpdGlvbik7XG5cdFx0XHRcdFx0c3RhdGUub2JqZWN0LnF1YXRlcm5pb24uY29weShfcm90YXRpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIEdldCBuZXcgcG9zaXRpb25cblx0XHRcdF9tYXRyaXg0XG5cdFx0XHRcdC5jb21wb3NlKHQsIHJhcGllclF1YXRlcm5pb25Ub1F1YXRlcm5pb24ociksIHN0YXRlLnNjYWxlKVxuXHRcdFx0XHQucHJlbXVsdGlwbHkoc3RhdGUuaW52ZXJ0ZWRXb3JsZE1hdHJpeClcblx0XHRcdFx0LmRlY29tcG9zZShfcG9zaXRpb24sIF9yb3RhdGlvbiwgX3NjYWxlKTtcblxuXHRcdFx0aWYgKHN0YXRlLm1lc2hUeXBlID09ICdpbnN0YW5jZWRNZXNoJykge1xuXHRcdFx0XHRzdGF0ZS5zZXRNYXRyaXgoX21hdHJpeDQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gSW50ZXJwb2xhdGUgdG8gbmV3IHBvc2l0aW9uXG5cdFx0XHRcdHN0YXRlLm9iamVjdC5wb3NpdGlvbi5sZXJwKF9wb3NpdGlvbiwgaW50ZXJwb2xhdGlvbkFscGhhKTtcblx0XHRcdFx0c3RhdGUub2JqZWN0LnF1YXRlcm5pb24uc2xlcnAoX3JvdGF0aW9uLCBpbnRlcnBvbGF0aW9uQWxwaGEpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0ZXZlbnRRdWV1ZS5kcmFpbkNvbGxpc2lvbkV2ZW50cygoaGFuZGxlMSwgaGFuZGxlMiwgc3RhcnRlZCkgPT4ge1xuXHRcdFx0Y29uc3Qgc291cmNlMSA9IHRoaXMuZ2V0U291cmNlRnJvbUNvbGxpZGVySGFuZGxlKGhhbmRsZTEpO1xuXHRcdFx0Y29uc3Qgc291cmNlMiA9IHRoaXMuZ2V0U291cmNlRnJvbUNvbGxpZGVySGFuZGxlKGhhbmRsZTIpO1xuXG5cdFx0XHQvLyBDb2xsaXNpb24gRXZlbnRzXG5cdFx0XHRpZiAoIXNvdXJjZTE/LmNvbGxpZGVyLm9iamVjdCB8fCAhc291cmNlMj8uY29sbGlkZXIub2JqZWN0KSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgY29sbGlzaW9uUGF5bG9hZDEgPSB0aGlzLmdldENvbGxpc2lvblBheWxvYWRGcm9tU291cmNlKHNvdXJjZTEsIHNvdXJjZTIpO1xuXHRcdFx0Y29uc3QgY29sbGlzaW9uUGF5bG9hZDIgPSB0aGlzLmdldENvbGxpc2lvblBheWxvYWRGcm9tU291cmNlKHNvdXJjZTIsIHNvdXJjZTEpO1xuXG5cdFx0XHRpZiAoc3RhcnRlZCkge1xuXHRcdFx0XHR3b3JsZC5jb250YWN0UGFpcihzb3VyY2UxLmNvbGxpZGVyLm9iamVjdCwgc291cmNlMi5jb2xsaWRlci5vYmplY3QsIChtYW5pZm9sZCwgZmxpcHBlZCkgPT4ge1xuXHRcdFx0XHRcdC8qIFJpZ2lkQm9keSBldmVudHMgKi9cblx0XHRcdFx0XHRzb3VyY2UxLnJpZ2lkQm9keS5ldmVudHM/Lm9uQ29sbGlzaW9uRW50ZXI/Lih7IC4uLmNvbGxpc2lvblBheWxvYWQxLCBtYW5pZm9sZCwgZmxpcHBlZCB9KTtcblx0XHRcdFx0XHRzb3VyY2UyLnJpZ2lkQm9keS5ldmVudHM/Lm9uQ29sbGlzaW9uRW50ZXI/Lih7IC4uLmNvbGxpc2lvblBheWxvYWQyLCBtYW5pZm9sZCwgZmxpcHBlZCB9KTtcblxuXHRcdFx0XHRcdC8qIENvbGxpZGVyIGV2ZW50cyAqL1xuXHRcdFx0XHRcdHNvdXJjZTEuY29sbGlkZXIuZXZlbnRzPy5vbkNvbGxpc2lvbkVudGVyPy4oeyAuLi5jb2xsaXNpb25QYXlsb2FkMSwgbWFuaWZvbGQsIGZsaXBwZWQgfSk7XG5cdFx0XHRcdFx0c291cmNlMi5jb2xsaWRlci5ldmVudHM/Lm9uQ29sbGlzaW9uRW50ZXI/Lih7IC4uLmNvbGxpc2lvblBheWxvYWQyLCBtYW5pZm9sZCwgZmxpcHBlZCB9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzb3VyY2UxLnJpZ2lkQm9keS5ldmVudHM/Lm9uQ29sbGlzaW9uRXhpdD8uKGNvbGxpc2lvblBheWxvYWQxKTtcblx0XHRcdFx0c291cmNlMi5yaWdpZEJvZHkuZXZlbnRzPy5vbkNvbGxpc2lvbkV4aXQ/Lihjb2xsaXNpb25QYXlsb2FkMik7XG5cdFx0XHRcdHNvdXJjZTEuY29sbGlkZXIuZXZlbnRzPy5vbkNvbGxpc2lvbkV4aXQ/Lihjb2xsaXNpb25QYXlsb2FkMSk7XG5cdFx0XHRcdHNvdXJjZTIuY29sbGlkZXIuZXZlbnRzPy5vbkNvbGxpc2lvbkV4aXQ/Lihjb2xsaXNpb25QYXlsb2FkMik7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNlbnNvciBJbnRlcnNlY3Rpb25zXG5cdFx0XHRpZiAoc3RhcnRlZCkge1xuXHRcdFx0XHRpZiAod29ybGQuaW50ZXJzZWN0aW9uUGFpcihzb3VyY2UxLmNvbGxpZGVyLm9iamVjdCwgc291cmNlMi5jb2xsaWRlci5vYmplY3QpKSB7XG5cdFx0XHRcdFx0c291cmNlMS5yaWdpZEJvZHkuZXZlbnRzPy5vbkludGVyc2VjdGlvbkVudGVyPy4oY29sbGlzaW9uUGF5bG9hZDEpO1xuXHRcdFx0XHRcdHNvdXJjZTIucmlnaWRCb2R5LmV2ZW50cz8ub25JbnRlcnNlY3Rpb25FbnRlcj8uKGNvbGxpc2lvblBheWxvYWQyKTtcblx0XHRcdFx0XHRzb3VyY2UxLmNvbGxpZGVyLmV2ZW50cz8ub25JbnRlcnNlY3Rpb25FbnRlcj8uKGNvbGxpc2lvblBheWxvYWQxKTtcblx0XHRcdFx0XHRzb3VyY2UyLmNvbGxpZGVyLmV2ZW50cz8ub25JbnRlcnNlY3Rpb25FbnRlcj8uKGNvbGxpc2lvblBheWxvYWQyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c291cmNlMS5yaWdpZEJvZHkuZXZlbnRzPy5vbkludGVyc2VjdGlvbkV4aXQ/Lihjb2xsaXNpb25QYXlsb2FkMSk7XG5cdFx0XHRcdHNvdXJjZTIucmlnaWRCb2R5LmV2ZW50cz8ub25JbnRlcnNlY3Rpb25FeGl0Py4oY29sbGlzaW9uUGF5bG9hZDIpO1xuXHRcdFx0XHRzb3VyY2UxLmNvbGxpZGVyLmV2ZW50cz8ub25JbnRlcnNlY3Rpb25FeGl0Py4oY29sbGlzaW9uUGF5bG9hZDEpO1xuXHRcdFx0XHRzb3VyY2UyLmNvbGxpZGVyLmV2ZW50cz8ub25JbnRlcnNlY3Rpb25FeGl0Py4oY29sbGlzaW9uUGF5bG9hZDIpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0ZXZlbnRRdWV1ZS5kcmFpbkNvbnRhY3RGb3JjZUV2ZW50cygoZXZlbnQpID0+IHtcblx0XHRcdGNvbnN0IHNvdXJjZTEgPSB0aGlzLmdldFNvdXJjZUZyb21Db2xsaWRlckhhbmRsZShldmVudC5jb2xsaWRlcjEoKSk7XG5cdFx0XHRjb25zdCBzb3VyY2UyID0gdGhpcy5nZXRTb3VyY2VGcm9tQ29sbGlkZXJIYW5kbGUoZXZlbnQuY29sbGlkZXIyKCkpO1xuXG5cdFx0XHQvLyBDb2xsaXNpb24gRXZlbnRzXG5cdFx0XHRpZiAoIXNvdXJjZTE/LmNvbGxpZGVyLm9iamVjdCB8fCAhc291cmNlMj8uY29sbGlkZXIub2JqZWN0KSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgY29sbGlzaW9uUGF5bG9hZDEgPSB0aGlzLmdldENvbGxpc2lvblBheWxvYWRGcm9tU291cmNlKHNvdXJjZTEsIHNvdXJjZTIpO1xuXHRcdFx0Y29uc3QgY29sbGlzaW9uUGF5bG9hZDIgPSB0aGlzLmdldENvbGxpc2lvblBheWxvYWRGcm9tU291cmNlKHNvdXJjZTIsIHNvdXJjZTEpO1xuXG5cdFx0XHRzb3VyY2UxLnJpZ2lkQm9keS5ldmVudHM/Lm9uQ29udGFjdEZvcmNlPy4oe1xuXHRcdFx0XHQuLi5jb2xsaXNpb25QYXlsb2FkMSxcblx0XHRcdFx0dG90YWxGb3JjZTogZXZlbnQudG90YWxGb3JjZSgpLFxuXHRcdFx0XHR0b3RhbEZvcmNlTWFnbml0dWRlOiBldmVudC50b3RhbEZvcmNlTWFnbml0dWRlKCksXG5cdFx0XHRcdG1heEZvcmNlRGlyZWN0aW9uOiBldmVudC5tYXhGb3JjZURpcmVjdGlvbigpLFxuXHRcdFx0XHRtYXhGb3JjZU1hZ25pdHVkZTogZXZlbnQubWF4Rm9yY2VNYWduaXR1ZGUoKSxcblx0XHRcdH0pO1xuXG5cdFx0XHRzb3VyY2UyLnJpZ2lkQm9keS5ldmVudHM/Lm9uQ29udGFjdEZvcmNlPy4oe1xuXHRcdFx0XHQuLi5jb2xsaXNpb25QYXlsb2FkMixcblx0XHRcdFx0dG90YWxGb3JjZTogZXZlbnQudG90YWxGb3JjZSgpLFxuXHRcdFx0XHR0b3RhbEZvcmNlTWFnbml0dWRlOiBldmVudC50b3RhbEZvcmNlTWFnbml0dWRlKCksXG5cdFx0XHRcdG1heEZvcmNlRGlyZWN0aW9uOiBldmVudC5tYXhGb3JjZURpcmVjdGlvbigpLFxuXHRcdFx0XHRtYXhGb3JjZU1hZ25pdHVkZTogZXZlbnQubWF4Rm9yY2VNYWduaXR1ZGUoKSxcblx0XHRcdH0pO1xuXG5cdFx0XHRzb3VyY2UxLmNvbGxpZGVyLmV2ZW50cz8ub25Db250YWN0Rm9yY2U/Lih7XG5cdFx0XHRcdC4uLmNvbGxpc2lvblBheWxvYWQxLFxuXHRcdFx0XHR0b3RhbEZvcmNlOiBldmVudC50b3RhbEZvcmNlKCksXG5cdFx0XHRcdHRvdGFsRm9yY2VNYWduaXR1ZGU6IGV2ZW50LnRvdGFsRm9yY2VNYWduaXR1ZGUoKSxcblx0XHRcdFx0bWF4Rm9yY2VEaXJlY3Rpb246IGV2ZW50Lm1heEZvcmNlRGlyZWN0aW9uKCksXG5cdFx0XHRcdG1heEZvcmNlTWFnbml0dWRlOiBldmVudC5tYXhGb3JjZU1hZ25pdHVkZSgpLFxuXHRcdFx0fSk7XG5cblx0XHRcdHNvdXJjZTIuY29sbGlkZXIuZXZlbnRzPy5vbkNvbnRhY3RGb3JjZT8uKHtcblx0XHRcdFx0Li4uY29sbGlzaW9uUGF5bG9hZDIsXG5cdFx0XHRcdHRvdGFsRm9yY2U6IGV2ZW50LnRvdGFsRm9yY2UoKSxcblx0XHRcdFx0dG90YWxGb3JjZU1hZ25pdHVkZTogZXZlbnQudG90YWxGb3JjZU1hZ25pdHVkZSgpLFxuXHRcdFx0XHRtYXhGb3JjZURpcmVjdGlvbjogZXZlbnQubWF4Rm9yY2VEaXJlY3Rpb24oKSxcblx0XHRcdFx0bWF4Rm9yY2VNYWduaXR1ZGU6IGV2ZW50Lm1heEZvcmNlTWFnbml0dWRlKCksXG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHdvcmxkLmZvckVhY2hBY3RpdmVSaWdpZEJvZHkoKCkgPT4ge1xuXHRcdFx0dGhpcy5zdG9yZS5zbmFwc2hvdC5pbnZhbGlkYXRlKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGdldFNvdXJjZUZyb21Db2xsaWRlckhhbmRsZShoYW5kbGU6IENvbGxpZGVySGFuZGxlKSB7XG5cdFx0Y29uc3Qgd29ybGQgPSB0aGlzLndvcmxkU2luZ2xldG9uKCk7XG5cdFx0aWYgKCF3b3JsZCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgY29sbGlkZXIgPSB3b3JsZC5wcm94eS5nZXRDb2xsaWRlcihoYW5kbGUpO1xuXHRcdGNvbnN0IGNvbEV2ZW50cyA9IHRoaXMuY29sbGlkZXJFdmVudHMuZ2V0KGhhbmRsZSk7XG5cdFx0Y29uc3QgY29sbGlkZXJTdGF0ZSA9IHRoaXMuY29sbGlkZXJTdGF0ZXMuZ2V0KGhhbmRsZSk7XG5cblx0XHRjb25zdCByaWdpZEJvZHlIYW5kbGUgPSBjb2xsaWRlci5wYXJlbnQoKT8uaGFuZGxlO1xuXHRcdGNvbnN0IHJpZ2lkQm9keSA9IHJpZ2lkQm9keUhhbmRsZSAhPT0gdW5kZWZpbmVkID8gd29ybGQucHJveHkuZ2V0UmlnaWRCb2R5KHJpZ2lkQm9keUhhbmRsZSkgOiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgcmlnaWRCb2R5RXZlbnRzID1cblx0XHRcdHJpZ2lkQm9keSAmJiByaWdpZEJvZHlIYW5kbGUgIT09IHVuZGVmaW5lZCA/IHRoaXMucmlnaWRCb2R5RXZlbnRzLmdldChyaWdpZEJvZHlIYW5kbGUpIDogdW5kZWZpbmVkO1xuXHRcdGNvbnN0IHJpZ2lkQm9keVN0YXRlID0gcmlnaWRCb2R5SGFuZGxlICE9PSB1bmRlZmluZWQgPyB0aGlzLnJpZ2lkQm9keVN0YXRlcy5nZXQocmlnaWRCb2R5SGFuZGxlKSA6IHVuZGVmaW5lZDtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRjb2xsaWRlcjogeyBvYmplY3Q6IGNvbGxpZGVyLCBldmVudHM6IGNvbEV2ZW50cywgc3RhdGU6IGNvbGxpZGVyU3RhdGUgfSxcblx0XHRcdHJpZ2lkQm9keTogeyBvYmplY3Q6IHJpZ2lkQm9keSwgZXZlbnRzOiByaWdpZEJvZHlFdmVudHMsIHN0YXRlOiByaWdpZEJvZHlTdGF0ZSB9LFxuXHRcdH0gYXMgTmd0ckNvbGxpc2lvblNvdXJjZTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q29sbGlzaW9uUGF5bG9hZEZyb21Tb3VyY2UodGFyZ2V0OiBOZ3RyQ29sbGlzaW9uU291cmNlLCBvdGhlcjogTmd0ckNvbGxpc2lvblNvdXJjZSk6IE5ndHJDb2xsaXNpb25QYXlsb2FkIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dGFyZ2V0OiB7XG5cdFx0XHRcdHJpZ2lkQm9keTogdGFyZ2V0LnJpZ2lkQm9keS5vYmplY3QsXG5cdFx0XHRcdGNvbGxpZGVyOiB0YXJnZXQuY29sbGlkZXIub2JqZWN0LFxuXHRcdFx0XHRjb2xsaWRlck9iamVjdDogdGFyZ2V0LmNvbGxpZGVyLnN0YXRlPy5vYmplY3QsXG5cdFx0XHRcdHJpZ2lkQm9keU9iamVjdDogdGFyZ2V0LnJpZ2lkQm9keS5zdGF0ZT8ub2JqZWN0LFxuXHRcdFx0fSxcblx0XHRcdG90aGVyOiB7XG5cdFx0XHRcdHJpZ2lkQm9keTogb3RoZXIucmlnaWRCb2R5Lm9iamVjdCxcblx0XHRcdFx0Y29sbGlkZXI6IG90aGVyLmNvbGxpZGVyLm9iamVjdCxcblx0XHRcdFx0Y29sbGlkZXJPYmplY3Q6IG90aGVyLmNvbGxpZGVyLnN0YXRlPy5vYmplY3QsXG5cdFx0XHRcdHJpZ2lkQm9keU9iamVjdDogb3RoZXIucmlnaWRCb2R5LnN0YXRlPy5vYmplY3QsXG5cdFx0XHR9LFxuXHRcdH07XG5cdH1cbn1cbiJdfQ==
|