tc-checking-tool-rcl 0.9.41 → 0.9.42

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.
@@ -1287,7 +1287,7 @@ var Checker = function Checker(_ref) {
1287
1287
  seeMoreLabel: translate('see_more'),
1288
1288
  showSeeMoreButton: false,
1289
1289
  title: groupTitle
1290
- }), false && /*#__PURE__*/_react["default"].createElement(_VerseCheck["default"], {
1290
+ }), /*#__PURE__*/_react["default"].createElement(_VerseCheck["default"], {
1291
1291
  alignedGLText: alignedGLText,
1292
1292
  bookDetails: bookDetails,
1293
1293
  bookmarkEnabled: bookmarkEnabled,
@@ -1367,4 +1367,4 @@ Checker.propTypes = {
1367
1367
  translate: _propTypes["default"].func.isRequired
1368
1368
  };
1369
1369
  var _default = exports["default"] = Checker;
1370
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9sb2Rhc2giLCJfR3JvdXBNZW51Q29tcG9uZW50IiwiX3dvcmRBbGlnbmVyTGliIiwiX2RlZXBFcXVhbCIsIl90d0FydGljbGVIZWxwZXJzIiwiX0NoZWNrSW5mb0NhcmQiLCJfdG5BcnRpY2xlSGVscGVycyIsIl9TY3JpcHR1cmVQYW5lIiwiX1BvcG92ZXJDb250YWluZXIiLCJfQm9va3NPZlRoZUJpYmxlIiwiX2NvbXBsZXhTY3JpcHRGb250cyIsIl9UcmFuc2xhdGlvbkhlbHBzIiwidEhlbHBzSGVscGVycyIsIl9WZXJzZUNoZWNrIiwiX2NoZWNrSW5mb0NhcmRIZWxwZXJzIiwiZSIsIl9fZXNNb2R1bGUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsImRvbmUiLCJ2YWx1ZSIsIlR5cGVFcnJvciIsImEiLCJ1IiwibmV4dCIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJsIiwibG9jYWxTdHlsZXMiLCJjb250YWluZXJEaXYiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsIndpZHRoIiwiaGVpZ2h0IiwiY2VudGVyRGl2Iiwib3ZlcmZsb3dYIiwibWFyZ2luTGVmdCIsInNjcmlwdHVyZVBhbmVEaXYiLCJmbGV4U2hyaW5rIiwicGFkZGluZ0JvdHRvbSIsInRyYW5zbGF0aW9uV29yZHMiLCJleHBvcnRzIiwidHJhbnNsYXRpb25Ob3RlcyIsIm1heGltdW1TZWxlY3Rpb25zIiwiY29uc29sZSIsImxvZyIsIkNoZWNrZXIiLCJfcmVmIiwiX3RhcmdldExhbmd1YWdlRGV0YWlsIiwiX3RhcmdldExhbmd1YWdlRGV0YWlsMiIsIl90YXJnZXRfbGFuZ3VhZ2UkYm9vayIsImFsaWduZWRHbEJpYmxlIiwiYmlibGVzXyIsImJpYmxlcyIsImNoYW5nZWRDdXJyZW50Q2hlY2siLCJjaGFuZ2VUYXJnZXRWZXJzZSIsImNoZWNraW5nRGF0YSIsImNoZWNrVHlwZSIsImNvbnRleHRJZCIsImdldExleGljb25EYXRhIiwiZ2xXb3Jkc0RhdGEiLCJpbml0aWFsU2V0dGluZ3MiLCJzYXZlQ2hlY2tpbmdEYXRhIiwic2F2ZVNldHRpbmdzIiwic2hvd0RvY3VtZW50Iiwic3R5bGVzIiwidGFyZ2V0QmlibGVfIiwidGFyZ2V0QmlibGUiLCJ0YXJnZXRMYW5ndWFnZURldGFpbHMiLCJ0cmFuc2xhdGUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsInBhbmVTZXR0aW5ncyIsInBhbmVLZXlTZXR0aW5ncyIsInRvb2xzU2V0dGluZ3MiLCJtYW5pZmVzdCIsIl91c2VTdGF0ZTIiLCJzZXR0aW5ncyIsIl9zZXRTZXR0aW5ncyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2V0QmlibGVzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZXRUYXJnZXRCaWJsZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwidGVtcENoZWNraW5nRGF0YSIsInNldFRlbXBDaGVja2luZ0RhdGEiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImxvY2FsQ2hlY2tpbmdEYXRhIiwic2V0TG9jYWxDaGVja2luZ0RhdGEiLCJfdXNlU3RhdGUxIiwiYWxpZ25lZEdMVGV4dCIsImFydGljbGUiLCJjdXJyZW50Q2hlY2siLCJjdXJyZW50Q2hlY2tpbmdEYXRhIiwiZ3JvdXBUaXRsZSIsImdyb3VwUGhyYXNlIiwiZ3JvdXBzRGF0YSIsImdyb3Vwc0luZGV4IiwiaXNDb21tZW50Q2hhbmdlZCIsImlzVmVyc2VDaGFuZ2VkIiwibW9kZSIsIm5ld1ZlcnNlVGV4dCIsInBvcG92ZXJQcm9wcyIsInBvcG92ZXJWaXNpYmlsaXR5Iiwic2hvd0hlbHBzTW9kYWwiLCJzaG93SGVscHMiLCJuZXdUYWdzIiwidmVyc2VUZXh0IiwiX3VzZVN0YXRlMTAiLCJzdGF0ZSIsIl9zZXRTdGF0ZSIsInNldFN0YXRlIiwibmV3U3RhdGUiLCJwcmV2U3RhdGUiLCJnZXRDdXJyZW50VmFsdWVGb3IiLCJrZXkiLCJnZXRUZW1wVmFsdWVGb3IiLCJjdXJyZW50U2VsZWN0aW9ucyIsInRlbXBTZWxlY3Rpb25zIiwidGVtcE5vdGhpbmdUb1NlbGVjdCIsImN1cnJlbnROb3RoaW5nVG9TZWxlY3QiLCJncm91cHNEYXRhTG9hZGVkIiwidXBkYXRlTW9kZUZvclNlbGVjdGlvbnMiLCJuZXdTZWxlY3Rpb25zIiwibm90aGluZ1RvU2VsZWN0Iiwibm9TZWxlY3Rpb25zIiwibmV3TW9kZSIsInVzZUVmZmVjdCIsImhhdmVEYXRhIiwiZ3JvdXBzRGF0YUluaXRpYWxpemVkIiwiZmxhdHRlbmVkR3JvdXBEYXRhIiwiZ3JvdXBEYXRhSGVscGVycyIsImZsYXR0ZW5Hcm91cERhdGEiLCJwYXJzZVRuVG9JbmRleCIsInBhcnNlVHdUb0luZGV4IiwiY2hlY2siLCJmaW5kQ2hlY2siLCJtb2RpZmllZCIsInNlbGVjdGlvbnNIZWxwZXJzIiwidmFsaWRhdGVTZWxlY3Rpb25zRm9yQWxsQ2hlY2tzIiwiaW52YWxpZGF0ZWQiLCJjb25jYXQiLCJfc2F2ZUNoZWNraW5nRGF0YSIsInVwZGF0ZUNvbnRleHQiLCJzZWxlY3Rpb25zIiwibmV3Q2hlY2siLCJncm91cHNJbmRleF8iLCJ1bmRlZmluZWQiLCJyZWZlcmVuY2UiLCJ2ZXJzZUhlbHBlcnMiLCJnZXRWZXJzZVRleHRGcm9tQmlibGUiLCJnZXRBbGlnbmVkR0xUZXh0IiwiZ2V0VGl0bGVGcm9tSW5kZXgiLCJncm91cElkIiwib2NjdXJyZW5jZU5vdGUiLCJnZXRQaHJhc2VGcm9tVHciLCJncm91cERhdGEiLCJhcnRpY2xlcyIsIl9hcnRpY2xlIiwiYXJ0aWNsZUlkIiwiZ3JvdXBzSWRzIiwiX2kiLCJfZ3JvdXBzSWRzIiwiX2dyb3VwSWQiLCJncm91cCIsImN1cnJlbnRBcnRpY2xlTWFya2Rvd24iLCJjb252ZXJ0TWFya2Rvd25MaW5rcyIsImdhdGV3YXlMYW5ndWFnZUlkIiwiY29tbWVudFRleHQiLCJib29rSWQiLCJib29rIiwiaWQiLCJib29rTmFtZSIsImJvb2tEZXRhaWxzIiwidGFyZ2V0TGFuZ3VhZ2VGb250IiwicHJvamVjdEZvbnQiLCJjdXJyZW50Q29udGV4dElkIiwic2V0VG9vbFNldHRpbmdzIiwiTkFNRVNQQUNFIiwiZmllbGROYW1lIiwiZmllbGRWYWx1ZSIsIl90b29sc1NldHRpbmdzIiwiY29tcG9uZW50U2V0dGluZ3MiLCJzZXRTZXR0aW5ncyIsIl9zYXZlU2V0dGluZ3MiLCJfc2V0dGluZ3MiLCJuZXdTZXR0aW5ncyIsIl9wYW5lU2V0dGluZ3MiLCJfcGFuZVNldHRpbmciLCJfcGFuZUtleVNldHRpbmdzIiwiX2kyIiwiX2tleXMiLCJkb1NhdmUiLCJzZXRUb29sU2V0dGluZ3NTY3JpcHR1cmUiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImxhbmd1YWdlSWQiLCJiaWJsZUlkIiwib3duZXIiLCJlcnIiLCJhZGRPYmplY3RQcm9wZXJ0eVRvTWFuaWZlc3QiLCJfbWFuaWZlc3QiLCJhcHBTZXR0aW5ncyIsIl9hcHBTZXR0aW5ncyIsIm9wZW5BbGVydERpYWxvZyIsImNoZWNrSWZWZXJzZUNoYW5nZWQiLCJfbmV3VmVyc2VUZXh0IiwidGFyZ2V0IiwiX2lzVmVyc2VDaGFuZ2VkIiwiaGFuZGxlRWRpdFZlcnNlIiwiY2FuY2VsRWRpdFZlcnNlIiwic2F2ZUVkaXRWZXJzZSIsIl9jdXJyZW50Q29udGV4dElkJHJlZiIsImNoYXB0ZXIiLCJ2ZXJzZSIsInZlcnNlUmVmIiwidmVyc2VTcGFuIiwiYmVmb3JlIiwiZWRpdFRhcmdldFZlcnNlIiwiaGFuZGxlR29Ub05leHQiLCJuZXh0Q2hlY2siLCJmaW5kTmV4dENoZWNrIiwiY2hhbmdlQ3VycmVudENoZWNrXyIsImhhbmRsZUdvVG9QcmV2aW91cyIsInByZXZpb3VzQ2hlY2siLCJmaW5kUHJldmlvdXNDaGVjayIsImhhbmRsZVRhZ3NDaGVja2JveCIsInRhZyIsImN1cnJlbnRUYWdzIiwidGFnSW5kZXgiLCJpbmRleE9mIiwiX25ld1RhZ3MiLCJjb3B5Iiwic3BsaWNlIiwidmFsaWRhdGVTZWxlY3Rpb25zIiwidmVyc2VUZXh0XyIsInNlbGVjdGlvbnNfIiwidmFsaWRhdGVWZXJzZVNlbGVjdGlvbnMiLCJ1bmZpbHRlcmVkVmVyc2VUZXh0IiwidXNlTWVtbyIsInVuZmlsdGVyZWRWZXJzZVRleHRfIiwiX3RhcmdldEJpYmxlJGNoYXB0ZXIiLCJ2ZXJzZURhdGEiLCJVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInNldFRlbXBDaGVja2luZ0l0ZW0iLCJuZXdDaGVja2luZ0RhdGEiLCJjaGFuZ2VTZWxlY3Rpb25zSW5Mb2NhbFN0YXRlIiwidG9nZ2xlTm90aGluZ1RvU2VsZWN0Iiwic2VsZWN0IiwibmV3Q29udGV4dCIsIm5vQ2hlY2siLCJuZXdDb250ZXh0SWQiLCJzZWxlY3Rpb25zVW5jaGFuZ2VkIiwiaXNFcXVhbCIsImRpcmVjdGlvbiIsImJvb2ttYXJrRW5hYmxlZCIsImlzVmVyc2VFZGl0ZWQiLCJpc1ZlcnNlSW52YWxpZGF0ZWQiLCJfc2F2ZVNlbGVjdGlvbiIsIl9jbG9uZURhdGFGb3JTYXZpbmciLCJjbG9uZURhdGFGb3JTYXZpbmciLCJjaGVja0luR3JvdXBzRGF0YSIsIl9jdXJyZW50Q2hlY2siLCJfbmV3Q2hlY2tpbmdEYXRhIiwiZGVsZXRlVGVtcENoZWNraW5nRGF0YSIsInVwZGF0ZVZhbHVlc0luQ2hlY2tEYXRhIiwiX2dyb3Vwc0RhdGEiLCJfIiwiY2xvbmVEZWVwIiwiY2F0ZWdvcnkiLCJuZXdDaGVja0RhdGEiLCJfaTMiLCJfT2JqZWN0JGtleXMiLCJuZXdDaGVja2luZ1ZhbHVlIiwiX3NhdmVEYXRhIiwibmV3RGF0YSIsIl9jbG9uZURhdGFGb3JTYXZpbmcyIiwiX2k0IiwiX09iamVjdCRrZXlzMiIsImNoYW5nZWREYXRhIiwiX2k1IiwiX09iamVjdCRrZXlzMyIsIl90ZW1wQ2hlY2tpbmdEYXRhIiwiY2FuY2VsU2VsZWN0aW9uIiwiY2xlYXJTZWxlY3Rpb24iLCJ0b2dnbGVCb29rbWFyayIsInJlbWluZGVycyIsImNoYW5nZU1vZGUiLCJjaGVja0lmQ29tbWVudENoYW5nZWQiLCJuZXdjb21tZW50Iiwib2xkY29tbWVudCIsImNhbmNlbENvbW1lbnQiLCJzYXZlQ29tbWVudCIsIm5ld0NvbW1lbnQiLCJjb21tZW50cyIsImhhbmRsZUNvbW1lbnQiLCJwcmV2ZW50RGVmYXVsdCIsInJlYWR5VG9EaXNwbGF5Q2hlY2tlciIsImdldExleGljb25EYXRhXyIsImxleGljb25JZCIsImVudHJ5SWQiLCJsZXhpY29uRGF0YSIsIm9uQ2xvc2VQb3BvdmVyIiwic2hvd1BvcG92ZXIiLCJ0aXRsZSIsImJvZHlUZXh0IiwicG9zaXRpb25Db29yZCIsInRvZ2dsZUhlbHBzTW9kYWwiLCJfc2hvd0hlbHBzTW9kYWwiLCJ0b2dnbGVIZWxwcyIsIl9zaG93SGVscHMiLCJzYXZlQmlibGVUb0tleSIsImtleUdyb3VwIiwib2xkVmVyc2VUZXh0IiwiX2JpYmxlcyIsIl90YXJnZXRCaWJsZSIsInRhcmdldEJvb2siLCJ0YXJnZXRDaGFwdGVyIiwiY29udmVydFZlcnNlRGF0YVRvVVNGTSIsImN1cnJlbnRDaGFwdGVyRGF0YSIsImN1cnJlbnRWZXJzZURhdGEiLCJfQWxpZ25tZW50SGVscGVycyR1cGQiLCJBbGlnbm1lbnRIZWxwZXJzIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHMiLCJ1cGRhdGVTZXR0aW5ncyIsInJlbW92ZVVzZm1NYXJrZXJzIiwidmVyc2VFZGl0cyIsInZhbGlkYXRlQWxsU2VsZWN0aW9uc0ZvclZlcnNlIiwiX2N1cnJlbnRDaGVjayRjb250ZXh0IiwiX2NoZWNrJGNvbnRleHRJZCIsImN1cnJlbnRDaGVja0lkIiwiY2hlY2tJZCIsIm5ld0JpYmxlcyIsIl90YXJnZXRCaWJsZSRtYW5pZmVzdCIsIl90YXJnZXRCaWJsZSRtYW5pZmVzdDIiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiYmlibGUiLCJOVF9PUklHX0xBTkciLCJPVF9PUklHX0xBTkciLCJpbml0aWFsUGFuZVNldHRpbmdzIiwibGFuZ0tleSIsInBhbmUiLCJsYW5ndWFnZV9uYW1lIiwiZHVibGluX2NvcmUiLCJsYW5ndWFnZSIsIl9nZXRTY3JpcHR1cmVGcm9tUmVmZXJlbmNlIiwibGFuZyIsImdldFNjcmlwdHVyZUZyb21SZWZlcmVuY2UiLCJ0YXJnZXRfbGFuZ3VhZ2UiLCJwcm9qZWN0IiwiZXhwYW5kZWRTY3JpcHR1cmVQYW5lVGl0bGUiLCJzdHlsZVByb3BzIiwiX2NoZWNrZXJTdHlsZXMiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJjaGFuZ2VDdXJyZW50Q29udGV4dElkIiwiY29tcGxleFNjcmlwdEZvbnRzIiwiY3VycmVudFBhbmVTZXR0aW5ncyIsImVkaXRWZXJzZVJlZiIsImdldEF2YWlsYWJsZVNjcmlwdHVyZVBhbmVTZWxlY3Rpb25zIiwibWFrZVN1cmVCaWJsZXNMb2FkZWRGb3JUb29sIiwicHJvamVjdERldGFpbHNSZWR1Y2VyIiwib25FeHBhbmRlZFNjcmlwdHVyZVBhbmVTaG93Iiwib25MaW5rQ2xpY2siLCJvblNlZU1vcmVDbGljayIsInBocmFzZSIsInNlZU1vcmVMYWJlbCIsInNob3dTZWVNb3JlQnV0dG9uIiwiZGlhbG9nTW9kYWxWaXNpYmlsaXR5IiwiaGFuZGxlT3BlbkRpYWxvZyIsImhhbmRsZUNsb3NlRGlhbG9nIiwiaGFuZGxlU2tpcCIsImxvY2FsTm90aGluZ1RvU2VsZWN0Iiwic2F2ZVNlbGVjdGlvbiIsInRhZ3MiLCJtb2RhbEFydGljbGUiLCJleHBhbmRlZEhlbHBzQnV0dG9uSG92ZXJUZXh0IiwibW9kYWxUaXRsZSIsImlzU2hvd0hlbHBzRXhwYW5kZWQiLCJvcGVuRXhwYW5kZWRIZWxwc01vZGFsIiwic2lkZWJhclRvZ2dsZSIsImlzU2hvd0hlbHBzU2lkZWJhciIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImFycmF5IiwiZnVuYyIsImlzUmVxdWlyZWQiLCJzdHJpbmciLCJib29sIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9DaGVja2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBAZmlsZSBDaGVja2VyLmpzXG4gKlxuICogQHN5bm9wc2lzXG4gKiBUaGlzIGlzIHRoZSBtYWluIGNoZWNraW5nIGNvbXBvbmVudCB0aGF0IHByb3ZpZGVzIGFuIGludGVncmF0ZWQgaW50ZXJmYWNlIGZvciBCaWJsZSB0cmFuc2xhdGlvbiBjaGVja2luZy5cbiAqIEl0IHN1cHBvcnRzIGJvdGggVHJhbnNsYXRpb24gTm90ZXMgKFROKSBhbmQgVHJhbnNsYXRpb24gV29yZHMgKFRXKSBjaGVja2luZyB3b3JrZmxvd3MuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgQ2hlY2tlciBjb21wb25lbnQgaXMgYSBjb21wcmVoZW5zaXZlIHRvb2wgZm9yIG1hbmFnaW5nIGFuZCBwcmVzZW50aW5nIEJpYmxlIGNoZWNraW5nIGRhdGEgYW5kIHRyYW5zbGF0aW9ucy5cbiAqIEl0IGhhbmRsZXM6XG4gKiAtIExvYWRpbmcgYW5kIGRpc3BsYXlpbmcgY2hlY2tpbmcgZGF0YSAodHJhbnNsYXRpb24gbm90ZXMgb3IgdHJhbnNsYXRpb24gd29yZHMpXG4gKiAtIE1hbmFnaW5nIHVzZXIgc2VsZWN0aW9ucyBhbmQgYW5ub3RhdGlvbnMgaW4gdmVyc2VzXG4gKiAtIFByb3ZpZGluZyBtdWx0aS1wYW5lIFNjcmlwdHVyZSB2aWV3aW5nIHdpdGggdmFyaW91cyBCaWJsZSByZXNvdXJjZXNcbiAqIC0gSGFuZGxpbmcgdmVyc2UgZWRpdGluZyBhbmQgdmFsaWRhdGlvblxuICogLSBNYW5hZ2luZyBjb21tZW50cywgYm9va21hcmtzLCBhbmQgdGFncyBmb3IgY2hlY2tzXG4gKiAtIE5hdmlnYXRpbmcgYmV0d2VlbiBjaGVja3MgKG5leHQvcHJldmlvdXMpXG4gKiAtIERpc3BsYXlpbmcgdHJhbnNsYXRpb24gaGVscHMgaW4gYW4gaW50ZWdyYXRlZCBzaWRlYmFyXG4gKiAtIFBlcnNpc3RpbmcgdXNlciBzZXR0aW5ncyBhbmQgY2hlY2tpbmcgcHJvZ3Jlc3NcbiAqXG4gKiBUaGUgY29tcG9uZW50IG1haW50YWlucyBjb21wbGV4IHN0YXRlIGluY2x1ZGluZzpcbiAqIC0gQ3VycmVudCBjaGVjayBkYXRhIGFuZCBjb250ZXh0XG4gKiAtIFVzZXIgc2VsZWN0aW9ucyBhbmQgdGVtcG9yYXJ5IGNoYW5nZXNcbiAqIC0gUGFuZSBzZXR0aW5ncyBmb3IgU2NyaXB0dXJlIGRpc3BsYXlcbiAqIC0gVG9vbC1zcGVjaWZpYyBzZXR0aW5nc1xuICogLSBVSSBzdGF0ZSAobW9kZXMsIG1vZGFscywgcG9wb3ZlcnMpXG4gKlxuICogQHJlcXVpcmVtZW50c1xuICogLSBSZWFjdCAxOC4zLjErXG4gKiAtIHdvcmQtYWxpZ25lci1saWIgZm9yIHZlcnNlIGFuZCBhbGlnbm1lbnQgaGVscGVyc1xuICogLSBkZWVwLWVxdWFsIGZvciBvYmplY3QgY29tcGFyaXNvblxuICogLSBsb2Rhc2ggZm9yIGRlZXAgY2xvbmluZ1xuICogLSBNYXRlcmlhbC1VSSBjb21wb25lbnRzIGZvciBVSSBlbGVtZW50c1xuICpcbiAqIEBkZXBlbmRlbmNpZXNcbiAqIC0gR3JvdXBNZW51Q29tcG9uZW50OiBOYXZpZ2F0aW9uIG1lbnUgZm9yIGNoZWNrc1xuICogLSBDaGVja0luZm9DYXJkOiBEaXNwbGF5cyBjaGVjayB0aXRsZSBhbmQgcGhyYXNlXG4gKiAtIFNjcmlwdHVyZVBhbmU6IE11bHRpLXBhbmUgU2NyaXB0dXJlIHZpZXdlclxuICogLSBUcmFuc2xhdGlvbkhlbHBzOiBTaWRlYmFyIGZvciB0cmFuc2xhdGlvbiBoZWxwIGFydGljbGVzXG4gKiAtIFZlcnNlQ2hlY2s6IE1haW4gY2hlY2tpbmcgaW50ZXJmYWNlIGZvciB2ZXJzZXNcbiAqIC0gUG9wb3ZlckNvbnRhaW5lcjogRGlzcGxheXMgY29udGV4dHVhbCBpbmZvcm1hdGlvblxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IEdyb3VwTWVudUNvbXBvbmVudCBmcm9tICcuL0dyb3VwTWVudUNvbXBvbmVudCdcbmltcG9ydCB7XG4gIGdyb3VwRGF0YUhlbHBlcnMsXG4gIHNlbGVjdGlvbnNIZWxwZXJzLFxuICBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLFxuICB2ZXJzZUhlbHBlcnNcbn0gZnJvbSAnd29yZC1hbGlnbmVyLWxpYidcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG5pbXBvcnQge1xuICBmaW5kQ2hlY2ssXG4gIGZpbmROZXh0Q2hlY2ssXG4gIGZpbmRQcmV2aW91c0NoZWNrLFxuICBnZXRBbGlnbmVkR0xUZXh0LFxuICBnZXRQaHJhc2VGcm9tVHcsXG4gIGdldFRpdGxlRnJvbUluZGV4LFxuICBwYXJzZVR3VG9JbmRleFxufSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zbGF0aW9uSGVscHMvdHdBcnRpY2xlSGVscGVycydcbmltcG9ydCBDaGVja0luZm9DYXJkIGZyb20gJy4uL3RjX3VpX3Rvb2xraXQvQ2hlY2tJbmZvQ2FyZCdcbmltcG9ydCB7IHBhcnNlVG5Ub0luZGV4IH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2xhdGlvbkhlbHBzL3RuQXJ0aWNsZUhlbHBlcnMnXG5pbXBvcnQgU2NyaXB0dXJlUGFuZSBmcm9tICcuLi90Y191aV90b29sa2l0L1NjcmlwdHVyZVBhbmUnXG5pbXBvcnQgUG9wb3ZlckNvbnRhaW5lciBmcm9tICcuLi9jb250YWluZXJzL1BvcG92ZXJDb250YWluZXInXG5pbXBvcnQgeyBOVF9PUklHX0xBTkcsIE9UX09SSUdfTEFORyB9IGZyb20gJy4uL2NvbW1vbi9Cb29rc09mVGhlQmlibGUnXG5pbXBvcnQgY29tcGxleFNjcmlwdEZvbnRzIGZyb20gJy4uL2NvbW1vbi9jb21wbGV4U2NyaXB0Rm9udHMnXG5pbXBvcnQgVHJhbnNsYXRpb25IZWxwcyBmcm9tICcuLi90Y191aV90b29sa2l0L1RyYW5zbGF0aW9uSGVscHMnXG5pbXBvcnQgKiBhcyB0SGVscHNIZWxwZXJzIGZyb20gJy4uL2hlbHBlcnMvdEhlbHBzSGVscGVycydcbmltcG9ydCBWZXJzZUNoZWNrIGZyb20gJy4uL3RjX3VpX3Rvb2xraXQvVmVyc2VDaGVjaydcbmltcG9ydCB7IGdldFNjcmlwdHVyZUZyb21SZWZlcmVuY2UgfSBmcm9tICcuLi9oZWxwZXJzL2NoZWNrSW5mb0NhcmRIZWxwZXJzJ1xuXG5jb25zdCBsb2NhbFN0eWxlcyA9IHtcbiAgY29udGFpbmVyRGl2OntcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgd2lkdGg6ICc5N3Z3JyxcbiAgICBoZWlnaHQ6ICc2NXZ3JyxcbiAgfSxcbiAgY2VudGVyRGl2OiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIHdpZHRoOiAnODUlJyxcbiAgICBvdmVyZmxvd1g6ICdhdXRvJyxcbiAgICBtYXJnaW5MZWZ0OiAnMTBweCcsXG4gIH0sXG4gIHNjcmlwdHVyZVBhbmVEaXY6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleFNocmluazogJzAnLFxuICAgIGhlaWdodDogJzI1MHB4JyxcbiAgICBwYWRkaW5nQm90dG9tOiAnMjBweCcsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNsYXRpb25Xb3JkcyA9ICd0cmFuc2xhdGlvbldvcmRzJ1xuZXhwb3J0IGNvbnN0IHRyYW5zbGF0aW9uTm90ZXMgPSAndHJhbnNsYXRpb25Ob3RlcydcbmNvbnN0IG1heGltdW1TZWxlY3Rpb25zID0gMTBcblxuY29uc29sZS5sb2coJ0NoZWNrZXIuanMgLSBzdGFydHVwJylcbmNvbnN0IG5hbWUgPSAnQ2hlY2tlcidcblxuLyoqXG4gKiBAbmFtZXNwYWNlIENoZWNrZXJcbiAqIFRoZSBDaGVja2VyIGNvbXBvbmVudCBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYW5kIHByZXNlbnRpbmcgQmlibGUgY2hlY2tpbmcgZGF0YSBhbmQgdHJhbnNsYXRpb25zLlxuICogSXQgaGFuZGxlcyBzdGF0ZSB1cGRhdGVzLCBzZXR0aW5ncyBtYW5hZ2VtZW50LCBhbmQgZW5zdXJlcyB0aGUgbmVjZXNzYXJ5IGRhdGEgaXMgbG9hZGVkIGFuZCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHBhcmFtZXRlcnMgLSBBbiBvYmplY3Qgd2l0aCBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUgQ2hlY2tlciBjb21wb25lbnQuXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyYW1ldGVycy5hbGlnbmVkR2xCaWJsZSAtIFRoZSBhbGlnbmVkIEdhdGV3YXkgTGFuZ3VhZ2UgQmlibGUgZGF0YSB1c2VkIGZvciB0cmFuc2xhdGlvbnMuXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyYW1ldGVycy5iaWJsZXMgLSBCaWJsZSBkYXRhIGZvciB2YXJpb3VzIGxhbmd1YWdlcy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBhcmFtZXRlcnMuY2hhbmdlZEN1cnJlbnRDaGVjayAtIGNhbGxiYWNrIHRvIG5vdGlmeSBvZiBjaGFuZ2VzIGluIGNvbnRleHQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJhbWV0ZXJzLmNoYW5nZVRhcmdldFZlcnNlIC0gQSBmdW5jdGlvbiB0byB1cGRhdGUgdGhlIGN1cnJlbnQgdmVyc2UgYmVpbmcgY2hlY2tlZC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbWV0ZXJzLmNoZWNraW5nRGF0YSAtIERhdGEgcmVsYXRlZCB0byBjaGVja3MgKGUuZy4sIHRyYW5zbGF0aW9uIG5vdGVzIG9yIHRyYW5zbGF0aW9uIHdvcmRzKS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbWV0ZXJzLmNoZWNrVHlwZSAtIFRoZSB0eXBlIG9mIGNoZWNrIGJlaW5nIHBlcmZvcm1lZCAoZS5nLiwgdHJhbnNsYXRpb24gbm90ZXMsIHRyYW5zbGF0aW9uIHdvcmRzKS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbWV0ZXJzLmNvbnRleHRJZCAtIE9iamVjdCBjb250YWluaW5nIG1ldGFkYXRhIGFib3V0IHRoZSBjdXJyZW50IGdyb3VwL3ZlcnNlIGJlaW5nIHdvcmtlZCBvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBhcmFtZXRlcnMuZ2V0TGV4aWNvbkRhdGEgLSBGdW5jdGlvbiB0byByZXRyaWV2ZSBsZXhpY29uIGRhdGEuXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyYW1ldGVycy5nbFdvcmRzRGF0YSAtIERhdGEgcmVsYXRlZCB0byBHYXRld2F5IExhbmd1YWdlIHdvcmRzIGFuZCBhbGlnbm1lbnQgaW5mb3JtYXRpb24uXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyYW1ldGVycy5pbml0aWFsU2V0dGluZ3MgLSBUaGUgaW5pdGlhbCBjb25maWd1cmF0aW9uIHZhbHVlcyBmb3IgdGhlIENoZWNrZXIgY29tcG9uZW50LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcGFyYW1ldGVycy5zYXZlQ2hlY2tpbmdEYXRhIC0gRnVuY3Rpb24gdG8gc2F2ZSB0aGUgbW9kaWZpZWQgY2hlY2tpbmcgZGF0YS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBhcmFtZXRlcnMuc2F2ZVNldHRpbmdzIC0gRnVuY3Rpb24gdG8gcGVyc2lzdCB1c2VyJ3MgY29tcG9uZW50IHNldHRpbmdzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcGFyYW1ldGVycy5zaG93RG9jdW1lbnQgLSBGdW5jdGlvbiB0byBkaXNwbGF5IGEgZG9jdW1lbnQgaW4gdGhlIGludGVyZmFjZS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbWV0ZXJzLnN0eWxlcyAtIFN0eWxpbmcgaW5mb3JtYXRpb24gdG8gY3VzdG9taXplIHRoZSBjb21wb25lbnQncyBhcHBlYXJhbmNlLlxuICogQHBhcmFtIHtvYmplY3R9IHBhcmFtZXRlcnMudGFyZ2V0QmlibGUgLSBUaGUgdGFyZ2V0IEJpYmxlIGRhdGEgZm9yIHRoZSB3b3JraW5nIGxhbmd1YWdlLlxuICogQHBhcmFtIHtvYmplY3R9IHBhcmFtZXRlcnMudGFyZ2V0TGFuZ3VhZ2VEZXRhaWxzIC0gTWV0YWRhdGEgYWJvdXQgdGhlIHRhcmdldCBsYW5ndWFnZSwgaW5jbHVkaW5nIGJvb2sgYW5kIGxhbmd1YWdlLXNwZWNpZmljIGRldGFpbHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJhbWV0ZXJzLnRyYW5zbGF0ZSAtIEEgZnVuY3Rpb24gdXNlZCBmb3Igc3RyaW5nIHRyYW5zbGF0aW9ucyBpbiB0aGUgVUkuXG4gKi9cbmNvbnN0IENoZWNrZXIgPSAoe1xuICBhbGlnbmVkR2xCaWJsZSxcbiAgYmlibGVzOiBiaWJsZXNfLFxuICBjaGFuZ2VkQ3VycmVudENoZWNrLFxuICBjaGFuZ2VUYXJnZXRWZXJzZSxcbiAgY2hlY2tpbmdEYXRhLFxuICBjaGVja1R5cGUsXG4gIGNvbnRleHRJZCxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIGdsV29yZHNEYXRhLFxuICBpbml0aWFsU2V0dGluZ3MsXG4gIHNhdmVDaGVja2luZ0RhdGEsXG4gIHNhdmVTZXR0aW5ncyxcbiAgc2hvd0RvY3VtZW50LFxuICBzdHlsZXMsXG4gIHRhcmdldEJpYmxlOiB0YXJnZXRCaWJsZV8sXG4gIHRhcmdldExhbmd1YWdlRGV0YWlscyxcbiAgdHJhbnNsYXRlLFxufSkgPT4ge1xuICAvLyBNYWluIHNldHRpbmdzIHN0YXRlIC0gaW5jbHVkZXMgcGFuZSBjb25maWd1cmF0aW9uLCB0b29sIHNldHRpbmdzLCBhbmQgbWFuaWZlc3QgZGF0YVxuICBjb25zdCBbc2V0dGluZ3MsIF9zZXRTZXR0aW5nc10gPSB1c2VTdGF0ZSh7XG4gICAgcGFuZVNldHRpbmdzOiBbXSxcbiAgICBwYW5lS2V5U2V0dGluZ3M6IHt9LFxuICAgIHRvb2xzU2V0dGluZ3M6IHt9LFxuICAgIG1hbmlmZXN0OiB7fVxuICB9KVxuICBjb25zdCB7XG4gICAgcGFuZVNldHRpbmdzLFxuICAgIHBhbmVLZXlTZXR0aW5ncyxcbiAgICB0b29sc1NldHRpbmdzLFxuICAgIG1hbmlmZXN0XG4gIH0gPSBzZXR0aW5nc1xuXG4gIC8vIEJpYmxlIGRhdGEgb3JnYW5pemVkIGJ5IGxhbmd1YWdlIGFuZCBJRFxuICBjb25zdCBbYmlibGVzLCBzZXRCaWJsZXNdID0gdXNlU3RhdGUoeyB9KVxuXG4gIC8vIEN1cnJlbnQgdGFyZ2V0IEJpYmxlIGJlaW5nIGNoZWNrZWRcbiAgY29uc3QgW3RhcmdldEJpYmxlLCBzZXRUYXJnZXRCaWJsZV0gPSB1c2VTdGF0ZSh0YXJnZXRCaWJsZV8pXG5cbiAgLy8gVGVtcG9yYXJ5IGNoZWNraW5nIGRhdGEgZm9yIHVuc2F2ZWQgY2hhbmdlc1xuICBjb25zdCBbdGVtcENoZWNraW5nRGF0YSwgc2V0VGVtcENoZWNraW5nRGF0YV0gPSB1c2VTdGF0ZShudWxsKVxuXG4gIC8vIExvY2FsIGNoZWNraW5nIGRhdGEgZm9yIGN1cnJlbnQgc2Vzc2lvblxuICBjb25zdCBbbG9jYWxDaGVja2luZ0RhdGEsIHNldExvY2FsQ2hlY2tpbmdEYXRhXSA9IHVzZVN0YXRlKG51bGwpXG5cbiAgLy8gTWFpbiBjb21wb25lbnQgc3RhdGVcbiAgY29uc3QgW3N0YXRlLCBfc2V0U3RhdGVdID0gdXNlU3RhdGUoe1xuICAgIGFsaWduZWRHTFRleHQ6ICcnLCAvLyBHYXRld2F5IExhbmd1YWdlIHRleHQgYWxpZ25lZCB0byBvcmlnaW5hbFxuICAgIGFydGljbGU6IG51bGwsIC8vIEN1cnJlbnQgdHJhbnNsYXRpb24gaGVscCBhcnRpY2xlXG4gICAgY3VycmVudENoZWNrOiBudWxsLCAvLyBDdXJyZW50IGNoZWNrIGJlaW5nIHdvcmtlZCBvblxuICAgIGN1cnJlbnRDaGVja2luZ0RhdGE6IG51bGwsIC8vIEFsbCBjaGVja2luZyBkYXRhIGZvciBjdXJyZW50IGJvb2tcbiAgICBncm91cFRpdGxlOiAnJywgLy8gVGl0bGUgb2YgY3VycmVudCBjaGVjayBncm91cFxuICAgIGdyb3VwUGhyYXNlOiAnJywgLy8gUGhyYXNlIG9yIG9jY3VycmVuY2Ugbm90ZSBmb3IgY3VycmVudCBjaGVja1xuICAgIGdyb3Vwc0RhdGE6IG51bGwsIC8vIEZsYXR0ZW5lZCBncm91cCBkYXRhIGZvciBhbGwgY2hlY2tzXG4gICAgZ3JvdXBzSW5kZXg6IG51bGwsIC8vIEluZGV4IG9mIGFsbCBjaGVjayBncm91cHNcbiAgICBpc0NvbW1lbnRDaGFuZ2VkOiBmYWxzZSwgLy8gV2hldGhlciBjb21tZW50IGhhcyB1bnNhdmVkIGNoYW5nZXNcbiAgICBpc1ZlcnNlQ2hhbmdlZDogZmFsc2UsIC8vIFdoZXRoZXIgdmVyc2UgaGFzIHVuc2F2ZWQgY2hhbmdlc1xuICAgIG1vZGU6ICdkZWZhdWx0JywgLy8gQ3VycmVudCBVSSBtb2RlIChkZWZhdWx0LCBzZWxlY3QsIGVkaXQsIGNvbW1lbnQpXG4gICAgbmV3VmVyc2VUZXh0OiBudWxsLCAvLyBOZXcgdmVyc2UgdGV4dCBkdXJpbmcgZWRpdGluZ1xuICAgIHBvcG92ZXJQcm9wczoge1xuICAgICAgcG9wb3ZlclZpc2liaWxpdHk6IGZhbHNlXG4gICAgfSxcbiAgICBzaG93SGVscHNNb2RhbDogZmFsc2UsIC8vIFdoZXRoZXIgaGVscHMgbW9kYWwgaXMgc2hvd25cbiAgICBzaG93SGVscHM6IHRydWUsIC8vIFdoZXRoZXIgaGVscHMgc2lkZWJhciBpcyBzaG93blxuICAgIG5ld1RhZ3M6IG51bGwsIC8vIE5ldyB0YWdzIGJlaW5nIGFkZGVkXG4gICAgdmVyc2VUZXh0OiAnJywgLy8gQ3VycmVudCB2ZXJzZSB0ZXh0XG4gIH0pXG5cbiAgY29uc3Qge1xuICAgIGFsaWduZWRHTFRleHQsXG4gICAgYXJ0aWNsZSxcbiAgICBjdXJyZW50Q2hlY2ssXG4gICAgY3VycmVudENoZWNraW5nRGF0YSxcbiAgICBncm91cFRpdGxlLFxuICAgIGdyb3VwUGhyYXNlLFxuICAgIGdyb3Vwc0RhdGEsXG4gICAgZ3JvdXBzSW5kZXgsXG4gICAgaXNDb21tZW50Q2hhbmdlZCxcbiAgICBpc1ZlcnNlQ2hhbmdlZCxcbiAgICBtb2RlLFxuICAgIG5ld1ZlcnNlVGV4dCxcbiAgICBwb3BvdmVyUHJvcHMsXG4gICAgc2hvd0hlbHBzTW9kYWwsXG4gICAgc2hvd0hlbHBzLFxuICAgIG5ld1RhZ3MsXG4gICAgdmVyc2VUZXh0LFxuICB9ID0gc3RhdGVcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgc3RhdGUgb2JqZWN0IHdpdGggbmV3IHZhbHVlc1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3U3RhdGUgLSBPYmplY3QgY29udGFpbmluZyBzdGF0ZSBwcm9wZXJ0aWVzIHRvIHVwZGF0ZVxuICAgKi9cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBfc2V0U3RhdGUocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBzYXZlZCB2YWx1ZSBmb3IgYSBjaGVjayBwcm9wZXJ0eVxuICAgKiBGYWxscyBiYWNrIHRvIGxvY2FsIGNoZWNraW5nIGRhdGEgaWYgYXZhaWxhYmxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBQcm9wZXJ0eSBuYW1lXG4gICAqIEByZXR1cm5zIHsqfSBDdXJyZW50IHZhbHVlXG4gICAqL1xuICBmdW5jdGlvbiBnZXRDdXJyZW50VmFsdWVGb3Ioa2V5KSB7XG4gICAgaWYgKGxvY2FsQ2hlY2tpbmdEYXRhPy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICByZXR1cm4gbG9jYWxDaGVja2luZ0RhdGFba2V5XVxuICAgIH1cbiAgICByZXR1cm4gY3VycmVudENoZWNrPy5ba2V5XVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRlbXBvcmFyeSAodW5zYXZlZCkgdmFsdWUgZm9yIGEgY2hlY2sgcHJvcGVydHlcbiAgICogRmFsbHMgYmFjayB0aHJvdWdoIGxvY2FsIGNoZWNraW5nIGRhdGEgdG8gY3VycmVudCBjaGVja1xuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gUHJvcGVydHkgbmFtZVxuICAgKiBAcmV0dXJucyB7Kn0gVGVtcG9yYXJ5IHZhbHVlXG4gICAqL1xuICBmdW5jdGlvbiBnZXRUZW1wVmFsdWVGb3Ioa2V5KSB7XG4gICAgaWYgKHRlbXBDaGVja2luZ0RhdGE/Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIHJldHVybiB0ZW1wQ2hlY2tpbmdEYXRhW2tleV1cbiAgICB9XG4gICAgcmV0dXJuIGdldEN1cnJlbnRWYWx1ZUZvcihrZXkpXG4gIH1cblxuICBjb25zdCBjdXJyZW50U2VsZWN0aW9ucyA9IGdldEN1cnJlbnRWYWx1ZUZvcignc2VsZWN0aW9ucycpIHx8IFtdXG4gIGNvbnN0IHRlbXBTZWxlY3Rpb25zID0gZ2V0VGVtcFZhbHVlRm9yKCdzZWxlY3Rpb25zJykgfHwgW11cbiAgY29uc3QgdGVtcE5vdGhpbmdUb1NlbGVjdCA9IGdldFRlbXBWYWx1ZUZvcignbm90aGluZ1RvU2VsZWN0JylcbiAgY29uc3QgY3VycmVudE5vdGhpbmdUb1NlbGVjdCA9IGdldEN1cnJlbnRWYWx1ZUZvcignbm90aGluZ1RvU2VsZWN0JylcbiAgY29uc3QgZ3JvdXBzRGF0YUxvYWRlZCA9ICEhZ3JvdXBzRGF0YVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBVSSBtb2RlIGJhc2VkIG9uIHNlbGVjdGlvbnMgc3RhdGVcbiAgICogU3dpdGNoZXMgdG8gJ3NlbGVjdCcgbW9kZSBpZiBubyBzZWxlY3Rpb25zIGFuZCBub3RoaW5nIGlzIG1hcmtlZCBhcyB1bnNlbGVjdGFibGVcbiAgICogQHBhcmFtIHtBcnJheX0gbmV3U2VsZWN0aW9ucyAtIEN1cnJlbnQgc2VsZWN0aW9ucyBhcnJheVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5vdGhpbmdUb1NlbGVjdCAtIFdoZXRoZXIgdmVyc2UgaXMgbWFya2VkIGFzIGhhdmluZyBub3RoaW5nIHRvIHNlbGVjdFxuICAgKi9cbiAgZnVuY3Rpb24gdXBkYXRlTW9kZUZvclNlbGVjdGlvbnMobmV3U2VsZWN0aW9ucywgbm90aGluZ1RvU2VsZWN0KSB7XG4gICAgY29uc3Qgbm9TZWxlY3Rpb25zID0gKCFuZXdTZWxlY3Rpb25zPy5sZW5ndGgpXG4gICAgY29uc3QgbmV3TW9kZSA9IG5vU2VsZWN0aW9ucyAmJiAhbm90aGluZ1RvU2VsZWN0ID8gJ3NlbGVjdCcgOiAnZGVmYXVsdCdcbiAgICBzZXRTdGF0ZSh7XG4gICAgICBtb2RlOiBuZXdNb2RlXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBFZmZlY3QgaG9vayB0byBpbml0aWFsaXplIGNoZWNraW5nIGRhdGEgd2hlbiBjaGVja2luZ0RhdGEgb3IgZ2xXb3Jkc0RhdGEgY2hhbmdlc1xuICAgKiBGbGF0dGVucyBncm91cCBkYXRhLCBjcmVhdGVzIGluZGV4LCBmaW5kcyBpbml0aWFsIGNoZWNrLCBhbmQgdmFsaWRhdGVzIGFsbCBjaGVja3NcbiAgICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGF2ZURhdGEgPSBjaGVja2luZ0RhdGEgJiYgT2JqZWN0LmtleXMoY2hlY2tpbmdEYXRhKS5sZW5ndGggJiYgZ2xXb3Jkc0RhdGEgJiYgT2JqZWN0LmtleXMoZ2xXb3Jkc0RhdGEpLmxlbmd0aFxuICAgIGNvbnN0IGdyb3Vwc0RhdGFJbml0aWFsaXplZCA9IGdyb3Vwc0RhdGEgJiYgT2JqZWN0LmtleXMoZ3JvdXBzRGF0YSkubGVuZ3RoXG4gICAgaWYgKGhhdmVEYXRhICYmICFncm91cHNEYXRhSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGxldCBmbGF0dGVuZWRHcm91cERhdGEgPSBudWxsXG4gICAgICBsZXQgZ3JvdXBzSW5kZXggPSBudWxsXG4gICAgICBpZiAoY2hlY2tpbmdEYXRhKSB7XG4gICAgICAgIGZsYXR0ZW5lZEdyb3VwRGF0YSA9IGdyb3VwRGF0YUhlbHBlcnMuZmxhdHRlbkdyb3VwRGF0YShjaGVja2luZ0RhdGEpXG4gICAgICB9XG5cbiAgICAgIGlmIChnbFdvcmRzRGF0YSkge1xuICAgICAgICBpZiAoY2hlY2tUeXBlID09PSB0cmFuc2xhdGlvbk5vdGVzKSB7XG4gICAgICAgICAgZ3JvdXBzSW5kZXggPSBwYXJzZVRuVG9JbmRleChnbFdvcmRzRGF0YSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cHNJbmRleCA9IHBhcnNlVHdUb0luZGV4KGdsV29yZHNEYXRhKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNoZWNrID0gZmluZENoZWNrKGZsYXR0ZW5lZEdyb3VwRGF0YSwgY29udGV4dElkLCB0cnVlKVxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGdyb3Vwc0RhdGE6IGZsYXR0ZW5lZEdyb3VwRGF0YSxcbiAgICAgICAgZ3JvdXBzSW5kZXgsXG4gICAgICAgIGN1cnJlbnRDaGVja2luZ0RhdGE6IGNoZWNraW5nRGF0YSxcbiAgICAgICAgY3VycmVudENoZWNrOiBjaGVjayxcbiAgICAgICAgbW9kaWZpZWQ6IGZhbHNlLFxuICAgICAgICBpc0NvbW1lbnRDaGFuZ2VkOiBmYWxzZSxcbiAgICAgIH1cblxuICAgICAgLy8gdmFsaWRhdGUgYWxsIGNoZWNrc1xuICAgICAgc2VsZWN0aW9uc0hlbHBlcnMudmFsaWRhdGVTZWxlY3Rpb25zRm9yQWxsQ2hlY2tzKHRhcmdldEJpYmxlLCBmbGF0dGVuZWRHcm91cERhdGEsIChjaGVjaywgaW52YWxpZGF0ZWQpID0+IHtcbiAgICAgICAgaWYgKGNoZWNrKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYCR7bmFtZX0tc2F2ZUVkaXRWZXJzZSAtIGNoZWNrIHZhbGlkYXRpb24gY2hhbmdlZGAsIGNoZWNrKVxuICAgICAgICAgIF9zYXZlQ2hlY2tpbmdEYXRhKGNoZWNrLCB7IGludmFsaWRhdGVkIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuXG4gICAgICBpZiAoZmxhdHRlbmVkR3JvdXBEYXRhICYmIGNoZWNrPy5jb250ZXh0SWQpIHtcbiAgICAgICAgdXBkYXRlQ29udGV4dChjaGVjaywgZ3JvdXBzSW5kZXgpXG4gICAgICAgIHVwZGF0ZU1vZGVGb3JTZWxlY3Rpb25zKGNoZWNrPy5zZWxlY3Rpb25zLCBjaGVjaz8ubm90aGluZ1RvU2VsZWN0KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2NvbnRleHRJZCwgY2hlY2tpbmdEYXRhLCBnbFdvcmRzRGF0YV0pO1xuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjb250ZXh0IGFuZCByZWxhdGVkIGRhdGEgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNoZWNrIGFuZCBncm91cCBpbmRleC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG5ld0NoZWNrIC0gVGhlIG5ldyBjaGVjayBvYmplY3QgY29udGFpbmluZyBjb250ZXh0IGluZm9ybWF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gW2dyb3Vwc0luZGV4Xz1ncm91cHNJbmRleF0gLSBBbiBvcHRpb25hbCBncm91cCBpbmRleCBvYmplY3QsIGRlZmF1bHRzIHRvIHRoZSBnbG9iYWwgdmFyaWFibGUgYGdyb3Vwc0luZGV4YC5cbiAgICogQHJldHVybiB7dm9pZH0gRG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuIFVwZGF0ZXMgdGhlIHN0YXRlIG9mIHRoZSBhcHBsaWNhdGlvbiB3aXRoIG5ldyBjb250ZXh0IGRhdGEuXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVDb250ZXh0KG5ld0NoZWNrLCBncm91cHNJbmRleF8gPSBncm91cHNJbmRleCkge1xuICAgIGNvbnN0IGNvbnRleHRJZCA9IG5ld0NoZWNrPy5jb250ZXh0SWRcbiAgICBjb25zdCByZWZlcmVuY2UgPSBjb250ZXh0SWQ/LnJlZmVyZW5jZVxuICAgIGNvbnN0IHZlcnNlVGV4dCA9IHZlcnNlSGVscGVycy5nZXRWZXJzZVRleHRGcm9tQmlibGUodGFyZ2V0QmlibGUsIHJlZmVyZW5jZSlcbiAgICBjb25zdCBhbGlnbmVkR0xUZXh0ID0gZ2V0QWxpZ25lZEdMVGV4dChhbGlnbmVkR2xCaWJsZSwgY29udGV4dElkKTtcbiAgICBjb25zdCBncm91cFRpdGxlID0gZ2V0VGl0bGVGcm9tSW5kZXgoZ3JvdXBzSW5kZXhfLCBjb250ZXh0SWQ/Lmdyb3VwSWQpXG4gICAgY29uc3QgZ3JvdXBQaHJhc2UgPVxuICAgICAgY2hlY2tUeXBlID09PSB0cmFuc2xhdGlvbk5vdGVzXG4gICAgICAgID8gY29udGV4dElkPy5vY2N1cnJlbmNlTm90ZVxuICAgICAgICA6IGdldFBocmFzZUZyb21UdyhnbFdvcmRzRGF0YSwgY29udGV4dElkPy5ncm91cElkKVxuXG4gICAgbGV0IGdyb3VwRGF0YVxuICAgIGlmIChnbFdvcmRzRGF0YSkge1xuICAgICAgaWYgKGNoZWNrVHlwZSA9PT0gdHJhbnNsYXRpb25Ob3Rlcykge1xuICAgICAgICBncm91cERhdGEgPSB7XG4gICAgICAgICAgdHJhbnNsYXRlOiB7XG4gICAgICAgICAgICBhcnRpY2xlczogZ2xXb3Jkc0RhdGE/LnRyYW5zbGF0ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ3JvdXBEYXRhID0ge1xuICAgICAgICAgIC4uLmdsV29yZHNEYXRhLFxuICAgICAgICAgIG1hbmlmZXN0OiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IF9hcnRpY2xlXG4gICAgY29uc3QgYXJ0aWNsZUlkID0gY29udGV4dElkPy5ncm91cElkXG4gICAgY29uc3QgZ3JvdXBzSWRzID0gT2JqZWN0LmtleXMoZ3JvdXBEYXRhKVxuICAgIGZvciAoY29uc3QgX2dyb3VwSWQgb2YgZ3JvdXBzSWRzKSB7XG4gICAgICBjb25zdCBncm91cCA9IGdyb3VwRGF0YVtfZ3JvdXBJZF1cbiAgICAgIGNvbnN0IGFydGljbGVzID0gZ3JvdXA/LmFydGljbGVzIHx8IHt9XG4gICAgICBfYXJ0aWNsZSA9IGFydGljbGVzPy5bYXJ0aWNsZUlkXSB8fCBudWxsXG4gICAgICBpZiAoX2FydGljbGUpIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFydGljbGVNYXJrZG93biA9IHRIZWxwc0hlbHBlcnMuY29udmVydE1hcmtkb3duTGlua3MoX2FydGljbGUsIGdhdGV3YXlMYW5ndWFnZUlkKTtcbiAgICAgICAgX2FydGljbGUgPSBjdXJyZW50QXJ0aWNsZU1hcmtkb3duXG4gICAgICAgIC8vIGNvbnN0IHRIZWxwc01vZGFsTWFya2Rvd24gPSB0SGVscHNIZWxwZXJzLmNvbnZlcnRNYXJrZG93bkxpbmtzKG1vZGFsQXJ0aWNsZSwgZ2F0ZXdheUxhbmd1YWdlQ29kZSwgYXJ0aWNsZUNhdGVnb3J5KTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTdGF0ZSh7XG4gICAgICBhbGlnbmVkR0xUZXh0LFxuICAgICAgY3VycmVudENoZWNrOiBuZXdDaGVjayxcbiAgICAgIHZlcnNlVGV4dCxcbiAgICAgIGdyb3VwVGl0bGUsXG4gICAgICBncm91cFBocmFzZSxcbiAgICAgIGFydGljbGU6IF9hcnRpY2xlXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGNvbW1lbnRUZXh0ID0gZ2V0Q3VycmVudFZhbHVlRm9yKCdjb21tZW50cycpIHx8ICcnXG4gIGNvbnN0IGJvb2tJZCA9IHRhcmdldExhbmd1YWdlRGV0YWlscz8uYm9vaz8uaWRcbiAgY29uc3QgYm9va05hbWUgPSB0YXJnZXRMYW5ndWFnZURldGFpbHM/LmJvb2s/Lm5hbWVcbiAgY29uc3QgYm9va0RldGFpbHMgPSB7XG4gICAgaWQ6IGJvb2tJZCxcbiAgICBuYW1lOiBib29rTmFtZVxuICB9O1xuICBjb25zdCBnYXRld2F5TGFuZ3VhZ2VJZCA9IHRhcmdldExhbmd1YWdlRGV0YWlscz8uZ2F0ZXdheUxhbmd1YWdlSWRcbiAgY29uc3QgdGFyZ2V0TGFuZ3VhZ2VGb250ID0gbWFuaWZlc3Q/LnByb2plY3RGb250IHx8ICcnXG4gIGNvbnN0IGN1cnJlbnRDb250ZXh0SWQgPSBjdXJyZW50Q2hlY2s/LmNvbnRleHRJZFxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRvb2wtc3BlY2lmaWMgc2V0dGluZ3MgYW5kIHBlcnNpc3RzIHRoZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IE5BTUVTUEFDRSAtIFRvb2wgbmFtZXNwYWNlIChlLmcuLCAnU2NyaXB0dXJlUGFuZScpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZE5hbWUgLSBTZXR0aW5nIGZpZWxkIG5hbWVcbiAgICogQHBhcmFtIHsqfSBmaWVsZFZhbHVlIC0gU2V0dGluZyB2YWx1ZVxuICAgKi9cbiAgY29uc3Qgc2V0VG9vbFNldHRpbmdzID0gKE5BTUVTUEFDRSwgZmllbGROYW1lLCBmaWVsZFZhbHVlKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tc2V0VG9vbFNldHRpbmdzICR7ZmllbGROYW1lfT0ke2ZpZWxkVmFsdWV9YClcbiAgICBpZiAodG9vbHNTZXR0aW5ncykge1xuICAgICAgLy8gRGVlcCBjbG9uaW5nIG9iamVjdCB0byBhdm9pZCBtb2RpZnlpbmcgb3JpZ2luYWwgb2JqZWN0XG4gICAgICBjb25zdCBfdG9vbHNTZXR0aW5ncyA9IHsgLi4udG9vbHNTZXR0aW5ncyB9O1xuICAgICAgbGV0IGNvbXBvbmVudFNldHRpbmdzID0gX3Rvb2xzU2V0dGluZ3M/LltOQU1FU1BBQ0VdXG4gICAgICBpZiAoIWNvbXBvbmVudFNldHRpbmdzKSB7XG4gICAgICAgIGNvbXBvbmVudFNldHRpbmdzID0geyB9XG4gICAgICAgIF90b29sc1NldHRpbmdzW05BTUVTUEFDRV0gPSBjb21wb25lbnRTZXR0aW5nc1xuICAgICAgfVxuICAgICAgY29tcG9uZW50U2V0dGluZ3NbZmllbGROYW1lXSA9IGZpZWxkVmFsdWVcbiAgICAgIHNldFNldHRpbmdzKHsgdG9vbHNTZXR0aW5nczogX3Rvb2xzU2V0dGluZ3MgfSwgdHJ1ZSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGVyc2lzdHMgc2V0dGluZ3MgdG8gc3RvcmFnZSBhZnRlciByZW1vdmluZyBCaWJsZSBkYXRhIHRvIHJlZHVjZSBzaXplXG4gICAqIENyZWF0ZXMgc2hhbGxvdyBjb3BpZXMgdG8gYXZvaWQgbW9kaWZ5aW5nIG9yaWdpbmFsIG9iamVjdHNcbiAgICogQHBhcmFtIHtvYmplY3R9IF9zZXR0aW5ncyAtIFNldHRpbmdzIG9iamVjdCB0byBzYXZlXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBmdW5jdGlvbiBfc2F2ZVNldHRpbmdzKF9zZXR0aW5ncykge1xuICAgIGlmIChzYXZlU2V0dGluZ3MgJiYgX3NldHRpbmdzKSB7XG4gICAgICBjb25zdCBuZXdTZXR0aW5ncyA9IHsgLi4uX3NldHRpbmdzIH1cbiAgICAgIGRlbGV0ZSBuZXdTZXR0aW5ncy5tYW5pZmVzdFxuICAgICAgY29uc3QgX3BhbmVTZXR0aW5ncyA9IFsgLi4ubmV3U2V0dGluZ3MucGFuZVNldHRpbmdzIF1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgX3BhbmVTZXR0aW5ncy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBfcGFuZVNldHRpbmcgPSB7Li4uX3BhbmVTZXR0aW5nc1tpXX0gLy8gc2hhbGxvdyBjb3B5XG4gICAgICAgIGlmIChfcGFuZVNldHRpbmc/LmJvb2spIHtcbiAgICAgICAgICBkZWxldGUgX3BhbmVTZXR0aW5nLmJvb2sgLy8gcmVtb3ZlIGFsbCB0aGUgYm9vayBkYXRhIGJlZm9yZSBzYXZpbmdcbiAgICAgICAgfVxuICAgICAgICBfcGFuZVNldHRpbmdzW2ldID0gX3BhbmVTZXR0aW5nXG4gICAgICB9XG4gICAgICBuZXdTZXR0aW5ncy5wYW5lU2V0dGluZ3MgPSBfcGFuZVNldHRpbmdzXG5cbiAgICAgIGNvbnN0IF9wYW5lS2V5U2V0dGluZ3MgPSB7IC4uLm5ld1NldHRpbmdzLnBhbmVLZXlTZXR0aW5ncyB9XG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoX3BhbmVLZXlTZXR0aW5ncylcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgY29uc3QgX3BhbmVTZXR0aW5nID0gey4uLl9wYW5lS2V5U2V0dGluZ3Nba2V5XX0gLy8gc2hhbGxvdyBjb3B5XG4gICAgICAgIGlmIChfcGFuZVNldHRpbmc/LmJvb2spIHtcbiAgICAgICAgICBkZWxldGUgX3BhbmVTZXR0aW5nLmJvb2sgLy8gcmVtb3ZlIGFsbCB0aGUgYm9vayBkYXRhIGJlZm9yZSBzYXZpbmdcbiAgICAgICAgfVxuICAgICAgICBfcGFuZUtleVNldHRpbmdzW2tleV0gPSBfcGFuZVNldHRpbmdcbiAgICAgIH1cbiAgICAgIG5ld1NldHRpbmdzLnBhbmVLZXlTZXR0aW5ncyA9IF9wYW5lS2V5U2V0dGluZ3NcblxuICAgICAgc2F2ZVNldHRpbmdzKG5ld1NldHRpbmdzKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHNldHRpbmdzIHN0YXRlIGFuZCBvcHRpb25hbGx5IHBlcnNpc3RzIHRoZW1cbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld1NldHRpbmdzIC0gTmV3IHNldHRpbmdzIHRvIG1lcmdlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZG9TYXZlIC0gV2hldGhlciB0byBwZXJzaXN0IHNldHRpbmdzXG4gICAqL1xuICBmdW5jdGlvbiBzZXRTZXR0aW5ncyhuZXdTZXR0aW5ncywgZG9TYXZlID0gZmFsc2UpIHtcbiAgICBjb25zdCBfc2V0dGluZ3MgPSB7XG4gICAgICAuLi5zZXR0aW5ncyxcbiAgICAgIC4uLm5ld1NldHRpbmdzXG4gICAgfVxuXG4gICAgX3NldFNldHRpbmdzKF9zZXR0aW5ncylcbiAgICBkb1NhdmUgJiYgX3NhdmVTZXR0aW5ncyhfc2V0dGluZ3MpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBTY3JpcHR1cmUgcGFuZSBzZXR0aW5ncyB3aXRoIG5ldyBwYW5lIGNvbmZpZ3VyYXRpb25zXG4gICAqIE1haW50YWlucyBhIGtleS1iYXNlZCBsb29rdXAgZm9yIHBhbmUgc2V0dGluZ3MgYnkgbGFuZ3VhZ2UvYmlibGUvb3duZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IE5BTUVTUEFDRSAtIFRvb2wgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZE5hbWUgLSBTZXR0aW5nIGZpZWxkIG5hbWVcbiAgICogQHBhcmFtIHtBcnJheX0gX3BhbmVTZXR0aW5ncyAtIEFycmF5IG9mIHBhbmUgc2V0dGluZyBvYmplY3RzXG4gICAqL1xuICBjb25zdCBzZXRUb29sU2V0dGluZ3NTY3JpcHR1cmUgPSAoTkFNRVNQQUNFLCBmaWVsZE5hbWUsIF9wYW5lU2V0dGluZ3MpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1zZXRUb29sU2V0dGluZ3NTY3JpcHR1cmUgJHtmaWVsZE5hbWV9YCwgX3BhbmVTZXR0aW5ncylcbiAgICBjb25zdCBfcGFuZUtleVNldHRpbmdzID0gey4uLnBhbmVLZXlTZXR0aW5nc31cblxuICAgIGZvciAoY29uc3QgcGFuZVNldHRpbmdzIG9mIF9wYW5lU2V0dGluZ3MpIHtcbiAgICAgIGNvbnN0IGxhbmd1YWdlSWQgPSBwYW5lU2V0dGluZ3M/Lmxhbmd1YWdlSWRcbiAgICAgIGNvbnN0IGtleSA9IGAke2xhbmd1YWdlSWR9LyR7cGFuZVNldHRpbmdzPy5iaWJsZUlkfS8ke3BhbmVTZXR0aW5ncz8ub3duZXJ9YFxuICAgICAgX3BhbmVLZXlTZXR0aW5nc1trZXldID0gcGFuZVNldHRpbmdzXG4gICAgfVxuXG4gICAgY29uc3QgX3NldHRpbmdzID0ge1xuICAgICAgcGFuZVNldHRpbmdzOiBfcGFuZVNldHRpbmdzLFxuICAgICAgcGFuZUtleVNldHRpbmdzOiBfcGFuZUtleVNldHRpbmdzLFxuICAgIH1cblxuICAgIHNldFNldHRpbmdzKF9zZXR0aW5ncywgdHJ1ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcHJvcGVydHkgdG8gdGhlIG1hbmlmZXN0IGFuZCBhcHAgc2V0dGluZ3NcbiAgICogVXNlZCBmb3IgcGVyc2lzdGluZyB1c2VyIHByZWZlcmVuY2VzIGxpa2UgZm9udHNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpZWxkTmFtZSAtIFByb3BlcnR5IG5hbWVcbiAgICogQHBhcmFtIHsqfSBmaWVsZFZhbHVlIC0gUHJvcGVydHkgdmFsdWVcbiAgICovXG4gIGNvbnN0IGFkZE9iamVjdFByb3BlcnR5VG9NYW5pZmVzdCA9IChmaWVsZE5hbWUsIGZpZWxkVmFsdWUpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1hZGRPYmplY3RQcm9wZXJ0eVRvTWFuaWZlc3QgJHtmaWVsZE5hbWV9PSR7ZmllbGRWYWx1ZX1gKVxuICAgIGlmIChtYW5pZmVzdCkge1xuICAgICAgY29uc3QgX21hbmlmZXN0ID0ge1xuICAgICAgICAuLi5tYW5pZmVzdCxcbiAgICAgICAgW2ZpZWxkTmFtZV06IGZpZWxkVmFsdWVcbiAgICAgIH1cblxuICAgICAgLy8gYWxzbyBzYXZlIHRoaXMgaW4gYXBwU2V0dGluZ3NcbiAgICAgIGNvbnN0IGFwcFNldHRpbmdzID0gc2V0dGluZ3MuYXBwU2V0dGluZ3MgfHwge31cbiAgICAgIGNvbnN0IF9hcHBTZXR0aW5ncyA9IHtcbiAgICAgICAgLi4uYXBwU2V0dGluZ3MsXG4gICAgICAgIFtmaWVsZE5hbWVdOiBmaWVsZFZhbHVlXG4gICAgICB9XG5cbiAgICAgIHNldFNldHRpbmdzKHtcbiAgICAgICAgbWFuaWZlc3Q6IF9tYW5pZmVzdCxcbiAgICAgICAgYXBwU2V0dGluZ3M6IF9hcHBTZXR0aW5nc1xuICAgICAgfSwgdHJ1ZSlcbiAgICB9XG4gIH1cblxuICAvLyBFdmVudCBoYW5kbGVycyBmb3IgdmFyaW91cyB1c2VyIGFjdGlvbnNcblxuICAvKipcbiAgICogT3BlbnMgYW4gYWxlcnQgZGlhbG9nIChwbGFjZWhvbGRlciBpbXBsZW1lbnRhdGlvbilcbiAgICovXG4gIGNvbnN0IG9wZW5BbGVydERpYWxvZyA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1vcGVuQWxlcnREaWFsb2dgKSAvLyBUT0RPIC0gZmxlc2ggb3V0XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHZlcnNlIGNvbnRlbnQgaGFzIGNoYW5nZWQgZnJvbSBvcmlnaW5hbFxuICAgKiBAcGFyYW0ge0V2ZW50fSBlIC0gSW5wdXQgZXZlbnRcbiAgICovXG4gIGNvbnN0IGNoZWNrSWZWZXJzZUNoYW5nZWQgPSAoZSkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGAke25hbWV9LWNoZWNrSWZWZXJzZUNoYW5nZWRgKVxuICAgIGNvbnN0IF9uZXdWZXJzZVRleHQgPSBlLnRhcmdldC52YWx1ZVxuICAgIGNvbnN0IF9pc1ZlcnNlQ2hhbmdlZCA9IF9uZXdWZXJzZVRleHQgIT09IHZlcnNlVGV4dFxuICAgIHNldFN0YXRlKHsgaXNWZXJzZUNoYW5nZWQ6IF9pc1ZlcnNlQ2hhbmdlZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHZlcnNlIHRleHQgZWRpdGluZ1xuICAgKiBAcGFyYW0ge0V2ZW50fSBlIC0gSW5wdXQgZXZlbnQgd2l0aCBuZXcgdmVyc2UgdGV4dFxuICAgKi9cbiAgY29uc3QgaGFuZGxlRWRpdFZlcnNlID0gKGUpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1oYW5kbGVFZGl0VmVyc2VgKVxuICAgIGNvbnN0IF9uZXdWZXJzZVRleHQgPSBlLnRhcmdldC52YWx1ZVxuICAgIHNldFN0YXRlKHsgbmV3VmVyc2VUZXh0OiBfbmV3VmVyc2VUZXh0IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbHMgdmVyc2UgZWRpdGluZyBhbmQgcmVzZXRzIHN0YXRlXG4gICAqL1xuICBjb25zdCBjYW5jZWxFZGl0VmVyc2UgPSAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tY2FuY2VsRWRpdFZlcnNlYClcbiAgICBzZXRTdGF0ZSh7IG5ld1ZlcnNlVGV4dDogbnVsbCwgbmV3VGFnczogW10sIG1vZGU6IFwiZGVmYXVsdFwiIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGVkaXRlZCB2ZXJzZSB0ZXh0IGFuZCB1cGRhdGVzIGFsaWdubWVudHNcbiAgICogTWFya3MgY2hlY2sgYXMgaGF2aW5nIHZlcnNlIGVkaXRzXG4gICAqL1xuICBjb25zdCBzYXZlRWRpdFZlcnNlID0gKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGAke25hbWV9LXNhdmVFZGl0VmVyc2VgKVxuICAgIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IGN1cnJlbnRDb250ZXh0SWQucmVmZXJlbmNlO1xuICAgIGNvbnN0IHZlcnNlUmVmID0gY3VycmVudENvbnRleHRJZC52ZXJzZVNwYW4gfHwgdmVyc2U7IC8vIGlmIGluIHZlcnNlIHNwYW4sIHVzZSBpdFxuICAgIGNvbnN0IGJlZm9yZSA9IHRhcmdldEJpYmxlW2NoYXB0ZXJdW3ZlcnNlUmVmXTtcblxuICAgIHNldFN0YXRlKHtcbiAgICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICAgIG5ld1RhZ3M6IFtdLFxuICAgICAgbW9kZTogXCJkZWZhdWx0XCIsXG4gICAgICBpc1ZlcnNlQ2hhbmdlZDogZmFsc2UsXG4gICAgfSk7XG4gICAgZWRpdFRhcmdldFZlcnNlKGNoYXB0ZXIsIHZlcnNlUmVmLCBiZWZvcmUsIG5ld1ZlcnNlVGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBuZXh0IGNoZWNrIGluIHRoZSBzZXF1ZW5jZVxuICAgKi9cbiAgZnVuY3Rpb24gaGFuZGxlR29Ub05leHQoKSB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0taGFuZGxlR29Ub05leHRgKVxuICAgIGNvbnN0IG5leHRDaGVjayA9IGZpbmROZXh0Q2hlY2soZ3JvdXBzRGF0YSwgY3VycmVudENvbnRleHRJZCwgZmFsc2UpXG4gICAgY2hhbmdlQ3VycmVudENoZWNrXyhuZXh0Q2hlY2ssIHRydWUpXG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBwcmV2aW91cyBjaGVjayBpbiB0aGUgc2VxdWVuY2VcbiAgICovXG4gIGZ1bmN0aW9uIGhhbmRsZUdvVG9QcmV2aW91cygpIHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1oYW5kbGVHb1RvUHJldmlvdXNgKVxuICAgIGNvbnN0IHByZXZpb3VzQ2hlY2sgPSBmaW5kUHJldmlvdXNDaGVjayhncm91cHNEYXRhLCBjdXJyZW50Q29udGV4dElkLCBmYWxzZSlcbiAgICBjaGFuZ2VDdXJyZW50Q2hlY2tfKHByZXZpb3VzQ2hlY2ssIHRydWUpXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBjaGVja2JveCBjaGFuZ2VzIGZvciB0YWdzXG4gICAqIEFkZHMgb3IgcmVtb3ZlcyB0YWdzIGZyb20gdGhlIGN1cnJlbnQgbGlzdFxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIC0gVGFnIGlkZW50aWZpZXJcbiAgICovXG4gIGNvbnN0IGhhbmRsZVRhZ3NDaGVja2JveCA9ICh0YWcpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1oYW5kbGVUYWdzQ2hlY2tib3hgLCB0YWcpXG4gICAgY29uc3QgY3VycmVudFRhZ3MgPSBuZXdUYWdzIHx8IFtdXG4gICAgY29uc3QgdGFnSW5kZXggPSBjdXJyZW50VGFncy5pbmRleE9mKHRhZyk7XG4gICAgbGV0IF9uZXdUYWdzO1xuXG4gICAgaWYgKHRhZ0luZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IGNvcHkgPSBjdXJyZW50VGFncy5zbGljZSgwKTtcbiAgICAgIGNvcHkuc3BsaWNlKHRhZ0luZGV4LCAxKTtcbiAgICAgIF9uZXdUYWdzID0gY29weTtcbiAgICB9IGVsc2Uge1xuICAgICAgX25ld1RhZ3MgPSBbLi4uY3VycmVudFRhZ3MsIHRhZ107XG4gICAgfVxuXG4gICAgc2V0U3RhdGUoeyBuZXdUYWdzOiBfbmV3VGFncyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgc2VsZWN0aW9ucyBhZ2FpbnN0IHZlcnNlIHRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlVGV4dF8gLSBWZXJzZSB0ZXh0IHRvIHZhbGlkYXRlIGFnYWluc3RcbiAgICogQHBhcmFtIHtBcnJheX0gc2VsZWN0aW9uc18gLSBTZWxlY3Rpb25zIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHNlbGVjdGlvbnMgYXJlIHZhbGlkXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZVNlbGVjdGlvbnMgPSAodmVyc2VUZXh0Xywgc2VsZWN0aW9uc18pID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS12YWxpZGF0ZVNlbGVjdGlvbnNgLCBzZWxlY3Rpb25zXylcbiAgICByZXR1cm4gc2VsZWN0aW9uc0hlbHBlcnMudmFsaWRhdGVWZXJzZVNlbGVjdGlvbnModmVyc2VUZXh0Xywgc2VsZWN0aW9uc18pXG4gIH1cblxuICAvKipcbiAgICogTWVtb2l6ZWQgY29tcHV0YXRpb24gb2YgdW5maWx0ZXJlZCB2ZXJzZSB0ZXh0IGluY2x1ZGluZyBVU0ZNIG1hcmtlcnNcbiAgICogVXNlZCBmb3IgZGlzcGxheWluZyBhbmQgZWRpdGluZyBjb21wbGV0ZSB2ZXJzZSBkYXRhXG4gICAqL1xuICBjb25zdCB1bmZpbHRlcmVkVmVyc2VUZXh0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgbGV0IHVuZmlsdGVyZWRWZXJzZVRleHRfID0gJydcbiAgICBjb25zdCByZWZlcmVuY2UgPSBjdXJyZW50Q29udGV4dElkPy5yZWZlcmVuY2VcbiAgICBjb25zdCBjaGFwdGVyID0gcmVmZXJlbmNlPy5jaGFwdGVyXG4gICAgY29uc3QgdmVyc2UgPSByZWZlcmVuY2U/LnZlcnNlXG4gICAgaWYgKGNoYXB0ZXIgJiYgdmVyc2UpIHtcbiAgICAgIGNvbnN0IHZlcnNlRGF0YSA9IHRhcmdldEJpYmxlPy5bY2hhcHRlcl0/Llt2ZXJzZV1cbiAgICAgIGlmICh2ZXJzZURhdGEpIHtcbiAgICAgICAgdW5maWx0ZXJlZFZlcnNlVGV4dF8gPSB2ZXJzZURhdGFcbiAgICAgICAgaWYgKHR5cGVvZiB2ZXJzZURhdGEgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdW5maWx0ZXJlZFZlcnNlVGV4dF8gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQodmVyc2VEYXRhKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZmlsdGVyZWRWZXJzZVRleHRfXG4gIH0sIFt0YXJnZXRCaWJsZSwgY3VycmVudENvbnRleHRJZF0pXG5cbiAgLyoqXG4gICAqIFNldHMgYSB0ZW1wb3JhcnkgdmFsdWUgZm9yIGEgY2hlY2tpbmcgZGF0YSBwcm9wZXJ0eVxuICAgKiBVc2VkIGZvciB0cmFja2luZyB1bnNhdmVkIGNoYW5nZXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFByb3BlcnR5IG5hbWVcbiAgICogQHBhcmFtIHsqfSB2YWx1ZSAtIFByb3BlcnR5IHZhbHVlXG4gICAqL1xuICBjb25zdCBzZXRUZW1wQ2hlY2tpbmdJdGVtID0gKGtleSwgdmFsdWUpID0+IHtcbiAgICBjb25zdCBuZXdDaGVja2luZ0RhdGEgPSB0ZW1wQ2hlY2tpbmdEYXRhID8gey4uLnRlbXBDaGVja2luZ0RhdGF9IDoge31cbiAgICBuZXdDaGVja2luZ0RhdGFba2V5XSA9IHZhbHVlXG4gICAgc2V0VGVtcENoZWNraW5nRGF0YShuZXdDaGVja2luZ0RhdGEpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBzZWxlY3Rpb25zIGluIHRlbXBvcmFyeSBzdGF0ZSB3aXRob3V0IHNhdmluZ1xuICAgKiBAcGFyYW0ge0FycmF5fSBzZWxlY3Rpb25zIC0gTmV3IHNlbGVjdGlvbnMgYXJyYXlcbiAgICovXG4gIGNvbnN0IGNoYW5nZVNlbGVjdGlvbnNJbkxvY2FsU3RhdGUgPSAoc2VsZWN0aW9ucykgPT4ge1xuICAgIGNvbnNvbGUubG9nKGAke25hbWV9LWNoYW5nZVNlbGVjdGlvbnNJbkxvY2FsU3RhdGVgLCBzZWxlY3Rpb25zKVxuICAgIHNldFRlbXBDaGVja2luZ0l0ZW0oJ3NlbGVjdGlvbnMnLCBzZWxlY3Rpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIFwibm90aGluZyB0byBzZWxlY3RcIiBmbGFnIGZvciBjdXJyZW50IGNoZWNrXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2VsZWN0IC0gTmV3IHN0YXRlIHZhbHVlXG4gICAqL1xuICBjb25zdCB0b2dnbGVOb3RoaW5nVG9TZWxlY3QgPSAoc2VsZWN0KSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tdG9nZ2xlTm90aGluZ1RvU2VsZWN0YCwgc2VsZWN0KVxuICAgIHNldFRlbXBDaGVja2luZ0l0ZW0oJ25vdGhpbmdUb1NlbGVjdCcsIHNlbGVjdClcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBjdXJyZW50IGNoZWNrIGJlaW5nIHdvcmtlZCBvblxuICAgKiBWYWxpZGF0ZXMgZm9yIHVuc2F2ZWQgY2hhbmdlcyBiZWZvcmUgc3dpdGNoaW5nXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXdDb250ZXh0IC0gTmV3IGNoZWNrIGNvbnRleHRcbiAgICogQHBhcmFtIHtib29sZWFufSBub0NoZWNrIC0gU2tpcCB2YWxpZGF0aW9uIGlmIHRydWVcbiAgICovXG4gIGNvbnN0IGNoYW5nZUN1cnJlbnRDaGVja18gPSAobmV3Q29udGV4dCwgbm9DaGVjayA9IGZhbHNlKSA9PiB7XG4gICAgY29uc3QgbmV3Q29udGV4dElkID0gbmV3Q29udGV4dD8uY29udGV4dElkXG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tY2hhbmdlQ3VycmVudENvbnRleHRJZGAsIG5ld0NvbnRleHRJZClcblxuICAgIGNvbnN0IHNlbGVjdGlvbnNVbmNoYW5nZWQgPSBpc0VxdWFsKGN1cnJlbnRTZWxlY3Rpb25zLCB0ZW1wU2VsZWN0aW9ucylcbiAgICBpZiAobm9DaGVjayB8fCBzZWxlY3Rpb25zVW5jaGFuZ2VkKSB7XG4gICAgICBpZiAobmV3Q29udGV4dElkKSB7XG4gICAgICAgIGxldCBjaGVjayA9IGZpbmRDaGVjayhncm91cHNEYXRhLCBuZXdDb250ZXh0SWQsIGZhbHNlKVxuICAgICAgICB1cGRhdGVDb250ZXh0KG5ld0NvbnRleHQpXG4gICAgICAgIGlmIChjaGVjaykge1xuICAgICAgICAgIHNldExvY2FsQ2hlY2tpbmdEYXRhKG51bGwpXG4gICAgICAgICAgc2V0VGVtcENoZWNraW5nRGF0YShudWxsKVxuICAgICAgICAgIHVwZGF0ZU1vZGVGb3JTZWxlY3Rpb25zKGNoZWNrLnNlbGVjdGlvbnMsIGNoZWNrLm5vdGhpbmdUb1NlbGVjdClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygnQ2hlY2tlci5jaGFuZ2VDdXJyZW50Q29udGV4dElkIC0gdW5zYXZlZCBjaGFuZ2VzJylcbiAgICB9XG4gICAgY2hhbmdlZEN1cnJlbnRDaGVjayAmJiBjaGFuZ2VkQ3VycmVudENoZWNrKG5ld0NvbnRleHQpXG4gIH1cblxuICBjb25zdCBkaXJlY3Rpb24gPSAnbHRyJ1xuICBjb25zdCBib29rbWFya0VuYWJsZWQgPSBnZXRDdXJyZW50VmFsdWVGb3IoJ3JlbWluZGVycycpXG4gIGNvbnN0IGlzVmVyc2VFZGl0ZWQgPSAhIWdldEN1cnJlbnRWYWx1ZUZvcigndmVyc2VFZGl0cycpXG4gIGNvbnN0IGlzVmVyc2VJbnZhbGlkYXRlZCA9ICEhZ2V0Q3VycmVudFZhbHVlRm9yKCdpbnZhbGlkYXRlZCcpXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIGN1cnJlbnQgY2hlY2sgYmVpbmcgd29ya2VkIG9uXG4gICAqIFZhbGlkYXRlcyBmb3IgdW5zYXZlZCBjaGFuZ2VzIGJlZm9yZSBzd2l0Y2hpbmdcbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld0NvbnRleHQgLSBOZXcgY2hlY2sgY29udGV4dFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5vQ2hlY2sgLSBTa2lwIHZhbGlkYXRpb24gaWYgdHJ1ZVxuICAgKi9cbiAgY29uc3QgX3NhdmVTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tX3NhdmVTZWxlY3Rpb24gcGVyc2lzdCB0byBmaWxlYClcbiAgICBjb25zdCB7IGNoZWNrSW5Hcm91cHNEYXRhLCBfY3VycmVudENoZWNrLCBuZXdTdGF0ZSwgX25ld0NoZWNraW5nRGF0YSB9ID0gY2xvbmVEYXRhRm9yU2F2aW5nKClcblxuICAgIGlmIChfY3VycmVudENoZWNrICYmIG5ld1N0YXRlKSB7XG4gICAgICBpZiAodGVtcE5vdGhpbmdUb1NlbGVjdCkge1xuICAgICAgICBfbmV3Q2hlY2tpbmdEYXRhLm5vdGhpbmdUb1NlbGVjdCA9IHRlbXBOb3RoaW5nVG9TZWxlY3RcbiAgICAgICAgX25ld0NoZWNraW5nRGF0YS5zZWxlY3Rpb25zID0gZmFsc2VcbiAgICAgICAgX25ld0NoZWNraW5nRGF0YS5pbnZhbGlkYXRlZCA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfbmV3Q2hlY2tpbmdEYXRhLm5vdGhpbmdUb1NlbGVjdCA9IGZhbHNlXG4gICAgICAgIF9uZXdDaGVja2luZ0RhdGEuc2VsZWN0aW9ucyA9IHRlbXBTZWxlY3Rpb25zXG4gICAgICAgIF9uZXdDaGVja2luZ0RhdGEuaW52YWxpZGF0ZWQgPSBmYWxzZVxuICAgICAgfVxuXG4gICAgICBzZXRMb2NhbENoZWNraW5nRGF0YShfbmV3Q2hlY2tpbmdEYXRhKVxuICAgICAgZGVsZXRlVGVtcENoZWNraW5nRGF0YSgnbm90aGluZ1RvU2VsZWN0JylcbiAgICAgIGRlbGV0ZVRlbXBDaGVja2luZ0RhdGEoJ3NlbGVjdGlvbnMnKVxuICAgICAgZGVsZXRlVGVtcENoZWNraW5nRGF0YSgnaW52YWxpZGF0ZWQnKVxuXG4gICAgICB1cGRhdGVWYWx1ZXNJbkNoZWNrRGF0YShfY3VycmVudENoZWNrLCBjaGVja0luR3JvdXBzRGF0YSwgX25ld0NoZWNraW5nRGF0YSlcblxuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpO1xuICAgICAgc2F2ZUNoZWNraW5nRGF0YSAmJiBzYXZlQ2hlY2tpbmdEYXRhKG5ld1N0YXRlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9uZXMgY3VycmVudCBkYXRhIHN0cnVjdHVyZXMgZm9yIHNhdmluZyBtb2RpZmljYXRpb25zXG4gICAqIENyZWF0ZXMgZGVlcCBjb3BpZXMgdG8gYXZvaWQgbXV0YXRpbmcgb3JpZ2luYWwgc3RhdGVcbiAgICogQHJldHVybnMge29iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgY2xvbmVkIGRhdGEgc3RydWN0dXJlc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgZnVuY3Rpb24gY2xvbmVEYXRhRm9yU2F2aW5nKCkge1xuICAgIGNvbnN0IF9ncm91cHNEYXRhID0gXy5jbG9uZURlZXAoZ3JvdXBzRGF0YSlcbiAgICBjb25zdCBjaGVja0luR3JvdXBzRGF0YSA9IGZpbmRDaGVjayhfZ3JvdXBzRGF0YSwgY3VycmVudENvbnRleHRJZClcbiAgICBsZXQgX2N1cnJlbnRDaGVja1xuICAgIGxldCBuZXdTdGF0ZVxuICAgIGxldCBfbmV3Q2hlY2tpbmdEYXRhXG4gICAgaWYgKGNoZWNrSW5Hcm91cHNEYXRhKSB7XG4gICAgICAvLyBzYXZlIHRoZSBzZWxlY3Rpb24gY2hhbmdlc1xuICAgICAgY29uc3QgY2F0ZWdvcnkgPSBjaGVja0luR3JvdXBzRGF0YS5jYXRlZ29yeVxuICAgICAgY29uc3QgbmV3Q2hlY2tEYXRhID0gXy5jbG9uZURlZXAoY3VycmVudENoZWNraW5nRGF0YSlcbiAgICAgIF9jdXJyZW50Q2hlY2sgPSBmaW5kQ2hlY2sobmV3Q2hlY2tEYXRhW2NhdGVnb3J5XSwgY3VycmVudENvbnRleHRJZCwgZmFsc2UpXG4gICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgY3VycmVudENoZWNraW5nRGF0YTogbmV3Q2hlY2tEYXRhLFxuICAgICAgICBjdXJyZW50Q2hlY2s6IF9jdXJyZW50Q2hlY2ssXG4gICAgICAgIGdyb3Vwc0RhdGE6IF9ncm91cHNEYXRhLFxuICAgICAgICBtb2RlOiAnZGVmYXVsdCcsXG4gICAgICAgIG1vZGlmaWVkOiB0cnVlXG4gICAgICB9XG4gICAgICBfbmV3Q2hlY2tpbmdEYXRhID0gbG9jYWxDaGVja2luZ0RhdGEgPyB7Li4ubG9jYWxDaGVja2luZ0RhdGF9IDoge31cbiAgICB9XG4gICAgcmV0dXJuIHsgY2hlY2tJbkdyb3Vwc0RhdGEsIF9jdXJyZW50Q2hlY2ssIG5ld1N0YXRlLCBfbmV3Q2hlY2tpbmdEYXRhIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIG11bHRpcGxlIHByb3BlcnRpZXMgaW4gY2hlY2sgZGF0YSBvYmplY3RzXG4gICAqIE1vZGlmaWVzIGJvdGggdGhlIGN1cnJlbnQgY2hlY2sgYW5kIGdyb3VwcyBkYXRhXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBfY3VycmVudENoZWNrIC0gQ3VycmVudCBjaGVjayBvYmplY3RcbiAgICogQHBhcmFtIHtvYmplY3R9IGNoZWNrSW5Hcm91cHNEYXRhIC0gQ2hlY2sgaW4gZ3JvdXBzIGRhdGEgc3RydWN0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBfbmV3Q2hlY2tpbmdEYXRhIC0gTmV3IGRhdGEgdG8gYXBwbHlcbiAgICovXG4gIGZ1bmN0aW9uIHVwZGF0ZVZhbHVlc0luQ2hlY2tEYXRhKF9jdXJyZW50Q2hlY2ssIGNoZWNrSW5Hcm91cHNEYXRhLCBfbmV3Q2hlY2tpbmdEYXRhKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoX25ld0NoZWNraW5nRGF0YSkpIHtcbiAgICAgIGNvbnN0IG5ld0NoZWNraW5nVmFsdWUgPSBfbmV3Q2hlY2tpbmdEYXRhW2tleV1cbiAgICAgIF9jdXJyZW50Q2hlY2tba2V5XSA9IG5ld0NoZWNraW5nVmFsdWVcbiAgICAgIGNoZWNrSW5Hcm91cHNEYXRhW2tleV0gPSBuZXdDaGVja2luZ1ZhbHVlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBlcnNpc3RzIG11bHRpcGxlIGNoZWNrIHByb3BlcnR5IGNoYW5nZXMgdG8gZmlsZVxuICAgKiBDbG9uZXMgZGF0YSwgYXBwbGllcyBjaGFuZ2VzLCB1cGRhdGVzIHN0YXRlLCBhbmQgc2F2ZXNcbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld0RhdGEgLSBPYmplY3Qgd2l0aCBwcm9wZXJ0eSBuYW1lcyBhbmQgdmFsdWVzIHRvIHVwZGF0ZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29uc3QgX3NhdmVEYXRhID0gKG5ld0RhdGEpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1fc2F2ZURhdGEgcGVyc2lzdCB0byBmaWxlYClcbiAgICBjb25zdCB7IGNoZWNrSW5Hcm91cHNEYXRhLCBfY3VycmVudENoZWNrLCBuZXdTdGF0ZSwgX25ld0NoZWNraW5nRGF0YSB9ID0gY2xvbmVEYXRhRm9yU2F2aW5nKClcblxuICAgIGlmIChfY3VycmVudENoZWNrICYmIG5ld1N0YXRlKSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhuZXdEYXRhKSkge1xuICAgICAgICBfbmV3Q2hlY2tpbmdEYXRhW2tleV0gPSBuZXdEYXRhW2tleV1cbiAgICAgICAgZGVsZXRlVGVtcENoZWNraW5nRGF0YShrZXkpXG4gICAgICB9XG4gICAgICBzZXRMb2NhbENoZWNraW5nRGF0YShfbmV3Q2hlY2tpbmdEYXRhKVxuXG4gICAgICB1cGRhdGVWYWx1ZXNJbkNoZWNrRGF0YShfY3VycmVudENoZWNrLCBjaGVja0luR3JvdXBzRGF0YSwgX25ld0NoZWNraW5nRGF0YSlcblxuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpO1xuICAgICAgc2F2ZUNoZWNraW5nRGF0YSAmJiBzYXZlQ2hlY2tpbmdEYXRhKG5ld1N0YXRlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBjaGFuZ2VzIHRvIGEgc3BlY2lmaWMgY2hlY2sgKG1heSBub3QgYmUgY3VycmVudCBjaGVjaylcbiAgICogT25seSBzYXZlcyBpZiBkYXRhIGFjdHVhbGx5IGNoYW5nZWRcbiAgICogQHBhcmFtIHtvYmplY3R9IGNoZWNrIC0gQ2hlY2sgb2JqZWN0IHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3RGF0YSAtIE5ldyBkYXRhIHRvIGFwcGx5XG4gICAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIGRhdGEgd2FzIGNoYW5nZWRcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbnN0IF9zYXZlQ2hlY2tpbmdEYXRhID0gKGNoZWNrLCBuZXdEYXRhKSA9PiB7XG4gICAgbGV0IGNoYW5nZWREYXRhID0gZmFsc2VcbiAgICBpZiAoY2hlY2spIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG5ld0RhdGEpKSB7XG4gICAgICAgIGlmIChjaGVja1trZXldICE9PSBuZXdEYXRhW2tleV0pIHtcbiAgICAgICAgICBjaGVja1trZXldID0gbmV3RGF0YVtrZXldXG4gICAgICAgICAgY2hhbmdlZERhdGEgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNoYW5nZWREYXRhKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAke25hbWV9LV9zYXZlQ2hlY2tpbmdEYXRhIHBlcnNpc3QgY2hhbmdlcyB0byBmaWxlYCwgY2hlY2spXG4gICAgICAgIGNvbnN0IG5ld0NoZWNraW5nRGF0YSA9IHtcbiAgICAgICAgICBjdXJyZW50Q2hlY2s6IGNoZWNrLFxuICAgICAgICB9XG4gICAgICAgIHNhdmVDaGVja2luZ0RhdGEgJiYgc2F2ZUNoZWNraW5nRGF0YShuZXdDaGVja2luZ0RhdGEpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjaGFuZ2VkRGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBwcm9wZXJ0eSBmcm9tIHRlbXBvcmFyeSBjaGVja2luZyBkYXRhXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBQcm9wZXJ0eSBuYW1lIHRvIHJlbW92ZVxuICAgKi9cbiAgZnVuY3Rpb24gZGVsZXRlVGVtcENoZWNraW5nRGF0YShrZXkpIHtcbiAgICBpZiAodGVtcENoZWNraW5nRGF0YT8uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgY29uc3QgX3RlbXBDaGVja2luZ0RhdGEgPSB7Li4udGVtcENoZWNraW5nRGF0YX1cbiAgICAgIGRlbGV0ZSBfdGVtcENoZWNraW5nRGF0YVtrZXldXG4gICAgICBzZXRUZW1wQ2hlY2tpbmdEYXRhKF90ZW1wQ2hlY2tpbmdEYXRhKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIHNlbGVjdGlvbiBtb2RlIHdpdGhvdXQgc2F2aW5nIGNoYW5nZXNcbiAgICovXG4gIGNvbnN0IGNhbmNlbFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1jYW5jZWxTZWxlY3Rpb25gKVxuICAgIGRlbGV0ZVRlbXBDaGVja2luZ0RhdGEoJ3NlbGVjdGlvbnMnKVxuICAgIHNldFN0YXRlKHtcbiAgICAgIG1vZGU6ICdkZWZhdWx0J1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBhbGwgY3VycmVudCBzZWxlY3Rpb25zXG4gICAqL1xuICBjb25zdCBjbGVhclNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1jbGVhclNlbGVjdGlvbmApXG4gICAgc2V0VGVtcENoZWNraW5nSXRlbSgnc2VsZWN0aW9ucycsIFtdKVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgYm9va21hcmsvcmVtaW5kZXIgZmxhZyBmb3IgY3VycmVudCBjaGVja1xuICAgKi9cbiAgY29uc3QgdG9nZ2xlQm9va21hcmsgPSAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tdG9nZ2xlQm9va21hcmtgKVxuICAgIF9zYXZlRGF0YSh7XG4gICAgICByZW1pbmRlcnM6ICFnZXRUZW1wVmFsdWVGb3IoJ3JlbWluZGVycycpXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBVSSBtb2RlIChkZWZhdWx0LCBzZWxlY3QsIGVkaXQsIGNvbW1lbnQpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtb2RlIC0gTmV3IG1vZGUgaWRlbnRpZmllclxuICAgKi9cbiAgY29uc3QgY2hhbmdlTW9kZSA9IChtb2RlKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tY2hhbmdlTW9kZWAsIG1vZGUpXG4gICAgc2V0U3RhdGUoeyBtb2RlIH0pXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGNvbW1lbnQgdGV4dCBoYXMgY2hhbmdlZCBmcm9tIHNhdmVkIHZhbHVlXG4gICAqIEBwYXJhbSB7RXZlbnR9IGUgLSBJbnB1dCBldmVudFxuICAgKi9cbiAgZnVuY3Rpb24gY2hlY2tJZkNvbW1lbnRDaGFuZ2VkKGUpIHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1jaGVja0lmQ29tbWVudENoYW5nZWRgKVxuICAgIGNvbnN0IG5ld2NvbW1lbnQgPSBlLnRhcmdldC52YWx1ZSB8fCAnJztcbiAgICBjb25zdCBvbGRjb21tZW50ID0gY29tbWVudFRleHQgfHwgJyc7XG4gICAgY29uc3QgaXNDb21tZW50Q2hhbmdlZCA9IG5ld2NvbW1lbnQgIT09IG9sZGNvbW1lbnRcblxuICAgIHNldFN0YXRlKHtcbiAgICAgIGlzQ29tbWVudENoYW5nZWRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIGNvbW1lbnQgZWRpdGluZyB3aXRob3V0IHNhdmluZ1xuICAgKi9cbiAgY29uc3QgY2FuY2VsQ29tbWVudCA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1jYW5jZWxDb21tZW50YClcbiAgICBkZWxldGVUZW1wQ2hlY2tpbmdEYXRhKCdjb21tZW50cycpXG4gICAgc2V0U3RhdGUoe1xuICAgICAgbW9kZTogJ2RlZmF1bHQnLFxuICAgICAgaXNDb21tZW50Q2hhbmdlZDogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgY29tbWVudCBjaGFuZ2VzIHRvIHBlcnNpc3RlbnQgc3RvcmFnZVxuICAgKi9cbiAgY29uc3Qgc2F2ZUNvbW1lbnQgPSAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tc2F2ZUNvbW1lbnRgKVxuICAgIGNvbnN0IG5ld0NvbW1lbnQgPSBnZXRUZW1wVmFsdWVGb3IoJ2NvbW1lbnRzJylcbiAgICBfc2F2ZURhdGEoeyBjb21tZW50czogbmV3Q29tbWVudCB9KVxuICAgIHNldFN0YXRlKHtcbiAgICAgIG1vZGU6ICdkZWZhdWx0JyxcbiAgICAgIGlzQ29tbWVudENoYW5nZWQ6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgY29tbWVudCB0ZXh0IGNoYW5nZXNcbiAgICogQHBhcmFtIHtFdmVudH0gZSAtIElucHV0IGV2ZW50IHdpdGggbmV3IGNvbW1lbnRcbiAgICovXG4gIGNvbnN0IGhhbmRsZUNvbW1lbnQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1oYW5kbGVDb21tZW50YClcbiAgICBjb25zdCBuZXdDb21tZW50ID0gZS50YXJnZXQudmFsdWVcbiAgICBzZXRUZW1wQ2hlY2tpbmdJdGVtKCdjb21tZW50cycsIG5ld0NvbW1lbnQpXG4gICAgc2V0U3RhdGUoe1xuICAgICAgaXNDb21tZW50Q2hhbmdlZDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHJlYWR5VG9EaXNwbGF5Q2hlY2tlciA9IGdyb3Vwc0RhdGEgJiYgZ3JvdXBzSW5kZXggJiYgY3VycmVudENvbnRleHRJZCAmJiB2ZXJzZVRleHRcblxuICAvKipcbiAgICogV3JhcHBlciBmb3IgZ2V0TGV4aWNvbkRhdGEgY2FsbGJhY2sgd2l0aCBsb2dnaW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsZXhpY29uSWQgLSBMZXhpY29uIGlkZW50aWZpZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGVudHJ5SWQgLSBFbnRyeSBpZGVudGlmaWVyXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IExleGljb24gZGF0YVxuICAgKi9cbiAgY29uc3QgZ2V0TGV4aWNvbkRhdGFfID0gKGxleGljb25JZCwgZW50cnlJZCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGAke25hbWV9LWdldExleGljb25EYXRhX2AsIHtsZXhpY29uSWQsIGVudHJ5SWR9KVxuICAgIGNvbnN0IGxleGljb25EYXRhID0gZ2V0TGV4aWNvbkRhdGEgJiYgZ2V0TGV4aWNvbkRhdGEobGV4aWNvbklkLCBlbnRyeUlkKVxuICAgIHJldHVybiBsZXhpY29uRGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgcG9wb3ZlciBkaXNwbGF5XG4gICAqL1xuICBjb25zdCBvbkNsb3NlUG9wb3ZlciA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1vbkNsb3NlUG9wb3ZlcmApXG4gICAgc2V0U3RhdGUoe1xuICAgICAgcG9wb3ZlclByb3BzOiB7XG4gICAgICAgIHBvcG92ZXJWaXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgcG9wb3ZlciB3aXRoIHRpdGxlIGFuZCBjb250ZW50IGF0IHNwZWNpZmllZCBwb3NpdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSBQb3BvdmVyIHRpdGxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBib2R5VGV4dCAtIFBvcG92ZXIgY29udGVudFxuICAgKiBAcGFyYW0ge29iamVjdH0gcG9zaXRpb25Db29yZCAtIFBvc2l0aW9uIGNvb3JkaW5hdGVzXG4gICAqL1xuICBjb25zdCBzaG93UG9wb3ZlciA9ICh0aXRsZSwgYm9keVRleHQsIHBvc2l0aW9uQ29vcmQpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1zaG93UG9wb3ZlcmAsIHRpdGxlKVxuICAgIHNldFN0YXRlKHtcbiAgICAgIHBvcG92ZXJQcm9wczoge1xuICAgICAgICBwb3BvdmVyVmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIGJvZHlUZXh0LFxuICAgICAgICBwb3NpdGlvbkNvb3JkLFxuICAgICAgICBvbkNsb3NlUG9wb3ZlcjogKCkgPT4gb25DbG9zZVBvcG92ZXIoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgZXhwYW5kZWQgdHJhbnNsYXRpb24gaGVscHMgbW9kYWxcbiAgICovXG4gIGNvbnN0IHRvZ2dsZUhlbHBzTW9kYWwgPSAoKSA9PiB7XG4gICAgY29uc3QgX3Nob3dIZWxwc01vZGFsID0gIXNob3dIZWxwc01vZGFsXG4gICAgc2V0U3RhdGUoe1xuICAgICAgc2hvd0hlbHBzTW9kYWw6IF9zaG93SGVscHNNb2RhbFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgdHJhbnNsYXRpb24gaGVscHMgc2lkZWJhciB2aXNpYmlsaXR5XG4gICAqL1xuICBjb25zdCB0b2dnbGVIZWxwcyA9ICgpID0+IHtcbiAgICBjb25zdCBfc2hvd0hlbHBzID0gIXNob3dIZWxwc1xuICAgIHNldFN0YXRlKHtcbiAgICAgIHNob3dIZWxwczogX3Nob3dIZWxwc1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIEJpYmxlIGJvb2sgdG8gdGhlIGJpYmxlcyBkYXRhIHN0cnVjdHVyZVxuICAgKiBDcmVhdGVzIGxhbmd1YWdlIGdyb3VwIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICogQHBhcmFtIHtvYmplY3R9IGJpYmxlcyAtIEJpYmxlcyBkYXRhIHN0cnVjdHVyZVxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gTGFuZ3VhZ2Uga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiaWJsZUlkIC0gQmlibGUgaWRlbnRpZmllclxuICAgKiBAcGFyYW0ge29iamVjdH0gYm9vayAtIEJvb2sgZGF0YVxuICAgKi9cbiAgZnVuY3Rpb24gc2F2ZUJpYmxlVG9LZXkoYmlibGVzLCBrZXksIGJpYmxlSWQsIGJvb2spIHtcbiAgICBsZXQga2V5R3JvdXAgPSBiaWJsZXNba2V5XVxuICAgIGlmICgha2V5R3JvdXApIHsgLy8gaWYgZ3JvdXAgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBuZXdcbiAgICAgIGtleUdyb3VwID0ge31cbiAgICAgIGJpYmxlc1trZXldID0ga2V5R3JvdXBcbiAgICB9XG4gICAga2V5R3JvdXBbYmlibGVJZF0gPSBib29rXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB2ZXJzZSBjb250ZW50IGluIHRhcmdldCBCaWJsZVxuICAgKiBIYW5kbGVzIFVTRk0gY29udmVyc2lvbiwgYWxpZ25tZW50IHVwZGF0ZXMsIGFuZCB2YWxpZGF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFwdGVyIC0gQ2hhcHRlciBudW1iZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlIC0gVmVyc2UgbnVtYmVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvbGRWZXJzZVRleHQgLSBPcmlnaW5hbCB2ZXJzZSB0ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWZXJzZVRleHQgLSBOZXcgdmVyc2UgdGV4dFxuICAgKi9cbiAgZnVuY3Rpb24gZWRpdFRhcmdldFZlcnNlKGNoYXB0ZXIsIHZlcnNlLCBvbGRWZXJzZVRleHQsIG5ld1ZlcnNlVGV4dCkge1xuICAgIGNvbnNvbGUubG9nKGBlZGl0VGFyZ2V0VmVyc2UgJHtjaGFwdGVyfToke3ZlcnNlfSAtIGNoYW5nZWQgdG8gJHtuZXdWZXJzZVRleHR9YClcblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBmaXJzdCB1cGRhdGUgY29tcG9uZW50IHN0YXRlXG5cbiAgICBjb25zdCBfYmlibGVzID0gWyAuLi5iaWJsZXNfXVxuICAgIGNvbnN0IF90YXJnZXRCaWJsZSA9IHsuLi5fYmlibGVzWzBdfVxuICAgIF9iaWJsZXNbMF0gPSBfdGFyZ2V0QmlibGVcbiAgICBjb25zdCB0YXJnZXRCb29rID0gey4uLl90YXJnZXRCaWJsZT8uYm9va31cbiAgICBfdGFyZ2V0QmlibGUuYm9vayA9IHRhcmdldEJvb2tcbiAgICBjb25zdCB0YXJnZXRDaGFwdGVyID0gey4uLnRhcmdldEJvb2tbY2hhcHRlcl19XG4gICAgdGFyZ2V0Qm9va1tjaGFwdGVyXSA9IHRhcmdldENoYXB0ZXJcbiAgICB0YXJnZXRDaGFwdGVyW3ZlcnNlXSA9IG5ld1ZlcnNlVGV4dFxuXG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gbm93IGFwcGx5IG5ldyB2ZXJzZSB0ZXh0IHRvIHNlbGVjdGVkIGFsaWduZWQgdmVyc2UgYW5kIGNhbGwgYmFjayB0byBleHRlbnNpb24gdG8gc2F2ZVxuXG4gICAgbGV0IF9uZXdWZXJzZVRleHQgPSBuZXdWZXJzZVRleHRcbiAgICBpZiAodHlwZW9mIF9uZXdWZXJzZVRleHQgIT09ICdzdHJpbmcnKSB7XG4gICAgICBfbmV3VmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKF9uZXdWZXJzZVRleHQpXG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudENoYXB0ZXJEYXRhID0gdGFyZ2V0QmlibGU/LltjaGFwdGVyXVxuICAgIGNvbnN0IGN1cnJlbnRWZXJzZURhdGEgPSBjdXJyZW50Q2hhcHRlckRhdGE/Llt2ZXJzZV1cbiAgICBjb25zdCB7IHRhcmdldFZlcnNlT2JqZWN0cyB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZShjdXJyZW50VmVyc2VEYXRhLCBfbmV3VmVyc2VUZXh0KVxuICAgIHRhcmdldENoYXB0ZXJbdmVyc2VdID0geyB2ZXJzZU9iamVjdHM6IHRhcmdldFZlcnNlT2JqZWN0cyB9OyAvLyBzYXZlXG5cbiAgICB1cGRhdGVTZXR0aW5ncyhfYmlibGVzLCB0YXJnZXRCb29rKVxuXG4gICAgY29uc3QgdmVyc2VUZXh0ID0gcmVtb3ZlVXNmbU1hcmtlcnMoX25ld1ZlcnNlVGV4dClcbiAgICBzZXRTdGF0ZSh7XG4gICAgICB2ZXJzZVRleHRcbiAgICB9KVxuXG4gICAgY2hhbmdlVGFyZ2V0VmVyc2UgJiYgY2hhbmdlVGFyZ2V0VmVyc2UoY2hhcHRlciwgdmVyc2UsIG5ld1ZlcnNlVGV4dCwgdGFyZ2V0VmVyc2VPYmplY3RzKVxuICAgIF9zYXZlRGF0YSh7IHZlcnNlRWRpdHM6IHRydWUgfSlcblxuICAgIGNvbnN0IF9ncm91cHNEYXRhID0gXy5jbG9uZURlZXAoZ3JvdXBzRGF0YSlcbiAgICBsZXQgY2hhbmdlZERhdGEgPSBmYWxzZVxuICAgIHNlbGVjdGlvbnNIZWxwZXJzLnZhbGlkYXRlQWxsU2VsZWN0aW9uc0ZvclZlcnNlKG5ld1ZlcnNlVGV4dCwgYm9va0lkLCBjaGFwdGVyLCB2ZXJzZSwgX2dyb3Vwc0RhdGEsIChjaGVjaywgaW52YWxpZGF0ZWQpID0+IHtcbiAgICAgIGlmIChjaGVjaykge1xuICAgICAgICBjb25zdCBjdXJyZW50Q2hlY2tJZCA9IGN1cnJlbnRDaGVjaz8uY29udGV4dElkPy5jaGVja0lkXG4gICAgICAgIGNvbnN0IGNoZWNrSWQgPSBjaGVjaz8uY29udGV4dElkPy5jaGVja0lkXG5cbiAgICAgICAgaWYgKGNoZWNrSWQgPT09IGN1cnJlbnRDaGVja0lkKSB7XG4gICAgICAgICAgLy8gbmVlZCB0byB1cGRhdGUgY3VycmVudCBjaGVja1xuICAgICAgICAgIF9zYXZlRGF0YSh7XG4gICAgICAgICAgICBpbnZhbGlkYXRlZCxcbiAgICAgICAgICAgIHZlcnNlRWRpdHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGAke25hbWV9LWVkaXRUYXJnZXRWZXJzZSAtIGNoZWNrIHZhbGlkYXRlZCwgc3RhdGUgY2hhbmdlZDogaW52YWxpZDogJHtpbnZhbGlkYXRlZH1gLCBjaGVjaylcbiAgICAgICAgY2hhbmdlZERhdGEgPSBjaGFuZ2VkRGF0YSB8fCBfc2F2ZUNoZWNraW5nRGF0YShjaGVjaywgeyBpbnZhbGlkYXRlZCwgdmVyc2VFZGl0czogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoY2hhbmdlZERhdGEpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAke25hbWV9LWVkaXRUYXJnZXRWZXJzZSAtIGNoYW5nZXMgZGV0ZWN0ZWQgdXBkYXRpbmcgZ3JvdXBzRGF0YWApXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGdyb3Vwc0RhdGE6IF9ncm91cHNEYXRhXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHNldHRpbmdzIHdpdGggbmV3IEJpYmxlIGRhdGEgYW5kIHBhbmUgY29uZmlndXJhdGlvbnNcbiAgICogT3JnYW5pemVzIEJpYmxlcyBieSBsYW5ndWFnZSBhbmQgaW5pdGlhbGl6ZXMgcGFuZSBzZXR0aW5nc1xuICAgKiBAcGFyYW0ge0FycmF5fSBuZXdCaWJsZXMgLSBBcnJheSBvZiBCaWJsZSBvYmplY3RzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSB0YXJnZXRCaWJsZSAtIFRhcmdldCBCaWJsZSBkYXRhXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVTZXR0aW5ncyhuZXdCaWJsZXMsIHRhcmdldEJpYmxlKSB7XG4gICAgY29uc3QgX2JpYmxlcyA9IHt9XG4gICAgbGV0IF9wYW5lU2V0dGluZ3MgPSBbXVxuICAgIGNvbnN0IF9wYW5lS2V5U2V0dGluZ3MgPSBpbml0aWFsU2V0dGluZ3M/LnBhbmVLZXlTZXR0aW5ncyB8fCB7fVxuICAgIGlmIChuZXdCaWJsZXM/Lmxlbmd0aCkge1xuICAgICAgZm9yIChjb25zdCBiaWJsZSBvZiBuZXdCaWJsZXMpIHtcbiAgICAgICAgbGV0IGxhbmd1YWdlSWQgPSBiaWJsZT8ubGFuZ3VhZ2VJZFxuICAgICAgICBjb25zdCBvd25lciA9IGJpYmxlPy5vd25lclxuICAgICAgICBjb25zdCBib29rID0gYmlibGU/LmJvb2tcbiAgICAgICAgY29uc3QgYmlibGVJZCA9IGJpYmxlPy5iaWJsZUlkXG4gICAgICAgIGlmIChsYW5ndWFnZUlkID09PSBOVF9PUklHX0xBTkcgfHwgbGFuZ3VhZ2VJZCA9PT0gT1RfT1JJR19MQU5HKSB7XG4gICAgICAgICAgbGFuZ3VhZ2VJZCA9ICdvcmlnaW5hbExhbmd1YWdlJ1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleSA9IGAke2xhbmd1YWdlSWR9LyR7YmlibGVJZH0vJHtvd25lcn1gXG4gICAgICAgIGNvbnN0IGluaXRpYWxQYW5lU2V0dGluZ3MgPSBfcGFuZUtleVNldHRpbmdzPy5ba2V5XVxuICAgICAgICBjb25zdCBsYW5nS2V5ID0gYCR7bGFuZ3VhZ2VJZH1fJHtvd25lcn1gXG4gICAgICAgIHNhdmVCaWJsZVRvS2V5KF9iaWJsZXMsIGxhbmdLZXksIGJpYmxlSWQsIGJvb2spXG4gICAgICAgIHNhdmVCaWJsZVRvS2V5KF9iaWJsZXMsIGxhbmd1YWdlSWQsIGJpYmxlSWQsIGJvb2spIC8vIGFsc28gc2F2ZSBhcyBkZWZhdWx0IGZvciBsYW5ndWFnZSB3aXRob3V0IG93bmVyXG4gICAgICAgIGNvbnN0IHBhbmUgPSBpbml0aWFsUGFuZVNldHRpbmdzIHx8IHtcbiAgICAgICAgICAuLi5iaWJsZSxcbiAgICAgICAgICBsYW5ndWFnZUlkXG4gICAgICAgIH1cbiAgICAgICAgX3BhbmVTZXR0aW5ncy5wdXNoKHBhbmUpXG4gICAgICAgIGlmICghaW5pdGlhbFBhbmVTZXR0aW5ncykge1xuICAgICAgICAgIF9wYW5lS2V5U2V0dGluZ3Nba2V5XSA9IHBhbmVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBfcGFuZVNldHRpbmdzID0gW11cbiAgICB9XG5cbiAgICBjb25zdCBfdG9vbHNTZXR0aW5ncyA9IGluaXRpYWxTZXR0aW5ncz8udG9vbHNTZXR0aW5ncyB8fFxuICAgIHtcbiAgICAgICdDaGVja0FyZWEnOiB7XG4gICAgICAgICdmb250U2l6ZSc6IDEwMFxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBfbWFuaWZlc3QgPSBpbml0aWFsU2V0dGluZ3M/Lm1hbmlmZXN0IHx8XG4gICAge1xuICAgICAgbGFuZ3VhZ2VfbmFtZTogdGFyZ2V0QmlibGU/Lm1hbmlmZXN0Py5kdWJsaW5fY29yZT8ubGFuZ3VhZ2U/LnRpdGxlIHx8ICdDdXJyZW50JyxcbiAgICAgIHByb2plY3RGb250OiB0YXJnZXRCaWJsZT8ubWFuaWZlc3Q/LnByb2plY3RGb250IHx8ICcnXG4gICAgfVxuXG4gICAgY29uc3QgYXBwU2V0dGluZ3MgPSBpbml0aWFsU2V0dGluZ3M/LmFwcFNldHRpbmdzIHx8IHt9XG4gICAgX21hbmlmZXN0ID0ge1xuICAgICAgLi4uX21hbmlmZXN0LFxuICAgICAgLi4uYXBwU2V0dGluZ3MgLy8gb2xkZXIgY29kZSBpcyBsb29raW5nIGZvciBhcHBTZXR0aW5ncyBpbiBtYW5pZmVzdFxuICAgIH1cblxuICAgIHNldEJpYmxlcyhfYmlibGVzKVxuICAgIHNldFRhcmdldEJpYmxlKHRhcmdldEJpYmxlKVxuICAgIHNldFNldHRpbmdzKHtcbiAgICAgIHBhbmVTZXR0aW5nczogX3BhbmVTZXR0aW5ncyxcbiAgICAgIHBhbmVLZXlTZXR0aW5nczogX3BhbmVLZXlTZXR0aW5ncyxcbiAgICAgIHRvb2xzU2V0dGluZ3M6IF90b29sc1NldHRpbmdzLFxuICAgICAgbWFuaWZlc3Q6IF9tYW5pZmVzdCxcbiAgICAgIG5ld0NvbW1lbnQ6ICcnLFxuICAgICAgYXBwU2V0dGluZ3MsXG4gICAgfSwgZmFsc2UpXG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciBmb3IgZ2V0U2NyaXB0dXJlRnJvbVJlZmVyZW5jZSB3aXRoIGN1cnJlbnQgQmlibGVzIGRhdGFcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxhbmcgLSBMYW5ndWFnZSBJRFxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgLSBCaWJsZSBJRFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYm9vayAtIEJvb2sgSURcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXB0ZXIgLSBDaGFwdGVyIG51bWJlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmVyc2UgLSBWZXJzZSBudW1iZXJcbiAgICogQHJldHVybnMge3N0cmluZ30gU2NyaXB0dXJlIHRleHRcbiAgICovXG4gIGZ1bmN0aW9uIF9nZXRTY3JpcHR1cmVGcm9tUmVmZXJlbmNlKGxhbmcsIGlkLCBib29rLCBjaGFwdGVyLCB2ZXJzZSkge1xuICAgIHJldHVybiBnZXRTY3JpcHR1cmVGcm9tUmVmZXJlbmNlKGJpYmxlcywgbGFuZywgaWQsIGJvb2ssIGNoYXB0ZXIsIHZlcnNlKVxuICB9XG5cbiAgLyoqXG4gICAqIEVmZmVjdCBob29rIHRvIHVwZGF0ZSBzZXR0aW5ncyB3aGVuIEJpYmxlcyBvciB0YXJnZXQgQmlibGUgY2hhbmdlc1xuICAgKi9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB1cGRhdGVTZXR0aW5ncyhiaWJsZXNfLCB0YXJnZXRCaWJsZV8pXG4gIH0sIFtiaWJsZXNfLCB0YXJnZXRCaWJsZV9dKVxuXG4gIC8vIGJ1aWxkIHRoZSB0aXRsZVxuICBjb25zdCB7IHRhcmdldF9sYW5ndWFnZSwgcHJvamVjdCB9ID0gbWFuaWZlc3Q7XG4gIGxldCBleHBhbmRlZFNjcmlwdHVyZVBhbmVUaXRsZSA9IHByb2plY3Q/LnRpdGxlIHx8ICcnO1xuXG4gIGlmICh0YXJnZXRfbGFuZ3VhZ2U/LmJvb2s/Lm5hbWUpIHtcbiAgICBleHBhbmRlZFNjcmlwdHVyZVBhbmVUaXRsZSA9IHRhcmdldF9sYW5ndWFnZS5ib29rLm5hbWU7XG4gIH1cblxuXG4gIGNvbnN0IHN0eWxlUHJvcHMgPSBzdHlsZXMgfHwge31cbiAgY29uc3QgX2NoZWNrZXJTdHlsZXMgPSB7XG4gICAgLi4ubG9jYWxTdHlsZXMuY29udGFpbmVyRGl2LFxuICAgIC4uLnN0eWxlUHJvcHMsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIHJlYWR5VG9EaXNwbGF5Q2hlY2tlciA/XG4gICAgICA8ZGl2IGlkPSdjaGVja2VyJyBzdHlsZT17X2NoZWNrZXJTdHlsZXN9PlxuICAgICAgICA8R3JvdXBNZW51Q29tcG9uZW50XG4gICAgICAgICAgYm9va05hbWU9e2Jvb2tOYW1lfVxuICAgICAgICAgIGNoYW5nZUN1cnJlbnRDb250ZXh0SWQ9e2NoYW5nZUN1cnJlbnRDaGVja199XG4gICAgICAgICAgY29udGV4dElkPXtjdXJyZW50Q29udGV4dElkfVxuICAgICAgICAgIGRpcmVjdGlvbj17ZGlyZWN0aW9ufVxuICAgICAgICAgIGdyb3Vwc0RhdGE9e2dyb3Vwc0RhdGF9XG4gICAgICAgICAgZ3JvdXBzSW5kZXg9e2dyb3Vwc0luZGV4fVxuICAgICAgICAgIHRhcmdldExhbmd1YWdlRm9udD17dGFyZ2V0TGFuZ3VhZ2VGb250fVxuICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IHN0eWxlPXtsb2NhbFN0eWxlcy5jZW50ZXJEaXZ9PlxuICAgICAgICAgIHsgYmlibGVzICYmIE9iamVjdC5rZXlzKGJpYmxlcykubGVuZ3RoICYmXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXtsb2NhbFN0eWxlcy5zY3JpcHR1cmVQYW5lRGl2fT5cbiAgICAgICAgICAgICAgPFNjcmlwdHVyZVBhbmVcbiAgICAgICAgICAgICAgICBhZGRPYmplY3RQcm9wZXJ0eVRvTWFuaWZlc3Q9e2FkZE9iamVjdFByb3BlcnR5VG9NYW5pZmVzdH1cbiAgICAgICAgICAgICAgICBiaWJsZXM9e2JpYmxlc31cbiAgICAgICAgICAgICAgICBjb21wbGV4U2NyaXB0Rm9udHM9e2NvbXBsZXhTY3JpcHRGb250c31cbiAgICAgICAgICAgICAgICBjb250ZXh0SWQ9e2N1cnJlbnRDb250ZXh0SWR9XG4gICAgICAgICAgICAgICAgY3VycmVudFBhbmVTZXR0aW5ncz17cGFuZVNldHRpbmdzfVxuICAgICAgICAgICAgICAgIGVkaXRWZXJzZVJlZj17bnVsbH1cbiAgICAgICAgICAgICAgICBlZGl0VGFyZ2V0VmVyc2U9e2VkaXRUYXJnZXRWZXJzZX1cbiAgICAgICAgICAgICAgICBleHBhbmRlZFNjcmlwdHVyZVBhbmVUaXRsZT17ZXhwYW5kZWRTY3JpcHR1cmVQYW5lVGl0bGV9XG4gICAgICAgICAgICAgICAgZ2V0QXZhaWxhYmxlU2NyaXB0dXJlUGFuZVNlbGVjdGlvbnM9e251bGx9XG4gICAgICAgICAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhX31cbiAgICAgICAgICAgICAgICBtYWtlU3VyZUJpYmxlc0xvYWRlZEZvclRvb2w9e251bGx9XG4gICAgICAgICAgICAgICAgcHJvamVjdERldGFpbHNSZWR1Y2VyPXt7IG1hbmlmZXN0IH19XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9ucz17Y3VycmVudFNlbGVjdGlvbnN9XG4gICAgICAgICAgICAgICAgc2V0VG9vbFNldHRpbmdzPXtzZXRUb29sU2V0dGluZ3NTY3JpcHR1cmV9XG4gICAgICAgICAgICAgICAgc2hvd1BvcG92ZXI9e3Nob3dQb3BvdmVyfVxuICAgICAgICAgICAgICAgIG9uRXhwYW5kZWRTY3JpcHR1cmVQYW5lU2hvdz17bnVsbH1cbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPENoZWNrSW5mb0NhcmRcbiAgICAgICAgICAgICAgZ2V0U2NyaXB0dXJlRnJvbVJlZmVyZW5jZT17X2dldFNjcmlwdHVyZUZyb21SZWZlcmVuY2V9XG4gICAgICAgICAgICAgIG9uTGlua0NsaWNrPXsoKSA9PiBmYWxzZX1cbiAgICAgICAgICAgICAgb25TZWVNb3JlQ2xpY2s9eygpID0+IGZhbHNlfVxuICAgICAgICAgICAgICBwaHJhc2U9e2dyb3VwUGhyYXNlfVxuICAgICAgICAgICAgICBzZWVNb3JlTGFiZWw9e3RyYW5zbGF0ZSgnc2VlX21vcmUnKX1cbiAgICAgICAgICAgICAgc2hvd1NlZU1vcmVCdXR0b249e2ZhbHNlfVxuICAgICAgICAgICAgICB0aXRsZT17Z3JvdXBUaXRsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7ZmFsc2UgJiYgPFZlcnNlQ2hlY2tcbiAgICAgICAgICAgICAgYWxpZ25lZEdMVGV4dD17YWxpZ25lZEdMVGV4dH1cbiAgICAgICAgICAgICAgYm9va0RldGFpbHM9e2Jvb2tEZXRhaWxzfVxuICAgICAgICAgICAgICBib29rbWFya0VuYWJsZWQ9e2Jvb2ttYXJrRW5hYmxlZH1cbiAgICAgICAgICAgICAgY2FuY2VsRWRpdFZlcnNlPXtjYW5jZWxFZGl0VmVyc2V9XG4gICAgICAgICAgICAgIGNhbmNlbENvbW1lbnQ9e2NhbmNlbENvbW1lbnR9XG4gICAgICAgICAgICAgIGNhbmNlbFNlbGVjdGlvbj17Y2FuY2VsU2VsZWN0aW9ufVxuICAgICAgICAgICAgICBjaGFuZ2VNb2RlPXtjaGFuZ2VNb2RlfVxuICAgICAgICAgICAgICBjaGFuZ2VTZWxlY3Rpb25zSW5Mb2NhbFN0YXRlPXtjaGFuZ2VTZWxlY3Rpb25zSW5Mb2NhbFN0YXRlfVxuICAgICAgICAgICAgICBjaGVja0lmQ29tbWVudENoYW5nZWQ9e2NoZWNrSWZDb21tZW50Q2hhbmdlZH1cbiAgICAgICAgICAgICAgY2hlY2tJZlZlcnNlQ2hhbmdlZD17Y2hlY2tJZlZlcnNlQ2hhbmdlZH1cbiAgICAgICAgICAgICAgY2xlYXJTZWxlY3Rpb249e2NsZWFyU2VsZWN0aW9ufVxuICAgICAgICAgICAgICBjb21tZW50VGV4dD17Y29tbWVudFRleHR9XG4gICAgICAgICAgICAgIGNvbnRleHRJZD17Y3VycmVudENvbnRleHRJZH1cbiAgICAgICAgICAgICAgZGlhbG9nTW9kYWxWaXNpYmlsaXR5ID0ge2ZhbHNlfVxuICAgICAgICAgICAgICBpc0NvbW1lbnRDaGFuZ2VkPXtpc0NvbW1lbnRDaGFuZ2VkfVxuICAgICAgICAgICAgICBpc1ZlcnNlQ2hhbmdlZD17aXNWZXJzZUNoYW5nZWR9XG4gICAgICAgICAgICAgIGlzVmVyc2VFZGl0ZWQ9e2lzVmVyc2VFZGl0ZWR9XG4gICAgICAgICAgICAgIGhhbmRsZUVkaXRWZXJzZT17aGFuZGxlRWRpdFZlcnNlfVxuICAgICAgICAgICAgICBoYW5kbGVHb1RvTmV4dD17aGFuZGxlR29Ub05leHR9XG4gICAgICAgICAgICAgIGhhbmRsZUdvVG9QcmV2aW91cz17aGFuZGxlR29Ub1ByZXZpb3VzfVxuICAgICAgICAgICAgICBoYW5kbGVPcGVuRGlhbG9nPXtudWxsfVxuICAgICAgICAgICAgICBpc1ZlcnNlSW52YWxpZGF0ZWQ9e2lzVmVyc2VJbnZhbGlkYXRlZH1cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEaWFsb2c9e251bGx9XG4gICAgICAgICAgICAgIGhhbmRsZUNvbW1lbnQ9e2hhbmRsZUNvbW1lbnR9XG4gICAgICAgICAgICAgIGhhbmRsZVNraXA9e251bGx9XG4gICAgICAgICAgICAgIGhhbmRsZVRhZ3NDaGVja2JveD17aGFuZGxlVGFnc0NoZWNrYm94fVxuICAgICAgICAgICAgICBsb2NhbE5vdGhpbmdUb1NlbGVjdD17dGVtcE5vdGhpbmdUb1NlbGVjdH1cbiAgICAgICAgICAgICAgbWFuaWZlc3Q9e21hbmlmZXN0fVxuICAgICAgICAgICAgICBtYXhpbXVtU2VsZWN0aW9ucz17bWF4aW11bVNlbGVjdGlvbnN9XG4gICAgICAgICAgICAgIG1vZGU9e21vZGV9XG4gICAgICAgICAgICAgIG5ld1NlbGVjdGlvbnM9e3RlbXBTZWxlY3Rpb25zfVxuICAgICAgICAgICAgICBub3RoaW5nVG9TZWxlY3Q9e2N1cnJlbnROb3RoaW5nVG9TZWxlY3R9XG4gICAgICAgICAgICAgIG9wZW5BbGVydERpYWxvZz17b3BlbkFsZXJ0RGlhbG9nfVxuICAgICAgICAgICAgICBzYXZlQ29tbWVudD17c2F2ZUNvbW1lbnR9XG4gICAgICAgICAgICAgIHNhdmVFZGl0VmVyc2U9e3NhdmVFZGl0VmVyc2V9XG4gICAgICAgICAgICAgIHNhdmVTZWxlY3Rpb249e19zYXZlU2VsZWN0aW9ufVxuICAgICAgICAgICAgICBzZWxlY3Rpb25zPXtjdXJyZW50U2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgc2V0VG9vbFNldHRpbmdzPXtzZXRUb29sU2V0dGluZ3N9XG4gICAgICAgICAgICAgIHRhZ3M9e25ld1RhZ3MgfHwgW119XG4gICAgICAgICAgICAgIHRhcmdldEJpYmxlPXt0YXJnZXRCaWJsZX1cbiAgICAgICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VEZXRhaWxzPXt0YXJnZXRMYW5ndWFnZURldGFpbHN9XG4gICAgICAgICAgICAgIHRvZ2dsZUJvb2ttYXJrPXt0b2dnbGVCb29rbWFya31cbiAgICAgICAgICAgICAgdG9nZ2xlTm90aGluZ1RvU2VsZWN0PXt0b2dnbGVOb3RoaW5nVG9TZWxlY3R9XG4gICAgICAgICAgICAgIHRvb2xzU2V0dGluZ3M9e3Rvb2xzU2V0dGluZ3N9XG4gICAgICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgICAgICB1bmZpbHRlcmVkVmVyc2VUZXh0PXt1bmZpbHRlcmVkVmVyc2VUZXh0fVxuICAgICAgICAgICAgICB2YWxpZGF0ZVNlbGVjdGlvbnM9e3ZhbGlkYXRlU2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgdmVyc2VUZXh0PXt2ZXJzZVRleHR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3Nob3dEb2N1bWVudCAmJiA8VHJhbnNsYXRpb25IZWxwc1xuICAgICAgICAgIG1vZGFsQXJ0aWNsZT17YXJ0aWNsZX1cbiAgICAgICAgICBhcnRpY2xlPXthcnRpY2xlfVxuICAgICAgICAgIGV4cGFuZGVkSGVscHNCdXR0b25Ib3ZlclRleHQ9eydDbGljayB0byBzaG93IGV4cGFuZGVkIGhlbHAgcGFuZSd9XG4gICAgICAgICAgbW9kYWxUaXRsZT17J3RyYW5zbGF0aW9uSGVscHMnfVxuICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgIGlzU2hvd0hlbHBzRXhwYW5kZWQ9e3Nob3dIZWxwc01vZGFsfVxuICAgICAgICAgIG9wZW5FeHBhbmRlZEhlbHBzTW9kYWw9e3RvZ2dsZUhlbHBzTW9kYWx9XG4gICAgICAgICAgc2lkZWJhclRvZ2dsZT17dG9nZ2xlSGVscHN9XG4gICAgICAgICAgaXNTaG93SGVscHNTaWRlYmFyPXtzaG93SGVscHN9XG4gICAgICAgIC8+fVxuICAgICAgICB7cG9wb3ZlclByb3BzPy5wb3BvdmVyVmlzaWJpbGl0eSAmJlxuICAgICAgICAgIDxQb3BvdmVyQ29udGFpbmVyIHsuLi5wb3BvdmVyUHJvcHN9IC8+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgOlxuICAgICAgJ1dhaXRpbmcgZm9yIERhdGEnXG4gICk7XG59O1xuXG5DaGVja2VyLnByb3BUeXBlcyA9IHtcbiAgc3R5bGVzOlByb3BUeXBlcy5vYmplY3QsXG4gIGFsaWduZWRHbEJpYmxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICBiaWJsZXM6IFByb3BUeXBlcy5hcnJheSxcbiAgY2hhbmdlVGFyZ2V0VmVyc2U6IFByb3BUeXBlcy5mdW5jLFxuICBjaGVja2luZ0RhdGE6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgY2hlY2tUeXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjb250ZXh0SWQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZ2xXb3Jkc0RhdGE6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZ2V0TGV4aWNvbkRhdGE6IFByb3BUeXBlcy5mdW5jLFxuICBpbml0aWFsU2V0dGluZ3M6IFByb3BUeXBlcy5vYmplY3QsXG4gIHNhdmVDaGVja2luZ0RhdGE6IFByb3BUeXBlcy5mdW5jLFxuICBzYXZlU2V0dGluZ3M6IFByb3BUeXBlcy5mdW5jLFxuICBzaG93RG9jdW1lbnQ6IFByb3BUeXBlcy5ib29sLFxuICB0YXJnZXRCaWJsZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB0YXJnZXRMYW5ndWFnZURldGFpbHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgdHJhbnNsYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcbmV4cG9ydCBkZWZhdWx0IENoZWNrZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUEwQ0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksbUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLGVBQUEsR0FBQUwsT0FBQTtBQU1BLElBQUFNLFVBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLGlCQUFBLEdBQUFQLE9BQUE7QUFTQSxJQUFBUSxjQUFBLEdBQUFOLHNCQUFBLENB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QUUsa0NBQW1DO0lBQ2pFQyxVQUFVLEVBQUUsa0JBQW1CO0lBQy9CNVQsU0FBUyxFQUFFQSxTQUFVO0lBQ3JCNlQsbUJBQW1CLEVBQUV0UixjQUFlO0lBQ3BDdVIsc0JBQXNCLEVBQUUzRSxnQkFBaUI7SUFDekM0RSxhQUFhLEVBQUUxRSxXQUFZO0lBQzNCMkUsa0JBQWtCLEVBQUV4UjtFQUFVLENBQy9CLENBQUMsRUFDRCxDQUFBSCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRUMsaUJBQWlCLGtCQUM5QjNLLE1BQUEsWUFBQXlhLGFBQUEsQ0FBQzVaLGlCQUFBLFdBQWdCLEVBQUs2SixZQUFlLENBRXBDLENBQUMsR0FFTixrQkFBa0I7QUFFeEIsQ0FBQztBQUVENUQsT0FBTyxDQUFDd1YsU0FBUyxHQUFHO0VBQ2xCclUsTUFBTSxFQUFDc1UscUJBQVMsQ0FBQ0MsTUFBTTtFQUN2QnJWLGNBQWMsRUFBRW9WLHFCQUFTLENBQUNDLE1BQU07RUFDaENuVixNQUFNLEVBQUVrVixxQkFBUyxDQUFDRSxLQUFLO0VBQ3ZCbFYsaUJBQWlCLEVBQUVnVixxQkFBUyxDQUFDRyxJQUFJO0VBQ2pDbFYsWUFBWSxFQUFFK1UscUJBQVMsQ0FBQ0MsTUFBTSxDQUFDRyxVQUFVO0VBQ3pDbFYsU0FBUyxFQUFFOFUscUJBQVMsQ0FBQ0ssTUFBTTtFQUMzQmxWLFNBQVMsRUFBRTZVLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0csVUFBVTtFQUN0Qy9VLFdBQVcsRUFBRTJVLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0csVUFBVTtFQUN4Q2hWLGNBQWMsRUFBRTRVLHFCQUFTLENBQUNHLElBQUk7RUFDOUI3VSxlQUFlLEVBQUUwVSxxQkFBUyxDQUFDQyxNQUFNO0VBQ2pDMVUsZ0JBQWdCLEVBQUV5VSxxQkFBUyxDQUFDRyxJQUFJO0VBQ2hDM1UsWUFBWSxFQUFFd1UscUJBQVMsQ0FBQ0csSUFBSTtFQUM1QjFVLFlBQVksRUFBRXVVLHFCQUFTLENBQUNNLElBQUk7RUFDNUIxVSxXQUFXLEVBQUVvVSxxQkFBUyxDQUFDQyxNQUFNLENBQUNHLFVBQVU7RUFDeEN2VSxxQkFBcUIsRUFBRW1VLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0csVUFBVTtFQUNsRHRVLFNBQVMsRUFBRWtVLHFCQUFTLENBQUNHLElBQUksQ0FBQ0M7QUFDNUIsQ0FBQztBQUFDLElBQUFHLFFBQUEsR0FBQXJXLE9BQUEsY0FDYUssT0FBTyIsImlnbm9yZUxpc3QiOltdfQ==
1370
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9sb2Rhc2giLCJfR3JvdXBNZW51Q29tcG9uZW50IiwiX3dvcmRBbGlnbmVyTGliIiwiX2RlZXBFcXVhbCIsIl90d0FydGljbGVIZWxwZXJzIiwiX0NoZWNrSW5mb0NhcmQiLCJfdG5BcnRpY2xlSGVscGVycyIsIl9TY3JpcHR1cmVQYW5lIiwiX1BvcG92ZXJDb250YWluZXIiLCJfQm9va3NPZlRoZUJpYmxlIiwiX2NvbXBsZXhTY3JpcHRGb250cyIsIl9UcmFuc2xhdGlvbkhlbHBzIiwidEhlbHBzSGVscGVycyIsIl9WZXJzZUNoZWNrIiwiX2NoZWNrSW5mb0NhcmRIZWxwZXJzIiwiZSIsIl9fZXNNb2R1bGUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsImRvbmUiLCJ2YWx1ZSIsIlR5cGVFcnJvciIsImEiLCJ1IiwibmV4dCIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJsIiwibG9jYWxTdHlsZXMiLCJjb250YWluZXJEaXYiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsIndpZHRoIiwiaGVpZ2h0IiwiY2VudGVyRGl2Iiwib3ZlcmZsb3dYIiwibWFyZ2luTGVmdCIsInNjcmlwdHVyZVBhbmVEaXYiLCJmbGV4U2hyaW5rIiwicGFkZGluZ0JvdHRvbSIsInRyYW5zbGF0aW9uV29yZHMiLCJleHBvcnRzIiwidHJhbnNsYXRpb25Ob3RlcyIsIm1heGltdW1TZWxlY3Rpb25zIiwiY29uc29sZSIsImxvZyIsIkNoZWNrZXIiLCJfcmVmIiwiX3RhcmdldExhbmd1YWdlRGV0YWlsIiwiX3RhcmdldExhbmd1YWdlRGV0YWlsMiIsIl90YXJnZXRfbGFuZ3VhZ2UkYm9vayIsImFsaWduZWRHbEJpYmxlIiwiYmlibGVzXyIsImJpYmxlcyIsImNoYW5nZWRDdXJyZW50Q2hlY2siLCJjaGFuZ2VUYXJnZXRWZXJzZSIsImNoZWNraW5nRGF0YSIsImNoZWNrVHlwZSIsImNvbnRleHRJZCIsImdldExleGljb25EYXRhIiwiZ2xXb3Jkc0RhdGEiLCJpbml0aWFsU2V0dGluZ3MiLCJzYXZlQ2hlY2tpbmdEYXRhIiwic2F2ZVNldHRpbmdzIiwic2hvd0RvY3VtZW50Iiwic3R5bGVzIiwidGFyZ2V0QmlibGVfIiwidGFyZ2V0QmlibGUiLCJ0YXJnZXRMYW5ndWFnZURldGFpbHMiLCJ0cmFuc2xhdGUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsInBhbmVTZXR0aW5ncyIsInBhbmVLZXlTZXR0aW5ncyIsInRvb2xzU2V0dGluZ3MiLCJtYW5pZmVzdCIsIl91c2VTdGF0ZTIiLCJzZXR0aW5ncyIsIl9zZXRTZXR0aW5ncyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2V0QmlibGVzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZXRUYXJnZXRCaWJsZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwidGVtcENoZWNraW5nRGF0YSIsInNldFRlbXBDaGVja2luZ0RhdGEiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImxvY2FsQ2hlY2tpbmdEYXRhIiwic2V0TG9jYWxDaGVja2luZ0RhdGEiLCJfdXNlU3RhdGUxIiwiYWxpZ25lZEdMVGV4dCIsImFydGljbGUiLCJjdXJyZW50Q2hlY2siLCJjdXJyZW50Q2hlY2tpbmdEYXRhIiwiZ3JvdXBUaXRsZSIsImdyb3VwUGhyYXNlIiwiZ3JvdXBzRGF0YSIsImdyb3Vwc0luZGV4IiwiaXNDb21tZW50Q2hhbmdlZCIsImlzVmVyc2VDaGFuZ2VkIiwibW9kZSIsIm5ld1ZlcnNlVGV4dCIsInBvcG92ZXJQcm9wcyIsInBvcG92ZXJWaXNpYmlsaXR5Iiwic2hvd0hlbHBzTW9kYWwiLCJzaG93SGVscHMiLCJuZXdUYWdzIiwidmVyc2VUZXh0IiwiX3VzZVN0YXRlMTAiLCJzdGF0ZSIsIl9zZXRTdGF0ZSIsInNldFN0YXRlIiwibmV3U3RhdGUiLCJwcmV2U3RhdGUiLCJnZXRDdXJyZW50VmFsdWVGb3IiLCJrZXkiLCJnZXRUZW1wVmFsdWVGb3IiLCJjdXJyZW50U2VsZWN0aW9ucyIsInRlbXBTZWxlY3Rpb25zIiwidGVtcE5vdGhpbmdUb1NlbGVjdCIsImN1cnJlbnROb3RoaW5nVG9TZWxlY3QiLCJncm91cHNEYXRhTG9hZGVkIiwidXBkYXRlTW9kZUZvclNlbGVjdGlvbnMiLCJuZXdTZWxlY3Rpb25zIiwibm90aGluZ1RvU2VsZWN0Iiwibm9TZWxlY3Rpb25zIiwibmV3TW9kZSIsInVzZUVmZmVjdCIsImhhdmVEYXRhIiwiZ3JvdXBzRGF0YUluaXRpYWxpemVkIiwiZmxhdHRlbmVkR3JvdXBEYXRhIiwiZ3JvdXBEYXRhSGVscGVycyIsImZsYXR0ZW5Hcm91cERhdGEiLCJwYXJzZVRuVG9JbmRleCIsInBhcnNlVHdUb0luZGV4IiwiY2hlY2siLCJmaW5kQ2hlY2siLCJtb2RpZmllZCIsInNlbGVjdGlvbnNIZWxwZXJzIiwidmFsaWRhdGVTZWxlY3Rpb25zRm9yQWxsQ2hlY2tzIiwiaW52YWxpZGF0ZWQiLCJjb25jYXQiLCJfc2F2ZUNoZWNraW5nRGF0YSIsInVwZGF0ZUNvbnRleHQiLCJzZWxlY3Rpb25zIiwibmV3Q2hlY2siLCJncm91cHNJbmRleF8iLCJ1bmRlZmluZWQiLCJyZWZlcmVuY2UiLCJ2ZXJzZUhlbHBlcnMiLCJnZXRWZXJzZVRleHRGcm9tQmlibGUiLCJnZXRBbGlnbmVkR0xUZXh0IiwiZ2V0VGl0bGVGcm9tSW5kZXgiLCJncm91cElkIiwib2NjdXJyZW5jZU5vdGUiLCJnZXRQaHJhc2VGcm9tVHciLCJncm91cERhdGEiLCJhcnRpY2xlcyIsIl9hcnRpY2xlIiwiYXJ0aWNsZUlkIiwiZ3JvdXBzSWRzIiwiX2kiLCJfZ3JvdXBzSWRzIiwiX2dyb3VwSWQiLCJncm91cCIsImN1cnJlbnRBcnRpY2xlTWFya2Rvd24iLCJjb252ZXJ0TWFya2Rvd25MaW5rcyIsImdhdGV3YXlMYW5ndWFnZUlkIiwiY29tbWVudFRleHQiLCJib29rSWQiLCJib29rIiwiaWQiLCJib29rTmFtZSIsImJvb2tEZXRhaWxzIiwidGFyZ2V0TGFuZ3VhZ2VGb250IiwicHJvamVjdEZvbnQiLCJjdXJyZW50Q29udGV4dElkIiwic2V0VG9vbFNldHRpbmdzIiwiTkFNRVNQQUNFIiwiZmllbGROYW1lIiwiZmllbGRWYWx1ZSIsIl90b29sc1NldHRpbmdzIiwiY29tcG9uZW50U2V0dGluZ3MiLCJzZXRTZXR0aW5ncyIsIl9zYXZlU2V0dGluZ3MiLCJfc2V0dGluZ3MiLCJuZXdTZXR0aW5ncyIsIl9wYW5lU2V0dGluZ3MiLCJfcGFuZVNldHRpbmciLCJfcGFuZUtleVNldHRpbmdzIiwiX2kyIiwiX2tleXMiLCJkb1NhdmUiLCJzZXRUb29sU2V0dGluZ3NTY3JpcHR1cmUiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImxhbmd1YWdlSWQiLCJiaWJsZUlkIiwib3duZXIiLCJlcnIiLCJhZGRPYmplY3RQcm9wZXJ0eVRvTWFuaWZlc3QiLCJfbWFuaWZlc3QiLCJhcHBTZXR0aW5ncyIsIl9hcHBTZXR0aW5ncyIsIm9wZW5BbGVydERpYWxvZyIsImNoZWNrSWZWZXJzZUNoYW5nZWQiLCJfbmV3VmVyc2VUZXh0IiwidGFyZ2V0IiwiX2lzVmVyc2VDaGFuZ2VkIiwiaGFuZGxlRWRpdFZlcnNlIiwiY2FuY2VsRWRpdFZlcnNlIiwic2F2ZUVkaXRWZXJzZSIsIl9jdXJyZW50Q29udGV4dElkJHJlZiIsImNoYXB0ZXIiLCJ2ZXJzZSIsInZlcnNlUmVmIiwidmVyc2VTcGFuIiwiYmVmb3JlIiwiZWRpdFRhcmdldFZlcnNlIiwiaGFuZGxlR29Ub05leHQiLCJuZXh0Q2hlY2siLCJmaW5kTmV4dENoZWNrIiwiY2hhbmdlQ3VycmVudENoZWNrXyIsImhhbmRsZUdvVG9QcmV2aW91cyIsInByZXZpb3VzQ2hlY2siLCJmaW5kUHJldmlvdXNDaGVjayIsImhhbmRsZVRhZ3NDaGVja2JveCIsInRhZyIsImN1cnJlbnRUYWdzIiwidGFnSW5kZXgiLCJpbmRleE9mIiwiX25ld1RhZ3MiLCJjb3B5Iiwic3BsaWNlIiwidmFsaWRhdGVTZWxlY3Rpb25zIiwidmVyc2VUZXh0XyIsInNlbGVjdGlvbnNfIiwidmFsaWRhdGVWZXJzZVNlbGVjdGlvbnMiLCJ1bmZpbHRlcmVkVmVyc2VUZXh0IiwidXNlTWVtbyIsInVuZmlsdGVyZWRWZXJzZVRleHRfIiwiX3RhcmdldEJpYmxlJGNoYXB0ZXIiLCJ2ZXJzZURhdGEiLCJVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInNldFRlbXBDaGVja2luZ0l0ZW0iLCJuZXdDaGVja2luZ0RhdGEiLCJjaGFuZ2VTZWxlY3Rpb25zSW5Mb2NhbFN0YXRlIiwidG9nZ2xlTm90aGluZ1RvU2VsZWN0Iiwic2VsZWN0IiwibmV3Q29udGV4dCIsIm5vQ2hlY2siLCJuZXdDb250ZXh0SWQiLCJzZWxlY3Rpb25zVW5jaGFuZ2VkIiwiaXNFcXVhbCIsImRpcmVjdGlvbiIsImJvb2ttYXJrRW5hYmxlZCIsImlzVmVyc2VFZGl0ZWQiLCJpc1ZlcnNlSW52YWxpZGF0ZWQiLCJfc2F2ZVNlbGVjdGlvbiIsIl9jbG9uZURhdGFGb3JTYXZpbmciLCJjbG9uZURhdGFGb3JTYXZpbmciLCJjaGVja0luR3JvdXBzRGF0YSIsIl9jdXJyZW50Q2hlY2siLCJfbmV3Q2hlY2tpbmdEYXRhIiwiZGVsZXRlVGVtcENoZWNraW5nRGF0YSIsInVwZGF0ZVZhbHVlc0luQ2hlY2tEYXRhIiwiX2dyb3Vwc0RhdGEiLCJfIiwiY2xvbmVEZWVwIiwiY2F0ZWdvcnkiLCJuZXdDaGVja0RhdGEiLCJfaTMiLCJfT2JqZWN0JGtleXMiLCJuZXdDaGVja2luZ1ZhbHVlIiwiX3NhdmVEYXRhIiwibmV3RGF0YSIsIl9jbG9uZURhdGFGb3JTYXZpbmcyIiwiX2k0IiwiX09iamVjdCRrZXlzMiIsImNoYW5nZWREYXRhIiwiX2k1IiwiX09iamVjdCRrZXlzMyIsIl90ZW1wQ2hlY2tpbmdEYXRhIiwiY2FuY2VsU2VsZWN0aW9uIiwiY2xlYXJTZWxlY3Rpb24iLCJ0b2dnbGVCb29rbWFyayIsInJlbWluZGVycyIsImNoYW5nZU1vZGUiLCJjaGVja0lmQ29tbWVudENoYW5nZWQiLCJuZXdjb21tZW50Iiwib2xkY29tbWVudCIsImNhbmNlbENvbW1lbnQiLCJzYXZlQ29tbWVudCIsIm5ld0NvbW1lbnQiLCJjb21tZW50cyIsImhhbmRsZUNvbW1lbnQiLCJwcmV2ZW50RGVmYXVsdCIsInJlYWR5VG9EaXNwbGF5Q2hlY2tlciIsImdldExleGljb25EYXRhXyIsImxleGljb25JZCIsImVudHJ5SWQiLCJsZXhpY29uRGF0YSIsIm9uQ2xvc2VQb3BvdmVyIiwic2hvd1BvcG92ZXIiLCJ0aXRsZSIsImJvZHlUZXh0IiwicG9zaXRpb25Db29yZCIsInRvZ2dsZUhlbHBzTW9kYWwiLCJfc2hvd0hlbHBzTW9kYWwiLCJ0b2dnbGVIZWxwcyIsIl9zaG93SGVscHMiLCJzYXZlQmlibGVUb0tleSIsImtleUdyb3VwIiwib2xkVmVyc2VUZXh0IiwiX2JpYmxlcyIsIl90YXJnZXRCaWJsZSIsInRhcmdldEJvb2siLCJ0YXJnZXRDaGFwdGVyIiwiY29udmVydFZlcnNlRGF0YVRvVVNGTSIsImN1cnJlbnRDaGFwdGVyRGF0YSIsImN1cnJlbnRWZXJzZURhdGEiLCJfQWxpZ25tZW50SGVscGVycyR1cGQiLCJBbGlnbm1lbnRIZWxwZXJzIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHMiLCJ1cGRhdGVTZXR0aW5ncyIsInJlbW92ZVVzZm1NYXJrZXJzIiwidmVyc2VFZGl0cyIsInZhbGlkYXRlQWxsU2VsZWN0aW9uc0ZvclZlcnNlIiwiX2N1cnJlbnRDaGVjayRjb250ZXh0IiwiX2NoZWNrJGNvbnRleHRJZCIsImN1cnJlbnRDaGVja0lkIiwiY2hlY2tJZCIsIm5ld0JpYmxlcyIsIl90YXJnZXRCaWJsZSRtYW5pZmVzdCIsIl90YXJnZXRCaWJsZSRtYW5pZmVzdDIiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiYmlibGUiLCJOVF9PUklHX0xBTkciLCJPVF9PUklHX0xBTkciLCJpbml0aWFsUGFuZVNldHRpbmdzIiwibGFuZ0tleSIsInBhbmUiLCJsYW5ndWFnZV9uYW1lIiwiZHVibGluX2NvcmUiLCJsYW5ndWFnZSIsIl9nZXRTY3JpcHR1cmVGcm9tUmVmZXJlbmNlIiwibGFuZyIsImdldFNjcmlwdHVyZUZyb21SZWZlcmVuY2UiLCJ0YXJnZXRfbGFuZ3VhZ2UiLCJwcm9qZWN0IiwiZXhwYW5kZWRTY3JpcHR1cmVQYW5lVGl0bGUiLCJzdHlsZVByb3BzIiwiX2NoZWNrZXJTdHlsZXMiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJjaGFuZ2VDdXJyZW50Q29udGV4dElkIiwiY29tcGxleFNjcmlwdEZvbnRzIiwiY3VycmVudFBhbmVTZXR0aW5ncyIsImVkaXRWZXJzZVJlZiIsImdldEF2YWlsYWJsZVNjcmlwdHVyZVBhbmVTZWxlY3Rpb25zIiwibWFrZVN1cmVCaWJsZXNMb2FkZWRGb3JUb29sIiwicHJvamVjdERldGFpbHNSZWR1Y2VyIiwib25FeHBhbmRlZFNjcmlwdHVyZVBhbmVTaG93Iiwib25MaW5rQ2xpY2siLCJvblNlZU1vcmVDbGljayIsInBocmFzZSIsInNlZU1vcmVMYWJlbCIsInNob3dTZWVNb3JlQnV0dG9uIiwiZGlhbG9nTW9kYWxWaXNpYmlsaXR5IiwiaGFuZGxlT3BlbkRpYWxvZyIsImhhbmRsZUNsb3NlRGlhbG9nIiwiaGFuZGxlU2tpcCIsImxvY2FsTm90aGluZ1RvU2VsZWN0Iiwic2F2ZVNlbGVjdGlvbiIsInRhZ3MiLCJtb2RhbEFydGljbGUiLCJleHBhbmRlZEhlbHBzQnV0dG9uSG92ZXJUZXh0IiwibW9kYWxUaXRsZSIsImlzU2hvd0hlbHBzRXhwYW5kZWQiLCJvcGVuRXhwYW5kZWRIZWxwc01vZGFsIiwic2lkZWJhclRvZ2dsZSIsImlzU2hvd0hlbHBzU2lkZWJhciIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImFycmF5IiwiZnVuYyIsImlzUmVxdWlyZWQiLCJzdHJpbmciLCJib29sIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9DaGVja2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBAZmlsZSBDaGVja2VyLmpzXG4gKlxuICogQHN5bm9wc2lzXG4gKiBUaGlzIGlzIHRoZSBtYWluIGNoZWNraW5nIGNvbXBvbmVudCB0aGF0IHByb3ZpZGVzIGFuIGludGVncmF0ZWQgaW50ZXJmYWNlIGZvciBCaWJsZSB0cmFuc2xhdGlvbiBjaGVja2luZy5cbiAqIEl0IHN1cHBvcnRzIGJvdGggVHJhbnNsYXRpb24gTm90ZXMgKFROKSBhbmQgVHJhbnNsYXRpb24gV29yZHMgKFRXKSBjaGVja2luZyB3b3JrZmxvd3MuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgQ2hlY2tlciBjb21wb25lbnQgaXMgYSBjb21wcmVoZW5zaXZlIHRvb2wgZm9yIG1hbmFnaW5nIGFuZCBwcmVzZW50aW5nIEJpYmxlIGNoZWNraW5nIGRhdGEgYW5kIHRyYW5zbGF0aW9ucy5cbiAqIEl0IGhhbmRsZXM6XG4gKiAtIExvYWRpbmcgYW5kIGRpc3BsYXlpbmcgY2hlY2tpbmcgZGF0YSAodHJhbnNsYXRpb24gbm90ZXMgb3IgdHJhbnNsYXRpb24gd29yZHMpXG4gKiAtIE1hbmFnaW5nIHVzZXIgc2VsZWN0aW9ucyBhbmQgYW5ub3RhdGlvbnMgaW4gdmVyc2VzXG4gKiAtIFByb3ZpZGluZyBtdWx0aS1wYW5lIFNjcmlwdHVyZSB2aWV3aW5nIHdpdGggdmFyaW91cyBCaWJsZSByZXNvdXJjZXNcbiAqIC0gSGFuZGxpbmcgdmVyc2UgZWRpdGluZyBhbmQgdmFsaWRhdGlvblxuICogLSBNYW5hZ2luZyBjb21tZW50cywgYm9va21hcmtzLCBhbmQgdGFncyBmb3IgY2hlY2tzXG4gKiAtIE5hdmlnYXRpbmcgYmV0d2VlbiBjaGVja3MgKG5leHQvcHJldmlvdXMpXG4gKiAtIERpc3BsYXlpbmcgdHJhbnNsYXRpb24gaGVscHMgaW4gYW4gaW50ZWdyYXRlZCBzaWRlYmFyXG4gKiAtIFBlcnNpc3RpbmcgdXNlciBzZXR0aW5ncyBhbmQgY2hlY2tpbmcgcHJvZ3Jlc3NcbiAqXG4gKiBUaGUgY29tcG9uZW50IG1haW50YWlucyBjb21wbGV4IHN0YXRlIGluY2x1ZGluZzpcbiAqIC0gQ3VycmVudCBjaGVjayBkYXRhIGFuZCBjb250ZXh0XG4gKiAtIFVzZXIgc2VsZWN0aW9ucyBhbmQgdGVtcG9yYXJ5IGNoYW5nZXNcbiAqIC0gUGFuZSBzZXR0aW5ncyBmb3IgU2NyaXB0dXJlIGRpc3BsYXlcbiAqIC0gVG9vbC1zcGVjaWZpYyBzZXR0aW5nc1xuICogLSBVSSBzdGF0ZSAobW9kZXMsIG1vZGFscywgcG9wb3ZlcnMpXG4gKlxuICogQHJlcXVpcmVtZW50c1xuICogLSBSZWFjdCAxOC4zLjErXG4gKiAtIHdvcmQtYWxpZ25lci1saWIgZm9yIHZlcnNlIGFuZCBhbGlnbm1lbnQgaGVscGVyc1xuICogLSBkZWVwLWVxdWFsIGZvciBvYmplY3QgY29tcGFyaXNvblxuICogLSBsb2Rhc2ggZm9yIGRlZXAgY2xvbmluZ1xuICogLSBNYXRlcmlhbC1VSSBjb21wb25lbnRzIGZvciBVSSBlbGVtZW50c1xuICpcbiAqIEBkZXBlbmRlbmNpZXNcbiAqIC0gR3JvdXBNZW51Q29tcG9uZW50OiBOYXZpZ2F0aW9uIG1lbnUgZm9yIGNoZWNrc1xuICogLSBDaGVja0luZm9DYXJkOiBEaXNwbGF5cyBjaGVjayB0aXRsZSBhbmQgcGhyYXNlXG4gKiAtIFNjcmlwdHVyZVBhbmU6IE11bHRpLXBhbmUgU2NyaXB0dXJlIHZpZXdlclxuICogLSBUcmFuc2xhdGlvbkhlbHBzOiBTaWRlYmFyIGZvciB0cmFuc2xhdGlvbiBoZWxwIGFydGljbGVzXG4gKiAtIFZlcnNlQ2hlY2s6IE1haW4gY2hlY2tpbmcgaW50ZXJmYWNlIGZvciB2ZXJzZXNcbiAqIC0gUG9wb3ZlckNvbnRhaW5lcjogRGlzcGxheXMgY29udGV4dHVhbCBpbmZvcm1hdGlvblxuICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IEdyb3VwTWVudUNvbXBvbmVudCBmcm9tICcuL0dyb3VwTWVudUNvbXBvbmVudCdcbmltcG9ydCB7XG4gIGdyb3VwRGF0YUhlbHBlcnMsXG4gIHNlbGVjdGlvbnNIZWxwZXJzLFxuICBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLFxuICB2ZXJzZUhlbHBlcnNcbn0gZnJvbSAnd29yZC1hbGlnbmVyLWxpYidcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG5pbXBvcnQge1xuICBmaW5kQ2hlY2ssXG4gIGZpbmROZXh0Q2hlY2ssXG4gIGZpbmRQcmV2aW91c0NoZWNrLFxuICBnZXRBbGlnbmVkR0xUZXh0LFxuICBnZXRQaHJhc2VGcm9tVHcsXG4gIGdldFRpdGxlRnJvbUluZGV4LFxuICBwYXJzZVR3VG9JbmRleFxufSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zbGF0aW9uSGVscHMvdHdBcnRpY2xlSGVscGVycydcbmltcG9ydCBDaGVja0luZm9DYXJkIGZyb20gJy4uL3RjX3VpX3Rvb2xraXQvQ2hlY2tJbmZvQ2FyZCdcbmltcG9ydCB7IHBhcnNlVG5Ub0luZGV4IH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2xhdGlvbkhlbHBzL3RuQXJ0aWNsZUhlbHBlcnMnXG5pbXBvcnQgU2NyaXB0dXJlUGFuZSBmcm9tICcuLi90Y191aV90b29sa2l0L1NjcmlwdHVyZVBhbmUnXG5pbXBvcnQgUG9wb3ZlckNvbnRhaW5lciBmcm9tICcuLi9jb250YWluZXJzL1BvcG92ZXJDb250YWluZXInXG5pbXBvcnQgeyBOVF9PUklHX0xBTkcsIE9UX09SSUdfTEFORyB9IGZyb20gJy4uL2NvbW1vbi9Cb29rc09mVGhlQmlibGUnXG5pbXBvcnQgY29tcGxleFNjcmlwdEZvbnRzIGZyb20gJy4uL2NvbW1vbi9jb21wbGV4U2NyaXB0Rm9udHMnXG5pbXBvcnQgVHJhbnNsYXRpb25IZWxwcyBmcm9tICcuLi90Y191aV90b29sa2l0L1RyYW5zbGF0aW9uSGVscHMnXG5pbXBvcnQgKiBhcyB0SGVscHNIZWxwZXJzIGZyb20gJy4uL2hlbHBlcnMvdEhlbHBzSGVscGVycydcbmltcG9ydCBWZXJzZUNoZWNrIGZyb20gJy4uL3RjX3VpX3Rvb2xraXQvVmVyc2VDaGVjaydcbmltcG9ydCB7IGdldFNjcmlwdHVyZUZyb21SZWZlcmVuY2UgfSBmcm9tICcuLi9oZWxwZXJzL2NoZWNrSW5mb0NhcmRIZWxwZXJzJ1xuXG5jb25zdCBsb2NhbFN0eWxlcyA9IHtcbiAgY29udGFpbmVyRGl2OntcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgd2lkdGg6ICc5N3Z3JyxcbiAgICBoZWlnaHQ6ICc2NXZ3JyxcbiAgfSxcbiAgY2VudGVyRGl2OiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIHdpZHRoOiAnODUlJyxcbiAgICBvdmVyZmxvd1g6ICdhdXRvJyxcbiAgICBtYXJnaW5MZWZ0OiAnMTBweCcsXG4gIH0sXG4gIHNjcmlwdHVyZVBhbmVEaXY6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleFNocmluazogJzAnLFxuICAgIGhlaWdodDogJzI1MHB4JyxcbiAgICBwYWRkaW5nQm90dG9tOiAnMjBweCcsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNsYXRpb25Xb3JkcyA9ICd0cmFuc2xhdGlvbldvcmRzJ1xuZXhwb3J0IGNvbnN0IHRyYW5zbGF0aW9uTm90ZXMgPSAndHJhbnNsYXRpb25Ob3RlcydcbmNvbnN0IG1heGltdW1TZWxlY3Rpb25zID0gMTBcblxuY29uc29sZS5sb2coJ0NoZWNrZXIuanMgLSBzdGFydHVwJylcbmNvbnN0IG5hbWUgPSAnQ2hlY2tlcidcblxuLyoqXG4gKiBAbmFtZXNwYWNlIENoZWNrZXJcbiAqIFRoZSBDaGVja2VyIGNvbXBvbmVudCBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYW5kIHByZXNlbnRpbmcgQmlibGUgY2hlY2tpbmcgZGF0YSBhbmQgdHJhbnNsYXRpb25zLlxuICogSXQgaGFuZGxlcyBzdGF0ZSB1cGRhdGVzLCBzZXR0aW5ncyBtYW5hZ2VtZW50LCBhbmQgZW5zdXJlcyB0aGUgbmVjZXNzYXJ5IGRhdGEgaXMgbG9hZGVkIGFuZCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHBhcmFtZXRlcnMgLSBBbiBvYmplY3Qgd2l0aCBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUgQ2hlY2tlciBjb21wb25lbnQuXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyYW1ldGVycy5hbGlnbmVkR2xCaWJsZSAtIFRoZSBhbGlnbmVkIEdhdGV3YXkgTGFuZ3VhZ2UgQmlibGUgZGF0YSB1c2VkIGZvciB0cmFuc2xhdGlvbnMuXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyYW1ldGVycy5iaWJsZXMgLSBCaWJsZSBkYXRhIGZvciB2YXJpb3VzIGxhbmd1YWdlcy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBhcmFtZXRlcnMuY2hhbmdlZEN1cnJlbnRDaGVjayAtIGNhbGxiYWNrIHRvIG5vdGlmeSBvZiBjaGFuZ2VzIGluIGNvbnRleHQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJhbWV0ZXJzLmNoYW5nZVRhcmdldFZlcnNlIC0gQSBmdW5jdGlvbiB0byB1cGRhdGUgdGhlIGN1cnJlbnQgdmVyc2UgYmVpbmcgY2hlY2tlZC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbWV0ZXJzLmNoZWNraW5nRGF0YSAtIERhdGEgcmVsYXRlZCB0byBjaGVja3MgKGUuZy4sIHRyYW5zbGF0aW9uIG5vdGVzIG9yIHRyYW5zbGF0aW9uIHdvcmRzKS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbWV0ZXJzLmNoZWNrVHlwZSAtIFRoZSB0eXBlIG9mIGNoZWNrIGJlaW5nIHBlcmZvcm1lZCAoZS5nLiwgdHJhbnNsYXRpb24gbm90ZXMsIHRyYW5zbGF0aW9uIHdvcmRzKS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbWV0ZXJzLmNvbnRleHRJZCAtIE9iamVjdCBjb250YWluaW5nIG1ldGFkYXRhIGFib3V0IHRoZSBjdXJyZW50IGdyb3VwL3ZlcnNlIGJlaW5nIHdvcmtlZCBvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBhcmFtZXRlcnMuZ2V0TGV4aWNvbkRhdGEgLSBGdW5jdGlvbiB0byByZXRyaWV2ZSBsZXhpY29uIGRhdGEuXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyYW1ldGVycy5nbFdvcmRzRGF0YSAtIERhdGEgcmVsYXRlZCB0byBHYXRld2F5IExhbmd1YWdlIHdvcmRzIGFuZCBhbGlnbm1lbnQgaW5mb3JtYXRpb24uXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyYW1ldGVycy5pbml0aWFsU2V0dGluZ3MgLSBUaGUgaW5pdGlhbCBjb25maWd1cmF0aW9uIHZhbHVlcyBmb3IgdGhlIENoZWNrZXIgY29tcG9uZW50LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcGFyYW1ldGVycy5zYXZlQ2hlY2tpbmdEYXRhIC0gRnVuY3Rpb24gdG8gc2F2ZSB0aGUgbW9kaWZpZWQgY2hlY2tpbmcgZGF0YS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBhcmFtZXRlcnMuc2F2ZVNldHRpbmdzIC0gRnVuY3Rpb24gdG8gcGVyc2lzdCB1c2VyJ3MgY29tcG9uZW50IHNldHRpbmdzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcGFyYW1ldGVycy5zaG93RG9jdW1lbnQgLSBGdW5jdGlvbiB0byBkaXNwbGF5IGEgZG9jdW1lbnQgaW4gdGhlIGludGVyZmFjZS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbWV0ZXJzLnN0eWxlcyAtIFN0eWxpbmcgaW5mb3JtYXRpb24gdG8gY3VzdG9taXplIHRoZSBjb21wb25lbnQncyBhcHBlYXJhbmNlLlxuICogQHBhcmFtIHtvYmplY3R9IHBhcmFtZXRlcnMudGFyZ2V0QmlibGUgLSBUaGUgdGFyZ2V0IEJpYmxlIGRhdGEgZm9yIHRoZSB3b3JraW5nIGxhbmd1YWdlLlxuICogQHBhcmFtIHtvYmplY3R9IHBhcmFtZXRlcnMudGFyZ2V0TGFuZ3VhZ2VEZXRhaWxzIC0gTWV0YWRhdGEgYWJvdXQgdGhlIHRhcmdldCBsYW5ndWFnZSwgaW5jbHVkaW5nIGJvb2sgYW5kIGxhbmd1YWdlLXNwZWNpZmljIGRldGFpbHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJhbWV0ZXJzLnRyYW5zbGF0ZSAtIEEgZnVuY3Rpb24gdXNlZCBmb3Igc3RyaW5nIHRyYW5zbGF0aW9ucyBpbiB0aGUgVUkuXG4gKi9cbmNvbnN0IENoZWNrZXIgPSAoe1xuICBhbGlnbmVkR2xCaWJsZSxcbiAgYmlibGVzOiBiaWJsZXNfLFxuICBjaGFuZ2VkQ3VycmVudENoZWNrLFxuICBjaGFuZ2VUYXJnZXRWZXJzZSxcbiAgY2hlY2tpbmdEYXRhLFxuICBjaGVja1R5cGUsXG4gIGNvbnRleHRJZCxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIGdsV29yZHNEYXRhLFxuICBpbml0aWFsU2V0dGluZ3MsXG4gIHNhdmVDaGVja2luZ0RhdGEsXG4gIHNhdmVTZXR0aW5ncyxcbiAgc2hvd0RvY3VtZW50LFxuICBzdHlsZXMsXG4gIHRhcmdldEJpYmxlOiB0YXJnZXRCaWJsZV8sXG4gIHRhcmdldExhbmd1YWdlRGV0YWlscyxcbiAgdHJhbnNsYXRlLFxufSkgPT4ge1xuICAvLyBNYWluIHNldHRpbmdzIHN0YXRlIC0gaW5jbHVkZXMgcGFuZSBjb25maWd1cmF0aW9uLCB0b29sIHNldHRpbmdzLCBhbmQgbWFuaWZlc3QgZGF0YVxuICBjb25zdCBbc2V0dGluZ3MsIF9zZXRTZXR0aW5nc10gPSB1c2VTdGF0ZSh7XG4gICAgcGFuZVNldHRpbmdzOiBbXSxcbiAgICBwYW5lS2V5U2V0dGluZ3M6IHt9LFxuICAgIHRvb2xzU2V0dGluZ3M6IHt9LFxuICAgIG1hbmlmZXN0OiB7fVxuICB9KVxuICBjb25zdCB7XG4gICAgcGFuZVNldHRpbmdzLFxuICAgIHBhbmVLZXlTZXR0aW5ncyxcbiAgICB0b29sc1NldHRpbmdzLFxuICAgIG1hbmlmZXN0XG4gIH0gPSBzZXR0aW5nc1xuXG4gIC8vIEJpYmxlIGRhdGEgb3JnYW5pemVkIGJ5IGxhbmd1YWdlIGFuZCBJRFxuICBjb25zdCBbYmlibGVzLCBzZXRCaWJsZXNdID0gdXNlU3RhdGUoeyB9KVxuXG4gIC8vIEN1cnJlbnQgdGFyZ2V0IEJpYmxlIGJlaW5nIGNoZWNrZWRcbiAgY29uc3QgW3RhcmdldEJpYmxlLCBzZXRUYXJnZXRCaWJsZV0gPSB1c2VTdGF0ZSh0YXJnZXRCaWJsZV8pXG5cbiAgLy8gVGVtcG9yYXJ5IGNoZWNraW5nIGRhdGEgZm9yIHVuc2F2ZWQgY2hhbmdlc1xuICBjb25zdCBbdGVtcENoZWNraW5nRGF0YSwgc2V0VGVtcENoZWNraW5nRGF0YV0gPSB1c2VTdGF0ZShudWxsKVxuXG4gIC8vIExvY2FsIGNoZWNraW5nIGRhdGEgZm9yIGN1cnJlbnQgc2Vzc2lvblxuICBjb25zdCBbbG9jYWxDaGVja2luZ0RhdGEsIHNldExvY2FsQ2hlY2tpbmdEYXRhXSA9IHVzZVN0YXRlKG51bGwpXG5cbiAgLy8gTWFpbiBjb21wb25lbnQgc3RhdGVcbiAgY29uc3QgW3N0YXRlLCBfc2V0U3RhdGVdID0gdXNlU3RhdGUoe1xuICAgIGFsaWduZWRHTFRleHQ6ICcnLCAvLyBHYXRld2F5IExhbmd1YWdlIHRleHQgYWxpZ25lZCB0byBvcmlnaW5hbFxuICAgIGFydGljbGU6IG51bGwsIC8vIEN1cnJlbnQgdHJhbnNsYXRpb24gaGVscCBhcnRpY2xlXG4gICAgY3VycmVudENoZWNrOiBudWxsLCAvLyBDdXJyZW50IGNoZWNrIGJlaW5nIHdvcmtlZCBvblxuICAgIGN1cnJlbnRDaGVja2luZ0RhdGE6IG51bGwsIC8vIEFsbCBjaGVja2luZyBkYXRhIGZvciBjdXJyZW50IGJvb2tcbiAgICBncm91cFRpdGxlOiAnJywgLy8gVGl0bGUgb2YgY3VycmVudCBjaGVjayBncm91cFxuICAgIGdyb3VwUGhyYXNlOiAnJywgLy8gUGhyYXNlIG9yIG9jY3VycmVuY2Ugbm90ZSBmb3IgY3VycmVudCBjaGVja1xuICAgIGdyb3Vwc0RhdGE6IG51bGwsIC8vIEZsYXR0ZW5lZCBncm91cCBkYXRhIGZvciBhbGwgY2hlY2tzXG4gICAgZ3JvdXBzSW5kZXg6IG51bGwsIC8vIEluZGV4IG9mIGFsbCBjaGVjayBncm91cHNcbiAgICBpc0NvbW1lbnRDaGFuZ2VkOiBmYWxzZSwgLy8gV2hldGhlciBjb21tZW50IGhhcyB1bnNhdmVkIGNoYW5nZXNcbiAgICBpc1ZlcnNlQ2hhbmdlZDogZmFsc2UsIC8vIFdoZXRoZXIgdmVyc2UgaGFzIHVuc2F2ZWQgY2hhbmdlc1xuICAgIG1vZGU6ICdkZWZhdWx0JywgLy8gQ3VycmVudCBVSSBtb2RlIChkZWZhdWx0LCBzZWxlY3QsIGVkaXQsIGNvbW1lbnQpXG4gICAgbmV3VmVyc2VUZXh0OiBudWxsLCAvLyBOZXcgdmVyc2UgdGV4dCBkdXJpbmcgZWRpdGluZ1xuICAgIHBvcG92ZXJQcm9wczoge1xuICAgICAgcG9wb3ZlclZpc2liaWxpdHk6IGZhbHNlXG4gICAgfSxcbiAgICBzaG93SGVscHNNb2RhbDogZmFsc2UsIC8vIFdoZXRoZXIgaGVscHMgbW9kYWwgaXMgc2hvd25cbiAgICBzaG93SGVscHM6IHRydWUsIC8vIFdoZXRoZXIgaGVscHMgc2lkZWJhciBpcyBzaG93blxuICAgIG5ld1RhZ3M6IG51bGwsIC8vIE5ldyB0YWdzIGJlaW5nIGFkZGVkXG4gICAgdmVyc2VUZXh0OiAnJywgLy8gQ3VycmVudCB2ZXJzZSB0ZXh0XG4gIH0pXG5cbiAgY29uc3Qge1xuICAgIGFsaWduZWRHTFRleHQsXG4gICAgYXJ0aWNsZSxcbiAgICBjdXJyZW50Q2hlY2ssXG4gICAgY3VycmVudENoZWNraW5nRGF0YSxcbiAgICBncm91cFRpdGxlLFxuICAgIGdyb3VwUGhyYXNlLFxuICAgIGdyb3Vwc0RhdGEsXG4gICAgZ3JvdXBzSW5kZXgsXG4gICAgaXNDb21tZW50Q2hhbmdlZCxcbiAgICBpc1ZlcnNlQ2hhbmdlZCxcbiAgICBtb2RlLFxuICAgIG5ld1ZlcnNlVGV4dCxcbiAgICBwb3BvdmVyUHJvcHMsXG4gICAgc2hvd0hlbHBzTW9kYWwsXG4gICAgc2hvd0hlbHBzLFxuICAgIG5ld1RhZ3MsXG4gICAgdmVyc2VUZXh0LFxuICB9ID0gc3RhdGVcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgc3RhdGUgb2JqZWN0IHdpdGggbmV3IHZhbHVlc1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3U3RhdGUgLSBPYmplY3QgY29udGFpbmluZyBzdGF0ZSBwcm9wZXJ0aWVzIHRvIHVwZGF0ZVxuICAgKi9cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBfc2V0U3RhdGUocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBzYXZlZCB2YWx1ZSBmb3IgYSBjaGVjayBwcm9wZXJ0eVxuICAgKiBGYWxscyBiYWNrIHRvIGxvY2FsIGNoZWNraW5nIGRhdGEgaWYgYXZhaWxhYmxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBQcm9wZXJ0eSBuYW1lXG4gICAqIEByZXR1cm5zIHsqfSBDdXJyZW50IHZhbHVlXG4gICAqL1xuICBmdW5jdGlvbiBnZXRDdXJyZW50VmFsdWVGb3Ioa2V5KSB7XG4gICAgaWYgKGxvY2FsQ2hlY2tpbmdEYXRhPy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICByZXR1cm4gbG9jYWxDaGVja2luZ0RhdGFba2V5XVxuICAgIH1cbiAgICByZXR1cm4gY3VycmVudENoZWNrPy5ba2V5XVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRlbXBvcmFyeSAodW5zYXZlZCkgdmFsdWUgZm9yIGEgY2hlY2sgcHJvcGVydHlcbiAgICogRmFsbHMgYmFjayB0aHJvdWdoIGxvY2FsIGNoZWNraW5nIGRhdGEgdG8gY3VycmVudCBjaGVja1xuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gUHJvcGVydHkgbmFtZVxuICAgKiBAcmV0dXJucyB7Kn0gVGVtcG9yYXJ5IHZhbHVlXG4gICAqL1xuICBmdW5jdGlvbiBnZXRUZW1wVmFsdWVGb3Ioa2V5KSB7XG4gICAgaWYgKHRlbXBDaGVja2luZ0RhdGE/Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIHJldHVybiB0ZW1wQ2hlY2tpbmdEYXRhW2tleV1cbiAgICB9XG4gICAgcmV0dXJuIGdldEN1cnJlbnRWYWx1ZUZvcihrZXkpXG4gIH1cblxuICBjb25zdCBjdXJyZW50U2VsZWN0aW9ucyA9IGdldEN1cnJlbnRWYWx1ZUZvcignc2VsZWN0aW9ucycpIHx8IFtdXG4gIGNvbnN0IHRlbXBTZWxlY3Rpb25zID0gZ2V0VGVtcFZhbHVlRm9yKCdzZWxlY3Rpb25zJykgfHwgW11cbiAgY29uc3QgdGVtcE5vdGhpbmdUb1NlbGVjdCA9IGdldFRlbXBWYWx1ZUZvcignbm90aGluZ1RvU2VsZWN0JylcbiAgY29uc3QgY3VycmVudE5vdGhpbmdUb1NlbGVjdCA9IGdldEN1cnJlbnRWYWx1ZUZvcignbm90aGluZ1RvU2VsZWN0JylcbiAgY29uc3QgZ3JvdXBzRGF0YUxvYWRlZCA9ICEhZ3JvdXBzRGF0YVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBVSSBtb2RlIGJhc2VkIG9uIHNlbGVjdGlvbnMgc3RhdGVcbiAgICogU3dpdGNoZXMgdG8gJ3NlbGVjdCcgbW9kZSBpZiBubyBzZWxlY3Rpb25zIGFuZCBub3RoaW5nIGlzIG1hcmtlZCBhcyB1bnNlbGVjdGFibGVcbiAgICogQHBhcmFtIHtBcnJheX0gbmV3U2VsZWN0aW9ucyAtIEN1cnJlbnQgc2VsZWN0aW9ucyBhcnJheVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5vdGhpbmdUb1NlbGVjdCAtIFdoZXRoZXIgdmVyc2UgaXMgbWFya2VkIGFzIGhhdmluZyBub3RoaW5nIHRvIHNlbGVjdFxuICAgKi9cbiAgZnVuY3Rpb24gdXBkYXRlTW9kZUZvclNlbGVjdGlvbnMobmV3U2VsZWN0aW9ucywgbm90aGluZ1RvU2VsZWN0KSB7XG4gICAgY29uc3Qgbm9TZWxlY3Rpb25zID0gKCFuZXdTZWxlY3Rpb25zPy5sZW5ndGgpXG4gICAgY29uc3QgbmV3TW9kZSA9IG5vU2VsZWN0aW9ucyAmJiAhbm90aGluZ1RvU2VsZWN0ID8gJ3NlbGVjdCcgOiAnZGVmYXVsdCdcbiAgICBzZXRTdGF0ZSh7XG4gICAgICBtb2RlOiBuZXdNb2RlXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBFZmZlY3QgaG9vayB0byBpbml0aWFsaXplIGNoZWNraW5nIGRhdGEgd2hlbiBjaGVja2luZ0RhdGEgb3IgZ2xXb3Jkc0RhdGEgY2hhbmdlc1xuICAgKiBGbGF0dGVucyBncm91cCBkYXRhLCBjcmVhdGVzIGluZGV4LCBmaW5kcyBpbml0aWFsIGNoZWNrLCBhbmQgdmFsaWRhdGVzIGFsbCBjaGVja3NcbiAgICovXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGF2ZURhdGEgPSBjaGVja2luZ0RhdGEgJiYgT2JqZWN0LmtleXMoY2hlY2tpbmdEYXRhKS5sZW5ndGggJiYgZ2xXb3Jkc0RhdGEgJiYgT2JqZWN0LmtleXMoZ2xXb3Jkc0RhdGEpLmxlbmd0aFxuICAgIGNvbnN0IGdyb3Vwc0RhdGFJbml0aWFsaXplZCA9IGdyb3Vwc0RhdGEgJiYgT2JqZWN0LmtleXMoZ3JvdXBzRGF0YSkubGVuZ3RoXG4gICAgaWYgKGhhdmVEYXRhICYmICFncm91cHNEYXRhSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGxldCBmbGF0dGVuZWRHcm91cERhdGEgPSBudWxsXG4gICAgICBsZXQgZ3JvdXBzSW5kZXggPSBudWxsXG4gICAgICBpZiAoY2hlY2tpbmdEYXRhKSB7XG4gICAgICAgIGZsYXR0ZW5lZEdyb3VwRGF0YSA9IGdyb3VwRGF0YUhlbHBlcnMuZmxhdHRlbkdyb3VwRGF0YShjaGVja2luZ0RhdGEpXG4gICAgICB9XG5cbiAgICAgIGlmIChnbFdvcmRzRGF0YSkge1xuICAgICAgICBpZiAoY2hlY2tUeXBlID09PSB0cmFuc2xhdGlvbk5vdGVzKSB7XG4gICAgICAgICAgZ3JvdXBzSW5kZXggPSBwYXJzZVRuVG9JbmRleChnbFdvcmRzRGF0YSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cHNJbmRleCA9IHBhcnNlVHdUb0luZGV4KGdsV29yZHNEYXRhKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNoZWNrID0gZmluZENoZWNrKGZsYXR0ZW5lZEdyb3VwRGF0YSwgY29udGV4dElkLCB0cnVlKVxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGdyb3Vwc0RhdGE6IGZsYXR0ZW5lZEdyb3VwRGF0YSxcbiAgICAgICAgZ3JvdXBzSW5kZXgsXG4gICAgICAgIGN1cnJlbnRDaGVja2luZ0RhdGE6IGNoZWNraW5nRGF0YSxcbiAgICAgICAgY3VycmVudENoZWNrOiBjaGVjayxcbiAgICAgICAgbW9kaWZpZWQ6IGZhbHNlLFxuICAgICAgICBpc0NvbW1lbnRDaGFuZ2VkOiBmYWxzZSxcbiAgICAgIH1cblxuICAgICAgLy8gdmFsaWRhdGUgYWxsIGNoZWNrc1xuICAgICAgc2VsZWN0aW9uc0hlbHBlcnMudmFsaWRhdGVTZWxlY3Rpb25zRm9yQWxsQ2hlY2tzKHRhcmdldEJpYmxlLCBmbGF0dGVuZWRHcm91cERhdGEsIChjaGVjaywgaW52YWxpZGF0ZWQpID0+IHtcbiAgICAgICAgaWYgKGNoZWNrKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYCR7bmFtZX0tc2F2ZUVkaXRWZXJzZSAtIGNoZWNrIHZhbGlkYXRpb24gY2hhbmdlZGAsIGNoZWNrKVxuICAgICAgICAgIF9zYXZlQ2hlY2tpbmdEYXRhKGNoZWNrLCB7IGludmFsaWRhdGVkIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuXG4gICAgICBpZiAoZmxhdHRlbmVkR3JvdXBEYXRhICYmIGNoZWNrPy5jb250ZXh0SWQpIHtcbiAgICAgICAgdXBkYXRlQ29udGV4dChjaGVjaywgZ3JvdXBzSW5kZXgpXG4gICAgICAgIHVwZGF0ZU1vZGVGb3JTZWxlY3Rpb25zKGNoZWNrPy5zZWxlY3Rpb25zLCBjaGVjaz8ubm90aGluZ1RvU2VsZWN0KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2NvbnRleHRJZCwgY2hlY2tpbmdEYXRhLCBnbFdvcmRzRGF0YV0pO1xuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjb250ZXh0IGFuZCByZWxhdGVkIGRhdGEgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNoZWNrIGFuZCBncm91cCBpbmRleC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG5ld0NoZWNrIC0gVGhlIG5ldyBjaGVjayBvYmplY3QgY29udGFpbmluZyBjb250ZXh0IGluZm9ybWF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gW2dyb3Vwc0luZGV4Xz1ncm91cHNJbmRleF0gLSBBbiBvcHRpb25hbCBncm91cCBpbmRleCBvYmplY3QsIGRlZmF1bHRzIHRvIHRoZSBnbG9iYWwgdmFyaWFibGUgYGdyb3Vwc0luZGV4YC5cbiAgICogQHJldHVybiB7dm9pZH0gRG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuIFVwZGF0ZXMgdGhlIHN0YXRlIG9mIHRoZSBhcHBsaWNhdGlvbiB3aXRoIG5ldyBjb250ZXh0IGRhdGEuXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVDb250ZXh0KG5ld0NoZWNrLCBncm91cHNJbmRleF8gPSBncm91cHNJbmRleCkge1xuICAgIGNvbnN0IGNvbnRleHRJZCA9IG5ld0NoZWNrPy5jb250ZXh0SWRcbiAgICBjb25zdCByZWZlcmVuY2UgPSBjb250ZXh0SWQ/LnJlZmVyZW5jZVxuICAgIGNvbnN0IHZlcnNlVGV4dCA9IHZlcnNlSGVscGVycy5nZXRWZXJzZVRleHRGcm9tQmlibGUodGFyZ2V0QmlibGUsIHJlZmVyZW5jZSlcbiAgICBjb25zdCBhbGlnbmVkR0xUZXh0ID0gZ2V0QWxpZ25lZEdMVGV4dChhbGlnbmVkR2xCaWJsZSwgY29udGV4dElkKTtcbiAgICBjb25zdCBncm91cFRpdGxlID0gZ2V0VGl0bGVGcm9tSW5kZXgoZ3JvdXBzSW5kZXhfLCBjb250ZXh0SWQ/Lmdyb3VwSWQpXG4gICAgY29uc3QgZ3JvdXBQaHJhc2UgPVxuICAgICAgY2hlY2tUeXBlID09PSB0cmFuc2xhdGlvbk5vdGVzXG4gICAgICAgID8gY29udGV4dElkPy5vY2N1cnJlbmNlTm90ZVxuICAgICAgICA6IGdldFBocmFzZUZyb21UdyhnbFdvcmRzRGF0YSwgY29udGV4dElkPy5ncm91cElkKVxuXG4gICAgbGV0IGdyb3VwRGF0YVxuICAgIGlmIChnbFdvcmRzRGF0YSkge1xuICAgICAgaWYgKGNoZWNrVHlwZSA9PT0gdHJhbnNsYXRpb25Ob3Rlcykge1xuICAgICAgICBncm91cERhdGEgPSB7XG4gICAgICAgICAgdHJhbnNsYXRlOiB7XG4gICAgICAgICAgICBhcnRpY2xlczogZ2xXb3Jkc0RhdGE/LnRyYW5zbGF0ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ3JvdXBEYXRhID0ge1xuICAgICAgICAgIC4uLmdsV29yZHNEYXRhLFxuICAgICAgICAgIG1hbmlmZXN0OiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IF9hcnRpY2xlXG4gICAgY29uc3QgYXJ0aWNsZUlkID0gY29udGV4dElkPy5ncm91cElkXG4gICAgY29uc3QgZ3JvdXBzSWRzID0gT2JqZWN0LmtleXMoZ3JvdXBEYXRhKVxuICAgIGZvciAoY29uc3QgX2dyb3VwSWQgb2YgZ3JvdXBzSWRzKSB7XG4gICAgICBjb25zdCBncm91cCA9IGdyb3VwRGF0YVtfZ3JvdXBJZF1cbiAgICAgIGNvbnN0IGFydGljbGVzID0gZ3JvdXA/LmFydGljbGVzIHx8IHt9XG4gICAgICBfYXJ0aWNsZSA9IGFydGljbGVzPy5bYXJ0aWNsZUlkXSB8fCBudWxsXG4gICAgICBpZiAoX2FydGljbGUpIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFydGljbGVNYXJrZG93biA9IHRIZWxwc0hlbHBlcnMuY29udmVydE1hcmtkb3duTGlua3MoX2FydGljbGUsIGdhdGV3YXlMYW5ndWFnZUlkKTtcbiAgICAgICAgX2FydGljbGUgPSBjdXJyZW50QXJ0aWNsZU1hcmtkb3duXG4gICAgICAgIC8vIGNvbnN0IHRIZWxwc01vZGFsTWFya2Rvd24gPSB0SGVscHNIZWxwZXJzLmNvbnZlcnRNYXJrZG93bkxpbmtzKG1vZGFsQXJ0aWNsZSwgZ2F0ZXdheUxhbmd1YWdlQ29kZSwgYXJ0aWNsZUNhdGVnb3J5KTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTdGF0ZSh7XG4gICAgICBhbGlnbmVkR0xUZXh0LFxuICAgICAgY3VycmVudENoZWNrOiBuZXdDaGVjayxcbiAgICAgIHZlcnNlVGV4dCxcbiAgICAgIGdyb3VwVGl0bGUsXG4gICAgICBncm91cFBocmFzZSxcbiAgICAgIGFydGljbGU6IF9hcnRpY2xlXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGNvbW1lbnRUZXh0ID0gZ2V0Q3VycmVudFZhbHVlRm9yKCdjb21tZW50cycpIHx8ICcnXG4gIGNvbnN0IGJvb2tJZCA9IHRhcmdldExhbmd1YWdlRGV0YWlscz8uYm9vaz8uaWRcbiAgY29uc3QgYm9va05hbWUgPSB0YXJnZXRMYW5ndWFnZURldGFpbHM/LmJvb2s/Lm5hbWVcbiAgY29uc3QgYm9va0RldGFpbHMgPSB7XG4gICAgaWQ6IGJvb2tJZCxcbiAgICBuYW1lOiBib29rTmFtZVxuICB9O1xuICBjb25zdCBnYXRld2F5TGFuZ3VhZ2VJZCA9IHRhcmdldExhbmd1YWdlRGV0YWlscz8uZ2F0ZXdheUxhbmd1YWdlSWRcbiAgY29uc3QgdGFyZ2V0TGFuZ3VhZ2VGb250ID0gbWFuaWZlc3Q/LnByb2plY3RGb250IHx8ICcnXG4gIGNvbnN0IGN1cnJlbnRDb250ZXh0SWQgPSBjdXJyZW50Q2hlY2s/LmNvbnRleHRJZFxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRvb2wtc3BlY2lmaWMgc2V0dGluZ3MgYW5kIHBlcnNpc3RzIHRoZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IE5BTUVTUEFDRSAtIFRvb2wgbmFtZXNwYWNlIChlLmcuLCAnU2NyaXB0dXJlUGFuZScpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZE5hbWUgLSBTZXR0aW5nIGZpZWxkIG5hbWVcbiAgICogQHBhcmFtIHsqfSBmaWVsZFZhbHVlIC0gU2V0dGluZyB2YWx1ZVxuICAgKi9cbiAgY29uc3Qgc2V0VG9vbFNldHRpbmdzID0gKE5BTUVTUEFDRSwgZmllbGROYW1lLCBmaWVsZFZhbHVlKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tc2V0VG9vbFNldHRpbmdzICR7ZmllbGROYW1lfT0ke2ZpZWxkVmFsdWV9YClcbiAgICBpZiAodG9vbHNTZXR0aW5ncykge1xuICAgICAgLy8gRGVlcCBjbG9uaW5nIG9iamVjdCB0byBhdm9pZCBtb2RpZnlpbmcgb3JpZ2luYWwgb2JqZWN0XG4gICAgICBjb25zdCBfdG9vbHNTZXR0aW5ncyA9IHsgLi4udG9vbHNTZXR0aW5ncyB9O1xuICAgICAgbGV0IGNvbXBvbmVudFNldHRpbmdzID0gX3Rvb2xzU2V0dGluZ3M/LltOQU1FU1BBQ0VdXG4gICAgICBpZiAoIWNvbXBvbmVudFNldHRpbmdzKSB7XG4gICAgICAgIGNvbXBvbmVudFNldHRpbmdzID0geyB9XG4gICAgICAgIF90b29sc1NldHRpbmdzW05BTUVTUEFDRV0gPSBjb21wb25lbnRTZXR0aW5nc1xuICAgICAgfVxuICAgICAgY29tcG9uZW50U2V0dGluZ3NbZmllbGROYW1lXSA9IGZpZWxkVmFsdWVcbiAgICAgIHNldFNldHRpbmdzKHsgdG9vbHNTZXR0aW5nczogX3Rvb2xzU2V0dGluZ3MgfSwgdHJ1ZSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGVyc2lzdHMgc2V0dGluZ3MgdG8gc3RvcmFnZSBhZnRlciByZW1vdmluZyBCaWJsZSBkYXRhIHRvIHJlZHVjZSBzaXplXG4gICAqIENyZWF0ZXMgc2hhbGxvdyBjb3BpZXMgdG8gYXZvaWQgbW9kaWZ5aW5nIG9yaWdpbmFsIG9iamVjdHNcbiAgICogQHBhcmFtIHtvYmplY3R9IF9zZXR0aW5ncyAtIFNldHRpbmdzIG9iamVjdCB0byBzYXZlXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBmdW5jdGlvbiBfc2F2ZVNldHRpbmdzKF9zZXR0aW5ncykge1xuICAgIGlmIChzYXZlU2V0dGluZ3MgJiYgX3NldHRpbmdzKSB7XG4gICAgICBjb25zdCBuZXdTZXR0aW5ncyA9IHsgLi4uX3NldHRpbmdzIH1cbiAgICAgIGRlbGV0ZSBuZXdTZXR0aW5ncy5tYW5pZmVzdFxuICAgICAgY29uc3QgX3BhbmVTZXR0aW5ncyA9IFsgLi4ubmV3U2V0dGluZ3MucGFuZVNldHRpbmdzIF1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgX3BhbmVTZXR0aW5ncy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBfcGFuZVNldHRpbmcgPSB7Li4uX3BhbmVTZXR0aW5nc1tpXX0gLy8gc2hhbGxvdyBjb3B5XG4gICAgICAgIGlmIChfcGFuZVNldHRpbmc/LmJvb2spIHtcbiAgICAgICAgICBkZWxldGUgX3BhbmVTZXR0aW5nLmJvb2sgLy8gcmVtb3ZlIGFsbCB0aGUgYm9vayBkYXRhIGJlZm9yZSBzYXZpbmdcbiAgICAgICAgfVxuICAgICAgICBfcGFuZVNldHRpbmdzW2ldID0gX3BhbmVTZXR0aW5nXG4gICAgICB9XG4gICAgICBuZXdTZXR0aW5ncy5wYW5lU2V0dGluZ3MgPSBfcGFuZVNldHRpbmdzXG5cbiAgICAgIGNvbnN0IF9wYW5lS2V5U2V0dGluZ3MgPSB7IC4uLm5ld1NldHRpbmdzLnBhbmVLZXlTZXR0aW5ncyB9XG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoX3BhbmVLZXlTZXR0aW5ncylcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgY29uc3QgX3BhbmVTZXR0aW5nID0gey4uLl9wYW5lS2V5U2V0dGluZ3Nba2V5XX0gLy8gc2hhbGxvdyBjb3B5XG4gICAgICAgIGlmIChfcGFuZVNldHRpbmc/LmJvb2spIHtcbiAgICAgICAgICBkZWxldGUgX3BhbmVTZXR0aW5nLmJvb2sgLy8gcmVtb3ZlIGFsbCB0aGUgYm9vayBkYXRhIGJlZm9yZSBzYXZpbmdcbiAgICAgICAgfVxuICAgICAgICBfcGFuZUtleVNldHRpbmdzW2tleV0gPSBfcGFuZVNldHRpbmdcbiAgICAgIH1cbiAgICAgIG5ld1NldHRpbmdzLnBhbmVLZXlTZXR0aW5ncyA9IF9wYW5lS2V5U2V0dGluZ3NcblxuICAgICAgc2F2ZVNldHRpbmdzKG5ld1NldHRpbmdzKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHNldHRpbmdzIHN0YXRlIGFuZCBvcHRpb25hbGx5IHBlcnNpc3RzIHRoZW1cbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld1NldHRpbmdzIC0gTmV3IHNldHRpbmdzIHRvIG1lcmdlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZG9TYXZlIC0gV2hldGhlciB0byBwZXJzaXN0IHNldHRpbmdzXG4gICAqL1xuICBmdW5jdGlvbiBzZXRTZXR0aW5ncyhuZXdTZXR0aW5ncywgZG9TYXZlID0gZmFsc2UpIHtcbiAgICBjb25zdCBfc2V0dGluZ3MgPSB7XG4gICAgICAuLi5zZXR0aW5ncyxcbiAgICAgIC4uLm5ld1NldHRpbmdzXG4gICAgfVxuXG4gICAgX3NldFNldHRpbmdzKF9zZXR0aW5ncylcbiAgICBkb1NhdmUgJiYgX3NhdmVTZXR0aW5ncyhfc2V0dGluZ3MpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBTY3JpcHR1cmUgcGFuZSBzZXR0aW5ncyB3aXRoIG5ldyBwYW5lIGNvbmZpZ3VyYXRpb25zXG4gICAqIE1haW50YWlucyBhIGtleS1iYXNlZCBsb29rdXAgZm9yIHBhbmUgc2V0dGluZ3MgYnkgbGFuZ3VhZ2UvYmlibGUvb3duZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IE5BTUVTUEFDRSAtIFRvb2wgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZE5hbWUgLSBTZXR0aW5nIGZpZWxkIG5hbWVcbiAgICogQHBhcmFtIHtBcnJheX0gX3BhbmVTZXR0aW5ncyAtIEFycmF5IG9mIHBhbmUgc2V0dGluZyBvYmplY3RzXG4gICAqL1xuICBjb25zdCBzZXRUb29sU2V0dGluZ3NTY3JpcHR1cmUgPSAoTkFNRVNQQUNFLCBmaWVsZE5hbWUsIF9wYW5lU2V0dGluZ3MpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1zZXRUb29sU2V0dGluZ3NTY3JpcHR1cmUgJHtmaWVsZE5hbWV9YCwgX3BhbmVTZXR0aW5ncylcbiAgICBjb25zdCBfcGFuZUtleVNldHRpbmdzID0gey4uLnBhbmVLZXlTZXR0aW5nc31cblxuICAgIGZvciAoY29uc3QgcGFuZVNldHRpbmdzIG9mIF9wYW5lU2V0dGluZ3MpIHtcbiAgICAgIGNvbnN0IGxhbmd1YWdlSWQgPSBwYW5lU2V0dGluZ3M/Lmxhbmd1YWdlSWRcbiAgICAgIGNvbnN0IGtleSA9IGAke2xhbmd1YWdlSWR9LyR7cGFuZVNldHRpbmdzPy5iaWJsZUlkfS8ke3BhbmVTZXR0aW5ncz8ub3duZXJ9YFxuICAgICAgX3BhbmVLZXlTZXR0aW5nc1trZXldID0gcGFuZVNldHRpbmdzXG4gICAgfVxuXG4gICAgY29uc3QgX3NldHRpbmdzID0ge1xuICAgICAgcGFuZVNldHRpbmdzOiBfcGFuZVNldHRpbmdzLFxuICAgICAgcGFuZUtleVNldHRpbmdzOiBfcGFuZUtleVNldHRpbmdzLFxuICAgIH1cblxuICAgIHNldFNldHRpbmdzKF9zZXR0aW5ncywgdHJ1ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcHJvcGVydHkgdG8gdGhlIG1hbmlmZXN0IGFuZCBhcHAgc2V0dGluZ3NcbiAgICogVXNlZCBmb3IgcGVyc2lzdGluZyB1c2VyIHByZWZlcmVuY2VzIGxpa2UgZm9udHNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpZWxkTmFtZSAtIFByb3BlcnR5IG5hbWVcbiAgICogQHBhcmFtIHsqfSBmaWVsZFZhbHVlIC0gUHJvcGVydHkgdmFsdWVcbiAgICovXG4gIGNvbnN0IGFkZE9iamVjdFByb3BlcnR5VG9NYW5pZmVzdCA9IChmaWVsZE5hbWUsIGZpZWxkVmFsdWUpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1hZGRPYmplY3RQcm9wZXJ0eVRvTWFuaWZlc3QgJHtmaWVsZE5hbWV9PSR7ZmllbGRWYWx1ZX1gKVxuICAgIGlmIChtYW5pZmVzdCkge1xuICAgICAgY29uc3QgX21hbmlmZXN0ID0ge1xuICAgICAgICAuLi5tYW5pZmVzdCxcbiAgICAgICAgW2ZpZWxkTmFtZV06IGZpZWxkVmFsdWVcbiAgICAgIH1cblxuICAgICAgLy8gYWxzbyBzYXZlIHRoaXMgaW4gYXBwU2V0dGluZ3NcbiAgICAgIGNvbnN0IGFwcFNldHRpbmdzID0gc2V0dGluZ3MuYXBwU2V0dGluZ3MgfHwge31cbiAgICAgIGNvbnN0IF9hcHBTZXR0aW5ncyA9IHtcbiAgICAgICAgLi4uYXBwU2V0dGluZ3MsXG4gICAgICAgIFtmaWVsZE5hbWVdOiBmaWVsZFZhbHVlXG4gICAgICB9XG5cbiAgICAgIHNldFNldHRpbmdzKHtcbiAgICAgICAgbWFuaWZlc3Q6IF9tYW5pZmVzdCxcbiAgICAgICAgYXBwU2V0dGluZ3M6IF9hcHBTZXR0aW5nc1xuICAgICAgfSwgdHJ1ZSlcbiAgICB9XG4gIH1cblxuICAvLyBFdmVudCBoYW5kbGVycyBmb3IgdmFyaW91cyB1c2VyIGFjdGlvbnNcblxuICAvKipcbiAgICogT3BlbnMgYW4gYWxlcnQgZGlhbG9nIChwbGFjZWhvbGRlciBpbXBsZW1lbnRhdGlvbilcbiAgICovXG4gIGNvbnN0IG9wZW5BbGVydERpYWxvZyA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1vcGVuQWxlcnREaWFsb2dgKSAvLyBUT0RPIC0gZmxlc2ggb3V0XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHZlcnNlIGNvbnRlbnQgaGFzIGNoYW5nZWQgZnJvbSBvcmlnaW5hbFxuICAgKiBAcGFyYW0ge0V2ZW50fSBlIC0gSW5wdXQgZXZlbnRcbiAgICovXG4gIGNvbnN0IGNoZWNrSWZWZXJzZUNoYW5nZWQgPSAoZSkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGAke25hbWV9LWNoZWNrSWZWZXJzZUNoYW5nZWRgKVxuICAgIGNvbnN0IF9uZXdWZXJzZVRleHQgPSBlLnRhcmdldC52YWx1ZVxuICAgIGNvbnN0IF9pc1ZlcnNlQ2hhbmdlZCA9IF9uZXdWZXJzZVRleHQgIT09IHZlcnNlVGV4dFxuICAgIHNldFN0YXRlKHsgaXNWZXJzZUNoYW5nZWQ6IF9pc1ZlcnNlQ2hhbmdlZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHZlcnNlIHRleHQgZWRpdGluZ1xuICAgKiBAcGFyYW0ge0V2ZW50fSBlIC0gSW5wdXQgZXZlbnQgd2l0aCBuZXcgdmVyc2UgdGV4dFxuICAgKi9cbiAgY29uc3QgaGFuZGxlRWRpdFZlcnNlID0gKGUpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1oYW5kbGVFZGl0VmVyc2VgKVxuICAgIGNvbnN0IF9uZXdWZXJzZVRleHQgPSBlLnRhcmdldC52YWx1ZVxuICAgIHNldFN0YXRlKHsgbmV3VmVyc2VUZXh0OiBfbmV3VmVyc2VUZXh0IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbHMgdmVyc2UgZWRpdGluZyBhbmQgcmVzZXRzIHN0YXRlXG4gICAqL1xuICBjb25zdCBjYW5jZWxFZGl0VmVyc2UgPSAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tY2FuY2VsRWRpdFZlcnNlYClcbiAgICBzZXRTdGF0ZSh7IG5ld1ZlcnNlVGV4dDogbnVsbCwgbmV3VGFnczogW10sIG1vZGU6IFwiZGVmYXVsdFwiIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGVkaXRlZCB2ZXJzZSB0ZXh0IGFuZCB1cGRhdGVzIGFsaWdubWVudHNcbiAgICogTWFya3MgY2hlY2sgYXMgaGF2aW5nIHZlcnNlIGVkaXRzXG4gICAqL1xuICBjb25zdCBzYXZlRWRpdFZlcnNlID0gKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGAke25hbWV9LXNhdmVFZGl0VmVyc2VgKVxuICAgIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IGN1cnJlbnRDb250ZXh0SWQucmVmZXJlbmNlO1xuICAgIGNvbnN0IHZlcnNlUmVmID0gY3VycmVudENvbnRleHRJZC52ZXJzZVNwYW4gfHwgdmVyc2U7IC8vIGlmIGluIHZlcnNlIHNwYW4sIHVzZSBpdFxuICAgIGNvbnN0IGJlZm9yZSA9IHRhcmdldEJpYmxlW2NoYXB0ZXJdW3ZlcnNlUmVmXTtcblxuICAgIHNldFN0YXRlKHtcbiAgICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICAgIG5ld1RhZ3M6IFtdLFxuICAgICAgbW9kZTogXCJkZWZhdWx0XCIsXG4gICAgICBpc1ZlcnNlQ2hhbmdlZDogZmFsc2UsXG4gICAgfSk7XG4gICAgZWRpdFRhcmdldFZlcnNlKGNoYXB0ZXIsIHZlcnNlUmVmLCBiZWZvcmUsIG5ld1ZlcnNlVGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBuZXh0IGNoZWNrIGluIHRoZSBzZXF1ZW5jZVxuICAgKi9cbiAgZnVuY3Rpb24gaGFuZGxlR29Ub05leHQoKSB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0taGFuZGxlR29Ub05leHRgKVxuICAgIGNvbnN0IG5leHRDaGVjayA9IGZpbmROZXh0Q2hlY2soZ3JvdXBzRGF0YSwgY3VycmVudENvbnRleHRJZCwgZmFsc2UpXG4gICAgY2hhbmdlQ3VycmVudENoZWNrXyhuZXh0Q2hlY2ssIHRydWUpXG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBwcmV2aW91cyBjaGVjayBpbiB0aGUgc2VxdWVuY2VcbiAgICovXG4gIGZ1bmN0aW9uIGhhbmRsZUdvVG9QcmV2aW91cygpIHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1oYW5kbGVHb1RvUHJldmlvdXNgKVxuICAgIGNvbnN0IHByZXZpb3VzQ2hlY2sgPSBmaW5kUHJldmlvdXNDaGVjayhncm91cHNEYXRhLCBjdXJyZW50Q29udGV4dElkLCBmYWxzZSlcbiAgICBjaGFuZ2VDdXJyZW50Q2hlY2tfKHByZXZpb3VzQ2hlY2ssIHRydWUpXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBjaGVja2JveCBjaGFuZ2VzIGZvciB0YWdzXG4gICAqIEFkZHMgb3IgcmVtb3ZlcyB0YWdzIGZyb20gdGhlIGN1cnJlbnQgbGlzdFxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIC0gVGFnIGlkZW50aWZpZXJcbiAgICovXG4gIGNvbnN0IGhhbmRsZVRhZ3NDaGVja2JveCA9ICh0YWcpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1oYW5kbGVUYWdzQ2hlY2tib3hgLCB0YWcpXG4gICAgY29uc3QgY3VycmVudFRhZ3MgPSBuZXdUYWdzIHx8IFtdXG4gICAgY29uc3QgdGFnSW5kZXggPSBjdXJyZW50VGFncy5pbmRleE9mKHRhZyk7XG4gICAgbGV0IF9uZXdUYWdzO1xuXG4gICAgaWYgKHRhZ0luZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IGNvcHkgPSBjdXJyZW50VGFncy5zbGljZSgwKTtcbiAgICAgIGNvcHkuc3BsaWNlKHRhZ0luZGV4LCAxKTtcbiAgICAgIF9uZXdUYWdzID0gY29weTtcbiAgICB9IGVsc2Uge1xuICAgICAgX25ld1RhZ3MgPSBbLi4uY3VycmVudFRhZ3MsIHRhZ107XG4gICAgfVxuXG4gICAgc2V0U3RhdGUoeyBuZXdUYWdzOiBfbmV3VGFncyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgc2VsZWN0aW9ucyBhZ2FpbnN0IHZlcnNlIHRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlVGV4dF8gLSBWZXJzZSB0ZXh0IHRvIHZhbGlkYXRlIGFnYWluc3RcbiAgICogQHBhcmFtIHtBcnJheX0gc2VsZWN0aW9uc18gLSBTZWxlY3Rpb25zIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHNlbGVjdGlvbnMgYXJlIHZhbGlkXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZVNlbGVjdGlvbnMgPSAodmVyc2VUZXh0Xywgc2VsZWN0aW9uc18pID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS12YWxpZGF0ZVNlbGVjdGlvbnNgLCBzZWxlY3Rpb25zXylcbiAgICByZXR1cm4gc2VsZWN0aW9uc0hlbHBlcnMudmFsaWRhdGVWZXJzZVNlbGVjdGlvbnModmVyc2VUZXh0Xywgc2VsZWN0aW9uc18pXG4gIH1cblxuICAvKipcbiAgICogTWVtb2l6ZWQgY29tcHV0YXRpb24gb2YgdW5maWx0ZXJlZCB2ZXJzZSB0ZXh0IGluY2x1ZGluZyBVU0ZNIG1hcmtlcnNcbiAgICogVXNlZCBmb3IgZGlzcGxheWluZyBhbmQgZWRpdGluZyBjb21wbGV0ZSB2ZXJzZSBkYXRhXG4gICAqL1xuICBjb25zdCB1bmZpbHRlcmVkVmVyc2VUZXh0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgbGV0IHVuZmlsdGVyZWRWZXJzZVRleHRfID0gJydcbiAgICBjb25zdCByZWZlcmVuY2UgPSBjdXJyZW50Q29udGV4dElkPy5yZWZlcmVuY2VcbiAgICBjb25zdCBjaGFwdGVyID0gcmVmZXJlbmNlPy5jaGFwdGVyXG4gICAgY29uc3QgdmVyc2UgPSByZWZlcmVuY2U/LnZlcnNlXG4gICAgaWYgKGNoYXB0ZXIgJiYgdmVyc2UpIHtcbiAgICAgIGNvbnN0IHZlcnNlRGF0YSA9IHRhcmdldEJpYmxlPy5bY2hhcHRlcl0/Llt2ZXJzZV1cbiAgICAgIGlmICh2ZXJzZURhdGEpIHtcbiAgICAgICAgdW5maWx0ZXJlZFZlcnNlVGV4dF8gPSB2ZXJzZURhdGFcbiAgICAgICAgaWYgKHR5cGVvZiB2ZXJzZURhdGEgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdW5maWx0ZXJlZFZlcnNlVGV4dF8gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQodmVyc2VEYXRhKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZmlsdGVyZWRWZXJzZVRleHRfXG4gIH0sIFt0YXJnZXRCaWJsZSwgY3VycmVudENvbnRleHRJZF0pXG5cbiAgLyoqXG4gICAqIFNldHMgYSB0ZW1wb3JhcnkgdmFsdWUgZm9yIGEgY2hlY2tpbmcgZGF0YSBwcm9wZXJ0eVxuICAgKiBVc2VkIGZvciB0cmFja2luZyB1bnNhdmVkIGNoYW5nZXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFByb3BlcnR5IG5hbWVcbiAgICogQHBhcmFtIHsqfSB2YWx1ZSAtIFByb3BlcnR5IHZhbHVlXG4gICAqL1xuICBjb25zdCBzZXRUZW1wQ2hlY2tpbmdJdGVtID0gKGtleSwgdmFsdWUpID0+IHtcbiAgICBjb25zdCBuZXdDaGVja2luZ0RhdGEgPSB0ZW1wQ2hlY2tpbmdEYXRhID8gey4uLnRlbXBDaGVja2luZ0RhdGF9IDoge31cbiAgICBuZXdDaGVja2luZ0RhdGFba2V5XSA9IHZhbHVlXG4gICAgc2V0VGVtcENoZWNraW5nRGF0YShuZXdDaGVja2luZ0RhdGEpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBzZWxlY3Rpb25zIGluIHRlbXBvcmFyeSBzdGF0ZSB3aXRob3V0IHNhdmluZ1xuICAgKiBAcGFyYW0ge0FycmF5fSBzZWxlY3Rpb25zIC0gTmV3IHNlbGVjdGlvbnMgYXJyYXlcbiAgICovXG4gIGNvbnN0IGNoYW5nZVNlbGVjdGlvbnNJbkxvY2FsU3RhdGUgPSAoc2VsZWN0aW9ucykgPT4ge1xuICAgIGNvbnNvbGUubG9nKGAke25hbWV9LWNoYW5nZVNlbGVjdGlvbnNJbkxvY2FsU3RhdGVgLCBzZWxlY3Rpb25zKVxuICAgIHNldFRlbXBDaGVja2luZ0l0ZW0oJ3NlbGVjdGlvbnMnLCBzZWxlY3Rpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIFwibm90aGluZyB0byBzZWxlY3RcIiBmbGFnIGZvciBjdXJyZW50IGNoZWNrXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2VsZWN0IC0gTmV3IHN0YXRlIHZhbHVlXG4gICAqL1xuICBjb25zdCB0b2dnbGVOb3RoaW5nVG9TZWxlY3QgPSAoc2VsZWN0KSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tdG9nZ2xlTm90aGluZ1RvU2VsZWN0YCwgc2VsZWN0KVxuICAgIHNldFRlbXBDaGVja2luZ0l0ZW0oJ25vdGhpbmdUb1NlbGVjdCcsIHNlbGVjdClcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBjdXJyZW50IGNoZWNrIGJlaW5nIHdvcmtlZCBvblxuICAgKiBWYWxpZGF0ZXMgZm9yIHVuc2F2ZWQgY2hhbmdlcyBiZWZvcmUgc3dpdGNoaW5nXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXdDb250ZXh0IC0gTmV3IGNoZWNrIGNvbnRleHRcbiAgICogQHBhcmFtIHtib29sZWFufSBub0NoZWNrIC0gU2tpcCB2YWxpZGF0aW9uIGlmIHRydWVcbiAgICovXG4gIGNvbnN0IGNoYW5nZUN1cnJlbnRDaGVja18gPSAobmV3Q29udGV4dCwgbm9DaGVjayA9IGZhbHNlKSA9PiB7XG4gICAgY29uc3QgbmV3Q29udGV4dElkID0gbmV3Q29udGV4dD8uY29udGV4dElkXG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tY2hhbmdlQ3VycmVudENvbnRleHRJZGAsIG5ld0NvbnRleHRJZClcblxuICAgIGNvbnN0IHNlbGVjdGlvbnNVbmNoYW5nZWQgPSBpc0VxdWFsKGN1cnJlbnRTZWxlY3Rpb25zLCB0ZW1wU2VsZWN0aW9ucylcbiAgICBpZiAobm9DaGVjayB8fCBzZWxlY3Rpb25zVW5jaGFuZ2VkKSB7XG4gICAgICBpZiAobmV3Q29udGV4dElkKSB7XG4gICAgICAgIGxldCBjaGVjayA9IGZpbmRDaGVjayhncm91cHNEYXRhLCBuZXdDb250ZXh0SWQsIGZhbHNlKVxuICAgICAgICB1cGRhdGVDb250ZXh0KG5ld0NvbnRleHQpXG4gICAgICAgIGlmIChjaGVjaykge1xuICAgICAgICAgIHNldExvY2FsQ2hlY2tpbmdEYXRhKG51bGwpXG4gICAgICAgICAgc2V0VGVtcENoZWNraW5nRGF0YShudWxsKVxuICAgICAgICAgIHVwZGF0ZU1vZGVGb3JTZWxlY3Rpb25zKGNoZWNrLnNlbGVjdGlvbnMsIGNoZWNrLm5vdGhpbmdUb1NlbGVjdClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygnQ2hlY2tlci5jaGFuZ2VDdXJyZW50Q29udGV4dElkIC0gdW5zYXZlZCBjaGFuZ2VzJylcbiAgICB9XG4gICAgY2hhbmdlZEN1cnJlbnRDaGVjayAmJiBjaGFuZ2VkQ3VycmVudENoZWNrKG5ld0NvbnRleHQpXG4gIH1cblxuICBjb25zdCBkaXJlY3Rpb24gPSAnbHRyJ1xuICBjb25zdCBib29rbWFya0VuYWJsZWQgPSBnZXRDdXJyZW50VmFsdWVGb3IoJ3JlbWluZGVycycpXG4gIGNvbnN0IGlzVmVyc2VFZGl0ZWQgPSAhIWdldEN1cnJlbnRWYWx1ZUZvcigndmVyc2VFZGl0cycpXG4gIGNvbnN0IGlzVmVyc2VJbnZhbGlkYXRlZCA9ICEhZ2V0Q3VycmVudFZhbHVlRm9yKCdpbnZhbGlkYXRlZCcpXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIGN1cnJlbnQgY2hlY2sgYmVpbmcgd29ya2VkIG9uXG4gICAqIFZhbGlkYXRlcyBmb3IgdW5zYXZlZCBjaGFuZ2VzIGJlZm9yZSBzd2l0Y2hpbmdcbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld0NvbnRleHQgLSBOZXcgY2hlY2sgY29udGV4dFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5vQ2hlY2sgLSBTa2lwIHZhbGlkYXRpb24gaWYgdHJ1ZVxuICAgKi9cbiAgY29uc3QgX3NhdmVTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tX3NhdmVTZWxlY3Rpb24gcGVyc2lzdCB0byBmaWxlYClcbiAgICBjb25zdCB7IGNoZWNrSW5Hcm91cHNEYXRhLCBfY3VycmVudENoZWNrLCBuZXdTdGF0ZSwgX25ld0NoZWNraW5nRGF0YSB9ID0gY2xvbmVEYXRhRm9yU2F2aW5nKClcblxuICAgIGlmIChfY3VycmVudENoZWNrICYmIG5ld1N0YXRlKSB7XG4gICAgICBpZiAodGVtcE5vdGhpbmdUb1NlbGVjdCkge1xuICAgICAgICBfbmV3Q2hlY2tpbmdEYXRhLm5vdGhpbmdUb1NlbGVjdCA9IHRlbXBOb3RoaW5nVG9TZWxlY3RcbiAgICAgICAgX25ld0NoZWNraW5nRGF0YS5zZWxlY3Rpb25zID0gZmFsc2VcbiAgICAgICAgX25ld0NoZWNraW5nRGF0YS5pbnZhbGlkYXRlZCA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfbmV3Q2hlY2tpbmdEYXRhLm5vdGhpbmdUb1NlbGVjdCA9IGZhbHNlXG4gICAgICAgIF9uZXdDaGVja2luZ0RhdGEuc2VsZWN0aW9ucyA9IHRlbXBTZWxlY3Rpb25zXG4gICAgICAgIF9uZXdDaGVja2luZ0RhdGEuaW52YWxpZGF0ZWQgPSBmYWxzZVxuICAgICAgfVxuXG4gICAgICBzZXRMb2NhbENoZWNraW5nRGF0YShfbmV3Q2hlY2tpbmdEYXRhKVxuICAgICAgZGVsZXRlVGVtcENoZWNraW5nRGF0YSgnbm90aGluZ1RvU2VsZWN0JylcbiAgICAgIGRlbGV0ZVRlbXBDaGVja2luZ0RhdGEoJ3NlbGVjdGlvbnMnKVxuICAgICAgZGVsZXRlVGVtcENoZWNraW5nRGF0YSgnaW52YWxpZGF0ZWQnKVxuXG4gICAgICB1cGRhdGVWYWx1ZXNJbkNoZWNrRGF0YShfY3VycmVudENoZWNrLCBjaGVja0luR3JvdXBzRGF0YSwgX25ld0NoZWNraW5nRGF0YSlcblxuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpO1xuICAgICAgc2F2ZUNoZWNraW5nRGF0YSAmJiBzYXZlQ2hlY2tpbmdEYXRhKG5ld1N0YXRlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9uZXMgY3VycmVudCBkYXRhIHN0cnVjdHVyZXMgZm9yIHNhdmluZyBtb2RpZmljYXRpb25zXG4gICAqIENyZWF0ZXMgZGVlcCBjb3BpZXMgdG8gYXZvaWQgbXV0YXRpbmcgb3JpZ2luYWwgc3RhdGVcbiAgICogQHJldHVybnMge29iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgY2xvbmVkIGRhdGEgc3RydWN0dXJlc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgZnVuY3Rpb24gY2xvbmVEYXRhRm9yU2F2aW5nKCkge1xuICAgIGNvbnN0IF9ncm91cHNEYXRhID0gXy5jbG9uZURlZXAoZ3JvdXBzRGF0YSlcbiAgICBjb25zdCBjaGVja0luR3JvdXBzRGF0YSA9IGZpbmRDaGVjayhfZ3JvdXBzRGF0YSwgY3VycmVudENvbnRleHRJZClcbiAgICBsZXQgX2N1cnJlbnRDaGVja1xuICAgIGxldCBuZXdTdGF0ZVxuICAgIGxldCBfbmV3Q2hlY2tpbmdEYXRhXG4gICAgaWYgKGNoZWNrSW5Hcm91cHNEYXRhKSB7XG4gICAgICAvLyBzYXZlIHRoZSBzZWxlY3Rpb24gY2hhbmdlc1xuICAgICAgY29uc3QgY2F0ZWdvcnkgPSBjaGVja0luR3JvdXBzRGF0YS5jYXRlZ29yeVxuICAgICAgY29uc3QgbmV3Q2hlY2tEYXRhID0gXy5jbG9uZURlZXAoY3VycmVudENoZWNraW5nRGF0YSlcbiAgICAgIF9jdXJyZW50Q2hlY2sgPSBmaW5kQ2hlY2sobmV3Q2hlY2tEYXRhW2NhdGVnb3J5XSwgY3VycmVudENvbnRleHRJZCwgZmFsc2UpXG4gICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgY3VycmVudENoZWNraW5nRGF0YTogbmV3Q2hlY2tEYXRhLFxuICAgICAgICBjdXJyZW50Q2hlY2s6IF9jdXJyZW50Q2hlY2ssXG4gICAgICAgIGdyb3Vwc0RhdGE6IF9ncm91cHNEYXRhLFxuICAgICAgICBtb2RlOiAnZGVmYXVsdCcsXG4gICAgICAgIG1vZGlmaWVkOiB0cnVlXG4gICAgICB9XG4gICAgICBfbmV3Q2hlY2tpbmdEYXRhID0gbG9jYWxDaGVja2luZ0RhdGEgPyB7Li4ubG9jYWxDaGVja2luZ0RhdGF9IDoge31cbiAgICB9XG4gICAgcmV0dXJuIHsgY2hlY2tJbkdyb3Vwc0RhdGEsIF9jdXJyZW50Q2hlY2ssIG5ld1N0YXRlLCBfbmV3Q2hlY2tpbmdEYXRhIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIG11bHRpcGxlIHByb3BlcnRpZXMgaW4gY2hlY2sgZGF0YSBvYmplY3RzXG4gICAqIE1vZGlmaWVzIGJvdGggdGhlIGN1cnJlbnQgY2hlY2sgYW5kIGdyb3VwcyBkYXRhXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBfY3VycmVudENoZWNrIC0gQ3VycmVudCBjaGVjayBvYmplY3RcbiAgICogQHBhcmFtIHtvYmplY3R9IGNoZWNrSW5Hcm91cHNEYXRhIC0gQ2hlY2sgaW4gZ3JvdXBzIGRhdGEgc3RydWN0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBfbmV3Q2hlY2tpbmdEYXRhIC0gTmV3IGRhdGEgdG8gYXBwbHlcbiAgICovXG4gIGZ1bmN0aW9uIHVwZGF0ZVZhbHVlc0luQ2hlY2tEYXRhKF9jdXJyZW50Q2hlY2ssIGNoZWNrSW5Hcm91cHNEYXRhLCBfbmV3Q2hlY2tpbmdEYXRhKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoX25ld0NoZWNraW5nRGF0YSkpIHtcbiAgICAgIGNvbnN0IG5ld0NoZWNraW5nVmFsdWUgPSBfbmV3Q2hlY2tpbmdEYXRhW2tleV1cbiAgICAgIF9jdXJyZW50Q2hlY2tba2V5XSA9IG5ld0NoZWNraW5nVmFsdWVcbiAgICAgIGNoZWNrSW5Hcm91cHNEYXRhW2tleV0gPSBuZXdDaGVja2luZ1ZhbHVlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBlcnNpc3RzIG11bHRpcGxlIGNoZWNrIHByb3BlcnR5IGNoYW5nZXMgdG8gZmlsZVxuICAgKiBDbG9uZXMgZGF0YSwgYXBwbGllcyBjaGFuZ2VzLCB1cGRhdGVzIHN0YXRlLCBhbmQgc2F2ZXNcbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld0RhdGEgLSBPYmplY3Qgd2l0aCBwcm9wZXJ0eSBuYW1lcyBhbmQgdmFsdWVzIHRvIHVwZGF0ZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29uc3QgX3NhdmVEYXRhID0gKG5ld0RhdGEpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1fc2F2ZURhdGEgcGVyc2lzdCB0byBmaWxlYClcbiAgICBjb25zdCB7IGNoZWNrSW5Hcm91cHNEYXRhLCBfY3VycmVudENoZWNrLCBuZXdTdGF0ZSwgX25ld0NoZWNraW5nRGF0YSB9ID0gY2xvbmVEYXRhRm9yU2F2aW5nKClcblxuICAgIGlmIChfY3VycmVudENoZWNrICYmIG5ld1N0YXRlKSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhuZXdEYXRhKSkge1xuICAgICAgICBfbmV3Q2hlY2tpbmdEYXRhW2tleV0gPSBuZXdEYXRhW2tleV1cbiAgICAgICAgZGVsZXRlVGVtcENoZWNraW5nRGF0YShrZXkpXG4gICAgICB9XG4gICAgICBzZXRMb2NhbENoZWNraW5nRGF0YShfbmV3Q2hlY2tpbmdEYXRhKVxuXG4gICAgICB1cGRhdGVWYWx1ZXNJbkNoZWNrRGF0YShfY3VycmVudENoZWNrLCBjaGVja0luR3JvdXBzRGF0YSwgX25ld0NoZWNraW5nRGF0YSlcblxuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpO1xuICAgICAgc2F2ZUNoZWNraW5nRGF0YSAmJiBzYXZlQ2hlY2tpbmdEYXRhKG5ld1N0YXRlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBjaGFuZ2VzIHRvIGEgc3BlY2lmaWMgY2hlY2sgKG1heSBub3QgYmUgY3VycmVudCBjaGVjaylcbiAgICogT25seSBzYXZlcyBpZiBkYXRhIGFjdHVhbGx5IGNoYW5nZWRcbiAgICogQHBhcmFtIHtvYmplY3R9IGNoZWNrIC0gQ2hlY2sgb2JqZWN0IHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3RGF0YSAtIE5ldyBkYXRhIHRvIGFwcGx5XG4gICAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIGRhdGEgd2FzIGNoYW5nZWRcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbnN0IF9zYXZlQ2hlY2tpbmdEYXRhID0gKGNoZWNrLCBuZXdEYXRhKSA9PiB7XG4gICAgbGV0IGNoYW5nZWREYXRhID0gZmFsc2VcbiAgICBpZiAoY2hlY2spIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG5ld0RhdGEpKSB7XG4gICAgICAgIGlmIChjaGVja1trZXldICE9PSBuZXdEYXRhW2tleV0pIHtcbiAgICAgICAgICBjaGVja1trZXldID0gbmV3RGF0YVtrZXldXG4gICAgICAgICAgY2hhbmdlZERhdGEgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNoYW5nZWREYXRhKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAke25hbWV9LV9zYXZlQ2hlY2tpbmdEYXRhIHBlcnNpc3QgY2hhbmdlcyB0byBmaWxlYCwgY2hlY2spXG4gICAgICAgIGNvbnN0IG5ld0NoZWNraW5nRGF0YSA9IHtcbiAgICAgICAgICBjdXJyZW50Q2hlY2s6IGNoZWNrLFxuICAgICAgICB9XG4gICAgICAgIHNhdmVDaGVja2luZ0RhdGEgJiYgc2F2ZUNoZWNraW5nRGF0YShuZXdDaGVja2luZ0RhdGEpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjaGFuZ2VkRGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBwcm9wZXJ0eSBmcm9tIHRlbXBvcmFyeSBjaGVja2luZyBkYXRhXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBQcm9wZXJ0eSBuYW1lIHRvIHJlbW92ZVxuICAgKi9cbiAgZnVuY3Rpb24gZGVsZXRlVGVtcENoZWNraW5nRGF0YShrZXkpIHtcbiAgICBpZiAodGVtcENoZWNraW5nRGF0YT8uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgY29uc3QgX3RlbXBDaGVja2luZ0RhdGEgPSB7Li4udGVtcENoZWNraW5nRGF0YX1cbiAgICAgIGRlbGV0ZSBfdGVtcENoZWNraW5nRGF0YVtrZXldXG4gICAgICBzZXRUZW1wQ2hlY2tpbmdEYXRhKF90ZW1wQ2hlY2tpbmdEYXRhKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIHNlbGVjdGlvbiBtb2RlIHdpdGhvdXQgc2F2aW5nIGNoYW5nZXNcbiAgICovXG4gIGNvbnN0IGNhbmNlbFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1jYW5jZWxTZWxlY3Rpb25gKVxuICAgIGRlbGV0ZVRlbXBDaGVja2luZ0RhdGEoJ3NlbGVjdGlvbnMnKVxuICAgIHNldFN0YXRlKHtcbiAgICAgIG1vZGU6ICdkZWZhdWx0J1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBhbGwgY3VycmVudCBzZWxlY3Rpb25zXG4gICAqL1xuICBjb25zdCBjbGVhclNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1jbGVhclNlbGVjdGlvbmApXG4gICAgc2V0VGVtcENoZWNraW5nSXRlbSgnc2VsZWN0aW9ucycsIFtdKVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgYm9va21hcmsvcmVtaW5kZXIgZmxhZyBmb3IgY3VycmVudCBjaGVja1xuICAgKi9cbiAgY29uc3QgdG9nZ2xlQm9va21hcmsgPSAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tdG9nZ2xlQm9va21hcmtgKVxuICAgIF9zYXZlRGF0YSh7XG4gICAgICByZW1pbmRlcnM6ICFnZXRUZW1wVmFsdWVGb3IoJ3JlbWluZGVycycpXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBVSSBtb2RlIChkZWZhdWx0LCBzZWxlY3QsIGVkaXQsIGNvbW1lbnQpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtb2RlIC0gTmV3IG1vZGUgaWRlbnRpZmllclxuICAgKi9cbiAgY29uc3QgY2hhbmdlTW9kZSA9IChtb2RlKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tY2hhbmdlTW9kZWAsIG1vZGUpXG4gICAgc2V0U3RhdGUoeyBtb2RlIH0pXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGNvbW1lbnQgdGV4dCBoYXMgY2hhbmdlZCBmcm9tIHNhdmVkIHZhbHVlXG4gICAqIEBwYXJhbSB7RXZlbnR9IGUgLSBJbnB1dCBldmVudFxuICAgKi9cbiAgZnVuY3Rpb24gY2hlY2tJZkNvbW1lbnRDaGFuZ2VkKGUpIHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1jaGVja0lmQ29tbWVudENoYW5nZWRgKVxuICAgIGNvbnN0IG5ld2NvbW1lbnQgPSBlLnRhcmdldC52YWx1ZSB8fCAnJztcbiAgICBjb25zdCBvbGRjb21tZW50ID0gY29tbWVudFRleHQgfHwgJyc7XG4gICAgY29uc3QgaXNDb21tZW50Q2hhbmdlZCA9IG5ld2NvbW1lbnQgIT09IG9sZGNvbW1lbnRcblxuICAgIHNldFN0YXRlKHtcbiAgICAgIGlzQ29tbWVudENoYW5nZWRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIGNvbW1lbnQgZWRpdGluZyB3aXRob3V0IHNhdmluZ1xuICAgKi9cbiAgY29uc3QgY2FuY2VsQ29tbWVudCA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1jYW5jZWxDb21tZW50YClcbiAgICBkZWxldGVUZW1wQ2hlY2tpbmdEYXRhKCdjb21tZW50cycpXG4gICAgc2V0U3RhdGUoe1xuICAgICAgbW9kZTogJ2RlZmF1bHQnLFxuICAgICAgaXNDb21tZW50Q2hhbmdlZDogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgY29tbWVudCBjaGFuZ2VzIHRvIHBlcnNpc3RlbnQgc3RvcmFnZVxuICAgKi9cbiAgY29uc3Qgc2F2ZUNvbW1lbnQgPSAoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCR7bmFtZX0tc2F2ZUNvbW1lbnRgKVxuICAgIGNvbnN0IG5ld0NvbW1lbnQgPSBnZXRUZW1wVmFsdWVGb3IoJ2NvbW1lbnRzJylcbiAgICBfc2F2ZURhdGEoeyBjb21tZW50czogbmV3Q29tbWVudCB9KVxuICAgIHNldFN0YXRlKHtcbiAgICAgIG1vZGU6ICdkZWZhdWx0JyxcbiAgICAgIGlzQ29tbWVudENoYW5nZWQ6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgY29tbWVudCB0ZXh0IGNoYW5nZXNcbiAgICogQHBhcmFtIHtFdmVudH0gZSAtIElucHV0IGV2ZW50IHdpdGggbmV3IGNvbW1lbnRcbiAgICovXG4gIGNvbnN0IGhhbmRsZUNvbW1lbnQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1oYW5kbGVDb21tZW50YClcbiAgICBjb25zdCBuZXdDb21tZW50ID0gZS50YXJnZXQudmFsdWVcbiAgICBzZXRUZW1wQ2hlY2tpbmdJdGVtKCdjb21tZW50cycsIG5ld0NvbW1lbnQpXG4gICAgc2V0U3RhdGUoe1xuICAgICAgaXNDb21tZW50Q2hhbmdlZDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHJlYWR5VG9EaXNwbGF5Q2hlY2tlciA9IGdyb3Vwc0RhdGEgJiYgZ3JvdXBzSW5kZXggJiYgY3VycmVudENvbnRleHRJZCAmJiB2ZXJzZVRleHRcblxuICAvKipcbiAgICogV3JhcHBlciBmb3IgZ2V0TGV4aWNvbkRhdGEgY2FsbGJhY2sgd2l0aCBsb2dnaW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsZXhpY29uSWQgLSBMZXhpY29uIGlkZW50aWZpZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGVudHJ5SWQgLSBFbnRyeSBpZGVudGlmaWVyXG4gICAqIEByZXR1cm5zIHtvYmplY3R9IExleGljb24gZGF0YVxuICAgKi9cbiAgY29uc3QgZ2V0TGV4aWNvbkRhdGFfID0gKGxleGljb25JZCwgZW50cnlJZCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGAke25hbWV9LWdldExleGljb25EYXRhX2AsIHtsZXhpY29uSWQsIGVudHJ5SWR9KVxuICAgIGNvbnN0IGxleGljb25EYXRhID0gZ2V0TGV4aWNvbkRhdGEgJiYgZ2V0TGV4aWNvbkRhdGEobGV4aWNvbklkLCBlbnRyeUlkKVxuICAgIHJldHVybiBsZXhpY29uRGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgcG9wb3ZlciBkaXNwbGF5XG4gICAqL1xuICBjb25zdCBvbkNsb3NlUG9wb3ZlciA9ICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1vbkNsb3NlUG9wb3ZlcmApXG4gICAgc2V0U3RhdGUoe1xuICAgICAgcG9wb3ZlclByb3BzOiB7XG4gICAgICAgIHBvcG92ZXJWaXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgcG9wb3ZlciB3aXRoIHRpdGxlIGFuZCBjb250ZW50IGF0IHNwZWNpZmllZCBwb3NpdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSBQb3BvdmVyIHRpdGxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBib2R5VGV4dCAtIFBvcG92ZXIgY29udGVudFxuICAgKiBAcGFyYW0ge29iamVjdH0gcG9zaXRpb25Db29yZCAtIFBvc2l0aW9uIGNvb3JkaW5hdGVzXG4gICAqL1xuICBjb25zdCBzaG93UG9wb3ZlciA9ICh0aXRsZSwgYm9keVRleHQsIHBvc2l0aW9uQ29vcmQpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgJHtuYW1lfS1zaG93UG9wb3ZlcmAsIHRpdGxlKVxuICAgIHNldFN0YXRlKHtcbiAgICAgIHBvcG92ZXJQcm9wczoge1xuICAgICAgICBwb3BvdmVyVmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIGJvZHlUZXh0LFxuICAgICAgICBwb3NpdGlvbkNvb3JkLFxuICAgICAgICBvbkNsb3NlUG9wb3ZlcjogKCkgPT4gb25DbG9zZVBvcG92ZXIoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgZXhwYW5kZWQgdHJhbnNsYXRpb24gaGVscHMgbW9kYWxcbiAgICovXG4gIGNvbnN0IHRvZ2dsZUhlbHBzTW9kYWwgPSAoKSA9PiB7XG4gICAgY29uc3QgX3Nob3dIZWxwc01vZGFsID0gIXNob3dIZWxwc01vZGFsXG4gICAgc2V0U3RhdGUoe1xuICAgICAgc2hvd0hlbHBzTW9kYWw6IF9zaG93SGVscHNNb2RhbFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgdHJhbnNsYXRpb24gaGVscHMgc2lkZWJhciB2aXNpYmlsaXR5XG4gICAqL1xuICBjb25zdCB0b2dnbGVIZWxwcyA9ICgpID0+IHtcbiAgICBjb25zdCBfc2hvd0hlbHBzID0gIXNob3dIZWxwc1xuICAgIHNldFN0YXRlKHtcbiAgICAgIHNob3dIZWxwczogX3Nob3dIZWxwc1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIEJpYmxlIGJvb2sgdG8gdGhlIGJpYmxlcyBkYXRhIHN0cnVjdHVyZVxuICAgKiBDcmVhdGVzIGxhbmd1YWdlIGdyb3VwIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICogQHBhcmFtIHtvYmplY3R9IGJpYmxlcyAtIEJpYmxlcyBkYXRhIHN0cnVjdHVyZVxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gTGFuZ3VhZ2Uga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiaWJsZUlkIC0gQmlibGUgaWRlbnRpZmllclxuICAgKiBAcGFyYW0ge29iamVjdH0gYm9vayAtIEJvb2sgZGF0YVxuICAgKi9cbiAgZnVuY3Rpb24gc2F2ZUJpYmxlVG9LZXkoYmlibGVzLCBrZXksIGJpYmxlSWQsIGJvb2spIHtcbiAgICBsZXQga2V5R3JvdXAgPSBiaWJsZXNba2V5XVxuICAgIGlmICgha2V5R3JvdXApIHsgLy8gaWYgZ3JvdXAgZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBuZXdcbiAgICAgIGtleUdyb3VwID0ge31cbiAgICAgIGJpYmxlc1trZXldID0ga2V5R3JvdXBcbiAgICB9XG4gICAga2V5R3JvdXBbYmlibGVJZF0gPSBib29rXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB2ZXJzZSBjb250ZW50IGluIHRhcmdldCBCaWJsZVxuICAgKiBIYW5kbGVzIFVTRk0gY29udmVyc2lvbiwgYWxpZ25tZW50IHVwZGF0ZXMsIGFuZCB2YWxpZGF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFwdGVyIC0gQ2hhcHRlciBudW1iZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlIC0gVmVyc2UgbnVtYmVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvbGRWZXJzZVRleHQgLSBPcmlnaW5hbCB2ZXJzZSB0ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWZXJzZVRleHQgLSBOZXcgdmVyc2UgdGV4dFxuICAgKi9cbiAgZnVuY3Rpb24gZWRpdFRhcmdldFZlcnNlKGNoYXB0ZXIsIHZlcnNlLCBvbGRWZXJzZVRleHQsIG5ld1ZlcnNlVGV4dCkge1xuICAgIGNvbnNvbGUubG9nKGBlZGl0VGFyZ2V0VmVyc2UgJHtjaGFwdGVyfToke3ZlcnNlfSAtIGNoYW5nZWQgdG8gJHtuZXdWZXJzZVRleHR9YClcblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBmaXJzdCB1cGRhdGUgY29tcG9uZW50IHN0YXRlXG5cbiAgICBjb25zdCBfYmlibGVzID0gWyAuLi5iaWJsZXNfXVxuICAgIGNvbnN0IF90YXJnZXRCaWJsZSA9IHsuLi5fYmlibGVzWzBdfVxuICAgIF9iaWJsZXNbMF0gPSBfdGFyZ2V0QmlibGVcbiAgICBjb25zdCB0YXJnZXRCb29rID0gey4uLl90YXJnZXRCaWJsZT8uYm9va31cbiAgICBfdGFyZ2V0QmlibGUuYm9vayA9IHRhcmdldEJvb2tcbiAgICBjb25zdCB0YXJnZXRDaGFwdGVyID0gey4uLnRhcmdldEJvb2tbY2hhcHRlcl19XG4gICAgdGFyZ2V0Qm9va1tjaGFwdGVyXSA9IHRhcmdldENoYXB0ZXJcbiAgICB0YXJnZXRDaGFwdGVyW3ZlcnNlXSA9IG5ld1ZlcnNlVGV4dFxuXG5cbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gbm93IGFwcGx5IG5ldyB2ZXJzZSB0ZXh0IHRvIHNlbGVjdGVkIGFsaWduZWQgdmVyc2UgYW5kIGNhbGwgYmFjayB0byBleHRlbnNpb24gdG8gc2F2ZVxuXG4gICAgbGV0IF9uZXdWZXJzZVRleHQgPSBuZXdWZXJzZVRleHRcbiAgICBpZiAodHlwZW9mIF9uZXdWZXJzZVRleHQgIT09ICdzdHJpbmcnKSB7XG4gICAgICBfbmV3VmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKF9uZXdWZXJzZVRleHQpXG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudENoYXB0ZXJEYXRhID0gdGFyZ2V0QmlibGU/LltjaGFwdGVyXVxuICAgIGNvbnN0IGN1cnJlbnRWZXJzZURhdGEgPSBjdXJyZW50Q2hhcHRlckRhdGE/Llt2ZXJzZV1cbiAgICBjb25zdCB7IHRhcmdldFZlcnNlT2JqZWN0cyB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZShjdXJyZW50VmVyc2VEYXRhLCBfbmV3VmVyc2VUZXh0KVxuICAgIHRhcmdldENoYXB0ZXJbdmVyc2VdID0geyB2ZXJzZU9iamVjdHM6IHRhcmdldFZlcnNlT2JqZWN0cyB9OyAvLyBzYXZlXG5cbiAgICB1cGRhdGVTZXR0aW5ncyhfYmlibGVzLCB0YXJnZXRCb29rKVxuXG4gICAgY29uc3QgdmVyc2VUZXh0ID0gcmVtb3ZlVXNmbU1hcmtlcnMoX25ld1ZlcnNlVGV4dClcbiAgICBzZXRTdGF0ZSh7XG4gICAgICB2ZXJzZVRleHRcbiAgICB9KVxuXG4gICAgY2hhbmdlVGFyZ2V0VmVyc2UgJiYgY2hhbmdlVGFyZ2V0VmVyc2UoY2hhcHRlciwgdmVyc2UsIG5ld1ZlcnNlVGV4dCwgdGFyZ2V0VmVyc2VPYmplY3RzKVxuICAgIF9zYXZlRGF0YSh7IHZlcnNlRWRpdHM6IHRydWUgfSlcblxuICAgIGNvbnN0IF9ncm91cHNEYXRhID0gXy5jbG9uZURlZXAoZ3JvdXBzRGF0YSlcbiAgICBsZXQgY2hhbmdlZERhdGEgPSBmYWxzZVxuICAgIHNlbGVjdGlvbnNIZWxwZXJzLnZhbGlkYXRlQWxsU2VsZWN0aW9uc0ZvclZlcnNlKG5ld1ZlcnNlVGV4dCwgYm9va0lkLCBjaGFwdGVyLCB2ZXJzZSwgX2dyb3Vwc0RhdGEsIChjaGVjaywgaW52YWxpZGF0ZWQpID0+IHtcbiAgICAgIGlmIChjaGVjaykge1xuICAgICAgICBjb25zdCBjdXJyZW50Q2hlY2tJZCA9IGN1cnJlbnRDaGVjaz8uY29udGV4dElkPy5jaGVja0lkXG4gICAgICAgIGNvbnN0IGNoZWNrSWQgPSBjaGVjaz8uY29udGV4dElkPy5jaGVja0lkXG5cbiAgICAgICAgaWYgKGNoZWNrSWQgPT09IGN1cnJlbnRDaGVja0lkKSB7XG4gICAgICAgICAgLy8gbmVlZCB0byB1cGRhdGUgY3VycmVudCBjaGVja1xuICAgICAgICAgIF9zYXZlRGF0YSh7XG4gICAgICAgICAgICBpbnZhbGlkYXRlZCxcbiAgICAgICAgICAgIHZlcnNlRWRpdHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGAke25hbWV9LWVkaXRUYXJnZXRWZXJzZSAtIGNoZWNrIHZhbGlkYXRlZCwgc3RhdGUgY2hhbmdlZDogaW52YWxpZDogJHtpbnZhbGlkYXRlZH1gLCBjaGVjaylcbiAgICAgICAgY2hhbmdlZERhdGEgPSBjaGFuZ2VkRGF0YSB8fCBfc2F2ZUNoZWNraW5nRGF0YShjaGVjaywgeyBpbnZhbGlkYXRlZCwgdmVyc2VFZGl0czogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoY2hhbmdlZERhdGEpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAke25hbWV9LWVkaXRUYXJnZXRWZXJzZSAtIGNoYW5nZXMgZGV0ZWN0ZWQgdXBkYXRpbmcgZ3JvdXBzRGF0YWApXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGdyb3Vwc0RhdGE6IF9ncm91cHNEYXRhXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHNldHRpbmdzIHdpdGggbmV3IEJpYmxlIGRhdGEgYW5kIHBhbmUgY29uZmlndXJhdGlvbnNcbiAgICogT3JnYW5pemVzIEJpYmxlcyBieSBsYW5ndWFnZSBhbmQgaW5pdGlhbGl6ZXMgcGFuZSBzZXR0aW5nc1xuICAgKiBAcGFyYW0ge0FycmF5fSBuZXdCaWJsZXMgLSBBcnJheSBvZiBCaWJsZSBvYmplY3RzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSB0YXJnZXRCaWJsZSAtIFRhcmdldCBCaWJsZSBkYXRhXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVTZXR0aW5ncyhuZXdCaWJsZXMsIHRhcmdldEJpYmxlKSB7XG4gICAgY29uc3QgX2JpYmxlcyA9IHt9XG4gICAgbGV0IF9wYW5lU2V0dGluZ3MgPSBbXVxuICAgIGNvbnN0IF9wYW5lS2V5U2V0dGluZ3MgPSBpbml0aWFsU2V0dGluZ3M/LnBhbmVLZXlTZXR0aW5ncyB8fCB7fVxuICAgIGlmIChuZXdCaWJsZXM/Lmxlbmd0aCkge1xuICAgICAgZm9yIChjb25zdCBiaWJsZSBvZiBuZXdCaWJsZXMpIHtcbiAgICAgICAgbGV0IGxhbmd1YWdlSWQgPSBiaWJsZT8ubGFuZ3VhZ2VJZFxuICAgICAgICBjb25zdCBvd25lciA9IGJpYmxlPy5vd25lclxuICAgICAgICBjb25zdCBib29rID0gYmlibGU/LmJvb2tcbiAgICAgICAgY29uc3QgYmlibGVJZCA9IGJpYmxlPy5iaWJsZUlkXG4gICAgICAgIGlmIChsYW5ndWFnZUlkID09PSBOVF9PUklHX0xBTkcgfHwgbGFuZ3VhZ2VJZCA9PT0gT1RfT1JJR19MQU5HKSB7XG4gICAgICAgICAgbGFuZ3VhZ2VJZCA9ICdvcmlnaW5hbExhbmd1YWdlJ1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleSA9IGAke2xhbmd1YWdlSWR9LyR7YmlibGVJZH0vJHtvd25lcn1gXG4gICAgICAgIGNvbnN0IGluaXRpYWxQYW5lU2V0dGluZ3MgPSBfcGFuZUtleVNldHRpbmdzPy5ba2V5XVxuICAgICAgICBjb25zdCBsYW5nS2V5ID0gYCR7bGFuZ3VhZ2VJZH1fJHtvd25lcn1gXG4gICAgICAgIHNhdmVCaWJsZVRvS2V5KF9iaWJsZXMsIGxhbmdLZXksIGJpYmxlSWQsIGJvb2spXG4gICAgICAgIHNhdmVCaWJsZVRvS2V5KF9iaWJsZXMsIGxhbmd1YWdlSWQsIGJpYmxlSWQsIGJvb2spIC8vIGFsc28gc2F2ZSBhcyBkZWZhdWx0IGZvciBsYW5ndWFnZSB3aXRob3V0IG93bmVyXG4gICAgICAgIGNvbnN0IHBhbmUgPSBpbml0aWFsUGFuZVNldHRpbmdzIHx8IHtcbiAgICAgICAgICAuLi5iaWJsZSxcbiAgICAgICAgICBsYW5ndWFnZUlkXG4gICAgICAgIH1cbiAgICAgICAgX3BhbmVTZXR0aW5ncy5wdXNoKHBhbmUpXG4gICAgICAgIGlmICghaW5pdGlhbFBhbmVTZXR0aW5ncykge1xuICAgICAgICAgIF9wYW5lS2V5U2V0dGluZ3Nba2V5XSA9IHBhbmVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBfcGFuZVNldHRpbmdzID0gW11cbiAgICB9XG5cbiAgICBjb25zdCBfdG9vbHNTZXR0aW5ncyA9IGluaXRpYWxTZXR0aW5ncz8udG9vbHNTZXR0aW5ncyB8fFxuICAgIHtcbiAgICAgICdDaGVja0FyZWEnOiB7XG4gICAgICAgICdmb250U2l6ZSc6IDEwMFxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBfbWFuaWZlc3QgPSBpbml0aWFsU2V0dGluZ3M/Lm1hbmlmZXN0IHx8XG4gICAge1xuICAgICAgbGFuZ3VhZ2VfbmFtZTogdGFyZ2V0QmlibGU/Lm1hbmlmZXN0Py5kdWJsaW5fY29yZT8ubGFuZ3VhZ2U/LnRpdGxlIHx8ICdDdXJyZW50JyxcbiAgICAgIHByb2plY3RGb250OiB0YXJnZXRCaWJsZT8ubWFuaWZlc3Q/LnByb2plY3RGb250IHx8ICcnXG4gICAgfVxuXG4gICAgY29uc3QgYXBwU2V0dGluZ3MgPSBpbml0aWFsU2V0dGluZ3M/LmFwcFNldHRpbmdzIHx8IHt9XG4gICAgX21hbmlmZXN0ID0ge1xuICAgICAgLi4uX21hbmlmZXN0LFxuICAgICAgLi4uYXBwU2V0dGluZ3MgLy8gb2xkZXIgY29kZSBpcyBsb29raW5nIGZvciBhcHBTZXR0aW5ncyBpbiBtYW5pZmVzdFxuICAgIH1cblxuICAgIHNldEJpYmxlcyhfYmlibGVzKVxuICAgIHNldFRhcmdldEJpYmxlKHRhcmdldEJpYmxlKVxuICAgIHNldFNldHRpbmdzKHtcbiAgICAgIHBhbmVTZXR0aW5nczogX3BhbmVTZXR0aW5ncyxcbiAgICAgIHBhbmVLZXlTZXR0aW5nczogX3BhbmVLZXlTZXR0aW5ncyxcbiAgICAgIHRvb2xzU2V0dGluZ3M6IF90b29sc1NldHRpbmdzLFxuICAgICAgbWFuaWZlc3Q6IF9tYW5pZmVzdCxcbiAgICAgIG5ld0NvbW1lbnQ6ICcnLFxuICAgICAgYXBwU2V0dGluZ3MsXG4gICAgfSwgZmFsc2UpXG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciBmb3IgZ2V0U2NyaXB0dXJlRnJvbVJlZmVyZW5jZSB3aXRoIGN1cnJlbnQgQmlibGVzIGRhdGFcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxhbmcgLSBMYW5ndWFnZSBJRFxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgLSBCaWJsZSBJRFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYm9vayAtIEJvb2sgSURcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXB0ZXIgLSBDaGFwdGVyIG51bWJlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmVyc2UgLSBWZXJzZSBudW1iZXJcbiAgICogQHJldHVybnMge3N0cmluZ30gU2NyaXB0dXJlIHRleHRcbiAgICovXG4gIGZ1bmN0aW9uIF9nZXRTY3JpcHR1cmVGcm9tUmVmZXJlbmNlKGxhbmcsIGlkLCBib29rLCBjaGFwdGVyLCB2ZXJzZSkge1xuICAgIHJldHVybiBnZXRTY3JpcHR1cmVGcm9tUmVmZXJlbmNlKGJpYmxlcywgbGFuZywgaWQsIGJvb2ssIGNoYXB0ZXIsIHZlcnNlKVxuICB9XG5cbiAgLyoqXG4gICAqIEVmZmVjdCBob29rIHRvIHVwZGF0ZSBzZXR0aW5ncyB3aGVuIEJpYmxlcyBvciB0YXJnZXQgQmlibGUgY2hhbmdlc1xuICAgKi9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB1cGRhdGVTZXR0aW5ncyhiaWJsZXNfLCB0YXJnZXRCaWJsZV8pXG4gIH0sIFtiaWJsZXNfLCB0YXJnZXRCaWJsZV9dKVxuXG4gIC8vIGJ1aWxkIHRoZSB0aXRsZVxuICBjb25zdCB7IHRhcmdldF9sYW5ndWFnZSwgcHJvamVjdCB9ID0gbWFuaWZlc3Q7XG4gIGxldCBleHBhbmRlZFNjcmlwdHVyZVBhbmVUaXRsZSA9IHByb2plY3Q/LnRpdGxlIHx8ICcnO1xuXG4gIGlmICh0YXJnZXRfbGFuZ3VhZ2U/LmJvb2s/Lm5hbWUpIHtcbiAgICBleHBhbmRlZFNjcmlwdHVyZVBhbmVUaXRsZSA9IHRhcmdldF9sYW5ndWFnZS5ib29rLm5hbWU7XG4gIH1cblxuXG4gIGNvbnN0IHN0eWxlUHJvcHMgPSBzdHlsZXMgfHwge31cbiAgY29uc3QgX2NoZWNrZXJTdHlsZXMgPSB7XG4gICAgLi4ubG9jYWxTdHlsZXMuY29udGFpbmVyRGl2LFxuICAgIC4uLnN0eWxlUHJvcHMsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIHJlYWR5VG9EaXNwbGF5Q2hlY2tlciA/XG4gICAgICA8ZGl2IGlkPSdjaGVja2VyJyBzdHlsZT17X2NoZWNrZXJTdHlsZXN9PlxuICAgICAgICA8R3JvdXBNZW51Q29tcG9uZW50XG4gICAgICAgICAgYm9va05hbWU9e2Jvb2tOYW1lfVxuICAgICAgICAgIGNoYW5nZUN1cnJlbnRDb250ZXh0SWQ9e2NoYW5nZUN1cnJlbnRDaGVja199XG4gICAgICAgICAgY29udGV4dElkPXtjdXJyZW50Q29udGV4dElkfVxuICAgICAgICAgIGRpcmVjdGlvbj17ZGlyZWN0aW9ufVxuICAgICAgICAgIGdyb3Vwc0RhdGE9e2dyb3Vwc0RhdGF9XG4gICAgICAgICAgZ3JvdXBzSW5kZXg9e2dyb3Vwc0luZGV4fVxuICAgICAgICAgIHRhcmdldExhbmd1YWdlRm9udD17dGFyZ2V0TGFuZ3VhZ2VGb250fVxuICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IHN0eWxlPXtsb2NhbFN0eWxlcy5jZW50ZXJEaXZ9PlxuICAgICAgICAgIHsgYmlibGVzICYmIE9iamVjdC5rZXlzKGJpYmxlcykubGVuZ3RoICYmXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXtsb2NhbFN0eWxlcy5zY3JpcHR1cmVQYW5lRGl2fT5cbiAgICAgICAgICAgICAgPFNjcmlwdHVyZVBhbmVcbiAgICAgICAgICAgICAgICBhZGRPYmplY3RQcm9wZXJ0eVRvTWFuaWZlc3Q9e2FkZE9iamVjdFByb3BlcnR5VG9NYW5pZmVzdH1cbiAgICAgICAgICAgICAgICBiaWJsZXM9e2JpYmxlc31cbiAgICAgICAgICAgICAgICBjb21wbGV4U2NyaXB0Rm9udHM9e2NvbXBsZXhTY3JpcHRGb250c31cbiAgICAgICAgICAgICAgICBjb250ZXh0SWQ9e2N1cnJlbnRDb250ZXh0SWR9XG4gICAgICAgICAgICAgICAgY3VycmVudFBhbmVTZXR0aW5ncz17cGFuZVNldHRpbmdzfVxuICAgICAgICAgICAgICAgIGVkaXRWZXJzZVJlZj17bnVsbH1cbiAgICAgICAgICAgICAgICBlZGl0VGFyZ2V0VmVyc2U9e2VkaXRUYXJnZXRWZXJzZX1cbiAgICAgICAgICAgICAgICBleHBhbmRlZFNjcmlwdHVyZVBhbmVUaXRsZT17ZXhwYW5kZWRTY3JpcHR1cmVQYW5lVGl0bGV9XG4gICAgICAgICAgICAgICAgZ2V0QXZhaWxhYmxlU2NyaXB0dXJlUGFuZVNlbGVjdGlvbnM9e251bGx9XG4gICAgICAgICAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhX31cbiAgICAgICAgICAgICAgICBtYWtlU3VyZUJpYmxlc0xvYWRlZEZvclRvb2w9e251bGx9XG4gICAgICAgICAgICAgICAgcHJvamVjdERldGFpbHNSZWR1Y2VyPXt7IG1hbmlmZXN0IH19XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9ucz17Y3VycmVudFNlbGVjdGlvbnN9XG4gICAgICAgICAgICAgICAgc2V0VG9vbFNldHRpbmdzPXtzZXRUb29sU2V0dGluZ3NTY3JpcHR1cmV9XG4gICAgICAgICAgICAgICAgc2hvd1BvcG92ZXI9e3Nob3dQb3BvdmVyfVxuICAgICAgICAgICAgICAgIG9uRXhwYW5kZWRTY3JpcHR1cmVQYW5lU2hvdz17bnVsbH1cbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPENoZWNrSW5mb0NhcmRcbiAgICAgICAgICAgICAgZ2V0U2NyaXB0dXJlRnJvbVJlZmVyZW5jZT17X2dldFNjcmlwdHVyZUZyb21SZWZlcmVuY2V9XG4gICAgICAgICAgICAgIG9uTGlua0NsaWNrPXsoKSA9PiBmYWxzZX1cbiAgICAgICAgICAgICAgb25TZWVNb3JlQ2xpY2s9eygpID0+IGZhbHNlfVxuICAgICAgICAgICAgICBwaHJhc2U9e2dyb3VwUGhyYXNlfVxuICAgICAgICAgICAgICBzZWVNb3JlTGFiZWw9e3RyYW5zbGF0ZSgnc2VlX21vcmUnKX1cbiAgICAgICAgICAgICAgc2hvd1NlZU1vcmVCdXR0b249e2ZhbHNlfVxuICAgICAgICAgICAgICB0aXRsZT17Z3JvdXBUaXRsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmVyc2VDaGVja1xuICAgICAgICAgICAgICBhbGlnbmVkR0xUZXh0PXthbGlnbmVkR0xUZXh0fVxuICAgICAgICAgICAgICBib29rRGV0YWlscz17Ym9va0RldGFpbHN9XG4gICAgICAgICAgICAgIGJvb2ttYXJrRW5hYmxlZD17Ym9va21hcmtFbmFibGVkfVxuICAgICAgICAgICAgICBjYW5jZWxFZGl0VmVyc2U9e2NhbmNlbEVkaXRWZXJzZX1cbiAgICAgICAgICAgICAgY2FuY2VsQ29tbWVudD17Y2FuY2VsQ29tbWVudH1cbiAgICAgICAgICAgICAgY2FuY2VsU2VsZWN0aW9uPXtjYW5jZWxTZWxlY3Rpb259XG4gICAgICAgICAgICAgIGNoYW5nZU1vZGU9e2NoYW5nZU1vZGV9XG4gICAgICAgICAgICAgIGNoYW5nZVNlbGVjdGlvbnNJbkxvY2FsU3RhdGU9e2NoYW5nZVNlbGVjdGlvbnNJbkxvY2FsU3RhdGV9XG4gICAgICAgICAgICAgIGNoZWNrSWZDb21tZW50Q2hhbmdlZD17Y2hlY2tJZkNvbW1lbnRDaGFuZ2VkfVxuICAgICAgICAgICAgICBjaGVja0lmVmVyc2VDaGFuZ2VkPXtjaGVja0lmVmVyc2VDaGFuZ2VkfVxuICAgICAgICAgICAgICBjbGVhclNlbGVjdGlvbj17Y2xlYXJTZWxlY3Rpb259XG4gICAgICAgICAgICAgIGNvbW1lbnRUZXh0PXtjb21tZW50VGV4dH1cbiAgICAgICAgICAgICAgY29udGV4dElkPXtjdXJyZW50Q29udGV4dElkfVxuICAgICAgICAgICAgICBkaWFsb2dNb2RhbFZpc2liaWxpdHkgPSB7ZmFsc2V9XG4gICAgICAgICAgICAgIGlzQ29tbWVudENoYW5nZWQ9e2lzQ29tbWVudENoYW5nZWR9XG4gICAgICAgICAgICAgIGlzVmVyc2VDaGFuZ2VkPXtpc1ZlcnNlQ2hhbmdlZH1cbiAgICAgICAgICAgICAgaXNWZXJzZUVkaXRlZD17aXNWZXJzZUVkaXRlZH1cbiAgICAgICAgICAgICAgaGFuZGxlRWRpdFZlcnNlPXtoYW5kbGVFZGl0VmVyc2V9XG4gICAgICAgICAgICAgIGhhbmRsZUdvVG9OZXh0PXtoYW5kbGVHb1RvTmV4dH1cbiAgICAgICAgICAgICAgaGFuZGxlR29Ub1ByZXZpb3VzPXtoYW5kbGVHb1RvUHJldmlvdXN9XG4gICAgICAgICAgICAgIGhhbmRsZU9wZW5EaWFsb2c9e251bGx9XG4gICAgICAgICAgICAgIGlzVmVyc2VJbnZhbGlkYXRlZD17aXNWZXJzZUludmFsaWRhdGVkfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURpYWxvZz17bnVsbH1cbiAgICAgICAgICAgICAgaGFuZGxlQ29tbWVudD17aGFuZGxlQ29tbWVudH1cbiAgICAgICAgICAgICAgaGFuZGxlU2tpcD17bnVsbH1cbiAgICAgICAgICAgICAgaGFuZGxlVGFnc0NoZWNrYm94PXtoYW5kbGVUYWdzQ2hlY2tib3h9XG4gICAgICAgICAgICAgIGxvY2FsTm90aGluZ1RvU2VsZWN0PXt0ZW1wTm90aGluZ1RvU2VsZWN0fVxuICAgICAgICAgICAgICBtYW5pZmVzdD17bWFuaWZlc3R9XG4gICAgICAgICAgICAgIG1heGltdW1TZWxlY3Rpb25zPXttYXhpbXVtU2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgICAgICAgbmV3U2VsZWN0aW9ucz17dGVtcFNlbGVjdGlvbnN9XG4gICAgICAgICAgICAgIG5vdGhpbmdUb1NlbGVjdD17Y3VycmVudE5vdGhpbmdUb1NlbGVjdH1cbiAgICAgICAgICAgICAgb3BlbkFsZXJ0RGlhbG9nPXtvcGVuQWxlcnREaWFsb2d9XG4gICAgICAgICAgICAgIHNhdmVDb21tZW50PXtzYXZlQ29tbWVudH1cbiAgICAgICAgICAgICAgc2F2ZUVkaXRWZXJzZT17c2F2ZUVkaXRWZXJzZX1cbiAgICAgICAgICAgICAgc2F2ZVNlbGVjdGlvbj17X3NhdmVTZWxlY3Rpb259XG4gICAgICAgICAgICAgIHNlbGVjdGlvbnM9e2N1cnJlbnRTZWxlY3Rpb25zfVxuICAgICAgICAgICAgICBzZXRUb29sU2V0dGluZ3M9e3NldFRvb2xTZXR0aW5nc31cbiAgICAgICAgICAgICAgdGFncz17bmV3VGFncyB8fCBbXX1cbiAgICAgICAgICAgICAgdGFyZ2V0QmlibGU9e3RhcmdldEJpYmxlfVxuICAgICAgICAgICAgICB0YXJnZXRMYW5ndWFnZURldGFpbHM9e3RhcmdldExhbmd1YWdlRGV0YWlsc31cbiAgICAgICAgICAgICAgdG9nZ2xlQm9va21hcms9e3RvZ2dsZUJvb2ttYXJrfVxuICAgICAgICAgICAgICB0b2dnbGVOb3RoaW5nVG9TZWxlY3Q9e3RvZ2dsZU5vdGhpbmdUb1NlbGVjdH1cbiAgICAgICAgICAgICAgdG9vbHNTZXR0aW5ncz17dG9vbHNTZXR0aW5nc31cbiAgICAgICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgICAgICAgIHVuZmlsdGVyZWRWZXJzZVRleHQ9e3VuZmlsdGVyZWRWZXJzZVRleHR9XG4gICAgICAgICAgICAgIHZhbGlkYXRlU2VsZWN0aW9ucz17dmFsaWRhdGVTZWxlY3Rpb25zfVxuICAgICAgICAgICAgICB2ZXJzZVRleHQ9e3ZlcnNlVGV4dH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7c2hvd0RvY3VtZW50ICYmIDxUcmFuc2xhdGlvbkhlbHBzXG4gICAgICAgICAgbW9kYWxBcnRpY2xlPXthcnRpY2xlfVxuICAgICAgICAgIGFydGljbGU9e2FydGljbGV9XG4gICAgICAgICAgZXhwYW5kZWRIZWxwc0J1dHRvbkhvdmVyVGV4dD17J0NsaWNrIHRvIHNob3cgZXhwYW5kZWQgaGVscCBwYW5lJ31cbiAgICAgICAgICBtb2RhbFRpdGxlPXsndHJhbnNsYXRpb25IZWxwcyd9XG4gICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgICAgaXNTaG93SGVscHNFeHBhbmRlZD17c2hvd0hlbHBzTW9kYWx9XG4gICAgICAgICAgb3BlbkV4cGFuZGVkSGVscHNNb2RhbD17dG9nZ2xlSGVscHNNb2RhbH1cbiAgICAgICAgICBzaWRlYmFyVG9nZ2xlPXt0b2dnbGVIZWxwc31cbiAgICAgICAgICBpc1Nob3dIZWxwc1NpZGViYXI9e3Nob3dIZWxwc31cbiAgICAgICAgLz59XG4gICAgICAgIHtwb3BvdmVyUHJvcHM/LnBvcG92ZXJWaXNpYmlsaXR5ICYmXG4gICAgICAgICAgPFBvcG92ZXJDb250YWluZXIgey4uLnBvcG92ZXJQcm9wc30gLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA6XG4gICAgICAnV2FpdGluZyBmb3IgRGF0YSdcbiAgKTtcbn07XG5cbkNoZWNrZXIucHJvcFR5cGVzID0ge1xuICBzdHlsZXM6UHJvcFR5cGVzLm9iamVjdCxcbiAgYWxpZ25lZEdsQmlibGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIGJpYmxlczogUHJvcFR5cGVzLmFycmF5LFxuICBjaGFuZ2VUYXJnZXRWZXJzZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGNoZWNraW5nRGF0YTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBjaGVja1R5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNvbnRleHRJZDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBnbFdvcmRzRGF0YTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBnZXRMZXhpY29uRGF0YTogUHJvcFR5cGVzLmZ1bmMsXG4gIGluaXRpYWxTZXR0aW5nczogUHJvcFR5cGVzLm9iamVjdCxcbiAgc2F2ZUNoZWNraW5nRGF0YTogUHJvcFR5cGVzLmZ1bmMsXG4gIHNhdmVTZXR0aW5nczogUHJvcFR5cGVzLmZ1bmMsXG4gIHNob3dEb2N1bWVudDogUHJvcFR5cGVzLmJvb2wsXG4gIHRhcmdldEJpYmxlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHRhcmdldExhbmd1YWdlRGV0YWlsczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuZXhwb3J0IGRlZmF1bHQgQ2hlY2tlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQTBDQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxtQkFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBTCxPQUFBO0FBTUEsSUFBQU0sVUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8saUJBQUEsR0FBQVAsT0FBQTtBQVNBLElBQUFRLGNBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLGlCQUFB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
@@ -157,7 +157,7 @@ var VerseCheck = /*#__PURE__*/function (_Component) {
157
157
  targetLanguageDetails: targetLanguageDetails,
158
158
  checkIfCommentChanged: checkIfCommentChanged,
159
159
  changeSelectionsInLocalState: changeSelectionsInLocalState
160
- }), /*#__PURE__*/_react["default"].createElement(_ActionsArea["default"], {
160
+ }), false && /*#__PURE__*/_react["default"].createElement(_ActionsArea["default"], {
161
161
  mode: mode,
162
162
  tags: tags,
163
163
  toggleNothingToSelect: toggleNothingToSelect,
@@ -177,7 +177,7 @@ var VerseCheck = /*#__PURE__*/function (_Component) {
177
177
  saveEditVerse: saveEditVerse,
178
178
  cancelComment: cancelComment,
179
179
  saveComment: saveComment
180
- })), saveArea), /*#__PURE__*/_react["default"].createElement(_DialogComponent["default"], {
180
+ })), saveArea), false && /*#__PURE__*/_react["default"].createElement(_DialogComponent["default"], {
181
181
  handleSkip: handleSkip,
182
182
  dialogModalVisibility: dialogModalVisibility,
183
183
  handleClose: handleCloseDialog,
@@ -245,4 +245,4 @@ VerseCheck.defaultProps = {
245
245
  commentText: ''
246
246
  };
247
247
  var _default = exports["default"] = VerseCheck;
248
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9BY3Rpb25zQXJlYSIsIl9DaGVja0FyZWEiLCJfU2F2ZUFyZWEiLCJfRGlhbG9nQ29tcG9uZW50IiwiX0ljb25JbmRpY2F0b3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfY2xhc3NDYWxsQ2hlY2siLCJhIiwiVHlwZUVycm9yIiwiX2RlZmluZVByb3BlcnRpZXMiLCJsZW5ndGgiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9Qcm9wZXJ0eUtleSIsImtleSIsIl9jcmVhdGVDbGFzcyIsInByb3RvdHlwZSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIlJlZmVyZW5jZUVycm9yIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJzZXRQcm90b3R5cGVPZiIsImdldFByb3RvdHlwZU9mIiwiYmluZCIsIl9pbmhlcml0cyIsImNyZWF0ZSIsInZhbHVlIiwiX3NldFByb3RvdHlwZU9mIiwiVmVyc2VDaGVjayIsIl9Db21wb25lbnQiLCJhcmd1bWVudHMiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsInByb3BzIiwidHJhbnNsYXRlIiwiYWxpZ25lZEdMVGV4dCIsInZlcnNlVGV4dCIsInVuZmlsdGVyZWRWZXJzZVRleHQiLCJtb2RlIiwiZGlhbG9nTW9kYWxWaXNpYmlsaXR5IiwiaXNDb21tZW50Q2hhbmdlZCIsInRhZ3MiLCJpc1ZlcnNlQ2hhbmdlZCIsInNhdmVTZWxlY3Rpb24iLCJjYW5jZWxTZWxlY3Rpb24iLCJjbGVhclNlbGVjdGlvbiIsImhhbmRsZVNraXAiLCJ0b2dnbGVOb3RoaW5nVG9TZWxlY3QiLCJsb2NhbE5vdGhpbmdUb1NlbGVjdCIsIm1heGltdW1TZWxlY3Rpb25zIiwic2VsZWN0aW9ucyIsIm5ld1NlbGVjdGlvbnMiLCJub3RoaW5nVG9TZWxlY3QiLCJpc1ZlcnNlRWRpdGVkIiwiY29tbWVudFRleHQiLCJib29rbWFya0VuYWJsZWQiLCJpc1ZlcnNlSW52YWxpZGF0ZWQiLCJjb250ZXh0SWQiLCJ0YXJnZXRCaWJsZSIsInRvb2xzU2V0dGluZ3MiLCJoYW5kbGVDbG9zZURpYWxvZyIsImhhbmRsZUdvVG9OZXh0IiwiaGFuZGxlR29Ub1ByZXZpb3VzIiwiaGFuZGxlT3BlbkRpYWxvZyIsIm9wZW5BbGVydERpYWxvZyIsImNoYW5nZVNlbGVjdGlvbnNJbkxvY2FsU3RhdGUiLCJ0b2dnbGVCb29rbWFyayIsImNoYW5nZU1vZGUiLCJjYW5jZWxFZGl0VmVyc2UiLCJzYXZlRWRpdFZlcnNlIiwiaGFuZGxlQ29tbWVudCIsImNhbmNlbENvbW1lbnQiLCJzYXZlQ29tbWVudCIsImJvb2tEZXRhaWxzIiwic2V0VG9vbFNldHRpbmdzIiwidGFyZ2V0TGFuZ3VhZ2VEZXRhaWxzIiwiaGFuZGxlVGFnc0NoZWNrYm94IiwiaGFuZGxlRWRpdFZlcnNlIiwiY2hlY2tJZlZlcnNlQ2hhbmdlZCIsImNoZWNrSWZDb21tZW50Q2hhbmdlZCIsInZhbGlkYXRlU2VsZWN0aW9ucyIsIm1hbmlmZXN0IiwidGFyZ2V0TGFuZ3VhZ2VGb250IiwicHJvamVjdEZvbnQiLCJ0aXRsZVRleHQiLCJzYXZlQXJlYSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJjb21tZW50IiwiaW52YWxpZGF0ZWQiLCJoYW5kbGVDbG9zZSIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFycmF5IiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImZ1bmMiLCJvYmplY3QiLCJib29sIiwibnVtYmVyIiwiZGVmYXVsdFByb3BzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RjX3VpX3Rvb2xraXQvVmVyc2VDaGVjay9WZXJzZUNoZWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGluZGVudCAqL1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgQWN0aW9uc0FyZWEgZnJvbSAnLi9BY3Rpb25zQXJlYSc7XG5pbXBvcnQgQ2hlY2tBcmVhIGZyb20gJy4vQ2hlY2tBcmVhJztcbmltcG9ydCBTYXZlQXJlYSBmcm9tICcuL1NhdmVBcmVhJztcbmltcG9ydCBEaWFsb2dDb21wb25lbnQgZnJvbSAnLi9EaWFsb2dDb21wb25lbnQnO1xuaW1wb3J0IEljb25JbmRpY2F0b3JzIGZyb20gJy4vSWNvbkluZGljYXRvcnMnO1xuXG5pbXBvcnQgJy4vVmVyc2VDaGVjay5zdHlsZXMuY3NzJztcblxuY2xhc3MgVmVyc2VDaGVjayBleHRlbmRzIENvbXBvbmVudCB7XG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB0cmFuc2xhdGUsXG4gICAgICBhbGlnbmVkR0xUZXh0LFxuICAgICAgdmVyc2VUZXh0LFxuICAgICAgdW5maWx0ZXJlZFZlcnNlVGV4dCxcbiAgICAgIG1vZGUsXG4gICAgICBkaWFsb2dNb2RhbFZpc2liaWxpdHksXG4gICAgICBpc0NvbW1lbnRDaGFuZ2VkLFxuICAgICAgdGFncyxcbiAgICAgIGlzVmVyc2VDaGFuZ2VkLFxuICAgICAgc2F2ZVNlbGVjdGlvbixcbiAgICAgIGNhbmNlbFNlbGVjdGlvbixcbiAgICAgIGNsZWFyU2VsZWN0aW9uLFxuICAgICAgaGFuZGxlU2tpcCxcbiAgICAgIHRvZ2dsZU5vdGhpbmdUb1NlbGVjdCxcbiAgICAgIGxvY2FsTm90aGluZ1RvU2VsZWN0LFxuICAgICAgbWF4aW11bVNlbGVjdGlvbnMsXG4gICAgICBzZWxlY3Rpb25zLFxuICAgICAgbmV3U2VsZWN0aW9ucyxcbiAgICAgIG5vdGhpbmdUb1NlbGVjdCxcbiAgICAgIGlzVmVyc2VFZGl0ZWQsXG4gICAgICBjb21tZW50VGV4dCxcbiAgICAgIGJvb2ttYXJrRW5hYmxlZCxcbiAgICAgIGlzVmVyc2VJbnZhbGlkYXRlZCxcbiAgICAgIGNvbnRleHRJZCxcbiAgICAgIHRhcmdldEJpYmxlLFxuICAgICAgdG9vbHNTZXR0aW5ncyxcbiAgICAgIGhhbmRsZUNsb3NlRGlhbG9nLFxuICAgICAgaGFuZGxlR29Ub05leHQsXG4gICAgICBoYW5kbGVHb1RvUHJldmlvdXMsXG4gICAgICBoYW5kbGVPcGVuRGlhbG9nLFxuICAgICAgb3BlbkFsZXJ0RGlhbG9nLFxuICAgICAgY2hhbmdlU2VsZWN0aW9uc0luTG9jYWxTdGF0ZSxcbiAgICAgIHRvZ2dsZUJvb2ttYXJrLFxuICAgICAgY2hhbmdlTW9kZSxcbiAgICAgIGNhbmNlbEVkaXRWZXJzZSxcbiAgICAgIHNhdmVFZGl0VmVyc2UsXG4gICAgICBoYW5kbGVDb21tZW50LFxuICAgICAgY2FuY2VsQ29tbWVudCxcbiAgICAgIHNhdmVDb21tZW50LFxuICAgICAgYm9va0RldGFpbHMsXG4gICAgICBzZXRUb29sU2V0dGluZ3MsXG4gICAgICB0YXJnZXRMYW5ndWFnZURldGFpbHMsXG4gICAgICBoYW5kbGVUYWdzQ2hlY2tib3gsXG4gICAgICBoYW5kbGVFZGl0VmVyc2UsXG4gICAgICBjaGVja0lmVmVyc2VDaGFuZ2VkLFxuICAgICAgY2hlY2tJZkNvbW1lbnRDaGFuZ2VkLFxuICAgICAgdmFsaWRhdGVTZWxlY3Rpb25zLFxuICAgICAgbWFuaWZlc3QsXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdGFyZ2V0TGFuZ3VhZ2VGb250ID0gbWFuaWZlc3QgJiYgbWFuaWZlc3QucHJvamVjdEZvbnQgfHwgJyc7XG4gICAgbGV0IHRpdGxlVGV4dDtcbiAgICBsZXQgc2F2ZUFyZWE7XG5cbiAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICB0aXRsZVRleHQgPSB0cmFuc2xhdGUoJ2VkaXRfdmVyc2UnKTtcbiAgICAgICAgc2F2ZUFyZWEgPSA8ZGl2IC8+O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICB0aXRsZVRleHQgPSB0cmFuc2xhdGUoJ2NvbW1lbnQnKTtcbiAgICAgICAgc2F2ZUFyZWEgPSA8ZGl2IC8+O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIHRpdGxlVGV4dCA9IHRyYW5zbGF0ZSgnc2VsZWN0Jyk7XG4gICAgICAgIHNhdmVBcmVhID0gPGRpdiAvPjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aXRsZVRleHQgPSB0cmFuc2xhdGUoJ3N0ZXAyX2NoZWNrJyk7XG4gICAgICAgIHNhdmVBcmVhID0gKFxuICAgICAgICAgIDxTYXZlQXJlYVxuICAgICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgICAgICBzZWxlY3Rpb25zPXtzZWxlY3Rpb25zfVxuICAgICAgICAgICAgbm90aGluZ1RvU2VsZWN0PXtub3RoaW5nVG9TZWxlY3R9XG4gICAgICAgICAgICBoYW5kbGVHb1RvTmV4dD17aGFuZGxlR29Ub05leHR9XG4gICAgICAgICAgICBoYW5kbGVHb1RvUHJldmlvdXM9e2hhbmRsZUdvVG9QcmV2aW91c31cbiAgICAgICAgICAgIGhhbmRsZU9wZW5EaWFsb2c9e2hhbmRsZU9wZW5EaWFsb2d9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J3ZlcnNlLWNoZWNrJz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J3ZlcnNlLWNoZWNrLWZsZXgnPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSd2ZXJzZS1jaGVjay1jYXJkJz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSd0aXRsZS1iYXInPlxuICAgICAgICAgICAgICA8c3Bhbj57dGl0bGVUZXh0fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPEljb25JbmRpY2F0b3JzXG4gICAgICAgICAgICAgICAgaXNWZXJzZUVkaXRlZD17aXNWZXJzZUVkaXRlZH1cbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25zPXtzZWxlY3Rpb25zfVxuICAgICAgICAgICAgICAgIGNvbW1lbnQ9e2NvbW1lbnRUZXh0fVxuICAgICAgICAgICAgICAgIGJvb2ttYXJrRW5hYmxlZD17Ym9va21hcmtFbmFibGVkfVxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgICAgICAgIG5vdGhpbmdUb1NlbGVjdD17bm90aGluZ1RvU2VsZWN0fVxuICAgICAgICAgICAgICAgIGludmFsaWRhdGVkPXtpc1ZlcnNlSW52YWxpZGF0ZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxDaGVja0FyZWFcbiAgICAgICAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgICAgICAgdGFncz17dGFnc31cbiAgICAgICAgICAgICAgdmVyc2VUZXh0PXt2ZXJzZVRleHR9XG4gICAgICAgICAgICAgIGNvbW1lbnQ9e2NvbW1lbnRUZXh0fVxuICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgY29udGV4dElkPXtjb250ZXh0SWR9XG4gICAgICAgICAgICAgIHNlbGVjdGlvbnM9e3NlbGVjdGlvbnN9XG4gICAgICAgICAgICAgIGJvb2tEZXRhaWxzPXtib29rRGV0YWlsc31cbiAgICAgICAgICAgICAgdGFyZ2V0QmlibGU9e3RhcmdldEJpYmxlfVxuICAgICAgICAgICAgICB0b29sc1NldHRpbmdzPXt0b29sc1NldHRpbmdzfVxuICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25zPXtuZXdTZWxlY3Rpb25zfVxuICAgICAgICAgICAgICBhbGlnbmVkR0xUZXh0PXthbGlnbmVkR0xUZXh0fVxuICAgICAgICAgICAgICBoYW5kbGVDb21tZW50PXtoYW5kbGVDb21tZW50fVxuICAgICAgICAgICAgICBpc1ZlcnNlQ2hhbmdlZD17aXNWZXJzZUNoYW5nZWR9XG4gICAgICAgICAgICAgIGludmFsaWRhdGVkPXtpc1ZlcnNlSW52YWxpZGF0ZWR9XG4gICAgICAgICAgICAgIHNldFRvb2xTZXR0aW5ncz17c2V0VG9vbFNldHRpbmdzfVxuICAgICAgICAgICAgICBub3RoaW5nVG9TZWxlY3Q9e25vdGhpbmdUb1NlbGVjdH1cbiAgICAgICAgICAgICAgb3BlbkFsZXJ0RGlhbG9nPXtvcGVuQWxlcnREaWFsb2d9XG4gICAgICAgICAgICAgIGhhbmRsZUVkaXRWZXJzZT17aGFuZGxlRWRpdFZlcnNlfVxuICAgICAgICAgICAgICBtYXhpbXVtU2VsZWN0aW9ucz17bWF4aW11bVNlbGVjdGlvbnN9XG4gICAgICAgICAgICAgIGhhbmRsZVRhZ3NDaGVja2JveD17aGFuZGxlVGFnc0NoZWNrYm94fVxuICAgICAgICAgICAgICB2YWxpZGF0ZVNlbGVjdGlvbnM9e3ZhbGlkYXRlU2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250PXt0YXJnZXRMYW5ndWFnZUZvbnR9XG4gICAgICAgICAgICAgIHVuZmlsdGVyZWRWZXJzZVRleHQ9e3VuZmlsdGVyZWRWZXJzZVRleHR9XG4gICAgICAgICAgICAgIGNoZWNrSWZWZXJzZUNoYW5nZWQ9e2NoZWNrSWZWZXJzZUNoYW5nZWR9XG4gICAgICAgICAgICAgIHRhcmdldExhbmd1YWdlRGV0YWlscz17dGFyZ2V0TGFuZ3VhZ2VEZXRhaWxzfVxuICAgICAgICAgICAgICBjaGVja0lmQ29tbWVudENoYW5nZWQ9e2NoZWNrSWZDb21tZW50Q2hhbmdlZH1cbiAgICAgICAgICAgICAgY2hhbmdlU2VsZWN0aW9uc0luTG9jYWxTdGF0ZT17Y2hhbmdlU2VsZWN0aW9uc0luTG9jYWxTdGF0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8QWN0aW9uc0FyZWFcbiAgICAgICAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgICAgICAgdGFncz17dGFnc31cbiAgICAgICAgICAgICAgdG9nZ2xlTm90aGluZ1RvU2VsZWN0PXt0b2dnbGVOb3RoaW5nVG9TZWxlY3R9XG4gICAgICAgICAgICAgIGxvY2FsTm90aGluZ1RvU2VsZWN0PXtsb2NhbE5vdGhpbmdUb1NlbGVjdH1cbiAgICAgICAgICAgICAgbm90aGluZ1RvU2VsZWN0PXtub3RoaW5nVG9TZWxlY3R9XG4gICAgICAgICAgICAgIGlzQ29tbWVudENoYW5nZWQ9e2lzQ29tbWVudENoYW5nZWR9XG4gICAgICAgICAgICAgIHNlbGVjdGlvbnM9e3NlbGVjdGlvbnN9XG4gICAgICAgICAgICAgIG5ld1NlbGVjdGlvbnM9e25ld1NlbGVjdGlvbnN9XG4gICAgICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgICAgICBib29rbWFya0VuYWJsZWQ9e2Jvb2ttYXJrRW5hYmxlZH1cbiAgICAgICAgICAgICAgc2F2ZVNlbGVjdGlvbj17c2F2ZVNlbGVjdGlvbn1cbiAgICAgICAgICAgICAgY2FuY2VsU2VsZWN0aW9uPXtjYW5jZWxTZWxlY3Rpb259XG4gICAgICAgICAgICAgIGNsZWFyU2VsZWN0aW9uPXtjbGVhclNlbGVjdGlvbn1cbiAgICAgICAgICAgICAgdG9nZ2xlQm9va21hcms9e3RvZ2dsZUJvb2ttYXJrfVxuICAgICAgICAgICAgICBjaGFuZ2VNb2RlPXtjaGFuZ2VNb2RlfVxuICAgICAgICAgICAgICBjYW5jZWxFZGl0VmVyc2U9e2NhbmNlbEVkaXRWZXJzZX1cbiAgICAgICAgICAgICAgc2F2ZUVkaXRWZXJzZT17c2F2ZUVkaXRWZXJzZX1cbiAgICAgICAgICAgICAgY2FuY2VsQ29tbWVudD17Y2FuY2VsQ29tbWVudH1cbiAgICAgICAgICAgICAgc2F2ZUNvbW1lbnQ9e3NhdmVDb21tZW50fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7c2F2ZUFyZWF9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8RGlhbG9nQ29tcG9uZW50XG4gICAgICAgICAgaGFuZGxlU2tpcD17aGFuZGxlU2tpcH1cbiAgICAgICAgICBkaWFsb2dNb2RhbFZpc2liaWxpdHk9e2RpYWxvZ01vZGFsVmlzaWJpbGl0eX1cbiAgICAgICAgICBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2VEaWFsb2d9XG4gICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9IC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cblxuVmVyc2VDaGVjay5wcm9wVHlwZXMgPSB7XG4gIHRhZ3M6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBtb2RlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRyYW5zbGF0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY2hhbmdlTW9kZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2VsZWN0aW9uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIGNvbnRleHRJZDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB2ZXJzZVRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgaXNWZXJzZUVkaXRlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgY29tbWVudFRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgdGFyZ2V0QmlibGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgYm9va0RldGFpbHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgbmV3U2VsZWN0aW9uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIGlzVmVyc2VDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBoYW5kbGVHb1RvTmV4dDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgbm90aGluZ1RvU2VsZWN0OiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBib29rbWFya0VuYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIHRvb2xzU2V0dGluZ3M6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgYWxpZ25lZEdMVGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpc0NvbW1lbnRDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBpc1ZlcnNlSW52YWxpZGF0ZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIHRhcmdldExhbmd1YWdlRGV0YWlsczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB1bmZpbHRlcmVkVmVyc2VUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGRpYWxvZ01vZGFsVmlzaWJpbGl0eTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgbG9jYWxOb3RoaW5nVG9TZWxlY3Q6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG1heGltdW1TZWxlY3Rpb25zOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIGhhbmRsZUNsb3NlRGlhbG9nOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBoYW5kbGVHb1RvUHJldmlvdXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGhhbmRsZU9wZW5EaWFsb2c6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9wZW5BbGVydERpYWxvZzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdG9nZ2xlQm9va21hcms6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNhbmNlbEVkaXRWZXJzZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2F2ZUVkaXRWZXJzZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlQ29tbWVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY2FuY2VsQ29tbWVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2F2ZUNvbW1lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHRvZ2dsZU5vdGhpbmdUb1NlbGVjdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2F2ZVNlbGVjdGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY2FuY2VsU2VsZWN0aW9uOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBjbGVhclNlbGVjdGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlU2tpcDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2V0VG9vbFNldHRpbmdzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBoYW5kbGVFZGl0VmVyc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoZWNrSWZWZXJzZUNoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoZWNrSWZDb21tZW50Q2hhbmdlZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdmFsaWRhdGVTZWxlY3Rpb25zOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBoYW5kbGVUYWdzQ2hlY2tib3g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoYW5nZVNlbGVjdGlvbnNJbkxvY2FsU3RhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG1hbmlmZXN0OiBQcm9wVHlwZXMub2JqZWN0LFxufTtcblxuVmVyc2VDaGVjay5kZWZhdWx0UHJvcHMgPSB7XG4gIHRyYW5zbGF0ZToga2V5ID0+IGtleSxcbiAgdmVyc2VUZXh0OiAnJyxcbiAgdW5maWx0ZXJlZFZlcnNlVGV4dDogJycsXG4gIGNvbW1lbnRUZXh0OiAnJyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFZlcnNlQ2hlY2s7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxnQkFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sZUFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBRUFBLE9BQUE7QUFBaUMsU0FBQUUsdUJBQUFNLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxnQkFBQUEsQ0FBQTtBQUFBLFNBQUFULHdCQUFBUyxDQUFBLEVBQUFFLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBWix1QkFBQSxZQUFBQSx3QkFBQVMsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsU0FBQUQsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FB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
248
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9BY3Rpb25zQXJlYSIsIl9DaGVja0FyZWEiLCJfU2F2ZUFyZWEiLCJfRGlhbG9nQ29tcG9uZW50IiwiX0ljb25JbmRpY2F0b3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfY2xhc3NDYWxsQ2hlY2siLCJhIiwiVHlwZUVycm9yIiwiX2RlZmluZVByb3BlcnRpZXMiLCJsZW5ndGgiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9Qcm9wZXJ0eUtleSIsImtleSIsIl9jcmVhdGVDbGFzcyIsInByb3RvdHlwZSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIlJlZmVyZW5jZUVycm9yIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJzZXRQcm90b3R5cGVPZiIsImdldFByb3RvdHlwZU9mIiwiYmluZCIsIl9pbmhlcml0cyIsImNyZWF0ZSIsInZhbHVlIiwiX3NldFByb3RvdHlwZU9mIiwiVmVyc2VDaGVjayIsIl9Db21wb25lbnQiLCJhcmd1bWVudHMiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsInByb3BzIiwidHJhbnNsYXRlIiwiYWxpZ25lZEdMVGV4dCIsInZlcnNlVGV4dCIsInVuZmlsdGVyZWRWZXJzZVRleHQiLCJtb2RlIiwiZGlhbG9nTW9kYWxWaXNpYmlsaXR5IiwiaXNDb21tZW50Q2hhbmdlZCIsInRhZ3MiLCJpc1ZlcnNlQ2hhbmdlZCIsInNhdmVTZWxlY3Rpb24iLCJjYW5jZWxTZWxlY3Rpb24iLCJjbGVhclNlbGVjdGlvbiIsImhhbmRsZVNraXAiLCJ0b2dnbGVOb3RoaW5nVG9TZWxlY3QiLCJsb2NhbE5vdGhpbmdUb1NlbGVjdCIsIm1heGltdW1TZWxlY3Rpb25zIiwic2VsZWN0aW9ucyIsIm5ld1NlbGVjdGlvbnMiLCJub3RoaW5nVG9TZWxlY3QiLCJpc1ZlcnNlRWRpdGVkIiwiY29tbWVudFRleHQiLCJib29rbWFya0VuYWJsZWQiLCJpc1ZlcnNlSW52YWxpZGF0ZWQiLCJjb250ZXh0SWQiLCJ0YXJnZXRCaWJsZSIsInRvb2xzU2V0dGluZ3MiLCJoYW5kbGVDbG9zZURpYWxvZyIsImhhbmRsZUdvVG9OZXh0IiwiaGFuZGxlR29Ub1ByZXZpb3VzIiwiaGFuZGxlT3BlbkRpYWxvZyIsIm9wZW5BbGVydERpYWxvZyIsImNoYW5nZVNlbGVjdGlvbnNJbkxvY2FsU3RhdGUiLCJ0b2dnbGVCb29rbWFyayIsImNoYW5nZU1vZGUiLCJjYW5jZWxFZGl0VmVyc2UiLCJzYXZlRWRpdFZlcnNlIiwiaGFuZGxlQ29tbWVudCIsImNhbmNlbENvbW1lbnQiLCJzYXZlQ29tbWVudCIsImJvb2tEZXRhaWxzIiwic2V0VG9vbFNldHRpbmdzIiwidGFyZ2V0TGFuZ3VhZ2VEZXRhaWxzIiwiaGFuZGxlVGFnc0NoZWNrYm94IiwiaGFuZGxlRWRpdFZlcnNlIiwiY2hlY2tJZlZlcnNlQ2hhbmdlZCIsImNoZWNrSWZDb21tZW50Q2hhbmdlZCIsInZhbGlkYXRlU2VsZWN0aW9ucyIsIm1hbmlmZXN0IiwidGFyZ2V0TGFuZ3VhZ2VGb250IiwicHJvamVjdEZvbnQiLCJ0aXRsZVRleHQiLCJzYXZlQXJlYSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJjb21tZW50IiwiaW52YWxpZGF0ZWQiLCJoYW5kbGVDbG9zZSIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFycmF5IiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImZ1bmMiLCJvYmplY3QiLCJib29sIiwibnVtYmVyIiwiZGVmYXVsdFByb3BzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RjX3VpX3Rvb2xraXQvVmVyc2VDaGVjay9WZXJzZUNoZWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGluZGVudCAqL1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgQWN0aW9uc0FyZWEgZnJvbSAnLi9BY3Rpb25zQXJlYSc7XG5pbXBvcnQgQ2hlY2tBcmVhIGZyb20gJy4vQ2hlY2tBcmVhJztcbmltcG9ydCBTYXZlQXJlYSBmcm9tICcuL1NhdmVBcmVhJztcbmltcG9ydCBEaWFsb2dDb21wb25lbnQgZnJvbSAnLi9EaWFsb2dDb21wb25lbnQnO1xuaW1wb3J0IEljb25JbmRpY2F0b3JzIGZyb20gJy4vSWNvbkluZGljYXRvcnMnO1xuXG5pbXBvcnQgJy4vVmVyc2VDaGVjay5zdHlsZXMuY3NzJztcblxuY2xhc3MgVmVyc2VDaGVjayBleHRlbmRzIENvbXBvbmVudCB7XG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB0cmFuc2xhdGUsXG4gICAgICBhbGlnbmVkR0xUZXh0LFxuICAgICAgdmVyc2VUZXh0LFxuICAgICAgdW5maWx0ZXJlZFZlcnNlVGV4dCxcbiAgICAgIG1vZGUsXG4gICAgICBkaWFsb2dNb2RhbFZpc2liaWxpdHksXG4gICAgICBpc0NvbW1lbnRDaGFuZ2VkLFxuICAgICAgdGFncyxcbiAgICAgIGlzVmVyc2VDaGFuZ2VkLFxuICAgICAgc2F2ZVNlbGVjdGlvbixcbiAgICAgIGNhbmNlbFNlbGVjdGlvbixcbiAgICAgIGNsZWFyU2VsZWN0aW9uLFxuICAgICAgaGFuZGxlU2tpcCxcbiAgICAgIHRvZ2dsZU5vdGhpbmdUb1NlbGVjdCxcbiAgICAgIGxvY2FsTm90aGluZ1RvU2VsZWN0LFxuICAgICAgbWF4aW11bVNlbGVjdGlvbnMsXG4gICAgICBzZWxlY3Rpb25zLFxuICAgICAgbmV3U2VsZWN0aW9ucyxcbiAgICAgIG5vdGhpbmdUb1NlbGVjdCxcbiAgICAgIGlzVmVyc2VFZGl0ZWQsXG4gICAgICBjb21tZW50VGV4dCxcbiAgICAgIGJvb2ttYXJrRW5hYmxlZCxcbiAgICAgIGlzVmVyc2VJbnZhbGlkYXRlZCxcbiAgICAgIGNvbnRleHRJZCxcbiAgICAgIHRhcmdldEJpYmxlLFxuICAgICAgdG9vbHNTZXR0aW5ncyxcbiAgICAgIGhhbmRsZUNsb3NlRGlhbG9nLFxuICAgICAgaGFuZGxlR29Ub05leHQsXG4gICAgICBoYW5kbGVHb1RvUHJldmlvdXMsXG4gICAgICBoYW5kbGVPcGVuRGlhbG9nLFxuICAgICAgb3BlbkFsZXJ0RGlhbG9nLFxuICAgICAgY2hhbmdlU2VsZWN0aW9uc0luTG9jYWxTdGF0ZSxcbiAgICAgIHRvZ2dsZUJvb2ttYXJrLFxuICAgICAgY2hhbmdlTW9kZSxcbiAgICAgIGNhbmNlbEVkaXRWZXJzZSxcbiAgICAgIHNhdmVFZGl0VmVyc2UsXG4gICAgICBoYW5kbGVDb21tZW50LFxuICAgICAgY2FuY2VsQ29tbWVudCxcbiAgICAgIHNhdmVDb21tZW50LFxuICAgICAgYm9va0RldGFpbHMsXG4gICAgICBzZXRUb29sU2V0dGluZ3MsXG4gICAgICB0YXJnZXRMYW5ndWFnZURldGFpbHMsXG4gICAgICBoYW5kbGVUYWdzQ2hlY2tib3gsXG4gICAgICBoYW5kbGVFZGl0VmVyc2UsXG4gICAgICBjaGVja0lmVmVyc2VDaGFuZ2VkLFxuICAgICAgY2hlY2tJZkNvbW1lbnRDaGFuZ2VkLFxuICAgICAgdmFsaWRhdGVTZWxlY3Rpb25zLFxuICAgICAgbWFuaWZlc3QsXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdGFyZ2V0TGFuZ3VhZ2VGb250ID0gbWFuaWZlc3QgJiYgbWFuaWZlc3QucHJvamVjdEZvbnQgfHwgJyc7XG4gICAgbGV0IHRpdGxlVGV4dDtcbiAgICBsZXQgc2F2ZUFyZWE7XG5cbiAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICB0aXRsZVRleHQgPSB0cmFuc2xhdGUoJ2VkaXRfdmVyc2UnKTtcbiAgICAgICAgc2F2ZUFyZWEgPSA8ZGl2IC8+O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NvbW1lbnQnOlxuICAgICAgICB0aXRsZVRleHQgPSB0cmFuc2xhdGUoJ2NvbW1lbnQnKTtcbiAgICAgICAgc2F2ZUFyZWEgPSA8ZGl2IC8+O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIHRpdGxlVGV4dCA9IHRyYW5zbGF0ZSgnc2VsZWN0Jyk7XG4gICAgICAgIHNhdmVBcmVhID0gPGRpdiAvPjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aXRsZVRleHQgPSB0cmFuc2xhdGUoJ3N0ZXAyX2NoZWNrJyk7XG4gICAgICAgIHNhdmVBcmVhID0gKFxuICAgICAgICAgIDxTYXZlQXJlYVxuICAgICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgICAgICBzZWxlY3Rpb25zPXtzZWxlY3Rpb25zfVxuICAgICAgICAgICAgbm90aGluZ1RvU2VsZWN0PXtub3RoaW5nVG9TZWxlY3R9XG4gICAgICAgICAgICBoYW5kbGVHb1RvTmV4dD17aGFuZGxlR29Ub05leHR9XG4gICAgICAgICAgICBoYW5kbGVHb1RvUHJldmlvdXM9e2hhbmRsZUdvVG9QcmV2aW91c31cbiAgICAgICAgICAgIGhhbmRsZU9wZW5EaWFsb2c9e2hhbmRsZU9wZW5EaWFsb2d9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9J3ZlcnNlLWNoZWNrJz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J3ZlcnNlLWNoZWNrLWZsZXgnPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSd2ZXJzZS1jaGVjay1jYXJkJz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSd0aXRsZS1iYXInPlxuICAgICAgICAgICAgICA8c3Bhbj57dGl0bGVUZXh0fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPEljb25JbmRpY2F0b3JzXG4gICAgICAgICAgICAgICAgaXNWZXJzZUVkaXRlZD17aXNWZXJzZUVkaXRlZH1cbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25zPXtzZWxlY3Rpb25zfVxuICAgICAgICAgICAgICAgIGNvbW1lbnQ9e2NvbW1lbnRUZXh0fVxuICAgICAgICAgICAgICAgIGJvb2ttYXJrRW5hYmxlZD17Ym9va21hcmtFbmFibGVkfVxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgICAgICAgIG5vdGhpbmdUb1NlbGVjdD17bm90aGluZ1RvU2VsZWN0fVxuICAgICAgICAgICAgICAgIGludmFsaWRhdGVkPXtpc1ZlcnNlSW52YWxpZGF0ZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxDaGVja0FyZWFcbiAgICAgICAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgICAgICAgdGFncz17dGFnc31cbiAgICAgICAgICAgICAgdmVyc2VUZXh0PXt2ZXJzZVRleHR9XG4gICAgICAgICAgICAgIGNvbW1lbnQ9e2NvbW1lbnRUZXh0fVxuICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgY29udGV4dElkPXtjb250ZXh0SWR9XG4gICAgICAgICAgICAgIHNlbGVjdGlvbnM9e3NlbGVjdGlvbnN9XG4gICAgICAgICAgICAgIGJvb2tEZXRhaWxzPXtib29rRGV0YWlsc31cbiAgICAgICAgICAgICAgdGFyZ2V0QmlibGU9e3RhcmdldEJpYmxlfVxuICAgICAgICAgICAgICB0b29sc1NldHRpbmdzPXt0b29sc1NldHRpbmdzfVxuICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25zPXtuZXdTZWxlY3Rpb25zfVxuICAgICAgICAgICAgICBhbGlnbmVkR0xUZXh0PXthbGlnbmVkR0xUZXh0fVxuICAgICAgICAgICAgICBoYW5kbGVDb21tZW50PXtoYW5kbGVDb21tZW50fVxuICAgICAgICAgICAgICBpc1ZlcnNlQ2hhbmdlZD17aXNWZXJzZUNoYW5nZWR9XG4gICAgICAgICAgICAgIGludmFsaWRhdGVkPXtpc1ZlcnNlSW52YWxpZGF0ZWR9XG4gICAgICAgICAgICAgIHNldFRvb2xTZXR0aW5ncz17c2V0VG9vbFNldHRpbmdzfVxuICAgICAgICAgICAgICBub3RoaW5nVG9TZWxlY3Q9e25vdGhpbmdUb1NlbGVjdH1cbiAgICAgICAgICAgICAgb3BlbkFsZXJ0RGlhbG9nPXtvcGVuQWxlcnREaWFsb2d9XG4gICAgICAgICAgICAgIGhhbmRsZUVkaXRWZXJzZT17aGFuZGxlRWRpdFZlcnNlfVxuICAgICAgICAgICAgICBtYXhpbXVtU2VsZWN0aW9ucz17bWF4aW11bVNlbGVjdGlvbnN9XG4gICAgICAgICAgICAgIGhhbmRsZVRhZ3NDaGVja2JveD17aGFuZGxlVGFnc0NoZWNrYm94fVxuICAgICAgICAgICAgICB2YWxpZGF0ZVNlbGVjdGlvbnM9e3ZhbGlkYXRlU2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250PXt0YXJnZXRMYW5ndWFnZUZvbnR9XG4gICAgICAgICAgICAgIHVuZmlsdGVyZWRWZXJzZVRleHQ9e3VuZmlsdGVyZWRWZXJzZVRleHR9XG4gICAgICAgICAgICAgIGNoZWNrSWZWZXJzZUNoYW5nZWQ9e2NoZWNrSWZWZXJzZUNoYW5nZWR9XG4gICAgICAgICAgICAgIHRhcmdldExhbmd1YWdlRGV0YWlscz17dGFyZ2V0TGFuZ3VhZ2VEZXRhaWxzfVxuICAgICAgICAgICAgICBjaGVja0lmQ29tbWVudENoYW5nZWQ9e2NoZWNrSWZDb21tZW50Q2hhbmdlZH1cbiAgICAgICAgICAgICAgY2hhbmdlU2VsZWN0aW9uc0luTG9jYWxTdGF0ZT17Y2hhbmdlU2VsZWN0aW9uc0luTG9jYWxTdGF0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7ZmFsc2UgJiYgPEFjdGlvbnNBcmVhXG4gICAgICAgICAgICAgIG1vZGU9e21vZGV9XG4gICAgICAgICAgICAgIHRhZ3M9e3RhZ3N9XG4gICAgICAgICAgICAgIHRvZ2dsZU5vdGhpbmdUb1NlbGVjdD17dG9nZ2xlTm90aGluZ1RvU2VsZWN0fVxuICAgICAgICAgICAgICBsb2NhbE5vdGhpbmdUb1NlbGVjdD17bG9jYWxOb3RoaW5nVG9TZWxlY3R9XG4gICAgICAgICAgICAgIG5vdGhpbmdUb1NlbGVjdD17bm90aGluZ1RvU2VsZWN0fVxuICAgICAgICAgICAgICBpc0NvbW1lbnRDaGFuZ2VkPXtpc0NvbW1lbnRDaGFuZ2VkfVxuICAgICAgICAgICAgICBzZWxlY3Rpb25zPXtzZWxlY3Rpb25zfVxuICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25zPXtuZXdTZWxlY3Rpb25zfVxuICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgYm9va21hcmtFbmFibGVkPXtib29rbWFya0VuYWJsZWR9XG4gICAgICAgICAgICAgIHNhdmVTZWxlY3Rpb249e3NhdmVTZWxlY3Rpb259XG4gICAgICAgICAgICAgIGNhbmNlbFNlbGVjdGlvbj17Y2FuY2VsU2VsZWN0aW9ufVxuICAgICAgICAgICAgICBjbGVhclNlbGVjdGlvbj17Y2xlYXJTZWxlY3Rpb259XG4gICAgICAgICAgICAgIHRvZ2dsZUJvb2ttYXJrPXt0b2dnbGVCb29rbWFya31cbiAgICAgICAgICAgICAgY2hhbmdlTW9kZT17Y2hhbmdlTW9kZX1cbiAgICAgICAgICAgICAgY2FuY2VsRWRpdFZlcnNlPXtjYW5jZWxFZGl0VmVyc2V9XG4gICAgICAgICAgICAgIHNhdmVFZGl0VmVyc2U9e3NhdmVFZGl0VmVyc2V9XG4gICAgICAgICAgICAgIGNhbmNlbENvbW1lbnQ9e2NhbmNlbENvbW1lbnR9XG4gICAgICAgICAgICAgIHNhdmVDb21tZW50PXtzYXZlQ29tbWVudH1cbiAgICAgICAgICAgIC8+fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtzYXZlQXJlYX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtmYWxzZSAmJiA8RGlhbG9nQ29tcG9uZW50XG4gICAgICAgICAgaGFuZGxlU2tpcD17aGFuZGxlU2tpcH1cbiAgICAgICAgICBkaWFsb2dNb2RhbFZpc2liaWxpdHk9e2RpYWxvZ01vZGFsVmlzaWJpbGl0eX1cbiAgICAgICAgICBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2VEaWFsb2d9XG4gICAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9IC8+fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5cblZlcnNlQ2hlY2sucHJvcFR5cGVzID0ge1xuICB0YWdzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgbW9kZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoYW5nZU1vZGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNlbGVjdGlvbnM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBjb250ZXh0SWQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgdmVyc2VUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGlzVmVyc2VFZGl0ZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGNvbW1lbnRUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRhcmdldEJpYmxlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGJvb2tEZXRhaWxzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIG5ld1NlbGVjdGlvbnM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBpc1ZlcnNlQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaGFuZGxlR29Ub05leHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG5vdGhpbmdUb1NlbGVjdDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgYm9va21hcmtFbmFibGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICB0b29sc1NldHRpbmdzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGFsaWduZWRHTFRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgaXNDb21tZW50Q2hhbmdlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaXNWZXJzZUludmFsaWRhdGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICB0YXJnZXRMYW5ndWFnZURldGFpbHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgdW5maWx0ZXJlZFZlcnNlVGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBkaWFsb2dNb2RhbFZpc2liaWxpdHk6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGxvY2FsTm90aGluZ1RvU2VsZWN0OiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBtYXhpbXVtU2VsZWN0aW9uczogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBoYW5kbGVDbG9zZURpYWxvZzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlR29Ub1ByZXZpb3VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBoYW5kbGVPcGVuRGlhbG9nOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvcGVuQWxlcnREaWFsb2c6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHRvZ2dsZUJvb2ttYXJrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBjYW5jZWxFZGl0VmVyc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNhdmVFZGl0VmVyc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGhhbmRsZUNvbW1lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNhbmNlbENvbW1lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNhdmVDb21tZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0b2dnbGVOb3RoaW5nVG9TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNhdmVTZWxlY3Rpb246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNhbmNlbFNlbGVjdGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY2xlYXJTZWxlY3Rpb246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGhhbmRsZVNraXA6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNldFRvb2xTZXR0aW5nczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlRWRpdFZlcnNlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBjaGVja0lmVmVyc2VDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBjaGVja0lmQ29tbWVudENoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHZhbGlkYXRlU2VsZWN0aW9uczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlVGFnc0NoZWNrYm94OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBjaGFuZ2VTZWxlY3Rpb25zSW5Mb2NhbFN0YXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBtYW5pZmVzdDogUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cblZlcnNlQ2hlY2suZGVmYXVsdFByb3BzID0ge1xuICB0cmFuc2xhdGU6IGtleSA9PiBrZXksXG4gIHZlcnNlVGV4dDogJycsXG4gIHVuZmlsdGVyZWRWZXJzZVRleHQ6ICcnLFxuICBjb21tZW50VGV4dDogJycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBWZXJzZUNoZWNrO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sZ0JBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLGVBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBQSxPQUFBO0FBQWlDLFNBQUFFLHVCQUFBTSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBVCx3QkFBQVMsQ0FBQSxFQUFBRSxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVosdUJBQUEsWUFBQUEsd0JBQUFTLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLFNBQUFELENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBSixDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRSxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUSxDQUFBLGNBQUFNLEVBQUEsSUFBQWQsQ0FBQSxnQkFBQWMsRUFBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLElBQUFELENBQUEsR0FBQVcsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQW5CLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLENBQUFLLEdBQUEsSUFBQUwsQ0FBQSxDQUFBTSxHQUFBLElBQUFQLENBQUEsQ0FBQUUsQ0FBQSxFQUFBTSxFQUFBLEVBQUFQLENBQUEsSUFBQUMsQ0FBQSxDQUFBTSxFQUFBLElBQUFkLENBQUEsQ0FBQWMsRUFBQSxXQUFBTixDQUFBLEtBQUFSLENBQUEsRUFBQUUsQ0FBQTtBQUFBLFNBQUFrQixnQkFBQUMsQ0FBQSxFQUFBaEIsQ0FBQSxVQUFBZ0IsQ0FBQSxZQUFBaEIsQ0FBQSxhQUFBaUIsU0FBQTtBQUFBLFNBQUFDLGtCQUFBdkIsQ0FBQSxFQUFBSSxDQUFBLGFBQUFGLENBQUEsTUFBQUEsQ0FBQSxHQUFBRSxDQUFBLENBQUFvQixNQUFBLEVBQUF0QixDQUFBLFVBQUFJLENBQUEsR0FBQUYsQ0FBQSxDQUFBRixDQUFBLEdBQUFJLENBQUEsQ0FBQW1CLFVBQUEsR0FBQW5CLENBQUEsQ0FBQW1CLFVBQUEsUUFBQW5CLENBQUEsQ0FBQW9CLFlBQUEsa0JBQUFwQixDQUFBLEtBQUFBLENBQUEsQ0FBQXFCLFFBQUEsUUFBQVYsTUFBQSxDQUFBQyxjQUFBLENBQUFsQixDQUFBLEVBQUE0QixjQUFBLENBQUF0QixDQUFBLENBQUF1QixHQUFBLEdBQUF2QixDQUFBO0FBQUEsU0FBQXdCLGFBQUE5QixDQUFBLEVBQUFJLENBQUEsRUFBQUYsQ0FBQSxXQUFBRSxDQUFBLElBQUFtQixpQkFBQSxDQUFBdkIsQ0FBQSxDQUFBK0IsU0FBQSxFQUFBM0IsQ0FBQSxHQUFBRixDQUFBLElBQUFxQixpQkFBQSxDQUFBdkIsQ0FBQSxFQUFBRSxDQUFBLEdBQUFlLE1BQUEsQ0FBQUMsY0FBQSxDQUFBbEIsQ0FBQSxpQkFBQTJCLFFBQUEsU0FBQTNCLENBQUE7QUFBQSxTQUFBNEIsZUFBQTFCLENBQUEsUUFBQUssQ0FBQSxHQUFBeUIsWUFBQSxDQUFBOUIsQ0FBQSxnQ0FBQVEsT0FBQSxDQUFBSCxDQUFBLElBQUFBLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUF5QixhQUFBOUIsQ0FBQSxFQUFBRSxDQUFBLG9CQUFBTSxPQUFBLENBQUFSLENBQUEsTUFBQUEsQ0FBQSxTQUFBQSxDQUFBLE1BQUFGLENBQUEsR0FBQUUsQ0FBQSxDQUFBK0IsTUFBQSxDQUFBQyxXQUFBLGtCQUFBbEMsQ0FBQSxRQUFBTyxDQUFBLEdBQUFQLENBQUEsQ0FBQWdCLElBQUEsQ0FBQWQsQ0FBQSxFQUFBRSxDQUFBLGdDQUFBTSxPQUFBLENBQUFILENBQUEsVUFBQUEsQ0FBQSxZQUFBZSxTQUFBLHlFQUFBbEIsQ0FBQSxHQUFBK0IsTUFBQSxHQUFBQyxNQUFBLEVBQUFsQyxDQUFBO0FBQUEsU0FBQW1DLFdBQUFuQyxDQUFBLEVBQUFJLENBQUEsRUFBQU4sQ0FBQSxXQUFBTSxDQUFBLEdBQUFnQyxlQUFBLENBQUFoQyxDQUFBLEdBQUFpQywwQkFBQSxDQUFBckMsQ0FBQSxFQUFBc0MseUJBQUEsS0FBQUMsT0FBQSxDQUFBQyxTQUFBLENBQUFwQyxDQUFBLEVBQUFOLENBQUEsUUFBQXNDLGVBQUEsQ0FBQXBDLENBQUEsRUFBQXlDLFdBQUEsSUFBQXJDLENBQUEsQ0FBQXNDLEtBQUEsQ0FBQTFDLENBQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUF1QywyQkFBQXJDLENBQUEsRUFBQUYsQ0FBQSxRQUFBQSxDQUFBLGlCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsVUFBQUEsQ0FBQSxpQkFBQUEsQ0FBQSxZQUFBc0IsU0FBQSxxRUFBQXVCLHNCQUFBLENBQUEzQyxDQUFBO0FBQUEsU0FBQTJDLHVCQUFBN0MsQ0FBQSxtQkFBQUEsQ0FBQSxZQUFBOEMsY0FBQSxzRUFBQTlDLENBQUE7QUFBQSxTQUFBd0MsMEJBQUEsY0FBQXRDLENBQUEsSUFBQTZDLE9BQUEsQ0FBQWhCLFNBQUEsQ0FBQWlCLE9BQUEsQ0FBQWhDLElBQUEsQ0FBQXlCLE9BQUEsQ0FBQUMsU0FBQSxDQUFBSyxPQUFBLGlDQUFBN0MsQ0FBQSxhQUFBc0MseUJBQUEsWUFBQUEsMEJBQUEsYUFBQXRDLENBQUE7QUFBQSxTQUFBb0MsZ0JBQUFwQyxDQUFBLFdBQUFvQyxlQUFBLEdBQUFyQixNQUFBLENBQUFnQyxjQUFBLEdBQUFoQyxNQUFBLENBQUFpQyxjQUFBLENBQUFDLElBQUEsZUFBQWpELENBQUEsV0FBQUEsQ0FBQSxDQUFBTyxTQUFBLElBQUFRLE1BQUEsQ0FBQWlDLGNBQUEsQ0FBQWhELENBQUEsTUFBQW9DLGVBQUEsQ0FBQXBDLENBQUE7QUFBQSxTQUFBa0QsVUFBQWxELENBQUEsRUFBQUYsQ0FBQSw2QkFBQUEsQ0FBQSxhQUFBQSxDQUFBLFlBQUFzQixTQUFBLHdEQUFBcEIsQ0FBQSxDQUFBNkIsU0FBQSxHQUFBZCxNQUFBLENBQUFvQyxNQUFBLENBQUFyRCxDQUFBLElBQUFBLENBQUEsQ0FBQStCLFNBQUEsSUFBQVksV0FBQSxJQUFBVyxLQUFBLEVBQUFwRCxDQUFBLEVBQUF5QixRQUFBLE1BQUFELFlBQUEsV0FBQVQsTUFBQSxDQUFBQyxjQUFBLENBQUFoQixDQUFBLGlCQUFBeUIsUUFBQSxTQUFBM0IsQ0FBQSxJQUFBdUQsZUFBQSxDQUFBckQsQ0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQXVELGdCQUFBckQsQ0FBQSxFQUFBRixDQUFBLFdBQUF1RCxlQUFBLEdBQUF0QyxNQUFBLENBQUFnQyxjQUFBLEdBQUFoQyxNQUFBLENBQUFnQyxjQUFBLENBQUFFLElBQUEsZUFBQWpELENBQUEsRUFBQUYsQ0FBQSxXQUFBRSxDQUFBLENBQUFPLFNBQUEsR0FBQVQsQ0FBQSxFQUFBRSxDQUFBLEtBQUFxRCxlQUFBLENBQUFyRCxDQUFBLEVBQUFGLENBQUEsS0FUakM7QUFBQSxJQVdNd0QsVUFBVSwwQkFBQUMsVUFBQTtFQUFBLFNBQUFELFdBQUE7SUFBQXBDLGVBQUEsT0FBQW9DLFVBQUE7SUFBQSxPQUFBbkIsVUFBQSxPQUFBbUIsVUFBQSxFQUFBRSxTQUFBO0VBQUE7RUFBQU4sU0FBQSxDQUFBSSxVQUFBLEVBQUFDLFVBQUE7RUFBQSxPQUFBM0IsWUFBQSxDQUFBMEIsVUFBQTtJQUFBM0IsR0FBQTtJQUFBeUIsS0FBQSxFQUNkLFNBQUFLLE1BQU1BLENBQUEsRUFBRztNQUNQLElBQUFDLFdBQUEsR0FpREksSUFBSSxDQUFDQyxLQUFLO1FBaERaQyxTQUFTLEdBQUFGLFdBQUEsQ0FBVEUsU0FBUztRQUNUQyxhQUFhLEdBQUFILFdBQUEsQ0FBYkcsYUFBYTtRQUNiQyxTQUFTLEdBQUFKLFdBQUEsQ0FBVEksU0FBUztRQUNUQyxtQkFBbUIsR0FBQUwsV0FBQSxDQUFuQkssbUJBQW1CO1FBQ25CQyxJQUFJLEdBQUFOLFdBQUEsQ0FBSk0sSUFBSTtRQUNKQyxxQkFBcUIsR0FBQVAsV0FBQSxDQUFyQk8scUJBQXFCO1FBQ3JCQyxnQkFBZ0IsR0FBQVIsV0FBQSxDQUFoQlEsZ0JBQWdCO1FBQ2hCQyxJQUFJLEdBQUFULFdBQUEsQ0FBSlMsSUFBSTtRQUNKQyxjQUFjLEdBQUFWLFdBQUEsQ0FBZFUsY0FBYztRQUNkQyxhQUFhLEdBQUFYLFdBQUEsQ0FBYlcsYUFBYTtRQUNiQyxlQUFlLEdBQUFaLFdBQUEsQ0FBZlksZUFBZTtRQUNmQyxjQUFjLEdBQUFiLFdBQUEsQ0FBZGEsY0FBYztRQUNkQyxVQUFVLEdBQUFkLFdBQUEsQ0FBVmMsVUFBVTtRQUNWQyxxQkFBcUIsR0FBQWYsV0FBQSxDQUFyQmUscUJBQXFCO1FBQ3JCQyxvQkFBb0IsR0FBQWhCLFdBQUEsQ0FBcEJnQixvQkFBb0I7UUFDcEJDLGlCQUFpQixHQUFBakIsV0FBQSxDQUFqQmlCLGlCQUFpQjtRQUNqQkMsVUFBVSxHQUFBbEIsV0FBQSxDQUFWa0IsVUFBVTtRQUNWQyxhQUFhLEdBQUFuQixXQUFBLENBQWJtQixhQUFhO1FBQ2JDLGVBQWUsR0FBQXBCLFdBQUEsQ0FBZm9CLGVBQWU7UUFDZkMsYUFBYSxHQUFBckIsV0FBQSxDQUFicUIsYUFBYTtRQUNiQyxXQUFXLEdBQUF0QixXQUFBLENBQVhzQixXQUFXO1FBQ1hDLGVBQWUsR0FBQXZCLFdBQUEsQ0FBZnVCLGVBQWU7UUFDZkMsa0JBQWtCLEdBQUF4QixXQUFBLENBQWxCd0Isa0JBQWtCO1FBQ2xCQyxTQUFTLEdBQUF6QixXQUFBLENBQVR5QixTQUFTO1FBQ1RDLFdBQVcsR0FBQTFCLFdBQUEsQ0FBWDBCLFdBQVc7UUFDWEMsYUFBYSxHQUFBM0IsV0FBQSxDQUFiMkIsYUFBYTtRQUNiQyxpQkFBaUIsR0FBQTVCLFdBQUEsQ0FBakI0QixpQkFBaUI7UUFDakJDLGNBQWMsR0FBQTdCLFdBQUEsQ0FBZDZCLGNBQWM7UUFDZEMsa0JBQWtCLEdBQUE5QixXQUFBLENBQWxCOEIsa0JBQWtCO1FBQ2xCQyxnQkFBZ0IsR0FBQS9CLFdBQUEsQ0FBaEIrQixnQkFBZ0I7UUFDaEJDLGVBQWUsR0FBQWhDLFdBQUEsQ0FBZmdDLGVBQWU7UUFDZkMsNEJBQTRCLEdBQUFqQyxXQUFBLENBQTVCaUMsNEJBQTRCO1FBQzVCQyxjQUFjLEdBQUFsQyxXQUFBLENBQWRrQyxjQUFjO1FBQ2RDLFVBQVUsR0FBQW5DLFdBQUEsQ0FBVm1DLFVBQVU7UUFDVkMsZUFBZSxHQUFBcEMsV0FBQSxDQUFmb0MsZUFBZTtRQUNmQyxhQUFhLEdBQUFyQyxXQUFBLENBQWJxQyxhQUFhO1FBQ2JDLGFBQWEsR0FBQXRDLFdBQUEsQ0FBYnNDLGFBQWE7UUFDYkMsYUFBYSxHQUFBdkMsV0FBQSxDQUFidUMsYUFBYTtRQUNiQyxXQUFXLEdBQUF4QyxXQUFBLENBQVh3QyxXQUFXO1FBQ1hDLFdBQVcsR0FBQXpDLFdBQUEsQ0FBWHlDLFdBQVc7UUFDWEMsZUFBZSxHQUFBMUMsV0FBQSxDQUFmMEMsZUFBZTtRQUNmQyxxQkFBcUIsR0FBQTNDLFdBQUEsQ0FBckIyQyxxQkFBcUI7UUFDckJDLGtCQUFrQixHQUFBNUMsV0FBQSxDQUFsQjRDLGtCQUFrQjtRQUNsQkMsZUFBZSxHQUFBN0MsV0FBQSxDQUFmNkMsZUFBZTtRQUNmQyxtQkFBbUIsR0FBQTlDLFdBQUEsQ0FBbkI4QyxtQkFBbUI7UUFDbkJDLHFCQUFxQixHQUFBL0MsV0FBQSxDQUFyQitDLHFCQUFxQjtRQUNyQkMsa0JBQWtCLEdBQUFoRCxXQUFBLENBQWxCZ0Qsa0JBQWtCO1FBQ2xCQyxRQUFRLEdBQUFqRCxXQUFBLENBQVJpRCxRQUFRO01BRVYsSUFBTUMsa0JBQWtCLEdBQUdELFFBQVEsSUFBSUEsUUFBUSxDQUFDRSxXQUFXLElBQUksRUFBRTtNQUNqRSxJQUFJQyxTQUFTO01BQ2IsSUFBSUMsUUFBUTtNQUVaLFFBQVEvQyxJQUFJO1FBQ1YsS0FBSyxNQUFNO1VBQ1Q4QyxTQUFTLEdBQUdsRCxTQUFTLENBQUMsWUFBWSxDQUFDO1VBQ25DbUQsUUFBUSxnQkFBRzNILE1BQUEsWUFBQTRILGFBQUEsWUFBTSxDQUFDO1VBQ2xCO1FBQ0YsS0FBSyxTQUFTO1VBQ1pGLFNBQVMsR0FBR2xELFNBQVMsQ0FBQyxTQUFTLENBQUM7VUFDaENtRCxRQUFRLGdCQUFHM0gsTUFBQSxZQUFBNEgsYUFBQSxZQUFNLENBQUM7VUFDbEI7UUFDRixLQUFLLFFBQVE7VUFDWEYsU0FBUyxHQUFHbEQsU0FBUyxDQUFDLFFBQVEsQ0FBQztVQUMvQm1ELFFBQVEsZ0JBQUczSCxNQUFBLFlBQUE0SCxhQUFBLFlBQU0sQ0FBQztVQUNsQjtRQUNGO1VBQ0VGLFNBQVMsR0FBR2xELFNBQVMsQ0FBQyxhQUFhLENBQUM7VUFDcENtRCxRQUFRLGdCQUNOM0gsTUFBQSxZQUFBNEgsYUFBQSxDQUFDckgsU0FBQSxXQUFRO1lBQ1BpRSxTQUFTLEVBQUVBLFNBQVU7WUFDckJnQixVQUFVLEVBQUVBLFVBQVc7WUFDdkJFLGVBQWUsRUFBRUEsZUFBZ0I7WUFDakNTLGNBQWMsRUFBRUEsY0FBZTtZQUMvQkMsa0JBQWtCLEVBQUVBLGtCQUFtQjtZQUN2Q0MsZ0JBQWdCLEVBQUVBO1VBQWlCLENBQ3BDLENBQ0Y7TUFDTDtNQUVBLG9CQUNFckcsTUFBQSxZQUFBNEgsYUFBQTtRQUFLQyxTQUFTLEVBQUM7TUFBYSxnQkFDMUI3SCxNQUFBLFlBQUE0SCxhQUFBO1FBQUtDLFNBQVMsRUFBQztNQUFrQixnQkFDL0I3SCxNQUFBLFlBQUE0SCxhQUFBO1FBQUtDLFNBQVMsRUFBQztNQUFrQixnQkFDL0I3SCxNQUFBLFlBQUE0SCxhQUFBO1FBQUtDLFNBQVMsRUFBQztNQUFXLGdCQUN4QjdILE1BQUEsWUFBQTRILGFBQUEsZUFBT0YsU0FBZ0IsQ0FBQyxlQUN4QjFILE1BQUEsWUFBQTRILGFBQUEsQ0FBQ25ILGVBQUEsV0FBYztRQUNia0YsYUFBYSxFQUFFQSxhQUFjO1FBQzdCSCxVQUFVLEVBQUVBLFVBQVc7UUFDdkJzQyxPQUFPLEVBQUVsQyxXQUFZO1FBQ3JCQyxlQUFlLEVBQUVBLGVBQWdCO1FBQ2pDckIsU0FBUyxFQUFFQSxTQUFVO1FBQ3JCa0IsZUFBZSxFQUFFQSxlQUFnQjtRQUNqQ3FDLFdBQVcsRUFBRWpDO01BQW1CLENBQ2pDLENBQ0UsQ0FBQyxlQUNOOUYsTUFBQSxZQUFBNEgsYUFBQSxDQUFDdEgsVUFBQSxXQUFTO1FBQ1JzRSxJQUFJLEVBQUVBLElBQUs7UUFDWEcsSUFBSSxFQUFFQSxJQUFLO1FBQ1hMLFNBQVMsRUFBRUEsU0FBVTtRQUNyQm9ELE9BQU8sRUFBRWxDLFdBQVk7UUFDckJwQixTQUFTLEVBQUVBLFNBQVU7UUFDckJ1QixTQUFTLEVBQUVBLFNBQVU7UUFDckJQLFVBQVUsRUFBRUEsVUFBVztRQUN2QnVCLFdBQVcsRUFBRUEsV0FBWTtRQUN6QmYsV0FBVyxFQUFFQSxXQUFZO1FBQ3pCQyxhQUFhLEVBQUVBLGFBQWM7UUFDN0JSLGFBQWEsRUFBRUEsYUFBYztRQUM3QmhCLGFBQWEsRUFBRUEsYUFBYztRQUM3Qm1DLGFBQWEsRUFBRUEsYUFBYztRQUM3QjVCLGNBQWMsRUFBRUEsY0FBZTtRQUMvQitDLFdBQVcsRUFBRWpDLGtCQUFtQjtRQUNoQ2tCLGVBQWUsRUFBRUEsZUFBZ0I7UUFDakN0QixlQUFlLEVBQUVBLGVBQWdCO1FBQ2pDWSxlQUFlLEVBQUVBLGVBQWdCO1FBQ2pDYSxlQUFlLEVBQUVBLGVBQWdCO1FBQ2pDNUIsaUJBQWlCLEVBQUVBLGlCQUFrQjtRQUNyQzJCLGtCQUFrQixFQUFFQSxrQkFBbUI7UUFDdkNJLGtCQUFrQixFQUFFQSxrQkFBbUI7UUFDdkNFLGtCQUFrQixFQUFFQSxrQkFBbUI7UUFDdkM3QyxtQkFBbUIsRUFBRUEsbUJBQW9CO1FBQ3pDeUMsbUJBQW1CLEVBQUVBLG1CQUFvQjtRQUN6Q0gscUJBQXFCLEVBQUVBLHFCQUFzQjtRQUM3Q0kscUJBQXFCLEVBQUVBLHFCQUFzQjtRQUM3Q2QsNEJBQTRCLEVBQUVBO01BQTZCLENBQzVELENBQUMsRUFDRCxLQUFLLGlCQUFJdkcsTUFBQSxZQUFBNEgsYUFBQSxDQUFDdkgsWUFBQSxXQUFXO1FBQ3BCdUUsSUFBSSxFQUFFQSxJQUFLO1FBQ1hHLElBQUksRUFBRUEsSUFBSztRQUNYTSxxQkFBcUIsRUFBRUEscUJBQXNCO1FBQzdDQyxvQkFBb0IsRUFBRUEsb0JBQXFCO1FBQzNDSSxlQUFlLEVBQUVBLGVBQWdCO1FBQ2pDWixnQkFBZ0IsRUFBRUEsZ0JBQWlCO1FBQ25DVSxVQUFVLEVBQUVBLFVBQVc7UUFDdkJDLGFBQWEsRUFBRUEsYUFBYztRQUM3QmpCLFNBQVMsRUFBRUEsU0FBVTtRQUNyQnFCLGVBQWUsRUFBRUEsZUFBZ0I7UUFDakNaLGFBQWEsRUFBRUEsYUFBYztRQUM3QkMsZUFBZSxFQUFFQSxlQUFnQjtRQUNqQ0MsY0FBYyxFQUFFQSxjQUFlO1FBQy9CcUIsY0FBYyxFQUFFQSxjQUFlO1FBQy9CQyxVQUFVLEVBQUVBLFVBQVc7UUFDdkJDLGVBQWUsRUFBRUEsZUFBZ0I7UUFDakNDLGFBQWEsRUFBRUEsYUFBYztRQUM3QkUsYUFBYSxFQUFFQSxhQUFjO1FBQzdCQyxXQUFXLEVBQUVBO01BQVksQ0FDMUIsQ0FDRSxDQUFDLEVBQ0xhLFFBQ0UsQ0FBQyxFQUNMLEtBQUssaUJBQUkzSCxNQUFBLFlBQUE0SCxhQUFBLENBQUNwSCxnQkFBQSxXQUFlO1FBQ3hCNEUsVUFBVSxFQUFFQSxVQUFXO1FBQ3ZCUCxxQkFBcUIsRUFBRUEscUJBQXNCO1FBQzdDbUQsV0FBVyxFQUFFOUIsaUJBQWtCO1FBQy9CMUIsU0FBUyxFQUFFQTtNQUFVLENBQUUsQ0FDdEIsQ0FBQztJQUVWO0VBQUM7QUFBQSxFQWhLc0J5RCxnQkFBUztBQW9LbEMvRCxVQUFVLENBQUNnRSxTQUFTLEdBQUc7RUFDckJuRCxJQUFJLEVBQUVvRCxxQkFBUyxDQUFDQyxLQUFLLENBQUNDLFVBQVU7RUFDaEN6RCxJQUFJLEVBQUV1RCxxQkFBUyxDQUFDRyxNQUFNLENBQUNELFVBQVU7RUFDakM3RCxTQUFTLEVBQUUyRCxxQkFBUyxDQUFDSSxJQUFJLENBQUNGLFVBQVU7RUFDcEM1QixVQUFVLEVBQUUwQixxQkFBUyxDQUFDSSxJQUFJLENBQUNGLFVBQVU7RUFDckM3QyxVQUFVLEVBQUUyQyxxQkFBUyxDQUFDQyxLQUFLLENBQUNDLFVBQVU7RUFDdEN0QyxTQUFTLEVBQUVvQyxxQkFBUyxDQUFDSyxNQUFNLENBQUNILFVBQVU7RUFDdEMzRCxTQUFTLEVBQUV5RCxxQkFBUyxDQUFDRyxNQUFNLENBQUNELFVBQVU7RUFDdEMxQyxhQUFhLEVBQUV3QyxxQkFBUyxDQUFDTSxJQUFJLENBQUNKLFVBQVU7RUFDeEN6QyxXQUFXLEVBQUV1QyxxQkFBUyxDQUFDRyxNQUFNLENBQUNELFVBQVU7RUFDeENyQyxXQUFXLEVBQUVtQyxxQkFBUyxDQUFDSyxNQUFNLENBQUNILFVBQVU7RUFDeEN0QixXQUFXLEVBQUVvQixxQkFBUyxDQUFDSyxNQUFNLENBQUNILFVBQVU7RUFDeEM1QyxhQUFhLEVBQUUwQyxxQkFBUyxDQUFDQyxLQUFLLENBQUNDLFVBQVU7RUFDekNyRCxjQUFjLEVBQUVtRCxxQkFBUyxDQUFDTSxJQUFJLENBQUNKLFVBQVU7RUFDekNsQyxjQUFjLEVBQUVnQyxxQkFBUyxDQUFDSSxJQUFJLENBQUNGLFVBQVU7RUFDekMzQyxlQUFlLEVBQUV5QyxxQkFBUyxDQUFDTSxJQUFJLENBQUNKLFVBQVU7RUFDMUN4QyxlQUFlLEVBQUVzQyxxQkFBUyxDQUFDTSxJQUFJLENBQUNKLFVBQVU7RUFDMUNwQyxhQUFhLEVBQUVrQyxxQkFBUyxDQUFDSyxNQUFNLENBQUNILFVBQVU7RUFDMUM1RCxhQUFhLEVBQUUwRCxxQkFBUyxDQUFDRyxNQUFNLENBQUNELFVBQVU7RUFDMUN2RCxnQkFBZ0IsRUFBRXFELHFCQUFTLENBQUNNLElBQUksQ0FBQ0osVUFBVTtFQUMzQ3ZDLGtCQUFrQixFQUFFcUMscUJBQVMsQ0FBQ00sSUFBSSxDQUFDSixVQUFVO0VBQzdDcEIscUJBQXFCLEVBQUVrQixxQkFBUyxDQUFDSyxNQUFNLENBQUNILFVBQVU7RUFDbEQxRCxtQkFBbUIsRUFBRXdELHFCQUFTLENBQUNHLE1BQU0sQ0FBQ0QsVUFBVTtFQUNoRHhELHFCQUFxQixFQUFFc0QscUJBQVMsQ0FBQ00sSUFBSSxDQUFDSixVQUFVO0VBQ2hEL0Msb0JBQW9CLEVBQUU2QyxxQkFBUyxDQUFDTSxJQUFJLENBQUNKLFVBQVU7RUFDL0M5QyxpQkFBaUIsRUFBRTRDLHFCQUFTLENBQUNPLE1BQU0sQ0FBQ0wsVUFBVTtFQUM5Q25DLGlCQUFpQixFQUFFaUMscUJBQVMsQ0FBQ0ksSUFBSSxDQUFDRixVQUFVO0VBQzVDakMsa0JBQWtCLEVBQUUrQixxQkFBUyxDQUFDSSxJQUFJLENBQUNGLFVBQVU7RUFDN0NoQyxnQkFBZ0IsRUFBRThCLHFCQUFTLENBQUNJLElBQUksQ0FBQ0YsVUFBVTtFQUMzQy9CLGVBQWUsRUFBRTZCLHFCQUFTLENBQUNJLElBQUksQ0FBQ0YsVUFBVTtFQUMxQzdCLGNBQWMsRUFBRTJCLHFCQUFTLENBQUNJLElBQUksQ0FBQ0YsVUFBVTtFQUN6QzNCLGVBQWUsRUFBRXlCLHFCQUFTLENBQUNJLElBQUksQ0FBQ0YsVUFBVTtFQUMxQzFCLGFBQWEsRUFBRXdCLHFCQUFTLENBQUNJLElBQUksQ0FBQ0YsVUFBVTtFQUN4Q3pCLGFBQWEsRUFBRXVCLHFCQUFTLENBQUNJLElBQUksQ0FBQ0YsVUFBVTtFQUN4Q3hCLGFBQWEsRUFBRXNCLHFCQUFTLENBQUNJLElBQUksQ0FBQ0YsVUFBVTtFQUN4Q3ZCLFdBQVcsRUFBRXFCLHFCQUFTLENBQUNJLElBQUksQ0FBQ0YsVUFBVTtFQUN0Q2hELHFCQUFxQixFQUFFOEMscUJBQVMsQ0FBQ0ksSUFBSSxDQUFDRixVQUFVO0VBQ2hEcEQsYUFBYSxFQUFFa0QscUJBQVMsQ0FBQ0ksSUFBSSxDQUFDRixVQUFVO0VBQ3hDbkQsZUFBZSxFQUFFaUQscUJBQVMsQ0FBQ0ksSUFBSSxDQUFDRixVQUFVO0VBQzFDbEQsY0FBYyxFQUFFZ0QscUJBQVMsQ0FBQ0ksSUFBSSxDQUFDRixVQUFVO0VBQ3pDakQsVUFBVSxFQUFFK0MscUJBQVMsQ0FBQ0ksSUFBSSxDQUFDRixVQUFVO0VBQ3JDckIsZUFBZSxFQUFFbUIscUJBQVMsQ0FBQ0ksSUFBSSxDQUFDRixVQUFVO0VBQzFDbEIsZUFBZSxFQUFFZ0IscUJBQVMsQ0FBQ0ksSUFBSSxDQUFDRixVQUFVO0VBQzFDakIsbUJBQW1CLEVBQUVlLHFCQUFTLENBQUNJLElBQUksQ0FBQ0YsVUFBVTtFQUM5Q2hCLHFCQUFxQixFQUFFYyxxQkFBUyxDQUFDSSxJQUFJLENBQUNGLFVBQVU7RUFDaERmLGtCQUFrQixFQUFFYSxxQkFBUyxDQUFDSSxJQUFJLENBQUNGLFVBQVU7RUFDN0NuQixrQkFBa0IsRUFBRWlCLHFCQUFTLENBQUNJLElBQUksQ0FBQ0YsVUFBVTtFQUM3QzlCLDRCQUE0QixFQUFFNEIscUJBQVMsQ0FBQ0ksSUFBSSxDQUFDRixVQUFVO0VBQ3ZEZCxRQUFRLEVBQUVZLHFCQUFTLENBQUNLO0FBQ3RCLENBQUM7QUFFRHRFLFVBQVUsQ0FBQ3lFLFlBQVksR0FBRztFQUN4Qm5FLFNBQVMsRUFBRSxTQUFYQSxTQUFTQSxDQUFFakMsR0FBRztJQUFBLE9BQUlBLEdBQUc7RUFBQTtFQUNyQm1DLFNBQVMsRUFBRSxFQUFFO0VBQ2JDLG1CQUFtQixFQUFFLEVBQUU7RUFDdkJpQixXQUFXLEVBQUU7QUFDZixDQUFDO0FBQUMsSUFBQWdELFFBQUEsR0FBQUMsT0FBQSxjQUVhM0UsVUFBVSIsImlnbm9yZUxpc3QiOltdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tc-checking-tool-rcl",
3
- "version": "0.9.41",
3
+ "version": "0.9.42",
4
4
  "main": "dist",
5
5
  "source": "dist/index.js",
6
6
  "repository": "https://github.com/unfoldingWord-box/checking-tool-rcl.git",